From f011e23cb2e0f7d2271786c262b697d77bc56b98 Mon Sep 17 00:00:00 2001 From: Zack3D Date: Thu, 2 Oct 2025 19:27:15 -0700 Subject: [PATCH] b --- .env.docker | 8 +- .env.example | 7 +- .gitmodules | 2 +- ADMIN-CONTENT-EDITOR.md | 84 + CLAUDE.md | 2 +- CONTENT-MANAGEMENT.md | 220 + DOCKER.md | 24 +- Dockerfile | 4 +- README.md | 12 +- docker-compose.yml | 27 +- frontend-backup/.gitignore | 1 + frontend-backup/26/2025/08/12/horse.png | Bin 0 -> 70912 bytes frontend-backup/404.html | 108 +- .../PixelifySans-latin.vdc2vUDH.woff2 | Bin 12096 -> 0 bytes frontend-backup/TODO.md | 1458 - .../_app/admin-content-editor.html | 532 - .../_app/immutable/assets/0.0xfYb4uv.css | 7656 ++ .../_app/immutable/assets/0.CmqRY0au.css | 1 - .../_app/immutable/assets/0.DQCxyt33.css | 1 - .../_app/immutable/assets/18.BD1hRFPA.css | 42 +- .../_app/immutable/assets/2.BtKF873c.css | 1 - .../_app/immutable/assets/4.BtKF873c.css | 1776 +- .../assets/Geist-cyrillic.CHSlOQsW.woff2 | Bin 0 -> 14692 bytes .../assets/Geist-latin-ext.DMtmJ5ZE.woff2 | Bin 0 -> 15308 bytes .../assets/GeistMono-cyrillic.BZdD_g9V.woff2 | Bin 0 -> 12616 bytes .../assets/GeistMono-latin-ext.b6lpi8_2.woff2 | Bin 0 -> 13044 bytes .../assets/GeistMono-latin.Cjtb1TV-.woff2 | Bin 0 -> 31368 bytes .../immutable/assets/LoginForm.CxMG0irz.css | 4 +- .../PixelifySans-cyrillic.CPPz0Qvd.woff2 | Bin 0 -> 5012 bytes .../ProfileAvatarWithLevel.6dmPRSfx.css | 10 +- .../_app/immutable/chunks/0.CnnlsrhC.js | 1458 - .../_app/immutable/chunks/07L1R_bo.js | 38 - .../_app/immutable/chunks/0wx1llIh.js | 63 + .../_app/immutable/chunks/1lh-LSvX.js | 1467 - .../_app/immutable/chunks/2.BY7SdjrD.js | 47015 ---------- .../_app/immutable/chunks/2CRhGZHc.js | 21 - .../_app/immutable/chunks/4WsUhDWi.js | 143 - .../_app/immutable/chunks/4k6DpCgf.js | 128 - .../_app/immutable/chunks/5NasrULQ.js | 211 - .../_app/immutable/chunks/5mOJ66sL.js | 85 - .../_app/immutable/chunks/6TAPgKgc.js | 1 - .../_app/immutable/chunks/B1GmkH4o.js | 334 - .../_app/immutable/chunks/B2cHk4HI.js | 16 - .../_app/immutable/chunks/B4HM4TqG.js | 1539 - .../_app/immutable/chunks/B6ZK_HZO.js | 50 + .../_app/immutable/chunks/BA2Qx8r3.js | 781 + .../_app/immutable/chunks/BBgyHb-Z.js | 359 + .../_app/immutable/chunks/BCONGQnO.js | 294 - .../_app/immutable/chunks/BDALf20I.js | 1717 - .../_app/immutable/chunks/BF50aS-j.js | 261 + .../_app/immutable/chunks/BFFUopoM.js | 43 + .../_app/immutable/chunks/BHI5vujT.js | 40 + .../_app/immutable/chunks/BHr_eBwR.js | 1 - .../_app/immutable/chunks/BI7eddl7.js | 100 + .../_app/immutable/chunks/BKioTOWR.js | 61 + .../_app/immutable/chunks/BMKgGW48.js | 27 - .../_app/immutable/chunks/BMfwGdZU.js | 1 - .../_app/immutable/chunks/BNZUboE0.js | 370 - .../_app/immutable/chunks/BOREeBzQ.js | 37 + .../_app/immutable/chunks/BRM3t761.js | 2166 + .../_app/immutable/chunks/BSXXHLQ0.js | 40 + .../_app/immutable/chunks/BUhRjcOt.js | 34 - .../_app/immutable/chunks/Bke_korE.js | 224 - .../_app/immutable/chunks/Blc0Ir5M.js | 40 + .../_app/immutable/chunks/Bn0Xcwmn.js | 369 + .../_app/immutable/chunks/BpEsgMDn.js | 1 - .../_app/immutable/chunks/BpFpuxGr.js | 1 - .../_app/immutable/chunks/BpoSU4rb.js | 40 + .../_app/immutable/chunks/BrZ10JY-.js | 40 - .../_app/immutable/chunks/BsOIMr0T.js | 52 + .../_app/immutable/chunks/BtAj0icR.js | 1 - .../_app/immutable/chunks/BtP6pfnb.js | 24 - .../_app/immutable/chunks/BuTItAOu.js | 50 - .../_app/immutable/chunks/BvbG2Lay.js | 92 - .../_app/immutable/chunks/ByKBPM-D.js | 129 - .../_app/immutable/chunks/Bzak7iHL.js | 2 - .../_app/immutable/chunks/C-Y7nmnD.js | 28 - .../_app/immutable/chunks/C0GlPMrk.js | 137 + .../_app/immutable/chunks/C2Ms0SfR.js | 1 - .../_app/immutable/chunks/C3E1P42D.js | 40 + .../_app/immutable/chunks/C4yB2Gnm.js | 40 + .../_app/immutable/chunks/C5GsJ62f.js | 80 - .../_app/immutable/chunks/C5yqZvKC.js | 482 + .../_app/immutable/chunks/CAQlJ3np.js | 1 - .../_app/immutable/chunks/CBqzI9hL.js | 665 - .../_app/immutable/chunks/CDZgL_Bh.js | 1 - .../_app/immutable/chunks/CHGjpGz-.js | 40 + .../_app/immutable/chunks/CMs8vKjq.js | 27 - .../_app/immutable/chunks/CMvZtFtm.js | 1988 + .../_app/immutable/chunks/CQklNc9N.js | 289 - .../_app/immutable/chunks/CV9xcpLq.js | 120 + .../_app/immutable/chunks/CVCd3urP.js | 24 - .../_app/immutable/chunks/CVa8RI1g.js | 40 + .../_app/immutable/chunks/CXkjfmFU.js | 314 + .../_app/immutable/chunks/CYItkO2S.js | 1 - .../_app/immutable/chunks/CZW2bcQi.js | 244 - .../_app/immutable/chunks/CZlv7MYe.js | 40 + .../_app/immutable/chunks/CdTXrPIO.js | 77 + .../_app/immutable/chunks/CeLr1p76.js | 13 - .../_app/immutable/chunks/CgCA7Awo.js | 159 + .../_app/immutable/chunks/Ch2Ub8FX.js | 41 + .../_app/immutable/chunks/ChY_8ULT.js | 37 - .../_app/immutable/chunks/ChoU6b3z.js | 1 - .../_app/immutable/chunks/ClOhzjRc.js | 115 - .../_app/immutable/chunks/CmAc-jwz.js | 1 - .../_app/immutable/chunks/CmhsLcKe.js | 40 + .../_app/immutable/chunks/Cp3o644A.js | 15 - .../_app/immutable/chunks/Cqwd83E5.js | 420 + .../_app/immutable/chunks/CyB--sFG.js | 2129 + .../_app/immutable/chunks/D1ivTjwA.js | 37 - .../_app/immutable/chunks/D2m5UD3G.js | 79 - .../_app/immutable/chunks/D35KiPL1.js | 2 - .../_app/immutable/chunks/D3yDgRbd.js | 97 + .../_app/immutable/chunks/D3yaN7Zl.js | 1354 + .../_app/immutable/chunks/DBSOMMI_.js | 84 + .../_app/immutable/chunks/DCxPsWiR.js | 939 - .../_app/immutable/chunks/DCynssDD.js | 54 + .../_app/immutable/chunks/DFzO1c4b.js | 1 - .../_app/immutable/chunks/DLfdYhzo.js | 109 + .../_app/immutable/chunks/DM9nRpoa.js | 1684 - .../_app/immutable/chunks/DS58drb5.js | 1 - .../_app/immutable/chunks/DS5O-Inb.js | 57 - .../_app/immutable/chunks/DTFgqBF9.js | 126 + .../_app/immutable/chunks/DUoKDNpf.js | 1678 - .../_app/immutable/chunks/DV6L2nvf.js | 40 - .../_app/immutable/chunks/DVA6u9-7.js | 172 + .../_app/immutable/chunks/DXjtejww.js | 30 - .../_app/immutable/chunks/DdJK9GIy.js | 1 - .../_app/immutable/chunks/DffDvEhl.js | 1489 - .../_app/immutable/chunks/DhR_xAc4.js | 1 - .../_app/immutable/chunks/DkBFL3pa.js | 32 - .../_app/immutable/chunks/DklPLC_x.js | 86 - .../_app/immutable/chunks/Dmqg20ho.js | 2130 + .../_app/immutable/chunks/DnhglgUZ.js | 1 - .../_app/immutable/chunks/DoL3ojdE.js | 167 + .../_app/immutable/chunks/DouSnzU9.js | 40 + .../_app/immutable/chunks/Dp1pzeXC.js | 51 - .../_app/immutable/chunks/Dpga8uG-.js | 151 + .../_app/immutable/chunks/Drv8f_fG.js | 18 - .../_app/immutable/chunks/DsJqb9ei.js | 1023 - .../_app/immutable/chunks/Dt3xBOvm.js | 58 + .../_app/immutable/chunks/DueIxFLX.js | 87 + .../_app/immutable/chunks/EXYzlOI1.js | 1 - .../_app/immutable/chunks/F0pgzfyy.js | 2 - .../_app/immutable/chunks/GVP1MJz5.js | 18 - .../_app/immutable/chunks/KvV259my.js | 1527 - .../_app/immutable/chunks/LGRbXsL1.js | 40 + .../_app/immutable/chunks/P77cUGnY.js | 73 + .../_app/immutable/chunks/U908S-6f.js | 231 - .../_app/immutable/chunks/Y9es74tr.js | 438 - .../_app/immutable/chunks/Z_72d8Vp.js | 82 + .../_app/immutable/chunks/ZzI7cLBE.js | 59 - .../_app/immutable/chunks/cUtKXcx3.js | 15 - .../_app/immutable/chunks/fZ59cmjx.js | 1 - .../_app/immutable/chunks/g8c1BvYP.js | 115 - .../_app/immutable/chunks/g9MKNE1A.js | 52 + .../_app/immutable/chunks/hLPYzGnf.js | 1 - .../_app/immutable/chunks/lE0oaQc5.js | 153 + .../_app/immutable/chunks/m3o6lEf1.js | 54 + .../_app/immutable/chunks/rLj4C5Bn.js | 26 - .../_app/immutable/chunks/sZ1mzRzK.js | 33 - .../_app/immutable/chunks/start.CJ_UwIBa.js | 2 - .../_app/immutable/chunks/wZ7b5CwQ.js | 75 + .../_app/immutable/chunks/x1RL6Wqy.js | 64 - .../_app/immutable/chunks/yW7U80iv.js | 17408 ++++ .../_app/immutable/entry/app.CuVZ6Ons.js | 20 - .../_app/immutable/entry/app.DTM8GXam.js | 6318 ++ .../_app/immutable/entry/app.iDaujbEI.js | 2 - .../_app/immutable/entry/start.CJ_UwIBa.js | 1 - .../_app/immutable/entry/start.CqSbdZXc.js | 1 - .../_app/immutable/entry/start.cg9kNiPJ.js | 37 + .../_app/immutable/nodes/0.CnnlsrhC.js | 1 - .../_app/immutable/nodes/0.D5b7oOw2.js | 1845 + .../_app/immutable/nodes/0.DIpSCqpd.js | 1 - .../_app/immutable/nodes/1.-aaO_7rD.js | 1 - .../_app/immutable/nodes/1.BMc-PacL.js | 69 + .../_app/immutable/nodes/1.DpC5h7KA.js | 1 - .../_app/immutable/nodes/10.2PlMuzkM.js | 2 - .../_app/immutable/nodes/10.DqbXhTAj.js | 559 + .../_app/immutable/nodes/11.7LNU-V2c.js | 2 - .../_app/immutable/nodes/11.C3Fd3lks.js | 563 + .../_app/immutable/nodes/12.B7-BJxmw.js | 1915 + .../_app/immutable/nodes/12.Dk7Cyr8v.js | 1566 - .../_app/immutable/nodes/13.DbQSn9aq.js | 239 + .../_app/immutable/nodes/13.DsAxPfo7.js | 2 - .../_app/immutable/nodes/14.ClqwdR4T.js | 1079 + .../_app/immutable/nodes/14.TE67n0On.js | 1 - .../_app/immutable/nodes/15.BKIY6Gje.js | 1 - .../_app/immutable/nodes/15.D6A8EYfF.js | 103 + .../_app/immutable/nodes/16.CKya8A82.js | 1 - .../_app/immutable/nodes/16.DTKQOukW.js | 142 + .../_app/immutable/nodes/17.C45_aAtw.js | 1 - .../_app/immutable/nodes/17.CONNNOye.js | 831 + .../nodes/{18.WvT7vRmm.js => 18.24JvCqRi.js} | 62 +- .../_app/immutable/nodes/19.B2QYN1F_.js | 64 + .../_app/immutable/nodes/19.Dqy7C9y2.js | 6 - .../_app/immutable/nodes/2.-6emjql3.js | 142 + .../_app/immutable/nodes/2.BY7SdjrD.js | 47015 ---------- .../_app/immutable/nodes/2.DTTH4yjc.js | 1 - .../_app/immutable/nodes/20.LCTNv26D.js | 59 + .../_app/immutable/nodes/20.ppFj_8Kx.js | 8 - .../nodes/{21.PUjACzZY.js => 21.zScYLJw9.js} | 62 +- .../_app/immutable/nodes/3.BjOx-5ND.js | 1 - .../_app/immutable/nodes/3.DOMAwJeg.js | 142 + .../_app/immutable/nodes/4.CrDfIbdR.js | 71782 ++++++++++++++++ .../_app/immutable/nodes/4.DB4WphWP.js | 781 + .../_app/immutable/nodes/4.DLrwqUeR.js | 782 - .../_app/immutable/nodes/5.cZCL4YVE.js | 49 + .../_app/immutable/nodes/5.lvNarnfM.js | 1 - .../_app/immutable/nodes/6.DyKsgUf2.js | 1 - .../_app/immutable/nodes/6.WPRvZASS.js | 75 + .../_app/immutable/nodes/7.ACRjrnuj.js | 1250 + .../_app/immutable/nodes/7.C4jrLY7T.js | 1 - .../_app/immutable/nodes/8.BbOUPQlW.js | 433 + .../_app/immutable/nodes/8.DIMn846h.js | 1 - .../_app/immutable/nodes/9.BhPlDH9q.js | 1 - .../_app/immutable/nodes/9.Cn-noR6e.js | 47 + frontend-backup/_app/info.js | 302 - frontend-backup/_app/version.json | 4 +- .../{admin/index.html => admin.html} | 98 +- frontend-backup/admin/content.html | 532 - frontend-backup/css2.css | 108 - frontend-backup/download.png | Bin 189 -> 0 bytes frontend-backup/download.svg | 7 - frontend-backup/img/apple-touch-icon.png | Bin 0 -> 915 bytes frontend-backup/img/favicon-96x96.png | Bin 0 -> 232 bytes frontend-backup/img/logo-512x512.png | Bin 0 -> 9576 bytes frontend-backup/img/logo.png | Bin 0 -> 285 bytes frontend-backup/img/og-image-mobile.png | Bin 0 -> 6597 bytes frontend-backup/img/og-image.png | Bin 263088 -> 8825 bytes .../img/pwa-country-leaderboard-mobile.png | Bin 0 -> 273833 bytes frontend-backup/img/pwa-kiev-mobile.png | Bin 0 -> 1788947 bytes .../img/pwa-paint-heart-mobile.png | Bin 0 -> 542839 bytes frontend-backup/img/pwa-void-mobile.png | Bin 0 -> 520064 bytes .../img/web-app-manifest-192x192.png | Bin 3265 -> 992 bytes .../img/web-app-manifest-512x512.png | Bin 0 -> 1559 bytes frontend-backup/index.html | 194 +- frontend-backup/join.html | 131 + frontend-backup/login.html | 108 - frontend-backup/maps/styles/fiord | 8 +- frontend-backup/moderation.html | 139 + frontend-backup/moderation/index.html | 140 - frontend-backup/offline.html | 131 + frontend-backup/payment/success.html | 130 + frontend-backup/profile-picture.html | 137 + frontend-backup/service-worker.js | 1330 +- frontend-backup/site.webmanifest | 8 +- frontend-src/BUILD.md | 2 +- frontend-src/CONFIGURATION_SUMMARY.md | 2 +- frontend-src/README.md | 4 +- frontend-src/package-lock.json | 4 +- frontend-src/package.json | 2 +- frontend-src/src/app.html | 6 +- frontend-src/src/routes/admin/+page.svelte | 2 +- frontend-src/src/routes/join/+page.svelte | 2 +- .../src/routes/moderation/+page.svelte | 2 +- frontend-src/static/_app/info.js | 2 +- frontend/404.html | 6 +- frontend/_app/immutable/chunks/D8zjZoA1.js | 2 +- frontend/_app/immutable/nodes/4.f2OwZgt0.js | 2 +- frontend/_app/immutable/nodes/5.DDnyeRGE.js | 2 +- frontend/_app/immutable/nodes/6.B67Jmz5Y.js | 2 +- frontend/_app/info.js | 2 +- frontend/admin.html | 6 +- frontend/index.html | 6 +- frontend/join.html | 6 +- frontend/login.html | 6 +- frontend/moderation.html | 6 +- package-lock.json | 314 +- package.json | 10 +- prisma/schema.prisma | 3 +- scripts/README.md | 175 + scripts/import-regions.ts | 172 + scripts/regions.csv | 1025 + scripts/scrape_regions.py | 381 + scripts/tile_region_mapping.csv | 12279 +++ src/config/regions.ts | 19 +- src/index.ts | 39 +- src/public/login.html | 2 +- src/routes/auth.ts | 116 +- src/routes/experiments.ts | 42 + src/routes/moderator.ts | 31 + src/routes/site-content.ts | 8 +- src/services/pixel.ts | 2 +- src/services/user.ts | 16 +- 285 files changed, 147710 insertions(+), 120520 deletions(-) create mode 100644 ADMIN-CONTENT-EDITOR.md create mode 100644 CONTENT-MANAGEMENT.md create mode 100644 frontend-backup/.gitignore create mode 100644 frontend-backup/26/2025/08/12/horse.png delete mode 100644 frontend-backup/PixelifySans-latin.vdc2vUDH.woff2 delete mode 100644 frontend-backup/TODO.md delete mode 100644 frontend-backup/_app/admin-content-editor.html create mode 100644 frontend-backup/_app/immutable/assets/0.0xfYb4uv.css delete mode 100644 frontend-backup/_app/immutable/assets/0.CmqRY0au.css delete mode 100644 frontend-backup/_app/immutable/assets/0.DQCxyt33.css delete mode 100644 frontend-backup/_app/immutable/assets/2.BtKF873c.css create mode 100644 frontend-backup/_app/immutable/assets/Geist-cyrillic.CHSlOQsW.woff2 create mode 100644 frontend-backup/_app/immutable/assets/Geist-latin-ext.DMtmJ5ZE.woff2 create mode 100644 frontend-backup/_app/immutable/assets/GeistMono-cyrillic.BZdD_g9V.woff2 create mode 100644 frontend-backup/_app/immutable/assets/GeistMono-latin-ext.b6lpi8_2.woff2 create mode 100644 frontend-backup/_app/immutable/assets/GeistMono-latin.Cjtb1TV-.woff2 create mode 100644 frontend-backup/_app/immutable/assets/PixelifySans-cyrillic.CPPz0Qvd.woff2 delete mode 100644 frontend-backup/_app/immutable/chunks/0.CnnlsrhC.js delete mode 100644 frontend-backup/_app/immutable/chunks/07L1R_bo.js create mode 100644 frontend-backup/_app/immutable/chunks/0wx1llIh.js delete mode 100644 frontend-backup/_app/immutable/chunks/1lh-LSvX.js delete mode 100644 frontend-backup/_app/immutable/chunks/2.BY7SdjrD.js delete mode 100644 frontend-backup/_app/immutable/chunks/2CRhGZHc.js delete mode 100644 frontend-backup/_app/immutable/chunks/4WsUhDWi.js delete mode 100644 frontend-backup/_app/immutable/chunks/4k6DpCgf.js delete mode 100644 frontend-backup/_app/immutable/chunks/5NasrULQ.js delete mode 100644 frontend-backup/_app/immutable/chunks/5mOJ66sL.js delete mode 100644 frontend-backup/_app/immutable/chunks/6TAPgKgc.js delete mode 100644 frontend-backup/_app/immutable/chunks/B1GmkH4o.js delete mode 100644 frontend-backup/_app/immutable/chunks/B2cHk4HI.js delete mode 100644 frontend-backup/_app/immutable/chunks/B4HM4TqG.js create mode 100644 frontend-backup/_app/immutable/chunks/B6ZK_HZO.js create mode 100644 frontend-backup/_app/immutable/chunks/BA2Qx8r3.js create mode 100644 frontend-backup/_app/immutable/chunks/BBgyHb-Z.js delete mode 100644 frontend-backup/_app/immutable/chunks/BCONGQnO.js delete mode 100644 frontend-backup/_app/immutable/chunks/BDALf20I.js create mode 100644 frontend-backup/_app/immutable/chunks/BF50aS-j.js create mode 100644 frontend-backup/_app/immutable/chunks/BFFUopoM.js create mode 100644 frontend-backup/_app/immutable/chunks/BHI5vujT.js delete mode 100644 frontend-backup/_app/immutable/chunks/BHr_eBwR.js create mode 100644 frontend-backup/_app/immutable/chunks/BI7eddl7.js create mode 100644 frontend-backup/_app/immutable/chunks/BKioTOWR.js delete mode 100644 frontend-backup/_app/immutable/chunks/BMKgGW48.js delete mode 100644 frontend-backup/_app/immutable/chunks/BMfwGdZU.js delete mode 100644 frontend-backup/_app/immutable/chunks/BNZUboE0.js create mode 100644 frontend-backup/_app/immutable/chunks/BOREeBzQ.js create mode 100644 frontend-backup/_app/immutable/chunks/BRM3t761.js create mode 100644 frontend-backup/_app/immutable/chunks/BSXXHLQ0.js delete mode 100644 frontend-backup/_app/immutable/chunks/BUhRjcOt.js delete mode 100644 frontend-backup/_app/immutable/chunks/Bke_korE.js create mode 100644 frontend-backup/_app/immutable/chunks/Blc0Ir5M.js create mode 100644 frontend-backup/_app/immutable/chunks/Bn0Xcwmn.js delete mode 100644 frontend-backup/_app/immutable/chunks/BpEsgMDn.js delete mode 100644 frontend-backup/_app/immutable/chunks/BpFpuxGr.js create mode 100644 frontend-backup/_app/immutable/chunks/BpoSU4rb.js delete mode 100644 frontend-backup/_app/immutable/chunks/BrZ10JY-.js create mode 100644 frontend-backup/_app/immutable/chunks/BsOIMr0T.js delete mode 100644 frontend-backup/_app/immutable/chunks/BtAj0icR.js delete mode 100644 frontend-backup/_app/immutable/chunks/BtP6pfnb.js delete mode 100644 frontend-backup/_app/immutable/chunks/BuTItAOu.js delete mode 100644 frontend-backup/_app/immutable/chunks/BvbG2Lay.js delete mode 100644 frontend-backup/_app/immutable/chunks/ByKBPM-D.js delete mode 100644 frontend-backup/_app/immutable/chunks/Bzak7iHL.js delete mode 100644 frontend-backup/_app/immutable/chunks/C-Y7nmnD.js create mode 100644 frontend-backup/_app/immutable/chunks/C0GlPMrk.js delete mode 100644 frontend-backup/_app/immutable/chunks/C2Ms0SfR.js create mode 100644 frontend-backup/_app/immutable/chunks/C3E1P42D.js create mode 100644 frontend-backup/_app/immutable/chunks/C4yB2Gnm.js delete mode 100644 frontend-backup/_app/immutable/chunks/C5GsJ62f.js create mode 100644 frontend-backup/_app/immutable/chunks/C5yqZvKC.js delete mode 100644 frontend-backup/_app/immutable/chunks/CAQlJ3np.js delete mode 100644 frontend-backup/_app/immutable/chunks/CBqzI9hL.js delete mode 100644 frontend-backup/_app/immutable/chunks/CDZgL_Bh.js create mode 100644 frontend-backup/_app/immutable/chunks/CHGjpGz-.js delete mode 100644 frontend-backup/_app/immutable/chunks/CMs8vKjq.js create mode 100644 frontend-backup/_app/immutable/chunks/CMvZtFtm.js delete mode 100644 frontend-backup/_app/immutable/chunks/CQklNc9N.js create mode 100644 frontend-backup/_app/immutable/chunks/CV9xcpLq.js delete mode 100644 frontend-backup/_app/immutable/chunks/CVCd3urP.js create mode 100644 frontend-backup/_app/immutable/chunks/CVa8RI1g.js create mode 100644 frontend-backup/_app/immutable/chunks/CXkjfmFU.js delete mode 100644 frontend-backup/_app/immutable/chunks/CYItkO2S.js delete mode 100644 frontend-backup/_app/immutable/chunks/CZW2bcQi.js create mode 100644 frontend-backup/_app/immutable/chunks/CZlv7MYe.js create mode 100644 frontend-backup/_app/immutable/chunks/CdTXrPIO.js delete mode 100644 frontend-backup/_app/immutable/chunks/CeLr1p76.js create mode 100644 frontend-backup/_app/immutable/chunks/CgCA7Awo.js create mode 100644 frontend-backup/_app/immutable/chunks/Ch2Ub8FX.js delete mode 100644 frontend-backup/_app/immutable/chunks/ChY_8ULT.js delete mode 100644 frontend-backup/_app/immutable/chunks/ChoU6b3z.js delete mode 100644 frontend-backup/_app/immutable/chunks/ClOhzjRc.js delete mode 100644 frontend-backup/_app/immutable/chunks/CmAc-jwz.js create mode 100644 frontend-backup/_app/immutable/chunks/CmhsLcKe.js delete mode 100644 frontend-backup/_app/immutable/chunks/Cp3o644A.js create mode 100644 frontend-backup/_app/immutable/chunks/Cqwd83E5.js create mode 100644 frontend-backup/_app/immutable/chunks/CyB--sFG.js delete mode 100644 frontend-backup/_app/immutable/chunks/D1ivTjwA.js delete mode 100644 frontend-backup/_app/immutable/chunks/D2m5UD3G.js delete mode 100644 frontend-backup/_app/immutable/chunks/D35KiPL1.js create mode 100644 frontend-backup/_app/immutable/chunks/D3yDgRbd.js create mode 100644 frontend-backup/_app/immutable/chunks/D3yaN7Zl.js create mode 100644 frontend-backup/_app/immutable/chunks/DBSOMMI_.js delete mode 100644 frontend-backup/_app/immutable/chunks/DCxPsWiR.js create mode 100644 frontend-backup/_app/immutable/chunks/DCynssDD.js delete mode 100644 frontend-backup/_app/immutable/chunks/DFzO1c4b.js create mode 100644 frontend-backup/_app/immutable/chunks/DLfdYhzo.js delete mode 100644 frontend-backup/_app/immutable/chunks/DM9nRpoa.js delete mode 100644 frontend-backup/_app/immutable/chunks/DS58drb5.js delete mode 100644 frontend-backup/_app/immutable/chunks/DS5O-Inb.js create mode 100644 frontend-backup/_app/immutable/chunks/DTFgqBF9.js delete mode 100644 frontend-backup/_app/immutable/chunks/DUoKDNpf.js delete mode 100644 frontend-backup/_app/immutable/chunks/DV6L2nvf.js create mode 100644 frontend-backup/_app/immutable/chunks/DVA6u9-7.js delete mode 100644 frontend-backup/_app/immutable/chunks/DXjtejww.js delete mode 100644 frontend-backup/_app/immutable/chunks/DdJK9GIy.js delete mode 100644 frontend-backup/_app/immutable/chunks/DffDvEhl.js delete mode 100644 frontend-backup/_app/immutable/chunks/DhR_xAc4.js delete mode 100644 frontend-backup/_app/immutable/chunks/DkBFL3pa.js delete mode 100644 frontend-backup/_app/immutable/chunks/DklPLC_x.js create mode 100644 frontend-backup/_app/immutable/chunks/Dmqg20ho.js delete mode 100644 frontend-backup/_app/immutable/chunks/DnhglgUZ.js create mode 100644 frontend-backup/_app/immutable/chunks/DoL3ojdE.js create mode 100644 frontend-backup/_app/immutable/chunks/DouSnzU9.js delete mode 100644 frontend-backup/_app/immutable/chunks/Dp1pzeXC.js create mode 100644 frontend-backup/_app/immutable/chunks/Dpga8uG-.js delete mode 100644 frontend-backup/_app/immutable/chunks/Drv8f_fG.js delete mode 100644 frontend-backup/_app/immutable/chunks/DsJqb9ei.js create mode 100644 frontend-backup/_app/immutable/chunks/Dt3xBOvm.js create mode 100644 frontend-backup/_app/immutable/chunks/DueIxFLX.js delete mode 100644 frontend-backup/_app/immutable/chunks/EXYzlOI1.js delete mode 100644 frontend-backup/_app/immutable/chunks/F0pgzfyy.js delete mode 100644 frontend-backup/_app/immutable/chunks/GVP1MJz5.js delete mode 100644 frontend-backup/_app/immutable/chunks/KvV259my.js create mode 100644 frontend-backup/_app/immutable/chunks/LGRbXsL1.js create mode 100644 frontend-backup/_app/immutable/chunks/P77cUGnY.js delete mode 100644 frontend-backup/_app/immutable/chunks/U908S-6f.js delete mode 100644 frontend-backup/_app/immutable/chunks/Y9es74tr.js create mode 100644 frontend-backup/_app/immutable/chunks/Z_72d8Vp.js delete mode 100644 frontend-backup/_app/immutable/chunks/ZzI7cLBE.js delete mode 100644 frontend-backup/_app/immutable/chunks/cUtKXcx3.js delete mode 100644 frontend-backup/_app/immutable/chunks/fZ59cmjx.js delete mode 100644 frontend-backup/_app/immutable/chunks/g8c1BvYP.js create mode 100644 frontend-backup/_app/immutable/chunks/g9MKNE1A.js delete mode 100644 frontend-backup/_app/immutable/chunks/hLPYzGnf.js create mode 100644 frontend-backup/_app/immutable/chunks/lE0oaQc5.js create mode 100644 frontend-backup/_app/immutable/chunks/m3o6lEf1.js delete mode 100644 frontend-backup/_app/immutable/chunks/rLj4C5Bn.js delete mode 100644 frontend-backup/_app/immutable/chunks/sZ1mzRzK.js delete mode 100644 frontend-backup/_app/immutable/chunks/start.CJ_UwIBa.js create mode 100644 frontend-backup/_app/immutable/chunks/wZ7b5CwQ.js delete mode 100644 frontend-backup/_app/immutable/chunks/x1RL6Wqy.js create mode 100644 frontend-backup/_app/immutable/chunks/yW7U80iv.js delete mode 100644 frontend-backup/_app/immutable/entry/app.CuVZ6Ons.js create mode 100644 frontend-backup/_app/immutable/entry/app.DTM8GXam.js delete mode 100644 frontend-backup/_app/immutable/entry/app.iDaujbEI.js delete mode 100644 frontend-backup/_app/immutable/entry/start.CJ_UwIBa.js delete mode 100644 frontend-backup/_app/immutable/entry/start.CqSbdZXc.js create mode 100644 frontend-backup/_app/immutable/entry/start.cg9kNiPJ.js delete mode 100644 frontend-backup/_app/immutable/nodes/0.CnnlsrhC.js create mode 100644 frontend-backup/_app/immutable/nodes/0.D5b7oOw2.js delete mode 100644 frontend-backup/_app/immutable/nodes/0.DIpSCqpd.js delete mode 100644 frontend-backup/_app/immutable/nodes/1.-aaO_7rD.js create mode 100644 frontend-backup/_app/immutable/nodes/1.BMc-PacL.js delete mode 100644 frontend-backup/_app/immutable/nodes/1.DpC5h7KA.js delete mode 100644 frontend-backup/_app/immutable/nodes/10.2PlMuzkM.js create mode 100644 frontend-backup/_app/immutable/nodes/10.DqbXhTAj.js delete mode 100644 frontend-backup/_app/immutable/nodes/11.7LNU-V2c.js create mode 100644 frontend-backup/_app/immutable/nodes/11.C3Fd3lks.js create mode 100644 frontend-backup/_app/immutable/nodes/12.B7-BJxmw.js delete mode 100644 frontend-backup/_app/immutable/nodes/12.Dk7Cyr8v.js create mode 100644 frontend-backup/_app/immutable/nodes/13.DbQSn9aq.js delete mode 100644 frontend-backup/_app/immutable/nodes/13.DsAxPfo7.js create mode 100644 frontend-backup/_app/immutable/nodes/14.ClqwdR4T.js delete mode 100644 frontend-backup/_app/immutable/nodes/14.TE67n0On.js delete mode 100644 frontend-backup/_app/immutable/nodes/15.BKIY6Gje.js create mode 100644 frontend-backup/_app/immutable/nodes/15.D6A8EYfF.js delete mode 100644 frontend-backup/_app/immutable/nodes/16.CKya8A82.js create mode 100644 frontend-backup/_app/immutable/nodes/16.DTKQOukW.js delete mode 100644 frontend-backup/_app/immutable/nodes/17.C45_aAtw.js create mode 100644 frontend-backup/_app/immutable/nodes/17.CONNNOye.js rename frontend-backup/_app/immutable/nodes/{18.WvT7vRmm.js => 18.24JvCqRi.js} (98%) create mode 100644 frontend-backup/_app/immutable/nodes/19.B2QYN1F_.js delete mode 100644 frontend-backup/_app/immutable/nodes/19.Dqy7C9y2.js create mode 100644 frontend-backup/_app/immutable/nodes/2.-6emjql3.js delete mode 100644 frontend-backup/_app/immutable/nodes/2.BY7SdjrD.js delete mode 100644 frontend-backup/_app/immutable/nodes/2.DTTH4yjc.js create mode 100644 frontend-backup/_app/immutable/nodes/20.LCTNv26D.js delete mode 100644 frontend-backup/_app/immutable/nodes/20.ppFj_8Kx.js rename frontend-backup/_app/immutable/nodes/{21.PUjACzZY.js => 21.zScYLJw9.js} (98%) delete mode 100644 frontend-backup/_app/immutable/nodes/3.BjOx-5ND.js create mode 100644 frontend-backup/_app/immutable/nodes/3.DOMAwJeg.js create mode 100644 frontend-backup/_app/immutable/nodes/4.CrDfIbdR.js create mode 100644 frontend-backup/_app/immutable/nodes/4.DB4WphWP.js delete mode 100644 frontend-backup/_app/immutable/nodes/4.DLrwqUeR.js create mode 100644 frontend-backup/_app/immutable/nodes/5.cZCL4YVE.js delete mode 100644 frontend-backup/_app/immutable/nodes/5.lvNarnfM.js delete mode 100644 frontend-backup/_app/immutable/nodes/6.DyKsgUf2.js create mode 100644 frontend-backup/_app/immutable/nodes/6.WPRvZASS.js create mode 100644 frontend-backup/_app/immutable/nodes/7.ACRjrnuj.js delete mode 100644 frontend-backup/_app/immutable/nodes/7.C4jrLY7T.js create mode 100644 frontend-backup/_app/immutable/nodes/8.BbOUPQlW.js delete mode 100644 frontend-backup/_app/immutable/nodes/8.DIMn846h.js delete mode 100644 frontend-backup/_app/immutable/nodes/9.BhPlDH9q.js create mode 100644 frontend-backup/_app/immutable/nodes/9.Cn-noR6e.js delete mode 100644 frontend-backup/_app/info.js rename frontend-backup/{admin/index.html => admin.html} (51%) delete mode 100644 frontend-backup/admin/content.html delete mode 100644 frontend-backup/css2.css delete mode 100644 frontend-backup/download.png delete mode 100644 frontend-backup/download.svg create mode 100644 frontend-backup/img/apple-touch-icon.png create mode 100644 frontend-backup/img/favicon-96x96.png create mode 100644 frontend-backup/img/logo-512x512.png create mode 100644 frontend-backup/img/logo.png create mode 100644 frontend-backup/img/og-image-mobile.png create mode 100644 frontend-backup/img/pwa-country-leaderboard-mobile.png create mode 100644 frontend-backup/img/pwa-kiev-mobile.png create mode 100644 frontend-backup/img/pwa-paint-heart-mobile.png create mode 100644 frontend-backup/img/pwa-void-mobile.png create mode 100644 frontend-backup/img/web-app-manifest-512x512.png create mode 100644 frontend-backup/join.html delete mode 100644 frontend-backup/login.html create mode 100644 frontend-backup/moderation.html delete mode 100644 frontend-backup/moderation/index.html create mode 100644 frontend-backup/offline.html create mode 100644 frontend-backup/payment/success.html create mode 100644 frontend-backup/profile-picture.html create mode 100644 scripts/README.md create mode 100644 scripts/import-regions.ts create mode 100644 scripts/regions.csv create mode 100644 scripts/scrape_regions.py create mode 100644 scripts/tile_region_mapping.csv create mode 100644 src/routes/experiments.ts diff --git a/.env.docker b/.env.docker index 778f842..e384e45 100644 --- a/.env.docker +++ b/.env.docker @@ -6,13 +6,13 @@ PORT=3000 # Database (MySQL container) MYSQL_ROOT_PASSWORD=rootpassword -MYSQL_DATABASE=openplace -MYSQL_USER=openplace -MYSQL_PASSWORD=openplacepassword +MYSQL_DATABASE=FurryPlace +MYSQL_USER=FurryPlace +MYSQL_PASSWORD=FurryPlacepassword MYSQL_PORT=3306 # Database URL (used by Prisma) -DATABASE_URL="mysql://openplace:openplacepassword@mysql:3306/openplace" +DATABASE_URL="mysql://FurryPlace:FurryPlacepassword@mysql:3306/FurryPlace" # JWT Secret (CHANGE THIS IN PRODUCTION!) JWT_SECRET="your-secret-key-change-in-production" diff --git a/.env.example b/.env.example index de178b9..1693ebd 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,9 @@ PORT=3000 -DATABASE_URL="mysql://root:password@localhost/openplace" +DATABASE_URL="mysql://root:password@localhost/FurryPlace" JWT_SECRET="your-secret-key" + +# Google OAuth +GOOGLE_CLIENT_ID="your-google-client-id" +GOOGLE_CLIENT_SECRET="your-google-client-secret" +GOOGLE_CALLBACK_URL="http://localhost:3000/auth/google/callback" diff --git a/.gitmodules b/.gitmodules index 52e7841..678fbc3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "frontend"] path = frontend - url = https://github.com/openplaceteam/frontend + url = https://github.com/FurryPlaceteam/frontend diff --git a/ADMIN-CONTENT-EDITOR.md b/ADMIN-CONTENT-EDITOR.md new file mode 100644 index 0000000..6ebbc01 --- /dev/null +++ b/ADMIN-CONTENT-EDITOR.md @@ -0,0 +1,84 @@ +# Admin Content Editor Access + +## Quick Access + +The site content management editor is now available at: + +**URL:** `http://localhost:3000/_app/admin-content-editor.html` + +Or for production: + +**URL:** `https://yourdomain.com/_app/admin-content-editor.html` + +## Requirements + +- Must be logged in as an admin user +- User account must have `role='admin'` in the database +- Valid JWT authentication cookie + +## Features + +✅ Edit modal content (rules, instructions, help text) +✅ Update footer links (Discord, GitHub, Instagram, etc.) +✅ Manage multiple locales (English, Chinese, etc.) +✅ Add/remove/edit individual content items +✅ Bulk save changes +✅ Initialize default content with one click + +## File Locations + +**Important:** The `frontend/` directory is regenerated on every build! + +- **Source (for frontend-src builds):** [frontend-src/static/_app/admin-content-editor.html](frontend-src/static/_app/admin-content-editor.html) +- **Backup (for USE_FRONTEND_BACKUP=true):** [frontend-backup/_app/admin-content-editor.html](frontend-backup/_app/admin-content-editor.html) +- **Active (auto-generated):** `frontend/_app/admin-content-editor.html` (copied during build - DO NOT EDIT) + +### Which File to Edit? + +- **If using frontend-src builds:** Edit `frontend-src/static/_app/admin-content-editor.html` +- **If using frontend-backup:** Edit `frontend-backup/_app/admin-content-editor.html` +- **Never edit** files in `frontend/` - they get deleted on every build! + +## Integration + +The content editor is: +1. A standalone HTML page (no build required) +2. Uses vanilla JavaScript (no framework dependencies) +3. Authenticates using existing JWT cookies +4. Calls the site-content API endpoints + +## Adding to Admin Panel Navigation + +Since the admin panel is a compiled SvelteKit app, to add a navigation link: + +1. Edit the source Svelte file in `frontend-src/src/routes/admin/+page.svelte` +2. Add a link/button to `/_app/admin-content-editor.html` +3. Rebuild the frontend: `cd frontend-src && npm run build` + +**Or** simply bookmark/share the direct URL with your admin team! + +## Build Process + +### When using frontend-src: +```bash +cd frontend-src +npm run build +# Copies files from frontend-src/static/_app/ to frontend/_app/ +``` + +### When using frontend-backup (Docker): +```bash +docker-compose up --build -d +# With USE_FRONTEND_BACKUP=true in docker-compose.yml +# Copies files from frontend-backup/_app/ to frontend/_app/ +``` + +## API Endpoints Used + +- `GET /api/admin/site-content` - Fetch all content +- `POST /api/admin/site-content` - Create/update item +- `POST /api/admin/site-content/bulk` - Bulk update +- `DELETE /api/admin/site-content/:key` - Delete item +- `POST /api/admin/site-content/initialize` - Load defaults + +See [CONTENT-MANAGEMENT.md](CONTENT-MANAGEMENT.md) for detailed documentation. diff --git a/CLAUDE.md b/CLAUDE.md index b1d03e8..7491946 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -Openplace is an unofficial open-source backend for wplace (a collaborative pixel art canvas), built with TypeScript, tinyhttp, Prisma, and MySQL. The system manages user authentication, pixel painting with charge-based rate limiting, alliances, leaderboards, and moderation features. +FurryPlace is an unofficial open-source backend for wplace (a collaborative pixel art canvas), built with TypeScript, tinyhttp, Prisma, and MySQL. The system manages user authentication, pixel painting with charge-based rate limiting, alliances, leaderboards, and moderation features. ## Development Commands diff --git a/CONTENT-MANAGEMENT.md b/CONTENT-MANAGEMENT.md new file mode 100644 index 0000000..a1c1508 --- /dev/null +++ b/CONTENT-MANAGEMENT.md @@ -0,0 +1,220 @@ +# Site Content Management System + +This document explains how to manage site content (modals, rules, etc.) using the new database-driven system. + +## Overview + +The site content management system allows administrators to modify: +- Modal content (welcome modal, rules, instructions) +- Help text (paint faster, map lagging) +- Footer links and contact information +- Site title and branding +- Any other text content on the site + +Content is stored in MySQL and can be edited through an admin interface, supporting multiple locales (English, Chinese, etc.). + +## Architecture + +### Database Schema + +**Table: `SiteContent`** +- `id`: Auto-incrementing primary key +- `key`: Unique string identifier (e.g., `modal.rules.title`) +- `value`: Text content +- `locale`: Language code (en, zh, etc.) +- `createdAt`: Creation timestamp +- `updatedAt`: Last update timestamp + +### Backend API Endpoints + +**Public Endpoint:** +- `GET /api/site-content?locale=en` - Fetch all content for a locale (used by frontend) + +**Admin Endpoints (require authentication & admin role):** +- `GET /api/admin/site-content` - Get all content items +- `POST /api/admin/site-content` - Create or update a single item +- `POST /api/admin/site-content/bulk` - Bulk update multiple items +- `DELETE /api/admin/site-content/:key` - Delete an item +- `POST /api/admin/site-content/initialize` - Initialize default content + +### Frontend Integration + +**File: `frontend/_app/info.js`** +- Automatically loads content from API on page load +- Falls back to hardcoded defaults if API fails +- Uses MutationObserver to patch modals when they appear +- Supports locale switching + +## Setup Instructions + +### 1. Database Migration + +Run the Prisma migration to create the `SiteContent` table: + +```bash +pnpm db:push +``` + +### 2. Initialize Default Content + +After the database is set up, initialize the default content by making a POST request: + +```bash +curl -X POST http://localhost:3000/api/admin/site-content/initialize \ + -H "Cookie: j=YOUR_ADMIN_JWT_TOKEN" +``` + +Or use the admin UI (see below). + +### 3. Access the Admin UI + +Navigate to: `http://localhost:3000/_app/admin-content-editor.html` + +**Note:** You must be logged in as an admin with a valid JWT token in cookies. + +## Using the Admin UI + +### Interface Features + +1. **Locale Selector** - Switch between languages (en, zh) +2. **Reload Button** - Refresh content from database +3. **Add New Item** - Create new content entries +4. **Initialize Defaults** - Populate database with default content +5. **Save All Changes** - Bulk save modified items +6. **Delete Button** - Remove individual items + +### Content Keys + +Content is organized using dot-notation keys: + +#### Modal Content Keys + +**Overview Section:** +- `modal.overview.title` - "Overview" heading +- `modal.overview.videoUrl` - YouTube embed URL + +**Paint Faster Section:** +- `modal.paintFaster.title` - Section heading +- `modal.paintFaster.mobile` - Instructions for mobile users +- `modal.paintFaster.desktop` - Instructions for desktop users + +**Map Lagging Section:** +- `modal.mapLagging.title` - Section heading +- `modal.mapLagging.text` - Help text +- `modal.mapLagging.link` - Link to hardware acceleration guide + +**Rules Section:** +- `modal.rules.title` - "Rules" heading +- `modal.rules.badge` - Badge text (e.g., "Important") +- `modal.rules.item.0` - First rule (with emoji) +- `modal.rules.item.1` - Second rule +- `modal.rules.item.N` - Additional rules (add as needed) +- `modal.rules.footer` - Footer warning text + +**Footer Section:** +- `modal.footer.email` - Contact email +- `modal.footer.discord.url` - Discord invite URL +- `modal.footer.discord.text` - Discord link text +- `modal.footer.github.url` - GitHub organization URL +- `modal.footer.github.text` - GitHub link text +- `modal.footer.instagram.url` - Instagram URL +- `modal.footer.instagram.text` - Instagram link text +- `modal.footer.terms.url` - Terms of service URL +- `modal.footer.terms.text` - Terms link text +- `modal.footer.privacy.url` - Privacy policy URL +- `modal.footer.privacy.text` - Privacy link text + +**Site-wide:** +- `site.title` - Site title/branding + +### Adding New Rules + +To add a new rule to the rules modal: + +1. Click "Add New Item" +2. Set key to `modal.rules.item.4` (or next available number) +3. Set value to `🚀 Your new rule text here` +4. Click "Add Item" +5. Repeat for other locales (en, zh, etc.) + +The frontend will automatically display all numbered rules in order. + +### Workflow Example + +1. **Login as admin** to your FurryPlace instance +2. **Navigate to** `/_app/admin-content-editor.html` +3. **Select locale** (e.g., English) +4. **Click "Initialize Defaults"** (first time only) +5. **Edit content** directly in the text fields +6. **Click "Save All Changes"** to persist to database +7. **Refresh your main site** - changes appear immediately! + +## Development Notes + +### Adding New Content Fields + +To add new editable content: + +1. Choose a unique key (e.g., `modal.newSection.title`) +2. Add to the initialize defaults in `src/routes/site-content.ts` +3. Update the monkey patch in `frontend/_app/info.js` to use the new key +4. Add documentation to this file + +### Locale Support + +Currently supports: +- `en` - English +- `zh` - Chinese + +To add a new locale: +1. Add option to locale selector in admin UI +2. Initialize default content for that locale +3. Update frontend locale detection in `info.js` + +### Caching Considerations + +- Frontend caches API response per page load +- No server-side caching (content always fresh from DB) +- Consider adding Redis/memory cache for production + +## Troubleshooting + +### Content Not Updating + +1. Check browser console for `[WPLACE_INFO]` logs +2. Verify API endpoint returns data: `GET /api/site-content?locale=en` +3. Clear browser cache and reload +4. Check database for content entries: `SELECT * FROM SiteContent;` + +### Admin UI Not Loading + +1. Verify you're logged in as admin +2. Check browser cookies for `j` JWT token +3. Verify `role` in User table is set to `admin` +4. Check browser console for authentication errors + +### Default Content Missing + +Run initialization endpoint: +```bash +curl -X POST http://localhost:3000/api/admin/site-content/initialize \ + -H "Cookie: j=YOUR_JWT_TOKEN" +``` + +## Security Notes + +- Admin endpoints require authentication AND `role='admin'` +- Input validation prevents injection attacks +- Keys restricted to alphanumeric + dots + underscores +- No HTML rendering (XSS protection via text replacement) + +## Future Enhancements + +- [ ] Add wysiwyg editor for formatted text +- [ ] Support for images/media uploads +- [ ] Version history and rollback +- [ ] Multi-tenant support (different content per domain) +- [ ] Import/export functionality (JSON/CSV) +- [ ] Preview changes before publishing +- [ ] Scheduled content changes +- [ ] Content approval workflow diff --git a/DOCKER.md b/DOCKER.md index cc31160..8dc96c7 100644 --- a/DOCKER.md +++ b/DOCKER.md @@ -1,6 +1,6 @@ # Docker Setup Guide -This guide explains how to build and run Openplace using Docker. +This guide explains how to build and run FurryPlace using Docker. ## Quick Start @@ -117,7 +117,7 @@ docker-compose ps ```bash # Access MySQL shell -docker-compose exec mysql mysql -u openplace -p +docker-compose exec mysql mysql -u FurryPlace -p # Run migrations docker-compose exec app pnpm db:push @@ -126,10 +126,10 @@ docker-compose exec app pnpm db:push docker-compose exec app pnpm seed # Backup database -docker-compose exec mysql mysqldump -u openplace -popenplacepassword openplace > backup.sql +docker-compose exec mysql mysqldump -u FurryPlace -pFurryPlacepassword FurryPlace > backup.sql # Restore database -docker-compose exec -T mysql mysql -u openplace -popenplacepassword openplace < backup.sql +docker-compose exec -T mysql mysql -u FurryPlace -pFurryPlacepassword FurryPlace < backup.sql ``` ### Maintenance @@ -142,7 +142,7 @@ docker-compose restart docker-compose restart app # View resource usage -docker stats openplace-app openplace-mysql +docker stats FurryPlace-app FurryPlace-mysql # Clean up unused images docker image prune @@ -154,15 +154,15 @@ If you prefer to build without docker-compose: ```bash # Build image -docker build -t openplace:latest . +docker build -t FurryPlace:latest . # Run container (requires existing MySQL) docker run -d \ - --name openplace \ + --name FurryPlace \ -p 3000:3000 \ - -e DATABASE_URL="mysql://user:pass@host:3306/openplace" \ + -e DATABASE_URL="mysql://user:pass@host:3306/FurryPlace" \ -e JWT_SECRET="your-secret" \ - openplace:latest + FurryPlace:latest ``` ## Development with Docker @@ -213,10 +213,10 @@ docker-compose up -d --build The Docker setup consists of: -- **openplace-app**: Node.js application container running the backend -- **openplace-mysql**: MySQL 8.0 database container +- **FurryPlace-app**: Node.js application container running the backend +- **FurryPlace-mysql**: MySQL 8.0 database container - **mysql-data**: Persistent volume for database storage -- **openplace-network**: Bridge network for container communication +- **FurryPlace-network**: Bridge network for container communication The application automatically runs database migrations on startup. diff --git a/Dockerfile b/Dockerfile index cfe174a..d12b80e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ WORKDIR /app COPY package.json pnpm-lock.yaml ./ # Install backend dependencies -RUN pnpm install --frozen-lockfile +RUN pnpm install # Copy source code and prisma schema COPY . . @@ -54,7 +54,7 @@ WORKDIR /app COPY package.json pnpm-lock.yaml ./ # Install production dependencies only -RUN pnpm install --frozen-lockfile --prod +RUN pnpm install --prod # Copy prisma schema for migrations COPY prisma ./prisma diff --git a/README.md b/README.md index 745f07e..294bc10 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# openplace -Openplace (styled lowercase) is a free unofficial open source backend for [wplace.](https://wplace.live) We aim to give the freedom and flexibility for all users to be able to make their own private wplace experience for themselves, their friends, or even their community. +# FurryPlace +FurryPlace (styled lowercase) is a free unofficial open source backend for [wplace.](https://wplace.live) We aim to give the freedom and flexibility for all users to be able to make their own private wplace experience for themselves, their friends, or even their community. > [!WARNING] > This is a work-in-progress. Expect unfinished features and bugs. Please help us by posting issues in #help-n-support on our [Discord server](https://discord.gg/ZRC4DnP9Z2) or by contributing pull requests. Thanks! ## macOS ### Getting Started -This is where you will be preparing your machine to run openplace. +This is where you will be preparing your machine to run FurryPlace. 1. install brew, node and git -2. run `git clone --recurse-submodules https://github.com/openplaceteam/openplace` -3. cd into the openplace directory +2. run `git clone --recurse-submodules https://github.com/FurryPlaceteam/FurryPlace` +3. cd into the FurryPlace directory 4. run ``npm i && brew install mariadb caddy nss`` 5. brew will then spit out a command to inform you on how to start it. if it doesn't, run `brew services start mariadb && brew services start caddy` #### Configuring and building the database @@ -29,7 +29,7 @@ This is where you will be preparing your machine to run openplace. 14. in another terminal, cd to the same root directory and run `caddy run --config Caddyfile` #### Spinning up your server -You will be required to configure an SSL certificate if you plan to use this in production. However, if you are only using this with you and your friends, you can simply navigate to `https://{IP}:8080` NOTE: openplace is only hosted over HTTPS. you will run into HTTP error 400 if you attempt to load the website over HTTP. +You will be required to configure an SSL certificate if you plan to use this in production. However, if you are only using this with you and your friends, you can simply navigate to `https://{IP}:8080` NOTE: FurryPlace is only hosted over HTTPS. you will run into HTTP error 400 if you attempt to load the website over HTTP. #### Updating your database In the event that the database schematic changes, you simply need to run `npm run db:push` to update your database schema. diff --git a/docker-compose.yml b/docker-compose.yml index 7e51464..677e4ca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,13 +3,13 @@ version: '3.8' services: mysql: image: mysql:8.0 - container_name: openplace-mysql + container_name: FurryPlace-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword} - MYSQL_DATABASE: ${MYSQL_DATABASE:-openplace} - MYSQL_USER: ${MYSQL_USER:-openplace} - MYSQL_PASSWORD: ${MYSQL_PASSWORD:-openplacepassword} + MYSQL_DATABASE: ${MYSQL_DATABASE:-FurryPlace} + MYSQL_USER: ${MYSQL_USER:-FurryPlace} + MYSQL_PASSWORD: ${MYSQL_PASSWORD:-FurryPlacepassword} # No ports exposed - only accessible within Docker network volumes: - mysql-data:/var/lib/mysql @@ -19,11 +19,11 @@ services: timeout: 5s retries: 5 networks: - - openplace-network + - FurryPlace-network adminer: image: adminer:latest - container_name: openplace-adminer + container_name: FurryPlace-adminer restart: unless-stopped ports: - "${ADMINER_PORT:-8080}:8080" @@ -32,7 +32,7 @@ services: depends_on: - mysql networks: - - openplace-network + - FurryPlace-network app: build: @@ -40,26 +40,29 @@ services: dockerfile: Dockerfile args: USE_FRONTEND_BACKUP: ${USE_FRONTEND_BACKUP:-false} - container_name: openplace-app + container_name: FurryPlace-app restart: unless-stopped ports: - "${PORT:-3000}:3000" environment: PORT: 3000 - DATABASE_URL: "mysql://${MYSQL_USER:-openplace}:${MYSQL_PASSWORD:-openplacepassword}@mysql:3306/${MYSQL_DATABASE:-openplace}" + DATABASE_URL: "mysql://${MYSQL_USER:-FurryPlace}:${MYSQL_PASSWORD:-FurryPlacepassword}@mysql:3306/${MYSQL_DATABASE:-FurryPlace}" JWT_SECRET: ${JWT_SECRET:-change-this-secret-in-production} NODE_ENV: production + GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID} + GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET} + GOOGLE_CALLBACK_URL: ${GOOGLE_CALLBACK_URL:-http://localhost:3000/auth/google/callback} depends_on: mysql: condition: service_healthy networks: - - openplace-network + - FurryPlace-network command: > sh -c " echo 'Waiting for database to be ready...' && sleep 5 && echo 'Running database migrations...' && - pnpm db:push && + pnpm db:push -- --accept-data-loss && echo 'Starting application...' && node dist/index.js " @@ -68,5 +71,5 @@ volumes: mysql-data: networks: - openplace-network: + FurryPlace-network: driver: bridge diff --git a/frontend-backup/.gitignore b/frontend-backup/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/frontend-backup/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/frontend-backup/26/2025/08/12/horse.png b/frontend-backup/26/2025/08/12/horse.png new file mode 100644 index 0000000000000000000000000000000000000000..99d09f5d1d91362e2db970a1e9d12bebf4c9e3ee GIT binary patch literal 70912 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

^?H2KV_jggA3D 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 O0000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + - - -

Wplace logo wplace

Not found

Go to map
- - -
- - - +
diff --git a/frontend-backup/PixelifySans-latin.vdc2vUDH.woff2 b/frontend-backup/PixelifySans-latin.vdc2vUDH.woff2 deleted file mode 100644 index ea75ad5fdf7b3433ee2015e819692b6e3206db7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12096 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 diff --git a/frontend-backup/TODO.md b/frontend-backup/TODO.md deleted file mode 100644 index 84ea2d5..0000000 --- a/frontend-backup/TODO.md +++ /dev/null @@ -1,1458 +0,0 @@ -# Frontend Recreation TODO - -This document outlines all the necessary information to recreate the SvelteKit frontend for the Openplace/Wplace application. - -## Overview - -Openplace is a collaborative real-time pixel art canvas layered over a world map (similar to r/place). Users can paint pixels, join alliances, view leaderboards, and moderate content. The frontend is built with SvelteKit and integrates with the backend API documented below. - -## Tech Stack - -- **Framework**: SvelteKit (based on `index.html` module imports) -- **Language**: TypeScript (inferred from backend consistency) -- **Fonts**: - - PixelifySans (pixel art style font) - - Geist (modern sans-serif) - - NotoColorEmoji (for flag emojis) -- **Map Library**: Likely Leaflet or Mapbox (for world map integration) -- **PWA**: Progressive Web App with service worker -- **Build Tool**: Vite (standard for SvelteKit) - -## Project Structure - -Based on compiled output, the frontend likely has these routes: - -``` -/ - Main canvas view -/admin - Admin panel -/admin/* - Various admin sub-pages -/moderation - Moderation panel -/maps - Map-related pages -404.html - 404 error page -``` - -## API Endpoints Reference - -### Authentication (`/auth`) - -#### POST `/login` -- **Body**: `{ username: string, password: string }` -- **Response**: `{ success: boolean }` -- **Cookie**: Sets `j` cookie (JWT token, HttpOnly, 30 day expiry) -- **Note**: Auto-registers users if username doesn't exist - -#### POST `/auth/logout` -- **Headers**: Requires JWT cookie -- **Response**: `{ success: boolean }` -- **Cookie**: Clears `j` cookie - ---- - -### Pixel Operations (`/pixel`) - -#### GET `/:season/tile/random` -- **Purpose**: Get random tile coordinates to start viewing -- **Response**: `{ tileX: number, tileY: number }` - -#### GET `/:season/pixel/:tileX/:tileY?x=X&y=Y` -- **Purpose**: Get information about a specific pixel -- **Query Params**: - - `x` (0-999): pixel X within tile - - `y` (0-999): pixel Y within tile -- **Response**: -```typescript -{ - colorId: number, - paintedBy: number, - paintedAt: string, - user: { - id: number, - name: string, - level: number, - equippedFlag: number - } -} -``` - -#### GET `/files/:season/tiles/:tileX/:tileY.png` -- **Purpose**: Get rendered tile image (1000x1000 pixels) -- **Response**: PNG image -- **Cache**: 5 minutes (`Cache-Control: public, max-age=300`) - -#### POST `/:season/pixel/:tileX/:tileY` -- **Purpose**: Paint one or more pixels -- **Headers**: Requires JWT cookie -- **Body**: -```typescript -{ - colors: number[], // Array of colorIds (0-63) - coords: number[][] // Array of [x, y] coordinates within tile -} -``` -- **Response**: -```typescript -{ - success: boolean, - currentCharges: number, - maxCharges: number, - chargesLastUpdatedAt: string, - pixelsPainted: number, - level: number -} -``` -- **Errors**: - - 400: Invalid coordinates or colors - - 403: Not enough charges, color not unlocked, or timed out - ---- - -### User Profile (`/me`) - -#### GET `/me` -- **Headers**: Requires JWT cookie -- **Response**: -```typescript -{ - id: number, - name: string, - discord: string | null, - country: string, - droplets: number, - currentCharges: number, - maxCharges: number, - chargesCooldownMs: number, - chargesLastUpdatedAt: string, - pixelsPainted: number, - level: number, - equippedFlag: number, - extraColorsBitmap: string, // base64 encoded - flagsBitmap: string | null, // base64 encoded - showLastPixel: boolean, - picture: string | null, - allianceId: number | null, - allianceRole: string, - alliance: { - id: number, - name: string, - description: string, - pixelsPainted: number - } | null -} -``` - -#### POST `/me/update` -- **Headers**: Requires JWT cookie -- **Body**: -```typescript -{ - name?: string, // 3-20 chars - showLastPixel?: boolean, - discord?: string // Optional Discord username -} -``` -- **Response**: Updated user profile (same as GET /me) - -#### GET `/me/profile-pictures` -- **Headers**: Requires JWT cookie -- **Response**: -```typescript -{ - pictures: Array<{ - id: number, - url: string - }> -} -``` - ---- - -### Alliance System (`/alliance`) - -#### GET `/alliance` -- **Headers**: Requires JWT cookie -- **Response**: User's current alliance details or error if not in alliance - -#### POST `/alliance` -- **Purpose**: Create new alliance -- **Headers**: Requires JWT cookie -- **Body**: `{ name: string }` // 3-30 chars, unique -- **Response**: Alliance details - -#### POST `/alliance/update-description` -- **Headers**: Requires JWT cookie (must be alliance admin) -- **Body**: `{ description: string }` // Max 500 chars -- **Response**: Updated alliance - -#### GET `/alliance/invites` -- **Headers**: Requires JWT cookie (must be alliance admin) -- **Response**: -```typescript -{ - invites: Array<{ - id: string, // UUID - createdAt: string - }> -} -``` - -#### GET `/alliance/join/:invite` -- **Headers**: Requires JWT cookie -- **Response**: Joins alliance via invite code - -#### POST `/alliance/update-headquarters` -- **Headers**: Requires JWT cookie (must be alliance admin) -- **Body**: `{ latitude: number, longitude: number }` -- **Response**: Updated alliance - -#### GET `/alliance/members/:page` -- **Headers**: Requires JWT cookie -- **Params**: `page` (0-indexed) -- **Response**: -```typescript -{ - members: Array<{ - id: number, - name: string, - pixelsPainted: number, - level: number, - role: string, - equippedFlag: number - }>, - total: number, - page: number, - pageSize: number -} -``` - -#### GET `/alliance/members/banned/:page` -- **Headers**: Requires JWT cookie (must be alliance admin) -- **Response**: Paginated list of banned users - -#### POST `/alliance/give-admin` -- **Headers**: Requires JWT cookie (must be alliance owner) -- **Body**: `{ promotedUserId: number }` -- **Response**: 200 OK - -#### POST `/alliance/ban` -- **Headers**: Requires JWT cookie (must be alliance admin) -- **Body**: `{ bannedUserId: number }` -- **Response**: Updated alliance - -#### POST `/alliance/unban` -- **Headers**: Requires JWT cookie (must be alliance admin) -- **Body**: `{ unbannedUserId: number }` -- **Response**: Updated alliance - -#### GET `/alliance/leaderboard/:mode` -- **Headers**: Requires JWT cookie -- **Params**: `mode` - "today" | "week" | "month" | "all-time" -- **Response**: Top 50 alliances with pixel counts - ---- - -### Leaderboards (`/leaderboard`) - -#### GET `/leaderboard/player/:mode` -- **Params**: `mode` - "today" | "week" | "month" | "all-time" -- **Response**: -```typescript -Array<{ - id: number, - name: string, - allianceId: number, - allianceName: string, - equippedFlag: number, - pixelsPainted: number, - picture?: string, - discord: string -}> -``` - -#### GET `/leaderboard/alliance/:mode` -- **Params**: `mode` - "today" | "week" | "month" | "all-time" -- **Response**: -```typescript -Array<{ - id: number, - name: string, - pixelsPainted: number -}> -``` - -#### GET `/leaderboard/country/:mode` -- **Params**: `mode` - "today" | "week" | "month" | "all-time" -- **Response**: Array of countries with pixel counts -- **Note**: Currently returns mock data, needs implementation - -#### GET `/leaderboard/region/:mode/:country` -- **Params**: - - `mode` - "today" | "week" | "month" | "all-time" - - `country` - Country ID number -- **Response**: Array of regions with pixel counts -- **Note**: Currently returns mock data, needs implementation - -#### GET `/leaderboard/region/players/:city/:mode` -- **Params**: - - `city` - City ID - - `mode` - "today" | "week" | "month" | "all-time" -- **Response**: Top 50 players in region -- **Note**: City parameter currently unused - -#### GET `/leaderboard/region/alliances/:city/:mode` -- **Params**: - - `city` - City ID - - `mode` - "today" | "week" | "month" | "all-time" -- **Response**: Top 50 alliances in region -- **Note**: City parameter currently unused - ---- - -### Store (`/store`) - -#### POST `/purchase` -- **Headers**: Requires JWT cookie -- **Body**: -```typescript -{ - product: { - id: 70 | 80 | 100 | 110, - amount?: number, // Quantity (default 1) - variant?: number // For colors (32-63) or flags (1-251) - } -} -``` -- **Product IDs**: - - 70: +5 Max Charges (500 droplets) - - 80: +30 Paint Charges (500 droplets) - - 100: Unlock Paid Color (2000 droplets) - requires `variant` (32-63) - - 110: Unlock Flag (20,000 droplets) - requires `variant` (1-251) -- **Response**: `{ success: boolean }` -- **Errors**: 403 if insufficient droplets - -#### POST `/flag/equip/:id` -- **Headers**: Requires JWT cookie -- **Params**: `id` - Flag ID (1-251) -- **Response**: `{ success: boolean }` -- **Errors**: 403 if flag not unlocked - ---- - -### Admin Panel (`/admin/*`) - -**All admin endpoints require:** -- JWT cookie authentication -- User role = "admin" -- Returns 403 Forbidden otherwise - -#### GET `/admin/users?id=USER_ID` -- **Query**: `id` - User ID -- **Response**: -```typescript -{ - id: number, - name: string, - droplets: number, - picture: string | null, - role: string, - timeout_until: string, - ban_reason: null, // TODO: Not implemented - reported_times: 0, // TODO: Not implemented - timeouts_count: 0, // TODO: Not implemented - same_ip_accounts: 0, // TODO: Not implemented - alliance_id: number | null, - alliance_name: string | null, - pixels_painted: number, - phone_validated: false, // TODO: Not implemented - discord: string | null -} -``` - -#### GET `/admin/users/notes?userId=USER_ID` -- **Query**: `userId` - User ID -- **Response**: -```typescript -{ - notes: Array<{ - id: number, - author: { - role: string, - id: number, - name: string - }, - note: string, - createdAt: string - }> -} -``` - -#### POST `/admin/users/notes` -- **Body**: `{ userId: number, note: string }` -- **Response**: `{}` - -#### GET `/admin/users/tickets?id=USER_ID` -- **Query**: `id` - User ID -- **Response**: `{}` // TODO: Not implemented - -#### GET `/admin/users/purchases?userId=USER_ID` -- **Query**: `userId` - User ID -- **Response**: `{}` // TODO: Not implemented - -#### POST `/admin/users/set-user-droplets` -- **Body**: `{ userId: number, droplets: number }` // Adds droplets (can be negative) -- **Response**: `{ success: boolean }` - -#### GET `/admin/tickets` -- **Response**: Open tickets grouped by reported user -```typescript -{ - tickets: Array<{ - id: number, // Reported user ID - reportedUser: { - id: number, - name: string, - discord: string, - country: string, - banned: boolean - }, - createdAt: string, - reports: Array<{ - id: string, // Ticket ID (UUID) - latitude: number, - longitude: number, - zoom: number, - reason: string, - notes: string, - image: string, - createdAt: string - }> - }>, - status: 200 -} -``` - -#### GET `/admin/closed-tickets` -- **Response**: Same as `/admin/tickets` but for resolved tickets - -#### GET `/admin/open-tickets-count` -- **Response**: `{ tickets: number }` - -#### POST `/admin/severe-open-tickets-count` -- **Response**: `{ tickets: number }` - -#### POST `/admin/assign-new-tickets` -- **Response**: `{ newTicketsIds: [] }` // TODO: Not implemented - -#### GET `/admin/count-all-tickets` -- **Response**: -```typescript -{ - doxxing: number, - inappropriate_content: number, - hate_speech: number, - bot: number, - other: number, - griefing: number, - total_open_tickets: number -} -``` - -#### GET `/admin/count-all-reports` -- **Response**: Same as `/admin/count-all-tickets` // TODO: Uses same data - -#### GET `/admin/alliances/:id` -- **Params**: `id` - Alliance ID -- **Response**: -```typescript -{ - id: number, - name: string, - pixelsPainted: number -} -``` - -#### GET `/admin/alliances/:id/full` -- **Params**: `id` - Alliance ID -- **Response**: Full alliance details including members, bans, etc. - -#### GET `/admin/alliances/search?q=QUERY` -- **Query**: `q` - Search by name or ID -- **Response**: `{ results: Alliance[] }` // Top 20 results - ---- - -### Moderation Panel (`/moderator/*`) - -**All moderator endpoints require:** -- JWT cookie authentication -- User role = "moderator" or "admin" -- Returns 403 Forbidden otherwise - -#### GET `/moderator/tickets` -- **Response**: Same format as `/admin/tickets` - -#### GET `/moderator/users/tickets?userId=USER_ID` -- **Query**: `userId` - User ID -- **Response**: All tickets for a specific user - -#### GET `/moderator/open-tickets-count` -- **Response**: `{ tickets: number }` - -#### POST `/moderator/severe-open-tickets-count` -- **Response**: `{ tickets: number }` - -#### POST `/moderator/assign-new-tickets` -- **Response**: `{ newTicketsIds: [] }` // TODO: Not implemented - -#### GET `/moderator/count-my-tickets` -- **Response**: `0` // TODO: Not implemented - ---- - -## Core Frontend Features to Implement - -### 1. Authentication System - -**Components:** -- Login form (see `LoginForm` CSS asset) -- Registration flow (combined with login) -- Session management using JWT cookie -- Auto-redirect to login if unauthorized - -**Key Implementation Details:** -- Cookie name: `j` -- Cookie is HttpOnly (not accessible via JavaScript) -- 30-day expiration -- Auto-create account on first login with username/password - ---- - -### 2. Main Canvas View - -**Components:** -- Interactive world map (Leaflet/Mapbox) -- Tile-based pixel rendering system -- Zoom controls -- Color picker palette (32 free colors + 32 paid colors) -- Brush/paint tool -- Pixel info tooltip on hover/click -- Charge indicator (shows current/max charges) -- Level display - -**Technical Requirements:** -- Tiles are 1000x1000 pixels -- Fetch tiles as PNG images: `/files/:season/tiles/:tileX/:tileY.png` -- Cache tiles appropriately (5 min cache header) -- Calculate global coordinates: `globalX = tileX * 1000 + x`, `globalY = tileY * 1000 + y` -- Map global coordinates to lat/lng for world map overlay -- Handle painting multiple pixels in one request -- Show charge regeneration countdown (default: 1 charge per 30 seconds) -- Disable paid colors unless unlocked (check `extraColorsBitmap`) - -**Charge System:** -- Default: 20 max charges -- Regenerates 1 charge every 30 seconds (configurable per user) -- Painting consumes charges -- Must calculate current charges: `currentCharges + floor((now - lastUpdate) / cooldownMs)` -- 10% discount when painting in equipped flag's region (TODO: region system not implemented) - -**Color Palette (0-63):** -```typescript -// Colors 0-31: Free -// Colors 32-63: Paid (require purchase) -// Color 0: Transparent -// Check if color unlocked: extraColorsBitmap & (1 << (colorId - 32)) -``` - -Full color palette available in backend: `src/utils/colors.ts` - ---- - -### 3. User Profile Page - -**Components:** -- Profile avatar with level indicator (see `ProfileAvatarWithLevel` CSS asset) -- Username (editable) -- Discord username (editable) -- Show last pixel toggle -- Droplets balance -- Charges indicator -- Pixels painted count -- Level display -- Equipped flag display -- Alliance affiliation - -**Features:** -- Edit profile settings -- View unlocked colors -- View unlocked flags -- View alliance info -- View favorite locations (TODO: not implemented in backend) - ---- - -### 4. Alliance System - -**Components:** -- Alliance creation dialog -- Alliance info panel -- Member list (paginated, 50 per page) -- Admin controls (for alliance admins) -- Invite system -- Ban management -- Headquarters map marker - -**Features:** -- Create alliance (requires no current alliance) -- Join alliance via invite link -- Leave alliance -- Update description (admins only) -- Set headquarters location on map (admins only) -- Promote members to admin (owner only) -- Ban/unban members (admins only) -- View alliance leaderboard - ---- - -### 5. Leaderboards - -**Views:** -- Player leaderboard (top 50) -- Alliance leaderboard (top 50) -- Country leaderboard -- Region leaderboard -- Regional player leaderboard -- Regional alliance leaderboard - -**Time Filters:** -- Today -- Week (last 7 days) -- Month (current month) -- All-time - -**Display Fields:** -- Rank (1-50) -- Player name / Alliance name -- Equipped flag icon -- Pixels painted -- Alliance affiliation (for players) - ---- - -### 6. Store System - -**Products:** -1. **+5 Max Charges** (500 droplets) - - Increases maxCharges by 5 - - Can purchase multiple - -2. **+30 Paint Charges** (500 droplets) - - Adds 30 to currentCharges (up to max) - - Can purchase multiple - -3. **Unlock Paid Color** (2000 droplets each) - - Unlocks one of colors 32-63 - - Must select color variant - - Updates `extraColorsBitmap` - -4. **Unlock Flag** (20,000 droplets each) - - Unlocks one of 251 country flags - - Must select flag variant (1-251) - - Updates `flagsBitmap` - -**Implementation:** -- Display droplet balance -- Show which colors/flags are already unlocked -- Disable purchase if insufficient droplets -- Confirmation dialog before purchase -- Update UI after successful purchase - -**Flag Equipping:** -- Separate endpoint to equip owned flag -- Can only equip flags that are unlocked -- Equipped flag shown on profile and leaderboards - ---- - -### 7. Admin Panel - -**Pages:** -- User management -- Ticket management (reports) -- Alliance management -- Statistics dashboard - -**User Management:** -- Search users by ID -- View user details -- View user notes -- Add moderator notes -- Set droplets (add/subtract) -- View user tickets -- View purchase history (TODO) - -**Ticket Management:** -- View open tickets -- View closed tickets -- Tickets grouped by reported user -- Show ticket details (location, reason, image evidence) -- Assign tickets to moderators (TODO) -- Count tickets by reason - -**Alliance Management:** -- Search alliances -- View alliance details -- View full alliance info (members, bans) - ---- - -### 8. Moderation Panel - -**Features:** -- View assigned tickets -- View all open tickets -- View user ticket history -- Count severe tickets -- Count my assigned tickets (TODO) - -**Ticket Types:** -- Doxxing -- Inappropriate Content -- Hate Speech -- Bot -- Griefing -- Other - -**Ticket Details:** -- Reporter info -- Reported user info -- Canvas location (lat/lng, zoom) -- Reason -- Notes -- Evidence image -- Timestamp - ---- - -## Data Models - -### User -```typescript -{ - id: number - name: string - discord: string | null - country: string - email: string | null - banned: boolean - timeoutUntil: Date - role: "user" | "moderator" | "admin" - pixelsPainted: number - droplets: number - maxCharges: number - currentCharges: number - chargesCooldownMs: number - chargesLastUpdatedAt: Date - extraColorsBitmap: number // Bitmask for unlocked paid colors - flagsBitmap: Bytes | null // Bitmap for unlocked flags - equippedFlag: number // Currently equipped flag (0 = none) - showLastPixel: boolean - picture: string | null - level: number // floor(sqrt(pixelsPainted / 100)) + 1 - allianceId: number | null - allianceRole: "member" | "admin" | "owner" -} -``` - -### Alliance -```typescript -{ - id: number - name: string // Unique, 3-30 chars - description: string | null // Max 500 chars - hqLatitude: number | null - hqLongitude: number | null - pixelsPainted: number - members: User[] - bannedUsers: BannedUser[] - invites: AllianceInvite[] -} -``` - -### Pixel -```typescript -{ - id: number - tileX: number - tileY: number - x: number // 0-999 - y: number // 0-999 - colorId: number // 0-63 - paintedBy: number // User ID - paintedAt: Date -} -``` - -### Tile -```typescript -{ - id: number - x: number // Tile X coordinate - y: number // Tile Y coordinate - imageData: Bytes | null // Cached PNG (if applicable) - pixels: Pixel[] -} -``` - -### Ticket (Report) -```typescript -{ - id: string // UUID - userId: number // Reporter - reportedUserId: number // Reported user - latitude: number // Canvas location - longitude: number - zoom: number - reason: "doxxing" | "inappropriate_content" | "hate_speech" | "bot" | "griefing" | "other" - notes: string - image: string // Evidence image URL/path - resolved: boolean - severe: boolean - createdAt: Date -} -``` - -### Region -```typescript -{ - id: number - cityId: number - name: string - number: number - countryId: number - flagId: number -} -``` - ---- - -## Constants and Configuration - -### Season -- Default: `"s1"` (Season 1) -- Used in pixel API endpoints: `/:season/pixel/...` - -### Color Palette -- 64 total colors (0-63) -- 0-31: Free colors -- 32-63: Paid colors (2000 droplets each) -- Color 0: Transparent/eraser - -### Flags -- 251 total country flags (1-251) -- 20,000 droplets each -- Stored as bitmap in `flagsBitmap` - -### Charge System -- Default max charges: 20 -- Default cooldown: 30,000ms (30 seconds) -- Formula: `floor((now - lastUpdate) / cooldownMs)` charges regenerated - -### Level Calculation -```typescript -level = floor(sqrt(pixelsPainted / 100)) + 1 -``` - -### Pagination -- Default page size: 50 -- Pages are 0-indexed - -### Validation Rules -- Username: 3-20 characters -- Alliance name: 3-30 characters, unique -- Alliance description: Max 500 characters -- Coordinates: x, y must be 0-999 within tile -- Color ID: 0-63 - ---- - -## State Management - -**Client-side state to manage:** - -1. **User State** - - Current user profile - - Authentication status - - Charge count (auto-update based on time) - - Droplets balance - - Unlocked colors/flags - -2. **Canvas State** - - Current map position (lat/lng) - - Zoom level - - Visible tiles - - Selected color - - Brush mode - - Cached tile images - -3. **Alliance State** - - Current alliance - - Member list - - Invites (if admin) - - Leaderboard - -4. **UI State** - - Active modal/dialog - - Sidebar open/closed - - Selected leaderboard mode - - Selected leaderboard time filter - -**Real-time considerations:** -- Pixel updates from other users (consider WebSocket/polling) -- Charge regeneration countdown -- Leaderboard updates - ---- - -## UI/UX Guidelines - -### Theme -- Light theme only (from meta tag: `color-scheme: light only`) -- Theme color: `#f8f4f0` (from webmanifest) -- Background: `#ffffff` - -### Fonts -- **PixelifySans**: Use for headings, canvas UI elements, retro aesthetic -- **Geist**: Use for body text, modern UI -- **NotoColorEmoji**: Use for flag rendering - -### Responsive Design -- Mobile-first approach -- PWA optimized -- Touch-friendly controls for canvas -- Separate mobile/desktop layouts for complex pages (admin panel) - -### Key Interactions -- Hover over pixel: Show tooltip with painter info -- Click pixel: Show detailed pixel info modal -- Click map: Pan to location -- Click color: Select for painting -- Click canvas: Paint pixel(s) with selected color -- Right-click/long-press: Color picker (pick color from canvas) - ---- - -## Assets Required - -### Images -- Favicon (multiple sizes) -- App icons (192x192, 512x512) -- PWA screenshots -- Flag sprite sheet (flags.webp, flags@2x.webp @ 2x resolution) -- OG image for social sharing - -### Audio -- `notification.mp3` - For notification sounds - -### Existing Assets (in `/frontend` folder) -- `/img/*` - Various images -- `/maps/*` - Map-related assets -- `/download.png`, `/download.svg` - Download icons -- `PixelifySans-latin.vdc2vUDH.woff2` - Font file -- `css2.css` - Likely Google Fonts CSS - ---- - -## Service Worker & PWA - -**Features to implement:** -- Offline canvas viewing (cache tiles) -- Background sync for painted pixels -- Push notifications for alliance updates -- Install prompt handling (see `window.pwaInstallPrompt` in index.html) -- Cache strategy for static assets -- Network-first for API calls -- Cache-first for tile images - -**Service Worker Registration:** -```javascript -if ('serviceWorker' in navigator) { - navigator.serviceWorker.register('/service-worker.js'); -} -``` - ---- - -## WebSocket / Real-time Updates (Recommended) - -While not currently implemented in the backend, the frontend should be designed to support real-time updates: - -**Potential WebSocket events:** -- `pixel:painted` - Another user painted a pixel -- `tile:updated` - Tile has new pixels -- `alliance:member_joined` - New alliance member -- `charge:regenerated` - Charge regenerated (client-side timer is fine too) -- `leaderboard:updated` - Leaderboard changed - -**Implementation approach:** -1. Start with polling (GET tile images every 5 seconds for visible tiles) -2. Design component architecture to easily swap in WebSocket later -3. Use event emitter pattern for pixel updates - ---- - -## Routing Structure (SvelteKit) - -``` -src/routes/ -├── +page.svelte # Main canvas view -├── +layout.svelte # Root layout (auth check, header, etc.) -├── admin/ -│ ├── +page.svelte # Admin dashboard -│ ├── users/ -│ │ └── +page.svelte # User management -│ ├── tickets/ -│ │ ├── +page.svelte # Open tickets -│ │ └── closed/+page.svelte # Closed tickets -│ └── alliances/ -│ └── +page.svelte # Alliance management -├── moderation/ -│ ├── +page.svelte # Moderator dashboard -│ └── tickets/+page.svelte # Assigned tickets -├── leaderboard/ -│ └── +page.svelte # Leaderboard with tabs -├── profile/ -│ └── +page.svelte # User profile -├── alliance/ -│ ├── +page.svelte # Alliance view/create -│ └── [inviteId]/+page.svelte # Join alliance via invite -└── store/ - └── +page.svelte # Store page -``` - ---- - -## Component Architecture (Suggested) - -### Shared Components -``` -src/lib/components/ -├── auth/ -│ ├── LoginForm.svelte -│ └── AuthGuard.svelte -├── canvas/ -│ ├── MapCanvas.svelte -│ ├── TileLayer.svelte -│ ├── ColorPicker.svelte -│ ├── BrushTool.svelte -│ ├── PixelInfo.svelte -│ └── ChargeIndicator.svelte -├── user/ -│ ├── ProfileAvatar.svelte -│ ├── ProfileAvatarWithLevel.svelte # Existing CSS asset -│ ├── UserCard.svelte -│ └── UserStats.svelte -├── alliance/ -│ ├── AllianceCard.svelte -│ ├── AllianceMembers.svelte -│ ├── AllianceInvite.svelte -│ └── CreateAlliance.svelte -├── leaderboard/ -│ ├── LeaderboardTable.svelte -│ ├── LeaderboardFilters.svelte -│ └── LeaderboardEntry.svelte -├── store/ -│ ├── StoreItem.svelte -│ ├── ColorUnlockGrid.svelte -│ └── FlagSelector.svelte -├── admin/ -│ ├── UserSearch.svelte -│ ├── UserDetails.svelte -│ ├── TicketList.svelte -│ ├── TicketDetails.svelte -│ └── AllianceSearch.svelte -└── common/ - ├── Button.svelte - ├── Modal.svelte - ├── Pagination.svelte - ├── Toast.svelte - └── Tooltip.svelte -``` - ---- - -## Store (Svelte Stores) - -```typescript -// src/lib/stores/auth.ts -export const currentUser = writable(null); -export const isAuthenticated = derived(currentUser, $user => !!$user); - -// src/lib/stores/canvas.ts -export const selectedColor = writable(1); -export const currentCharges = writable(20); -export const canvasPosition = writable<{lat: number, lng: number, zoom: number}>(); -export const visibleTiles = writable>(); // "x,y" tile keys - -// src/lib/stores/alliance.ts -export const currentAlliance = writable(null); - -// src/lib/stores/ui.ts -export const activeModal = writable(null); -export const sidebarOpen = writable(false); -``` - ---- - -## API Client - -Create a typed API client for all backend endpoints: - -```typescript -// src/lib/api/client.ts -export class ApiClient { - private baseUrl = ''; // Same origin - - // Auth - async login(username: string, password: string) { ... } - async logout() { ... } - - // Pixels - async getRandomTile() { ... } - async getPixelInfo(tileX, tileY, x, y) { ... } - async paintPixels(tileX, tileY, colors, coords) { ... } - getTileImageUrl(tileX, tileY): string { ... } - - // User - async getProfile() { ... } - async updateProfile(data) { ... } - - // Alliance - async getAlliance() { ... } - async createAlliance(name) { ... } - // ... etc - - // Leaderboards - async getPlayerLeaderboard(mode) { ... } - // ... etc - - // Store - async purchase(productId, amount, variant?) { ... } - async equipFlag(flagId) { ... } - - // Admin (requires admin role) - async getUser(userId) { ... } - // ... etc -} - -export const api = new ApiClient(); -``` - ---- - -## Bitmap Utilities (Client-side) - -Implement bitmap helper for colors and flags: - -```typescript -// src/lib/utils/bitmap.ts -export class WplaceBitmap { - private bytes: Uint8Array; - - constructor(base64?: string) { - if (base64) { - this.bytes = Uint8Array.from(atob(base64), c => c.charCodeAt(0)); - } else { - this.bytes = new Uint8Array(0); - } - } - - get(index: number): boolean { - const byteIndex = Math.floor(index / 8); - const bitIndex = index % 8; - if (byteIndex >= this.bytes.length) return false; - const realIndex = this.bytes.length - 1 - byteIndex; - return (this.bytes[realIndex] & (1 << bitIndex)) !== 0; - } - - toBase64(): string { - return btoa(String.fromCharCode(...this.bytes)); - } -} - -export function isColorUnlocked(colorId: number, extraColorsBitmap: number): boolean { - if (colorId < 32) return true; - const mask = 1 << (colorId - 32); - return (extraColorsBitmap & mask) !== 0; -} -``` - ---- - -## Charge Calculation (Client-side) - -```typescript -// src/lib/utils/charges.ts -export function calculateCurrentCharges( - currentCharges: number, - maxCharges: number, - lastUpdate: Date, - cooldownMs: number -): number { - if (currentCharges >= maxCharges) return currentCharges; - - const timeSinceLastUpdate = Date.now() - lastUpdate.getTime(); - const chargesGenerated = Math.floor(timeSinceLastUpdate / cooldownMs); - - return Math.min(maxCharges, currentCharges + chargesGenerated); -} - -export function getNextChargeTime( - currentCharges: number, - maxCharges: number, - lastUpdate: Date, - cooldownMs: number -): Date | null { - if (currentCharges >= maxCharges) return null; - - const timeSinceLastUpdate = Date.now() - lastUpdate.getTime(); - const timeUntilNextCharge = cooldownMs - (timeSinceLastUpdate % cooldownMs); - - return new Date(Date.now() + timeUntilNextCharge); -} -``` - ---- - -## Level Calculation (Client-side) - -```typescript -// src/lib/utils/level.ts -export function calculateLevel(pixelsPainted: number): number { - return Math.floor(Math.sqrt(pixelsPainted / 100)) + 1; -} - -export function getPixelsForNextLevel(currentLevel: number): number { - return ((currentLevel + 1 - 1) ** 2) * 100; -} - -export function getLevelProgress(pixelsPainted: number): number { - const currentLevel = calculateLevel(pixelsPainted); - const pixelsForCurrentLevel = ((currentLevel - 1) ** 2) * 100; - const pixelsForNextLevel = (currentLevel ** 2) * 100; - const pixelsInCurrentLevel = pixelsPainted - pixelsForCurrentLevel; - const pixelsNeededForLevel = pixelsForNextLevel - pixelsForCurrentLevel; - - return pixelsInCurrentLevel / pixelsNeededForLevel; -} -``` - ---- - -## Color Palette (Client-side) - -```typescript -// src/lib/constants/colors.ts -export interface Color { - rgb: [number, number, number]; - paid: boolean; -} - -export const COLOR_PALETTE: Record = { - 0: { rgb: [0, 0, 0], paid: false }, // Transparent - 1: { rgb: [0, 0, 0], paid: false }, - 2: { rgb: [60, 60, 60], paid: false }, - // ... (copy from backend src/utils/colors.ts) - 63: { rgb: [205, 197, 158], paid: true } -}; - -export function getColorHex(colorId: number): string { - const color = COLOR_PALETTE[colorId]; - if (!color) return '#000000'; - const [r, g, b] = color.rgb; - return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`; -} -``` - ---- - -## Testing Checklist - -### Authentication -- [ ] Login with existing account -- [ ] Register new account (auto-create on login) -- [ ] Logout -- [ ] Session persistence across page reloads -- [ ] Redirect to login on 401 - -### Canvas -- [ ] Load random tile on first visit -- [ ] Pan and zoom map -- [ ] Render tile images correctly -- [ ] Paint single pixel -- [ ] Paint multiple pixels -- [ ] Color picker selection -- [ ] Charge deduction after painting -- [ ] Charge regeneration countdown -- [ ] Hover tooltip with pixel info -- [ ] Cannot paint without charges -- [ ] Cannot paint with locked color - -### Profile -- [ ] View own profile -- [ ] Edit username -- [ ] Edit discord -- [ ] Toggle show last pixel -- [ ] View unlocked colors -- [ ] View unlocked flags -- [ ] Display correct level - -### Alliance -- [ ] Create alliance -- [ ] Join alliance via invite -- [ ] Leave alliance -- [ ] Update description (admin) -- [ ] Set HQ location (admin) -- [ ] View members list (paginated) -- [ ] Promote member (owner only) -- [ ] Ban member (admin) -- [ ] Unban member (admin) -- [ ] View alliance leaderboard - -### Leaderboards -- [ ] Player leaderboard (all time modes) -- [ ] Alliance leaderboard (all time modes) -- [ ] Correct sorting by pixels painted -- [ ] Display alliance affiliation for players -- [ ] Display equipped flags - -### Store -- [ ] Purchase max charges -- [ ] Purchase paint charges -- [ ] Purchase color unlock -- [ ] Purchase flag unlock -- [ ] Equip purchased flag -- [ ] Cannot purchase without droplets -- [ ] Cannot equip non-owned flag - -### Admin Panel -- [ ] Search user by ID -- [ ] View user details -- [ ] Add user note -- [ ] Set user droplets -- [ ] View open tickets -- [ ] View closed tickets -- [ ] Count tickets by reason -- [ ] Search alliances -- [ ] View alliance details - -### Moderation Panel -- [ ] View assigned tickets -- [ ] View all open tickets -- [ ] Count severe tickets -- [ ] View user ticket history - ---- - -## Known Limitations / TODOs - -**Backend TODOs (frontend should account for):** -1. Region system returns placeholder data -2. Country/region leaderboards not fully implemented -3. Ticket assignment system not implemented -4. Purchase history not tracked -5. User ban/timeout system incomplete -6. Phone verification not implemented -7. Same IP account detection not implemented -8. Report counts not implemented - -**Frontend recommendations:** -- Add WebSocket support for real-time pixel updates -- Implement efficient tile caching strategy -- Add undo/redo for painting -- Add eyedropper tool (pick color from canvas) -- Add minimap for navigation -- Add search functionality for map locations -- Add notification system for alliance events -- Add dark mode toggle (update meta tag) - ---- - -## Development Setup - -1. **Initialize SvelteKit project:** - ```bash - npm create svelte@latest frontend - cd frontend - npm install - ``` - -2. **Install dependencies:** - ```bash - npm install -D @sveltejs/adapter-static - npm install leaflet # or mapbox-gl - npm install @types/leaflet -D - ``` - -3. **Configure for static build:** - Update `svelte.config.js` to use `adapter-static` - -4. **Environment variables:** - Create `.env`: - ``` - PUBLIC_API_URL=http://localhost:3000 - PUBLIC_SEASON=s1 - ``` - -5. **Development:** - ```bash - npm run dev - ``` - -6. **Build:** - ```bash - npm run build - ``` - Output to `build/` directory, copy to backend's `frontend/` folder - ---- - -## API Response Error Handling - -All endpoints follow consistent error format: - -```typescript -{ - error: string, // Error message - status: number // HTTP status code -} -``` - -**Common status codes:** -- 400: Bad Request (validation error) -- 401: Unauthorized (not logged in) -- 403: Forbidden (insufficient permissions, banned, timed out, or not enough resources) -- 404: Not Found -- 500: Internal Server Error - -**Frontend should handle:** -- Display error messages from `error` field -- Redirect to login on 401 -- Show appropriate UI feedback for 403 (e.g., "You don't have permission") -- Retry on 500 with exponential backoff - ---- - -## Final Notes - -This TODO document provides a comprehensive reference for recreating the frontend. The backend API is fully functional and documented here. The frontend should be built as a SvelteKit static site that communicates with this backend via the documented API endpoints. - -Key priorities: -1. Authentication and session management -2. Main canvas view with painting functionality -3. User profile and settings -4. Alliance system -5. Leaderboards -6. Store -7. Admin/moderation panels - -The compiled frontend in the current `frontend/` folder can serve as a reference for styling and UX patterns, but the source code needs to be recreated from scratch based on this documentation. diff --git a/frontend-backup/_app/admin-content-editor.html b/frontend-backup/_app/admin-content-editor.html deleted file mode 100644 index 224ce9e..0000000 --- a/frontend-backup/_app/admin-content-editor.html +++ /dev/null @@ -1,532 +0,0 @@ - - - - - - Site Content Editor - Admin Panel - - - -
-

🎨 Site Content Editor

-

Manage modal content, rules, and site text

- -
-
- -
-
- Total Items - 0 -
-
- Current Locale - en -
-
- -
-
- - -
- - - - -
- -
-

Add New Content Item

-
- - -
- - -
- -
- Loading content... -
-
- - - - diff --git a/frontend-backup/_app/immutable/assets/0.0xfYb4uv.css b/frontend-backup/_app/immutable/assets/0.0xfYb4uv.css new file mode 100644 index 0000000..3ca34d0 --- /dev/null +++ b/frontend-backup/_app/immutable/assets/0.0xfYb4uv.css @@ -0,0 +1,7656 @@ +html[dir="ltr"], +[data-sonner-toaster][dir="ltr"] { + --toast-icon-margin-start: -3px; + --toast-icon-margin-end: 4px; + --toast-svg-margin-start: -1px; + --toast-svg-margin-end: 0px; + --toast-button-margin-start: auto; + --toast-button-margin-end: 0; + --toast-close-button-start: 0; + --toast-close-button-end: unset; + --toast-close-button-transform: translate(-35%, -35%); +} +html[dir="rtl"], +[data-sonner-toaster][dir="rtl"] { + --toast-icon-margin-start: 4px; + --toast-icon-margin-end: -3px; + --toast-svg-margin-start: 0px; + --toast-svg-margin-end: -1px; + --toast-button-margin-start: 0; + --toast-button-margin-end: auto; + --toast-close-button-start: unset; + --toast-close-button-end: 0; + --toast-close-button-transform: translate(35%, -35%); +} +[data-sonner-toaster] { + position: fixed; + width: var(--width); + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, + Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, + Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; + --gray1: hsl(0, 0%, 99%); + --gray2: hsl(0, 0%, 97.3%); + --gray3: hsl(0, 0%, 95.1%); + --gray4: hsl(0, 0%, 93%); + --gray5: hsl(0, 0%, 90.9%); + --gray6: hsl(0, 0%, 88.7%); + --gray7: hsl(0, 0%, 85.8%); + --gray8: hsl(0, 0%, 78%); + --gray9: hsl(0, 0%, 56.1%); + --gray10: hsl(0, 0%, 52.3%); + --gray11: hsl(0, 0%, 43.5%); + --gray12: hsl(0, 0%, 9%); + --border-radius: 8px; + box-sizing: border-box; + padding: 0; + margin: 0; + list-style: none; + outline: none; + z-index: 999999999; + transition: transform 0.4s ease; +} +@media (hover: none) and (pointer: coarse) { + [data-sonner-toaster][data-lifted="true"] { + transform: none; + } +} +[data-sonner-toaster][data-x-position="right"] { + right: var(--offset-right); +} +[data-sonner-toaster][data-x-position="left"] { + left: var(--offset-left); +} +[data-sonner-toaster][data-x-position="center"] { + left: 50%; + transform: translate(-50%); +} +[data-sonner-toaster][data-y-position="top"] { + top: var(--offset-top); +} +[data-sonner-toaster][data-y-position="bottom"] { + bottom: var(--offset-bottom); +} +[data-sonner-toast] { + --y: translateY(100%); + --lift-amount: calc(var(--lift) * var(--gap)); + z-index: var(--z-index); + position: absolute; + opacity: 0; + transform: var(--y); + touch-action: none; + transition: transform 0.4s, opacity 0.4s, height 0.4s, box-shadow 0.2s; + box-sizing: border-box; + outline: none; + overflow-wrap: anywhere; +} +[data-sonner-toast][data-styled="true"] { + padding: 16px; + background: var(--normal-bg); + border: 1px solid var(--normal-border); + color: var(--normal-text); + border-radius: var(--border-radius); + box-shadow: 0 4px 12px #0000001a; + width: var(--width); + font-size: 13px; + display: flex; + align-items: center; + gap: 6px; +} +[data-sonner-toast]:focus-visible { + box-shadow: 0 4px 12px #0000001a, 0 0 0 2px #0003; +} +[data-sonner-toast][data-y-position="top"] { + top: 0; + --y: translateY(-100%); + --lift: 1; + --lift-amount: calc(1 * var(--gap)); +} +[data-sonner-toast][data-y-position="bottom"] { + bottom: 0; + --y: translateY(100%); + --lift: -1; + --lift-amount: calc(var(--lift) * var(--gap)); +} +[data-sonner-toast][data-styled="true"] [data-description] { + font-weight: 400; + line-height: 1.4; + color: #3f3f3f; +} +[data-rich-colors="true"][data-sonner-toast][data-styled="true"] + [data-description] { + color: inherit; +} +[data-sonner-toaster][data-sonner-theme="dark"] [data-description] { + color: #e8e8e8; +} +[data-sonner-toast][data-styled="true"] [data-title] { + font-weight: 500; + line-height: 1.5; + color: inherit; +} +[data-sonner-toast][data-styled="true"] [data-icon] { + display: flex; + height: 16px; + width: 16px; + position: relative; + justify-content: flex-start; + align-items: center; + flex-shrink: 0; + margin-left: var(--toast-icon-margin-start); + margin-right: var(--toast-icon-margin-end); +} +[data-sonner-toast][data-promise="true"] [data-icon] > svg { + opacity: 0; + transform: scale(0.8); + transform-origin: center; + animation: sonner-fade-in 0.3s ease forwards; +} +[data-sonner-toast][data-styled="true"] [data-icon] > * { + flex-shrink: 0; +} +[data-sonner-toast][data-styled="true"] [data-icon] svg { + margin-left: var(--toast-svg-margin-start); + margin-right: var(--toast-svg-margin-end); +} +[data-sonner-toast][data-styled="true"] [data-content] { + display: flex; + flex-direction: column; + gap: 2px; +} +[data-sonner-toast][data-styled="true"] [data-button] { + border-radius: 4px; + padding-left: 8px; + padding-right: 8px; + height: 24px; + font-size: 12px; + color: var(--normal-bg); + background: var(--normal-text); + margin-left: var(--toast-button-margin-start); + margin-right: var(--toast-button-margin-end); + border: none; + font-weight: 500; + cursor: pointer; + outline: none; + display: flex; + align-items: center; + flex-shrink: 0; + transition: opacity 0.4s, box-shadow 0.2s; +} +[data-sonner-toast][data-styled="true"] [data-button]:focus-visible { + box-shadow: 0 0 0 2px #0006; +} +[data-sonner-toast][data-styled="true"] [data-button]:first-of-type { + margin-left: var(--toast-button-margin-start); + margin-right: var(--toast-button-margin-end); +} +[data-sonner-toast][data-styled="true"] [data-cancel] { + color: var(--normal-text); + background: #00000014; +} +[data-sonner-toaster][data-sonner-theme="dark"] + [data-sonner-toast][data-styled="true"] + [data-cancel] { + background: #ffffff4d; +} +[data-sonner-toast][data-styled="true"] [data-close-button] { + position: absolute; + left: var(--toast-close-button-start); + right: var(--toast-close-button-end); + top: 0; + height: 20px; + width: 20px; + display: flex; + justify-content: center; + align-items: center; + padding: 0; + color: var(--gray12); + background: var(--normal-bg); + border: 1px solid var(--gray4); + transform: var(--toast-close-button-transform); + border-radius: 50%; + cursor: pointer; + z-index: 1; + transition: opacity 0.1s, background 0.2s, border-color 0.2s; +} +[data-sonner-toast][data-styled="true"] [data-close-button]:focus-visible { + box-shadow: 0 4px 12px #0000001a, 0 0 0 2px #0003; +} +[data-sonner-toast][data-styled="true"] [data-disabled="true"] { + cursor: not-allowed; +} +[data-sonner-toast][data-styled="true"]:hover [data-close-button]:hover { + background: var(--gray2); + border-color: var(--gray5); +} +[data-sonner-toast][data-swiping="true"]:before { + content: ""; + position: absolute; + left: -100%; + right: -100%; + height: 100%; + z-index: -1; +} +[data-sonner-toast][data-y-position="top"][data-swiping="true"]:before { + bottom: 50%; + transform: scaleY(3) translateY(50%); +} +[data-sonner-toast][data-y-position="bottom"][data-swiping="true"]:before { + top: 50%; + transform: scaleY(3) translateY(-50%); +} +[data-sonner-toast][data-swiping="false"][data-removed="true"]:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + transform: scaleY(2); +} +[data-sonner-toast][data-expanded="true"]:after { + content: ""; + position: absolute; + left: 0; + height: calc(var(--gap) + 1px); + bottom: 100%; + width: 100%; +} +[data-sonner-toast][data-mounted="true"] { + --y: translateY(0); + opacity: 1; +} +[data-sonner-toast][data-expanded="false"][data-front="false"] { + --scale: var(--toasts-before) * 0.05 + 1; + --y: translateY(calc(var(--lift-amount) * var(--toasts-before))) + scale(calc(-1 * var(--scale))); + height: var(--front-toast-height); +} +[data-sonner-toast] > * { + transition: opacity 0.4s; +} +[data-sonner-toast][data-x-position="right"] { + right: 0; +} +[data-sonner-toast][data-x-position="left"] { + left: 0; +} +[data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"] + > * { + opacity: 0; +} +[data-sonner-toast][data-visible="false"] { + opacity: 0; + pointer-events: none; +} +[data-sonner-toast][data-mounted="true"][data-expanded="true"] { + --y: translateY(calc(var(--lift) * var(--offset))); + height: var(--initial-height); +} +[data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"] { + --y: translateY(calc(var(--lift) * -100%)); + opacity: 0; +} +[data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"] { + --y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%)); + opacity: 0; +} +[data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"] { + --y: translateY(40%); + opacity: 0; + transition: transform 0.5s, opacity 0.2s; +} +[data-sonner-toast][data-removed="true"][data-front="false"]:before { + height: calc(var(--initial-height) + 20%); +} +[data-sonner-toast][data-swiping="true"] { + transform: var(--y) translateY(var(--swipe-amount-y, 0px)) + translate(var(--swipe-amount-x, 0px)); + transition: none; +} +[data-sonner-toast][data-swiped="true"] { + -webkit-user-select: none; + user-select: none; +} +[data-sonner-toast][data-swipe-out="true"][data-y-position="bottom"], +[data-sonner-toast][data-swipe-out="true"][data-y-position="top"] { + animation-duration: 0.2s; + animation-timing-function: ease-out; + animation-fill-mode: forwards; +} +[data-sonner-toast][data-swipe-out="true"][data-swipe-direction="left"] { + animation-name: swipe-out-left; +} +[data-sonner-toast][data-swipe-out="true"][data-swipe-direction="right"] { + animation-name: swipe-out-right; +} +[data-sonner-toast][data-swipe-out="true"][data-swipe-direction="up"] { + animation-name: swipe-out-up; +} +[data-sonner-toast][data-swipe-out="true"][data-swipe-direction="down"] { + animation-name: swipe-out-down; +} +@keyframes swipe-out-left { + 0% { + transform: var(--y) translate(var(--swipe-amount-x)); + opacity: 1; + } + to { + transform: var(--y) translate(calc(var(--swipe-amount-x) - 100%)); + opacity: 0; + } +} +@keyframes swipe-out-right { + 0% { + transform: var(--y) translate(var(--swipe-amount-x)); + opacity: 1; + } + to { + transform: var(--y) translate(calc(var(--swipe-amount-x) + 100%)); + opacity: 0; + } +} +@keyframes swipe-out-up { + 0% { + transform: var(--y) translateY(var(--swipe-amount-y)); + opacity: 1; + } + to { + transform: var(--y) translateY(calc(var(--swipe-amount-y) - 100%)); + opacity: 0; + } +} +@keyframes swipe-out-down { + 0% { + transform: var(--y) translateY(var(--swipe-amount-y)); + opacity: 1; + } + to { + transform: var(--y) translateY(calc(var(--swipe-amount-y) + 100%)); + opacity: 0; + } +} +@media (max-width: 600px) { + [data-sonner-toaster] { + position: fixed; + right: var(--mobile-offset-right); + left: var(--mobile-offset-left); + width: 100%; + } + [data-sonner-toaster][dir="rtl"] { + left: calc(var(--mobile-offset-left) * -1); + } + [data-sonner-toaster] [data-sonner-toast] { + left: 0; + right: 0; + width: calc(100% - var(--mobile-offset-left) * 2); + } + [data-sonner-toaster][data-x-position="left"] { + left: var(--mobile-offset-left); + } + [data-sonner-toaster][data-y-position="bottom"] { + bottom: var(--mobile-offset-bottom); + } + [data-sonner-toaster][data-y-position="top"] { + top: var(--mobile-offset-top); + } + [data-sonner-toaster][data-x-position="center"] { + left: var(--mobile-offset-left); + right: var(--mobile-offset-right); + transform: none; + } +} +[data-sonner-toaster][data-sonner-theme="light"] { + --normal-bg: #fff; + --normal-border: var(--gray4); + --normal-text: var(--gray12); + --success-bg: hsl(143, 85%, 96%); + --success-border: hsl(145, 92%, 87%); + --success-text: hsl(140, 100%, 27%); + --info-bg: hsl(208, 100%, 97%); + --info-border: hsl(221, 91%, 93%); + --info-text: hsl(210, 92%, 45%); + --warning-bg: hsl(49, 100%, 97%); + --warning-border: hsl(49, 91%, 84%); + --warning-text: hsl(31, 92%, 45%); + --error-bg: hsl(359, 100%, 97%); + --error-border: hsl(359, 100%, 94%); + --error-text: hsl(360, 100%, 45%); +} +[data-sonner-toaster][data-sonner-theme="light"] + [data-sonner-toast][data-invert="true"] { + --normal-bg: #000; + --normal-border: hsl(0, 0%, 20%); + --normal-text: var(--gray1); +} +[data-sonner-toaster][data-sonner-theme="dark"] + [data-sonner-toast][data-invert="true"] { + --normal-bg: #fff; + --normal-border: var(--gray3); + --normal-text: var(--gray12); +} +[data-sonner-toaster][data-sonner-theme="dark"] { + --normal-bg: #000; + --normal-bg-hover: hsl(0, 0%, 12%); + --normal-border: hsl(0, 0%, 20%); + --normal-border-hover: hsl(0, 0%, 25%); + --normal-text: var(--gray1); + --success-bg: hsl(150, 100%, 6%); + --success-border: hsl(147, 100%, 12%); + --success-text: hsl(150, 86%, 65%); + --info-bg: hsl(215, 100%, 6%); + --info-border: hsl(223, 43%, 17%); + --info-text: hsl(216, 87%, 65%); + --warning-bg: hsl(64, 100%, 6%); + --warning-border: hsl(60, 100%, 9%); + --warning-text: hsl(46, 87%, 65%); + --error-bg: hsl(358, 76%, 10%); + --error-border: hsl(357, 89%, 16%); + --error-text: hsl(358, 100%, 81%); +} +[data-sonner-toaster][data-sonner-theme="dark"] + [data-sonner-toast] + [data-close-button] { + background: var(--normal-bg); + border-color: var(--normal-border); + color: var(--normal-text); +} +[data-sonner-toaster][data-sonner-theme="dark"] + [data-sonner-toast] + [data-close-button]:hover { + background: var(--normal-bg-hover); + border-color: var(--normal-border-hover); +} +[data-rich-colors="true"][data-sonner-toast][data-type="success"], +[data-rich-colors="true"][data-sonner-toast][data-type="success"] + [data-close-button] { + background: var(--success-bg); + border-color: var(--success-border); + color: var(--success-text); +} +[data-rich-colors="true"][data-sonner-toast][data-type="info"], +[data-rich-colors="true"][data-sonner-toast][data-type="info"] + [data-close-button] { + background: var(--info-bg); + border-color: var(--info-border); + color: var(--info-text); +} +[data-rich-colors="true"][data-sonner-toast][data-type="warning"], +[data-rich-colors="true"][data-sonner-toast][data-type="warning"] + [data-close-button] { + background: var(--warning-bg); + border-color: var(--warning-border); + color: var(--warning-text); +} +[data-rich-colors="true"][data-sonner-toast][data-type="error"], +[data-rich-colors="true"][data-sonner-toast][data-type="error"] + [data-close-button] { + background: var(--error-bg); + border-color: var(--error-border); + color: var(--error-text); +} +.sonner-loading-wrapper { + --size: 16px; + height: var(--size); + width: var(--size); + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 10; +} +.sonner-loading-wrapper[data-visible="false"] { + transform-origin: center; + animation: sonner-fade-out 0.2s ease forwards; +} +.sonner-spinner { + position: relative; + top: 50%; + left: 50%; + height: var(--size); + width: var(--size); +} +.sonner-loading-bar { + animation: sonner-spin 1.2s linear infinite; + background: var(--gray11); + border-radius: 6px; + height: 8%; + left: -10%; + position: absolute; + top: -3.9%; + width: 24%; +} +.sonner-loading-bar:nth-child(1) { + animation-delay: -1.2s; + transform: rotate(0.0001deg) translate(146%); +} +.sonner-loading-bar:nth-child(2) { + animation-delay: -1.1s; + transform: rotate(30deg) translate(146%); +} +.sonner-loading-bar:nth-child(3) { + animation-delay: -1s; + transform: rotate(60deg) translate(146%); +} +.sonner-loading-bar:nth-child(4) { + animation-delay: -0.9s; + transform: rotate(90deg) translate(146%); +} +.sonner-loading-bar:nth-child(5) { + animation-delay: -0.8s; + transform: rotate(120deg) translate(146%); +} +.sonner-loading-bar:nth-child(6) { + animation-delay: -0.7s; + transform: rotate(150deg) translate(146%); +} +.sonner-loading-bar:nth-child(7) { + animation-delay: -0.6s; + transform: rotate(180deg) translate(146%); +} +.sonner-loading-bar:nth-child(8) { + animation-delay: -0.5s; + transform: rotate(210deg) translate(146%); +} +.sonner-loading-bar:nth-child(9) { + animation-delay: -0.4s; + transform: rotate(240deg) translate(146%); +} +.sonner-loading-bar:nth-child(10) { + animation-delay: -0.3s; + transform: rotate(270deg) translate(146%); +} +.sonner-loading-bar:nth-child(11) { + animation-delay: -0.2s; + transform: rotate(300deg) translate(146%); +} +.sonner-loading-bar:nth-child(12) { + animation-delay: -0.1s; + transform: rotate(330deg) translate(146%); +} +@keyframes sonner-fade-in { + 0% { + opacity: 0; + transform: scale(0.8); + } + to { + opacity: 1; + transform: scale(1); + } +} +@keyframes sonner-fade-out { + 0% { + opacity: 1; + transform: scale(1); + } + to { + opacity: 0; + transform: scale(0.8); + } +} +@keyframes sonner-spin { + 0% { + opacity: 1; + } + to { + opacity: 0.15; + } +} +@media (prefers-reduced-motion) { + [data-sonner-toast], + [data-sonner-toast] > *, + .sonner-loading-bar { + transition: none !important; + animation: none !important; + } +} +.sonner-loader { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transform-origin: center; + transition: opacity 0.2s, transform 0.2s; +} +.sonner-loader[data-visible="false"] { + opacity: 0; + transform: scale(0.8) translate(-50%, -50%); +} /*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */ +@layer properties { + @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or + ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) { + *, + :before, + :after, + ::backdrop { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-translate-z: 0; + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-border-style: solid; + --tw-leading: initial; + --tw-font-weight: initial; + --tw-tracking: initial; + --tw-shadow: 0 0 #0000; + --tw-shadow-color: initial; + --tw-shadow-alpha: 100%; + --tw-inset-shadow: 0 0 #0000; + --tw-inset-shadow-color: initial; + --tw-inset-shadow-alpha: 100%; + --tw-ring-color: initial; + --tw-ring-shadow: 0 0 #0000; + --tw-inset-ring-color: initial; + --tw-inset-ring-shadow: 0 0 #0000; + --tw-ring-inset: initial; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-offset-shadow: 0 0 #0000; + --tw-backdrop-blur: initial; + --tw-backdrop-brightness: initial; + --tw-backdrop-contrast: initial; + --tw-backdrop-grayscale: initial; + --tw-backdrop-hue-rotate: initial; + --tw-backdrop-invert: initial; + --tw-backdrop-opacity: initial; + --tw-backdrop-saturate: initial; + --tw-backdrop-sepia: initial; + --tw-duration: initial; + --tw-content: ""; + --tw-blur: initial; + --tw-brightness: initial; + --tw-contrast: initial; + --tw-grayscale: initial; + --tw-hue-rotate: initial; + --tw-invert: initial; + --tw-opacity: initial; + --tw-saturate: initial; + --tw-sepia: initial; + --tw-drop-shadow: initial; + --tw-drop-shadow-color: initial; + --tw-drop-shadow-alpha: 100%; + --tw-drop-shadow-size: initial; + --tw-animation-delay: 0s; + --tw-animation-direction: normal; + --tw-animation-duration: initial; + --tw-animation-fill-mode: none; + --tw-animation-iteration-count: 1; + --tw-enter-blur: 0; + --tw-enter-opacity: 1; + --tw-enter-rotate: 0; + --tw-enter-scale: 1; + --tw-enter-translate-x: 0; + --tw-enter-translate-y: 0; + --tw-exit-blur: 0; + --tw-exit-opacity: 1; + --tw-exit-rotate: 0; + --tw-exit-scale: 1; + --tw-exit-translate-x: 0; + --tw-exit-translate-y: 0; + --tw-outline-style: solid; + } + } +} +@layer theme { + :root, + :host { + --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + --color-red-400: oklch(70.4% 0.191 22.216); + --color-red-500: oklch(63.7% 0.237 25.331); + --color-red-600: oklch(57.7% 0.245 27.325); + --color-orange-500: oklch(70.5% 0.213 47.604); + --color-amber-500: oklch(76.9% 0.188 70.08); + --color-amber-600: oklch(66.6% 0.179 58.318); + --color-yellow-400: oklch(85.2% 0.199 91.936); + --color-yellow-500: oklch(79.5% 0.184 86.047); + --color-lime-500: oklch(76.8% 0.233 130.85); + --color-green-100: oklch(96.2% 0.044 156.743); + --color-green-500: oklch(72.3% 0.219 149.579); + --color-green-600: oklch(62.7% 0.194 149.214); + --color-emerald-500: oklch(69.6% 0.17 162.48); + --color-teal-500: oklch(70.4% 0.14 182.503); + --color-cyan-500: oklch(71.5% 0.143 215.221); + --color-sky-500: oklch(68.5% 0.169 237.323); + --color-blue-500: oklch(62.3% 0.214 259.815); + --color-blue-600: oklch(54.6% 0.245 262.881); + --color-blue-800: oklch(42.4% 0.199 265.638); + --color-indigo-500: oklch(58.5% 0.233 277.117); + --color-violet-500: oklch(60.6% 0.25 292.717); + --color-purple-500: oklch(62.7% 0.265 303.9); + --color-fuchsia-500: oklch(66.7% 0.295 322.15); + --color-pink-500: oklch(65.6% 0.241 354.308); + --color-rose-500: oklch(64.5% 0.246 16.439); + --color-black: #000; + --color-white: #fff; + --spacing: 0.25rem; + --container-xs: 20rem; + --container-sm: 24rem; + --container-md: 28rem; + --container-lg: 32rem; + --container-xl: 36rem; + --container-2xl: 42rem; + --container-3xl: 48rem; + --container-4xl: 56rem; + --container-5xl: 64rem; + --container-7xl: 80rem; + --text-xs: 0.75rem; + --text-xs--line-height: calc(1 / 0.75); + --text-sm: 0.875rem; + --text-sm--line-height: calc(1.25 / 0.875); + --text-base: 1rem; + --text-base--line-height: 1.5; + --text-lg: 1.125rem; + --text-lg--line-height: calc(1.75 / 1.125); + --text-xl: 1.25rem; + --text-xl--line-height: calc(1.75 / 1.25); + --text-2xl: 1.5rem; + --text-2xl--line-height: calc(2 / 1.5); + --text-3xl: 1.875rem; + --text-3xl--line-height: 1.2; + --text-4xl: 2.25rem; + --text-4xl--line-height: calc(2.5 / 2.25); + --text-5xl: 3rem; + --text-5xl--line-height: 1; + --text-7xl: 4.5rem; + --text-7xl--line-height: 1; + --font-weight-normal: 400; + --font-weight-medium: 500; + --font-weight-semibold: 600; + --font-weight-bold: 700; + --font-weight-extrabold: 800; + --tracking-widest: 0.1em; + --radius-xs: 0.125rem; + --radius-sm: 0.25rem; + --radius-md: 0.375rem; + --radius-lg: 0.5rem; + --radius-xl: 0.75rem; + --radius-2xl: 1rem; + --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; + --animate-bounce: bounce 1s infinite; + --blur-sm: 8px; + --aspect-video: 16/9; + --default-transition-duration: 0.15s; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-mono-font-family: var(--font-mono); + } +} +@layer base { + *, + :after, + :before, + ::backdrop { + box-sizing: border-box; + border: 0 solid; + margin: 0; + padding: 0; + } + ::file-selector-button { + box-sizing: border-box; + border: 0 solid; + margin: 0; + padding: 0; + } + html, + :host { + -webkit-text-size-adjust: 100%; + -moz-tab-size: 4; + tab-size: 4; + line-height: 1.5; + font-family: var( + --default-font-family, + ui-sans-serif, + system-ui, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol", + "Noto Color Emoji" + ); + font-feature-settings: var(--default-font-feature-settings, normal); + font-variation-settings: var(--default-font-variation-settings, normal); + -webkit-tap-highlight-color: transparent; + } + hr { + height: 0; + color: inherit; + border-top-width: 1px; + } + abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + h1, + h2, + h3, + h4, + h5, + h6 { + font-size: inherit; + font-weight: inherit; + } + a { + color: inherit; + -webkit-text-decoration: inherit; + text-decoration: inherit; + } + b, + strong { + font-weight: bolder; + } + code, + kbd, + samp, + pre { + font-family: var( + --default-mono-font-family, + ui-monospace, + SFMono-Regular, + Menlo, + Monaco, + Consolas, + "Liberation Mono", + "Courier New", + monospace + ); + font-feature-settings: var(--default-mono-font-feature-settings, normal); + font-variation-settings: var( + --default-mono-font-variation-settings, + normal + ); + font-size: 1em; + } + small { + font-size: 80%; + } + sub, + sup { + vertical-align: baseline; + font-size: 75%; + line-height: 0; + position: relative; + } + sub { + bottom: -0.25em; + } + sup { + top: -0.5em; + } + table { + text-indent: 0; + border-color: inherit; + border-collapse: collapse; + } + :-moz-focusring { + outline: auto; + } + progress { + vertical-align: baseline; + } + summary { + display: list-item; + } + ol, + ul, + menu { + list-style: none; + } + img, + svg, + video, + canvas, + audio, + iframe, + embed, + object { + vertical-align: middle; + display: block; + } + img, + video { + max-width: 100%; + height: auto; + } + button, + input, + select, + optgroup, + textarea { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + opacity: 1; + background-color: #0000; + border-radius: 0; + } + ::file-selector-button { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + opacity: 1; + background-color: #0000; + border-radius: 0; + } + :where(select:is([multiple], [size])) optgroup { + font-weight: bolder; + } + :where(select:is([multiple], [size])) optgroup option { + padding-inline-start: 20px; + } + ::file-selector-button { + margin-inline-end: 4px; + } + ::placeholder { + opacity: 1; + } + @supports (not ((-webkit-appearance: -apple-pay-button))) or + (contain-intrinsic-size: 1px) { + ::placeholder { + color: currentColor; + } + @supports (color: color-mix(in lab, red, red)) { + ::placeholder { + color: color-mix(in oklab, currentcolor 50%, transparent); + } + } + } + textarea { + resize: vertical; + } + ::-webkit-search-decoration { + -webkit-appearance: none; + } + ::-webkit-date-and-time-value { + min-height: 1lh; + text-align: inherit; + } + ::-webkit-datetime-edit { + display: inline-flex; + } + ::-webkit-datetime-edit-fields-wrapper { + padding: 0; + } + ::-webkit-datetime-edit { + padding-block: 0; + } + ::-webkit-datetime-edit-year-field { + padding-block: 0; + } + ::-webkit-datetime-edit-month-field { + padding-block: 0; + } + ::-webkit-datetime-edit-day-field { + padding-block: 0; + } + ::-webkit-datetime-edit-hour-field { + padding-block: 0; + } + ::-webkit-datetime-edit-minute-field { + padding-block: 0; + } + ::-webkit-datetime-edit-second-field { + padding-block: 0; + } + ::-webkit-datetime-edit-millisecond-field { + padding-block: 0; + } + ::-webkit-datetime-edit-meridiem-field { + padding-block: 0; + } + ::-webkit-calendar-picker-indicator { + line-height: 1; + } + :-moz-ui-invalid { + box-shadow: none; + } + button, + input:where([type="button"], [type="reset"], [type="submit"]) { + -webkit-appearance: button; + -moz-appearance: button; + appearance: button; + } + ::file-selector-button { + -webkit-appearance: button; + -moz-appearance: button; + appearance: button; + } + ::-webkit-inner-spin-button { + height: auto; + } + ::-webkit-outer-spin-button { + height: auto; + } + [hidden]:where(:not([hidden="until-found"])) { + display: none !important; + } + :root { + color-scheme: light only; + --version: 1.13; + } + html, + body { + height: 100%; + } + * { + overscroll-behavior: contain; + touch-action: manipulation; + } + .maplibregl-ctrl-bottom-right { + z-index: 1; + height: max-content; + top: 0; + left: 0; + right: unset !important; + } + .maplibregl-ctrl-attrib.maplibregl-compact { + margin: 10px 80px 10px 12px !important; + } + #map canvas { + cursor: default; + } + body { + background-color: var(--color-base-100); + font-family: "Geist", var(--font-sans); + } + input:focus, + textarea:focus, + label:has(:focus) { + outline-style: var(--tw-outline-style) !important; + outline-width: 0 !important; + } + button, + a { + cursor: pointer; + } + @supports selector(:-moz-focusring) { + :root { + --fx-noise: none !important; + } + } + @font-face { + font-family: Geist; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(./Geist-cyrillic.CHSlOQsW.woff2) format("woff2"); + unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; + } + @font-face { + font-family: Geist; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(./Geist-latin-ext.DMtmJ5ZE.woff2) format("woff2"); + unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, + U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, + U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + @font-face { + font-family: Geist; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(./Geist-latin.Dg_dQHbK.woff2) format("woff2"); + unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, + U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; + } + @font-face { + font-family: Geist Mono; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(./GeistMono-cyrillic.BZdD_g9V.woff2) format("woff2"); + unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; + } + @font-face { + font-family: Geist Mono; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(./GeistMono-latin-ext.b6lpi8_2.woff2) format("woff2"); + unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, + U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, + U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + @font-face { + font-family: Geist Mono; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(./GeistMono-latin.Cjtb1TV-.woff2) format("woff2"); + unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, + U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; + } + @font-face { + font-family: Pixelify Sans; + font-style: normal; + font-weight: 400 700; + font-display: swap; + src: url(./PixelifySans-cyrillic.CPPz0Qvd.woff2) format("woff2"); + unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; + } + @font-face { + font-family: Pixelify Sans; + font-style: normal; + font-weight: 400 700; + font-display: swap; + src: url(./PixelifySans-cyrillic.CPPz0Qvd.woff2) format("woff2"); + unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, + U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, + U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + @font-face { + font-family: Pixelify Sans; + font-style: normal; + font-weight: 400 700; + font-display: swap; + src: url(./PixelifySans-latin.vdc2vUDH.woff2) format("woff2"); + unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, + U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; + } + @font-face { + font-family: Noto Color Emoji; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./NotoColorEmoji-flags.ClvgErYz.woff2) format("woff2"); + unicode-range: U+1F1E6-1F1FF; + } + .iti { + --iti-path-flags-1x: url(./flags.a2kmUSbF.webp); + --iti-path-flags-2x: url(./flags@2x.gR6KPp3x.webp); + --iti-path-globe-1x: url(data:image/webp;base64,UklGRvoBAABXRUJQVlA4TO4BAAAvE8AEENXIkiRZtZu7H33ql07cqTlilvbz9i4tosSMZma27zWzHRGyIEk2bcu2bdvGn23btm3btm3btm0/m5PqAEkLTYYwxTPAW84Tl6wNgmvIqptKKH9nYAr4xle+TML/BDI2LSg6QHKT/nngE4+ZMIUePUGeTvly+YoV8F1DtkGUzlfst2LUKTX6PaWZeMWiDqN6PgcciGa2boYPmxlR5bIIL5l6RVyDYMXmY1f10pGb7PmAN6sRTBTN3N9C9Zi/LbVhlL+Oo2M7RxoE/a4+/nDjeBrSVwtGYXGGMIrUbJzCU1LgFftP9K1hkpOXmBim30cIJ1hgOkSwMhYCMgmaw7rXcfT5/wQcFhrcuaOEBuq5ytYblLPBEhV0Aq/ZqcDn/6RUDgrUL0/0UZgK/p+rR8/4nZAqFfuXA6TbtFQyJSe4gpj6T19a5q+HLEkox0mlWXvbIGbuJw28fkozjybhT5oXHNY4py5rH1CflcyeB1fId9wXDAvFmz/8m6AE/8TgYzEVGoRMCKUhND7PQho7jGo1utkdV559cm3llGFs3sxBZrmGbEExop91jyfg5G7BmCCi6evNaSDFBrG3vyaRNzt+HJ9kQpVbgj+xFUoNgr3abxqGfH3WfQq9lp5UZPRW74ZbFgpq+EGo67dUAQ==); + --iti-path-globe-2x: url(data:image/webp;base64,UklGRlwFAABXRUJQVlA4TE8FAAAvJ8AJEEfHKJIkKdmcgvjj3wwill7QwKhtJEnOnIDmv/zJLAdGbSNJcuYENP/lT2Y5OGwjSZHmtL3wTFl9tp8SM/9xz47Ctm2b7mnwDggKFNd77jgHyxhIYVvLQBDEHEBKRQBIOXzQpAhiBQCIAMaIAACHhAQHIMFhhRkSRt1hlRIYDAZDhiE3CVrBS2gFkZGRYdA6mjQQBYAv6yOZSVAQCoPWMCWBIBQKwtCCUBANFARBlChBfPCG/dZUjxJECYJQECU+KGFQEC1YdN/NSUNRTDm4osQBGUwFjDFCBOYRo9QWxAmPlKQECRERMbVLCZapZ0owSrnz3hb6/P8auL9vAwr7/xeS5EV9q2sWU2vbtjla27Zt28akprq6a3bPtm2np87eJIvePUzd9fvoXkT0fwK4Vwdo8t6qyQW+O7Tn4k7NAdvi/jMR0fGpwhglhZBKm3B0pzvg3JcDrUuMEn7SDaUIRTLhhqb/AbDvw+bbJToMEq5QflFfv+QhJVPxcmkm/Ih9TzZfFxk/CJUnP7zMykJqnhsqQ51M6tTv2Pdgc/GKCuKmaI96HlhVAJy4vWVWWgRSfYJ9l4jv+4aB0F15Td3kH1YW4DiMnEJHGSaFOoOdw4LxOhCqPTf0JvLys6I8Wv/9BeeuhEkZfE+UZfNSOumqT+CArgHwbBHZw+ZB00AGeiYxIKKudH2zDxg97VK7FxdO6+9Pmt3l4J/bZR58rtyEOY6dtdhcMbPh2jsyNKr3mNnDy+c8Pig0od5wGXakg7DYgYgfU5648s0fC0Ljv9SigQVrHwUafXVgmNE92zBBBeYjsHn5L6Emz/6776EnxwJUsqKADMDmq8fG/T16fujr7lhknhheLG4PPwFD15IXs2xWFWBZVj4ndDW+fDItPRncssi75Fxv/iHQQL2PDbkg4k/zP/BfgfR1axxy59PM/IYdsypZWUCUiTlck2/zTz4fm3LzqkNlxxnzW+A4fK4vkbNrIbn7bgVoKn3djQu90krrllynQ1g7v2rpjUYsfeR6tdLSaqV5w5fR6E5+k8BVT/0aqqSXDAdV4wvpCplTCJnbFTLb9dTEHjoQQiTMC7Ah3PPuwbffOfD+xP4d3s7uMGDC+wcOvrs7kVKTZ6m4EMIVfn1O61JyrnuU3EM3A3znefrp142f5cnmnDXNyXecPFYUYNt2pVUlvot//qWFDszz9aTrCuGpQVX4Wn+KAw6rCrAgw/eqLZXQVQfmXZ5QnnCF2wrwdlJ5F8DhC1MP/itRnhv+wmHji7hpT+x0tekziRw7jxUF2LZznX3xOydH3e5fVhYWO5QOlClPzYFX9EMD65P9bBHZ16fLq7dHfrlal5vO2LxuKkTcfABvjZDxwsWvf9hs7pCv2ry5cowvB2/8iosq5YraWHw7JCxLyaAWZPoUrilMaRMKo8WwpQv0z2AXqnLzLA42H5gKEVcTuM76RfDtpVrzh9b5oTp0e5SI+Topy78hAzFm6QqRMN2gugNYLH0EoHF6Pyw3vm+OYQMRlwPpCd+sAep/WQ1OPGZZ13lO0ugpE0+m1xGRbdNKe67wzTN3Nouw3yfw03WH+nrnqUAnEul5YOXA5o20L4SnAiXjoX6f7Pm6RIeBl14EGe4a8VLad4UnvZTwysxR2DtOumEiUOpliLi7FWNb2vOEK4QQnnyoIav+Ko9XhGbUF1gZ7tWKcVBLX+T05HkOGmn0iA4WjsW9Ww6ny3WiTAjhyd41WWfGrv4sAof7t/l+ppGJlFeR7oBVr4kF2BYP0oYjDxsZpjuTsQDHsXjAUYxrrwwe9gGWRRRZ3CcA); + } + :root, + [data-theme] { + background-color: var(--root-bg, var(--color-base-100)); + color: var(--color-base-content); + } + :root { + --fx-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E"); + } + @property --radialprogress { + syntax: ""; + inherits: true; + initial-value: 0%; + } + :root { + scrollbar-color: currentColor #0000; + } + @supports (color: color-mix(in lab, red, red)) { + :root { + scrollbar-color: color-mix(in oklch, currentColor 35%, #0000) #0000; + } + } + :root:has( + .modal-open, + .modal[open], + .modal:target, + .modal-toggle:checked, + .drawer:not([class*="drawer-open"]) > .drawer-toggle:checked + ) { + overflow: hidden; + } + :where(:root), + :root:has(input.theme-controller[value="custom-winter"]:checked), + [data-theme="custom-winter"] { + color-scheme: light; + --color-base-100: oklch(100% 0 0); + --color-base-200: oklch(97.466% 0.011 259.822); + --color-base-300: oklch(93.268% 0.016 262.751); + --color-base-content: oklch(41.886% 0.053 255.824); + --color-primary: oklch(56.86% 0.255 257.57); + --color-primary-content: oklch(100% 0.051 257.57); + --color-secondary: oklch(42.551% 0.161 282.339); + --color-secondary-content: oklch(88.51% 0.032 282.339); + --color-accent: oklch(59.939% 0.191 335.171); + --color-accent-content: oklch(11.988% 0.038 335.171); + --color-neutral: oklch(19.616% 0.063 257.651); + --color-neutral-content: oklch(83.923% 0.012 257.651); + --color-info: oklch(88.127% 0.085 214.515); + --color-info-content: oklch(17.625% 0.017 214.515); + --color-success: oklch(80.494% 0.077 197.823); + --color-success-content: oklch(16.098% 0.015 197.823); + --color-warning: oklch(89.172% 0.045 71.47); + --color-warning-content: oklch(17.834% 0.009 71.47); + --color-error: oklch(73.092% 0.11 20.076); + --color-error-content: oklch(14.618% 0.022 20.076); + --radius-selector: 2rem; + --radius-field: 2rem; + --radius-box: 2rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 2px; + --depth: 1; + --noise: 1; + } + :root:has(input.theme-controller[value="dark"]:checked), + [data-theme="dark"] { + color-scheme: dark; + --color-base-100: oklch(30.857% 0.023 264.149); + --color-base-200: oklch(28.036% 0.019 264.182); + --color-base-300: oklch(26.346% 0.018 262.177); + --color-base-content: oklch(97.807% 0.029 256.847); + --color-primary: oklch(58% 0.233 277.117); + --color-primary-content: oklch(96% 0.018 272.314); + --color-secondary: oklch(65% 0.241 354.308); + --color-secondary-content: oklch(94% 0.028 342.258); + --color-accent: oklch(77% 0.152 181.912); + --color-accent-content: oklch(38% 0.063 188.416); + --color-neutral: oklch(14% 0.005 285.823); + --color-neutral-content: oklch(92% 0.004 286.32); + --color-info: oklch(74% 0.16 232.661); + --color-info-content: oklch(29% 0.066 243.157); + --color-success: oklch(76% 0.177 163.223); + --color-success-content: oklch(37% 0.077 168.94); + --color-warning: oklch(82% 0.189 84.429); + --color-warning-content: oklch(41% 0.112 45.904); + --color-error: oklch(71% 0.194 13.428); + --color-error-content: oklch(27% 0.105 12.094); + --radius-selector: 2rem; + --radius-field: 2rem; + --radius-box: 2rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 2px; + --depth: 1; + --noise: 1; + } +} +@layer components; +@layer utilities { + .diff { + webkit-user-select: none; + -webkit-user-select: none; + user-select: none; + direction: ltr; + grid-template-columns: auto 1fr; + width: 100%; + display: grid; + position: relative; + overflow: hidden; + container-type: inline-size; + } + .diff:focus-visible, + .diff:has(.diff-item-1:focus-visible) { + outline-style: var(--tw-outline-style); + outline-offset: 1px; + outline-width: 2px; + outline-color: var(--color-base-content); + } + .diff:focus-visible .diff-resizer { + min-width: 90cqi; + max-width: 90cqi; + } + .diff:has(.diff-item-2:focus-visible) { + outline-style: var(--tw-outline-style); + outline-offset: 1px; + outline-width: 2px; + } + .diff:has(.diff-item-2:focus-visible) .diff-resizer { + min-width: 10cqi; + max-width: 10cqi; + } + @supports (-webkit-overflow-scrolling: touch) and (overflow: -webkit-paged-x) { + .diff:focus .diff-resizer { + min-width: 10cqi; + max-width: 10cqi; + } + .diff:has(.diff-item-1:focus) .diff-resizer { + min-width: 90cqi; + max-width: 90cqi; + } + } + .modal { + pointer-events: none; + visibility: hidden; + width: 100%; + max-width: none; + height: 100%; + max-height: none; + color: inherit; + transition: translate 0.3s ease-out, visibility 0.3s allow-discrete, + background-color 0.3s ease-out, opacity 0.1s ease-out; + overscroll-behavior: contain; + z-index: 999; + background-color: #0000; + place-items: center; + margin: 0; + padding: 0; + display: grid; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: hidden; + } + .modal::backdrop { + display: none; + } + .modal.modal-open, + .modal[open], + .modal:target { + pointer-events: auto; + visibility: visible; + opacity: 1; + background-color: #0006; + } + :is(.modal.modal-open, .modal[open], .modal:target) .modal-box { + opacity: 1; + translate: 0; + scale: 1; + } + @starting-style { + .modal.modal-open, + .modal[open], + .modal:target { + visibility: hidden; + opacity: 0; + } + } + .tooltip { + --tt-bg: var(--color-neutral); + --tt-off: calc(100% + 0.5rem); + --tt-tail: calc(100% + 1px + 0.25rem); + display: inline-block; + position: relative; + } + .tooltip > :where(.tooltip-content), + .tooltip:where([data-tip]):before { + border-radius: var(--radius-field); + text-align: center; + white-space: normal; + max-width: 20rem; + color: var(--color-neutral-content); + opacity: 0; + background-color: var(--tt-bg); + pointer-events: none; + z-index: 2; + --tw-content: attr(data-tip); + content: var(--tw-content); + width: max-content; + padding-block: 0.25rem; + padding-inline: 0.5rem; + font-size: 0.875rem; + line-height: 1.25; + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, + transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms; + position: absolute; + } + .tooltip:after { + opacity: 0; + background-color: var(--tt-bg); + content: ""; + pointer-events: none; + --mask-tooltip: url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A"); + width: 0.625rem; + height: 0.25rem; + -webkit-mask-position: -1px 0; + mask-position: -1px 0; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-image: var(--mask-tooltip); + mask-image: var(--mask-tooltip); + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, + transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms; + display: block; + position: absolute; + } + :is( + .tooltip.tooltip-open, + .tooltip[data-tip]:not([data-tip=""]):hover, + .tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover, + .tooltip:has(:focus-visible) + ) + > .tooltip-content, + :is( + .tooltip.tooltip-open, + .tooltip[data-tip]:not([data-tip=""]):hover, + .tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover, + .tooltip:has(:focus-visible) + )[data-tip]:before, + :is( + .tooltip.tooltip-open, + .tooltip[data-tip]:not([data-tip=""]):hover, + .tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover, + .tooltip:has(:focus-visible) + ):after { + opacity: 1; + --tt-pos: 0rem; + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), + transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + } + .tooltip > .tooltip-content, + .tooltip[data-tip]:before { + transform: translate(-50%) translateY(var(--tt-pos, 0.25rem)); + inset: auto auto var(--tt-off) 50%; + } + .tooltip:after { + transform: translate(-50%) translateY(var(--tt-pos, 0.25rem)); + inset: auto auto var(--tt-tail) 50%; + } + .tab { + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + text-align: center; + webkit-user-select: none; + -webkit-user-select: none; + user-select: none; + flex-wrap: wrap; + justify-content: center; + align-items: center; + display: inline-flex; + position: relative; + } + @media (hover: hover) { + .tab:hover { + color: var(--color-base-content); + } + } + .tab { + --tab-p: 1rem; + --tab-bg: var(--color-base-100); + --tab-border-color: var(--color-base-300); + --tab-radius-ss: 0; + --tab-radius-se: 0; + --tab-radius-es: 0; + --tab-radius-ee: 0; + --tab-order: 0; + --tab-radius-min: calc(0.75rem - var(--border)); + order: var(--tab-order); + height: var(--tab-height); + border-color: #0000; + padding-inline-start: var(--tab-p); + padding-inline-end: var(--tab-p); + font-size: 0.875rem; + } + .tab:is(input[type="radio"]) { + min-width: fit-content; + } + .tab:is(input[type="radio"]):after { + content: attr(aria-label); + } + .tab:is(label) { + position: relative; + } + .tab:is(label) input { + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + opacity: 0; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + :is( + .tab:checked, + .tab:is(label:has(:checked)), + .tab:is(.tab-active, [aria-selected="true"]) + ) + + .tab-content { + height: calc(100% - var(--tab-height) + var(--border)); + display: block; + } + .tab:not( + :checked, + label:has(:checked), + :hover, + .tab-active, + [aria-selected="true"] + ) { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .tab:not( + :checked, + label:has(:checked), + :hover, + .tab-active, + [aria-selected="true"] + ) { + color: color-mix(in oklab, var(--color-base-content) 50%, transparent); + } + } + .tab:not(input):empty { + cursor: default; + flex-grow: 1; + } + .tab:focus { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .tab:focus { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .tab:focus-visible, + .tab:is(label:has(:checked:focus-visible)) { + outline-offset: -5px; + outline: 2px solid; + } + .tab[disabled] { + pointer-events: none; + opacity: 0.4; + } + .menu { + --menu-active-fg: var(--color-neutral-content); + --menu-active-bg: var(--color-neutral); + flex-flow: column wrap; + width: fit-content; + padding: 0.5rem; + font-size: 0.875rem; + display: flex; + } + .menu :where(li ul) { + white-space: nowrap; + margin-inline-start: 1rem; + padding-inline-start: 0.5rem; + position: relative; + } + .menu :where(li ul):before { + background-color: var(--color-base-content); + opacity: 0.1; + width: var(--border); + content: ""; + inset-inline-start: 0; + position: absolute; + top: 0.75rem; + bottom: 0.75rem; + } + .menu :where(li > .menu-dropdown:not(.menu-dropdown-show)) { + display: none; + } + .menu :where(li:not(.menu-title) > :not(ul, details, .menu-title, .btn)), + .menu :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + border-radius: var(--radius-field); + text-align: start; + text-wrap: balance; + -webkit-user-select: none; + user-select: none; + grid-auto-columns: minmax(auto, max-content) auto max-content; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: 0.5rem; + padding-block: 0.375rem; + padding-inline: 0.75rem; + transition-property: color, background-color, box-shadow; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + display: grid; + } + .menu :where(li > details > summary) { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .menu :where(li > details > summary) { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .menu :where(li > details > summary)::-webkit-details-marker { + display: none; + } + :is( + .menu :where(li > details > summary), + .menu :where(li > .menu-dropdown-toggle) + ):after { + content: ""; + transform-origin: 50%; + pointer-events: none; + justify-self: flex-end; + width: 0.375rem; + height: 0.375rem; + transition-property: rotate, translate; + transition-duration: 0.2s; + display: block; + translate: 0 -1px; + rotate: -135deg; + box-shadow: inset 2px 2px; + } + .menu :where(li > details[open] > summary):after, + .menu :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { + translate: 0 1px; + rotate: 45deg; + } + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn).menu-focus, + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn):focus-visible { + cursor: pointer; + background-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn).menu-focus, + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn):focus-visible { + background-color: color-mix( + in oklab, + var(--color-base-content) 10%, + transparent + ); + } + } + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn).menu-focus, + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn):focus-visible { + color: var(--color-base-content); + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn).menu-focus, + .menu + :where( + li:not(.menu-title, .disabled) > :not(ul, details, .menu-title), + li:not(.menu-title, .disabled) > details > summary:not(.menu-title) + ):not(.menu-active, :active, .btn):focus-visible { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .menu + :where( + li:not(.menu-title, .disabled) + > :not(ul, details, .menu-title):not(.menu-active, :active, .btn):hover, + li:not(.menu-title, .disabled) + > details + > summary:not(.menu-title):not(.menu-active, :active, .btn):hover + ) { + cursor: pointer; + background-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .menu + :where( + li:not(.menu-title, .disabled) + > :not(ul, details, .menu-title):not( + .menu-active, + :active, + .btn + ):hover, + li:not(.menu-title, .disabled) + > details + > summary:not(.menu-title):not(.menu-active, :active, .btn):hover + ) { + background-color: color-mix( + in oklab, + var(--color-base-content) 10%, + transparent + ); + } + } + .menu + :where( + li:not(.menu-title, .disabled) + > :not(ul, details, .menu-title):not(.menu-active, :active, .btn):hover, + li:not(.menu-title, .disabled) + > details + > summary:not(.menu-title):not(.menu-active, :active, .btn):hover + ) { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .menu + :where( + li:not(.menu-title, .disabled) + > :not(ul, details, .menu-title):not( + .menu-active, + :active, + .btn + ):hover, + li:not(.menu-title, .disabled) + > details + > summary:not(.menu-title):not(.menu-active, :active, .btn):hover + ) { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .menu + :where( + li:not(.menu-title, .disabled) + > :not(ul, details, .menu-title):not(.menu-active, :active, .btn):hover, + li:not(.menu-title, .disabled) + > details + > summary:not(.menu-title):not(.menu-active, :active, .btn):hover + ) { + box-shadow: inset 0 1px #00000003, inset 0 -1px #ffffff03; + } + .menu :where(li:empty) { + background-color: var(--color-base-content); + opacity: 0.1; + height: 1px; + margin: 0.5rem 1rem; + } + .menu :where(li) { + flex-flow: column wrap; + flex-shrink: 0; + align-items: stretch; + display: flex; + position: relative; + } + .menu :where(li) .badge { + justify-self: flex-end; + } + .menu :where(li) > :not(ul, .menu-title, details, .btn):active, + .menu :where(li) > :not(ul, .menu-title, details, .btn).menu-active, + .menu :where(li) > details > summary:active { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .menu :where(li) > :not(ul, .menu-title, details, .btn):active, + .menu :where(li) > :not(ul, .menu-title, details, .btn).menu-active, + .menu :where(li) > details > summary:active { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .menu :where(li) > :not(ul, .menu-title, details, .btn):active, + .menu :where(li) > :not(ul, .menu-title, details, .btn).menu-active, + .menu :where(li) > details > summary:active { + color: var(--menu-active-fg); + background-color: var(--menu-active-bg); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + } + :is( + .menu :where(li) > :not(ul, .menu-title, details, .btn):active, + .menu :where(li) > :not(ul, .menu-title, details, .btn).menu-active, + .menu :where(li) > details > summary:active + ):not( + :is( + .menu :where(li) > :not(ul, .menu-title, details, .btn):active, + .menu :where(li) > :not(ul, .menu-title, details, .btn).menu-active, + .menu :where(li) > details > summary:active + ):active + ) { + box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg); + } + .menu :where(li).menu-disabled { + pointer-events: none; + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .menu :where(li).menu-disabled { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + .menu .dropdown:focus-within .menu-dropdown-toggle:after { + translate: 0 1px; + rotate: 45deg; + } + .menu .dropdown-content { + margin-top: 0.5rem; + padding: 0.5rem; + } + .menu .dropdown-content:before { + display: none; + } + .dropdown { + position-area: var(--anchor-v, bottom) var(--anchor-h, span-right); + display: inline-block; + position: relative; + } + .dropdown > :not(summary):focus { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .dropdown > :not(summary):focus { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .dropdown .dropdown-content { + position: absolute; + } + .dropdown:not(details, .dropdown-open, .dropdown-hover:hover, :focus-within) + .dropdown-content { + transform-origin: top; + opacity: 0; + display: none; + scale: 95%; + } + .dropdown[popover], + .dropdown .dropdown-content { + z-index: 999; + transition-behavior: allow-discrete; + transition-property: opacity, scale, display; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + animation: 0.2s dropdown; + } + @starting-style { + .dropdown[popover], + .dropdown .dropdown-content { + opacity: 0; + scale: 95%; + } + } + :is( + .dropdown.dropdown-open, + .dropdown:not(.dropdown-hover):focus, + .dropdown:focus-within + ) + > [tabindex]:first-child { + pointer-events: none; + } + :is( + .dropdown.dropdown-open, + .dropdown:not(.dropdown-hover):focus, + .dropdown:focus-within + ) + .dropdown-content { + opacity: 1; + } + .dropdown.dropdown-hover:hover .dropdown-content { + opacity: 1; + scale: 100%; + } + .dropdown:is(details) summary::-webkit-details-marker { + display: none; + } + :is(.dropdown.dropdown-open, .dropdown:focus, .dropdown:focus-within) + .dropdown-content { + scale: 100%; + } + .dropdown:where([popover]) { + background: 0 0; + } + .dropdown[popover] { + color: inherit; + position: fixed; + } + @supports not (position-area: bottom) { + .dropdown[popover] { + margin: auto; + } + .dropdown[popover].dropdown-open:not(:popover-open) { + transform-origin: top; + opacity: 0; + display: none; + scale: 95%; + } + .dropdown[popover]::backdrop { + background-color: oklab(0% none none/.3); + } + } + .dropdown[popover]:not(.dropdown-open, :popover-open) { + transform-origin: top; + opacity: 0; + display: none; + scale: 95%; + } + :where(.btn) { + width: unset; + } + .btn { + cursor: pointer; + text-align: center; + vertical-align: middle; + outline-offset: 2px; + webkit-user-select: none; + -webkit-user-select: none; + user-select: none; + padding-inline: var(--btn-p); + color: var(--btn-fg); + --tw-prose-links: var(--btn-fg); + height: var(--size); + font-size: var(--fontsize, 0.875rem); + outline-color: var(--btn-color, var(--color-base-content)); + background-color: var(--btn-bg); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--btn-noise); + border-width: var(--border); + border-style: solid; + border-color: var(--btn-border); + text-shadow: 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 0.15)); + touch-action: manipulation; + box-shadow: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, + var(--btn-shadow); + --size: calc(var(--size-field, 0.25rem) * 10); + --btn-bg: var(--btn-color, var(--color-base-200)); + --btn-fg: var(--color-base-content); + --btn-p: 1rem; + --btn-border: var(--btn-bg); + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + flex-wrap: nowrap; + flex-shrink: 0; + justify-content: center; + align-items: center; + gap: 0.375rem; + font-weight: 600; + transition-property: color, background-color, border-color, box-shadow; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + display: inline-flex; + } + @supports (color: color-mix(in lab, red, red)) { + .btn { + --btn-border: color-mix( + in oklab, + var(--btn-bg), + #000 calc(var(--depth) * 5%) + ); + } + } + .btn { + --btn-shadow: 0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg); + } + @supports (color: color-mix(in lab, red, red)) { + .btn { + --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) + calc(var(--depth) * 30%), #0000), + 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) + calc(var(--depth) * 30%), #0000); + } + } + .btn { + --btn-noise: var(--fx-noise); + } + .prose .btn { + text-decoration-line: none; + } + @media (hover: hover) { + .btn:hover { + --btn-bg: var(--btn-color, var(--color-base-200)); + } + @supports (color: color-mix(in lab, red, red)) { + .btn:hover { + --btn-bg: color-mix( + in oklab, + var(--btn-color, var(--color-base-200)), + #000 7% + ); + } + } + } + .btn:focus-visible { + isolation: isolate; + outline-width: 2px; + outline-style: solid; + } + .btn:active:not(.btn-active) { + --btn-bg: var(--btn-color, var(--color-base-200)); + translate: 0 0.5px; + } + @supports (color: color-mix(in lab, red, red)) { + .btn:active:not(.btn-active) { + --btn-bg: color-mix( + in oklab, + var(--btn-color, var(--color-base-200)), + #000 5% + ); + } + } + .btn:active:not(.btn-active) { + --btn-border: var(--btn-color, var(--color-base-200)); + } + @supports (color: color-mix(in lab, red, red)) { + .btn:active:not(.btn-active) { + --btn-border: color-mix( + in oklab, + var(--btn-color, var(--color-base-200)), + #000 7% + ); + } + } + .btn:active:not(.btn-active) { + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0); + } + .btn:is(:disabled, [disabled], .btn-disabled):not(.btn-link, .btn-ghost) { + background-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .btn:is(:disabled, [disabled], .btn-disabled):not(.btn-link, .btn-ghost) { + background-color: color-mix( + in oklab, + var(--color-base-content) 10%, + transparent + ); + } + } + .btn:is(:disabled, [disabled], .btn-disabled):not(.btn-link, .btn-ghost) { + box-shadow: none; + } + .btn:is(:disabled, [disabled], .btn-disabled) { + pointer-events: none; + --btn-border: #0000; + --btn-noise: none; + --btn-fg: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .btn:is(:disabled, [disabled], .btn-disabled) { + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); + } + } + @media (hover: hover) { + .btn:is(:disabled, [disabled], .btn-disabled):hover { + pointer-events: none; + background-color: var(--color-neutral); + } + @supports (color: color-mix(in lab, red, red)) { + .btn:is(:disabled, [disabled], .btn-disabled):hover { + background-color: color-mix( + in oklab, + var(--color-neutral) 20%, + transparent + ); + } + } + .btn:is(:disabled, [disabled], .btn-disabled):hover { + --btn-border: #0000; + --btn-fg: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .btn:is(:disabled, [disabled], .btn-disabled):hover { + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); + } + } + } + .btn:is(input[type="checkbox"], input[type="radio"]) { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + } + .btn:is(input[type="checkbox"], input[type="radio"]):after { + content: attr(aria-label); + } + .btn:where(input:checked:not(.filter .btn)) { + --btn-color: var(--color-primary); + --btn-fg: var(--color-primary-content); + isolation: isolate; + } + .\!loading { + pointer-events: none !important; + aspect-ratio: 1 !important; + vertical-align: middle !important; + width: calc(var(--size-selector, 0.25rem) * 6) !important; + background-color: currentColor !important; + display: inline-block !important; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E") !important; + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E") !important; + -webkit-mask-position: 50% !important; + mask-position: 50% !important; + -webkit-mask-size: 100% !important; + mask-size: 100% !important; + -webkit-mask-repeat: no-repeat !important; + mask-repeat: no-repeat !important; + } + .loading { + pointer-events: none; + aspect-ratio: 1; + vertical-align: middle; + width: calc(var(--size-selector, 0.25rem) * 6); + background-color: currentColor; + display: inline-block; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); + -webkit-mask-position: 50%; + mask-position: 50%; + -webkit-mask-size: 100%; + mask-size: 100%; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + } + .pointer-events-none { + pointer-events: none; + } + .invisible { + visibility: hidden; + } + .visible { + visibility: visible; + } + .list { + flex-direction: column; + font-size: 0.875rem; + display: flex; + } + .list :where(.list-row) { + --list-grid-cols: minmax(0, auto) 1fr; + border-radius: var(--radius-box); + word-break: break-word; + grid-auto-flow: column; + grid-template-columns: var(--list-grid-cols); + gap: 1rem; + padding: 1rem; + display: grid; + position: relative; + } + .list :where(.list-row):has(.list-col-grow:first-child) { + --list-grid-cols: 1fr; + } + .list :where(.list-row):has(.list-col-grow:nth-child(2)) { + --list-grid-cols: minmax(0, auto) 1fr; + } + .list :where(.list-row):has(.list-col-grow:nth-child(3)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) 1fr; + } + .list :where(.list-row):has(.list-col-grow:nth-child(4)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; + } + .list :where(.list-row):has(.list-col-grow:nth-child(5)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) + minmax(0, auto) 1fr; + } + .list :where(.list-row):has(.list-col-grow:nth-child(6)) { + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) + minmax(0, auto) minmax(0, auto) 1fr; + } + .list :where(.list-row) :not(.list-col-wrap) { + grid-row-start: 1; + } + :is( + .list > :not(:last-child).list-row, + .list > :not(:last-child) .list-row + ):after { + content: ""; + border-bottom: var(--border) solid; + inset-inline: var(--radius-box); + border-color: var(--color-base-content); + position: absolute; + bottom: 0; + } + @supports (color: color-mix(in lab, red, red)) { + :is( + .list > :not(:last-child).list-row, + .list > :not(:last-child) .list-row + ):after { + border-color: color-mix( + in oklab, + var(--color-base-content) 5%, + transparent + ); + } + } + .toast { + translate: var(--toast-x, 0) var(--toast-y, 0); + inset-inline: auto 1rem; + background-color: #0000; + flex-direction: column; + gap: 0.5rem; + width: max-content; + max-width: calc(100vw - 2rem); + display: flex; + position: fixed; + top: auto; + bottom: 1rem; + } + .toast > * { + animation: 0.25s ease-out toast; + } + .toast:where(.toast-start) { + --toast-x: 0; + inset-inline: 1rem auto; + } + .toast:where(.toast-center) { + --toast-x: -50%; + inset-inline: 50%; + } + .toast:where(.toast-end) { + --toast-x: 0; + inset-inline: auto 1rem; + } + .toast:where(.toast-bottom) { + --toast-y: 0; + top: auto; + bottom: 1rem; + } + .toast:where(.toast-middle) { + --toast-y: -50%; + top: 50%; + bottom: auto; + } + .toast:where(.toast-top) { + --toast-y: 0; + top: 1rem; + bottom: auto; + } + .input { + cursor: text; + border: var(--border) solid #0000; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--color-base-100); + vertical-align: middle; + white-space: nowrap; + width: clamp(3rem, 20rem, 100%); + height: var(--size); + touch-action: manipulation; + border-color: var(--input-color); + box-shadow: 0 1px var(--input-color) inset, + 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + flex-shrink: 1; + align-items: center; + gap: 0.5rem; + padding-inline: 0.75rem; + font-size: 0.875rem; + display: inline-flex; + position: relative; + } + @supports (color: color-mix(in lab, red, red)) { + .input { + box-shadow: 0 1px + color-mix( + in oklab, + var(--input-color) calc(var(--depth) * 10%), + #0000 + ) + inset, + 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + } + .input { + --size: calc(var(--size-field, 0.25rem) * 10); + --input-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .input { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + } + .input:where(input) { + display: inline-flex; + } + .input :where(input) { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #0000; + border: none; + width: 100%; + height: 100%; + display: inline-flex; + } + .input :where(input):focus, + .input :where(input):focus-within { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .input :where(input):focus, + .input :where(input):focus-within { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .input :where(input[type="url"]), + .input :where(input[type="email"]) { + direction: ltr; + } + .input :where(input[type="date"]) { + display: inline-block; + } + .input:focus, + .input:focus-within { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + } + @supports (color: color-mix(in lab, red, red)) { + .input:focus, + .input:focus-within { + box-shadow: 0 1px + color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); + } + } + .input:focus, + .input:focus-within { + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + z-index: 1; + } + .input:has(> input[disabled]), + .input:is(:disabled, [disabled]) { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .input:has(> input[disabled]), + .input:is(:disabled, [disabled]) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + } + :is( + .input:has(> input[disabled]), + .input:is(:disabled, [disabled]) + )::placeholder { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :is( + .input:has(> input[disabled]), + .input:is(:disabled, [disabled]) + )::placeholder { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + .input:has(> input[disabled]), + .input:is(:disabled, [disabled]) { + box-shadow: none; + } + .input:has(> input[disabled]) > input[disabled] { + cursor: not-allowed; + } + .input::-webkit-date-and-time-value { + text-align: inherit; + } + .input[type="number"]::-webkit-inner-spin-button { + margin-block: -0.75rem; + margin-inline-end: -0.75rem; + } + .input::-webkit-calendar-picker-indicator { + position: absolute; + inset-inline-end: 0.75em; + } + .indicator { + width: max-content; + display: inline-flex; + position: relative; + } + .indicator :where(.indicator-item) { + z-index: 1; + white-space: nowrap; + top: var(--indicator-t, 0); + bottom: var(--indicator-b, auto); + left: var(--indicator-s, auto); + right: var(--indicator-e, 0); + translate: var(--indicator-x, 50%) var(--indicator-y, -50%); + position: absolute; + } + .table { + border-radius: var(--radius-box); + text-align: left; + width: 100%; + font-size: 0.875rem; + position: relative; + } + .table:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { + text-align: right; + } + @media (hover: hover) { + :is(.table tr.row-hover, .table tr.row-hover:nth-child(2n)):hover { + background-color: var(--color-base-200); + } + } + .table :where(th, td) { + vertical-align: middle; + padding-block: 0.75rem; + padding-inline: 1rem; + } + .table :where(thead, tfoot) { + white-space: nowrap; + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .table :where(thead, tfoot) { + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); + } + } + .table :where(thead, tfoot) { + font-size: 0.875rem; + font-weight: 600; + } + .table :where(tfoot) { + border-top: var(--border) solid var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .table :where(tfoot) { + border-top: var(--border) solid + color-mix(in oklch, var(--color-base-content) 5%, #0000); + } + } + .table :where(.table-pin-rows thead tr) { + z-index: 1; + background-color: var(--color-base-100); + position: sticky; + top: 0; + } + .table :where(.table-pin-rows tfoot tr) { + z-index: 1; + background-color: var(--color-base-100); + position: sticky; + bottom: 0; + } + .table :where(.table-pin-cols tr th) { + background-color: var(--color-base-100); + position: sticky; + left: 0; + right: 0; + } + .table :where(thead tr, tbody tr:not(:last-child)) { + border-bottom: var(--border) solid var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .table :where(thead tr, tbody tr:not(:last-child)) { + border-bottom: var(--border) solid + color-mix(in oklch, var(--color-base-content) 5%, #0000); + } + } + .tabs-border .tab { + --tab-border-color: #0000 #0000 var(--tab-border-color) #0000; + border-radius: var(--radius-field); + position: relative; + } + .tabs-border .tab:before { + --tw-content: ""; + content: var(--tw-content); + background-color: var(--tab-border-color); + border-radius: var(--radius-field); + width: 80%; + height: 3px; + transition: background-color 0.2s; + position: absolute; + bottom: 0; + left: 10%; + } + :is( + .tabs-border + .tab:is(.tab-active, [aria-selected="true"]):not( + .tab-disabled, + [disabled] + ), + .tabs-border .tab:is(input:checked), + .tabs-border .tab:is(label:has(:checked)) + ):before { + --tab-border-color: currentColor; + border-top: 3px solid; + } + .select { + border: var(--border) solid #0000; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--color-base-100); + vertical-align: middle; + width: clamp(3rem, 20rem, 100%); + height: var(--size); + touch-action: manipulation; + text-overflow: ellipsis; + box-shadow: 0 1px var(--input-color) inset, + 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + background-image: linear-gradient(45deg, #0000 50%, currentColor 50%), + linear-gradient(135deg, currentColor 50%, #0000 50%); + background-position: calc(100% - 20px) calc(1px + 50%), + calc(100% - 16.1px) calc(1px + 50%); + background-repeat: no-repeat; + background-size: 4px 4px, 4px 4px; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + flex-shrink: 1; + align-items: center; + gap: 0.375rem; + padding-inline: 1rem 1.75rem; + font-size: 0.875rem; + display: inline-flex; + position: relative; + } + @supports (color: color-mix(in lab, red, red)) { + .select { + box-shadow: 0 1px + color-mix( + in oklab, + var(--input-color) calc(var(--depth) * 10%), + #0000 + ) + inset, + 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + } + .select { + border-color: var(--input-color); + --input-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .select { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + } + .select { + --size: calc(var(--size-field, 0.25rem) * 10); + } + [dir="rtl"] .select { + background-position: 12px calc(1px + 50%), 16px calc(1px + 50%); + } + .select select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: inherit; + border-radius: inherit; + border-style: none; + width: calc(100% + 2.75rem); + height: calc(100% - 2px); + margin-inline: -1rem -1.75rem; + padding-inline: 1rem 1.75rem; + } + .select select:focus, + .select select:focus-within { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .select select:focus, + .select select:focus-within { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .select select:not(:last-child) { + background-image: none; + margin-inline-end: -1.375rem; + } + .select:focus, + .select:focus-within { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + } + @supports (color: color-mix(in lab, red, red)) { + .select:focus, + .select:focus-within { + box-shadow: 0 1px + color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); + } + } + .select:focus, + .select:focus-within { + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + z-index: 1; + } + .select:has(> select[disabled]), + .select:is(:disabled, [disabled]) { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .select:has(> select[disabled]), + .select:is(:disabled, [disabled]) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + } + :is( + .select:has(> select[disabled]), + .select:is(:disabled, [disabled]) + )::placeholder { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :is( + .select:has(> select[disabled]), + .select:is(:disabled, [disabled]) + )::placeholder { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + .select:has(> select[disabled]) > select[disabled] { + cursor: not-allowed; + } + .card { + border-radius: var(--radius-box); + outline-offset: 2px; + outline: 0 solid #0000; + flex-direction: column; + transition: outline 0.2s ease-in-out; + display: flex; + position: relative; + } + .card:focus { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .card:focus { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .card:focus-visible { + outline-color: currentColor; + } + .card :where(figure:first-child) { + border-start-start-radius: inherit; + border-start-end-radius: inherit; + border-end-end-radius: unset; + border-end-start-radius: unset; + overflow: hidden; + } + .card :where(figure:last-child) { + border-start-start-radius: unset; + border-start-end-radius: unset; + border-end-end-radius: inherit; + border-end-start-radius: inherit; + overflow: hidden; + } + .card:where(.card-border) { + border: var(--border) solid var(--color-base-200); + } + .card:where(.card-dash) { + border: var(--border) dashed var(--color-base-200); + } + .card.image-full { + display: grid; + } + .card.image-full > * { + grid-row-start: 1; + grid-column-start: 1; + } + .card.image-full > .card-body { + color: var(--color-neutral-content); + position: relative; + } + .card.image-full :where(figure) { + border-radius: inherit; + overflow: hidden; + } + .card.image-full > figure img { + object-fit: cover; + filter: brightness(28%); + height: 100%; + } + .card figure { + justify-content: center; + align-items: center; + display: flex; + } + .card:has(> input:is(input[type="checkbox"], input[type="radio"])) { + cursor: pointer; + -webkit-user-select: none; + user-select: none; + } + .card:has(> :checked) { + outline: 2px solid; + } + .sr-only { + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + position: absolute; + overflow: hidden; + } + .avatar { + vertical-align: middle; + display: inline-flex; + position: relative; + } + .avatar > div { + aspect-ratio: 1; + display: block; + overflow: hidden; + } + .avatar img { + object-fit: cover; + width: 100%; + height: 100%; + } + .checkbox { + border: var(--border) solid var(--input-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .checkbox { + border: var(--border) solid + var( + --input-color, + color-mix(in oklab, var(--color-base-content) 20%, #0000) + ); + } + } + .checkbox { + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: var(--radius-selector); + vertical-align: middle; + color: var(--color-base-content); + box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, + 0 0 #0000 inset, 0 0 #0000; + --size: calc(var(--size-selector, 0.25rem) * 6); + width: var(--size); + height: var(--size); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + flex-shrink: 0; + padding: 0.25rem; + transition: background-color 0.2s, box-shadow 0.2s; + display: inline-block; + position: relative; + } + .checkbox:before { + --tw-content: ""; + content: var(--tw-content); + opacity: 0; + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 70% 80%, 70% 100%); + width: 100%; + height: 100%; + box-shadow: 0 3px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + background-color: currentColor; + font-size: 1rem; + line-height: 0.75; + transition: clip-path 0.3s 0.1s, opacity 0.1s 0.1s, rotate 0.3s 0.1s, + translate 0.3s 0.1s; + display: block; + rotate: 45deg; + } + .checkbox:focus-visible { + outline: 2px solid var(--input-color, currentColor); + outline-offset: 2px; + } + .checkbox:checked, + .checkbox[aria-checked="true"] { + background-color: var(--input-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .checkbox:checked, + .checkbox[aria-checked="true"] { + background-color: var( + --input-color, + color-mix(in oklab, var(--color-base-content) 20%, #0000) + ); + } + } + .checkbox:checked, + .checkbox[aria-checked="true"] { + box-shadow: 0 0 #0000 inset, + 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, + 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)); + } + :is(.checkbox:checked, .checkbox[aria-checked="true"]):before { + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0%, 70% 0%, 70% 100%); + opacity: 1; + } + @media (forced-colors: active) { + :is(.checkbox:checked, .checkbox[aria-checked="true"]):before { + --tw-content: "✔︎"; + clip-path: none; + background-color: #0000; + rotate: none; + } + } + @media print { + :is(.checkbox:checked, .checkbox[aria-checked="true"]):before { + --tw-content: "✔︎"; + clip-path: none; + background-color: #0000; + rotate: none; + } + } + .checkbox:indeterminate { + background-color: var(--input-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .checkbox:indeterminate { + background-color: var( + --input-color, + color-mix(in oklab, var(--color-base-content) 20%, #0000) + ); + } + } + .checkbox:indeterminate:before { + opacity: 1; + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 80% 80%, 80% 100%); + translate: 0 -35%; + rotate: none; + } + .checkbox:disabled { + cursor: not-allowed; + opacity: 0.2; + } + .radio { + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + vertical-align: middle; + border: var(--border) solid var(--input-color, currentColor); + border-radius: 3.40282e38px; + flex-shrink: 0; + padding: 0.25rem; + display: inline-block; + position: relative; + } + @supports (color: color-mix(in lab, red, red)) { + .radio { + border: var(--border) solid + var(--input-color, color-mix(in srgb, currentColor 20%, #0000)); + } + } + .radio { + box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset; + --size: calc(var(--size-selector, 0.25rem) * 6); + width: var(--size); + height: var(--size); + color: var(--input-color, currentColor); + } + .radio:before { + --tw-content: ""; + content: var(--tw-content); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + border-radius: 3.40282e38px; + width: 100%; + height: 100%; + display: block; + } + .radio:focus-visible { + outline: 2px solid; + } + .radio:checked, + .radio[aria-checked="true"] { + background-color: var(--color-base-100); + border-color: currentColor; + animation: 0.2s ease-out radio; + } + :is(.radio:checked, .radio[aria-checked="true"]):before { + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, + 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, + 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)); + background-color: currentColor; + } + @media (forced-colors: active) { + :is(.radio:checked, .radio[aria-checked="true"]):before { + outline-style: var(--tw-outline-style); + outline-offset: -1px; + outline-width: 1px; + } + } + @media print { + :is(.radio:checked, .radio[aria-checked="true"]):before { + outline-offset: -1rem; + outline: 0.25rem solid; + } + } + .radio:disabled { + cursor: not-allowed; + opacity: 0.2; + } + .rating { + vertical-align: middle; + display: inline-flex; + position: relative; + } + .rating input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + } + .rating :where(*) { + background-color: var(--color-base-content); + opacity: 0.2; + border-radius: 0; + width: 1.5rem; + height: 1.5rem; + animation: 0.25s ease-out rating; + } + .rating :where(*):is(input) { + cursor: pointer; + } + .rating .rating-hidden { + background-color: #0000; + width: 0.5rem; + } + .rating input[type="radio"]:checked { + background-image: none; + } + .rating :checked, + .rating [aria-checked="true"], + .rating [aria-current="true"], + .rating :has(~ :checked, ~ [aria-checked="true"], ~ [aria-current="true"]) { + opacity: 1; + } + .rating :focus-visible { + transition: scale 0.2s ease-out; + scale: 1.1; + } + .rating :active:focus { + animation: none; + scale: 1.1; + } + .rating.rating-xs :where(:not(.rating-hidden)) { + width: 1rem; + height: 1rem; + } + .rating.rating-sm :where(:not(.rating-hidden)) { + width: 1.25rem; + height: 1.25rem; + } + .rating.rating-md :where(:not(.rating-hidden)) { + width: 1.5rem; + height: 1.5rem; + } + .rating.rating-lg :where(:not(.rating-hidden)) { + width: 1.75rem; + height: 1.75rem; + } + .rating.rating-xl :where(:not(.rating-hidden)) { + width: 2rem; + height: 2rem; + } + .stats { + border-radius: var(--radius-box); + grid-auto-flow: column; + display: inline-grid; + position: relative; + overflow-x: auto; + } + .absolute { + position: absolute; + } + .fixed { + position: fixed; + } + .relative { + position: relative; + } + .static { + position: static; + } + .sticky { + position: sticky; + } + .tooltip-bottom > .tooltip-content, + .tooltip-bottom[data-tip]:before { + transform: translate(-50%) translateY(var(--tt-pos, -0.25rem)); + inset: var(--tt-off) auto auto 50%; + } + .tooltip-bottom:after { + transform: translate(-50%) translateY(var(--tt-pos, -0.25rem)) + rotate(180deg); + inset: var(--tt-tail) auto auto 50%; + } + .tooltip-right > .tooltip-content, + .tooltip-right[data-tip]:before { + transform: translate(calc(var(--tt-pos, -0.25rem) + 0.25rem)) + translateY(-50%); + inset: 50% auto auto var(--tt-off); + } + .tooltip-right:after { + transform: translate(var(--tt-pos, -0.25rem)) translateY(-50%) rotate(90deg); + inset: 50% auto auto calc(var(--tt-tail) + 1px); + } + .inset-0 { + inset: calc(var(--spacing) * 0); + } + .dropdown-center { + --anchor-h: center; + } + .dropdown-center :where(.dropdown-content) { + inset-inline-end: 50%; + translate: 50%; + } + [dir="rtl"] :is(.dropdown-center :where(.dropdown-content)) { + translate: -50%; + } + .dropdown-center.dropdown-left { + --anchor-h: left; + --anchor-v: center; + } + .dropdown-center.dropdown-left .dropdown-content { + top: auto; + bottom: 50%; + translate: 0 50%; + } + .dropdown-center.dropdown-right { + --anchor-h: right; + --anchor-v: center; + } + .dropdown-center.dropdown-right .dropdown-content { + top: auto; + bottom: 50%; + translate: 0 50%; + } + .dropdown-end { + --anchor-h: span-left; + } + .dropdown-end :where(.dropdown-content) { + inset-inline-end: 0; + translate: 0; + } + [dir="rtl"] :is(.dropdown-end :where(.dropdown-content)) { + translate: 0; + } + .dropdown-end.dropdown-left { + --anchor-h: left; + --anchor-v: span-top; + } + .dropdown-end.dropdown-left .dropdown-content { + top: auto; + bottom: 0; + } + .dropdown-end.dropdown-right { + --anchor-h: right; + --anchor-v: span-top; + } + .dropdown-end.dropdown-right .dropdown-content { + top: auto; + bottom: 0; + } + .dropdown-top { + --anchor-v: top; + } + .dropdown-top .dropdown-content { + transform-origin: bottom; + top: auto; + bottom: 100%; + } + .center-absolute { + --tw-translate-x: -50%; + --tw-translate-y: -50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + top: 50%; + left: 50%; + } + .\!top-15 { + top: calc(var(--spacing) * 15) !important; + } + .-top-4 { + top: calc(var(--spacing) * -4); + } + .-top-15 { + top: calc(var(--spacing) * -15); + } + .top-0 { + top: calc(var(--spacing) * 0); + } + .top-1\/2 { + top: 50%; + } + .top-2 { + top: calc(var(--spacing) * 2); + } + .top-4 { + top: calc(var(--spacing) * 4); + } + .top-8 { + top: calc(var(--spacing) * 8); + } + .top-10 { + top: calc(var(--spacing) * 10); + } + .top-\[50\%\] { + top: 50%; + } + .-right-1 { + right: calc(var(--spacing) * -1); + } + .-right-2 { + right: calc(var(--spacing) * -2); + } + .-right-4 { + right: calc(var(--spacing) * -4); + } + .right-0 { + right: calc(var(--spacing) * 0); + } + .right-1 { + right: calc(var(--spacing) * 1); + } + .right-2 { + right: calc(var(--spacing) * 2); + } + .right-3 { + right: calc(var(--spacing) * 3); + } + .right-4 { + right: calc(var(--spacing) * 4); + } + .right-5 { + right: calc(var(--spacing) * 5); + } + .-bottom-1 { + bottom: calc(var(--spacing) * -1); + } + .-bottom-4\.5 { + bottom: calc(var(--spacing) * -4.5); + } + .bottom-0 { + bottom: calc(var(--spacing) * 0); + } + .bottom-1 { + bottom: calc(var(--spacing) * 1); + } + .bottom-3 { + bottom: calc(var(--spacing) * 3); + } + .bottom-5 { + bottom: calc(var(--spacing) * 5); + } + .-left-1 { + left: calc(var(--spacing) * -1); + } + .-left-2 { + left: calc(var(--spacing) * -2); + } + .left-0 { + left: calc(var(--spacing) * 0); + } + .left-1\/2 { + left: 50%; + } + .left-2 { + left: calc(var(--spacing) * 2); + } + .left-3 { + left: calc(var(--spacing) * 3); + } + .left-\[50\%\] { + left: 50%; + } + .left-full { + left: 100%; + } + .textarea { + border: var(--border) solid #0000; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: var(--radius-field); + background-color: var(--color-base-100); + vertical-align: middle; + touch-action: manipulation; + border-color: var(--input-color); + width: clamp(3rem, 20rem, 100%); + min-height: 5rem; + box-shadow: 0 1px var(--input-color) inset, + 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + flex-shrink: 1; + padding-block: 0.5rem; + padding-inline: 0.75rem; + font-size: 0.875rem; + } + @supports (color: color-mix(in lab, red, red)) { + .textarea { + box-shadow: 0 1px + color-mix( + in oklab, + var(--input-color) calc(var(--depth) * 10%), + #0000 + ) + inset, + 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + } + .textarea { + --input-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .textarea { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + } + .textarea textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #0000; + border: none; + } + .textarea textarea:focus, + .textarea textarea:focus-within { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .textarea textarea:focus, + .textarea textarea:focus-within { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .textarea:focus, + .textarea:focus-within { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + } + @supports (color: color-mix(in lab, red, red)) { + .textarea:focus, + .textarea:focus-within { + box-shadow: 0 1px + color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); + } + } + .textarea:focus, + .textarea:focus-within { + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + } + .textarea:has(> textarea[disabled]), + .textarea:is(:disabled, [disabled]) { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .textarea:has(> textarea[disabled]), + .textarea:is(:disabled, [disabled]) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + } + :is( + .textarea:has(> textarea[disabled]), + .textarea:is(:disabled, [disabled]) + )::placeholder { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :is( + .textarea:has(> textarea[disabled]), + .textarea:is(:disabled, [disabled]) + )::placeholder { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + .textarea:has(> textarea[disabled]), + .textarea:is(:disabled, [disabled]) { + box-shadow: none; + } + .textarea:has(> textarea[disabled]) > textarea[disabled] { + cursor: not-allowed; + } + .isolate { + isolation: isolate; + } + .modal-backdrop { + color: #0000; + z-index: -1; + grid-row-start: 1; + grid-column-start: 1; + place-self: stretch stretch; + display: grid; + } + .modal-backdrop button { + cursor: pointer; + } + .z-1 { + z-index: 1; + } + .z-10 { + z-index: 10; + } + .z-20 { + z-index: 20; + } + .z-30 { + z-index: 30; + } + .z-50 { + z-index: 50; + } + .z-100 { + z-index: 100; + } + .tab-content { + order: var(--tabcontent-order); + --tabcontent-radius-ss: 0; + --tabcontent-radius-se: 0; + --tabcontent-radius-es: 0; + --tabcontent-radius-ee: 0; + --tabcontent-order: 1; + width: 100%; + margin: var(--tabcontent-margin); + border-color: #0000; + border-width: var(--border); + border-start-start-radius: var(--tabcontent-radius-ss); + border-start-end-radius: var(--tabcontent-radius-se); + border-end-end-radius: var(--tabcontent-radius-ee); + border-end-start-radius: var(--tabcontent-radius-es); + display: none; + } + .modal-box { + background-color: var(--color-base-100); + border-top-left-radius: var(--modal-tl, var(--radius-box)); + border-top-right-radius: var(--modal-tr, var(--radius-box)); + border-bottom-left-radius: var(--modal-bl, var(--radius-box)); + border-bottom-right-radius: var(--modal-br, var(--radius-box)); + opacity: 0; + overscroll-behavior: contain; + grid-row-start: 1; + grid-column-start: 1; + width: 91.6667%; + max-width: 32rem; + max-height: 100vh; + padding: 1.5rem; + transition: translate 0.3s ease-out, scale 0.3s ease-out, + opacity 0.2s ease-out 50ms, box-shadow 0.3s ease-out; + overflow-y: auto; + scale: 95%; + box-shadow: 0 25px 50px -12px #00000040; + } + .container { + width: 100%; + } + @media (min-width: 40rem) { + .container { + max-width: 40rem; + } + } + @media (min-width: 48rem) { + .container { + max-width: 48rem; + } + } + @media (min-width: 64rem) { + .container { + max-width: 64rem; + } + } + @media (min-width: 80rem) { + .container { + max-width: 80rem; + } + } + @media (min-width: 96rem) { + .container { + max-width: 96rem; + } + } + .divider { + white-space: nowrap; + height: 1rem; + margin: var(--divider-m, 1rem 0); + --divider-color: var(--color-base-content); + flex-direction: row; + align-self: stretch; + align-items: center; + display: flex; + } + @supports (color: color-mix(in lab, red, red)) { + .divider { + --divider-color: color-mix( + in oklab, + var(--color-base-content) 10%, + transparent + ); + } + } + .divider:before, + .divider:after { + content: ""; + background-color: var(--divider-color); + flex-grow: 1; + width: 100%; + height: 0.125rem; + } + @media print { + .divider:before, + .divider:after { + border: 0.5px solid; + } + } + .divider:not(:empty) { + gap: 1rem; + } + .number-input[type="number"]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + .number-input[type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; + } + .number-input[type="number"] { + -moz-appearance: textfield; + } + .m-1 { + margin: calc(var(--spacing) * 1); + } + .-mx-1 { + margin-inline: calc(var(--spacing) * -1); + } + .mx-0\.5 { + margin-inline: calc(var(--spacing) * 0.5); + } + .mx-auto { + margin-inline: auto; + } + .input-sm { + --size: calc(var(--size-field, 0.25rem) * 8); + font-size: 0.75rem; + } + .input-sm[type="number"]::-webkit-inner-spin-button { + margin-block: -0.5rem; + margin-inline-end: -0.75rem; + } + .input-xs { + --size: calc(var(--size-field, 0.25rem) * 6); + font-size: 0.6875rem; + } + .input-xs[type="number"]::-webkit-inner-spin-button { + margin-block: -0.25rem; + margin-inline-end: -0.75rem; + } + .my-2 { + margin-block: calc(var(--spacing) * 2); + } + .my-3 { + margin-block: calc(var(--spacing) * 3); + } + .my-4 { + margin-block: calc(var(--spacing) * 4); + } + .my-6 { + margin-block: calc(var(--spacing) * 6); + } + .label { + white-space: nowrap; + color: currentColor; + align-items: center; + gap: 0.375rem; + display: inline-flex; + } + @supports (color: color-mix(in lab, red, red)) { + .label { + color: color-mix(in oklab, currentColor 60%, transparent); + } + } + .label:has(input) { + cursor: pointer; + } + .label:is(.input > *, .select > *) { + white-space: nowrap; + height: calc(100% - 0.5rem); + font-size: inherit; + align-items: center; + padding-inline: 0.75rem; + display: flex; + } + .label:is(.input > *, .select > *):first-child { + border-inline-end: var(--border) solid currentColor; + margin-inline: -0.75rem 0.75rem; + } + @supports (color: color-mix(in lab, red, red)) { + .label:is(.input > *, .select > *):first-child { + border-inline-end: var(--border) solid + color-mix(in oklab, currentColor 10%, #0000); + } + } + .label:is(.input > *, .select > *):last-child { + border-inline-start: var(--border) solid currentColor; + margin-inline: 0.75rem -0.75rem; + } + @supports (color: color-mix(in lab, red, red)) { + .label:is(.input > *, .select > *):last-child { + border-inline-start: var(--border) solid + color-mix(in oklab, currentColor 10%, #0000); + } + } + .join-horizontal { + flex-direction: row; + } + .join-horizontal > .join-item:first-child, + .join-horizontal :first-child:not(:last-child) .join-item { + --join-ss: var(--radius-field); + --join-se: 0; + --join-es: var(--radius-field); + --join-ee: 0; + } + .join-horizontal > .join-item:last-child, + .join-horizontal :last-child:not(:first-child) .join-item { + --join-ss: 0; + --join-se: var(--radius-field); + --join-es: 0; + --join-ee: var(--radius-field); + } + .join-horizontal > .join-item:only-child, + .join-horizontal :only-child .join-item { + --join-ss: var(--radius-field); + --join-se: var(--radius-field); + --join-es: var(--radius-field); + --join-ee: var(--radius-field); + } + .join-horizontal .join-item:where(:not(:first-child)), + .join-item:where(:not(:first-child, :disabled, [disabled], .btn-disabled)) { + margin-block-start: 0; + margin-inline-start: calc(var(--border, 1px) * -1); + } + .join-item:where(:is(:disabled, [disabled], .btn-disabled)) { + border-width: var(--border, 1px) 0 var(--border, 1px) var(--border, 1px); + } + .prose { + color: var(--tw-prose-body); + max-width: 65ch; + } + .prose :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; + } + .prose + :where([class~="lead"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: var(--tw-prose-lead); + margin-top: 1.2em; + margin-bottom: 1.2em; + font-size: 1.25em; + line-height: 1.6; + } + .prose :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-links); + font-weight: 500; + text-decoration: underline; + } + .prose + :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-bold); + font-weight: 600; + } + .prose + :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), + .prose + :where(blockquote strong):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ), + .prose + :where(thead th strong):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: inherit; + } + .prose :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-inline-start: 1.625em; + list-style-type: decimal; + } + .prose + :where(ol[type="A"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: upper-alpha; + } + .prose + :where(ol[type="a"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: lower-alpha; + } + .prose + :where(ol[type="A s"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: upper-alpha; + } + .prose + :where(ol[type="a s"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: lower-alpha; + } + .prose + :where(ol[type="I"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: upper-roman; + } + .prose + :where(ol[type="i"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: lower-roman; + } + .prose + :where(ol[type="I s"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: upper-roman; + } + .prose + :where(ol[type="i s"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: lower-roman; + } + .prose + :where(ol[type="1"]):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + list-style-type: decimal; + } + .prose :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-inline-start: 1.625em; + list-style-type: disc; + } + .prose + :where(ol > li):not( + :where([class~="not-prose"], [class~="not-prose"] *) + )::marker { + color: var(--tw-prose-counters); + font-weight: 400; + } + .prose + :where(ul > li):not( + :where([class~="not-prose"], [class~="not-prose"] *) + )::marker { + color: var(--tw-prose-bullets); + } + .prose :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + margin-top: 1.25em; + font-weight: 600; + } + .prose :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-color: var(--tw-prose-hr); + border-top-width: 1px; + margin-top: 3em; + margin-bottom: 3em; + } + .prose + :where(blockquote):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: var(--tw-prose-quotes); + border-inline-start-width: 0.25rem; + border-inline-start-color: var(--tw-prose-quote-borders); + quotes: "“" "”" "‘" "’"; + margin-top: 1.6em; + margin-bottom: 1.6em; + padding-inline-start: 1em; + font-style: italic; + font-weight: 500; + } + .prose + :where(blockquote p:first-of-type):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ):before { + content: open-quote; + } + .prose + :where(blockquote p:last-of-type):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ):after { + content: close-quote; + } + .prose :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + margin-top: 0; + margin-bottom: 0.888889em; + font-size: 2.25em; + font-weight: 800; + line-height: 1.11111; + } + .prose + :where(h1 strong):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: inherit; + font-weight: 900; + } + .prose :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + margin-top: 2em; + margin-bottom: 1em; + font-size: 1.5em; + font-weight: 700; + line-height: 1.33333; + } + .prose + :where(h2 strong):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: inherit; + font-weight: 800; + } + .prose :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + margin-top: 1.6em; + margin-bottom: 0.6em; + font-size: 1.25em; + font-weight: 600; + line-height: 1.6; + } + .prose + :where(h3 strong):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: inherit; + font-weight: 700; + } + .prose :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + margin-top: 1.5em; + margin-bottom: 0.5em; + font-weight: 600; + line-height: 1.5; + } + .prose + :where(h4 strong):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: inherit; + font-weight: 700; + } + .prose :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; + } + .prose + :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; + display: block; + } + .prose + :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; + } + .prose :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-kbd); + box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), + 0 3px rgb(var(--tw-prose-kbd-shadows) / 10%); + padding-top: 0.1875em; + padding-inline-end: 0.375em; + padding-bottom: 0.1875em; + border-radius: 0.3125rem; + padding-inline-start: 0.375em; + font-family: inherit; + font-size: 0.875em; + font-weight: 500; + } + .prose + :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-code); + font-size: 0.875em; + font-weight: 600; + } + .prose + :where(code):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ):before, + .prose + :where(code):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ):after { + content: "`"; + } + .prose + :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)), + .prose + :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + .prose + :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + font-size: 0.875em; + } + .prose + :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + font-size: 0.9em; + } + .prose + :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)), + .prose + :where(blockquote code):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ), + .prose + :where(thead th code):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: inherit; + } + .prose :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-pre-code); + background-color: var(--tw-prose-pre-bg); + padding-top: 0.857143em; + padding-inline-end: 1.14286em; + padding-bottom: 0.857143em; + border-radius: 0.375rem; + margin-top: 1.71429em; + margin-bottom: 1.71429em; + padding-inline-start: 1.14286em; + font-size: 0.875em; + font-weight: 400; + line-height: 1.71429; + overflow-x: auto; + } + .prose + :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + font-weight: inherit; + color: inherit; + font-size: inherit; + font-family: inherit; + line-height: inherit; + background-color: #0000; + border-width: 0; + border-radius: 0; + padding: 0; + } + .prose + :where(pre code):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ):before, + .prose + :where(pre code):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ):after { + content: none; + } + .prose + :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + table-layout: auto; + width: 100%; + margin-top: 2em; + margin-bottom: 2em; + font-size: 0.875em; + line-height: 1.71429; + } + .prose + :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-th-borders); + } + .prose + :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + vertical-align: bottom; + padding-inline-end: 0.571429em; + padding-bottom: 0.571429em; + padding-inline-start: 0.571429em; + font-weight: 600; + } + .prose + :where(tbody tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-td-borders); + } + .prose + :where(tbody tr:last-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + border-bottom-width: 0; + } + .prose + :where(tbody td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + vertical-align: baseline; + } + .prose + :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-top-width: 1px; + border-top-color: var(--tw-prose-th-borders); + } + .prose + :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + vertical-align: top; + } + .prose + :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + text-align: start; + } + .prose + :where(figure > *):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-top: 0; + margin-bottom: 0; + } + .prose + :where(figcaption):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + color: var(--tw-prose-captions); + margin-top: 0.857143em; + font-size: 0.875em; + line-height: 1.42857; + } + .prose { + --tw-prose-body: oklch(37.3% 0.034 259.733); + --tw-prose-headings: oklch(21% 0.034 264.665); + --tw-prose-lead: oklch(44.6% 0.03 256.802); + --tw-prose-links: oklch(21% 0.034 264.665); + --tw-prose-bold: oklch(21% 0.034 264.665); + --tw-prose-counters: oklch(55.1% 0.027 264.364); + --tw-prose-bullets: oklch(87.2% 0.01 258.338); + --tw-prose-hr: oklch(92.8% 0.006 264.531); + --tw-prose-quotes: oklch(21% 0.034 264.665); + --tw-prose-quote-borders: oklch(92.8% 0.006 264.531); + --tw-prose-captions: oklch(55.1% 0.027 264.364); + --tw-prose-kbd: oklch(21% 0.034 264.665); + --tw-prose-kbd-shadows: NaN NaN NaN; + --tw-prose-code: oklch(21% 0.034 264.665); + --tw-prose-pre-code: oklch(92.8% 0.006 264.531); + --tw-prose-pre-bg: oklch(27.8% 0.033 256.848); + --tw-prose-th-borders: oklch(87.2% 0.01 258.338); + --tw-prose-td-borders: oklch(92.8% 0.006 264.531); + --tw-prose-invert-body: oklch(87.2% 0.01 258.338); + --tw-prose-invert-headings: #fff; + --tw-prose-invert-lead: oklch(70.7% 0.022 261.325); + --tw-prose-invert-links: #fff; + --tw-prose-invert-bold: #fff; + --tw-prose-invert-counters: oklch(70.7% 0.022 261.325); + --tw-prose-invert-bullets: oklch(44.6% 0.03 256.802); + --tw-prose-invert-hr: oklch(37.3% 0.034 259.733); + --tw-prose-invert-quotes: oklch(96.7% 0.003 264.542); + --tw-prose-invert-quote-borders: oklch(37.3% 0.034 259.733); + --tw-prose-invert-captions: oklch(70.7% 0.022 261.325); + --tw-prose-invert-kbd: #fff; + --tw-prose-invert-kbd-shadows: 255 255 255; + --tw-prose-invert-code: #fff; + --tw-prose-invert-pre-code: oklch(87.2% 0.01 258.338); + --tw-prose-invert-pre-bg: #00000080; + --tw-prose-invert-th-borders: oklch(44.6% 0.03 256.802); + --tw-prose-invert-td-borders: oklch(37.3% 0.034 259.733); + font-size: 1rem; + line-height: 1.75; + } + .prose + :where(picture > img):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-top: 0; + margin-bottom: 0; + } + .prose :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + .prose + :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), + .prose + :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-inline-start: 0.375em; + } + .prose + :where(.prose > ul > li p):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + .prose + :where(.prose > ul > li > p:first-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-top: 1.25em; + } + .prose + :where(.prose > ul > li > p:last-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-bottom: 1.25em; + } + .prose + :where(.prose > ol > li > p:first-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-top: 1.25em; + } + .prose + :where(.prose > ol > li > p:last-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-bottom: 1.25em; + } + .prose + :where(ul ul, ul ol, ol ul, ol ol):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + .prose :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; + } + .prose :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0.5em; + padding-inline-start: 1.625em; + } + .prose + :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), + .prose + :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), + .prose + :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), + .prose + :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + } + .prose + :where(thead th:first-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + padding-inline-start: 0; + } + .prose + :where(thead th:last-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + padding-inline-end: 0; + } + .prose + :where(tbody td, tfoot td):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + padding-top: 0.571429em; + padding-inline-end: 0.571429em; + padding-bottom: 0.571429em; + padding-inline-start: 0.571429em; + } + .prose + :where(tbody td:first-child, tfoot td:first-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + padding-inline-start: 0; + } + .prose + :where(tbody td:last-child, tfoot td:last-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + padding-inline-end: 0; + } + .prose + :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; + } + .prose + :where(.prose > :first-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-top: 0; + } + .prose + :where(.prose > :last-child):not( + :where([class~="not-prose"], [class~="not-prose"] *) + ) { + margin-bottom: 0; + } + .modal-action { + justify-content: flex-end; + gap: 0.5rem; + margin-top: 1.5rem; + display: flex; + } + .mt-0\.5 { + margin-top: calc(var(--spacing) * 0.5); + } + .mt-1 { + margin-top: calc(var(--spacing) * 1); + } + .mt-2 { + margin-top: calc(var(--spacing) * 2); + } + .mt-3 { + margin-top: calc(var(--spacing) * 3); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-5 { + margin-top: calc(var(--spacing) * 5); + } + .mt-6 { + margin-top: calc(var(--spacing) * 6); + } + .mt-8 { + margin-top: calc(var(--spacing) * 8); + } + .mt-10 { + margin-top: calc(var(--spacing) * 10); + } + .mt-18 { + margin-top: calc(var(--spacing) * 18); + } + .mt-20 { + margin-top: calc(var(--spacing) * 20); + } + .mr-0\.5 { + margin-right: calc(var(--spacing) * 0.5); + } + .mr-1 { + margin-right: calc(var(--spacing) * 1); + } + .mr-2 { + margin-right: calc(var(--spacing) * 2); + } + .mr-4 { + margin-right: calc(var(--spacing) * 4); + } + .fieldset-legend { + color: var(--color-base-content); + justify-content: space-between; + align-items: center; + gap: 0.5rem; + margin-bottom: -0.25rem; + padding-block: 0.5rem; + font-weight: 600; + display: flex; + } + .mb-0\.5 { + margin-bottom: calc(var(--spacing) * 0.5); + } + .mb-1 { + margin-bottom: calc(var(--spacing) * 1); + } + .mb-2 { + margin-bottom: calc(var(--spacing) * 2); + } + .mb-3 { + margin-bottom: calc(var(--spacing) * 3); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .mb-6 { + margin-bottom: calc(var(--spacing) * 6); + } + .ml-0\.5 { + margin-left: calc(var(--spacing) * 0.5); + } + .ml-1 { + margin-left: calc(var(--spacing) * 1); + } + .ml-2 { + margin-left: calc(var(--spacing) * 2); + } + .ml-3 { + margin-left: calc(var(--spacing) * 3); + } + .ml-4 { + margin-left: calc(var(--spacing) * 4); + } + .ml-auto { + margin-left: auto; + } + .status { + aspect-ratio: 1; + border-radius: var(--radius-selector); + background-color: var(--color-base-content); + width: 0.5rem; + height: 0.5rem; + display: inline-block; + } + @supports (color: color-mix(in lab, red, red)) { + .status { + background-color: color-mix( + in oklab, + var(--color-base-content) 20%, + transparent + ); + } + } + .status { + vertical-align: middle; + color: #0000004d; + background-position: 50%; + background-repeat: no-repeat; + } + @supports (color: color-mix(in lab, red, red)) { + .status { + color: #0000004d; + } + @supports (color: color-mix(in lab, red, red)) { + .status { + color: color-mix(in oklab, var(--color-black) 30%, transparent); + } + } + } + .status { + background-image: radial-gradient( + circle at 35% 30%, + oklch(1 0 0 / calc(var(--depth) * 0.5)), + #0000 + ); + box-shadow: 0 2px 3px -1px; + } + @supports (color: color-mix(in lab, red, red)) { + .status { + box-shadow: 0 2px 3px -1px color-mix(in oklab, currentColor + calc(var(--depth) * 100%), #0000); + } + } + .badge { + border-radius: var(--radius-selector); + vertical-align: middle; + color: var(--badge-fg); + border: var(--border) solid var(--badge-color, var(--color-base-200)); + width: fit-content; + padding-inline: calc(0.25rem * 3 - var(--border)); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + background-color: var(--badge-bg); + --badge-bg: var(--badge-color, var(--color-base-100)); + --badge-fg: var(--color-base-content); + --size: calc(var(--size-selector, 0.25rem) * 6); + height: var(--size); + justify-content: center; + align-items: center; + gap: 0.5rem; + font-size: 0.875rem; + display: inline-flex; + } + .kbd { + border-radius: var(--radius-field); + background-color: var(--color-base-200); + vertical-align: middle; + border: var(--border) solid var(--color-base-content); + justify-content: center; + align-items: center; + padding-left: 0.5em; + padding-right: 0.5em; + display: inline-flex; + } + @supports (color: color-mix(in lab, red, red)) { + .kbd { + border: var(--border) solid + color-mix(in srgb, var(--color-base-content) 20%, #0000); + } + } + .kbd { + border-bottom: calc(var(--border) + 1px) solid var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .kbd { + border-bottom: calc(var(--border) + 1px) solid + color-mix(in srgb, var(--color-base-content) 20%, #0000); + } + } + .kbd { + --size: calc(var(--size-selector, 0.25rem) * 6); + height: var(--size); + min-width: var(--size); + font-size: 0.875rem; + } + .tabs { + --tabs-height: auto; + --tabs-direction: row; + --tab-height: calc(var(--size-field, 0.25rem) * 10); + height: var(--tabs-height); + flex-wrap: wrap; + flex-direction: var(--tabs-direction); + display: flex; + } + .card-body { + padding: var(--card-p, 1.5rem); + font-size: var(--card-fs, 0.875rem); + flex-direction: column; + flex: auto; + gap: 0.5rem; + display: flex; + } + .card-body :where(p) { + flex-grow: 1; + } + .alert { + border-radius: var(--radius-box); + color: var(--color-base-content); + background-color: var(--alert-color, var(--color-base-200)); + text-align: start; + border: var(--border) solid var(--color-base-200); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + box-shadow: 0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * 0.08)) inset, + 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * 0.08)); + grid-template-columns: auto; + grid-auto-flow: column; + justify-content: start; + place-items: center start; + gap: 1rem; + padding-block: 0.75rem; + padding-inline: 1rem; + font-size: 0.875rem; + line-height: 1.25rem; + display: grid; + } + @supports (color: color-mix(in lab, red, red)) { + .alert { + box-shadow: 0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * 0.08)) inset, + 0 1px + color-mix( + in oklab, + color-mix( + in oklab, + #000 20%, + var(--alert-color, var(--color-base-200)) + ) + calc(var(--depth) * 20%), + #0000 + ), + 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * 0.08)); + } + } + .alert:has(:nth-child(2)) { + grid-template-columns: auto minmax(auto, 1fr); + } + .alert.alert-outline { + color: var(--alert-color); + box-shadow: none; + background-color: #0000; + background-image: none; + } + .alert.alert-dash { + color: var(--alert-color); + box-shadow: none; + background-color: #0000; + background-image: none; + border-style: dashed; + } + .alert.alert-soft { + color: var(--alert-color, var(--color-base-content)); + background: var(--alert-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .alert.alert-soft { + background: color-mix( + in oklab, + var(--alert-color, var(--color-base-content)) 8%, + var(--color-base-100) + ); + } + } + .alert.alert-soft { + border-color: var(--alert-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .alert.alert-soft { + border-color: color-mix( + in oklab, + var(--alert-color, var(--color-base-content)) 10%, + var(--color-base-100) + ); + } + } + .alert.alert-soft { + box-shadow: none; + background-image: none; + } + .fieldset { + grid-template-columns: 1fr; + grid-auto-rows: max-content; + gap: 0.375rem; + padding-block: 0.25rem; + font-size: 0.75rem; + display: grid; + } + .join { + --join-ss: 0; + --join-se: 0; + --join-es: 0; + --join-ee: 0; + align-items: stretch; + display: inline-flex; + } + .join :where(.join-item) { + border-start-start-radius: var(--join-ss, 0); + border-start-end-radius: var(--join-se, 0); + border-end-end-radius: var(--join-ee, 0); + border-end-start-radius: var(--join-es, 0); + } + .join :where(.join-item) * { + --join-ss: var(--radius-field); + --join-se: var(--radius-field); + --join-es: var(--radius-field); + --join-ee: var(--radius-field); + } + .join > .join-item:where(:first-child), + .join :first-child:not(:last-child) :where(.join-item) { + --join-ss: var(--radius-field); + --join-se: 0; + --join-es: var(--radius-field); + --join-ee: 0; + } + .join > .join-item:where(:last-child), + .join :last-child:not(:first-child) :where(.join-item) { + --join-ss: 0; + --join-se: var(--radius-field); + --join-es: 0; + --join-ee: var(--radius-field); + } + .join > .join-item:where(:only-child), + .join :only-child :where(.join-item) { + --join-ss: var(--radius-field); + --join-se: var(--radius-field); + --join-es: var(--radius-field); + --join-ee: var(--radius-field); + } + .line-clamp-1 { + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + display: -webkit-box; + overflow: hidden; + } + :root .prose { + --tw-prose-body: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-body: color-mix( + in oklab, + var(--color-base-content) 80%, + #0000 + ); + } + } + :root .prose { + --tw-prose-headings: var(--color-base-content); + --tw-prose-lead: var(--color-base-content); + --tw-prose-links: var(--color-base-content); + --tw-prose-bold: var(--color-base-content); + --tw-prose-counters: var(--color-base-content); + --tw-prose-bullets: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-bullets: color-mix( + in oklab, + var(--color-base-content) 50%, + #0000 + ); + } + } + :root .prose { + --tw-prose-hr: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-hr: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + } + :root .prose { + --tw-prose-quotes: var(--color-base-content); + --tw-prose-quote-borders: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-quote-borders: color-mix( + in oklab, + var(--color-base-content) 20%, + #0000 + ); + } + } + :root .prose { + --tw-prose-captions: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-captions: color-mix( + in oklab, + var(--color-base-content) 50%, + #0000 + ); + } + } + :root .prose { + --tw-prose-code: var(--color-base-content); + --tw-prose-pre-code: var(--color-neutral-content); + --tw-prose-pre-bg: var(--color-neutral); + --tw-prose-th-borders: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-th-borders: color-mix( + in oklab, + var(--color-base-content) 50%, + #0000 + ); + } + } + :root .prose { + --tw-prose-td-borders: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-td-borders: color-mix( + in oklab, + var(--color-base-content) 20%, + #0000 + ); + } + } + :root .prose { + --tw-prose-kbd: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + :root .prose { + --tw-prose-kbd: color-mix(in oklab, var(--color-base-content) 80%, #0000); + } + } + :root .prose :where(code):not(pre > code) { + background-color: var(--color-base-200); + border-radius: var(--radius-selector); + border: var(--border) solid var(--color-base-300); + font-weight: inherit; + padding-inline: 0.5em; + } + :root .prose :where(code):not(pre > code):before, + :root .prose :where(code):not(pre > code):after { + display: none; + } + .mask { + vertical-align: middle; + display: inline-block; + -webkit-mask-position: 50%; + mask-position: 50%; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + } + .hide-scrollbar { + -ms-overflow-style: none; + scrollbar-width: none; + } + .hide-scrollbar::-webkit-scrollbar { + display: none; + } + .block { + display: block; + } + .contents { + display: contents; + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline { + display: inline; + } + .inline-block { + display: inline-block; + } + .table { + display: table; + } + .aspect-square { + aspect-ratio: 1; + } + .aspect-video { + aspect-ratio: var(--aspect-video); + } + .btn-circle { + width: var(--size); + height: var(--size); + border-radius: 3.40282e38px; + padding-inline: 0; + } + .btn-square { + width: var(--size); + height: var(--size); + padding-inline: 0; + } + .size-0 { + width: calc(var(--spacing) * 0); + height: calc(var(--spacing) * 0); + } + .size-3 { + width: calc(var(--spacing) * 3); + height: calc(var(--spacing) * 3); + } + .size-3\.5 { + width: calc(var(--spacing) * 3.5); + height: calc(var(--spacing) * 3.5); + } + .size-4 { + width: calc(var(--spacing) * 4); + height: calc(var(--spacing) * 4); + } + .size-4\.5 { + width: calc(var(--spacing) * 4.5); + height: calc(var(--spacing) * 4.5); + } + .size-5 { + width: calc(var(--spacing) * 5); + height: calc(var(--spacing) * 5); + } + .size-5\.5 { + width: calc(var(--spacing) * 5.5); + height: calc(var(--spacing) * 5.5); + } + .size-6 { + width: calc(var(--spacing) * 6); + height: calc(var(--spacing) * 6); + } + .size-7 { + width: calc(var(--spacing) * 7); + height: calc(var(--spacing) * 7); + } + .size-8 { + width: calc(var(--spacing) * 8); + height: calc(var(--spacing) * 8); + } + .size-10 { + width: calc(var(--spacing) * 10); + height: calc(var(--spacing) * 10); + } + .size-11 { + width: calc(var(--spacing) * 11); + height: calc(var(--spacing) * 11); + } + .size-12 { + width: calc(var(--spacing) * 12); + height: calc(var(--spacing) * 12); + } + .size-13 { + width: calc(var(--spacing) * 13); + height: calc(var(--spacing) * 13); + } + .size-14 { + width: calc(var(--spacing) * 14); + height: calc(var(--spacing) * 14); + } + .size-15 { + width: calc(var(--spacing) * 15); + height: calc(var(--spacing) * 15); + } + .size-16 { + width: calc(var(--spacing) * 16); + height: calc(var(--spacing) * 16); + } + .size-20 { + width: calc(var(--spacing) * 20); + height: calc(var(--spacing) * 20); + } + .size-26 { + width: calc(var(--spacing) * 26); + height: calc(var(--spacing) * 26); + } + .size-30 { + width: calc(var(--spacing) * 30); + height: calc(var(--spacing) * 30); + } + .size-32 { + width: calc(var(--spacing) * 32); + height: calc(var(--spacing) * 32); + } + .size-52 { + width: calc(var(--spacing) * 52); + height: calc(var(--spacing) * 52); + } + .size-\[95\%\] { + width: 95%; + height: 95%; + } + .size-full { + width: 100%; + height: 100%; + } + .h-4 { + height: calc(var(--spacing) * 4); + } + .h-5 { + height: calc(var(--spacing) * 5); + } + .h-7 { + height: calc(var(--spacing) * 7); + } + .h-9 { + height: calc(var(--spacing) * 9); + } + .h-10 { + height: calc(var(--spacing) * 10); + } + .h-11\/12 { + height: 91.6667%; + } + .h-12 { + height: calc(var(--spacing) * 12); + } + .h-14 { + height: calc(var(--spacing) * 14); + } + .h-20 { + height: calc(var(--spacing) * 20); + } + .h-24 { + height: calc(var(--spacing) * 24); + } + .h-72 { + height: calc(var(--spacing) * 72); + } + .h-96 { + height: calc(var(--spacing) * 96); + } + .h-\[90\%\] { + height: 90%; + } + .h-full { + height: 100%; + } + .h-max { + height: max-content; + } + .h-px { + height: 1px; + } + .h-screen { + height: 100vh; + } + .max-h-11\/12 { + max-height: 91.6667%; + } + .max-h-80 { + max-height: calc(var(--spacing) * 80); + } + .max-h-\[25vh\] { + max-height: 25vh; + } + .max-h-\[70vh\] { + max-height: 70vh; + } + .max-h-\[97\%\] { + max-height: 97%; + } + .max-h-\[300px\] { + max-height: 300px; + } + .max-h-\[360px\] { + max-height: 360px; + } + .max-h-\[520px\] { + max-height: 520px; + } + .min-h-\[420px\] { + min-height: 420px; + } + .min-h-screen { + min-height: 100vh; + } + .loading-lg { + width: calc(var(--size-selector, 0.25rem) * 7); + } + .loading-md { + width: calc(var(--size-selector, 0.25rem) * 6); + } + .loading-sm { + width: calc(var(--size-selector, 0.25rem) * 5); + } + .loading-xl { + width: calc(var(--size-selector, 0.25rem) * 8); + } + .loading-xs { + width: calc(var(--size-selector, 0.25rem) * 4); + } + .w-7 { + width: calc(var(--spacing) * 7); + } + .w-8 { + width: calc(var(--spacing) * 8); + } + .w-11\/12 { + width: 91.6667%; + } + .w-16 { + width: calc(var(--spacing) * 16); + } + .w-24 { + width: calc(var(--spacing) * 24); + } + .w-32 { + width: calc(var(--spacing) * 32); + } + .w-40 { + width: calc(var(--spacing) * 40); + } + .w-44 { + width: calc(var(--spacing) * 44); + } + .w-46 { + width: calc(var(--spacing) * 46); + } + .w-52 { + width: calc(var(--spacing) * 52); + } + .w-70 { + width: calc(var(--spacing) * 70); + } + .w-\[min\(100vw-24px\,400px\)\] { + width: min(100vw - 24px, 400px); + } + .w-auto { + width: auto; + } + .w-full { + width: 100%; + } + .w-max { + width: max-content; + } + .w-px { + width: 1px; + } + .w-screen { + width: 100vw; + } + .max-w-2xl { + max-width: var(--container-2xl); + } + .max-w-3xl { + max-width: var(--container-3xl); + } + .max-w-4xl { + max-width: var(--container-4xl); + } + .max-w-7xl { + max-width: var(--container-7xl); + } + .max-w-11\/12 { + max-width: 91.6667%; + } + .max-w-16 { + max-width: calc(var(--spacing) * 16); + } + .max-w-54 { + max-width: calc(var(--spacing) * 54); + } + .max-w-74 { + max-width: calc(var(--spacing) * 74); + } + .max-w-\[1920px\] { + max-width: 1920px; + } + .max-w-\[calc\(100\%-2rem\)\] { + max-width: calc(100% - 2rem); + } + .max-w-full { + max-width: 100%; + } + .max-w-lg { + max-width: var(--container-lg); + } + .max-w-md { + max-width: var(--container-md); + } + .max-w-sm { + max-width: var(--container-sm); + } + .max-w-xl { + max-width: var(--container-xl); + } + .min-w-10 { + min-width: calc(var(--spacing) * 10); + } + .grow { + flex-grow: 1; + } + .translate-1\/2 { + --tw-translate-x: 50%; + --tw-translate-y: 50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-x-1\/2 { + --tw-translate-x: -50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-x-full { + --tw-translate-x: -100%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-x-\[-50\%\] { + --tw-translate-x: -50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .\!-translate-y-1\/2 { + --tw-translate-y: -50% !important; + translate: var(--tw-translate-x) var(--tw-translate-y) !important; + } + .-translate-y-1\/2 { + --tw-translate-y: -50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-y-\[87\%\] { + --tw-translate-y: -87%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-0\.5 { + --tw-translate-y: calc(var(--spacing) * 0.5); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-1 { + --tw-translate-y: calc(var(--spacing) * 1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-1\/2 { + --tw-translate-y: 50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-2 { + --tw-translate-y: calc(var(--spacing) * 2); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-y-\[-50\%\] { + --tw-translate-y: -50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .scale-\[1\.02\] { + scale: 1.02; + } + .scale-\[3\] { + scale: 3; + } + .rotate-\[215deg\] { + rotate: 215deg; + } + .transform { + transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) + var(--tw-skew-x) var(--tw-skew-y); + } + .skeleton { + border-radius: var(--radius-box); + background-color: var(--color-base-300); + } + @media (prefers-reduced-motion: reduce) { + .skeleton { + transition-duration: 15s; + } + } + .skeleton { + will-change: background-position; + background-image: linear-gradient( + 105deg, + #0000 0% 40%, + var(--color-base-100) 50%, + #0000 60% 100% + ); + background-position-x: -50%; + background-repeat: no-repeat; + background-size: 200%; + animation: 1.8s ease-in-out infinite skeleton; + } + .animate-bounce { + animation: var(--animate-bounce); + } + .animate-caret-blink { + animation: 1.25s ease-out infinite caret-blink; + } + .animate-pulse { + animation: var(--animate-pulse); + } + .highlight-link a { + cursor: pointer; + color: var(--color-primary); + text-decoration-line: none; + } + .link { + cursor: pointer; + text-decoration-line: underline; + } + .link:focus { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .link:focus { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .link:focus-visible { + outline-offset: 2px; + outline: 2px solid; + } + .cursor-auto { + cursor: auto; + } + .cursor-default { + cursor: default; + } + .cursor-eraser { + cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC) + 2 14, + default; + } + .cursor-not-allowed { + cursor: not-allowed; + } + .cursor-pencil { + cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC) + 8 8, + default; + } + .cursor-pointer { + cursor: pointer; + } + .touch-none { + touch-action: none; + } + .resize { + resize: both; + } + .scroll-py-1 { + scroll-padding-block: calc(var(--spacing) * 1); + } + .grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + .grid-cols-8 { + grid-template-columns: repeat(8, minmax(0, 1fr)); + } + .grid-cols-\[350px_1fr\] { + grid-template-columns: 350px 1fr; + } + .flex-col { + flex-direction: column; + } + .flex-col-reverse { + flex-direction: column-reverse; + } + .flex-wrap { + flex-wrap: wrap; + } + .items-baseline { + align-items: baseline; + } + .items-center { + align-items: center; + } + .items-end { + align-items: flex-end; + } + .items-start { + align-items: flex-start; + } + .justify-between { + justify-content: space-between; + } + .justify-center { + justify-content: center; + } + .justify-end { + justify-content: flex-end; + } + .gap-0\.5 { + gap: calc(var(--spacing) * 0.5); + } + .gap-1 { + gap: calc(var(--spacing) * 1); + } + .gap-1\.5 { + gap: calc(var(--spacing) * 1.5); + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .gap-3 { + gap: calc(var(--spacing) * 3); + } + .gap-4 { + gap: calc(var(--spacing) * 4); + } + .gap-5 { + gap: calc(var(--spacing) * 5); + } + .gap-6 { + gap: calc(var(--spacing) * 6); + } + .gap-\[8px\] { + gap: 8px; + } + .overflow-auto { + overflow: auto; + } + .overflow-hidden { + overflow: hidden; + } + .overflow-x-auto { + overflow-x: auto; + } + .overflow-x-hidden { + overflow-x: hidden; + } + .overflow-y-auto { + overflow-y: auto; + } + .tabs-box { + background-color: var(--color-base-200); + --tabs-box-radius: calc( + var(--radius-field) + var(--radius-field) + var(--radius-field) + ); + border-radius: calc( + var(--radius-field) + min(0.25rem, var(--tabs-box-radius)) + ); + box-shadow: 0 -0.5px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, + 0 0.5px oklch(0% 0 0 / calc(var(--depth) * 0.05)) inset; + padding: 0.25rem; + } + .tabs-box .tab { + border-radius: var(--radius-field); + border-style: none; + } + .tabs-box .tab:focus-visible, + .tabs-box .tab:is(label:has(:checked:focus-visible)) { + outline-offset: 2px; + } + .tabs-box + > :is(.tab-active, [aria-selected="true"]):not(.tab-disabled, [disabled]), + .tabs-box > :is(input:checked), + .tabs-box > :is(label:has(:checked)) { + background-color: var(--tab-bg, var(--color-base-100)); + box-shadow: 0 1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, + 0 1px 1px -1px var(--color-neutral), 0 1px 6px -4px var(--color-neutral); + } + @supports (color: color-mix(in lab, red, red)) { + .tabs-box + > :is(.tab-active, [aria-selected="true"]):not(.tab-disabled, [disabled]), + .tabs-box > :is(input:checked), + .tabs-box > :is(label:has(:checked)) { + box-shadow: 0 1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, + 0 1px 1px -1px color-mix(in oklab, var(--color-neutral) + calc(var(--depth) * 50%), #0000), + 0 1px 6px -4px color-mix(in oklab, var(--color-neutral) + calc(var(--depth) * 100%), #0000); + } + } + @media (forced-colors: active) { + .tabs-box + > :is(.tab-active, [aria-selected="true"]):not(.tab-disabled, [disabled]), + .tabs-box > :is(input:checked), + .tabs-box > :is(label:has(:checked)) { + border: 1px solid; + } + } + .rounded-2xl { + border-radius: var(--radius-2xl); + } + .rounded-box { + border-radius: var(--radius-box); + } + .rounded-field { + border-radius: var(--radius-field); + } + .rounded-full { + border-radius: 3.40282e38px; + } + .rounded-lg { + border-radius: var(--radius-lg); + } + .rounded-md { + border-radius: var(--radius-md); + } + .rounded-sm { + border-radius: var(--radius-sm); + } + .rounded-xl { + border-radius: var(--radius-xl); + } + .rounded-xs { + border-radius: var(--radius-xs); + } + .rounded-t-box { + border-top-left-radius: var(--radius-box); + border-top-right-radius: var(--radius-box); + } + .\!border { + border-style: var(--tw-border-style) !important; + border-width: 1px !important; + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-0 { + border-style: var(--tw-border-style); + border-width: 0; + } + .border-1 { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-2 { + border-style: var(--tw-border-style); + border-width: 2px; + } + .border-3 { + border-style: var(--tw-border-style); + border-width: 3px; + } + .border-4 { + border-style: var(--tw-border-style); + border-width: 4px; + } + .border-6 { + border-style: var(--tw-border-style); + border-width: 6px; + } + .border-y { + border-block-style: var(--tw-border-style); + border-block-width: 1px; + } + .border-t { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-r { + border-right-style: var(--tw-border-style); + border-right-width: 1px; + } + .border-b { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .badge-ghost { + border-color: var(--color-base-200); + background-color: var(--color-base-200); + color: var(--color-base-content); + background-image: none; + } + .badge-soft { + color: var(--badge-color, var(--color-base-content)); + background-color: var(--badge-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .badge-soft { + background-color: color-mix( + in oklab, + var(--badge-color, var(--color-base-content)) 8%, + var(--color-base-100) + ); + } + } + .badge-soft { + border-color: var(--badge-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .badge-soft { + border-color: color-mix( + in oklab, + var(--badge-color, var(--color-base-content)) 10%, + var(--color-base-100) + ); + } + } + .badge-soft { + background-image: none; + } + .badge-outline { + color: var(--badge-color); + --badge-bg: #0000; + background-image: none; + border-color: currentColor; + } + .\!border-primary\/60 { + border-color: var(--color-primary) !important; + } + @supports (color: color-mix(in lab, red, red)) { + .\!border-primary\/60 { + border-color: color-mix( + in oklab, + var(--color-primary) 60%, + transparent + ) !important; + } + } + .border-base-200 { + border-color: var(--color-base-200); + } + .border-base-300 { + border-color: var(--color-base-300); + } + .border-base-content\/10 { + border-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .border-base-content\/10 { + border-color: color-mix( + in oklab, + var(--color-base-content) 10%, + transparent + ); + } + } + .border-base-content\/20 { + border-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .border-base-content\/20 { + border-color: color-mix( + in oklab, + var(--color-base-content) 20%, + transparent + ); + } + } + .border-base-content\/30 { + border-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .border-base-content\/30 { + border-color: color-mix( + in oklab, + var(--color-base-content) 30%, + transparent + ); + } + } + .border-black { + border-color: var(--color-black); + } + .border-primary { + border-color: var(--color-primary); + } + .border-red-500 { + border-color: var(--color-red-500); + } + .\!bg-base-300 { + background-color: var(--color-base-300) !important; + } + .\!bg-black\/80 { + background-color: #000c !important; + } + @supports (color: color-mix(in lab, red, red)) { + .\!bg-black\/80 { + background-color: color-mix( + in oklab, + var(--color-black) 80%, + transparent + ) !important; + } + } + .\!bg-black\/90 { + background-color: #000000e6 !important; + } + @supports (color: color-mix(in lab, red, red)) { + .\!bg-black\/90 { + background-color: color-mix( + in oklab, + var(--color-black) 90%, + transparent + ) !important; + } + } + .\!bg-primary { + background-color: var(--color-primary) !important; + } + .bg-\[\#5865F2\] { + background-color: #5865f2; + } + .bg-amber-500\/10 { + background-color: #f99c001a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-amber-500\/10 { + background-color: color-mix( + in oklab, + var(--color-amber-500) 10%, + transparent + ); + } + } + .bg-base-100, + .bg-base-100\/60 { + background-color: var(--color-base-100); + } + @supports (color: color-mix(in lab, red, red)) { + .bg-base-100\/60 { + background-color: color-mix( + in oklab, + var(--color-base-100) 60%, + transparent + ); + } + } + .bg-base-100\/70 { + background-color: var(--color-base-100); + } + @supports (color: color-mix(in lab, red, red)) { + .bg-base-100\/70 { + background-color: color-mix( + in oklab, + var(--color-base-100) 70%, + transparent + ); + } + } + .bg-base-200 { + background-color: var(--color-base-200); + } + .bg-base-300 { + background-color: var(--color-base-300); + } + .bg-base-content\/10 { + background-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .bg-base-content\/10 { + background-color: color-mix( + in oklab, + var(--color-base-content) 10%, + transparent + ); + } + } + .bg-base-content\/20 { + background-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .bg-base-content\/20 { + background-color: color-mix( + in oklab, + var(--color-base-content) 20%, + transparent + ); + } + } + .bg-base-content\/80 { + background-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .bg-base-content\/80 { + background-color: color-mix( + in oklab, + var(--color-base-content) 80%, + transparent + ); + } + } + .bg-black { + background-color: var(--color-black); + } + .bg-black\/50 { + background-color: #00000080; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-black\/50 { + background-color: color-mix( + in oklab, + var(--color-black) 50%, + transparent + ); + } + } + .bg-blue-500\/10 { + background-color: #3080ff1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-blue-500\/10 { + background-color: color-mix( + in oklab, + var(--color-blue-500) 10%, + transparent + ); + } + } + .bg-cyan-500\/10 { + background-color: #00b7d71a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-cyan-500\/10 { + background-color: color-mix( + in oklab, + var(--color-cyan-500) 10%, + transparent + ); + } + } + .bg-emerald-500\/10 { + background-color: #00bb7f1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-emerald-500\/10 { + background-color: color-mix( + in oklab, + var(--color-emerald-500) 10%, + transparent + ); + } + } + .bg-fuchsia-500\/10 { + background-color: #e12afb1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-fuchsia-500\/10 { + background-color: color-mix( + in oklab, + var(--color-fuchsia-500) 10%, + transparent + ); + } + } + .bg-green-500\/10 { + background-color: #00c7581a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-green-500\/10 { + background-color: color-mix( + in oklab, + var(--color-green-500) 10%, + transparent + ); + } + } + .bg-green-600 { + background-color: var(--color-green-600); + } + .bg-indigo-500\/10 { + background-color: #625fff1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-indigo-500\/10 { + background-color: color-mix( + in oklab, + var(--color-indigo-500) 10%, + transparent + ); + } + } + .bg-lime-500\/10 { + background-color: #80cd001a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-lime-500\/10 { + background-color: color-mix( + in oklab, + var(--color-lime-500) 10%, + transparent + ); + } + } + .bg-orange-500\/10 { + background-color: #fe6e001a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-orange-500\/10 { + background-color: color-mix( + in oklab, + var(--color-orange-500) 10%, + transparent + ); + } + } + .bg-pink-500\/10 { + background-color: #f6339a1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-pink-500\/10 { + background-color: color-mix( + in oklab, + var(--color-pink-500) 10%, + transparent + ); + } + } + .bg-primary\/10 { + background-color: var(--color-primary); + } + @supports (color: color-mix(in lab, red, red)) { + .bg-primary\/10 { + background-color: color-mix( + in oklab, + var(--color-primary) 10%, + transparent + ); + } + } + .bg-purple-500\/10 { + background-color: #ac4bff1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-purple-500\/10 { + background-color: color-mix( + in oklab, + var(--color-purple-500) 10%, + transparent + ); + } + } + .bg-red-500 { + background-color: var(--color-red-500); + } + .bg-red-500\/10 { + background-color: #fb2c361a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-red-500\/10 { + background-color: color-mix( + in oklab, + var(--color-red-500) 10%, + transparent + ); + } + } + .bg-rose-500\/10 { + background-color: #ff23571a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-rose-500\/10 { + background-color: color-mix( + in oklab, + var(--color-rose-500) 10%, + transparent + ); + } + } + .bg-secondary { + background-color: var(--color-secondary); + } + .bg-sky-500\/10 { + background-color: #00a5ef1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-sky-500\/10 { + background-color: color-mix( + in oklab, + var(--color-sky-500) 10%, + transparent + ); + } + } + .bg-teal-500\/10 { + background-color: #00baa71a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-teal-500\/10 { + background-color: color-mix( + in oklab, + var(--color-teal-500) 10%, + transparent + ); + } + } + .bg-transparent { + background-color: #0000; + } + .bg-violet-500\/10 { + background-color: #8d54ff1a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-violet-500\/10 { + background-color: color-mix( + in oklab, + var(--color-violet-500) 10%, + transparent + ); + } + } + .bg-warning { + background-color: var(--color-warning); + } + .bg-yellow-500\/10 { + background-color: #edb2001a; + } + @supports (color: color-mix(in lab, red, red)) { + .bg-yellow-500\/10 { + background-color: color-mix( + in oklab, + var(--color-yellow-500) 10%, + transparent + ); + } + } + .loading-dots { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E"); + } + .loading-spinner { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); + } + .fill-blue-800 { + fill: var(--color-blue-800); + } + .fill-primary { + fill: var(--color-primary); + } + .fill-red-400 { + fill: var(--color-red-400); + } + .checkbox-sm { + --size: calc(var(--size-selector, 0.25rem) * 5); + padding: 0.1875rem; + } + .checkbox-xs { + --size: calc(var(--size-selector, 0.25rem) * 4); + padding: 0.125rem; + } + .radio-sm { + padding: 0.1875rem; + } + .radio-sm[type="radio"] { + --size: calc(var(--size-selector, 0.25rem) * 5); + } + .p-0 { + padding: calc(var(--spacing) * 0); + } + .p-1 { + padding: calc(var(--spacing) * 1); + } + .p-2 { + padding: calc(var(--spacing) * 2); + } + .p-2\.5 { + padding: calc(var(--spacing) * 2.5); + } + .p-3 { + padding: calc(var(--spacing) * 3); + } + .p-4 { + padding: calc(var(--spacing) * 4); + } + .p-6 { + padding: calc(var(--spacing) * 6); + } + .table-sm :not(thead, tfoot) tr { + font-size: 0.75rem; + } + .table-sm :where(th, td) { + padding-block: 0.5rem; + padding-inline: 0.75rem; + } + .badge-lg { + --size: calc(var(--size-selector, 0.25rem) * 7); + padding-inline: calc(0.25rem * 3.5 - var(--border)); + font-size: 1rem; + } + .badge-sm { + --size: calc(var(--size-selector, 0.25rem) * 5); + padding-inline: calc(0.25rem * 2.5 - var(--border)); + font-size: 0.75rem; + } + .badge-xs { + --size: calc(var(--size-selector, 0.25rem) * 4); + padding-inline: calc(0.25rem * 2 - var(--border)); + font-size: 0.625rem; + } + .px-0 { + padding-inline: calc(var(--spacing) * 0); + } + .px-1 { + padding-inline: calc(var(--spacing) * 1); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-3 { + padding-inline: calc(var(--spacing) * 3); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .px-6 { + padding-inline: calc(var(--spacing) * 6); + } + .px-\[5px\] { + padding-inline: 5px; + } + .py-0 { + padding-block: calc(var(--spacing) * 0); + } + .py-1 { + padding-block: calc(var(--spacing) * 1); + } + .py-1\.5 { + padding-block: calc(var(--spacing) * 1.5); + } + .py-2 { + padding-block: calc(var(--spacing) * 2); + } + .py-3 { + padding-block: calc(var(--spacing) * 3); + } + .py-4 { + padding-block: calc(var(--spacing) * 4); + } + .py-6 { + padding-block: calc(var(--spacing) * 6); + } + .pt-1 { + padding-top: calc(var(--spacing) * 1); + } + .pt-2 { + padding-top: calc(var(--spacing) * 2); + } + .pt-3 { + padding-top: calc(var(--spacing) * 3); + } + .pt-4 { + padding-top: calc(var(--spacing) * 4); + } + .pt-6 { + padding-top: calc(var(--spacing) * 6); + } + .pt-20 { + padding-top: calc(var(--spacing) * 20); + } + .pr-1 { + padding-right: calc(var(--spacing) * 1); + } + .pr-2 { + padding-right: calc(var(--spacing) * 2); + } + .pr-2\.5 { + padding-right: calc(var(--spacing) * 2.5); + } + .pr-8 { + padding-right: calc(var(--spacing) * 8); + } + .pb-0\.5 { + padding-bottom: calc(var(--spacing) * 0.5); + } + .pb-1 { + padding-bottom: calc(var(--spacing) * 1); + } + .pb-2 { + padding-bottom: calc(var(--spacing) * 2); + } + .pb-3 { + padding-bottom: calc(var(--spacing) * 3); + } + .pb-4 { + padding-bottom: calc(var(--spacing) * 4); + } + .pb-6 { + padding-bottom: calc(var(--spacing) * 6); + } + .pb-8 { + padding-bottom: calc(var(--spacing) * 8); + } + .pl-1 { + padding-left: calc(var(--spacing) * 1); + } + .pl-4 { + padding-left: calc(var(--spacing) * 4); + } + .pl-12\! { + padding-left: calc(var(--spacing) * 12) !important; + } + .text-center { + text-align: center; + } + .text-left { + text-align: left; + } + .text-right { + text-align: right; + } + .text-start { + text-align: start; + } + .font-flag { + font-family: "Noto Color Emoji", "Geist", var(--font-sans); + } + .font-mono { + font-family: var(--font-mono); + } + .font-pixel { + font-family: "Pixelify Sans", var(--font-sans); + } + .text-2xl { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + } + .text-3xl { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + } + .text-4xl { + font-size: var(--text-4xl); + line-height: var(--tw-leading, var(--text-4xl--line-height)); + } + .text-5xl { + font-size: var(--text-5xl); + line-height: var(--tw-leading, var(--text-5xl--line-height)); + } + .text-7xl { + font-size: var(--text-7xl); + line-height: var(--tw-leading, var(--text-7xl--line-height)); + } + .text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .text-lg { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-xl { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + } + .text-xs { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + .kbd-sm { + --size: calc(var(--size-selector, 0.25rem) * 5); + font-size: 0.75rem; + } + .kbd-xs { + --size: calc(var(--size-selector, 0.25rem) * 4); + font-size: 0.625rem; + } + .select-sm { + --size: calc(var(--size-field, 0.25rem) * 8); + font-size: 0.75rem; + } + .text-\[10px\] { + font-size: 10px; + } + .leading-none { + --tw-leading: 1; + line-height: 1; + } + .font-bold { + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + } + .font-extrabold { + --tw-font-weight: var(--font-weight-extrabold); + font-weight: var(--font-weight-extrabold); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .font-normal { + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } + .tracking-widest { + --tw-tracking: var(--tracking-widest); + letter-spacing: var(--tracking-widest); + } + .text-nowrap { + text-wrap: nowrap; + } + .break-words { + overflow-wrap: break-word; + } + .text-ellipsis { + text-overflow: ellipsis; + } + .whitespace-nowrap { + white-space: nowrap; + } + .whitespace-pre-line { + white-space: pre-line; + } + .whitespace-pre-wrap { + white-space: pre-wrap; + } + .\!text-primary-content { + color: var(--color-primary-content) !important; + } + .text-amber-500 { + color: var(--color-amber-500); + } + .text-amber-600 { + color: var(--color-amber-600); + } + .text-base-content, + .text-base-content\/20 { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .text-base-content\/20 { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + .text-base-content\/50 { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .text-base-content\/50 { + color: color-mix(in oklab, var(--color-base-content) 50%, transparent); + } + } + .text-base-content\/60 { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .text-base-content\/60 { + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); + } + } + .text-base-content\/70 { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .text-base-content\/70 { + color: color-mix(in oklab, var(--color-base-content) 70%, transparent); + } + } + .text-base-content\/80 { + color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .text-base-content\/80 { + color: color-mix(in oklab, var(--color-base-content) 80%, transparent); + } + } + .text-black { + color: var(--color-black); + } + .text-blue-500 { + color: var(--color-blue-500); + } + .text-blue-600 { + color: var(--color-blue-600); + } + .text-cyan-500 { + color: var(--color-cyan-500); + } + .text-emerald-500 { + color: var(--color-emerald-500); + } + .text-error { + color: var(--color-error); + } + .text-fuchsia-500 { + color: var(--color-fuchsia-500); + } + .text-green-100 { + color: var(--color-green-100); + } + .text-green-500 { + color: var(--color-green-500); + } + .text-indigo-500 { + color: var(--color-indigo-500); + } + .text-lime-500 { + color: var(--color-lime-500); + } + .text-orange-500 { + color: var(--color-orange-500); + } + .text-pink-500 { + color: var(--color-pink-500); + } + .text-primary { + color: var(--color-primary); + } + .text-primary-content { + color: var(--color-primary-content); + } + .text-primary\/80 { + color: var(--color-primary); + } + @supports (color: color-mix(in lab, red, red)) { + .text-primary\/80 { + color: color-mix(in oklab, var(--color-primary) 80%, transparent); + } + } + .text-purple-500 { + color: var(--color-purple-500); + } + .text-red-400 { + color: var(--color-red-400); + } + .text-red-500 { + color: var(--color-red-500); + } + .text-red-600 { + color: var(--color-red-600); + } + .text-rose-500 { + color: var(--color-rose-500); + } + .text-secondary { + color: var(--color-secondary); + } + .text-sky-500 { + color: var(--color-sky-500); + } + .text-success { + color: var(--color-success); + } + .text-teal-500 { + color: var(--color-teal-500); + } + .text-violet-500 { + color: var(--color-violet-500); + } + .text-warning-content { + color: var(--color-warning-content); + } + .text-white { + color: var(--color-white); + } + .text-yellow-400 { + color: var(--color-yellow-400); + } + .text-yellow-500 { + color: var(--color-yellow-500); + } + .capitalize { + text-transform: capitalize; + } + .uppercase { + text-transform: uppercase; + } + .underline { + text-decoration-line: underline; + } + .opacity-30 { + opacity: 0.3; + } + .opacity-50 { + opacity: 0.5; + } + .opacity-70 { + opacity: 0.7; + } + .opacity-80 { + opacity: 0.8; + } + .\!shadow-md { + --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), + 0 2px 4px -2px var(--tw-shadow-color, #0000001a) !important; + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important; + } + .shadow { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), + 0 1px 2px -1px var(--tw-shadow-color, #0000001a); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-lg { + --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), + 0 4px 6px -4px var(--tw-shadow-color, #0000001a); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-md { + --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), + 0 2px 4px -2px var(--tw-shadow-color, #0000001a); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-sm { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), + 0 1px 2px -1px var(--tw-shadow-color, #0000001a); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-xl { + --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), + 0 8px 10px -6px var(--tw-shadow-color, #0000001a); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .ring-2 { + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 + calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .ring-base-content\/40 { + --tw-ring-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .ring-base-content\/40 { + --tw-ring-color: color-mix( + in oklab, + var(--color-base-content) 40%, + transparent + ); + } + } + .ring-primary { + --tw-ring-color: var(--color-primary); + } + .outline-hidden { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .outline-hidden { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .btn-ghost:not(.btn-active, :hover, :active:focus, :focus-visible) { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-border: #0000; + --btn-noise: none; + } + .btn-ghost:not(.btn-active, :hover, :active:focus, :focus-visible):not( + :disabled, + [disabled], + .btn-disabled + ) { + --btn-fg: currentColor; + outline-color: currentColor; + } + @media (hover: none) { + .btn-ghost:hover:not( + .btn-active, + :active, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-border: #0000; + --btn-noise: none; + --btn-fg: currentColor; + } + } + .backdrop-blur-sm { + --tw-backdrop-blur: blur(var(--blur-sm)); + -webkit-backdrop-filter: var(--tw-backdrop-blur) + var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) + var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) + var(--tw-backdrop-invert) var(--tw-backdrop-opacity) + var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) + var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) + var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) + var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) + var(--tw-backdrop-sepia); + } + .transition { + transition-property: color, background-color, border-color, outline-color, + text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, + --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, + filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, + content-visibility, overlay, pointer-events; + transition-timing-function: var( + --tw-ease, + var(--default-transition-timing-function) + ); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-all { + transition-property: all; + transition-timing-function: var( + --tw-ease, + var(--default-transition-timing-function) + ); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-opacity { + transition-property: opacity; + transition-timing-function: var( + --tw-ease, + var(--default-transition-timing-function) + ); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .duration-200 { + --tw-duration: 0.2s; + transition-duration: 0.2s; + } + .duration-1000 { + --tw-duration: 1s; + transition-duration: 1s; + } + .btn-outline:not( + .btn-active, + :hover, + :active:focus, + :focus-visible, + :disabled, + [disabled], + .btn-disabled, + :checked + ) { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-fg: var(--btn-color); + --btn-border: var(--btn-color); + --btn-noise: none; + } + @media (hover: none) { + .btn-outline:hover:not( + .btn-active, + :active, + :focus-visible, + :disabled, + [disabled], + .btn-disabled, + :checked + ) { + --btn-shadow: ""; + --btn-bg: #0000; + --btn-fg: var(--btn-color); + --btn-border: var(--btn-color); + --btn-noise: none; + } + } + .btn-soft:not( + .btn-active, + :hover, + :active:focus, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-shadow: ""; + --btn-fg: var(--btn-color, var(--color-base-content)); + --btn-bg: var(--btn-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .btn-soft:not( + .btn-active, + :hover, + :active:focus, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-bg: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 8%, + var(--color-base-100) + ); + } + } + .btn-soft:not( + .btn-active, + :hover, + :active:focus, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-border: var(--btn-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .btn-soft:not( + .btn-active, + :hover, + :active:focus, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-border: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 10%, + var(--color-base-100) + ); + } + } + .btn-soft:not( + .btn-active, + :hover, + :active:focus, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-noise: none; + } + @media (hover: none) { + .btn-soft:hover:not( + .btn-active, + :active, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-shadow: ""; + --btn-fg: var(--btn-color, var(--color-base-content)); + --btn-bg: var(--btn-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .btn-soft:hover:not( + .btn-active, + :active, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-bg: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 8%, + var(--color-base-100) + ); + } + } + .btn-soft:hover:not( + .btn-active, + :active, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-border: var(--btn-color, var(--color-base-content)); + } + @supports (color: color-mix(in lab, red, red)) { + .btn-soft:hover:not( + .btn-active, + :active, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-border: color-mix( + in oklab, + var(--btn-color, var(--color-base-content)) 10%, + var(--color-base-100) + ); + } + } + .btn-soft:hover:not( + .btn-active, + :active, + :focus-visible, + :disabled, + [disabled], + .btn-disabled + ) { + --btn-noise: none; + } + } + .indicator-center { + --indicator-s: 50%; + --indicator-e: 50%; + --indicator-x: -50%; + } + [dir="rtl"] .indicator-center { + --indicator-x: 50%; + } + .btn-lg { + --fontsize: 1.125rem; + --btn-p: 1.25rem; + --size: calc(var(--size-field, 0.25rem) * 12); + } + .btn-sm { + --fontsize: 0.75rem; + --btn-p: 0.75rem; + --size: calc(var(--size-field, 0.25rem) * 8); + } + .btn-xl { + --fontsize: 1.375rem; + --btn-p: 1.5rem; + --size: calc(var(--size-field, 0.25rem) * 14); + } + .btn-xs { + --fontsize: 0.6875rem; + --btn-p: 0.5rem; + --size: calc(var(--size-field, 0.25rem) * 6); + } + .indicator-bottom { + --indicator-t: auto; + --indicator-b: 0; + --indicator-y: 50%; + } + .pixelated { + image-rendering: pixelated; + image-rendering: -moz-crisp-edges; + image-rendering: crisp-edges; + } + .badge-error { + --badge-color: var(--color-error); + --badge-fg: var(--color-error-content); + } + .badge-primary { + --badge-color: var(--color-primary); + --badge-fg: var(--color-primary-content); + } + .badge-secondary { + --badge-color: var(--color-secondary); + --badge-fg: var(--color-secondary-content); + } + .badge-success { + --badge-color: var(--color-success); + --badge-fg: var(--color-success-content); + } + .badge-warning { + --badge-color: var(--color-warning); + --badge-fg: var(--color-warning-content); + } + .btn-error { + --btn-color: var(--color-error); + --btn-fg: var(--color-error-content); + } + .btn-primary { + --btn-color: var(--color-primary); + --btn-fg: var(--color-primary-content); + } + .btn-success { + --btn-color: var(--color-success); + --btn-fg: var(--color-success-content); + } + .btn-warning { + --btn-color: var(--color-warning); + --btn-fg: var(--color-warning-content); + } + .select-none { + -webkit-user-select: none; + user-select: none; + } + .input-error, + .input-error:focus, + .input-error:focus-within, + .textarea-error, + .textarea-error:focus, + .textarea-error:focus-within { + --input-color: var(--color-error); + } + .not-hover\:text-error:not(:hover) { + color: var(--color-error); + } + @media not all and (hover: hover) { + .not-hover\:text-error { + color: var(--color-error); + } + } + @media not all and (pointer: coarse) { + .not-touchscreen\:hidden { + display: none; + } + .not-touchscreen\:-translate-x-\[10\%\] { + --tw-translate-x: -10%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + @media not all and (display-mode: standalone) { + .not-pwa\:hidden { + display: none; + } + } + .not-stuck\:border-transparent:not(.stuck) { + border-color: #0000; + } + .peer-focus\:block:is(:where(.peer):focus ~ *) { + display: block; + } + .before\:-translate-x-1\/3:before { + content: var(--tw-content); + --tw-translate-x: calc(calc(1 / 3 * 100%) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .before\:-translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: -25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .before\:translate-x-1\/3:before { + content: var(--tw-content); + --tw-translate-x: calc(1 / 3 * 100%); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .before\:translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: 25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .first\:rounded-l-md:first-child { + border-top-left-radius: var(--radius-md); + border-bottom-left-radius: var(--radius-md); + } + .first\:border-l:first-child { + border-left-style: var(--tw-border-style); + border-left-width: 1px; + } + .last\:rounded-r-md:last-child { + border-top-right-radius: var(--radius-md); + border-bottom-right-radius: var(--radius-md); + } + @media (hover: hover) { + .hover\:bg-base-200:hover { + background-color: var(--color-base-200); + } + .hover\:text-primary:hover { + color: var(--color-primary); + } + .hover\:opacity-100:hover { + opacity: 1; + } + .hover\:brightness-95:hover { + --tw-brightness: brightness(95%); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) + var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) + var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); + } + .hover\:brightness-105:hover { + --tw-brightness: brightness(105%); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) + var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) + var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); + } + } + .focus\:ring-2:focus { + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 + calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .focus\:ring-offset-2:focus { + --tw-ring-offset-width: 2px; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 + var(--tw-ring-offset-width) var(--tw-ring-offset-color); + } + .focus\:outline-hidden:focus { + --tw-outline-style: none; + outline-style: none; + } + @media (forced-colors: active) { + .focus\:outline-hidden:focus { + outline-offset: 2px; + outline: 2px solid #0000; + } + } + .disabled\:pointer-events-none:disabled { + pointer-events: none; + } + .disabled\:cursor-not-allowed:disabled { + cursor: not-allowed; + } + .disabled\:opacity-50:disabled, + .has-\[\:disabled\]\:opacity-50:has(:disabled) { + opacity: 0.5; + } + .aria-selected\:bg-accent[aria-selected="true"] { + background-color: var(--color-accent); + } + .aria-selected\:bg-base-300[aria-selected="true"] { + background-color: var(--color-base-300); + } + .data-\[disabled\]\:pointer-events-none[data-disabled] { + pointer-events: none; + } + .data-\[disabled\]\:opacity-50[data-disabled] { + opacity: 0.5; + } + .data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"] { + pointer-events: none; + } + .data-\[disabled\=true\]\:opacity-50[data-disabled="true"] { + opacity: 0.5; + } + :is( + .\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 * + )[data-slot="command-input-wrapper"] { + height: calc(var(--spacing) * 12); + } + .data-\[state\=closed\]\:animate-out[data-state="closed"] { + animation: exit var(--tw-animation-duration, var(--tw-duration, 0.15s)) + var(--tw-ease, ease) var(--tw-animation-delay, 0s) + var(--tw-animation-iteration-count, 1) + var(--tw-animation-direction, normal) var(--tw-animation-fill-mode, none); + } + .data-\[state\=closed\]\:fade-out-0[data-state="closed"] { + --tw-exit-opacity: 0; + } + .data-\[state\=closed\]\:zoom-out-95[data-state="closed"] { + --tw-exit-scale: 0.95; + } + .data-\[state\=open\]\:animate-in[data-state="open"] { + animation: enter var(--tw-animation-duration, var(--tw-duration, 0.15s)) + var(--tw-ease, ease) var(--tw-animation-delay, 0s) + var(--tw-animation-iteration-count, 1) + var(--tw-animation-direction, normal) var(--tw-animation-fill-mode, none); + } + .data-\[state\=open\]\:fade-in-0[data-state="open"] { + --tw-enter-opacity: 0; + } + .data-\[state\=open\]\:zoom-in-95[data-state="open"] { + --tw-enter-scale: 0.95; + } + @media not all and (min-width: 400px) { + .max-\[400px\]\:hidden { + display: none; + } + } + @media not all and (min-width: 380px) { + .max-\[380px\]\:px-3 { + padding-inline: calc(var(--spacing) * 3); + } + } + @media not all and (min-width: 80rem) { + .max-xl\:before\:-translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: -25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .max-xl\:before\:translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: 25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + @media not all and (min-width: 64rem) { + .max-lg\:pointer-events-none { + pointer-events: none; + } + .max-lg\:invisible { + visibility: hidden; + } + } + @media not all and (min-width: 40rem) { + .max-sm\:absolute { + position: absolute; + } + .max-sm\:dropdown-left { + --anchor-h: left; + --anchor-v: span-bottom; + } + .max-sm\:dropdown-left .dropdown-content { + transform-origin: 100%; + inset-inline-end: 100%; + top: 0; + bottom: auto; + } + .max-sm\:dropdown-top { + --anchor-v: top; + } + .max-sm\:dropdown-top .dropdown-content { + transform-origin: bottom; + top: auto; + bottom: 100%; + } + .max-sm\:bottom-4 { + bottom: calc(var(--spacing) * 4); + } + .max-sm\:mt-1 { + margin-top: calc(var(--spacing) * 1); + } + .max-sm\:mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .max-sm\:ml-2 { + margin-left: calc(var(--spacing) * 2); + } + .max-sm\:hidden { + display: none; + } + .max-sm\:size-6 { + width: calc(var(--spacing) * 6); + height: calc(var(--spacing) * 6); + } + .max-sm\:size-full { + width: 100%; + height: 100%; + } + .max-sm\:h-6 { + height: calc(var(--spacing) * 6); + } + .max-sm\:h-10 { + height: calc(var(--spacing) * 10); + } + .max-sm\:w-\[calc\(100\%-2rem\)\] { + width: calc(100% - 2rem); + } + .max-sm\:max-w-32 { + max-width: calc(var(--spacing) * 32); + } + .max-sm\:overflow-hidden { + overflow: hidden; + } + .max-sm\:overflow-x-hidden { + overflow-x: hidden; + } + .max-sm\:rounded-md { + border-radius: var(--radius-md); + } + .max-sm\:rounded-none { + border-radius: 0; + } + .max-sm\:px-1 { + padding-inline: calc(var(--spacing) * 1); + } + .max-sm\:px-3 { + padding-inline: calc(var(--spacing) * 3); + } + .max-sm\:px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .max-sm\:py-5 { + padding-block: calc(var(--spacing) * 5); + } + .max-sm\:pb-4 { + padding-bottom: calc(var(--spacing) * 4); + } + .max-sm\:text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .max-sm\:text-xl { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + } + .max-sm\:tabs-xs { + --tab-height: calc(var(--size-field, 0.25rem) * 6); + } + .max-sm\:tabs-xs :where(.tab) { + --tab-p: 0.375rem; + --tab-radius-min: calc(0.5rem - var(--border)); + font-size: 0.75rem; + } + .max-sm\:before\:-translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: -25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .max-sm\:before\:translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: 25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + @media (min-width: 40rem) { + .sm\:right-4 { + right: calc(var(--spacing) * 4); + } + .sm\:left-1\/2 { + left: 50%; + } + .sm\:col-span-2 { + grid-column: span 2 / span 2; + } + .sm\:mt-\[1px\] { + margin-top: 1px; + } + .sm\:mb-3 { + margin-bottom: calc(var(--spacing) * 3); + } + .min-sm\:hidden { + display: none; + } + .sm\:flex { + display: flex; + } + .sm\:hidden { + display: none; + } + .sm\:size-6 { + width: calc(var(--spacing) * 6); + height: calc(var(--spacing) * 6); + } + .sm\:size-10 { + width: calc(var(--spacing) * 10); + height: calc(var(--spacing) * 10); + } + .sm\:size-12 { + width: calc(var(--spacing) * 12); + height: calc(var(--spacing) * 12); + } + .sm\:h-11\/12 { + height: 91.6667%; + } + .sm\:h-14 { + height: calc(var(--spacing) * 14); + } + .sm\:h-\[min\(50vw\,85vh\)\] { + height: min(50vw, 85vh); + } + .sm\:max-h-11\/12 { + max-height: 91.6667%; + } + .sm\:max-w-5xl { + max-width: var(--container-5xl); + } + .sm\:max-w-lg { + max-width: var(--container-lg); + } + .sm\:max-w-md { + max-width: var(--container-md); + } + .sm\:max-w-xs { + max-width: var(--container-xs); + } + .sm\:min-w-34 { + min-width: calc(var(--spacing) * 34); + } + .sm\:grow { + flex-grow: 1; + } + .sm\:-translate-x-1\/2 { + --tw-translate-x: -50%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .sm\:auto-cols-max { + grid-auto-columns: max-content; + } + .sm\:grid-flow-col { + grid-auto-flow: column; + } + .sm\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .sm\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + .sm\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + .sm\:grid-cols-6 { + grid-template-columns: repeat(6, minmax(0, 1fr)); + } + .sm\:grid-cols-16 { + grid-template-columns: repeat(16, minmax(0, 1fr)); + } + .sm\:grid-cols-\[auto_1fr\] { + grid-template-columns: auto 1fr; + } + .sm\:flex-col { + flex-direction: column; + } + .sm\:flex-row { + flex-direction: row; + } + .sm\:items-end { + align-items: flex-end; + } + .sm\:justify-between { + justify-content: space-between; + } + .sm\:justify-end { + justify-content: flex-end; + } + .sm\:gap-1 { + gap: calc(var(--spacing) * 1); + } + .sm\:gap-3 { + gap: calc(var(--spacing) * 3); + } + .sm\:gap-4 { + gap: calc(var(--spacing) * 4); + } + .sm\:gap-6 { + gap: calc(var(--spacing) * 6); + } + .sm\:overflow-x-hidden { + overflow-x: hidden; + } + .sm\:rounded-b-box { + border-bottom-right-radius: var(--radius-box); + border-bottom-left-radius: var(--radius-box); + } + .sm\:pb-3 { + padding-bottom: calc(var(--spacing) * 3); + } + .sm\:text-left { + text-align: left; + } + .sm\:text-2xl { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + } + .sm\:text-3xl { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + } + .sm\:text-5xl { + font-size: var(--text-5xl); + line-height: var(--tw-leading, var(--text-5xl--line-height)); + } + .sm\:text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .sm\:text-lg { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + .sm\:text-xl { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + } + .sm\:shadow-xl { + --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), + 0 8px 10px -6px var(--tw-shadow-color, #0000001a); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .sm\:btn-lg { + --fontsize: 1.125rem; + --btn-p: 1.25rem; + --size: calc(var(--size-field, 0.25rem) * 12); + } + .sm\:btn-md { + --fontsize: 0.875rem; + --btn-p: 1rem; + --size: calc(var(--size-field, 0.25rem) * 10); + } + .sm\:btn-xl { + --fontsize: 1.375rem; + --btn-p: 1.5rem; + --size: calc(var(--size-field, 0.25rem) * 14); + } + } + @media (min-width: 48rem) { + .md\:max-w-lg { + max-width: var(--container-lg); + } + .md\:max-w-xl { + max-width: var(--container-xl); + } + .md\:grid-cols-6 { + grid-template-columns: repeat(6, minmax(0, 1fr)); + } + .md\:grid-cols-16 { + grid-template-columns: repeat(16, minmax(0, 1fr)); + } + .md\:grid-cols-\[320px_1fr\] { + grid-template-columns: 320px 1fr; + } + .md\:grid-cols-\[360px_1fr\] { + grid-template-columns: 360px 1fr; + } + .md\:flex-row { + flex-direction: row; + } + .md\:items-end { + align-items: flex-end; + } + .md\:justify-between { + justify-content: space-between; + } + } + @media (min-width: 64rem) { + .lg\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + .lg\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + .lg\:before\:-translate-x-1\/3:before { + content: var(--tw-content); + --tw-translate-x: calc(calc(1 / 3 * 100%) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .lg\:before\:translate-x-1\/3:before { + content: var(--tw-content); + --tw-translate-x: calc(1 / 3 * 100%); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + @media (min-width: 80rem) { + .xl\:col-span-1 { + grid-column: span 1 / span 1; + } + .xl\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + .xl\:grid-cols-32 { + grid-template-columns: repeat(32, minmax(0, 1fr)); + } + .xl\:before\:-translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: -25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .xl\:before\:translate-x-1\/4:before { + content: var(--tw-content); + --tw-translate-x: 25%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + @media (min-width: 100rem) { + .min-\[100rem\]\:grid-cols-32 { + grid-template-columns: repeat(32, minmax(0, 1fr)); + } + } + @media (pointer: coarse) { + .touchscreen\:hidden { + display: none; + } + } + @media (display-mode: standalone) { + .pwa\:hidden { + display: none; + } + } + .stuck\:border-base-content\/10.stuck { + border-color: var(--color-base-content); + } + @supports (color: color-mix(in lab, red, red)) { + .stuck\:border-base-content\/10.stuck { + border-color: color-mix( + in oklab, + var(--color-base-content) 10%, + transparent + ); + } + } + .\[\&_\[data-command-group\]\]\:px-2 [data-command-group] { + padding-inline: calc(var(--spacing) * 2); + } + .\[\&_\[data-command-group\]\:not\(\[hidden\]\)_\~\[data-command-group\]\]\:pt-0 + [data-command-group]:not([hidden]) + ~ [data-command-group] { + padding-top: calc(var(--spacing) * 0); + } + .\[\&_\[data-command-input-wrapper\]_svg\]\:h-5 + [data-command-input-wrapper] + svg { + height: calc(var(--spacing) * 5); + } + .\[\&_\[data-command-input-wrapper\]_svg\]\:w-5 + [data-command-input-wrapper] + svg { + width: calc(var(--spacing) * 5); + } + .\[\&_\[data-command-input\]\]\:h-12 [data-command-input] { + height: calc(var(--spacing) * 12); + } + .\[\&_\[data-command-item\]\]\:px-2 [data-command-item] { + padding-inline: calc(var(--spacing) * 2); + } + .\[\&_\[data-command-item\]\]\:py-3 [data-command-item] { + padding-block: calc(var(--spacing) * 3); + } + .\[\&_\[data-command-item\]_svg\]\:h-5 [data-command-item] svg { + height: calc(var(--spacing) * 5); + } + .\[\&_\[data-command-item\]_svg\]\:w-5 [data-command-item] svg { + width: calc(var(--spacing) * 5); + } + .\[\&_input\]\:disabled\:cursor-not-allowed input:disabled { + cursor: not-allowed; + } + .\[\&_svg\]\:pointer-events-none svg { + pointer-events: none; + } + .\[\&_svg\]\:shrink-0 svg { + flex-shrink: 0; + } + .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*="size-"]) { + width: calc(var(--spacing) * 4); + height: calc(var(--spacing) * 4); + } +} +@property --tw-animation-delay { + syntax: "*"; + inherits: false; + initial-value: 0s; +} +@property --tw-animation-direction { + syntax: "*"; + inherits: false; + initial-value: normal; +} +@property --tw-animation-duration { + syntax: "*"; + inherits: false; +} +@property --tw-animation-fill-mode { + syntax: "*"; + inherits: false; + initial-value: none; +} +@property --tw-animation-iteration-count { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-enter-blur { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-enter-opacity { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-enter-rotate { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-enter-scale { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-enter-translate-x { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-enter-translate-y { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-exit-blur { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-exit-opacity { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-exit-rotate { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-exit-scale { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-exit-translate-x { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-exit-translate-y { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@keyframes progress { + 50% { + background-position-x: -115%; + } +} +@keyframes radio { + 0% { + padding: 5px; + } + 50% { + padding: 3px; + } +} +@keyframes toast { + 0% { + opacity: 0; + scale: 0.9; + } + to { + opacity: 1; + scale: 1; + } +} +@keyframes dropdown { + 0% { + opacity: 0; + } +} +@keyframes rating { + 0%, + 40% { + filter: brightness(1.05) contrast(1.05); + scale: 1.1; + } +} +@keyframes skeleton { + 0% { + background-position: 150%; + } + to { + background-position: -50%; + } +} +@property --tw-translate-x { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-y { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-z { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-leading { + syntax: "*"; + inherits: false; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-tracking { + syntax: "*"; + inherits: false; +} +@property --tw-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-ring-inset { + syntax: "*"; + inherits: false; +} +@property --tw-ring-offset-width { + syntax: ""; + inherits: false; + initial-value: 0; +} +@property --tw-ring-offset-color { + syntax: "*"; + inherits: false; + initial-value: #fff; +} +@property --tw-ring-offset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-backdrop-blur { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-invert { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-duration { + syntax: "*"; + inherits: false; +} +@property --tw-content { + syntax: "*"; + inherits: false; + initial-value: ""; +} +@property --tw-blur { + syntax: "*"; + inherits: false; +} +@property --tw-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-invert { + syntax: "*"; + inherits: false; +} +@property --tw-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-drop-shadow-size { + syntax: "*"; + inherits: false; +} +@property --tw-outline-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@keyframes pulse { + 50% { + opacity: 0.5; + } +} +@keyframes bounce { + 0%, + to { + animation-timing-function: cubic-bezier(0.8, 0, 1, 1); + transform: translateY(-25%); + } + 50% { + animation-timing-function: cubic-bezier(0, 0, 0.2, 1); + transform: none; + } +} +@keyframes enter { + 0% { + opacity: var(--tw-enter-opacity, 1); + transform: translate3d( + var(--tw-enter-translate-x, 0), + var(--tw-enter-translate-y, 0), + 0 + ) + scale3d( + var(--tw-enter-scale, 1), + var(--tw-enter-scale, 1), + var(--tw-enter-scale, 1) + ) + rotate(var(--tw-enter-rotate, 0)); + filter: blur(var(--tw-enter-blur, 0)); + } +} +@keyframes exit { + to { + opacity: var(--tw-exit-opacity, 1); + transform: translate3d( + var(--tw-exit-translate-x, 0), + var(--tw-exit-translate-y, 0), + 0 + ) + scale3d( + var(--tw-exit-scale, 1), + var(--tw-exit-scale, 1), + var(--tw-exit-scale, 1) + ) + rotate(var(--tw-exit-rotate, 0)); + filter: blur(var(--tw-exit-blur, 0)); + } +} +@keyframes caret-blink { + 0%, + 70%, + to { + opacity: 1; + } + 20%, + 50% { + opacity: 0; + } +} diff --git a/frontend-backup/_app/immutable/assets/0.CmqRY0au.css b/frontend-backup/_app/immutable/assets/0.CmqRY0au.css deleted file mode 100644 index b63e4b3..0000000 --- a/frontend-backup/_app/immutable/assets/0.CmqRY0au.css +++ /dev/null @@ -1 +0,0 @@ -html[dir=ltr],[data-sonner-toaster][dir=ltr]{--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}html[dir=rtl],[data-sonner-toaster][dir=rtl]{--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}@media (hover: none) and (pointer: coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translate(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-y-position=top]{top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px #0006}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:#00000014}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:#ffffff4d}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]:before{content:"";position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]:before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]:before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]:after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y: translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y: translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y: translateY( calc(var(--lift) * var(--offset) + var(--lift) * -100%) );opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]:before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 87%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 93%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 84%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 43%, 17%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 9%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;top:0;right:0;bottom:0;left:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-content:"";--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-lime-500:oklch(76.8% .233 130.85);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-500:oklch(62.7% .265 303.9);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-500:oklch(65.6% .241 354.308);--color-rose-500:oklch(64.5% .246 16.439);--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-widest:.1em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{color-scheme:light only;--version:1.13}html,body{height:100%}*{overscroll-behavior:contain;touch-action:manipulation}.maplibregl-ctrl-bottom-right{z-index:1;height:max-content;top:0;left:0;right:unset!important}.maplibregl-ctrl-attrib.maplibregl-compact{margin:10px 80px 10px 12px!important}#map canvas{cursor:default}body{background-color:var(--color-base-100);font-family:"Geist",var(--font-sans)}input:focus,textarea:focus,label:has(:focus){outline-style:var(--tw-outline-style)!important;outline-width:0!important}button,a{cursor:pointer}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(Geist-cyrillic.CHSlOQsW.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(Geist-latin-ext.DMtmJ5ZE.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(Geist-latin.Dg_dQHbK.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(GeistMono-cyrillic.BZdD_g9V.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(GeistMono-latin-ext.b6lpi8_2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(GeistMono-latin.Cjtb1TV-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(PixelifySans-cyrillic.CPPz0Qvd.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(PixelifySans-cyrillic.CPPz0Qvd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(PixelifySans-latin.vdc2vUDH.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Color Emoji;font-style:normal;font-weight:400;font-display:swap;src:url(NotoColorEmoji-flags.ClvgErYz.woff2)format("woff2");unicode-range:U+1F1E6-1F1FF}.iti{--iti-path-flags-1x:url(flags.a2kmUSbF.webp);--iti-path-flags-2x:url(flags@2x.gR6KPp3x.webp);--iti-path-globe-1x:url(data:image/webp;base64,UklGRvoBAABXRUJQVlA4TO4BAAAvE8AEENXIkiRZtZu7H33ql07cqTlilvbz9i4tosSMZma27zWzHRGyIEk2bcu2bdvGn23btm3btm3btm0/m5PqAEkLTYYwxTPAW84Tl6wNgmvIqptKKH9nYAr4xle+TML/BDI2LSg6QHKT/nngE4+ZMIUePUGeTvly+YoV8F1DtkGUzlfst2LUKTX6PaWZeMWiDqN6PgcciGa2boYPmxlR5bIIL5l6RVyDYMXmY1f10pGb7PmAN6sRTBTN3N9C9Zi/LbVhlL+Oo2M7RxoE/a4+/nDjeBrSVwtGYXGGMIrUbJzCU1LgFftP9K1hkpOXmBim30cIJ1hgOkSwMhYCMgmaw7rXcfT5/wQcFhrcuaOEBuq5ytYblLPBEhV0Aq/ZqcDn/6RUDgrUL0/0UZgK/p+rR8/4nZAqFfuXA6TbtFQyJSe4gpj6T19a5q+HLEkox0mlWXvbIGbuJw28fkozjybhT5oXHNY4py5rH1CflcyeB1fId9wXDAvFmz/8m6AE/8TgYzEVGoRMCKUhND7PQho7jGo1utkdV559cm3llGFs3sxBZrmGbEExop91jyfg5G7BmCCi6evNaSDFBrG3vyaRNzt+HJ9kQpVbgj+xFUoNgr3abxqGfH3WfQq9lp5UZPRW74ZbFgpq+EGo67dUAQ==);--iti-path-globe-2x:url(data:image/webp;base64,UklGRlwFAABXRUJQVlA4TE8FAAAvJ8AJEEfHKJIkKdmcgvjj3wwill7QwKhtJEnOnIDmv/zJLAdGbSNJcuYENP/lT2Y5OGwjSZHmtL3wTFl9tp8SM/9xz47Ctm2b7mnwDggKFNd77jgHyxhIYVvLQBDEHEBKRQBIOXzQpAhiBQCIAMaIAACHhAQHIMFhhRkSRt1hlRIYDAZDhiE3CVrBS2gFkZGRYdA6mjQQBYAv6yOZSVAQCoPWMCWBIBQKwtCCUBANFARBlChBfPCG/dZUjxJECYJQECU+KGFQEC1YdN/NSUNRTDm4osQBGUwFjDFCBOYRo9QWxAmPlKQECRERMbVLCZapZ0owSrnz3hb6/P8auL9vAwr7/xeS5EV9q2sWU2vbtjla27Zt28akprq6a3bPtm2np87eJIvePUzd9fvoXkT0fwK4Vwdo8t6qyQW+O7Tn4k7NAdvi/jMR0fGpwhglhZBKm3B0pzvg3JcDrUuMEn7SDaUIRTLhhqb/AbDvw+bbJToMEq5QflFfv+QhJVPxcmkm/Ih9TzZfFxk/CJUnP7zMykJqnhsqQ51M6tTv2Pdgc/GKCuKmaI96HlhVAJy4vWVWWgRSfYJ9l4jv+4aB0F15Td3kH1YW4DiMnEJHGSaFOoOdw4LxOhCqPTf0JvLys6I8Wv/9BeeuhEkZfE+UZfNSOumqT+CArgHwbBHZw+ZB00AGeiYxIKKudH2zDxg97VK7FxdO6+9Pmt3l4J/bZR58rtyEOY6dtdhcMbPh2jsyNKr3mNnDy+c8Pig0od5wGXakg7DYgYgfU5648s0fC0Ljv9SigQVrHwUafXVgmNE92zBBBeYjsHn5L6Emz/6776EnxwJUsqKADMDmq8fG/T16fujr7lhknhheLG4PPwFD15IXs2xWFWBZVj4ndDW+fDItPRncssi75Fxv/iHQQL2PDbkg4k/zP/BfgfR1axxy59PM/IYdsypZWUCUiTlck2/zTz4fm3LzqkNlxxnzW+A4fK4vkbNrIbn7bgVoKn3djQu90krrllynQ1g7v2rpjUYsfeR6tdLSaqV5w5fR6E5+k8BVT/0aqqSXDAdV4wvpCplTCJnbFTLb9dTEHjoQQiTMC7Ah3PPuwbffOfD+xP4d3s7uMGDC+wcOvrs7kVKTZ6m4EMIVfn1O61JyrnuU3EM3A3znefrp142f5cnmnDXNyXecPFYUYNt2pVUlvot//qWFDszz9aTrCuGpQVX4Wn+KAw6rCrAgw/eqLZXQVQfmXZ5QnnCF2wrwdlJ5F8DhC1MP/itRnhv+wmHji7hpT+x0tekziRw7jxUF2LZznX3xOydH3e5fVhYWO5QOlClPzYFX9EMD65P9bBHZ16fLq7dHfrlal5vO2LxuKkTcfABvjZDxwsWvf9hs7pCv2ry5cowvB2/8iosq5YraWHw7JCxLyaAWZPoUrilMaRMKo8WwpQv0z2AXqnLzLA42H5gKEVcTuM76RfDtpVrzh9b5oTp0e5SI+Topy78hAzFm6QqRMN2gugNYLH0EoHF6Pyw3vm+OYQMRlwPpCd+sAep/WQ1OPGZZ13lO0ugpE0+m1xGRbdNKe67wzTN3Nouw3yfw03WH+nrnqUAnEul5YOXA5o20L4SnAiXjoX6f7Pm6RIeBl14EGe4a8VLad4UnvZTwysxR2DtOumEiUOpliLi7FWNb2vOEK4QQnnyoIav+Ko9XhGbUF1gZ7tWKcVBLX+T05HkOGmn0iA4WjsW9Ww6ny3WiTAjhyd41WWfGrv4sAof7t/l+ppGJlFeR7oBVr4kF2BYP0oYjDxsZpjuTsQDHsXjAUYxrrwwe9gGWRRRZ3CcA)}:root,[data-theme]{background-color:var(--root-bg,var(--color-base-100));color:var(--color-base-content)}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E")}@property --radialprogress{syntax: ""; inherits: true; initial-value: 0%;}:root{scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab,red,red)){:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000)#0000}}:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked,.drawer:not([class*=drawer-open])>.drawer-toggle:checked){overflow:hidden}:where(:root),:root:has(input.theme-controller[value=custom-winter]:checked),[data-theme=custom-winter]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97.466% .011 259.822);--color-base-300:oklch(93.268% .016 262.751);--color-base-content:oklch(41.886% .053 255.824);--color-primary:oklch(56.86% .255 257.57);--color-primary-content:oklch(100% .051 257.57);--color-secondary:oklch(42.551% .161 282.339);--color-secondary-content:oklch(88.51% .032 282.339);--color-accent:oklch(59.939% .191 335.171);--color-accent-content:oklch(11.988% .038 335.171);--color-neutral:oklch(19.616% .063 257.651);--color-neutral-content:oklch(83.923% .012 257.651);--color-info:oklch(88.127% .085 214.515);--color-info-content:oklch(17.625% .017 214.515);--color-success:oklch(80.494% .077 197.823);--color-success-content:oklch(16.098% .015 197.823);--color-warning:oklch(89.172% .045 71.47);--color-warning-content:oklch(17.834% .009 71.47);--color-error:oklch(73.092% .11 20.076);--color-error-content:oklch(14.618% .022 20.076);--radius-selector:2rem;--radius-field:2rem;--radius-box:2rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:1}}@layer components;@layer utilities{.diff{webkit-user-select:none;-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.diff:focus-visible,.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}.diff:focus-visible .diff-resizer{min-width:90cqi;max-width:90cqi}.diff:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px}.diff:has(.diff-item-2:focus-visible) .diff-resizer{min-width:10cqi;max-width:10cqi}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff:focus .diff-resizer{min-width:10cqi;max-width:10cqi}.diff:has(.diff-item-1:focus) .diff-resizer{min-width:90cqi;max-width:90cqi}}.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.modal::backdrop{display:none}.modal.modal-open,.modal[open],.modal:target{pointer-events:auto;visibility:visible;opacity:1;background-color:#0006}:is(.modal.modal-open,.modal[open],.modal:target) .modal-box{opacity:1;translate:0;scale:1}@starting-style{.modal.modal-open,.modal[open],.modal:target{visibility:hidden;opacity:0}}.tooltip{--tt-bg:var(--color-neutral);--tt-off: calc(100% + .5rem) ;--tt-tail: calc(100% + 1px + .25rem) ;display:inline-block;position:relative}.tooltip>:where(.tooltip-content),.tooltip:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))>.tooltip-content,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))[data-tip]:before,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible)):after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}.tooltip:after{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}.tab{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media (hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));order:var(--tab-order);height:var(--tab-height);border-color:#0000;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{content:attr(aria-label)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;position:absolute;top:0;right:0;bottom:0;left:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true]))+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px #00000003,inset 0 -1px #ffffff03}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth)*3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li).menu-disabled{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(summary):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dropdown>:not(summary):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover],.dropdown .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:95%}}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within) .dropdown-content{opacity:1}.dropdown.dropdown-hover:hover .dropdown-content{opacity:1;scale:100%}.dropdown:is(details) summary::-webkit-details-marker{display:none}:is(.dropdown.dropdown-open,.dropdown:focus,.dropdown:focus-within) .dropdown-content{scale:100%}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}.dropdown[popover]:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%)) inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab,red,red)){.btn{--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg),0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000)}}.btn{--btn-noise:var(--fx-noise)}.prose .btn{text-decoration-line:none}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}}.btn:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0)}.btn:is(:disabled,[disabled],.btn-disabled):not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled):not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn:is(:disabled,[disabled],.btn-disabled):not(.btn-link,.btn-ghost){box-shadow:none}.btn:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled){--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}@media (hover:hover){.btn:is(:disabled,[disabled],.btn-disabled):hover{pointer-events:none;background-color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled):hover{background-color:color-mix(in oklab,var(--color-neutral)20%,transparent)}}.btn:is(:disabled,[disabled],.btn-disabled):hover{--btn-border:#0000;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled):hover{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.btn:is(input[type=checkbox],input[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type=checkbox],input[type=radio]):after{content:attr(aria-label)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.\!loading{pointer-events:none!important;aspect-ratio:1!important;vertical-align:middle!important;width:calc(var(--size-selector,.25rem)*6)!important;background-color:currentColor!important;display:inline-block!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;-webkit-mask-position:50%!important;mask-position:50%!important;-webkit-mask-size:100%!important;mask-size:100%!important;-webkit-mask-repeat:no-repeat!important;mask-repeat:no-repeat!important}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem)*6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.list{flex-direction:column;font-size:.875rem;display:flex}.list :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}.list :where(.list-row):has(.list-col-grow:first-child){--list-grid-cols:1fr}.list :where(.list-row):has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row) :not(.list-col-wrap){grid-row-start:1}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab,red,red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab,var(--color-base-content)5%,transparent)}}.toast{translate:var(--toast-x,0)var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}.toast>*{animation:.25s ease-out toast}.toast:where(.toast-start){--toast-x:0;inset-inline:1rem auto}.toast:where(.toast-center){--toast-x:-50%;inset-inline:50%}.toast:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}.toast:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}.toast:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}.toast:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}.input{cursor:text;border:var(--border)solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.input{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.input{--size:calc(var(--size-field,.25rem)*10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.input:where(input){display:inline-flex}.input :where(input){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-block}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}.input:has(>input[disabled]),.input:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]){box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}.table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead,tfoot){color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot){border-top:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.tabs-border .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative}.tabs-border .tab:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}:is(.tabs-border .tab:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-border .tab:is(input:checked),.tabs-border .tab:is(label:has(:checked))):before{--tab-border-color:currentColor;border-top:3px solid}.select{border:var(--border)solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.select{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.select{--size:calc(var(--size-field,.25rem)*10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}.select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}.select:has(>select[disabled]),.select:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card:where(.card-border){border:var(--border)solid var(--color-base-200)}.card:where(.card-dash){border:var(--border)dashed var(--color-base-200)}.card.image-full{display:grid}.card.image-full>*{grid-row-start:1;grid-column-start:1}.card.image-full>.card-body{color:var(--color-neutral-content);position:relative}.card.image-full :where(figure){border-radius:inherit;overflow:hidden}.card.image-full>figure img{object-fit:cover;filter:brightness(28%);height:100%}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.avatar{vertical-align:middle;display:inline-flex;position:relative}.avatar>div{aspect-ratio:1;display:block;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.checkbox{border:var(--border)solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0 3px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox:checked,.checkbox[aria-checked=true]{box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}.checkbox:disabled{cursor:not-allowed;opacity:.2}.radio{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab,red,red)){.radio{border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000))}}.radio{box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem;outline:.25rem solid}}.radio:disabled{cursor:not-allowed;opacity:.2}.rating{vertical-align:middle;display:inline-flex;position:relative}.rating input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none}.rating :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating}.rating :where(*):is(input){cursor:pointer}.rating .rating-hidden{background-color:#0000;width:.5rem}.rating input[type=radio]:checked{background-image:none}.rating :checked,.rating [aria-checked=true],.rating [aria-current=true],.rating :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}.rating :focus-visible{transition:scale .2s ease-out;scale:1.1}.rating :active:focus{animation:none;scale:1.1}.rating.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}.rating.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}.rating.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}.rating.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}.rating.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.tooltip-bottom>.tooltip-content,.tooltip-bottom[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}.tooltip-bottom:after{transform:translate(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translate(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translate(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.inset-0{inset:calc(var(--spacing)*0)}.dropdown-center{--anchor-h:center}.dropdown-center :where(.dropdown-content){inset-inline-end:50%;translate:50%}[dir=rtl] :is(.dropdown-center :where(.dropdown-content)){translate:-50%}.dropdown-center.dropdown-left{--anchor-h:left;--anchor-v:center}.dropdown-center.dropdown-left .dropdown-content{top:auto;bottom:50%;translate:0 50%}.dropdown-center.dropdown-right{--anchor-h:right;--anchor-v:center}.dropdown-center.dropdown-right .dropdown-content{top:auto;bottom:50%;translate:0 50%}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}.dropdown-top{--anchor-v:top}.dropdown-top .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}.center-absolute{--tw-translate-x: -50% ;--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y);top:50%;left:50%}.\!top-15{top:calc(var(--spacing)*15)!important}.-top-4{top:calc(var(--spacing)*-4)}.-top-15{top:calc(var(--spacing)*-15)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-8{top:calc(var(--spacing)*8)}.top-10{top:calc(var(--spacing)*10)}.top-\[50\%\]{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.-right-2{right:calc(var(--spacing)*-2)}.-right-4{right:calc(var(--spacing)*-4)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-5{right:calc(var(--spacing)*5)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.-bottom-4\.5{bottom:calc(var(--spacing)*-4.5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-1{bottom:calc(var(--spacing)*1)}.bottom-3{bottom:calc(var(--spacing)*3)}.bottom-5{bottom:calc(var(--spacing)*5)}.-left-1{left:calc(var(--spacing)*-1)}.-left-2{left:calc(var(--spacing)*-2)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-3{left:calc(var(--spacing)*3)}.left-\[50\%\]{left:50%}.left-full{left:100%}.textarea{border:var(--border)solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem}@supports (color:color-mix(in lab,red,red)){.textarea{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.textarea textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.isolate{isolation:isolate}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-100{z-index:100}.tab-content{order:var(--tabcontent-order);--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px #00000040}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.divider{--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.number-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-input[type=number]{-moz-appearance:textfield}.m-1{margin:calc(var(--spacing)*1)}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-0\.5{margin-inline:calc(var(--spacing)*.5)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-6{margin-block:calc(var(--spacing)*6)}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.label{color:color-mix(in oklab,currentColor 60%,transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px rgb(var(--tw-prose-kbd-shadows)/10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-10{margin-top:calc(var(--spacing)*10)}.mt-18{margin-top:calc(var(--spacing)*18)}.mt-20{margin-top:calc(var(--spacing)*20)}.mr-0\.5{margin-right:calc(var(--spacing)*.5)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-4{margin-right:calc(var(--spacing)*4)}.fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab,red,red)){.status{background-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab,red,red)){.status{color:#0000004d}@supports (color:color-mix(in lab,red,red)){.status{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.status{background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab,red,red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid var(--color-base-content);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.kbd{border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000)}}.kbd{border-bottom:calc(var(--border) + 1px)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.kbd{border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000)}}.kbd{--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);font-size:.875rem}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px #000,0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab,red,red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.alert.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}.alert.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}.alert.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert.alert-soft{background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100))}}.alert.alert-soft{border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert.alert-soft{border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100))}}.alert.alert-soft{box-shadow:none;background-image:none}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex}.join :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0)}.join :where(.join-item) *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join>.join-item:where(:first-child),.join :first-child:not(:last-child) :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.join>.join-item:where(:last-child),.join :last-child:not(:first-child) :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.join>.join-item:where(:only-child),.join :only-child :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:root .prose{--tw-prose-body:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-body:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose{--tw-prose-headings:var(--color-base-content);--tw-prose-lead:var(--color-base-content);--tw-prose-links:var(--color-base-content);--tw-prose-bold:var(--color-base-content);--tw-prose-counters:var(--color-base-content);--tw-prose-bullets:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-bullets:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-hr:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-hr:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-quotes:var(--color-base-content);--tw-prose-quote-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-quote-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-captions:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-captions:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-code:var(--color-base-content);--tw-prose-pre-code:var(--color-neutral-content);--tw-prose-pre-bg:var(--color-neutral);--tw-prose-th-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-th-borders:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-td-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-td-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-kbd:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-kbd:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose :where(code):not(pre>code){background-color:var(--color-base-200);border-radius:var(--radius-selector);border:var(--border)solid var(--color-base-300);font-weight:inherit;padding-inline:.5em}:root .prose :where(code):not(pre>code):before,:root .prose :where(code):not(pre>code):after{display:none}.mask{vertical-align:middle;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.size-0{width:calc(var(--spacing)*0);height:calc(var(--spacing)*0)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-4\.5{width:calc(var(--spacing)*4.5);height:calc(var(--spacing)*4.5)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-5\.5{width:calc(var(--spacing)*5.5);height:calc(var(--spacing)*5.5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-11{width:calc(var(--spacing)*11);height:calc(var(--spacing)*11)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-13{width:calc(var(--spacing)*13);height:calc(var(--spacing)*13)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.size-15{width:calc(var(--spacing)*15);height:calc(var(--spacing)*15)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.size-20{width:calc(var(--spacing)*20);height:calc(var(--spacing)*20)}.size-26{width:calc(var(--spacing)*26);height:calc(var(--spacing)*26)}.size-30{width:calc(var(--spacing)*30);height:calc(var(--spacing)*30)}.size-32{width:calc(var(--spacing)*32);height:calc(var(--spacing)*32)}.size-52{width:calc(var(--spacing)*52);height:calc(var(--spacing)*52)}.size-\[95\%\]{width:95%;height:95%}.size-full{width:100%;height:100%}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11\/12{height:91.6667%}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-72{height:calc(var(--spacing)*72)}.h-96{height:calc(var(--spacing)*96)}.h-\[90\%\]{height:90%}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-11\/12{max-height:91.6667%}.max-h-\[70vh\]{max-height:70vh}.max-h-\[97\%\]{max-height:97%}.max-h-\[300px\]{max-height:300px}.loading-lg{width:calc(var(--size-selector,.25rem)*7)}.loading-md{width:calc(var(--size-selector,.25rem)*6)}.loading-xl{width:calc(var(--size-selector,.25rem)*8)}.loading-xs{width:calc(var(--size-selector,.25rem)*4)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-11\/12{width:91.6667%}.w-16{width:calc(var(--spacing)*16)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-44{width:calc(var(--spacing)*44)}.w-46{width:calc(var(--spacing)*46)}.w-52{width:calc(var(--spacing)*52)}.w-70{width:calc(var(--spacing)*70)}.w-\[min\(100vw-24px\,400px\)\]{width:min(100vw - 24px,400px)}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-16{max-width:calc(var(--spacing)*16)}.max-w-54{max-width:calc(var(--spacing)*54)}.max-w-74{max-width:calc(var(--spacing)*74)}.max-w-\[1920px\]{max-width:1920px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-10{min-width:calc(var(--spacing)*10)}.grow{flex-grow:1}.translate-1\/2{--tw-translate-x: 50% ;--tw-translate-y: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.\!-translate-y-1\/2{--tw-translate-y: -50% !important;translate:var(--tw-translate-x)var(--tw-translate-y)!important}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-\[3\]{scale:3}.rotate-\[215deg\]{rotate:215deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media (prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg,#0000 0% 40%,var(--color-base-100)50%,#0000 60% 100%);background-position-x:-50%;background-repeat:no-repeat;background-size:200%;animation:1.8s ease-in-out infinite skeleton}.animate-bounce{animation:var(--animate-bounce)}.animate-caret-blink{animation:1.25s ease-out infinite caret-blink}.animate-pulse{animation:var(--animate-pulse)}.highlight-link a{cursor:pointer;color:var(--color-primary);text-decoration-line:none}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-eraser{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC) 2 14,default}.cursor-not-allowed{cursor:not-allowed}.cursor-pencil{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC) 8 8,default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-\[350px_1fr\]{grid-template-columns:350px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05)) inset;padding:.25rem}.tabs-box .tab{border-radius:var(--radius-field);border-style:none}.tabs-box .tab:focus-visible,.tabs-box .tab:is(label:has(:checked:focus-visible)){outline-offset:2px}.tabs-box>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px 1px -1px var(--color-neutral),0 1px 6px -4px var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.tabs-box>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000)}}@media (forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){border:1px solid}}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-box{border-radius:var(--radius-box)}.rounded-field{border-radius:var(--radius-field)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-6{border-style:var(--tw-border-style);border-width:6px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.badge-soft{color:var(--badge-color,var(--color-base-content));background-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100))}}.badge-soft{border-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100))}}.badge-soft{background-image:none}.border-base-200{border-color:var(--color-base-200)}.border-base-300{border-color:var(--color-base-300)}.border-base-content\/10{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/10{border-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.border-base-content\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/20{border-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.border-base-content\/30{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/30{border-color:color-mix(in oklab,var(--color-base-content)30%,transparent)}}.border-black{border-color:var(--color-black)}.border-primary{border-color:var(--color-primary)}.\!bg-black\/80{background-color:#000c!important}@supports (color:color-mix(in lab,red,red)){.\!bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)!important}}.\!bg-black\/90{background-color:#000000e6!important}@supports (color:color-mix(in lab,red,red)){.\!bg-black\/90{background-color:color-mix(in oklab,var(--color-black)90%,transparent)!important}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-base-100,.bg-base-100\/60{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/60{background-color:color-mix(in oklab,var(--color-base-100)60%,transparent)}}.bg-base-100\/70{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/70{background-color:color-mix(in oklab,var(--color-base-100)70%,transparent)}}.bg-base-200{background-color:var(--color-base-200)}.bg-base-300{background-color:var(--color-base-300)}.bg-base-content\/10{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/10{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.bg-base-content\/20{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/20{background-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.bg-base-content\/80{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/80{background-color:color-mix(in oklab,var(--color-base-content)80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500)10%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab,var(--color-fuchsia-500)10%,transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/10{background-color:color-mix(in oklab,var(--color-indigo-500)10%,transparent)}}.bg-lime-500\/10{background-color:#80cd001a}@supports (color:color-mix(in lab,red,red)){.bg-lime-500\/10{background-color:color-mix(in oklab,var(--color-lime-500)10%,transparent)}}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500)10%,transparent)}}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/10{background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500)10%,transparent)}}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500)10%,transparent)}}.loading-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E")}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.fill-blue-800{fill:var(--color-blue-800)}.fill-primary{fill:var(--color-primary)}.fill-red-400{fill:var(--color-red-400)}.checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.radio-sm{padding:.1875rem}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-\[5px\]{padding-inline:5px}.py-0{padding-block:calc(var(--spacing)*0)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-20{padding-top:calc(var(--spacing)*20)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-12\!{padding-left:calc(var(--spacing)*12)!important}.text-center{text-align:center}.text-start{text-align:start}.font-flag{font-family:"Noto Color Emoji","Geist",var(--font-sans)}.font-pixel{font-family:"Pixelify Sans",var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-base-content,.text-base-content\/20{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/20{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.text-base-content\/50{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/50{color:color-mix(in oklab,var(--color-base-content)50%,transparent)}}.text-base-content\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/60{color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.text-base-content\/80{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/80{color:color-mix(in oklab,var(--color-base-content)80%,transparent)}}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-cyan-500{color:var(--color-cyan-500)}.text-emerald-500{color:var(--color-emerald-500)}.text-error{color:var(--color-error)}.text-fuchsia-500{color:var(--color-fuchsia-500)}.text-green-500{color:var(--color-green-500)}.text-indigo-500{color:var(--color-indigo-500)}.text-lime-500{color:var(--color-lime-500)}.text-orange-500{color:var(--color-orange-500)}.text-pink-500{color:var(--color-pink-500)}.text-primary{color:var(--color-primary)}.text-primary-content{color:var(--color-primary-content)}.text-primary\/80{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-rose-500{color:var(--color-rose-500)}.text-secondary{color:var(--color-secondary)}.text-sky-500{color:var(--color-sky-500)}.text-teal-500{color:var(--color-teal-500)}.text-violet-500{color:var(--color-violet-500)}.text-warning-content{color:var(--color-warning-content)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.underline{text-decoration-line:underline}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-base-content\/40{--tw-ring-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.ring-base-content\/40{--tw-ring-color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}.ring-primary{--tw-ring-color:var(--color-primary)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible):not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}@media (hover:none){.btn-ghost:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-1000{--tw-duration:1s;transition-duration:1s}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}@media (hover:none){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}}.indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%}[dir=rtl] .indicator-center{--indicator-x:50%}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.pixelated{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.select-none{-webkit-user-select:none;user-select:none}.input-error,.input-error:focus,.input-error:focus-within,.textarea-error,.textarea-error:focus,.textarea-error:focus-within{--input-color:var(--color-error)}.not-hover\:text-error:not(:hover){color:var(--color-error)}@media not all and (hover:hover){.not-hover\:text-error{color:var(--color-error)}}@media not all and (pointer:coarse){.not-touchscreen\:hidden{display:none}.not-touchscreen\:-translate-x-\[10\%\]{--tw-translate-x: -10% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media not all and (display-mode:standalone){.not-pwa\:hidden{display:none}}.not-stuck\:border-transparent:not(.stuck){border-color:#0000}.peer-focus\:block:is(:where(.peer):focus~*){display:block}.before\:-translate-x-1\/3:before{content:var(--tw-content);--tw-translate-x:calc(calc(1/3*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@media (hover:hover){.hover\:opacity-100:hover{opacity:1}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled,.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:var(--color-accent)}.aria-selected\:bg-base-300[aria-selected=true]{background-color:var(--color-base-300)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media not all and (min-width:400px){.max-\[400px\]\:hidden{display:none}}@media not all and (min-width:380px){.max-\[380px\]\:px-3{padding-inline:calc(var(--spacing)*3)}}@media not all and (min-width:80rem){.max-xl\:before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.max-xl\:before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media not all and (min-width:64rem){.max-lg\:pointer-events-none{pointer-events:none}.max-lg\:invisible{visibility:hidden}}@media not all and (min-width:40rem){.max-sm\:absolute{position:absolute}.max-sm\:dropdown-left{--anchor-h:left;--anchor-v:span-bottom}.max-sm\:dropdown-left .dropdown-content{transform-origin:100%;inset-inline-end:100%;top:0;bottom:auto}.max-sm\:dropdown-top{--anchor-v:top}.max-sm\:dropdown-top .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}.max-sm\:bottom-4{bottom:calc(var(--spacing)*4)}.max-sm\:mt-1{margin-top:calc(var(--spacing)*1)}.max-sm\:mt-4{margin-top:calc(var(--spacing)*4)}.max-sm\:ml-2{margin-left:calc(var(--spacing)*2)}.max-sm\:hidden{display:none}.max-sm\:size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.max-sm\:size-full{width:100%;height:100%}.max-sm\:h-6{height:calc(var(--spacing)*6)}.max-sm\:h-10{height:calc(var(--spacing)*10)}.max-sm\:w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.max-sm\:max-w-32{max-width:calc(var(--spacing)*32)}.max-sm\:overflow-hidden{overflow:hidden}.max-sm\:overflow-x-hidden{overflow-x:hidden}.max-sm\:rounded-md{border-radius:var(--radius-md)}.max-sm\:rounded-none{border-radius:0}.max-sm\:px-1{padding-inline:calc(var(--spacing)*1)}.max-sm\:px-3{padding-inline:calc(var(--spacing)*3)}.max-sm\:px-4{padding-inline:calc(var(--spacing)*4)}.max-sm\:py-5{padding-block:calc(var(--spacing)*5)}.max-sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.max-sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.max-sm\:tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6)}.max-sm\:tabs-xs :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}.max-sm\:before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.max-sm\:before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media (min-width:40rem){.sm\:right-4{right:calc(var(--spacing)*4)}.sm\:left-1\/2{left:50%}.sm\:mt-\[1px\]{margin-top:1px}.sm\:mb-3{margin-bottom:calc(var(--spacing)*3)}.min-sm\:hidden{display:none}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.sm\:size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.sm\:size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.sm\:h-11\/12{height:91.6667%}.sm\:h-14{height:calc(var(--spacing)*14)}.sm\:h-\[min\(100\%\,_55vw\)\]{height:min(100%,55vw)}.sm\:max-h-11\/12{max-height:91.6667%}.sm\:max-w-5xl{max-width:var(--container-5xl)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:min-w-34{min-width:calc(var(--spacing)*34)}.sm\:grow{flex-grow:1}.sm\:-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-16{grid-template-columns:repeat(16,minmax(0,1fr))}.sm\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-1{gap:calc(var(--spacing)*1)}.sm\:gap-3{gap:calc(var(--spacing)*3)}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:overflow-x-hidden{overflow-x:hidden}.sm\:rounded-b-box{border-bottom-right-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.sm\:pb-3{padding-bottom:calc(var(--spacing)*3)}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.sm\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.sm\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.sm\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}@media (min-width:48rem){.md\:max-w-lg{max-width:var(--container-lg)}.md\:grid-cols-16{grid-template-columns:repeat(16,minmax(0,1fr))}}@media (min-width:64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:80rem){.xl\:grid-cols-32{grid-template-columns:repeat(32,minmax(0,1fr))}.xl\:before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.xl\:before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media (min-width:100rem){.min-\[100rem\]\:grid-cols-32{grid-template-columns:repeat(32,minmax(0,1fr))}}@media (pointer:coarse){.touchscreen\:hidden{display:none}}@media (display-mode:standalone){.pwa\:hidden{display:none}}.stuck\:border-base-content\/10.stuck{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.stuck\:border-base-content\/10.stuck{border-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.\[\&_\[data-command-group\]\]\:px-2 [data-command-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[data-command-group\]\:not\(\[hidden\]\)_\~\[data-command-group\]\]\:pt-0 [data-command-group]:not([hidden])~[data-command-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[data-command-input-wrapper\]_svg\]\:h-5 [data-command-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[data-command-input-wrapper\]_svg\]\:w-5 [data-command-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[data-command-input\]\]\:h-12 [data-command-input]{height:calc(var(--spacing)*12)}.\[\&_\[data-command-item\]\]\:px-2 [data-command-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[data-command-item\]\]\:py-3 [data-command-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[data-command-item\]_svg\]\:h-5 [data-command-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[data-command-item\]_svg\]\:w-5 [data-command-item] svg{width:calc(var(--spacing)*5)}.\[\&_input\]\:disabled\:cursor-not-allowed input:disabled{cursor:not-allowed}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@keyframes progress{50%{background-position-x:-115%}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes dropdown{0%{opacity:0}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}} diff --git a/frontend-backup/_app/immutable/assets/0.DQCxyt33.css b/frontend-backup/_app/immutable/assets/0.DQCxyt33.css deleted file mode 100644 index ba2970e..0000000 --- a/frontend-backup/_app/immutable/assets/0.DQCxyt33.css +++ /dev/null @@ -1 +0,0 @@ -html[dir=ltr],[data-sonner-toaster][dir=ltr]{--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}html[dir=rtl],[data-sonner-toaster][dir=rtl]{--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}@media (hover: none) and (pointer: coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translate(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-y-position=top]{top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px #0006}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:#00000014}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:#ffffff4d}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]:before{content:"";position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]:before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]:before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]:after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y: translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y: translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y: translateY( calc(var(--lift) * var(--offset) + var(--lift) * -100%) );opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]:before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 87%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 93%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 84%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 43%, 17%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 9%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;top:0;right:0;bottom:0;left:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-content:"";--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-lime-500:oklch(76.8% .233 130.85);--color-green-100:oklch(96.2% .044 156.743);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-500:oklch(62.7% .265 303.9);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-500:oklch(65.6% .241 354.308);--color-rose-500:oklch(64.5% .246 16.439);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-widest:.1em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{color-scheme:light only;--version:1.13}html,body{height:100%}*{overscroll-behavior:contain;touch-action:manipulation}.maplibregl-ctrl-bottom-right{z-index:1;height:max-content;top:0;left:0;right:unset!important}.maplibregl-ctrl-attrib.maplibregl-compact{margin:10px 80px 10px 12px!important}#map canvas{cursor:default}body{background-color:var(--color-base-100);font-family:"Geist",var(--font-sans)}input:focus,textarea:focus,label:has(:focus){outline-style:var(--tw-outline-style)!important;outline-width:0!important}button,a{cursor:pointer}@supports selector(:-moz-focusring){:root{--fx-noise:none!important}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./Geist-cyrillic.CHSlOQsW.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./Geist-latin-ext.DMtmJ5ZE.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./Geist-latin.Dg_dQHbK.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./GeistMono-cyrillic.BZdD_g9V.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./GeistMono-latin-ext.b6lpi8_2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./GeistMono-latin.Cjtb1TV-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(./PixelifySans-cyrillic.CPPz0Qvd.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(./PixelifySans-cyrillic.CPPz0Qvd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(./PixelifySans-latin.vdc2vUDH.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Color Emoji;font-style:normal;font-weight:400;font-display:swap;src:url(./NotoColorEmoji-flags.ClvgErYz.woff2)format("woff2");unicode-range:U+1F1E6-1F1FF}.iti{--iti-path-flags-1x:url(./flags.a2kmUSbF.webp);--iti-path-flags-2x:url(./flags@2x.gR6KPp3x.webp);--iti-path-globe-1x:url(data:image/webp;base64,UklGRvoBAABXRUJQVlA4TO4BAAAvE8AEENXIkiRZtZu7H33ql07cqTlilvbz9i4tosSMZma27zWzHRGyIEk2bcu2bdvGn23btm3btm3btm0/m5PqAEkLTYYwxTPAW84Tl6wNgmvIqptKKH9nYAr4xle+TML/BDI2LSg6QHKT/nngE4+ZMIUePUGeTvly+YoV8F1DtkGUzlfst2LUKTX6PaWZeMWiDqN6PgcciGa2boYPmxlR5bIIL5l6RVyDYMXmY1f10pGb7PmAN6sRTBTN3N9C9Zi/LbVhlL+Oo2M7RxoE/a4+/nDjeBrSVwtGYXGGMIrUbJzCU1LgFftP9K1hkpOXmBim30cIJ1hgOkSwMhYCMgmaw7rXcfT5/wQcFhrcuaOEBuq5ytYblLPBEhV0Aq/ZqcDn/6RUDgrUL0/0UZgK/p+rR8/4nZAqFfuXA6TbtFQyJSe4gpj6T19a5q+HLEkox0mlWXvbIGbuJw28fkozjybhT5oXHNY4py5rH1CflcyeB1fId9wXDAvFmz/8m6AE/8TgYzEVGoRMCKUhND7PQho7jGo1utkdV559cm3llGFs3sxBZrmGbEExop91jyfg5G7BmCCi6evNaSDFBrG3vyaRNzt+HJ9kQpVbgj+xFUoNgr3abxqGfH3WfQq9lp5UZPRW74ZbFgpq+EGo67dUAQ==);--iti-path-globe-2x:url(data:image/webp;base64,UklGRlwFAABXRUJQVlA4TE8FAAAvJ8AJEEfHKJIkKdmcgvjj3wwill7QwKhtJEnOnIDmv/zJLAdGbSNJcuYENP/lT2Y5OGwjSZHmtL3wTFl9tp8SM/9xz47Ctm2b7mnwDggKFNd77jgHyxhIYVvLQBDEHEBKRQBIOXzQpAhiBQCIAMaIAACHhAQHIMFhhRkSRt1hlRIYDAZDhiE3CVrBS2gFkZGRYdA6mjQQBYAv6yOZSVAQCoPWMCWBIBQKwtCCUBANFARBlChBfPCG/dZUjxJECYJQECU+KGFQEC1YdN/NSUNRTDm4osQBGUwFjDFCBOYRo9QWxAmPlKQECRERMbVLCZapZ0owSrnz3hb6/P8auL9vAwr7/xeS5EV9q2sWU2vbtjla27Zt28akprq6a3bPtm2np87eJIvePUzd9fvoXkT0fwK4Vwdo8t6qyQW+O7Tn4k7NAdvi/jMR0fGpwhglhZBKm3B0pzvg3JcDrUuMEn7SDaUIRTLhhqb/AbDvw+bbJToMEq5QflFfv+QhJVPxcmkm/Ih9TzZfFxk/CJUnP7zMykJqnhsqQ51M6tTv2Pdgc/GKCuKmaI96HlhVAJy4vWVWWgRSfYJ9l4jv+4aB0F15Td3kH1YW4DiMnEJHGSaFOoOdw4LxOhCqPTf0JvLys6I8Wv/9BeeuhEkZfE+UZfNSOumqT+CArgHwbBHZw+ZB00AGeiYxIKKudH2zDxg97VK7FxdO6+9Pmt3l4J/bZR58rtyEOY6dtdhcMbPh2jsyNKr3mNnDy+c8Pig0od5wGXakg7DYgYgfU5648s0fC0Ljv9SigQVrHwUafXVgmNE92zBBBeYjsHn5L6Emz/6776EnxwJUsqKADMDmq8fG/T16fujr7lhknhheLG4PPwFD15IXs2xWFWBZVj4ndDW+fDItPRncssi75Fxv/iHQQL2PDbkg4k/zP/BfgfR1axxy59PM/IYdsypZWUCUiTlck2/zTz4fm3LzqkNlxxnzW+A4fK4vkbNrIbn7bgVoKn3djQu90krrllynQ1g7v2rpjUYsfeR6tdLSaqV5w5fR6E5+k8BVT/0aqqSXDAdV4wvpCplTCJnbFTLb9dTEHjoQQiTMC7Ah3PPuwbffOfD+xP4d3s7uMGDC+wcOvrs7kVKTZ6m4EMIVfn1O61JyrnuU3EM3A3znefrp142f5cnmnDXNyXecPFYUYNt2pVUlvot//qWFDszz9aTrCuGpQVX4Wn+KAw6rCrAgw/eqLZXQVQfmXZ5QnnCF2wrwdlJ5F8DhC1MP/itRnhv+wmHji7hpT+x0tekziRw7jxUF2LZznX3xOydH3e5fVhYWO5QOlClPzYFX9EMD65P9bBHZ16fLq7dHfrlal5vO2LxuKkTcfABvjZDxwsWvf9hs7pCv2ry5cowvB2/8iosq5YraWHw7JCxLyaAWZPoUrilMaRMKo8WwpQv0z2AXqnLzLA42H5gKEVcTuM76RfDtpVrzh9b5oTp0e5SI+Topy78hAzFm6QqRMN2gugNYLH0EoHF6Pyw3vm+OYQMRlwPpCd+sAep/WQ1OPGZZ13lO0ugpE0+m1xGRbdNKe67wzTN3Nouw3yfw03WH+nrnqUAnEul5YOXA5o20L4SnAiXjoX6f7Pm6RIeBl14EGe4a8VLad4UnvZTwysxR2DtOumEiUOpliLi7FWNb2vOEK4QQnnyoIav+Ko9XhGbUF1gZ7tWKcVBLX+T05HkOGmn0iA4WjsW9Ww6ny3WiTAjhyd41WWfGrv4sAof7t/l+ppGJlFeR7oBVr4kF2BYP0oYjDxsZpjuTsQDHsXjAUYxrrwwe9gGWRRRZ3CcA)}:root,[data-theme]{background-color:var(--root-bg,var(--color-base-100));color:var(--color-base-content)}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E")}@property --radialprogress{syntax: ""; inherits: true; initial-value: 0%;}:root{scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab,red,red)){:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000)#0000}}:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked,.drawer:not([class*=drawer-open])>.drawer-toggle:checked){overflow:hidden}:where(:root),:root:has(input.theme-controller[value=custom-winter]:checked),[data-theme=custom-winter]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97.466% .011 259.822);--color-base-300:oklch(93.268% .016 262.751);--color-base-content:oklch(41.886% .053 255.824);--color-primary:oklch(56.86% .255 257.57);--color-primary-content:oklch(100% .051 257.57);--color-secondary:oklch(42.551% .161 282.339);--color-secondary-content:oklch(88.51% .032 282.339);--color-accent:oklch(59.939% .191 335.171);--color-accent-content:oklch(11.988% .038 335.171);--color-neutral:oklch(19.616% .063 257.651);--color-neutral-content:oklch(83.923% .012 257.651);--color-info:oklch(88.127% .085 214.515);--color-info-content:oklch(17.625% .017 214.515);--color-success:oklch(80.494% .077 197.823);--color-success-content:oklch(16.098% .015 197.823);--color-warning:oklch(89.172% .045 71.47);--color-warning-content:oklch(17.834% .009 71.47);--color-error:oklch(73.092% .11 20.076);--color-error-content:oklch(14.618% .022 20.076);--radius-selector:2rem;--radius-field:2rem;--radius-box:2rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:1}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(30.857% .023 264.149);--color-base-200:oklch(28.036% .019 264.182);--color-base-300:oklch(26.346% .018 262.177);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:2rem;--radius-field:2rem;--radius-box:2rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:1}}@layer components;@layer utilities{.diff{webkit-user-select:none;-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.diff:focus-visible,.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}.diff:focus-visible .diff-resizer{min-width:90cqi;max-width:90cqi}.diff:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px}.diff:has(.diff-item-2:focus-visible) .diff-resizer{min-width:10cqi;max-width:10cqi}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff:focus .diff-resizer{min-width:10cqi;max-width:10cqi}.diff:has(.diff-item-1:focus) .diff-resizer{min-width:90cqi;max-width:90cqi}}.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.modal::backdrop{display:none}.modal.modal-open,.modal[open],.modal:target{pointer-events:auto;visibility:visible;opacity:1;background-color:#0006}:is(.modal.modal-open,.modal[open],.modal:target) .modal-box{opacity:1;translate:0;scale:1}@starting-style{.modal.modal-open,.modal[open],.modal:target{visibility:hidden;opacity:0}}.tooltip{--tt-bg:var(--color-neutral);--tt-off: calc(100% + .5rem) ;--tt-tail: calc(100% + 1px + .25rem) ;display:inline-block;position:relative}.tooltip>:where(.tooltip-content),.tooltip:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))>.tooltip-content,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))[data-tip]:before,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible)):after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}.tooltip:after{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}.tab{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media (hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));order:var(--tab-order);height:var(--tab-height);border-color:#0000;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{content:attr(aria-label)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;position:absolute;top:0;right:0;bottom:0;left:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true]))+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px #00000003,inset 0 -1px #ffffff03}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth)*3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li).menu-disabled{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(summary):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dropdown>:not(summary):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover],.dropdown .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:95%}}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within) .dropdown-content{opacity:1}.dropdown.dropdown-hover:hover .dropdown-content{opacity:1;scale:100%}.dropdown:is(details) summary::-webkit-details-marker{display:none}:is(.dropdown.dropdown-open,.dropdown:focus,.dropdown:focus-within) .dropdown-content{scale:100%}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}.dropdown[popover]:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%)) inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab,red,red)){.btn{--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg),0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000)}}.btn{--btn-noise:var(--fx-noise)}.prose .btn{text-decoration-line:none}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}}.btn:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0)}.btn:is(:disabled,[disabled],.btn-disabled):not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled):not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn:is(:disabled,[disabled],.btn-disabled):not(.btn-link,.btn-ghost){box-shadow:none}.btn:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled){--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}@media (hover:hover){.btn:is(:disabled,[disabled],.btn-disabled):hover{pointer-events:none;background-color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled):hover{background-color:color-mix(in oklab,var(--color-neutral)20%,transparent)}}.btn:is(:disabled,[disabled],.btn-disabled):hover{--btn-border:#0000;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:is(:disabled,[disabled],.btn-disabled):hover{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.btn:is(input[type=checkbox],input[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type=checkbox],input[type=radio]):after{content:attr(aria-label)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.\!loading{pointer-events:none!important;aspect-ratio:1!important;vertical-align:middle!important;width:calc(var(--size-selector,.25rem)*6)!important;background-color:currentColor!important;display:inline-block!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;-webkit-mask-position:50%!important;mask-position:50%!important;-webkit-mask-size:100%!important;mask-size:100%!important;-webkit-mask-repeat:no-repeat!important;mask-repeat:no-repeat!important}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem)*6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.list{flex-direction:column;font-size:.875rem;display:flex}.list :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}.list :where(.list-row):has(.list-col-grow:first-child){--list-grid-cols:1fr}.list :where(.list-row):has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row):has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list :where(.list-row) :not(.list-col-wrap){grid-row-start:1}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab,red,red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab,var(--color-base-content)5%,transparent)}}.toast{translate:var(--toast-x,0)var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}.toast>*{animation:.25s ease-out toast}.toast:where(.toast-start){--toast-x:0;inset-inline:1rem auto}.toast:where(.toast-center){--toast-x:-50%;inset-inline:50%}.toast:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}.toast:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}.toast:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}.toast:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}.input{cursor:text;border:var(--border)solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.input{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.input{--size:calc(var(--size-field,.25rem)*10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.input:where(input){display:inline-flex}.input :where(input){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-block}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}.input:has(>input[disabled]),.input:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]){box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}.table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead,tfoot){color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot){border-top:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.tabs-border .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative}.tabs-border .tab:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}:is(.tabs-border .tab:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-border .tab:is(input:checked),.tabs-border .tab:is(label:has(:checked))):before{--tab-border-color:currentColor;border-top:3px solid}.select{border:var(--border)solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.select{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.select{--size:calc(var(--size-field,.25rem)*10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}.select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}.select:has(>select[disabled]),.select:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card:where(.card-border){border:var(--border)solid var(--color-base-200)}.card:where(.card-dash){border:var(--border)dashed var(--color-base-200)}.card.image-full{display:grid}.card.image-full>*{grid-row-start:1;grid-column-start:1}.card.image-full>.card-body{color:var(--color-neutral-content);position:relative}.card.image-full :where(figure){border-radius:inherit;overflow:hidden}.card.image-full>figure img{object-fit:cover;filter:brightness(28%);height:100%}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.avatar{vertical-align:middle;display:inline-flex;position:relative}.avatar>div{aspect-ratio:1;display:block;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.checkbox{border:var(--border)solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0 3px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox:checked,.checkbox[aria-checked=true]{box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}.checkbox:disabled{cursor:not-allowed;opacity:.2}.radio{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab,red,red)){.radio{border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000))}}.radio{box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem;outline:.25rem solid}}.radio:disabled{cursor:not-allowed;opacity:.2}.rating{vertical-align:middle;display:inline-flex;position:relative}.rating input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none}.rating :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating}.rating :where(*):is(input){cursor:pointer}.rating .rating-hidden{background-color:#0000;width:.5rem}.rating input[type=radio]:checked{background-image:none}.rating :checked,.rating [aria-checked=true],.rating [aria-current=true],.rating :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}.rating :focus-visible{transition:scale .2s ease-out;scale:1.1}.rating :active:focus{animation:none;scale:1.1}.rating.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}.rating.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}.rating.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}.rating.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}.rating.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.tooltip-bottom>.tooltip-content,.tooltip-bottom[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}.tooltip-bottom:after{transform:translate(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translate(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translate(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.inset-0{inset:calc(var(--spacing)*0)}.dropdown-center{--anchor-h:center}.dropdown-center :where(.dropdown-content){inset-inline-end:50%;translate:50%}[dir=rtl] :is(.dropdown-center :where(.dropdown-content)){translate:-50%}.dropdown-center.dropdown-left{--anchor-h:left;--anchor-v:center}.dropdown-center.dropdown-left .dropdown-content{top:auto;bottom:50%;translate:0 50%}.dropdown-center.dropdown-right{--anchor-h:right;--anchor-v:center}.dropdown-center.dropdown-right .dropdown-content{top:auto;bottom:50%;translate:0 50%}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}.dropdown-top{--anchor-v:top}.dropdown-top .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}.center-absolute{--tw-translate-x: -50% ;--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y);top:50%;left:50%}.\!top-15{top:calc(var(--spacing)*15)!important}.-top-4{top:calc(var(--spacing)*-4)}.-top-15{top:calc(var(--spacing)*-15)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-8{top:calc(var(--spacing)*8)}.top-10{top:calc(var(--spacing)*10)}.top-\[50\%\]{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.-right-2{right:calc(var(--spacing)*-2)}.-right-4{right:calc(var(--spacing)*-4)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-5{right:calc(var(--spacing)*5)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.-bottom-4\.5{bottom:calc(var(--spacing)*-4.5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-1{bottom:calc(var(--spacing)*1)}.bottom-3{bottom:calc(var(--spacing)*3)}.bottom-5{bottom:calc(var(--spacing)*5)}.-left-1{left:calc(var(--spacing)*-1)}.-left-2{left:calc(var(--spacing)*-2)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-3{left:calc(var(--spacing)*3)}.left-\[50\%\]{left:50%}.left-full{left:100%}.textarea{border:var(--border)solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem}@supports (color:color-mix(in lab,red,red)){.textarea{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.textarea textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.isolate{isolation:isolate}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-100{z-index:100}.tab-content{order:var(--tabcontent-order);--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px #00000040}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.divider{--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.number-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-input[type=number]{-moz-appearance:textfield}.m-1{margin:calc(var(--spacing)*1)}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-0\.5{margin-inline:calc(var(--spacing)*.5)}.mx-auto{margin-inline:auto}.input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.input-xs[type=number]::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-6{margin-block:calc(var(--spacing)*6)}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.label{color:color-mix(in oklab,currentColor 60%,transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.join-horizontal{flex-direction:row}.join-horizontal>.join-item:first-child,.join-horizontal :first-child:not(:last-child) .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.join-horizontal>.join-item:last-child,.join-horizontal :last-child:not(:first-child) .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.join-horizontal>.join-item:only-child,.join-horizontal :only-child .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join-horizontal .join-item:where(:not(:first-child)),.join-item:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}.join-item:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px rgb(var(--tw-prose-kbd-shadows)/10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-10{margin-top:calc(var(--spacing)*10)}.mt-18{margin-top:calc(var(--spacing)*18)}.mt-20{margin-top:calc(var(--spacing)*20)}.mr-0\.5{margin-right:calc(var(--spacing)*.5)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-4{margin-right:calc(var(--spacing)*4)}.fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab,red,red)){.status{background-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab,red,red)){.status{color:#0000004d}@supports (color:color-mix(in lab,red,red)){.status{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.status{background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab,red,red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid var(--color-base-content);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.kbd{border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000)}}.kbd{border-bottom:calc(var(--border) + 1px)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.kbd{border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000)}}.kbd{--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);font-size:.875rem}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px #000,0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab,red,red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.alert.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}.alert.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}.alert.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert.alert-soft{background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100))}}.alert.alert-soft{border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert.alert-soft{border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100))}}.alert.alert-soft{box-shadow:none;background-image:none}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex}.join :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0)}.join :where(.join-item) *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join>.join-item:where(:first-child),.join :first-child:not(:last-child) :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.join>.join-item:where(:last-child),.join :last-child:not(:first-child) :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.join>.join-item:where(:only-child),.join :only-child :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:root .prose{--tw-prose-body:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-body:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose{--tw-prose-headings:var(--color-base-content);--tw-prose-lead:var(--color-base-content);--tw-prose-links:var(--color-base-content);--tw-prose-bold:var(--color-base-content);--tw-prose-counters:var(--color-base-content);--tw-prose-bullets:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-bullets:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-hr:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-hr:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-quotes:var(--color-base-content);--tw-prose-quote-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-quote-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-captions:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-captions:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-code:var(--color-base-content);--tw-prose-pre-code:var(--color-neutral-content);--tw-prose-pre-bg:var(--color-neutral);--tw-prose-th-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-th-borders:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-td-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-td-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-kbd:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-kbd:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose :where(code):not(pre>code){background-color:var(--color-base-200);border-radius:var(--radius-selector);border:var(--border)solid var(--color-base-300);font-weight:inherit;padding-inline:.5em}:root .prose :where(code):not(pre>code):before,:root .prose :where(code):not(pre>code):after{display:none}.mask{vertical-align:middle;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.size-0{width:calc(var(--spacing)*0);height:calc(var(--spacing)*0)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-4\.5{width:calc(var(--spacing)*4.5);height:calc(var(--spacing)*4.5)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-5\.5{width:calc(var(--spacing)*5.5);height:calc(var(--spacing)*5.5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-11{width:calc(var(--spacing)*11);height:calc(var(--spacing)*11)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-13{width:calc(var(--spacing)*13);height:calc(var(--spacing)*13)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.size-15{width:calc(var(--spacing)*15);height:calc(var(--spacing)*15)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.size-20{width:calc(var(--spacing)*20);height:calc(var(--spacing)*20)}.size-26{width:calc(var(--spacing)*26);height:calc(var(--spacing)*26)}.size-30{width:calc(var(--spacing)*30);height:calc(var(--spacing)*30)}.size-32{width:calc(var(--spacing)*32);height:calc(var(--spacing)*32)}.size-52{width:calc(var(--spacing)*52);height:calc(var(--spacing)*52)}.size-\[95\%\]{width:95%;height:95%}.size-full{width:100%;height:100%}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-7{height:calc(var(--spacing)*7)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11\/12{height:91.6667%}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-72{height:calc(var(--spacing)*72)}.h-96{height:calc(var(--spacing)*96)}.h-\[75vh\]{height:75vh}.h-\[90\%\]{height:90%}.h-full{height:100%}.h-max{height:max-content}.h-px{height:1px}.h-screen{height:100vh}.max-h-11\/12{max-height:91.6667%}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-\[25vh\]{max-height:25vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[97\%\]{max-height:97%}.max-h-\[300px\]{max-height:300px}.max-h-\[360px\]{max-height:360px}.max-h-\[520px\]{max-height:520px}.min-h-\[420px\]{min-height:420px}.min-h-screen{min-height:100vh}.loading-lg{width:calc(var(--size-selector,.25rem)*7)}.loading-md{width:calc(var(--size-selector,.25rem)*6)}.loading-sm{width:calc(var(--size-selector,.25rem)*5)}.loading-xl{width:calc(var(--size-selector,.25rem)*8)}.loading-xs{width:calc(var(--size-selector,.25rem)*4)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-11\/12{width:91.6667%}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-44{width:calc(var(--spacing)*44)}.w-46{width:calc(var(--spacing)*46)}.w-52{width:calc(var(--spacing)*52)}.w-70{width:calc(var(--spacing)*70)}.w-\[90\%\]{width:90%}.w-\[min\(100vw-24px\,400px\)\]{width:min(100vw - 24px,400px)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-16{max-width:calc(var(--spacing)*16)}.max-w-54{max-width:calc(var(--spacing)*54)}.max-w-74{max-width:calc(var(--spacing)*74)}.max-w-\[1920px\]{max-width:1920px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-10{min-width:calc(var(--spacing)*10)}.grow{flex-grow:1}.translate-1\/2{--tw-translate-x: 50% ;--tw-translate-y: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.\!-translate-y-1\/2{--tw-translate-y: -50% !important;translate:var(--tw-translate-x)var(--tw-translate-y)!important}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-\[87\%\]{--tw-translate-y: -87% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-\[1\.02\]{scale:1.02}.scale-\[3\]{scale:3}.rotate-\[215deg\]{rotate:215deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media (prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg,#0000 0% 40%,var(--color-base-100)50%,#0000 60% 100%);background-position-x:-50%;background-repeat:no-repeat;background-size:200%;animation:1.8s ease-in-out infinite skeleton}.animate-bounce{animation:var(--animate-bounce)}.animate-caret-blink{animation:1.25s ease-out infinite caret-blink}.animate-pulse{animation:var(--animate-pulse)}.highlight-link a{cursor:pointer;color:var(--color-primary);text-decoration-line:none}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-eraser{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC) 2 14,default}.cursor-not-allowed{cursor:not-allowed}.cursor-pencil{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC) 8 8,default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-\[350px_1fr\]{grid-template-columns:350px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-\[8px\]{gap:8px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05)) inset;padding:.25rem}.tabs-box .tab{border-radius:var(--radius-field);border-style:none}.tabs-box .tab:focus-visible,.tabs-box .tab:is(label:has(:checked:focus-visible)){outline-offset:2px}.tabs-box>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px 1px -1px var(--color-neutral),0 1px 6px -4px var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.tabs-box>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000)}}@media (forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){border:1px solid}}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-box{border-radius:var(--radius-box)}.rounded-field{border-radius:var(--radius-field)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-6{border-style:var(--tw-border-style);border-width:6px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.badge-soft{color:var(--badge-color,var(--color-base-content));background-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100))}}.badge-soft{border-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100))}}.badge-soft{background-image:none}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.\!border-primary\/60{border-color:var(--color-primary)!important}@supports (color:color-mix(in lab,red,red)){.\!border-primary\/60{border-color:color-mix(in oklab,var(--color-primary)60%,transparent)!important}}.border-base-200{border-color:var(--color-base-200)}.border-base-300{border-color:var(--color-base-300)}.border-base-content\/10{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/10{border-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.border-base-content\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/20{border-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.border-base-content\/30{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/30{border-color:color-mix(in oklab,var(--color-base-content)30%,transparent)}}.border-black{border-color:var(--color-black)}.border-primary{border-color:var(--color-primary)}.border-red-500{border-color:var(--color-red-500)}.\!bg-base-300{background-color:var(--color-base-300)!important}.\!bg-black\/80{background-color:#000c!important}@supports (color:color-mix(in lab,red,red)){.\!bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)!important}}.\!bg-black\/90{background-color:#000000e6!important}@supports (color:color-mix(in lab,red,red)){.\!bg-black\/90{background-color:color-mix(in oklab,var(--color-black)90%,transparent)!important}}.\!bg-primary{background-color:var(--color-primary)!important}.bg-\[\#5865F2\]{background-color:#5865f2}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-base-100,.bg-base-100\/60{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/60{background-color:color-mix(in oklab,var(--color-base-100)60%,transparent)}}.bg-base-100\/70{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/70{background-color:color-mix(in oklab,var(--color-base-100)70%,transparent)}}.bg-base-200{background-color:var(--color-base-200)}.bg-base-300{background-color:var(--color-base-300)}.bg-base-content\/10{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/10{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.bg-base-content\/20{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/20{background-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.bg-base-content\/80{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/80{background-color:color-mix(in oklab,var(--color-base-content)80%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500)10%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab,var(--color-fuchsia-500)10%,transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/10{background-color:color-mix(in oklab,var(--color-indigo-500)10%,transparent)}}.bg-lime-500\/10{background-color:#80cd001a}@supports (color:color-mix(in lab,red,red)){.bg-lime-500\/10{background-color:color-mix(in oklab,var(--color-lime-500)10%,transparent)}}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500)10%,transparent)}}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/10{background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500)10%,transparent)}}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500)10%,transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500)10%,transparent)}}.loading-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E")}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.fill-blue-800{fill:var(--color-blue-800)}.fill-primary{fill:var(--color-primary)}.fill-red-400{fill:var(--color-red-400)}.checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.radio-sm{padding:.1875rem}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.table-sm :not(thead,tfoot) tr{font-size:.75rem}.table-sm :where(th,td){padding-block:.5rem;padding-inline:.75rem}.badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-\[5px\]{padding-inline:5px}.py-0{padding-block:calc(var(--spacing)*0)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-20{padding-top:calc(var(--spacing)*20)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-0\.5{padding-bottom:calc(var(--spacing)*.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-12\!{padding-left:calc(var(--spacing)*12)!important}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.font-flag{font-family:"Noto Color Emoji","Geist",var(--font-sans)}.font-mono{font-family:var(--font-mono)}.font-pixel{font-family:"Pixelify Sans",var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-primary-content{color:var(--color-primary-content)!important}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-base-content,.text-base-content\/20{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/20{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.text-base-content\/50{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/50{color:color-mix(in oklab,var(--color-base-content)50%,transparent)}}.text-base-content\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/60{color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.text-base-content\/70{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/70{color:color-mix(in oklab,var(--color-base-content)70%,transparent)}}.text-base-content\/80{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/80{color:color-mix(in oklab,var(--color-base-content)80%,transparent)}}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-cyan-500{color:var(--color-cyan-500)}.text-emerald-500{color:var(--color-emerald-500)}.text-error{color:var(--color-error)}.text-fuchsia-500{color:var(--color-fuchsia-500)}.text-green-100{color:var(--color-green-100)}.text-green-500{color:var(--color-green-500)}.text-indigo-500{color:var(--color-indigo-500)}.text-lime-500{color:var(--color-lime-500)}.text-orange-500{color:var(--color-orange-500)}.text-pink-500{color:var(--color-pink-500)}.text-primary{color:var(--color-primary)}.text-primary-content{color:var(--color-primary-content)}.text-primary\/80{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-rose-500{color:var(--color-rose-500)}.text-secondary{color:var(--color-secondary)}.text-sky-500{color:var(--color-sky-500)}.text-success{color:var(--color-success)}.text-teal-500{color:var(--color-teal-500)}.text-violet-500{color:var(--color-violet-500)}.text-warning-content{color:var(--color-warning-content)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.\!shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-base-content\/40{--tw-ring-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.ring-base-content\/40{--tw-ring-color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}.ring-primary{--tw-ring-color:var(--color-primary)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible):not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}@media (hover:none){.btn-ghost:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-1000{--tw-duration:1s;transition-duration:1s}.btn-outline:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){.btn-outline:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}@media (hover:none){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}}.indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%}[dir=rtl] .indicator-center{--indicator-x:50%}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.pixelated{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.select-none{-webkit-user-select:none;user-select:none}.input-error,.input-error:focus,.input-error:focus-within,.textarea-error,.textarea-error:focus,.textarea-error:focus-within{--input-color:var(--color-error)}.not-hover\:text-error:not(:hover){color:var(--color-error)}@media not all and (hover:hover){.not-hover\:text-error{color:var(--color-error)}}@media not all and (pointer:coarse){.not-touchscreen\:hidden{display:none}.not-touchscreen\:-translate-x-\[10\%\]{--tw-translate-x: -10% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media not all and (display-mode:standalone){.not-pwa\:hidden{display:none}}.not-stuck\:border-transparent:not(.stuck){border-color:#0000}.peer-focus\:block:is(:where(.peer):focus~*){display:block}.before\:-translate-x-1\/3:before{content:var(--tw-content);--tw-translate-x:calc(calc(1/3*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:translate-x-1\/3:before{content:var(--tw-content);--tw-translate-x:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@media (hover:hover){.hover\:bg-base-200:hover{background-color:var(--color-base-200)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:opacity-100:hover{opacity:1}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.hover\:brightness-105:hover{--tw-brightness:brightness(105%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled,.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:var(--color-accent)}.aria-selected\:bg-base-300[aria-selected=true]{background-color:var(--color-base-300)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media not all and (min-width:400px){.max-\[400px\]\:hidden{display:none}}@media not all and (min-width:380px){.max-\[380px\]\:px-3{padding-inline:calc(var(--spacing)*3)}}@media not all and (min-width:80rem){.max-xl\:before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.max-xl\:before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media not all and (min-width:64rem){.max-lg\:pointer-events-none{pointer-events:none}.max-lg\:invisible{visibility:hidden}}@media not all and (min-width:40rem){.max-sm\:absolute{position:absolute}.max-sm\:dropdown-left{--anchor-h:left;--anchor-v:span-bottom}.max-sm\:dropdown-left .dropdown-content{transform-origin:100%;inset-inline-end:100%;top:0;bottom:auto}.max-sm\:dropdown-top{--anchor-v:top}.max-sm\:dropdown-top .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}.max-sm\:bottom-4{bottom:calc(var(--spacing)*4)}.max-sm\:mt-1{margin-top:calc(var(--spacing)*1)}.max-sm\:mt-4{margin-top:calc(var(--spacing)*4)}.max-sm\:ml-2{margin-left:calc(var(--spacing)*2)}.max-sm\:hidden{display:none}.max-sm\:size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.max-sm\:size-full{width:100%;height:100%}.max-sm\:h-6{height:calc(var(--spacing)*6)}.max-sm\:h-10{height:calc(var(--spacing)*10)}.max-sm\:w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.max-sm\:max-w-32{max-width:calc(var(--spacing)*32)}.max-sm\:overflow-hidden{overflow:hidden}.max-sm\:overflow-x-hidden{overflow-x:hidden}.max-sm\:rounded-md{border-radius:var(--radius-md)}.max-sm\:rounded-none{border-radius:0}.max-sm\:px-1{padding-inline:calc(var(--spacing)*1)}.max-sm\:px-3{padding-inline:calc(var(--spacing)*3)}.max-sm\:px-4{padding-inline:calc(var(--spacing)*4)}.max-sm\:py-5{padding-block:calc(var(--spacing)*5)}.max-sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.max-sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.max-sm\:tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6)}.max-sm\:tabs-xs :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}.max-sm\:before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.max-sm\:before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media (min-width:40rem){.sm\:right-4{right:calc(var(--spacing)*4)}.sm\:left-1\/2{left:50%}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-\[1px\]{margin-top:1px}.sm\:mb-3{margin-bottom:calc(var(--spacing)*3)}.min-sm\:hidden{display:none}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.sm\:size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.sm\:size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.sm\:h-11\/12{height:91.6667%}.sm\:h-14{height:calc(var(--spacing)*14)}.sm\:h-\[min\(50vw\,85vh\)\]{height:min(50vw,85vh)}.sm\:max-h-11\/12{max-height:91.6667%}.sm\:max-w-5xl{max-width:var(--container-5xl)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:min-w-34{min-width:calc(var(--spacing)*34)}.sm\:grow{flex-grow:1}.sm\:-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:auto-cols-max{grid-auto-columns:max-content}.sm\:grid-flow-col{grid-auto-flow:column}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-16{grid-template-columns:repeat(16,minmax(0,1fr))}.sm\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-1{gap:calc(var(--spacing)*1)}.sm\:gap-3{gap:calc(var(--spacing)*3)}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:overflow-x-hidden{overflow-x:hidden}.sm\:rounded-b-box{border-bottom-right-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.sm\:pb-3{padding-bottom:calc(var(--spacing)*3)}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.sm\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.sm\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.sm\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}@media (min-width:48rem){.md\:max-w-lg{max-width:var(--container-lg)}.md\:max-w-xl{max-width:var(--container-xl)}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-16{grid-template-columns:repeat(16,minmax(0,1fr))}.md\:grid-cols-\[320px_1fr\]{grid-template-columns:320px 1fr}.md\:grid-cols-\[360px_1fr\]{grid-template-columns:360px 1fr}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:before\:-translate-x-1\/3:before{content:var(--tw-content);--tw-translate-x:calc(calc(1/3*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.lg\:before\:translate-x-1\/3:before{content:var(--tw-content);--tw-translate-x:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}}@media (min-width:80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-32{grid-template-columns:repeat(32,minmax(0,1fr))}.xl\:before\:-translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.xl\:before\:translate-x-1\/4:before{content:var(--tw-content);--tw-translate-x: 25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}}@media (min-width:100rem){.min-\[100rem\]\:grid-cols-32{grid-template-columns:repeat(32,minmax(0,1fr))}}@media (pointer:coarse){.touchscreen\:hidden{display:none}}@media (display-mode:standalone){.pwa\:hidden{display:none}}.stuck\:border-base-content\/10.stuck{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.stuck\:border-base-content\/10.stuck{border-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.\[\&_\[data-command-group\]\]\:px-2 [data-command-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[data-command-group\]\:not\(\[hidden\]\)_\~\[data-command-group\]\]\:pt-0 [data-command-group]:not([hidden])~[data-command-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[data-command-input-wrapper\]_svg\]\:h-5 [data-command-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[data-command-input-wrapper\]_svg\]\:w-5 [data-command-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[data-command-input\]\]\:h-12 [data-command-input]{height:calc(var(--spacing)*12)}.\[\&_\[data-command-item\]\]\:px-2 [data-command-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[data-command-item\]\]\:py-3 [data-command-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[data-command-item\]_svg\]\:h-5 [data-command-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[data-command-item\]_svg\]\:w-5 [data-command-item] svg{width:calc(var(--spacing)*5)}.\[\&_input\]\:disabled\:cursor-not-allowed input:disabled{cursor:not-allowed}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@keyframes progress{50%{background-position-x:-115%}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes dropdown{0%{opacity:0}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}} diff --git a/frontend-backup/_app/immutable/assets/18.BD1hRFPA.css b/frontend-backup/_app/immutable/assets/18.BD1hRFPA.css index a6aa5f1..5d5908b 100644 --- a/frontend-backup/_app/immutable/assets/18.BD1hRFPA.css +++ b/frontend-backup/_app/immutable/assets/18.BD1hRFPA.css @@ -1 +1,41 @@ -[data-custom-class=body].svelte-11vl9q8,[data-custom-class=body].svelte-11vl9q8 :where(.svelte-11vl9q8){background:transparent!important}[data-custom-class=title].svelte-11vl9q8,[data-custom-class=title].svelte-11vl9q8 :where(.svelte-11vl9q8){font-family:Arial!important;font-size:26px!important;color:#000!important}[data-custom-class=subtitle].svelte-11vl9q8,[data-custom-class=subtitle].svelte-11vl9q8 :where(.svelte-11vl9q8){font-family:Arial!important;color:#595959!important;font-size:14px!important}[data-custom-class=heading_1].svelte-11vl9q8,[data-custom-class=heading_1].svelte-11vl9q8 :where(.svelte-11vl9q8){font-family:Arial!important;font-size:19px!important;color:#000!important}[data-custom-class=heading_2].svelte-11vl9q8,[data-custom-class=heading_2].svelte-11vl9q8 :where(.svelte-11vl9q8){font-family:Arial!important;font-size:17px!important;color:#000!important}[data-custom-class=body_text].svelte-11vl9q8,[data-custom-class=body_text].svelte-11vl9q8 :where(.svelte-11vl9q8){color:#595959!important;font-size:14px!important;font-family:Arial!important}[data-custom-class=link].svelte-11vl9q8,[data-custom-class=link].svelte-11vl9q8 :where(.svelte-11vl9q8){color:#3030f1!important;font-size:14px!important;font-family:Arial!important;word-break:break-word!important} +[data-custom-class="body"].svelte-11vl9q8, +[data-custom-class="body"].svelte-11vl9q8 :where(.svelte-11vl9q8) { + background: transparent !important; +} +[data-custom-class="title"].svelte-11vl9q8, +[data-custom-class="title"].svelte-11vl9q8 :where(.svelte-11vl9q8) { + font-family: Arial !important; + font-size: 26px !important; + color: #000 !important; +} +[data-custom-class="subtitle"].svelte-11vl9q8, +[data-custom-class="subtitle"].svelte-11vl9q8 :where(.svelte-11vl9q8) { + font-family: Arial !important; + color: #595959 !important; + font-size: 14px !important; +} +[data-custom-class="heading_1"].svelte-11vl9q8, +[data-custom-class="heading_1"].svelte-11vl9q8 :where(.svelte-11vl9q8) { + font-family: Arial !important; + font-size: 19px !important; + color: #000 !important; +} +[data-custom-class="heading_2"].svelte-11vl9q8, +[data-custom-class="heading_2"].svelte-11vl9q8 :where(.svelte-11vl9q8) { + font-family: Arial !important; + font-size: 17px !important; + color: #000 !important; +} +[data-custom-class="body_text"].svelte-11vl9q8, +[data-custom-class="body_text"].svelte-11vl9q8 :where(.svelte-11vl9q8) { + color: #595959 !important; + font-size: 14px !important; + font-family: Arial !important; +} +[data-custom-class="link"].svelte-11vl9q8, +[data-custom-class="link"].svelte-11vl9q8 :where(.svelte-11vl9q8) { + color: #3030f1 !important; + font-size: 14px !important; + font-family: Arial !important; + word-break: break-word !important; +} diff --git a/frontend-backup/_app/immutable/assets/2.BtKF873c.css b/frontend-backup/_app/immutable/assets/2.BtKF873c.css deleted file mode 100644 index 6c0aa1f..0000000 --- a/frontend-backup/_app/immutable/assets/2.BtKF873c.css +++ /dev/null @@ -1 +0,0 @@ -.confetti-holder.svelte-15ksp55{position:relative}@keyframes svelte-15ksp55-rotate{0%{transform:skew(var(--skew)) rotate3d(var(--full-rotation))}to{transform:skew(var(--skew)) rotate3d(var(--rotation-xyz),calc(var(--rotation-deg) + 360deg))}}@keyframes svelte-15ksp55-translate{0%{opacity:1}8%{transform:translateY(calc(var(--translate-y) * .95)) translate(calc(var(--translate-x) * (var(--x-spread) * .9)));opacity:1}12%{transform:translateY(var(--translate-y)) translate(calc(var(--translate-x) * (var(--x-spread) * .95)));opacity:1}16%{transform:translateY(var(--translate-y)) translate(calc(var(--translate-x) * var(--x-spread)));opacity:1}to{transform:translateY(calc(var(--translate-y) + var(--fall-distance))) translate(var(--translate-x));opacity:0}}@keyframes svelte-15ksp55-no-gravity-translate{0%{opacity:1}to{transform:translateY(var(--translate-y)) translate(var(--translate-x));opacity:0}}.confetti.svelte-15ksp55{--translate-y: calc(-200px * var(--translate-y-multiplier));--translate-x: calc(200px * var(--translate-x-multiplier));position:absolute;height:calc(var(--size) * var(--scale));width:calc(var(--size) * var(--scale));animation:svelte-15ksp55-translate var(--transition-duration) var(--transition-delay) var(--transition-iteration-count) linear;opacity:0;pointer-events:none}.confetti.svelte-15ksp55:before{--full-rotation: var(--rotation-xyz), var(--rotation-deg);content:"";display:block;width:100%;height:100%;background:var(--color);background-size:contain;transform:skew(var(--skew)) rotate3d(var(--full-rotation));animation:svelte-15ksp55-rotate var(--transition-duration) var(--transition-delay) var(--transition-iteration-count) linear}.rounded.svelte-15ksp55 .confetti:where(.svelte-15ksp55):before{border-radius:50%}.cone.svelte-15ksp55 .confetti:where(.svelte-15ksp55){--translate-x: calc(200px * var(--translate-y-multiplier) * var(--translate-x-multiplier))}.no-gravity.svelte-15ksp55 .confetti:where(.svelte-15ksp55){animation-name:svelte-15ksp55-no-gravity-translate;animation-timing-function:ease-out}@media (prefers-reduced-motion){.reduced-motion.svelte-15ksp55 .confetti:where(.svelte-15ksp55),.reduced-motion.svelte-15ksp55 .confetti:where(.svelte-15ksp55):before{animation:none}}:root{--iti-hover-color:rgba(0, 0, 0, .05);--iti-border-color:#ccc;--iti-dialcode-color:#999;--iti-dropdown-bg:white;--iti-spacer-horizontal:8px;--iti-flag-height:12px;--iti-flag-width:16px;--iti-border-width:1px;--iti-arrow-height:4px;--iti-arrow-width:6px;--iti-triangle-border:calc(var(--iti-arrow-width) / 2);--iti-arrow-padding:6px;--iti-arrow-color:#555;--iti-path-flags-1x:url(flags.a2kmUSbF.webp);--iti-path-flags-2x:url(flags@2x.gR6KPp3x.webp);--iti-path-globe-1x:url(data:image/webp;base64,UklGRvoBAABXRUJQVlA4TO4BAAAvE8AEENXIkiRZtZu7H33ql07cqTlilvbz9i4tosSMZma27zWzHRGyIEk2bcu2bdvGn23btm3btm3btm0/m5PqAEkLTYYwxTPAW84Tl6wNgmvIqptKKH9nYAr4xle+TML/BDI2LSg6QHKT/nngE4+ZMIUePUGeTvly+YoV8F1DtkGUzlfst2LUKTX6PaWZeMWiDqN6PgcciGa2boYPmxlR5bIIL5l6RVyDYMXmY1f10pGb7PmAN6sRTBTN3N9C9Zi/LbVhlL+Oo2M7RxoE/a4+/nDjeBrSVwtGYXGGMIrUbJzCU1LgFftP9K1hkpOXmBim30cIJ1hgOkSwMhYCMgmaw7rXcfT5/wQcFhrcuaOEBuq5ytYblLPBEhV0Aq/ZqcDn/6RUDgrUL0/0UZgK/p+rR8/4nZAqFfuXA6TbtFQyJSe4gpj6T19a5q+HLEkox0mlWXvbIGbuJw28fkozjybhT5oXHNY4py5rH1CflcyeB1fId9wXDAvFmz/8m6AE/8TgYzEVGoRMCKUhND7PQho7jGo1utkdV559cm3llGFs3sxBZrmGbEExop91jyfg5G7BmCCi6evNaSDFBrG3vyaRNzt+HJ9kQpVbgj+xFUoNgr3abxqGfH3WfQq9lp5UZPRW74ZbFgpq+EGo67dUAQ==);--iti-path-globe-2x:url(data:image/webp;base64,UklGRlwFAABXRUJQVlA4TE8FAAAvJ8AJEEfHKJIkKdmcgvjj3wwill7QwKhtJEnOnIDmv/zJLAdGbSNJcuYENP/lT2Y5OGwjSZHmtL3wTFl9tp8SM/9xz47Ctm2b7mnwDggKFNd77jgHyxhIYVvLQBDEHEBKRQBIOXzQpAhiBQCIAMaIAACHhAQHIMFhhRkSRt1hlRIYDAZDhiE3CVrBS2gFkZGRYdA6mjQQBYAv6yOZSVAQCoPWMCWBIBQKwtCCUBANFARBlChBfPCG/dZUjxJECYJQECU+KGFQEC1YdN/NSUNRTDm4osQBGUwFjDFCBOYRo9QWxAmPlKQECRERMbVLCZapZ0owSrnz3hb6/P8auL9vAwr7/xeS5EV9q2sWU2vbtjla27Zt28akprq6a3bPtm2np87eJIvePUzd9fvoXkT0fwK4Vwdo8t6qyQW+O7Tn4k7NAdvi/jMR0fGpwhglhZBKm3B0pzvg3JcDrUuMEn7SDaUIRTLhhqb/AbDvw+bbJToMEq5QflFfv+QhJVPxcmkm/Ih9TzZfFxk/CJUnP7zMykJqnhsqQ51M6tTv2Pdgc/GKCuKmaI96HlhVAJy4vWVWWgRSfYJ9l4jv+4aB0F15Td3kH1YW4DiMnEJHGSaFOoOdw4LxOhCqPTf0JvLys6I8Wv/9BeeuhEkZfE+UZfNSOumqT+CArgHwbBHZw+ZB00AGeiYxIKKudH2zDxg97VK7FxdO6+9Pmt3l4J/bZR58rtyEOY6dtdhcMbPh2jsyNKr3mNnDy+c8Pig0od5wGXakg7DYgYgfU5648s0fC0Ljv9SigQVrHwUafXVgmNE92zBBBeYjsHn5L6Emz/6776EnxwJUsqKADMDmq8fG/T16fujr7lhknhheLG4PPwFD15IXs2xWFWBZVj4ndDW+fDItPRncssi75Fxv/iHQQL2PDbkg4k/zP/BfgfR1axxy59PM/IYdsypZWUCUiTlck2/zTz4fm3LzqkNlxxnzW+A4fK4vkbNrIbn7bgVoKn3djQu90krrllynQ1g7v2rpjUYsfeR6tdLSaqV5w5fR6E5+k8BVT/0aqqSXDAdV4wvpCplTCJnbFTLb9dTEHjoQQiTMC7Ah3PPuwbffOfD+xP4d3s7uMGDC+wcOvrs7kVKTZ6m4EMIVfn1O61JyrnuU3EM3A3znefrp142f5cnmnDXNyXecPFYUYNt2pVUlvot//qWFDszz9aTrCuGpQVX4Wn+KAw6rCrAgw/eqLZXQVQfmXZ5QnnCF2wrwdlJ5F8DhC1MP/itRnhv+wmHji7hpT+x0tekziRw7jxUF2LZznX3xOydH3e5fVhYWO5QOlClPzYFX9EMD65P9bBHZ16fLq7dHfrlal5vO2LxuKkTcfABvjZDxwsWvf9hs7pCv2ry5cowvB2/8iosq5YraWHw7JCxLyaAWZPoUrilMaRMKo8WwpQv0z2AXqnLzLA42H5gKEVcTuM76RfDtpVrzh9b5oTp0e5SI+Topy78hAzFm6QqRMN2gugNYLH0EoHF6Pyw3vm+OYQMRlwPpCd+sAep/WQ1OPGZZ13lO0ugpE0+m1xGRbdNKe67wzTN3Nouw3yfw03WH+nrnqUAnEul5YOXA5o20L4SnAiXjoX6f7Pm6RIeBl14EGe4a8VLad4UnvZTwysxR2DtOumEiUOpliLi7FWNb2vOEK4QQnnyoIav+Ko9XhGbUF1gZ7tWKcVBLX+T05HkOGmn0iA4WjsW9Ww6ny3WiTAjhyd41WWfGrv4sAof7t/l+ppGJlFeR7oBVr4kF2BYP0oYjDxsZpjuTsQDHsXjAUYxrrwwe9gGWRRRZ3CcA);--iti-flag-sprite-width:3904px;--iti-flag-sprite-height:12px;--iti-mobile-popup-margin:30px}.iti{position:relative;display:inline-block}.iti *{box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti__a11y-text{width:1px;height:1px;clip:rect(1px,1px,1px,1px);overflow:hidden;position:absolute}.iti input.iti__tel-input,.iti input.iti__tel-input[type=tel],.iti input.iti__tel-input[type=text]{position:relative;z-index:0;margin:0!important}.iti__country-container{position:absolute;top:0;bottom:0;padding:var(--iti-border-width)}.iti__selected-country{z-index:1;position:relative;display:flex;align-items:center;height:100%;background:0 0;border:0;margin:0;padding:0;font-family:inherit;font-size:inherit;color:inherit;border-radius:0;font-weight:inherit;line-height:inherit;text-decoration:none}.iti__selected-country-primary{display:flex;align-items:center;height:100%;padding:0 var(--iti-arrow-padding) 0 var(--iti-spacer-horizontal)}.iti__arrow{margin-left:var(--iti-arrow-padding);width:0;height:0;border-left:var(--iti-triangle-border) solid transparent;border-right:var(--iti-triangle-border) solid transparent;border-top:var(--iti-arrow-height) solid var(--iti-arrow-color)}[dir=rtl] .iti__arrow{margin-right:var(--iti-arrow-padding);margin-left:0}.iti__arrow--up{border-top:none;border-bottom:var(--iti-arrow-height) solid var(--iti-arrow-color)}.iti__dropdown-content{border-radius:3px;background-color:var(--iti-dropdown-bg)}.iti--inline-dropdown .iti__dropdown-content{position:absolute;z-index:2;margin-top:3px;margin-left:calc(var(--iti-border-width) * -1);border:var(--iti-border-width) solid var(--iti-border-color);box-shadow:1px 1px 4px #0003}.iti__search-input{width:100%;border-width:0;border-radius:3px}.iti__search-input+.iti__country-list{border-top:1px solid var(--iti-border-color)}.iti__country-list{list-style:none;padding:0;margin:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}.iti--inline-dropdown .iti__country-list{max-height:185px}.iti--flexible-dropdown-width .iti__country-list{white-space:nowrap}@media (max-width:500px){.iti--flexible-dropdown-width .iti__country-list{white-space:normal}}.iti__country{display:flex;align-items:center;padding:8px var(--iti-spacer-horizontal);outline:0}.iti__dial-code{color:var(--iti-dialcode-color)}.iti__country.iti__highlight{background-color:var(--iti-hover-color)}.iti__country-list .iti__flag,.iti__country-name{margin-right:var(--iti-spacer-horizontal)}[dir=rtl] .iti__country-list .iti__flag,[dir=rtl] .iti__country-name{margin-right:0;margin-left:var(--iti-spacer-horizontal)}.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])):hover,.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])):hover button{cursor:pointer}.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])) .iti__selected-country-primary:hover,.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])) .iti__selected-country:has(+.iti__dropdown-content:hover) .iti__selected-country-primary{background-color:var(--iti-hover-color)}.iti .iti__selected-dial-code{margin-left:4px}[dir=rtl] .iti .iti__selected-dial-code{margin-left:0;margin-right:4px}.iti--container{position:fixed;top:-1000px;left:-1000px;z-index:1060;padding:var(--iti-border-width)}.iti--container:hover{cursor:pointer}.iti--fullscreen-popup.iti--container{background-color:#00000080;top:0;bottom:0;left:0;right:0;position:fixed;padding:var(--iti-mobile-popup-margin);display:flex;flex-direction:column;justify-content:flex-start}.iti--fullscreen-popup .iti__dropdown-content{display:flex;flex-direction:column;max-height:100%;position:relative}.iti--fullscreen-popup .iti__country{padding:10px;line-height:1.5em}.iti__flag{--iti-flag-offset:100px;height:var(--iti-flag-height);width:var(--iti-flag-width);border-radius:1px;box-shadow:0 0 1px #888;background-image:var(--iti-path-flags-1x);background-repeat:no-repeat;background-position:var(--iti-flag-offset) 0;background-size:var(--iti-flag-sprite-width) var(--iti-flag-sprite-height)}.iti__ac{--iti-flag-offset:0px}.iti__ad{--iti-flag-offset:-16px}.iti__ae{--iti-flag-offset:-32px}.iti__af{--iti-flag-offset:-48px}.iti__ag{--iti-flag-offset:-64px}.iti__ai{--iti-flag-offset:-80px}.iti__al{--iti-flag-offset:-96px}.iti__am{--iti-flag-offset:-112px}.iti__ao{--iti-flag-offset:-128px}.iti__ar{--iti-flag-offset:-144px}.iti__as{--iti-flag-offset:-160px}.iti__at{--iti-flag-offset:-176px}.iti__au{--iti-flag-offset:-192px}.iti__aw{--iti-flag-offset:-208px}.iti__ax{--iti-flag-offset:-224px}.iti__az{--iti-flag-offset:-240px}.iti__ba{--iti-flag-offset:-256px}.iti__bb{--iti-flag-offset:-272px}.iti__bd{--iti-flag-offset:-288px}.iti__be{--iti-flag-offset:-304px}.iti__bf{--iti-flag-offset:-320px}.iti__bg{--iti-flag-offset:-336px}.iti__bh{--iti-flag-offset:-352px}.iti__bi{--iti-flag-offset:-368px}.iti__bj{--iti-flag-offset:-384px}.iti__bl{--iti-flag-offset:-400px}.iti__bm{--iti-flag-offset:-416px}.iti__bn{--iti-flag-offset:-432px}.iti__bo{--iti-flag-offset:-448px}.iti__bq{--iti-flag-offset:-464px}.iti__br{--iti-flag-offset:-480px}.iti__bs{--iti-flag-offset:-496px}.iti__bt{--iti-flag-offset:-512px}.iti__bw{--iti-flag-offset:-528px}.iti__by{--iti-flag-offset:-544px}.iti__bz{--iti-flag-offset:-560px}.iti__ca{--iti-flag-offset:-576px}.iti__cc{--iti-flag-offset:-592px}.iti__cd{--iti-flag-offset:-608px}.iti__cf{--iti-flag-offset:-624px}.iti__cg{--iti-flag-offset:-640px}.iti__ch{--iti-flag-offset:-656px}.iti__ci{--iti-flag-offset:-672px}.iti__ck{--iti-flag-offset:-688px}.iti__cl{--iti-flag-offset:-704px}.iti__cm{--iti-flag-offset:-720px}.iti__cn{--iti-flag-offset:-736px}.iti__co{--iti-flag-offset:-752px}.iti__cr{--iti-flag-offset:-768px}.iti__cu{--iti-flag-offset:-784px}.iti__cv{--iti-flag-offset:-800px}.iti__cw{--iti-flag-offset:-816px}.iti__cx{--iti-flag-offset:-832px}.iti__cy{--iti-flag-offset:-848px}.iti__cz{--iti-flag-offset:-864px}.iti__de{--iti-flag-offset:-880px}.iti__dj{--iti-flag-offset:-896px}.iti__dk{--iti-flag-offset:-912px}.iti__dm{--iti-flag-offset:-928px}.iti__do{--iti-flag-offset:-944px}.iti__dz{--iti-flag-offset:-960px}.iti__ec{--iti-flag-offset:-976px}.iti__ee{--iti-flag-offset:-992px}.iti__eg{--iti-flag-offset:-1008px}.iti__eh{--iti-flag-offset:-1024px}.iti__er{--iti-flag-offset:-1040px}.iti__es{--iti-flag-offset:-1056px}.iti__et{--iti-flag-offset:-1072px}.iti__fi{--iti-flag-offset:-1088px}.iti__fj{--iti-flag-offset:-1104px}.iti__fk{--iti-flag-offset:-1120px}.iti__fm{--iti-flag-offset:-1136px}.iti__fo{--iti-flag-offset:-1152px}.iti__fr{--iti-flag-offset:-1168px}.iti__ga{--iti-flag-offset:-1184px}.iti__gb{--iti-flag-offset:-1200px}.iti__gd{--iti-flag-offset:-1216px}.iti__ge{--iti-flag-offset:-1232px}.iti__gf{--iti-flag-offset:-1248px}.iti__gg{--iti-flag-offset:-1264px}.iti__gh{--iti-flag-offset:-1280px}.iti__gi{--iti-flag-offset:-1296px}.iti__gl{--iti-flag-offset:-1312px}.iti__gm{--iti-flag-offset:-1328px}.iti__gn{--iti-flag-offset:-1344px}.iti__gp{--iti-flag-offset:-1360px}.iti__gq{--iti-flag-offset:-1376px}.iti__gr{--iti-flag-offset:-1392px}.iti__gt{--iti-flag-offset:-1408px}.iti__gu{--iti-flag-offset:-1424px}.iti__gw{--iti-flag-offset:-1440px}.iti__gy{--iti-flag-offset:-1456px}.iti__hk{--iti-flag-offset:-1472px}.iti__hn{--iti-flag-offset:-1488px}.iti__hr{--iti-flag-offset:-1504px}.iti__ht{--iti-flag-offset:-1520px}.iti__hu{--iti-flag-offset:-1536px}.iti__id{--iti-flag-offset:-1552px}.iti__ie{--iti-flag-offset:-1568px}.iti__il{--iti-flag-offset:-1584px}.iti__im{--iti-flag-offset:-1600px}.iti__in{--iti-flag-offset:-1616px}.iti__io{--iti-flag-offset:-1632px}.iti__iq{--iti-flag-offset:-1648px}.iti__ir{--iti-flag-offset:-1664px}.iti__is{--iti-flag-offset:-1680px}.iti__it{--iti-flag-offset:-1696px}.iti__je{--iti-flag-offset:-1712px}.iti__jm{--iti-flag-offset:-1728px}.iti__jo{--iti-flag-offset:-1744px}.iti__jp{--iti-flag-offset:-1760px}.iti__ke{--iti-flag-offset:-1776px}.iti__kg{--iti-flag-offset:-1792px}.iti__kh{--iti-flag-offset:-1808px}.iti__ki{--iti-flag-offset:-1824px}.iti__km{--iti-flag-offset:-1840px}.iti__kn{--iti-flag-offset:-1856px}.iti__kp{--iti-flag-offset:-1872px}.iti__kr{--iti-flag-offset:-1888px}.iti__kw{--iti-flag-offset:-1904px}.iti__ky{--iti-flag-offset:-1920px}.iti__kz{--iti-flag-offset:-1936px}.iti__la{--iti-flag-offset:-1952px}.iti__lb{--iti-flag-offset:-1968px}.iti__lc{--iti-flag-offset:-1984px}.iti__li{--iti-flag-offset:-2000px}.iti__lk{--iti-flag-offset:-2016px}.iti__lr{--iti-flag-offset:-2032px}.iti__ls{--iti-flag-offset:-2048px}.iti__lt{--iti-flag-offset:-2064px}.iti__lu{--iti-flag-offset:-2080px}.iti__lv{--iti-flag-offset:-2096px}.iti__ly{--iti-flag-offset:-2112px}.iti__ma{--iti-flag-offset:-2128px}.iti__mc{--iti-flag-offset:-2144px}.iti__md{--iti-flag-offset:-2160px}.iti__me{--iti-flag-offset:-2176px}.iti__mf{--iti-flag-offset:-2192px}.iti__mg{--iti-flag-offset:-2208px}.iti__mh{--iti-flag-offset:-2224px}.iti__mk{--iti-flag-offset:-2240px}.iti__ml{--iti-flag-offset:-2256px}.iti__mm{--iti-flag-offset:-2272px}.iti__mn{--iti-flag-offset:-2288px}.iti__mo{--iti-flag-offset:-2304px}.iti__mp{--iti-flag-offset:-2320px}.iti__mq{--iti-flag-offset:-2336px}.iti__mr{--iti-flag-offset:-2352px}.iti__ms{--iti-flag-offset:-2368px}.iti__mt{--iti-flag-offset:-2384px}.iti__mu{--iti-flag-offset:-2400px}.iti__mv{--iti-flag-offset:-2416px}.iti__mw{--iti-flag-offset:-2432px}.iti__mx{--iti-flag-offset:-2448px}.iti__my{--iti-flag-offset:-2464px}.iti__mz{--iti-flag-offset:-2480px}.iti__na{--iti-flag-offset:-2496px}.iti__nc{--iti-flag-offset:-2512px}.iti__ne{--iti-flag-offset:-2528px}.iti__nf{--iti-flag-offset:-2544px}.iti__ng{--iti-flag-offset:-2560px}.iti__ni{--iti-flag-offset:-2576px}.iti__nl{--iti-flag-offset:-2592px}.iti__no{--iti-flag-offset:-2608px}.iti__np{--iti-flag-offset:-2624px}.iti__nr{--iti-flag-offset:-2640px}.iti__nu{--iti-flag-offset:-2656px}.iti__nz{--iti-flag-offset:-2672px}.iti__om{--iti-flag-offset:-2688px}.iti__pa{--iti-flag-offset:-2704px}.iti__pe{--iti-flag-offset:-2720px}.iti__pf{--iti-flag-offset:-2736px}.iti__pg{--iti-flag-offset:-2752px}.iti__ph{--iti-flag-offset:-2768px}.iti__pk{--iti-flag-offset:-2784px}.iti__pl{--iti-flag-offset:-2800px}.iti__pm{--iti-flag-offset:-2816px}.iti__pr{--iti-flag-offset:-2832px}.iti__ps{--iti-flag-offset:-2848px}.iti__pt{--iti-flag-offset:-2864px}.iti__pw{--iti-flag-offset:-2880px}.iti__py{--iti-flag-offset:-2896px}.iti__qa{--iti-flag-offset:-2912px}.iti__re{--iti-flag-offset:-2928px}.iti__ro{--iti-flag-offset:-2944px}.iti__rs{--iti-flag-offset:-2960px}.iti__ru{--iti-flag-offset:-2976px}.iti__rw{--iti-flag-offset:-2992px}.iti__sa{--iti-flag-offset:-3008px}.iti__sb{--iti-flag-offset:-3024px}.iti__sc{--iti-flag-offset:-3040px}.iti__sd{--iti-flag-offset:-3056px}.iti__se{--iti-flag-offset:-3072px}.iti__sg{--iti-flag-offset:-3088px}.iti__sh{--iti-flag-offset:-3104px}.iti__si{--iti-flag-offset:-3120px}.iti__sj{--iti-flag-offset:-3136px}.iti__sk{--iti-flag-offset:-3152px}.iti__sl{--iti-flag-offset:-3168px}.iti__sm{--iti-flag-offset:-3184px}.iti__sn{--iti-flag-offset:-3200px}.iti__so{--iti-flag-offset:-3216px}.iti__sr{--iti-flag-offset:-3232px}.iti__ss{--iti-flag-offset:-3248px}.iti__st{--iti-flag-offset:-3264px}.iti__sv{--iti-flag-offset:-3280px}.iti__sx{--iti-flag-offset:-3296px}.iti__sy{--iti-flag-offset:-3312px}.iti__sz{--iti-flag-offset:-3328px}.iti__tc{--iti-flag-offset:-3344px}.iti__td{--iti-flag-offset:-3360px}.iti__tg{--iti-flag-offset:-3376px}.iti__th{--iti-flag-offset:-3392px}.iti__tj{--iti-flag-offset:-3408px}.iti__tk{--iti-flag-offset:-3424px}.iti__tl{--iti-flag-offset:-3440px}.iti__tm{--iti-flag-offset:-3456px}.iti__tn{--iti-flag-offset:-3472px}.iti__to{--iti-flag-offset:-3488px}.iti__tr{--iti-flag-offset:-3504px}.iti__tt{--iti-flag-offset:-3520px}.iti__tv{--iti-flag-offset:-3536px}.iti__tw{--iti-flag-offset:-3552px}.iti__tz{--iti-flag-offset:-3568px}.iti__ua{--iti-flag-offset:-3584px}.iti__ug{--iti-flag-offset:-3600px}.iti__us{--iti-flag-offset:-3616px}.iti__uy{--iti-flag-offset:-3632px}.iti__uz{--iti-flag-offset:-3648px}.iti__va{--iti-flag-offset:-3664px}.iti__vc{--iti-flag-offset:-3680px}.iti__ve{--iti-flag-offset:-3696px}.iti__vg{--iti-flag-offset:-3712px}.iti__vi{--iti-flag-offset:-3728px}.iti__vn{--iti-flag-offset:-3744px}.iti__vu{--iti-flag-offset:-3760px}.iti__wf{--iti-flag-offset:-3776px}.iti__ws{--iti-flag-offset:-3792px}.iti__xk{--iti-flag-offset:-3808px}.iti__ye{--iti-flag-offset:-3824px}.iti__yt{--iti-flag-offset:-3840px}.iti__za{--iti-flag-offset:-3856px}.iti__zm{--iti-flag-offset:-3872px}.iti__zw{--iti-flag-offset:-3888px}.iti__globe{background-image:var(--iti-path-globe-1x);background-size:contain;background-position:right;box-shadow:none;height:19px}@media (min-resolution:2x){.iti__flag{background-image:var(--iti-path-flags-2x)}.iti__globe{background-image:var(--iti-path-globe-2x)}}.iti__selected-country-primary{padding:0 8px 0 12px!important;border-radius:999px}.iti__search-input{padding:6px}.snoo-cls-11.svelte-1977t4s{stroke-width:0;fill:#ffc49c}.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;-webkit-user-select:none;-moz-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 (forced-colors: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 (forced-colors: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}@media (hover:hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:#0000000d}}.maplibregl-ctrl button:not(:disabled):active{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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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 (forced-colors: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='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.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-globe .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='none' stroke='%23333' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-globe-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='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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;-moz-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:#0006;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),(pointer:coarse){.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}.disable-pinch-zoom.svelte-6wmtgk{touch-action:pan-x pan-y} diff --git a/frontend-backup/_app/immutable/assets/4.BtKF873c.css b/frontend-backup/_app/immutable/assets/4.BtKF873c.css index 19811c1..3d80090 100644 --- a/frontend-backup/_app/immutable/assets/4.BtKF873c.css +++ b/frontend-backup/_app/immutable/assets/4.BtKF873c.css @@ -1 +1,1775 @@ -.confetti-holder.svelte-15ksp55{position:relative}@keyframes svelte-15ksp55-rotate{0%{transform:skew(var(--skew)) rotate3d(var(--full-rotation))}to{transform:skew(var(--skew)) rotate3d(var(--rotation-xyz),calc(var(--rotation-deg) + 360deg))}}@keyframes svelte-15ksp55-translate{0%{opacity:1}8%{transform:translateY(calc(var(--translate-y) * .95)) translate(calc(var(--translate-x) * (var(--x-spread) * .9)));opacity:1}12%{transform:translateY(var(--translate-y)) translate(calc(var(--translate-x) * (var(--x-spread) * .95)));opacity:1}16%{transform:translateY(var(--translate-y)) translate(calc(var(--translate-x) * var(--x-spread)));opacity:1}to{transform:translateY(calc(var(--translate-y) + var(--fall-distance))) translate(var(--translate-x));opacity:0}}@keyframes svelte-15ksp55-no-gravity-translate{0%{opacity:1}to{transform:translateY(var(--translate-y)) translate(var(--translate-x));opacity:0}}.confetti.svelte-15ksp55{--translate-y: calc(-200px * var(--translate-y-multiplier));--translate-x: calc(200px * var(--translate-x-multiplier));position:absolute;height:calc(var(--size) * var(--scale));width:calc(var(--size) * var(--scale));animation:svelte-15ksp55-translate var(--transition-duration) var(--transition-delay) var(--transition-iteration-count) linear;opacity:0;pointer-events:none}.confetti.svelte-15ksp55:before{--full-rotation: var(--rotation-xyz), var(--rotation-deg);content:"";display:block;width:100%;height:100%;background:var(--color);background-size:contain;transform:skew(var(--skew)) rotate3d(var(--full-rotation));animation:svelte-15ksp55-rotate var(--transition-duration) var(--transition-delay) var(--transition-iteration-count) linear}.rounded.svelte-15ksp55 .confetti:where(.svelte-15ksp55):before{border-radius:50%}.cone.svelte-15ksp55 .confetti:where(.svelte-15ksp55){--translate-x: calc(200px * var(--translate-y-multiplier) * var(--translate-x-multiplier))}.no-gravity.svelte-15ksp55 .confetti:where(.svelte-15ksp55){animation-name:svelte-15ksp55-no-gravity-translate;animation-timing-function:ease-out}@media (prefers-reduced-motion){.reduced-motion.svelte-15ksp55 .confetti:where(.svelte-15ksp55),.reduced-motion.svelte-15ksp55 .confetti:where(.svelte-15ksp55):before{animation:none}}:root{--iti-hover-color:rgba(0, 0, 0, .05);--iti-border-color:#ccc;--iti-dialcode-color:#999;--iti-dropdown-bg:white;--iti-spacer-horizontal:8px;--iti-flag-height:12px;--iti-flag-width:16px;--iti-border-width:1px;--iti-arrow-height:4px;--iti-arrow-width:6px;--iti-triangle-border:calc(var(--iti-arrow-width) / 2);--iti-arrow-padding:6px;--iti-arrow-color:#555;--iti-path-flags-1x:url(./flags.a2kmUSbF.webp);--iti-path-flags-2x:url(./flags@2x.gR6KPp3x.webp);--iti-path-globe-1x:url(data:image/webp;base64,UklGRvoBAABXRUJQVlA4TO4BAAAvE8AEENXIkiRZtZu7H33ql07cqTlilvbz9i4tosSMZma27zWzHRGyIEk2bcu2bdvGn23btm3btm3btm0/m5PqAEkLTYYwxTPAW84Tl6wNgmvIqptKKH9nYAr4xle+TML/BDI2LSg6QHKT/nngE4+ZMIUePUGeTvly+YoV8F1DtkGUzlfst2LUKTX6PaWZeMWiDqN6PgcciGa2boYPmxlR5bIIL5l6RVyDYMXmY1f10pGb7PmAN6sRTBTN3N9C9Zi/LbVhlL+Oo2M7RxoE/a4+/nDjeBrSVwtGYXGGMIrUbJzCU1LgFftP9K1hkpOXmBim30cIJ1hgOkSwMhYCMgmaw7rXcfT5/wQcFhrcuaOEBuq5ytYblLPBEhV0Aq/ZqcDn/6RUDgrUL0/0UZgK/p+rR8/4nZAqFfuXA6TbtFQyJSe4gpj6T19a5q+HLEkox0mlWXvbIGbuJw28fkozjybhT5oXHNY4py5rH1CflcyeB1fId9wXDAvFmz/8m6AE/8TgYzEVGoRMCKUhND7PQho7jGo1utkdV559cm3llGFs3sxBZrmGbEExop91jyfg5G7BmCCi6evNaSDFBrG3vyaRNzt+HJ9kQpVbgj+xFUoNgr3abxqGfH3WfQq9lp5UZPRW74ZbFgpq+EGo67dUAQ==);--iti-path-globe-2x:url(data:image/webp;base64,UklGRlwFAABXRUJQVlA4TE8FAAAvJ8AJEEfHKJIkKdmcgvjj3wwill7QwKhtJEnOnIDmv/zJLAdGbSNJcuYENP/lT2Y5OGwjSZHmtL3wTFl9tp8SM/9xz47Ctm2b7mnwDggKFNd77jgHyxhIYVvLQBDEHEBKRQBIOXzQpAhiBQCIAMaIAACHhAQHIMFhhRkSRt1hlRIYDAZDhiE3CVrBS2gFkZGRYdA6mjQQBYAv6yOZSVAQCoPWMCWBIBQKwtCCUBANFARBlChBfPCG/dZUjxJECYJQECU+KGFQEC1YdN/NSUNRTDm4osQBGUwFjDFCBOYRo9QWxAmPlKQECRERMbVLCZapZ0owSrnz3hb6/P8auL9vAwr7/xeS5EV9q2sWU2vbtjla27Zt28akprq6a3bPtm2np87eJIvePUzd9fvoXkT0fwK4Vwdo8t6qyQW+O7Tn4k7NAdvi/jMR0fGpwhglhZBKm3B0pzvg3JcDrUuMEn7SDaUIRTLhhqb/AbDvw+bbJToMEq5QflFfv+QhJVPxcmkm/Ih9TzZfFxk/CJUnP7zMykJqnhsqQ51M6tTv2Pdgc/GKCuKmaI96HlhVAJy4vWVWWgRSfYJ9l4jv+4aB0F15Td3kH1YW4DiMnEJHGSaFOoOdw4LxOhCqPTf0JvLys6I8Wv/9BeeuhEkZfE+UZfNSOumqT+CArgHwbBHZw+ZB00AGeiYxIKKudH2zDxg97VK7FxdO6+9Pmt3l4J/bZR58rtyEOY6dtdhcMbPh2jsyNKr3mNnDy+c8Pig0od5wGXakg7DYgYgfU5648s0fC0Ljv9SigQVrHwUafXVgmNE92zBBBeYjsHn5L6Emz/6776EnxwJUsqKADMDmq8fG/T16fujr7lhknhheLG4PPwFD15IXs2xWFWBZVj4ndDW+fDItPRncssi75Fxv/iHQQL2PDbkg4k/zP/BfgfR1axxy59PM/IYdsypZWUCUiTlck2/zTz4fm3LzqkNlxxnzW+A4fK4vkbNrIbn7bgVoKn3djQu90krrllynQ1g7v2rpjUYsfeR6tdLSaqV5w5fR6E5+k8BVT/0aqqSXDAdV4wvpCplTCJnbFTLb9dTEHjoQQiTMC7Ah3PPuwbffOfD+xP4d3s7uMGDC+wcOvrs7kVKTZ6m4EMIVfn1O61JyrnuU3EM3A3znefrp142f5cnmnDXNyXecPFYUYNt2pVUlvot//qWFDszz9aTrCuGpQVX4Wn+KAw6rCrAgw/eqLZXQVQfmXZ5QnnCF2wrwdlJ5F8DhC1MP/itRnhv+wmHji7hpT+x0tekziRw7jxUF2LZznX3xOydH3e5fVhYWO5QOlClPzYFX9EMD65P9bBHZ16fLq7dHfrlal5vO2LxuKkTcfABvjZDxwsWvf9hs7pCv2ry5cowvB2/8iosq5YraWHw7JCxLyaAWZPoUrilMaRMKo8WwpQv0z2AXqnLzLA42H5gKEVcTuM76RfDtpVrzh9b5oTp0e5SI+Topy78hAzFm6QqRMN2gugNYLH0EoHF6Pyw3vm+OYQMRlwPpCd+sAep/WQ1OPGZZ13lO0ugpE0+m1xGRbdNKe67wzTN3Nouw3yfw03WH+nrnqUAnEul5YOXA5o20L4SnAiXjoX6f7Pm6RIeBl14EGe4a8VLad4UnvZTwysxR2DtOumEiUOpliLi7FWNb2vOEK4QQnnyoIav+Ko9XhGbUF1gZ7tWKcVBLX+T05HkOGmn0iA4WjsW9Ww6ny3WiTAjhyd41WWfGrv4sAof7t/l+ppGJlFeR7oBVr4kF2BYP0oYjDxsZpjuTsQDHsXjAUYxrrwwe9gGWRRRZ3CcA);--iti-flag-sprite-width:3904px;--iti-flag-sprite-height:12px;--iti-mobile-popup-margin:30px}.iti{position:relative;display:inline-block}.iti *{box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti__a11y-text{width:1px;height:1px;clip:rect(1px,1px,1px,1px);overflow:hidden;position:absolute}.iti input.iti__tel-input,.iti input.iti__tel-input[type=tel],.iti input.iti__tel-input[type=text]{position:relative;z-index:0;margin:0!important}.iti__country-container{position:absolute;top:0;bottom:0;padding:var(--iti-border-width)}.iti__selected-country{z-index:1;position:relative;display:flex;align-items:center;height:100%;background:0 0;border:0;margin:0;padding:0;font-family:inherit;font-size:inherit;color:inherit;border-radius:0;font-weight:inherit;line-height:inherit;text-decoration:none}.iti__selected-country-primary{display:flex;align-items:center;height:100%;padding:0 var(--iti-arrow-padding) 0 var(--iti-spacer-horizontal)}.iti__arrow{margin-left:var(--iti-arrow-padding);width:0;height:0;border-left:var(--iti-triangle-border) solid transparent;border-right:var(--iti-triangle-border) solid transparent;border-top:var(--iti-arrow-height) solid var(--iti-arrow-color)}[dir=rtl] .iti__arrow{margin-right:var(--iti-arrow-padding);margin-left:0}.iti__arrow--up{border-top:none;border-bottom:var(--iti-arrow-height) solid var(--iti-arrow-color)}.iti__dropdown-content{border-radius:3px;background-color:var(--iti-dropdown-bg)}.iti--inline-dropdown .iti__dropdown-content{position:absolute;z-index:2;margin-top:3px;margin-left:calc(var(--iti-border-width) * -1);border:var(--iti-border-width) solid var(--iti-border-color);box-shadow:1px 1px 4px #0003}.iti__search-input{width:100%;border-width:0;border-radius:3px}.iti__search-input+.iti__country-list{border-top:1px solid var(--iti-border-color)}.iti__country-list{list-style:none;padding:0;margin:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}.iti--inline-dropdown .iti__country-list{max-height:185px}.iti--flexible-dropdown-width .iti__country-list{white-space:nowrap}@media (max-width:500px){.iti--flexible-dropdown-width .iti__country-list{white-space:normal}}.iti__country{display:flex;align-items:center;padding:8px var(--iti-spacer-horizontal);outline:0}.iti__dial-code{color:var(--iti-dialcode-color)}.iti__country.iti__highlight{background-color:var(--iti-hover-color)}.iti__country-list .iti__flag,.iti__country-name{margin-right:var(--iti-spacer-horizontal)}[dir=rtl] .iti__country-list .iti__flag,[dir=rtl] .iti__country-name{margin-right:0;margin-left:var(--iti-spacer-horizontal)}.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])):hover,.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])):hover button{cursor:pointer}.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])) .iti__selected-country-primary:hover,.iti--allow-dropdown .iti__country-container:not(:has(+input[disabled])):not(:has(+input[readonly])) .iti__selected-country:has(+.iti__dropdown-content:hover) .iti__selected-country-primary{background-color:var(--iti-hover-color)}.iti .iti__selected-dial-code{margin-left:4px}[dir=rtl] .iti .iti__selected-dial-code{margin-left:0;margin-right:4px}.iti--container{position:fixed;top:-1000px;left:-1000px;z-index:1060;padding:var(--iti-border-width)}.iti--container:hover{cursor:pointer}.iti--fullscreen-popup.iti--container{background-color:#00000080;top:0;bottom:0;left:0;right:0;position:fixed;padding:var(--iti-mobile-popup-margin);display:flex;flex-direction:column;justify-content:flex-start}.iti--fullscreen-popup .iti__dropdown-content{display:flex;flex-direction:column;max-height:100%;position:relative}.iti--fullscreen-popup .iti__country{padding:10px;line-height:1.5em}.iti__flag{--iti-flag-offset:100px;height:var(--iti-flag-height);width:var(--iti-flag-width);border-radius:1px;box-shadow:0 0 1px #888;background-image:var(--iti-path-flags-1x);background-repeat:no-repeat;background-position:var(--iti-flag-offset) 0;background-size:var(--iti-flag-sprite-width) var(--iti-flag-sprite-height)}.iti__ac{--iti-flag-offset:0px}.iti__ad{--iti-flag-offset:-16px}.iti__ae{--iti-flag-offset:-32px}.iti__af{--iti-flag-offset:-48px}.iti__ag{--iti-flag-offset:-64px}.iti__ai{--iti-flag-offset:-80px}.iti__al{--iti-flag-offset:-96px}.iti__am{--iti-flag-offset:-112px}.iti__ao{--iti-flag-offset:-128px}.iti__ar{--iti-flag-offset:-144px}.iti__as{--iti-flag-offset:-160px}.iti__at{--iti-flag-offset:-176px}.iti__au{--iti-flag-offset:-192px}.iti__aw{--iti-flag-offset:-208px}.iti__ax{--iti-flag-offset:-224px}.iti__az{--iti-flag-offset:-240px}.iti__ba{--iti-flag-offset:-256px}.iti__bb{--iti-flag-offset:-272px}.iti__bd{--iti-flag-offset:-288px}.iti__be{--iti-flag-offset:-304px}.iti__bf{--iti-flag-offset:-320px}.iti__bg{--iti-flag-offset:-336px}.iti__bh{--iti-flag-offset:-352px}.iti__bi{--iti-flag-offset:-368px}.iti__bj{--iti-flag-offset:-384px}.iti__bl{--iti-flag-offset:-400px}.iti__bm{--iti-flag-offset:-416px}.iti__bn{--iti-flag-offset:-432px}.iti__bo{--iti-flag-offset:-448px}.iti__bq{--iti-flag-offset:-464px}.iti__br{--iti-flag-offset:-480px}.iti__bs{--iti-flag-offset:-496px}.iti__bt{--iti-flag-offset:-512px}.iti__bw{--iti-flag-offset:-528px}.iti__by{--iti-flag-offset:-544px}.iti__bz{--iti-flag-offset:-560px}.iti__ca{--iti-flag-offset:-576px}.iti__cc{--iti-flag-offset:-592px}.iti__cd{--iti-flag-offset:-608px}.iti__cf{--iti-flag-offset:-624px}.iti__cg{--iti-flag-offset:-640px}.iti__ch{--iti-flag-offset:-656px}.iti__ci{--iti-flag-offset:-672px}.iti__ck{--iti-flag-offset:-688px}.iti__cl{--iti-flag-offset:-704px}.iti__cm{--iti-flag-offset:-720px}.iti__cn{--iti-flag-offset:-736px}.iti__co{--iti-flag-offset:-752px}.iti__cr{--iti-flag-offset:-768px}.iti__cu{--iti-flag-offset:-784px}.iti__cv{--iti-flag-offset:-800px}.iti__cw{--iti-flag-offset:-816px}.iti__cx{--iti-flag-offset:-832px}.iti__cy{--iti-flag-offset:-848px}.iti__cz{--iti-flag-offset:-864px}.iti__de{--iti-flag-offset:-880px}.iti__dj{--iti-flag-offset:-896px}.iti__dk{--iti-flag-offset:-912px}.iti__dm{--iti-flag-offset:-928px}.iti__do{--iti-flag-offset:-944px}.iti__dz{--iti-flag-offset:-960px}.iti__ec{--iti-flag-offset:-976px}.iti__ee{--iti-flag-offset:-992px}.iti__eg{--iti-flag-offset:-1008px}.iti__eh{--iti-flag-offset:-1024px}.iti__er{--iti-flag-offset:-1040px}.iti__es{--iti-flag-offset:-1056px}.iti__et{--iti-flag-offset:-1072px}.iti__fi{--iti-flag-offset:-1088px}.iti__fj{--iti-flag-offset:-1104px}.iti__fk{--iti-flag-offset:-1120px}.iti__fm{--iti-flag-offset:-1136px}.iti__fo{--iti-flag-offset:-1152px}.iti__fr{--iti-flag-offset:-1168px}.iti__ga{--iti-flag-offset:-1184px}.iti__gb{--iti-flag-offset:-1200px}.iti__gd{--iti-flag-offset:-1216px}.iti__ge{--iti-flag-offset:-1232px}.iti__gf{--iti-flag-offset:-1248px}.iti__gg{--iti-flag-offset:-1264px}.iti__gh{--iti-flag-offset:-1280px}.iti__gi{--iti-flag-offset:-1296px}.iti__gl{--iti-flag-offset:-1312px}.iti__gm{--iti-flag-offset:-1328px}.iti__gn{--iti-flag-offset:-1344px}.iti__gp{--iti-flag-offset:-1360px}.iti__gq{--iti-flag-offset:-1376px}.iti__gr{--iti-flag-offset:-1392px}.iti__gt{--iti-flag-offset:-1408px}.iti__gu{--iti-flag-offset:-1424px}.iti__gw{--iti-flag-offset:-1440px}.iti__gy{--iti-flag-offset:-1456px}.iti__hk{--iti-flag-offset:-1472px}.iti__hn{--iti-flag-offset:-1488px}.iti__hr{--iti-flag-offset:-1504px}.iti__ht{--iti-flag-offset:-1520px}.iti__hu{--iti-flag-offset:-1536px}.iti__id{--iti-flag-offset:-1552px}.iti__ie{--iti-flag-offset:-1568px}.iti__il{--iti-flag-offset:-1584px}.iti__im{--iti-flag-offset:-1600px}.iti__in{--iti-flag-offset:-1616px}.iti__io{--iti-flag-offset:-1632px}.iti__iq{--iti-flag-offset:-1648px}.iti__ir{--iti-flag-offset:-1664px}.iti__is{--iti-flag-offset:-1680px}.iti__it{--iti-flag-offset:-1696px}.iti__je{--iti-flag-offset:-1712px}.iti__jm{--iti-flag-offset:-1728px}.iti__jo{--iti-flag-offset:-1744px}.iti__jp{--iti-flag-offset:-1760px}.iti__ke{--iti-flag-offset:-1776px}.iti__kg{--iti-flag-offset:-1792px}.iti__kh{--iti-flag-offset:-1808px}.iti__ki{--iti-flag-offset:-1824px}.iti__km{--iti-flag-offset:-1840px}.iti__kn{--iti-flag-offset:-1856px}.iti__kp{--iti-flag-offset:-1872px}.iti__kr{--iti-flag-offset:-1888px}.iti__kw{--iti-flag-offset:-1904px}.iti__ky{--iti-flag-offset:-1920px}.iti__kz{--iti-flag-offset:-1936px}.iti__la{--iti-flag-offset:-1952px}.iti__lb{--iti-flag-offset:-1968px}.iti__lc{--iti-flag-offset:-1984px}.iti__li{--iti-flag-offset:-2000px}.iti__lk{--iti-flag-offset:-2016px}.iti__lr{--iti-flag-offset:-2032px}.iti__ls{--iti-flag-offset:-2048px}.iti__lt{--iti-flag-offset:-2064px}.iti__lu{--iti-flag-offset:-2080px}.iti__lv{--iti-flag-offset:-2096px}.iti__ly{--iti-flag-offset:-2112px}.iti__ma{--iti-flag-offset:-2128px}.iti__mc{--iti-flag-offset:-2144px}.iti__md{--iti-flag-offset:-2160px}.iti__me{--iti-flag-offset:-2176px}.iti__mf{--iti-flag-offset:-2192px}.iti__mg{--iti-flag-offset:-2208px}.iti__mh{--iti-flag-offset:-2224px}.iti__mk{--iti-flag-offset:-2240px}.iti__ml{--iti-flag-offset:-2256px}.iti__mm{--iti-flag-offset:-2272px}.iti__mn{--iti-flag-offset:-2288px}.iti__mo{--iti-flag-offset:-2304px}.iti__mp{--iti-flag-offset:-2320px}.iti__mq{--iti-flag-offset:-2336px}.iti__mr{--iti-flag-offset:-2352px}.iti__ms{--iti-flag-offset:-2368px}.iti__mt{--iti-flag-offset:-2384px}.iti__mu{--iti-flag-offset:-2400px}.iti__mv{--iti-flag-offset:-2416px}.iti__mw{--iti-flag-offset:-2432px}.iti__mx{--iti-flag-offset:-2448px}.iti__my{--iti-flag-offset:-2464px}.iti__mz{--iti-flag-offset:-2480px}.iti__na{--iti-flag-offset:-2496px}.iti__nc{--iti-flag-offset:-2512px}.iti__ne{--iti-flag-offset:-2528px}.iti__nf{--iti-flag-offset:-2544px}.iti__ng{--iti-flag-offset:-2560px}.iti__ni{--iti-flag-offset:-2576px}.iti__nl{--iti-flag-offset:-2592px}.iti__no{--iti-flag-offset:-2608px}.iti__np{--iti-flag-offset:-2624px}.iti__nr{--iti-flag-offset:-2640px}.iti__nu{--iti-flag-offset:-2656px}.iti__nz{--iti-flag-offset:-2672px}.iti__om{--iti-flag-offset:-2688px}.iti__pa{--iti-flag-offset:-2704px}.iti__pe{--iti-flag-offset:-2720px}.iti__pf{--iti-flag-offset:-2736px}.iti__pg{--iti-flag-offset:-2752px}.iti__ph{--iti-flag-offset:-2768px}.iti__pk{--iti-flag-offset:-2784px}.iti__pl{--iti-flag-offset:-2800px}.iti__pm{--iti-flag-offset:-2816px}.iti__pr{--iti-flag-offset:-2832px}.iti__ps{--iti-flag-offset:-2848px}.iti__pt{--iti-flag-offset:-2864px}.iti__pw{--iti-flag-offset:-2880px}.iti__py{--iti-flag-offset:-2896px}.iti__qa{--iti-flag-offset:-2912px}.iti__re{--iti-flag-offset:-2928px}.iti__ro{--iti-flag-offset:-2944px}.iti__rs{--iti-flag-offset:-2960px}.iti__ru{--iti-flag-offset:-2976px}.iti__rw{--iti-flag-offset:-2992px}.iti__sa{--iti-flag-offset:-3008px}.iti__sb{--iti-flag-offset:-3024px}.iti__sc{--iti-flag-offset:-3040px}.iti__sd{--iti-flag-offset:-3056px}.iti__se{--iti-flag-offset:-3072px}.iti__sg{--iti-flag-offset:-3088px}.iti__sh{--iti-flag-offset:-3104px}.iti__si{--iti-flag-offset:-3120px}.iti__sj{--iti-flag-offset:-3136px}.iti__sk{--iti-flag-offset:-3152px}.iti__sl{--iti-flag-offset:-3168px}.iti__sm{--iti-flag-offset:-3184px}.iti__sn{--iti-flag-offset:-3200px}.iti__so{--iti-flag-offset:-3216px}.iti__sr{--iti-flag-offset:-3232px}.iti__ss{--iti-flag-offset:-3248px}.iti__st{--iti-flag-offset:-3264px}.iti__sv{--iti-flag-offset:-3280px}.iti__sx{--iti-flag-offset:-3296px}.iti__sy{--iti-flag-offset:-3312px}.iti__sz{--iti-flag-offset:-3328px}.iti__tc{--iti-flag-offset:-3344px}.iti__td{--iti-flag-offset:-3360px}.iti__tg{--iti-flag-offset:-3376px}.iti__th{--iti-flag-offset:-3392px}.iti__tj{--iti-flag-offset:-3408px}.iti__tk{--iti-flag-offset:-3424px}.iti__tl{--iti-flag-offset:-3440px}.iti__tm{--iti-flag-offset:-3456px}.iti__tn{--iti-flag-offset:-3472px}.iti__to{--iti-flag-offset:-3488px}.iti__tr{--iti-flag-offset:-3504px}.iti__tt{--iti-flag-offset:-3520px}.iti__tv{--iti-flag-offset:-3536px}.iti__tw{--iti-flag-offset:-3552px}.iti__tz{--iti-flag-offset:-3568px}.iti__ua{--iti-flag-offset:-3584px}.iti__ug{--iti-flag-offset:-3600px}.iti__us{--iti-flag-offset:-3616px}.iti__uy{--iti-flag-offset:-3632px}.iti__uz{--iti-flag-offset:-3648px}.iti__va{--iti-flag-offset:-3664px}.iti__vc{--iti-flag-offset:-3680px}.iti__ve{--iti-flag-offset:-3696px}.iti__vg{--iti-flag-offset:-3712px}.iti__vi{--iti-flag-offset:-3728px}.iti__vn{--iti-flag-offset:-3744px}.iti__vu{--iti-flag-offset:-3760px}.iti__wf{--iti-flag-offset:-3776px}.iti__ws{--iti-flag-offset:-3792px}.iti__xk{--iti-flag-offset:-3808px}.iti__ye{--iti-flag-offset:-3824px}.iti__yt{--iti-flag-offset:-3840px}.iti__za{--iti-flag-offset:-3856px}.iti__zm{--iti-flag-offset:-3872px}.iti__zw{--iti-flag-offset:-3888px}.iti__globe{background-image:var(--iti-path-globe-1x);background-size:contain;background-position:right;box-shadow:none;height:19px}@media (min-resolution:2x){.iti__flag{background-image:var(--iti-path-flags-2x)}.iti__globe{background-image:var(--iti-path-globe-2x)}}.iti__selected-country-primary{padding:0 8px 0 12px!important;border-radius:999px}.iti__search-input{padding:6px}.snoo-cls-11.svelte-1977t4s{stroke-width:0;fill:#ffc49c}.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;-webkit-user-select:none;-moz-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 (forced-colors: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 (forced-colors: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}@media (hover:hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:#0000000d}}.maplibregl-ctrl button:not(:disabled):active{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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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 (forced-colors: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='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.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-globe .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='none' stroke='%23333' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-globe-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='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){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 (forced-colors: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 (forced-colors:active) and (prefers-color-scheme:light){.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;-moz-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:#0006;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),(pointer:coarse){.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}.disable-pinch-zoom.svelte-6wmtgk{touch-action:pan-x pan-y} +.confetti-holder.svelte-15ksp55 { + position: relative; +} +@keyframes svelte-15ksp55-rotate { + 0% { + transform: skew(var(--skew)) rotate3d(var(--full-rotation)); + } + to { + transform: skew(var(--skew)) + rotate3d(var(--rotation-xyz), calc(var(--rotation-deg) + 360deg)); + } +} +@keyframes svelte-15ksp55-translate { + 0% { + opacity: 1; + } + 8% { + transform: translateY(calc(var(--translate-y) * 0.95)) + translate(calc(var(--translate-x) * (var(--x-spread) * 0.9))); + opacity: 1; + } + 12% { + transform: translateY(var(--translate-y)) + translate(calc(var(--translate-x) * (var(--x-spread) * 0.95))); + opacity: 1; + } + 16% { + transform: translateY(var(--translate-y)) + translate(calc(var(--translate-x) * var(--x-spread))); + opacity: 1; + } + to { + transform: translateY(calc(var(--translate-y) + var(--fall-distance))) + translate(var(--translate-x)); + opacity: 0; + } +} +@keyframes svelte-15ksp55-no-gravity-translate { + 0% { + opacity: 1; + } + to { + transform: translateY(var(--translate-y)) translate(var(--translate-x)); + opacity: 0; + } +} +.confetti.svelte-15ksp55 { + --translate-y: calc(-200px * var(--translate-y-multiplier)); + --translate-x: calc(200px * var(--translate-x-multiplier)); + position: absolute; + height: calc(var(--size) * var(--scale)); + width: calc(var(--size) * var(--scale)); + animation: svelte-15ksp55-translate var(--transition-duration) + var(--transition-delay) var(--transition-iteration-count) linear; + opacity: 0; + pointer-events: none; +} +.confetti.svelte-15ksp55:before { + --full-rotation: var(--rotation-xyz), var(--rotation-deg); + content: ""; + display: block; + width: 100%; + height: 100%; + background: var(--color); + background-size: contain; + transform: skew(var(--skew)) rotate3d(var(--full-rotation)); + animation: svelte-15ksp55-rotate var(--transition-duration) + var(--transition-delay) var(--transition-iteration-count) linear; +} +.rounded.svelte-15ksp55 .confetti:where(.svelte-15ksp55):before { + border-radius: 50%; +} +.cone.svelte-15ksp55 .confetti:where(.svelte-15ksp55) { + --translate-x: calc( + 200px * var(--translate-y-multiplier) * var(--translate-x-multiplier) + ); +} +.no-gravity.svelte-15ksp55 .confetti:where(.svelte-15ksp55) { + animation-name: svelte-15ksp55-no-gravity-translate; + animation-timing-function: ease-out; +} +@media (prefers-reduced-motion) { + .reduced-motion.svelte-15ksp55 .confetti:where(.svelte-15ksp55), + .reduced-motion.svelte-15ksp55 .confetti:where(.svelte-15ksp55):before { + animation: none; + } +} +:root { + --iti-hover-color: rgba(0, 0, 0, 0.05); + --iti-border-color: #ccc; + --iti-dialcode-color: #999; + --iti-dropdown-bg: white; + --iti-spacer-horizontal: 8px; + --iti-flag-height: 12px; + --iti-flag-width: 16px; + --iti-border-width: 1px; + --iti-arrow-height: 4px; + --iti-arrow-width: 6px; + --iti-triangle-border: calc(var(--iti-arrow-width) / 2); + --iti-arrow-padding: 6px; + --iti-arrow-color: #555; + --iti-path-flags-1x: url(./flags.a2kmUSbF.webp); + --iti-path-flags-2x: url(./flags@2x.gR6KPp3x.webp); + --iti-path-globe-1x: url(data:image/webp;base64,UklGRvoBAABXRUJQVlA4TO4BAAAvE8AEENXIkiRZtZu7H33ql07cqTlilvbz9i4tosSMZma27zWzHRGyIEk2bcu2bdvGn23btm3btm3btm0/m5PqAEkLTYYwxTPAW84Tl6wNgmvIqptKKH9nYAr4xle+TML/BDI2LSg6QHKT/nngE4+ZMIUePUGeTvly+YoV8F1DtkGUzlfst2LUKTX6PaWZeMWiDqN6PgcciGa2boYPmxlR5bIIL5l6RVyDYMXmY1f10pGb7PmAN6sRTBTN3N9C9Zi/LbVhlL+Oo2M7RxoE/a4+/nDjeBrSVwtGYXGGMIrUbJzCU1LgFftP9K1hkpOXmBim30cIJ1hgOkSwMhYCMgmaw7rXcfT5/wQcFhrcuaOEBuq5ytYblLPBEhV0Aq/ZqcDn/6RUDgrUL0/0UZgK/p+rR8/4nZAqFfuXA6TbtFQyJSe4gpj6T19a5q+HLEkox0mlWXvbIGbuJw28fkozjybhT5oXHNY4py5rH1CflcyeB1fId9wXDAvFmz/8m6AE/8TgYzEVGoRMCKUhND7PQho7jGo1utkdV559cm3llGFs3sxBZrmGbEExop91jyfg5G7BmCCi6evNaSDFBrG3vyaRNzt+HJ9kQpVbgj+xFUoNgr3abxqGfH3WfQq9lp5UZPRW74ZbFgpq+EGo67dUAQ==); + --iti-path-globe-2x: url(data:image/webp;base64,UklGRlwFAABXRUJQVlA4TE8FAAAvJ8AJEEfHKJIkKdmcgvjj3wwill7QwKhtJEnOnIDmv/zJLAdGbSNJcuYENP/lT2Y5OGwjSZHmtL3wTFl9tp8SM/9xz47Ctm2b7mnwDggKFNd77jgHyxhIYVvLQBDEHEBKRQBIOXzQpAhiBQCIAMaIAACHhAQHIMFhhRkSRt1hlRIYDAZDhiE3CVrBS2gFkZGRYdA6mjQQBYAv6yOZSVAQCoPWMCWBIBQKwtCCUBANFARBlChBfPCG/dZUjxJECYJQECU+KGFQEC1YdN/NSUNRTDm4osQBGUwFjDFCBOYRo9QWxAmPlKQECRERMbVLCZapZ0owSrnz3hb6/P8auL9vAwr7/xeS5EV9q2sWU2vbtjla27Zt28akprq6a3bPtm2np87eJIvePUzd9fvoXkT0fwK4Vwdo8t6qyQW+O7Tn4k7NAdvi/jMR0fGpwhglhZBKm3B0pzvg3JcDrUuMEn7SDaUIRTLhhqb/AbDvw+bbJToMEq5QflFfv+QhJVPxcmkm/Ih9TzZfFxk/CJUnP7zMykJqnhsqQ51M6tTv2Pdgc/GKCuKmaI96HlhVAJy4vWVWWgRSfYJ9l4jv+4aB0F15Td3kH1YW4DiMnEJHGSaFOoOdw4LxOhCqPTf0JvLys6I8Wv/9BeeuhEkZfE+UZfNSOumqT+CArgHwbBHZw+ZB00AGeiYxIKKudH2zDxg97VK7FxdO6+9Pmt3l4J/bZR58rtyEOY6dtdhcMbPh2jsyNKr3mNnDy+c8Pig0od5wGXakg7DYgYgfU5648s0fC0Ljv9SigQVrHwUafXVgmNE92zBBBeYjsHn5L6Emz/6776EnxwJUsqKADMDmq8fG/T16fujr7lhknhheLG4PPwFD15IXs2xWFWBZVj4ndDW+fDItPRncssi75Fxv/iHQQL2PDbkg4k/zP/BfgfR1axxy59PM/IYdsypZWUCUiTlck2/zTz4fm3LzqkNlxxnzW+A4fK4vkbNrIbn7bgVoKn3djQu90krrllynQ1g7v2rpjUYsfeR6tdLSaqV5w5fR6E5+k8BVT/0aqqSXDAdV4wvpCplTCJnbFTLb9dTEHjoQQiTMC7Ah3PPuwbffOfD+xP4d3s7uMGDC+wcOvrs7kVKTZ6m4EMIVfn1O61JyrnuU3EM3A3znefrp142f5cnmnDXNyXecPFYUYNt2pVUlvot//qWFDszz9aTrCuGpQVX4Wn+KAw6rCrAgw/eqLZXQVQfmXZ5QnnCF2wrwdlJ5F8DhC1MP/itRnhv+wmHji7hpT+x0tekziRw7jxUF2LZznX3xOydH3e5fVhYWO5QOlClPzYFX9EMD65P9bBHZ16fLq7dHfrlal5vO2LxuKkTcfABvjZDxwsWvf9hs7pCv2ry5cowvB2/8iosq5YraWHw7JCxLyaAWZPoUrilMaRMKo8WwpQv0z2AXqnLzLA42H5gKEVcTuM76RfDtpVrzh9b5oTp0e5SI+Topy78hAzFm6QqRMN2gugNYLH0EoHF6Pyw3vm+OYQMRlwPpCd+sAep/WQ1OPGZZ13lO0ugpE0+m1xGRbdNKe67wzTN3Nouw3yfw03WH+nrnqUAnEul5YOXA5o20L4SnAiXjoX6f7Pm6RIeBl14EGe4a8VLad4UnvZTwysxR2DtOumEiUOpliLi7FWNb2vOEK4QQnnyoIav+Ko9XhGbUF1gZ7tWKcVBLX+T05HkOGmn0iA4WjsW9Ww6ny3WiTAjhyd41WWfGrv4sAof7t/l+ppGJlFeR7oBVr4kF2BYP0oYjDxsZpjuTsQDHsXjAUYxrrwwe9gGWRRRZ3CcA); + --iti-flag-sprite-width: 3904px; + --iti-flag-sprite-height: 12px; + --iti-mobile-popup-margin: 30px; +} +.iti { + position: relative; + display: inline-block; +} +.iti * { + box-sizing: border-box; +} +.iti__hide { + display: none; +} +.iti__v-hide { + visibility: hidden; +} +.iti__a11y-text { + width: 1px; + height: 1px; + clip: rect(1px, 1px, 1px, 1px); + overflow: hidden; + position: absolute; +} +.iti input.iti__tel-input, +.iti input.iti__tel-input[type="tel"], +.iti input.iti__tel-input[type="text"] { + position: relative; + z-index: 0; + margin: 0 !important; +} +.iti__country-container { + position: absolute; + top: 0; + bottom: 0; + padding: var(--iti-border-width); +} +.iti__selected-country { + z-index: 1; + position: relative; + display: flex; + align-items: center; + height: 100%; + background: 0 0; + border: 0; + margin: 0; + padding: 0; + font-family: inherit; + font-size: inherit; + color: inherit; + border-radius: 0; + font-weight: inherit; + line-height: inherit; + text-decoration: none; +} +.iti__selected-country-primary { + display: flex; + align-items: center; + height: 100%; + padding: 0 var(--iti-arrow-padding) 0 var(--iti-spacer-horizontal); +} +.iti__arrow { + margin-left: var(--iti-arrow-padding); + width: 0; + height: 0; + border-left: var(--iti-triangle-border) solid transparent; + border-right: var(--iti-triangle-border) solid transparent; + border-top: var(--iti-arrow-height) solid var(--iti-arrow-color); +} +[dir="rtl"] .iti__arrow { + margin-right: var(--iti-arrow-padding); + margin-left: 0; +} +.iti__arrow--up { + border-top: none; + border-bottom: var(--iti-arrow-height) solid var(--iti-arrow-color); +} +.iti__dropdown-content { + border-radius: 3px; + background-color: var(--iti-dropdown-bg); +} +.iti--inline-dropdown .iti__dropdown-content { + position: absolute; + z-index: 2; + margin-top: 3px; + margin-left: calc(var(--iti-border-width) * -1); + border: var(--iti-border-width) solid var(--iti-border-color); + box-shadow: 1px 1px 4px #0003; +} +.iti__search-input { + width: 100%; + border-width: 0; + border-radius: 3px; +} +.iti__search-input + .iti__country-list { + border-top: 1px solid var(--iti-border-color); +} +.iti__country-list { + list-style: none; + padding: 0; + margin: 0; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} +.iti--inline-dropdown .iti__country-list { + max-height: 185px; +} +.iti--flexible-dropdown-width .iti__country-list { + white-space: nowrap; +} +@media (max-width: 500px) { + .iti--flexible-dropdown-width .iti__country-list { + white-space: normal; + } +} +.iti__country { + display: flex; + align-items: center; + padding: 8px var(--iti-spacer-horizontal); + outline: 0; +} +.iti__dial-code { + color: var(--iti-dialcode-color); +} +.iti__country.iti__highlight { + background-color: var(--iti-hover-color); +} +.iti__country-list .iti__flag, +.iti__country-name { + margin-right: var(--iti-spacer-horizontal); +} +[dir="rtl"] .iti__country-list .iti__flag, +[dir="rtl"] .iti__country-name { + margin-right: 0; + margin-left: var(--iti-spacer-horizontal); +} +.iti--allow-dropdown + .iti__country-container:not(:has(+ input[disabled])):not( + :has(+ input[readonly]) + ):hover, +.iti--allow-dropdown + .iti__country-container:not(:has(+ input[disabled])):not( + :has(+ input[readonly]) + ):hover + button { + cursor: pointer; +} +.iti--allow-dropdown + .iti__country-container:not(:has(+ input[disabled])):not( + :has(+ input[readonly]) + ) + .iti__selected-country-primary:hover, +.iti--allow-dropdown + .iti__country-container:not(:has(+ input[disabled])):not( + :has(+ input[readonly]) + ) + .iti__selected-country:has(+ .iti__dropdown-content:hover) + .iti__selected-country-primary { + background-color: var(--iti-hover-color); +} +.iti .iti__selected-dial-code { + margin-left: 4px; +} +[dir="rtl"] .iti .iti__selected-dial-code { + margin-left: 0; + margin-right: 4px; +} +.iti--container { + position: fixed; + top: -1000px; + left: -1000px; + z-index: 1060; + padding: var(--iti-border-width); +} +.iti--container:hover { + cursor: pointer; +} +.iti--fullscreen-popup.iti--container { + background-color: #00000080; + top: 0; + bottom: 0; + left: 0; + right: 0; + position: fixed; + padding: var(--iti-mobile-popup-margin); + display: flex; + flex-direction: column; + justify-content: flex-start; +} +.iti--fullscreen-popup .iti__dropdown-content { + display: flex; + flex-direction: column; + max-height: 100%; + position: relative; +} +.iti--fullscreen-popup .iti__country { + padding: 10px; + line-height: 1.5em; +} +.iti__flag { + --iti-flag-offset: 100px; + height: var(--iti-flag-height); + width: var(--iti-flag-width); + border-radius: 1px; + box-shadow: 0 0 1px #888; + background-image: var(--iti-path-flags-1x); + background-repeat: no-repeat; + background-position: var(--iti-flag-offset) 0; + background-size: var(--iti-flag-sprite-width) var(--iti-flag-sprite-height); +} +.iti__ac { + --iti-flag-offset: 0px; +} +.iti__ad { + --iti-flag-offset: -16px; +} +.iti__ae { + --iti-flag-offset: -32px; +} +.iti__af { + --iti-flag-offset: -48px; +} +.iti__ag { + --iti-flag-offset: -64px; +} +.iti__ai { + --iti-flag-offset: -80px; +} +.iti__al { + --iti-flag-offset: -96px; +} +.iti__am { + --iti-flag-offset: -112px; +} +.iti__ao { + --iti-flag-offset: -128px; +} +.iti__ar { + --iti-flag-offset: -144px; +} +.iti__as { + --iti-flag-offset: -160px; +} +.iti__at { + --iti-flag-offset: -176px; +} +.iti__au { + --iti-flag-offset: -192px; +} +.iti__aw { + --iti-flag-offset: -208px; +} +.iti__ax { + --iti-flag-offset: -224px; +} +.iti__az { + --iti-flag-offset: -240px; +} +.iti__ba { + --iti-flag-offset: -256px; +} +.iti__bb { + --iti-flag-offset: -272px; +} +.iti__bd { + --iti-flag-offset: -288px; +} +.iti__be { + --iti-flag-offset: -304px; +} +.iti__bf { + --iti-flag-offset: -320px; +} +.iti__bg { + --iti-flag-offset: -336px; +} +.iti__bh { + --iti-flag-offset: -352px; +} +.iti__bi { + --iti-flag-offset: -368px; +} +.iti__bj { + --iti-flag-offset: -384px; +} +.iti__bl { + --iti-flag-offset: -400px; +} +.iti__bm { + --iti-flag-offset: -416px; +} +.iti__bn { + --iti-flag-offset: -432px; +} +.iti__bo { + --iti-flag-offset: -448px; +} +.iti__bq { + --iti-flag-offset: -464px; +} +.iti__br { + --iti-flag-offset: -480px; +} +.iti__bs { + --iti-flag-offset: -496px; +} +.iti__bt { + --iti-flag-offset: -512px; +} +.iti__bw { + --iti-flag-offset: -528px; +} +.iti__by { + --iti-flag-offset: -544px; +} +.iti__bz { + --iti-flag-offset: -560px; +} +.iti__ca { + --iti-flag-offset: -576px; +} +.iti__cc { + --iti-flag-offset: -592px; +} +.iti__cd { + --iti-flag-offset: -608px; +} +.iti__cf { + --iti-flag-offset: -624px; +} +.iti__cg { + --iti-flag-offset: -640px; +} +.iti__ch { + --iti-flag-offset: -656px; +} +.iti__ci { + --iti-flag-offset: -672px; +} +.iti__ck { + --iti-flag-offset: -688px; +} +.iti__cl { + --iti-flag-offset: -704px; +} +.iti__cm { + --iti-flag-offset: -720px; +} +.iti__cn { + --iti-flag-offset: -736px; +} +.iti__co { + --iti-flag-offset: -752px; +} +.iti__cr { + --iti-flag-offset: -768px; +} +.iti__cu { + --iti-flag-offset: -784px; +} +.iti__cv { + --iti-flag-offset: -800px; +} +.iti__cw { + --iti-flag-offset: -816px; +} +.iti__cx { + --iti-flag-offset: -832px; +} +.iti__cy { + --iti-flag-offset: -848px; +} +.iti__cz { + --iti-flag-offset: -864px; +} +.iti__de { + --iti-flag-offset: -880px; +} +.iti__dj { + --iti-flag-offset: -896px; +} +.iti__dk { + --iti-flag-offset: -912px; +} +.iti__dm { + --iti-flag-offset: -928px; +} +.iti__do { + --iti-flag-offset: -944px; +} +.iti__dz { + --iti-flag-offset: -960px; +} +.iti__ec { + --iti-flag-offset: -976px; +} +.iti__ee { + --iti-flag-offset: -992px; +} +.iti__eg { + --iti-flag-offset: -1008px; +} +.iti__eh { + --iti-flag-offset: -1024px; +} +.iti__er { + --iti-flag-offset: -1040px; +} +.iti__es { + --iti-flag-offset: -1056px; +} +.iti__et { + --iti-flag-offset: -1072px; +} +.iti__fi { + --iti-flag-offset: -1088px; +} +.iti__fj { + --iti-flag-offset: -1104px; +} +.iti__fk { + --iti-flag-offset: -1120px; +} +.iti__fm { + --iti-flag-offset: -1136px; +} +.iti__fo { + --iti-flag-offset: -1152px; +} +.iti__fr { + --iti-flag-offset: -1168px; +} +.iti__ga { + --iti-flag-offset: -1184px; +} +.iti__gb { + --iti-flag-offset: -1200px; +} +.iti__gd { + --iti-flag-offset: -1216px; +} +.iti__ge { + --iti-flag-offset: -1232px; +} +.iti__gf { + --iti-flag-offset: -1248px; +} +.iti__gg { + --iti-flag-offset: -1264px; +} +.iti__gh { + --iti-flag-offset: -1280px; +} +.iti__gi { + --iti-flag-offset: -1296px; +} +.iti__gl { + --iti-flag-offset: -1312px; +} +.iti__gm { + --iti-flag-offset: -1328px; +} +.iti__gn { + --iti-flag-offset: -1344px; +} +.iti__gp { + --iti-flag-offset: -1360px; +} +.iti__gq { + --iti-flag-offset: -1376px; +} +.iti__gr { + --iti-flag-offset: -1392px; +} +.iti__gt { + --iti-flag-offset: -1408px; +} +.iti__gu { + --iti-flag-offset: -1424px; +} +.iti__gw { + --iti-flag-offset: -1440px; +} +.iti__gy { + --iti-flag-offset: -1456px; +} +.iti__hk { + --iti-flag-offset: -1472px; +} +.iti__hn { + --iti-flag-offset: -1488px; +} +.iti__hr { + --iti-flag-offset: -1504px; +} +.iti__ht { + --iti-flag-offset: -1520px; +} +.iti__hu { + --iti-flag-offset: -1536px; +} +.iti__id { + --iti-flag-offset: -1552px; +} +.iti__ie { + --iti-flag-offset: -1568px; +} +.iti__il { + --iti-flag-offset: -1584px; +} +.iti__im { + --iti-flag-offset: -1600px; +} +.iti__in { + --iti-flag-offset: -1616px; +} +.iti__io { + --iti-flag-offset: -1632px; +} +.iti__iq { + --iti-flag-offset: -1648px; +} +.iti__ir { + --iti-flag-offset: -1664px; +} +.iti__is { + --iti-flag-offset: -1680px; +} +.iti__it { + --iti-flag-offset: -1696px; +} +.iti__je { + --iti-flag-offset: -1712px; +} +.iti__jm { + --iti-flag-offset: -1728px; +} +.iti__jo { + --iti-flag-offset: -1744px; +} +.iti__jp { + --iti-flag-offset: -1760px; +} +.iti__ke { + --iti-flag-offset: -1776px; +} +.iti__kg { + --iti-flag-offset: -1792px; +} +.iti__kh { + --iti-flag-offset: -1808px; +} +.iti__ki { + --iti-flag-offset: -1824px; +} +.iti__km { + --iti-flag-offset: -1840px; +} +.iti__kn { + --iti-flag-offset: -1856px; +} +.iti__kp { + --iti-flag-offset: -1872px; +} +.iti__kr { + --iti-flag-offset: -1888px; +} +.iti__kw { + --iti-flag-offset: -1904px; +} +.iti__ky { + --iti-flag-offset: -1920px; +} +.iti__kz { + --iti-flag-offset: -1936px; +} +.iti__la { + --iti-flag-offset: -1952px; +} +.iti__lb { + --iti-flag-offset: -1968px; +} +.iti__lc { + --iti-flag-offset: -1984px; +} +.iti__li { + --iti-flag-offset: -2000px; +} +.iti__lk { + --iti-flag-offset: -2016px; +} +.iti__lr { + --iti-flag-offset: -2032px; +} +.iti__ls { + --iti-flag-offset: -2048px; +} +.iti__lt { + --iti-flag-offset: -2064px; +} +.iti__lu { + --iti-flag-offset: -2080px; +} +.iti__lv { + --iti-flag-offset: -2096px; +} +.iti__ly { + --iti-flag-offset: -2112px; +} +.iti__ma { + --iti-flag-offset: -2128px; +} +.iti__mc { + --iti-flag-offset: -2144px; +} +.iti__md { + --iti-flag-offset: -2160px; +} +.iti__me { + --iti-flag-offset: -2176px; +} +.iti__mf { + --iti-flag-offset: -2192px; +} +.iti__mg { + --iti-flag-offset: -2208px; +} +.iti__mh { + --iti-flag-offset: -2224px; +} +.iti__mk { + --iti-flag-offset: -2240px; +} +.iti__ml { + --iti-flag-offset: -2256px; +} +.iti__mm { + --iti-flag-offset: -2272px; +} +.iti__mn { + --iti-flag-offset: -2288px; +} +.iti__mo { + --iti-flag-offset: -2304px; +} +.iti__mp { + --iti-flag-offset: -2320px; +} +.iti__mq { + --iti-flag-offset: -2336px; +} +.iti__mr { + --iti-flag-offset: -2352px; +} +.iti__ms { + --iti-flag-offset: -2368px; +} +.iti__mt { + --iti-flag-offset: -2384px; +} +.iti__mu { + --iti-flag-offset: -2400px; +} +.iti__mv { + --iti-flag-offset: -2416px; +} +.iti__mw { + --iti-flag-offset: -2432px; +} +.iti__mx { + --iti-flag-offset: -2448px; +} +.iti__my { + --iti-flag-offset: -2464px; +} +.iti__mz { + --iti-flag-offset: -2480px; +} +.iti__na { + --iti-flag-offset: -2496px; +} +.iti__nc { + --iti-flag-offset: -2512px; +} +.iti__ne { + --iti-flag-offset: -2528px; +} +.iti__nf { + --iti-flag-offset: -2544px; +} +.iti__ng { + --iti-flag-offset: -2560px; +} +.iti__ni { + --iti-flag-offset: -2576px; +} +.iti__nl { + --iti-flag-offset: -2592px; +} +.iti__no { + --iti-flag-offset: -2608px; +} +.iti__np { + --iti-flag-offset: -2624px; +} +.iti__nr { + --iti-flag-offset: -2640px; +} +.iti__nu { + --iti-flag-offset: -2656px; +} +.iti__nz { + --iti-flag-offset: -2672px; +} +.iti__om { + --iti-flag-offset: -2688px; +} +.iti__pa { + --iti-flag-offset: -2704px; +} +.iti__pe { + --iti-flag-offset: -2720px; +} +.iti__pf { + --iti-flag-offset: -2736px; +} +.iti__pg { + --iti-flag-offset: -2752px; +} +.iti__ph { + --iti-flag-offset: -2768px; +} +.iti__pk { + --iti-flag-offset: -2784px; +} +.iti__pl { + --iti-flag-offset: -2800px; +} +.iti__pm { + --iti-flag-offset: -2816px; +} +.iti__pr { + --iti-flag-offset: -2832px; +} +.iti__ps { + --iti-flag-offset: -2848px; +} +.iti__pt { + --iti-flag-offset: -2864px; +} +.iti__pw { + --iti-flag-offset: -2880px; +} +.iti__py { + --iti-flag-offset: -2896px; +} +.iti__qa { + --iti-flag-offset: -2912px; +} +.iti__re { + --iti-flag-offset: -2928px; +} +.iti__ro { + --iti-flag-offset: -2944px; +} +.iti__rs { + --iti-flag-offset: -2960px; +} +.iti__ru { + --iti-flag-offset: -2976px; +} +.iti__rw { + --iti-flag-offset: -2992px; +} +.iti__sa { + --iti-flag-offset: -3008px; +} +.iti__sb { + --iti-flag-offset: -3024px; +} +.iti__sc { + --iti-flag-offset: -3040px; +} +.iti__sd { + --iti-flag-offset: -3056px; +} +.iti__se { + --iti-flag-offset: -3072px; +} +.iti__sg { + --iti-flag-offset: -3088px; +} +.iti__sh { + --iti-flag-offset: -3104px; +} +.iti__si { + --iti-flag-offset: -3120px; +} +.iti__sj { + --iti-flag-offset: -3136px; +} +.iti__sk { + --iti-flag-offset: -3152px; +} +.iti__sl { + --iti-flag-offset: -3168px; +} +.iti__sm { + --iti-flag-offset: -3184px; +} +.iti__sn { + --iti-flag-offset: -3200px; +} +.iti__so { + --iti-flag-offset: -3216px; +} +.iti__sr { + --iti-flag-offset: -3232px; +} +.iti__ss { + --iti-flag-offset: -3248px; +} +.iti__st { + --iti-flag-offset: -3264px; +} +.iti__sv { + --iti-flag-offset: -3280px; +} +.iti__sx { + --iti-flag-offset: -3296px; +} +.iti__sy { + --iti-flag-offset: -3312px; +} +.iti__sz { + --iti-flag-offset: -3328px; +} +.iti__tc { + --iti-flag-offset: -3344px; +} +.iti__td { + --iti-flag-offset: -3360px; +} +.iti__tg { + --iti-flag-offset: -3376px; +} +.iti__th { + --iti-flag-offset: -3392px; +} +.iti__tj { + --iti-flag-offset: -3408px; +} +.iti__tk { + --iti-flag-offset: -3424px; +} +.iti__tl { + --iti-flag-offset: -3440px; +} +.iti__tm { + --iti-flag-offset: -3456px; +} +.iti__tn { + --iti-flag-offset: -3472px; +} +.iti__to { + --iti-flag-offset: -3488px; +} +.iti__tr { + --iti-flag-offset: -3504px; +} +.iti__tt { + --iti-flag-offset: -3520px; +} +.iti__tv { + --iti-flag-offset: -3536px; +} +.iti__tw { + --iti-flag-offset: -3552px; +} +.iti__tz { + --iti-flag-offset: -3568px; +} +.iti__ua { + --iti-flag-offset: -3584px; +} +.iti__ug { + --iti-flag-offset: -3600px; +} +.iti__us { + --iti-flag-offset: -3616px; +} +.iti__uy { + --iti-flag-offset: -3632px; +} +.iti__uz { + --iti-flag-offset: -3648px; +} +.iti__va { + --iti-flag-offset: -3664px; +} +.iti__vc { + --iti-flag-offset: -3680px; +} +.iti__ve { + --iti-flag-offset: -3696px; +} +.iti__vg { + --iti-flag-offset: -3712px; +} +.iti__vi { + --iti-flag-offset: -3728px; +} +.iti__vn { + --iti-flag-offset: -3744px; +} +.iti__vu { + --iti-flag-offset: -3760px; +} +.iti__wf { + --iti-flag-offset: -3776px; +} +.iti__ws { + --iti-flag-offset: -3792px; +} +.iti__xk { + --iti-flag-offset: -3808px; +} +.iti__ye { + --iti-flag-offset: -3824px; +} +.iti__yt { + --iti-flag-offset: -3840px; +} +.iti__za { + --iti-flag-offset: -3856px; +} +.iti__zm { + --iti-flag-offset: -3872px; +} +.iti__zw { + --iti-flag-offset: -3888px; +} +.iti__globe { + background-image: var(--iti-path-globe-1x); + background-size: contain; + background-position: right; + box-shadow: none; + height: 19px; +} +@media (min-resolution: 2x) { + .iti__flag { + background-image: var(--iti-path-flags-2x); + } + .iti__globe { + background-image: var(--iti-path-globe-2x); + } +} +.iti__selected-country-primary { + padding: 0 8px 0 12px !important; + border-radius: 999px; +} +.iti__search-input { + padding: 6px; +} +.snoo-cls-11.svelte-1977t4s { + stroke-width: 0; + fill: #ffc49c; +} +.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; + -webkit-user-select: none; + -moz-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 (forced-colors: 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 (forced-colors: 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: 0.25; +} +@media (hover: hover) { + .maplibregl-ctrl button:not(:disabled):hover { + background-color: #0000000d; + } +} +.maplibregl-ctrl button:not(:disabled):active { + 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 (forced-colors: 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 (forced-colors: active) and (prefers-color-scheme: light) { + .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 (forced-colors: 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 (forced-colors: active) and (prefers-color-scheme: light) { + .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 (forced-colors: 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='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E"); + } +} +@media (forced-colors: active) and (prefers-color-scheme: light) { + .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-globe .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='none' stroke='%23333' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E"); +} +.maplibregl-ctrl button.maplibregl-ctrl-globe-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='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%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 (forced-colors: 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 (forced-colors: active) and (prefers-color-scheme: light) { + .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 (forced-colors: 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 (forced-colors: active) and (prefers-color-scheme: light) { + 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 (forced-colors: 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 (forced-colors: active) and (prefers-color-scheme: light) { + .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; + -moz-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 0.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: 0.5; + position: absolute; + top: 0; + width: 0; +} +.maplibregl-cooperative-gesture-screen { + align-items: center; + background: #0006; + 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 0.05s; +} +.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message { + display: none; +} +@media (hover: none), (pointer: coarse) { + .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; +} +.disable-pinch-zoom.svelte-6wmtgk { + touch-action: pan-x pan-y; +} diff --git a/frontend-backup/_app/immutable/assets/Geist-cyrillic.CHSlOQsW.woff2 b/frontend-backup/_app/immutable/assets/Geist-cyrillic.CHSlOQsW.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2000e32fd286b53023a41142571f41e6cabf42f2 GIT binary patch literal 14692 zcmV-qIh)3JPew8T0RR9106Am;6aWAK0BvLd066ae0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/frontend-backup/_app/immutable/assets/GeistMono-latin-ext.b6lpi8_2.woff2 b/frontend-backup/_app/immutable/assets/GeistMono-latin-ext.b6lpi8_2.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f638b47fdb22e5db13683579dc505fc511d07a8a GIT binary patch literal 13044 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 CUiOjz literal 0 HcmV?d00001 diff --git a/frontend-backup/_app/immutable/assets/GeistMono-latin.Cjtb1TV-.woff2 b/frontend-backup/_app/immutable/assets/GeistMono-latin.Cjtb1TV-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..504be8626156df9ac8d3defd4b584ee42b80170d GIT binary patch literal 31368 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 literal 0 HcmV?d00001 diff --git a/frontend-backup/_app/immutable/assets/ProfileAvatarWithLevel.6dmPRSfx.css b/frontend-backup/_app/immutable/assets/ProfileAvatarWithLevel.6dmPRSfx.css index 50eb5cc..fc6d64e 100644 --- a/frontend-backup/_app/immutable/assets/ProfileAvatarWithLevel.6dmPRSfx.css +++ b/frontend-backup/_app/immutable/assets/ProfileAvatarWithLevel.6dmPRSfx.css @@ -1 +1,9 @@ -.level-fill.svelte-zhy0pt{--angle: 180deg;--color: black;background:conic-gradient(var(--color),var(--color) var(--angle),transparent calc(var(--angle) + 3deg))} +.level-fill.svelte-zhy0pt { + --angle: 180deg; + --color: black; + background: conic-gradient( + var(--color), + var(--color) var(--angle), + transparent calc(var(--angle) + 3deg) + ); +} diff --git a/frontend-backup/_app/immutable/chunks/0.CnnlsrhC.js b/frontend-backup/_app/immutable/chunks/0.CnnlsrhC.js deleted file mode 100644 index 7025f30..0000000 --- a/frontend-backup/_app/immutable/chunks/0.CnnlsrhC.js +++ /dev/null @@ -1,1458 +0,0 @@ -var ke = (o) => { - throw TypeError(o); -}; -var He = (o, t, l) => t.has(o) || ke("Cannot " + l); -var gt = (o, t, l) => (He(o, t, "read from private field"), l ? l.call(o) : t.get(o)), - qt = (o, t, l) => (t.has(o) ? ke("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(o) : t.set(o, l)), - Qt = (o, t, l, S) => (He(o, t, "write to private field"), S ? S.call(o, l) : t.set(o, l), l); -import "../chunks/Bzak7iHL.js"; -import { o as pt, s as it } from "../chunks/ByKBPM-D.js"; -import { - p as de, - f as et, - d as ot, - b as n, - r as p, - t as J, - c as ue, - bo as le, - ay as pe, - ax as Re, - az as $e, - aR as R, - aG as Ue, - w as _t, - aH as f, - A as e, - aT as b, - x as $t, - s as Mt, - bj as Ve, - ap as ht, - aS as g, - a as v, - an as tn, - aU as Ne, - q as ne, - bk as en, -} from "../chunks/DUoKDNpf.js"; -import { s as Jt } from "../chunks/g8c1BvYP.js"; -import { v as nn } from "../chunks/F0pgzfyy.js"; -import { c as an, A as on, s as sn, a as rn } from "../chunks/D2m5UD3G.js"; -import { d as Z, e as xt, f as ln, g as Fe, u as cn } from "../chunks/1lh-LSvX.js"; -import "../chunks/C5GsJ62f.js"; -import { p as O, i as I, s as Me, r as dn } from "../chunks/5NasrULQ.js"; -import { e as Pe } from "../chunks/U908S-6f.js"; -import { c as It, s as Tt, b as A, d as Ae, a as un, S as fn } from "../chunks/B1GmkH4o.js"; -import { b as Ke } from "../chunks/CMs8vKjq.js"; -import { c as Ot } from "../chunks/BtP6pfnb.js"; -import "../chunks/D35KiPL1.js"; -const vn = !0, - Ia = Object.freeze(Object.defineProperty({ __proto__: null, prerender: vn }, Symbol.toStringTag, { value: "Module" })), - mn = Array(12).fill(0); -var gn = et('
'), - hn = et('
'); -function _n(o, t) { - de(t, !0); - var l = hn(), - S = ot(l); - Pe( - S, - 23, - () => mn, - (M, L) => `spinner-bar-${L}`, - (M, L) => { - var V = gn(); - n(M, V); - } - ), - p(S), - p(l), - J( - (M) => { - Tt(l, 1, M), A(l, "data-visible", t.visible); - }, - [() => It(["sonner-loading-wrapper", t.class].filter(Boolean).join(" "))] - ), - n(o, l), - ue(); -} -const bn = typeof window < "u" ? window : void 0; -function wn(o) { - let t = o.activeElement; - for (; t != null && t.shadowRoot; ) { - const l = t.shadowRoot.activeElement; - if (l === t) break; - t = l; - } - return t; -} -var jt, te; -class yn { - constructor(t = {}) { - qt(this, jt); - qt(this, te); - const { window: l = bn, document: S = l == null ? void 0 : l.document } = t; - l !== void 0 && - (Qt(this, jt, S), - Qt( - this, - te, - an((M) => { - const L = le(l, "focusin", M), - V = le(l, "focusout", M); - return () => { - L(), V(); - }; - }) - )); - } - get current() { - var t; - return (t = gt(this, te)) == null || t.call(this), gt(this, jt) ? wn(gt(this, jt)) : null; - } -} -(jt = new WeakMap()), (te = new WeakMap()); -new yn(); -var ee, St; -class xn { - constructor(t) { - qt(this, ee); - qt(this, St); - Qt(this, ee, t), Qt(this, St, Symbol(t)); - } - get key() { - return gt(this, St); - } - exists() { - return pe(gt(this, St)); - } - get() { - const t = Re(gt(this, St)); - if (t === void 0) throw new Error(`Context "${gt(this, ee)}" not found`); - return t; - } - getOr(t) { - const l = Re(gt(this, St)); - return l === void 0 ? t : l; - } - set(t) { - return $e(gt(this, St), t); - } -} -(ee = new WeakMap()), (St = new WeakMap()); -const In = new xn(""); -function ce(o) { - return o.label !== void 0; -} -function Tn() { - let o = R(Ue(typeof document < "u" ? document.hidden : !1)); - return ( - _t(() => - le(document, "visibilitychange", () => { - f(o, document.hidden, !0); - }) - ), - { - get current() { - return e(o); - }, - } - ); -} -const je = 4e3, - Sn = 14, - Bn = 45, - Dn = 200, - En = 0.05, - Mn = { toast: "", title: "", description: "", loader: "", closeButton: "", cancelButton: "", actionButton: "", action: "", warning: "", error: "", success: "", default: "", info: "", loading: "" }; -function An(o) { - const [t, l] = o.split("-"), - S = []; - return t && S.push(t), l && S.push(l), S; -} -function ze(o) { - return 1 / (1.5 + Math.abs(o) / 20); -} -var Cn = et("
"), - Pn = (o, t, l, S, M) => { - var L, V; - e(t) || !e(l) || (S(), (V = (L = M.toast).onDismiss) == null || V.call(L, M.toast)); - }, - On = et(''), - Ln = et('
'), - kn = et('
'), - Hn = (o, t, l, S) => { - var M, L; - ce(t.toast.cancel) && e(l) && ((L = (M = t.toast.cancel) == null ? void 0 : M.onClick) == null || L.call(M, o), S()); - }, - Rn = et(''), - Nn = (o, t, l) => { - var S; - ce(t.toast.action) && ((S = t.toast.action) == null || S.onClick(o), !o.defaultPrevented && l()); - }, - Fn = et(''), - jn = et('
', 1), - zn = et('
  • '); -function Un(o, t) { - de(t, !0); - const l = (s) => { - var c = g(), - x = v(c); - { - var T = (h) => { - var W = Cn(), - tt = ot(W); - it(tt, () => t.loadingIcon), - p(W), - J( - (Y) => { - Tt(W, 1, Y), A(W, "data-visible", e(E) === "loading"); - }, - [ - () => { - var Y, j, m; - return It(xt((Y = e(at)) == null ? void 0 : Y.loader, (m = (j = t.toast) == null ? void 0 : j.classes) == null ? void 0 : m.loader, "sonner-loader")); - }, - ] - ), - n(h, W); - }, - B = (h) => { - { - let W = b(() => { - var Y, j; - return xt((Y = e(at)) == null ? void 0 : Y.loader, (j = t.toast.classes) == null ? void 0 : j.loader); - }), - tt = b(() => e(E) === "loading"); - _n(h, { - get class() { - return e(W); - }, - get visible() { - return e(tt); - }, - }); - } - }; - I(x, (h) => { - t.loadingIcon ? h(T) : h(B, !1); - }); - } - n(s, c); - }; - let S = O(t, "cancelButtonStyle", 3, ""), - M = O(t, "actionButtonStyle", 3, ""), - L = O(t, "descriptionClass", 3, ""), - V = O(t, "unstyled", 3, !1), - Bt = O(t, "defaultRichColors", 3, !1); - const $ = { ...Mn }; - let N = R(!1), - q = R(!1), - Lt = R(!1), - zt = R(!1), - Ut = R(!1), - Q = R(0), - bt = R(0), - kt = t.toast.duration || t.duration || je, - nt = R(void 0), - ut = R(null), - Vt = R(null); - const fe = b(() => t.index === 0), - ve = b(() => t.index + 1 <= t.visibleToasts), - E = b(() => t.toast.type), - ft = b(() => t.toast.dismissable !== !1), - At = b(() => t.toast.class || ""), - Dt = b(() => t.toast.descriptionClass || ""), - vt = b(() => Z.heights.findIndex((s) => s.toastId === t.toast.id) || 0), - Ct = b(() => t.toast.closeButton ?? t.closeButton), - me = b(() => t.toast.duration ?? t.duration ?? je); - let Et = null; - const ae = b(() => t.position.split("-")), - ge = b(() => Z.heights.reduce((s, c, x) => (x >= e(vt) ? s : s + c.height), 0)), - he = Tn(), - _e = b(() => t.toast.invert || t.invert), - Kt = b(() => e(E) === "loading"), - at = b(() => ({ ...$, ...t.classes })), - be = b(() => t.toast.title), - Pt = b(() => t.toast.description); - let Wt = R(0), - oe = R(0); - const r = b(() => Math.round(e(vt) * Sn + e(ge))); - _t(() => { - e(be), e(Pt); - let s; - t.expanded || t.expandByDefault ? (s = 1) : (s = 1 - t.index * En); - const c = $t(() => e(nt)); - if (c === void 0) return; - c.style.setProperty("height", "auto"); - const x = c.offsetHeight, - T = c.getBoundingClientRect().height, - B = Math.round((T / s + Number.EPSILON) & 100) / 100; - c.style.removeProperty("height"); - let h; - Math.abs(B - x) < 1 ? (h = B) : (h = x), - f(bt, h, !0), - $t(() => { - Z.setHeight({ toastId: t.toast.id, height: h }); - }); - }); - function u() { - f(q, !0), - f(Q, e(r), !0), - Z.removeHeight(t.toast.id), - setTimeout(() => { - Z.remove(t.toast.id); - }, Dn); - } - let F; - const wt = b(() => (t.toast.promise && e(E) === "loading") || t.toast.duration === Number.POSITIVE_INFINITY); - function st() { - f(Wt, new Date().getTime(), !0), - (F = setTimeout(() => { - var s, c; - (c = (s = t.toast).onAutoClose) == null || c.call(s, t.toast), u(); - }, kt)); - } - function Ht() { - if (e(oe) < e(Wt)) { - const s = new Date().getTime() - e(Wt); - kt = kt - s; - } - f(oe, new Date().getTime(), !0); - } - _t(() => { - t.toast.updated && (clearTimeout(F), (kt = e(me)), st()); - }), - _t(() => (e(wt) || (t.expanded || t.interacting || he.current ? Ht() : st()), () => clearTimeout(F))), - pt(() => { - var c; - f(N, !0); - const s = (c = e(nt)) == null ? void 0 : c.getBoundingClientRect().height; - return ( - f(bt, s, !0), - Z.setHeight({ toastId: t.toast.id, height: s }), - () => { - Z.removeHeight(t.toast.id); - } - ); - }), - _t(() => { - t.toast.delete && - $t(() => { - var s, c; - u(), (c = (s = t.toast).onDismiss) == null || c.call(s, t.toast); - }); - }); - const Oe = (s) => { - if (e(Kt)) return; - f(Q, e(r), !0); - const c = s.target; - c.setPointerCapture(s.pointerId), c.tagName !== "BUTTON" && (f(Lt, !0), (Et = { x: s.clientX, y: s.clientY })); - }, - ie = () => { - var h, W, tt, Y, j, m; - if (e(zt) || !e(ft)) return; - Et = null; - const s = Number(((h = e(nt)) == null ? void 0 : h.style.getPropertyValue("--swipe-amount-x").replace("px", "")) || 0), - c = Number(((W = e(nt)) == null ? void 0 : W.style.getPropertyValue("--swipe-amount-y").replace("px", "")) || 0), - x = new Date().getTime() - 0, - T = e(ut) === "x" ? s : c, - B = Math.abs(T) / x; - if (Math.abs(T) >= Bn || B > 0.11) { - f(Q, e(r), !0), (Y = (tt = t.toast).onDismiss) == null || Y.call(tt, t.toast), e(ut) === "x" ? f(Vt, s > 0 ? "right" : "left", !0) : f(Vt, c > 0 ? "down" : "up", !0), u(), f(zt, !0); - return; - } else (j = e(nt)) == null || j.style.setProperty("--swipe-amount-x", "0px"), (m = e(nt)) == null || m.style.setProperty("--swipe-amount-y", "0px"); - f(Ut, !1), f(Lt, !1), f(ut, null); - }, - mt = (s) => { - var W, tt, Y; - if (!Et || !e(ft) || (((W = window.getSelection()) == null ? void 0 : W.toString().length) ?? -1) > 0) return; - const x = s.clientY - Et.y, - T = s.clientX - Et.x, - B = t.swipeDirections ?? An(t.position); - !e(ut) && (Math.abs(T) > 1 || Math.abs(x) > 1) && f(ut, Math.abs(T) > Math.abs(x) ? "x" : "y", !0); - let h = { x: 0, y: 0 }; - if (e(ut) === "y") { - if (B.includes("top") || B.includes("bottom")) - if ((B.includes("top") && x < 0) || (B.includes("bottom") && x > 0)) h.y = x; - else { - const j = x * ze(x); - h.y = Math.abs(j) < Math.abs(x) ? j : x; - } - } else if (e(ut) === "x" && (B.includes("left") || B.includes("right"))) - if ((B.includes("left") && T < 0) || (B.includes("right") && T > 0)) h.x = T; - else { - const j = T * ze(T); - h.x = Math.abs(j) < Math.abs(T) ? j : T; - } - (Math.abs(h.x) > 0 || Math.abs(h.y) > 0) && f(Ut, !0), (tt = e(nt)) == null || tt.style.setProperty("--swipe-amount-x", `${h.x}px`), (Y = e(nt)) == null || Y.style.setProperty("--swipe-amount-y", `${h.y}px`); - }, - yt = () => { - f(Lt, !1), f(ut, null), (Et = null); - }, - K = b(() => (t.toast.icon ? t.toast.icon : e(E) === "success" ? t.successIcon : e(E) === "error" ? t.errorIcon : e(E) === "warning" ? t.warningIcon : e(E) === "info" ? t.infoIcon : e(E) === "loading" ? t.loadingIcon : null)); - var w = zn(); - A(w, "tabindex", 0); - let se; - (w.__pointermove = mt), (w.__pointerup = ie), (w.__pointerdown = Oe); - var we = ot(w); - { - var ye = (s) => { - var c = On(); - c.__click = [Pn, Kt, ft, u, t]; - var x = ot(c); - it(x, () => t.closeIcon ?? ht), - p(c), - J( - (T) => { - A(c, "aria-label", t.closeButtonAriaLabel), A(c, "data-disabled", e(Kt)), Tt(c, 1, T); - }, - [ - () => { - var T, B, h; - return It(xt((T = e(at)) == null ? void 0 : T.closeButton, (h = (B = t.toast) == null ? void 0 : B.classes) == null ? void 0 : h.closeButton)); - }, - ] - ), - n(s, c); - }; - I(we, (s) => { - e(Ct) && !t.toast.component && e(E) !== "loading" && t.closeIcon !== null && s(ye); - }); - } - var xe = Mt(we, 2); - { - var Ie = (s) => { - const c = b(() => t.toast.component); - var x = g(), - T = v(x); - Ot( - T, - () => e(c), - (B, h) => { - h( - B, - Me(() => t.toast.componentProps, { closeToast: u }) - ); - } - ), - n(s, x); - }, - Te = (s) => { - var c = jn(), - x = v(c); - { - var T = (y) => { - var a = Ln(), - d = ot(a); - { - var D = (_) => { - var C = g(), - z = v(C); - { - var H = (G) => { - var U = g(), - ct = v(U); - Ot( - ct, - () => t.toast.icon, - (dt, Yt) => { - Yt(dt, {}); - } - ), - n(G, U); - }, - P = (G) => { - l(G); - }; - I(z, (G) => { - t.toast.icon ? G(H) : G(P, !1); - }); - } - n(_, C); - }; - I(d, (_) => { - (t.toast.promise || e(E) === "loading") && _(D); - }); - } - var k = Mt(d, 2); - { - var i = (_) => { - var C = g(), - z = v(C); - { - var H = (G) => { - var U = g(), - ct = v(U); - Ot( - ct, - () => t.toast.icon, - (dt, Yt) => { - Yt(dt, {}); - } - ), - n(G, U); - }, - P = (G) => { - var U = g(), - ct = v(U); - { - var dt = (Rt) => { - var Gt = g(), - Se = v(Gt); - it(Se, () => t.successIcon ?? ht), n(Rt, Gt); - }, - Yt = (Rt) => { - var Gt = g(), - Se = v(Gt); - { - var Ge = (Nt) => { - var Zt = g(), - Be = v(Zt); - it(Be, () => t.errorIcon ?? ht), n(Nt, Zt); - }, - Ze = (Nt) => { - var Zt = g(), - Be = v(Zt); - { - var Xe = (Ft) => { - var Xt = g(), - De = v(Xt); - it(De, () => t.warningIcon ?? ht), n(Ft, Xt); - }, - qe = (Ft) => { - var Xt = g(), - De = v(Xt); - { - var Qe = (Ee) => { - var Le = g(), - Je = v(Le); - it(Je, () => t.infoIcon ?? ht), n(Ee, Le); - }; - I( - De, - (Ee) => { - e(E) === "info" && Ee(Qe); - }, - !0 - ); - } - n(Ft, Xt); - }; - I( - Be, - (Ft) => { - e(E) === "warning" ? Ft(Xe) : Ft(qe, !1); - }, - !0 - ); - } - n(Nt, Zt); - }; - I( - Se, - (Nt) => { - e(E) === "error" ? Nt(Ge) : Nt(Ze, !1); - }, - !0 - ); - } - n(Rt, Gt); - }; - I( - ct, - (Rt) => { - e(E) === "success" ? Rt(dt) : Rt(Yt, !1); - }, - !0 - ); - } - n(G, U); - }; - I(z, (G) => { - t.toast.icon ? G(H) : G(P, !1); - }); - } - n(_, C); - }; - I(k, (_) => { - t.toast.type !== "loading" && _(i); - }); - } - p(a), - J((_) => Tt(a, 1, _), [ - () => { - var _, C, z; - return It(xt((_ = e(at)) == null ? void 0 : _.icon, (z = (C = t.toast) == null ? void 0 : C.classes) == null ? void 0 : z.icon)); - }, - ]), - n(y, a); - }; - I(x, (y) => { - (e(E) || t.toast.icon || t.toast.promise) && t.toast.icon !== null && (e(K) !== null || t.toast.icon) && y(T); - }); - } - var B = Mt(x, 2), - h = ot(B), - W = ot(h); - { - var tt = (y) => { - var a = g(), - d = v(a); - { - var D = (i) => { - const _ = b(() => t.toast.title); - var C = g(), - z = v(C); - Ot( - z, - () => e(_), - (H, P) => { - P( - H, - Me(() => t.toast.componentProps) - ); - } - ), - n(i, C); - }, - k = (i) => { - var _ = Ne(); - J(() => Jt(_, t.toast.title)), n(i, _); - }; - I(d, (i) => { - typeof t.toast.title != "string" ? i(D) : i(k, !1); - }); - } - n(y, a); - }; - I(W, (y) => { - t.toast.title && y(tt); - }); - } - p(h); - var Y = Mt(h, 2); - { - var j = (y) => { - var a = kn(), - d = ot(a); - { - var D = (i) => { - const _ = b(() => t.toast.description); - var C = g(), - z = v(C); - Ot( - z, - () => e(_), - (H, P) => { - P( - H, - Me(() => t.toast.componentProps) - ); - } - ), - n(i, C); - }, - k = (i) => { - var _ = Ne(); - J(() => Jt(_, t.toast.description)), n(i, _); - }; - I(d, (i) => { - typeof t.toast.description != "string" ? i(D) : i(k, !1); - }); - } - p(a), - J((i) => Tt(a, 1, i), [ - () => { - var i, _; - return It(xt(L(), e(Dt), (i = e(at)) == null ? void 0 : i.description, (_ = t.toast.classes) == null ? void 0 : _.description)); - }, - ]), - n(y, a); - }; - I(Y, (y) => { - t.toast.description && y(j); - }); - } - p(B); - var m = Mt(B, 2); - { - var X = (y) => { - var a = g(), - d = v(a); - { - var D = (i) => { - var _ = g(), - C = v(_); - Ot( - C, - () => t.toast.cancel, - (z, H) => { - H(z, {}); - } - ), - n(i, _); - }, - k = (i) => { - var _ = g(), - C = v(_); - { - var z = (H) => { - var P = Rn(); - P.__click = [Hn, t, ft, u]; - var G = ot(P, !0); - p(P), - J( - (U) => { - Ae(P, t.toast.cancelButtonStyle ?? S()), Tt(P, 1, U), Jt(G, t.toast.cancel.label); - }, - [ - () => { - var U, ct, dt; - return It(xt((U = e(at)) == null ? void 0 : U.cancelButton, (dt = (ct = t.toast) == null ? void 0 : ct.classes) == null ? void 0 : dt.cancelButton)); - }, - ] - ), - n(H, P); - }; - I( - C, - (H) => { - ce(t.toast.cancel) && H(z); - }, - !0 - ); - } - n(i, _); - }; - I(d, (i) => { - typeof t.toast.cancel == "function" ? i(D) : i(k, !1); - }); - } - n(y, a); - }; - I(m, (y) => { - t.toast.cancel && y(X); - }); - } - var rt = Mt(m, 2); - { - var lt = (y) => { - var a = g(), - d = v(a); - { - var D = (i) => { - var _ = g(), - C = v(_); - Ot( - C, - () => t.toast.action, - (z, H) => { - H(z, {}); - } - ), - n(i, _); - }, - k = (i) => { - var _ = g(), - C = v(_); - { - var z = (H) => { - var P = Fn(); - P.__click = [Nn, t, u]; - var G = ot(P, !0); - p(P), - J( - (U) => { - Ae(P, t.toast.actionButtonStyle ?? M()), Tt(P, 1, U), Jt(G, t.toast.action.label); - }, - [ - () => { - var U, ct, dt; - return It(xt((U = e(at)) == null ? void 0 : U.actionButton, (dt = (ct = t.toast) == null ? void 0 : ct.classes) == null ? void 0 : dt.actionButton)); - }, - ] - ), - n(H, P); - }; - I( - C, - (H) => { - ce(t.toast.action) && H(z); - }, - !0 - ); - } - n(i, _); - }; - I(d, (i) => { - typeof t.toast.action == "function" ? i(D) : i(k, !1); - }); - } - n(y, a); - }; - I(rt, (y) => { - t.toast.action && y(lt); - }); - } - J((y) => Tt(h, 1, y), [ - () => { - var y, a, d; - return It(xt((y = e(at)) == null ? void 0 : y.title, (d = (a = t.toast) == null ? void 0 : a.classes) == null ? void 0 : d.title)); - }, - ]), - n(s, c); - }; - I(xe, (s) => { - t.toast.component ? s(Ie) : s(Te, !1); - }); - } - p(w), - Ke( - w, - (s) => f(nt, s), - () => e(nt) - ), - J( - (s, c, x, T) => { - Tt(w, 1, s), - A(w, "data-rich-colors", t.toast.richColors ?? Bt()), - A(w, "data-styled", !(t.toast.component || t.toast.unstyled || V())), - A(w, "data-mounted", e(N)), - A(w, "data-promise", c), - A(w, "data-swiped", e(Ut)), - A(w, "data-removed", e(q)), - A(w, "data-visible", e(ve)), - A(w, "data-y-position", e(ae)[0]), - A(w, "data-x-position", e(ae)[1]), - A(w, "data-index", t.index), - A(w, "data-front", e(fe)), - A(w, "data-swiping", e(Lt)), - A(w, "data-dismissable", e(ft)), - A(w, "data-type", e(E)), - A(w, "data-invert", e(_e)), - A(w, "data-swipe-out", e(zt)), - A(w, "data-swipe-direction", e(Vt)), - A(w, "data-expanded", x), - (se = Ae(w, `${t.style} ${t.toast.style}`, se, T)); - }, - [ - () => { - var s, c, x, T, B, h; - return It( - xt( - t.class, - e(At), - (s = e(at)) == null ? void 0 : s.toast, - (x = (c = t.toast) == null ? void 0 : c.classes) == null ? void 0 : x.toast, - (T = e(at)) == null ? void 0 : T[e(E)], - (h = (B = t.toast) == null ? void 0 : B.classes) == null ? void 0 : h[e(E)] - ) - ); - }, - () => !!t.toast.promise, - () => !!(t.expanded || (t.expandByDefault && e(N))), - () => ({ "--index": t.index, "--toasts-before": t.index, "--z-index": Z.toasts.length - t.index, "--offset": `${e(q) ? e(Q) : e(r)}px`, "--initial-height": t.expandByDefault ? "auto" : `${e(bt)}px` }), - ] - ), - Ve("dragend", w, yt), - n(o, w), - ue(); -} -tn(["pointermove", "pointerup", "pointerdown", "click"]); -var Vn = ne( - '' -); -function Kn(o) { - var t = Vn(); - n(o, t); -} -var Wn = ne( - '' -); -function Yn(o) { - var t = Wn(); - n(o, t); -} -var Gn = ne( - '' -); -function Zn(o) { - var t = Gn(); - n(o, t); -} -var Xn = ne( - '' -); -function qn(o) { - var t = Xn(); - n(o, t); -} -var Qn = ne( - '' -); -function Jn(o) { - var t = Qn(); - n(o, t); -} -const pn = 3, - We = "24px", - Ye = "16px", - $n = 4e3, - ta = 356, - ea = 14, - Ce = "dark", - re = "light"; -function na(o, t) { - const l = {}; - return ( - [o, t].forEach((S, M) => { - const L = M === 1, - V = L ? "--mobile-offset" : "--offset", - Bt = L ? Ye : We; - function $(N) { - ["top", "right", "bottom", "left"].forEach((q) => { - l[`${V}-${q}`] = typeof N == "number" ? `${N}px` : N; - }); - } - typeof S == "number" || typeof S == "string" - ? $(S) - : typeof S == "object" - ? ["top", "right", "bottom", "left"].forEach((N) => { - const q = S[N]; - q === void 0 ? (l[`${V}-${N}`] = Bt) : (l[`${V}-${N}`] = typeof q == "number" ? `${q}px` : q); - }) - : $(Bt); - }), - l - ); -} -var aa = et("
      "), - oa = et('
      '); -function ia(o, t) { - de(t, !0); - function l(r) { - return r !== "system" ? r : typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? Ce : re; - } - let S = O(t, "invert", 3, !1), - M = O(t, "position", 3, "bottom-right"), - L = O(t, "hotkey", 19, () => ["altKey", "KeyT"]), - V = O(t, "expand", 3, !1), - Bt = O(t, "closeButton", 3, !1), - $ = O(t, "offset", 3, We), - N = O(t, "mobileOffset", 3, Ye), - q = O(t, "theme", 3, "light"), - Lt = O(t, "richColors", 3, !1), - zt = O(t, "duration", 3, $n), - Ut = O(t, "visibleToasts", 3, pn), - Q = O(t, "toastOptions", 19, () => ({})), - bt = O(t, "dir", 7, "auto"), - kt = O(t, "gap", 3, ea), - nt = O(t, "containerAriaLabel", 3, "Notifications"), - ut = O(t, "closeButtonAriaLabel", 3, "Close toast"), - Vt = dn(t, [ - "$$slots", - "$$events", - "$$legacy", - "invert", - "position", - "hotkey", - "expand", - "closeButton", - "offset", - "mobileOffset", - "theme", - "richColors", - "duration", - "visibleToasts", - "toastOptions", - "dir", - "gap", - "loadingIcon", - "successIcon", - "errorIcon", - "warningIcon", - "closeIcon", - "infoIcon", - "containerAriaLabel", - "class", - "closeButtonAriaLabel", - "onblur", - "onfocus", - "onmouseenter", - "onmousemove", - "onmouseleave", - "ondragend", - "onpointerdown", - "onpointerup", - ]); - function fe() { - if (bt() !== "auto") return bt(); - if (typeof window > "u" || typeof document > "u") return "ltr"; - const r = document.documentElement.getAttribute("dir"); - return r === "auto" || !r ? ($t(() => bt(window.getComputedStyle(document.documentElement).direction ?? "ltr")), bt()) : ($t(() => bt(r)), r); - } - const ve = b(() => Array.from(new Set([M(), ...Z.toasts.filter((r) => r.position).map((r) => r.position)].filter(Boolean)))); - let E = R(!1), - ft = R(!1), - At = R(Ue(l(q()))), - Dt = R(void 0), - vt = R(null), - Ct = R(!1); - const me = b(() => L().join("+").replace(/Key/g, "").replace(/Digit/g, "")); - _t(() => { - Z.toasts.length <= 1 && f(E, !1); - }), - _t(() => { - const r = Z.toasts.filter((u) => u.dismiss && !u.delete); - if (r.length > 0) { - const u = Z.toasts.map((F) => (r.find((st) => st.id === F.id) ? { ...F, delete: !0 } : F)); - Z.toasts = u; - } - }), - _t(() => () => { - e(Dt) && e(vt) && (e(vt).focus({ preventScroll: !0 }), f(vt, null), f(Ct, !1)); - }), - pt( - () => ( - Z.reset(), - le(document, "keydown", (u) => { - var wt, st; - L().every((Ht) => u[Ht] || u.code === Ht) && (f(E, !0), (wt = e(Dt)) == null || wt.focus()), - u.code === "Escape" && (document.activeElement === e(Dt) || ((st = e(Dt)) != null && st.contains(document.activeElement))) && f(E, !1); - }) - ) - ), - _t(() => { - if ((q() !== "system" && f(At, q()), typeof window < "u")) { - q() === "system" && (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? f(At, Ce) : f(At, re)); - const r = window.matchMedia("(prefers-color-scheme: dark)"), - u = ({ matches: F }) => { - f(At, F ? Ce : re, !0); - }; - "addEventListener" in r ? r.addEventListener("change", u) : r.addListener(u); - } - }); - const Et = (r) => { - var u; - (u = t.onblur) == null || u.call(t, r), e(Ct) && !r.currentTarget.contains(r.relatedTarget) && (f(Ct, !1), e(vt) && (e(vt).focus({ preventScroll: !0 }), f(vt, null))); - }, - ae = (r) => { - var F; - (F = t.onfocus) == null || F.call(t, r), !(r.target instanceof HTMLElement && r.target.dataset.dismissable === "false") && (e(Ct) || (f(Ct, !0), f(vt, r.relatedTarget, !0))); - }, - ge = (r) => { - var F; - (F = t.onpointerdown) == null || F.call(t, r), !(r.target instanceof HTMLElement && r.target.dataset.dismissable === "false") && f(ft, !0); - }, - he = (r) => { - var u; - (u = t.onmouseenter) == null || u.call(t, r), f(E, !0); - }, - _e = (r) => { - var u; - (u = t.onmouseleave) == null || u.call(t, r), e(ft) || f(E, !1); - }, - Kt = (r) => { - var u; - (u = t.onmousemove) == null || u.call(t, r), f(E, !0); - }, - at = (r) => { - var u; - (u = t.ondragend) == null || u.call(t, r), f(E, !1); - }, - be = (r) => { - var u; - (u = t.onpointerup) == null || u.call(t, r), f(ft, !1); - }; - In.set(new ln()); - var Pt = oa(); - A(Pt, "tabindex", -1); - var Wt = ot(Pt); - { - var oe = (r) => { - var u = g(), - F = v(u); - Pe( - F, - 18, - () => e(ve), - (wt) => wt, - (wt, st, Ht, Oe) => { - const ie = b(() => { - const [K, w] = st.split("-"); - return { y: K, x: w }; - }), - mt = b(() => na($(), N())); - var yt = aa(); - un( - yt, - (K, w) => ({ - tabindex: -1, - dir: K, - class: t.class, - "data-sonner-toaster": !0, - "data-sonner-theme": e(At), - "data-y-position": e(ie).y, - "data-x-position": e(ie).x, - style: t.style, - onblur: Et, - onfocus: ae, - onmouseenter: he, - onmousemove: Kt, - onmouseleave: _e, - ondragend: at, - onpointerdown: ge, - onpointerup: be, - ...Vt, - [fn]: w, - }), - [ - fe, - () => { - var K; - return { - "--front-toast-height": `${(K = Z.heights[0]) == null ? void 0 : K.height}px`, - "--width": `${ta}px`, - "--gap": `${kt()}px`, - "--offset-top": e(mt)["--offset-top"], - "--offset-right": e(mt)["--offset-right"], - "--offset-bottom": e(mt)["--offset-bottom"], - "--offset-left": e(mt)["--offset-left"], - "--mobile-offset-top": e(mt)["--mobile-offset-top"], - "--mobile-offset-right": e(mt)["--mobile-offset-right"], - "--mobile-offset-bottom": e(mt)["--mobile-offset-bottom"], - "--mobile-offset-left": e(mt)["--mobile-offset-left"], - }; - }, - ], - void 0, - "svelte-tppj9g" - ), - Pe( - yt, - 23, - () => Z.toasts.filter((K) => (!K.position && e(Ht) === 0) || K.position === st), - (K) => K.id, - (K, w, se, we) => { - { - const ye = (m) => { - var X = g(), - rt = v(X); - { - var lt = (a) => { - var d = g(), - D = v(d); - it(D, () => t.successIcon ?? ht), n(a, d); - }, - y = (a) => { - var d = g(), - D = v(d); - { - var k = (i) => { - Kn(i); - }; - I( - D, - (i) => { - t.successIcon !== null && i(k); - }, - !0 - ); - } - n(a, d); - }; - I(rt, (a) => { - t.successIcon ? a(lt) : a(y, !1); - }); - } - n(m, X); - }, - xe = (m) => { - var X = g(), - rt = v(X); - { - var lt = (a) => { - var d = g(), - D = v(d); - it(D, () => t.errorIcon ?? ht), n(a, d); - }, - y = (a) => { - var d = g(), - D = v(d); - { - var k = (i) => { - Yn(i); - }; - I( - D, - (i) => { - t.errorIcon !== null && i(k); - }, - !0 - ); - } - n(a, d); - }; - I(rt, (a) => { - t.errorIcon ? a(lt) : a(y, !1); - }); - } - n(m, X); - }, - Ie = (m) => { - var X = g(), - rt = v(X); - { - var lt = (a) => { - var d = g(), - D = v(d); - it(D, () => t.warningIcon ?? ht), n(a, d); - }, - y = (a) => { - var d = g(), - D = v(d); - { - var k = (i) => { - Zn(i); - }; - I( - D, - (i) => { - t.warningIcon !== null && i(k); - }, - !0 - ); - } - n(a, d); - }; - I(rt, (a) => { - t.warningIcon ? a(lt) : a(y, !1); - }); - } - n(m, X); - }, - Te = (m) => { - var X = g(), - rt = v(X); - { - var lt = (a) => { - var d = g(), - D = v(d); - it(D, () => t.infoIcon ?? ht), n(a, d); - }, - y = (a) => { - var d = g(), - D = v(d); - { - var k = (i) => { - qn(i); - }; - I( - D, - (i) => { - t.infoIcon !== null && i(k); - }, - !0 - ); - } - n(a, d); - }; - I(rt, (a) => { - t.infoIcon ? a(lt) : a(y, !1); - }); - } - n(m, X); - }, - s = (m) => { - var X = g(), - rt = v(X); - { - var lt = (a) => { - var d = g(), - D = v(d); - it(D, () => t.closeIcon ?? ht), n(a, d); - }, - y = (a) => { - var d = g(), - D = v(d); - { - var k = (i) => { - Jn(i); - }; - I( - D, - (i) => { - t.closeIcon !== null && i(k); - }, - !0 - ); - } - n(a, d); - }; - I(rt, (a) => { - t.closeIcon ? a(lt) : a(y, !1); - }); - } - n(m, X); - }; - let c = b(() => { - var m; - return ((m = Q()) == null ? void 0 : m.duration) ?? zt(); - }), - x = b(() => { - var m; - return ((m = Q()) == null ? void 0 : m.class) ?? ""; - }), - T = b(() => { - var m; - return ((m = Q()) == null ? void 0 : m.descriptionClass) || ""; - }), - B = b(() => { - var m; - return ((m = Q()) == null ? void 0 : m.style) ?? ""; - }), - h = b(() => Q().classes || {}), - W = b(() => Q().unstyled ?? !1), - tt = b(() => { - var m; - return ((m = Q()) == null ? void 0 : m.cancelButtonStyle) ?? ""; - }), - Y = b(() => { - var m; - return ((m = Q()) == null ? void 0 : m.actionButtonStyle) ?? ""; - }), - j = b(() => { - var m; - return ((m = Q()) == null ? void 0 : m.closeButtonAriaLabel) ?? ut(); - }); - Un(K, { - get index() { - return e(se); - }, - get toast() { - return e(w); - }, - get defaultRichColors() { - return Lt(); - }, - get duration() { - return e(c); - }, - get class() { - return e(x); - }, - get descriptionClass() { - return e(T); - }, - get invert() { - return S(); - }, - get visibleToasts() { - return Ut(); - }, - get closeButton() { - return Bt(); - }, - get interacting() { - return e(ft); - }, - get position() { - return st; - }, - get style() { - return e(B); - }, - get classes() { - return e(h); - }, - get unstyled() { - return e(W); - }, - get cancelButtonStyle() { - return e(tt); - }, - get actionButtonStyle() { - return e(Y); - }, - get closeButtonAriaLabel() { - return e(j); - }, - get expandByDefault() { - return V(); - }, - get expanded() { - return e(E); - }, - get loadingIcon() { - return t.loadingIcon; - }, - successIcon: ye, - errorIcon: xe, - warningIcon: Ie, - infoIcon: Te, - closeIcon: s, - $$slots: { successIcon: !0, errorIcon: !0, warningIcon: !0, infoIcon: !0, closeIcon: !0 }, - }); - } - } - ), - p(yt), - Ke( - yt, - (K) => f(Dt, K), - () => e(Dt) - ), - J(() => (yt.dir = yt.dir)), - n(wt, yt); - } - ), - n(r, u); - }; - I(Wt, (r) => { - Z.toasts.length > 0 && r(oe); - }); - } - p(Pt), J(() => A(Pt, "aria-label", `${nt() ?? ""} ${e(me) ?? ""}`)), n(o, Pt), ue(); -} -var sa = et(' ', 1); -function Ta(o, t) { - de(t, !0), - pt(() => { - cn.refresh(); - let $ = setInterval(() => { - sn(); - }, 5e3); - return () => { - clearTimeout($); - }; - }); - const l = "muted"; - pt(() => { - Fe.muted = localStorage.getItem(l) === "1"; - }), - _t(() => { - { - const $ = Fe.muted; - document.querySelectorAll("audio").forEach((N) => { - N.muted = $; - }); - for (const N of Object.values(on)) (N.muted = $), $ || (N.volume = 0.3); - localStorage.setItem(l, Number($).toString()); - } - }), - pt(() => {}); - var S = sa(); - Ve("beforeunload", en, () => { - rn(); - }); - var M = v(S), - L = ot(M); - p(M); - var V = Mt(M, 2); - it(V, () => t.children); - var Bt = Mt(V, 2); - ia(Bt, { closeButton: !0, richColors: !0, position: "top-right", class: "!top-15", duration: 3e3 }), J(() => Jt(L, `Version: ${nn}`)), n(o, S), ue(); -} -export { Ta as component, Ia as universal }; diff --git a/frontend-backup/_app/immutable/chunks/07L1R_bo.js b/frontend-backup/_app/immutable/chunks/07L1R_bo.js deleted file mode 100644 index b976c45..0000000 --- a/frontend-backup/_app/immutable/chunks/07L1R_bo.js +++ /dev/null @@ -1,38 +0,0 @@ -import "./Bzak7iHL.js"; -import { p as u, f as p, t as r, b as c, c as x, s as B, d as b, r as L } from "./DUoKDNpf.js"; -import { p as Q, i as S, r as _ } from "./5NasrULQ.js"; -import { a as R, s as m, b as h } from "./B1GmkH4o.js"; -const E = - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABJQTFRFAQEBAAAAHGHnRcxVStlbMXLnk8SHtQAAAAF0Uk5TAEDm2GYAAABMSURBVHjadc9JCgAhDERRa7r/lZs0ikawdv+tkvEYALS07U2QawmOTo1oQBKr8/cUMLY7JLEPYLW0oISSNLtgiojRBfv0AuB67vH3B+FjAY/0rrGiAAAAAElFTkSuQmCC"; -var T = p("wplace"), - U = p('
      Wplace logo
      '); -function Y(n, e) { - u(e, !0); - let a = Q(e, "size", 3, "default"), - f = _(e, ["$$slots", "$$events", "$$legacy", "hasText", "size"]); - var t = U(); - R(t, () => ({ ...f, class: `flex items-center gap-1.5 ${e.class ?? ""}` })); - var A = b(t); - let l; - var d = B(A, 2); - { - var g = (s) => { - var i = T(); - let o; - r((v) => (o = m(i, 1, "text-base-content font-pixel", null, o, v)), [() => ({ "text-4xl": a() === "default", "text-5xl": a() === "lg" || a() === "medium" })]), c(s, i); - }; - S(d, (s) => { - e.hasText && s(g); - }); - } - L(t), - r( - (s) => { - (l = m(A, 1, "pixelated", null, l, s)), h(A, "src", E); - }, - [() => ({ "size-10": a() === "default", "size-16": a() === "medium", "size-20": a() === "lg" })] - ), - c(n, t), - x(); -} -export { Y as L }; diff --git a/frontend-backup/_app/immutable/chunks/0wx1llIh.js b/frontend-backup/_app/immutable/chunks/0wx1llIh.js new file mode 100644 index 0000000..2c69d9b --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/0wx1llIh.js @@ -0,0 +1,63 @@ +import { ac as n, H as t, z as a, L as c, ad as y } from "./CMvZtFtm.js"; +(function () { + try { + var f = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + f.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var f = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new f.Error().stack; + d && + ((f._sentryDebugIds = f._sentryDebugIds || {}), + (f._sentryDebugIds[d] = "554e06f2-a09e-496d-9df0-84ac5f964ff6"), + (f._sentryDebugIdIdentifier = + "sentry-dbid-554e06f2-a09e-496d-9df0-84ac5f964ff6")); + })(); +} catch {} +function r(f, d) { + return f === d || (f == null ? void 0 : f[y]) === d; +} +function g(f = {}, d, s, b) { + return ( + n(() => { + var e, i; + return ( + t(() => { + (e = i), + (i = []), + a(() => { + f !== s(...i) && + (d(f, ...i), e && r(s(...e), f) && d(null, ...e)); + }); + }), + () => { + c(() => { + i && r(s(...i), f) && d(null, ...i); + }); + } + ); + }), + f + ); +} +export { g as b }; diff --git a/frontend-backup/_app/immutable/chunks/1lh-LSvX.js b/frontend-backup/_app/immutable/chunks/1lh-LSvX.js deleted file mode 100644 index 2c52407..0000000 --- a/frontend-backup/_app/immutable/chunks/1lh-LSvX.js +++ /dev/null @@ -1,1467 +0,0 @@ -var H = Object.defineProperty; -var R = t => { - throw TypeError(t) -}; -var z = (t, e, a) => e in t ? H(t, e, { - enumerable: !0, - configurable: !0, - writable: !0, - value: a -}) : t[e] = a; -var u = (t, e, a) => z(t, typeof e != "symbol" ? e + "" : e, a), - Y = (t, e, a) => e.has(t) || R("Cannot " + a); -var d = (t, e, a) => (Y(t, e, "read from private field"), a ? a.call(t) : e.get(t)), - g = (t, e, a) => e.has(t) ? R("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, a); -import { - aG as q, - aR as y, - A as f, - aH as _, - x as U, - aT as L -} from "./DUoKDNpf.js"; -import { - g as o -} from "./C5GsJ62f.js"; -const Nt = "files", - Gt = "0x4AAAAAABpHqZ-6i7uL0nmG", - Z = "", - qt = "0x4AAAAAABpqJe8FO0N84q0F"; -let K = q({ - dropletsDialogOpen: !1, - muted: !1, - language: W(), - captcha: void 0, - now: Date.now(), - turnstatileLoaded: !1 -}); -setInterval(() => { - K.now = Date.now() -}, 500); - -function W() { - if (navigator.languages && navigator.languages.length > 0) { - const t = navigator.languages.find(e => e.length === 2); - if (t) return t - } - return (navigator.language || navigator.userLanguage || navigator.browserLanguage || "en").substring(0, 2) -} -const Q = () => "Unexpected server error. Try again later.", - X = () => "未知错误,请稍后重试.", - s = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Q() : X(), - ee = () => "You need to be logged in to paint", - ae = () => "请先登录", - te = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ee() : ae(), - ne = () => "You do not have enough charges to paint. Erase some pixels.", - re = () => "没有足够的点数", - oe = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ne() : re(), - se = t => `Error while painting: ${t.err}`, - ie = t => `错误: ${t.err}`, - ce = (t, e = {}) => (e.locale ?? o()) === "en" ? se(t) : ie(t), - le = () => "Invalid phone number", - de = () => "无效的手机号", - ue = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? le() : de(), - ge = () => "Phone already used", - me = () => "手机号已被使用", - fe = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ge() : me(), - he = () => "You have to wait to resend a code", - _e = () => "请稍后再重发验证码", - pe = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? he() : _e(), - we = () => "Invalid code", - ye = () => "无效的验证码", - be = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? we() : ye(), - Se = () => "Operation not allowed. Maybe you have too many favorite locations.", - ve = () => "你的收藏太多了。", - Ee = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Se() : ve(), - Te = () => "Location name is too big (max. 128 characters)", - Me = () => "名字太长了(最长128个字符)", - Pe = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Te() : Me(), - xe = () => "Couldn't complete the purchase. This item does not exist.", - Ae = () => "无法完成购买.", - ke = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? xe() : Ae(), - Ce = () => "You do not have enough droplets to buy this item.", - Ie = () => "你没有足够的水滴购买这个物品.", - Oe = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Ce() : Ie(), - Be = () => "You already have this item. Please refresh the page.", - De = () => "你已经有这个物品了.", - Le = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Be() : De(), - Ne = () => "Alliance name exceeded the maximum number of characters", - Ge = () => "工会名字过长", - qe = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Ne() : Ge(), - Re = () => "Alliance name already taken", - Ue = () => "工会名字已被占用", - je = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Re() : Ue(), - $e = () => "Alliance with empty name", - Fe = () => "不能为空", - Ke = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? $e() : Fe(), - Je = () => "You are already in an alliance", - Ve = () => "你已经在一个工会了", - He = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Je() : Ve(), - ze = () => "You are not allowed to do this", - Ye = () => "禁止操作", - p = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ze() : Ye(), - Ze = () => "Can't reach the server. Maybe you are without internet connection or the server is down. Try again later", - We = () => "无法连接到服务器,可能是你的网络问题或者服务器错误,请稍后重试", - Qe = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Ze() : We(), - Xe = () => "You or someone in your network is making a lot of requests to the server. Try again later.", - ea = () => "请求过多.", - aa = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Xe() : ea(), - ta = () => "No internet access or the servers are offline. Try again later.", - na = () => "无法连接到服务器,可能是你的网络问题或者服务器错误,请稍后重试.", - ra = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ta() : na(), - oa = () => "We’re currently experiencing high traffic. Some requests may not be processed at this time—please try again later. Thank you for your patience.", - sa = () => "当前服务器请求过多,一些请求会被延迟,请稍等.", - ia = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? oa() : sa(), - ca = () => "Refresh your page to get the latest update", - la = () => "刷新页面获得更新", - da = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ca() : la(), - ua = () => "Inappropriate content", - ga = () => "创作不当内容", - ma = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ua() : ga(), - fa = () => "+18, inappropriate link, highly suggestive content, ...", - ha = () => "色情内容,不当链接,性暗示,政治内容等", - _a = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? fa() : ha(), - pa = () => "Botting", - wa = () => "作弊", - ya = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? pa() : wa(), - ba = () => "Use of software to completely automate painting", - Sa = () => "使用脚本自动完成绘画", - va = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ba() : Sa(), - Ea = () => "Hate speech", - Ta = () => "言论", - Ma = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Ea() : Ta(), - Pa = () => "Racism, hate groups, ...", - xa = () => "如发表种族歧视言论、政治内容等", - Aa = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Pa() : xa(), - ka = () => "Griefing", - Ca = () => "恶意破坏", - Ia = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ka() : Ca(), - Oa = () => "Messed up artworks for no reason", - Ba = () => "恶意破坏他人作品", - Da = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Oa() : Ba(), - La = () => "Doxxing", - Na = () => "传播隐私信息", - Ga = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? La() : Na(), - qa = () => "Released other's personal information without their consent", - Ra = () => "传播他人隐私信息", - Ua = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? qa() : Ra(), - ja = () => "Leaderboard is temporarily disabled", - $a = () => "排行榜已被暂时金庸", - w = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? ja() : $a(), - Fa = () => "Multi-accounting", - Ka = () => "多账号", - Ja = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Fa() : Ka(), - Va = () => "Use more than one account to paint pixels", - Ha = () => "使用多个账号绘画", - za = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? Va() : Ha(), - Ya = t => `Your account has been banned. Reason: ${t.reason} (${t.description})`, - Za = t => `你的账户已经被封禁: ${t.reason} (${t.description})`, - Wa = (t, e = {}) => (e.locale ?? o()) === "en" ? Ya(t) : Za(t), - Qa = t => `Your account has been suspended until ${t.until}. Reason: ${t.reason} (${t.description})`, - Xa = t => `你的账户已经被临时封禁直到 ${t.until}. 原因: ${t.reason} (${t.description})`, - et = (t, e = {}) => (e.locale ?? o()) === "en" ? Qa(t) : Xa(t), - at = () => "Breaking the rules", - tt = () => "违反规则", - nt = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? at() : tt(), - rt = () => "You have broken one of Wplace's rules", - ot = () => "你违反了wplace一个或多个规则", - st = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? rt() : ot(), - it = () => "Your account has been suspended for breaking the rules", - ct = () => "你已被封禁", - lt = (t = {}, e = {}) => (e.locale ?? o()) === "en" ? it() : ct(), - language_en = (t = {}, e = {}) => (e.locale ?? o()) === "en", - dt = { - griefing: Ia(), - "multi-accounting": Ja(), - "hate-speech": Ma(), - bot: ya(), - doxxing: Ga(), - "inappropriate-content": ma(), - other: nt() - }, - ut = { - doxxing: Ua(), - "hate-speech": Aa(), - griefing: Da(), - "multi-accounting": za(), - bot: va(), - "inappropriate-content": _a(), - other: st() - }, - Rt = { - doxxing: "text-red-600", - "hate-speech": "text-red-600", - "inappropriate-content": "text-amber-600", - "multi-accounting": "text-amber-600", - bot: "text-amber-600", - griefing: "text-amber-600", - other: "text-blue-600" - }, - j = { - doxxing: 0, - "hate-speech": 1, - "inappropriate-content": 2, - bot: 3, - "multi-accounting": 4, - griefing: 5, - other: 6 - }; -class D extends Error { - constructor(e, a) { - super(e), this.message = e, this.status = a - } -} - -function gt(t, e) { - const a = {}; - for (const n of t) { - const c = e(n); - let l = a[c]; - l ? l.push(n) : a[c] = [n] - } - return a -} -const mt = [{ - tileSize: 1e3, - zoom: 11 - }], - ft = 4, - ht = 6e3, - _t = [{ - name: "Transparent", - rgb: [0, 0, 0] - }, { - name: "Black", - rgb: [0, 0, 0] - }, { - name: "Dark Gray", - rgb: [60, 60, 60] - }, { - name: "Gray", - rgb: [120, 120, 120] - }, { - name: "Light Gray", - rgb: [210, 210, 210] - }, { - name: "White", - rgb: [255, 255, 255] - }, { - name: "Deep Red", - rgb: [96, 0, 24] - }, { - name: "Red", - rgb: [237, 28, 36] - }, { - name: "Orange", - rgb: [255, 127, 39] - }, { - name: "Gold", - rgb: [246, 170, 9] - }, { - name: "Yellow", - rgb: [249, 221, 59] - }, { - name: "Light Yellow", - rgb: [255, 250, 188] - }, { - name: "Dark Green", - rgb: [14, 185, 104] - }, { - name: "Green", - rgb: [19, 230, 123] - }, { - name: "Light Green", - rgb: [135, 255, 94] - }, { - name: "Dark Teal", - rgb: [12, 129, 110] - }, { - name: "Teal", - rgb: [16, 174, 166] - }, { - name: "Light Teal", - rgb: [19, 225, 190] - }, { - name: "Dark Blue", - rgb: [40, 80, 158] - }, { - name: "Blue", - rgb: [64, 147, 228] - }, { - name: "Cyan", - rgb: [96, 247, 242] - }, { - name: "Indigo", - rgb: [107, 80, 246] - }, { - name: "Light Indigo", - rgb: [153, 177, 251] - }, { - name: "Dark Purple", - rgb: [120, 12, 153] - }, { - name: "Purple", - rgb: [170, 56, 185] - }, { - name: "Light Purple", - rgb: [224, 159, 249] - }, { - name: "Dark Pink", - rgb: [203, 0, 122] - }, { - name: "Pink", - rgb: [236, 31, 128] - }, { - name: "Light Pink", - rgb: [243, 141, 169] - }, { - name: "Dark Brown", - rgb: [104, 70, 52] - }, { - name: "Brown", - rgb: [149, 104, 42] - }, { - name: "Beige", - rgb: [248, 178, 119] - }, { - name: "Medium Gray", - rgb: [170, 170, 170] - }, { - name: "Dark Red", - rgb: [165, 14, 30] - }, { - name: "Light Red", - rgb: [250, 128, 114] - }, { - name: "Dark Orange", - rgb: [228, 92, 26] - }, { - name: "Light Tan", - rgb: [214, 181, 148] - }, { - name: "Dark Goldenrod", - rgb: [156, 132, 49] - }, { - name: "Goldenrod", - rgb: [197, 173, 49] - }, { - name: "Light Goldenrod", - rgb: [232, 212, 95] - }, { - name: "Dark Olive", - rgb: [74, 107, 58] - }, { - name: "Olive", - rgb: [90, 148, 74] - }, { - name: "Light Olive", - rgb: [132, 197, 115] - }, { - name: "Dark Cyan", - rgb: [15, 121, 159] - }, { - name: "Light Cyan", - rgb: [187, 250, 242] - }, { - name: "Light Blue", - rgb: [125, 199, 255] - }, { - name: "Dark Indigo", - rgb: [77, 49, 184] - }, { - name: "Dark Slate Blue", - rgb: [74, 66, 132] - }, { - name: "Slate Blue", - rgb: [122, 113, 196] - }, { - name: "Light Slate Blue", - rgb: [181, 174, 241] - }, { - name: "Light Brown", - rgb: [219, 164, 99] - }, { - name: "Dark Beige", - rgb: [209, 128, 81] - }, { - name: "Light Beige", - rgb: [255, 197, 165] - }, { - name: "Dark Peach", - rgb: [155, 82, 73] - }, { - name: "Peach", - rgb: [209, 128, 120] - }, { - name: "Light Peach", - rgb: [250, 182, 164] - }, { - name: "Dark Tan", - rgb: [123, 99, 82] - }, { - name: "Tan", - rgb: [156, 132, 107] - }, { - name: "Dark Slate", - rgb: [51, 57, 65] - }, { - name: "Slate", - rgb: [109, 117, 141] - }, { - name: "Light Slate", - rgb: [179, 185, 209] - }, { - name: "Dark Stone", - rgb: [109, 100, 63] - }, { - name: "Stone", - rgb: [148, 140, 107] - }, { - name: "Light Stone", - rgb: [205, 197, 158] - }, { - name: "#66CCFF", - rgb: [102, 204, 255] - }, { - name: "Aquamarine", - rgb: [91, 191, 185] - }, { - name: "Maroon", - rgb: [128, 0, 0] - }, { - name: "Crimson", - rgb: [220, 20, 60] - }, { - name: "Coral", - rgb: [255, 127, 80] - }, { - name: "Salmon", - rgb: [250, 128, 114] - }, { - name: "Khaki", - rgb: [240, 230, 140] - }, { - name: "Mustard", - rgb: [255, 219, 88] - }, { - name: "Chartreuse", - rgb: [127, 255, 0] - }, { - name: "Lime", - rgb: [191, 255, 0] - }, { - name: "Sea Green", - rgb: [46, 139, 87] - }, { - name: "Turquoise", - rgb: [64, 224, 208] - }, { - name: "Aqua", - rgb: [0, 255, 255] - }, { - name: "Sky Blue", - rgb: [135, 206, 235] - }, { - name: "Royal Blue", - rgb: [65, 105, 225] - }, { - name: "Navy", - rgb: [0, 0, 128] - }, { - name: "Lavender", - rgb: [230, 230, 250] - }, { - name: "Magenta", - rgb: [255, 0, 255] - }, { - name: "Fuchsia", - rgb: [255, 119, 255] - }, { - name: "Ivory", - rgb: [255, 255, 240] - }, { - name: "Mint", - rgb: [189, 252, 201] - }, { - name: "Rose", - rgb: [255, 102, 204] - }, { - name: "Saddle Brown", - rgb: [146, 73, 0] - }, { - name: "Burgundy", - rgb: [128, 0, 32] - }, { - name: "Amber", - rgb: [255, 191, 0] - }, { - name: "Olive Drab", - rgb: [107, 142, 35] - }, { - name: "Periwinkle", - rgb: [204, 204, 255] - }, { - name: "Cerulean", - rgb: [42, 82, 190] - }, { - name: "Viridian", - rgb: [64, 130, 109] - }, { - name: "Mauve", - rgb: [224, 176, 255] - }, { - name: "Sepia", - rgb: [112, 66, 20] - }, { - name: "Darker Blue", - rgb: [0, 0, 144] - }], - pt = { - needsPhoneVerification: "needs_phone_verification" - }, - wt = { - Droplet: {}, - "Max. Charge": {}, - "Paint Charge": {}, - Color: {}, - Flag: {}, - "Profile Picture": {} - }, - yt = { - 10: { - name: "25,000 Droplets", - price: 500, - isDollar: !0, - lookupKey: "droplets_5", - items: [{ - name: "Droplet", - amount: 25e3 - }] - }, - 20: { - name: "78,750 Droplets", - price: 1500, - isDollar: !0, - lookupKey: "droplets_15", - items: [{ - name: "Droplet", - amount: 76750 - }] - }, - 30: { - name: "165,000 Droplets", - price: 3e3, - isDollar: !0, - lookupKey: "droplets_30", - items: [{ - name: "Droplet", - amount: 165e3 - }] - }, - 40: { - name: "287,500 Droplets", - price: 5e3, - isDollar: !0, - lookupKey: "droplets_50", - items: [{ - name: "Droplet", - amount: 287500 - }] - }, - 50: { - name: "450,000 Droplets", - price: 7500, - isDollar: !0, - lookupKey: "droplets_75", - items: [{ - name: "Droplet", - amount: 45e4 - }] - }, - 60: { - name: "625,000 Droplets", - price: 1e4, - isDollar: !0, - lookupKey: "droplets_100", - items: [{ - name: "Droplet", - amount: 625e3 - }] - }, - 70: { - name: "+5 Max. Charges", - price: 500, - isDollar: !1, - items: [{ - name: "Max. Charge", - amount: 5 - }] - }, - 80: { - name: "+30 Paint Charges", - price: 500, - isDollar: !1, - items: [{ - name: "Paint Charge", - amount: 30 - }] - }, - 100: { - name: "Unlock Color", - price: 2e3, - isDollar: !1, - items: [{ - name: "Color", - amount: 1 - }] - }, - 110: { - name: "Flag", - price: 2e4, - isDollar: !1, - items: [{ - name: "Flag", - amount: 1 - }] - }, - 120: { - name: "Profile Picture", - price: 2e4, - isDollar: !1, - items: [{ - name: "Profile Picture", - amount: 1 - }] - } - }, - bt = JSON.parse(language_en() ? `[{"id":1,"name":"Afghanistan","code":"AF","flag":"🇦🇫"},{"id":2,"name":"Albania","code":"AL","flag":"🇦🇱"},{"id":3,"name":"Algeria","code":"DZ","flag":"🇩🇿"},{"id":4,"name":"American Samoa","code":"AS","flag":"🇦🇸"},{"id":5,"name":"Andorra","code":"AD","flag":"🇦🇩"},{"id":6,"name":"Angola","code":"AO","flag":"🇦🇴"},{"id":7,"name":"Anguilla","code":"AI","flag":"🇦🇮"},{"id":8,"name":"Antarctica","code":"AQ","flag":"🇦🇶"},{"id":9,"name":"Antigua and Barbuda","code":"AG","flag":"🇦🇬"},{"id":10,"name":"Argentina","code":"AR","flag":"🇦🇷"},{"id":11,"name":"Armenia","code":"AM","flag":"🇦🇲"},{"id":12,"name":"Aruba","code":"AW","flag":"🇦🇼"},{"id":13,"name":"Australia","code":"AU","flag":"🇦🇺"},{"id":14,"name":"Austria","code":"AT","flag":"🇦🇹"},{"id":15,"name":"Azerbaijan","code":"AZ","flag":"🇦🇿"},{"id":16,"name":"Bahamas","code":"BS","flag":"🇧🇸"},{"id":17,"name":"Bahrain","code":"BH","flag":"🇧🇭"},{"id":18,"name":"Bangladesh","code":"BD","flag":"🇧🇩"},{"id":19,"name":"Barbados","code":"BB","flag":"🇧🇧"},{"id":20,"name":"Belarus","code":"BY","flag":"🇧🇾"},{"id":21,"name":"Belgium","code":"BE","flag":"🇧🇪"},{"id":22,"name":"Belize","code":"BZ","flag":"🇧🇿"},{"id":23,"name":"Benin","code":"BJ","flag":"🇧🇯"},{"id":24,"name":"Bermuda","code":"BM","flag":"🇧🇲"},{"id":25,"name":"Bhutan","code":"BT","flag":"🇧🇹"},{"id":26,"name":"Bolivia","code":"BO","flag":"🇧🇴"},{"id":27,"name":"Bonaire","code":"BQ","flag":"🇧🇶"},{"id":28,"name":"Bosnia and Herzegovina","code":"BA","flag":"🇧🇦"},{"id":29,"name":"Botswana","code":"BW","flag":"🇧🇼"},{"id":30,"name":"Bouvet Island","code":"BV","flag":"🇧🇻"},{"id":31,"name":"Brazil","code":"BR","flag":"🇧🇷"},{"id":32,"name":"British Indian Ocean Territory","code":"IO","flag":"🇮🇴"},{"id":33,"name":"Brunei Darussalam","code":"BN","flag":"🇧🇳"},{"id":34,"name":"Bulgaria","code":"BG","flag":"🇧🇬"},{"id":35,"name":"Burkina Faso","code":"BF","flag":"🇧🇫"},{"id":36,"name":"Burundi","code":"BI","flag":"🇧🇮"},{"id":37,"name":"Cabo Verde","code":"CV","flag":"🇨🇻"},{"id":38,"name":"Cambodia","code":"KH","flag":"🇰🇭"},{"id":39,"name":"Cameroon","code":"CM","flag":"🇨🇲"},{"id":40,"name":"Canada","code":"CA","flag":"🇨🇦"},{"id":41,"name":"Cayman Islands","code":"KY","flag":"🇰🇾"},{"id":42,"name":"Central African Republic","code":"CF","flag":"🇨🇫"},{"id":43,"name":"Chad","code":"TD","flag":"🇹🇩"},{"id":44,"name":"Chile","code":"CL","flag":"🇨🇱"},{"id":45,"name":"China","code":"CN","flag":"🇨🇳"},{"id":46,"name":"Christmas Island","code":"CX","flag":"🇨🇽"},{"id":47,"name":"Cocos (Keeling) Islands","code":"CC","flag":"🇨🇨"},{"id":48,"name":"Colombia","code":"CO","flag":"🇨🇴"},{"id":49,"name":"Comoros","code":"KM","flag":"🇰🇲"},{"id":50,"name":"Congo","code":"CG","flag":"🇨🇬"},{"id":51,"name":"Cook Islands","code":"CK","flag":"🇨🇰"},{"id":52,"name":"Costa Rica","code":"CR","flag":"🇨🇷"},{"id":53,"name":"Croatia","code":"HR","flag":"🇭🇷"},{"id":54,"name":"Cuba","code":"CU","flag":"🇨🇺"},{"id":55,"name":"Curaçao","code":"CW","flag":"🇨🇼"},{"id":56,"name":"Cyprus","code":"CY","flag":"🇨🇾"},{"id":57,"name":"Czechia","code":"CZ","flag":"🇨🇿"},{"id":58,"name":"Côte d'Ivoire","code":"CI","flag":"🇨🇮"},{"id":59,"name":"Denmark","code":"DK","flag":"🇩🇰"},{"id":60,"name":"Djibouti","code":"DJ","flag":"🇩🇯"},{"id":61,"name":"Dominica","code":"DM","flag":"🇩🇲"},{"id":62,"name":"Dominican Republic","code":"DO","flag":"🇩🇴"},{"id":63,"name":"Ecuador","code":"EC","flag":"🇪🇨"},{"id":64,"name":"Egypt","code":"EG","flag":"🇪🇬"},{"id":65,"name":"El Salvador","code":"SV","flag":"🇸🇻"},{"id":66,"name":"Equatorial Guinea","code":"GQ","flag":"🇬🇶"},{"id":67,"name":"Eritrea","code":"ER","flag":"🇪🇷"},{"id":68,"name":"Estonia","code":"EE","flag":"🇪🇪"},{"id":69,"name":"Eswatini","code":"SZ","flag":"🇸🇿"},{"id":70,"name":"Ethiopia","code":"ET","flag":"🇪🇹"},{"id":71,"name":"Falkland Islands (Malvinas)","code":"FK","flag":"🇫🇰"},{"id":72,"name":"Faroe Islands","code":"FO","flag":"🇫🇴"},{"id":73,"name":"Fiji","code":"FJ","flag":"🇫🇯"},{"id":74,"name":"Finland","code":"FI","flag":"🇫🇮"},{"id":75,"name":"France","code":"FR","flag":"🇫🇷"},{"id":76,"name":"French Guiana","code":"GF","flag":"🇬🇫"},{"id":77,"name":"French Polynesia","code":"PF","flag":"🇵🇫"},{"id":78,"name":"French Southern Territories","code":"TF","flag":"🇹🇫"},{"id":79,"name":"Gabon","code":"GA","flag":"🇬🇦"},{"id":80,"name":"Gambia","code":"GM","flag":"🇬🇲"},{"id":81,"name":"Georgia","code":"GE","flag":"🇬🇪"},{"id":82,"name":"Germany","code":"DE","flag":"🇩🇪"},{"id":83,"name":"Ghana","code":"GH","flag":"🇬🇭"},{"id":84,"name":"Gibraltar","code":"GI","flag":"🇬🇮"},{"id":85,"name":"Greece","code":"GR","flag":"🇬🇷"},{"id":86,"name":"Greenland","code":"GL","flag":"🇬🇱"},{"id":87,"name":"Grenada","code":"GD","flag":"🇬🇩"},{"id":88,"name":"Guadeloupe","code":"GP","flag":"🇬🇵"},{"id":89,"name":"Guam","code":"GU","flag":"🇬🇺"},{"id":90,"name":"Guatemala","code":"GT","flag":"🇬🇹"},{"id":91,"name":"Guernsey","code":"GG","flag":"🇬🇬"},{"id":92,"name":"Guinea","code":"GN","flag":"🇬🇳"},{"id":93,"name":"Guinea-Bissau","code":"GW","flag":"🇬🇼"},{"id":94,"name":"Guyana","code":"GY","flag":"🇬🇾"},{"id":95,"name":"Haiti","code":"HT","flag":"🇭🇹"},{"id":96,"name":"Heard Island and McDonald Islands","code":"HM","flag":"🇭🇲"},{"id":97,"name":"Honduras","code":"HN","flag":"🇭🇳"},{"id":98,"name":"Hong Kong","code":"HK","flag":"🇭🇰"},{"id":99,"name":"Hungary","code":"HU","flag":"🇭🇺"},{"id":100,"name":"Iceland","code":"IS","flag":"🇮🇸"},{"id":101,"name":"India","code":"IN","flag":"🇮🇳"},{"id":102,"name":"Indonesia","code":"ID","flag":"🇮🇩"},{"id":103,"name":"Iran","code":"IR","flag":"🇮🇷"},{"id":104,"name":"Iraq","code":"IQ","flag":"🇮🇶"},{"id":105,"name":"Ireland","code":"IE","flag":"🇮🇪"},{"id":106,"name":"Isle of Man","code":"IM","flag":"🇮🇲"},{"id":107,"name":"Israel","code":"IL","flag":"🇮🇱"},{"id":108,"name":"Italy","code":"IT","flag":"🇮🇹"},{"id":109,"name":"Jamaica","code":"JM","flag":"🇯🇲"},{"id":110,"name":"Japan","code":"JP","flag":"🇯🇵"},{"id":111,"name":"Jersey","code":"JE","flag":"🇯🇪"},{"id":112,"name":"Jordan","code":"JO","flag":"🇯🇴"},{"id":113,"name":"Kazakhstan","code":"KZ","flag":"🇰🇿"},{"id":114,"name":"Kenya","code":"KE","flag":"🇰🇪"},{"id":115,"name":"Kiribati","code":"KI","flag":"🇰🇮"},{"id":116,"name":"Kosovo","code":"XK","flag":"🇽🇰"},{"id":117,"name":"Kuwait","code":"KW","flag":"🇰🇼"},{"id":118,"name":"Kyrgyzstan","code":"KG","flag":"🇰🇬"},{"id":119,"name":"Laos","code":"LA","flag":"🇱🇦"},{"id":120,"name":"Latvia","code":"LV","flag":"🇱🇻"},{"id":121,"name":"Lebanon","code":"LB","flag":"🇱🇧"},{"id":122,"name":"Lesotho","code":"LS","flag":"🇱🇸"},{"id":123,"name":"Liberia","code":"LR","flag":"🇱🇷"},{"id":124,"name":"Libya","code":"LY","flag":"🇱🇾"},{"id":125,"name":"Liechtenstein","code":"LI","flag":"🇱🇮"},{"id":126,"name":"Lithuania","code":"LT","flag":"🇱🇹"},{"id":127,"name":"Luxembourg","code":"LU","flag":"🇱🇺"},{"id":128,"name":"Macao","code":"MO","flag":"🇲🇴"},{"id":129,"name":"Madagascar","code":"MG","flag":"🇲🇬"},{"id":130,"name":"Malawi","code":"MW","flag":"🇲🇼"},{"id":131,"name":"Malaysia","code":"MY","flag":"🇲🇾"},{"id":132,"name":"Maldives","code":"MV","flag":"🇲🇻"},{"id":133,"name":"Mali","code":"ML","flag":"🇲🇱"},{"id":134,"name":"Malta","code":"MT","flag":"🇲🇹"},{"id":135,"name":"Marshall Islands","code":"MH","flag":"🇲🇭"},{"id":136,"name":"Martinique","code":"MQ","flag":"🇲🇶"},{"id":137,"name":"Mauritania","code":"MR","flag":"🇲🇷"},{"id":138,"name":"Mauritius","code":"MU","flag":"🇲🇺"},{"id":139,"name":"Mayotte","code":"YT","flag":"🇾🇹"},{"id":140,"name":"Mexico","code":"MX","flag":"🇲🇽"},{"id":141,"name":"Micronesia","code":"FM","flag":"🇫🇲"},{"id":142,"name":"Moldova","code":"MD","flag":"🇲🇩"},{"id":143,"name":"Monaco","code":"MC","flag":"🇲🇨"},{"id":144,"name":"Mongolia","code":"MN","flag":"🇲🇳"},{"id":145,"name":"Montenegro","code":"ME","flag":"🇲🇪"},{"id":146,"name":"Montserrat","code":"MS","flag":"🇲🇸"},{"id":147,"name":"Morocco","code":"MA","flag":"🇲🇦"},{"id":148,"name":"Mozambique","code":"MZ","flag":"🇲🇿"},{"id":149,"name":"Myanmar","code":"MM","flag":"🇲🇲"},{"id":150,"name":"Namibia","code":"NA","flag":"🇳🇦"},{"id":151,"name":"Nauru","code":"NR","flag":"🇳🇷"},{"id":152,"name":"Nepal","code":"NP","flag":"🇳🇵"},{"id":153,"name":"Netherlands","code":"NL","flag":"🇳🇱"},{"id":154,"name":"New Caledonia","code":"NC","flag":"🇳🇨"},{"id":155,"name":"New Zealand","code":"NZ","flag":"🇳🇿"},{"id":156,"name":"Nicaragua","code":"NI","flag":"🇳🇮"},{"id":157,"name":"Niger","code":"NE","flag":"🇳🇪"},{"id":158,"name":"Nigeria","code":"NG","flag":"🇳🇬"},{"id":159,"name":"Niue","code":"NU","flag":"🇳🇺"},{"id":160,"name":"Norfolk Island","code":"NF","flag":"🇳🇫"},{"id":161,"name":"North Korea","code":"KP","flag":"🇰🇵"},{"id":162,"name":"North Macedonia","code":"MK","flag":"🇲🇰"},{"id":163,"name":"Northern Mariana Islands","code":"MP","flag":"🇲🇵"},{"id":164,"name":"Norway","code":"NO","flag":"🇳🇴"},{"id":165,"name":"Oman","code":"OM","flag":"🇴🇲"},{"id":166,"name":"Pakistan","code":"PK","flag":"🇵🇰"},{"id":167,"name":"Palau","code":"PW","flag":"🇵🇼"},{"id":168,"name":"Palestine","code":"PS","flag":"🇵🇸"},{"id":169,"name":"Panama","code":"PA","flag":"🇵🇦"},{"id":170,"name":"Papua New Guinea","code":"PG","flag":"🇵🇬"},{"id":171,"name":"Paraguay","code":"PY","flag":"🇵🇾"},{"id":172,"name":"Peru","code":"PE","flag":"🇵🇪"},{"id":173,"name":"Philippines","code":"PH","flag":"🇵🇭"},{"id":174,"name":"Pitcairn","code":"PN","flag":"🇵🇳"},{"id":175,"name":"Poland","code":"PL","flag":"🇵🇱"},{"id":176,"name":"Portugal","code":"PT","flag":"🇵🇹"},{"id":177,"name":"Puerto Rico","code":"PR","flag":"🇵🇷"},{"id":178,"name":"Qatar","code":"QA","flag":"🇶🇦"},{"id":179,"name":"Republic of the Congo","code":"CD","flag":"🇨🇩"},{"id":180,"name":"Romania","code":"RO","flag":"🇷🇴"},{"id":181,"name":"Russia","code":"RU","flag":"🇷🇺"},{"id":182,"name":"Rwanda","code":"RW","flag":"🇷🇼"},{"id":183,"name":"Réunion","code":"RE","flag":"🇷🇪"},{"id":184,"name":"Saint Barthélemy","code":"BL","flag":"🇧🇱"},{"id":185,"name":"Saint Helena","code":"SH","flag":"🇸🇭"},{"id":186,"name":"Saint Kitts and Nevis","code":"KN","flag":"🇰🇳"},{"id":187,"name":"Saint Lucia","code":"LC","flag":"🇱🇨"},{"id":188,"name":"Saint Martin (French part)","code":"MF","flag":"🇲🇫"},{"id":189,"name":"Saint Pierre and Miquelon","code":"PM","flag":"🇵🇲"},{"id":190,"name":"Saint Vincent and the Grenadines","code":"VC","flag":"🇻🇨"},{"id":191,"name":"Samoa","code":"WS","flag":"🇼🇸"},{"id":192,"name":"San Marino","code":"SM","flag":"🇸🇲"},{"id":193,"name":"Sao Tome and Principe","code":"ST","flag":"🇸🇹"},{"id":194,"name":"Saudi Arabia","code":"SA","flag":"🇸🇦"},{"id":195,"name":"Senegal","code":"SN","flag":"🇸🇳"},{"id":196,"name":"Serbia","code":"RS","flag":"🇷🇸"},{"id":197,"name":"Seychelles","code":"SC","flag":"🇸🇨"},{"id":198,"name":"Sierra Leone","code":"SL","flag":"🇸🇱"},{"id":199,"name":"Singapore","code":"SG","flag":"🇸🇬"},{"id":200,"name":"Sint Maarten (Dutch part)","code":"SX","flag":"🇸🇽"},{"id":201,"name":"Slovakia","code":"SK","flag":"🇸🇰"},{"id":202,"name":"Slovenia","code":"SI","flag":"🇸🇮"},{"id":203,"name":"Solomon Islands","code":"SB","flag":"🇸🇧"},{"id":204,"name":"Somalia","code":"SO","flag":"🇸🇴"},{"id":205,"name":"South Africa","code":"ZA","flag":"🇿🇦"},{"id":206,"name":"South Georgia and the South Sandwich Islands","code":"GS","flag":"🇬🇸"},{"id":207,"name":"South Korea","code":"KR","flag":"🇰🇷"},{"id":208,"name":"South Sudan","code":"SS","flag":"🇸🇸"},{"id":209,"name":"Spain","code":"ES","flag":"🇪🇸"},{"id":210,"name":"Sri Lanka","code":"LK","flag":"🇱🇰"},{"id":211,"name":"Sudan","code":"SD","flag":"🇸🇩"},{"id":212,"name":"Suriname","code":"SR","flag":"🇸🇷"},{"id":213,"name":"Svalbard and Jan Mayen","code":"SJ","flag":"🇸🇯"},{"id":214,"name":"Sweden","code":"SE","flag":"🇸🇪"},{"id":215,"name":"Switzerland","code":"CH","flag":"🇨🇭"},{"id":216,"name":"Syrian Arab Republic","code":"SY","flag":"🇸🇾"},{"id":217,"name":"Taiwan Province of China","code":"TW","flag":"🇨🇳"},{"id":218,"name":"Tajikistan","code":"TJ","flag":"🇹🇯"},{"id":219,"name":"Tanzania","code":"TZ","flag":"🇹🇿"},{"id":220,"name":"Thailand","code":"TH","flag":"🇹🇭"},{"id":221,"name":"Timor-Leste","code":"TL","flag":"🇹🇱"},{"id":222,"name":"Togo","code":"TG","flag":"🇹🇬"},{"id":223,"name":"Tokelau","code":"TK","flag":"🇹🇰"},{"id":224,"name":"Tonga","code":"TO","flag":"🇹🇴"},{"id":225,"name":"Trinidad and Tobago","code":"TT","flag":"🇹🇹"},{"id":226,"name":"Tunisia","code":"TN","flag":"🇹🇳"},{"id":227,"name":"Turkmenistan","code":"TM","flag":"🇹🇲"},{"id":228,"name":"Turks and Caicos Islands","code":"TC","flag":"🇹🇨"},{"id":229,"name":"Tuvalu","code":"TV","flag":"🇹🇻"},{"id":230,"name":"Türkiye","code":"TR","flag":"🇹🇷"},{"id":231,"name":"Uganda","code":"UG","flag":"🇺🇬"},{"id":232,"name":"Ukraine","code":"UA","flag":"🇺🇦"},{"id":233,"name":"United Arab Emirates","code":"AE","flag":"🇦🇪"},{"id":234,"name":"United Kingdom","code":"GB","flag":"🇬🇧"},{"id":235,"name":"United States","code":"US","flag":"🇺🇸"},{"id":236,"name":"United States Minor Outlying Islands","code":"UM","flag":"🇺🇲"},{"id":237,"name":"Uruguay","code":"UY","flag":"🇺🇾"},{"id":238,"name":"Uzbekistan","code":"UZ","flag":"🇺🇿"},{"id":239,"name":"Vanuatu","code":"VU","flag":"🇻🇺"},{"id":240,"name":"Vatican City","code":"VA","flag":"🇻🇦"},{"id":241,"name":"Venezuela","code":"VE","flag":"🇻🇪"},{"id":242,"name":"Viet Nam","code":"VN","flag":"🇻🇳"},{"id":243,"name":"Virgin Islands","code":"VG","flag":"🇻🇬"},{"id":244,"name":"Virgin Islands","code":"VI","flag":"🇻🇮"},{"id":245,"name":"Wallis and Futuna","code":"WF","flag":"🇼🇫"},{"id":246,"name":"Western Sahara","code":"EH","flag":"🇪🇭"},{"id":247,"name":"Yemen","code":"YE","flag":"🇾🇪"},{"id":248,"name":"Zambia","code":"ZM","flag":"🇿🇲"},{"id":249,"name":"Zimbabwe","code":"ZW","flag":"🇿🇼"},{"id":250,"name":"Åland Islands","code":"AX","flag":"🇦🇽"},{"id":251,"name":"Canary Islands","code":"IC","flag":"🇮🇨"}]` : `[{"id":1,"name":"阿富汗","code":"AF","flag":"🇦🇫"},{"id":2,"name":"阿尔巴尼亚","code":"AL","flag":"🇦🇱"},{"id":3,"name":"阿尔及利亚","code":"DZ","flag":"🇩🇿"},{"id":4,"name":"美属萨摩亚","code":"AS","flag":"🇦🇸"},{"id":5,"name":"安道尔","code":"AD","flag":"🇦🇩"},{"id":6,"name":"安哥拉","code":"AO","flag":"🇦🇴"},{"id":7,"name":"安圭拉","code":"AI","flag":"🇦🇮"},{"id":8,"name":"南极洲","code":"AQ","flag":"🇦🇶"},{"id":9,"name":"安提瓜和巴布达","code":"AG","flag":"🇦🇬"},{"id":10,"name":"阿根廷","code":"AR","flag":"🇦🇷"},{"id":11,"name":"亚美尼亚","code":"AM","flag":"🇦🇲"},{"id":12,"name":"阿鲁巴","code":"AW","flag":"🇦🇼"},{"id":13,"name":"澳大利亚","code":"AU","flag":"🇦🇺"},{"id":14,"name":"奥地利","code":"AT","flag":"🇦🇹"},{"id":15,"name":"阿塞拜疆","code":"AZ","flag":"🇦🇿"},{"id":16,"name":"巴哈马","code":"BS","flag":"🇧🇸"},{"id":17,"name":"巴林","code":"BH","flag":"🇧🇭"},{"id":18,"name":"孟加拉国","code":"BD","flag":"🇧🇩"},{"id":19,"name":"巴巴多斯","code":"BB","flag":"🇧🇧"},{"id":20,"name":"白俄罗斯","code":"BY","flag":"🇧🇾"},{"id":21,"name":"比利时","code":"BE","flag":"🇧🇪"},{"id":22,"name":"伯利兹","code":"BZ","flag":"🇧🇿"},{"id":23,"name":"贝宁","code":"BJ","flag":"🇧🇯"},{"id":24,"name":"百慕大","code":"BM","flag":"🇧🇲"},{"id":25,"name":"不丹","code":"BT","flag":"🇧🇹"},{"id":26,"name":"玻利维亚","code":"BO","flag":"🇧🇴"},{"id":27,"name":"荷兰加勒比区","code":"BQ","flag":"🇧🇶"},{"id":28,"name":"波黑","code":"BA","flag":"🇧🇦"},{"id":29,"name":"博茨瓦纳","code":"BW","flag":"🇧🇼"},{"id":30,"name":"布韦岛","code":"BV","flag":"🇧🇻"},{"id":31,"name":"巴西","code":"BR","flag":"🇧🇷"},{"id":32,"name":"英属印度洋领地","code":"IO","flag":"🇮🇴"},{"id":33,"name":"文莱","code":"BN","flag":"🇧🇳"},{"id":34,"name":"保加利亚","code":"BG","flag":"🇧🇬"},{"id":35,"name":"布基纳法索","code":"BF","flag":"🇧🇫"},{"id":36,"name":"布隆迪","code":"BI","flag":"🇧🇮"},{"id":37,"name":"佛得角","code":"CV","flag":"🇨🇻"},{"id":38,"name":"柬埔寨","code":"KH","flag":"🇰🇭"},{"id":39,"name":"喀麦隆","code":"CM","flag":"🇨🇲"},{"id":40,"name":"加拿大","code":"CA","flag":"🇨🇦"},{"id":41,"name":"开曼群岛","code":"KY","flag":"🇰🇾"},{"id":42,"name":"中非","code":"CF","flag":"🇨🇫"},{"id":43,"name":"乍得","code":"TD","flag":"🇹🇩"},{"id":44,"name":"智利","code":"CL","flag":"🇨🇱"},{"id":45,"name":"中国","code":"CN","flag":"🇨🇳"},{"id":46,"name":"圣诞岛","code":"CX","flag":"🇨🇽"},{"id":47,"name":"科科斯(基林)群岛","code":"CC","flag":"🇨🇨"},{"id":48,"name":"哥伦比亚","code":"CO","flag":"🇨🇴"},{"id":49,"name":"科摩罗","code":"KM","flag":"🇰🇲"},{"id":50,"name":"刚果(布)","code":"CG","flag":"🇨🇬"},{"id":51,"name":"库克群岛","code":"CK","flag":"🇨🇰"},{"id":52,"name":"哥斯达黎加","code":"CR","flag":"🇨🇷"},{"id":53,"name":"克罗地亚","code":"HR","flag":"🇭🇷"},{"id":54,"name":"古巴","code":"CU","flag":"🇨🇺"},{"id":55,"name":"库拉索","code":"CW","flag":"🇨🇼"},{"id":56,"name":"塞浦路斯","code":"CY","flag":"🇨🇾"},{"id":57,"name":"捷克","code":"CZ","flag":"🇨🇿"},{"id":58,"name":"科特迪瓦","code":"CI","flag":"🇨🇮"},{"id":59,"name":"丹麦","code":"DK","flag":"🇩🇰"},{"id":60,"name":"吉布提","code":"DJ","flag":"🇩🇯"},{"id":61,"name":"多米尼克","code":"DM","flag":"🇩🇲"},{"id":62,"name":"多米尼加","code":"DO","flag":"🇩🇴"},{"id":63,"name":"厄瓜多尔","code":"EC","flag":"🇪🇨"},{"id":64,"name":"埃及","code":"EG","flag":"🇪🇬"},{"id":65,"name":"萨尔瓦多","code":"SV","flag":"🇸🇻"},{"id":66,"name":"赤道几内亚","code":"GQ","flag":"🇬🇶"},{"id":67,"name":"厄立特里亚","code":"ER","flag":"🇪🇷"},{"id":68,"name":"爱沙尼亚","code":"EE","flag":"🇪🇪"},{"id":69,"name":"斯威士兰","code":"SZ","flag":"🇸🇿"},{"id":70,"name":"埃塞俄比亚","code":"ET","flag":"🇪🇹"},{"id":71,"name":"福克兰群岛","code":"FK","flag":"🇫🇰"},{"id":72,"name":"法罗群岛","code":"FO","flag":"🇫🇴"},{"id":73,"name":"斐济","code":"FJ","flag":"🇫🇯"},{"id":74,"name":"芬兰","code":"FI","flag":"🇫🇮"},{"id":75,"name":"法国","code":"FR","flag":"🇫🇷"},{"id":76,"name":"法属圭亚那","code":"GF","flag":"🇬🇫"},{"id":77,"name":"法属波利尼西亚","code":"PF","flag":"🇵🇫"},{"id":78,"name":"法属南部领地","code":"TF","flag":"🇹🇫"},{"id":79,"name":"加蓬","code":"GA","flag":"🇬🇦"},{"id":80,"name":"冈比亚","code":"GM","flag":"🇬🇲"},{"id":81,"name":"格鲁吉亚","code":"GE","flag":"🇬🇪"},{"id":82,"name":"德国","code":"DE","flag":"🇩🇪"},{"id":83,"name":"加纳","code":"GH","flag":"🇬🇭"},{"id":84,"name":"直布罗陀","code":"GI","flag":"🇬🇮"},{"id":85,"name":"希腊","code":"GR","flag":"🇬🇷"},{"id":86,"name":"格陵兰","code":"GL","flag":"🇬🇱"},{"id":87,"name":"格林纳达","code":"GD","flag":"🇬🇩"},{"id":88,"name":"瓜德罗普","code":"GP","flag":"🇬🇵"},{"id":89,"name":"关岛","code":"GU","flag":"🇬🇺"},{"id":90,"name":"危地马拉","code":"GT","flag":"🇬🇹"},{"id":91,"name":"根西","code":"GG","flag":"🇬🇬"},{"id":92,"name":"几内亚","code":"GN","flag":"🇬🇳"},{"id":93,"name":"几内亚比绍","code":"GW","flag":"🇬🇼"},{"id":94,"name":"圭亚那","code":"GY","flag":"🇬🇾"},{"id":95,"name":"海地","code":"HT","flag":"🇭🇹"},{"id":96,"name":"赫德岛和麦克唐纳群岛","code":"HM","flag":"🇭🇲"},{"id":97,"name":"洪都拉斯","code":"HN","flag":"🇭🇳"},{"id":98,"name":"中国香港","code":"HK","flag":"🇭🇰"},{"id":99,"name":"匈牙利","code":"HU","flag":"🇭🇺"},{"id":100,"name":"冰岛","code":"IS","flag":"🇮🇸"},{"id":101,"name":"印度","code":"IN","flag":"🇮🇳"},{"id":102,"name":"印尼","code":"ID","flag":"🇮🇩"},{"id":103,"name":"伊朗","code":"IR","flag":"🇮🇷"},{"id":104,"name":"伊拉克","code":"IQ","flag":"🇮🇶"},{"id":105,"name":"爱尔兰","code":"IE","flag":"🇮🇪"},{"id":106,"name":"马恩岛","code":"IM","flag":"🇮🇲"},{"id":107,"name":"以色列","code":"IL","flag":"🇮🇱"},{"id":108,"name":"意大利","code":"IT","flag":"🇮🇹"},{"id":109,"name":"牙买加","code":"JM","flag":"🇯🇲"},{"id":110,"name":"日本","code":"JP","flag":"🇯🇵"},{"id":111,"name":"泽西","code":"JE","flag":"🇯🇪"},{"id":112,"name":"约旦","code":"JO","flag":"🇯🇴"},{"id":113,"name":"哈萨克斯坦","code":"KZ","flag":"🇰🇿"},{"id":114,"name":"肯尼亚","code":"KE","flag":"🇰🇪"},{"id":115,"name":"基里巴斯","code":"KI","flag":"🇰🇮"},{"id":116,"name":"科索沃","code":"XK","flag":"🇽🇰"},{"id":117,"name":"科威特","code":"KW","flag":"🇰🇼"},{"id":118,"name":"吉尔吉斯斯坦","code":"KG","flag":"🇰🇬"},{"id":119,"name":"老挝","code":"LA","flag":"🇱🇦"},{"id":120,"name":"拉脱维亚","code":"LV","flag":"🇱🇻"},{"id":121,"name":"黎巴嫩","code":"LB","flag":"🇱🇧"},{"id":122,"name":"莱索托","code":"LS","flag":"🇱🇸"},{"id":123,"name":"利比里亚","code":"LR","flag":"🇱🇷"},{"id":124,"name":"利比亚","code":"LY","flag":"🇱🇾"},{"id":125,"name":"列支敦士登","code":"LI","flag":"🇱🇮"},{"id":126,"name":"立陶宛","code":"LT","flag":"🇱🇹"},{"id":127,"name":"卢森堡","code":"LU","flag":"🇱🇺"},{"id":128,"name":"中国澳门","code":"MO","flag":"🇲🇴"},{"id":129,"name":"马达加斯加","code":"MG","flag":"🇲🇬"},{"id":130,"name":"马拉维","code":"MW","flag":"🇲🇼"},{"id":131,"name":"马来西亚","code":"MY","flag":"🇲🇾"},{"id":132,"name":"马尔代夫","code":"MV","flag":"🇲🇻"},{"id":133,"name":"马里","code":"ML","flag":"🇲🇱"},{"id":134,"name":"马耳他","code":"MT","flag":"🇲🇹"},{"id":135,"name":"马绍尔群岛","code":"MH","flag":"🇲🇭"},{"id":136,"name":"马提尼克","code":"MQ","flag":"🇲🇶"},{"id":137,"name":"毛里塔尼亚","code":"MR","flag":"🇲🇷"},{"id":138,"name":"毛里求斯","code":"MU","flag":"🇲🇺"},{"id":139,"name":"马约特","code":"YT","flag":"🇾🇹"},{"id":140,"name":"墨西哥","code":"MX","flag":"🇲🇽"},{"id":141,"name":"密克罗尼西亚联邦","code":"FM","flag":"🇫🇲"},{"id":142,"name":"摩尔多瓦","code":"MD","flag":"🇲🇩"},{"id":143,"name":"摩纳哥","code":"MC","flag":"🇲🇨"},{"id":144,"name":"蒙古","code":"MN","flag":"🇲🇳"},{"id":145,"name":"黑山","code":"ME","flag":"🇲🇪"},{"id":146,"name":"蒙特塞拉特","code":"MS","flag":"🇲🇸"},{"id":147,"name":"摩洛哥","code":"MA","flag":"🇲🇦"},{"id":148,"name":"莫桑比克","code":"MZ","flag":"🇲🇿"},{"id":149,"name":"缅甸","code":"MM","flag":"🇲🇲"},{"id":150,"name":"纳米比亚","code":"NA","flag":"🇳🇦"},{"id":151,"name":"瑙鲁","code":"NR","flag":"🇳🇷"},{"id":152,"name":"尼泊尔","code":"NP","flag":"🇳🇵"},{"id":153,"name":"荷兰","code":"NL","flag":"🇳🇱"},{"id":154,"name":"新喀里多尼亚","code":"NC","flag":"🇳🇨"},{"id":155,"name":"新西兰","code":"NZ","flag":"🇳🇿"},{"id":156,"name":"尼加拉瓜","code":"NI","flag":"🇳🇮"},{"id":157,"name":"尼日尔","code":"NE","flag":"🇳🇪"},{"id":158,"name":"尼日利亚","code":"NG","flag":"🇳🇬"},{"id":159,"name":"纽埃","code":"NU","flag":"🇳🇺"},{"id":160,"name":"诺福克岛","code":"NF","flag":"🇳🇫"},{"id":161,"name":"朝鲜","code":"KP","flag":"🇰🇵"},{"id":162,"name":"北马其顿","code":"MK","flag":"🇲🇰"},{"id":163,"name":"北马里亚纳群岛","code":"MP","flag":"🇲🇵"},{"id":164,"name":"挪威","code":"NO","flag":"🇳🇴"},{"id":165,"name":"阿曼","code":"OM","flag":"🇴🇲"},{"id":166,"name":"巴基斯坦","code":"PK","flag":"🇵🇰"},{"id":167,"name":"帕劳","code":"PW","flag":"🇵🇼"},{"id":168,"name":"巴勒斯坦","code":"PS","flag":"🇵🇸"},{"id":169,"name":"巴拿马","code":"PA","flag":"🇵🇦"},{"id":170,"name":"巴布亚新几内亚","code":"PG","flag":"🇵🇬"},{"id":171,"name":"巴拉圭","code":"PY","flag":"🇵🇾"},{"id":172,"name":"秘鲁","code":"PE","flag":"🇵🇪"},{"id":173,"name":"菲律宾","code":"PH","flag":"🇵🇭"},{"id":174,"name":"皮特凯恩群岛","code":"PN","flag":"🇵🇳"},{"id":175,"name":"波兰","code":"PL","flag":"🇵🇱"},{"id":176,"name":"葡萄牙","code":"PT","flag":"🇵🇹"},{"id":177,"name":"波多黎各","code":"PR","flag":"🇵🇷"},{"id":178,"name":"卡塔尔","code":"QA","flag":"🇶🇦"},{"id":179,"name":"刚果(金)","code":"CD","flag":"🇨🇩"},{"id":180,"name":"罗马尼亚","code":"RO","flag":"🇷🇴"},{"id":181,"name":"俄罗斯","code":"RU","flag":"🇷🇺"},{"id":182,"name":"卢旺达","code":"RW","flag":"🇷🇼"},{"id":183,"name":"留尼汪","code":"RE","flag":"🇷🇪"},{"id":184,"name":"圣巴泰勒米","code":"BL","flag":"🇧🇱"},{"id":185,"name":"圣赫勒拿、阿森松和特里斯坦-达库尼亚","code":"SH","flag":"🇸🇭"},{"id":186,"name":"圣基茨和尼维斯","code":"KN","flag":"🇰🇳"},{"id":187,"name":"圣卢西亚","code":"LC","flag":"🇱🇨"},{"id":188,"name":"法属圣马丁","code":"MF","flag":"🇲🇫"},{"id":189,"name":"圣皮埃尔和密克隆","code":"PM","flag":"🇵🇲"},{"id":190,"name":"圣文森特和格林纳丁斯","code":"VC","flag":"🇻🇨"},{"id":191,"name":"萨摩亚","code":"WS","flag":"🇼🇸"},{"id":192,"name":"圣马力诺","code":"SM","flag":"🇸🇲"},{"id":193,"name":"圣多美和普林西比","code":"ST","flag":"🇸🇹"},{"id":194,"name":"沙特阿拉伯","code":"SA","flag":"🇸🇦"},{"id":195,"name":"塞内加尔","code":"SN","flag":"🇸🇳"},{"id":196,"name":"塞尔维亚","code":"RS","flag":"🇷🇸"},{"id":197,"name":"塞舌尔","code":"SC","flag":"🇸🇨"},{"id":198,"name":"塞拉利昂","code":"SL","flag":"🇸🇱"},{"id":199,"name":"新加坡","code":"SG","flag":"🇸🇬"},{"id":200,"name":"荷属圣马丁","code":"SX","flag":"🇸🇽"},{"id":201,"name":"斯洛伐克","code":"SK","flag":"🇸🇰"},{"id":202,"name":"斯洛文尼亚","code":"SI","flag":"🇸🇮"},{"id":203,"name":"所罗门群岛","code":"SB","flag":"🇸🇧"},{"id":204,"name":"索马里","code":"SO","flag":"🇸🇴"},{"id":205,"name":"南非","code":"ZA","flag":"🇿🇦"},{"id":206,"name":"南乔治亚和南桑威奇群岛","code":"GS","flag":"🇬🇸"},{"id":207,"name":"韩国","code":"KR","flag":"🇰🇷"},{"id":208,"name":"南苏丹","code":"SS","flag":"🇸🇸"},{"id":209,"name":"西班牙","code":"ES","flag":"🇪🇸"},{"id":210,"name":"斯里兰卡","code":"LK","flag":"🇱🇰"},{"id":211,"name":"苏丹","code":"SD","flag":"🇸🇩"},{"id":212,"name":"苏里南","code":"SR","flag":"🇸🇷"},{"id":213,"name":"斯瓦尔巴和扬马延","code":"SJ","flag":"🇸🇯"},{"id":214,"name":"瑞典","code":"SE","flag":"🇸🇪"},{"id":215,"name":"瑞士","code":"CH","flag":"🇨🇭"},{"id":216,"name":"叙利亚","code":"SY","flag":"🇸🇾"},{"id":217,"name":"中国台湾","code":"TW","flag":"🇨🇳"},{"id":218,"name":"塔吉克斯坦","code":"TJ","flag":"🇹🇯"},{"id":219,"name":"坦桑尼亚","code":"TZ","flag":"🇹🇿"},{"id":220,"name":"泰国","code":"TH","flag":"🇹🇭"},{"id":221,"name":"东帝汶","code":"TL","flag":"🇹🇱"},{"id":222,"name":"多哥","code":"TG","flag":"🇹🇬"},{"id":223,"name":"托克劳","code":"TK","flag":"🇹🇰"},{"id":224,"name":"汤加","code":"TO","flag":"🇹🇴"},{"id":225,"name":"特立尼达和多巴哥","code":"TT","flag":"🇹🇹"},{"id":226,"name":"突尼斯","code":"TN","flag":"🇹🇳"},{"id":227,"name":"土库曼斯坦","code":"TM","flag":"🇹🇲"},{"id":228,"name":"特克斯和凯科斯群岛","code":"TC","flag":"🇹🇨"},{"id":229,"name":"图瓦卢","code":"TV","flag":"🇹🇻"},{"id":230,"name":"土耳其","code":"TR","flag":"🇹🇷"},{"id":231,"name":"乌干达","code":"UG","flag":"🇺🇬"},{"id":232,"name":"乌克兰","code":"UA","flag":"🇺🇦"},{"id":233,"name":"阿联酋","code":"AE","flag":"🇦🇪"},{"id":234,"name":"英国","code":"GB","flag":"🇬🇧"},{"id":235,"name":"美国","code":"US","flag":"🇺🇸"},{"id":236,"name":"美国本土外小岛屿","code":"UM","flag":"🇺🇲"},{"id":237,"name":"乌拉圭","code":"UY","flag":"🇺🇾"},{"id":238,"name":"乌兹别克斯坦","code":"UZ","flag":"🇺🇿"},{"id":239,"name":"瓦努阿图","code":"VU","flag":"🇻🇺"},{"id":240,"name":"梵蒂冈","code":"VA","flag":"🇻🇦"},{"id":241,"name":"委内瑞拉","code":"VE","flag":"🇻🇪"},{"id":242,"name":"越南","code":"VN","flag":"🇻🇳"},{"id":243,"name":"英属维尔京群岛","code":"VG","flag":"🇻🇬"},{"id":244,"name":"美属维尔京群岛","code":"VI","flag":"🇻🇮"},{"id":245,"name":"瓦利斯和富图纳","code":"WF","flag":"🇼🇫"},{"id":246,"name":"阿拉伯撒哈拉民主共和国","code":"EH","flag":"🇪🇭"},{"id":247,"name":"也门","code":"YE","flag":"🇾🇪"},{"id":248,"name":"赞比亚","code":"ZM","flag":"🇿🇲"},{"id":249,"name":"津巴布韦","code":"ZW","flag":"🇿🇼"},{"id":250,"name":"奥兰","code":"AX","flag":"🇦🇽"},{"id":251,"name":"加那利群岛","code":"IC","flag":"🇮🇨"}]`), - G = { - seasons: mt, - regionSize: ft, - refreshIntervalMs: ht, - colors: _t, - errors: pt, - items: wt, - products: yt, - countries: bt - }, - St = G, - J = G.seasons.length - 1, - Ut = G.seasons[J].zoom, - jt = G.seasons[J].tileSize; - -function $t(t) { - return St.countries[t - 1] -} -var v; -class vt { - constructor(e) { - g(this, v, y(!0)); - this.url = e - } - get online() { - return f(d(this, v)) - } - set online(e) { - _(d(this, v), e, !0) - } - async paint(e, a) { - const n = gt(e, r => `t=(${r.tile[0]},${r.tile[1]}),s=${r.season}`), - l = (await Promise.all(Object.values(n).map(r => { - const [i, h] = r[0].tile, b = r[0].season, B = { - colors: r.map(S => S.colorIdx), - coords: r.flatMap(S => S.pixel), - t: a - }; - return this.request(`/s${b}/pixel/${i}/${h}`, { - method: "POST", - body: JSON.stringify(B), - credentials: "include" - }) - }))).filter(r => r.status !== 200); - if (l.length) { - const r = l[0]; - if (r.status === 401) throw new Error(te()); - if (r.status === 403) { - if (r.headers.get("cf-mitigated") === "challenge") throw new Error(ia()); - const i = await r.json(); - throw (i == null ? void 0 : i.error) === "refresh" ? new Error(da()) : (Ot.refresh(), new Error(oe())) - } else if (r.status === 451) { - const i = await l[0].json(), - h = (i == null ? void 0 : i.err) ?? "other", - b = dt[h], - B = ut[h], - S = i == null ? void 0 : i.suspension; - if (S === "ban") throw new Error(Wa({ - description: B, - reason: b - })); - if (S === "timeout") { - const V = new Date(Date.now() + ((i == null ? void 0 : i.durationMs) ?? 0)); - throw new Error(et({ - description: B, - reason: b, - until: V.toLocaleString() - })) - } else throw new Error(s()) - } else throw new Error(s()) - } - } - async getPixelInfo({ - season: e, - tile: [a, n], - pixel: [c, l] - }) { - const r = await this.request(`/s${e}/pixel/${a}/${n}?x=${c}&y=${l}`); - if (r.status !== 200) { - const i = await r.text(); - throw new Error(ce({ - err: i - })) - } - return r.json() - } - async me() { - const e = await this.request("/me", { - credentials: "include" - }); - if (e.status === 200) return await e.json() - } - async logout() { - const e = await this.request("/auth/logout", { - method: "POST", - credentials: "include" - }); - if (e.status !== 200) throw new Error(await e.text()); - return await e.json() - } - async refreshPaymentSession(e) { - return (await this.request(`/payment/refresh-session/${encodeURIComponent(e)}`, { - method: "POST", - credentials: "include" - })).status === 200 - } - async getOtpCooldown() { - const e = await this.request("/otp/cooldown", { - credentials: "include" - }); - if (e.status !== 200) throw new Error(s()); - return await e.json() - } - async sendOtp(e) { - const a = await this.request("/otp/send", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - phone: e - }) - }); - if (a.status === 400) throw new Error(ue()); - if (a.status === 403) throw new Error(fe()); - if (a.status === 429) throw new Error(pe()); - if (a.status !== 200) throw new Error(s()); - return await a.json() - } - async verifyOtp(e) { - const a = await this.request("/otp/verify", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - code: e - }) - }); - if (a.status === 400) throw new Error(be()); - if (a.status !== 200) throw new Error(s()); - return await a.json() - } - async updateMe(e) { - const a = await this.request("/me/update", { - method: "POST", - credentials: "include", - body: JSON.stringify(e) - }); - if (a.status === 400) { - const n = await a.json(); - throw new Error(n == null ? void 0 : n.error) - } else if (a.status !== 200) throw new Error(s()) - } - async deleteMe() { - if ((await this.request("/me/delete", { - method: "POST", - credentials: "include" - })).status !== 200) throw new Error(s()) - } - async favoriteLocation(e) { - const a = await this.request("/favorite-location", { - method: "POST", - body: JSON.stringify({ - latitude: e[0], - longitude: e[1] - }), - credentials: "include" - }); - if (a.status === 403) throw new Error(Ee()); - if (a.status !== 200) throw new Error(s()) - } - async deleteFavoriteLocation(e) { - if ((await this.request("/favorite-location/delete", { - method: "POST", - body: JSON.stringify({ - id: e - }), - credentials: "include" - })).status !== 200) throw new Error(s()) - } - async updateFavoriteLocation(e, a) { - const n = await this.request("/favorite-location/update", { - method: "POST", - body: JSON.stringify({ - id: e, - name: a - }), - credentials: "include" - }); - if (n.status === 400) throw new Error(Pe()); - if (n.status !== 200) throw new Error(s()) - } - async leaderboardPlayers(e) { - const a = await this.request(`/leaderboard/player/${e}`); - if (a.status !== 200) throw new Error(w()); - return a.json() - } - async leaderboardAlliances(e) { - const a = await this.request(`/leaderboard/alliance/${e}`); - if (a.status !== 200) throw new Error(w()); - return a.json() - } - async leaderboardRegions(e, a = 0) { - const n = await this.request(`/leaderboard/region/${e}/${a}`); - if (n.status === 200) return n.json(); - throw new Error(w()) - } - async leaderboardRegionPlayers(e, a) { - const n = await this.request(`/leaderboard/region/players/${e}/${a}`); - if (n.status === 200) return n.json(); - throw new Error(w()) - } - async leaderboardRegionAlliances(e, a) { - const n = await this.request(`/leaderboard/region/alliances/${e}/${a}`); - if (n.status === 200) return n.json(); - throw new Error(w()) - } - async leaderboardCountries(e) { - const a = await this.request(`/leaderboard/country/${e}`, { - credentials: "include" - }); - if (a.status === 200) return a.json(); - throw new Error(w()) - } - async getRandomTile(e) { - const a = await this.request(`/s${e}/tile/random`); - if (a.status !== 200) throw new Error(s()); - return a.json() - } - async purchase(e) { - const a = await this.request("/purchase", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - product: e - }) - }); - if (a.status !== 200) throw a.status === 404 ? new Error(ke()) : a.status === 403 ? new Error(Oe()) : a.status === 409 ? new Error(Le()) : new Error(s()) - } - async getAlliance() { - const e = await this.request("/alliance", { - credentials: "include" - }); - if (e.status === 200) return e.json(); - if (e.status === 404) return; - throw new Error(s()) - } - async createAlliance(e) { - const a = await this.request("/alliance", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - name: e - }) - }); - if (a.status === 200) return a.json(); - if (a.status === 400) { - const n = await a.json(); - throw n.error === "max_characters" ? new Error(qe()) : n.error === "name_taken" ? new Error(je()) : n.error == "empty_name" ? new Error(Ke()) : new Error(s()) - } else throw a.status === 403 ? new Error(He()) : new Error(s()) - } - async leaveAlliance() { - if ((await this.request("/alliance/leave", { - method: "POST", - credentials: "include" - })).status !== 200) throw new Error(s()) - } - async updateAllianceDescription(e) { - const a = await this.request("/alliance/update-description", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - description: e - }) - }); - if (a.status !== 200) throw a.status === 403 ? new Error(p()) : new Error(s()) - } - async updateAllianceHeadquarters(e, a) { - const n = await this.request("/alliance/update-headquarters", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - latitude: e, - longitude: a - }) - }); - if (n.status !== 200) throw n.status === 403 ? new Error(p()) : new Error(s()) - } - async allianceLeaderboard(e) { - const a = await this.request(`/alliance/leaderboard/${e}`, { - credentials: "include" - }); - if (a.status === 200) return a.json(); - throw a.status === 403 ? new Error(p()) : new Error(w()) - } - async getAllianceInvites() { - const e = await this.request("/alliance/invites", { - credentials: "include" - }); - if (e.status === 200) return e.json(); - throw e.status === 403 ? new Error(p()) : new Error(s()) - } - async joinAlliance(e) { - switch ((await this.request(`/alliance/join/${e}`, { - credentials: "include" - })).status) { - case 200: - return "success"; - case 208: - return "in-another-alliance"; - case 401: - return "not-logged-in"; - case 403: - return "banned"; - case 400: - case 404: - return "invalid-invite"; - default: - return "error" - } - } - async getAllianceMembers(e) { - const a = await this.request(`/alliance/members/${e}`, { - credentials: "include" - }); - if (a.status === 200) return a.json(); - throw new Error(s()) - } - async getAllianceBannedMembers(e) { - const a = await this.request(`/alliance/members/banned/${e}`, { - credentials: "include" - }); - if (a.status === 200) return a.json(); - throw new Error(s()) - } - async giveAllianceAdmin(e) { - const a = await this.request("/alliance/give-admin", { - body: JSON.stringify({ - promotedUserId: e - }), - method: "POST", - credentials: "include" - }); - if (a.status !== 200) throw a.status === 403 ? new Error(p()) : new Error(s()) - } - async banAllianceUser(e) { - const a = await this.request("/alliance/ban", { - body: JSON.stringify({ - bannedUserId: e - }), - method: "POST", - credentials: "include" - }); - if (a.status !== 200) throw a.status === 403 ? new Error(p()) : new Error(s()) - } - async equipFlag(e) { - if ((await this.request(`/flag/equip/${e}`, { - method: "POST", - credentials: "include" - })).status !== 200) throw new Error(s()) - } - async getMyProfilePictures() { - const e = await this.request("/me/profile-pictures", { - credentials: "include" - }); - if (e.status !== 200) throw new Error(s()); - return e.json() - } - async changeProfilePicture(e) { - if ((await this.request("/me/profile-picture/change", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - pictureId: e - }) - })).status !== 200) throw new Error(s()) - } - async unbanAllianceUser(e) { - const a = await this.request("/alliance/unban", { - body: JSON.stringify({ - unbannedUserId: e - }), - method: "POST", - credentials: "include" - }); - if (a.status !== 200) throw a.status === 403 ? new Error(p()) : new Error(s()) - } - async health() { - return (await this.request("/health")).json() - } - async generatePixQrCode(e) { - const a = await this.request(`/payment/abacatepay/create/pix/${e}`, { - method: "POST", - credentials: "include" - }); - if (a.status === 400) { - const c = await a.json(); - throw new Error(c == null ? void 0 : c.error) - } else { - if (a.status === 451) throw new Error(lt()); - if (a.status !== 200) throw new Error(s()) - } - return await a.json() - } - async refreshPixPayment(e) { - const a = await this.request(`/payment/abacatepay/refresh/pix/${e}`, { - method: "POST", - credentials: "include" - }); - if (a.status === 400) { - const n = await a.json(); - throw new Error(n == null ? void 0 : n.error) - } else if (a.status !== 200) throw new Error("Unexpected error on the server. Try again later"); - return a.json() - } - async getPixStatus(e) { - const a = await this.request(`/payment/abacatepay/status/pix/${e}`, { - method: "GET", - credentials: "include" - }); - if (a.status !== 200) throw new Error("Erro inesperado. Tente atualizar a página."); - return a.json() - } - async getModeratorTickets() { - const e = await this.request("/moderator/tickets", { - method: "GET", - credentials: "include" - }); - if (e.status !== 200) throw new D(s(), e.status); - const a = await e.json(); - for (const n of a.tickets) n.reports.sort((c, l) => j[c.reason] - j[l.reason]); - return a - } - async getSevereOpenTicketsCount() { - const e = await this.request("/moderator/severe-open-tickets-count", { - method: "GET", - credentials: "include" - }); - if (e.status !== 200) throw new D(s(), e.status); - const { - tickets: a - } = await e.json(); - return a - } - async assignNewTickets() { - const e = await this.request("/moderator/assign-new-tickets", { - method: "POST", - credentials: "include" - }); - if (e.status !== 200) throw new D(s(), e.status); - return e.json() - } - async setTicketStatus(e, a) { - const n = await this.request("/moderator/set-ticket-status", { - method: "POST", - credentials: "include", - body: JSON.stringify({ - ticketId: e, - status: a - }) - }); - if (n.status !== 200) throw new D(s(), n.status) - } - async request(e, a) { - let n; - try { - n = await fetch(`${this.url}${e}`, a), this.online = !0 - } catch (c) { - throw console.error("Fetch error:", c), this.online = !1, new Error(Qe(), { - cause: c - }) - } - if (n.status === 429) throw new Error(aa()); - return n - } -} -v = new WeakMap; -let $ = new vt(Z); - -function Et(t) { - const e = atob(t), - a = new Uint8Array(e.length); - for (let n = 0; n < e.length; n++) a[n] = e.charCodeAt(n); - return a -} -class Tt { - constructor(e) { - u(this, "bytes"); - this.bytes = e ?? new Uint8Array - } - set(e, a) { - const n = Math.floor(e / 8), - c = e % 8; - if (n >= this.bytes.length) { - const r = new Uint8Array(n + 1), - i = r.length - this.bytes.length; - for (let h = 0; h < this.bytes.length; h++) r[h + i] = this.bytes[h]; - this.bytes = r - } - const l = this.bytes.length - 1 - n; - a ? this.bytes[l] = this.bytes[l] | 1 << c : this.bytes[l] = this.bytes[l] & ~(1 << c) - } - get(e) { - const a = Math.floor(e / 8), - n = e % 8, - c = this.bytes.length; - return a > c ? !1 : (this.bytes[c - 1 - a] & 1 << n) !== 0 - } -} - -function Ft(...t) { - return t.filter(Boolean).join(" ") -} -const Mt = typeof document < "u"; -let F = 0; -var E, T, M; -class Pt { - constructor() { - g(this, E, y(q([]))); - g(this, T, y(q([]))); - g(this, M, e => { - const a = this.toasts.findIndex(n => n.id === e); - return a === -1 ? null : a - }); - u(this, "addToast", e => { - Mt && this.toasts.unshift(e) - }); - u(this, "updateToast", ({ - id: e, - data: a, - type: n, - message: c - }) => { - const l = this.toasts.findIndex(i => i.id === e), - r = this.toasts[l]; - this.toasts[l] = { - ...r, - ...a, - id: e, - title: c, - type: n, - updated: !0 - } - }); - u(this, "create", e => { - var i; - const { - message: a, - ...n - } = e, c = typeof(e == null ? void 0 : e.id) == "number" || e.id && ((i = e.id) == null ? void 0 : i.length) > 0 ? e.id : F++, l = e.dismissable === void 0 ? !0 : e.dismissable, r = e.type === void 0 ? "default" : e.type; - return U(() => { - this.toasts.find(b => b.id === c) ? this.updateToast({ - id: c, - data: e, - type: r, - message: a, - dismissable: l - }) : this.addToast({ - ...n, - id: c, - title: a, - dismissable: l, - type: r - }) - }), c - }); - u(this, "dismiss", e => (U(() => { - if (e === void 0) { - this.toasts = this.toasts.map(n => ({ - ...n, - dismiss: !0 - })); - return - } - const a = this.toasts.findIndex(n => n.id === e); - this.toasts[a] && (this.toasts[a] = { - ...this.toasts[a], - dismiss: !0 - }) - }), e)); - u(this, "remove", e => { - if (e === void 0) { - this.toasts = []; - return - } - const a = d(this, M).call(this, e); - if (a !== null) return this.toasts.splice(a, 1), e - }); - u(this, "message", (e, a) => this.create({ - ...a, - type: "default", - message: e - })); - u(this, "error", (e, a) => this.create({ - ...a, - type: "error", - message: e - })); - u(this, "success", (e, a) => this.create({ - ...a, - type: "success", - message: e - })); - u(this, "info", (e, a) => this.create({ - ...a, - type: "info", - message: e - })); - u(this, "warning", (e, a) => this.create({ - ...a, - type: "warning", - message: e - })); - u(this, "loading", (e, a) => this.create({ - ...a, - type: "loading", - message: e - })); - u(this, "promise", (e, a) => { - if (!a) return; - let n; - a.loading !== void 0 && (n = this.create({ - ...a, - promise: e, - type: "loading", - message: typeof a.loading == "string" ? a.loading : a.loading() - })); - const c = e instanceof Promise ? e : e(); - let l = n !== void 0; - return c.then(r => { - if (typeof r == "object" && r && "ok" in r && typeof r.ok == "boolean" && !r.ok) { - l = !1; - const i = xt(r); - this.create({ - id: n, - type: "error", - message: i - }) - } else if (a.success !== void 0) { - l = !1; - const i = typeof a.success == "function" ? a.success(r) : a.success; - this.create({ - id: n, - type: "success", - message: i - }) - } - }).catch(r => { - if (a.error !== void 0) { - l = !1; - const i = typeof a.error == "function" ? a.error(r) : a.error; - this.create({ - id: n, - type: "error", - message: i - }) - } - }).finally(() => { - var r; - l && (this.dismiss(n), n = void 0), (r = a.finally) == null || r.call(a) - }), n - }); - u(this, "custom", (e, a) => { - const n = (a == null ? void 0 : a.id) || F++; - return this.create({ - component: e, - id: n, - ...a - }), n - }); - u(this, "removeHeight", e => { - this.heights = this.heights.filter(a => a.toastId !== e) - }); - u(this, "setHeight", e => { - const a = d(this, M).call(this, e.toastId); - if (a === null) { - this.heights.push(e); - return - } - this.heights[a] = e - }); - u(this, "reset", () => { - this.toasts = [], this.heights = [] - }) - } - get toasts() { - return f(d(this, E)) - } - set toasts(e) { - _(d(this, E), e, !0) - } - get heights() { - return f(d(this, T)) - } - set heights(e) { - _(d(this, T), e, !0) - } -} -E = new WeakMap, T = new WeakMap, M = new WeakMap; - -function xt(t) { - return t && typeof t == "object" && "status" in t ? `HTTP error! Status: ${t.status}` : `Error! ${t}` -} -const m = new Pt; - -function At(t, e) { - return m.create({ - message: t, - ...e - }) -} -var N; -class Kt { - constructor() { - g(this, N, L(() => m.toasts.filter(e => !e.dismiss))) - } - get toasts() { - return f(d(this, N)) - } -} -N = new WeakMap; -const kt = At, - Ct = Object.assign(kt, { - success: m.success, - info: m.info, - warning: m.warning, - error: m.error, - custom: m.custom, - message: m.message, - promise: m.promise, - dismiss: m.dismiss, - loading: m.loading, - getActiveToasts: () => m.toasts.filter(t => !t.dismiss) - }); -var P, x, A, k, C, I, O; -class It { - constructor() { - u(this, "channel", new BroadcastChannel("user-channel")); - g(this, P, y()); - g(this, x, y(!0)); - g(this, A, y(Date.now())); - g(this, k, y(Date.now())); - g(this, C, L(() => { - if (!this.data) return; - const e = this.data.charges; - if (e.count > e.max) return e.count; - const a = e.count + Math.max((K.now - this.lastFetch) / e.cooldownMs, 0); - return Math.min(e.max, a) - })); - g(this, I, L(() => this.charges !== void 0 && this.data ? (1 - this.charges % 1) * this.data.charges.cooldownMs : void 0)); - g(this, O, L(() => { - var e; - return new Tt(Et(((e = this.data) == null ? void 0 : e.flagsBitmap) ?? "AA==")) - })); - this.channel.onmessage = e => { - const a = JSON.parse(e.data); - a.type === "refresh" ? (this.data = a.data, this.lastFetch = Date.now()) : a.type === "logout" && (this.data = void 0) - } - } - get data() { - return f(d(this, P)) - } - set data(e) { - _(d(this, P), e, !0) - } - get loading() { - return f(d(this, x)) - } - set loading(e) { - _(d(this, x), e, !0) - } - get now() { - return f(d(this, A)) - } - set now(e) { - _(d(this, A), e) - } - get lastFetch() { - return f(d(this, k)) - } - set lastFetch(e) { - _(d(this, k), e) - } - get charges() { - return f(d(this, C)) - } - set charges(e) { - _(d(this, C), e) - } - get cooldown() { - return f(d(this, I)) - } - set cooldown(e) { - _(d(this, I), e) - } - get flagsBitmap() { - return f(d(this, O)) - } - set flagsBitmap(e) { - _(d(this, O), e) - } - async refresh() { - try { - this.loading = !0, this.data = await $.me(), this.lastFetch = Date.now(), this.channel.postMessage(JSON.stringify({ - type: "refresh", - data: this.data - })) - } catch (e) { - console.error(e), Ct.warning(ra(), { - duration: 1e4 - }) - } finally { - this.loading = !1 - } - } - async logout() { - await $.logout(), this.channel.postMessage(JSON.stringify({ - type: "logout" - })), this.data = void 0 - } - hasColor(e) { - if (e < 32) return true; - let raw = (this.data?.extraColorsBitmap) ?? 0; - const bitmap = typeof raw === "string" ? BigInt("0x" + raw) : BigInt(raw); - return (bitmap & (1n << BigInt(e - 32))) !== 0n; - } - -} -P = new WeakMap, x = new WeakMap, A = new WeakMap, k = new WeakMap, C = new WeakMap, I = new WeakMap, O = new WeakMap; -const Ot = new It; -export { - J as C, Gt as P, St as S, $ as a, s as b, Z as c, m as d, Ft as e, Kt as f, K as g, dt as h, $t as i, _a as j, ma as k, Aa as l, Ma as m, Ua as n, Ga as o, va as p, ya as q, Da as r, Rt as s, Ct as t, Ot as u, Ia as v, Ut as w, jt as x, Nt as y, qt as z -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/chunks/2.BY7SdjrD.js b/frontend-backup/_app/immutable/chunks/2.BY7SdjrD.js deleted file mode 100644 index 8cb8a18..0000000 --- a/frontend-backup/_app/immutable/chunks/2.BY7SdjrD.js +++ /dev/null @@ -1,47015 +0,0 @@ -var ky = Object.defineProperty; -var ng = b => { - throw TypeError(b) -}; -var Ey = (b, l, _) => l in b ? ky(b, l, { - enumerable: !0, - configurable: !0, - writable: !0, - value: _ -}) : b[l] = _; -var lr = (b, l, _) => Ey(b, typeof l != "symbol" ? l + "" : l, _), - lf = (b, l, _) => l.has(b) || ng("Cannot " + _); -var et = (b, l, _) => (lf(b, l, "read from private field"), _ ? _.call(b) : l.get(b)), - br = (b, l, _) => l.has(b) ? ng("Cannot add the same private member more than once") : l instanceof WeakSet ? l.add(b) : l.set(b, _), - Jn = (b, l, _, C) => (lf(b, l, "write to private field"), C ? C.call(b, _) : l.set(b, _), _), - Fr = (b, l, _) => (lf(b, l, "access private method"), _); -import "../chunks/Bzak7iHL.js"; -import { - o as Ii, - s as Ji -} from "../chunks/ByKBPM-D.js"; -import { - Y as zy, - aZ as Ly, - bp as Dy, - a$ as Ry, - bq as By, - be as Fy, - aR as nt, - A as x, - aH as oe, - aG as zn, - p as Sr, - aT as lt, - w as Zr, - f as Ie, - d as k, - s as V, - br as Oy, - r as A, - t as Ge, - b as H, - c as Pr, - an as Wi, - o as fi, - bj as an, - q as Tr, - bo as Su, - v as Hf, - x as Go, - aS as Jt, - a as zt, - aU as Fn, - ay as Ny, - ax as ag, - az as jy, - aB as Mg, - bs as ts, - ap as fa, - bt as Ag, - ak as qy -} from "../chunks/DUoKDNpf.js"; -import { - s as fe -} from "../chunks/g8c1BvYP.js"; -import { - p as Et, - i as Ue, - r as Qt, - s as lo, - u as kg -} from "../chunks/5NasrULQ.js"; -import { - h as Vy -} from "../chunks/2CRhGZHc.js"; -import { - a as er, - C as Uy, - r as ea, - e as On, - s as Or, - f as Jl, - b as zr, - d as uc, - g as Tu, - c as Vo -} from "../chunks/B1GmkH4o.js"; -import { - d as Zy, - a as Zo, - f as $o, - L as Wf, - p as Xf, - k as Pu, - t as En, - C as $y, - T as Eg, - G as Gy -} from "../chunks/Y9es74tr.js"; -import { - p as La -} from "../chunks/Cp3o644A.js"; -import { - S as $n, - a as ni, - t as qr, - u as Dt, - i as ds, - j as Hy, - k as Wy, - l as Xy, - m as Ky, - n as Yy, - o as Jy, - p as Qy, - q as ex, - r as tx, - v as rx, - c as Cd, - g as oa, - C as sg, - w as og, - x as ix, - y as nx, - z as ax -} from "../chunks/1lh-LSvX.js"; -import { - c as zg, - A as pa, - a as yf, - g as cf, - p as sx, - b as ox -} from "../chunks/D2m5UD3G.js"; -import { - g as Lg, - b as lx -} from "../chunks/KvV259my.js"; -import { - h as cx -} from "../chunks/BMKgGW48.js"; -import { - b as ps -} from "../chunks/CMs8vKjq.js"; -import { - g as jd, - d as qd, - h as Vd, - A as Dg, - f as tc, - D as Rg, - a as Ud, - r as ux, - i as hx, - I as lg, - e as dx, - c as px, - j as fx, - P as Bg, - b as mx -} from "../chunks/CBqzI9hL.js"; -import { - g as Fe, - l as _x -} from "../chunks/C5GsJ62f.js"; -import { - e as nn, - i as Zd -} from "../chunks/U908S-6f.js"; -import { - P as es, - g as Zn, - A as gx, - t as Fg, - b as Kf, - c as vx, - d as yx -} from "../chunks/DsJqb9ei.js"; -import "../chunks/D35KiPL1.js"; -import { - i as Og -} from "../chunks/D1ivTjwA.js"; -import { - L as Ng -} from "../chunks/07L1R_bo.js"; -import { - c as _n -} from "../chunks/BtP6pfnb.js"; -import { - L as xx, - T as jg, - a as bx -} from "../chunks/CQklNc9N.js"; -import { - _ as wx -} from "../chunks/Dp1pzeXC.js"; -import { - R as Tx, - r as Cx -} from "../chunks/DkBFL3pa.js"; -import { - W as Sx -} from "../chunks/CeLr1p76.js"; -const Px = []; - -function Ix(b, l = !1, _ = !1) { - return Sd(b, new Map, "", Px, null, _) -} - -function Sd(b, l, _, C, L = null, F = !1) { - if (typeof b == "object" && b !== null) { - var T = l.get(b); - if (T !== void 0) return T; - if (b instanceof Map) return new Map(b); - if (b instanceof Set) return new Set(b); - if (zy(b)) { - var o = Array(b.length); - l.set(b, o), L !== null && l.set(L, o); - for (var $ = 0; $ < b.length; $ += 1) { - var W = b[$]; - $ in b && (o[$] = Sd(W, l, _, C, null, F)) - } - return o - } - if (Ly(b) === Dy) { - o = {}, l.set(b, o), L !== null && l.set(L, o); - for (var ie in b) o[ie] = Sd(b[ie], l, _, C, null, F); - return o - } - if (b instanceof Date) return structuredClone(b); - if (typeof b.toJSON == "function" && !F) return Sd(b.toJSON(), l, _, C, b) - } - if (b instanceof EventTarget) return b; - try { - return structuredClone(b) - } catch { - return b - } -} - -function Mx() { - return Symbol(Ry) -} - -function $d(b, l) { - By(window, ["resize"], () => Fy(() => l(window[b]))) -} -const Ax = () => "Log in", - kx = () => "登入", - Ex = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ax() : kx(), - zx = () => "Store", - Lx = () => "商店", - qg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zx() : Lx(), - Dx = () => "Alliance", - Rx = () => "工会", - Gd = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Dx() : Rx(), - Bx = () => "Leaderboard", - Fx = () => "排行榜", - Yf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Bx() : Fx(), - Ox = () => "Unlock", - Nx = () => "解锁", - jx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ox() : Nx(), - qx = () => "Lock", - Vx = () => "锁定", - Ux = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qx() : Vx(), - Zx = () => "Info", - $x = () => "信息", - Gx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Zx() : $x(), - Hx = () => "Zoom in", - Wx = () => "放大", - Xx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Hx() : Wx(), - Kx = () => "Zoom out", - Yx = () => "缩小", - Jx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Kx() : Yx(), - Qx = () => "Previous location", - e1 = () => "上一个位置", - t1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Qx() : e1(), - r1 = () => "Offline", - i1 = () => "连接丢失", - n1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? r1() : i1(), - a1 = () => "Zoom in to see the pixels", - s1 = () => "放大以查看像素", - o1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? a1() : s1(), - l1 = () => "Phone verification required", - c1 = () => "需要手机号验证", - cg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? l1() : c1(), - u1 = () => "My location", - h1 = () => "我的位置", - d1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? u1() : h1(), - p1 = () => "You don't have charges to paint. Wait to recharge.", - f1 = () => "你没有足够的像素点,请等待恢复.", - m1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? p1() : f1(), - _1 = () => "Map powered by:", - g1 = () => "地图提供方:", - v1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _1() : g1(), - y1 = () => "OpenMapTiles Data from", - x1 = () => "OpenMapTiles 出品方:", - b1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? y1() : x1(), - w1 = () => "Feedback and bugs", - T1 = () => "BUG反馈", - C1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? w1() : T1(), - S1 = () => "Overview", - P1 = () => "总览", - I1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? S1() : P1(), - M1 = () => "How to paint faster", - A1 = () => "如何画得更快?", - k1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? M1() : A1(), - E1 = () => "When painting, click on the button", - z1 = () => "在绘制时候按住按钮", - L1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E1() : z1(), - D1 = () => "on the top right corner of the screen. This will lock the screen but it'll also enable painting by moving your finger over the map.", - R1 = () => "屏幕右上角。这将锁定屏幕,但也可以通过在地图上移动手指来绘画.", - B1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? D1() : R1(), - F1 = () => "Hold", - O1 = () => "按住", - N1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? F1() : O1(), - j1 = () => "SPACE", - q1 = () => "空格", - V1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j1() : q1(), - U1 = () => "and move your cursor over the map.", - Z1 = () => "并且移动鼠标.", - $1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? U1() : Z1(), - G1 = () => "Explore", - H1 = () => "探索", - W1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? G1() : H1(), - X1 = () => "Recharge paint charges", - K1 = () => "立刻恢复像素点", - Y1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? X1() : K1(), - J1 = () => "Items", - Q1 = () => "物品", - eb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? J1() : Q1(), - tb = () => "Get more charges", - rb = () => "获得更多像素点", - ib = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tb() : rb(), - nb = b => `+${b.amount} Max. Charges`, - ab = b => `+${b.amount} 最大像素容量`, - sb = (b, l = {}) => (l.locale ?? Fe()) === "en" ? nb(b) : ab(b), - ob = () => "Increase your maximum paint charges capacity", - lb = () => "提高最大像素点容量", - cb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ob() : lb(), - ub = () => "Profile picture", - hb = () => "头像", - db = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ub() : hb(), - pb = () => "Add a new 16x16 profile picture", - fb = () => "添加一个新的16x16头像", - mb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? pb() : fb(), - _b = () => "Not enough droplets", - gb = () => "没有足够的水滴", - Hd = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _b() : gb(), - vb = () => "Show profile", - yb = () => "显示个人资料", - xb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? vb() : yb(), - bb = () => "Menu", - wb = () => "菜单", - Tb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? bb() : wb(), - Cb = b => `Could not install the app: ${b.error}`, - Sb = b => `无法安装App: ${b.error}`, - Pb = (b, l = {}) => (l.locale ?? Fe()) === "en" ? Cb(b) : Sb(b), - Ib = () => "Install App", - Mb = () => "安装App", - Ab = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ib() : Mb(), - kb = () => "Livestreams", - Eb = () => "直播", - zb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? kb() : Eb(), - Lb = () => "Log Out", - Db = () => "退出登录", - Rb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Lb() : Db(), - Bb = () => "Hide UI", - Fb = () => "隐藏UI", - Ob = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Bb() : Fb(), - Nb = () => "Change picture:", - jb = () => "更换头像:", - qb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Nb() : jb(), - Vb = () => "Show last painted pixel on alliance", - Ub = () => "在工会排行榜中展示你最后一次绘画位置", - Zb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Vb() : Ub(), - $b = () => "Delete Account", - Gb = () => "注销账号", - ug = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? $b() : Gb(), - Hb = () => "Save", - Wb = () => "保存", - Xb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Hb() : Wb(), - Kb = () => "Are you absolutely sure?", - Yb = () => "你真的确定吗?", - Jb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Kb() : Yb(), - Qb = () => "This will permanently delete your account and all associated data. This action cannot be undone.", - e2 = () => "这会永久删除你的账号和所有数据,并且无法撤销。", - t2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Qb() : e2(), - r2 = () => "Profile", - i2 = () => "资料", - n2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? r2() : i2(), - a2 = () => "Display your country’s flag next to your username. Plus, when painting in regions where you own the corresponding flag, you recover 10% of the charges spent.", - s2 = () => "在你的用户名旁边显示一个旗帜。而且,当你在拥有对应旗帜的区域绘制时,可以返还所消耗像素点的10%。", - o2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? a2() : s2(), - l2 = () => "Does not need to be equipped to provide the bonus", - c2 = () => "即使未装备,也能提供加成。", - u2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? l2() : c2(), - h2 = () => "Equipped", - d2 = () => "已装备", - p2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? h2() : d2(), - f2 = () => "Equip", - m2 = () => "装备", - _2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? f2() : m2(), - g2 = () => "Country", - v2 = () => "国家或地区", - Vg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? g2() : v2(), - y2 = () => "No country found.", - x2 = () => "没有找到地区.", - b2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? y2() : x2(), - w2 = () => "Welcome to", - T2 = () => "欢迎来到", - C2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? w2() : T2(), - S2 = () => "Rules", - P2 = () => "规则", - I2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? S2() : P2(), - M2 = () => "Important", - A2 = () => "重要", - k2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? M2() : A2(), - E2 = () => "🚫 No inappropriate content (+18, hate speech, inappropriate links, highly suggestive material, ...)", - z2 = () => "🚫 Conteúdo inapropriado não permitido (+18, discurso de ódio, links inapropriados, conteúdo altamente sugestivo, ...)", - L2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E2() : z2(), - D2 = () => "😈 Do not paint over other artworks using random colors or patterns just to mess things up", - R2 = () => "😈 Não desenhe por cima de outras artes usando cores ou padrões aleatórios só para bagunçar", - B2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? D2() : R2(), - F2 = () => "✅ Paint with more than one account", - O2 = () => "✅ Não desenhe com mais de uma conta", - N2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? F2() : O2(), - j2 = () => "✅ Use of bots or scripts is allowed", - q2 = () => "✅ Usar bots não é permitido", - V2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j2() : q2(), - U2 = () => "🙅 Disclosing other's personal information is not allowed", - Z2 = () => "🙅 Divulgar informações pessoais dos outros não é permitido", - $2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? U2() : Z2(), - G2 = () => "✅ Painting over other artworks to complement them or create a new drawing is allowed", - H2 = () => "✅ Desenhar sobre outras artes para complementar ou criar novas artes é permitido", - W2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? G2() : H2(), - X2 = () => "✅ Griefing political party flags or portraits of politicians is allowed", - K2 = () => "✅ Desenhar sobre bandeiras de partidos e retratos de políticos é permitido", - Y2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? X2() : K2(), - J2 = () => "Violations of these rules may result in suspension of your account.", - Q2 = () => "违反会导致你被封禁。", - ew = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? J2() : Q2(), - tw = () => "Understood", - rw = () => "我同意", - iw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tw() : rw(), - nw = () => "Toggle art opacity", - aw = () => "开关像素透明度", - Ug = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? nw() : aw(), - sw = () => "Paint", - ow = () => "绘画", - Zg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? sw() : ow(), - lw = () => "Select a color", - cw = () => "选择一个娅安瑟", - uw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? lw() : cw(), - hw = () => "Select a pixel to erase", - dw = () => "选择一个像素来擦除", - pw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? hw() : dw(), - fw = () => "Pick a color from the map", - mw = () => "从地图上选择一个颜色", - _w = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? fw() : mw(), - gw = () => "Click", - vw = () => "点击", - yw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? gw() : vw(), - xw = () => "SPACE", - bw = () => "空格", - ww = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? xw() : bw(), - Tw = () => "or hold", - Cw = () => "或按住", - Sw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Tw() : Cw(), - Pw = () => "to paint,", - Iw = () => "来绘画", - Mw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Pw() : Iw(), - Aw = () => "You can paint more than 1 pixel", - kw = () => "你可以绘制多个像素", - Ew = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Aw() : kw(), - zw = () => "Paint pixel", - Lw = () => "已经绘制像素", - Dw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zw() : Lw(), - Rw = () => "Color Picker", - Bw = () => "取色器", - Fw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Rw() : Bw(), - Ow = () => "+2 max. charge/level", - Nw = () => "+2 最大像素点/每次升级", - jw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ow() : Nw(), - qw = () => "Name", - Vw = () => "名字", - xf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qw() : Vw(), - Uw = () => "Discord Username", - Zw = () => "社交媒体", - $w = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Uw() : Zw(), - Gw = () => "Max. Charges", - Hw = () => "像素点上限", - hg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Gw() : Hw(), - Ww = () => "Paint Charges", - Xw = () => "像素点包", - Kw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ww() : Xw(), - Yw = b => `+${b.amount} Paint Charges`, - Jw = b => `+${b.amount} 像素点`, - Qw = (b, l = {}) => (l.locale ?? Fe()) === "en" ? Yw(b) : Jw(b), - e5 = () => "Leave alliance", - t5 = () => "离开工会", - r5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? e5() : t5(), - i5 = () => "Members", - n5 = () => "成员", - $g = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? i5() : n5(), - a5 = () => "Headquarters", - s5 = () => "总部", - o5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? a5() : s5(), - l5 = () => "Not set", - c5 = () => "未设置", - u5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? l5() : c5(), - h5 = () => "You are not in an alliance", - d5 = () => "你没有加入一个工会", - p5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? h5() : d5(), - f5 = () => "Get invited to an alliance", - m5 = () => "得到一个邀请", - _5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? f5() : m5(), - g5 = () => "OR", - v5 = () => "或", - y5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? g5() : v5(), - x5 = () => "Create an alliance", - b5 = () => "创建工会", - w5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? x5() : b5(), - T5 = () => "Invite link", - C5 = () => "邀请", - S5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? T5() : C5(), - P5 = () => "Send the link below to everybody you want to invite to the alliance", - I5 = () => "发送这个链接给你要邀请加入的人", - M5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? P5() : I5(), - A5 = () => "Copied", - k5 = () => "已复制", - Gg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? A5() : k5(), - E5 = () => "Copy", - z5 = () => "复制", - bf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E5() : z5(), - L5 = () => "No description", - D5 = () => "没有描述", - Hg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? L5() : D5(), - R5 = () => "Invite", - B5 = () => "邀请", - F5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? R5() : B5(), - O5 = () => "No pixels painted", - N5 = () => "没有绘制像素", - Jf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? O5() : N5(), - j5 = () => "Today", - q5 = () => "今天", - Wd = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j5() : q5(), - V5 = () => "Week", - U5 = () => "本周", - Z5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? V5() : U5(), - $5 = () => "Month", - G5 = () => "本月", - H5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? $5() : G5(), - W5 = () => "All time", - X5 = () => "总计", - K5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? W5() : X5(), - Y5 = () => "this week", - J5 = () => "本周", - Qf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Y5() : J5(), - Q5 = () => "this month", - eT = () => "本月", - em = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Q5() : eT(), - tT = () => "Player", - rT = () => "玩家", - tm = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tT() : rT(), - iT = () => "Last pixel", - nT = () => "最后一次绘制", - aT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? iT() : nT(), - sT = () => "Create alliance", - oT = () => "创建工会", - lT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? sT() : oT(), - cT = () => "Alliance Name", - uT = () => "公会名称", - hT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? cT() : uT(), - dT = () => "Create", - pT = () => "创建", - fT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? dT() : pT(), - mT = () => "Give admin", - _T = () => "设为管理员", - gT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? mT() : _T(), - vT = () => "Ban from alliance", - yT = () => "踢出工会", - Wg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? vT() : yT(), - xT = () => "No action", - bT = () => "没有操作", - wT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? xT() : bT(), - TT = () => "Unban", - CT = () => "解除黑名单", - ST = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? TT() : CT(), - PT = () => "No banned users", - IT = () => "没有被踢出的用户", - MT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? PT() : IT(), - AT = () => "Update", - kT = () => "更新", - ET = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? AT() : kT(), - zT = () => "Error giving admin to user", - LT = () => "设置管理员失败", - DT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zT() : LT(), - RT = () => "Users", - BT = () => "玩家", - FT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? RT() : BT(), - OT = () => "Banned", - NT = () => "已封禁", - jT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? OT() : NT(), - qT = () => "Regions", - VT = () => "区域", - UT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qT() : VT(), - ZT = () => "Countries", - $T = () => "国家或地区", - GT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ZT() : $T(), - HT = () => "Players", - WT = () => "玩家", - Xg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? HT() : WT(), - XT = () => "Alliances", - KT = () => "工会", - Kg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? XT() : KT(), - YT = () => "Region", - JT = () => "区域", - QT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? YT() : JT(), - e3 = () => "Pixels", - t3 = () => "像素", - Ql = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? e3() : t3(), - r3 = () => "Painted", - i3 = () => "已绘制", - ec = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? r3() : i3(), - n3 = () => "Pixels painted inside the region", - a3 = () => "这个区域已绘制的像素", - s3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? n3() : a3(), - o3 = () => "Visit", - l3 = () => "查看", - c3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? o3() : l3(), - u3 = () => "Not painted", - h3 = () => "没有绘制", - d3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? u3() : h3(), - p3 = () => "Painted by", - f3 = () => "绘制者:", - m3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? p3() : f3(), - _3 = () => "Limit reached", - g3 = () => "已到达上限", - v3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _3() : g3(), - y3 = () => "Favorite", - x3 = () => "收藏", - b3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? y3() : x3(), - w3 = () => "Share", - T3 = () => "分享", - C3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? w3() : T3(), - S3 = () => "Share place", - P3 = () => "分享位置", - I3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? S3() : P3(), - M3 = () => "Mute", - A3 = () => "静音", - k3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? M3() : A3(), - E3 = () => "Unmute", - z3 = () => "开启音效", - L3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E3() : z3(), - D3 = () => "Select the headquarters location", - R3 = () => "选择总部位置", - B3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? D3() : R3(), - F3 = () => "Pixels painted inside the country", - O3 = () => "这个国家/地区已绘制的像素", - N3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? F3() : O3(), - j3 = () => "Username copied to clipboard", - q3 = () => "成功复制用户名", - V3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j3() : q3(), - U3 = () => "No more charges", - Z3 = () => "没有更多像素点", - $3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? U3() : Z3(), - G3 = () => "You are not allowed to use multiple accounts. Use your main account to paint.", - H3 = () => "请勿使用多个账户绘制。", - W3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? G3() : H3(), - X3 = () => "SMS sent to", - K3 = () => "短信已发送到", - Y3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? X3() : K3(), - J3 = () => "Phone successfully verified", - Q3 = () => "手机验证成功", - eC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? J3() : Q3(), - tC = () => "Not a valid phone number", - rC = () => "手机号无效", - iC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tC() : rC(), - nC = () => "Location unfavorited", - aC = () => "已取消收藏", - sC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? nC() : aC(), - oC = () => "Location favorited", - lC = () => "已收藏地区", - cC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? oC() : lC(), - uC = () => "Giving admin to user", - hC = () => "设为管理员", - dC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? uC() : hC(), - pC = () => "Profile updated", - fC = () => "资料已更新", - mC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? pC() : fC(), - _C = () => "Account successfully deleted", - gC = () => "账号注销成功", - vC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _C() : gC(), - yC = () => "Logged out", - xC = () => "已退出登录", - bC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? yC() : xC(), - wC = () => "Could not logout. Try refreshing the page.", - TC = () => "退出失败,请尝试刷新页面。", - CC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? wC() : TC(), - SC = () => "You need to zoom in to select a pixel", - PC = () => "你需要放大才能选择像素", - IC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? SC() : PC(), - MC = () => "Phone verification", - AC = () => "手机号验证", - kC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? MC() : AC(), - EC = () => "Please verify your phone number to continue playing. This helps us keep bots out and ensure a safe, creative experience for everyone.", - zC = () => "如需继续游玩,请您验证手机号码。该操作有助于我们防范机器人账户,为全体用户创造安全的游戏体验.", - LC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? EC() : zC(), - DC = () => "Send Code", - RC = () => "发送验证码", - BC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? DC() : RC(), - FC = () => "Input the code", - OC = () => "请输入验证码", - NC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? FC() : OC(), - jC = () => "Sent to", - qC = () => "已发送到", - VC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? jC() : qC(), - UC = () => "Resend Code", - ZC = () => "重新发送验证码", - $C = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? UC() : ZC(), - GC = () => "Try another number", - HC = () => "请尝试其他手机号", - WC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? GC() : HC(), - XC = () => "Edit profile", - KC = () => "编辑资料", - YC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? XC() : KC(), - JC = () => "Image", - QC = () => "图像", - eS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? JC() : QC(), - tS = () => "Download", - rS = () => "下载", - iS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tS() : rS(), - nS = () => "Image copied to clipboard", - aS = () => "图像已复制", - sS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? nS() : aS(), - oS = () => "My map is lagging", - lS = () => "地图卡顿", - cS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? oS() : lS(), - uS = () => "Verify if", - hS = () => "确保", - dS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? uS() : hS(), - pS = () => "Use hardware acceleration when available", - fS = () => "使用图形加速", - mS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? pS() : fS(), - _S = () => "is enabled on", - gS = () => "已启用", - vS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _S() : gS(), - yS = () => "Follow the instructions to enable hardware acceleration", - xS = () => "按照说明启用硬件加速", - bS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? yS() : xS(), - wS = () => "Report User", - TS = () => "举报", - Yg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? wS() : TS(), - CS = () => "Ban User", - SS = () => "封禁用户", - Jg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? CS() : SS(), - PS = () => "Select the reason", - IS = () => "选择原因", - MS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? PS() : IS(), - AS = () => "Other", - kS = () => "其他", - ES = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? AS() : kS(), - zS = () => "Other reason not listed", - LS = () => "其他未列出的原因", - DS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zS() : LS(), - RS = () => "Extra context on what happened (required)", - BS = () => "举报详情(必填)", - FS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? RS() : BS(), - OS = () => "Report", - NS = () => "提交举报", - jS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? OS() : NS(), - qS = () => "Report sent successfully", - VS = () => "举报成功", - US = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qS() : VS(), - ZS = () => "Select the report reason", - $S = () => "选择举报原因", - GS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ZS() : $S(), - HS = () => "Report failed. Please try again later", - WS = () => "举报失败,请稍后重试", - XS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? HS() : WS(), - KS = () => "Moderation", - YS = () => "管理", - JS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? KS() : YS(), - QS = () => "Terms", - eP = () => "用户协议", - tP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? QS() : eP(), - rP = () => "Privacy", - iP = () => "隐私政策", - nP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? rP() : iP(), - aP = () => "Clear area", - sP = () => "清除区域", - oP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? aP() : sP(), - lP = () => "Select the area's first corner", - cP = () => "请选择第一个角", - uP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? lP() : cP(), - hP = () => "Select the area's opposite corner", - dP = () => "请选择第二个角", - pP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? hP() : dP(), - fP = () => "Required", - mP = () => "必须", - _P = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? fP() : mP(), - gP = b => `Min. characters: ${b.min}`, - vP = b => `最少${b.min}个字2`, - yP = (b, l = {}) => (l.locale ?? Fe()) === "en" ? gP(b) : vP(b), - xP = b => `Max. characters: ${b.max}`, - bP = b => `最多${b.max}个字`, - wP = (b, l = {}) => (l.locale ?? Fe()) === "en" ? xP(b) : bP(b), - TP = () => "封禁用户", - CP = () => "timeout_user", - Qg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? CP() : TP(), - language_en = (t = {}, e = {}) => (e.locale ?? o()) === "en", - - Text1_EN = () => "You don't have charges to paint.", - Text1_CN = () => "你没有足够的像素点.", - Text1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text1_EN() : Text1_CN(), - Text2_EN = () => "Next charge in", - Text2_CN = () => "距离下一次恢复还有:", - Text2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text2_EN() : Text2_CN(), - Text3_EN = () => "Droplets", - Text3_CN = () => "水滴", - Text3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text3_EN() : Text3_CN(), - Text5_EN = () => "Unlock", - Text5_CN = () => "解锁颜色", - Text5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text5_EN() : Text5_CN(), - Text6_EN = () => "Permanently unlock the color", - Text6_CN = () => "永久解锁这个颜色", - Text6 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text6_EN() : Text6_CN(), - Text7_EN = () => "Close", - Text7_CN = () => "关闭", - Text7 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text7_EN() : Text7_CN(), - Text8_EN = () => "Flags", - Text8_CN = () => "旗帜", - Text8 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text8_EN() : Text8_CN(), - Text9_EN = () => "Level", - Text9_CN = () => "等级", - Text9 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text9_EN() : Text9_CN(), - - Es = 2 * Math.PI * 6378137 / 2; - -class hc { - constructor(l = 256) { - lr(this, "initialResolution"); - this.tileSize = l, this.initialResolution = 2 * Es / this.tileSize - } - latLonToMeters(l, _) { - const C = _ / 180 * Es, - L = Math.log(Math.tan((90 + l) * Math.PI / 360)) / (Math.PI / 180) * Es / 180; - return [C, L] - } - metersToLatLon(l, _) { - const C = l / Es * 180; - let L = _ / Es * 180; - return L = 180 / Math.PI * (2 * Math.atan(Math.exp(L * Math.PI / 180)) - Math.PI / 2), [L, C] - } - pixelsToMeters(l, _, C) { - const L = this.resolution(C), - F = l * L - Es, - T = Es - _ * L; - return [F, T] - } - pixelsToLatLon(l, _, C) { - const [L, F] = this.pixelsToMeters(l, _, C); - return this.metersToLatLon(L, F) - } - latLonToPixels(l, _, C) { - const [L, F] = this.latLonToMeters(l, _); - return this.metersToPixels(L, F, C) - } - latLonToPixelsFloor(l, _, C) { - const [L, F] = this.latLonToPixels(l, _, C); - return [Math.floor(L), Math.floor(F)] - } - metersToPixels(l, _, C) { - const L = this.resolution(C), - F = (l + Es) / L, - T = (Es - _) / L; - return [F, T] - } - latLonToTile(l, _, C) { - const [L, F] = this.latLonToMeters(l, _); - return this.metersToTile(L, F, C) - } - metersToTile(l, _, C) { - const [L, F] = this.metersToPixels(l, _, C); - return this.pixelsToTile(L, F) - } - pixelsToTile(l, _) { - const C = Math.ceil(l / this.tileSize) - 1, - L = Math.ceil(_ / this.tileSize) - 1; - return [C, L] - } - pixelsToTileLocal(l, _) { - return { - tile: this.pixelsToTile(l, _), - pixel: [Math.floor(l) % this.tileSize, Math.floor(_) % this.tileSize] - } - } - tileBounds(l, _, C) { - const [L, F] = this.pixelsToMeters(l * this.tileSize, _ * this.tileSize, C), [T, o] = this.pixelsToMeters((l + 1) * this.tileSize, (_ + 1) * this.tileSize, C); - return { - min: [L, F], - max: [T, o] - } - } - tileBoundsLatLon(l, _, C) { - const L = this.tileBounds(l, _, C); - return { - min: this.metersToLatLon(L.min[0], L.min[1]), - max: this.metersToLatLon(L.max[0], L.max[1]) - } - } - resolution(l) { - return this.initialResolution / 2 ** l - } - latLonToTileAndPixel(l, _, C) { - const [L, F] = this.latLonToMeters(l, _), [T, o] = this.metersToTile(L, F, C), [$, W] = this.metersToPixels(L, F, C); - return { - tile: [T, o], - pixel: [Math.floor($) % this.tileSize, Math.floor(W) % this.tileSize] - } - } - pixelBounds(l, _, C) { - return { - min: this.pixelsToMeters(l, _, C), - max: this.pixelsToMeters(l + 1, _ + 1, C) - } - } - pixelToBoundsLatLon(l, _, C) { - const L = this.pixelBounds(l, _, C), - F = .001885, - T = (L.max[0] - L.min[0]) * F, - o = (L.max[1] - L.min[1]) * F; - return L.min[0] -= T, L.max[0] -= T, L.min[1] -= o, L.max[1] -= o, { - min: this.metersToLatLon(L.min[0], L.min[1]), - max: this.metersToLatLon(L.max[0], L.max[1]) - } - } - latLonToTileBoundsLatLon(l, _, C) { - const [L, F] = this.latLonToMeters(l, _), [T, o] = this.metersToTile(L, F, C); - return this.tileBoundsLatLon(T, o, C) - } - latLonToPixelBoundsLatLon(l, _, C) { - const [L, F] = this.latLonToMeters(l, _), [T, o] = this.metersToPixels(L, F, C); - return this.pixelToBoundsLatLon(Math.floor(T), Math.floor(o), C) - } - latLonToRegionAndPixel(l, _, C, L = $n.regionSize) { - const [F, T] = this.latLonToPixelsFloor(l, _, C), o = this.tileSize * L; - return { - region: [Math.floor(F / o), Math.floor(T / o)], - pixel: [F % o, T % o] - } - } -} - -function rm(b, l = !0) { - const { - min: _, - max: C - } = b; - return l ? [ - [_[1], C[0]], - [C[1], C[0]], - [C[1], _[0]], - [_[1], _[0]] - ] : [ - [_[0], C[1]], - [C[0], C[1]], - [C[0], _[1]], - [_[0], _[1]] - ] -} - -function im(b) { - return [(b.min[0] + b.max[0]) / 2, (b.min[1] + b.max[1]) / 2] -} -const SP = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAAXNSR0IArs4c6QAAACpJREFUeNpj+AsEZ86ASIa/DAwMZ84ACRDzDBigMs/AARITq1oUwxBWAADaREUdDMswKwAAAABJRU5ErkJggg==", - dg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAACVJREFUeNpj+A8FDEAAZwMRBAIBmIYLIgHcgkQDIs3E6SRsjgcABYFLtfTgakEAAAAASUVORK5CYII="; - -function PP(b) { - return Math.floor(Math.random() * b) -} -const wf = 14.5; -async function IP() { - const b = kP(); - if (b) return b; - try { - if ((await navigator.permissions.query({ - name: "geolocation" - })).state === "granted") { - const _ = await new Promise((C, L) => navigator.geolocation.getCurrentPosition(F => C(F), F => L(F))); - return { - lat: _.coords.latitude, - lng: _.coords.longitude, - zoom: wf - } - } - } catch (l) { - console.error(l) - } - return { - ...MP().pos, - zoom: wf - } -} - -function MP() { - const b = Object.entries(AP), - l = PP(b.length), - [_, C] = b[l]; - return { - city: _, - pos: C - } -} -const AP = { - tokyo: { - lat: 35.677545560719665, - lng: 139.76394445809638 - }, - paris: { - lat: 48.8537151734952, - lng: 2.3484026030630787 - }, - newYork: { - lat: 40.71283173786517, - lng: -74.00599771376795 - }, - saoPaulo: { - lat: -23.550584064565356, - lng: -46.63339720713918 - }, - sydney: { - lat: -33.86943325619071, - lng: 151.2083447239608 - } - }, - ev = "location"; - -function Qa(b, l) { - localStorage.setItem(ev, JSON.stringify({ - ...b, - zoom: l - })) -} - -function kP() { - const b = localStorage.getItem(ev); - if (!b) return; - const l = JSON.parse(b); - return l.zoom ?? (l.zoom = wf), l -} -var ku, Eu; -class EP { - constructor() { - br(this, ku, nt(-1)); - br(this, Eu, nt([])) - } - get idx() { - return x(et(this, ku)) - } - set idx(l) { - oe(et(this, ku), l, !0) - } - get entries() { - return x(et(this, Eu)) - } - set entries(l) { - oe(et(this, Eu), l) - } - hasNext() { - return this.idx < this.entries.length - 1 - } - goToNext(l) { - const _ = this.idx + 1, - C = this.entries[_]; - C && (this.idx = _, l.flyTo({ - center: C.pos, - zoom: C.zoom - })) - } - hasPrev() { - return this.idx > 0 - } - goToPrev(l) { - const _ = this.idx - 1, - C = this.entries[_]; - C && (this.idx = _, l.flyTo({ - center: C.pos, - zoom: C.zoom - })) - } - isEmpty() { - return this.entries.length === 0 - } - push(l) { - this.idx = this.idx + 1, this.entries = [...this.entries.slice(0, this.idx), l] - } -} -ku = new WeakMap, Eu = new WeakMap; -const Ho = new EP; - -function nm(b) { - return b && b.__esModule && Object.prototype.hasOwnProperty.call(b, "default") ? b.default : b -} -var Pd = { - exports: {} -}; -/** - * MapLibre GL JS - * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.6.2/LICENSE.txt - */ -var zP = Pd.exports, - pg; - -function LP() { - return pg || (pg = 1, (function(b, l) { - (function(_, C) { - b.exports = C() - })(zP, (function() { - var _ = {}, - C = {}; - - function L(T, o, $) { - if (C[T] = $, T === "index") { - var W = "var sharedModule = {}; (" + C.shared + ")(sharedModule); (" + C.worker + ")(sharedModule);", - ie = {}; - return C.shared(ie), C.index(_, ie), typeof window < "u" && _.setWorkerUrl(window.URL.createObjectURL(new Blob([W], { - type: "text/javascript" - }))), _ - } - } - L("shared", ["exports"], (function(T) { - function o(i, t, r, a) { - return new(r || (r = Promise))((function(c, p) { - function f(S) { - try { - v(a.next(S)) - } catch (I) { - p(I) - } - } - - function g(S) { - try { - v(a.throw(S)) - } catch (I) { - p(I) - } - } - - function v(S) { - var I; - S.done ? c(S.value) : (I = S.value, I instanceof r ? I : new r((function(E) { - E(I) - }))).then(f, g) - } - v((a = a.apply(i, t || [])).next()) - })) - } - - function $(i, t) { - this.x = i, this.y = t - } - - function W(i) { - return i && i.__esModule && Object.prototype.hasOwnProperty.call(i, "default") ? i.default : i - } - var ie, pe; - typeof SuppressedError == "function" && SuppressedError, $.prototype = { - clone() { - return new $(this.x, this.y) - }, - add(i) { - return this.clone()._add(i) - }, - sub(i) { - return this.clone()._sub(i) - }, - multByPoint(i) { - return this.clone()._multByPoint(i) - }, - divByPoint(i) { - return this.clone()._divByPoint(i) - }, - mult(i) { - return this.clone()._mult(i) - }, - div(i) { - return this.clone()._div(i) - }, - rotate(i) { - return this.clone()._rotate(i) - }, - rotateAround(i, t) { - return this.clone()._rotateAround(i, t) - }, - matMult(i) { - return this.clone()._matMult(i) - }, - unit() { - return this.clone()._unit() - }, - perp() { - return this.clone()._perp() - }, - round() { - return this.clone()._round() - }, - mag() { - return Math.sqrt(this.x * this.x + this.y * this.y) - }, - equals(i) { - return this.x === i.x && this.y === i.y - }, - dist(i) { - return Math.sqrt(this.distSqr(i)) - }, - distSqr(i) { - const t = i.x - this.x, - r = i.y - this.y; - return t * t + r * r - }, - angle() { - return Math.atan2(this.y, this.x) - }, - angleTo(i) { - return Math.atan2(this.y - i.y, this.x - i.x) - }, - angleWith(i) { - return this.angleWithSep(i.x, i.y) - }, - angleWithSep(i, t) { - return Math.atan2(this.x * t - this.y * i, this.x * i + this.y * t) - }, - _matMult(i) { - const t = i[2] * this.x + i[3] * this.y; - return this.x = i[0] * this.x + i[1] * this.y, this.y = t, this - }, - _add(i) { - return this.x += i.x, this.y += i.y, this - }, - _sub(i) { - return this.x -= i.x, this.y -= i.y, this - }, - _mult(i) { - return this.x *= i, this.y *= i, this - }, - _div(i) { - return this.x /= i, this.y /= i, this - }, - _multByPoint(i) { - return this.x *= i.x, this.y *= i.y, this - }, - _divByPoint(i) { - return this.x /= i.x, this.y /= i.y, this - }, - _unit() { - return this._div(this.mag()), this - }, - _perp() { - const i = this.y; - return this.y = this.x, this.x = -i, this - }, - _rotate(i) { - const t = Math.cos(i), - r = Math.sin(i), - a = r * this.x + t * this.y; - return this.x = t * this.x - r * this.y, this.y = a, this - }, - _rotateAround(i, t) { - const r = Math.cos(i), - a = Math.sin(i), - c = t.y + a * (this.x - t.x) + r * (this.y - t.y); - return this.x = t.x + r * (this.x - t.x) - a * (this.y - t.y), this.y = c, this - }, - _round() { - return this.x = Math.round(this.x), this.y = Math.round(this.y), this - }, - constructor: $ - }, $.convert = function(i) { - if (i instanceof $) return i; - if (Array.isArray(i)) return new $(+i[0], +i[1]); - if (i.x !== void 0 && i.y !== void 0) return new $(+i.x, +i.y); - throw new Error("Expected [x, y] or {x, y} point format") - }; - var ye = (function() { - if (pe) return ie; - - function i(t, r, a, c) { - this.cx = 3 * t, this.bx = 3 * (a - t) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * r, this.by = 3 * (c - r) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t, this.p1y = r, this.p2x = a, this.p2y = c - } - return pe = 1, ie = i, i.prototype = { - sampleCurveX: function(t) { - return ((this.ax * t + this.bx) * t + this.cx) * t - }, - sampleCurveY: function(t) { - return ((this.ay * t + this.by) * t + this.cy) * t - }, - sampleCurveDerivativeX: function(t) { - return (3 * this.ax * t + 2 * this.bx) * t + this.cx - }, - solveCurveX: function(t, r) { - if (r === void 0 && (r = 1e-6), t < 0) return 0; - if (t > 1) return 1; - for (var a = t, c = 0; c < 8; c++) { - var p = this.sampleCurveX(a) - t; - if (Math.abs(p) < r) return a; - var f = this.sampleCurveDerivativeX(a); - if (Math.abs(f) < 1e-6) break; - a -= p / f - } - var g = 0, - v = 1; - for (a = t, c = 0; c < 20 && (p = this.sampleCurveX(a), !(Math.abs(p - t) < r)); c++) t > p ? g = a : v = a, a = .5 * (v - g) + g; - return a - }, - solve: function(t, r) { - return this.sampleCurveY(this.solveCurveX(t, r)) - } - }, ie - })(), - X = W(ye); - let Se, we; - - function Re() { - return Se == null && (Se = typeof OffscreenCanvas < "u" && new OffscreenCanvas(1, 1).getContext("2d") && typeof createImageBitmap == "function"), Se - } - - function Ae() { - if (we == null && (we = !1, Re())) { - const t = new OffscreenCanvas(5, 5).getContext("2d", { - willReadFrequently: !0 - }); - if (t) { - for (let a = 0; a < 25; a++) { - const c = 4 * a; - t.fillStyle = `rgb(${c},${c+1},${c+2})`, t.fillRect(a % 5, Math.floor(a / 5), 1, 1) - } - const r = t.getImageData(0, 0, 5, 5).data; - for (let a = 0; a < 100; a++) - if (a % 4 != 3 && r[a] !== a) { - we = !0; - break - } - } - } - return we || !1 - } - var Oe = 1e-6, - Ee = typeof Float32Array < "u" ? Float32Array : Array; - - function Ne() { - var i = new Ee(9); - return Ee != Float32Array && (i[1] = 0, i[2] = 0, i[3] = 0, i[5] = 0, i[6] = 0, i[7] = 0), i[0] = 1, i[4] = 1, i[8] = 1, i - } - - function ft(i) { - return i[0] = 1, i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = 1, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[10] = 1, i[11] = 0, i[12] = 0, i[13] = 0, i[14] = 0, i[15] = 1, i - } - - function ht() { - var i = new Ee(3); - return Ee != Float32Array && (i[0] = 0, i[1] = 0, i[2] = 0), i - } - - function Xe(i) { - return Math.hypot(i[0], i[1], i[2]) - } - - function ct(i, t, r) { - var a = new Ee(3); - return a[0] = i, a[1] = t, a[2] = r, a - } - - function Je(i, t, r) { - return i[0] = t[0] + r[0], i[1] = t[1] + r[1], i[2] = t[2] + r[2], i - } - - function Be(i, t, r) { - return i[0] = t[0] * r, i[1] = t[1] * r, i[2] = t[2] * r, i - } - - function st(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = r[0], - g = r[1], - v = r[2]; - return i[0] = c * v - p * g, i[1] = p * f - a * v, i[2] = a * g - c * f, i - } - Math.hypot || (Math.hypot = function() { - for (var i = 0, t = arguments.length; t--;) i += arguments[t] * arguments[t]; - return Math.sqrt(i) - }); - var it, Qe = Xe; - - function ke(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = t[3]; - return i[0] = r[0] * a + r[4] * c + r[8] * p + r[12] * f, i[1] = r[1] * a + r[5] * c + r[9] * p + r[13] * f, i[2] = r[2] * a + r[6] * c + r[10] * p + r[14] * f, i[3] = r[3] * a + r[7] * c + r[11] * p + r[15] * f, i - } - - function vt() { - var i = new Ee(4); - return Ee != Float32Array && (i[0] = 0, i[1] = 0, i[2] = 0), i[3] = 1, i - } - - function Q(i, t, r, a) { - var c = .5 * Math.PI / 180; - t *= c, r *= c, a *= c; - var p = Math.sin(t), - f = Math.cos(t), - g = Math.sin(r), - v = Math.cos(r), - S = Math.sin(a), - I = Math.cos(a); - return i[0] = p * v * I - f * g * S, i[1] = f * g * I + p * v * S, i[2] = f * v * S - p * g * I, i[3] = f * v * I + p * g * S, i - } - - function te() { - var i = new Ee(2); - return Ee != Float32Array && (i[0] = 0, i[1] = 0), i - } - - function _e(i, t) { - var r = new Ee(2); - return r[0] = i, r[1] = t, r - } - ht(), it = new Ee(4), Ee != Float32Array && (it[0] = 0, it[1] = 0, it[2] = 0, it[3] = 0), ht(), ct(1, 0, 0), ct(0, 1, 0), vt(), vt(), Ne(), te(); - const ne = 8192; - - function Pe(i, t, r) { - return t * (ne / (i.tileSize * Math.pow(2, r - i.tileID.overscaledZ))) - } - - function Me(i, t) { - return (i % t + t) % t - } - - function at(i, t, r) { - return i * (1 - r) + t * r - } - - function We(i) { - if (i <= 0) return 0; - if (i >= 1) return 1; - const t = i * i, - r = t * i; - return 4 * (i < .5 ? r : 3 * (i - t) + r - .75) - } - - function Ct(i, t, r, a) { - const c = new X(i, t, r, a); - return p => c.solve(p) - } - const _t = Ct(.25, .1, .25, 1); - - function xt(i, t, r) { - return Math.min(r, Math.max(t, i)) - } - - function tt(i, t, r) { - const a = r - t, - c = ((i - t) % a + a) % a + t; - return c === t ? r : c - } - - function pt(i, ...t) { - for (const r of t) - for (const a in r) i[a] = r[a]; - return i - } - let It = 1; - - function ut(i, t, r) { - const a = {}; - for (const c in i) a[c] = t.call(this, i[c], c, i); - return a - } - - function bt(i, t, r) { - const a = {}; - for (const c in i) t.call(this, i[c], c, i) && (a[c] = i[c]); - return a - } - - function wt(i) { - return Array.isArray(i) ? i.map(wt) : typeof i == "object" && i ? ut(i, wt) : i - } - const dt = {}; - - function Lt(i) { - dt[i] || (typeof console < "u" && console.warn(i), dt[i] = !0) - } - - function Xt(i, t, r) { - return (r.y - i.y) * (t.x - i.x) > (t.y - i.y) * (r.x - i.x) - } - - function Yt(i) { - return typeof WorkerGlobalScope < "u" && i !== void 0 && i instanceof WorkerGlobalScope - } - let nr = null; - - function ar(i) { - return typeof ImageBitmap < "u" && i instanceof ImageBitmap - } - const Ft = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="; - - function dr(i, t, r, a, c) { - return o(this, void 0, void 0, (function*() { - if (typeof VideoFrame > "u") throw new Error("VideoFrame not supported"); - const p = new VideoFrame(i, { - timestamp: 0 - }); - try { - const f = p == null ? void 0 : p.format; - if (!f || !f.startsWith("BGR") && !f.startsWith("RGB")) throw new Error(`Unrecognized format ${f}`); - const g = f.startsWith("BGR"), - v = new Uint8ClampedArray(a * c * 4); - if (yield p.copyTo(v, (function(S, I, E, R, N) { - const j = 4 * Math.max(-I, 0), - Z = (Math.max(0, E) - E) * R * 4 + j, - Y = 4 * R, - ae = Math.max(0, I), - ze = Math.max(0, E); - return { - rect: { - x: ae, - y: ze, - width: Math.min(S.width, I + R) - ae, - height: Math.min(S.height, E + N) - ze - }, - layout: [{ - offset: Z, - stride: Y - }] - } - })(i, t, r, a, c)), g) - for (let S = 0; S < v.length; S += 4) { - const I = v[S]; - v[S] = v[S + 2], v[S + 2] = I - } - return v - } finally { - p.close() - } - })) - } - let _r, Ir; - - function jr(i, t, r, a) { - return i.addEventListener(t, r, a), { - unsubscribe: () => { - i.removeEventListener(t, r, a) - } - } - } - - function ur(i) { - return i * Math.PI / 180 - } - - function Mr(i) { - return i / Math.PI * 180 - } - const Ar = { - touchstart: !0, - touchmove: !0, - touchmoveWindow: !0, - touchend: !0, - touchcancel: !0 - }, - kr = { - dblclick: !0, - click: !0, - mouseover: !0, - mouseout: !0, - mousedown: !0, - mousemove: !0, - mousemoveWindow: !0, - mouseup: !0, - mouseupWindow: !0, - contextmenu: !0, - wheel: !0 - }, - Nr = "AbortError"; - - function ce() { - return new Error(Nr) - } - const O = { - MAX_PARALLEL_IMAGE_REQUESTS: 16, - MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8, - MAX_TILE_CACHE_ZOOM_LEVELS: 5, - REGISTERED_PROTOCOLS: {}, - WORKER_URL: "" - }; - - function q(i) { - return O.REGISTERED_PROTOCOLS[i.substring(0, i.indexOf("://"))] - } - const G = "global-dispatcher"; - class K extends Error { - constructor(t, r, a, c) { - super(`AJAXError: ${r} (${t}): ${a}`), this.status = t, this.statusText = r, this.url = a, this.body = c - } - } - const le = () => Yt(self) ? self.worker && self.worker.referrer : (window.location.protocol === "blob:" ? window.parent : window).location.href, - ve = function(i, t) { - if (/:\/\//.test(i.url) && !/^https?:|^file:/.test(i.url)) { - const a = q(i.url); - if (a) return a(i, t); - if (Yt(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ - type: "GR", - data: i, - targetMapId: G - }, t) - } - if (!(/^file:/.test(r = i.url) || /^file:/.test(le()) && !/^\w+:/.test(r))) { - if (fetch && Request && AbortController && Object.prototype.hasOwnProperty.call(Request.prototype, "signal")) return (function(a, c) { - return o(this, void 0, void 0, (function*() { - const p = new Request(a.url, { - method: a.method || "GET", - body: a.body, - credentials: a.credentials, - headers: a.headers, - cache: a.cache, - referrer: le(), - signal: c.signal - }); - let f, g; - a.type !== "json" || p.headers.has("Accept") || p.headers.set("Accept", "application/json"); - try { - f = yield fetch(p) - } catch (S) { - throw new K(0, S.message, a.url, new Blob) - } - if (!f.ok) { - const S = yield f.blob(); - throw new K(f.status, f.statusText, a.url, S) - } - g = a.type === "arrayBuffer" || a.type === "image" ? f.arrayBuffer() : a.type === "json" ? f.json() : f.text(); - const v = yield g; - if (c.signal.aborted) throw ce(); - return { - data: v, - cacheControl: f.headers.get("Cache-Control"), - expires: f.headers.get("Expires") - } - })) - })(i, t); - if (Yt(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ - type: "GR", - data: i, - mustQueue: !0, - targetMapId: G - }, t) - } - var r; - return (function(a, c) { - return new Promise(((p, f) => { - var g; - const v = new XMLHttpRequest; - v.open(a.method || "GET", a.url, !0), a.type !== "arrayBuffer" && a.type !== "image" || (v.responseType = "arraybuffer"); - for (const S in a.headers) v.setRequestHeader(S, a.headers[S]); - a.type === "json" && (v.responseType = "text", !((g = a.headers) === null || g === void 0) && g.Accept || v.setRequestHeader("Accept", "application/json")), v.withCredentials = a.credentials === "include", v.onerror = () => { - f(new Error(v.statusText)) - }, v.onload = () => { - if (!c.signal.aborted) - if ((v.status >= 200 && v.status < 300 || v.status === 0) && v.response !== null) { - let S = v.response; - if (a.type === "json") try { - S = JSON.parse(v.response) - } catch (I) { - return void f(I) - } - p({ - data: S, - cacheControl: v.getResponseHeader("Cache-Control"), - expires: v.getResponseHeader("Expires") - }) - } else { - const S = new Blob([v.response], { - type: v.getResponseHeader("Content-Type") - }); - f(new K(v.status, v.statusText, a.url, S)) - } - }, c.signal.addEventListener("abort", (() => { - v.abort(), f(ce()) - })), v.send(a.body) - })) - })(i, t) - }; - - function Le(i) { - if (!i || i.indexOf("://") <= 0 || i.indexOf("data:image/") === 0 || i.indexOf("blob:") === 0) return !0; - const t = new URL(i), - r = window.location; - return t.protocol === r.protocol && t.host === r.host - } - - function Ce(i, t, r) { - r[i] && r[i].indexOf(t) !== -1 || (r[i] = r[i] || [], r[i].push(t)) - } - - function Ze(i, t, r) { - if (r && r[i]) { - const a = r[i].indexOf(t); - a !== -1 && r[i].splice(a, 1) - } - } - class ot { - constructor(t, r = {}) { - pt(this, r), this.type = t - } - } - class Ye extends ot { - constructor(t, r = {}) { - super("error", pt({ - error: t - }, r)) - } - } - class Ot { - on(t, r) { - return this._listeners = this._listeners || {}, Ce(t, r, this._listeners), { - unsubscribe: () => { - this.off(t, r) - } - } - } - off(t, r) { - return Ze(t, r, this._listeners), Ze(t, r, this._oneTimeListeners), this - } - once(t, r) { - return r ? (this._oneTimeListeners = this._oneTimeListeners || {}, Ce(t, r, this._oneTimeListeners), this) : new Promise((a => this.once(t, a))) - } - fire(t, r) { - typeof t == "string" && (t = new ot(t, r || {})); - const a = t.type; - if (this.listens(a)) { - t.target = this; - const c = this._listeners && this._listeners[a] ? this._listeners[a].slice() : []; - for (const g of c) g.call(this, t); - const p = this._oneTimeListeners && this._oneTimeListeners[a] ? this._oneTimeListeners[a].slice() : []; - for (const g of p) Ze(a, g, this._oneTimeListeners), g.call(this, t); - const f = this._eventedParent; - f && (pt(t, typeof this._eventedParentData == "function" ? this._eventedParentData() : this._eventedParentData), f.fire(t)) - } else t instanceof Ye && console.error(t.error); - return this - } - listens(t) { - return this._listeners && this._listeners[t] && this._listeners[t].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t] && this._oneTimeListeners[t].length > 0 || this._eventedParent && this._eventedParent.listens(t) - } - setEventedParent(t, r) { - return this._eventedParent = t, this._eventedParentData = r, this - } - } - var xe = { - $version: 8, - $root: { - version: { - required: !0, - type: "enum", - values: [8] - }, - name: { - type: "string" - }, - metadata: { - type: "*" - }, - center: { - type: "array", - value: "number" - }, - centerAltitude: { - type: "number" - }, - zoom: { - type: "number" - }, - bearing: { - type: "number", - default: 0, - period: 360, - units: "degrees" - }, - pitch: { - type: "number", - default: 0, - units: "degrees" - }, - roll: { - type: "number", - default: 0, - units: "degrees" - }, - state: { - type: "state", - default: {} - }, - light: { - type: "light" - }, - sky: { - type: "sky" - }, - projection: { - type: "projection" - }, - terrain: { - type: "terrain" - }, - sources: { - required: !0, - type: "sources" - }, - sprite: { - type: "sprite" - }, - glyphs: { - type: "string" - }, - 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: {}, - "color-relief": {}, - background: {} - }, - required: !0 - }, - metadata: { - type: "*" - }, - source: { - type: "string" - }, - "source-layer": { - type: "string" - }, - minzoom: { - type: "number", - minimum: 0, - maximum: 24 - }, - maxzoom: { - type: "number", - minimum: 0, - maximum: 24 - }, - filter: { - type: "filter" - }, - layout: { - type: "layout" - }, - paint: { - type: "paint" - } - }, - layout: ["layout_fill", "layout_line", "layout_circle", "layout_heatmap", "layout_fill-extrusion", "layout_symbol", "layout_raster", "layout_hillshade", "layout_color-relief", "layout_background"], - layout_background: { - visibility: { - type: "enum", - values: { - visible: {}, - none: {} - }, - default: "visible", - "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" - } - }, - "layout_color-relief": { - 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": {} - } - }, - 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 - }, - "horizon-color": { - type: "color", - "property-type": "data-constant", - default: "#ffffff", - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "fog-color": { - type: "color", - "property-type": "data-constant", - default: "#ffffff", - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "fog-ground-blend": { - type: "number", - "property-type": "data-constant", - default: .5, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "horizon-fog-blend": { - type: "number", - "property-type": "data-constant", - default: .8, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "sky-horizon-blend": { - type: "number", - "property-type": "data-constant", - default: .8, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "atmosphere-blend": { - type: "number", - "property-type": "data-constant", - default: .8, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - } - }, - terrain: { - source: { - type: "string", - required: !0 - }, - exaggeration: { - type: "number", - minimum: 0, - default: 1 - } - }, - projection: { - type: { - type: "projectionDefinition", - default: "mercator", - "property-type": "data-constant", - transition: !1, - expression: { - interpolated: !0, - parameters: ["zoom"] - } - } - }, - paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_color-relief", "paint_background"], - paint_fill: { - "fill-antialias": { - type: "boolean", - default: !0, - expression: { - interpolated: !1, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "fill-opacity": { - type: "number", - default: 1, - minimum: 0, - maximum: 1, - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom", "feature", "feature-state"] - }, - "property-type": "data-driven" - }, - "fill-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: "numberArray", - default: 335, - minimum: 0, - maximum: 359, - transition: !1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-illumination-altitude": { - type: "numberArray", - default: 45, - minimum: 0, - maximum: 90, - transition: !1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-illumination-anchor": { - type: "enum", - values: { - map: {}, - viewport: {} - }, - default: "viewport", - expression: { - interpolated: !1, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-exaggeration": { - type: "number", - default: .5, - minimum: 0, - maximum: 1, - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-shadow-color": { - type: "colorArray", - default: "#000000", - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-highlight-color": { - type: "colorArray", - default: "#FFFFFF", - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-accent-color": { - type: "color", - default: "#000000", - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-method": { - type: "enum", - values: { - standard: {}, - basic: {}, - combined: {}, - igor: {}, - multidirectional: {} - }, - default: "standard", - expression: { - interpolated: !1, - parameters: ["zoom"] - }, - "property-type": "data-constant" - } - }, - "paint_color-relief": { - "color-relief-opacity": { - type: "number", - default: 1, - minimum: 0, - maximum: 1, - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "color-relief-color": { - type: "color", - transition: !1, - expression: { - interpolated: !0, - parameters: ["elevation"] - }, - "property-type": "color-ramp" - } - }, - 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 At = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"]; - - function Pt(i, t) { - const r = {}; - for (const a in i) a !== "ref" && (r[a] = i[a]); - return At.forEach((a => { - a in t && (r[a] = t[a]) - })), r - } - - function kt(i, t) { - if (Array.isArray(i)) { - if (!Array.isArray(t) || i.length !== t.length) return !1; - for (let r = 0; r < i.length; r++) - if (!kt(i[r], t[r])) return !1; - return !0 - } - if (typeof i == "object" && i !== null && t !== null) { - if (typeof t != "object" || Object.keys(i).length !== Object.keys(t).length) return !1; - for (const r in i) - if (!kt(i[r], t[r])) return !1; - return !0 - } - return i === t - } - - function Wt(i, t) { - i.push(t) - } - - function Lr(i, t, r) { - Wt(r, { - command: "addSource", - args: [i, t[i]] - }) - } - - function Kr(i, t, r) { - Wt(t, { - command: "removeSource", - args: [i] - }), r[i] = !0 - } - - function Hr(i, t, r, a) { - Kr(i, r, a), Lr(i, t, r) - } - - function $r(i, t, r) { - let a; - for (a in i[r]) - if (Object.prototype.hasOwnProperty.call(i[r], a) && a !== "data" && !kt(i[r][a], t[r][a])) return !1; - for (a in t[r]) - if (Object.prototype.hasOwnProperty.call(t[r], a) && a !== "data" && !kt(i[r][a], t[r][a])) return !1; - return !0 - } - - function mr(i, t, r, a, c, p) { - i = i || {}, t = t || {}; - for (const f in i) Object.prototype.hasOwnProperty.call(i, f) && (kt(i[f], t[f]) || r.push({ - command: p, - args: [a, f, t[f], c] - })); - for (const f in t) Object.prototype.hasOwnProperty.call(t, f) && !Object.prototype.hasOwnProperty.call(i, f) && (kt(i[f], t[f]) || r.push({ - command: p, - args: [a, f, t[f], c] - })) - } - - function gr(i) { - return i.id - } - - function ai(i, t) { - return i[t.id] = t, i - } - class Tt { - constructor(t, r, a, c) { - this.message = (t ? `${t}: ` : "") + a, c && (this.identifier = c), r != null && r.__line__ && (this.line = r.__line__) - } - } - - function Ci(i, ...t) { - for (const r of t) - for (const a in r) i[a] = r[a]; - return i - } - class di extends Error { - constructor(t, r) { - super(r), this.message = r, this.key = t - } - } - class Pn { - constructor(t, r = []) { - this.parent = t, this.bindings = {}; - for (const [a, c] of r) this.bindings[a] = c - } - concat(t) { - return new Pn(this, t) - } - get(t) { - if (this.bindings[t]) return this.bindings[t]; - if (this.parent) return this.parent.get(t); - throw new Error(`${t} not found in scope.`) - } - has(t) { - return !!this.bindings[t] || !!this.parent && this.parent.has(t) - } - } - const Mt = { - kind: "null" - }, - Ke = { - kind: "number" - }, - jt = { - kind: "string" - }, - Gt = { - kind: "boolean" - }, - Dr = { - kind: "color" - }, - Gr = { - kind: "projectionDefinition" - }, - li = { - kind: "object" - }, - fr = { - kind: "value" - }, - bi = { - kind: "collator" - }, - Si = { - kind: "formatted" - }, - zi = { - kind: "padding" - }, - mi = { - kind: "colorArray" - }, - Li = { - kind: "numberArray" - }, - rr = { - kind: "resolvedImage" - }, - yi = { - kind: "variableAnchorOffsetCollection" - }; - - function Qr(i, t) { - return { - kind: "array", - itemType: i, - N: t - } - } - - function Yr(i) { - if (i.kind === "array") { - const t = Yr(i.itemType); - return typeof i.N == "number" ? `array<${t}, ${i.N}>` : i.itemType.kind === "value" ? "array" : `array<${t}>` - } - return i.kind - } - const la = [Mt, Ke, jt, Gt, Dr, Gr, Si, li, Qr(fr), zi, Li, mi, rr, yi]; - - function sn(i, t) { - if (t.kind === "error") return null; - if (i.kind === "array") { - if (t.kind === "array" && (t.N === 0 && t.itemType.kind === "value" || !sn(i.itemType, t.itemType)) && (typeof i.N != "number" || i.N === t.N)) return null - } else { - if (i.kind === t.kind) return null; - if (i.kind === "value") { - for (const r of la) - if (!sn(r, t)) return null - } - } - return `Expected ${Yr(i)} but found ${Yr(t)} instead.` - } - - function ta(i, t) { - return t.some((r => r.kind === i.kind)) - } - - function Fi(i, t) { - return t.some((r => r === "null" ? i === null : r === "array" ? Array.isArray(i) : r === "object" ? i && !Array.isArray(i) && typeof i == "object" : r === typeof i)) - } - - function Xi(i, t) { - return i.kind === "array" && t.kind === "array" ? i.itemType.kind === t.itemType.kind && typeof i.N == "number" : i.kind === t.kind - } - const Gn = .96422, - Hn = .82521, - Ln = 4 / 29, - gt = 6 / 29, - qt = 3 * gt * gt, - vr = gt * gt * gt, - _i = Math.PI / 180, - Di = 180 / Math.PI; - - function $i(i) { - return (i %= 360) < 0 && (i += 360), i - } - - function Mi([i, t, r, a]) { - let c, p; - const f = gn((.2225045 * (i = Cr(i)) + .7168786 * (t = Cr(t)) + .0606169 * (r = Cr(r))) / 1); - i === t && t === r ? c = p = f : (c = gn((.4360747 * i + .3850649 * t + .1430804 * r) / Gn), p = gn((.0139322 * i + .0971045 * t + .7141733 * r) / Hn)); - const g = 116 * f - 16; - return [g < 0 ? 0 : g, 500 * (c - f), 200 * (f - p), a] - } - - function Cr(i) { - return i <= .04045 ? i / 12.92 : Math.pow((i + .055) / 1.055, 2.4) - } - - function gn(i) { - return i > vr ? Math.pow(i, 1 / 3) : i / qt + Ln - } - - function tr([i, t, r, a]) { - let c = (i + 16) / 116, - p = isNaN(t) ? c : c + t / 500, - f = isNaN(r) ? c : c - r / 200; - return c = 1 * ei(c), p = Gn * ei(p), f = Hn * ei(f), [Ht(3.1338561 * p - 1.6168667 * c - .4906146 * f), Ht(-.9787684 * p + 1.9161415 * c + .033454 * f), Ht(.0719453 * p - .2289914 * c + 1.4052427 * f), a] - } - - function Ht(i) { - return (i = i <= .00304 ? 12.92 * i : 1.055 * Math.pow(i, 1 / 2.4) - .055) < 0 ? 0 : i > 1 ? 1 : i - } - - function ei(i) { - return i > gt ? i * i * i : qt * (i - Ln) - } - const ri = Object.hasOwn || function(i, t) { - return Object.prototype.hasOwnProperty.call(i, t) - }; - - function gi(i, t) { - return ri(i, t) ? i[t] : void 0 - } - - function ci(i) { - return parseInt(i.padEnd(2, i), 16) / 255 - } - - function pi(i, t) { - return Er(t ? i / 100 : i, 0, 1) - } - - function Er(i, t, r) { - return Math.min(Math.max(t, i), r) - } - - function Ri(i) { - return !i.some(Number.isNaN) - } - const ui = { - aliceblue: [240, 248, 255], - antiquewhite: [250, 235, 215], - aqua: [0, 255, 255], - aquamarine: [127, 255, 212], - azure: [240, 255, 255], - beige: [245, 245, 220], - bisque: [255, 228, 196], - black: [0, 0, 0], - blanchedalmond: [255, 235, 205], - blue: [0, 0, 255], - blueviolet: [138, 43, 226], - brown: [165, 42, 42], - burlywood: [222, 184, 135], - cadetblue: [95, 158, 160], - chartreuse: [127, 255, 0], - chocolate: [210, 105, 30], - coral: [255, 127, 80], - cornflowerblue: [100, 149, 237], - cornsilk: [255, 248, 220], - crimson: [220, 20, 60], - cyan: [0, 255, 255], - darkblue: [0, 0, 139], - darkcyan: [0, 139, 139], - darkgoldenrod: [184, 134, 11], - darkgray: [169, 169, 169], - darkgreen: [0, 100, 0], - darkgrey: [169, 169, 169], - darkkhaki: [189, 183, 107], - darkmagenta: [139, 0, 139], - darkolivegreen: [85, 107, 47], - darkorange: [255, 140, 0], - darkorchid: [153, 50, 204], - darkred: [139, 0, 0], - darksalmon: [233, 150, 122], - darkseagreen: [143, 188, 143], - darkslateblue: [72, 61, 139], - darkslategray: [47, 79, 79], - darkslategrey: [47, 79, 79], - darkturquoise: [0, 206, 209], - darkviolet: [148, 0, 211], - deeppink: [255, 20, 147], - deepskyblue: [0, 191, 255], - dimgray: [105, 105, 105], - dimgrey: [105, 105, 105], - dodgerblue: [30, 144, 255], - firebrick: [178, 34, 34], - floralwhite: [255, 250, 240], - forestgreen: [34, 139, 34], - fuchsia: [255, 0, 255], - gainsboro: [220, 220, 220], - ghostwhite: [248, 248, 255], - gold: [255, 215, 0], - goldenrod: [218, 165, 32], - gray: [128, 128, 128], - green: [0, 128, 0], - greenyellow: [173, 255, 47], - grey: [128, 128, 128], - honeydew: [240, 255, 240], - hotpink: [255, 105, 180], - indianred: [205, 92, 92], - indigo: [75, 0, 130], - ivory: [255, 255, 240], - khaki: [240, 230, 140], - lavender: [230, 230, 250], - lavenderblush: [255, 240, 245], - lawngreen: [124, 252, 0], - lemonchiffon: [255, 250, 205], - lightblue: [173, 216, 230], - lightcoral: [240, 128, 128], - lightcyan: [224, 255, 255], - lightgoldenrodyellow: [250, 250, 210], - lightgray: [211, 211, 211], - lightgreen: [144, 238, 144], - lightgrey: [211, 211, 211], - lightpink: [255, 182, 193], - lightsalmon: [255, 160, 122], - lightseagreen: [32, 178, 170], - lightskyblue: [135, 206, 250], - lightslategray: [119, 136, 153], - lightslategrey: [119, 136, 153], - lightsteelblue: [176, 196, 222], - lightyellow: [255, 255, 224], - lime: [0, 255, 0], - limegreen: [50, 205, 50], - linen: [250, 240, 230], - magenta: [255, 0, 255], - maroon: [128, 0, 0], - mediumaquamarine: [102, 205, 170], - mediumblue: [0, 0, 205], - mediumorchid: [186, 85, 211], - mediumpurple: [147, 112, 219], - mediumseagreen: [60, 179, 113], - mediumslateblue: [123, 104, 238], - mediumspringgreen: [0, 250, 154], - mediumturquoise: [72, 209, 204], - mediumvioletred: [199, 21, 133], - midnightblue: [25, 25, 112], - mintcream: [245, 255, 250], - mistyrose: [255, 228, 225], - moccasin: [255, 228, 181], - navajowhite: [255, 222, 173], - navy: [0, 0, 128], - oldlace: [253, 245, 230], - olive: [128, 128, 0], - olivedrab: [107, 142, 35], - orange: [255, 165, 0], - orangered: [255, 69, 0], - orchid: [218, 112, 214], - palegoldenrod: [238, 232, 170], - palegreen: [152, 251, 152], - paleturquoise: [175, 238, 238], - palevioletred: [219, 112, 147], - papayawhip: [255, 239, 213], - peachpuff: [255, 218, 185], - peru: [205, 133, 63], - pink: [255, 192, 203], - plum: [221, 160, 221], - powderblue: [176, 224, 230], - purple: [128, 0, 128], - rebeccapurple: [102, 51, 153], - red: [255, 0, 0], - rosybrown: [188, 143, 143], - royalblue: [65, 105, 225], - saddlebrown: [139, 69, 19], - salmon: [250, 128, 114], - sandybrown: [244, 164, 96], - seagreen: [46, 139, 87], - seashell: [255, 245, 238], - sienna: [160, 82, 45], - silver: [192, 192, 192], - skyblue: [135, 206, 235], - slateblue: [106, 90, 205], - slategray: [112, 128, 144], - slategrey: [112, 128, 144], - snow: [255, 250, 250], - springgreen: [0, 255, 127], - steelblue: [70, 130, 180], - tan: [210, 180, 140], - teal: [0, 128, 128], - thistle: [216, 191, 216], - tomato: [255, 99, 71], - turquoise: [64, 224, 208], - violet: [238, 130, 238], - wheat: [245, 222, 179], - white: [255, 255, 255], - whitesmoke: [245, 245, 245], - yellow: [255, 255, 0], - yellowgreen: [154, 205, 50] - }; - - function Jr(i, t, r) { - return i + r * (t - i) - } - - function ti(i, t, r) { - return i.map(((a, c) => Jr(a, t[c], r))) - } - class yr { - constructor(t, r, a, c = 1, p = !0) { - this.r = t, this.g = r, this.b = a, this.a = c, p || (this.r *= c, this.g *= c, this.b *= c, c || this.overwriteGetter("rgb", [t, r, a, c])) - } - static parse(t) { - if (t instanceof yr) return t; - if (typeof t != "string") return; - const r = (function(a) { - if ((a = a.toLowerCase().trim()) === "transparent") return [0, 0, 0, 0]; - const c = gi(ui, a); - if (c) { - const [f, g, v] = c; - return [f / 255, g / 255, v / 255, 1] - } - if (a.startsWith("#") && /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(a)) { - const f = a.length < 6 ? 1 : 2; - let g = 1; - return [ci(a.slice(g, g += f)), ci(a.slice(g, g += f)), ci(a.slice(g, g += f)), ci(a.slice(g, g + f) || "ff")] - } - if (a.startsWith("rgb")) { - const f = a.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/); - if (f) { - const [g, v, S, I, E, R, N, j, Z, Y, ae, ze] = f, me = [I || " ", N || " ", Y].join(""); - if (me === " " || me === " /" || me === ",," || me === ",,,") { - const be = [S, R, Z].join(""), - Ve = be === "%%%" ? 100 : be === "" ? 255 : 0; - if (Ve) { - const rt = [Er(+v / Ve, 0, 1), Er(+E / Ve, 0, 1), Er(+j / Ve, 0, 1), ae ? pi(+ae, ze) : 1]; - if (Ri(rt)) return rt - } - } - return - } - } - const p = a.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/); - if (p) { - const [f, g, v, S, I, E, R, N, j] = p, Z = [v || " ", I || " ", R].join(""); - if (Z === " " || Z === " /" || Z === ",," || Z === ",,,") { - const Y = [+g, Er(+S, 0, 100), Er(+E, 0, 100), N ? pi(+N, j) : 1]; - if (Ri(Y)) return (function([ae, ze, me, be]) { - function Ve(rt) { - const St = (rt + ae / 30) % 12, - $t = ze * Math.min(me, 1 - me); - return me - $t * Math.max(-1, Math.min(St - 3, 9 - St, 1)) - } - return ae = $i(ae), ze /= 100, me /= 100, [Ve(0), Ve(8), Ve(4), be] - })(Y) - } - } - })(t); - return r ? new yr(...r, !1) : void 0 - } - get rgb() { - const { - r: t, - g: r, - b: a, - a: c - } = this, p = c || 1 / 0; - return this.overwriteGetter("rgb", [t / p, r / p, a / p, c]) - } - get hcl() { - return this.overwriteGetter("hcl", (function(t) { - const [r, a, c, p] = Mi(t), f = Math.sqrt(a * a + c * c); - return [Math.round(1e4 * f) ? $i(Math.atan2(c, a) * Di) : NaN, f, r, p] - })(this.rgb)) - } - get lab() { - return this.overwriteGetter("lab", Mi(this.rgb)) - } - overwriteGetter(t, r) { - return Object.defineProperty(this, t, { - value: r - }), r - } - toString() { - const [t, r, a, c] = this.rgb; - return `rgba(${[t,r,a].map((p=>Math.round(255*p))).join(",")},${c})` - } - static interpolate(t, r, a, c = "rgb") { - switch (c) { - case "rgb": { - const [p, f, g, v] = ti(t.rgb, r.rgb, a); - return new yr(p, f, g, v, !1) - } - case "hcl": { - const [p, f, g, v] = t.hcl, [S, I, E, R] = r.hcl; - let N, j; - if (isNaN(p) || isNaN(S)) isNaN(p) ? isNaN(S) ? N = NaN : (N = S, g !== 1 && g !== 0 || (j = I)) : (N = p, E !== 1 && E !== 0 || (j = f)); - else { - let me = S - p; - S > p && me > 180 ? me -= 360 : S < p && p - S > 180 && (me += 360), N = p + a * me - } - const [Z, Y, ae, ze] = (function([me, be, Ve, rt]) { - return me = isNaN(me) ? 0 : me * _i, tr([Ve, Math.cos(me) * be, Math.sin(me) * be, rt]) - })([N, j ?? Jr(f, I, a), Jr(g, E, a), Jr(v, R, a)]); - return new yr(Z, Y, ae, ze, !1) - } - case "lab": { - const [p, f, g, v] = tr(ti(t.lab, r.lab, a)); - return new yr(p, f, g, v, !1) - } - } - } - } - yr.black = new yr(0, 0, 0, 1), yr.white = new yr(1, 1, 1, 1), yr.transparent = new yr(0, 0, 0, 0), yr.red = new yr(1, 0, 0, 1); - class on { - constructor(t, r, a) { - this.sensitivity = t ? r ? "variant" : "case" : r ? "accent" : "base", this.locale = a, this.collator = new Intl.Collator(this.locale ? this.locale : [], { - sensitivity: this.sensitivity, - usage: "search" - }) - } - compare(t, r) { - return this.collator.compare(t, r) - } - resolvedLocale() { - return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale - } - } - const vn = ["bottom", "center", "top"]; - class _a { - constructor(t, r, a, c, p, f) { - this.text = t, this.image = r, this.scale = a, this.fontStack = c, this.textColor = p, this.verticalAlign = f - } - } - class ln { - constructor(t) { - this.sections = t - } - static fromString(t) { - return new ln([new _a(t, null, null, null, null, null)]) - } - isEmpty() { - return this.sections.length === 0 || !this.sections.some((t => t.text.length !== 0 || t.image && t.image.name.length !== 0)) - } - static factory(t) { - return t instanceof ln ? t : ln.fromString(t) - } - toString() { - return this.sections.length === 0 ? "" : this.sections.map((t => t.text)).join("") - } - } - class Ki { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof Ki) return t; - if (typeof t == "number") return new Ki([t, t, t, t]); - if (Array.isArray(t) && !(t.length < 1 || t.length > 4)) { - for (const r of t) - if (typeof r != "number") return; - switch (t.length) { - case 1: - t = [t[0], t[0], t[0], t[0]]; - break; - case 2: - t = [t[0], t[1], t[0], t[1]]; - break; - case 3: - t = [t[0], t[1], t[2], t[1]] - } - return new Ki(t) - } - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a) { - return new Ki(ti(t.values, r.values, a)) - } - } - class cn { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof cn) return t; - if (typeof t == "number") return new cn([t]); - if (Array.isArray(t)) { - for (const r of t) - if (typeof r != "number") return; - return new cn(t) - } - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a) { - return new cn(ti(t.values, r.values, a)) - } - } - class Ni { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof Ni) return t; - if (typeof t == "string") { - const a = yr.parse(t); - return a ? new Ni([a]) : void 0 - } - if (!Array.isArray(t)) return; - const r = []; - for (const a of t) { - if (typeof a != "string") return; - const c = yr.parse(a); - if (!c) return; - r.push(c) - } - return new Ni(r) - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a, c = "rgb") { - const p = []; - if (t.values.length != r.values.length) throw new Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${r.values.length}), cannot interpolate.`); - for (let f = 0; f < t.values.length; f++) p.push(yr.interpolate(t.values[f], r.values[f], a, c)); - return new Ni(p) - } - } - class wi extends Error { - constructor(t) { - super(t), this.name = "RuntimeError" - } - toJSON() { - return this.message - } - } - const Ko = new Set(["center", "left", "right", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right"]); - class un { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof un) return t; - if (Array.isArray(t) && !(t.length < 1) && t.length % 2 == 0) { - for (let r = 0; r < t.length; r += 2) { - const a = t[r], - c = t[r + 1]; - if (typeof a != "string" || !Ko.has(a) || !Array.isArray(c) || c.length !== 2 || typeof c[0] != "number" || typeof c[1] != "number") return - } - return new un(t) - } - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a) { - const c = t.values, - p = r.values; - if (c.length !== p.length) throw new wi(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${r.toString()}`); - const f = []; - for (let g = 0; g < c.length; g += 2) { - if (c[g] !== p[g]) throw new wi(`Cannot interpolate values containing mismatched anchors. from[${g}]: ${c[g]}, to[${g}]: ${p[g]}`); - f.push(c[g]); - const [v, S] = c[g + 1], [I, E] = p[g + 1]; - f.push([Jr(v, I, a), Jr(S, E, a)]) - } - return new un(f) - } - } - class Nn { - constructor(t) { - this.name = t.name, this.available = t.available - } - toString() { - return this.name - } - static fromString(t) { - return t ? new Nn({ - name: t, - available: !1 - }) : null - } - } - class hn { - constructor(t, r, a) { - this.from = t, this.to = r, this.transition = a - } - static interpolate(t, r, a) { - return new hn(t, r, a) - } - static parse(t) { - return t instanceof hn ? t : Array.isArray(t) && t.length === 3 && typeof t[0] == "string" && typeof t[1] == "string" && typeof t[2] == "number" ? new hn(t[0], t[1], t[2]) : typeof t == "object" && typeof t.from == "string" && typeof t.to == "string" && typeof t.transition == "number" ? new hn(t.from, t.to, t.transition) : typeof t == "string" ? new hn(t, t, 1) : void 0 - } - } - - function Ti(i, t, r, a) { - return typeof i == "number" && i >= 0 && i <= 255 && typeof t == "number" && t >= 0 && t <= 255 && typeof r == "number" && r >= 0 && r <= 255 ? a === void 0 || typeof a == "number" && a >= 0 && a <= 1 ? null : `Invalid rgba value [${[i,t,r,a].join(", ")}]: 'a' must be between 0 and 1.` : `Invalid rgba value [${(typeof a=="number"?[i,t,r,a]:[i,t,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.` - } - - function Za(i) { - if (i === null || typeof i == "string" || typeof i == "boolean" || typeof i == "number" || i instanceof hn || i instanceof yr || i instanceof on || i instanceof ln || i instanceof Ki || i instanceof cn || i instanceof Ni || i instanceof un || i instanceof Nn) return !0; - if (Array.isArray(i)) { - for (const t of i) - if (!Za(t)) return !1; - return !0 - } - if (typeof i == "object") { - for (const t in i) - if (!Za(i[t])) return !1; - return !0 - } - return !1 - } - - function wr(i) { - if (i === null) return Mt; - if (typeof i == "string") return jt; - if (typeof i == "boolean") return Gt; - if (typeof i == "number") return Ke; - if (i instanceof yr) return Dr; - if (i instanceof hn) return Gr; - if (i instanceof on) return bi; - if (i instanceof ln) return Si; - if (i instanceof Ki) return zi; - if (i instanceof cn) return Li; - if (i instanceof Ni) return mi; - if (i instanceof un) return yi; - if (i instanceof Nn) return rr; - if (Array.isArray(i)) { - const t = i.length; - let r; - for (const a of i) { - const c = wr(a); - if (r) { - if (r === c) continue; - r = fr; - break - } - r = c - } - return Qr(r || fr, t) - } - return li - } - - function Vr(i) { - const t = typeof i; - return i === null ? "" : t === "string" || t === "number" || t === "boolean" ? String(i) : i instanceof yr || i instanceof hn || i instanceof ln || i instanceof Ki || i instanceof cn || i instanceof Ni || i instanceof un || i instanceof Nn ? i.toString() : JSON.stringify(i) - } - class ga { - constructor(t, r) { - this.type = t, this.value = r - } - static parse(t, r) { - if (t.length !== 2) return r.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`); - if (!Za(t[1])) return r.error("invalid value"); - const a = t[1]; - let c = wr(a); - const p = r.expectedType; - return c.kind !== "array" || c.N !== 0 || !p || p.kind !== "array" || typeof p.N == "number" && p.N !== 0 || (c = p), new ga(c, a) - } - evaluate() { - return this.value - } - eachChild() {} - outputDefined() { - return !0 - } - } - const hi = { - string: jt, - number: Ke, - boolean: Gt, - object: li - }; - class ra { - constructor(t, r) { - this.type = t, this.args = r - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - let a, c = 1; - const p = t[0]; - if (p === "array") { - let g, v; - if (t.length > 2) { - const S = t[1]; - if (typeof S != "string" || !(S in hi) || S === "object") return r.error('The item type argument of "array" must be one of string, number, boolean', 1); - g = hi[S], c++ - } else g = fr; - if (t.length > 3) { - if (t[2] !== null && (typeof t[2] != "number" || t[2] < 0 || t[2] !== Math.floor(t[2]))) return r.error('The length argument to "array" must be a positive integer literal', 2); - v = t[2], c++ - } - a = Qr(g, v) - } else { - if (!hi[p]) throw new Error(`Types doesn't contain name = ${p}`); - a = hi[p] - } - const f = []; - for (; c < t.length; c++) { - const g = r.parse(t[c], c, fr); - if (!g) return null; - f.push(g) - } - return new ra(a, f) - } - evaluate(t) { - for (let r = 0; r < this.args.length; r++) { - const a = this.args[r].evaluate(t); - if (!sn(this.type, wr(a))) return a; - if (r === this.args.length - 1) throw new wi(`Expected value to be of type ${Yr(this.type)}, but found ${Yr(wr(a))} instead.`) - } - throw new Error - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return this.args.every((t => t.outputDefined())) - } - } - const Ra = { - "to-boolean": Gt, - "to-color": Dr, - "to-number": Ke, - "to-string": jt - }; - class Ba { - constructor(t, r) { - this.type = t, this.args = r - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - const a = t[0]; - if (!Ra[a]) throw new Error(`Can't parse ${a} as it is not part of the known types`); - if ((a === "to-boolean" || a === "to-string") && t.length !== 2) return r.error("Expected one argument."); - const c = Ra[a], - p = []; - for (let f = 1; f < t.length; f++) { - const g = r.parse(t[f], f, fr); - if (!g) return null; - p.push(g) - } - return new Ba(c, p) - } - evaluate(t) { - switch (this.type.kind) { - case "boolean": - return !!this.args[0].evaluate(t); - case "color": { - let r, a; - for (const c of this.args) { - if (r = c.evaluate(t), a = null, r instanceof yr) return r; - if (typeof r == "string") { - const p = t.parseColor(r); - if (p) return p - } else if (Array.isArray(r) && (a = r.length < 3 || r.length > 4 ? `Invalid rgba value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.` : Ti(r[0], r[1], r[2], r[3]), !a)) return new yr(r[0] / 255, r[1] / 255, r[2] / 255, r[3]) - } - throw new wi(a || `Could not parse color from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "padding": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = Ki.parse(r); - if (c) return c - } - throw new wi(`Could not parse padding from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "numberArray": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = cn.parse(r); - if (c) return c - } - throw new wi(`Could not parse numberArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "colorArray": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = Ni.parse(r); - if (c) return c - } - throw new wi(`Could not parse colorArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "variableAnchorOffsetCollection": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = un.parse(r); - if (c) return c - } - throw new wi(`Could not parse variableAnchorOffsetCollection from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "number": { - let r = null; - for (const a of this.args) { - if (r = a.evaluate(t), r === null) return 0; - const c = Number(r); - if (!isNaN(c)) return c - } - throw new wi(`Could not convert ${JSON.stringify(r)} to number.`) - } - case "formatted": - return ln.fromString(Vr(this.args[0].evaluate(t))); - case "resolvedImage": - return Nn.fromString(Vr(this.args[0].evaluate(t))); - case "projectionDefinition": - return this.args[0].evaluate(t); - default: - return Vr(this.args[0].evaluate(t)) - } - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return this.args.every((t => t.outputDefined())) - } - } - const Yo = ["Unknown", "Point", "LineString", "Polygon"]; - class mc { - constructor() { - this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = new Map, this.availableImages = null, this.canonical = null - } - id() { - return this.feature && "id" in this.feature ? this.feature.id : null - } - geometryType() { - return this.feature ? typeof this.feature.type == "number" ? Yo[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(t) { - let r = this._parseColorCache.get(t); - return r || (r = yr.parse(t), this._parseColorCache.set(t, r)), r - } - } - class Rs { - constructor(t, r, a = [], c, p = new Pn, f = []) { - this.registry = t, this.path = a, this.key = a.map((g => `[${g}]`)).join(""), this.scope = p, this.errors = f, this.expectedType = c, this._isConstant = r - } - parse(t, r, a, c, p = {}) { - return r ? this.concat(r, a, c)._parse(t, p) : this._parse(t, p) - } - _parse(t, r) { - function a(c, p, f) { - return f === "assert" ? new ra(p, [c]) : f === "coerce" ? new Ba(p, [c]) : c - } - if (t !== null && typeof t != "string" && typeof t != "boolean" && typeof t != "number" || (t = ["literal", t]), Array.isArray(t)) { - if (t.length === 0) return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].'); - const c = t[0]; - if (typeof c != "string") return this.error(`Expression name must be a string, but found ${typeof c} instead. If you wanted a literal array, use ["literal", [...]].`, 0), null; - const p = this.registry[c]; - if (p) { - let f = p.parse(t, this); - if (!f) return null; - if (this.expectedType) { - const g = this.expectedType, - v = f.type; - if (g.kind !== "string" && g.kind !== "number" && g.kind !== "boolean" && g.kind !== "object" && g.kind !== "array" || v.kind !== "value") { - if (g.kind === "projectionDefinition" && ["string", "array"].includes(v.kind) || ["color", "formatted", "resolvedImage"].includes(g.kind) && ["value", "string"].includes(v.kind) || ["padding", "numberArray"].includes(g.kind) && ["value", "number", "array"].includes(v.kind) || g.kind === "colorArray" && ["value", "string", "array"].includes(v.kind) || g.kind === "variableAnchorOffsetCollection" && ["value", "array"].includes(v.kind)) f = a(f, g, r.typeAnnotation || "coerce"); - else if (this.checkSubtype(g, v)) return null - } else f = a(f, g, r.typeAnnotation || "assert") - } - if (!(f instanceof ga) && f.type.kind !== "resolvedImage" && this._isConstant(f)) { - const g = new mc; - try { - f = new ga(f.type, f.evaluate(g)) - } catch (v) { - return this.error(v.message), null - } - } - return f - } - return this.error(`Unknown expression "${c}". If you wanted a literal array, use ["literal", [...]].`, 0) - } - return this.error(t === void 0 ? "'undefined' value invalid. Use null instead." : typeof t == "object" ? 'Bare objects invalid. Use ["literal", {...}] instead.' : `Expected an array, but found ${typeof t} instead.`) - } - concat(t, r, a) { - const c = typeof t == "number" ? this.path.concat(t) : this.path, - p = a ? this.scope.concat(a) : this.scope; - return new Rs(this.registry, this._isConstant, c, r || null, p, this.errors) - } - error(t, ...r) { - const a = `${this.key}${r.map((c=>`[${c}]`)).join("")}`; - this.errors.push(new di(a, t)) - } - checkSubtype(t, r) { - const a = sn(t, r); - return a && this.error(a), a - } - } - class co { - constructor(t, r) { - this.type = r.type, this.bindings = [].concat(t), this.result = r - } - evaluate(t) { - return this.result.evaluate(t) - } - eachChild(t) { - for (const r of this.bindings) t(r[1]); - t(this.result) - } - static parse(t, r) { - if (t.length < 4) return r.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`); - const a = []; - for (let p = 1; p < t.length - 1; p += 2) { - const f = t[p]; - if (typeof f != "string") return r.error(`Expected string, but found ${typeof f} instead.`, p); - if (/[^a-zA-Z0-9_]/.test(f)) return r.error("Variable names must contain only alphanumeric characters or '_'.", p); - const g = r.parse(t[p + 1], p + 1); - if (!g) return null; - a.push([f, g]) - } - const c = r.parse(t[t.length - 1], t.length - 1, r.expectedType, a); - return c ? new co(a, c) : null - } - outputDefined() { - return this.result.outputDefined() - } - } - class Jo { - constructor(t, r) { - this.type = r.type, this.name = t, this.boundExpression = r - } - static parse(t, r) { - if (t.length !== 2 || typeof t[1] != "string") return r.error("'var' expression requires exactly one string literal argument."); - const a = t[1]; - return r.scope.has(a) ? new Jo(a, r.scope.get(a)) : r.error(`Unknown variable "${a}". Make sure "${a}" has been bound in an enclosing "let" expression before using it.`, 1) - } - evaluate(t) { - return this.boundExpression.evaluate(t) - } - eachChild() {} - outputDefined() { - return !1 - } - } - class Qo { - constructor(t, r, a) { - this.type = t, this.index = r, this.input = a - } - static parse(t, r) { - if (t.length !== 3) return r.error(`Expected 2 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, Ke), - c = r.parse(t[2], 2, Qr(r.expectedType || fr)); - return a && c ? new Qo(c.type.itemType, a, c) : null - } - evaluate(t) { - const r = this.index.evaluate(t), - a = this.input.evaluate(t); - if (r < 0) throw new wi(`Array index out of bounds: ${r} < 0.`); - if (r >= a.length) throw new wi(`Array index out of bounds: ${r} > ${a.length-1}.`); - if (r !== Math.floor(r)) throw new wi(`Array index must be an integer, but found ${r} instead.`); - return a[r] - } - eachChild(t) { - t(this.index), t(this.input) - } - outputDefined() { - return !1 - } - } - class el { - constructor(t, r) { - this.type = Gt, this.needle = t, this.haystack = r - } - static parse(t, r) { - if (t.length !== 3) return r.error(`Expected 2 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, fr), - c = r.parse(t[2], 2, fr); - return a && c ? ta(a.type, [Gt, jt, Ke, Mt, fr]) ? new el(a, c) : r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(a.type)} instead`) : null - } - evaluate(t) { - const r = this.needle.evaluate(t), - a = this.haystack.evaluate(t); - if (!a) return !1; - if (!Fi(r, ["boolean", "string", "number", "null"])) throw new wi(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(wr(r))} instead.`); - if (!Fi(a, ["string", "array"])) throw new wi(`Expected second argument to be of type array or string, but found ${Yr(wr(a))} instead.`); - return a.indexOf(r) >= 0 - } - eachChild(t) { - t(this.needle), t(this.haystack) - } - outputDefined() { - return !0 - } - } - class va { - constructor(t, r, a) { - this.type = Ke, this.needle = t, this.haystack = r, this.fromIndex = a - } - static parse(t, r) { - if (t.length <= 2 || t.length >= 5) return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, fr), - c = r.parse(t[2], 2, fr); - if (!a || !c) return null; - if (!ta(a.type, [Gt, jt, Ke, Mt, fr])) return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(a.type)} instead`); - if (t.length === 4) { - const p = r.parse(t[3], 3, Ke); - return p ? new va(a, c, p) : null - } - return new va(a, c) - } - evaluate(t) { - const r = this.needle.evaluate(t), - a = this.haystack.evaluate(t); - if (!Fi(r, ["boolean", "string", "number", "null"])) throw new wi(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(wr(r))} instead.`); - let c; - if (this.fromIndex && (c = this.fromIndex.evaluate(t)), Fi(a, ["string"])) { - const p = a.indexOf(r, c); - return p === -1 ? -1 : [...a.slice(0, p)].length - } - if (Fi(a, ["array"])) return a.indexOf(r, c); - throw new wi(`Expected second argument to be of type array or string, but found ${Yr(wr(a))} instead.`) - } - eachChild(t) { - t(this.needle), t(this.haystack), this.fromIndex && t(this.fromIndex) - } - outputDefined() { - return !1 - } - } - class yn { - constructor(t, r, a, c, p, f) { - this.inputType = t, this.type = r, this.input = a, this.cases = c, this.outputs = p, this.otherwise = f - } - static parse(t, r) { - if (t.length < 5) return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`); - if (t.length % 2 != 1) return r.error("Expected an even number of arguments."); - let a, c; - r.expectedType && r.expectedType.kind !== "value" && (c = r.expectedType); - const p = {}, - f = []; - for (let S = 2; S < t.length - 1; S += 2) { - let I = t[S]; - const E = t[S + 1]; - Array.isArray(I) || (I = [I]); - const R = r.concat(S); - if (I.length === 0) return R.error("Expected at least one branch label."); - for (const j of I) { - if (typeof j != "number" && typeof j != "string") return R.error("Branch labels must be numbers or strings."); - if (typeof j == "number" && Math.abs(j) > Number.MAX_SAFE_INTEGER) return R.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`); - if (typeof j == "number" && Math.floor(j) !== j) return R.error("Numeric branch labels must be integer values."); - if (a) { - if (R.checkSubtype(a, wr(j))) return null - } else a = wr(j); - if (p[String(j)] !== void 0) return R.error("Branch labels must be unique."); - p[String(j)] = f.length - } - const N = r.parse(E, S, c); - if (!N) return null; - c = c || N.type, f.push(N) - } - const g = r.parse(t[1], 1, fr); - if (!g) return null; - const v = r.parse(t[t.length - 1], t.length - 1, c); - return v ? g.type.kind !== "value" && r.concat(1).checkSubtype(a, g.type) ? null : new yn(a, c, g, p, f, v) : null - } - evaluate(t) { - const r = this.input.evaluate(t); - return (wr(r) === this.inputType && this.outputs[this.cases[r]] || this.otherwise).evaluate(t) - } - eachChild(t) { - t(this.input), this.outputs.forEach(t), t(this.otherwise) - } - outputDefined() { - return this.outputs.every((t => t.outputDefined())) && this.otherwise.outputDefined() - } - } - class Bs { - constructor(t, r, a) { - this.type = t, this.branches = r, this.otherwise = a - } - static parse(t, r) { - if (t.length < 4) return r.error(`Expected at least 3 arguments, but found only ${t.length-1}.`); - if (t.length % 2 != 0) return r.error("Expected an odd number of arguments."); - let a; - r.expectedType && r.expectedType.kind !== "value" && (a = r.expectedType); - const c = []; - for (let f = 1; f < t.length - 1; f += 2) { - const g = r.parse(t[f], f, Gt); - if (!g) return null; - const v = r.parse(t[f + 1], f + 1, a); - if (!v) return null; - c.push([g, v]), a = a || v.type - } - const p = r.parse(t[t.length - 1], t.length - 1, a); - if (!p) return null; - if (!a) throw new Error("Can't infer output type"); - return new Bs(a, c, p) - } - evaluate(t) { - for (const [r, a] of this.branches) - if (r.evaluate(t)) return a.evaluate(t); - return this.otherwise.evaluate(t) - } - eachChild(t) { - for (const [r, a] of this.branches) t(r), t(a); - t(this.otherwise) - } - outputDefined() { - return this.branches.every((([t, r]) => r.outputDefined())) && this.otherwise.outputDefined() - } - } - class uo { - constructor(t, r, a, c) { - this.type = t, this.input = r, this.beginIndex = a, this.endIndex = c - } - static parse(t, r) { - if (t.length <= 2 || t.length >= 5) return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, fr), - c = r.parse(t[2], 2, Ke); - if (!a || !c) return null; - if (!ta(a.type, [Qr(fr), jt, fr])) return r.error(`Expected first argument to be of type array or string, but found ${Yr(a.type)} instead`); - if (t.length === 4) { - const p = r.parse(t[3], 3, Ke); - return p ? new uo(a.type, a, c, p) : null - } - return new uo(a.type, a, c) - } - evaluate(t) { - const r = this.input.evaluate(t), - a = this.beginIndex.evaluate(t); - let c; - if (this.endIndex && (c = this.endIndex.evaluate(t)), Fi(r, ["string"])) return [...r].slice(a, c).join(""); - if (Fi(r, ["array"])) return r.slice(a, c); - throw new wi(`Expected first argument to be of type array or string, but found ${Yr(wr(r))} instead.`) - } - eachChild(t) { - t(this.input), t(this.beginIndex), this.endIndex && t(this.endIndex) - } - outputDefined() { - return !1 - } - } - - function fs(i, t) { - const r = i.length - 1; - let a, c, p = 0, - f = r, - g = 0; - for (; p <= f;) - if (g = Math.floor((p + f) / 2), a = i[g], c = i[g + 1], a <= t) { - if (g === r || t < c) return g; - p = g + 1 - } else { - if (!(a > t)) throw new wi("Input is not a number."); - f = g - 1 - } return 0 - } - class Gi { - constructor(t, r, a) { - this.type = t, this.input = r, this.labels = [], this.outputs = []; - for (const [c, p] of a) this.labels.push(c), this.outputs.push(p) - } - static parse(t, r) { - if (t.length - 1 < 4) return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`); - if ((t.length - 1) % 2 != 0) return r.error("Expected an even number of arguments."); - const a = r.parse(t[1], 1, Ke); - if (!a) return null; - const c = []; - let p = null; - r.expectedType && r.expectedType.kind !== "value" && (p = r.expectedType); - for (let f = 1; f < t.length; f += 2) { - const g = f === 1 ? -1 / 0 : t[f], - v = t[f + 1], - S = f, - I = f + 1; - if (typeof g != "number") return r.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', S); - if (c.length && c[c.length - 1][0] >= g) return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', S); - const E = r.parse(v, I, p); - if (!E) return null; - p = p || E.type, c.push([g, E]) - } - return new Gi(p, a, c) - } - evaluate(t) { - const r = this.labels, - a = this.outputs; - if (r.length === 1) return a[0].evaluate(t); - const c = this.input.evaluate(t); - if (c <= r[0]) return a[0].evaluate(t); - const p = r.length; - return c >= r[p - 1] ? a[p - 1].evaluate(t) : a[fs(r, c)].evaluate(t) - } - eachChild(t) { - t(this.input); - for (const r of this.outputs) t(r) - } - outputDefined() { - return this.outputs.every((t => t.outputDefined())) - } - } - - function _h(i) { - return i && i.__esModule && Object.prototype.hasOwnProperty.call(i, "default") ? i.default : i - } - var ho, _c, Yd = (function() { - if (_c) return ho; - - function i(t, r, a, c) { - this.cx = 3 * t, this.bx = 3 * (a - t) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * r, this.by = 3 * (c - r) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t, this.p1y = r, this.p2x = a, this.p2y = c - } - return _c = 1, ho = i, i.prototype = { - sampleCurveX: function(t) { - return ((this.ax * t + this.bx) * t + this.cx) * t - }, - sampleCurveY: function(t) { - return ((this.ay * t + this.by) * t + this.cy) * t - }, - sampleCurveDerivativeX: function(t) { - return (3 * this.ax * t + 2 * this.bx) * t + this.cx - }, - solveCurveX: function(t, r) { - if (r === void 0 && (r = 1e-6), t < 0) return 0; - if (t > 1) return 1; - for (var a = t, c = 0; c < 8; c++) { - var p = this.sampleCurveX(a) - t; - if (Math.abs(p) < r) return a; - var f = this.sampleCurveDerivativeX(a); - if (Math.abs(f) < 1e-6) break; - a -= p / f - } - var g = 0, - v = 1; - for (a = t, c = 0; c < 20 && (p = this.sampleCurveX(a), !(Math.abs(p - t) < r)); c++) t > p ? g = a : v = a, a = .5 * (v - g) + g; - return a - }, - solve: function(t, r) { - return this.sampleCurveY(this.solveCurveX(t, r)) - } - }, ho - })(), - Fs = _h(Yd); - class In { - constructor(t, r, a, c, p) { - this.type = t, this.operator = r, this.interpolation = a, this.input = c, this.labels = [], this.outputs = []; - for (const [f, g] of p) this.labels.push(f), this.outputs.push(g) - } - static interpolationFactor(t, r, a, c) { - let p = 0; - if (t.name === "exponential") p = po(r, t.base, a, c); - else if (t.name === "linear") p = po(r, 1, a, c); - else if (t.name === "cubic-bezier") { - const f = t.controlPoints; - p = new Fs(f[0], f[1], f[2], f[3]).solve(po(r, 1, a, c)) - } - return p - } - static parse(t, r) { - let [a, c, p, ...f] = t; - if (!Array.isArray(c) || c.length === 0) return r.error("Expected an interpolation type expression.", 1); - if (c[0] === "linear") c = { - name: "linear" - }; - else if (c[0] === "exponential") { - const S = c[1]; - if (typeof S != "number") return r.error("Exponential interpolation requires a numeric base.", 1, 1); - c = { - name: "exponential", - base: S - } - } else { - if (c[0] !== "cubic-bezier") return r.error(`Unknown interpolation type ${String(c[0])}`, 1, 0); - { - const S = c.slice(1); - if (S.length !== 4 || S.some((I => typeof I != "number" || I < 0 || I > 1))) return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1); - c = { - name: "cubic-bezier", - controlPoints: S - } - } - } - if (t.length - 1 < 4) return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`); - if ((t.length - 1) % 2 != 0) return r.error("Expected an even number of arguments."); - if (p = r.parse(p, 2, Ke), !p) return null; - const g = []; - let v = null; - a !== "interpolate-hcl" && a !== "interpolate-lab" || r.expectedType == mi ? r.expectedType && r.expectedType.kind !== "value" && (v = r.expectedType) : v = Dr; - for (let S = 0; S < f.length; S += 2) { - const I = f[S], - E = f[S + 1], - R = S + 3, - N = S + 4; - if (typeof I != "number") return r.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', R); - if (g.length && g[g.length - 1][0] >= I) return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', R); - const j = r.parse(E, N, v); - if (!j) return null; - v = v || j.type, g.push([I, j]) - } - return Xi(v, Ke) || Xi(v, Gr) || Xi(v, Dr) || Xi(v, zi) || Xi(v, Li) || Xi(v, mi) || Xi(v, yi) || Xi(v, Qr(Ke)) ? new In(v, a, c, p, g) : r.error(`Type ${Yr(v)} is not interpolatable.`) - } - evaluate(t) { - const r = this.labels, - a = this.outputs; - if (r.length === 1) return a[0].evaluate(t); - const c = this.input.evaluate(t); - if (c <= r[0]) return a[0].evaluate(t); - const p = r.length; - if (c >= r[p - 1]) return a[p - 1].evaluate(t); - const f = fs(r, c), - g = In.interpolationFactor(this.interpolation, c, r[f], r[f + 1]), - v = a[f].evaluate(t), - S = a[f + 1].evaluate(t); - switch (this.operator) { - case "interpolate": - switch (this.type.kind) { - case "number": - return Jr(v, S, g); - case "color": - return yr.interpolate(v, S, g); - case "padding": - return Ki.interpolate(v, S, g); - case "colorArray": - return Ni.interpolate(v, S, g); - case "numberArray": - return cn.interpolate(v, S, g); - case "variableAnchorOffsetCollection": - return un.interpolate(v, S, g); - case "array": - return ti(v, S, g); - case "projectionDefinition": - return hn.interpolate(v, S, g) - } - case "interpolate-hcl": - switch (this.type.kind) { - case "color": - return yr.interpolate(v, S, g, "hcl"); - case "colorArray": - return Ni.interpolate(v, S, g, "hcl") - } - case "interpolate-lab": - switch (this.type.kind) { - case "color": - return yr.interpolate(v, S, g, "lab"); - case "colorArray": - return Ni.interpolate(v, S, g, "lab") - } - } - } - eachChild(t) { - t(this.input); - for (const r of this.outputs) t(r) - } - outputDefined() { - return this.outputs.every((t => t.outputDefined())) - } - } - - function po(i, t, r, a) { - const c = a - r, - p = i - r; - return c === 0 ? 0 : t === 1 ? p / c : (Math.pow(t, p) - 1) / (Math.pow(t, c) - 1) - } - const Fa = { - color: yr.interpolate, - number: Jr, - padding: Ki.interpolate, - numberArray: cn.interpolate, - colorArray: Ni.interpolate, - variableAnchorOffsetCollection: un.interpolate, - array: ti - }; - class fo { - constructor(t, r) { - this.type = t, this.args = r - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - let a = null; - const c = r.expectedType; - c && c.kind !== "value" && (a = c); - const p = []; - for (const g of t.slice(1)) { - const v = r.parse(g, 1 + p.length, a, void 0, { - typeAnnotation: "omit" - }); - if (!v) return null; - a = a || v.type, p.push(v) - } - if (!a) throw new Error("No output type"); - const f = c && p.some((g => sn(c, g.type))); - return new fo(f ? fr : a, p) - } - evaluate(t) { - let r, a = null, - c = 0; - for (const p of this.args) - if (c++, a = p.evaluate(t), a && a instanceof Nn && !a.available && (r || (r = a.name), a = null, c === this.args.length && (a = r)), a !== null) break; - return a - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return this.args.every((t => t.outputDefined())) - } - } - - function mo(i, t) { - return i === "==" || i === "!=" ? t.kind === "boolean" || t.kind === "string" || t.kind === "number" || t.kind === "null" || t.kind === "value" : t.kind === "string" || t.kind === "number" || t.kind === "value" - } - - function _o(i, t, r, a) { - return a.compare(t, r) === 0 - } - - function Dn(i, t, r) { - const a = i !== "==" && i !== "!="; - return class tv { - constructor(p, f, g) { - this.type = Gt, this.lhs = p, this.rhs = f, this.collator = g, this.hasUntypedArgument = p.type.kind === "value" || f.type.kind === "value" - } - static parse(p, f) { - if (p.length !== 3 && p.length !== 4) return f.error("Expected two or three arguments."); - const g = p[0]; - let v = f.parse(p[1], 1, fr); - if (!v) return null; - if (!mo(g, v.type)) return f.concat(1).error(`"${g}" comparisons are not supported for type '${Yr(v.type)}'.`); - let S = f.parse(p[2], 2, fr); - if (!S) return null; - if (!mo(g, S.type)) return f.concat(2).error(`"${g}" comparisons are not supported for type '${Yr(S.type)}'.`); - if (v.type.kind !== S.type.kind && v.type.kind !== "value" && S.type.kind !== "value") return f.error(`Cannot compare types '${Yr(v.type)}' and '${Yr(S.type)}'.`); - a && (v.type.kind === "value" && S.type.kind !== "value" ? v = new ra(S.type, [v]) : v.type.kind !== "value" && S.type.kind === "value" && (S = new ra(v.type, [S]))); - let I = null; - if (p.length === 4) { - if (v.type.kind !== "string" && S.type.kind !== "string" && v.type.kind !== "value" && S.type.kind !== "value") return f.error("Cannot use collator to compare non-string types."); - if (I = f.parse(p[3], 3, bi), !I) return null - } - return new tv(v, S, I) - } - evaluate(p) { - const f = this.lhs.evaluate(p), - g = this.rhs.evaluate(p); - if (a && this.hasUntypedArgument) { - const v = wr(f), - S = wr(g); - if (v.kind !== S.kind || v.kind !== "string" && v.kind !== "number") throw new wi(`Expected arguments for "${i}" to be (string, string) or (number, number), but found (${v.kind}, ${S.kind}) instead.`) - } - if (this.collator && !a && this.hasUntypedArgument) { - const v = wr(f), - S = wr(g); - if (v.kind !== "string" || S.kind !== "string") return t(p, f, g) - } - return this.collator ? r(p, f, g, this.collator.evaluate(p)) : t(p, f, g) - } - eachChild(p) { - p(this.lhs), p(this.rhs), this.collator && p(this.collator) - } - outputDefined() { - return !0 - } - } - } - const gh = Dn("==", (function(i, t, r) { - return t === r - }), _o), - tl = Dn("!=", (function(i, t, r) { - return t !== r - }), (function(i, t, r, a) { - return !_o(0, t, r, a) - })), - Jd = Dn("<", (function(i, t, r) { - return t < r - }), (function(i, t, r, a) { - return a.compare(t, r) < 0 - })), - gc = Dn(">", (function(i, t, r) { - return t > r - }), (function(i, t, r, a) { - return a.compare(t, r) > 0 - })), - Qd = Dn("<=", (function(i, t, r) { - return t <= r - }), (function(i, t, r, a) { - return a.compare(t, r) <= 0 - })), - ep = Dn(">=", (function(i, t, r) { - return t >= r - }), (function(i, t, r, a) { - return a.compare(t, r) >= 0 - })); - class rl { - constructor(t, r, a) { - this.type = bi, this.locale = a, this.caseSensitive = t, this.diacriticSensitive = r - } - static parse(t, r) { - if (t.length !== 2) return r.error("Expected one argument."); - const a = t[1]; - if (typeof a != "object" || Array.isArray(a)) return r.error("Collator options argument must be an object."); - const c = r.parse(a["case-sensitive"] !== void 0 && a["case-sensitive"], 1, Gt); - if (!c) return null; - const p = r.parse(a["diacritic-sensitive"] !== void 0 && a["diacritic-sensitive"], 1, Gt); - if (!p) return null; - let f = null; - return a.locale && (f = r.parse(a.locale, 1, jt), !f) ? null : new rl(c, p, f) - } - evaluate(t) { - return new on(this.caseSensitive.evaluate(t), this.diacriticSensitive.evaluate(t), this.locale ? this.locale.evaluate(t) : null) - } - eachChild(t) { - t(this.caseSensitive), t(this.diacriticSensitive), this.locale && t(this.locale) - } - outputDefined() { - return !1 - } - } - class vc { - constructor(t, r, a, c, p) { - this.type = jt, this.number = t, this.locale = r, this.currency = a, this.minFractionDigits = c, this.maxFractionDigits = p - } - static parse(t, r) { - if (t.length !== 3) return r.error("Expected two arguments."); - const a = r.parse(t[1], 1, Ke); - if (!a) return null; - const c = t[2]; - if (typeof c != "object" || Array.isArray(c)) return r.error("NumberFormat options argument must be an object."); - let p = null; - if (c.locale && (p = r.parse(c.locale, 1, jt), !p)) return null; - let f = null; - if (c.currency && (f = r.parse(c.currency, 1, jt), !f)) return null; - let g = null; - if (c["min-fraction-digits"] && (g = r.parse(c["min-fraction-digits"], 1, Ke), !g)) return null; - let v = null; - return c["max-fraction-digits"] && (v = r.parse(c["max-fraction-digits"], 1, Ke), !v) ? null : new vc(a, p, f, g, v) - } - evaluate(t) { - return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t) : [], { - style: this.currency ? "currency" : "decimal", - currency: this.currency ? this.currency.evaluate(t) : void 0, - minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t) : void 0, - maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t) : void 0 - }).format(this.number.evaluate(t)) - } - eachChild(t) { - t(this.number), this.locale && t(this.locale), this.currency && t(this.currency), this.minFractionDigits && t(this.minFractionDigits), this.maxFractionDigits && t(this.maxFractionDigits) - } - outputDefined() { - return !1 - } - } - class ms { - constructor(t) { - this.type = Si, this.sections = t - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - const a = t[1]; - if (!Array.isArray(a) && typeof a == "object") return r.error("First argument must be an image or text section."); - const c = []; - let p = !1; - for (let f = 1; f <= t.length - 1; ++f) { - const g = t[f]; - if (p && typeof g == "object" && !Array.isArray(g)) { - p = !1; - let v = null; - if (g["font-scale"] && (v = r.parse(g["font-scale"], 1, Ke), !v)) return null; - let S = null; - if (g["text-font"] && (S = r.parse(g["text-font"], 1, Qr(jt)), !S)) return null; - let I = null; - if (g["text-color"] && (I = r.parse(g["text-color"], 1, Dr), !I)) return null; - let E = null; - if (g["vertical-align"]) { - if (typeof g["vertical-align"] == "string" && !vn.includes(g["vertical-align"])) return r.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${g["vertical-align"]}' instead.`); - if (E = r.parse(g["vertical-align"], 1, jt), !E) return null - } - const R = c[c.length - 1]; - R.scale = v, R.font = S, R.textColor = I, R.verticalAlign = E - } else { - const v = r.parse(t[f], 1, fr); - if (!v) return null; - const S = v.type.kind; - if (S !== "string" && S !== "value" && S !== "null" && S !== "resolvedImage") return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'."); - p = !0, c.push({ - content: v, - scale: null, - font: null, - textColor: null, - verticalAlign: null - }) - } - } - return new ms(c) - } - evaluate(t) { - return new ln(this.sections.map((r => { - const a = r.content.evaluate(t); - return wr(a) === rr ? new _a("", a, null, null, null, r.verticalAlign ? r.verticalAlign.evaluate(t) : null) : new _a(Vr(a), null, r.scale ? r.scale.evaluate(t) : null, r.font ? r.font.evaluate(t).join(",") : null, r.textColor ? r.textColor.evaluate(t) : null, r.verticalAlign ? r.verticalAlign.evaluate(t) : null) - }))) - } - eachChild(t) { - for (const r of this.sections) t(r.content), r.scale && t(r.scale), r.font && t(r.font), r.textColor && t(r.textColor), r.verticalAlign && t(r.verticalAlign) - } - outputDefined() { - return !1 - } - } - class yc { - constructor(t) { - this.type = rr, this.input = t - } - static parse(t, r) { - if (t.length !== 2) return r.error("Expected two arguments."); - const a = r.parse(t[1], 1, jt); - return a ? new yc(a) : r.error("No image name provided.") - } - evaluate(t) { - const r = this.input.evaluate(t), - a = Nn.fromString(r); - return a && t.availableImages && (a.available = t.availableImages.indexOf(r) > -1), a - } - eachChild(t) { - t(this.input) - } - outputDefined() { - return !1 - } - } - class il { - constructor(t) { - this.type = Ke, this.input = t - } - static parse(t, r) { - if (t.length !== 2) return r.error(`Expected 1 argument, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1); - return a ? a.type.kind !== "array" && a.type.kind !== "string" && a.type.kind !== "value" ? r.error(`Expected argument of type string or array, but found ${Yr(a.type)} instead.`) : new il(a) : null - } - evaluate(t) { - const r = this.input.evaluate(t); - if (typeof r == "string") return [...r].length; - if (Array.isArray(r)) return r.length; - throw new wi(`Expected value to be of type string or array, but found ${Yr(wr(r))} instead.`) - } - eachChild(t) { - t(this.input) - } - outputDefined() { - return !1 - } - } - const ya = 8192; - - function tp(i, t) { - const r = (180 + i[0]) / 360, - a = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + i[1] * Math.PI / 360))) / 360, - c = Math.pow(2, t.z); - return [Math.round(r * c * ya), Math.round(a * c * ya)] - } - - function nl(i, t) { - const r = Math.pow(2, t.z); - return [(c = (i[0] / ya + t.x) / r, 360 * c - 180), (a = (i[1] / ya + t.y) / r, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * a) * Math.PI / 180)) - 90)]; - var a, c - } - - function go(i, t) { - i[0] = Math.min(i[0], t[0]), i[1] = Math.min(i[1], t[1]), i[2] = Math.max(i[2], t[0]), i[3] = Math.max(i[3], t[1]) - } - - function vo(i, t) { - return !(i[0] <= t[0] || i[2] >= t[2] || i[1] <= t[1] || i[3] >= t[3]) - } - - function rp(i, t, r) { - const a = i[0] - t[0], - c = i[1] - t[1], - p = i[0] - r[0], - f = i[1] - r[1]; - return a * f - p * c == 0 && a * p <= 0 && c * f <= 0 - } - - function al(i, t, r, a) { - return (c = [a[0] - r[0], a[1] - r[1]])[0] * (p = [t[0] - i[0], t[1] - i[1]])[1] - c[1] * p[0] != 0 && !(!yh(i, t, r, a) || !yh(r, a, i, t)); - var c, p - } - - function ip(i, t, r) { - for (const a of r) - for (let c = 0; c < a.length - 1; ++c) - if (al(i, t, a[c], a[c + 1])) return !0; - return !1 - } - - function _s(i, t, r = !1) { - let a = !1; - for (const g of t) - for (let v = 0; v < g.length - 1; v++) { - if (rp(i, g[v], g[v + 1])) return r; - (p = g[v])[1] > (c = i)[1] != (f = g[v + 1])[1] > c[1] && c[0] < (f[0] - p[0]) * (c[1] - p[1]) / (f[1] - p[1]) + p[0] && (a = !a) - } - var c, p, f; - return a - } - - function vh(i, t) { - for (const r of t) - if (_s(i, r)) return !0; - return !1 - } - - function xc(i, t) { - for (const r of i) - if (!_s(r, t)) return !1; - for (let r = 0; r < i.length - 1; ++r) - if (ip(i[r], i[r + 1], t)) return !1; - return !0 - } - - function np(i, t) { - for (const r of t) - if (xc(i, r)) return !0; - return !1 - } - - function yh(i, t, r, a) { - const c = a[0] - r[0], - p = a[1] - r[1], - f = (i[0] - r[0]) * p - c * (i[1] - r[1]), - g = (t[0] - r[0]) * p - c * (t[1] - r[1]); - return f > 0 && g < 0 || f < 0 && g > 0 - } - - function bc(i, t, r) { - const a = []; - for (let c = 0; c < i.length; c++) { - const p = []; - for (let f = 0; f < i[c].length; f++) { - const g = tp(i[c][f], r); - go(t, g), p.push(g) - } - a.push(p) - } - return a - } - - function xh(i, t, r) { - const a = []; - for (let c = 0; c < i.length; c++) { - const p = bc(i[c], t, r); - a.push(p) - } - return a - } - - function sl(i, t, r, a) { - if (i[0] < r[0] || i[0] > r[2]) { - const c = .5 * a; - let p = i[0] - r[0] > c ? -a : r[0] - i[0] > c ? a : 0; - p === 0 && (p = i[0] - r[2] > c ? -a : r[2] - i[0] > c ? a : 0), i[0] += p - } - go(t, i) - } - - function bh(i, t, r, a) { - const c = Math.pow(2, a.z) * ya, - p = [a.x * ya, a.y * ya], - f = []; - for (const g of i) - for (const v of g) { - const S = [v.x + p[0], v.y + p[1]]; - sl(S, t, r, c), f.push(S) - } - return f - } - - function wh(i, t, r, a) { - const c = Math.pow(2, a.z) * ya, - p = [a.x * ya, a.y * ya], - f = []; - for (const v of i) { - const S = []; - for (const I of v) { - const E = [I.x + p[0], I.y + p[1]]; - go(t, E), S.push(E) - } - f.push(S) - } - if (t[2] - t[0] <= c / 2) { - (g = t)[0] = g[1] = 1 / 0, g[2] = g[3] = -1 / 0; - for (const v of f) - for (const S of v) sl(S, t, r, c) - } - var g; - return f - } - class gs { - constructor(t, r) { - this.type = Gt, this.geojson = t, this.geometries = r - } - static parse(t, r) { - if (t.length !== 2) return r.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`); - if (Za(t[1])) { - const a = t[1]; - if (a.type === "FeatureCollection") { - const c = []; - for (const p of a.features) { - const { - type: f, - coordinates: g - } = p.geometry; - f === "Polygon" && c.push(g), f === "MultiPolygon" && c.push(...g) - } - if (c.length) return new gs(a, { - type: "MultiPolygon", - coordinates: c - }) - } else if (a.type === "Feature") { - const c = a.geometry.type; - if (c === "Polygon" || c === "MultiPolygon") return new gs(a, a.geometry) - } else if (a.type === "Polygon" || a.type === "MultiPolygon") return new gs(a, a) - } - return r.error("'within' expression requires valid geojson object that contains polygon geometry type.") - } - evaluate(t) { - if (t.geometry() != null && t.canonicalID() != null) { - if (t.geometryType() === "Point") return (function(r, a) { - const c = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - p = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - f = r.canonicalID(); - if (a.type === "Polygon") { - const g = bc(a.coordinates, p, f), - v = bh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!_s(S, g)) return !1 - } - if (a.type === "MultiPolygon") { - const g = xh(a.coordinates, p, f), - v = bh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!vh(S, g)) return !1 - } - return !0 - })(t, this.geometries); - if (t.geometryType() === "LineString") return (function(r, a) { - const c = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - p = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - f = r.canonicalID(); - if (a.type === "Polygon") { - const g = bc(a.coordinates, p, f), - v = wh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!xc(S, g)) return !1 - } - if (a.type === "MultiPolygon") { - const g = xh(a.coordinates, p, f), - v = wh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!np(S, g)) return !1 - } - return !0 - })(t, this.geometries) - } - return !1 - } - eachChild() {} - outputDefined() { - return !0 - } - } - let wc = class { - constructor(i = [], t = (r, a) => r < a ? -1 : r > a ? 1 : 0) { - if (this.data = i, this.length = this.data.length, this.compare = t, this.length > 0) - for (let r = (this.length >> 1) - 1; r >= 0; r--) this._down(r) - } - push(i) { - this.data.push(i), this._up(this.length++) - } - pop() { - if (this.length === 0) return; - const i = this.data[0], - t = this.data.pop(); - return --this.length > 0 && (this.data[0] = t, this._down(0)), i - } - peek() { - return this.data[0] - } - _up(i) { - const { - data: t, - compare: r - } = this, a = t[i]; - for (; i > 0;) { - const c = i - 1 >> 1, - p = t[c]; - if (r(a, p) >= 0) break; - t[i] = p, i = c - } - t[i] = a - } - _down(i) { - const { - data: t, - compare: r - } = this, a = this.length >> 1, c = t[i]; - for (; i < a;) { - let p = 1 + (i << 1); - const f = p + 1; - if (f < this.length && r(t[f], t[p]) < 0 && (p = f), r(t[p], c) >= 0) break; - t[i] = t[p], i = p - } - t[i] = c - } - }; - - function Tc(i, t, r = 0, a = i.length - 1, c = ap) { - for (; a > r;) { - if (a - r > 600) { - const v = a - r + 1, - S = t - r + 1, - I = Math.log(v), - E = .5 * Math.exp(2 * I / 3), - R = .5 * Math.sqrt(I * E * (v - E) / v) * (S - v / 2 < 0 ? -1 : 1); - Tc(i, t, Math.max(r, Math.floor(t - S * E / v + R)), Math.min(a, Math.floor(t + (v - S) * E / v + R)), c) - } - const p = i[t]; - let f = r, - g = a; - for (yo(i, r, t), c(i[a], p) > 0 && yo(i, r, a); f < g;) { - for (yo(i, f, g), f++, g--; c(i[f], p) < 0;) f++; - for (; c(i[g], p) > 0;) g-- - } - c(i[r], p) === 0 ? yo(i, r, g) : (g++, yo(i, g, a)), g <= t && (r = g + 1), t <= g && (a = g - 1) - } - } - - function yo(i, t, r) { - const a = i[t]; - i[t] = i[r], i[r] = a - } - - function ap(i, t) { - return i < t ? -1 : i > t ? 1 : 0 - } - - function xo(i, t) { - if (i.length <= 1) return [i]; - const r = []; - let a, c; - for (const p of i) { - const f = sp(p); - f !== 0 && (p.area = Math.abs(f), c === void 0 && (c = f < 0), c === f < 0 ? (a && r.push(a), a = [p]) : a.push(p)) - } - if (a && r.push(a), t > 1) - for (let p = 0; p < r.length; p++) r[p].length <= t || (Tc(r[p], t, 1, r[p].length - 1, Th), r[p] = r[p].slice(0, t)); - return r - } - - function Th(i, t) { - return t.area - i.area - } - - function sp(i) { - let t = 0; - for (let r, a, c = 0, p = i.length, f = p - 1; c < p; f = c++) r = i[c], a = i[f], t += (a.x - r.x) * (r.y + a.y); - return t - } - const Ch = 1 / 298.257223563, - Sh = Ch * (2 - Ch), - Cc = Math.PI / 180; - class Sc { - constructor(t) { - const r = 6378.137 * Cc * 1e3, - a = Math.cos(t * Cc), - c = 1 / (1 - Sh * (1 - a * a)), - p = Math.sqrt(c); - this.kx = r * p * a, this.ky = r * p * c * (1 - Sh) - } - distance(t, r) { - const a = this.wrap(t[0] - r[0]) * this.kx, - c = (t[1] - r[1]) * this.ky; - return Math.sqrt(a * a + c * c) - } - pointOnLine(t, r) { - let a, c, p, f, g = 1 / 0; - for (let v = 0; v < t.length - 1; v++) { - let S = t[v][0], - I = t[v][1], - E = this.wrap(t[v + 1][0] - S) * this.kx, - R = (t[v + 1][1] - I) * this.ky, - N = 0; - E === 0 && R === 0 || (N = (this.wrap(r[0] - S) * this.kx * E + (r[1] - I) * this.ky * R) / (E * E + R * R), N > 1 ? (S = t[v + 1][0], I = t[v + 1][1]) : N > 0 && (S += E / this.kx * N, I += R / this.ky * N)), E = this.wrap(r[0] - S) * this.kx, R = (r[1] - I) * this.ky; - const j = E * E + R * R; - j < g && (g = j, a = S, c = I, p = v, f = N) - } - return { - point: [a, c], - index: p, - t: Math.max(0, Math.min(1, f)) - } - } - wrap(t) { - for (; t < -180;) t += 360; - for (; t > 180;) t -= 360; - return t - } - } - - function Ph(i, t) { - return t[0] - i[0] - } - - function ol(i) { - return i[1] - i[0] + 1 - } - - function $a(i, t) { - return i[1] >= i[0] && i[1] < t - } - - function vi(i, t) { - if (i[0] > i[1]) return [null, null]; - const r = ol(i); - if (t) { - if (r === 2) return [i, null]; - const c = Math.floor(r / 2); - return [ - [i[0], i[0] + c], - [i[0] + c, i[1]] - ] - } - if (r === 1) return [i, null]; - const a = Math.floor(r / 2) - 1; - return [ - [i[0], i[0] + a], - [i[0] + a + 1, i[1]] - ] - } - - function Pc(i, t) { - if (!$a(t, i.length)) return [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - const r = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (let a = t[0]; a <= t[1]; ++a) go(r, i[a]); - return r - } - - function Ic(i) { - const t = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (const r of i) - for (const a of r) go(t, a); - return t - } - - function Ih(i) { - return i[0] !== -1 / 0 && i[1] !== -1 / 0 && i[2] !== 1 / 0 && i[3] !== 1 / 0 - } - - function Mc(i, t, r) { - if (!Ih(i) || !Ih(t)) return NaN; - let a = 0, - c = 0; - return i[2] < t[0] && (a = t[0] - i[2]), i[0] > t[2] && (a = i[0] - t[2]), i[1] > t[3] && (c = i[1] - t[3]), i[3] < t[1] && (c = t[1] - i[3]), r.distance([0, 0], [a, c]) - } - - function vs(i, t, r) { - const a = r.pointOnLine(t, i); - return r.distance(i, a.point) - } - - function Ac(i, t, r, a, c) { - const p = Math.min(vs(i, [r, a], c), vs(t, [r, a], c)), - f = Math.min(vs(r, [i, t], c), vs(a, [i, t], c)); - return Math.min(p, f) - } - - function op(i, t, r, a, c) { - if (!$a(t, i.length) || !$a(a, r.length)) return 1 / 0; - let p = 1 / 0; - for (let f = t[0]; f < t[1]; ++f) { - const g = i[f], - v = i[f + 1]; - for (let S = a[0]; S < a[1]; ++S) { - const I = r[S], - E = r[S + 1]; - if (al(g, v, I, E)) return 0; - p = Math.min(p, Ac(g, v, I, E, c)) - } - } - return p - } - - function lp(i, t, r, a, c) { - if (!$a(t, i.length) || !$a(a, r.length)) return NaN; - let p = 1 / 0; - for (let f = t[0]; f <= t[1]; ++f) - for (let g = a[0]; g <= a[1]; ++g) - if (p = Math.min(p, c.distance(i[f], r[g])), p === 0) return p; - return p - } - - function cp(i, t, r) { - if (_s(i, t, !0)) return 0; - let a = 1 / 0; - for (const c of t) { - const p = c[0], - f = c[c.length - 1]; - if (p !== f && (a = Math.min(a, vs(i, [f, p], r)), a === 0)) return a; - const g = r.pointOnLine(c, i); - if (a = Math.min(a, r.distance(i, g.point)), a === 0) return a - } - return a - } - - function up(i, t, r, a) { - if (!$a(t, i.length)) return NaN; - for (let p = t[0]; p <= t[1]; ++p) - if (_s(i[p], r, !0)) return 0; - let c = 1 / 0; - for (let p = t[0]; p < t[1]; ++p) { - const f = i[p], - g = i[p + 1]; - for (const v of r) - for (let S = 0, I = v.length, E = I - 1; S < I; E = S++) { - const R = v[E], - N = v[S]; - if (al(f, g, R, N)) return 0; - c = Math.min(c, Ac(f, g, R, N, a)) - } - } - return c - } - - function Mh(i, t) { - for (const r of i) - for (const a of r) - if (_s(a, t, !0)) return !0; - return !1 - } - - function hp(i, t, r, a = 1 / 0) { - const c = Ic(i), - p = Ic(t); - if (a !== 1 / 0 && Mc(c, p, r) >= a) return a; - if (vo(c, p)) { - if (Mh(i, t)) return 0 - } else if (Mh(t, i)) return 0; - let f = 1 / 0; - for (const g of i) - for (let v = 0, S = g.length, I = S - 1; v < S; I = v++) { - const E = g[I], - R = g[v]; - for (const N of t) - for (let j = 0, Z = N.length, Y = Z - 1; j < Z; Y = j++) { - const ae = N[Y], - ze = N[j]; - if (al(E, R, ae, ze)) return 0; - f = Math.min(f, Ac(E, R, ae, ze, r)) - } - } - return f - } - - function Ah(i, t, r, a, c, p) { - if (!p) return; - const f = Mc(Pc(a, p), c, r); - f < t && i.push([f, p, [0, 0]]) - } - - function ll(i, t, r, a, c, p, f) { - if (!p || !f) return; - const g = Mc(Pc(a, p), Pc(c, f), r); - g < t && i.push([g, p, f]) - } - - function cl(i, t, r, a, c = 1 / 0) { - let p = Math.min(a.distance(i[0], r[0][0]), c); - if (p === 0) return p; - const f = new wc([ - [0, [0, i.length - 1], - [0, 0] - ] - ], Ph), - g = Ic(r); - for (; f.length > 0;) { - const v = f.pop(); - if (v[0] >= p) continue; - const S = v[1], - I = t ? 50 : 100; - if (ol(S) <= I) { - if (!$a(S, i.length)) return NaN; - if (t) { - const E = up(i, S, r, a); - if (isNaN(E) || E === 0) return E; - p = Math.min(p, E) - } else - for (let E = S[0]; E <= S[1]; ++E) { - const R = cp(i[E], r, a); - if (p = Math.min(p, R), p === 0) return 0 - } - } else { - const E = vi(S, t); - Ah(f, p, a, i, g, E[0]), Ah(f, p, a, i, g, E[1]) - } - } - return p - } - - function ul(i, t, r, a, c, p = 1 / 0) { - let f = Math.min(p, c.distance(i[0], r[0])); - if (f === 0) return f; - const g = new wc([ - [0, [0, i.length - 1], - [0, r.length - 1] - ] - ], Ph); - for (; g.length > 0;) { - const v = g.pop(); - if (v[0] >= f) continue; - const S = v[1], - I = v[2], - E = t ? 50 : 100, - R = a ? 50 : 100; - if (ol(S) <= E && ol(I) <= R) { - if (!$a(S, i.length) && $a(I, r.length)) return NaN; - let N; - if (t && a) N = op(i, S, r, I, c), f = Math.min(f, N); - else if (t && !a) { - const j = i.slice(S[0], S[1] + 1); - for (let Z = I[0]; Z <= I[1]; ++Z) - if (N = vs(r[Z], j, c), f = Math.min(f, N), f === 0) return f - } else if (!t && a) { - const j = r.slice(I[0], I[1] + 1); - for (let Z = S[0]; Z <= S[1]; ++Z) - if (N = vs(i[Z], j, c), f = Math.min(f, N), f === 0) return f - } else N = lp(i, S, r, I, c), f = Math.min(f, N) - } else { - const N = vi(S, t), - j = vi(I, a); - ll(g, f, c, i, r, N[0], j[0]), ll(g, f, c, i, r, N[0], j[1]), ll(g, f, c, i, r, N[1], j[0]), ll(g, f, c, i, r, N[1], j[1]) - } - } - return f - } - - function kc(i) { - return i.type === "MultiPolygon" ? i.coordinates.map((t => ({ - type: "Polygon", - coordinates: t - }))) : i.type === "MultiLineString" ? i.coordinates.map((t => ({ - type: "LineString", - coordinates: t - }))) : i.type === "MultiPoint" ? i.coordinates.map((t => ({ - type: "Point", - coordinates: t - }))) : [i] - } - class ys { - constructor(t, r) { - this.type = Ke, this.geojson = t, this.geometries = r - } - static parse(t, r) { - if (t.length !== 2) return r.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`); - if (Za(t[1])) { - const a = t[1]; - if (a.type === "FeatureCollection") return new ys(a, a.features.map((c => kc(c.geometry))).flat()); - if (a.type === "Feature") return new ys(a, kc(a.geometry)); - if ("type" in a && "coordinates" in a) return new ys(a, kc(a)) - } - return r.error("'distance' expression requires valid geojson object that contains polygon geometry type.") - } - evaluate(t) { - if (t.geometry() != null && t.canonicalID() != null) { - if (t.geometryType() === "Point") return (function(r, a) { - const c = r.geometry(), - p = c.flat().map((v => nl([v.x, v.y], r.canonical))); - if (c.length === 0) return NaN; - const f = new Sc(p[0][1]); - let g = 1 / 0; - for (const v of a) { - switch (v.type) { - case "Point": - g = Math.min(g, ul(p, !1, [v.coordinates], !1, f, g)); - break; - case "LineString": - g = Math.min(g, ul(p, !1, v.coordinates, !0, f, g)); - break; - case "Polygon": - g = Math.min(g, cl(p, !1, v.coordinates, f, g)) - } - if (g === 0) return g - } - return g - })(t, this.geometries); - if (t.geometryType() === "LineString") return (function(r, a) { - const c = r.geometry(), - p = c.flat().map((v => nl([v.x, v.y], r.canonical))); - if (c.length === 0) return NaN; - const f = new Sc(p[0][1]); - let g = 1 / 0; - for (const v of a) { - switch (v.type) { - case "Point": - g = Math.min(g, ul(p, !0, [v.coordinates], !1, f, g)); - break; - case "LineString": - g = Math.min(g, ul(p, !0, v.coordinates, !0, f, g)); - break; - case "Polygon": - g = Math.min(g, cl(p, !0, v.coordinates, f, g)) - } - if (g === 0) return g - } - return g - })(t, this.geometries); - if (t.geometryType() === "Polygon") return (function(r, a) { - const c = r.geometry(); - if (c.length === 0 || c[0].length === 0) return NaN; - const p = xo(c, 0).map((v => v.map((S => S.map((I => nl([I.x, I.y], r.canonical))))))), - f = new Sc(p[0][0][0][1]); - let g = 1 / 0; - for (const v of a) - for (const S of p) { - switch (v.type) { - case "Point": - g = Math.min(g, cl([v.coordinates], !1, S, f, g)); - break; - case "LineString": - g = Math.min(g, cl(v.coordinates, !0, S, f, g)); - break; - case "Polygon": - g = Math.min(g, hp(S, v.coordinates, f, g)) - } - if (g === 0) return g - } - return g - })(t, this.geometries) - } - return NaN - } - eachChild() {} - outputDefined() { - return !0 - } - } - class bo { - constructor(t) { - this.type = fr, this.key = t - } - static parse(t, r) { - if (t.length !== 2) return r.error(`Expected 1 argument, but found ${t.length-1} instead.`); - const a = t[1]; - return a == null ? r.error("Global state property must be defined.") : typeof a != "string" ? r.error(`Global state property must be string, but found ${typeof t[1]} instead.`) : new bo(a) - } - evaluate(t) { - var r; - const a = (r = t.globals) === null || r === void 0 ? void 0 : r.globalState; - return a && Object.keys(a).length !== 0 ? gi(a, this.key) : null - } - eachChild() {} - outputDefined() { - return !1 - } - } - const Os = { - "==": gh, - "!=": tl, - ">": gc, - "<": Jd, - ">=": ep, - "<=": Qd, - array: ra, - at: Qo, - boolean: ra, - case: Bs, - coalesce: fo, - collator: rl, - format: ms, - image: yc, - in: el, - "index-of": va, - interpolate: In, - "interpolate-hcl": In, - "interpolate-lab": In, - length: il, - let: co, - literal: ga, - match: yn, - number: ra, - "number-format": vc, - object: ra, - slice: uo, - step: Gi, - string: ra, - "to-boolean": Ba, - "to-color": Ba, - "to-number": Ba, - "to-string": Ba, - var: Jo, - within: gs, - distance: ys, - "global-state": bo - }; - class ca { - constructor(t, r, a, c) { - this.name = t, this.type = r, this._evaluate = a, this.args = c - } - evaluate(t) { - return this._evaluate(t, this.args) - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return !1 - } - static parse(t, r) { - const a = t[0], - c = ca.definitions[a]; - if (!c) return r.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`, 0); - const p = Array.isArray(c) ? c[0] : c.type, - f = Array.isArray(c) ? [ - [c[1], c[2]] - ] : c.overloads, - g = f.filter((([S]) => !Array.isArray(S) || S.length === t.length - 1)); - let v = null; - for (const [S, I] of g) { - v = new Rs(r.registry, hl, r.path, null, r.scope); - const E = []; - let R = !1; - for (let N = 1; N < t.length; N++) { - const j = t[N], - Z = Array.isArray(S) ? S[N - 1] : S.type, - Y = v.parse(j, 1 + E.length, Z); - if (!Y) { - R = !0; - break - } - E.push(Y) - } - if (!R) - if (Array.isArray(S) && S.length !== E.length) v.error(`Expected ${S.length} arguments, but found ${E.length} instead.`); - else { - for (let N = 0; N < E.length; N++) { - const j = Array.isArray(S) ? S[N] : S.type, - Z = E[N]; - v.concat(N + 1).checkSubtype(j, Z.type) - } - if (v.errors.length === 0) return new ca(a, p, I, E) - } - } - if (g.length === 1) r.errors.push(...v.errors); - else { - const S = (g.length ? g : f).map((([E]) => { - return R = E, Array.isArray(R) ? `(${R.map(Yr).join(", ")})` : `(${Yr(R.type)}...)`; - var R - })).join(" | "), - I = []; - for (let E = 1; E < t.length; E++) { - const R = r.parse(t[E], 1 + I.length); - if (!R) return null; - I.push(Yr(R.type)) - } - r.error(`Expected arguments of type ${S}, but found (${I.join(", ")}) instead.`) - } - return null - } - static register(t, r) { - ca.definitions = r; - for (const a in r) t[a] = ca - } - } - - function kh(i, [t, r, a, c]) { - t = t.evaluate(i), r = r.evaluate(i), a = a.evaluate(i); - const p = c ? c.evaluate(i) : 1, - f = Ti(t, r, a, p); - if (f) throw new wi(f); - return new yr(t / 255, r / 255, a / 255, p, !1) - } - - function Eh(i, t) { - return i in t - } - - function Ec(i, t) { - const r = t[i]; - return r === void 0 ? null : r - } - - function xs(i) { - return { - type: i - } - } - - function hl(i) { - if (i instanceof Jo) return hl(i.boundExpression); - if (i instanceof ca && i.name === "error" || i instanceof rl || i instanceof gs || i instanceof ys || i instanceof bo) return !1; - const t = i instanceof Ba || i instanceof ra; - let r = !0; - return i.eachChild((a => { - r = t ? r && hl(a) : r && a instanceof ga - })), !!r && dl(i) && pl(i, ["zoom", "heatmap-density", "elevation", "line-progress", "accumulated", "is-supported-script"]) - } - - function dl(i) { - if (i instanceof ca && (i.name === "get" && i.args.length === 1 || i.name === "feature-state" || i.name === "has" && i.args.length === 1 || i.name === "properties" || i.name === "geometry-type" || i.name === "id" || /^filter-/.test(i.name)) || i instanceof gs || i instanceof ys) return !1; - let t = !0; - return i.eachChild((r => { - t && !dl(r) && (t = !1) - })), t - } - - function wo(i) { - if (i instanceof ca && i.name === "feature-state") return !1; - let t = !0; - return i.eachChild((r => { - t && !wo(r) && (t = !1) - })), t - } - - function pl(i, t) { - if (i instanceof ca && t.indexOf(i.name) >= 0) return !1; - let r = !0; - return i.eachChild((a => { - r && !pl(a, t) && (r = !1) - })), r - } - - function zh(i) { - return { - result: "success", - value: i - } - } - - function Ns(i) { - return { - result: "error", - value: i - } - } - - function rs(i) { - return i["property-type"] === "data-driven" || i["property-type"] === "cross-faded-data-driven" - } - - function Lh(i) { - return !!i.expression && i.expression.parameters.indexOf("zoom") > -1 - } - - function zc(i) { - return !!i.expression && i.expression.interpolated - } - - function ii(i) { - return i instanceof Number ? "number" : i instanceof String ? "string" : i instanceof Boolean ? "boolean" : Array.isArray(i) ? "array" : i === null ? "null" : typeof i - } - - function To(i) { - return typeof i == "object" && i !== null && !Array.isArray(i) && wr(i) === li - } - - function dp(i) { - return i - } - - function Dh(i, t) { - const r = i.stops && typeof i.stops[0][0] == "object", - a = r || !(r || i.property !== void 0), - c = i.type || (zc(t) ? "exponential" : "interval"), - p = (function(I) { - switch (I.type) { - case "color": - return yr.parse; - case "padding": - return Ki.parse; - case "numberArray": - return cn.parse; - case "colorArray": - return Ni.parse; - default: - return null - } - })(t); - if (p && ((i = Ci({}, i)).stops && (i.stops = i.stops.map((I => [I[0], p(I[1])]))), i.default = p(i.default ? i.default : t.default)), i.colorSpace && (f = i.colorSpace) !== "rgb" && f !== "hcl" && f !== "lab") throw new Error(`Unknown color space: "${i.colorSpace}"`); - var f; - const g = (function(I) { - switch (I) { - case "exponential": - return Bh; - case "interval": - return pp; - case "categorical": - return Rh; - case "identity": - return fp; - default: - throw new Error(`Unknown function type "${I}"`) - } - })(c); - let v, S; - if (c === "categorical") { - v = Object.create(null); - for (const I of i.stops) v[I[0]] = I[1]; - S = typeof i.stops[0][0] - } - if (r) { - const I = {}, - E = []; - for (let j = 0; j < i.stops.length; j++) { - const Z = i.stops[j], - Y = Z[0].zoom; - I[Y] === void 0 && (I[Y] = { - zoom: Y, - type: i.type, - property: i.property, - default: i.default, - stops: [] - }, E.push(Y)), I[Y].stops.push([Z[0].value, Z[1]]) - } - const R = []; - for (const j of E) R.push([I[j].zoom, Dh(I[j], t)]); - const N = { - name: "linear" - }; - return { - kind: "composite", - interpolationType: N, - interpolationFactor: In.interpolationFactor.bind(void 0, N), - zoomStops: R.map((j => j[0])), - evaluate: ({ - zoom: j - }, Z) => Bh({ - stops: R, - base: i.base - }, t, j).evaluate(j, Z) - } - } - if (a) { - const I = c === "exponential" ? { - name: "exponential", - base: i.base !== void 0 ? i.base : 1 - } : null; - return { - kind: "camera", - interpolationType: I, - interpolationFactor: In.interpolationFactor.bind(void 0, I), - zoomStops: i.stops.map((E => E[0])), - evaluate: ({ - zoom: E - }) => g(i, t, E, v, S) - } - } - return { - kind: "source", - evaluate(I, E) { - const R = E && E.properties ? E.properties[i.property] : void 0; - return R === void 0 ? is(i.default, t.default) : g(i, t, R, v, S) - } - } - } - - function is(i, t, r) { - return i !== void 0 ? i : t !== void 0 ? t : r !== void 0 ? r : void 0 - } - - function Rh(i, t, r, a, c) { - return is(typeof r === c ? a[r] : void 0, i.default, t.default) - } - - function pp(i, t, r) { - if (ii(r) !== "number") return is(i.default, t.default); - const a = i.stops.length; - if (a === 1 || r <= i.stops[0][0]) return i.stops[0][1]; - if (r >= i.stops[a - 1][0]) return i.stops[a - 1][1]; - const c = fs(i.stops.map((p => p[0])), r); - return i.stops[c][1] - } - - function Bh(i, t, r) { - const a = i.base !== void 0 ? i.base : 1; - if (ii(r) !== "number") return is(i.default, t.default); - const c = i.stops.length; - if (c === 1 || r <= i.stops[0][0]) return i.stops[0][1]; - if (r >= i.stops[c - 1][0]) return i.stops[c - 1][1]; - const p = fs(i.stops.map((I => I[0])), r), - f = (function(I, E, R, N) { - const j = N - R, - Z = I - R; - return j === 0 ? 0 : E === 1 ? Z / j : (Math.pow(E, Z) - 1) / (Math.pow(E, j) - 1) - })(r, a, i.stops[p][0], i.stops[p + 1][0]), - g = i.stops[p][1], - v = i.stops[p + 1][1], - S = Fa[t.type] || dp; - return typeof g.evaluate == "function" ? { - evaluate(...I) { - const E = g.evaluate.apply(void 0, I), - R = v.evaluate.apply(void 0, I); - if (E !== void 0 && R !== void 0) return S(E, R, f, i.colorSpace) - } - } : S(g, v, f, i.colorSpace) - } - - function fp(i, t, r) { - switch (t.type) { - case "color": - r = yr.parse(r); - break; - case "formatted": - r = ln.fromString(r.toString()); - break; - case "resolvedImage": - r = Nn.fromString(r.toString()); - break; - case "padding": - r = Ki.parse(r); - break; - case "colorArray": - r = Ni.parse(r); - break; - case "numberArray": - r = cn.parse(r); - break; - default: - ii(r) === t.type || t.type === "enum" && t.values[r] || (r = void 0) - } - return is(r, i.default, t.default) - } - ca.register(Os, { - error: [{ - kind: "error" - }, - [jt], (i, [t]) => { - throw new wi(t.evaluate(i)) - } - ], - typeof: [jt, [fr], (i, [t]) => Yr(wr(t.evaluate(i)))], - "to-rgba": [Qr(Ke, 4), [Dr], (i, [t]) => { - const [r, a, c, p] = t.evaluate(i).rgb; - return [255 * r, 255 * a, 255 * c, p] - }], - rgb: [Dr, [Ke, Ke, Ke], kh], - rgba: [Dr, [Ke, Ke, Ke, Ke], kh], - has: { - type: Gt, - overloads: [ - [ - [jt], (i, [t]) => Eh(t.evaluate(i), i.properties()) - ], - [ - [jt, li], (i, [t, r]) => Eh(t.evaluate(i), r.evaluate(i)) - ] - ] - }, - get: { - type: fr, - overloads: [ - [ - [jt], (i, [t]) => Ec(t.evaluate(i), i.properties()) - ], - [ - [jt, li], (i, [t, r]) => Ec(t.evaluate(i), r.evaluate(i)) - ] - ] - }, - "feature-state": [fr, [jt], (i, [t]) => Ec(t.evaluate(i), i.featureState || {})], - properties: [li, [], i => i.properties()], - "geometry-type": [jt, [], i => i.geometryType()], - id: [fr, [], i => i.id()], - zoom: [Ke, [], i => i.globals.zoom], - "heatmap-density": [Ke, [], i => i.globals.heatmapDensity || 0], - elevation: [Ke, [], i => i.globals.elevation || 0], - "line-progress": [Ke, [], i => i.globals.lineProgress || 0], - accumulated: [fr, [], i => i.globals.accumulated === void 0 ? null : i.globals.accumulated], - "+": [Ke, xs(Ke), (i, t) => { - let r = 0; - for (const a of t) r += a.evaluate(i); - return r - }], - "*": [Ke, xs(Ke), (i, t) => { - let r = 1; - for (const a of t) r *= a.evaluate(i); - return r - }], - "-": { - type: Ke, - overloads: [ - [ - [Ke, Ke], (i, [t, r]) => t.evaluate(i) - r.evaluate(i) - ], - [ - [Ke], (i, [t]) => -t.evaluate(i) - ] - ] - }, - "/": [Ke, [Ke, Ke], (i, [t, r]) => t.evaluate(i) / r.evaluate(i)], - "%": [Ke, [Ke, Ke], (i, [t, r]) => t.evaluate(i) % r.evaluate(i)], - ln2: [Ke, [], () => Math.LN2], - pi: [Ke, [], () => Math.PI], - e: [Ke, [], () => Math.E], - "^": [Ke, [Ke, Ke], (i, [t, r]) => Math.pow(t.evaluate(i), r.evaluate(i))], - sqrt: [Ke, [Ke], (i, [t]) => Math.sqrt(t.evaluate(i))], - log10: [Ke, [Ke], (i, [t]) => Math.log(t.evaluate(i)) / Math.LN10], - ln: [Ke, [Ke], (i, [t]) => Math.log(t.evaluate(i))], - log2: [Ke, [Ke], (i, [t]) => Math.log(t.evaluate(i)) / Math.LN2], - sin: [Ke, [Ke], (i, [t]) => Math.sin(t.evaluate(i))], - cos: [Ke, [Ke], (i, [t]) => Math.cos(t.evaluate(i))], - tan: [Ke, [Ke], (i, [t]) => Math.tan(t.evaluate(i))], - asin: [Ke, [Ke], (i, [t]) => Math.asin(t.evaluate(i))], - acos: [Ke, [Ke], (i, [t]) => Math.acos(t.evaluate(i))], - atan: [Ke, [Ke], (i, [t]) => Math.atan(t.evaluate(i))], - min: [Ke, xs(Ke), (i, t) => Math.min(...t.map((r => r.evaluate(i))))], - max: [Ke, xs(Ke), (i, t) => Math.max(...t.map((r => r.evaluate(i))))], - abs: [Ke, [Ke], (i, [t]) => Math.abs(t.evaluate(i))], - round: [Ke, [Ke], (i, [t]) => { - const r = t.evaluate(i); - return r < 0 ? -Math.round(-r) : Math.round(r) - }], - floor: [Ke, [Ke], (i, [t]) => Math.floor(t.evaluate(i))], - ceil: [Ke, [Ke], (i, [t]) => Math.ceil(t.evaluate(i))], - "filter-==": [Gt, [jt, fr], (i, [t, r]) => i.properties()[t.value] === r.value], - "filter-id-==": [Gt, [fr], (i, [t]) => i.id() === t.value], - "filter-type-==": [Gt, [jt], (i, [t]) => i.geometryType() === t.value], - "filter-<": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a < c - }], - "filter-id-<": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r < a - }], - "filter->": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a > c - }], - "filter-id->": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r > a - }], - "filter-<=": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a <= c - }], - "filter-id-<=": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r <= a - }], - "filter->=": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a >= c - }], - "filter-id->=": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r >= a - }], - "filter-has": [Gt, [fr], (i, [t]) => t.value in i.properties()], - "filter-has-id": [Gt, [], i => i.id() !== null && i.id() !== void 0], - "filter-type-in": [Gt, [Qr(jt)], (i, [t]) => t.value.indexOf(i.geometryType()) >= 0], - "filter-id-in": [Gt, [Qr(fr)], (i, [t]) => t.value.indexOf(i.id()) >= 0], - "filter-in-small": [Gt, [jt, Qr(fr)], (i, [t, r]) => r.value.indexOf(i.properties()[t.value]) >= 0], - "filter-in-large": [Gt, [jt, Qr(fr)], (i, [t, r]) => (function(a, c, p, f) { - for (; p <= f;) { - const g = p + f >> 1; - if (c[g] === a) return !0; - c[g] > a ? f = g - 1 : p = g + 1 - } - return !1 - })(i.properties()[t.value], r.value, 0, r.value.length - 1)], - all: { - type: Gt, - overloads: [ - [ - [Gt, Gt], (i, [t, r]) => t.evaluate(i) && r.evaluate(i) - ], - [xs(Gt), (i, t) => { - for (const r of t) - if (!r.evaluate(i)) return !1; - return !0 - }] - ] - }, - any: { - type: Gt, - overloads: [ - [ - [Gt, Gt], (i, [t, r]) => t.evaluate(i) || r.evaluate(i) - ], - [xs(Gt), (i, t) => { - for (const r of t) - if (r.evaluate(i)) return !0; - return !1 - }] - ] - }, - "!": [Gt, [Gt], (i, [t]) => !t.evaluate(i)], - "is-supported-script": [Gt, [jt], (i, [t]) => { - const r = i.globals && i.globals.isSupportedScript; - return !r || r(t.evaluate(i)) - }], - upcase: [jt, [jt], (i, [t]) => t.evaluate(i).toUpperCase()], - downcase: [jt, [jt], (i, [t]) => t.evaluate(i).toLowerCase()], - concat: [jt, xs(fr), (i, t) => t.map((r => Vr(r.evaluate(i)))).join("")], - "resolved-locale": [jt, [bi], (i, [t]) => t.evaluate(i).resolvedLocale()] - }); - class Lc { - constructor(t, r) { - this.expression = t, this._warningHistory = {}, this._evaluator = new mc, this._defaultValue = r ? (function(a) { - if (a.type === "color" && To(a.default)) return new yr(0, 0, 0, 0); - switch (a.type) { - case "color": - return yr.parse(a.default) || null; - case "padding": - return Ki.parse(a.default) || null; - case "numberArray": - return cn.parse(a.default) || null; - case "colorArray": - return Ni.parse(a.default) || null; - case "variableAnchorOffsetCollection": - return un.parse(a.default) || null; - case "projectionDefinition": - return hn.parse(a.default) || null; - default: - return a.default === void 0 ? null : a.default - } - })(r) : null, this._enumValues = r && r.type === "enum" ? r.values : null - } - evaluateWithoutErrorHandling(t, r, a, c, p, f) { - return this._evaluator.globals = t, this._evaluator.feature = r, this._evaluator.featureState = a, this._evaluator.canonical = c, this._evaluator.availableImages = p || null, this._evaluator.formattedSection = f, this.expression.evaluate(this._evaluator) - } - evaluate(t, r, a, c, p, f) { - this._evaluator.globals = t, this._evaluator.feature = r || null, this._evaluator.featureState = a || null, this._evaluator.canonical = c, this._evaluator.availableImages = p || null, this._evaluator.formattedSection = f || null; - try { - const g = this.expression.evaluate(this._evaluator); - if (g == null || typeof g == "number" && g != g) return this._defaultValue; - if (this._enumValues && !(g in this._enumValues)) throw new wi(`Expected value to be one of ${Object.keys(this._enumValues).map((v=>JSON.stringify(v))).join(", ")}, but found ${JSON.stringify(g)} instead.`); - return g - } catch (g) { - return this._warningHistory[g.message] || (this._warningHistory[g.message] = !0, typeof console < "u" && console.warn(g.message)), this._defaultValue - } - } - } - - function fl(i) { - return Array.isArray(i) && i.length > 0 && typeof i[0] == "string" && i[0] in Os - } - - function Co(i, t) { - const r = new Rs(Os, hl, [], t ? (function(c) { - const p = { - color: Dr, - string: jt, - number: Ke, - enum: jt, - boolean: Gt, - formatted: Si, - padding: zi, - numberArray: Li, - colorArray: mi, - projectionDefinition: Gr, - resolvedImage: rr, - variableAnchorOffsetCollection: yi - }; - return c.type === "array" ? Qr(p[c.value] || fr, c.length) : p[c.type] - })(t) : void 0), - a = r.parse(i, void 0, void 0, void 0, t && t.type === "string" ? { - typeAnnotation: "coerce" - } : void 0); - return a ? zh(new Lc(a, t)) : Ns(r.errors) - } - class So { - constructor(t, r) { - this.kind = t, this._styleExpression = r, this.isStateDependent = t !== "constant" && !wo(r.expression), this.globalStateRefs = Mo(r.expression) - } - evaluateWithoutErrorHandling(t, r, a, c, p, f) { - return this._styleExpression.evaluateWithoutErrorHandling(t, r, a, c, p, f) - } - evaluate(t, r, a, c, p, f) { - return this._styleExpression.evaluate(t, r, a, c, p, f) - } - } - class Dc { - constructor(t, r, a, c) { - this.kind = t, this.zoomStops = a, this._styleExpression = r, this.isStateDependent = t !== "camera" && !wo(r.expression), this.globalStateRefs = Mo(r.expression), this.interpolationType = c - } - evaluateWithoutErrorHandling(t, r, a, c, p, f) { - return this._styleExpression.evaluateWithoutErrorHandling(t, r, a, c, p, f) - } - evaluate(t, r, a, c, p, f) { - return this._styleExpression.evaluate(t, r, a, c, p, f) - } - interpolationFactor(t, r, a) { - return this.interpolationType ? In.interpolationFactor(this.interpolationType, t, r, a) : 0 - } - } - - function Fh(i, t) { - const r = Co(i, t); - if (r.result === "error") return r; - const a = r.value.expression, - c = dl(a); - if (!c && !rs(t)) return Ns([new di("", "data expressions not supported")]); - const p = pl(a, ["zoom"]); - if (!p && !Lh(t)) return Ns([new di("", "zoom expressions not supported")]); - const f = Io(a); - return f || p ? f instanceof di ? Ns([f]) : f instanceof In && !zc(t) ? Ns([new di("", '"interpolate" expressions cannot be used with this property')]) : zh(f ? new Dc(c ? "camera" : "composite", r.value, f.labels, f instanceof In ? f.interpolation : void 0) : new So(c ? "constant" : "source", r.value)) : Ns([new di("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]) - } - class Po { - constructor(t, r) { - this._parameters = t, this._specification = r, Ci(this, Dh(this._parameters, this._specification)) - } - static deserialize(t) { - return new Po(t._parameters, t._specification) - } - static serialize(t) { - return { - _parameters: t._parameters, - _specification: t._specification - } - } - } - - function Io(i) { - let t = null; - if (i instanceof co) t = Io(i.result); - else if (i instanceof fo) { - for (const r of i.args) - if (t = Io(r), t) break - } else(i instanceof Gi || i instanceof In) && i.input instanceof ca && i.input.name === "zoom" && (t = i); - return t instanceof di || i.eachChild((r => { - const a = Io(r); - a instanceof di ? t = a : !t && a ? t = new di("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : t && a && t !== a && (t = new di("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.')) - })), t - } - - function Mo(i, t = new Set) { - return i instanceof bo && t.add(i.key), i.eachChild((r => { - Mo(r, t) - })), t - } - - function ml(i) { - if (i === !0 || i === !1) return !0; - if (!Array.isArray(i) || i.length === 0) return !1; - switch (i[0]) { - case "has": - return i.length >= 2 && i[1] !== "$id" && i[1] !== "$type"; - case "in": - return i.length >= 3 && (typeof i[1] != "string" || Array.isArray(i[2])); - case "!in": - case "!has": - case "none": - return !1; - case "==": - case "!=": - case ">": - case ">=": - case "<": - case "<=": - return i.length !== 3 || Array.isArray(i[1]) || Array.isArray(i[2]); - case "any": - case "all": - for (const t of i.slice(1)) - if (!ml(t) && typeof t != "boolean") return !1; - return !0; - default: - return !0 - } - } - const Rc = { - type: "boolean", - default: !1, - transition: !1, - "property-type": "data-driven", - expression: { - interpolated: !1, - parameters: ["zoom", "feature"] - } - }; - - function bs(i) { - if (i == null) return { - filter: () => !0, - needGeometry: !1, - getGlobalStateRefs: () => new Set - }; - ml(i) || (i = ws(i)); - const t = Co(i, Rc); - if (t.result === "error") throw new Error(t.value.map((r => `${r.key}: ${r.message}`)).join(", ")); - return { - filter: (r, a, c) => t.value.evaluate(r, a, {}, c), - needGeometry: _l(i), - getGlobalStateRefs: () => Mo(t.value.expression) - } - } - - function Bc(i, t) { - return i < t ? -1 : i > t ? 1 : 0 - } - - function _l(i) { - if (!Array.isArray(i)) return !1; - if (i[0] === "within" || i[0] === "distance") return !0; - for (let t = 1; t < i.length; t++) - if (_l(i[t])) return !0; - return !1 - } - - function ws(i) { - if (!i) return !0; - const t = i[0]; - return i.length <= 1 ? t !== "any" : t === "==" ? Fc(i[1], i[2], "==") : t === "!=" ? gl(Fc(i[1], i[2], "==")) : t === "<" || t === ">" || t === "<=" || t === ">=" ? Fc(i[1], i[2], t) : t === "any" ? (r = i.slice(1), ["any"].concat(r.map(ws))) : t === "all" ? ["all"].concat(i.slice(1).map(ws)) : t === "none" ? ["all"].concat(i.slice(1).map(ws).map(gl)) : t === "in" ? Oh(i[1], i.slice(2)) : t === "!in" ? gl(Oh(i[1], i.slice(2))) : t === "has" ? Nh(i[1]) : t !== "!has" || gl(Nh(i[1])); - var r - } - - function Fc(i, t, r) { - switch (i) { - case "$type": - return [`filter-type-${r}`, t]; - case "$id": - return [`filter-id-${r}`, t]; - default: - return [`filter-${r}`, i, t] - } - } - - function Oh(i, t) { - if (t.length === 0) return !1; - switch (i) { - case "$type": - return ["filter-type-in", ["literal", t]]; - case "$id": - return ["filter-id-in", ["literal", t]]; - default: - return t.length > 200 && !t.some((r => typeof r != typeof t[0])) ? ["filter-in-large", i, ["literal", t.sort(Bc)]] : ["filter-in-small", i, ["literal", t]] - } - } - - function Nh(i) { - switch (i) { - case "$type": - return !0; - case "$id": - return ["filter-has-id"]; - default: - return ["filter-has", i] - } - } - - function gl(i) { - return ["!", i] - } - - function Oc(i) { - const t = typeof i; - if (t === "number" || t === "boolean" || t === "string" || i == null) return JSON.stringify(i); - if (Array.isArray(i)) { - let c = "["; - for (const p of i) c += `${Oc(p)},`; - return `${c}]` - } - const r = Object.keys(i).sort(); - let a = "{"; - for (let c = 0; c < r.length; c++) a += `${JSON.stringify(r[c])}:${Oc(i[r[c]])},`; - return `${a}}` - } - - function mp(i) { - let t = ""; - for (const r of At) t += `/${Oc(i[r])}`; - return t - } - - function Nc(i) { - const t = i.value; - return t ? [new Tt(i.key, t, "constants have been deprecated as of v8")] : [] - } - - function Vi(i) { - return i instanceof Number || i instanceof String || i instanceof Boolean ? i.valueOf() : i - } - - function Oa(i) { - if (Array.isArray(i)) return i.map(Oa); - if (i instanceof Object && !(i instanceof Number || i instanceof String || i instanceof Boolean)) { - const t = {}; - for (const r in i) t[r] = Oa(i[r]); - return t - } - return Vi(i) - } - - function ua(i) { - const t = i.key, - r = i.value, - a = i.valueSpec || {}, - c = i.objectElementValidators || {}, - p = i.style, - f = i.styleSpec, - g = i.validateSpec; - let v = []; - const S = ii(r); - if (S !== "object") return [new Tt(t, r, `object expected, ${S} found`)]; - for (const I in r) { - const E = I.split(".")[0], - R = gi(a, E) || a["*"]; - let N; - if (gi(c, E)) N = c[E]; - else if (gi(a, E)) N = g; - else if (c["*"]) N = c["*"]; - else { - if (!a["*"]) { - v.push(new Tt(t, r[I], `unknown property "${I}"`)); - continue - } - N = g - } - v = v.concat(N({ - key: (t && `${t}.`) + I, - value: r[I], - valueSpec: R, - style: p, - styleSpec: f, - object: r, - objectKey: I, - validateSpec: g - }, r)) - } - for (const I in a) c[I] || a[I].required && a[I].default === void 0 && r[I] === void 0 && v.push(new Tt(t, r, `missing required property "${I}"`)); - return v - } - - function vl(i) { - const t = i.value, - r = i.valueSpec, - a = i.style, - c = i.styleSpec, - p = i.key, - f = i.arrayElementValidator || i.validateSpec; - if (ii(t) !== "array") return [new Tt(p, t, `array expected, ${ii(t)} found`)]; - if (r.length && t.length !== r.length) return [new Tt(p, t, `array length ${r.length} expected, length ${t.length} found`)]; - if (r["min-length"] && t.length < r["min-length"]) return [new Tt(p, t, `array length at least ${r["min-length"]} expected, length ${t.length} found`)]; - let g = { - type: r.value, - values: r.values - }; - c.$version < 7 && (g.function = r.function), ii(r.value) === "object" && (g = r.value); - let v = []; - for (let S = 0; S < t.length; S++) v = v.concat(f({ - array: t, - arrayIndex: S, - value: t[S], - valueSpec: g, - validateSpec: i.validateSpec, - style: a, - styleSpec: c, - key: `${p}[${S}]` - })); - return v - } - - function Ao(i) { - const t = i.key, - r = i.value, - a = i.valueSpec; - let c = ii(r); - return c === "number" && r != r && (c = "NaN"), c !== "number" ? [new Tt(t, r, `number expected, ${c} found`)] : "minimum" in a && r < a.minimum ? [new Tt(t, r, `${r} is less than the minimum value ${a.minimum}`)] : "maximum" in a && r > a.maximum ? [new Tt(t, r, `${r} is greater than the maximum value ${a.maximum}`)] : [] - } - - function jh(i) { - const t = i.valueSpec, - r = Vi(i.value.type); - let a, c, p, f = {}; - const g = r !== "categorical" && i.value.property === void 0, - v = !g, - S = ii(i.value.stops) === "array" && ii(i.value.stops[0]) === "array" && ii(i.value.stops[0][0]) === "object", - I = ua({ - key: i.key, - value: i.value, - valueSpec: i.styleSpec.function, - validateSpec: i.validateSpec, - style: i.style, - styleSpec: i.styleSpec, - objectElementValidators: { - stops: function(N) { - if (r === "identity") return [new Tt(N.key, N.value, 'identity function may not have a "stops" property')]; - let j = []; - const Z = N.value; - return j = j.concat(vl({ - key: N.key, - value: Z, - valueSpec: N.valueSpec, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec, - arrayElementValidator: E - })), ii(Z) === "array" && Z.length === 0 && j.push(new Tt(N.key, Z, "array must have at least one stop")), j - }, - default: function(N) { - return N.validateSpec({ - key: N.key, - value: N.value, - valueSpec: t, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec - }) - } - } - }); - return r === "identity" && g && I.push(new Tt(i.key, i.value, 'missing required property "property"')), r === "identity" || i.value.stops || I.push(new Tt(i.key, i.value, 'missing required property "stops"')), r === "exponential" && i.valueSpec.expression && !zc(i.valueSpec) && I.push(new Tt(i.key, i.value, "exponential functions not supported")), i.styleSpec.$version >= 8 && (v && !rs(i.valueSpec) ? I.push(new Tt(i.key, i.value, "property functions not supported")) : g && !Lh(i.valueSpec) && I.push(new Tt(i.key, i.value, "zoom functions not supported"))), r !== "categorical" && !S || i.value.property !== void 0 || I.push(new Tt(i.key, i.value, '"property" property is required')), I; - - function E(N) { - let j = []; - const Z = N.value, - Y = N.key; - if (ii(Z) !== "array") return [new Tt(Y, Z, `array expected, ${ii(Z)} found`)]; - if (Z.length !== 2) return [new Tt(Y, Z, `array length 2 expected, length ${Z.length} found`)]; - if (S) { - if (ii(Z[0]) !== "object") return [new Tt(Y, Z, `object expected, ${ii(Z[0])} found`)]; - if (Z[0].zoom === void 0) return [new Tt(Y, Z, "object stop key must have zoom")]; - if (Z[0].value === void 0) return [new Tt(Y, Z, "object stop key must have value")]; - if (p && p > Vi(Z[0].zoom)) return [new Tt(Y, Z[0].zoom, "stop zoom values must appear in ascending order")]; - Vi(Z[0].zoom) !== p && (p = Vi(Z[0].zoom), c = void 0, f = {}), j = j.concat(ua({ - key: `${Y}[0]`, - value: Z[0], - valueSpec: { - zoom: {} - }, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec, - objectElementValidators: { - zoom: Ao, - value: R - } - })) - } else j = j.concat(R({ - key: `${Y}[0]`, - value: Z[0], - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec - }, Z)); - return fl(Oa(Z[1])) ? j.concat([new Tt(`${Y}[1]`, Z[1], "expressions are not allowed in function stops.")]) : j.concat(N.validateSpec({ - key: `${Y}[1]`, - value: Z[1], - valueSpec: t, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec - })) - } - - function R(N, j) { - const Z = ii(N.value), - Y = Vi(N.value), - ae = N.value !== null ? N.value : j; - if (a) { - if (Z !== a) return [new Tt(N.key, ae, `${Z} stop domain type must match previous stop domain type ${a}`)] - } else a = Z; - if (Z !== "number" && Z !== "string" && Z !== "boolean") return [new Tt(N.key, ae, "stop domain value must be a number, string, or boolean")]; - if (Z !== "number" && r !== "categorical") { - let ze = `number expected, ${Z} found`; - return rs(t) && r === void 0 && (ze += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new Tt(N.key, ae, ze)] - } - return r !== "categorical" || Z !== "number" || isFinite(Y) && Math.floor(Y) === Y ? r !== "categorical" && Z === "number" && c !== void 0 && Y < c ? [new Tt(N.key, ae, "stop domain values must appear in ascending order")] : (c = Y, r === "categorical" && Y in f ? [new Tt(N.key, ae, "stop domain values must be unique")] : (f[Y] = !0, [])) : [new Tt(N.key, ae, `integer expected, found ${Y}`)] - } - } - - function Ts(i) { - const t = (i.expressionContext === "property" ? Fh : Co)(Oa(i.value), i.valueSpec); - if (t.result === "error") return t.value.map((a => new Tt(`${i.key}${a.key}`, i.value, a.message))); - const r = t.value.expression || t.value._styleExpression.expression; - if (i.expressionContext === "property" && i.propertyKey === "text-font" && !r.outputDefined()) return [new Tt(i.key, i.value, `Invalid data expression for "${i.propertyKey}". Output values must be contained as literals within the expression.`)]; - if (i.expressionContext === "property" && i.propertyType === "layout" && !wo(r)) return [new Tt(i.key, i.value, '"feature-state" data expressions are not supported with layout properties.')]; - if (i.expressionContext === "filter" && !wo(r)) return [new Tt(i.key, i.value, '"feature-state" data expressions are not supported with filters.')]; - if (i.expressionContext && i.expressionContext.indexOf("cluster") === 0) { - if (!pl(r, ["zoom", "feature-state"])) return [new Tt(i.key, i.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')]; - if (i.expressionContext === "cluster-initial" && !dl(r)) return [new Tt(i.key, i.value, "Feature data expressions are not supported with initial expression part of cluster properties.")] - } - return [] - } - - function yl(i) { - const t = i.key, - r = i.value, - a = ii(r); - return a !== "string" ? [new Tt(t, r, `color expected, ${a} found`)] : yr.parse(String(r)) ? [] : [new Tt(t, r, `color expected, "${r}" found`)] - } - - function Ga(i) { - const t = i.key, - r = i.value, - a = i.valueSpec, - c = []; - return Array.isArray(a.values) ? a.values.indexOf(Vi(r)) === -1 && c.push(new Tt(t, r, `expected one of [${a.values.join(", ")}], ${JSON.stringify(r)} found`)) : Object.keys(a.values).indexOf(Vi(r)) === -1 && c.push(new Tt(t, r, `expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(r)} found`)), c - } - - function jc(i) { - return ml(Oa(i.value)) ? Ts(Ci({}, i, { - expressionContext: "filter", - valueSpec: { - value: "boolean" - } - })) : qh(i) - } - - function qh(i) { - const t = i.value, - r = i.key; - if (ii(t) !== "array") return [new Tt(r, t, `array expected, ${ii(t)} found`)]; - const a = i.styleSpec; - let c, p = []; - if (t.length < 1) return [new Tt(r, t, "filter array must have at least 1 element")]; - switch (p = p.concat(Ga({ - key: `${r}[0]`, - value: t[0], - valueSpec: a.filter_operator, - style: i.style, - styleSpec: i.styleSpec - })), Vi(t[0])) { - case "<": - case "<=": - case ">": - case ">=": - t.length >= 2 && Vi(t[1]) === "$type" && p.push(new Tt(r, t, `"$type" cannot be use with operator "${t[0]}"`)); - case "==": - case "!=": - t.length !== 3 && p.push(new Tt(r, t, `filter array for operator "${t[0]}" must have 3 elements`)); - case "in": - case "!in": - t.length >= 2 && (c = ii(t[1]), c !== "string" && p.push(new Tt(`${r}[1]`, t[1], `string expected, ${c} found`))); - for (let f = 2; f < t.length; f++) c = ii(t[f]), Vi(t[1]) === "$type" ? p = p.concat(Ga({ - key: `${r}[${f}]`, - value: t[f], - valueSpec: a.geometry_type, - style: i.style, - styleSpec: i.styleSpec - })) : c !== "string" && c !== "number" && c !== "boolean" && p.push(new Tt(`${r}[${f}]`, t[f], `string, number, or boolean expected, ${c} found`)); - break; - case "any": - case "all": - case "none": - for (let f = 1; f < t.length; f++) p = p.concat(qh({ - key: `${r}[${f}]`, - value: t[f], - style: i.style, - styleSpec: i.styleSpec - })); - break; - case "has": - case "!has": - c = ii(t[1]), t.length !== 2 ? p.push(new Tt(r, t, `filter array for "${t[0]}" operator must have 2 elements`)) : c !== "string" && p.push(new Tt(`${r}[1]`, t[1], `string expected, ${c} found`)) - } - return p - } - - function Vh(i, t) { - const r = i.key, - a = i.validateSpec, - c = i.style, - p = i.styleSpec, - f = i.value, - g = i.objectKey, - v = p[`${t}_${i.layerType}`]; - if (!v) return []; - const S = g.match(/^(.*)-transition$/); - if (t === "paint" && S && v[S[1]] && v[S[1]].transition) return a({ - key: r, - value: f, - valueSpec: p.transition, - style: c, - styleSpec: p - }); - const I = i.valueSpec || v[g]; - if (!I) return [new Tt(r, f, `unknown property "${g}"`)]; - let E; - if (ii(f) === "string" && rs(I) && !I.tokens && (E = /^{([^}]+)}$/.exec(f))) return [new Tt(r, f, `"${g}" does not support interpolation syntax -Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(E[1])} }\`.`)]; - const R = []; - return i.layerType === "symbol" && (g === "text-field" && c && !c.glyphs && R.push(new Tt(r, f, 'use of "text-field" requires a style "glyphs" property')), g === "text-font" && To(Oa(f)) && Vi(f.type) === "identity" && R.push(new Tt(r, f, '"text-font" does not support identity functions'))), R.concat(a({ - key: i.key, - value: f, - valueSpec: I, - style: c, - styleSpec: p, - expressionContext: "property", - propertyType: t, - propertyKey: g - })) - } - - function Uh(i) { - return Vh(i, "paint") - } - - function Zh(i) { - return Vh(i, "layout") - } - - function $h(i) { - let t = []; - const r = i.value, - a = i.key, - c = i.style, - p = i.styleSpec; - if (ii(r) !== "object") return [new Tt(a, r, `object expected, ${ii(r)} found`)]; - r.type || r.ref || t.push(new Tt(a, r, 'either "type" or "ref" is required')); - let f = Vi(r.type); - const g = Vi(r.ref); - if (r.id) { - const v = Vi(r.id); - for (let S = 0; S < i.arrayIndex; S++) { - const I = c.layers[S]; - Vi(I.id) === v && t.push(new Tt(a, r.id, `duplicate layer id "${r.id}", previously used at line ${I.id.__line__}`)) - } - } - if ("ref" in r) { - let v; - ["type", "source", "source-layer", "filter", "layout"].forEach((S => { - S in r && t.push(new Tt(a, r[S], `"${S}" is prohibited for ref layers`)) - })), c.layers.forEach((S => { - Vi(S.id) === g && (v = S) - })), v ? v.ref ? t.push(new Tt(a, r.ref, "ref cannot reference another ref layer")) : f = Vi(v.type) : t.push(new Tt(a, r.ref, `ref layer "${g}" not found`)) - } else if (f !== "background") - if (r.source) { - const v = c.sources && c.sources[r.source], - S = v && Vi(v.type); - v ? S === "vector" && f === "raster" ? t.push(new Tt(a, r.source, `layer "${r.id}" requires a raster source`)) : S !== "raster-dem" && f === "hillshade" || S !== "raster-dem" && f === "color-relief" ? t.push(new Tt(a, r.source, `layer "${r.id}" requires a raster-dem source`)) : S === "raster" && f !== "raster" ? t.push(new Tt(a, r.source, `layer "${r.id}" requires a vector source`)) : S !== "vector" || r["source-layer"] ? S === "raster-dem" && f !== "hillshade" && f !== "color-relief" ? t.push(new Tt(a, r.source, "raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")) : f !== "line" || !r.paint || !r.paint["line-gradient"] || S === "geojson" && v.lineMetrics || t.push(new Tt(a, r, `layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)) : t.push(new Tt(a, r, `layer "${r.id}" must specify a "source-layer"`)) : t.push(new Tt(a, r.source, `source "${r.source}" not found`)) - } else t.push(new Tt(a, r, 'missing required property "source"')); - return t = t.concat(ua({ - key: a, - value: r, - valueSpec: p.layer, - style: i.style, - styleSpec: i.styleSpec, - validateSpec: i.validateSpec, - objectElementValidators: { - "*": () => [], - type: () => i.validateSpec({ - key: `${a}.type`, - value: r.type, - valueSpec: p.layer.type, - style: i.style, - styleSpec: i.styleSpec, - validateSpec: i.validateSpec, - object: r, - objectKey: "type" - }), - filter: jc, - layout: v => ua({ - layer: r, - key: v.key, - value: v.value, - style: v.style, - styleSpec: v.styleSpec, - validateSpec: v.validateSpec, - objectElementValidators: { - "*": S => Zh(Ci({ - layerType: f - }, S)) - } - }), - paint: v => ua({ - layer: r, - key: v.key, - value: v.value, - style: v.style, - styleSpec: v.styleSpec, - validateSpec: v.validateSpec, - objectElementValidators: { - "*": S => Uh(Ci({ - layerType: f - }, S)) - } - }) - } - })), t - } - - function xa(i) { - const t = i.value, - r = i.key, - a = ii(t); - return a !== "string" ? [new Tt(r, t, `string expected, ${a} found`)] : [] - } - const js = { - promoteId: function({ - key: i, - value: t - }) { - if (ii(t) === "string") return xa({ - key: i, - value: t - }); - { - const r = []; - for (const a in t) r.push(...xa({ - key: `${i}.${a}`, - value: t[a] - })); - return r - } - } - }; - - function Wn(i) { - const t = i.value, - r = i.key, - a = i.styleSpec, - c = i.style, - p = i.validateSpec; - if (!t.type) return [new Tt(r, t, '"type" is required')]; - const f = Vi(t.type); - let g; - switch (f) { - case "vector": - case "raster": - return g = ua({ - key: r, - value: t, - valueSpec: a[`source_${f.replace("-","_")}`], - style: i.style, - styleSpec: a, - objectElementValidators: js, - validateSpec: p - }), g; - case "raster-dem": - return g = (function(v) { - var S; - const I = (S = v.sourceName) !== null && S !== void 0 ? S : "", - E = v.value, - R = v.styleSpec, - N = R.source_raster_dem, - j = v.style; - let Z = []; - const Y = ii(E); - if (E === void 0) return Z; - if (Y !== "object") return Z.push(new Tt("source_raster_dem", E, `object expected, ${Y} found`)), Z; - const ae = Vi(E.encoding) === "custom", - ze = ["redFactor", "greenFactor", "blueFactor", "baseShift"], - me = v.value.encoding ? `"${v.value.encoding}"` : "Default"; - for (const be in E) !ae && ze.includes(be) ? Z.push(new Tt(be, E[be], `In "${I}": "${be}" is only valid when "encoding" is set to "custom". ${me} encoding found`)) : N[be] ? Z = Z.concat(v.validateSpec({ - key: be, - value: E[be], - valueSpec: N[be], - validateSpec: v.validateSpec, - style: j, - styleSpec: R - })) : Z.push(new Tt(be, E[be], `unknown property "${be}"`)); - return Z - })({ - sourceName: r, - value: t, - style: i.style, - styleSpec: a, - validateSpec: p - }), g; - case "geojson": - if (g = ua({ - key: r, - value: t, - valueSpec: a.source_geojson, - style: c, - styleSpec: a, - validateSpec: p, - objectElementValidators: js - }), t.cluster) - for (const v in t.clusterProperties) { - const [S, I] = t.clusterProperties[v], E = typeof S == "string" ? [S, ["accumulated"], - ["get", v] - ] : S; - g.push(...Ts({ - key: `${r}.${v}.map`, - value: I, - expressionContext: "cluster-map" - })), g.push(...Ts({ - key: `${r}.${v}.reduce`, - value: E, - expressionContext: "cluster-reduce" - })) - } - return g; - case "video": - return ua({ - key: r, - value: t, - valueSpec: a.source_video, - style: c, - validateSpec: p, - styleSpec: a - }); - case "image": - return ua({ - key: r, - value: t, - valueSpec: a.source_image, - style: c, - validateSpec: p, - styleSpec: a - }); - case "canvas": - return [new Tt(r, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")]; - default: - return Ga({ - key: `${r}.type`, - value: t.type, - valueSpec: { - values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] - } - }) - } - } - - function qs(i) { - const t = i.value, - r = i.styleSpec, - a = r.light, - c = i.style; - let p = []; - const f = ii(t); - if (t === void 0) return p; - if (f !== "object") return p = p.concat([new Tt("light", t, `object expected, ${f} found`)]), p; - for (const g in t) { - const v = g.match(/^(.*)-transition$/); - p = p.concat(v && a[v[1]] && a[v[1]].transition ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: r.transition, - validateSpec: i.validateSpec, - style: c, - styleSpec: r - }) : a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - validateSpec: i.validateSpec, - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]) - } - return p - } - - function qc(i) { - const t = i.value, - r = i.styleSpec, - a = r.sky, - c = i.style, - p = ii(t); - if (t === void 0) return []; - if (p !== "object") return [new Tt("sky", t, `object expected, ${p} found`)]; - let f = []; - for (const g in t) f = f.concat(a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]); - return f - } - - function Gh(i) { - const t = i.value, - r = i.styleSpec, - a = r.terrain, - c = i.style; - let p = []; - const f = ii(t); - if (t === void 0) return p; - if (f !== "object") return p = p.concat([new Tt("terrain", t, `object expected, ${f} found`)]), p; - for (const g in t) p = p.concat(a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - validateSpec: i.validateSpec, - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]); - return p - } - - function Hh(i) { - let t = []; - const r = i.value, - a = i.key; - if (Array.isArray(r)) { - const c = [], - p = []; - for (const f in r) r[f].id && c.includes(r[f].id) && t.push(new Tt(a, r, `all the sprites' ids must be unique, but ${r[f].id} is duplicated`)), c.push(r[f].id), r[f].url && p.includes(r[f].url) && t.push(new Tt(a, r, `all the sprites' URLs must be unique, but ${r[f].url} is duplicated`)), p.push(r[f].url), t = t.concat(ua({ - key: `${a}[${f}]`, - value: r[f], - valueSpec: { - id: { - type: "string", - required: !0 - }, - url: { - type: "string", - required: !0 - } - }, - validateSpec: i.validateSpec - })); - return t - } - return xa({ - key: a, - value: r - }) - } - - function Vs(i) { - return t = i.value, t && t.constructor === Object ? [] : [new Tt(i.key, i.value, `object expected, ${ii(i.value)} found`)]; - var t - } - const Vc = { - "*": () => [], - array: vl, - boolean: function(i) { - const t = i.value, - r = i.key, - a = ii(t); - return a !== "boolean" ? [new Tt(r, t, `boolean expected, ${a} found`)] : [] - }, - number: Ao, - color: yl, - constants: Nc, - enum: Ga, - filter: jc, - function: jh, - layer: $h, - object: ua, - source: Wn, - light: qs, - sky: qc, - terrain: Gh, - projection: function(i) { - const t = i.value, - r = i.styleSpec, - a = r.projection, - c = i.style, - p = ii(t); - if (t === void 0) return []; - if (p !== "object") return [new Tt("projection", t, `object expected, ${p} found`)]; - let f = []; - for (const g in t) f = f.concat(a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]); - return f - }, - projectionDefinition: function(i) { - const t = i.key; - let r = i.value; - r = r instanceof String ? r.valueOf() : r; - const a = ii(r); - return a !== "array" || (function(c) { - return Array.isArray(c) && c.length === 3 && typeof c[0] == "string" && typeof c[1] == "string" && typeof c[2] == "number" - })(r) || (function(c) { - return !!["interpolate", "step", "literal"].includes(c[0]) - })(r) ? ["array", "string"].includes(a) ? [] : [new Tt(t, r, `projection expected, invalid type "${a}" found`)] : [new Tt(t, r, `projection expected, invalid array ${JSON.stringify(r)} found`)] - }, - string: xa, - formatted: function(i) { - return xa(i).length === 0 ? [] : Ts(i) - }, - resolvedImage: function(i) { - return xa(i).length === 0 ? [] : Ts(i) - }, - padding: function(i) { - const t = i.key, - r = i.value; - if (ii(r) === "array") { - if (r.length < 1 || r.length > 4) return [new Tt(t, r, `padding requires 1 to 4 values; ${r.length} values found`)]; - const a = { - type: "number" - }; - let c = []; - for (let p = 0; p < r.length; p++) c = c.concat(i.validateSpec({ - key: `${t}[${p}]`, - value: r[p], - validateSpec: i.validateSpec, - valueSpec: a - })); - return c - } - return Ao({ - key: t, - value: r, - valueSpec: {} - }) - }, - numberArray: function(i) { - const t = i.key, - r = i.value; - if (ii(r) === "array") { - const a = { - type: "number" - }; - if (r.length < 1) return [new Tt(t, r, "array length at least 1 expected, length 0 found")]; - let c = []; - for (let p = 0; p < r.length; p++) c = c.concat(i.validateSpec({ - key: `${t}[${p}]`, - value: r[p], - validateSpec: i.validateSpec, - valueSpec: a - })); - return c - } - return Ao({ - key: t, - value: r, - valueSpec: {} - }) - }, - colorArray: function(i) { - const t = i.key, - r = i.value; - if (ii(r) === "array") { - if (r.length < 1) return [new Tt(t, r, "array length at least 1 expected, length 0 found")]; - let a = []; - for (let c = 0; c < r.length; c++) a = a.concat(yl({ - key: `${t}[${c}]`, - value: r[c] - })); - return a - } - return yl({ - key: t, - value: r - }) - }, - variableAnchorOffsetCollection: function(i) { - const t = i.key, - r = i.value, - a = ii(r), - c = i.styleSpec; - if (a !== "array" || r.length < 1 || r.length % 2 != 0) return [new Tt(t, r, "variableAnchorOffsetCollection requires a non-empty array of even length")]; - let p = []; - for (let f = 0; f < r.length; f += 2) p = p.concat(Ga({ - key: `${t}[${f}]`, - value: r[f], - valueSpec: c.layout_symbol["text-anchor"] - })), p = p.concat(vl({ - key: `${t}[${f+1}]`, - value: r[f + 1], - valueSpec: { - length: 2, - value: "number" - }, - validateSpec: i.validateSpec, - style: i.style, - styleSpec: c - })); - return p - }, - sprite: Hh, - state: Vs - }; - - function Us(i) { - const t = i.value, - r = i.valueSpec, - a = i.styleSpec; - return i.validateSpec = Us, r.expression && To(Vi(t)) ? jh(i) : r.expression && fl(Oa(t)) ? Ts(i) : r.type && Vc[r.type] ? Vc[r.type](i) : ua(Ci({}, i, { - valueSpec: r.type ? a[r.type] : r - })) - } - - function Wh(i) { - const t = i.value, - r = i.key, - a = xa(i); - return a.length || (t.indexOf("{fontstack}") === -1 && a.push(new Tt(r, t, '"glyphs" url must include a "{fontstack}" token')), t.indexOf("{range}") === -1 && a.push(new Tt(r, t, '"glyphs" url must include a "{range}" token'))), a - } - - function Xn(i, t = xe) { - let r = []; - return r = r.concat(Us({ - key: "", - value: i, - valueSpec: t.$root, - styleSpec: t, - style: i, - validateSpec: Us, - objectElementValidators: { - glyphs: Wh, - "*": () => [] - } - })), i.constants && (r = r.concat(Nc({ - key: "constants", - value: i.constants - }))), Zs(r) - } - - function ba(i) { - return function(t) { - return i({ - ...t, - validateSpec: Us - }) - } - } - - function Zs(i) { - return [].concat(i).sort(((t, r) => t.line - r.line)) - } - - function wa(i) { - return function(...t) { - return Zs(i.apply(this, t)) - } - } - Xn.source = wa(ba(Wn)), Xn.sprite = wa(ba(Hh)), Xn.glyphs = wa(ba(Wh)), Xn.light = wa(ba(qs)), Xn.sky = wa(ba(qc)), Xn.terrain = wa(ba(Gh)), Xn.state = wa(ba(Vs)), Xn.layer = wa(ba($h)), Xn.filter = wa(ba(jc)), Xn.paintProperty = wa(ba(Uh)), Xn.layoutProperty = wa(ba(Zh)); - const $s = Xn, - _p = $s.light, - ko = $s.sky, - gp = $s.paintProperty, - vp = $s.layoutProperty; - - function Eo(i, t) { - let r = !1; - if (t && t.length) - for (const a of t) i.fire(new Ye(new Error(a.message))), r = !0; - return r - } - class zo { - constructor(t, r, a) { - const c = this.cells = []; - if (t instanceof ArrayBuffer) { - this.arrayBuffer = t; - const f = new Int32Array(this.arrayBuffer); - t = f[0], this.d = (r = f[1]) + 2 * (a = f[2]); - for (let v = 0; v < this.d * this.d; v++) { - const S = f[3 + v], - I = f[3 + v + 1]; - c.push(S === I ? null : f.subarray(S, I)) - } - const g = f[3 + c.length + 1]; - this.keys = f.subarray(f[3 + c.length], g), this.bboxes = f.subarray(g), this.insert = this._insertReadonly - } else { - this.d = r + 2 * a; - for (let f = 0; f < this.d * this.d; f++) c.push([]); - this.keys = [], this.bboxes = [] - } - this.n = r, this.extent = t, this.padding = a, this.scale = r / t, this.uid = 0; - const p = a / r * t; - this.min = -p, this.max = t + p - } - insert(t, r, a, c, p) { - this._forEachCell(r, a, c, p, this._insertCell, this.uid++, void 0, void 0), this.keys.push(t), this.bboxes.push(r), this.bboxes.push(a), this.bboxes.push(c), this.bboxes.push(p) - } - _insertReadonly() { - throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer.") - } - _insertCell(t, r, a, c, p, f) { - this.cells[p].push(f) - } - query(t, r, a, c, p) { - const f = this.min, - g = this.max; - if (t <= f && r <= f && g <= a && g <= c && !p) return Array.prototype.slice.call(this.keys); - { - const v = []; - return this._forEachCell(t, r, a, c, this._queryCell, v, {}, p), v - } - } - _queryCell(t, r, a, c, p, f, g, v) { - const S = this.cells[p]; - if (S !== null) { - const I = this.keys, - E = this.bboxes; - for (let R = 0; R < S.length; R++) { - const N = S[R]; - if (g[N] === void 0) { - const j = 4 * N; - (v ? v(E[j + 0], E[j + 1], E[j + 2], E[j + 3]) : t <= E[j + 2] && r <= E[j + 3] && a >= E[j + 0] && c >= E[j + 1]) ? (g[N] = !0, f.push(I[N])) : g[N] = !1 - } - } - } - } - _forEachCell(t, r, a, c, p, f, g, v) { - const S = this._convertToCellCoord(t), - I = this._convertToCellCoord(r), - E = this._convertToCellCoord(a), - R = this._convertToCellCoord(c); - for (let N = S; N <= E; N++) - for (let j = I; j <= R; j++) { - const Z = this.d * j + N; - if ((!v || v(this._convertFromCellCoord(N), this._convertFromCellCoord(j), this._convertFromCellCoord(N + 1), this._convertFromCellCoord(j + 1))) && p.call(this, t, r, a, c, Z, f, g, v)) return - } - } - _convertFromCellCoord(t) { - return (t - this.padding) / this.scale - } - _convertToCellCoord(t) { - return Math.max(0, Math.min(this.d - 1, Math.floor(t * this.scale) + this.padding)) - } - toArrayBuffer() { - if (this.arrayBuffer) return this.arrayBuffer; - const t = this.cells, - r = 3 + this.cells.length + 1 + 1; - let a = 0; - for (let f = 0; f < this.cells.length; f++) a += this.cells[f].length; - const c = new Int32Array(r + a + this.keys.length + this.bboxes.length); - c[0] = this.extent, c[1] = this.n, c[2] = this.padding; - let p = r; - for (let f = 0; f < t.length; f++) { - const g = t[f]; - c[3 + f] = p, c.set(g, p), p += g.length - } - return c[3 + t.length] = p, c.set(this.keys, p), p += this.keys.length, c[3 + t.length + 1] = p, c.set(this.bboxes, p), p += this.bboxes.length, c.buffer - } - static serialize(t, r) { - const a = t.toArrayBuffer(); - return r && r.push(a), { - buffer: a - } - } - static deserialize(t) { - return new zo(t.buffer) - } - } - const Ta = {}; - - function Kt(i, t, r = {}) { - if (Ta[i]) throw new Error(`${i} is already registered.`); - Object.defineProperty(t, "_classRegistryKey", { - value: i, - writeable: !1 - }), Ta[i] = { - klass: t, - omit: r.omit || [], - shallow: r.shallow || [] - } - } - Kt("Object", Object), Kt("Set", Set), Kt("TransferableGridIndex", zo), Kt("Color", yr), Kt("Error", Error), Kt("AJAXError", K), Kt("ResolvedImage", Nn), Kt("StylePropertyFunction", Po), Kt("StyleExpression", Lc, { - omit: ["_evaluator"] - }), Kt("ZoomDependentExpression", Dc), Kt("ZoomConstantExpression", So), Kt("CompoundExpression", ca, { - omit: ["_evaluate"] - }); - for (const i in Os) Os[i]._classRegistryKey || Kt(`Expression_${i}`, Os[i]); - - function Uc(i) { - return i && typeof ArrayBuffer < "u" && (i instanceof ArrayBuffer || i.constructor && i.constructor.name === "ArrayBuffer") - } - - function xl(i) { - return i.$name || i.constructor._classRegistryKey - } - - function Zc(i) { - return !(function(t) { - if (t === null || typeof t != "object") return !1; - const r = xl(t); - return !(!r || r === "Object") - })(i) && (i == null || typeof i == "boolean" || typeof i == "number" || typeof i == "string" || i instanceof Boolean || i instanceof Number || i instanceof String || i instanceof Date || i instanceof RegExp || i instanceof Blob || i instanceof Error || Uc(i) || ar(i) || ArrayBuffer.isView(i) || i instanceof ImageData) - } - - function Gs(i, t) { - if (Zc(i)) return (Uc(i) || ar(i)) && t && t.push(i), ArrayBuffer.isView(i) && t && t.push(i.buffer), i instanceof ImageData && t && t.push(i.data.buffer), i; - if (Array.isArray(i)) { - const p = []; - for (const f of i) p.push(Gs(f, t)); - return p - } - if (typeof i != "object") throw new Error("can't serialize object of type " + typeof i); - const r = xl(i); - if (!r) throw new Error(`can't serialize object of unregistered class ${i.constructor.name}`); - if (!Ta[r]) throw new Error(`${r} is not registered.`); - const { - klass: a - } = Ta[r], c = a.serialize ? a.serialize(i, t) : {}; - if (a.serialize) { - if (t && c === t[t.length - 1]) throw new Error("statically serialized object won't survive transfer of $name property") - } else { - for (const p in i) { - if (!i.hasOwnProperty(p) || Ta[r].omit.indexOf(p) >= 0) continue; - const f = i[p]; - c[p] = Ta[r].shallow.indexOf(p) >= 0 ? f : Gs(f, t) - } - i instanceof Error && (c.message = i.message) - } - if (c.$name) throw new Error("$name property is reserved for worker serialization logic."); - return r !== "Object" && (c.$name = r), c - } - - function Cs(i) { - if (Zc(i)) return i; - if (Array.isArray(i)) return i.map(Cs); - if (typeof i != "object") throw new Error("can't deserialize object of type " + typeof i); - const t = xl(i) || "Object"; - if (!Ta[t]) throw new Error(`can't deserialize unregistered class ${t}`); - const { - klass: r - } = Ta[t]; - if (!r) throw new Error(`can't deserialize unregistered class ${t}`); - if (r.deserialize) return r.deserialize(i); - const a = Object.create(r.prototype); - for (const c of Object.keys(i)) { - if (c === "$name") continue; - const p = i[c]; - a[c] = Ta[t].shallow.indexOf(c) >= 0 ? p : Cs(p) - } - return a - } - class bl { - constructor() { - this.first = !0 - } - update(t, r) { - const a = Math.floor(t); - return this.first ? (this.first = !1, this.lastIntegerZoom = a, this.lastIntegerZoomTime = 0, this.lastZoom = t, this.lastFloorZoom = a, !0) : (this.lastFloorZoom > a ? (this.lastIntegerZoom = a + 1, this.lastIntegerZoomTime = r) : this.lastFloorZoom < a && (this.lastIntegerZoom = a, this.lastIntegerZoomTime = r), t !== this.lastZoom && (this.lastZoom = t, this.lastFloorZoom = a, !0)) - } - } - const si = { - "Latin-1 Supplement": i => i >= 128 && i <= 255, - "Hangul Jamo": i => i >= 4352 && i <= 4607, - Khmer: i => i >= 6016 && i <= 6143, - "General Punctuation": i => i >= 8192 && i <= 8303, - "Letterlike Symbols": i => i >= 8448 && i <= 8527, - "Number Forms": i => i >= 8528 && i <= 8591, - "Miscellaneous Technical": i => i >= 8960 && i <= 9215, - "Control Pictures": i => i >= 9216 && i <= 9279, - "Optical Character Recognition": i => i >= 9280 && i <= 9311, - "Enclosed Alphanumerics": i => i >= 9312 && i <= 9471, - "Geometric Shapes": i => i >= 9632 && i <= 9727, - "Miscellaneous Symbols": i => i >= 9728 && i <= 9983, - "Miscellaneous Symbols and Arrows": i => i >= 11008 && i <= 11263, - "Ideographic Description Characters": i => i >= 12272 && i <= 12287, - "CJK Symbols and Punctuation": i => i >= 12288 && i <= 12351, - Hiragana: i => i >= 12352 && i <= 12447, - Katakana: i => i >= 12448 && i <= 12543, - Kanbun: i => i >= 12688 && i <= 12703, - "CJK Strokes": i => i >= 12736 && i <= 12783, - "Enclosed CJK Letters and Months": i => i >= 12800 && i <= 13055, - "CJK Compatibility": i => i >= 13056 && i <= 13311, - "Yijing Hexagram Symbols": i => i >= 19904 && i <= 19967, - "CJK Unified Ideographs": i => i >= 19968 && i <= 40959, - "Hangul Syllables": i => i >= 44032 && i <= 55215, - "Private Use Area": i => i >= 57344 && i <= 63743, - "Vertical Forms": i => i >= 65040 && i <= 65055, - "CJK Compatibility Forms": i => i >= 65072 && i <= 65103, - "Small Form Variants": i => i >= 65104 && i <= 65135, - "Halfwidth and Fullwidth Forms": i => i >= 65280 && i <= 65519 - }; - - function wl(i) { - for (const t of i) - if (Gc(t.charCodeAt(0))) return !0; - return !1 - } - - function yp(i) { - for (const t of i) - if (!Xh(t.charCodeAt(0))) return !1; - return !0 - } - - function Tl(i) { - const t = i.map((r => { - try { - return new RegExp(`\\p{sc=${r}}`, "u").source - } catch { - return null - } - })).filter((r => r)); - return new RegExp(t.join("|"), "u") - } - const xp = Tl(["Arab", "Dupl", "Mong", "Ougr", "Syrc"]); - - function Xh(i) { - return !xp.test(String.fromCodePoint(i)) - } - const $c = Tl(["Bopo", "Hani", "Hira", "Kana", "Kits", "Nshu", "Tang", "Yiii"]); - - function Gc(i) { - return !(i !== 746 && i !== 747 && (i < 4352 || !(si["CJK Compatibility Forms"](i) && !(i >= 65097 && i <= 65103) || si["CJK Compatibility"](i) || si["CJK Strokes"](i) || !(!si["CJK Symbols and Punctuation"](i) || i >= 12296 && i <= 12305 || i >= 12308 && i <= 12319 || i === 12336) || si["Enclosed CJK Letters and Months"](i) || si["Ideographic Description Characters"](i) || si.Kanbun(i) || si.Katakana(i) && i !== 12540 || !(!si["Halfwidth and Fullwidth Forms"](i) || i === 65288 || i === 65289 || i === 65293 || i >= 65306 && i <= 65310 || i === 65339 || i === 65341 || i === 65343 || i >= 65371 && i <= 65503 || i === 65507 || i >= 65512 && i <= 65519) || !(!si["Small Form Variants"](i) || i >= 65112 && i <= 65118 || i >= 65123 && i <= 65126) || si["Vertical Forms"](i) || si["Yijing Hexagram Symbols"](i) || new RegExp("\\p{sc=Cans}", "u").test(String.fromCodePoint(i)) || new RegExp("\\p{sc=Hang}", "u").test(String.fromCodePoint(i)) || $c.test(String.fromCodePoint(i))))) - } - - function Kh(i) { - return !(Gc(i) || (function(t) { - return !!(si["Latin-1 Supplement"](t) && (t === 167 || t === 169 || t === 174 || t === 177 || t === 188 || t === 189 || t === 190 || t === 215 || t === 247) || si["General Punctuation"](t) && (t === 8214 || t === 8224 || t === 8225 || t === 8240 || t === 8241 || t === 8251 || t === 8252 || t === 8258 || t === 8263 || t === 8264 || t === 8265 || t === 8273) || si["Letterlike Symbols"](t) || si["Number Forms"](t) || si["Miscellaneous Technical"](t) && (t >= 8960 && t <= 8967 || t >= 8972 && t <= 8991 || t >= 8996 && t <= 9e3 || t === 9003 || t >= 9085 && t <= 9114 || t >= 9150 && t <= 9165 || t === 9167 || t >= 9169 && t <= 9179 || t >= 9186 && t <= 9215) || si["Control Pictures"](t) && t !== 9251 || si["Optical Character Recognition"](t) || si["Enclosed Alphanumerics"](t) || si["Geometric Shapes"](t) || si["Miscellaneous Symbols"](t) && !(t >= 9754 && t <= 9759) || si["Miscellaneous Symbols and Arrows"](t) && (t >= 11026 && t <= 11055 || t >= 11088 && t <= 11097 || t >= 11192 && t <= 11243) || si["CJK Symbols and Punctuation"](t) || si.Katakana(t) || si["Private Use Area"](t) || si["CJK Compatibility Forms"](t) || si["Small Form Variants"](t) || si["Halfwidth and Fullwidth Forms"](t) || t === 8734 || t === 8756 || t === 8757 || t >= 9984 && t <= 10087 || t >= 10102 && t <= 10131 || t === 65532 || t === 65533) - })(i)) - } - const Yh = Tl(["Adlm", "Arab", "Armi", "Avst", "Chrs", "Cprt", "Egyp", "Elym", "Gara", "Hatr", "Hebr", "Hung", "Khar", "Lydi", "Mand", "Mani", "Mend", "Merc", "Mero", "Narb", "Nbat", "Nkoo", "Orkh", "Palm", "Phli", "Phlp", "Phnx", "Prti", "Rohg", "Samr", "Sarb", "Sogo", "Syrc", "Thaa", "Todr", "Yezi"]); - - function Hc(i) { - return Yh.test(String.fromCodePoint(i)) - } - - function Jh(i, t) { - return !(!t && Hc(i) || i >= 2304 && i <= 3583 || i >= 3840 && i <= 4255 || si.Khmer(i)) - } - - function Qh(i) { - for (const t of i) - if (Hc(t.charCodeAt(0))) return !0; - return !1 - } - const Ca = new class { - constructor() { - this.TIMEOUT = 5e3, this.applyArabicShaping = null, this.processBidirectionalText = null, this.processStyledBidirectionalText = null, this.pluginStatus = "unavailable", this.pluginURL = null, this.loadScriptResolve = () => {} - } - setState(i) { - this.pluginStatus = i.pluginStatus, this.pluginURL = i.pluginURL - } - getState() { - return { - pluginStatus: this.pluginStatus, - pluginURL: this.pluginURL - } - } - setMethods(i) { - if (Ca.isParsed()) throw new Error("RTL text plugin already registered."); - this.applyArabicShaping = i.applyArabicShaping, this.processBidirectionalText = i.processBidirectionalText, this.processStyledBidirectionalText = i.processStyledBidirectionalText, this.loadScriptResolve() - } - isParsed() { - return this.applyArabicShaping != null && this.processBidirectionalText != null && this.processStyledBidirectionalText != null - } - getRTLTextPluginStatus() { - return this.pluginStatus - } - syncState(i, t) { - return o(this, void 0, void 0, (function*() { - if (this.isParsed()) return this.getState(); - if (i.pluginStatus !== "loading") return this.setState(i), i; - const r = i.pluginURL, - a = new Promise((p => { - this.loadScriptResolve = p - })); - t(r); - const c = new Promise((p => setTimeout((() => p()), this.TIMEOUT))); - if (yield Promise.race([a, c]), this.isParsed()) { - const p = { - pluginStatus: "loaded", - pluginURL: r - }; - return this.setState(p), p - } - throw this.setState({ - pluginStatus: "error", - pluginURL: "" - }), new Error(`RTL Text Plugin failed to import scripts from ${r}`) - })) - } - }; - class Oi { - constructor(t, r) { - this.zoom = t, r ? (this.now = r.now || 0, this.fadeDuration = r.fadeDuration || 0, this.zoomHistory = r.zoomHistory || new bl, this.transition = r.transition || {}, this.globalState = r.globalState || {}) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new bl, this.transition = {}, this.globalState = {}) - } - isSupportedScript(t) { - return (function(r, a) { - for (const c of r) - if (!Jh(c.charCodeAt(0), a)) return !1; - return !0 - })(t, Ca.getRTLTextPluginStatus() === "loaded") - } - crossFadingFactor() { - return this.fadeDuration === 0 ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1) - } - getCrossfadeParameters() { - const t = this.zoom, - r = t - Math.floor(t), - a = this.crossFadingFactor(); - return t > this.zoomHistory.lastIntegerZoom ? { - fromScale: 2, - toScale: 1, - t: r + (1 - r) * a - } : { - fromScale: .5, - toScale: 1, - t: 1 - (1 - a) * r - } - } - } - class Hs { - constructor(t, r) { - this.property = t, this.value = r, this.expression = (function(a, c) { - if (To(a)) return new Po(a, c); - if (fl(a)) { - const p = Fh(a, c); - if (p.result === "error") throw new Error(p.value.map((f => `${f.key}: ${f.message}`)).join(", ")); - return p.value - } { - let p = a; - return c.type === "color" && typeof a == "string" ? p = yr.parse(a) : c.type !== "padding" || typeof a != "number" && !Array.isArray(a) ? c.type !== "numberArray" || typeof a != "number" && !Array.isArray(a) ? c.type !== "colorArray" || typeof a != "string" && !Array.isArray(a) ? c.type === "variableAnchorOffsetCollection" && Array.isArray(a) ? p = un.parse(a) : c.type === "projectionDefinition" && typeof a == "string" && (p = hn.parse(a)) : p = Ni.parse(a) : p = cn.parse(a) : p = Ki.parse(a), { - globalStateRefs: new Set, - kind: "constant", - evaluate: () => p - } - } - })(r === void 0 ? t.specification.default : r, t.specification) - } - isDataDriven() { - return this.expression.kind === "source" || this.expression.kind === "composite" - } - getGlobalStateRefs() { - return this.expression.globalStateRefs || new Set - } - possiblyEvaluate(t, r, a) { - return this.property.possiblyEvaluate(this, t, r, a) - } - } - class Wc { - constructor(t) { - this.property = t, this.value = new Hs(t, void 0) - } - transitioned(t, r) { - return new Xc(this.property, this.value, r, pt({}, t.transition, this.transition), t.now) - } - untransitioned() { - return new Xc(this.property, this.value, null, {}, 0) - } - } - class ed { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultTransitionablePropertyValues) - } - getValue(t) { - return wt(this._values[t].value.value) - } - setValue(t, r) { - Object.prototype.hasOwnProperty.call(this._values, t) || (this._values[t] = new Wc(this._values[t].property)), this._values[t].value = new Hs(this._values[t].property, r === null ? void 0 : wt(r)) - } - getTransition(t) { - return wt(this._values[t].transition) - } - setTransition(t, r) { - Object.prototype.hasOwnProperty.call(this._values, t) || (this._values[t] = new Wc(this._values[t].property)), this._values[t].transition = wt(r) || void 0 - } - serialize() { - const t = {}; - for (const r of Object.keys(this._values)) { - const a = this.getValue(r); - a !== void 0 && (t[r] = a); - const c = this.getTransition(r); - c !== void 0 && (t[`${r}-transition`] = c) - } - return t - } - transitioned(t, r) { - const a = new Kc(this._properties); - for (const c of Object.keys(this._values)) a._values[c] = this._values[c].transitioned(t, r._values[c]); - return a - } - untransitioned() { - const t = new Kc(this._properties); - for (const r of Object.keys(this._values)) t._values[r] = this._values[r].untransitioned(); - return t - } - } - class Xc { - constructor(t, r, a, c, p) { - this.property = t, this.value = r, this.begin = p + c.delay || 0, this.end = this.begin + c.duration || 0, t.specification.transition && (c.delay || c.duration) && (this.prior = a) - } - possiblyEvaluate(t, r, a) { - const c = t.now || 0, - p = this.value.possiblyEvaluate(t, r, a), - f = this.prior; - if (f) { - if (c > this.end) return this.prior = null, p; - if (this.value.isDataDriven()) return this.prior = null, p; - if (c < this.begin) return f.possiblyEvaluate(t, r, a); - { - const g = (c - this.begin) / (this.end - this.begin); - return this.property.interpolate(f.possiblyEvaluate(t, r, a), p, We(g)) - } - } - return p - } - } - class Kc { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultTransitioningPropertyValues) - } - possiblyEvaluate(t, r, a) { - const c = new Cl(this._properties); - for (const p of Object.keys(this._values)) c._values[p] = this._values[p].possiblyEvaluate(t, r, a); - return c - } - hasTransition() { - for (const t of Object.keys(this._values)) - if (this._values[t].prior) return !0; - return !1 - } - } - class td { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultPropertyValues) - } - hasValue(t) { - return this._values[t].value !== void 0 - } - getValue(t) { - return wt(this._values[t].value) - } - setValue(t, r) { - this._values[t] = new Hs(this._values[t].property, r === null ? void 0 : wt(r)) - } - serialize() { - const t = {}; - for (const r of Object.keys(this._values)) { - const a = this.getValue(r); - a !== void 0 && (t[r] = a) - } - return t - } - possiblyEvaluate(t, r, a) { - const c = new Cl(this._properties); - for (const p of Object.keys(this._values)) c._values[p] = this._values[p].possiblyEvaluate(t, r, a); - return c - } - } - class Na { - constructor(t, r, a) { - this.property = t, this.value = r, this.parameters = a - } - isConstant() { - return this.value.kind === "constant" - } - constantOr(t) { - return this.value.kind === "constant" ? this.value.value : t - } - evaluate(t, r, a, c) { - return this.property.evaluate(this.value, this.parameters, t, r, a, c) - } - } - class Cl { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultPossiblyEvaluatedValues) - } - get(t) { - return this._values[t] - } - } - class hr { - constructor(t) { - this.specification = t - } - possiblyEvaluate(t, r) { - if (t.isDataDriven()) throw new Error("Value should not be data driven"); - return t.expression.evaluate(r) - } - interpolate(t, r, a) { - const c = Fa[this.specification.type]; - return c ? c(t, r, a) : t - } - } - class Rr { - constructor(t, r) { - this.specification = t, this.overrides = r - } - possiblyEvaluate(t, r, a, c) { - return new Na(this, t.expression.kind === "constant" || t.expression.kind === "camera" ? { - kind: "constant", - value: t.expression.evaluate(r, null, {}, a, c) - } : t.expression, r) - } - interpolate(t, r, a) { - if (t.value.kind !== "constant" || r.value.kind !== "constant") return t; - if (t.value.value === void 0 || r.value.value === void 0) return new Na(this, { - kind: "constant", - value: void 0 - }, t.parameters); - const c = Fa[this.specification.type]; - if (c) { - const p = c(t.value.value, r.value.value, a); - return new Na(this, { - kind: "constant", - value: p - }, t.parameters) - } - return t - } - evaluate(t, r, a, c, p, f) { - return t.kind === "constant" ? t.value : t.evaluate(r, a, c, p, f) - } - } - class Sl extends Rr { - possiblyEvaluate(t, r, a, c) { - if (t.value === void 0) return new Na(this, { - kind: "constant", - value: void 0 - }, r); - if (t.expression.kind === "constant") { - const p = t.expression.evaluate(r, null, {}, a, c), - f = t.property.specification.type === "resolvedImage" && typeof p != "string" ? p.name : p, - g = this._calculate(f, f, f, r); - return new Na(this, { - kind: "constant", - value: g - }, r) - } - if (t.expression.kind === "camera") { - const p = this._calculate(t.expression.evaluate({ - zoom: r.zoom - 1 - }), t.expression.evaluate({ - zoom: r.zoom - }), t.expression.evaluate({ - zoom: r.zoom + 1 - }), r); - return new Na(this, { - kind: "constant", - value: p - }, r) - } - return new Na(this, t.expression, r) - } - evaluate(t, r, a, c, p, f) { - if (t.kind === "source") { - const g = t.evaluate(r, a, c, p, f); - return this._calculate(g, g, g, r) - } - return t.kind === "composite" ? this._calculate(t.evaluate({ - zoom: Math.floor(r.zoom) - 1 - }, a, c), t.evaluate({ - zoom: Math.floor(r.zoom) - }, a, c), t.evaluate({ - zoom: Math.floor(r.zoom) + 1 - }, a, c), r) : t.value - } - _calculate(t, r, a, c) { - return c.zoom > c.zoomHistory.lastIntegerZoom ? { - from: t, - to: r - } : { - from: a, - to: r - } - } - interpolate(t) { - return t - } - } - class ns { - constructor(t) { - this.specification = t - } - possiblyEvaluate(t, r, a, c) { - if (t.value !== void 0) { - if (t.expression.kind === "constant") { - const p = t.expression.evaluate(r, null, {}, a, c); - return this._calculate(p, p, p, r) - } - return this._calculate(t.expression.evaluate(new Oi(Math.floor(r.zoom - 1), r)), t.expression.evaluate(new Oi(Math.floor(r.zoom), r)), t.expression.evaluate(new Oi(Math.floor(r.zoom + 1), r)), r) - } - } - _calculate(t, r, a, c) { - return c.zoom > c.zoomHistory.lastIntegerZoom ? { - from: t, - to: r - } : { - from: a, - to: r - } - } - interpolate(t) { - return t - } - } - class Pl { - constructor(t) { - this.specification = t - } - possiblyEvaluate(t, r, a, c) { - return !!t.expression.evaluate(r, null, {}, a, c) - } - interpolate() { - return !1 - } - } - class jn { - constructor(t) { - this.properties = t, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = []; - for (const r in t) { - const a = t[r]; - a.specification.overridable && this.overridableProperties.push(r); - const c = this.defaultPropertyValues[r] = new Hs(a, void 0), - p = this.defaultTransitionablePropertyValues[r] = new Wc(a); - this.defaultTransitioningPropertyValues[r] = p.untransitioned(), this.defaultPossiblyEvaluatedValues[r] = c.possiblyEvaluate({}) - } - } - } - Kt("DataDrivenProperty", Rr), Kt("DataConstantProperty", hr), Kt("CrossFadedDataDrivenProperty", Sl), Kt("CrossFadedProperty", ns), Kt("ColorRampProperty", Pl); - const rd = "-transition"; - class ha extends Ot { - constructor(t, r) { - if (super(), this.id = t.id, this.type = t.type, this._featureFilter = { - filter: () => !0, - needGeometry: !1, - getGlobalStateRefs: () => new Set - }, t.type !== "custom" && (this.metadata = t.metadata, this.minzoom = t.minzoom, this.maxzoom = t.maxzoom, t.type !== "background" && (this.source = t.source, this.sourceLayer = t["source-layer"], this.filter = t.filter, this._featureFilter = bs(t.filter)), r.layout && (this._unevaluatedLayout = new td(r.layout)), r.paint)) { - this._transitionablePaint = new ed(r.paint); - for (const a in t.paint) this.setPaintProperty(a, t.paint[a], { - validate: !1 - }); - for (const a in t.layout) this.setLayoutProperty(a, t.layout[a], { - validate: !1 - }); - this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new Cl(r.paint) - } - } - setFilter(t) { - this.filter = t, this._featureFilter = bs(t) - } - getCrossfadeParameters() { - return this._crossfadeParameters - } - getLayoutProperty(t) { - return t === "visibility" ? this.visibility : this._unevaluatedLayout.getValue(t) - } - getLayoutAffectingGlobalStateRefs() { - const t = new Set; - if (this._unevaluatedLayout) - for (const r in this._unevaluatedLayout._values) { - const a = this._unevaluatedLayout._values[r]; - for (const c of a.getGlobalStateRefs()) t.add(c) - } - for (const r of this._featureFilter.getGlobalStateRefs()) t.add(r); - return t - } - setLayoutProperty(t, r, a = {}) { - r != null && this._validate(vp, `layers.${this.id}.layout.${t}`, t, r, a) || (t !== "visibility" ? this._unevaluatedLayout.setValue(t, r) : this.visibility = r) - } - getPaintProperty(t) { - return t.endsWith(rd) ? this._transitionablePaint.getTransition(t.slice(0, -11)) : this._transitionablePaint.getValue(t) - } - setPaintProperty(t, r, a = {}) { - if (r != null && this._validate(gp, `layers.${this.id}.paint.${t}`, t, r, a)) return !1; - if (t.endsWith(rd)) return this._transitionablePaint.setTransition(t.slice(0, -11), r || void 0), !1; - { - const c = this._transitionablePaint._values[t], - p = c.property.specification["property-type"] === "cross-faded-data-driven", - f = c.value.isDataDriven(), - g = c.value; - this._transitionablePaint.setValue(t, r), this._handleSpecialPaintPropertyUpdate(t); - const v = this._transitionablePaint._values[t].value; - return v.isDataDriven() || f || p || this._handleOverridablePaintPropertyUpdate(t, g, v) - } - } - _handleSpecialPaintPropertyUpdate(t) {} - _handleOverridablePaintPropertyUpdate(t, r, a) { - return !1 - } - isHidden(t) { - return !!(this.minzoom && t < this.minzoom) || !!(this.maxzoom && t >= this.maxzoom) || this.visibility === "none" - } - updateTransitions(t) { - this._transitioningPaint = this._transitionablePaint.transitioned(t, this._transitioningPaint) - } - hasTransition() { - return this._transitioningPaint.hasTransition() - } - recalculate(t, r) { - t.getCrossfadeParameters && (this._crossfadeParameters = t.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t, void 0, r)), this.paint = this._transitioningPaint.possiblyEvaluate(t, void 0, r) - } - serialize() { - const t = { - id: this.id, - type: this.type, - source: this.source, - "source-layer": this.sourceLayer, - metadata: this.metadata, - minzoom: this.minzoom, - maxzoom: this.maxzoom, - filter: this.filter, - layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), - paint: this._transitionablePaint && this._transitionablePaint.serialize() - }; - return this.visibility && (t.layout = t.layout || {}, t.layout.visibility = this.visibility), bt(t, ((r, a) => !(r === void 0 || a === "layout" && !Object.keys(r).length || a === "paint" && !Object.keys(r).length))) - } - _validate(t, r, a, c, p = {}) { - return (!p || p.validate !== !1) && Eo(this, t.call($s, { - key: r, - layerType: this.type, - objectKey: a, - value: c, - styleSpec: xe, - style: { - glyphs: !0, - sprite: !0 - } - })) - } - is3D() { - return !1 - } - isTileClipped() { - return !1 - } - hasOffscreenPass() { - return !1 - } - resize() {} - isStateDependent() { - for (const t in this.paint._values) { - const r = this.paint.get(t); - if (r instanceof Na && rs(r.property.specification) && (r.value.kind === "source" || r.value.kind === "composite") && r.value.isStateDependent) return !0 - } - return !1 - } - } - const bp = { - Int8: Int8Array, - Uint8: Uint8Array, - Int16: Int16Array, - Uint16: Uint16Array, - Int32: Int32Array, - Uint32: Uint32Array, - Float32: Float32Array - }; - class Lo { - constructor(t, r) { - this._structArray = t, this._pos1 = r * 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(t, r) { - return t._trim(), r && (t.isTransferred = !0, r.push(t.arrayBuffer)), { - length: t.length, - arrayBuffer: t.arrayBuffer - } - } - static deserialize(t) { - const r = Object.create(this.prototype); - return r.arrayBuffer = t.arrayBuffer, r.length = t.length, r.capacity = t.arrayBuffer.byteLength / r.bytesPerElement, r._refreshViews(), r - } - _trim() { - this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews()) - } - clear() { - this.length = 0 - } - resize(t) { - this.reserve(t), this.length = t - } - reserve(t) { - if (t > this.capacity) { - this.capacity = Math.max(t, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement); - const r = this.uint8; - this._refreshViews(), r && this.uint8.set(r) - } - } - _refreshViews() { - throw new Error("_refreshViews() must be implemented by each concrete StructArray layout") - } - } - - function Hi(i, t = 1) { - let r = 0, - a = 0; - return { - members: i.map((c => { - const p = bp[c.type].BYTES_PER_ELEMENT, - f = r = Il(r, Math.max(t, p)), - g = c.components || 1; - return a = Math.max(a, p), r += p * g, { - name: c.name, - type: c.type, - components: g, - offset: f - } - })), - size: Il(r, Math.max(a, t)), - alignment: t - } - } - - function Il(i, t) { - return Math.ceil(i / t) * t - } - class Ws extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r) { - const a = this.length; - return this.resize(a + 1), this.emplace(a, t, r) - } - emplace(t, r, a) { - const c = 2 * t; - return this.int16[c + 0] = r, this.int16[c + 1] = a, t - } - } - Ws.prototype.bytesPerElement = 4, Kt("StructArrayLayout2i4", Ws); - class Xs extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.int16[p + 0] = r, this.int16[p + 1] = a, this.int16[p + 2] = c, t - } - } - Xs.prototype.bytesPerElement = 6, Kt("StructArrayLayout3i6", Xs); - class Yc extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c) { - const p = this.length; - return this.resize(p + 1), this.emplace(p, t, r, a, c) - } - emplace(t, r, a, c, p) { - const f = 4 * t; - return this.int16[f + 0] = r, this.int16[f + 1] = a, this.int16[f + 2] = c, this.int16[f + 3] = p, t - } - } - Yc.prototype.bytesPerElement = 8, Kt("StructArrayLayout4i8", Yc); - class Ks extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 6 * t; - return this.int16[v + 0] = r, this.int16[v + 1] = a, this.int16[v + 2] = c, this.int16[v + 3] = p, this.int16[v + 4] = f, this.int16[v + 5] = g, t - } - } - Ks.prototype.bytesPerElement = 12, Kt("StructArrayLayout2i4i12", Ks); - class Ss extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 4 * t, - S = 8 * t; - return this.int16[v + 0] = r, this.int16[v + 1] = a, this.uint8[S + 4] = c, this.uint8[S + 5] = p, this.uint8[S + 6] = f, this.uint8[S + 7] = g, t - } - } - Ss.prototype.bytesPerElement = 8, Kt("StructArrayLayout2i4ub8", Ss); - class Do extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r) { - const a = this.length; - return this.resize(a + 1), this.emplace(a, t, r) - } - emplace(t, r, a) { - const c = 2 * t; - return this.float32[c + 0] = r, this.float32[c + 1] = a, t - } - } - Do.prototype.bytesPerElement = 8, Kt("StructArrayLayout2f8", Do); - class Ml extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f, g, v, S, I) { - const E = this.length; - return this.resize(E + 1), this.emplace(E, t, r, a, c, p, f, g, v, S, I) - } - emplace(t, r, a, c, p, f, g, v, S, I, E) { - const R = 10 * t; - return this.uint16[R + 0] = r, this.uint16[R + 1] = a, this.uint16[R + 2] = c, this.uint16[R + 3] = p, this.uint16[R + 4] = f, this.uint16[R + 5] = g, this.uint16[R + 6] = v, this.uint16[R + 7] = S, this.uint16[R + 8] = I, this.uint16[R + 9] = E, t - } - } - Ml.prototype.bytesPerElement = 20, Kt("StructArrayLayout10ui20", Ml); - class Ps extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f, g, v, S, I, E, R) { - const N = this.length; - return this.resize(N + 1), this.emplace(N, t, r, a, c, p, f, g, v, S, I, E, R) - } - emplace(t, r, a, c, p, f, g, v, S, I, E, R, N) { - const j = 12 * t; - return this.int16[j + 0] = r, this.int16[j + 1] = a, this.int16[j + 2] = c, this.int16[j + 3] = p, this.uint16[j + 4] = f, this.uint16[j + 5] = g, this.uint16[j + 6] = v, this.uint16[j + 7] = S, this.int16[j + 8] = I, this.int16[j + 9] = E, this.int16[j + 10] = R, this.int16[j + 11] = N, t - } - } - Ps.prototype.bytesPerElement = 24, Kt("StructArrayLayout4i4ui4i24", Ps); - class Jc extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.float32[p + 0] = r, this.float32[p + 1] = a, this.float32[p + 2] = c, t - } - } - Jc.prototype.bytesPerElement = 12, Kt("StructArrayLayout3f12", Jc); - class Qc extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer) - } - emplaceBack(t) { - const r = this.length; - return this.resize(r + 1), this.emplace(r, t) - } - emplace(t, r) { - return this.uint32[1 * t + 0] = r, t - } - } - Qc.prototype.bytesPerElement = 4, Kt("StructArrayLayout1ul4", Qc); - class Al 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(t, r, a, c, p, f, g, v, S) { - const I = this.length; - return this.resize(I + 1), this.emplace(I, t, r, a, c, p, f, g, v, S) - } - emplace(t, r, a, c, p, f, g, v, S, I) { - const E = 10 * t, - R = 5 * t; - return this.int16[E + 0] = r, this.int16[E + 1] = a, this.int16[E + 2] = c, this.int16[E + 3] = p, this.int16[E + 4] = f, this.int16[E + 5] = g, this.uint32[R + 3] = v, this.uint16[E + 8] = S, this.uint16[E + 9] = I, t - } - } - Al.prototype.bytesPerElement = 20, Kt("StructArrayLayout6i1ul2ui20", Al); - class eu extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 6 * t; - return this.int16[v + 0] = r, this.int16[v + 1] = a, this.int16[v + 2] = c, this.int16[v + 3] = p, this.int16[v + 4] = f, this.int16[v + 5] = g, t - } - } - eu.prototype.bytesPerElement = 12, Kt("StructArrayLayout2i2i2i12", eu); - class h extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p) { - const f = this.length; - return this.resize(f + 1), this.emplace(f, t, r, a, c, p) - } - emplace(t, r, a, c, p, f) { - const g = 4 * t, - v = 8 * t; - return this.float32[g + 0] = r, this.float32[g + 1] = a, this.float32[g + 2] = c, this.int16[v + 6] = p, this.int16[v + 7] = f, t - } - } - h.prototype.bytesPerElement = 16, Kt("StructArrayLayout2f1f2i16", h); - class e extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 16 * t, - S = 4 * t, - I = 8 * t; - return this.uint8[v + 0] = r, this.uint8[v + 1] = a, this.float32[S + 1] = c, this.float32[S + 2] = p, this.int16[I + 6] = f, this.int16[I + 7] = g, t - } - } - e.prototype.bytesPerElement = 16, Kt("StructArrayLayout2ub2f2i16", e); - class n extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.uint16[p + 0] = r, this.uint16[p + 1] = a, this.uint16[p + 2] = c, t - } - } - n.prototype.bytesPerElement = 6, Kt("StructArrayLayout3ui6", n); - class s 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(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae) { - const ze = this.length; - return this.resize(ze + 1), this.emplace(ze, t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae) - } - emplace(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze) { - const me = 24 * t, - be = 12 * t, - Ve = 48 * t; - return this.int16[me + 0] = r, this.int16[me + 1] = a, this.uint16[me + 2] = c, this.uint16[me + 3] = p, this.uint32[be + 2] = f, this.uint32[be + 3] = g, this.uint32[be + 4] = v, this.uint16[me + 10] = S, this.uint16[me + 11] = I, this.uint16[me + 12] = E, this.float32[be + 7] = R, this.float32[be + 8] = N, this.uint8[Ve + 36] = j, this.uint8[Ve + 37] = Z, this.uint8[Ve + 38] = Y, this.uint32[be + 10] = ae, this.int16[me + 22] = ze, t - } - } - s.prototype.bytesPerElement = 48, Kt("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", s); - class u 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(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me, be, Ve, rt, St, $t, Bt, Ut, pr, Vt) { - const Zt = this.length; - return this.resize(Zt + 1), this.emplace(Zt, t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me, be, Ve, rt, St, $t, Bt, Ut, pr, Vt) - } - emplace(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me, be, Ve, rt, St, $t, Bt, Ut, pr, Vt, Zt) { - const mt = 32 * t, - Br = 16 * t; - return this.int16[mt + 0] = r, this.int16[mt + 1] = a, this.int16[mt + 2] = c, this.int16[mt + 3] = p, this.int16[mt + 4] = f, this.int16[mt + 5] = g, this.int16[mt + 6] = v, this.int16[mt + 7] = S, this.uint16[mt + 8] = I, this.uint16[mt + 9] = E, this.uint16[mt + 10] = R, this.uint16[mt + 11] = N, this.uint16[mt + 12] = j, this.uint16[mt + 13] = Z, this.uint16[mt + 14] = Y, this.uint16[mt + 15] = ae, this.uint16[mt + 16] = ze, this.uint16[mt + 17] = me, this.uint16[mt + 18] = be, this.uint16[mt + 19] = Ve, this.uint16[mt + 20] = rt, this.uint16[mt + 21] = St, this.uint16[mt + 22] = $t, this.uint32[Br + 12] = Bt, this.float32[Br + 13] = Ut, this.float32[Br + 14] = pr, this.uint16[mt + 30] = Vt, this.uint16[mt + 31] = Zt, t - } - } - u.prototype.bytesPerElement = 64, Kt("StructArrayLayout8i15ui1ul2f2ui64", u); - class d extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t) { - const r = this.length; - return this.resize(r + 1), this.emplace(r, t) - } - emplace(t, r) { - return this.float32[1 * t + 0] = r, t - } - } - d.prototype.bytesPerElement = 4, Kt("StructArrayLayout1f4", d); - class m extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.uint16[6 * t + 0] = r, this.float32[p + 1] = a, this.float32[p + 2] = c, t - } - } - m.prototype.bytesPerElement = 12, Kt("StructArrayLayout1ui2f12", m); - class y extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 4 * t; - return this.uint32[2 * t + 0] = r, this.uint16[p + 2] = a, this.uint16[p + 3] = c, t - } - } - y.prototype.bytesPerElement = 8, Kt("StructArrayLayout1ul2ui8", y); - class w extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r) { - const a = this.length; - return this.resize(a + 1), this.emplace(a, t, r) - } - emplace(t, r, a) { - const c = 2 * t; - return this.uint16[c + 0] = r, this.uint16[c + 1] = a, t - } - } - w.prototype.bytesPerElement = 4, Kt("StructArrayLayout2ui4", w); - class P extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t) { - const r = this.length; - return this.resize(r + 1), this.emplace(r, t) - } - emplace(t, r) { - return this.uint16[1 * t + 0] = r, t - } - } - P.prototype.bytesPerElement = 2, Kt("StructArrayLayout1ui2", P); - class M extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c) { - const p = this.length; - return this.resize(p + 1), this.emplace(p, t, r, a, c) - } - emplace(t, r, a, c, p) { - const f = 4 * t; - return this.float32[f + 0] = r, this.float32[f + 1] = a, this.float32[f + 2] = c, this.float32[f + 3] = p, t - } - } - M.prototype.bytesPerElement = 16, Kt("StructArrayLayout4f16", M); - class D extends Lo { - 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 $(this.anchorPointX, this.anchorPointY) - } - } - D.prototype.size = 20; - class z extends Al { - get(t) { - return new D(this, t) - } - } - Kt("CollisionBoxArray", z); - class B extends Lo { - 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(t) { - this._structArray.uint8[this._pos1 + 37] = t - } - get hidden() { - return this._structArray.uint8[this._pos1 + 38] - } - set hidden(t) { - this._structArray.uint8[this._pos1 + 38] = t - } - get crossTileID() { - return this._structArray.uint32[this._pos4 + 10] - } - set crossTileID(t) { - this._structArray.uint32[this._pos4 + 10] = t - } - get associatedIconIndex() { - return this._structArray.int16[this._pos2 + 22] - } - } - B.prototype.size = 48; - class U extends s { - get(t) { - return new B(this, t) - } - } - Kt("PlacedSymbolArray", U); - class ee extends Lo { - 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(t) { - this._structArray.uint32[this._pos4 + 12] = t - } - 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] - } - } - ee.prototype.size = 64; - class J extends u { - get(t) { - return new ee(this, t) - } - } - Kt("SymbolInstanceArray", J); - class re extends d { - getoffsetX(t) { - return this.float32[1 * t + 0] - } - } - Kt("GlyphOffsetArray", re); - class se extends Xs { - getx(t) { - return this.int16[3 * t + 0] - } - gety(t) { - return this.int16[3 * t + 1] - } - gettileUnitDistanceFromAnchor(t) { - return this.int16[3 * t + 2] - } - } - Kt("SymbolLineVertexArray", se); - class de extends Lo { - 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] - } - } - de.prototype.size = 12; - class ue extends m { - get(t) { - return new de(this, t) - } - } - Kt("TextAnchorOffsetArray", ue); - class ge extends Lo { - 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] - } - } - ge.prototype.size = 8; - class Te extends y { - get(t) { - return new ge(this, t) - } - } - Kt("FeatureIndexArray", Te); - class he extends Ws {} - class De extends Ws {} - class He extends Ws {} - class je extends Ks {} - class qe extends Ss {} - class $e extends Do {} - class Rt extends Ml {} - class Nt extends Ps {} - class yt extends Jc {} - class sr extends Qc {} - class Xr extends eu {} - class xi extends e {} - class ki extends n {} - class Pi extends w {} - const ji = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }], 4), - { - members: Ui - } = ji; - class Wr { - constructor(t = []) { - this._forceNewSegmentOnNextPrepare = !1, this.segments = t - } - prepareSegment(t, r, a, c) { - const p = this.segments[this.segments.length - 1]; - return t > Wr.MAX_VERTEX_ARRAY_LENGTH && Lt(`Max vertices per segment is ${Wr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${Wr.MAX_VERTEX_ARRAY_LENGTH} vertices.`), this._forceNewSegmentOnNextPrepare || !p || p.vertexLength + t > Wr.MAX_VERTEX_ARRAY_LENGTH || p.sortKey !== c ? this.createNewSegment(r, a, c) : p - } - createNewSegment(t, r, a) { - const c = { - vertexOffset: t.length, - primitiveOffset: r.length, - vertexLength: 0, - primitiveLength: 0, - vaos: {} - }; - return a !== void 0 && (c.sortKey = a), this._forceNewSegmentOnNextPrepare = !1, this.segments.push(c), c - } - getOrCreateLatestSegment(t, r, a) { - return this.prepareSegment(0, t, r, a) - } - forceNewSegmentOnNextPrepare() { - this._forceNewSegmentOnNextPrepare = !0 - } - get() { - return this.segments - } - destroy() { - for (const t of this.segments) - for (const r in t.vaos) t.vaos[r].destroy() - } - static simpleSegment(t, r, a, c) { - return new Wr([{ - vertexOffset: t, - primitiveOffset: r, - vertexLength: a, - primitiveLength: c, - vaos: {}, - sortKey: 0 - }]) - } - } - - function Ei(i, t) { - return 256 * (i = xt(Math.floor(i), 0, 255)) + xt(Math.floor(t), 0, 255) - } - Wr.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, Kt("SegmentVector", Wr); - const Qi = Hi([{ - 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 dn, xn, qn, Sa = { - exports: {} - }, - as = { - exports: {} - }, - ss = { - exports: {} - }, - Ys = (function() { - if (qn) return Sa.exports; - qn = 1; - var i = (dn || (dn = 1, as.exports = function(r, a) { - var c, p, f, g, v, S, I, E; - for (p = r.length - (c = 3 & r.length), f = a, v = 3432918353, S = 461845907, E = 0; E < p;) I = 255 & r.charCodeAt(E) | (255 & r.charCodeAt(++E)) << 8 | (255 & r.charCodeAt(++E)) << 16 | (255 & r.charCodeAt(++E)) << 24, ++E, f = 27492 + (65535 & (g = 5 * (65535 & (f = (f ^= I = (65535 & (I = (I = (65535 & I) * v + (((I >>> 16) * v & 65535) << 16) & 4294967295) << 15 | I >>> 17)) * S + (((I >>> 16) * S & 65535) << 16) & 4294967295) << 13 | f >>> 19)) + ((5 * (f >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (g >>> 16) & 65535) << 16); - switch (I = 0, c) { - case 3: - I ^= (255 & r.charCodeAt(E + 2)) << 16; - case 2: - I ^= (255 & r.charCodeAt(E + 1)) << 8; - case 1: - f ^= I = (65535 & (I = (I = (65535 & (I ^= 255 & r.charCodeAt(E))) * v + (((I >>> 16) * v & 65535) << 16) & 4294967295) << 15 | I >>> 17)) * S + (((I >>> 16) * S & 65535) << 16) & 4294967295 - } - return f ^= r.length, f = 2246822507 * (65535 & (f ^= f >>> 16)) + ((2246822507 * (f >>> 16) & 65535) << 16) & 4294967295, f = 3266489909 * (65535 & (f ^= f >>> 13)) + ((3266489909 * (f >>> 16) & 65535) << 16) & 4294967295, (f ^= f >>> 16) >>> 0 - }), as.exports), - t = (xn || (xn = 1, ss.exports = function(r, a) { - for (var c, p = r.length, f = a ^ p, g = 0; p >= 4;) c = 1540483477 * (65535 & (c = 255 & r.charCodeAt(g) | (255 & r.charCodeAt(++g)) << 8 | (255 & r.charCodeAt(++g)) << 16 | (255 & r.charCodeAt(++g)) << 24)) + ((1540483477 * (c >>> 16) & 65535) << 16), f = 1540483477 * (65535 & f) + ((1540483477 * (f >>> 16) & 65535) << 16) ^ (c = 1540483477 * (65535 & (c ^= c >>> 24)) + ((1540483477 * (c >>> 16) & 65535) << 16)), p -= 4, ++g; - switch (p) { - case 3: - f ^= (255 & r.charCodeAt(g + 2)) << 16; - case 2: - f ^= (255 & r.charCodeAt(g + 1)) << 8; - case 1: - f = 1540483477 * (65535 & (f ^= 255 & r.charCodeAt(g))) + ((1540483477 * (f >>> 16) & 65535) << 16) - } - return f = 1540483477 * (65535 & (f ^= f >>> 13)) + ((1540483477 * (f >>> 16) & 65535) << 16), (f ^= f >>> 15) >>> 0 - }), ss.exports); - return Sa.exports = i, Sa.exports.murmur3 = i, Sa.exports.murmur2 = t, Sa.exports - })(), - Js = W(Ys); - class Is { - constructor() { - this.ids = [], this.positions = [], this.indexed = !1 - } - add(t, r, a, c) { - this.ids.push(Ms(t)), this.positions.push(r, a, c) - } - getPositions(t) { - if (!this.indexed) throw new Error("Trying to get index, but feature positions are not indexed"); - const r = Ms(t); - let a = 0, - c = this.ids.length - 1; - for (; a < c;) { - const f = a + c >> 1; - this.ids[f] >= r ? c = f : a = f + 1 - } - const p = []; - for (; this.ids[a] === r;) p.push({ - index: this.positions[3 * a], - start: this.positions[3 * a + 1], - end: this.positions[3 * a + 2] - }), a++; - return p - } - static serialize(t, r) { - const a = new Float64Array(t.ids), - c = new Uint32Array(t.positions); - return Kn(a, c, 0, a.length - 1), r && r.push(a.buffer, c.buffer), { - ids: a, - positions: c - } - } - static deserialize(t) { - const r = new Is; - return r.ids = t.ids, r.positions = t.positions, r.indexed = !0, r - } - } - - function Ms(i) { - const t = +i; - return !isNaN(t) && t <= Number.MAX_SAFE_INTEGER ? t : Js(String(i)) - } - - function Kn(i, t, r, a) { - for (; r < a;) { - const c = i[r + a >> 1]; - let p = r - 1, - f = a + 1; - for (;;) { - do p++; while (i[p] < c); - do f--; while (i[f] > c); - if (p >= f) break; - Pa(i, p, f), Pa(t, 3 * p, 3 * f), Pa(t, 3 * p + 1, 3 * f + 1), Pa(t, 3 * p + 2, 3 * f + 2) - } - f - r < a - f ? (Kn(i, t, r, f), r = f + 1) : (Kn(i, t, f + 1, a), a = f) - } - } - - function Pa(i, t, r) { - const a = i[t]; - i[t] = i[r], i[r] = a - } - Kt("FeaturePositionMap", Is); - class Vn { - constructor(t, r) { - this.gl = t.gl, this.location = r - } - } - class os extends Vn { - constructor(t, r) { - super(t, r), this.current = 0 - } - set(t) { - this.current !== t && (this.current = t, this.gl.uniform1f(this.location, t)) - } - } - class en extends Vn { - constructor(t, r) { - super(t, r), this.current = [0, 0, 0, 0] - } - set(t) { - t[0] === this.current[0] && t[1] === this.current[1] && t[2] === this.current[2] && t[3] === this.current[3] || (this.current = t, this.gl.uniform4f(this.location, t[0], t[1], t[2], t[3])) - } - } - class pn extends Vn { - constructor(t, r) { - super(t, r), this.current = yr.transparent - } - set(t) { - t.r === this.current.r && t.g === this.current.g && t.b === this.current.b && t.a === this.current.a || (this.current = t, this.gl.uniform4f(this.location, t.r, t.g, t.b, t.a)) - } - } - const da = new Float32Array(16); - - function tn(i) { - return [Ei(255 * i.r, 255 * i.g), Ei(255 * i.b, 255 * i.a)] - } - class Ro { - constructor(t, r, a) { - this.value = t, this.uniformNames = r.map((c => `u_${c}`)), this.type = a - } - setUniform(t, r, a) { - t.set(a.constantOr(this.value)) - } - getBinding(t, r, a) { - return this.type === "color" ? new pn(t, r) : new os(t, r) - } - } - class Qs { - constructor(t, r) { - this.uniformNames = r.map((a => `u_${a}`)), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1 - } - setConstantPatternPositions(t, r) { - this.pixelRatioFrom = r.pixelRatio, this.pixelRatioTo = t.pixelRatio, this.patternFrom = r.tlbr, this.patternTo = t.tlbr - } - setUniform(t, r, a, c) { - const p = c === "u_pattern_to" ? this.patternTo : c === "u_pattern_from" ? this.patternFrom : c === "u_pixel_ratio_to" ? this.pixelRatioTo : c === "u_pixel_ratio_from" ? this.pixelRatioFrom : null; - p && t.set(p) - } - getBinding(t, r, a) { - return a.substr(0, 9) === "u_pattern" ? new en(t, r) : new os(t, r) - } - } - class Ha { - constructor(t, r, a, c) { - this.expression = t, this.type = a, this.maxValue = 0, this.paintVertexAttributes = r.map((p => ({ - name: `a_${p}`, - type: "Float32", - components: a === "color" ? 2 : 1, - offset: 0 - }))), this.paintVertexArray = new c - } - populatePaintArray(t, r, a, c, p) { - const f = this.paintVertexArray.length, - g = this.expression.evaluate(new Oi(0), r, {}, c, [], p); - this.paintVertexArray.resize(t), this._setPaintValue(f, t, g) - } - updatePaintArray(t, r, a, c) { - const p = this.expression.evaluate({ - zoom: 0 - }, a, c); - this._setPaintValue(t, r, p) - } - _setPaintValue(t, r, a) { - if (this.type === "color") { - const c = tn(a); - for (let p = t; p < r; p++) this.paintVertexArray.emplace(p, c[0], c[1]) - } else { - for (let c = t; c < r; c++) this.paintVertexArray.emplace(c, a); - this.maxValue = Math.max(this.maxValue, Math.abs(a)) - } - } - upload(t) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)) - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy() - } - } - class Ia { - constructor(t, r, a, c, p, f) { - this.expression = t, this.uniformNames = r.map((g => `u_${g}_t`)), this.type = a, this.useIntegerZoom = c, this.zoom = p, this.maxValue = 0, this.paintVertexAttributes = r.map((g => ({ - name: `a_${g}`, - type: "Float32", - components: a === "color" ? 4 : 2, - offset: 0 - }))), this.paintVertexArray = new f - } - populatePaintArray(t, r, a, c, p) { - const f = this.expression.evaluate(new Oi(this.zoom), r, {}, c, [], p), - g = this.expression.evaluate(new Oi(this.zoom + 1), r, {}, c, [], p), - v = this.paintVertexArray.length; - this.paintVertexArray.resize(t), this._setPaintValue(v, t, f, g) - } - updatePaintArray(t, r, a, c) { - const p = this.expression.evaluate({ - zoom: this.zoom - }, a, c), - f = this.expression.evaluate({ - zoom: this.zoom + 1 - }, a, c); - this._setPaintValue(t, r, p, f) - } - _setPaintValue(t, r, a, c) { - if (this.type === "color") { - const p = tn(a), - f = tn(c); - for (let g = t; g < r; g++) this.paintVertexArray.emplace(g, p[0], p[1], f[0], f[1]) - } else { - for (let p = t; p < r; p++) this.paintVertexArray.emplace(p, a, c); - this.maxValue = Math.max(this.maxValue, Math.abs(a), Math.abs(c)) - } - } - upload(t) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)) - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy() - } - setUniform(t, r) { - const a = this.useIntegerZoom ? Math.floor(r.zoom) : r.zoom, - c = xt(this.expression.interpolationFactor(a, this.zoom, this.zoom + 1), 0, 1); - t.set(c) - } - getBinding(t, r, a) { - return new os(t, r) - } - } - class ls { - constructor(t, r, a, c, p, f) { - this.expression = t, this.type = r, this.useIntegerZoom = a, this.zoom = c, this.layerId = f, this.zoomInPaintVertexArray = new p, this.zoomOutPaintVertexArray = new p - } - populatePaintArray(t, r, a) { - const c = this.zoomInPaintVertexArray.length; - this.zoomInPaintVertexArray.resize(t), this.zoomOutPaintVertexArray.resize(t), this._setPaintValues(c, t, r.patterns && r.patterns[this.layerId], a) - } - updatePaintArray(t, r, a, c, p) { - this._setPaintValues(t, r, a.patterns && a.patterns[this.layerId], p) - } - _setPaintValues(t, r, a, c) { - if (!c || !a) return; - const { - min: p, - mid: f, - max: g - } = a, v = c[p], S = c[f], I = c[g]; - if (v && S && I) - for (let E = t; E < r; E++) this.zoomInPaintVertexArray.emplace(E, S.tl[0], S.tl[1], S.br[0], S.br[1], v.tl[0], v.tl[1], v.br[0], v.br[1], S.pixelRatio, v.pixelRatio), this.zoomOutPaintVertexArray.emplace(E, S.tl[0], S.tl[1], S.br[0], S.br[1], I.tl[0], I.tl[1], I.br[0], I.br[1], S.pixelRatio, I.pixelRatio) - } - upload(t) { - this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t.createVertexBuffer(this.zoomInPaintVertexArray, Qi.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t.createVertexBuffer(this.zoomOutPaintVertexArray, Qi.members, this.expression.isStateDependent)) - } - destroy() { - this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy() - } - } - class id { - constructor(t, r, a) { - this.binders = {}, this._buffers = []; - const c = []; - for (const p in t.paint._values) { - if (!a(p)) continue; - const f = t.paint.get(p); - if (!(f instanceof Na && rs(f.property.specification))) continue; - const g = nd(p, t.type), - v = f.value, - S = f.property.specification.type, - I = f.property.useIntegerZoom, - E = f.property.specification["property-type"], - R = E === "cross-faded" || E === "cross-faded-data-driven"; - if (v.kind === "constant") this.binders[p] = R ? new Qs(v.value, g) : new Ro(v.value, g, S), c.push(`/u_${p}`); - else if (v.kind === "source" || R) { - const N = tu(p, S, "source"); - this.binders[p] = R ? new ls(v, S, I, r, N, t.id) : new Ha(v, g, S, N), c.push(`/a_${p}`) - } else { - const N = tu(p, S, "composite"); - this.binders[p] = new Ia(v, g, S, I, r, N), c.push(`/z_${p}`) - } - } - this.cacheKey = c.sort().join("") - } - getMaxValue(t) { - const r = this.binders[t]; - return r instanceof Ha || r instanceof Ia ? r.maxValue : 0 - } - populatePaintArrays(t, r, a, c, p) { - for (const f in this.binders) { - const g = this.binders[f]; - (g instanceof Ha || g instanceof Ia || g instanceof ls) && g.populatePaintArray(t, r, a, c, p) - } - } - setConstantPatternPositions(t, r) { - for (const a in this.binders) { - const c = this.binders[a]; - c instanceof Qs && c.setConstantPatternPositions(t, r) - } - } - updatePaintArrays(t, r, a, c, p) { - let f = !1; - for (const g in t) { - const v = r.getPositions(g); - for (const S of v) { - const I = a.feature(S.index); - for (const E in this.binders) { - const R = this.binders[E]; - if ((R instanceof Ha || R instanceof Ia || R instanceof ls) && R.expression.isStateDependent === !0) { - const N = c.paint.get(E); - R.expression = N.value, R.updatePaintArray(S.start, S.end, I, t[g], p), f = !0 - } - } - } - } - return f - } - defines() { - const t = []; - for (const r in this.binders) { - const a = this.binders[r]; - (a instanceof Ro || a instanceof Qs) && t.push(...a.uniformNames.map((c => `#define HAS_UNIFORM_${c}`))) - } - return t - } - getBinderAttributes() { - const t = []; - for (const r in this.binders) { - const a = this.binders[r]; - if (a instanceof Ha || a instanceof Ia) - for (let c = 0; c < a.paintVertexAttributes.length; c++) t.push(a.paintVertexAttributes[c].name); - else if (a instanceof ls) - for (let c = 0; c < Qi.members.length; c++) t.push(Qi.members[c].name) - } - return t - } - getBinderUniforms() { - const t = []; - for (const r in this.binders) { - const a = this.binders[r]; - if (a instanceof Ro || a instanceof Qs || a instanceof Ia) - for (const c of a.uniformNames) t.push(c) - } - return t - } - getPaintVertexBuffers() { - return this._buffers - } - getUniforms(t, r) { - const a = []; - for (const c in this.binders) { - const p = this.binders[c]; - if (p instanceof Ro || p instanceof Qs || p instanceof Ia) { - for (const f of p.uniformNames) - if (r[f]) { - const g = p.getBinding(t, r[f], f); - a.push({ - name: f, - property: c, - binding: g - }) - } - } - } - return a - } - setUniforms(t, r, a, c) { - for (const { - name: p, - property: f, - binding: g - } - of r) this.binders[f].setUniform(g, c, a.get(f), p) - } - updatePaintBuffers(t) { - this._buffers = []; - for (const r in this.binders) { - const a = this.binders[r]; - if (t && a instanceof ls) { - const c = t.fromScale === 2 ? a.zoomInPaintVertexBuffer : a.zoomOutPaintVertexBuffer; - c && this._buffers.push(c) - } else(a instanceof Ha || a instanceof Ia) && a.paintVertexBuffer && this._buffers.push(a.paintVertexBuffer) - } - } - upload(t) { - for (const r in this.binders) { - const a = this.binders[r]; - (a instanceof Ha || a instanceof Ia || a instanceof ls) && a.upload(t) - } - this.updatePaintBuffers() - } - destroy() { - for (const t in this.binders) { - const r = this.binders[t]; - (r instanceof Ha || r instanceof Ia || r instanceof ls) && r.destroy() - } - } - } - class ia { - constructor(t, r, a = () => !0) { - this.programConfigurations = {}; - for (const c of t) this.programConfigurations[c.id] = new id(c, r, a); - this.needsUpload = !1, this._featureMap = new Is, this._bufferOffset = 0 - } - populatePaintArrays(t, r, a, c, p, f) { - for (const g in this.programConfigurations) this.programConfigurations[g].populatePaintArrays(t, r, c, p, f); - r.id !== void 0 && this._featureMap.add(r.id, a, this._bufferOffset, t), this._bufferOffset = t, this.needsUpload = !0 - } - updatePaintArrays(t, r, a, c) { - for (const p of a) this.needsUpload = this.programConfigurations[p.id].updatePaintArrays(t, this._featureMap, r, p, c) || this.needsUpload - } - get(t) { - return this.programConfigurations[t] - } - upload(t) { - if (this.needsUpload) { - for (const r in this.programConfigurations) this.programConfigurations[r].upload(t); - this.needsUpload = !1 - } - } - destroy() { - for (const t in this.programConfigurations) this.programConfigurations[t].destroy() - } - } - - function nd(i, t) { - return { - "text-opacity": ["opacity"], - "icon-opacity": ["opacity"], - "text-color": ["fill_color"], - "icon-color": ["fill_color"], - "text-halo-color": ["halo_color"], - "icon-halo-color": ["halo_color"], - "text-halo-blur": ["halo_blur"], - "icon-halo-blur": ["halo_blur"], - "text-halo-width": ["halo_width"], - "icon-halo-width": ["halo_width"], - "line-gap-width": ["gapwidth"], - "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], - "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], - "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] - } [i] || [i.replace(`${t}-`, "").replace(/-/g, "_")] - } - - function tu(i, t, r) { - const a = { - color: { - source: Do, - composite: M - }, - number: { - source: d, - composite: Do - } - }, - c = (function(p) { - return { - "line-pattern": { - source: Rt, - composite: Rt - }, - "fill-pattern": { - source: Rt, - composite: Rt - }, - "fill-extrusion-pattern": { - source: Rt, - composite: Rt - } - } [p] - })(i); - return c && c[r] || a[t][r] - } - Kt("ConstantBinder", Ro), Kt("CrossFadedConstantBinder", Qs), Kt("SourceExpressionBinder", Ha), Kt("CrossFadedCompositeBinder", ls), Kt("CompositeExpressionBinder", Ia), Kt("ProgramConfiguration", id, { - omit: ["_buffers"] - }), Kt("ProgramConfigurationSet", ia); - const kl = Math.pow(2, 14) - 1, - El = -kl - 1; - - function cs(i) { - const t = ne / i.extent, - r = i.loadGeometry(); - for (let a = 0; a < r.length; a++) { - const c = r[a]; - for (let p = 0; p < c.length; p++) { - const f = c[p], - g = Math.round(f.x * t), - v = Math.round(f.y * t); - f.x = xt(g, El, kl), f.y = xt(v, El, kl), (g < f.x || g > f.x + 1 || v < f.y || v > f.y + 1) && Lt("Geometry exceeds allowed extent, reduce your vector tile buffer size") - } - } - return r - } - - function Wa(i, t) { - return { - type: i.type, - id: i.id, - properties: i.properties, - geometry: t ? cs(i) : [] - } - } - const Cm = -32768; - - function Bv(i, t, r, a, c) { - i.emplaceBack(Cm + 8 * t + a, Cm + 8 * r + c) - } - class wp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.layoutVertexArray = new De, this.indexArray = new ki, this.segments = new Wr, this.programConfigurations = new ia(t.layers, t.zoom), this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - const c = this.layers[0], - p = []; - let f = null, - g = !1, - v = c.type === "heatmap"; - if (c.type === "circle") { - const I = c; - f = I.layout.get("circle-sort-key"), g = !f.isConstant(), v = v || I.paint.get("circle-pitch-alignment") === "map" - } - const S = v ? r.subdivisionGranularity.circle : 1; - for (const { - feature: I, - id: E, - index: R, - sourceLayerIndex: N - } - of t) { - const j = this.layers[0]._featureFilter.needGeometry, - Z = Wa(I, j); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), Z, a)) continue; - const Y = g ? f.evaluate(Z, {}, a) : void 0, - ae = { - id: E, - properties: I.properties, - type: I.type, - sourceLayerIndex: N, - index: R, - geometry: j ? Z.geometry : cs(I), - patterns: {}, - sortKey: Y - }; - p.push(ae) - } - g && p.sort(((I, E) => I.sortKey - E.sortKey)); - for (const I of p) { - const { - geometry: E, - index: R, - sourceLayerIndex: N - } = I, j = t[R].feature; - this.addFeature(I, E, R, a, S), r.featureIndex.insert(j, E, R, N, this.index) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - isEmpty() { - return this.layoutVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, Ui), this.indexBuffer = t.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()) - } - addFeature(t, r, a, c, p = 1) { - let f; - switch (p) { - case 1: - f = [0, 7]; - break; - case 3: - f = [0, 2, 5, 7]; - break; - case 5: - f = [0, 1, 3, 4, 6, 7]; - break; - case 7: - f = [0, 1, 2, 3, 4, 5, 6, 7]; - break; - default: - throw new Error(`Invalid circle bucket granularity: ${p}; valid values are 1, 3, 5, 7.`) - } - const g = f.length; - for (const v of r) - for (const S of v) { - const I = S.x, - E = S.y; - if (I < 0 || I >= ne || E < 0 || E >= ne) continue; - const R = this.segments.prepareSegment(g * g, this.layoutVertexArray, this.indexArray, t.sortKey), - N = R.vertexLength; - for (let j = 0; j < g; j++) - for (let Z = 0; Z < g; Z++) Bv(this.layoutVertexArray, I, E, f[Z], f[j]); - for (let j = 0; j < g - 1; j++) - for (let Z = 0; Z < g - 1; Z++) { - const Y = N + j * g + Z, - ae = N + (j + 1) * g + Z; - this.indexArray.emplaceBack(Y, ae + 1, Y + 1), this.indexArray.emplaceBack(Y, ae, ae + 1) - } - R.vertexLength += g * g, R.primitiveLength += (g - 1) * (g - 1) * 2 - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, {}, c) - } - } - - function Sm(i, t) { - for (let r = 0; r < i.length; r++) - if (zl(t, i[r])) return !0; - for (let r = 0; r < t.length; r++) - if (zl(i, t[r])) return !0; - return !!Tp(i, t) - } - - function Fv(i, t, r) { - return !!zl(i, t) || !!Cp(t, i, r) - } - - function Pm(i, t) { - if (i.length === 1) return Mm(t, i[0]); - for (let r = 0; r < t.length; r++) { - const a = t[r]; - for (let c = 0; c < a.length; c++) - if (zl(i, a[c])) return !0 - } - for (let r = 0; r < i.length; r++) - if (Mm(t, i[r])) return !0; - for (let r = 0; r < t.length; r++) - if (Tp(i, t[r])) return !0; - return !1 - } - - function Ov(i, t, r) { - if (i.length > 1) { - if (Tp(i, t)) return !0; - for (let a = 0; a < t.length; a++) - if (Cp(t[a], i, r)) return !0 - } - for (let a = 0; a < i.length; a++) - if (Cp(i[a], t, r)) return !0; - return !1 - } - - function Tp(i, t) { - if (i.length === 0 || t.length === 0) return !1; - for (let r = 0; r < i.length - 1; r++) { - const a = i[r], - c = i[r + 1]; - for (let p = 0; p < t.length - 1; p++) - if (Nv(a, c, t[p], t[p + 1])) return !0 - } - return !1 - } - - function Nv(i, t, r, a) { - return Xt(i, r, a) !== Xt(t, r, a) && Xt(i, t, r) !== Xt(i, t, a) - } - - function Cp(i, t, r) { - const a = r * r; - if (t.length === 1) return i.distSqr(t[0]) < a; - for (let c = 1; c < t.length; c++) - if (Im(i, t[c - 1], t[c]) < a) return !0; - return !1 - } - - function Im(i, t, r) { - const a = t.distSqr(r); - if (a === 0) return i.distSqr(t); - const c = ((i.x - t.x) * (r.x - t.x) + (i.y - t.y) * (r.y - t.y)) / a; - return i.distSqr(c < 0 ? t : c > 1 ? r : r.sub(t)._mult(c)._add(t)) - } - - function Mm(i, t) { - let r, a, c, p = !1; - for (let f = 0; f < i.length; f++) { - r = i[f]; - for (let g = 0, v = r.length - 1; g < r.length; v = g++) a = r[g], c = r[v], a.y > t.y != c.y > t.y && t.x < (c.x - a.x) * (t.y - a.y) / (c.y - a.y) + a.x && (p = !p) - } - return p - } - - function zl(i, t) { - let r = !1; - for (let a = 0, c = i.length - 1; a < i.length; c = a++) { - const p = i[a], - f = i[c]; - p.y > t.y != f.y > t.y && t.x < (f.x - p.x) * (t.y - p.y) / (f.y - p.y) + p.x && (r = !r) - } - return r - } - - function jv(i, t, r) { - const a = r[0], - c = r[2]; - if (i.x < a.x && t.x < a.x || i.x > c.x && t.x > c.x || i.y < a.y && t.y < a.y || i.y > c.y && t.y > c.y) return !1; - const p = Xt(i, t, r[0]); - return p !== Xt(i, t, r[1]) || p !== Xt(i, t, r[2]) || p !== Xt(i, t, r[3]) - } - - function ru(i, t, r) { - const a = t.paint.get(i).value; - return a.kind === "constant" ? a.value : r.programConfigurations.get(t.id).getMaxValue(i) - } - - function ad(i) { - return Math.sqrt(i[0] * i[0] + i[1] * i[1]) - } - - function sd(i, t, r, a, c) { - if (!t[0] && !t[1]) return i; - const p = $.convert(t)._mult(c); - r === "viewport" && p._rotate(-a); - const f = []; - for (let g = 0; g < i.length; g++) f.push(i[g].sub(p)); - return f - } - let Am, km; - Kt("CircleBucket", wp, { - omit: ["layers"] - }); - var qv = { - get paint() { - return km = km || new jn({ - "circle-radius": new Rr(xe.paint_circle["circle-radius"]), - "circle-color": new Rr(xe.paint_circle["circle-color"]), - "circle-blur": new Rr(xe.paint_circle["circle-blur"]), - "circle-opacity": new Rr(xe.paint_circle["circle-opacity"]), - "circle-translate": new hr(xe.paint_circle["circle-translate"]), - "circle-translate-anchor": new hr(xe.paint_circle["circle-translate-anchor"]), - "circle-pitch-scale": new hr(xe.paint_circle["circle-pitch-scale"]), - "circle-pitch-alignment": new hr(xe.paint_circle["circle-pitch-alignment"]), - "circle-stroke-width": new Rr(xe.paint_circle["circle-stroke-width"]), - "circle-stroke-color": new Rr(xe.paint_circle["circle-stroke-color"]), - "circle-stroke-opacity": new Rr(xe.paint_circle["circle-stroke-opacity"]) - }) - }, - get layout() { - return Am = Am || new jn({ - "circle-sort-key": new Rr(xe.layout_circle["circle-sort-key"]) - }) - } - }; - class Vv extends ha { - constructor(t) { - super(t, qv) - } - createBucket(t) { - return new wp(t) - } - queryRadius(t) { - const r = t; - return ru("circle-radius", this, r) + ru("circle-stroke-width", this, r) + ad(this.paint.get("circle-translate")) - } - queryIntersectsFeature({ - queryGeometry: t, - feature: r, - featureState: a, - geometry: c, - transform: p, - pixelsToTileUnits: f, - unwrappedTileID: g, - getElevation: v - }) { - const S = sd(t, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), -p.bearingInRadians, f), - I = this.paint.get("circle-radius").evaluate(r, a) + this.paint.get("circle-stroke-width").evaluate(r, a), - E = this.paint.get("circle-pitch-alignment") === "map", - R = E ? S : (function(j, Z, Y, ae) { - return j.map((ze => Em(ze, Z, Y, ae))) - })(S, p, g, v), - N = E ? I * f : I; - for (const j of c) - for (const Z of j) { - const Y = E ? Z : Em(Z, p, g, v); - let ae = N; - const ze = p.projectTileCoordinates(Z.x, Z.y, g, v).signedDistanceFromCamera; - if (this.paint.get("circle-pitch-scale") === "viewport" && this.paint.get("circle-pitch-alignment") === "map" ? ae *= ze / p.cameraToCenterDistance : this.paint.get("circle-pitch-scale") === "map" && this.paint.get("circle-pitch-alignment") === "viewport" && (ae *= p.cameraToCenterDistance / ze), Fv(R, Y, ae)) return !0 - } - return !1 - } - } - - function Em(i, t, r, a) { - const c = t.projectTileCoordinates(i.x, i.y, r, a).point; - return new $((.5 * c.x + .5) * t.width, (.5 * -c.y + .5) * t.height) - } - class zm extends wp {} - let Lm; - Kt("HeatmapBucket", zm, { - omit: ["layers"] - }); - var Uv = { - get paint() { - return Lm = Lm || new jn({ - "heatmap-radius": new Rr(xe.paint_heatmap["heatmap-radius"]), - "heatmap-weight": new Rr(xe.paint_heatmap["heatmap-weight"]), - "heatmap-intensity": new hr(xe.paint_heatmap["heatmap-intensity"]), - "heatmap-color": new Pl(xe.paint_heatmap["heatmap-color"]), - "heatmap-opacity": new hr(xe.paint_heatmap["heatmap-opacity"]) - }) - } - }; - - function Sp(i, { - width: t, - height: r - }, a, c) { - if (c) { - if (c instanceof Uint8ClampedArray) c = new Uint8Array(c.buffer); - else if (c.length !== t * r * a) throw new RangeError(`mismatched image size. expected: ${c.length} but got: ${t*r*a}`) - } else c = new Uint8Array(t * r * a); - return i.width = t, i.height = r, i.data = c, i - } - - function Dm(i, { - width: t, - height: r - }, a) { - if (t === i.width && r === i.height) return; - const c = Sp({}, { - width: t, - height: r - }, a); - Pp(i, c, { - x: 0, - y: 0 - }, { - x: 0, - y: 0 - }, { - width: Math.min(i.width, t), - height: Math.min(i.height, r) - }, a), i.width = t, i.height = r, i.data = c.data - } - - function Pp(i, t, r, a, c, p) { - if (c.width === 0 || c.height === 0) return t; - if (c.width > i.width || c.height > i.height || r.x > i.width - c.width || r.y > i.height - c.height) throw new RangeError("out of range source coordinates for image copy"); - if (c.width > t.width || c.height > t.height || a.x > t.width - c.width || a.y > t.height - c.height) throw new RangeError("out of range destination coordinates for image copy"); - const f = i.data, - g = t.data; - if (f === g) throw new Error("srcData equals dstData, so image is already copied"); - for (let v = 0; v < c.height; v++) { - const S = ((r.y + v) * i.width + r.x) * p, - I = ((a.y + v) * t.width + a.x) * p; - for (let E = 0; E < c.width * p; E++) g[I + E] = f[S + E] - } - return t - } - class iu { - constructor(t, r) { - Sp(this, t, 1, r) - } - resize(t) { - Dm(this, t, 1) - } - clone() { - return new iu({ - width: this.width, - height: this.height - }, new Uint8Array(this.data)) - } - static copy(t, r, a, c, p) { - Pp(t, r, a, c, p, 1) - } - } - class na { - constructor(t, r) { - Sp(this, t, 4, r) - } - resize(t) { - Dm(this, t, 4) - } - replace(t, r) { - r ? this.data.set(t) : this.data = t instanceof Uint8ClampedArray ? new Uint8Array(t.buffer) : t - } - clone() { - return new na({ - width: this.width, - height: this.height - }, new Uint8Array(this.data)) - } - static copy(t, r, a, c, p) { - Pp(t, r, a, c, p, 4) - } - setPixel(t, r, a) { - const c = 4 * (t * this.width + r); - this.data[c + 0] = Math.round(255 * a.r / a.a), this.data[c + 1] = Math.round(255 * a.g / a.a), this.data[c + 2] = Math.round(255 * a.b / a.a), this.data[c + 3] = Math.round(255 * a.a) - } - } - - function Rm(i) { - const t = {}, - r = i.resolution || 256, - a = i.clips ? i.clips.length : 1, - c = i.image || new na({ - width: r, - height: a - }); - if (Math.log(r) / Math.LN2 % 1 != 0) throw new Error(`width is not a power of 2 - ${r}`); - const p = (f, g, v) => { - t[i.evaluationKey] = v; - const S = i.expression.evaluate(t); - c.setPixel(f / 4 / r, g / 4, S) - }; - if (i.clips) - for (let f = 0, g = 0; f < a; ++f, g += 4 * r) - for (let v = 0, S = 0; v < r; v++, S += 4) { - const I = v / (r - 1), - { - start: E, - end: R - } = i.clips[f]; - p(g, S, E * (1 - I) + R * I) - } else - for (let f = 0, g = 0; f < r; f++, g += 4) p(0, g, f / (r - 1)); - return c - } - Kt("AlphaImage", iu), Kt("RGBAImage", na); - const Ip = "big-fb"; - class Zv extends ha { - createBucket(t) { - return new zm(t) - } - constructor(t) { - super(t, Uv), this.heatmapFbos = new Map, this._updateColorRamp() - } - _handleSpecialPaintPropertyUpdate(t) { - t === "heatmap-color" && this._updateColorRamp() - } - _updateColorRamp() { - this.colorRamp = Rm({ - expression: this._transitionablePaint._values["heatmap-color"].value.expression, - evaluationKey: "heatmapDensity", - image: this.colorRamp - }), this.colorRampTexture = null - } - resize() { - this.heatmapFbos.has(Ip) && this.heatmapFbos.delete(Ip) - } - queryRadius() { - return 0 - } - queryIntersectsFeature() { - return !1 - } - hasOffscreenPass() { - return this.paint.get("heatmap-opacity") !== 0 && this.visibility !== "none" - } - } - let Bm; - var $v = { - get paint() { - return Bm = Bm || new jn({ - "hillshade-illumination-direction": new hr(xe.paint_hillshade["hillshade-illumination-direction"]), - "hillshade-illumination-altitude": new hr(xe.paint_hillshade["hillshade-illumination-altitude"]), - "hillshade-illumination-anchor": new hr(xe.paint_hillshade["hillshade-illumination-anchor"]), - "hillshade-exaggeration": new hr(xe.paint_hillshade["hillshade-exaggeration"]), - "hillshade-shadow-color": new hr(xe.paint_hillshade["hillshade-shadow-color"]), - "hillshade-highlight-color": new hr(xe.paint_hillshade["hillshade-highlight-color"]), - "hillshade-accent-color": new hr(xe.paint_hillshade["hillshade-accent-color"]), - "hillshade-method": new hr(xe.paint_hillshade["hillshade-method"]) - }) - } - }; - class Gv extends ha { - constructor(t) { - super(t, $v), this.recalculate({ - zoom: 0, - zoomHistory: {} - }, void 0) - } - getIlluminationProperties() { - let t = this.paint.get("hillshade-illumination-direction").values, - r = this.paint.get("hillshade-illumination-altitude").values, - a = this.paint.get("hillshade-highlight-color").values, - c = this.paint.get("hillshade-shadow-color").values; - const p = Math.max(t.length, r.length, a.length, c.length); - t = t.concat(Array(p - t.length).fill(t.at(-1))), r = r.concat(Array(p - r.length).fill(r.at(-1))), a = a.concat(Array(p - a.length).fill(a.at(-1))), c = c.concat(Array(p - c.length).fill(c.at(-1))); - const f = r.map(ur); - return { - directionRadians: t.map(ur), - altitudeRadians: f, - shadowColor: c, - highlightColor: a - } - } - hasOffscreenPass() { - return this.paint.get("hillshade-exaggeration") !== 0 && this.visibility !== "none" - } - } - let Fm; - var Hv = { - get paint() { - return Fm = Fm || new jn({ - "color-relief-opacity": new hr(xe["paint_color-relief"]["color-relief-opacity"]), - "color-relief-color": new Pl(xe["paint_color-relief"]["color-relief-color"]) - }) - } - }; - class Mp { - constructor(t, r, a, c) { - this.context = t, this.format = a, this.texture = t.gl.createTexture(), this.update(r, c) - } - update(t, r, a) { - const { - width: c, - height: p - } = t, f = !(this.size && this.size[0] === c && this.size[1] === p || a), { - context: g - } = this, { - gl: v - } = g; - if (this.useMipmap = !!(r && r.useMipmap), v.bindTexture(v.TEXTURE_2D, this.texture), g.pixelStoreUnpackFlipY.set(!1), g.pixelStoreUnpack.set(1), g.pixelStoreUnpackPremultiplyAlpha.set(this.format === v.RGBA && (!r || r.premultiply !== !1)), f) this.size = [c, p], t instanceof HTMLImageElement || t instanceof HTMLCanvasElement || t instanceof HTMLVideoElement || t instanceof ImageData || ar(t) ? v.texImage2D(v.TEXTURE_2D, 0, this.format, this.format, v.UNSIGNED_BYTE, t) : v.texImage2D(v.TEXTURE_2D, 0, this.format, c, p, 0, this.format, v.UNSIGNED_BYTE, t.data); - else { - const { - x: S, - y: I - } = a || { - x: 0, - y: 0 - }; - t instanceof HTMLImageElement || t instanceof HTMLCanvasElement || t instanceof HTMLVideoElement || t instanceof ImageData || ar(t) ? v.texSubImage2D(v.TEXTURE_2D, 0, S, I, v.RGBA, v.UNSIGNED_BYTE, t) : v.texSubImage2D(v.TEXTURE_2D, 0, S, I, c, p, v.RGBA, v.UNSIGNED_BYTE, t.data) - } - this.useMipmap && this.isSizePowerOfTwo() && v.generateMipmap(v.TEXTURE_2D), g.pixelStoreUnpackFlipY.setDefault(), g.pixelStoreUnpack.setDefault(), g.pixelStoreUnpackPremultiplyAlpha.setDefault() - } - bind(t, r, a) { - const { - context: c - } = this, { - gl: p - } = c; - p.bindTexture(p.TEXTURE_2D, this.texture), a !== p.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (a = p.LINEAR), t !== this.filter && (p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MAG_FILTER, t), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MIN_FILTER, a || t), this.filter = t), r !== this.wrap && (p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_S, r), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_T, r), this.wrap = r) - } - isSizePowerOfTwo() { - return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0 - } - destroy() { - const { - gl: t - } = this.context; - t.deleteTexture(this.texture), this.texture = null - } - } - class Om { - constructor(t, r, a, c = 1, p = 1, f = 1, g = 0) { - if (this.uid = t, r.height !== r.width) throw new RangeError("DEM tiles must be square"); - if (a && !["mapbox", "terrarium", "custom"].includes(a)) return void Lt(`"${a}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`); - this.stride = r.height; - const v = this.dim = r.height - 2; - switch (this.data = new Uint32Array(r.data.buffer), a) { - case "terrarium": - this.redFactor = 256, this.greenFactor = 1, this.blueFactor = 1 / 256, this.baseShift = 32768; - break; - case "custom": - this.redFactor = c, this.greenFactor = p, this.blueFactor = f, this.baseShift = g; - break; - default: - this.redFactor = 6553.6, this.greenFactor = 25.6, this.blueFactor = .1, this.baseShift = 1e4 - } - for (let S = 0; S < v; S++) this.data[this._idx(-1, S)] = this.data[this._idx(0, S)], this.data[this._idx(v, S)] = this.data[this._idx(v - 1, S)], this.data[this._idx(S, -1)] = this.data[this._idx(S, 0)], this.data[this._idx(S, v)] = this.data[this._idx(S, v - 1)]; - this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(v, -1)] = this.data[this._idx(v - 1, 0)], this.data[this._idx(-1, v)] = this.data[this._idx(0, v - 1)], this.data[this._idx(v, v)] = this.data[this._idx(v - 1, v - 1)], this.min = Number.MAX_SAFE_INTEGER, this.max = Number.MIN_SAFE_INTEGER; - for (let S = 0; S < v; S++) - for (let I = 0; I < v; I++) { - const E = this.get(S, I); - E > this.max && (this.max = E), E < this.min && (this.min = E) - } - } - get(t, r) { - const a = new Uint8Array(this.data.buffer), - c = 4 * this._idx(t, r); - return this.unpack(a[c], a[c + 1], a[c + 2]) - } - getUnpackVector() { - return [this.redFactor, this.greenFactor, this.blueFactor, this.baseShift] - } - _idx(t, r) { - if (t < -1 || t >= this.dim + 1 || r < -1 || r >= this.dim + 1) throw new RangeError("out of range source coordinates for DEM data"); - return (r + 1) * this.stride + (t + 1) - } - unpack(t, r, a) { - return t * this.redFactor + r * this.greenFactor + a * this.blueFactor - this.baseShift - } - pack(t) { - return Nm(t, this.getUnpackVector()) - } - getPixels() { - return new na({ - width: this.stride, - height: this.stride - }, new Uint8Array(this.data.buffer)) - } - backfillBorder(t, r, a) { - if (this.dim !== t.dim) throw new Error("dem dimension mismatch"); - let c = r * this.dim, - p = r * this.dim + this.dim, - f = a * this.dim, - g = a * this.dim + this.dim; - switch (r) { - case -1: - c = p - 1; - break; - case 1: - p = c + 1 - } - switch (a) { - case -1: - f = g - 1; - break; - case 1: - g = f + 1 - } - const v = -r * this.dim, - S = -a * this.dim; - for (let I = f; I < g; I++) - for (let E = c; E < p; E++) this.data[this._idx(E, I)] = t.data[this._idx(E + v, I + S)] - } - } - - function Nm(i, t) { - const r = t[0], - a = t[1], - c = t[2], - p = t[3], - f = Math.min(r, a, c), - g = Math.round((i + p) / f); - return { - r: Math.floor(g * f / r) % 256, - g: Math.floor(g * f / a) % 256, - b: Math.floor(g * f / c) % 256 - } - } - Kt("DEMData", Om); - class Wv extends ha { - constructor(t) { - super(t, Hv) - } - _createColorRamp(t) { - const r = { - elevationStops: [], - colorStops: [] - }, - a = this._transitionablePaint._values["color-relief-color"].value.expression; - if (a instanceof So && a._styleExpression.expression instanceof In) { - this.colorRampExpression = a; - const f = a._styleExpression.expression; - r.elevationStops = f.labels, r.colorStops = []; - for (const g of r.elevationStops) r.colorStops.push(f.evaluate({ - globals: { - elevation: g - } - })) - } - if (r.elevationStops.length < 1 && (r.elevationStops = [0], r.colorStops = [yr.transparent]), r.elevationStops.length < 2 && (r.elevationStops.push(r.elevationStops[0] + 1), r.colorStops.push(r.colorStops[0])), r.elevationStops.length <= t) return r; - const c = { - elevationStops: [], - colorStops: [] - }, - p = (r.elevationStops.length - 1) / (t - 1); - for (let f = 0; f < r.elevationStops.length - .5; f += p) c.elevationStops.push(r.elevationStops[Math.round(f)]), c.colorStops.push(r.colorStops[Math.round(f)]); - return Lt(`Too many colors in specification of ${this.id} color-relief layer, may not render properly.`), c - } - _colorRampChanged() { - return this.colorRampExpression != this._transitionablePaint._values["color-relief-color"].value.expression - } - getColorRampTextures(t, r, a) { - if (this.colorRampTextures && !this._colorRampChanged()) return this.colorRampTextures; - const c = this._createColorRamp(r), - p = new na({ - width: c.colorStops.length, - height: 1 - }), - f = new na({ - width: c.colorStops.length, - height: 1 - }); - for (let g = 0; g < c.elevationStops.length; g++) { - const v = Nm(c.elevationStops[g], a); - f.setPixel(0, g, new yr(v.r / 255, v.g / 255, v.b / 255, 1)), p.setPixel(0, g, c.colorStops[g]) - } - return this.colorRampTextures = { - elevationTexture: new Mp(t, f, t.gl.RGBA), - colorTexture: new Mp(t, p, t.gl.RGBA) - }, this.colorRampTextures - } - hasOffscreenPass() { - return this.visibility !== "none" && !!this.colorRampTextures - } - } - const Xv = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }], 4), - { - members: Kv - } = Xv; - - function Ap(i, t, r) { - const a = r.patternDependencies; - let c = !1; - for (const p of t) { - const f = p.paint.get(`${i}-pattern`); - f.isConstant() || (c = !0); - const g = f.constantOr(null); - g && (c = !0, a[g.to] = !0, a[g.from] = !0) - } - return c - } - - function kp(i, t, r, a, c) { - const p = c.patternDependencies; - for (const f of t) { - const g = f.paint.get(`${i}-pattern`).value; - if (g.kind !== "constant") { - let v = g.evaluate({ - zoom: a - 1 - }, r, {}, c.availableImages), - S = g.evaluate({ - zoom: a - }, r, {}, c.availableImages), - I = g.evaluate({ - zoom: a + 1 - }, r, {}, c.availableImages); - v = v && v.name ? v.name : v, S = S && S.name ? S.name : S, I = I && I.name ? I.name : I, p[v] = !0, p[S] = !0, p[I] = !0, r.patterns[f.id] = { - min: v, - mid: S, - max: I - } - } - } - return r - } - - function jm(i, t, r, a, c) { - let p; - if (c === (function(f, g, v, S) { - let I = 0; - for (let E = g, R = v - S; E < v; E += S) I += (f[R] - f[E]) * (f[E + 1] + f[R + 1]), R = E; - return I - })(i, t, r, a) > 0) - for (let f = t; f < r; f += a) p = Zm(f / a | 0, i[f], i[f + 1], p); - else - for (let f = r - a; f >= t; f -= a) p = Zm(f / a | 0, i[f], i[f + 1], p); - return p && Ll(p, p.next) && (ou(p), p = p.next), p - } - - function Bo(i, t) { - if (!i) return i; - t || (t = i); - let r, a = i; - do - if (r = !1, a.steiner || !Ll(a, a.next) && Yi(a.prev, a, a.next) !== 0) a = a.next; - else { - if (ou(a), a = t = a.prev, a === a.next) break; - r = !0 - } while (r || a !== t); - return t - } - - function nu(i, t, r, a, c, p, f) { - if (!i) return; - !f && p && (function(v, S, I, E) { - let R = v; - do R.z === 0 && (R.z = Ep(R.x, R.y, S, I, E)), R.prevZ = R.prev, R.nextZ = R.next, R = R.next; while (R !== v); - R.prevZ.nextZ = null, R.prevZ = null, (function(N) { - let j, Z = 1; - do { - let Y, ae = N; - N = null; - let ze = null; - for (j = 0; ae;) { - j++; - let me = ae, - be = 0; - for (let rt = 0; rt < Z && (be++, me = me.nextZ, me); rt++); - let Ve = Z; - for (; be > 0 || Ve > 0 && me;) be !== 0 && (Ve === 0 || !me || ae.z <= me.z) ? (Y = ae, ae = ae.nextZ, be--) : (Y = me, me = me.nextZ, Ve--), ze ? ze.nextZ = Y : N = Y, Y.prevZ = ze, ze = Y; - ae = me - } - ze.nextZ = null, Z *= 2 - } while (j > 1) - })(R) - })(i, a, c, p); - let g = i; - for (; i.prev !== i.next;) { - const v = i.prev, - S = i.next; - if (p ? Jv(i, a, c, p) : Yv(i)) t.push(v.i, i.i, S.i), ou(i), i = S.next, g = S.next; - else if ((i = S) === g) { - f ? f === 1 ? nu(i = Qv(Bo(i), t), t, r, a, c, p, 2) : f === 2 && e0(i, t, r, a, c, p) : nu(Bo(i), t, r, a, c, p, 1); - break - } - } - } - - function Yv(i) { - const t = i.prev, - r = i, - a = i.next; - if (Yi(t, r, a) >= 0) return !1; - const c = t.x, - p = r.x, - f = a.x, - g = t.y, - v = r.y, - S = a.y, - I = Math.min(c, p, f), - E = Math.min(g, v, S), - R = Math.max(c, p, f), - N = Math.max(g, v, S); - let j = a.next; - for (; j !== t;) { - if (j.x >= I && j.x <= R && j.y >= E && j.y <= N && au(c, g, p, v, f, S, j.x, j.y) && Yi(j.prev, j, j.next) >= 0) return !1; - j = j.next - } - return !0 - } - - function Jv(i, t, r, a) { - const c = i.prev, - p = i, - f = i.next; - if (Yi(c, p, f) >= 0) return !1; - const g = c.x, - v = p.x, - S = f.x, - I = c.y, - E = p.y, - R = f.y, - N = Math.min(g, v, S), - j = Math.min(I, E, R), - Z = Math.max(g, v, S), - Y = Math.max(I, E, R), - ae = Ep(N, j, t, r, a), - ze = Ep(Z, Y, t, r, a); - let me = i.prevZ, - be = i.nextZ; - for (; me && me.z >= ae && be && be.z <= ze;) { - if (me.x >= N && me.x <= Z && me.y >= j && me.y <= Y && me !== c && me !== f && au(g, I, v, E, S, R, me.x, me.y) && Yi(me.prev, me, me.next) >= 0 || (me = me.prevZ, be.x >= N && be.x <= Z && be.y >= j && be.y <= Y && be !== c && be !== f && au(g, I, v, E, S, R, be.x, be.y) && Yi(be.prev, be, be.next) >= 0)) return !1; - be = be.nextZ - } - for (; me && me.z >= ae;) { - if (me.x >= N && me.x <= Z && me.y >= j && me.y <= Y && me !== c && me !== f && au(g, I, v, E, S, R, me.x, me.y) && Yi(me.prev, me, me.next) >= 0) return !1; - me = me.prevZ - } - for (; be && be.z <= ze;) { - if (be.x >= N && be.x <= Z && be.y >= j && be.y <= Y && be !== c && be !== f && au(g, I, v, E, S, R, be.x, be.y) && Yi(be.prev, be, be.next) >= 0) return !1; - be = be.nextZ - } - return !0 - } - - function Qv(i, t) { - let r = i; - do { - const a = r.prev, - c = r.next.next; - !Ll(a, c) && Vm(a, r, r.next, c) && su(a, c) && su(c, a) && (t.push(a.i, r.i, c.i), ou(r), ou(r.next), r = i = c), r = r.next - } while (r !== i); - return Bo(r) - } - - function e0(i, t, r, a, c, p) { - let f = i; - do { - let g = f.next.next; - for (; g !== f.prev;) { - if (f.i !== g.i && a0(f, g)) { - let v = Um(f, g); - return f = Bo(f, f.next), v = Bo(v, v.next), nu(f, t, r, a, c, p, 0), void nu(v, t, r, a, c, p, 0) - } - g = g.next - } - f = f.next - } while (f !== i) - } - - function t0(i, t) { - let r = i.x - t.x; - return r === 0 && (r = i.y - t.y, r === 0) && (r = (i.next.y - i.y) / (i.next.x - i.x) - (t.next.y - t.y) / (t.next.x - t.x)), r - } - - function r0(i, t) { - const r = (function(c, p) { - let f = p; - const g = c.x, - v = c.y; - let S, I = -1 / 0; - if (Ll(c, f)) return f; - do { - if (Ll(c, f.next)) return f.next; - if (v <= f.y && v >= f.next.y && f.next.y !== f.y) { - const Z = f.x + (v - f.y) * (f.next.x - f.x) / (f.next.y - f.y); - if (Z <= g && Z > I && (I = Z, S = f.x < f.next.x ? f : f.next, Z === g)) return S - } - f = f.next - } while (f !== p); - if (!S) return null; - const E = S, - R = S.x, - N = S.y; - let j = 1 / 0; - f = S; - do { - if (g >= f.x && f.x >= R && g !== f.x && qm(v < N ? g : I, v, R, N, v < N ? I : g, v, f.x, f.y)) { - const Z = Math.abs(v - f.y) / (g - f.x); - su(f, c) && (Z < j || Z === j && (f.x > S.x || f.x === S.x && i0(S, f))) && (S = f, j = Z) - } - f = f.next - } while (f !== E); - return S - })(i, t); - if (!r) return t; - const a = Um(r, i); - return Bo(a, a.next), Bo(r, r.next) - } - - function i0(i, t) { - return Yi(i.prev, i, t.prev) < 0 && Yi(t.next, i, i.next) < 0 - } - - function Ep(i, t, r, a, c) { - return (i = 1431655765 & ((i = 858993459 & ((i = 252645135 & ((i = 16711935 & ((i = (i - r) * c | 0) | i << 8)) | i << 4)) | i << 2)) | i << 1)) | (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = (t - a) * c | 0) | t << 8)) | t << 4)) | t << 2)) | t << 1)) << 1 - } - - function n0(i) { - let t = i, - r = i; - do(t.x < r.x || t.x === r.x && t.y < r.y) && (r = t), t = t.next; while (t !== i); - return r - } - - function qm(i, t, r, a, c, p, f, g) { - return (c - f) * (t - g) >= (i - f) * (p - g) && (i - f) * (a - g) >= (r - f) * (t - g) && (r - f) * (p - g) >= (c - f) * (a - g) - } - - function au(i, t, r, a, c, p, f, g) { - return !(i === f && t === g) && qm(i, t, r, a, c, p, f, g) - } - - function a0(i, t) { - return i.next.i !== t.i && i.prev.i !== t.i && !(function(r, a) { - let c = r; - do { - if (c.i !== r.i && c.next.i !== r.i && c.i !== a.i && c.next.i !== a.i && Vm(c, c.next, r, a)) return !0; - c = c.next - } while (c !== r); - return !1 - })(i, t) && (su(i, t) && su(t, i) && (function(r, a) { - let c = r, - p = !1; - const f = (r.x + a.x) / 2, - g = (r.y + a.y) / 2; - do c.y > g != c.next.y > g && c.next.y !== c.y && f < (c.next.x - c.x) * (g - c.y) / (c.next.y - c.y) + c.x && (p = !p), c = c.next; while (c !== r); - return p - })(i, t) && (Yi(i.prev, i, t.prev) || Yi(i, t.prev, t)) || Ll(i, t) && Yi(i.prev, i, i.next) > 0 && Yi(t.prev, t, t.next) > 0) - } - - function Yi(i, t, r) { - return (t.y - i.y) * (r.x - t.x) - (t.x - i.x) * (r.y - t.y) - } - - function Ll(i, t) { - return i.x === t.x && i.y === t.y - } - - function Vm(i, t, r, a) { - const c = ld(Yi(i, t, r)), - p = ld(Yi(i, t, a)), - f = ld(Yi(r, a, i)), - g = ld(Yi(r, a, t)); - return c !== p && f !== g || !(c !== 0 || !od(i, r, t)) || !(p !== 0 || !od(i, a, t)) || !(f !== 0 || !od(r, i, a)) || !(g !== 0 || !od(r, t, a)) - } - - function od(i, t, r) { - return t.x <= Math.max(i.x, r.x) && t.x >= Math.min(i.x, r.x) && t.y <= Math.max(i.y, r.y) && t.y >= Math.min(i.y, r.y) - } - - function ld(i) { - return i > 0 ? 1 : i < 0 ? -1 : 0 - } - - function su(i, t) { - return Yi(i.prev, i, i.next) < 0 ? Yi(i, t, i.next) >= 0 && Yi(i, i.prev, t) >= 0 : Yi(i, t, i.prev) < 0 || Yi(i, i.next, t) < 0 - } - - function Um(i, t) { - const r = zp(i.i, i.x, i.y), - a = zp(t.i, t.x, t.y), - c = i.next, - p = t.prev; - return i.next = t, t.prev = i, r.next = c, c.prev = r, a.next = r, r.prev = a, p.next = a, a.prev = p, a - } - - function Zm(i, t, r, a) { - const c = zp(i, t, r); - return a ? (c.next = a.next, c.prev = a, a.next.prev = c, a.next = c) : (c.prev = c, c.next = c), c - } - - function ou(i) { - i.next.prev = i.prev, i.prev.next = i.next, i.prevZ && (i.prevZ.nextZ = i.nextZ), i.nextZ && (i.nextZ.prevZ = i.prevZ) - } - - function zp(i, t, r) { - return { - i, - x: t, - y: r, - prev: null, - next: null, - z: 0, - prevZ: null, - nextZ: null, - steiner: !1 - } - } - class Dl { - constructor(t, r) { - if (r > t) throw new Error("Min granularity must not be greater than base granularity."); - this._baseZoomGranularity = t, this._minGranularity = r - } - getGranularityForZoomLevel(t) { - return Math.max(Math.floor(this._baseZoomGranularity / (1 << t)), this._minGranularity, 1) - } - } - class cd { - constructor(t) { - this.fill = t.fill, this.line = t.line, this.tile = t.tile, this.stencil = t.stencil, this.circle = t.circle - } - } - cd.noSubdivision = new cd({ - fill: new Dl(0, 0), - line: new Dl(0, 0), - tile: new Dl(0, 0), - stencil: new Dl(0, 0), - circle: 1 - }), Kt("SubdivisionGranularityExpression", Dl), Kt("SubdivisionGranularitySetting", cd); - const Rl = -32768, - lu = 32767; - class s0 { - constructor(t, r) { - this._vertexBuffer = [], this._vertexDictionary = new Map, this._used = !1, this._granularity = t, this._granularityCellSize = ne / t, this._canonical = r - } - _getKey(t, r) { - return (t += 32768) << 16 | r + 32768 - } - _vertexToIndex(t, r) { - if (t < -32768 || r < -32768 || t > 32767 || r > 32767) throw new Error("Vertex coordinates are out of signed 16 bit integer range."); - const a = 0 | Math.round(t), - c = 0 | Math.round(r), - p = this._getKey(a, c); - if (this._vertexDictionary.has(p)) return this._vertexDictionary.get(p); - const f = this._vertexBuffer.length / 2; - return this._vertexDictionary.set(p, f), this._vertexBuffer.push(a, c), f - } - _subdivideTrianglesScanline(t) { - if (this._granularity < 2) return (function(c, p) { - const f = []; - for (let g = 0; g < p.length; g += 3) { - const v = p[g], - S = p[g + 1], - I = p[g + 2], - E = c[2 * v], - R = c[2 * v + 1]; - (c[2 * S] - E) * (c[2 * I + 1] - R) - (c[2 * S + 1] - R) * (c[2 * I] - E) > 0 ? (f.push(v), f.push(I), f.push(S)) : (f.push(v), f.push(S), f.push(I)) - } - return f - })(this._vertexBuffer, t); - const r = [], - a = t.length; - for (let c = 0; c < a; c += 3) { - const p = [t[c + 0], t[c + 1], t[c + 2]], - f = [this._vertexBuffer[2 * t[c + 0] + 0], this._vertexBuffer[2 * t[c + 0] + 1], this._vertexBuffer[2 * t[c + 1] + 0], this._vertexBuffer[2 * t[c + 1] + 1], this._vertexBuffer[2 * t[c + 2] + 0], this._vertexBuffer[2 * t[c + 2] + 1]]; - let g = 1 / 0, - v = 1 / 0, - S = -1 / 0, - I = -1 / 0; - for (let Z = 0; Z < 3; Z++) { - const Y = f[2 * Z], - ae = f[2 * Z + 1]; - g = Math.min(g, Y), S = Math.max(S, Y), v = Math.min(v, ae), I = Math.max(I, ae) - } - if (g === S || v === I) continue; - const E = Math.floor(g / this._granularityCellSize), - R = Math.ceil(S / this._granularityCellSize), - N = Math.floor(v / this._granularityCellSize), - j = Math.ceil(I / this._granularityCellSize); - if (E !== R || N !== j) - for (let Z = N; Z < j; Z++) { - const Y = this._scanlineGenerateVertexRingForCellRow(Z, f, p); - o0(this._vertexBuffer, Y, r) - } else r.push(...p) - } - return r - } - _scanlineGenerateVertexRingForCellRow(t, r, a) { - const c = t * this._granularityCellSize, - p = c + this._granularityCellSize, - f = []; - for (let g = 0; g < 3; g++) { - const v = r[2 * g], - S = r[2 * g + 1], - I = r[2 * (g + 1) % 6], - E = r[(2 * (g + 1) + 1) % 6], - R = r[2 * (g + 2) % 6], - N = r[(2 * (g + 2) + 1) % 6], - j = I - v, - Z = E - S, - Y = j === 0, - ae = Z === 0, - ze = (c - S) / Z, - me = (p - S) / Z, - be = Math.min(ze, me), - Ve = Math.max(ze, me); - if (!ae && (be >= 1 || Ve <= 0) || ae && (S < c || S > p)) { - E >= c && E <= p && f.push(a[(g + 1) % 3]); - continue - }!ae && be > 0 && f.push(this._vertexToIndex(v + j * be, S + Z * be)); - const rt = v + j * Math.max(be, 0), - St = v + j * Math.min(Ve, 1); - Y || this._generateIntraEdgeVertices(f, v, S, I, E, rt, St), !ae && Ve < 1 && f.push(this._vertexToIndex(v + j * Ve, S + Z * Ve)), (ae || E >= c && E <= p) && f.push(a[(g + 1) % 3]), !ae && (E <= c || E >= p) && this._generateInterEdgeVertices(f, v, S, I, E, R, N, St, c, p) - } - return f - } - _generateIntraEdgeVertices(t, r, a, c, p, f, g) { - const v = c - r, - S = p - a, - I = S === 0, - E = I ? Math.min(r, c) : Math.min(f, g), - R = I ? Math.max(r, c) : Math.max(f, g), - N = Math.floor(E / this._granularityCellSize) + 1, - j = Math.ceil(R / this._granularityCellSize) - 1; - if (I ? r < c : f < g) - for (let Z = N; Z <= j; Z++) { - const Y = Z * this._granularityCellSize; - t.push(this._vertexToIndex(Y, a + S * (Y - r) / v)) - } else - for (let Z = j; Z >= N; Z--) { - const Y = Z * this._granularityCellSize; - t.push(this._vertexToIndex(Y, a + S * (Y - r) / v)) - } - } - _generateInterEdgeVertices(t, r, a, c, p, f, g, v, S, I) { - const E = p - a, - R = f - c, - N = g - p, - j = (S - p) / N, - Z = (I - p) / N, - Y = Math.min(j, Z), - ae = Math.max(j, Z), - ze = c + R * Y; - let me = Math.floor(Math.min(ze, v) / this._granularityCellSize) + 1, - be = Math.ceil(Math.max(ze, v) / this._granularityCellSize) - 1, - Ve = v < ze; - const rt = N === 0; - if (rt && (g === S || g === I)) return; - if (rt || Y >= 1 || ae <= 0) { - const $t = a - g, - Bt = f + (r - f) * Math.min((S - g) / $t, (I - g) / $t); - me = Math.floor(Math.min(Bt, v) / this._granularityCellSize) + 1, be = Math.ceil(Math.max(Bt, v) / this._granularityCellSize) - 1, Ve = v < Bt - } - const St = E > 0 ? I : S; - if (Ve) - for (let $t = me; $t <= be; $t++) t.push(this._vertexToIndex($t * this._granularityCellSize, St)); - else - for (let $t = be; $t >= me; $t--) t.push(this._vertexToIndex($t * this._granularityCellSize, St)) - } - _generateOutline(t) { - const r = []; - for (const a of t) { - const c = Fo(a, this._granularity, !0), - p = this._pointArrayToIndices(c), - f = []; - for (let g = 1; g < p.length; g++) f.push(p[g - 1]), f.push(p[g]); - r.push(f) - } - return r - } - _handlePoles(t) { - let r = !1, - a = !1; - this._canonical && (this._canonical.y === 0 && (r = !0), this._canonical.y === (1 << this._canonical.z) - 1 && (a = !0)), (r || a) && this._fillPoles(t, r, a) - } - _ensureNoPoleVertices() { - const t = this._vertexBuffer; - for (let r = 0; r < t.length; r += 2) { - const a = t[r + 1]; - a === Rl && (t[r + 1] = -32767), a === lu && (t[r + 1] = 32766) - } - } - _generatePoleQuad(t, r, a, c, p, f) { - c > p != (f === Rl) ? (t.push(r), t.push(a), t.push(this._vertexToIndex(c, f)), t.push(a), t.push(this._vertexToIndex(p, f)), t.push(this._vertexToIndex(c, f))) : (t.push(a), t.push(r), t.push(this._vertexToIndex(c, f)), t.push(this._vertexToIndex(p, f)), t.push(a), t.push(this._vertexToIndex(c, f))) - } - _fillPoles(t, r, a) { - const c = this._vertexBuffer, - p = ne, - f = t.length; - for (let g = 2; g < f; g += 3) { - const v = t[g - 2], - S = t[g - 1], - I = t[g], - E = c[2 * v], - R = c[2 * v + 1], - N = c[2 * S], - j = c[2 * S + 1], - Z = c[2 * I], - Y = c[2 * I + 1]; - r && (R === 0 && j === 0 && this._generatePoleQuad(t, v, S, E, N, Rl), j === 0 && Y === 0 && this._generatePoleQuad(t, S, I, N, Z, Rl), Y === 0 && R === 0 && this._generatePoleQuad(t, I, v, Z, E, Rl)), a && (R === p && j === p && this._generatePoleQuad(t, v, S, E, N, lu), j === p && Y === p && this._generatePoleQuad(t, S, I, N, Z, lu), Y === p && R === p && this._generatePoleQuad(t, I, v, Z, E, lu)) - } - } - _initializeVertices(t) { - for (let r = 0; r < t.length; r += 2) this._vertexToIndex(t[r], t[r + 1]) - } - subdividePolygonInternal(t, r) { - if (this._used) throw new Error("Subdivision: multiple use not allowed."); - this._used = !0; - const { - flattened: a, - holeIndices: c - } = (function(g) { - const v = [], - S = []; - for (const I of g) - if (I.length !== 0) { - I !== g[0] && v.push(S.length / 2); - for (let E = 0; E < I.length; E++) S.push(I[E].x), S.push(I[E].y) - } return { - flattened: S, - holeIndices: v - } - })(t); - let p; - this._initializeVertices(a); - try { - const g = (function(S, I, E = 2) { - const R = I && I.length, - N = R ? I[0] * E : S.length; - let j = jm(S, 0, N, E, !0); - const Z = []; - if (!j || j.next === j.prev) return Z; - let Y, ae, ze; - if (R && (j = (function(me, be, Ve, rt) { - const St = []; - for (let $t = 0, Bt = be.length; $t < Bt; $t++) { - const Ut = jm(me, be[$t] * rt, $t < Bt - 1 ? be[$t + 1] * rt : me.length, rt, !1); - Ut === Ut.next && (Ut.steiner = !0), St.push(n0(Ut)) - } - St.sort(t0); - for (let $t = 0; $t < St.length; $t++) Ve = r0(St[$t], Ve); - return Ve - })(S, I, j, E)), S.length > 80 * E) { - Y = S[0], ae = S[1]; - let me = Y, - be = ae; - for (let Ve = E; Ve < N; Ve += E) { - const rt = S[Ve], - St = S[Ve + 1]; - rt < Y && (Y = rt), St < ae && (ae = St), rt > me && (me = rt), St > be && (be = St) - } - ze = Math.max(me - Y, be - ae), ze = ze !== 0 ? 32767 / ze : 0 - } - return nu(j, Z, E, Y, ae, ze, 0), Z - })(a, c), - v = this._convertIndices(a, g); - p = this._subdivideTrianglesScanline(v) - } catch (g) { - console.error(g) - } - let f = []; - return r && (f = this._generateOutline(t)), this._ensureNoPoleVertices(), this._handlePoles(p), { - verticesFlattened: this._vertexBuffer, - indicesTriangles: p, - indicesLineList: f - } - } - _convertIndices(t, r) { - const a = []; - for (let c = 0; c < r.length; c++) a.push(this._vertexToIndex(t[2 * r[c]], t[2 * r[c] + 1])); - return a - } - _pointArrayToIndices(t) { - const r = []; - for (let a = 0; a < t.length; a++) { - const c = t[a]; - r.push(this._vertexToIndex(c.x, c.y)) - } - return r - } - } - - function $m(i, t, r, a = !0) { - return new s0(r, t).subdividePolygonInternal(i, a) - } - - function Fo(i, t, r = !1) { - if (!i || i.length < 1) return []; - if (i.length < 2) return []; - const a = i[0], - c = i[i.length - 1], - p = r && (a.x !== c.x || a.y !== c.y); - if (t < 2) return p ? [...i, i[0]] : [...i]; - const f = Math.floor(ne / t), - g = []; - g.push(new $(i[0].x, i[0].y)); - const v = i.length, - S = p ? v : v - 1; - for (let I = 0; I < S; I++) { - const E = i[I], - R = I < v - 1 ? i[I + 1] : i[0], - N = E.x, - j = E.y, - Z = R.x, - Y = R.y, - ae = N !== Z, - ze = j !== Y; - if (!ae && !ze) continue; - const me = Z - N, - be = Y - j, - Ve = Math.abs(me), - rt = Math.abs(be); - let St = N, - $t = j; - for (;;) { - const Ut = me > 0 ? (Math.floor(St / f) + 1) * f : (Math.ceil(St / f) - 1) * f, - pr = be > 0 ? (Math.floor($t / f) + 1) * f : (Math.ceil($t / f) - 1) * f, - Vt = Math.abs(St - Ut), - Zt = Math.abs($t - pr), - mt = Math.abs(St - Z), - Br = Math.abs($t - Y), - Ur = ae ? Vt / Ve : Number.POSITIVE_INFINITY, - xr = ze ? Zt / rt : Number.POSITIVE_INFINITY; - if ((mt <= Vt || !ae) && (Br <= Zt || !ze)) break; - if (Ur < xr && ae || !ze) { - St = Ut, $t += be * Ur; - const or = new $(St, Math.round($t)); - g[g.length - 1].x === or.x && g[g.length - 1].y === or.y || g.push(or) - } else { - St += me * xr, $t = pr; - const or = new $(Math.round(St), $t); - g[g.length - 1].x === or.x && g[g.length - 1].y === or.y || g.push(or) - } - } - const Bt = new $(Z, Y); - g[g.length - 1].x === Bt.x && g[g.length - 1].y === Bt.y || g.push(Bt) - } - return g - } - - function o0(i, t, r) { - if (t.length === 0) throw new Error("Subdivision vertex ring is empty."); - let a = 0, - c = i[2 * t[0]]; - for (let v = 1; v < t.length; v++) { - const S = i[2 * t[v]]; - S < c && (c = S, a = v) - } - const p = t.length; - let f = a, - g = (f + 1) % p; - for (;;) { - const v = f - 1 >= 0 ? f - 1 : p - 1, - S = (g + 1) % p, - I = i[2 * t[v]], - E = i[2 * t[S]], - R = i[2 * t[f]], - N = i[2 * t[f] + 1], - j = i[2 * t[g] + 1]; - let Z = !1; - if (I < E) Z = !0; - else if (I > E) Z = !1; - else { - const Y = j - N, - ae = -(i[2 * t[g]] - R), - ze = N < j ? 1 : -1; - ((I - R) * Y + (i[2 * t[v] + 1] - N) * ae) * ze > ((E - R) * Y + (i[2 * t[S] + 1] - N) * ae) * ze && (Z = !0) - } - if (Z) { - const Y = t[v], - ae = t[f], - ze = t[g]; - Y !== ae && Y !== ze && ae !== ze && r.push(ze, ae, Y), f--, f < 0 && (f = p - 1) - } else { - const Y = t[S], - ae = t[f], - ze = t[g]; - Y !== ae && Y !== ze && ae !== ze && r.push(ze, ae, Y), g++, g >= p && (g = 0) - } - if (v === S) break - } - } - - function Gm(i, t, r, a, c, p, f, g, v) { - const S = c.length / 2, - I = f && g && v; - if (S < Wr.MAX_VERTEX_ARRAY_LENGTH) { - const E = t.prepareSegment(S, r, a), - R = E.vertexLength; - for (let Z = 0; Z < p.length; Z += 3) a.emplaceBack(R + p[Z], R + p[Z + 1], R + p[Z + 2]); - let N, j; - E.vertexLength += S, E.primitiveLength += p.length / 3, I && (j = f.prepareSegment(S, r, g), N = j.vertexLength, j.vertexLength += S); - for (let Z = 0; Z < c.length; Z += 2) i(c[Z], c[Z + 1]); - if (I) - for (let Z = 0; Z < v.length; Z++) { - const Y = v[Z]; - for (let ae = 1; ae < Y.length; ae += 2) g.emplaceBack(N + Y[ae - 1], N + Y[ae]); - j.primitiveLength += Y.length / 2 - } - } else(function(E, R, N, j, Z, Y) { - const ae = []; - for (let rt = 0; rt < j.length / 2; rt++) ae.push(-1); - const ze = { - count: 0 - }; - let me = 0, - be = E.getOrCreateLatestSegment(R, N), - Ve = be.vertexLength; - for (let rt = 2; rt < Z.length; rt += 3) { - const St = Z[rt - 2], - $t = Z[rt - 1], - Bt = Z[rt]; - let Ut = ae[St] < me, - pr = ae[$t] < me, - Vt = ae[Bt] < me; - be.vertexLength + ((Ut ? 1 : 0) + (pr ? 1 : 0) + (Vt ? 1 : 0)) > Wr.MAX_VERTEX_ARRAY_LENGTH && (be = E.createNewSegment(R, N), me = ze.count, Ut = !0, pr = !0, Vt = !0, Ve = 0); - const Zt = cu(ae, j, Y, ze, St, Ut, be), - mt = cu(ae, j, Y, ze, $t, pr, be), - Br = cu(ae, j, Y, ze, Bt, Vt, be); - N.emplaceBack(Ve + Zt - me, Ve + mt - me, Ve + Br - me), be.primitiveLength++ - } - })(t, r, a, c, p, i), I && (function(E, R, N, j, Z, Y) { - const ae = []; - for (let rt = 0; rt < j.length / 2; rt++) ae.push(-1); - const ze = { - count: 0 - }; - let me = 0, - be = E.getOrCreateLatestSegment(R, N), - Ve = be.vertexLength; - for (let rt = 0; rt < Z.length; rt++) { - const St = Z[rt]; - for (let $t = 1; $t < Z[rt].length; $t += 2) { - const Bt = St[$t - 1], - Ut = St[$t]; - let pr = ae[Bt] < me, - Vt = ae[Ut] < me; - be.vertexLength + ((pr ? 1 : 0) + (Vt ? 1 : 0)) > Wr.MAX_VERTEX_ARRAY_LENGTH && (be = E.createNewSegment(R, N), me = ze.count, pr = !0, Vt = !0, Ve = 0); - const Zt = cu(ae, j, Y, ze, Bt, pr, be), - mt = cu(ae, j, Y, ze, Ut, Vt, be); - N.emplaceBack(Ve + Zt - me, Ve + mt - me), be.primitiveLength++ - } - } - })(f, r, g, c, v, i), t.forceNewSegmentOnNextPrepare(), f == null || f.forceNewSegmentOnNextPrepare() - } - - function cu(i, t, r, a, c, p, f) { - if (p) { - const g = a.count; - return r(t[2 * c], t[2 * c + 1]), i[c] = a.count, a.count++, f.vertexLength++, g - } - return i[c] - } - class Lp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.patternFeatures = [], this.layoutVertexArray = new He, this.indexArray = new ki, this.indexArray2 = new Pi, this.programConfigurations = new ia(t.layers, t.zoom), this.segments = new Wr, this.segments2 = new Wr, this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - this.hasPattern = Ap("fill", this.layers, r); - const c = this.layers[0].layout.get("fill-sort-key"), - p = !c.isConstant(), - f = []; - for (const { - feature: g, - id: v, - index: S, - sourceLayerIndex: I - } - of t) { - const E = this.layers[0]._featureFilter.needGeometry, - R = Wa(g, E); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), R, a)) continue; - const N = p ? c.evaluate(R, {}, a, r.availableImages) : void 0, - j = { - id: v, - properties: g.properties, - type: g.type, - sourceLayerIndex: I, - index: S, - geometry: E ? R.geometry : cs(g), - patterns: {}, - sortKey: N - }; - f.push(j) - } - p && f.sort(((g, v) => g.sortKey - v.sortKey)); - for (const g of f) { - const { - geometry: v, - index: S, - sourceLayerIndex: I - } = g; - if (this.hasPattern) { - const E = kp("fill", this.layers, g, this.zoom, r); - this.patternFeatures.push(E) - } else this.addFeature(g, v, S, a, {}, r.subdivisionGranularity); - r.featureIndex.insert(t[S].feature, v, S, I, this.index) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - addFeatures(t, r, a) { - for (const c of this.patternFeatures) this.addFeature(c, c.geometry, c.index, r, a, t.subdivisionGranularity) - } - isEmpty() { - return this.layoutVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, Kv), this.indexBuffer = t.createIndexBuffer(this.indexArray), this.indexBuffer2 = t.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy()) - } - addFeature(t, r, a, c, p, f) { - for (const g of xo(r, 500)) { - const v = $m(g, c, f.fill.getGranularityForZoomLevel(c.z)), - S = this.layoutVertexArray; - Gm(((I, E) => { - S.emplaceBack(I, E) - }), this.segments, this.layoutVertexArray, this.indexArray, v.verticesFlattened, v.indicesTriangles, this.segments2, this.indexArray2, v.indicesLineList) - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, p, c) - } - } - let Hm, Wm; - Kt("FillBucket", Lp, { - omit: ["layers", "patternFeatures"] - }); - var l0 = { - get paint() { - return Wm = Wm || new jn({ - "fill-antialias": new hr(xe.paint_fill["fill-antialias"]), - "fill-opacity": new Rr(xe.paint_fill["fill-opacity"]), - "fill-color": new Rr(xe.paint_fill["fill-color"]), - "fill-outline-color": new Rr(xe.paint_fill["fill-outline-color"]), - "fill-translate": new hr(xe.paint_fill["fill-translate"]), - "fill-translate-anchor": new hr(xe.paint_fill["fill-translate-anchor"]), - "fill-pattern": new Sl(xe.paint_fill["fill-pattern"]) - }) - }, - get layout() { - return Hm = Hm || new jn({ - "fill-sort-key": new Rr(xe.layout_fill["fill-sort-key"]) - }) - } - }; - class c0 extends ha { - constructor(t) { - super(t, l0) - } - recalculate(t, r) { - super.recalculate(t, r); - const a = this.paint._values["fill-outline-color"]; - a.value.kind === "constant" && a.value.value === void 0 && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]) - } - createBucket(t) { - return new Lp(t) - } - queryRadius() { - return ad(this.paint.get("fill-translate")) - } - queryIntersectsFeature({ - queryGeometry: t, - geometry: r, - transform: a, - pixelsToTileUnits: c - }) { - return Pm(sd(t, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), -a.bearingInRadians, c), r) - } - isTileClipped() { - return !0 - } - } - const u0 = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }, { - name: "a_normal_ed", - components: 4, - type: "Int16" - }], 4), - h0 = Hi([{ - name: "a_centroid", - components: 2, - type: "Int16" - }], 4), - { - members: d0 - } = u0; - class Bl { - constructor(t, r, a, c, p) { - this.properties = {}, this.extent = a, this.type = 0, this.id = void 0, this._pbf = t, this._geometry = -1, this._keys = c, this._values = p, t.readFields(p0, this, r) - } - loadGeometry() { - const t = this._pbf; - t.pos = this._geometry; - const r = t.readVarint() + t.pos, - a = []; - let c, p = 1, - f = 0, - g = 0, - v = 0; - for (; t.pos < r;) { - if (f <= 0) { - const S = t.readVarint(); - p = 7 & S, f = S >> 3 - } - if (f--, p === 1 || p === 2) g += t.readSVarint(), v += t.readSVarint(), p === 1 && (c && a.push(c), c = []), c && c.push(new $(g, v)); - else { - if (p !== 7) throw new Error(`unknown command ${p}`); - c && c.push(c[0].clone()) - } - } - return c && a.push(c), a - } - bbox() { - const t = this._pbf; - t.pos = this._geometry; - const r = t.readVarint() + t.pos; - let a = 1, - c = 0, - p = 0, - f = 0, - g = 1 / 0, - v = -1 / 0, - S = 1 / 0, - I = -1 / 0; - for (; t.pos < r;) { - if (c <= 0) { - const E = t.readVarint(); - a = 7 & E, c = E >> 3 - } - if (c--, a === 1 || a === 2) p += t.readSVarint(), f += t.readSVarint(), p < g && (g = p), p > v && (v = p), f < S && (S = f), f > I && (I = f); - else if (a !== 7) throw new Error(`unknown command ${a}`) - } - return [g, S, v, I] - } - toGeoJSON(t, r, a) { - const c = this.extent * Math.pow(2, a), - p = this.extent * t, - f = this.extent * r, - g = this.loadGeometry(); - - function v(R) { - return [360 * (R.x + p) / c - 180, 360 / Math.PI * Math.atan(Math.exp((1 - 2 * (R.y + f) / c) * Math.PI)) - 90] - } - - function S(R) { - return R.map(v) - } - let I; - if (this.type === 1) { - const R = []; - for (const j of g) R.push(j[0]); - const N = S(R); - I = R.length === 1 ? { - type: "Point", - coordinates: N[0] - } : { - type: "MultiPoint", - coordinates: N - } - } else if (this.type === 2) { - const R = g.map(S); - I = R.length === 1 ? { - type: "LineString", - coordinates: R[0] - } : { - type: "MultiLineString", - coordinates: R - } - } else { - if (this.type !== 3) throw new Error("unknown feature type"); - { - const R = (function(j) { - const Z = j.length; - if (Z <= 1) return [j]; - const Y = []; - let ae, ze; - for (let me = 0; me < Z; me++) { - const be = f0(j[me]); - be !== 0 && (ze === void 0 && (ze = be < 0), ze === be < 0 ? (ae && Y.push(ae), ae = [j[me]]) : ae && ae.push(j[me])) - } - return ae && Y.push(ae), Y - })(g), - N = []; - for (const j of R) N.push(j.map(S)); - I = N.length === 1 ? { - type: "Polygon", - coordinates: N[0] - } : { - type: "MultiPolygon", - coordinates: N - } - } - } - const E = { - type: "Feature", - geometry: I, - properties: this.properties - }; - return this.id != null && (E.id = this.id), E - } - } - - function p0(i, t, r) { - i === 1 ? t.id = r.readVarint() : i === 2 ? (function(a, c) { - const p = a.readVarint() + a.pos; - for (; a.pos < p;) { - const f = c._keys[a.readVarint()], - g = c._values[a.readVarint()]; - c.properties[f] = g - } - })(r, t) : i === 3 ? t.type = r.readVarint() : i === 4 && (t._geometry = r.pos) - } - - function f0(i) { - let t = 0; - for (let r, a, c = 0, p = i.length, f = p - 1; c < p; f = c++) r = i[c], a = i[f], t += (a.x - r.x) * (r.y + a.y); - return t - } - Bl.types = ["Unknown", "Point", "LineString", "Polygon"]; - class Xm { - constructor(t, r) { - this.version = 1, this.name = "", this.extent = 4096, this.length = 0, this._pbf = t, this._keys = [], this._values = [], this._features = [], t.readFields(m0, this, r), this.length = this._features.length - } - feature(t) { - if (t < 0 || t >= this._features.length) throw new Error("feature index out of bounds"); - this._pbf.pos = this._features[t]; - const r = this._pbf.readVarint() + this._pbf.pos; - return new Bl(this._pbf, r, this.extent, this._keys, this._values) - } - } - - function m0(i, t, r) { - i === 15 ? t.version = r.readVarint() : i === 1 ? t.name = r.readString() : i === 5 ? t.extent = r.readVarint() : i === 2 ? t._features.push(r.pos) : i === 3 ? t._keys.push(r.readString()) : i === 4 && t._values.push((function(a) { - let c = null; - const p = a.readVarint() + a.pos; - for (; a.pos < p;) { - const f = a.readVarint() >> 3; - c = f === 1 ? a.readString() : f === 2 ? a.readFloat() : f === 3 ? a.readDouble() : f === 4 ? a.readVarint64() : f === 5 ? a.readVarint() : f === 6 ? a.readSVarint() : f === 7 ? a.readBoolean() : null - } - if (c == null) throw new Error("unknown feature value"); - return c - })(r)) - } - class Km { - constructor(t, r) { - this.layers = t.readFields(_0, {}, r) - } - } - - function _0(i, t, r) { - if (i === 3) { - const a = new Xm(r, r.readVarint() + r.pos); - a.length && (t[a.name] = a) - } - } - const Dp = Math.pow(2, 13); - - function uu(i, t, r, a, c, p, f, g) { - i.emplaceBack(t, r, 2 * Math.floor(a * Dp) + f, c * Dp * 2, p * Dp * 2, Math.round(g)) - } - class Rp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.layoutVertexArray = new je, this.centroidVertexArray = new he, this.indexArray = new ki, this.programConfigurations = new ia(t.layers, t.zoom), this.segments = new Wr, this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - this.features = [], this.hasPattern = Ap("fill-extrusion", this.layers, r); - for (const { - feature: c, - id: p, - index: f, - sourceLayerIndex: g - } - of t) { - const v = this.layers[0]._featureFilter.needGeometry, - S = Wa(c, v); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), S, a)) continue; - const I = { - id: p, - sourceLayerIndex: g, - index: f, - geometry: v ? S.geometry : cs(c), - properties: c.properties, - type: c.type, - patterns: {} - }; - this.hasPattern ? this.features.push(kp("fill-extrusion", this.layers, I, this.zoom, r)) : this.addFeature(I, I.geometry, f, a, {}, r.subdivisionGranularity), r.featureIndex.insert(c, I.geometry, f, g, this.index, !0) - } - } - addFeatures(t, r, a) { - for (const c of this.features) { - const { - geometry: p - } = c; - this.addFeature(c, p, c.index, r, a, t.subdivisionGranularity) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - isEmpty() { - return this.layoutVertexArray.length === 0 && this.centroidVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, d0), this.centroidVertexBuffer = t.createVertexBuffer(this.centroidVertexArray, h0.members, !0), this.indexBuffer = t.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.centroidVertexBuffer.destroy()) - } - addFeature(t, r, a, c, p, f) { - for (const g of xo(r, 500)) { - const v = { - x: 0, - y: 0, - sampleCount: 0 - }, - S = this.layoutVertexArray.length; - this.processPolygon(v, c, t, g, f); - const I = this.layoutVertexArray.length - S, - E = Math.floor(v.x / v.sampleCount), - R = Math.floor(v.y / v.sampleCount); - for (let N = 0; N < I; N++) this.centroidVertexArray.emplaceBack(E, R) - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, p, c) - } - processPolygon(t, r, a, c, p) { - if (c.length < 1 || Ym(c[0])) return; - for (const E of c) E.length !== 0 && g0(t, E); - const f = { - segment: this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray) - }, - g = p.fill.getGranularityForZoomLevel(r.z), - v = Bl.types[a.type] === "Polygon"; - for (const E of c) { - if (E.length === 0 || Ym(E)) continue; - const R = Fo(E, g, v); - this._generateSideFaces(R, f) - } - if (!v) return; - const S = $m(c, r, g, !1), - I = this.layoutVertexArray; - Gm(((E, R) => { - uu(I, E, R, 0, 0, 1, 1, 0) - }), this.segments, this.layoutVertexArray, this.indexArray, S.verticesFlattened, S.indicesTriangles) - } - _generateSideFaces(t, r) { - let a = 0; - for (let c = 1; c < t.length; c++) { - const p = t[c], - f = t[c - 1]; - if (v0(p, f)) continue; - r.segment.vertexLength + 4 > Wr.MAX_VERTEX_ARRAY_LENGTH && (r.segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray)); - const g = p.sub(f)._perp()._unit(), - v = f.dist(p); - a + v > 32768 && (a = 0), uu(this.layoutVertexArray, p.x, p.y, g.x, g.y, 0, 0, a), uu(this.layoutVertexArray, p.x, p.y, g.x, g.y, 0, 1, a), a += v, uu(this.layoutVertexArray, f.x, f.y, g.x, g.y, 0, 0, a), uu(this.layoutVertexArray, f.x, f.y, g.x, g.y, 0, 1, a); - const S = r.segment.vertexLength; - this.indexArray.emplaceBack(S, S + 2, S + 1), this.indexArray.emplaceBack(S + 1, S + 2, S + 3), r.segment.vertexLength += 4, r.segment.primitiveLength += 2 - } - } - } - - function g0(i, t) { - for (let r = 0; r < t.length; r++) { - const a = t[r]; - r === t.length - 1 && t[0].x === a.x && t[0].y === a.y || (i.x += a.x, i.y += a.y, i.sampleCount++) - } - } - - function v0(i, t) { - return i.x === t.x && (i.x < 0 || i.x > ne) || i.y === t.y && (i.y < 0 || i.y > ne) - } - - function Ym(i) { - return i.every((t => t.x < 0)) || i.every((t => t.x > ne)) || i.every((t => t.y < 0)) || i.every((t => t.y > ne)) - } - let Jm; - Kt("FillExtrusionBucket", Rp, { - omit: ["layers", "features"] - }); - var y0 = { - get paint() { - return Jm = Jm || new jn({ - "fill-extrusion-opacity": new hr(xe["paint_fill-extrusion"]["fill-extrusion-opacity"]), - "fill-extrusion-color": new Rr(xe["paint_fill-extrusion"]["fill-extrusion-color"]), - "fill-extrusion-translate": new hr(xe["paint_fill-extrusion"]["fill-extrusion-translate"]), - "fill-extrusion-translate-anchor": new hr(xe["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), - "fill-extrusion-pattern": new Sl(xe["paint_fill-extrusion"]["fill-extrusion-pattern"]), - "fill-extrusion-height": new Rr(xe["paint_fill-extrusion"]["fill-extrusion-height"]), - "fill-extrusion-base": new Rr(xe["paint_fill-extrusion"]["fill-extrusion-base"]), - "fill-extrusion-vertical-gradient": new hr(xe["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) - }) - } - }; - class x0 extends ha { - constructor(t) { - super(t, y0) - } - createBucket(t) { - return new Rp(t) - } - queryRadius() { - return ad(this.paint.get("fill-extrusion-translate")) - } - is3D() { - return !0 - } - queryIntersectsFeature({ - queryGeometry: t, - feature: r, - featureState: a, - geometry: c, - transform: p, - pixelsToTileUnits: f, - pixelPosMatrix: g - }) { - const v = sd(t, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), -p.bearingInRadians, f), - S = this.paint.get("fill-extrusion-height").evaluate(r, a), - I = this.paint.get("fill-extrusion-base").evaluate(r, a), - E = (function(N, j) { - const Z = []; - for (const Y of N) { - const ae = [Y.x, Y.y, 0, 1]; - ke(ae, ae, j), Z.push(new $(ae[0] / ae[3], ae[1] / ae[3])) - } - return Z - })(v, g), - R = (function(N, j, Z, Y) { - const ae = [], - ze = [], - me = Y[8] * j, - be = Y[9] * j, - Ve = Y[10] * j, - rt = Y[11] * j, - St = Y[8] * Z, - $t = Y[9] * Z, - Bt = Y[10] * Z, - Ut = Y[11] * Z; - for (const pr of N) { - const Vt = [], - Zt = []; - for (const mt of pr) { - const Br = mt.x, - Ur = mt.y, - xr = Y[0] * Br + Y[4] * Ur + Y[12], - or = Y[1] * Br + Y[5] * Ur + Y[13], - oi = Y[2] * Br + Y[6] * Ur + Y[14], - Zi = Y[3] * Br + Y[7] * Ur + Y[15], - fn = oi + Ve, - Bn = Zi + rt, - Aa = xr + St, - aa = or + $t, - Mn = oi + Bt, - qi = Zi + Ut, - wn = new $((xr + me) / Bn, (or + be) / Bn); - wn.z = fn / Bn, Vt.push(wn); - const An = new $(Aa / qi, aa / qi); - An.z = Mn / qi, Zt.push(An) - } - ae.push(Vt), ze.push(Zt) - } - return [ae, ze] - })(c, I, S, g); - return (function(N, j, Z) { - let Y = 1 / 0; - Pm(Z, j) && (Y = Qm(Z, j[0])); - for (let ae = 0; ae < j.length; ae++) { - const ze = j[ae], - me = N[ae]; - for (let be = 0; be < ze.length - 1; be++) { - const Ve = ze[be], - rt = [Ve, ze[be + 1], me[be + 1], me[be], Ve]; - Sm(Z, rt) && (Y = Math.min(Y, Qm(Z, rt))) - } - } - return Y !== 1 / 0 && Y - })(R[0], R[1], E) - } - } - - function hu(i, t) { - return i.x * t.x + i.y * t.y - } - - function Qm(i, t) { - if (i.length === 1) { - let r = 0; - const a = t[r++]; - let c; - for (; !c || a.equals(c);) - if (c = t[r++], !c) return 1 / 0; - for (; r < t.length; r++) { - const p = t[r], - f = i[0], - g = c.sub(a), - v = p.sub(a), - S = f.sub(a), - I = hu(g, g), - E = hu(g, v), - R = hu(v, v), - N = hu(S, g), - j = hu(S, v), - Z = I * R - E * E, - Y = (R * N - E * j) / Z, - ae = (I * j - E * N) / Z, - ze = a.z * (1 - Y - ae) + c.z * Y + p.z * ae; - if (isFinite(ze)) return ze - } - return 1 / 0 - } { - let r = 1 / 0; - for (const a of t) r = Math.min(r, a.z); - return r - } - } - const b0 = Hi([{ - name: "a_pos_normal", - components: 2, - type: "Int16" - }, { - name: "a_data", - components: 4, - type: "Uint8" - }], 4), - { - members: w0 - } = b0, - T0 = Hi([{ - name: "a_uv_x", - components: 1, - type: "Float32" - }, { - name: "a_split_index", - components: 1, - type: "Float32" - }]), - { - members: C0 - } = T0, - S0 = Math.cos(Math.PI / 180 * 37.5), - e_ = Math.pow(2, 14) / .5; - class Bp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach((r => { - this.gradients[r.id] = {} - })), this.layoutVertexArray = new qe, this.layoutVertexArray2 = new $e, this.indexArray = new ki, this.programConfigurations = new ia(t.layers, t.zoom), this.segments = new Wr, this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - this.hasPattern = Ap("line", this.layers, r); - const c = this.layers[0].layout.get("line-sort-key"), - p = !c.isConstant(), - f = []; - for (const { - feature: g, - id: v, - index: S, - sourceLayerIndex: I - } - of t) { - const E = this.layers[0]._featureFilter.needGeometry, - R = Wa(g, E); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), R, a)) continue; - const N = p ? c.evaluate(R, {}, a) : void 0, - j = { - id: v, - properties: g.properties, - type: g.type, - sourceLayerIndex: I, - index: S, - geometry: E ? R.geometry : cs(g), - patterns: {}, - sortKey: N - }; - f.push(j) - } - p && f.sort(((g, v) => g.sortKey - v.sortKey)); - for (const g of f) { - const { - geometry: v, - index: S, - sourceLayerIndex: I - } = g; - if (this.hasPattern) { - const E = kp("line", this.layers, g, this.zoom, r); - this.patternFeatures.push(E) - } else this.addFeature(g, v, S, a, {}, r.subdivisionGranularity); - r.featureIndex.insert(t[S].feature, v, S, I, this.index) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - addFeatures(t, r, a) { - for (const c of this.patternFeatures) this.addFeature(c, c.geometry, c.index, r, a, t.subdivisionGranularity) - } - isEmpty() { - return this.layoutVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexArray2.length !== 0 && (this.layoutVertexBuffer2 = t.createVertexBuffer(this.layoutVertexArray2, C0)), this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, w0), this.indexBuffer = t.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()) - } - lineFeatureClips(t) { - if (t.properties && Object.prototype.hasOwnProperty.call(t.properties, "mapbox_clip_start") && Object.prototype.hasOwnProperty.call(t.properties, "mapbox_clip_end")) return { - start: +t.properties.mapbox_clip_start, - end: +t.properties.mapbox_clip_end - } - } - addFeature(t, r, a, c, p, f) { - const g = this.layers[0].layout, - v = g.get("line-join").evaluate(t, {}), - S = g.get("line-cap"), - I = g.get("line-miter-limit"), - E = g.get("line-round-limit"); - this.lineClips = this.lineFeatureClips(t); - for (const R of r) this.addLine(R, t, v, S, I, E, c, f); - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, p, c) - } - addLine(t, r, a, c, p, f, g, v) { - if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, t = Fo(t, g ? v.line.getGranularityForZoomLevel(g.z) : 1), this.lineClips) { - this.lineClipsArray.push(this.lineClips); - for (let me = 0; me < t.length - 1; me++) this.totalDistance += t[me].dist(t[me + 1]); - this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance) - } - const S = Bl.types[r.type] === "Polygon"; - let I = t.length; - for (; I >= 2 && t[I - 1].equals(t[I - 2]);) I--; - let E = 0; - for (; E < I - 1 && t[E].equals(t[E + 1]);) E++; - if (I < (S ? 3 : 2)) return; - a === "bevel" && (p = 1.05); - const R = this.overscaling <= 16 ? 122880 / (512 * this.overscaling) : 0, - N = this.segments.prepareSegment(10 * I, this.layoutVertexArray, this.indexArray); - let j, Z, Y, ae, ze; - this.e1 = this.e2 = -1, S && (j = t[I - 2], ze = t[E].sub(j)._unit()._perp()); - for (let me = E; me < I; me++) { - if (Y = me === I - 1 ? S ? t[E + 1] : void 0 : t[me + 1], Y && t[me].equals(Y)) continue; - ze && (ae = ze), j && (Z = j), j = t[me], ze = Y ? Y.sub(j)._unit()._perp() : ae, ae = ae || ze; - let be = ae.add(ze); - be.x === 0 && be.y === 0 || be._unit(); - const Ve = ae.x * ze.x + ae.y * ze.y, - rt = be.x * ze.x + be.y * ze.y, - St = rt !== 0 ? 1 / rt : 1 / 0, - $t = 2 * Math.sqrt(2 - 2 * rt), - Bt = rt < S0 && Z && Y, - Ut = ae.x * ze.y - ae.y * ze.x > 0; - if (Bt && me > E) { - const Zt = j.dist(Z); - if (Zt > 2 * R) { - const mt = j.sub(j.sub(Z)._mult(R / Zt)._round()); - this.updateDistance(Z, mt), this.addCurrentVertex(mt, ae, 0, 0, N), Z = mt - } - } - const pr = Z && Y; - let Vt = pr ? a : S ? "butt" : c; - if (pr && Vt === "round" && (St < f ? Vt = "miter" : St <= 2 && (Vt = "fakeround")), Vt === "miter" && St > p && (Vt = "bevel"), Vt === "bevel" && (St > 2 && (Vt = "flipbevel"), St < p && (Vt = "miter")), Z && this.updateDistance(Z, j), Vt === "miter") be._mult(St), this.addCurrentVertex(j, be, 0, 0, N); - else if (Vt === "flipbevel") { - if (St > 100) be = ze.mult(-1); - else { - const Zt = St * ae.add(ze).mag() / ae.sub(ze).mag(); - be._perp()._mult(Zt * (Ut ? -1 : 1)) - } - this.addCurrentVertex(j, be, 0, 0, N), this.addCurrentVertex(j, be.mult(-1), 0, 0, N) - } else if (Vt === "bevel" || Vt === "fakeround") { - const Zt = -Math.sqrt(St * St - 1), - mt = Ut ? Zt : 0, - Br = Ut ? 0 : Zt; - if (Z && this.addCurrentVertex(j, ae, mt, Br, N), Vt === "fakeround") { - const Ur = Math.round(180 * $t / Math.PI / 20); - for (let xr = 1; xr < Ur; xr++) { - let or = xr / Ur; - if (or !== .5) { - const Zi = or - .5; - or += or * Zi * (or - 1) * ((1.0904 + Ve * (Ve * (3.55645 - 1.43519 * Ve) - 3.2452)) * Zi * Zi + (.848013 + Ve * (.215638 * Ve - 1.06021))) - } - const oi = ze.sub(ae)._mult(or)._add(ae)._unit()._mult(Ut ? -1 : 1); - this.addHalfVertex(j, oi.x, oi.y, !1, Ut, 0, N) - } - } - Y && this.addCurrentVertex(j, ze, -mt, -Br, N) - } else if (Vt === "butt") this.addCurrentVertex(j, be, 0, 0, N); - else if (Vt === "square") { - const Zt = Z ? 1 : -1; - this.addCurrentVertex(j, be, Zt, Zt, N) - } else Vt === "round" && (Z && (this.addCurrentVertex(j, ae, 0, 0, N), this.addCurrentVertex(j, ae, 1, 1, N, !0)), Y && (this.addCurrentVertex(j, ze, -1, -1, N, !0), this.addCurrentVertex(j, ze, 0, 0, N))); - if (Bt && me < I - 1) { - const Zt = j.dist(Y); - if (Zt > 2 * R) { - const mt = j.add(Y.sub(j)._mult(R / Zt)._round()); - this.updateDistance(j, mt), this.addCurrentVertex(mt, ze, 0, 0, N), j = mt - } - } - } - } - addCurrentVertex(t, r, a, c, p, f = !1) { - const g = r.y * c - r.x, - v = -r.y - r.x * c; - this.addHalfVertex(t, r.x + r.y * a, r.y - r.x * a, f, !1, a, p), this.addHalfVertex(t, g, v, f, !0, -c, p), this.distance > e_ / 2 && this.totalDistance === 0 && (this.distance = 0, this.updateScaledDistance(), this.addCurrentVertex(t, r, a, c, p, f)) - } - addHalfVertex({ - x: t, - y: r - }, a, c, p, f, g, v) { - const S = .5 * (this.lineClips ? this.scaledDistance * (e_ - 1) : this.scaledDistance); - this.layoutVertexArray.emplaceBack((t << 1) + (p ? 1 : 0), (r << 1) + (f ? 1 : 0), Math.round(63 * a) + 128, Math.round(63 * c) + 128, 1 + (g === 0 ? 0 : g < 0 ? -1 : 1) | (63 & S) << 2, S >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length); - const I = v.vertexLength++; - this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, I, this.e2), v.primitiveLength++), f ? this.e2 = I : this.e1 = I - } - updateScaledDistance() { - this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance - } - updateDistance(t, r) { - this.distance += t.dist(r), this.updateScaledDistance() - } - } - let t_, r_; - Kt("LineBucket", Bp, { - omit: ["layers", "patternFeatures"] - }); - var i_ = { - get paint() { - return r_ = r_ || new jn({ - "line-opacity": new Rr(xe.paint_line["line-opacity"]), - "line-color": new Rr(xe.paint_line["line-color"]), - "line-translate": new hr(xe.paint_line["line-translate"]), - "line-translate-anchor": new hr(xe.paint_line["line-translate-anchor"]), - "line-width": new Rr(xe.paint_line["line-width"]), - "line-gap-width": new Rr(xe.paint_line["line-gap-width"]), - "line-offset": new Rr(xe.paint_line["line-offset"]), - "line-blur": new Rr(xe.paint_line["line-blur"]), - "line-dasharray": new ns(xe.paint_line["line-dasharray"]), - "line-pattern": new Sl(xe.paint_line["line-pattern"]), - "line-gradient": new Pl(xe.paint_line["line-gradient"]) - }) - }, - get layout() { - return t_ = t_ || new jn({ - "line-cap": new hr(xe.layout_line["line-cap"]), - "line-join": new Rr(xe.layout_line["line-join"]), - "line-miter-limit": new hr(xe.layout_line["line-miter-limit"]), - "line-round-limit": new hr(xe.layout_line["line-round-limit"]), - "line-sort-key": new Rr(xe.layout_line["line-sort-key"]) - }) - } - }; - class P0 extends Rr { - possiblyEvaluate(t, r) { - return r = new Oi(Math.floor(r.zoom), { - now: r.now, - fadeDuration: r.fadeDuration, - zoomHistory: r.zoomHistory, - transition: r.transition - }), super.possiblyEvaluate(t, r) - } - evaluate(t, r, a, c) { - return r = pt({}, r, { - zoom: Math.floor(r.zoom) - }), super.evaluate(t, r, a, c) - } - } - let ud; - class I0 extends ha { - constructor(t) { - super(t, i_), this.gradientVersion = 0, ud || (ud = new P0(i_.paint.properties["line-width"].specification), ud.useIntegerZoom = !0) - } - _handleSpecialPaintPropertyUpdate(t) { - if (t === "line-gradient") { - const r = this.gradientExpression(); - this.stepInterpolant = !!(function(a) { - return a._styleExpression !== void 0 - })(r) && r._styleExpression.expression instanceof Gi, this.gradientVersion = (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER - } - } - gradientExpression() { - return this._transitionablePaint._values["line-gradient"].value.expression - } - recalculate(t, r) { - super.recalculate(t, r), this.paint._values["line-floorwidth"] = ud.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, t) - } - createBucket(t) { - return new Bp(t) - } - queryRadius(t) { - const r = t, - a = n_(ru("line-width", this, r), ru("line-gap-width", this, r)), - c = ru("line-offset", this, r); - return a / 2 + Math.abs(c) + ad(this.paint.get("line-translate")) - } - queryIntersectsFeature({ - queryGeometry: t, - feature: r, - featureState: a, - geometry: c, - transform: p, - pixelsToTileUnits: f - }) { - const g = sd(t, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), -p.bearingInRadians, f), - v = f / 2 * n_(this.paint.get("line-width").evaluate(r, a), this.paint.get("line-gap-width").evaluate(r, a)), - S = this.paint.get("line-offset").evaluate(r, a); - return S && (c = (function(I, E) { - const R = []; - for (let N = 0; N < I.length; N++) { - const j = I[N], - Z = []; - for (let Y = 0; Y < j.length; Y++) { - const ae = j[Y - 1], - ze = j[Y], - me = j[Y + 1], - be = Y === 0 ? new $(0, 0) : ze.sub(ae)._unit()._perp(), - Ve = Y === j.length - 1 ? new $(0, 0) : me.sub(ze)._unit()._perp(), - rt = be._add(Ve)._unit(), - St = rt.x * Ve.x + rt.y * Ve.y; - St !== 0 && rt._mult(1 / St), Z.push(rt._mult(E)._add(ze)) - } - R.push(Z) - } - return R - })(c, S * f)), (function(I, E, R) { - for (let N = 0; N < E.length; N++) { - const j = E[N]; - if (I.length >= 3) { - for (let Z = 0; Z < j.length; Z++) - if (zl(I, j[Z])) return !0 - } - if (Ov(I, j, R)) return !0 - } - return !1 - })(g, c, v) - } - isTileClipped() { - return !0 - } - } - - function n_(i, t) { - return t > 0 ? t + 2 * i : i - } - const M0 = Hi([{ - name: "a_pos_offset", - components: 4, - type: "Int16" - }, { - name: "a_data", - components: 4, - type: "Uint16" - }, { - name: "a_pixeloffset", - components: 4, - type: "Int16" - }], 4), - A0 = Hi([{ - name: "a_projected_pos", - components: 3, - type: "Float32" - }], 4); - Hi([{ - name: "a_fade_opacity", - components: 1, - type: "Uint32" - }], 4); - const k0 = Hi([{ - name: "a_placed", - components: 2, - type: "Uint8" - }, { - name: "a_shift", - components: 2, - type: "Float32" - }, { - name: "a_box_real", - components: 2, - type: "Int16" - }]); - Hi([{ - 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 a_ = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }, { - name: "a_anchor_pos", - components: 2, - type: "Int16" - }, { - name: "a_extrude", - components: 2, - type: "Int16" - }], 4), - E0 = Hi([{ - name: "a_pos", - components: 2, - type: "Float32" - }, { - name: "a_radius", - components: 1, - type: "Float32" - }, { - name: "a_flags", - components: 2, - type: "Int16" - }], 4); - - function z0(i, t, r) { - return i.sections.forEach((a => { - a.text = (function(c, p, f) { - const g = p.layout.get("text-transform").evaluate(f, {}); - return g === "uppercase" ? c = c.toLocaleUpperCase() : g === "lowercase" && (c = c.toLocaleLowerCase()), Ca.applyArabicShaping && (c = Ca.applyArabicShaping(c)), c - })(a.text, t, r) - })), i - } - Hi([{ - name: "triangle", - components: 3, - type: "Uint16" - }]), Hi([{ - 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" - }]), Hi([{ - 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" - }]), Hi([{ - type: "Float32", - name: "offsetX" - }]), Hi([{ - type: "Int16", - name: "x" - }, { - type: "Int16", - name: "y" - }, { - type: "Int16", - name: "tileUnitDistanceFromAnchor" - }]), Hi([{ - type: "Uint16", - name: "textAnchor" - }, { - type: "Float32", - components: 2, - name: "textOffset" - }]); - const du = { - "!": "︕", - "#": "#", - $: "$", - "%": "%", - "&": "&", - "(": "︵", - ")": "︶", - "*": "*", - "+": "+", - ",": "︐", - "-": "︲", - ".": "・", - "/": "/", - ":": "︓", - ";": "︔", - "<": "︿", - "=": "=", - ">": "﹀", - "?": "︖", - "@": "@", - "[": "﹇", - "\\": "\", - "]": "﹈", - "^": "^", - _: "︳", - "`": "`", - "{": "︷", - "|": "―", - "}": "︸", - "~": "~", - "¢": "¢", - "£": "£", - "¥": "¥", - "¦": "¦", - "¬": "¬", - "¯": " ̄", - "–": "︲", - "—": "︱", - "‘": "﹃", - "’": "﹄", - "“": "﹁", - "”": "﹂", - "…": "︙", - "‧": "・", - "₩": "₩", - "、": "︑", - "。": "︒", - "〈": "︿", - "〉": "﹀", - "《": "︽", - "》": "︾", - "「": "﹁", - "」": "﹂", - "『": "﹃", - "』": "﹄", - "【": "︻", - "】": "︼", - "〔": "︹", - "〕": "︺", - "〖": "︗", - "〗": "︘", - "!": "︕", - "(": "︵", - ")": "︶", - ",": "︐", - "-": "︲", - ".": "・", - ":": "︓", - ";": "︔", - "<": "︿", - ">": "﹀", - "?": "︖", - "[": "﹇", - "]": "﹈", - "_": "︳", - "{": "︷", - "|": "―", - "}": "︸", - "⦅": "︵", - "⦆": "︶", - "。": "︒", - "「": "﹁", - "」": "﹂" - }; - var bn = 24; - const Fp = 4294967296, - s_ = 1 / Fp, - o_ = typeof TextDecoder > "u" ? null : new TextDecoder("utf-8"); - class Op { - constructor(t = new Uint8Array(16)) { - this.buf = ArrayBuffer.isView(t) ? t : new Uint8Array(t), this.dataView = new DataView(this.buf.buffer), this.pos = 0, this.type = 0, this.length = this.buf.length - } - readFields(t, r, a = this.length) { - for (; this.pos < a;) { - const c = this.readVarint(), - p = c >> 3, - f = this.pos; - this.type = 7 & c, t(p, r, this), this.pos === f && this.skip(c) - } - return r - } - readMessage(t, r) { - return this.readFields(t, r, this.readVarint() + this.pos) - } - readFixed32() { - const t = this.dataView.getUint32(this.pos, !0); - return this.pos += 4, t - } - readSFixed32() { - const t = this.dataView.getInt32(this.pos, !0); - return this.pos += 4, t - } - readFixed64() { - const t = this.dataView.getUint32(this.pos, !0) + this.dataView.getUint32(this.pos + 4, !0) * Fp; - return this.pos += 8, t - } - readSFixed64() { - const t = this.dataView.getUint32(this.pos, !0) + this.dataView.getInt32(this.pos + 4, !0) * Fp; - return this.pos += 8, t - } - readFloat() { - const t = this.dataView.getFloat32(this.pos, !0); - return this.pos += 4, t - } - readDouble() { - const t = this.dataView.getFloat64(this.pos, !0); - return this.pos += 8, t - } - readVarint(t) { - const r = this.buf; - let a, c; - return c = r[this.pos++], a = 127 & c, c < 128 ? a : (c = r[this.pos++], a |= (127 & c) << 7, c < 128 ? a : (c = r[this.pos++], a |= (127 & c) << 14, c < 128 ? a : (c = r[this.pos++], a |= (127 & c) << 21, c < 128 ? a : (c = r[this.pos], a |= (15 & c) << 28, (function(p, f, g) { - const v = g.buf; - let S, I; - if (I = v[g.pos++], S = (112 & I) >> 4, I < 128 || (I = v[g.pos++], S |= (127 & I) << 3, I < 128) || (I = v[g.pos++], S |= (127 & I) << 10, I < 128) || (I = v[g.pos++], S |= (127 & I) << 17, I < 128) || (I = v[g.pos++], S |= (127 & I) << 24, I < 128) || (I = v[g.pos++], S |= (1 & I) << 31, I < 128)) return Fl(p, S, f); - throw new Error("Expected varint not more than 10 bytes") - })(a, t, this))))) - } - readVarint64() { - return this.readVarint(!0) - } - readSVarint() { - const t = this.readVarint(); - return t % 2 == 1 ? (t + 1) / -2 : t / 2 - } - readBoolean() { - return !!this.readVarint() - } - readString() { - const t = this.readVarint() + this.pos, - r = this.pos; - return this.pos = t, t - r >= 12 && o_ ? o_.decode(this.buf.subarray(r, t)) : (function(a, c, p) { - let f = "", - g = c; - for (; g < p;) { - const v = a[g]; - let S, I, E, R = null, - N = v > 239 ? 4 : v > 223 ? 3 : v > 191 ? 2 : 1; - if (g + N > p) break; - N === 1 ? v < 128 && (R = v) : N === 2 ? (S = a[g + 1], (192 & S) == 128 && (R = (31 & v) << 6 | 63 & S, R <= 127 && (R = null))) : N === 3 ? (S = a[g + 1], I = a[g + 2], (192 & S) == 128 && (192 & I) == 128 && (R = (15 & v) << 12 | (63 & S) << 6 | 63 & I, (R <= 2047 || R >= 55296 && R <= 57343) && (R = null))) : N === 4 && (S = a[g + 1], I = a[g + 2], E = a[g + 3], (192 & S) == 128 && (192 & I) == 128 && (192 & E) == 128 && (R = (15 & v) << 18 | (63 & S) << 12 | (63 & I) << 6 | 63 & E, (R <= 65535 || R >= 1114112) && (R = null))), R === null ? (R = 65533, N = 1) : R > 65535 && (R -= 65536, f += String.fromCharCode(R >>> 10 & 1023 | 55296), R = 56320 | 1023 & R), f += String.fromCharCode(R), g += N - } - return f - })(this.buf, r, t) - } - readBytes() { - const t = this.readVarint() + this.pos, - r = this.buf.subarray(this.pos, t); - return this.pos = t, r - } - readPackedVarint(t = [], r) { - const a = this.readPackedEnd(); - for (; this.pos < a;) t.push(this.readVarint(r)); - return t - } - readPackedSVarint(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readSVarint()); - return t - } - readPackedBoolean(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readBoolean()); - return t - } - readPackedFloat(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readFloat()); - return t - } - readPackedDouble(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readDouble()); - return t - } - readPackedFixed32(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readFixed32()); - return t - } - readPackedSFixed32(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readSFixed32()); - return t - } - readPackedFixed64(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readFixed64()); - return t - } - readPackedSFixed64(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readSFixed64()); - return t - } - readPackedEnd() { - return this.type === 2 ? this.readVarint() + this.pos : this.pos + 1 - } - skip(t) { - const r = 7 & t; - if (r === 0) - for (; this.buf[this.pos++] > 127;); - else if (r === 2) this.pos = this.readVarint() + this.pos; - else if (r === 5) this.pos += 4; - else { - if (r !== 1) throw new Error(`Unimplemented type: ${r}`); - this.pos += 8 - } - } - writeTag(t, r) { - this.writeVarint(t << 3 | r) - } - realloc(t) { - let r = this.length || 16; - for (; r < this.pos + t;) r *= 2; - if (r !== this.length) { - const a = new Uint8Array(r); - a.set(this.buf), this.buf = a, this.dataView = new DataView(a.buffer), this.length = r - } - } - finish() { - return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length) - } - writeFixed32(t) { - this.realloc(4), this.dataView.setInt32(this.pos, t, !0), this.pos += 4 - } - writeSFixed32(t) { - this.realloc(4), this.dataView.setInt32(this.pos, t, !0), this.pos += 4 - } - writeFixed64(t) { - this.realloc(8), this.dataView.setInt32(this.pos, -1 & t, !0), this.dataView.setInt32(this.pos + 4, Math.floor(t * s_), !0), this.pos += 8 - } - writeSFixed64(t) { - this.realloc(8), this.dataView.setInt32(this.pos, -1 & t, !0), this.dataView.setInt32(this.pos + 4, Math.floor(t * s_), !0), this.pos += 8 - } - writeVarint(t) { - (t = +t || 0) > 268435455 || t < 0 ? (function(r, a) { - let c, p; - if (r >= 0 ? (c = r % 4294967296 | 0, p = r / 4294967296 | 0) : (c = ~(-r % 4294967296), p = ~(-r / 4294967296), 4294967295 ^ c ? c = c + 1 | 0 : (c = 0, p = p + 1 | 0)), r >= 18446744073709552e3 || r < -18446744073709552e3) throw new Error("Given varint doesn't fit into 10 bytes"); - a.realloc(10), (function(f, g, v) { - v.buf[v.pos++] = 127 & f | 128, f >>>= 7, v.buf[v.pos++] = 127 & f | 128, f >>>= 7, v.buf[v.pos++] = 127 & f | 128, f >>>= 7, v.buf[v.pos++] = 127 & f | 128, v.buf[v.pos] = 127 & (f >>>= 7) - })(c, 0, a), (function(f, g) { - const v = (7 & f) << 4; - g.buf[g.pos++] |= v | ((f >>>= 3) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f))))) - })(p, a) - })(t, this) : (this.realloc(4), this.buf[this.pos++] = 127 & t | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = 127 & (t >>>= 7) | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = 127 & (t >>>= 7) | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = t >>> 7 & 127)))) - } - writeSVarint(t) { - this.writeVarint(t < 0 ? 2 * -t - 1 : 2 * t) - } - writeBoolean(t) { - this.writeVarint(+t) - } - writeString(t) { - t = String(t), this.realloc(4 * t.length), this.pos++; - const r = this.pos; - this.pos = (function(c, p, f) { - for (let g, v, S = 0; S < p.length; S++) { - if (g = p.charCodeAt(S), g > 55295 && g < 57344) { - if (!v) { - g > 56319 || S + 1 === p.length ? (c[f++] = 239, c[f++] = 191, c[f++] = 189) : v = g; - continue - } - if (g < 56320) { - c[f++] = 239, c[f++] = 191, c[f++] = 189, v = g; - continue - } - g = v - 55296 << 10 | g - 56320 | 65536, v = null - } else v && (c[f++] = 239, c[f++] = 191, c[f++] = 189, v = null); - g < 128 ? c[f++] = g : (g < 2048 ? c[f++] = g >> 6 | 192 : (g < 65536 ? c[f++] = g >> 12 | 224 : (c[f++] = g >> 18 | 240, c[f++] = g >> 12 & 63 | 128), c[f++] = g >> 6 & 63 | 128), c[f++] = 63 & g | 128) - } - return f - })(this.buf, t, this.pos); - const a = this.pos - r; - a >= 128 && l_(r, a, this), this.pos = r - 1, this.writeVarint(a), this.pos += a - } - writeFloat(t) { - this.realloc(4), this.dataView.setFloat32(this.pos, t, !0), this.pos += 4 - } - writeDouble(t) { - this.realloc(8), this.dataView.setFloat64(this.pos, t, !0), this.pos += 8 - } - writeBytes(t) { - const r = t.length; - this.writeVarint(r), this.realloc(r); - for (let a = 0; a < r; a++) this.buf[this.pos++] = t[a] - } - writeRawMessage(t, r) { - this.pos++; - const a = this.pos; - t(r, this); - const c = this.pos - a; - c >= 128 && l_(a, c, this), this.pos = a - 1, this.writeVarint(c), this.pos += c - } - writeMessage(t, r, a) { - this.writeTag(t, 2), this.writeRawMessage(r, a) - } - writePackedVarint(t, r) { - r.length && this.writeMessage(t, L0, r) - } - writePackedSVarint(t, r) { - r.length && this.writeMessage(t, D0, r) - } - writePackedBoolean(t, r) { - r.length && this.writeMessage(t, F0, r) - } - writePackedFloat(t, r) { - r.length && this.writeMessage(t, R0, r) - } - writePackedDouble(t, r) { - r.length && this.writeMessage(t, B0, r) - } - writePackedFixed32(t, r) { - r.length && this.writeMessage(t, O0, r) - } - writePackedSFixed32(t, r) { - r.length && this.writeMessage(t, N0, r) - } - writePackedFixed64(t, r) { - r.length && this.writeMessage(t, j0, r) - } - writePackedSFixed64(t, r) { - r.length && this.writeMessage(t, q0, r) - } - writeBytesField(t, r) { - this.writeTag(t, 2), this.writeBytes(r) - } - writeFixed32Field(t, r) { - this.writeTag(t, 5), this.writeFixed32(r) - } - writeSFixed32Field(t, r) { - this.writeTag(t, 5), this.writeSFixed32(r) - } - writeFixed64Field(t, r) { - this.writeTag(t, 1), this.writeFixed64(r) - } - writeSFixed64Field(t, r) { - this.writeTag(t, 1), this.writeSFixed64(r) - } - writeVarintField(t, r) { - this.writeTag(t, 0), this.writeVarint(r) - } - writeSVarintField(t, r) { - this.writeTag(t, 0), this.writeSVarint(r) - } - writeStringField(t, r) { - this.writeTag(t, 2), this.writeString(r) - } - writeFloatField(t, r) { - this.writeTag(t, 5), this.writeFloat(r) - } - writeDoubleField(t, r) { - this.writeTag(t, 1), this.writeDouble(r) - } - writeBooleanField(t, r) { - this.writeVarintField(t, +r) - } - } - - function Fl(i, t, r) { - return r ? 4294967296 * t + (i >>> 0) : 4294967296 * (t >>> 0) + (i >>> 0) - } - - function l_(i, t, r) { - const a = t <= 16383 ? 1 : t <= 2097151 ? 2 : t <= 268435455 ? 3 : Math.floor(Math.log(t) / (7 * Math.LN2)); - r.realloc(a); - for (let c = r.pos - 1; c >= i; c--) r.buf[c + a] = r.buf[c] - } - - function L0(i, t) { - for (let r = 0; r < i.length; r++) t.writeVarint(i[r]) - } - - function D0(i, t) { - for (let r = 0; r < i.length; r++) t.writeSVarint(i[r]) - } - - function R0(i, t) { - for (let r = 0; r < i.length; r++) t.writeFloat(i[r]) - } - - function B0(i, t) { - for (let r = 0; r < i.length; r++) t.writeDouble(i[r]) - } - - function F0(i, t) { - for (let r = 0; r < i.length; r++) t.writeBoolean(i[r]) - } - - function O0(i, t) { - for (let r = 0; r < i.length; r++) t.writeFixed32(i[r]) - } - - function N0(i, t) { - for (let r = 0; r < i.length; r++) t.writeSFixed32(i[r]) - } - - function j0(i, t) { - for (let r = 0; r < i.length; r++) t.writeFixed64(i[r]) - } - - function q0(i, t) { - for (let r = 0; r < i.length; r++) t.writeSFixed64(i[r]) - } - - function V0(i, t, r) { - i === 1 && r.readMessage(U0, t) - } - - function U0(i, t, r) { - if (i === 3) { - const { - id: a, - bitmap: c, - width: p, - height: f, - left: g, - top: v, - advance: S - } = r.readMessage(Z0, {}); - t.push({ - id: a, - bitmap: new iu({ - width: p + 6, - height: f + 6 - }, c), - metrics: { - width: p, - height: f, - left: g, - top: v, - advance: S - } - }) - } - } - - function Z0(i, t, r) { - i === 1 ? t.id = r.readVarint() : i === 2 ? t.bitmap = r.readBytes() : i === 3 ? t.width = r.readVarint() : i === 4 ? t.height = r.readVarint() : i === 5 ? t.left = r.readSVarint() : i === 6 ? t.top = r.readSVarint() : i === 7 && (t.advance = r.readVarint()) - } - - function c_(i) { - let t = 0, - r = 0; - for (const f of i) t += f.w * f.h, r = Math.max(r, f.w); - i.sort(((f, g) => g.h - f.h)); - const a = [{ - x: 0, - y: 0, - w: Math.max(Math.ceil(Math.sqrt(t / .95)), r), - h: 1 / 0 - }]; - let c = 0, - p = 0; - for (const f of i) - for (let g = a.length - 1; g >= 0; g--) { - const v = a[g]; - if (!(f.w > v.w || f.h > v.h)) { - if (f.x = v.x, f.y = v.y, p = Math.max(p, f.y + f.h), c = Math.max(c, f.x + f.w), f.w === v.w && f.h === v.h) { - const S = a.pop(); - S && g < a.length && (a[g] = S) - } else f.h === v.h ? (v.x += f.w, v.w -= f.w) : f.w === v.w ? (v.y += f.h, v.h -= f.h) : (a.push({ - x: v.x + f.w, - y: v.y, - w: v.w - f.w, - h: f.h - }), v.y += f.h, v.h -= f.h); - break - } - } - return { - w: c, - h: p, - fill: t / (c * p) || 0 - } - } - class Np { - constructor(t, { - pixelRatio: r, - version: a, - stretchX: c, - stretchY: p, - content: f, - textFitWidth: g, - textFitHeight: v - }) { - this.paddedRect = t, this.pixelRatio = r, this.stretchX = c, this.stretchY = p, this.content = f, this.version = a, this.textFitWidth = g, this.textFitHeight = v - } - get tl() { - return [this.paddedRect.x + 1, this.paddedRect.y + 1] - } - get br() { - return [this.paddedRect.x + this.paddedRect.w - 1, this.paddedRect.y + this.paddedRect.h - 1] - } - get tlbr() { - return this.tl.concat(this.br) - } - get displaySize() { - return [(this.paddedRect.w - 2) / this.pixelRatio, (this.paddedRect.h - 2) / this.pixelRatio] - } - } - class u_ { - constructor(t, r) { - const a = {}, - c = {}; - this.haveRenderCallbacks = []; - const p = []; - this.addImages(t, a, p), this.addImages(r, c, p); - const { - w: f, - h: g - } = c_(p), v = new na({ - width: f || 1, - height: g || 1 - }); - for (const S in t) { - const I = t[S], - E = a[S].paddedRect; - na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: E.x + 1, - y: E.y + 1 - }, I.data) - } - for (const S in r) { - const I = r[S], - E = c[S].paddedRect, - R = E.x + 1, - N = E.y + 1, - j = I.data.width, - Z = I.data.height; - na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: R, - y: N - }, I.data), na.copy(I.data, v, { - x: 0, - y: Z - 1 - }, { - x: R, - y: N - 1 - }, { - width: j, - height: 1 - }), na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: R, - y: N + Z - }, { - width: j, - height: 1 - }), na.copy(I.data, v, { - x: j - 1, - y: 0 - }, { - x: R - 1, - y: N - }, { - width: 1, - height: Z - }), na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: R + j, - y: N - }, { - width: 1, - height: Z - }) - } - this.image = v, this.iconPositions = a, this.patternPositions = c - } - addImages(t, r, a) { - for (const c in t) { - const p = t[c], - f = { - x: 0, - y: 0, - w: p.data.width + 2, - h: p.data.height + 2 - }; - a.push(f), r[c] = new Np(f, p), p.hasRenderCallback && this.haveRenderCallbacks.push(c) - } - } - patchUpdatedImages(t, r) { - t.dispatchRenderCallbacks(this.haveRenderCallbacks); - for (const a in t.updatedImages) this.patchUpdatedImage(this.iconPositions[a], t.getImage(a), r), this.patchUpdatedImage(this.patternPositions[a], t.getImage(a), r) - } - patchUpdatedImage(t, r, a) { - if (!t || !r || t.version === r.version) return; - t.version = r.version; - const [c, p] = t.tl; - a.update(r.data, void 0, { - x: c, - y: p - }) - } - } - var eo; - Kt("ImagePosition", Np), Kt("ImageAtlas", u_), T.ao = void 0, (eo = T.ao || (T.ao = {}))[eo.none = 0] = "none", eo[eo.horizontal = 1] = "horizontal", eo[eo.vertical = 2] = "vertical", eo[eo.horizontalOnly = 3] = "horizontalOnly"; - class pu { - constructor() { - this.scale = 1, this.fontStack = "", this.imageName = null, this.verticalAlign = "bottom" - } - static forText(t, r, a) { - const c = new pu; - return c.scale = t || 1, c.fontStack = r, c.verticalAlign = a || "bottom", c - } - static forImage(t, r) { - const a = new pu; - return a.imageName = t, a.verticalAlign = r || "bottom", a - } - } - class Ol { - constructor() { - this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null - } - static fromFeature(t, r) { - const a = new Ol; - for (let c = 0; c < t.sections.length; c++) { - const p = t.sections[c]; - p.image ? a.addImageSection(p) : a.addTextSection(p, r) - } - return a - } - length() { - return this.text.length - } - getSection(t) { - return this.sections[this.sectionIndex[t]] - } - getSectionIndex(t) { - return this.sectionIndex[t] - } - getCharCode(t) { - return this.text.charCodeAt(t) - } - verticalizePunctuation() { - this.text = (function(t) { - let r = ""; - for (let a = 0; a < t.length; a++) { - const c = t.charCodeAt(a + 1) || null, - p = t.charCodeAt(a - 1) || null; - r += c && Kh(c) && !du[t[a + 1]] || p && Kh(p) && !du[t[a - 1]] || !du[t[a]] ? t[a] : du[t[a]] - } - return r - })(this.text) - } - trim() { - let t = 0; - for (let a = 0; a < this.text.length && dd[this.text.charCodeAt(a)]; a++) t++; - let r = this.text.length; - for (let a = this.text.length - 1; a >= 0 && a >= t && dd[this.text.charCodeAt(a)]; a--) r--; - this.text = this.text.substring(t, r), this.sectionIndex = this.sectionIndex.slice(t, r) - } - substring(t, r) { - const a = new Ol; - return a.text = this.text.substring(t, r), a.sectionIndex = this.sectionIndex.slice(t, r), a.sections = this.sections, a - } - toString() { - return this.text - } - getMaxScale() { - return this.sectionIndex.reduce(((t, r) => Math.max(t, this.sections[r].scale)), 0) - } - getMaxImageSize(t) { - let r = 0, - a = 0; - for (let c = 0; c < this.length(); c++) { - const p = this.getSection(c); - if (p.imageName) { - const f = t[p.imageName]; - if (!f) continue; - const g = f.displaySize; - r = Math.max(r, g[0]), a = Math.max(a, g[1]) - } - } - return { - maxImageWidth: r, - maxImageHeight: a - } - } - addTextSection(t, r) { - this.text += t.text, this.sections.push(pu.forText(t.scale, t.fontStack || r, t.verticalAlign)); - const a = this.sections.length - 1; - for (let c = 0; c < t.text.length; ++c) this.sectionIndex.push(a) - } - addImageSection(t) { - const r = t.image ? t.image.name : ""; - if (r.length === 0) return void Lt("Can't add FormattedSection with an empty image."); - const a = this.getNextImageSectionCharCode(); - a ? (this.text += String.fromCharCode(a), this.sections.push(pu.forImage(r, t.verticalAlign)), this.sectionIndex.push(this.sections.length - 1)) : Lt("Reached maximum number of images 6401") - } - getNextImageSectionCharCode() { - return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID) - } - } - - function hd(i, t, r, a, c, p, f, g, v, S, I, E, R, N, j) { - const Z = Ol.fromFeature(i, c); - let Y; - E === T.ao.vertical && Z.verticalizePunctuation(); - const { - processBidirectionalText: ae, - processStyledBidirectionalText: ze - } = Ca; - if (ae && Z.sections.length === 1) { - Y = []; - const Ve = ae(Z.toString(), jp(Z, S, p, t, a, N)); - for (const rt of Ve) { - const St = new Ol; - St.text = rt, St.sections = Z.sections; - for (let $t = 0; $t < rt.length; $t++) St.sectionIndex.push(0); - Y.push(St) - } - } else if (ze) { - Y = []; - const Ve = ze(Z.text, Z.sectionIndex, jp(Z, S, p, t, a, N)); - for (const rt of Ve) { - const St = new Ol; - St.text = rt[0], St.sectionIndex = rt[1], St.sections = Z.sections, Y.push(St) - } - } else Y = (function(Ve, rt) { - const St = [], - $t = Ve.text; - let Bt = 0; - for (const Ut of rt) St.push(Ve.substring(Bt, Ut)), Bt = Ut; - return Bt < $t.length && St.push(Ve.substring(Bt, $t.length)), St - })(Z, jp(Z, S, p, t, a, N)); - const me = [], - be = { - positionedLines: me, - text: Z.toString(), - top: I[1], - bottom: I[1], - left: I[0], - right: I[0], - writingMode: E, - iconsInText: !1, - verticalizable: !1 - }; - return (function(Ve, rt, St, $t, Bt, Ut, pr, Vt, Zt, mt, Br, Ur) { - let xr = 0, - or = 0, - oi = 0, - Zi = 0; - const fn = Vt === "right" ? 1 : Vt === "left" ? 0 : .5, - Bn = bn / Ur; - let Aa = 0; - for (const qi of Bt) { - qi.trim(); - const wn = qi.getMaxScale(), - An = { - positionedGlyphs: [], - lineOffset: 0 - }; - Ve.positionedLines[Aa] = An; - const kn = An.positionedGlyphs; - let Yn = 0; - if (!qi.length()) { - or += Ut, ++Aa; - continue - } - const ka = W0($t, qi, Bn); - for (let sa = 0; sa < qi.length(); sa++) { - const mn = qi.getSection(sa), - Cn = qi.getSectionIndex(sa), - Sn = qi.getCharCode(sa), - rn = X0(Zt, Br, Sn); - let Bi; - if (mn.imageName) { - if (Ve.iconsInText = !0, mn.scale = mn.scale * Bn, Bi = Y0(mn, rn, wn, ka, $t), !Bi) continue; - Yn = Math.max(Yn, Bi.imageOffset) - } else if (Bi = K0(mn, Sn, rn, ka, rt, St), !Bi) continue; - const { - rect: Xa, - metrics: Vl, - baselineOffset: Ka - } = Bi; - kn.push({ - glyph: Sn, - imageName: mn.imageName, - x: xr, - y: or + Ka + -17, - vertical: rn, - scale: mn.scale, - fontStack: mn.fontStack, - sectionIndex: Cn, - metrics: Vl, - rect: Xa - }), rn ? (Ve.verticalizable = !0, xr += (mn.imageName ? Vl.advance : bn) * mn.scale + mt) : xr += Vl.advance * mn.scale + mt - } - kn.length !== 0 && (oi = Math.max(xr - mt, oi), J0(kn, 0, kn.length - 1, fn)), xr = 0, An.lineOffset = Math.max(Yn, (wn - 1) * bn); - const Tn = Ut * wn + Yn; - or += Tn, Zi = Math.max(Tn, Zi), ++Aa - } - const { - horizontalAlign: aa, - verticalAlign: Mn - } = qp(pr); - (function(qi, wn, An, kn, Yn, ka, Tn, sa, mn) { - const Cn = (wn - An) * Yn; - let Sn = 0; - Sn = ka !== Tn ? -sa * kn - -17 : -kn * mn * Tn + .5 * Tn; - for (const rn of qi) - for (const Bi of rn.positionedGlyphs) Bi.x += Cn, Bi.y += Sn - })(Ve.positionedLines, fn, aa, Mn, oi, Zi, Ut, or, Bt.length), Ve.top += -Mn * or, Ve.bottom = Ve.top + or, Ve.left += -aa * oi, Ve.right = Ve.left + oi - })(be, t, r, a, Y, f, g, v, E, S, R, j), !(function(Ve) { - for (const rt of Ve) - if (rt.positionedGlyphs.length !== 0) return !1; - return !0 - })(me) && be - } - const dd = { - 9: !0, - 10: !0, - 11: !0, - 12: !0, - 13: !0, - 32: !0 - }, - $0 = { - 10: !0, - 32: !0, - 38: !0, - 41: !0, - 43: !0, - 45: !0, - 47: !0, - 173: !0, - 183: !0, - 8203: !0, - 8208: !0, - 8211: !0, - 8231: !0 - }, - G0 = { - 40: !0 - }; - - function h_(i, t, r, a, c, p) { - if (t.imageName) { - const f = a[t.imageName]; - return f ? f.displaySize[0] * t.scale * bn / p + c : 0 - } { - const f = r[t.fontStack], - g = f && f[i]; - return g ? g.metrics.advance * t.scale + c : 0 - } - } - - function d_(i, t, r, a) { - const c = Math.pow(i - t, 2); - return a ? i < t ? c / 2 : 2 * c : c + Math.abs(r) * r - } - - function H0(i, t, r) { - let a = 0; - return i === 10 && (a -= 1e4), r && (a += 150), i !== 40 && i !== 65288 || (a += 50), t !== 41 && t !== 65289 || (a += 50), a - } - - function p_(i, t, r, a, c, p) { - let f = null, - g = d_(t, r, c, p); - for (const v of a) { - const S = d_(t - v.x, r, c, p) + v.badness; - S <= g && (f = v, g = S) - } - return { - index: i, - x: t, - priorBreak: f, - badness: g - } - } - - function f_(i) { - return i ? f_(i.priorBreak).concat(i.index) : [] - } - - function jp(i, t, r, a, c, p) { - if (!i) return []; - const f = [], - g = (function(E, R, N, j, Z, Y) { - let ae = 0; - for (let ze = 0; ze < E.length(); ze++) { - const me = E.getSection(ze); - ae += h_(E.getCharCode(ze), me, j, Z, R, Y) - } - return ae / Math.max(1, Math.ceil(ae / N)) - })(i, t, r, a, c, p), - v = i.text.indexOf("​") >= 0; - let S = 0; - for (let E = 0; E < i.length(); E++) { - const R = i.getSection(E), - N = i.getCharCode(E); - if (dd[N] || (S += h_(N, R, a, c, t, p)), E < i.length() - 1) { - const j = !((I = N) < 11904) && (!!si["CJK Compatibility Forms"](I) || !!si["CJK Compatibility"](I) || !!si["CJK Strokes"](I) || !!si["CJK Symbols and Punctuation"](I) || !!si["Enclosed CJK Letters and Months"](I) || !!si["Halfwidth and Fullwidth Forms"](I) || !!si["Ideographic Description Characters"](I) || !!si["Vertical Forms"](I) || $c.test(String.fromCodePoint(I))); - ($0[N] || j || R.imageName || E !== i.length() - 2 && G0[i.getCharCode(E + 1)]) && f.push(p_(E + 1, S, g, f, H0(N, i.getCharCode(E + 1), j && v), !1)) - } - } - var I; - return f_(p_(i.length(), S, g, f, 0, !0)) - } - - function qp(i) { - let t = .5, - r = .5; - switch (i) { - case "right": - case "top-right": - case "bottom-right": - t = 1; - break; - case "left": - case "top-left": - case "bottom-left": - t = 0 - } - switch (i) { - case "bottom": - case "bottom-right": - case "bottom-left": - r = 1; - break; - case "top": - case "top-right": - case "top-left": - r = 0 - } - return { - horizontalAlign: t, - verticalAlign: r - } - } - - function W0(i, t, r) { - const a = t.getMaxScale() * bn, - { - maxImageWidth: c, - maxImageHeight: p - } = t.getMaxImageSize(i), - f = Math.max(a, p * r); - return { - verticalLineContentWidth: Math.max(a, c * r), - horizontalLineContentHeight: f - } - } - - function m_(i) { - switch (i) { - case "top": - return 0; - case "center": - return .5; - default: - return 1 - } - } - - function X0(i, t, r) { - return !(i === T.ao.horizontal || !t && !Gc(r) || t && (dd[r] || (a = r, new RegExp("\\p{sc=Arab}", "u").test(String.fromCodePoint(a))))); - var a - } - - function K0(i, t, r, a, c, p) { - const f = p[i.fontStack], - g = (function(S, I, E, R) { - if (S && S.rect) return S; - const N = I[E.fontStack], - j = N && N[R]; - return j ? { - rect: null, - metrics: j.metrics - } : null - })(f && f[t], c, i, t); - if (g === null) return null; - let v; - if (r) v = a.verticalLineContentWidth - i.scale * bn; - else { - const S = m_(i.verticalAlign); - v = (a.horizontalLineContentHeight - i.scale * bn) * S - } - return { - rect: g.rect, - metrics: g.metrics, - baselineOffset: v - } - } - - function Y0(i, t, r, a, c) { - const p = c[i.imageName]; - if (!p) return null; - const f = p.paddedRect, - g = p.displaySize, - v = { - width: g[0], - height: g[1], - left: 1, - top: -3, - advance: t ? g[1] : g[0] - }; - let S; - if (t) S = a.verticalLineContentWidth - g[1] * i.scale; - else { - const I = m_(i.verticalAlign); - S = (a.horizontalLineContentHeight - g[1] * i.scale) * I - } - return { - rect: f, - metrics: v, - baselineOffset: S, - imageOffset: (t ? g[0] : g[1]) * i.scale - bn * r - } - } - - function J0(i, t, r, a) { - if (a === 0) return; - const c = i[r], - p = (i[r].x + c.metrics.advance * c.scale) * a; - for (let f = t; f <= r; f++) i[f].x -= p - } - - function Q0(i, t, r) { - const { - horizontalAlign: a, - verticalAlign: c - } = qp(r), p = t[0] - i.displaySize[0] * a, f = t[1] - i.displaySize[1] * c; - return { - image: i, - top: f, - bottom: f + i.displaySize[1], - left: p, - right: p + i.displaySize[0] - } - } - - function __(i) { - var t, r; - let a = i.left, - c = i.top, - p = i.right - a, - f = i.bottom - c; - const g = (t = i.image.textFitWidth) !== null && t !== void 0 ? t : "stretchOrShrink", - v = (r = i.image.textFitHeight) !== null && r !== void 0 ? r : "stretchOrShrink", - S = (i.image.content[2] - i.image.content[0]) / (i.image.content[3] - i.image.content[1]); - if (v === "proportional") { - if (g === "stretchOnly" && p / f < S || g === "proportional") { - const I = Math.ceil(f * S); - a *= I / p, p = I - } - } else if (g === "proportional" && v === "stretchOnly" && S !== 0 && p / f > S) { - const I = Math.ceil(p / S); - c *= I / f, f = I - } - return { - x1: a, - y1: c, - x2: a + p, - y2: c + f - } - } - - function g_(i, t, r, a, c, p) { - const f = i.image; - let g; - if (f.content) { - const Y = f.content, - ae = f.pixelRatio || 1; - g = [Y[0] / ae, Y[1] / ae, f.displaySize[0] - Y[2] / ae, f.displaySize[1] - Y[3] / ae] - } - const v = t.left * p, - S = t.right * p; - let I, E, R, N; - r === "width" || r === "both" ? (N = c[0] + v - a[3], E = c[0] + S + a[1]) : (N = c[0] + (v + S - f.displaySize[0]) / 2, E = N + f.displaySize[0]); - const j = t.top * p, - Z = t.bottom * p; - return r === "height" || r === "both" ? (I = c[1] + j - a[0], R = c[1] + Z + a[2]) : (I = c[1] + (j + Z - f.displaySize[1]) / 2, R = I + f.displaySize[1]), { - image: f, - top: I, - right: E, - bottom: R, - left: N, - collisionPadding: g - } - } - const As = 128, - to = 32640; - - function v_(i, t) { - const { - expression: r - } = t; - if (r.kind === "constant") return { - kind: "constant", - layoutSize: r.evaluate(new Oi(i + 1)) - }; - if (r.kind === "source") return { - kind: "source" - }; - { - const { - zoomStops: a, - interpolationType: c - } = r; - let p = 0; - for (; p < a.length && a[p] <= i;) p++; - p = Math.max(0, p - 1); - let f = p; - for (; f < a.length && a[f] < i + 1;) f++; - f = Math.min(a.length - 1, f); - const g = a[p], - v = a[f]; - return r.kind === "composite" ? { - kind: "composite", - minZoom: g, - maxZoom: v, - interpolationType: c - } : { - kind: "camera", - minZoom: g, - maxZoom: v, - minSize: r.evaluate(new Oi(g)), - maxSize: r.evaluate(new Oi(v)), - interpolationType: c - } - } - } - - function Vp(i, t, r) { - let a = "never"; - const c = i.get(t); - return c ? a = c : i.get(r) && (a = "always"), a - } - const ey = [{ - name: "a_fade_opacity", - components: 1, - type: "Uint8", - offset: 0 - }]; - - function pd(i, t, r, a, c, p, f, g, v, S, I, E, R) { - const N = g ? Math.min(to, Math.round(g[0])) : 0, - j = g ? Math.min(to, Math.round(g[1])) : 0; - i.emplaceBack(t, r, Math.round(32 * a), Math.round(32 * c), p, f, (N << 1) + (v ? 1 : 0), j, 16 * S, 16 * I, 256 * E, 256 * R) - } - - function Up(i, t, r) { - i.emplaceBack(t.x, t.y, r), i.emplaceBack(t.x, t.y, r), i.emplaceBack(t.x, t.y, r), i.emplaceBack(t.x, t.y, r) - } - - function ty(i) { - for (const t of i.sections) - if (Qh(t.text)) return !0; - return !1 - } - class Zp { - constructor(t) { - this.layoutVertexArray = new Nt, this.indexArray = new ki, this.programConfigurations = t, this.segments = new Wr, this.dynamicLayoutVertexArray = new yt, this.opacityVertexArray = new sr, this.hasVisibleVertices = !1, this.placedSymbolArray = new U - } - isEmpty() { - return this.layoutVertexArray.length === 0 && this.indexArray.length === 0 && this.dynamicLayoutVertexArray.length === 0 && this.opacityVertexArray.length === 0 - } - upload(t, r, a, c) { - this.isEmpty() || (a && (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, M0.members), this.indexBuffer = t.createIndexBuffer(this.indexArray, r), this.dynamicLayoutVertexBuffer = t.createVertexBuffer(this.dynamicLayoutVertexArray, A0.members, !0), this.opacityVertexBuffer = t.createVertexBuffer(this.opacityVertexArray, ey, !0), this.opacityVertexBuffer.itemSize = 1), (a || c) && this.programConfigurations.upload(t)) - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy()) - } - } - Kt("SymbolBuffers", Zp); - class $p { - constructor(t, r, a) { - this.layoutVertexArray = new t, this.layoutAttributes = r, this.indexArray = new a, this.segments = new Wr, this.collisionVertexArray = new xi - } - upload(t) { - this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t.createVertexBuffer(this.collisionVertexArray, k0.members, !0) - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy()) - } - } - Kt("CollisionBuffers", $p); - class Nl { - constructor(t) { - this.collisionBoxArray = t.collisionBoxArray, this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((f => f.id)), this.index = t.index, this.pixelRatio = t.pixelRatio, this.sourceLayerIndex = t.sourceLayerIndex, this.hasPattern = !1, this.hasRTLText = !1, this.sortKeyRanges = [], this.collisionCircleArray = []; - const r = this.layers[0]._unevaluatedLayout._values; - this.textSizeData = v_(this.zoom, r["text-size"]), this.iconSizeData = v_(this.zoom, r["icon-size"]); - const a = this.layers[0].layout, - c = a.get("symbol-sort-key"), - p = a.get("symbol-z-order"); - this.canOverlap = Vp(a, "text-overlap", "text-allow-overlap") !== "never" || Vp(a, "icon-overlap", "icon-allow-overlap") !== "never" || a.get("text-ignore-placement") || a.get("icon-ignore-placement"), this.sortFeaturesByKey = p !== "viewport-y" && !c.isConstant(), this.sortFeaturesByY = (p === "viewport-y" || p === "auto" && !this.sortFeaturesByKey) && this.canOverlap, a.get("symbol-placement") === "point" && (this.writingModes = a.get("text-writing-mode").map((f => T.ao[f]))), this.stateDependentLayerIds = this.layers.filter((f => f.isStateDependent())).map((f => f.id)), this.sourceID = t.sourceID - } - createArrays() { - this.text = new Zp(new ia(this.layers, this.zoom, (t => /^text/.test(t)))), this.icon = new Zp(new ia(this.layers, this.zoom, (t => /^icon/.test(t)))), this.glyphOffsetArray = new re, this.lineVertexArray = new se, this.symbolInstances = new J, this.textAnchorOffsets = new ue - } - calculateGlyphDependencies(t, r, a, c, p) { - for (let f = 0; f < t.length; f++) - if (r[t.charCodeAt(f)] = !0, (a || c) && p) { - const g = du[t.charAt(f)]; - g && (r[g.charCodeAt(0)] = !0) - } - } - populate(t, r, a) { - const c = this.layers[0], - p = c.layout, - f = p.get("text-font"), - g = p.get("text-field"), - v = p.get("icon-image"), - S = (g.value.kind !== "constant" || g.value.value instanceof ln && !g.value.value.isEmpty() || g.value.value.toString().length > 0) && (f.value.kind !== "constant" || f.value.value.length > 0), - I = v.value.kind !== "constant" || !!v.value.value || Object.keys(v.parameters).length > 0, - E = p.get("symbol-sort-key"); - if (this.features = [], !S && !I) return; - const R = r.iconDependencies, - N = r.glyphDependencies, - j = r.availableImages, - Z = new Oi(this.zoom, { - globalState: this.globalState - }); - for (const { - feature: Y, - id: ae, - index: ze, - sourceLayerIndex: me - } - of t) { - const be = c._featureFilter.needGeometry, - Ve = Wa(Y, be); - if (!c._featureFilter.filter(Z, Ve, a)) continue; - let rt, St; - if (be || (Ve.geometry = cs(Y)), S) { - const Bt = c.getValueAndResolveTokens("text-field", Ve, a, j), - Ut = ln.factory(Bt), - pr = this.hasRTLText = this.hasRTLText || ty(Ut); - (!pr || Ca.getRTLTextPluginStatus() === "unavailable" || pr && Ca.isParsed()) && (rt = z0(Ut, c, Ve)) - } - if (I) { - const Bt = c.getValueAndResolveTokens("icon-image", Ve, a, j); - St = Bt instanceof Nn ? Bt : Nn.fromString(Bt) - } - if (!rt && !St) continue; - const $t = this.sortFeaturesByKey ? E.evaluate(Ve, {}, a) : void 0; - if (this.features.push({ - id: ae, - text: rt, - icon: St, - index: ze, - sourceLayerIndex: me, - geometry: Ve.geometry, - properties: Y.properties, - type: Bl.types[Y.type], - sortKey: $t - }), St && (R[St.name] = !0), rt) { - const Bt = f.evaluate(Ve, {}, a).join(","), - Ut = p.get("text-rotation-alignment") !== "viewport" && p.get("symbol-placement") !== "point"; - this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(T.ao.vertical) >= 0; - for (const pr of rt.sections) - if (pr.image) R[pr.image.name] = !0; - else { - const Vt = wl(rt.toString()), - Zt = pr.fontStack || Bt, - mt = N[Zt] = N[Zt] || {}; - this.calculateGlyphDependencies(pr.text, mt, Ut, this.allowVerticalPlacement, Vt) - } - } - } - p.get("symbol-placement") === "line" && (this.features = (function(Y) { - const ae = {}, - ze = {}, - me = []; - let be = 0; - - function Ve(Bt) { - me.push(Y[Bt]), be++ - } - - function rt(Bt, Ut, pr) { - const Vt = ze[Bt]; - return delete ze[Bt], ze[Ut] = Vt, me[Vt].geometry[0].pop(), me[Vt].geometry[0] = me[Vt].geometry[0].concat(pr[0]), Vt - } - - function St(Bt, Ut, pr) { - const Vt = ae[Ut]; - return delete ae[Ut], ae[Bt] = Vt, me[Vt].geometry[0].shift(), me[Vt].geometry[0] = pr[0].concat(me[Vt].geometry[0]), Vt - } - - function $t(Bt, Ut, pr) { - const Vt = pr ? Ut[0][Ut[0].length - 1] : Ut[0][0]; - return `${Bt}:${Vt.x}:${Vt.y}` - } - for (let Bt = 0; Bt < Y.length; Bt++) { - const Ut = Y[Bt], - pr = Ut.geometry, - Vt = Ut.text ? Ut.text.toString() : null; - if (!Vt) { - Ve(Bt); - continue - } - const Zt = $t(Vt, pr), - mt = $t(Vt, pr, !0); - if (Zt in ze && mt in ae && ze[Zt] !== ae[mt]) { - const Br = St(Zt, mt, pr), - Ur = rt(Zt, mt, me[Br].geometry); - delete ae[Zt], delete ze[mt], ze[$t(Vt, me[Ur].geometry, !0)] = Ur, me[Br].geometry = null - } else Zt in ze ? rt(Zt, mt, pr) : mt in ae ? St(Zt, mt, pr) : (Ve(Bt), ae[Zt] = be - 1, ze[mt] = be - 1) - } - return me.filter((Bt => Bt.geometry)) - })(this.features)), this.sortFeaturesByKey && this.features.sort(((Y, ae) => Y.sortKey - ae.sortKey)) - } - update(t, r, a) { - this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t, r, this.layers, a), this.icon.programConfigurations.updatePaintArrays(t, r, this.layers, a)) - } - isEmpty() { - return this.symbolInstances.length === 0 && !this.hasRTLText - } - uploadPending() { - return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload - } - upload(t) { - !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t), this.iconCollisionBox.upload(t)), this.text.upload(t, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = !0 - } - destroyDebugData() { - this.textCollisionBox.destroy(), this.iconCollisionBox.destroy() - } - destroy() { - this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData() - } - addToLineVertexArray(t, r) { - const a = this.lineVertexArray.length; - if (t.segment !== void 0) { - let c = t.dist(r[t.segment + 1]), - p = t.dist(r[t.segment]); - const f = {}; - for (let g = t.segment + 1; g < r.length; g++) f[g] = { - x: r[g].x, - y: r[g].y, - tileUnitDistanceFromAnchor: c - }, g < r.length - 1 && (c += r[g + 1].dist(r[g])); - for (let g = t.segment || 0; g >= 0; g--) f[g] = { - x: r[g].x, - y: r[g].y, - tileUnitDistanceFromAnchor: p - }, g > 0 && (p += r[g - 1].dist(r[g])); - for (let g = 0; g < r.length; g++) { - const v = f[g]; - this.lineVertexArray.emplaceBack(v.x, v.y, v.tileUnitDistanceFromAnchor) - } - } - return { - lineStartIndex: a, - lineLength: this.lineVertexArray.length - a - } - } - addSymbols(t, r, a, c, p, f, g, v, S, I, E, R) { - const N = t.indexArray, - j = t.layoutVertexArray, - Z = t.segments.prepareSegment(4 * r.length, j, N, this.canOverlap ? f.sortKey : void 0), - Y = this.glyphOffsetArray.length, - ae = Z.vertexLength, - ze = this.allowVerticalPlacement && g === T.ao.vertical ? Math.PI / 2 : 0, - me = f.text && f.text.sections; - for (let be = 0; be < r.length; be++) { - const { - tl: Ve, - tr: rt, - bl: St, - br: $t, - tex: Bt, - pixelOffsetTL: Ut, - pixelOffsetBR: pr, - minFontScaleX: Vt, - minFontScaleY: Zt, - glyphOffset: mt, - isSDF: Br, - sectionIndex: Ur - } = r[be], xr = Z.vertexLength, or = mt[1]; - pd(j, v.x, v.y, Ve.x, or + Ve.y, Bt.x, Bt.y, a, Br, Ut.x, Ut.y, Vt, Zt), pd(j, v.x, v.y, rt.x, or + rt.y, Bt.x + Bt.w, Bt.y, a, Br, pr.x, Ut.y, Vt, Zt), pd(j, v.x, v.y, St.x, or + St.y, Bt.x, Bt.y + Bt.h, a, Br, Ut.x, pr.y, Vt, Zt), pd(j, v.x, v.y, $t.x, or + $t.y, Bt.x + Bt.w, Bt.y + Bt.h, a, Br, pr.x, pr.y, Vt, Zt), Up(t.dynamicLayoutVertexArray, v, ze), N.emplaceBack(xr, xr + 2, xr + 1), N.emplaceBack(xr + 1, xr + 2, xr + 3), Z.vertexLength += 4, Z.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(mt[0]), be !== r.length - 1 && Ur === r[be + 1].sectionIndex || t.programConfigurations.populatePaintArrays(j.length, f, f.index, {}, R, me && me[Ur]) - } - t.placedSymbolArray.emplaceBack(v.x, v.y, Y, this.glyphOffsetArray.length - Y, ae, S, I, v.segment, a ? a[0] : 0, a ? a[1] : 0, c[0], c[1], g, 0, !1, 0, E) - } - _addCollisionDebugVertex(t, r, a, c, p, f) { - return r.emplaceBack(0, 0), t.emplaceBack(a.x, a.y, c, p, Math.round(f.x), Math.round(f.y)) - } - addCollisionDebugVertices(t, r, a, c, p, f, g) { - const v = p.segments.prepareSegment(4, p.layoutVertexArray, p.indexArray), - S = v.vertexLength, - I = p.layoutVertexArray, - E = p.collisionVertexArray, - R = g.anchorX, - N = g.anchorY; - this._addCollisionDebugVertex(I, E, f, R, N, new $(t, r)), this._addCollisionDebugVertex(I, E, f, R, N, new $(a, r)), this._addCollisionDebugVertex(I, E, f, R, N, new $(a, c)), this._addCollisionDebugVertex(I, E, f, R, N, new $(t, c)), v.vertexLength += 4; - const j = p.indexArray; - j.emplaceBack(S, S + 1), j.emplaceBack(S + 1, S + 2), j.emplaceBack(S + 2, S + 3), j.emplaceBack(S + 3, S), v.primitiveLength += 4 - } - addDebugCollisionBoxes(t, r, a, c) { - for (let p = t; p < r; p++) { - const f = this.collisionBoxArray.get(p); - this.addCollisionDebugVertices(f.x1, f.y1, f.x2, f.y2, c ? this.textCollisionBox : this.iconCollisionBox, f.anchorPoint, a) - } - } - generateCollisionDebugBuffers() { - this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new $p(Xr, a_.members, Pi), this.iconCollisionBox = new $p(Xr, a_.members, Pi); - for (let t = 0; t < this.symbolInstances.length; t++) { - const r = this.symbolInstances.get(t); - this.addDebugCollisionBoxes(r.textBoxStartIndex, r.textBoxEndIndex, r, !0), this.addDebugCollisionBoxes(r.verticalTextBoxStartIndex, r.verticalTextBoxEndIndex, r, !0), this.addDebugCollisionBoxes(r.iconBoxStartIndex, r.iconBoxEndIndex, r, !1), this.addDebugCollisionBoxes(r.verticalIconBoxStartIndex, r.verticalIconBoxEndIndex, r, !1) - } - } - _deserializeCollisionBoxesForSymbol(t, r, a, c, p, f, g, v, S) { - const I = {}; - for (let E = r; E < a; E++) { - const R = t.get(E); - I.textBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.textFeatureIndex = R.featureIndex; - break - } - for (let E = c; E < p; E++) { - const R = t.get(E); - I.verticalTextBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.verticalTextFeatureIndex = R.featureIndex; - break - } - for (let E = f; E < g; E++) { - const R = t.get(E); - I.iconBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.iconFeatureIndex = R.featureIndex; - break - } - for (let E = v; E < S; E++) { - const R = t.get(E); - I.verticalIconBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.verticalIconFeatureIndex = R.featureIndex; - break - } - return I - } - deserializeCollisionBoxes(t) { - this.collisionArrays = []; - for (let r = 0; r < this.symbolInstances.length; r++) { - const a = this.symbolInstances.get(r); - this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t, a.textBoxStartIndex, a.textBoxEndIndex, a.verticalTextBoxStartIndex, a.verticalTextBoxEndIndex, a.iconBoxStartIndex, a.iconBoxEndIndex, a.verticalIconBoxStartIndex, a.verticalIconBoxEndIndex)) - } - } - hasTextData() { - return this.text.segments.get().length > 0 - } - hasIconData() { - return this.icon.segments.get().length > 0 - } - hasDebugData() { - return this.textCollisionBox && this.iconCollisionBox - } - hasTextCollisionBoxData() { - return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0 - } - hasIconCollisionBoxData() { - return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0 - } - addIndicesForPlacedSymbol(t, r) { - const a = t.placedSymbolArray.get(r), - c = a.vertexStartIndex + 4 * a.numGlyphs; - for (let p = a.vertexStartIndex; p < c; p += 4) t.indexArray.emplaceBack(p, p + 2, p + 1), t.indexArray.emplaceBack(p + 1, p + 2, p + 3) - } - getSortedSymbolIndexes(t) { - if (this.sortedAngle === t && this.symbolInstanceIndexes !== void 0) return this.symbolInstanceIndexes; - const r = Math.sin(t), - a = Math.cos(t), - c = [], - p = [], - f = []; - for (let g = 0; g < this.symbolInstances.length; ++g) { - f.push(g); - const v = this.symbolInstances.get(g); - c.push(0 | Math.round(r * v.anchorX + a * v.anchorY)), p.push(v.featureIndex) - } - return f.sort(((g, v) => c[g] - c[v] || p[v] - p[g])), f - } - addToSortKeyRanges(t, r) { - const a = this.sortKeyRanges[this.sortKeyRanges.length - 1]; - a && a.sortKey === r ? a.symbolInstanceEnd = t + 1 : this.sortKeyRanges.push({ - sortKey: r, - symbolInstanceStart: t, - symbolInstanceEnd: t + 1 - }) - } - sortFeatures(t) { - if (this.sortFeaturesByY && this.sortedAngle !== t && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) { - this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t), this.sortedAngle = t, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = []; - for (const r of this.symbolInstanceIndexes) { - const a = this.symbolInstances.get(r); - this.featureSortOrder.push(a.featureIndex), [a.rightJustifiedTextSymbolIndex, a.centerJustifiedTextSymbolIndex, a.leftJustifiedTextSymbolIndex].forEach(((c, p, f) => { - c >= 0 && f.indexOf(c) === p && this.addIndicesForPlacedSymbol(this.text, c) - })), a.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, a.verticalPlacedTextSymbolIndex), a.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, a.placedIconSymbolIndex), a.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, a.verticalPlacedIconSymbolIndex) - } - this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray) - } - } - } - let y_, x_; - Kt("SymbolBucket", Nl, { - omit: ["layers", "collisionBoxArray", "features", "compareText"] - }), Nl.MAX_GLYPHS = 65535, Nl.addDynamicAttributes = Up; - var Gp = { - get paint() { - return x_ = x_ || new jn({ - "icon-opacity": new Rr(xe.paint_symbol["icon-opacity"]), - "icon-color": new Rr(xe.paint_symbol["icon-color"]), - "icon-halo-color": new Rr(xe.paint_symbol["icon-halo-color"]), - "icon-halo-width": new Rr(xe.paint_symbol["icon-halo-width"]), - "icon-halo-blur": new Rr(xe.paint_symbol["icon-halo-blur"]), - "icon-translate": new hr(xe.paint_symbol["icon-translate"]), - "icon-translate-anchor": new hr(xe.paint_symbol["icon-translate-anchor"]), - "text-opacity": new Rr(xe.paint_symbol["text-opacity"]), - "text-color": new Rr(xe.paint_symbol["text-color"], { - runtimeType: Dr, - getOverride: i => i.textColor, - hasOverride: i => !!i.textColor - }), - "text-halo-color": new Rr(xe.paint_symbol["text-halo-color"]), - "text-halo-width": new Rr(xe.paint_symbol["text-halo-width"]), - "text-halo-blur": new Rr(xe.paint_symbol["text-halo-blur"]), - "text-translate": new hr(xe.paint_symbol["text-translate"]), - "text-translate-anchor": new hr(xe.paint_symbol["text-translate-anchor"]) - }) - }, - get layout() { - return y_ = y_ || new jn({ - "symbol-placement": new hr(xe.layout_symbol["symbol-placement"]), - "symbol-spacing": new hr(xe.layout_symbol["symbol-spacing"]), - "symbol-avoid-edges": new hr(xe.layout_symbol["symbol-avoid-edges"]), - "symbol-sort-key": new Rr(xe.layout_symbol["symbol-sort-key"]), - "symbol-z-order": new hr(xe.layout_symbol["symbol-z-order"]), - "icon-allow-overlap": new hr(xe.layout_symbol["icon-allow-overlap"]), - "icon-overlap": new hr(xe.layout_symbol["icon-overlap"]), - "icon-ignore-placement": new hr(xe.layout_symbol["icon-ignore-placement"]), - "icon-optional": new hr(xe.layout_symbol["icon-optional"]), - "icon-rotation-alignment": new hr(xe.layout_symbol["icon-rotation-alignment"]), - "icon-size": new Rr(xe.layout_symbol["icon-size"]), - "icon-text-fit": new hr(xe.layout_symbol["icon-text-fit"]), - "icon-text-fit-padding": new hr(xe.layout_symbol["icon-text-fit-padding"]), - "icon-image": new Rr(xe.layout_symbol["icon-image"]), - "icon-rotate": new Rr(xe.layout_symbol["icon-rotate"]), - "icon-padding": new Rr(xe.layout_symbol["icon-padding"]), - "icon-keep-upright": new hr(xe.layout_symbol["icon-keep-upright"]), - "icon-offset": new Rr(xe.layout_symbol["icon-offset"]), - "icon-anchor": new Rr(xe.layout_symbol["icon-anchor"]), - "icon-pitch-alignment": new hr(xe.layout_symbol["icon-pitch-alignment"]), - "text-pitch-alignment": new hr(xe.layout_symbol["text-pitch-alignment"]), - "text-rotation-alignment": new hr(xe.layout_symbol["text-rotation-alignment"]), - "text-field": new Rr(xe.layout_symbol["text-field"]), - "text-font": new Rr(xe.layout_symbol["text-font"]), - "text-size": new Rr(xe.layout_symbol["text-size"]), - "text-max-width": new Rr(xe.layout_symbol["text-max-width"]), - "text-line-height": new hr(xe.layout_symbol["text-line-height"]), - "text-letter-spacing": new Rr(xe.layout_symbol["text-letter-spacing"]), - "text-justify": new Rr(xe.layout_symbol["text-justify"]), - "text-radial-offset": new Rr(xe.layout_symbol["text-radial-offset"]), - "text-variable-anchor": new hr(xe.layout_symbol["text-variable-anchor"]), - "text-variable-anchor-offset": new Rr(xe.layout_symbol["text-variable-anchor-offset"]), - "text-anchor": new Rr(xe.layout_symbol["text-anchor"]), - "text-max-angle": new hr(xe.layout_symbol["text-max-angle"]), - "text-writing-mode": new hr(xe.layout_symbol["text-writing-mode"]), - "text-rotate": new Rr(xe.layout_symbol["text-rotate"]), - "text-padding": new hr(xe.layout_symbol["text-padding"]), - "text-keep-upright": new hr(xe.layout_symbol["text-keep-upright"]), - "text-transform": new Rr(xe.layout_symbol["text-transform"]), - "text-offset": new Rr(xe.layout_symbol["text-offset"]), - "text-allow-overlap": new hr(xe.layout_symbol["text-allow-overlap"]), - "text-overlap": new hr(xe.layout_symbol["text-overlap"]), - "text-ignore-placement": new hr(xe.layout_symbol["text-ignore-placement"]), - "text-optional": new hr(xe.layout_symbol["text-optional"]) - }) - } - }; - class b_ { - constructor(t) { - if (t.property.overrides === void 0) throw new Error("overrides must be provided to instantiate FormatSectionOverride class"); - this.type = t.property.overrides ? t.property.overrides.runtimeType : Mt, this.defaultValue = t - } - evaluate(t) { - if (t.formattedSection) { - const r = this.defaultValue.property.overrides; - if (r && r.hasOverride(t.formattedSection)) return r.getOverride(t.formattedSection) - } - return t.feature && t.featureState ? this.defaultValue.evaluate(t.feature, t.featureState) : this.defaultValue.property.specification.default - } - eachChild(t) { - this.defaultValue.isConstant() || t(this.defaultValue.value._styleExpression.expression) - } - outputDefined() { - return !1 - } - serialize() { - return null - } - } - Kt("FormatSectionOverride", b_, { - omit: ["defaultValue"] - }); - class fd extends ha { - constructor(t) { - super(t, Gp) - } - recalculate(t, r) { - if (super.recalculate(t, r), this.layout.get("icon-rotation-alignment") === "auto" && (this.layout._values["icon-rotation-alignment"] = this.layout.get("symbol-placement") !== "point" ? "map" : "viewport"), this.layout.get("text-rotation-alignment") === "auto" && (this.layout._values["text-rotation-alignment"] = this.layout.get("symbol-placement") !== "point" ? "map" : "viewport"), this.layout.get("text-pitch-alignment") === "auto" && (this.layout._values["text-pitch-alignment"] = this.layout.get("text-rotation-alignment") === "map" ? "map" : "viewport"), this.layout.get("icon-pitch-alignment") === "auto" && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), this.layout.get("symbol-placement") === "point") { - const a = this.layout.get("text-writing-mode"); - if (a) { - const c = []; - for (const p of a) c.indexOf(p) < 0 && c.push(p); - this.layout._values["text-writing-mode"] = c - } else this.layout._values["text-writing-mode"] = ["horizontal"] - } - this._setPaintOverrides() - } - getValueAndResolveTokens(t, r, a, c) { - const p = this.layout.get(t).evaluate(r, {}, a, c), - f = this._unevaluatedLayout._values[t]; - return f.isDataDriven() || fl(f.value) || !p ? p : (function(g, v) { - return v.replace(/{([^{}]+)}/g, ((S, I) => g && I in g ? String(g[I]) : "")) - })(r.properties, p) - } - createBucket(t) { - return new Nl(t) - } - queryRadius() { - return 0 - } - queryIntersectsFeature() { - throw new Error("Should take a different path in FeatureIndex") - } - _setPaintOverrides() { - for (const t of Gp.paint.overridableProperties) { - if (!fd.hasPaintOverride(this.layout, t)) continue; - const r = this.paint.get(t), - a = new b_(r), - c = new Lc(a, r.property.specification); - let p = null; - p = r.value.kind === "constant" || r.value.kind === "source" ? new So("source", c) : new Dc("composite", c, r.value.zoomStops), this.paint._values[t] = new Na(r.property, p, r.parameters) - } - } - _handleOverridablePaintPropertyUpdate(t, r, a) { - return !(!this.layout || r.isDataDriven() || a.isDataDriven()) && fd.hasPaintOverride(this.layout, t) - } - static hasPaintOverride(t, r) { - const a = t.get("text-field"), - c = Gp.paint.properties[r]; - let p = !1; - const f = g => { - for (const v of g) - if (c.overrides && c.overrides.hasOverride(v)) return void(p = !0) - }; - if (a.value.kind === "constant" && a.value.value instanceof ln) f(a.value.value.sections); - else if (a.value.kind === "source") { - const g = S => { - p || (S instanceof ga && wr(S.value) === Si ? f(S.value.sections) : S instanceof ms ? f(S.sections) : S.eachChild(g)) - }, - v = a.value; - v._styleExpression && g(v._styleExpression.expression) - } - return p - } - } - let w_; - var ry = { - get paint() { - return w_ = w_ || new jn({ - "background-color": new hr(xe.paint_background["background-color"]), - "background-pattern": new ns(xe.paint_background["background-pattern"]), - "background-opacity": new hr(xe.paint_background["background-opacity"]) - }) - } - }; - class iy extends ha { - constructor(t) { - super(t, ry) - } - } - let T_; - var ny = { - get paint() { - return T_ = T_ || new jn({ - "raster-opacity": new hr(xe.paint_raster["raster-opacity"]), - "raster-hue-rotate": new hr(xe.paint_raster["raster-hue-rotate"]), - "raster-brightness-min": new hr(xe.paint_raster["raster-brightness-min"]), - "raster-brightness-max": new hr(xe.paint_raster["raster-brightness-max"]), - "raster-saturation": new hr(xe.paint_raster["raster-saturation"]), - "raster-contrast": new hr(xe.paint_raster["raster-contrast"]), - "raster-resampling": new hr(xe.paint_raster["raster-resampling"]), - "raster-fade-duration": new hr(xe.paint_raster["raster-fade-duration"]) - }) - } - }; - class ay extends ha { - constructor(t) { - super(t, ny) - } - } - class sy extends ha { - constructor(t) { - super(t, {}), this.onAdd = r => { - this.implementation.onAdd && this.implementation.onAdd(r, r.painter.context.gl) - }, this.onRemove = r => { - this.implementation.onRemove && this.implementation.onRemove(r, r.painter.context.gl) - }, this.implementation = t - } - 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 oy { - constructor(t) { - this._methodToThrottle = t, 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 ly = { - once: !0 - }, - Hp = 63710088e-1; - class ro { - constructor(t, r) { - if (isNaN(t) || isNaN(r)) throw new Error(`Invalid LngLat object: (${t}, ${r})`); - if (this.lng = +t, this.lat = +r, this.lat > 90 || this.lat < -90) throw new Error("Invalid LngLat latitude value: must be between -90 and 90") - } - wrap() { - return new ro(tt(this.lng, -180, 180), this.lat) - } - toArray() { - return [this.lng, this.lat] - } - toString() { - return `LngLat(${this.lng}, ${this.lat})` - } - distanceTo(t) { - const r = Math.PI / 180, - a = this.lat * r, - c = t.lat * r, - p = Math.sin(a) * Math.sin(c) + Math.cos(a) * Math.cos(c) * Math.cos((t.lng - this.lng) * r); - return Hp * Math.acos(Math.min(p, 1)) - } - static convert(t) { - if (t instanceof ro) return t; - if (Array.isArray(t) && (t.length === 2 || t.length === 3)) return new ro(Number(t[0]), Number(t[1])); - if (!Array.isArray(t) && typeof t == "object" && t !== null) return new ro(Number("lng" in t ? t.lng : t.lon), Number(t.lat)); - throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]") - } - } - const C_ = 2 * Math.PI * Hp; - - function S_(i) { - return C_ * Math.cos(i * Math.PI / 180) - } - - function P_(i) { - return (180 + i) / 360 - } - - function I_(i) { - return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + i * Math.PI / 360))) / 360 - } - - function M_(i, t) { - return i / S_(t) - } - - function Wp(i) { - return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * i) * Math.PI / 180)) - 90 - } - - function A_(i, t) { - return i * S_(Wp(t)) - } - class fu { - constructor(t, r, a = 0) { - this.x = +t, this.y = +r, this.z = +a - } - static fromLngLat(t, r = 0) { - const a = ro.convert(t); - return new fu(P_(a.lng), I_(a.lat), M_(r, a.lat)) - } - toLngLat() { - return new ro(360 * this.x - 180, Wp(this.y)) - } - toAltitude() { - return A_(this.z, this.y) - } - meterInMercatorCoordinateUnits() { - return 1 / C_ * (t = Wp(this.y), 1 / Math.cos(t * Math.PI / 180)); - var t - } - } - - function k_(i, t, r) { - var a = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r); - return [i * a - 2 * Math.PI * 6378137 / 2, t * a - 2 * Math.PI * 6378137 / 2] - } - class Xp { - constructor(t, r, a) { - if (!(function(c, p, f) { - return !(c < 0 || c > 25 || f < 0 || f >= Math.pow(2, c) || p < 0 || p >= Math.pow(2, c)) - })(t, r, a)) throw new Error(`x=${r}, y=${a}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `); - this.z = t, this.x = r, this.y = a, this.key = jl(0, t, t, r, a) - } - equals(t) { - return this.z === t.z && this.x === t.x && this.y === t.y - } - url(t, r, a) { - const c = (f = this.y, g = this.z, v = k_(256 * (p = this.x), 256 * (f = Math.pow(2, g) - f - 1), g), S = k_(256 * (p + 1), 256 * (f + 1), g), v[0] + "," + v[1] + "," + S[0] + "," + S[1]); - var p, f, g, v, S; - const I = (function(E, R, N) { - let j, Z = ""; - for (let Y = E; Y > 0; Y--) j = 1 << Y - 1, Z += (R & j ? 1 : 0) + (N & j ? 2 : 0); - return Z - })(this.z, this.x, this.y); - return t[(this.x + this.y) % t.length].replace(/{prefix}/g, (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(/{z}/g, String(this.z)).replace(/{x}/g, String(this.x)).replace(/{y}/g, String(a === "tms" ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(/{ratio}/g, r > 1 ? "@2x" : "").replace(/{quadkey}/g, I).replace(/{bbox-epsg-3857}/g, c) - } - isChildOf(t) { - const r = this.z - t.z; - return r > 0 && t.x === this.x >> r && t.y === this.y >> r - } - getTilePoint(t) { - const r = Math.pow(2, this.z); - return new $((t.x * r - this.x) * ne, (t.y * r - this.y) * ne) - } - toString() { - return `${this.z}/${this.x}/${this.y}` - } - } - class E_ { - constructor(t, r) { - this.wrap = t, this.canonical = r, this.key = jl(t, r.z, r.z, r.x, r.y) - } - } - class Ma { - constructor(t, r, a, c, p) { - if (this.terrainRttPosMatrix32f = null, t < a) throw new Error(`overscaledZ should be >= z; overscaledZ = ${t}; z = ${a}`); - this.overscaledZ = t, this.wrap = r, this.canonical = new Xp(a, +c, +p), this.key = jl(r, t, a, c, p) - } - clone() { - return new Ma(this.overscaledZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) - } - equals(t) { - return this.overscaledZ === t.overscaledZ && this.wrap === t.wrap && this.canonical.equals(t.canonical) - } - scaledTo(t) { - if (t > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`); - const r = this.canonical.z - t; - return t > this.canonical.z ? new Ma(t, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new Ma(t, this.wrap, t, this.canonical.x >> r, this.canonical.y >> r) - } - calculateScaledKey(t, r) { - if (t > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`); - const a = this.canonical.z - t; - return t > this.canonical.z ? jl(this.wrap * +r, t, this.canonical.z, this.canonical.x, this.canonical.y) : jl(this.wrap * +r, t, t, this.canonical.x >> a, this.canonical.y >> a) - } - isChildOf(t) { - if (t.wrap !== this.wrap) return !1; - const r = this.canonical.z - t.canonical.z; - return t.overscaledZ === 0 || t.overscaledZ < this.overscaledZ && t.canonical.x === this.canonical.x >> r && t.canonical.y === this.canonical.y >> r - } - children(t) { - if (this.overscaledZ >= t) return [new Ma(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)]; - const r = this.canonical.z + 1, - a = 2 * this.canonical.x, - c = 2 * this.canonical.y; - return [new Ma(r, this.wrap, r, a, c), new Ma(r, this.wrap, r, a + 1, c), new Ma(r, this.wrap, r, a, c + 1), new Ma(r, this.wrap, r, a + 1, c + 1)] - } - isLessThan(t) { - return this.wrap < t.wrap || !(this.wrap > t.wrap) && (this.overscaledZ < t.overscaledZ || !(this.overscaledZ > t.overscaledZ) && (this.canonical.x < t.canonical.x || !(this.canonical.x > t.canonical.x) && this.canonical.y < t.canonical.y)) - } - wrapped() { - return new Ma(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y) - } - unwrapTo(t) { - return new Ma(this.overscaledZ, t, this.canonical.z, this.canonical.x, this.canonical.y) - } - overscaleFactor() { - return Math.pow(2, this.overscaledZ - this.canonical.z) - } - toUnwrapped() { - return new E_(this.wrap, this.canonical) - } - toString() { - return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}` - } - getTilePoint(t) { - return this.canonical.getTilePoint(new fu(t.x - this.wrap, t.y)) - } - } - - function jl(i, t, r, a, c) { - (i *= 2) < 0 && (i = -1 * i - 1); - const p = 1 << r; - return (p * p * i + p * c + a).toString(36) + r.toString(36) + t.toString(36) - } - - function mu(i, t) { - return t ? i.properties[t] : i.id - } - Kt("CanonicalTileID", Xp), Kt("OverscaledTileID", Ma, { - omit: ["terrainRttPosMatrix32f"] - }); - class Oo { - constructor() { - this.minX = 1 / 0, this.maxX = -1 / 0, this.minY = 1 / 0, this.maxY = -1 / 0 - } - extend(t) { - return this.minX = Math.min(this.minX, t.x), this.minY = Math.min(this.minY, t.y), this.maxX = Math.max(this.maxX, t.x), this.maxY = Math.max(this.maxY, t.y), this - } - expandBy(t) { - return this.minX -= t, this.minY -= t, this.maxX += t, this.maxY += t, (this.minX > this.maxX || this.minY > this.maxY) && (this.minX = 1 / 0, this.maxX = -1 / 0, this.minY = 1 / 0, this.maxY = -1 / 0), this - } - shrinkBy(t) { - return this.expandBy(-t) - } - map(t) { - const r = new Oo; - return r.extend(t(new $(this.minX, this.minY))), r.extend(t(new $(this.maxX, this.minY))), r.extend(t(new $(this.minX, this.maxY))), r.extend(t(new $(this.maxX, this.maxY))), r - } - static fromPoints(t) { - const r = new Oo; - for (const a of t) r.extend(a); - return r - } - contains(t) { - return t.x >= this.minX && t.x <= this.maxX && t.y >= this.minY && t.y <= this.maxY - } - empty() { - return this.minX > this.maxX - } - width() { - return this.maxX - this.minX - } - height() { - return this.maxY - this.minY - } - covers(t) { - return !this.empty() && !t.empty() && t.minX >= this.minX && t.maxX <= this.maxX && t.minY >= this.minY && t.maxY <= this.maxY - } - intersects(t) { - return !this.empty() && !t.empty() && t.minX <= this.maxX && t.maxX >= this.minX && t.minY <= this.maxY && t.maxY >= this.minY - } - } - class z_ { - constructor(t) { - this._stringToNumber = {}, this._numberToString = []; - for (let r = 0; r < t.length; r++) { - const a = t[r]; - this._stringToNumber[a] = r, this._numberToString[r] = a - } - } - encode(t) { - return this._stringToNumber[t] - } - decode(t) { - if (t >= this._numberToString.length) throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`); - return this._numberToString[t] - } - } - class L_ { - constructor(t, r, a, c, p) { - this.type = "Feature", this._vectorTileFeature = t, t._z = r, t._x = a, t._y = c, this.properties = t.properties, this.id = p - } - 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(t) { - this._geometry = t - } - toJSON() { - const t = { - geometry: this.geometry - }; - for (const r in this) r !== "_geometry" && r !== "_vectorTileFeature" && (t[r] = this[r]); - return t - } - } - class D_ { - constructor(t, r) { - this.tileID = t, this.x = t.canonical.x, this.y = t.canonical.y, this.z = t.canonical.z, this.grid = new zo(ne, 16, 0), this.grid3D = new zo(ne, 16, 0), this.featureIndexArray = new Te, this.promoteId = r - } - insert(t, r, a, c, p, f) { - const g = this.featureIndexArray.length; - this.featureIndexArray.emplaceBack(a, c, p); - const v = f ? this.grid3D : this.grid; - for (let S = 0; S < r.length; S++) { - const I = r[S], - E = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (let R = 0; R < I.length; R++) { - const N = I[R]; - E[0] = Math.min(E[0], N.x), E[1] = Math.min(E[1], N.y), E[2] = Math.max(E[2], N.x), E[3] = Math.max(E[3], N.y) - } - E[0] < ne && E[1] < ne && E[2] >= 0 && E[3] >= 0 && v.insert(g, E[0], E[1], E[2], E[3]) - } - } - loadVTLayers() { - return this.vtLayers || (this.vtLayers = new Km(new Op(this.rawTileData)).layers, this.sourceLayerCoder = new z_(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers - } - query(t, r, a, c) { - this.loadVTLayers(); - const p = t.params, - f = ne / t.tileSize / t.scale, - g = bs(p.filter), - v = t.queryGeometry, - S = t.queryPadding * f, - I = Oo.fromPoints(v), - E = this.grid.query(I.minX - S, I.minY - S, I.maxX + S, I.maxY + S), - R = Oo.fromPoints(t.cameraQueryGeometry).expandBy(S), - N = this.grid3D.query(R.minX, R.minY, R.maxX, R.maxY, ((Y, ae, ze, me) => (function(be, Ve, rt, St, $t) { - for (const Ut of be) - if (Ve <= Ut.x && rt <= Ut.y && St >= Ut.x && $t >= Ut.y) return !0; - const Bt = [new $(Ve, rt), new $(Ve, $t), new $(St, $t), new $(St, rt)]; - if (be.length > 2) { - for (const Ut of Bt) - if (zl(be, Ut)) return !0 - } - for (let Ut = 0; Ut < be.length - 1; Ut++) - if (jv(be[Ut], be[Ut + 1], Bt)) return !0; - return !1 - })(t.cameraQueryGeometry, Y - S, ae - S, ze + S, me + S))); - for (const Y of N) E.push(Y); - E.sort(cy); - const j = {}; - let Z; - for (let Y = 0; Y < E.length; Y++) { - const ae = E[Y]; - if (ae === Z) continue; - Z = ae; - const ze = this.featureIndexArray.get(ae); - let me = null; - this.loadMatchingFeature(j, ze.bucketIndex, ze.sourceLayerIndex, ze.featureIndex, g, p.layers, p.availableImages, r, a, c, ((be, Ve, rt) => (me || (me = cs(be)), Ve.queryIntersectsFeature({ - queryGeometry: v, - feature: be, - featureState: rt, - geometry: me, - zoom: this.z, - transform: t.transform, - pixelsToTileUnits: f, - pixelPosMatrix: t.pixelPosMatrix, - unwrappedTileID: this.tileID.toUnwrapped(), - getElevation: t.getElevation - })))) - } - return j - } - loadMatchingFeature(t, r, a, c, p, f, g, v, S, I, E) { - const R = this.bucketLayerIDs[r]; - if (f && !R.some((Y => f.has(Y)))) return; - const N = this.sourceLayerCoder.decode(a), - j = this.vtLayers[N].feature(c); - if (p.needGeometry) { - const Y = Wa(j, !0); - if (!p.filter(new Oi(this.tileID.overscaledZ), Y, this.tileID.canonical)) return - } else if (!p.filter(new Oi(this.tileID.overscaledZ), j)) return; - const Z = this.getId(j, N); - for (let Y = 0; Y < R.length; Y++) { - const ae = R[Y]; - if (f && !f.has(ae)) continue; - const ze = v[ae]; - if (!ze) continue; - let me = {}; - Z && I && (me = I.getState(ze.sourceLayer || "_geojsonTileLayer", Z)); - const be = pt({}, S[ae]); - be.paint = R_(be.paint, ze.paint, j, me, g), be.layout = R_(be.layout, ze.layout, j, me, g); - const Ve = !E || E(j, ze, me); - if (!Ve) continue; - const rt = new L_(j, this.z, this.x, this.y, Z); - rt.layer = be; - let St = t[ae]; - St === void 0 && (St = t[ae] = []), St.push({ - featureIndex: c, - feature: rt, - intersectionZ: Ve - }) - } - } - lookupSymbolFeatures(t, r, a, c, p, f, g, v) { - const S = {}; - this.loadVTLayers(); - const I = bs(p); - for (const E of t) this.loadMatchingFeature(S, a, c, E, I, f, g, v, r); - return S - } - hasLayer(t) { - for (const r of this.bucketLayerIDs) - for (const a of r) - if (t === a) return !0; - return !1 - } - getId(t, r) { - var a; - let c = t.id; - return this.promoteId && (c = t.properties[typeof this.promoteId == "string" ? this.promoteId : this.promoteId[r]], typeof c == "boolean" && (c = Number(c)), c === void 0 && (!((a = t.properties) === null || a === void 0) && a.cluster) && this.promoteId && (c = Number(t.properties.cluster_id))), c - } - } - - function R_(i, t, r, a, c) { - return ut(i, ((p, f) => { - const g = t instanceof Cl ? t.get(f) : null; - return g && g.evaluate ? g.evaluate(r, a, c) : g - })) - } - - function cy(i, t) { - return t - i - } - - function B_(i, t, r, a, c) { - const p = []; - for (let f = 0; f < i.length; f++) { - const g = i[f]; - let v; - for (let S = 0; S < g.length - 1; S++) { - let I = g[S], - E = g[S + 1]; - I.x < t && E.x < t || (I.x < t ? I = new $(t, I.y + (t - I.x) / (E.x - I.x) * (E.y - I.y))._round() : E.x < t && (E = new $(t, I.y + (t - I.x) / (E.x - I.x) * (E.y - I.y))._round()), I.y < r && E.y < r || (I.y < r ? I = new $(I.x + (r - I.y) / (E.y - I.y) * (E.x - I.x), r)._round() : E.y < r && (E = new $(I.x + (r - I.y) / (E.y - I.y) * (E.x - I.x), r)._round()), I.x >= a && E.x >= a || (I.x >= a ? I = new $(a, I.y + (a - I.x) / (E.x - I.x) * (E.y - I.y))._round() : E.x >= a && (E = new $(a, I.y + (a - I.x) / (E.x - I.x) * (E.y - I.y))._round()), I.y >= c && E.y >= c || (I.y >= c ? I = new $(I.x + (c - I.y) / (E.y - I.y) * (E.x - I.x), c)._round() : E.y >= c && (E = new $(I.x + (c - I.y) / (E.y - I.y) * (E.x - I.x), c)._round()), v && I.equals(v[v.length - 1]) || (v = [I], p.push(v)), v.push(E))))) - } - } - return p - } - Kt("FeatureIndex", D_, { - omit: ["rawTileData", "sourceLayerCoder"] - }); - class io extends $ { - constructor(t, r, a, c) { - super(t, r), this.angle = a, c !== void 0 && (this.segment = c) - } - clone() { - return new io(this.x, this.y, this.angle, this.segment) - } - } - - function F_(i, t, r, a, c) { - if (t.segment === void 0 || r === 0) return !0; - let p = t, - f = t.segment + 1, - g = 0; - for (; g > -r / 2;) { - if (f--, f < 0) return !1; - g -= i[f].dist(p), p = i[f] - } - g += i[f].dist(i[f + 1]), f++; - const v = []; - let S = 0; - for (; g < r / 2;) { - const I = i[f], - E = i[f + 1]; - if (!E) return !1; - let R = i[f - 1].angleTo(I) - I.angleTo(E); - for (R = Math.abs((R + 3 * Math.PI) % (2 * Math.PI) - Math.PI), v.push({ - distance: g, - angleDelta: R - }), S += R; g - v[0].distance > a;) S -= v.shift().angleDelta; - if (S > c) return !1; - f++, g += I.dist(E) - } - return !0 - } - - function O_(i) { - let t = 0; - for (let r = 0; r < i.length - 1; r++) t += i[r].dist(i[r + 1]); - return t - } - - function N_(i, t, r) { - return i ? .6 * t * r : 0 - } - - function j_(i, t) { - return Math.max(i ? i.right - i.left : 0, t ? t.right - t.left : 0) - } - - function uy(i, t, r, a, c, p) { - const f = N_(r, c, p), - g = j_(r, a) * p; - let v = 0; - const S = O_(i) / 2; - for (let I = 0; I < i.length - 1; I++) { - const E = i[I], - R = i[I + 1], - N = E.dist(R); - if (v + N > S) { - const j = (S - v) / N, - Z = Fa.number(E.x, R.x, j), - Y = Fa.number(E.y, R.y, j), - ae = new io(Z, Y, R.angleTo(E), I); - return ae._round(), !f || F_(i, ae, g, f, t) ? ae : void 0 - } - v += N - } - } - - function hy(i, t, r, a, c, p, f, g, v) { - const S = N_(a, p, f), - I = j_(a, c), - E = I * f, - R = i[0].x === 0 || i[0].x === v || i[0].y === 0 || i[0].y === v; - return t - E < t / 4 && (t = E + t / 4), q_(i, R ? t / 2 * g % t : (I / 2 + 2 * p) * f * g % t, t, S, r, E, R, !1, v) - } - - function q_(i, t, r, a, c, p, f, g, v) { - const S = p / 2, - I = O_(i); - let E = 0, - R = t - r, - N = []; - for (let j = 0; j < i.length - 1; j++) { - const Z = i[j], - Y = i[j + 1], - ae = Z.dist(Y), - ze = Y.angleTo(Z); - for (; R + r < E + ae;) { - R += r; - const me = (R - E) / ae, - be = Fa.number(Z.x, Y.x, me), - Ve = Fa.number(Z.y, Y.y, me); - if (be >= 0 && be < v && Ve >= 0 && Ve < v && R - S >= 0 && R + S <= I) { - const rt = new io(be, Ve, ze, j); - rt._round(), a && !F_(i, rt, p, a, c) || N.push(rt) - } - } - E += ae - } - return g || N.length || f || (N = q_(i, E / 2, r, a, c, p, f, !0, v)), N - } - - function V_(i, t, r, a) { - const c = [], - p = i.image, - f = p.pixelRatio, - g = p.paddedRect.w - 2, - v = p.paddedRect.h - 2; - let S = { - x1: i.left, - y1: i.top, - x2: i.right, - y2: i.bottom - }; - const I = p.stretchX || [ - [0, g] - ], - E = p.stretchY || [ - [0, v] - ], - R = (mt, Br) => mt + Br[1] - Br[0], - N = I.reduce(R, 0), - j = E.reduce(R, 0), - Z = g - N, - Y = v - j; - let ae = 0, - ze = N, - me = 0, - be = j, - Ve = 0, - rt = Z, - St = 0, - $t = Y; - if (p.content && a) { - const mt = p.content, - Br = mt[2] - mt[0], - Ur = mt[3] - mt[1]; - (p.textFitWidth || p.textFitHeight) && (S = __(i)), ae = md(I, 0, mt[0]), me = md(E, 0, mt[1]), ze = md(I, mt[0], mt[2]), be = md(E, mt[1], mt[3]), Ve = mt[0] - ae, St = mt[1] - me, rt = Br - ze, $t = Ur - be - } - const Bt = S.x1, - Ut = S.y1, - pr = S.x2 - Bt, - Vt = S.y2 - Ut, - Zt = (mt, Br, Ur, xr) => { - const or = _d(mt.stretch - ae, ze, pr, Bt), - oi = gd(mt.fixed - Ve, rt, mt.stretch, N), - Zi = _d(Br.stretch - me, be, Vt, Ut), - fn = gd(Br.fixed - St, $t, Br.stretch, j), - Bn = _d(Ur.stretch - ae, ze, pr, Bt), - Aa = gd(Ur.fixed - Ve, rt, Ur.stretch, N), - aa = _d(xr.stretch - me, be, Vt, Ut), - Mn = gd(xr.fixed - St, $t, xr.stretch, j), - qi = new $(or, Zi), - wn = new $(Bn, Zi), - An = new $(Bn, aa), - kn = new $(or, aa), - Yn = new $(oi / f, fn / f), - ka = new $(Aa / f, Mn / f), - Tn = t * Math.PI / 180; - if (Tn) { - const Cn = Math.sin(Tn), - Sn = Math.cos(Tn), - rn = [Sn, -Cn, Cn, Sn]; - qi._matMult(rn), wn._matMult(rn), kn._matMult(rn), An._matMult(rn) - } - const sa = mt.stretch + mt.fixed, - mn = Br.stretch + Br.fixed; - return { - tl: qi, - tr: wn, - bl: kn, - br: An, - tex: { - x: p.paddedRect.x + 1 + sa, - y: p.paddedRect.y + 1 + mn, - w: Ur.stretch + Ur.fixed - sa, - h: xr.stretch + xr.fixed - mn - }, - writingMode: void 0, - glyphOffset: [0, 0], - sectionIndex: 0, - pixelOffsetTL: Yn, - pixelOffsetBR: ka, - minFontScaleX: rt / f / pr, - minFontScaleY: $t / f / Vt, - isSDF: r - } - }; - if (a && (p.stretchX || p.stretchY)) { - const mt = U_(I, Z, N), - Br = U_(E, Y, j); - for (let Ur = 0; Ur < mt.length - 1; Ur++) { - const xr = mt[Ur], - or = mt[Ur + 1]; - for (let oi = 0; oi < Br.length - 1; oi++) c.push(Zt(xr, Br[oi], or, Br[oi + 1])) - } - } else c.push(Zt({ - fixed: 0, - stretch: -1 - }, { - fixed: 0, - stretch: -1 - }, { - fixed: 0, - stretch: g + 1 - }, { - fixed: 0, - stretch: v + 1 - })); - return c - } - - function md(i, t, r) { - let a = 0; - for (const c of i) a += Math.max(t, Math.min(r, c[1])) - Math.max(t, Math.min(r, c[0])); - return a - } - - function U_(i, t, r) { - const a = [{ - fixed: -1, - stretch: 0 - }]; - for (const [c, p] of i) { - const f = a[a.length - 1]; - a.push({ - fixed: c - f.stretch, - stretch: f.stretch - }), a.push({ - fixed: c - f.stretch, - stretch: f.stretch + (p - c) - }) - } - return a.push({ - fixed: t + 1, - stretch: r - }), a - } - - function _d(i, t, r, a) { - return i / t * r + a - } - - function gd(i, t, r, a) { - return i - t * r / a - } - Kt("Anchor", io); - class vd { - constructor(t, r, a, c, p, f, g, v, S, I) { - var E; - if (this.boxStartIndex = t.length, S) { - let R = f.top, - N = f.bottom; - const j = f.collisionPadding; - j && (R -= j[1], N += j[3]); - let Z = N - R; - Z > 0 && (Z = Math.max(10, Z), this.circleDiameter = Z) - } else { - const R = !((E = f.image) === null || E === void 0) && E.content && (f.image.textFitWidth || f.image.textFitHeight) ? __(f) : { - x1: f.left, - y1: f.top, - x2: f.right, - y2: f.bottom - }; - R.y1 = R.y1 * g - v[0], R.y2 = R.y2 * g + v[2], R.x1 = R.x1 * g - v[3], R.x2 = R.x2 * g + v[1]; - const N = f.collisionPadding; - if (N && (R.x1 -= N[0] * g, R.y1 -= N[1] * g, R.x2 += N[2] * g, R.y2 += N[3] * g), I) { - const j = new $(R.x1, R.y1), - Z = new $(R.x2, R.y1), - Y = new $(R.x1, R.y2), - ae = new $(R.x2, R.y2), - ze = I * Math.PI / 180; - j._rotate(ze), Z._rotate(ze), Y._rotate(ze), ae._rotate(ze), R.x1 = Math.min(j.x, Z.x, Y.x, ae.x), R.x2 = Math.max(j.x, Z.x, Y.x, ae.x), R.y1 = Math.min(j.y, Z.y, Y.y, ae.y), R.y2 = Math.max(j.y, Z.y, Y.y, ae.y) - } - t.emplaceBack(r.x, r.y, R.x1, R.y1, R.x2, R.y2, a, c, p) - } - this.boxEndIndex = t.length - } - } - class dy { - constructor(t = [], r = (a, c) => a < c ? -1 : a > c ? 1 : 0) { - if (this.data = t, this.length = this.data.length, this.compare = r, this.length > 0) - for (let a = (this.length >> 1) - 1; a >= 0; a--) this._down(a) - } - push(t) { - this.data.push(t), this._up(this.length++) - } - pop() { - if (this.length === 0) return; - const t = this.data[0], - r = this.data.pop(); - return --this.length > 0 && (this.data[0] = r, this._down(0)), t - } - peek() { - return this.data[0] - } - _up(t) { - const { - data: r, - compare: a - } = this, c = r[t]; - for (; t > 0;) { - const p = t - 1 >> 1, - f = r[p]; - if (a(c, f) >= 0) break; - r[t] = f, t = p - } - r[t] = c - } - _down(t) { - const { - data: r, - compare: a - } = this, c = this.length >> 1, p = r[t]; - for (; t < c;) { - let f = 1 + (t << 1); - const g = f + 1; - if (g < this.length && a(r[g], r[f]) < 0 && (f = g), a(r[f], p) >= 0) break; - r[t] = r[f], t = f - } - r[t] = p - } - } - - function py(i, t = 1, r = !1) { - const a = Oo.fromPoints(i[0]), - c = Math.min(a.width(), a.height()); - let p = c / 2; - const f = new dy([], fy), - { - minX: g, - minY: v, - maxX: S, - maxY: I - } = a; - if (c === 0) return new $(g, v); - for (let N = g; N < S; N += c) - for (let j = v; j < I; j += c) f.push(new ql(N + p, j + p, p, i)); - let E = (function(N) { - let j = 0, - Z = 0, - Y = 0; - const ae = N[0]; - for (let ze = 0, me = ae.length, be = me - 1; ze < me; be = ze++) { - const Ve = ae[ze], - rt = ae[be], - St = Ve.x * rt.y - rt.x * Ve.y; - Z += (Ve.x + rt.x) * St, Y += (Ve.y + rt.y) * St, j += 3 * St - } - return new ql(Z / j, Y / j, 0, N) - })(i), - R = f.length; - for (; f.length;) { - const N = f.pop(); - (N.d > E.d || !E.d) && (E = N, r && console.log("found best %d after %d probes", Math.round(1e4 * N.d) / 1e4, R)), N.max - E.d <= t || (p = N.h / 2, f.push(new ql(N.p.x - p, N.p.y - p, p, i)), f.push(new ql(N.p.x + p, N.p.y - p, p, i)), f.push(new ql(N.p.x - p, N.p.y + p, p, i)), f.push(new ql(N.p.x + p, N.p.y + p, p, i)), R += 4) - } - return r && (console.log(`num probes: ${R}`), console.log(`best distance: ${E.d}`)), E.p - } - - function fy(i, t) { - return t.max - i.max - } - - function ql(i, t, r, a) { - this.p = new $(i, t), this.h = r, this.d = (function(c, p) { - let f = !1, - g = 1 / 0; - for (let v = 0; v < p.length; v++) { - const S = p[v]; - for (let I = 0, E = S.length, R = E - 1; I < E; R = I++) { - const N = S[I], - j = S[R]; - N.y > c.y != j.y > c.y && c.x < (j.x - N.x) * (c.y - N.y) / (j.y - N.y) + N.x && (f = !f), g = Math.min(g, Im(c, N, j)) - } - } - return (f ? 1 : -1) * Math.sqrt(g) - })(this.p, a), this.max = this.d + this.h * Math.SQRT2 - } - var Rn; - T.aE = void 0, (Rn = T.aE || (T.aE = {}))[Rn.center = 1] = "center", Rn[Rn.left = 2] = "left", Rn[Rn.right = 3] = "right", Rn[Rn.top = 4] = "top", Rn[Rn.bottom = 5] = "bottom", Rn[Rn["top-left"] = 6] = "top-left", Rn[Rn["top-right"] = 7] = "top-right", Rn[Rn["bottom-left"] = 8] = "bottom-left", Rn[Rn["bottom-right"] = 9] = "bottom-right"; - const Kp = Number.POSITIVE_INFINITY; - - function Z_(i, t) { - return t[1] !== Kp ? (function(r, a, c) { - let p = 0, - f = 0; - switch (a = Math.abs(a), c = Math.abs(c), r) { - case "top-right": - case "top-left": - case "top": - f = c - 7; - break; - case "bottom-right": - case "bottom-left": - case "bottom": - f = 7 - c - } - switch (r) { - case "top-right": - case "bottom-right": - case "right": - p = -a; - break; - case "top-left": - case "bottom-left": - case "left": - p = a - } - return [p, f] - })(i, t[0], t[1]) : (function(r, a) { - let c = 0, - p = 0; - a < 0 && (a = 0); - const f = a / Math.SQRT2; - switch (r) { - case "top-right": - case "top-left": - p = f - 7; - break; - case "bottom-right": - case "bottom-left": - p = 7 - f; - break; - case "bottom": - p = 7 - a; - break; - case "top": - p = a - 7 - } - switch (r) { - case "top-right": - case "bottom-right": - c = -f; - break; - case "top-left": - case "bottom-left": - c = f; - break; - case "left": - c = a; - break; - case "right": - c = -a - } - return [c, p] - })(i, t[0]) - } - - function $_(i, t, r) { - var a; - const c = i.layout, - p = (a = c.get("text-variable-anchor-offset")) === null || a === void 0 ? void 0 : a.evaluate(t, {}, r); - if (p) { - const g = p.values, - v = []; - for (let S = 0; S < g.length; S += 2) { - const I = v[S] = g[S], - E = g[S + 1].map((R => R * bn)); - I.startsWith("top") ? E[1] -= 7 : I.startsWith("bottom") && (E[1] += 7), v[S + 1] = E - } - return new un(v) - } - const f = c.get("text-variable-anchor"); - if (f) { - let g; - g = i._unevaluatedLayout.getValue("text-radial-offset") !== void 0 ? [c.get("text-radial-offset").evaluate(t, {}, r) * bn, Kp] : c.get("text-offset").evaluate(t, {}, r).map((S => S * bn)); - const v = []; - for (const S of f) v.push(S, Z_(S, g)); - return new un(v) - } - return null - } - - function Yp(i) { - switch (i) { - case "right": - case "top-right": - case "bottom-right": - return "right"; - case "left": - case "top-left": - case "bottom-left": - return "left" - } - return "center" - } - - function my(i, t, r, a, c, p, f, g, v, S, I, E) { - let R = p.textMaxSize.evaluate(t, {}); - R === void 0 && (R = f); - const N = i.layers[0].layout, - j = N.get("icon-offset").evaluate(t, {}, I), - Z = H_(r.horizontal), - Y = f / 24, - ae = i.tilePixelRatio * Y, - ze = i.tilePixelRatio * R / 24, - me = i.tilePixelRatio * g, - be = i.tilePixelRatio * N.get("symbol-spacing"), - Ve = N.get("text-padding") * i.tilePixelRatio, - rt = (function(Ur, xr, or, oi = 1) { - const Zi = Ur.get("icon-padding").evaluate(xr, {}, or), - fn = Zi && Zi.values; - return [fn[0] * oi, fn[1] * oi, fn[2] * oi, fn[3] * oi] - })(N, t, I, i.tilePixelRatio), - St = N.get("text-max-angle") / 180 * Math.PI, - $t = N.get("text-rotation-alignment") !== "viewport" && N.get("symbol-placement") !== "point", - Bt = N.get("icon-rotation-alignment") === "map" && N.get("symbol-placement") !== "point", - Ut = N.get("symbol-placement"), - pr = be / 2, - Vt = N.get("icon-text-fit"); - let Zt; - a && Vt !== "none" && (i.allowVerticalPlacement && r.vertical && (Zt = g_(a, r.vertical, Vt, N.get("icon-text-fit-padding"), j, Y)), Z && (a = g_(a, Z, Vt, N.get("icon-text-fit-padding"), j, Y))); - const mt = I ? E.line.getGranularityForZoomLevel(I.z) : 1, - Br = (Ur, xr) => { - xr.x < 0 || xr.x >= ne || xr.y < 0 || xr.y >= ne || (function(or, oi, Zi, fn, Bn, Aa, aa, Mn, qi, wn, An, kn, Yn, ka, Tn, sa, mn, Cn, Sn, rn, Bi, Xa, Vl, Ka, vy) { - const Ul = or.addToLineVertexArray(oi, Zi); - let No, Zl, $l, Gl, Y_ = 0, - J_ = 0, - Q_ = 0, - eg = 0, - sf = -1, - of = -1; - const ks = {}; - let tg = Js(""); - if (or.allowVerticalPlacement && fn.vertical) { - const Un = Mn.layout.get("text-rotate").evaluate(Bi, {}, Ka) + 90; - $l = new vd(qi, oi, wn, An, kn, fn.vertical, Yn, ka, Tn, Un), aa && (Gl = new vd(qi, oi, wn, An, kn, aa, mn, Cn, Tn, Un)) - } - if (Bn) { - const Un = Mn.layout.get("icon-rotate").evaluate(Bi, {}), - Ea = Mn.layout.get("icon-text-fit") !== "none", - jo = V_(Bn, Un, Vl, Ea), - Ja = aa ? V_(aa, Un, Vl, Ea) : void 0; - Zl = new vd(qi, oi, wn, An, kn, Bn, mn, Cn, !1, Un), Y_ = 4 * jo.length; - const qo = or.iconSizeData; - let us = null; - qo.kind === "source" ? (us = [As * Mn.layout.get("icon-size").evaluate(Bi, {})], us[0] > to && Lt(`${or.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)) : qo.kind === "composite" && (us = [As * Xa.compositeIconSizes[0].evaluate(Bi, {}, Ka), As * Xa.compositeIconSizes[1].evaluate(Bi, {}, Ka)], (us[0] > to || us[1] > to) && Lt(`${or.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)), or.addSymbols(or.icon, jo, us, rn, Sn, Bi, T.ao.none, oi, Ul.lineStartIndex, Ul.lineLength, -1, Ka), sf = or.icon.placedSymbolArray.length - 1, Ja && (J_ = 4 * Ja.length, or.addSymbols(or.icon, Ja, us, rn, Sn, Bi, T.ao.vertical, oi, Ul.lineStartIndex, Ul.lineLength, -1, Ka), of = or.icon.placedSymbolArray.length - 1) - } - const rg = Object.keys(fn.horizontal); - for (const Un of rg) { - const Ea = fn.horizontal[Un]; - if (!No) { - tg = Js(Ea.text); - const Ja = Mn.layout.get("text-rotate").evaluate(Bi, {}, Ka); - No = new vd(qi, oi, wn, An, kn, Ea, Yn, ka, Tn, Ja) - } - const jo = Ea.positionedLines.length === 1; - if (Q_ += G_(or, oi, Ea, Aa, Mn, Tn, Bi, sa, Ul, fn.vertical ? T.ao.horizontal : T.ao.horizontalOnly, jo ? rg : [Un], ks, sf, Xa, Ka), jo) break - } - fn.vertical && (eg += G_(or, oi, fn.vertical, Aa, Mn, Tn, Bi, sa, Ul, T.ao.vertical, ["vertical"], ks, of, Xa, Ka)); - const yy = No ? No.boxStartIndex : or.collisionBoxArray.length, - xy = No ? No.boxEndIndex : or.collisionBoxArray.length, - by = $l ? $l.boxStartIndex : or.collisionBoxArray.length, - wy = $l ? $l.boxEndIndex : or.collisionBoxArray.length, - Ty = Zl ? Zl.boxStartIndex : or.collisionBoxArray.length, - Cy = Zl ? Zl.boxEndIndex : or.collisionBoxArray.length, - Sy = Gl ? Gl.boxStartIndex : or.collisionBoxArray.length, - Py = Gl ? Gl.boxEndIndex : or.collisionBoxArray.length; - let Ya = -1; - const xd = (Un, Ea) => Un && Un.circleDiameter ? Math.max(Un.circleDiameter, Ea) : Ea; - Ya = xd(No, Ya), Ya = xd($l, Ya), Ya = xd(Zl, Ya), Ya = xd(Gl, Ya); - const ig = Ya > -1 ? 1 : 0; - ig && (Ya *= vy / bn), or.glyphOffsetArray.length >= Nl.MAX_GLYPHS && Lt("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), Bi.sortKey !== void 0 && or.addToSortKeyRanges(or.symbolInstances.length, Bi.sortKey); - const Iy = $_(Mn, Bi, Ka), - [My, Ay] = (function(Un, Ea) { - const jo = Un.length, - Ja = Ea == null ? void 0 : Ea.values; - if ((Ja == null ? void 0 : Ja.length) > 0) - for (let qo = 0; qo < Ja.length; qo += 2) { - const us = Ja[qo + 1]; - Un.emplaceBack(T.aE[Ja[qo]], us[0], us[1]) - } - return [jo, Un.length] - })(or.textAnchorOffsets, Iy); - or.symbolInstances.emplaceBack(oi.x, oi.y, ks.right >= 0 ? ks.right : -1, ks.center >= 0 ? ks.center : -1, ks.left >= 0 ? ks.left : -1, ks.vertical || -1, sf, of, tg, yy, xy, by, wy, Ty, Cy, Sy, Py, wn, Q_, eg, Y_, J_, ig, 0, Yn, Ya, My, Ay) - })(i, xr, Ur, r, a, c, Zt, i.layers[0], i.collisionBoxArray, t.index, t.sourceLayerIndex, i.index, ae, [Ve, Ve, Ve, Ve], $t, v, me, rt, Bt, j, t, p, S, I, f) - }; - if (Ut === "line") - for (const Ur of B_(t.geometry, 0, 0, ne, ne)) { - const xr = Fo(Ur, mt), - or = hy(xr, be, St, r.vertical || Z, a, 24, ze, i.overscaling, ne); - for (const oi of or) Z && _y(i, Z.text, pr, oi) || Br(xr, oi) - } else if (Ut === "line-center") { - for (const Ur of t.geometry) - if (Ur.length > 1) { - const xr = Fo(Ur, mt), - or = uy(xr, St, r.vertical || Z, a, 24, ze); - or && Br(xr, or) - } - } else if (t.type === "Polygon") - for (const Ur of xo(t.geometry, 0)) { - const xr = py(Ur, 16); - Br(Fo(Ur[0], mt, !0), new io(xr.x, xr.y, 0)) - } else if (t.type === "LineString") - for (const Ur of t.geometry) { - const xr = Fo(Ur, mt); - Br(xr, new io(xr[0].x, xr[0].y, 0)) - } else if (t.type === "Point") - for (const Ur of t.geometry) - for (const xr of Ur) Br([xr], new io(xr.x, xr.y, 0)) - } - - function G_(i, t, r, a, c, p, f, g, v, S, I, E, R, N, j) { - const Z = (function(ze, me, be, Ve, rt, St, $t, Bt) { - const Ut = Ve.layout.get("text-rotate").evaluate(St, {}) * Math.PI / 180, - pr = []; - for (const Vt of me.positionedLines) - for (const Zt of Vt.positionedGlyphs) { - if (!Zt.rect) continue; - const mt = Zt.rect || {}; - let Br = 4, - Ur = !0, - xr = 1, - or = 0; - const oi = (rt || Bt) && Zt.vertical, - Zi = Zt.metrics.advance * Zt.scale / 2; - if (Bt && me.verticalizable && (or = Vt.lineOffset / 2 - (Zt.imageName ? -(bn - Zt.metrics.width * Zt.scale) / 2 : (Zt.scale - 1) * bn)), Zt.imageName) { - const Cn = $t[Zt.imageName]; - Ur = Cn.sdf, xr = Cn.pixelRatio, Br = 1 / xr - } - const fn = rt ? [Zt.x + Zi, Zt.y] : [0, 0]; - let Bn = rt ? [0, 0] : [Zt.x + Zi + be[0], Zt.y + be[1] - or], - Aa = [0, 0]; - oi && (Aa = Bn, Bn = [0, 0]); - const aa = Zt.metrics.isDoubleResolution ? 2 : 1, - Mn = (Zt.metrics.left - Br) * Zt.scale - Zi + Bn[0], - qi = (-Zt.metrics.top - Br) * Zt.scale + Bn[1], - wn = Mn + mt.w / aa * Zt.scale / xr, - An = qi + mt.h / aa * Zt.scale / xr, - kn = new $(Mn, qi), - Yn = new $(wn, qi), - ka = new $(Mn, An), - Tn = new $(wn, An); - if (oi) { - const Cn = new $(-Zi, Zi - -17), - Sn = -Math.PI / 2, - rn = 12 - Zi, - Bi = new $(22 - rn, -(Zt.imageName ? rn : 0)), - Xa = new $(...Aa); - kn._rotateAround(Sn, Cn)._add(Bi)._add(Xa), Yn._rotateAround(Sn, Cn)._add(Bi)._add(Xa), ka._rotateAround(Sn, Cn)._add(Bi)._add(Xa), Tn._rotateAround(Sn, Cn)._add(Bi)._add(Xa) - } - if (Ut) { - const Cn = Math.sin(Ut), - Sn = Math.cos(Ut), - rn = [Sn, -Cn, Cn, Sn]; - kn._matMult(rn), Yn._matMult(rn), ka._matMult(rn), Tn._matMult(rn) - } - const sa = new $(0, 0), - mn = new $(0, 0); - pr.push({ - tl: kn, - tr: Yn, - bl: ka, - br: Tn, - tex: mt, - writingMode: me.writingMode, - glyphOffset: fn, - sectionIndex: Zt.sectionIndex, - isSDF: Ur, - pixelOffsetTL: sa, - pixelOffsetBR: mn, - minFontScaleX: 0, - minFontScaleY: 0 - }) - } - return pr - })(0, r, g, c, p, f, a, i.allowVerticalPlacement), - Y = i.textSizeData; - let ae = null; - Y.kind === "source" ? (ae = [As * c.layout.get("text-size").evaluate(f, {})], ae[0] > to && Lt(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)) : Y.kind === "composite" && (ae = [As * N.compositeTextSizes[0].evaluate(f, {}, j), As * N.compositeTextSizes[1].evaluate(f, {}, j)], (ae[0] > to || ae[1] > to) && Lt(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)), i.addSymbols(i.text, Z, ae, g, p, f, S, t, v.lineStartIndex, v.lineLength, R, j); - for (const ze of I) E[ze] = i.text.placedSymbolArray.length - 1; - return 4 * Z.length - } - - function H_(i) { - for (const t in i) return i[t]; - return null - } - - function _y(i, t, r, a) { - const c = i.compareText; - if (t in c) { - const p = c[t]; - for (let f = p.length - 1; f >= 0; f--) - if (a.dist(p[f]) < r) return !0 - } else c[t] = []; - return c[t].push(a), !1 - } - const W_ = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; - class Jp { - static from(t) { - if (!(t instanceof ArrayBuffer)) throw new Error("Data must be an instance of ArrayBuffer."); - const [r, a] = new Uint8Array(t, 0, 2); - if (r !== 219) throw new Error("Data does not appear to be in a KDBush format."); - const c = a >> 4; - if (c !== 1) throw new Error(`Got v${c} data when expected v1.`); - const p = W_[15 & a]; - if (!p) throw new Error("Unrecognized array type."); - const [f] = new Uint16Array(t, 2, 1), [g] = new Uint32Array(t, 4, 1); - return new Jp(g, f, p, t) - } - constructor(t, r = 64, a = Float64Array, c) { - if (isNaN(t) || t < 0) throw new Error(`Unpexpected numItems value: ${t}.`); - this.numItems = +t, this.nodeSize = Math.min(Math.max(+r, 2), 65535), this.ArrayType = a, this.IndexArrayType = t < 65536 ? Uint16Array : Uint32Array; - const p = W_.indexOf(this.ArrayType), - f = 2 * t * this.ArrayType.BYTES_PER_ELEMENT, - g = t * this.IndexArrayType.BYTES_PER_ELEMENT, - v = (8 - g % 8) % 8; - if (p < 0) throw new Error(`Unexpected typed array class: ${a}.`); - c && c instanceof ArrayBuffer ? (this.data = c, this.ids = new this.IndexArrayType(this.data, 8, t), this.coords = new this.ArrayType(this.data, 8 + g + v, 2 * t), this._pos = 2 * t, this._finished = !0) : (this.data = new ArrayBuffer(8 + f + g + v), this.ids = new this.IndexArrayType(this.data, 8, t), this.coords = new this.ArrayType(this.data, 8 + g + v, 2 * t), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, 16 + p]), new Uint16Array(this.data, 2, 1)[0] = r, new Uint32Array(this.data, 4, 1)[0] = t) - } - add(t, r) { - const a = this._pos >> 1; - return this.ids[a] = a, this.coords[this._pos++] = t, this.coords[this._pos++] = r, a - } - finish() { - const t = this._pos >> 1; - if (t !== this.numItems) throw new Error(`Added ${t} items when expected ${this.numItems}.`); - return Qp(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this - } - range(t, r, a, c) { - if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); - const { - ids: p, - coords: f, - nodeSize: g - } = this, v = [0, p.length - 1, 0], S = []; - for (; v.length;) { - const I = v.pop() || 0, - E = v.pop() || 0, - R = v.pop() || 0; - if (E - R <= g) { - for (let Y = R; Y <= E; Y++) { - const ae = f[2 * Y], - ze = f[2 * Y + 1]; - ae >= t && ae <= a && ze >= r && ze <= c && S.push(p[Y]) - } - continue - } - const N = R + E >> 1, - j = f[2 * N], - Z = f[2 * N + 1]; - j >= t && j <= a && Z >= r && Z <= c && S.push(p[N]), (I === 0 ? t <= j : r <= Z) && (v.push(R), v.push(N - 1), v.push(1 - I)), (I === 0 ? a >= j : c >= Z) && (v.push(N + 1), v.push(E), v.push(1 - I)) - } - return S - } - within(t, r, a) { - if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); - const { - ids: c, - coords: p, - nodeSize: f - } = this, g = [0, c.length - 1, 0], v = [], S = a * a; - for (; g.length;) { - const I = g.pop() || 0, - E = g.pop() || 0, - R = g.pop() || 0; - if (E - R <= f) { - for (let Y = R; Y <= E; Y++) K_(p[2 * Y], p[2 * Y + 1], t, r) <= S && v.push(c[Y]); - continue - } - const N = R + E >> 1, - j = p[2 * N], - Z = p[2 * N + 1]; - K_(j, Z, t, r) <= S && v.push(c[N]), (I === 0 ? t - a <= j : r - a <= Z) && (g.push(R), g.push(N - 1), g.push(1 - I)), (I === 0 ? t + a >= j : r + a >= Z) && (g.push(N + 1), g.push(E), g.push(1 - I)) - } - return v - } - } - - function Qp(i, t, r, a, c, p) { - if (c - a <= r) return; - const f = a + c >> 1; - X_(i, t, f, a, c, p), Qp(i, t, r, a, f - 1, 1 - p), Qp(i, t, r, f + 1, c, 1 - p) - } - - function X_(i, t, r, a, c, p) { - for (; c > a;) { - if (c - a > 600) { - const S = c - a + 1, - I = r - a + 1, - E = Math.log(S), - R = .5 * Math.exp(2 * E / 3), - N = .5 * Math.sqrt(E * R * (S - R) / S) * (I - S / 2 < 0 ? -1 : 1); - X_(i, t, r, Math.max(a, Math.floor(r - I * R / S + N)), Math.min(c, Math.floor(r + (S - I) * R / S + N)), p) - } - const f = t[2 * r + p]; - let g = a, - v = c; - for (_u(i, t, a, r), t[2 * c + p] > f && _u(i, t, a, c); g < v;) { - for (_u(i, t, g, v), g++, v--; t[2 * g + p] < f;) g++; - for (; t[2 * v + p] > f;) v-- - } - t[2 * a + p] === f ? _u(i, t, a, v) : (v++, _u(i, t, v, c)), v <= r && (a = v + 1), r <= v && (c = v - 1) - } - } - - function _u(i, t, r, a) { - ef(i, r, a), ef(t, 2 * r, 2 * a), ef(t, 2 * r + 1, 2 * a + 1) - } - - function ef(i, t, r) { - const a = i[t]; - i[t] = i[r], i[r] = a - } - - function K_(i, t, r, a) { - const c = i - r, - p = t - a; - return c * c + p * p - } - var tf; - T.cx = void 0, (tf = T.cx || (T.cx = {})).create = "create", tf.load = "load", tf.fullLoad = "fullLoad"; - let yd = null, - gu = []; - const rf = 1e3 / 60, - nf = "loadTime", - af = "fullLoadTime", - gy = { - mark(i) { - performance.mark(i) - }, - frame(i) { - const t = i; - yd != null && gu.push(t - yd), yd = t - }, - clearMetrics() { - yd = null, gu = [], performance.clearMeasures(nf), performance.clearMeasures(af); - for (const i in T.cx) performance.clearMarks(T.cx[i]) - }, - getPerformanceMetrics() { - performance.measure(nf, T.cx.create, T.cx.load), performance.measure(af, T.cx.create, T.cx.fullLoad); - const i = performance.getEntriesByName(nf)[0].duration, - t = performance.getEntriesByName(af)[0].duration, - r = gu.length, - a = 1 / (gu.reduce(((p, f) => p + f), 0) / r / 1e3), - c = gu.filter((p => p > rf)).reduce(((p, f) => p + (f - rf) / rf), 0); - return { - loadTime: i, - fullLoadTime: t, - fps: a, - percentDroppedFrames: c / (r + c) * 100, - totalFrames: r - } - } - }; - T.$ = ne, T.A = Ee, T.B = function([i, t, r]) { - return t += 90, t *= Math.PI / 180, r *= Math.PI / 180, { - x: i * Math.cos(t) * Math.sin(r), - y: i * Math.sin(t) * Math.sin(r), - z: i * Math.cos(r) - } - }, T.C = Fa, T.D = hr, T.E = Ot, T.F = Oi, T.G = ko, T.H = function(i) { - if (nr == null) { - const t = i.navigator ? i.navigator.userAgent : null; - nr = !!i.safari || !(!t || !(/\b(iPad|iPhone|iPod)\b/.test(t) || t.match("Safari") && !t.match("Chrome"))) - } - return nr - }, T.I = Np, T.J = class { - constructor(i, t) { - this.target = i, this.mapId = t, this.resolveRejects = {}, this.tasks = {}, this.taskQueue = [], this.abortControllers = {}, this.messageHandlers = {}, this.invoker = new oy((() => this.process())), this.subscription = jr(this.target, "message", (r => this.receive(r)), !1), this.globalScope = Yt(self) ? i : window - } - registerMessageHandler(i, t) { - this.messageHandlers[i] = t - } - sendAsync(i, t) { - return new Promise(((r, a) => { - const c = Math.round(1e18 * Math.random()).toString(36).substring(0, 10), - p = t ? jr(t.signal, "abort", (() => { - p == null || p.unsubscribe(), delete this.resolveRejects[c]; - const v = { - id: c, - type: "", - origin: location.origin, - targetMapId: i.targetMapId, - sourceMapId: this.mapId - }; - this.target.postMessage(v) - }), ly) : null; - this.resolveRejects[c] = { - resolve: v => { - p == null || p.unsubscribe(), r(v) - }, - reject: v => { - p == null || p.unsubscribe(), a(v) - } - }; - const f = [], - g = Object.assign(Object.assign({}, i), { - id: c, - sourceMapId: this.mapId, - origin: location.origin, - data: Gs(i.data, f) - }); - this.target.postMessage(g, { - transfer: f - }) - })) - } - receive(i) { - const t = i.data, - r = t.id; - if (!(t.origin !== "file://" && location.origin !== "file://" && t.origin !== "resource://android" && location.origin !== "resource://android" && t.origin !== location.origin || t.targetMapId && this.mapId !== t.targetMapId)) { - if (t.type === "") { - delete this.tasks[r]; - const a = this.abortControllers[r]; - return delete this.abortControllers[r], void(a && a.abort()) - } - if (Yt(self) || t.mustQueue) return this.tasks[r] = t, this.taskQueue.push(r), void this.invoker.trigger(); - this.processTask(r, t) - } - } - process() { - if (this.taskQueue.length === 0) return; - const i = this.taskQueue.shift(), - t = this.tasks[i]; - delete this.tasks[i], this.taskQueue.length > 0 && this.invoker.trigger(), t && this.processTask(i, t) - } - processTask(i, t) { - return o(this, void 0, void 0, (function*() { - if (t.type === "") { - const c = this.resolveRejects[i]; - return delete this.resolveRejects[i], c ? void(t.error ? c.reject(Cs(t.error)) : c.resolve(Cs(t.data))) : void 0 - } - if (!this.messageHandlers[t.type]) return void this.completeTask(i, new Error(`Could not find a registered handler for ${t.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`)); - const r = Cs(t.data), - a = new AbortController; - this.abortControllers[i] = a; - try { - const c = yield this.messageHandlers[t.type](t.sourceMapId, r, a); - this.completeTask(i, null, c) - } catch (c) { - this.completeTask(i, c) - } - })) - } - completeTask(i, t, r) { - const a = []; - delete this.abortControllers[i]; - const c = { - id: i, - type: "", - sourceMapId: this.mapId, - origin: location.origin, - error: t ? Gs(t) : null, - data: Gs(r, a) - }; - this.target.postMessage(c, { - transfer: a - }) - } - remove() { - this.invoker.remove(), this.subscription.unsubscribe() - } - }, T.K = G, T.L = function() { - var i = new Ee(16); - return Ee != Float32Array && (i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[11] = 0, i[12] = 0, i[13] = 0, i[14] = 0), i[0] = 1, i[5] = 1, i[10] = 1, i[15] = 1, i - }, T.M = function(i, t, r) { - var a, c, p, f, g, v, S, I, E, R, N, j, Z = r[0], - Y = r[1], - ae = r[2]; - return t === i ? (i[12] = t[0] * Z + t[4] * Y + t[8] * ae + t[12], i[13] = t[1] * Z + t[5] * Y + t[9] * ae + t[13], i[14] = t[2] * Z + t[6] * Y + t[10] * ae + t[14], i[15] = t[3] * Z + t[7] * Y + t[11] * ae + t[15]) : (c = t[1], p = t[2], f = t[3], g = t[4], v = t[5], S = t[6], I = t[7], E = t[8], R = t[9], N = t[10], j = t[11], i[0] = a = t[0], i[1] = c, i[2] = p, i[3] = f, i[4] = g, i[5] = v, i[6] = S, i[7] = I, i[8] = E, i[9] = R, i[10] = N, i[11] = j, i[12] = a * Z + g * Y + E * ae + t[12], i[13] = c * Z + v * Y + R * ae + t[13], i[14] = p * Z + S * Y + N * ae + t[14], i[15] = f * Z + I * Y + j * ae + t[15]), i - }, T.N = function(i, t, r) { - var a = r[0], - c = r[1], - p = r[2]; - return i[0] = t[0] * a, i[1] = t[1] * a, i[2] = t[2] * a, i[3] = t[3] * a, i[4] = t[4] * c, i[5] = t[5] * c, i[6] = t[6] * c, i[7] = t[7] * c, i[8] = t[8] * p, i[9] = t[9] * p, i[10] = t[10] * p, i[11] = t[11] * p, i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15], i - }, T.O = function(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = t[3], - g = t[4], - v = t[5], - S = t[6], - I = t[7], - E = t[8], - R = t[9], - N = t[10], - j = t[11], - Z = t[12], - Y = t[13], - ae = t[14], - ze = t[15], - me = r[0], - be = r[1], - Ve = r[2], - rt = r[3]; - return i[0] = me * a + be * g + Ve * E + rt * Z, i[1] = me * c + be * v + Ve * R + rt * Y, i[2] = me * p + be * S + Ve * N + rt * ae, i[3] = me * f + be * I + Ve * j + rt * ze, i[4] = (me = r[4]) * a + (be = r[5]) * g + (Ve = r[6]) * E + (rt = r[7]) * Z, i[5] = me * c + be * v + Ve * R + rt * Y, i[6] = me * p + be * S + Ve * N + rt * ae, i[7] = me * f + be * I + Ve * j + rt * ze, i[8] = (me = r[8]) * a + (be = r[9]) * g + (Ve = r[10]) * E + (rt = r[11]) * Z, i[9] = me * c + be * v + Ve * R + rt * Y, i[10] = me * p + be * S + Ve * N + rt * ae, i[11] = me * f + be * I + Ve * j + rt * ze, i[12] = (me = r[12]) * a + (be = r[13]) * g + (Ve = r[14]) * E + (rt = r[15]) * Z, i[13] = me * c + be * v + Ve * R + rt * Y, i[14] = me * p + be * S + Ve * N + rt * ae, i[15] = me * f + be * I + Ve * j + rt * ze, i - }, T.P = $, T.Q = function(i, t) { - const r = {}; - for (let a = 0; a < t.length; a++) { - const c = t[a]; - c in i && (r[c] = i[c]) - } - return r - }, T.R = na, T.S = ro, T.T = Mp, T.U = I_, T.V = P_, T.W = Re, T.X = Ae, T.Y = dr, T.Z = Ma, T._ = o, T.a = O, T.a$ = Qe, T.a0 = function(i, t) { - var r, a, c, p; - if (!i) return t ?? {}; - if (!t) return i; - const f = Object.assign({}, i); - if (t.removeAll && (f.removeAll = !0), t.remove) { - const g = new Set(f.remove ? f.remove.concat(t.remove) : t.remove); - f.remove = Array.from(g.values()) - } - if (t.add) { - const g = f.add ? f.add.concat(t.add) : t.add, - v = new Map(g.map((S => [S.id, S]))); - f.add = Array.from(v.values()) - } - if (t.update) { - const g = new Map((r = f.update) === null || r === void 0 ? void 0 : r.map((v => [v.id, v]))); - for (const v of t.update) { - const S = (a = g.get(v.id)) !== null && a !== void 0 ? a : { - id: v.id - }; - v.newGeometry && (S.newGeometry = v.newGeometry), v.addOrUpdateProperties && (S.addOrUpdateProperties = ((c = S.addOrUpdateProperties) !== null && c !== void 0 ? c : []).concat(v.addOrUpdateProperties)), v.removeProperties && (S.removeProperties = ((p = S.removeProperties) !== null && p !== void 0 ? p : []).concat(v.removeProperties)), v.removeAllProperties && (S.removeAllProperties = !0), g.set(v.id, S) - } - f.update = Array.from(g.values()) - } - return f - }, T.a1 = fu, T.a2 = Oo, T.a3 = 25, T.a4 = Xp, T.a5 = i => { - const t = window.document.createElement("video"); - return t.muted = !0, new Promise((r => { - t.onloadstart = () => { - r(t) - }; - for (const a of i) { - const c = window.document.createElement("source"); - Le(a) || (t.crossOrigin = "Anonymous"), c.src = a, t.appendChild(c) - } - })) - }, T.a6 = Tt, T.a7 = function() { - return It++ - }, T.a8 = z, T.a9 = Nl, T.aA = function(i) { - let t = 1 / 0, - r = 1 / 0, - a = -1 / 0, - c = -1 / 0; - for (const p of i) t = Math.min(t, p.x), r = Math.min(r, p.y), a = Math.max(a, p.x), c = Math.max(c, p.y); - return [t, r, a, c] - }, T.aB = bn, T.aC = Pe, T.aD = function(i, t, r, a, c = !1) { - if (!r[0] && !r[1]) return [0, 0]; - const p = c ? a === "map" ? -i.bearingInRadians : 0 : a === "viewport" ? i.bearingInRadians : 0; - if (p) { - const f = Math.sin(p), - g = Math.cos(p); - r = [r[0] * g - r[1] * f, r[0] * f + r[1] * g] - } - return [c ? r[0] : Pe(t, r[0], i.zoom), c ? r[1] : Pe(t, r[1], i.zoom)] - }, T.aF = Vp, T.aG = Yp, T.aH = qp, T.aI = Jp, T.aJ = Hi, T.aK = cd, T.aL = he, T.aM = Wr, T.aN = ki, T.aO = tt, T.aP = Mr, T.aQ = A_, T.aR = Be, T.aS = Je, T.aT = function(i) { - var t = new Ee(3); - return t[0] = i[0], t[1] = i[1], t[2] = i[2], t - }, T.aU = function(i, t, r) { - return i[0] = t[0] - r[0], i[1] = t[1] - r[1], i[2] = t[2] - r[2], i - }, T.aV = function(i, t) { - var r = t[0], - a = t[1], - c = t[2], - p = r * r + a * a + c * c; - return p > 0 && (p = 1 / Math.sqrt(p)), i[0] = t[0] * p, i[1] = t[1] * p, i[2] = t[2] * p, i - }, T.aW = st, T.aX = function(i, t) { - return i[0] * t[0] + i[1] * t[1] + i[2] * t[2] - }, T.aY = function(i, t, r) { - return i[0] = t[0] * r[0], i[1] = t[1] * r[1], i[2] = t[2] * r[2], i[3] = t[3] * r[3], i - }, T.aZ = Xe, T.a_ = function(i, t, r) { - const a = t[0] * r[0] + t[1] * r[1] + t[2] * r[2]; - return a === 0 ? null : (-(i[0] * r[0] + i[1] * r[1] + i[2] * r[2]) - r[3]) / a - }, T.aa = bs, T.ab = Wa, T.ac = L_, T.ad = function(i) { - const t = {}; - if (i.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, ((r, a, c, p) => { - const f = c || p; - return t[a] = !f || f.toLowerCase(), "" - })), t["max-age"]) { - const r = parseInt(t["max-age"], 10); - isNaN(r) ? delete t["max-age"] : t["max-age"] = r - } - return t - }, T.ae = ur, T.af = function(i) { - return Math.pow(2, i) - }, T.ag = ft, T.ah = xt, T.ai = 85.051129, T.aj = M_, T.ak = function(i) { - return Math.log(i) / Math.LN2 - }, T.al = function(i) { - var t = i[0], - r = i[1]; - return t * t + r * r - }, T.am = function(i, t) { - const r = []; - for (const a in i) a in t || r.push(a); - return r - }, T.an = function(i, t) { - let r = 0, - a = 0; - if (i.kind === "constant") a = i.layoutSize; - else if (i.kind !== "source") { - const { - interpolationType: c, - minZoom: p, - maxZoom: f - } = i, g = c ? xt(In.interpolationFactor(c, t, p, f), 0, 1) : 0; - i.kind === "camera" ? a = Fa.number(i.minSize, i.maxSize, g) : r = g - } - return { - uSizeT: r, - uSize: a - } - }, T.ap = function(i, { - uSize: t, - uSizeT: r - }, { - lowerSize: a, - upperSize: c - }) { - return i.kind === "source" ? a / As : i.kind === "composite" ? Fa.number(a / As, c / As, r) : t - }, T.aq = function(i, t) { - var r = t[0], - a = t[1], - c = t[2], - p = t[3], - f = t[4], - g = t[5], - v = t[6], - S = t[7], - I = t[8], - E = t[9], - R = t[10], - N = t[11], - j = t[12], - Z = t[13], - Y = t[14], - ae = t[15], - ze = r * g - a * f, - me = r * v - c * f, - be = r * S - p * f, - Ve = a * v - c * g, - rt = a * S - p * g, - St = c * S - p * v, - $t = I * Z - E * j, - Bt = I * Y - R * j, - Ut = I * ae - N * j, - pr = E * Y - R * Z, - Vt = E * ae - N * Z, - Zt = R * ae - N * Y, - mt = ze * Zt - me * Vt + be * pr + Ve * Ut - rt * Bt + St * $t; - return mt ? (i[0] = (g * Zt - v * Vt + S * pr) * (mt = 1 / mt), i[1] = (c * Vt - a * Zt - p * pr) * mt, i[2] = (Z * St - Y * rt + ae * Ve) * mt, i[3] = (R * rt - E * St - N * Ve) * mt, i[4] = (v * Ut - f * Zt - S * Bt) * mt, i[5] = (r * Zt - c * Ut + p * Bt) * mt, i[6] = (Y * be - j * St - ae * me) * mt, i[7] = (I * St - R * be + N * me) * mt, i[8] = (f * Vt - g * Ut + S * $t) * mt, i[9] = (a * Ut - r * Vt - p * $t) * mt, i[10] = (j * rt - Z * be + ae * ze) * mt, i[11] = (E * be - I * rt - N * ze) * mt, i[12] = (g * Bt - f * pr - v * $t) * mt, i[13] = (r * pr - a * Bt + c * $t) * mt, i[14] = (Z * me - j * Ve - Y * ze) * mt, i[15] = (I * Ve - E * me + R * ze) * mt, i) : null - }, T.ar = te, T.as = function(i) { - return Math.hypot(i[0], i[1]) - }, T.at = function(i) { - return i[0] = 0, i[1] = 0, i - }, T.au = function(i, t, r) { - return i[0] = t[0] * r, i[1] = t[1] * r, i - }, T.av = Up, T.aw = ke, T.ax = function(i, t, r, a) { - const c = t.y - i.y, - p = t.x - i.x, - f = a.y - r.y, - g = a.x - r.x, - v = f * p - g * c; - if (v === 0) return null; - const S = (g * (i.y - r.y) - f * (i.x - r.x)) / v; - return new $(i.x + S * p, i.y + S * c) - }, T.ay = B_, T.az = Sm, T.b = ar, T.b$ = class extends h {}, T.b0 = function(i, t, r) { - return i[0] = t[0] * r, i[1] = t[1] * r, i[2] = t[2] * r, i[3] = t[3] * r, i - }, T.b1 = function(i, t) { - return i[0] * t[0] + i[1] * t[1] + i[2] * t[2] + i[3] - }, T.b2 = E_, T.b3 = jl, T.b4 = function(i, t, r, a, c) { - var p, f = 1 / Math.tan(t / 2); - return i[0] = f / r, i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = f, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[11] = -1, i[12] = 0, i[13] = 0, i[15] = 0, c != null && c !== 1 / 0 ? (i[10] = (c + a) * (p = 1 / (a - c)), i[14] = 2 * c * a * p) : (i[10] = -1, i[14] = -2 * a), i - }, T.b5 = function(i) { - var t = new Ee(16); - return t[0] = i[0], t[1] = i[1], t[2] = i[2], t[3] = i[3], t[4] = i[4], t[5] = i[5], t[6] = i[6], t[7] = i[7], t[8] = i[8], t[9] = i[9], t[10] = i[10], t[11] = i[11], t[12] = i[12], t[13] = i[13], t[14] = i[14], t[15] = i[15], t - }, T.b6 = function(i, t, r) { - var a = Math.sin(r), - c = Math.cos(r), - p = t[0], - f = t[1], - g = t[2], - v = t[3], - S = t[4], - I = t[5], - E = t[6], - R = t[7]; - return t !== i && (i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]), i[0] = p * c + S * a, i[1] = f * c + I * a, i[2] = g * c + E * a, i[3] = v * c + R * a, i[4] = S * c - p * a, i[5] = I * c - f * a, i[6] = E * c - g * a, i[7] = R * c - v * a, i - }, T.b7 = function(i, t, r) { - var a = Math.sin(r), - c = Math.cos(r), - p = t[4], - f = t[5], - g = t[6], - v = t[7], - S = t[8], - I = t[9], - E = t[10], - R = t[11]; - return t !== i && (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]), i[4] = p * c + S * a, i[5] = f * c + I * a, i[6] = g * c + E * a, i[7] = v * c + R * a, i[8] = S * c - p * a, i[9] = I * c - f * a, i[10] = E * c - g * a, i[11] = R * c - v * a, i - }, T.b8 = function() { - const i = new Float32Array(16); - return ft(i), i - }, T.b9 = function() { - const i = new Float64Array(16); - return ft(i), i - }, T.bA = function(i, t) { - const r = Me(i, 360), - a = Me(t, 360), - c = a - r, - p = a > r ? c - 360 : c + 360; - return Math.abs(c) < Math.abs(p) ? c : p - }, T.bB = function(i) { - return i[0] = 0, i[1] = 0, i[2] = 0, i - }, T.bC = function(i, t, r, a) { - const c = Math.sqrt(i * i + t * t), - p = Math.sqrt(r * r + a * a); - i /= c, t /= c, r /= p, a /= p; - const f = Math.acos(i * r + t * a); - return -t * r + i * a > 0 ? f : -f - }, T.bD = function(i, t) { - const r = Me(i, 2 * Math.PI), - a = Me(t, 2 * Math.PI); - return Math.min(Math.abs(r - a), Math.abs(r - a + 2 * Math.PI), Math.abs(r - a - 2 * Math.PI)) - }, T.bE = function() { - const i = {}, - t = xe.$version; - for (const r in xe.$root) { - const a = xe.$root[r]; - if (a.required) { - let c = null; - c = r === "version" ? t : a.type === "array" ? [] : {}, c != null && (i[r] = c) - } - } - return i - }, T.bF = bl, T.bG = le, T.bH = function i(t, r) { - if (Array.isArray(t)) { - if (!Array.isArray(r) || t.length !== r.length) return !1; - for (let a = 0; a < t.length; a++) - if (!i(t[a], r[a])) return !1; - return !0 - } - if (typeof t == "object" && t !== null && r !== null) { - if (typeof r != "object" || Object.keys(t).length !== Object.keys(r).length) return !1; - for (const a in t) - if (!i(t[a], r[a])) return !1; - return !0 - } - return t === r - }, T.bI = function(i) { - i = i.slice(); - const t = Object.create(null); - for (let r = 0; r < i.length; r++) t[i[r].id] = i[r]; - for (let r = 0; r < i.length; r++) "ref" in i[r] && (i[r] = Pt(i[r], t[i[r].ref])); - return i - }, T.bJ = function(i) { - if (i.type === "custom") return new sy(i); - switch (i.type) { - case "background": - return new iy(i); - case "circle": - return new Vv(i); - case "color-relief": - return new Wv(i); - case "fill": - return new c0(i); - case "fill-extrusion": - return new x0(i); - case "heatmap": - return new Zv(i); - case "hillshade": - return new Gv(i); - case "line": - return new I0(i); - case "raster": - return new ay(i); - case "symbol": - return new fd(i) - } - }, T.bK = wt, T.bL = function(i, t) { - if (!i) return [{ - command: "setStyle", - args: [t] - }]; - let r = []; - try { - if (!kt(i.version, t.version)) return [{ - command: "setStyle", - args: [t] - }]; - kt(i.center, t.center) || r.push({ - command: "setCenter", - args: [t.center] - }), kt(i.state, t.state) || r.push({ - command: "setGlobalState", - args: [t.state] - }), kt(i.centerAltitude, t.centerAltitude) || r.push({ - command: "setCenterAltitude", - args: [t.centerAltitude] - }), kt(i.zoom, t.zoom) || r.push({ - command: "setZoom", - args: [t.zoom] - }), kt(i.bearing, t.bearing) || r.push({ - command: "setBearing", - args: [t.bearing] - }), kt(i.pitch, t.pitch) || r.push({ - command: "setPitch", - args: [t.pitch] - }), kt(i.roll, t.roll) || r.push({ - command: "setRoll", - args: [t.roll] - }), kt(i.sprite, t.sprite) || r.push({ - command: "setSprite", - args: [t.sprite] - }), kt(i.glyphs, t.glyphs) || r.push({ - command: "setGlyphs", - args: [t.glyphs] - }), kt(i.transition, t.transition) || r.push({ - command: "setTransition", - args: [t.transition] - }), kt(i.light, t.light) || r.push({ - command: "setLight", - args: [t.light] - }), kt(i.terrain, t.terrain) || r.push({ - command: "setTerrain", - args: [t.terrain] - }), kt(i.sky, t.sky) || r.push({ - command: "setSky", - args: [t.sky] - }), kt(i.projection, t.projection) || r.push({ - command: "setProjection", - args: [t.projection] - }); - const a = {}, - c = []; - (function(f, g, v, S) { - let I; - for (I in g = g || {}, f = f || {}) Object.prototype.hasOwnProperty.call(f, I) && (Object.prototype.hasOwnProperty.call(g, I) || Kr(I, v, S)); - for (I in g) Object.prototype.hasOwnProperty.call(g, I) && (Object.prototype.hasOwnProperty.call(f, I) ? kt(f[I], g[I]) || (f[I].type === "geojson" && g[I].type === "geojson" && $r(f, g, I) ? Wt(v, { - command: "setGeoJSONSourceData", - args: [I, g[I].data] - }) : Hr(I, g, v, S)) : Lr(I, g, v)) - })(i.sources, t.sources, c, a); - const p = []; - i.layers && i.layers.forEach((f => { - "source" in f && a[f.source] ? r.push({ - command: "removeLayer", - args: [f.id] - }) : p.push(f) - })), r = r.concat(c), (function(f, g, v) { - g = g || []; - const S = (f = f || []).map(gr), - I = g.map(gr), - E = f.reduce(ai, {}), - R = g.reduce(ai, {}), - N = S.slice(), - j = Object.create(null); - let Z, Y, ae, ze, me; - for (let be = 0, Ve = 0; be < S.length; be++) Z = S[be], Object.prototype.hasOwnProperty.call(R, Z) ? Ve++ : (Wt(v, { - command: "removeLayer", - args: [Z] - }), N.splice(N.indexOf(Z, Ve), 1)); - for (let be = 0, Ve = 0; be < I.length; be++) Z = I[I.length - 1 - be], N[N.length - 1 - be] !== Z && (Object.prototype.hasOwnProperty.call(E, Z) ? (Wt(v, { - command: "removeLayer", - args: [Z] - }), N.splice(N.lastIndexOf(Z, N.length - Ve), 1)) : Ve++, ze = N[N.length - be], Wt(v, { - command: "addLayer", - args: [R[Z], ze] - }), N.splice(N.length - be, 0, Z), j[Z] = !0); - for (let be = 0; be < I.length; be++) - if (Z = I[be], Y = E[Z], ae = R[Z], !j[Z] && !kt(Y, ae)) - if (kt(Y.source, ae.source) && kt(Y["source-layer"], ae["source-layer"]) && kt(Y.type, ae.type)) { - for (me in mr(Y.layout, ae.layout, v, Z, null, "setLayoutProperty"), mr(Y.paint, ae.paint, v, Z, null, "setPaintProperty"), kt(Y.filter, ae.filter) || Wt(v, { - command: "setFilter", - args: [Z, ae.filter] - }), kt(Y.minzoom, ae.minzoom) && kt(Y.maxzoom, ae.maxzoom) || Wt(v, { - command: "setLayerZoomRange", - args: [Z, ae.minzoom, ae.maxzoom] - }), Y) Object.prototype.hasOwnProperty.call(Y, me) && me !== "layout" && me !== "paint" && me !== "filter" && me !== "metadata" && me !== "minzoom" && me !== "maxzoom" && (me.indexOf("paint.") === 0 ? mr(Y[me], ae[me], v, Z, me.slice(6), "setPaintProperty") : kt(Y[me], ae[me]) || Wt(v, { - command: "setLayerProperty", - args: [Z, me, ae[me]] - })); - for (me in ae) Object.prototype.hasOwnProperty.call(ae, me) && !Object.prototype.hasOwnProperty.call(Y, me) && me !== "layout" && me !== "paint" && me !== "filter" && me !== "metadata" && me !== "minzoom" && me !== "maxzoom" && (me.indexOf("paint.") === 0 ? mr(Y[me], ae[me], v, Z, me.slice(6), "setPaintProperty") : kt(Y[me], ae[me]) || Wt(v, { - command: "setLayerProperty", - args: [Z, me, ae[me]] - })) - } else Wt(v, { - command: "removeLayer", - args: [Z] - }), ze = N[N.lastIndexOf(Z) + 1], Wt(v, { - command: "addLayer", - args: [ae, ze] - }) - })(p, t.layers, r) - } catch (a) { - console.warn("Unable to compute style diff:", a), r = [{ - command: "setStyle", - args: [t] - }] - } - return r - }, T.bM = function(i) { - const t = [], - r = i.id; - return r === void 0 && t.push({ - message: `layers.${r}: missing required property "id"` - }), i.render === void 0 && t.push({ - message: `layers.${r}: missing required method "render"` - }), i.renderingMode && i.renderingMode !== "2d" && i.renderingMode !== "3d" && t.push({ - message: `layers.${r}: property "renderingMode" must be either "2d" or "3d"` - }), t - }, T.bN = ut, T.bO = bt, T.bP = class extends Vn { - constructor(i, t) { - super(i, t), this.current = 0 - } - set(i) { - this.current !== i && (this.current = i, this.gl.uniform1i(this.location, i)) - } - }, T.bQ = pn, T.bR = class extends Vn { - constructor(i, t) { - super(i, t), this.current = da - } - set(i) { - if (i[12] !== this.current[12] || i[0] !== this.current[0]) return this.current = i, void this.gl.uniformMatrix4fv(this.location, !1, i); - for (let t = 1; t < 16; t++) - if (i[t] !== this.current[t]) { - this.current = i, this.gl.uniformMatrix4fv(this.location, !1, i); - break - } - } - }, T.bS = en, T.bT = class extends Vn { - constructor(i, t) { - super(i, t), this.current = [0, 0, 0] - } - set(i) { - i[0] === this.current[0] && i[1] === this.current[1] && i[2] === this.current[2] || (this.current = i, this.gl.uniform3f(this.location, i[0], i[1], i[2])) - } - }, T.bU = class extends Vn { - constructor(i, t) { - super(i, t), this.current = [0, 0] - } - set(i) { - i[0] === this.current[0] && i[1] === this.current[1] || (this.current = i, this.gl.uniform2f(this.location, i[0], i[1])) - } - }, T.bV = Ne, T.bW = function(i, t) { - var r = Math.sin(t), - a = Math.cos(t); - return i[0] = a, i[1] = r, i[2] = 0, i[3] = -r, i[4] = a, i[5] = 0, i[6] = 0, i[7] = 0, i[8] = 1, i - }, T.bX = function(i, t, r) { - var a = t[0], - c = t[1], - p = t[2]; - return i[0] = a * r[0] + c * r[3] + p * r[6], i[1] = a * r[1] + c * r[4] + p * r[7], i[2] = a * r[2] + c * r[5] + p * r[8], i - }, T.bY = function(i, t, r, a, c, p, f) { - var g = 1 / (t - r), - v = 1 / (a - c), - S = 1 / (p - f); - return i[0] = -2 * g, i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = -2 * v, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[10] = 2 * S, i[11] = 0, i[12] = (t + r) * g, i[13] = (c + a) * v, i[14] = (f + p) * S, i[15] = 1, i - }, T.bZ = class extends Vn { - constructor(i, t) { - super(i, t), this.current = new Array - } - set(i) { - if (i != this.current) { - this.current = i; - const t = new Float32Array(4 * i.length); - for (let r = 0; r < i.length; r++) t[4 * r] = i[r].r, t[4 * r + 1] = i[r].g, t[4 * r + 2] = i[r].b, t[4 * r + 3] = i[r].a; - this.gl.uniform4fv(this.location, t) - } - } - }, T.b_ = class extends Vn { - constructor(i, t) { - super(i, t), this.current = new Array - } - set(i) { - if (i != this.current) { - this.current = i; - const t = new Float32Array(i); - this.gl.uniform1fv(this.location, t) - } - } - }, T.ba = function() { - return new Float64Array(16) - }, T.bb = function(i, t, r) { - const a = new Float64Array(4); - return Q(a, i, t - 90, r), a - }, T.bc = function(i, t, r, a) { - var c, p, f, g, v, S = t[0], - I = t[1], - E = t[2], - R = t[3], - N = r[0], - j = r[1], - Z = r[2], - Y = r[3]; - return (p = S * N + I * j + E * Z + R * Y) < 0 && (p = -p, N = -N, j = -j, Z = -Z, Y = -Y), 1 - p > Oe ? (c = Math.acos(p), f = Math.sin(c), g = Math.sin((1 - a) * c) / f, v = Math.sin(a * c) / f) : (g = 1 - a, v = a), i[0] = g * S + v * N, i[1] = g * I + v * j, i[2] = g * E + v * Z, i[3] = g * R + v * Y, i - }, T.bd = function(i) { - const t = new Float64Array(9); - var r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me; - E = (c = (a = i)[0]) * (v = c + c), R = (p = a[1]) * v, j = (f = a[2]) * v, Z = f * (S = p + p), ae = (g = a[3]) * v, ze = g * S, me = g * (I = f + f), (r = t)[0] = 1 - (N = p * S) - (Y = f * I), r[3] = R - me, r[6] = j + ze, r[1] = R + me, r[4] = 1 - E - Y, r[7] = Z - ae, r[2] = j - ze, r[5] = Z + ae, r[8] = 1 - E - N; - const be = Mr(-Math.asin(xt(t[2], -1, 1))); - let Ve, rt; - return Math.hypot(t[5], t[8]) < .001 ? (Ve = 0, rt = -Mr(Math.atan2(t[3], t[4]))) : (Ve = Mr(t[5] === 0 && t[8] === 0 ? 0 : Math.atan2(t[5], t[8])), rt = Mr(t[1] === 0 && t[0] === 0 ? 0 : Math.atan2(t[1], t[0]))), { - roll: Ve, - pitch: be + 90, - bearing: rt - } - }, T.be = function(i, t) { - return i.roll == t.roll && i.pitch == t.pitch && i.bearing == t.bearing - }, T.bf = yr, T.bg = os, T.bh = Rl, T.bi = lu, T.bj = Dl, T.bk = at, T.bl = We, T.bm = hn, T.bn = function(i, t, r, a, c) { - return at(a, c, xt((i - t) / (r - t), 0, 1)) - }, T.bo = Me, T.bp = function() { - return new Float64Array(3) - }, T.bq = function(i, t, r, a) { - return i[0] = t[0] + r[0] * a, i[1] = t[1] + r[1] * a, i[2] = t[2] + r[2] * a, i - }, T.br = Q, T.bs = function(i, t, r) { - var a = r[0], - c = r[1], - p = r[2], - f = t[0], - g = t[1], - v = t[2], - S = c * v - p * g, - I = p * f - a * v, - E = a * g - c * f, - R = c * E - p * I, - N = p * S - a * E, - j = a * I - c * S, - Z = 2 * r[3]; - return I *= Z, E *= Z, N *= 2, j *= 2, i[0] = f + (S *= Z) + (R *= 2), i[1] = g + I + N, i[2] = v + E + j, i - }, T.bt = function(i, t, r) { - const a = (c = [i[0], i[1], i[2], t[0], t[1], t[2], r[0], r[1], r[2]])[0] * ((I = c[8]) * (f = c[4]) - (g = c[5]) * (S = c[7])) + c[1] * (-I * (p = c[3]) + g * (v = c[6])) + c[2] * (S * p - f * v); - var c, p, f, g, v, S, I; - if (a === 0) return null; - const E = st([], [t[0], t[1], t[2]], [r[0], r[1], r[2]]), - R = st([], [r[0], r[1], r[2]], [i[0], i[1], i[2]]), - N = st([], [i[0], i[1], i[2]], [t[0], t[1], t[2]]), - j = Be([], E, -i[3]); - return Je(j, j, Be([], R, -t[3])), Je(j, j, Be([], N, -r[3])), Be(j, j, 1 / a), j - }, T.bu = Hp, T.bv = function() { - return new Float64Array(4) - }, T.bw = function(i, t, r, a) { - var c = [], - p = []; - return c[0] = t[0] - r[0], c[1] = t[1] - r[1], c[2] = t[2] - r[2], p[0] = c[0] * Math.cos(a) - c[1] * Math.sin(a), p[1] = c[0] * Math.sin(a) + c[1] * Math.cos(a), p[2] = c[2], i[0] = p[0] + r[0], i[1] = p[1] + r[1], i[2] = p[2] + r[2], i - }, T.bx = function(i, t, r, a) { - var c = [], - p = []; - return c[0] = t[0] - r[0], c[1] = t[1] - r[1], c[2] = t[2] - r[2], p[0] = c[0], p[1] = c[1] * Math.cos(a) - c[2] * Math.sin(a), p[2] = c[1] * Math.sin(a) + c[2] * Math.cos(a), i[0] = p[0] + r[0], i[1] = p[1] + r[1], i[2] = p[2] + r[2], i - }, T.by = function(i, t, r, a) { - var c = [], - p = []; - return c[0] = t[0] - r[0], c[1] = t[1] - r[1], c[2] = t[2] - r[2], p[0] = c[2] * Math.sin(a) + c[0] * Math.cos(a), p[1] = c[1], p[2] = c[2] * Math.cos(a) - c[0] * Math.sin(a), i[0] = p[0] + r[0], i[1] = p[1] + r[1], i[2] = p[2] + r[2], i - }, T.bz = function(i, t, r) { - var a = Math.sin(r), - c = Math.cos(r), - p = t[0], - f = t[1], - g = t[2], - v = t[3], - S = t[8], - I = t[9], - E = t[10], - R = t[11]; - return t !== i && (i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]), i[0] = p * c - S * a, i[1] = f * c - I * a, i[2] = g * c - E * a, i[3] = v * c - R * a, i[8] = p * a + S * c, i[9] = f * a + I * c, i[10] = g * a + E * c, i[11] = v * a + R * c, i - }, T.c = ce, T.c0 = E0, T.c1 = class extends n {}, T.c2 = Ip, T.c3 = function(i) { - return i <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(i) / Math.LN2)) - }, T.c4 = Rm, T.c5 = function(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = r[3] * a + r[7] * c + r[11] * p + r[15]; - return i[0] = (r[0] * a + r[4] * c + r[8] * p + r[12]) / (f = f || 1), i[1] = (r[1] * a + r[5] * c + r[9] * p + r[13]) / f, i[2] = (r[2] * a + r[6] * c + r[10] * p + r[14]) / f, i - }, T.c6 = class extends Yc {}, T.c7 = class extends P {}, T.c8 = function(i, t) { - return i[0] === t[0] && i[1] === t[1] && i[2] === t[2] && i[3] === t[3] && i[4] === t[4] && i[5] === t[5] && i[6] === t[6] && i[7] === t[7] && i[8] === t[8] && i[9] === t[9] && i[10] === t[10] && i[11] === t[11] && i[12] === t[12] && i[13] === t[13] && i[14] === t[14] && i[15] === t[15] - }, T.c9 = function(i, t) { - var r = i[0], - a = i[1], - c = i[2], - p = i[3], - f = i[4], - g = i[5], - v = i[6], - S = i[7], - I = i[8], - E = i[9], - R = i[10], - N = i[11], - j = i[12], - Z = i[13], - Y = i[14], - ae = i[15], - ze = t[0], - me = t[1], - be = t[2], - Ve = t[3], - rt = t[4], - St = t[5], - $t = t[6], - Bt = t[7], - Ut = t[8], - pr = t[9], - Vt = t[10], - Zt = t[11], - mt = t[12], - Br = t[13], - Ur = t[14], - xr = t[15]; - return Math.abs(r - ze) <= Oe * Math.max(1, Math.abs(r), Math.abs(ze)) && Math.abs(a - me) <= Oe * Math.max(1, Math.abs(a), Math.abs(me)) && Math.abs(c - be) <= Oe * Math.max(1, Math.abs(c), Math.abs(be)) && Math.abs(p - Ve) <= Oe * Math.max(1, Math.abs(p), Math.abs(Ve)) && Math.abs(f - rt) <= Oe * Math.max(1, Math.abs(f), Math.abs(rt)) && Math.abs(g - St) <= Oe * Math.max(1, Math.abs(g), Math.abs(St)) && Math.abs(v - $t) <= Oe * Math.max(1, Math.abs(v), Math.abs($t)) && Math.abs(S - Bt) <= Oe * Math.max(1, Math.abs(S), Math.abs(Bt)) && Math.abs(I - Ut) <= Oe * Math.max(1, Math.abs(I), Math.abs(Ut)) && Math.abs(E - pr) <= Oe * Math.max(1, Math.abs(E), Math.abs(pr)) && Math.abs(R - Vt) <= Oe * Math.max(1, Math.abs(R), Math.abs(Vt)) && Math.abs(N - Zt) <= Oe * Math.max(1, Math.abs(N), Math.abs(Zt)) && Math.abs(j - mt) <= Oe * Math.max(1, Math.abs(j), Math.abs(mt)) && Math.abs(Z - Br) <= Oe * Math.max(1, Math.abs(Z), Math.abs(Br)) && Math.abs(Y - Ur) <= Oe * Math.max(1, Math.abs(Y), Math.abs(Ur)) && Math.abs(ae - xr) <= Oe * Math.max(1, Math.abs(ae), Math.abs(xr)) - }, T.cA = function(i, t) { - O.REGISTERED_PROTOCOLS[i] = t - }, T.cB = function(i) { - delete O.REGISTERED_PROTOCOLS[i] - }, T.cC = function(i, t) { - const r = {}; - for (let c = 0; c < i.length; c++) { - const p = t && t[i[c].id] || mp(i[c]); - t && (t[i[c].id] = p); - let f = r[p]; - f || (f = r[p] = []), f.push(i[c]) - } - const a = []; - for (const c in r) a.push(r[c]); - return a - }, T.cD = Kt, T.cE = z_, T.cF = D_, T.cG = u_, T.cH = function(i) { - i.bucket.createArrays(), i.bucket.tilePixelRatio = ne / (512 * i.bucket.overscaling), i.bucket.compareText = {}, i.bucket.iconsNeedLinear = !1; - const t = i.bucket.layers[0], - r = t.layout, - a = t._unevaluatedLayout._values, - c = { - layoutIconSize: a["icon-size"].possiblyEvaluate(new Oi(i.bucket.zoom + 1), i.canonical), - layoutTextSize: a["text-size"].possiblyEvaluate(new Oi(i.bucket.zoom + 1), i.canonical), - textMaxSize: a["text-size"].possiblyEvaluate(new Oi(18)) - }; - if (i.bucket.textSizeData.kind === "composite") { - const { - minZoom: S, - maxZoom: I - } = i.bucket.textSizeData; - c.compositeTextSizes = [a["text-size"].possiblyEvaluate(new Oi(S), i.canonical), a["text-size"].possiblyEvaluate(new Oi(I), i.canonical)] - } - if (i.bucket.iconSizeData.kind === "composite") { - const { - minZoom: S, - maxZoom: I - } = i.bucket.iconSizeData; - c.compositeIconSizes = [a["icon-size"].possiblyEvaluate(new Oi(S), i.canonical), a["icon-size"].possiblyEvaluate(new Oi(I), i.canonical)] - } - const p = r.get("text-line-height") * bn, - f = r.get("text-rotation-alignment") !== "viewport" && r.get("symbol-placement") !== "point", - g = r.get("text-keep-upright"), - v = r.get("text-size"); - for (const S of i.bucket.features) { - const I = r.get("text-font").evaluate(S, {}, i.canonical).join(","), - E = v.evaluate(S, {}, i.canonical), - R = c.layoutTextSize.evaluate(S, {}, i.canonical), - N = c.layoutIconSize.evaluate(S, {}, i.canonical), - j = { - horizontal: {}, - vertical: void 0 - }, - Z = S.text; - let Y, ae = [0, 0]; - if (Z) { - const be = Z.toString(), - Ve = r.get("text-letter-spacing").evaluate(S, {}, i.canonical) * bn, - rt = yp(be) ? Ve : 0, - St = r.get("text-anchor").evaluate(S, {}, i.canonical), - $t = $_(t, S, i.canonical); - if (!$t) { - const Vt = r.get("text-radial-offset").evaluate(S, {}, i.canonical); - ae = Vt ? Z_(St, [Vt * bn, Kp]) : r.get("text-offset").evaluate(S, {}, i.canonical).map((Zt => Zt * bn)) - } - let Bt = f ? "center" : r.get("text-justify").evaluate(S, {}, i.canonical); - const Ut = r.get("symbol-placement") === "point" ? r.get("text-max-width").evaluate(S, {}, i.canonical) * bn : 1 / 0, - pr = () => { - i.bucket.allowVerticalPlacement && wl(be) && (j.vertical = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, St, "left", rt, ae, T.ao.vertical, !0, R, E)) - }; - if (!f && $t) { - const Vt = new Set; - if (Bt === "auto") - for (let mt = 0; mt < $t.values.length; mt += 2) Vt.add(Yp($t.values[mt])); - else Vt.add(Bt); - let Zt = !1; - for (const mt of Vt) - if (!j.horizontal[mt]) - if (Zt) j.horizontal[mt] = j.horizontal[0]; - else { - const Br = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, "center", mt, rt, ae, T.ao.horizontal, !1, R, E); - Br && (j.horizontal[mt] = Br, Zt = Br.positionedLines.length === 1) - } pr() - } else { - Bt === "auto" && (Bt = Yp(St)); - const Vt = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, St, Bt, rt, ae, T.ao.horizontal, !1, R, E); - Vt && (j.horizontal[Bt] = Vt), pr(), wl(be) && f && g && (j.vertical = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, St, Bt, rt, ae, T.ao.vertical, !1, R, E)) - } - } - let ze = !1; - if (S.icon && S.icon.name) { - const be = i.imageMap[S.icon.name]; - be && (Y = Q0(i.imagePositions[S.icon.name], r.get("icon-offset").evaluate(S, {}, i.canonical), r.get("icon-anchor").evaluate(S, {}, i.canonical)), ze = !!be.sdf, i.bucket.sdfIcons === void 0 ? i.bucket.sdfIcons = ze : i.bucket.sdfIcons !== ze && Lt("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (be.pixelRatio !== i.bucket.pixelRatio || r.get("icon-rotate").constantOr(1) !== 0) && (i.bucket.iconsNeedLinear = !0)) - } - const me = H_(j.horizontal) || j.vertical; - i.bucket.iconsInText = !!me && me.iconsInText, (me || Y) && my(i.bucket, S, j, Y, i.imageMap, c, R, N, ae, ze, i.canonical, i.subdivisionGranularity) - } - i.showCollisionBoxes && i.bucket.generateCollisionDebugBuffers() - }, T.cI = Bp, T.cJ = Lp, T.cK = Rp, T.cL = Km, T.cM = Op, T.cN = class { - constructor(i) { - this._marks = { - start: [i.url, "start"].join("#"), - end: [i.url, "end"].join("#"), - measure: i.url.toString() - }, performance.mark(this._marks.start) - } - finish() { - performance.mark(this._marks.end); - let i = performance.getEntriesByName(this._marks.measure); - return i.length === 0 && (performance.measure(this._marks.measure, this._marks.start, this._marks.end), i = performance.getEntriesByName(this._marks.measure), performance.clearMarks(this._marks.start), performance.clearMarks(this._marks.end), performance.clearMeasures(this._marks.measure)), i - } - }, T.cO = function(i, t, r, a, c) { - return o(this, void 0, void 0, (function*() { - if (Ae()) try { - return yield dr(i, t, r, a, c) - } catch {} - return (function(p, f, g, v, S) { - const I = p.width, - E = p.height; - _r && Ir || (_r = new OffscreenCanvas(I, E), Ir = _r.getContext("2d", { - willReadFrequently: !0 - })), _r.width = I, _r.height = E, Ir.drawImage(p, 0, 0, I, E); - const R = Ir.getImageData(f, g, v, S); - return Ir.clearRect(0, 0, I, E), R.data - })(i, t, r, a, c) - })) - }, T.cP = Om, T.cQ = W, T.cR = Xm, T.cS = Bl, T.cT = Co, T.cU = function(i, t) { - const r = new Map; - if (i != null) - if (i.type === "Feature") r.set(mu(i, t), i); - else - for (const a of i.features) r.set(mu(a, t), a); - return r - }, T.cV = function(i, t) { - if (i == null) return !0; - if (i.type === "Feature") return mu(i, t) != null; - if (i.type === "FeatureCollection") { - const r = new Set; - for (const a of i.features) { - const c = mu(a, t); - if (c == null || r.has(c)) return !1; - r.add(c) - } - return !0 - } - return !1 - }, T.cW = function(i, t, r) { - var a, c, p, f; - if (t.removeAll && i.clear(), t.remove) - for (const g of t.remove) i.delete(g); - if (t.add) - for (const g of t.add) { - const v = mu(g, r); - v != null && i.set(v, g) - } - if (t.update) - for (const g of t.update) { - let v = i.get(g.id); - if (v == null) continue; - const S = !g.removeAllProperties && (((a = g.removeProperties) === null || a === void 0 ? void 0 : a.length) > 0 || ((c = g.addOrUpdateProperties) === null || c === void 0 ? void 0 : c.length) > 0); - if ((g.newGeometry || g.removeAllProperties || S) && (v = Object.assign({}, v), i.set(g.id, v), S && (v.properties = Object.assign({}, v.properties))), g.newGeometry && (v.geometry = g.newGeometry), g.removeAllProperties) v.properties = {}; - else if (((p = g.removeProperties) === null || p === void 0 ? void 0 : p.length) > 0) - for (const I of g.removeProperties) Object.prototype.hasOwnProperty.call(v.properties, I) && delete v.properties[I]; - if (((f = g.addOrUpdateProperties) === null || f === void 0 ? void 0 : f.length) > 0) - for (const { - key: I, - value: E - } - of g.addOrUpdateProperties) v.properties[I] = E - } - }, T.cX = Ca, T.ca = function(i, t) { - return i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15], i - }, T.cb = i => i.type === "symbol", T.cc = i => i.type === "circle", T.cd = i => i.type === "heatmap", T.ce = i => i.type === "line", T.cf = i => i.type === "fill", T.cg = i => i.type === "fill-extrusion", T.ch = i => i.type === "hillshade", T.ci = i => i.type === "color-relief", T.cj = i => i.type === "raster", T.ck = i => i.type === "background", T.cl = i => i.type === "custom", T.cm = Ct, T.cn = function(i, t, r) { - const a = _e(t.x - r.x, t.y - r.y), - c = _e(i.x - r.x, i.y - r.y); - var p, f; - return Mr(Math.atan2(a[0] * c[1] - a[1] * c[0], (p = a)[0] * (f = c)[0] + p[1] * f[1])) - }, T.co = _t, T.cp = function(i, t) { - return kr[t] && (i instanceof MouseEvent || i instanceof WheelEvent) - }, T.cq = function(i, t) { - return Ar[t] && "touches" in i - }, T.cr = function(i) { - return Ar[i] || kr[i] - }, T.cs = function(i, t, r) { - var a = t[0], - c = t[1]; - return i[0] = r[0] * a + r[4] * c + r[12], i[1] = r[1] * a + r[5] * c + r[13], i - }, T.ct = function(i, t) { - const { - x: r, - y: a - } = fu.fromLngLat(t); - return !(i < 0 || i > 25 || a < 0 || a >= 1 || r < 0 || r >= 1) - }, T.cu = function(i, t) { - return i[0] = t[0], i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = t[1], i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[10] = t[2], i[11] = 0, i[12] = 0, i[13] = 0, i[14] = 0, i[15] = 1, i - }, T.cv = class extends Xs {}, T.cw = gy, T.cy = function(i) { - return i.message === Nr - }, T.cz = K, T.d = Le, T.e = pt, T.f = i => o(void 0, void 0, void 0, (function*() { - if (i.byteLength === 0) return createImageBitmap(new ImageData(1, 1)); - const t = new Blob([new Uint8Array(i)], { - type: "image/png" - }); - try { - return createImageBitmap(t) - } catch (r) { - throw new Error(`Could not load image because of ${r.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`) - } - })), T.g = q, T.h = i => new Promise(((t, r) => { - const a = new Image; - a.onload = () => { - t(a), URL.revokeObjectURL(a.src), a.onload = null, window.requestAnimationFrame((() => { - a.src = Ft - })) - }, a.onerror = () => r(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 c = new Blob([new Uint8Array(i)], { - type: "image/png" - }); - a.src = i.byteLength ? URL.createObjectURL(c) : Ft - })), T.i = Yt, T.j = (i, t) => ve(pt(i, { - type: "json" - }), t), T.k = Ye, T.l = ot, T.m = ve, T.n = (i, t) => ve(pt(i, { - type: "arrayBuffer" - }), t), T.o = function(i) { - return new Op(i).readFields(V0, []) - }, T.p = c_, T.q = iu, T.r = jn, T.s = jr, T.t = ed, T.u = si, T.v = xe, T.w = Lt, T.x = _p, T.y = Eo, T.z = $s - })), L("worker", ["./shared"], (function(T) { - class o { - constructor(O) { - this.keyCache = {}, O && this.replace(O) - } - replace(O) { - this._layerConfigs = {}, this._layers = {}, this.update(O, []) - } - update(O, q) { - for (const K of O) { - this._layerConfigs[K.id] = K; - const le = this._layers[K.id] = T.bJ(K); - le._featureFilter = T.aa(le.filter), this.keyCache[K.id] && delete this.keyCache[K.id] - } - for (const K of q) delete this.keyCache[K], delete this._layerConfigs[K], delete this._layers[K]; - this.familiesBySource = {}; - const G = T.cC(Object.values(this._layerConfigs), this.keyCache); - for (const K of G) { - const le = K.map((Ye => this._layers[Ye.id])), - ve = le[0]; - if (ve.visibility === "none") continue; - const Le = ve.source || ""; - let Ce = this.familiesBySource[Le]; - Ce || (Ce = this.familiesBySource[Le] = {}); - const Ze = ve.sourceLayer || "_geojsonTileLayer"; - let ot = Ce[Ze]; - ot || (ot = Ce[Ze] = []), ot.push(le) - } - } - } - class $ { - constructor(O) { - const q = {}, - G = []; - for (const Le in O) { - const Ce = O[Le], - Ze = q[Le] = {}; - for (const ot in Ce) { - const Ye = Ce[+ot]; - if (!Ye || Ye.bitmap.width === 0 || Ye.bitmap.height === 0) continue; - const Ot = { - x: 0, - y: 0, - w: Ye.bitmap.width + 2, - h: Ye.bitmap.height + 2 - }; - G.push(Ot), Ze[ot] = { - rect: Ot, - metrics: Ye.metrics - } - } - } - const { - w: K, - h: le - } = T.p(G), ve = new T.q({ - width: K || 1, - height: le || 1 - }); - for (const Le in O) { - const Ce = O[Le]; - for (const Ze in Ce) { - const ot = Ce[+Ze]; - if (!ot || ot.bitmap.width === 0 || ot.bitmap.height === 0) continue; - const Ye = q[Le][Ze].rect; - T.q.copy(ot.bitmap, ve, { - x: 0, - y: 0 - }, { - x: Ye.x + 1, - y: Ye.y + 1 - }, ot.bitmap) - } - } - this.image = ve, this.positions = q - } - } - T.cD("GlyphAtlas", $); - class W { - constructor(O) { - this.tileID = new T.Z(O.tileID.overscaledZ, O.tileID.wrap, O.tileID.canonical.z, O.tileID.canonical.x, O.tileID.canonical.y), this.uid = O.uid, this.zoom = O.zoom, this.pixelRatio = O.pixelRatio, this.tileSize = O.tileSize, this.source = O.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = O.showCollisionBoxes, this.collectResourceTiming = !!O.collectResourceTiming, this.returnDependencies = !!O.returnDependencies, this.promoteId = O.promoteId, this.inFlightDependencies = [], this.globalState = O.globalState - } - parse(O, q, G, K, le) { - return T._(this, void 0, void 0, (function*() { - this.status = "parsing", this.data = O, this.collisionBoxArray = new T.a8; - const ve = new T.cE(Object.keys(O.layers).sort()), - Le = new T.cF(this.tileID, this.promoteId); - Le.bucketLayerIDs = []; - const Ce = {}, - Ze = { - featureIndex: Le, - iconDependencies: {}, - patternDependencies: {}, - glyphDependencies: {}, - availableImages: G, - subdivisionGranularity: le - }, - ot = q.familiesBySource[this.source]; - for (const mr in ot) { - const gr = O.layers[mr]; - if (!gr) continue; - gr.version === 1 && T.w(`Vector tile source "${this.source}" layer "${mr}" does not use vector tile spec v2 and therefore may have some rendering errors.`); - const ai = ve.encode(mr), - Tt = []; - for (let Ci = 0; Ci < gr.length; Ci++) { - const di = gr.feature(Ci), - Pn = Le.getId(di, mr); - Tt.push({ - feature: di, - id: Pn, - index: Ci, - sourceLayerIndex: ai - }) - } - for (const Ci of ot[mr]) { - const di = Ci[0]; - di.source !== this.source && T.w(`layer.source = ${di.source} does not equal this.source = ${this.source}`), di.minzoom && this.zoom < Math.floor(di.minzoom) || di.maxzoom && this.zoom >= di.maxzoom || di.visibility !== "none" && (ie(Ci, this.zoom, G), (Ce[di.id] = di.createBucket({ - index: Le.bucketLayerIDs.length, - layers: Ci, - zoom: this.zoom, - pixelRatio: this.pixelRatio, - overscaling: this.overscaling, - collisionBoxArray: this.collisionBoxArray, - sourceLayerIndex: ai, - sourceID: this.source, - globalState: this.globalState - })).populate(Tt, Ze, this.tileID.canonical), Le.bucketLayerIDs.push(Ci.map((Pn => Pn.id)))) - } - } - const Ye = T.bN(Ze.glyphDependencies, (mr => Object.keys(mr).map(Number))); - this.inFlightDependencies.forEach((mr => mr == null ? void 0 : mr.abort())), this.inFlightDependencies = []; - let Ot = Promise.resolve({}); - if (Object.keys(Ye).length) { - const mr = new AbortController; - this.inFlightDependencies.push(mr), Ot = K.sendAsync({ - type: "GG", - data: { - stacks: Ye, - source: this.source, - tileID: this.tileID, - type: "glyphs" - } - }, mr) - } - const xe = Object.keys(Ze.iconDependencies); - let At = Promise.resolve({}); - if (xe.length) { - const mr = new AbortController; - this.inFlightDependencies.push(mr), At = K.sendAsync({ - type: "GI", - data: { - icons: xe, - source: this.source, - tileID: this.tileID, - type: "icons" - } - }, mr) - } - const Pt = Object.keys(Ze.patternDependencies); - let kt = Promise.resolve({}); - if (Pt.length) { - const mr = new AbortController; - this.inFlightDependencies.push(mr), kt = K.sendAsync({ - type: "GI", - data: { - icons: Pt, - source: this.source, - tileID: this.tileID, - type: "patterns" - } - }, mr) - } - const [Wt, Lr, Kr] = yield Promise.all([Ot, At, kt]), Hr = new $(Wt), $r = new T.cG(Lr, Kr); - for (const mr in Ce) { - const gr = Ce[mr]; - gr instanceof T.a9 ? (ie(gr.layers, this.zoom, G), T.cH({ - bucket: gr, - glyphMap: Wt, - glyphPositions: Hr.positions, - imageMap: Lr, - imagePositions: $r.iconPositions, - showCollisionBoxes: this.showCollisionBoxes, - canonical: this.tileID.canonical, - subdivisionGranularity: Ze.subdivisionGranularity - })) : gr.hasPattern && (gr instanceof T.cI || gr instanceof T.cJ || gr instanceof T.cK) && (ie(gr.layers, this.zoom, G), gr.addFeatures(Ze, this.tileID.canonical, $r.patternPositions)) - } - return this.status = "done", { - buckets: Object.values(Ce).filter((mr => !mr.isEmpty())), - featureIndex: Le, - collisionBoxArray: this.collisionBoxArray, - glyphAtlasImage: Hr.image, - imageAtlas: $r, - glyphMap: this.returnDependencies ? Wt : null, - iconMap: this.returnDependencies ? Lr : null, - glyphPositions: this.returnDependencies ? Hr.positions : null - } - })) - } - } - - function ie(ce, O, q) { - const G = new T.F(O); - for (const K of ce) K.recalculate(G, q) - } - class pe { - constructor(O, q, G) { - this.actor = O, this.layerIndex = q, this.availableImages = G, this.fetching = {}, this.loading = {}, this.loaded = {} - } - loadVectorTile(O, q) { - return T._(this, void 0, void 0, (function*() { - const G = yield T.n(O.request, q); - try { - return { - vectorTile: new T.cL(new T.cM(G.data)), - rawData: G.data, - cacheControl: G.cacheControl, - expires: G.expires - } - } catch (K) { - const le = new Uint8Array(G.data); - let ve = `Unable to parse the tile at ${O.request.url}, `; - throw ve += le[0] === 31 && le[1] === 139 ? "please make sure the data is not gzipped and that you have configured the relevant header in the server" : `got error: ${K.message}`, new Error(ve) - } - })) - } - loadTile(O) { - return T._(this, void 0, void 0, (function*() { - const q = O.uid, - G = !!(O && O.request && O.request.collectResourceTiming) && new T.cN(O.request), - K = new W(O); - this.loading[q] = K; - const le = new AbortController; - K.abort = le; - try { - const ve = yield this.loadVectorTile(O, le); - if (delete this.loading[q], !ve) return null; - const Le = ve.rawData, - Ce = {}; - ve.expires && (Ce.expires = ve.expires), ve.cacheControl && (Ce.cacheControl = ve.cacheControl); - const Ze = {}; - if (G) { - const Ye = G.finish(); - Ye && (Ze.resourceTiming = JSON.parse(JSON.stringify(Ye))) - } - K.vectorTile = ve.vectorTile; - const ot = K.parse(ve.vectorTile, this.layerIndex, this.availableImages, this.actor, O.subdivisionGranularity); - this.loaded[q] = K, this.fetching[q] = { - rawTileData: Le, - cacheControl: Ce, - resourceTiming: Ze - }; - try { - const Ye = yield ot; - return T.e({ - rawTileData: Le.slice(0) - }, Ye, Ce, Ze) - } finally { - delete this.fetching[q] - } - } catch (ve) { - throw delete this.loading[q], K.status = "done", this.loaded[q] = K, ve - } - })) - } - reloadTile(O) { - return T._(this, void 0, void 0, (function*() { - const q = O.uid; - if (!this.loaded || !this.loaded[q]) throw new Error("Should not be trying to reload a tile that was never loaded or has been removed"); - const G = this.loaded[q]; - if (G.showCollisionBoxes = O.showCollisionBoxes, G.globalState = O.globalState, G.status === "parsing") { - const K = yield G.parse(G.vectorTile, this.layerIndex, this.availableImages, this.actor, O.subdivisionGranularity); - let le; - if (this.fetching[q]) { - const { - rawTileData: ve, - cacheControl: Le, - resourceTiming: Ce - } = this.fetching[q]; - delete this.fetching[q], le = T.e({ - rawTileData: ve.slice(0) - }, K, Le, Ce) - } else le = K; - return le - } - if (G.status === "done" && G.vectorTile) return G.parse(G.vectorTile, this.layerIndex, this.availableImages, this.actor, O.subdivisionGranularity) - })) - } - abortTile(O) { - return T._(this, void 0, void 0, (function*() { - const q = this.loading, - G = O.uid; - q && q[G] && q[G].abort && (q[G].abort.abort(), delete q[G]) - })) - } - removeTile(O) { - return T._(this, void 0, void 0, (function*() { - this.loaded && this.loaded[O.uid] && delete this.loaded[O.uid] - })) - } - } - class ye { - constructor() { - this.loaded = {} - } - loadTile(O) { - return T._(this, void 0, void 0, (function*() { - const { - uid: q, - encoding: G, - rawImageData: K, - redFactor: le, - greenFactor: ve, - blueFactor: Le, - baseShift: Ce - } = O, Ze = K.width + 2, ot = K.height + 2, Ye = T.b(K) ? new T.R({ - width: Ze, - height: ot - }, yield T.cO(K, -1, -1, Ze, ot)) : K, Ot = new T.cP(q, Ye, G, le, ve, Le, Ce); - return this.loaded = this.loaded || {}, this.loaded[q] = Ot, Ot - })) - } - removeTile(O) { - const q = this.loaded, - G = O.uid; - q && q[G] && delete q[G] - } - } - var X, Se, we = (function() { - if (Se) return X; - - function ce(q, G) { - if (q.length !== 0) { - O(q[0], G); - for (var K = 1; K < q.length; K++) O(q[K], !G) - } - } - - function O(q, G) { - for (var K = 0, le = 0, ve = 0, Le = q.length, Ce = Le - 1; ve < Le; Ce = ve++) { - var Ze = (q[ve][0] - q[Ce][0]) * (q[Ce][1] + q[ve][1]), - ot = K + Ze; - le += Math.abs(K) >= Math.abs(Ze) ? K - ot + Ze : Ze - ot + K, K = ot - } - K + le >= 0 != !!G && q.reverse() - } - return Se = 1, X = function q(G, K) { - var le, ve = G && G.type; - if (ve === "FeatureCollection") - for (le = 0; le < G.features.length; le++) q(G.features[le], K); - else if (ve === "GeometryCollection") - for (le = 0; le < G.geometries.length; le++) q(G.geometries[le], K); - else if (ve === "Feature") q(G.geometry, K); - else if (ve === "Polygon") ce(G.coordinates, K); - else if (ve === "MultiPolygon") - for (le = 0; le < G.coordinates.length; le++) ce(G.coordinates[le], K); - return G - } - })(), - Re = T.cQ(we); - class Ae extends T.cS { - constructor(O, q) { - super(new T.cM, 0, q, [], []), this.feature = O, this.type = O.type, this.properties = O.tags ? O.tags : {}, "id" in O && (typeof O.id == "string" ? this.id = parseInt(O.id, 10) : typeof O.id != "number" || isNaN(O.id) || (this.id = O.id)) - } - loadGeometry() { - const O = [], - q = this.feature.type === 1 ? [this.feature.geometry] : this.feature.geometry; - for (const G of q) { - const K = []; - for (const le of G) K.push(new T.P(le[0], le[1])); - O.push(K) - } - return O - } - } - class Oe extends T.cR { - constructor(O, q) { - super(new T.cM), this.layers = { - _geojsonTileLayer: this - }, this.name = "_geojsonTileLayer", this.version = q ? q.version : 1, this.extent = q ? q.extent : 4096, this.length = O.length, this.features = O - } - feature(O) { - return new Ae(this.features[O], this.extent) - } - } - - function Ee(ce, O) { - O.writeVarintField(15, ce.version || 1), O.writeStringField(1, ce.name || ""), O.writeVarintField(5, ce.extent || 4096); - const q = { - keys: [], - values: [], - keycache: {}, - valuecache: {} - }; - for (let le = 0; le < ce.length; le++) q.feature = ce.feature(le), O.writeMessage(2, Ne, q); - const G = q.keys; - for (const le of G) O.writeStringField(3, le); - const K = q.values; - for (const le of K) O.writeMessage(4, Je, le) - } - - function Ne(ce, O) { - if (!ce.feature) return; - const q = ce.feature; - q.id !== void 0 && O.writeVarintField(1, q.id), O.writeMessage(2, ft, ce), O.writeVarintField(3, q.type), O.writeMessage(4, ct, q) - } - - function ft(ce, O) { - var q; - for (const G in (q = ce.feature) == null ? void 0 : q.properties) { - let K = ce.feature.properties[G], - le = ce.keycache[G]; - if (K === null) continue; - le === void 0 && (ce.keys.push(G), le = ce.keys.length - 1, ce.keycache[G] = le), O.writeVarint(le), typeof K != "string" && typeof K != "boolean" && typeof K != "number" && (K = JSON.stringify(K)); - const ve = typeof K + ":" + K; - let Le = ce.valuecache[ve]; - Le === void 0 && (ce.values.push(K), Le = ce.values.length - 1, ce.valuecache[ve] = Le), O.writeVarint(Le) - } - } - - function ht(ce, O) { - return (O << 3) + (7 & ce) - } - - function Xe(ce) { - return ce << 1 ^ ce >> 31 - } - - function ct(ce, O) { - const q = ce.loadGeometry(), - G = ce.type; - let K = 0, - le = 0; - for (const ve of q) { - let Le = 1; - G === 1 && (Le = ve.length), O.writeVarint(ht(1, Le)); - const Ce = G === 3 ? ve.length - 1 : ve.length; - for (let Ze = 0; Ze < Ce; Ze++) { - Ze === 1 && G !== 1 && O.writeVarint(ht(2, Ce - 1)); - const ot = ve[Ze].x - K, - Ye = ve[Ze].y - le; - O.writeVarint(Xe(ot)), O.writeVarint(Xe(Ye)), K += ot, le += Ye - } - ce.type === 3 && O.writeVarint(ht(7, 1)) - } - } - - function Je(ce, O) { - const q = typeof ce; - q === "string" ? O.writeStringField(1, ce) : q === "boolean" ? O.writeBooleanField(7, ce) : q === "number" && (ce % 1 != 0 ? O.writeDoubleField(3, ce) : ce < 0 ? O.writeSVarintField(6, ce) : O.writeVarintField(5, ce)) - } - const Be = { - minZoom: 0, - maxZoom: 16, - minPoints: 2, - radius: 40, - extent: 512, - nodeSize: 64, - log: !1, - generateId: !1, - reduce: null, - map: ce => ce - }, - st = Math.fround || (it = new Float32Array(1), ce => (it[0] = +ce, it[0])); - var it; - class Qe { - constructor(O) { - this.options = Object.assign(Object.create(Be), O), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [] - } - load(O) { - const { - log: q, - minZoom: G, - maxZoom: K - } = this.options; - q && console.time("total time"); - const le = `prepare ${O.length} points`; - q && console.time(le), this.points = O; - const ve = []; - for (let Ce = 0; Ce < O.length; Ce++) { - const Ze = O[Ce]; - if (!Ze.geometry) continue; - const [ot, Ye] = Ze.geometry.coordinates, Ot = st(Q(ot)), xe = st(te(Ye)); - ve.push(Ot, xe, 1 / 0, Ce, -1, 1), this.options.reduce && ve.push(0) - } - let Le = this.trees[K + 1] = this._createTree(ve); - q && console.timeEnd(le); - for (let Ce = K; Ce >= G; Ce--) { - const Ze = +Date.now(); - Le = this.trees[Ce] = this._createTree(this._cluster(Le, Ce)), q && console.log("z%d: %d clusters in %dms", Ce, Le.numItems, +Date.now() - Ze) - } - return q && console.timeEnd("total time"), this - } - getClusters(O, q) { - let G = ((O[0] + 180) % 360 + 360) % 360 - 180; - const K = Math.max(-90, Math.min(90, O[1])); - let le = O[2] === 180 ? 180 : ((O[2] + 180) % 360 + 360) % 360 - 180; - const ve = Math.max(-90, Math.min(90, O[3])); - if (O[2] - O[0] >= 360) G = -180, le = 180; - else if (G > le) { - const Ye = this.getClusters([G, K, 180, ve], q), - Ot = this.getClusters([-180, K, le, ve], q); - return Ye.concat(Ot) - } - const Le = this.trees[this._limitZoom(q)], - Ce = Le.range(Q(G), te(ve), Q(le), te(K)), - Ze = Le.data, - ot = []; - for (const Ye of Ce) { - const Ot = this.stride * Ye; - ot.push(Ze[Ot + 5] > 1 ? ke(Ze, Ot, this.clusterProps) : this.points[Ze[Ot + 3]]) - } - return ot - } - getChildren(O) { - const q = this._getOriginId(O), - G = this._getOriginZoom(O), - K = "No cluster with the specified id.", - le = this.trees[G]; - if (!le) throw new Error(K); - const ve = le.data; - if (q * this.stride >= ve.length) throw new Error(K); - const Le = this.options.radius / (this.options.extent * Math.pow(2, G - 1)), - Ce = le.within(ve[q * this.stride], ve[q * this.stride + 1], Le), - Ze = []; - for (const ot of Ce) { - const Ye = ot * this.stride; - ve[Ye + 4] === O && Ze.push(ve[Ye + 5] > 1 ? ke(ve, Ye, this.clusterProps) : this.points[ve[Ye + 3]]) - } - if (Ze.length === 0) throw new Error(K); - return Ze - } - getLeaves(O, q, G) { - const K = []; - return this._appendLeaves(K, O, q = q || 10, G = G || 0, 0), K - } - getTile(O, q, G) { - const K = this.trees[this._limitZoom(O)], - le = Math.pow(2, O), - { - extent: ve, - radius: Le - } = this.options, - Ce = Le / ve, - Ze = (G - Ce) / le, - ot = (G + 1 + Ce) / le, - Ye = { - features: [] - }; - return this._addTileFeatures(K.range((q - Ce) / le, Ze, (q + 1 + Ce) / le, ot), K.data, q, G, le, Ye), q === 0 && this._addTileFeatures(K.range(1 - Ce / le, Ze, 1, ot), K.data, le, G, le, Ye), q === le - 1 && this._addTileFeatures(K.range(0, Ze, Ce / le, ot), K.data, -1, G, le, Ye), Ye.features.length ? Ye : null - } - getClusterExpansionZoom(O) { - let q = this._getOriginZoom(O) - 1; - for (; q <= this.options.maxZoom;) { - const G = this.getChildren(O); - if (q++, G.length !== 1) break; - O = G[0].properties.cluster_id - } - return q - } - _appendLeaves(O, q, G, K, le) { - const ve = this.getChildren(q); - for (const Le of ve) { - const Ce = Le.properties; - if (Ce && Ce.cluster ? le + Ce.point_count <= K ? le += Ce.point_count : le = this._appendLeaves(O, Ce.cluster_id, G, K, le) : le < K ? le++ : O.push(Le), O.length === G) break - } - return le - } - _createTree(O) { - const q = new T.aI(O.length / this.stride | 0, this.options.nodeSize, Float32Array); - for (let G = 0; G < O.length; G += this.stride) q.add(O[G], O[G + 1]); - return q.finish(), q.data = O, q - } - _addTileFeatures(O, q, G, K, le, ve) { - for (const Le of O) { - const Ce = Le * this.stride, - Ze = q[Ce + 5] > 1; - let ot, Ye, Ot; - if (Ze) ot = vt(q, Ce, this.clusterProps), Ye = q[Ce], Ot = q[Ce + 1]; - else { - const Pt = this.points[q[Ce + 3]]; - ot = Pt.properties; - const [kt, Wt] = Pt.geometry.coordinates; - Ye = Q(kt), Ot = te(Wt) - } - const xe = { - type: 1, - geometry: [ - [Math.round(this.options.extent * (Ye * le - G)), Math.round(this.options.extent * (Ot * le - K))] - ], - tags: ot - }; - let At; - At = Ze || this.options.generateId ? q[Ce + 3] : this.points[q[Ce + 3]].id, At !== void 0 && (xe.id = At), ve.features.push(xe) - } - } - _limitZoom(O) { - return Math.max(this.options.minZoom, Math.min(Math.floor(+O), this.options.maxZoom + 1)) - } - _cluster(O, q) { - const { - radius: G, - extent: K, - reduce: le, - minPoints: ve - } = this.options, Le = G / (K * Math.pow(2, q)), Ce = O.data, Ze = [], ot = this.stride; - for (let Ye = 0; Ye < Ce.length; Ye += ot) { - if (Ce[Ye + 2] <= q) continue; - Ce[Ye + 2] = q; - const Ot = Ce[Ye], - xe = Ce[Ye + 1], - At = O.within(Ce[Ye], Ce[Ye + 1], Le), - Pt = Ce[Ye + 5]; - let kt = Pt; - for (const Wt of At) { - const Lr = Wt * ot; - Ce[Lr + 2] > q && (kt += Ce[Lr + 5]) - } - if (kt > Pt && kt >= ve) { - let Wt, Lr = Ot * Pt, - Kr = xe * Pt, - Hr = -1; - const $r = (Ye / ot << 5) + (q + 1) + this.points.length; - for (const mr of At) { - const gr = mr * ot; - if (Ce[gr + 2] <= q) continue; - Ce[gr + 2] = q; - const ai = Ce[gr + 5]; - Lr += Ce[gr] * ai, Kr += Ce[gr + 1] * ai, Ce[gr + 4] = $r, le && (Wt || (Wt = this._map(Ce, Ye, !0), Hr = this.clusterProps.length, this.clusterProps.push(Wt)), le(Wt, this._map(Ce, gr))) - } - Ce[Ye + 4] = $r, Ze.push(Lr / kt, Kr / kt, 1 / 0, $r, -1, kt), le && Ze.push(Hr) - } else { - for (let Wt = 0; Wt < ot; Wt++) Ze.push(Ce[Ye + Wt]); - if (kt > 1) - for (const Wt of At) { - const Lr = Wt * ot; - if (!(Ce[Lr + 2] <= q)) { - Ce[Lr + 2] = q; - for (let Kr = 0; Kr < ot; Kr++) Ze.push(Ce[Lr + Kr]) - } - } - } - } - return Ze - } - _getOriginId(O) { - return O - this.points.length >> 5 - } - _getOriginZoom(O) { - return (O - this.points.length) % 32 - } - _map(O, q, G) { - if (O[q + 5] > 1) { - const ve = this.clusterProps[O[q + 6]]; - return G ? Object.assign({}, ve) : ve - } - const K = this.points[O[q + 3]].properties, - le = this.options.map(K); - return G && le === K ? Object.assign({}, le) : le - } - } - - function ke(ce, O, q) { - return { - type: "Feature", - id: ce[O + 3], - properties: vt(ce, O, q), - geometry: { - type: "Point", - coordinates: [(G = ce[O], 360 * (G - .5)), _e(ce[O + 1])] - } - }; - var G - } - - function vt(ce, O, q) { - const G = ce[O + 5], - K = G >= 1e4 ? `${Math.round(G/1e3)}k` : G >= 1e3 ? Math.round(G / 100) / 10 + "k" : G, - le = ce[O + 6], - ve = le === -1 ? {} : Object.assign({}, q[le]); - return Object.assign(ve, { - cluster: !0, - cluster_id: ce[O + 3], - point_count: G, - point_count_abbreviated: K - }) - } - - function Q(ce) { - return ce / 360 + .5 - } - - function te(ce) { - const O = Math.sin(ce * Math.PI / 180), - q = .5 - .25 * Math.log((1 + O) / (1 - O)) / Math.PI; - return q < 0 ? 0 : q > 1 ? 1 : q - } - - function _e(ce) { - const O = (180 - 360 * ce) * Math.PI / 180; - return 360 * Math.atan(Math.exp(O)) / Math.PI - 90 - } - - function ne(ce, O, q, G) { - let K = G; - const le = O + (q - O >> 1); - let ve, Le = q - O; - const Ce = ce[O], - Ze = ce[O + 1], - ot = ce[q], - Ye = ce[q + 1]; - for (let Ot = O + 3; Ot < q; Ot += 3) { - const xe = Pe(ce[Ot], ce[Ot + 1], Ce, Ze, ot, Ye); - if (xe > K) ve = Ot, K = xe; - else if (xe === K) { - const At = Math.abs(Ot - le); - At < Le && (ve = Ot, Le = At) - } - } - K > G && (ve - O > 3 && ne(ce, O, ve, G), ce[ve + 2] = K, q - ve > 3 && ne(ce, ve, q, G)) - } - - function Pe(ce, O, q, G, K, le) { - let ve = K - q, - Le = le - G; - if (ve !== 0 || Le !== 0) { - const Ce = ((ce - q) * ve + (O - G) * Le) / (ve * ve + Le * Le); - Ce > 1 ? (q = K, G = le) : Ce > 0 && (q += ve * Ce, G += Le * Ce) - } - return ve = ce - q, Le = O - G, ve * ve + Le * Le - } - - function Me(ce, O, q, G) { - const K = { - id: ce ?? null, - type: O, - geometry: q, - tags: G, - minX: 1 / 0, - minY: 1 / 0, - maxX: -1 / 0, - maxY: -1 / 0 - }; - if (O === "Point" || O === "MultiPoint" || O === "LineString") at(K, q); - else if (O === "Polygon") at(K, q[0]); - else if (O === "MultiLineString") - for (const le of q) at(K, le); - else if (O === "MultiPolygon") - for (const le of q) at(K, le[0]); - return K - } - - function at(ce, O) { - for (let q = 0; q < O.length; q += 3) ce.minX = Math.min(ce.minX, O[q]), ce.minY = Math.min(ce.minY, O[q + 1]), ce.maxX = Math.max(ce.maxX, O[q]), ce.maxY = Math.max(ce.maxY, O[q + 1]) - } - - function We(ce, O, q, G) { - if (!O.geometry) return; - const K = O.geometry.coordinates; - if (K && K.length === 0) return; - const le = O.geometry.type, - ve = Math.pow(q.tolerance / ((1 << q.maxZoom) * q.extent), 2); - let Le = [], - Ce = O.id; - if (q.promoteId ? Ce = O.properties[q.promoteId] : q.generateId && (Ce = G || 0), le === "Point") Ct(K, Le); - else if (le === "MultiPoint") - for (const Ze of K) Ct(Ze, Le); - else if (le === "LineString") _t(K, Le, ve, !1); - else if (le === "MultiLineString") { - if (q.lineMetrics) { - for (const Ze of K) Le = [], _t(Ze, Le, ve, !1), ce.push(Me(Ce, "LineString", Le, O.properties)); - return - } - xt(K, Le, ve, !1) - } else if (le === "Polygon") xt(K, Le, ve, !0); - else { - if (le !== "MultiPolygon") { - if (le === "GeometryCollection") { - for (const Ze of O.geometry.geometries) We(ce, { - id: Ce, - geometry: Ze, - properties: O.properties - }, q, G); - return - } - throw new Error("Input data is not a valid GeoJSON object.") - } - for (const Ze of K) { - const ot = []; - xt(Ze, ot, ve, !0), Le.push(ot) - } - } - ce.push(Me(Ce, le, Le, O.properties)) - } - - function Ct(ce, O) { - O.push(tt(ce[0]), pt(ce[1]), 0) - } - - function _t(ce, O, q, G) { - let K, le, ve = 0; - for (let Ce = 0; Ce < ce.length; Ce++) { - const Ze = tt(ce[Ce][0]), - ot = pt(ce[Ce][1]); - O.push(Ze, ot, 0), Ce > 0 && (ve += G ? (K * ot - Ze * le) / 2 : Math.sqrt(Math.pow(Ze - K, 2) + Math.pow(ot - le, 2))), K = Ze, le = ot - } - const Le = O.length - 3; - O[2] = 1, ne(O, 0, Le, q), O[Le + 2] = 1, O.size = Math.abs(ve), O.start = 0, O.end = O.size - } - - function xt(ce, O, q, G) { - for (let K = 0; K < ce.length; K++) { - const le = []; - _t(ce[K], le, q, G), O.push(le) - } - } - - function tt(ce) { - return ce / 360 + .5 - } - - function pt(ce) { - const O = Math.sin(ce * Math.PI / 180), - q = .5 - .25 * Math.log((1 + O) / (1 - O)) / Math.PI; - return q < 0 ? 0 : q > 1 ? 1 : q - } - - function It(ce, O, q, G, K, le, ve, Le) { - if (G /= O, le >= (q /= O) && ve < G) return ce; - if (ve < q || le >= G) return null; - const Ce = []; - for (const Ze of ce) { - const ot = Ze.geometry; - let Ye = Ze.type; - const Ot = K === 0 ? Ze.minX : Ze.minY, - xe = K === 0 ? Ze.maxX : Ze.maxY; - if (Ot >= q && xe < G) { - Ce.push(Ze); - continue - } - if (xe < q || Ot >= G) continue; - let At = []; - if (Ye === "Point" || Ye === "MultiPoint") ut(ot, At, q, G, K); - else if (Ye === "LineString") bt(ot, At, q, G, K, !1, Le.lineMetrics); - else if (Ye === "MultiLineString") dt(ot, At, q, G, K, !1); - else if (Ye === "Polygon") dt(ot, At, q, G, K, !0); - else if (Ye === "MultiPolygon") - for (const Pt of ot) { - const kt = []; - dt(Pt, kt, q, G, K, !0), kt.length && At.push(kt) - } - if (At.length) { - if (Le.lineMetrics && Ye === "LineString") { - for (const Pt of At) Ce.push(Me(Ze.id, Ye, Pt, Ze.tags)); - continue - } - Ye !== "LineString" && Ye !== "MultiLineString" || (At.length === 1 ? (Ye = "LineString", At = At[0]) : Ye = "MultiLineString"), Ye !== "Point" && Ye !== "MultiPoint" || (Ye = At.length === 3 ? "Point" : "MultiPoint"), Ce.push(Me(Ze.id, Ye, At, Ze.tags)) - } - } - return Ce.length ? Ce : null - } - - function ut(ce, O, q, G, K) { - for (let le = 0; le < ce.length; le += 3) { - const ve = ce[le + K]; - ve >= q && ve <= G && Lt(O, ce[le], ce[le + 1], ce[le + 2]) - } - } - - function bt(ce, O, q, G, K, le, ve) { - let Le = wt(ce); - const Ce = K === 0 ? Xt : Yt; - let Ze, ot, Ye = ce.start; - for (let kt = 0; kt < ce.length - 3; kt += 3) { - const Wt = ce[kt], - Lr = ce[kt + 1], - Kr = ce[kt + 2], - Hr = ce[kt + 3], - $r = ce[kt + 4], - mr = K === 0 ? Wt : Lr, - gr = K === 0 ? Hr : $r; - let ai = !1; - ve && (Ze = Math.sqrt(Math.pow(Wt - Hr, 2) + Math.pow(Lr - $r, 2))), mr < q ? gr > q && (ot = Ce(Le, Wt, Lr, Hr, $r, q), ve && (Le.start = Ye + Ze * ot)) : mr > G ? gr < G && (ot = Ce(Le, Wt, Lr, Hr, $r, G), ve && (Le.start = Ye + Ze * ot)) : Lt(Le, Wt, Lr, Kr), gr < q && mr >= q && (ot = Ce(Le, Wt, Lr, Hr, $r, q), ai = !0), gr > G && mr <= G && (ot = Ce(Le, Wt, Lr, Hr, $r, G), ai = !0), !le && ai && (ve && (Le.end = Ye + Ze * ot), O.push(Le), Le = wt(ce)), ve && (Ye += Ze) - } - let Ot = ce.length - 3; - const xe = ce[Ot], - At = ce[Ot + 1], - Pt = K === 0 ? xe : At; - Pt >= q && Pt <= G && Lt(Le, xe, At, ce[Ot + 2]), Ot = Le.length - 3, le && Ot >= 3 && (Le[Ot] !== Le[0] || Le[Ot + 1] !== Le[1]) && Lt(Le, Le[0], Le[1], Le[2]), Le.length && O.push(Le) - } - - function wt(ce) { - const O = []; - return O.size = ce.size, O.start = ce.start, O.end = ce.end, O - } - - function dt(ce, O, q, G, K, le) { - for (const ve of ce) bt(ve, O, q, G, K, le, !1) - } - - function Lt(ce, O, q, G) { - ce.push(O, q, G) - } - - function Xt(ce, O, q, G, K, le) { - const ve = (le - O) / (G - O); - return Lt(ce, le, q + (K - q) * ve, 1), ve - } - - function Yt(ce, O, q, G, K, le) { - const ve = (le - q) / (K - q); - return Lt(ce, O + (G - O) * ve, le, 1), ve - } - - function nr(ce, O) { - const q = []; - for (let G = 0; G < ce.length; G++) { - const K = ce[G], - le = K.type; - let ve; - if (le === "Point" || le === "MultiPoint" || le === "LineString") ve = ar(K.geometry, O); - else if (le === "MultiLineString" || le === "Polygon") { - ve = []; - for (const Le of K.geometry) ve.push(ar(Le, O)) - } else if (le === "MultiPolygon") { - ve = []; - for (const Le of K.geometry) { - const Ce = []; - for (const Ze of Le) Ce.push(ar(Ze, O)); - ve.push(Ce) - } - } - q.push(Me(K.id, le, ve, K.tags)) - } - return q - } - - function ar(ce, O) { - const q = []; - q.size = ce.size, ce.start !== void 0 && (q.start = ce.start, q.end = ce.end); - for (let G = 0; G < ce.length; G += 3) q.push(ce[G] + O, ce[G + 1], ce[G + 2]); - return q - } - - function Ft(ce, O) { - if (ce.transformed) return ce; - const q = 1 << ce.z, - G = ce.x, - K = ce.y; - for (const le of ce.features) { - const ve = le.geometry, - Le = le.type; - if (le.geometry = [], Le === 1) - for (let Ce = 0; Ce < ve.length; Ce += 2) le.geometry.push(dr(ve[Ce], ve[Ce + 1], O, q, G, K)); - else - for (let Ce = 0; Ce < ve.length; Ce++) { - const Ze = []; - for (let ot = 0; ot < ve[Ce].length; ot += 2) Ze.push(dr(ve[Ce][ot], ve[Ce][ot + 1], O, q, G, K)); - le.geometry.push(Ze) - } - } - return ce.transformed = !0, ce - } - - function dr(ce, O, q, G, K, le) { - return [Math.round(q * (ce * G - K)), Math.round(q * (O * G - le))] - } - - function _r(ce, O, q, G, K) { - const le = O === K.maxZoom ? 0 : K.tolerance / ((1 << O) * K.extent), - ve = { - features: [], - numPoints: 0, - numSimplified: 0, - numFeatures: ce.length, - source: null, - x: q, - y: G, - z: O, - transformed: !1, - minX: 2, - minY: 1, - maxX: -1, - maxY: 0 - }; - for (const Le of ce) Ir(ve, Le, le, K); - return ve - } - - function Ir(ce, O, q, G) { - const K = O.geometry, - le = O.type, - ve = []; - if (ce.minX = Math.min(ce.minX, O.minX), ce.minY = Math.min(ce.minY, O.minY), ce.maxX = Math.max(ce.maxX, O.maxX), ce.maxY = Math.max(ce.maxY, O.maxY), le === "Point" || le === "MultiPoint") - for (let Le = 0; Le < K.length; Le += 3) ve.push(K[Le], K[Le + 1]), ce.numPoints++, ce.numSimplified++; - else if (le === "LineString") jr(ve, K, ce, q, !1, !1); - else if (le === "MultiLineString" || le === "Polygon") - for (let Le = 0; Le < K.length; Le++) jr(ve, K[Le], ce, q, le === "Polygon", Le === 0); - else if (le === "MultiPolygon") - for (let Le = 0; Le < K.length; Le++) { - const Ce = K[Le]; - for (let Ze = 0; Ze < Ce.length; Ze++) jr(ve, Ce[Ze], ce, q, !0, Ze === 0) - } - if (ve.length) { - let Le = O.tags || null; - if (le === "LineString" && G.lineMetrics) { - Le = {}; - for (const Ze in O.tags) Le[Ze] = O.tags[Ze]; - Le.mapbox_clip_start = K.start / K.size, Le.mapbox_clip_end = K.end / K.size - } - const Ce = { - geometry: ve, - type: le === "Polygon" || le === "MultiPolygon" ? 3 : le === "LineString" || le === "MultiLineString" ? 2 : 1, - tags: Le - }; - O.id !== null && (Ce.id = O.id), ce.features.push(Ce) - } - } - - function jr(ce, O, q, G, K, le) { - const ve = G * G; - if (G > 0 && O.size < (K ? ve : G)) return void(q.numPoints += O.length / 3); - const Le = []; - for (let Ce = 0; Ce < O.length; Ce += 3)(G === 0 || O[Ce + 2] > ve) && (q.numSimplified++, Le.push(O[Ce], O[Ce + 1])), q.numPoints++; - K && (function(Ce, Ze) { - let ot = 0; - for (let Ye = 0, Ot = Ce.length, xe = Ot - 2; Ye < Ot; xe = Ye, Ye += 2) ot += (Ce[Ye] - Ce[xe]) * (Ce[Ye + 1] + Ce[xe + 1]); - if (ot > 0 === Ze) - for (let Ye = 0, Ot = Ce.length; Ye < Ot / 2; Ye += 2) { - const xe = Ce[Ye], - At = Ce[Ye + 1]; - Ce[Ye] = Ce[Ot - 2 - Ye], Ce[Ye + 1] = Ce[Ot - 1 - Ye], Ce[Ot - 2 - Ye] = xe, Ce[Ot - 1 - Ye] = At - } - })(Le, le), ce.push(Le) - } - const ur = { - maxZoom: 14, - indexMaxZoom: 5, - indexMaxPoints: 1e5, - tolerance: 3, - extent: 4096, - buffer: 64, - lineMetrics: !1, - promoteId: null, - generateId: !1, - debug: 0 - }; - class Mr { - constructor(O, q) { - const G = (q = this.options = (function(le, ve) { - for (const Le in ve) le[Le] = ve[Le]; - return le - })(Object.create(ur), q)).debug; - if (G && console.time("preprocess data"), q.maxZoom < 0 || q.maxZoom > 24) 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."); - let K = (function(le, ve) { - const Le = []; - if (le.type === "FeatureCollection") - for (let Ce = 0; Ce < le.features.length; Ce++) We(Le, le.features[Ce], ve, Ce); - else We(Le, le.type === "Feature" ? le : { - geometry: le - }, ve); - return Le - })(O, q); - this.tiles = {}, this.tileCoords = [], G && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", q.indexMaxZoom, q.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), K = (function(le, ve) { - const Le = ve.buffer / ve.extent; - let Ce = le; - const Ze = It(le, 1, -1 - Le, Le, 0, -1, 2, ve), - ot = It(le, 1, 1 - Le, 2 + Le, 0, -1, 2, ve); - return (Ze || ot) && (Ce = It(le, 1, -Le, 1 + Le, 0, -1, 2, ve) || [], Ze && (Ce = nr(Ze, 1).concat(Ce)), ot && (Ce = Ce.concat(nr(ot, -1)))), Ce - })(K, q), K.length && this.splitTile(K, 0, 0, 0), G && (K.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats))) - } - splitTile(O, q, G, K, le, ve, Le) { - const Ce = [O, q, G, K], - Ze = this.options, - ot = Ze.debug; - for (; Ce.length;) { - K = Ce.pop(), G = Ce.pop(), q = Ce.pop(), O = Ce.pop(); - const Ye = 1 << q, - Ot = Ar(q, G, K); - let xe = this.tiles[Ot]; - if (!xe && (ot > 1 && console.time("creation"), xe = this.tiles[Ot] = _r(O, q, G, K, Ze), this.tileCoords.push({ - z: q, - x: G, - y: K - }), ot)) { - ot > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", q, G, K, xe.numFeatures, xe.numPoints, xe.numSimplified), console.timeEnd("creation")); - const ai = `z${q}`; - this.stats[ai] = (this.stats[ai] || 0) + 1, this.total++ - } - if (xe.source = O, le == null) { - if (q === Ze.indexMaxZoom || xe.numPoints <= Ze.indexMaxPoints) continue - } else { - if (q === Ze.maxZoom || q === le) continue; - if (le != null) { - const ai = le - q; - if (G !== ve >> ai || K !== Le >> ai) continue - } - } - if (xe.source = null, O.length === 0) continue; - ot > 1 && console.time("clipping"); - const At = .5 * Ze.buffer / Ze.extent, - Pt = .5 - At, - kt = .5 + At, - Wt = 1 + At; - let Lr = null, - Kr = null, - Hr = null, - $r = null, - mr = It(O, Ye, G - At, G + kt, 0, xe.minX, xe.maxX, Ze), - gr = It(O, Ye, G + Pt, G + Wt, 0, xe.minX, xe.maxX, Ze); - O = null, mr && (Lr = It(mr, Ye, K - At, K + kt, 1, xe.minY, xe.maxY, Ze), Kr = It(mr, Ye, K + Pt, K + Wt, 1, xe.minY, xe.maxY, Ze), mr = null), gr && (Hr = It(gr, Ye, K - At, K + kt, 1, xe.minY, xe.maxY, Ze), $r = It(gr, Ye, K + Pt, K + Wt, 1, xe.minY, xe.maxY, Ze), gr = null), ot > 1 && console.timeEnd("clipping"), Ce.push(Lr || [], q + 1, 2 * G, 2 * K), Ce.push(Kr || [], q + 1, 2 * G, 2 * K + 1), Ce.push(Hr || [], q + 1, 2 * G + 1, 2 * K), Ce.push($r || [], q + 1, 2 * G + 1, 2 * K + 1) - } - } - getTile(O, q, G) { - O = +O, q = +q, G = +G; - const K = this.options, - { - extent: le, - debug: ve - } = K; - if (O < 0 || O > 24) return null; - const Le = 1 << O, - Ce = Ar(O, q = q + Le & Le - 1, G); - if (this.tiles[Ce]) return Ft(this.tiles[Ce], le); - ve > 1 && console.log("drilling down to z%d-%d-%d", O, q, G); - let Ze, ot = O, - Ye = q, - Ot = G; - for (; !Ze && ot > 0;) ot--, Ye >>= 1, Ot >>= 1, Ze = this.tiles[Ar(ot, Ye, Ot)]; - return Ze && Ze.source ? (ve > 1 && (console.log("found parent tile z%d-%d-%d", ot, Ye, Ot), console.time("drilling down")), this.splitTile(Ze.source, ot, Ye, Ot, O, q, G), ve > 1 && console.timeEnd("drilling down"), this.tiles[Ce] ? Ft(this.tiles[Ce], le) : null) : null - } - } - - function Ar(ce, O, q) { - return 32 * ((1 << ce) * q + O) + ce - } - class kr extends pe { - constructor() { - super(...arguments), this._dataUpdateable = new Map - } - loadVectorTile(O, q) { - return T._(this, void 0, void 0, (function*() { - const G = O.tileID.canonical; - if (!this._geoJSONIndex) throw new Error("Unable to parse the data into a cluster or geojson"); - const K = this._geoJSONIndex.getTile(G.z, G.x, G.y); - if (!K) return null; - const le = new Oe(K.features, { - version: 2, - extent: T.$ - }); - let ve = (function(Le) { - const Ce = new T.cM; - return (function(Ze, ot) { - for (const Ye in Ze.layers) ot.writeMessage(3, Ee, Ze.layers[Ye]) - })(Le, Ce), Ce.finish() - })(le); - return ve.byteOffset === 0 && ve.byteLength === ve.buffer.byteLength || (ve = new Uint8Array(ve)), { - vectorTile: le, - rawData: ve.buffer - } - })) - } - loadData(O) { - return T._(this, void 0, void 0, (function*() { - var q; - (q = this._pendingRequest) === null || q === void 0 || q.abort(); - const G = !!(O && O.request && O.request.collectResourceTiming) && new T.cN(O.request); - this._pendingRequest = new AbortController; - try { - this._pendingData = this.loadAndProcessGeoJSON(O, this._pendingRequest); - const K = yield this._pendingData; - this._geoJSONIndex = O.cluster ? new Qe((function({ - superclusterOptions: ve, - clusterProperties: Le - }) { - if (!Le || !ve) return ve; - const Ce = {}, - Ze = {}, - ot = { - accumulated: null, - zoom: 0 - }, - Ye = { - properties: null - }, - Ot = Object.keys(Le); - for (const xe of Ot) { - const [At, Pt] = Le[xe], kt = T.cT(Pt), Wt = T.cT(typeof At == "string" ? [At, ["accumulated"], - ["get", xe] - ] : At); - Ce[xe] = kt.value, Ze[xe] = Wt.value - } - return ve.map = xe => { - Ye.properties = xe; - const At = {}; - for (const Pt of Ot) At[Pt] = Ce[Pt].evaluate(ot, Ye); - return At - }, ve.reduce = (xe, At) => { - Ye.properties = At; - for (const Pt of Ot) ot.accumulated = xe[Pt], xe[Pt] = Ze[Pt].evaluate(ot, Ye) - }, ve - })(O)).load(K.features) : (function(ve, Le) { - return new Mr(ve, Le) - })(K, O.geojsonVtOptions), this.loaded = {}; - const le = { - data: K - }; - if (G) { - const ve = G.finish(); - ve && (le.resourceTiming = {}, le.resourceTiming[O.source] = JSON.parse(JSON.stringify(ve))) - } - return le - } catch (K) { - if (delete this._pendingRequest, T.cy(K)) return { - abandoned: !0 - }; - throw K - } - })) - } - getData() { - return T._(this, void 0, void 0, (function*() { - return this._pendingData - })) - } - reloadTile(O) { - const q = this.loaded; - return q && q[O.uid] ? super.reloadTile(O) : this.loadTile(O) - } - loadAndProcessGeoJSON(O, q) { - return T._(this, void 0, void 0, (function*() { - let G = yield this.loadGeoJSON(O, q); - if (delete this._pendingRequest, typeof G != "object") throw new Error(`Input data given to '${O.source}' is not a valid GeoJSON object.`); - if (Re(G, !0), O.filter) { - const K = T.cT(O.filter, { - type: "boolean", - "property-type": "data-driven", - overridable: !1, - transition: !1 - }); - if (K.result === "error") throw new Error(K.value.map((ve => `${ve.key}: ${ve.message}`)).join(", ")); - G = { - type: "FeatureCollection", - features: G.features.filter((ve => K.value.evaluate({ - zoom: 0 - }, ve))) - } - } - return G - })) - } - loadGeoJSON(O, q) { - return T._(this, void 0, void 0, (function*() { - const { - promoteId: G - } = O; - if (O.request) { - const K = yield T.j(O.request, q); - return this._dataUpdateable = T.cV(K.data, G) ? T.cU(K.data, G) : void 0, K.data - } - if (typeof O.data == "string") try { - const K = JSON.parse(O.data); - return this._dataUpdateable = T.cV(K, G) ? T.cU(K, G) : void 0, K - } catch { - throw new Error(`Input data given to '${O.source}' is not a valid GeoJSON object.`) - } - if (!O.dataDiff) throw new Error(`Input data given to '${O.source}' is not a valid GeoJSON object.`); - if (!this._dataUpdateable) throw new Error(`Cannot update existing geojson data in ${O.source}`); - return T.cW(this._dataUpdateable, O.dataDiff, G), { - type: "FeatureCollection", - features: Array.from(this._dataUpdateable.values()) - } - })) - } - removeSource(O) { - return T._(this, void 0, void 0, (function*() { - this._pendingRequest && this._pendingRequest.abort() - })) - } - getClusterExpansionZoom(O) { - return this._geoJSONIndex.getClusterExpansionZoom(O.clusterId) - } - getClusterChildren(O) { - return this._geoJSONIndex.getChildren(O.clusterId) - } - getClusterLeaves(O) { - return this._geoJSONIndex.getLeaves(O.clusterId, O.limit, O.offset) - } - } - class Nr { - constructor(O) { - this.self = O, this.actor = new T.J(O), this.layerIndexes = {}, this.availableImages = {}, this.workerSources = {}, this.demWorkerSources = {}, this.externalWorkerSourceTypes = {}, this.self.registerWorkerSource = (q, G) => { - if (this.externalWorkerSourceTypes[q]) throw new Error(`Worker source with name "${q}" already registered.`); - this.externalWorkerSourceTypes[q] = G - }, this.self.addProtocol = T.cA, this.self.removeProtocol = T.cB, this.self.registerRTLTextPlugin = q => { - T.cX.setMethods(q) - }, this.actor.registerMessageHandler("LDT", ((q, G) => this._getDEMWorkerSource(q, G.source).loadTile(G))), this.actor.registerMessageHandler("RDT", ((q, G) => T._(this, void 0, void 0, (function*() { - this._getDEMWorkerSource(q, G.source).removeTile(G) - })))), this.actor.registerMessageHandler("GCEZ", ((q, G) => T._(this, void 0, void 0, (function*() { - return this._getWorkerSource(q, G.type, G.source).getClusterExpansionZoom(G) - })))), this.actor.registerMessageHandler("GCC", ((q, G) => T._(this, void 0, void 0, (function*() { - return this._getWorkerSource(q, G.type, G.source).getClusterChildren(G) - })))), this.actor.registerMessageHandler("GCL", ((q, G) => T._(this, void 0, void 0, (function*() { - return this._getWorkerSource(q, G.type, G.source).getClusterLeaves(G) - })))), this.actor.registerMessageHandler("LD", ((q, G) => this._getWorkerSource(q, G.type, G.source).loadData(G))), this.actor.registerMessageHandler("GD", ((q, G) => this._getWorkerSource(q, G.type, G.source).getData())), this.actor.registerMessageHandler("LT", ((q, G) => this._getWorkerSource(q, G.type, G.source).loadTile(G))), this.actor.registerMessageHandler("RT", ((q, G) => this._getWorkerSource(q, G.type, G.source).reloadTile(G))), this.actor.registerMessageHandler("AT", ((q, G) => this._getWorkerSource(q, G.type, G.source).abortTile(G))), this.actor.registerMessageHandler("RMT", ((q, G) => this._getWorkerSource(q, G.type, G.source).removeTile(G))), this.actor.registerMessageHandler("RS", ((q, G) => T._(this, void 0, void 0, (function*() { - if (!this.workerSources[q] || !this.workerSources[q][G.type] || !this.workerSources[q][G.type][G.source]) return; - const K = this.workerSources[q][G.type][G.source]; - delete this.workerSources[q][G.type][G.source], K.removeSource !== void 0 && K.removeSource(G) - })))), this.actor.registerMessageHandler("RM", (q => T._(this, void 0, void 0, (function*() { - delete this.layerIndexes[q], delete this.availableImages[q], delete this.workerSources[q], delete this.demWorkerSources[q] - })))), this.actor.registerMessageHandler("SR", ((q, G) => T._(this, void 0, void 0, (function*() { - this.referrer = G - })))), this.actor.registerMessageHandler("SRPS", ((q, G) => this._syncRTLPluginState(q, G))), this.actor.registerMessageHandler("IS", ((q, G) => T._(this, void 0, void 0, (function*() { - this.self.importScripts(G) - })))), this.actor.registerMessageHandler("SI", ((q, G) => this._setImages(q, G))), this.actor.registerMessageHandler("UL", ((q, G) => T._(this, void 0, void 0, (function*() { - this._getLayerIndex(q).update(G.layers, G.removedIds) - })))), this.actor.registerMessageHandler("SL", ((q, G) => T._(this, void 0, void 0, (function*() { - this._getLayerIndex(q).replace(G) - })))) - } - _setImages(O, q) { - return T._(this, void 0, void 0, (function*() { - this.availableImages[O] = q; - for (const G in this.workerSources[O]) { - const K = this.workerSources[O][G]; - for (const le in K) K[le].availableImages = q - } - })) - } - _syncRTLPluginState(O, q) { - return T._(this, void 0, void 0, (function*() { - return yield T.cX.syncState(q, this.self.importScripts) - })) - } - _getAvailableImages(O) { - let q = this.availableImages[O]; - return q || (q = []), q - } - _getLayerIndex(O) { - let q = this.layerIndexes[O]; - return q || (q = this.layerIndexes[O] = new o), q - } - _getWorkerSource(O, q, G) { - if (this.workerSources[O] || (this.workerSources[O] = {}), this.workerSources[O][q] || (this.workerSources[O][q] = {}), !this.workerSources[O][q][G]) { - const K = { - sendAsync: (le, ve) => (le.targetMapId = O, this.actor.sendAsync(le, ve)) - }; - switch (q) { - case "vector": - this.workerSources[O][q][G] = new pe(K, this._getLayerIndex(O), this._getAvailableImages(O)); - break; - case "geojson": - this.workerSources[O][q][G] = new kr(K, this._getLayerIndex(O), this._getAvailableImages(O)); - break; - default: - this.workerSources[O][q][G] = new this.externalWorkerSourceTypes[q](K, this._getLayerIndex(O), this._getAvailableImages(O)) - } - } - return this.workerSources[O][q][G] - } - _getDEMWorkerSource(O, q) { - return this.demWorkerSources[O] || (this.demWorkerSources[O] = {}), this.demWorkerSources[O][q] || (this.demWorkerSources[O][q] = new ye), this.demWorkerSources[O][q] - } - } - return T.i(self) && (self.worker = new Nr(self)), Nr - })), L("index", ["exports", "./shared"], (function(T, o) { - var $ = "5.6.2"; - - function W() { - var h = new o.A(4); - return o.A != Float32Array && (h[1] = 0, h[2] = 0), h[0] = 1, h[3] = 1, h - } - let ie, pe; - const ye = { - now: typeof performance < "u" && performance && performance.now ? performance.now.bind(performance) : Date.now.bind(Date), - frame(h, e, n) { - const s = requestAnimationFrame((d => { - u(), e(d) - })), - { - unsubscribe: u - } = o.s(h.signal, "abort", (() => { - u(), cancelAnimationFrame(s), n(o.c()) - }), !1) - }, - frameAsync(h) { - return new Promise(((e, n) => { - this.frame(h, e, n) - })) - }, - getImageData(h, e = 0) { - return this.getImageCanvasContext(h).getImageData(-e, -e, h.width + 2 * e, h.height + 2 * e) - }, - getImageCanvasContext(h) { - const e = window.document.createElement("canvas"), - n = e.getContext("2d", { - willReadFrequently: !0 - }); - if (!n) throw new Error("failed to create canvas 2d context"); - return e.width = h.width, e.height = h.height, n.drawImage(h, 0, 0, h.width, h.height), n - }, - resolveURL: h => (ie || (ie = document.createElement("a")), ie.href = h, ie.href), - hardwareConcurrency: typeof navigator < "u" && navigator.hardwareConcurrency || 4, - get prefersReducedMotion() { - return !!matchMedia && (pe == null && (pe = matchMedia("(prefers-reduced-motion: reduce)")), pe.matches) - } - }; - class X { - static testProp(e) { - if (!X.docStyle) return e[0]; - for (let n = 0; n < e.length; n++) - if (e[n] in X.docStyle) return e[n]; - return e[0] - } - static create(e, n, s) { - const u = window.document.createElement(e); - return n !== void 0 && (u.className = n), s && s.appendChild(u), u - } - static createNS(e, n) { - return window.document.createElementNS(e, n) - } - static disableDrag() { - X.docStyle && X.selectProp && (X.userSelect = X.docStyle[X.selectProp], X.docStyle[X.selectProp] = "none") - } - static enableDrag() { - X.docStyle && X.selectProp && (X.docStyle[X.selectProp] = X.userSelect) - } - static setTransform(e, n) { - e.style[X.transformProp] = n - } - static addEventListener(e, n, s, u = {}) { - e.addEventListener(n, s, "passive" in u ? u : u.capture) - } - static removeEventListener(e, n, s, u = {}) { - e.removeEventListener(n, s, "passive" in u ? u : u.capture) - } - static suppressClickInternal(e) { - e.preventDefault(), e.stopPropagation(), window.removeEventListener("click", X.suppressClickInternal, !0) - } - static suppressClick() { - window.addEventListener("click", X.suppressClickInternal, !0), window.setTimeout((() => { - window.removeEventListener("click", X.suppressClickInternal, !0) - }), 0) - } - static getScale(e) { - const n = e.getBoundingClientRect(); - return { - x: n.width / e.offsetWidth || 1, - y: n.height / e.offsetHeight || 1, - boundingClientRect: n - } - } - static getPoint(e, n, s) { - const u = n.boundingClientRect; - return new o.P((s.clientX - u.left) / n.x - e.clientLeft, (s.clientY - u.top) / n.y - e.clientTop) - } - static mousePos(e, n) { - const s = X.getScale(e); - return X.getPoint(e, s, n) - } - static touchPos(e, n) { - const s = [], - u = X.getScale(e); - for (let d = 0; d < n.length; d++) s.push(X.getPoint(e, u, n[d])); - return s - } - static mouseButton(e) { - return e.button - } - static remove(e) { - e.parentNode && e.parentNode.removeChild(e) - } - static sanitize(e) { - const n = new DOMParser().parseFromString(e, "text/html").body || document.createElement("body"), - s = n.querySelectorAll("script"); - for (const u of s) u.remove(); - return X.clean(n), n.innerHTML - } - static isPossiblyDangerous(e, n) { - const s = n.replace(/\s+/g, "").toLowerCase(); - return !(!["src", "href", "xlink:href"].includes(e) || !s.includes("javascript:") && !s.includes("data:")) || !!e.startsWith("on") || void 0 - } - static clean(e) { - const n = e.children; - for (const s of n) X.removeAttributes(s), X.clean(s) - } - static removeAttributes(e) { - for (const { - name: n, - value: s - } - of e.attributes) X.isPossiblyDangerous(n, s) && e.removeAttribute(n) - } - } - X.docStyle = typeof window < "u" && window.document && window.document.documentElement.style, X.selectProp = X.testProp(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]), X.transformProp = X.testProp(["transform", "WebkitTransform"]); - const Se = { - supported: !1, - testSupport: function(h) { - !Ae && Re && (Oe ? Ee(h) : we = h) - } - }; - let we, Re, Ae = !1, - Oe = !1; - - function Ee(h) { - const e = h.createTexture(); - h.bindTexture(h.TEXTURE_2D, e); - try { - if (h.texImage2D(h.TEXTURE_2D, 0, h.RGBA, h.RGBA, h.UNSIGNED_BYTE, Re), h.isContextLost()) return; - Se.supported = !0 - } catch {} - h.deleteTexture(e), Ae = !0 - } - var Ne; - typeof document < "u" && (Re = document.createElement("img"), Re.onload = () => { - we && Ee(we), we = null, Oe = !0 - }, Re.onerror = () => { - Ae = !0, we = null - }, Re.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="), (function(h) { - let e, n, s, u; - h.resetRequestQueue = () => { - e = [], n = 0, s = 0, u = {} - }, h.addThrottleControl = w => { - const P = s++; - return u[P] = w, P - }, h.removeThrottleControl = w => { - delete u[w], m() - }, h.getImage = (w, P, M = !0) => new Promise(((D, z) => { - Se.supported && (w.headers || (w.headers = {}), w.headers.accept = "image/webp,*/*"), o.e(w, { - type: "image" - }), e.push({ - abortController: P, - requestParameters: w, - supportImageRefresh: M, - state: "queued", - onError: B => { - z(B) - }, - onSuccess: B => { - D(B) - } - }), m() - })); - const d = w => o._(this, void 0, void 0, (function*() { - w.state = "running"; - const { - requestParameters: P, - supportImageRefresh: M, - onError: D, - onSuccess: z, - abortController: B - } = w, U = M === !1 && !o.i(self) && !o.g(P.url) && (!P.headers || Object.keys(P.headers).reduce(((re, se) => re && se === "accept"), !0)); - n++; - const ee = U ? y(P, B) : o.m(P, B); - try { - const re = yield ee; - delete w.abortController, w.state = "completed", re.data instanceof HTMLImageElement || o.b(re.data) ? z(re) : re.data && z({ - data: yield(J = re.data, typeof createImageBitmap == "function" ? o.f(J) : o.h(J)), - cacheControl: re.cacheControl, - expires: re.expires - }) - } catch (re) { - delete w.abortController, D(re) - } finally { - n--, m() - } - var J - })), - m = () => { - const w = (() => { - for (const P of Object.keys(u)) - if (u[P]()) return !0; - return !1 - })() ? o.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME : o.a.MAX_PARALLEL_IMAGE_REQUESTS; - for (let P = n; P < w && e.length > 0; P++) { - const M = e.shift(); - M.abortController.signal.aborted ? P-- : d(M) - } - }, - y = (w, P) => new Promise(((M, D) => { - const z = new Image, - B = w.url, - U = w.credentials; - U && U === "include" ? z.crossOrigin = "use-credentials" : (U && U === "same-origin" || !o.d(B)) && (z.crossOrigin = "anonymous"), P.signal.addEventListener("abort", (() => { - z.src = "", D(o.c()) - })), z.fetchPriority = "high", z.onload = () => { - z.onerror = z.onload = null, M({ - data: z - }) - }, z.onerror = () => { - z.onerror = z.onload = null, P.signal.aborted || D(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.")) - }, z.src = B - })) - })(Ne || (Ne = {})), Ne.resetRequestQueue(); - class ft { - constructor(e) { - this._transformRequestFn = e ?? null - } - transformRequest(e, n) { - return this._transformRequestFn && this._transformRequestFn(e, n) || { - url: e - } - } - setTransformRequest(e) { - this._transformRequestFn = e - } - } - - function ht(h) { - const e = []; - if (typeof h == "string") e.push({ - id: "default", - url: h - }); - else if (h && h.length > 0) { - const n = []; - for (const { - id: s, - url: u - } - of h) { - const d = `${s}${u}`; - n.indexOf(d) === -1 && (n.push(d), e.push({ - id: s, - url: u - })) - } - } - return e - } - - function Xe(h, e, n) { - try { - const s = new URL(h); - return s.pathname += `${e}${n}`, s.toString() - } catch { - throw new Error(`Invalid sprite URL "${h}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`) - } - } - - function ct(h) { - const { - userImage: e - } = h; - return !!(e && e.render && e.render()) && (h.data.replace(new Uint8Array(e.data.buffer)), !0) - } - class Je extends o.E { - constructor() { - super(), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = !1, this.requestors = [], this.patterns = {}, this.atlasImage = new o.R({ - width: 1, - height: 1 - }), this.dirty = !0 - } - isLoaded() { - return this.loaded - } - setLoaded(e) { - if (this.loaded !== e && (this.loaded = e, e)) { - for (const { - ids: n, - promiseResolve: s - } - of this.requestors) s(this._getImagesForIds(n)); - this.requestors = [] - } - } - getImage(e) { - const n = this.images[e]; - if (n && !n.data && n.spriteData) { - const s = n.spriteData; - n.data = new o.R({ - width: s.width, - height: s.height - }, s.context.getImageData(s.x, s.y, s.width, s.height).data), n.spriteData = null - } - return n - } - addImage(e, n) { - if (this.images[e]) throw new Error(`Image id ${e} already exist, use updateImage instead`); - this._validate(e, n) && (this.images[e] = n) - } - _validate(e, n) { - let s = !0; - const u = n.data || n.spriteData; - return this._validateStretch(n.stretchX, u && u.width) || (this.fire(new o.k(new Error(`Image "${e}" has invalid "stretchX" value`))), s = !1), this._validateStretch(n.stretchY, u && u.height) || (this.fire(new o.k(new Error(`Image "${e}" has invalid "stretchY" value`))), s = !1), this._validateContent(n.content, n) || (this.fire(new o.k(new Error(`Image "${e}" has invalid "content" value`))), s = !1), s - } - _validateStretch(e, n) { - if (!e) return !0; - let s = 0; - for (const u of e) { - if (u[0] < s || u[1] < u[0] || n < u[1]) return !1; - s = u[1] - } - return !0 - } - _validateContent(e, n) { - if (!e) return !0; - if (e.length !== 4) return !1; - const s = n.spriteData, - u = s && s.width || n.data.width, - d = s && s.height || n.data.height; - return !(e[0] < 0 || u < e[0] || e[1] < 0 || d < e[1] || e[2] < 0 || u < e[2] || e[3] < 0 || d < e[3] || e[2] < e[0] || e[3] < e[1]) - } - updateImage(e, n, s = !0) { - const u = this.getImage(e); - if (s && (u.data.width !== n.data.width || u.data.height !== n.data.height)) throw new Error(`size mismatch between old image (${u.data.width}x${u.data.height}) and new image (${n.data.width}x${n.data.height}).`); - n.version = u.version + 1, this.images[e] = n, this.updatedImages[e] = !0 - } - removeImage(e) { - const n = this.images[e]; - delete this.images[e], delete this.patterns[e], n.userImage && n.userImage.onRemove && n.userImage.onRemove() - } - listImages() { - return Object.keys(this.images) - } - getImages(e) { - return new Promise(((n, s) => { - let u = !0; - if (!this.isLoaded()) - for (const d of e) this.images[d] || (u = !1); - this.isLoaded() || u ? n(this._getImagesForIds(e)) : this.requestors.push({ - ids: e, - promiseResolve: n - }) - })) - } - _getImagesForIds(e) { - const n = {}; - for (const s of e) { - let u = this.getImage(s); - u || (this.fire(new o.l("styleimagemissing", { - id: s - })), u = this.getImage(s)), u ? n[s] = { - data: u.data.clone(), - pixelRatio: u.pixelRatio, - sdf: u.sdf, - version: u.version, - stretchX: u.stretchX, - stretchY: u.stretchY, - content: u.content, - textFitWidth: u.textFitWidth, - textFitHeight: u.textFitHeight, - hasRenderCallback: !!(u.userImage && u.userImage.render) - } : o.w(`Image "${s}" 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 n - } - getPixelSize() { - const { - width: e, - height: n - } = this.atlasImage; - return { - width: e, - height: n - } - } - getPattern(e) { - const n = this.patterns[e], - s = this.getImage(e); - if (!s) return null; - if (n && n.position.version === s.version) return n.position; - if (n) n.position.version = s.version; - else { - const u = { - w: s.data.width + 2, - h: s.data.height + 2, - x: 0, - y: 0 - }, - d = new o.I(u, s); - this.patterns[e] = { - bin: u, - position: d - } - } - return this._updatePatternAtlas(), this.patterns[e].position - } - bind(e) { - const n = e.gl; - this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = !1) : this.atlasTexture = new o.T(e, this.atlasImage, n.RGBA), this.atlasTexture.bind(n.LINEAR, n.CLAMP_TO_EDGE) - } - _updatePatternAtlas() { - const e = []; - for (const d in this.patterns) e.push(this.patterns[d].bin); - const { - w: n, - h: s - } = o.p(e), u = this.atlasImage; - u.resize({ - width: n || 1, - height: s || 1 - }); - for (const d in this.patterns) { - const { - bin: m - } = this.patterns[d], y = m.x + 1, w = m.y + 1, P = this.getImage(d).data, M = P.width, D = P.height; - o.R.copy(P, u, { - x: 0, - y: 0 - }, { - x: y, - y: w - }, { - width: M, - height: D - }), o.R.copy(P, u, { - x: 0, - y: D - 1 - }, { - x: y, - y: w - 1 - }, { - width: M, - height: 1 - }), o.R.copy(P, u, { - x: 0, - y: 0 - }, { - x: y, - y: w + D - }, { - width: M, - height: 1 - }), o.R.copy(P, u, { - x: M - 1, - y: 0 - }, { - x: y - 1, - y: w - }, { - width: 1, - height: D - }), o.R.copy(P, u, { - x: 0, - y: 0 - }, { - x: y + M, - y: w - }, { - width: 1, - height: D - }) - } - this.dirty = !0 - } - beginFrame() { - this.callbackDispatchedThisFrame = {} - } - dispatchRenderCallbacks(e) { - for (const n of e) { - if (this.callbackDispatchedThisFrame[n]) continue; - this.callbackDispatchedThisFrame[n] = !0; - const s = this.getImage(n); - s || o.w(`Image with ID: "${n}" was not found`), ct(s) && this.updateImage(n, s) - } - } - } - const Be = 1e20; - - function st(h, e, n, s, u, d, m, y, w) { - for (let P = e; P < e + s; P++) it(h, n * d + P, d, u, m, y, w); - for (let P = n; P < n + u; P++) it(h, P * d + e, 1, s, m, y, w) - } - - function it(h, e, n, s, u, d, m) { - d[0] = 0, m[0] = -Be, m[1] = Be, u[0] = h[e]; - for (let y = 1, w = 0, P = 0; y < s; y++) { - u[y] = h[e + y * n]; - const M = y * y; - do { - const D = d[w]; - P = (u[y] - u[D] + M - D * D) / (y - D) / 2 - } while (P <= m[w] && --w > -1); - w++, d[w] = y, m[w] = P, m[w + 1] = Be - } - for (let y = 0, w = 0; y < s; y++) { - for (; m[w + 1] < y;) w++; - const P = d[w], - M = y - P; - h[e + y * n] = u[P] + M * M - } - } - class Qe { - constructor(e, n) { - this.requestManager = e, this.localIdeographFontFamily = n, this.entries = {} - } - setURL(e) { - this.url = e - } - getGlyphs(e) { - return o._(this, void 0, void 0, (function*() { - const n = []; - for (const d in e) - for (const m of e[d]) n.push(this._getAndCacheGlyphsPromise(d, m)); - const s = yield Promise.all(n), u = {}; - for (const { - stack: d, - id: m, - glyph: y - } - of s) u[d] || (u[d] = {}), u[d][m] = y && { - id: y.id, - bitmap: y.bitmap.clone(), - metrics: y.metrics - }; - return u - })) - } - _getAndCacheGlyphsPromise(e, n) { - return o._(this, void 0, void 0, (function*() { - let s = this.entries[e]; - s || (s = this.entries[e] = { - glyphs: {}, - requests: {}, - ranges: {} - }); - let u = s.glyphs[n]; - if (u !== void 0) return { - stack: e, - id: n, - glyph: u - }; - if (u = this._tinySDF(s, e, n), u) return s.glyphs[n] = u, { - stack: e, - id: n, - glyph: u - }; - const d = Math.floor(n / 256); - if (256 * d > 65535) throw new Error("glyphs > 65535 not supported"); - if (s.ranges[d]) return { - stack: e, - id: n, - glyph: u - }; - if (!this.url) throw new Error("glyphsUrl is not set"); - if (!s.requests[d]) { - const y = Qe.loadGlyphRange(e, d, this.url, this.requestManager); - s.requests[d] = y - } - const m = yield s.requests[d]; - for (const y in m) this._doesCharSupportLocalGlyph(+y) || (s.glyphs[+y] = m[+y]); - return s.ranges[d] = !0, { - stack: e, - id: n, - glyph: m[n] || null - } - })) - } - _doesCharSupportLocalGlyph(e) { - return !!this.localIdeographFontFamily && (new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}", "u").test(String.fromCodePoint(e)) || o.u["CJK Unified Ideographs"](e) || o.u["Hangul Syllables"](e) || o.u.Hiragana(e) || o.u.Katakana(e) || o.u["CJK Symbols and Punctuation"](e) || o.u["Halfwidth and Fullwidth Forms"](e)) - } - _tinySDF(e, n, s) { - const u = this.localIdeographFontFamily; - if (!u || !this._doesCharSupportLocalGlyph(s)) return; - let d = e.tinySDF; - if (!d) { - let y = "400"; - /bold/i.test(n) ? y = "900" : /medium/i.test(n) ? y = "500" : /light/i.test(n) && (y = "200"), d = e.tinySDF = new Qe.TinySDF({ - fontSize: 48, - buffer: 6, - radius: 16, - cutoff: .25, - fontFamily: u, - fontWeight: y - }) - } - const m = d.draw(String.fromCharCode(s)); - return { - id: s, - bitmap: new o.q({ - width: m.width || 60, - height: m.height || 60 - }, m.data), - metrics: { - width: m.glyphWidth / 2 || 24, - height: m.glyphHeight / 2 || 24, - left: m.glyphLeft / 2 + .5 || 0, - top: m.glyphTop / 2 - 27.5 || -8, - advance: m.glyphAdvance / 2 || 24, - isDoubleResolution: !0 - } - } - } - } - Qe.loadGlyphRange = function(h, e, n, s) { - return o._(this, void 0, void 0, (function*() { - const u = 256 * e, - d = u + 255, - m = s.transformRequest(n.replace("{fontstack}", h).replace("{range}", `${u}-${d}`), "Glyphs"), - y = yield o.n(m, new AbortController); - if (!y || !y.data) throw new Error(`Could not load glyph range. range: ${e}, ${u}-${d}`); - const w = {}; - for (const P of o.o(y.data)) w[P.id] = P; - return w - })) - }, Qe.TinySDF = class { - constructor({ - fontSize: h = 24, - buffer: e = 3, - radius: n = 8, - cutoff: s = .25, - fontFamily: u = "sans-serif", - fontWeight: d = "normal", - fontStyle: m = "normal", - lang: y = null - } = {}) { - this.buffer = e, this.cutoff = s, this.radius = n, this.lang = y; - const w = this.size = h + 4 * e, - P = this._createCanvas(w), - M = this.ctx = P.getContext("2d", { - willReadFrequently: !0 - }); - M.font = `${m} ${d} ${h}px ${u}`, M.textBaseline = "alphabetic", M.textAlign = "left", M.fillStyle = "black", this.gridOuter = new Float64Array(w * w), this.gridInner = new Float64Array(w * w), this.f = new Float64Array(w), this.z = new Float64Array(w + 1), this.v = new Uint16Array(w) - } - _createCanvas(h) { - const e = document.createElement("canvas"); - return e.width = e.height = h, e - } - draw(h) { - const { - width: e, - actualBoundingBoxAscent: n, - actualBoundingBoxDescent: s, - actualBoundingBoxLeft: u, - actualBoundingBoxRight: d - } = this.ctx.measureText(h), m = Math.ceil(n), y = Math.max(0, Math.min(this.size - this.buffer, Math.ceil(d - u))), w = Math.min(this.size - this.buffer, m + Math.ceil(s)), P = y + 2 * this.buffer, M = w + 2 * this.buffer, D = Math.max(P * M, 0), z = new Uint8ClampedArray(D), B = { - data: z, - width: P, - height: M, - glyphWidth: y, - glyphHeight: w, - glyphTop: m, - glyphLeft: 0, - glyphAdvance: e - }; - if (y === 0 || w === 0) return B; - const { - ctx: U, - buffer: ee, - gridInner: J, - gridOuter: re - } = this; - this.lang && (U.lang = this.lang), U.clearRect(ee, ee, y, w), U.fillText(h, ee, ee + m); - const se = U.getImageData(ee, ee, y, w); - re.fill(Be, 0, D), J.fill(0, 0, D); - for (let de = 0; de < w; de++) - for (let ue = 0; ue < y; ue++) { - const ge = se.data[4 * (de * y + ue) + 3] / 255; - if (ge === 0) continue; - const Te = (de + ee) * P + ue + ee; - if (ge === 1) re[Te] = 0, J[Te] = Be; - else { - const he = .5 - ge; - re[Te] = he > 0 ? he * he : 0, J[Te] = he < 0 ? he * he : 0 - } - } - st(re, 0, 0, P, M, P, this.f, this.v, this.z), st(J, ee, ee, y, w, P, this.f, this.v, this.z); - for (let de = 0; de < D; de++) { - const ue = Math.sqrt(re[de]) - Math.sqrt(J[de]); - z[de] = Math.round(255 - 255 * (ue / this.radius + this.cutoff)) - } - return B - } - }; - class ke { - constructor() { - this.specification = o.v.light.position - } - possiblyEvaluate(e, n) { - return o.B(e.expression.evaluate(n)) - } - interpolate(e, n, s) { - return { - x: o.C.number(e.x, n.x, s), - y: o.C.number(e.y, n.y, s), - z: o.C.number(e.z, n.z, s) - } - } - } - let vt; - class Q extends o.E { - constructor(e) { - super(), vt = vt || new o.r({ - anchor: new o.D(o.v.light.anchor), - position: new ke, - color: new o.D(o.v.light.color), - intensity: new o.D(o.v.light.intensity) - }), this._transitionable = new o.t(vt), this.setLight(e), this._transitioning = this._transitionable.untransitioned() - } - getLight() { - return this._transitionable.serialize() - } - setLight(e, n = {}) { - if (!this._validate(o.x, e, n)) - for (const s in e) { - const u = e[s]; - s.endsWith("-transition") ? this._transitionable.setTransition(s.slice(0, -11), u) : this._transitionable.setValue(s, u) - } - } - updateTransitions(e) { - this._transitioning = this._transitionable.transitioned(e, this._transitioning) - } - hasTransition() { - return this._transitioning.hasTransition() - } - recalculate(e) { - this.properties = this._transitioning.possiblyEvaluate(e) - } - _validate(e, n, s) { - return (!s || s.validate !== !1) && o.y(this, e.call(o.z, { - value: n, - style: { - glyphs: !0, - sprite: !0 - }, - styleSpec: o.v - })) - } - } - const te = new o.r({ - "sky-color": new o.D(o.v.sky["sky-color"]), - "horizon-color": new o.D(o.v.sky["horizon-color"]), - "fog-color": new o.D(o.v.sky["fog-color"]), - "fog-ground-blend": new o.D(o.v.sky["fog-ground-blend"]), - "horizon-fog-blend": new o.D(o.v.sky["horizon-fog-blend"]), - "sky-horizon-blend": new o.D(o.v.sky["sky-horizon-blend"]), - "atmosphere-blend": new o.D(o.v.sky["atmosphere-blend"]) - }); - class _e extends o.E { - constructor(e) { - super(), this._transitionable = new o.t(te), this.setSky(e), this._transitioning = this._transitionable.untransitioned(), this.recalculate(new o.F(0)) - } - setSky(e, n = {}) { - if (!this._validate(o.G, e, n)) { - e || (e = { - "sky-color": "transparent", - "horizon-color": "transparent", - "fog-color": "transparent", - "fog-ground-blend": 1, - "atmosphere-blend": 0 - }); - for (const s in e) { - const u = e[s]; - s.endsWith("-transition") ? this._transitionable.setTransition(s.slice(0, -11), u) : this._transitionable.setValue(s, u) - } - } - } - getSky() { - return this._transitionable.serialize() - } - updateTransitions(e) { - this._transitioning = this._transitionable.transitioned(e, this._transitioning) - } - hasTransition() { - return this._transitioning.hasTransition() - } - recalculate(e) { - this.properties = this._transitioning.possiblyEvaluate(e) - } - _validate(e, n, s = {}) { - return (s == null ? void 0 : s.validate) !== !1 && o.y(this, e.call(o.z, o.e({ - value: n, - style: { - glyphs: !0, - sprite: !0 - }, - styleSpec: o.v - }))) - } - calculateFogBlendOpacity(e) { - return e < 60 ? 0 : e < 70 ? (e - 60) / 10 : 1 - } - } - class ne { - constructor(e, n) { - this.width = e, this.height = n, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {} - } - getDash(e, n) { - const s = e.join(",") + String(n); - return this.dashEntry[s] || (this.dashEntry[s] = this.addDash(e, n)), this.dashEntry[s] - } - getDashRanges(e, n, s) { - const u = []; - let d = e.length % 2 == 1 ? -e[e.length - 1] * s : 0, - m = e[0] * s, - y = !0; - u.push({ - left: d, - right: m, - isDash: y, - zeroLength: e[0] === 0 - }); - let w = e[0]; - for (let P = 1; P < e.length; P++) { - y = !y; - const M = e[P]; - d = w * s, w += M, m = w * s, u.push({ - left: d, - right: m, - isDash: y, - zeroLength: M === 0 - }) - } - return u - } - addRoundDash(e, n, s) { - const u = n / 2; - for (let d = -s; d <= s; d++) { - const m = this.width * (this.nextRow + s + d); - let y = 0, - w = e[y]; - for (let P = 0; P < this.width; P++) { - P / w.right > 1 && (w = e[++y]); - const M = Math.abs(P - w.left), - D = Math.abs(P - w.right), - z = Math.min(M, D); - let B; - const U = d / s * (u + 1); - if (w.isDash) { - const ee = u - Math.abs(U); - B = Math.sqrt(z * z + ee * ee) - } else B = u - Math.sqrt(z * z + U * U); - this.data[m + P] = Math.max(0, Math.min(255, B + 128)) - } - } - } - addRegularDash(e) { - for (let y = e.length - 1; y >= 0; --y) { - const w = e[y], - P = e[y + 1]; - w.zeroLength ? e.splice(y, 1) : P && P.isDash === w.isDash && (P.left = w.left, e.splice(y, 1)) - } - const n = e[0], - s = e[e.length - 1]; - n.isDash === s.isDash && (n.left = s.left - this.width, s.right = n.right + this.width); - const u = this.width * this.nextRow; - let d = 0, - m = e[d]; - for (let y = 0; y < this.width; y++) { - y / m.right > 1 && (m = e[++d]); - const w = Math.abs(y - m.left), - P = Math.abs(y - m.right), - M = Math.min(w, P); - this.data[u + y] = Math.max(0, Math.min(255, (m.isDash ? M : -M) + 128)) - } - } - addDash(e, n) { - const s = n ? 7 : 0, - u = 2 * s + 1; - if (this.nextRow + u > this.height) return o.w("LineAtlas out of space"), null; - let d = 0; - for (let y = 0; y < e.length; y++) d += e[y]; - if (d !== 0) { - const y = this.width / d, - w = this.getDashRanges(e, this.width, y); - n ? this.addRoundDash(w, y, s) : this.addRegularDash(w) - } - const m = { - y: (this.nextRow + s + .5) / this.height, - height: 2 * s / this.height, - width: d - }; - return this.nextRow += u, this.dirty = !0, m - } - bind(e) { - const n = e.gl; - this.texture ? (n.bindTexture(n.TEXTURE_2D, this.texture), this.dirty && (this.dirty = !1, n.texSubImage2D(n.TEXTURE_2D, 0, 0, 0, this.width, this.height, n.ALPHA, n.UNSIGNED_BYTE, this.data))) : (this.texture = n.createTexture(), n.bindTexture(n.TEXTURE_2D, this.texture), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.REPEAT), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.REPEAT), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.LINEAR), n.texImage2D(n.TEXTURE_2D, 0, n.ALPHA, this.width, this.height, 0, n.ALPHA, n.UNSIGNED_BYTE, this.data)) - } - } - const Pe = "maplibre_preloaded_worker_pool"; - class Me { - constructor() { - this.active = {} - } - acquire(e) { - if (!this.workers) - for (this.workers = []; this.workers.length < Me.workerCount;) this.workers.push(new Worker(o.a.WORKER_URL)); - return this.active[e] = !0, this.workers.slice() - } - release(e) { - delete this.active[e], this.numActive() === 0 && (this.workers.forEach((n => { - n.terminate() - })), this.workers = null) - } - isPreloaded() { - return !!this.active[Pe] - } - numActive() { - return Object.keys(this.active).length - } - } - const at = Math.floor(ye.hardwareConcurrency / 2); - let We, Ct; - - function _t() { - return We || (We = new Me), We - } - Me.workerCount = o.H(globalThis) ? Math.max(Math.min(at, 3), 1) : 1; - class xt { - constructor(e, n) { - this.workerPool = e, this.actors = [], this.currentActor = 0, this.id = n; - const s = this.workerPool.acquire(n); - for (let u = 0; u < s.length; u++) { - const d = new o.J(s[u], n); - d.name = `Worker ${u}`, this.actors.push(d) - } - if (!this.actors.length) throw new Error("No actors found") - } - broadcast(e, n) { - const s = []; - for (const u of this.actors) s.push(u.sendAsync({ - type: e, - data: n - })); - return Promise.all(s) - } - getActor() { - return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor] - } - remove(e = !0) { - this.actors.forEach((n => { - n.remove() - })), this.actors = [], e && this.workerPool.release(this.id) - } - registerMessageHandler(e, n) { - for (const s of this.actors) s.registerMessageHandler(e, n) - } - } - - function tt() { - return Ct || (Ct = new xt(_t(), o.K), Ct.registerMessageHandler("GR", ((h, e, n) => o.m(e, n)))), Ct - } - - function pt(h, e) { - const n = o.L(); - return o.M(n, n, [1, 1, 0]), o.N(n, n, [.5 * h.width, .5 * h.height, 1]), h.calculatePosMatrix ? o.O(n, n, h.calculatePosMatrix(e.toUnwrapped())) : n - } - - function It(h, e, n, s, u, d, m) { - var y; - const w = (function(z, B, U) { - if (z) - for (const ee of z) { - const J = B[ee]; - if (J && J.source === U && J.type === "fill-extrusion") return !0 - } else - for (const ee in B) { - const J = B[ee]; - if (J.source === U && J.type === "fill-extrusion") return !0 - } - return !1 - })((y = u == null ? void 0 : u.layers) !== null && y !== void 0 ? y : null, e, h.id), - P = d.maxPitchScaleFactor(), - M = h.tilesIn(s, P, w); - M.sort(ut); - const D = []; - for (const z of M) D.push({ - wrappedTileID: z.tileID.wrapped().key, - queryResults: z.tile.queryRenderedFeatures(e, n, h._state, z.queryGeometry, z.cameraQueryGeometry, z.scale, u, d, P, pt(h.transform, z.tileID), m ? (B, U) => m(z.tileID, B, U) : void 0) - }); - return (function(z, B) { - for (const U in z) - for (const ee of z[U]) bt(ee, B); - return z - })((function(z) { - const B = {}, - U = {}; - for (const ee of z) { - const J = ee.queryResults, - re = ee.wrappedTileID, - se = U[re] = U[re] || {}; - for (const de in J) { - const ue = J[de], - ge = se[de] = se[de] || {}, - Te = B[de] = B[de] || []; - for (const he of ue) ge[he.featureIndex] || (ge[he.featureIndex] = !0, Te.push(he)) - } - } - return B - })(D), h) - } - - function ut(h, e) { - const n = h.tileID, - s = e.tileID; - return n.overscaledZ - s.overscaledZ || n.canonical.y - s.canonical.y || n.wrap - s.wrap || n.canonical.x - s.canonical.x - } - - function bt(h, e) { - const n = h.feature, - s = e.getFeatureState(n.layer["source-layer"], n.id); - n.source = n.layer.source, n.layer["source-layer"] && (n.sourceLayer = n.layer["source-layer"]), n.state = s - } - - function wt(h, e, n) { - return o._(this, void 0, void 0, (function*() { - let s = h; - if (h.url ? s = (yield o.j(e.transformRequest(h.url, "Source"), n)).data : yield ye.frameAsync(n), !s) return null; - const u = o.Q(o.e(s, h), ["tiles", "minzoom", "maxzoom", "attribution", "bounds", "scheme", "tileSize", "encoding"]); - return "vector_layers" in s && s.vector_layers && (u.vectorLayerIds = s.vector_layers.map((d => d.id))), u - })) - } - class dt { - constructor(e, n) { - e && (n ? this.setSouthWest(e).setNorthEast(n) : Array.isArray(e) && (e.length === 4 ? this.setSouthWest([e[0], e[1]]).setNorthEast([e[2], e[3]]) : this.setSouthWest(e[0]).setNorthEast(e[1]))) - } - setNorthEast(e) { - return this._ne = e instanceof o.S ? new o.S(e.lng, e.lat) : o.S.convert(e), this - } - setSouthWest(e) { - return this._sw = e instanceof o.S ? new o.S(e.lng, e.lat) : o.S.convert(e), this - } - extend(e) { - const n = this._sw, - s = this._ne; - let u, d; - if (e instanceof o.S) u = e, d = e; - else { - if (!(e instanceof dt)) return Array.isArray(e) ? e.length === 4 || e.every(Array.isArray) ? this.extend(dt.convert(e)) : this.extend(o.S.convert(e)) : e && ("lng" in e || "lon" in e) && "lat" in e ? this.extend(o.S.convert(e)) : this; - if (u = e._sw, d = e._ne, !u || !d) return this - } - return n || s ? (n.lng = Math.min(u.lng, n.lng), n.lat = Math.min(u.lat, n.lat), s.lng = Math.max(d.lng, s.lng), s.lat = Math.max(d.lat, s.lat)) : (this._sw = new o.S(u.lng, u.lat), this._ne = new o.S(d.lng, d.lat)), this - } - getCenter() { - return new o.S((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 o.S(this.getWest(), this.getNorth()) - } - getSouthEast() { - return new o.S(this.getEast(), this.getSouth()) - } - getWest() { - return this._sw.lng - } - getSouth() { - return this._sw.lat - } - getEast() { - return this._ne.lng - } - getNorth() { - return this._ne.lat - } - toArray() { - return [this._sw.toArray(), this._ne.toArray()] - } - toString() { - return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})` - } - isEmpty() { - return !(this._sw && this._ne) - } - contains(e) { - const { - lng: n, - lat: s - } = o.S.convert(e); - let u = this._sw.lng <= n && n <= this._ne.lng; - return this._sw.lng > this._ne.lng && (u = this._sw.lng >= n && n >= this._ne.lng), this._sw.lat <= s && s <= this._ne.lat && u - } - static convert(e) { - return e instanceof dt ? e : e && new dt(e) - } - static fromLngLat(e, n = 0) { - const s = 360 * n / 40075017, - u = s / Math.cos(Math.PI / 180 * e.lat); - return new dt(new o.S(e.lng - u, e.lat - s), new o.S(e.lng + u, e.lat + s)) - } - adjustAntiMeridian() { - const e = new o.S(this._sw.lng, this._sw.lat), - n = new o.S(this._ne.lng, this._ne.lat); - return new dt(e, e.lng > n.lng ? new o.S(n.lng + 360, n.lat) : n) - } - } - class Lt { - constructor(e, n, s) { - this.bounds = dt.convert(this.validateBounds(e)), this.minzoom = n || 0, this.maxzoom = s || 24 - } - validateBounds(e) { - return Array.isArray(e) && e.length === 4 ? [Math.max(-180, e[0]), Math.max(-90, e[1]), Math.min(180, e[2]), Math.min(90, e[3])] : [-180, -90, 180, 90] - } - contains(e) { - const n = Math.pow(2, e.z), - s = Math.floor(o.V(this.bounds.getWest()) * n), - u = Math.floor(o.U(this.bounds.getNorth()) * n), - d = Math.ceil(o.V(this.bounds.getEast()) * n), - m = Math.ceil(o.U(this.bounds.getSouth()) * n); - return e.x >= s && e.x < d && e.y >= u && e.y < m - } - } - class Xt extends o.E { - constructor(e, n, s, u) { - if (super(), this.id = e, this.dispatcher = s, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = !0, this.isTileClipped = !0, this._loaded = !1, o.e(this, o.Q(n, ["url", "scheme", "tileSize", "promoteId"])), this._options = o.e({ - type: "vector" - }, n), this._collectResourceTiming = n.collectResourceTiming, this.tileSize !== 512) throw new Error("vector tile sources must have a tileSize of 512"); - this.setEventedParent(u) - } - load() { - return o._(this, void 0, void 0, (function*() { - this._loaded = !1, this.fire(new o.l("dataloading", { - dataType: "source" - })), this._tileJSONRequest = new AbortController; - try { - const e = yield wt(this._options, this.map._requestManager, this._tileJSONRequest); - this._tileJSONRequest = null, this._loaded = !0, this.map.style.sourceCaches[this.id].clearTiles(), e && (o.e(this, e), e.bounds && (this.tileBounds = new Lt(e.bounds, this.minzoom, this.maxzoom)), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "metadata" - })), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "content" - }))) - } catch (e) { - this._tileJSONRequest = null, this.fire(new o.k(e)) - } - })) - } - loaded() { - return this._loaded - } - hasTile(e) { - return !this.tileBounds || this.tileBounds.contains(e.canonical) - } - onAdd(e) { - this.map = e, this.load() - } - setSourceProperty(e) { - this._tileJSONRequest && this._tileJSONRequest.abort(), e(), this.load() - } - setTiles(e) { - return this.setSourceProperty((() => { - this._options.tiles = e - })), this - } - setUrl(e) { - return this.setSourceProperty((() => { - this.url = e, this._options.url = e - })), this - } - onRemove() { - this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null) - } - serialize() { - return o.e({}, this._options) - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), - s = { - request: this.map._requestManager.transformRequest(n, "Tile"), - uid: e.uid, - tileID: e.tileID, - zoom: e.tileID.overscaledZ, - tileSize: this.tileSize * e.tileID.overscaleFactor(), - type: this.type, - source: this.id, - pixelRatio: this.map.getPixelRatio(), - showCollisionBoxes: this.map.showCollisionBoxes, - promoteId: this.promoteId, - subdivisionGranularity: this.map.style.projection.subdivisionGranularity, - globalState: this.map.getGlobalState() - }; - s.request.collectResourceTiming = this._collectResourceTiming; - let u = "RT"; - if (e.actor && e.state !== "expired") { - if (e.state === "loading") return new Promise(((d, m) => { - e.reloadPromise = { - resolve: d, - reject: m - } - })) - } else e.actor = this.dispatcher.getActor(), u = "LT"; - e.abortController = new AbortController; - try { - const d = yield e.actor.sendAsync({ - type: u, - data: s - }, e.abortController); - if (delete e.abortController, e.aborted) return; - this._afterTileLoadWorkerResponse(e, d) - } catch (d) { - if (delete e.abortController, e.aborted) return; - if (d && d.status !== 404) throw d; - this._afterTileLoadWorkerResponse(e, null) - } - })) - } - _afterTileLoadWorkerResponse(e, n) { - if (n && n.resourceTiming && (e.resourceTiming = n.resourceTiming), n && this.map._refreshExpiredTiles && e.setExpiryData(n), e.loadVectorData(n, this.map.painter), e.reloadPromise) { - const s = e.reloadPromise; - e.reloadPromise = null, this.loadTile(e).then(s.resolve).catch(s.reject) - } - } - abortTile(e) { - return o._(this, void 0, void 0, (function*() { - e.abortController && (e.abortController.abort(), delete e.abortController), e.actor && (yield e.actor.sendAsync({ - type: "AT", - data: { - uid: e.uid, - type: this.type, - source: this.id - } - })) - })) - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.unloadVectorData(), e.actor && (yield e.actor.sendAsync({ - type: "RMT", - data: { - uid: e.uid, - type: this.type, - source: this.id - } - })) - })) - } - hasTransition() { - return !1 - } - } - class Yt extends o.E { - constructor(e, n, s, u) { - super(), this.id = e, this.dispatcher = s, this.setEventedParent(u), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = !0, this.scheme = "xyz", this.tileSize = 512, this._loaded = !1, this._options = o.e({ - type: "raster" - }, n), o.e(this, o.Q(n, ["url", "scheme", "tileSize"])) - } - load() { - return o._(this, arguments, void 0, (function*(e = !1) { - this._loaded = !1, this.fire(new o.l("dataloading", { - dataType: "source" - })), this._tileJSONRequest = new AbortController; - try { - const n = yield wt(this._options, this.map._requestManager, this._tileJSONRequest); - this._tileJSONRequest = null, this._loaded = !0, n && (o.e(this, n), n.bounds && (this.tileBounds = new Lt(n.bounds, this.minzoom, this.maxzoom)), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "metadata" - })), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "content", - sourceDataChanged: e - }))) - } catch (n) { - this._tileJSONRequest = null, this.fire(new o.k(n)) - } - })) - } - loaded() { - return this._loaded - } - onAdd(e) { - this.map = e, this.load() - } - onRemove() { - this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null) - } - setSourceProperty(e) { - this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null), e(), this.load(!0) - } - setTiles(e) { - return this.setSourceProperty((() => { - this._options.tiles = e - })), this - } - setUrl(e) { - return this.setSourceProperty((() => { - this.url = e, this._options.url = e - })), this - } - serialize() { - return o.e({}, this._options) - } - hasTile(e) { - return !this.tileBounds || this.tileBounds.contains(e.canonical) - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme); - e.abortController = new AbortController; - try { - const s = yield Ne.getImage(this.map._requestManager.transformRequest(n, "Tile"), e.abortController, this.map._refreshExpiredTiles); - if (delete e.abortController, e.aborted) return void(e.state = "unloaded"); - if (s && s.data) { - this.map._refreshExpiredTiles && (s.cacheControl || s.expires) && e.setExpiryData({ - cacheControl: s.cacheControl, - expires: s.expires - }); - const u = this.map.painter.context, - d = u.gl, - m = s.data; - e.texture = this.map.painter.getTileTexture(m.width), e.texture ? e.texture.update(m, { - useMipmap: !0 - }) : (e.texture = new o.T(u, m, d.RGBA, { - useMipmap: !0 - }), e.texture.bind(d.LINEAR, d.CLAMP_TO_EDGE, d.LINEAR_MIPMAP_NEAREST)), e.state = "loaded" - } - } catch (s) { - if (delete e.abortController, e.aborted) e.state = "unloaded"; - else if (s) throw e.state = "errored", s - } - })) - } - abortTile(e) { - return o._(this, void 0, void 0, (function*() { - e.abortController && (e.abortController.abort(), delete e.abortController) - })) - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.texture && this.map.painter.saveTileTexture(e.texture) - })) - } - hasTransition() { - return !1 - } - } - class nr extends Yt { - constructor(e, n, s, u) { - super(e, n, s, u), this.type = "raster-dem", this.maxzoom = 22, this._options = o.e({ - type: "raster-dem" - }, n), this.encoding = n.encoding || "mapbox", this.redFactor = n.redFactor, this.greenFactor = n.greenFactor, this.blueFactor = n.blueFactor, this.baseShift = n.baseShift - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), - s = this.map._requestManager.transformRequest(n, "Tile"); - e.neighboringTiles = this._getNeighboringTiles(e.tileID), e.abortController = new AbortController; - try { - const u = yield Ne.getImage(s, e.abortController, this.map._refreshExpiredTiles); - if (delete e.abortController, e.aborted) return void(e.state = "unloaded"); - if (u && u.data) { - const d = u.data; - this.map._refreshExpiredTiles && (u.cacheControl || u.expires) && e.setExpiryData({ - cacheControl: u.cacheControl, - expires: u.expires - }); - const m = o.b(d) && o.W() ? d : yield this.readImageNow(d), y = { - type: this.type, - uid: e.uid, - source: this.id, - rawImageData: m, - encoding: this.encoding, - redFactor: this.redFactor, - greenFactor: this.greenFactor, - blueFactor: this.blueFactor, - baseShift: this.baseShift - }; - if (!e.actor || e.state === "expired") { - e.actor = this.dispatcher.getActor(); - const w = yield e.actor.sendAsync({ - type: "LDT", - data: y - }); - e.dem = w, e.needsHillshadePrepare = !0, e.needsTerrainPrepare = !0, e.state = "loaded" - } - } - } catch (u) { - if (delete e.abortController, e.aborted) e.state = "unloaded"; - else if (u) throw e.state = "errored", u - } - })) - } - readImageNow(e) { - return o._(this, void 0, void 0, (function*() { - if (typeof VideoFrame < "u" && o.X()) { - const n = e.width + 2, - s = e.height + 2; - try { - return new o.R({ - width: n, - height: s - }, yield o.Y(e, -1, -1, n, s)) - } catch {} - } - return ye.getImageData(e, 1) - })) - } - _getNeighboringTiles(e) { - const n = e.canonical, - s = Math.pow(2, n.z), - u = (n.x - 1 + s) % s, - d = n.x === 0 ? e.wrap - 1 : e.wrap, - m = (n.x + 1 + s) % s, - y = n.x + 1 === s ? e.wrap + 1 : e.wrap, - w = {}; - return w[new o.Z(e.overscaledZ, d, n.z, u, n.y).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, y, n.z, m, n.y).key] = { - backfilled: !1 - }, n.y > 0 && (w[new o.Z(e.overscaledZ, d, n.z, u, n.y - 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, e.wrap, n.z, n.x, n.y - 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, y, n.z, m, n.y - 1).key] = { - backfilled: !1 - }), n.y + 1 < s && (w[new o.Z(e.overscaledZ, d, n.z, u, n.y + 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, e.wrap, n.z, n.x, n.y + 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, y, n.z, m, n.y + 1).key] = { - backfilled: !1 - }), w - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.demTexture && this.map.painter.saveTileTexture(e.demTexture), e.fbo && (e.fbo.destroy(), delete e.fbo), e.dem && delete e.dem, delete e.neighboringTiles, e.state = "unloaded", e.actor && (yield e.actor.sendAsync({ - type: "RDT", - data: { - type: this.type, - uid: e.uid, - source: this.id - } - })) - })) - } - } - class ar extends o.E { - constructor(e, n, s, u) { - super(), this.id = e, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = !0, this.reparseOverscaled = !0, this._removed = !1, this._isUpdatingWorker = !1, this._pendingWorkerUpdate = { - data: n.data - }, this.actor = s.getActor(), this.setEventedParent(u), this._data = n.data, this._options = o.e({}, n), this._collectResourceTiming = n.collectResourceTiming, n.maxzoom !== void 0 && (this.maxzoom = n.maxzoom), n.type && (this.type = n.type), n.attribution && (this.attribution = n.attribution), this.promoteId = n.promoteId, n.clusterMaxZoom !== void 0 && this.maxzoom <= n.clusterMaxZoom && o.w(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${n.clusterMaxZoom}".`), this.workerOptions = o.e({ - source: this.id, - cluster: n.cluster || !1, - geojsonVtOptions: { - buffer: this._pixelsToTileUnits(n.buffer !== void 0 ? n.buffer : 128), - tolerance: this._pixelsToTileUnits(n.tolerance !== void 0 ? n.tolerance : .375), - extent: o.$, - maxZoom: this.maxzoom, - lineMetrics: n.lineMetrics || !1, - generateId: n.generateId || !1 - }, - superclusterOptions: { - maxZoom: this._getClusterMaxZoom(n.clusterMaxZoom), - minPoints: Math.max(2, n.clusterMinPoints || 2), - extent: o.$, - radius: this._pixelsToTileUnits(n.clusterRadius || 50), - log: !1, - generateId: n.generateId || !1 - }, - clusterProperties: n.clusterProperties, - filter: n.filter - }, n.workerOptions), typeof this.promoteId == "string" && (this.workerOptions.promoteId = this.promoteId) - } - _pixelsToTileUnits(e) { - return e * (o.$ / this.tileSize) - } - _getClusterMaxZoom(e) { - const n = e ? Math.round(e) : this.maxzoom - 1; - return Number.isInteger(e) || e === void 0 || o.w(`Integer expected for option 'clusterMaxZoom': provided value "${e}" rounded to "${n}"`), n - } - load() { - return o._(this, void 0, void 0, (function*() { - yield this._updateWorkerData() - })) - } - onAdd(e) { - this.map = e, this.load() - } - setData(e) { - return this._data = e, this._pendingWorkerUpdate = { - data: e - }, this._updateWorkerData(), this - } - updateData(e) { - return this._pendingWorkerUpdate.diff = o.a0(this._pendingWorkerUpdate.diff, e), this._updateWorkerData(), this - } - getData() { - return o._(this, void 0, void 0, (function*() { - const e = o.e({ - type: this.type - }, this.workerOptions); - return this.actor.sendAsync({ - type: "GD", - data: e - }) - })) - } - getCoordinatesFromGeometry(e) { - return e.type === "GeometryCollection" ? e.geometries.map((n => n.coordinates)).flat(1 / 0) : e.coordinates.flat(1 / 0) - } - getBounds() { - return o._(this, void 0, void 0, (function*() { - const e = new dt, - n = yield this.getData(); - let s; - switch (n.type) { - case "FeatureCollection": - s = n.features.map((u => this.getCoordinatesFromGeometry(u.geometry))).flat(1 / 0); - break; - case "Feature": - s = this.getCoordinatesFromGeometry(n.geometry); - break; - default: - s = this.getCoordinatesFromGeometry(n) - } - if (s.length == 0) return e; - for (let u = 0; u < s.length - 1; u += 2) e.extend([s[u], s[u + 1]]); - return e - })) - } - setClusterOptions(e) { - return this.workerOptions.cluster = e.cluster, e && (e.clusterRadius !== void 0 && (this.workerOptions.superclusterOptions.radius = this._pixelsToTileUnits(e.clusterRadius)), e.clusterMaxZoom !== void 0 && (this.workerOptions.superclusterOptions.maxZoom = this._getClusterMaxZoom(e.clusterMaxZoom))), this._updateWorkerData(), this - } - getClusterExpansionZoom(e) { - return this.actor.sendAsync({ - type: "GCEZ", - data: { - type: this.type, - clusterId: e, - source: this.id - } - }) - } - getClusterChildren(e) { - return this.actor.sendAsync({ - type: "GCC", - data: { - type: this.type, - clusterId: e, - source: this.id - } - }) - } - getClusterLeaves(e, n, s) { - return this.actor.sendAsync({ - type: "GCL", - data: { - type: this.type, - source: this.id, - clusterId: e, - limit: n, - offset: s - } - }) - } - _updateWorkerData() { - return o._(this, void 0, void 0, (function*() { - if (this._isUpdatingWorker) return; - const { - data: e, - diff: n - } = this._pendingWorkerUpdate; - if (!e && !n) return void o.w(`No data or diff provided to GeoJSONSource ${this.id}.`); - const s = o.e({ - type: this.type - }, this.workerOptions); - e ? (typeof e == "string" ? (s.request = this.map._requestManager.transformRequest(ye.resolveURL(e), "Source"), s.request.collectResourceTiming = this._collectResourceTiming) : s.data = JSON.stringify(e), this._pendingWorkerUpdate.data = void 0) : n && (s.dataDiff = n, this._pendingWorkerUpdate.diff = void 0), this._isUpdatingWorker = !0, this.fire(new o.l("dataloading", { - dataType: "source" - })); - try { - const u = yield this.actor.sendAsync({ - type: "LD", - data: s - }); - if (this._isUpdatingWorker = !1, this._removed || u.abandoned) return void this.fire(new o.l("dataabort", { - dataType: "source" - })); - this._data = u.data; - let d = null; - u.resourceTiming && u.resourceTiming[this.id] && (d = u.resourceTiming[this.id].slice(0)); - const m = { - dataType: "source" - }; - this._collectResourceTiming && d && d.length > 0 && o.e(m, { - resourceTiming: d - }), this.fire(new o.l("data", Object.assign(Object.assign({}, m), { - sourceDataType: "metadata" - }))), this.fire(new o.l("data", Object.assign(Object.assign({}, m), { - sourceDataType: "content" - }))) - } catch (u) { - if (this._isUpdatingWorker = !1, this._removed) return void this.fire(new o.l("dataabort", { - dataType: "source" - })); - this.fire(new o.k(u)) - } finally { - (this._pendingWorkerUpdate.data || this._pendingWorkerUpdate.diff) && this._updateWorkerData() - } - })) - } - loaded() { - return !this._isUpdatingWorker && this._pendingWorkerUpdate.data === void 0 && this._pendingWorkerUpdate.diff === void 0 - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.actor ? "RT" : "LT"; - e.actor = this.actor; - const s = { - type: this.type, - uid: e.uid, - tileID: e.tileID, - zoom: e.tileID.overscaledZ, - maxZoom: this.maxzoom, - tileSize: this.tileSize, - source: this.id, - pixelRatio: this.map.getPixelRatio(), - showCollisionBoxes: this.map.showCollisionBoxes, - promoteId: this.promoteId, - subdivisionGranularity: this.map.style.projection.subdivisionGranularity, - globalState: this.map.getGlobalState() - }; - e.abortController = new AbortController; - const u = yield this.actor.sendAsync({ - type: n, - data: s - }, e.abortController); - delete e.abortController, e.unloadVectorData(), e.aborted || e.loadVectorData(u, this.map.painter, n === "RT") - })) - } - abortTile(e) { - return o._(this, void 0, void 0, (function*() { - e.abortController && (e.abortController.abort(), delete e.abortController), e.aborted = !0 - })) - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.unloadVectorData(), yield this.actor.sendAsync({ - type: "RMT", - data: { - uid: e.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 o.e({}, this._options, { - type: this.type, - data: this._data - }) - } - hasTransition() { - return !1 - } - } - class Ft extends o.E { - constructor(e, n, s, u) { - super(), this.flippedWindingOrder = !1, this.id = e, this.dispatcher = s, this.coordinates = n.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = !1, this.setEventedParent(u), this.options = n - } - load(e) { - return o._(this, void 0, void 0, (function*() { - this._loaded = !1, this.fire(new o.l("dataloading", { - dataType: "source" - })), this.url = this.options.url, this._request = new AbortController; - try { - const n = yield Ne.getImage(this.map._requestManager.transformRequest(this.url, "Image"), this._request); - this._request = null, this._loaded = !0, n && n.data && (this.image = n.data, e && (this.coordinates = e), this._finishLoading()) - } catch (n) { - this._request = null, this._loaded = !0, this.fire(new o.k(n)) - } - })) - } - loaded() { - return this._loaded - } - updateImage(e) { - return e.url ? (this._request && (this._request.abort(), this._request = null), this.options.url = e.url, this.load(e.coordinates).finally((() => { - this.texture = null - })), this) : this - } - _finishLoading() { - this.map && (this.setCoordinates(this.coordinates), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "metadata" - }))) - } - onAdd(e) { - this.map = e, this.load() - } - onRemove() { - this._request && (this._request.abort(), this._request = null) - } - setCoordinates(e) { - this.coordinates = e; - const n = e.map(o.a1.fromLngLat); - var s; - return this.tileID = (function(u) { - const d = o.a2.fromPoints(u), - m = d.width(), - y = d.height(), - w = Math.max(m, y), - P = Math.max(0, Math.floor(-Math.log(w) / Math.LN2)), - M = Math.pow(2, P); - return new o.a4(P, Math.floor((d.minX + d.maxX) / 2 * M), Math.floor((d.minY + d.maxY) / 2 * M)) - })(n), this.terrainTileRanges = this._getOverlappingTileRanges(n), this.minzoom = this.maxzoom = this.tileID.z, this.tileCoords = n.map((u => this.tileID.getTilePoint(u)._round())), this.flippedWindingOrder = ((s = this.tileCoords)[1].x - s[0].x) * (s[2].y - s[0].y) - (s[1].y - s[0].y) * (s[2].x - s[0].x) < 0, this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "content" - })), this - } - prepare() { - if (Object.keys(this.tiles).length === 0 || !this.image) return; - const e = this.map.painter.context, - n = e.gl; - this.texture || (this.texture = new o.T(e, this.image, n.RGBA), this.texture.bind(n.LINEAR, n.CLAMP_TO_EDGE)); - let s = !1; - for (const u in this.tiles) { - const d = this.tiles[u]; - d.state !== "loaded" && (d.state = "loaded", d.texture = this.texture, s = !0) - } - s && this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "idle", - sourceId: this.id - })) - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - this.tileID && this.tileID.equals(e.tileID.canonical) ? (this.tiles[String(e.tileID.wrap)] = e, e.buckets = {}) : e.state = "errored" - })) - } - serialize() { - return { - type: "image", - url: this.options.url, - coordinates: this.coordinates - } - } - hasTransition() { - return !1 - } - _getOverlappingTileRanges(e) { - const { - minX: n, - minY: s, - maxX: u, - maxY: d - } = o.a2.fromPoints(e), m = {}; - for (let y = 0; y <= o.a3; y++) { - const w = Math.pow(2, y), - P = Math.floor(n * w), - M = Math.floor(s * w), - D = Math.floor(u * w), - z = Math.floor(d * w); - m[y] = { - minTileX: P, - minTileY: M, - maxTileX: D, - maxTileY: z - } - } - return m - } - } - class dr extends Ft { - constructor(e, n, s, u) { - super(e, n, s, u), this.roundZoom = !0, this.type = "video", this.options = n - } - load() { - return o._(this, void 0, void 0, (function*() { - this._loaded = !1; - const e = this.options; - this.urls = []; - for (const n of e.urls) this.urls.push(this.map._requestManager.transformRequest(n, "Source").url); - try { - const n = yield o.a5(this.urls); - if (this._loaded = !0, !n) return; - this.video = n, this.video.loop = !0, this.video.addEventListener("playing", (() => { - this.map.triggerRepaint() - })), this.map && this.video.play(), this._finishLoading() - } catch (n) { - this.fire(new o.k(n)) - } - })) - } - pause() { - this.video && this.video.pause() - } - play() { - this.video && this.video.play() - } - seek(e) { - if (this.video) { - const n = this.video.seekable; - e < n.start(0) || e > n.end(0) ? this.fire(new o.k(new o.a6(`sources.${this.id}`, null, `Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))) : this.video.currentTime = e - } - } - getVideo() { - return this.video - } - onAdd(e) { - this.map || (this.map = e, 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 e = this.map.painter.context, - n = e.gl; - this.texture ? this.video.paused || (this.texture.bind(n.LINEAR, n.CLAMP_TO_EDGE), n.texSubImage2D(n.TEXTURE_2D, 0, 0, 0, n.RGBA, n.UNSIGNED_BYTE, this.video)) : (this.texture = new o.T(e, this.video, n.RGBA), this.texture.bind(n.LINEAR, n.CLAMP_TO_EDGE)); - let s = !1; - for (const u in this.tiles) { - const d = this.tiles[u]; - d.state !== "loaded" && (d.state = "loaded", d.texture = this.texture, s = !0) - } - s && this.fire(new o.l("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 _r extends Ft { - constructor(e, n, s, u) { - super(e, n, s, u), n.coordinates ? Array.isArray(n.coordinates) && n.coordinates.length === 4 && !n.coordinates.some((d => !Array.isArray(d) || d.length !== 2 || d.some((m => typeof m != "number")))) || this.fire(new o.k(new o.a6(`sources.${e}`, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new o.k(new o.a6(`sources.${e}`, null, 'missing required property "coordinates"'))), n.animate && typeof n.animate != "boolean" && this.fire(new o.k(new o.a6(`sources.${e}`, null, 'optional "animate" property must be a boolean value'))), n.canvas ? typeof n.canvas == "string" || n.canvas instanceof HTMLCanvasElement || this.fire(new o.k(new o.a6(`sources.${e}`, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new o.k(new o.a6(`sources.${e}`, null, 'missing required property "canvas"'))), this.options = n, this.animate = n.animate === void 0 || n.animate - } - load() { - return o._(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 o.k(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(e) { - this.map = e, this.load(), this.canvas && this.animate && this.play() - } - onRemove() { - this.pause() - } - prepare() { - let e = !1; - if (this.canvas.width !== this.width && (this.width = this.canvas.width, e = !0), this.canvas.height !== this.height && (this.height = this.canvas.height, e = !0), this._hasInvalidDimensions() || Object.keys(this.tiles).length === 0) return; - const n = this.map.painter.context, - s = n.gl; - this.texture ? (e || this._playing) && this.texture.update(this.canvas, { - premultiply: !0 - }) : this.texture = new o.T(n, this.canvas, s.RGBA, { - premultiply: !0 - }); - let u = !1; - for (const d in this.tiles) { - const m = this.tiles[d]; - m.state !== "loaded" && (m.state = "loaded", m.texture = this.texture, u = !0) - } - u && this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "idle", - sourceId: this.id - })) - } - serialize() { - return { - type: "canvas", - coordinates: this.coordinates - } - } - hasTransition() { - return this._playing - } - _hasInvalidDimensions() { - for (const e of [this.canvas.width, this.canvas.height]) - if (isNaN(e) || e <= 0) return !0; - return !1 - } - } - const Ir = {}, - jr = h => { - switch (h) { - case "geojson": - return ar; - case "image": - return Ft; - case "raster": - return Yt; - case "raster-dem": - return nr; - case "vector": - return Xt; - case "video": - return dr; - case "canvas": - return _r - } - return Ir[h] - }, - ur = "RTLPluginLoaded"; - class Mr extends o.E { - constructor() { - super(...arguments), this.status = "unavailable", this.url = null, this.dispatcher = tt() - } - _syncState(e) { - return this.status = e, this.dispatcher.broadcast("SRPS", { - pluginStatus: e, - pluginURL: this.url - }).catch((n => { - throw this.status = "error", n - })) - } - getRTLTextPluginStatus() { - return this.status - } - clearRTLTextPlugin() { - this.status = "unavailable", this.url = null - } - setRTLTextPlugin(e) { - return o._(this, arguments, void 0, (function*(n, s = !1) { - if (this.url) throw new Error("setRTLTextPlugin cannot be called multiple times."); - if (this.url = ye.resolveURL(n), !this.url) throw new Error(`requested url ${n} is invalid`); - if (this.status === "unavailable") { - if (!s) return this._requestImport(); - this.status = "deferred", this._syncState(this.status) - } else if (this.status === "requested") return this._requestImport() - })) - } - _requestImport() { - return o._(this, void 0, void 0, (function*() { - yield this._syncState("loading"), this.status = "loaded", this.fire(new o.l(ur)) - })) - } - lazyLoad() { - this.status === "unavailable" ? this.status = "requested" : this.status === "deferred" && this._requestImport() - } - } - let Ar = null; - - function kr() { - return Ar || (Ar = new Mr), Ar - } - class Nr { - constructor(e, n) { - this.timeAdded = 0, this.fadeEndTime = 0, this.tileID = e, this.uid = o.a7(), this.uses = 0, this.tileSize = n, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = !1, this.hasRTLText = !1, this.dependencies = {}, this.rtt = [], this.rttCoords = {}, this.expiredRequestCount = 0, this.state = "loading" - } - registerFadeDuration(e) { - const n = e + this.timeAdded; - n < this.fadeEndTime || (this.fadeEndTime = n) - } - wasRequested() { - return this.state === "errored" || this.state === "loaded" || this.state === "reloading" - } - clearTextures(e) { - this.demTexture && e.saveTileTexture(this.demTexture), this.demTexture = null - } - loadVectorData(e, n, s) { - if (this.hasData() && this.unloadVectorData(), this.state = "loaded", e) { - e.featureIndex && (this.latestFeatureIndex = e.featureIndex, e.rawTileData ? (this.latestRawTileData = e.rawTileData, this.latestFeatureIndex.rawTileData = e.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = e.collisionBoxArray, this.buckets = (function(u, d) { - const m = {}; - if (!d) return m; - for (const y of u) { - const w = y.layerIds.map((P => d.getLayer(P))).filter(Boolean); - if (w.length !== 0) { - y.layers = w, y.stateDependentLayerIds && (y.stateDependentLayers = y.stateDependentLayerIds.map((P => w.filter((M => M.id === P))[0]))); - for (const P of w) m[P.id] = y - } - } - return m - })(e.buckets, n == null ? void 0 : n.style), this.hasSymbolBuckets = !1; - for (const u in this.buckets) { - const d = this.buckets[u]; - if (d instanceof o.a9) { - if (this.hasSymbolBuckets = !0, !s) break; - d.justReloaded = !0 - } - } - if (this.hasRTLText = !1, this.hasSymbolBuckets) - for (const u in this.buckets) { - const d = this.buckets[u]; - if (d instanceof o.a9 && d.hasRTLText) { - this.hasRTLText = !0, kr().lazyLoad(); - break - } - } - this.queryPadding = 0; - for (const u in this.buckets) { - const d = this.buckets[u]; - this.queryPadding = Math.max(this.queryPadding, n.style.getLayer(u).queryRadius(d)) - } - e.imageAtlas && (this.imageAtlas = e.imageAtlas), e.glyphAtlasImage && (this.glyphAtlasImage = e.glyphAtlasImage) - } else this.collisionBoxArray = new o.a8 - } - unloadVectorData() { - for (const e in this.buckets) this.buckets[e].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(e) { - return this.buckets[e.id] - } - upload(e) { - for (const s in this.buckets) { - const u = this.buckets[s]; - u.uploadPending() && u.upload(e) - } - const n = e.gl; - this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new o.T(e, this.imageAtlas.image, n.RGBA), this.imageAtlas.uploaded = !0), this.glyphAtlasImage && (this.glyphAtlasTexture = new o.T(e, this.glyphAtlasImage, n.ALPHA), this.glyphAtlasImage = null) - } - prepare(e) { - this.imageAtlas && this.imageAtlas.patchUpdatedImages(e, this.imageAtlasTexture) - } - queryRenderedFeatures(e, n, s, u, d, m, y, w, P, M, D) { - return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ - queryGeometry: u, - cameraQueryGeometry: d, - scale: m, - tileSize: this.tileSize, - pixelPosMatrix: M, - transform: w, - params: y, - queryPadding: this.queryPadding * P, - getElevation: D - }, e, n, s) : {} - } - querySourceFeatures(e, n) { - const s = this.latestFeatureIndex; - if (!s || !s.rawTileData) return; - const u = s.loadVTLayers(), - d = n && n.sourceLayer ? n.sourceLayer : "", - m = u._geojsonTileLayer || u[d]; - if (!m) return; - const y = o.aa(n && n.filter), - { - z: w, - x: P, - y: M - } = this.tileID.canonical, - D = { - z: w, - x: P, - y: M - }; - for (let z = 0; z < m.length; z++) { - const B = m.feature(z); - if (y.needGeometry) { - const J = o.ab(B, !0); - if (!y.filter(new o.F(this.tileID.overscaledZ), J, this.tileID.canonical)) continue - } else if (!y.filter(new o.F(this.tileID.overscaledZ), B)) continue; - const U = s.getId(B, d), - ee = new o.ac(B, w, P, M, U); - ee.tile = D, e.push(ee) - } - } - hasData() { - return this.state === "loaded" || this.state === "reloading" || this.state === "expired" - } - patternsLoaded() { - return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length - } - setExpiryData(e) { - const n = this.expirationTime; - if (e.cacheControl) { - const s = o.ad(e.cacheControl); - s["max-age"] && (this.expirationTime = Date.now() + 1e3 * s["max-age"]) - } else e.expires && (this.expirationTime = new Date(e.expires).getTime()); - if (this.expirationTime) { - const s = Date.now(); - let u = !1; - if (this.expirationTime > s) u = !1; - else if (n) - if (this.expirationTime < n) u = !0; - else { - const d = this.expirationTime - n; - d ? this.expirationTime = s + Math.max(d, 3e4) : u = !0 - } - else u = !0; - u ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0 - } - } - getExpiryTimeout() { - if (this.expirationTime) return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - new Date().getTime(), Math.pow(2, 31) - 1) - } - setFeatureState(e, n) { - if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || Object.keys(e).length === 0) return; - const s = this.latestFeatureIndex.loadVTLayers(); - for (const u in this.buckets) { - if (!n.style.hasLayer(u)) continue; - const d = this.buckets[u], - m = d.layers[0].sourceLayer || "_geojsonTileLayer", - y = s[m], - w = e[m]; - if (!y || !w || Object.keys(w).length === 0) continue; - d.update(w, y, this.imageAtlas && this.imageAtlas.patternPositions || {}); - const P = n && n.style && n.style.getLayer(u); - P && (this.queryPadding = Math.max(this.queryPadding, P.queryRadius(d))) - } - } - holdingForFade() { - return this.symbolFadeHoldUntil !== void 0 - } - symbolFadeFinished() { - return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < ye.now() - } - clearFadeHold() { - this.symbolFadeHoldUntil = void 0 - } - setHoldDuration(e) { - this.symbolFadeHoldUntil = ye.now() + e - } - setDependencies(e, n) { - const s = {}; - for (const u of n) s[u] = !0; - this.dependencies[e] = s - } - hasDependency(e, n) { - for (const s of e) { - const u = this.dependencies[s]; - if (u) { - for (const d of n) - if (u[d]) return !0 - } - } - return !1 - } - } - class ce { - constructor(e, n) { - this.max = e, this.onRemove = n, this.reset() - } - reset() { - for (const e in this.data) - for (const n of this.data[e]) n.timeout && clearTimeout(n.timeout), this.onRemove(n.value); - return this.data = {}, this.order = [], this - } - add(e, n, s) { - const u = e.wrapped().key; - this.data[u] === void 0 && (this.data[u] = []); - const d = { - value: n, - timeout: void 0 - }; - if (s !== void 0 && (d.timeout = setTimeout((() => { - this.remove(e, d) - }), s)), this.data[u].push(d), this.order.push(u), this.order.length > this.max) { - const m = this._getAndRemoveByKey(this.order[0]); - m && this.onRemove(m) - } - return this - } - has(e) { - return e.wrapped().key in this.data - } - getAndRemove(e) { - return this.has(e) ? this._getAndRemoveByKey(e.wrapped().key) : null - } - _getAndRemoveByKey(e) { - const n = this.data[e].shift(); - return n.timeout && clearTimeout(n.timeout), this.data[e].length === 0 && delete this.data[e], this.order.splice(this.order.indexOf(e), 1), n.value - } - getByKey(e) { - const n = this.data[e]; - return n ? n[0].value : null - } - get(e) { - return this.has(e) ? this.data[e.wrapped().key][0].value : null - } - remove(e, n) { - if (!this.has(e)) return this; - const s = e.wrapped().key, - u = n === void 0 ? 0 : this.data[s].indexOf(n), - d = this.data[s][u]; - return this.data[s].splice(u, 1), d.timeout && clearTimeout(d.timeout), this.data[s].length === 0 && delete this.data[s], this.onRemove(d.value), this.order.splice(this.order.indexOf(s), 1), this - } - setMaxSize(e) { - for (this.max = e; this.order.length > this.max;) { - const n = this._getAndRemoveByKey(this.order[0]); - n && this.onRemove(n) - } - return this - } - filter(e) { - const n = []; - for (const s in this.data) - for (const u of this.data[s]) e(u.value) || n.push(u); - for (const s of n) this.remove(s.value.tileID, s) - } - } - class O { - constructor() { - this.state = {}, this.stateChanges = {}, this.deletedStates = {} - } - updateState(e, n, s) { - const u = String(n); - if (this.stateChanges[e] = this.stateChanges[e] || {}, this.stateChanges[e][u] = this.stateChanges[e][u] || {}, o.e(this.stateChanges[e][u], s), this.deletedStates[e] === null) { - this.deletedStates[e] = {}; - for (const d in this.state[e]) d !== u && (this.deletedStates[e][d] = null) - } else if (this.deletedStates[e] && this.deletedStates[e][u] === null) { - this.deletedStates[e][u] = {}; - for (const d in this.state[e][u]) s[d] || (this.deletedStates[e][u][d] = null) - } else - for (const d in s) this.deletedStates[e] && this.deletedStates[e][u] && this.deletedStates[e][u][d] === null && delete this.deletedStates[e][u][d] - } - removeFeatureState(e, n, s) { - if (this.deletedStates[e] === null) return; - const u = String(n); - if (this.deletedStates[e] = this.deletedStates[e] || {}, s && n !== void 0) this.deletedStates[e][u] !== null && (this.deletedStates[e][u] = this.deletedStates[e][u] || {}, this.deletedStates[e][u][s] = null); - else if (n !== void 0) - if (this.stateChanges[e] && this.stateChanges[e][u]) - for (s in this.deletedStates[e][u] = {}, this.stateChanges[e][u]) this.deletedStates[e][u][s] = null; - else this.deletedStates[e][u] = null; - else this.deletedStates[e] = null - } - getState(e, n) { - const s = String(n), - u = o.e({}, (this.state[e] || {})[s], (this.stateChanges[e] || {})[s]); - if (this.deletedStates[e] === null) return {}; - if (this.deletedStates[e]) { - const d = this.deletedStates[e][n]; - if (d === null) return {}; - for (const m in d) delete u[m] - } - return u - } - initializeTileState(e, n) { - e.setFeatureState(this.state, n) - } - coalesceChanges(e, n) { - const s = {}; - for (const u in this.stateChanges) { - this.state[u] = this.state[u] || {}; - const d = {}; - for (const m in this.stateChanges[u]) this.state[u][m] || (this.state[u][m] = {}), o.e(this.state[u][m], this.stateChanges[u][m]), d[m] = this.state[u][m]; - s[u] = d - } - for (const u in this.deletedStates) { - this.state[u] = this.state[u] || {}; - const d = {}; - if (this.deletedStates[u] === null) - for (const m in this.state[u]) d[m] = {}, this.state[u][m] = {}; - else - for (const m in this.deletedStates[u]) { - if (this.deletedStates[u][m] === null) this.state[u][m] = {}; - else - for (const y of Object.keys(this.deletedStates[u][m])) delete this.state[u][m][y]; - d[m] = this.state[u][m] - } - s[u] = s[u] || {}, o.e(s[u], d) - } - if (this.stateChanges = {}, this.deletedStates = {}, Object.keys(s).length !== 0) - for (const u in e) e[u].setFeatureState(s, n) - } - } - const q = 89.25; - - function G(h, e) { - const n = o.ah(e.lat, -o.ai, o.ai); - return new o.P(o.V(e.lng) * h, o.U(n) * h) - } - - function K(h, e) { - return new o.a1(e.x / h, e.y / h).toLngLat() - } - - function le(h) { - return h.cameraToCenterDistance * Math.min(.85 * Math.tan(o.ae(90 - h.pitch)), Math.tan(o.ae(q - h.pitch))) - } - - function ve(h, e) { - const n = h.canonical, - s = e / o.af(n.z), - u = n.x + Math.pow(2, n.z) * h.wrap, - d = o.ag(new Float64Array(16)); - return o.M(d, d, [u * s, n.y * s, 0]), o.N(d, d, [s / o.$, s / o.$, 1]), d - } - - function Le(h, e, n, s, u) { - const d = o.a1.fromLngLat(h, e), - m = u * o.aj(1, h.lat), - y = m * Math.cos(o.ae(n)), - w = Math.sqrt(m * m - y * y), - P = w * Math.sin(o.ae(-s)), - M = w * Math.cos(o.ae(-s)); - return new o.a1(d.x + P, d.y + M, d.z + y) - } - - function Ce(h, e, n) { - const s = e.intersectsFrustum(h); - if (!n || s === 0) return s; - const u = e.intersectsPlane(n); - return u === 0 ? 0 : s === 2 && u === 2 ? 2 : 1 - } - - function Ze(h, e, n) { - let s = 0; - const u = (n - e) / 10; - for (let d = 0; d < 10; d++) s += u * Math.pow(Math.cos(e + (d + .5) / 10 * (n - e)), h); - return s - } - - function ot(h, e) { - return function(n, s, u, d, m) { - const y = 2 * ((h - 1) / o.ak(Math.cos(o.ae(q - m)) / Math.cos(o.ae(q))) - 1), - w = Math.acos(u / d), - P = 2 * Ze(y - 1, 0, o.ae(m / 2)), - M = Math.min(o.ae(q), w + o.ae(m / 2)), - D = Ze(y - 1, Math.min(M, w - o.ae(m / 2)), M), - z = Math.atan(s / u), - B = Math.hypot(s, u); - let U = n; - return U += o.ak(d / B / Math.max(.5, Math.cos(o.ae(m / 2)))), U += y * o.ak(Math.cos(z)) / 2, U -= o.ak(Math.max(1, D / P / e)) / 2, U - } - } - const Ye = ot(9.314, 3); - - function Ot(h, e) { - const n = (e.roundZoom ? Math.round : Math.floor)(h.zoom + o.ak(h.tileSize / e.tileSize)); - return Math.max(0, n) - } - - function xe(h, e) { - const n = h.getCameraFrustum(), - s = h.getClippingPlane(), - u = h.screenPointToMercatorCoordinate(h.getCameraPoint()), - d = o.a1.fromLngLat(h.center, h.elevation); - u.z = d.z + Math.cos(h.pitchInRadians) * h.cameraToCenterDistance / h.worldSize; - const m = h.getCoveringTilesDetailsProvider(), - y = m.allowVariableZoom(h, e), - w = Ot(h, e), - P = e.minzoom || 0, - M = e.maxzoom !== void 0 ? e.maxzoom : h.maxZoom, - D = Math.min(Math.max(0, w), M), - z = Math.pow(2, D), - B = [z * u.x, z * u.y, 0], - U = [z * d.x, z * d.y, 0], - ee = Math.hypot(d.x - u.x, d.y - u.y), - J = Math.abs(d.z - u.z), - re = Math.hypot(ee, J), - se = ge => ({ - zoom: 0, - x: 0, - y: 0, - wrap: ge, - fullyVisible: !1 - }), - de = [], - ue = []; - if (h.renderWorldCopies && m.allowWorldCopies()) - for (let ge = 1; ge <= 3; ge++) de.push(se(-ge)), de.push(se(ge)); - for (de.push(se(0)); de.length > 0;) { - const ge = de.pop(), - Te = ge.x, - he = ge.y; - let De = ge.fullyVisible; - const He = { - x: Te, - y: he, - z: ge.zoom - }, - je = m.getTileBoundingVolume(He, ge.wrap, h.elevation, e); - if (!De) { - const Nt = Ce(n, je, s); - if (Nt === 0) continue; - De = Nt === 2 - } - const qe = m.distanceToTile2d(u.x, u.y, He, je); - let $e = w; - y && ($e = (e.calculateTileZoom || Ye)(h.zoom + o.ak(h.tileSize / e.tileSize), qe, J, re, h.fov)), $e = (e.roundZoom ? Math.round : Math.floor)($e), $e = Math.max(0, $e); - const Rt = Math.min($e, M); - if (ge.wrap = m.getWrap(d, He, ge.wrap), ge.zoom >= Rt) { - if (ge.zoom < P) continue; - const Nt = D - ge.zoom, - yt = B[0] - .5 - (Te << Nt), - sr = B[1] - .5 - (he << Nt), - Xr = e.reparseOverscaled ? Math.max(ge.zoom, $e) : ge.zoom; - ue.push({ - tileID: new o.Z(ge.zoom === M ? Xr : ge.zoom, ge.wrap, ge.zoom, Te, he), - distanceSq: o.al([U[0] - .5 - Te, U[1] - .5 - he]), - tileDistanceToCamera: Math.sqrt(yt * yt + sr * sr) - }) - } else - for (let Nt = 0; Nt < 4; Nt++) de.push({ - zoom: ge.zoom + 1, - x: (Te << 1) + Nt % 2, - y: (he << 1) + (Nt >> 1), - wrap: ge.wrap, - fullyVisible: De - }) - } - return ue.sort(((ge, Te) => ge.distanceSq - Te.distanceSq)).map((ge => ge.tileID)) - } - const At = o.a2.fromPoints([new o.P(0, 0), new o.P(o.$, o.$)]); - class Pt extends o.E { - constructor(e, n, s) { - super(), this.id = e, this.dispatcher = s, this.on("data", (u => this._dataHandler(u))), this.on("dataloading", (() => { - this._sourceErrored = !1 - })), this.on("error", (() => { - this._sourceErrored = this._source.loaded() - })), this._source = ((u, d, m, y) => { - const w = new(jr(d.type))(u, d, m, y); - if (w.id !== u) throw new Error(`Expected Source id to be ${u} instead of ${w.id}`); - return w - })(e, n, s, this), this._tiles = {}, this._cache = new ce(0, (u => this._unloadTile(u))), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._maxTileCacheZoomLevels = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new O, this._didEmitContent = !1, this._updated = !1 - } - onAdd(e) { - this.map = e, this._maxTileCacheSize = e ? e._maxTileCacheSize : null, this._maxTileCacheZoomLevels = e ? e._maxTileCacheZoomLevels : null, this._source && this._source.onAdd && this._source.onAdd(e) - } - onRemove(e) { - this.clearTiles(), this._source && this._source.onRemove && this._source.onRemove(e) - } - 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 e in this._tiles) { - const n = this._tiles[e]; - if (n.state !== "loaded" && n.state !== "errored") return !1 - } - return !0 - } - getSource() { - return this._source - } - pause() { - this._paused = !0 - } - resume() { - if (!this._paused) return; - const e = this._shouldReloadOnResume; - this._paused = !1, this._shouldReloadOnResume = !1, e && this.reload(), this.transform && this.update(this.transform, this.terrain) - } - _loadTile(e, n, s) { - return o._(this, void 0, void 0, (function*() { - try { - yield this._source.loadTile(e), this._tileLoaded(e, n, s) - } catch (u) { - e.state = "errored", u.status !== 404 ? this._source.fire(new o.k(u, { - tile: e - })) : this.update(this.transform, this.terrain) - } - })) - } - _unloadTile(e) { - this._source.unloadTile && this._source.unloadTile(e) - } - _abortTile(e) { - this._source.abortTile && this._source.abortTile(e), this._source.fire(new o.l("dataabort", { - tile: e, - coord: e.tileID, - dataType: "source" - })) - } - serialize() { - return this._source.serialize() - } - prepare(e) { - this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null); - for (const n in this._tiles) { - const s = this._tiles[n]; - s.upload(e), s.prepare(this.map.style.imageManager) - } - } - getIds() { - return Object.values(this._tiles).map((e => e.tileID)).sort(kt).map((e => e.key)) - } - getRenderableIds(e) { - const n = []; - for (const s in this._tiles) this._isIdRenderable(s, e) && n.push(this._tiles[s]); - return e ? n.sort(((s, u) => { - const d = s.tileID, - m = u.tileID, - y = new o.P(d.canonical.x, d.canonical.y)._rotate(-this.transform.bearingInRadians), - w = new o.P(m.canonical.x, m.canonical.y)._rotate(-this.transform.bearingInRadians); - return d.overscaledZ - m.overscaledZ || w.y - y.y || w.x - y.x - })).map((s => s.tileID.key)) : n.map((s => s.tileID)).sort(kt).map((s => s.key)) - } - hasRenderableParent(e) { - const n = this.findLoadedParent(e, 0); - return !!n && this._isIdRenderable(n.tileID.key) - } - _isIdRenderable(e, n) { - return this._tiles[e] && this._tiles[e].hasData() && !this._coveredTiles[e] && (n || !this._tiles[e].holdingForFade()) - } - reload(e) { - if (this._paused) this._shouldReloadOnResume = !0; - else { - this._cache.reset(); - for (const n in this._tiles) e ? this._reloadTile(n, "expired") : this._tiles[n].state !== "errored" && this._reloadTile(n, "reloading") - } - } - _reloadTile(e, n) { - return o._(this, void 0, void 0, (function*() { - const s = this._tiles[e]; - s && (s.state !== "loading" && (s.state = n), yield this._loadTile(s, e, n)) - })) - } - _tileLoaded(e, n, s) { - e.timeAdded = ye.now(), s === "expired" && (e.refreshedUponExpiration = !0), this._setTileReloadTimer(n, e), this.getSource().type === "raster-dem" && e.dem && this._backfillDEM(e), this._state.initializeTileState(e, this.map ? this.map.painter : null), e.aborted || this._source.fire(new o.l("data", { - dataType: "source", - tile: e, - coord: e.tileID - })) - } - _backfillDEM(e) { - const n = this.getRenderableIds(); - for (let u = 0; u < n.length; u++) { - const d = n[u]; - if (e.neighboringTiles && e.neighboringTiles[d]) { - const m = this.getTileByID(d); - s(e, m), s(m, e) - } - } - - function s(u, d) { - u.needsHillshadePrepare = !0, u.needsTerrainPrepare = !0; - let m = d.tileID.canonical.x - u.tileID.canonical.x; - const y = d.tileID.canonical.y - u.tileID.canonical.y, - w = Math.pow(2, u.tileID.canonical.z), - P = d.tileID.key; - m === 0 && y === 0 || Math.abs(y) > 1 || (Math.abs(m) > 1 && (Math.abs(m + w) === 1 ? m += w : Math.abs(m - w) === 1 && (m -= w)), d.dem && u.dem && (u.dem.backfillBorder(d.dem, m, y), u.neighboringTiles && u.neighboringTiles[P] && (u.neighboringTiles[P].backfilled = !0))) - } - } - getTile(e) { - return this.getTileByID(e.key) - } - getTileByID(e) { - return this._tiles[e] - } - _retainLoadedChildren(e, n, s, u) { - for (const d in this._tiles) { - let m = this._tiles[d]; - if (u[d] || !m.hasData() || m.tileID.overscaledZ <= n || m.tileID.overscaledZ > s) continue; - let y = m.tileID; - for (; m && m.tileID.overscaledZ > n + 1;) { - const P = m.tileID.scaledTo(m.tileID.overscaledZ - 1); - m = this._tiles[P.key], m && m.hasData() && (y = P) - } - let w = y; - for (; w.overscaledZ > n;) - if (w = w.scaledTo(w.overscaledZ - 1), e[w.key] || e[w.canonical.key]) { - u[y.key] = y; - break - } - } - } - findLoadedParent(e, n) { - if (e.key in this._loadedParentTiles) { - const s = this._loadedParentTiles[e.key]; - return s && s.tileID.overscaledZ >= n ? s : null - } - for (let s = e.overscaledZ - 1; s >= n; s--) { - const u = e.scaledTo(s), - d = this._getLoadedTile(u); - if (d) return d - } - } - findLoadedSibling(e) { - return this._getLoadedTile(e) - } - _getLoadedTile(e) { - const n = this._tiles[e.key]; - return n && n.hasData() ? n : this._cache.getByKey(e.wrapped().key) - } - updateCacheSize(e) { - const n = Math.ceil(e.width / this._source.tileSize) + 1, - s = Math.ceil(e.height / this._source.tileSize) + 1, - u = Math.floor(n * s * (this._maxTileCacheZoomLevels === null ? o.a.MAX_TILE_CACHE_ZOOM_LEVELS : this._maxTileCacheZoomLevels)), - d = typeof this._maxTileCacheSize == "number" ? Math.min(this._maxTileCacheSize, u) : u; - this._cache.setMaxSize(d) - } - handleWrapJump(e) { - const n = Math.round((e - (this._prevLng === void 0 ? e : this._prevLng)) / 360); - if (this._prevLng = e, n) { - const s = {}; - for (const u in this._tiles) { - const d = this._tiles[u]; - d.tileID = d.tileID.unwrapTo(d.tileID.wrap + n), s[d.tileID.key] = d - } - this._tiles = s; - for (const u in this._timers) clearTimeout(this._timers[u]), delete this._timers[u]; - for (const u in this._tiles) this._setTileReloadTimer(u, this._tiles[u]) - } - } - _updateCoveredAndRetainedTiles(e, n, s, u, d, m) { - const y = {}, - w = {}, - P = Object.keys(e), - M = ye.now(); - for (const D of P) { - const z = e[D], - B = this._tiles[D]; - if (!B || B.fadeEndTime !== 0 && B.fadeEndTime <= M) continue; - const U = this.findLoadedParent(z, n), - ee = this.findLoadedSibling(z), - J = U || ee || null; - J && (this._addTile(J.tileID), y[J.tileID.key] = J.tileID), w[D] = z - } - this._retainLoadedChildren(w, u, s, e); - for (const D in y) e[D] || (this._coveredTiles[D] = !0, e[D] = y[D]); - if (m) { - const D = {}, - z = {}; - for (const B of d) this._tiles[B.key].hasData() ? D[B.key] = B : z[B.key] = B; - for (const B in z) { - const U = z[B].children(this._source.maxzoom); - this._tiles[U[0].key] && this._tiles[U[1].key] && this._tiles[U[2].key] && this._tiles[U[3].key] && (D[U[0].key] = e[U[0].key] = U[0], D[U[1].key] = e[U[1].key] = U[1], D[U[2].key] = e[U[2].key] = U[2], D[U[3].key] = e[U[3].key] = U[3], delete z[B]) - } - for (const B in z) { - const U = z[B], - ee = this.findLoadedParent(U, this._source.minzoom), - J = this.findLoadedSibling(U), - re = ee || J || null; - if (re) { - D[re.tileID.key] = e[re.tileID.key] = re.tileID; - for (const se in D) D[se].isChildOf(re.tileID) && delete D[se] - } - } - for (const B in this._tiles) D[B] || (this._coveredTiles[B] = !0) - } - } - update(e, n) { - if (!this._sourceLoaded || this._paused) return; - let s; - this.transform = e, this.terrain = n, this.updateCacheSize(e), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used || this.usedForTerrain ? this._source.tileID ? s = e.getVisibleUnwrappedCoordinates(this._source.tileID).map((M => new o.Z(M.canonical.z, M.wrap, M.canonical.z, M.canonical.x, M.canonical.y))) : (s = xe(e, { - tileSize: this.usedForTerrain ? this.tileSize : this._source.tileSize, - minzoom: this._source.minzoom, - maxzoom: this._source.maxzoom, - roundZoom: !this.usedForTerrain && this._source.roundZoom, - reparseOverscaled: this._source.reparseOverscaled, - terrain: n, - calculateTileZoom: this._source.calculateTileZoom - }), this._source.hasTile && (s = s.filter((M => this._source.hasTile(M))))) : s = []; - const u = Ot(e, this._source), - d = Math.max(u - Pt.maxOverzooming, this._source.minzoom), - m = Math.max(u + Pt.maxUnderzooming, this._source.minzoom); - if (this.usedForTerrain) { - const M = {}; - for (const D of s) - if (D.canonical.z > this._source.minzoom) { - const z = D.scaledTo(D.canonical.z - 1); - M[z.key] = z; - const B = D.scaledTo(Math.max(this._source.minzoom, Math.min(D.canonical.z, 5))); - M[B.key] = B - } s = s.concat(Object.values(M)) - } - const y = s.length === 0 && !this._updated && this._didEmitContent; - this._updated = !0, y && this.fire(new o.l("data", { - sourceDataType: "idle", - dataType: "source", - sourceId: this.id - })); - const w = this._updateRetainedTiles(s, u); - Wt(this._source.type) && this._updateCoveredAndRetainedTiles(w, d, m, u, s, n); - for (const M in w) this._tiles[M].clearFadeHold(); - const P = o.am(this._tiles, w); - for (const M of P) { - const D = this._tiles[M]; - D.hasSymbolBuckets && !D.holdingForFade() ? D.setHoldDuration(this.map._fadeDuration) : D.hasSymbolBuckets && !D.symbolFadeFinished() || this._removeTile(M) - } - this._updateLoadedParentTileCache(), this._updateLoadedSiblingTileCache() - } - releaseSymbolFadeTiles() { - for (const e in this._tiles) this._tiles[e].holdingForFade() && this._removeTile(e) - } - _updateRetainedTiles(e, n) { - var s; - const u = {}, - d = {}, - m = Math.max(n - Pt.maxOverzooming, this._source.minzoom), - y = Math.max(n + Pt.maxUnderzooming, this._source.minzoom), - w = {}; - for (const P of e) { - const M = this._addTile(P); - u[P.key] = P, M.hasData() || n < this._source.maxzoom && (w[P.key] = P) - } - this._retainLoadedChildren(w, n, y, u); - for (const P of e) { - let M = this._tiles[P.key]; - if (M.hasData()) continue; - if (n + 1 > this._source.maxzoom) { - const z = P.children(this._source.maxzoom)[0], - B = this.getTile(z); - if (B && B.hasData()) { - u[z.key] = z; - continue - } - } else { - const z = P.children(this._source.maxzoom); - if (u[z[0].key] && u[z[1].key] && u[z[2].key] && u[z[3].key]) continue - } - let D = M.wasRequested(); - for (let z = P.overscaledZ - 1; z >= m; --z) { - const B = P.scaledTo(z); - if (d[B.key]) break; - if (d[B.key] = !0, M = this.getTile(B), !M && D && (M = this._addTile(B)), M) { - const U = M.hasData(); - if ((U || !(!((s = this.map) === null || s === void 0) && s.cancelPendingTileRequestsWhileZooming) || D) && (u[B.key] = B), D = M.wasRequested(), U) break - } - } - } - return u - } - _updateLoadedParentTileCache() { - this._loadedParentTiles = {}; - for (const e in this._tiles) { - const n = []; - let s, u = this._tiles[e].tileID; - for (; u.overscaledZ > 0;) { - if (u.key in this._loadedParentTiles) { - s = this._loadedParentTiles[u.key]; - break - } - n.push(u.key); - const d = u.scaledTo(u.overscaledZ - 1); - if (s = this._getLoadedTile(d), s) break; - u = d - } - for (const d of n) this._loadedParentTiles[d] = s - } - } - _updateLoadedSiblingTileCache() { - this._loadedSiblingTiles = {}; - for (const e in this._tiles) { - const n = this._tiles[e].tileID, - s = this._getLoadedTile(n); - this._loadedSiblingTiles[n.key] = s - } - } - _addTile(e) { - let n = this._tiles[e.key]; - if (n) return n; - n = this._cache.getAndRemove(e), n && (this._setTileReloadTimer(e.key, n), n.tileID = e, this._state.initializeTileState(n, this.map ? this.map.painter : null), this._cacheTimers[e.key] && (clearTimeout(this._cacheTimers[e.key]), delete this._cacheTimers[e.key], this._setTileReloadTimer(e.key, n))); - const s = n; - return n || (n = new Nr(e, this._source.tileSize * e.overscaleFactor()), this._loadTile(n, e.key, n.state)), n.uses++, this._tiles[e.key] = n, s || this._source.fire(new o.l("dataloading", { - tile: n, - coord: n.tileID, - dataType: "source" - })), n - } - _setTileReloadTimer(e, n) { - e in this._timers && (clearTimeout(this._timers[e]), delete this._timers[e]); - const s = n.getExpiryTimeout(); - s && (this._timers[e] = setTimeout((() => { - this._reloadTile(e, "expired"), delete this._timers[e] - }), s)) - } - refreshTiles(e) { - for (const n in this._tiles)(this._isIdRenderable(n) || this._tiles[n].state == "errored") && e.some((s => s.equals(this._tiles[n].tileID.canonical))) && this._reloadTile(n, "expired") - } - _removeTile(e) { - const n = this._tiles[e]; - n && (n.uses--, delete this._tiles[e], this._timers[e] && (clearTimeout(this._timers[e]), delete this._timers[e]), n.uses > 0 || (n.hasData() && n.state !== "reloading" ? this._cache.add(n.tileID, n, n.getExpiryTimeout()) : (n.aborted = !0, this._abortTile(n), this._unloadTile(n)))) - } - _dataHandler(e) { - const n = e.sourceDataType; - e.dataType === "source" && n === "metadata" && (this._sourceLoaded = !0), this._sourceLoaded && !this._paused && e.dataType === "source" && n === "content" && (this.reload(e.sourceDataChanged), this.transform && this.update(this.transform, this.terrain), this._didEmitContent = !0) - } - clearTiles() { - this._shouldReloadOnResume = !1, this._paused = !1; - for (const e in this._tiles) this._removeTile(e); - this._cache.reset() - } - tilesIn(e, n, s) { - const u = [], - d = this.transform; - if (!d) return u; - const m = d.getCoveringTilesDetailsProvider().allowWorldCopies(), - y = s ? d.getCameraQueryGeometry(e) : e, - w = B => d.screenPointToMercatorCoordinate(B, this.terrain), - P = this.transformBbox(e, w, !m), - M = this.transformBbox(y, w, !m), - D = this.getIds(), - z = o.a2.fromPoints(M); - for (let B = 0; B < D.length; B++) { - const U = this._tiles[D[B]]; - if (U.holdingForFade()) continue; - const ee = m ? [U.tileID] : [U.tileID.unwrapTo(-1), U.tileID.unwrapTo(0)], - J = Math.pow(2, d.zoom - U.tileID.overscaledZ), - re = n * U.queryPadding * o.$ / U.tileSize / J; - for (const se of ee) { - const de = z.map((ue => se.getTilePoint(new o.a1(ue.x, ue.y)))); - if (de.expandBy(re), de.intersects(At)) { - const ue = P.map((Te => se.getTilePoint(Te))), - ge = M.map((Te => se.getTilePoint(Te))); - u.push({ - tile: U, - tileID: m ? se : se.unwrapTo(0), - queryGeometry: ue, - cameraQueryGeometry: ge, - scale: J - }) - } - } - } - return u - } - transformBbox(e, n, s) { - let u = e.map(n); - if (s) { - const d = o.a2.fromPoints(e); - d.shrinkBy(.001 * Math.min(d.width(), d.height())); - const m = d.map(n); - o.a2.fromPoints(u).covers(m) || (u = u.map((y => y.x > .5 ? new o.a1(y.x - 1, y.y, y.z) : y))) - } - return u - } - getVisibleCoordinates(e) { - const n = this.getRenderableIds(e).map((s => this._tiles[s].tileID)); - return this.transform && this.transform.populateCache(n), n - } - hasTransition() { - if (this._source.hasTransition()) return !0; - if (Wt(this._source.type)) { - const e = ye.now(); - for (const n in this._tiles) - if (this._tiles[n].fadeEndTime >= e) return !0 - } - return !1 - } - setFeatureState(e, n, s) { - this._state.updateState(e = e || "_geojsonTileLayer", n, s) - } - removeFeatureState(e, n, s) { - this._state.removeFeatureState(e = e || "_geojsonTileLayer", n, s) - } - getFeatureState(e, n) { - return this._state.getState(e = e || "_geojsonTileLayer", n) - } - setDependencies(e, n, s) { - const u = this._tiles[e]; - u && u.setDependencies(n, s) - } - reloadTilesForDependencies(e, n) { - for (const s in this._tiles) this._tiles[s].hasDependency(e, n) && this._reloadTile(s, "reloading"); - this._cache.filter((s => !s.hasDependency(e, n))) - } - } - - function kt(h, e) { - const n = Math.abs(2 * h.wrap) - +(h.wrap < 0), - s = Math.abs(2 * e.wrap) - +(e.wrap < 0); - return h.overscaledZ - e.overscaledZ || s - n || e.canonical.y - h.canonical.y || e.canonical.x - h.canonical.x - } - - function Wt(h) { - return h === "raster" || h === "image" || h === "video" - } - Pt.maxOverzooming = 10, Pt.maxUnderzooming = 3; - class Lr { - constructor(e, n) { - this.reset(e, n) - } - reset(e, n) { - this.points = e || [], this._distances = [0]; - for (let s = 1; s < this.points.length; s++) this._distances[s] = this._distances[s - 1] + this.points[s].dist(this.points[s - 1]); - this.length = this._distances[this._distances.length - 1], this.padding = Math.min(n || 0, .5 * this.length), this.paddedLength = this.length - 2 * this.padding - } - lerp(e) { - if (this.points.length === 1) return this.points[0]; - e = o.ah(e, 0, 1); - let n = 1, - s = this._distances[n]; - const u = e * this.paddedLength + this.padding; - for (; s < u && n < this._distances.length;) s = this._distances[++n]; - const d = n - 1, - m = this._distances[d], - y = s - m, - w = y > 0 ? (u - m) / y : 0; - return this.points[d].mult(1 - w).add(this.points[n].mult(w)) - } - } - - function Kr(h, e) { - let n = !0; - return h === "always" || h !== "never" && e !== "never" || (n = !1), n - } - class Hr { - constructor(e, n, s) { - const u = this.boxCells = [], - d = this.circleCells = []; - this.xCellCount = Math.ceil(e / s), this.yCellCount = Math.ceil(n / s); - for (let m = 0; m < this.xCellCount * this.yCellCount; m++) u.push([]), d.push([]); - this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = e, this.height = n, this.xScale = this.xCellCount / e, this.yScale = this.yCellCount / n, this.boxUid = 0, this.circleUid = 0 - } - keysLength() { - return this.boxKeys.length + this.circleKeys.length - } - insert(e, n, s, u, d) { - this._forEachCell(n, s, u, d, this._insertBoxCell, this.boxUid++), this.boxKeys.push(e), this.bboxes.push(n), this.bboxes.push(s), this.bboxes.push(u), this.bboxes.push(d) - } - insertCircle(e, n, s, u) { - this._forEachCell(n - u, s - u, n + u, s + u, this._insertCircleCell, this.circleUid++), this.circleKeys.push(e), this.circles.push(n), this.circles.push(s), this.circles.push(u) - } - _insertBoxCell(e, n, s, u, d, m) { - this.boxCells[d].push(m) - } - _insertCircleCell(e, n, s, u, d, m) { - this.circleCells[d].push(m) - } - _query(e, n, s, u, d, m, y) { - if (s < 0 || e > this.width || u < 0 || n > this.height) return []; - const w = []; - if (e <= 0 && n <= 0 && this.width <= s && this.height <= u) { - if (d) return [{ - key: null, - x1: e, - y1: n, - x2: s, - y2: u - }]; - for (let P = 0; P < this.boxKeys.length; P++) w.push({ - key: this.boxKeys[P], - x1: this.bboxes[4 * P], - y1: this.bboxes[4 * P + 1], - x2: this.bboxes[4 * P + 2], - y2: this.bboxes[4 * P + 3] - }); - for (let P = 0; P < this.circleKeys.length; P++) { - const M = this.circles[3 * P], - D = this.circles[3 * P + 1], - z = this.circles[3 * P + 2]; - w.push({ - key: this.circleKeys[P], - x1: M - z, - y1: D - z, - x2: M + z, - y2: D + z - }) - } - } else this._forEachCell(e, n, s, u, this._queryCell, w, { - hitTest: d, - overlapMode: m, - seenUids: { - box: {}, - circle: {} - } - }, y); - return w - } - query(e, n, s, u) { - return this._query(e, n, s, u, !1, null) - } - hitTest(e, n, s, u, d, m) { - return this._query(e, n, s, u, !0, d, m).length > 0 - } - hitTestCircle(e, n, s, u, d) { - const m = e - s, - y = e + s, - w = n - s, - P = n + s; - if (y < 0 || m > this.width || P < 0 || w > this.height) return !1; - const M = []; - return this._forEachCell(m, w, y, P, this._queryCellCircle, M, { - hitTest: !0, - overlapMode: u, - circle: { - x: e, - y: n, - radius: s - }, - seenUids: { - box: {}, - circle: {} - } - }, d), M.length > 0 - } - _queryCell(e, n, s, u, d, m, y, w) { - const { - seenUids: P, - hitTest: M, - overlapMode: D - } = y, z = this.boxCells[d]; - if (z !== null) { - const U = this.bboxes; - for (const ee of z) - if (!P.box[ee]) { - P.box[ee] = !0; - const J = 4 * ee, - re = this.boxKeys[ee]; - if (e <= U[J + 2] && n <= U[J + 3] && s >= U[J + 0] && u >= U[J + 1] && (!w || w(re)) && (!M || !Kr(D, re.overlapMode)) && (m.push({ - key: re, - x1: U[J], - y1: U[J + 1], - x2: U[J + 2], - y2: U[J + 3] - }), M)) return !0 - } - } - const B = this.circleCells[d]; - if (B !== null) { - const U = this.circles; - for (const ee of B) - if (!P.circle[ee]) { - P.circle[ee] = !0; - const J = 3 * ee, - re = this.circleKeys[ee]; - if (this._circleAndRectCollide(U[J], U[J + 1], U[J + 2], e, n, s, u) && (!w || w(re)) && (!M || !Kr(D, re.overlapMode))) { - const se = U[J], - de = U[J + 1], - ue = U[J + 2]; - if (m.push({ - key: re, - x1: se - ue, - y1: de - ue, - x2: se + ue, - y2: de + ue - }), M) return !0 - } - } - } - return !1 - } - _queryCellCircle(e, n, s, u, d, m, y, w) { - const { - circle: P, - seenUids: M, - overlapMode: D - } = y, z = this.boxCells[d]; - if (z !== null) { - const U = this.bboxes; - for (const ee of z) - if (!M.box[ee]) { - M.box[ee] = !0; - const J = 4 * ee, - re = this.boxKeys[ee]; - if (this._circleAndRectCollide(P.x, P.y, P.radius, U[J + 0], U[J + 1], U[J + 2], U[J + 3]) && (!w || w(re)) && !Kr(D, re.overlapMode)) return m.push(!0), !0 - } - } - const B = this.circleCells[d]; - if (B !== null) { - const U = this.circles; - for (const ee of B) - if (!M.circle[ee]) { - M.circle[ee] = !0; - const J = 3 * ee, - re = this.circleKeys[ee]; - if (this._circlesCollide(U[J], U[J + 1], U[J + 2], P.x, P.y, P.radius) && (!w || w(re)) && !Kr(D, re.overlapMode)) return m.push(!0), !0 - } - } - } - _forEachCell(e, n, s, u, d, m, y, w) { - const P = this._convertToXCellCoord(e), - M = this._convertToYCellCoord(n), - D = this._convertToXCellCoord(s), - z = this._convertToYCellCoord(u); - for (let B = P; B <= D; B++) - for (let U = M; U <= z; U++) - if (d.call(this, e, n, s, u, this.xCellCount * U + B, m, y, w)) return - } - _convertToXCellCoord(e) { - return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(e * this.xScale))) - } - _convertToYCellCoord(e) { - return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(e * this.yScale))) - } - _circlesCollide(e, n, s, u, d, m) { - const y = u - e, - w = d - n, - P = s + m; - return P * P > y * y + w * w - } - _circleAndRectCollide(e, n, s, u, d, m, y) { - const w = (m - u) / 2, - P = Math.abs(e - (u + w)); - if (P > w + s) return !1; - const M = (y - d) / 2, - D = Math.abs(n - (d + M)); - if (D > M + s) return !1; - if (P <= w || D <= M) return !0; - const z = P - w, - B = D - M; - return z * z + B * B <= s * s - } - } - - function $r(h, e, n) { - const s = o.L(); - if (!h) { - const { - vecSouth: D, - vecEast: z - } = gr(e), B = W(); - B[0] = z[0], B[1] = z[1], B[2] = D[0], B[3] = D[1], u = B, (M = (m = (d = B)[0]) * (P = d[3]) - (w = d[2]) * (y = d[1])) && (u[0] = P * (M = 1 / M), u[1] = -y * M, u[2] = -w * M, u[3] = m * M), s[0] = B[0], s[1] = B[1], s[4] = B[2], s[5] = B[3] - } - var u, d, m, y, w, P, M; - return o.N(s, s, [1 / n, 1 / n, 1]), s - } - - function mr(h, e, n, s) { - if (h) { - const u = o.L(); - if (!e) { - const { - vecSouth: d, - vecEast: m - } = gr(n); - u[0] = m[0], u[1] = m[1], u[4] = d[0], u[5] = d[1] - } - return o.N(u, u, [s, s, 1]), u - } - return n.pixelsToClipSpaceMatrix - } - - function gr(h) { - const e = Math.cos(h.rollInRadians), - n = Math.sin(h.rollInRadians), - s = Math.cos(h.pitchInRadians), - u = Math.cos(h.bearingInRadians), - d = Math.sin(h.bearingInRadians), - m = o.ar(); - m[0] = -u * s * n - d * e, m[1] = -d * s * n + u * e; - const y = o.as(m); - y < 1e-9 ? o.at(m) : o.au(m, m, 1 / y); - const w = o.ar(); - w[0] = u * s * e - d * n, w[1] = d * s * e + u * n; - const P = o.as(w); - return P < 1e-9 ? o.at(w) : o.au(w, w, 1 / P), { - vecEast: w, - vecSouth: m - } - } - - function ai(h, e, n, s) { - let u; - s ? (u = [h, e, s(h, e), 1], o.aw(u, u, n)) : (u = [h, e, 0, 1], Li(u, u, n)); - const d = u[3]; - return { - point: new o.P(u[0] / d, u[1] / d), - signedDistanceFromCamera: d, - isOccluded: !1 - } - } - - function Tt(h, e) { - return .5 + h / e * .5 - } - - function Ci(h, e) { - return h.x >= -e[0] && h.x <= e[0] && h.y >= -e[1] && h.y <= e[1] - } - - function di(h, e, n, s, u, d, m, y, w, P, M, D, z) { - const B = n ? h.textSizeData : h.iconSizeData, - U = o.an(B, e.transform.zoom), - ee = [256 / e.width * 2 + 1, 256 / e.height * 2 + 1], - J = n ? h.text.dynamicLayoutVertexArray : h.icon.dynamicLayoutVertexArray; - J.clear(); - const re = h.lineVertexArray, - se = n ? h.text.placedSymbolArray : h.icon.placedSymbolArray, - de = e.transform.width / e.transform.height; - let ue = !1; - for (let ge = 0; ge < se.length; ge++) { - const Te = se.get(ge); - if (Te.hidden || Te.writingMode === o.ao.vertical && !ue) { - mi(Te.numGlyphs, J); - continue - } - ue = !1; - const he = new o.P(Te.anchorX, Te.anchorY), - De = { - getElevation: z, - pitchedLabelPlaneMatrix: s, - lineVertexArray: re, - pitchWithMap: d, - projectionCache: { - projections: {}, - offsets: {}, - cachedAnchorPoint: void 0, - anyProjectionOccluded: !1 - }, - transform: e.transform, - tileAnchorPoint: he, - unwrappedTileID: w, - width: P, - height: M, - translation: D - }, - He = li(Te.anchorX, Te.anchorY, De); - if (!Ci(He.point, ee)) { - mi(Te.numGlyphs, J); - continue - } - const je = Tt(e.transform.cameraToCenterDistance, He.signedDistanceFromCamera), - qe = o.ap(B, U, Te), - $e = d ? qe * e.transform.getPitchedTextCorrection(Te.anchorX, Te.anchorY, w) / je : qe * je, - Rt = Ke({ - projectionContext: De, - pitchedLabelPlaneMatrixInverse: u, - symbol: Te, - fontSize: $e, - flip: !1, - keepUpright: m, - glyphOffsetArray: h.glyphOffsetArray, - dynamicLayoutVertexArray: J, - aspectRatio: de, - rotateToLine: y - }); - ue = Rt.useVertical, (Rt.notEnoughRoom || ue || Rt.needsFlipping && Ke({ - projectionContext: De, - pitchedLabelPlaneMatrixInverse: u, - symbol: Te, - fontSize: $e, - flip: !0, - keepUpright: m, - glyphOffsetArray: h.glyphOffsetArray, - dynamicLayoutVertexArray: J, - aspectRatio: de, - rotateToLine: y - }).notEnoughRoom) && mi(Te.numGlyphs, J) - } - n ? h.text.dynamicLayoutVertexBuffer.updateData(J) : h.icon.dynamicLayoutVertexBuffer.updateData(J) - } - - function Pn(h, e, n, s, u, d, m, y) { - const w = d.glyphStartIndex + d.numGlyphs, - P = d.lineStartIndex, - M = d.lineStartIndex + d.lineLength, - D = e.getoffsetX(d.glyphStartIndex), - z = e.getoffsetX(w - 1), - B = Si(h * D, n, s, u, d.segment, P, M, y, m); - if (!B) return null; - const U = Si(h * z, n, s, u, d.segment, P, M, y, m); - return U ? y.projectionCache.anyProjectionOccluded ? null : { - first: B, - last: U - } : null - } - - function Mt(h, e, n, s) { - return h === o.ao.horizontal && Math.abs(n.y - e.y) > Math.abs(n.x - e.x) * s ? { - useVertical: !0 - } : (h === o.ao.vertical ? e.y < n.y : e.x > n.x) ? { - needsFlipping: !0 - } : null - } - - function Ke(h) { - const { - projectionContext: e, - pitchedLabelPlaneMatrixInverse: n, - symbol: s, - fontSize: u, - flip: d, - keepUpright: m, - glyphOffsetArray: y, - dynamicLayoutVertexArray: w, - aspectRatio: P, - rotateToLine: M - } = h, D = u / 24, z = s.lineOffsetX * D, B = s.lineOffsetY * D; - let U; - if (s.numGlyphs > 1) { - const ee = s.glyphStartIndex + s.numGlyphs, - J = s.lineStartIndex, - re = s.lineStartIndex + s.lineLength, - se = Pn(D, y, z, B, d, s, M, e); - if (!se) return { - notEnoughRoom: !0 - }; - const de = Gr(se.first.point.x, se.first.point.y, e, n), - ue = Gr(se.last.point.x, se.last.point.y, e, n); - if (m && !d) { - const ge = Mt(s.writingMode, de, ue, P); - if (ge) return ge - } - U = [se.first]; - for (let ge = s.glyphStartIndex + 1; ge < ee - 1; ge++) { - const Te = Si(D * y.getoffsetX(ge), z, B, d, s.segment, J, re, e, M); - if (!Te) return { - notEnoughRoom: !0 - }; - U.push(Te) - } - U.push(se.last) - } else { - if (m && !d) { - const J = Dr(e.tileAnchorPoint.x, e.tileAnchorPoint.y, e).point, - re = s.lineStartIndex + s.segment + 1, - se = new o.P(e.lineVertexArray.getx(re), e.lineVertexArray.gety(re)), - de = Dr(se.x, se.y, e), - ue = de.signedDistanceFromCamera > 0 ? de.point : jt(e.tileAnchorPoint, se, J, 1, e), - ge = Gr(J.x, J.y, e, n), - Te = Gr(ue.x, ue.y, e, n), - he = Mt(s.writingMode, ge, Te, P); - if (he) return he - } - const ee = Si(D * y.getoffsetX(s.glyphStartIndex), z, B, d, s.segment, s.lineStartIndex, s.lineStartIndex + s.lineLength, e, M); - if (!ee || e.projectionCache.anyProjectionOccluded) return { - notEnoughRoom: !0 - }; - U = [ee] - } - for (const ee of U) o.av(w, ee.point, ee.angle); - return {} - } - - function jt(h, e, n, s, u) { - const d = h.add(h.sub(e)._unit()), - m = Dr(d.x, d.y, u).point, - y = n.sub(m); - return n.add(y._mult(s / y.mag())) - } - - function Gt(h, e, n) { - const s = e.projectionCache; - if (s.projections[h]) return s.projections[h]; - const u = new o.P(e.lineVertexArray.getx(h), e.lineVertexArray.gety(h)), - d = Dr(u.x, u.y, e); - if (d.signedDistanceFromCamera > 0) return s.projections[h] = d.point, s.anyProjectionOccluded = s.anyProjectionOccluded || d.isOccluded, d.point; - const m = h - n.direction; - return jt(n.distanceFromAnchor === 0 ? e.tileAnchorPoint : new o.P(e.lineVertexArray.getx(m), e.lineVertexArray.gety(m)), u, n.previousVertex, n.absOffsetX - n.distanceFromAnchor + 1, e) - } - - function Dr(h, e, n) { - const s = h + n.translation[0], - u = e + n.translation[1]; - let d; - return n.pitchWithMap ? (d = ai(s, u, n.pitchedLabelPlaneMatrix, n.getElevation), d.isOccluded = !1) : (d = n.transform.projectTileCoordinates(s, u, n.unwrappedTileID, n.getElevation), d.point.x = (.5 * d.point.x + .5) * n.width, d.point.y = (.5 * -d.point.y + .5) * n.height), d - } - - function Gr(h, e, n, s) { - if (n.pitchWithMap) { - const u = [h, e, 0, 1]; - return o.aw(u, u, s), n.transform.projectTileCoordinates(u[0] / u[3], u[1] / u[3], n.unwrappedTileID, n.getElevation).point - } - return { - x: h / n.width * 2 - 1, - y: 1 - e / n.height * 2 - } - } - - function li(h, e, n) { - return n.transform.projectTileCoordinates(h, e, n.unwrappedTileID, n.getElevation) - } - - function fr(h, e, n) { - return h._unit()._perp()._mult(e * n) - } - - function bi(h, e, n, s, u, d, m, y, w) { - if (y.projectionCache.offsets[h]) return y.projectionCache.offsets[h]; - const P = n.add(e); - if (h + w.direction < s || h + w.direction >= u) return y.projectionCache.offsets[h] = P, P; - const M = Gt(h + w.direction, y, w), - D = fr(M.sub(n), m, w.direction), - z = n.add(D), - B = M.add(D); - return y.projectionCache.offsets[h] = o.ax(d, P, z, B) || P, y.projectionCache.offsets[h] - } - - function Si(h, e, n, s, u, d, m, y, w) { - const P = s ? h - e : h + e; - let M = P > 0 ? 1 : -1, - D = 0; - s && (M *= -1, D = Math.PI), M < 0 && (D += Math.PI); - let z, B = M > 0 ? d + u : d + u + 1; - y.projectionCache.cachedAnchorPoint ? z = y.projectionCache.cachedAnchorPoint : (z = Dr(y.tileAnchorPoint.x, y.tileAnchorPoint.y, y).point, y.projectionCache.cachedAnchorPoint = z); - let U, ee, J = z, - re = z, - se = 0, - de = 0; - const ue = Math.abs(P), - ge = []; - let Te; - for (; se + de <= ue;) { - if (B += M, B < d || B >= m) return null; - se += de, re = J, ee = U; - const He = { - absOffsetX: ue, - direction: M, - distanceFromAnchor: se, - previousVertex: re - }; - if (J = Gt(B, y, He), n === 0) ge.push(re), Te = J.sub(re); - else { - let je; - const qe = J.sub(re); - je = qe.mag() === 0 ? fr(Gt(B + M, y, He).sub(J), n, M) : fr(qe, n, M), ee || (ee = re.add(je)), U = bi(B, je, J, d, m, ee, n, y, He), ge.push(ee), Te = U.sub(ee) - } - de = Te.mag() - } - const he = Te._mult((ue - se) / de)._add(ee || re), - De = D + Math.atan2(J.y - re.y, J.x - re.x); - return ge.push(he), { - point: he, - angle: w ? De : 0, - path: ge - } - } - const zi = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]); - - function mi(h, e) { - for (let n = 0; n < h; n++) { - const s = e.length; - e.resize(s + 4), e.float32.set(zi, 3 * s) - } - } - - function Li(h, e, n) { - const s = e[0], - u = e[1]; - return h[0] = n[0] * s + n[4] * u + n[12], h[1] = n[1] * s + n[5] * u + n[13], h[3] = n[3] * s + n[7] * u + n[15], h - } - const rr = 100; - class yi { - constructor(e, n = new Hr(e.width + 200, e.height + 200, 25), s = new Hr(e.width + 200, e.height + 200, 25)) { - this.transform = e, this.grid = n, this.ignoredGrid = s, this.pitchFactor = Math.cos(e.pitch * Math.PI / 180) * e.cameraToCenterDistance, this.screenRightBoundary = e.width + rr, this.screenBottomBoundary = e.height + rr, this.gridRightBoundary = e.width + 200, this.gridBottomBoundary = e.height + 200, this.perspectiveRatioCutoff = .6 - } - placeCollisionBox(e, n, s, u, d, m, y, w, P, M, D, z) { - const B = this.projectAndGetPerspectiveRatio(e.anchorPointX + w[0], e.anchorPointY + w[1], d, M, z), - U = s * B.perspectiveRatio; - let ee; - if (m || y) ee = this._projectCollisionBox(e, U, u, d, m, y, w, B, M, D, z); - else { - const Te = B.x + (D ? D.x * U : 0), - he = B.y + (D ? D.y * U : 0); - ee = { - allPointsOccluded: !1, - box: [Te + e.x1 * U, he + e.y1 * U, Te + e.x2 * U, he + e.y2 * U] - } - } - const [J, re, se, de] = ee.box, ue = m ? ee.allPointsOccluded : B.isOccluded; - let ge = ue; - return ge || (ge = B.perspectiveRatio < this.perspectiveRatioCutoff), ge || (ge = !this.isInsideGrid(J, re, se, de)), ge || n !== "always" && this.grid.hitTest(J, re, se, de, n, P) ? { - box: [J, re, se, de], - placeable: !1, - offscreen: !1, - occluded: ue - } : { - box: [J, re, se, de], - placeable: !0, - offscreen: this.isOffscreen(J, re, se, de), - occluded: ue - } - } - placeCollisionCircles(e, n, s, u, d, m, y, w, P, M, D, z, B, U) { - const ee = [], - J = new o.P(n.anchorX, n.anchorY), - re = this.getPerspectiveRatio(J.x, J.y, m, U), - se = (P ? d * this.transform.getPitchedTextCorrection(n.anchorX, n.anchorY, m) / re : d * re) / o.aB, - de = { - getElevation: U, - pitchedLabelPlaneMatrix: y, - lineVertexArray: s, - pitchWithMap: P, - projectionCache: { - projections: {}, - offsets: {}, - cachedAnchorPoint: void 0, - anyProjectionOccluded: !1 - }, - transform: this.transform, - tileAnchorPoint: J, - unwrappedTileID: m, - width: this.transform.width, - height: this.transform.height, - translation: B - }, - ue = Pn(se, u, n.lineOffsetX * se, n.lineOffsetY * se, !1, n, !1, de); - let ge = !1, - Te = !1, - he = !0; - if (ue) { - const De = .5 * D * re + z, - He = new o.P(-100, -100), - je = new o.P(this.screenRightBoundary, this.screenBottomBoundary), - qe = new Lr, - $e = ue.first, - Rt = ue.last; - let Nt = []; - for (let Xr = $e.path.length - 1; Xr >= 1; Xr--) Nt.push($e.path[Xr]); - for (let Xr = 1; Xr < Rt.path.length; Xr++) Nt.push(Rt.path[Xr]); - const yt = 2.5 * De; - if (P) { - const Xr = this.projectPathToScreenSpace(Nt, de); - Nt = Xr.some((xi => xi.signedDistanceFromCamera <= 0)) ? [] : Xr.map((xi => xi.point)) - } - let sr = []; - if (Nt.length > 0) { - const Xr = Nt[0].clone(), - xi = Nt[0].clone(); - for (let ki = 1; ki < Nt.length; ki++) Xr.x = Math.min(Xr.x, Nt[ki].x), Xr.y = Math.min(Xr.y, Nt[ki].y), xi.x = Math.max(xi.x, Nt[ki].x), xi.y = Math.max(xi.y, Nt[ki].y); - sr = Xr.x >= He.x && xi.x <= je.x && Xr.y >= He.y && xi.y <= je.y ? [Nt] : xi.x < He.x || Xr.x > je.x || xi.y < He.y || Xr.y > je.y ? [] : o.ay([Nt], He.x, He.y, je.x, je.y) - } - for (const Xr of sr) { - qe.reset(Xr, .25 * De); - let xi = 0; - xi = qe.length <= .5 * De ? 1 : Math.ceil(qe.paddedLength / yt) + 1; - for (let ki = 0; ki < xi; ki++) { - const Pi = ki / Math.max(xi - 1, 1), - ji = qe.lerp(Pi), - Ui = ji.x + rr, - Wr = ji.y + rr; - ee.push(Ui, Wr, De, 0); - const Ei = Ui - De, - Qi = Wr - De, - dn = Ui + De, - xn = Wr + De; - if (he = he && this.isOffscreen(Ei, Qi, dn, xn), Te = Te || this.isInsideGrid(Ei, Qi, dn, xn), e !== "always" && this.grid.hitTestCircle(Ui, Wr, De, e, M) && (ge = !0, !w)) return { - circles: [], - offscreen: !1, - collisionDetected: ge - } - } - } - } - return { - circles: !w && ge || !Te || re < this.perspectiveRatioCutoff ? [] : ee, - offscreen: he, - collisionDetected: ge - } - } - projectPathToScreenSpace(e, n) { - const s = (function(u, d) { - const m = o.L(); - return o.aq(m, d.pitchedLabelPlaneMatrix), u.map((y => { - const w = ai(y.x, y.y, m, d.getElevation), - P = d.transform.projectTileCoordinates(w.point.x, w.point.y, d.unwrappedTileID, d.getElevation); - return P.point.x = (.5 * P.point.x + .5) * d.width, P.point.y = (.5 * -P.point.y + .5) * d.height, P - })) - })(e, n); - return (function(u) { - let d = 0, - m = 0, - y = 0, - w = 0; - for (let P = 0; P < u.length; P++) u[P].isOccluded ? (y = P + 1, w = 0) : (w++, w > m && (m = w, d = y)); - return u.slice(d, d + m) - })(s) - } - queryRenderedSymbols(e) { - if (e.length === 0 || this.grid.keysLength() === 0 && this.ignoredGrid.keysLength() === 0) return {}; - const n = [], - s = new o.a2; - for (const D of e) { - const z = new o.P(D.x + rr, D.y + rr); - s.extend(z), n.push(z) - } - const { - minX: u, - minY: d, - maxX: m, - maxY: y - } = s, w = this.grid.query(u, d, m, y).concat(this.ignoredGrid.query(u, d, m, y)), P = {}, M = {}; - for (const D of w) { - const z = D.key; - if (P[z.bucketInstanceId] === void 0 && (P[z.bucketInstanceId] = {}), P[z.bucketInstanceId][z.featureIndex]) continue; - const B = [new o.P(D.x1, D.y1), new o.P(D.x2, D.y1), new o.P(D.x2, D.y2), new o.P(D.x1, D.y2)]; - o.az(n, B) && (P[z.bucketInstanceId][z.featureIndex] = !0, M[z.bucketInstanceId] === void 0 && (M[z.bucketInstanceId] = []), M[z.bucketInstanceId].push(z.featureIndex)) - } - return M - } - insertCollisionBox(e, n, s, u, d, m) { - (s ? this.ignoredGrid : this.grid).insert({ - bucketInstanceId: u, - featureIndex: d, - collisionGroupID: m, - overlapMode: n - }, e[0], e[1], e[2], e[3]) - } - insertCollisionCircles(e, n, s, u, d, m) { - const y = s ? this.ignoredGrid : this.grid, - w = { - bucketInstanceId: u, - featureIndex: d, - collisionGroupID: m, - overlapMode: n - }; - for (let P = 0; P < e.length; P += 4) y.insertCircle(w, e[P], e[P + 1], e[P + 2]) - } - projectAndGetPerspectiveRatio(e, n, s, u, d) { - if (d) { - let m; - u ? (m = [e, n, u(e, n), 1], o.aw(m, m, d)) : (m = [e, n, 0, 1], Li(m, m, d)); - const y = m[3]; - return { - x: (m[0] / y + 1) / 2 * this.transform.width + rr, - y: (-m[1] / y + 1) / 2 * this.transform.height + rr, - perspectiveRatio: .5 + this.transform.cameraToCenterDistance / y * .5, - isOccluded: !1, - signedDistanceFromCamera: y - } - } { - const m = this.transform.projectTileCoordinates(e, n, s, u); - return { - x: (m.point.x + 1) / 2 * this.transform.width + rr, - y: (1 - m.point.y) / 2 * this.transform.height + rr, - perspectiveRatio: .5 + this.transform.cameraToCenterDistance / m.signedDistanceFromCamera * .5, - isOccluded: m.isOccluded, - signedDistanceFromCamera: m.signedDistanceFromCamera - } - } - } - getPerspectiveRatio(e, n, s, u) { - const d = this.transform.projectTileCoordinates(e, n, s, u); - return .5 + this.transform.cameraToCenterDistance / d.signedDistanceFromCamera * .5 - } - isOffscreen(e, n, s, u) { - return s < rr || e >= this.screenRightBoundary || u < rr || n > this.screenBottomBoundary - } - isInsideGrid(e, n, s, u) { - return s >= 0 && e < this.gridRightBoundary && u >= 0 && n < this.gridBottomBoundary - } - getViewportMatrix() { - const e = o.ag([]); - return o.M(e, e, [-100, -100, 0]), e - } - _projectCollisionBox(e, n, s, u, d, m, y, w, P, M, D) { - let z = 1, - B = 0, - U = 0, - ee = 1; - const J = e.anchorPointX + y[0], - re = e.anchorPointY + y[1]; - if (m && !d) { - const Nt = this.projectAndGetPerspectiveRatio(J + 1, re, u, P, D), - yt = Nt.x - w.x, - sr = Math.atan((Nt.y - w.y) / yt) + (yt < 0 ? Math.PI : 0), - Xr = Math.sin(sr), - xi = Math.cos(sr); - z = xi, B = Xr, U = -Xr, ee = xi - } else if (!m && d) { - const Nt = gr(this.transform); - z = Nt.vecEast[0], B = Nt.vecEast[1], U = Nt.vecSouth[0], ee = Nt.vecSouth[1] - } - let se = w.x, - de = w.y, - ue = n; - d && (se = J, de = re, ue = Math.pow(2, -(this.transform.zoom - s.overscaledZ)), ue *= this.transform.getPitchedTextCorrection(J, re, u), M || (ue *= o.ah(.5 + w.signedDistanceFromCamera / this.transform.cameraToCenterDistance * .5, 0, 4))), M && (se += z * M.x * ue + U * M.y * ue, de += B * M.x * ue + ee * M.y * ue); - const ge = e.x1 * ue, - Te = e.x2 * ue, - he = (ge + Te) / 2, - De = e.y1 * ue, - He = e.y2 * ue, - je = (De + He) / 2, - qe = [{ - offsetX: ge, - offsetY: De - }, { - offsetX: he, - offsetY: De - }, { - offsetX: Te, - offsetY: De - }, { - offsetX: Te, - offsetY: je - }, { - offsetX: Te, - offsetY: He - }, { - offsetX: he, - offsetY: He - }, { - offsetX: ge, - offsetY: He - }, { - offsetX: ge, - offsetY: je - }]; - let $e = []; - for (const { - offsetX: Nt, - offsetY: yt - } - of qe) $e.push(new o.P(se + z * Nt + U * yt, de + B * Nt + ee * yt)); - let Rt = !1; - if (d) { - const Nt = $e.map((yt => this.projectAndGetPerspectiveRatio(yt.x, yt.y, u, P, D))); - Rt = Nt.some((yt => !yt.isOccluded)), $e = Nt.map((yt => new o.P(yt.x, yt.y))) - } else Rt = !0; - return { - box: o.aA($e), - allPointsOccluded: !Rt - } - } - } - class Qr { - constructor(e, n, s, u) { - this.opacity = e ? Math.max(0, Math.min(1, e.opacity + (e.placed ? n : -n))) : u && s ? 1 : 0, this.placed = s - } - isHidden() { - return this.opacity === 0 && !this.placed - } - } - class Yr { - constructor(e, n, s, u, d) { - this.text = new Qr(e ? e.text : null, n, s, d), this.icon = new Qr(e ? e.icon : null, n, u, d) - } - isHidden() { - return this.text.isHidden() && this.icon.isHidden() - } - } - class la { - constructor(e, n, s) { - this.text = e, this.icon = n, this.skipFade = s - } - } - class sn { - constructor(e, n, s, u, d) { - this.bucketInstanceId = e, this.featureIndex = n, this.sourceLayerIndex = s, this.bucketIndex = u, this.tileID = d - } - } - class ta { - constructor(e) { - this.crossSourceCollisions = e, this.maxGroupID = 0, this.collisionGroups = {} - } - get(e) { - if (this.crossSourceCollisions) return { - ID: 0, - predicate: null - }; - if (!this.collisionGroups[e]) { - const n = ++this.maxGroupID; - this.collisionGroups[e] = { - ID: n, - predicate: s => s.collisionGroupID === n - } - } - return this.collisionGroups[e] - } - } - - function Fi(h, e, n, s, u) { - const { - horizontalAlign: d, - verticalAlign: m - } = o.aH(h); - return new o.P(-(d - .5) * e + s[0] * u, -(m - .5) * n + s[1] * u) - } - class Xi { - constructor(e, n, s, u, d) { - this.transform = e.clone(), this.terrain = n, this.collisionIndex = new yi(this.transform), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = !1, this.commitTime = 0, this.fadeDuration = s, this.retainedQueryData = {}, this.collisionGroups = new ta(u), this.collisionCircleArrays = {}, this.collisionBoxArrays = new Map, this.prevPlacement = d, d && (d.prevPlacement = void 0), this.placedOrientations = {} - } - _getTerrainElevationFunc(e) { - const n = this.terrain; - return n ? (s, u) => n.getElevation(e, s, u) : null - } - getBucketParts(e, n, s, u) { - const d = s.getBucket(n), - m = s.latestFeatureIndex; - if (!d || !m || n.id !== d.layerIds[0]) return; - const y = s.collisionBoxArray, - w = d.layers[0].layout, - P = d.layers[0].paint, - M = Math.pow(2, this.transform.zoom - s.tileID.overscaledZ), - D = s.tileSize / o.$, - z = s.tileID.toUnwrapped(), - B = w.get("text-rotation-alignment") === "map", - U = o.aC(s, 1, this.transform.zoom), - ee = o.aD(this.collisionIndex.transform, s, P.get("text-translate"), P.get("text-translate-anchor")), - J = o.aD(this.collisionIndex.transform, s, P.get("icon-translate"), P.get("icon-translate-anchor")), - re = $r(B, this.transform, U); - this.retainedQueryData[d.bucketInstanceId] = new sn(d.bucketInstanceId, m, d.sourceLayerIndex, d.index, s.tileID); - const se = { - bucket: d, - layout: w, - translationText: ee, - translationIcon: J, - unwrappedTileID: z, - pitchedLabelPlaneMatrix: re, - scale: M, - textPixelRatio: D, - holdingForFade: s.holdingForFade(), - collisionBoxArray: y, - partiallyEvaluatedTextSize: o.an(d.textSizeData, this.transform.zoom), - collisionGroup: this.collisionGroups.get(d.sourceID) - }; - if (u) - for (const de of d.sortKeyRanges) { - const { - sortKey: ue, - symbolInstanceStart: ge, - symbolInstanceEnd: Te - } = de; - e.push({ - sortKey: ue, - symbolInstanceStart: ge, - symbolInstanceEnd: Te, - parameters: se - }) - } else e.push({ - symbolInstanceStart: 0, - symbolInstanceEnd: d.symbolInstances.length, - parameters: se - }) - } - attemptAnchorPlacement(e, n, s, u, d, m, y, w, P, M, D, z, B, U, ee, J, re, se, de, ue) { - const ge = o.aE[e.textAnchor], - Te = [e.textOffset0, e.textOffset1], - he = Fi(ge, s, u, Te, d), - De = this.collisionIndex.placeCollisionBox(n, z, w, P, M, y, m, J, D.predicate, de, he, ue); - if ((!se || this.collisionIndex.placeCollisionBox(se, z, w, P, M, y, m, re, D.predicate, de, he, ue).placeable) && De.placeable) { - let He; - if (this.prevPlacement && this.prevPlacement.variableOffsets[B.crossTileID] && this.prevPlacement.placements[B.crossTileID] && this.prevPlacement.placements[B.crossTileID].text && (He = this.prevPlacement.variableOffsets[B.crossTileID].anchor), B.crossTileID === 0) throw new Error("symbolInstance.crossTileID can't be 0"); - return this.variableOffsets[B.crossTileID] = { - textOffset: Te, - width: s, - height: u, - anchor: ge, - textBoxScale: d, - prevAnchor: He - }, this.markUsedJustification(U, ge, B, ee), U.allowVerticalPlacement && (this.markUsedOrientation(U, ee, B), this.placedOrientations[B.crossTileID] = ee), { - shift: he, - placedGlyphBoxes: De - } - } - } - placeLayerBucketPart(e, n, s) { - const { - bucket: u, - layout: d, - translationText: m, - translationIcon: y, - unwrappedTileID: w, - pitchedLabelPlaneMatrix: P, - textPixelRatio: M, - holdingForFade: D, - collisionBoxArray: z, - partiallyEvaluatedTextSize: B, - collisionGroup: U - } = e.parameters, ee = d.get("text-optional"), J = d.get("icon-optional"), re = o.aF(d, "text-overlap", "text-allow-overlap"), se = re === "always", de = o.aF(d, "icon-overlap", "icon-allow-overlap"), ue = de === "always", ge = d.get("text-rotation-alignment") === "map", Te = d.get("text-pitch-alignment") === "map", he = d.get("icon-text-fit") !== "none", De = d.get("symbol-z-order") === "viewport-y", He = se && (ue || !u.hasIconData() || J), je = ue && (se || !u.hasTextData() || ee); - !u.collisionArrays && z && u.deserializeCollisionBoxes(z); - const qe = this.retainedQueryData[u.bucketInstanceId].tileID, - $e = this._getTerrainElevationFunc(qe), - Rt = this.transform.getFastPathSimpleProjectionMatrix(qe), - Nt = (yt, sr, Xr) => { - var xi, ki; - if (n[yt.crossTileID]) return; - if (D) return void(this.placements[yt.crossTileID] = new la(!1, !1, !1)); - let Pi = !1, - ji = !1, - Ui = !0, - Wr = null, - Ei = { - box: null, - placeable: !1, - offscreen: null, - occluded: !1 - }, - Qi = { - placeable: !1 - }, - dn = null, - xn = null, - qn = null, - Sa = 0, - as = 0, - ss = 0; - sr.textFeatureIndex ? Sa = sr.textFeatureIndex : yt.useRuntimeCollisionCircles && (Sa = yt.featureIndex), sr.verticalTextFeatureIndex && (as = sr.verticalTextFeatureIndex); - const Ys = sr.textBox; - if (Ys) { - const Kn = en => { - let pn = o.ao.horizontal; - if (u.allowVerticalPlacement && !en && this.prevPlacement) { - const da = this.prevPlacement.placedOrientations[yt.crossTileID]; - da && (this.placedOrientations[yt.crossTileID] = da, pn = da, this.markUsedOrientation(u, pn, yt)) - } - return pn - }, - Pa = (en, pn) => { - if (u.allowVerticalPlacement && yt.numVerticalGlyphVertices > 0 && sr.verticalTextBox) { - for (const da of u.writingModes) - if (da === o.ao.vertical ? (Ei = pn(), Qi = Ei) : Ei = en(), Ei && Ei.placeable) break - } else Ei = en() - }, - Vn = yt.textAnchorOffsetStartIndex, - os = yt.textAnchorOffsetEndIndex; - if (os === Vn) { - const en = (pn, da) => { - const tn = this.collisionIndex.placeCollisionBox(pn, re, M, qe, w, Te, ge, m, U.predicate, $e, void 0, Rt); - return tn && tn.placeable && (this.markUsedOrientation(u, da, yt), this.placedOrientations[yt.crossTileID] = da), tn - }; - Pa((() => en(Ys, o.ao.horizontal)), (() => { - const pn = sr.verticalTextBox; - return u.allowVerticalPlacement && yt.numVerticalGlyphVertices > 0 && pn ? en(pn, o.ao.vertical) : { - box: null, - offscreen: null - } - })), Kn(Ei && Ei.placeable) - } else { - let en = o.aE[(ki = (xi = this.prevPlacement) === null || xi === void 0 ? void 0 : xi.variableOffsets[yt.crossTileID]) === null || ki === void 0 ? void 0 : ki.anchor]; - const pn = (tn, Ro, Qs) => { - const Ha = tn.x2 - tn.x1, - Ia = tn.y2 - tn.y1, - ls = yt.textBoxScale, - id = he && de === "never" ? Ro : null; - let ia = null, - nd = re === "never" ? 1 : 2, - tu = "never"; - en && nd++; - for (let kl = 0; kl < nd; kl++) { - for (let El = Vn; El < os; El++) { - const cs = u.textAnchorOffsets.get(El); - if (en && cs.textAnchor !== en) continue; - const Wa = this.attemptAnchorPlacement(cs, tn, Ha, Ia, ls, ge, Te, M, qe, w, U, tu, yt, u, Qs, m, y, id, $e); - if (Wa && (ia = Wa.placedGlyphBoxes, ia && ia.placeable)) return Pi = !0, Wr = Wa.shift, ia - } - en ? en = null : tu = re - } - return s && !ia && (ia = { - box: this.collisionIndex.placeCollisionBox(Ys, "always", M, qe, w, Te, ge, m, U.predicate, $e, void 0, Rt).box, - offscreen: !1, - placeable: !1, - occluded: !1 - }), ia - }; - Pa((() => pn(Ys, sr.iconBox, o.ao.horizontal)), (() => { - const tn = sr.verticalTextBox; - return u.allowVerticalPlacement && (!Ei || !Ei.placeable) && yt.numVerticalGlyphVertices > 0 && tn ? pn(tn, sr.verticalIconBox, o.ao.vertical) : { - box: null, - occluded: !0, - offscreen: null - } - })), Ei && (Pi = Ei.placeable, Ui = Ei.offscreen); - const da = Kn(Ei && Ei.placeable); - if (!Pi && this.prevPlacement) { - const tn = this.prevPlacement.variableOffsets[yt.crossTileID]; - tn && (this.variableOffsets[yt.crossTileID] = tn, this.markUsedJustification(u, tn.anchor, yt, da)) - } - } - } - if (dn = Ei, Pi = dn && dn.placeable, Ui = dn && dn.offscreen, yt.useRuntimeCollisionCircles) { - const Kn = u.text.placedSymbolArray.get(yt.centerJustifiedTextSymbolIndex), - Pa = o.ap(u.textSizeData, B, Kn), - Vn = d.get("text-padding"); - xn = this.collisionIndex.placeCollisionCircles(re, Kn, u.lineVertexArray, u.glyphOffsetArray, Pa, w, P, s, Te, U.predicate, yt.collisionCircleDiameter, Vn, m, $e), xn.circles.length && xn.collisionDetected && !s && o.w("Collisions detected, but collision boxes are not shown"), Pi = se || xn.circles.length > 0 && !xn.collisionDetected, Ui = Ui && xn.offscreen - } - if (sr.iconFeatureIndex && (ss = sr.iconFeatureIndex), sr.iconBox) { - const Kn = Pa => this.collisionIndex.placeCollisionBox(Pa, de, M, qe, w, Te, ge, y, U.predicate, $e, he && Wr ? Wr : void 0, Rt); - Qi && Qi.placeable && sr.verticalIconBox ? (qn = Kn(sr.verticalIconBox), ji = qn.placeable) : (qn = Kn(sr.iconBox), ji = qn.placeable), Ui = Ui && qn.offscreen - } - const Js = ee || yt.numHorizontalGlyphVertices === 0 && yt.numVerticalGlyphVertices === 0, - Is = J || yt.numIconVertices === 0; - Js || Is ? Is ? Js || (ji = ji && Pi) : Pi = ji && Pi : ji = Pi = ji && Pi; - const Ms = ji && qn.placeable; - if (Pi && dn.placeable && this.collisionIndex.insertCollisionBox(dn.box, re, d.get("text-ignore-placement"), u.bucketInstanceId, Qi && Qi.placeable && as ? as : Sa, U.ID), Ms && this.collisionIndex.insertCollisionBox(qn.box, de, d.get("icon-ignore-placement"), u.bucketInstanceId, ss, U.ID), xn && Pi && this.collisionIndex.insertCollisionCircles(xn.circles, re, d.get("text-ignore-placement"), u.bucketInstanceId, Sa, U.ID), s && this.storeCollisionData(u.bucketInstanceId, Xr, sr, dn, qn, xn), yt.crossTileID === 0) throw new Error("symbolInstance.crossTileID can't be 0"); - if (u.bucketInstanceId === 0) throw new Error("bucket.bucketInstanceId can't be 0"); - this.placements[yt.crossTileID] = new la((Pi || He) && !(dn != null && dn.occluded), (ji || je) && !(qn != null && qn.occluded), Ui || u.justReloaded), n[yt.crossTileID] = !0 - }; - if (De) { - if (e.symbolInstanceStart !== 0) throw new Error("bucket.bucketInstanceId should be 0"); - const yt = u.getSortedSymbolIndexes(-this.transform.bearingInRadians); - for (let sr = yt.length - 1; sr >= 0; --sr) { - const Xr = yt[sr]; - Nt(u.symbolInstances.get(Xr), u.collisionArrays[Xr], Xr) - } - } else - for (let yt = e.symbolInstanceStart; yt < e.symbolInstanceEnd; yt++) Nt(u.symbolInstances.get(yt), u.collisionArrays[yt], yt); - u.justReloaded = !1 - } - storeCollisionData(e, n, s, u, d, m) { - if (s.textBox || s.iconBox) { - let y, w; - this.collisionBoxArrays.has(e) ? y = this.collisionBoxArrays.get(e) : (y = new Map, this.collisionBoxArrays.set(e, y)), y.has(n) ? w = y.get(n) : (w = { - text: null, - icon: null - }, y.set(n, w)), s.textBox && (w.text = u.box), s.iconBox && (w.icon = d.box) - } - if (m) { - let y = this.collisionCircleArrays[e]; - y === void 0 && (y = this.collisionCircleArrays[e] = []); - for (let w = 0; w < m.circles.length; w += 4) y.push(m.circles[w + 0] - rr), y.push(m.circles[w + 1] - rr), y.push(m.circles[w + 2]), y.push(m.collisionDetected ? 1 : 0) - } - } - markUsedJustification(e, n, s, u) { - let d; - d = u === o.ao.vertical ? s.verticalPlacedTextSymbolIndex : { - left: s.leftJustifiedTextSymbolIndex, - center: s.centerJustifiedTextSymbolIndex, - right: s.rightJustifiedTextSymbolIndex - } [o.aG(n)]; - const m = [s.leftJustifiedTextSymbolIndex, s.centerJustifiedTextSymbolIndex, s.rightJustifiedTextSymbolIndex, s.verticalPlacedTextSymbolIndex]; - for (const y of m) y >= 0 && (e.text.placedSymbolArray.get(y).crossTileID = d >= 0 && y !== d ? 0 : s.crossTileID) - } - markUsedOrientation(e, n, s) { - const u = n === o.ao.horizontal || n === o.ao.horizontalOnly ? n : 0, - d = n === o.ao.vertical ? n : 0, - m = [s.leftJustifiedTextSymbolIndex, s.centerJustifiedTextSymbolIndex, s.rightJustifiedTextSymbolIndex]; - for (const y of m) e.text.placedSymbolArray.get(y).placedOrientation = u; - s.verticalPlacedTextSymbolIndex && (e.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).placedOrientation = d) - } - commit(e) { - this.commitTime = e, this.zoomAtLastRecencyCheck = this.transform.zoom; - const n = this.prevPlacement; - let s = !1; - this.prevZoomAdjustment = n ? n.zoomAdjustment(this.transform.zoom) : 0; - const u = n ? n.symbolFadeChange(e) : 1, - d = n ? n.opacities : {}, - m = n ? n.variableOffsets : {}, - y = n ? n.placedOrientations : {}; - for (const w in this.placements) { - const P = this.placements[w], - M = d[w]; - M ? (this.opacities[w] = new Yr(M, u, P.text, P.icon), s = s || P.text !== M.text.placed || P.icon !== M.icon.placed) : (this.opacities[w] = new Yr(null, u, P.text, P.icon, P.skipFade), s = s || P.text || P.icon) - } - for (const w in d) { - const P = d[w]; - if (!this.opacities[w]) { - const M = new Yr(P, u, !1, !1); - M.isHidden() || (this.opacities[w] = M, s = s || P.text.placed || P.icon.placed) - } - } - for (const w in m) this.variableOffsets[w] || !this.opacities[w] || this.opacities[w].isHidden() || (this.variableOffsets[w] = m[w]); - for (const w in y) this.placedOrientations[w] || !this.opacities[w] || this.opacities[w].isHidden() || (this.placedOrientations[w] = y[w]); - if (n && n.lastPlacementChangeTime === void 0) throw new Error("Last placement time for previous placement is not defined"); - s ? this.lastPlacementChangeTime = e : typeof this.lastPlacementChangeTime != "number" && (this.lastPlacementChangeTime = n ? n.lastPlacementChangeTime : e) - } - updateLayerOpacities(e, n) { - const s = {}; - for (const u of n) { - const d = u.getBucket(e); - d && u.latestFeatureIndex && e.id === d.layerIds[0] && this.updateBucketOpacities(d, u.tileID, s, u.collisionBoxArray) - } - } - updateBucketOpacities(e, n, s, u) { - e.hasTextData() && (e.text.opacityVertexArray.clear(), e.text.hasVisibleVertices = !1), e.hasIconData() && (e.icon.opacityVertexArray.clear(), e.icon.hasVisibleVertices = !1), e.hasIconCollisionBoxData() && e.iconCollisionBox.collisionVertexArray.clear(), e.hasTextCollisionBoxData() && e.textCollisionBox.collisionVertexArray.clear(); - const d = e.layers[0], - m = d.layout, - y = new Yr(null, 0, !1, !1, !0), - w = m.get("text-allow-overlap"), - P = m.get("icon-allow-overlap"), - M = d._unevaluatedLayout.hasValue("text-variable-anchor") || d._unevaluatedLayout.hasValue("text-variable-anchor-offset"), - D = m.get("text-rotation-alignment") === "map", - z = m.get("text-pitch-alignment") === "map", - B = m.get("icon-text-fit") !== "none", - U = new Yr(null, 0, w && (P || !e.hasIconData() || m.get("icon-optional")), P && (w || !e.hasTextData() || m.get("text-optional")), !0); - !e.collisionArrays && u && (e.hasIconCollisionBoxData() || e.hasTextCollisionBoxData()) && e.deserializeCollisionBoxes(u); - const ee = (re, se, de) => { - for (let ue = 0; ue < se / 4; ue++) re.opacityVertexArray.emplaceBack(de); - re.hasVisibleVertices = re.hasVisibleVertices || de !== Mi - }, - J = this.collisionBoxArrays.get(e.bucketInstanceId); - for (let re = 0; re < e.symbolInstances.length; re++) { - const se = e.symbolInstances.get(re), - { - numHorizontalGlyphVertices: de, - numVerticalGlyphVertices: ue, - crossTileID: ge - } = se; - let Te = this.opacities[ge]; - s[ge] ? Te = y : Te || (Te = U, this.opacities[ge] = Te), s[ge] = !0; - const he = se.numIconVertices > 0, - De = this.placedOrientations[se.crossTileID], - He = De === o.ao.vertical, - je = De === o.ao.horizontal || De === o.ao.horizontalOnly; - if (de > 0 || ue > 0) { - const $e = $i(Te.text); - ee(e.text, de, He ? Mi : $e), ee(e.text, ue, je ? Mi : $e); - const Rt = Te.text.isHidden(); - [se.rightJustifiedTextSymbolIndex, se.centerJustifiedTextSymbolIndex, se.leftJustifiedTextSymbolIndex].forEach((sr => { - sr >= 0 && (e.text.placedSymbolArray.get(sr).hidden = Rt || He ? 1 : 0) - })), se.verticalPlacedTextSymbolIndex >= 0 && (e.text.placedSymbolArray.get(se.verticalPlacedTextSymbolIndex).hidden = Rt || je ? 1 : 0); - const Nt = this.variableOffsets[se.crossTileID]; - Nt && this.markUsedJustification(e, Nt.anchor, se, De); - const yt = this.placedOrientations[se.crossTileID]; - yt && (this.markUsedJustification(e, "left", se, yt), this.markUsedOrientation(e, yt, se)) - } - if (he) { - const $e = $i(Te.icon), - Rt = !(B && se.verticalPlacedIconSymbolIndex && He); - se.placedIconSymbolIndex >= 0 && (ee(e.icon, se.numIconVertices, Rt ? $e : Mi), e.icon.placedSymbolArray.get(se.placedIconSymbolIndex).hidden = Te.icon.isHidden()), se.verticalPlacedIconSymbolIndex >= 0 && (ee(e.icon, se.numVerticalIconVertices, Rt ? Mi : $e), e.icon.placedSymbolArray.get(se.verticalPlacedIconSymbolIndex).hidden = Te.icon.isHidden()) - } - const qe = J && J.has(re) ? J.get(re) : { - text: null, - icon: null - }; - if (e.hasIconCollisionBoxData() || e.hasTextCollisionBoxData()) { - const $e = e.collisionArrays[re]; - if ($e) { - let Rt = new o.P(0, 0); - if ($e.textBox || $e.verticalTextBox) { - let Nt = !0; - if (M) { - const yt = this.variableOffsets[ge]; - yt ? (Rt = Fi(yt.anchor, yt.width, yt.height, yt.textOffset, yt.textBoxScale), D && Rt._rotate(z ? -this.transform.bearingInRadians : this.transform.bearingInRadians)) : Nt = !1 - } - if ($e.textBox || $e.verticalTextBox) { - let yt; - $e.textBox && (yt = He), $e.verticalTextBox && (yt = je), Gn(e.textCollisionBox.collisionVertexArray, Te.text.placed, !Nt || yt, qe.text, Rt.x, Rt.y) - } - } - if ($e.iconBox || $e.verticalIconBox) { - const Nt = !!(!je && $e.verticalIconBox); - let yt; - $e.iconBox && (yt = Nt), $e.verticalIconBox && (yt = !Nt), Gn(e.iconCollisionBox.collisionVertexArray, Te.icon.placed, yt, qe.icon, B ? Rt.x : 0, B ? Rt.y : 0) - } - } - } - } - if (e.sortFeatures(-this.transform.bearingInRadians), this.retainedQueryData[e.bucketInstanceId] && (this.retainedQueryData[e.bucketInstanceId].featureSortOrder = e.featureSortOrder), e.hasTextData() && e.text.opacityVertexBuffer && e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray), e.hasIconData() && e.icon.opacityVertexBuffer && e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray), e.hasIconCollisionBoxData() && e.iconCollisionBox.collisionVertexBuffer && e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray), e.hasTextCollisionBoxData() && e.textCollisionBox.collisionVertexBuffer && e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray), e.text.opacityVertexArray.length !== e.text.layoutVertexArray.length / 4) throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`); - if (e.icon.opacityVertexArray.length !== e.icon.layoutVertexArray.length / 4) throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`); - e.bucketInstanceId in this.collisionCircleArrays && (e.collisionCircleArray = this.collisionCircleArrays[e.bucketInstanceId], delete this.collisionCircleArrays[e.bucketInstanceId]) - } - symbolFadeChange(e) { - return this.fadeDuration === 0 ? 1 : (e - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment - } - zoomAdjustment(e) { - return Math.max(0, (this.transform.zoom - e) / 1.5) - } - hasTransitions(e) { - return this.stale || e - this.lastPlacementChangeTime < this.fadeDuration - } - stillRecent(e, n) { - const s = this.zoomAtLastRecencyCheck === n ? 1 - this.zoomAdjustment(n) : 1; - return this.zoomAtLastRecencyCheck = n, this.commitTime + this.fadeDuration * s > e - } - setStale() { - this.stale = !0 - } - } - - function Gn(h, e, n, s, u, d) { - s && s.length !== 0 || (s = [0, 0, 0, 0]); - const m = s[0] - rr, - y = s[1] - rr, - w = s[2] - rr, - P = s[3] - rr; - h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, m, y), h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, w, y), h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, w, P), h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, m, P) - } - const Hn = Math.pow(2, 25), - Ln = Math.pow(2, 24), - gt = Math.pow(2, 17), - qt = Math.pow(2, 16), - vr = Math.pow(2, 9), - _i = Math.pow(2, 8), - Di = Math.pow(2, 1); - - function $i(h) { - if (h.opacity === 0 && !h.placed) return 0; - if (h.opacity === 1 && h.placed) return 4294967295; - const e = h.placed ? 1 : 0, - n = Math.floor(127 * h.opacity); - return n * Hn + e * Ln + n * gt + e * qt + n * vr + e * _i + n * Di + e - } - const Mi = 0; - class Cr { - constructor(e) { - this._sortAcrossTiles = e.layout.get("symbol-z-order") !== "viewport-y" && !e.layout.get("symbol-sort-key").isConstant(), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = [] - } - continuePlacement(e, n, s, u, d) { - const m = this._bucketParts; - for (; this._currentTileIndex < e.length;) - if (n.getBucketParts(m, u, e[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, d()) return !0; - for (this._sortAcrossTiles && (this._sortAcrossTiles = !1, m.sort(((y, w) => y.sortKey - w.sortKey))); this._currentPartIndex < m.length;) - if (n.placeLayerBucketPart(m[this._currentPartIndex], this._seenCrossTileIDs, s), this._currentPartIndex++, d()) return !0; - return !1 - } - } - class gn { - constructor(e, n, s, u, d, m, y, w) { - this.placement = new Xi(e, n, m, y, w), this._currentPlacementIndex = s.length - 1, this._forceFullPlacement = u, this._showCollisionBoxes = d, this._done = !1 - } - isDone() { - return this._done - } - continuePlacement(e, n, s) { - const u = ye.now(), - d = () => !this._forceFullPlacement && ye.now() - u > 2; - for (; this._currentPlacementIndex >= 0;) { - const m = n[e[this._currentPlacementIndex]], - y = this.placement.collisionIndex.transform.zoom; - if (m.type === "symbol" && (!m.minzoom || m.minzoom <= y) && (!m.maxzoom || m.maxzoom > y)) { - if (this._inProgressLayer || (this._inProgressLayer = new Cr(m)), this._inProgressLayer.continuePlacement(s[m.source], this.placement, this._showCollisionBoxes, m, d)) return; - delete this._inProgressLayer - } - this._currentPlacementIndex-- - } - this._done = !0 - } - commit(e) { - return this.placement.commit(e), this.placement - } - } - const tr = 512 / o.$ / 2; - class Ht { - constructor(e, n, s) { - this.tileID = e, this.bucketInstanceId = s, this._symbolsByKey = {}; - const u = new Map; - for (let d = 0; d < n.length; d++) { - const m = n.get(d), - y = m.key, - w = u.get(y); - w ? w.push(m) : u.set(y, [m]) - } - for (const [d, m] of u) { - const y = { - positions: m.map((w => ({ - x: Math.floor(w.anchorX * tr), - y: Math.floor(w.anchorY * tr) - }))), - crossTileIDs: m.map((w => w.crossTileID)) - }; - if (y.positions.length > 128) { - const w = new o.aI(y.positions.length, 16, Uint16Array); - for (const { - x: P, - y: M - } - of y.positions) w.add(P, M); - w.finish(), delete y.positions, y.index = w - } - this._symbolsByKey[d] = y - } - } - getScaledCoordinates(e, n) { - const { - x: s, - y: u, - z: d - } = this.tileID.canonical, { - x: m, - y, - z: w - } = n.canonical, P = tr / Math.pow(2, w - d), M = (y * o.$ + e.anchorY) * P, D = u * o.$ * tr; - return { - x: Math.floor((m * o.$ + e.anchorX) * P - s * o.$ * tr), - y: Math.floor(M - D) - } - } - findMatches(e, n, s) { - const u = this.tileID.canonical.z < n.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - n.canonical.z); - for (let d = 0; d < e.length; d++) { - const m = e.get(d); - if (m.crossTileID) continue; - const y = this._symbolsByKey[m.key]; - if (!y) continue; - const w = this.getScaledCoordinates(m, n); - if (y.index) { - const P = y.index.range(w.x - u, w.y - u, w.x + u, w.y + u).sort(); - for (const M of P) { - const D = y.crossTileIDs[M]; - if (!s[D]) { - s[D] = !0, m.crossTileID = D; - break - } - } - } else if (y.positions) - for (let P = 0; P < y.positions.length; P++) { - const M = y.positions[P], - D = y.crossTileIDs[P]; - if (Math.abs(M.x - w.x) <= u && Math.abs(M.y - w.y) <= u && !s[D]) { - s[D] = !0, m.crossTileID = D; - break - } - } - } - } - getCrossTileIDsLists() { - return Object.values(this._symbolsByKey).map((({ - crossTileIDs: e - }) => e)) - } - } - class ei { - constructor() { - this.maxCrossTileID = 0 - } - generate() { - return ++this.maxCrossTileID - } - } - class ri { - constructor() { - this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0 - } - handleWrapJump(e) { - const n = Math.round((e - this.lng) / 360); - if (n !== 0) - for (const s in this.indexes) { - const u = this.indexes[s], - d = {}; - for (const m in u) { - const y = u[m]; - y.tileID = y.tileID.unwrapTo(y.tileID.wrap + n), d[y.tileID.key] = y - } - this.indexes[s] = d - } - this.lng = e - } - addBucket(e, n, s) { - if (this.indexes[e.overscaledZ] && this.indexes[e.overscaledZ][e.key]) { - if (this.indexes[e.overscaledZ][e.key].bucketInstanceId === n.bucketInstanceId) return !1; - this.removeBucketCrossTileIDs(e.overscaledZ, this.indexes[e.overscaledZ][e.key]) - } - for (let d = 0; d < n.symbolInstances.length; d++) n.symbolInstances.get(d).crossTileID = 0; - this.usedCrossTileIDs[e.overscaledZ] || (this.usedCrossTileIDs[e.overscaledZ] = {}); - const u = this.usedCrossTileIDs[e.overscaledZ]; - for (const d in this.indexes) { - const m = this.indexes[d]; - if (Number(d) > e.overscaledZ) - for (const y in m) { - const w = m[y]; - w.tileID.isChildOf(e) && w.findMatches(n.symbolInstances, e, u) - } else { - const y = m[e.scaledTo(Number(d)).key]; - y && y.findMatches(n.symbolInstances, e, u) - } - } - for (let d = 0; d < n.symbolInstances.length; d++) { - const m = n.symbolInstances.get(d); - m.crossTileID || (m.crossTileID = s.generate(), u[m.crossTileID] = !0) - } - return this.indexes[e.overscaledZ] === void 0 && (this.indexes[e.overscaledZ] = {}), this.indexes[e.overscaledZ][e.key] = new Ht(e, n.symbolInstances, n.bucketInstanceId), !0 - } - removeBucketCrossTileIDs(e, n) { - for (const s of n.getCrossTileIDsLists()) - for (const u of s) delete this.usedCrossTileIDs[e][u] - } - removeStaleBuckets(e) { - let n = !1; - for (const s in this.indexes) { - const u = this.indexes[s]; - for (const d in u) e[u[d].bucketInstanceId] || (this.removeBucketCrossTileIDs(s, u[d]), delete u[d], n = !0) - } - return n - } - } - class gi { - constructor() { - this.layerIndexes = {}, this.crossTileIDs = new ei, this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {} - } - addLayer(e, n, s) { - let u = this.layerIndexes[e.id]; - u === void 0 && (u = this.layerIndexes[e.id] = new ri); - let d = !1; - const m = {}; - u.handleWrapJump(s); - for (const y of n) { - const w = y.getBucket(e); - w && e.id === w.layerIds[0] && (w.bucketInstanceId || (w.bucketInstanceId = ++this.maxBucketInstanceId), u.addBucket(y.tileID, w, this.crossTileIDs) && (d = !0), m[w.bucketInstanceId] = !0) - } - return u.removeStaleBuckets(m) && (d = !0), d - } - pruneUnusedLayers(e) { - const n = {}; - e.forEach((s => { - n[s] = !0 - })); - for (const s in this.layerIndexes) n[s] || delete this.layerIndexes[s] - } - } - var ci = "void main() {fragColor=vec4(1.0);}"; - const pi = { - prelude: Er(`#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 -out highp vec4 fragColor;`, `#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;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c -);} -#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(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); -#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=(texture(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 -#ifdef GLOBE -if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;} -#endif -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 -}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`), - projectionMercator: Er("", "float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}"), - projectionGlobe: Er("", `#define GLOBE_RADIUS 6371008.8 -uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos -);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY); -if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len -);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`), - background: Er(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"), - backgroundPattern: Er(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "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;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"), - circle: Er(`in vec3 v_data;in 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);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;} -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out 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 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) { -#ifdef GLOBE -vec3 center_vector=projectToSphere(circle_center); -#endif -float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else { -#ifdef GLOBE -vec4 projected_center=interpolateProjection(circle_center,center_vector,ele); -#else -vec4 projected_center=projectTileWithElevation(circle_center,ele); -#endif -corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);} -#ifdef GLOBE -vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele); -#else -gl_Position=projectTileWithElevation(corner_position,ele); -#endif -} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`), - clippingMask: Er(ci, "in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"), - heatmap: Er(`uniform highp float u_intensity;in 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);fragColor=vec4(val,1.0,1.0,1.0); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out 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 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0); -#ifdef GLOBE -vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0); -#else -gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center)); -#endif -}`), - heatmapTexture: Er(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(0.0); -#endif -}`, "uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out 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: Er("in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}", "in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"), - collisionCircle: Er("in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}", "in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"), - colorRelief: Er(`#ifdef GL_ES -precision highp float; -#endif -uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else -{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0)); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "uniform vec2 u_dimension;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"), - debug: Er("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}", "in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}"), - depth: Er(ci, `in vec2 a_pos;void main() { -#ifdef GLOBE -gl_Position=projectTileFor3D(a_pos,0.0); -#else -gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0); -#endif -}`), - fill: Er(`#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 -fragColor=color*opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_fill_translate;in vec2 a_pos; -#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=projectTile(a_pos+u_fill_translate,a_pos);}`), - fillOutline: Er(`in vec2 v_pos; -#ifdef GLOBE -in float v_depth; -#endif -#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);fragColor=outline_color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos; -#ifdef GLOBE -out float v_depth; -#endif -#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=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -}`), - fillOutlinePattern: Er(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity; -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos; -#ifdef GLOBE -out float v_depth; -#endif -#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=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -}`), - fillPattern: Er(`#ifdef GL_ES -precision highp float; -#endif -uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in 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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out 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=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`), - fillExtrusion: Er(`in vec4 v_color;void main() {fragColor=v_color; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed; -#ifdef TERRAIN3D -in vec2 a_centroid; -#endif -out 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);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; -#ifdef GLOBE -vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); -#else -gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); -#endif -float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0); -#ifdef GLOBE -mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition); -#endif -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: Er(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting; -#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed; -#ifdef TERRAIN3D -in vec2 a_centroid; -#endif -#ifdef GLOBE -out vec3 v_sphere_pos; -#endif -out vec2 v_pos_a;out vec2 v_pos_b;out 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 elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; -#ifdef GLOBE -vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); -#else -gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); -#endif -vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 -? a_pos -: vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.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: Er(`#ifdef GL_ES -precision highp float; -#endif -uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;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))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"), - hillshade: Er(`uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES]; -#define PI 3.141592653589793 -#define STANDARD 0 -#define COMBINED 1 -#define IGOR 2 -#define MULTIDIRECTIONAL 3 -#define BASIC 4 -float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else -{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else -{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);} -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"), - line: Er(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale; -#ifdef GLOBE -in float v_depth; -#endif -#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);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`), - lineGradient: Er(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,v_uv);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`), - linePattern: Er(`#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;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width; -#ifdef GLOBE -in float v_depth; -#endif -#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(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity; -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`), - lineSDF: Er(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;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;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#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: Er(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in 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=texture(u_image0,v_pos0);vec4 color1=texture(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);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5; -#ifdef GLOBE -if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;} -#endif -v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`), - symbolIcon: Er(`uniform sampler2D u_texture;in vec2 v_tex;in 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;fragColor=texture(u_texture,v_tex)*alpha; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;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: Er(`#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;in vec2 v_data0;in 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=texture(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);}fragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform 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_translation;uniform float u_pitched_scale;out vec2 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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: Er(`#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;in vec4 v_data0;in 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;fragColor=texture(u_texture_icon,tex_icon)*alpha; -#ifdef OVERDRAW_INSPECTOR -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=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in 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_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;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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: Er("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}", "in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"), - terrainDepth: Er("in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}", "in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}"), - terrainCoords: Er("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}", "in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}"), - projectionErrorMeasurement: Er("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}", "in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"), - atmosphere: Er(`in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758 -);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`, "in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}"), - sky: Er("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}", "in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}") - }; - - function Er(h, e) { - const n = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, - s = e.match(/in ([\w]+) ([\w]+)/g), - u = h.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), - d = e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), - m = d ? d.concat(u) : u, - y = {}; - return { - fragmentSource: h = h.replace(n, ((w, P, M, D, z) => (y[z] = !0, P === "define" ? ` -#ifndef HAS_UNIFORM_u_${z} -in ${M} ${D} ${z}; -#else -uniform ${M} ${D} u_${z}; -#endif -` : ` -#ifdef HAS_UNIFORM_u_${z} - ${M} ${D} ${z} = u_${z}; -#endif -`))), - vertexSource: e = e.replace(n, ((w, P, M, D, z) => { - const B = D === "float" ? "vec2" : "vec4", - U = z.match(/color/) ? "color" : B; - return y[z] ? P === "define" ? ` -#ifndef HAS_UNIFORM_u_${z} -uniform lowp float u_${z}_t; -in ${M} ${B} a_${z}; -out ${M} ${D} ${z}; -#else -uniform ${M} ${D} u_${z}; -#endif -` : U === "vec4" ? ` -#ifndef HAS_UNIFORM_u_${z} - ${z} = a_${z}; -#else - ${M} ${D} ${z} = u_${z}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${z} - ${z} = unpack_mix_${U}(a_${z}, u_${z}_t); -#else - ${M} ${D} ${z} = u_${z}; -#endif -` : P === "define" ? ` -#ifndef HAS_UNIFORM_u_${z} -uniform lowp float u_${z}_t; -in ${M} ${B} a_${z}; -#else -uniform ${M} ${D} u_${z}; -#endif -` : U === "vec4" ? ` -#ifndef HAS_UNIFORM_u_${z} - ${M} ${D} ${z} = a_${z}; -#else - ${M} ${D} ${z} = u_${z}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${z} - ${M} ${D} ${z} = unpack_mix_${U}(a_${z}, u_${z}_t); -#else - ${M} ${D} ${z} = u_${z}; -#endif -` - })), - staticAttributes: s, - staticUniforms: m - } - } - class Ri { - constructor(e, n, s) { - this.vertexBuffer = e, this.indexBuffer = n, this.segments = s - } - destroy() { - this.vertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.vertexBuffer = null, this.indexBuffer = null, this.segments = null - } - } - var ui = o.aJ([{ - name: "a_pos", - type: "Int16", - components: 2 - }]); - const Jr = "#define PROJECTION_MERCATOR", - ti = "mercator"; - class yr { - constructor() { - this._cachedMesh = null - } - get name() { - return "mercator" - } - get useSubdivision() { - return !1 - } - get shaderVariantName() { - return ti - } - get shaderDefine() { - return Jr - } - get shaderPreludeCode() { - return pi.projectionMercator - } - get vertexShaderPreludeCode() { - return pi.projectionMercator.vertexSource - } - get subdivisionGranularity() { - return o.aK.noSubdivision - } - get useGlobeControls() { - return !1 - } - get transitionState() { - return 0 - } - get latitudeErrorCorrectionRadians() { - return 0 - } - destroy() {} - updateGPUdependent(e) {} - getMeshFromTileID(e, n, s, u, d) { - if (this._cachedMesh) return this._cachedMesh; - const m = new o.aL; - m.emplaceBack(0, 0), m.emplaceBack(o.$, 0), m.emplaceBack(0, o.$), m.emplaceBack(o.$, o.$); - const y = e.createVertexBuffer(m, ui.members), - w = o.aM.simpleSegment(0, 0, 4, 2), - P = new o.aN; - P.emplaceBack(1, 0, 2), P.emplaceBack(1, 2, 3); - const M = e.createIndexBuffer(P); - return this._cachedMesh = new Ri(y, M, w), this._cachedMesh - } - recalculate() {} - hasTransition() { - return !1 - } - setErrorQueryLatitudeDegrees(e) {} - } - class on { - constructor(e = 0, n = 0, s = 0, u = 0) { - if (isNaN(e) || e < 0 || isNaN(n) || n < 0 || isNaN(s) || s < 0 || isNaN(u) || u < 0) throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers"); - this.top = e, this.bottom = n, this.left = s, this.right = u - } - interpolate(e, n, s) { - return n.top != null && e.top != null && (this.top = o.C.number(e.top, n.top, s)), n.bottom != null && e.bottom != null && (this.bottom = o.C.number(e.bottom, n.bottom, s)), n.left != null && e.left != null && (this.left = o.C.number(e.left, n.left, s)), n.right != null && e.right != null && (this.right = o.C.number(e.right, n.right, s)), this - } - getCenter(e, n) { - const s = o.ah((this.left + e - this.right) / 2, 0, e), - u = o.ah((this.top + n - this.bottom) / 2, 0, n); - return new o.P(s, u) - } - equals(e) { - return this.top === e.top && this.bottom === e.bottom && this.left === e.left && this.right === e.right - } - clone() { - return new on(this.top, this.bottom, this.left, this.right) - } - toJSON() { - return { - top: this.top, - bottom: this.bottom, - left: this.left, - right: this.right - } - } - } - - function vn(h, e) { - if (!h.renderWorldCopies || h.lngRange) return; - const n = e.lng - h.center.lng; - e.lng += n > 180 ? -360 : n < -180 ? 360 : 0 - } - - function _a(h) { - return Math.max(0, Math.floor(h)) - } - class ln { - constructor(e, n, s, u, d, m) { - this._callbacks = e, this._tileSize = 512, this._renderWorldCopies = m === void 0 || !!m, this._minZoom = n || 0, this._maxZoom = s || 22, this._minPitch = u ?? 0, this._maxPitch = d ?? 60, this.setMaxBounds(), this._width = 0, this._height = 0, this._center = new o.S(0, 0), this._elevation = 0, this._zoom = 0, this._tileZoom = _a(this._zoom), this._scale = o.af(this._zoom), this._bearingInRadians = 0, this._fovInRadians = .6435011087932844, this._pitchInRadians = 0, this._rollInRadians = 0, this._unmodified = !0, this._edgeInsets = new on, this._minElevationForCurrentTile = 0, this._autoCalculateNearFarZ = !0 - } - apply(e, n, s) { - this._latRange = e.latRange, this._lngRange = e.lngRange, this._width = e.width, this._height = e.height, this._center = e.center, this._elevation = e.elevation, this._minElevationForCurrentTile = e.minElevationForCurrentTile, this._zoom = e.zoom, this._tileZoom = _a(this._zoom), this._scale = o.af(this._zoom), this._bearingInRadians = e.bearingInRadians, this._fovInRadians = e.fovInRadians, this._pitchInRadians = e.pitchInRadians, this._rollInRadians = e.rollInRadians, this._unmodified = e.unmodified, this._edgeInsets = new on(e.padding.top, e.padding.bottom, e.padding.left, e.padding.right), this._minZoom = e.minZoom, this._maxZoom = e.maxZoom, this._minPitch = e.minPitch, this._maxPitch = e.maxPitch, this._renderWorldCopies = e.renderWorldCopies, this._cameraToCenterDistance = e.cameraToCenterDistance, this._nearZ = e.nearZ, this._farZ = e.farZ, this._autoCalculateNearFarZ = !s && e.autoCalculateNearFarZ, n && this._constrain(), this._calcMatrices() - } - get pixelsToClipSpaceMatrix() { - return this._pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._clipSpaceToPixelsMatrix - } - get minElevationForCurrentTile() { - return this._minElevationForCurrentTile - } - setMinElevationForCurrentTile(e) { - this._minElevationForCurrentTile = e - } - get tileSize() { - return this._tileSize - } - get tileZoom() { - return this._tileZoom - } - get scale() { - return this._scale - } - get width() { - return this._width - } - get height() { - return this._height - } - get bearingInRadians() { - return this._bearingInRadians - } - get lngRange() { - return this._lngRange - } - get latRange() { - return this._latRange - } - get pixelsToGLUnits() { - return this._pixelsToGLUnits - } - get minZoom() { - return this._minZoom - } - setMinZoom(e) { - this._minZoom !== e && (this._minZoom = e, this.setZoom(this.getConstrained(this._center, this.zoom).zoom)) - } - get maxZoom() { - return this._maxZoom - } - setMaxZoom(e) { - this._maxZoom !== e && (this._maxZoom = e, this.setZoom(this.getConstrained(this._center, this.zoom).zoom)) - } - get minPitch() { - return this._minPitch - } - setMinPitch(e) { - this._minPitch !== e && (this._minPitch = e, this.setPitch(Math.max(this.pitch, e))) - } - get maxPitch() { - return this._maxPitch - } - setMaxPitch(e) { - this._maxPitch !== e && (this._maxPitch = e, this.setPitch(Math.min(this.pitch, e))) - } - get renderWorldCopies() { - return this._renderWorldCopies - } - setRenderWorldCopies(e) { - e === void 0 ? e = !0 : e === null && (e = !1), this._renderWorldCopies = e - } - get worldSize() { - return this._tileSize * this._scale - } - get centerOffset() { - return this.centerPoint._sub(this.size._div(2)) - } - get size() { - return new o.P(this._width, this._height) - } - get bearing() { - return this._bearingInRadians / Math.PI * 180 - } - setBearing(e) { - const n = o.aO(e, -180, 180) * Math.PI / 180; - var s, u, d, m, y, w, P, M, D; - this._bearingInRadians !== n && (this._unmodified = !1, this._bearingInRadians = n, this._calcMatrices(), this._rotationMatrix = W(), s = this._rotationMatrix, d = -this._bearingInRadians, m = (u = this._rotationMatrix)[0], y = u[1], w = u[2], P = u[3], M = Math.sin(d), D = Math.cos(d), s[0] = m * D + w * M, s[1] = y * D + P * M, s[2] = m * -M + w * D, s[3] = y * -M + P * D) - } - get rotationMatrix() { - return this._rotationMatrix - } - get pitchInRadians() { - return this._pitchInRadians - } - get pitch() { - return this._pitchInRadians / Math.PI * 180 - } - setPitch(e) { - const n = o.ah(e, this.minPitch, this.maxPitch) / 180 * Math.PI; - this._pitchInRadians !== n && (this._unmodified = !1, this._pitchInRadians = n, this._calcMatrices()) - } - get rollInRadians() { - return this._rollInRadians - } - get roll() { - return this._rollInRadians / Math.PI * 180 - } - setRoll(e) { - const n = e / 180 * Math.PI; - this._rollInRadians !== n && (this._unmodified = !1, this._rollInRadians = n, this._calcMatrices()) - } - get fovInRadians() { - return this._fovInRadians - } - get fov() { - return o.aP(this._fovInRadians) - } - setFov(e) { - e = o.ah(e, .1, 150), this.fov !== e && (this._unmodified = !1, this._fovInRadians = o.ae(e), this._calcMatrices()) - } - get zoom() { - return this._zoom - } - setZoom(e) { - const n = this.getConstrained(this._center, e).zoom; - this._zoom !== n && (this._unmodified = !1, this._zoom = n, this._tileZoom = Math.max(0, Math.floor(n)), this._scale = o.af(n), this._constrain(), this._calcMatrices()) - } - get center() { - return this._center - } - setCenter(e) { - e.lat === this._center.lat && e.lng === this._center.lng || (this._unmodified = !1, this._center = e, this._constrain(), this._calcMatrices()) - } - get elevation() { - return this._elevation - } - setElevation(e) { - e !== this._elevation && (this._elevation = e, this._constrain(), this._calcMatrices()) - } - get padding() { - return this._edgeInsets.toJSON() - } - setPadding(e) { - this._edgeInsets.equals(e) || (this._unmodified = !1, this._edgeInsets.interpolate(this._edgeInsets, e, 1), this._calcMatrices()) - } - get centerPoint() { - return this._edgeInsets.getCenter(this._width, this._height) - } - get pixelsPerMeter() { - return this._pixelPerMeter - } - get unmodified() { - return this._unmodified - } - get cameraToCenterDistance() { - return this._cameraToCenterDistance - } - get nearZ() { - return this._nearZ - } - get farZ() { - return this._farZ - } - get autoCalculateNearFarZ() { - return this._autoCalculateNearFarZ - } - overrideNearFarZ(e, n) { - this._autoCalculateNearFarZ = !1, this._nearZ = e, this._farZ = n, this._calcMatrices() - } - clearNearFarZOverride() { - this._autoCalculateNearFarZ = !0, this._calcMatrices() - } - isPaddingEqual(e) { - return this._edgeInsets.equals(e) - } - interpolatePadding(e, n, s) { - this._unmodified = !1, this._edgeInsets.interpolate(e, n, s), this._constrain(), this._calcMatrices() - } - resize(e, n, s = !0) { - this._width = e, this._height = n, s && this._constrain(), this._calcMatrices() - } - getMaxBounds() { - return this._latRange && this._latRange.length === 2 && this._lngRange && this._lngRange.length === 2 ? new dt([this._lngRange[0], this._latRange[0]], [this._lngRange[1], this._latRange[1]]) : null - } - setMaxBounds(e) { - e ? (this._lngRange = [e.getWest(), e.getEast()], this._latRange = [e.getSouth(), e.getNorth()], this._constrain()) : (this._lngRange = null, this._latRange = [-o.ai, o.ai]) - } - getConstrained(e, n) { - return this._callbacks.getConstrained(e, n) - } - getCameraQueryGeometry(e, n) { - if (n.length === 1) return [n[0], e]; - { - const { - minX: s, - minY: u, - maxX: d, - maxY: m - } = o.a2.fromPoints(n).extend(e); - return [new o.P(s, u), new o.P(d, u), new o.P(d, m), new o.P(s, m), new o.P(s, u)] - } - } - _constrain() { - if (!this.center || !this._width || !this._height || this._constraining) return; - this._constraining = !0; - const e = this._unmodified, - { - center: n, - zoom: s - } = this.getConstrained(this.center, this.zoom); - this.setCenter(n), this.setZoom(s), this._unmodified = e, this._constraining = !1 - } - _calcMatrices() { - if (this._width && this._height) { - this._pixelsToGLUnits = [2 / this._width, -2 / this._height]; - let e = o.ag(new Float64Array(16)); - o.N(e, e, [this._width / 2, -this._height / 2, 1]), o.M(e, e, [1, -1, 0]), this._clipSpaceToPixelsMatrix = e, e = o.ag(new Float64Array(16)), o.N(e, e, [1, -1, 1]), o.M(e, e, [-1, -1, 0]), o.N(e, e, [2 / this._width, 2 / this._height, 1]), this._pixelsToClipSpaceMatrix = e, this._cameraToCenterDistance = .5 / Math.tan(this.fovInRadians / 2) * this._height - } - this._callbacks.calcMatrices() - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - const d = s !== void 0 ? s : this.bearing, - m = u = u !== void 0 ? u : this.pitch, - y = o.a1.fromLngLat(e, n), - w = -Math.cos(o.ae(m)), - P = Math.sin(o.ae(m)), - M = P * Math.sin(o.ae(d)), - D = -P * Math.cos(o.ae(d)); - let z = this.elevation; - const B = n - z; - let U; - w * B >= 0 || Math.abs(w) < .1 ? (U = 1e4, z = n + U * w) : U = -B / w; - let ee, J, re = o.aQ(1, y.y), - se = 0; - do { - if (se += 1, se > 10) break; - J = U / re, ee = new o.a1(y.x + M * J, y.y + D * J), re = 1 / ee.meterInMercatorCoordinateUnits() - } while (Math.abs(U - J * re) > 1e-12); - return { - center: ee.toLngLat(), - elevation: z, - zoom: o.ak(this.height / 2 / Math.tan(this.fovInRadians / 2) / J / this.tileSize) - } - } - recalculateZoomAndCenter(e) { - if (this.elevation - e == 0) return; - const n = o.aj(1, this.center.lat) * this.worldSize, - s = this.cameraToCenterDistance / n, - u = o.a1.fromLngLat(this.center, this.elevation), - d = Le(this.center, this.elevation, this.pitch, this.bearing, s); - this._elevation = e; - const m = this.calculateCenterFromCameraLngLatAlt(d.toLngLat(), o.aQ(d.z, u.y), this.bearing, this.pitch); - this._elevation = m.elevation, this._center = m.center, this.setZoom(m.zoom) - } - getCameraPoint() { - const e = Math.tan(this.pitchInRadians) * (this.cameraToCenterDistance || 1); - return this.centerPoint.add(new o.P(e * Math.sin(this.rollInRadians), e * Math.cos(this.rollInRadians))) - } - getCameraAltitude() { - return Math.cos(this.pitchInRadians) * this._cameraToCenterDistance / this._pixelPerMeter + this.elevation - } - getCameraLngLat() { - const e = o.aj(1, this.center.lat) * this.worldSize; - return Le(this.center, this.elevation, this.pitch, this.bearing, this.cameraToCenterDistance / e).toLngLat() - } - getMercatorTileCoordinates(e) { - if (!e) return [0, 0, 1, 1]; - const n = e.canonical.z >= 0 ? 1 << e.canonical.z : Math.pow(2, e.canonical.z); - return [e.canonical.x / n, e.canonical.y / n, 1 / n / o.$, 1 / n / o.$] - } - } - class Ki { - constructor(e, n) { - this.min = e, this.max = n, this.center = o.aR([], o.aS([], this.min, this.max), .5) - } - quadrant(e) { - const n = [e % 2 == 0, e < 2], - s = o.aT(this.min), - u = o.aT(this.max); - for (let d = 0; d < n.length; d++) s[d] = n[d] ? this.min[d] : this.center[d], u[d] = n[d] ? this.center[d] : this.max[d]; - return u[2] = this.max[2], new Ki(s, u) - } - distanceX(e) { - return Math.max(Math.min(this.max[0], e[0]), this.min[0]) - e[0] - } - distanceY(e) { - return Math.max(Math.min(this.max[1], e[1]), this.min[1]) - e[1] - } - intersectsFrustum(e) { - let n = !0; - for (let s = 0; s < e.planes.length; s++) { - const u = this.intersectsPlane(e.planes[s]); - if (u === 0) return 0; - u === 1 && (n = !1) - } - return n ? 2 : e.aabb.min[0] > this.max[0] || e.aabb.min[1] > this.max[1] || e.aabb.min[2] > this.max[2] || e.aabb.max[0] < this.min[0] || e.aabb.max[1] < this.min[1] || e.aabb.max[2] < this.min[2] ? 0 : 1 - } - intersectsPlane(e) { - let n = e[3], - s = e[3]; - for (let u = 0; u < 3; u++) e[u] > 0 ? (n += e[u] * this.min[u], s += e[u] * this.max[u]) : (s += e[u] * this.min[u], n += e[u] * this.max[u]); - return n >= 0 ? 2 : s < 0 ? 0 : 1 - } - } - class cn { - distanceToTile2d(e, n, s, u) { - const d = u.distanceX([e, n]), - m = u.distanceY([e, n]); - return Math.hypot(d, m) - } - getWrap(e, n, s) { - return s - } - getTileBoundingVolume(e, n, s, u) { - var d, m; - let y = 0, - w = 0; - if (u != null && u.terrain) { - const M = new o.Z(e.z, n, e.z, e.x, e.y), - D = u.terrain.getMinMaxElevation(M); - y = (d = D.minElevation) !== null && d !== void 0 ? d : Math.min(0, s), w = (m = D.maxElevation) !== null && m !== void 0 ? m : Math.max(0, s) - } - const P = 1 << e.z; - return new Ki([n + e.x / P, e.y / P, y], [n + (e.x + 1) / P, (e.y + 1) / P, w]) - } - allowVariableZoom(e, n) { - const s = e.fov * (Math.abs(Math.cos(e.rollInRadians)) * e.height + Math.abs(Math.sin(e.rollInRadians)) * e.width) / e.height, - u = o.ah(78.5 - s / 2, 0, 60); - return !!n.terrain || e.pitch > u - } - allowWorldCopies() { - return !0 - } - prepareNextFrame() {} - } - class Ni { - constructor(e, n, s) { - this.points = e, this.planes = n, this.aabb = s - } - static fromInvProjectionMatrix(e, n = 1, s = 0, u, d) { - const m = d ? [ - [6, 5, 4], - [0, 1, 2], - [0, 3, 7], - [2, 1, 5], - [3, 2, 6], - [0, 4, 5] - ] : [ - [0, 1, 2], - [6, 5, 4], - [0, 3, 7], - [2, 1, 5], - [3, 2, 6], - [0, 4, 5] - ], - y = Math.pow(2, s), - w = [ - [-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((z => (function(B, U, ee, J) { - const re = o.aw([], B, U), - se = 1 / re[3] / ee * J; - return o.aY(re, re, [se, se, 1 / re[3], se]) - })(z, e, n, y))); - u && (function(z, B, U, ee) { - const J = ee ? 4 : 0, - re = ee ? 0 : 4; - let se = 0; - const de = [], - ue = []; - for (let he = 0; he < 4; he++) { - const De = o.aU([], z[he + re], z[he + J]), - He = o.aZ(De); - o.aR(De, De, 1 / He), de.push(He), ue.push(De) - } - for (let he = 0; he < 4; he++) { - const De = o.a_(z[he + J], ue[he], U); - se = De !== null && De >= 0 ? Math.max(se, De) : Math.max(se, de[he]) - } - const ge = (function(he, De) { - const He = o.aU([], he[De[0]], he[De[1]]), - je = o.aU([], he[De[2]], he[De[1]]), - qe = [0, 0, 0, 0]; - return o.aV(qe, o.aW([], He, je)), qe[3] = -o.aX(qe, he[De[0]]), qe - })(z, B), - Te = (function(he, De) { - const He = o.a$(he), - je = o.b0([], he, 1 / He), - qe = o.aU([], De, o.aR([], je, o.aX(De, je))), - $e = o.a$(qe); - if ($e > 0) { - const Rt = Math.sqrt(1 - je[3] * je[3]), - Nt = o.aR([], je, -je[3]), - yt = o.aS([], Nt, o.aR([], qe, Rt / $e)); - return o.b1(De, yt) - } - return null - })(U, ge); - if (Te !== null) { - const he = Te / o.aX(ue[0], ge); - se = Math.min(se, he) - } - for (let he = 0; he < 4; he++) { - const De = Math.min(se, de[he]); - z[he + re] = [z[he + J][0] + ue[he][0] * De, z[he + J][1] + ue[he][1] * De, z[he + J][2] + ue[he][2] * De, 1] - } - })(w, m[0], u, d); - const P = m.map((z => { - const B = o.aU([], w[z[0]], w[z[1]]), - U = o.aU([], w[z[2]], w[z[1]]), - ee = o.aV([], o.aW([], B, U)), - J = -o.aX(ee, w[z[1]]); - return ee.concat(J) - })), - M = [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY], - D = [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY]; - for (const z of w) - for (let B = 0; B < 3; B++) M[B] = Math.min(M[B], z[B]), D[B] = Math.max(D[B], z[B]); - return new Ni(w, P, new Ki(M, D)) - } - } - class wi { - get pixelsToClipSpaceMatrix() { - return this._helper.pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._helper.clipSpaceToPixelsMatrix - } - get pixelsToGLUnits() { - return this._helper.pixelsToGLUnits - } - get centerOffset() { - return this._helper.centerOffset - } - get size() { - return this._helper.size - } - get rotationMatrix() { - return this._helper.rotationMatrix - } - get centerPoint() { - return this._helper.centerPoint - } - get pixelsPerMeter() { - return this._helper.pixelsPerMeter - } - setMinZoom(e) { - this._helper.setMinZoom(e) - } - setMaxZoom(e) { - this._helper.setMaxZoom(e) - } - setMinPitch(e) { - this._helper.setMinPitch(e) - } - setMaxPitch(e) { - this._helper.setMaxPitch(e) - } - setRenderWorldCopies(e) { - this._helper.setRenderWorldCopies(e) - } - setBearing(e) { - this._helper.setBearing(e) - } - setPitch(e) { - this._helper.setPitch(e) - } - setRoll(e) { - this._helper.setRoll(e) - } - setFov(e) { - this._helper.setFov(e) - } - setZoom(e) { - this._helper.setZoom(e) - } - setCenter(e) { - this._helper.setCenter(e) - } - setElevation(e) { - this._helper.setElevation(e) - } - setMinElevationForCurrentTile(e) { - this._helper.setMinElevationForCurrentTile(e) - } - setPadding(e) { - this._helper.setPadding(e) - } - interpolatePadding(e, n, s) { - return this._helper.interpolatePadding(e, n, s) - } - isPaddingEqual(e) { - return this._helper.isPaddingEqual(e) - } - resize(e, n, s = !0) { - this._helper.resize(e, n, s) - } - getMaxBounds() { - return this._helper.getMaxBounds() - } - setMaxBounds(e) { - this._helper.setMaxBounds(e) - } - overrideNearFarZ(e, n) { - this._helper.overrideNearFarZ(e, n) - } - clearNearFarZOverride() { - this._helper.clearNearFarZOverride() - } - getCameraQueryGeometry(e) { - return this._helper.getCameraQueryGeometry(this.getCameraPoint(), e) - } - get tileSize() { - return this._helper.tileSize - } - get tileZoom() { - return this._helper.tileZoom - } - get scale() { - return this._helper.scale - } - get worldSize() { - return this._helper.worldSize - } - get width() { - return this._helper.width - } - get height() { - return this._helper.height - } - get lngRange() { - return this._helper.lngRange - } - get latRange() { - return this._helper.latRange - } - get minZoom() { - return this._helper.minZoom - } - get maxZoom() { - return this._helper.maxZoom - } - get zoom() { - return this._helper.zoom - } - get center() { - return this._helper.center - } - get minPitch() { - return this._helper.minPitch - } - get maxPitch() { - return this._helper.maxPitch - } - get pitch() { - return this._helper.pitch - } - get pitchInRadians() { - return this._helper.pitchInRadians - } - get roll() { - return this._helper.roll - } - get rollInRadians() { - return this._helper.rollInRadians - } - get bearing() { - return this._helper.bearing - } - get bearingInRadians() { - return this._helper.bearingInRadians - } - get fov() { - return this._helper.fov - } - get fovInRadians() { - return this._helper.fovInRadians - } - get elevation() { - return this._helper.elevation - } - get minElevationForCurrentTile() { - return this._helper.minElevationForCurrentTile - } - get padding() { - return this._helper.padding - } - get unmodified() { - return this._helper.unmodified - } - get renderWorldCopies() { - return this._helper.renderWorldCopies - } - get cameraToCenterDistance() { - return this._helper.cameraToCenterDistance - } - get nearZ() { - return this._helper.nearZ - } - get farZ() { - return this._helper.farZ - } - get autoCalculateNearFarZ() { - return this._helper.autoCalculateNearFarZ - } - setTransitionState(e, n) {} - constructor(e, n, s, u, d) { - this._posMatrixCache = new Map, this._alignedPosMatrixCache = new Map, this._fogMatrixCacheF32 = new Map, this._helper = new ln({ - calcMatrices: () => { - this._calcMatrices() - }, - getConstrained: (m, y) => this.getConstrained(m, y) - }, e, n, s, u, d), this._coveringTilesDetailsProvider = new cn - } - clone() { - const e = new wi; - return e.apply(this), e - } - apply(e, n, s) { - this._helper.apply(e, n, s) - } - get cameraPosition() { - return this._cameraPosition - } - get projectionMatrix() { - return this._projectionMatrix - } - get modelViewProjectionMatrix() { - return this._viewProjMatrix - } - get inverseProjectionMatrix() { - return this._invProjMatrix - } - get mercatorMatrix() { - return this._mercatorMatrix - } - getVisibleUnwrappedCoordinates(e) { - const n = [new o.b2(0, e)]; - if (this._helper._renderWorldCopies) { - const s = this.screenPointToMercatorCoordinate(new o.P(0, 0)), - u = this.screenPointToMercatorCoordinate(new o.P(this._helper._width, 0)), - d = this.screenPointToMercatorCoordinate(new o.P(this._helper._width, this._helper._height)), - m = this.screenPointToMercatorCoordinate(new o.P(0, this._helper._height)), - y = Math.floor(Math.min(s.x, u.x, d.x, m.x)), - w = Math.floor(Math.max(s.x, u.x, d.x, m.x)), - P = 1; - for (let M = y - P; M <= w + P; M++) M !== 0 && n.push(new o.b2(M, e)) - } - return n - } - getCameraFrustum() { - return Ni.fromInvProjectionMatrix(this._invViewProjMatrix, this.worldSize) - } - getClippingPlane() { - return null - } - getCoveringTilesDetailsProvider() { - return this._coveringTilesDetailsProvider - } - recalculateZoomAndCenter(e) { - const n = this.screenPointToLocation(this.centerPoint, e), - s = e ? e.getElevationForLngLatZoom(n, this._helper._tileZoom) : 0; - this._helper.recalculateZoomAndCenter(s) - } - setLocationAtPoint(e, n) { - const s = o.aj(this.elevation, this.center.lat), - u = this.screenPointToMercatorCoordinateAtZ(n, s), - d = this.screenPointToMercatorCoordinateAtZ(this.centerPoint, s), - m = o.a1.fromLngLat(e), - y = new o.a1(m.x - (u.x - d.x), m.y - (u.y - d.y)); - this.setCenter(y == null ? void 0 : y.toLngLat()), this._helper._renderWorldCopies && this.setCenter(this.center.wrap()) - } - locationToScreenPoint(e, n) { - return n ? this.coordinatePoint(o.a1.fromLngLat(e), n.getElevationForLngLatZoom(e, this._helper._tileZoom), this._pixelMatrix3D) : this.coordinatePoint(o.a1.fromLngLat(e)) - } - screenPointToLocation(e, n) { - var s; - return (s = this.screenPointToMercatorCoordinate(e, n)) === null || s === void 0 ? void 0 : s.toLngLat() - } - screenPointToMercatorCoordinate(e, n) { - if (n) { - const s = n.pointCoordinate(e); - if (s != null) return s - } - return this.screenPointToMercatorCoordinateAtZ(e) - } - screenPointToMercatorCoordinateAtZ(e, n) { - const s = n || 0, - u = [e.x, e.y, 0, 1], - d = [e.x, e.y, 1, 1]; - o.aw(u, u, this._pixelMatrixInverse), o.aw(d, d, this._pixelMatrixInverse); - const m = u[3], - y = d[3], - w = u[1] / m, - P = d[1] / y, - M = u[2] / m, - D = d[2] / y, - z = M === D ? 0 : (s - M) / (D - M); - return new o.a1(o.C.number(u[0] / m, d[0] / y, z) / this.worldSize, o.C.number(w, P, z) / this.worldSize, s) - } - coordinatePoint(e, n = 0, s = this._pixelMatrix) { - const u = [e.x * this.worldSize, e.y * this.worldSize, n, 1]; - return o.aw(u, u, s), new o.P(u[0] / u[3], u[1] / u[3]) - } - getBounds() { - const e = Math.max(0, this._helper._height / 2 - le(this)); - return new dt().extend(this.screenPointToLocation(new o.P(0, e))).extend(this.screenPointToLocation(new o.P(this._helper._width, e))).extend(this.screenPointToLocation(new o.P(this._helper._width, this._helper._height))).extend(this.screenPointToLocation(new o.P(0, this._helper._height))) - } - isPointOnMapSurface(e, n) { - return n ? n.pointCoordinate(e) != null : e.y > this.height / 2 - le(this) - } - calculatePosMatrix(e, n = !1, s) { - var u; - const d = (u = e.key) !== null && u !== void 0 ? u : o.b3(e.wrap, e.canonical.z, e.canonical.z, e.canonical.x, e.canonical.y), - m = n ? this._alignedPosMatrixCache : this._posMatrixCache; - if (m.has(d)) { - const P = m.get(d); - return s ? P.f32 : P.f64 - } - const y = ve(e, this.worldSize); - o.O(y, n ? this._alignedProjMatrix : this._viewProjMatrix, y); - const w = { - f64: y, - f32: new Float32Array(y) - }; - return m.set(d, w), s ? w.f32 : w.f64 - } - calculateFogMatrix(e) { - const n = e.key, - s = this._fogMatrixCacheF32; - if (s.has(n)) return s.get(n); - const u = ve(e, this.worldSize); - return o.O(u, this._fogMatrix, u), s.set(n, new Float32Array(u)), s.get(n) - } - getConstrained(e, n) { - n = o.ah(+n, this.minZoom, this.maxZoom); - const s = { - center: new o.S(e.lng, e.lat), - zoom: n - }; - let u = this._helper._lngRange; - if (!this._helper._renderWorldCopies && u === null) { - const de = 179.9999999999; - u = [-de, de] - } - const d = this.tileSize * o.af(s.zoom); - let m = 0, - y = d, - w = 0, - P = d, - M = 0, - D = 0; - const { - x: z, - y: B - } = this.size; - if (this._helper._latRange) { - const de = this._helper._latRange; - m = o.U(de[1]) * d, y = o.U(de[0]) * d, y - m < B && (M = B / (y - m)) - } - u && (w = o.aO(o.V(u[0]) * d, 0, d), P = o.aO(o.V(u[1]) * d, 0, d), P < w && (P += d), P - w < z && (D = z / (P - w))); - const { - x: U, - y: ee - } = G(d, e); - let J, re; - const se = Math.max(D || 0, M || 0); - if (se) { - const de = new o.P(D ? (P + w) / 2 : U, M ? (y + m) / 2 : ee); - return s.center = K(d, de).wrap(), s.zoom += o.ak(se), s - } - if (this._helper._latRange) { - const de = B / 2; - ee - de < m && (re = m + de), ee + de > y && (re = y - de) - } - if (u) { - const de = (w + P) / 2; - let ue = U; - this._helper._renderWorldCopies && (ue = o.aO(U, de - d / 2, de + d / 2)); - const ge = z / 2; - ue - ge < w && (J = w + ge), ue + ge > P && (J = P - ge) - } - if (J !== void 0 || re !== void 0) { - const de = new o.P(J ?? U, re ?? ee); - s.center = K(d, de).wrap() - } - return s - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - return this._helper.calculateCenterFromCameraLngLatAlt(e, n, s, u) - } - _calculateNearFarZIfNeeded(e, n, s) { - if (!this._helper.autoCalculateNearFarZ) return; - const u = Math.min(this.elevation, this.minElevationForCurrentTile, this.getCameraAltitude() - 100), - d = e - u * this._helper._pixelPerMeter / Math.cos(n), - m = u < 0 ? d : e, - y = Math.PI / 2 + this.pitchInRadians, - w = o.ae(this.fov) * (Math.abs(Math.cos(o.ae(this.roll))) * this.height + Math.abs(Math.sin(o.ae(this.roll))) * this.width) / this.height * (.5 + s.y / this.height), - P = Math.sin(w) * m / Math.sin(o.ah(Math.PI - y - w, .01, Math.PI - .01)), - M = le(this), - D = Math.atan(M / this._helper.cameraToCenterDistance), - z = o.ae(.75), - B = D > z ? 2 * D * (.5 + s.y / (2 * M)) : z, - U = Math.sin(B) * m / Math.sin(o.ah(Math.PI - y - B, .01, Math.PI - .01)), - ee = Math.min(P, U); - this._helper._farZ = 1.01 * (Math.cos(Math.PI / 2 - n) * ee + m), this._helper._nearZ = this._helper._height / 50 - } - _calcMatrices() { - if (!this._helper._height) return; - const e = this.centerOffset, - n = G(this.worldSize, this.center), - s = n.x, - u = n.y; - this._helper._pixelPerMeter = o.aj(1, this.center.lat) * this.worldSize; - const d = o.ae(Math.min(this.pitch, q)), - m = Math.max(this._helper.cameraToCenterDistance / 2, this._helper.cameraToCenterDistance + this._helper._elevation * this._helper._pixelPerMeter / Math.cos(d)); - let y; - this._calculateNearFarZIfNeeded(m, d, e), y = new Float64Array(16), o.b4(y, this.fovInRadians, this._helper._width / this._helper._height, this._helper._nearZ, this._helper._farZ), this._invProjMatrix = new Float64Array(16), o.aq(this._invProjMatrix, y), y[8] = 2 * -e.x / this._helper._width, y[9] = 2 * e.y / this._helper._height, this._projectionMatrix = o.b5(y), o.N(y, y, [1, -1, 1]), o.M(y, y, [0, 0, -this._helper.cameraToCenterDistance]), o.b6(y, y, -this.rollInRadians), o.b7(y, y, this.pitchInRadians), o.b6(y, y, -this.bearingInRadians), o.M(y, y, [-s, -u, 0]), this._mercatorMatrix = o.N([], y, [this.worldSize, this.worldSize, this.worldSize]), o.N(y, y, [1, 1, this._helper._pixelPerMeter]), this._pixelMatrix = o.O(new Float64Array(16), this.clipSpaceToPixelsMatrix, y), o.M(y, y, [0, 0, -this.elevation]), this._viewProjMatrix = y, this._invViewProjMatrix = o.aq([], y); - const w = [0, 0, -1, 1]; - o.aw(w, w, this._invViewProjMatrix), this._cameraPosition = [w[0] / w[3], w[1] / w[3], w[2] / w[3]], this._fogMatrix = new Float64Array(16), o.b4(this._fogMatrix, this.fovInRadians, this.width / this.height, m, this._helper._farZ), this._fogMatrix[8] = 2 * -e.x / this.width, this._fogMatrix[9] = 2 * e.y / this.height, o.N(this._fogMatrix, this._fogMatrix, [1, -1, 1]), o.M(this._fogMatrix, this._fogMatrix, [0, 0, -this.cameraToCenterDistance]), o.b6(this._fogMatrix, this._fogMatrix, -this.rollInRadians), o.b7(this._fogMatrix, this._fogMatrix, this.pitchInRadians), o.b6(this._fogMatrix, this._fogMatrix, -this.bearingInRadians), o.M(this._fogMatrix, this._fogMatrix, [-s, -u, 0]), o.N(this._fogMatrix, this._fogMatrix, [1, 1, this._helper._pixelPerMeter]), o.M(this._fogMatrix, this._fogMatrix, [0, 0, -this.elevation]), this._pixelMatrix3D = o.O(new Float64Array(16), this.clipSpaceToPixelsMatrix, y); - const P = this._helper._width % 2 / 2, - M = this._helper._height % 2 / 2, - D = Math.cos(this.bearingInRadians), - z = Math.sin(-this.bearingInRadians), - B = s - Math.round(s) + D * P + z * M, - U = u - Math.round(u) + D * M + z * P, - ee = new Float64Array(y); - if (o.M(ee, ee, [B > .5 ? B - 1 : B, U > .5 ? U - 1 : U, 0]), this._alignedProjMatrix = ee, y = o.aq(new Float64Array(16), this._pixelMatrix), !y) throw new Error("failed to invert matrix"); - this._pixelMatrixInverse = y, this._clearMatrixCaches() - } - _clearMatrixCaches() { - this._posMatrixCache.clear(), this._alignedPosMatrixCache.clear(), this._fogMatrixCacheF32.clear() - } - maxPitchScaleFactor() { - if (!this._pixelMatrixInverse) return 1; - const e = this.screenPointToMercatorCoordinate(new o.P(0, 0)), - n = [e.x * this.worldSize, e.y * this.worldSize, 0, 1]; - return o.aw(n, n, this._pixelMatrix)[3] / this._helper.cameraToCenterDistance - } - getCameraPoint() { - return this._helper.getCameraPoint() - } - getCameraAltitude() { - return this._helper.getCameraAltitude() - } - getCameraLngLat() { - const e = o.aj(1, this.center.lat) * this.worldSize; - return Le(this.center, this.elevation, this.pitch, this.bearing, this._helper.cameraToCenterDistance / e).toLngLat() - } - lngLatToCameraDepth(e, n) { - const s = o.a1.fromLngLat(e), - u = [s.x * this.worldSize, s.y * this.worldSize, n, 1]; - return o.aw(u, u, this._viewProjMatrix), u[2] / u[3] - } - getProjectionData(e) { - const { - overscaledTileID: n, - aligned: s, - applyTerrainMatrix: u - } = e, d = this._helper.getMercatorTileCoordinates(n), m = n ? this.calculatePosMatrix(n, s, !0) : null; - let y; - return y = n && n.terrainRttPosMatrix32f && u ? n.terrainRttPosMatrix32f : m || o.b8(), { - mainMatrix: y, - tileMercatorCoords: d, - clippingPlane: [0, 0, 0, 0], - projectionTransition: 0, - fallbackMatrix: y - } - } - isLocationOccluded(e) { - return !1 - } - getPixelScale() { - return 1 - } - getCircleRadiusCorrection() { - return 1 - } - getPitchedTextCorrection(e, n, s) { - return 1 - } - transformLightDirection(e) { - return o.aT(e) - } - getRayDirectionFromPixel(e) { - throw new Error("Not implemented.") - } - projectTileCoordinates(e, n, s, u) { - const d = this.calculatePosMatrix(s); - let m; - u ? (m = [e, n, u(e, n), 1], o.aw(m, m, d)) : (m = [e, n, 0, 1], Li(m, m, d)); - const y = m[3]; - return { - point: new o.P(m[0] / y, m[1] / y), - signedDistanceFromCamera: y, - isOccluded: !1 - } - } - populateCache(e) { - for (const n of e) this.calculatePosMatrix(n) - } - getMatrixForModel(e, n) { - const s = o.a1.fromLngLat(e, n), - u = s.meterInMercatorCoordinateUnits(), - d = o.b9(); - return o.M(d, d, [s.x, s.y, s.z]), o.b6(d, d, Math.PI), o.b7(d, d, Math.PI / 2), o.N(d, d, [-u, u, u]), d - } - getProjectionDataForCustomLayer(e = !0) { - const n = new o.Z(0, 0, 0, 0, 0), - s = this.getProjectionData({ - overscaledTileID: n, - applyGlobeMatrix: e - }), - u = ve(n, this.worldSize); - o.O(u, this._viewProjMatrix, u), s.tileMercatorCoords = [0, 0, 1, 1]; - const d = [o.$, o.$, this.worldSize / this._helper.pixelsPerMeter], - m = o.ba(); - return o.N(m, u, d), s.fallbackMatrix = m, s.mainMatrix = m, s - } - getFastPathSimpleProjectionMatrix(e) { - return this.calculatePosMatrix(e) - } - } - - function Ko() { - o.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.") - } - - function un(h) { - if (h.useSlerp) - if (h.k < 1) { - const e = o.bb(h.startEulerAngles.roll, h.startEulerAngles.pitch, h.startEulerAngles.bearing), - n = o.bb(h.endEulerAngles.roll, h.endEulerAngles.pitch, h.endEulerAngles.bearing), - s = new Float64Array(4); - o.bc(s, e, n, h.k); - const u = o.bd(s); - h.tr.setRoll(u.roll), h.tr.setPitch(u.pitch), h.tr.setBearing(u.bearing) - } else h.tr.setRoll(h.endEulerAngles.roll), h.tr.setPitch(h.endEulerAngles.pitch), h.tr.setBearing(h.endEulerAngles.bearing); - else h.tr.setRoll(o.C.number(h.startEulerAngles.roll, h.endEulerAngles.roll, h.k)), h.tr.setPitch(o.C.number(h.startEulerAngles.pitch, h.endEulerAngles.pitch, h.k)), h.tr.setBearing(o.C.number(h.startEulerAngles.bearing, h.endEulerAngles.bearing, h.k)) - } - - function Nn(h, e, n, s, u) { - const d = u.padding, - m = G(u.worldSize, n.getNorthWest()), - y = G(u.worldSize, n.getNorthEast()), - w = G(u.worldSize, n.getSouthEast()), - P = G(u.worldSize, n.getSouthWest()), - M = o.ae(-s), - D = m.rotate(M), - z = y.rotate(M), - B = w.rotate(M), - U = P.rotate(M), - ee = new o.P(Math.max(D.x, z.x, U.x, B.x), Math.max(D.y, z.y, U.y, B.y)), - J = new o.P(Math.min(D.x, z.x, U.x, B.x), Math.min(D.y, z.y, U.y, B.y)), - re = ee.sub(J), - se = (u.width - (d.left + d.right + e.left + e.right)) / re.x, - de = (u.height - (d.top + d.bottom + e.top + e.bottom)) / re.y; - if (de < 0 || se < 0) return void Ko(); - const ue = Math.min(o.ak(u.scale * Math.min(se, de)), h.maxZoom), - ge = o.P.convert(h.offset), - Te = new o.P((e.left - e.right) / 2, (e.top - e.bottom) / 2).rotate(o.ae(s)), - he = ge.add(Te).mult(u.scale / o.af(ue)); - return { - center: K(u.worldSize, m.add(w).div(2).sub(he)), - zoom: ue, - bearing: s - } - } - class hn { - get useGlobeControls() { - return !1 - } - handlePanInertia(e, n) { - return { - easingOffset: e, - easingCenter: n.center - } - } - handleMapControlsRollPitchBearingZoom(e, n) { - e.bearingDelta && n.setBearing(n.bearing + e.bearingDelta), e.pitchDelta && n.setPitch(n.pitch + e.pitchDelta), e.rollDelta && n.setRoll(n.roll + e.rollDelta), e.zoomDelta && n.setZoom(n.zoom + e.zoomDelta) - } - handleMapControlsPan(e, n, s) { - e.around.distSqr(n.centerPoint) < .01 || n.setLocationAtPoint(s, e.around) - } - cameraForBoxAndBearing(e, n, s, u, d) { - return Nn(e, n, s, u, d) - } - handleJumpToCenterZoom(e, n) { - e.zoom !== (n.zoom !== void 0 ? +n.zoom : e.zoom) && e.setZoom(+n.zoom), n.center !== void 0 && e.setCenter(o.S.convert(n.center)) - } - handleEaseTo(e, n) { - const s = e.zoom, - u = e.padding, - d = { - roll: e.roll, - pitch: e.pitch, - bearing: e.bearing - }, - m = { - roll: n.roll === void 0 ? e.roll : n.roll, - pitch: n.pitch === void 0 ? e.pitch : n.pitch, - bearing: n.bearing === void 0 ? e.bearing : n.bearing - }, - y = n.zoom !== void 0, - w = !e.isPaddingEqual(n.padding); - let P = !1; - const M = y ? +n.zoom : e.zoom; - let D = e.centerPoint.add(n.offsetAsPoint); - const z = e.screenPointToLocation(D), - { - center: B, - zoom: U - } = e.getConstrained(o.S.convert(n.center || z), M ?? s); - vn(e, B); - const ee = G(e.worldSize, z), - J = G(e.worldSize, B).sub(ee), - re = o.af(U - s); - return P = U !== s, { - easeFunc: se => { - if (P && e.setZoom(o.C.number(s, U, se)), o.be(d, m) || un({ - startEulerAngles: d, - endEulerAngles: m, - tr: e, - k: se, - useSlerp: d.roll != m.roll - }), w && (e.interpolatePadding(u, n.padding, se), D = e.centerPoint.add(n.offsetAsPoint)), n.around) e.setLocationAtPoint(n.around, n.aroundPoint); - else { - const de = o.af(e.zoom - s), - ue = U > s ? Math.min(2, re) : Math.max(.5, re), - ge = Math.pow(ue, 1 - se), - Te = K(e.worldSize, ee.add(J.mult(se * ge)).mult(de)); - e.setLocationAtPoint(e.renderWorldCopies ? Te.wrap() : Te, D) - } - }, - isZooming: P, - elevationCenter: B - } - } - handleFlyTo(e, n) { - const s = n.zoom !== void 0, - u = e.zoom, - d = e.getConstrained(o.S.convert(n.center || n.locationAtOffset), s ? +n.zoom : u), - m = d.center, - y = d.zoom; - vn(e, m); - const w = G(e.worldSize, n.locationAtOffset), - P = G(e.worldSize, m).sub(w), - M = P.mag(), - D = o.af(y - u); - let z; - if (n.minZoom !== void 0) { - const B = Math.min(+n.minZoom, u, y), - U = e.getConstrained(m, B).zoom; - z = o.af(U - u) - } - return { - easeFunc: (B, U, ee, J) => { - e.setZoom(B === 1 ? y : u + o.ak(U)); - const re = B === 1 ? m : K(e.worldSize, w.add(P.mult(ee)).mult(U)); - e.setLocationAtPoint(e.renderWorldCopies ? re.wrap() : re, J) - }, - scaleOfZoom: D, - targetCenter: m, - scaleOfMinZoom: z, - pixelPathLength: M - } - } - } - class Ti { - constructor(e, n, s) { - this.blendFunction = e, this.blendColor = n, this.mask = s - } - } - Ti.Replace = [1, 0], Ti.disabled = new Ti(Ti.Replace, o.bf.transparent, [!1, !1, !1, !1]), Ti.unblended = new Ti(Ti.Replace, o.bf.transparent, [!0, !0, !0, !0]), Ti.alphaBlended = new Ti([1, 771], o.bf.transparent, [!0, !0, !0, !0]); - const Za = 2305; - class wr { - constructor(e, n, s) { - this.enable = e, this.mode = n, this.frontFace = s - } - } - wr.disabled = new wr(!1, 1029, Za), wr.backCCW = new wr(!0, 1029, Za), wr.frontCCW = new wr(!0, 1028, Za); - class Vr { - constructor(e, n, s) { - this.func = e, this.mask = n, this.range = s - } - } - Vr.ReadOnly = !1, Vr.ReadWrite = !0, Vr.disabled = new Vr(519, Vr.ReadOnly, [0, 1]); - const ga = 7680; - class hi { - constructor(e, n, s, u, d, m) { - this.test = e, this.ref = n, this.mask = s, this.fail = u, this.depthFail = d, this.pass = m - } - } - hi.disabled = new hi({ - func: 519, - mask: 0 - }, 0, 0, ga, ga, ga); - const ra = new WeakMap; - - function Ra(h) { - var e; - if (ra.has(h)) return ra.get(h); - { - const n = (e = h.getParameter(h.VERSION)) === null || e === void 0 ? void 0 : e.startsWith("WebGL 2.0"); - return ra.set(h, n), n - } - } - class Ba { - get awaitingQuery() { - return !!this._readbackQueue - } - constructor(e) { - this._readbackWaitFrames = 4, this._measureWaitFrames = 6, this._texWidth = 1, this._texHeight = 1, this._measuredError = 0, this._updateCount = 0, this._lastReadbackFrame = -1e3, this._readbackQueue = null, this._cachedRenderContext = e; - const n = e.context, - s = n.gl; - this._texFormat = s.RGBA, this._texType = s.UNSIGNED_BYTE; - const u = new o.aL; - u.emplaceBack(-1, -1), u.emplaceBack(2, -1), u.emplaceBack(-1, 2); - const d = new o.aN; - d.emplaceBack(0, 1, 2), this._fullscreenTriangle = new Ri(n.createVertexBuffer(u, ui.members), n.createIndexBuffer(d), o.aM.simpleSegment(0, 0, u.length, d.length)), this._resultBuffer = new Uint8Array(4), n.activeTexture.set(s.TEXTURE1); - const m = s.createTexture(); - s.bindTexture(s.TEXTURE_2D, m), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_WRAP_S, s.CLAMP_TO_EDGE), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_WRAP_T, s.CLAMP_TO_EDGE), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_MIN_FILTER, s.NEAREST), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_MAG_FILTER, s.NEAREST), s.texImage2D(s.TEXTURE_2D, 0, this._texFormat, this._texWidth, this._texHeight, 0, this._texFormat, this._texType, null), this._fbo = n.createFramebuffer(this._texWidth, this._texHeight, !1, !1), this._fbo.colorAttachment.set(m), Ra(s) && (this._pbo = s.createBuffer(), s.bindBuffer(s.PIXEL_PACK_BUFFER, this._pbo), s.bufferData(s.PIXEL_PACK_BUFFER, 4, s.STREAM_READ), s.bindBuffer(s.PIXEL_PACK_BUFFER, null)) - } - destroy() { - const e = this._cachedRenderContext.context.gl; - this._fullscreenTriangle.destroy(), this._fbo.destroy(), e.deleteBuffer(this._pbo), this._fullscreenTriangle = null, this._fbo = null, this._pbo = null, this._resultBuffer = null - } - updateErrorLoop(e, n) { - const s = this._updateCount; - return this._readbackQueue ? s >= this._readbackQueue.frameNumberIssued + this._readbackWaitFrames && this._tryReadback() : s >= this._lastReadbackFrame + this._measureWaitFrames && this._renderErrorTexture(e, n), this._updateCount++, this._measuredError - } - _bindFramebuffer() { - const e = this._cachedRenderContext.context, - n = e.gl; - e.activeTexture.set(n.TEXTURE1), n.bindTexture(n.TEXTURE_2D, this._fbo.colorAttachment.get()), e.bindFramebuffer.set(this._fbo.framebuffer) - } - _renderErrorTexture(e, n) { - const s = this._cachedRenderContext.context, - u = s.gl; - if (this._bindFramebuffer(), s.viewport.set([0, 0, this._texWidth, this._texHeight]), s.clear({ - color: o.bf.transparent - }), this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(s, u.TRIANGLES, Vr.disabled, hi.disabled, Ti.unblended, wr.disabled, ((d, m) => ({ - u_input: d, - u_output_expected: m - }))(e, n), null, null, "$clipping", this._fullscreenTriangle.vertexBuffer, this._fullscreenTriangle.indexBuffer, this._fullscreenTriangle.segments), this._pbo && Ra(u)) { - u.bindBuffer(u.PIXEL_PACK_BUFFER, this._pbo), u.readBuffer(u.COLOR_ATTACHMENT0), u.readPixels(0, 0, this._texWidth, this._texHeight, this._texFormat, this._texType, 0), u.bindBuffer(u.PIXEL_PACK_BUFFER, null); - const d = u.fenceSync(u.SYNC_GPU_COMMANDS_COMPLETE, 0); - u.flush(), this._readbackQueue = { - frameNumberIssued: this._updateCount, - sync: d - } - } else this._readbackQueue = { - frameNumberIssued: this._updateCount, - sync: null - } - } - _tryReadback() { - const e = this._cachedRenderContext.context.gl; - if (this._pbo && this._readbackQueue && Ra(e)) { - const n = e.clientWaitSync(this._readbackQueue.sync, 0, 0); - if (n === e.WAIT_FAILED) return o.w("WebGL2 clientWaitSync failed."), this._readbackQueue = null, void(this._lastReadbackFrame = this._updateCount); - if (n === e.TIMEOUT_EXPIRED) return; - e.bindBuffer(e.PIXEL_PACK_BUFFER, this._pbo), e.getBufferSubData(e.PIXEL_PACK_BUFFER, 0, this._resultBuffer, 0, 4), e.bindBuffer(e.PIXEL_PACK_BUFFER, null) - } else this._bindFramebuffer(), e.readPixels(0, 0, this._texWidth, this._texHeight, this._texFormat, this._texType, this._resultBuffer); - this._readbackQueue = null, this._measuredError = Ba._parseRGBA8float(this._resultBuffer), this._lastReadbackFrame = this._updateCount - } - static _parseRGBA8float(e) { - let n = 0; - return n += e[0] / 256, n += e[1] / 65536, n += e[2] / 16777216, e[3] < 127 && (n = -n), n / 128 - } - } - const Yo = o.$ / 128; - - function mc(h, e) { - const n = h.granularity !== void 0 ? Math.max(h.granularity, 1) : 1, - s = n + (h.generateBorders ? 2 : 0), - u = n + (h.extendToNorthPole || h.generateBorders ? 1 : 0) + (h.extendToSouthPole || h.generateBorders ? 1 : 0), - d = s + 1, - m = u + 1, - y = h.generateBorders ? -1 : 0, - w = h.generateBorders || h.extendToNorthPole ? -1 : 0, - P = n + (h.generateBorders ? 1 : 0), - M = n + (h.generateBorders || h.extendToSouthPole ? 1 : 0), - D = d * m, - z = s * u * 6, - B = d * m > 65536; - if (B && e === "16bit") throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices."); - const U = B || e === "32bit", - ee = new Int16Array(2 * D); - let J = 0; - for (let de = w; de <= M; de++) - for (let ue = y; ue <= P; ue++) { - let ge = ue / n * o.$; - ue === -1 && (ge = -Yo), ue === n + 1 && (ge = o.$ + Yo); - let Te = de / n * o.$; - de === -1 && (Te = h.extendToNorthPole ? o.bh : -Yo), de === n + 1 && (Te = h.extendToSouthPole ? o.bi : o.$ + Yo), ee[J++] = ge, ee[J++] = Te - } - const re = U ? new Uint32Array(z) : new Uint16Array(z); - let se = 0; - for (let de = 0; de < u; de++) - for (let ue = 0; ue < s; ue++) { - const ge = ue + 1 + de * d, - Te = ue + (de + 1) * d, - he = ue + 1 + (de + 1) * d; - re[se++] = ue + de * d, re[se++] = Te, re[se++] = ge, re[se++] = ge, re[se++] = Te, re[se++] = he - } - return { - vertices: ee.buffer.slice(0), - indices: re.buffer.slice(0), - uses32bitIndices: U - } - } - const Rs = new o.aK({ - fill: new o.bj(128, 2), - line: new o.bj(512, 0), - tile: new o.bj(128, 32), - stencil: new o.bj(128, 1), - circle: 3 - }); - class co { - constructor() { - this._tileMeshCache = {}, this._errorCorrectionUsable = 0, this._errorMeasurementLastValue = 0, this._errorCorrectionPreviousValue = 0, this._errorMeasurementLastChangeTime = -1e3 - } - get name() { - return "vertical-perspective" - } - get transitionState() { - return 1 - } - get useSubdivision() { - return !0 - } - get shaderVariantName() { - return "globe" - } - get shaderDefine() { - return "#define GLOBE" - } - get shaderPreludeCode() { - return pi.projectionGlobe - } - get vertexShaderPreludeCode() { - return pi.projectionMercator.vertexSource - } - get subdivisionGranularity() { - return Rs - } - get useGlobeControls() { - return !0 - } - get latitudeErrorCorrectionRadians() { - return this._errorCorrectionUsable - } - destroy() { - this._errorMeasurement && this._errorMeasurement.destroy() - } - updateGPUdependent(e) { - this._errorMeasurement || (this._errorMeasurement = new Ba(e)); - const n = o.U(this._errorQueryLatitudeDegrees), - s = 2 * Math.atan(Math.exp(Math.PI - n * Math.PI * 2)) - .5 * Math.PI, - u = this._errorMeasurement.updateErrorLoop(n, s), - d = ye.now(); - u !== this._errorMeasurementLastValue && (this._errorCorrectionPreviousValue = this._errorCorrectionUsable, this._errorMeasurementLastValue = u, this._errorMeasurementLastChangeTime = d); - const m = Math.min(Math.max((d - this._errorMeasurementLastChangeTime) / 1e3 / .5, 0), 1); - this._errorCorrectionUsable = o.bk(this._errorCorrectionPreviousValue, -this._errorMeasurementLastValue, o.bl(m)) - } - _getMeshKey(e) { - return `${e.granularity.toString(36)}_${e.generateBorders?"b":""}${e.extendToNorthPole?"n":""}${e.extendToSouthPole?"s":""}` - } - getMeshFromTileID(e, n, s, u, d) { - const m = (d === "stencil" ? Rs.stencil : Rs.tile).getGranularityForZoomLevel(n.z); - return this._getMesh(e, { - granularity: m, - generateBorders: s, - extendToNorthPole: n.y === 0 && u, - extendToSouthPole: n.y === (1 << n.z) - 1 && u - }) - } - _getMesh(e, n) { - const s = this._getMeshKey(n); - if (s in this._tileMeshCache) return this._tileMeshCache[s]; - const u = (function(d, m) { - const y = mc(m, "16bit"), - w = o.aL.deserialize({ - arrayBuffer: y.vertices, - length: y.vertices.byteLength / 2 / 2 - }), - P = o.aN.deserialize({ - arrayBuffer: y.indices, - length: y.indices.byteLength / 2 / 3 - }); - return new Ri(d.createVertexBuffer(w, ui.members), d.createIndexBuffer(P), o.aM.simpleSegment(0, 0, w.length, P.length)) - })(e, n); - return this._tileMeshCache[s] = u, u - } - recalculate(e) {} - hasTransition() { - const e = ye.now(); - let n = !1; - return n = n || (e - this._errorMeasurementLastChangeTime) / 1e3 < .7, n = n || this._errorMeasurement && this._errorMeasurement.awaitingQuery, n - } - setErrorQueryLatitudeDegrees(e) { - this._errorQueryLatitudeDegrees = e - } - } - const Jo = new o.r({ - type: new o.D(o.v.projection.type) - }); - class Qo extends o.E { - constructor(e) { - super(), this._transitionable = new o.t(Jo), this.setProjection(e), this._transitioning = this._transitionable.untransitioned(), this.recalculate(new o.F(0)), this._mercatorProjection = new yr, this._verticalPerspectiveProjection = new co - } - get transitionState() { - const e = this.properties.get("type"); - if (typeof e == "string" && e === "mercator") return 0; - if (typeof e == "string" && e === "vertical-perspective") return 1; - if (e instanceof o.bm) { - if (e.from === "vertical-perspective" && e.to === "mercator") return 1 - e.transition; - if (e.from === "mercator" && e.to === "vertical-perspective") return e.transition - } - return 1 - } - get useGlobeRendering() { - return this.transitionState > 0 - } - get latitudeErrorCorrectionRadians() { - return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians - } - get currentProjection() { - return this.useGlobeRendering ? this._verticalPerspectiveProjection : this._mercatorProjection - } - get name() { - return "globe" - } - get useSubdivision() { - return this.currentProjection.useSubdivision - } - get shaderVariantName() { - return this.currentProjection.shaderVariantName - } - get shaderDefine() { - return this.currentProjection.shaderDefine - } - get shaderPreludeCode() { - return this.currentProjection.shaderPreludeCode - } - get vertexShaderPreludeCode() { - return this.currentProjection.vertexShaderPreludeCode - } - get subdivisionGranularity() { - return this.currentProjection.subdivisionGranularity - } - get useGlobeControls() { - return this.transitionState > 0 - } - destroy() { - this._mercatorProjection.destroy(), this._verticalPerspectiveProjection.destroy() - } - updateGPUdependent(e) { - this._mercatorProjection.updateGPUdependent(e), this._verticalPerspectiveProjection.updateGPUdependent(e) - } - getMeshFromTileID(e, n, s, u, d) { - return this.currentProjection.getMeshFromTileID(e, n, s, u, d) - } - setProjection(e) { - this._transitionable.setValue("type", (e == null ? void 0 : e.type) || "mercator") - } - updateTransitions(e) { - this._transitioning = this._transitionable.transitioned(e, this._transitioning) - } - hasTransition() { - return this._transitioning.hasTransition() || this.currentProjection.hasTransition() - } - recalculate(e) { - this.properties = this._transitioning.possiblyEvaluate(e) - } - setErrorQueryLatitudeDegrees(e) { - this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(e), this._mercatorProjection.setErrorQueryLatitudeDegrees(e) - } - } - - function el(h) { - const e = Bs(h.worldSize, h.center.lat); - return 2 * Math.PI * e - } - - function va(h, e, n, s, u) { - const d = 1 / (1 << u), - m = e / o.$ * d + s * d, - y = o.bo((h / o.$ * d + n * d) * Math.PI * 2 + Math.PI, 2 * Math.PI), - w = 2 * Math.atan(Math.exp(Math.PI - m * Math.PI * 2)) - .5 * Math.PI, - P = Math.cos(w), - M = new Float64Array(3); - return M[0] = Math.sin(y) * P, M[1] = Math.sin(w), M[2] = Math.cos(y) * P, M - } - - function yn(h) { - return (function(e, n) { - const s = Math.cos(n), - u = new Float64Array(3); - return u[0] = Math.sin(e) * s, u[1] = Math.sin(n), u[2] = Math.cos(e) * s, u - })(h.lng * Math.PI / 180, h.lat * Math.PI / 180) - } - - function Bs(h, e) { - return h / (2 * Math.PI) / Math.cos(e * Math.PI / 180) - } - - function uo(h) { - const e = Math.asin(h[1]) / Math.PI * 180, - n = Math.sqrt(h[0] * h[0] + h[2] * h[2]); - if (n > 1e-6) { - const s = h[0] / n, - u = Math.acos(h[2] / n), - d = (s > 0 ? u : -u) / Math.PI * 180; - return new o.S(o.aO(d, -180, 180), e) - } - return new o.S(0, e) - } - - function fs(h) { - return Math.cos(h * Math.PI / 180) - } - - function Gi(h, e) { - const n = fs(h), - s = fs(e); - return o.ak(s / n) - } - - function _h(h, e) { - const n = h.rotate(e.bearingInRadians), - s = e.zoom + Gi(e.center.lat, 0), - u = o.bk(1 / fs(e.center.lat), 1 / fs(Math.min(Math.abs(e.center.lat), 60)), o.bn(s, 7, 3, 0, 1)), - d = 360 / el({ - worldSize: e.worldSize, - center: { - lat: e.center.lat - } - }); - return new o.S(e.center.lng - n.x * d * u, o.ah(e.center.lat + n.y * d, -o.ai, o.ai)) - } - - function ho(h) { - const e = .5 * h, - n = Math.sin(e), - s = Math.cos(e); - return Math.log(n + s) - Math.log(s - n) - } - - function _c(h, e, n, s) { - const u = h.lat + n * s; - if (Math.abs(n) > 1) { - const d = (Math.sign(h.lat + n) !== Math.sign(h.lat) ? -Math.abs(h.lat) : Math.abs(h.lat)) * Math.PI / 180, - m = Math.abs(h.lat + n) * Math.PI / 180, - y = ho(d + s * (m - d)), - w = ho(d), - P = ho(m); - return new o.S(h.lng + e * ((y - w) / (P - w)), u) - } - return new o.S(h.lng + e * s, u) - } - class Yd { - constructor(e) { - this._cachePrevious = new Map, this._cache = new Map, this._hadAnyChanges = !1, this._boundingVolumeFactory = e - } - swapBuffers() { - if (!this._hadAnyChanges) return; - const e = this._cachePrevious; - this._cachePrevious = this._cache, this._cache = e, this._cache.clear(), this._hadAnyChanges = !1 - } - getTileBoundingVolume(e, n, s, u) { - const d = `${e.z}_${e.x}_${e.y}_${u!=null&&u.terrain?"t":""}`, - m = this._cache.get(d); - if (m) return m; - const y = this._cachePrevious.get(d); - if (y) return this._cache.set(d, y), y; - const w = this._boundingVolumeFactory(e, n, s, u); - return this._cache.set(d, w), this._hadAnyChanges = !0, w - } - } - class Fs { - constructor(e, n, s, u) { - this.min = s, this.max = u, this.points = e, this.planes = n - } - static fromAabb(e, n) { - const s = []; - for (let u = 0; u < 8; u++) s.push([1 & ~u ? e[0] : n[0], (u >> 1 & 1) == 1 ? n[1] : e[1], (u >> 2 & 1) == 1 ? n[2] : e[2]]); - return new Fs(s, [ - [-1, 0, 0, n[0]], - [1, 0, 0, -e[0]], - [0, -1, 0, n[1]], - [0, 1, 0, -e[1]], - [0, 0, -1, n[2]], - [0, 0, 1, -e[2]] - ], e, n) - } - static fromCenterSizeAngles(e, n, s) { - const u = o.br([], s[0], s[1], s[2]), - d = o.bs([], [n[0], 0, 0], u), - m = o.bs([], [0, n[1], 0], u), - y = o.bs([], [0, 0, n[2]], u), - w = [...e], - P = [...e]; - for (let D = 0; D < 8; D++) - for (let z = 0; z < 3; z++) { - const B = e[z] + d[z] * (1 & ~D ? -1 : 1) + m[z] * ((D >> 1 & 1) == 1 ? 1 : -1) + y[z] * ((D >> 2 & 1) == 1 ? 1 : -1); - w[z] = Math.min(w[z], B), P[z] = Math.max(P[z], B) - } - const M = []; - for (let D = 0; D < 8; D++) { - const z = [...e]; - o.aS(z, z, o.aR([], d, 1 & ~D ? -1 : 1)), o.aS(z, z, o.aR([], m, (D >> 1 & 1) == 1 ? 1 : -1)), o.aS(z, z, o.aR([], y, (D >> 2 & 1) == 1 ? 1 : -1)), M.push(z) - } - return new Fs(M, [ - [...d, -o.aX(d, M[0])], - [...m, -o.aX(m, M[0])], - [...y, -o.aX(y, M[0])], - [-d[0], -d[1], -d[2], -o.aX(d, M[7])], - [-m[0], -m[1], -m[2], -o.aX(m, M[7])], - [-y[0], -y[1], -y[2], -o.aX(y, M[7])] - ], w, P) - } - intersectsFrustum(e) { - let n = !0; - const s = this.points.length, - u = this.planes.length, - d = e.planes.length, - m = e.points.length; - for (let y = 0; y < d; y++) { - const w = e.planes[y]; - let P = 0; - for (let M = 0; M < s; M++) { - const D = this.points[M]; - w[0] * D[0] + w[1] * D[1] + w[2] * D[2] + w[3] >= 0 && P++ - } - if (P === 0) return 0; - P < s && (n = !1) - } - if (n) return 2; - for (let y = 0; y < u; y++) { - const w = this.planes[y]; - let P = 0; - for (let M = 0; M < m; M++) { - const D = e.points[M]; - w[0] * D[0] + w[1] * D[1] + w[2] * D[2] + w[3] >= 0 && P++ - } - if (P === 0) return 0 - } - return 1 - } - intersectsPlane(e) { - const n = this.points.length; - let s = 0; - for (let u = 0; u < n; u++) { - const d = this.points[u]; - e[0] * d[0] + e[1] * d[1] + e[2] * d[2] + e[3] >= 0 && s++ - } - return s === n ? 2 : s === 0 ? 0 : 1 - } - } - - function In(h, e, n) { - const s = h - e; - return s < 0 ? -s : Math.max(0, s - n) - } - - function po(h, e, n, s, u) { - const d = h - n; - let m; - return m = d < 0 ? Math.min(-d, 1 + d - u) : d > 1 ? Math.min(Math.max(d - u, 0), 1 - d) : 0, Math.max(m, In(e, s, u)) - } - class Fa { - constructor() { - this._boundingVolumeCache = new Yd(this._computeTileBoundingVolume) - } - prepareNextFrame() { - this._boundingVolumeCache.swapBuffers() - } - distanceToTile2d(e, n, s, u) { - const d = 1 << s.z, - m = 1 / d, - y = s.x / d, - w = s.y / d; - let P = 2; - return P = Math.min(P, po(e, n, y, w, m)), P = Math.min(P, po(e, n, y + .5, -w - m, m)), P = Math.min(P, po(e, n, y + .5, 2 - w - m, m)), P - } - getWrap(e, n, s) { - const u = 1 << n.z, - d = 1 / u, - m = n.x / u, - y = In(e.x, m, d), - w = In(e.x, m - 1, d), - P = In(e.x, m + 1, d), - M = Math.min(y, w, P); - return M === P ? 1 : M === w ? -1 : 0 - } - allowVariableZoom(e, n) { - return Ot(e, n) > 4 - } - allowWorldCopies() { - return !1 - } - getTileBoundingVolume(e, n, s, u) { - return this._boundingVolumeCache.getTileBoundingVolume(e, n, s, u) - } - _computeTileBoundingVolume(e, n, s, u) { - var d, m; - let y = 0, - w = 0; - if (u != null && u.terrain) { - const P = new o.Z(e.z, n, e.z, e.x, e.y), - M = u.terrain.getMinMaxElevation(P); - y = (d = M.minElevation) !== null && d !== void 0 ? d : Math.min(0, s), w = (m = M.maxElevation) !== null && m !== void 0 ? m : Math.max(0, s) - } - if (y /= o.bu, w /= o.bu, y += 1, w += 1, e.z <= 0) return Fs.fromAabb([-w, -w, -w], [w, w, w]); - if (e.z === 1) return Fs.fromAabb([e.x === 0 ? -w : 0, e.y === 0 ? 0 : -w, -w], [e.x === 0 ? 0 : w, e.y === 0 ? w : 0, w]); - { - const P = [va(0, 0, e.x, e.y, e.z), va(o.$, 0, e.x, e.y, e.z), va(o.$, o.$, e.x, e.y, e.z), va(0, o.$, e.x, e.y, e.z)], - M = []; - for (const qe of P) M.push(o.aR([], qe, w)); - if (w !== y) - for (const qe of P) M.push(o.aR([], qe, y)); - e.y === 0 && M.push([0, 1, 0]), e.y === (1 << e.z) - 1 && M.push([0, -1, 0]); - const D = [1, 1, 1], - z = [-1, -1, -1]; - for (const qe of M) - for (let $e = 0; $e < 3; $e++) D[$e] = Math.min(D[$e], qe[$e]), z[$e] = Math.max(z[$e], qe[$e]); - const B = va(o.$ / 2, o.$ / 2, e.x, e.y, e.z), - U = o.aW([], [0, 1, 0], B); - o.aV(U, U); - const ee = o.aW([], B, U); - o.aV(ee, ee); - const J = o.aW([], P[2], P[1]); - o.aV(J, J); - const re = o.aW([], P[0], P[3]); - o.aV(re, re), M.push(o.aR([], B, w)), e.y >= (1 << e.z) / 2 && M.push(o.aR([], va(o.$ / 2, 0, e.x, e.y, e.z), w)), e.y < (1 << e.z) / 2 && M.push(o.aR([], va(o.$ / 2, o.$, e.x, e.y, e.z), w)); - const se = fo(B, M), - de = fo(ee, M), - ue = [-B[0], -B[1], -B[2], se.max], - ge = [B[0], B[1], B[2], -se.min], - Te = [-ee[0], -ee[1], -ee[2], de.max], - he = [ee[0], ee[1], ee[2], -de.min], - De = [...J, 0], - He = [...re, 0], - je = []; - return e.y === 0 ? je.push(o.bt(He, De, ue), o.bt(He, De, ge)) : je.push(o.bt(Te, De, ue), o.bt(Te, De, ge), o.bt(Te, He, ue), o.bt(Te, He, ge)), e.y === (1 << e.z) - 1 ? je.push(o.bt(He, De, ue), o.bt(He, De, ge)) : je.push(o.bt(he, De, ue), o.bt(he, De, ge), o.bt(he, He, ue), o.bt(he, He, ge)), new Fs(je, [ue, ge, Te, he, De, He], D, z) - } - } - } - - function fo(h, e) { - let n = 1 / 0, - s = -1 / 0; - for (const u of e) { - const d = o.aX(h, u); - n = Math.min(n, d), s = Math.max(s, d) - } - return { - min: n, - max: s - } - } - class mo { - get pixelsToClipSpaceMatrix() { - return this._helper.pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._helper.clipSpaceToPixelsMatrix - } - get pixelsToGLUnits() { - return this._helper.pixelsToGLUnits - } - get centerOffset() { - return this._helper.centerOffset - } - get size() { - return this._helper.size - } - get rotationMatrix() { - return this._helper.rotationMatrix - } - get centerPoint() { - return this._helper.centerPoint - } - get pixelsPerMeter() { - return this._helper.pixelsPerMeter - } - setMinZoom(e) { - this._helper.setMinZoom(e) - } - setMaxZoom(e) { - this._helper.setMaxZoom(e) - } - setMinPitch(e) { - this._helper.setMinPitch(e) - } - setMaxPitch(e) { - this._helper.setMaxPitch(e) - } - setRenderWorldCopies(e) { - this._helper.setRenderWorldCopies(e) - } - setBearing(e) { - this._helper.setBearing(e) - } - setPitch(e) { - this._helper.setPitch(e) - } - setRoll(e) { - this._helper.setRoll(e) - } - setFov(e) { - this._helper.setFov(e) - } - setZoom(e) { - this._helper.setZoom(e) - } - setCenter(e) { - this._helper.setCenter(e) - } - setElevation(e) { - this._helper.setElevation(e) - } - setMinElevationForCurrentTile(e) { - this._helper.setMinElevationForCurrentTile(e) - } - setPadding(e) { - this._helper.setPadding(e) - } - interpolatePadding(e, n, s) { - return this._helper.interpolatePadding(e, n, s) - } - isPaddingEqual(e) { - return this._helper.isPaddingEqual(e) - } - resize(e, n) { - this._helper.resize(e, n) - } - getMaxBounds() { - return this._helper.getMaxBounds() - } - setMaxBounds(e) { - this._helper.setMaxBounds(e) - } - overrideNearFarZ(e, n) { - this._helper.overrideNearFarZ(e, n) - } - clearNearFarZOverride() { - this._helper.clearNearFarZOverride() - } - getCameraQueryGeometry(e) { - return this._helper.getCameraQueryGeometry(this.getCameraPoint(), e) - } - get tileSize() { - return this._helper.tileSize - } - get tileZoom() { - return this._helper.tileZoom - } - get scale() { - return this._helper.scale - } - get worldSize() { - return this._helper.worldSize - } - get width() { - return this._helper.width - } - get height() { - return this._helper.height - } - get lngRange() { - return this._helper.lngRange - } - get latRange() { - return this._helper.latRange - } - get minZoom() { - return this._helper.minZoom - } - get maxZoom() { - return this._helper.maxZoom - } - get zoom() { - return this._helper.zoom - } - get center() { - return this._helper.center - } - get minPitch() { - return this._helper.minPitch - } - get maxPitch() { - return this._helper.maxPitch - } - get pitch() { - return this._helper.pitch - } - get pitchInRadians() { - return this._helper.pitchInRadians - } - get roll() { - return this._helper.roll - } - get rollInRadians() { - return this._helper.rollInRadians - } - get bearing() { - return this._helper.bearing - } - get bearingInRadians() { - return this._helper.bearingInRadians - } - get fov() { - return this._helper.fov - } - get fovInRadians() { - return this._helper.fovInRadians - } - get elevation() { - return this._helper.elevation - } - get minElevationForCurrentTile() { - return this._helper.minElevationForCurrentTile - } - get padding() { - return this._helper.padding - } - get unmodified() { - return this._helper.unmodified - } - get renderWorldCopies() { - return this._helper.renderWorldCopies - } - get nearZ() { - return this._helper.nearZ - } - get farZ() { - return this._helper.farZ - } - get autoCalculateNearFarZ() { - return this._helper.autoCalculateNearFarZ - } - setTransitionState(e) {} - constructor() { - this._cachedClippingPlane = o.bv(), this._projectionMatrix = o.b9(), this._globeViewProjMatrix32f = o.b8(), this._globeViewProjMatrixNoCorrection = o.b9(), this._globeViewProjMatrixNoCorrectionInverted = o.b9(), this._globeProjMatrixInverted = o.b9(), this._cameraPosition = o.bp(), this._globeLatitudeErrorCorrectionRadians = 0, this._helper = new ln({ - calcMatrices: () => { - this._calcMatrices() - }, - getConstrained: (e, n) => this.getConstrained(e, n) - }), this._coveringTilesDetailsProvider = new Fa - } - clone() { - const e = new mo; - return e.apply(this), e - } - apply(e, n) { - this._globeLatitudeErrorCorrectionRadians = n || 0, this._helper.apply(e) - } - get projectionMatrix() { - return this._projectionMatrix - } - get modelViewProjectionMatrix() { - return this._globeViewProjMatrixNoCorrection - } - get inverseProjectionMatrix() { - return this._globeProjMatrixInverted - } - get cameraPosition() { - const e = o.bp(); - return e[0] = this._cameraPosition[0], e[1] = this._cameraPosition[1], e[2] = this._cameraPosition[2], e - } - get cameraToCenterDistance() { - return this._helper.cameraToCenterDistance - } - getProjectionData(e) { - const { - overscaledTileID: n, - applyGlobeMatrix: s - } = e, u = this._helper.getMercatorTileCoordinates(n); - return { - mainMatrix: this._globeViewProjMatrix32f, - tileMercatorCoords: u, - clippingPlane: this._cachedClippingPlane, - projectionTransition: s ? 1 : 0, - fallbackMatrix: this._globeViewProjMatrix32f - } - } - _computeClippingPlane(e) { - const n = this.pitchInRadians, - s = this.cameraToCenterDistance / e, - u = Math.sin(n) * s, - d = Math.cos(n) * s + 1, - m = 1 / Math.sqrt(u * u + d * d) * 1; - let y = -u, - w = d; - const P = Math.sqrt(y * y + w * w); - y /= P, w /= P; - const M = [0, y, w]; - o.bw(M, M, [0, 0, 0], -this.bearingInRadians), o.bx(M, M, [0, 0, 0], -1 * this.center.lat * Math.PI / 180), o.by(M, M, [0, 0, 0], this.center.lng * Math.PI / 180); - const D = 1 / o.aZ(M); - return o.aR(M, M, D), [...M, -m * D] - } - isLocationOccluded(e) { - return !this.isSurfacePointVisible(yn(e)) - } - transformLightDirection(e) { - const n = this._helper._center.lng * Math.PI / 180, - s = this._helper._center.lat * Math.PI / 180, - u = Math.cos(s), - d = [Math.sin(n) * u, Math.sin(s), Math.cos(n) * u], - m = [d[2], 0, -d[0]], - y = [0, 0, 0]; - o.aW(y, m, d), o.aV(m, m), o.aV(y, y); - const w = [0, 0, 0]; - return o.aV(w, [m[0] * e[0] + y[0] * e[1] + d[0] * e[2], m[1] * e[0] + y[1] * e[1] + d[1] * e[2], m[2] * e[0] + y[2] * e[1] + d[2] * e[2]]), w - } - getPixelScale() { - return 1 / Math.cos(this._helper._center.lat * Math.PI / 180) - } - getCircleRadiusCorrection() { - return Math.cos(this._helper._center.lat * Math.PI / 180) - } - getPitchedTextCorrection(e, n, s) { - const u = (function(y, w, P) { - const M = 1 / (1 << P.z); - return new o.a1(y / o.$ * M + P.x * M, w / o.$ * M + P.y * M) - })(e, n, s.canonical), - d = (m = u.y, [o.bo(u.x * Math.PI * 2 + Math.PI, 2 * Math.PI), 2 * Math.atan(Math.exp(Math.PI - m * Math.PI * 2)) - .5 * Math.PI]); - var m; - return this.getCircleRadiusCorrection() / Math.cos(d[1]) - } - projectTileCoordinates(e, n, s, u) { - const d = s.canonical, - m = va(e, n, d.x, d.y, d.z), - y = 1 + (u ? u(e, n) : 0) / o.bu, - w = [m[0] * y, m[1] * y, m[2] * y, 1]; - o.aw(w, w, this._globeViewProjMatrixNoCorrection); - const P = this._cachedClippingPlane, - M = P[0] * m[0] + P[1] * m[1] + P[2] * m[2] + P[3] < 0; - return { - point: new o.P(w[0] / w[3], w[1] / w[3]), - signedDistanceFromCamera: w[3], - isOccluded: M - } - } - _calcMatrices() { - if (!this._helper._width || !this._helper._height) return; - const e = Bs(this.worldSize, this.center.lat), - n = o.ba(), - s = o.ba(); - this._helper.autoCalculateNearFarZ && (this._helper._nearZ = .5, this._helper._farZ = this.cameraToCenterDistance + 2 * e), o.b4(n, this.fovInRadians, this.width / this.height, this._helper._nearZ, this._helper._farZ); - const u = this.centerOffset; - n[8] = 2 * -u.x / this._helper._width, n[9] = 2 * u.y / this._helper._height, this._projectionMatrix = o.b5(n), this._globeProjMatrixInverted = o.ba(), o.aq(this._globeProjMatrixInverted, n), o.M(n, n, [0, 0, -this.cameraToCenterDistance]), o.b6(n, n, this.rollInRadians), o.b7(n, n, -this.pitchInRadians), o.b6(n, n, this.bearingInRadians), o.M(n, n, [0, 0, -e]); - const d = o.bp(); - d[0] = e, d[1] = e, d[2] = e, o.b7(s, n, this.center.lat * Math.PI / 180), o.bz(s, s, -this.center.lng * Math.PI / 180), o.N(s, s, d), this._globeViewProjMatrixNoCorrection = s, o.b7(n, n, this.center.lat * Math.PI / 180 - this._globeLatitudeErrorCorrectionRadians), o.bz(n, n, -this.center.lng * Math.PI / 180), o.N(n, n, d), this._globeViewProjMatrix32f = new Float32Array(n), this._globeViewProjMatrixNoCorrectionInverted = o.ba(), o.aq(this._globeViewProjMatrixNoCorrectionInverted, s); - const m = o.bp(); - this._cameraPosition = o.bp(), this._cameraPosition[2] = this.cameraToCenterDistance / e, o.bw(this._cameraPosition, this._cameraPosition, m, -this.rollInRadians), o.bx(this._cameraPosition, this._cameraPosition, m, this.pitchInRadians), o.bw(this._cameraPosition, this._cameraPosition, m, -this.bearingInRadians), o.aS(this._cameraPosition, this._cameraPosition, [0, 0, 1]), o.bx(this._cameraPosition, this._cameraPosition, m, -this.center.lat * Math.PI / 180), o.by(this._cameraPosition, this._cameraPosition, m, this.center.lng * Math.PI / 180), this._cachedClippingPlane = this._computeClippingPlane(e); - const y = o.b5(this._globeViewProjMatrixNoCorrectionInverted); - o.N(y, y, [1, 1, -1]), this._cachedFrustum = Ni.fromInvProjectionMatrix(y, 1, 0, this._cachedClippingPlane, !0) - } - calculateFogMatrix(e) { - o.w("calculateFogMatrix is not supported on globe projection."); - const n = o.ba(); - return o.ag(n), n - } - getVisibleUnwrappedCoordinates(e) { - return [new o.b2(0, e)] - } - getCameraFrustum() { - return this._cachedFrustum - } - getClippingPlane() { - return this._cachedClippingPlane - } - getCoveringTilesDetailsProvider() { - return this._coveringTilesDetailsProvider - } - recalculateZoomAndCenter(e) { - e && o.w("terrain is not fully supported on vertical perspective projection."), this._helper.recalculateZoomAndCenter(0) - } - maxPitchScaleFactor() { - return 1 - } - getCameraPoint() { - return this._helper.getCameraPoint() - } - getCameraAltitude() { - return this._helper.getCameraAltitude() - } - getCameraLngLat() { - return this._helper.getCameraLngLat() - } - lngLatToCameraDepth(e, n) { - if (!this._globeViewProjMatrixNoCorrection) return 1; - const s = yn(e); - o.aR(s, s, 1 + n / o.bu); - const u = o.bv(); - return o.aw(u, [s[0], s[1], s[2], 1], this._globeViewProjMatrixNoCorrection), u[2] / u[3] - } - populateCache(e) {} - getBounds() { - const e = .5 * this.width, - n = .5 * this.height, - s = [new o.P(0, 0), new o.P(e, 0), new o.P(this.width, 0), new o.P(this.width, n), new o.P(this.width, this.height), new o.P(e, this.height), new o.P(0, this.height), new o.P(0, n)], - u = []; - for (const D of s) u.push(this.unprojectScreenPoint(D)); - let d = 0, - m = 0, - y = 0, - w = 0; - const P = this.center; - for (const D of u) { - const z = o.bA(P.lng, D.lng), - B = o.bA(P.lat, D.lat); - z < m && (m = z), z > d && (d = z), B < w && (w = B), B > y && (y = B) - } - const M = [P.lng + m, P.lat + w, P.lng + d, P.lat + y]; - return this.isSurfacePointOnScreen([0, 1, 0]) && (M[3] = 90, M[0] = -180, M[2] = 180), this.isSurfacePointOnScreen([0, -1, 0]) && (M[1] = -90, M[0] = -180, M[2] = 180), new dt(M) - } - getConstrained(e, n) { - const s = o.ah(e.lat, -o.ai, o.ai), - u = o.ah(+n, this.minZoom + Gi(0, s), this.maxZoom); - return { - center: new o.S(e.lng, s), - zoom: u - } - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - return this._helper.calculateCenterFromCameraLngLatAlt(e, n, s, u) - } - setLocationAtPoint(e, n) { - const s = yn(this.unprojectScreenPoint(n)), - u = yn(e), - d = o.bp(); - o.bB(d); - const m = o.bp(); - o.by(m, s, d, -this.center.lng * Math.PI / 180), o.bx(m, m, d, this.center.lat * Math.PI / 180); - const y = u[0] * u[0] + u[2] * u[2], - w = m[0] * m[0]; - if (y < w) return; - const P = Math.sqrt(y - w), - M = -P, - D = o.bC(u[0], u[2], m[0], P), - z = o.bC(u[0], u[2], m[0], M), - B = o.bp(); - o.by(B, u, d, -D); - const U = o.bC(B[1], B[2], m[1], m[2]), - ee = o.bp(); - o.by(ee, u, d, -z); - const J = o.bC(ee[1], ee[2], m[1], m[2]), - re = .5 * Math.PI, - se = U >= -re && U <= re, - de = J >= -re && J <= re; - let ue, ge; - if (se && de) { - const He = this.center.lng * Math.PI / 180, - je = this.center.lat * Math.PI / 180; - o.bD(D, He) + o.bD(U, je) < o.bD(z, He) + o.bD(J, je) ? (ue = D, ge = U) : (ue = z, ge = J) - } else if (se) ue = D, ge = U; - else { - if (!de) return; - ue = z, ge = J - } - const Te = ue / Math.PI * 180, - he = ge / Math.PI * 180, - De = this.center.lat; - this.setCenter(new o.S(Te, o.ah(he, -90, 90))), this.setZoom(this.zoom + Gi(De, this.center.lat)) - } - locationToScreenPoint(e, n) { - const s = yn(e); - if (n) { - const u = n.getElevationForLngLatZoom(e, this._helper._tileZoom); - o.aR(s, s, 1 + u / o.bu) - } - return this._projectSurfacePointToScreen(s) - } - _projectSurfacePointToScreen(e) { - const n = o.bv(); - return o.aw(n, [...e, 1], this._globeViewProjMatrixNoCorrection), n[0] /= n[3], n[1] /= n[3], new o.P((.5 * n[0] + .5) * this.width, (.5 * -n[1] + .5) * this.height) - } - screenPointToMercatorCoordinate(e, n) { - if (n) { - const s = n.pointCoordinate(e); - if (s) return s - } - return o.a1.fromLngLat(this.unprojectScreenPoint(e)) - } - screenPointToLocation(e, n) { - var s; - return (s = this.screenPointToMercatorCoordinate(e, n)) === null || s === void 0 ? void 0 : s.toLngLat() - } - isPointOnMapSurface(e, n) { - const s = this._cameraPosition, - u = this.getRayDirectionFromPixel(e); - return !!this.rayPlanetIntersection(s, u) - } - getRayDirectionFromPixel(e) { - const n = o.bv(); - n[0] = e.x / this.width * 2 - 1, n[1] = -1 * (e.y / this.height * 2 - 1), n[2] = 1, n[3] = 1, o.aw(n, n, this._globeViewProjMatrixNoCorrectionInverted), n[0] /= n[3], n[1] /= n[3], n[2] /= n[3]; - const s = o.bp(); - s[0] = n[0] - this._cameraPosition[0], s[1] = n[1] - this._cameraPosition[1], s[2] = n[2] - this._cameraPosition[2]; - const u = o.bp(); - return o.aV(u, s), u - } - isSurfacePointVisible(e) { - const n = this._cachedClippingPlane; - return n[0] * e[0] + n[1] * e[1] + n[2] * e[2] + n[3] >= 0 - } - isSurfacePointOnScreen(e) { - if (!this.isSurfacePointVisible(e)) return !1; - const n = o.bv(); - return o.aw(n, [...e, 1], this._globeViewProjMatrixNoCorrection), n[0] /= n[3], n[1] /= n[3], n[2] /= n[3], n[0] > -1 && n[0] < 1 && n[1] > -1 && n[1] < 1 && n[2] > -1 && n[2] < 1 - } - rayPlanetIntersection(e, n) { - const s = o.aX(e, n), - u = o.bp(), - d = o.bp(); - o.aR(d, n, s), o.aU(u, e, d); - const m = 1 - o.aX(u, u); - if (m < 0) return null; - const y = o.aX(e, e) - 1, - w = -s + (s < 0 ? 1 : -1) * Math.sqrt(m), - P = y / w, - M = w; - return { - tMin: Math.min(P, M), - tMax: Math.max(P, M) - } - } - unprojectScreenPoint(e) { - const n = this._cameraPosition, - s = this.getRayDirectionFromPixel(e), - u = this.rayPlanetIntersection(n, s); - if (u) { - const M = o.bp(); - o.aS(M, n, [s[0] * u.tMin, s[1] * u.tMin, s[2] * u.tMin]); - const D = o.bp(); - return o.aV(D, M), uo(D) - } - const d = this._cachedClippingPlane, - m = d[0] * s[0] + d[1] * s[1] + d[2] * s[2], - y = -o.b1(d, n) / m, - w = o.bp(); - if (y > 0) o.aS(w, n, [s[0] * y, s[1] * y, s[2] * y]); - else { - const M = o.bp(); - o.aS(M, n, [2 * s[0], 2 * s[1], 2 * s[2]]); - const D = o.b1(this._cachedClippingPlane, M); - o.aU(w, M, [this._cachedClippingPlane[0] * D, this._cachedClippingPlane[1] * D, this._cachedClippingPlane[2] * D]) - } - const P = (function(M) { - const D = o.bp(); - return D[0] = M[0] * -M[3], D[1] = M[1] * -M[3], D[2] = M[2] * -M[3], { - center: D, - radius: Math.sqrt(1 - M[3] * M[3]) - } - })(d); - return uo((function(M, D, z) { - const B = o.bp(); - o.aU(B, z, M); - const U = o.bp(); - return o.bq(U, M, B, D / o.a$(B)), U - })(P.center, P.radius, w)) - } - getMatrixForModel(e, n) { - const s = o.S.convert(e), - u = 1 / o.bu, - d = o.b9(); - return o.bz(d, d, s.lng / 180 * Math.PI), o.b7(d, d, -s.lat / 180 * Math.PI), o.M(d, d, [0, 0, 1 + n / o.bu]), o.b7(d, d, .5 * Math.PI), o.N(d, d, [u, u, u]), d - } - getProjectionDataForCustomLayer(e = !0) { - const n = this.getProjectionData({ - overscaledTileID: new o.Z(0, 0, 0, 0, 0), - applyGlobeMatrix: e - }); - return n.tileMercatorCoords = [0, 0, 1, 1], n - } - getFastPathSimpleProjectionMatrix(e) {} - } - class _o { - get pixelsToClipSpaceMatrix() { - return this._helper.pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._helper.clipSpaceToPixelsMatrix - } - get pixelsToGLUnits() { - return this._helper.pixelsToGLUnits - } - get centerOffset() { - return this._helper.centerOffset - } - get size() { - return this._helper.size - } - get rotationMatrix() { - return this._helper.rotationMatrix - } - get centerPoint() { - return this._helper.centerPoint - } - get pixelsPerMeter() { - return this._helper.pixelsPerMeter - } - setMinZoom(e) { - this._helper.setMinZoom(e) - } - setMaxZoom(e) { - this._helper.setMaxZoom(e) - } - setMinPitch(e) { - this._helper.setMinPitch(e) - } - setMaxPitch(e) { - this._helper.setMaxPitch(e) - } - setRenderWorldCopies(e) { - this._helper.setRenderWorldCopies(e) - } - setBearing(e) { - this._helper.setBearing(e) - } - setPitch(e) { - this._helper.setPitch(e) - } - setRoll(e) { - this._helper.setRoll(e) - } - setFov(e) { - this._helper.setFov(e) - } - setZoom(e) { - this._helper.setZoom(e) - } - setCenter(e) { - this._helper.setCenter(e) - } - setElevation(e) { - this._helper.setElevation(e) - } - setMinElevationForCurrentTile(e) { - this._helper.setMinElevationForCurrentTile(e) - } - setPadding(e) { - this._helper.setPadding(e) - } - interpolatePadding(e, n, s) { - return this._helper.interpolatePadding(e, n, s) - } - isPaddingEqual(e) { - return this._helper.isPaddingEqual(e) - } - resize(e, n, s = !0) { - this._helper.resize(e, n, s) - } - getMaxBounds() { - return this._helper.getMaxBounds() - } - setMaxBounds(e) { - this._helper.setMaxBounds(e) - } - overrideNearFarZ(e, n) { - this._helper.overrideNearFarZ(e, n) - } - clearNearFarZOverride() { - this._helper.clearNearFarZOverride() - } - getCameraQueryGeometry(e) { - return this._helper.getCameraQueryGeometry(this.getCameraPoint(), e) - } - get tileSize() { - return this._helper.tileSize - } - get tileZoom() { - return this._helper.tileZoom - } - get scale() { - return this._helper.scale - } - get worldSize() { - return this._helper.worldSize - } - get width() { - return this._helper.width - } - get height() { - return this._helper.height - } - get lngRange() { - return this._helper.lngRange - } - get latRange() { - return this._helper.latRange - } - get minZoom() { - return this._helper.minZoom - } - get maxZoom() { - return this._helper.maxZoom - } - get zoom() { - return this._helper.zoom - } - get center() { - return this._helper.center - } - get minPitch() { - return this._helper.minPitch - } - get maxPitch() { - return this._helper.maxPitch - } - get pitch() { - return this._helper.pitch - } - get pitchInRadians() { - return this._helper.pitchInRadians - } - get roll() { - return this._helper.roll - } - get rollInRadians() { - return this._helper.rollInRadians - } - get bearing() { - return this._helper.bearing - } - get bearingInRadians() { - return this._helper.bearingInRadians - } - get fov() { - return this._helper.fov - } - get fovInRadians() { - return this._helper.fovInRadians - } - get elevation() { - return this._helper.elevation - } - get minElevationForCurrentTile() { - return this._helper.minElevationForCurrentTile - } - get padding() { - return this._helper.padding - } - get unmodified() { - return this._helper.unmodified - } - get renderWorldCopies() { - return this._helper.renderWorldCopies - } - get cameraToCenterDistance() { - return this._helper.cameraToCenterDistance - } - get nearZ() { - return this._helper.nearZ - } - get farZ() { - return this._helper.farZ - } - get autoCalculateNearFarZ() { - return this._helper.autoCalculateNearFarZ - } - get isGlobeRendering() { - return this._globeness > 0 - } - setTransitionState(e, n) { - this._globeness = e, this._globeLatitudeErrorCorrectionRadians = n, this._calcMatrices(), this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(), this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame() - } - get currentTransform() { - return this.isGlobeRendering ? this._verticalPerspectiveTransform : this._mercatorTransform - } - constructor() { - this._globeLatitudeErrorCorrectionRadians = 0, this._globeness = 1, this._helper = new ln({ - calcMatrices: () => { - this._calcMatrices() - }, - getConstrained: (e, n) => this.getConstrained(e, n) - }), this._globeness = 1, this._mercatorTransform = new wi, this._verticalPerspectiveTransform = new mo - } - clone() { - const e = new _o; - return e._globeness = this._globeness, e._globeLatitudeErrorCorrectionRadians = this._globeLatitudeErrorCorrectionRadians, e.apply(this), e - } - apply(e) { - this._helper.apply(e), this._mercatorTransform.apply(this), this._verticalPerspectiveTransform.apply(this, this._globeLatitudeErrorCorrectionRadians) - } - get projectionMatrix() { - return this.currentTransform.projectionMatrix - } - get modelViewProjectionMatrix() { - return this.currentTransform.modelViewProjectionMatrix - } - get inverseProjectionMatrix() { - return this.currentTransform.inverseProjectionMatrix - } - get cameraPosition() { - return this.currentTransform.cameraPosition - } - getProjectionData(e) { - const n = this._mercatorTransform.getProjectionData(e), - s = this._verticalPerspectiveTransform.getProjectionData(e); - return { - mainMatrix: this.isGlobeRendering ? s.mainMatrix : n.mainMatrix, - clippingPlane: s.clippingPlane, - tileMercatorCoords: s.tileMercatorCoords, - projectionTransition: e.applyGlobeMatrix ? this._globeness : 0, - fallbackMatrix: n.fallbackMatrix - } - } - isLocationOccluded(e) { - return this.currentTransform.isLocationOccluded(e) - } - transformLightDirection(e) { - return this.currentTransform.transformLightDirection(e) - } - getPixelScale() { - return o.bk(this._mercatorTransform.getPixelScale(), this._verticalPerspectiveTransform.getPixelScale(), this._globeness) - } - getCircleRadiusCorrection() { - return o.bk(this._mercatorTransform.getCircleRadiusCorrection(), this._verticalPerspectiveTransform.getCircleRadiusCorrection(), this._globeness) - } - getPitchedTextCorrection(e, n, s) { - const u = this._mercatorTransform.getPitchedTextCorrection(e, n, s), - d = this._verticalPerspectiveTransform.getPitchedTextCorrection(e, n, s); - return o.bk(u, d, this._globeness) - } - projectTileCoordinates(e, n, s, u) { - return this.currentTransform.projectTileCoordinates(e, n, s, u) - } - _calcMatrices() { - this._helper._width && this._helper._height && (this._verticalPerspectiveTransform.apply(this, this._globeLatitudeErrorCorrectionRadians), this._helper._nearZ = this._verticalPerspectiveTransform.nearZ, this._helper._farZ = this._verticalPerspectiveTransform.farZ, this._mercatorTransform.apply(this, !0, this.isGlobeRendering), this._helper._nearZ = this._mercatorTransform.nearZ, this._helper._farZ = this._mercatorTransform.farZ) - } - calculateFogMatrix(e) { - return this.currentTransform.calculateFogMatrix(e) - } - getVisibleUnwrappedCoordinates(e) { - return this.currentTransform.getVisibleUnwrappedCoordinates(e) - } - getCameraFrustum() { - return this.currentTransform.getCameraFrustum() - } - getClippingPlane() { - return this.currentTransform.getClippingPlane() - } - getCoveringTilesDetailsProvider() { - return this.currentTransform.getCoveringTilesDetailsProvider() - } - recalculateZoomAndCenter(e) { - this._mercatorTransform.recalculateZoomAndCenter(e), this._verticalPerspectiveTransform.recalculateZoomAndCenter(e) - } - maxPitchScaleFactor() { - return this._mercatorTransform.maxPitchScaleFactor() - } - getCameraPoint() { - return this._helper.getCameraPoint() - } - getCameraAltitude() { - return this._helper.getCameraAltitude() - } - getCameraLngLat() { - return this._helper.getCameraLngLat() - } - lngLatToCameraDepth(e, n) { - return this.currentTransform.lngLatToCameraDepth(e, n) - } - populateCache(e) { - this._mercatorTransform.populateCache(e), this._verticalPerspectiveTransform.populateCache(e) - } - getBounds() { - return this.currentTransform.getBounds() - } - getConstrained(e, n) { - return this.currentTransform.getConstrained(e, n) - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - return this._helper.calculateCenterFromCameraLngLatAlt(e, n, s, u) - } - setLocationAtPoint(e, n) { - if (!this.isGlobeRendering) return this._mercatorTransform.setLocationAtPoint(e, n), void this.apply(this._mercatorTransform); - this._verticalPerspectiveTransform.setLocationAtPoint(e, n), this.apply(this._verticalPerspectiveTransform) - } - locationToScreenPoint(e, n) { - return this.currentTransform.locationToScreenPoint(e, n) - } - screenPointToMercatorCoordinate(e, n) { - return this.currentTransform.screenPointToMercatorCoordinate(e, n) - } - screenPointToLocation(e, n) { - return this.currentTransform.screenPointToLocation(e, n) - } - isPointOnMapSurface(e, n) { - return this.currentTransform.isPointOnMapSurface(e, n) - } - getRayDirectionFromPixel(e) { - return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e) - } - getMatrixForModel(e, n) { - return this.currentTransform.getMatrixForModel(e, n) - } - getProjectionDataForCustomLayer(e = !0) { - const n = this._mercatorTransform.getProjectionDataForCustomLayer(e); - if (!this.isGlobeRendering) return n; - const s = this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e); - return s.fallbackMatrix = n.mainMatrix, s - } - getFastPathSimpleProjectionMatrix(e) { - return this.currentTransform.getFastPathSimpleProjectionMatrix(e) - } - } - class Dn { - get useGlobeControls() { - return !0 - } - handlePanInertia(e, n) { - const s = _h(e, n); - return Math.abs(s.lng - n.center.lng) > 180 && (s.lng = n.center.lng + 179.5 * Math.sign(s.lng - n.center.lng)), { - easingCenter: s, - easingOffset: new o.P(0, 0) - } - } - handleMapControlsRollPitchBearingZoom(e, n) { - const s = e.around, - u = n.screenPointToLocation(s); - e.bearingDelta && n.setBearing(n.bearing + e.bearingDelta), e.pitchDelta && n.setPitch(n.pitch + e.pitchDelta), e.rollDelta && n.setRoll(n.roll + e.rollDelta); - const d = n.zoom; - e.zoomDelta && n.setZoom(n.zoom + e.zoomDelta); - const m = n.zoom - d; - if (m === 0) return; - const y = o.bA(n.center.lng, u.lng), - w = y / (Math.abs(y / 180) + 1), - P = o.bA(n.center.lat, u.lat), - M = n.getRayDirectionFromPixel(s), - D = n.cameraPosition, - z = -1 * o.aX(D, M), - B = o.bp(); - o.aS(B, D, [M[0] * z, M[1] * z, M[2] * z]); - const U = o.aZ(B) - 1, - ee = Math.exp(.5 * -Math.max(U - .3, 0)), - J = Bs(n.worldSize, n.center.lat) / Math.min(n.width, n.height), - re = o.bn(J, .9, .5, 1, .25), - se = (1 - o.af(-m)) * Math.min(ee, re), - de = n.center.lat, - ue = n.zoom, - ge = new o.S(n.center.lng + w * se, o.ah(n.center.lat + P * se, -o.ai, o.ai)); - n.setLocationAtPoint(u, s); - const Te = n.center, - he = o.bn(Math.abs(y), 45, 85, 0, 1), - De = o.bn(J, .75, .35, 0, 1), - He = Math.pow(Math.max(he, De), .25), - je = o.bA(Te.lng, ge.lng), - qe = o.bA(Te.lat, ge.lat); - n.setCenter(new o.S(Te.lng + je * He, Te.lat + qe * He).wrap()), n.setZoom(ue + Gi(de, n.center.lat)) - } - handleMapControlsPan(e, n, s) { - if (!e.panDelta) return; - const u = n.center.lat, - d = n.zoom; - n.setCenter(_h(e.panDelta, n).wrap()), n.setZoom(d + Gi(u, n.center.lat)) - } - cameraForBoxAndBearing(e, n, s, u, d) { - const m = Nn(e, n, s, u, d), - y = n.left / d.width * 2 - 1, - w = (d.width - n.right) / d.width * 2 - 1, - P = n.top / d.height * -2 + 1, - M = (d.height - n.bottom) / d.height * -2 + 1, - D = o.bA(s.getWest(), s.getEast()) < 0, - z = D ? s.getEast() : s.getWest(), - B = D ? s.getWest() : s.getEast(), - U = Math.max(s.getNorth(), s.getSouth()), - ee = Math.min(s.getNorth(), s.getSouth()), - J = z + .5 * o.bA(z, B), - re = U + .5 * o.bA(U, ee), - se = d.clone(); - se.setCenter(m.center), se.setBearing(m.bearing), se.setPitch(0), se.setRoll(0), se.setZoom(m.zoom); - const de = se.modelViewProjectionMatrix, - ue = [yn(s.getNorthWest()), yn(s.getNorthEast()), yn(s.getSouthWest()), yn(s.getSouthEast()), yn(new o.S(B, re)), yn(new o.S(z, re)), yn(new o.S(J, U)), yn(new o.S(J, ee))], - ge = yn(m.center); - let Te = Number.POSITIVE_INFINITY; - for (const he of ue) y < 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "x", y))), w > 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "x", w))), P > 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "y", P))), M < 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "y", M))); - if (Number.isFinite(Te) && Te !== 0) return m.zoom = se.zoom + o.ak(Te), m; - Ko() - } - handleJumpToCenterZoom(e, n) { - const s = e.center.lat, - u = e.getConstrained(n.center ? o.S.convert(n.center) : e.center, e.zoom).center; - e.setCenter(u.wrap()); - const d = n.zoom !== void 0 ? +n.zoom : e.zoom + Gi(s, u.lat); - e.zoom !== d && e.setZoom(d) - } - handleEaseTo(e, n) { - const s = e.zoom, - u = e.center, - d = e.padding, - m = { - roll: e.roll, - pitch: e.pitch, - bearing: e.bearing - }, - y = { - roll: n.roll === void 0 ? e.roll : n.roll, - pitch: n.pitch === void 0 ? e.pitch : n.pitch, - bearing: n.bearing === void 0 ? e.bearing : n.bearing - }, - w = n.zoom !== void 0, - P = !e.isPaddingEqual(n.padding); - let M = !1; - const D = n.center ? o.S.convert(n.center) : u, - z = e.getConstrained(D, s).center; - vn(e, z); - const B = e.clone(); - B.setCenter(z), B.setZoom(w ? +n.zoom : s + Gi(u.lat, D.lat)), B.setBearing(n.bearing); - const U = new o.P(o.ah(e.centerPoint.x + n.offsetAsPoint.x, 0, e.width), o.ah(e.centerPoint.y + n.offsetAsPoint.y, 0, e.height)); - B.setLocationAtPoint(z, U); - const ee = (n.offset && n.offsetAsPoint.mag()) > 0 ? B.center : z, - J = w ? +n.zoom : s + Gi(u.lat, ee.lat), - re = s + Gi(u.lat, 0), - se = J + Gi(ee.lat, 0), - de = o.bA(u.lng, ee.lng), - ue = o.bA(u.lat, ee.lat), - ge = o.af(se - re); - return M = J !== s, { - easeFunc: Te => { - if (o.be(m, y) || un({ - startEulerAngles: m, - endEulerAngles: y, - tr: e, - k: Te, - useSlerp: m.roll != y.roll - }), P && e.interpolatePadding(d, n.padding, Te), n.around) o.w("Easing around a point is not supported under globe projection."), e.setLocationAtPoint(n.around, n.aroundPoint); - else { - const he = se > re ? Math.min(2, ge) : Math.max(.5, ge), - De = Math.pow(he, 1 - Te), - He = _c(u, de, ue, Te * De); - e.setCenter(He.wrap()) - } - if (M) { - const he = o.C.number(re, se, Te) + Gi(0, e.center.lat); - e.setZoom(he) - } - }, - isZooming: M, - elevationCenter: ee - } - } - handleFlyTo(e, n) { - const s = n.zoom !== void 0, - u = e.center, - d = e.zoom, - m = e.padding, - y = !e.isPaddingEqual(n.padding), - w = e.getConstrained(o.S.convert(n.center || n.locationAtOffset), d).center, - P = s ? +n.zoom : e.zoom + Gi(e.center.lat, w.lat), - M = e.clone(); - M.setCenter(w), M.setZoom(P), M.setBearing(n.bearing); - const D = new o.P(o.ah(e.centerPoint.x + n.offsetAsPoint.x, 0, e.width), o.ah(e.centerPoint.y + n.offsetAsPoint.y, 0, e.height)); - M.setLocationAtPoint(w, D); - const z = M.center; - vn(e, z); - const B = (function(ue, ge, Te) { - const he = yn(ge), - De = yn(Te), - He = o.aX(he, De), - je = Math.acos(He), - qe = el(ue); - return je / (2 * Math.PI) * qe - })(e, u, z), - U = d + Gi(u.lat, 0), - ee = P + Gi(z.lat, 0), - J = o.af(ee - U); - let re; - if (typeof n.minZoom == "number") { - const ue = +n.minZoom + Gi(z.lat, 0), - ge = Math.min(ue, U, ee) + Gi(0, z.lat), - Te = e.getConstrained(z, ge).zoom + Gi(z.lat, 0); - re = o.af(Te - U) - } - const se = o.bA(u.lng, z.lng), - de = o.bA(u.lat, z.lat); - return { - easeFunc: (ue, ge, Te, he) => { - const De = _c(u, se, de, Te); - y && e.interpolatePadding(m, n.padding, ue); - const He = ue === 1 ? z : De; - e.setCenter(He.wrap()); - const je = U + o.ak(ge); - e.setZoom(ue === 1 ? P : je + Gi(0, He.lat)) - }, - scaleOfZoom: J, - targetCenter: z, - scaleOfMinZoom: re, - pixelPathLength: B - } - } - static solveVectorScale(e, n, s, u, d) { - const m = u === "x" ? [s[0], s[4], s[8], s[12]] : [s[1], s[5], s[9], s[13]], - y = [s[3], s[7], s[11], s[15]], - w = e[0] * m[0] + e[1] * m[1] + e[2] * m[2], - P = e[0] * y[0] + e[1] * y[1] + e[2] * y[2], - M = n[0] * m[0] + n[1] * m[1] + n[2] * m[2], - D = n[0] * y[0] + n[1] * y[1] + n[2] * y[2]; - return M + d * P === w + d * D || y[3] * (w - M) + m[3] * (D - P) + w * D == M * P ? null : (M + m[3] - d * D - d * y[3]) / (M - w - d * D + d * P) - } - static getLesserNonNegativeNonNull(e, n) { - return n !== null && n >= 0 && n < e ? n : e - } - } - class gh { - constructor(e) { - this._globe = e, this._mercatorCameraHelper = new hn, this._verticalPerspectiveCameraHelper = new Dn - } - get useGlobeControls() { - return this._globe.useGlobeRendering - } - get currentHelper() { - return this.useGlobeControls ? this._verticalPerspectiveCameraHelper : this._mercatorCameraHelper - } - handlePanInertia(e, n) { - return this.currentHelper.handlePanInertia(e, n) - } - handleMapControlsRollPitchBearingZoom(e, n) { - return this.currentHelper.handleMapControlsRollPitchBearingZoom(e, n) - } - handleMapControlsPan(e, n, s) { - this.currentHelper.handleMapControlsPan(e, n, s) - } - cameraForBoxAndBearing(e, n, s, u, d) { - return this.currentHelper.cameraForBoxAndBearing(e, n, s, u, d) - } - handleJumpToCenterZoom(e, n) { - this.currentHelper.handleJumpToCenterZoom(e, n) - } - handleEaseTo(e, n) { - return this.currentHelper.handleEaseTo(e, n) - } - handleFlyTo(e, n) { - return this.currentHelper.handleFlyTo(e, n) - } - } - const tl = (h, e) => o.y(h, e && e.filter((n => n.identifier !== "source.canvas"))), - Jd = o.bE(); - class gc extends o.E { - constructor(e, n = {}) { - super(), this._rtlPluginLoaded = () => { - for (const s in this.sourceCaches) { - const u = this.sourceCaches[s].getSource().type; - u !== "vector" && u !== "geojson" || this.sourceCaches[s].reload() - } - }, this.map = e, this.dispatcher = new xt(_t(), e._getMapId()), this.dispatcher.registerMessageHandler("GG", ((s, u) => this.getGlyphs(s, u))), this.dispatcher.registerMessageHandler("GI", ((s, u) => this.getImages(s, u))), this.imageManager = new Je, this.imageManager.setEventedParent(this), this.glyphManager = new Qe(e._requestManager, n.localIdeographFontFamily), this.lineAtlas = new ne(256, 512), this.crossTileSymbolIndex = new gi, this._spritesImagesIds = {}, this._layers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new o.bF, this._loaded = !1, this._availableImages = [], this._globalState = {}, this._resetUpdates(), this.dispatcher.broadcast("SR", o.bG()), kr().on(ur, this._rtlPluginLoaded), this.on("data", (s => { - if (s.dataType !== "source" || s.sourceDataType !== "metadata") return; - const u = this.sourceCaches[s.sourceId]; - if (!u) return; - const d = u.getSource(); - if (d && d.vectorLayerIds) - for (const m in this._layers) { - const y = this._layers[m]; - y.source === d.id && this._validateLayer(y) - } - })) - } - setGlobalStateProperty(e, n) { - var s, u, d; - this._checkLoaded(); - const m = n === null ? (d = (u = (s = this.stylesheet.state) === null || s === void 0 ? void 0 : s[e]) === null || u === void 0 ? void 0 : u.default) !== null && d !== void 0 ? d : null : n; - if (o.bH(m, this._globalState[e])) return this; - this._globalState[e] = m; - const y = this._findGlobalStateAffectedSources([e]); - for (const w in this.sourceCaches) y.has(w) && (this._reloadSource(w), this._changed = !0) - } - getGlobalState() { - return this._globalState - } - setGlobalState(e) { - this._checkLoaded(); - const n = []; - for (const u in e) !o.bH(this._globalState[u], e[u].default) && (n.push(u), this._globalState[u] = e[u].default); - const s = this._findGlobalStateAffectedSources(n); - for (const u in this.sourceCaches) s.has(u) && (this._reloadSource(u), this._changed = !0) - } - _findGlobalStateAffectedSources(e) { - if (e.length === 0) return new Set; - const n = new Set; - for (const s in this._layers) { - const u = this._layers[s], - d = u.getLayoutAffectingGlobalStateRefs(); - for (const m of e) d.has(m) && n.add(u.source) - } - return n - } - loadURL(e, n = {}, s) { - this.fire(new o.l("dataloading", { - dataType: "style" - })), n.validate = typeof n.validate != "boolean" || n.validate; - const u = this.map._requestManager.transformRequest(e, "Style"); - this._loadStyleRequest = new AbortController; - const d = this._loadStyleRequest; - o.j(u, this._loadStyleRequest).then((m => { - this._loadStyleRequest = null, this._load(m.data, n, s) - })).catch((m => { - this._loadStyleRequest = null, m && !d.signal.aborted && this.fire(new o.k(m)) - })) - } - loadJSON(e, n = {}, s) { - this.fire(new o.l("dataloading", { - dataType: "style" - })), this._frameRequest = new AbortController, ye.frameAsync(this._frameRequest).then((() => { - this._frameRequest = null, n.validate = n.validate !== !1, this._load(e, n, s) - })).catch((() => {})) - } - loadEmpty() { - this.fire(new o.l("dataloading", { - dataType: "style" - })), this._load(Jd, { - validate: !1 - }) - } - _load(e, n, s) { - var u, d, m; - const y = n.transformStyle ? n.transformStyle(s, e) : e; - if (!n.validate || !tl(this, o.z(y))) { - this._loaded = !0, this.stylesheet = y; - for (const w in y.sources) this.addSource(w, y.sources[w], { - validate: !1 - }); - y.sprite ? this._loadSprite(y.sprite) : this.imageManager.setLoaded(!0), this.glyphManager.setURL(y.glyphs), this._createLayers(), this.light = new Q(this.stylesheet.light), this._setProjectionInternal(((u = this.stylesheet.projection) === null || u === void 0 ? void 0 : u.type) || "mercator"), this.sky = new _e(this.stylesheet.sky), this.map.setTerrain((d = this.stylesheet.terrain) !== null && d !== void 0 ? d : null), this.setGlobalState((m = this.stylesheet.state) !== null && m !== void 0 ? m : null), this.fire(new o.l("data", { - dataType: "style" - })), this.fire(new o.l("style.load")) - } - } - _createLayers() { - const e = o.bI(this.stylesheet.layers); - this.dispatcher.broadcast("SL", e), this._order = e.map((n => n.id)), this._layers = {}, this._serializedLayers = null; - for (const n of e) { - const s = o.bJ(n); - s.setEventedParent(this, { - layer: { - id: n.id - } - }), this._layers[n.id] = s - } - } - _loadSprite(e, n = !1, s = void 0) { - let u; - this.imageManager.setLoaded(!1), this._spriteRequest = new AbortController, (function(d, m, y, w) { - return o._(this, void 0, void 0, (function*() { - const P = ht(d), - M = y > 1 ? "@2x" : "", - D = {}, - z = {}; - for (const { - id: B, - url: U - } - of P) { - const ee = m.transformRequest(Xe(U, M, ".json"), "SpriteJSON"); - D[B] = o.j(ee, w); - const J = m.transformRequest(Xe(U, M, ".png"), "SpriteImage"); - z[B] = Ne.getImage(J, w) - } - return yield Promise.all([...Object.values(D), ...Object.values(z)]), (function(B, U) { - return o._(this, void 0, void 0, (function*() { - const ee = {}; - for (const J in B) { - ee[J] = {}; - const re = ye.getImageCanvasContext((yield U[J]).data), - se = (yield B[J]).data; - for (const de in se) { - const { - width: ue, - height: ge, - x: Te, - y: he, - sdf: De, - pixelRatio: He, - stretchX: je, - stretchY: qe, - content: $e, - textFitWidth: Rt, - textFitHeight: Nt - } = se[de]; - ee[J][de] = { - data: null, - pixelRatio: He, - sdf: De, - stretchX: je, - stretchY: qe, - content: $e, - textFitWidth: Rt, - textFitHeight: Nt, - spriteData: { - width: ue, - height: ge, - x: Te, - y: he, - context: re - } - } - } - } - return ee - })) - })(D, z) - })) - })(e, this.map._requestManager, this.map.getPixelRatio(), this._spriteRequest).then((d => { - if (this._spriteRequest = null, d) - for (const m in d) { - this._spritesImagesIds[m] = []; - const y = this._spritesImagesIds[m] ? this._spritesImagesIds[m].filter((w => !(w in d))) : []; - for (const w of y) this.imageManager.removeImage(w), this._changedImages[w] = !0; - for (const w in d[m]) { - const P = m === "default" ? w : `${m}:${w}`; - this._spritesImagesIds[m].push(P), P in this.imageManager.images ? this.imageManager.updateImage(P, d[m][w], !1) : this.imageManager.addImage(P, d[m][w]), n && (this._changedImages[P] = !0) - } - } - })).catch((d => { - this._spriteRequest = null, u = d, this.fire(new o.k(u)) - })).finally((() => { - this.imageManager.setLoaded(!0), this._availableImages = this.imageManager.listImages(), n && (this._changed = !0), this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })), s && s(u) - })) - } - _unloadSprite() { - for (const e of Object.values(this._spritesImagesIds).flat()) this.imageManager.removeImage(e), this._changedImages[e] = !0; - this._spritesImagesIds = {}, this._availableImages = this.imageManager.listImages(), this._changed = !0, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })) - } - _validateLayer(e) { - const n = this.sourceCaches[e.source]; - if (!n) return; - const s = e.sourceLayer; - if (!s) return; - const u = n.getSource(); - (u.type === "geojson" || u.vectorLayerIds && u.vectorLayerIds.indexOf(s) === -1) && this.fire(new o.k(new Error(`Source layer "${s}" does not exist on source "${u.id}" as specified by style layer "${e.id}".`))) - } - loaded() { - if (!this._loaded || Object.keys(this._updatedSources).length) return !1; - for (const e in this.sourceCaches) - if (!this.sourceCaches[e].loaded()) return !1; - return !!this.imageManager.isLoaded() - } - _serializeByIds(e, n = !1) { - const s = this._serializedAllLayers(); - if (!e || e.length === 0) return Object.values(n ? o.bK(s) : s); - const u = []; - for (const d of e) - if (s[d]) { - const m = n ? o.bK(s[d]) : s[d]; - u.push(m) - } return u - } - _serializedAllLayers() { - let e = this._serializedLayers; - if (e) return e; - e = this._serializedLayers = {}; - const n = Object.keys(this._layers); - for (const s of n) { - const u = this._layers[s]; - u.type !== "custom" && (e[s] = u.serialize()) - } - return e - } - hasTransitions() { - var e, n, s; - if (!((e = this.light) === null || e === void 0) && e.hasTransition() || !((n = this.sky) === null || n === void 0) && n.hasTransition() || !((s = this.projection) === null || s === void 0) && s.hasTransition()) return !0; - for (const u in this.sourceCaches) - if (this.sourceCaches[u].hasTransition()) return !0; - for (const u in this._layers) - if (this._layers[u].hasTransition()) return !0; - return !1 - } - _checkLoaded() { - if (!this._loaded) throw new Error("Style is not done loading.") - } - update(e) { - if (!this._loaded) return; - const n = this._changed; - if (n) { - const u = Object.keys(this._updatedLayers), - d = Object.keys(this._removedLayers); - (u.length || d.length) && this._updateWorkerLayers(u, d); - for (const m in this._updatedSources) { - const y = this._updatedSources[m]; - if (y === "reload") this._reloadSource(m); - else { - if (y !== "clear") throw new Error(`Invalid action ${y}`); - this._clearSource(m) - } - } - this._updateTilesForChangedImages(), this._updateTilesForChangedGlyphs(); - for (const m in this._updatedPaintProps) this._layers[m].updateTransitions(e); - this.light.updateTransitions(e), this.sky.updateTransitions(e), this._resetUpdates() - } - const s = {}; - for (const u in this.sourceCaches) { - const d = this.sourceCaches[u]; - s[u] = d.used, d.used = !1 - } - for (const u of this._order) { - const d = this._layers[u]; - d.recalculate(e, this._availableImages), !d.isHidden(e.zoom) && d.source && (this.sourceCaches[d.source].used = !0) - } - for (const u in s) { - const d = this.sourceCaches[u]; - !!s[u] != !!d.used && d.fire(new o.l("data", { - sourceDataType: "visibility", - dataType: "source", - sourceId: u - })) - } - this.light.recalculate(e), this.sky.recalculate(e), this.projection.recalculate(e), this.z = e.zoom, n && this.fire(new o.l("data", { - dataType: "style" - })) - } - _updateTilesForChangedImages() { - const e = Object.keys(this._changedImages); - if (e.length) { - for (const n in this.sourceCaches) this.sourceCaches[n].reloadTilesForDependencies(["icons", "patterns"], e); - this._changedImages = {} - } - } - _updateTilesForChangedGlyphs() { - if (this._glyphsDidChange) { - for (const e in this.sourceCaches) this.sourceCaches[e].reloadTilesForDependencies(["glyphs"], [""]); - this._glyphsDidChange = !1 - } - } - _updateWorkerLayers(e, n) { - this.dispatcher.broadcast("UL", { - layers: this._serializeByIds(e, !1), - removedIds: n - }) - } - _resetUpdates() { - this._changed = !1, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {}, this._glyphsDidChange = !1 - } - setState(e, n = {}) { - var s; - this._checkLoaded(); - const u = this.serialize(); - if (e = n.transformStyle ? n.transformStyle(u, e) : e, ((s = n.validate) === null || s === void 0 || s) && tl(this, o.z(e))) return !1; - (e = o.bK(e)).layers = o.bI(e.layers); - const d = o.bL(u, e), - m = this._getOperationsToPerform(d); - if (m.unimplemented.length > 0) throw new Error(`Unimplemented: ${m.unimplemented.join(", ")}.`); - if (m.operations.length === 0) return !1; - for (const y of m.operations) y(); - return this.stylesheet = e, this._serializedLayers = null, !0 - } - _getOperationsToPerform(e) { - const n = [], - s = []; - for (const u of e) switch (u.command) { - case "setCenter": - case "setZoom": - case "setBearing": - case "setPitch": - case "setRoll": - continue; - case "addLayer": - n.push((() => this.addLayer.apply(this, u.args))); - break; - case "removeLayer": - n.push((() => this.removeLayer.apply(this, u.args))); - break; - case "setPaintProperty": - n.push((() => this.setPaintProperty.apply(this, u.args))); - break; - case "setLayoutProperty": - n.push((() => this.setLayoutProperty.apply(this, u.args))); - break; - case "setFilter": - n.push((() => this.setFilter.apply(this, u.args))); - break; - case "addSource": - n.push((() => this.addSource.apply(this, u.args))); - break; - case "removeSource": - n.push((() => this.removeSource.apply(this, u.args))); - break; - case "setLayerZoomRange": - n.push((() => this.setLayerZoomRange.apply(this, u.args))); - break; - case "setLight": - n.push((() => this.setLight.apply(this, u.args))); - break; - case "setGeoJSONSourceData": - n.push((() => this.setGeoJSONSourceData.apply(this, u.args))); - break; - case "setGlyphs": - n.push((() => this.setGlyphs.apply(this, u.args))); - break; - case "setSprite": - n.push((() => this.setSprite.apply(this, u.args))); - break; - case "setTerrain": - n.push((() => this.map.setTerrain.apply(this, u.args))); - break; - case "setSky": - n.push((() => this.setSky.apply(this, u.args))); - break; - case "setProjection": - this.setProjection.apply(this, u.args); - break; - case "setGlobalState": - n.push((() => this.setGlobalState.apply(this, u.args))); - break; - case "setTransition": - n.push((() => {})); - break; - default: - s.push(u.command) - } - return { - operations: n, - unimplemented: s - } - } - addImage(e, n) { - if (this.getImage(e)) return this.fire(new o.k(new Error(`An image named "${e}" already exists.`))); - this.imageManager.addImage(e, n), this._afterImageUpdated(e) - } - updateImage(e, n) { - this.imageManager.updateImage(e, n) - } - getImage(e) { - return this.imageManager.getImage(e) - } - removeImage(e) { - if (!this.getImage(e)) return this.fire(new o.k(new Error(`An image named "${e}" does not exist.`))); - this.imageManager.removeImage(e), this._afterImageUpdated(e) - } - _afterImageUpdated(e) { - this._availableImages = this.imageManager.listImages(), this._changedImages[e] = !0, this._changed = !0, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })) - } - listImages() { - return this._checkLoaded(), this.imageManager.listImages() - } - addSource(e, n, s = {}) { - if (this._checkLoaded(), this.sourceCaches[e] !== void 0) throw new Error(`Source "${e}" already exists.`); - if (!n.type) throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`); - if (["vector", "raster", "geojson", "video", "image"].indexOf(n.type) >= 0 && this._validate(o.z.source, `sources.${e}`, n, null, s)) return; - this.map && this.map._collectResourceTiming && (n.collectResourceTiming = !0); - const u = this.sourceCaches[e] = new Pt(e, n, this.dispatcher); - u.style = this, u.setEventedParent(this, (() => ({ - isSourceLoaded: u.loaded(), - source: u.serialize(), - sourceId: e - }))), u.onAdd(this.map), this._changed = !0 - } - removeSource(e) { - if (this._checkLoaded(), this.sourceCaches[e] === void 0) throw new Error("There is no source with this ID"); - for (const s in this._layers) - if (this._layers[s].source === e) return this.fire(new o.k(new Error(`Source "${e}" cannot be removed while layer "${s}" is using it.`))); - const n = this.sourceCaches[e]; - delete this.sourceCaches[e], delete this._updatedSources[e], n.fire(new o.l("data", { - sourceDataType: "metadata", - dataType: "source", - sourceId: e - })), n.setEventedParent(null), n.onRemove(this.map), this._changed = !0 - } - setGeoJSONSourceData(e, n) { - if (this._checkLoaded(), this.sourceCaches[e] === void 0) throw new Error(`There is no source with this ID=${e}`); - const s = this.sourceCaches[e].getSource(); - if (s.type !== "geojson") throw new Error(`geojsonSource.type is ${s.type}, which is !== 'geojson`); - s.setData(n), this._changed = !0 - } - getSource(e) { - return this.sourceCaches[e] && this.sourceCaches[e].getSource() - } - addLayer(e, n, s = {}) { - this._checkLoaded(); - const u = e.id; - if (this.getLayer(u)) return void this.fire(new o.k(new Error(`Layer "${u}" already exists on this map.`))); - let d; - if (e.type === "custom") { - if (tl(this, o.bM(e))) return; - d = o.bJ(e) - } else { - if ("source" in e && typeof e.source == "object" && (this.addSource(u, e.source), e = o.bK(e), e = o.e(e, { - source: u - })), this._validate(o.z.layer, `layers.${u}`, e, { - arrayIndex: -1 - }, s)) return; - d = o.bJ(e), this._validateLayer(d), d.setEventedParent(this, { - layer: { - id: u - } - }) - } - const m = n ? this._order.indexOf(n) : this._order.length; - if (n && m === -1) this.fire(new o.k(new Error(`Cannot add layer "${u}" before non-existing layer "${n}".`))); - else { - if (this._order.splice(m, 0, u), this._layerOrderChanged = !0, this._layers[u] = d, this._removedLayers[u] && d.source && d.type !== "custom") { - const y = this._removedLayers[u]; - delete this._removedLayers[u], y.type !== d.type ? this._updatedSources[d.source] = "clear" : (this._updatedSources[d.source] = "reload", this.sourceCaches[d.source].pause()) - } - this._updateLayer(d), d.onAdd && d.onAdd(this.map) - } - } - moveLayer(e, n) { - if (this._checkLoaded(), this._changed = !0, !this._layers[e]) return void this.fire(new o.k(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`))); - if (e === n) return; - const s = this._order.indexOf(e); - this._order.splice(s, 1); - const u = n ? this._order.indexOf(n) : this._order.length; - n && u === -1 ? this.fire(new o.k(new Error(`Cannot move layer "${e}" before non-existing layer "${n}".`))) : (this._order.splice(u, 0, e), this._layerOrderChanged = !0) - } - removeLayer(e) { - this._checkLoaded(); - const n = this._layers[e]; - if (!n) return void this.fire(new o.k(new Error(`Cannot remove non-existing layer "${e}".`))); - n.setEventedParent(null); - const s = this._order.indexOf(e); - this._order.splice(s, 1), this._layerOrderChanged = !0, this._changed = !0, this._removedLayers[e] = n, delete this._layers[e], this._serializedLayers && delete this._serializedLayers[e], delete this._updatedLayers[e], delete this._updatedPaintProps[e], n.onRemove && n.onRemove(this.map) - } - getLayer(e) { - return this._layers[e] - } - getLayersOrder() { - return [...this._order] - } - hasLayer(e) { - return e in this._layers - } - setLayerZoomRange(e, n, s) { - this._checkLoaded(); - const u = this.getLayer(e); - u ? u.minzoom === n && u.maxzoom === s || (n != null && (u.minzoom = n), s != null && (u.maxzoom = s), this._updateLayer(u)) : this.fire(new o.k(new Error(`Cannot set the zoom range of non-existing layer "${e}".`))) - } - setFilter(e, n, s = {}) { - this._checkLoaded(); - const u = this.getLayer(e); - if (u) { - if (!o.bH(u.filter, n)) return n == null ? (u.setFilter(void 0), void this._updateLayer(u)) : void(this._validate(o.z.filter, `layers.${u.id}.filter`, n, null, s) || (u.setFilter(o.bK(n)), this._updateLayer(u))) - } else this.fire(new o.k(new Error(`Cannot filter non-existing layer "${e}".`))) - } - getFilter(e) { - return o.bK(this.getLayer(e).filter) - } - setLayoutProperty(e, n, s, u = {}) { - this._checkLoaded(); - const d = this.getLayer(e); - d ? o.bH(d.getLayoutProperty(n), s) || (d.setLayoutProperty(n, s, u), this._updateLayer(d)) : this.fire(new o.k(new Error(`Cannot style non-existing layer "${e}".`))) - } - getLayoutProperty(e, n) { - const s = this.getLayer(e); - if (s) return s.getLayoutProperty(n); - this.fire(new o.k(new Error(`Cannot get style of non-existing layer "${e}".`))) - } - setPaintProperty(e, n, s, u = {}) { - this._checkLoaded(); - const d = this.getLayer(e); - d ? o.bH(d.getPaintProperty(n), s) || (d.setPaintProperty(n, s, u) && this._updateLayer(d), this._changed = !0, this._updatedPaintProps[e] = !0, this._serializedLayers = null) : this.fire(new o.k(new Error(`Cannot style non-existing layer "${e}".`))) - } - getPaintProperty(e, n) { - return this.getLayer(e).getPaintProperty(n) - } - setFeatureState(e, n) { - this._checkLoaded(); - const s = e.source, - u = e.sourceLayer, - d = this.sourceCaches[s]; - if (d === void 0) return void this.fire(new o.k(new Error(`The source '${s}' does not exist in the map's style.`))); - const m = d.getSource().type; - m === "geojson" && u ? this.fire(new o.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))) : m !== "vector" || u ? (e.id === void 0 && this.fire(new o.k(new Error("The feature id parameter must be provided."))), d.setFeatureState(u, e.id, n)) : this.fire(new o.k(new Error("The sourceLayer parameter must be provided for vector source types."))) - } - removeFeatureState(e, n) { - this._checkLoaded(); - const s = e.source, - u = this.sourceCaches[s]; - if (u === void 0) return void this.fire(new o.k(new Error(`The source '${s}' does not exist in the map's style.`))); - const d = u.getSource().type, - m = d === "vector" ? e.sourceLayer : void 0; - d !== "vector" || m ? n && typeof e.id != "string" && typeof e.id != "number" ? this.fire(new o.k(new Error("A feature id is required to remove its specific state property."))) : u.removeFeatureState(m, e.id, n) : this.fire(new o.k(new Error("The sourceLayer parameter must be provided for vector source types."))) - } - getFeatureState(e) { - this._checkLoaded(); - const n = e.source, - s = e.sourceLayer, - u = this.sourceCaches[n]; - if (u !== void 0) return u.getSource().type !== "vector" || s ? (e.id === void 0 && this.fire(new o.k(new Error("The feature id parameter must be provided."))), u.getFeatureState(s, e.id)) : void this.fire(new o.k(new Error("The sourceLayer parameter must be provided for vector source types."))); - this.fire(new o.k(new Error(`The source '${n}' does not exist in the map's style.`))) - } - getTransition() { - return o.e({ - duration: 300, - delay: 0 - }, this.stylesheet && this.stylesheet.transition) - } - serialize() { - if (!this._loaded) return; - const e = o.bN(this.sourceCaches, (d => d.serialize())), - n = this._serializeByIds(this._order, !0), - s = this.map.getTerrain() || void 0, - u = this.stylesheet; - return o.bO({ - version: u.version, - name: u.name, - metadata: u.metadata, - light: u.light, - sky: u.sky, - center: u.center, - zoom: u.zoom, - bearing: u.bearing, - pitch: u.pitch, - sprite: u.sprite, - glyphs: u.glyphs, - transition: u.transition, - projection: u.projection, - sources: e, - layers: n, - terrain: s - }, (d => d !== void 0)) - } - _updateLayer(e) { - this._updatedLayers[e.id] = !0, e.source && !this._updatedSources[e.source] && this.sourceCaches[e.source].getSource().type !== "raster" && (this._updatedSources[e.source] = "reload", this.sourceCaches[e.source].pause()), this._serializedLayers = null, this._changed = !0 - } - _flattenAndSortRenderedFeatures(e) { - const n = m => this._layers[m].type === "fill-extrusion", - s = {}, - u = []; - for (let m = this._order.length - 1; m >= 0; m--) { - const y = this._order[m]; - if (n(y)) { - s[y] = m; - for (const w of e) { - const P = w[y]; - if (P) - for (const M of P) u.push(M) - } - } - } - u.sort(((m, y) => y.intersectionZ - m.intersectionZ)); - const d = []; - for (let m = this._order.length - 1; m >= 0; m--) { - const y = this._order[m]; - if (n(y)) - for (let w = u.length - 1; w >= 0; w--) { - const P = u[w].feature; - if (s[P.layer.id] < m) break; - d.push(P), u.pop() - } else - for (const w of e) { - const P = w[y]; - if (P) - for (const M of P) d.push(M.feature) - } - } - return d - } - queryRenderedFeatures(e, n, s) { - n && n.filter && this._validate(o.z.filter, "queryRenderedFeatures.filter", n.filter, null, n); - const u = {}; - if (n && n.layers) { - if (!(Array.isArray(n.layers) || n.layers instanceof Set)) return this.fire(new o.k(new Error("parameters.layers must be an Array or a Set of strings"))), []; - for (const P of n.layers) { - const M = this._layers[P]; - if (!M) return this.fire(new o.k(new Error(`The layer '${P}' does not exist in the map's style and cannot be queried for features.`))), []; - u[M.source] = !0 - } - } - const d = []; - n.availableImages = this._availableImages; - const m = this._serializedAllLayers(), - y = n.layers instanceof Set ? n.layers : Array.isArray(n.layers) ? new Set(n.layers) : null, - w = Object.assign(Object.assign({}, n), { - layers: y - }); - for (const P in this.sourceCaches) n.layers && !u[P] || d.push(It(this.sourceCaches[P], this._layers, m, e, w, s, this.map.terrain ? (M, D, z) => this.map.terrain.getElevation(M, D, z) : void 0)); - return this.placement && d.push((function(P, M, D, z, B, U, ee) { - const J = {}, - re = U.queryRenderedSymbols(z), - se = []; - for (const de of Object.keys(re).map(Number)) se.push(ee[de]); - se.sort(ut); - for (const de of se) { - const ue = de.featureIndex.lookupSymbolFeatures(re[de.bucketInstanceId], M, de.bucketIndex, de.sourceLayerIndex, B.filter, B.layers, B.availableImages, P); - for (const ge in ue) { - const Te = J[ge] = J[ge] || [], - he = ue[ge]; - he.sort(((De, He) => { - const je = de.featureSortOrder; - if (je) { - const qe = je.indexOf(De.featureIndex); - return je.indexOf(He.featureIndex) - qe - } - return He.featureIndex - De.featureIndex - })); - for (const De of he) Te.push(De) - } - } - return (function(de, ue, ge) { - for (const Te in de) - for (const he of de[Te]) bt(he, ge[ue[Te].source]); - return de - })(J, P, D) - })(this._layers, m, this.sourceCaches, e, w, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(d) - } - querySourceFeatures(e, n) { - n && n.filter && this._validate(o.z.filter, "querySourceFeatures.filter", n.filter, null, n); - const s = this.sourceCaches[e]; - return s ? (function(u, d) { - const m = u.getRenderableIds().map((P => u.getTileByID(P))), - y = [], - w = {}; - for (let P = 0; P < m.length; P++) { - const M = m[P], - D = M.tileID.canonical.key; - w[D] || (w[D] = !0, M.querySourceFeatures(y, d)) - } - return y - })(s, n) : [] - } - getLight() { - return this.light.getLight() - } - setLight(e, n = {}) { - this._checkLoaded(); - const s = this.light.getLight(); - let u = !1; - for (const m in e) - if (!o.bH(e[m], s[m])) { - u = !0; - break - } if (!u) return; - const d = { - now: ye.now(), - transition: o.e({ - duration: 300, - delay: 0 - }, this.stylesheet.transition) - }; - this.light.setLight(e, n), this.light.updateTransitions(d) - } - getProjection() { - var e; - return (e = this.stylesheet) === null || e === void 0 ? void 0 : e.projection - } - setProjection(e) { - if (this._checkLoaded(), this.projection) { - if (this.projection.name === e.type) return; - this.projection.destroy(), delete this.projection - } - this.stylesheet.projection = e, this._setProjectionInternal(e.type) - } - getSky() { - var e; - return (e = this.stylesheet) === null || e === void 0 ? void 0 : e.sky - } - setSky(e, n = {}) { - this._checkLoaded(); - const s = this.getSky(); - let u = !1; - if (!e && !s) return; - if (e && !s) u = !0; - else if (!e && s) u = !0; - else - for (const m in e) - if (!o.bH(e[m], s[m])) { - u = !0; - break - } if (!u) return; - const d = { - now: ye.now(), - transition: o.e({ - duration: 300, - delay: 0 - }, this.stylesheet.transition) - }; - this.stylesheet.sky = e, this.sky.setSky(e, n), this.sky.updateTransitions(d) - } - _setProjectionInternal(e) { - const n = (function(s) { - if (Array.isArray(s)) { - const u = new Qo({ - type: s - }); - return { - projection: u, - transform: new _o, - cameraHelper: new gh(u) - } - } - switch (s) { - case "mercator": - return { - projection: new yr, transform: new wi, cameraHelper: new hn - }; - case "globe": { - const u = new Qo({ - type: ["interpolate", ["linear"], - ["zoom"], 11, "vertical-perspective", 12, "mercator" - ] - }); - return { - projection: u, - transform: new _o, - cameraHelper: new gh(u) - } - } - case "vertical-perspective": - return { - projection: new co, transform: new mo, cameraHelper: new Dn - }; - default: - return o.w(`Unknown projection name: ${s}. Falling back to mercator projection.`), { - projection: new yr, - transform: new wi, - cameraHelper: new hn - } - } - })(e); - this.projection = n.projection, this.map.migrateProjection(n.transform, n.cameraHelper); - for (const s in this.sourceCaches) this.sourceCaches[s].reload() - } - _validate(e, n, s, u, d = {}) { - return (!d || d.validate !== !1) && tl(this, e.call(o.z, o.e({ - key: n, - style: this.serialize(), - value: s, - styleSpec: o.v - }, u))) - } - _remove(e = !0) { - this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._loadStyleRequest && (this._loadStyleRequest.abort(), this._loadStyleRequest = null), this._spriteRequest && (this._spriteRequest.abort(), this._spriteRequest = null), kr().off(ur, this._rtlPluginLoaded); - for (const n in this._layers) this._layers[n].setEventedParent(null); - for (const n in this.sourceCaches) { - const s = this.sourceCaches[n]; - s.setEventedParent(null), s.onRemove(this.map) - } - this.imageManager.setEventedParent(null), this.setEventedParent(null), e && this.dispatcher.broadcast("RM", void 0), this.dispatcher.remove(e) - } - _clearSource(e) { - this.sourceCaches[e].clearTiles() - } - _reloadSource(e) { - this.sourceCaches[e].resume(), this.sourceCaches[e].reload() - } - _updateSources(e) { - for (const n in this.sourceCaches) this.sourceCaches[n].update(e, this.map.terrain) - } - _generateCollisionBoxes() { - for (const e in this.sourceCaches) this._reloadSource(e) - } - _updatePlacement(e, n, s, u, d = !1) { - let m = !1, - y = !1; - const w = {}; - for (const P of this._order) { - const M = this._layers[P]; - if (M.type !== "symbol") continue; - if (!w[M.source]) { - const z = this.sourceCaches[M.source]; - w[M.source] = z.getRenderableIds(!0).map((B => z.getTileByID(B))).sort(((B, U) => U.tileID.overscaledZ - B.tileID.overscaledZ || (B.tileID.isLessThan(U.tileID) ? -1 : 1))) - } - const D = this.crossTileSymbolIndex.addLayer(M, w[M.source], e.center.lng); - m = m || D - } - if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((d = d || this._layerOrderChanged || s === 0) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(ye.now(), e.zoom)) && (this.pauseablePlacement = new gn(e, this.map.terrain, this._order, d, n, s, u, this.placement), this._layerOrderChanged = !1), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, w), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(ye.now()), y = !0), m && this.pauseablePlacement.placement.setStale()), y || m) - for (const P of this._order) { - const M = this._layers[P]; - M.type === "symbol" && this.placement.updateLayerOpacities(M, w[M.source]) - } - return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(ye.now()) - } - _releaseSymbolFadeTiles() { - for (const e in this.sourceCaches) this.sourceCaches[e].releaseSymbolFadeTiles() - } - getImages(e, n) { - return o._(this, void 0, void 0, (function*() { - const s = yield this.imageManager.getImages(n.icons); - this._updateTilesForChangedImages(); - const u = this.sourceCaches[n.source]; - return u && u.setDependencies(n.tileID.key, n.type, n.icons), s - })) - } - getGlyphs(e, n) { - return o._(this, void 0, void 0, (function*() { - const s = yield this.glyphManager.getGlyphs(n.stacks), u = this.sourceCaches[n.source]; - return u && u.setDependencies(n.tileID.key, n.type, [""]), s - })) - } - getGlyphsUrl() { - return this.stylesheet.glyphs || null - } - setGlyphs(e, n = {}) { - this._checkLoaded(), e && this._validate(o.z.glyphs, "glyphs", e, null, n) || (this._glyphsDidChange = !0, this.stylesheet.glyphs = e, this.glyphManager.entries = {}, this.glyphManager.setURL(e)) - } - addSprite(e, n, s = {}, u) { - this._checkLoaded(); - const d = [{ - id: e, - url: n - }], - m = [...ht(this.stylesheet.sprite), ...d]; - this._validate(o.z.sprite, "sprite", m, null, s) || (this.stylesheet.sprite = m, this._loadSprite(d, !0, u)) - } - removeSprite(e) { - this._checkLoaded(); - const n = ht(this.stylesheet.sprite); - if (n.find((s => s.id === e))) { - if (this._spritesImagesIds[e]) - for (const s of this._spritesImagesIds[e]) this.imageManager.removeImage(s), this._changedImages[s] = !0; - n.splice(n.findIndex((s => s.id === e)), 1), this.stylesheet.sprite = n.length > 0 ? n : void 0, delete this._spritesImagesIds[e], this._availableImages = this.imageManager.listImages(), this._changed = !0, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })) - } else this.fire(new o.k(new Error(`Sprite "${e}" doesn't exists on this map.`))) - } - getSprite() { - return ht(this.stylesheet.sprite) - } - setSprite(e, n = {}, s) { - this._checkLoaded(), e && this._validate(o.z.sprite, "sprite", e, null, n) || (this.stylesheet.sprite = e, e ? this._loadSprite(e, !0, s) : (this._unloadSprite(), s && s(null))) - } - } - var Qd = o.aJ([{ - name: "a_pos", - type: "Int16", - components: 2 - }, { - name: "a_texture_pos", - type: "Int16", - components: 2 - }]); - class ep { - constructor() { - this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null - } - bind(e, n, s, u, d, m, y, w, P) { - this.context = e; - let M = this.boundPaintVertexBuffers.length !== u.length; - for (let D = 0; !M && D < u.length; D++) this.boundPaintVertexBuffers[D] !== u[D] && (M = !0); - !this.vao || this.boundProgram !== n || this.boundLayoutVertexBuffer !== s || M || this.boundIndexBuffer !== d || this.boundVertexOffset !== m || this.boundDynamicVertexBuffer !== y || this.boundDynamicVertexBuffer2 !== w || this.boundDynamicVertexBuffer3 !== P ? this.freshBind(n, s, u, d, m, y, w, P) : (e.bindVertexArray.set(this.vao), y && y.bind(), d && d.dynamicDraw && d.bind(), w && w.bind(), P && P.bind()) - } - freshBind(e, n, s, u, d, m, y, w) { - const P = e.numAttributes, - M = this.context, - D = M.gl; - this.vao && this.destroy(), this.vao = M.createVertexArray(), M.bindVertexArray.set(this.vao), this.boundProgram = e, this.boundLayoutVertexBuffer = n, this.boundPaintVertexBuffers = s, this.boundIndexBuffer = u, this.boundVertexOffset = d, this.boundDynamicVertexBuffer = m, this.boundDynamicVertexBuffer2 = y, this.boundDynamicVertexBuffer3 = w, n.enableAttributes(D, e); - for (const z of s) z.enableAttributes(D, e); - m && m.enableAttributes(D, e), y && y.enableAttributes(D, e), w && w.enableAttributes(D, e), n.bind(), n.setVertexAttribPointers(D, e, d); - for (const z of s) z.bind(), z.setVertexAttribPointers(D, e, d); - m && (m.bind(), m.setVertexAttribPointers(D, e, d)), u && u.bind(), y && (y.bind(), y.setVertexAttribPointers(D, e, d)), w && (w.bind(), w.setVertexAttribPointers(D, e, d)), M.currentNumAttributes = P - } - destroy() { - this.vao && (this.context.deleteVertexArray(this.vao), this.vao = null) - } - } - const rl = (h, e, n, s, u) => ({ - u_texture: 0, - u_ele_delta: h, - u_fog_matrix: e, - u_fog_color: n ? n.properties.get("fog-color") : o.bf.white, - u_fog_ground_blend: n ? n.properties.get("fog-ground-blend") : 1, - u_fog_ground_blend_opacity: u ? 0 : n ? n.calculateFogBlendOpacity(s) : 0, - u_horizon_color: n ? n.properties.get("horizon-color") : o.bf.white, - u_horizon_fog_blend: n ? n.properties.get("horizon-fog-blend") : 1, - u_is_globe_mode: u ? 1 : 0 - }), - vc = { - mainMatrix: "u_projection_matrix", - tileMercatorCoords: "u_projection_tile_mercator_coords", - clippingPlane: "u_projection_clipping_plane", - projectionTransition: "u_projection_transition", - fallbackMatrix: "u_projection_fallback_matrix" - }; - - function ms(h) { - const e = []; - for (let n = 0; n < h.length; n++) { - if (h[n] === null) continue; - const s = h[n].split(" "); - e.push(s.pop()) - } - return e - } - class yc { - constructor(e, n, s, u, d, m, y, w, P = []) { - const M = e.gl; - this.program = M.createProgram(); - const D = ms(n.staticAttributes), - z = s ? s.getBinderAttributes() : [], - B = D.concat(z), - U = pi.prelude.staticUniforms ? ms(pi.prelude.staticUniforms) : [], - ee = y.staticUniforms ? ms(y.staticUniforms) : [], - J = n.staticUniforms ? ms(n.staticUniforms) : [], - re = s ? s.getBinderUniforms() : [], - se = U.concat(ee).concat(J).concat(re), - de = []; - for (const je of se) de.indexOf(je) < 0 && de.push(je); - const ue = s ? s.defines() : []; - Ra(M) && ue.unshift("#version 300 es"), d && ue.push("#define OVERDRAW_INSPECTOR;"), m && ue.push("#define TERRAIN3D;"), w && ue.push(w), P && ue.push(...P); - let ge = ue.concat(pi.prelude.fragmentSource, y.fragmentSource, n.fragmentSource).join(` -`), - Te = ue.concat(pi.prelude.vertexSource, y.vertexSource, n.vertexSource).join(` -`); - Ra(M) || (ge = (function(je) { - return je.replace(/\bin\s/g, "varying ").replace("out highp vec4 fragColor;", "").replace(/fragColor/g, "gl_FragColor").replace(/texture\(/g, "texture2D(") - })(ge), Te = (function(je) { - return je.replace(/\bin\s/g, "attribute ").replace(/\bout\s/g, "varying ").replace(/texture\(/g, "texture2D(") - })(Te)); - const he = M.createShader(M.FRAGMENT_SHADER); - if (M.isContextLost()) return void(this.failedToCreate = !0); - if (M.shaderSource(he, ge), M.compileShader(he), !M.getShaderParameter(he, M.COMPILE_STATUS)) throw new Error(`Could not compile fragment shader: ${M.getShaderInfoLog(he)}`); - M.attachShader(this.program, he); - const De = M.createShader(M.VERTEX_SHADER); - if (M.isContextLost()) return void(this.failedToCreate = !0); - if (M.shaderSource(De, Te), M.compileShader(De), !M.getShaderParameter(De, M.COMPILE_STATUS)) throw new Error(`Could not compile vertex shader: ${M.getShaderInfoLog(De)}`); - M.attachShader(this.program, De), this.attributes = {}; - const He = {}; - this.numAttributes = B.length; - for (let je = 0; je < this.numAttributes; je++) B[je] && (M.bindAttribLocation(this.program, je, B[je]), this.attributes[B[je]] = je); - if (M.linkProgram(this.program), !M.getProgramParameter(this.program, M.LINK_STATUS)) throw new Error(`Program failed to link: ${M.getProgramInfoLog(this.program)}`); - M.deleteShader(De), M.deleteShader(he); - for (let je = 0; je < de.length; je++) { - const qe = de[je]; - if (qe && !He[qe]) { - const $e = M.getUniformLocation(this.program, qe); - $e && (He[qe] = $e) - } - } - this.fixedUniforms = u(e, He), this.terrainUniforms = ((je, qe) => ({ - u_depth: new o.bP(je, qe.u_depth), - u_terrain: new o.bP(je, qe.u_terrain), - u_terrain_dim: new o.bg(je, qe.u_terrain_dim), - u_terrain_matrix: new o.bR(je, qe.u_terrain_matrix), - u_terrain_unpack: new o.bS(je, qe.u_terrain_unpack), - u_terrain_exaggeration: new o.bg(je, qe.u_terrain_exaggeration) - }))(e, He), this.projectionUniforms = ((je, qe) => ({ - u_projection_matrix: new o.bR(je, qe.u_projection_matrix), - u_projection_tile_mercator_coords: new o.bS(je, qe.u_projection_tile_mercator_coords), - u_projection_clipping_plane: new o.bS(je, qe.u_projection_clipping_plane), - u_projection_transition: new o.bg(je, qe.u_projection_transition), - u_projection_fallback_matrix: new o.bR(je, qe.u_projection_fallback_matrix) - }))(e, He), this.binderUniforms = s ? s.getUniforms(e, He) : [] - } - draw(e, n, s, u, d, m, y, w, P, M, D, z, B, U, ee, J, re, se, de) { - const ue = e.gl; - if (this.failedToCreate) return; - if (e.program.set(this.program), e.setDepthMode(s), e.setStencilMode(u), e.setColorMode(d), e.setCullFace(m), w) { - e.activeTexture.set(ue.TEXTURE2), ue.bindTexture(ue.TEXTURE_2D, w.depthTexture), e.activeTexture.set(ue.TEXTURE3), ue.bindTexture(ue.TEXTURE_2D, w.texture); - for (const Te in this.terrainUniforms) this.terrainUniforms[Te].set(w[Te]) - } - if (P) - for (const Te in P) this.projectionUniforms[vc[Te]].set(P[Te]); - if (y) - for (const Te in this.fixedUniforms) this.fixedUniforms[Te].set(y[Te]); - J && J.setUniforms(e, this.binderUniforms, U, { - zoom: ee - }); - let ge = 0; - switch (n) { - case ue.LINES: - ge = 2; - break; - case ue.TRIANGLES: - ge = 3; - break; - case ue.LINE_STRIP: - ge = 1 - } - for (const Te of B.get()) { - const he = Te.vaos || (Te.vaos = {}); - (he[M] || (he[M] = new ep)).bind(e, this, D, J ? J.getPaintVertexBuffers() : [], z, Te.vertexOffset, re, se, de), ue.drawElements(n, Te.primitiveLength * ge, ue.UNSIGNED_SHORT, Te.primitiveOffset * ge * 2) - } - } - } - - function il(h, e, n) { - const s = 1 / o.aC(n, 1, e.transform.tileZoom), - u = Math.pow(2, n.tileID.overscaledZ), - d = n.tileSize * Math.pow(2, e.transform.tileZoom) / u, - m = d * (n.tileID.canonical.x + n.tileID.wrap * u), - y = d * n.tileID.canonical.y; - return { - u_image: 0, - u_texsize: n.imageAtlasTexture.size, - u_scale: [s, h.fromScale, h.toScale], - u_fade: h.t, - u_pixel_coord_upper: [m >> 16, y >> 16], - u_pixel_coord_lower: [65535 & m, 65535 & y] - } - } - const ya = (h, e, n, s) => { - const u = h.style.light, - d = u.properties.get("position"), - m = [d.x, d.y, d.z], - y = o.bV(); - u.properties.get("anchor") === "viewport" && o.bW(y, h.transform.bearingInRadians), o.bX(m, m, y); - const w = h.transform.transformLightDirection(m), - P = u.properties.get("color"); - return { - u_lightpos: m, - u_lightpos_globe: w, - u_lightintensity: u.properties.get("intensity"), - u_lightcolor: [P.r, P.g, P.b], - u_vertical_gradient: +e, - u_opacity: n, - u_fill_translate: s - } - }, - tp = (h, e, n, s, u, d, m) => o.e(ya(h, e, n, s), il(d, h, m), { - u_height_factor: -Math.pow(2, u.overscaledZ) / m.tileSize / 8 - }), - nl = (h, e, n, s) => o.e(il(e, h, n), { - u_fill_translate: s - }), - go = (h, e) => ({ - u_world: h, - u_fill_translate: e - }), - vo = (h, e, n, s, u) => o.e(nl(h, e, n, u), { - u_world: s - }), - rp = (h, e, n, s, u) => { - const d = h.transform; - let m, y, w = 0; - if (n.paint.get("circle-pitch-alignment") === "map") { - const P = o.aC(e, 1, d.zoom); - m = !0, y = [P, P], w = P / (o.$ * Math.pow(2, e.tileID.overscaledZ)) * 2 * Math.PI * u - } else m = !1, y = d.pixelsToGLUnits; - return { - u_camera_to_center_distance: d.cameraToCenterDistance, - u_scale_with_map: +(n.paint.get("circle-pitch-scale") === "map"), - u_pitch_with_map: +m, - u_device_pixel_ratio: h.pixelRatio, - u_extrude_scale: y, - u_globe_extrude_scale: w, - u_translate: s - } - }, - al = h => ({ - u_pixel_extrude_scale: [1 / h.width, 1 / h.height] - }), - ip = h => ({ - u_viewport_size: [h.width, h.height] - }), - _s = (h, e = 1) => ({ - u_color: h, - u_overlay: 0, - u_overlay_scale: e - }), - vh = (h, e, n, s) => { - const u = o.aC(h, 1, e) / (o.$ * Math.pow(2, h.tileID.overscaledZ)) * 2 * Math.PI * s; - return { - u_extrude_scale: o.aC(h, 1, e), - u_intensity: n, - u_globe_extrude_scale: u - } - }, - xc = (h, e, n, s) => { - const u = o.L(); - o.bY(u, 0, h.width, h.height, 0, 0, 1); - const d = h.context.gl; - return { - u_matrix: u, - u_world: [d.drawingBufferWidth, d.drawingBufferHeight], - u_image: n, - u_color_ramp: s, - u_opacity: e.paint.get("heatmap-opacity") - } - }, - np = (h, e, n) => { - const s = n.paint.get("hillshade-accent-color"); - let u; - switch (n.paint.get("hillshade-method")) { - case "basic": - u = 4; - break; - case "combined": - u = 1; - break; - case "igor": - u = 2; - break; - case "multidirectional": - u = 3; - break; - default: - u = 0 - } - const d = n.getIlluminationProperties(); - for (let m = 0; m < d.directionRadians.length; m++) n.paint.get("hillshade-illumination-anchor") === "viewport" && (d.directionRadians[m] += h.transform.bearingInRadians); - return { - u_image: 0, - u_latrange: bc(0, e.tileID), - u_exaggeration: n.paint.get("hillshade-exaggeration"), - u_altitudes: d.altitudeRadians, - u_azimuths: d.directionRadians, - u_accent: s, - u_method: u, - u_highlights: d.highlightColor, - u_shadows: d.shadowColor - } - }, - yh = (h, e) => { - const n = e.stride, - s = o.L(); - return o.bY(s, 0, o.$, -o.$, 0, 0, 1), o.M(s, s, [0, -o.$, 0]), { - u_matrix: s, - u_image: 1, - u_dimension: [n, n], - u_zoom: h.overscaledZ, - u_unpack: e.getUnpackVector() - } - }; - - function bc(h, e) { - const n = Math.pow(2, e.canonical.z), - s = e.canonical.y; - return [new o.a1(0, s / n).toLngLat().lat, new o.a1(0, (s + 1) / n).toLngLat().lat] - } - const xh = (h, e, n = 0) => ({ - u_image: 0, - u_unpack: e.getUnpackVector(), - u_dimension: [e.stride, e.stride], - u_elevation_stops: 1, - u_color_stops: 4, - u_color_ramp_size: n, - u_opacity: h.paint.get("color-relief-opacity") - }), - sl = (h, e, n, s) => { - const u = h.transform; - return { - u_translation: Tc(h, e, n), - u_ratio: s / o.aC(e, 1, u.zoom), - u_device_pixel_ratio: h.pixelRatio, - u_units_to_pixels: [1 / u.pixelsToGLUnits[0], 1 / u.pixelsToGLUnits[1]] - } - }, - bh = (h, e, n, s, u) => o.e(sl(h, e, n, s), { - u_image: 0, - u_image_height: u - }), - wh = (h, e, n, s, u) => { - const d = h.transform, - m = wc(e, d); - return { - u_translation: Tc(h, e, n), - u_texsize: e.imageAtlasTexture.size, - u_ratio: s / o.aC(e, 1, d.zoom), - u_device_pixel_ratio: h.pixelRatio, - u_image: 0, - u_scale: [m, u.fromScale, u.toScale], - u_fade: u.t, - u_units_to_pixels: [1 / d.pixelsToGLUnits[0], 1 / d.pixelsToGLUnits[1]] - } - }, - gs = (h, e, n, s, u, d) => { - const m = h.lineAtlas, - y = wc(e, h.transform), - w = n.layout.get("line-cap") === "round", - P = m.getDash(u.from, w), - M = m.getDash(u.to, w), - D = P.width * d.fromScale, - z = M.width * d.toScale; - return o.e(sl(h, e, n, s), { - u_patternscale_a: [y / D, -P.height / 2], - u_patternscale_b: [y / z, -M.height / 2], - u_sdfgamma: m.width / (256 * Math.min(D, z) * h.pixelRatio) / 2, - u_image: 0, - u_tex_y_a: P.y, - u_tex_y_b: M.y, - u_mix: d.t - }) - }; - - function wc(h, e) { - return 1 / o.aC(h, 1, e.tileZoom) - } - - function Tc(h, e, n) { - return o.aD(h.transform, e, n.paint.get("line-translate"), n.paint.get("line-translate-anchor")) - } - const yo = (h, e, n, s, u) => { - return { - u_tl_parent: h, - u_scale_parent: e, - u_buffer_scale: 1, - u_fade_t: n.mix, - u_opacity: n.opacity * s.paint.get("raster-opacity"), - u_image0: 0, - u_image1: 1, - u_brightness_low: s.paint.get("raster-brightness-min"), - u_brightness_high: s.paint.get("raster-brightness-max"), - u_saturation_factor: (m = s.paint.get("raster-saturation"), m > 0 ? 1 - 1 / (1.001 - m) : -m), - u_contrast_factor: (d = s.paint.get("raster-contrast"), d > 0 ? 1 / (1 - d) : 1 + d), - u_spin_weights: ap(s.paint.get("raster-hue-rotate")), - u_coords_top: [u[0].x, u[0].y, u[1].x, u[1].y], - u_coords_bottom: [u[3].x, u[3].y, u[2].x, u[2].y] - }; - var d, m - }; - - function ap(h) { - h *= Math.PI / 180; - const e = Math.sin(h), - n = Math.cos(h); - return [(2 * n + 1) / 3, (-Math.sqrt(3) * e - n + 1) / 3, (Math.sqrt(3) * e - n + 1) / 3] - } - const xo = (h, e, n, s, u, d, m, y, w, P, M, D, z) => { - const B = m.transform; - return { - u_is_size_zoom_constant: +(h === "constant" || h === "source"), - u_is_size_feature_constant: +(h === "constant" || h === "camera"), - u_size_t: e ? e.uSizeT : 0, - u_size: e ? e.uSize : 0, - u_camera_to_center_distance: B.cameraToCenterDistance, - u_pitch: B.pitch / 360 * 2 * Math.PI, - u_rotate_symbol: +n, - u_aspect_ratio: B.width / B.height, - u_fade_change: m.options.fadeDuration ? m.symbolFadeChange : 1, - u_label_plane_matrix: y, - u_coord_matrix: w, - u_is_text: +M, - u_pitch_with_map: +s, - u_is_along_line: u, - u_is_variable_anchor: d, - u_texsize: D, - u_texture: 0, - u_translation: P, - u_pitched_scale: z - } - }, - Th = (h, e, n, s, u, d, m, y, w, P, M, D, z, B) => { - const U = m.transform; - return o.e(xo(h, e, n, s, u, d, m, y, w, P, M, D, B), { - u_gamma_scale: s ? Math.cos(U.pitch * Math.PI / 180) * U.cameraToCenterDistance : 1, - u_device_pixel_ratio: m.pixelRatio, - u_is_halo: 1 - }) - }, - sp = (h, e, n, s, u, d, m, y, w, P, M, D, z) => o.e(Th(h, e, n, s, u, d, m, y, w, P, !0, M, 0, z), { - u_texsize_icon: D, - u_texture_icon: 1 - }), - Ch = (h, e) => ({ - u_opacity: h, - u_color: e - }), - Sh = (h, e, n, s, u) => o.e((function(d, m, y, w) { - const P = y.imageManager.getPattern(d.from.toString()), - M = y.imageManager.getPattern(d.to.toString()), - { - width: D, - height: z - } = y.imageManager.getPixelSize(), - B = Math.pow(2, w.tileID.overscaledZ), - U = w.tileSize * Math.pow(2, y.transform.tileZoom) / B, - ee = U * (w.tileID.canonical.x + w.tileID.wrap * B), - J = U * w.tileID.canonical.y; - return { - u_image: 0, - u_pattern_tl_a: P.tl, - u_pattern_br_a: P.br, - u_pattern_tl_b: M.tl, - u_pattern_br_b: M.br, - u_texsize: [D, z], - u_mix: m.t, - u_pattern_size_a: P.displaySize, - u_pattern_size_b: M.displaySize, - u_scale_a: m.fromScale, - u_scale_b: m.toScale, - u_tile_units_to_pixels: 1 / o.aC(w, 1, y.transform.tileZoom), - u_pixel_coord_upper: [ee >> 16, J >> 16], - u_pixel_coord_lower: [65535 & ee, 65535 & J] - } - })(n, u, e, s), { - u_opacity: h - }), - Cc = (h, e) => {}, - Sc = { - fillExtrusion: (h, e) => ({ - u_lightpos: new o.bT(h, e.u_lightpos), - u_lightpos_globe: new o.bT(h, e.u_lightpos_globe), - u_lightintensity: new o.bg(h, e.u_lightintensity), - u_lightcolor: new o.bT(h, e.u_lightcolor), - u_vertical_gradient: new o.bg(h, e.u_vertical_gradient), - u_opacity: new o.bg(h, e.u_opacity), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillExtrusionPattern: (h, e) => ({ - u_lightpos: new o.bT(h, e.u_lightpos), - u_lightpos_globe: new o.bT(h, e.u_lightpos_globe), - u_lightintensity: new o.bg(h, e.u_lightintensity), - u_lightcolor: new o.bT(h, e.u_lightcolor), - u_vertical_gradient: new o.bg(h, e.u_vertical_gradient), - u_height_factor: new o.bg(h, e.u_height_factor), - u_opacity: new o.bg(h, e.u_opacity), - u_fill_translate: new o.bU(h, e.u_fill_translate), - u_image: new o.bP(h, e.u_image), - u_texsize: new o.bU(h, e.u_texsize), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade) - }), - fill: (h, e) => ({ - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillPattern: (h, e) => ({ - u_image: new o.bP(h, e.u_image), - u_texsize: new o.bU(h, e.u_texsize), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillOutline: (h, e) => ({ - u_world: new o.bU(h, e.u_world), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillOutlinePattern: (h, e) => ({ - u_world: new o.bU(h, e.u_world), - u_image: new o.bP(h, e.u_image), - u_texsize: new o.bU(h, e.u_texsize), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - circle: (h, e) => ({ - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_scale_with_map: new o.bP(h, e.u_scale_with_map), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_extrude_scale: new o.bU(h, e.u_extrude_scale), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_globe_extrude_scale: new o.bg(h, e.u_globe_extrude_scale), - u_translate: new o.bU(h, e.u_translate) - }), - collisionBox: (h, e) => ({ - u_pixel_extrude_scale: new o.bU(h, e.u_pixel_extrude_scale) - }), - collisionCircle: (h, e) => ({ - u_viewport_size: new o.bU(h, e.u_viewport_size) - }), - debug: (h, e) => ({ - u_color: new o.bQ(h, e.u_color), - u_overlay: new o.bP(h, e.u_overlay), - u_overlay_scale: new o.bg(h, e.u_overlay_scale) - }), - depth: Cc, - clippingMask: Cc, - heatmap: (h, e) => ({ - u_extrude_scale: new o.bg(h, e.u_extrude_scale), - u_intensity: new o.bg(h, e.u_intensity), - u_globe_extrude_scale: new o.bg(h, e.u_globe_extrude_scale) - }), - heatmapTexture: (h, e) => ({ - u_matrix: new o.bR(h, e.u_matrix), - u_world: new o.bU(h, e.u_world), - u_image: new o.bP(h, e.u_image), - u_color_ramp: new o.bP(h, e.u_color_ramp), - u_opacity: new o.bg(h, e.u_opacity) - }), - hillshade: (h, e) => ({ - u_image: new o.bP(h, e.u_image), - u_latrange: new o.bU(h, e.u_latrange), - u_exaggeration: new o.bg(h, e.u_exaggeration), - u_altitudes: new o.b_(h, e.u_altitudes), - u_azimuths: new o.b_(h, e.u_azimuths), - u_accent: new o.bQ(h, e.u_accent), - u_method: new o.bP(h, e.u_method), - u_shadows: new o.bZ(h, e.u_shadows), - u_highlights: new o.bZ(h, e.u_highlights) - }), - hillshadePrepare: (h, e) => ({ - u_matrix: new o.bR(h, e.u_matrix), - u_image: new o.bP(h, e.u_image), - u_dimension: new o.bU(h, e.u_dimension), - u_zoom: new o.bg(h, e.u_zoom), - u_unpack: new o.bS(h, e.u_unpack) - }), - colorRelief: (h, e) => ({ - u_image: new o.bP(h, e.u_image), - u_unpack: new o.bS(h, e.u_unpack), - u_dimension: new o.bU(h, e.u_dimension), - u_elevation_stops: new o.bP(h, e.u_elevation_stops), - u_color_stops: new o.bP(h, e.u_color_stops), - u_color_ramp_size: new o.bP(h, e.u_color_ramp_size), - u_opacity: new o.bg(h, e.u_opacity) - }), - line: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels) - }), - lineGradient: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels), - u_image: new o.bP(h, e.u_image), - u_image_height: new o.bg(h, e.u_image_height) - }), - linePattern: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_texsize: new o.bU(h, e.u_texsize), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_image: new o.bP(h, e.u_image), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade) - }), - lineSDF: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels), - u_patternscale_a: new o.bU(h, e.u_patternscale_a), - u_patternscale_b: new o.bU(h, e.u_patternscale_b), - u_sdfgamma: new o.bg(h, e.u_sdfgamma), - u_image: new o.bP(h, e.u_image), - u_tex_y_a: new o.bg(h, e.u_tex_y_a), - u_tex_y_b: new o.bg(h, e.u_tex_y_b), - u_mix: new o.bg(h, e.u_mix) - }), - raster: (h, e) => ({ - u_tl_parent: new o.bU(h, e.u_tl_parent), - u_scale_parent: new o.bg(h, e.u_scale_parent), - u_buffer_scale: new o.bg(h, e.u_buffer_scale), - u_fade_t: new o.bg(h, e.u_fade_t), - u_opacity: new o.bg(h, e.u_opacity), - u_image0: new o.bP(h, e.u_image0), - u_image1: new o.bP(h, e.u_image1), - u_brightness_low: new o.bg(h, e.u_brightness_low), - u_brightness_high: new o.bg(h, e.u_brightness_high), - u_saturation_factor: new o.bg(h, e.u_saturation_factor), - u_contrast_factor: new o.bg(h, e.u_contrast_factor), - u_spin_weights: new o.bT(h, e.u_spin_weights), - u_coords_top: new o.bS(h, e.u_coords_top), - u_coords_bottom: new o.bS(h, e.u_coords_bottom) - }), - symbolIcon: (h, e) => ({ - u_is_size_zoom_constant: new o.bP(h, e.u_is_size_zoom_constant), - u_is_size_feature_constant: new o.bP(h, e.u_is_size_feature_constant), - u_size_t: new o.bg(h, e.u_size_t), - u_size: new o.bg(h, e.u_size), - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_pitch: new o.bg(h, e.u_pitch), - u_rotate_symbol: new o.bP(h, e.u_rotate_symbol), - u_aspect_ratio: new o.bg(h, e.u_aspect_ratio), - u_fade_change: new o.bg(h, e.u_fade_change), - u_label_plane_matrix: new o.bR(h, e.u_label_plane_matrix), - u_coord_matrix: new o.bR(h, e.u_coord_matrix), - u_is_text: new o.bP(h, e.u_is_text), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_is_along_line: new o.bP(h, e.u_is_along_line), - u_is_variable_anchor: new o.bP(h, e.u_is_variable_anchor), - u_texsize: new o.bU(h, e.u_texsize), - u_texture: new o.bP(h, e.u_texture), - u_translation: new o.bU(h, e.u_translation), - u_pitched_scale: new o.bg(h, e.u_pitched_scale) - }), - symbolSDF: (h, e) => ({ - u_is_size_zoom_constant: new o.bP(h, e.u_is_size_zoom_constant), - u_is_size_feature_constant: new o.bP(h, e.u_is_size_feature_constant), - u_size_t: new o.bg(h, e.u_size_t), - u_size: new o.bg(h, e.u_size), - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_pitch: new o.bg(h, e.u_pitch), - u_rotate_symbol: new o.bP(h, e.u_rotate_symbol), - u_aspect_ratio: new o.bg(h, e.u_aspect_ratio), - u_fade_change: new o.bg(h, e.u_fade_change), - u_label_plane_matrix: new o.bR(h, e.u_label_plane_matrix), - u_coord_matrix: new o.bR(h, e.u_coord_matrix), - u_is_text: new o.bP(h, e.u_is_text), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_is_along_line: new o.bP(h, e.u_is_along_line), - u_is_variable_anchor: new o.bP(h, e.u_is_variable_anchor), - u_texsize: new o.bU(h, e.u_texsize), - u_texture: new o.bP(h, e.u_texture), - u_gamma_scale: new o.bg(h, e.u_gamma_scale), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_is_halo: new o.bP(h, e.u_is_halo), - u_translation: new o.bU(h, e.u_translation), - u_pitched_scale: new o.bg(h, e.u_pitched_scale) - }), - symbolTextAndIcon: (h, e) => ({ - u_is_size_zoom_constant: new o.bP(h, e.u_is_size_zoom_constant), - u_is_size_feature_constant: new o.bP(h, e.u_is_size_feature_constant), - u_size_t: new o.bg(h, e.u_size_t), - u_size: new o.bg(h, e.u_size), - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_pitch: new o.bg(h, e.u_pitch), - u_rotate_symbol: new o.bP(h, e.u_rotate_symbol), - u_aspect_ratio: new o.bg(h, e.u_aspect_ratio), - u_fade_change: new o.bg(h, e.u_fade_change), - u_label_plane_matrix: new o.bR(h, e.u_label_plane_matrix), - u_coord_matrix: new o.bR(h, e.u_coord_matrix), - u_is_text: new o.bP(h, e.u_is_text), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_is_along_line: new o.bP(h, e.u_is_along_line), - u_is_variable_anchor: new o.bP(h, e.u_is_variable_anchor), - u_texsize: new o.bU(h, e.u_texsize), - u_texsize_icon: new o.bU(h, e.u_texsize_icon), - u_texture: new o.bP(h, e.u_texture), - u_texture_icon: new o.bP(h, e.u_texture_icon), - u_gamma_scale: new o.bg(h, e.u_gamma_scale), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_is_halo: new o.bP(h, e.u_is_halo), - u_translation: new o.bU(h, e.u_translation), - u_pitched_scale: new o.bg(h, e.u_pitched_scale) - }), - background: (h, e) => ({ - u_opacity: new o.bg(h, e.u_opacity), - u_color: new o.bQ(h, e.u_color) - }), - backgroundPattern: (h, e) => ({ - u_opacity: new o.bg(h, e.u_opacity), - u_image: new o.bP(h, e.u_image), - u_pattern_tl_a: new o.bU(h, e.u_pattern_tl_a), - u_pattern_br_a: new o.bU(h, e.u_pattern_br_a), - u_pattern_tl_b: new o.bU(h, e.u_pattern_tl_b), - u_pattern_br_b: new o.bU(h, e.u_pattern_br_b), - u_texsize: new o.bU(h, e.u_texsize), - u_mix: new o.bg(h, e.u_mix), - u_pattern_size_a: new o.bU(h, e.u_pattern_size_a), - u_pattern_size_b: new o.bU(h, e.u_pattern_size_b), - u_scale_a: new o.bg(h, e.u_scale_a), - u_scale_b: new o.bg(h, e.u_scale_b), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_tile_units_to_pixels: new o.bg(h, e.u_tile_units_to_pixels) - }), - terrain: (h, e) => ({ - u_texture: new o.bP(h, e.u_texture), - u_ele_delta: new o.bg(h, e.u_ele_delta), - u_fog_matrix: new o.bR(h, e.u_fog_matrix), - u_fog_color: new o.bQ(h, e.u_fog_color), - u_fog_ground_blend: new o.bg(h, e.u_fog_ground_blend), - u_fog_ground_blend_opacity: new o.bg(h, e.u_fog_ground_blend_opacity), - u_horizon_color: new o.bQ(h, e.u_horizon_color), - u_horizon_fog_blend: new o.bg(h, e.u_horizon_fog_blend), - u_is_globe_mode: new o.bg(h, e.u_is_globe_mode) - }), - terrainDepth: (h, e) => ({ - u_ele_delta: new o.bg(h, e.u_ele_delta) - }), - terrainCoords: (h, e) => ({ - u_texture: new o.bP(h, e.u_texture), - u_terrain_coords_id: new o.bg(h, e.u_terrain_coords_id), - u_ele_delta: new o.bg(h, e.u_ele_delta) - }), - projectionErrorMeasurement: (h, e) => ({ - u_input: new o.bg(h, e.u_input), - u_output_expected: new o.bg(h, e.u_output_expected) - }), - atmosphere: (h, e) => ({ - u_sun_pos: new o.bT(h, e.u_sun_pos), - u_atmosphere_blend: new o.bg(h, e.u_atmosphere_blend), - u_globe_position: new o.bT(h, e.u_globe_position), - u_globe_radius: new o.bg(h, e.u_globe_radius), - u_inv_proj_matrix: new o.bR(h, e.u_inv_proj_matrix) - }), - sky: (h, e) => ({ - u_sky_color: new o.bQ(h, e.u_sky_color), - u_horizon_color: new o.bQ(h, e.u_horizon_color), - u_horizon: new o.bU(h, e.u_horizon), - u_horizon_normal: new o.bU(h, e.u_horizon_normal), - u_sky_horizon_blend: new o.bg(h, e.u_sky_horizon_blend), - u_sky_blend: new o.bg(h, e.u_sky_blend) - }) - }; - class Ph { - constructor(e, n, s) { - this.context = e; - const u = e.gl; - this.buffer = u.createBuffer(), this.dynamicDraw = !!s, this.context.unbindVAO(), e.bindElementBuffer.set(this.buffer), u.bufferData(u.ELEMENT_ARRAY_BUFFER, n.arrayBuffer, this.dynamicDraw ? u.DYNAMIC_DRAW : u.STATIC_DRAW), this.dynamicDraw || delete n.arrayBuffer - } - bind() { - this.context.bindElementBuffer.set(this.buffer) - } - updateData(e) { - const n = this.context.gl; - if (!this.dynamicDraw) throw new Error("Attempted to update data while not in dynamic mode."); - this.context.unbindVAO(), this.bind(), n.bufferSubData(n.ELEMENT_ARRAY_BUFFER, 0, e.arrayBuffer) - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer) - } - } - const ol = { - Int8: "BYTE", - Uint8: "UNSIGNED_BYTE", - Int16: "SHORT", - Uint16: "UNSIGNED_SHORT", - Int32: "INT", - Uint32: "UNSIGNED_INT", - Float32: "FLOAT" - }; - class $a { - constructor(e, n, s, u) { - this.length = n.length, this.attributes = s, this.itemSize = n.bytesPerElement, this.dynamicDraw = u, this.context = e; - const d = e.gl; - this.buffer = d.createBuffer(), e.bindVertexBuffer.set(this.buffer), d.bufferData(d.ARRAY_BUFFER, n.arrayBuffer, this.dynamicDraw ? d.DYNAMIC_DRAW : d.STATIC_DRAW), this.dynamicDraw || delete n.arrayBuffer - } - bind() { - this.context.bindVertexBuffer.set(this.buffer) - } - updateData(e) { - if (e.length !== this.length) throw new Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`); - const n = this.context.gl; - this.bind(), n.bufferSubData(n.ARRAY_BUFFER, 0, e.arrayBuffer) - } - enableAttributes(e, n) { - for (let s = 0; s < this.attributes.length; s++) { - const u = n.attributes[this.attributes[s].name]; - u !== void 0 && e.enableVertexAttribArray(u) - } - } - setVertexAttribPointers(e, n, s) { - for (let u = 0; u < this.attributes.length; u++) { - const d = this.attributes[u], - m = n.attributes[d.name]; - m !== void 0 && e.vertexAttribPointer(m, d.components, e[ol[d.type]], !1, this.itemSize, d.offset + this.itemSize * (s || 0)) - } - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer) - } - } - class vi { - constructor(e) { - this.gl = e.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = !1 - } - get() { - return this.current - } - set(e) {} - getDefault() { - return this.default - } - setDefault() { - this.set(this.default) - } - } - class Pc extends vi { - getDefault() { - return o.bf.transparent - } - set(e) { - const n = this.current; - (e.r !== n.r || e.g !== n.g || e.b !== n.b || e.a !== n.a || this.dirty) && (this.gl.clearColor(e.r, e.g, e.b, e.a), this.current = e, this.dirty = !1) - } - } - class Ic extends vi { - getDefault() { - return 1 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.clearDepth(e), this.current = e, this.dirty = !1) - } - } - class Ih extends vi { - getDefault() { - return 0 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.clearStencil(e), this.current = e, this.dirty = !1) - } - } - class Mc extends vi { - getDefault() { - return [!0, !0, !0, !0] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || e[2] !== n[2] || e[3] !== n[3] || this.dirty) && (this.gl.colorMask(e[0], e[1], e[2], e[3]), this.current = e, this.dirty = !1) - } - } - class vs extends vi { - getDefault() { - return !0 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.depthMask(e), this.current = e, this.dirty = !1) - } - } - class Ac extends vi { - getDefault() { - return 255 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.stencilMask(e), this.current = e, this.dirty = !1) - } - } - class op extends vi { - getDefault() { - return { - func: this.gl.ALWAYS, - ref: 0, - mask: 255 - } - } - set(e) { - const n = this.current; - (e.func !== n.func || e.ref !== n.ref || e.mask !== n.mask || this.dirty) && (this.gl.stencilFunc(e.func, e.ref, e.mask), this.current = e, this.dirty = !1) - } - } - class lp extends vi { - getDefault() { - const e = this.gl; - return [e.KEEP, e.KEEP, e.KEEP] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || e[2] !== n[2] || this.dirty) && (this.gl.stencilOp(e[0], e[1], e[2]), this.current = e, this.dirty = !1) - } - } - class cp extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.STENCIL_TEST) : n.disable(n.STENCIL_TEST), this.current = e, this.dirty = !1 - } - } - class up extends vi { - getDefault() { - return [0, 1] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || this.dirty) && (this.gl.depthRange(e[0], e[1]), this.current = e, this.dirty = !1) - } - } - class Mh extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.DEPTH_TEST) : n.disable(n.DEPTH_TEST), this.current = e, this.dirty = !1 - } - } - class hp extends vi { - getDefault() { - return this.gl.LESS - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.depthFunc(e), this.current = e, this.dirty = !1) - } - } - class Ah extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.BLEND) : n.disable(n.BLEND), this.current = e, this.dirty = !1 - } - } - class ll extends vi { - getDefault() { - const e = this.gl; - return [e.ONE, e.ZERO] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || this.dirty) && (this.gl.blendFunc(e[0], e[1]), this.current = e, this.dirty = !1) - } - } - class cl extends vi { - getDefault() { - return o.bf.transparent - } - set(e) { - const n = this.current; - (e.r !== n.r || e.g !== n.g || e.b !== n.b || e.a !== n.a || this.dirty) && (this.gl.blendColor(e.r, e.g, e.b, e.a), this.current = e, this.dirty = !1) - } - } - class ul extends vi { - getDefault() { - return this.gl.FUNC_ADD - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.blendEquation(e), this.current = e, this.dirty = !1) - } - } - class kc extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.CULL_FACE) : n.disable(n.CULL_FACE), this.current = e, this.dirty = !1 - } - } - class ys extends vi { - getDefault() { - return this.gl.BACK - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.cullFace(e), this.current = e, this.dirty = !1) - } - } - class bo extends vi { - getDefault() { - return this.gl.CCW - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.frontFace(e), this.current = e, this.dirty = !1) - } - } - class Os extends vi { - getDefault() { - return null - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.useProgram(e), this.current = e, this.dirty = !1) - } - } - class ca extends vi { - getDefault() { - return this.gl.TEXTURE0 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.activeTexture(e), this.current = e, this.dirty = !1) - } - } - class kh extends vi { - getDefault() { - const e = this.gl; - return [0, 0, e.drawingBufferWidth, e.drawingBufferHeight] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || e[2] !== n[2] || e[3] !== n[3] || this.dirty) && (this.gl.viewport(e[0], e[1], e[2], e[3]), this.current = e, this.dirty = !1) - } - } - class Eh extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindFramebuffer(n.FRAMEBUFFER, e), this.current = e, this.dirty = !1 - } - } - class Ec extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindRenderbuffer(n.RENDERBUFFER, e), this.current = e, this.dirty = !1 - } - } - class xs extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindTexture(n.TEXTURE_2D, e), this.current = e, this.dirty = !1 - } - } - class hl extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindBuffer(n.ARRAY_BUFFER, e), this.current = e, this.dirty = !1 - } - } - class dl extends vi { - getDefault() { - return null - } - set(e) { - const n = this.gl; - n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, e), this.current = e, this.dirty = !1 - } - } - class wo extends vi { - getDefault() { - return null - } - set(e) { - var n; - if (e === this.current && !this.dirty) return; - const s = this.gl; - Ra(s) ? s.bindVertexArray(e) : (n = s.getExtension("OES_vertex_array_object")) === null || n === void 0 || n.bindVertexArrayOES(e), this.current = e, this.dirty = !1 - } - } - class pl extends vi { - getDefault() { - return 4 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.pixelStorei(n.UNPACK_ALIGNMENT, e), this.current = e, this.dirty = !1 - } - } - class zh extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e), this.current = e, this.dirty = !1 - } - } - class Ns extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL, e), this.current = e, this.dirty = !1 - } - } - class rs extends vi { - constructor(e, n) { - super(e), this.context = e, this.parent = n - } - getDefault() { - return null - } - } - class Lh extends rs { - setDirty() { - this.dirty = !0 - } - set(e) { - if (e === this.current && !this.dirty) return; - this.context.bindFramebuffer.set(this.parent); - const n = this.gl; - n.framebufferTexture2D(n.FRAMEBUFFER, n.COLOR_ATTACHMENT0, n.TEXTURE_2D, e, 0), this.current = e, this.dirty = !1 - } - } - class zc extends rs { - set(e) { - if (e === this.current && !this.dirty) return; - this.context.bindFramebuffer.set(this.parent); - const n = this.gl; - n.framebufferRenderbuffer(n.FRAMEBUFFER, n.DEPTH_ATTACHMENT, n.RENDERBUFFER, e), this.current = e, this.dirty = !1 - } - } - class ii extends rs { - set(e) { - if (e === this.current && !this.dirty) return; - this.context.bindFramebuffer.set(this.parent); - const n = this.gl; - n.framebufferRenderbuffer(n.FRAMEBUFFER, n.DEPTH_STENCIL_ATTACHMENT, n.RENDERBUFFER, e), this.current = e, this.dirty = !1 - } - } - const To = "Framebuffer is not complete"; - class dp { - constructor(e, n, s, u, d) { - this.context = e, this.width = n, this.height = s; - const m = e.gl, - y = this.framebuffer = m.createFramebuffer(); - if (this.colorAttachment = new Lh(e, y), u) this.depthAttachment = d ? new ii(e, y) : new zc(e, y); - else if (d) throw new Error("Stencil cannot be set without depth"); - if (m.checkFramebufferStatus(m.FRAMEBUFFER) !== m.FRAMEBUFFER_COMPLETE) throw new Error(To) - } - destroy() { - const e = this.context.gl, - n = this.colorAttachment.get(); - if (n && e.deleteTexture(n), this.depthAttachment) { - const s = this.depthAttachment.get(); - s && e.deleteRenderbuffer(s) - } - e.deleteFramebuffer(this.framebuffer) - } - } - class Dh { - constructor(e) { - var n, s; - if (this.gl = e, this.clearColor = new Pc(this), this.clearDepth = new Ic(this), this.clearStencil = new Ih(this), this.colorMask = new Mc(this), this.depthMask = new vs(this), this.stencilMask = new Ac(this), this.stencilFunc = new op(this), this.stencilOp = new lp(this), this.stencilTest = new cp(this), this.depthRange = new up(this), this.depthTest = new Mh(this), this.depthFunc = new hp(this), this.blend = new Ah(this), this.blendFunc = new ll(this), this.blendColor = new cl(this), this.blendEquation = new ul(this), this.cullFace = new kc(this), this.cullFaceSide = new ys(this), this.frontFace = new bo(this), this.program = new Os(this), this.activeTexture = new ca(this), this.viewport = new kh(this), this.bindFramebuffer = new Eh(this), this.bindRenderbuffer = new Ec(this), this.bindTexture = new xs(this), this.bindVertexBuffer = new hl(this), this.bindElementBuffer = new dl(this), this.bindVertexArray = new wo(this), this.pixelStoreUnpack = new pl(this), this.pixelStoreUnpackPremultiplyAlpha = new zh(this), this.pixelStoreUnpackFlipY = new Ns(this), this.extTextureFilterAnisotropic = e.getExtension("EXT_texture_filter_anisotropic") || e.getExtension("MOZ_EXT_texture_filter_anisotropic") || e.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.maxTextureSize = e.getParameter(e.MAX_TEXTURE_SIZE), Ra(e)) { - this.HALF_FLOAT = e.HALF_FLOAT; - const u = e.getExtension("EXT_color_buffer_half_float"); - this.RGBA16F = (n = e.RGBA16F) !== null && n !== void 0 ? n : u == null ? void 0 : u.RGBA16F_EXT, this.RGB16F = (s = e.RGB16F) !== null && s !== void 0 ? s : u == null ? void 0 : u.RGB16F_EXT, e.getExtension("EXT_color_buffer_float") - } else { - e.getExtension("EXT_color_buffer_half_float"), e.getExtension("OES_texture_half_float_linear"); - const u = e.getExtension("OES_texture_half_float"); - this.HALF_FLOAT = u == null ? void 0 : u.HALF_FLOAT_OES - } - } - setDefault() { - this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault() - } - setDirty() { - this.clearColor.dirty = !0, this.clearDepth.dirty = !0, this.clearStencil.dirty = !0, this.colorMask.dirty = !0, this.depthMask.dirty = !0, this.stencilMask.dirty = !0, this.stencilFunc.dirty = !0, this.stencilOp.dirty = !0, this.stencilTest.dirty = !0, this.depthRange.dirty = !0, this.depthTest.dirty = !0, this.depthFunc.dirty = !0, this.blend.dirty = !0, this.blendFunc.dirty = !0, this.blendColor.dirty = !0, this.blendEquation.dirty = !0, this.cullFace.dirty = !0, this.cullFaceSide.dirty = !0, this.frontFace.dirty = !0, this.program.dirty = !0, this.activeTexture.dirty = !0, this.viewport.dirty = !0, this.bindFramebuffer.dirty = !0, this.bindRenderbuffer.dirty = !0, this.bindTexture.dirty = !0, this.bindVertexBuffer.dirty = !0, this.bindElementBuffer.dirty = !0, this.bindVertexArray.dirty = !0, this.pixelStoreUnpack.dirty = !0, this.pixelStoreUnpackPremultiplyAlpha.dirty = !0, this.pixelStoreUnpackFlipY.dirty = !0 - } - createIndexBuffer(e, n) { - return new Ph(this, e, n) - } - createVertexBuffer(e, n, s) { - return new $a(this, e, n, s) - } - createRenderbuffer(e, n, s) { - const u = this.gl, - d = u.createRenderbuffer(); - return this.bindRenderbuffer.set(d), u.renderbufferStorage(u.RENDERBUFFER, e, n, s), this.bindRenderbuffer.set(null), d - } - createFramebuffer(e, n, s, u) { - return new dp(this, e, n, s, u) - } - clear({ - color: e, - depth: n, - stencil: s - }) { - const u = this.gl; - let d = 0; - e && (d |= u.COLOR_BUFFER_BIT, this.clearColor.set(e), this.colorMask.set([!0, !0, !0, !0])), n !== void 0 && (d |= u.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(n), this.depthMask.set(!0)), s !== void 0 && (d |= u.STENCIL_BUFFER_BIT, this.clearStencil.set(s), this.stencilMask.set(255)), u.clear(d) - } - setCullFace(e) { - e.enable === !1 ? this.cullFace.set(!1) : (this.cullFace.set(!0), this.cullFaceSide.set(e.mode), this.frontFace.set(e.frontFace)) - } - setDepthMode(e) { - e.func !== this.gl.ALWAYS || e.mask ? (this.depthTest.set(!0), this.depthFunc.set(e.func), this.depthMask.set(e.mask), this.depthRange.set(e.range)) : this.depthTest.set(!1) - } - setStencilMode(e) { - e.test.func !== this.gl.ALWAYS || e.mask ? (this.stencilTest.set(!0), this.stencilMask.set(e.mask), this.stencilOp.set([e.fail, e.depthFail, e.pass]), this.stencilFunc.set({ - func: e.test.func, - ref: e.ref, - mask: e.test.mask - })) : this.stencilTest.set(!1) - } - setColorMode(e) { - o.bH(e.blendFunction, Ti.Replace) ? this.blend.set(!1) : (this.blend.set(!0), this.blendFunc.set(e.blendFunction), this.blendColor.set(e.blendColor)), this.colorMask.set(e.mask) - } - createVertexArray() { - var e; - return Ra(this.gl) ? this.gl.createVertexArray() : (e = this.gl.getExtension("OES_vertex_array_object")) === null || e === void 0 ? void 0 : e.createVertexArrayOES() - } - deleteVertexArray(e) { - var n; - return Ra(this.gl) ? this.gl.deleteVertexArray(e) : (n = this.gl.getExtension("OES_vertex_array_object")) === null || n === void 0 ? void 0 : n.deleteVertexArrayOES(e) - } - unbindVAO() { - this.bindVertexArray.set(null) - } - } - let is; - - function Rh(h, e, n, s, u) { - const d = h.context, - m = h.transform, - y = d.gl, - w = h.useProgram("collisionBox"), - P = []; - let M = 0, - D = 0; - for (let re = 0; re < s.length; re++) { - const se = s[re], - de = e.getTile(se).getBucket(n); - if (!de) continue; - const ue = u ? de.textCollisionBox : de.iconCollisionBox, - ge = de.collisionCircleArray; - ge.length > 0 && (P.push({ - circleArray: ge, - circleOffset: D, - coord: se - }), M += ge.length / 4, D = M), ue && w.draw(d, y.LINES, Vr.disabled, hi.disabled, h.colorModeForRenderPass(), wr.disabled, al(h.transform), h.style.map.terrain && h.style.map.terrain.getTerrainData(se), m.getProjectionData({ - overscaledTileID: se, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }), n.id, ue.layoutVertexBuffer, ue.indexBuffer, ue.segments, null, h.transform.zoom, null, null, ue.collisionVertexBuffer) - } - if (!u || !P.length) return; - const z = h.useProgram("collisionCircle"), - B = new o.b$; - B.resize(4 * M), B._trim(); - let U = 0; - for (const re of P) - for (let se = 0; se < re.circleArray.length / 4; se++) { - const de = 4 * se, - ue = re.circleArray[de + 0], - ge = re.circleArray[de + 1], - Te = re.circleArray[de + 2], - he = re.circleArray[de + 3]; - B.emplace(U++, ue, ge, Te, he, 0), B.emplace(U++, ue, ge, Te, he, 1), B.emplace(U++, ue, ge, Te, he, 2), B.emplace(U++, ue, ge, Te, he, 3) - }(!is || is.length < 2 * M) && (is = (function(re) { - const se = 2 * re, - de = new o.c1; - de.resize(se), de._trim(); - for (let ue = 0; ue < se; ue++) { - const ge = 6 * ue; - de.uint16[ge + 0] = 4 * ue + 0, de.uint16[ge + 1] = 4 * ue + 1, de.uint16[ge + 2] = 4 * ue + 2, de.uint16[ge + 3] = 4 * ue + 2, de.uint16[ge + 4] = 4 * ue + 3, de.uint16[ge + 5] = 4 * ue + 0 - } - return de - })(M)); - const ee = d.createIndexBuffer(is, !0), - J = d.createVertexBuffer(B, o.c0.members, !0); - for (const re of P) { - const se = ip(h.transform); - z.draw(d, y.TRIANGLES, Vr.disabled, hi.disabled, h.colorModeForRenderPass(), wr.disabled, se, h.style.map.terrain && h.style.map.terrain.getTerrainData(re.coord), null, n.id, J, ee, o.aM.simpleSegment(0, 2 * re.circleOffset, re.circleArray.length, re.circleArray.length / 2), null, h.transform.zoom, null, null, null) - } - J.destroy(), ee.destroy() - } - const pp = o.ag(new Float32Array(16)); - - function Bh(h, e, n, s, u, d) { - const { - horizontalAlign: m, - verticalAlign: y - } = o.aH(h); - return new o.P((-(m - .5) * e / u + s[0]) * d, (-(y - .5) * n / u + s[1]) * d) - } - - function fp(h, e, n, s, u, d) { - const m = e.tileAnchorPoint.add(new o.P(e.translation[0], e.translation[1])); - if (e.pitchWithMap) { - let y = s.mult(d); - n || (y = y.rotate(-u)); - const w = m.add(y); - return ai(w.x, w.y, e.pitchedLabelPlaneMatrix, e.getElevation).point - } - if (n) { - const y = Dr(e.tileAnchorPoint.x + 1, e.tileAnchorPoint.y, e).point.sub(h), - w = Math.atan(y.y / y.x) + (y.x < 0 ? Math.PI : 0); - return h.add(s.rotate(w)) - } - return h.add(s) - } - - function Lc(h, e, n, s, u, d, m, y, w, P, M, D) { - const z = h.text.placedSymbolArray, - B = h.text.dynamicLayoutVertexArray, - U = h.icon.dynamicLayoutVertexArray, - ee = {}; - B.clear(); - for (let J = 0; J < z.length; J++) { - const re = z.get(J), - se = re.hidden || !re.crossTileID || h.allowVerticalPlacement && !re.placedOrientation ? null : s[re.crossTileID]; - if (se) { - const de = new o.P(re.anchorX, re.anchorY), - ue = { - getElevation: D, - width: u.width, - height: u.height, - pitchedLabelPlaneMatrix: d, - pitchWithMap: n, - transform: u, - tileAnchorPoint: de, - translation: P, - unwrappedTileID: M - }, - ge = n ? li(de.x, de.y, ue) : Dr(de.x, de.y, ue), - Te = Tt(u.cameraToCenterDistance, ge.signedDistanceFromCamera); - let he = o.ap(h.textSizeData, y, re) * Te / o.aB; - n && (he *= h.tilePixelRatio / m); - const { - width: De, - height: He, - anchor: je, - textOffset: qe, - textBoxScale: $e - } = se, Rt = Bh(je, De, He, qe, $e, he), Nt = u.getPitchedTextCorrection(de.x + P[0], de.y + P[1], M), yt = fp(ge.point, ue, e, Rt, -u.bearingInRadians, Nt), sr = h.allowVerticalPlacement && re.placedOrientation === o.ao.vertical ? Math.PI / 2 : 0; - for (let Xr = 0; Xr < re.numGlyphs; Xr++) o.av(B, yt, sr); - w && re.associatedIconIndex >= 0 && (ee[re.associatedIconIndex] = { - shiftedAnchor: yt, - angle: sr - }) - } else mi(re.numGlyphs, B) - } - if (w) { - U.clear(); - const J = h.icon.placedSymbolArray; - for (let re = 0; re < J.length; re++) { - const se = J.get(re); - if (se.hidden) mi(se.numGlyphs, U); - else { - const de = ee[re]; - if (de) - for (let ue = 0; ue < se.numGlyphs; ue++) o.av(U, de.shiftedAnchor, de.angle); - else mi(se.numGlyphs, U) - } - } - h.icon.dynamicLayoutVertexBuffer.updateData(U) - } - h.text.dynamicLayoutVertexBuffer.updateData(B) - } - - function fl(h, e, n) { - return n.iconsInText && e ? "symbolTextAndIcon" : h ? "symbolSDF" : "symbolIcon" - } - - function Co(h, e, n, s, u, d, m, y, w, P, M, D, z) { - const B = h.context, - U = B.gl, - ee = h.transform, - J = y === "map", - re = w === "map", - se = y !== "viewport" && n.layout.get("symbol-placement") !== "point", - de = J && !re && !se, - ue = !n.layout.get("symbol-sort-key").isConstant(); - let ge = !1; - const Te = h.getDepthModeForSublayer(0, Vr.ReadOnly), - he = n._unevaluatedLayout.hasValue("text-variable-anchor") || n._unevaluatedLayout.hasValue("text-variable-anchor-offset"), - De = [], - He = ee.getCircleRadiusCorrection(); - for (const je of s) { - const qe = e.getTile(je), - $e = qe.getBucket(n); - if (!$e) continue; - const Rt = u ? $e.text : $e.icon; - if (!Rt || !Rt.segments.get().length || !Rt.hasVisibleVertices) continue; - const Nt = Rt.programConfigurations.get(n.id), - yt = u || $e.sdfIcons, - sr = u ? $e.textSizeData : $e.iconSizeData, - Xr = re || ee.pitch !== 0, - xi = h.useProgram(fl(yt, u, $e), Nt), - ki = o.an(sr, ee.zoom), - Pi = h.style.map.terrain && h.style.map.terrain.getTerrainData(je); - let ji, Ui, Wr, Ei, Qi = [0, 0], - dn = null; - if (u) Ui = qe.glyphAtlasTexture, Wr = U.LINEAR, ji = qe.glyphAtlasTexture.size, $e.iconsInText && (Qi = qe.imageAtlasTexture.size, dn = qe.imageAtlasTexture, Ei = Xr || h.options.rotating || h.options.zooming || sr.kind === "composite" || sr.kind === "camera" ? U.LINEAR : U.NEAREST); - else { - const en = n.layout.get("icon-size").constantOr(0) !== 1 || $e.iconsNeedLinear; - Ui = qe.imageAtlasTexture, Wr = yt || h.options.rotating || h.options.zooming || en || Xr ? U.LINEAR : U.NEAREST, ji = qe.imageAtlasTexture.size - } - const xn = o.aC(qe, 1, h.transform.zoom), - qn = $r(J, h.transform, xn), - Sa = o.L(); - o.aq(Sa, qn); - const as = mr(re, J, h.transform, xn), - ss = o.aD(ee, qe, d, m), - Ys = ee.getProjectionData({ - overscaledTileID: je, - applyGlobeMatrix: !z, - applyTerrainMatrix: !0 - }), - Js = he && $e.hasTextData(), - Is = n.layout.get("icon-text-fit") !== "none" && Js && $e.hasIconData(); - if (se) { - const en = h.style.map.terrain ? (da, tn) => h.style.map.terrain.getElevation(je, da, tn) : null, - pn = n.layout.get("text-rotation-alignment") === "map"; - di($e, h, u, qn, Sa, re, P, pn, je.toUnwrapped(), ee.width, ee.height, ss, en) - } - const Ms = u && he || Is, - Kn = se || Ms ? pp : re ? qn : h.transform.clipSpaceToPixelsMatrix, - Pa = yt && n.paint.get(u ? "text-halo-width" : "icon-halo-width").constantOr(1) !== 0; - let Vn; - Vn = yt ? $e.iconsInText ? sp(sr.kind, ki, de, re, se, Ms, h, Kn, as, ss, ji, Qi, He) : Th(sr.kind, ki, de, re, se, Ms, h, Kn, as, ss, u, ji, 0, He) : xo(sr.kind, ki, de, re, se, Ms, h, Kn, as, ss, u, ji, He); - const os = { - program: xi, - buffers: Rt, - uniformValues: Vn, - projectionData: Ys, - atlasTexture: Ui, - atlasTextureIcon: dn, - atlasInterpolation: Wr, - atlasInterpolationIcon: Ei, - isSDF: yt, - hasHalo: Pa - }; - if (ue && $e.canOverlap) { - ge = !0; - const en = Rt.segments.get(); - for (const pn of en) De.push({ - segments: new o.aM([pn]), - sortKey: pn.sortKey, - state: os, - terrainData: Pi - }) - } else De.push({ - segments: Rt.segments, - sortKey: 0, - state: os, - terrainData: Pi - }) - } - ge && De.sort(((je, qe) => je.sortKey - qe.sortKey)); - for (const je of De) { - const qe = je.state; - if (B.activeTexture.set(U.TEXTURE0), qe.atlasTexture.bind(qe.atlasInterpolation, U.CLAMP_TO_EDGE), qe.atlasTextureIcon && (B.activeTexture.set(U.TEXTURE1), qe.atlasTextureIcon && qe.atlasTextureIcon.bind(qe.atlasInterpolationIcon, U.CLAMP_TO_EDGE)), qe.isSDF) { - const $e = qe.uniformValues; - qe.hasHalo && ($e.u_is_halo = 1, So(qe.buffers, je.segments, n, h, qe.program, Te, M, D, $e, qe.projectionData, je.terrainData)), $e.u_is_halo = 0 - } - So(qe.buffers, je.segments, n, h, qe.program, Te, M, D, qe.uniformValues, qe.projectionData, je.terrainData) - } - } - - function So(h, e, n, s, u, d, m, y, w, P, M) { - const D = s.context; - u.draw(D, D.gl.TRIANGLES, d, m, y, wr.backCCW, w, M, P, n.id, h.layoutVertexBuffer, h.indexBuffer, e, n.paint, s.transform.zoom, h.programConfigurations.get(n.id), h.dynamicLayoutVertexBuffer, h.opacityVertexBuffer) - } - - function Dc(h, e, n, s, u) { - const d = h.context, - m = d.gl, - y = hi.disabled, - w = new Ti([m.ONE, m.ONE], o.bf.transparent, [!0, !0, !0, !0]), - P = e.getBucket(n); - if (!P) return; - const M = s.key; - let D = n.heatmapFbos.get(M); - D || (D = Po(d, e.tileSize, e.tileSize), n.heatmapFbos.set(M, D)), d.bindFramebuffer.set(D.framebuffer), d.viewport.set([0, 0, e.tileSize, e.tileSize]), d.clear({ - color: o.bf.transparent - }); - const z = P.programConfigurations.get(n.id), - B = h.useProgram("heatmap", z, !u), - U = h.transform.getProjectionData({ - overscaledTileID: e.tileID, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }), - ee = h.style.map.terrain.getTerrainData(s); - B.draw(d, m.TRIANGLES, Vr.disabled, y, w, wr.disabled, vh(e, h.transform.zoom, n.paint.get("heatmap-intensity"), 1), ee, U, n.id, P.layoutVertexBuffer, P.indexBuffer, P.segments, n.paint, h.transform.zoom, z) - } - - function Fh(h, e, n, s, u) { - const d = h.context, - m = d.gl, - y = h.transform; - d.setColorMode(h.colorModeForRenderPass()); - const w = Io(d, e), - P = n.key, - M = e.heatmapFbos.get(P); - if (!M) return; - d.activeTexture.set(m.TEXTURE0), m.bindTexture(m.TEXTURE_2D, M.colorAttachment.get()), d.activeTexture.set(m.TEXTURE1), w.bind(m.LINEAR, m.CLAMP_TO_EDGE); - const D = y.getProjectionData({ - overscaledTileID: n, - applyTerrainMatrix: u, - applyGlobeMatrix: !s - }); - h.useProgram("heatmapTexture").draw(d, m.TRIANGLES, Vr.disabled, hi.disabled, h.colorModeForRenderPass(), wr.disabled, xc(h, e, 0, 1), null, D, e.id, h.rasterBoundsBuffer, h.quadTriangleIndexBuffer, h.rasterBoundsSegments, e.paint, y.zoom), M.destroy(), e.heatmapFbos.delete(P) - } - - function Po(h, e, n) { - var s, u; - const d = h.gl, - m = d.createTexture(); - d.bindTexture(d.TEXTURE_2D, m), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_WRAP_S, d.CLAMP_TO_EDGE), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_WRAP_T, d.CLAMP_TO_EDGE), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MIN_FILTER, d.LINEAR), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER, d.LINEAR); - const y = (s = h.HALF_FLOAT) !== null && s !== void 0 ? s : d.UNSIGNED_BYTE, - w = (u = h.RGBA16F) !== null && u !== void 0 ? u : d.RGBA; - d.texImage2D(d.TEXTURE_2D, 0, w, e, n, 0, d.RGBA, y, null); - const P = h.createFramebuffer(e, n, !1, !1); - return P.colorAttachment.set(m), P - } - - function Io(h, e) { - return e.colorRampTexture || (e.colorRampTexture = new o.T(h, e.colorRamp, h.gl.RGBA)), e.colorRampTexture - } - - function Mo(h, e, n, s, u) { - if (!n || !s || !s.imageAtlas) return; - const d = s.imageAtlas.patternPositions; - let m = d[n.to.toString()], - y = d[n.from.toString()]; - if (!m && y && (m = y), !y && m && (y = m), !m || !y) { - const w = u.getPaintProperty(e); - m = d[w], y = d[w] - } - m && y && h.setConstantPatternPositions(m, y) - } - - function ml(h, e, n, s, u, d, m, y) { - const w = h.context.gl, - P = "fill-pattern", - M = n.paint.get(P), - D = M && M.constantOr(1), - z = n.getCrossfadeParameters(); - let B, U, ee, J, re; - const se = h.transform, - de = n.paint.get("fill-translate"), - ue = n.paint.get("fill-translate-anchor"); - m ? (U = D && !n.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", B = w.LINES) : (U = D ? "fillPattern" : "fill", B = w.TRIANGLES); - const ge = M.constantOr(null); - for (const Te of s) { - const he = e.getTile(Te); - if (D && !he.patternsLoaded()) continue; - const De = he.getBucket(n); - if (!De) continue; - const He = De.programConfigurations.get(n.id), - je = h.useProgram(U, He), - qe = h.style.map.terrain && h.style.map.terrain.getTerrainData(Te); - D && (h.context.activeTexture.set(w.TEXTURE0), he.imageAtlasTexture.bind(w.LINEAR, w.CLAMP_TO_EDGE), He.updatePaintBuffers(z)), Mo(He, P, ge, he, n); - const $e = se.getProjectionData({ - overscaledTileID: Te, - applyGlobeMatrix: !y, - applyTerrainMatrix: !0 - }), - Rt = o.aD(se, he, de, ue); - if (m) { - J = De.indexBuffer2, re = De.segments2; - const yt = [w.drawingBufferWidth, w.drawingBufferHeight]; - ee = U === "fillOutlinePattern" && D ? vo(h, z, he, yt, Rt) : go(yt, Rt) - } else J = De.indexBuffer, re = De.segments, ee = D ? nl(h, z, he, Rt) : { - u_fill_translate: Rt - }; - const Nt = h.stencilModeForClipping(Te); - je.draw(h.context, B, u, Nt, d, wr.backCCW, ee, qe, $e, n.id, De.layoutVertexBuffer, J, re, n.paint, h.transform.zoom, He) - } - } - - function Rc(h, e, n, s, u, d, m, y) { - const w = h.context, - P = w.gl, - M = "fill-extrusion-pattern", - D = n.paint.get(M), - z = D.constantOr(1), - B = n.getCrossfadeParameters(), - U = n.paint.get("fill-extrusion-opacity"), - ee = D.constantOr(null), - J = h.transform; - for (const re of s) { - const se = e.getTile(re), - de = se.getBucket(n); - if (!de) continue; - const ue = h.style.map.terrain && h.style.map.terrain.getTerrainData(re), - ge = de.programConfigurations.get(n.id), - Te = h.useProgram(z ? "fillExtrusionPattern" : "fillExtrusion", ge); - z && (h.context.activeTexture.set(P.TEXTURE0), se.imageAtlasTexture.bind(P.LINEAR, P.CLAMP_TO_EDGE), ge.updatePaintBuffers(B)); - const he = J.getProjectionData({ - overscaledTileID: re, - applyGlobeMatrix: !y, - applyTerrainMatrix: !0 - }); - Mo(ge, M, ee, se, n); - const De = o.aD(J, se, n.paint.get("fill-extrusion-translate"), n.paint.get("fill-extrusion-translate-anchor")), - He = n.paint.get("fill-extrusion-vertical-gradient"), - je = z ? tp(h, He, U, De, re, B, se) : ya(h, He, U, De); - Te.draw(w, w.gl.TRIANGLES, u, d, m, wr.backCCW, je, ue, he, n.id, de.layoutVertexBuffer, de.indexBuffer, de.segments, n.paint, h.transform.zoom, ge, h.style.map.terrain && de.centroidVertexBuffer) - } - } - - function bs(h, e, n, s, u, d, m, y, w) { - var P; - const M = h.style.projection, - D = h.context, - z = h.transform, - B = D.gl, - U = [`#define NUM_ILLUMINATION_SOURCES ${n.paint.get("hillshade-highlight-color").values.length}`], - ee = h.useProgram("hillshade", null, !1, U), - J = !h.options.moving; - for (const re of s) { - const se = e.getTile(re), - de = se.fbo; - if (!de) continue; - const ue = M.getMeshFromTileID(D, re.canonical, y, !0, "raster"), - ge = (P = h.style.map.terrain) === null || P === void 0 ? void 0 : P.getTerrainData(re); - D.activeTexture.set(B.TEXTURE0), B.bindTexture(B.TEXTURE_2D, de.colorAttachment.get()); - const Te = z.getProjectionData({ - overscaledTileID: re, - aligned: J, - applyGlobeMatrix: !w, - applyTerrainMatrix: !0 - }); - ee.draw(D, B.TRIANGLES, d, u[re.overscaledZ], m, wr.backCCW, np(h, se, n), ge, Te, n.id, ue.vertexBuffer, ue.indexBuffer, ue.segments) - } - } - - function Bc(h, e, n, s, u, d, m, y, w) { - var P; - const M = h.style.projection, - D = h.context, - z = h.transform, - B = D.gl, - U = h.useProgram("colorRelief"), - ee = !h.options.moving; - let J = !0, - re = 0; - for (const se of s) { - const de = e.getTile(se), - ue = de.dem; - if (J) { - const je = B.getParameter(B.MAX_TEXTURE_SIZE), - { - elevationTexture: qe, - colorTexture: $e - } = n.getColorRampTextures(D, je, ue.getUnpackVector()); - D.activeTexture.set(B.TEXTURE1), qe.bind(B.NEAREST, B.CLAMP_TO_EDGE), D.activeTexture.set(B.TEXTURE4), $e.bind(B.LINEAR, B.CLAMP_TO_EDGE), J = !1, re = qe.size[0] - } - if (!ue || !ue.data) continue; - const ge = ue.stride, - Te = ue.getPixels(); - if (D.activeTexture.set(B.TEXTURE0), D.pixelStoreUnpackPremultiplyAlpha.set(!1), de.demTexture = de.demTexture || h.getTileTexture(ge), de.demTexture) { - const je = de.demTexture; - je.update(Te, { - premultiply: !1 - }), je.bind(B.LINEAR, B.CLAMP_TO_EDGE) - } else de.demTexture = new o.T(D, Te, B.RGBA, { - premultiply: !1 - }), de.demTexture.bind(B.LINEAR, B.CLAMP_TO_EDGE); - const he = M.getMeshFromTileID(D, se.canonical, y, !0, "raster"), - De = (P = h.style.map.terrain) === null || P === void 0 ? void 0 : P.getTerrainData(se), - He = z.getProjectionData({ - overscaledTileID: se, - aligned: ee, - applyGlobeMatrix: !w, - applyTerrainMatrix: !0 - }); - U.draw(D, B.TRIANGLES, d, u[se.overscaledZ], m, wr.backCCW, xh(n, de.dem, re), De, He, n.id, he.vertexBuffer, he.indexBuffer, he.segments) - } - } - const _l = [new o.P(0, 0), new o.P(o.$, 0), new o.P(o.$, o.$), new o.P(0, o.$)]; - - function ws(h, e, n, s, u, d, m, y, w = !1, P = !1) { - const M = s[s.length - 1].overscaledZ, - D = h.context, - z = D.gl, - B = h.useProgram("raster"), - U = h.transform, - ee = h.style.projection, - J = h.colorModeForRenderPass(), - re = !h.options.moving; - for (const se of s) { - const de = h.getDepthModeForSublayer(se.overscaledZ - M, n.paint.get("raster-opacity") === 1 ? Vr.ReadWrite : Vr.ReadOnly, z.LESS), - ue = e.getTile(se); - ue.registerFadeDuration(n.paint.get("raster-fade-duration")); - const ge = e.findLoadedParent(se, 0), - Te = e.findLoadedSibling(se), - he = Fc(ue, ge || Te || null, e, n, h.transform, h.style.map.terrain); - let De, He; - const je = n.paint.get("raster-resampling") === "nearest" ? z.NEAREST : z.LINEAR; - D.activeTexture.set(z.TEXTURE0), ue.texture.bind(je, z.CLAMP_TO_EDGE, z.LINEAR_MIPMAP_NEAREST), D.activeTexture.set(z.TEXTURE1), ge ? (ge.texture.bind(je, z.CLAMP_TO_EDGE, z.LINEAR_MIPMAP_NEAREST), De = Math.pow(2, ge.tileID.overscaledZ - ue.tileID.overscaledZ), He = [ue.tileID.canonical.x * De % 1, ue.tileID.canonical.y * De % 1]) : ue.texture.bind(je, z.CLAMP_TO_EDGE, z.LINEAR_MIPMAP_NEAREST), ue.texture.useMipmap && D.extTextureFilterAnisotropic && h.transform.pitch > 20 && z.texParameterf(z.TEXTURE_2D, D.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, D.extTextureFilterAnisotropicMax); - const qe = h.style.map.terrain && h.style.map.terrain.getTerrainData(se), - $e = U.getProjectionData({ - overscaledTileID: se, - aligned: re, - applyGlobeMatrix: !P, - applyTerrainMatrix: !0 - }), - Rt = yo(He || [0, 0], De || 1, he, n, y), - Nt = ee.getMeshFromTileID(D, se.canonical, d, m, "raster"); - B.draw(D, z.TRIANGLES, de, u ? u[se.overscaledZ] : hi.disabled, J, w ? wr.frontCCW : wr.backCCW, Rt, qe, $e, n.id, Nt.vertexBuffer, Nt.indexBuffer, Nt.segments) - } - } - - function Fc(h, e, n, s, u, d) { - const m = s.paint.get("raster-fade-duration"); - if (!d && m > 0) { - const y = ye.now(), - w = (y - h.timeAdded) / m, - P = e ? (y - e.timeAdded) / m : -1, - M = n.getSource(), - D = Ot(u, { - tileSize: M.tileSize, - roundZoom: M.roundZoom - }), - z = !e || Math.abs(e.tileID.overscaledZ - D) > Math.abs(h.tileID.overscaledZ - D), - B = z && h.refreshedUponExpiration ? 1 : o.ah(z ? w : 1 - P, 0, 1); - return h.refreshedUponExpiration && w >= 1 && (h.refreshedUponExpiration = !1), e ? { - opacity: 1, - mix: 1 - B - } : { - opacity: B, - mix: 0 - } - } - return { - opacity: 1, - mix: 0 - } - } - const Oh = new o.bf(1, 0, 0, 1), - Nh = new o.bf(0, 1, 0, 1), - gl = new o.bf(0, 0, 1, 1), - Oc = new o.bf(1, 0, 1, 1), - mp = new o.bf(0, 1, 1, 1); - - function Nc(h, e, n, s) { - Oa(h, 0, e + n / 2, h.transform.width, n, s) - } - - function Vi(h, e, n, s) { - Oa(h, e - n / 2, 0, n, h.transform.height, s) - } - - function Oa(h, e, n, s, u, d) { - const m = h.context, - y = m.gl; - y.enable(y.SCISSOR_TEST), y.scissor(e * h.pixelRatio, n * h.pixelRatio, s * h.pixelRatio, u * h.pixelRatio), m.clear({ - color: d - }), y.disable(y.SCISSOR_TEST) - } - - function ua(h, e, n) { - const s = h.context, - u = s.gl, - d = h.useProgram("debug"), - m = Vr.disabled, - y = hi.disabled, - w = h.colorModeForRenderPass(), - P = "$debug", - M = h.style.map.terrain && h.style.map.terrain.getTerrainData(n); - s.activeTexture.set(u.TEXTURE0); - const D = e.getTileByID(n.key).latestRawTileData, - z = Math.floor((D && D.byteLength || 0) / 1024), - B = e.getTile(n).tileSize, - U = 512 / Math.min(B, 512) * (n.overscaledZ / h.transform.zoom) * .5; - let ee = n.canonical.toString(); - n.overscaledZ !== n.canonical.z && (ee += ` => ${n.overscaledZ}`), (function(re, se) { - re.initDebugOverlayCanvas(); - const de = re.debugOverlayCanvas, - ue = re.context.gl, - ge = re.debugOverlayCanvas.getContext("2d"); - ge.clearRect(0, 0, de.width, de.height), ge.shadowColor = "white", ge.shadowBlur = 2, ge.lineWidth = 1.5, ge.strokeStyle = "white", ge.textBaseline = "top", ge.font = "bold 36px Open Sans, sans-serif", ge.fillText(se, 5, 5), ge.strokeText(se, 5, 5), re.debugOverlayTexture.update(de), re.debugOverlayTexture.bind(ue.LINEAR, ue.CLAMP_TO_EDGE) - })(h, `${ee} ${z}kB`); - const J = h.transform.getProjectionData({ - overscaledTileID: n, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }); - d.draw(s, u.TRIANGLES, m, y, Ti.alphaBlended, wr.disabled, _s(o.bf.transparent, U), null, J, P, h.debugBuffer, h.quadTriangleIndexBuffer, h.debugSegments), d.draw(s, u.LINE_STRIP, m, y, w, wr.disabled, _s(o.bf.red), M, J, P, h.debugBuffer, h.tileBorderIndexBuffer, h.debugSegments) - } - - function vl(h, e, n, s) { - const { - isRenderingGlobe: u - } = s, d = h.context, m = d.gl, y = h.transform, w = h.colorModeForRenderPass(), P = h.getDepthModeFor3D(), M = h.useProgram("terrain"); - d.bindFramebuffer.set(null), d.viewport.set([0, 0, h.width, h.height]); - for (const D of n) { - const z = e.getTerrainMesh(D.tileID), - B = h.renderToTexture.getTexture(D), - U = e.getTerrainData(D.tileID); - d.activeTexture.set(m.TEXTURE0), m.bindTexture(m.TEXTURE_2D, B.texture); - const ee = e.getMeshFrameDelta(y.zoom), - J = y.calculateFogMatrix(D.tileID.toUnwrapped()), - re = rl(ee, J, h.style.sky, y.pitch, u), - se = y.getProjectionData({ - overscaledTileID: D.tileID, - applyTerrainMatrix: !1, - applyGlobeMatrix: !0 - }); - M.draw(d, m.TRIANGLES, P, hi.disabled, w, wr.backCCW, re, U, se, "terrain", z.vertexBuffer, z.indexBuffer, z.segments) - } - } - - function Ao(h, e) { - if (!e.mesh) { - const n = new o.aL; - n.emplaceBack(-1, -1), n.emplaceBack(1, -1), n.emplaceBack(1, 1), n.emplaceBack(-1, 1); - const s = new o.aN; - s.emplaceBack(0, 1, 2), s.emplaceBack(0, 2, 3), e.mesh = new Ri(h.createVertexBuffer(n, ui.members), h.createIndexBuffer(s), o.aM.simpleSegment(0, 0, n.length, s.length)) - } - return e.mesh - } - class jh { - constructor(e, n) { - this.context = new Dh(e), this.transform = n, this._tileTextures = {}, this.terrainFacilitator = { - dirty: !0, - matrix: o.ag(new Float64Array(16)), - renderTime: 0 - }, this.setup(), this.numSublayers = Pt.maxUnderzooming + Pt.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new gi - } - resize(e, n, s) { - if (this.width = Math.floor(e * s), this.height = Math.floor(n * s), this.pixelRatio = s, this.context.viewport.set([0, 0, this.width, this.height]), this.style) - for (const u of this.style._order) this.style._layers[u].resize() - } - setup() { - const e = this.context, - n = new o.aL; - n.emplaceBack(0, 0), n.emplaceBack(o.$, 0), n.emplaceBack(0, o.$), n.emplaceBack(o.$, o.$), this.tileExtentBuffer = e.createVertexBuffer(n, ui.members), this.tileExtentSegments = o.aM.simpleSegment(0, 0, 4, 2); - const s = new o.aL; - s.emplaceBack(0, 0), s.emplaceBack(o.$, 0), s.emplaceBack(0, o.$), s.emplaceBack(o.$, o.$), this.debugBuffer = e.createVertexBuffer(s, ui.members), this.debugSegments = o.aM.simpleSegment(0, 0, 4, 5); - const u = new o.c6; - u.emplaceBack(0, 0, 0, 0), u.emplaceBack(o.$, 0, o.$, 0), u.emplaceBack(0, o.$, 0, o.$), u.emplaceBack(o.$, o.$, o.$, o.$), this.rasterBoundsBuffer = e.createVertexBuffer(u, Qd.members), this.rasterBoundsSegments = o.aM.simpleSegment(0, 0, 4, 2); - const d = new o.aL; - d.emplaceBack(0, 0), d.emplaceBack(o.$, 0), d.emplaceBack(0, o.$), d.emplaceBack(o.$, o.$), this.rasterBoundsBufferPosOnly = e.createVertexBuffer(d, ui.members), this.rasterBoundsSegmentsPosOnly = o.aM.simpleSegment(0, 0, 4, 5); - const m = new o.aL; - m.emplaceBack(0, 0), m.emplaceBack(1, 0), m.emplaceBack(0, 1), m.emplaceBack(1, 1), this.viewportBuffer = e.createVertexBuffer(m, ui.members), this.viewportSegments = o.aM.simpleSegment(0, 0, 4, 2); - const y = new o.c7; - y.emplaceBack(0), y.emplaceBack(1), y.emplaceBack(3), y.emplaceBack(2), y.emplaceBack(0), this.tileBorderIndexBuffer = e.createIndexBuffer(y); - const w = new o.aN; - w.emplaceBack(1, 0, 2), w.emplaceBack(1, 2, 3), this.quadTriangleIndexBuffer = e.createIndexBuffer(w); - const P = this.context.gl; - this.stencilClearMode = new hi({ - func: P.ALWAYS, - mask: 0 - }, 0, 255, P.ZERO, P.ZERO, P.ZERO), this.tileExtentMesh = new Ri(this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments) - } - clearStencil() { - const e = this.context, - n = e.gl; - this.nextStencilID = 1, this.currentStencilSource = void 0; - const s = o.L(); - o.bY(s, 0, this.width, this.height, 0, 0, 1), o.N(s, s, [n.drawingBufferWidth, n.drawingBufferHeight, 0]); - const u = { - mainMatrix: s, - tileMercatorCoords: [0, 0, 1, 1], - clippingPlane: [0, 0, 0, 0], - projectionTransition: 0, - fallbackMatrix: s - }; - this.useProgram("clippingMask", null, !0).draw(e, n.TRIANGLES, Vr.disabled, this.stencilClearMode, Ti.disabled, wr.disabled, null, null, u, "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments) - } - _renderTileClippingMasks(e, n, s) { - if (this.currentStencilSource === e.source || !e.isTileClipped() || !n || !n.length) return; - this.currentStencilSource = e.source, this.nextStencilID + n.length > 256 && this.clearStencil(); - const u = this.context; - u.setColorMode(Ti.disabled), u.setDepthMode(Vr.disabled); - const d = {}; - for (const m of n) d[m.key] = this.nextStencilID++; - this._renderTileMasks(d, n, s, !0), this._renderTileMasks(d, n, s, !1), this._tileClippingMaskIDs = d - } - _renderTileMasks(e, n, s, u) { - const d = this.context, - m = d.gl, - y = this.style.projection, - w = this.transform, - P = this.useProgram("clippingMask"); - for (const M of n) { - const D = e[M.key], - z = this.style.map.terrain && this.style.map.terrain.getTerrainData(M), - B = y.getMeshFromTileID(this.context, M.canonical, u, !0, "stencil"), - U = w.getProjectionData({ - overscaledTileID: M, - applyGlobeMatrix: !s, - applyTerrainMatrix: !0 - }); - P.draw(d, m.TRIANGLES, Vr.disabled, new hi({ - func: m.ALWAYS, - mask: 0 - }, D, 255, m.KEEP, m.KEEP, m.REPLACE), Ti.disabled, s ? wr.disabled : wr.backCCW, null, z, U, "$clipping", B.vertexBuffer, B.indexBuffer, B.segments) - } - } - _renderTilesDepthBuffer() { - const e = this.context, - n = e.gl, - s = this.style.projection, - u = this.transform, - d = this.useProgram("depth"), - m = this.getDepthModeFor3D(), - y = xe(u, { - tileSize: u.tileSize - }); - for (const w of y) { - const P = this.style.map.terrain && this.style.map.terrain.getTerrainData(w), - M = s.getMeshFromTileID(this.context, w.canonical, !0, !0, "raster"), - D = u.getProjectionData({ - overscaledTileID: w, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }); - d.draw(e, n.TRIANGLES, m, hi.disabled, Ti.disabled, wr.backCCW, null, P, D, "$clipping", M.vertexBuffer, M.indexBuffer, M.segments) - } - } - stencilModeFor3D() { - this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil(); - const e = this.nextStencilID++, - n = this.context.gl; - return new hi({ - func: n.NOTEQUAL, - mask: 255 - }, e, 255, n.KEEP, n.KEEP, n.REPLACE) - } - stencilModeForClipping(e) { - const n = this.context.gl; - return new hi({ - func: n.EQUAL, - mask: 255 - }, this._tileClippingMaskIDs[e.key], 0, n.KEEP, n.KEEP, n.REPLACE) - } - getStencilConfigForOverlapAndUpdateStencilID(e) { - const n = this.context.gl, - s = e.sort(((m, y) => y.overscaledZ - m.overscaledZ)), - u = s[s.length - 1].overscaledZ, - d = s[0].overscaledZ - u + 1; - if (d > 1) { - this.currentStencilSource = void 0, this.nextStencilID + d > 256 && this.clearStencil(); - const m = {}; - for (let y = 0; y < d; y++) m[y + u] = new hi({ - func: n.GEQUAL, - mask: 255 - }, y + this.nextStencilID, 255, n.KEEP, n.KEEP, n.REPLACE); - return this.nextStencilID += d, [m, s] - } - return [{ - [u]: hi.disabled - }, s] - } - stencilConfigForOverlapTwoPass(e) { - const n = this.context.gl, - s = e.sort(((m, y) => y.overscaledZ - m.overscaledZ)), - u = s[s.length - 1].overscaledZ, - d = s[0].overscaledZ - u + 1; - if (this.clearStencil(), d > 1) { - const m = {}, - y = {}; - for (let w = 0; w < d; w++) m[w + u] = new hi({ - func: n.GREATER, - mask: 255 - }, d + 1 + w, 255, n.KEEP, n.KEEP, n.REPLACE), y[w + u] = new hi({ - func: n.GREATER, - mask: 255 - }, 1 + w, 255, n.KEEP, n.KEEP, n.REPLACE); - return this.nextStencilID = 2 * d + 1, [m, y, s] - } - return this.nextStencilID = 3, [{ - [u]: new hi({ - func: n.GREATER, - mask: 255 - }, 2, 255, n.KEEP, n.KEEP, n.REPLACE) - }, { - [u]: new hi({ - func: n.GREATER, - mask: 255 - }, 1, 255, n.KEEP, n.KEEP, n.REPLACE) - }, s] - } - colorModeForRenderPass() { - const e = this.context.gl; - return this._showOverdrawInspector ? new Ti([e.CONSTANT_COLOR, e.ONE], new o.bf(.125, .125, .125, 0), [!0, !0, !0, !0]) : this.renderPass === "opaque" ? Ti.unblended : Ti.alphaBlended - } - getDepthModeForSublayer(e, n, s) { - if (!this.opaquePassEnabledForLayer()) return Vr.disabled; - const u = 1 - ((1 + this.currentLayer) * this.numSublayers + e) * this.depthEpsilon; - return new Vr(s || this.context.gl.LEQUAL, n, [u, u]) - } - getDepthModeFor3D() { - return new Vr(this.context.gl.LEQUAL, Vr.ReadWrite, this.depthRangeFor3D) - } - opaquePassEnabledForLayer() { - return this.currentLayer < this.opaquePassCutoff - } - render(e, n) { - var s, u; - this.style = e, this.options = n, this.lineAtlas = e.lineAtlas, this.imageManager = e.imageManager, this.glyphManager = e.glyphManager, this.symbolFadeChange = e.placement.symbolFadeChange(ye.now()), this.imageManager.beginFrame(); - const d = this.style._order, - m = this.style.sourceCaches, - y = {}, - w = {}, - P = {}, - M = { - isRenderingToTexture: !1, - isRenderingGlobe: ((s = e.projection) === null || s === void 0 ? void 0 : s.transitionState) > 0 - }; - for (const z in m) { - const B = m[z]; - B.used && B.prepare(this.context), y[z] = B.getVisibleCoordinates(!1), w[z] = y[z].slice().reverse(), P[z] = B.getVisibleCoordinates(!0).reverse() - } - this.opaquePassCutoff = 1 / 0; - for (let z = 0; z < d.length; z++) - if (this.style._layers[d[z]].is3D()) { - this.opaquePassCutoff = z; - break - } this.maybeDrawDepthAndCoords(!1), this.renderToTexture && (this.renderToTexture.prepareForRender(this.style, this.transform.zoom), this.opaquePassCutoff = 0), this.renderPass = "offscreen"; - for (const z of d) { - const B = this.style._layers[z]; - if (!B.hasOffscreenPass() || B.isHidden(this.transform.zoom)) continue; - const U = w[B.source]; - (B.type === "custom" || U.length) && this.renderLayer(this, m[B.source], B, U, M) - } - if ((u = this.style.projection) === null || u === void 0 || u.updateGPUdependent({ - context: this.context, - useProgram: z => this.useProgram(z) - }), this.context.viewport.set([0, 0, this.width, this.height]), this.context.bindFramebuffer.set(null), this.context.clear({ - color: n.showOverdrawInspector ? o.bf.black : o.bf.transparent, - depth: 1 - }), this.clearStencil(), this.style.sky && (function(z, B) { - const U = z.context, - ee = U.gl, - J = ((Te, he, De) => { - const He = Math.cos(he.rollInRadians), - je = Math.sin(he.rollInRadians), - qe = le(he), - $e = he.getProjectionData({ - overscaledTileID: null, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }).projectionTransition; - return { - u_sky_color: Te.properties.get("sky-color"), - u_horizon_color: Te.properties.get("horizon-color"), - u_horizon: [(he.width / 2 - qe * je) * De, (he.height / 2 + qe * He) * De], - u_horizon_normal: [-je, He], - u_sky_horizon_blend: Te.properties.get("sky-horizon-blend") * he.height / 2 * De, - u_sky_blend: $e - } - })(B, z.style.map.transform, z.pixelRatio), - re = new Vr(ee.LEQUAL, Vr.ReadWrite, [0, 1]), - se = hi.disabled, - de = z.colorModeForRenderPass(), - ue = z.useProgram("sky"), - ge = Ao(U, B); - ue.draw(U, ee.TRIANGLES, re, se, de, wr.disabled, J, null, void 0, "sky", ge.vertexBuffer, ge.indexBuffer, ge.segments) - })(this, this.style.sky), this._showOverdrawInspector = n.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (e._order.length + 2) * this.numSublayers * this.depthEpsilon], !this.renderToTexture) - for (this.renderPass = "opaque", this.currentLayer = d.length - 1; this.currentLayer >= 0; this.currentLayer--) { - const z = this.style._layers[d[this.currentLayer]], - B = m[z.source], - U = y[z.source]; - this._renderTileClippingMasks(z, U, !1), this.renderLayer(this, B, z, U, M) - } - this.renderPass = "translucent"; - let D = !1; - for (this.currentLayer = 0; this.currentLayer < d.length; this.currentLayer++) { - const z = this.style._layers[d[this.currentLayer]], - B = m[z.source]; - if (this.renderToTexture && this.renderToTexture.renderLayer(z, M)) continue; - this.opaquePassEnabledForLayer() || D || (D = !0, M.isRenderingGlobe && !this.style.map.terrain && this._renderTilesDepthBuffer()); - const U = (z.type === "symbol" ? P : w)[z.source]; - this._renderTileClippingMasks(z, y[z.source], !!this.renderToTexture), this.renderLayer(this, B, z, U, M) - } - if (M.isRenderingGlobe && (function(z, B, U) { - const ee = z.context, - J = ee.gl, - re = z.useProgram("atmosphere"), - se = new Vr(J.LEQUAL, Vr.ReadOnly, [0, 1]), - de = z.transform, - ue = (function($e, Rt) { - const Nt = $e.properties.get("position"), - yt = [-Nt.x, -Nt.y, -Nt.z], - sr = o.ag(new Float64Array(16)); - return $e.properties.get("anchor") === "map" && (o.b6(sr, sr, Rt.rollInRadians), o.b7(sr, sr, -Rt.pitchInRadians), o.b6(sr, sr, Rt.bearingInRadians), o.b7(sr, sr, Rt.center.lat * Math.PI / 180), o.bz(sr, sr, -Rt.center.lng * Math.PI / 180)), o.c5(yt, yt, sr), yt - })(U, z.transform), - ge = de.getProjectionData({ - overscaledTileID: null, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }), - Te = B.properties.get("atmosphere-blend") * ge.projectionTransition; - if (Te === 0) return; - const he = Bs(de.worldSize, de.center.lat), - De = de.inverseProjectionMatrix, - He = new Float64Array(4); - He[3] = 1, o.aw(He, He, de.modelViewProjectionMatrix), He[0] /= He[3], He[1] /= He[3], He[2] /= He[3], He[3] = 1, o.aw(He, He, De), He[0] /= He[3], He[1] /= He[3], He[2] /= He[3], He[3] = 1; - const je = (($e, Rt, Nt, yt, sr) => ({ - u_sun_pos: $e, - u_atmosphere_blend: Rt, - u_globe_position: Nt, - u_globe_radius: yt, - u_inv_proj_matrix: sr - }))(ue, Te, [He[0], He[1], He[2]], he, De), - qe = Ao(ee, B); - re.draw(ee, J.TRIANGLES, se, hi.disabled, Ti.alphaBlended, wr.disabled, je, null, null, "atmosphere", qe.vertexBuffer, qe.indexBuffer, qe.segments) - })(this, this.style.sky, this.style.light), this.options.showTileBoundaries) { - const z = (function(B, U) { - let ee = null; - const J = Object.values(B._layers).flatMap((ue => ue.source && !ue.isHidden(U) ? [B.sourceCaches[ue.source]] : [])), - re = J.filter((ue => ue.getSource().type === "vector")), - se = J.filter((ue => ue.getSource().type !== "vector")), - de = ue => { - (!ee || ee.getSource().maxzoom < ue.getSource().maxzoom) && (ee = ue) - }; - return re.forEach((ue => de(ue))), ee || se.forEach((ue => de(ue))), ee - })(this.style, this.transform.zoom); - z && (function(B, U, ee) { - for (let J = 0; J < ee.length; J++) ua(B, U, ee[J]) - })(this, z, z.getVisibleCoordinates()) - } - this.options.showPadding && (function(z) { - const B = z.transform.padding; - Nc(z, z.transform.height - (B.top || 0), 3, Oh), Nc(z, B.bottom || 0, 3, Nh), Vi(z, B.left || 0, 3, gl), Vi(z, z.transform.width - (B.right || 0), 3, Oc); - const U = z.transform.centerPoint; - (function(ee, J, re, se) { - Oa(ee, J - 1, re - 10, 2, 20, se), Oa(ee, J - 10, re - 1, 20, 2, se) - })(z, U.x, z.transform.height - U.y, mp) - })(this), this.context.setDefault() - } - maybeDrawDepthAndCoords(e) { - if (!this.style || !this.style.map || !this.style.map.terrain) return; - const n = this.terrainFacilitator.matrix, - s = this.transform.modelViewProjectionMatrix; - let u = this.terrainFacilitator.dirty; - u || (u = e ? !o.c8(n, s) : !o.c9(n, s)), u || (u = this.style.map.terrain.sourceCache.anyTilesAfterTime(this.terrainFacilitator.renderTime)), u && (o.ca(n, s), this.terrainFacilitator.renderTime = Date.now(), this.terrainFacilitator.dirty = !1, (function(d, m) { - const y = d.context, - w = y.gl, - P = d.transform, - M = Ti.unblended, - D = new Vr(w.LEQUAL, Vr.ReadWrite, [0, 1]), - z = m.sourceCache.getRenderableTiles(), - B = d.useProgram("terrainDepth"); - y.bindFramebuffer.set(m.getFramebuffer("depth").framebuffer), y.viewport.set([0, 0, d.width / devicePixelRatio, d.height / devicePixelRatio]), y.clear({ - color: o.bf.transparent, - depth: 1 - }); - for (const U of z) { - const ee = m.getTerrainMesh(U.tileID), - J = m.getTerrainData(U.tileID), - re = P.getProjectionData({ - overscaledTileID: U.tileID, - applyTerrainMatrix: !1, - applyGlobeMatrix: !0 - }), - se = { - u_ele_delta: m.getMeshFrameDelta(P.zoom) - }; - B.draw(y, w.TRIANGLES, D, hi.disabled, M, wr.backCCW, se, J, re, "terrain", ee.vertexBuffer, ee.indexBuffer, ee.segments) - } - y.bindFramebuffer.set(null), y.viewport.set([0, 0, d.width, d.height]) - })(this, this.style.map.terrain), (function(d, m) { - const y = d.context, - w = y.gl, - P = d.transform, - M = Ti.unblended, - D = new Vr(w.LEQUAL, Vr.ReadWrite, [0, 1]), - z = m.getCoordsTexture(), - B = m.sourceCache.getRenderableTiles(), - U = d.useProgram("terrainCoords"); - y.bindFramebuffer.set(m.getFramebuffer("coords").framebuffer), y.viewport.set([0, 0, d.width / devicePixelRatio, d.height / devicePixelRatio]), y.clear({ - color: o.bf.transparent, - depth: 1 - }), m.coordsIndex = []; - for (const ee of B) { - const J = m.getTerrainMesh(ee.tileID), - re = m.getTerrainData(ee.tileID); - y.activeTexture.set(w.TEXTURE0), w.bindTexture(w.TEXTURE_2D, z.texture); - const se = { - u_terrain_coords_id: (255 - m.coordsIndex.length) / 255, - u_texture: 0, - u_ele_delta: m.getMeshFrameDelta(P.zoom) - }, - de = P.getProjectionData({ - overscaledTileID: ee.tileID, - applyTerrainMatrix: !1, - applyGlobeMatrix: !0 - }); - U.draw(y, w.TRIANGLES, D, hi.disabled, M, wr.backCCW, se, re, de, "terrain", J.vertexBuffer, J.indexBuffer, J.segments), m.coordsIndex.push(ee.tileID.key) - } - y.bindFramebuffer.set(null), y.viewport.set([0, 0, d.width, d.height]) - })(this, this.style.map.terrain)) - } - renderLayer(e, n, s, u, d) { - s.isHidden(this.transform.zoom) || (s.type === "background" || s.type === "custom" || (u || []).length) && (this.id = s.id, o.cb(s) ? (function(m, y, w, P, M, D) { - if (m.renderPass !== "translucent") return; - const { - isRenderingToTexture: z - } = D, B = hi.disabled, U = m.colorModeForRenderPass(); - (w._unevaluatedLayout.hasValue("text-variable-anchor") || w._unevaluatedLayout.hasValue("text-variable-anchor-offset")) && (function(ee, J, re, se, de, ue, ge, Te, he) { - const De = J.transform, - He = J.style.map.terrain, - je = de === "map", - qe = ue === "map"; - for (const $e of ee) { - const Rt = se.getTile($e), - Nt = Rt.getBucket(re); - if (!Nt || !Nt.text || !Nt.text.segments.get().length) continue; - const yt = o.an(Nt.textSizeData, De.zoom), - sr = o.aC(Rt, 1, J.transform.zoom), - Xr = $r(je, J.transform, sr), - xi = re.layout.get("icon-text-fit") !== "none" && Nt.hasIconData(); - if (yt) { - const ki = Math.pow(2, De.zoom - Rt.tileID.overscaledZ), - Pi = He ? (ji, Ui) => He.getElevation($e, ji, Ui) : null; - Lc(Nt, je, qe, he, De, Xr, ki, yt, xi, o.aD(De, Rt, ge, Te), $e.toUnwrapped(), Pi) - } - } - })(P, m, w, y, w.layout.get("text-rotation-alignment"), w.layout.get("text-pitch-alignment"), w.paint.get("text-translate"), w.paint.get("text-translate-anchor"), M), w.paint.get("icon-opacity").constantOr(1) !== 0 && Co(m, y, w, P, !1, w.paint.get("icon-translate"), w.paint.get("icon-translate-anchor"), w.layout.get("icon-rotation-alignment"), w.layout.get("icon-pitch-alignment"), w.layout.get("icon-keep-upright"), B, U, z), w.paint.get("text-opacity").constantOr(1) !== 0 && Co(m, y, w, P, !0, w.paint.get("text-translate"), w.paint.get("text-translate-anchor"), w.layout.get("text-rotation-alignment"), w.layout.get("text-pitch-alignment"), w.layout.get("text-keep-upright"), B, U, z), y.map.showCollisionBoxes && (Rh(m, y, w, P, !0), Rh(m, y, w, P, !1)) - })(e, n, s, u, this.style.placement.variableOffsets, d) : o.cc(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent") return; - const { - isRenderingToTexture: D - } = M, z = w.paint.get("circle-opacity"), B = w.paint.get("circle-stroke-width"), U = w.paint.get("circle-stroke-opacity"), ee = !w.layout.get("circle-sort-key").isConstant(); - if (z.constantOr(1) === 0 && (B.constantOr(1) === 0 || U.constantOr(1) === 0)) return; - const J = m.context, - re = J.gl, - se = m.transform, - de = m.getDepthModeForSublayer(0, Vr.ReadOnly), - ue = hi.disabled, - ge = m.colorModeForRenderPass(), - Te = [], - he = se.getCircleRadiusCorrection(); - for (let De = 0; De < P.length; De++) { - const He = P[De], - je = y.getTile(He), - qe = je.getBucket(w); - if (!qe) continue; - const $e = w.paint.get("circle-translate"), - Rt = w.paint.get("circle-translate-anchor"), - Nt = o.aD(se, je, $e, Rt), - yt = qe.programConfigurations.get(w.id), - sr = m.useProgram("circle", yt), - Xr = qe.layoutVertexBuffer, - xi = qe.indexBuffer, - ki = m.style.map.terrain && m.style.map.terrain.getTerrainData(He), - Pi = { - programConfiguration: yt, - program: sr, - layoutVertexBuffer: Xr, - indexBuffer: xi, - uniformValues: rp(m, je, w, Nt, he), - terrainData: ki, - projectionData: se.getProjectionData({ - overscaledTileID: He, - applyGlobeMatrix: !D, - applyTerrainMatrix: !0 - }) - }; - if (ee) { - const ji = qe.segments.get(); - for (const Ui of ji) Te.push({ - segments: new o.aM([Ui]), - sortKey: Ui.sortKey, - state: Pi - }) - } else Te.push({ - segments: qe.segments, - sortKey: 0, - state: Pi - }) - } - ee && Te.sort(((De, He) => De.sortKey - He.sortKey)); - for (const De of Te) { - const { - programConfiguration: He, - program: je, - layoutVertexBuffer: qe, - indexBuffer: $e, - uniformValues: Rt, - terrainData: Nt, - projectionData: yt - } = De.state; - je.draw(J, re.TRIANGLES, de, ue, ge, wr.backCCW, Rt, Nt, yt, w.id, qe, $e, De.segments, w.paint, m.transform.zoom, He) - } - })(e, n, s, u, d) : o.cd(s) ? (function(m, y, w, P, M) { - if (w.paint.get("heatmap-opacity") === 0) return; - const D = m.context, - { - isRenderingToTexture: z, - isRenderingGlobe: B - } = M; - if (m.style.map.terrain) { - for (const U of P) { - const ee = y.getTile(U); - y.hasRenderableParent(U) || (m.renderPass === "offscreen" ? Dc(m, ee, w, U, B) : m.renderPass === "translucent" && Fh(m, w, U, z, B)) - } - D.viewport.set([0, 0, m.width, m.height]) - } else m.renderPass === "offscreen" ? (function(U, ee, J, re) { - const se = U.context, - de = se.gl, - ue = U.transform, - ge = hi.disabled, - Te = new Ti([de.ONE, de.ONE], o.bf.transparent, [!0, !0, !0, !0]); - (function(he, De, He) { - const je = he.gl; - he.activeTexture.set(je.TEXTURE1), he.viewport.set([0, 0, De.width / 4, De.height / 4]); - let qe = He.heatmapFbos.get(o.c2); - qe ? (je.bindTexture(je.TEXTURE_2D, qe.colorAttachment.get()), he.bindFramebuffer.set(qe.framebuffer)) : (qe = Po(he, De.width / 4, De.height / 4), He.heatmapFbos.set(o.c2, qe)) - })(se, U, J), se.clear({ - color: o.bf.transparent - }); - for (let he = 0; he < re.length; he++) { - const De = re[he]; - if (ee.hasRenderableParent(De)) continue; - const He = ee.getTile(De), - je = He.getBucket(J); - if (!je) continue; - const qe = je.programConfigurations.get(J.id), - $e = U.useProgram("heatmap", qe), - Rt = ue.getProjectionData({ - overscaledTileID: De, - applyGlobeMatrix: !0, - applyTerrainMatrix: !1 - }), - Nt = ue.getCircleRadiusCorrection(); - $e.draw(se, de.TRIANGLES, Vr.disabled, ge, Te, wr.backCCW, vh(He, ue.zoom, J.paint.get("heatmap-intensity"), Nt), null, Rt, J.id, je.layoutVertexBuffer, je.indexBuffer, je.segments, J.paint, ue.zoom, qe) - } - se.viewport.set([0, 0, U.width, U.height]) - })(m, y, w, P) : m.renderPass === "translucent" && (function(U, ee) { - const J = U.context, - re = J.gl; - J.setColorMode(U.colorModeForRenderPass()); - const se = ee.heatmapFbos.get(o.c2); - se && (J.activeTexture.set(re.TEXTURE0), re.bindTexture(re.TEXTURE_2D, se.colorAttachment.get()), J.activeTexture.set(re.TEXTURE1), Io(J, ee).bind(re.LINEAR, re.CLAMP_TO_EDGE), U.useProgram("heatmapTexture").draw(J, re.TRIANGLES, Vr.disabled, hi.disabled, U.colorModeForRenderPass(), wr.disabled, xc(U, ee, 0, 1), null, null, ee.id, U.viewportBuffer, U.quadTriangleIndexBuffer, U.viewportSegments, ee.paint, U.transform.zoom)) - })(m, w) - })(e, n, s, u, d) : o.ce(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent") return; - const { - isRenderingToTexture: D - } = M, z = w.paint.get("line-opacity"), B = w.paint.get("line-width"); - if (z.constantOr(1) === 0 || B.constantOr(1) === 0) return; - const U = m.getDepthModeForSublayer(0, Vr.ReadOnly), - ee = m.colorModeForRenderPass(), - J = w.paint.get("line-dasharray"), - re = w.paint.get("line-pattern"), - se = re.constantOr(1), - de = w.paint.get("line-gradient"), - ue = w.getCrossfadeParameters(), - ge = se ? "linePattern" : J ? "lineSDF" : de ? "lineGradient" : "line", - Te = m.context, - he = Te.gl, - De = m.transform; - let He = !0; - for (const je of P) { - const qe = y.getTile(je); - if (se && !qe.patternsLoaded()) continue; - const $e = qe.getBucket(w); - if (!$e) continue; - const Rt = $e.programConfigurations.get(w.id), - Nt = m.context.program.get(), - yt = m.useProgram(ge, Rt), - sr = He || yt.program !== Nt, - Xr = m.style.map.terrain && m.style.map.terrain.getTerrainData(je), - xi = re.constantOr(null); - if (xi && qe.imageAtlas) { - const Wr = qe.imageAtlas, - Ei = Wr.patternPositions[xi.to.toString()], - Qi = Wr.patternPositions[xi.from.toString()]; - Ei && Qi && Rt.setConstantPatternPositions(Ei, Qi) - } - const ki = De.getProjectionData({ - overscaledTileID: je, - applyGlobeMatrix: !D, - applyTerrainMatrix: !0 - }), - Pi = De.getPixelScale(), - ji = se ? wh(m, qe, w, Pi, ue) : J ? gs(m, qe, w, Pi, J, ue) : de ? bh(m, qe, w, Pi, $e.lineClipsArray.length) : sl(m, qe, w, Pi); - if (se) Te.activeTexture.set(he.TEXTURE0), qe.imageAtlasTexture.bind(he.LINEAR, he.CLAMP_TO_EDGE), Rt.updatePaintBuffers(ue); - else if (J && (sr || m.lineAtlas.dirty)) Te.activeTexture.set(he.TEXTURE0), m.lineAtlas.bind(Te); - else if (de) { - const Wr = $e.gradients[w.id]; - let Ei = Wr.texture; - if (w.gradientVersion !== Wr.version) { - let Qi = 256; - if (w.stepInterpolant) { - const dn = y.getSource().maxzoom, - xn = je.canonical.z === dn ? Math.ceil(1 << m.transform.maxZoom - je.canonical.z) : 1; - Qi = o.ah(o.c3($e.maxLineLength / o.$ * 1024 * xn), 256, Te.maxTextureSize) - } - Wr.gradient = o.c4({ - expression: w.gradientExpression(), - evaluationKey: "lineProgress", - resolution: Qi, - image: Wr.gradient || void 0, - clips: $e.lineClipsArray - }), Wr.texture ? Wr.texture.update(Wr.gradient) : Wr.texture = new o.T(Te, Wr.gradient, he.RGBA), Wr.version = w.gradientVersion, Ei = Wr.texture - } - Te.activeTexture.set(he.TEXTURE0), Ei.bind(w.stepInterpolant ? he.NEAREST : he.LINEAR, he.CLAMP_TO_EDGE) - } - const Ui = m.stencilModeForClipping(je); - yt.draw(Te, he.TRIANGLES, U, Ui, ee, wr.disabled, ji, Xr, ki, w.id, $e.layoutVertexBuffer, $e.indexBuffer, $e.segments, w.paint, m.transform.zoom, Rt, $e.layoutVertexBuffer2), He = !1 - } - })(e, n, s, u, d) : o.cf(s) ? (function(m, y, w, P, M) { - const D = w.paint.get("fill-color"), - z = w.paint.get("fill-opacity"); - if (z.constantOr(1) === 0) return; - const { - isRenderingToTexture: B - } = M, U = m.colorModeForRenderPass(), ee = w.paint.get("fill-pattern"), J = m.opaquePassEnabledForLayer() && !ee.constantOr(1) && D.constantOr(o.bf.transparent).a === 1 && z.constantOr(0) === 1 ? "opaque" : "translucent"; - if (m.renderPass === J) { - const re = m.getDepthModeForSublayer(1, m.renderPass === "opaque" ? Vr.ReadWrite : Vr.ReadOnly); - ml(m, y, w, P, re, U, !1, B) - } - if (m.renderPass === "translucent" && w.paint.get("fill-antialias")) { - const re = m.getDepthModeForSublayer(w.getPaintProperty("fill-outline-color") ? 2 : 0, Vr.ReadOnly); - ml(m, y, w, P, re, U, !0, B) - } - })(e, n, s, u, d) : o.cg(s) ? (function(m, y, w, P, M) { - const D = w.paint.get("fill-extrusion-opacity"); - if (D === 0) return; - const { - isRenderingToTexture: z - } = M; - if (m.renderPass === "translucent") { - const B = new Vr(m.context.gl.LEQUAL, Vr.ReadWrite, m.depthRangeFor3D); - if (D !== 1 || w.paint.get("fill-extrusion-pattern").constantOr(1)) Rc(m, y, w, P, B, hi.disabled, Ti.disabled, z), Rc(m, y, w, P, B, m.stencilModeFor3D(), m.colorModeForRenderPass(), z); - else { - const U = m.colorModeForRenderPass(); - Rc(m, y, w, P, B, hi.disabled, U, z) - } - } - })(e, n, s, u, d) : o.ch(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "offscreen" && m.renderPass !== "translucent") return; - const { - isRenderingToTexture: D - } = M, z = m.context, B = m.style.projection.useSubdivision, U = m.getDepthModeForSublayer(0, Vr.ReadOnly), ee = m.colorModeForRenderPass(); - if (m.renderPass === "offscreen")(function(J, re, se, de, ue, ge, Te) { - const he = J.context, - De = he.gl; - for (const He of se) { - const je = re.getTile(He), - qe = je.dem; - if (!qe || !qe.data || !je.needsHillshadePrepare) continue; - const $e = qe.dim, - Rt = qe.stride, - Nt = qe.getPixels(); - if (he.activeTexture.set(De.TEXTURE1), he.pixelStoreUnpackPremultiplyAlpha.set(!1), je.demTexture = je.demTexture || J.getTileTexture(Rt), je.demTexture) { - const sr = je.demTexture; - sr.update(Nt, { - premultiply: !1 - }), sr.bind(De.NEAREST, De.CLAMP_TO_EDGE) - } else je.demTexture = new o.T(he, Nt, De.RGBA, { - premultiply: !1 - }), je.demTexture.bind(De.NEAREST, De.CLAMP_TO_EDGE); - he.activeTexture.set(De.TEXTURE0); - let yt = je.fbo; - if (!yt) { - const sr = new o.T(he, { - width: $e, - height: $e, - data: null - }, De.RGBA); - sr.bind(De.LINEAR, De.CLAMP_TO_EDGE), yt = je.fbo = he.createFramebuffer($e, $e, !0, !1), yt.colorAttachment.set(sr.texture) - } - he.bindFramebuffer.set(yt.framebuffer), he.viewport.set([0, 0, $e, $e]), J.useProgram("hillshadePrepare").draw(he, De.TRIANGLES, ue, ge, Te, wr.disabled, yh(je.tileID, qe), null, null, de.id, J.rasterBoundsBuffer, J.quadTriangleIndexBuffer, J.rasterBoundsSegments), je.needsHillshadePrepare = !1 - } - })(m, y, P, w, U, hi.disabled, ee), z.viewport.set([0, 0, m.width, m.height]); - else if (m.renderPass === "translucent") - if (B) { - const [J, re, se] = m.stencilConfigForOverlapTwoPass(P); - bs(m, y, w, se, J, U, ee, !1, D), bs(m, y, w, se, re, U, ee, !0, D) - } else { - const [J, re] = m.getStencilConfigForOverlapAndUpdateStencilID(P); - bs(m, y, w, re, J, U, ee, !1, D) - } - })(e, n, s, u, d) : o.ci(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent" || !P.length) return; - const { - isRenderingToTexture: D - } = M, z = m.style.projection.useSubdivision, B = m.getDepthModeForSublayer(0, Vr.ReadOnly), U = m.colorModeForRenderPass(); - if (z) { - const [ee, J, re] = m.stencilConfigForOverlapTwoPass(P); - Bc(m, y, w, re, ee, B, U, !1, D), Bc(m, y, w, re, J, B, U, !0, D) - } else { - const [ee, J] = m.getStencilConfigForOverlapAndUpdateStencilID(P); - Bc(m, y, w, J, ee, B, U, !1, D) - } - })(e, n, s, u, d) : o.cj(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent" || w.paint.get("raster-opacity") === 0 || !P.length) return; - const { - isRenderingToTexture: D - } = M, z = y.getSource(), B = m.style.projection.useSubdivision; - if (z instanceof Ft) ws(m, y, w, P, null, !1, !1, z.tileCoords, z.flippedWindingOrder, D); - else if (B) { - const [U, ee, J] = m.stencilConfigForOverlapTwoPass(P); - ws(m, y, w, J, U, !1, !0, _l, !1, D), ws(m, y, w, J, ee, !0, !0, _l, !1, D) - } else { - const [U, ee] = m.getStencilConfigForOverlapAndUpdateStencilID(P); - ws(m, y, w, ee, U, !1, !0, _l, !1, D) - } - })(e, n, s, u, d) : o.ck(s) ? (function(m, y, w, P, M) { - const D = w.paint.get("background-color"), - z = w.paint.get("background-opacity"); - if (z === 0) return; - const { - isRenderingToTexture: B - } = M, U = m.context, ee = U.gl, J = m.style.projection, re = m.transform, se = re.tileSize, de = w.paint.get("background-pattern"); - if (m.isPatternMissing(de)) return; - const ue = !de && D.a === 1 && z === 1 && m.opaquePassEnabledForLayer() ? "opaque" : "translucent"; - if (m.renderPass !== ue) return; - const ge = hi.disabled, - Te = m.getDepthModeForSublayer(0, ue === "opaque" ? Vr.ReadWrite : Vr.ReadOnly), - he = m.colorModeForRenderPass(), - De = m.useProgram(de ? "backgroundPattern" : "background"), - He = P || xe(re, { - tileSize: se, - terrain: m.style.map.terrain - }); - de && (U.activeTexture.set(ee.TEXTURE0), m.imageManager.bind(m.context)); - const je = w.getCrossfadeParameters(); - for (const qe of He) { - const $e = re.getProjectionData({ - overscaledTileID: qe, - applyGlobeMatrix: !B, - applyTerrainMatrix: !0 - }), - Rt = de ? Sh(z, m, de, { - tileID: qe, - tileSize: se - }, je) : Ch(z, D), - Nt = m.style.map.terrain && m.style.map.terrain.getTerrainData(qe), - yt = J.getMeshFromTileID(U, qe.canonical, !1, !0, "raster"); - De.draw(U, ee.TRIANGLES, Te, ge, he, wr.backCCW, Rt, Nt, $e, w.id, yt.vertexBuffer, yt.indexBuffer, yt.segments) - } - })(e, 0, s, u, d) : o.cl(s) && (function(m, y, w, P) { - const { - isRenderingGlobe: M - } = P, D = m.context, z = w.implementation, B = m.style.projection, U = m.transform, ee = U.getProjectionDataForCustomLayer(M), J = { - farZ: U.farZ, - nearZ: U.nearZ, - fov: U.fov * Math.PI / 180, - modelViewProjectionMatrix: U.modelViewProjectionMatrix, - projectionMatrix: U.projectionMatrix, - shaderData: { - variantName: B.shaderVariantName, - vertexShaderPrelude: `const float PI = 3.141592653589793; -uniform mat4 u_projection_matrix; -${B.shaderPreludeCode.vertexSource}`, - define: B.shaderDefine - }, - defaultProjectionData: ee - }, re = z.renderingMode ? z.renderingMode : "2d"; - if (m.renderPass === "offscreen") { - const se = z.prerender; - se && (m.setCustomLayerDefaults(), D.setColorMode(m.colorModeForRenderPass()), se.call(z, D.gl, J), D.setDirty(), m.setBaseState()) - } else if (m.renderPass === "translucent") { - m.setCustomLayerDefaults(), D.setColorMode(m.colorModeForRenderPass()), D.setStencilMode(hi.disabled); - const se = re === "3d" ? m.getDepthModeFor3D() : m.getDepthModeForSublayer(0, Vr.ReadOnly); - D.setDepthMode(se), z.render(D.gl, J), D.setDirty(), m.setBaseState(), D.bindFramebuffer.set(null) - } - })(e, 0, s, d)) - } - saveTileTexture(e) { - const n = this._tileTextures[e.size[0]]; - n ? n.push(e) : this._tileTextures[e.size[0]] = [e] - } - getTileTexture(e) { - const n = this._tileTextures[e]; - return n && n.length > 0 ? n.pop() : null - } - isPatternMissing(e) { - if (!e) return !1; - if (!e.from || !e.to) return !0; - const n = this.imageManager.getPattern(e.from.toString()), - s = this.imageManager.getPattern(e.to.toString()); - return !n || !s - } - useProgram(e, n, s = !1, u = []) { - this.cache = this.cache || {}; - const d = !!this.style.map.terrain, - m = this.style.projection, - y = s ? pi.projectionMercator : m.shaderPreludeCode, - w = s ? Jr : m.shaderDefine, - P = e + (n ? n.cacheKey : "") + `/${s?ti:m.shaderVariantName}` + (this._showOverdrawInspector ? "/overdraw" : "") + (d ? "/terrain" : "") + (u ? `/${u.join("/")}` : ""); - return this.cache[P] || (this.cache[P] = new yc(this.context, pi[e], n, Sc[e], this._showOverdrawInspector, d, y, w, u)), this.cache[P] - } - 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 e = this.context.gl; - this.context.cullFace.set(!1), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(e.FUNC_ADD) - } - initDebugOverlayCanvas() { - this.debugOverlayCanvas == null && (this.debugOverlayCanvas = document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new o.T(this.context, this.debugOverlayCanvas, this.context.gl.RGBA)) - } - destroy() { - this.debugOverlayTexture && this.debugOverlayTexture.destroy() - } - overLimit() { - const { - drawingBufferWidth: e, - drawingBufferHeight: n - } = this.context.gl; - return this.width !== e || this.height !== n - } - } - - function Ts(h, e) { - let n, s = !1, - u = null, - d = null; - const m = () => { - u = null, s && (h.apply(d, n), u = setTimeout(m, e), s = !1) - }; - return (...y) => (s = !0, d = this, n = y, u || m(), u) - } - class yl { - constructor(e) { - this._getCurrentHash = () => { - const n = window.location.hash.replace("#", ""); - if (this._hashName) { - let s; - return n.split("&").map((u => u.split("="))).forEach((u => { - u[0] === this._hashName && (s = u) - })), (s && s[1] || "").split("/") - } - return n.split("/") - }, this._onHashChange = () => { - const n = this._getCurrentHash(); - if (!this._isValidHash(n)) return !1; - const s = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(n[3] || 0) : this._map.getBearing(); - return this._map.jumpTo({ - center: [+n[2], +n[1]], - zoom: +n[0], - bearing: s, - pitch: +(n[4] || 0) - }), !0 - }, this._updateHashUnthrottled = () => { - const n = window.location.href.replace(/(#.*)?$/, this.getHashString()); - window.history.replaceState(window.history.state, null, n) - }, this._removeHash = () => { - const n = this._getCurrentHash(); - if (n.length === 0) return; - const s = n.join("/"); - let u = s; - u.split("&").length > 0 && (u = u.split("&")[0]), this._hashName && (u = `${this._hashName}=${s}`); - let d = window.location.hash.replace(u, ""); - d.startsWith("#&") ? d = d.slice(0, 1) + d.slice(2) : d === "#" && (d = ""); - let m = window.location.href.replace(/(#.+)?$/, d); - m = m.replace("&&", "&"), window.history.replaceState(window.history.state, null, m) - }, this._updateHash = Ts(this._updateHashUnthrottled, 300), this._hashName = e && encodeURIComponent(e) - } - addTo(e) { - return this._map = e, addEventListener("hashchange", this._onHashChange, !1), this._map.on("moveend", this._updateHash), this - } - remove() { - return removeEventListener("hashchange", this._onHashChange, !1), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), this._removeHash(), delete this._map, this - } - getHashString(e) { - const n = this._map.getCenter(), - s = Math.round(100 * this._map.getZoom()) / 100, - u = Math.ceil((s * Math.LN2 + Math.log(512 / 360 / .5)) / Math.LN10), - d = Math.pow(10, u), - m = Math.round(n.lng * d) / d, - y = Math.round(n.lat * d) / d, - w = this._map.getBearing(), - P = this._map.getPitch(); - let M = ""; - if (M += e ? `/${m}/${y}/${s}` : `${s}/${y}/${m}`, (w || P) && (M += "/" + Math.round(10 * w) / 10), P && (M += `/${Math.round(P)}`), this._hashName) { - const D = this._hashName; - let z = !1; - const B = window.location.hash.slice(1).split("&").map((U => { - const ee = U.split("=")[0]; - return ee === D ? (z = !0, `${ee}=${M}`) : U - })).filter((U => U)); - return z || B.push(`${D}=${M}`), `#${B.join("&")}` - } - return `#${M}` - } - _isValidHash(e) { - if (e.length < 3 || e.some(isNaN)) return !1; - try { - new o.S(+e[2], +e[1]) - } catch { - return !1 - } - const n = +e[0], - s = +(e[3] || 0), - u = +(e[4] || 0); - return n >= this._map.getMinZoom() && n <= this._map.getMaxZoom() && s >= -180 && s <= 180 && u >= this._map.getMinPitch() && u <= this._map.getMaxPitch() - } - } - const Ga = { - linearity: .3, - easing: o.cm(0, 0, .3, 1) - }, - jc = o.e({ - deceleration: 2500, - maxSpeed: 1400 - }, Ga), - qh = o.e({ - deceleration: 20, - maxSpeed: 1400 - }, Ga), - Vh = o.e({ - deceleration: 1e3, - maxSpeed: 360 - }, Ga), - Uh = o.e({ - deceleration: 1e3, - maxSpeed: 90 - }, Ga), - Zh = o.e({ - deceleration: 1e3, - maxSpeed: 360 - }, Ga); - class $h { - constructor(e) { - this._map = e, this.clear() - } - clear() { - this._inertiaBuffer = [] - } - record(e) { - this._drainInertiaBuffer(), this._inertiaBuffer.push({ - time: ye.now(), - settings: e - }) - } - _drainInertiaBuffer() { - const e = this._inertiaBuffer, - n = ye.now(); - for (; e.length > 0 && n - e[0].time > 160;) e.shift() - } - _onMoveEnd(e) { - if (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) return; - const n = { - zoom: 0, - bearing: 0, - pitch: 0, - roll: 0, - pan: new o.P(0, 0), - pinchAround: void 0, - around: void 0 - }; - for (const { - settings: d - } - of this._inertiaBuffer) n.zoom += d.zoomDelta || 0, n.bearing += d.bearingDelta || 0, n.pitch += d.pitchDelta || 0, n.roll += d.rollDelta || 0, d.panDelta && n.pan._add(d.panDelta), d.around && (n.around = d.around), d.pinchAround && (n.pinchAround = d.pinchAround); - const s = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, - u = {}; - if (n.pan.mag()) { - const d = js(n.pan.mag(), s, o.e({}, jc, e || {})), - m = n.pan.mult(d.amount / n.pan.mag()), - y = this._map.cameraHelper.handlePanInertia(m, this._map.transform); - u.center = y.easingCenter, u.offset = y.easingOffset, xa(u, d) - } - if (n.zoom) { - const d = js(n.zoom, s, qh); - u.zoom = this._map.transform.zoom + d.amount, xa(u, d) - } - if (n.bearing) { - const d = js(n.bearing, s, Vh); - u.bearing = this._map.transform.bearing + o.ah(d.amount, -179, 179), xa(u, d) - } - if (n.pitch) { - const d = js(n.pitch, s, Uh); - u.pitch = this._map.transform.pitch + d.amount, xa(u, d) - } - if (n.roll) { - const d = js(n.roll, s, Zh); - u.roll = this._map.transform.roll + o.ah(d.amount, -179, 179), xa(u, d) - } - if (u.zoom || u.bearing) { - const d = n.pinchAround === void 0 ? n.around : n.pinchAround; - u.around = d ? this._map.unproject(d) : this._map.getCenter() - } - return this.clear(), o.e(u, { - noMoveStart: !0 - }) - } - } - - function xa(h, e) { - (!h.duration || h.duration < e.duration) && (h.duration = e.duration, h.easing = e.easing) - } - - function js(h, e, n) { - const { - maxSpeed: s, - linearity: u, - deceleration: d - } = n, m = o.ah(h * u / (e / 1e3), -s, s), y = Math.abs(m) / (d * u); - return { - easing: n.easing, - duration: 1e3 * y, - amount: m * (y / 2) - } - } - class Wn extends o.l { - preventDefault() { - this._defaultPrevented = !0 - } - get defaultPrevented() { - return this._defaultPrevented - } - constructor(e, n, s, u = {}) { - s = s instanceof MouseEvent ? s : new MouseEvent(e, s); - const d = X.mousePos(n.getCanvas(), s), - m = n.unproject(d); - super(e, o.e({ - point: d, - lngLat: m, - originalEvent: s - }, u)), this._defaultPrevented = !1, this.target = n - } - } - class qs extends o.l { - preventDefault() { - this._defaultPrevented = !0 - } - get defaultPrevented() { - return this._defaultPrevented - } - constructor(e, n, s) { - const u = e === "touchend" ? s.changedTouches : s.touches, - d = X.touchPos(n.getCanvasContainer(), u), - m = d.map((w => n.unproject(w))), - y = d.reduce(((w, P, M, D) => w.add(P.div(D.length))), new o.P(0, 0)); - super(e, { - points: d, - point: y, - lngLats: m, - lngLat: n.unproject(y), - originalEvent: s - }), this._defaultPrevented = !1 - } - } - class qc extends o.l { - preventDefault() { - this._defaultPrevented = !0 - } - get defaultPrevented() { - return this._defaultPrevented - } - constructor(e, n, s) { - super(e, { - originalEvent: s - }), this._defaultPrevented = !1 - } - } - class Gh { - constructor(e, n) { - this._map = e, this._clickTolerance = n.clickTolerance - } - reset() { - delete this._mousedownPos - } - wheel(e) { - return this._firePreventable(new qc(e.type, this._map, e)) - } - mousedown(e, n) { - return this._mousedownPos = n, this._firePreventable(new Wn(e.type, this._map, e)) - } - mouseup(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - click(e, n) { - this._mousedownPos && this._mousedownPos.dist(n) >= this._clickTolerance || this._map.fire(new Wn(e.type, this._map, e)) - } - dblclick(e) { - return this._firePreventable(new Wn(e.type, this._map, e)) - } - mouseover(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - mouseout(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - touchstart(e) { - return this._firePreventable(new qs(e.type, this._map, e)) - } - touchmove(e) { - this._map.fire(new qs(e.type, this._map, e)) - } - touchend(e) { - this._map.fire(new qs(e.type, this._map, e)) - } - touchcancel(e) { - this._map.fire(new qs(e.type, this._map, e)) - } - _firePreventable(e) { - if (this._map.fire(e), e.defaultPrevented) return {} - } - isEnabled() { - return !0 - } - isActive() { - return !1 - } - enable() {} - disable() {} - } - class Hh { - constructor(e) { - this._map = e - } - reset() { - this._delayContextMenu = !1, this._ignoreContextMenu = !0, delete this._contextMenuEvent - } - mousemove(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - mousedown() { - this._delayContextMenu = !0, this._ignoreContextMenu = !1 - } - mouseup() { - this._delayContextMenu = !1, this._contextMenuEvent && (this._map.fire(new Wn("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent) - } - contextmenu(e) { - this._delayContextMenu ? this._contextMenuEvent = e : this._ignoreContextMenu || this._map.fire(new Wn(e.type, this._map, e)), this._map.listens("contextmenu") && e.preventDefault() - } - isEnabled() { - return !0 - } - isActive() { - return !1 - } - enable() {} - disable() {} - } - class Vs { - constructor(e) { - this._map = e - } - 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(e) { - return this.transform.screenPointToLocation(o.P.convert(e), this._map.terrain) - } - } - class Vc { - constructor(e, n) { - this._map = e, this._tr = new Vs(e), this._el = e.getCanvasContainer(), this._container = e.getContainer(), this._clickTolerance = n.clickTolerance || 1 - } - isEnabled() { - return !!this._enabled - } - isActive() { - return !!this._active - } - enable() { - this.isEnabled() || (this._enabled = !0) - } - disable() { - this.isEnabled() && (this._enabled = !1) - } - mousedown(e, n) { - this.isEnabled() && e.shiftKey && e.button === 0 && (X.disableDrag(), this._startPos = this._lastPos = n, this._active = !0) - } - mousemoveWindow(e, n) { - if (!this._active) return; - const s = n; - if (this._lastPos.equals(s) || !this._box && s.dist(this._startPos) < this._clickTolerance) return; - const u = this._startPos; - this._lastPos = s, this._box || (this._box = X.create("div", "maplibregl-boxzoom", this._container), this._container.classList.add("maplibregl-crosshair"), this._fireEvent("boxzoomstart", e)); - const d = Math.min(u.x, s.x), - m = Math.max(u.x, s.x), - y = Math.min(u.y, s.y), - w = Math.max(u.y, s.y); - X.setTransform(this._box, `translate(${d}px,${y}px)`), this._box.style.width = m - d + "px", this._box.style.height = w - y + "px" - } - mouseupWindow(e, n) { - if (!this._active || e.button !== 0) return; - const s = this._startPos, - u = n; - if (this.reset(), X.suppressClick(), s.x !== u.x || s.y !== u.y) return this._map.fire(new o.l("boxzoomend", { - originalEvent: e - })), { - cameraAnimation: d => d.fitScreenCoordinates(s, u, this._tr.bearing, { - linear: !0 - }) - }; - this._fireEvent("boxzoomcancel", e) - } - keydown(e) { - this._active && e.keyCode === 27 && (this.reset(), this._fireEvent("boxzoomcancel", e)) - } - reset() { - this._active = !1, this._container.classList.remove("maplibregl-crosshair"), this._box && (X.remove(this._box), this._box = null), X.enableDrag(), delete this._startPos, delete this._lastPos - } - _fireEvent(e, n) { - return this._map.fire(new o.l(e, { - originalEvent: n - })) - } - } - - function Us(h, e) { - if (h.length !== e.length) throw new Error(`The number of touches and points are not equal - touches ${h.length}, points ${e.length}`); - const n = {}; - for (let s = 0; s < h.length; s++) n[h[s].identifier] = e[s]; - return n - } - class Wh { - constructor(e) { - this.reset(), this.numTouches = e.numTouches - } - reset() { - delete this.centroid, delete this.startTime, delete this.touches, this.aborted = !1 - } - touchstart(e, n, s) { - (this.centroid || s.length > this.numTouches) && (this.aborted = !0), this.aborted || (this.startTime === void 0 && (this.startTime = e.timeStamp), s.length === this.numTouches && (this.centroid = (function(u) { - const d = new o.P(0, 0); - for (const m of u) d._add(m); - return d.div(u.length) - })(n), this.touches = Us(s, n))) - } - touchmove(e, n, s) { - if (this.aborted || !this.centroid) return; - const u = Us(s, n); - for (const d in this.touches) { - const m = u[d]; - (!m || m.dist(this.touches[d]) > 30) && (this.aborted = !0) - } - } - touchend(e, n, s) { - if ((!this.centroid || e.timeStamp - this.startTime > 500) && (this.aborted = !0), s.length === 0) { - const u = !this.aborted && this.centroid; - if (this.reset(), u) return u - } - } - } - class Xn { - constructor(e) { - this.singleTap = new Wh(e), this.numTaps = e.numTaps, this.reset() - } - reset() { - this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset() - } - touchstart(e, n, s) { - this.singleTap.touchstart(e, n, s) - } - touchmove(e, n, s) { - this.singleTap.touchmove(e, n, s) - } - touchend(e, n, s) { - const u = this.singleTap.touchend(e, n, s); - if (u) { - const d = e.timeStamp - this.lastTime < 500, - m = !this.lastTap || this.lastTap.dist(u) < 30; - if (d && m || this.reset(), this.count++, this.lastTime = e.timeStamp, this.lastTap = u, this.count === this.numTaps) return this.reset(), u - } - } - } - class ba { - constructor(e) { - this._tr = new Vs(e), this._zoomIn = new Xn({ - numTouches: 1, - numTaps: 2 - }), this._zoomOut = new Xn({ - numTouches: 2, - numTaps: 1 - }), this.reset() - } - reset() { - this._active = !1, this._zoomIn.reset(), this._zoomOut.reset() - } - touchstart(e, n, s) { - this._zoomIn.touchstart(e, n, s), this._zoomOut.touchstart(e, n, s) - } - touchmove(e, n, s) { - this._zoomIn.touchmove(e, n, s), this._zoomOut.touchmove(e, n, s) - } - touchend(e, n, s) { - const u = this._zoomIn.touchend(e, n, s), - d = this._zoomOut.touchend(e, n, s), - m = this._tr; - return u ? (this._active = !0, e.preventDefault(), setTimeout((() => this.reset()), 0), { - cameraAnimation: y => y.easeTo({ - duration: 300, - zoom: m.zoom + 1, - around: m.unproject(u) - }, { - originalEvent: e - }) - }) : d ? (this._active = !0, e.preventDefault(), setTimeout((() => this.reset()), 0), { - cameraAnimation: y => y.easeTo({ - duration: 300, - zoom: m.zoom - 1, - around: m.unproject(d) - }, { - originalEvent: e - }) - }) : void 0 - } - touchcancel() { - this.reset() - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Zs { - constructor(e) { - this._enabled = !!e.enable, this._moveStateManager = e.moveStateManager, this._clickTolerance = e.clickTolerance || 1, this._moveFunction = e.move, this._activateOnStart = !!e.activateOnStart, e.assignEvents(this), this.reset() - } - reset(e) { - this._active = !1, this._moved = !1, delete this._lastPoint, this._moveStateManager.endMove(e) - } - _move(...e) { - const n = this._moveFunction(...e); - if (n.bearingDelta || n.pitchDelta || n.rollDelta || n.around || n.panDelta) return this._active = !0, n - } - dragStart(e, n) { - this.isEnabled() && !this._lastPoint && this._moveStateManager.isValidStartEvent(e) && (this._moveStateManager.startMove(e), this._lastPoint = Array.isArray(n) ? n[0] : n, this._activateOnStart && this._lastPoint && (this._active = !0)) - } - dragMove(e, n) { - if (!this.isEnabled()) return; - const s = this._lastPoint; - if (!s) return; - if (e.preventDefault(), !this._moveStateManager.isValidMoveEvent(e)) return void this.reset(e); - const u = Array.isArray(n) ? n[0] : n; - return !this._moved && u.dist(s) < this._clickTolerance ? void 0 : (this._moved = !0, this._lastPoint = u, this._move(s, u)) - } - dragEnd(e) { - this.isEnabled() && this._lastPoint && this._moveStateManager.isValidEndEvent(e) && (this._moved && X.suppressClick(), this.reset(e)) - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - getClickTolerance() { - return this._clickTolerance - } - } - const wa = 0, - $s = 2, - _p = { - [wa]: 1, - [$s]: 2 - }; - class ko { - constructor(e) { - this._correctEvent = e.checkCorrectEvent - } - startMove(e) { - const n = X.mouseButton(e); - this._eventButton = n - } - endMove(e) { - delete this._eventButton - } - isValidStartEvent(e) { - return this._correctEvent(e) - } - isValidMoveEvent(e) { - return !(function(n, s) { - const u = _p[s]; - return n.buttons === void 0 || (n.buttons & u) !== u - })(e, this._eventButton) - } - isValidEndEvent(e) { - return X.mouseButton(e) === this._eventButton - } - } - class gp { - constructor() { - this._firstTouch = void 0 - } - _isOneFingerTouch(e) { - return e.targetTouches.length === 1 - } - _isSameTouchEvent(e) { - return e.targetTouches[0].identifier === this._firstTouch - } - startMove(e) { - this._firstTouch = e.targetTouches[0].identifier - } - endMove(e) { - delete this._firstTouch - } - isValidStartEvent(e) { - return this._isOneFingerTouch(e) - } - isValidMoveEvent(e) { - return this._isOneFingerTouch(e) && this._isSameTouchEvent(e) - } - isValidEndEvent(e) { - return this._isOneFingerTouch(e) && this._isSameTouchEvent(e) - } - } - class vp { - constructor(e = new ko({ - checkCorrectEvent: () => !0 - }), n = new gp) { - this.mouseMoveStateManager = e, this.oneFingerTouchMoveStateManager = n - } - _executeRelevantHandler(e, n, s) { - return e instanceof MouseEvent ? n(e) : typeof TouchEvent < "u" && e instanceof TouchEvent ? s(e) : void 0 - } - startMove(e) { - this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.startMove(n)), (n => this.oneFingerTouchMoveStateManager.startMove(n))) - } - endMove(e) { - this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.endMove(n)), (n => this.oneFingerTouchMoveStateManager.endMove(n))) - } - isValidStartEvent(e) { - return this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.isValidStartEvent(n)), (n => this.oneFingerTouchMoveStateManager.isValidStartEvent(n))) - } - isValidMoveEvent(e) { - return this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.isValidMoveEvent(n)), (n => this.oneFingerTouchMoveStateManager.isValidMoveEvent(n))) - } - isValidEndEvent(e) { - return this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.isValidEndEvent(n)), (n => this.oneFingerTouchMoveStateManager.isValidEndEvent(n))) - } - } - const Eo = h => { - h.mousedown = h.dragStart, h.mousemoveWindow = h.dragMove, h.mouseup = h.dragEnd, h.contextmenu = e => { - e.preventDefault() - } - }; - class zo { - constructor(e, n) { - this._clickTolerance = e.clickTolerance || 1, this._map = n, this.reset() - } - reset() { - this._active = !1, this._touches = {}, this._sum = new o.P(0, 0) - } - _shouldBePrevented(e) { - return e < (this._map.cooperativeGestures.isEnabled() ? 2 : 1) - } - touchstart(e, n, s) { - return this._calculateTransform(e, n, s) - } - touchmove(e, n, s) { - if (this._active) { - if (!this._shouldBePrevented(s.length)) return e.preventDefault(), this._calculateTransform(e, n, s); - this._map.cooperativeGestures.notifyGestureBlocked("touch_pan", e) - } - } - touchend(e, n, s) { - this._calculateTransform(e, n, s), this._active && this._shouldBePrevented(s.length) && this.reset() - } - touchcancel() { - this.reset() - } - _calculateTransform(e, n, s) { - s.length > 0 && (this._active = !0); - const u = Us(s, n), - d = new o.P(0, 0), - m = new o.P(0, 0); - let y = 0; - for (const P in u) { - const M = u[P], - D = this._touches[P]; - D && (d._add(M), m._add(M.sub(D)), y++, u[P] = M) - } - if (this._touches = u, this._shouldBePrevented(y) || !m.mag()) return; - const w = m.div(y); - return this._sum._add(w), this._sum.mag() < this._clickTolerance ? void 0 : { - around: d.div(y), - panDelta: w - } - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Ta { - constructor() { - this.reset() - } - reset() { - this._active = !1, delete this._firstTwoTouches - } - touchstart(e, n, s) { - this._firstTwoTouches || s.length < 2 || (this._firstTwoTouches = [s[0].identifier, s[1].identifier], this._start([n[0], n[1]])) - } - touchmove(e, n, s) { - if (!this._firstTwoTouches) return; - e.preventDefault(); - const [u, d] = this._firstTwoTouches, m = Kt(s, n, u), y = Kt(s, n, d); - if (!m || !y) return; - const w = this._aroundCenter ? null : m.add(y).div(2); - return this._move([m, y], w, e) - } - touchend(e, n, s) { - if (!this._firstTwoTouches) return; - const [u, d] = this._firstTwoTouches, m = Kt(s, n, u), y = Kt(s, n, d); - m && y || (this._active && X.suppressClick(), this.reset()) - } - touchcancel() { - this.reset() - } - enable(e) { - this._enabled = !0, this._aroundCenter = !!e && e.around === "center" - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return !!this._enabled - } - isActive() { - return !!this._active - } - } - - function Kt(h, e, n) { - for (let s = 0; s < h.length; s++) - if (h[s].identifier === n) return e[s] - } - - function Uc(h, e) { - return Math.log(h / e) / Math.LN2 - } - class xl extends Ta { - reset() { - super.reset(), delete this._distance, delete this._startDistance - } - _start(e) { - this._startDistance = this._distance = e[0].dist(e[1]) - } - _move(e, n) { - const s = this._distance; - if (this._distance = e[0].dist(e[1]), this._active || !(Math.abs(Uc(this._distance, this._startDistance)) < .1)) return this._active = !0, { - zoomDelta: Uc(this._distance, s), - pinchAround: n - } - } - } - - function Zc(h, e) { - return 180 * h.angleWith(e) / Math.PI - } - class Gs extends Ta { - reset() { - super.reset(), delete this._minDiameter, delete this._startVector, delete this._vector - } - _start(e) { - this._startVector = this._vector = e[0].sub(e[1]), this._minDiameter = e[0].dist(e[1]) - } - _move(e, n, s) { - const u = this._vector; - if (this._vector = e[0].sub(e[1]), this._active || !this._isBelowThreshold(this._vector)) return this._active = !0, { - bearingDelta: Zc(this._vector, u), - pinchAround: n - } - } - _isBelowThreshold(e) { - this._minDiameter = Math.min(this._minDiameter, e.mag()); - const n = 25 / (Math.PI * this._minDiameter) * 360, - s = Zc(e, this._startVector); - return Math.abs(s) < n - } - } - - function Cs(h) { - return Math.abs(h.y) > Math.abs(h.x) - } - class bl extends Ta { - constructor(e) { - super(), this._currentTouchCount = 0, this._map = e - } - reset() { - super.reset(), this._valid = void 0, delete this._firstMove, delete this._lastPoints - } - touchstart(e, n, s) { - super.touchstart(e, n, s), this._currentTouchCount = s.length - } - _start(e) { - this._lastPoints = e, Cs(e[0].sub(e[1])) && (this._valid = !1) - } - _move(e, n, s) { - if (this._map.cooperativeGestures.isEnabled() && this._currentTouchCount < 3) return; - const u = e[0].sub(this._lastPoints[0]), - d = e[1].sub(this._lastPoints[1]); - return this._valid = this.gestureBeginsVertically(u, d, s.timeStamp), this._valid ? (this._lastPoints = e, this._active = !0, { - pitchDelta: (u.y + d.y) / 2 * -.5 - }) : void 0 - } - gestureBeginsVertically(e, n, s) { - if (this._valid !== void 0) return this._valid; - const u = e.mag() >= 2, - d = n.mag() >= 2; - if (!u && !d) return; - if (!u || !d) return this._firstMove === void 0 && (this._firstMove = s), s - this._firstMove < 100 && void 0; - const m = e.y > 0 == n.y > 0; - return Cs(e) && Cs(n) && m - } - } - const si = { - panStep: 100, - bearingStep: 15, - pitchStep: 10 - }; - class wl { - constructor(e) { - this._tr = new Vs(e); - const n = si; - this._panStep = n.panStep, this._bearingStep = n.bearingStep, this._pitchStep = n.pitchStep, this._rotationDisabled = !1 - } - reset() { - this._active = !1 - } - keydown(e) { - if (e.altKey || e.ctrlKey || e.metaKey) return; - let n = 0, - s = 0, - u = 0, - d = 0, - m = 0; - switch (e.keyCode) { - case 61: - case 107: - case 171: - case 187: - n = 1; - break; - case 189: - case 109: - case 173: - n = -1; - break; - case 37: - e.shiftKey ? s = -1 : (e.preventDefault(), d = -1); - break; - case 39: - e.shiftKey ? s = 1 : (e.preventDefault(), d = 1); - break; - case 38: - e.shiftKey ? u = 1 : (e.preventDefault(), m = -1); - break; - case 40: - e.shiftKey ? u = -1 : (e.preventDefault(), m = 1); - break; - default: - return - } - return this._rotationDisabled && (s = 0, u = 0), { - cameraAnimation: y => { - const w = this._tr; - y.easeTo({ - duration: 300, - easeId: "keyboardHandler", - easing: yp, - zoom: n ? Math.round(w.zoom) + n * (e.shiftKey ? 2 : 1) : w.zoom, - bearing: w.bearing + s * this._bearingStep, - pitch: w.pitch + u * this._pitchStep, - offset: [-d * this._panStep, -m * this._panStep], - center: w.center - }, { - originalEvent: e - }) - } - } - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - disableRotation() { - this._rotationDisabled = !0 - } - enableRotation() { - this._rotationDisabled = !1 - } - } - - function yp(h) { - return h * (2 - h) - } - const Tl = 4.000244140625, - xp = 1 / 450; - class Xh { - constructor(e, n) { - this._onTimeout = s => { - this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(s) - }, this._map = e, this._tr = new Vs(e), this._triggerRenderFrame = n, this._delta = 0, this._defaultZoomRate = .01, this._wheelZoomRate = xp - } - setZoomRate(e) { - this._defaultZoomRate = e - } - setWheelZoomRate(e) { - this._wheelZoomRate = e - } - isEnabled() { - return !!this._enabled - } - isActive() { - return !!this._active || this._finishTimeout !== void 0 - } - isZooming() { - return !!this._zooming - } - enable(e) { - this.isEnabled() || (this._enabled = !0, this._aroundCenter = !!e && e.around === "center") - } - disable() { - this.isEnabled() && (this._enabled = !1) - } - _shouldBePrevented(e) { - return !!this._map.cooperativeGestures.isEnabled() && !(e.ctrlKey || this._map.cooperativeGestures.isBypassed(e)) - } - wheel(e) { - if (!this.isEnabled()) return; - if (this._shouldBePrevented(e)) return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom", e); - let n = e.deltaMode === WheelEvent.DOM_DELTA_LINE ? 40 * e.deltaY : e.deltaY; - const s = ye.now(), - u = s - (this._lastWheelEventTime || 0); - this._lastWheelEventTime = s, n !== 0 && n % Tl == 0 ? this._type = "wheel" : n !== 0 && Math.abs(n) < 4 ? this._type = "trackpad" : u > 400 ? (this._type = null, this._lastValue = n, this._timeout = setTimeout(this._onTimeout, 40, e)) : this._type || (this._type = Math.abs(u * n) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, n += this._lastValue)), e.shiftKey && n && (n /= 4), this._type && (this._lastWheelEvent = e, this._delta -= n, this._active || this._start(e)), e.preventDefault() - } - _start(e) { - 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 n = X.mousePos(this._map.getCanvas(), e), - s = this._tr; - this._aroundPoint = this._aroundCenter ? s.transform.locationToScreenPoint(o.S.convert(s.center)) : n, this._frameId || (this._frameId = !0, this._triggerRenderFrame()) - } - renderFrame() { - if (!this._frameId || (this._frameId = null, !this.isActive())) return; - const e = this._tr.transform; - if (typeof this._lastExpectedZoom == "number") { - const y = e.zoom - this._lastExpectedZoom; - typeof this._startZoom == "number" && (this._startZoom += y), typeof this._targetZoom == "number" && (this._targetZoom += y) - } - if (this._delta !== 0) { - const y = this._type === "wheel" && Math.abs(this._delta) > Tl ? this._wheelZoomRate : this._defaultZoomRate; - let w = 2 / (1 + Math.exp(-Math.abs(this._delta * y))); - this._delta < 0 && w !== 0 && (w = 1 / w); - const P = typeof this._targetZoom != "number" ? e.scale : o.af(this._targetZoom); - this._targetZoom = e.getConstrained(e.getCameraLngLat(), o.ak(P * w)).zoom, this._type === "wheel" && (this._startZoom = e.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0 - } - const n = typeof this._targetZoom != "number" ? e.zoom : this._targetZoom, - s = this._startZoom, - u = this._easing; - let d, m = !1; - if (this._type === "wheel" && s && u) { - const y = ye.now() - this._lastWheelEventTime, - w = Math.min((y + 5) / 200, 1), - P = u(w); - d = o.C.number(s, n, P), w < 1 ? this._frameId || (this._frameId = !0) : m = !0 - } else d = n, m = !0; - return this._active = !0, m && (this._active = !1, this._finishTimeout = setTimeout((() => { - this._zooming = !1, this._triggerRenderFrame(), delete this._targetZoom, delete this._lastExpectedZoom, delete this._finishTimeout - }), 200)), this._lastExpectedZoom = d, { - noInertia: !0, - needsRenderFrame: !m, - zoomDelta: d - e.zoom, - around: this._aroundPoint, - originalEvent: this._lastWheelEvent - } - } - _smoothOutEasing(e) { - let n = o.co; - if (this._prevEase) { - const s = this._prevEase, - u = (ye.now() - s.start) / s.duration, - d = s.easing(u + .01) - s.easing(u), - m = .27 / Math.sqrt(d * d + 1e-4) * .01, - y = Math.sqrt(.0729 - m * m); - n = o.cm(m, y, .25, 1) - } - return this._prevEase = { - start: ye.now(), - duration: e, - easing: n - }, n - } - reset() { - this._active = !1, this._zooming = !1, delete this._targetZoom, delete this._lastExpectedZoom, this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout) - } - } - class $c { - constructor(e, n) { - this._clickZoom = e, this._tapZoom = n - } - 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 Gc { - constructor(e) { - this._tr = new Vs(e), this.reset() - } - reset() { - this._active = !1 - } - dblclick(e, n) { - return e.preventDefault(), { - cameraAnimation: s => { - s.easeTo({ - duration: 300, - zoom: this._tr.zoom + (e.shiftKey ? -1 : 1), - around: this._tr.unproject(n) - }, { - originalEvent: e - }) - } - } - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Kh { - constructor() { - this._tap = new Xn({ - 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(e, n, s) { - if (!this._swipePoint) - if (this._tapTime) { - const u = n[0], - d = e.timeStamp - this._tapTime < 500, - m = this._tapPoint.dist(u) < 30; - d && m ? s.length > 0 && (this._swipePoint = u, this._swipeTouch = s[0].identifier) : this.reset() - } else this._tap.touchstart(e, n, s) - } - touchmove(e, n, s) { - if (this._tapTime) { - if (this._swipePoint) { - if (s[0].identifier !== this._swipeTouch) return; - const u = n[0], - d = u.y - this._swipePoint.y; - return this._swipePoint = u, e.preventDefault(), this._active = !0, { - zoomDelta: d / 128 - } - } - } else this._tap.touchmove(e, n, s) - } - touchend(e, n, s) { - if (this._tapTime) this._swipePoint && s.length === 0 && this.reset(); - else { - const u = this._tap.touchend(e, n, s); - u && (this._tapTime = e.timeStamp, this._tapPoint = u) - } - } - touchcancel() { - this.reset() - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Yh { - constructor(e, n, s) { - this._el = e, this._mousePan = n, this._touchPan = s - } - enable(e) { - this._inertiaOptions = e || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("maplibregl-touch-drag-pan") - } - disable() { - this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("maplibregl-touch-drag-pan") - } - isEnabled() { - return this._mousePan.isEnabled() && this._touchPan.isEnabled() - } - isActive() { - return this._mousePan.isActive() || this._touchPan.isActive() - } - } - class Hc { - constructor(e, n, s, u) { - this._pitchWithRotate = e.pitchWithRotate, this._rollEnabled = e.rollEnabled, this._mouseRotate = n, this._mousePitch = s, this._mouseRoll = u - } - enable() { - this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable(), this._rollEnabled && this._mouseRoll.enable() - } - disable() { - this._mouseRotate.disable(), this._mousePitch.disable(), this._mouseRoll.disable() - } - isEnabled() { - return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled()) && (!this._rollEnabled || this._mouseRoll.isEnabled()) - } - isActive() { - return this._mouseRotate.isActive() || this._mousePitch.isActive() || this._mouseRoll.isActive() - } - } - class Jh { - constructor(e, n, s, u) { - this._el = e, this._touchZoom = n, this._touchRotate = s, this._tapDragZoom = u, this._rotationDisabled = !1, this._enabled = !0 - } - enable(e) { - this._touchZoom.enable(e), this._rotationDisabled || this._touchRotate.enable(e), this._tapDragZoom.enable(), this._el.classList.add("maplibregl-touch-zoom-rotate") - } - disable() { - this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("maplibregl-touch-zoom-rotate") - } - isEnabled() { - return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled() - } - isActive() { - return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive() - } - disableRotation() { - this._rotationDisabled = !0, this._touchRotate.disable() - } - enableRotation() { - this._rotationDisabled = !1, this._touchZoom.isEnabled() && this._touchRotate.enable() - } - } - class Qh { - constructor(e, n) { - this._bypassKey = navigator.userAgent.indexOf("Mac") !== -1 ? "metaKey" : "ctrlKey", this._map = e, this._options = n, this._enabled = !1 - } - isActive() { - return !1 - } - reset() {} - _setupUI() { - if (this._container) return; - const e = this._map.getCanvasContainer(); - e.classList.add("maplibregl-cooperative-gestures"), this._container = X.create("div", "maplibregl-cooperative-gesture-screen", e); - let n = this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText"); - this._bypassKey === "metaKey" && (n = this._map._getUIString("CooperativeGesturesHandler.MacHelpText")); - const s = this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"), - u = document.createElement("div"); - u.className = "maplibregl-desktop-message", u.textContent = n, this._container.appendChild(u); - const d = document.createElement("div"); - d.className = "maplibregl-mobile-message", d.textContent = s, this._container.appendChild(d), this._container.setAttribute("aria-hidden", "true") - } - _destroyUI() { - this._container && (X.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._destroyUI() - } - isEnabled() { - return this._enabled - } - isBypassed(e) { - return e[this._bypassKey] - } - notifyGestureBlocked(e, n) { - this._enabled && (this._map.fire(new o.l("cooperativegestureprevented", { - gestureType: e, - originalEvent: n - })), this._container.classList.add("maplibregl-show"), setTimeout((() => { - this._container.classList.remove("maplibregl-show") - }), 100)) - } - } - const Ca = h => h.zoom || h.drag || h.roll || h.pitch || h.rotate; - class Oi extends o.l {} - - function Hs(h) { - return h.panDelta && h.panDelta.mag() || h.zoomDelta || h.bearingDelta || h.pitchDelta || h.rollDelta - } - class Wc { - constructor(e, n) { - this.handleWindowEvent = u => { - this.handleEvent(u, `${u.type}Window`) - }, this.handleEvent = (u, d) => { - if (u.type === "blur") return void this.stop(!0); - this._updatingCamera = !0; - const m = u.type === "renderFrame" ? void 0 : u, - y = { - needsRenderFrame: !1 - }, - w = {}, - P = {}; - for (const { - handlerName: z, - handler: B, - allowed: U - } - of this._handlers) { - if (!B.isEnabled()) continue; - let ee; - if (this._blockedByActive(P, U, z)) B.reset(); - else if (B[d || u.type]) { - if (o.cp(u, d || u.type)) { - const J = X.mousePos(this._map.getCanvas(), u); - ee = B[d || u.type](u, J) - } else if (o.cq(u, d || u.type)) { - const J = this._getMapTouches(u.touches), - re = X.touchPos(this._map.getCanvas(), J); - ee = B[d || u.type](u, re, J) - } else o.cr(d || u.type) || (ee = B[d || u.type](u)); - this.mergeHandlerResult(y, w, ee, z, m), ee && ee.needsRenderFrame && this._triggerRenderFrame() - }(ee || B.isActive()) && (P[z] = B) - } - const M = {}; - for (const z in this._previousActiveHandlers) P[z] || (M[z] = m); - this._previousActiveHandlers = P, (Object.keys(M).length || Hs(y)) && (this._changes.push([y, w, M]), this._triggerRenderFrame()), (Object.keys(P).length || Hs(y)) && this._map._stop(!0), this._updatingCamera = !1; - const { - cameraAnimation: D - } = y; - D && (this._inertia.clear(), this._fireEvents({}, {}, !0), this._changes = [], D(this._map)) - }, this._map = e, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new $h(e), this._bearingSnap = n.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(n); - const s = this._el; - this._listeners = [ - [s, "touchstart", { - passive: !0 - }], - [s, "touchmove", { - passive: !1 - }], - [s, "touchend", void 0], - [s, "touchcancel", void 0], - [s, "mousedown", void 0], - [s, "mousemove", void 0], - [s, "mouseup", void 0], - [document, "mousemove", { - capture: !0 - }], - [document, "mouseup", void 0], - [s, "mouseover", void 0], - [s, "mouseout", void 0], - [s, "dblclick", void 0], - [s, "click", void 0], - [s, "keydown", { - capture: !1 - }], - [s, "keyup", void 0], - [s, "wheel", { - passive: !1 - }], - [s, "contextmenu", void 0], - [window, "blur", void 0] - ]; - for (const [u, d, m] of this._listeners) X.addEventListener(u, d, u === document ? this.handleWindowEvent : this.handleEvent, m) - } - destroy() { - for (const [e, n, s] of this._listeners) X.removeEventListener(e, n, e === document ? this.handleWindowEvent : this.handleEvent, s) - } - _addDefaultHandlers(e) { - const n = this._map, - s = n.getCanvasContainer(); - this._add("mapEvent", new Gh(n, e)); - const u = n.boxZoom = new Vc(n, e); - this._add("boxZoom", u), e.interactive && e.boxZoom && u.enable(); - const d = n.cooperativeGestures = new Qh(n, e.cooperativeGestures); - this._add("cooperativeGestures", d), e.cooperativeGestures && d.enable(); - const m = new ba(n), - y = new Gc(n); - n.doubleClickZoom = new $c(y, m), this._add("tapZoom", m), this._add("clickZoom", y), e.interactive && e.doubleClickZoom && n.doubleClickZoom.enable(); - const w = new Kh; - this._add("tapDragZoom", w); - const P = n.touchPitch = new bl(n); - this._add("touchPitch", P), e.interactive && e.touchPitch && n.touchPitch.enable(e.touchPitch); - const M = () => n.project(n.getCenter()), - D = (function({ - enable: ue, - clickTolerance: ge, - aroundCenter: Te = !0, - minPixelCenterThreshold: he = 100, - rotateDegreesPerPixelMoved: De = .8 - }, He) { - const je = new ko({ - checkCorrectEvent: qe => X.mouseButton(qe) === 0 && qe.ctrlKey || X.mouseButton(qe) === 2 && !qe.ctrlKey - }); - return new Zs({ - clickTolerance: ge, - move: (qe, $e) => { - const Rt = He(); - if (Te && Math.abs(Rt.y - qe.y) > he) return { - bearingDelta: o.cn(new o.P(qe.x, $e.y), $e, Rt) - }; - let Nt = ($e.x - qe.x) * De; - return Te && $e.y < Rt.y && (Nt = -Nt), { - bearingDelta: Nt - } - }, - moveStateManager: je, - enable: ue, - assignEvents: Eo - }) - })(e, M), - z = (function({ - enable: ue, - clickTolerance: ge, - pitchDegreesPerPixelMoved: Te = -.5 - }) { - const he = new ko({ - checkCorrectEvent: De => X.mouseButton(De) === 0 && De.ctrlKey || X.mouseButton(De) === 2 - }); - return new Zs({ - clickTolerance: ge, - move: (De, He) => ({ - pitchDelta: (He.y - De.y) * Te - }), - moveStateManager: he, - enable: ue, - assignEvents: Eo - }) - })(e), - B = (function({ - enable: ue, - clickTolerance: ge, - rollDegreesPerPixelMoved: Te = .3 - }, he) { - const De = new ko({ - checkCorrectEvent: He => X.mouseButton(He) === 2 && He.ctrlKey - }); - return new Zs({ - clickTolerance: ge, - move: (He, je) => { - const qe = he(); - let $e = (je.x - He.x) * Te; - return je.y < qe.y && ($e = -$e), { - rollDelta: $e - } - }, - moveStateManager: De, - enable: ue, - assignEvents: Eo - }) - })(e, M); - n.dragRotate = new Hc(e, D, z, B), this._add("mouseRotate", D, ["mousePitch"]), this._add("mousePitch", z, ["mouseRotate", "mouseRoll"]), this._add("mouseRoll", B, ["mousePitch"]), e.interactive && e.dragRotate && n.dragRotate.enable(); - const U = (function({ - enable: ue, - clickTolerance: ge - }) { - const Te = new ko({ - checkCorrectEvent: he => X.mouseButton(he) === 0 && !he.ctrlKey - }); - return new Zs({ - clickTolerance: ge, - move: (he, De) => ({ - around: De, - panDelta: De.sub(he) - }), - activateOnStart: !0, - moveStateManager: Te, - enable: ue, - assignEvents: Eo - }) - })(e), - ee = new zo(e, n); - n.dragPan = new Yh(s, U, ee), this._add("mousePan", U), this._add("touchPan", ee, ["touchZoom", "touchRotate"]), e.interactive && e.dragPan && n.dragPan.enable(e.dragPan); - const J = new Gs, - re = new xl; - n.touchZoomRotate = new Jh(s, re, J, w), this._add("touchRotate", J, ["touchPan", "touchZoom"]), this._add("touchZoom", re, ["touchPan", "touchRotate"]), e.interactive && e.touchZoomRotate && n.touchZoomRotate.enable(e.touchZoomRotate); - const se = n.scrollZoom = new Xh(n, (() => this._triggerRenderFrame())); - this._add("scrollZoom", se, ["mousePan"]), e.interactive && e.scrollZoom && n.scrollZoom.enable(e.scrollZoom); - const de = n.keyboard = new wl(n); - this._add("keyboard", de), e.interactive && e.keyboard && n.keyboard.enable(), this._add("blockableMapEvent", new Hh(n)) - } - _add(e, n, s) { - this._handlers.push({ - handlerName: e, - handler: n, - allowed: s - }), this._handlersById[e] = n - } - stop(e) { - if (!this._updatingCamera) { - for (const { - handler: n - } - of this._handlers) n.reset(); - this._inertia.clear(), this._fireEvents({}, {}, e), this._changes = [] - } - } - isActive() { - for (const { - handler: e - } - of this._handlers) - if (e.isActive()) return !0; - return !1 - } - isZooming() { - return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming() - } - isRotating() { - return !!this._eventsInProgress.rotate - } - isMoving() { - return !!Ca(this._eventsInProgress) || this.isZooming() - } - _blockedByActive(e, n, s) { - for (const u in e) - if (u !== s && (!n || n.indexOf(u) < 0)) return !0; - return !1 - } - _getMapTouches(e) { - const n = []; - for (const s of e) this._el.contains(s.target) && n.push(s); - return n - } - mergeHandlerResult(e, n, s, u, d) { - if (!s) return; - o.e(e, s); - const m = { - handlerName: u, - originalEvent: s.originalEvent || d - }; - s.zoomDelta !== void 0 && (n.zoom = m), s.panDelta !== void 0 && (n.drag = m), s.rollDelta !== void 0 && (n.roll = m), s.pitchDelta !== void 0 && (n.pitch = m), s.bearingDelta !== void 0 && (n.rotate = m) - } - _applyChanges() { - const e = {}, - n = {}, - s = {}; - for (const [u, d, m] of this._changes) u.panDelta && (e.panDelta = (e.panDelta || new o.P(0, 0))._add(u.panDelta)), u.zoomDelta && (e.zoomDelta = (e.zoomDelta || 0) + u.zoomDelta), u.bearingDelta && (e.bearingDelta = (e.bearingDelta || 0) + u.bearingDelta), u.pitchDelta && (e.pitchDelta = (e.pitchDelta || 0) + u.pitchDelta), u.rollDelta && (e.rollDelta = (e.rollDelta || 0) + u.rollDelta), u.around !== void 0 && (e.around = u.around), u.pinchAround !== void 0 && (e.pinchAround = u.pinchAround), u.noInertia && (e.noInertia = u.noInertia), o.e(n, d), o.e(s, m); - this._updateMapTransform(e, n, s), this._changes = [] - } - _updateMapTransform(e, n, s) { - const u = this._map, - d = u._getTransformForUpdate(), - m = u.terrain; - if (!(Hs(e) || m && this._terrainMovement)) return this._fireEvents(n, s, !0); - u._stop(!0); - let { - panDelta: y, - zoomDelta: w, - bearingDelta: P, - pitchDelta: M, - rollDelta: D, - around: z, - pinchAround: B - } = e; - B !== void 0 && (z = B), z = z || u.transform.centerPoint, m && !d.isPointOnMapSurface(z) && (z = d.centerPoint); - const U = { - panDelta: y, - zoomDelta: w, - rollDelta: D, - pitchDelta: M, - bearingDelta: P, - around: z - }; - this._map.cameraHelper.useGlobeControls && !d.isPointOnMapSurface(z) && (z = d.centerPoint); - const ee = z.distSqr(d.centerPoint) < .01 ? d.center : d.screenPointToLocation(y ? z.sub(y) : z); - m ? (this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(U, d), this._terrainMovement || !n.drag && !n.zoom ? n.drag && this._terrainMovement ? d.setCenter(d.screenPointToLocation(d.centerPoint.sub(y))) : this._map.cameraHelper.handleMapControlsPan(U, d, ee) : (this._terrainMovement = !0, this._map._elevationFreeze = !0, this._map.cameraHelper.handleMapControlsPan(U, d, ee))) : (this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(U, d), this._map.cameraHelper.handleMapControlsPan(U, d, ee)), u._applyUpdatedTransform(d), this._map._update(), e.noInertia || this._inertia.record(e), this._fireEvents(n, s, !0) - } - _fireEvents(e, n, s) { - const u = Ca(this._eventsInProgress), - d = Ca(e), - m = {}; - for (const D in e) { - const { - originalEvent: z - } = e[D]; - this._eventsInProgress[D] || (m[`${D}start`] = z), this._eventsInProgress[D] = e[D] - }!u && d && this._fireEvent("movestart", d.originalEvent); - for (const D in m) this._fireEvent(D, m[D]); - d && this._fireEvent("move", d.originalEvent); - for (const D in e) { - const { - originalEvent: z - } = e[D]; - this._fireEvent(D, z) - } - const y = {}; - let w; - for (const D in this._eventsInProgress) { - const { - handlerName: z, - originalEvent: B - } = this._eventsInProgress[D]; - this._handlersById[z].isActive() || (delete this._eventsInProgress[D], w = n[z] || B, y[`${D}end`] = w) - } - for (const D in y) this._fireEvent(D, y[D]); - const P = Ca(this._eventsInProgress), - M = (u || d) && !P; - if (M && this._terrainMovement) { - this._map._elevationFreeze = !1, this._terrainMovement = !1; - const D = this._map._getTransformForUpdate(); - this._map.getCenterClampedToGround() && D.recalculateZoomAndCenter(this._map.terrain), this._map._applyUpdatedTransform(D) - } - if (s && M) { - this._updatingCamera = !0; - const D = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), - z = B => B !== 0 && -this._bearingSnap < B && B < this._bearingSnap; - !D || !D.essential && ye.prefersReducedMotion ? (this._map.fire(new o.l("moveend", { - originalEvent: w - })), z(this._map.getBearing()) && this._map.resetNorth()) : (z(D.bearing || this._map.getBearing()) && (D.bearing = 0), D.freezeElevation = !0, this._map.easeTo(D, { - originalEvent: w - })), this._updatingCamera = !1 - } - } - _fireEvent(e, n) { - this._map.fire(new o.l(e, n ? { - originalEvent: n - } : {})) - } - _requestFrame() { - return this._map.triggerRepaint(), this._map._renderTaskQueue.add((e => { - delete this._frameId, this.handleEvent(new Oi("renderFrame", { - timeStamp: e - })), this._applyChanges() - })) - } - _triggerRenderFrame() { - this._frameId === void 0 && (this._frameId = this._requestFrame()) - } - } - class ed extends o.E { - constructor(e, n, s) { - super(), this._renderFrameCallback = () => { - const u = Math.min((ye.now() - this._easeStart) / this._easeOptions.duration, 1); - this._onEaseFrame(this._easeOptions.easing(u)), u < 1 && this._easeFrameId ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop() - }, this._moving = !1, this._zooming = !1, this.transform = e, this._bearingSnap = s.bearingSnap, this.cameraHelper = n, this.on("moveend", (() => { - delete this._requestedCameraState - })) - } - migrateProjection(e, n) { - e.apply(this.transform), this.transform = e, this.cameraHelper = n - } - getCenter() { - return new o.S(this.transform.center.lng, this.transform.center.lat) - } - setCenter(e, n) { - return this.jumpTo({ - center: e - }, n) - } - getCenterElevation() { - return this.transform.elevation - } - setCenterElevation(e, n) { - return this.jumpTo({ - elevation: e - }, n), this - } - getCenterClampedToGround() { - return this._centerClampedToGround - } - setCenterClampedToGround(e) { - this._centerClampedToGround = e - } - panBy(e, n, s) { - return e = o.P.convert(e).mult(-1), this.panTo(this.transform.center, o.e({ - offset: e - }, n), s) - } - panTo(e, n, s) { - return this.easeTo(o.e({ - center: e - }, n), s) - } - getZoom() { - return this.transform.zoom - } - setZoom(e, n) { - return this.jumpTo({ - zoom: e - }, n), this - } - zoomTo(e, n, s) { - return this.easeTo(o.e({ - zoom: e - }, n), s) - } - zoomIn(e, n) { - return this.zoomTo(this.getZoom() + 1, e, n), this - } - zoomOut(e, n) { - return this.zoomTo(this.getZoom() - 1, e, n), this - } - getVerticalFieldOfView() { - return this.transform.fov - } - setVerticalFieldOfView(e, n) { - return e != this.transform.fov && (this.transform.setFov(e), this.fire(new o.l("movestart", n)).fire(new o.l("move", n)).fire(new o.l("moveend", n))), this - } - getBearing() { - return this.transform.bearing - } - setBearing(e, n) { - return this.jumpTo({ - bearing: e - }, n), this - } - getPadding() { - return this.transform.padding - } - setPadding(e, n) { - return this.jumpTo({ - padding: e - }, n), this - } - rotateTo(e, n, s) { - return this.easeTo(o.e({ - bearing: e - }, n), s) - } - resetNorth(e, n) { - return this.rotateTo(0, o.e({ - duration: 1e3 - }, e), n), this - } - resetNorthPitch(e, n) { - return this.easeTo(o.e({ - bearing: 0, - pitch: 0, - roll: 0, - duration: 1e3 - }, e), n), this - } - snapToNorth(e, n) { - return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(e, n) : this - } - getPitch() { - return this.transform.pitch - } - setPitch(e, n) { - return this.jumpTo({ - pitch: e - }, n), this - } - getRoll() { - return this.transform.roll - } - setRoll(e, n) { - return this.jumpTo({ - roll: e - }, n), this - } - cameraForBounds(e, n) { - e = dt.convert(e).adjustAntiMeridian(); - const s = n && n.bearing || 0; - return this._cameraForBoxAndBearing(e.getNorthWest(), e.getSouthEast(), s, n) - } - _cameraForBoxAndBearing(e, n, s, u) { - const d = { - top: 0, - bottom: 0, - right: 0, - left: 0 - }; - if (typeof(u = o.e({ - padding: d, - offset: [0, 0], - maxZoom: this.transform.maxZoom - }, u)).padding == "number") { - const P = u.padding; - u.padding = { - top: P, - bottom: P, - right: P, - left: P - } - } - const m = o.e(d, u.padding); - u.padding = m; - const y = this.transform, - w = new dt(e, n); - return this.cameraHelper.cameraForBoxAndBearing(u, m, w, s, y) - } - fitBounds(e, n, s) { - return this._fitInternal(this.cameraForBounds(e, n), n, s) - } - fitScreenCoordinates(e, n, s, u, d) { - return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(o.P.convert(e)), this.transform.screenPointToLocation(o.P.convert(n)), s, u), u, d) - } - _fitInternal(e, n, s) { - return e ? (delete(n = o.e(e, n)).padding, n.linear ? this.easeTo(n, s) : this.flyTo(n, s)) : this - } - jumpTo(e, n) { - this.stop(); - const s = this._getTransformForUpdate(); - let u = !1, - d = !1, - m = !1; - const y = s.zoom; - this.cameraHelper.handleJumpToCenterZoom(s, e); - const w = s.zoom !== y; - return "elevation" in e && s.elevation !== +e.elevation && s.setElevation(+e.elevation), "bearing" in e && s.bearing !== +e.bearing && (u = !0, s.setBearing(+e.bearing)), "pitch" in e && s.pitch !== +e.pitch && (d = !0, s.setPitch(+e.pitch)), "roll" in e && s.roll !== +e.roll && (m = !0, s.setRoll(+e.roll)), e.padding == null || s.isPaddingEqual(e.padding) || s.setPadding(e.padding), this._applyUpdatedTransform(s), this.fire(new o.l("movestart", n)).fire(new o.l("move", n)), w && this.fire(new o.l("zoomstart", n)).fire(new o.l("zoom", n)).fire(new o.l("zoomend", n)), u && this.fire(new o.l("rotatestart", n)).fire(new o.l("rotate", n)).fire(new o.l("rotateend", n)), d && this.fire(new o.l("pitchstart", n)).fire(new o.l("pitch", n)).fire(new o.l("pitchend", n)), m && this.fire(new o.l("rollstart", n)).fire(new o.l("roll", n)).fire(new o.l("rollend", n)), this.fire(new o.l("moveend", n)) - } - calculateCameraOptionsFromTo(e, n, s, u = 0) { - const d = o.a1.fromLngLat(e, n), - m = o.a1.fromLngLat(s, u), - y = m.x - d.x, - w = m.y - d.y, - P = m.z - d.z, - M = Math.hypot(y, w, P); - if (M === 0) throw new Error("Can't calculate camera options with same From and To"); - const D = Math.hypot(y, w), - z = o.ak(this.transform.cameraToCenterDistance / M / this.transform.tileSize), - B = 180 * Math.atan2(y, -w) / Math.PI; - let U = 180 * Math.acos(D / M) / Math.PI; - return U = P < 0 ? 90 - U : 90 + U, { - center: m.toLngLat(), - elevation: u, - zoom: z, - pitch: U, - bearing: B - } - } - calculateCameraOptionsFromCameraLngLatAltRotation(e, n, s, u, d) { - const m = this.transform.calculateCenterFromCameraLngLatAlt(e, n, s, u); - return { - center: m.center, - elevation: m.elevation, - zoom: m.zoom, - bearing: s, - pitch: u, - roll: d - } - } - easeTo(e, n) { - this._stop(!1, e.easeId), ((e = o.e({ - offset: [0, 0], - duration: 500, - easing: o.co - }, e)).animate === !1 || !e.essential && ye.prefersReducedMotion) && (e.duration = 0); - const s = this._getTransformForUpdate(), - u = this.getBearing(), - d = s.pitch, - m = s.roll, - y = "bearing" in e ? this._normalizeBearing(e.bearing, u) : u, - w = "pitch" in e ? +e.pitch : d, - P = "roll" in e ? this._normalizeBearing(e.roll, m) : m, - M = "padding" in e ? e.padding : s.padding, - D = o.P.convert(e.offset); - let z, B; - e.around && (z = o.S.convert(e.around), B = s.locationToScreenPoint(z)); - const U = { - moving: this._moving, - zooming: this._zooming, - rotating: this._rotating, - pitching: this._pitching, - rolling: this._rolling - }, - ee = this.cameraHelper.handleEaseTo(s, { - bearing: y, - pitch: w, - roll: P, - padding: M, - around: z, - aroundPoint: B, - offsetAsPoint: D, - offset: e.offset, - zoom: e.zoom, - center: e.center - }); - return this._rotating = this._rotating || u !== y, this._pitching = this._pitching || w !== d, this._rolling = this._rolling || P !== m, this._padding = !s.isPaddingEqual(M), this._zooming = this._zooming || ee.isZooming, this._easeId = e.easeId, this._prepareEase(n, e.noMoveStart, U), this.terrain && this._prepareElevation(ee.elevationCenter), this._ease((J => { - ee.easeFunc(J), this.terrain && !e.freezeElevation && this._updateElevation(J), this._applyUpdatedTransform(s), this._fireMoveEvents(n) - }), (J => { - this.terrain && e.freezeElevation && this._finalizeElevation(), this._afterEase(n, J) - }), e), this - } - _prepareEase(e, n, s = {}) { - this._moving = !0, n || s.moving || this.fire(new o.l("movestart", e)), this._zooming && !s.zooming && this.fire(new o.l("zoomstart", e)), this._rotating && !s.rotating && this.fire(new o.l("rotatestart", e)), this._pitching && !s.pitching && this.fire(new o.l("pitchstart", e)), this._rolling && !s.rolling && this.fire(new o.l("rollstart", e)) - } - _prepareElevation(e) { - this._elevationCenter = e, this._elevationStart = this.transform.elevation, this._elevationTarget = this.terrain.getElevationForLngLatZoom(e, this.transform.tileZoom), this._elevationFreeze = !0 - } - _updateElevation(e) { - this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom)); - const n = this.terrain.getElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom); - if (e < 1 && n !== this._elevationTarget) { - const s = this._elevationTarget - this._elevationStart; - this._elevationStart += e * (s - (n - (s * e + this._elevationStart)) / (1 - e)), this._elevationTarget = n - } - this.transform.setElevation(o.C.number(this._elevationStart, this._elevationTarget, e)) - } - _finalizeElevation() { - this._elevationFreeze = !1, this.getCenterClampedToGround() && this.transform.recalculateZoomAndCenter(this.terrain) - } - _getTransformForUpdate() { - return this.transformCameraUpdate || this.terrain ? (this._requestedCameraState || (this._requestedCameraState = this.transform.clone()), this._requestedCameraState) : this.transform - } - _elevateCameraIfInsideTerrain(e) { - if (!this.terrain && e.elevation >= 0 && e.pitch <= 90) return {}; - const n = e.getCameraLngLat(), - s = e.getCameraAltitude(), - u = this.terrain ? this.terrain.getElevationForLngLatZoom(n, e.zoom) : 0; - if (s < u) { - const d = this.calculateCameraOptionsFromTo(n, u, e.center, e.elevation); - return { - pitch: d.pitch, - zoom: d.zoom - } - } - return {} - } - _applyUpdatedTransform(e) { - const n = []; - if (n.push((u => this._elevateCameraIfInsideTerrain(u))), this.transformCameraUpdate && n.push((u => this.transformCameraUpdate(u))), !n.length) return; - const s = e.clone(); - for (const u of n) { - const d = s.clone(), - { - center: m, - zoom: y, - roll: w, - pitch: P, - bearing: M, - elevation: D - } = u(d); - m && d.setCenter(m), D !== void 0 && d.setElevation(D), y !== void 0 && d.setZoom(y), w !== void 0 && d.setRoll(w), P !== void 0 && d.setPitch(P), M !== void 0 && d.setBearing(M), s.apply(d) - } - this.transform.apply(s) - } - _fireMoveEvents(e) { - this.fire(new o.l("move", e)), this._zooming && this.fire(new o.l("zoom", e)), this._rotating && this.fire(new o.l("rotate", e)), this._pitching && this.fire(new o.l("pitch", e)), this._rolling && this.fire(new o.l("roll", e)) - } - _afterEase(e, n) { - if (this._easeId && n && this._easeId === n) return; - delete this._easeId; - const s = this._zooming, - u = this._rotating, - d = this._pitching, - m = this._rolling; - this._moving = !1, this._zooming = !1, this._rotating = !1, this._pitching = !1, this._rolling = !1, this._padding = !1, s && this.fire(new o.l("zoomend", e)), u && this.fire(new o.l("rotateend", e)), d && this.fire(new o.l("pitchend", e)), m && this.fire(new o.l("rollend", e)), this.fire(new o.l("moveend", e)) - } - flyTo(e, n) { - if (!e.essential && ye.prefersReducedMotion) { - const $e = o.Q(e, ["center", "zoom", "bearing", "pitch", "roll", "elevation"]); - return this.jumpTo($e, n) - } - this.stop(), e = o.e({ - offset: [0, 0], - speed: 1.2, - curve: 1.42, - easing: o.co - }, e); - const s = this._getTransformForUpdate(), - u = s.bearing, - d = s.pitch, - m = s.roll, - y = s.padding, - w = "bearing" in e ? this._normalizeBearing(e.bearing, u) : u, - P = "pitch" in e ? +e.pitch : d, - M = "roll" in e ? this._normalizeBearing(e.roll, m) : m, - D = "padding" in e ? e.padding : s.padding, - z = o.P.convert(e.offset); - let B = s.centerPoint.add(z); - const U = s.screenPointToLocation(B), - ee = this.cameraHelper.handleFlyTo(s, { - bearing: w, - pitch: P, - roll: M, - padding: D, - locationAtOffset: U, - offsetAsPoint: z, - center: e.center, - minZoom: e.minZoom, - zoom: e.zoom - }); - let J = e.curve; - const re = Math.max(s.width, s.height), - se = re / ee.scaleOfZoom, - de = ee.pixelPathLength; - typeof ee.scaleOfMinZoom == "number" && (J = Math.sqrt(re / ee.scaleOfMinZoom / de * 2)); - const ue = J * J; - - function ge($e) { - const Rt = (se * se - re * re + ($e ? -1 : 1) * ue * ue * de * de) / (2 * ($e ? se : re) * ue * de); - return Math.log(Math.sqrt(Rt * Rt + 1) - Rt) - } - - function Te($e) { - return (Math.exp($e) - Math.exp(-$e)) / 2 - } - - function he($e) { - return (Math.exp($e) + Math.exp(-$e)) / 2 - } - const De = ge(!1); - let He = function($e) { - return he(De) / he(De + J * $e) - }, - je = function($e) { - return re * ((he(De) * (Te(Rt = De + J * $e) / he(Rt)) - Te(De)) / ue) / de; - var Rt - }, - qe = (ge(!0) - De) / J; - if (Math.abs(de) < 2e-6 || !isFinite(qe)) { - if (Math.abs(re - se) < 1e-6) return this.easeTo(e, n); - const $e = se < re ? -1 : 1; - qe = Math.abs(Math.log(se / re)) / J, je = () => 0, He = Rt => Math.exp($e * J * Rt) - } - return e.duration = "duration" in e ? +e.duration : 1e3 * qe / ("screenSpeed" in e ? +e.screenSpeed / J : +e.speed), e.maxDuration && e.duration > e.maxDuration && (e.duration = 0), this._zooming = !0, this._rotating = u !== w, this._pitching = P !== d, this._rolling = M !== m, this._padding = !s.isPaddingEqual(D), this._prepareEase(n, !1), this.terrain && this._prepareElevation(ee.targetCenter), this._ease(($e => { - const Rt = $e * qe, - Nt = 1 / He(Rt), - yt = je(Rt); - this._rotating && s.setBearing(o.C.number(u, w, $e)), this._pitching && s.setPitch(o.C.number(d, P, $e)), this._rolling && s.setRoll(o.C.number(m, M, $e)), this._padding && (s.interpolatePadding(y, D, $e), B = s.centerPoint.add(z)), ee.easeFunc($e, Nt, yt, B), this.terrain && !e.freezeElevation && this._updateElevation($e), this._applyUpdatedTransform(s), this._fireMoveEvents(n) - }), (() => { - this.terrain && e.freezeElevation && this._finalizeElevation(), this._afterEase(n) - }), e), this - } - isEasing() { - return !!this._easeFrameId - } - stop() { - return this._stop() - } - _stop(e, n) { - var s; - if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) { - const u = this._onEaseEnd; - delete this._onEaseEnd, u.call(this, n) - } - return e || (s = this.handlers) === null || s === void 0 || s.stop(!1), this - } - _ease(e, n, s) { - s.animate === !1 || s.duration === 0 ? (e(1), n()) : (this._easeStart = ye.now(), this._easeOptions = s, this._onEaseFrame = e, this._onEaseEnd = n, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback)) - } - _normalizeBearing(e, n) { - e = o.aO(e, -180, 180); - const s = Math.abs(e - n); - return Math.abs(e - 360 - n) < s && (e -= 360), Math.abs(e + 360 - n) < s && (e += 360), e - } - queryTerrainElevation(e) { - return this.terrain ? this.terrain.getElevationForLngLatZoom(o.S.convert(e), this.transform.tileZoom) : null - } - } - const Xc = { - compact: !0, - customAttribution: '
      MapLibre' - }; - class Kc { - constructor(e = Xc) { - 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 = n => { - !n || n.sourceDataType !== "metadata" && n.sourceDataType !== "visibility" && n.dataType !== "style" && n.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 = e - } - getDefaultPosition() { - return "bottom-right" - } - onAdd(e) { - return this._map = e, this._compact = this.options.compact, this._container = X.create("details", "maplibregl-ctrl maplibregl-ctrl-attrib"), this._compactButton = X.create("summary", "maplibregl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = X.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() { - X.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(e, n) { - const s = this._map._getUIString(`AttributionControl.${n}`); - e.title = s, e.setAttribute("aria-label", s) - } - _updateAttributions() { - if (!this._map.style) return; - let e = []; - if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? e = e.concat(this.options.customAttribution.map((u => typeof u != "string" ? "" : u))) : typeof this.options.customAttribution == "string" && e.push(this.options.customAttribution)), this._map.style.stylesheet) { - const u = this._map.style.stylesheet; - this.styleOwner = u.owner, this.styleId = u.id - } - const n = this._map.style.sourceCaches; - for (const u in n) { - const d = n[u]; - if (d.used || d.usedForTerrain) { - const m = d.getSource(); - m.attribution && e.indexOf(m.attribution) < 0 && e.push(m.attribution) - } - } - e = e.filter((u => String(u).trim())), e.sort(((u, d) => u.length - d.length)), e = e.filter(((u, d) => { - for (let m = d + 1; m < e.length; m++) - if (e[m].indexOf(u) >= 0) return !1; - return !0 - })); - const s = e.join(" | "); - s !== this._attribHTML && (this._attribHTML = s, e.length ? (this._innerContainer.innerHTML = X.sanitize(s), this._container.classList.remove("maplibregl-attrib-empty")) : this._container.classList.add("maplibregl-attrib-empty"), this._updateCompact(), this._editLink = null) - } - } - class td { - constructor(e = {}) { - this._updateCompact = () => { - const n = this._container.children; - if (n.length) { - const s = n[0]; - this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? this._compact !== !1 && s.classList.add("maplibregl-compact") : s.classList.remove("maplibregl-compact") - } - }, this.options = e - } - getDefaultPosition() { - return "bottom-left" - } - onAdd(e) { - this._map = e, this._compact = this.options && this.options.compact, this._container = X.create("div", "maplibregl-ctrl"); - const n = X.create("a", "maplibregl-ctrl-logo"); - return n.target = "_blank", n.rel = "noopener nofollow", n.href = "https://maplibre.org/", n.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), n.setAttribute("rel", "noopener nofollow"), this._container.appendChild(n), this._container.style.display = "block", this._map.on("resize", this._updateCompact), this._updateCompact(), this._container - } - onRemove() { - X.remove(this._container), this._map.off("resize", this._updateCompact), this._map = void 0, this._compact = void 0 - } - } - class Na { - constructor() { - this._queue = [], this._id = 0, this._cleared = !1, this._currentlyRunning = !1 - } - add(e) { - const n = ++this._id; - return this._queue.push({ - callback: e, - id: n, - cancelled: !1 - }), n - } - remove(e) { - const n = this._currentlyRunning, - s = n ? this._queue.concat(n) : this._queue; - for (const u of s) - if (u.id === e) return void(u.cancelled = !0) - } - run(e = 0) { - if (this._currentlyRunning) throw new Error("Attempting to run(), but is already running."); - const n = this._currentlyRunning = this._queue; - this._queue = []; - for (const s of n) - if (!s.cancelled && (s.callback(e), this._cleared)) break; - this._cleared = !1, this._currentlyRunning = !1 - } - clear() { - this._currentlyRunning && (this._cleared = !0), this._queue = [] - } - } - var Cl = o.aJ([{ - name: "a_pos3d", - type: "Int16", - components: 3 - }]); - class hr extends o.E { - constructor(e) { - super(), this._lastTilesetChange = ye.now(), this.sourceCache = e, this._tiles = {}, this._renderableTilesKeys = [], this._sourceTileCache = {}, this.minzoom = 0, this.maxzoom = 22, this.deltaZoom = 1, this.tileSize = e._source.tileSize * 2 ** this.deltaZoom, e.usedForTerrain = !0, e.tileSize = this.tileSize - } - destruct() { - this.sourceCache.usedForTerrain = !1, this.sourceCache.tileSize = null - } - update(e, n) { - this.sourceCache.update(e, n), this._renderableTilesKeys = []; - const s = {}; - for (const u of xe(e, { - tileSize: this.tileSize, - minzoom: this.minzoom, - maxzoom: this.maxzoom, - reparseOverscaled: !1, - terrain: n, - calculateTileZoom: this.sourceCache._source.calculateTileZoom - })) s[u.key] = !0, this._renderableTilesKeys.push(u.key), this._tiles[u.key] || (u.terrainRttPosMatrix32f = new Float64Array(16), o.bY(u.terrainRttPosMatrix32f, 0, o.$, o.$, 0, 0, 1), this._tiles[u.key] = new Nr(u, this.tileSize), this._lastTilesetChange = ye.now()); - for (const u in this._tiles) s[u] || delete this._tiles[u] - } - freeRtt(e) { - for (const n in this._tiles) { - const s = this._tiles[n]; - (!e || s.tileID.equals(e) || s.tileID.isChildOf(e) || e.isChildOf(s.tileID)) && (s.rtt = []) - } - } - getRenderableTiles() { - return this._renderableTilesKeys.map((e => this.getTileByID(e))) - } - getTileByID(e) { - return this._tiles[e] - } - getTerrainCoords(e, n) { - return n ? this._getTerrainCoordsForTileRanges(e, n) : this._getTerrainCoordsForRegularTile(e) - } - _getTerrainCoordsForRegularTile(e) { - const n = {}; - for (const s of this._renderableTilesKeys) { - const u = this._tiles[s].tileID, - d = e.clone(), - m = o.ba(); - if (u.canonical.equals(e.canonical)) o.bY(m, 0, o.$, o.$, 0, 0, 1); - else if (u.canonical.isChildOf(e.canonical)) { - const y = u.canonical.z - e.canonical.z, - w = u.canonical.x - (u.canonical.x >> y << y), - P = u.canonical.y - (u.canonical.y >> y << y), - M = o.$ >> y; - o.bY(m, 0, M, M, 0, 0, 1), o.M(m, m, [-w * M, -P * M, 0]) - } else { - if (!e.canonical.isChildOf(u.canonical)) continue; - { - const y = e.canonical.z - u.canonical.z, - w = e.canonical.x - (e.canonical.x >> y << y), - P = e.canonical.y - (e.canonical.y >> y << y), - M = o.$ >> y; - o.bY(m, 0, o.$, o.$, 0, 0, 1), o.M(m, m, [w * M, P * M, 0]), o.N(m, m, [1 / 2 ** y, 1 / 2 ** y, 0]) - } - } - d.terrainRttPosMatrix32f = new Float32Array(m), n[s] = d - } - return n - } - _getTerrainCoordsForTileRanges(e, n) { - const s = {}; - for (const u of this._renderableTilesKeys) { - const d = this._tiles[u].tileID; - if (!this._isWithinTileRanges(d, n)) continue; - const m = e.clone(), - y = o.ba(); - if (d.canonical.z === e.canonical.z) { - const w = e.canonical.x - d.canonical.x, - P = e.canonical.y - d.canonical.y; - o.bY(y, 0, o.$, o.$, 0, 0, 1), o.M(y, y, [w * o.$, P * o.$, 0]) - } else if (d.canonical.z > e.canonical.z) { - const w = d.canonical.z - e.canonical.z, - P = d.canonical.x - (d.canonical.x >> w << w), - M = d.canonical.y - (d.canonical.y >> w << w), - D = e.canonical.x - (d.canonical.x >> w), - z = e.canonical.y - (d.canonical.y >> w), - B = o.$ >> w; - o.bY(y, 0, B, B, 0, 0, 1), o.M(y, y, [-P * B + D * o.$, -M * B + z * o.$, 0]) - } else { - const w = e.canonical.z - d.canonical.z, - P = e.canonical.x - (e.canonical.x >> w << w), - M = e.canonical.y - (e.canonical.y >> w << w), - D = (e.canonical.x >> w) - d.canonical.x, - z = (e.canonical.y >> w) - d.canonical.y, - B = o.$ << w; - o.bY(y, 0, B, B, 0, 0, 1), o.M(y, y, [P * o.$ + D * B, M * o.$ + z * B, 0]) - } - m.terrainRttPosMatrix32f = new Float32Array(y), s[u] = m - } - return s - } - getSourceTile(e, n) { - const s = this.sourceCache._source; - let u = e.overscaledZ - this.deltaZoom; - if (u > s.maxzoom && (u = s.maxzoom), u < s.minzoom) return null; - this._sourceTileCache[e.key] || (this._sourceTileCache[e.key] = e.scaledTo(u).key); - let d = this.sourceCache.getTileByID(this._sourceTileCache[e.key]); - if ((!d || !d.dem) && n) - for (; u >= s.minzoom && (!d || !d.dem);) d = this.sourceCache.getTileByID(e.scaledTo(u--).key); - return d - } - anyTilesAfterTime(e = Date.now()) { - return this._lastTilesetChange >= e - } - _isWithinTileRanges(e, n) { - return n[e.canonical.z] && e.canonical.x >= n[e.canonical.z].minTileX && e.canonical.x <= n[e.canonical.z].maxTileX && e.canonical.y >= n[e.canonical.z].minTileY && e.canonical.y <= n[e.canonical.z].maxTileY - } - } - class Rr { - constructor(e, n, s) { - this._meshCache = {}, this.painter = e, this.sourceCache = new hr(n), this.options = s, this.exaggeration = typeof s.exaggeration == "number" ? s.exaggeration : 1, this.qualityFactor = 2, this.meshSize = 128, this._demMatrixCache = {}, this.coordsIndex = [], this._coordsTextureSize = 1024 - } - getDEMElevation(e, n, s, u = o.$) { - var d; - if (!(n >= 0 && n < u && s >= 0 && s < u)) return 0; - const m = this.getTerrainData(e), - y = (d = m.tile) === null || d === void 0 ? void 0 : d.dem; - if (!y) return 0; - const w = o.cs([], [n / u * o.$, s / u * o.$], m.u_terrain_matrix), - P = [w[0] * y.dim, w[1] * y.dim], - M = Math.floor(P[0]), - D = Math.floor(P[1]), - z = P[0] - M, - B = P[1] - D; - return y.get(M, D) * (1 - z) * (1 - B) + y.get(M + 1, D) * z * (1 - B) + y.get(M, D + 1) * (1 - z) * B + y.get(M + 1, D + 1) * z * B - } - getElevationForLngLatZoom(e, n) { - if (!o.ct(n, e.wrap())) return 0; - const { - tileID: s, - mercatorX: u, - mercatorY: d - } = this._getOverscaledTileIDFromLngLatZoom(e, n); - return this.getElevation(s, u % o.$, d % o.$, o.$) - } - getElevation(e, n, s, u = o.$) { - return this.getDEMElevation(e, n, s, u) * this.exaggeration - } - getTerrainData(e) { - if (!this._emptyDemTexture) { - const u = this.painter.context, - d = new o.R({ - width: 1, - height: 1 - }, new Uint8Array(4)); - this._emptyDepthTexture = new o.T(u, d, u.gl.RGBA, { - premultiply: !1 - }), this._emptyDemUnpack = [0, 0, 0, 0], this._emptyDemTexture = new o.T(u, new o.R({ - width: 1, - height: 1 - }), u.gl.RGBA, { - premultiply: !1 - }), this._emptyDemTexture.bind(u.gl.NEAREST, u.gl.CLAMP_TO_EDGE), this._emptyDemMatrix = o.ag([]) - } - const n = this.sourceCache.getSourceTile(e, !0); - if (n && n.dem && (!n.demTexture || n.needsTerrainPrepare)) { - const u = this.painter.context; - n.demTexture = this.painter.getTileTexture(n.dem.stride), n.demTexture ? n.demTexture.update(n.dem.getPixels(), { - premultiply: !1 - }) : n.demTexture = new o.T(u, n.dem.getPixels(), u.gl.RGBA, { - premultiply: !1 - }), n.demTexture.bind(u.gl.NEAREST, u.gl.CLAMP_TO_EDGE), n.needsTerrainPrepare = !1 - } - const s = n && n + n.tileID.key + e.key; - if (s && !this._demMatrixCache[s]) { - const u = this.sourceCache.sourceCache._source.maxzoom; - let d = e.canonical.z - n.tileID.canonical.z; - e.overscaledZ > e.canonical.z && (e.canonical.z >= u ? d = e.canonical.z - u : o.w("cannot calculate elevation if elevation maxzoom > source.maxzoom")); - const m = e.canonical.x - (e.canonical.x >> d << d), - y = e.canonical.y - (e.canonical.y >> d << d), - w = o.cu(new Float64Array(16), [1 / (o.$ << d), 1 / (o.$ << d), 0]); - o.M(w, w, [m * o.$, y * o.$, 0]), this._demMatrixCache[e.key] = { - matrix: w, - coord: e - } - } - return { - u_depth: 2, - u_terrain: 3, - u_terrain_dim: n && n.dem && n.dem.dim || 1, - u_terrain_matrix: s ? this._demMatrixCache[e.key].matrix : this._emptyDemMatrix, - u_terrain_unpack: n && n.dem && n.dem.getUnpackVector() || this._emptyDemUnpack, - u_terrain_exaggeration: this.exaggeration, - texture: (n && n.demTexture || this._emptyDemTexture).texture, - depthTexture: (this._fboDepthTexture || this._emptyDepthTexture).texture, - tile: n - } - } - getFramebuffer(e) { - const n = this.painter, - s = n.width / devicePixelRatio, - u = n.height / devicePixelRatio; - return !this._fbo || this._fbo.width === s && this._fbo.height === u || (this._fbo.destroy(), this._fboCoordsTexture.destroy(), this._fboDepthTexture.destroy(), delete this._fbo, delete this._fboDepthTexture, delete this._fboCoordsTexture), this._fboCoordsTexture || (this._fboCoordsTexture = new o.T(n.context, { - width: s, - height: u, - data: null - }, n.context.gl.RGBA, { - premultiply: !1 - }), this._fboCoordsTexture.bind(n.context.gl.NEAREST, n.context.gl.CLAMP_TO_EDGE)), this._fboDepthTexture || (this._fboDepthTexture = new o.T(n.context, { - width: s, - height: u, - data: null - }, n.context.gl.RGBA, { - premultiply: !1 - }), this._fboDepthTexture.bind(n.context.gl.NEAREST, n.context.gl.CLAMP_TO_EDGE)), this._fbo || (this._fbo = n.context.createFramebuffer(s, u, !0, !1), this._fbo.depthAttachment.set(n.context.createRenderbuffer(n.context.gl.DEPTH_COMPONENT16, s, u))), this._fbo.colorAttachment.set(e === "coords" ? this._fboCoordsTexture.texture : this._fboDepthTexture.texture), this._fbo - } - getCoordsTexture() { - const e = this.painter.context; - if (this._coordsTexture) return this._coordsTexture; - const n = new Uint8Array(this._coordsTextureSize * this._coordsTextureSize * 4); - for (let d = 0, m = 0; d < this._coordsTextureSize; d++) - for (let y = 0; y < this._coordsTextureSize; y++, m += 4) n[m + 0] = 255 & y, n[m + 1] = 255 & d, n[m + 2] = y >> 8 << 4 | d >> 8, n[m + 3] = 0; - const s = new o.R({ - width: this._coordsTextureSize, - height: this._coordsTextureSize - }, new Uint8Array(n.buffer)), - u = new o.T(e, s, e.gl.RGBA, { - premultiply: !1 - }); - return u.bind(e.gl.NEAREST, e.gl.CLAMP_TO_EDGE), this._coordsTexture = u, u - } - pointCoordinate(e) { - this.painter.maybeDrawDepthAndCoords(!0); - const n = new Uint8Array(4), - s = this.painter.context, - u = s.gl, - d = Math.round(e.x * this.painter.pixelRatio / devicePixelRatio), - m = Math.round(e.y * this.painter.pixelRatio / devicePixelRatio), - y = Math.round(this.painter.height / devicePixelRatio); - s.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer), u.readPixels(d, y - m - 1, 1, 1, u.RGBA, u.UNSIGNED_BYTE, n), s.bindFramebuffer.set(null); - const w = n[0] + (n[2] >> 4 << 8), - P = n[1] + ((15 & n[2]) << 8), - M = this.coordsIndex[255 - n[3]], - D = M && this.sourceCache.getTileByID(M); - if (!D) return null; - const z = this._coordsTextureSize, - B = (1 << D.tileID.canonical.z) * z; - return new o.a1((D.tileID.canonical.x * z + w) / B + D.tileID.wrap, (D.tileID.canonical.y * z + P) / B, this.getElevation(D.tileID, w, P, z)) - } - depthAtPoint(e) { - const n = new Uint8Array(4), - s = this.painter.context, - u = s.gl; - return s.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer), u.readPixels(e.x, this.painter.height / devicePixelRatio - e.y - 1, 1, 1, u.RGBA, u.UNSIGNED_BYTE, n), s.bindFramebuffer.set(null), (n[0] / 16777216 + n[1] / 65536 + n[2] / 256 + n[3]) / 256 - } - getTerrainMesh(e) { - var n; - const s = ((n = this.painter.style.projection) === null || n === void 0 ? void 0 : n.transitionState) > 0, - u = s && e.canonical.y === 0, - d = s && e.canonical.y === (1 << e.canonical.z) - 1, - m = `m_${u?"n":""}_${d?"s":""}`; - if (this._meshCache[m]) return this._meshCache[m]; - const y = this.painter.context, - w = new o.cv, - P = new o.aN, - M = this.meshSize, - D = o.$ / M, - z = M * M; - for (let he = 0; he <= M; he++) - for (let De = 0; De <= M; De++) w.emplaceBack(De * D, he * D, 0); - for (let he = 0; he < z; he += M + 1) - for (let De = 0; De < M; De++) P.emplaceBack(De + he, M + De + he + 1, M + De + he + 2), P.emplaceBack(De + he, M + De + he + 2, De + he + 1); - const B = w.length, - U = B + (M + 1), - ee = (M + 1) * M, - J = u ? o.bh : 0, - re = u ? 0 : 1, - se = d ? o.bi : o.$, - de = d ? 0 : 1; - for (let he = 0; he <= M; he++) w.emplaceBack(he * D, J, re); - for (let he = 0; he <= M; he++) w.emplaceBack(he * D, se, de); - for (let he = 0; he < M; he++) P.emplaceBack(ee + he, U + he, U + he + 1), P.emplaceBack(ee + he, U + he + 1, ee + he + 1), P.emplaceBack(0 + he, B + he + 1, B + he), P.emplaceBack(0 + he, 0 + he + 1, B + he + 1); - const ue = w.length, - ge = ue + 2 * (M + 1); - for (const he of [0, 1]) - for (let De = 0; De <= M; De++) - for (const He of [0, 1]) w.emplaceBack(he * o.$, De * D, He); - for (let he = 0; he < 2 * M; he += 2) P.emplaceBack(ue + he, ue + he + 1, ue + he + 3), P.emplaceBack(ue + he, ue + he + 3, ue + he + 2), P.emplaceBack(ge + he, ge + he + 3, ge + he + 1), P.emplaceBack(ge + he, ge + he + 2, ge + he + 3); - const Te = new Ri(y.createVertexBuffer(w, Cl.members), y.createIndexBuffer(P), o.aM.simpleSegment(0, 0, w.length, P.length)); - return this._meshCache[m] = Te, Te - } - getMeshFrameDelta(e) { - return 2 * Math.PI * o.bu / Math.pow(2, Math.max(e, 0)) / 5 - } - getMinTileElevationForLngLatZoom(e, n) { - var s; - const { - tileID: u - } = this._getOverscaledTileIDFromLngLatZoom(e, n); - return (s = this.getMinMaxElevation(u).minElevation) !== null && s !== void 0 ? s : 0 - } - getMinMaxElevation(e) { - const n = this.getTerrainData(e).tile, - s = { - minElevation: null, - maxElevation: null - }; - return n && n.dem && (s.minElevation = n.dem.min * this.exaggeration, s.maxElevation = n.dem.max * this.exaggeration), s - } - _getOverscaledTileIDFromLngLatZoom(e, n) { - const s = o.a1.fromLngLat(e.wrap()), - u = (1 << n) * o.$, - d = s.x * u, - m = s.y * u, - y = Math.floor(d / o.$), - w = Math.floor(m / o.$); - return { - tileID: new o.Z(n, 0, n, y, w), - mercatorX: d, - mercatorY: m - } - } - } - class Sl { - constructor(e, n, s) { - this._context = e, this._size = n, this._tileSize = s, this._objects = [], this._recentlyUsed = [], this._stamp = 0 - } - destruct() { - for (const e of this._objects) e.texture.destroy(), e.fbo.destroy() - } - _createObject(e) { - const n = this._context.createFramebuffer(this._tileSize, this._tileSize, !0, !0), - s = new o.T(this._context, { - width: this._tileSize, - height: this._tileSize, - data: null - }, this._context.gl.RGBA); - return s.bind(this._context.gl.LINEAR, this._context.gl.CLAMP_TO_EDGE), this._context.extTextureFilterAnisotropic && this._context.gl.texParameterf(this._context.gl.TEXTURE_2D, this._context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, this._context.extTextureFilterAnisotropicMax), n.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL, this._tileSize, this._tileSize)), n.colorAttachment.set(s.texture), { - id: e, - fbo: n, - texture: s, - stamp: -1, - inUse: !1 - } - } - getObjectForId(e) { - return this._objects[e] - } - useObject(e) { - e.inUse = !0, this._recentlyUsed = this._recentlyUsed.filter((n => e.id !== n)), this._recentlyUsed.push(e.id) - } - stampObject(e) { - e.stamp = ++this._stamp - } - getOrCreateFreeObject() { - for (const n of this._recentlyUsed) - if (!this._objects[n].inUse) return this._objects[n]; - if (this._objects.length >= this._size) throw new Error("No free RenderPool available, call freeAllObjects() required!"); - const e = this._createObject(this._objects.length); - return this._objects.push(e), e - } - freeObject(e) { - e.inUse = !1 - } - freeAllObjects() { - for (const e of this._objects) this.freeObject(e) - } - isFull() { - return !(this._objects.length < this._size) && this._objects.some((e => !e.inUse)) === !1 - } - } - const ns = { - background: !0, - fill: !0, - line: !0, - raster: !0, - hillshade: !0, - "color-relief": !0 - }; - class Pl { - constructor(e, n) { - this.painter = e, this.terrain = n, this.pool = new Sl(e.context, 30, n.sourceCache.tileSize * n.qualityFactor) - } - destruct() { - this.pool.destruct() - } - getTexture(e) { - return this.pool.getObjectForId(e.rtt[this._stacks.length - 1].id).texture - } - prepareForRender(e, n) { - this._stacks = [], this._prevType = null, this._rttTiles = [], this._renderableTiles = this.terrain.sourceCache.getRenderableTiles(), this._renderableLayerIds = e._order.filter((s => !e._layers[s].isHidden(n))), this._coordsAscending = {}; - for (const s in e.sourceCaches) { - this._coordsAscending[s] = {}; - const u = e.sourceCaches[s].getVisibleCoordinates(), - d = e.sourceCaches[s].getSource(), - m = d instanceof Ft ? d.terrainTileRanges : null; - for (const y of u) { - const w = this.terrain.sourceCache.getTerrainCoords(y, m); - for (const P in w) this._coordsAscending[s][P] || (this._coordsAscending[s][P] = []), this._coordsAscending[s][P].push(w[P]) - } - } - this._coordsAscendingStr = {}; - for (const s of e._order) { - const u = e._layers[s], - d = u.source; - if (ns[u.type] && !this._coordsAscendingStr[d]) { - this._coordsAscendingStr[d] = {}; - for (const m in this._coordsAscending[d]) this._coordsAscendingStr[d][m] = this._coordsAscending[d][m].map((y => y.key)).sort().join() - } - } - for (const s of this._renderableTiles) - for (const u in this._coordsAscendingStr) { - const d = this._coordsAscendingStr[u][s.tileID.key]; - d && d !== s.rttCoords[u] && (s.rtt = []) - } - } - renderLayer(e, n) { - if (e.isHidden(this.painter.transform.zoom)) return !1; - const s = Object.assign(Object.assign({}, n), { - isRenderingToTexture: !0 - }), - u = e.type, - d = this.painter, - m = this._renderableLayerIds[this._renderableLayerIds.length - 1] === e.id; - if (ns[u] && (this._prevType && ns[this._prevType] || this._stacks.push([]), this._prevType = u, this._stacks[this._stacks.length - 1].push(e.id), !m)) return !0; - if (ns[this._prevType] || ns[u] && m) { - this._prevType = u; - const y = this._stacks.length - 1, - w = this._stacks[y] || []; - for (const P of this._renderableTiles) { - if (this.pool.isFull() && (vl(this.painter, this.terrain, this._rttTiles, s), this._rttTiles = [], this.pool.freeAllObjects()), this._rttTiles.push(P), P.rtt[y]) { - const D = this.pool.getObjectForId(P.rtt[y].id); - if (D.stamp === P.rtt[y].stamp) { - this.pool.useObject(D); - continue - } - } - const M = this.pool.getOrCreateFreeObject(); - this.pool.useObject(M), this.pool.stampObject(M), P.rtt[y] = { - id: M.id, - stamp: M.stamp - }, d.context.bindFramebuffer.set(M.fbo.framebuffer), d.context.clear({ - color: o.bf.transparent, - stencil: 0 - }), d.currentStencilSource = void 0; - for (let D = 0; D < w.length; D++) { - const z = d.style._layers[w[D]], - B = z.source ? this._coordsAscending[z.source][P.tileID.key] : [P.tileID]; - d.context.viewport.set([0, 0, M.fbo.width, M.fbo.height]), d._renderTileClippingMasks(z, B, !0), d.renderLayer(d, d.style.sourceCaches[z.source], z, B, s), z.source && (P.rttCoords[z.source] = this._coordsAscendingStr[z.source][P.tileID.key]) - } - } - return vl(this.painter, this.terrain, this._rttTiles, s), this._rttTiles = [], this.pool.freeAllObjects(), ns[u] - } - return !1 - } - } - const jn = { - "AttributionControl.ToggleAttribution": "Toggle attribution", - "AttributionControl.MapFeedback": "Map feedback", - "FullscreenControl.Enter": "Enter fullscreen", - "FullscreenControl.Exit": "Exit fullscreen", - "GeolocateControl.FindMyLocation": "Find my location", - "GeolocateControl.LocationNotAvailable": "Location not available", - "LogoControl.Title": "MapLibre logo", - "Map.Title": "Map", - "Marker.Title": "Map marker", - "NavigationControl.ResetBearing": "Reset bearing to north", - "NavigationControl.ZoomIn": "Zoom in", - "NavigationControl.ZoomOut": "Zoom out", - "Popup.Close": "Close popup", - "ScaleControl.Feet": "ft", - "ScaleControl.Meters": "m", - "ScaleControl.Kilometers": "km", - "ScaleControl.Miles": "mi", - "ScaleControl.NauticalMiles": "nm", - "GlobeControl.Enable": "Enable globe", - "GlobeControl.Disable": "Disable globe", - "TerrainControl.Enable": "Enable terrain", - "TerrainControl.Disable": "Disable terrain", - "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map", - "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map", - "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map" - }, - rd = $, - ha = { - hash: !1, - interactive: !0, - bearingSnap: 7, - attributionControl: Xc, - maplibreLogo: !1, - refreshExpiredTiles: !0, - canvasContextAttributes: { - antialias: !1, - preserveDrawingBuffer: !1, - powerPreference: "high-performance", - failIfMajorPerformanceCaveat: !1, - desynchronized: !1, - contextType: void 0 - }, - scrollZoom: !0, - minZoom: -2, - maxZoom: 22, - minPitch: 0, - maxPitch: 60, - boxZoom: !0, - dragRotate: !0, - dragPan: !0, - keyboard: !0, - doubleClickZoom: !0, - touchZoomRotate: !0, - touchPitch: !0, - cooperativeGestures: !1, - trackResize: !0, - center: [0, 0], - elevation: 0, - zoom: 0, - bearing: 0, - pitch: 0, - roll: 0, - renderWorldCopies: !0, - maxTileCacheSize: null, - maxTileCacheZoomLevels: o.a.MAX_TILE_CACHE_ZOOM_LEVELS, - transformRequest: null, - transformCameraUpdate: null, - fadeDuration: 300, - crossSourceCollisions: !0, - clickTolerance: 3, - localIdeographFontFamily: "sans-serif", - pitchWithRotate: !0, - rollEnabled: !1, - validateStyle: !0, - maxCanvasSize: [4096, 4096], - cancelPendingTileRequestsWhileZooming: !0, - centerClampedToGround: !0 - }, - bp = { - showCompass: !0, - showZoom: !0, - visualizePitch: !1, - visualizeRoll: !0 - }; - class Lo { - constructor(e, n, s = !1) { - this.mousedown = d => { - this.startMove(d, X.mousePos(this.element, d)), X.addEventListener(window, "mousemove", this.mousemove), X.addEventListener(window, "mouseup", this.mouseup) - }, this.mousemove = d => { - this.move(d, X.mousePos(this.element, d)) - }, this.mouseup = d => { - this._rotatePitchHandler.dragEnd(d), this.offTemp() - }, this.touchstart = d => { - d.targetTouches.length !== 1 ? this.reset() : (this._startPos = this._lastPos = X.touchPos(this.element, d.targetTouches)[0], this.startMove(d, this._startPos), X.addEventListener(window, "touchmove", this.touchmove, { - passive: !1 - }), X.addEventListener(window, "touchend", this.touchend)) - }, this.touchmove = d => { - d.targetTouches.length !== 1 ? this.reset() : (this._lastPos = X.touchPos(this.element, d.targetTouches)[0], this.move(d, this._lastPos)) - }, this.touchend = d => { - d.targetTouches.length === 0 && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), delete this._startPos, delete this._lastPos, this.offTemp() - }, this.reset = () => { - this._rotatePitchHandler.reset(), delete this._startPos, delete this._lastPos, this.offTemp() - }, this._clickTolerance = 10, this.element = n; - const u = new vp; - this._rotatePitchHandler = new Zs({ - clickTolerance: 3, - move: (d, m) => { - const y = n.getBoundingClientRect(), - w = new o.P((y.bottom - y.top) / 2, (y.right - y.left) / 2); - return { - bearingDelta: o.cn(new o.P(d.x, m.y), m, w), - pitchDelta: s ? -.5 * (m.y - d.y) : void 0 - } - }, - moveStateManager: u, - enable: !0, - assignEvents: () => {} - }), this.map = e, X.addEventListener(n, "mousedown", this.mousedown), X.addEventListener(n, "touchstart", this.touchstart, { - passive: !1 - }), X.addEventListener(n, "touchcancel", this.reset) - } - startMove(e, n) { - this._rotatePitchHandler.dragStart(e, n), X.disableDrag() - } - move(e, n) { - const s = this.map, - { - bearingDelta: u, - pitchDelta: d - } = this._rotatePitchHandler.dragMove(e, n) || {}; - u && s.setBearing(s.getBearing() + u), d && s.setPitch(s.getPitch() + d) - } - off() { - const e = this.element; - X.removeEventListener(e, "mousedown", this.mousedown), X.removeEventListener(e, "touchstart", this.touchstart, { - passive: !1 - }), X.removeEventListener(window, "touchmove", this.touchmove, { - passive: !1 - }), X.removeEventListener(window, "touchend", this.touchend), X.removeEventListener(e, "touchcancel", this.reset), this.offTemp() - } - offTemp() { - X.enableDrag(), X.removeEventListener(window, "mousemove", this.mousemove), X.removeEventListener(window, "mouseup", this.mouseup), X.removeEventListener(window, "touchmove", this.touchmove, { - passive: !1 - }), X.removeEventListener(window, "touchend", this.touchend) - } - } - let Ai; - - function Hi(h, e, n, s = !1) { - if (s || !n.getCoveringTilesDetailsProvider().allowWorldCopies()) return h == null ? void 0 : h.wrap(); - const u = new o.S(h.lng, h.lat); - if (h = new o.S(h.lng, h.lat), e) { - const d = new o.S(h.lng - 360, h.lat), - m = new o.S(h.lng + 360, h.lat), - y = n.locationToScreenPoint(h).distSqr(e); - n.locationToScreenPoint(d).distSqr(e) < y ? h = d : n.locationToScreenPoint(m).distSqr(e) < y && (h = m) - } - for (; Math.abs(h.lng - n.center.lng) > 180;) { - const d = n.locationToScreenPoint(h); - if (d.x >= 0 && d.y >= 0 && d.x <= n.width && d.y <= n.height) break; - h.lng > n.center.lng ? h.lng -= 360 : h.lng += 360 - } - return h.lng !== u.lng && n.isPointOnMapSurface(n.locationToScreenPoint(h)) ? h : u - } - const Il = { - 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 Ws(h, e, n) { - const s = h.classList; - for (const u in Il) s.remove(`maplibregl-${n}-anchor-${u}`); - s.add(`maplibregl-${n}-anchor-${e}`) - } - class Xs extends o.E { - constructor(e) { - if (super(), this._onKeyPress = n => { - const s = n.code, - u = n.charCode || n.keyCode; - s !== "Space" && s !== "Enter" && u !== 32 && u !== 13 || this.togglePopup() - }, this._onMapClick = n => { - const s = n.originalEvent.target, - u = this._element; - this._popup && (s === u || u.contains(s)) && this.togglePopup() - }, this._update = n => { - if (!this._map) return; - const s = this._map.loaded() && !this._map.isMoving(); - ((n == null ? void 0 : n.type) === "terrain" || (n == null ? void 0 : n.type) === "render" && !s) && this._map.once("render", this._update), this._lngLat = Hi(this._lngLat, this._flatPos, this._map.transform), this._flatPos = this._pos = this._map.project(this._lngLat)._add(this._offset), this._map.terrain && (this._flatPos = this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset)); - let u = ""; - this._rotationAlignment === "viewport" || this._rotationAlignment === "auto" ? u = `rotateZ(${this._rotation}deg)` : this._rotationAlignment === "map" && (u = `rotateZ(${this._rotation-this._map.getBearing()}deg)`); - let d = ""; - this._pitchAlignment === "viewport" || this._pitchAlignment === "auto" ? d = "rotateX(0deg)" : this._pitchAlignment === "map" && (d = `rotateX(${this._map.getPitch()}deg)`), this._subpixelPositioning || n && n.type !== "moveend" || (this._pos = this._pos.round()), X.setTransform(this._element, `${Il[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${d} ${u}`), ye.frameAsync(new AbortController).then((() => { - this._updateOpacity(n && n.type === "moveend") - })).catch((() => {})) - }, this._onMove = n => { - if (!this._isDragging) { - const s = this._clickTolerance || this._map._clickTolerance; - this._isDragging = n.point.dist(this._pointerdownPos) >= s - } - this._isDragging && (this._pos = n.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 o.l("dragstart"))), this.fire(new o.l("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 o.l("dragend")), this._state = "inactive" - }, this._addDragHandler = n => { - this._element.contains(n.originalEvent.target) && (n.preventDefault(), this._positionDelta = n.point.sub(this._pos).add(this._offset), this._pointerdownPos = n.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp)) - }, this._anchor = e && e.anchor || "center", this._color = e && e.color || "#3FB1CE", this._scale = e && e.scale || 1, this._draggable = e && e.draggable || !1, this._clickTolerance = e && e.clickTolerance || 0, this._subpixelPositioning = e && e.subpixelPositioning || !1, this._isDragging = !1, this._state = "inactive", this._rotation = e && e.rotation || 0, this._rotationAlignment = e && e.rotationAlignment || "auto", this._pitchAlignment = e && e.pitchAlignment && e.pitchAlignment !== "auto" ? e.pitchAlignment : this._rotationAlignment, this.setOpacity(e == null ? void 0 : e.opacity, e == null ? void 0 : e.opacityWhenCovered), e && e.element) this._element = e.element, this._offset = o.P.convert(e && e.offset || [0, 0]); - else { - this._defaultMarker = !0, this._element = X.create("div"); - const n = X.createNS("http://www.w3.org/2000/svg", "svg"), - s = 41, - u = 27; - n.setAttributeNS(null, "display", "block"), n.setAttributeNS(null, "height", `${s}px`), n.setAttributeNS(null, "width", `${u}px`), n.setAttributeNS(null, "viewBox", `0 0 ${u} ${s}`); - const d = X.createNS("http://www.w3.org/2000/svg", "g"); - d.setAttributeNS(null, "stroke", "none"), d.setAttributeNS(null, "stroke-width", "1"), d.setAttributeNS(null, "fill", "none"), d.setAttributeNS(null, "fill-rule", "evenodd"); - const m = X.createNS("http://www.w3.org/2000/svg", "g"); - m.setAttributeNS(null, "fill-rule", "nonzero"); - const y = X.createNS("http://www.w3.org/2000/svg", "g"); - y.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), y.setAttributeNS(null, "fill", "#000000"); - const w = [{ - 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 re of w) { - const se = X.createNS("http://www.w3.org/2000/svg", "ellipse"); - se.setAttributeNS(null, "opacity", "0.04"), se.setAttributeNS(null, "cx", "10.5"), se.setAttributeNS(null, "cy", "5.80029008"), se.setAttributeNS(null, "rx", re.rx), se.setAttributeNS(null, "ry", re.ry), y.appendChild(se) - } - const P = X.createNS("http://www.w3.org/2000/svg", "g"); - P.setAttributeNS(null, "fill", this._color); - const M = X.createNS("http://www.w3.org/2000/svg", "path"); - M.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"), P.appendChild(M); - const D = X.createNS("http://www.w3.org/2000/svg", "g"); - D.setAttributeNS(null, "opacity", "0.25"), D.setAttributeNS(null, "fill", "#000000"); - const z = X.createNS("http://www.w3.org/2000/svg", "path"); - z.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"), D.appendChild(z); - const B = X.createNS("http://www.w3.org/2000/svg", "g"); - B.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), B.setAttributeNS(null, "fill", "#FFFFFF"); - const U = X.createNS("http://www.w3.org/2000/svg", "g"); - U.setAttributeNS(null, "transform", "translate(8.0, 8.0)"); - const ee = X.createNS("http://www.w3.org/2000/svg", "circle"); - ee.setAttributeNS(null, "fill", "#000000"), ee.setAttributeNS(null, "opacity", "0.25"), ee.setAttributeNS(null, "cx", "5.5"), ee.setAttributeNS(null, "cy", "5.5"), ee.setAttributeNS(null, "r", "5.4999962"); - const J = X.createNS("http://www.w3.org/2000/svg", "circle"); - J.setAttributeNS(null, "fill", "#FFFFFF"), J.setAttributeNS(null, "cx", "5.5"), J.setAttributeNS(null, "cy", "5.5"), J.setAttributeNS(null, "r", "5.4999962"), U.appendChild(ee), U.appendChild(J), m.appendChild(y), m.appendChild(P), m.appendChild(D), m.appendChild(B), m.appendChild(U), n.appendChild(m), n.setAttributeNS(null, "height", s * this._scale + "px"), n.setAttributeNS(null, "width", u * this._scale + "px"), this._element.appendChild(n), this._offset = o.P.convert(e && e.offset || [0, -14]) - } - if (this._element.classList.add("maplibregl-marker"), this._element.addEventListener("dragstart", (n => { - n.preventDefault() - })), this._element.addEventListener("mousedown", (n => { - n.preventDefault() - })), Ws(this._element, this._anchor, "marker"), e && e.className) - for (const n of e.className.split(" ")) this._element.classList.add(n); - this._popup = null - } - addTo(e) { - return this.remove(), this._map = e, this._element.hasAttribute("aria-label") || this._element.setAttribute("aria-label", e._getUIString("Marker.Title")), e.getCanvasContainer().appendChild(this._element), e.on("move", this._update), e.on("moveend", this._update), e.on("terrain", this._update), e.on("projectiontransition", this._update), 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("terrain", this._update), this._map.off("projectiontransition", 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), X.remove(this._element), this._popup && this._popup.remove(), this - } - getLngLat() { - return this._lngLat - } - setLngLat(e) { - return this._lngLat = o.S.convert(e), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this - } - getElement() { - return this._element - } - setPopup(e) { - if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), e) { - if (!("offset" in e.options)) { - const u = Math.abs(13.5) / Math.SQRT2; - e.options.offset = this._defaultMarker ? { - top: [0, 0], - "top-left": [0, 0], - "top-right": [0, 0], - bottom: [0, -38.1], - "bottom-left": [u, -1 * (38.1 - 13.5 + u)], - "bottom-right": [-u, -1 * (38.1 - 13.5 + u)], - left: [13.5, -1 * (38.1 - 13.5)], - right: [-13.5, -1 * (38.1 - 13.5)] - } : this._offset - } - this._popup = e, this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress) - } - return this - } - setSubpixelPositioning(e) { - return this._subpixelPositioning = e, this - } - getPopup() { - return this._popup - } - togglePopup() { - const e = this._popup; - return this._element.style.opacity === this._opacityWhenCovered ? this : e ? (e.isOpen() ? e.remove() : (e.setLngLat(this._lngLat), e.addTo(this._map)), this) : this - } - _updateOpacity(e = !1) { - var n, s; - const u = (n = this._map) === null || n === void 0 ? void 0 : n.terrain, - d = this._map.transform.isLocationOccluded(this._lngLat); - if (!u || d) { - const B = d ? this._opacityWhenCovered : this._opacity; - return void(this._element.style.opacity !== B && (this._element.style.opacity = B)) - } - if (e) this._opacityTimeout = null; - else { - if (this._opacityTimeout) return; - this._opacityTimeout = setTimeout((() => { - this._opacityTimeout = null - }), 100) - } - const m = this._map, - y = m.terrain.depthAtPoint(this._pos), - w = m.terrain.getElevationForLngLatZoom(this._lngLat, m.transform.tileZoom); - if (m.transform.lngLatToCameraDepth(this._lngLat, w) - y < .006) return void(this._element.style.opacity = this._opacity); - const P = -this._offset.y / m.transform.pixelsPerMeter, - M = Math.sin(m.getPitch() * Math.PI / 180) * P, - D = m.terrain.depthAtPoint(new o.P(this._pos.x, this._pos.y - this._offset.y)), - z = m.transform.lngLatToCameraDepth(this._lngLat, w + M) - D > .006; - !((s = this._popup) === null || s === void 0) && s.isOpen() && z && this._popup.remove(), this._element.style.opacity = z ? this._opacityWhenCovered : this._opacity - } - getOffset() { - return this._offset - } - setOffset(e) { - return this._offset = o.P.convert(e), this._update(), this - } - addClassName(e) { - this._element.classList.add(e) - } - removeClassName(e) { - this._element.classList.remove(e) - } - toggleClassName(e) { - return this._element.classList.toggle(e) - } - setDraggable(e) { - return this._draggable = !!e, this._map && (e ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this - } - isDraggable() { - return this._draggable - } - setRotation(e) { - return this._rotation = e || 0, this._update(), this - } - getRotation() { - return this._rotation - } - setRotationAlignment(e) { - return this._rotationAlignment = e || "auto", this._update(), this - } - getRotationAlignment() { - return this._rotationAlignment - } - setPitchAlignment(e) { - return this._pitchAlignment = e && e !== "auto" ? e : this._rotationAlignment, this._update(), this - } - getPitchAlignment() { - return this._pitchAlignment - } - setOpacity(e, n) { - return (this._opacity === void 0 || e === void 0 && n === void 0) && (this._opacity = "1", this._opacityWhenCovered = "0.2"), e !== void 0 && (this._opacity = e), n !== void 0 && (this._opacityWhenCovered = n), this._map && this._updateOpacity(!0), this - } - } - const Yc = { - positionOptions: { - enableHighAccuracy: !1, - maximumAge: 0, - timeout: 6e3 - }, - fitBoundsOptions: { - maxZoom: 15 - }, - trackUserLocation: !1, - showAccuracyCircle: !0, - showUserLocation: !0 - }; - let Ks = 0, - Ss = !1; - const Do = { - maxWidth: 100, - unit: "metric" - }; - - function Ml(h, e, n) { - const s = n && n.maxWidth || 100, - u = h._container.clientHeight / 2, - d = h._container.clientWidth / 2, - m = h.unproject([d - s / 2, u]), - y = h.unproject([d + s / 2, u]), - w = Math.round(h.project(y).x - h.project(m).x), - P = Math.min(s, w, h._container.clientWidth), - M = m.distanceTo(y); - if (n && n.unit === "imperial") { - const D = 3.2808 * M; - D > 5280 ? Ps(e, P, D / 5280, h._getUIString("ScaleControl.Miles")) : Ps(e, P, D, h._getUIString("ScaleControl.Feet")) - } else n && n.unit === "nautical" ? Ps(e, P, M / 1852, h._getUIString("ScaleControl.NauticalMiles")) : M >= 1e3 ? Ps(e, P, M / 1e3, h._getUIString("ScaleControl.Kilometers")) : Ps(e, P, M, h._getUIString("ScaleControl.Meters")) - } - - function Ps(h, e, n, s) { - const u = (function(d) { - const m = Math.pow(10, `${Math.floor(d)}`.length - 1); - let y = d / m; - return y = y >= 10 ? 10 : y >= 5 ? 5 : y >= 3 ? 3 : y >= 2 ? 2 : y >= 1 ? 1 : (function(w) { - const P = Math.pow(10, Math.ceil(-Math.log(w) / Math.LN10)); - return Math.round(w * P) / P - })(y), m * y - })(n); - h.style.width = e * (u / n) + "px", h.innerHTML = `${u} ${s}` - } - const Jc = { - closeButton: !0, - closeOnClick: !0, - focusAfterOpen: !0, - className: "", - maxWidth: "240px", - subpixelPositioning: !1, - locationOccludedOpacity: void 0 - }, - Qc = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", "); - - function Al(h) { - if (h) { - if (typeof h == "number") { - const e = Math.round(Math.abs(h) / Math.SQRT2); - return { - center: new o.P(0, 0), - top: new o.P(0, h), - "top-left": new o.P(e, e), - "top-right": new o.P(-e, e), - bottom: new o.P(0, -h), - "bottom-left": new o.P(e, -e), - "bottom-right": new o.P(-e, -e), - left: new o.P(h, 0), - right: new o.P(-h, 0) - } - } - if (h instanceof o.P || Array.isArray(h)) { - const e = o.P.convert(h); - return { - center: e, - top: e, - "top-left": e, - "top-right": e, - bottom: e, - "bottom-left": e, - "bottom-right": e, - left: e, - right: e - } - } - return { - center: o.P.convert(h.center || [0, 0]), - top: o.P.convert(h.top || [0, 0]), - "top-left": o.P.convert(h["top-left"] || [0, 0]), - "top-right": o.P.convert(h["top-right"] || [0, 0]), - bottom: o.P.convert(h.bottom || [0, 0]), - "bottom-left": o.P.convert(h["bottom-left"] || [0, 0]), - "bottom-right": o.P.convert(h["bottom-right"] || [0, 0]), - left: o.P.convert(h.left || [0, 0]), - right: o.P.convert(h.right || [0, 0]) - } - } - return Al(new o.P(0, 0)) - } - const eu = $; - T.AJAXError = o.cz, T.Event = o.l, T.Evented = o.E, T.LngLat = o.S, T.MercatorCoordinate = o.a1, T.Point = o.P, T.addProtocol = o.cA, T.config = o.a, T.removeProtocol = o.cB, T.AttributionControl = Kc, T.BoxZoomHandler = Vc, T.CanvasSource = _r, T.CooperativeGesturesHandler = Qh, T.DoubleClickZoomHandler = $c, T.DragPanHandler = Yh, T.DragRotateHandler = Hc, T.EdgeInsets = on, T.FullscreenControl = class extends o.E { - constructor(h = {}) { - super(), this._onFullscreenChange = () => { - var e; - let n = window.document.fullscreenElement || window.document.mozFullScreenElement || window.document.webkitFullscreenElement || window.document.msFullscreenElement; - for (; !((e = n == null ? void 0 : n.shadowRoot) === null || e === void 0) && e.fullscreenElement;) n = n.shadowRoot.fullscreenElement; - n === this._container !== this._fullscreen && this._handleFullscreenChange() - }, this._onClickFullscreen = () => { - this._isFullscreen() ? this._exitFullscreen() : this._requestFullscreen() - }, this._fullscreen = !1, h && h.container && (h.container instanceof HTMLElement ? this._container = h.container : o.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(h) { - return this._map = h, this._container || (this._container = this._map.getContainer()), this._controlContainer = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._setupUI(), this._controlContainer - } - onRemove() { - X.remove(this._controlContainer), this._map = null, window.document.removeEventListener(this._fullscreenchange, this._onFullscreenChange) - } - _setupUI() { - const h = this._fullscreenButton = X.create("button", "maplibregl-ctrl-fullscreen", this._controlContainer); - X.create("span", "maplibregl-ctrl-icon", h).setAttribute("aria-hidden", "true"), h.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), window.document.addEventListener(this._fullscreenchange, this._onFullscreenChange) - } - _updateTitle() { - const h = this._getTitle(); - this._fullscreenButton.setAttribute("aria-label", h), this._fullscreenButton.title = h - } - _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 o.l("fullscreenstart")), this._prevCooperativeGesturesEnabled = this._map.cooperativeGestures.isEnabled(), this._map.cooperativeGestures.disable()) : (this.fire(new o.l("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() - } - }, T.GeoJSONSource = ar, T.GeolocateControl = class extends o.E { - constructor(h) { - super(), this._onSuccess = e => { - if (this._map) { - if (this._isOutOfMapMaxBounds(e)) return this._setErrorState(), this.fire(new o.l("outofmaxbounds", e)), this._updateMarker(), void this._finish(); - if (this.options.trackUserLocation) switch (this._lastKnownPosition = e, this._watchState) { - case "WAITING_ACTIVE": - case "ACTIVE_LOCK": - case "ACTIVE_ERROR": - this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active"); - break; - case "BACKGROUND": - case "BACKGROUND_ERROR": - this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"); - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`) - } - this.options.showUserLocation && this._watchState !== "OFF" && this._updateMarker(e), this.options.trackUserLocation && this._watchState !== "ACTIVE_LOCK" || this._updateCamera(e), this.options.showUserLocation && this._dotElement.classList.remove("maplibregl-user-location-dot-stale"), this.fire(new o.l("geolocate", e)), this._finish() - } - }, this._updateCamera = e => { - const n = new o.S(e.coords.longitude, e.coords.latitude), - s = e.coords.accuracy, - u = this._map.getBearing(), - d = o.e({ - bearing: u - }, this.options.fitBoundsOptions), - m = dt.fromLngLat(n, s); - this._map.fitBounds(m, d, { - geolocateSource: !0 - }) - }, this._updateMarker = e => { - if (e) { - const n = new o.S(e.coords.longitude, e.coords.latitude); - this._accuracyCircleMarker.setLngLat(n).addTo(this._map), this._userLocationDotMarker.setLngLat(n).addTo(this._map), this._accuracy = e.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 = e => { - if (this._map) { - if (e.code === 1) { - this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = !0; - const n = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.title = n, this._geolocateButton.setAttribute("aria-label", n), this._geolocationWatchID !== void 0 && this._clearWatch() - } else { - if (e.code === 3 && Ss) return; - this.options.trackUserLocation && this._setErrorState() - } - this._watchState !== "OFF" && this.options.showUserLocation && this._dotElement.classList.add("maplibregl-user-location-dot-stale"), this.fire(new o.l("error", e)), this._finish() - } - }, this._finish = () => { - this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0 - }, this._setupUI = () => { - this._map && (this._container.addEventListener("contextmenu", (e => e.preventDefault())), this._geolocateButton = X.create("button", "maplibregl-ctrl-geolocate", this._container), X.create("span", "maplibregl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", "true"), this._geolocateButton.type = "button", this._geolocateButton.disabled = !0) - }, this._finishSetupUI = e => { - if (this._map) { - if (e === !1) { - o.w("Geolocation support is not available so the GeolocateControl will be disabled."); - const n = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.disabled = !0, this._geolocateButton.title = n, this._geolocateButton.setAttribute("aria-label", n) - } else { - const n = this._map._getUIString("GeolocateControl.FindMyLocation"); - this._geolocateButton.disabled = !1, this._geolocateButton.title = n, this._geolocateButton.setAttribute("aria-label", n) - } - this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = X.create("div", "maplibregl-user-location-dot"), this._userLocationDotMarker = new Xs({ - element: this._dotElement - }), this._circleElement = X.create("div", "maplibregl-user-location-accuracy-circle"), this._accuracyCircleMarker = new Xs({ - 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", (n => { - const s = (n == null ? void 0 : n[0]) instanceof ResizeObserverEntry; - n.geolocateSource || this._watchState !== "ACTIVE_LOCK" || s || this._map.isZooming() || (this._watchState = "BACKGROUND", this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this.fire(new o.l("trackuserlocationend")), this.fire(new o.l("userlocationlostfocus"))) - })) - } - }, this.options = o.e({}, Yc, h) - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._setupUI(), (function() { - return o._(this, arguments, void 0, (function*(e = !1) { - if (Ai !== void 0 && !e) return Ai; - if (window.navigator.permissions === void 0) return Ai = !!window.navigator.geolocation, Ai; - try { - Ai = (yield window.navigator.permissions.query({ - name: "geolocation" - })).state !== "denied" - } catch { - Ai = !!window.navigator.geolocation - } - return Ai - })) - })().then((e => this._finishSetupUI(e))), this._container - } - onRemove() { - this._geolocationWatchID !== void 0 && (window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), X.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, Ks = 0, Ss = !1 - } - _isOutOfMapMaxBounds(h) { - const e = this._map.getMaxBounds(), - n = h.coords; - return e && (n.longitude < e.getWest() || n.longitude > e.getEast() || n.latitude < e.getSouth() || n.latitude > e.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 h = this._map.getBounds(), - e = h.getSouthEast(), - n = h.getNorthEast(), - s = e.distanceTo(n), - u = Math.ceil(this._accuracy / (s / this._map._container.clientHeight) * 2); - this._circleElement.style.width = `${u}px`, this._circleElement.style.height = `${u}px` - } - trigger() { - if (!this._setup) return o.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 o.l("trackuserlocationstart")); - break; - case "WAITING_ACTIVE": - case "ACTIVE_LOCK": - case "ACTIVE_ERROR": - case "BACKGROUND_ERROR": - Ks--, Ss = !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 o.l("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 o.l("trackuserlocationstart")), this.fire(new o.l("userlocationfocus")); - 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 h; - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), Ks++, Ks > 1 ? (h = { - maximumAge: 6e5, - timeout: 0 - }, Ss = !0) : (h = this.options.positionOptions, Ss = !1), this._geolocationWatchID = window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, h) - } - } 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) - } - }, T.GlobeControl = class { - constructor() { - this._toggleProjection = () => { - var h; - const e = (h = this._map.getProjection()) === null || h === void 0 ? void 0 : h.type; - this._map.setProjection(e !== "mercator" && e ? { - type: "mercator" - } : { - type: "globe" - }), this._updateGlobeIcon() - }, this._updateGlobeIcon = () => { - var h; - this._globeButton.classList.remove("maplibregl-ctrl-globe"), this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"), ((h = this._map.getProjection()) === null || h === void 0 ? void 0 : h.type) === "globe" ? (this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"), this._globeButton.title = this._map._getUIString("GlobeControl.Disable")) : (this._globeButton.classList.add("maplibregl-ctrl-globe"), this._globeButton.title = this._map._getUIString("GlobeControl.Enable")) - } - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._globeButton = X.create("button", "maplibregl-ctrl-globe", this._container), X.create("span", "maplibregl-ctrl-icon", this._globeButton).setAttribute("aria-hidden", "true"), this._globeButton.type = "button", this._globeButton.addEventListener("click", this._toggleProjection), this._updateGlobeIcon(), this._map.on("styledata", this._updateGlobeIcon), this._container - } - onRemove() { - X.remove(this._container), this._map.off("styledata", this._updateGlobeIcon), this._globeButton.removeEventListener("click", this._toggleProjection), this._map = void 0 - } - }, T.Hash = yl, T.ImageSource = Ft, T.KeyboardHandler = wl, T.LngLatBounds = dt, T.LogoControl = td, T.Map = class extends ed { - constructor(h) { - var e, n; - o.cw.mark(o.cx.create); - const s = Object.assign(Object.assign(Object.assign({}, ha), h), { - canvasContextAttributes: Object.assign(Object.assign({}, ha.canvasContextAttributes), h.canvasContextAttributes) - }); - if (s.minZoom != null && s.maxZoom != null && s.minZoom > s.maxZoom) throw new Error("maxZoom must be greater than or equal to minZoom"); - if (s.minPitch != null && s.maxPitch != null && s.minPitch > s.maxPitch) throw new Error("maxPitch must be greater than or equal to minPitch"); - if (s.minPitch != null && s.minPitch < 0) throw new Error("minPitch must be greater than or equal to 0"); - if (s.maxPitch != null && s.maxPitch > 180) throw new Error("maxPitch must be less than or equal to 180"); - const u = new wi, - d = new hn; - if (s.minZoom !== void 0 && u.setMinZoom(s.minZoom), s.maxZoom !== void 0 && u.setMaxZoom(s.maxZoom), s.minPitch !== void 0 && u.setMinPitch(s.minPitch), s.maxPitch !== void 0 && u.setMaxPitch(s.maxPitch), s.renderWorldCopies !== void 0 && u.setRenderWorldCopies(s.renderWorldCopies), super(u, d, { - bearingSnap: s.bearingSnap - }), this._idleTriggered = !1, this._crossFadingFactor = 1, this._renderTaskQueue = new Na, this._controls = [], this._mapId = o.a7(), this._contextLost = y => { - y.preventDefault(), this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this.fire(new o.l("webglcontextlost", { - originalEvent: y - })) - }, this._contextRestored = y => { - this._setupPainter(), this.resize(), this._update(), this.fire(new o.l("webglcontextrestored", { - originalEvent: y - })) - }, this._onMapScroll = y => { - if (y.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, !1 - }, this._onWindowOnline = () => { - this._update() - }, this._interactive = s.interactive, this._maxTileCacheSize = s.maxTileCacheSize, this._maxTileCacheZoomLevels = s.maxTileCacheZoomLevels, this._canvasContextAttributes = Object.assign({}, s.canvasContextAttributes), this._trackResize = s.trackResize === !0, this._bearingSnap = s.bearingSnap, this._centerClampedToGround = s.centerClampedToGround, this._refreshExpiredTiles = s.refreshExpiredTiles === !0, this._fadeDuration = s.fadeDuration, this._crossSourceCollisions = s.crossSourceCollisions === !0, this._collectResourceTiming = s.collectResourceTiming === !0, this._locale = Object.assign(Object.assign({}, jn), s.locale), this._clickTolerance = s.clickTolerance, this._overridePixelRatio = s.pixelRatio, this._maxCanvasSize = s.maxCanvasSize, this.transformCameraUpdate = s.transformCameraUpdate, this.cancelPendingTileRequestsWhileZooming = s.cancelPendingTileRequestsWhileZooming === !0, this._imageQueueHandle = Ne.addThrottleControl((() => this.isMoving())), this._requestManager = new ft(s.transformRequest), typeof s.container == "string") { - if (this._container = document.getElementById(s.container), !this._container) throw new Error(`Container '${s.container}' not found.`) - } else { - if (!(s.container instanceof HTMLElement)) throw new Error("Invalid type: 'container' must be a String or HTMLElement."); - this._container = s.container - } - if (s.maxBounds && this.setMaxBounds(s.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 y = !1; - const w = Ts((P => { - this._trackResize && !this._removed && (this.resize(P), this.redraw()) - }), 50); - this._resizeObserver = new ResizeObserver((P => { - y ? w(P) : y = !0 - })), this._resizeObserver.observe(this._container) - } - this.handlers = new Wc(this, s), this._hash = s.hash && new yl(typeof s.hash == "string" && s.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ - center: s.center, - elevation: s.elevation, - zoom: s.zoom, - bearing: s.bearing, - pitch: s.pitch, - roll: s.roll - }), s.bounds && (this.resize(), this.fitBounds(s.bounds, o.e({}, s.fitBoundsOptions, { - duration: 0 - })))); - const m = typeof s.style == "string" || ((n = (e = s.style) === null || e === void 0 ? void 0 : e.projection) === null || n === void 0 ? void 0 : n.type) !== "globe"; - this.resize(null, m), this._localIdeographFontFamily = s.localIdeographFontFamily, this._validateStyle = s.validateStyle, s.style && this.setStyle(s.style, { - localIdeographFontFamily: s.localIdeographFontFamily - }), s.attributionControl && this.addControl(new Kc(typeof s.attributionControl == "boolean" ? void 0 : s.attributionControl)), s.maplibreLogo && this.addControl(new td, s.logoPosition), this.on("style.load", (() => { - if (m || this._resizeTransform(), this.transform.unmodified) { - const y = o.Q(this.style.stylesheet, ["center", "zoom", "bearing", "pitch", "roll"]); - this.jumpTo(y) - } - })), this.on("data", (y => { - this._update(y.dataType === "style"), this.fire(new o.l(`${y.dataType}data`, y)) - })), this.on("dataloading", (y => { - this.fire(new o.l(`${y.dataType}dataloading`, y)) - })), this.on("dataabort", (y => { - this.fire(new o.l("sourcedataabort", y)) - })) - } - _getMapId() { - return this._mapId - } - setGlobalStateProperty(h, e) { - return this.style.setGlobalStateProperty(h, e), this._update(!0) - } - getGlobalState() { - return this.style.getGlobalState() - } - addControl(h, e) { - if (e === void 0 && (e = h.getDefaultPosition ? h.getDefaultPosition() : "top-right"), !h || !h.onAdd) return this.fire(new o.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods."))); - const n = h.onAdd(this); - this._controls.push(h); - const s = this._controlPositions[e]; - return e.indexOf("bottom") !== -1 ? s.insertBefore(n, s.firstChild) : s.appendChild(n), this - } - removeControl(h) { - if (!h || !h.onRemove) return this.fire(new o.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods."))); - const e = this._controls.indexOf(h); - return e > -1 && this._controls.splice(e, 1), h.onRemove(this), this - } - hasControl(h) { - return this._controls.indexOf(h) > -1 - } - calculateCameraOptionsFromTo(h, e, n, s) { - return s == null && this.terrain && (s = this.terrain.getElevationForLngLatZoom(n, this.transform.tileZoom)), super.calculateCameraOptionsFromTo(h, e, n, s) - } - resize(h, e = !0) { - const [n, s] = this._containerDimensions(), u = this._getClampedPixelRatio(n, s); - if (this._resizeCanvas(n, s, u), this.painter.resize(n, s, u), this.painter.overLimit()) { - const m = this.painter.context.gl; - this._maxCanvasSize = [m.drawingBufferWidth, m.drawingBufferHeight]; - const y = this._getClampedPixelRatio(n, s); - this._resizeCanvas(n, s, y), this.painter.resize(n, s, y) - } - this._resizeTransform(e); - const d = !this._moving; - return d && (this.stop(), this.fire(new o.l("movestart", h)).fire(new o.l("move", h))), this.fire(new o.l("resize", h)), d && this.fire(new o.l("moveend", h)), this - } - _resizeTransform(h = !0) { - var e; - const [n, s] = this._containerDimensions(); - this.transform.resize(n, s, h), (e = this._requestedCameraState) === null || e === void 0 || e.resize(n, s, h) - } - _getClampedPixelRatio(h, e) { - const { - 0: n, - 1: s - } = this._maxCanvasSize, u = this.getPixelRatio(), d = h * u, m = e * u; - return Math.min(d > n ? n / d : 1, m > s ? s / m : 1) * u - } - getPixelRatio() { - var h; - return (h = this._overridePixelRatio) !== null && h !== void 0 ? h : devicePixelRatio - } - setPixelRatio(h) { - this._overridePixelRatio = h, this.resize() - } - getBounds() { - return this.transform.getBounds() - } - getMaxBounds() { - return this.transform.getMaxBounds() - } - setMaxBounds(h) { - return this.transform.setMaxBounds(dt.convert(h)), this._update() - } - setMinZoom(h) { - if ((h = h ?? -2) >= -2 && h <= this.transform.maxZoom) return this.transform.setMinZoom(h), this._update(), this.getZoom() < h && this.setZoom(h), this; - throw new Error("minZoom must be between -2 and the current maxZoom, inclusive") - } - getMinZoom() { - return this.transform.minZoom - } - setMaxZoom(h) { - if ((h = h ?? 22) >= this.transform.minZoom) return this.transform.setMaxZoom(h), this._update(), this.getZoom() > h && this.setZoom(h), this; - throw new Error("maxZoom must be greater than the current minZoom") - } - getMaxZoom() { - return this.transform.maxZoom - } - setMinPitch(h) { - if ((h = h ?? 0) < 0) throw new Error("minPitch must be greater than or equal to 0"); - if (h >= 0 && h <= this.transform.maxPitch) return this.transform.setMinPitch(h), this._update(), this.getPitch() < h && this.setPitch(h), this; - throw new Error("minPitch must be between 0 and the current maxPitch, inclusive") - } - getMinPitch() { - return this.transform.minPitch - } - setMaxPitch(h) { - if ((h = h ?? 60) > 180) throw new Error("maxPitch must be less than or equal to 180"); - if (h >= this.transform.minPitch) return this.transform.setMaxPitch(h), this._update(), this.getPitch() > h && this.setPitch(h), this; - throw new Error("maxPitch must be greater than the current minPitch") - } - getMaxPitch() { - return this.transform.maxPitch - } - getRenderWorldCopies() { - return this.transform.renderWorldCopies - } - setRenderWorldCopies(h) { - return this.transform.setRenderWorldCopies(h), this._update() - } - project(h) { - return this.transform.locationToScreenPoint(o.S.convert(h), this.style && this.terrain) - } - unproject(h) { - return this.transform.screenPointToLocation(o.P.convert(h), this.terrain) - } - isMoving() { - var h; - return this._moving || ((h = this.handlers) === null || h === void 0 ? void 0 : h.isMoving()) - } - isZooming() { - var h; - return this._zooming || ((h = this.handlers) === null || h === void 0 ? void 0 : h.isZooming()) - } - isRotating() { - var h; - return this._rotating || ((h = this.handlers) === null || h === void 0 ? void 0 : h.isRotating()) - } - _createDelegatedListener(h, e, n) { - if (h === "mouseenter" || h === "mouseover") { - let s = !1; - return { - layers: e, - listener: n, - delegates: { - mousemove: d => { - const m = e.filter((w => this.getLayer(w))), - y = m.length !== 0 ? this.queryRenderedFeatures(d.point, { - layers: m - }) : []; - y.length ? s || (s = !0, n.call(this, new Wn(h, this, d.originalEvent, { - features: y - }))) : s = !1 - }, - mouseout: () => { - s = !1 - } - } - } - } - if (h === "mouseleave" || h === "mouseout") { - let s = !1; - return { - layers: e, - listener: n, - delegates: { - mousemove: m => { - const y = e.filter((w => this.getLayer(w))); - (y.length !== 0 ? this.queryRenderedFeatures(m.point, { - layers: y - }) : []).length ? s = !0 : s && (s = !1, n.call(this, new Wn(h, this, m.originalEvent))) - }, - mouseout: m => { - s && (s = !1, n.call(this, new Wn(h, this, m.originalEvent))) - } - } - } - } { - const s = u => { - const d = e.filter((y => this.getLayer(y))), - m = d.length !== 0 ? this.queryRenderedFeatures(u.point, { - layers: d - }) : []; - m.length && (u.features = m, n.call(this, u), delete u.features) - }; - return { - layers: e, - listener: n, - delegates: { - [h]: s - } - } - } - } - _saveDelegatedListener(h, e) { - this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[h] = this._delegatedListeners[h] || [], this._delegatedListeners[h].push(e) - } - _removeDelegatedListener(h, e, n) { - if (!this._delegatedListeners || !this._delegatedListeners[h]) return; - const s = this._delegatedListeners[h]; - for (let u = 0; u < s.length; u++) { - const d = s[u]; - if (d.listener === n && d.layers.length === e.length && d.layers.every((m => e.includes(m)))) { - for (const m in d.delegates) this.off(m, d.delegates[m]); - return void s.splice(u, 1) - } - } - } - on(h, e, n) { - if (n === void 0) return super.on(h, e); - const s = typeof e == "string" ? [e] : e, - u = this._createDelegatedListener(h, s, n); - this._saveDelegatedListener(h, u); - for (const d in u.delegates) this.on(d, u.delegates[d]); - return { - unsubscribe: () => { - this._removeDelegatedListener(h, s, n) - } - } - } - once(h, e, n) { - if (n === void 0) return super.once(h, e); - const s = typeof e == "string" ? [e] : e, - u = this._createDelegatedListener(h, s, n); - for (const d in u.delegates) { - const m = u.delegates[d]; - u.delegates[d] = (...y) => { - this._removeDelegatedListener(h, s, n), m(...y) - } - } - this._saveDelegatedListener(h, u); - for (const d in u.delegates) this.once(d, u.delegates[d]); - return this - } - off(h, e, n) { - return n === void 0 ? super.off(h, e) : (this._removeDelegatedListener(h, typeof e == "string" ? [e] : e, n), this) - } - queryRenderedFeatures(h, e) { - if (!this.style) return []; - let n; - const s = h instanceof o.P || Array.isArray(h), - u = s ? h : [ - [0, 0], - [this.transform.width, this.transform.height] - ]; - if (e = e || (s ? {} : h) || {}, u instanceof o.P || typeof u[0] == "number") n = [o.P.convert(u)]; - else { - const d = o.P.convert(u[0]), - m = o.P.convert(u[1]); - n = [d, new o.P(m.x, d.y), m, new o.P(d.x, m.y), d] - } - return this.style.queryRenderedFeatures(n, e, this.transform) - } - querySourceFeatures(h, e) { - return this.style.querySourceFeatures(h, e) - } - setStyle(h, e) { - return (e = o.e({}, { - localIdeographFontFamily: this._localIdeographFontFamily, - validate: this._validateStyle - }, e)).diff !== !1 && e.localIdeographFontFamily === this._localIdeographFontFamily && this.style && h ? (this._diffStyle(h, e), this) : (this._localIdeographFontFamily = e.localIdeographFontFamily, this._updateStyle(h, e)) - } - setTransformRequest(h) { - return this._requestManager.setTransformRequest(h), this - } - _getUIString(h) { - const e = this._locale[h]; - if (e == null) throw new Error(`Missing UI string '${h}'`); - return e - } - _updateStyle(h, e) { - var n, s; - if (e.transformStyle && this.style && !this.style._loaded) return void this.style.once("style.load", (() => this._updateStyle(h, e))); - const u = this.style && e.transformStyle ? this.style.serialize() : void 0; - return this.style && (this.style.setEventedParent(null), this.style._remove(!h)), h ? (this.style = new gc(this, e || {}), this.style.setEventedParent(this, { - style: this.style - }), typeof h == "string" ? this.style.loadURL(h, e, u) : this.style.loadJSON(h, e, u), this) : ((s = (n = this.style) === null || n === void 0 ? void 0 : n.projection) === null || s === void 0 || s.destroy(), delete this.style, this) - } - _lazyInitEmptyStyle() { - this.style || (this.style = new gc(this, {}), this.style.setEventedParent(this, { - style: this.style - }), this.style.loadEmpty()) - } - _diffStyle(h, e) { - if (typeof h == "string") { - const n = this._requestManager.transformRequest(h, "Style"); - o.j(n, new AbortController).then((s => { - this._updateDiff(s.data, e) - })).catch((s => { - s && this.fire(new o.k(s)) - })) - } else typeof h == "object" && this._updateDiff(h, e) - } - _updateDiff(h, e) { - try { - this.style.setState(h, e) && this._update(!0) - } catch (n) { - o.w(`Unable to perform style diff: ${n.message||n.error||n}. Rebuilding the style from scratch.`), this._updateStyle(h, e) - } - } - getStyle() { - if (this.style) return this.style.serialize() - } - isStyleLoaded() { - return this.style ? this.style.loaded() : o.w("There is no style added to the map.") - } - addSource(h, e) { - return this._lazyInitEmptyStyle(), this.style.addSource(h, e), this._update(!0) - } - isSourceLoaded(h) { - const e = this.style && this.style.sourceCaches[h]; - if (e !== void 0) return e.loaded(); - this.fire(new o.k(new Error(`There is no source with ID '${h}'`))) - } - setTerrain(h) { - if (this.style._checkLoaded(), this._terrainDataCallback && this.style.off("data", this._terrainDataCallback), h) { - const e = this.style.sourceCaches[h.source]; - if (!e) throw new Error(`cannot load terrain, because there exists no source with ID: ${h.source}`); - this.terrain === null && e.reload(); - for (const n in this.style._layers) { - const s = this.style._layers[n]; - s.type === "hillshade" && s.source === h.source && o.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."), s.type === "color-relief" && s.source === h.source && o.w("You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.") - } - this.terrain = new Rr(this.painter, e, h), this.painter.renderToTexture = new Pl(this.painter, this.terrain), this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this._terrainDataCallback = n => { - var s; - n.dataType === "style" ? this.terrain.sourceCache.freeRtt() : n.dataType === "source" && n.tile && (n.sourceId !== h.source || this._elevationFreeze || (this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this._centerClampedToGround && this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom))), ((s = n.source) === null || s === void 0 ? void 0 : s.type) === "image" ? this.terrain.sourceCache.freeRtt() : this.terrain.sourceCache.freeRtt(n.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.setMinElevationForCurrentTile(0), this._centerClampedToGround && this.transform.setElevation(0); - return this.fire(new o.l("terrain", { - terrain: h - })), this - } - getTerrain() { - var h, e; - return (e = (h = this.terrain) === null || h === void 0 ? void 0 : h.options) !== null && e !== void 0 ? e : null - } - areTilesLoaded() { - const h = this.style && this.style.sourceCaches; - for (const e in h) { - const n = h[e]._tiles; - for (const s in n) { - const u = n[s]; - if (u.state !== "loaded" && u.state !== "errored") return !1 - } - } - return !0 - } - removeSource(h) { - return this.style.removeSource(h), this._update(!0) - } - getSource(h) { - return this.style.getSource(h) - } - setSourceTileLodParams(h, e, n) { - if (n) { - const s = this.getSource(n); - if (!s) throw new Error(`There is no source with ID "${n}", cannot set LOD parameters`); - s.calculateTileZoom = ot(Math.max(1, h), Math.max(1, e)) - } else - for (const s in this.style.sourceCaches) this.style.sourceCaches[s].getSource().calculateTileZoom = ot(Math.max(1, h), Math.max(1, e)); - return this._update(!0), this - } - refreshTiles(h, e) { - const n = this.style.sourceCaches[h]; - if (!n) throw new Error(`There is no source cache with ID "${h}", cannot refresh tile`); - e === void 0 ? n.reload(!0) : n.refreshTiles(e.map((s => new o.a4(s.z, s.x, s.y)))) - } - addImage(h, e, n = {}) { - const { - pixelRatio: s = 1, - sdf: u = !1, - stretchX: d, - stretchY: m, - content: y, - textFitWidth: w, - textFitHeight: P - } = n; - if (this._lazyInitEmptyStyle(), !(e instanceof HTMLImageElement || o.b(e))) { - if (e.width === void 0 || e.height === void 0) return this.fire(new o.k(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: D, - data: z - } = e, B = e; - return this.style.addImage(h, { - data: new o.R({ - width: M, - height: D - }, new Uint8Array(z)), - pixelRatio: s, - stretchX: d, - stretchY: m, - content: y, - textFitWidth: w, - textFitHeight: P, - sdf: u, - version: 0, - userImage: B - }), B.onAdd && B.onAdd(this, h), this - } - } { - const { - width: M, - height: D, - data: z - } = ye.getImageData(e); - this.style.addImage(h, { - data: new o.R({ - width: M, - height: D - }, z), - pixelRatio: s, - stretchX: d, - stretchY: m, - content: y, - textFitWidth: w, - textFitHeight: P, - sdf: u, - version: 0 - }) - } - } - updateImage(h, e) { - const n = this.style.getImage(h); - if (!n) return this.fire(new o.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead."))); - const s = e instanceof HTMLImageElement || o.b(e) ? ye.getImageData(e) : e, - { - width: u, - height: d, - data: m - } = s; - if (u === void 0 || d === void 0) return this.fire(new o.k(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 (u !== n.data.width || d !== n.data.height) return this.fire(new o.k(new Error("The width and height of the updated image must be that same as the previous version of the image"))); - const y = !(e instanceof HTMLImageElement || o.b(e)); - return n.data.replace(m, y), this.style.updateImage(h, n), this - } - getImage(h) { - return this.style.getImage(h) - } - hasImage(h) { - return h ? !!this.style.getImage(h) : (this.fire(new o.k(new Error("Missing required image id"))), !1) - } - removeImage(h) { - this.style.removeImage(h) - } - loadImage(h) { - return Ne.getImage(this._requestManager.transformRequest(h, "Image"), new AbortController) - } - listImages() { - return this.style.listImages() - } - addLayer(h, e) { - return this._lazyInitEmptyStyle(), this.style.addLayer(h, e), this._update(!0) - } - moveLayer(h, e) { - return this.style.moveLayer(h, e), this._update(!0) - } - removeLayer(h) { - return this.style.removeLayer(h), this._update(!0) - } - getLayer(h) { - return this.style.getLayer(h) - } - getLayersOrder() { - return this.style.getLayersOrder() - } - setLayerZoomRange(h, e, n) { - return this.style.setLayerZoomRange(h, e, n), this._update(!0) - } - setFilter(h, e, n = {}) { - return this.style.setFilter(h, e, n), this._update(!0) - } - getFilter(h) { - return this.style.getFilter(h) - } - setPaintProperty(h, e, n, s = {}) { - return this.style.setPaintProperty(h, e, n, s), this._update(!0) - } - getPaintProperty(h, e) { - return this.style.getPaintProperty(h, e) - } - setLayoutProperty(h, e, n, s = {}) { - return this.style.setLayoutProperty(h, e, n, s), this._update(!0) - } - getLayoutProperty(h, e) { - return this.style.getLayoutProperty(h, e) - } - setGlyphs(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setGlyphs(h, e), this._update(!0) - } - getGlyphs() { - return this.style.getGlyphsUrl() - } - addSprite(h, e, n = {}) { - return this._lazyInitEmptyStyle(), this.style.addSprite(h, e, n, (s => { - s || this._update(!0) - })), this - } - removeSprite(h) { - return this._lazyInitEmptyStyle(), this.style.removeSprite(h), this._update(!0) - } - getSprite() { - return this.style.getSprite() - } - setSprite(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setSprite(h, e, (n => { - n || this._update(!0) - })), this - } - setLight(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setLight(h, e), this._update(!0) - } - getLight() { - return this.style.getLight() - } - setSky(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setSky(h, e), this._update(!0) - } - getSky() { - return this.style.getSky() - } - setFeatureState(h, e) { - return this.style.setFeatureState(h, e), this._update() - } - removeFeatureState(h, e) { - return this.style.removeFeatureState(h, e), this._update() - } - getFeatureState(h) { - return this.style.getFeatureState(h) - } - getContainer() { - return this._container - } - getCanvasContainer() { - return this._canvasContainer - } - getCanvas() { - return this._canvas - } - _containerDimensions() { - let h = 0, - e = 0; - return this._container && (h = this._container.clientWidth || 400, e = this._container.clientHeight || 300), [h, e] - } - _setupContainer() { - const h = this._container; - h.classList.add("maplibregl-map"); - const e = this._canvasContainer = X.create("div", "maplibregl-canvas-container", h); - this._interactive && e.classList.add("maplibregl-interactive"), this._canvas = X.create("canvas", "maplibregl-canvas", e), this._canvas.addEventListener("webglcontextlost", this._contextLost, !1), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, !1), this._canvas.setAttribute("tabindex", this._interactive ? "0" : "-1"), this._canvas.setAttribute("aria-label", this._getUIString("Map.Title")), this._canvas.setAttribute("role", "region"); - const n = this._containerDimensions(), - s = this._getClampedPixelRatio(n[0], n[1]); - this._resizeCanvas(n[0], n[1], s); - const u = this._controlContainer = X.create("div", "maplibregl-control-container", h), - d = this._controlPositions = {}; - ["top-left", "top-right", "bottom-left", "bottom-right"].forEach((m => { - d[m] = X.create("div", `maplibregl-ctrl-${m} `, u) - })), this._container.addEventListener("scroll", this._onMapScroll, !1) - } - _resizeCanvas(h, e, n) { - this._canvas.width = Math.floor(n * h), this._canvas.height = Math.floor(n * e), this._canvas.style.width = `${h}px`, this._canvas.style.height = `${e}px` - } - _setupPainter() { - const h = Object.assign(Object.assign({}, this._canvasContextAttributes), { - alpha: !0, - depth: !0, - stencil: !0, - premultipliedAlpha: !0 - }); - let e = null; - this._canvas.addEventListener("webglcontextcreationerror", (s => { - e = { - requestedAttributes: h - }, s && (e.statusMessage = s.statusMessage, e.type = s.type) - }), { - once: !0 - }); - let n = null; - if (n = this._canvasContextAttributes.contextType ? this._canvas.getContext(this._canvasContextAttributes.contextType, h) : this._canvas.getContext("webgl2", h) || this._canvas.getContext("webgl", h), !n) { - const s = "Failed to initialize WebGL"; - throw e ? (e.message = s, new Error(JSON.stringify(e))) : new Error(s) - } - this.painter = new jh(n, this.transform), Se.testSupport(n) - } - migrateProjection(h, e) { - super.migrateProjection(h, e), this.painter.transform = h, this.fire(new o.l("projectiontransition", { - newProjection: this.style.projection.name - })) - } - loaded() { - return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded() - } - _update(h) { - return this.style && this.style._loaded ? (this._styleDirty = this._styleDirty || h, this._sourcesDirty = !0, this.triggerRepaint(), this) : this - } - _requestRenderFrame(h) { - return this._update(), this._renderTaskQueue.add(h) - } - _cancelRenderFrame(h) { - this._renderTaskQueue.remove(h) - } - _render(h) { - var e, n, s, u, d; - const m = this._idleTriggered ? this._fadeDuration : 0, - y = ((e = this.style.projection) === null || e === void 0 ? void 0 : e.transitionState) > 0; - if (this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(h), this._removed) return; - let w = !1; - if (this.style && this._styleDirty) { - this._styleDirty = !1; - const D = this.transform.zoom, - z = ye.now(); - this.style.zoomHistory.update(D, z); - const B = new o.F(D, { - now: z, - fadeDuration: m, - zoomHistory: this.style.zoomHistory, - transition: this.style.getTransition(), - globalState: this.style.getGlobalState() - }), - U = B.crossFadingFactor(); - U === 1 && U === this._crossFadingFactor || (w = !0, this._crossFadingFactor = U), this.style.update(B) - } - const P = ((n = this.style.projection) === null || n === void 0 ? void 0 : n.transitionState) > 0 !== y; - (s = this.style.projection) === null || s === void 0 || s.setErrorQueryLatitudeDegrees(this.transform.center.lat), this.transform.setTransitionState((u = this.style.projection) === null || u === void 0 ? void 0 : u.transitionState, (d = this.style.projection) === null || d === void 0 ? void 0 : d.latitudeErrorCorrectionRadians), this.style && (this._sourcesDirty || P) && (this._sourcesDirty = !1, this.style._updateSources(this.transform)), this.terrain ? (this.terrain.sourceCache.update(this.transform, this.terrain), this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), !this._elevationFreeze && this._centerClampedToGround && this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom))) : (this.transform.setMinElevationForCurrentTile(0), this._centerClampedToGround && this.transform.setElevation(0)), this._placementDirty = this.style && this.style._updatePlacement(this.transform, this.showCollisionBoxes, m, this._crossSourceCollisions, P), this.painter.render(this.style, { - showTileBoundaries: this.showTileBoundaries, - showOverdrawInspector: this._showOverdrawInspector, - rotating: this.isRotating(), - zooming: this.isZooming(), - moving: this.isMoving(), - fadeDuration: m, - showPadding: this.showPadding - }), this.fire(new o.l("render")), this.loaded() && !this._loaded && (this._loaded = !0, o.cw.mark(o.cx.load), this.fire(new o.l("load"))), this.style && (this.style.hasTransitions() || w) && (this._styleDirty = !0), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles(); - const M = this._sourcesDirty || this._styleDirty || this._placementDirty; - return M || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new o.l("idle")), !this._loaded || this._fullyLoaded || M || (this._fullyLoaded = !0, o.cw.mark(o.cx.fullLoad)), this - } - redraw() { - return this.style && (this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._render(0)), this - } - remove() { - var h; - this._hash && this._hash.remove(); - for (const n of this._controls) n.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), Ne.removeThrottleControl(this._imageQueueHandle), (h = this._resizeObserver) === null || h === void 0 || h.disconnect(); - const e = this.painter.context.gl.getExtension("WEBGL_lose_context"); - e != null && e.loseContext && e.loseContext(), this._canvas.removeEventListener("webglcontextrestored", this._contextRestored, !1), this._canvas.removeEventListener("webglcontextlost", this._contextLost, !1), X.remove(this._canvasContainer), X.remove(this._controlContainer), this._container.removeEventListener("scroll", this._onMapScroll, !1), this._container.classList.remove("maplibregl-map"), o.cw.clearMetrics(), this._removed = !0, this.fire(new o.l("remove")) - } - triggerRepaint() { - this.style && !this._frameRequest && (this._frameRequest = new AbortController, ye.frame(this._frameRequest, (h => { - o.cw.frame(h), this._frameRequest = null; - try { - this._render(h) - } catch (e) { - if (!o.cy(e) && !(function(n) { - return n.message === To - })(e)) throw e - } - }), (() => {}))) - } - get showTileBoundaries() { - return !!this._showTileBoundaries - } - set showTileBoundaries(h) { - this._showTileBoundaries !== h && (this._showTileBoundaries = h, this._update()) - } - get showPadding() { - return !!this._showPadding - } - set showPadding(h) { - this._showPadding !== h && (this._showPadding = h, this._update()) - } - get showCollisionBoxes() { - return !!this._showCollisionBoxes - } - set showCollisionBoxes(h) { - this._showCollisionBoxes !== h && (this._showCollisionBoxes = h, h ? this.style._generateCollisionBoxes() : this._update()) - } - get showOverdrawInspector() { - return !!this._showOverdrawInspector - } - set showOverdrawInspector(h) { - this._showOverdrawInspector !== h && (this._showOverdrawInspector = h, this._update()) - } - get repaint() { - return !!this._repaint - } - set repaint(h) { - this._repaint !== h && (this._repaint = h, this.triggerRepaint()) - } - get vertices() { - return !!this._vertices - } - set vertices(h) { - this._vertices = h, this._update() - } - get version() { - return rd - } - getCameraTargetElevation() { - return this.transform.elevation - } - getProjection() { - return this.style.getProjection() - } - setProjection(h) { - return this._lazyInitEmptyStyle(), this.style.setProjection(h), this._update(!0) - } - }, T.MapMouseEvent = Wn, T.MapTouchEvent = qs, T.MapWheelEvent = qc, T.Marker = Xs, T.NavigationControl = class { - constructor(h) { - this._updateZoomButtons = () => { - const e = this._map.getZoom(), - n = e === this._map.getMaxZoom(), - s = e === this._map.getMinZoom(); - this._zoomInButton.disabled = n, this._zoomOutButton.disabled = s, this._zoomInButton.setAttribute("aria-disabled", n.toString()), this._zoomOutButton.setAttribute("aria-disabled", s.toString()) - }, this._rotateCompassArrow = () => { - this._compassIcon.style.transform = this.options.visualizePitch && this.options.visualizeRoll ? `scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)` : this.options.visualizePitch ? `scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)` : this.options.visualizeRoll ? `rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)` : `rotate(${-this._map.transform.bearing}deg)` - }, this._setButtonTitle = (e, n) => { - const s = this._map._getUIString(`NavigationControl.${n}`); - e.title = s, e.setAttribute("aria-label", s) - }, this.options = o.e({}, bp, h), this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._container.addEventListener("contextmenu", (e => e.preventDefault())), this.options.showZoom && (this._zoomInButton = this._createButton("maplibregl-ctrl-zoom-in", (e => this._map.zoomIn({}, { - originalEvent: e - }))), X.create("span", "maplibregl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", "true"), this._zoomOutButton = this._createButton("maplibregl-ctrl-zoom-out", (e => this._map.zoomOut({}, { - originalEvent: e - }))), X.create("span", "maplibregl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", "true")), this.options.showCompass && (this._compass = this._createButton("maplibregl-ctrl-compass", (e => { - this.options.visualizePitch ? this._map.resetNorthPitch({}, { - originalEvent: e - }) : this._map.resetNorth({}, { - originalEvent: e - }) - })), this._compassIcon = X.create("span", "maplibregl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", "true")) - } - onAdd(h) { - return this._map = h, 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.options.visualizeRoll && this._map.on("roll", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new Lo(this._map, this._compass, this.options.visualizePitch)), this._container - } - onRemove() { - X.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.options.visualizeRoll && this._map.off("roll", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map - } - _createButton(h, e) { - const n = X.create("button", h, this._container); - return n.type = "button", n.addEventListener("click", e), n - } - }, T.Popup = class extends o.E { - constructor(h) { - super(), this._updateOpacity = () => { - this.options.locationOccludedOpacity !== void 0 && (this._container.style.opacity = this._map.transform.isLocationOccluded(this.getLngLat()) ? `${this.options.locationOccludedOpacity}` : "") - }, this.remove = () => (this._content && X.remove(this._content), this._container && (X.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 o.l("close"))), this), this._onMouseUp = e => { - this._update(e.point) - }, this._onMouseMove = e => { - this._update(e.point) - }, this._onDrag = e => { - this._update(e.point) - }, this._update = e => { - if (!this._map || !this._lngLat && !this._trackPointer || !this._content) return; - if (!this._container) { - if (this._container = X.create("div", "maplibregl-popup", this._map.getContainer()), this._tip = X.create("div", "maplibregl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className) - for (const m of this.options.className.split(" ")) this._container.classList.add(m); - this._closeButton && this._closeButton.setAttribute("aria-label", this._map._getUIString("Popup.Close")), 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 = Hi(this._lngLat, this._flatPos, this._map.transform, this._trackPointer), this._trackPointer && !e) return; - const n = this._flatPos = this._pos = this._trackPointer && e ? e : this._map.project(this._lngLat); - this._map.terrain && (this._flatPos = this._trackPointer && e ? e : this._map.transform.locationToScreenPoint(this._lngLat)); - let s = this.options.anchor; - const u = Al(this.options.offset); - if (!s) { - const m = this._container.offsetWidth, - y = this._container.offsetHeight; - let w; - w = n.y + u.bottom.y < y ? ["top"] : n.y > this._map.transform.height - y ? ["bottom"] : [], n.x < m / 2 ? w.push("left") : n.x > this._map.transform.width - m / 2 && w.push("right"), s = w.length === 0 ? "bottom" : w.join("-") - } - let d = n.add(u[s]); - this.options.subpixelPositioning || (d = d.round()), X.setTransform(this._container, `${Il[s]} translate(${d.x}px,${d.y}px)`), Ws(this._container, s, "popup"), this._updateOpacity() - }, this._onClose = () => { - this.remove() - }, this.options = o.e(Object.create(Jc), h) - } - addTo(h) { - return this._map && this.remove(), this._map = h, 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 o.l("open")), this - } - isOpen() { - return !!this._map - } - getLngLat() { - return this._lngLat - } - setLngLat(h) { - return this._lngLat = o.S.convert(h), 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(h) { - return this.setDOMContent(document.createTextNode(h)) - } - setHTML(h) { - const e = document.createDocumentFragment(), - n = document.createElement("body"); - let s; - for (n.innerHTML = h; s = n.firstChild, s;) e.appendChild(s); - return this.setDOMContent(e) - } - getMaxWidth() { - var h; - return (h = this._container) === null || h === void 0 ? void 0 : h.style.maxWidth - } - setMaxWidth(h) { - return this.options.maxWidth = h, this._update(), this - } - setDOMContent(h) { - if (this._content) - for (; this._content.hasChildNodes();) this._content.firstChild && this._content.removeChild(this._content.firstChild); - else this._content = X.create("div", "maplibregl-popup-content", this._container); - return this._content.appendChild(h), this._createCloseButton(), this._update(), this._focusFirstElement(), this - } - addClassName(h) { - return this._container && this._container.classList.add(h), this - } - removeClassName(h) { - return this._container && this._container.classList.remove(h), this - } - setOffset(h) { - return this.options.offset = h, this._update(), this - } - toggleClassName(h) { - if (this._container) return this._container.classList.toggle(h) - } - setSubpixelPositioning(h) { - this.options.subpixelPositioning = h - } - _createCloseButton() { - this.options.closeButton && (this._closeButton = X.create("button", "maplibregl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose)) - } - _focusFirstElement() { - if (!this.options.focusAfterOpen || !this._container) return; - const h = this._container.querySelector(Qc); - h && h.focus() - } - }, T.RasterDEMTileSource = nr, T.RasterTileSource = Yt, T.ScaleControl = class { - constructor(h) { - this._onMove = () => { - Ml(this._map, this._container, this.options) - }, this.setUnit = e => { - this.options.unit = e, Ml(this._map, this._container, this.options) - }, this.options = Object.assign(Object.assign({}, Do), h) - } - getDefaultPosition() { - return "bottom-left" - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-scale", h.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container - } - onRemove() { - X.remove(this._container), this._map.off("move", this._onMove), this._map = void 0 - } - }, T.ScrollZoomHandler = Xh, T.Style = gc, T.TerrainControl = class { - constructor(h) { - 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 = h - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._terrainButton = X.create("button", "maplibregl-ctrl-terrain", this._container), X.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() { - X.remove(this._container), this._map.off("terrain", this._updateTerrainIcon), this._map = void 0 - } - }, T.TwoFingersTouchPitchHandler = bl, T.TwoFingersTouchRotateHandler = Gs, T.TwoFingersTouchZoomHandler = xl, T.TwoFingersTouchZoomRotateHandler = Jh, T.VectorTileSource = Xt, T.VideoSource = dr, T.addSourceType = (h, e) => o._(void 0, void 0, void 0, (function*() { - if (jr(h)) throw new Error(`A source type called "${h}" already exists.`); - ((n, s) => { - Ir[n] = s - })(h, e) - })), T.clearPrewarmedResources = function() { - const h = We; - h && (h.isPreloaded() && h.numActive() === 1 ? (h.release(Pe), We = 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()")) - }, T.createTileMesh = mc, T.getMaxParallelImageRequests = function() { - return o.a.MAX_PARALLEL_IMAGE_REQUESTS - }, T.getRTLTextPluginStatus = function() { - return kr().getRTLTextPluginStatus() - }, T.getVersion = function() { - return eu - }, T.getWorkerCount = function() { - return Me.workerCount - }, T.getWorkerUrl = function() { - return o.a.WORKER_URL - }, T.importScriptInWorkers = function(h) { - return tt().broadcast("IS", h) - }, T.prewarm = function() { - _t().acquire(Pe) - }, T.setMaxParallelImageRequests = function(h) { - o.a.MAX_PARALLEL_IMAGE_REQUESTS = h - }, T.setRTLTextPlugin = function(h, e) { - return kr().setRTLTextPlugin(h, e) - }, T.setWorkerCount = function(h) { - Me.workerCount = h - }, T.setWorkerUrl = function(h) { - o.a.WORKER_URL = h - } - })); - var F = _; - return F - })) - })(Pd)), Pd.exports -} -var DP = LP(); -const bd = nm(DP); -class fg { - constructor(l) { - lr(this, "gm"); - lr(this, "markers", new Map); - lr(this, "canvases", new Map); - lr(this, "canvasSize"); - lr(this, "canvasOpacity", .8); - this.input = l, this.gm = new hc(this.input.tileSize); - const _ = rv(l.img); - this.canvasSize = Math.ceil(2e3 / _) - } - place([l, _]) { - const C = this.gm.latLonToPixelsFloor(l, _, this.input.zoom), - L = this.getMarkerId(C), - F = this.gm.latLonToPixelBoundsLatLon(l, _, this.input.zoom), - T = this.input.map; - if (this.input.markerFn && !this.markers.has(L)) { - const pe = this.input.markerFn(); - pe.setLngLat({ - lat: F.min[0], - lng: (F.max[1] + F.min[1]) / 2 - }).addTo(T), this.markers.set(L, pe) - } - const { - key: o, - pos: $, - innerPos: W - } = this.getCanvasPos(C); - let ie = this.canvases.get(o); - if (!ie) { - const pe = this.canvasSize, - ye = $.x * pe, - X = $.y * pe, - Se = ye + pe - 1, - we = X + pe - 1, - Re = this.gm.pixelsToLatLon(ye, we + 1, this.input.zoom), - Ae = this.gm.pixelsToLatLon(Se + 1, X, this.input.zoom); - ie = new RP({ - id: `${this.input.id}-${o}`, - img: this.input.img, - canvasSize: this.canvasSize, - coordinates: rm({ - min: Re, - max: Ae - }), - layerPaint: { - "raster-resampling": "nearest", - "raster-opacity": this.canvasOpacity - } - }), ie.addTo(this.input.map), this.canvases.set(o, ie) - } - ie.place(W.x, W.y) - } - clear() { - const l = this.input.map; - for (const _ of this.canvases.values()) _.removeFrom(l), _.removeDOM(); - this.canvases.clear(); - for (const _ of this.markers.values()) _.remove(); - this.markers.clear() - } - clearAndPlace(l) { - this.clear(), this.place(l) - } - remove([l, _]) { - let C = !1; - const L = this.gm.latLonToPixelsFloor(l, _, this.input.zoom), - { - key: F, - innerPos: T - } = this.getCanvasPos(L), - o = this.canvases.get(F); - o && (C = o.remove(T.x, T.y), o.annotationsCount() === 0 && (this.canvases.delete(F), o.removeFrom(this.input.map), o.removeDOM())); - const $ = this.getMarkerId(L), - W = this.markers.get($); - return W == null || W.remove(), this.markers.delete($), C - } - setCanvasOpacity(l) { - this.canvasOpacity = l; - for (const _ of this.canvases.values()) _.setOpacity(l) - } - getMarkerId([l, _]) { - return `${this.input.id}:${l},${_}` - } - getCanvasPos([l, _]) { - const C = { - x: Math.floor(l / this.canvasSize), - y: Math.floor(_ / this.canvasSize) - }, - L = { - x: l % this.canvasSize, - y: _ % this.canvasSize - }, - F = `${C.x},${C.y}`; - return { - pos: C, - innerPos: L, - key: F - } - } -} -class RP { - constructor(l) { - lr(this, "annotations", new Set); - lr(this, "canvas"); - lr(this, "imgSize"); - lr(this, "maps", new Set); - this.input = l, this.imgSize = rv(l.img), this.canvas = document.createElement("canvas"), this.canvas.width = this.input.canvasSize * this.imgSize, this.canvas.height = this.input.canvasSize * this.imgSize - } - place(l, _) { - const C = this.getPixelKey(l, _); - if (this.annotations.has(C)) return !1; - const L = this.canvas.getContext("2d"); - if (L) { - const F = l * this.imgSize, - T = _ * this.imgSize; - L.drawImage(this.input.img, F, T) - } - return this.annotations.add(C), !0 - } - remove(l, _) { - const C = this.getPixelKey(l, _); - if (!this.annotations.has(C)) return !1; - const L = this.canvas.getContext("2d"); - if (L) { - const F = l * this.imgSize, - T = _ * this.imgSize; - L.clearRect(F, T, this.imgSize, this.imgSize) - } - return this.annotations.delete(C), !0 - } - addTo(l) { - const _ = this.input.id; - l.getSource(_) || l.addSource(_, { - type: "canvas", - canvas: this.canvas, - coordinates: this.input.coordinates - }), l.getLayer(_) || l.addLayer({ - id: _, - type: "raster", - source: _, - paint: this.input.layerPaint - }), this.maps.add(l) - } - removeFrom(l) { - const { - id: _ - } = this.input; - l.getLayer(_) && l.removeLayer(_), l.getSource(_) && l.removeSource(_), this.maps.delete(l) - } - removeDOM() { - this.canvas.remove() - } - annotationsCount() { - return this.annotations.size - } - setOpacity(l) { - for (const _ of this.maps.values()) _.setPaintProperty(this.input.id, "raster-opacity", l) - } - getPixelKey(l, _) { - return `${l},${_}` - } -} - -function rv(b) { - return Math.max(b.naturalWidth, b.naturalHeight) -} - -function BP() { - return window.matchMedia("(display-mode: standalone)").matches || "standalone" in window.navigator && window.navigator.standalone === !0 -} - -function Cu(b, l) { - return l.includes(b) -} - -function FP(b) { - const l = { - opaque: !0 - }, - _ = b.searchParams.get("lat"), - C = b.searchParams.get("lng"); - _ && C && (l.pos = { - lat: parseFloat(_), - lng: parseFloat(C) - }); - const L = b.searchParams.get("zoom"); - L && (l.zoom = parseFloat(L)); - const F = b.searchParams.get("season"); - F && (l.season = parseInt(F)); - const T = b.searchParams.get("opaque"); - return T && (l.opaque = T !== "0"), b.searchParams.get("select") && (l.select = !0), l.newUser = !!b.searchParams.get("new-user"), l.alliance = !!b.searchParams.get("alliance"), l -} - -function OP(b, l) { - return b = new URL(b), l.pos !== void 0 && (b.searchParams.set("lat", l.pos.lat.toString()), b.searchParams.set("lng", l.pos.lng.toString())), l.zoom !== void 0 && b.searchParams.set("zoom", l.zoom.toString()), l.season !== void 0 && b.searchParams.set("season", l.season.toString()), l.opaque !== void 0 && b.searchParams.set("opaque", l.opaque ? "1" : "0"), l.newUser !== void 0 && b.searchParams.set("new-user", l.newUser ? "1" : "0"), l.alliance !== void 0 && b.searchParams.set("alliance", l.alliance ? "1" : "0"), l.select && b.searchParams.set("alliance", "1"), b -} -const Id = zn({ - shouldReload: !0 -}); -var NP = Ie(' '), - jP = Ie(' '), - qP = Ie('
      '); - -function iv(b, l) { - Sr(l, !0); - let _ = Et(l, "value", 15), - C = Et(l, "validate", 15), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "label", "placeholder", "value", "max", "min", "validate"]), - F = nt(""); - const T = lt(() => { - var Ae; - return ((Ae = _()) == null ? void 0 : Ae.length) ?? 0 - }); - C(o); - - function o() { - return l.min !== void 0 && x(T) < l.min ? (oe(F, l.min === 1 ? _P() : yP({ - min: l.min - }), !0), !1) : l.max !== void 0 && x(T) > l.max ? (oe(F, wP({ - max: l.max - }), !0), !1) : !0 - } - Zr(() => { - var Ae; - l.max !== void 0 && x(T) > l.max && _((Ae = _()) == null ? void 0 : Ae.substring(0, l.max)) - }); - var $ = qP(), - W = k($); - { - var ie = Ae => { - var Oe = NP(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.label)), H(Ae, Oe) - }; - Ue(W, Ae => { - l.label && Ae(ie) - }) - } - var pe = V(W, 2); - Oy(pe), er(pe, Ae => ({ - ...L, - class: `textarea w-full ${l.class??""}`, - placeholder: l.placeholder, - [Uy]: Ae - }), [() => ({ - "textarea-error": !!x(F) - })]); - var ye = V(pe, 2), - X = k(ye), - Se = k(X, !0); - A(X); - var we = V(X, 2); - { - var Re = Ae => { - var Oe = jP(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.max - x(T))), H(Ae, Oe) - }; - Ue(we, Ae => { - l.max !== void 0 && Ae(Re) - }) - } - A(ye), A($), Ge(() => fe(Se, x(F))), jd(pe, _), H(b, $), Pr() -} -var VP = (b, l) => { - var _; - (_ = l()) == null || _.close() - }, - UP = Ie(' '); - -function ZP(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15), - C = nt(!1), - L = nt(zn(l.description)), - F = nt(void 0); - Ii(() => { - const Oe = Ee => { - var Ne; - Ee.key === "Escape" && ((Ne = _()) == null || Ne.close()) - }; - return document.addEventListener("keydown", Oe), () => document.removeEventListener("keydown", Oe) - }); - var T = UP(), - o = k(T), - $ = k(o), - W = k($, !0); - A($); - var ie = V($, 2), - pe = k(ie), - ye = k(pe); - { - let Oe = lt(() => Hg()); - iv(ye, { - class: "h-24 rounded-lg", - get placeholder() { - return x(Oe) - }, - max: 512, - get value() { - return x(L) - }, - set value(Ee) { - oe(L, Ee, !0) - }, - get validate() { - return x(F) - }, - set validate(Ee) { - oe(F, Ee, !0) - } - }) - } - A(pe); - var X = V(pe, 2), - Se = k(X); - Se.__click = [VP, _]; - var we = k(Se, !0); - A(Se); - var Re = V(Se, 2), - Ae = k(Re, !0); - A(Re), A(X), A(ie), A(o), fi(2), A(T), ps(T, Oe => _(Oe), () => _()), Ge((Oe, Ee, Ne) => { - fe(W, Oe), Se.disabled = x(C), fe(we, Ee), Re.disabled = x(C), fe(Ae, Ne) - }, [() => Zy(), () => qd(), () => ET()]), an("submit", ie, async () => { - var Oe, Ee, Ne; - try { - if (!((Oe = x(F)) != null && Oe())) return; - oe(C, !0), l.description !== x(L) && await ni.updateAllianceDescription(x(L)), await ((Ee = l.onsuccess) == null ? void 0 : Ee.call(l, x(L))), (Ne = _()) == null || Ne.close() - } catch (ft) { - qr.error(ft.message) - } finally { - oe(C, !1) - } - }), H(b, T), Pr() -} -Wi(["click"]); -var $P = (b, l, _) => { - navigator.clipboard.writeText(x(l).toString()), oe(_, !0), setTimeout(() => { - oe(_, !1) - }, 1e3) - }, - GP = Ie(''), - HP = Ie(' '); - -function WP(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(""), - L = nt(!1); - const F = lt(() => La.url.origin + `/join?id=${x(C)}`); - Zr(() => { - _() && ni.getAllianceInvites().then(ht => { - oe(C, ht[0], !0) - }).catch(ht => { - qr.error(ht.message) - }) - }), Ii(() => { - const ht = Xe => { - Xe.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", ht), () => document.removeEventListener("keydown", ht) - }); - var T = HP(), - o = k(T), - $ = V(k(o), 2), - W = k($, !0); - A($); - var ie = V($, 2), - pe = k(ie, !0); - A(ie); - var ye = V(ie, 2), - X = k(ye); - let Se; - var we = k(X); - ea(we); - var Re = V(we, 2), - Ae = k(Re); - let Oe; - Ae.__click = [$P, F, L]; - var Ee = k(Ae, !0); - A(Ae), A(Re), A(X); - var Ne = V(X, 2); - { - var ft = ht => { - var Xe = GP(); - H(ht, Xe) - }; - Ue(Ne, ht => { - x(C) || ht(ft) - }) - } - A(ye), A(o), fi(2), A(T), On(T, () => ht => { - Zr(() => { - _() ? ht.show() : ht.close() - }) - }), Ge((ht, Xe, ct, Je, Be, st) => { - fe(W, ht), fe(pe, Xe), Se = Or(X, 1, "border-base-content/20 rounded-field relative flex w-full items-center gap-1 border-2 py-1.5 pl-4 pr-2.5", null, Se, ct), Jl(we, Je), Oe = Or(Ae, 1, "btn btn-primary", null, Oe, Be), fe(Ee, st) - }, [() => S5(), () => M5(), () => ({ - invisible: !x(C) - }), () => x(F).toString(), () => ({ - "btn-success": x(L) - }), () => x(L) ? Gg() : bf()]), an("close", T, () => _(!1)), H(b, T), Pr() -} -Wi(["click"]); -var XP = Tr(''); - -function am(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = XP(); - er(C, () => ({ - viewBox: "0 0 256 199", - width: "256", - height: "199", - xmlns: "http://www.w3.org/2000/svg", - preserveAspectRatio: "xMidYMid", - ..._ - })), H(b, C) -} -var KP = async (b, l) => { - await navigator.clipboard.writeText(l.username), qr.info(V3()) -}, YP = Ie(''); - -function ph(b, l) { - Sr(l, !0); - var _ = YP(), - C = k(_); - C.__click = [KP, l]; - var L = k(C); - am(L, { - class: "size-4 opacity-70" - }), A(C), A(_), Ge(() => zr(_, "data-tip", `Discord: ${l.username}`)), H(b, _), Pr() -} -Wi(["click"]); -var JP = Ie(''), - QP = Ie('
      '); - -function sm(b, l) { - Sr(l, !0); - const _ = []; - let C = Et(l, "value", 15, "today"), - L = [{ - value: "today", - label: Wd() - }, { - value: "week", - label: Z5() - }, { - value: "month", - label: H5() - }, { - value: "all-time", - label: K5() - }]; - var F = QP(); - nn(F, 21, () => L, T => T.value, (T, o) => { - var $ = JP(); - ea($); - var W; - Ge(() => { - zr($, "aria-label", x(o).label), W !== (W = x(o).value) && ($.value = ($.__value = x(o).value) ?? "") - }), Vd(_, [], $, () => (x(o).value, C()), C), H(T, $) - }), A(F), H(b, F), Pr() -} -const eI = typeof window < "u" ? window : void 0; - -function tI(b) { - let l = b.activeElement; - for (; l != null && l.shadowRoot;) { - const _ = l.shadowRoot.activeElement; - if (_ === l) break; - l = _ - } - return l -} -var rc, zu, Ig; -let rI = (Ig = class { - constructor(l = {}) { - br(this, rc); - br(this, zu); - const { - window: _ = eI, - document: C = _ == null ? void 0 : _.document - } = l; - _ !== void 0 && (Jn(this, rc, C), Jn(this, zu, zg(L => { - const F = Su(_, "focusin", L), - T = Su(_, "focusout", L); - return () => { - F(), T() - } - }))) - } - get current() { - var l; - return (l = et(this, zu)) == null || l.call(this), et(this, rc) ? tI(et(this, rc)) : null - } -}, rc = new WeakMap, zu = new WeakMap, Ig); -new rI; - -function iI(b, l) { - switch (b) { - case "post": - Zr(l); - break; - case "pre": - Hf(l); - break - } -} - -function nv(b, l, _, C = {}) { - const { - lazy: L = !1 - } = C; - let F = !L, - T = Array.isArray(b) ? [] : void 0; - iI(l, () => { - const o = Array.isArray(b) ? b.map(W => W()) : b(); - if (!F) { - F = !0, T = o; - return - } - const $ = Go(() => _(o, T)); - return T = o, $ - }) -} - -function dc(b, l, _) { - nv(b, "post", l, _) -} - -function nI(b, l, _) { - nv(b, "pre", l, _) -} -dc.pre = nI; -var aI = Ie(''), - sI = Ie('
      '), - oI = Ie(' '), - lI = (b, l, _) => { - l.onlastpixelclick({ - lat: x(_).lastLatitude ?? 0, - lng: x(_).lastLongitude ?? 0 - }) - }, - cI = Ie(""), - uI = Ie('
      '), - hI = Ie('
      '), - dI = Ie('
      '); - -function pI(b, l) { - Sr(l, !0); - let _ = Et(l, "reload", 15), - C = nt(!0), - L = nt([]), - F = nt(0), - T = nt("today"), - o = {}; - _($); - - function $() { - const we = x(T); - ni.allianceLeaderboard(we).then(Re => { - oe(L, Re), o = { - [we]: Re - }, oe(C, !1) - }).catch(Re => { - qr.error(Re.message) - }) - } - dc(() => [x(T)], () => { - const we = x(T), - Re = o[we]; - if (Re) { - oe(L, Re), oe(C, !1); - return - } - oe(C, !0), ni.allianceLeaderboard(we).then(Ae => { - oe(L, Ae), o[we] = Ae, oe(C, !1) - }).catch(Ae => { - qr.error(Ae.message) - }) - }); - var W = dI(), - ie = k(W); - sm(ie, { - get value() { - return x(T) - }, - set value(we) { - oe(T, we, !0) - } - }); - var pe = V(ie, 2), - ye = k(pe); - { - var X = we => { - var Re = aI(); - H(we, Re) - }, - Se = we => { - var Re = Jt(), - Ae = zt(Re); - { - var Oe = Ne => { - var ft = sI(), - ht = k(ft), - Xe = V(ht); - { - var ct = Be => { - var st = Fn(); - Ge(it => fe(st, it), [() => Wd().toLowerCase()]), H(Be, st) - }, - Je = Be => { - var st = Jt(), - it = zt(st); - { - var Qe = vt => { - var Q = Fn(); - Ge(te => fe(Q, te), [() => Qf()]), H(vt, Q) - }, - ke = vt => { - var Q = Jt(), - te = zt(Q); - { - var _e = ne => { - var Pe = Fn(); - Ge(Me => fe(Pe, Me), [() => em()]), H(ne, Pe) - }; - Ue(te, ne => { - x(T) === "month" && ne(_e) - }, !0) - } - H(vt, Q) - }; - Ue(it, vt => { - x(T) === "week" ? vt(Qe) : vt(ke, !1) - }, !0) - } - H(Be, st) - }; - Ue(Xe, Be => { - x(T) === "today" ? Be(ct) : Be(Je, !1) - }) - } - A(ft), Ge(Be => fe(ht, `${Be??""} `), [() => Jf()]), H(Ne, ft) - }, - Ee = Ne => { - var ft = hI(), - ht = k(ft), - Xe = k(ht), - ct = V(k(Xe)), - Je = k(ct, !0); - A(ct); - var Be = V(ct), - st = k(Be, !0); - A(Be), A(Xe), A(ht); - var it = V(ht); - nn(it, 31, () => x(L), Qe => Qe.userId, (Qe, ke, vt) => { - const Q = lt(() => { - var Yt; - return ((Yt = Dt.data) == null ? void 0 : Yt.id) === x(ke).userId - }); - var te = uI(); - let _e; - var ne = k(te), - Pe = k(ne, !0); - A(ne); - var Me = V(ne), - at = k(Me), - We = k(at); - es(We, { - class: "size-10 border", - get userId() { - return x(ke).userId - }, - get pictureUrl() { - return x(ke).picture - } - }); - var Ct = V(We, 2), - _t = k(Ct), - xt = V(_t), - tt = k(xt); - A(xt), A(Ct); - var pt = V(Ct, 2); - { - var It = Yt => { - const nr = lt(() => ds(x(ke).equippedFlag)); - var ar = oI(), - Ft = k(ar, !0); - A(ar), Ge(() => { - zr(ar, "data-tip", x(nr).name), fe(Ft, x(nr).flag) - }), H(Yt, ar) - }; - Ue(pt, Yt => { - x(ke).equippedFlag && Yt(It) - }) - } - var ut = V(pt, 2); - { - var bt = Yt => { - ph(Yt, { - get username() { - return x(ke).discord - } - }) - }; - Ue(ut, Yt => { - x(ke).discord && Yt(bt) - }) - } - A(at), A(Me); - var wt = V(Me), - dt = k(wt), - Lt = V(dt); - { - var Xt = Yt => { - var nr = cI(); - let ar; - nr.__click = [lI, l, ke]; - var Ft = k(nr); - Wf(Ft, { - class: "size-4" - }), A(nr), Ge((dr, _r) => { - ar = Or(nr, 1, "btn btn-sm btn-ghost absolute -right-2 top-1/2 !-translate-y-1/2 sm:right-4", null, ar, dr), zr(nr, "data-tip", _r) - }, [() => ({ - tooltip: x(F) > 640 - }), () => aT()]), H(Yt, nr) - }; - Ue(Lt, Yt => { - x(ke).lastLatitude && x(ke).lastLongitude && Yt(Xt) - }) - } - A(wt), A(te), Ge((Yt, nr, ar) => { - var Ft; - _e = Or(te, 1, "", null, _e, Yt), fe(Pe, x(vt) + 1), Or(Ct, 1, `font-semibold ${nr??""} flex gap-1`), fe(_t, `${(x(Q)?((Ft=Dt.data)==null?void 0:Ft.name)??x(ke).name:x(ke).name)??""} `), fe(tt, `#${x(ke).userId??""}`), fe(dt, `${ar??""} `) - }, [() => ({ - "bg-base-200": x(Q) - }), () => Zn(x(ke).userId), () => x(ke).pixelsPainted.toLocaleString("en-US")]), Zo(te, () => $o, () => ({ - duration: 200 - })), H(Qe, te) - }), A(it), A(ft), Ge((Qe, ke) => { - fe(Je, Qe), fe(st, ke) - }, [() => tm(), () => Xf()]), H(Ne, ft) - }; - Ue(Ae, Ne => { - x(L).length === 0 ? Ne(Oe) : Ne(Ee, !1) - }, !0) - } - H(we, Re) - }; - Ue(ye, we => { - x(C) ? we(X) : we(Se, !1) - }) - } - A(pe), A(W), $d("innerWidth", we => oe(F, we, !0)), H(b, W), Pr() -} -Wi(["click"]); -var fI = Tr(''); - -function om(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = fI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var mI = (b, l) => l.onclickback(), - _I = Ie('
      ADMIN
      '), - gI = async (b, l) => { - try { - x(l).loading = !0, await ni.giveAllianceAdmin(x(l).id), x(l).role = "admin" - } catch { - qr.error(dC()) - } finally { - x(l).loading = !1 - } - }, vI = async (b, l, _) => { - try { - x(l).loading = !0, await ni.banAllianceUser(x(l).id), _.data = _.data.filter(C => C.id !== x(l).id) - } catch { - qr.error(DT()) - } finally { - x(l).loading = !1 - } - }, yI = Ie('
    1. ', 1), xI = Ie('
    2. '), bI = Ie('
      '), wI = Ie('
      '), TI = (b, l, _) => { - ni.unbanAllianceUser(x(l).id).then(() => { - _.data = _.data.filter(C => C.id !== x(l).id) - }).catch(C => qr.error(C.message)).finally(() => { - x(l).loading = !1 - }) - }, CI = Ie('
      '), SI = Ie('
      '), PI = Ie('
      '), II = Ie('

      '); - -function MI(b, l) { - Sr(l, !0); - let _ = zn({ - data: [], - page: 0, - hasNextPage: !0, - loading: !1 - }), - C = zn({ - data: [], - page: 0, - hasNextPage: !0, - loading: !1 - }); - var L = II(), - F = k(L), - T = k(F); - T.__click = [mI, l]; - var o = k(T); - gx(o, { - class: "size-5" - }), A(T); - var $ = V(T, 2), - W = k($, !0); - A($), A(F); - var ie = V(F, 2), - pe = k(ie); - ea(pe); - var ye = V(pe, 2), - X = k(ye), - Se = k(X); - nn(Se, 21, () => _.data, Je => Je.id, (Je, Be, st) => { - const it = lt(() => { - var It; - return ((It = Dt.data) == null ? void 0 : It.id) === x(Be).id - }); - var Qe = bI(), - ke = k(Qe), - vt = k(ke), - Q = k(vt); - es(Q, { - class: "size-10 border", - get userId() { - return x(Be).id - }, - get pictureUrl() { - return x(Be).picture - } - }); - var te = V(Q, 2), - _e = k(te); - A(te); - var ne = V(te, 2); - { - var Pe = It => { - var ut = _I(); - H(It, ut) - }; - Ue(ne, It => { - x(Be).role === "admin" && It(Pe) - }) - } - A(vt), A(ke); - var Me = V(ke), - at = k(Me), - We = k(at), - Ct = k(We); - om(Ct, { - class: "size-4" - }), A(We); - var _t = V(We, 2), - xt = k(_t); - { - var tt = It => { - var ut = yI(), - bt = zt(ut), - wt = k(bt); - wt.__click = [gI, Be]; - var dt = k(wt, !0); - A(wt), A(bt); - var Lt = V(bt, 2), - Xt = k(Lt); - Xt.__click = [vI, Be, _]; - var Yt = k(Xt, !0); - A(Xt), A(Lt), Ge((nr, ar) => { - wt.disabled = x(Be).loading, fe(dt, nr), Xt.disabled = x(Be).loading, fe(Yt, ar) - }, [() => gT(), () => Wg()]), H(It, ut) - }, - pt = It => { - var ut = xI(), - bt = k(ut); - bt.disabled = !0; - var wt = k(bt, !0); - A(bt), A(ut), Ge(dt => fe(wt, dt), [() => wT()]), H(It, ut) - }; - Ue(xt, It => { - x(Be).role === "member" ? It(tt) : It(pt, !1) - }) - } - A(_t), A(at), A(Me), A(Qe), Ge(It => { - var ut; - Or(te, 1, `font-semibold ${It??""}`), fe(_e, `${(x(it)?((ut=Dt.data)==null?void 0:ut.name)??x(Be).name:x(Be).name)??""} #${x(Be).id??""}`) - }, [() => Zn(x(Be).id)]), H(Je, Qe) - }), A(Se), A(X); - var we = V(X, 2); - { - var Re = Je => { - var Be = Jt(), - st = zt(Be); - Pu(st, () => _.page, it => { - var Qe = wI(); - On(Qe, () => ke => { - const vt = new IntersectionObserver(Q => { - Q[0].isIntersecting && !_.loading && (_.loading = !0, ni.getAllianceMembers(_.page).then(te => { - _.data = [..._.data, ...te.data], _.hasNextPage = te.hasNext, _.page++ - }).catch(te => { - qr.error(te.message) - }).finally(() => { - _.loading = !1 - })) - }); - return vt.observe(ke), () => { - vt.disconnect() - } - }), H(it, Qe) - }), H(Je, Be) - }; - Ue(we, Je => { - _.hasNextPage && Je(Re) - }) - } - A(ye); - var Ae = V(ye, 2), - Oe = V(Ae, 2), - Ee = k(Oe), - Ne = k(Ee); - nn(Ne, 21, () => C.data, Je => Je.id, (Je, Be, st) => { - var it = CI(), - Qe = k(it), - ke = k(Qe), - vt = k(ke); - es(vt, { - class: "size-10 border", - get userId() { - return x(Be).id - }, - get pictureUrl() { - return x(Be).picture - } - }); - var Q = V(vt, 2), - te = k(Q); - A(Q), A(ke), A(Qe); - var _e = V(Qe), - ne = k(_e); - ne.__click = [TI, Be, C]; - var Pe = k(ne, !0); - A(ne), A(_e), A(it), Ge((Me, at) => { - Or(Q, 1, `font-semibold ${Me??""}`), fe(te, `${x(Be).name??""} #${x(Be).id??""}`), ne.disabled = x(Be).loading, fe(Pe, at) - }, [() => Zn(x(Be).id), () => ST()]), H(Je, it) - }), A(Ne), A(Ee); - var ft = V(Ee, 2); - { - var ht = Je => { - var Be = SI(), - st = k(Be, !0); - A(Be), Ge(it => fe(st, it), [() => MT()]), H(Je, Be) - }; - Ue(ft, Je => { - !C.hasNextPage && C.data.length === 0 && Je(ht) - }) - } - var Xe = V(ft, 2); - { - var ct = Je => { - var Be = Jt(), - st = zt(Be); - Pu(st, () => C.page, it => { - var Qe = PI(); - On(Qe, () => ke => { - const vt = new IntersectionObserver(Q => { - Q[0].isIntersecting && !C.loading && (C.loading = !0, ni.getAllianceBannedMembers(C.page).then(te => { - C.data = [...C.data, ...te.data], C.hasNextPage = te.hasNext, C.page++ - }).catch(te => { - qr.error(te.message) - }).finally(() => { - C.loading = !1 - })) - }); - return vt.observe(ke), () => { - vt.disconnect() - } - }), H(it, Qe) - }), H(Je, Be) - }; - Ue(Xe, Je => { - C.hasNextPage && Je(ct) - }) - } - A(Oe), A(ie), A(L), Ge((Je, Be, st) => { - fe(W, Je), zr(pe, "aria-label", Be), zr(Ae, "aria-label", st) - }, [() => $g(), () => FT(), () => jT()]), H(b, L), Pr() -} -Wi(["click"]); -var AI = Ie(' '), - kI = Ie(''), - EI = Ie('

      '), - zI = Ie('
      '); - -function Tf(b, l) { - Sr(l, !0); - let _ = Et(l, "value", 15), - C = Et(l, "validate", 15), - L = nt(""); - const F = lt(() => { - var Ae; - return ((Ae = _()) == null ? void 0 : Ae.length) ?? 0 - }); - C(T); - - function T() { - return l.min !== void 0 && x(F) < l.min ? (oe(L, x(F) === 0 ? "Required" : `Min. characters: ${l.min}`, !0), !1) : l.max !== void 0 && x(F) > l.max ? (oe(L, `Max. characters: ${l.max}`), !1) : !0 - } - Zr(() => { - var Ae; - l.max !== void 0 && x(F) > l.max && _((Ae = _()) == null ? void 0 : Ae.substring(0, l.max)) - }); - var o = zI(), - $ = k(o); - let W; - var ie = k($); - { - var pe = Ae => { - var Oe = AI(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.label)), H(Ae, Oe) - }; - Ue(ie, Ae => { - l.label && Ae(pe) - }) - } - var ye = V(ie, 2); - ea(ye); - var X = V(ye, 2); - { - var Se = Ae => { - var Oe = kI(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.max - x(F))), H(Ae, Oe) - }; - Ue(X, Ae => { - l.max !== void 0 && Ae(Se) - }) - } - A($); - var we = V($, 2); - { - var Re = Ae => { - var Oe = EI(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, x(L))), H(Ae, Oe) - }; - Ue(we, Ae => { - x(L) && Ae(Re) - }) - } - A(o), Ge(Ae => { - W = Or($, 1, "input w-full", null, W, Ae), zr(ye, "placeholder", l.placeholder), zr(ye, "maxlength", l.max) - }, [() => ({ - "input-error": !!x(L) - })]), jd(ye, _), H(b, o), Pr() -} -var LI = (b, l) => { - var _; - (_ = l()) == null || _.close() - }, - DI = Ie(' '); - -function RI(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15), - C = nt(!1), - L = nt(""), - F = nt(void 0); - Ii(() => { - const Oe = Ee => { - var Ne; - Ee.key === "Escape" && ((Ne = _()) == null || Ne.close()) - }; - return document.addEventListener("keydown", Oe), () => document.removeEventListener("keydown", Oe) - }); - var T = DI(), - o = k(T), - $ = k(o), - W = k($, !0); - A($); - var ie = V($, 2), - pe = k(ie), - ye = k(pe); - { - let Oe = lt(() => xf()), - Ee = lt(() => hT()); - Tf(ye, { - get label() { - return x(Oe) - }, - get placeholder() { - return x(Ee) - }, - min: 1, - max: 16, - get value() { - return x(L) - }, - set value(Ne) { - oe(L, Ne, !0) - }, - get validate() { - return x(F) - }, - set validate(Ne) { - oe(F, Ne, !0) - } - }) - } - A(pe); - var X = V(pe, 2), - Se = k(X); - Se.__click = [LI, _]; - var we = k(Se, !0); - A(Se); - var Re = V(Se, 2), - Ae = k(Re, !0); - A(Re), A(X), A(ie), A(o), fi(2), A(T), ps(T, Oe => _(Oe), () => _()), Ge((Oe, Ee, Ne) => { - fe(W, Oe), Se.disabled = x(C), fe(we, Ee), Re.disabled = x(C), fe(Ae, Ne) - }, [() => lT(), () => qd(), () => fT()]), an("submit", ie, async () => { - var Oe, Ee; - try { - if (!((Oe = x(F)) != null && Oe())) return; - oe(C, !0); - const { - id: Ne - } = await ni.createAlliance(x(L)); - await l.onsuccess(Ne), (Ee = _()) == null || Ee.close() - } catch (Ne) { - qr.error(Ne.message) - } finally { - oe(C, !1) - } - }), H(b, T), Pr() -} -Wi(["click"]); -var BI = Tr(''); - -function fh(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = BI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var FI = Tr(''), - OI = Tr(''); - -function Cf(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = FI(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = OI(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var NI = Tr(''); - -function jI(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = NI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var qI = Tr(''); - -function VI(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = qI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var UI = Tr(''); - -function ZI(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = UI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var $I = Tr(''); - -function Xd(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = $I(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} - -function GI(b, l = "_blank") { - return b.replaceAll(/https?:\/\/[^\s]+/g, _ => `${_}`) -} -var HI = Ie('
      '), - WI = async (b, l, _, C) => { - try { - oe(l, !0), await ni.leaveAlliance(), oe(_, !0), await C() - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } - }, XI = (b, l) => { - oe(l, !0) - }, KI = Ie('
      '), YI = (b, l) => { - var _; - (_ = x(l)) == null || _.show() - }, JI = Ie(''), QI = Ie(''), eM = Ie(' '), tM = (b, l) => oe(l, !0), rM = Ie(''), iM = (b, l, _) => { - var C; - (C = x(l)) != null && C.hq ? _.onhqclick({ - lat: x(l).hq.latitude, - lng: x(l).hq.longitude - }) : _.onhqchange() - }, nM = Ie(' '), aM = Ie(' '), sM = Ie(''), oM = Ie('
      '), lM = Ie('

      ', 1), cM = (b, l) => { - var _; - (_ = x(l)) == null || _.show() - }, uM = Ie('
      ', 1), hM = Ie('
      '); - -function dM(b, l) { - Sr(l, !0); - let _ = nt(void 0), - C = nt(!0), - L = nt(void 0), - F = nt(!1), - T = nt(void 0), - o = nt(!1), - $ = nt(!1), - W = nt(() => {}); - dc(() => l.open, () => { - l.open && Id.shouldReload && ie() - }), Ii(() => { - const we = setInterval(() => { - Id.shouldReload = !0 - }, 1e4); - return () => { - clearTimeout(we) - } - }); - async function ie() { - try { - oe(_, await ni.getAlliance(), !0), x(_) && x(W)(), oe(C, !1), Id.shouldReload = !1 - } catch (we) { - qr.error(we.message) - } - } - var pe = hM(), - ye = k(pe); - { - var X = we => { - var Re = HI(); - H(we, Re) - }, - Se = we => { - var Re = Jt(), - Ae = zt(Re); - { - var Oe = Ne => { - MI(Ne, { - onclickback: () => oe($, !1) - }) - }, - Ee = Ne => { - var ft = Jt(), - ht = zt(ft); - { - var Xe = Je => { - var Be = lM(), - st = zt(Be), - it = k(st), - Qe = k(it, !0); - A(it); - var ke = V(it, 2), - vt = k(ke), - Q = k(vt), - te = k(Q); - om(te, { - class: "size-4" - }), A(Q); - var _e = V(Q, 2), - ne = k(_e), - Pe = k(ne); - Pe.__click = [WI, F, C, ie]; - var Me = k(Pe, !0); - A(Pe), A(ne), A(_e), A(vt); - var at = V(vt, 2); - { - var We = ce => { - var O = KI(), - q = k(O); - q.__click = [XI, o]; - var G = k(q); - ZI(G, { - class: "size-4" - }), A(q), A(O), Ge(K => zr(O, "data-tip", K), [() => F5()]), H(ce, O) - }; - Ue(at, ce => { - x(_).role == "admin" && ce(We) - }) - } - A(ke), A(st); - var Ct = V(st, 2); - { - var _t = ce => { - var O = QI(), - q = k(O); - cx(q, () => GI(x(_).description || Hg())); - var G = V(q, 2); - { - var K = le => { - var ve = JI(); - ve.__click = [YI, T]; - var Le = k(ve); - Cf(Le, { - class: "size-4" - }), A(ve), H(le, ve) - }; - Ue(G, le => { - x(_).role === "admin" && le(K) - }) - } - A(O), H(ce, O) - }; - Ue(Ct, ce => { - (x(_).description || x(_).role === "admin") && ce(_t) - }) - } - var xt = V(Ct, 2), - tt = k(xt), - pt = k(tt); - fh(pt, { - class: "inline size-4" - }); - var It = V(pt, 2), - ut = k(It), - bt = V(ut), - wt = k(bt, !0); - A(bt), A(It), A(tt); - var dt = V(tt, 2), - Lt = k(dt); - Xd(Lt, { - class: "inline size-4" - }); - var Xt = V(Lt, 2), - Yt = k(Xt), - nr = V(Yt); - { - var ar = ce => { - var O = eM(), - q = k(O, !0); - A(O), Ge(G => fe(q, G), [() => x(_).members.toLocaleString("en-US")]), H(ce, O) - }, - Ft = ce => { - var O = rM(); - O.__click = [tM, $]; - var q = k(O, !0); - A(O), Ge(G => fe(q, G), [() => x(_).members.toLocaleString("en-US")]), H(ce, O) - }; - Ue(nr, ce => { - x(_).role === "member" ? ce(ar) : ce(Ft, !1) - }) - } - A(Xt), A(dt); - var dr = V(dt, 2); - { - var _r = ce => { - var O = oM(), - q = k(O); - jI(q, { - class: "inline size-4" - }); - var G = V(q, 2), - K = k(G), - le = V(K); - le.__click = [iM, _, l]; - var ve = k(le); - { - var Le = Ye => { - var Ot = nM(), - xe = k(Ot); - A(Ot), Ge((At, Pt) => fe(xe, `${At??""}, ${Pt??""}`), [() => x(_).hq.latitude.toFixed(3), () => x(_).hq.longitude.toFixed(3)]), H(Ye, Ot) - }, - Ce = Ye => { - var Ot = aM(), - xe = k(Ot, !0); - A(Ot), Ge(At => fe(xe, At), [() => u5()]), H(Ye, Ot) - }; - Ue(ve, Ye => { - x(_).hq ? Ye(Le) : Ye(Ce, !1) - }) - } - A(le), A(G); - var Ze = V(G, 2); - { - var ot = Ye => { - var Ot = sM(); - Ot.__click = function(...At) { - var Pt; - (Pt = l.onhqchange) == null || Pt.apply(this, At) - }; - var xe = k(Ot); - Cf(xe, { - class: "text-base-content/50 size-4" - }), A(Ot), H(Ye, Ot) - }; - Ue(Ze, Ye => { - x(_).role === "admin" && Ye(ot) - }) - } - A(O), Ge(Ye => fe(K, `${Ye??""}: `), [() => o5()]), H(ce, O) - }; - Ue(dr, ce => { - (x(_).hq || x(_).role === "admin") && ce(_r) - }) - } - A(xt); - var Ir = V(xt, 2), - jr = k(Ir), - ur = k(jr, !0); - A(jr); - var Mr = V(jr, 2), - Ar = k(Mr); - pI(Ar, { - get allianceId() { - return x(_).id - }, - get onlastpixelclick() { - return l.onlastpixelclick - }, - get reload() { - return x(W) - }, - set reload(ce) { - oe(W, ce, !0) - } - }), A(Mr), A(Ir); - var kr = V(Ir, 2); - ZP(kr, { - get description() { - return x(_).description - }, - onsuccess: async ce => { - x(_) && (x(_).description = ce) - }, - get ref() { - return x(T) - }, - set ref(ce) { - oe(T, ce, !0) - } - }); - var Nr = V(kr, 2); - WP(Nr, { - get open() { - return x(o) - }, - set open(ce) { - oe(o, ce, !0) - } - }), Ge((ce, O, q, G, K) => { - fe(Qe, x(_).name), Pe.disabled = x(F), fe(Me, ce), fe(ut, `${O??""}: `), fe(wt, q), fe(Yt, `${G??""}: `), fe(ur, K) - }, [() => r5(), () => Xf(), () => x(_).pixelsPainted.toLocaleString("en-US"), () => $g(), () => Yf()]), H(Je, Be) - }, - ct = Je => { - var Be = uM(), - st = zt(Be), - it = k(st), - Qe = k(it); - A(it); - var ke = V(it, 2), - vt = k(ke); - VI(vt, { - class: "size-5" - }); - var Q = V(vt, 1, !0); - A(ke); - var te = V(ke, 2), - _e = k(te), - ne = k(_e, !0); - A(_e), A(te); - var Pe = V(te, 2); - Pe.__click = [cM, L]; - var Me = k(Pe); - Dg(Me, { - class: "size-6" - }); - var at = V(Me); - A(Pe), A(st); - var We = V(st, 2); - RI(We, { - onsuccess: ie, - get ref() { - return x(L) - }, - set ref(Ct) { - oe(L, Ct, !0) - } - }), Ge((Ct, _t, xt, tt) => { - fe(Qe, `${Ct??""}:`), fe(Q, _t), fe(ne, xt), fe(at, ` ${tt??""}`) - }, [() => p5(), () => _5(), () => y5(), () => w5()]), H(Je, Be) - }; - Ue(ht, Je => { - x(_) ? Je(Xe) : Je(ct, !1) - }, !0) - } - H(Ne, ft) - }; - Ue(Ae, Ne => { - x($) ? Ne(Oe) : Ne(Ee, !1) - }, !0) - } - H(we, Re) - }; - Ue(ye, we => { - x(C) ? we(X) : we(Se, !1) - }) - } - A(pe), H(b, pe), Pr() -} -Wi(["click"]); -var pM = Tr(''); - -function Kd(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = pM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -const fM = b => b; - -function mM(b) { - const l = b - 1; - return l * l * l + 1 -} - -function Qn(b, { - delay: l = 0, - duration: _ = 400, - easing: C = fM -} = {}) { - const L = +getComputedStyle(b).opacity; - return { - delay: l, - duration: _, - easing: C, - css: F => `opacity: ${F*L}` - } -} - -function uf(b, { - delay: l = 0, - duration: _ = 400, - easing: C = mM, - axis: L = "y" -} = {}) { - const F = getComputedStyle(b), - T = +F.opacity, - o = L === "y" ? "height" : "width", - $ = parseFloat(F[o]), - W = L === "y" ? ["top", "bottom"] : ["left", "right"], - ie = W.map(Ae => `${Ae[0].toUpperCase()}${Ae.slice(1)}`), - pe = parseFloat(F[`padding${ie[0]}`]), - ye = parseFloat(F[`padding${ie[1]}`]), - X = parseFloat(F[`margin${ie[0]}`]), - Se = parseFloat(F[`margin${ie[1]}`]), - we = parseFloat(F[`border${ie[0]}Width`]), - Re = parseFloat(F[`border${ie[1]}Width`]); - return { - delay: l, - duration: _, - easing: C, - css: Ae => `overflow: hidden;opacity: ${Math.min(Ae*20,1)*T};${o}: ${Ae*$}px;padding-${W[0]}: ${Ae*pe}px;padding-${W[1]}: ${Ae*ye}px;margin-${W[0]}: ${Ae*X}px;margin-${W[1]}: ${Ae*Se}px;border-${W[0]}-width: ${Ae*we}px;border-${W[1]}-width: ${Ae*Re}px;min-${o}: 0` - } -} -var _M = Ie(' '); - -function gM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const pe = ye => { - ye.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", pe), () => document.removeEventListener("keydown", pe) - }); - var C = _M(), - L = k(C), - F = V(k(L), 2), - T = k(F); - Kd(T, { - class: "size-5 max-sm:size-6" - }); - var o = V(T, 2), - $ = k(o, !0); - A(o), A(F); - var W = V(F, 2), - ie = k(W); - dM(ie, { - get open() { - return _() - }, - get onhqchange() { - return l.onhqchange - }, - get onhqclick() { - return l.onhqclick - }, - get onlastpixelclick() { - return l.onlastpixelclick - } - }), A(W), A(L), fi(2), A(C), On(C, () => pe => { - Zr(() => { - _() ? (pe.show(), La.url.searchParams.get("alliance") && (La.url.searchParams.delete("alliance"), Lg(La.url.toString()))) : pe.close() - }) - }), Ge(pe => fe($, pe), [() => Gd()]), an("close", C, () => _(!1)), En(2, W, () => Qn, () => ({ - duration: 300 - })), H(b, C), Pr() -} -var vM = Ie(''), - yM = (b, l) => { - l(!1) - }, - xM = Ie(' '); - -function bM(b, l) { - Sr(l, !0); - const _ = []; - let C = Et(l, "open", 15), - L = nt(!1), - F = nt(""), - T = nt(""), - o = nt(null), - $ = nt(null); - const W = [{ - value: "inappropriate-content", - label: Wy(), - description: Hy() - }, { - value: "hate-speech", - label: Ky(), - description: Xy() - }, { - value: "doxxing", - label: Jy(), - description: Yy() - }, { - value: "bot", - label: ex(), - description: Qy() - }, { - value: "griefing", - label: rx(), - description: tx() - }, { - value: "other", - label: ES(), - description: DS() - }]; - Ii(() => { - const _t = xt => { - xt.key === "Escape" && C(!1) - }; - return document.addEventListener("keydown", _t), () => document.removeEventListener("keydown", _t) - }), Zr(() => { - C() || (oe(F, ""), oe(T, "")) - }); - const ie = { - "report-user": `${Cd}/report-user`, - timeout: `${Cd}/moderator/timeout-user`, - ban: `${Cd}/admin/ban-user` - }; - var pe = xM(), - ye = k(pe), - X = V(k(ye), 2), - Se = k(X); - ea(Se); - var we = V(Se, 2); - ea(we); - var Re = V(we, 2); - ea(Re); - var Ae = V(Re, 2); - ea(Ae); - var Oe = V(Ae, 2), - Ee = k(Oe); - es(Ee, { - get userId() { - return l.paintedBy.id - }, - get pictureUrl() { - return l.paintedBy.picture - }, - class: "size-14" - }); - var Ne = V(Ee, 2), - ft = k(Ne), - ht = k(ft); - { - var Xe = _t => { - var xt = Fn(); - Ge(tt => fe(xt, tt), [() => Yg()]), H(_t, xt) - }, - ct = _t => { - var xt = Jt(), - tt = zt(xt); - { - var pt = ut => { - var bt = Fn(); - Ge(wt => fe(bt, wt), [() => Qg()]), H(ut, bt) - }, - It = ut => { - var bt = Jt(), - wt = zt(bt); - { - var dt = Lt => { - var Xt = Fn(); - Ge(Yt => fe(Xt, Yt), [() => Jg()]), H(Lt, Xt) - }; - Ue(wt, Lt => { - l.action === "ban" && Lt(dt) - }, !0) - } - H(ut, bt) - }; - Ue(tt, ut => { - l.action === "timeout" ? ut(pt) : ut(It, !1) - }, !0) - } - H(_t, xt) - }; - Ue(ht, _t => { - l.action === "report-user" ? _t(Xe) : _t(ct, !1) - }) - } - A(ft); - var Je = V(ft, 2), - Be = k(Je), - st = k(Be, !0); - A(Be); - var it = V(Be, 2), - Qe = k(it); - A(it), A(Je), A(Ne), A(Oe); - var ke = V(Oe, 2), - vt = k(ke), - Q = k(vt); - A(vt); - var te = V(vt, 2); - nn(te, 21, () => W, _t => _t.value, (_t, xt) => { - var tt = vM(), - pt = k(tt); - ea(pt); - var It, ut = V(pt, 2), - bt = k(ut), - wt = k(bt, !0); - A(bt); - var dt = V(bt, 2), - Lt = k(dt, !0); - A(dt), A(ut), A(tt), Ge(() => { - zr(pt, "aria-label", x(xt).label), It !== (It = x(xt).value) && (pt.value = (pt.__value = x(xt).value) ?? ""), fe(wt, x(xt).label), fe(Lt, x(xt).description) - }), Vd(_, [], pt, () => (x(xt).value, x(F)), Xt => oe(F, Xt)), H(_t, tt) - }), A(te), A(ke); - var _e = V(ke, 2), - ne = k(_e); - { - let _t = lt(() => FS()); - iv(ne, { - class: "h-20 rounded-lg", - name: "notes", - get placeholder() { - return x(_t) - }, - max: 2056, - min: 5, - get value() { - return x(T) - }, - set value(xt) { - oe(T, xt, !0) - }, - get validate() { - return x($) - }, - set validate(xt) { - oe($, xt, !0) - } - }) - } - A(_e); - var Pe = V(_e, 2), - Me = k(Pe); - Me.__click = [yM, C]; - var at = k(Me, !0); - A(Me); - var We = V(Me, 2), - Ct = k(We, !0); - A(We), A(Pe), A(X), ps(X, _t => oe(o, _t), () => x(o)), A(ye), fi(2), A(pe), On(pe, () => _t => { - Zr(() => { - C() ? _t.show() : _t.close() - }) - }), Ge((_t, xt, tt, pt) => { - zr(X, "action", ie[l.action]), Jl(Se, l.paintedBy.id), Jl(we, l.latLon[0]), Jl(Re, l.latLon[1]), Jl(Ae, l.zoom), Or(Je, 1, `font-medium ${_t??""} flex gap-1.5`), fe(st, l.paintedBy.name), fe(Qe, `#${l.paintedBy.id??""}`), fe(Q, `${xt??""}:`), fe(at, tt), We.disabled = x(L), fe(Ct, pt) - }, [() => Zn(l.paintedBy.id), () => MS(), () => qd(), () => jS()]), an("close", pe, () => C(!1)), an("submit", X, async _t => { - if (_t.preventDefault(), !x(L) && x($)()) try { - oe(L, !0); - const xt = new FormData(x(o)); - if (!xt.get("reason")) { - qr.error(GS()); - return - } - const tt = await l.image; - xt.append("image", tt, `report-${Date.now()}.jpeg`); - const pt = await fetch(x(o).action, { - method: "POST", - body: xt, - credentials: "include" - }); - pt.status === 200 || pt.status === 409 ? (qr.info(US()), C(!1)) : qr.error(XS()) - } finally { - oe(L, !1) - } - }), H(b, pe), Pr() -} -Wi(["click"]); - -function wM(b, l, _) { - return new Promise((C, L) => { - b.once("render", () => { - const F = b.getCanvas().toDataURL(), - T = document.createElement("img"); - T.src = F, T.onload = () => { - const o = document.createElement("canvas"); - o.width = T.width, o.height = T.height; - const $ = o.getContext("2d"); - if ($) { - $.drawImage(T, 0, 0); - const [W, ie, pe, ye] = $.getImageData(l, _, 1, 1).data; - C([W, ie, pe, ye]) - } else L(new Error("Could not get 2d context from canvas")); - T.remove(), o.remove() - } - }), b.triggerRepaint() - }) -} - -function av(b, l) { - return new Promise((_, C) => { - b.once("render", () => { - const L = b.getCanvas(); - let F = L; - if (l != null && l.maxWidth || l != null && l.maxHeight) { - const T = L.width, - o = L.height, - $ = (l == null ? void 0 : l.maxWidth) ?? T, - W = (l == null ? void 0 : l.maxHeight) ?? o; - F = document.createElement("canvas"); - const ie = Math.min($ / T, W / o); - F.width = Math.floor(T * ie), F.height = Math.floor(o * ie); - const pe = F.getContext("2d"); - pe && pe.drawImage(L, 0, 0, F.width, F.height) - } - try { - F.toBlob(T => { - T && _(T) - }, (l == null ? void 0 : l.type) ?? "image/png", (l == null ? void 0 : l.quality) ?? 1) - } catch (T) { - C(T) - } finally { - F !== L && F.remove() - } - }) - }) -} -var TM = Tr(''); - -function sv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = TM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var CM = Tr(''); - -function SM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = CM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var PM = Tr(''); - -function ov(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = PM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -const Yl = { - hour: 3600 * 1e3, - min: 60 * 1e3, - sec: 1e3 -}; - -function zd(b) { - const l = Math.floor(b / Yl.hour); - b -= l * Yl.hour; - const _ = Math.floor(b / Yl.min); - b -= _ * Yl.min; - const L = Math.floor(b / Yl.sec).toString().padStart(2, "0"); - return l > 0 ? `${l}:${_.toString().padStart(2,"0")}:${L}` : `${_}:${L}` -} - -function IM(b) { - const l = new Date, - _ = l.getFullYear(), - C = String(l.getMonth() + 1).padStart(2, "0"), - L = String(l.getDate()).padStart(2, "0"), - F = String(l.getHours()).padStart(2, "0"), - T = String(l.getMinutes()).padStart(2, "0"), - o = String(l.getSeconds()).padStart(2, "0"); - return `${_}-${C}-${L} ${F}:${T}:${o}` -} -var MM = (b, l, _) => { - navigator.clipboard.writeText(l.url.toString()), oe(_, !0), setTimeout(() => { - oe(_, !1) - }, 1e3) - }, - AM = Ie('Screenshot'), - kM = Ie('
      '), - EM = async (b, l) => { - x(l) && (await navigator.clipboard.write([new ClipboardItem({ - "image/png": x(l) - })]), qr.info(sS())) - }, zM = Ie(''), LM = Ie(' '); - -function DM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(!1); - Ii(() => { - const Ee = Ne => { - Ne.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", Ee), () => document.removeEventListener("keydown", Ee) - }); - let L = nt(null), - F = nt(""); - Zr(() => { - _() ? (l.hideHover(), setTimeout(async () => { - av(l.map).then(Ee => { - oe(L, Ee, !0), oe(F, URL.createObjectURL(x(L)), !0) - }).finally(() => { - l.showHover() - }) - }, 500)) : x(F) && (URL.revokeObjectURL(x(F)), oe(L, null), oe(F, "")) - }); - var T = LM(), - o = k(T), - $ = V(k(o), 2), - W = k($); - ov(W, { - class: "size-5" - }); - var ie = V(W); - A($); - var pe = V($, 2), - ye = k(pe); - ea(ye); - var X = V(ye, 2), - Se = k(X); - let we; - Se.__click = [MM, l, C]; - var Re = k(Se, !0); - A(Se), A(X), A(pe); - var Ae = V(pe, 2); - { - var Oe = Ee => { - const Ne = lt(() => { - var ne; - return (ne = l.map) == null ? void 0 : ne.getCanvas() - }); - var ft = zM(), - ht = k(ft), - Xe = k(ht); - SM(Xe, { - class: "inline size-5" - }); - var ct = V(Xe); - A(ht); - var Je = V(ht, 2); - { - var Be = ne => { - var Pe = AM(); - Ge(() => { - zr(Pe, "src", x(F)), zr(Pe, "width", x(Ne).width), zr(Pe, "height", x(Ne).height) - }), H(ne, Pe) - }, - st = ne => { - var Pe = kM(); - Ge(() => uc(Pe, `aspect-ratio: ${x(Ne).width/x(Ne).height}`)), H(ne, Pe) - }; - Ue(Je, ne => { - x(F) ? ne(Be) : ne(st, !1) - }) - } - var it = V(Je, 2), - Qe = k(it); - Qe.__click = [EM, L]; - var ke = k(Qe); - $y(ke, { - class: "size-5" - }); - var vt = V(ke); - A(Qe); - var Q = V(Qe, 2), - te = k(Q); - sv(te, { - class: "size-5" - }); - var _e = V(te); - A(Q), A(it), A(ft), Ge((ne, Pe, Me, at) => { - fe(ct, ` ${ne??""}`), fe(vt, ` ${Pe??""}`), zr(Q, "href", x(F)), zr(Q, "download", `wplace_${Me??""}.png`), fe(_e, ` ${at??""}`) - }, [() => eS(), () => bf(), () => IM().replaceAll(" ", "_").replaceAll(":", "-"), () => iS()]), En(2, ft, () => Qn, () => ({ - duration: 300 - })), H(Ee, ft) - }; - Ue(Ae, Ee => { - _() && Ee(Oe) - }) - } - A(o), fi(2), A(T), On(T, () => Ee => { - Zr(() => { - _() ? Ee.show() : Ee.close() - }) - }), Ge((Ee, Ne, ft, ht) => { - fe(ie, ` ${Ee??""}`), Jl(ye, Ne), we = Or(Se, 1, "btn btn-primary", null, we, ft), fe(Re, ht) - }, [() => I3(), () => l.url.toString(), () => ({ - "btn-success": x(C) - }), () => x(C) ? Gg() : bf()]), an("close", T, () => _(!1)), H(b, T), Pr() -} -Wi(["click"]); -var RM = Tr(''); - -function BM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = RM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var FM = Ie('
    3. '), - OM = Ie('

        '); - -function lm(b, l) { - Sr(l, !1); - const _ = ["📜 All users are responsible for the content they post. The platform reserves the right of final interpretation.", "🛑 Any violation may result in immediate removal of content and permanent ban of the account", "😈 Do not paint over other artworks using random colors or patterns just to mess things up", "� Disclosing other's personal information is not allowed"]; - Og(); - var C = OM(), - L = k(C), - F = k(L); - BM(F, { - class: "size-5" - }); - var T = V(F, 2), - o = k(T), - $ = V(o), - W = k($, !0); - A($), A(T), A(L); - var ie = V(L, 2), - pe = k(ie); - nn(pe, 5, () => _, Zd, (Se, we) => { - var Re = FM(), - Ae = k(Re, !0); - A(Re), Ge(() => fe(Ae, x(we))), H(Se, Re) - }), A(pe); - var ye = V(pe, 2), - X = k(ye, !0); - A(ye), A(ie), A(C), Ge((Se, we, Re) => { - fe(o, `${Se??""} `), fe(W, we), fe(X, Re) - }, [() => I2(), () => k2(), () => ew()]), H(b, C), Pr() -} -var NM = (b, l) => { - l(!1) - }, - jM = Ie(' '); - -function qM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const W = ie => { - ie.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", W), () => document.removeEventListener("keydown", W) - }); - var C = jM(), - L = k(C), - F = V(k(L), 2), - T = V(k(F), 2), - o = k(T); - lm(o, {}), A(T); - var $ = V(T, 2); - $.__click = [NM, _], A(F), A(L), fi(2), A(C), On(C, () => W => { - Zr(() => { - _() ? W.show() : W.close() - }) - }), an("close", C, () => _(!1)), H(b, C), Pr() -} -Wi(["click"]); -var VM = () => { - La.url.searchParams.delete("new-user"), Lg(La.url.toString()) - }, - UM = Ie(''); - -function ZM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const we = Re => { - Re.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", we), () => document.removeEventListener("keydown", we) - }); - var C = UM(), - L = k(C), - F = k(L), - T = k(F), - o = k(T), - $ = k(o, !0); - A(o); - var W = V(o, 2); - Ng(W, { - hasText: !0, - size: "medium" - }), A(T), A(F); - var ie = V(F, 2), - pe = k(ie); - lm(pe, {}), A(ie); - var ye = V(ie, 2), - X = k(ye); - X.__click = [VM]; - var Se = k(X, !0); - A(X), A(ye), A(L), A(C), On(C, () => we => { - Zr(() => { - _() ? we.show() : we.close() - }) - }), Ge((we, Re) => { - fe($, we), fe(Se, Re) - }, [() => C2(), () => iw()]), an("close", C, () => _(!1)), H(b, C), Pr() -} -Wi(["click"]); - -function $M() { - const b = navigator.userAgent, - l = navigator.vendor; - return /Chrome/.test(b) && /Google Inc/.test(l) ? "Chrome" : /Safari/.test(b) && /Apple Computer/.test(l) ? "Safari" : /Firefox/.test(b) ? "Firefox" : /Edge/.test(b) ? "Edge" : /Opera|OPR/.test(b) ? "Opera" : "Unknown" -} -var GM = Tr(''); - -function HM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = GM(); -} -var WM = Tr(''); - -function XM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = WM(); -} -var KM = Tr(''); - -function Ld(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = KM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var YM = Ie(' link', 1), - JM = Ie('chrome://settings/system.', 1), - QM = Ie('edge://settings/system/manageSystem.', 1), - e4 = Ie(' ', 1), - t4 = Ie(''), - r4 = Ie(' '); - -function i4(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const pe = ye => { - ye.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", pe), () => document.removeEventListener("keydown", pe) - }); - const C = $M(); - var L = r4(), - F = k(L), - T = V(k(F), 2); - { - var o = pe => { - var ye = t4(), - X = k(ye), - Se = k(X); - Ng(Se, { - hasText: !0, - size: "medium" - }); - var we = V(Se, 2), - Re = k(we), - Ae = V(Re, 4); - fi(), A(we); - var Oe = V(we, 2), - Ee = k(Oe), - Ne = k(Ee), - ft = k(Ne, !0); - A(Ne); - var ht = V(Ne, 4), - Xe = k(ht); - am(Xe, { - class: "mr-0.5 inline size-4" - }), fi(2), A(ht); - var ct = V(ht, 4), - Je = k(ct); - HM(Je, { - class: "mr-0.5 inline size-4" - }), fi(2), A(ct); - var Be = V(ct, 4), - st = k(Be); - XM(st, { - class: "mr-0.5 inline size-4" - }), fi(2), A(Be), A(Ee), A(Oe), A(X); - var it = V(X, 2), - Qe = k(it), - ke = k(Qe, !0); - A(Qe); - var vt = V(Qe, 2); - A(it); - var Q = V(it, 2), - te = k(Q), - _e = k(te, !0); - A(te); - var ne = V(te, 2), - Pe = k(ne), - Me = V(Pe), - at = k(Me); - Ld(at, { - class: "size-5" - }), A(Me); - var We = V(Me); - A(ne); - var Ct = V(ne, 2), - _t = k(Ct), - xt = V(_t), - tt = k(xt, !0); - A(xt); - var pt = V(xt); - A(Ct), A(Q); - var It = V(Q, 2), - ut = k(It), - bt = k(ut, !0); - A(ut); - var wt = V(ut, 2), - dt = k(wt); - { - var Lt = jr => { - var ur = YM(), - Mr = zt(ur); - fi(), Ge(Ar => fe(Mr, `${Ar??""}: `), [() => bS()]), H(jr, ur) - }, - Xt = jr => { - var ur = e4(), - Mr = zt(ur), - Ar = V(Mr), - kr = k(Ar, !0); - A(Ar); - var Nr = V(Ar), - ce = V(Nr); - { - var O = G => { - var K = JM(); - fi(), H(G, K) - }, - q = G => { - var K = Jt(), - le = zt(K); - { - var ve = Le => { - var Ce = QM(); - fi(), H(Le, Ce) - }; - Ue(le, Le => { - C === "Edge" && Le(ve) - }, !0) - } - H(G, K) - }; - Ue(ce, G => { - C === "Chrome" ? G(O) : G(q, !1) - }) - } - Ge((G, K, le) => { - fe(Mr, `${G??""} `), fe(kr, K), fe(Nr, ` ${le??""} `) - }, [() => dS(), () => mS(), () => vS()]), H(jr, ur) - }; - Ue(dt, jr => { - C !== "Chrome" && C !== "Edge" ? jr(Lt) : jr(Xt, !1) - }) - } - A(wt), A(It); - var Yt = V(It, 2), - nr = k(Yt); - lm(nr, {}), A(Yt); - var ar = V(Yt, 4), - Ft = V(k(ar), 2), - dr = k(Ft, !0); - A(Ft); - var _r = V(Ft, 2), - Ir = k(_r, !0); - A(_r), A(ar), A(ye), Ge((jr, ur, Mr, Ar, kr, Nr, ce, O, q, G, K, le, ve) => { - fe(Re, `${jr??""} `), fe(Ae, ` © - ${ur??""} `), fe(ft, Mr), fe(ke, Ar), zr(vt, "src", oa.language === "pt" ? "https://www.youtube.com/embed/AcE85QM4iPQ?si=wbeZD8vxOzvlB_Z9" : "https://www.youtube.com/embed/xOXtd-WzRxA?si=fHz8Z6ecXGYrDhkN"), fe(_e, kr), fe(Pe, `${Nr??""} `), fe(We, ` ${ce??""}`), fe(_t, `${O??""} `), fe(tt, q), fe(pt, ` ${G??""}`), fe(bt, K), fe(dr, le), fe(Ir, ve) - }, [() => v1(), () => b1(), () => C1(), () => I1(), () => k1(), () => L1(), () => B1(), () => N1(), () => V1(), () => $1(), () => cS(), () => tP(), () => nP()]), En(2, ye, () => Qn, () => ({ - duration: 300 - })), H(pe, ye) - }; - Ue(T, pe => { - _() && pe(o) - }) - } - A(F); - var $ = V(F, 2), - W = k($), - ie = k(W, !0); - A(W), A($), A(L), On(L, () => pe => { - Zr(() => { - _() ? pe.show() : pe.close() - }) - }), Ge(pe => fe(ie, pe), [() => tc()]), an("close", L, () => _(!1)), H(b, L), Pr() -} - -function n4(b) { - return typeof b == "function" -} - -function mh(b) { - return b !== null && typeof b == "object" -} -const a4 = ["string", "number", "bigint", "boolean"]; - -function Sf(b) { - return b == null || a4.includes(typeof b) ? !0 : Array.isArray(b) ? b.every(l => Sf(l)) : typeof b == "object" ? Object.getPrototypeOf(b) === Object.prototype : !1 -} -const Iu = Symbol("box"), - cm = Symbol("is-writable"); - -function s4(b) { - return mh(b) && Iu in b -} - -function o4(b) { - return cr.isBox(b) && cm in b -} - -function cr(b) { - let l = nt(zn(b)); - return { - [Iu]: !0, - [cm]: !0, - get current() { - return x(l) - }, - set current(_) { - oe(l, _, !0) - } - } -} - -function l4(b, l) { - const _ = lt(b); - return l ? { - [Iu]: !0, - [cm]: !0, - get current() { - return x(_) - }, - set current(C) { - l(C) - } - } : { - [Iu]: !0, - get current() { - return b() - } - } -} - -function c4(b) { - return cr.isBox(b) ? b : n4(b) ? cr.with(b) : cr(b) -} - -function u4(b) { - return Object.entries(b).reduce((l, [_, C]) => cr.isBox(C) ? (cr.isWritableBox(C) ? Object.defineProperty(l, _, { - get() { - return C.current - }, - set(L) { - C.current = L - } - }) : Object.defineProperty(l, _, { - get() { - return C.current - } - }), l) : Object.assign(l, { - [_]: C - }), {}) -} - -function h4(b) { - return cr.isWritableBox(b) ? { - [Iu]: !0, - get current() { - return b.current - } - } : b -} -cr.from = c4; -cr.with = l4; -cr.flatten = u4; -cr.readonly = h4; -cr.isBox = s4; -cr.isWritableBox = o4; - -function d4(...b) { - return function(l) { - var _; - for (const C of b) - if (C) { - if (l.defaultPrevented) return; - typeof C == "function" ? C.call(this, l) : (_ = C.current) == null || _.call(this, l) - } - } -} -var Hl = {}, - hf, mg; - -function p4() { - if (mg) return hf; - mg = 1; - var b = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g, - l = /\n/g, - _ = /^\s*/, - C = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/, - L = /^:\s*/, - F = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/, - T = /^[;\s]*/, - o = /^\s+|\s+$/g, - $ = ` -`, - W = "/", - ie = "*", - pe = "", - ye = "comment", - X = "declaration"; - hf = function(we, Re) { - if (typeof we != "string") throw new TypeError("First argument must be a string"); - if (!we) return []; - Re = Re || {}; - var Ae = 1, - Oe = 1; - - function Ee(Qe) { - var ke = Qe.match(l); - ke && (Ae += ke.length); - var vt = Qe.lastIndexOf($); - Oe = ~vt ? Qe.length - vt : Oe + Qe.length - } - - function Ne() { - var Qe = { - line: Ae, - column: Oe - }; - return function(ke) { - return ke.position = new ft(Qe), ct(), ke - } - } - - function ft(Qe) { - this.start = Qe, this.end = { - line: Ae, - column: Oe - }, this.source = Re.source - } - ft.prototype.content = we; - - function ht(Qe) { - var ke = new Error(Re.source + ":" + Ae + ":" + Oe + ": " + Qe); - if (ke.reason = Qe, ke.filename = Re.source, ke.line = Ae, ke.column = Oe, ke.source = we, !Re.silent) throw ke - } - - function Xe(Qe) { - var ke = Qe.exec(we); - if (ke) { - var vt = ke[0]; - return Ee(vt), we = we.slice(vt.length), ke - } - } - - function ct() { - Xe(_) - } - - function Je(Qe) { - var ke; - for (Qe = Qe || []; ke = Be();) ke !== !1 && Qe.push(ke); - return Qe - } - - function Be() { - var Qe = Ne(); - if (!(W != we.charAt(0) || ie != we.charAt(1))) { - for (var ke = 2; pe != we.charAt(ke) && (ie != we.charAt(ke) || W != we.charAt(ke + 1));) ++ke; - if (ke += 2, pe === we.charAt(ke - 1)) return ht("End of comment missing"); - var vt = we.slice(2, ke - 2); - return Oe += 2, Ee(vt), we = we.slice(ke), Oe += 2, Qe({ - type: ye, - comment: vt - }) - } - } - - function st() { - var Qe = Ne(), - ke = Xe(C); - if (ke) { - if (Be(), !Xe(L)) return ht("property missing ':'"); - var vt = Xe(F), - Q = Qe({ - type: X, - property: Se(ke[0].replace(b, pe)), - value: vt ? Se(vt[0].replace(b, pe)) : pe - }); - return Xe(T), Q - } - } - - function it() { - var Qe = []; - Je(Qe); - for (var ke; ke = st();) ke !== !1 && (Qe.push(ke), Je(Qe)); - return Qe - } - return ct(), it() - }; - - function Se(we) { - return we ? we.replace(o, pe) : pe - } - return hf -} -var _g; - -function f4() { - if (_g) return Hl; - _g = 1; - var b = Hl && Hl.__importDefault || function(C) { - return C && C.__esModule ? C : { - default: C - } - }; - Object.defineProperty(Hl, "__esModule", { - value: !0 - }), Hl.default = _; - var l = b(p4()); - - function _(C, L) { - var F = null; - if (!C || typeof C != "string") return F; - var T = (0, l.default)(C), - o = typeof L == "function"; - return T.forEach(function($) { - if ($.type === "declaration") { - var W = $.property, - ie = $.value; - o ? L(W, ie, $) : ie && (F = F || {}, F[W] = ie) - } - }), F - } - return Hl -} -var m4 = f4(); -const gg = nm(m4), - _4 = gg.default || gg, - g4 = /\d/, - v4 = ["-", "_", "/", "."]; - -function y4(b = "") { - if (!g4.test(b)) return b !== b.toLowerCase() -} - -function x4(b) { - const l = []; - let _ = "", - C, L; - for (const F of b) { - const T = v4.includes(F); - if (T === !0) { - l.push(_), _ = "", C = void 0; - continue - } - const o = y4(F); - if (L === !1) { - if (C === !1 && o === !0) { - l.push(_), _ = F, C = o; - continue - } - if (C === !0 && o === !1 && _.length > 1) { - const $ = _.at(-1); - l.push(_.slice(0, Math.max(0, _.length - 1))), _ = $ + F, C = o; - continue - } - } - _ += F, C = o, L = T - } - return l.push(_), l -} - -function lv(b) { - return b ? x4(b).map(l => w4(l)).join("") : "" -} - -function b4(b) { - return T4(lv(b || "")) -} - -function w4(b) { - return b ? b[0].toUpperCase() + b.slice(1) : "" -} - -function T4(b) { - return b ? b[0].toLowerCase() + b.slice(1) : "" -} - -function wd(b) { - if (!b) return {}; - const l = {}; - - function _(C, L) { - if (C.startsWith("-moz-") || C.startsWith("-webkit-") || C.startsWith("-ms-") || C.startsWith("-o-")) { - l[lv(C)] = L; - return - } - if (C.startsWith("--")) { - l[C] = L; - return - } - l[b4(C)] = L - } - return _4(b, _), l -} - -function C4(...b) { - return (...l) => { - for (const _ of b) typeof _ == "function" && _(...l) - } -} - -function S4(b, l) { - const _ = RegExp(b, "g"); - return C => { - if (typeof C != "string") throw new TypeError(`expected an argument of type string, but got ${typeof C}`); - return C.match(_) ? C.replace(_, l) : C - } -} -const P4 = S4(/[A-Z]/, b => `-${b.toLowerCase()}`); - -function I4(b) { - if (!b || typeof b != "object" || Array.isArray(b)) throw new TypeError(`expected an argument of type object, but got ${typeof b}`); - return Object.keys(b).map(l => `${P4(l)}: ${b[l]};`).join(` -`) -} - -function cv(b = {}) { - return I4(b).replace(` -`, " ") -} -const uv = { - position: "absolute", - width: "1px", - height: "1px", - padding: "0", - margin: "-1px", - overflow: "hidden", - clip: "rect(0, 0, 0, 0)", - whiteSpace: "nowrap", - borderWidth: "0", - transform: "translateX(-100%)" -}; -cv(uv); -const M4 = ["onabort", "onanimationcancel", "onanimationend", "onanimationiteration", "onanimationstart", "onauxclick", "onbeforeinput", "onbeforetoggle", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncompositionend", "oncompositionstart", "oncompositionupdate", "oncontextlost", "oncontextmenu", "oncontextrestored", "oncopy", "oncuechange", "oncut", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "onformdata", "ongotpointercapture", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onlostpointercapture", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpaste", "onpause", "onplay", "onplaying", "onpointercancel", "onpointerdown", "onpointerenter", "onpointerleave", "onpointermove", "onpointerout", "onpointerover", "onpointerup", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onscrollend", "onsecuritypolicyviolation", "onseeked", "onseeking", "onselect", "onselectionchange", "onselectstart", "onslotchange", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "ontouchcancel", "ontouchend", "ontouchmove", "ontouchstart", "ontransitioncancel", "ontransitionend", "ontransitionrun", "ontransitionstart", "onvolumechange", "onwaiting", "onwebkitanimationend", "onwebkitanimationiteration", "onwebkitanimationstart", "onwebkittransitionend", "onwheel"], - A4 = new Set(M4); - -function k4(b) { - return A4.has(b) -} - -function Da(...b) { - const l = { - ...b[0] - }; - for (let _ = 1; _ < b.length; _++) { - const C = b[_]; - if (C) { - for (const L of Object.keys(C)) { - const F = l[L], - T = C[L], - o = typeof F == "function", - $ = typeof T == "function"; - if (o && k4(L)) { - const W = F, - ie = T; - l[L] = d4(W, ie) - } else if (o && $) l[L] = C4(F, T); - else if (L === "class") { - const W = Sf(F), - ie = Sf(T); - W && ie ? l[L] = Tu(F, T) : W ? l[L] = Tu(F) : ie && (l[L] = Tu(T)) - } else if (L === "style") { - const W = typeof F == "object", - ie = typeof T == "object", - pe = typeof F == "string", - ye = typeof T == "string"; - if (W && ie) l[L] = { - ...F, - ...T - }; - else if (W && ye) { - const X = wd(T); - l[L] = { - ...F, - ...X - } - } else if (pe && ie) { - const X = wd(F); - l[L] = { - ...X, - ...T - } - } else if (pe && ye) { - const X = wd(F), - Se = wd(T); - l[L] = { - ...X, - ...Se - } - } else W ? l[L] = F : ie ? l[L] = T : pe ? l[L] = F : ye && (l[L] = T) - } else l[L] = T !== void 0 ? T : F - } - for (const L of Object.getOwnPropertySymbols(C)) { - const F = l[L], - T = C[L]; - l[L] = T !== void 0 ? T : F - } - } - } - return typeof l.style == "object" && (l.style = cv(l.style).replaceAll(` -`, " ")), l.hidden !== !0 && (l.hidden = void 0, delete l.hidden), l.disabled !== !0 && (l.disabled = void 0, delete l.disabled), l -} -const E4 = typeof window < "u" ? window : void 0; - -function z4(b) { - let l = b.activeElement; - for (; l != null && l.shadowRoot;) { - const _ = l.shadowRoot.activeElement; - if (_ === l) break; - l = _ - } - return l -} -var ic, Lu; -class L4 { - constructor(l = {}) { - br(this, ic); - br(this, Lu); - const { - window: _ = E4, - document: C = _ == null ? void 0 : _.document - } = l; - _ !== void 0 && (Jn(this, ic, C), Jn(this, Lu, zg(L => { - const F = Su(_, "focusin", L), - T = Su(_, "focusout", L); - return () => { - F(), T() - } - }))) - } - get current() { - var l; - return (l = et(this, Lu)) == null || l.call(this), et(this, ic) ? z4(et(this, ic)) : null - } -} -ic = new WeakMap, Lu = new WeakMap; -new L4; -var Du, zs; -class um { - constructor(l) { - br(this, Du); - br(this, zs); - Jn(this, Du, l), Jn(this, zs, Symbol(l)) - } - get key() { - return et(this, zs) - } - exists() { - return Ny(et(this, zs)) - } - get() { - const l = ag(et(this, zs)); - if (l === void 0) throw new Error(`Context "${et(this,Du)}" not found`); - return l - } - getOr(l) { - const _ = ag(et(this, zs)); - return _ === void 0 ? l : _ - } - set(l) { - return jy(et(this, zs), l) - } -} -Du = new WeakMap, zs = new WeakMap; - -function D4(b, l) { - switch (b) { - case "post": - Zr(l); - break; - case "pre": - Hf(l); - break - } -} - -function hv(b, l, _, C = {}) { - const { - lazy: L = !1 - } = C; - let F = !L, - T = Array.isArray(b) ? [] : void 0; - D4(l, () => { - const o = Array.isArray(b) ? b.map(W => W()) : b(); - if (!F) { - F = !0, T = o; - return - } - const $ = Go(() => _(o, T)); - return T = o, $ - }) -} - -function oo(b, l, _) { - hv(b, "post", l, _) -} - -function R4(b, l, _) { - hv(b, "pre", l, _) -} -oo.pre = R4; -var nc; -class B4 { - constructor(l, _) { - br(this, nc, nt(void 0)); - _ !== void 0 && oe(et(this, nc), _, !0), oo(() => l(), (C, L) => { - oe(et(this, nc), L, !0) - }) - } - get current() { - return x(et(this, nc)) - } -} -nc = new WeakMap; - -function F4(b, l) { - return setTimeout(l, b) -} - -function Wl(b) { - Mg().then(b) -} -const O4 = 1, - N4 = 9, - j4 = 11; - -function q4(b) { - return mh(b) && b.nodeType === O4 && typeof b.nodeName == "string" -} - -function dv(b) { - return mh(b) && b.nodeType === N4 -} - -function V4(b) { - var l; - return mh(b) && ((l = b.constructor) == null ? void 0 : l.name) === "VisualViewport" -} - -function U4(b) { - return mh(b) && b.nodeType !== void 0 -} - -function Z4(b) { - return U4(b) && b.nodeType === j4 && "host" in b -} - -function $4(b) { - return dv(b) ? b : V4(b) ? b.document : (b == null ? void 0 : b.ownerDocument) ?? document -} - -function pv(b) { - var l; - return Z4(b) ? pv(b.host) : dv(b) ? b.defaultView ?? window : q4(b) ? ((l = b.ownerDocument) == null ? void 0 : l.defaultView) ?? window : window -} - -function G4(b) { - let l = b.activeElement; - for (; l != null && l.shadowRoot;) { - const _ = l.shadowRoot.activeElement; - if (_ === l) break; - l = _ - } - return l -} -var Ru; -class H4 { - constructor(l) { - lr(this, "element"); - br(this, Ru, lt(() => this.element.current ? this.element.current.getRootNode() ?? document : document)); - lr(this, "getDocument", () => $4(this.root)); - lr(this, "getWindow", () => this.getDocument().defaultView ?? window); - lr(this, "getActiveElement", () => G4(this.root)); - lr(this, "isActiveElement", l => l === this.getActiveElement()); - lr(this, "querySelector", l => this.root ? this.root.querySelector(l) : null); - lr(this, "querySelectorAll", l => this.root ? this.root.querySelectorAll(l) : []); - lr(this, "setTimeout", (l, _) => this.getWindow().setTimeout(l, _)); - lr(this, "clearTimeout", l => this.getWindow().clearTimeout(l)); - typeof l == "function" ? this.element = cr.with(l) : this.element = l - } - get root() { - return x(et(this, Ru)) - } - set root(l) { - oe(et(this, Ru), l) - } - getElementById(l) { - return this.root.getElementById(l) - } -} -Ru = new WeakMap; - -function Va(b, l) { - return { - [Mx()]: _ => cr.isBox(b) ? (b.current = _, Go(() => l == null ? void 0 : l(_)), () => { - "isConnected" in _ && _.isConnected || (b.current = null, l == null || l(null)) - }) : (b(_), Go(() => l == null ? void 0 : l(_)), () => { - "isConnected" in _ && _.isConnected || (b(null), l == null || l(null)) - }) - } -} - -function W4(b) { - return b ? "true" : "false" -} - -function X4(b) { - return b ? "true" : "false" -} - -function K4(b) { - return b ? "" : void 0 -} - -function Y4(b) { - return b ? "true" : "false" -} - -function J4(b) { - return b ? "" : void 0 -} - -function Q4(b) { - return b ? !0 : void 0 -} -var ac, Bu; -class e6 { - constructor(l) { - br(this, ac); - br(this, Bu); - lr(this, "attrs"); - Jn(this, ac, l.getVariant ? l.getVariant() : null), Jn(this, Bu, et(this, ac) ? `data-${et(this,ac)}-` : `data-${l.component}-`), this.getAttr = this.getAttr.bind(this), this.selector = this.selector.bind(this), this.attrs = Object.fromEntries(l.parts.map(_ => [_, this.getAttr(_)])) - } - getAttr(l, _) { - return _ ? `data-${_}-${l}` : `${et(this,Bu)}${l}` - } - selector(l, _) { - return `[${this.getAttr(l,_)}]` - } -} -ac = new WeakMap, Bu = new WeakMap; - -function fv(b) { - const l = new e6(b); - return { - ...l.attrs, - selector: l.selector, - getAttr: l.getAttr - } -} -const t6 = "ArrowDown", - r6 = "ArrowLeft", - i6 = "ArrowRight", - n6 = "ArrowUp", - a6 = "End", - s6 = "Enter", - o6 = "Home", - l6 = "p", - c6 = "n", - u6 = "j", - h6 = "k", - d6 = "h", - p6 = "l"; - -function Mu() {} - -function Ua(b, l) { - return `bits-${b}` -} - -function f6(b) { - if (!b) return null; - for (const l of b.childNodes) - if (l.nodeType !== Node.COMMENT_NODE) return l; - return null -} -globalThis.bitsIdCounter ?? (globalThis.bitsIdCounter = { - current: 0 -}); - -function m6(b = "bits") { - return globalThis.bitsIdCounter.current++, `${b}-${globalThis.bitsIdCounter.current}` -} - -function _6(b, l) { - let _ = b.nextElementSibling; - for (; _;) { - if (_.matches(l)) return _; - _ = _.nextElementSibling - } -} - -function g6(b, l) { - let _ = b.previousElementSibling; - for (; _;) { - if (_.matches(l)) return _; - _ = _.previousElementSibling - } -} - -function mv(b) { - if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(b); - const l = b.length; - let _ = -1, - C, L = ""; - const F = b.charCodeAt(0); - if (l === 1 && F === 45) return "\\" + b; - for (; ++_ < l;) { - if (C = b.charCodeAt(_), C === 0) { - L += "�"; - continue - } - if (C >= 1 && C <= 31 || C === 127 || _ === 0 && C >= 48 && C <= 57 || _ === 1 && C >= 48 && C <= 57 && F === 45) { - L += "\\" + C.toString(16) + " "; - continue - } - if (C >= 128 || C === 45 || C === 95 || C >= 48 && C <= 57 || C >= 65 && C <= 90 || C >= 97 && C <= 122) { - L += b.charAt(_); - continue - } - L += "\\" + b.charAt(_) - } - return L -} -const Uo = "data-value", - ma = fv({ - component: "command", - parts: ["root", "list", "input", "separator", "loading", "empty", "group", "group-items", "group-heading", "item", "viewport", "input-label"] - }), - Xl = ma.selector("group"), - df = ma.selector("group-items"), - vg = ma.selector("group-heading"), - _v = ma.selector("item"), - pf = `${ma.selector("item")}:not([aria-disabled="true"])`, - Xo = new um("Command.Root"), - v6 = new um("Command.List"), - Au = new um("Command.Group"), - yg = { - search: "", - value: "", - filtered: { - count: 0, - items: new Map, - groups: new Set - } - }; -var sc, Fu, Ou, Nu, ju, qu, Vu, Uu, ir, gv, Md, If, Ad, kd, Ed, no, vv, yv, Mf, yu, Af, kf, xv, xu, Ef, zf, bv, bu, wu, Zu; -const pm = class pm { - constructor(l) { - br(this, ir); - lr(this, "opts"); - lr(this, "attachment"); - br(this, sc, !1); - br(this, Fu, !0); - lr(this, "sortAfterTick", !1); - lr(this, "sortAndFilterAfterTick", !1); - lr(this, "allItems", new Set); - lr(this, "allGroups", new Map); - lr(this, "allIds", new Map); - br(this, Ou, nt(0)); - br(this, Nu, nt(null)); - br(this, ju, nt(null)); - br(this, qu, nt(null)); - br(this, Vu, nt(yg)); - br(this, Uu, nt(zn(yg))); - br(this, Zu, lt(() => ({ - id: this.opts.id.current, - role: "application", - [ma.root]: "", - tabindex: -1, - onkeydown: this.onkeydown, - ...this.attachment - }))); - this.opts = l, this.attachment = Va(this.opts.ref); - const _ = { - ...this._commandState, - value: this.opts.value.current ?? "" - }; - this._commandState = _, this.commandState = _, this.onkeydown = this.onkeydown.bind(this) - } - static create(l) { - return Xo.set(new pm(l)) - } - get key() { - return x(et(this, Ou)) - } - set key(l) { - oe(et(this, Ou), l, !0) - } - get viewportNode() { - return x(et(this, Nu)) - } - set viewportNode(l) { - oe(et(this, Nu), l, !0) - } - get inputNode() { - return x(et(this, ju)) - } - set inputNode(l) { - oe(et(this, ju), l, !0) - } - get labelNode() { - return x(et(this, qu)) - } - set labelNode(l) { - oe(et(this, qu), l, !0) - } - get commandState() { - return x(et(this, Vu)) - } - set commandState(l) { - oe(et(this, Vu), l) - } - get _commandState() { - return x(et(this, Uu)) - } - set _commandState(l) { - oe(et(this, Uu), l, !0) - } - setState(l, _, C) { - Object.is(this._commandState[l], _) || (this._commandState[l] = _, l === "search" ? (Fr(this, ir, Ed).call(this), Fr(this, ir, Ad).call(this)) : l === "value" && (C || Fr(this, ir, vv).call(this)), Fr(this, ir, Md).call(this)) - } - setValue(l, _) { - l !== this.opts.value.current && l === "" && Wl(() => { - this.key++ - }), this.setState("value", l, _), this.opts.value.current = l - } - getValidItems() { - const l = this.opts.ref.current; - return l ? Array.from(l.querySelectorAll(pf)).filter(C => !!C) : [] - } - getVisibleItems() { - const l = this.opts.ref.current; - return l ? Array.from(l.querySelectorAll(_v)).filter(C => !!C) : [] - } - get itemsGrid() { - var o, $, W, ie; - if (!this.isGrid) return []; - const l = this.opts.columns.current ?? 1, - _ = this.getVisibleItems(), - C = [ - [] - ]; - let L = (o = _[0]) == null ? void 0 : o.getAttribute("data-group"), - F = 0, - T = 0; - for (let pe = 0; pe < _.length; pe++) { - const ye = _[pe], - X = ye == null ? void 0 : ye.getAttribute("data-group"); - L !== X ? (L = X, F = 1, T++, C.push([{ - index: pe, - firstRowOfGroup: !0, - ref: ye - }])) : (F++, F > l && (T++, F = 1, C.push([])), (ie = C[T]) == null || ie.push({ - index: pe, - firstRowOfGroup: ((W = ($ = C[T]) == null ? void 0 : $[0]) == null ? void 0 : W.firstRowOfGroup) ?? pe === 0, - ref: ye - })) - } - return C - } - updateSelectedToIndex(l) { - const _ = this.getValidItems()[l]; - _ && this.setValue(_.getAttribute(Uo) ?? "") - } - updateSelectedByItem(l) { - const _ = Fr(this, ir, no).call(this), - C = this.getValidItems(), - L = C.findIndex(T => T === _); - let F = C[L + l]; - this.opts.loop.current && (F = L + l < 0 ? C[C.length - 1] : L + l === C.length ? C[0] : C[L + l]), F && this.setValue(F.getAttribute(Uo) ?? "") - } - updateSelectedByGroup(l) { - const _ = Fr(this, ir, no).call(this); - let C = _ == null ? void 0 : _.closest(Xl), - L; - for (; C && !L;) C = l > 0 ? _6(C, Xl) : g6(C, Xl), L = C == null ? void 0 : C.querySelector(pf); - L ? this.setValue(L.getAttribute(Uo) ?? "") : this.updateSelectedByItem(l) - } - registerValue(l, _) { - var C; - return l && l === ((C = this.allIds.get(l)) == null ? void 0 : C.value) || this.allIds.set(l, { - value: l, - keywords: _ - }), this._commandState.filtered.items.set(l, Fr(this, ir, If).call(this, l, _)), this.sortAfterTick || (this.sortAfterTick = !0, Wl(() => { - Fr(this, ir, Ad).call(this), this.sortAfterTick = !1 - })), () => { - this.allIds.delete(l) - } - } - registerItem(l, _) { - return this.allItems.add(l), _ && (this.allGroups.has(_) ? this.allGroups.get(_).add(l) : this.allGroups.set(_, new Set([l]))), this.sortAndFilterAfterTick || (this.sortAndFilterAfterTick = !0, Wl(() => { - Fr(this, ir, Ed).call(this), Fr(this, ir, Ad).call(this), this.sortAndFilterAfterTick = !1 - })), Fr(this, ir, Md).call(this), () => { - const C = Fr(this, ir, no).call(this); - this.allIds.delete(l), this.allItems.delete(l), this.commandState.filtered.items.delete(l), Fr(this, ir, Ed).call(this), (C == null ? void 0 : C.getAttribute("id")) === l && Fr(this, ir, kd).call(this), Fr(this, ir, Md).call(this) - } - } - registerGroup(l) { - return this.allGroups.has(l) || this.allGroups.set(l, new Set), () => { - this.allIds.delete(l), this.allGroups.delete(l) - } - } - get isGrid() { - return this.opts.columns.current !== null - } - onkeydown(l) { - const _ = this.opts.vimBindings.current && l.ctrlKey; - switch (l.key) { - case c6: - case u6: { - _ && (this.isGrid ? Fr(this, ir, Af).call(this, l) : Fr(this, ir, yu).call(this, l)); - break - } - case p6: { - _ && this.isGrid && Fr(this, ir, yu).call(this, l); - break - } - case t6: - this.isGrid ? Fr(this, ir, Af).call(this, l) : Fr(this, ir, yu).call(this, l); - break; - case i6: - if (!this.isGrid) break; - Fr(this, ir, yu).call(this, l); - break; - case l6: - case h6: { - _ && (this.isGrid ? Fr(this, ir, zf).call(this, l) : Fr(this, ir, wu).call(this, l)); - break - } - case d6: { - _ && this.isGrid && Fr(this, ir, wu).call(this, l); - break - } - case n6: - this.isGrid ? Fr(this, ir, zf).call(this, l) : Fr(this, ir, wu).call(this, l); - break; - case r6: - if (!this.isGrid) break; - Fr(this, ir, wu).call(this, l); - break; - case o6: - l.preventDefault(), this.updateSelectedToIndex(0); - break; - case a6: - l.preventDefault(), Fr(this, ir, Mf).call(this); - break; - case s6: - if (!l.isComposing && l.keyCode !== 229) { - l.preventDefault(); - const C = Fr(this, ir, no).call(this); - C && (C == null || C.click()) - } - } - } - get props() { - return x(et(this, Zu)) - } - set props(l) { - oe(et(this, Zu), l) - } -}; -sc = new WeakMap, Fu = new WeakMap, Ou = new WeakMap, Nu = new WeakMap, ju = new WeakMap, qu = new WeakMap, Vu = new WeakMap, Uu = new WeakMap, ir = new WeakSet, gv = function() { - return Ix(this._commandState) -}, Md = function() { - et(this, sc) || (Jn(this, sc, !0), Wl(() => { - var C, L; - Jn(this, sc, !1); - const l = Fr(this, ir, gv).call(this); - !Object.is(this.commandState, l) && (this.commandState = l, (L = (C = this.opts.onStateChange) == null ? void 0 : C.current) == null || L.call(C, l)) - })) -}, If = function(l, _) { - const C = this.opts.filter.current ?? Cv; - return l ? C(l, this._commandState.search, _) : 0 -}, Ad = function() { - var T; - if (!this._commandState.search || this.opts.shouldFilter.current === !1) { - Fr(this, ir, kd).call(this); - return - } - const l = this._commandState.filtered.items, - _ = []; - for (const o of this._commandState.filtered.groups) { - const $ = this.allGroups.get(o); - let W = 0; - if (!$) { - _.push([o, W]); - continue - } - for (const ie of $) { - const pe = l.get(ie); - W = Math.max(pe ?? 0, W) - } - _.push([o, W]) - } - const C = this.viewportNode, - L = this.getValidItems().sort((o, $) => { - const W = o.getAttribute("data-value"), - ie = $.getAttribute("data-value"), - pe = l.get(W) ?? 0; - return (l.get(ie) ?? 0) - pe - }); - for (const o of L) { - const $ = o.closest(df); - if ($) { - const W = o.parentElement === $ ? o : o.closest(`${df} > *`); - W && $.appendChild(W) - } else { - const W = o.parentElement === C ? o : o.closest(`${df} > *`); - W && (C == null || C.appendChild(W)) - } - } - const F = _.sort((o, $) => $[1] - o[1]); - for (const o of F) { - const $ = C == null ? void 0 : C.querySelector(`${Xl}[${Uo}="${mv(o[0])}"]`); - (T = $ == null ? void 0 : $.parentElement) == null || T.appendChild($) - } - Fr(this, ir, kd).call(this) -}, kd = function() { - Wl(() => { - const l = this.getValidItems().find(L => L.getAttribute("aria-disabled") !== "true"), - _ = l == null ? void 0 : l.getAttribute(Uo), - C = et(this, Fu) && this.opts.disableInitialScroll.current; - this.setValue(_ ?? "", C), Jn(this, Fu, !1) - }) -}, Ed = function() { - var _, C; - if (!this._commandState.search || this.opts.shouldFilter.current === !1) { - this._commandState.filtered.count = this.allItems.size; - return - } - this._commandState.filtered.groups = new Set; - let l = 0; - for (const L of this.allItems) { - const F = ((_ = this.allIds.get(L)) == null ? void 0 : _.value) ?? "", - T = ((C = this.allIds.get(L)) == null ? void 0 : C.keywords) ?? [], - o = Fr(this, ir, If).call(this, F, T); - this._commandState.filtered.items.set(L, o), o > 0 && l++ - } - for (const [L, F] of this.allGroups) - for (const T of F) { - const o = this._commandState.filtered.items.get(T); - if (o && o > 0) { - this._commandState.filtered.groups.add(L); - break - } - } - this._commandState.filtered.count = l -}, no = function() { - const l = this.opts.ref.current; - if (!l) return; - const _ = l.querySelector(`${pf}[data-selected]`); - if (_) return _ -}, vv = function() { - Wl(() => { - var C, L, F, T, o; - const l = Fr(this, ir, no).call(this); - if (!l) return; - const _ = (C = l.parentElement) == null ? void 0 : C.parentElement; - if (_) { - if (this.isGrid) { - const $ = Fr(this, ir, yv).call(this, l); - if (l.scrollIntoView({ - block: "nearest" - }), $) { - const W = (L = l == null ? void 0 : l.closest(Xl)) == null ? void 0 : L.querySelector(vg); - W == null || W.scrollIntoView({ - block: "nearest" - }); - return - } - } else { - const $ = f6(_); - if ($ && ((F = $.dataset) == null ? void 0 : F.value) === ((T = l.dataset) == null ? void 0 : T.value)) { - const W = (o = l == null ? void 0 : l.closest(Xl)) == null ? void 0 : o.querySelector(vg); - W == null || W.scrollIntoView({ - block: "nearest" - }); - return - } - } - l.scrollIntoView({ - block: "nearest" - }) - } - }) -}, yv = function(l) { - const _ = this.itemsGrid; - if (_.length === 0) return !1; - for (let C = 0; C < _.length; C++) { - const L = _[C]; - if (L !== void 0) - for (let F = 0; F < L.length; F++) { - const T = L[F]; - if (!(T === void 0 || T.ref !== l)) return T.firstRowOfGroup - } - } - return !1 -}, Mf = function() { - return this.updateSelectedToIndex(this.getValidItems().length - 1) -}, yu = function(l) { - l.preventDefault(), l.metaKey ? Fr(this, ir, Mf).call(this) : l.altKey ? this.updateSelectedByGroup(1) : this.updateSelectedByItem(1) -}, Af = function(l) { - this.opts.columns.current !== null && (l.preventDefault(), l.metaKey ? this.updateSelectedByGroup(1) : this.updateSelectedByItem(Fr(this, ir, xv).call(this, l))) -}, kf = function(l, _) { - if (_.length === 0) return null; - for (let C = 0; C < _.length; C++) { - const L = _[C]; - if (L !== void 0) - for (let F = 0; F < L.length; F++) { - const T = L[F]; - if (!(T === void 0 || T.ref !== l)) return { - columnIndex: F, - rowIndex: C - } - } - } - return null -}, xv = function(l) { - const _ = this.itemsGrid, - C = Fr(this, ir, no).call(this); - if (!C) return 0; - const L = Fr(this, ir, kf).call(this, C, _); - if (!L) return 0; - let F = null; - const T = l.altKey ? 1 : 0; - if (l.altKey && L.rowIndex === _.length - 2 && !this.opts.loop.current) F = Fr(this, ir, xu).call(this, { - start: _.length - 1, - end: _.length, - expectedColumnIndex: L.columnIndex, - grid: _ - }); - else if (L.rowIndex === _.length - 1) { - if (!this.opts.loop.current) return 0; - F = Fr(this, ir, xu).call(this, { - start: 0 + T, - end: L.rowIndex, - expectedColumnIndex: L.columnIndex, - grid: _ - }) - } else F = Fr(this, ir, xu).call(this, { - start: L.rowIndex + 1 + T, - end: _.length, - expectedColumnIndex: L.columnIndex, - grid: _ - }), F === null && this.opts.loop.current && (F = Fr(this, ir, xu).call(this, { - start: 0, - end: L.rowIndex, - expectedColumnIndex: L.columnIndex, - grid: _ - })); - return Fr(this, ir, Ef).call(this, C, F) -}, xu = function({ - start: l, - end: _, - grid: C, - expectedColumnIndex: L -}) { - var T; - let F = null; - for (let o = l; o < _; o++) { - const $ = C[o]; - if (F = ((T = $[L]) == null ? void 0 : T.ref) ?? null, F !== null && Td(F)) { - F = null; - continue - } - if (F === null) - for (let W = $.length - 1; W >= 0; W--) { - const ie = $[$.length - 1]; - if (!(ie === void 0 || Td(ie.ref))) { - F = ie.ref; - break - } - } - break - } - return F -}, Ef = function(l, _) { - if (_ === null) return 0; - const C = this.getValidItems(), - L = C.findIndex(T => T === l); - return C.findIndex(T => T === _) - L -}, zf = function(l) { - this.opts.columns.current !== null && (l.preventDefault(), l.metaKey ? this.updateSelectedByGroup(-1) : this.updateSelectedByItem(Fr(this, ir, bv).call(this, l))) -}, bv = function(l) { - const _ = this.itemsGrid, - C = Fr(this, ir, no).call(this); - if (C === void 0) return 0; - const L = Fr(this, ir, kf).call(this, C, _); - if (L === null) return 0; - let F = null; - const T = l.altKey ? 1 : 0; - if (l.altKey && L.rowIndex === 1 && this.opts.loop.current === !1) F = Fr(this, ir, bu).call(this, { - start: 0, - end: 0, - expectedColumnIndex: L.columnIndex, - grid: _ - }); - else if (L.rowIndex === 0) { - if (this.opts.loop.current === !1) return 0; - F = Fr(this, ir, bu).call(this, { - start: _.length - 1 - T, - end: L.rowIndex + 1, - expectedColumnIndex: L.columnIndex, - grid: _ - }) - } else F = Fr(this, ir, bu).call(this, { - start: L.rowIndex - 1 - T, - end: 0, - expectedColumnIndex: L.columnIndex, - grid: _ - }), F === null && this.opts.loop.current && (F = Fr(this, ir, bu).call(this, { - start: _.length - 1, - end: L.rowIndex + 1, - expectedColumnIndex: L.columnIndex, - grid: _ - })); - return Fr(this, ir, Ef).call(this, C, F) -}, bu = function({ - start: l, - end: _, - grid: C, - expectedColumnIndex: L -}) { - var T; - let F = null; - for (let o = l; o >= _; o--) { - const $ = C[o]; - if ($ !== void 0) { - if (F = ((T = $[L]) == null ? void 0 : T.ref) ?? null, F !== null && Td(F)) { - F = null; - continue - } - if (F === null) - for (let W = $.length - 1; W >= 0; W--) { - const ie = $[$.length - 1]; - if (!(ie === void 0 || Td(ie.ref))) { - F = ie.ref; - break - } - } - break - } - } - return F -}, wu = function(l) { - l.preventDefault(), l.metaKey ? this.updateSelectedToIndex(0) : l.altKey ? this.updateSelectedByGroup(-1) : this.updateSelectedByItem(-1) -}, Zu = new WeakMap; -let Pf = pm; - -function Td(b) { - return b.getAttribute("aria-disabled") === "true" -} -var $u, Gu, Hu; -const fm = class fm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, $u, lt(() => this.root._commandState.filtered.count === 0 && et(this, Gu) === !1 || this.opts.forceMount.current)); - br(this, Gu, !0); - br(this, Hu, lt(() => ({ - id: this.opts.id.current, - role: "presentation", - [ma.empty]: "", - ...this.attachment - }))); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref), Hf(() => { - Jn(this, Gu, !1) - }) - } - static create(l) { - return new fm(l, Xo.get()) - } - get shouldRender() { - return x(et(this, $u)) - } - set shouldRender(l) { - oe(et(this, $u), l) - } - get props() { - return x(et(this, Hu)) - } - set props(l) { - oe(et(this, Hu), l) - } -}; -$u = new WeakMap, Gu = new WeakMap, Hu = new WeakMap; -let Lf = fm; -var Wu, Xu, Ku, Yu; -const mm = class mm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, Wu, lt(() => this.opts.forceMount.current || this.root.opts.shouldFilter.current === !1 || !this.root.commandState.search ? !0 : this.root._commandState.filtered.groups.has(this.trueValue))); - br(this, Xu, nt(null)); - br(this, Ku, nt("")); - br(this, Yu, lt(() => ({ - id: this.opts.id.current, - role: "presentation", - hidden: this.shouldRender ? void 0 : !0, - "data-value": this.trueValue, - [ma.group]: "", - ...this.attachment - }))); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref), this.trueValue = l.value.current ?? l.id.current, oo(() => this.trueValue, () => this.root.registerGroup(this.trueValue)), Zr(() => this.opts.value.current ? (this.trueValue = this.opts.value.current, this.root.registerValue(this.opts.value.current)) : this.headingNode && this.headingNode.textContent ? (this.trueValue = this.headingNode.textContent.trim().toLowerCase(), this.root.registerValue(this.trueValue)) : (this.trueValue = `-----${this.opts.id.current}`, this.root.registerValue(this.trueValue))) - } - static create(l) { - return Au.set(new mm(l, Xo.get())) - } - get shouldRender() { - return x(et(this, Wu)) - } - set shouldRender(l) { - oe(et(this, Wu), l) - } - get headingNode() { - return x(et(this, Xu)) - } - set headingNode(l) { - oe(et(this, Xu), l, !0) - } - get trueValue() { - return x(et(this, Ku)) - } - set trueValue(l) { - oe(et(this, Ku), l, !0) - } - get props() { - return x(et(this, Yu)) - } - set props(l) { - oe(et(this, Yu), l) - } -}; -Wu = new WeakMap, Xu = new WeakMap, Ku = new WeakMap, Yu = new WeakMap; -let Df = mm; -var Ju; -const _m = class _m { - constructor(l, _) { - lr(this, "opts"); - lr(this, "group"); - lr(this, "attachment"); - br(this, Ju, lt(() => ({ - id: this.opts.id.current, - [ma["group-heading"]]: "", - ...this.attachment - }))); - this.opts = l, this.group = _, this.attachment = Va(this.opts.ref, C => this.group.headingNode = C) - } - static create(l) { - return new _m(l, Au.get()) - } - get props() { - return x(et(this, Ju)) - } - set props(l) { - oe(et(this, Ju), l) - } -}; -Ju = new WeakMap; -let Rf = _m; -var Qu; -const gm = class gm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "group"); - lr(this, "attachment"); - br(this, Qu, lt(() => { - var l; - return { - id: this.opts.id.current, - role: "group", - [ma["group-items"]]: "", - "aria-labelledby": ((l = this.group.headingNode) == null ? void 0 : l.id) ?? void 0, - ...this.attachment - } - })); - this.opts = l, this.group = _, this.attachment = Va(this.opts.ref) - } - static create(l) { - return new gm(l, Au.get()) - } - get props() { - return x(et(this, Qu)) - } - set props(l) { - oe(et(this, Qu), l) - } -}; -Qu = new WeakMap; -let Bf = gm; -var Dd, eh; -const vm = class vm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, Dd, lt(() => { - var _; - const l = (_ = this.root.viewportNode) == null ? void 0 : _.querySelector(`${_v}[${Uo}="${mv(this.root.opts.value.current)}"]`); - if (l != null) return l.getAttribute("id") ?? void 0 - })); - br(this, eh, lt(() => { - var l, _; - return { - id: this.opts.id.current, - type: "text", - [ma.input]: "", - autocomplete: "off", - autocorrect: "off", - spellcheck: !1, - "aria-autocomplete": "list", - role: "combobox", - "aria-expanded": X4(!0), - "aria-controls": ((l = this.root.viewportNode) == null ? void 0 : l.id) ?? void 0, - "aria-labelledby": ((_ = this.root.labelNode) == null ? void 0 : _.id) ?? void 0, - "aria-activedescendant": x(et(this, Dd)), - ...this.attachment - } - })); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref, C => this.root.inputNode = C), oo(() => this.opts.ref.current, () => { - const C = this.opts.ref.current; - C && this.opts.autofocus.current && F4(10, () => C.focus()) - }), oo(() => this.opts.value.current, () => { - this.root.commandState.search !== this.opts.value.current && this.root.setState("search", this.opts.value.current) - }) - } - static create(l) { - return new vm(l, Xo.get()) - } - get props() { - return x(et(this, eh)) - } - set props(l) { - oe(et(this, eh), l) - } -}; -Dd = new WeakMap, eh = new WeakMap; -let Ff = vm; -var ao, Rd, th, rh, ih, Wo, wv, Nf, nh; -const ym = class ym { - constructor(l, _) { - br(this, Wo); - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, ao, null); - br(this, Rd, lt(() => { - var l; - return this.opts.forceMount.current || ((l = et(this, ao)) == null ? void 0 : l.opts.forceMount.current) === !0 - })); - br(this, th, lt(() => { - if (this.opts.ref.current, x(et(this, Rd)) || this.root.opts.shouldFilter.current === !1 || !this.root.commandState.search) return !0; - const l = this.root.commandState.filtered.items.get(this.trueValue); - return l === void 0 ? !1 : l > 0 - })); - br(this, rh, lt(() => this.root.opts.value.current === this.trueValue && this.trueValue !== "")); - br(this, ih, nt("")); - br(this, nh, lt(() => { - var l; - return { - id: this.opts.id.current, - "aria-disabled": W4(this.opts.disabled.current), - "aria-selected": Y4(this.isSelected), - "data-disabled": K4(this.opts.disabled.current), - "data-selected": J4(this.isSelected), - "data-value": this.trueValue, - "data-group": (l = et(this, ao)) == null ? void 0 : l.trueValue, - [ma.item]: "", - role: "option", - onpointermove: this.onpointermove, - onclick: this.onclick, - ...this.attachment - } - })); - this.opts = l, this.root = _, Jn(this, ao, Au.getOr(null)), this.trueValue = l.value.current, this.attachment = Va(this.opts.ref), oo([() => this.trueValue, () => { - var C; - return (C = et(this, ao)) == null ? void 0 : C.trueValue - }, () => this.opts.forceMount.current], () => { - var C; - if (!this.opts.forceMount.current) return this.root.registerItem(this.trueValue, (C = et(this, ao)) == null ? void 0 : C.trueValue) - }), oo([() => this.opts.value.current, () => this.opts.ref.current], () => { - var C, L; - !this.opts.value.current && ((C = this.opts.ref.current) != null && C.textContent) && (this.trueValue = this.opts.ref.current.textContent.trim()), this.root.registerValue(this.trueValue, l.keywords.current.map(F => F.trim())), (L = this.opts.ref.current) == null || L.setAttribute(Uo, this.trueValue) - }), this.onclick = this.onclick.bind(this), this.onpointermove = this.onpointermove.bind(this) - } - static create(l) { - const _ = Au.getOr(null); - return new ym({ - ...l, - group: _ - }, Xo.get()) - } - get shouldRender() { - return x(et(this, th)) - } - set shouldRender(l) { - oe(et(this, th), l) - } - get isSelected() { - return x(et(this, rh)) - } - set isSelected(l) { - oe(et(this, rh), l) - } - get trueValue() { - return x(et(this, ih)) - } - set trueValue(l) { - oe(et(this, ih), l, !0) - } - onpointermove(l) { - this.opts.disabled.current || this.root.opts.disablePointerSelection.current || Fr(this, Wo, Nf).call(this) - } - onclick(l) { - this.opts.disabled.current || Fr(this, Wo, wv).call(this) - } - get props() { - return x(et(this, nh)) - } - set props(l) { - oe(et(this, nh), l) - } -}; -ao = new WeakMap, Rd = new WeakMap, th = new WeakMap, rh = new WeakMap, ih = new WeakMap, Wo = new WeakSet, wv = function() { - var l; - this.opts.disabled.current || (Fr(this, Wo, Nf).call(this), (l = this.opts.onSelect) == null || l.current()) -}, Nf = function() { - this.opts.disabled.current || this.root.setValue(this.trueValue, !0) -}, nh = new WeakMap; -let Of = ym; -var ah; -const xm = class xm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, ah, lt(() => ({ - id: this.opts.id.current, - role: "listbox", - "aria-label": this.opts.ariaLabel.current, - [ma.list]: "", - ...this.attachment - }))); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref) - } - static create(l) { - return v6.set(new xm(l, Xo.get())) - } - get props() { - return x(et(this, ah)) - } - set props(l) { - oe(et(this, ah), l) - } -}; -ah = new WeakMap; -let jf = xm; -var sh; -const bm = class bm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, sh, lt(() => { - var l; - return { - id: this.opts.id.current, - [ma["input-label"]]: "", - for: (l = this.opts.for) == null ? void 0 : l.current, - style: uv, - ...this.attachment - } - })); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref, C => this.root.labelNode = C) - } - static create(l) { - return new bm(l, Xo.get()) - } - get props() { - return x(et(this, sh)) - } - set props(l) { - oe(et(this, sh), l) - } -}; -sh = new WeakMap; -let qf = bm; -var y6 = Ie(""); - -function x6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children"]); - const T = qf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ie => L(ie)) - }), - o = lt(() => Da(F, T.props)); - var $ = y6(); - er($, () => ({ - ...x(o) - })); - var W = k($); - Ji(W, () => l.children ?? fa), A($), H(b, $), Pr() -} -var b6 = Ie(" ", 1), - w6 = Ie("
        "); - -function T6(b, l) { - const _ = ts(); - Sr(l, !0); - const C = it => { - x6(it, { - children: (Qe, ke) => { - fi(); - var vt = Fn(); - Ge(() => fe(vt, ye())), H(Qe, vt) - }, - $$slots: { - default: !0 - } - }) - }; - let L = Et(l, "id", 19, () => Ua(_)), - F = Et(l, "ref", 15, null), - T = Et(l, "value", 15, ""), - o = Et(l, "onValueChange", 3, Mu), - $ = Et(l, "onStateChange", 3, Mu), - W = Et(l, "loop", 3, !1), - ie = Et(l, "shouldFilter", 3, !0), - pe = Et(l, "filter", 3, Cv), - ye = Et(l, "label", 3, ""), - X = Et(l, "vimBindings", 3, !0), - Se = Et(l, "disablePointerSelection", 3, !1), - we = Et(l, "disableInitialScroll", 3, !1), - Re = Et(l, "columns", 3, null), - Ae = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "value", "onValueChange", "onStateChange", "loop", "shouldFilter", "filter", "label", "vimBindings", "disablePointerSelection", "disableInitialScroll", "columns", "children", "child"]); - const Oe = Pf.create({ - id: cr.with(() => L()), - ref: cr.with(() => F(), it => F(it)), - filter: cr.with(() => pe()), - shouldFilter: cr.with(() => ie()), - loop: cr.with(() => W()), - value: cr.with(() => T(), it => { - T() !== it && (T(it), o()(it)) - }), - vimBindings: cr.with(() => X()), - disablePointerSelection: cr.with(() => Se()), - disableInitialScroll: cr.with(() => we()), - onStateChange: cr.with(() => $()), - columns: cr.with(() => Re()) - }), - Ee = it => Oe.updateSelectedToIndex(it), - Ne = it => Oe.updateSelectedByGroup(it), - ft = it => Oe.updateSelectedByItem(it), - ht = () => Oe.getValidItems(), - Xe = lt(() => Da(Ae, Oe.props)); - var ct = Jt(), - Je = zt(ct); - { - var Be = it => { - var Qe = b6(), - ke = zt(Qe); - C(ke); - var vt = V(ke, 2); - Ji(vt, () => l.child, () => ({ - props: x(Xe) - })), H(it, Qe) - }, - st = it => { - var Qe = w6(); - er(Qe, () => ({ - ...x(Xe) - })); - var ke = k(Qe); - C(ke); - var vt = V(ke, 2); - Ji(vt, () => l.children ?? fa), A(Qe), H(it, Qe) - }; - Ue(Je, it => { - l.child ? it(Be) : it(st, !1) - }) - } - return H(b, ct), Pr({ - updateSelectedToIndex: Ee, - updateSelectedByGroup: Ne, - updateSelectedByItem: ft, - getValidItems: ht - }) -} -var C6 = Ie("
        "); - -function S6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Et(l, "forceMount", 3, !1), - T = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children", "child", "forceMount"]); - const o = Lf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)), - forceMount: cr.with(() => F()) - }), - $ = lt(() => Da(o.props, T)); - var W = Jt(), - ie = zt(W); - { - var pe = ye => { - var X = Jt(), - Se = zt(X); - { - var we = Ae => { - var Oe = Jt(), - Ee = zt(Oe); - Ji(Ee, () => l.child, () => ({ - props: x($) - })), H(Ae, Oe) - }, - Re = Ae => { - var Oe = C6(); - er(Oe, () => ({ - ...x($) - })); - var Ee = k(Oe); - Ji(Ee, () => l.children ?? fa), A(Oe), H(Ae, Oe) - }; - Ue(Se, Ae => { - l.child ? Ae(we) : Ae(Re, !1) - }) - } - H(ye, X) - }; - Ue(ie, ye => { - o.shouldRender && ye(pe) - }) - } - H(b, W), Pr() -} -var P6 = Ie("
        "); - -function I6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Et(l, "value", 3, ""), - T = Et(l, "forceMount", 3, !1), - o = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "value", "forceMount", "children", "child"]); - const $ = Df.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), Se => L(Se)), - forceMount: cr.with(() => T()), - value: cr.with(() => F()) - }), - W = lt(() => Da(o, $.props)); - var ie = Jt(), - pe = zt(ie); - { - var ye = Se => { - var we = Jt(), - Re = zt(we); - Ji(Re, () => l.child, () => ({ - props: x(W) - })), H(Se, we) - }, - X = Se => { - var we = P6(); - er(we, () => ({ - ...x(W) - })); - var Re = k(we); - Ji(Re, () => l.children ?? fa), A(we), H(Se, we) - }; - Ue(pe, Se => { - l.child ? Se(ye) : Se(X, !1) - }) - } - H(b, ie), Pr() -} -var M6 = Ie("
        "); - -function A6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children", "child"]); - const T = Rf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)) - }), - o = lt(() => Da(F, T.props)); - var $ = Jt(), - W = zt($); - { - var ie = ye => { - var X = Jt(), - Se = zt(X); - Ji(Se, () => l.child, () => ({ - props: x(o) - })), H(ye, X) - }, - pe = ye => { - var X = M6(); - er(X, () => ({ - ...x(o) - })); - var Se = k(X); - Ji(Se, () => l.children ?? fa), A(X), H(ye, X) - }; - Ue(W, ye => { - l.child ? ye(ie) : ye(pe, !1) - }) - } - H(b, $), Pr() -} -var k6 = Ie("
        "), - E6 = Ie('
        '); - -function z6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children", "child"]); - const T = Bf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)) - }), - o = lt(() => Da(F, T.props)); - var $ = E6(), - W = k($); - { - var ie = ye => { - var X = Jt(), - Se = zt(X); - Ji(Se, () => l.child, () => ({ - props: x(o) - })), H(ye, X) - }, - pe = ye => { - var X = k6(); - er(X, () => ({ - ...x(o) - })); - var Se = k(X); - Ji(Se, () => l.children ?? fa), A(X), H(ye, X) - }; - Ue(W, ye => { - l.child ? ye(ie) : ye(pe, !1) - }) - } - A($), H(b, $), Pr() -} -var L6 = Ie(""); - -function D6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "value", 15, ""), - L = Et(l, "autofocus", 3, !1), - F = Et(l, "id", 19, () => Ua(_)), - T = Et(l, "ref", 15, null), - o = Qt(l, ["$$slots", "$$events", "$$legacy", "value", "autofocus", "id", "ref", "child"]); - const $ = Ff.create({ - id: cr.with(() => F()), - ref: cr.with(() => T(), Se => T(Se)), - value: cr.with(() => C(), Se => { - C(Se) - }), - autofocus: cr.with(() => L() ?? !1) - }), - W = lt(() => Da(o, $.props)); - var ie = Jt(), - pe = zt(ie); - { - var ye = Se => { - var we = Jt(), - Re = zt(we); - Ji(Re, () => l.child, () => ({ - props: x(W) - })), H(Se, we) - }, - X = Se => { - var we = L6(); - ea(we), er(we, () => ({ - ...x(W) - })), jd(we, C), H(Se, we) - }; - Ue(pe, Se => { - l.child ? Se(ye) : Se(X, !1) - }) - } - H(b, ie), Pr() -} -var R6 = Ie("
        "), - B6 = Ie('
        '); - -function F6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Et(l, "value", 3, ""), - T = Et(l, "disabled", 3, !1), - o = Et(l, "onSelect", 3, Mu), - $ = Et(l, "forceMount", 3, !1), - W = Et(l, "keywords", 19, () => []), - ie = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "value", "disabled", "children", "child", "onSelect", "forceMount", "keywords"]); - const pe = Of.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), we => L(we)), - value: cr.with(() => F()), - disabled: cr.with(() => T()), - onSelect: cr.with(() => o()), - forceMount: cr.with(() => $()), - keywords: cr.with(() => W()) - }), - ye = lt(() => Da(ie, pe.props)); - var X = Jt(), - Se = zt(X); - Pu(Se, () => pe.root.key, we => { - var Re = B6(), - Ae = k(Re); - { - var Oe = Ee => { - var Ne = Jt(), - ft = zt(Ne); - { - var ht = ct => { - var Je = Jt(), - Be = zt(Je); - Ji(Be, () => l.child, () => ({ - props: x(ye) - })), H(ct, Je) - }, - Xe = ct => { - var Je = R6(); - er(Je, () => ({ - ...x(ye) - })); - var Be = k(Je); - Ji(Be, () => l.children ?? fa), A(Je), H(ct, Je) - }; - Ue(ft, ct => { - l.child ? ct(ht) : ct(Xe, !1) - }) - } - H(Ee, Ne) - }; - Ue(Ae, Ee => { - pe.shouldRender && Ee(Oe) - }) - } - A(Re), Ge(() => zr(Re, "data-value", pe.trueValue)), H(we, Re) - }), H(b, X), Pr() -} -var O6 = Ie("
        "); - -function N6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "child", "children", "aria-label"]); - const T = jf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ie => L(ie)), - ariaLabel: cr.with(() => l["aria-label"] ?? "Suggestions...") - }), - o = lt(() => Da(F, T.props)); - var $ = Jt(), - W = zt($); - Pu(W, () => T.root._commandState.search === "", ie => { - var pe = Jt(), - ye = zt(pe); - { - var X = we => { - var Re = Jt(), - Ae = zt(Re); - Ji(Ae, () => l.child, () => ({ - props: x(o) - })), H(we, Re) - }, - Se = we => { - var Re = O6(); - er(Re, () => ({ - ...x(o) - })); - var Ae = k(Re); - Ji(Ae, () => l.children ?? fa), A(Re), H(we, Re) - }; - Ue(ye, we => { - l.child ? we(X) : we(Se, !1) - }) - } - H(ie, pe) - }), H(b, $), Pr() -} -const xg = 1, - j6 = .9, - q6 = .8, - V6 = .17, - ff = .1, - mf = .999, - U6 = .9999, - Z6 = .99, - $6 = /[\\/_+.#"@[({&]/, - G6 = /[\\/_+.#"@[({&]/g, - H6 = /[\s-]/, - Tv = /[\s-]/g; - -function Vf(b, l, _, C, L, F, T) { - if (F === l.length) return L === b.length ? xg : Z6; - const o = `${L},${F}`; - if (T[o] !== void 0) return T[o]; - const $ = C.charAt(F); - let W = _.indexOf($, L), - ie = 0, - pe, ye, X, Se; - for (; W >= 0;) pe = Vf(b, l, _, C, W + 1, F + 1, T), pe > ie && (W === L ? pe *= xg : $6.test(b.charAt(W - 1)) ? (pe *= q6, X = b.slice(L, W - 1).match(G6), X && L > 0 && (pe *= mf ** X.length)) : H6.test(b.charAt(W - 1)) ? (pe *= j6, Se = b.slice(L, W - 1).match(Tv), Se && L > 0 && (pe *= mf ** Se.length)) : (pe *= V6, L > 0 && (pe *= mf ** (W - L))), b.charAt(W) !== l.charAt(F) && (pe *= U6)), (pe < ff && _.charAt(W - 1) === C.charAt(F + 1) || C.charAt(F + 1) === C.charAt(F) && _.charAt(W - 1) !== C.charAt(F)) && (ye = Vf(b, l, _, C, W + 1, F + 2, T), ye * ff > pe && (pe = ye * ff)), pe > ie && (ie = pe), W = _.indexOf($, W + 1); - return T[o] = ie, ie -} - -function bg(b) { - return b.toLowerCase().replace(Tv, " ") -} - -function Cv(b, l, _) { - return b = _ && _.length > 0 ? `${`${b} ${_==null?void 0:_.join(" ")}`}` : b, Vf(b, l, bg(b), bg(l), 0, 0, {}) -} -const W6 = 18, - Sv = 40, - X6 = `${Sv}px`, - K6 = ["[data-lastpass-icon-root]", "com-1password-button", "[data-dashlanecreated]", '[style$="2147483647 !important;"]'].join(","); - -function Y6({ - containerRef: b, - inputRef: l, - pushPasswordManagerStrategy: _, - isFocused: C, - domContext: L -}) { - let F = nt(!1), - T = nt(!1), - o = nt(!1); - - function $() { - const ie = _.current; - return ie === "none" ? !1 : ie === "increase-width" && x(F) && x(T) - } - - function W() { - const ie = b.current, - pe = l.current; - if (!ie || !pe || x(o) || _.current === "none") return; - const ye = ie, - X = ye.getBoundingClientRect().left + ye.offsetWidth, - Se = ye.getBoundingClientRect().top + ye.offsetHeight / 2, - we = X - W6, - Re = Se; - L.querySelectorAll(K6).length === 0 && L.getDocument().elementFromPoint(we, Re) === ie || (oe(F, !0), oe(o, !0)) - } - return Zr(() => { - const ie = b.current; - if (!ie || _.current === "none") return; - - function pe() { - const Se = pv(ie).innerWidth - ie.getBoundingClientRect().right; - oe(T, Se >= Sv) - } - pe(); - const ye = setInterval(pe, 1e3); - return () => { - clearInterval(ye) - } - }), Zr(() => { - const ie = C.current || L.getActiveElement() === l.current; - if (_.current === "none" || !ie) return; - const pe = setTimeout(W, 0), - ye = setTimeout(W, 2e3), - X = setTimeout(W, 5e3), - Se = setTimeout(() => { - oe(o, !0) - }, 6e3); - return () => { - clearTimeout(pe), clearTimeout(ye), clearTimeout(X), clearTimeout(Se) - } - }), { - get hasPwmBadge() { - return x(F) - }, - get willPushPwmBadge() { - return $() - }, - PWM_BADGE_SPACE_WIDTH: X6 - } -} -const Pv = fv({ - component: "pin-input", - parts: ["root", "cell"] - }), - J6 = ["Backspace", "Delete", "ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End", "Escape", "Enter", "Tab", "Shift", "Control", "Meta"]; -var ja, oc, Ls, za, qa, lc, hs, Ds, so, cc, Bd, oh, lh, Fd, Od, Iv, ch, uh, Nd, hh; -const wm = class wm { - constructor(l) { - br(this, Od); - lr(this, "opts"); - lr(this, "attachment"); - br(this, ja, cr(null)); - br(this, oc, nt(!1)); - lr(this, "inputAttachment", Va(et(this, ja))); - br(this, Ls, cr(!1)); - br(this, za, nt(null)); - br(this, qa, nt(null)); - br(this, lc, new B4(() => this.opts.value.current ?? "")); - br(this, hs, lt(() => typeof this.opts.pattern.current == "string" ? new RegExp(this.opts.pattern.current) : this.opts.pattern.current)); - br(this, Ds, nt(zn({ - prev: [null, null, "none"], - willSyntheticBlur: !1 - }))); - br(this, so); - br(this, cc); - lr(this, "domContext"); - lr(this, "onkeydown", l => { - const _ = l.key; - J6.includes(_) || l.ctrlKey || l.metaKey || _ && x(et(this, hs)) && !x(et(this, hs)).test(_) && l.preventDefault() - }); - br(this, Bd, lt(() => ({ - position: "relative", - cursor: this.opts.disabled.current ? "default" : "text", - userSelect: "none", - WebkitUserSelect: "none", - pointerEvents: "none" - }))); - br(this, oh, lt(() => ({ - id: this.opts.id.current, - [Pv.root]: "", - style: x(et(this, Bd)), - ...this.attachment - }))); - br(this, lh, lt(() => ({ - style: { - position: "absolute", - inset: 0, - pointerEvents: "none" - } - }))); - br(this, Fd, lt(() => ({ - position: "absolute", - inset: 0, - width: et(this, so).willPushPwmBadge ? `calc(100% + ${et(this,so).PWM_BADGE_SPACE_WIDTH})` : "100%", - clipPath: et(this, so).willPushPwmBadge ? `inset(0 ${et(this,so).PWM_BADGE_SPACE_WIDTH} 0 0)` : void 0, - height: "100%", - display: "flex", - textAlign: this.opts.textAlign.current, - opacity: "1", - color: "transparent", - pointerEvents: "all", - background: "transparent", - caretColor: "transparent", - border: "0 solid transparent", - outline: "0 solid transparent", - boxShadow: "none", - lineHeight: "1", - letterSpacing: "-.5em", - fontSize: "var(--bits-pin-input-root-height)", - fontFamily: "monospace", - fontVariantNumeric: "tabular-nums" - }))); - br(this, ch, () => { - var we; - const l = et(this, ja).current, - _ = this.opts.ref.current; - if (!l || !_) return; - if (this.domContext.getActiveElement() !== l) { - oe(et(this, za), null), oe(et(this, qa), null); - return - } - const C = l.selectionStart, - L = l.selectionEnd, - F = l.selectionDirection ?? "none", - T = l.maxLength, - o = l.value, - $ = x(et(this, Ds)).prev; - let W = -1, - ie = -1, - pe; - if (o.length !== 0 && C !== null && L !== null) { - const Re = C === L, - Ae = C === o.length && o.length < T; - if (Re && !Ae) { - const Oe = C; - if (Oe === 0) W = 0, ie = 1, pe = "forward"; - else if (Oe === T) W = Oe - 1, ie = Oe, pe = "backward"; - else if (T > 1 && o.length > 1) { - let Ee = 0; - if ($[0] !== null && $[1] !== null) { - pe = Oe < $[0] ? "backward" : "forward"; - const Ne = $[0] === $[1] && $[0] < T; - pe === "backward" && !Ne && (Ee = -1) - } - W = Ee - Oe, ie = Ee + Oe + 1 - } - } - W !== -1 && ie !== -1 && W !== ie && ((we = et(this, ja).current) == null || we.setSelectionRange(W, ie, pe)) - } - const ye = W !== -1 ? W : C, - X = ie !== -1 ? ie : L, - Se = pe ?? F; - oe(et(this, za), ye, !0), oe(et(this, qa), X, !0), x(et(this, Ds)).prev = [ye, X, Se] - }); - lr(this, "oninput", l => { - const _ = l.currentTarget.value.slice(0, this.opts.maxLength.current); - if (_.length > 0 && x(et(this, hs)) && !x(et(this, hs)).test(_)) { - l.preventDefault(); - return - } - typeof et(this, lc).current == "string" && _.length < et(this, lc).current.length && this.domContext.getDocument().dispatchEvent(new Event("selectionchange")), this.opts.value.current = _ - }); - lr(this, "onfocus", l => { - const _ = et(this, ja).current; - if (_) { - const C = Math.min(_.value.length, this.opts.maxLength.current - 1), - L = _.value.length; - _.setSelectionRange(C, L), oe(et(this, za), C, !0), oe(et(this, qa), L, !0) - } - et(this, Ls).current = !0 - }); - lr(this, "onpaste", l => { - var ie, pe, ye, X; - const _ = et(this, ja).current; - if (!_) return; - const C = Se => { - const we = _.selectionStart === null ? void 0 : _.selectionStart, - Re = _.selectionEnd === null ? void 0 : _.selectionEnd, - Ae = we !== Re, - Oe = this.opts.value.current; - return (Ae ? Oe.slice(0, we) + Se + Oe.slice(Re) : Oe.slice(0, we) + Se + Oe.slice(we)).slice(0, this.opts.maxLength.current) - }, - L = Se => Se.length > 0 && x(et(this, hs)) && !x(et(this, hs)).test(Se); - if (!((ie = this.opts.pasteTransformer) != null && ie.current) && (!et(this, cc).isIOS || !l.clipboardData || !_)) { - const Se = C((pe = l.clipboardData) == null ? void 0 : pe.getData("text/plain")); - L(Se) && l.preventDefault(); - return - } - const F = ((ye = l.clipboardData) == null ? void 0 : ye.getData("text/plain")) ?? "", - T = (X = this.opts.pasteTransformer) != null && X.current ? this.opts.pasteTransformer.current(F) : F; - l.preventDefault(); - const o = C(T); - if (L(o)) return; - _.value = o, this.opts.value.current = o; - const $ = Math.min(o.length, this.opts.maxLength.current - 1), - W = o.length; - _.setSelectionRange($, W), oe(et(this, za), $, !0), oe(et(this, qa), W, !0) - }); - lr(this, "onmouseover", l => { - oe(et(this, oc), !0) - }); - lr(this, "onmouseleave", l => { - oe(et(this, oc), !1) - }); - lr(this, "onblur", l => { - if (x(et(this, Ds)).willSyntheticBlur) { - x(et(this, Ds)).willSyntheticBlur = !1; - return - } - et(this, Ls).current = !1 - }); - br(this, uh, lt(() => { - var l; - return { - id: this.opts.inputId.current, - style: x(et(this, Fd)), - autocomplete: this.opts.autocomplete.current || "one-time-code", - "data-pin-input-input": "", - "data-pin-input-input-mss": x(et(this, za)), - "data-pin-input-input-mse": x(et(this, qa)), - inputmode: this.opts.inputmode.current, - pattern: (l = x(et(this, hs))) == null ? void 0 : l.source, - maxlength: this.opts.maxLength.current, - value: this.opts.value.current, - disabled: Q4(this.opts.disabled.current), - onpaste: this.onpaste, - oninput: this.oninput, - onkeydown: this.onkeydown, - onmouseover: this.onmouseover, - onmouseleave: this.onmouseleave, - onfocus: this.onfocus, - onblur: this.onblur, - ...this.inputAttachment - } - })); - br(this, Nd, lt(() => Array.from({ - length: this.opts.maxLength.current - }).map((l, _) => { - const C = et(this, Ls).current && x(et(this, za)) !== null && x(et(this, qa)) !== null && (x(et(this, za)) === x(et(this, qa)) && _ === x(et(this, za)) || _ >= x(et(this, za)) && _ < x(et(this, qa))), - L = this.opts.value.current[_] !== void 0 ? this.opts.value.current[_] : null; - return { - char: L, - isActive: C, - hasFakeCaret: C && L === null - } - }))); - br(this, hh, lt(() => ({ - cells: x(et(this, Nd)), - isFocused: et(this, Ls).current, - isHovering: x(et(this, oc)) - }))); - var _; - this.opts = l, this.attachment = Va(this.opts.ref), this.domContext = new H4(l.ref), Jn(this, cc, { - value: this.opts.value, - isIOS: typeof window < "u" && ((_ = window == null ? void 0 : window.CSS) == null ? void 0 : _.supports("-webkit-touch-callout", "none")) - }), Jn(this, so, Y6({ - containerRef: this.opts.ref, - inputRef: et(this, ja), - isFocused: et(this, Ls), - pushPasswordManagerStrategy: this.opts.pushPasswordManagerStrategy, - domContext: this.domContext - })), Ii(() => { - const C = et(this, ja).current, - L = this.opts.ref.current; - if (!C || !L) return; - et(this, cc).value.current !== C.value && (this.opts.value.current = C.value), x(et(this, Ds)).prev = [C.selectionStart, C.selectionEnd, C.selectionDirection ?? "none"]; - const F = Su(this.domContext.getDocument(), "selectionchange", et(this, ch), { - capture: !0 - }); - et(this, ch).call(this), this.domContext.getActiveElement() === C && (et(this, Ls).current = !0), this.domContext.getElementById("pin-input-style") || Fr(this, Od, Iv).call(this); - const T = () => { - L && L.style.setProperty("--bits-pin-input-root-height", `${C.clientHeight}px`) - }; - T(); - const o = new ResizeObserver(T); - return o.observe(C), () => { - F(), o.disconnect() - } - }), oo([() => this.opts.value.current, () => et(this, ja).current], () => { - Q6(() => { - const C = et(this, ja).current; - if (!C) return; - C.dispatchEvent(new Event("input")); - const L = C.selectionStart, - F = C.selectionEnd, - T = C.selectionDirection ?? "none"; - L !== null && F !== null && (oe(et(this, za), L, !0), oe(et(this, qa), F, !0), x(et(this, Ds)).prev = [L, F, T]) - }, this.domContext) - }), Zr(() => { - const C = this.opts.value.current, - L = et(this, lc).current, - F = this.opts.maxLength.current, - T = this.opts.onComplete.current; - L !== void 0 && C !== L && L.length < F && C.length === F && T(C) - }) - } - static create(l) { - return new wm(l) - } - get rootProps() { - return x(et(this, oh)) - } - set rootProps(l) { - oe(et(this, oh), l) - } - get inputWrapperProps() { - return x(et(this, lh)) - } - set inputWrapperProps(l) { - oe(et(this, lh), l) - } - get inputProps() { - return x(et(this, uh)) - } - set inputProps(l) { - oe(et(this, uh), l) - } - get snippetProps() { - return x(et(this, hh)) - } - set snippetProps(l) { - oe(et(this, hh), l) - } -}; -ja = new WeakMap, oc = new WeakMap, Ls = new WeakMap, za = new WeakMap, qa = new WeakMap, lc = new WeakMap, hs = new WeakMap, Ds = new WeakMap, so = new WeakMap, cc = new WeakMap, Bd = new WeakMap, oh = new WeakMap, lh = new WeakMap, Fd = new WeakMap, Od = new WeakSet, Iv = function() { - const l = this.domContext.getDocument(), - _ = l.createElement("style"); - if (_.id = "pin-input-style", l.head.appendChild(_), _.sheet) { - const C = "background: transparent !important; color: transparent !important; border-color: transparent !important; opacity: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; -webkit-text-fill-color: transparent !important;"; - vu(_.sheet, "[data-pin-input-input]::selection { background: transparent !important; color: transparent !important; }"), vu(_.sheet, `[data-pin-input-input]:autofill { ${C} }`), vu(_.sheet, `[data-pin-input-input]:-webkit-autofill { ${C} }`), vu(_.sheet, "@supports (-webkit-touch-callout: none) { [data-pin-input-input] { letter-spacing: -.6em !important; font-weight: 100 !important; font-stretch: ultra-condensed; font-optical-sizing: none !important; left: -1px !important; right: 1px !important; } }"), vu(_.sheet, "[data-pin-input-input] + * { pointer-events: all !important; }") - } -}, ch = new WeakMap, uh = new WeakMap, Nd = new WeakMap, hh = new WeakMap; -let Uf = wm; -var dh; -const Tm = class Tm { - constructor(l) { - lr(this, "opts"); - lr(this, "attachment"); - br(this, dh, lt(() => ({ - id: this.opts.id.current, - [Pv.cell]: "", - "data-active": this.opts.cell.current.isActive ? "" : void 0, - "data-inactive": this.opts.cell.current.isActive ? void 0 : "", - ...this.attachment - }))); - this.opts = l, this.attachment = Va(this.opts.ref) - } - static create(l) { - return new Tm(l) - } - get props() { - return x(et(this, dh)) - } - set props(l) { - oe(et(this, dh), l) - } -}; -dh = new WeakMap; -let Zf = Tm; - -function Q6(b, l) { - const _ = l.setTimeout(b, 0), - C = l.setTimeout(b, 10), - L = l.setTimeout(b, 50); - return [_, C, L] -} - -function vu(b, l) { - try { - b.insertRule(l) - } catch { - console.error("pin input could not insert CSS rule:", l) - } -} -var eA = Ie("
        "); - -function tA(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "inputId", 19, () => `${Ua(_)}-input`), - F = Et(l, "ref", 15, null), - T = Et(l, "maxlength", 3, 6), - o = Et(l, "textalign", 3, "left"), - $ = Et(l, "inputmode", 3, "numeric"), - W = Et(l, "onComplete", 3, Mu), - ie = Et(l, "pushPasswordManagerStrategy", 3, "increase-width"), - pe = Et(l, "class", 3, ""), - ye = Et(l, "autocomplete", 3, "one-time-code"), - X = Et(l, "disabled", 3, !1), - Se = Et(l, "value", 15, ""), - we = Et(l, "onValueChange", 3, Mu), - Re = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "inputId", "ref", "maxlength", "textalign", "pattern", "inputmode", "onComplete", "pushPasswordManagerStrategy", "class", "children", "autocomplete", "disabled", "value", "onValueChange", "pasteTransformer"]); - const Ae = Uf.create({ - id: cr.with(() => C()), - ref: cr.with(() => F(), Je => F(Je)), - inputId: cr.with(() => L()), - autocomplete: cr.with(() => ye()), - maxLength: cr.with(() => T()), - textAlign: cr.with(() => o()), - disabled: cr.with(() => X()), - inputmode: cr.with(() => $()), - pattern: cr.with(() => l.pattern), - onComplete: cr.with(() => W()), - value: cr.with(() => Se(), Je => { - Se(Je), we()(Je) - }), - pushPasswordManagerStrategy: cr.with(() => ie()), - pasteTransformer: cr.with(() => l.pasteTransformer) - }), - Oe = lt(() => Da(Re, Ae.inputProps)), - Ee = lt(() => Da(Ae.rootProps, { - class: pe() - })), - Ne = lt(() => Da(Ae.inputWrapperProps, {})); - var ft = eA(); - er(ft, () => ({ - ...x(Ee) - })); - var ht = k(ft); - Ji(ht, () => l.children ?? fa, () => Ae.snippetProps); - var Xe = V(ht, 2); - er(Xe, () => ({ - ...x(Ne) - })); - var ct = k(Xe); - ea(ct), er(ct, () => ({ - ...x(Oe) - })), A(Xe), A(ft), H(b, ft), Pr() -} -var rA = Ie("
        "); - -function iA(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "cell", "child", "children"]); - const T = Zf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)), - cell: cr.with(() => l.cell) - }), - o = lt(() => Da(F, T.props)); - var $ = Jt(), - W = zt($); - { - var ie = ye => { - var X = Jt(), - Se = zt(X); - Ji(Se, () => l.child, () => ({ - props: x(o) - })), H(ye, X) - }, - pe = ye => { - var X = rA(); - er(X, () => ({ - ...x(o) - })); - var Se = k(X); - Ji(Se, () => l.children ?? fa), A(X), H(ye, X) - }; - Ue(W, ye => { - l.child ? ye(ie) : ye(pe, !1) - }) - } - H(b, $), Pr() -} - -function pc(...b) { - return Fg(Tu(b)) -} - -function nA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Et(l, "value", 15, ""), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "value", "class"]); - var F = Jt(), - T = zt(F); - { - let o = lt(() => pc("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", l.class)); - _n(T, () => T6, ($, W) => { - W($, lo({ - "data-slot": "command", - get class() { - return x(o) - } - }, () => L, { - get value() { - return C() - }, - set value(ie) { - C(ie) - }, - get ref() { - return _() - }, - set ref(ie) { - _(ie) - } - })) - }) - } - H(b, F), Pr() -} -var aA = Tr(''); - -function fc(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = aA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} - -function sA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("py-6 text-center text-sm", l.class)); - _n(F, () => S6, (o, $) => { - $(o, lo({ - "data-slot": "command-empty", - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - } - })) - }) - } - H(b, L), Pr() -} -var oA = Ie(" ", 1); - -function lA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "children", "heading", "value"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("text-foreground overflow-hidden p-1", l.class)), - o = lt(() => l.value ?? l.heading ?? `----${m6()}`); - _n(F, () => I6, ($, W) => { - W($, lo({ - "data-slot": "command-group", - get class() { - return x(T) - }, - get value() { - return x(o) - } - }, () => C, { - get ref() { - return _() - }, - set ref(ie) { - _(ie) - }, - children: (ie, pe) => { - var ye = oA(), - X = zt(ye); - { - var Se = Re => { - var Ae = Jt(), - Oe = zt(Ae); - _n(Oe, () => A6, (Ee, Ne) => { - Ne(Ee, { - class: "text-muted-foreground px-2 py-1.5 text-xs font-medium", - children: (ft, ht) => { - fi(); - var Xe = Fn(); - Ge(() => fe(Xe, l.heading)), H(ft, Xe) - }, - $$slots: { - default: !0 - } - }) - }), H(Re, Ae) - }; - Ue(X, Re => { - l.heading && Re(Se) - }) - } - var we = V(X, 2); - _n(we, () => z6, (Re, Ae) => { - Ae(Re, { - get children() { - return l.children - } - }) - }), H(ie, ye) - }, - $$slots: { - default: !0 - } - })) - }) - } - H(b, L), Pr() -} - -function cA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("aria-selected:bg-base-300 aria-selected:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", l.class)); - _n(F, () => F6, (o, $) => { - $(o, lo({ - "data-slot": "command-item", - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - } - })) - }) - } - H(b, L), Pr() -} -var uA = Tr(''); - -function hA(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = uA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var dA = Ie('
        '); - -function pA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Et(l, "value", 15, ""), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "value"]); - var F = dA(), - T = k(F); - hA(T, { - class: "size-5 opacity-50" - }); - var o = V(T, 2); - { - let $ = lt(() => pc("placeholder:text-muted-foreground outline-hidden flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50", l.class)); - _n(o, () => D6, (W, ie) => { - ie(W, lo({ - "data-slot": "command-input", - get class() { - return x($) - } - }, () => L, { - get ref() { - return _() - }, - set ref(pe) { - _(pe) - }, - get value() { - return C() - }, - set value(pe) { - C(pe) - } - })) - }) - } - A(F), H(b, F), Pr() -} - -function fA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden", l.class)); - _n(F, () => N6, (o, $) => { - $(o, lo({ - "data-slot": "command-list", - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - } - })) - }) - } - H(b, L), Pr() -} -var mA = Tr(''); - -function _A(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = mA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var gA = Ie(" ", 1), - vA = Ie(' ', 1), - yA = Ie(' '), - xA = Ie(" ", 1), - bA = Ie(" ", 1), - wA = (b, l) => { - l(0) - }, - TA = Ie(''), - CA = Ie('
        '); - -function wg(b, l) { - Sr(l, !0); - let _ = Et(l, "countryId", 15, 0), - C = Et(l, "dropdownDirection", 3, "right"), - L = nt(null), - F = nt(null), - T = nt(""); - - function o() { - Mg().then(() => { - var Ee; - (Ee = document.activeElement) == null || Ee.blur(), oe(T, "") - }) - } - var $ = CA(), - W = k($), - ie = k(W), - pe = k(ie); - { - var ye = Ee => { - var Ne = gA(), - ft = zt(Ne), - ht = k(ft, !0); - A(ft); - var Xe = V(ft, 2); - _A(Xe, { - class: "size-3.5" - }), Ge(ct => fe(ht, ct), [() => Vg()]), H(Ee, Ne) - }, - X = Ee => { - const Ne = lt(() => ds(_())); - var ft = vA(), - ht = zt(ft), - Xe = k(ht, !0); - A(ht); - var ct = V(ht); - Ge(() => { - fe(Xe, x(Ne).flag), fe(ct, ` ${x(Ne).name??""}`) - }), H(Ee, ft) - }; - Ue(pe, Ee => { - _() === 0 ? Ee(ye) : Ee(X, !1) - }) - } - A(ie); - var Se = V(ie, 2); - let we; - var Re = k(Se); - _n(Re, () => nA, (Ee, Ne) => { - Ne(Ee, { - children: (ft, ht) => { - var Xe = bA(), - ct = zt(Xe); - _n(ct, () => pA, (Be, st) => { - st(Be, { - placeholder: "Country", - get ref() { - return x(L) - }, - set ref(it) { - oe(L, it) - }, - get value() { - return x(T) - }, - set value(it) { - oe(T, it, !0) - } - }) - }); - var Je = V(ct, 2); - _n(Je, () => fA, (Be, st) => { - st(Be, { - children: (it, Qe) => { - var ke = xA(), - vt = zt(ke); - _n(vt, () => sA, (te, _e) => { - _e(te, { - children: (ne, Pe) => { - fi(); - var Me = Fn(); - Ge(at => fe(Me, at), [() => b2()]), H(ne, Me) - }, - $$slots: { - default: !0 - } - }) - }); - var Q = V(vt, 2); - _n(Q, () => lA, (te, _e) => { - _e(te, { - children: (ne, Pe) => { - var Me = Jt(), - at = zt(Me); - nn(at, 17, () => $n.countries, We => We.id, (We, Ct) => { - var _t = Jt(), - xt = zt(_t); - _n(xt, () => cA, (tt, pt) => { - pt(tt, { - get value() { - return x(Ct).name - }, - onSelect: () => { - _(x(Ct).id), o() - }, - children: (It, ut) => { - var bt = yA(), - wt = k(bt), - dt = k(wt, !0); - A(wt); - var Lt = V(wt); - A(bt), Ge(() => { - fe(dt, x(Ct).flag), fe(Lt, ` ${x(Ct).name??""}`) - }), H(It, bt) - }, - $$slots: { - default: !0 - } - }) - }), H(We, _t) - }), H(ne, Me) - }, - $$slots: { - default: !0 - } - }) - }), H(it, ke) - }, - $$slots: { - default: !0 - } - }) - }), H(ft, Xe) - }, - $$slots: { - default: !0 - } - }) - }), A(Se), A(W); - var Ae = V(W, 2); - { - var Oe = Ee => { - var Ne = TA(); - Ne.__click = [wA, _]; - var ft = k(Ne); - fc(ft, { - class: "size-3.5" - }), A(Ne), H(Ee, Ne) - }; - Ue(Ae, Ee => { - _() != 0 && Ee(Oe) - }) - } - A($), ps($, Ee => oe(F, Ee), () => x(F)), Ge(Ee => we = Or(Se, 1, "dropdown-content menu bg-base-100 rounded-box z-1 border-base-content/10 w-52 rounded-lg border py-1 shadow-sm", null, we, Ee), [() => ({ - "right-1": C() === "left" - })]), an("focus", ie, () => { - x(L).focus() - }), H(b, $), Pr() -} -Wi(["click"]); -var SA = Tr(''); - -function PA(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = SA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var IA = Tr(''), - MA = Tr(''); - -function $f(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = IA(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = MA(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var AA = Ie(''), - kA = Ie('
        '), - EA = Ie('
        '), - zA = (b, l, _) => { - l.onvisitclick({ - lat: x(_).lastLatitude, - lng: x(_).lastLongitude - }) - }, - LA = Ie(' '), - DA = Ie('

        '), - RA = Ie(' '), - BA = Ie('

        '), - FA = Ie(' '), - OA = Ie(" "), - NA = Ie('
        '), - jA = Ie('

        '), - qA = Ie(' '), - VA = Ie('

        '), - UA = Ie('
        '), - ZA = Ie('
        ', 1); - -function $A(b, l) { - Sr(l, !0); - const _ = []; - let C = nt(1e3); - const L = lt(() => x(C) <= 640); - let F = nt("today"), - T = { - regions: { - label: UT(), - icon: Wf - }, - countries: { - label: GT(), - icon: PA - }, - players: { - label: Xg(), - icon: Xd - }, - alliances: { - label: Kg(), - icon: Kd - } - }, - o = nt("regions"), - $ = nt(0), - W = zn({ - players: {}, - alliances: {}, - regions: {}, - countries: {} - }), - ie = lt(() => { - var Xe, ct, Je; - return x(o) === "regions" ? (ct = (Xe = W[x(o)][x($)]) == null ? void 0 : Xe[x(F)]) == null ? void 0 : ct.entries : (Je = W[x(o)][x(F)]) == null ? void 0 : Je.entries - }); - const pe = 5 * 1e3; - Zr(() => { - var Be; - if (!l.open) return; - const Xe = x(F), - ct = x(o), - Je = x($); - ct === "players" && (!W[ct][Xe] || Date.now() - W[ct][Xe].time > pe) ? ni.leaderboardPlayers(Xe).then(st => { - W[ct][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) : ct === "alliances" && (!W[ct][Xe] || Date.now() - W[ct][Xe].time > pe) ? ni.leaderboardAlliances(Xe).then(st => { - W[ct][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) : ct === "countries" && (!W[ct][Xe] || Date.now() - W[ct][Xe].time > pe) ? ni.leaderboardCountries(Xe).then(st => { - W[ct][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) : ct === "regions" && (!((Be = W[ct][Je]) != null && Be[Xe]) || Date.now() - W[ct][Je][Xe].time > pe) && ni.leaderboardRegions(Xe, Je).then(st => { - W[ct][Je] || (W[ct][Je] = {}), W[ct][Je][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) - }); - var ye = ZA(), - X = zt(ye); - nn(X, 21, () => Object.entries(T), ([Xe, { - label: ct, - icon: Je - }]) => Xe, (Xe, ct) => { - var Je = lt(() => Ag(x(ct), 2)); - let Be = () => x(Je)[0], - st = () => x(Je)[1].label, - it = () => x(Je)[1].icon; - const Qe = lt(it); - var ke = AA(), - vt = k(ke); - ea(vt); - var Q, te = V(vt, 2); - _n(te, () => x(Qe), (ne, Pe) => { - Pe(ne, { - get this() { - return it() - }, - class: "mr-1 size-5 max-sm:hidden" - }) - }); - var _e = V(te); - A(ke), Ge(() => { - zr(vt, "aria-label", st()), Q !== (Q = Be()) && (vt.value = (vt.__value = Be()) ?? ""), fe(_e, ` ${st()??""}`) - }), Vd(_, [], vt, () => (Be(), x(o)), ne => oe(o, ne)), H(Xe, ke) - }), A(X); - var Se = V(X, 2), - we = k(Se); - sm(we, { - get value() { - return x(F) - }, - set value(Xe) { - oe(F, Xe, !0) - } - }); - var Re = V(we, 2); - { - var Ae = Xe => { - wg(Xe, { - dropdownDirection: "left", - get countryId() { - return x($) - }, - set countryId(ct) { - oe($, ct, !0) - } - }) - }; - Ue(Re, Xe => { - x(o) === "regions" && !x(L) && Xe(Ae) - }) - } - A(Se); - var Oe = V(Se, 2); - { - var Ee = Xe => { - var ct = kA(), - Je = k(ct); - wg(Je, { - get countryId() { - return x($) - }, - set countryId(Be) { - oe($, Be, !0) - } - }), A(ct), H(Xe, ct) - }; - Ue(Oe, Xe => { - x(o) === "regions" && x(L) && Xe(Ee) - }) - } - var Ne = V(Oe, 2); - { - var ft = Xe => { - var ct = EA(), - Je = k(ct), - Be = V(Je); - { - var st = Qe => { - var ke = Fn(); - Ge(vt => fe(ke, vt), [() => Wd().toLowerCase()]), H(Qe, ke) - }, - it = Qe => { - var ke = Jt(), - vt = zt(ke); - { - var Q = _e => { - var ne = Fn(); - Ge(Pe => fe(ne, Pe), [() => Qf()]), H(_e, ne) - }, - te = _e => { - var ne = Jt(), - Pe = zt(ne); - { - var Me = at => { - var We = Fn(); - Ge(Ct => fe(We, Ct), [() => em()]), H(at, We) - }; - Ue(Pe, at => { - x(F) === "month" && at(Me) - }, !0) - } - H(_e, ne) - }; - Ue(vt, _e => { - x(F) === "week" ? _e(Q) : _e(te, !1) - }, !0) - } - H(Qe, ke) - }; - Ue(Be, Qe => { - x(F) === "today" ? Qe(st) : Qe(it, !1) - }) - } - A(ct), Ge(Qe => fe(Je, `${Qe??""} `), [() => Jf()]), H(Xe, ct) - }, - ht = Xe => { - var ct = Jt(), - Je = zt(ct); - { - var Be = it => { - var Qe = Jt(), - ke = zt(Qe); - { - var vt = te => { - const _e = lt(() => x(ie)); - var ne = DA(), - Pe = k(ne), - Me = k(Pe), - at = V(k(Me)), - We = k(at, !0); - A(at); - var Ct = V(at), - _t = k(Ct), - xt = V(_t, 2), - tt = V(xt), - pt = k(tt); - $f(pt, { - class: "text-base-content/50 mb-0.5 ml-1 inline size-4" - }), A(tt), A(Ct), fi(), A(Me), A(Pe); - var It = V(Pe); - nn(It, 31, () => x(_e), ut => ut.id, (ut, bt, wt) => { - const dt = lt(() => ds(x(bt).countryId)); - var Lt = LA(), - Xt = k(Lt), - Yt = k(Xt, !0); - A(Xt); - var nr = V(Xt), - ar = k(nr), - Ft = k(ar, !0); - A(ar); - var dr = V(ar, 2), - _r = k(dr), - Ir = V(_r), - jr = k(Ir); - A(Ir), A(dr), A(nr); - var ur = V(nr), - Mr = k(ur, !0); - A(ur); - var Ar = V(ur), - kr = k(Ar); - kr.__click = [zA, l, bt]; - var Nr = k(kr, !0); - A(kr), A(Ar), A(Lt), Ge((ce, O, q) => { - fe(Yt, x(wt) + 1), zr(ar, "data-tip", x(dt).name), fe(Ft, x(dt).flag), Or(dr, 1, `font-semibold ${ce??""}`), fe(_r, `${x(bt).name??""} `), fe(jr, ``), fe(Mr, O), fe(Nr, q) - }, [() => Zn(x(bt).cityId), () => x(bt).pixelsPainted.toLocaleString("en-US"), () => c3()]), Zo(Lt, () => $o, () => ({ - duration: 200 - })), H(ut, Lt) - }), A(It), A(ne), Ge((ut, bt, wt, dt) => { - fe(We, ut), fe(_t, `${bt??""} `), fe(xt, `${wt??""} `), zr(tt, "data-tip", dt) - }, [() => QT(), () => Ql(), () => ec().toLowerCase(), () => s3()]), H(te, ne) - }, - Q = te => { - var _e = Jt(), - ne = zt(_e); - { - var Pe = at => { - var We = BA(), - Ct = k(We), - _t = k(Ct), - xt = V(k(_t)), - tt = k(xt, !0); - A(xt); - var pt = V(xt), - It = k(pt), - ut = V(It, 2), - bt = V(ut), - wt = k(bt); - $f(wt, { - class: "text-base-content/50 mb-0.5 ml-1 inline size-4" - }), A(bt), A(pt), A(_t), A(Ct); - var dt = V(Ct); - nn(dt, 31, () => x(ie), Lt => Lt.id, (Lt, Xt, Yt) => { - const nr = lt(() => ds(x(Xt).id)); - var ar = RA(), - Ft = k(ar), - dr = k(Ft, !0); - A(Ft); - var _r = V(Ft), - Ir = k(_r), - jr = k(Ir, !0); - A(Ir); - var ur = V(Ir, 2), - Mr = k(ur, !0); - A(ur), A(_r); - var Ar = V(_r), - kr = k(Ar, !0); - A(Ar), A(ar), Ge((Nr, ce) => { - fe(dr, x(Yt) + 1), zr(Ir, "data-tip", x(nr).name), fe(jr, x(nr).flag), Or(ur, 1, `font-semibold ${Nr??""}`), fe(Mr, x(nr).name), fe(kr, ce) - }, [() => Zn(x(Xt).id), () => x(Xt).pixelsPainted.toLocaleString("en-US")]), Zo(ar, () => $o, () => ({ - duration: 200 - })), H(Lt, ar) - }), A(dt), A(We), Ge((Lt, Xt, Yt, nr) => { - fe(tt, Lt), fe(It, `${Xt??""} `), fe(ut, `${Yt??""} `), zr(bt, "data-tip", nr) - }, [() => Vg(), () => Ql(), () => ec().toLowerCase(), () => N3()]), H(at, We) - }, - Me = at => { - var We = Jt(), - Ct = zt(We); - { - var _t = tt => { - const pt = lt(() => x(ie)); - var It = jA(), - ut = k(It), - bt = k(ut), - wt = V(k(bt)), - dt = k(wt, !0); - A(wt); - var Lt = V(wt), - Xt = k(Lt), - Yt = V(Xt, 2, !0); - A(Lt), A(bt), A(ut); - var nr = V(ut); - nn(nr, 31, () => x(pt), ar => ar.id, (ar, Ft, dr) => { - const _r = lt(() => { - var xe; - return ((xe = Dt.data) == null ? void 0 : xe.id) === x(Ft).id - }); - var Ir = NA(); - let jr; - var ur = k(Ir), - Mr = k(ur, !0); - A(ur); - var Ar = V(ur), - kr = k(Ar), - Nr = k(kr); - es(Nr, { - class: "size-8 border sm:size-10", - get userId() { - return x(Ft).id - }, - get pictureUrl() { - return x(Ft).picture - } - }); - var ce = V(Nr, 2), - O = k(ce), - q = k(O), - G = V(q), - K = k(G); - A(G), A(O); - var le = V(O, 2); - { - var ve = xe => { - const At = lt(() => ds(x(Ft).equippedFlag)); - var Pt = FA(), - kt = k(Pt, !0); - A(Pt), Ge(() => { - zr(Pt, "data-tip", x(At).name), fe(kt, x(At).flag) - }), H(xe, Pt) - }; - Ue(le, xe => { - x(Ft).equippedFlag && xe(ve) - }) - } - var Le = V(le, 2); - { - var Ce = xe => { - ph(xe, { - get username() { - return x(Ft).discord - } - }) - }; - Ue(Le, xe => { - x(Ft).discord && xe(Ce) - }) - } - var Ze = V(Le, 2); - { - var ot = xe => { - var At = OA(), - Pt = k(At, !0); - A(At), Ge((kt, Wt) => { - Or(At, 1, `badge badge-sm ml-0.5 border-0 ${kt??""} ${Wt??""}`), fe(Pt, x(Ft).allianceName) - }, [() => Kf(x(Ft).allianceId), () => Zn(x(Ft).allianceId)]), H(xe, At) - }; - Ue(Ze, xe => { - "allianceName" in x(Ft) && x(Ft).allianceName && xe(ot) - }) - } - A(ce), A(kr), A(Ar); - var Ye = V(Ar), - Ot = k(Ye, !0); - A(Ye), A(Ir), Ge((xe, At, Pt) => { - jr = Or(Ir, 1, "", null, jr, xe), fe(Mr, x(dr) + 1), Or(O, 1, `font-semibold max-sm:ml-2 ${At??""} flex gap-1`), fe(q, `${x(Ft).name??""} `), fe(K, `#${x(Ft).id??""}`), fe(Ot, Pt) - }, [() => ({ - "bg-base-200": x(_r) - }), () => Zn(x(Ft).id), () => x(Ft).pixelsPainted.toLocaleString("en-US")]), Zo(Ir, () => $o, () => ({ - duration: 200 - })), H(ar, Ir) - }), A(nr), A(It), Ge((ar, Ft, dr) => { - fe(dt, ar), fe(Xt, `${Ft??""} `), fe(Yt, dr) - }, [() => tm(), () => Ql(), () => ec().toLowerCase()]), H(tt, It) - }, - xt = tt => { - var pt = Jt(), - It = zt(pt); - { - var ut = bt => { - var wt = VA(), - dt = k(wt), - Lt = k(dt), - Xt = V(k(Lt)), - Yt = k(Xt, !0); - A(Xt); - var nr = V(Xt), - ar = k(nr), - Ft = V(ar, 2, !0); - A(nr), A(Lt), A(dt); - var dr = V(dt); - nn(dr, 31, () => x(ie), _r => _r.id, (_r, Ir, jr) => { - const ur = lt(() => { - var le; - return ((le = Dt.data) == null ? void 0 : le.allianceId) === x(Ir).id - }); - var Mr = qA(); - let Ar; - var kr = k(Mr), - Nr = k(kr, !0); - A(kr); - var ce = V(kr), - O = k(ce), - q = k(O, !0); - A(O), A(ce); - var G = V(ce), - K = k(G, !0); - A(G), A(Mr), Ge((le, ve, Le) => { - Ar = Or(Mr, 1, "", null, Ar, le), fe(Nr, x(jr) + 1), Or(O, 1, `font-semibold ${ve??""}`), fe(q, x(Ir).name), fe(K, Le) - }, [() => ({ - "bg-base-200": x(ur) - }), () => Zn(x(Ir).id), () => x(Ir).pixelsPainted.toLocaleString("en-US")]), Zo(Mr, () => $o, () => ({ - duration: 200 - })), H(_r, Mr) - }), A(dr), A(wt), Ge((_r, Ir, jr) => { - fe(Yt, _r), fe(ar, `${Ir??""} `), fe(Ft, jr) - }, [() => Gd(), () => Ql(), () => ec().toLowerCase()]), H(bt, wt) - }; - Ue(It, bt => { - x(o) === "alliances" && bt(ut) - }, !0) - } - H(tt, pt) - }; - Ue(Ct, tt => { - x(o) === "players" ? tt(_t) : tt(xt, !1) - }, !0) - } - H(at, We) - }; - Ue(ne, at => { - x(o) === "countries" ? at(Pe) : at(Me, !1) - }, !0) - } - H(te, _e) - }; - Ue(ke, te => { - x(o) === "regions" ? te(vt) : te(Q, !1) - }) - } - H(it, Qe) - }, - st = it => { - var Qe = UA(); - H(it, Qe) - }; - Ue(Je, it => { - x(ie) ? it(Be) : it(st, !1) - }, !0) - } - H(Xe, ct) - }; - Ue(Ne, Xe => { - x(ie) && x(ie).length === 0 ? Xe(ft) : Xe(ht, !1) - }) - } - $d("innerWidth", Xe => oe(C, Xe, !0)), H(b, ye), Pr() -} -Wi(["click"]); -var GA = Tr(''); - -function Mv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = GA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var HA = Ie(' '); - -function WA(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const pe = ye => { - ye.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", pe), () => document.removeEventListener("keydown", pe) - }); - var C = HA(), - L = k(C), - F = V(k(L), 2), - T = k(F); - Mv(T, { - class: "size-6" - }); - var o = V(T, 2), - $ = k(o, !0); - A(o), A(F); - var W = V(F, 2), - ie = k(W); - $A(ie, { - get onvisitclick() { - return l.onvisitclick - }, - get open() { - return _() - } - }), A(W), A(L), fi(2), A(C), On(C, () => pe => { - Zr(() => { - _() ? pe.show() : pe.close() - }) - }), Ge(pe => fe($, pe), [() => Yf()]), an("close", C, () => _(!1)), H(b, C), Pr() -} -var XA = Ie("
        "), - KA = Ie(' '); - -function YA(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const o = $ => { - $.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o) - }); - var C = KA(), - L = k(C), - F = V(k(L), 2); - { - var T = o => { - var $ = XA(), - W = k($); - xx(W, {}), A($), En(2, $, () => Qn, () => ({ - duration: 300 - })), H(o, $) - }; - Ue(F, o => { - _() && o(T) - }) - } - A(L), fi(2), A(C), On(C, () => o => { - Zr(() => { - _() ? o.show() : o.close() - }) - }), an("close", C, () => _(!1)), H(b, C), Pr() -} -var JA = (b, l, _) => { - localStorage.setItem(x(l), "true"), oe(_, !1) - }, - QA = Ie('new'), - ek = Ie("
        "); - -function _f(b, l) { - Sr(l, !0); - let _ = nt(!1); - const C = lt(() => "showed:" + l.key); - Ii(() => { - oe(_, !localStorage.getItem(x(C))) - }); - var L = ek(); - L.__click = [JA, C, _]; - var F = k(L); - { - var T = $ => { - var W = QA(); - En(3, W, () => Qn, () => ({ - duration: 200 - })), H($, W) - }; - Ue(F, $ => { - x(_) && $(T) - }) - } - var o = V(F, 2); - Ji(o, () => l.children), A(L), Ge(() => Or(L, 1, `indicator ${l.class??""}`)), H(b, L), Pr() -} -Wi(["click"]); -// -var tk = Ie("

        " + Text1() + "

        "); - -function rk(b, l) { - Sr(l, !1), Og(); - var _ = tk(), - C = V(k(_), 2); - A(_), Ge(L => fe(C, ` `+Text2()+` ${L??""}`), [() => zd(Dt.cooldown ?? 0)]), H(b, _), Pr() -} -var ik = Ie(""); - -function Av(b, l) { - Sr(l, !0); - let _ = Et(l, "width", 15, 0), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "value", "fontSize", "color", "weight", "mono", "width"]), - L = lt(() => Math.ceil(l.fontSize)), - F = nt(null); - const T = window.devicePixelRatio ?? 1, - o = '"Geist", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"', - $ = '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'; - Zr(() => { - const ie = x(F).getContext("2d"); - ie.textBaseline = "top", ie.font = `${l.weight??"normal"} ${l.fontSize}px ${l.mono?$:o}`, ie.fillStyle = l.color ?? "#394e6a", ie.setTransform(T, 0, 0, T, 0, 0), ie.clearRect(0, 0, _(), x(L)), ie.fillText(l.value, 0, 0); - const pe = ie.measureText(l.value); - _(Math.ceil(pe.actualBoundingBoxRight)), oe(L, pe.actualBoundingBoxDescent) - }); - var W = ik(); - er(W, () => ({ - width: _() * T, - height: x(L) * T, - style: `width: ${_()??""}px; height: ${x(L)??""}px`, - ...C - })), ps(W, ie => oe(F, ie), () => x(F)), H(b, W), Pr() -} -var nk = Ie(' '), - ak = Ie(' '), - sk = Ie(''), - ok = Ie(''); - -function kv(b, l) { - Sr(l, !0); - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "loading", "charges"]), - C = nt(0); - var L = ok(); - er(L, () => ({ - ..._, - class: `btn btn-primary btn-lg sm:btn-xl relative ${l.class??""}` - })); - var F = k(L); - fh(F, { - class: "size-6" - }); - var T = V(F, 2), - o = k(T), - $ = V(o); - { - var W = ye => { - const X = lt(() => `${Math.floor(l.charges)}/${Dt.data.charges.max}`); - var Se = ak(), - we = k(Se), - Re = k(we); - { - let Ee = lt(() => l.disabled ? "#394e6a33" : "#ffffff"); - Av(Re, { - weight: 600, - fontSize: 16, - get value() { - return x(X) - }, - get color() { - return x(Ee) - }, - get width() { - return x(C) - }, - set width(Ne) { - oe(C, Ne, !0) - } - }) - } - A(we); - var Ae = V(we, 2); - { - var Oe = Ee => { - var Ne = nk(), - ft = k(Ne); - A(Ne), Ge(ht => fe(ft, `(${ht??""})`), [() => zd(Dt.cooldown)]), H(Ee, Ne) - }; - Ue(Ae, Ee => { - l.charges < Dt.data.charges.max && Dt.cooldown !== void 0 && Ee(Oe) - }) - } - A(Se), Ge(Ee => uc(we, `width: ${Ee??""}px`), [() => (Math.floor(x(C) / 5) + 1) * 5]), H(ye, Se) - }; - Ue($, ye => { - l.charges !== void 0 && Dt.data && ye(W) - }) - } - A(T); - var ie = V(T, 2); - { - var pe = ye => { - var X = sk(); - H(ye, X) - }; - Ue(ie, ye => { - l.loading && ye(pe) - }) - } - A(L), Ge(ye => fe(o, `${ye??""} `), [() => Zg()]), H(b, L), Pr() -} -const lk = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABVQTFRFAAAASkKEenHEta7xWmmLi5y0v8vc+SuCVQAAAAF0Uk5TAEDm2GYAAAA/SURBVHjaXcjBDcAwDMNAUW28/8hF0MCIzN9RV7aVfuxp+IGPe+AdPQRpFaRrgcNrn/Bb4LAE4W5aNb3TXUofoSgBYpzN5I4AAAAASUVORK5CYII=", - ck = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC", - uk = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC", - hk = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAABVJREFUeNpjYGA48x8DYwoB1Q0RlQDDCVmniJ241gAAAABJRU5ErkJggg=="; -class dk { - constructor(l) { - lr(this, "gm"); - lr(this, "opacity", 1); - lr(this, "id", `paint-preview-${Math.random()}`); - lr(this, "tiles", new Map); - this.input = l, this.gm = new hc(this.input.tileSize) - } - place([l, _], C) { - const { - tile: L, - pixel: F - } = this.gm.latLonToTileAndPixel(l, _, this.input.tileZoom), T = this.getTileKey(L[0], L[1]); - let o = this.tiles.get(T); - if (!o) { - const $ = this.gm.tileBoundsLatLon(L[0], L[1], this.input.tileZoom), - W = rm($, !0), - ie = new pk({ - coordinates: W, - id: `${this.id}-${T}`, - layerPaint: { - "raster-opacity": this.opacity, - "raster-resampling": "nearest" - }, - tileSize: this.input.tileSize, - beforeLayerId: this.input.beforeLayerId - }); - ie.addTo(this.input.map), this.tiles.set(T, ie), o = ie - } - o.place(F[0], this.input.tileSize - F[1] - 1, C) - } - clear() { - const l = this.input.map; - for (const _ of this.tiles.values()) _.removeFrom(l), _.removeDOM(); - this.tiles.clear() - } - clearAndPlace(l, _) { - this.clear(), this.place(l, _) - } - remove([l, _]) { - const { - tile: C, - pixel: L - } = this.gm.latLonToTileAndPixel(l, _, this.input.tileZoom), F = this.getTileKey(C[0], C[1]), T = this.tiles.get(F); - T && T.remove(L[0], this.input.tileSize - L[1] - 1) - } - setCanvasOpacity(l) { - this.opacity = l; - for (const _ of this.tiles.values()) _.setOpacity(l) - } - getTileKey(l, _) { - return `${l},${_}` - } -} -class pk { - constructor(l) { - lr(this, "canvas"); - lr(this, "maps", new Set); - this.input = l; - const _ = this.input.tileSize; - this.canvas = document.createElement("canvas"), this.canvas.width = _, this.canvas.height = _ - } - place(l, _, C) { - var T; - const L = ((T = $n.colors) == null ? void 0 : T[C]) ?? $n.colors[0], - F = this.canvas.getContext("2d"); - if (F) { - const o = F.createImageData(1, 1), - [$, W, ie] = L.rgb, - pe = C === 0 ? 0 : 255; - o.data[0] = $, o.data[1] = W, o.data[2] = ie, o.data[3] = pe, F.putImageData(o, l, _) - } - } - remove(l, _) { - const C = this.canvas.getContext("2d"); - C && C.clearRect(l, _, 1, 1) - } - addTo(l) { - const _ = this.input.id; - l.getSource(_) || l.addSource(_, { - type: "canvas", - canvas: this.canvas, - coordinates: this.input.coordinates - }), l.getLayer(_) || (l.addLayer({ - id: _, - type: "raster", - source: _, - paint: this.input.layerPaint - }), this.input.beforeLayerId && l.moveLayer(_, this.input.beforeLayerId)), this.maps.add(l) - } - removeFrom(l) { - const { - id: _ - } = this.input; - l.getLayer(_) && l.removeLayer(_), l.getSource(_) && l.removeSource(_), this.maps.delete(l) - } - removeDOM() { - this.canvas.remove() - } - setOpacity(l) { - for (const _ of this.maps.values()) _.setPaintProperty(this.input.id, "raster-opacity", l) - } -} -var fk = Tr(''); - -function mk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = fk(); - er(C, () => ({ - viewBox: "0 0 24 24", - fill: "currentColor", - xmlns: "http://www.w3.org/2000/svg", - ..._ - })), H(b, C) -} -var _k = Tr(''); - -function gk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = _k(); - er(C, () => ({ - viewBox: "0 0 24 24", - fill: "currentColor", - xmlns: "http://www.w3.org/2000/svg", - ..._ - })), H(b, C) -} -var vk = Ie("
        "); - -function Kl(b, l) { - Sr(l, !0); - var _ = vk(), - C = k(_); - Ji(C, () => l.children ?? fa), A(_), Ge(() => Or(_, 1, `bg-base-100/60 border-base-content/20 -top-15 pointer-events-none absolute left-1/2 line-clamp-1 flex w-max -translate-x-1/2 select-none items-center gap-1 rounded-full border-2 px-3 py-1.5 ${l.class??""}`)), H(b, _), Pr() -} -var yk = Ie('
        '), - xk = Ie("
        "); - -function hm(b, l) { - Sr(l, !0); - const _ = Et(l, "size", 3, 10), - C = Et(l, "x", 19, () => [-.5, .5]), - L = Et(l, "y", 19, () => [.25, 1]), - F = Et(l, "duration", 3, 2e3), - T = Et(l, "infinite", 3, !1), - o = Et(l, "delay", 19, () => [0, 50]), - $ = Et(l, "colorRange", 19, () => [0, 360]), - W = Et(l, "colorArray", 19, () => []), - ie = Et(l, "amount", 3, 50), - pe = Et(l, "iterationCount", 3, 1), - ye = Et(l, "fallDistance", 3, "100px"), - X = Et(l, "rounded", 3, !1), - Se = Et(l, "cone", 3, !1), - we = Et(l, "noGravity", 3, !1), - Re = Et(l, "xSpread", 3, .15), - Ae = Et(l, "destroyOnComplete", 3, !0), - Oe = Et(l, "disableForReducedMotion", 3, !1); - let Ee = nt(!1); - Ii(() => { - !Ae() || T() || typeof pe() == "string" || setTimeout(() => oe(Ee, !0), (F() + o()[1]) * pe()) - }); - - function Ne(Je, Be) { - return Math.random() * (Be - Je) + Je - } - - function ft() { - return W().length ? W()[Math.round(Math.random() * (W().length - 1))] : `hsl(${Math.round(Ne($()[0],$()[1]))}, 75%, 50%)` - } - var ht = Jt(), - Xe = zt(ht); - { - var ct = Je => { - var Be = xk(); - let st; - nn(Be, 21, () => ({ - length: ie() - }), Zd, (it, Qe) => { - var ke = yk(); - Ge((vt, Q, te, _e, ne, Pe, Me, at, We, Ct, _t) => uc(ke, ` - --color: ${vt??""}; - --skew: ${Q??""}deg,${te??""}deg; - --rotation-xyz: ${_e??""}, ${ne??""}, ${Pe??""}; - --rotation-deg: ${Me??""}deg; - --translate-y-multiplier: ${at??""}; - --translate-x-multiplier: ${We??""}; - --scale: ${Ct??""}; - --transition-delay: ${_t??""}ms; - --transition-duration: ${T()?`calc(${F()}ms * var(--scale))`:`${F()}ms`};`), [ft, () => Ne(-45, 45), () => Ne(-45, 45), () => Ne(-10, 10), () => Ne(-10, 10), () => Ne(-10, 10), () => Ne(0, 360), () => Ne(L()[0], L()[1]), () => Ne(C()[0], C()[1]), () => .1 * Ne(2, 10), () => Ne(o()[0], o()[1])]), H(it, ke) - }), A(Be), Ge(it => { - st = Or(Be, 1, "confetti-holder svelte-15ksp55", null, st, it), uc(Be, ` - --fall-distance: ${ye()??""}; - --size: ${_()??""}px; - --x-spread: ${1-Re()}; - --transition-iteration-count: ${(T()?"infinite":pe())??""};`) - }, [() => ({ - rounded: X(), - cone: Se(), - "no-gravity": we(), - "reduced-motion": Oe() - })]), H(Je, Be) - }; - Ue(Xe, Je => { - x(Ee) || Je(ct) - }) - } - H(b, ht), Pr() -} -var bk = async (b, l, _, C) => { - try { - oe(l, !0), await ni.purchase({ - id: _, - amount: 1, - variant: C.colorIdx - }), await Dt.refresh(), pa.notification1.play() - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } -}, wk = Ie(''), Tk = Ie(' '+Text3()+'', 1), Ck = Ie(' Unlocked ', 1), Sk = (b, l) => l(!1), Pk = Ie('

        '+Text5()+'

        '+Text6()+'

        '), Ik = Ie(' '); - -function Mk(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - const C = lt(() => $n.colors[l.colorIdx]), - L = lt(() => { - var X; - return ((X = Dt.data) == null ? void 0 : X.droplets) ?? 0 - }); - let F = nt(!1); - const T = lt(() => (x(F), Dt.hasColor(l.colorIdx))); - Ii(() => { - const X = Se => { - Se.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", X), () => document.removeEventListener("keydown", X) - }); - const o = 100, - $ = $n.products[o]; - var W = Ik(), - ie = k(W), - pe = V(k(ie), 2); - { - var ye = X => { - var Se = Pk(), - we = k(Se), - Re = k(we), - Ae = k(Re); - Ld(Ae, { - class: "size-6" - }); - var Oe = V(Ae, 4), - Ee = k(Oe); - Rg(Ee, { - get value() { - return x(L) - } - }), A(Oe), A(Re), fi(2), A(we); - var Ne = V(we, 2), - ft = k(Ne), - ht = k(ft); - A(ft); - var Xe = V(ft, 2), - ct = k(Xe, !0); - A(Xe); - var Je = V(Xe, 2), - Be = k(Je); - let st; - var it = k(Be); - it.__click = [bk, F, o, l]; - var Qe = k(it); - { - var ke = ne => { - var Pe = wk(); - H(ne, Pe) - }; - Ue(Qe, ne => { - x(F) && ne(ke) - }) - } - var vt = V(Qe, 2); - { - var Q = ne => { - var Pe = Tk(), - Me = zt(Pe); - Ud(Me, { - class: "size-5" - }); - var at = V(Me); - fi(), Ge(We => fe(at, ` ${We??""} `), [() => $.price.toLocaleString("en-US")]), H(ne, Pe) - }, - te = ne => { - var Pe = Ck(), - Me = zt(Pe); - Ld(Me, { - class: "size-5" - }); - var at = V(Me, 2), - We = k(at); - hm(We, {}), A(at), H(ne, Pe) - }; - Ue(vt, ne => { - x(T) ? ne(te, !1) : ne(Q) - }) - } - A(it), A(Be); - var _e = V(Be, 2); - _e.__click = [Sk, _], A(Je), A(Ne), A(Se), Ge((ne, Pe) => { - uc(ht, `background: rgb(${x(C).rgb[0]} ${x(C).rgb[1]} ${x(C).rgb[2]})`), zr(ht, "aria-label", x(C).name), fe(ct, x(C).name), zr(Be, "data-tip", ne), st = Or(Be, 1, "", null, st, Pe), it.disabled = x(L) < $.price || x(F) || x(T) - }, [() => Hd(), () => ({ - tooltip: !x(T) && x(L) < $.price - })]), H(X, Se) - }; - Ue(pe, X => { - Dt.data && X(ye) - }) - } - A(ie), fi(2), A(W), On(W, () => X => { - Zr(() => { - _() ? X.show() : X.close() - }) - }), an("close", W, () => _(!1)), H(b, W), Pr() -} -Wi(["click"]); -var Ak = Tr(''); - -function Tg(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ak(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var kk = Tr(''); - -function Cg(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = kk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Ek = Tr(''); - -function Ev(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ek(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var zk = Tr(''), - Lk = Tr(''); - -function zv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = zk(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = Lk(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var Dk = Tr(''); - -function Gf(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Dk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Rk = Tr(''); - -function Lv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Rk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Bk = Tr(''); - -function Fk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Bk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Ok = Tr(''); - -function Nk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ok(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var jk = Ie(" ", 1), - qk = Ie(" ", 1), - Vk = Ie(" ", 1), - Uk = Ie(' ', 1), - Zk = Ie(" ", 1), - $k = Ie(" ", 1), - Gk = (b, l) => oe(l, !x(l)), - Hk = (b, l) => { - oe(l, "colorpicker") - }, - Wk = (b, l) => { - l(!l()) - }, - Xk = (b, l) => { - oe(l, "cleararea") - }, - Kk = Ie('
        C
        '), - Yk = (b, l) => { - pa.smallPlop.play(), l() - }, - Jk = (b, l, _) => { - l(x(_).idx) - }, - Qk = Ie(' ', 1), - eE = Ie("
        "), - tE = (b, l) => { - oe(l, !x(l)) - }, - rE = (b, l) => { - oe(l, x(l) === "eraser" ? "pencil" : "eraser", !0) - }, - iE = Ie('

        I
        E
        ', 1); - -function nE(b, l) { - Sr(l, !0); - let _ = Et(l, "screenLocked", 15), - C = Et(l, "opaquePixelArt", 15); - const L = lt(() => new hc(l.tileSize)); - let F = nt(1), - T = nt("pencil"); - const o = new Map, - $ = new Map; - let W = nt(0), - ie = nt(!1), - pe = nt(!0), - ye = lt(() => Dt.charges ?? 0), - X = lt(() => x(ye) - x(W)), - Se = nt(!1), - we = !1, - Re = nt(!1), - Ae = nt(zn([])); - const Oe = lt(() => x(T) === "pencil"), - Ee = lt(() => x(T) === "eraser"), - Ne = lt(() => x(T) === "colorpicker"), - ft = lt(() => x(T) === "cleararea"), - ht = lt(() => { - var Mt, Ke; - return Cu((Ke = (Mt = Dt) == null ? void 0 : Mt.data) == null ? void 0 : Ke.role, ["admin", "global_moderator"]) - }); - let Xe = nt(!1), - ct = nt(0), - Je = nt(void 0), - Be = nt(void 0); - const st = [1, 2, 3, 32, 4, 5, 6, 33, 7, 34, 35, 8, 9, 10, 11, 37, 38, 39, 40, 41, 42, 12, 13, 14, 15, 16, 17, 43, 20, 44, 18, 19, 45, 46, 21, 22, 47, 48, 49, 23, 24, 25, 26, 27, 28, 53, 54, 55, 29, 30, 50, 56, 57, 36, 51, 31, 52, 61, 62, 63, 58, 59, 60, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 ,78, 79 ,80 ,81, 82, 83, 84, 85, 86 ,87 ,88 ,89 ,90 ,91 ,92 ,93 ,94, 95, 0].map(Mt => ({ - ...$n.colors[Mt], - idx: Mt - })), - it = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0].map(Mt => ({ - ...$n.colors[Mt], - idx: Mt - })); - let Qe = nt(!1); - const ke = lt(() => x(Qe) ? st : it), - vt = "show-all-colors"; - Ii(() => { - oe(Qe, localStorage.getItem(vt) === "true") - }), Zr(() => { - localStorage.setItem(vt, x(Qe) ? "true" : "false") - }); - const Q = "selected-color"; - Ii(() => { - const Mt = Number(localStorage.getItem(Q)); - !isNaN(Mt) && Mt < $n.colors.length && Mt > 0 && oe(F, Mt, !0) - }), Zr(() => { - localStorage.setItem(Q, x(F).toString()) - }); - const te = new dk({ - map: l.map, - tileSize: l.tileSize, - tileZoom: l.tileZoom, - beforeLayerId: l.hoverLayerId - }); - Zr(() => { - const Mt = C() ? 1 : 0; - te.setCanvasOpacity(Mt) - }), Zr(() => { - C() ? yf() : Ct([...o.values()]) - }); - let _e = !1; - Ii(() => { - Qa(l.map.getCenter(), l.map.getZoom()); - const Mt = l.map.on("click", rr => { - var Qr; - l.zoom < l.tileZoom + 2 && ((Qr = Dt.data) == null ? void 0 : Qr.role) === "user" && l.map.easeTo({ - center: rr.lngLat, - zoom: 17 - }); - const yi = [rr.lngLat.lat, rr.lngLat.lng]; - if (x(Oe)) Pe([yi], x(F)); - else if (x(Ee)) Me([yi]); - else if (x(Ne)) at(yi, rr.point); - else if (x(ft) && (x(Ae).push(yi), Pe([yi], 0), x(Ae).length >= 2)) { - const [Yr, la] = x(Ae), [sn, ta] = x(L).latLonToPixelsFloor(Yr[0], Yr[1], l.tileZoom), [Fi, Xi] = x(L).latLonToPixelsFloor(la[0], la[1], l.tileZoom), Gn = Math.min(sn, Fi), Hn = Math.max(sn, Fi), Ln = Math.min(ta, Xi), gt = Math.max(ta, Xi), qt = []; - for (let vr = Ln; vr <= gt; vr++) { - const _i = x(L).pixelsToLatLon(Gn + .5, vr + .5, l.tileZoom), - Di = x(L).pixelsToLatLon(Hn + .5, vr + .5, l.tileZoom), - $i = Ke({ - lat: _i[0], - lng: _i[1] - }, { - lat: Di[0], - lng: Di[1] - }).slice(0, x(X) - qt.length); - if (qt.push(...$i), qt.length >= x(X)) break - } - Pe(qt, 0), oe(Ae, [], !0), oe(T, "pencil") - } - oe(Se, !0) - }); - - function Ke(rr, yi) { - const Qr = x(L).latLonToPixels(rr.lat, rr.lng, l.tileZoom), - Yr = yi ? x(L).latLonToPixels(yi.lat, yi.lng, l.tileZoom) : Qr; - return ux(Qr, Yr).map(sn => x(L).pixelsToLatLon(sn[0] + .5, sn[1] + .5, l.tileZoom)) - } - - function jt(rr, yi) { - const Qr = Ke(rr, yi); - x(Oe) ? Pe(Qr, x(F)) : x(Ee) && Me(Qr), oe(Se, !0) - } - let Gt; - - function Dr(rr) { - const yi = l.map.unproject([rr.clientX, rr.clientY]); - if (x(Re)) { - const Qr = Ke(yi, Gt); - Me(Qr) - }(_e || we) && jt(yi, Gt), Gt = yi - } - window.addEventListener("mousemove", Dr); - let Gr = !1; - const li = l.map.on("touchstart", rr => { - if (rr.points.length == 2) { - _(!1), pt(), Gr = !0, setTimeout(() => Gr = !1, 150); - return - } - _() && setTimeout(() => { - !Gr && jt(rr.lngLat) - }, 150), Gt = rr.lngLat - }), - fr = l.map.on("touchmove", rr => { - _() && jt(rr.lngLat, Gt), Gt = rr.lngLat - }), - bi = rr => { - rr.code === "Space" && (_e || Gt && jt(Gt), _e = !0, rr.preventDefault()) - }; - document.addEventListener("keydown", bi); - const Si = rr => { - rr.code === "Space" && (_e = !1, ne = !1, x(W) === 0 && x(Ee) && oe(T, "pencil")) - }; - document.addEventListener("keyup", Si); - - function zi(rr) { - if (rr.button === 2) { - oe(Re, !0); - const Qr = l.map.unproject([rr.clientX, rr.clientY]); - Me([ - [Qr.lat, Qr.lng] - ]) - } - } - document.addEventListener("mousedown", zi); - - function mi(rr) { - rr.button === 2 && oe(Re, !1) - } - document.addEventListener("mouseup", mi); - const Li = rr => { - switch (rr.code) { - case "KeyE": - x(W) > 0 && (x(Ee) ? oe(T, "pencil") : oe(T, "eraser")); - return; - case "KeyI": - oe(T, "colorpicker"); - return; - case "KeyC": - x(ht) && oe(T, "cleararea"); - return - } - }; - return document.addEventListener("keypress", Li), () => { - fr.unsubscribe(), li.unsubscribe(), Mt.unsubscribe(), document.removeEventListener("mousemove", Dr), document.removeEventListener("keydown", bi), document.removeEventListener("keyup", Si), document.removeEventListener("keypress", Li), document.removeEventListener("mousedown", zi), document.removeEventListener("mouseup", mi), _t() - } - }); - let ne = !1; - - function Pe(Mt, Ke) { - let jt = !1; - const Gt = Ke === 0; - for (let Dr of Mt) { - const [Gr, li] = Dr, fr = vx(Ke), { - tile: bi, - pixel: Si - } = x(L).latLonToTileAndPixel(Gr, li, l.tileZoom), zi = { - color: fr, - tile: bi, - pixel: Si, - season: l.season, - colorIdx: Ke - }, mi = cf(zi), Li = o.get(mi), rr = x(ye) - o.size; - if (!Li && rr < 1) { - if (ne && (_e || _())) continue; - ne = !0, qr.info($3()); - continue - } - Li && Li.colorIdx === Ke || (pa.plop.play(), jt || l.hidePixelHover(), o.set(mi, zi), te.place(Dr, Ke), l.crosshair.place(Dr), jt = !0, Gt && $.set(mi, zi)) - } - oe(W, o.size, !0), jt && !C() ? Ct([...o.values()]) : jt && C() && Gt && Ct([...$.values()]) - } - - function Me(Mt) { - let Ke = !1, - jt = !1; - for (let Gt of Mt) { - const [Dr, Gr] = Gt, { - tile: li, - pixel: fr - } = x(L).latLonToTileAndPixel(Dr, Gr, l.tileZoom), bi = cf({ - tile: li, - pixel: fr, - season: l.season - }), Si = o.get(bi); - Si && (pa.plop.play(), l.hidePixelHover(), o.delete(bi), $.delete(bi), te.remove([Dr, Gr]), l.crosshair.remove(Gt), Ke = !0, Si.colorIdx === 0 && (jt = !0)), o.size === 0 && !(_e || we || _()) && oe(T, "pencil") - } - oe(W, o.size, !0), Ke && !C() ? Ct([...o.values()]) : Ke && C() && jt && Ct([...$.values()]) - } - - function at(Mt, Ke) { - const { - tile: jt, - pixel: Gt - } = x(L).latLonToTileAndPixel(Mt[0], Mt[1], l.tileZoom), Dr = cf({ - tile: jt, - pixel: Gt, - season: l.season - }), Gr = o.get(Dr); - if (Gr) { - It(Gr.colorIdx), requestAnimationFrame(() => { - var Si; - (Si = document.getElementById(`color-${Gr.colorIdx}`)) == null || Si.focus() - }); - return - } - const li = window.devicePixelRatio, - fr = Math.floor(Ke.x * li), - bi = Math.floor(Ke.y * li); - l.hidePixelHover(), wM(l.map, fr, bi).then(([Si, zi, mi]) => { - const Li = yx({ - r: Si, - g: zi, - b: mi - }); - It(Li), requestAnimationFrame(() => { - var rr; - (rr = document.getElementById(`color-${Li}`)) == null || rr.focus() - }) - }) - } - dc(() => x(F), () => { - l.clickedLatLon && !x(Se) && (x(F) === void 0 && oe(F, 1), Pe([l.clickedLatLon], x(F))) - }), Zr(() => { - const Mt = x(pe) ? .8 : 0; - l.crosshair.setCanvasOpacity(Mt) - }); - let We = nt(16.5); - Zr(() => { - if (x(Je) && x(Be) && l.clickedLatLon) { - const Mt = l.map.getZoom(); - if (Mt < x(We)) { - const [Ke, jt] = l.clickedLatLon, Gt = x(L).latLonToPixelBoundsLatLon(Ke, jt, l.tileZoom), Dr = im(Gt), Gr = x(Je) - x(Be).clientHeight, li = x(Je) / 2 - Gr / 2; - l.map.flyTo({ - center: { - lat: Dr[0], - lng: Dr[1] - }, - zoom: 17.5, - offset: Mt > 11 ? [0, -li] : [0, 0] - }) - } - oe(We, l.tileZoom, !0) - } - }), Ii(() => { - const Mt = () => { - !document.hidden && (console.log("Tab visible again"), C() ? Ct([...$.values()]) : Ct([...o.values()])) - }; - return document.addEventListener("visibilitychange", Mt), () => document.removeEventListener("visibilitychange", Mt) - }), Zr(() => { - switch (x(T)) { - case "pencil": - l.map.getCanvas().style.cursor = `url('${uk}') 8 8, default`, l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", .4); - return; - case "colorpicker": - l.map.getCanvas().style.cursor = `url('${lk}') 0 16, default`, l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", 0); - return; - case "eraser": - l.map.getCanvas().style.cursor = `url('${ck}') 2 14, default`, l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", .4); - return - } - }), Zr(() => { - _() ? tt() : pt() - }); - async function Ct(Mt) { - await sx(Mt), l.refreshPixelArt() - } - async function _t() { - await yf(), te.clear(), l.refreshPixelArt(), l.crosshair.clear() - } - async function xt() { - await _t(), pt(), l.map.getCanvas().style.cursor = "default", l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", .4), l.onclose() - } - - function tt() { - l.map.dragPan.disable(), l.map.touchZoomRotate.disable(), document.body.style.overscrollBehavior = "none" - } - - function pt() { - l.map.dragPan.enable(), l.map.touchZoomRotate.enable(), document.body.style.overscrollBehavior = "" - } - - function It(Mt) { - return Mt >= 32 && oe(Qe, !0), Dt.hasColor(Mt) ? (pa.smallDropplet.play(), oe(F, Mt, !0), oe(T, "pencil"), !0) : (pa.smallDropplet.play(), oe(Xe, !0), oe(ct, Mt, !0), !1) - } - lx(Mt => { - Mt.type === "leave" && x(W) > 0 && Mt.cancel() - }); - const ut = "show-paint-more-than-one-pixel-msg"; - let bt = nt(!1); - Ii(() => { - var Mt; - oe(bt, !localStorage.getItem(ut) && (((Mt = Dt.data) == null ? void 0 : Mt.pixelsPainted) ?? 0) < 100, !0) - }), Zr(() => { - x(W) > 1 && (oe(bt, !1), localStorage.setItem(ut, "false")) - }); - const wt = "lp"; - Ii(() => { - var Ke; - const Mt = localStorage.getItem(wt); - if (Mt) try { - const jt = JSON.parse(atob(Mt)), - Gt = (jt == null ? void 0 : jt.time) ?? 0, - Dr = 60 * 1e3; - (jt == null ? void 0 : jt.userId) !== ((Ke = Dt.data) == null ? void 0 : Ke.id) && Date.now() - Gt < 30 * Dr && !hx && (qr.error(W3()), xt()) - } catch (jt) { - console.error(jt) - } - }); - - function dt() { - var Ke; - const Mt = btoa(JSON.stringify({ - userId: (Ke = Dt.data) == null ? void 0 : Ke.id, - time: Date.now() - })); - localStorage.setItem(wt, Mt) - } - var Lt = iE(), - Xt = zt(Lt), - Yt = k(Xt); - { - var nr = Mt => { - Kl(Mt, { - children: (Ke, jt) => { - var Gt = jk(), - Dr = zt(Gt); - Ev(Dr, { - class: "inline size-5" - }); - var Gr = V(Dr); - Ge(li => fe(Gr, ` ${li??""}`), [() => uw()]), H(Ke, Gt) - }, - $$slots: { - default: !0 - } - }) - }, - ar = Mt => { - var Ke = Jt(), - jt = zt(Ke); - { - var Gt = Gr => { - Kl(Gr, { - class: "not-touchscreen:hidden", - children: (li, fr) => { - var bi = qk(), - Si = zt(bi); - lg(Si, { - class: "inline size-5" - }); - var zi = V(Si); - Ge(mi => fe(zi, ` ${mi??""}`), [() => pw()]), H(li, bi) - }, - $$slots: { - default: !0 - } - }) - }, - Dr = Gr => { - var li = Jt(), - fr = zt(li); - { - var bi = zi => { - Kl(zi, { - class: "not-touchscreen:hidden", - children: (mi, Li) => { - var rr = Vk(), - yi = zt(rr); - Cg(yi, { - class: "inline size-5" - }); - var Qr = V(yi, 1, !0); - Ge(Yr => fe(Qr, Yr), [() => _w()]), H(mi, rr) - }, - $$slots: { - default: !0 - } - }) - }, - Si = zi => { - var mi = Jt(), - Li = zt(mi); - { - var rr = Qr => { - Kl(Qr, { - class: "touchscreen:hidden", - children: (Yr, la) => { - var sn = Uk(), - ta = zt(sn); - Lv(ta, { - class: "inline size-5" - }); - var Fi = V(ta), - Xi = k(Fi, !0); - A(Fi); - var Gn = V(Fi, 2), - Hn = k(Gn), - Ln = V(Hn), - gt = k(Ln, !0); - A(Ln), A(Gn); - var qt = V(Gn); - Ge((vr, _i, Di, $i) => { - fe(Xi, vr), fe(Hn, `${_i??""} `), fe(gt, Di), fe(qt, ` ${$i??""}`) - }, [() => yw(), () => Sw(), () => ww(), () => Mw()]), H(Yr, sn) - }, - $$slots: { - default: !0 - } - }) - }, - yi = Qr => { - var Yr = Jt(), - la = zt(Yr); - { - var sn = Fi => { - Kl(Fi, { - class: "bg-warning text-warning-content animate-bounce", - children: (Xi, Gn) => { - var Hn = Zk(), - Ln = zt(Hn); - fh(Ln, { - class: "inline size-5" - }); - var gt = V(Ln); - Ge(qt => fe(gt, ` ${qt??""}`), [() => Ew()]), H(Xi, Hn) - }, - $$slots: { - default: !0 - } - }) - }, - ta = Fi => { - var Xi = Jt(), - Gn = zt(Xi); - { - var Hn = Ln => { - Kl(Ln, { - class: "bg-warning text-warning-content animate-bounce", - children: (gt, qt) => { - var vr = $k(), - _i = zt(vr); - Tg(_i, { - class: "inline size-5" - }); - var Di = V(_i, 2); - { - var $i = Cr => { - var gn = Fn(); - Ge(tr => fe(gn, tr), [() => uP()]), H(Cr, gn) - }, - Mi = Cr => { - var gn = Jt(), - tr = zt(gn); - { - var Ht = ei => { - var ri = Fn(); - Ge(gi => fe(ri, gi), [() => pP()]), H(ei, ri) - }; - Ue(tr, ei => { - x(Ae).length === 1 && ei(Ht) - }, !0) - } - H(Cr, gn) - }; - Ue(Di, Cr => { - x(Ae).length === 0 ? Cr($i) : Cr(Mi, !1) - }) - } - H(gt, vr) - }, - $$slots: { - default: !0 - } - }) - }; - Ue(Gn, Ln => { - x(ft) && Ln(Hn) - }, !0) - } - H(Fi, Xi) - }; - Ue(la, Fi => { - x(bt) ? Fi(sn) : Fi(ta, !1) - }, !0) - } - H(Qr, Yr) - }; - Ue(Li, Qr => { - x(Oe) && x(W) === 0 ? Qr(rr) : Qr(yi, !1) - }, !0) - } - H(zi, mi) - }; - Ue(fr, zi => { - x(Ne) ? zi(bi) : zi(Si, !1) - }, !0) - } - H(Gr, li) - }; - Ue(jt, Gr => { - x(Ee) ? Gr(Gt) : Gr(Dr, !1) - }, !0) - } - H(Mt, Ke) - }; - Ue(Yt, Mt => { - x(Ee) && x(W) === 0 ? Mt(nr) : Mt(ar, !1) - }) - } - var Ft = V(Yt, 2), - dr = k(Ft); - dr.__click = [Gk, pe]; - var _r = k(dr); - { - var Ir = Mt => { - mk(Mt, { - class: "size-4" - }) - }, - jr = Mt => { - gk(Mt, { - class: "size-4" - }) - }; - Ue(_r, Mt => { - x(pe) ? Mt(Ir) : Mt(jr, !1) - }) - } - A(dr); - var ur = V(dr, 2), - Mr = k(ur), - Ar = k(Mr), - kr = V(Ar); - Av(kr, { - class: "inline", - fontSize: 14, - get value() { - return `(${x(W)??""})` - }, - mono: !0 - }), A(Mr); - var Nr = V(Mr, 2), - ce = k(Nr), - O = k(ce); - fi(), A(ce); - var q = V(ce, 2); - q.__click = [Hk, T]; - var G = k(q); - Cg(G, { - class: "size-4.5" - }), A(q), A(Nr); - var K = V(Nr, 2), - le = k(K); - let ve; - le.__click = [Wk, C]; - var Le = k(le); - { - let Mt = lt(() => !C()); - zv(Le, { - class: "size-4.5", - get filled() { - return x(Mt) - } - }) - } - A(le), A(K); - var Ce = V(K, 2); - { - var Ze = Mt => { - var Ke = Kk(), - jt = k(Ke), - Gt = k(jt); - fi(), A(jt); - var Dr = V(jt, 2); - Dr.__click = [Xk, T]; - var Gr = k(Dr); - Tg(Gr, { - class: "size-4.5" - }), A(Dr), A(Ke), Ge(li => { - fe(Gt, `${li??""} `), Or(Dr, 1, Vo({ - "btn btn-circle btn-sm": !0, - "btn-ghost": !x(ft), - "btn-primary": x(ft) - })) - }, [() => oP()]), H(Mt, Ke) - }; - Ue(Ce, Mt => { - x(ht) && Mt(Ze) - }) - } - A(ur); - var ot = V(ur, 2); - ot.__click = [Yk, xt]; - var Ye = k(ot); - fc(Ye, { - class: "size-4" - }), A(ot), A(Ft); - var Ot = V(Ft, 2), - xe = k(Ot); - nn(xe, 23, () => x(ke), Mt => Mt.idx, (Mt, Ke, jt) => { - const Gt = lt(() => { - const [mi, Li, rr] = x(Ke).rgb; - return { - r: mi, - g: Li, - b: rr - } - }), - Dr = lt(() => x(F) === x(Ke).idx && x(Oe)), - Gr = lt(() => x(Ke).idx === 0), - li = lt(() => Dt.hasColor(x(Ke).idx)); - var fr = eE(), - bi = k(fr); - bi.__click = [Jk, It, Ke]; - var Si = k(bi); - { - var zi = mi => { - var Li = Qk(), - rr = zt(Li); - Gf(rr, { - class: "center-absolute absolute size-4 opacity-30 sm:hidden sm:size-6" - }); - var yi = V(rr, 2), - Qr = k(yi); - Gf(Qr, { - class: "text-base-content/80 size-4" - }), A(yi), H(mi, Li) - }; - Ue(Si, mi => { - x(li) || mi(zi) - }) - } - A(bi), A(fr), Ge(() => { - Or(fr, 1, Vo({ - tooltip: !0, - "max-sm:h-6": x(Qe), - "max-sm:before:translate-x-1/4": x(jt) % 8 === 0 && x(Ke).name.length > 7, - "max-sm:before:-translate-x-1/4": (x(jt) - 7) % 8 === 0 && x(Ke).name.length > 7, - "max-xl:before:translate-x-1/4": x(jt) % 16 === 0 && x(Ke).name.length > 7, - "max-xl:before:-translate-x-1/4": (x(jt) - 15) % 16 === 0 && x(Ke).name.length > 7, - "xl:before:translate-x-1/4": x(Qe) && x(jt) % 32 === 0 && x(Ke).name.length > 7, - "xl:before:-translate-x-1/4": x(Qe) && (x(jt) - 31) % 32 === 0 && x(Ke).name.length > 7 - })), zr(fr, "data-tip", x(Ke).name), Or(bi, 1, Vo({ - "btn relative aspect-square w-full rounded-xl": !0, - "border-primary ring-primary ring-2": x(Dr), - "border-base-300": !x(Dr) && x(Gr), - "border-base-content/20": !x(Dr) && !x(Gr), - "max-sm:h-6 max-sm:rounded-md": x(Qe) - })), uc(bi, x(Gr) ? `background-image: url(${hk}); background-size: cover; image-rendering: pixelated;` : `background: rgb(${x(Gt).r} ${x(Gt).g} ${x(Gt).b})`), zr(bi, "aria-label", x(Ke).name), zr(bi, "id", `color-${x(Ke).idx??""}`) - }), an("focus", bi, () => { - x(li) && (oe(F, x(Ke).idx, !0), oe(T, "pencil")) - }), H(Mt, fr) - }), A(xe), A(Ot); - var At = V(Ot, 2), - Pt = k(At); - Pt.__click = [tE, Qe]; - var kt = k(Pt); - { - var Wt = Mt => { - Fk(Mt, { - class: "size-5" - }) - }, - Lr = Mt => { - Nk(Mt, { - class: "size-5" - }) - }; - Ue(kt, Mt => { - x(Qe) ? Mt(Wt) : Mt(Lr, !1) - }) - } - A(Pt); - var Kr = V(Pt, 2), - Hr = k(Kr); - { - let Mt = lt(() => x(W) > 100 ? "animate-pulse" : ""), - Ke = lt(() => x(W) === 0 || x(ie) || x(X) < 0 || !oa.captcha), - jt = lt(() => x(ie) || !oa.captcha); - kv(Hr, { - get class() { - return x(Mt) - }, - get charges() { - return x(X) - }, - get disabled() { - return x(Ke) - }, - get loading() { - return x(jt) - }, - onclick: async () => { - var Gr; - const Gt = (Gr = oa.captcha) == null ? void 0 : Gr.token; - if (!Gt) return; - pa.droppletAndPlop.play(); - const Dr = [...o.values()]; - oe(ie, !0); - try { - await ni.paint(Dr, Gt), await ox(Dr), dt(), Dt.refresh(), Id.shouldReload = !0, await xt() - } catch (li) { - qr.error(`${li.message}`, { - duration: 7e3 - }) - } finally { - oe(ie, !1) - } - } - }) - } - A(Kr); - var $r = V(Kr, 2), - mr = k($r), - gr = k(mr), - ai = k(gr); - fi(), A(gr); - var Tt = V(gr, 2); - let Ci; - Tt.__click = [rE, T]; - var di = k(Tt); - lg(di, { - class: "size-5", - get filled() { - return x(Ee) - } - }), A(Tt), A(mr), A($r), A(At), A(Xt), ps(Xt, Mt => oe(Be, Mt), () => x(Be)); - var Pn = V(Xt, 2); - Mk(Pn, { - get colorIdx() { - return x(ct) - }, - get open() { - return x(Xe) - }, - set open(Mt) { - oe(Xe, Mt, !0) - } - }), Ge((Mt, Ke, jt, Gt, Dr, Gr) => { - fe(Ar, `${Mt??""} `), fe(O, `${Ke??""} `), Or(q, 1, Vo({ - "btn btn-circle btn-sm": !0, - "btn-ghost": !x(Ne), - "btn-primary": x(Ne) - })), zr(K, "data-tip", jt), ve = Or(le, 1, "btn btn-sm btn-circle btn-ghost text-base-content/80", null, ve, Gt), Or(xe, 1, Vo({ - "md:grid-cols-16 min-[100rem]:grid-cols-32 grid grid-cols-8": !0, - "xl:grid-cols-32 sm:grid-cols-16 gap-0.5 sm:gap-1": x(Qe), - "gap-1": !x(Qe) - })), fe(ai, `${Dr??""} `), Ci = Or(Tt, 1, "btn btn-lg btn-square sm:btn-xl shadow-md", null, Ci, Gr), Tt.disabled = x(W) === 0 - }, [() => Dw(), () => Fw(), () => Ug(), () => ({ - "text-primary": !C() - }), () => dx(), () => ({ - "btn-primary": x(Ee) - })]), $d("innerHeight", Mt => oe(Je, Mt, !0)), H(b, Lt), Pr() -} -Wi(["click"]); - -function dm(...b) { - return Fg(Tu(b)) -} -var aE = Ie("
        "); - -function sE(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "children"]); - var L = aE(); - er(L, T => ({ - class: T, - ...C - }), [() => dm("flex items-center", l.class)]); - var F = k(L); - Ji(F, () => l.children ?? fa), A(L), ps(L, T => _(T), () => _()), H(b, L), Pr() -} -var oE = Ie('
        '), - lE = Ie(" ", 1); - -function cE(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "cell", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => dm("border-input relative flex size-12 items-center justify-center border-y border-r text-xl transition-all first:rounded-l-md first:border-l last:rounded-r-md", l.cell.isActive && "ring-base-content/40 z-10 ring-2", l.class)); - _n(F, () => iA, (o, $) => { - $(o, lo({ - get cell() { - return l.cell - }, - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - }, - children: (W, ie) => { - fi(); - var pe = lE(), - ye = zt(pe), - X = V(ye); - { - var Se = we => { - var Re = oE(); - H(we, Re) - }; - Ue(X, we => { - l.cell.hasFakeCaret && we(Se) - }) - } - Ge(() => fe(ye, `${l.cell.char??""} `)), H(W, pe) - }, - $$slots: { - default: !0 - } - })) - }) - } - H(b, L), Pr() -} - -function uE(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Et(l, "value", 15, ""), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "value"]); - var F = Jt(), - T = zt(F); - { - let o = lt(() => dm("flex items-center gap-2 has-[:disabled]:opacity-50 [&_input]:disabled:cursor-not-allowed", l.class)); - _n(T, () => tA, ($, W) => { - W($, lo({ - get class() { - return x(o) - } - }, () => L, { - get ref() { - return _() - }, - set ref(ie) { - _(ie) - }, - get value() { - return C() - }, - set value(ie) { - C(ie) - } - })) - }) - } - H(b, F), Pr() -} -var gf = { - exports: {} - }, - Sg; - -function hE() { - return Sg || (Sg = 1, (function(b) { - (function(l) { - b.exports ? b.exports = l() : window.intlTelInput = l() - })(() => { - var l = (() => { - var _ = Object.defineProperty, - C = Object.getOwnPropertyDescriptor, - L = Object.getOwnPropertyNames, - F = Object.prototype.hasOwnProperty, - T = (Q, te) => { - for (var _e in te) _(Q, _e, { - get: te[_e], - enumerable: !0 - }) - }, - o = (Q, te, _e, ne) => { - if (te && typeof te == "object" || typeof te == "function") - for (let Pe of L(te)) !F.call(Q, Pe) && Pe !== _e && _(Q, Pe, { - get: () => te[Pe], - enumerable: !(ne = C(te, Pe)) || ne.enumerable - }); - return Q - }, - $ = Q => o(_({}, "__esModule", { - value: !0 - }), Q), - W = {}; - T(W, { - Iti: () => it, - default: () => vt - }); - var ie = [ - ["af", "93"], - ["ax", "358", 1], - ["al", "355"], - ["dz", "213"], - ["as", "1", 5, ["684"]], - ["ad", "376"], - ["ao", "244"], - ["ai", "1", 6, ["264"]], - ["ag", "1", 7, ["268"]], - ["ar", "54"], - ["am", "374"], - ["aw", "297"], - ["ac", "247"], - ["au", "61", 0, null, "0"], - ["at", "43"], - ["az", "994"], - ["bs", "1", 8, ["242"]], - ["bh", "973"], - ["bd", "880"], - ["bb", "1", 9, ["246"]], - ["by", "375"], - ["be", "32"], - ["bz", "501"], - ["bj", "229"], - ["bm", "1", 10, ["441"]], - ["bt", "975"], - ["bo", "591"], - ["ba", "387"], - ["bw", "267"], - ["br", "55"], - ["io", "246"], - ["vg", "1", 11, ["284"]], - ["bn", "673"], - ["bg", "359"], - ["bf", "226"], - ["bi", "257"], - ["kh", "855"], - ["cm", "237"], - ["ca", "1", 1, ["204", "226", "236", "249", "250", "263", "289", "306", "343", "354", "365", "367", "368", "382", "387", "403", "416", "418", "428", "431", "437", "438", "450", "584", "468", "474", "506", "514", "519", "548", "579", "581", "584", "587", "604", "613", "639", "647", "672", "683", "705", "709", "742", "753", "778", "780", "782", "807", "819", "825", "867", "873", "879", "902", "905"]], - ["cv", "238"], - ["bq", "599", 1, ["3", "4", "7"]], - ["ky", "1", 12, ["345"]], - ["cf", "236"], - ["td", "235"], - ["cl", "56"], - ["cn", "86"], - ["cx", "61", 2, ["89164"], "0"], - ["cc", "61", 1, ["89162"], "0"], - ["co", "57"], - ["km", "269"], - ["cg", "242"], - ["cd", "243"], - ["ck", "682"], - ["cr", "506"], - ["ci", "225"], - ["hr", "385"], - ["cu", "53"], - ["cw", "599", 0], - ["cy", "357"], - ["cz", "420"], - ["dk", "45"], - ["dj", "253"], - ["dm", "1", 13, ["767"]], - ["do", "1", 2, ["809", "829", "849"]], - ["ec", "593"], - ["eg", "20"], - ["sv", "503"], - ["gq", "240"], - ["er", "291"], - ["ee", "372"], - ["sz", "268"], - ["et", "251"], - ["fk", "500"], - ["fo", "298"], - ["fj", "679"], - ["fi", "358", 0], - ["fr", "33"], - ["gf", "594"], - ["pf", "689"], - ["ga", "241"], - ["gm", "220"], - ["ge", "995"], - ["de", "49"], - ["gh", "233"], - ["gi", "350"], - ["gr", "30"], - ["gl", "299"], - ["gd", "1", 14, ["473"]], - ["gp", "590", 0], - ["gu", "1", 15, ["671"]], - ["gt", "502"], - ["gg", "44", 1, ["1481", "7781", "7839", "7911"], "0"], - ["gn", "224"], - ["gw", "245"], - ["gy", "592"], - ["ht", "509"], - ["hn", "504"], - ["hk", "852"], - ["hu", "36"], - ["is", "354"], - ["in", "91"], - ["id", "62"], - ["ir", "98"], - ["iq", "964"], - ["ie", "353"], - ["im", "44", 2, ["1624", "74576", "7524", "7924", "7624"], "0"], - ["il", "972"], - ["it", "39", 0], - ["jm", "1", 4, ["876", "658"]], - ["jp", "81"], - ["je", "44", 3, ["1534", "7509", "7700", "7797", "7829", "7937"], "0"], - ["jo", "962"], - ["kz", "7", 1, ["33", "7"], "8"], - ["ke", "254"], - ["ki", "686"], - ["xk", "383"], - ["kw", "965"], - ["kg", "996"], - ["la", "856"], - ["lv", "371"], - ["lb", "961"], - ["ls", "266"], - ["lr", "231"], - ["ly", "218"], - ["li", "423"], - ["lt", "370"], - ["lu", "352"], - ["mo", "853"], - ["mg", "261"], - ["mw", "265"], - ["my", "60"], - ["mv", "960"], - ["ml", "223"], - ["mt", "356"], - ["mh", "692"], - ["mq", "596"], - ["mr", "222"], - ["mu", "230"], - ["yt", "262", 1, ["269", "639"], "0"], - ["mx", "52"], - ["fm", "691"], - ["md", "373"], - ["mc", "377"], - ["mn", "976"], - ["me", "382"], - ["ms", "1", 16, ["664"]], - ["ma", "212", 0, null, "0"], - ["mz", "258"], - ["mm", "95"], - ["na", "264"], - ["nr", "674"], - ["np", "977"], - ["nl", "31"], - ["nc", "687"], - ["nz", "64"], - ["ni", "505"], - ["ne", "227"], - ["ng", "234"], - ["nu", "683"], - ["nf", "672"], - ["kp", "850"], - ["mk", "389"], - ["mp", "1", 17, ["670"]], - ["no", "47", 0], - ["om", "968"], - ["pk", "92"], - ["pw", "680"], - ["ps", "970"], - ["pa", "507"], - ["pg", "675"], - ["py", "595"], - ["pe", "51"], - ["ph", "63"], - ["pl", "48"], - ["pt", "351"], - ["pr", "1", 3, ["787", "939"]], - ["qa", "974"], - ["re", "262", 0, null, "0"], - ["ro", "40"], - ["ru", "7", 0, null, "8"], - ["rw", "250"], - ["ws", "685"], - ["sm", "378"], - ["st", "239"], - ["sa", "966"], - ["sn", "221"], - ["rs", "381"], - ["sc", "248"], - ["sl", "232"], - ["sg", "65"], - ["sx", "1", 21, ["721"]], - ["sk", "421"], - ["si", "386"], - ["sb", "677"], - ["so", "252"], - ["za", "27"], - ["kr", "82"], - ["ss", "211"], - ["es", "34"], - ["lk", "94"], - ["bl", "590", 1], - ["sh", "290"], - ["kn", "1", 18, ["869"]], - ["lc", "1", 19, ["758"]], - ["mf", "590", 2], - ["pm", "508"], - ["vc", "1", 20, ["784"]], - ["sd", "249"], - ["sr", "597"], - ["sj", "47", 1, ["79"]], - ["se", "46"], - ["ch", "41"], - ["sy", "963"], - ["tw", "886"], - ["tj", "992"], - ["tz", "255"], - ["th", "66"], - ["tl", "670"], - ["tg", "228"], - ["tk", "690"], - ["to", "676"], - ["tt", "1", 22, ["868"]], - ["tn", "216"], - ["tr", "90"], - ["tm", "993"], - ["tc", "1", 23, ["649"]], - ["tv", "688"], - ["ug", "256"], - ["ua", "380"], - ["ae", "971"], - ["gb", "44", 0, null, "0"], - ["us", "1", 0], - ["uy", "598"], - ["vi", "1", 24, ["340"]], - ["uz", "998"], - ["vu", "678"], - ["va", "39", 1, ["06698"]], - ["ve", "58"], - ["vn", "84"], - ["wf", "681"], - ["eh", "212", 1, ["5288", "5289"], "0"], - ["ye", "967"], - ["zm", "260"], - ["zw", "263"] - ], - pe = []; - for (let Q = 0; Q < ie.length; Q++) { - const te = ie[Q]; - pe[Q] = { - name: "", - iso2: te[0], - dialCode: te[1], - priority: te[2] || 0, - areaCodes: te[3] || null, - nodeById: {}, - nationalPrefix: te[4] || null - } - } - var ye = pe, - X = { - ad: "Andorra", - ae: "United Arab Emirates", - af: "Afghanistan", - ag: "Antigua & Barbuda", - ai: "Anguilla", - al: "Albania", - am: "Armenia", - ao: "Angola", - ar: "Argentina", - as: "American Samoa", - at: "Austria", - au: "Australia", - aw: "Aruba", - ax: "Åland Islands", - az: "Azerbaijan", - ba: "Bosnia & Herzegovina", - bb: "Barbados", - bd: "Bangladesh", - be: "Belgium", - bf: "Burkina Faso", - bg: "Bulgaria", - bh: "Bahrain", - bi: "Burundi", - bj: "Benin", - bl: "St. Barthélemy", - bm: "Bermuda", - bn: "Brunei", - bo: "Bolivia", - bq: "Caribbean Netherlands", - br: "Brazil", - bs: "Bahamas", - bt: "Bhutan", - bw: "Botswana", - by: "Belarus", - bz: "Belize", - ca: "Canada", - cc: "Cocos (Keeling) Islands", - cd: "Congo - Kinshasa", - cf: "Central African Republic", - cg: "Congo - Brazzaville", - ch: "Switzerland", - ci: "Côte d’Ivoire", - ck: "Cook Islands", - cl: "Chile", - cm: "Cameroon", - cn: "China", - co: "Colombia", - cr: "Costa Rica", - cu: "Cuba", - cv: "Cape Verde", - cw: "Curaçao", - cx: "Christmas Island", - cy: "Cyprus", - cz: "Czechia", - de: "Germany", - dj: "Djibouti", - dk: "Denmark", - dm: "Dominica", - do: "Dominican Republic", - dz: "Algeria", - ec: "Ecuador", - ee: "Estonia", - eg: "Egypt", - eh: "Western Sahara", - er: "Eritrea", - es: "Spain", - et: "Ethiopia", - fi: "Finland", - fj: "Fiji", - fk: "Falkland Islands", - fm: "Micronesia", - fo: "Faroe Islands", - fr: "France", - ga: "Gabon", - gb: "United Kingdom", - gd: "Grenada", - ge: "Georgia", - gf: "French Guiana", - gg: "Guernsey", - gh: "Ghana", - gi: "Gibraltar", - gl: "Greenland", - gm: "Gambia", - gn: "Guinea", - gp: "Guadeloupe", - gq: "Equatorial Guinea", - gr: "Greece", - gt: "Guatemala", - gu: "Guam", - gw: "Guinea-Bissau", - gy: "Guyana", - hk: "Hong Kong SAR China", - hn: "Honduras", - hr: "Croatia", - ht: "Haiti", - hu: "Hungary", - id: "Indonesia", - ie: "Ireland", - il: "Israel", - im: "Isle of Man", - in: "India", - io: "British Indian Ocean Territory", - iq: "Iraq", - ir: "Iran", - is: "Iceland", - it: "Italy", - je: "Jersey", - jm: "Jamaica", - jo: "Jordan", - jp: "Japan", - ke: "Kenya", - kg: "Kyrgyzstan", - kh: "Cambodia", - ki: "Kiribati", - km: "Comoros", - kn: "St. Kitts & Nevis", - kp: "North Korea", - kr: "South Korea", - kw: "Kuwait", - ky: "Cayman Islands", - kz: "Kazakhstan", - la: "Laos", - lb: "Lebanon", - lc: "St. Lucia", - li: "Liechtenstein", - lk: "Sri Lanka", - lr: "Liberia", - ls: "Lesotho", - lt: "Lithuania", - lu: "Luxembourg", - lv: "Latvia", - ly: "Libya", - ma: "Morocco", - mc: "Monaco", - md: "Moldova", - me: "Montenegro", - mf: "St. Martin", - mg: "Madagascar", - mh: "Marshall Islands", - mk: "North Macedonia", - ml: "Mali", - mm: "Myanmar (Burma)", - mn: "Mongolia", - mo: "Macao SAR China", - mp: "Northern Mariana Islands", - mq: "Martinique", - mr: "Mauritania", - ms: "Montserrat", - mt: "Malta", - mu: "Mauritius", - mv: "Maldives", - mw: "Malawi", - mx: "Mexico", - my: "Malaysia", - mz: "Mozambique", - na: "Namibia", - nc: "New Caledonia", - ne: "Niger", - nf: "Norfolk Island", - ng: "Nigeria", - ni: "Nicaragua", - nl: "Netherlands", - no: "Norway", - np: "Nepal", - nr: "Nauru", - nu: "Niue", - nz: "New Zealand", - om: "Oman", - pa: "Panama", - pe: "Peru", - pf: "French Polynesia", - pg: "Papua New Guinea", - ph: "Philippines", - pk: "Pakistan", - pl: "Poland", - pm: "St. Pierre & Miquelon", - pr: "Puerto Rico", - ps: "Palestinian Territories", - pt: "Portugal", - pw: "Palau", - py: "Paraguay", - qa: "Qatar", - re: "Réunion", - ro: "Romania", - rs: "Serbia", - ru: "Russia", - rw: "Rwanda", - sa: "Saudi Arabia", - sb: "Solomon Islands", - sc: "Seychelles", - sd: "Sudan", - se: "Sweden", - sg: "Singapore", - sh: "St. Helena", - si: "Slovenia", - sj: "Svalbard & Jan Mayen", - sk: "Slovakia", - sl: "Sierra Leone", - sm: "San Marino", - sn: "Senegal", - so: "Somalia", - sr: "Suriname", - ss: "South Sudan", - st: "São Tomé & Príncipe", - sv: "El Salvador", - sx: "Sint Maarten", - sy: "Syria", - sz: "Eswatini", - tc: "Turks & Caicos Islands", - td: "Chad", - tg: "Togo", - th: "Thailand", - tj: "Tajikistan", - tk: "Tokelau", - tl: "Timor-Leste", - tm: "Turkmenistan", - tn: "Tunisia", - to: "Tonga", - tr: "Turkey", - tt: "Trinidad & Tobago", - tv: "Tuvalu", - tw: "Taiwan Province of China", - tz: "Tanzania", - ua: "Ukraine", - ug: "Uganda", - us: "United States", - uy: "Uruguay", - uz: "Uzbekistan", - va: "Vatican City", - vc: "St. Vincent & Grenadines", - ve: "Venezuela", - vg: "British Virgin Islands", - vi: "U.S. Virgin Islands", - vn: "Vietnam", - vu: "Vanuatu", - wf: "Wallis & Futuna", - ws: "Samoa", - ye: "Yemen", - yt: "Mayotte", - za: "South Africa", - zm: "Zambia", - zw: "Zimbabwe" - }, - Se = X, - we = { - selectedCountryAriaLabel: "Selected country", - noCountrySelected: "No country selected", - countryListAriaLabel: "List of countries", - searchPlaceholder: "Search", - zeroSearchResults: "No results found", - oneSearchResult: "1 result found", - multipleSearchResults: "${count} results found", - ac: "Ascension Island", - xk: "Kosovo" - }, - Re = we, - Ae = { - ...Se, - ...Re - }, - Oe = Ae; - for (let Q = 0; Q < ye.length; Q++) ye[Q].name = Oe[ye[Q].iso2]; - var Ee = 0, - Ne = { - allowDropdown: !0, - autoPlaceholder: "polite", - containerClass: "", - countryOrder: null, - countrySearch: !0, - customPlaceholder: null, - dropdownContainer: null, - excludeCountries: [], - fixDropdownWidth: !0, - formatAsYouType: !0, - formatOnDisplay: !0, - geoIpLookup: null, - hiddenInput: null, - i18n: {}, - initialCountry: "", - loadUtils: null, - nationalMode: !0, - onlyCountries: [], - placeholderNumberType: "MOBILE", - showFlags: !0, - separateDialCode: !1, - strictMode: !1, - useFullscreenPopup: typeof navigator < "u" && typeof window < "u" ? /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth <= 500 : !1, - validationNumberTypes: ["MOBILE"] - }, - ft = ["800", "822", "833", "844", "855", "866", "877", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889"], - ht = Q => Q.replace(/\D/g, ""), - Xe = (Q = "") => Q.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase(), - ct = Q => { - const te = ht(Q); - if (te.charAt(0) === "1") { - const _e = te.substr(1, 3); - return ft.includes(_e) - } - return !1 - }, - Je = (Q, te, _e, ne) => { - if (_e === 0 && !ne) return 0; - let Pe = 0; - for (let Me = 0; Me < te.length; Me++) { - if (/[+0-9]/.test(te[Me]) && Pe++, Pe === Q && !ne) return Me + 1; - if (ne && Pe === Q + 1) return Me - } - return te.length - }, - Be = (Q, te, _e) => { - const ne = document.createElement(Q); - return te && Object.entries(te).forEach(([Pe, Me]) => ne.setAttribute(Pe, Me)), _e && _e.appendChild(ne), ne - }, - st = (Q, ...te) => { - const { - instances: _e - } = ke; - Object.values(_e).forEach(ne => ne[Q](...te)) - }, - it = class { - constructor(Q, te = {}) { - this.id = Ee++, this.telInput = Q, this.highlightedItem = null, this.options = Object.assign({}, Ne, te), this.hadInitialPlaceholder = !!Q.getAttribute("placeholder") - } - _init() { - this.options.useFullscreenPopup && (this.options.fixDropdownWidth = !1), this.options.onlyCountries.length === 1 && (this.options.initialCountry = this.options.onlyCountries[0]), this.options.separateDialCode && (this.options.nationalMode = !1), this.options.allowDropdown && !this.options.showFlags && !this.options.separateDialCode && (this.options.nationalMode = !1), this.options.useFullscreenPopup && !this.options.dropdownContainer && (this.options.dropdownContainer = document.body), this.isAndroid = typeof navigator < "u" ? /Android/i.test(navigator.userAgent) : !1, this.isRTL = !!this.telInput.closest("[dir=rtl]"); - const Q = this.options.allowDropdown || this.options.separateDialCode; - this.showSelectedCountryOnLeft = this.isRTL ? !Q : Q, this.options.separateDialCode && (this.isRTL ? this.originalPaddingRight = this.telInput.style.paddingRight : this.originalPaddingLeft = this.telInput.style.paddingLeft), this.options.i18n = { - ...Oe, - ...this.options.i18n - }; - const te = new Promise((ne, Pe) => { - this.resolveAutoCountryPromise = ne, this.rejectAutoCountryPromise = Pe - }), - _e = new Promise((ne, Pe) => { - this.resolveUtilsScriptPromise = ne, this.rejectUtilsScriptPromise = Pe - }); - this.promise = Promise.all([te, _e]), this.selectedCountryData = {}, this._processCountryData(), this._generateMarkup(), this._setInitialState(), this._initListeners(), this._initRequests() - } - _processCountryData() { - this._processAllCountries(), this._processDialCodes(), this._translateCountryNames(), this._sortCountries() - } - _sortCountries() { - this.options.countryOrder && (this.options.countryOrder = this.options.countryOrder.map(Q => Q.toLowerCase())), this.countries.sort((Q, te) => { - const { - countryOrder: _e - } = this.options; - if (_e) { - const ne = _e.indexOf(Q.iso2), - Pe = _e.indexOf(te.iso2), - Me = ne > -1, - at = Pe > -1; - if (Me || at) return Me && at ? ne - Pe : Me ? -1 : 1 - } - return Q.name.localeCompare(te.name) - }) - } - _addToDialCodeMap(Q, te, _e) { - te.length > this.dialCodeMaxLen && (this.dialCodeMaxLen = te.length), this.dialCodeToIso2Map.hasOwnProperty(te) || (this.dialCodeToIso2Map[te] = []); - for (let Pe = 0; Pe < this.dialCodeToIso2Map[te].length; Pe++) - if (this.dialCodeToIso2Map[te][Pe] === Q) return; - const ne = _e !== void 0 ? _e : this.dialCodeToIso2Map[te].length; - this.dialCodeToIso2Map[te][ne] = Q - } - _processAllCountries() { - const { - onlyCountries: Q, - excludeCountries: te - } = this.options; - if (Q.length) { - const _e = Q.map(ne => ne.toLowerCase()); - this.countries = ye.filter(ne => _e.includes(ne.iso2)) - } else if (te.length) { - const _e = te.map(ne => ne.toLowerCase()); - this.countries = ye.filter(ne => !_e.includes(ne.iso2)) - } else this.countries = ye - } - _translateCountryNames() { - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q].iso2.toLowerCase(); - this.options.i18n.hasOwnProperty(te) && (this.countries[Q].name = this.options.i18n[te]) - } - } - _processDialCodes() { - this.dialCodes = {}, this.dialCodeMaxLen = 0, this.dialCodeToIso2Map = {}; - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q]; - this.dialCodes[te.dialCode] || (this.dialCodes[te.dialCode] = !0), this._addToDialCodeMap(te.iso2, te.dialCode, te.priority) - } - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q]; - if (te.areaCodes) { - const _e = this.dialCodeToIso2Map[te.dialCode][0]; - for (let ne = 0; ne < te.areaCodes.length; ne++) { - const Pe = te.areaCodes[ne]; - for (let Me = 1; Me < Pe.length; Me++) { - const at = Pe.substr(0, Me), - We = te.dialCode + at; - this._addToDialCodeMap(_e, We), this._addToDialCodeMap(te.iso2, We) - } - this._addToDialCodeMap(te.iso2, te.dialCode + Pe) - } - } - } - } - _generateMarkup() { - var pt, It, ut; - this.telInput.classList.add("iti__tel-input"), !this.telInput.hasAttribute("autocomplete") && !(this.telInput.form && this.telInput.form.hasAttribute("autocomplete")) && this.telInput.setAttribute("autocomplete", "off"); - const { - allowDropdown: Q, - separateDialCode: te, - showFlags: _e, - containerClass: ne, - hiddenInput: Pe, - dropdownContainer: Me, - fixDropdownWidth: at, - useFullscreenPopup: We, - countrySearch: Ct, - i18n: _t - } = this.options; - let xt = "iti"; - Q && (xt += " iti--allow-dropdown"), _e && (xt += " iti--show-flags"), ne && (xt += ` ${ne}`), We || (xt += " iti--inline-dropdown"); - const tt = Be("div", { - class: xt - }); - if ((pt = this.telInput.parentNode) == null || pt.insertBefore(tt, this.telInput), Q || _e || te) { - this.countryContainer = Be("div", { - class: "iti__country-container" - }, tt), this.showSelectedCountryOnLeft ? this.countryContainer.style.left = "0px" : this.countryContainer.style.right = "0px", Q ? (this.selectedCountry = Be("button", { - type: "button", - class: "iti__selected-country", - "aria-expanded": "false", - "aria-label": this.options.i18n.selectedCountryAriaLabel, - "aria-haspopup": "true", - "aria-controls": `iti-${this.id}__dropdown-content`, - role: "combobox" - }, this.countryContainer), this.telInput.disabled && this.selectedCountry.setAttribute("disabled", "true")) : this.selectedCountry = Be("div", { - class: "iti__selected-country" - }, this.countryContainer); - const bt = Be("div", { - class: "iti__selected-country-primary" - }, this.selectedCountry); - if (this.selectedCountryInner = Be("div", { - class: "iti__flag" - }, bt), this.selectedCountryA11yText = Be("span", { - class: "iti__a11y-text" - }, this.selectedCountryInner), Q && (this.dropdownArrow = Be("div", { - class: "iti__arrow", - "aria-hidden": "true" - }, bt)), te && (this.selectedDialCode = Be("div", { - class: "iti__selected-dial-code" - }, this.selectedCountry)), Q) { - const wt = at ? "" : "iti--flexible-dropdown-width"; - if (this.dropdownContent = Be("div", { - id: `iti-${this.id}__dropdown-content`, - class: `iti__dropdown-content iti__hide ${wt}` - }), Ct && (this.searchInput = Be("input", { - type: "text", - class: "iti__search-input", - placeholder: _t.searchPlaceholder, - role: "combobox", - "aria-expanded": "true", - "aria-label": _t.searchPlaceholder, - "aria-controls": `iti-${this.id}__country-listbox`, - "aria-autocomplete": "list", - autocomplete: "off" - }, this.dropdownContent), this.searchResultsA11yText = Be("span", { - class: "iti__a11y-text" - }, this.dropdownContent)), this.countryList = Be("ul", { - class: "iti__country-list", - id: `iti-${this.id}__country-listbox`, - role: "listbox", - "aria-label": _t.countryListAriaLabel - }, this.dropdownContent), this._appendListItems(), Ct && this._updateSearchResultsText(), Me) { - let dt = "iti iti--container"; - We ? dt += " iti--fullscreen-popup" : dt += " iti--inline-dropdown", this.dropdown = Be("div", { - class: dt - }), this.dropdown.appendChild(this.dropdownContent) - } else this.countryContainer.appendChild(this.dropdownContent) - } - } - if (tt.appendChild(this.telInput), this._updateInputPadding(), Pe) { - const bt = this.telInput.getAttribute("name") || "", - wt = Pe(bt); - if (wt.phone) { - const dt = (It = this.telInput.form) == null ? void 0 : It.querySelector(`input[name="${wt.phone}"]`); - dt ? this.hiddenInput = dt : (this.hiddenInput = Be("input", { - type: "hidden", - name: wt.phone - }), tt.appendChild(this.hiddenInput)) - } - if (wt.country) { - const dt = (ut = this.telInput.form) == null ? void 0 : ut.querySelector(`input[name="${wt.country}"]`); - dt ? this.hiddenInputCountry = dt : (this.hiddenInputCountry = Be("input", { - type: "hidden", - name: wt.country - }), tt.appendChild(this.hiddenInputCountry)) - } - } - } - _appendListItems() { - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q], - _e = Q === 0 ? "iti__highlight" : "", - ne = Be("li", { - id: `iti-${this.id}__item-${te.iso2}`, - class: `iti__country ${_e}`, - tabindex: "-1", - role: "option", - "data-dial-code": te.dialCode, - "data-country-code": te.iso2, - "aria-selected": "false" - }, this.countryList); - te.nodeById[this.id] = ne; - let Pe = ""; - this.options.showFlags && (Pe += `
        `), Pe += `${te.name}`, Pe += `+${te.dialCode}`, ne.insertAdjacentHTML("beforeend", Pe) - } - } - _setInitialState(Q = !1) { - const te = this.telInput.getAttribute("value"), - _e = this.telInput.value, - Pe = te && te.charAt(0) === "+" && (!_e || _e.charAt(0) !== "+") ? te : _e, - Me = this._getDialCode(Pe), - at = ct(Pe), - { - initialCountry: We, - geoIpLookup: Ct - } = this.options, - _t = We === "auto" && Ct; - if (Me && !at) this._updateCountryFromNumber(Pe); - else if (!_t || Q) { - const xt = We ? We.toLowerCase() : ""; - xt && this._getCountryData(xt, !0) ? this._setCountry(xt) : Me && at ? this._setCountry("us") : this._setCountry() - } - Pe && this._updateValFromNumber(Pe) - } - _initListeners() { - this._initTelInputListeners(), this.options.allowDropdown && this._initDropdownListeners(), (this.hiddenInput || this.hiddenInputCountry) && this.telInput.form && this._initHiddenInputListener() - } - _initHiddenInputListener() { - var Q; - this._handleHiddenInputSubmit = () => { - this.hiddenInput && (this.hiddenInput.value = this.getNumber()), this.hiddenInputCountry && (this.hiddenInputCountry.value = this.getSelectedCountryData().iso2 || "") - }, (Q = this.telInput.form) == null || Q.addEventListener("submit", this._handleHiddenInputSubmit) - } - _initDropdownListeners() { - this._handleLabelClick = te => { - this.dropdownContent.classList.contains("iti__hide") ? this.telInput.focus() : te.preventDefault() - }; - const Q = this.telInput.closest("label"); - Q && Q.addEventListener("click", this._handleLabelClick), this._handleClickSelectedCountry = () => { - this.dropdownContent.classList.contains("iti__hide") && !this.telInput.disabled && !this.telInput.readOnly && this._openDropdown() - }, this.selectedCountry.addEventListener("click", this._handleClickSelectedCountry), this._handleCountryContainerKeydown = te => { - this.dropdownContent.classList.contains("iti__hide") && ["ArrowUp", "ArrowDown", " ", "Enter"].includes(te.key) && (te.preventDefault(), te.stopPropagation(), this._openDropdown()), te.key === "Tab" && this._closeDropdown() - }, this.countryContainer.addEventListener("keydown", this._handleCountryContainerKeydown) - } - _initRequests() { - let { - loadUtils: Q, - initialCountry: te, - geoIpLookup: _e - } = this.options; - Q && !ke.utils ? (this._handlePageLoad = () => { - var Pe; - window.removeEventListener("load", this._handlePageLoad), (Pe = ke.attachUtils(Q)) == null || Pe.catch(() => {}) - }, ke.documentReady() ? this._handlePageLoad() : window.addEventListener("load", this._handlePageLoad)) : this.resolveUtilsScriptPromise(), te === "auto" && _e && !this.selectedCountryData.iso2 ? this._loadAutoCountry() : this.resolveAutoCountryPromise() - } - _loadAutoCountry() { - ke.autoCountry ? this.handleAutoCountry() : ke.startedLoadingAutoCountry || (ke.startedLoadingAutoCountry = !0, typeof this.options.geoIpLookup == "function" && this.options.geoIpLookup((Q = "") => { - const te = Q.toLowerCase(); - te && this._getCountryData(te, !0) ? (ke.autoCountry = te, setTimeout(() => st("handleAutoCountry"))) : (this._setInitialState(!0), st("rejectAutoCountryPromise")) - }, () => { - this._setInitialState(!0), st("rejectAutoCountryPromise") - })) - } - _openDropdownWithPlus() { - this._openDropdown(), this.searchInput.value = "+", this._filterCountries("", !0) - } - _initTelInputListeners() { - const { - strictMode: Q, - formatAsYouType: te, - separateDialCode: _e, - formatOnDisplay: ne, - allowDropdown: Pe, - countrySearch: Me - } = this.options; - let at = !1; - new RegExp("\\p{L}", "u").test(this.telInput.value) && (at = !0), this._handleInputEvent = We => { - if (this.isAndroid && (We == null ? void 0 : We.data) === "+" && _e && Pe && Me) { - const tt = this.telInput.selectionStart || 0, - pt = this.telInput.value.substring(0, tt - 1), - It = this.telInput.value.substring(tt); - this.telInput.value = pt + It, this._openDropdownWithPlus(); - return - } - this._updateCountryFromNumber(this.telInput.value) && this._triggerCountryChange(); - const Ct = (We == null ? void 0 : We.data) && /[^+0-9]/.test(We.data), - _t = (We == null ? void 0 : We.inputType) === "insertFromPaste" && this.telInput.value; - Ct || _t && !Q ? at = !0 : /[^+0-9]/.test(this.telInput.value) || (at = !1); - const xt = (We == null ? void 0 : We.detail) && We.detail.isSetNumber && !ne; - if (te && !at && !xt) { - const tt = this.telInput.selectionStart || 0, - It = this.telInput.value.substring(0, tt).replace(/[^+0-9]/g, "").length, - ut = (We == null ? void 0 : We.inputType) === "deleteContentForward", - bt = this._formatNumberAsYouType(), - wt = Je(It, bt, tt, ut); - this.telInput.value = bt, this.telInput.setSelectionRange(wt, wt) - } - }, this.telInput.addEventListener("input", this._handleInputEvent), (Q || _e) && (this._handleKeydownEvent = We => { - if (We.key && We.key.length === 1 && !We.altKey && !We.ctrlKey && !We.metaKey) { - if (_e && Pe && Me && We.key === "+") { - We.preventDefault(), this._openDropdownWithPlus(); - return - } - if (Q) { - const Ct = this.telInput.value, - _t = Ct.charAt(0) === "+", - xt = !_t && this.telInput.selectionStart === 0 && We.key === "+", - tt = /^[0-9]$/.test(We.key), - pt = _e ? tt : xt || tt, - It = Ct.slice(0, this.telInput.selectionStart) + We.key + Ct.slice(this.telInput.selectionEnd), - ut = this._getFullNumber(It), - bt = ke.utils.getCoreNumber(ut, this.selectedCountryData.iso2), - wt = this.maxCoreNumberLength && bt.length > this.maxCoreNumberLength; - let dt = !1; - if (_t) { - const Lt = this.selectedCountryData.iso2; - dt = this._getCountryFromNumber(ut) !== Lt - }(!pt || wt && !dt && !xt) && We.preventDefault() - } - } - }, this.telInput.addEventListener("keydown", this._handleKeydownEvent)) - } - _cap(Q) { - const te = parseInt(this.telInput.getAttribute("maxlength") || "", 10); - return te && Q.length > te ? Q.substr(0, te) : Q - } - _trigger(Q, te = {}) { - const _e = new CustomEvent(Q, { - bubbles: !0, - cancelable: !0, - detail: te - }); - this.telInput.dispatchEvent(_e) - } - _openDropdown() { - const { - fixDropdownWidth: Q, - countrySearch: te - } = this.options; - if (Q && (this.dropdownContent.style.width = `${this.telInput.offsetWidth}px`), this.dropdownContent.classList.remove("iti__hide"), this.selectedCountry.setAttribute("aria-expanded", "true"), this._setDropdownPosition(), te) { - const _e = this.countryList.firstElementChild; - _e && (this._highlightListItem(_e, !1), this.countryList.scrollTop = 0), this.searchInput.focus() - } - this._bindDropdownListeners(), this.dropdownArrow.classList.add("iti__arrow--up"), this._trigger("open:countrydropdown") - } - _setDropdownPosition() { - if (this.options.dropdownContainer && this.options.dropdownContainer.appendChild(this.dropdown), !this.options.useFullscreenPopup) { - const Q = this.telInput.getBoundingClientRect(), - te = this.telInput.offsetHeight; - this.options.dropdownContainer && (this.dropdown.style.top = `${Q.top+te}px`, this.dropdown.style.left = `${Q.left}px`, this._handleWindowScroll = () => this._closeDropdown(), window.addEventListener("scroll", this._handleWindowScroll)) - } - } - _bindDropdownListeners() { - this._handleMouseoverCountryList = ne => { - var Me; - const Pe = (Me = ne.target) == null ? void 0 : Me.closest(".iti__country"); - Pe && this._highlightListItem(Pe, !1) - }, this.countryList.addEventListener("mouseover", this._handleMouseoverCountryList), this._handleClickCountryList = ne => { - var Me; - const Pe = (Me = ne.target) == null ? void 0 : Me.closest(".iti__country"); - Pe && this._selectListItem(Pe) - }, this.countryList.addEventListener("click", this._handleClickCountryList); - let Q = !0; - this._handleClickOffToClose = () => { - Q || this._closeDropdown(), Q = !1 - }, document.documentElement.addEventListener("click", this._handleClickOffToClose); - let te = "", - _e = null; - if (this._handleKeydownOnDropdown = ne => { - ["ArrowUp", "ArrowDown", "Enter", "Escape"].includes(ne.key) && (ne.preventDefault(), ne.stopPropagation(), ne.key === "ArrowUp" || ne.key === "ArrowDown" ? this._handleUpDownKey(ne.key) : ne.key === "Enter" ? this._handleEnterKey() : ne.key === "Escape" && this._closeDropdown()), !this.options.countrySearch && /^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(ne.key) && (ne.stopPropagation(), _e && clearTimeout(_e), te += ne.key.toLowerCase(), this._searchForCountry(te), _e = setTimeout(() => { - te = "" - }, 1e3)) - }, document.addEventListener("keydown", this._handleKeydownOnDropdown), this.options.countrySearch) { - const ne = () => { - const Me = this.searchInput.value.trim(); - Me ? this._filterCountries(Me) : this._filterCountries("", !0) - }; - let Pe = null; - this._handleSearchChange = () => { - Pe && clearTimeout(Pe), Pe = setTimeout(() => { - ne(), Pe = null - }, 100) - }, this.searchInput.addEventListener("input", this._handleSearchChange), this.searchInput.addEventListener("click", Me => Me.stopPropagation()) - } - } - _searchForCountry(Q) { - for (let te = 0; te < this.countries.length; te++) { - const _e = this.countries[te]; - if (_e.name.substr(0, Q.length).toLowerCase() === Q) { - const Pe = _e.nodeById[this.id]; - this._highlightListItem(Pe, !1), this._scrollTo(Pe); - break - } - } - } - _filterCountries(Q, te = !1) { - let _e = !0; - this.countryList.innerHTML = ""; - const ne = Xe(Q); - for (let Pe = 0; Pe < this.countries.length; Pe++) { - const Me = this.countries[Pe], - at = Xe(Me.name), - We = Me.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map(_t => _t[0]).join("").toLowerCase(), - Ct = `+${Me.dialCode}`; - if (te || at.includes(ne) || Ct.includes(ne) || Me.iso2.includes(ne) || We.includes(ne)) { - const _t = Me.nodeById[this.id]; - _t && this.countryList.appendChild(_t), _e && (this._highlightListItem(_t, !1), _e = !1) - } - } - _e && this._highlightListItem(null, !1), this.countryList.scrollTop = 0, this._updateSearchResultsText() - } - _updateSearchResultsText() { - const { - i18n: Q - } = this.options, te = this.countryList.childElementCount; - let _e; - te === 0 ? _e = Q.zeroSearchResults : te === 1 ? _e = Q.oneSearchResult : _e = Q.multipleSearchResults.replace("${count}", te.toString()), this.searchResultsA11yText.textContent = _e - } - _handleUpDownKey(Q) { - var _e, ne; - let te = Q === "ArrowUp" ? (_e = this.highlightedItem) == null ? void 0 : _e.previousElementSibling : (ne = this.highlightedItem) == null ? void 0 : ne.nextElementSibling; - !te && this.countryList.childElementCount > 1 && (te = Q === "ArrowUp" ? this.countryList.lastElementChild : this.countryList.firstElementChild), te && (this._scrollTo(te), this._highlightListItem(te, !1)) - } - _handleEnterKey() { - this.highlightedItem && this._selectListItem(this.highlightedItem) - } - _updateValFromNumber(Q) { - let te = Q; - if (this.options.formatOnDisplay && ke.utils && this.selectedCountryData) { - const _e = this.options.nationalMode || te.charAt(0) !== "+" && !this.options.separateDialCode, - { - NATIONAL: ne, - INTERNATIONAL: Pe - } = ke.utils.numberFormat, - Me = _e ? ne : Pe; - te = ke.utils.formatNumber(te, this.selectedCountryData.iso2, Me) - } - te = this._beforeSetNumber(te), this.telInput.value = te - } - _updateCountryFromNumber(Q) { - const te = this._getCountryFromNumber(Q); - return te !== null ? this._setCountry(te) : !1 - } - _ensureHasDialCode(Q) { - const { - dialCode: te, - nationalPrefix: _e - } = this.selectedCountryData; - if (Q.charAt(0) === "+" || !te) return Q; - const Me = _e && Q.charAt(0) === _e && !this.options.separateDialCode ? Q.substring(1) : Q; - return `+${te}${Me}` - } - _getCountryFromNumber(Q) { - const te = Q.indexOf("+"); - let _e = te ? Q.substring(te) : Q; - const ne = this.selectedCountryData.iso2, - Pe = this.selectedCountryData.dialCode; - _e = this._ensureHasDialCode(_e); - const Me = this._getDialCode(_e, !0), - at = ht(_e); - if (Me) { - const We = ht(Me), - Ct = this.dialCodeToIso2Map[We]; - if (!ne && this.defaultCountry && Ct.includes(this.defaultCountry)) return this.defaultCountry; - const _t = ne && Ct.includes(ne) && (at.length === We.length || !this.selectedCountryData.areaCodes); - if (!(Pe === "1" && ct(at)) && !_t) { - for (let tt = 0; tt < Ct.length; tt++) - if (Ct[tt]) return Ct[tt] - } - } else { - if (_e.charAt(0) === "+" && at.length) return ""; - if ((!_e || _e === "+") && !this.selectedCountryData.iso2) return this.defaultCountry - } - return null - } - _highlightListItem(Q, te) { - const _e = this.highlightedItem; - if (_e && (_e.classList.remove("iti__highlight"), _e.setAttribute("aria-selected", "false")), this.highlightedItem = Q, this.highlightedItem) { - this.highlightedItem.classList.add("iti__highlight"), this.highlightedItem.setAttribute("aria-selected", "true"); - const ne = this.highlightedItem.getAttribute("id") || ""; - this.selectedCountry.setAttribute("aria-activedescendant", ne), this.options.countrySearch && this.searchInput.setAttribute("aria-activedescendant", ne) - } - te && this.highlightedItem.focus() - } - _getCountryData(Q, te) { - for (let _e = 0; _e < this.countries.length; _e++) - if (this.countries[_e].iso2 === Q) return this.countries[_e]; - if (te) return null; - throw new Error(`No country data for '${Q}'`) - } - _setCountry(Q) { - const { - separateDialCode: te, - showFlags: _e, - i18n: ne - } = this.options, Pe = this.selectedCountryData.iso2 ? this.selectedCountryData : {}; - if (this.selectedCountryData = Q ? this._getCountryData(Q, !1) || {} : {}, this.selectedCountryData.iso2 && (this.defaultCountry = this.selectedCountryData.iso2), this.selectedCountryInner) { - let Me = "", - at = ""; - Q && _e ? (Me = `iti__flag iti__${Q}`, at = `${this.selectedCountryData.name} +${this.selectedCountryData.dialCode}`) : (Me = "iti__flag iti__globe", at = ne.noCountrySelected), this.selectedCountryInner.className = Me, this.selectedCountryA11yText.textContent = at - } - if (this._setSelectedCountryTitleAttribute(Q, te), te) { - const Me = this.selectedCountryData.dialCode ? `+${this.selectedCountryData.dialCode}` : ""; - this.selectedDialCode.innerHTML = Me, this._updateInputPadding() - } - return this._updatePlaceholder(), this._updateMaxLength(), Pe.iso2 !== Q - } - _updateInputPadding() { - if (this.selectedCountry) { - const te = (this.selectedCountry.offsetWidth || this._getHiddenSelectedCountryWidth()) + 6; - this.showSelectedCountryOnLeft ? this.telInput.style.paddingLeft = `${te}px` : this.telInput.style.paddingRight = `${te}px` - } - } - _updateMaxLength() { - const { - strictMode: Q, - placeholderNumberType: te, - validationNumberTypes: _e - } = this.options, { - iso2: ne - } = this.selectedCountryData; - if (Q && ke.utils) - if (ne) { - const Pe = ke.utils.numberType[te]; - let Me = ke.utils.getExampleNumber(ne, !1, Pe, !0), - at = Me; - for (; ke.utils.isPossibleNumber(Me, ne, _e);) at = Me, Me += "0"; - const We = ke.utils.getCoreNumber(at, ne); - this.maxCoreNumberLength = We.length, ne === "by" && (this.maxCoreNumberLength = We.length + 1) - } else this.maxCoreNumberLength = null - } - _setSelectedCountryTitleAttribute(Q = null, te) { - if (!this.selectedCountry) return; - let _e; - Q && !te ? _e = `${this.selectedCountryData.name}: +${this.selectedCountryData.dialCode}` : Q ? _e = this.selectedCountryData.name : _e = "Unknown", this.selectedCountry.setAttribute("title", _e) - } - _getHiddenSelectedCountryWidth() { - if (this.telInput.parentNode) { - const Q = this.telInput.parentNode.cloneNode(!1); - Q.style.visibility = "hidden", document.body.appendChild(Q); - const te = this.countryContainer.cloneNode(); - Q.appendChild(te); - const _e = this.selectedCountry.cloneNode(!0); - te.appendChild(_e); - const ne = _e.offsetWidth; - return document.body.removeChild(Q), ne - } - return 0 - } - _updatePlaceholder() { - const { - autoPlaceholder: Q, - placeholderNumberType: te, - nationalMode: _e, - customPlaceholder: ne - } = this.options, Pe = Q === "aggressive" || !this.hadInitialPlaceholder && Q === "polite"; - if (ke.utils && Pe) { - const Me = ke.utils.numberType[te]; - let at = this.selectedCountryData.iso2 ? ke.utils.getExampleNumber(this.selectedCountryData.iso2, _e, Me) : ""; - at = this._beforeSetNumber(at), typeof ne == "function" && (at = ne(at, this.selectedCountryData)), this.telInput.setAttribute("placeholder", at) - } - } - _selectListItem(Q) { - const te = this._setCountry(Q.getAttribute("data-country-code")); - this._closeDropdown(), this._updateDialCode(Q.getAttribute("data-dial-code")), this.telInput.focus(), te && this._triggerCountryChange() - } - _closeDropdown() { - this.dropdownContent.classList.add("iti__hide"), this.selectedCountry.setAttribute("aria-expanded", "false"), this.selectedCountry.removeAttribute("aria-activedescendant"), this.highlightedItem && this.highlightedItem.setAttribute("aria-selected", "false"), this.options.countrySearch && this.searchInput.removeAttribute("aria-activedescendant"), this.dropdownArrow.classList.remove("iti__arrow--up"), document.removeEventListener("keydown", this._handleKeydownOnDropdown), this.options.countrySearch && this.searchInput.removeEventListener("input", this._handleSearchChange), document.documentElement.removeEventListener("click", this._handleClickOffToClose), this.countryList.removeEventListener("mouseover", this._handleMouseoverCountryList), this.countryList.removeEventListener("click", this._handleClickCountryList), this.options.dropdownContainer && (this.options.useFullscreenPopup || window.removeEventListener("scroll", this._handleWindowScroll), this.dropdown.parentNode && this.dropdown.parentNode.removeChild(this.dropdown)), this._handlePageLoad && window.removeEventListener("load", this._handlePageLoad), this._trigger("close:countrydropdown") - } - _scrollTo(Q) { - const te = this.countryList, - _e = document.documentElement.scrollTop, - ne = te.offsetHeight, - Pe = te.getBoundingClientRect().top + _e, - Me = Pe + ne, - at = Q.offsetHeight, - We = Q.getBoundingClientRect().top + _e, - Ct = We + at, - _t = We - Pe + te.scrollTop; - if (We < Pe) te.scrollTop = _t; - else if (Ct > Me) { - const xt = ne - at; - te.scrollTop = _t - xt - } - } - _updateDialCode(Q) { - const te = this.telInput.value, - _e = `+${Q}`; - let ne; - if (te.charAt(0) === "+") { - const Pe = this._getDialCode(te); - Pe ? ne = te.replace(Pe, _e) : ne = _e, this.telInput.value = ne - } - } - _getDialCode(Q, te) { - let _e = ""; - if (Q.charAt(0) === "+") { - let ne = ""; - for (let Pe = 0; Pe < Q.length; Pe++) { - const Me = Q.charAt(Pe); - if (!isNaN(parseInt(Me, 10))) { - if (ne += Me, te) this.dialCodeToIso2Map[ne] && (_e = Q.substr(0, Pe + 1)); - else if (this.dialCodes[ne]) { - _e = Q.substr(0, Pe + 1); - break - } - if (ne.length === this.dialCodeMaxLen) break - } - } - } - return _e - } - _getFullNumber(Q) { - const te = Q || this.telInput.value.trim(), - { - dialCode: _e - } = this.selectedCountryData; - let ne; - const Pe = ht(te); - return this.options.separateDialCode && te.charAt(0) !== "+" && _e && Pe ? ne = `+${_e}` : ne = "", ne + te - } - _beforeSetNumber(Q) { - let te = Q; - if (this.options.separateDialCode) { - let _e = this._getDialCode(te); - if (_e) { - _e = `+${this.selectedCountryData.dialCode}`; - const ne = te[_e.length] === " " || te[_e.length] === "-" ? _e.length + 1 : _e.length; - te = te.substr(ne) - } - } - return this._cap(te) - } - _triggerCountryChange() { - this._trigger("countrychange") - } - _formatNumberAsYouType() { - const Q = this._getFullNumber(), - te = ke.utils ? ke.utils.formatNumberAsYouType(Q, this.selectedCountryData.iso2) : Q, - { - dialCode: _e - } = this.selectedCountryData; - return this.options.separateDialCode && this.telInput.value.charAt(0) !== "+" && te.includes(`+${_e}`) ? (te.split(`+${_e}`)[1] || "").trim() : te - } - handleAutoCountry() { - this.options.initialCountry === "auto" && ke.autoCountry && (this.defaultCountry = ke.autoCountry, this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe") || this.setCountry(this.defaultCountry), this.resolveAutoCountryPromise()) - } - handleUtils() { - ke.utils && (this.telInput.value && this._updateValFromNumber(this.telInput.value), this.selectedCountryData.iso2 && (this._updatePlaceholder(), this._updateMaxLength())), this.resolveUtilsScriptPromise() - } - destroy() { - var Pe, Me; - const { - allowDropdown: Q, - separateDialCode: te - } = this.options; - if (Q) { - this._closeDropdown(), this.selectedCountry.removeEventListener("click", this._handleClickSelectedCountry), this.countryContainer.removeEventListener("keydown", this._handleCountryContainerKeydown); - const at = this.telInput.closest("label"); - at && at.removeEventListener("click", this._handleLabelClick) - } - const { - form: _e - } = this.telInput; - this._handleHiddenInputSubmit && _e && _e.removeEventListener("submit", this._handleHiddenInputSubmit), this.telInput.removeEventListener("input", this._handleInputEvent), this._handleKeydownEvent && this.telInput.removeEventListener("keydown", this._handleKeydownEvent), this.telInput.removeAttribute("data-intl-tel-input-id"), te && (this.isRTL ? this.telInput.style.paddingRight = this.originalPaddingRight : this.telInput.style.paddingLeft = this.originalPaddingLeft); - const ne = this.telInput.parentNode; - (Pe = ne == null ? void 0 : ne.parentNode) == null || Pe.insertBefore(this.telInput, ne), (Me = ne == null ? void 0 : ne.parentNode) == null || Me.removeChild(ne), delete ke.instances[this.id] - } - getExtension() { - return ke.utils ? ke.utils.getExtension(this._getFullNumber(), this.selectedCountryData.iso2) : "" - } - getNumber(Q) { - if (ke.utils) { - const { - iso2: te - } = this.selectedCountryData; - return ke.utils.formatNumber(this._getFullNumber(), te, Q) - } - return "" - } - getNumberType() { - return ke.utils ? ke.utils.getNumberType(this._getFullNumber(), this.selectedCountryData.iso2) : -99 - } - getSelectedCountryData() { - return this.selectedCountryData - } - getValidationError() { - if (ke.utils) { - const { - iso2: Q - } = this.selectedCountryData; - return ke.utils.getValidationError(this._getFullNumber(), Q) - } - return -99 - } - isValidNumber() { - if (!this.selectedCountryData.iso2) return !1; - const Q = this._getFullNumber(), - te = Q.search(new RegExp("\\p{L}", "u")); - if (te > -1) { - const _e = Q.substring(0, te), - ne = this._utilsIsPossibleNumber(_e), - Pe = this._utilsIsPossibleNumber(Q); - return ne && Pe - } - return this._utilsIsPossibleNumber(Q) - } - _utilsIsPossibleNumber(Q) { - return ke.utils ? ke.utils.isPossibleNumber(Q, this.selectedCountryData.iso2, this.options.validationNumberTypes) : null - } - isValidNumberPrecise() { - if (!this.selectedCountryData.iso2) return !1; - const Q = this._getFullNumber(), - te = Q.search(new RegExp("\\p{L}", "u")); - if (te > -1) { - const _e = Q.substring(0, te), - ne = this._utilsIsValidNumber(_e), - Pe = this._utilsIsValidNumber(Q); - return ne && Pe - } - return this._utilsIsValidNumber(Q) - } - _utilsIsValidNumber(Q) { - return ke.utils ? ke.utils.isValidNumber(Q, this.selectedCountryData.iso2, this.options.validationNumberTypes) : null - } - setCountry(Q) { - const te = Q == null ? void 0 : Q.toLowerCase(), - _e = this.selectedCountryData.iso2; - (Q && te !== _e || !Q && _e) && (this._setCountry(te), this._updateDialCode(this.selectedCountryData.dialCode), this._triggerCountryChange()) - } - setNumber(Q) { - const te = this._updateCountryFromNumber(Q); - this._updateValFromNumber(Q), te && this._triggerCountryChange(), this._trigger("input", { - isSetNumber: !0 - }) - } - setPlaceholderNumberType(Q) { - this.options.placeholderNumberType = Q, this._updatePlaceholder() - } - setDisabled(Q) { - this.telInput.disabled = Q, Q ? this.selectedCountry.setAttribute("disabled", "true") : this.selectedCountry.removeAttribute("disabled") - } - }, - Qe = Q => { - if (!ke.utils && !ke.startedLoadingUtilsScript) { - let te; - if (typeof Q == "function") try { - te = Promise.resolve(Q()) - } catch (_e) { - return Promise.reject(_e) - } else return Promise.reject(new TypeError(`The argument passed to attachUtils must be a function that returns a promise for the utilities module, not ${typeof Q}`)); - return ke.startedLoadingUtilsScript = !0, te.then(_e => { - const ne = _e == null ? void 0 : _e.default; - if (!ne || typeof ne != "object") throw new TypeError("The loader function passed to attachUtils did not resolve to a module object with utils as its default export."); - return ke.utils = ne, st("handleUtils"), !0 - }).catch(_e => { - throw st("rejectUtilsScriptPromise", _e), _e - }) - } - return null - }, - ke = Object.assign((Q, te) => { - const _e = new it(Q, te); - return _e._init(), Q.setAttribute("data-intl-tel-input-id", _e.id.toString()), ke.instances[_e.id] = _e, _e - }, { - defaults: Ne, - documentReady: () => document.readyState === "complete", - getCountryData: () => ye, - getInstance: Q => { - const te = Q.getAttribute("data-intl-tel-input-id"); - return te ? ke.instances[te] : null - }, - instances: {}, - attachUtils: Qe, - startedLoadingUtilsScript: !1, - startedLoadingAutoCountry: !1, - version: "25.3.2" - }), - vt = ke; - return $(W) - })(); - return l.default - }) - })(gf)), gf.exports -} -var dE = hE(); -const pE = nm(dE); -var fE = Ie('
        '), - mE = Ie(' '), - _E = Ie('

        ', 1), - gE = async (b, l, _) => { - await l(x(_)) - }, vE = Ie(' '), yE = (b, l) => { - oe(l, "") - }, xE = Ie('

        ', 1), bE = Ie('
        '); - -function wE(b, l) { - Sr(l, !0); - let _ = nt(!0), - C = nt(""), - L = nt(0), - F = nt(!1); - const T = lt(() => x(L) > 0 || x(F)); - let o = nt(!1), - $ = nt(""), - W = nt(void 0); - const ie = lt(() => { - var Re; - return `phone:${(Re=Dt.data)==null?void 0:Re.id}` - }); - Zr(() => { - const Re = localStorage.getItem(x(ie)); - Re && oe(C, Re, !0) - }), Ii(() => { - ni.getOtpCooldown().then(Oe => { - oe(L, Oe.cooldownMs, !0) - }).catch(Oe => { - qr.error(Oe.message) - }).finally(() => { - oe(_, !1) - }); - const Re = 1e3, - Ae = setInterval(() => { - oe(L, Math.max(0, x(L) - Re), !0) - }, Re); - return () => { - clearInterval(Ae) - } - }); - async function pe(Re) { - try { - oe(F, !0); - const Ae = await ni.sendOtp(Re); - qr.info(`${Y3()} ${Ae.phone}`), oe(C, Ae.phone, !0), oe(L, Ae.cooldownMs, !0), localStorage.setItem(x(ie), x(C)) - } catch (Ae) { - qr.error(Ae.message) - } finally { - oe(F, !1) - } - } - Zr(() => { - x($).length === 6 && (oe(o, !0), (async () => { - try { - await ni.verifyOtp(x($)), await Dt.refresh(), qr.success(eC()), localStorage.removeItem(x(ie)), l.onsuccess(x(C)) - } catch (Re) { - qr.error(Re.message) - } finally { - oe($, ""), oe(o, !1) - } - })()) - }); - var ye = bE(), - X = k(ye); - { - var Se = Re => { - var Ae = fE(); - H(Re, Ae) - }, - we = Re => { - var Ae = Jt(), - Oe = zt(Ae); - { - var Ee = ft => { - var ht = _E(), - Xe = zt(ht), - ct = k(Xe), - Je = k(ct, !0); - A(ct); - var Be = V(ct, 2), - st = k(Be, !0); - A(Be), A(Xe); - var it = V(Xe, 2), - Qe = k(it); - On(Qe, () => _e => (oe(W, pE(_e, { - strictMode: !0, - initialCountry: "br", - loadUtils: () => wx(() => import("../chunks/1FgtjJRR.js"), [], import.meta.url), - containerClass: "w-full", - dropdownContainer: document.body - })), () => { - var ne; - (ne = x(W)) == null || ne.destroy() - })); - var ke = V(Qe, 2), - vt = k(ke), - Q = V(vt); - { - var te = _e => { - var ne = mE(), - Pe = k(ne); - A(ne), Ge(Me => fe(Pe, `(${Me??""})`), [() => zd(x(L))]), H(_e, ne) - }; - Ue(Q, _e => { - x(L) > 0 && _e(te) - }) - } - A(ke), A(it), Ge((_e, ne, Pe) => { - fe(Je, _e), fe(st, ne), ke.disabled = x(T), fe(vt, `${Pe??""} `) - }, [() => kC(), () => LC(), () => BC()]), an("submit", it, async () => { - var ne; - if (x(T)) return; - if (!((ne = x(W)) != null && ne.isValidNumber())) { - qr.error(iC()); - return - } - const _e = x(W).getNumber(); - await pe(_e) - }), H(ft, ht) - }, - Ne = ft => { - var ht = xE(), - Xe = zt(ht), - ct = k(Xe), - Je = k(ct, !0); - A(ct); - var Be = V(ct, 2), - st = k(Be); - A(Be), A(Xe); - var it = V(Xe, 2), - Qe = k(it); - { - const Me = (at, We) => { - let Ct = () => We == null ? void 0 : We().cells; - var _t = Jt(), - xt = zt(_t); - _n(xt, () => sE, (tt, pt) => { - pt(tt, { - class: "border-primary", - children: (It, ut) => { - var bt = Jt(), - wt = zt(bt); - nn(wt, 16, Ct, dt => dt, (dt, Lt) => { - var Xt = Jt(), - Yt = zt(Xt); - _n(Yt, () => cE, (nr, ar) => { - ar(nr, { - get cell() { - return Lt - }, - class: "border-base-content/20 size-11 sm:size-12" - }) - }), H(dt, Xt) - }), H(It, bt) - }, - $$slots: { - default: !0 - } - }) - }), H(at, _t) - }; - _n(Qe, () => uE, (at, We) => { - We(at, { - maxlength: 6, - class: "mx-auto w-max", - get disabled() { - return x(o) - }, - get value() { - return x($) - }, - set value(Ct) { - oe($, Ct, !0) - }, - children: Me, - $$slots: { - default: !0 - } - }) - }) - } - A(it); - var ke = V(it, 2), - vt = k(ke); - vt.__click = [gE, pe, C]; - var Q = k(vt), - te = V(Q); - { - var _e = Me => { - var at = vE(), - We = k(at); - A(at), Ge(Ct => fe(We, `(${Ct??""})`), [() => zd(x(L))]), H(Me, at) - }; - Ue(te, Me => { - x(L) > 0 && Me(_e) - }) - } - A(vt); - var ne = V(vt, 2); - ne.__click = [yE, C]; - var Pe = k(ne, !0); - A(ne), A(ke), Ge((Me, at, We, Ct) => { - fe(Je, Me), fe(st, `${at??""} ${x(C)??""}`), vt.disabled = x(T), fe(Q, `${We??""} `), fe(Pe, Ct) - }, [() => NC(), () => VC(), () => $C(), () => WC()]), H(ft, ht) - }; - Ue(Oe, ft => { - x(C) ? ft(Ne, !1) : ft(Ee) - }, !0) - } - H(Re, Ae) - }; - Ue(X, Re => { - x(_) ? Re(Se) : Re(we, !1) - }) - } - A(ye), H(b, ye), Pr() -} -Wi(["click"]); -var TE = Ie(''); - -function CE(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - var C = TE(), - L = k(C), - F = V(k(L), 2); - { - var T = o => { - wE(o, { - onsuccess: () => _(!1) - }) - }; - Ue(F, o => { - _() && o(T) - }) - } - A(L), A(C), On(C, () => o => { - Zr(() => { - _() ? o.show() : o.close() - }) - }), an("close", C, () => _(!1)), H(b, C), Pr() -} -var SE = (b, l) => { - l() - }, - PE = Ie(''), - IE = Ie(''), - ME = (b, l, _) => { - l(x(_).id) - }, - AE = Ie(''), - kE = Ie(''), - EE = Ie('
        '), - zE = (b, l) => { - var _; - (_ = x(l)) == null || _.show() - }, - LE = (b, l) => { - l(!1) - }, - DE = (b, l) => { - var _; - (_ = x(l)) == null || _.close() - }, - RE = async (b, l) => { - try { - oe(l, !0), await ni.deleteMe(), qr.warning(vC()), await Dt.logout() - } catch (_) { - qr.error(_.message) - } finally { - oe(l, !1) - } - }, BE = Ie(' ', 1); - -function FE(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(zn(l.userData.name)), - L = nt(zn(l.userData.discord)), - F = nt(zn(l.userData.showLastPixel)), - T = nt(!1), - o = nt(void 0), - $ = nt(void 0); - Ii(() => { - const Ft = dr => { - dr.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", Ft), () => document.removeEventListener("keydown", Ft) - }); - let W = nt(void 0), - ie = nt(void 0); - Zr(() => { - oe(C, l.userData.name, !0), oe(F, l.userData.showLastPixel, !0) - }), Zr(() => { - _() && !x($) && ni.getMyProfilePictures().then(Ft => { - oe($, Ft, !0) - }).catch(Ft => { - qr.error(Ft.message) - }) - }); - let pe = nt(!1); - async function ye(Ft) { - try { - oe(pe, !0), await ni.changeProfilePicture(Ft), await Dt.refresh() - } finally { - oe(pe, !1) - } - } - var X = BE(), - Se = zt(X), - we = k(Se), - Re = V(k(we), 2), - Ae = k(Re, !0); - A(Re); - var Oe = V(Re, 2), - Ee = k(Oe), - Ne = k(Ee), - ft = k(Ne), - ht = k(ft); - es(ht, { - class: "size-30", - get userId() { - return l.userData.id - }, - get pictureUrl() { - return l.userData.picture - } - }); - var Xe = V(ht, 2), - ct = k(Xe); - Dg(ct, { - class: "size-5" - }), A(Xe), A(ft); - var Je = V(ft, 2); - { - var Be = Ft => { - var dr = EE(), - _r = k(dr), - Ir = k(_r, !0); - A(_r); - var jr = V(_r, 2), - ur = k(jr); - { - var Mr = kr => { - var Nr = IE(); - Nr.__click = [SE, ye]; - var ce = k(Nr); - es(ce, { - class: "size-10 border", - get userId() { - return l.userData.id - } - }); - var O = V(ce, 2); - { - var q = G => { - var K = PE(); - H(G, K) - }; - Ue(O, G => { - x(pe) && G(q) - }) - } - A(Nr), Ge(() => Nr.disabled = x(pe)), H(kr, Nr) - }; - Ue(ur, kr => { - l.userData.picture && kr(Mr) - }) - } - var Ar = V(ur, 2); - nn(Ar, 17, () => x($), kr => kr.id, (kr, Nr) => { - var ce = Jt(), - O = zt(ce); - { - var q = G => { - var K = kE(); - K.__click = [ME, ye, Nr]; - var le = k(K); - es(le, { - class: "size-10 border", - get userId() { - return l.userData.id - }, - get pictureUrl() { - return x(Nr).url - } - }); - var ve = V(le, 2); - { - var Le = Ce => { - var Ze = AE(); - H(Ce, Ze) - }; - Ue(ve, Ce => { - x(pe) && Ce(Le) - }) - } - A(K), Ge(() => K.disabled = x(pe)), H(G, K) - }; - Ue(O, G => { - l.userData.picture !== x(Nr).url && G(q) - }) - } - H(kr, ce) - }), A(jr), A(dr), Ge(kr => fe(Ir, kr), [() => qb()]), H(Ft, dr) - }; - Ue(Je, Ft => { - var dr; - (dr = x($)) != null && dr.length && Ft(Be) - }) - } - A(Ne); - var st = V(Ne, 2), - it = k(st); - { - let Ft = lt(() => xf()), - dr = lt(() => xf()); - Tf(it, { - get label() { - return x(Ft) - }, - get placeholder() { - return x(dr) - }, - min: 1, - max: 16, - get value() { - return x(C) - }, - set value(_r) { - oe(C, _r, !0) - }, - get validate() { - return x(W) - }, - set validate(_r) { - oe(W, _r, !0) - } - }) - } - var Qe = V(it, 2); - { - let Ft = lt(() => $w()); - Tf(Qe, { - label: "Discord", - get placeholder() { - return x(Ft) - }, - max: 32, - get value() { - return x(L) - }, - set value(dr) { - oe(L, dr, !0) - }, - get validate() { - return x(ie) - }, - set validate(dr) { - oe(ie, dr, !0) - } - }) - } - var ke = V(Qe, 2), - vt = k(ke); - ea(vt); - var Q = V(vt); - A(ke), A(st), A(Ee); - var te = V(Ee, 2), - _e = k(te); - _e.__click = [zE, o]; - var ne = k(_e, !0); - A(_e); - var Pe = V(_e, 2), - Me = k(Pe); - Me.__click = [LE, _]; - var at = k(Me, !0); - A(Me); - var We = V(Me, 2), - Ct = k(We, !0); - A(We), A(Pe), A(te), A(Oe), A(we), A(Se), On(Se, () => Ft => { - Zr(() => { - _() ? Ft.show() : Ft.close() - }) - }); - var _t = V(Se, 2), - xt = k(_t), - tt = V(k(xt), 2), - pt = k(tt, !0); - A(tt); - var It = V(tt, 2), - ut = k(It, !0); - A(It); - var bt = V(It, 2), - wt = k(bt); - wt.__click = [DE, o]; - var dt = k(wt, !0); - A(wt); - var Lt = V(wt, 2); - Lt.__click = [RE, T]; - var Xt = k(Lt, !0); - A(Lt), A(bt), A(xt); - var Yt = V(xt, 2), - nr = k(Yt), - ar = k(nr, !0); - A(nr), A(Yt), A(_t), ps(_t, Ft => oe(o, Ft), () => x(o)), Ge((Ft, dr, _r, Ir, jr, ur, Mr, Ar, kr, Nr, ce) => { - fe(Ae, Ft), zr(Xe, "data-tip", dr), fe(Q, ` ${_r??""}`), fe(ne, Ir), Me.disabled = x(T), fe(at, jr), We.disabled = x(T), fe(Ct, ur), fe(pt, Mr), fe(ut, Ar), fe(dt, kr), Lt.disabled = x(T), fe(Xt, Nr), fe(ar, ce) - }, [() => YC(), () => px(), () => Zb(), () => ug(), () => tc(), () => Xb(), () => Jb(), () => t2(), () => qd(), () => ug(), () => tc()]), an("close", Se, () => _(!1)), an("submit", Oe, async () => { - var Ft, dr; - try { - if (!((Ft = x(W)) != null && Ft()) || !((dr = x(ie)) != null && dr())) return; - oe(T, !0), await ni.updateMe({ - name: x(C), - showLastPixel: x(F), - discord: x(L) - }), Dt.refresh(), qr.success(mC()), _(!1) - } catch (_r) { - qr.error(_r.message) - } finally { - oe(T, !1) - } - }), fx(vt, () => x(F), Ft => oe(F, Ft)), H(b, X), Pr() -} -Wi(["click"]); -var OE = Tr(''); - -function NE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = OE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var jE = Tr(''); - -function Dv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = jE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var qE = Tr(''); - -function VE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = qE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var UE = Tr(''); - -function ZE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = UE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - "xmlns:xlink": "http://www.w3.org/1999/xlink", - viewBox: "0 0 216 216", - ..._ - }), void 0, void 0, "svelte-1977t4s"), H(b, C) -} -var $E = Tr(''); - -function GE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = $E(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var HE = Tr(''); - -function WE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = HE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var XE = Tr(''); - -function KE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = XE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var YE = Tr(''); - -function JE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = YE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var QE = (b, l) => { - oe(l, !0) - }, - e8 = Ie(' '), - t8 = Ie('
        '), - r8 = (b, l, _) => { - localStorage.setItem(_x, x(l).key), oe(_, x(l).key, !0), location.reload() - }, - i8 = Ie(''), - n8 = Ie("
      • "), - a8 = async (b, l) => { - var _; - try { - const C = await ((_ = x(l)) == null ? void 0 : _.prompt()); - (C == null ? void 0 : C.outcome) === "accepted" && oe(l, void 0) - } catch (C) { - qr.error(Pb({ - error: C.message - })) - } - }, s8 = Ie(''), o8 = Ie(' '), l8 = Ie('
        '), c8 = async (b, l, _, C) => { - var L; - try { - oe(l, !0), await _.user.logout(), C(), qr.warning(bC(), { - icon: Dv - }), (L = _.onlogout) == null || L.call(_) - } catch { - qr.error(CC()) - } finally { - oe(l, !1) - } - }, u8 = Ie(' ', 1); - -function h8(b, l) { - Sr(l, !0); - let _ = nt(!1), - C = nt(!1); - - function L() { - var pe; - (pe = document.activeElement) == null || pe.blur() - } - const F = [{ - label: "🇺🇸 English", - key: "en" - }, { - label: "🇨🇳 中文", - key: "zh" - }]; - let T = nt(""), - o = nt(void 0); - var $ = Jt(), - W = zt($); - { - var ie = pe => { - var ye = u8(), - X = zt(ye), - Se = k(X), - we = k(Se); - Bg(we, { - get userId() { - return l.user.data.id - }, - get level() { - return l.user.data.level - }, - get pictureUrl() { - return l.user.data.picture - } - }), A(Se); - var Re = V(Se, 2), - Ae = k(Re); - Ae.__click = L; - var Oe = k(Ae); - fc(Oe, { - class: "size-5" - }), A(Ae); - var Ee = V(Ae, 2), - Ne = k(Ee), - ft = k(Ne); - es(ft, { - get userId() { - return l.user.data.id - }, - get pictureUrl() { - return l.user.data.picture - } - }); - var ht = V(ft, 2); - ht.__click = [QE, _]; - var Xe = k(ht); - Cf(Xe, { - class: "size-4" - }), A(ht), A(Ne); - var ct = V(Ne, 2), - Je = k(ct), - Be = k(Je), - st = k(Be, !0); - A(Be); - var it = V(Be, 2), - Qe = k(it); - A(it); - var ke = V(it, 2); - { - var vt = At => { - const Pt = lt(() => ds(l.user.data.equippedFlag)); - var kt = e8(), - Wt = k(kt, !0); - A(kt), Ge(() => { - zr(kt, "data-tip", x(Pt).name), fe(Wt, x(Pt).flag) - }), H(At, kt) - }; - Ue(ke, At => { - l.user.data.equippedFlag && At(vt) - }) - } - var Q = V(ke, 2); - { - var te = At => { - var Pt = t8(), - kt = k(Pt); - ph(kt, { - get username() { - return l.user.data.discord - } - }), A(Pt), H(At, Pt) - }; - Ue(Q, At => { - l.user.data.discord && At(te) - }) - } - A(Je); - var _e = V(Je, 2), - ne = k(_e); - fh(ne, { - class: "inline size-4" - }); - var Pe = V(ne, 2), - Me = k(Pe), - at = V(Me), - We = k(at, !0); - A(at), A(Pe), A(_e); - var Ct = V(_e, 2), - _t = k(Ct); - NE(_t, { - class: "inline size-4" - }); - var xt = V(_t, 2), - tt = k(xt), - pt = k(tt); - A(tt); - var It = V(tt), - ut = V(It), - bt = k(ut); - $f(bt, { - class: "mb-0.5 inline size-4 opacity-50" - }), A(ut), A(xt), A(Ct), A(ct), A(Ee); - var wt = V(Ee, 2), - dt = k(wt), - Lt = k(dt), - Xt = k(Lt, !0); - A(Lt); - var Yt = V(Lt, 2), - nr = k(Yt), - ar = k(nr), - Ft = k(ar); - WE(Ft, { - class: "size-4" - }), A(ar); - var dr = V(ar, 2); - nn(dr, 21, () => F, Zd, (At, Pt) => { - const kt = lt(() => x(T) === x(Pt).key); - var Wt = n8(), - Lr = k(Wt); - let Kr; - Lr.__click = [r8, Pt, T]; - var Hr = k(Lr); - { - var $r = gr => { - var ai = i8(); - H(gr, ai) - }; - Ue(Hr, gr => { - x(kt) && gr($r) - }) - } - var mr = V(Hr); - A(Lr), A(Wt), Ge(gr => { - Kr = Or(Lr, 1, "font-flag relative font-medium", null, Kr, gr), fe(mr, ` ${x(Pt).label??""}`) - }, [() => ({ - "bg-base-200": x(kt) - })]), H(At, Wt) - }), A(dr), A(nr); - var _r = V(nr, 2), - Ir = k(_r); - Ir.__click = () => { - oa.muted = !oa.muted - }; - var jr = k(Ir); - { - var ur = At => { - KE(At, { - class: "size-4" - }) - }, - Mr = At => { - JE(At, { - class: "size-4" - }) - }; - Ue(jr, At => { - oa.muted ? At(ur) : At(Mr, !1) - }) - } - A(Ir), A(_r), A(Yt), A(dt); - var Ar = V(dt, 2); - { - var kr = At => { - var Pt = s8(); - Pt.__click = [a8, o]; - var kt = k(Pt); - sv(kt, { - class: "size-5" - }); - var Wt = V(kt); - A(Pt), Ge(Lr => fe(Wt, ` ${Lr??""}`), [() => Ab()]), H(At, Pt) - }; - Ue(Ar, At => { - x(o) && At(kr) - }) - } - var Nr = V(Ar, 2); - { - var ce = At => { - var Pt = o8(), - kt = k(Pt); - GE(kt, { - class: "size-5" - }); - var Wt = V(kt); - A(Pt), Ge(Lr => { - zr(Pt, "href", `${La.url.origin??""}/admin`), fe(Wt, ` ${Lr??""}`) - }, [() => JS()]), H(At, Pt) - }; - Ue(Nr, At => { - var Pt; - (Pt = l.user.data) != null && Pt.role && l.user.data.role !== "user" && At(ce) - }) - } - var O = V(Nr, 2), - q = k(O); - jg(q, { - class: "size-5" - }); - var G = V(q); - A(O); - var K = V(O, 2), - le = k(K); - am(le, { - class: "size-5" - }), fi(), A(K); - var ve = V(K, 2), - Le = k(ve); - ZE(Le, { - class: "size-5" - }), fi(), A(ve); - var Ce = V(ve, 2); - { - var Ze = At => { - var Pt = l8(), - kt = k(Pt), - Wt = k(kt); - VE(Wt, { - class: "size-5" - }), fi(), A(kt), A(Pt), Ge(() => zr(Pt, "action", `${Cd}/payment/create-portal-session`)), H(At, Pt) - }; - Ue(Ce, At => { - var Pt; - (Pt = l.user.data) != null && Pt.isCustomer && At(Ze) - }) - } - var ot = V(Ce, 2); - ot.__click = [c8, C, l, L]; - var Ye = k(ot); - Dv(Ye, { - class: "size-5" - }); - var Ot = V(Ye); - A(ot), A(wt), A(Re), A(X); - var xe = V(X, 2); - FE(xe, { - get userData() { - return l.user.data - }, - get open() { - return x(_) - }, - set open(At) { - oe(_, At, !0) - } - }), Ge((At, Pt, kt, Wt, Lr, Kr, Hr, $r, mr, gr, ai) => { - zr(Se, "title", At), zr(Be, "title", l.user.data.name), fe(st, l.user.data.name), Or(it, 1, Pt), fe(Qe, `#${l.user.data.id??""}`), fe(Me, `${kt??""}: `), fe(We, Wt), fe(pt, Text9() + ` ${Lr??""}`), fe(It, ` (${Kr??""}%) `), zr(ut, "data-tip", Hr), fe(Xt, $r), zr(_r, "data-tip", mr), fe(G, ` ${gr??""}`), ot.disabled = x(C), fe(Ot, ` ${ai??""}`) - }, [() => xb(), () => Vo(Zn(l.user.data.id)), () => Xf(), () => l.user.data.pixelsPainted.toLocaleString("en-US"), () => Math.floor(l.user.data.level), () => Math.floor(l.user.data.level % 1 * 100), () => jw(), () => Tb(), () => oa.muted ? L3() : k3(), () => zb(), () => Rb()]), an("focus", Se, () => { - oe(o, window.pwaInstallPrompt, !0) - }), H(pe, ye) - }; - Ue(W, pe => { - l.user.data && l.user.charges !== void 0 && pe(ie) - }) - } - H(b, $), Pr() -} -Wi(["click"]); -var d8 = Tr(''); - -function p8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = d8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var f8 = Tr(''); - -function m8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = f8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var _8 = async (b, l, _, C, L, F) => { - if (x(l)) { - _.map.easeTo(x(l)), oe(l, void 0); - return - } - oe(C, !0); - try { - Qa(_.map.getCenter(), _.map.getZoom()); - const T = new hc(x(L)), - { - tile: o, - pixel: $ - } = await ni.getRandomTile(_.season), - W = o.x * x(L) + $.x, - ie = o.y * x(L) + $.y, - [pe, ye] = T.pixelsToLatLon(W, ie, x(F)), - X = { - lat: pe, - lng: ye - }, - Se = x(F) + 2; - oe(l, { - zoom: Se, - center: X - }, !0), _.map.flyTo(x(l)), Ho.isEmpty() && Ho.push({ - pos: _.map.getCenter(), - zoom: _.map.getZoom() - }), setTimeout(() => { - oe(l, void 0) - }, 2500), Ho.push({ - pos: X, - zoom: Se - }) - } catch (T) { - qr.error(T.message) - } finally { - oe(C, !1) - } -}, g8 = Ie(''); - -function v8(b, l) { - Sr(l, !0); - const _ = lt(() => $n.seasons[l.season].tileSize), - C = lt(() => $n.seasons[l.season].zoom); - let L = nt(!1), - F = nt(void 0); - var T = g8(); - T.__click = [_8, F, l, L, _, C]; - var o = k(T); - { - var $ = ie => { - m8(ie, { - class: "size-5" - }) - }, - W = ie => { - p8(ie, { - class: "size-5" - }) - }; - Ue(o, ie => { - x(F) ? ie(W, !1) : ie($) - }) - } - A(T), Ge(ie => { - zr(T, "title", ie), T.disabled = x(L) - }, [() => W1()]), H(b, T), Pr() -} -Wi(["click"]); -var y8 = Ie(''), - x8 = Ie('
        '), - b8 = Ie(' '), - w8 = Ie(" "), - T8 = Ie('
        '), - C8 = Ie('

        '), - S8 = Ie(' '), - P8 = Ie('

        '), - I8 = Ie('
        '), - M8 = Ie('
        ', 1); - -function A8(b, l) { - Sr(l, !0); - const _ = []; - let C = nt("today"), - L = { - players: { - label: Xg(), - icon: Xd - }, - alliances: { - label: Kg(), - icon: Kd - } - }, - F = nt("players"), - T = zn({ - players: {}, - alliances: {} - }); - const o = lt(() => T[x(F)][x(C)]); - Zr(() => { - if (x(o)) return; - const we = x(C), - Re = x(F); - Re === "players" ? ni.leaderboardRegionPlayers(l.regionId, we).then(Ae => { - T[Re][we] = Ae - }).catch(Ae => { - qr.error(Ae.message) - }) : Re === "alliances" && ni.leaderboardRegionAlliances(l.regionId, we).then(Ae => { - T[Re][we] = Ae - }).catch(Ae => { - qr.error(Ae.message) - }) - }); - var $ = M8(), - W = zt($); - nn(W, 21, () => Object.entries(L), ([we, { - label: Re, - icon: Ae - }]) => we, (we, Re) => { - var Ae = lt(() => Ag(x(Re), 2)); - let Oe = () => x(Ae)[0], - Ee = () => x(Ae)[1].label, - Ne = () => x(Ae)[1].icon; - const ft = lt(Ne); - var ht = y8(), - Xe = k(ht); - ea(Xe); - var ct, Je = V(Xe, 2); - _n(Je, () => x(ft), (st, it) => { - it(st, { - get this() { - return Ne() - }, - class: "mr-1 size-5 max-sm:hidden" - }) - }); - var Be = V(Je); - A(ht), Ge(() => { - zr(Xe, "aria-label", Ee()), ct !== (ct = Oe()) && (Xe.value = (Xe.__value = Oe()) ?? ""), fe(Be, ` ${Ee()??""}`) - }), Vd(_, [], Xe, () => (Oe(), x(F)), st => oe(F, st)), H(we, ht) - }), A(W); - var ie = V(W, 2), - pe = k(ie); - sm(pe, { - get value() { - return x(C) - }, - set value(we) { - oe(C, we, !0) - } - }), A(ie); - var ye = V(ie, 2); - { - var X = we => { - var Re = x8(), - Ae = k(Re), - Oe = V(Ae); - { - var Ee = ft => { - var ht = Fn(); - Ge(Xe => fe(ht, Xe), [() => Wd().toLowerCase()]), H(ft, ht) - }, - Ne = ft => { - var ht = Jt(), - Xe = zt(ht); - { - var ct = Be => { - var st = Fn(); - Ge(it => fe(st, it), [() => Qf()]), H(Be, st) - }, - Je = Be => { - var st = Jt(), - it = zt(st); - { - var Qe = ke => { - var vt = Fn(); - Ge(Q => fe(vt, Q), [() => em()]), H(ke, vt) - }; - Ue(it, ke => { - x(C) === "month" && ke(Qe) - }, !0) - } - H(Be, st) - }; - Ue(Xe, Be => { - x(C) === "week" ? Be(ct) : Be(Je, !1) - }, !0) - } - H(ft, ht) - }; - Ue(Oe, ft => { - x(C) === "today" ? ft(Ee) : ft(Ne, !1) - }) - } - A(Re), Ge(ft => fe(Ae, `${ft??""} `), [() => Jf()]), H(we, Re) - }, - Se = we => { - var Re = Jt(), - Ae = zt(Re); - { - var Oe = Ne => { - var ft = Jt(), - ht = zt(ft); - { - var Xe = Je => { - const Be = lt(() => x(o)); - var st = C8(), - it = k(st), - Qe = k(it), - ke = V(k(Qe)), - vt = k(ke, !0); - A(ke); - var Q = V(ke), - te = k(Q), - _e = V(te, 2, !0); - A(Q), A(Qe), A(it); - var ne = V(it); - nn(ne, 31, () => x(Be), Pe => Pe.id, (Pe, Me, at) => { - const We = lt(() => { - var ur; - return ((ur = Dt.data) == null ? void 0 : ur.id) === x(Me).id - }); - var Ct = T8(); - let _t; - var xt = k(Ct), - tt = k(xt, !0); - A(xt); - var pt = V(xt), - It = k(pt), - ut = k(It); - es(ut, { - class: "size-10 border", - get userId() { - return x(Me).id - }, - get pictureUrl() { - return x(Me).picture - } - }); - var bt = V(ut, 2), - wt = k(bt), - dt = k(wt), - Lt = V(dt), - Xt = k(Lt); - A(Lt), A(wt); - var Yt = V(wt, 2); - { - var nr = ur => { - const Mr = lt(() => ds(x(Me).equippedFlag)); - var Ar = b8(), - kr = k(Ar, !0); - A(Ar), Ge(() => { - zr(Ar, "data-tip", x(Mr).name), fe(kr, x(Mr).flag) - }), H(ur, Ar) - }; - Ue(Yt, ur => { - "equippedFlag" in x(Me) && x(Me).equippedFlag && ur(nr) - }) - } - var ar = V(Yt, 2); - { - var Ft = ur => { - ph(ur, { - get username() { - return x(Me).discord - } - }) - }; - Ue(ar, ur => { - x(Me).discord && ur(Ft) - }) - } - var dr = V(ar, 2); - { - var _r = ur => { - var Mr = w8(), - Ar = k(Mr, !0); - A(Mr), Ge((kr, Nr) => { - Or(Mr, 1, `badge badge-sm ml-0.5 border-0 ${kr??""} ${Nr??""}`), fe(Ar, x(Me).allianceName) - }, [() => Kf(x(Me).allianceId), () => Zn(x(Me).allianceId)]), H(ur, Mr) - }; - Ue(dr, ur => { - "allianceName" in x(Me) && x(Me).allianceName && ur(_r) - }) - } - A(bt), A(It), A(pt); - var Ir = V(pt), - jr = k(Ir, !0); - A(Ir), A(Ct), Ge((ur, Mr, Ar) => { - _t = Or(Ct, 1, "", null, _t, ur), fe(tt, x(at) + 1), Or(wt, 1, `font-semibold max-sm:ml-2 ${Mr??""} flex gap-1`), fe(dt, `${x(Me).name??""} `), fe(Xt, `#${x(Me).id??""}`), fe(jr, Ar) - }, [() => ({ - "bg-base-200": x(We) - }), () => Zn(x(Me).id), () => x(Me).pixelsPainted.toLocaleString("en-US")]), Zo(Ct, () => $o, () => ({ - duration: 200 - })), H(Pe, Ct) - }), A(ne), A(st), Ge((Pe, Me, at) => { - fe(vt, Pe), fe(te, `${Me??""} `), fe(_e, at) - }, [() => tm(), () => Ql(), () => ec().toLowerCase()]), H(Je, st) - }, - ct = Je => { - var Be = Jt(), - st = zt(Be); - { - var it = Qe => { - var ke = P8(), - vt = k(ke), - Q = k(vt), - te = V(k(Q)), - _e = k(te, !0); - A(te); - var ne = V(te), - Pe = k(ne), - Me = V(Pe, 2, !0); - A(ne), A(Q), A(vt); - var at = V(vt); - nn(at, 31, () => x(o), We => We.id, (We, Ct, _t) => { - const xt = lt(() => { - var Yt; - return ((Yt = Dt.data) == null ? void 0 : Yt.allianceId) === x(Ct).id - }); - var tt = S8(); - let pt; - var It = k(tt), - ut = k(It, !0); - A(It); - var bt = V(It), - wt = k(bt), - dt = k(wt, !0); - A(wt), A(bt); - var Lt = V(bt), - Xt = k(Lt, !0); - A(Lt), A(tt), Ge((Yt, nr, ar) => { - pt = Or(tt, 1, "", null, pt, Yt), fe(ut, x(_t) + 1), Or(wt, 1, `font-semibold ${nr??""}`), fe(dt, x(Ct).name), fe(Xt, ar) - }, [() => ({ - "bg-base-200": x(xt) - }), () => Zn(x(Ct).id), () => x(Ct).pixelsPainted.toLocaleString("en-US")]), Zo(tt, () => $o, () => ({ - duration: 200 - })), H(We, tt) - }), A(at), A(ke), Ge((We, Ct, _t) => { - fe(_e, We), fe(Pe, `${Ct??""} `), fe(Me, _t) - }, [() => Gd(), () => Ql(), () => ec().toLowerCase()]), H(Qe, ke) - }; - Ue(st, Qe => { - x(F) === "alliances" && Qe(it) - }, !0) - } - H(Je, Be) - }; - Ue(ht, Je => { - x(F) === "players" ? Je(Xe) : Je(ct, !1) - }) - } - H(Ne, ft) - }, - Ee = Ne => { - var ft = I8(); - H(Ne, ft) - }; - Ue(Ae, Ne => { - x(o) ? Ne(Oe) : Ne(Ee, !1) - }, !0) - } - H(we, Re) - }; - Ue(ye, we => { - x(o) && x(o).length === 0 ? we(X) : we(Se, !1) - }) - } - H(b, $), Pr() -} -var k8 = Ie('
        '), - E8 = Ie(' '); - -function z8(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - const C = lt(() => ds(l.region.countryId)); - Ii(() => { - const we = Re => { - Re.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", we), () => document.removeEventListener("keydown", we) - }); - var L = E8(), - F = k(L), - T = V(k(F), 2), - o = k(T), - $ = k(o, !0); - A(o); - var W = V(o, 2), - ie = k(W, !0); - A(W); - var pe = V(W, 2), - ye = k(pe); - A(pe), A(T); - var X = V(T, 2); - { - var Se = we => { - var Re = k8(), - Ae = k(Re); - A8(Ae, { - get regionId() { - return l.region.id - } - }), A(Re), En(2, Re, () => Qn, () => ({ - duration: 300 - })), H(we, Re) - }; - Ue(X, we => { - _() && we(Se) - }) - } - A(F), fi(2), A(L), On(L, () => we => { - Zr(() => { - _() ? we.show() : we.close() - }) - }), Ge(we => { - Or(T, 1, `flex gap-2 text-xl font-bold sm:text-2xl ${we??""}`), zr(o, "data-tip", x(C).name), fe($, x(C).flag), fe(ie, l.region.name), fe(ye, ``) - }, [() => Zn(l.region.cityId)]), an("close", L, () => _(!1)), H(b, L), Pr() -} -var L8 = Tr(''); - -function D8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = L8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var R8 = Tr(''); - -function B8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = R8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var F8 = Tr(''), - O8 = Tr(''); - -function N8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = F8(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = O8(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var j8 = (b, l, _, C, L) => { - if (x(l) && x(_)) { - const F = x(l) - x(_).clientHeight, - T = x(l) / 2 - F / 2; - C.map.flyTo({ - center: { - lat: x(L).center[0], - lng: x(L).center[1] - }, - zoom: 17.5, - offset: [0, -T] - }) - } - }, - q8 = (b, l, _) => l.onclickregion(x(_)), - V8 = Ie(''), - U8 = Ie('
        '), - Z8 = Ie('
        '), - $8 = Ie(' '), - G8 = Ie(" "), - H8 = (b, l) => { - l("report-user") - }, - W8 = Ie("
      • "), - X8 = (b, l) => { - l("timeout") - }, - K8 = Ie("
      • "), - Y8 = (b, l) => { - l("ban") - }, - J8 = Ie("
      • "), - Q8 = async (b, l, _, C, L, F) => { - oe(l, !0); - try { - await ni.banAllianceUser(x(_).id), await C({ - ...x(L), - season: F.season - }) - } catch (T) { - qr.error(T.message) - } finally { - oe(l, !1) - } - }, ez = Ie('
      • '), tz = Ie(''), rz = Ie('
        '), iz = (b, l) => l.onclickpaint(l.latLon), nz = async (b, l, _, C) => { - try { - oe(l, !0), x(_) ? (await ni.deleteFavoriteLocation(x(_).id), qr.warning(sC())) : (await ni.favoriteLocation(x(C).center), qr.success(cC())), pa.smallPlop.play(), Dt.refresh() - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } - }, az = Ie(""), sz = (b, l, _) => l.onclickshare(OP(La.url, { - pos: { - lat: x(_).center[0], - lng: x(_).center[1] - }, - zoom: l.zoom - })), oz = Ie('

        '); - -function lz(b, l) { - Sr(l, !0); - let _ = nt(void 0); - const C = lt(() => new hc(l.tileSize)); - let L = nt(void 0), - F = nt(void 0), - T = nt(!1), - o = nt(!1); - const $ = lt(() => { - var tt, pt, It; - return !!((pt = (tt = x(_)) == null ? void 0 : tt.paintedBy) != null && pt.id) && ((It = Dt.data) == null ? void 0 : It.id) === x(_).paintedBy.id - }), - W = lt(() => { - const [tt, pt] = l.latLon ?? [0, 0], It = x(C).latLonToPixelBoundsLatLon(tt, pt, l.pixelArtZoom), ut = im(It), { - tile: bt, - pixel: wt - } = x(C).latLonToTileAndPixel(tt, pt, l.pixelArtZoom), dt = x(C).latLonToRegionAndPixel(tt, pt, l.pixelArtZoom); - return { - bounds: It, - center: ut, - tile: bt, - pixel: wt, - regionPixel: dt.pixel - } - }); - Zr(() => { - pa.plop.play(), l.crosshair.clearAndPlace(l.latLon) - }); - let ie = 0; - const pe = ({ - pixel: tt, - tile: pt, - season: It - }) => `s${It}:p(${tt[0]},${tt[1]}):t(${pt[0]},${pt[1]})`; - let ye; - dc(() => [x(W), l.season], () => { - const tt = { - ...x(W), - season: l.season - }, - pt = pe(tt); - if (oe(_, l.pixelInfoCache.get(pt), !0), x(_) !== void 0) return; - l.pixelInfoCache.size === 0 && (ie = 0), ie++, ie > 6 ? (clearTimeout(ye), ye = setTimeout(async () => X(tt), 500)) : X(tt) - }); - async function X(tt) { - const pt = await ni.getPixelInfo(tt); - if (pt.paintedBy !== void 0) { - const ut = pe(tt); - l.pixelInfoCache.set(ut, pt) - } - const It = pe({ - ...x(W), - season: l.season - }); - return oe(_, l.pixelInfoCache.get(It), !0), pt - } - - function Se() { - l.crosshair.clear(), pa.smallPlop.play(), l.onclose() - } - Ii(() => { - const tt = pt => { - pt.key === "Escape" && Se() - }; - return document.addEventListener("keydown", tt), () => document.removeEventListener("keydown", tt) - }); - const we = lt(() => { - var bt, wt, dt, Lt, Xt, Yt, nr; - const tt = [], - pt = (wt = (bt = Dt) == null ? void 0 : bt.data) == null ? void 0 : wt.role; - Cu(pt, ["admin"]) && !x($) && tt.push("ban-user"), Cu(pt, ["admin", "global_moderator", "moderator"]) && !x($) && tt.push("timeout-user"), ((((Lt = (dt = Dt) == null ? void 0 : dt.data) == null ? void 0 : Lt.id) ?? Number.MAX_SAFE_INTEGER) <= 3e6 || Cu(pt, ["admin", "moderator", "global_moderator"])) && !x($) && tt.push("report-user"); - const ut = (Xt = x(_)) == null ? void 0 : Xt.paintedBy; - return (ut == null ? void 0 : ut.allianceId) === ((Yt = Dt.data) == null ? void 0 : Yt.allianceId) && ((nr = Dt.data) == null ? void 0 : nr.allianceRole) === "admin" && Dt.data.id !== (ut == null ? void 0 : ut.id) && !x($) && tt.push("ban-alliance"), tt - }); - - function Re(tt) { - const pt = (async () => await av(l.map, { - maxHeight: 1080, - maxWidth: 1080, - quality: .8, - type: "image/jpeg" - }))(); - l.onclickmodaction(x(_), pt, l.latLon, tt) - } - var Ae = oz(), - Oe = k(Ae), - Ee = k(Oe), - Ne = k(Ee); - Ne.__click = [j8, L, F, l, W]; - var ft = k(Ne); - Wf(ft, { - class: "fill-primary size-5" - }), A(Ne); - var ht = V(Ne, 2), - Xe = k(ht), - ct = k(Xe); - A(Xe); - var Je = V(Xe, 2); - { - var Be = tt => { - const pt = lt(() => x(_).region), - It = lt(() => ds(x(pt).countryId)); - var ut = V8(); - ut.__click = [q8, l, pt]; - var bt = k(ut), - wt = k(bt, !0); - A(bt); - var dt = V(bt, 2), - Lt = k(dt, !0); - A(dt); - var Xt = V(dt, 2), - Yt = k(Xt); - A(Xt), A(ut), Ge(nr => { - Or(ut, 1, `btn btn-xs flex gap-1 py-3 text-sm max-sm:max-w-32 ${nr??""}`), zr(bt, "data-tip", x(It).name), fe(wt, x(It).flag), fe(Lt, x(pt).name), fe(Yt, ``) - }, [() => Zn(x(pt).cityId)]), H(tt, ut) - }, - st = tt => { - var pt = U8(); - H(tt, pt) - }; - Ue(Je, tt => { - var pt; - (pt = x(_)) != null && pt.region ? tt(Be) : tt(st, !1) - }) - } - A(ht), A(Ee); - var it = V(Ee, 2); - it.__click = Se; - var Qe = k(it); - fc(Qe, { - class: "size-4" - }), A(it), A(Oe); - var ke = V(Oe, 2), - vt = k(ke); - { - var Q = tt => { - var pt = Z8(); - H(tt, pt) - }, - te = tt => { - var pt = Jt(), - It = zt(pt); - { - var ut = wt => { - var dt = Fn(); - Ge(Lt => fe(dt, Lt), [() => d3()]), H(wt, dt) - }, - bt = wt => { - const dt = lt(() => x(_).paintedBy); - var Lt = rz(), - Xt = k(Lt), - Yt = k(Xt); - A(Xt); - var nr = V(Xt, 2), - ar = k(nr); - es(ar, { - class: "size-5 border-0", - get userId() { - return x(dt).id - }, - get pictureUrl() { - return x(dt).picture - } - }), A(nr); - var Ft = V(nr, 2), - dr = k(Ft), - _r = k(dr), - Ir = k(_r, !0); - A(_r); - var jr = V(_r, 2), - ur = k(jr); - A(jr), A(dr); - var Mr = V(dr, 2); - { - var Ar = K => { - const le = lt(() => ds(x(dt).equippedFlag)); - var ve = $8(), - Le = k(ve, !0); - A(ve), Ge(() => { - zr(ve, "data-tip", x(le).name), fe(Le, x(le).flag) - }), H(K, ve) - }; - Ue(Mr, K => { - x(dt).equippedFlag && K(Ar) - }) - } - var kr = V(Mr, 2); - { - var Nr = K => { - ph(K, { - get username() { - return x(dt).discord - } - }) - }; - Ue(kr, K => { - x(dt).discord && K(Nr) - }) - } - var ce = V(kr, 2); - { - var O = K => { - var le = G8(), - ve = k(le, !0); - A(le), Ge((Le, Ce) => { - Or(le, 1, `badge badge-sm ml-0.5 border-0 ${Le??""} ${Ce??""}`), fe(ve, x(dt).allianceName) - }, [() => Kf(x(dt).allianceId), () => Zn(x(dt).allianceId)]), H(K, le) - }; - Ue(ce, K => { - x(dt).allianceId && K(O) - }) - } - A(Ft); - var q = V(Ft, 2); - { - var G = K => { - var le = tz(), - ve = k(le), - Le = k(ve); - om(Le, { - class: "size-4" - }), A(ve); - var Ce = V(ve, 2); - nn(Ce, 21, () => x(we), Zd, (Ze, ot) => { - var Ye = Jt(), - Ot = zt(Ye); - { - var xe = Pt => { - var kt = W8(), - Wt = k(kt); - let Lr; - Wt.__click = [H8, Re]; - var Kr = k(Wt); - B8(Kr, { - class: "size-5" - }); - var Hr = V(Kr); - A(Wt), A(kt), Ge(($r, mr) => { - Lr = Or(Wt, 1, "text-error py-2 font-medium", null, Lr, $r), fe(Hr, ` ${mr??""}`) - }, [() => ({ - "cursor-not-allowed": x($) - }), () => Yg()]), H(Pt, kt) - }, - At = Pt => { - var kt = Jt(), - Wt = zt(kt); - { - var Lr = Hr => { - var $r = K8(), - mr = k($r); - let gr; - mr.__click = [X8, Re]; - var ai = k(mr); - Eg(ai, { - class: "size-5" - }); - var Tt = V(ai); - A(mr), A($r), Ge((Ci, di) => { - gr = Or(mr, 1, "text-error font-medium", null, gr, Ci), fe(Tt, ` ${di??""}`) - }, [() => ({ - "cursor-not-allowed": x($) - }), () => Qg()]), H(Hr, $r) - }, - Kr = Hr => { - var $r = Jt(), - mr = zt($r); - { - var gr = Tt => { - var Ci = J8(), - di = k(Ci); - let Pn; - di.__click = [Y8, Re]; - var Mt = k(di); - Gy(Mt, { - class: "size-5" - }); - var Ke = V(Mt); - A(di), A(Ci), Ge((jt, Gt) => { - Pn = Or(di, 1, "text-error font-medium", null, Pn, jt), fe(Ke, ` ${Gt??""}`) - }, [() => ({ - "cursor-not-allowed": x($) - }), () => Jg()]), H(Tt, Ci) - }, - ai = Tt => { - var Ci = Jt(), - di = zt(Ci); - { - var Pn = Mt => { - var Ke = ez(), - jt = k(Ke); - jt.__click = [Q8, o, dt, X, W, l]; - var Gt = k(jt); - D8(Gt, { - class: "size-5" - }); - var Dr = V(Gt); - A(jt), A(Ke), Ge(Gr => fe(Dr, ` ${Gr??""}`), [() => Wg()]), H(Mt, Ke) - }; - Ue(di, Mt => { - x(ot) === "ban-alliance" && Mt(Pn) - }, !0) - } - H(Tt, Ci) - }; - Ue(mr, Tt => { - x(ot) === "ban-user" ? Tt(gr) : Tt(ai, !1) - }, !0) - } - H(Hr, $r) - }; - Ue(Wt, Hr => { - x(ot) === "timeout-user" ? Hr(Lr) : Hr(Kr, !1) - }, !0) - } - H(Pt, kt) - }; - Ue(Ot, Pt => { - x(ot) === "report-user" ? Pt(xe) : Pt(At, !1) - }) - } - H(Ze, Ye) - }), A(Ce), A(le), H(K, le) - }; - Ue(q, K => { - x(we).length > 0 && K(G) - }) - } - A(Lt), Ge((K, le) => { - var ve; - fe(Yt, `${K??""}:`), Or(dr, 1, `font-medium ${le??""} flex gap-1.5`), fe(Ir, ((ve = Dt.data) == null ? void 0 : ve.id) === x(dt).id ? Dt.data.name : x(dt).name), fe(ur, `#${x(dt).id??""}`) - }, [() => m3(), () => Zn(x(dt).id)]), H(wt, Lt) - }; - Ue(It, wt => { - x(_).paintedBy.id === 0 ? wt(ut) : wt(bt, !1) - }, !0) - } - H(tt, pt) - }; - Ue(vt, tt => { - x(_) === void 0 ? tt(Q) : tt(te, !1) - }) - } - A(ke); - var _e = V(ke, 2), - ne = k(_e); - ne.__click = [iz, l]; - var Pe = k(ne); - fh(Pe, { - class: "size-4.5" - }); - var Me = V(Pe); - A(ne); - var at = V(ne, 2); - { - var We = tt => { - const pt = lt(() => Dt.data.favoriteLocations.find(Lt => Math.abs(Lt.latitude - x(W).center[0]) < 5e-5 && Math.abs(Lt.longitude - x(W).center[1]) < 5e-5)), - It = lt(() => !x(pt) && Dt.data.favoriteLocations.length >= Dt.data.maxFavoriteLocations); - var ut = az(); - let bt; - ut.__click = [nz, T, pt, W]; - var wt = k(ut); - { - let Lt = lt(() => !!x(pt)); - N8(wt, { - class: "size-4.5", - get filled() { - return x(Lt) - } - }) - } - var dt = V(wt); - A(ut), Ge((Lt, Xt) => { - bt = Or(ut, 1, "btn btn-primary btn-soft", null, bt, Lt), ut.disabled = x(T) || x(It), fe(dt, ` ${Xt??""}`) - }, [() => ({ - "text-yellow-400": !!x(pt) - }), () => x(It) ? v3() : b3()]), H(tt, ut) - }; - Ue(at, tt => { - Dt.data && tt(We) - }) - } - var Ct = V(at, 2); - Ct.__click = [sz, l, W]; - var _t = k(Ct); - ov(_t, { - class: "size-4.5" - }); - var xt = V(_t); - A(Ct), A(_e), A(Ae), ps(Ae, tt => oe(F, tt), () => x(F)), Ge((tt, pt) => { - fe(ct, `Pixel: ${x(W).regionPixel[0]??""}, ${x(W).regionPixel[1]??""}`), ne.disabled = Dt.loading, fe(Me, ` ${tt??""}`), fe(xt, ` ${pt??""}`) - }, [() => Zg(), () => C3()]), $d("innerHeight", tt => oe(L, tt, !0)), H(b, Ae), Pr() -} -Wi(["click"]); - -function cz(b) { - var C; - const l = document.createElement("div"); - (C = b.parentElement) == null || C.insertBefore(l, b.nextSibling); - const _ = new IntersectionObserver(L => { - L[0].isIntersecting ? b.classList.remove("stuck") : b.classList.add("stuck") - }, { - threshold: 0, - rootMargin: "0px" - }); - return _.observe(l), () => { - l.remove(), _.disconnect() - } -} -var uz = Tr(''), - hz = Tr(''); - -function dz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = uz(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = hz(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var pz = Ie(''), - fz = Ie(''), - mz = Ie(''), - _z = Ie(' ', 1), - gz = Ie(' '), - vz = Ie(''), - yz = Ie('

        '), - xz = (b, l) => { - oe(l, !x(l)) - }, - bz = Ie('

        '+Text8()+'

        '); - -function wz(b, l) { - Sr(l, !0); - const _ = (Ee, Ne = fa) => { - const ft = lt(() => { - var ne; - return (((ne = Dt.data) == null ? void 0 : ne.droplets) ?? 0) >= T.price - }), - ht = lt(() => x($) === Ne().id); - var Xe = yz(), - ct = k(Xe), - Je = k(ct, !0); - A(ct); - var Be = V(ct, 2), - st = k(Be, !0); - A(Be); - var it = V(Be, 2); - { - var Qe = ne => { - hm(ne, {}) - }; - Ue(it, ne => { - Ne().id === x(W) && ne(Qe) - }) - } - var ke = V(it, 2); - let vt; - var Q = k(ke); - { - var te = ne => { - var Pe = fz(); - Pe.__click = async () => { - try { - const _t = Ne().id; - oe($, _t, !0), await ni.purchase({ - id: F, - amount: 1, - variant: _t - }), Dt.refresh(), pa.notification1.play(); - const xt = L.find(tt => tt.id === _t); - xt && (xt.owned = !0), oe(W, _t, !0) - } catch (_t) { - qr.error(_t.message) - } finally { - oe($, void 0) - } - }; - var Me = k(Pe); - { - var at = _t => { - var xt = pz(); - H(_t, xt) - }; - Ue(Me, _t => { - x(ht) && _t(at) - }) - } - var We = V(Me, 2); - Ud(We, { - class: "size-4" - }); - var Ct = V(We); - fi(), A(Pe), Ge(_t => { - Pe.disabled = !x(ft) || x(ht), fe(Ct, ` ${_t??""} `) - }, [() => T.price.toLocaleString("en-US")]), H(ne, Pe) - }, - _e = ne => { - const Pe = lt(() => { - var ut; - return ((ut = Dt.data) == null ? void 0 : ut.equippedFlag) === Ne().id - }); - var Me = vz(); - let at; - Me.__click = async () => { - try { - oe($, Ne().id, !0); - const ut = x(Pe) ? 0 : Ne().id; - await ni.equipFlag(ut), Dt.data && (Dt.data.equippedFlag = ut), Dt.refresh() - } catch (ut) { - qr.error(ut.message) - } finally { - oe($, void 0) - } - }; - var We = k(Me), - Ct = k(We, !0); - A(We); - var _t = V(We, 2); - { - var xt = ut => { - var bt = mz(); - H(ut, bt) - }; - Ue(_t, ut => { - x(ht) && ut(xt) - }) - } - var tt = V(_t, 2); - { - var pt = ut => { - var bt = _z(), - wt = zt(bt); - fc(wt, { - class: "size-4" - }); - var dt = V(wt, 2), - Lt = k(dt, !0); - A(dt), Ge(Xt => fe(Lt, Xt), [() => p2()]), H(ut, bt) - }, - It = ut => { - var bt = gz(), - wt = k(bt, !0); - A(bt), Ge(dt => fe(wt, dt), [() => _2()]), H(ut, bt) - }; - Ue(tt, ut => { - x(Pe) ? ut(pt) : ut(It, !1) - }) - } - A(Me), Ge((ut, bt) => { - at = Or(Me, 1, "btn btn-lg sm:btn-md tooltip tooltip-bottom relative h-10", null, at, ut), Me.disabled = x(ht), fe(Ct, bt) - }, [() => ({ - "btn-warning": x(Pe) - }), () => u2()]), H(ne, Me) - }; - Ue(Q, ne => { - Ne().owned ? ne(_e, !1) : ne(te) - }) - } - A(ke), A(Xe), Ge((ne, Pe) => { - fe(Je, Ne().flag), fe(st, Ne().name), vt = Or(ke, 1, "mt-3", null, vt, ne), zr(ke, "data-tip", Pe) - }, [() => ({ - tooltip: !x(ft) - }), () => Hd()]), H(Ee, Xe) - }, - C = $n.countries.map(Ee => ({ - ...Ee, - owned: Dt.flagsBitmap.get(Ee.id) - })); - C.sort((Ee, Ne) => Number(Ne.owned) - Number(Ee.owned)); - const L = zn(C), - F = 110, - T = $n.products[F]; - let o = nt(!1), - $ = nt(void 0), - W = nt(void 0); - var ie = bz(), - pe = k(ie), - ye = k(pe); - dz(ye, { - class: "size-5.5", - filled: !0 - }), fi(2), A(pe); - var X = V(pe, 2), - Se = k(X, !0); - A(X); - var we = V(X, 2); - nn(we, 23, () => L, Ee => Ee.id, (Ee, Ne, ft) => { - var ht = Jt(), - Xe = zt(ht); - { - var ct = Je => { - _(Je, () => x(Ne)) - }; - Ue(Xe, Je => { - (x(ft) < 8 || x(o)) && Je(ct) - }) - } - H(Ee, ht) - }), A(we); - var Re = V(we, 2), - Ae = k(Re); - Ae.__click = [xz, o]; - var Oe = k(Ae, !0); - A(Ae), A(Re), A(ie), Ge(Ee => { - fe(Se, Ee), fe(Oe, x(o) ? "Show less" : "Show more") - }, [() => o2()]), H(b, ie), Pr() -} -Wi(["click"]); -var Tz = Ie('

        '), - Cz = (b, l) => { - kg(l, -1) - }, - Sz = (b, l) => { - kg(l) - }, - Pz = (b, l, _) => { - l(x(_)) - }, - Iz = Ie(''), - Mz = async (b, l, _, C) => { - try { - oe(l, !0), await ni.purchase({ - id: _.productId, - amount: C() - }), pa.notification1.play(), _.onpurchasecompleted(C()) - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } - }, Az = Ie(''), kz = Ie('

        '); - -function Pg(b, l) { - Sr(l, !0); - let _ = Et(l, "amount", 15, 1); - const C = lt(() => _() * l.unitPrice), - L = lt(() => Math.floor(l.userDroplets / l.unitPrice)); - let F = nt(!1); - Zr(() => { - _() < 0 && _(0) - }); - var T = kz(), - o = k(T), - $ = k(o); - Ji($, () => l.icon ?? fa), A(o); - var W = V(o, 2), - ie = k(W, !0); - A(W); - var pe = V(W, 2); - { - var ye = Be => { - var st = Tz(), - it = k(st, !0); - A(st), Ge(() => fe(it, l.subtitle)), H(Be, st) - }; - Ue(pe, Be => { - l.subtitle && Be(ye) - }) - } - var X = V(pe, 2), - Se = k(X); - Se.__click = [Cz, _]; - var we = V(Se, 2); - ea(we); - var Re = V(we, 2); - Re.__click = [Sz, _]; - var Ae = V(Re, 2); - { - var Oe = Be => { - var st = Iz(); - st.__click = [Pz, _, L], H(Be, st) - }; - Ue(Ae, Be => { - _() < x(L) && Be(Oe) - }) - } - A(X); - var Ee = V(X, 2); - let Ne; - var ft = k(Ee); - ft.__click = [Mz, F, l, _]; - var ht = k(ft); - { - var Xe = Be => { - var st = Az(); - H(Be, st) - }; - Ue(ht, Be => { - x(F) && Be(Xe) - }) - } - var ct = V(ht, 2); - Ud(ct, { - class: "size-4" - }); - var Je = V(ct); - fi(), A(ft), A(Ee), A(T), Ge((Be, st, it, Qe) => { - fe(ie, Be), Re.disabled = _() >= x(L), zr(Ee, "data-tip", st), Ne = Or(Ee, 1, "", null, Ne, it), ft.disabled = l.userDroplets < x(C) || x(F) || !_(), fe(Je, ` ${Qe??""} `) - }, [() => l.title(_()), () => Hd(), () => ({ - tooltip: l.userDroplets < x(C) - }), () => x(C).toLocaleString("en-US")]), jd(we, _), H(b, T), Pr() -} -Wi(["click"]); -var Ez = Tr(''); - -function zz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ez(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Lz = Tr(''); - -function Rv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Lz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Dz = Tr(''); - -function Rz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Dz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Bz = Tr(''); - -function Fz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Bz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Oz = Ie(''), - Nz = Ie(''), - jz = Ie(' ', 1); - -function qz(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(void 0), - L = nt(zn({ - name: hg(), - prev: 1e3, - new: 1e5 - })); - Ii(() => { - const Me = at => { - at.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", Me), () => document.removeEventListener("keydown", Me) - }); - const F = { - id: 70, - product: $n.products[70] - }, - T = { - id: 80, - product: $n.products[80] - }, - o = { - product: $n.products[120] - }; - var $ = jz(), - W = zt($), - ie = k(W), - pe = k(ie); - { - var ye = Me => { - var at = Oz(), - We = k(at), - Ct = k(We), - _t = k(Ct); - Rv(_t, { - class: "size-8" - }); - var xt = V(_t, 2), - tt = k(xt, !0); - A(xt); - var pt = V(xt, 2), - It = k(pt); - { - let Pt = lt(() => { - var kt; - return ((kt = Dt.data) == null ? void 0 : kt.droplets) ?? 0 - }); - Rg(It, { - get value() { - return x(Pt) - } - }) - } - A(pt), fi(2), A(Ct), A(We), On(We, () => cz); - var ut = V(We, 2), - bt = k(ut), - wt = k(bt), - dt = k(wt); - zz(dt, { - class: "size-5.5", - filled: !0 - }); - var Lt = V(dt, 2), - Xt = k(Lt, !0); - A(Lt), A(wt); - var Yt = V(wt, 2), - nr = k(Yt, !0); - A(Yt); - var ar = V(Yt, 2), - Ft = k(ar); - { - const Pt = Wt => { - Fz(Wt, { - class: "text-primary size-26" - }) - }; - let kt = lt(() => cb()); - Pg(Ft, { - get productId() { - return F.id - }, - title: Wt => sb({ - amount: F.product.items[0].amount * Wt - }), - get subtitle() { - return x(kt) - }, - get unitPrice() { - return F.product.price - }, - get userDroplets() { - return Dt.data.droplets - }, - onpurchasecompleted: async Wt => { - var Hr, $r, mr, gr, ai; - const Lr = ($r = (Hr = Dt.data) == null ? void 0 : Hr.charges) == null ? void 0 : $r.max; - await Dt.refresh(); - const Kr = (gr = (mr = Dt.data) == null ? void 0 : mr.charges) == null ? void 0 : gr.max; - Lr !== void 0 && Kr !== void 0 && (oe(L, { - name: hg(), - prev: Lr, - new: Kr - }, !0), (ai = x(C)) == null || ai.show()) - }, - icon: Pt, - $$slots: { - icon: !0 - } - }) - } - var dr = V(Ft, 2); - { - const Pt = Wt => { - Ev(Wt, { - class: "text-primary my-3 size-20" - }) - }; - let kt = lt(() => Y1()); - Pg(dr, { - get productId() { - return T.id - }, - title: Wt => Qw({ - amount: T.product.items[0].amount * Wt - }), - get subtitle() { - return x(kt) - }, - get unitPrice() { - return T.product.price - }, - get userDroplets() { - return Dt.data.droplets - }, - onpurchasecompleted: async Wt => { - var Kr, Hr, $r; - const Lr = (Hr = (Kr = Dt.data) == null ? void 0 : Kr.charges) == null ? void 0 : Hr.count; - await Dt.refresh(), Lr !== void 0 && (oe(L, { - name: Kw(), - prev: Math.floor(Lr), - new: Math.floor(Lr + T.product.items[0].amount * Wt) - }, !0), ($r = x(C)) == null || $r.show()) - }, - icon: Pt, - $$slots: { - icon: !0 - } - }) - } - A(ar), A(bt); - var _r = V(bt, 2), - Ir = k(_r), - jr = k(Ir); - Xd(jr, { - class: "size-5.5", - filled: !0 - }); - var ur = V(jr, 2), - Mr = k(ur, !0); - A(ur), A(Ir); - var Ar = V(Ir, 2), - kr = k(Ar), - Nr = k(kr), - ce = k(Nr), - O = k(ce), - q = k(O); - Bg(q, { - get userId() { - return Dt.data.id - }, - get level() { - return Dt.data.level - }, - get pictureUrl() { - return Dt.data.picture - } - }), A(O), A(ce), A(Nr); - var G = V(Nr, 2), - K = k(G, !0); - A(G); - var le = V(G, 2), - ve = k(le, !0); - A(le); - var Le = V(le, 2); - let Ce; - var Ze = k(Le), - ot = k(Ze), - Ye = k(ot); - Ud(Ye, { - class: "size-4" - }); - var Ot = V(Ye); - fi(), A(ot), A(Ze), A(Le), A(kr), A(Ar), A(_r); - var xe = V(_r, 2), - At = k(xe); - wz(At, {}), A(xe), A(ut), A(at), Ge((Pt, kt, Wt, Lr, Kr, Hr, $r, mr, gr) => { - fe(tt, Pt), fe(Xt, kt), fe(nr, Wt), fe(Mr, Lr), fe(K, Kr), fe(ve, Hr), zr(Le, "data-tip", $r), Ce = Or(Le, 1, "", null, Ce, mr), ot.disabled = Dt.data.droplets < o.product.price, fe(Ot, ` ${gr??""} `) - }, [() => qg(), () => eb(), () => ib(), () => n2(), () => db(), () => mb(), () => Hd(), () => ({ - tooltip: Dt.data.droplets < o.product.price - }), () => o.product.price.toLocaleString("en-US")]), En(2, at, () => Qn), H(Me, at) - }; - Ue(pe, Me => { - Dt.data && _() && Me(ye) - }) - } - A(ie); - var X = V(ie, 2), - Se = k(X), - we = k(Se, !0); - A(Se), A(X), A(W), On(W, () => Me => { - Zr(() => { - _() ? Me.show() : Me.close() - }) - }); - var Re = V(W, 2), - Ae = k(Re), - Oe = k(Ae), - Ee = k(Oe), - Ne = k(Ee, !0); - A(Ee); - var ft = V(Ee, 2), - ht = k(ft), - Xe = k(ht), - ct = V(Xe), - Je = k(ct); - A(ct), A(ht); - var Be = V(ht, 2), - st = k(Be); - Rz(st, { - class: "size-5" - }), A(Be); - var it = V(Be, 2), - Qe = k(it, !0); - A(it), A(ft); - var ke = V(ft, 2), - vt = k(ke), - Q = k(vt), - te = V(Q); - Pu(te, () => x(L).new, Me => { - var at = Nz(), - We = k(at); - hm(We, {}), A(at), H(Me, at) - }), A(vt), A(ke), A(Oe), A(Ae); - var _e = V(Ae, 2), - ne = k(_e), - Pe = k(ne, !0); - A(ne), A(_e), A(Re), ps(Re, Me => oe(C, Me), () => x(C)), Ge((Me, at, We) => { - fe(we, Me), fe(Ne, x(L).name), fe(Xe, `${x(L).prev??""} `), fe(Je, `(+${x(L).new-x(L).prev})`), fe(Qe, x(L).new), fe(Q, `${at??""} `), fe(Pe, We) - }, [() => tc(), () => tc(), () => tc()]), an("close", W, () => _(!1)), H(b, $), Pr() -} -var Vz = Tr(''); - -function Uz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Vz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Zz = Tr(''); - -function $z(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Zz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Gz = Tr(''); - -function Hz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Gz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Wz = Tr(''); - -function Xz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Wz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Kz = Tr(''); - -function Yz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Kz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Jz = Tr(''); - -function Qz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Jz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var eL = Tr(''); - -function tL(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = eL(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} - -function vf(b) { - const l = document.createElement("img"); - return l.src = b, new Promise((_, C) => { - l.addEventListener("load", () => { - _(l) - }), l.addEventListener("error", L => { - C(L) - }) - }) -} - -function rL(b) { - const l = document.createElement("canvas"); - l.width = b.naturalWidth, l.height = b.naturalHeight; - const _ = l.getContext("2d"); - return _ == null || _.drawImage(b, 0, 0), l -} - -function iL(b, l, _) { - return b < l ? l : b > _ ? _ : b -} - -function nL(b, l) { - const _ = 10 ** l; - return Math.round(b * _) / _ -} -var aL = Ie(' ', 1), - sL = (b, l) => { - oe(l, !x(l)) - }, - oL = Ie(""), - lL = async (b, l, _, C) => { - var L; - x(l) || oe(l, await new Promise((F, T) => { - navigator.geolocation.getCurrentPosition(o => { - F(o) - }, o => { - T(o) - }) - })), x(l) && (Qa({ - lat: x(l).coords.latitude, - lng: x(l).coords.longitude - }, x(_)), (L = x(C)) == null || L.flyTo({ - center: { - lat: x(l).coords.latitude, - lng: x(l).coords.longitude - }, - zoom: 16.5 - })) - }, cL = Ie('
        ?
        '), uL = Ie(''), hL = (b, l, _, C) => { - var L; - oe(l, !0), x(_) && Qa((L = x(_)) == null ? void 0 : L.getCenter(), x(C)) - }, dL = Ie(''), pL = Ie(' '), fL = Ie('
        '), mL = (b, l, _, C) => { - var F; - oe(l, !0); - const L = (F = x(_)) == null ? void 0 : F.getCenter(); - L && Qa(L, x(C)) - }, _L = Ie(''), gL = (b, l) => { - oe(l, !0) - }, vL = Ie(''), yL = (b, l) => { - oe(l, !0) - }, xL = Ie(''), bL = Ie('
        '), wL = (b, l) => { - oe(l, !x(l)) - }, TL = Ie('
        '), CL = Ie('
        '), SL = (b, l) => { - oe(l, !0) - }, PL = Ie(''), IL = (b, l) => { - var _; - (_ = x(l)) == null || _.zoomIn() - }, ML = (b, l) => { - var _; - (_ = x(l)) == null || _.zoomOut() - }, AL = Ie(''), kL = () => { - window.location.replace(La.url.origin) - }, EL = Ie(''), zL = (b, l) => { - x(l) && Ho.goToPrev(x(l)) - }, LL = Ie(''), DL = Ie('
        '), RL = (b, l, _) => { - var C; - (C = x(l)) == null || C.flyTo({ - center: x(l).getCenter(), - zoom: _ - }) - }, BL = Ie(''), FL = Ie(""), OL = Ie('
        '), NL = Ie('
        '), jL = (b, l) => { - oe(l, { - name: "mainMenu" - }, !0) - }, qL = Ie('
        '), VL = Ie('
        ', 1); - -function gD(b, l) { - Sr(l, !0); - const _ = og, - C = ix, - L = new hc(C), - F = _ - .4, - T = FP(La.url), - o = T.season ?? sg, - $ = new Map; - let W = nt(void 0), - ie = nt(14.5), - pe = nt(!1); - const ye = lt(() => { - var gt; - return ((gt = Dt.data) == null ? void 0 : gt.id) === 401 - }); - let X = nt(!1), - Se = nt(zn(T.select && T.pos ? { - name: "pixelSelected", - latLon: [T.pos.lat, T.pos.lng] - } : { - name: "mainMenu" - })); - Ii(() => { - Re().then(vr => oe(W, vr)); - let gt = [0, 0]; - - function qt(vr) { - var _i; - if (x(W) && x(ie) > _ + 1) { - const { - lat: Di, - lng: $i - } = x(W).unproject([vr.clientX, vr.clientY]), Mi = L.latLonToPixels(Di, $i, _), Cr = Math.floor(Mi[0]), gn = Math.floor(Mi[1]); - if (gt[0] !== Cr || gt[1] !== gn) { - const tr = L.latLonToPixelBoundsLatLon(Di, $i, _), - Ht = rm(tr, !0); - (_i = x(W).getSource(Ee)) == null || _i.setCoordinates(Ht), gt = [Cr, gn] - } - } - } - return window.addEventListener("mousemove", qt), () => { - var vr; - (vr = x(W)) == null || vr.remove(), window.removeEventListener("mousemove", qt), we && clearInterval(we), yf() - } - }); - let we; - async function Re() { - const gt = T.pos ? { - ...T.pos, - zoom: x(ie) - } : await IP(); - T.zoom !== void 0 && (gt.zoom = T.zoom); - const qt = await new Promise(Mi => { - const Cr = new bd.Map({ - style: "maps/styles/liberty", - center: gt, - zoom: gt.zoom, - container: "map", - dragRotate: !1, - doubleClickZoom: !1, - pitch: 0, - maxPitch: 0, - attributionControl: !1 - }); - Cr.touchZoomRotate.disableRotation(), Cr.on("style.load", () => { - Cr == null || Cr.setLayoutProperty("poi_transit", "visibility", "none"), Cr == null || Cr.setLayoutProperty("poi_r20", "visibility", "none"), Cr == null || Cr.setLayoutProperty("poi_r7", "visibility", "none"), Cr == null || Cr.setLayoutProperty("poi_r1", "visibility", "none"), Cr == null || Cr.setLayoutProperty("building", "visibility", "none"), Cr == null || Cr.setLayoutProperty("building-3d", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_pitch", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_hospital", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_school", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_residential", "visibility", "none"), Cr == null || Cr.setLayoutProperty("waterway_tunnel", "visibility", "none"), Cr == null || Cr.setFilter("water", ["all", ["!=", "brunnel", "tunnel"], - ["!=", "class", "swimming_pool"] - ]), Mi(Cr) - }) - }); - Oe(qt), Xe(); - const vr = $n.refreshIntervalMs; - - function _i() { - let Mi = x(ie) > _ + 1.5 ? vr : 2.5 * vr; - try { - document.visibilityState === "visible" && Oe(qt) - } finally { - setTimeout(_i, Mi) - } - } - we = setTimeout(_i, vr); - let Di = x(ie); - qt.on("zoom", () => { - oe(ie, qt.getZoom(), !0); - const Mi = nL(x(ie), 1); - Mi != Di && (x(ke) && x(ke).setOpacity(vt(Di)), Di = Mi) - }); - let $i = "default"; - return qt.on("dragstart", () => { - const Mi = qt.getCanvas(); - $i = Mi.style.cursor, Mi.style.cursor = "move" - }), qt.on("dragend", () => { - qt.getCanvas().style.cursor = $i - }), qt.on("mouseout", () => { - ct() - }), qt.on("click", async Mi => { - var ei; - const Cr = Mi.lngLat.lat, - gn = Mi.lngLat.lng, - tr = [Cr, gn]; - if (x(Se).name === "paintingPixel") return; - if (x(Se).name === "selectHq") { - x(Se).hq = tr, (ei = x(Q)) == null || ei.clearAndPlace(tr); - return - } - const Ht = qt.getZoom(); - if (Ht < F) { - qr.info(IC()); - return - } - Qa({ - lat: Cr, - lng: gn - }, Ht), oe(Se, { - name: "pixelSelected", - latLon: tr - }, !0) - }), qt - } - const Ae = "pixel-art-layer"; - - function Oe(gt) { - const qt = window.innerWidth, - vr = `${nx}/s${sg}/tiles/{x}/{y}.png`; - if ($.clear(), !gt.style) return; - gt.getSource(Ae) ? gt.refreshTiles(Ae) : gt.addSource(Ae, { - type: "raster", - tiles: [vr], - minzoom: _, - maxzoom: _, - tileSize: qt > 640 ? 550 : 400 - }), gt.getLayer(Ae) || gt.addLayer({ - id: Ae, - type: "raster", - source: Ae, - paint: { - "raster-resampling": "nearest", - "raster-opacity": x(Be) - } - }) - } - const Ee = "pixel-hover", - Ne = 1e-5, - ft = [ - [0, 0], - [Ne, 0], - [Ne, -Ne], - [0, -Ne] - ], - ht = .4; - async function Xe() { - var gt, qt, vr, _i; - if (!((gt = x(W)) != null && gt.getSource(Ee))) { - const Di = rL(await vf(SP)); - (qt = x(W)) == null || qt.addSource(Ee, { - type: "canvas", - canvas: Di, - coordinates: ft - }) - }(vr = x(W)) != null && vr.getLayer(Ee) || (_i = x(W)) == null || _i.addLayer({ - id: Ee, - type: "raster", - source: Ee, - paint: { - "raster-resampling": "nearest", - "raster-opacity": ht - } - }) - } - - function ct() { - var gt, qt; - (qt = (gt = x(W)) == null ? void 0 : gt.getSource(Ee)) == null || qt.setCoordinates(ft) - } - let Je = nt(zn(T.opaque ?? !0)), - Be = lt(() => x(Je) ? 1 : .1); - Zr(() => { - var gt; - (gt = x(W)) != null && gt.getLayer(Ae) && x(W).setPaintProperty(Ae, "raster-opacity", x(Be)) - }); - let st = nt(void 0), - it = nt(void 0), - Qe = nt(void 0); - Ii(() => (navigator.permissions.query({ - name: "geolocation" - }).then(gt => { - gt.state === "granted" && oe(Qe, navigator.geolocation.watchPosition(qt => { - oe(st, qt) - }, qt => { - oe(it, qt) - }, { - enableHighAccuracy: !1, - maximumAge: 1e3, - timeout: 6e3 - }), !0) - }), () => { - x(Qe) && navigator.geolocation.clearWatch(x(Qe)) - })); - let ke = nt(void 0); - dc(() => [x(st), x(W)], () => { - var gt, qt; - if (x(st) && x(W)) { - const vr = { - lat: x(st).coords.latitude, - lng: x(st).coords.longitude - }, - _i = vt(x(ie)); - if (!x(ke)) { - const Di = document.createElement("div"); - Di.classList.add("maplibregl-user-location-dot"), Di.classList.add("cursor-auto"), oe(ke, new bd.Marker({ - element: Di, - opacity: _i - }).setLngLat(vr).addTo(x(W))) - }(qt = (gt = x(ke)) == null ? void 0 : gt.setLngLat(vr)) == null || qt.setOpacity(_i) - } - }); - - function vt(gt) { - return gt < _ ? "1.0" : iL((gt - _) * .2, .5, 1).toFixed(2) - } - let Q = nt(void 0); - Zr(() => { - var gt; - x(W) && ((gt = Go(() => x(Q))) == null || gt.clear(), vf(dg).then(qt => { - oe(Q, new fg({ - id: "select-crosshair", - map: x(W), - tileSize: C, - zoom: _, - img: qt, - markerFn: () => { - const vr = new bd.Marker({ - color: "#0069ff" - }); - return vr.addClassName("z-20"), vr - } - })) - })) - }); - let te = nt(void 0); - Zr(() => { - var gt; - x(W) && ((gt = Go(() => x(Q))) == null || gt.clear(), vf(dg).then(qt => { - oe(te, new fg({ - id: "paint-crosshair", - map: x(W), - tileSize: C, - zoom: _, - img: qt - })) - })) - }); - let _e = nt(!1), - ne = nt(!1), - Pe = nt(!1), - Me = nt(!!T.newUser), - at = nt(!1), - We = nt(!!T.alliance), - Ct = nt(!1); - const _t = "void-message-2"; - let xt = nt(!1); - Zr(() => { - const gt = localStorage.getItem(_t); - Dt.data && !gt && (oe(xt, !0), localStorage.setItem(_t, "true")) - }); - let tt = nt(!1), - pt = nt(zn(La.url)), - It = nt(zn({ - cityId: 0, - countryId: 1, - id: 0, - name: "None", - number: 1 - })), - ut = nt(!1); - const bt = "view-rules"; - let wt = !1; - Zr(() => { - Dt.data && (!wt && Dt.data.pixelsPainted > 1 && (localStorage.getItem(bt) || (oe(ut, !0), localStorage.setItem(bt, "true"))), wt = !0) - }); - let dt = nt(!1); - Zr(() => { - var gt; - oe(dt, !!((gt = Dt.data) != null && gt.needsPhoneVerification)) - }); - let Lt = nt([]), - Xt = lt(() => x(ie) < F ? "1.0" : x(ie) < F + 2 ? "0.5" : "0.3"); - Zr(() => { - var qt; - const gt = (qt = Dt.data) == null ? void 0 : qt.favoriteLocations; - if (gt && x(W)) { - for (const vr of Go(() => x(Lt))) vr.remove(); - oe(Lt, gt.map(vr => { - const _i = document.createElement("div"); - _i.classList.add("text-yellow-400"), _i.classList.add("cursor-pointer"), _i.classList.add("z-10"), _i.innerHTML = ` - - - `; - const Di = { - lat: vr.latitude, - lng: vr.longitude - }; - return _i.addEventListener("click", Mi => { - Mi.stopPropagation(), Yt([vr.latitude, vr.longitude]) - }), new bd.Marker({ - element: _i, - opacity: x(Xt) - }).setLngLat(Di).addTo(x(W)) - })) - } - }); - - function Yt(gt) { - var vr; - const qt = { - lat: gt[0], - lng: gt[1] - }; - (vr = x(W)) == null || vr.flyTo({ - center: qt, - zoom: Math.max(x(ie), 15) - }), Qa(qt, x(ie)), oe(Se, { - name: "pixelSelected", - latLon: [qt.lat, qt.lng] - }, !0) - } - Zr(() => { - if (x(Se).name === "paintingPixel") - for (const gt of x(Lt)) gt.addClassName("hidden"); - else - for (const gt of x(Lt)) gt.removeClassName("hidden"), gt.setOpacity(x(Xt)) - }); - let nr = Number.MAX_VALUE; - Zr(() => { - if (Dt.charges !== void 0 && Dt.data) { - const gt = Dt.data.charges.max, - qt = Dt.charges; - nr < gt && qt >= gt && pa.notification1.play(), nr = Dt.charges - } - }); - let ar = nt(!1), - Ft = Date.now(); - Ii(() => { - const gt = BP(), - qt = () => { - var _i; - if (!document.hidden && Date.now() - Ft > 30 * Yl.min) { - if (gt) { - const $i = (_i = x(W)) == null ? void 0 : _i.getCenter(); - $i && Qa($i, x(ie)), window.location.replace(La.url.origin) - } else Dt.refresh(); - Ft = Date.now() - } - }; - return document.addEventListener("visibilitychange", qt), () => document.removeEventListener("visibilitychange", qt) - }), Ii(() => { - function gt() { - ni.online = !0 - } - window.addEventListener("online", gt); - - function qt() { - ni.online = !1 - } - return window.addEventListener("offline", qt), () => { - window.removeEventListener("online", gt), window.removeEventListener("offline", qt) - } - }), Zr(() => { - if (!ni.online) { - const gt = setInterval(() => { - ni.health().then(() => { - ni.online = !0, !Dt.data && !Dt.loading && Dt.refresh() - }) - }, 5e3); - return () => { - clearInterval(gt) - } - } - }), Ii(() => { - function gt(qt) { - qt.data.type && x(W) && Oe(x(W)) - } - return navigator.serviceWorker.addEventListener("message", gt), () => { - navigator.serviceWorker.removeEventListener("message", gt) - } - }); - let dr = nt(!1), - _r = nt("report-user"), - Ir = nt(void 0), - jr = nt(void 0), - ur = nt(void 0), - Mr = nt(0); - var Ar = VL(); - Vy(gt => { - var qt = aL(); - qy.title = "openplace - Paint the world", fi(6), H(gt, qt) - }); - var kr = zt(Ar); - { - const gt = tr => { - var Ht = oL(); - Ht.__click = [sL, Je]; - var ei = k(Ht); - { - let ri = lt(() => !x(Je)); - zv(ei, { - class: "size-5", - get filled() { - return x(ri) - } - }) - } - A(Ht), Ge(ri => { - zr(Ht, "title", ri), Or(Ht, 1, Vo({ - "btn btn-lg btn-square sm:btn-xl z-30 shadow-md": !0, - "text-base-content/80": x(Je), - "btn-primary btn-soft": !x(Je) - })) - }, [() => Ug()]), H(tr, Ht) - }, - qt = tr => { - var Ht = uL(); - Ht.__click = [lL, st, ie, W]; - var ei = k(Ht); - { - var ri = ci => { - Xz(ci, { - class: "size-5.5 fill-blue-800" - }) - }, - gi = ci => { - var pi = cL(), - Er = k(pi); - Hz(Er, { - class: "size-5.5 fill-red-400" - }), fi(2), A(pi), H(ci, pi) - }; - Ue(ei, ci => { - x(st) ? ci(ri) : ci(gi, !1) - }) - } - A(Ht), Ge(ci => zr(Ht, "title", ci), [() => d1()]), H(tr, Ht) - }; - var Nr = V(k(kr), 2); - let vr; - var ce = k(Nr); - let _i; - var O = k(ce); - { - var q = tr => { - var Ht = dL(); - Ht.__click = [hL, _e, W, ie]; - var ei = k(Ht, !0); - A(Ht), Ge(ri => fe(ei, ri), [() => Ex()]), H(tr, Ht) - }, - G = tr => { - var Ht = Jt(), - ei = zt(Ht); - { - var ri = gi => { - var ci = fL(), - pi = k(ci); - { - var Er = ui => { - var Jr = pL(), - ti = k(Jr, !0); - A(Jr), Ge(() => { - var yr; - zr(Jr, "href", `${La.url.origin??""}/admin`), fe(ti, ((yr = Dt.data) == null ? void 0 : yr.role) === "admin" ? "ADMIN" : "MOD") - }), H(ui, Jr) - }; - Ue(pi, ui => { - var Jr; - Cu((Jr = Dt.data) == null ? void 0 : Jr.role, ["admin", "moderator", "global_moderator"]) && ui(Er) - }) - } - var Ri = V(pi, 2); - h8(Ri, { - get user() { - return Dt - }, - onlogout: () => { - oe(Se, { - name: "mainMenu" - }, !0) - }, - onclickleaderboard: () => { - oe(Pe, !0) - }, - onclickshop: () => { - var Jr; - oe(ne, !0); - const ui = (Jr = x(W)) == null ? void 0 : Jr.getCenter(); - ui && Qa(ui, x(ie)) - } - }), A(ci), En(3, ci, () => Qn, () => ({ - duration: 150 - })), H(gi, ci) - }; - Ue(ei, gi => { - Dt.data && x(W) && x(Se).name !== "paintingPixel" && gi(ri) - }, !0) - } - H(tr, Ht) - }; - Ue(O, tr => { - !Dt.loading && !Dt.data ? tr(q) : tr(G, !1) - }) - } - var K = V(O, 2); - { - var le = tr => { - var Ht = bL(), - ei = k(Ht); - { - var ri = Ri => { - _f(Ri, { - key: "shop-profile-picture", - children: (ui, Jr) => { - var ti = _L(); - ti.__click = [mL, ne, W, ie]; - var yr = k(ti); - Rv(yr, { - class: "size-5" - }), A(ti), Ge(on => zr(ti, "title", on), [() => qg()]), H(ui, ti) - }, - $$slots: { - default: !0 - } - }) - }; - Ue(ei, Ri => { - Dt.data && Ri(ri) - }) - } - var gi = V(ei, 2); - { - var ci = Ri => { - var ui = vL(); - ui.__click = [gL, We]; - var Jr = k(ui); - Kd(Jr, { - class: "size-5" - }), A(ui), Ge(ti => zr(ui, "title", ti), [() => Gd()]), H(Ri, ui) - }; - Ue(gi, Ri => { - Dt.data && Ri(ci) - }) - } - var pi = V(gi, 2); - v8(pi, { - get map() { - return x(W) - }, - get season() { - return o - } - }); - var Er = V(pi, 2); - _f(Er, { - key: "region-leaderboard", - children: (Ri, ui) => { - var Jr = xL(); - Jr.__click = [yL, Pe]; - var ti = k(Jr); - Mv(ti, { - class: "size-5" - }), A(Jr), Ge(yr => zr(Jr, "title", yr), [() => Yf()]), H(Ri, Jr) - }, - $$slots: { - default: !0 - } - }), A(Ht), En(3, Ht, () => Qn, () => ({ - duration: 150 - })), H(tr, Ht) - }, - ve = tr => { - var Ht = Jt(), - ei = zt(Ht); - { - var ri = gi => { - var ci = TL(), - pi = k(ci); - let Er; - pi.__click = [wL, pe]; - var Ri = k(pi); - { - var ui = ti => { - Gf(ti, { - class: "size-5" - }) - }, - Jr = ti => { - Ld(ti, { - class: "size-5" - }) - }; - Ue(Ri, ti => { - x(pe) ? ti(ui) : ti(Jr, !1) - }) - } - A(pi), A(ci), Ge((ti, yr) => { - zr(pi, "title", ti), Er = Or(pi, 1, "btn btn-square not-touchscreen:hidden shadow-md", null, Er, yr) - }, [() => x(pe) ? jx() : Ux(), () => ({ - "btn-primary": x(pe) - })]), En(1, ci, () => Qn, () => ({ - delay: 150, - duration: 150 - })), H(gi, ci) - }; - Ue(ei, gi => { - x(W) && x(Se).name === "paintingPixel" && gi(ri) - }, !0) - } - H(tr, Ht) - }; - Ue(K, tr => { - x(W) && x(Se).name !== "paintingPixel" ? tr(le) : tr(ve, !1) - }) - } - A(ce), A(Nr); - var Le = V(Nr, 2); - { - var Ce = tr => { - var Ht = CL(), - ei = k(Ht); - { - oa.captcha = { token: "skip", time: Date.now() }; - } - A(Ht), En(2, Ht, () => Qn, () => ({ - duration: 300 - })), H(tr, Ht) - }; - Ue(Le, tr => { - (!oa.captcha || oa.now - oa.captcha.time > 180 * 1e3) && tr(Ce) - }) - } - var Ze = V(Le, 2); - let Di; - var ot = k(Ze); - { - var Ye = tr => { - _f(tr, { - key: "info", - children: (Ht, ei) => { - var ri = PL(); - ri.__click = [SL, at]; - var gi = k(ri); - $z(gi, { - class: "size-3.5" - }), A(ri), Ge(ci => zr(ri, "title", ci), [() => Gx()]), H(Ht, ri) - }, - $$slots: { - default: !0 - } - }) - }; - Ue(ot, tr => { - x(Se).name !== "paintingPixel" && tr(Ye) - }) - } - var Ot = V(ot, 2), - xe = k(Ot); - xe.__click = [IL, W]; - var At = V(xe, 2); - At.__click = [ML, W], A(Ot); - var Pt = V(Ot, 2), - kt = k(Pt), - Wt = k(kt); - jg(Wt, { - class: "size-4" - }), A(kt), A(Pt); - var Lr = V(Pt, 2); - { - var Kr = tr => { - var Ht = AL(), - ei = k(Ht); - tL(ei, { - class: "size-4", - onclick: () => { - oe(X, !x(X)) - } - }), A(Ht), Ge(ri => zr(Ht, "title", ri), [() => Ob()]), H(tr, Ht) - }; - Ue(Lr, tr => { - x(ye) && tr(Kr) - }) - } - var Hr = V(Lr, 2); - { - var $r = tr => { - var Ht = EL(); - Ht.__click = [kL]; - var ei = k(Ht); - Tx(ei, { - class: "size-3" - }), A(Ht), Ge(ri => zr(Ht, "title", ri), [() => Cx()]), H(tr, Ht) - }; - Ue(Hr, tr => { - x(Se).name !== "paintingPixel" && tr($r) - }) - } - var mr = V(Hr, 2); - { - var gr = tr => { - var Ht = LL(); - Ht.__click = [zL, W]; - var ei = k(Ht); - Qz(ei, { - class: "size-3" - }), A(Ht), Ge((ri, gi) => { - zr(Ht, "title", ri), Ht.disabled = gi - }, [() => t1(), () => !Ho.hasPrev()]), En(1, Ht, () => Qn, () => ({ - delay: 1e3, - duration: 300 - })), En(2, Ht, () => Qn, () => ({ - duration: 300 - })), H(tr, Ht) - }; - Ue(mr, tr => { - Ho.hasPrev() && x(Se).name !== "paintingPixel" && tr(gr) - }) - } - A(Ze); - var ai = V(Ze, 2); - let $i; - var Tt = k(ai); - { - var Ci = tr => { - var Ht = DL(), - ei = k(Ht); - Sx(ei, { - class: "size-5" - }); - var ri = V(ei); - A(Ht), Ge(gi => fe(ri, ` ${gi??""}`), [() => n1()]), En(1, Ht, () => Qn, () => ({ - duration: 1e3 - })), En(2, Ht, () => Qn), H(tr, Ht) - }; - Ue(Tt, tr => { - ni.online || tr(Ci) - }) - } - var di = V(Tt, 2); - { - var Pn = tr => { - var Ht = BL(); - Ht.__click = [RL, W, _]; - var ei = k(Ht); - Yz(ei, { - class: "size-5" - }); - var ri = V(ei); - A(Ht), Ge(gi => fe(ri, ` ${gi??""}`), [() => o1()]), En(3, Ht, () => Qn, () => ({ - duration: 300 - })), H(tr, Ht) - }; - Ue(di, tr => { - x(ie) < F && tr(Pn) - }) - } - A(ai); - var Mt = V(ai, 2); - let Mi; - var Ke = k(Mt); - gt(Ke), A(Mt); - var jt = V(Mt, 2); - let Cr; - var Gt = k(jt); - { - var Dr = tr => { - kv(tr, { - class: "z-30", - onclick: () => { - var Ht; - (Ht = Dt.data) != null && Ht.needsPhoneVerification ? (oe(dt, !0), qr.warning(cg())) : Dt.charges !== void 0 && Dt.charges < 1 ? qr.warning(rk, { - icon: Eg - }) : x(W) && Dt.data ? (pa.smallDropplet.play(), oe(Se, { - name: "paintingPixel" - }, !0)) : (oe(_e, !0), x(W) && Qa(x(W).getCenter(), x(ie))) - }, - get disabled() { - return Dt.loading - }, - get loading() { - return Dt.loading - }, - get charges() { - return Dt.charges - } - }) - }, - Gr = tr => { - var Ht = FL(); - H(tr, Ht) - }; - Ue(Gt, tr => { - x(Se).name === "mainMenu" ? tr(Dr) : tr(Gr, !1) - }) - } - A(jt); - var li = V(jt, 2); - let gn; - var fr = k(li); - qt(fr), A(li); - var bi = V(li, 2); - { - var Si = tr => { - var Ht = Jt(), - ei = zt(Ht); - { - var ri = ci => { - var pi = OL(), - Er = k(pi), - Ri = k(Er); - lz(Ri, { - get latLon() { - return x(Se).latLon - }, - get map() { - return x(W) - }, - get crosshair() { - return x(Q) - }, - get pixelInfoCache() { - return $ - }, - get season() { - return o - }, - get tileSize() { - return C - }, - get pixelArtZoom() { - return _ - }, - get zoom() { - return x(ie) - }, - get opaquePixelArt() { - return x(Je) - }, - onclose: () => oe(Se, { - name: "mainMenu" - }, !0), - onclickshare: ui => { - oe(pt, ui, !0), oe(tt, !0) - }, - onclickpaint: ([ui, Jr]) => { - var yr, on, vn; - if (!Dt.data) { - oe(_e, !0); - return - } - if ((yr = Dt.data) != null && yr.needsPhoneVerification) { - oe(dt, !0), qr.warning(cg()); - return - } - if (Dt.charges !== void 0 && Dt.charges < 1) { - qr.warning(m1()); - return - } - const ti = im(L.latLonToPixelBoundsLatLon(ui, Jr, _)); - (on = x(W)) == null || on.flyTo({ - center: { - lat: ti[0], - lon: ti[1] - } - }), oe(Se, { - name: "paintingPixel", - clickedLatLon: [ui, Jr] - }, !0), (vn = x(Q)) == null || vn.clear() - }, - onclickregion: ui => { - oe(It, ui, !0), oe(Ct, !0) - }, - onclickmodaction: (ui, Jr, ti, yr) => { - var on, vn, _a; - (on = x(W)) == null || on.setZoom(Math.max(x(ie), _ + 2)), (vn = x(W)) == null || vn.setCenter({ - lat: ti[0], - lng: ti[1] - }), oe(Ir, Jr, !0), oe(jr, ui, !0), oe(ur, ti, !0), oe(Mr, ((_a = x(W)) == null ? void 0 : _a.getZoom()) ?? 0, !0), oe(_r, yr, !0), oe(dr, !0) - } - }), A(Er), A(pi), En(3, Er, () => uf, () => ({ - duration: 100 - })), H(ci, pi) - }, - gi = ci => { - var pi = Jt(), - Er = zt(pi); - { - var Ri = Jr => { - var ti = NL(), - yr = k(ti), - on = k(yr); - nE(on, { - get map() { - return x(W) - }, - get clickedLatLon() { - return x(Se).clickedLatLon - }, - get tileSize() { - return C - }, - get tileZoom() { - return _ - }, - get season() { - return o - }, - get zoom() { - return x(ie) - }, - get crosshair() { - return x(te) - }, - refreshPixelArt: () => x(W) && Oe(x(W)), - hidePixelHover: ct, - hoverLayerId: Ee, - onclose: () => { - oe(Se, { - name: "mainMenu" - }, !0), ct() - }, - get screenLocked() { - return x(pe) - }, - set screenLocked(vn) { - oe(pe, vn, !0) - }, - get opaquePixelArt() { - return x(Je) - }, - set opaquePixelArt(vn) { - oe(Je, vn, !0) - } - }), A(yr), A(ti), En(3, yr, () => uf, () => ({ - duration: 100 - })), H(Jr, ti) - }, - ui = Jr => { - var ti = Jt(), - yr = zt(ti); - { - var on = vn => { - var _a = qL(), - ln = k(_a), - Ki = k(ln), - cn = k(Ki), - Ni = k(cn), - wi = k(Ni); - Lv(wi, { - class: "inline size-4" - }); - var Ko = V(wi); - A(Ni); - var un = V(Ni, 2); - un.__click = [jL, Se]; - var Nn = k(un); - fc(Nn, { - class: "size-4" - }), A(un), A(cn); - var hn = V(cn, 2), - Ti = k(hn); - Ti.__click = async () => { - var wr; - if (x(Se).name === "selectHq") { - const Vr = x(Se).hq; - if (Vr) try { - oe(ar, !0), await ni.updateAllianceHeadquarters(Vr[0], Vr[1]), (wr = x(Q)) == null || wr.clear(), oe(We, !0), oe(Se, { - name: "mainMenu" - }, !0) - } catch (ga) { - qr.error(ga.message) - } finally { - oe(ar, !1) - } - } - }; - var Za = k(Ti); - Uz(Za, { - class: "size-6" - }), A(Ti), A(hn), A(Ki), A(ln), A(_a), Ge(wr => { - fe(Ko, ` ${wr??""}`), Ti.disabled = x(Se).hq === void 0 || x(ar) - }, [() => B3()]), En(3, ln, () => uf, () => ({ - duration: 100 - })), H(vn, _a) - }; - Ue(yr, vn => { - x(Se).name === "selectHq" && vn(on) - }, !0) - } - H(Jr, ti) - }; - Ue(Er, Jr => { - x(Se).name === "paintingPixel" && x(te) ? Jr(Ri) : Jr(ui, !1) - }, !0) - } - H(ci, pi) - }; - Ue(ei, ci => { - x(Se).name === "pixelSelected" && x(Q) ? ci(ri) : ci(gi, !1) - }) - } - H(tr, Ht) - }; - Ue(bi, tr => { - x(W) && tr(Si) - }) - } - A(kr), Ge((tr, Ht, ei, ri, gi, ci, pi, Er, Ri) => { - vr = Or(Nr, 1, "absolute right-2 top-2 z-30", null, vr, tr), _i = Or(ce, 1, "flex flex-col gap-4", null, _i, Ht), Di = Or(Ze, 1, "absolute left-2 top-2 z-30 flex flex-col gap-3", null, Di, ei), zr(xe, "title", ri), zr(At, "title", gi), $i = Or(ai, 1, "absolute left-1/2 top-2 z-30 flex -translate-x-1/2 flex-col items-center justify-center gap-2", null, $i, ci), Mi = Or(Mt, 1, "absolute bottom-3 left-3 z-30", null, Mi, pi), Cr = Or(jt, 1, "absolute bottom-3 left-1/2 z-30 -translate-x-1/2", null, Cr, Er), gn = Or(li, 1, "absolute bottom-3 right-3 z-30", null, gn, Ri) - }, [() => ({ - hidden: x(X) - }), () => ({ - "items-end": !Dt.data, - "items-center": Dt.data - }), () => ({ - hidden: x(X) - }), () => Xx(), () => Jx(), () => ({ - hidden: x(X) - }), () => ({ - hidden: x(X) - }), () => ({ - hidden: x(X) - }), () => ({ - hidden: x(X) - })]) - } - var zi = V(kr, 2); - YA(zi, { - get open() { - return x(_e) - }, - set open(gt) { - oe(_e, gt, !0) - } - }); - var mi = V(zi, 2); - qz(mi, { - get open() { - return x(ne) - }, - set open(gt) { - oe(ne, gt, !0) - } - }); - var Li = V(mi, 2); - ZM(Li, { - get open() { - return x(Me) - }, - set open(gt) { - oe(Me, gt, !0) - } - }); - var rr = V(Li, 2); - i4(rr, { - get open() { - return x(at) - }, - set open(gt) { - oe(at, gt, !0) - } - }); - var yi = V(rr, 2); - qM(yi, { - get open() { - return x(ut) - }, - set open(gt) { - oe(ut, gt, !0) - } - }); - var Qr = V(yi, 2); - WA(Qr, { - onvisitclick: gt => { - var qt; - (qt = x(W)) == null || qt.flyTo({ - center: gt, - zoom: og + 1 - }), Qa(gt, x(ie)), Ho.push({ - pos: gt, - zoom: x(ie) - }), oe(Pe, !1) - }, - get open() { - return x(Pe) - }, - set open(gt) { - oe(Pe, gt, !0) - } - }); - var Yr = V(Qr, 2); - z8(Yr, { - get region() { - return x(It) - }, - get open() { - return x(Ct) - }, - set open(gt) { - oe(Ct, gt, !0) - } - }); - var la = V(Yr, 2); - mx(la, { - get open() { - return oa.dropletsDialogOpen - }, - set open(gt) { - oa.dropletsDialogOpen = gt - } - }); - var sn = V(la, 2); - { - var ta = gt => { - gM(gt, { - onhqchange: () => { - oe(Se, { - name: "selectHq" - }, !0), oe(We, !1) - }, - onhqclick: qt => { - var vr; - (vr = x(W)) == null || vr.flyTo({ - center: qt, - zoom: Math.max(x(ie), 15) - }), oe(Se, { - name: "pixelSelected", - latLon: [qt.lat, qt.lng] - }, !0), oe(We, !1) - }, - onlastpixelclick: qt => { - var vr; - (vr = x(W)) == null || vr.flyTo({ - center: qt, - zoom: Math.max(x(ie), 15) - }), oe(Se, { - name: "pixelSelected", - latLon: [qt.lat, qt.lng] - }, !0), oe(We, !1) - }, - get open() { - return x(We) - }, - set open(qt) { - oe(We, qt, !0) - } - }) - }; - Ue(sn, gt => { - x(W) && gt(ta) - }) - } - var Fi = V(sn, 2); - CE(Fi, { - get open() { - return x(dt) - }, - set open(gt) { - oe(dt, gt, !0) - } - }); - var Xi = V(Fi, 2); - { - var Gn = gt => { - DM(gt, { - get url() { - return x(pt) - }, - get map() { - return x(W) - }, - hideHover: () => { - var qt, vr; - (qt = x(W)) == null || qt.setPaintProperty(Ee, "raster-opacity", 0), (vr = x(Q)) == null || vr.setCanvasOpacity(0) - }, - showHover: () => { - var qt, vr; - (qt = x(W)) == null || qt.setPaintProperty(Ee, "raster-opacity", ht), (vr = x(Q)) == null || vr.setCanvasOpacity(1) - }, - get open() { - return x(tt) - }, - set open(qt) { - oe(tt, qt, !0) - } - }) - }; - Ue(Xi, gt => { - x(W) && gt(Gn) - }) - } - var Hn = V(Xi, 2); - { - var Ln = gt => { - bM(gt, { - get image() { - return x(Ir) - }, - get paintedBy() { - return x(jr).paintedBy - }, - get latLon() { - return x(ur) - }, - get zoom() { - return x(Mr) - }, - get action() { - return x(_r) - }, - get open() { - return x(dr) - }, - set open(qt) { - oe(dr, qt, !0) - } - }) - }; - Ue(Hn, gt => { - x(jr) && x(Ir) && x(ur) && gt(Ln) - }) - } - H(b, Ar), Pr() -} -Wi(["click"]); -export { - gD as component -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/chunks/2CRhGZHc.js b/frontend-backup/_app/immutable/chunks/2CRhGZHc.js deleted file mode 100644 index 376410a..0000000 --- a/frontend-backup/_app/immutable/chunks/2CRhGZHc.js +++ /dev/null @@ -1,21 +0,0 @@ -import { i as _, g as o, am as f, h as a, P as u, ad as c, a2 as d, O as i, I as s, m as r, J as y } from "./DUoKDNpf.js"; -let e; -function m() { - e = void 0; -} -function p(h) { - let t = null, - l = a; - var n; - if (a) { - for (t = r, e === void 0 && (e = y(document.head)); e !== null && (e.nodeType !== u || e.data !== c); ) e = d(e); - e === null ? i(!1) : (e = s(d(e))); - } - a || (n = document.head.appendChild(_())); - try { - o(() => h(n), f); - } finally { - l && (i(!0), (e = r), s(t)); - } -} -export { p as h, m as r }; diff --git a/frontend-backup/_app/immutable/chunks/4WsUhDWi.js b/frontend-backup/_app/immutable/chunks/4WsUhDWi.js deleted file mode 100644 index 47a00c0..0000000 --- a/frontend-backup/_app/immutable/chunks/4WsUhDWi.js +++ /dev/null @@ -1,143 +0,0 @@ -import { - i as h, - h as p, - e as v, - ai as m, - ah as w, - K as E, - E as x, - k as T, - az as C, - a7 as S, - o as y, - P as k, - aA as i, - y as A, - aB as _, - aC as D, - w as o, - a3 as I, - aD as b, - aE as R, - z as u, - aF as P, - aG as z, - aH as F, - aI as N, - aJ as j, - aK as K, - aL as L, -} from "./BDALf20I.js"; -import { h as M, m as O, u as U } from "./4k6DpCgf.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - t = new e.Error().stack; - t && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[t] = "108534dc-c984-4e89-a0c7-0245224c9d9d"), (e._sentryDebugIdIdentifier = "sentry-dbid-108534dc-c984-4e89-a0c7-0245224c9d9d")); - })(); -} catch {} -function W(e, t, ...r) { - var a = e, - n = C, - s; - h(() => { - n !== (n = t()) && (s && (S(s), (s = null)), (s = T(() => n(a, ...r)))); - }, x), - p && (a = y); -} -function $(e) { - return (t, ...r) => { - var c; - var a = e(...r), - n; - if (p) (n = y), v(); - else { - var s = a.render().trim(), - f = m(s); - (n = k(f)), t.before(n); - } - const l = (c = a.setup) == null ? void 0 : c.call(a, n); - w(n, n), typeof l == "function" && E(l); - }; -} -function B() { - var e; - return _ === null && D(), ((e = _).ac ?? (e.ac = new AbortController())).signal; -} -function g(e) { - o === null && i(), - R && o.l !== null - ? d(o).m.push(e) - : A(() => { - const t = u(e); - if (typeof t == "function") return t; - }); -} -function G(e) { - o === null && i(), g(() => () => u(e)); -} -function H(e, t, { bubbles: r = !1, cancelable: a = !1 } = {}) { - return new CustomEvent(e, { detail: t, bubbles: r, cancelable: a }); -} -function J() { - const e = o; - return ( - e === null && i(), - (t, r, a) => { - var s; - const n = (s = e.s.$$events) == null ? void 0 : s[t]; - if (n) { - const f = I(n) ? n.slice() : [n], - l = H(t, r, a); - for (const c of f) c.call(e.x, l); - return !l.defaultPrevented; - } - return !0; - } - ); -} -function Y(e) { - o === null && i(), o.l === null && b(), d(o).b.push(e); -} -function q(e) { - o === null && i(), o.l === null && b(), d(o).a.push(e); -} -function d(e) { - var t = e.l; - return t.u ?? (t.u = { a: [], b: [], m: [] }); -} -const X = Object.freeze( - Object.defineProperty( - { - __proto__: null, - afterUpdate: q, - beforeUpdate: Y, - createEventDispatcher: J, - createRawSnippet: $, - flushSync: P, - getAbortSignal: B, - getAllContexts: z, - getContext: F, - hasContext: N, - hydrate: M, - mount: O, - onDestroy: G, - onMount: g, - setContext: j, - settled: K, - tick: L, - unmount: U, - untrack: u, - }, - Symbol.toStringTag, - { value: "Module" } - ) - ), - Z = "1759175263375"; -export { X as a, g as o, W as s, Z as v }; diff --git a/frontend-backup/_app/immutable/chunks/4k6DpCgf.js b/frontend-backup/_app/immutable/chunks/4k6DpCgf.js deleted file mode 100644 index 7fcd3db..0000000 --- a/frontend-backup/_app/immutable/chunks/4k6DpCgf.js +++ /dev/null @@ -1,128 +0,0 @@ -import { - aj as v, - P as A, - W as T, - ak as L, - a9 as k, - ag as b, - V as h, - O as D, - e as M, - o as u, - X as S, - af as Y, - al as j, - ab as C, - a2 as H, - am as V, - an as R, - ao as W, - ap as y, - aq as P, - j as $, - k as q, - h as w, - p as F, - w as X, - ah as z, - ad as B, - c as G, -} from "./BDALf20I.js"; -import { r as J } from "./BUhRjcOt.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - a = new e.Error().stack; - a && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[a] = "9557bbbe-29d3-45f6-8a81-e8d8cda40d22"), (e._sentryDebugIdIdentifier = "sentry-dbid-9557bbbe-29d3-45f6-8a81-e8d8cda40d22")); - })(); -} catch {} -let I = !0; -function Z(e, a) { - var t = a == null ? "" : typeof a == "object" ? a + "" : a; - t !== (e.__t ?? (e.__t = e.nodeValue)) && ((e.__t = t), (e.nodeValue = t + "")); -} -function K(e, a) { - return N(e, a); -} -function x(e, a) { - v(), (a.intro = a.intro ?? !1); - const t = a.target, - _ = w, - c = u; - try { - for (var s = A(t); s && (s.nodeType !== T || s.data !== L); ) s = k(s); - if (!s) throw b; - h(!0), D(s), M(); - const d = N(e, { ...a, anchor: s }); - if (u === null || u.nodeType !== T || u.data !== S) throw (Y(), b); - return h(!1), d; - } catch (d) { - if ( - d instanceof Error && - d.message - .split( - ` -` - ) - .some((f) => f.startsWith("https://svelte.dev/e/")) - ) - throw d; - return d !== b && console.warn("Failed to hydrate: ", d), a.recover === !1 && j(), v(), C(t), h(!1), K(e, a); - } finally { - h(_), D(c), J(); - } -} -const i = new Map(); -function N(e, { target: a, anchor: t, props: _ = {}, events: c, context: s, intro: d = !0 }) { - v(); - var f = new Set(), - g = (o) => { - for (var n = 0; n < o.length; n++) { - var r = o[n]; - if (!f.has(r)) { - f.add(r); - var l = P(r); - a.addEventListener(r, y, { passive: l }); - var E = i.get(r); - E === void 0 ? (document.addEventListener(r, y, { passive: l }), i.set(r, 1)) : i.set(r, E + 1); - } - } - }; - g(H(V)), R.add(g); - var p = void 0, - O = W(() => { - var o = t ?? a.appendChild($()); - return ( - q(() => { - if (s) { - F({}); - var n = X; - n.c = s; - } - c && (_.$$events = c), w && z(o, null), (I = d), (p = e(o, _) || {}), (I = !0), w && (B.nodes_end = u), s && G(); - }), - () => { - var l; - for (var n of f) { - a.removeEventListener(n, y); - var r = i.get(n); - --r === 0 ? (document.removeEventListener(n, y), i.delete(n)) : i.set(n, r); - } - R.delete(g), o !== t && ((l = o.parentNode) == null || l.removeChild(o)); - } - ); - }); - return m.set(p, O), p; -} -let m = new WeakMap(); -function ee(e, a) { - const t = m.get(e); - return t ? (m.delete(e), t(a)) : Promise.resolve(); -} -export { I as a, x as h, K as m, Z as s, ee as u }; diff --git a/frontend-backup/_app/immutable/chunks/5NasrULQ.js b/frontend-backup/_app/immutable/chunks/5NasrULQ.js deleted file mode 100644 index ef297fd..0000000 --- a/frontend-backup/_app/immutable/chunks/5NasrULQ.js +++ /dev/null @@ -1,211 +0,0 @@ -import { - g as L, - h as y, - e as N, - E as C, - L as K, - M, - N as Y, - I as j, - O as T, - i as B, - j as w, - k as F, - aC as U, - l as Z, - Z as q, - n as G, - m as H, - aD as A, - aE as $, - aF as z, - A as O, - C as J, - K as Q, - aG as V, - aH as W, - aI as X, - a6 as k, - aJ as ee, - aK as re, - x as ne, - au as te, - aL as ae, - aM as se, - aN as ie, - S as x, - aO as D, - aP as P, -} from "./DUoKDNpf.js"; -function ce(e, r, t = !1) { - y && N(); - var n = e, - a = null, - f = null, - l = U, - d = t ? C : 0, - p = !1; - const S = (o, i = !0) => { - (p = !0), _(i, o); - }; - var u = null; - function m() { - u !== null && (u.lastChild.remove(), n.before(u), (u = null)); - var o = l ? a : f, - i = l ? f : a; - o && q(o), - i && - G(i, () => { - l ? (f = null) : (a = null); - }); - } - const _ = (o, i) => { - if (l === (l = o)) return; - let I = !1; - if (y) { - const h = K(n) === M; - !!l === h && ((n = Y()), j(n), T(!1), (I = !0)); - } - var v = Z(), - c = n; - if ((v && ((u = document.createDocumentFragment()), u.append((c = B()))), l ? a ?? (a = i && w(() => i(c))) : f ?? (f = i && w(() => i(c))), v)) { - var g = F, - b = l ? a : f, - s = l ? f : a; - b && g.skipped_effects.delete(b), s && g.skipped_effects.add(s), g.add_callback(m); - } else m(); - I && T(!0); - }; - L(() => { - (p = !1), r(S), p || _(null, null); - }, d), - y && (n = H); -} -let E = !1; -function fe(e) { - var r = E; - try { - return (E = !1), [e(), E]; - } finally { - E = r; - } -} -function de(e, r = 1) { - const t = e(); - return e(t + r), t; -} -const ue = { - get(e, r) { - if (!e.exclude.includes(r)) return e.props[r]; - }, - set(e, r) { - return !1; - }, - getOwnPropertyDescriptor(e, r) { - if (!e.exclude.includes(r) && r in e.props) return { enumerable: !0, configurable: !0, value: e.props[r] }; - }, - has(e, r) { - return e.exclude.includes(r) ? !1 : r in e.props; - }, - ownKeys(e) { - return Reflect.ownKeys(e.props).filter((r) => !e.exclude.includes(r)); - }, -}; -function _e(e, r, t) { - return new Proxy({ props: e, exclude: r }, ue); -} -const le = { - get(e, r) { - let t = e.props.length; - for (; t--; ) { - let n = e.props[t]; - if ((P(n) && (n = n()), typeof n == "object" && n !== null && r in n)) return n[r]; - } - }, - set(e, r, t) { - let n = e.props.length; - for (; n--; ) { - let a = e.props[n]; - P(a) && (a = a()); - const f = A(a, r); - if (f && f.set) return f.set(t), !0; - } - return !1; - }, - getOwnPropertyDescriptor(e, r) { - let t = e.props.length; - for (; t--; ) { - let n = e.props[t]; - if ((P(n) && (n = n()), typeof n == "object" && n !== null && r in n)) { - const a = A(n, r); - return a && !a.configurable && (a.configurable = !0), a; - } - } - }, - has(e, r) { - if (r === x || r === D) return !1; - for (let t of e.props) if ((P(t) && (t = t()), t != null && r in t)) return !0; - return !1; - }, - ownKeys(e) { - const r = []; - for (let t of e.props) - if ((P(t) && (t = t()), !!t)) { - for (const n in t) r.includes(n) || r.push(n); - for (const n of Object.getOwnPropertySymbols(t)) r.includes(n) || r.push(n); - } - return r; - }, -}; -function pe(...e) { - return new Proxy({ props: e }, le); -} -function ve(e, r, t, n) { - var b; - var a = !te || (t & ae) !== 0, - f = (t & re) !== 0, - l = (t & ie) !== 0, - d = n, - p = !0, - S = () => (p && ((p = !1), (d = l ? ne(n) : n)), d), - u; - if (f) { - var m = x in e || D in e; - u = ((b = A(e, r)) == null ? void 0 : b.set) ?? (m && r in e ? (s) => (e[r] = s) : void 0); - } - var _, - o = !1; - f ? ([_, o] = fe(() => e[r])) : (_ = e[r]), _ === void 0 && n !== void 0 && ((_ = S()), u && (a && $(), u(_))); - var i; - if ( - (a - ? (i = () => { - var s = e[r]; - return s === void 0 ? S() : ((p = !0), s); - }) - : (i = () => { - var s = e[r]; - return s !== void 0 && (d = void 0), s === void 0 ? d : s; - }), - a && (t & z) === 0) - ) - return i; - if (u) { - var I = e.$$legacy; - return function (s, h) { - return arguments.length > 0 ? ((!a || !h || I || o) && u(h ? i() : s), s) : i(); - }; - } - var v = !1, - c = ((t & se) !== 0 ? J : Q)(() => ((v = !1), i())); - f && O(c); - var g = k; - return function (s, h) { - if (arguments.length > 0) { - const R = h ? O(c) : a && f ? V(s) : s; - return W(c, R), (v = !0), d !== void 0 && (d = R), s; - } - return (X && v) || (g.f & ee) !== 0 ? c.v : O(c); - }; -} -export { ce as i, ve as p, _e as r, pe as s, de as u }; diff --git a/frontend-backup/_app/immutable/chunks/5mOJ66sL.js b/frontend-backup/_app/immutable/chunks/5mOJ66sL.js deleted file mode 100644 index d23d011..0000000 --- a/frontend-backup/_app/immutable/chunks/5mOJ66sL.js +++ /dev/null @@ -1,85 +0,0 @@ -import { g as o } from "./DklPLC_x.js"; -import "./B2cHk4HI.js"; -import { v as i, b as a } from "./BDALf20I.js"; -import { b as p } from "./BNZUboE0.js"; -import { r as u } from "./Bke_korE.js"; -(function () { - try { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - t.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - e = new t.Error().stack; - e && ((t._sentryDebugIds = t._sentryDebugIds || {}), (t._sentryDebugIds[e] = "6745f234-f59d-4730-a832-4873b80dedc4"), (t._sentryDebugIdIdentifier = "sentry-dbid-6745f234-f59d-4730-a832-4873b80dedc4")); - })(); -} catch {} -const _ = () => "Reported users", - d = () => "Usuários denunciados", - O = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? _() : d()), - f = () => "No pending reports", - y = () => "Sem denúncias pendentes", - Q = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? f() : y()), - m = () => "Ticket", - g = () => "Ticket", - W = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? m() : g()), - x = () => "Times reported", - b = () => "Denúncias", - X = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? x() : b()), - C = () => "Timeout count", - h = () => "Contagem de timeouts", - ee = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? C() : h()), - I = () => "Last timeout reason", - v = () => "Motivo do último timeout", - te = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? I() : v()), - w = () => "Reported by", - D = () => "Denunciado por", - ne = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? w() : D()), - F = () => "Reason", - T = () => "Motivo", - oe = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? F() : T()), - k = () => "Time", - $ = () => "Hora", - re = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? k() : $()), - M = () => "Reported pixel", - R = () => "Pixel reportado", - se = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? M() : R()), - E = () => "Aggressor's Last pixel painted", - L = () => "Último pixel pintado pelo agressor", - ce = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? E() : L()), - j = () => "Accounts with same IP", - A = () => "Contas com mesmo IP", - le = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? j() : A()), - P = () => "Report", - S = () => "Denúncia", - ie = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? P() : S()), - Z = () => "User ID copied", - N = () => "ID do usuário copiado", - ae = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? Z() : N()), - U = (t) => `Copy user ID: #${t.userId}`, - z = (t) => `Copiar ID do usuário: #${t.userId}`, - pe = (t, e = {}) => ((e.locale ?? o()) === "en" ? U(t) : z(t)), - B = () => "Alliance ID copied", - H = () => "ID da aliança copiado", - ue = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? B() : H()); -var V = i( - '' -); -function _e(t, e) { - let n = u(e, ["$$slots", "$$events", "$$legacy"]); - var r = V(); - p(r, () => ({ display: "block", viewBox: "0 0 27 41", ...n })), a(t, r); -} -function de(t, e) { - let n = t[0], - r = e(n); - for (let s = 1; s < t.length; s++) { - const c = t[s], - l = e(c); - l > r && ((n = c), (r = l)); - } - return n; -} -export { _e as M, ie as a, ne as b, oe as c, se as d, W as e, pe as f, X as g, le as h, ee as i, te as j, ue as k, ce as l, de as m, Q as n, O as r, re as t, ae as u }; diff --git a/frontend-backup/_app/immutable/chunks/6TAPgKgc.js b/frontend-backup/_app/immutable/chunks/6TAPgKgc.js deleted file mode 100644 index b7c4c68..0000000 --- a/frontend-backup/_app/immutable/chunks/6TAPgKgc.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a22836e1-99fe-4372-8041-51d766e562e7",e._sentryDebugIdIdentifier="sentry-dbid-a22836e1-99fe-4372-8041-51d766e562e7")})()}catch{}const t=()=>"Search",a=()=>"Buscar",c=(e={},n={})=>(n.locale??o())==="en"?t():a(),l=()=>"Load more",s=()=>"Carregar mais",f=(e={},n={})=>(n.locale??o())==="en"?l():s();export{f as l,c as s}; diff --git a/frontend-backup/_app/immutable/chunks/B1GmkH4o.js b/frontend-backup/_app/immutable/chunks/B1GmkH4o.js deleted file mode 100644 index 0f8443f..0000000 --- a/frontend-backup/_app/immutable/chunks/B1GmkH4o.js +++ /dev/null @@ -1,334 +0,0 @@ -import { - g as D, - a0 as M, - j as H, - D as B, - h as N, - Y as F, - aV as W, - aW as X, - ao as J, - aX as Q, - aY as m, - aZ as x, - a_ as rr, - A as ir, - a$ as fr, - b0 as ar, - O as R, - b1 as tr, - b2 as sr, - an as ur, - b3 as er, - b4 as or, - aC as lr, - b5 as cr, - b6 as nr, - b7 as vr, -} from "./DUoKDNpf.js"; -function dr(r, f) { - var i = void 0, - a; - D(() => { - i !== (i = f()) && - (a && (M(a), (a = null)), - i && - (a = H(() => { - B(() => i(r)); - }))); - }); -} -function G(r) { - var f, - i, - a = ""; - if (typeof r == "string" || typeof r == "number") a += r; - else if (typeof r == "object") - if (Array.isArray(r)) { - var t = r.length; - for (f = 0; f < t; f++) r[f] && (i = G(r[f])) && (a && (a += " "), (a += i)); - } else for (i in r) r[i] && (a && (a += " "), (a += i)); - return a; -} -function br() { - for (var r, f, i = 0, a = "", t = arguments.length; i < t; i++) (r = arguments[i]) && (f = G(r)) && (a && (a += " "), (a += f)); - return a; -} -function gr(r) { - return typeof r == "object" ? br(r) : r ?? ""; -} -const Y = [ - ...` -\r\f \v\uFEFF`, -]; -function hr(r, f, i) { - var a = r == null ? "" : "" + r; - if ((f && (a = a ? a + " " + f : f), i)) { - for (var t in i) - if (i[t]) a = a ? a + " " + t : t; - else if (a.length) - for (var s = t.length, e = 0; (e = a.indexOf(t, e)) >= 0; ) { - var o = e + s; - (e === 0 || Y.includes(a[e - 1])) && (o === a.length || Y.includes(a[o])) ? (a = (e === 0 ? "" : a.substring(0, e)) + a.substring(o + 1)) : (e = o); - } - } - return a === "" ? null : a; -} -function k(r, f = !1) { - var i = f ? " !important;" : ";", - a = ""; - for (var t in r) { - var s = r[t]; - s != null && s !== "" && (a += " " + t + ": " + s + i); - } - return a; -} -function C(r) { - return r[0] !== "-" || r[1] !== "-" ? r.toLowerCase() : r; -} -function Ar(r, f) { - if (f) { - var i = "", - a, - t; - if ((Array.isArray(f) ? ((a = f[0]), (t = f[1])) : (a = f), r)) { - r = String(r) - .replaceAll(/\s*\/\*.*?\*\/\s*/g, "") - .trim(); - var s = !1, - e = 0, - o = !1, - v = []; - a && v.push(...Object.keys(a).map(C)), t && v.push(...Object.keys(t).map(C)); - var l = 0, - _ = -1; - const b = r.length; - for (var d = 0; d < b; d++) { - var n = r[d]; - if ((o ? n === "/" && r[d - 1] === "*" && (o = !1) : s ? s === n && (s = !1) : n === "/" && r[d + 1] === "*" ? (o = !0) : n === '"' || n === "'" ? (s = n) : n === "(" ? e++ : n === ")" && e--, !o && s === !1 && e === 0)) { - if (n === ":" && _ === -1) _ = d; - else if (n === ";" || d === b - 1) { - if (_ !== -1) { - var O = C(r.substring(l, _).trim()); - if (!v.includes(O)) { - n !== ";" && d++; - var S = r.substring(l, d).trim(); - i += " " + S + ";"; - } - } - (l = d + 1), (_ = -1); - } - } - } - } - return a && (i += k(a)), t && (i += k(t, !0)), (i = i.trim()), i === "" ? null : i; - } - return r == null ? null : String(r); -} -function _r(r, f, i, a, t, s) { - var e = r.__className; - if (N || e !== i || e === void 0) { - var o = hr(i, a, s); - (!N || o !== r.getAttribute("class")) && (o == null ? r.removeAttribute("class") : f ? (r.className = o) : r.setAttribute("class", o)), (r.__className = i); - } else if (s && t !== s) - for (var v in s) { - var l = !!s[v]; - (t == null || l !== !!t[v]) && r.classList.toggle(v, l); - } - return s; -} -function w(r, f = {}, i, a) { - for (var t in i) { - var s = i[t]; - f[t] !== s && (i[t] == null ? r.style.removeProperty(t) : r.style.setProperty(t, s, a)); - } -} -function Sr(r, f, i, a) { - var t = r.__style; - if (N || t !== f) { - var s = Ar(f, a); - (!N || s !== r.getAttribute("style")) && (s == null ? r.removeAttribute("style") : (r.style.cssText = s)), (r.__style = f); - } else a && (Array.isArray(a) ? (w(r, i == null ? void 0 : i[0], a[0]), w(r, i == null ? void 0 : i[1], a[1], "important")) : w(r, i, a)); - return a; -} -function $(r, f, i = !1) { - if (r.multiple) { - if (f == null) return; - if (!F(f)) return W(); - for (var a of r.options) a.selected = f.includes(U(a)); - return; - } - for (a of r.options) { - var t = U(a); - if (X(t, f)) { - a.selected = !0; - return; - } - } - (!i || f !== void 0) && (r.selectedIndex = -1); -} -function Nr(r) { - var f = new MutationObserver(() => { - $(r, r.__value); - }); - f.observe(r, { childList: !0, subtree: !0, attributes: !0, attributeFilter: ["value"] }), - J(() => { - f.disconnect(); - }); -} -function U(r) { - return "__value" in r ? r.__value : r.value; -} -const L = Symbol("class"), - T = Symbol("style"), - K = Symbol("is custom element"), - Z = Symbol("is html"); -function Tr(r) { - if (N) { - var f = !1, - i = () => { - if (!f) { - if (((f = !0), r.hasAttribute("value"))) { - var a = r.value; - p(r, "value", null), (r.value = a); - } - if (r.hasAttribute("checked")) { - var t = r.checked; - p(r, "checked", null), (r.checked = t); - } - } - }; - (r.__on_r = i), nr(i), vr(); - } -} -function pr(r, f) { - var i = j(r); - i.value === (i.value = f ?? void 0) || (r.value === f && (f !== 0 || r.nodeName !== "PROGRESS")) || (r.value = f ?? ""); -} -function Or(r, f) { - f ? r.hasAttribute("selected") || r.setAttribute("selected", "") : r.removeAttribute("selected"); -} -function p(r, f, i, a) { - var t = j(r); - (N && ((t[f] = r.getAttribute(f)), f === "src" || f === "srcset" || (f === "href" && r.nodeName === "LINK"))) || - (t[f] !== (t[f] = i) && (f === "loading" && (r[rr] = i), i == null ? r.removeAttribute(f) : typeof i != "string" && q(r).includes(f) ? (r[f] = i) : r.setAttribute(f, i))); -} -function Er(r, f, i, a, t = !1) { - var s = j(r), - e = s[K], - o = !s[Z]; - let v = N && e; - v && R(!1); - var l = f || {}, - _ = r.tagName === "OPTION"; - for (var d in f) d in i || (i[d] = null); - i.class ? (i.class = gr(i.class)) : (a || i[L]) && (i.class = null), i[T] && (i.style ?? (i.style = null)); - var n = q(r); - for (const u in i) { - let c = i[u]; - if (_ && u === "value" && c == null) { - (r.value = r.__value = ""), (l[u] = c); - continue; - } - if (u === "class") { - var O = r.namespaceURI === "http://www.w3.org/1999/xhtml"; - _r(r, O, c, a, f == null ? void 0 : f[L], i[L]), (l[u] = c), (l[L] = i[L]); - continue; - } - if (u === "style") { - Sr(r, c, f == null ? void 0 : f[T], i[T]), (l[u] = c), (l[T] = i[T]); - continue; - } - var S = l[u]; - if (!(c === S && !(c === void 0 && r.hasAttribute(u)))) { - l[u] = c; - var b = u[0] + u[1]; - if (b !== "$$") - if (b === "on") { - const A = {}, - E = "$$" + u; - let g = u.slice(2); - var I = cr(g); - if ((tr(g) && ((g = g.slice(0, -7)), (A.capture = !0)), !I && S)) { - if (c != null) continue; - r.removeEventListener(g, l[E], A), (l[E] = null); - } - if (c != null) - if (I) (r[`__${g}`] = c), ur([g]); - else { - let y = function (z) { - l[u].call(this, z); - }; - l[E] = sr(g, r, y, A); - } - else I && (r[`__${g}`] = void 0); - } else if (u === "style") p(r, u, c); - else if (u === "autofocus") er(r, !!c); - else if (!e && (u === "__value" || (u === "value" && c != null))) r.value = r.__value = c; - else if (u === "selected" && _) Or(r, c); - else { - var h = u; - o || (h = or(h)); - var P = h === "defaultValue" || h === "defaultChecked"; - if (c == null && !e && !P) - if (((s[u] = null), h === "value" || h === "checked")) { - let A = r; - const E = f === void 0; - if (h === "value") { - let g = A.defaultValue; - A.removeAttribute(h), (A.defaultValue = g), (A.value = A.__value = E ? g : null); - } else { - let g = A.defaultChecked; - A.removeAttribute(h), (A.defaultChecked = g), (A.checked = E ? g : !1); - } - } else r.removeAttribute(u); - else P || (n.includes(h) && (e || typeof c != "string")) ? ((r[h] = c), h in s && (s[h] = lr)) : typeof c != "function" && p(r, h, c); - } - } - } - return v && R(!0), l; -} -function Ir(r, f, i = [], a = [], t, s = !1) { - Q(i, a, (e) => { - var o = void 0, - v = {}, - l = r.nodeName === "SELECT", - _ = !1; - if ( - (D(() => { - var n = f(...e.map(ir)), - O = Er(r, o, n, t, s); - _ && l && "value" in n && $(r, n.value); - for (let b of Object.getOwnPropertySymbols(v)) n[b] || M(v[b]); - for (let b of Object.getOwnPropertySymbols(n)) { - var S = n[b]; - b.description === fr && (!o || S !== o[b]) && (v[b] && M(v[b]), (v[b] = H(() => dr(r, () => S)))), (O[b] = S); - } - o = O; - }), - l) - ) { - var d = r; - B(() => { - $(d, o.value, !0), Nr(d); - }); - } - _ = !0; - }); -} -function j(r) { - return r.__attributes ?? (r.__attributes = { [K]: r.nodeName.includes("-"), [Z]: r.namespaceURI === m }); -} -var V = new Map(); -function q(r) { - var f = V.get(r.nodeName); - if (f) return f; - V.set(r.nodeName, (f = [])); - for (var i, a = r, t = Element.prototype; t !== a; ) { - i = ar(a); - for (var s in i) i[s].set && f.push(s); - a = x(a); - } - return f; -} -export { L as C, T as S, Ir as a, p as b, gr as c, Sr as d, dr as e, pr as f, br as g, Tr as r, _r as s }; diff --git a/frontend-backup/_app/immutable/chunks/B2cHk4HI.js b/frontend-backup/_app/immutable/chunks/B2cHk4HI.js deleted file mode 100644 index 333cff1..0000000 --- a/frontend-backup/_app/immutable/chunks/B2cHk4HI.js +++ /dev/null @@ -1,16 +0,0 @@ -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - d = new e.Error().stack; - d && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[d] = "de59cd8a-506f-43e6-a3d3-bc92e3ebaf74"), (e._sentryDebugIdIdentifier = "sentry-dbid-de59cd8a-506f-43e6-a3d3-bc92e3ebaf74")); - })(); -} catch {} -const f = "5"; -var n; -typeof window < "u" && ((n = window.__svelte ?? (window.__svelte = {})).v ?? (n.v = new Set())).add(f); diff --git a/frontend-backup/_app/immutable/chunks/B4HM4TqG.js b/frontend-backup/_app/immutable/chunks/B4HM4TqG.js deleted file mode 100644 index 4af25a6..0000000 --- a/frontend-backup/_app/immutable/chunks/B4HM4TqG.js +++ /dev/null @@ -1,1539 +0,0 @@ -var ee = (t) => { - throw TypeError(t); -}; -var Be = (t, e, n) => e.has(t) || ee("Cannot " + n); -var b = (t, e, n) => (Be(t, e, "read from private field"), n ? n.call(t) : e.get(t)), - P = (t, e, n) => (e.has(t) ? ee("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n)); -import { v as Ve, o as ne, a as Me } from "./4WsUhDWi.js"; -import { az as Tt, aZ as Ge, au as C, g as N, aw as O, aL as re } from "./BDALf20I.js"; -(function () { - try { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - t.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - e = new t.Error().stack; - e && ((t._sentryDebugIds = t._sentryDebugIds || {}), (t._sentryDebugIds[e] = "d63279e9-2fab-4f68-a61f-2ff92c94d1bc"), (t._sentryDebugIdIdentifier = "sentry-dbid-d63279e9-2fab-4f68-a61f-2ff92c94d1bc")); - })(); -} catch {} -const V = []; -function Dt(t, e = Tt) { - let n = null; - const a = new Set(); - function r(o) { - if (Ge(t, o) && ((t = o), n)) { - const c = !V.length; - for (const l of a) l[1](), V.push(l, t); - if (c) { - for (let l = 0; l < V.length; l += 2) V[l][0](V[l + 1]); - V.length = 0; - } - } - } - function s(o) { - r(o(t)); - } - function i(o, c = Tt) { - const l = [o, c]; - return ( - a.add(l), - a.size === 1 && (n = e(r, s) || Tt), - o(t), - () => { - a.delete(l), a.size === 0 && n && (n(), (n = null)); - } - ); - } - return { set: r, update: s, subscribe: i }; -} -class Et { - constructor(e, n) { - (this.status = e), typeof n == "string" ? (this.body = { message: n }) : n ? (this.body = n) : (this.body = { message: `Error: ${e}` }); - } - toString() { - return JSON.stringify(this.body); - } -} -class qt { - constructor(e, n) { - (this.status = e), (this.location = n); - } -} -class Ft extends Error { - constructor(e, n, a) { - super(a), (this.status = e), (this.text = n); - } -} -new URL("sveltekit-internal://"); -function He(t, e) { - return t === "/" || e === "ignore" ? t : e === "never" ? (t.endsWith("/") ? t.slice(0, -1) : t) : e === "always" && !t.endsWith("/") ? t + "/" : t; -} -function Ke(t) { - return t.split("%25").map(decodeURI).join("%25"); -} -function Ye(t) { - for (const e in t) t[e] = decodeURIComponent(t[e]); - return t; -} -function Ut({ href: t }) { - return t.split("#")[0]; -} -function ze(t, e, n, a = !1) { - const r = new URL(t); - Object.defineProperty(r, "searchParams", { - value: new Proxy(r.searchParams, { - get(i, o) { - if (o === "get" || o === "getAll" || o === "has") return (l) => (n(l), i[o](l)); - e(); - const c = Reflect.get(i, o); - return typeof c == "function" ? c.bind(i) : c; - }, - }), - enumerable: !0, - configurable: !0, - }); - const s = ["href", "pathname", "search", "toString", "toJSON"]; - a && s.push("hash"); - for (const i of s) - Object.defineProperty(r, i, { - get() { - return e(), t[i]; - }, - enumerable: !0, - configurable: !0, - }); - return r; -} -function We(...t) { - let e = 5381; - for (const n of t) - if (typeof n == "string") { - let a = n.length; - for (; a; ) e = (e * 33) ^ n.charCodeAt(--a); - } else if (ArrayBuffer.isView(n)) { - const a = new Uint8Array(n.buffer, n.byteOffset, n.byteLength); - let r = a.length; - for (; r; ) e = (e * 33) ^ a[--r]; - } else throw new TypeError("value must be a string or TypedArray"); - return (e >>> 0).toString(36); -} -new TextEncoder(); -const Je = new TextDecoder(); -function Xe(t) { - const e = atob(t), - n = new Uint8Array(e.length); - for (let a = 0; a < e.length; a++) n[a] = e.charCodeAt(a); - return n; -} -const Ze = window.fetch; -window.fetch = (t, e) => ((t instanceof Request ? t.method : (e == null ? void 0 : e.method) || "GET") !== "GET" && z.delete(Bt(t)), Ze(t, e)); -const z = new Map(); -function Qe(t, e) { - const n = Bt(t, e), - a = document.querySelector(n); - if (a != null && a.textContent) { - a.remove(); - let { body: r, ...s } = JSON.parse(a.textContent); - const i = a.getAttribute("data-ttl"); - return i && z.set(n, { body: r, init: s, ttl: 1e3 * Number(i) }), a.getAttribute("data-b64") !== null && (r = Xe(r)), Promise.resolve(new Response(r, s)); - } - return window.fetch(t, e); -} -function tn(t, e, n) { - if (z.size > 0) { - const a = Bt(t, n), - r = z.get(a); - if (r) { - if (performance.now() < r.ttl && ["default", "force-cache", "only-if-cached", void 0].includes(n == null ? void 0 : n.cache)) return new Response(r.body, r.init); - z.delete(a); - } - } - return window.fetch(e, n); -} -function Bt(t, e) { - let a = `script[data-sveltekit-fetched][data-url=${JSON.stringify(t instanceof Request ? t.url : t)}]`; - if ((e != null && e.headers) || (e != null && e.body)) { - const r = []; - e.headers && r.push([...new Headers(e.headers)].join(",")), e.body && (typeof e.body == "string" || ArrayBuffer.isView(e.body)) && r.push(e.body), (a += `[data-hash="${We(...r)}"]`); - } - return a; -} -const en = /^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/; -function nn(t) { - const e = []; - return { - pattern: - t === "/" - ? /^\/$/ - : new RegExp( - `^${an(t) - .map((a) => { - const r = /^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a); - if (r) return e.push({ name: r[1], matcher: r[2], optional: !1, rest: !0, chained: !0 }), "(?:/([^]*))?"; - const s = /^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a); - if (s) return e.push({ name: s[1], matcher: s[2], optional: !0, rest: !1, chained: !0 }), "(?:/([^/]+))?"; - if (!a) return; - const i = a.split(/\[(.+?)\](?!\])/); - return ( - "/" + - i - .map((c, l) => { - if (l % 2) { - if (c.startsWith("x+")) return xt(String.fromCharCode(parseInt(c.slice(2), 16))); - if (c.startsWith("u+")) - return xt( - String.fromCharCode( - ...c - .slice(2) - .split("-") - .map((u) => parseInt(u, 16)) - ) - ); - const d = en.exec(c), - [, p, y, f, m] = d; - return e.push({ name: f, matcher: m, optional: !!p, rest: !!y, chained: y ? l === 1 && i[0] === "" : !1 }), y ? "([^]*?)" : p ? "([^/]*)?" : "([^/]+?)"; - } - return xt(c); - }) - .join("") - ); - }) - .join("")}/?$` - ), - params: e, - }; -} -function rn(t) { - return t !== "" && !/^\([^)]+\)$/.test(t); -} -function an(t) { - return t.slice(1).split("/").filter(rn); -} -function on(t, e, n) { - const a = {}, - r = t.slice(1), - s = r.filter((o) => o !== void 0); - let i = 0; - for (let o = 0; o < e.length; o += 1) { - const c = e[o]; - let l = r[o - i]; - if ( - (c.chained && - c.rest && - i && - ((l = r - .slice(o - i, o + 1) - .filter((d) => d) - .join("/")), - (i = 0)), - l === void 0) - ) { - c.rest && (a[c.name] = ""); - continue; - } - if (!c.matcher || n[c.matcher](l)) { - a[c.name] = l; - const d = e[o + 1], - p = r[o + 1]; - d && !d.rest && d.optional && p && c.chained && (i = 0), !d && !p && Object.keys(a).length === s.length && (i = 0); - continue; - } - if (c.optional && c.chained) { - i++; - continue; - } - return; - } - if (!i) return a; -} -function xt(t) { - return t - .normalize() - .replace(/[[\]]/g, "\\$&") - .replace(/%/g, "%25") - .replace(/\//g, "%2[Ff]") - .replace(/\?/g, "%3[Ff]") - .replace(/#/g, "%23") - .replace(/[.*+?^${}()|\\]/g, "\\$&"); -} -function sn({ nodes: t, server_loads: e, dictionary: n, matchers: a }) { - const r = new Set(e); - return Object.entries(n).map(([o, [c, l, d]]) => { - const { pattern: p, params: y } = nn(o), - f = { - id: o, - exec: (m) => { - const u = p.exec(m); - if (u) return on(u, y, a); - }, - errors: [1, ...(d || [])].map((m) => t[m]), - layouts: [0, ...(l || [])].map(i), - leaf: s(c), - }; - return (f.errors.length = f.layouts.length = Math.max(f.errors.length, f.layouts.length)), f; - }); - function s(o) { - const c = o < 0; - return c && (o = ~o), [c, t[o]]; - } - function i(o) { - return o === void 0 ? o : [r.has(o), t[o]]; - } -} -function ve(t, e = JSON.parse) { - try { - return e(sessionStorage[t]); - } catch {} -} -function ae(t, e, n = JSON.stringify) { - const a = n(e); - try { - sessionStorage[t] = a; - } catch {} -} -var ge; -const x = ((ge = globalThis.__sveltekit_1jtafcq) == null ? void 0 : ge.base) ?? ""; -var me; -const cn = ((me = globalThis.__sveltekit_1jtafcq) == null ? void 0 : me.assets) ?? x, - be = "sveltekit:snapshot", - Ee = "sveltekit:scroll", - Ae = "sveltekit:states", - ln = "sveltekit:pageurl", - G = "sveltekit:history", - Z = "sveltekit:navigation", - q = { tap: 1, hover: 2, viewport: 3, eager: 4, off: -1, false: -1 }, - dt = location.origin; -function Vt(t) { - if (t instanceof URL) return t; - let e = document.baseURI; - if (!e) { - const n = document.getElementsByTagName("base"); - e = n.length ? n[0].href : document.URL; - } - return new URL(t, e); -} -function At() { - return { x: pageXOffset, y: pageYOffset }; -} -function M(t, e) { - return t.getAttribute(`data-sveltekit-${e}`); -} -const oe = { ...q, "": q.hover }; -function ke(t) { - let e = t.assignedSlot ?? t.parentNode; - return (e == null ? void 0 : e.nodeType) === 11 && (e = e.host), e; -} -function Se(t, e) { - for (; t && t !== e; ) { - if (t.nodeName.toUpperCase() === "A" && t.hasAttribute("href")) return t; - t = ke(t); - } -} -function Nt(t, e, n) { - let a; - try { - if (((a = new URL(t instanceof SVGAElement ? t.href.baseVal : t.href, document.baseURI)), n && a.hash.match(/^#[^/]/))) { - const o = location.hash.split("#")[1] || "/"; - a.hash = `#${o}${a.hash}`; - } - } catch {} - const r = t instanceof SVGAElement ? t.target.baseVal : t.target, - s = !a || !!r || kt(a, e, n) || (t.getAttribute("rel") || "").split(/\s+/).includes("external"), - i = (a == null ? void 0 : a.origin) === dt && t.hasAttribute("download"); - return { url: a, external: s, target: r, download: i }; -} -function pt(t) { - let e = null, - n = null, - a = null, - r = null, - s = null, - i = null, - o = t; - for (; o && o !== document.documentElement; ) - a === null && (a = M(o, "preload-code")), - r === null && (r = M(o, "preload-data")), - e === null && (e = M(o, "keepfocus")), - n === null && (n = M(o, "noscroll")), - s === null && (s = M(o, "reload")), - i === null && (i = M(o, "replacestate")), - (o = ke(o)); - function c(l) { - switch (l) { - case "": - case "true": - return !0; - case "off": - case "false": - return !1; - default: - return; - } - } - return { preload_code: oe[a ?? "off"], preload_data: oe[r ?? "off"], keepfocus: c(e), noscroll: c(n), reload: c(s), replace_state: c(i) }; -} -function se(t) { - const e = Dt(t); - let n = !0; - function a() { - (n = !0), e.update((i) => i); - } - function r(i) { - (n = !1), e.set(i); - } - function s(i) { - let o; - return e.subscribe((c) => { - (o === void 0 || (n && c !== o)) && i((o = c)); - }); - } - return { notify: a, set: r, subscribe: s }; -} -const Re = { v: () => {} }; -function fn() { - const { set: t, subscribe: e } = Dt(!1); - let n; - async function a() { - clearTimeout(n); - try { - const r = await fetch(`${cn}/_app/version.json`, { headers: { pragma: "no-cache", "cache-control": "no-cache" } }); - if (!r.ok) return !1; - const i = (await r.json()).version !== Ve; - return i && (t(!0), Re.v(), clearTimeout(n)), i; - } catch { - return !1; - } - } - return { subscribe: e, check: a }; -} -function kt(t, e, n) { - return t.origin !== dt || !t.pathname.startsWith(e) ? !0 : n ? !(t.pathname === e + "/" || t.pathname === e + "/index.html" || (t.protocol === "file:" && t.pathname.replace(/\/[^/]+\.html?$/, "") === e)) : !1; -} -function Zn(t) {} -function ie(t) { - const e = dn(t), - n = new ArrayBuffer(e.length), - a = new DataView(n); - for (let r = 0; r < n.byteLength; r++) a.setUint8(r, e.charCodeAt(r)); - return n; -} -const un = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -function dn(t) { - t.length % 4 === 0 && (t = t.replace(/==?$/, "")); - let e = "", - n = 0, - a = 0; - for (let r = 0; r < t.length; r++) - (n <<= 6), (n |= un.indexOf(t[r])), (a += 6), a === 24 && ((e += String.fromCharCode((n & 16711680) >> 16)), (e += String.fromCharCode((n & 65280) >> 8)), (e += String.fromCharCode(n & 255)), (n = a = 0)); - return a === 12 ? ((n >>= 4), (e += String.fromCharCode(n))) : a === 18 && ((n >>= 2), (e += String.fromCharCode((n & 65280) >> 8)), (e += String.fromCharCode(n & 255))), e; -} -const hn = -1, - pn = -2, - gn = -3, - mn = -4, - yn = -5, - _n = -6; -function wn(t, e) { - if (typeof t == "number") return r(t, !0); - if (!Array.isArray(t) || t.length === 0) throw new Error("Invalid input"); - const n = t, - a = Array(n.length); - function r(s, i = !1) { - if (s === hn) return; - if (s === gn) return NaN; - if (s === mn) return 1 / 0; - if (s === yn) return -1 / 0; - if (s === _n) return -0; - if (i) throw new Error("Invalid input"); - if (s in a) return a[s]; - const o = n[s]; - if (!o || typeof o != "object") a[s] = o; - else if (Array.isArray(o)) - if (typeof o[0] == "string") { - const c = o[0], - l = e == null ? void 0 : e[c]; - if (l) return (a[s] = l(r(o[1]))); - switch (c) { - case "Date": - a[s] = new Date(o[1]); - break; - case "Set": - const d = new Set(); - a[s] = d; - for (let f = 1; f < o.length; f += 1) d.add(r(o[f])); - break; - case "Map": - const p = new Map(); - a[s] = p; - for (let f = 1; f < o.length; f += 2) p.set(r(o[f]), r(o[f + 1])); - break; - case "RegExp": - a[s] = new RegExp(o[1], o[2]); - break; - case "Object": - a[s] = Object(o[1]); - break; - case "BigInt": - a[s] = BigInt(o[1]); - break; - case "null": - const y = Object.create(null); - a[s] = y; - for (let f = 1; f < o.length; f += 2) y[o[f]] = r(o[f + 1]); - break; - case "Int8Array": - case "Uint8Array": - case "Uint8ClampedArray": - case "Int16Array": - case "Uint16Array": - case "Int32Array": - case "Uint32Array": - case "Float32Array": - case "Float64Array": - case "BigInt64Array": - case "BigUint64Array": { - const f = globalThis[c], - m = o[1], - u = ie(m), - h = new f(u); - a[s] = h; - break; - } - case "ArrayBuffer": { - const f = o[1], - m = ie(f); - a[s] = m; - break; - } - default: - throw new Error(`Unknown type ${c}`); - } - } else { - const c = new Array(o.length); - a[s] = c; - for (let l = 0; l < o.length; l += 1) { - const d = o[l]; - d !== pn && (c[l] = r(d)); - } - } - else { - const c = {}; - a[s] = c; - for (const l in o) { - const d = o[l]; - c[l] = r(d); - } - } - return a[s]; - } - return r(0); -} -const Ie = new Set(["load", "prerender", "csr", "ssr", "trailingSlash", "config"]); -[...Ie]; -const vn = new Set([...Ie]); -[...vn]; -function bn(t) { - return t.filter((e) => e != null); -} -const En = "x-sveltekit-invalidated", - An = "x-sveltekit-trailing-slash"; -function gt(t) { - return t instanceof Et || t instanceof Ft ? t.status : 500; -} -function kn(t) { - return t instanceof Ft ? t.text : "Internal Error"; -} -let L, Q, Pt; -const Sn = ne.toString().includes("$$") || /function \w+\(\) \{\}/.test(ne.toString()); -var nt, rt, at, ot, st, it, ct, lt, ye, ft, _e, ut, we; -Sn - ? ((L = { data: {}, form: null, error: null, params: {}, route: { id: null }, state: {}, status: -1, url: new URL("https://example.com") }), (Q = { current: null }), (Pt = { current: !1 })) - : ((L = new ((ye = class { - constructor() { - P(this, nt, C({})); - P(this, rt, C(null)); - P(this, at, C(null)); - P(this, ot, C({})); - P(this, st, C({ id: null })); - P(this, it, C({})); - P(this, ct, C(-1)); - P(this, lt, C(new URL("https://example.com"))); - } - get data() { - return N(b(this, nt)); - } - set data(e) { - O(b(this, nt), e); - } - get form() { - return N(b(this, rt)); - } - set form(e) { - O(b(this, rt), e); - } - get error() { - return N(b(this, at)); - } - set error(e) { - O(b(this, at), e); - } - get params() { - return N(b(this, ot)); - } - set params(e) { - O(b(this, ot), e); - } - get route() { - return N(b(this, st)); - } - set route(e) { - O(b(this, st), e); - } - get state() { - return N(b(this, it)); - } - set state(e) { - O(b(this, it), e); - } - get status() { - return N(b(this, ct)); - } - set status(e) { - O(b(this, ct), e); - } - get url() { - return N(b(this, lt)); - } - set url(e) { - O(b(this, lt), e); - } - }), - (nt = new WeakMap()), - (rt = new WeakMap()), - (at = new WeakMap()), - (ot = new WeakMap()), - (st = new WeakMap()), - (it = new WeakMap()), - (ct = new WeakMap()), - (lt = new WeakMap()), - ye)()), - (Q = new ((_e = class { - constructor() { - P(this, ft, C(null)); - } - get current() { - return N(b(this, ft)); - } - set current(e) { - O(b(this, ft), e); - } - }), - (ft = new WeakMap()), - _e)()), - (Pt = new ((we = class { - constructor() { - P(this, ut, C(!1)); - } - get current() { - return N(b(this, ut)); - } - set current(e) { - O(b(this, ut), e); - } - }), - (ut = new WeakMap()), - we)()), - (Re.v = () => (Pt.current = !0))); -function Rn(t) { - Object.assign(L, t); -} -const In = "/__data.json", - Ln = ".html__data.json"; -function Tn(t) { - return t.endsWith(".html") ? t.replace(/\.html$/, Ln) : t.replace(/\/$/, "") + In; -} -const ce = { - spanContext() { - return Un; - }, - setAttribute() { - return this; - }, - setAttributes() { - return this; - }, - addEvent() { - return this; - }, - setStatus() { - return this; - }, - updateName() { - return this; - }, - end() { - return this; - }, - isRecording() { - return !1; - }, - recordException() { - return this; - }, - addLink() { - return this; - }, - addLinks() { - return this; - }, - }, - Un = { traceId: "", spanId: "", traceFlags: 0 }, - { onMount: xn, tick: Pn } = Me, - Cn = new Set(["icon", "shortcut icon", "apple-touch-icon"]), - B = ve(Ee) ?? {}, - tt = ve(be) ?? {}, - $ = { url: se({}), page: se({}), navigating: Dt(null), updated: fn() }; -function Mt(t) { - B[t] = At(); -} -function Nn(t, e) { - let n = t + 1; - for (; B[n]; ) delete B[n], (n += 1); - for (n = e + 1; tt[n]; ) delete tt[n], (n += 1); -} -function K(t) { - return (location.href = t.href), new Promise(() => {}); -} -async function Le() { - if ("serviceWorker" in navigator) { - const t = await navigator.serviceWorker.getRegistration(x || "/"); - t && (await t.update()); - } -} -function le() {} -let Gt, Ot, mt, j, jt, E; -globalThis.__sveltekit_1jtafcq.data; -const yt = [], - _t = []; -let T = null; -const ht = new Map(), - Ht = new Set(), - On = new Set(), - W = new Set(); -let w = { branch: [], error: null, url: null }, - Kt = !1, - wt = !1, - fe = !0, - et = !1, - Y = !1, - Te = !1, - Yt = !1, - Ue, - S, - U, - F; -const J = new Set(), - ue = new Map(); -async function nr(t, e, n) { - var s, i, o, c; - document.URL !== location.href && (location.href = location.href), - (E = t), - await ((i = (s = t.hooks).init) == null ? void 0 : i.call(s)), - (Gt = sn(t)), - (j = document.documentElement), - (jt = e), - (Ot = t.nodes[0]), - (mt = t.nodes[1]), - Ot(), - mt(), - (S = (o = history.state) == null ? void 0 : o[G]), - (U = (c = history.state) == null ? void 0 : c[Z]), - S || ((S = U = Date.now()), history.replaceState({ ...history.state, [G]: S, [Z]: U }, "")); - const a = B[S]; - function r() { - a && ((history.scrollRestoration = "manual"), scrollTo(a.x, a.y)); - } - n ? (r(), await Kn(jt, n)) : (await X({ type: "enter", url: Vt(E.hash ? zn(new URL(location.href)) : location.href), replace_state: !0 }), r()), Hn(); -} -function jn() { - (yt.length = 0), (Yt = !1); -} -function xe(t) { - _t.some((e) => (e == null ? void 0 : e.snapshot)) && - (tt[t] = _t.map((e) => { - var n; - return (n = e == null ? void 0 : e.snapshot) == null ? void 0 : n.capture(); - })); -} -function Pe(t) { - var e; - (e = tt[t]) == null || - e.forEach((n, a) => { - var r, s; - (s = (r = _t[a]) == null ? void 0 : r.snapshot) == null || s.restore(n); - }); -} -function de() { - Mt(S), ae(Ee, B), xe(U), ae(be, tt); -} -async function zt(t, e, n, a) { - let r; - const s = await X({ - type: "goto", - url: Vt(t), - keepfocus: e.keepFocus, - noscroll: e.noScroll, - replace_state: e.replaceState, - state: e.state, - redirect_count: n, - nav_token: a, - accept: () => { - e.invalidateAll && ((Yt = !0), (r = [...ue.keys()])), e.invalidate && e.invalidate.forEach(Gn); - }, - }); - return ( - e.invalidateAll && - re() - .then(re) - .then(() => { - ue.forEach(({ resource: i }, o) => { - var c; - r != null && r.includes(o) && ((c = i.refresh) == null || c.call(i)); - }); - }), - s - ); -} -async function $n(t) { - if (t.id !== (T == null ? void 0 : T.id)) { - const e = {}; - J.add(e), (T = { id: t.id, token: e, promise: Oe({ ...t, preload: e }).then((n) => (J.delete(e), n.type === "loaded" && n.state.error && (T = null), n)) }); - } - return T.promise; -} -async function Ct(t) { - var n; - const e = (n = await Rt(t, !1)) == null ? void 0 : n.route; - e && (await Promise.all([...e.layouts, e.leaf].map((a) => (a == null ? void 0 : a[1]())))); -} -function Ce(t, e, n) { - var r; - w = t.state; - const a = document.querySelector("style[data-sveltekit]"); - if ((a && a.remove(), Object.assign(L, t.props.page), (Ue = new E.root({ target: e, props: { ...t.props, stores: $, components: _t }, hydrate: n, sync: !1 })), Pe(U), n)) { - const s = { from: null, to: { params: w.params, route: { id: ((r = w.route) == null ? void 0 : r.id) ?? null }, url: new URL(location.href) }, willUnload: !1, type: "enter", complete: Promise.resolve() }; - W.forEach((i) => i(s)); - } - wt = !0; -} -function vt({ url: t, params: e, branch: n, status: a, error: r, route: s, form: i }) { - let o = "never"; - if (x && (t.pathname === x || t.pathname === x + "/")) o = "always"; - else for (const f of n) (f == null ? void 0 : f.slash) !== void 0 && (o = f.slash); - (t.pathname = He(t.pathname, o)), (t.search = t.search); - const c = { type: "loaded", state: { url: t, params: e, branch: n, error: r, route: s }, props: { constructors: bn(n).map((f) => f.node.component), page: Zt(L) } }; - i !== void 0 && (c.props.form = i); - let l = {}, - d = !L, - p = 0; - for (let f = 0; f < Math.max(n.length, w.branch.length); f += 1) { - const m = n[f], - u = w.branch[f]; - (m == null ? void 0 : m.data) !== (u == null ? void 0 : u.data) && (d = !0), m && ((l = { ...l, ...m.data }), d && (c.props[`data_${p}`] = l), (p += 1)); - } - return ( - (!w.url || t.href !== w.url.href || w.error !== r || (i !== void 0 && i !== L.form) || d) && - (c.props.page = { error: r, params: e, route: { id: (s == null ? void 0 : s.id) ?? null }, state: {}, status: a, url: new URL(t), form: i ?? null, data: d ? l : L.data }), - c - ); -} -async function Wt({ loader: t, parent: e, url: n, params: a, route: r, server_data_node: s }) { - var d, p, y; - let i = null, - o = !0; - const c = { dependencies: new Set(), params: new Set(), parent: !1, route: !1, url: !1, search_params: new Set() }, - l = await t(); - if ((d = l.universal) != null && d.load) { - let f = function (...u) { - for (const h of u) { - const { href: A } = new URL(h, n); - c.dependencies.add(A); - } - }; - const m = { - tracing: { enabled: !1, root: ce, current: ce }, - route: new Proxy(r, { get: (u, h) => (o && (c.route = !0), u[h]) }), - params: new Proxy(a, { get: (u, h) => (o && c.params.add(h), u[h]) }), - data: (s == null ? void 0 : s.data) ?? null, - url: ze( - n, - () => { - o && (c.url = !0); - }, - (u) => { - o && c.search_params.add(u); - }, - E.hash - ), - async fetch(u, h) { - u instanceof Request && - (h = { - body: u.method === "GET" || u.method === "HEAD" ? void 0 : await u.blob(), - cache: u.cache, - credentials: u.credentials, - headers: [...u.headers].length > 0 ? (u == null ? void 0 : u.headers) : void 0, - integrity: u.integrity, - keepalive: u.keepalive, - method: u.method, - mode: u.mode, - redirect: u.redirect, - referrer: u.referrer, - referrerPolicy: u.referrerPolicy, - signal: u.signal, - ...h, - }); - const { resolved: A, promise: R } = Ne(u, h, n); - return o && f(A.href), R; - }, - setHeaders: () => {}, - depends: f, - parent() { - return o && (c.parent = !0), e(); - }, - untrack(u) { - o = !1; - try { - return u(); - } finally { - o = !0; - } - }, - }; - i = (await l.universal.load.call(null, m)) ?? null; - } - return { - node: l, - loader: t, - server: s, - universal: (p = l.universal) != null && p.load ? { type: "data", data: i, uses: c } : null, - data: i ?? (s == null ? void 0 : s.data) ?? null, - slash: ((y = l.universal) == null ? void 0 : y.trailingSlash) ?? (s == null ? void 0 : s.slash), - }; -} -function Ne(t, e, n) { - let a = t instanceof Request ? t.url : t; - const r = new URL(a, n); - r.origin === n.origin && (a = r.href.slice(n.origin.length)); - const s = wt ? tn(a, r.href, e) : Qe(a, e); - return { resolved: r, promise: s }; -} -function he(t, e, n, a, r, s) { - if (Yt) return !0; - if (!r) return !1; - if ((r.parent && t) || (r.route && e) || (r.url && n)) return !0; - for (const i of r.search_params) if (a.has(i)) return !0; - for (const i of r.params) if (s[i] !== w.params[i]) return !0; - for (const i of r.dependencies) if (yt.some((o) => o(new URL(i)))) return !0; - return !1; -} -function Jt(t, e) { - return (t == null ? void 0 : t.type) === "data" ? t : (t == null ? void 0 : t.type) === "skip" ? e ?? null : null; -} -function Dn(t, e) { - if (!t) return new Set(e.searchParams.keys()); - const n = new Set([...t.searchParams.keys(), ...e.searchParams.keys()]); - for (const a of n) { - const r = t.searchParams.getAll(a), - s = e.searchParams.getAll(a); - r.every((i) => s.includes(i)) && s.every((i) => r.includes(i)) && n.delete(a); - } - return n; -} -function pe({ error: t, url: e, route: n, params: a }) { - return { type: "loaded", state: { error: t, url: e, route: n, params: a, branch: [] }, props: { page: Zt(L), constructors: [] } }; -} -async function Oe({ id: t, invalidating: e, url: n, params: a, route: r, preload: s }) { - if ((T == null ? void 0 : T.id) === t) return J.delete(T.token), T.promise; - const { errors: i, layouts: o, leaf: c } = r, - l = [...o, c]; - i.forEach((g) => (g == null ? void 0 : g().catch(() => {}))), l.forEach((g) => (g == null ? void 0 : g[1]().catch(() => {}))); - let d = null; - const p = w.url ? t !== bt(w.url) : !1, - y = w.route ? r.id !== w.route.id : !1, - f = Dn(w.url, n); - let m = !1; - const u = l.map((g, _) => { - var D; - const v = w.branch[_], - k = !!(g != null && g[0]) && ((v == null ? void 0 : v.loader) !== g[1] || he(m, y, p, f, (D = v.server) == null ? void 0 : D.uses, a)); - return k && (m = !0), k; - }); - if (u.some(Boolean)) { - try { - d = await De(n, u); - } catch (g) { - const _ = await H(g, { url: n, params: a, route: { id: t } }); - return J.has(s) ? pe({ error: _, url: n, params: a, route: r }) : St({ status: gt(g), error: _, url: n, route: r }); - } - if (d.type === "redirect") return d; - } - const h = d == null ? void 0 : d.nodes; - let A = !1; - const R = l.map(async (g, _) => { - var It; - if (!g) return; - const v = w.branch[_], - k = h == null ? void 0 : h[_]; - if ((!k || k.type === "skip") && g[1] === (v == null ? void 0 : v.loader) && !he(A, y, p, f, (It = v.universal) == null ? void 0 : It.uses, a)) return v; - if (((A = !0), (k == null ? void 0 : k.type) === "error")) throw k; - return Wt({ - loader: g[1], - url: n, - params: a, - route: r, - parent: async () => { - var te; - const Qt = {}; - for (let Lt = 0; Lt < _; Lt += 1) Object.assign(Qt, (te = await R[Lt]) == null ? void 0 : te.data); - return Qt; - }, - server_data_node: Jt(k === void 0 && g[0] ? { type: "skip" } : k ?? null, g[0] ? (v == null ? void 0 : v.server) : void 0), - }); - }); - for (const g of R) g.catch(() => {}); - const I = []; - for (let g = 0; g < l.length; g += 1) - if (l[g]) - try { - I.push(await R[g]); - } catch (_) { - if (_ instanceof qt) return { type: "redirect", location: _.location }; - if (J.has(s)) return pe({ error: await H(_, { params: a, url: n, route: { id: r.id } }), url: n, params: a, route: r }); - let v = gt(_), - k; - if (h != null && h.includes(_)) (v = _.status ?? v), (k = _.error); - else if (_ instanceof Et) k = _.body; - else { - if (await $.updated.check()) return await Le(), await K(n); - k = await H(_, { params: a, url: n, route: { id: r.id } }); - } - const D = await qn(g, I, i); - return D ? vt({ url: n, params: a, branch: I.slice(0, D.idx).concat(D.node), status: v, error: k, route: r }) : await $e(n, { id: r.id }, k, v); - } - else I.push(void 0); - return vt({ url: n, params: a, branch: I, status: 200, error: null, route: r, form: e ? void 0 : null }); -} -async function qn(t, e, n) { - for (; t--; ) - if (n[t]) { - let a = t; - for (; !e[a]; ) a -= 1; - try { - return { idx: a + 1, node: { node: await n[t](), loader: n[t], data: {}, server: null, universal: null } }; - } catch { - continue; - } - } -} -async function St({ status: t, error: e, url: n, route: a }) { - const r = {}; - let s = null; - if (E.server_loads[0] === 0) - try { - const o = await De(n, [!0]); - if (o.type !== "data" || (o.nodes[0] && o.nodes[0].type !== "data")) throw 0; - s = o.nodes[0] ?? null; - } catch { - (n.origin !== dt || n.pathname !== location.pathname || Kt) && (await K(n)); - } - try { - const o = await Wt({ loader: Ot, url: n, params: r, route: a, parent: () => Promise.resolve({}), server_data_node: Jt(s) }), - c = { node: await mt(), loader: mt, universal: null, server: null, data: null }; - return vt({ url: n, params: r, branch: [o, c], status: t, error: e, route: null }); - } catch (o) { - if (o instanceof qt) return zt(new URL(o.location, location.href), {}, 0); - throw o; - } -} -async function Fn(t) { - const e = t.href; - if (ht.has(e)) return ht.get(e); - let n; - try { - const a = (async () => { - let r = (await E.hooks.reroute({ url: new URL(t), fetch: async (s, i) => Ne(s, i, t).promise })) ?? t; - if (typeof r == "string") { - const s = new URL(t); - E.hash ? (s.hash = r) : (s.pathname = r), (r = s); - } - return r; - })(); - ht.set(e, a), (n = await a); - } catch { - ht.delete(e); - return; - } - return n; -} -async function Rt(t, e) { - if (t && !kt(t, x, E.hash)) { - const n = await Fn(t); - if (!n) return; - const a = Bn(n); - for (const r of Gt) { - const s = r.exec(a); - if (s) return { id: bt(t), invalidating: e, route: r, params: Ye(s), url: t }; - } - } -} -function Bn(t) { - return Ke(E.hash ? t.hash.replace(/^#/, "").replace(/[?#].+/, "") : t.pathname.slice(x.length)) || "/"; -} -function bt(t) { - return (E.hash ? t.hash.replace(/^#/, "") : t.pathname) + t.search; -} -function je({ url: t, type: e, intent: n, delta: a }) { - let r = !1; - const s = Xt(w, n, t, e); - a !== void 0 && (s.navigation.delta = a); - const i = { - ...s.navigation, - cancel: () => { - (r = !0), s.reject(new Error("navigation cancelled")); - }, - }; - return et || Ht.forEach((o) => o(i)), r ? null : s; -} -async function X({ type: t, url: e, popped: n, keepfocus: a, noscroll: r, replace_state: s, state: i = {}, redirect_count: o = 0, nav_token: c = {}, accept: l = le, block: d = le }) { - const p = F; - F = c; - const y = await Rt(e, !1), - f = t === "enter" ? Xt(w, y, e, t) : je({ url: e, type: t, delta: n == null ? void 0 : n.delta, intent: y }); - if (!f) { - d(), F === c && (F = p); - return; - } - const m = S, - u = U; - l(), (et = !0), wt && f.navigation.type !== "enter" && $.navigating.set((Q.current = f.navigation)); - let h = y && (await Oe(y)); - if (!h) { - if (kt(e, x, E.hash)) return await K(e); - h = await $e(e, { id: null }, await H(new Ft(404, "Not Found", `Not found: ${e.pathname}`), { url: e, params: {}, route: { id: null } }), 404); - } - if (((e = (y == null ? void 0 : y.url) || e), F !== c)) return f.reject(new Error("navigation aborted")), !1; - if (h.type === "redirect") - if (o >= 20) h = await St({ status: 500, error: await H(new Error("Redirect loop"), { url: e, params: {}, route: { id: null } }), url: e, route: { id: null } }); - else return await zt(new URL(h.location, e).href, {}, o + 1, c), !1; - else h.props.page.status >= 400 && (await $.updated.check()) && (await Le(), await K(e)); - if ((jn(), Mt(m), xe(u), h.props.page.url.pathname !== e.pathname && (e.pathname = h.props.page.url.pathname), (i = n ? n.state : i), !n)) { - const g = s ? 0 : 1, - _ = { [G]: (S += g), [Z]: (U += g), [Ae]: i }; - (s ? history.replaceState : history.pushState).call(history, _, "", e), s || Nn(S, U); - } - if (((T = null), (h.props.page.state = i), wt)) { - const g = (await Promise.all(Array.from(On, (_) => _(f.navigation)))).filter((_) => typeof _ == "function"); - if (g.length > 0) { - let _ = function () { - g.forEach((v) => { - W.delete(v); - }); - }; - g.push(_), - g.forEach((v) => { - W.add(v); - }); - } - (w = h.state), h.props.page && (h.props.page.url = e), Ue.$set(h.props), Rn(h.props.page), (Te = !0); - } else Ce(h, jt, !1); - const { activeElement: A } = document; - await Pn(); - const R = n ? n.scroll : r ? At() : null; - if (fe) { - const g = e.hash && document.getElementById(Fe(e)); - R ? scrollTo(R.x, R.y) : g ? g.scrollIntoView() : scrollTo(0, 0); - } - const I = document.activeElement !== A && document.activeElement !== document.body; - !a && !I && Yn(e), (fe = !0), h.props.page && Object.assign(L, h.props.page), (et = !1), t === "popstate" && Pe(U), f.fulfil(void 0), W.forEach((g) => g(f.navigation)), $.navigating.set((Q.current = null)); -} -async function $e(t, e, n, a) { - return t.origin === dt && t.pathname === location.pathname && !Kt ? await St({ status: a, error: n, url: t, route: e }) : await K(t); -} -function Vn() { - let t, e, n; - j.addEventListener("mousemove", (o) => { - const c = o.target; - clearTimeout(t), - (t = setTimeout(() => { - s(c, q.hover); - }, 20)); - }); - function a(o) { - o.defaultPrevented || s(o.composedPath()[0], q.tap); - } - j.addEventListener("mousedown", a), j.addEventListener("touchstart", a, { passive: !0 }); - const r = new IntersectionObserver( - (o) => { - for (const c of o) c.isIntersecting && (Ct(new URL(c.target.href)), r.unobserve(c.target)); - }, - { threshold: 0 } - ); - async function s(o, c) { - const l = Se(o, j), - d = l === e && c >= n; - if (!l || d) return; - const { url: p, external: y, download: f } = Nt(l, x, E.hash); - if (y || f) return; - const m = pt(l), - u = p && bt(w.url) === bt(p); - if (!(m.reload || u)) - if (c <= m.preload_data) { - (e = l), (n = q.tap); - const h = await Rt(p, !1); - if (!h) return; - $n(h); - } else c <= m.preload_code && ((e = l), (n = c), Ct(p)); - } - function i() { - r.disconnect(); - for (const o of j.querySelectorAll("a")) { - const { url: c, external: l, download: d } = Nt(o, x, E.hash); - if (l || d) continue; - const p = pt(o); - p.reload || (p.preload_code === q.viewport && r.observe(o), p.preload_code === q.eager && Ct(c)); - } - } - W.add(i), i(); -} -function H(t, e) { - if (t instanceof Et) return t.body; - const n = gt(t), - a = kn(t); - return E.hooks.handleError({ error: t, event: e, status: n, message: a }) ?? { message: a }; -} -function Mn(t, e) { - xn( - () => ( - t.add(e), - () => { - t.delete(e); - } - ) - ); -} -function rr(t) { - Mn(Ht, t); -} -function ar(t, e = {}) { - return (t = new URL(Vt(t))), t.origin !== dt ? Promise.reject(new Error("goto: invalid URL")) : zt(t, e, 0); -} -function Gn(t) { - if (typeof t == "function") yt.push(t); - else { - const { href: e } = new URL(t, location.href); - yt.push((n) => n.href === e); - } -} -function Hn() { - var e; - (history.scrollRestoration = "manual"), - addEventListener("beforeunload", (n) => { - let a = !1; - if ((de(), !et)) { - const r = Xt(w, void 0, null, "leave"), - s = { - ...r.navigation, - cancel: () => { - (a = !0), r.reject(new Error("navigation cancelled")); - }, - }; - Ht.forEach((i) => i(s)); - } - a ? (n.preventDefault(), (n.returnValue = "")) : (history.scrollRestoration = "auto"); - }), - addEventListener("visibilitychange", () => { - document.visibilityState === "hidden" && de(); - }), - ((e = navigator.connection) != null && e.saveData) || Vn(), - j.addEventListener("click", async (n) => { - if (n.button || n.which !== 1 || n.metaKey || n.ctrlKey || n.shiftKey || n.altKey || n.defaultPrevented) return; - const a = Se(n.composedPath()[0], j); - if (!a) return; - const { url: r, external: s, target: i, download: o } = Nt(a, x, E.hash); - if (!r) return; - if (i === "_parent" || i === "_top") { - if (window.parent !== window) return; - } else if (i && i !== "_self") return; - const c = pt(a); - if ((!(a instanceof SVGAElement) && r.protocol !== location.protocol && !(r.protocol === "https:" || r.protocol === "http:")) || o) return; - const [d, p] = (E.hash ? r.hash.replace(/^#/, "") : r.href).split("#"), - y = d === Ut(location); - if (s || (c.reload && (!y || !p))) { - je({ url: r, type: "link" }) ? (et = !0) : n.preventDefault(); - return; - } - if (p !== void 0 && y) { - const [, f] = w.url.href.split("#"); - if (f === p) { - if ((n.preventDefault(), p === "" || (p === "top" && a.ownerDocument.getElementById("top") === null))) window.scrollTo({ top: 0 }); - else { - const m = a.ownerDocument.getElementById(decodeURIComponent(p)); - m && (m.scrollIntoView(), m.focus()); - } - return; - } - if (((Y = !0), Mt(S), t(r), !c.replace_state)) return; - Y = !1; - } - n.preventDefault(), - await new Promise((f) => { - requestAnimationFrame(() => { - setTimeout(f, 0); - }), - setTimeout(f, 100); - }), - await X({ type: "link", url: r, keepfocus: c.keepfocus, noscroll: c.noscroll, replace_state: c.replace_state ?? r.href === location.href }); - }), - j.addEventListener("submit", (n) => { - if (n.defaultPrevented) return; - const a = HTMLFormElement.prototype.cloneNode.call(n.target), - r = n.submitter; - if (((r == null ? void 0 : r.formTarget) || a.target) === "_blank" || ((r == null ? void 0 : r.formMethod) || a.method) !== "get") return; - const o = new URL(((r == null ? void 0 : r.hasAttribute("formaction")) && (r == null ? void 0 : r.formAction)) || a.action); - if (kt(o, x, !1)) return; - const c = n.target, - l = pt(c); - if (l.reload) return; - n.preventDefault(), n.stopPropagation(); - const d = new FormData(c), - p = r == null ? void 0 : r.getAttribute("name"); - p && d.append(p, (r == null ? void 0 : r.getAttribute("value")) ?? ""), - (o.search = new URLSearchParams(d).toString()), - X({ type: "form", url: o, keepfocus: l.keepfocus, noscroll: l.noscroll, replace_state: l.replace_state ?? o.href === location.href }); - }), - addEventListener("popstate", async (n) => { - var a; - if (!$t) { - if ((a = n.state) != null && a[G]) { - const r = n.state[G]; - if (((F = {}), r === S)) return; - const s = B[r], - i = n.state[Ae] ?? {}, - o = new URL(n.state[ln] ?? location.href), - c = n.state[Z], - l = w.url ? Ut(location) === Ut(w.url) : !1; - if (c === U && (Te || l)) { - i !== L.state && (L.state = i), t(o), (B[S] = At()), s && scrollTo(s.x, s.y), (S = r); - return; - } - const p = r - S; - await X({ - type: "popstate", - url: o, - popped: { state: i, scroll: s, delta: p }, - accept: () => { - (S = r), (U = c); - }, - block: () => { - history.go(-p); - }, - nav_token: F, - }); - } else if (!Y) { - const r = new URL(location.href); - t(r), E.hash && location.reload(); - } - } - }), - addEventListener("hashchange", () => { - Y && ((Y = !1), history.replaceState({ ...history.state, [G]: ++S, [Z]: U }, "", location.href)); - }); - for (const n of document.querySelectorAll("link")) Cn.has(n.rel) && (n.href = n.href); - addEventListener("pageshow", (n) => { - n.persisted && $.navigating.set((Q.current = null)); - }); - function t(n) { - (w.url = L.url = n), $.page.set(Zt(L)), $.page.notify(); - } -} -async function Kn(t, { status: e = 200, error: n, node_ids: a, params: r, route: s, server_route: i, data: o, form: c }) { - Kt = !0; - const l = new URL(location.href); - let d; - ({ params: r = {}, route: s = { id: null } } = (await Rt(l, !1)) || {}), (d = Gt.find(({ id: f }) => f === s.id)); - let p, - y = !0; - try { - const f = a.map(async (u, h) => { - const A = o[h]; - return ( - A != null && A.uses && (A.uses = qe(A.uses)), - Wt({ - loader: E.nodes[u], - url: l, - params: r, - route: s, - parent: async () => { - const R = {}; - for (let I = 0; I < h; I += 1) Object.assign(R, (await f[I]).data); - return R; - }, - server_data_node: Jt(A), - }) - ); - }), - m = await Promise.all(f); - if (d) { - const u = d.layouts; - for (let h = 0; h < u.length; h++) u[h] || m.splice(h, 0, void 0); - } - p = vt({ url: l, params: r, branch: m, status: e, error: n, form: c, route: d ?? null }); - } catch (f) { - if (f instanceof qt) { - await K(new URL(f.location, location.href)); - return; - } - (p = await St({ status: gt(f), error: await H(f, { url: l, params: r, route: s }), url: l, route: s })), (t.textContent = ""), (y = !1); - } - p.props.page && (p.props.page.state = {}), Ce(p, t, y); -} -async function De(t, e) { - var s; - const n = new URL(t); - (n.pathname = Tn(t.pathname)), t.pathname.endsWith("/") && n.searchParams.append(An, "1"), n.searchParams.append(En, e.map((i) => (i ? "1" : "0")).join("")); - const a = window.fetch, - r = await a(n.href, {}); - if (!r.ok) { - let i; - throw ((s = r.headers.get("content-type")) != null && s.includes("application/json") ? (i = await r.json()) : r.status === 404 ? (i = "Not Found") : r.status === 500 && (i = "Internal Error"), new Et(r.status, i)); - } - return new Promise(async (i) => { - var p; - const o = new Map(), - c = r.body.getReader(); - function l(y) { - return wn(y, { - ...E.decoders, - Promise: (f) => - new Promise((m, u) => { - o.set(f, { fulfil: m, reject: u }); - }), - }); - } - let d = ""; - for (;;) { - const { done: y, value: f } = await c.read(); - if (y && !d) break; - for ( - d += - !f && d - ? ` -` - : Je.decode(f, { stream: !0 }); - ; - - ) { - const m = d.indexOf(` -`); - if (m === -1) break; - const u = JSON.parse(d.slice(0, m)); - if (((d = d.slice(m + 1)), u.type === "redirect")) return i(u); - if (u.type === "data") - (p = u.nodes) == null || - p.forEach((h) => { - (h == null ? void 0 : h.type) === "data" && ((h.uses = qe(h.uses)), (h.data = l(h.data))); - }), - i(u); - else if (u.type === "chunk") { - const { id: h, data: A, error: R } = u, - I = o.get(h); - o.delete(h), R ? I.reject(l(R)) : I.fulfil(l(A)); - } - } - } - }); -} -function qe(t) { - return { - dependencies: new Set((t == null ? void 0 : t.dependencies) ?? []), - params: new Set((t == null ? void 0 : t.params) ?? []), - parent: !!(t != null && t.parent), - route: !!(t != null && t.route), - url: !!(t != null && t.url), - search_params: new Set((t == null ? void 0 : t.search_params) ?? []), - }; -} -let $t = !1; -function Yn(t) { - const e = document.querySelector("[autofocus]"); - if (e) e.focus(); - else { - const n = Fe(t); - if (n && document.getElementById(n)) { - const { x: r, y: s } = At(); - setTimeout(() => { - const i = history.state; - ($t = !0), location.replace(`#${n}`), E.hash && location.replace(t.hash), history.replaceState(i, "", t.hash), scrollTo(r, s), ($t = !1); - }); - } else { - const r = document.body, - s = r.getAttribute("tabindex"); - (r.tabIndex = -1), r.focus({ preventScroll: !0, focusVisible: !1 }), s !== null ? r.setAttribute("tabindex", s) : r.removeAttribute("tabindex"); - } - const a = getSelection(); - if (a && a.type !== "None") { - const r = []; - for (let s = 0; s < a.rangeCount; s += 1) r.push(a.getRangeAt(s)); - setTimeout(() => { - if (a.rangeCount === r.length) { - for (let s = 0; s < a.rangeCount; s += 1) { - const i = r[s], - o = a.getRangeAt(s); - if (i.commonAncestorContainer !== o.commonAncestorContainer || i.startContainer !== o.startContainer || i.endContainer !== o.endContainer || i.startOffset !== o.startOffset || i.endOffset !== o.endOffset) return; - } - a.removeAllRanges(); - } - }); - } - } -} -function Xt(t, e, n, a) { - var c, l; - let r, s; - const i = new Promise((d, p) => { - (r = d), (s = p); - }); - return ( - i.catch(() => {}), - { - navigation: { - from: { params: t.params, route: { id: ((c = t.route) == null ? void 0 : c.id) ?? null }, url: t.url }, - to: n && { params: (e == null ? void 0 : e.params) ?? null, route: { id: ((l = e == null ? void 0 : e.route) == null ? void 0 : l.id) ?? null }, url: n }, - willUnload: !e, - type: a, - complete: i, - }, - fulfil: r, - reject: s, - } - ); -} -function Zt(t) { - return { data: t.data, error: t.error, form: t.form, params: t.params, route: t.route, state: t.state, status: t.status, url: t.url }; -} -function zn(t) { - const e = new URL(t); - return (e.hash = decodeURIComponent(t.hash)), e; -} -function Fe(t) { - let e; - if (E.hash) { - const [, , n] = t.hash.split("#", 3); - e = n ?? ""; - } else e = t.hash.slice(1); - return decodeURIComponent(e); -} -export { nr as a, rr as b, ar as g, Zn as l, L as p, $ as s }; diff --git a/frontend-backup/_app/immutable/chunks/B6ZK_HZO.js b/frontend-backup/_app/immutable/chunks/B6ZK_HZO.js new file mode 100644 index 0000000..bb214d1 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/B6ZK_HZO.js @@ -0,0 +1,50 @@ +import { s as t, p as n } from "./CyB--sFG.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "a3dbed05-c198-4ed7-927f-c0428effe604"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-a3dbed05-c198-4ed7-927f-c0428effe604")); + })(); +} catch {} +const f = { + get error() { + return n.error; + }, + get status() { + return n.status; + }, + get url() { + return n.url; + }, +}; +t.updated.check; +const r = f; +export { r as p }; diff --git a/frontend-backup/_app/immutable/chunks/BA2Qx8r3.js b/frontend-backup/_app/immutable/chunks/BA2Qx8r3.js new file mode 100644 index 0000000..66e845e --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BA2Qx8r3.js @@ -0,0 +1,781 @@ +import { g as j } from "./CV9xcpLq.js"; +import "./Ch2Ub8FX.js"; +import { o as _t } from "./DoL3ojdE.js"; +import { + v as N, + b as d, + at as Ye, + p as Ke, + ay as Ve, + a as me, + c as We, + f as k, + d as t, + r as o, + s as n, + n as X, + t as y, + ax as fe, + y as mt, + g as _, + au as be, + aw as L, + u as _e, + b4 as Ce, +} from "./CMvZtFtm.js"; +import { s as w } from "./DVA6u9-7.js"; +import { r as ne, p as Ge, i as M } from "./BF50aS-j.js"; +import { + b as O, + f as gt, + s as ae, + r as Ie, + g as Le, + a as Je, + e as xt, +} from "./C5yqZvKC.js"; +import { b as ht } from "./0wx1llIh.js"; +import { g as Re } from "./CyB--sFG.js"; +import { p as Ae } from "./B6ZK_HZO.js"; +import { + g as wt, + u as se, + t as re, + a as $e, + S as yt, + P as Fe, +} from "./BRM3t761.js"; +import { c as kt } from "./Dt3xBOvm.js"; +import { a as Ct } from "./D3yaN7Zl.js"; +(function () { + try { + var s = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + s.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var s = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new s.Error().stack; + e && + ((s._sentryDebugIds = s._sentryDebugIds || {}), + (s._sentryDebugIds[e] = "0fa0d6bf-0d42-46b8-b804-0b844b6532f6"), + (s._sentryDebugIdIdentifier = + "sentry-dbid-0fa0d6bf-0d42-46b8-b804-0b844b6532f6")); + })(); +} catch {} +const It = () => "Add profile picture", + Lt = () => "Adicionar imagem de perfil", + wo = (s = {}, e = {}) => ((e.locale ?? j()) === "en" ? It() : Lt()), + zt = () => "You gain 1 droplet per pixel painted and 500 droplets per level", + Pt = () => "Você ganha 1 droplet por pixel pintado e 500 droplets por level", + Xe = (s = {}, e = {}) => ((e.locale ?? j()) === "en" ? zt() : Pt()), + qt = () => "Eraser", + Tt = () => "Borracha", + yo = (s = {}, e = {}) => ((e.locale ?? j()) === "en" ? qt() : Tt()), + Dt = () => "Refund Policy", + Mt = () => "Política de Reembolso", + Oe = (s = {}, e = {}) => ((e.locale ?? j()) === "en" ? Dt() : Mt()), + St = () => "For refund requests and processing details, please see our", + Et = () => "Para pedidos de reembolso, consulte nossa", + je = (s = {}, e = {}) => ((e.locale ?? j()) === "en" ? St() : Et()); +var Bt = N( + '' +); +function Ht(s, e) { + let r = ne(e, ["$$slots", "$$events", "$$legacy"]); + var a = Bt(); + O(a, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...r, + })), + d(s, a); +} +function Ut() { + return j(); +} +function Ne(s) { + return `${s}/terms/return${Ut() === "pt" ? "/pt" : ""}`; +} +var Zt = N( + '' +); +function ze(s, e) { + let r = ne(e, ["$$slots", "$$events", "$$legacy"]); + var a = Zt(); + O(a, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...r, + })), + d(s, a); +} +var Rt = k( + '' + ), + At = k( + ' Droplets ' + ), + Ft = k( + '' + ), + Xt = k( + '' + ); +function Ot(s, e) { + Ke(e, !0); + const r = (i) => { + var p = At(), + f = t(p); + ze(f, { class: "text-primary size-4.5" }); + var h = n(f, 2), + S = t(h); + X(), o(h); + var C = n(h, 2); + { + var q = (E) => { + var Q = Rt(), + U = t(Q); + Ht(U, { class: "size-4" }), o(Q), d(E, Q); + }; + M(C, (E) => { + a() && E(q); + }); + } + o(p), + y((E) => w(S, `${E ?? ""} `), [() => e.value.toLocaleString("en-US")]), + d(i, p); + }; + let a = Ge(e, "button", 3, !0); + var m = Ve(), + u = me(m); + { + var b = (i) => { + var p = Ft(); + p.__click = () => { + wt.dropletsDialogOpen = !0; + }; + var f = t(p); + r(f), o(p), d(i, p); + }, + c = (i) => { + var p = Xt(), + f = t(p); + r(f), o(p), d(i, p); + }; + M(u, (i) => { + a() ? i(b) : i(c, !1); + }); + } + d(s, m), We(); +} +Ye(["click"]); +var jt = N( + '' +); +function Nt(s, e) { + let r = ne(e, ["$$slots", "$$events", "$$legacy"]); + var a = jt(); + O(a, () => ({ + xmlns: "http://www.w3.org/2000/svg", + height: "24px", + viewBox: "0 -960 960 960", + width: "24px", + fill: "currentColor", + ...r, + })), + d(s, a); +} +var Qt = N( + '' +); +function Qe(s, e) { + let r = ne(e, ["$$slots", "$$events", "$$legacy"]); + var a = Qt(); + O(a, () => ({ + xmlns: "http://www.w3.org/2000/svg", + x: "0px", + y: "0px", + width: "100", + height: "100", + viewBox: "0 0 48 48", + ...r, + })), + d(s, a); +} +var Yt = (s, e, r, a, m) => { + _(e).show(), + L(r, !0), + $e + .generatePixQrCode(a()) + .then((u) => { + L(m, u, !0); + }) + .catch((u) => { + re.error(u.message); + }) + .finally(() => { + L(r, !1); + }); + }, + Kt = k( + '
        ' + ), + Vt = k( + '
        ' + ), + Wt = k( + '

        Droplets

        ' + ), + Gt = k( + '

        Droplets

        ' + ), + Jt = (s, e) => { + var r; + navigator.clipboard.writeText( + ((r = _(e)) == null ? void 0 : r.pixCode) ?? "" + ), + re.success("Código PIX copiado"); + }, + $t = async (s, e, r) => { + var a, m, u; + if (!_(e)) { + re.info("Espere 1 minuto e recarrege a pagina"); + return; + } + try { + L(r, !0); + const { paid: b } = await $e.getPixStatus(_(e).pixId); + if (b) { + const c = _(e).productId.toString(), + i = + (u = + (m = (a = yt.products[c]) == null ? void 0 : a.items) == null + ? void 0 + : m[0]) == null + ? void 0 + : u.amount; + await se.refresh(), + i ? Re(`payment/success?droplets=${i}`) : Re("payment/success"); + } else + re.info( + "Pagamento ainda não recebido. Desculpe a demora, tente novamente em instantes.", + { duration: 1e5 } + ); + } catch (b) { + console.error(b), + re.error( + "Error ao atualizar o status do pix. Tente recarregar a página." + ); + } finally { + L(r, !1); + } + }, + eo = k( + '

        Efetue o pagamento do PIX no valor de

        QR code PIX
        Código
        ', + 1 + ), + to = k( + '
        ' + ), + oo = k( + ' ', + 1 + ); +function ko(s, e) { + Ke(e, !0); + let r = Ge(e, "open", 15), + a = be(!1); + _t(() => { + const l = (g) => { + g.key === "Escape" && r(!1); + }; + return ( + document.addEventListener("keydown", l), + () => document.removeEventListener("keydown", l) + ); + }); + const m = _e(() => { + var l, g; + return ( + ((g = (l = se.data) == null ? void 0 : l.country) == null + ? void 0 + : g.toUpperCase()) === "BR" + ); + }), + u = _e(() => { + var l, g; + return ( + ((g = (l = se.data) == null ? void 0 : l.country) == null + ? void 0 + : g.toUpperCase()) === "MX" + ); + }); + let b = be(null), + c = be(void 0), + i = be(!1); + var p = oo(), + f = me(p), + h = t(f), + S = n(t(h), 2); + { + var C = (l) => { + var g = Gt(), + B = t(g), + Z = t(B), + le = t(Z); + ze(le, { class: "text-primary size-6" }); + var R = n(le, 4), + ie = t(R); + { + let z = _e(() => { + var A; + return ((A = se.data) == null ? void 0 : A.droplets) ?? 0; + }); + Ot(ie, { + get value() { + return _(z); + }, + button: !1, + }); + } + o(R), o(Z); + var de = n(Z, 2), + Y = t(de, !0); + o(de), o(B); + var K = n(B, 2); + { + const z = (A, v) => { + let J = () => (v == null ? void 0 : v().droplets), + $ = () => (v == null ? void 0 : v().bonus), + he = () => (v == null ? void 0 : v().price), + Se = () => (v == null ? void 0 : v().stripeLookupkey), + nt = () => (v == null ? void 0 : v().productId), + lt = () => (v == null ? void 0 : v().dropdownClass); + var we = Wt(), + ye = t(we), + Ee = t(ye); + ze(Ee, { class: "mb-1 inline size-7" }); + var Be = n(Ee, 2), + it = t(Be); + X(), o(Be), o(ye); + var ke = n(ye, 2), + He = t(ke); + { + var dt = (I) => { + var x = Ce(); + y( + (T) => w(x, `${T ?? ""} Droplets`), + [() => J().toLocaleString("en-US")] + ), + d(I, x); + }; + M(He, (I) => { + $() && I(dt); + }); + } + var Ue = n(He, 2), + ct = t(Ue); + o(Ue), o(ke); + var pt = n(ke, 2); + { + var vt = (I) => { + var x = Kt(), + T = t(x), + ee = t(T); + o(T); + var ve = n(T, 2), + te = t(ve), + F = t(te), + P = t(F); + Ie(P); + var D = n(P, 2), + oe = t(D); + Nt(oe, { class: "inline size-5" }), X(2), o(D), o(F), o(te); + var Ze = n(te, 2), + ue = t(Ze); + ue.__click = [Yt, b, a, nt, c]; + var ft = t(ue); + Qe(ft, { class: "size-5" }), + X(2), + o(ue), + o(Ze), + o(ve), + o(x), + y( + (bt) => { + Je(x, 1, `dropdown mt-3 ${lt() ?? ""}`), + w(ee, `R$${bt ?? ""}`), + ae( + F, + "action", + `${Fe}/payment/create-checkout-session` + ), + Le(P, Se()), + (D.disabled = _(a)), + (ue.disabled = _(a)); + }, + [() => (he() * 4).toFixed(2).replace(".", ",")] + ), + fe("submit", F, () => { + L(a, !0), setTimeout(() => L(a, !1), 3e3); + }), + d(I, x); + }, + ut = (I) => { + var x = Vt(), + T = t(x); + Ie(T); + var ee = n(T, 2), + ve = t(ee); + { + var te = (P) => { + var D = Ce(); + y( + (oe) => w(D, `MX$ ${oe ?? ""}`), + [() => (he() * 18).toFixed(2)] + ), + d(P, D); + }, + F = (P) => { + var D = Ce(); + y((oe) => w(D, `$${oe ?? ""}`), [() => he().toFixed(2)]), + d(P, D); + }; + M(ve, (P) => { + _(u) ? P(te) : P(F, !1); + }); + } + o(ee), + o(x), + y(() => { + ae(x, "action", `${Fe}/payment/create-checkout-session`), + Le(T, Se()), + (ee.disabled = _(a)); + }), + fe("submit", x, () => { + L(a, !0), setTimeout(() => L(a, !1), 3e3); + }), + d(I, x); + }; + M(pt, (I) => { + _(m) ? I(vt) : I(ut, !1); + }); + } + o(we), + y( + (I, x) => { + w(it, `${I ?? ""} `), w(ct, `+${x ?? ""} bonus`); + }, + [ + () => (J() + $()).toLocaleString("en-US"), + () => $().toLocaleString("en-US"), + ] + ), + d(A, we); + }; + var H = t(K), + V = t(H); + z(V, () => ({ + price: 5, + droplets: 25e3, + bonus: 0, + stripeLookupkey: "droplets_5", + productId: 10, + dropdownClass: "dropdown-center", + })); + var ce = n(V, 2); + z(ce, () => ({ + price: 15, + droplets: 75e3, + bonus: 3750, + stripeLookupkey: "droplets_15", + productId: 20, + dropdownClass: "dropdown-center", + })); + var W = n(ce, 2); + z(W, () => ({ + price: 30, + droplets: 15e4, + bonus: 15e3, + stripeLookupkey: "droplets_30", + productId: 30, + dropdownClass: "dropdown-center", + })); + var G = n(W, 2); + z(G, () => ({ + price: 50, + droplets: 25e4, + bonus: 37500, + stripeLookupkey: "droplets_50", + productId: 40, + dropdownClass: "dropdown-center", + })); + var pe = n(G, 2); + z(pe, () => ({ + price: 75, + droplets: 375e3, + bonus: 75e3, + stripeLookupkey: "droplets_75", + productId: 50, + dropdownClass: "dropdown-center", + })); + var st = n(pe, 2); + z(st, () => ({ + price: 100, + droplets: 5e5, + bonus: 125e3, + stripeLookupkey: "droplets_100", + productId: 60, + dropdownClass: "max-sm:dropdown-top dropdown-center", + })), + o(H); + var De = n(H, 2), + Me = t(De), + xe = n(Me), + rt = t(xe, !0); + o(xe), + o(De), + o(K), + y( + (A, v, J, $) => { + w(Me, `${v ?? ""} `), ae(xe, "href", J), w(rt, $); + }, + [() => Xe(), () => je(), () => Ne(Ae.url.origin), () => Oe()] + ); + } + o(g), + y( + (z, A, v, J) => w(Y, z), + [() => Xe(), () => je(), () => Ne(Ae.url.origin), () => Oe()] + ), + d(l, g); + }; + M(S, (l) => { + se.data && l(C); + }); + } + o(h); + var q = n(h, 2), + E = t(q), + Q = t(E, !0); + o(E), + o(q), + o(f), + gt(f, () => (l) => { + mt(() => { + r() ? l.show() : l.close(); + }); + }); + var U = n(f, 2), + Pe = t(U), + qe = n(t(Pe), 2), + ge = t(qe), + Te = t(ge), + et = t(Te); + Qe(et, { class: "size-10" }), X(2), o(Te), o(ge); + var tt = n(ge, 2); + { + var ot = (l) => { + var g = eo(), + B = me(g), + Z = n(t(B)), + le = t(Z); + o(Z), o(B); + var R = n(B, 2), + ie = t(R), + de = t(ie); + X(2), o(ie), o(R); + var Y = n(R, 2), + K = n(t(Y), 2), + H = t(K); + Ie(H); + var V = n(H, 2), + ce = t(V); + (ce.__click = [Jt, c]), o(V), o(K), o(Y); + var W = n(Y, 2), + G = t(W); + (G.__click = [$t, c, i]), + o(W), + y( + (pe) => { + w(le, `R$${pe ?? ""}`), + ae(de, "src", _(c).qrCode), + Le(H, _(c).pixCode), + (G.disabled = _(i)); + }, + [() => (_(c).price / 100).toFixed(2).replace(".", ",")] + ), + d(l, g); + }, + at = (l) => { + var g = to(); + d(l, g); + }; + M(tt, (l) => { + _(c) ? l(ot) : l(at, !1); + }); + } + o(qe), + o(Pe), + o(U), + ht( + U, + (l) => L(b, l), + () => _(b) + ), + y((l) => w(Q, l), [() => kt()]), + fe("close", f, () => { + r(!1); + }), + fe("close", U, () => { + setTimeout(() => { + L(c, void 0); + }, 300); + }), + d(s, p), + We(); +} +Ye(["click"]); +var ao = N( + '' + ), + so = N( + '' + ); +function Co(s, e) { + let r = ne(e, ["$$slots", "$$events", "$$legacy", "filled"]); + var a = Ve(), + m = me(a); + { + var u = (c) => { + var i = ao(); + O(i, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...r, + })), + d(c, i); + }, + b = (c) => { + var i = so(); + O(i, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...r, + })), + d(c, i); + }; + M(m, (c) => { + e.filled ? c(u) : c(b, !1); + }); + } + d(s, a); +} +function Io([s, e], [r, a]) { + (s = Math.floor(s)), + (e = Math.floor(e)), + (r = Math.floor(r)), + (a = Math.floor(a)); + const m = [], + u = Math.abs(r - s), + b = Math.abs(a - e), + c = s < r ? 1 : -1, + i = e < a ? 1 : -1; + let p = u - b, + f = s, + h = e; + for (; m.push([f, h]), !(f === r && h === a); ) { + const S = 2 * p; + S > -b && ((p -= b), (f += c)), S < u && ((p += u), (h += i)); + } + return m; +} +var ro = k('User profile'), + no = k( + '
        ' + ); +function Lo(s, e) { + const r = _e(() => (e.level % 1) * 360); + var a = no(), + m = n(t(a), 2), + u = n(m, 2), + b = t(u), + c = t(b); + { + var i = (C) => { + Ct(C, { + get userId() { + return e.userId; + }, + }); + }, + p = (C) => { + var q = ro(); + y(() => ae(q, "src", e.pictureUrl)), d(C, q); + }; + M(c, (C) => { + e.pictureUrl ? C(p, !1) : C(i); + }); + } + o(b), o(u); + var f = n(u, 2); + let h; + var S = t(f, !0); + o(f), + o(a), + y( + (C, q) => { + xt(m, `--angle: ${_(r) ?? ""}deg; --color: var(--color-secondary)`), + (h = Je( + f, + 1, + "text-primary-content bg-secondary absolute bottom-0 flex items-center justify-center rounded-full px-[5px] py-0 text-xs font-bold", + null, + h, + C + )), + w(S, q); + }, + [ + () => ({ "left-0": e.level > 99, "-left-1": e.level > 99 }), + () => Math.floor(e.level), + ] + ), + d(s, a); +} +export { + Ht as A, + Ot as D, + Co as I, + Lo as P, + ze as a, + ko as b, + wo as c, + Ne as d, + yo as e, + Io as r, +}; diff --git a/frontend-backup/_app/immutable/chunks/BBgyHb-Z.js b/frontend-backup/_app/immutable/chunks/BBgyHb-Z.js new file mode 100644 index 0000000..58399f4 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BBgyHb-Z.js @@ -0,0 +1,359 @@ +import { + F as D, + aY as L, + aZ as q, + i as B, + h as F, + e as $, + j as z, + k as M, + l as U, + m as j, + o as P, + aM as Y, + q as Z, + ab as G, + E as K, + a_ as W, + a$ as X, + ac as H, + z as J, + b0 as Q, + b1 as V, + b2 as tt, + b3 as S, + aX as at, + L as et, + az as y, +} from "./CMvZtFtm.js"; +import { a as it } from "./DVA6u9-7.js"; +import { c as rt } from "./CXkjfmFU.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + a = new t.Error().stack; + a && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[a] = "82bb617f-9edb-4d1e-8e85-ab94e8601318"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-82bb617f-9edb-4d1e-8e85-ab94e8601318")); + })(); +} catch {} +function vt(t, a, e) { + F && $(); + var r = t, + i = Y, + f, + n, + o = null, + v = D() ? L : q; + function h() { + f && Z(f), + o !== null && (o.lastChild.remove(), r.before(o), (o = null)), + (f = n); + } + B(() => { + if (v(i, (i = a()))) { + var c = r, + u = j(); + u && ((o = document.createDocumentFragment()), o.append((c = z()))), + (n = M(() => e(c))), + u ? U.add_callback(h) : h(); + } + }), + F && (r = P); +} +const nt = () => performance.now(), + w = { + tick: (t) => requestAnimationFrame(t), + now: () => nt(), + tasks: new Set(), + }; +function O() { + const t = w.now(); + w.tasks.forEach((a) => { + a.c(t) || (w.tasks.delete(a), a.f()); + }), + w.tasks.size !== 0 && w.tick(O); +} +function ft(t) { + let a; + return ( + w.tasks.size === 0 && w.tick(O), + { + promise: new Promise((e) => { + w.tasks.add((a = { c: t, f: e })); + }), + abort() { + w.tasks.delete(a); + }, + } + ); +} +function E(t, a) { + S(() => { + t.dispatchEvent(new CustomEvent(a)); + }); +} +function st(t) { + if (t === "float") return "cssFloat"; + if (t === "offset") return "cssOffset"; + if (t.startsWith("--")) return t; + const a = t.split("-"); + return a.length === 1 + ? a[0] + : a[0] + + a + .slice(1) + .map((e) => e[0].toUpperCase() + e.slice(1)) + .join(""); +} +function x(t) { + const a = {}, + e = t.split(";"); + for (const r of e) { + const [i, f] = r.split(":"); + if (!i || f === void 0) break; + const n = st(i.trim()); + a[n] = f.trim(); + } + return a; +} +const ot = (t) => t; +function ht(t, a, e) { + var r = rt, + i, + f, + n, + o = null; + r.a ?? + (r.a = { + element: t, + measure() { + i = this.element.getBoundingClientRect(); + }, + apply() { + if ( + (n == null || n.abort(), + (f = this.element.getBoundingClientRect()), + i.left !== f.left || + i.right !== f.right || + i.top !== f.top || + i.bottom !== f.bottom) + ) { + const v = a()( + this.element, + { from: i, to: f }, + e == null ? void 0 : e() + ); + n = k(this.element, v, void 0, 1, () => { + n == null || n.abort(), (n = void 0); + }); + } + }, + fix() { + if (!t.getAnimations().length) { + var { position: v, width: h, height: c } = getComputedStyle(t); + if (v !== "absolute" && v !== "fixed") { + var u = t.style; + (o = { + position: u.position, + width: u.width, + height: u.height, + transform: u.transform, + }), + (u.position = "absolute"), + (u.width = h), + (u.height = c); + var s = t.getBoundingClientRect(); + if (i.left !== s.left || i.top !== s.top) { + var d = `translate(${i.left - s.left}px, ${i.top - s.top}px)`; + u.transform = u.transform ? `${u.transform} ${d}` : d; + } + } + } + }, + unfix() { + if (o) { + var v = t.style; + (v.position = o.position), + (v.width = o.width), + (v.height = o.height), + (v.transform = o.transform); + } + }, + }), + (r.a.element = t); +} +function lt(t, a, e, r) { + var i = (t & V) !== 0, + f = (t & tt) !== 0, + n = i && f, + o = (t & Q) !== 0, + v = n ? "both" : i ? "in" : "out", + h, + c = a.inert, + u = a.style.overflow, + s, + d; + function g() { + return S( + () => + h ?? (h = e()(a, (r == null ? void 0 : r()) ?? {}, { direction: v })) + ); + } + var l = { + is_global: o, + in() { + var _; + if (((a.inert = c), !i)) { + d == null || d.abort(), + (_ = d == null ? void 0 : d.reset) == null || _.call(d); + return; + } + f || s == null || s.abort(), + E(a, "introstart"), + (s = k(a, g(), d, 1, () => { + E(a, "introend"), + s == null || s.abort(), + (s = h = void 0), + (a.style.overflow = u); + })); + }, + out(_) { + if (!f) { + _ == null || _(), (h = void 0); + return; + } + (a.inert = !0), + E(a, "outrostart"), + (d = k(a, g(), s, 0, () => { + E(a, "outroend"), _ == null || _(); + })); + }, + stop: () => { + s == null || s.abort(), d == null || d.abort(); + }, + }, + p = G; + if (((p.transitions ?? (p.transitions = [])).push(l), i && it)) { + var m = o; + if (!m) { + for (var b = p.parent; b && (b.f & K) !== 0; ) + for (; (b = b.parent) && (b.f & W) === 0; ); + m = !b || (b.f & X) !== 0; + } + m && + H(() => { + J(() => l.in()); + }); + } +} +function k(t, a, e, r, i) { + var f = r === 1; + if (at(a)) { + var n, + o = !1; + return ( + et(() => { + if (!o) { + var p = a({ direction: f ? "in" : "out" }); + n = k(t, p, e, r, i); + } + }), + { + abort: () => { + (o = !0), n == null || n.abort(); + }, + deactivate: () => n.deactivate(), + reset: () => n.reset(), + t: () => n.t(), + } + ); + } + if ((e == null || e.deactivate(), !(a != null && a.duration))) + return i(), { abort: y, deactivate: y, reset: y, t: () => r }; + const { delay: v = 0, css: h, tick: c, easing: u = ot } = a; + var s = []; + if (f && e === void 0 && (c && c(0, 1), h)) { + var d = x(h(0, 1)); + s.push(d, d); + } + var g = () => 1 - r, + l = t.animate(s, { duration: v, fill: "forwards" }); + return ( + (l.onfinish = () => { + l.cancel(); + var p = (e == null ? void 0 : e.t()) ?? 1 - r; + e == null || e.abort(); + var m = r - p, + b = a.duration * Math.abs(m), + _ = []; + if (b > 0) { + var N = !1; + if (h) + for ( + var A = Math.ceil(b / 16.666666666666668), I = 0; + I <= A; + I += 1 + ) { + var C = p + m * u(I / A), + R = x(h(C, 1 - C)); + _.push(R), N || (N = R.overflow === "hidden"); + } + N && (t.style.overflow = "hidden"), + (g = () => { + var T = l.currentTime; + return p + m * u(T / b); + }), + c && + ft(() => { + if (l.playState !== "running") return !1; + var T = g(); + return c(T, 1 - T), !0; + }); + } + (l = t.animate(_, { duration: b, fill: "forwards" })), + (l.onfinish = () => { + (g = () => r), c == null || c(r, 1 - r), i(); + }); + }), + { + abort: () => { + l && (l.cancel(), (l.effect = null), (l.onfinish = y)); + }, + deactivate: () => { + i = y; + }, + reset: () => { + r === 0 && (c == null || c(1, 0)); + }, + t: () => g(), + } + ); +} +export { ht as a, vt as k, lt as t }; diff --git a/frontend-backup/_app/immutable/chunks/BCONGQnO.js b/frontend-backup/_app/immutable/chunks/BCONGQnO.js deleted file mode 100644 index c859f9e..0000000 --- a/frontend-backup/_app/immutable/chunks/BCONGQnO.js +++ /dev/null @@ -1,294 +0,0 @@ -import { - F as D, - aY as L, - aZ as q, - i as B, - h as F, - e as $, - j as z, - k as M, - l as U, - m as j, - o as P, - aM as Y, - q as Z, - ad as G, - E as K, - a_ as W, - a$ as X, - M as H, - z as J, - b0 as Q, - b1 as V, - b2 as tt, - b3 as S, - aX as at, - L as it, - az as y, -} from "./BDALf20I.js"; -import { a as et } from "./4k6DpCgf.js"; -import { c as rt } from "./CZW2bcQi.js"; -(function () { - try { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - t.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - a = new t.Error().stack; - a && ((t._sentryDebugIds = t._sentryDebugIds || {}), (t._sentryDebugIds[a] = "ffd23b39-2a11-4572-8955-38bdff19f9fa"), (t._sentryDebugIdIdentifier = "sentry-dbid-ffd23b39-2a11-4572-8955-38bdff19f9fa")); - })(); -} catch {} -function vt(t, a, i) { - F && $(); - var r = t, - e = Y, - f, - n, - o = null, - v = D() ? L : q; - function h() { - f && Z(f), o !== null && (o.lastChild.remove(), r.before(o), (o = null)), (f = n); - } - B(() => { - if (v(e, (e = a()))) { - var c = r, - u = j(); - u && ((o = document.createDocumentFragment()), o.append((c = z()))), (n = M(() => i(c))), u ? U.add_callback(h) : h(); - } - }), - F && (r = P); -} -const nt = () => performance.now(), - w = { tick: (t) => requestAnimationFrame(t), now: () => nt(), tasks: new Set() }; -function O() { - const t = w.now(); - w.tasks.forEach((a) => { - a.c(t) || (w.tasks.delete(a), a.f()); - }), - w.tasks.size !== 0 && w.tick(O); -} -function ft(t) { - let a; - return ( - w.tasks.size === 0 && w.tick(O), - { - promise: new Promise((i) => { - w.tasks.add((a = { c: t, f: i })); - }), - abort() { - w.tasks.delete(a); - }, - } - ); -} -function E(t, a) { - S(() => { - t.dispatchEvent(new CustomEvent(a)); - }); -} -function st(t) { - if (t === "float") return "cssFloat"; - if (t === "offset") return "cssOffset"; - if (t.startsWith("--")) return t; - const a = t.split("-"); - return a.length === 1 - ? a[0] - : a[0] + - a - .slice(1) - .map((i) => i[0].toUpperCase() + i.slice(1)) - .join(""); -} -function x(t) { - const a = {}, - i = t.split(";"); - for (const r of i) { - const [e, f] = r.split(":"); - if (!e || f === void 0) break; - const n = st(e.trim()); - a[n] = f.trim(); - } - return a; -} -const ot = (t) => t; -function ht(t, a, i) { - var r = rt, - e, - f, - n, - o = null; - r.a ?? - (r.a = { - element: t, - measure() { - e = this.element.getBoundingClientRect(); - }, - apply() { - if ((n == null || n.abort(), (f = this.element.getBoundingClientRect()), e.left !== f.left || e.right !== f.right || e.top !== f.top || e.bottom !== f.bottom)) { - const v = a()(this.element, { from: e, to: f }, i == null ? void 0 : i()); - n = k(this.element, v, void 0, 1, () => { - n == null || n.abort(), (n = void 0); - }); - } - }, - fix() { - if (!t.getAnimations().length) { - var { position: v, width: h, height: c } = getComputedStyle(t); - if (v !== "absolute" && v !== "fixed") { - var u = t.style; - (o = { position: u.position, width: u.width, height: u.height, transform: u.transform }), (u.position = "absolute"), (u.width = h), (u.height = c); - var s = t.getBoundingClientRect(); - if (e.left !== s.left || e.top !== s.top) { - var d = `translate(${e.left - s.left}px, ${e.top - s.top}px)`; - u.transform = u.transform ? `${u.transform} ${d}` : d; - } - } - } - }, - unfix() { - if (o) { - var v = t.style; - (v.position = o.position), (v.width = o.width), (v.height = o.height), (v.transform = o.transform); - } - }, - }), - (r.a.element = t); -} -function lt(t, a, i, r) { - var e = (t & V) !== 0, - f = (t & tt) !== 0, - n = e && f, - o = (t & Q) !== 0, - v = n ? "both" : e ? "in" : "out", - h, - c = a.inert, - u = a.style.overflow, - s, - d; - function g() { - return S(() => h ?? (h = i()(a, (r == null ? void 0 : r()) ?? {}, { direction: v }))); - } - var l = { - is_global: o, - in() { - var _; - if (((a.inert = c), !e)) { - d == null || d.abort(), (_ = d == null ? void 0 : d.reset) == null || _.call(d); - return; - } - f || s == null || s.abort(), - E(a, "introstart"), - (s = k(a, g(), d, 1, () => { - E(a, "introend"), s == null || s.abort(), (s = h = void 0), (a.style.overflow = u); - })); - }, - out(_) { - if (!f) { - _ == null || _(), (h = void 0); - return; - } - (a.inert = !0), - E(a, "outrostart"), - (d = k(a, g(), s, 0, () => { - E(a, "outroend"), _ == null || _(); - })); - }, - stop: () => { - s == null || s.abort(), d == null || d.abort(); - }, - }, - p = G; - if (((p.transitions ?? (p.transitions = [])).push(l), e && et)) { - var m = o; - if (!m) { - for (var b = p.parent; b && (b.f & K) !== 0; ) for (; (b = b.parent) && (b.f & W) === 0; ); - m = !b || (b.f & X) !== 0; - } - m && - H(() => { - J(() => l.in()); - }); - } -} -function k(t, a, i, r, e) { - var f = r === 1; - if (at(a)) { - var n, - o = !1; - return ( - it(() => { - if (!o) { - var p = a({ direction: f ? "in" : "out" }); - n = k(t, p, i, r, e); - } - }), - { - abort: () => { - (o = !0), n == null || n.abort(); - }, - deactivate: () => n.deactivate(), - reset: () => n.reset(), - t: () => n.t(), - } - ); - } - if ((i == null || i.deactivate(), !(a != null && a.duration))) return e(), { abort: y, deactivate: y, reset: y, t: () => r }; - const { delay: v = 0, css: h, tick: c, easing: u = ot } = a; - var s = []; - if (f && i === void 0 && (c && c(0, 1), h)) { - var d = x(h(0, 1)); - s.push(d, d); - } - var g = () => 1 - r, - l = t.animate(s, { duration: v, fill: "forwards" }); - return ( - (l.onfinish = () => { - l.cancel(); - var p = (i == null ? void 0 : i.t()) ?? 1 - r; - i == null || i.abort(); - var m = r - p, - b = a.duration * Math.abs(m), - _ = []; - if (b > 0) { - var N = !1; - if (h) - for (var A = Math.ceil(b / 16.666666666666668), I = 0; I <= A; I += 1) { - var C = p + m * u(I / A), - R = x(h(C, 1 - C)); - _.push(R), N || (N = R.overflow === "hidden"); - } - N && (t.style.overflow = "hidden"), - (g = () => { - var T = l.currentTime; - return p + m * u(T / b); - }), - c && - ft(() => { - if (l.playState !== "running") return !1; - var T = g(); - return c(T, 1 - T), !0; - }); - } - (l = t.animate(_, { duration: b, fill: "forwards" })), - (l.onfinish = () => { - (g = () => r), c == null || c(r, 1 - r), e(); - }); - }), - { - abort: () => { - l && (l.cancel(), (l.effect = null), (l.onfinish = y)); - }, - deactivate: () => { - e = y; - }, - reset: () => { - r === 0 && (c == null || c(1, 0)); - }, - t: () => g(), - } - ); -} -export { ht as a, vt as k, lt as t }; diff --git a/frontend-backup/_app/immutable/chunks/BDALf20I.js b/frontend-backup/_app/immutable/chunks/BDALf20I.js deleted file mode 100644 index 9dddaf2..0000000 --- a/frontend-backup/_app/immutable/chunks/BDALf20I.js +++ /dev/null @@ -1,1717 +0,0 @@ -var gn = Object.defineProperty; -var Ee = (t) => { - throw TypeError(t); -}; -var bn = (t, e, n) => (e in t ? gn(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : (t[e] = n)); -var kt = (t, e, n) => bn(t, typeof e != "symbol" ? e + "" : e, n), - Jt = (t, e, n) => e.has(t) || Ee("Cannot " + n); -var d = (t, e, n) => (Jt(t, e, "read from private field"), n ? n.call(t) : e.get(t)), - k = (t, e, n) => (e.has(t) ? Ee("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n)), - R = (t, e, n, r) => (Jt(t, e, "write to private field"), r ? r.call(t, n) : e.set(t, n), n), - Q = (t, e, n) => (Jt(t, e, "access private method"), n); -(function () { - try { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - t.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - e = new t.Error().stack; - e && ((t._sentryDebugIds = t._sentryDebugIds || {}), (t._sentryDebugIds[e] = "8e9f9117-ea4b-483f-a805-02a42b9e51e6"), (t._sentryDebugIdIdentifier = "sentry-dbid-8e9f9117-ea4b-483f-a805-02a42b9e51e6")); - })(); -} catch {} -const De = !1; -var Pe = Array.isArray, - En = Array.prototype.indexOf, - Tr = Array.from, - ee = Object.defineProperty, - Nt = Object.getOwnPropertyDescriptor, - mn = Object.getOwnPropertyDescriptors, - Tn = Object.prototype, - An = Array.prototype, - Me = Object.getPrototypeOf, - me = Object.isExtensible; -function Ar(t) { - return typeof t == "function"; -} -const kr = () => {}; -function xr(t) { - return t(); -} -function Le(t) { - for (var e = 0; e < t.length; e++) t[e](); -} -function kn() { - var t, - e, - n = new Promise((r, a) => { - (t = r), (e = a); - }); - return { promise: n, resolve: t, reject: e }; -} -function Sr(t, e) { - if (Array.isArray(t)) return t; - if (!(Symbol.iterator in t)) return Array.from(t); - const n = []; - for (const r of t) if ((n.push(r), n.length === e)) break; - return n; -} -const N = 2, - le = 4, - $t = 8, - mt = 16, - Y = 32, - ft = 64, - Fe = 128, - C = 256, - Ht = 512, - m = 1024, - D = 2048, - Z = 4096, - K = 8192, - Tt = 16384, - fe = 32768, - qe = 65536, - Te = 1 << 17, - xn = 1 << 18, - oe = 1 << 19, - je = 1 << 20, - ne = 1 << 21, - ce = 1 << 22, - at = 1 << 23, - st = Symbol("$state"), - Ir = Symbol("legacy props"), - Nr = Symbol(""), - _e = new (class extends Error { - constructor() { - super(...arguments); - kt(this, "name", "StaleReactionError"); - kt(this, "message", "The reaction that called `getAbortSignal()` was re-run or destroyed"); - } - })(), - ve = 3, - de = 8; -function Sn() { - throw new Error("https://svelte.dev/e/await_outside_boundary"); -} -function In(t) { - throw new Error("https://svelte.dev/e/lifecycle_outside_component"); -} -function Nn() { - throw new Error("https://svelte.dev/e/async_derived_orphan"); -} -function Rn(t) { - throw new Error("https://svelte.dev/e/effect_in_teardown"); -} -function On() { - throw new Error("https://svelte.dev/e/effect_in_unowned_derived"); -} -function Cn(t) { - throw new Error("https://svelte.dev/e/effect_orphan"); -} -function Dn() { - throw new Error("https://svelte.dev/e/effect_update_depth_exceeded"); -} -function Or() { - throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction"); -} -function Cr() { - throw new Error("https://svelte.dev/e/hydration_failed"); -} -function Dr(t) { - throw new Error("https://svelte.dev/e/lifecycle_legacy_only"); -} -function Pr(t) { - throw new Error("https://svelte.dev/e/props_invalid_value"); -} -function Pn() { - throw new Error("https://svelte.dev/e/state_descriptors_fixed"); -} -function Mn() { - throw new Error("https://svelte.dev/e/state_prototype_fixed"); -} -function Ln() { - throw new Error("https://svelte.dev/e/state_unsafe_mutation"); -} -const Mr = 1, - Lr = 2, - Fr = 4, - qr = 8, - jr = 16, - Yr = 1, - Hr = 2, - Ur = 4, - Br = 8, - Vr = 16, - Wr = 1, - $r = 2, - Gr = 4, - Fn = 1, - qn = 2, - jn = "[", - Yn = "[!", - Hn = "]", - he = {}, - E = Symbol(), - Kr = "http://www.w3.org/1999/xhtml", - zr = "@attach"; -function pe(t) { - console.warn("https://svelte.dev/e/hydration_mismatch"); -} -function Xr() { - console.warn("https://svelte.dev/e/select_multiple_invalid_value"); -} -let S = !1; -function Zr(t) { - S = t; -} -let y; -function yt(t) { - if (t === null) throw (pe(), he); - return (y = t); -} -function Ye() { - return yt(ot(y)); -} -function Jr(t) { - if (S) { - if (ot(y) !== null) throw (pe(), he); - y = t; - } -} -function Qr(t = 1) { - if (S) { - for (var e = t, n = y; e--; ) n = ot(n); - y = n; - } -} -function ta() { - for (var t = 0, e = y; ; ) { - if (e.nodeType === de) { - var n = e.data; - if (n === Hn) { - if (t === 0) return e; - t -= 1; - } else (n === jn || n === Yn) && (t += 1); - } - var r = ot(e); - e.remove(), (e = r); - } -} -function ea(t) { - if (!t || t.nodeType !== de) throw (pe(), he); - return t.data; -} -function He(t) { - return t === this.v; -} -function Un(t, e) { - return t != t ? e == e : t !== e || (t !== null && typeof t == "object") || typeof t == "function"; -} -function na(t, e) { - return t !== e; -} -function Ue(t) { - return !Un(t, this.v); -} -let Gt = !1, - Bn = !1; -function ra() { - Gt = !0; -} -let g = null; -function Ut(t) { - g = t; -} -function aa(t) { - return Kt().get(t); -} -function sa(t, e) { - return Kt().set(t, e), e; -} -function ia(t) { - return Kt().has(t); -} -function ua() { - return Kt(); -} -function la(t, e = !1, n) { - g = { p: g, c: null, e: null, s: t, x: null, l: Gt && !e ? { s: null, u: null, $: [] } : null }; -} -function fa(t) { - var e = g, - n = e.e; - if (n !== null) { - e.e = null; - for (var r of n) an(r); - } - return t !== void 0 && (e.x = t), (g = e.p), t ?? {}; -} -function Ft() { - return !Gt || (g !== null && g.l === null); -} -function Kt(t) { - return g === null && In(), g.c ?? (g.c = new Map(Vn(g) || void 0)); -} -function Vn(t) { - let e = t.p; - for (; e !== null; ) { - const n = e.c; - if (n !== null) return n; - e = e.p; - } - return null; -} -const Wn = new WeakMap(); -function $n(t) { - var e = v; - if (e === null) return (_.f |= at), t; - if ((e.f & fe) === 0) { - if ((e.f & Fe) === 0) throw (!e.parent && t instanceof Error && Be(t), t); - e.b.error(t); - } else we(t, e); -} -function we(t, e) { - for (; e !== null; ) { - if ((e.f & Fe) !== 0) - try { - e.b.error(t); - return; - } catch (n) { - t = n; - } - e = e.parent; - } - throw (t instanceof Error && Be(t), t); -} -function Be(t) { - const e = Wn.get(t); - e && (ee(t, "message", { value: e.message }), ee(t, "stack", { value: e.stack })); -} -const Gn = typeof requestIdleCallback > "u" ? (t) => setTimeout(t, 1) : requestIdleCallback; -let Rt = [], - Ot = []; -function Ve() { - var t = Rt; - (Rt = []), Le(t); -} -function We() { - var t = Ot; - (Ot = []), Le(t); -} -function $e(t) { - Rt.length === 0 && queueMicrotask(Ve), Rt.push(t); -} -function oa(t) { - Ot.length === 0 && Gn(We), Ot.push(t); -} -function Kn() { - Rt.length > 0 && Ve(), Ot.length > 0 && We(); -} -function zn() { - for (var t = v.b; t !== null && !t.has_pending_snippet(); ) t = t.parent; - return t === null && Sn(), t; -} -function ye(t) { - var e = N | D, - n = _ !== null && (_.f & N) !== 0 ? _ : null; - return v === null || (n !== null && (n.f & C) !== 0) ? (e |= C) : (v.f |= oe), { ctx: g, deps: null, effects: null, equals: He, f: e, fn: t, reactions: null, rv: 0, v: E, wv: 0, parent: n ?? v, ac: null }; -} -function Xn(t, e) { - let n = v; - n === null && Nn(); - var r = n.b, - a = void 0, - s = be(E), - u = null, - l = !_; - return ( - ur(() => { - try { - var i = t(); - } catch (h) { - i = Promise.reject(h); - } - var f = () => i; - (a = (u == null ? void 0 : u.then(f, f)) ?? Promise.resolve(i)), (u = a); - var o = b, - c = r.pending; - l && (r.update_pending_count(1), c || o.increment()); - const w = (h, p = void 0) => { - (u = null), c || o.activate(), p ? p !== _e && ((s.f |= at), ie(s, p)) : ((s.f & at) !== 0 && (s.f ^= at), ie(s, h)), l && (r.update_pending_count(-1), c || o.decrement()), ze(); - }; - if ((a.then(w, (h) => w(null, h || "unknown")), o)) - return () => { - queueMicrotask(() => o.neuter()); - }; - }), - new Promise((i) => { - function f(o) { - function c() { - o === a ? i(s) : f(a); - } - o.then(c, c); - } - f(a); - }) - ); -} -function ca(t) { - const e = ye(t); - return cn(e), e; -} -function Zn(t) { - const e = ye(t); - return (e.equals = Ue), e; -} -function Ge(t) { - var e = t.effects; - if (e !== null) { - t.effects = null; - for (var n = 0; n < e.length; n += 1) lt(e[n]); - } -} -function Jn(t) { - for (var e = t.parent; e !== null; ) { - if ((e.f & N) === 0) return e; - e = e.parent; - } - return null; -} -function ge(t) { - var e, - n = v; - X(Jn(t)); - try { - Ge(t), (e = hn(t)); - } finally { - X(n); - } - return e; -} -function Ke(t) { - var e = ge(t); - if ((t.equals(e) || ((t.v = e), (t.wv = vn())), !At)) - if (W !== null) W.set(t, t.v); - else { - var n = ($ || (t.f & C) !== 0) && t.deps !== null ? Z : m; - x(t, n); - } -} -function Qn(t, e, n) { - const r = Ft() ? ye : Zn; - if (e.length === 0) { - n(t.map(r)); - return; - } - var a = b, - s = v, - u = tr(), - l = zn(); - Promise.all(e.map((i) => Xn(i))) - .then((i) => { - a == null || a.activate(), u(); - try { - n([...t.map(r), ...i]); - } catch (f) { - (s.f & Tt) === 0 && we(f, s); - } - a == null || a.deactivate(), ze(); - }) - .catch((i) => { - l.error(i); - }); -} -function tr() { - var t = v, - e = _, - n = g; - return function () { - X(t), F(e), Ut(n); - }; -} -function ze() { - X(null), F(null), Ut(null); -} -const xt = new Set(); -let b = null, - Qt = null, - W = null, - Ae = new Set(), - Bt = []; -function Xe() { - const t = Bt.shift(); - Bt.length > 0 && queueMicrotask(Xe), t(); -} -let ut = [], - zt = null, - re = !1, - jt = !1; -var dt, ht, B, Dt, Pt, nt, pt, rt, V, wt, Mt, Lt, L, Ze, Yt, ae; -const Wt = class Wt { - constructor() { - k(this, L); - kt(this, "current", new Map()); - k(this, dt, new Map()); - k(this, ht, new Set()); - k(this, B, 0); - k(this, Dt, null); - k(this, Pt, !1); - k(this, nt, []); - k(this, pt, []); - k(this, rt, []); - k(this, V, []); - k(this, wt, []); - k(this, Mt, []); - k(this, Lt, []); - kt(this, "skipped_effects", new Set()); - } - process(e) { - var s; - (ut = []), (Qt = null); - var n = null; - if (xt.size > 1) { - (n = new Map()), (W = new Map()); - for (const [u, l] of this.current) n.set(u, { v: u.v, wv: u.wv }), (u.v = l); - for (const u of xt) if (u !== this) for (const [l, i] of d(u, dt)) n.has(l) || (n.set(l, { v: l.v, wv: l.wv }), (l.v = i)); - } - for (const u of e) Q(this, L, Ze).call(this, u); - if (d(this, nt).length === 0 && d(this, B) === 0) { - Q(this, L, ae).call(this); - var r = d(this, rt), - a = d(this, V); - R(this, rt, []), R(this, V, []), R(this, wt, []), (Qt = b), (b = null), ke(r), ke(a), b === null ? (b = this) : xt.delete(this), (s = d(this, Dt)) == null || s.resolve(); - } else Q(this, L, Yt).call(this, d(this, rt)), Q(this, L, Yt).call(this, d(this, V)), Q(this, L, Yt).call(this, d(this, wt)); - if (n) { - for (const [u, { v: l, wv: i }] of n) u.wv <= i && (u.v = l); - W = null; - } - for (const u of d(this, nt)) vt(u); - for (const u of d(this, pt)) vt(u); - R(this, nt, []), R(this, pt, []); - } - capture(e, n) { - d(this, dt).has(e) || d(this, dt).set(e, n), this.current.set(e, e.v); - } - activate() { - b = this; - } - deactivate() { - (b = null), (Qt = null); - for (const e of Ae) if ((Ae.delete(e), e(), b !== null)) break; - } - neuter() { - R(this, Pt, !0); - } - flush() { - ut.length > 0 ? se() : Q(this, L, ae).call(this), b === this && (d(this, B) === 0 && xt.delete(this), this.deactivate()); - } - increment() { - R(this, B, d(this, B) + 1); - } - decrement() { - if ((R(this, B, d(this, B) - 1), d(this, B) === 0)) { - for (const e of d(this, Mt)) x(e, D), bt(e); - for (const e of d(this, Lt)) x(e, Z), bt(e); - R(this, rt, []), R(this, V, []), this.flush(); - } else this.deactivate(); - } - add_callback(e) { - d(this, ht).add(e); - } - settled() { - return (d(this, Dt) ?? R(this, Dt, kn())).promise; - } - static ensure() { - if (b === null) { - const e = (b = new Wt()); - xt.add(b), - jt || - Wt.enqueue(() => { - b === e && e.flush(); - }); - } - return b; - } - static enqueue(e) { - Bt.length === 0 && queueMicrotask(Xe), Bt.unshift(e); - } -}; -(dt = new WeakMap()), - (ht = new WeakMap()), - (B = new WeakMap()), - (Dt = new WeakMap()), - (Pt = new WeakMap()), - (nt = new WeakMap()), - (pt = new WeakMap()), - (rt = new WeakMap()), - (V = new WeakMap()), - (wt = new WeakMap()), - (Mt = new WeakMap()), - (Lt = new WeakMap()), - (L = new WeakSet()), - (Ze = function (e) { - var o; - e.f ^= m; - for (var n = e.first; n !== null; ) { - var r = n.f, - a = (r & (Y | ft)) !== 0, - s = a && (r & m) !== 0, - u = s || (r & K) !== 0 || this.skipped_effects.has(n); - if (!u && n.fn !== null) { - if (a) n.f ^= m; - else if ((r & le) !== 0) d(this, V).push(n); - else if ((r & m) === 0) - if ((r & ce) !== 0) { - var l = (o = n.b) != null && o.pending ? d(this, pt) : d(this, nt); - l.push(n); - } else Zt(n) && ((n.f & mt) !== 0 && d(this, wt).push(n), vt(n)); - var i = n.first; - if (i !== null) { - n = i; - continue; - } - } - var f = n.parent; - for (n = n.next; n === null && f !== null; ) (n = f.next), (f = f.parent); - } - }), - (Yt = function (e) { - for (const n of e) ((n.f & D) !== 0 ? d(this, Mt) : d(this, Lt)).push(n), x(n, m); - e.length = 0; - }), - (ae = function () { - if (!d(this, Pt)) for (const e of d(this, ht)) e(); - d(this, ht).clear(); - }); -let gt = Wt; -function er(t) { - var e = jt; - jt = !0; - try { - var n; - for (t && (se(), (n = t())); ; ) { - if ((Kn(), ut.length === 0 && (b == null || b.flush(), ut.length === 0))) return (zt = null), n; - se(); - } - } finally { - jt = e; - } -} -function se() { - var t = _t; - re = !0; - try { - var e = 0; - for (Ne(!0); ut.length > 0; ) { - var n = gt.ensure(); - if (e++ > 1e3) { - var r, a; - nr(); - } - n.process(ut), G.clear(); - } - } finally { - (re = !1), Ne(t), (zt = null); - } -} -function nr() { - try { - Dn(); - } catch (t) { - we(t, zt); - } -} -let et = null; -function ke(t) { - var e = t.length; - if (e !== 0) { - for (var n = 0; n < e; ) { - var r = t[n++]; - if ((r.f & (Tt | K)) === 0 && Zt(r) && ((et = []), vt(r), r.deps === null && r.first === null && r.nodes_start === null && (r.teardown === null && r.ac === null ? ln(r) : (r.fn = null)), et.length > 0)) { - G.clear(); - for (const a of et) vt(a); - et = []; - } - } - et = null; - } -} -function bt(t) { - for (var e = (zt = t); e.parent !== null; ) { - e = e.parent; - var n = e.f; - if (re && e === v && (n & mt) !== 0) return; - if ((n & (ft | Y)) !== 0) { - if ((n & m) === 0) return; - e.f ^= m; - } - } - ut.push(e); -} -const G = new Map(); -function be(t, e) { - var n = { f: 0, v: t, reactions: null, equals: He, rv: 0, wv: 0 }; - return n; -} -function U(t, e) { - const n = be(t); - return cn(n), n; -} -function _a(t, e = !1, n = !0) { - var a; - const r = be(t); - return e || (r.equals = Ue), Gt && n && g !== null && g.l !== null && ((a = g.l).s ?? (a.s = [])).push(r), r; -} -function tt(t, e, n = !1) { - _ !== null && (!M || (_.f & Te) !== 0) && Ft() && (_.f & (N | mt | ce | Te)) !== 0 && !(A != null && A.includes(t)) && Ln(); - let r = n ? St(e) : e; - return ie(t, r); -} -function ie(t, e) { - if (!t.equals(e)) { - var n = t.v; - At ? G.set(t, e) : G.set(t, n), (t.v = e); - var r = gt.ensure(); - r.capture(t, n), (t.f & N) !== 0 && ((t.f & D) !== 0 && ge(t), x(t, (t.f & C) === 0 ? m : Z)), (t.wv = vn()), Je(t, D), Ft() && v !== null && (v.f & m) !== 0 && (v.f & (Y | ft)) === 0 && (O === null ? _r([t]) : O.push(t)); - } - return e; -} -function te(t) { - tt(t, t.v + 1); -} -function Je(t, e) { - var n = t.reactions; - if (n !== null) - for (var r = Ft(), a = n.length, s = 0; s < a; s++) { - var u = n[s], - l = u.f; - if (!(!r && u === v)) { - var i = (l & D) === 0; - i && x(u, e), (l & N) !== 0 ? Je(u, Z) : i && ((l & mt) !== 0 && et !== null && et.push(u), bt(u)); - } - } -} -function St(t) { - if (typeof t != "object" || t === null || st in t) return t; - const e = Me(t); - if (e !== Tn && e !== An) return t; - var n = new Map(), - r = Pe(t), - a = U(0), - s = it, - u = (l) => { - if (it === s) return l(); - var i = _, - f = it; - F(null), Oe(s); - var o = l(); - return F(i), Oe(f), o; - }; - return ( - r && n.set("length", U(t.length)), - new Proxy(t, { - defineProperty(l, i, f) { - (!("value" in f) || f.configurable === !1 || f.enumerable === !1 || f.writable === !1) && Pn(); - var o = n.get(i); - return ( - o === void 0 - ? (o = u(() => { - var c = U(f.value); - return n.set(i, c), c; - })) - : tt(o, f.value, !0), - !0 - ); - }, - deleteProperty(l, i) { - var f = n.get(i); - if (f === void 0) { - if (i in l) { - const o = u(() => U(E)); - n.set(i, o), te(a); - } - } else tt(f, E), te(a); - return !0; - }, - get(l, i, f) { - var h; - if (i === st) return t; - var o = n.get(i), - c = i in l; - if ( - (o === void 0 && - (!c || ((h = Nt(l, i)) != null && h.writable)) && - ((o = u(() => { - var p = St(c ? l[i] : E), - P = U(p); - return P; - })), - n.set(i, o)), - o !== void 0) - ) { - var w = It(o); - return w === E ? void 0 : w; - } - return Reflect.get(l, i, f); - }, - getOwnPropertyDescriptor(l, i) { - var f = Reflect.getOwnPropertyDescriptor(l, i); - if (f && "value" in f) { - var o = n.get(i); - o && (f.value = It(o)); - } else if (f === void 0) { - var c = n.get(i), - w = c == null ? void 0 : c.v; - if (c !== void 0 && w !== E) return { enumerable: !0, configurable: !0, value: w, writable: !0 }; - } - return f; - }, - has(l, i) { - var w; - if (i === st) return !0; - var f = n.get(i), - o = (f !== void 0 && f.v !== E) || Reflect.has(l, i); - if (f !== void 0 || (v !== null && (!o || ((w = Nt(l, i)) != null && w.writable)))) { - f === void 0 && - ((f = u(() => { - var h = o ? St(l[i]) : E, - p = U(h); - return p; - })), - n.set(i, f)); - var c = It(f); - if (c === E) return !1; - } - return o; - }, - set(l, i, f, o) { - var J; - var c = n.get(i), - w = i in l; - if (r && i === "length") - for (var h = f; h < c.v; h += 1) { - var p = n.get(h + ""); - p !== void 0 ? tt(p, E) : h in l && ((p = u(() => U(E))), n.set(h + "", p)); - } - if (c === void 0) (!w || ((J = Nt(l, i)) != null && J.writable)) && ((c = u(() => U(void 0))), tt(c, St(f)), n.set(i, c)); - else { - w = c.v !== E; - var P = u(() => St(f)); - tt(c, P); - } - var H = Reflect.getOwnPropertyDescriptor(l, i); - if ((H != null && H.set && H.set.call(o, f), !w)) { - if (r && typeof i == "string") { - var qt = n.get("length"), - ct = Number(i); - Number.isInteger(ct) && ct >= qt.v && tt(qt, ct + 1); - } - te(a); - } - return !0; - }, - ownKeys(l) { - It(a); - var i = Reflect.ownKeys(l).filter((c) => { - var w = n.get(c); - return w === void 0 || w.v !== E; - }); - for (var [f, o] of n) o.v !== E && !(f in l) && i.push(f); - return i; - }, - setPrototypeOf() { - Mn(); - }, - }) - ); -} -function xe(t) { - try { - if (t !== null && typeof t == "object" && st in t) return t[st]; - } catch {} - return t; -} -function va(t, e) { - return Object.is(xe(t), xe(e)); -} -var Se, rr, Qe, tn, en; -function da() { - if (Se === void 0) { - (Se = window), (rr = document), (Qe = /Firefox/.test(navigator.userAgent)); - var t = Element.prototype, - e = Node.prototype, - n = Text.prototype; - (tn = Nt(e, "firstChild").get), (en = Nt(e, "nextSibling").get), me(t) && ((t.__click = void 0), (t.__className = void 0), (t.__attributes = null), (t.__style = void 0), (t.__e = void 0)), me(n) && (n.__t = void 0); - } -} -function Et(t = "") { - return document.createTextNode(t); -} -function z(t) { - return tn.call(t); -} -function ot(t) { - return en.call(t); -} -function ha(t, e) { - if (!S) return z(t); - var n = z(y); - if (n === null) n = y.appendChild(Et()); - else if (e && n.nodeType !== ve) { - var r = Et(); - return n == null || n.before(r), yt(r), r; - } - return yt(n), n; -} -function pa(t, e) { - if (!S) { - var n = z(t); - return n instanceof Comment && n.data === "" ? ot(n) : n; - } - return y; -} -function wa(t, e = 1, n = !1) { - let r = S ? y : t; - for (var a; e--; ) (a = r), (r = ot(r)); - if (!S) return r; - if (n && (r == null ? void 0 : r.nodeType) !== ve) { - var s = Et(); - return r === null ? a == null || a.after(s) : r.before(s), yt(s), s; - } - return yt(r), r; -} -function ar(t) { - t.textContent = ""; -} -function ya() { - return !1; -} -function ga(t, e) { - if (e) { - const n = document.body; - (t.autofocus = !0), - $e(() => { - document.activeElement === n && t.focus(); - }); - } -} -function ba(t) { - S && z(t) !== null && ar(t); -} -let Ie = !1; -function sr() { - Ie || - ((Ie = !0), - document.addEventListener( - "reset", - (t) => { - Promise.resolve().then(() => { - var e; - if (!t.defaultPrevented) for (const n of t.target.elements) (e = n.__on_r) == null || e.call(n); - }); - }, - { capture: !0 } - )); -} -function Ea(t, e, n, r = !0) { - r && n(); - for (var a of e) t.addEventListener(a, n); - rn(() => { - for (var s of e) t.removeEventListener(s, n); - }); -} -function Xt(t) { - var e = _, - n = v; - F(null), X(null); - try { - return t(); - } finally { - F(e), X(n); - } -} -function ma(t, e, n, r = n) { - t.addEventListener(e, () => Xt(n)); - const a = t.__on_r; - a - ? (t.__on_r = () => { - a(), r(!0); - }) - : (t.__on_r = () => r(!0)), - sr(); -} -function nn(t) { - v === null && _ === null && Cn(), _ !== null && (_.f & C) !== 0 && v === null && On(), At && Rn(); -} -function ir(t, e) { - var n = e.last; - n === null ? (e.last = e.first = t) : ((n.next = t), (t.prev = n), (e.last = t)); -} -function q(t, e, n, r = !0) { - var a = v; - a !== null && (a.f & K) !== 0 && (t |= K); - var s = { ctx: g, deps: null, nodes_start: null, nodes_end: null, f: t | D, first: null, fn: e, last: null, next: null, parent: a, b: a && a.b, prev: null, teardown: null, transitions: null, wv: 0, ac: null }; - if (n) - try { - vt(s), (s.f |= fe); - } catch (i) { - throw (lt(s), i); - } - else e !== null && bt(s); - var u = n && s.deps === null && s.first === null && s.nodes_start === null && s.teardown === null && (s.f & oe) === 0; - if (!u && r && (a !== null && ir(s, a), _ !== null && (_.f & N) !== 0 && (t & ft) === 0)) { - var l = _; - (l.effects ?? (l.effects = [])).push(s); - } - return s; -} -function Ta() { - return _ !== null && !M; -} -function rn(t) { - const e = q($t, null, !1); - return x(e, m), (e.teardown = t), e; -} -function Aa(t) { - nn(); - var e = v.f, - n = !_ && (e & Y) !== 0 && (e & fe) === 0; - if (n) { - var r = g; - (r.e ?? (r.e = [])).push(t); - } else return an(t); -} -function an(t) { - return q(le | je, t, !1); -} -function ka(t) { - return nn(), q($t | je, t, !0); -} -function xa(t) { - gt.ensure(); - const e = q(ft, t, !0); - return (n = {}) => - new Promise((r) => { - n.outro - ? or(e, () => { - lt(e), r(void 0); - }) - : (lt(e), r(void 0)); - }); -} -function Sa(t) { - return q(le, t, !1); -} -function ur(t) { - return q(ce | oe, t, !0); -} -function Ia(t, e = 0) { - return q($t | e, t, !0); -} -function Na(t, e = [], n = []) { - Qn(e, n, (r) => { - q($t, () => t(...r.map(It)), !0); - }); -} -function Ra(t, e = 0) { - var n = q(mt | e, t, !0); - return n; -} -function Oa(t, e = !0) { - return q(Y, t, !0, e); -} -function sn(t) { - var e = t.teardown; - if (e !== null) { - const n = At, - r = _; - Re(!0), F(null); - try { - e.call(null); - } finally { - Re(n), F(r); - } - } -} -function un(t, e = !1) { - var n = t.first; - for (t.first = t.last = null; n !== null; ) { - const a = n.ac; - a !== null && - Xt(() => { - a.abort(_e); - }); - var r = n.next; - (n.f & ft) !== 0 ? (n.parent = null) : lt(n, e), (n = r); - } -} -function lr(t) { - for (var e = t.first; e !== null; ) { - var n = e.next; - (e.f & Y) === 0 && lt(e), (e = n); - } -} -function lt(t, e = !0) { - var n = !1; - (e || (t.f & xn) !== 0) && t.nodes_start !== null && t.nodes_end !== null && (fr(t.nodes_start, t.nodes_end), (n = !0)), un(t, e && !n), Vt(t, 0), x(t, Tt); - var r = t.transitions; - if (r !== null) for (const s of r) s.stop(); - sn(t); - var a = t.parent; - a !== null && a.first !== null && ln(t), (t.next = t.prev = t.teardown = t.ctx = t.deps = t.fn = t.nodes_start = t.nodes_end = t.ac = null); -} -function fr(t, e) { - for (; t !== null; ) { - var n = t === e ? null : ot(t); - t.remove(), (t = n); - } -} -function ln(t) { - var e = t.parent, - n = t.prev, - r = t.next; - n !== null && (n.next = r), r !== null && (r.prev = n), e !== null && (e.first === t && (e.first = r), e.last === t && (e.last = n)); -} -function or(t, e) { - var n = []; - fn(t, n, !0), - cr(n, () => { - lt(t), e && e(); - }); -} -function cr(t, e) { - var n = t.length; - if (n > 0) { - var r = () => --n || e(); - for (var a of t) a.out(r); - } else e(); -} -function fn(t, e, n) { - if ((t.f & K) === 0) { - if (((t.f ^= K), t.transitions !== null)) for (const u of t.transitions) (u.is_global || n) && e.push(u); - for (var r = t.first; r !== null; ) { - var a = r.next, - s = (r.f & qe) !== 0 || (r.f & Y) !== 0; - fn(r, e, s ? n : !1), (r = a); - } - } -} -function Ca(t) { - on(t, !0); -} -function on(t, e) { - if ((t.f & K) !== 0) { - (t.f ^= K), (t.f & m) === 0 && (x(t, D), bt(t)); - for (var n = t.first; n !== null; ) { - var r = n.next, - a = (n.f & qe) !== 0 || (n.f & Y) !== 0; - on(n, a ? e : !1), (n = r); - } - if (t.transitions !== null) for (const s of t.transitions) (s.is_global || e) && s.in(); - } -} -let _t = !1; -function Ne(t) { - _t = t; -} -let At = !1; -function Re(t) { - At = t; -} -let _ = null, - M = !1; -function F(t) { - _ = t; -} -let v = null; -function X(t) { - v = t; -} -let A = null; -function cn(t) { - _ !== null && (A === null ? (A = [t]) : A.push(t)); -} -let T = null, - I = 0, - O = null; -function _r(t) { - O = t; -} -let _n = 1, - Ct = 0, - it = Ct; -function Oe(t) { - it = t; -} -let $ = !1; -function vn() { - return ++_n; -} -function Zt(t) { - var c; - var e = t.f; - if ((e & D) !== 0) return !0; - if ((e & Z) !== 0) { - var n = t.deps, - r = (e & C) !== 0; - if (n !== null) { - var a, - s, - u = (e & Ht) !== 0, - l = r && v !== null && !$, - i = n.length; - if ((u || l) && (v === null || (v.f & Tt) === 0)) { - var f = t, - o = f.parent; - for (a = 0; a < i; a++) (s = n[a]), (u || !((c = s == null ? void 0 : s.reactions) != null && c.includes(f))) && (s.reactions ?? (s.reactions = [])).push(f); - u && (f.f ^= Ht), l && o !== null && (o.f & C) === 0 && (f.f ^= C); - } - for (a = 0; a < i; a++) if (((s = n[a]), Zt(s) && Ke(s), s.wv > t.wv)) return !0; - } - (!r || (v !== null && !$)) && x(t, m); - } - return !1; -} -function dn(t, e, n = !0) { - var r = t.reactions; - if (r !== null && !(A != null && A.includes(t))) - for (var a = 0; a < r.length; a++) { - var s = r[a]; - (s.f & N) !== 0 ? dn(s, e, !1) : e === s && (n ? x(s, D) : (s.f & m) !== 0 && x(s, Z), bt(s)); - } -} -function hn(t) { - var P; - var e = T, - n = I, - r = O, - a = _, - s = $, - u = A, - l = g, - i = M, - f = it, - o = t.f; - (T = null), - (I = 0), - (O = null), - ($ = (o & C) !== 0 && (M || !_t || _ === null)), - (_ = (o & (Y | ft)) === 0 ? t : null), - (A = null), - Ut(t.ctx), - (M = !1), - (it = ++Ct), - t.ac !== null && - (Xt(() => { - t.ac.abort(_e); - }), - (t.ac = null)); - try { - t.f |= ne; - var c = t.fn, - w = c(), - h = t.deps; - if (T !== null) { - var p; - if ((Vt(t, I), h !== null && I > 0)) for (h.length = I + T.length, p = 0; p < T.length; p++) h[I + p] = T[p]; - else t.deps = h = T; - if (!$ || ((o & N) !== 0 && t.reactions !== null)) for (p = I; p < h.length; p++) ((P = h[p]).reactions ?? (P.reactions = [])).push(t); - } else h !== null && I < h.length && (Vt(t, I), (h.length = I)); - if (Ft() && O !== null && !M && h !== null && (t.f & (N | Z | D)) === 0) for (p = 0; p < O.length; p++) dn(O[p], t); - return a !== null && a !== t && (Ct++, O !== null && (r === null ? (r = O) : r.push(...O))), (t.f & at) !== 0 && (t.f ^= at), w; - } catch (H) { - return $n(H); - } finally { - (t.f ^= ne), (T = e), (I = n), (O = r), (_ = a), ($ = s), (A = u), Ut(l), (M = i), (it = f); - } -} -function vr(t, e) { - let n = e.reactions; - if (n !== null) { - var r = En.call(n, t); - if (r !== -1) { - var a = n.length - 1; - a === 0 ? (n = e.reactions = null) : ((n[r] = n[a]), n.pop()); - } - } - n === null && (e.f & N) !== 0 && (T === null || !T.includes(e)) && (x(e, Z), (e.f & (C | Ht)) === 0 && (e.f ^= Ht), Ge(e), Vt(e, 0)); -} -function Vt(t, e) { - var n = t.deps; - if (n !== null) for (var r = e; r < n.length; r++) vr(t, n[r]); -} -function vt(t) { - var e = t.f; - if ((e & Tt) === 0) { - x(t, m); - var n = v, - r = _t; - (v = t), (_t = !0); - try { - (e & mt) !== 0 ? lr(t) : un(t), sn(t); - var a = hn(t); - (t.teardown = typeof a == "function" ? a : null), (t.wv = _n); - var s; - De && Bn && (t.f & D) !== 0 && t.deps; - } finally { - (_t = r), (v = n); - } - } -} -async function Da() { - await Promise.resolve(), er(); -} -function Pa() { - return gt.ensure().settled(); -} -function It(t) { - var e = t.f, - n = (e & N) !== 0; - if (_ !== null && !M) { - var r = v !== null && (v.f & Tt) !== 0; - if (!r && !(A != null && A.includes(t))) { - var a = _.deps; - if ((_.f & ne) !== 0) t.rv < Ct && ((t.rv = Ct), T === null && a !== null && a[I] === t ? I++ : T === null ? (T = [t]) : (!$ || !T.includes(t)) && T.push(t)); - else { - (_.deps ?? (_.deps = [])).push(t); - var s = t.reactions; - s === null ? (t.reactions = [_]) : s.includes(_) || s.push(_); - } - } - } else if (n && t.deps === null && t.effects === null) { - var u = t, - l = u.parent; - l !== null && (l.f & C) === 0 && (u.f ^= C); - } - if (At) { - if (G.has(t)) return G.get(t); - if (n) { - u = t; - var i = u.v; - return (((u.f & m) === 0 && u.reactions !== null) || pn(u)) && (i = ge(u)), G.set(u, i), i; - } - } else if (n) { - if (((u = t), W != null && W.has(u))) return W.get(u); - Zt(u) && Ke(u); - } - if ((t.f & at) !== 0) throw t.v; - return t.v; -} -function pn(t) { - if (t.v === E) return !0; - if (t.deps === null) return !1; - for (const e of t.deps) if (G.has(e) || ((e.f & N) !== 0 && pn(e))) return !0; - return !1; -} -function Ma(t) { - var e = M; - try { - return (M = !0), t(); - } finally { - M = e; - } -} -const dr = -7169; -function x(t, e) { - t.f = (t.f & dr) | e; -} -function La(t) { - if (!(typeof t != "object" || !t || t instanceof EventTarget)) { - if (st in t) ue(t); - else if (!Array.isArray(t)) - for (let e in t) { - const n = t[e]; - typeof n == "object" && n && st in n && ue(n); - } - } -} -function ue(t, e = new Set()) { - if (typeof t == "object" && t !== null && !(t instanceof EventTarget) && !e.has(t)) { - e.add(t), t instanceof Date && t.getTime(); - for (let r in t) - try { - ue(t[r], e); - } catch {} - const n = Me(t); - if (n !== Object.prototype && n !== Array.prototype && n !== Map.prototype && n !== Set.prototype && n !== Date.prototype) { - const r = mn(n); - for (let a in r) { - const s = r[a].get; - if (s) - try { - s.call(t); - } catch {} - } - } - } -} -function Fa(t) { - return t.endsWith("capture") && t !== "gotpointercapture" && t !== "lostpointercapture"; -} -const hr = [ - "beforeinput", - "click", - "change", - "dblclick", - "contextmenu", - "focusin", - "focusout", - "input", - "keydown", - "keyup", - "mousedown", - "mousemove", - "mouseout", - "mouseover", - "mouseup", - "pointerdown", - "pointermove", - "pointerout", - "pointerover", - "pointerup", - "touchend", - "touchmove", - "touchstart", -]; -function qa(t) { - return hr.includes(t); -} -const pr = { - formnovalidate: "formNoValidate", - ismap: "isMap", - nomodule: "noModule", - playsinline: "playsInline", - readonly: "readOnly", - defaultvalue: "defaultValue", - defaultchecked: "defaultChecked", - srcobject: "srcObject", - novalidate: "noValidate", - allowfullscreen: "allowFullscreen", - disablepictureinpicture: "disablePictureInPicture", - disableremoteplayback: "disableRemotePlayback", -}; -function ja(t) { - return (t = t.toLowerCase()), pr[t] ?? t; -} -const wr = ["touchstart", "touchmove"]; -function Ya(t) { - return wr.includes(t); -} -const yr = new Set(), - gr = new Set(); -function wn(t, e, n, r = {}) { - function a(s) { - if ((r.capture || br.call(e, s), !s.cancelBubble)) return Xt(() => (n == null ? void 0 : n.call(this, s))); - } - return ( - t.startsWith("pointer") || t.startsWith("touch") || t === "wheel" - ? $e(() => { - e.addEventListener(t, a, r); - }) - : e.addEventListener(t, a, r), - a - ); -} -function Ha(t, e, n, r = {}) { - var a = wn(e, t, n, r); - return () => { - t.removeEventListener(e, a, r); - }; -} -function Ua(t, e, n, r, a) { - var s = { capture: r, passive: a }, - u = wn(t, e, n, s); - (e === document.body || e === window || e === document || e instanceof HTMLMediaElement) && - rn(() => { - e.removeEventListener(t, u, s); - }); -} -function Ba(t) { - for (var e = 0; e < t.length; e++) yr.add(t[e]); - for (var n of gr) n(t); -} -let Ce = null; -function br(t) { - var ct; - var e = this, - n = e.ownerDocument, - r = t.type, - a = ((ct = t.composedPath) == null ? void 0 : ct.call(t)) || [], - s = a[0] || t.target; - Ce = t; - var u = 0, - l = Ce === t && t.__root; - if (l) { - var i = a.indexOf(l); - if (i !== -1 && (e === document || e === window)) { - t.__root = e; - return; - } - var f = a.indexOf(e); - if (f === -1) return; - i <= f && (u = i); - } - if (((s = a[u] || t.target), s !== e)) { - ee(t, "currentTarget", { - configurable: !0, - get() { - return s || n; - }, - }); - var o = _, - c = v; - F(null), X(null); - try { - for (var w, h = []; s !== null; ) { - var p = s.assignedSlot || s.parentNode || s.host || null; - try { - var P = s["__" + r]; - if (P != null && (!s.disabled || t.target === s)) - if (Pe(P)) { - var [H, ...qt] = P; - H.apply(s, [t, ...qt]); - } else P.call(s, t); - } catch (J) { - w ? h.push(J) : (w = J); - } - if (t.cancelBubble || p === e || p === null) break; - s = p; - } - if (w) { - for (let J of h) - queueMicrotask(() => { - throw J; - }); - throw w; - } - } finally { - (t.__root = e), delete t.currentTarget, F(o), X(c); - } - } -} -function yn(t) { - var e = document.createElement("template"); - return (e.innerHTML = t.replaceAll("", "")), e.content; -} -function j(t, e) { - var n = v; - n.nodes_start === null && ((n.nodes_start = t), (n.nodes_end = e)); -} -function Va(t, e) { - var n = (e & Fn) !== 0, - r = (e & qn) !== 0, - a, - s = !t.startsWith(""); - return () => { - if (S) return j(y, null), y; - a === void 0 && ((a = yn(s ? t : "" + t)), n || (a = z(a))); - var u = r || Qe ? document.importNode(a, !0) : a.cloneNode(!0); - if (n) { - var l = z(u), - i = u.lastChild; - j(l, i); - } else j(u, u); - return u; - }; -} -function Er(t, e, n = "svg") { - var r = !t.startsWith(""), - a = `<${n}>${r ? t : "" + t}`, - s; - return () => { - if (S) return j(y, null), y; - if (!s) { - var u = yn(a), - l = z(u); - s = z(l); - } - var i = s.cloneNode(!0); - return j(i, i), i; - }; -} -function Wa(t, e) { - return Er(t, e, "svg"); -} -function $a(t = "") { - if (!S) { - var e = Et(t + ""); - return j(e, e), e; - } - var n = y; - return n.nodeType !== ve && (n.before((n = Et())), yt(n)), j(n, n), n; -} -function Ga() { - if (S) return j(y, null), y; - var t = document.createDocumentFragment(), - e = document.createComment(""), - n = Et(); - return t.append(e, n), j(e, n), t; -} -function Ka(t, e) { - if (S) { - (v.nodes_end = y), Ye(); - return; - } - t !== null && t.before(e); -} -function za() { - var t, e; - if (S && y && y.nodeType === de && (t = y.textContent) != null && t.startsWith("#")) { - const n = y.textContent.substring(1); - return Ye(), n; - } - return (e = window.__svelte ?? (window.__svelte = {})).uid ?? (e.uid = 1), `c${window.__svelte.uid++}`; -} -export { - rr as $, - xr as A, - Le as B, - La as C, - ye as D, - qe as E, - Ft as F, - ma as G, - Ia as H, - Qt as I, - va as J, - rn as K, - $e as L, - Sa as M, - Fr as N, - yt as O, - z as P, - Zn as Q, - ea as R, - st as S, - Yn as T, - ta as U, - Zr as V, - de as W, - Hn as X, - Mr as Y, - Lr as Z, - ie as _, - pa as a, - fe as a$, - _a as a0, - be as a1, - Tr as a2, - Pe as a3, - Ca as a4, - jr as a5, - K as a6, - lt as a7, - qr as a8, - ot as a9, - In as aA, - _ as aB, - Or as aC, - Dr as aD, - Gt as aE, - er as aF, - ua as aG, - aa as aH, - ia as aI, - sa as aJ, - Pa as aK, - Da as aL, - E as aM, - Nt as aN, - Pr as aO, - Ur as aP, - At as aQ, - Tt as aR, - Br as aS, - Hr as aT, - Yr as aU, - Vr as aV, - Ir as aW, - Ar as aX, - na as aY, - Un as aZ, - mt as a_, - fn as aa, - ar as ab, - cr as ac, - v as ad, - fr as ae, - pe as af, - he as ag, - j as ah, - yn as ai, - da as aj, - jn as ak, - Cr as al, - yr as am, - gr as an, - xa as ao, - br as ap, - Ya as aq, - ra as ar, - xn as as, - Ba as at, - U as au, - St as av, - tt as aw, - Ua as ax, - Ga as ay, - kr as az, - Ka as b, - Gr as b0, - Wr as b1, - $r as b2, - Xt as b3, - $a as b4, - Xr as b5, - Qn as b6, - Kr as b7, - Me as b8, - Nr as b9, - zr as ba, - mn as bb, - Fa as bc, - wn as bd, - ga as be, - ja as bf, - oa as bg, - sr as bh, - qa as bi, - ba as bj, - Ta as bk, - te as bl, - Se as bm, - Ha as bn, - ee as bo, - Tn as bp, - Ea as bq, - De as br, - za as bs, - Sr as bt, - fa as c, - ha as d, - Ye as e, - Va as f, - It as g, - S as h, - Ra as i, - Et as j, - Oa as k, - b as l, - ya as m, - Qr as n, - y as o, - la as p, - or as q, - Jr as r, - wa as s, - Na as t, - ca as u, - Wa as v, - g as w, - ka as x, - Aa as y, - Ma as z, -}; diff --git a/frontend-backup/_app/immutable/chunks/BF50aS-j.js b/frontend-backup/_app/immutable/chunks/BF50aS-j.js new file mode 100644 index 0000000..44ea72b --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BF50aS-j.js @@ -0,0 +1,261 @@ +import { + i as x, + h as I, + e as L, + E as Y, + Q as U, + R as j, + S as B, + N as M, + T as D, + j as q, + k as O, + l as C, + aM as F, + m as K, + a2 as z, + q as Q, + o as Z, + aN as m, + aO as $, + aP as G, + g as T, + D as H, + P as V, + av as W, + aw as X, + aQ as J, + ab as k, + aR as ee, + aS as re, + z as ne, + aE as te, + aT as ae, + aU as se, + aV as ie, + ad as A, + aW as N, + aX as y, +} from "./CMvZtFtm.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + r = new e.Error().stack; + r && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[r] = "fa4d28dc-79ce-49af-88f2-dcb89d2725c4"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-fa4d28dc-79ce-49af-88f2-dcb89d2725c4")); + })(); +} catch {} +function oe(e, r, t = !1) { + I && L(); + var n = e, + a = null, + f = null, + l = F, + c = t ? Y : 0, + p = !1; + const S = (d, i = !0) => { + (p = !0), _(i, d); + }; + var u = null; + function w() { + u !== null && (u.lastChild.remove(), n.before(u), (u = null)); + var d = l ? a : f, + i = l ? f : a; + d && z(d), + i && + Q(i, () => { + l ? (f = null) : (a = null); + }); + } + const _ = (d, i) => { + if (l === (l = d)) return; + let E = !1; + if (I) { + const b = U(n) === j; + !!l === b && ((n = B()), M(n), D(!1), (E = !0)); + } + var v = K(), + o = n; + if ( + (v && ((u = document.createDocumentFragment()), u.append((o = q()))), + l ? a ?? (a = i && O(() => i(o))) : f ?? (f = i && O(() => i(o))), + v) + ) { + var h = C, + g = l ? a : f, + s = l ? f : a; + g && h.skipped_effects.delete(g), + s && h.skipped_effects.add(s), + h.add_callback(w); + } else w(); + E && D(!0); + }; + x(() => { + (p = !1), r(S), p || _(null, null); + }, c), + I && (n = Z); +} +let P = !1; +function fe(e) { + var r = P; + try { + return (P = !1), [e(), P]; + } finally { + P = r; + } +} +function ce(e, r = 1) { + const t = e(); + return e(t + r), t; +} +const ue = { + get(e, r) { + if (!e.exclude.includes(r)) return e.props[r]; + }, + set(e, r) { + return !1; + }, + getOwnPropertyDescriptor(e, r) { + if (!e.exclude.includes(r) && r in e.props) + return { enumerable: !0, configurable: !0, value: e.props[r] }; + }, + has(e, r) { + return e.exclude.includes(r) ? !1 : r in e.props; + }, + ownKeys(e) { + return Reflect.ownKeys(e.props).filter((r) => !e.exclude.includes(r)); + }, +}; +function _e(e, r, t) { + return new Proxy({ props: e, exclude: r }, ue); +} +const le = { + get(e, r) { + let t = e.props.length; + for (; t--; ) { + let n = e.props[t]; + if ((y(n) && (n = n()), typeof n == "object" && n !== null && r in n)) + return n[r]; + } + }, + set(e, r, t) { + let n = e.props.length; + for (; n--; ) { + let a = e.props[n]; + y(a) && (a = a()); + const f = m(a, r); + if (f && f.set) return f.set(t), !0; + } + return !1; + }, + getOwnPropertyDescriptor(e, r) { + let t = e.props.length; + for (; t--; ) { + let n = e.props[t]; + if ((y(n) && (n = n()), typeof n == "object" && n !== null && r in n)) { + const a = m(n, r); + return a && !a.configurable && (a.configurable = !0), a; + } + } + }, + has(e, r) { + if (r === A || r === N) return !1; + for (let t of e.props) + if ((y(t) && (t = t()), t != null && r in t)) return !0; + return !1; + }, + ownKeys(e) { + const r = []; + for (let t of e.props) + if ((y(t) && (t = t()), !!t)) { + for (const n in t) r.includes(n) || r.push(n); + for (const n of Object.getOwnPropertySymbols(t)) + r.includes(n) || r.push(n); + } + return r; + }, +}; +function pe(...e) { + return new Proxy({ props: e }, le); +} +function ve(e, r, t, n) { + var g; + var a = !te || (t & ae) !== 0, + f = (t & re) !== 0, + l = (t & ie) !== 0, + c = n, + p = !0, + S = () => (p && ((p = !1), (c = l ? ne(n) : n)), c), + u; + if (f) { + var w = A in e || N in e; + u = + ((g = m(e, r)) == null ? void 0 : g.set) ?? + (w && r in e ? (s) => (e[r] = s) : void 0); + } + var _, + d = !1; + f ? ([_, d] = fe(() => e[r])) : (_ = e[r]), + _ === void 0 && n !== void 0 && ((_ = S()), u && (a && $(), u(_))); + var i; + if ( + (a + ? (i = () => { + var s = e[r]; + return s === void 0 ? S() : ((p = !0), s); + }) + : (i = () => { + var s = e[r]; + return s !== void 0 && (c = void 0), s === void 0 ? c : s; + }), + a && (t & G) === 0) + ) + return i; + if (u) { + var E = e.$$legacy; + return function (s, b) { + return arguments.length > 0 + ? ((!a || !b || E || d) && u(b ? i() : s), s) + : i(); + }; + } + var v = !1, + o = ((t & se) !== 0 ? H : V)(() => ((v = !1), i())); + f && T(o); + var h = k; + return function (s, b) { + if (arguments.length > 0) { + const R = b ? T(o) : a && f ? W(s) : s; + return X(o, R), (v = !0), c !== void 0 && (c = R), s; + } + return (J && v) || (h.f & ee) !== 0 ? o.v : T(o); + }; +} +export { oe as i, ve as p, _e as r, pe as s, ce as u }; diff --git a/frontend-backup/_app/immutable/chunks/BFFUopoM.js b/frontend-backup/_app/immutable/chunks/BFFUopoM.js new file mode 100644 index 0000000..46fba18 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BFFUopoM.js @@ -0,0 +1,43 @@ +import { g as o } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "a22836e1-99fe-4372-8041-51d766e562e7"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-a22836e1-99fe-4372-8041-51d766e562e7")); + })(); +} catch {} +const t = () => "Search", + d = () => "Buscar", + c = (e = {}, n = {}) => ((n.locale ?? o()) === "en" ? t() : d()), + a = () => "Load more", + l = () => "Carregar mais", + f = (e = {}, n = {}) => ((n.locale ?? o()) === "en" ? a() : l()); +export { f as l, c as s }; diff --git a/frontend-backup/_app/immutable/chunks/BHI5vujT.js b/frontend-backup/_app/immutable/chunks/BHI5vujT.js new file mode 100644 index 0000000..4f686ba --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BHI5vujT.js @@ -0,0 +1,40 @@ +import { g as d } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "a102ee55-05cc-4e26-9c0a-bd1623e19f6f"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-a102ee55-05cc-4e26-9c0a-bd1623e19f6f")); + })(); +} catch {} +const o = () => "Loading...", + t = () => "Carregando...", + a = (e = {}, n = {}) => ((n.locale ?? d()) === "en" ? o() : t()); +export { a as l }; diff --git a/frontend-backup/_app/immutable/chunks/BHr_eBwR.js b/frontend-backup/_app/immutable/chunks/BHr_eBwR.js deleted file mode 100644 index 828f24c..0000000 --- a/frontend-backup/_app/immutable/chunks/BHr_eBwR.js +++ /dev/null @@ -1 +0,0 @@ -import"./B2cHk4HI.js";import{M as ce,z as se,H as oe,C as de,aZ as fe,p as W,aw as M,au as U,ay as ue,a as X,g as v,b as w,c as p,f as V,t as j,u as $,v as ee,av as ve,d,r as f,s as u}from"./BDALf20I.js";import{s as y}from"./4k6DpCgf.js";import{p as c,i as B,r as te}from"./Bke_korE.js";import{a as A,c as G,b as ae,s as Z}from"./BNZUboE0.js";import{b as me}from"./BrZ10JY-.js";import{g as R,d as J,P as _e,e as be}from"./DffDvEhl.js";import{o as ge}from"./4WsUhDWi.js";import{g as L}from"./DklPLC_x.js";import{L as he}from"./CYItkO2S.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new a.Error().stack;e&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[e]="aa310ff8-8885-4639-8b27-0f61ee27218a",a._sentryDebugIdIdentifier="sentry-dbid-aa310ff8-8885-4639-8b27-0f61ee27218a")})()}catch{}function ye(a,e,n){ce(()=>{var r=se(()=>e(a,n==null?void 0:n())||{});if(n&&(r!=null&&r.update)){var _=!1,m={};oe(()=>{var s=n();de(s),_&&fe(m,s)&&(m=s,r.update(s))}),_=!0}if(r!=null&&r.destroy)return()=>r.destroy()})}const we=a=>`Login with ${a.name}`,xe=a=>`Entrar com ${a.name}`,Q=(a,e={})=>(e.locale??L())==="en"?we(a):xe(a),ke=()=>"By continuing, you agree to our",Ie=()=>"Ao continuar, você concorda com nossos",Le=(a={},e={})=>(e.locale??L())==="en"?ke():Ie(),Ce=()=>"Terms of Service",Ee=()=>"Termos de Serviço",Te=(a={},e={})=>(e.locale??L())==="en"?Ce():Ee(),ze=()=>"and",Be=()=>"e",Me=(a={},e={})=>(e.locale??L())==="en"?ze():Be(),De=()=>"Privacy Policy",Pe=()=>"Política de privacidade",Se=(a={},e={})=>(e.locale??L())==="en"?De():Pe();var Fe=V("
        ");function He(a,e){W(e,!0);let n=c(e,"widgetId",15),r=c(e,"appearance",3,"always"),_=c(e,"language",3,"auto"),m=c(e,"execution",3,"render"),s=c(e,"retryInterval",3,8e3),D=c(e,"retry",3,"auto"),g=c(e,"refreshExpired",3,"auto"),C=c(e,"theme",3,"auto"),E=c(e,"size",3,"normal"),P=c(e,"tabIndex",3,0);c(e,"reset",15)(()=>{var t;n()&&((t=window==null?void 0:window.turnstile)==null||t.reset(n()))});const T=$(()=>({sitekey:e.siteKey,callback:(t,i)=>{var l;(l=e.callback)==null||l.call(e,t,i)},"error-callback":t=>{var i;(i=e.errorCallback)==null||i.call(e,t)},"timeout-callback":()=>{var t;(t=e.timeoutCallback)==null||t.call(e)},"expired-callback":()=>{var t;(t=e.expiredCallback)==null||t.call(e)},"before-interactive-callback":()=>{var t;(t=e.beforeInteractiveCallback)==null||t.call(e)},"after-interactive-callback":()=>{var t;(t=e.afterInteractiveCallback)==null||t.call(e)},"unsupported-callback":()=>{var t;return(t=e.unsupportedCallback)==null?void 0:t.call(e)},"response-field-name":e.responseFieldName??e.formsField??"cf-turnstile-response","response-field":e.responseField??e.forms??!0,"refresh-expired":g(),"retry-interval":s(),tabindex:P(),appearance:r(),execution:m(),language:_(),action:e.action,retry:D(),theme:C(),cData:e.cData,size:E()})),b=(t,i)=>{let l=window.turnstile.render(t,i);return n(l),{destroy(){window.turnstile.remove(l)},update(o){window.turnstile.remove(l),l=window.turnstile.render(t,o),n(l)}}};let x=U(!1);ge(()=>{if(M(x,!0),!R.turnstatileLoaded){const t=document.createElement("script");t.type="text/javascript",t.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",t.async=!0,t.addEventListener("load",()=>R.turnstatileLoaded=!0,{once:!0}),document.head.appendChild(t)}return()=>{M(x,!1)}});var k=ue(),z=X(k);{var F=t=>{var i=Fe();let l;ye(i,(o,H)=>b==null?void 0:b(o,H),()=>v(T)),j(o=>l=A(i,1,G(e.class),"svelte-1gvfki5",l,o),[()=>({flexible:E()=="flexible"})]),w(t,i)};B(z,t=>{R.turnstatileLoaded&&v(x)&&t(F)})}w(a,k),p()}var Ne=ee('');function Ke(a,e){let n=te(e,["$$slots","$$events","$$legacy"]);var r=Ne();ae(r,()=>({viewBox:"0 0 256 262",xmlns:"http://www.w3.org/2000/svg",...n})),w(a,r)}var Re=ee('');function Ue(a,e){let n=te(e,["$$slots","$$events","$$legacy"]);var r=Re();ae(r,()=>({xmlns:"http://www.w3.org/2000/svg","xml:space":"preserve",viewBox:"0 0 2400 2800",...n})),w(a,r)}var je=V('
        ',1),Ae=V('');function pe(a,e){W(e,!0);let n=U(null),r=U(ve(J?"":"turnstile-disabled"));function _(t,i){return`${_e}/auth/${t}?token=${i}${e.redirect?`&r=${e.redirect}`:""}`}var m=Ae(),s=d(m),D=d(s);he(D,{hasText:!0}),f(s);var g=u(s,2),C=d(g),E=d(C);{var P=t=>{var i=je(),l=X(i),o=d(l);Ke(o,{class:"mr-1 size-5"});var H=u(o);f(l);var I=u(l,2),Y=d(I);Ue(Y,{class:"mr-1 size-5"});var re=u(Y);f(I);var q=u(I,2),O=d(q);{var ne=h=>{{let N=$(()=>be.trim());He(h,{get siteKey(){return v(N)},callback:K=>{M(r,K,!0)}})}};B(O,h=>{J&&h(ne)})}var le=u(O,2);B(le,h=>{}),f(q),j((h,N,K,ie)=>{A(l,1,G({"btn btn-lg bg-base-100 w-full text-base":!0,"bg-base-content/10 pointer-events-none":!v(r)})),Z(l,"href",h),y(H,` ${N??""}`),A(I,1,G({"btn btn-lg bg-base-100 w-full text-base":!0,"bg-base-content/10 pointer-events-none":!v(r)})),Z(I,"href",K),y(re,` ${ie??""}`)},[()=>v(r)?_("google",v(r)):"#",()=>Q({name:"Google"}),()=>v(r)?_("twitch",v(r)):"#",()=>Q({name:"Twitch"})]),w(t,i)};B(E,t=>{t(P,!1)})}f(C),f(g),me(g,t=>M(n,t),()=>v(n));var S=u(g,2),T=d(S),b=u(T),x=d(b,!0);f(b);var k=u(b),z=u(k),F=d(z,!0);f(z),f(S),f(m),j((t,i,l,o)=>{y(T,`${t??""} `),y(x,i),y(k,` ${l??""} `),y(F,o)},[()=>Le(),()=>Te(),()=>Me(),()=>Se()]),w(a,m),p()}export{pe as L,Ue as T,He as a}; diff --git a/frontend-backup/_app/immutable/chunks/BI7eddl7.js b/frontend-backup/_app/immutable/chunks/BI7eddl7.js new file mode 100644 index 0000000..483ea60 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BI7eddl7.js @@ -0,0 +1,100 @@ +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new e.Error().stack; + o && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[o] = "2873cead-a87c-4550-afcc-7d8128f4def3"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-2873cead-a87c-4550-afcc-7d8128f4def3")); + })(); +} catch {} +const m = "modulepreload", + w = function (e, o) { + return new URL(e, o).href; + }, + g = {}, + v = function (o, a, u) { + let h = Promise.resolve(); + if (a && a.length > 0) { + let i = function (t) { + return Promise.all( + t.map((s) => + Promise.resolve(s).then( + (c) => ({ status: "fulfilled", value: c }), + (c) => ({ status: "rejected", reason: c }) + ) + ) + ); + }; + const n = document.getElementsByTagName("link"), + l = document.querySelector("meta[property=csp-nonce]"), + b = + (l == null ? void 0 : l.nonce) || + (l == null ? void 0 : l.getAttribute("nonce")); + h = i( + a.map((t) => { + if (((t = w(t, u)), t in g)) return; + g[t] = !0; + const s = t.endsWith(".css"), + c = s ? '[rel="stylesheet"]' : ""; + if (!!u) + for (let d = n.length - 1; d >= 0; d--) { + const f = n[d]; + if (f.href === t && (!s || f.rel === "stylesheet")) return; + } + else if (document.querySelector(`link[href="${t}"]${c}`)) return; + const r = document.createElement("link"); + if ( + ((r.rel = s ? "stylesheet" : m), + s || (r.as = "script"), + (r.crossOrigin = ""), + (r.href = t), + b && r.setAttribute("nonce", b), + document.head.appendChild(r), + s) + ) + return new Promise((d, f) => { + r.addEventListener("load", d), + r.addEventListener("error", () => + f(new Error(`Unable to preload CSS for ${t}`)) + ); + }); + }) + ); + } + function y(i) { + const n = new Event("vite:preloadError", { cancelable: !0 }); + if (((n.payload = i), window.dispatchEvent(n), !n.defaultPrevented)) + throw i; + } + return h.then((i) => { + for (const n of i || []) n.status === "rejected" && y(n.reason); + return o().catch(y); + }); + }; +export { v as _ }; diff --git a/frontend-backup/_app/immutable/chunks/BKioTOWR.js b/frontend-backup/_app/immutable/chunks/BKioTOWR.js new file mode 100644 index 0000000..75ea074 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BKioTOWR.js @@ -0,0 +1,61 @@ +import { g as s } from "./CV9xcpLq.js"; +import "./Ch2Ub8FX.js"; +import { v as r, b as i } from "./CMvZtFtm.js"; +import { b as a } from "./C5yqZvKC.js"; +import { r as l } from "./BF50aS-j.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "e9a4a830-f71c-4119-8142-30326aa85639"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-e9a4a830-f71c-4119-8142-30326aa85639")); + })(); +} catch {} +const d = () => "Pixels painted", + c = () => "Pixels pintados", + T = (e = {}, t = {}) => ((t.locale ?? s()) === "en" ? d() : c()), + p = () => "Description", + f = () => "Descrição", + m = (e = {}, t = {}) => ((t.locale ?? s()) === "en" ? p() : f()); +var u = r( + '' +); +function v(e, t) { + let n = l(t, ["$$slots", "$$events", "$$legacy"]); + var o = u(); + a(o, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...n, + })), + i(e, o); +} +export { v as L, m as d, T as p }; diff --git a/frontend-backup/_app/immutable/chunks/BMKgGW48.js b/frontend-backup/_app/immutable/chunks/BMKgGW48.js deleted file mode 100644 index 3cf32b7..0000000 --- a/frontend-backup/_app/immutable/chunks/BMKgGW48.js +++ /dev/null @@ -1,27 +0,0 @@ -import { t as u, h as o, e as l, a6 as g, a7 as y, m as h, P as p, a2 as b, a8 as w, a9 as O, aa as m, I as R, ab as E, J as f } from "./DUoKDNpf.js"; -function C(c, v, i = !1, _ = !1, N = !1) { - var n = c, - t = ""; - u(() => { - var s = g; - if (t === (t = v() ?? "")) { - o && l(); - return; - } - if ((s.nodes_start !== null && (y(s.nodes_start, s.nodes_end), (s.nodes_start = s.nodes_end = null)), t !== "")) { - if (o) { - h.data; - for (var a = l(), d = a; a !== null && (a.nodeType !== p || a.data !== ""); ) (d = a), (a = b(a)); - if (a === null) throw (w(), O); - m(h, d), (n = R(a)); - return; - } - var r = t + ""; - i ? (r = `${r}`) : _ && (r = `${r}`); - var e = E(r); - if (((i || _) && (e = f(e)), m(f(e), e.lastChild), i || _)) for (; f(e); ) n.before(f(e)); - else n.before(e); - } - }); -} -export { C as h }; diff --git a/frontend-backup/_app/immutable/chunks/BMfwGdZU.js b/frontend-backup/_app/immutable/chunks/BMfwGdZU.js deleted file mode 100644 index 7be5bc9..0000000 --- a/frontend-backup/_app/immutable/chunks/BMfwGdZU.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a102ee55-05cc-4e26-9c0a-bd1623e19f6f",e._sentryDebugIdIdentifier="sentry-dbid-a102ee55-05cc-4e26-9c0a-bd1623e19f6f")})()}catch{}const d=()=>"Loading...",t=()=>"Carregando...",a=(e={},n={})=>(n.locale??o())==="en"?d():t();export{a as l}; diff --git a/frontend-backup/_app/immutable/chunks/BNZUboE0.js b/frontend-backup/_app/immutable/chunks/BNZUboE0.js deleted file mode 100644 index 5a4ce80..0000000 --- a/frontend-backup/_app/immutable/chunks/BNZUboE0.js +++ /dev/null @@ -1,370 +0,0 @@ -import { - i as V, - a7 as k, - k as Y, - M as P, - h as p, - a3 as Z, - b5 as Q, - J as W, - K as X, - G as m, - b6 as x, - b7 as rr, - b8 as fr, - b9 as ir, - g as ar, - ba as er, - bb as tr, - V as j, - bc as ur, - bd as sr, - at as or, - be as lr, - bf as nr, - aM as cr, - bg as dr, - bh as vr, - bi as br, -} from "./BDALf20I.js"; -(function () { - try { - var r = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - r.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var r = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - f = new r.Error().stack; - f && ((r._sentryDebugIds = r._sentryDebugIds || {}), (r._sentryDebugIds[f] = "79114daf-27cc-4daf-a558-677aac9a6589"), (r._sentryDebugIdIdentifier = "sentry-dbid-79114daf-27cc-4daf-a558-677aac9a6589")); - })(); -} catch {} -function gr(r, f) { - var i = void 0, - a; - V(() => { - i !== (i = f()) && - (a && (k(a), (a = null)), - i && - (a = Y(() => { - P(() => i(r)); - }))); - }); -} -function G(r) { - var f, - i, - a = ""; - if (typeof r == "string" || typeof r == "number") a += r; - else if (typeof r == "object") - if (Array.isArray(r)) { - var e = r.length; - for (f = 0; f < e; f++) r[f] && (i = G(r[f])) && (a && (a += " "), (a += i)); - } else for (i in r) r[i] && (a && (a += " "), (a += i)); - return a; -} -function hr() { - for (var r, f, i = 0, a = "", e = arguments.length; i < e; i++) (r = arguments[i]) && (f = G(r)) && (a && (a += " "), (a += f)); - return a; -} -function _r(r) { - return typeof r == "object" ? hr(r) : r ?? ""; -} -const q = [ - ...` -\r\f \v\uFEFF`, -]; -function Ar(r, f, i) { - var a = r == null ? "" : "" + r; - if ((f && (a = a ? a + " " + f : f), i)) { - for (var e in i) - if (i[e]) a = a ? a + " " + e : e; - else if (a.length) - for (var t = e.length, u = 0; (u = a.indexOf(e, u)) >= 0; ) { - var s = u + t; - (u === 0 || q.includes(a[u - 1])) && (s === a.length || q.includes(a[s])) ? (a = (u === 0 ? "" : a.substring(0, u)) + a.substring(s + 1)) : (u = s); - } - } - return a === "" ? null : a; -} -function D(r, f = !1) { - var i = f ? " !important;" : ";", - a = ""; - for (var e in r) { - var t = r[e]; - t != null && t !== "" && (a += " " + e + ": " + t + i); - } - return a; -} -function M(r) { - return r[0] !== "-" || r[1] !== "-" ? r.toLowerCase() : r; -} -function Sr(r, f) { - if (f) { - var i = "", - a, - e; - if ((Array.isArray(f) ? ((a = f[0]), (e = f[1])) : (a = f), r)) { - r = String(r) - .replaceAll(/\s*\/\*.*?\*\/\s*/g, "") - .trim(); - var t = !1, - u = 0, - s = !1, - d = []; - a && d.push(...Object.keys(a).map(M)), e && d.push(...Object.keys(e).map(M)); - var l = 0, - A = -1; - const b = r.length; - for (var v = 0; v < b; v++) { - var c = r[v]; - if ((s ? c === "/" && r[v - 1] === "*" && (s = !1) : t ? t === c && (t = !1) : c === "/" && r[v + 1] === "*" ? (s = !0) : c === '"' || c === "'" ? (t = c) : c === "(" ? u++ : c === ")" && u--, !s && t === !1 && u === 0)) { - if (c === ":" && A === -1) A = v; - else if (c === ";" || v === b - 1) { - if (A !== -1) { - var y = M(r.substring(l, A).trim()); - if (!d.includes(y)) { - c !== ";" && v++; - var S = r.substring(l, v).trim(); - i += " " + S + ";"; - } - } - (l = v + 1), (A = -1); - } - } - } - } - return a && (i += D(a)), e && (i += D(e, !0)), (i = i.trim()), i === "" ? null : i; - } - return r == null ? null : String(r); -} -function pr(r, f, i, a, e, t) { - var u = r.__className; - if (p || u !== i || u === void 0) { - var s = Ar(i, a, t); - (!p || s !== r.getAttribute("class")) && (s == null ? r.removeAttribute("class") : f ? (r.className = s) : r.setAttribute("class", s)), (r.__className = i); - } else if (t && e !== t) - for (var d in t) { - var l = !!t[d]; - (e == null || l !== !!e[d]) && r.classList.toggle(d, l); - } - return t; -} -function C(r, f = {}, i, a) { - for (var e in i) { - var t = i[e]; - f[e] !== t && (i[e] == null ? r.style.removeProperty(e) : r.style.setProperty(e, t, a)); - } -} -function yr(r, f, i, a) { - var e = r.__style; - if (p || e !== f) { - var t = Sr(f, a); - (!p || t !== r.getAttribute("style")) && (t == null ? r.removeAttribute("style") : (r.style.cssText = t)), (r.__style = f); - } else a && (Array.isArray(a) ? (C(r, i == null ? void 0 : i[0], a[0]), C(r, i == null ? void 0 : i[1], a[1], "important")) : C(r, i, a)); - return a; -} -function I(r, f, i = !1) { - if (r.multiple) { - if (f == null) return; - if (!Z(f)) return Q(); - for (var a of r.options) a.selected = f.includes(w(a)); - return; - } - for (a of r.options) { - var e = w(a); - if (W(e, f)) { - a.selected = !0; - return; - } - } - (!i || f !== void 0) && (r.selectedIndex = -1); -} -function H(r) { - var f = new MutationObserver(() => { - I(r, r.__value); - }); - f.observe(r, { childList: !0, subtree: !0, attributes: !0, attributeFilter: ["value"] }), - X(() => { - f.disconnect(); - }); -} -function wr(r, f, i = f) { - var a = !0; - m(r, "change", (e) => { - var t = e ? "[selected]" : ":checked", - u; - if (r.multiple) u = [].map.call(r.querySelectorAll(t), w); - else { - var s = r.querySelector(t) ?? r.querySelector("option:not([disabled])"); - u = s && w(s); - } - i(u); - }), - P(() => { - var e = f(); - if ((I(r, e, a), a && e === void 0)) { - var t = r.querySelector(":checked"); - t !== null && ((e = w(t)), i(e)); - } - (r.__value = e), (a = !1); - }), - H(r); -} -function w(r) { - return "__value" in r ? r.__value : r.value; -} -const N = Symbol("class"), - T = Symbol("style"), - K = Symbol("is custom element"), - B = Symbol("is html"); -function Ir(r) { - if (p) { - var f = !1, - i = () => { - if (!f) { - if (((f = !0), r.hasAttribute("value"))) { - var a = r.value; - L(r, "value", null), (r.value = a); - } - if (r.hasAttribute("checked")) { - var e = r.checked; - L(r, "checked", null), (r.checked = e); - } - } - }; - (r.__on_r = i), dr(i), vr(); - } -} -function Lr(r, f) { - var i = R(r); - i.value === (i.value = f ?? void 0) || (r.value === f && (f !== 0 || r.nodeName !== "PROGRESS")) || (r.value = f ?? ""); -} -function Er(r, f) { - f ? r.hasAttribute("selected") || r.setAttribute("selected", "") : r.removeAttribute("selected"); -} -function L(r, f, i, a) { - var e = R(r); - (p && ((e[f] = r.getAttribute(f)), f === "src" || f === "srcset" || (f === "href" && r.nodeName === "LINK"))) || - (e[f] !== (e[f] = i) && (f === "loading" && (r[ir] = i), i == null ? r.removeAttribute(f) : typeof i != "string" && z(r).includes(f) ? (r[f] = i) : r.setAttribute(f, i))); -} -function Nr(r, f, i, a, e = !1) { - var t = R(r), - u = t[K], - s = !t[B]; - let d = p && u; - d && j(!1); - var l = f || {}, - A = r.tagName === "OPTION"; - for (var v in f) v in i || (i[v] = null); - i.class ? (i.class = _r(i.class)) : (a || i[N]) && (i.class = null), i[T] && (i.style ?? (i.style = null)); - var c = z(r); - for (const o in i) { - let n = i[o]; - if (A && o === "value" && n == null) { - (r.value = r.__value = ""), (l[o] = n); - continue; - } - if (o === "class") { - var y = r.namespaceURI === "http://www.w3.org/1999/xhtml"; - pr(r, y, n, a, f == null ? void 0 : f[N], i[N]), (l[o] = n), (l[N] = i[N]); - continue; - } - if (o === "style") { - yr(r, n, f == null ? void 0 : f[T], i[T]), (l[o] = n), (l[T] = i[T]); - continue; - } - var S = l[o]; - if (!(n === S && !(n === void 0 && r.hasAttribute(o)))) { - l[o] = n; - var b = o[0] + o[1]; - if (b !== "$$") - if (b === "on") { - const _ = {}, - E = "$$" + o; - let g = o.slice(2); - var O = br(g); - if ((ur(g) && ((g = g.slice(0, -7)), (_.capture = !0)), !O && S)) { - if (n != null) continue; - r.removeEventListener(g, l[E], _), (l[E] = null); - } - if (n != null) - if (O) (r[`__${g}`] = n), or([g]); - else { - let F = function (J) { - l[o].call(this, J); - }; - l[E] = sr(g, r, F, _); - } - else O && (r[`__${g}`] = void 0); - } else if (o === "style") L(r, o, n); - else if (o === "autofocus") lr(r, !!n); - else if (!u && (o === "__value" || (o === "value" && n != null))) r.value = r.__value = n; - else if (o === "selected" && A) Er(r, n); - else { - var h = o; - s || (h = nr(h)); - var $ = h === "defaultValue" || h === "defaultChecked"; - if (n == null && !u && !$) - if (((t[o] = null), h === "value" || h === "checked")) { - let _ = r; - const E = f === void 0; - if (h === "value") { - let g = _.defaultValue; - _.removeAttribute(h), (_.defaultValue = g), (_.value = _.__value = E ? g : null); - } else { - let g = _.defaultChecked; - _.removeAttribute(h), (_.defaultChecked = g), (_.checked = E ? g : !1); - } - } else r.removeAttribute(o); - else $ || (c.includes(h) && (u || typeof n != "string")) ? ((r[h] = n), h in t && (t[h] = cr)) : typeof n != "function" && L(r, h, n); - } - } - } - return d && j(!0), l; -} -function Or(r, f, i = [], a = [], e, t = !1) { - x(i, a, (u) => { - var s = void 0, - d = {}, - l = r.nodeName === "SELECT", - A = !1; - if ( - (V(() => { - var c = f(...u.map(ar)), - y = Nr(r, s, c, e, t); - A && l && "value" in c && I(r, c.value); - for (let b of Object.getOwnPropertySymbols(d)) c[b] || k(d[b]); - for (let b of Object.getOwnPropertySymbols(c)) { - var S = c[b]; - b.description === er && (!s || S !== s[b]) && (d[b] && k(d[b]), (d[b] = Y(() => gr(r, () => S)))), (y[b] = S); - } - s = y; - }), - l) - ) { - var v = r; - P(() => { - I(v, s.value, !0), H(v); - }); - } - A = !0; - }); -} -function R(r) { - return r.__attributes ?? (r.__attributes = { [K]: r.nodeName.includes("-"), [B]: r.namespaceURI === rr }); -} -var U = new Map(); -function z(r) { - var f = U.get(r.nodeName); - if (f) return f; - U.set(r.nodeName, (f = [])); - for (var i, a = r, e = Element.prototype; e !== a; ) { - i = tr(a); - for (var t in i) i[t].set && f.push(t); - a = fr(a); - } - return f; -} -export { N as C, T as S, pr as a, Or as b, _r as c, wr as d, yr as e, gr as f, Lr as g, hr as h, Ir as r, L as s }; diff --git a/frontend-backup/_app/immutable/chunks/BOREeBzQ.js b/frontend-backup/_app/immutable/chunks/BOREeBzQ.js new file mode 100644 index 0000000..06c7139 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BOREeBzQ.js @@ -0,0 +1,37 @@ +import { ar as d } from "./CMvZtFtm.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + f = new e.Error().stack; + f && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[f] = "04fff17c-04f8-458c-8ff9-180b80f62e15"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-04fff17c-04f8-458c-8ff9-180b80f62e15")); + })(); +} catch {} +d(); diff --git a/frontend-backup/_app/immutable/chunks/BRM3t761.js b/frontend-backup/_app/immutable/chunks/BRM3t761.js new file mode 100644 index 0000000..7e1a9ad --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BRM3t761.js @@ -0,0 +1,2166 @@ +var be = Object.defineProperty; +var re = (a) => { + throw TypeError(a); +}; +var ye = (a, e, t) => + e in a + ? be(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) + : (a[e] = t); +var _ = (a, e, t) => ye(a, typeof e != "symbol" ? e + "" : e, t), + Se = (a, e, t) => e.has(a) || re("Cannot " + t); +var u = (a, e, t) => ( + Se(a, e, "read from private field"), t ? t.call(a) : e.get(a) + ), + h = (a, e, t) => + e.has(a) + ? re("Cannot add the same private member more than once") + : e instanceof WeakSet + ? e.add(a) + : e.set(a, t); +import { + au as y, + av as Z, + g as p, + aw as w, + z as se, + u as P, +} from "./CMvZtFtm.js"; +import { g } from "./CV9xcpLq.js"; +import { s as Te } from "./Dmqg20ho.js"; +(function () { + try { + var a = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + a.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var a = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new a.Error().stack; + e && + ((a._sentryDebugIds = a._sentryDebugIds || {}), + (a._sentryDebugIds[e] = "87aabbe3-7829-4f34-ab59-ca38cce958a0"), + (a._sentryDebugIdIdentifier = + "sentry-dbid-87aabbe3-7829-4f34-ab59-ca38cce958a0")); + })(); +} catch {} +const Ee = "false", + la = "/files", + da = "0x4AAAAAABpHqZ-6i7uL0nmG", + ue = "", + ua = "0x4AAAAAABpqJe8FO0N84q0F"; +function ga(...a) { + return a.filter(Boolean).join(" "); +} +const ve = typeof document < "u"; +let oe = 0; +var L, k, C; +class Ae { + constructor() { + h(this, L, y(Z([]))); + h(this, k, y(Z([]))); + h(this, C, (e) => { + const t = this.toasts.findIndex((n) => n.id === e); + return t === -1 ? null : t; + }); + _(this, "addToast", (e) => { + ve && this.toasts.unshift(e); + }); + _(this, "updateToast", ({ id: e, data: t, type: n, message: s }) => { + const r = this.toasts.findIndex((o) => o.id === e), + l = this.toasts[r]; + this.toasts[r] = { ...l, ...t, id: e, title: s, type: n, updated: !0 }; + }); + _(this, "create", (e) => { + var o; + const { message: t, ...n } = e, + s = + typeof (e == null ? void 0 : e.id) == "number" || + (e.id && ((o = e.id) == null ? void 0 : o.length) > 0) + ? e.id + : oe++, + r = e.dismissable === void 0 ? !0 : e.dismissable, + l = e.type === void 0 ? "default" : e.type; + return ( + se(() => { + this.toasts.find((c) => c.id === s) + ? this.updateToast({ + id: s, + data: e, + type: l, + message: t, + dismissable: r, + }) + : this.addToast({ ...n, id: s, title: t, dismissable: r, type: l }); + }), + s + ); + }); + _( + this, + "dismiss", + (e) => ( + se(() => { + if (e === void 0) { + this.toasts = this.toasts.map((n) => ({ ...n, dismiss: !0 })); + return; + } + const t = this.toasts.findIndex((n) => n.id === e); + this.toasts[t] && + (this.toasts[t] = { ...this.toasts[t], dismiss: !0 }); + }), + e + ) + ); + _(this, "remove", (e) => { + if (e === void 0) { + this.toasts = []; + return; + } + const t = u(this, C).call(this, e); + if (t !== null) return this.toasts.splice(t, 1), e; + }); + _(this, "message", (e, t) => + this.create({ ...t, type: "default", message: e }) + ); + _(this, "error", (e, t) => + this.create({ ...t, type: "error", message: e }) + ); + _(this, "success", (e, t) => + this.create({ ...t, type: "success", message: e }) + ); + _(this, "info", (e, t) => this.create({ ...t, type: "info", message: e })); + _(this, "warning", (e, t) => + this.create({ ...t, type: "warning", message: e }) + ); + _(this, "loading", (e, t) => + this.create({ ...t, type: "loading", message: e }) + ); + _(this, "promise", (e, t) => { + if (!t) return; + let n; + t.loading !== void 0 && + (n = this.create({ + ...t, + promise: e, + type: "loading", + message: typeof t.loading == "string" ? t.loading : t.loading(), + })); + const s = e instanceof Promise ? e : e(); + let r = n !== void 0; + return ( + s + .then((l) => { + if ( + typeof l == "object" && + l && + "ok" in l && + typeof l.ok == "boolean" && + !l.ok + ) { + r = !1; + const o = Pe(l); + this.create({ id: n, type: "error", message: o }); + } else if (t.success !== void 0) { + r = !1; + const o = + typeof t.success == "function" ? t.success(l) : t.success; + this.create({ id: n, type: "success", message: o }); + } + }) + .catch((l) => { + if (t.error !== void 0) { + r = !1; + const o = typeof t.error == "function" ? t.error(l) : t.error; + this.create({ id: n, type: "error", message: o }); + } + }) + .finally(() => { + var l; + r && (this.dismiss(n), (n = void 0)), + (l = t.finally) == null || l.call(t); + }), + n + ); + }); + _(this, "custom", (e, t) => { + const n = (t == null ? void 0 : t.id) || oe++; + return this.create({ component: e, id: n, ...t }), n; + }); + _(this, "removeHeight", (e) => { + this.heights = this.heights.filter((t) => t.toastId !== e); + }); + _(this, "setHeight", (e) => { + const t = u(this, C).call(this, e.toastId); + if (t === null) { + this.heights.push(e); + return; + } + this.heights[t] = e; + }); + _(this, "reset", () => { + (this.toasts = []), (this.heights = []); + }); + } + get toasts() { + return p(u(this, L)); + } + set toasts(e) { + w(u(this, L), e, !0); + } + get heights() { + return p(u(this, k)); + } + set heights(e) { + w(u(this, k), e, !0); + } +} +(L = new WeakMap()), (k = new WeakMap()), (C = new WeakMap()); +function Pe(a) { + return a && typeof a == "object" && "status" in a + ? `HTTP error! Status: ${a.status}` + : `Error! ${a}`; +} +const T = new Ae(); +function xe(a, e) { + return T.create({ message: a, ...e }); +} +var ee; +class fa { + constructor() { + h( + this, + ee, + P(() => T.toasts.filter((e) => !e.dismiss)) + ); + } + get toasts() { + return p(u(this, ee)); + } +} +ee = new WeakMap(); +const Ie = xe, + ge = Object.assign(Ie, { + success: T.success, + info: T.info, + warning: T.warning, + error: T.error, + custom: T.custom, + message: T.message, + promise: T.promise, + dismiss: T.dismiss, + loading: T.loading, + getActiveToasts: () => T.toasts.filter((a) => !a.dismiss), + }); +let fe = y(void 0); +const me = () => p(fe), + ma = (a) => { + const e = new URL(a, ue), + t = me(); + return t && e.searchParams.set("override", t.token), e.toString(); + }; +function ha() { + try { + Oe(); + } catch (a) { + console.error("failed to load override", a); + } +} +function Oe() { + const e = new URL(location.href).searchParams.get("override"); + if (!e) return; + const t = e.split("."); + if (t.length !== 2) throw new Error("override token wrong amount of parts"); + const [n] = t, + s = JSON.parse(atob(n)); + if (Date.now() / 1e3 > s.expiresAt) throw new Error("override token expired"); + ge.info( + `Currently using the ${s.id} override. Bugs may occur, go back to ${location.protocol}//${location.host} to clear this override.`, + { duration: 6e4 } + ), + w(fe, { token: e, payload: s }, !0); +} +const ie = "theme"; +var q, M, N, D, B, U, G; +class Le { + constructor() { + h(this, q, y(!1)); + h(this, M, y(!1)); + h(this, N, y(Z(Ce()))); + h(this, D, y(!1)); + h(this, B, y("custom-winter")); + h(this, U, y(Z(Date.now()))); + h(this, G, y(void 0)); + setInterval(() => { + w(u(this, U), Date.now(), !0); + }, 500), + (this.theme = localStorage.getItem(ie) || "custom-winter"); + } + get dropletsDialogOpen() { + return p(u(this, q)); + } + set dropletsDialogOpen(e) { + w(u(this, q), e, !0); + } + get muted() { + return p(u(this, M)); + } + set muted(e) { + w(u(this, M), e, !0); + } + get language() { + return p(u(this, N)); + } + set language(e) { + w(u(this, N), e, !0); + } + get turnstatileLoaded() { + return p(u(this, D)); + } + set turnstatileLoaded(e) { + w(u(this, D), e, !0); + } + get theme() { + return p(u(this, B)); + } + set theme(e) { + w(u(this, B), e, !0), + localStorage.setItem(ie, e), + document.documentElement.setAttribute("data-theme", e); + } + get now() { + return p(u(this, U)); + } + get captcha() { + return qe + ? p(u(this, G)) + : { token: "turnstile-disabled", time: Date.now() }; + } + set captcha(e) { + w(u(this, G), e, !0); + } +} +(q = new WeakMap()), + (M = new WeakMap()), + (N = new WeakMap()), + (D = new WeakMap()), + (B = new WeakMap()), + (U = new WeakMap()), + (G = new WeakMap()); +const ke = new Le(); +function Ce() { + if (navigator.languages && navigator.languages.length > 0) { + const a = navigator.languages.find((e) => e.length === 2); + if (a) return a; + } + return ( + navigator.language || + navigator.userLanguage || + navigator.browserLanguage || + "en" + ).substring(0, 2); +} +const qe = Ee.toLowerCase() !== "false"; +let m; +function x(a) { + const e = m.__externref_table_alloc(); + return m.__wbindgen_export_2.set(e, a), e; +} +function A(a, e) { + try { + return a.apply(this, e); + } catch (t) { + const n = x(t); + m.__wbindgen_exn_store(n); + } +} +const he = + typeof TextDecoder < "u" + ? new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }) + : { + decode: () => { + throw Error("TextDecoder not available"); + }, + }; +typeof TextDecoder < "u" && he.decode(); +let I = null; +function W() { + return ( + (I === null || I.byteLength === 0) && (I = new Uint8Array(m.memory.buffer)), + I + ); +} +function O(a, e) { + return (a = a >>> 0), he.decode(W().subarray(a, a + e)); +} +function H(a) { + return a == null; +} +function _a(a) { + m.set_user_id(a); +} +let Q = 0; +const Y = + typeof TextEncoder < "u" + ? new TextEncoder("utf-8") + : { + encode: () => { + throw Error("TextEncoder not available"); + }, + }, + Me = + typeof Y.encodeInto == "function" + ? function (a, e) { + return Y.encodeInto(a, e); + } + : function (a, e) { + const t = Y.encode(a); + return e.set(t), { read: a.length, written: t.length }; + }; +function _e(a, e, t) { + if (t === void 0) { + const o = Y.encode(a), + d = e(o.length, 1) >>> 0; + return ( + W() + .subarray(d, d + o.length) + .set(o), + (Q = o.length), + d + ); + } + let n = a.length, + s = e(n, 1) >>> 0; + const r = W(); + let l = 0; + for (; l < n; l++) { + const o = a.charCodeAt(l); + if (o > 127) break; + r[s + l] = o; + } + if (l !== n) { + l !== 0 && (a = a.slice(l)), (s = t(s, n, (n = l + a.length * 3), 1) >>> 0); + const o = W().subarray(s + l, s + n), + d = Me(a, o); + (l += d.written), (s = t(s, n, l, 1) >>> 0); + } + return (Q = l), s; +} +function pa(a) { + const e = _e(a, m.__wbindgen_malloc, m.__wbindgen_realloc), + t = Q; + m.request_url(e, t); +} +function Ne() { + let a, e; + try { + const t = m.get_load_payload(); + return (a = t[0]), (e = t[1]), O(t[0], t[1]); + } finally { + m.__wbindgen_free(a, e, 1); + } +} +function De(a) { + let e, t; + try { + const n = _e(a, m.__wbindgen_malloc, m.__wbindgen_realloc), + s = Q, + r = m.get_pawtected_endpoint_payload(n, s); + return (e = r[0]), (t = r[1]), O(r[0], r[1]); + } finally { + m.__wbindgen_free(e, t, 1); + } +} +async function Be(a, e) { + if (typeof Response == "function" && a instanceof Response) { + if (typeof WebAssembly.instantiateStreaming == "function") + try { + return await WebAssembly.instantiateStreaming(a, e); + } catch (n) { + if (a.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", + n + ); + else throw n; + } + const t = await a.arrayBuffer(); + return await WebAssembly.instantiate(t, e); + } else { + const t = await WebAssembly.instantiate(a, e); + return t instanceof WebAssembly.Instance ? { instance: t, module: a } : t; + } +} +function Ue() { + const a = {}; + return ( + (a.wbg = {}), + (a.wbg.__wbg_buffer_609cc3eee51ed158 = function (e) { + return e.buffer; + }), + (a.wbg.__wbg_call_672a4d21634d4a24 = function () { + return A(function (e, t) { + return e.call(t); + }, arguments); + }), + (a.wbg.__wbg_call_7cccdd69e0791ae2 = function () { + return A(function (e, t, n) { + return e.call(t, n); + }, arguments); + }), + (a.wbg.__wbg_crypto_574e78ad8b13b65f = function (e) { + return e.crypto; + }), + (a.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e = function () { + return A(function (e, t) { + e.getRandomValues(t); + }, arguments); + }), + (a.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function (e) { + return e.msCrypto; + }), + (a.wbg.__wbg_new_a12002a7f91c75be = function (e) { + return new Uint8Array(e); + }), + (a.wbg.__wbg_newnoargs_105ed471475aaf50 = function (e, t) { + return new Function(O(e, t)); + }), + (a.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function ( + e, + t, + n + ) { + return new Uint8Array(e, t >>> 0, n >>> 0); + }), + (a.wbg.__wbg_newwithlength_a381634e90c276d4 = function (e) { + return new Uint8Array(e >>> 0); + }), + (a.wbg.__wbg_node_905d3e251edff8a2 = function (e) { + return e.node; + }), + (a.wbg.__wbg_process_dc0fbacc7c1c06f7 = function (e) { + return e.process; + }), + (a.wbg.__wbg_randomFillSync_ac0988aba3254290 = function () { + return A(function (e, t) { + e.randomFillSync(t); + }, arguments); + }), + (a.wbg.__wbg_require_60cc747a6bc5215a = function () { + return A(function () { + return module.require; + }, arguments); + }), + (a.wbg.__wbg_set_65595bdd868b3009 = function (e, t, n) { + e.set(t, n >>> 0); + }), + (a.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function () { + const e = typeof global > "u" ? null : global; + return H(e) ? 0 : x(e); + }), + (a.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function () { + const e = typeof globalThis > "u" ? null : globalThis; + return H(e) ? 0 : x(e); + }), + (a.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function () { + const e = typeof self > "u" ? null : self; + return H(e) ? 0 : x(e); + }), + (a.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function () { + const e = typeof window > "u" ? null : window; + return H(e) ? 0 : x(e); + }), + (a.wbg.__wbg_subarray_aa9065fa9dc5df96 = function (e, t, n) { + return e.subarray(t >>> 0, n >>> 0); + }), + (a.wbg.__wbg_versions_c01dfd4722a88165 = function (e) { + return e.versions; + }), + (a.wbg.__wbindgen_init_externref_table = function () { + const e = m.__wbindgen_export_2, + t = e.grow(4); + e.set(0, void 0), + e.set(t + 0, void 0), + e.set(t + 1, null), + e.set(t + 2, !0), + e.set(t + 3, !1); + }), + (a.wbg.__wbindgen_is_function = function (e) { + return typeof e == "function"; + }), + (a.wbg.__wbindgen_is_object = function (e) { + const t = e; + return typeof t == "object" && t !== null; + }), + (a.wbg.__wbindgen_is_string = function (e) { + return typeof e == "string"; + }), + (a.wbg.__wbindgen_is_undefined = function (e) { + return e === void 0; + }), + (a.wbg.__wbindgen_memory = function () { + return m.memory; + }), + (a.wbg.__wbindgen_string_new = function (e, t) { + return O(e, t); + }), + (a.wbg.__wbindgen_throw = function (e, t) { + throw new Error(O(e, t)); + }), + a + ); +} +function Ge(a, e) { + return ( + (m = a.exports), + (Re.__wbindgen_wasm_module = e), + (I = null), + m.__wbindgen_start(), + m + ); +} +async function Re(a) { + if (m !== void 0) return m; + typeof a < "u" && + (Object.getPrototypeOf(a) === Object.prototype + ? ({ module_or_path: a } = a) + : console.warn( + "using deprecated parameters for the initialization function; pass a single object instead" + )), + typeof a > "u" && (a = new URL("pawtect_wasm_bg.wasm", import.meta.url)); + const e = Ue(); + (typeof a == "string" || + (typeof Request == "function" && a instanceof Request) || + (typeof URL == "function" && a instanceof URL)) && + (a = fetch(a)); + const { instance: t, module: n } = await Be(await a, e); + return Ge(t, n); +} +const $e = () => "Unexpected server error. Try again later.", + je = () => "Erro inesperado do servidor. Tente novamente mais tarde.", + i = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? $e() : je()), + Fe = () => "You need to be logged in to paint", + Je = () => "Você precisa estar conectado para pintar", + Ke = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Fe() : Je()), + ze = (a) => `Error while painting: ${a.err}`, + Ve = (a) => `Erro enquanto pinta: ${a.err}`, + He = (a, e = {}) => ((e.locale ?? g()) === "en" ? ze(a) : Ve(a)), + We = () => "Invalid phone number", + Ye = () => "Número de telefone inválido", + Ze = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? We() : Ye()), + Qe = () => "Phone already used", + Xe = () => "Telefone já usado", + et = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Qe() : Xe()), + tt = () => "You have to wait to resend a code", + nt = () => "Você tem de esperar para reenviar um código", + at = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? tt() : nt()), + rt = () => "Invalid code", + st = () => "Código inválido", + ot = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? rt() : st()), + it = () => + "Operation not allowed. Maybe you have too many favorite locations.", + ct = () => + "Operação não permitida. Talvez você tenha muitos locais favoritos.", + lt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? it() : ct()), + dt = () => "Location name is too big (max. 128 characters)", + ut = () => "Nome da localização é grande demais (max. 128 caracteres)", + gt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? dt() : ut()), + ft = () => "Couldn't complete the purchase. This item does not exist.", + mt = () => "Não foi possível concluir a compra. Este item não existe.", + ht = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? ft() : mt()), + _t = () => "You do not have enough droplets to buy this item.", + pt = () => "Você não tem gotas suficientes para comprar este item.", + wt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? _t() : pt()), + bt = () => "You already have this item. Please refresh the page.", + yt = () => "Você já possui este item. Atualize a página.", + St = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? bt() : yt()), + Tt = () => "Alliance name exceeded the maximum number of characters", + Et = () => "O nome da aliança excedeu o número máximo de caracteres", + vt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Tt() : Et()), + At = () => "Alliance name already taken", + Pt = () => "Já possui uma aliança com esse nome", + xt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? At() : Pt()), + It = () => "Alliance with empty name", + Ot = () => "Aliança com nome vazio", + Lt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? It() : Ot()), + kt = () => "You are already in an alliance", + Ct = () => "Você já está em uma aliança", + qt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? kt() : Ct()), + Mt = () => "You are not allowed to do this", + Nt = () => "Você não tem permissão para fazer isso", + E = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Mt() : Nt()), + Dt = () => + "Can't reach the server. Maybe you are without internet connection or the server is down. Try again later", + Bt = () => + "Não é possível acessar o servidor. Talvez você esteja sem conexão com a internet ou o servidor esteja fora do ar. Tente novamente mais tarde.", + Ut = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Dt() : Bt()), + Gt = () => + "You or someone in your network is making a lot of requests to the server. Try again later.", + Rt = () => + "Você ou alguém na sua rede está fazendo muitas solicitações ao servidor. Tente novamente mais tarde.", + ce = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Gt() : Rt()), + $t = () => "No internet access or the servers are offline. Try again later.", + jt = () => + "Sem acesso à internet ou os servidores estão fora do ar. Tente novamente mais tarde.", + Ft = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? $t() : jt()), + Jt = () => + "We’re currently experiencing high traffic. Some requests may not be processed at this time—please try again later. Thank you for your patience.", + Kt = () => + "Estamos enfrentando um volume alto de acessos no momento. Algumas solicitações podem não ser processadas agora — por favor, tente novamente mais tarde. Agradecemos a sua compreensão.", + zt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Jt() : Kt()), + Vt = () => "Refresh your page to get the latest update", + Ht = () => "Recarregue sua página para obter as últimas atualizações", + Wt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Vt() : Ht()), + Yt = () => "Inappropriate content", + Zt = () => "Conteúdo inapropriado", + Qt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Yt() : Zt()), + Xt = () => "Botting", + en = () => "Uso de bots", + tn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Xt() : en()), + nn = () => "Hate speech", + an = () => "Discurso de Ódio", + rn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? nn() : an()), + sn = () => "Griefing", + on = () => "Griefing", + cn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? sn() : on()), + ln = () => "Doxxing", + dn = () => "Doxxing", + un = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? ln() : dn()), + gn = () => "Leaderboard is temporarily disabled", + fn = () => "O ranking está temporariamente desativado", + v = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? gn() : fn()), + mn = () => "Multi-accounting", + hn = () => "Múltiplas contas", + _n = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? mn() : hn()), + pn = () => "Breaking the rules", + wn = () => "Quebrar as regras", + bn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? pn() : wn()), + yn = () => "Your account has been suspended for breaking the rules", + Sn = () => "Sua conta foi suspensa por quebrar as regras", + Tn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? yn() : Sn()), + En = () => "Your account has been banned for violating the rules", + vn = () => "A sua conta foi banida por quebrar as regras", + An = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? En() : vn()), + Pn = (a) => `Your account has been suspended out until ${a.until}`, + xn = (a) => `A sua conta está suspensa até ${a.until}`, + In = (a, e = {}) => ((e.locale ?? g()) === "en" ? Pn(a) : xn(a)), + On = () => "You are trying to paint with a color you do not own", + Ln = () => "Você está tentando pintar com uma cor que não possui", + kn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? On() : Ln()), + Cn = () => "The new leader must be a member of the alliance", + qn = () => "O novo líder deve ser um membro da aliança", + Mn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Cn() : qn()), + Nn = () => + "The name contains disallowed characters or words. Please choose a different name.", + Dn = () => + "O nome contém caracteres ou palavras não permitidas. Por favor, escolha outro nome.", + Bn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Nn() : Dn()), + Un = () => "Invalid discord.", + Gn = () => "Discord inválido.", + Rn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Un() : Gn()), + $n = () => "The typed username does not match your current username.", + jn = () => + "O nome de usuário digitado não corresponde ao seu nome de usuário atual.", + Fn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? $n() : jn()), + wa = { + griefing: cn(), + "multi-accounting": _n(), + "hate-speech": rn(), + bot: tn(), + doxxing: un(), + "inappropriate-content": Qt(), + other: bn(), + }, + ba = { + doxxing: "text-red-600", + "hate-speech": "text-red-600", + "inappropriate-content": "text-amber-600", + "multi-accounting": "text-amber-600", + bot: "text-amber-600", + griefing: "text-amber-600", + other: "text-blue-600", + }, + le = { + doxxing: 0, + "hate-speech": 1, + "inappropriate-content": 2, + bot: 3, + "multi-accounting": 4, + other: 5, + griefing: 6, + }; +function Jn(a) { + const e = atob(a), + t = new Uint8Array(e.length); + for (let n = 0; n < e.length; n++) t[n] = e.charCodeAt(n); + return t; +} +class Kn { + constructor(e) { + _(this, "bytes"); + this.bytes = e ?? new Uint8Array(); + } + set(e, t) { + const n = Math.floor(e / 8), + s = e % 8; + if (n >= this.bytes.length) { + const l = new Uint8Array(n + 1), + o = l.length - this.bytes.length; + for (let d = 0; d < this.bytes.length; d++) l[d + o] = this.bytes[d]; + this.bytes = l; + } + const r = this.bytes.length - 1 - n; + t + ? (this.bytes[r] = this.bytes[r] | (1 << s)) + : (this.bytes[r] = this.bytes[r] & ~(1 << s)); + } + get(e) { + const t = Math.floor(e / 8), + n = e % 8, + s = this.bytes.length; + return t > s ? !1 : (this.bytes[s - 1 - t] & (1 << n)) !== 0; + } +} +var R, $, j, F, J, K, z; +class zn { + constructor() { + _(this, "channel", new BroadcastChannel("user-channel")); + h(this, R, y()); + h(this, $, y(!0)); + h(this, j, y(Date.now())); + h( + this, + F, + P(() => { + if (!this.data) return; + const e = this.data.charges; + if (e.count > e.max) return e.count; + const t = + e.count + Math.max((ke.now - this.lastFetch) / e.cooldownMs, 0); + return Math.min(e.max, t); + }) + ); + h( + this, + J, + P(() => + this.charges !== void 0 && this.data + ? (1 - (this.charges % 1)) * this.data.charges.cooldownMs + : void 0 + ) + ); + h( + this, + K, + P(() => { + var e; + return new Kn( + Jn(((e = this.data) == null ? void 0 : e.flagsBitmap) ?? "AA==") + ); + }) + ); + h( + this, + z, + P(() => { + var t; + if (!((t = this.data) != null && t.timeoutUntil)) return; + const e = new Date(this.data.timeoutUntil); + if (!(e.getTime() < Date.now())) return e; + }) + ); + this.channel.onmessage = (e) => { + const t = JSON.parse(e.data); + t.type === "refresh" + ? ((this.data = t.data), (this.lastFetch = Date.now())) + : t.type === "logout" && (this.data = void 0); + }; + } + get data() { + return p(u(this, R)); + } + set data(e) { + w(u(this, R), e, !0); + } + get loading() { + return p(u(this, $)); + } + set loading(e) { + w(u(this, $), e, !0); + } + get lastFetch() { + return p(u(this, j)); + } + set lastFetch(e) { + w(u(this, j), e); + } + get charges() { + return p(u(this, F)); + } + set charges(e) { + w(u(this, F), e); + } + get cooldown() { + return p(u(this, J)); + } + set cooldown(e) { + w(u(this, J), e); + } + get flagsBitmap() { + return p(u(this, K)); + } + set flagsBitmap(e) { + w(u(this, K), e); + } + get timeoutUntil() { + return p(u(this, z)); + } + set timeoutUntil(e) { + w(u(this, z), e); + } + async refresh() { + try { + return ( + (this.loading = !0), + (this.data = await de.me()), + (this.lastFetch = Date.now()), + this.channel.postMessage( + JSON.stringify({ type: "refresh", data: this.data }) + ), + Te("userId", { id: this.data.id }), + !0 + ); + } catch (e) { + return console.error(e), ge.warning(Ft(), { duration: 1e4 }), !1; + } finally { + this.loading = !1; + } + } + async logout() { + await de.logout(), + this.channel.postMessage(JSON.stringify({ type: "logout" })), + (this.data = void 0); + } + hasColor(e) { + var n; + return e < 32 + ? !0 + : ((((n = this.data) == null ? void 0 : n.extraColorsBitmap) ?? 0) & + (1 << (e - 32))) !== + 0; + } +} +(R = new WeakMap()), + ($ = new WeakMap()), + (j = new WeakMap()), + (F = new WeakMap()), + (J = new WeakMap()), + (K = new WeakMap()), + (z = new WeakMap()); +const X = new zn(); +class f extends Error { + constructor(e, t) { + super(e), (this.message = e), (this.status = t); + } +} +function Vn(a, e) { + const t = {}; + for (const n of a) { + const s = e(n); + let r = t[s]; + r ? r.push(n) : (t[s] = [n]); + } + return t; +} +function ya(a, e) { + const t = {}; + for (const n of a) { + const s = e(n); + t[s] = n; + } + return t; +} +const Hn = [{ tileSize: 1e3, zoom: 11 }], + Wn = 4, + Yn = 6e3, + Zn = [ + { name: "Transparent", rgb: [0, 0, 0] }, + { name: "Black", rgb: [0, 0, 0] }, + { name: "Dark Gray", rgb: [60, 60, 60] }, + { name: "Gray", rgb: [120, 120, 120] }, + { name: "Light Gray", rgb: [210, 210, 210] }, + { name: "White", rgb: [255, 255, 255] }, + { name: "Deep Red", rgb: [96, 0, 24] }, + { name: "Red", rgb: [237, 28, 36] }, + { name: "Orange", rgb: [255, 127, 39] }, + { name: "Gold", rgb: [246, 170, 9] }, + { name: "Yellow", rgb: [249, 221, 59] }, + { name: "Light Yellow", rgb: [255, 250, 188] }, + { name: "Dark Green", rgb: [14, 185, 104] }, + { name: "Green", rgb: [19, 230, 123] }, + { name: "Light Green", rgb: [135, 255, 94] }, + { name: "Dark Teal", rgb: [12, 129, 110] }, + { name: "Teal", rgb: [16, 174, 166] }, + { name: "Light Teal", rgb: [19, 225, 190] }, + { name: "Dark Blue", rgb: [40, 80, 158] }, + { name: "Blue", rgb: [64, 147, 228] }, + { name: "Cyan", rgb: [96, 247, 242] }, + { name: "Indigo", rgb: [107, 80, 246] }, + { name: "Light Indigo", rgb: [153, 177, 251] }, + { name: "Dark Purple", rgb: [120, 12, 153] }, + { name: "Purple", rgb: [170, 56, 185] }, + { name: "Light Purple", rgb: [224, 159, 249] }, + { name: "Dark Pink", rgb: [203, 0, 122] }, + { name: "Pink", rgb: [236, 31, 128] }, + { name: "Light Pink", rgb: [243, 141, 169] }, + { name: "Dark Brown", rgb: [104, 70, 52] }, + { name: "Brown", rgb: [149, 104, 42] }, + { name: "Beige", rgb: [248, 178, 119] }, + { name: "Medium Gray", rgb: [170, 170, 170] }, + { name: "Dark Red", rgb: [165, 14, 30] }, + { name: "Light Red", rgb: [250, 128, 114] }, + { name: "Dark Orange", rgb: [228, 92, 26] }, + { name: "Light Tan", rgb: [214, 181, 148] }, + { name: "Dark Goldenrod", rgb: [156, 132, 49] }, + { name: "Goldenrod", rgb: [197, 173, 49] }, + { name: "Light Goldenrod", rgb: [232, 212, 95] }, + { name: "Dark Olive", rgb: [74, 107, 58] }, + { name: "Olive", rgb: [90, 148, 74] }, + { name: "Light Olive", rgb: [132, 197, 115] }, + { name: "Dark Cyan", rgb: [15, 121, 159] }, + { name: "Light Cyan", rgb: [187, 250, 242] }, + { name: "Light Blue", rgb: [125, 199, 255] }, + { name: "Dark Indigo", rgb: [77, 49, 184] }, + { name: "Dark Slate Blue", rgb: [74, 66, 132] }, + { name: "Slate Blue", rgb: [122, 113, 196] }, + { name: "Light Slate Blue", rgb: [181, 174, 241] }, + { name: "Light Brown", rgb: [219, 164, 99] }, + { name: "Dark Beige", rgb: [209, 128, 81] }, + { name: "Light Beige", rgb: [255, 197, 165] }, + { name: "Dark Peach", rgb: [155, 82, 73] }, + { name: "Peach", rgb: [209, 128, 120] }, + { name: "Light Peach", rgb: [250, 182, 164] }, + { name: "Dark Tan", rgb: [123, 99, 82] }, + { name: "Tan", rgb: [156, 132, 107] }, + { name: "Dark Slate", rgb: [51, 57, 65] }, + { name: "Slate", rgb: [109, 117, 141] }, + { name: "Light Slate", rgb: [179, 185, 209] }, + { name: "Dark Stone", rgb: [109, 100, 63] }, + { name: "Stone", rgb: [148, 140, 107] }, + { name: "Light Stone", rgb: [205, 197, 158] }, + ], + Qn = { needsPhoneVerification: "needs_phone_verification" }, + Xn = { + Droplet: {}, + "Max. Charge": {}, + "Paint Charge": {}, + Color: {}, + Flag: {}, + "Profile Picture": {}, + }, + ea = { + 10: { + name: "25,000 Droplets", + price: 500, + isDollar: !0, + lookupKey: "droplets_5", + items: [{ name: "Droplet", amount: 25e3 }], + }, + 20: { + name: "78,750 Droplets", + price: 1500, + isDollar: !0, + lookupKey: "droplets_15", + items: [{ name: "Droplet", amount: 76750 }], + }, + 30: { + name: "165,000 Droplets", + price: 3e3, + isDollar: !0, + lookupKey: "droplets_30", + items: [{ name: "Droplet", amount: 165e3 }], + }, + 40: { + name: "287,500 Droplets", + price: 5e3, + isDollar: !0, + lookupKey: "droplets_50", + items: [{ name: "Droplet", amount: 287500 }], + }, + 50: { + name: "450,000 Droplets", + price: 7500, + isDollar: !0, + lookupKey: "droplets_75", + items: [{ name: "Droplet", amount: 45e4 }], + }, + 60: { + name: "625,000 Droplets", + price: 1e4, + isDollar: !0, + lookupKey: "droplets_100", + items: [{ name: "Droplet", amount: 625e3 }], + }, + 70: { + name: "+5 Max. Charges", + price: 500, + isDollar: !1, + items: [{ name: "Max. Charge", amount: 5 }], + }, + 80: { + name: "+30 Paint Charges", + price: 500, + isDollar: !1, + items: [{ name: "Paint Charge", amount: 30 }], + }, + 100: { + name: "Unlock Color", + price: 2e3, + isDollar: !1, + items: [{ name: "Color", amount: 1 }], + }, + 110: { + name: "Flag", + price: 2e4, + isDollar: !1, + items: [{ name: "Flag", amount: 1 }], + }, + 120: { + name: "Profile Picture", + price: 2e4, + isDollar: !1, + items: [{ name: "Profile Picture", amount: 1 }], + }, + }, + ta = JSON.parse( + `[{"id":1,"name":"Afghanistan","code":"AF","flag":"🇦🇫"},{"id":2,"name":"Albania","code":"AL","flag":"🇦🇱"},{"id":3,"name":"Algeria","code":"DZ","flag":"🇩🇿"},{"id":4,"name":"American Samoa","code":"AS","flag":"🇦🇸"},{"id":5,"name":"Andorra","code":"AD","flag":"🇦🇩"},{"id":6,"name":"Angola","code":"AO","flag":"🇦🇴"},{"id":7,"name":"Anguilla","code":"AI","flag":"🇦🇮"},{"id":8,"name":"Antarctica","code":"AQ","flag":"🇦🇶"},{"id":9,"name":"Antigua and Barbuda","code":"AG","flag":"🇦🇬"},{"id":10,"name":"Argentina","code":"AR","flag":"🇦🇷"},{"id":11,"name":"Armenia","code":"AM","flag":"🇦🇲"},{"id":12,"name":"Aruba","code":"AW","flag":"🇦🇼"},{"id":13,"name":"Australia","code":"AU","flag":"🇦🇺"},{"id":14,"name":"Austria","code":"AT","flag":"🇦🇹"},{"id":15,"name":"Azerbaijan","code":"AZ","flag":"🇦🇿"},{"id":16,"name":"Bahamas","code":"BS","flag":"🇧🇸"},{"id":17,"name":"Bahrain","code":"BH","flag":"🇧🇭"},{"id":18,"name":"Bangladesh","code":"BD","flag":"🇧🇩"},{"id":19,"name":"Barbados","code":"BB","flag":"🇧🇧"},{"id":20,"name":"Belarus","code":"BY","flag":"🇧🇾"},{"id":21,"name":"Belgium","code":"BE","flag":"🇧🇪"},{"id":22,"name":"Belize","code":"BZ","flag":"🇧🇿"},{"id":23,"name":"Benin","code":"BJ","flag":"🇧🇯"},{"id":24,"name":"Bermuda","code":"BM","flag":"🇧🇲"},{"id":25,"name":"Bhutan","code":"BT","flag":"🇧🇹"},{"id":26,"name":"Bolivia","code":"BO","flag":"🇧🇴"},{"id":27,"name":"Bonaire","code":"BQ","flag":"🇧🇶"},{"id":28,"name":"Bosnia and Herzegovina","code":"BA","flag":"🇧🇦"},{"id":29,"name":"Botswana","code":"BW","flag":"🇧🇼"},{"id":30,"name":"Bouvet Island","code":"BV","flag":"🇧🇻"},{"id":31,"name":"Brazil","code":"BR","flag":"🇧🇷"},{"id":32,"name":"British Indian Ocean Territory","code":"IO","flag":"🇮🇴"},{"id":33,"name":"Brunei Darussalam","code":"BN","flag":"🇧🇳"},{"id":34,"name":"Bulgaria","code":"BG","flag":"🇧🇬"},{"id":35,"name":"Burkina Faso","code":"BF","flag":"🇧🇫"},{"id":36,"name":"Burundi","code":"BI","flag":"🇧🇮"},{"id":37,"name":"Cabo Verde","code":"CV","flag":"🇨🇻"},{"id":38,"name":"Cambodia","code":"KH","flag":"🇰🇭"},{"id":39,"name":"Cameroon","code":"CM","flag":"🇨🇲"},{"id":40,"name":"Canada","code":"CA","flag":"🇨🇦"},{"id":41,"name":"Cayman Islands","code":"KY","flag":"🇰🇾"},{"id":42,"name":"Central African Republic","code":"CF","flag":"🇨🇫"},{"id":43,"name":"Chad","code":"TD","flag":"🇹🇩"},{"id":44,"name":"Chile","code":"CL","flag":"🇨🇱"},{"id":45,"name":"China","code":"CN","flag":"🇨🇳"},{"id":46,"name":"Christmas Island","code":"CX","flag":"🇨🇽"},{"id":47,"name":"Cocos (Keeling) Islands","code":"CC","flag":"🇨🇨"},{"id":48,"name":"Colombia","code":"CO","flag":"🇨🇴"},{"id":49,"name":"Comoros","code":"KM","flag":"🇰🇲"},{"id":50,"name":"Congo","code":"CG","flag":"🇨🇬"},{"id":51,"name":"Cook Islands","code":"CK","flag":"🇨🇰"},{"id":52,"name":"Costa Rica","code":"CR","flag":"🇨🇷"},{"id":53,"name":"Croatia","code":"HR","flag":"🇭🇷"},{"id":54,"name":"Cuba","code":"CU","flag":"🇨🇺"},{"id":55,"name":"Curaçao","code":"CW","flag":"🇨🇼"},{"id":56,"name":"Cyprus","code":"CY","flag":"🇨🇾"},{"id":57,"name":"Czechia","code":"CZ","flag":"🇨🇿"},{"id":58,"name":"Côte d'Ivoire","code":"CI","flag":"🇨🇮"},{"id":59,"name":"Denmark","code":"DK","flag":"🇩🇰"},{"id":60,"name":"Djibouti","code":"DJ","flag":"🇩🇯"},{"id":61,"name":"Dominica","code":"DM","flag":"🇩🇲"},{"id":62,"name":"Dominican Republic","code":"DO","flag":"🇩🇴"},{"id":63,"name":"Ecuador","code":"EC","flag":"🇪🇨"},{"id":64,"name":"Egypt","code":"EG","flag":"🇪🇬"},{"id":65,"name":"El Salvador","code":"SV","flag":"🇸🇻"},{"id":66,"name":"Equatorial Guinea","code":"GQ","flag":"🇬🇶"},{"id":67,"name":"Eritrea","code":"ER","flag":"🇪🇷"},{"id":68,"name":"Estonia","code":"EE","flag":"🇪🇪"},{"id":69,"name":"Eswatini","code":"SZ","flag":"🇸🇿"},{"id":70,"name":"Ethiopia","code":"ET","flag":"🇪🇹"},{"id":71,"name":"Falkland Islands (Malvinas)","code":"FK","flag":"🇫🇰"},{"id":72,"name":"Faroe Islands","code":"FO","flag":"🇫🇴"},{"id":73,"name":"Fiji","code":"FJ","flag":"🇫🇯"},{"id":74,"name":"Finland","code":"FI","flag":"🇫🇮"},{"id":75,"name":"France","code":"FR","flag":"🇫🇷"},{"id":76,"name":"French Guiana","code":"GF","flag":"🇬🇫"},{"id":77,"name":"French Polynesia","code":"PF","flag":"🇵🇫"},{"id":78,"name":"French Southern Territories","code":"TF","flag":"🇹🇫"},{"id":79,"name":"Gabon","code":"GA","flag":"🇬🇦"},{"id":80,"name":"Gambia","code":"GM","flag":"🇬🇲"},{"id":81,"name":"Georgia","code":"GE","flag":"🇬🇪"},{"id":82,"name":"Germany","code":"DE","flag":"🇩🇪"},{"id":83,"name":"Ghana","code":"GH","flag":"🇬🇭"},{"id":84,"name":"Gibraltar","code":"GI","flag":"🇬🇮"},{"id":85,"name":"Greece","code":"GR","flag":"🇬🇷"},{"id":86,"name":"Greenland","code":"GL","flag":"🇬🇱"},{"id":87,"name":"Grenada","code":"GD","flag":"🇬🇩"},{"id":88,"name":"Guadeloupe","code":"GP","flag":"🇬🇵"},{"id":89,"name":"Guam","code":"GU","flag":"🇬🇺"},{"id":90,"name":"Guatemala","code":"GT","flag":"🇬🇹"},{"id":91,"name":"Guernsey","code":"GG","flag":"🇬🇬"},{"id":92,"name":"Guinea","code":"GN","flag":"🇬🇳"},{"id":93,"name":"Guinea-Bissau","code":"GW","flag":"🇬🇼"},{"id":94,"name":"Guyana","code":"GY","flag":"🇬🇾"},{"id":95,"name":"Haiti","code":"HT","flag":"🇭🇹"},{"id":96,"name":"Heard Island and McDonald Islands","code":"HM","flag":"🇭🇲"},{"id":97,"name":"Honduras","code":"HN","flag":"🇭🇳"},{"id":98,"name":"Hong Kong","code":"HK","flag":"🇭🇰"},{"id":99,"name":"Hungary","code":"HU","flag":"🇭🇺"},{"id":100,"name":"Iceland","code":"IS","flag":"🇮🇸"},{"id":101,"name":"India","code":"IN","flag":"🇮🇳"},{"id":102,"name":"Indonesia","code":"ID","flag":"🇮🇩"},{"id":103,"name":"Iran","code":"IR","flag":"🇮🇷"},{"id":104,"name":"Iraq","code":"IQ","flag":"🇮🇶"},{"id":105,"name":"Ireland","code":"IE","flag":"🇮🇪"},{"id":106,"name":"Isle of Man","code":"IM","flag":"🇮🇲"},{"id":107,"name":"Israel","code":"IL","flag":"🇮🇱"},{"id":108,"name":"Italy","code":"IT","flag":"🇮🇹"},{"id":109,"name":"Jamaica","code":"JM","flag":"🇯🇲"},{"id":110,"name":"Japan","code":"JP","flag":"🇯🇵"},{"id":111,"name":"Jersey","code":"JE","flag":"🇯🇪"},{"id":112,"name":"Jordan","code":"JO","flag":"🇯🇴"},{"id":113,"name":"Kazakhstan","code":"KZ","flag":"🇰🇿"},{"id":114,"name":"Kenya","code":"KE","flag":"🇰🇪"},{"id":115,"name":"Kiribati","code":"KI","flag":"🇰🇮"},{"id":116,"name":"Kosovo","code":"XK","flag":"🇽🇰"},{"id":117,"name":"Kuwait","code":"KW","flag":"🇰🇼"},{"id":118,"name":"Kyrgyzstan","code":"KG","flag":"🇰🇬"},{"id":119,"name":"Laos","code":"LA","flag":"🇱🇦"},{"id":120,"name":"Latvia","code":"LV","flag":"🇱🇻"},{"id":121,"name":"Lebanon","code":"LB","flag":"🇱🇧"},{"id":122,"name":"Lesotho","code":"LS","flag":"🇱🇸"},{"id":123,"name":"Liberia","code":"LR","flag":"🇱🇷"},{"id":124,"name":"Libya","code":"LY","flag":"🇱🇾"},{"id":125,"name":"Liechtenstein","code":"LI","flag":"🇱🇮"},{"id":126,"name":"Lithuania","code":"LT","flag":"🇱🇹"},{"id":127,"name":"Luxembourg","code":"LU","flag":"🇱🇺"},{"id":128,"name":"Macao","code":"MO","flag":"🇲🇴"},{"id":129,"name":"Madagascar","code":"MG","flag":"🇲🇬"},{"id":130,"name":"Malawi","code":"MW","flag":"🇲🇼"},{"id":131,"name":"Malaysia","code":"MY","flag":"🇲🇾"},{"id":132,"name":"Maldives","code":"MV","flag":"🇲🇻"},{"id":133,"name":"Mali","code":"ML","flag":"🇲🇱"},{"id":134,"name":"Malta","code":"MT","flag":"🇲🇹"},{"id":135,"name":"Marshall Islands","code":"MH","flag":"🇲🇭"},{"id":136,"name":"Martinique","code":"MQ","flag":"🇲🇶"},{"id":137,"name":"Mauritania","code":"MR","flag":"🇲🇷"},{"id":138,"name":"Mauritius","code":"MU","flag":"🇲🇺"},{"id":139,"name":"Mayotte","code":"YT","flag":"🇾🇹"},{"id":140,"name":"Mexico","code":"MX","flag":"🇲🇽"},{"id":141,"name":"Micronesia","code":"FM","flag":"🇫🇲"},{"id":142,"name":"Moldova","code":"MD","flag":"🇲🇩"},{"id":143,"name":"Monaco","code":"MC","flag":"🇲🇨"},{"id":144,"name":"Mongolia","code":"MN","flag":"🇲🇳"},{"id":145,"name":"Montenegro","code":"ME","flag":"🇲🇪"},{"id":146,"name":"Montserrat","code":"MS","flag":"🇲🇸"},{"id":147,"name":"Morocco","code":"MA","flag":"🇲🇦"},{"id":148,"name":"Mozambique","code":"MZ","flag":"🇲🇿"},{"id":149,"name":"Myanmar","code":"MM","flag":"🇲🇲"},{"id":150,"name":"Namibia","code":"NA","flag":"🇳🇦"},{"id":151,"name":"Nauru","code":"NR","flag":"🇳🇷"},{"id":152,"name":"Nepal","code":"NP","flag":"🇳🇵"},{"id":153,"name":"Netherlands","code":"NL","flag":"🇳🇱"},{"id":154,"name":"New Caledonia","code":"NC","flag":"🇳🇨"},{"id":155,"name":"New Zealand","code":"NZ","flag":"🇳🇿"},{"id":156,"name":"Nicaragua","code":"NI","flag":"🇳🇮"},{"id":157,"name":"Niger","code":"NE","flag":"🇳🇪"},{"id":158,"name":"Nigeria","code":"NG","flag":"🇳🇬"},{"id":159,"name":"Niue","code":"NU","flag":"🇳🇺"},{"id":160,"name":"Norfolk Island","code":"NF","flag":"🇳🇫"},{"id":161,"name":"North Korea","code":"KP","flag":"🇰🇵"},{"id":162,"name":"North Macedonia","code":"MK","flag":"🇲🇰"},{"id":163,"name":"Northern Mariana Islands","code":"MP","flag":"🇲🇵"},{"id":164,"name":"Norway","code":"NO","flag":"🇳🇴"},{"id":165,"name":"Oman","code":"OM","flag":"🇴🇲"},{"id":166,"name":"Pakistan","code":"PK","flag":"🇵🇰"},{"id":167,"name":"Palau","code":"PW","flag":"🇵🇼"},{"id":168,"name":"Palestine","code":"PS","flag":"🇵🇸"},{"id":169,"name":"Panama","code":"PA","flag":"🇵🇦"},{"id":170,"name":"Papua New Guinea","code":"PG","flag":"🇵🇬"},{"id":171,"name":"Paraguay","code":"PY","flag":"🇵🇾"},{"id":172,"name":"Peru","code":"PE","flag":"🇵🇪"},{"id":173,"name":"Philippines","code":"PH","flag":"🇵🇭"},{"id":174,"name":"Pitcairn","code":"PN","flag":"🇵🇳"},{"id":175,"name":"Poland","code":"PL","flag":"🇵🇱"},{"id":176,"name":"Portugal","code":"PT","flag":"🇵🇹"},{"id":177,"name":"Puerto Rico","code":"PR","flag":"🇵🇷"},{"id":178,"name":"Qatar","code":"QA","flag":"🇶🇦"},{"id":179,"name":"Republic of the Congo","code":"CD","flag":"🇨🇩"},{"id":180,"name":"Romania","code":"RO","flag":"🇷🇴"},{"id":181,"name":"Russia","code":"RU","flag":"🇷🇺"},{"id":182,"name":"Rwanda","code":"RW","flag":"🇷🇼"},{"id":183,"name":"Réunion","code":"RE","flag":"🇷🇪"},{"id":184,"name":"Saint Barthélemy","code":"BL","flag":"🇧🇱"},{"id":185,"name":"Saint Helena","code":"SH","flag":"🇸🇭"},{"id":186,"name":"Saint Kitts and Nevis","code":"KN","flag":"🇰🇳"},{"id":187,"name":"Saint Lucia","code":"LC","flag":"🇱🇨"},{"id":188,"name":"Saint Martin (French part)","code":"MF","flag":"🇲🇫"},{"id":189,"name":"Saint Pierre and Miquelon","code":"PM","flag":"🇵🇲"},{"id":190,"name":"Saint Vincent and the Grenadines","code":"VC","flag":"🇻🇨"},{"id":191,"name":"Samoa","code":"WS","flag":"🇼🇸"},{"id":192,"name":"San Marino","code":"SM","flag":"🇸🇲"},{"id":193,"name":"Sao Tome and Principe","code":"ST","flag":"🇸🇹"},{"id":194,"name":"Saudi Arabia","code":"SA","flag":"🇸🇦"},{"id":195,"name":"Senegal","code":"SN","flag":"🇸🇳"},{"id":196,"name":"Serbia","code":"RS","flag":"🇷🇸"},{"id":197,"name":"Seychelles","code":"SC","flag":"🇸🇨"},{"id":198,"name":"Sierra Leone","code":"SL","flag":"🇸🇱"},{"id":199,"name":"Singapore","code":"SG","flag":"🇸🇬"},{"id":200,"name":"Sint Maarten (Dutch part)","code":"SX","flag":"🇸🇽"},{"id":201,"name":"Slovakia","code":"SK","flag":"🇸🇰"},{"id":202,"name":"Slovenia","code":"SI","flag":"🇸🇮"},{"id":203,"name":"Solomon Islands","code":"SB","flag":"🇸🇧"},{"id":204,"name":"Somalia","code":"SO","flag":"🇸🇴"},{"id":205,"name":"South Africa","code":"ZA","flag":"🇿🇦"},{"id":206,"name":"South Georgia and the South Sandwich Islands","code":"GS","flag":"🇬🇸"},{"id":207,"name":"South Korea","code":"KR","flag":"🇰🇷"},{"id":208,"name":"South Sudan","code":"SS","flag":"🇸🇸"},{"id":209,"name":"Spain","code":"ES","flag":"🇪🇸"},{"id":210,"name":"Sri Lanka","code":"LK","flag":"🇱🇰"},{"id":211,"name":"Sudan","code":"SD","flag":"🇸🇩"},{"id":212,"name":"Suriname","code":"SR","flag":"🇸🇷"},{"id":213,"name":"Svalbard and Jan Mayen","code":"SJ","flag":"🇸🇯"},{"id":214,"name":"Sweden","code":"SE","flag":"🇸🇪"},{"id":215,"name":"Switzerland","code":"CH","flag":"🇨🇭"},{"id":216,"name":"Syrian Arab Republic","code":"SY","flag":"🇸🇾"},{"id":217,"name":"Taiwan","code":"TW","flag":"🇹🇼"},{"id":218,"name":"Tajikistan","code":"TJ","flag":"🇹🇯"},{"id":219,"name":"Tanzania","code":"TZ","flag":"🇹🇿"},{"id":220,"name":"Thailand","code":"TH","flag":"🇹🇭"},{"id":221,"name":"Timor-Leste","code":"TL","flag":"🇹🇱"},{"id":222,"name":"Togo","code":"TG","flag":"🇹🇬"},{"id":223,"name":"Tokelau","code":"TK","flag":"🇹🇰"},{"id":224,"name":"Tonga","code":"TO","flag":"🇹🇴"},{"id":225,"name":"Trinidad and Tobago","code":"TT","flag":"🇹🇹"},{"id":226,"name":"Tunisia","code":"TN","flag":"🇹🇳"},{"id":227,"name":"Turkmenistan","code":"TM","flag":"🇹🇲"},{"id":228,"name":"Turks and Caicos Islands","code":"TC","flag":"🇹🇨"},{"id":229,"name":"Tuvalu","code":"TV","flag":"🇹🇻"},{"id":230,"name":"Türkiye","code":"TR","flag":"🇹🇷"},{"id":231,"name":"Uganda","code":"UG","flag":"🇺🇬"},{"id":232,"name":"Ukraine","code":"UA","flag":"🇺🇦"},{"id":233,"name":"United Arab Emirates","code":"AE","flag":"🇦🇪"},{"id":234,"name":"United Kingdom","code":"GB","flag":"🇬🇧"},{"id":235,"name":"United States","code":"US","flag":"🇺🇸"},{"id":236,"name":"United States Minor Outlying Islands","code":"UM","flag":"🇺🇲"},{"id":237,"name":"Uruguay","code":"UY","flag":"🇺🇾"},{"id":238,"name":"Uzbekistan","code":"UZ","flag":"🇺🇿"},{"id":239,"name":"Vanuatu","code":"VU","flag":"🇻🇺"},{"id":240,"name":"Vatican City","code":"VA","flag":"🇻🇦"},{"id":241,"name":"Venezuela","code":"VE","flag":"🇻🇪"},{"id":242,"name":"Viet Nam","code":"VN","flag":"🇻🇳"},{"id":243,"name":"Virgin Islands","code":"VG","flag":"🇻🇬"},{"id":244,"name":"Virgin Islands","code":"VI","flag":"🇻🇮"},{"id":245,"name":"Wallis and Futuna","code":"WF","flag":"🇼🇫"},{"id":246,"name":"Western Sahara","code":"EH","flag":"🇪🇭"},{"id":247,"name":"Yemen","code":"YE","flag":"🇾🇪"},{"id":248,"name":"Zambia","code":"ZM","flag":"🇿🇲"},{"id":249,"name":"Zimbabwe","code":"ZW","flag":"🇿🇼"},{"id":250,"name":"Åland Islands","code":"AX","flag":"🇦🇽"},{"id":251,"name":"Canary Islands","code":"IC","flag":"🇮🇨"}]` + ), + te = { + seasons: Hn, + regionSize: Wn, + refreshIntervalMs: Yn, + colors: Zn, + errors: Qn, + items: Xn, + products: ea, + countries: ta, + }, + na = te, + pe = te.seasons.length - 1, + Sa = te.seasons[pe].zoom, + Ta = te.seasons[pe].tileSize; +function Ea(a) { + return na.countries[a - 1]; +} +function aa(a) { + return X.data ? X.data.experiments[a] ?? null : null; +} +function va(a) { + var e, t; + return ( + ((t = (e = X.data) == null ? void 0 : e.experiments[a]) == null + ? void 0 + : t.enabled) ?? !0 + ); +} +var V; +class ra { + constructor(e) { + h(this, V, y(!0)); + this.url = e; + } + get online() { + return p(u(this, V)); + } + set online(e) { + w(u(this, V), e, !0); + } + async paint(e, t, n) { + const s = Vn(e, (d) => `t=(${d.tile[0]},${d.tile[1]}),s=${d.season}`), + r = aa("2025-09_pawtect"); + if (!r) throw new Error("paint request while pawtect experiment not found"); + const o = ( + await Promise.all( + Object.values(s).map((d) => { + const [c, S] = d[0].tile, + b = d[0].season, + we = { + colors: d.map((ne) => ne.colorIdx), + coords: d.flatMap((ne) => ne.pixel), + t, + fp: n, + }, + ae = JSON.stringify(we); + return this.request(`/s${b}/pixel/${c}/${S}`, { + method: "POST", + body: ae, + headers: { + "x-pawtect-token": r.variant !== "disabled" ? De(ae) : "", + "x-pawtect-variant": r.variant, + }, + credentials: "include", + }); + }) + ) + ).filter((d) => d.status !== 200); + if (o.length) { + const d = o[0]; + if (d.status === 401) throw new Error(Ke()); + if (d.status === 403) { + if (d.headers.get("cf-mitigated") === "challenge") + throw new Error(zt()); + const c = await d.json(); + if ((c == null ? void 0 : c.error) === "refresh") throw new Error(Wt()); + if ((c == null ? void 0 : c.error) === "color-not-owned") + throw new Error(kn()); + X.refresh(); + } else if (d.status === 451) { + const c = await o[0].json(); + c == null || c.err; + const S = c == null ? void 0 : c.suspension; + if (S === "ban") throw new Error(An()); + if (S === "timeout") { + const b = new Date( + Date.now() + ((c == null ? void 0 : c.durationMs) ?? 0) + ); + throw new Error(In({ until: b.toLocaleString() })); + } else throw new Error(i()); + } else throw new Error(i()); + } + } + async getPixelInfo({ + season: e, + tile: [t, n], + pixel: [s, r], + isModerator: l = !1, + }) { + const o = new URLSearchParams(); + o.set("x", String(s)), o.set("y", String(r)); + const d = await this.request( + `${l ? "/moderator" : ""}/s${e}/pixel/${t}/${n}?${o.toString()}`, + { credentials: l ? "include" : void 0 } + ); + if (d.status !== 200) { + const c = await d.text(); + throw new Error(He({ err: c })); + } + return d.json(); + } + async getPixelAreaInfo({ season: e, tile: [t, n], p0: [s, r], p1: [l, o] }) { + const d = await this.request( + `/moderator/pixel-area/s${e}/${t}/${n}?x0=${s}&y0=${r}&x1=${l}&y1=${o}`, + { credentials: "include" } + ); + if (d.status !== 200) { + const c = await d.text(); + throw ( + (console.error("Error while fetching pixel area info", c), + new Error(i())) + ); + } + return d.json(); + } + async me() { + const e = await this.request("/me", { credentials: "include" }); + if (e.status === 200) return await e.json(); + } + async logout() { + const e = await this.request("/auth/logout", { + method: "POST", + credentials: "include", + }); + if (e.status !== 200) throw new Error(await e.text()); + return await e.json(); + } + async refreshPaymentSession(e) { + return ( + ( + await this.request( + `/payment/refresh-session/${encodeURIComponent(e)}`, + { method: "POST", credentials: "include" } + ) + ).status === 200 + ); + } + async getOtpCooldown() { + const e = await this.request("/otp/cooldown", { credentials: "include" }); + if (e.status !== 200) throw new Error(i()); + return await e.json(); + } + async sendOtp(e) { + const t = await this.request("/otp/send", { + method: "POST", + credentials: "include", + body: JSON.stringify({ phone: e }), + }); + if (t.status === 400) throw new Error(Ze()); + if (t.status === 403) throw new Error(et()); + if (t.status === 429) throw new Error(at()); + if (t.status !== 200) throw new Error(i()); + return await t.json(); + } + async verifyOtp(e) { + const t = await this.request("/otp/verify", { + method: "POST", + credentials: "include", + body: JSON.stringify({ code: e }), + }); + if (t.status === 400) throw new Error(ot()); + if (t.status !== 200) throw new Error(i()); + return await t.json(); + } + async updateMe(e) { + const t = await this.request("/me/update", { + method: "POST", + credentials: "include", + body: JSON.stringify(e), + }); + if (t.status === 400) { + const n = await t.json(); + throw (n == null ? void 0 : n.error) === "invalid_name" + ? new Error(Bn()) + : (n == null ? void 0 : n.error) === "invalid_discord" + ? new Error(Rn()) + : new Error(n == null ? void 0 : n.error); + } else if (t.status !== 200) throw new Error(i()); + } + async deleteMe(e) { + const t = await this.request("/me", { + method: "DELETE", + credentials: "include", + body: JSON.stringify({ confirmText: e }), + }); + if (t.status === 400) throw new Error(Fn()); + if (t.status !== 200) throw new Error(i()); + } + async favoriteLocation(e) { + const t = await this.request("/favorite-location", { + method: "POST", + body: JSON.stringify({ latitude: e[0], longitude: e[1] }), + credentials: "include", + }); + if (t.status === 403) throw new Error(lt()); + if (t.status !== 200) throw new Error(i()); + } + async deleteFavoriteLocation(e) { + if ( + ( + await this.request("/favorite-location/delete", { + method: "POST", + body: JSON.stringify({ id: e }), + credentials: "include", + }) + ).status !== 200 + ) + throw new Error(i()); + } + async updateFavoriteLocation(e, t) { + const n = await this.request("/favorite-location/update", { + method: "POST", + body: JSON.stringify({ id: e, name: t }), + credentials: "include", + }); + if (n.status === 400) throw new Error(gt()); + if (n.status !== 200) throw new Error(i()); + } + async leaderboardPlayers(e) { + const t = await this.request(`/leaderboard/player/${e}`); + if (t.status !== 200) throw new Error(v()); + return t.json(); + } + async leaderboardAlliances(e) { + const t = await this.request(`/leaderboard/alliance/${e}`); + if (t.status !== 200) throw new Error(v()); + return t.json(); + } + async leaderboardRegions(e, t = 0) { + const n = await this.request(`/leaderboard/region/${e}/${t}`); + if (n.status === 200) return n.json(); + throw new Error(v()); + } + async leaderboardRegionPlayers(e, t) { + const n = await this.request(`/leaderboard/region/players/${e}/${t}`); + if (n.status === 200) return n.json(); + throw new Error(v()); + } + async leaderboardRegionAlliances(e, t) { + const n = await this.request(`/leaderboard/region/alliances/${e}/${t}`); + if (n.status === 200) return n.json(); + throw new Error(v()); + } + async leaderboardCountries(e) { + const t = await this.request(`/leaderboard/country/${e}`, { + credentials: "include", + }); + if (t.status === 200) return t.json(); + throw new Error(v()); + } + async getRandomTile(e) { + const t = await this.request(`/s${e}/tile/random`); + if (t.status !== 200) throw new Error(i()); + return t.json(); + } + async purchase(e) { + const t = await this.request("/purchase", { + method: "POST", + credentials: "include", + body: JSON.stringify({ product: e }), + }); + if (t.status !== 200) + throw t.status === 404 + ? new Error(ht()) + : t.status === 403 + ? new Error(wt()) + : t.status === 409 + ? new Error(St()) + : new Error(i()); + } + async getAlliance() { + const e = await this.request("/alliance", { credentials: "include" }); + if (e.status === 200) return e.json(); + if (e.status === 404) return; + throw new Error(i()); + } + async createAlliance(e) { + const t = await this.request("/alliance", { + method: "POST", + credentials: "include", + body: JSON.stringify({ name: e }), + }); + if (t.status === 200) return t.json(); + if (t.status === 400) { + const n = await t.json(); + throw n.error === "max_characters" + ? new Error(vt()) + : n.error === "name_taken" + ? new Error(xt()) + : n.error == "empty_name" + ? new Error(Lt()) + : new Error(i()); + } else throw t.status === 403 ? new Error(qt()) : new Error(i()); + } + async leaveAlliance() { + if ( + ( + await this.request("/alliance/leave", { + method: "POST", + credentials: "include", + }) + ).status !== 200 + ) + throw new Error(i()); + } + async updateAllianceDescription(e) { + const t = await this.request("/alliance/update-description", { + method: "POST", + credentials: "include", + body: JSON.stringify({ description: e }), + }); + if (t.status !== 200) + throw t.status === 403 ? new Error(E()) : new Error(i()); + } + async updateAllianceHeadquarters(e, t) { + const n = await this.request("/alliance/update-headquarters", { + method: "POST", + credentials: "include", + body: JSON.stringify({ latitude: e, longitude: t }), + }); + if (n.status !== 200) + throw n.status === 403 ? new Error(E()) : new Error(i()); + } + async allianceLeaderboard(e) { + const t = await this.request(`/alliance/leaderboard/${e}`, { + credentials: "include", + }); + if (t.status === 200) return t.json(); + throw t.status === 403 ? new Error(E()) : new Error(v()); + } + async getAllianceInvites() { + const e = await this.request("/alliance/invites", { + credentials: "include", + }); + if (e.status === 200) return e.json(); + throw e.status === 403 ? new Error(E()) : new Error(i()); + } + async joinAlliance(e) { + switch ( + (await this.request(`/alliance/join/${e}`, { credentials: "include" })) + .status + ) { + case 200: + return "success"; + case 208: + return "in-another-alliance"; + case 401: + return "not-logged-in"; + case 403: + return "banned"; + case 400: + case 404: + return "invalid-invite"; + default: + return "error"; + } + } + async getAllianceMembers(e) { + const t = await this.request(`/alliance/members/${e}`, { + credentials: "include", + }); + if (t.status === 200) return t.json(); + throw new Error(i()); + } + async getAllianceBannedMembers(e) { + const t = await this.request(`/alliance/members/banned/${e}`, { + credentials: "include", + }); + if (t.status === 200) return t.json(); + throw new Error(i()); + } + async getAllianceById(e) { + const t = await this.request(`/admin/alliances/${e}`, { + method: "GET", + credentials: "include", + }); + if (t.status === 404) return; + if (t.status !== 200) throw new f(i(), t.status); + const n = await t.json(); + return { + id: Number(n.id), + name: String(n.name), + pixelsPainted: Number((n == null ? void 0 : n.pixels_painted) ?? 0), + }; + } + async searchAlliance(e) { + const t = new URLSearchParams({ q: e }), + n = await this.request(`/admin/alliances/search?${t.toString()}`, { + method: "GET", + credentials: "include", + }); + if (n.status !== 200) throw new f(i(), n.status); + const s = await n.json(); + return (Array.isArray(s) ? s : []).map((r) => ({ + id: Number(r.id), + name: String(r.name ?? ""), + pixelsPainted: Number((r == null ? void 0 : r.pixels_painted) ?? 0), + })); + } + async searchAlliances(e) { + return this.searchAlliance(e); + } + async getAllianceFull(e) { + const t = await this.request(`/admin/alliances/${e}/full`, { + method: "GET", + credentials: "include", + }); + if (t.status === 404) return null; + if (t.status !== 200) throw new f(i(), t.status); + const n = await t.json(), + s = Array.isArray(n == null ? void 0 : n.members) ? n.members : []; + return { + id: Number(n == null ? void 0 : n.id), + name: String((n == null ? void 0 : n.name) ?? ""), + description: (n == null ? void 0 : n.description) ?? null, + ownerId: Number( + (n == null ? void 0 : n.ownerId) ?? (n == null ? void 0 : n.created_by) + ), + ownerName: (n == null ? void 0 : n.ownerName) ?? null, + hqName: (n == null ? void 0 : n.hqName) ?? null, + hqLatitude: + (n == null ? void 0 : n.hqLatitude) ?? + (n == null ? void 0 : n.hq_latitude) ?? + null, + hqLongitude: + (n == null ? void 0 : n.hqLongitude) ?? + (n == null ? void 0 : n.hq_longitude) ?? + null, + pixelsPainted: Number( + (n == null ? void 0 : n.pixelsPainted) ?? + (n == null ? void 0 : n.pixels_painted) ?? + 0 + ), + membersCount: Number((n == null ? void 0 : n.membersCount) ?? s.length), + members: s.map((r) => ({ + id: Number(r == null ? void 0 : r.id), + name: String( + (r == null ? void 0 : r.name) ?? `#${r == null ? void 0 : r.id}` + ), + picture: (r == null ? void 0 : r.picture) ?? null, + pixelsPainted: Number( + (r == null ? void 0 : r.pixelsPainted) ?? + (r == null ? void 0 : r.pixels_painted) ?? + 0 + ), + lastPixelLatitude: (r == null ? void 0 : r.lastPixelLatitude) ?? null, + lastPixelLongitude: (r == null ? void 0 : r.lastPixelLongitude) ?? null, + role: + (r == null ? void 0 : r.alliance_role) === "admin" || + (r == null ? void 0 : r.role) === "admin" + ? "admin" + : "member", + })), + }; + } + async getAdminAllianceMembers(e, t) { + const n = new URLSearchParams({ + page: String(t.page), + pageSize: String(t.pageSize), + }), + s = await this.request(`/admin/alliances/${e}/members?${n.toString()}`, { + method: "GET", + credentials: "include", + }); + if (s.status === 404) return { members: [], total: 0 }; + if (s.status !== 200) throw new f(i(), s.status); + const r = await s.json(), + l = Array.isArray(r == null ? void 0 : r.members) ? r.members : []; + return { + members: l.map((o) => ({ + id: Number(o == null ? void 0 : o.id), + name: String( + (o == null ? void 0 : o.name) ?? `#${o == null ? void 0 : o.id}` + ), + picture: (o == null ? void 0 : o.picture) ?? null, + pixelsPainted: Number( + (o == null ? void 0 : o.pixelsPainted) ?? + (o == null ? void 0 : o.pixels_painted) ?? + 0 + ), + lastPixelLatitude: (o == null ? void 0 : o.lastPixelLatitude) ?? null, + lastPixelLongitude: (o == null ? void 0 : o.lastPixelLongitude) ?? null, + role: + (o == null ? void 0 : o.alliance_role) === "admin" || + (o == null ? void 0 : o.role) === "admin" + ? "admin" + : "member", + })), + total: Number((r == null ? void 0 : r.total) ?? l.length), + }; + } + async renameAlliance(e, t) { + const n = await this.request(`/admin/alliances/${e}/rename`, { + method: "POST", + credentials: "include", + body: JSON.stringify({ name: t }), + }); + if (n.status === 400) { + const s = await n.json().catch(() => ({})); + throw new Error((s == null ? void 0 : s.error) ?? i()); + } else if (n.status !== 200) throw new f(i(), n.status); + } + async changeAllianceLeader(e, t) { + const n = await this.request(`/admin/alliances/${e}/leader`, { + method: "POST", + credentials: "include", + body: JSON.stringify({ newLeaderUserId: t }), + }); + if (n.status === 400) { + const s = await n.json(); + throw (s == null ? void 0 : s.error) === "user_not_in_alliance" + ? new Error(Mn()) + : new Error(i()); + } else if (n.status !== 200) throw new f(i(), n.status); + } + async banAllAllianceMembers(e, t, n) { + const s = await this.request(`/admin/alliances/${e}/ban-all`, { + method: "POST", + credentials: "include", + body: JSON.stringify({ reason: t, notes: n }), + }); + if (s.status !== 200) throw new f(i(), s.status); + } + async setAllianceMemberRole(e, t, n) { + const s = await this.request(`/admin/alliances/${e}/members/${t}/role`, { + method: "POST", + credentials: "include", + body: JSON.stringify({ role: n }), + }); + if (s.status !== 200) throw new f(i(), s.status); + } + async removeAllianceMember(e, t) { + const n = await this.request(`/admin/alliances/${e}/members/${t}/remove`, { + method: "POST", + credentials: "include", + }); + if (n.status !== 200) throw new f(i(), n.status); + } + async giveAllianceAdmin(e) { + const t = await this.request("/alliance/give-admin", { + body: JSON.stringify({ promotedUserId: e }), + method: "POST", + credentials: "include", + }); + if (t.status !== 200) + throw t.status === 403 ? new Error(E()) : new Error(i()); + } + async banAllianceUser(e) { + const t = await this.request("/alliance/ban", { + body: JSON.stringify({ bannedUserId: e }), + method: "POST", + credentials: "include", + }); + if (t.status !== 200) + throw t.status === 403 ? new Error(E()) : new Error(i()); + } + async equipFlag(e) { + if ( + ( + await this.request(`/flag/equip/${e}`, { + method: "POST", + credentials: "include", + }) + ).status !== 200 + ) + throw new Error(i()); + } + async getMyProfilePictures() { + const e = await this.request("/me/profile-pictures", { + credentials: "include", + }); + if (e.status !== 200) throw new Error(i()); + return e.json(); + } + async changeProfilePicture(e) { + if ( + ( + await this.request("/me/profile-picture/change", { + method: "POST", + credentials: "include", + body: JSON.stringify({ pictureId: e }), + }) + ).status !== 200 + ) + throw new Error(i()); + } + async unbanAllianceUser(e) { + const t = await this.request("/alliance/unban", { + body: JSON.stringify({ unbannedUserId: e }), + method: "POST", + credentials: "include", + }); + if (t.status !== 200) + throw t.status === 403 ? new Error(E()) : new Error(i()); + } + async health() { + return (await this.request("/health")).json(); + } + async generatePixQrCode(e) { + const t = await this.request(`/payment/abacatepay/create/pix/${e}`, { + method: "POST", + credentials: "include", + }); + if (t.status === 400) { + const s = await t.json(); + throw new Error(s == null ? void 0 : s.error); + } else { + if (t.status === 451) throw new Error(Tn()); + if (t.status !== 200) throw new Error(i()); + } + return await t.json(); + } + async refreshPixPayment(e) { + const t = await this.request(`/payment/abacatepay/refresh/pix/${e}`, { + method: "POST", + credentials: "include", + }); + if (t.status === 400) { + const n = await t.json(); + throw new Error(n == null ? void 0 : n.error); + } else if (t.status !== 200) + throw new Error("Unexpected error on the server. Try again later"); + return t.json(); + } + async getPixStatus(e) { + const t = await this.request(`/payment/abacatepay/status/pix/${e}`, { + method: "GET", + credentials: "include", + }); + if (t.status !== 200) + throw new Error("Erro inesperado. Tente atualizar a página."); + return t.json(); + } + async getModeratorTickets() { + const e = await this.request("/moderator/tickets", { + method: "GET", + credentials: "include", + }); + if (e.status !== 200) throw new f(i(), e.status); + const t = await e.json(); + for (const n of t.tickets) + n.reports.sort((s, r) => le[s.reason] - le[r.reason]); + return t; + } + async countMyTicketsClosedToday() { + const e = await this.request("/moderator/count-my-tickets", { + method: "GET", + credentials: "include", + }); + if (e.status !== 200) throw new f(i(), e.status); + return e.json(); + } + async getNonPaidUserOpenTicketsCount() { + const e = await this.request("/moderator/open-tickets-count", { + method: "GET", + credentials: "include", + }); + if (e.status !== 200) throw new f(i(), e.status); + const { tickets: t } = await e.json(); + return t; + } + async assignNewTickets() { + const e = await this.request("/moderator/assign-new-tickets", { + method: "POST", + credentials: "include", + }); + if (e.status !== 200) throw new f(i(), e.status); + return e.json(); + } + async setTicketStatus(e, t, n, s) { + const r = await this.request("/moderator/set-ticket-status", { + method: "POST", + credentials: "include", + body: JSON.stringify({ + ticketId: e, + status: t, + selectedReportId: n, + assignedReason: s, + }), + }); + if (r.status !== 200) throw new f(i(), r.status); + } + async request(e, t) { + let n; + const s = me(); + if (s) { + const r = new Headers(t == null ? void 0 : t.headers); + r.set("x-alien-override", s.token), (t = { ...(t ?? {}), headers: r }); + } + try { + (n = await fetch(`${this.url}${e}`, t)), (this.online = !0); + } catch (r) { + throw ( + (console.error("Fetch error:", r), + (this.online = !1), + new Error(Ut(), { cause: r })) + ); + } + if (n.status === 429) throw new Error(ce()); + if (n.status === 503 || n.status === 408) throw new Error(ce()); + return n; + } + async getOpenTicketsSummary() { + const e = await this.request("/admin/count-all-tickets", { + method: "GET", + credentials: "include", + }); + if (e.status !== 200) throw new f(i(), e.status); + return e.json(); + } + async getOpenReportsSummary() { + const e = await this.request("/admin/count-all-reports", { + method: "GET", + credentials: "include", + }); + if (e.status !== 200) throw new f(i(), e.status); + return e.json(); + } + async getClosedTicketsByMod(e, t) { + const n = await this.request( + `/admin/closed-tickets?start=${encodeURIComponent( + e + )}&end=${encodeURIComponent(t)}`, + { method: "GET", credentials: "include" } + ); + if (n.status !== 200) throw new f(i(), n.status); + return (await n.json()).items.map((r) => ({ + ...r, + suspensionRate: (r.ban + r.timeout) / r.total, + })); + } + async getClosedReportsByMod(e, t) { + const n = await this.request( + `/admin/closed-reports?start=${encodeURIComponent( + e + )}&end=${encodeURIComponent(t)}`, + { method: "GET", credentials: "include" } + ); + if (n.status !== 200) throw new f(i(), n.status); + return (await n.json()).items.map((r) => ({ + ...r, + suspensionRate: (r.ban + r.timeout) / r.total, + })); + } + async getUserInfoById(e) { + const t = await this.request( + `/moderator/user-info/${encodeURIComponent(e)}`, + { method: "GET", credentials: "include" } + ); + if (t.status !== 404) { + if (t.status !== 200) throw new f(i(), t.status); + return t.json(); + } + } + async getMultipleUsersInfoById(e) { + const t = await this.request( + `/moderator/users?ids=${encodeURIComponent(e.join(","))}`, + { method: "GET", credentials: "include" } + ); + if (t.status !== 200) throw new f(i(), t.status); + return t.json(); + } + async getUserInfoFull(e) { + const t = await this.request(`/admin/users?id=${encodeURIComponent(e)}`, { + method: "GET", + credentials: "include", + }); + if (t.status !== 404) { + if (t.status !== 200) throw new f(i(), t.status); + return t.json(); + } + } + async removeTimeout(e) { + const t = await this.request("/admin/remove-timeout", { + method: "POST", + credentials: "include", + body: JSON.stringify({ userId: e }), + }); + if (t.status !== 200) throw new f(i(), t.status); + } + async removeBan(e) { + const t = await this.request("/admin/remove-ban", { + method: "POST", + credentials: "include", + body: JSON.stringify({ userId: e }), + }); + if (t.status !== 200) throw new f(i(), t.status); + } + async getUserNotes(e) { + const t = await this.request( + `/admin/users/notes?userId=${encodeURIComponent(e)}`, + { method: "GET", credentials: "include" } + ); + if (t.status !== 200) throw new f(i(), t.status); + return t.json(); + } + async addUserNote(e, t) { + const n = await this.request("/admin/users/notes", { + method: "POST", + credentials: "include", + body: JSON.stringify({ userId: e, note: t }), + }); + if (n.status !== 200) throw new f(i(), n.status); + } + async getUserPurchases(e) { + const t = await this.request( + `/admin/users/purchases?userId=${encodeURIComponent(e)}`, + { method: "GET", credentials: "include" } + ); + if (t.status !== 200) throw new f(i(), t.status); + const n = await t.json(); + return ( + Array.isArray(n == null ? void 0 : n.purchases) ? n.purchases : [] + ).map((r) => ({ + id: String(r.id ?? ""), + product_name: String(r.productName ?? r.product_name ?? ""), + price: Number(r.price ?? 0), + amount: Number(r.amount ?? 0), + createdAt: + typeof r.createdAt == "string" + ? r.createdAt + : r.CreatedAt + ? new Date(r.CreatedAt).toISOString() + : "", + })); + } + async postSetUserDroplets(e, t) { + const n = await this.request("/admin/users/set-user-droplets", { + method: "POST", + credentials: "include", + body: JSON.stringify({ userId: e, droplets: t }), + }); + if (n.status !== 200) throw new f(i(), n.status); + } + async getUserTickets(e) { + const { userId: t, kind: n, page: s = 0, pageSize: r = 20 } = e, + l = new URLSearchParams({ + userId: String(t), + kind: n, + page: String(s), + pageSize: String(r), + }), + o = await this.request(`/moderator/users/tickets?${l.toString()}`, { + method: "GET", + credentials: "include", + }); + if (o.status !== 200) throw new f(i(), o.status); + const d = await o.json(), + c = Array.isArray(d == null ? void 0 : d.tickets) ? d.tickets : []; + return ( + c.sort( + (S, b) => + new Date(b.createdAt).getTime() - new Date(S.createdAt).getTime() + ), + c + ); + } + mapTicketsToReportRows(e, t) { + var s, r, l, o, d; + const n = []; + for (const c of e) { + const S = c.status ?? "open"; + if (t === "received") { + for (const b of c.reports) + n.push({ + id: String(b.id), + ticketId: String(c.id), + createdAt: b.createdAt ?? c.createdAt, + byUser: { + id: Number(b.reportedBy), + name: String(b.reportedByName ?? b.reportedBy), + picture: b.reportedByPicture ?? null, + }, + reason: String(b.reason), + status: S, + }); + continue; + } + if (t === "sent") { + for (const b of c.reports) + n.push({ + id: String(b.id), + ticketId: String(c.id), + createdAt: b.createdAt ?? c.createdAt, + toUser: { + id: Number(c.reportedUser.id), + name: String(c.reportedUser.name), + picture: c.reportedUser.picture ?? null, + }, + reason: String(b.reason), + status: S, + }); + continue; + } + n.push({ + id: String(c.id), + ticketId: String(c.id), + createdAt: c.createdAt, + handledBy: + c.status && c.status !== "open" + ? { + id: ((s = c.handledBy) == null ? void 0 : s.id) ?? 0, + name: + ((r = c.handledBy) == null ? void 0 : r.name) ?? "Moderator", + picture: + ((l = c.handledBy) == null ? void 0 : l.picture) ?? null, + } + : { id: 0, name: "—", picture: null }, + reason: String( + ((d = (o = c.reports) == null ? void 0 : o[0]) == null + ? void 0 + : d.reason) ?? "other" + ), + status: S, + }); + } + return ( + n.sort( + (c, S) => + new Date(S.createdAt).getTime() - new Date(c.createdAt).getTime() + ), + n + ); + } + async getModeratorClosedTicketStats(e) { + const t = new URLSearchParams({ id: String(e) }).toString(), + n = await this.request(`/admin/users/tickets?${t}`, { + method: "GET", + credentials: "include", + }); + if (n.status !== 200) throw new f(i(), n.status); + return n.json(); + } + async postPawtectLoad() { + const e = await this.request("/pawtect/load", { + method: "POST", + credentials: "include", + body: JSON.stringify({ + pawtectMe: Ne(), + "paint-the": "world", + "but-not": "using-bots", + security: "/.well-known/security.txt", + }), + }); + if (e.status !== 204) throw new f(i(), e.status); + } + async unlinkDiscord() { + const e = await this.request("/discord/unlink", { + method: "POST", + credentials: "include", + }); + if (e.status !== 204) throw new f(i(), e.status); + } + async deleteSessions() { + const e = await this.request("/me/sessions", { + method: "DELETE", + credentials: "include", + }); + if (e.status !== 200) throw new f(i(), e.status); + } +} +V = new WeakMap(); +let de = new ra(ue); +export { + In as A, + ya as B, + pe as C, + Sa as D, + Ta as E, + la as F, + ua as G, + ue as P, + na as S, + Re as _, + de as a, + ba as b, + i as c, + qe as d, + da as e, + un as f, + ke as g, + rn as h, + Qt as i, + tn as j, + cn as k, + T as l, + ga as m, + fa as n, + aa as o, + _a as p, + ha as q, + pa as r, + wa as s, + ge as t, + X as u, + Ea as v, + Fn as w, + va as x, + ma as y, + An as z, +}; diff --git a/frontend-backup/_app/immutable/chunks/BSXXHLQ0.js b/frontend-backup/_app/immutable/chunks/BSXXHLQ0.js new file mode 100644 index 0000000..323f9bb --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BSXXHLQ0.js @@ -0,0 +1,40 @@ +import { g as o } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "488cf311-8f60-4dea-820a-6e96b60c34c0"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-488cf311-8f60-4dea-820a-6e96b60c34c0")); + })(); +} catch {} +const t = () => "Go to map", + d = () => "Ir para o mapa", + l = (e = {}, n = {}) => ((n.locale ?? o()) === "en" ? t() : d()); +export { l as g }; diff --git a/frontend-backup/_app/immutable/chunks/BUhRjcOt.js b/frontend-backup/_app/immutable/chunks/BUhRjcOt.js deleted file mode 100644 index 4bcb327..0000000 --- a/frontend-backup/_app/immutable/chunks/BUhRjcOt.js +++ /dev/null @@ -1,34 +0,0 @@ -import { j as r, i as h, as as u, h as d, W as y, ak as c, a9 as i, V as o, O as s, o as f, P as _ } from "./BDALf20I.js"; -(function () { - try { - var a = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - a.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var a = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - n = new a.Error().stack; - n && ((a._sentryDebugIds = a._sentryDebugIds || {}), (a._sentryDebugIds[n] = "48e8c989-b08a-439a-98b9-6d268a42a85e"), (a._sentryDebugIdIdentifier = "sentry-dbid-48e8c989-b08a-439a-98b9-6d268a42a85e")); - })(); -} catch {} -let e; -function g() { - e = void 0; -} -function p(a) { - let n = null, - l = d; - var t; - if (d) { - for (n = f, e === void 0 && (e = _(document.head)); e !== null && (e.nodeType !== y || e.data !== c); ) e = i(e); - e === null ? o(!1) : (e = s(i(e))); - } - d || (t = document.head.appendChild(r())); - try { - h(() => a(t), u); - } finally { - l && (o(!0), (e = f), s(n)); - } -} -export { p as h, g as r }; diff --git a/frontend-backup/_app/immutable/chunks/Bke_korE.js b/frontend-backup/_app/immutable/chunks/Bke_korE.js deleted file mode 100644 index 3c9610a..0000000 --- a/frontend-backup/_app/immutable/chunks/Bke_korE.js +++ /dev/null @@ -1,224 +0,0 @@ -import { - i as N, - h as P, - e as L, - E as U, - R as Y, - T as j, - U as B, - O as M, - V as D, - j as q, - k as O, - l as C, - aM as F, - m as K, - a4 as z, - q as Q, - o as V, - aN as m, - aO as Z, - aP as $, - g as T, - D as G, - Q as H, - av as W, - aw as X, - aQ as J, - ad as k, - aR as ee, - aS as re, - z as ne, - aE as te, - aT as ae, - aU as se, - aV as ie, - S as A, - aW as x, - aX as y, -} from "./BDALf20I.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - r = new e.Error().stack; - r && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[r] = "59ee8b7d-c408-43d5-a8ba-5b74c35a16df"), (e._sentryDebugIdIdentifier = "sentry-dbid-59ee8b7d-c408-43d5-a8ba-5b74c35a16df")); - })(); -} catch {} -function de(e, r, t = !1) { - P && L(); - var n = e, - a = null, - f = null, - l = F, - c = t ? U : 0, - p = !1; - const S = (o, i = !0) => { - (p = !0), _(i, o); - }; - var u = null; - function w() { - u !== null && (u.lastChild.remove(), n.before(u), (u = null)); - var o = l ? a : f, - i = l ? f : a; - o && z(o), - i && - Q(i, () => { - l ? (f = null) : (a = null); - }); - } - const _ = (o, i) => { - if (l === (l = o)) return; - let E = !1; - if (P) { - const b = Y(n) === j; - !!l === b && ((n = B()), M(n), D(!1), (E = !0)); - } - var v = K(), - d = n; - if ((v && ((u = document.createDocumentFragment()), u.append((d = q()))), l ? a ?? (a = i && O(() => i(d))) : f ?? (f = i && O(() => i(d))), v)) { - var h = C, - g = l ? a : f, - s = l ? f : a; - g && h.skipped_effects.delete(g), s && h.skipped_effects.add(s), h.add_callback(w); - } else w(); - E && D(!0); - }; - N(() => { - (p = !1), r(S), p || _(null, null); - }, c), - P && (n = V); -} -let I = !1; -function fe(e) { - var r = I; - try { - return (I = !1), [e(), I]; - } finally { - I = r; - } -} -function ce(e, r = 1) { - const t = e(); - return e(t + r), t; -} -const ue = { - get(e, r) { - if (!e.exclude.includes(r)) return e.props[r]; - }, - set(e, r) { - return !1; - }, - getOwnPropertyDescriptor(e, r) { - if (!e.exclude.includes(r) && r in e.props) return { enumerable: !0, configurable: !0, value: e.props[r] }; - }, - has(e, r) { - return e.exclude.includes(r) ? !1 : r in e.props; - }, - ownKeys(e) { - return Reflect.ownKeys(e.props).filter((r) => !e.exclude.includes(r)); - }, -}; -function _e(e, r, t) { - return new Proxy({ props: e, exclude: r }, ue); -} -const le = { - get(e, r) { - let t = e.props.length; - for (; t--; ) { - let n = e.props[t]; - if ((y(n) && (n = n()), typeof n == "object" && n !== null && r in n)) return n[r]; - } - }, - set(e, r, t) { - let n = e.props.length; - for (; n--; ) { - let a = e.props[n]; - y(a) && (a = a()); - const f = m(a, r); - if (f && f.set) return f.set(t), !0; - } - return !1; - }, - getOwnPropertyDescriptor(e, r) { - let t = e.props.length; - for (; t--; ) { - let n = e.props[t]; - if ((y(n) && (n = n()), typeof n == "object" && n !== null && r in n)) { - const a = m(n, r); - return a && !a.configurable && (a.configurable = !0), a; - } - } - }, - has(e, r) { - if (r === A || r === x) return !1; - for (let t of e.props) if ((y(t) && (t = t()), t != null && r in t)) return !0; - return !1; - }, - ownKeys(e) { - const r = []; - for (let t of e.props) - if ((y(t) && (t = t()), !!t)) { - for (const n in t) r.includes(n) || r.push(n); - for (const n of Object.getOwnPropertySymbols(t)) r.includes(n) || r.push(n); - } - return r; - }, -}; -function pe(...e) { - return new Proxy({ props: e }, le); -} -function ve(e, r, t, n) { - var g; - var a = !te || (t & ae) !== 0, - f = (t & re) !== 0, - l = (t & ie) !== 0, - c = n, - p = !0, - S = () => (p && ((p = !1), (c = l ? ne(n) : n)), c), - u; - if (f) { - var w = A in e || x in e; - u = ((g = m(e, r)) == null ? void 0 : g.set) ?? (w && r in e ? (s) => (e[r] = s) : void 0); - } - var _, - o = !1; - f ? ([_, o] = fe(() => e[r])) : (_ = e[r]), _ === void 0 && n !== void 0 && ((_ = S()), u && (a && Z(), u(_))); - var i; - if ( - (a - ? (i = () => { - var s = e[r]; - return s === void 0 ? S() : ((p = !0), s); - }) - : (i = () => { - var s = e[r]; - return s !== void 0 && (c = void 0), s === void 0 ? c : s; - }), - a && (t & $) === 0) - ) - return i; - if (u) { - var E = e.$$legacy; - return function (s, b) { - return arguments.length > 0 ? ((!a || !b || E || o) && u(b ? i() : s), s) : i(); - }; - } - var v = !1, - d = ((t & se) !== 0 ? G : H)(() => ((v = !1), i())); - f && T(d); - var h = k; - return function (s, b) { - if (arguments.length > 0) { - const R = b ? T(d) : a && f ? W(s) : s; - return X(d, R), (v = !0), c !== void 0 && (c = R), s; - } - return (J && v) || (h.f & ee) !== 0 ? d.v : T(d); - }; -} -export { de as i, ve as p, _e as r, pe as s, ce as u }; diff --git a/frontend-backup/_app/immutable/chunks/Blc0Ir5M.js b/frontend-backup/_app/immutable/chunks/Blc0Ir5M.js new file mode 100644 index 0000000..490f29f --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Blc0Ir5M.js @@ -0,0 +1,40 @@ +import { g as d } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "e0ae0548-fcbf-4f39-9ea8-c8dece67686b"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-e0ae0548-fcbf-4f39-9ea8-c8dece67686b")); + })(); +} catch {} +const o = () => "No data.", + t = () => "Sem dados.", + l = (e = {}, n = {}) => ((n.locale ?? d()) === "en" ? o() : t()); +export { l as n }; diff --git a/frontend-backup/_app/immutable/chunks/Bn0Xcwmn.js b/frontend-backup/_app/immutable/chunks/Bn0Xcwmn.js new file mode 100644 index 0000000..ef0eac4 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Bn0Xcwmn.js @@ -0,0 +1,369 @@ +import "./Ch2Ub8FX.js"; +import { + ac as ce, + z as se, + H as oe, + C as de, + aZ as fe, + p as W, + aw as D, + au as U, + ay as ue, + a as X, + g as v, + b as w, + c as p, + f as V, + t as j, + u as $, + v as ee, + av as ve, + d, + r as f, + s as u, +} from "./CMvZtFtm.js"; +import { s as y } from "./DVA6u9-7.js"; +import { p as c, i as B, r as te } from "./BF50aS-j.js"; +import { a as A, c as G, b as ae, s as Z } from "./C5yqZvKC.js"; +import { b as me } from "./0wx1llIh.js"; +import { g as R, d as J, P as _e, e as be } from "./BRM3t761.js"; +import { o as ge } from "./DoL3ojdE.js"; +import { g as L } from "./CV9xcpLq.js"; +import { L as he } from "./D3yDgRbd.js"; +(function () { + try { + var a = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + a.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var a = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new a.Error().stack; + e && + ((a._sentryDebugIds = a._sentryDebugIds || {}), + (a._sentryDebugIds[e] = "8a104a20-9809-4c08-9bf0-4d230399adad"), + (a._sentryDebugIdIdentifier = + "sentry-dbid-8a104a20-9809-4c08-9bf0-4d230399adad")); + })(); +} catch {} +function ye(a, e, n) { + ce(() => { + var r = se(() => e(a, n == null ? void 0 : n()) || {}); + if (n && r != null && r.update) { + var _ = !1, + m = {}; + oe(() => { + var s = n(); + de(s), _ && fe(m, s) && ((m = s), r.update(s)); + }), + (_ = !0); + } + if (r != null && r.destroy) return () => r.destroy(); + }); +} +const we = (a) => `Login with ${a.name}`, + xe = (a) => `Entrar com ${a.name}`, + Q = (a, e = {}) => ((e.locale ?? L()) === "en" ? we(a) : xe(a)), + ke = () => "By continuing, you agree to our", + Ie = () => "Ao continuar, você concorda com nossos", + Le = (a = {}, e = {}) => ((e.locale ?? L()) === "en" ? ke() : Ie()), + Ce = () => "Terms of Service", + Ee = () => "Termos de Serviço", + Te = (a = {}, e = {}) => ((e.locale ?? L()) === "en" ? Ce() : Ee()), + ze = () => "and", + Be = () => "e", + De = (a = {}, e = {}) => ((e.locale ?? L()) === "en" ? ze() : Be()), + Me = () => "Privacy Policy", + Pe = () => "Política de privacidade", + Se = (a = {}, e = {}) => ((e.locale ?? L()) === "en" ? Me() : Pe()); +var Fe = V("
        "); +function He(a, e) { + W(e, !0); + let n = c(e, "widgetId", 15), + r = c(e, "appearance", 3, "always"), + _ = c(e, "language", 3, "auto"), + m = c(e, "execution", 3, "render"), + s = c(e, "retryInterval", 3, 8e3), + M = c(e, "retry", 3, "auto"), + g = c(e, "refreshExpired", 3, "auto"), + C = c(e, "theme", 3, "auto"), + E = c(e, "size", 3, "normal"), + P = c(e, "tabIndex", 3, 0); + c( + e, + "reset", + 15 + )(() => { + var t; + n() && + ((t = window == null ? void 0 : window.turnstile) == null || + t.reset(n())); + }); + const T = $(() => ({ + sitekey: e.siteKey, + callback: (t, i) => { + var l; + (l = e.callback) == null || l.call(e, t, i); + }, + "error-callback": (t) => { + var i; + (i = e.errorCallback) == null || i.call(e, t); + }, + "timeout-callback": () => { + var t; + (t = e.timeoutCallback) == null || t.call(e); + }, + "expired-callback": () => { + var t; + (t = e.expiredCallback) == null || t.call(e); + }, + "before-interactive-callback": () => { + var t; + (t = e.beforeInteractiveCallback) == null || t.call(e); + }, + "after-interactive-callback": () => { + var t; + (t = e.afterInteractiveCallback) == null || t.call(e); + }, + "unsupported-callback": () => { + var t; + return (t = e.unsupportedCallback) == null ? void 0 : t.call(e); + }, + "response-field-name": + e.responseFieldName ?? e.formsField ?? "cf-turnstile-response", + "response-field": e.responseField ?? e.forms ?? !0, + "refresh-expired": g(), + "retry-interval": s(), + tabindex: P(), + appearance: r(), + execution: m(), + language: _(), + action: e.action, + retry: M(), + theme: C(), + cData: e.cData, + size: E(), + })), + b = (t, i) => { + let l = window.turnstile.render(t, i); + return ( + n(l), + { + destroy() { + window.turnstile.remove(l); + }, + update(o) { + window.turnstile.remove(l), + (l = window.turnstile.render(t, o)), + n(l); + }, + } + ); + }; + let x = U(!1); + ge(() => { + if ((D(x, !0), !R.turnstatileLoaded)) { + const t = document.createElement("script"); + (t.type = "text/javascript"), + (t.src = + "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"), + (t.async = !0), + t.addEventListener("load", () => (R.turnstatileLoaded = !0), { + once: !0, + }), + document.head.appendChild(t); + } + return () => { + D(x, !1); + }; + }); + var k = ue(), + z = X(k); + { + var F = (t) => { + var i = Fe(); + let l; + ye( + i, + (o, H) => (b == null ? void 0 : b(o, H)), + () => v(T) + ), + j( + (o) => (l = A(i, 1, G(e.class), "svelte-1gvfki5", l, o)), + [() => ({ flexible: E() == "flexible" })] + ), + w(t, i); + }; + B(z, (t) => { + R.turnstatileLoaded && v(x) && t(F); + }); + } + w(a, k), p(); +} +var Ne = ee( + '' +); +function Ke(a, e) { + let n = te(e, ["$$slots", "$$events", "$$legacy"]); + var r = Ne(); + ae(r, () => ({ + viewBox: "0 0 256 262", + xmlns: "http://www.w3.org/2000/svg", + ...n, + })), + w(a, r); +} +var Re = ee( + '' +); +function Ue(a, e) { + let n = te(e, ["$$slots", "$$events", "$$legacy"]); + var r = Re(); + ae(r, () => ({ + xmlns: "http://www.w3.org/2000/svg", + "xml:space": "preserve", + viewBox: "0 0 2400 2800", + ...n, + })), + w(a, r); +} +var je = V( + '
        ', + 1 + ), + Ae = V( + '' + ); +function pe(a, e) { + W(e, !0); + let n = U(null), + r = U(ve(J ? "" : "turnstile-disabled")); + function _(t, i) { + return `${_e}/auth/${t}?token=${i}${e.redirect ? `&r=${e.redirect}` : ""}`; + } + var m = Ae(), + s = d(m), + M = d(s); + he(M, { hasText: !0 }), f(s); + var g = u(s, 2), + C = d(g), + E = d(C); + { + var P = (t) => { + var i = je(), + l = X(i), + o = d(l); + Ke(o, { class: "mr-1 size-5" }); + var H = u(o); + f(l); + var I = u(l, 2), + Y = d(I); + Ue(Y, { class: "mr-1 size-5" }); + var re = u(Y); + f(I); + var q = u(I, 2), + O = d(q); + { + var ne = (h) => { + { + let N = $(() => be.trim()); + He(h, { + get siteKey() { + return v(N); + }, + callback: (K) => { + D(r, K, !0); + }, + }); + } + }; + B(O, (h) => { + J && h(ne); + }); + } + var le = u(O, 2); + B(le, (h) => {}), + f(q), + j( + (h, N, K, ie) => { + A( + l, + 1, + G({ + "btn btn-lg bg-base-100 w-full text-base": !0, + "bg-base-content/10 pointer-events-none": !v(r), + }) + ), + Z(l, "href", h), + y(H, ` ${N ?? ""}`), + A( + I, + 1, + G({ + "btn btn-lg bg-base-100 w-full text-base": !0, + "bg-base-content/10 pointer-events-none": !v(r), + }) + ), + Z(I, "href", K), + y(re, ` ${ie ?? ""}`); + }, + [ + () => (v(r) ? _("google", v(r)) : "#"), + () => Q({ name: "Google" }), + () => (v(r) ? _("twitch", v(r)) : "#"), + () => Q({ name: "Twitch" }), + ] + ), + w(t, i); + }; + B(E, (t) => { + t(P, !1); + }); + } + f(C), + f(g), + me( + g, + (t) => D(n, t), + () => v(n) + ); + var S = u(g, 2), + T = d(S), + b = u(T), + x = d(b, !0); + f(b); + var k = u(b), + z = u(k), + F = d(z, !0); + f(z), + f(S), + f(m), + j( + (t, i, l, o) => { + y(T, `${t ?? ""} `), y(x, i), y(k, ` ${l ?? ""} `), y(F, o); + }, + [() => Le(), () => Te(), () => De(), () => Se()] + ), + w(a, m), + p(); +} +export { pe as L, Ue as T, He as a }; diff --git a/frontend-backup/_app/immutable/chunks/BpEsgMDn.js b/frontend-backup/_app/immutable/chunks/BpEsgMDn.js deleted file mode 100644 index abf4553..0000000 --- a/frontend-backup/_app/immutable/chunks/BpEsgMDn.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6cf8a249-5900-4491-a606-2fb2ee92a24f",e._sentryDebugIdIdentifier="sentry-dbid-6cf8a249-5900-4491-a606-2fb2ee92a24f")})()}catch{}const t=()=>"Export CSV",f=()=>"Exportar CSV",l=(e={},n={})=>(n.locale??o())==="en"?t():f();export{l as e}; diff --git a/frontend-backup/_app/immutable/chunks/BpFpuxGr.js b/frontend-backup/_app/immutable/chunks/BpFpuxGr.js deleted file mode 100644 index 2007ca2..0000000 --- a/frontend-backup/_app/immutable/chunks/BpFpuxGr.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="488cf311-8f60-4dea-820a-6e96b60c34c0",e._sentryDebugIdIdentifier="sentry-dbid-488cf311-8f60-4dea-820a-6e96b60c34c0")})()}catch{}const t=()=>"Go to map",a=()=>"Ir para o mapa",l=(e={},n={})=>(n.locale??o())==="en"?t():a();export{l as g}; diff --git a/frontend-backup/_app/immutable/chunks/BpoSU4rb.js b/frontend-backup/_app/immutable/chunks/BpoSU4rb.js new file mode 100644 index 0000000..a3cdc72 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BpoSU4rb.js @@ -0,0 +1,40 @@ +import { g as t } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "82e5352c-47b9-45dc-82d9-9c5d1081102b"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-82e5352c-47b9-45dc-82d9-9c5d1081102b")); + })(); +} catch {} +const o = () => "Open tickets", + d = () => "Tickets abertos", + s = (e = {}, n = {}) => ((n.locale ?? t()) === "en" ? o() : d()); +export { s as o }; diff --git a/frontend-backup/_app/immutable/chunks/BrZ10JY-.js b/frontend-backup/_app/immutable/chunks/BrZ10JY-.js deleted file mode 100644 index b650940..0000000 --- a/frontend-backup/_app/immutable/chunks/BrZ10JY-.js +++ /dev/null @@ -1,40 +0,0 @@ -import { M as n, H as t, z as a, L as b, S as c } from "./BDALf20I.js"; -(function () { - try { - var f = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - f.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var f = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - i = new f.Error().stack; - i && ((f._sentryDebugIds = f._sentryDebugIds || {}), (f._sentryDebugIds[i] = "b6ca37b8-1ecd-490a-80c1-a7d85598b3d9"), (f._sentryDebugIdIdentifier = "sentry-dbid-b6ca37b8-1ecd-490a-80c1-a7d85598b3d9")); - })(); -} catch {} -function r(f, i) { - return f === i || (f == null ? void 0 : f[c]) === i; -} -function g(f = {}, i, e, y) { - return ( - n(() => { - var s, d; - return ( - t(() => { - (s = d), - (d = []), - a(() => { - f !== e(...d) && (i(f, ...d), s && r(e(...s), f) && i(null, ...s)); - }); - }), - () => { - b(() => { - d && r(e(...d), f) && i(null, ...d); - }); - } - ); - }), - f - ); -} -export { g as b }; diff --git a/frontend-backup/_app/immutable/chunks/BsOIMr0T.js b/frontend-backup/_app/immutable/chunks/BsOIMr0T.js new file mode 100644 index 0000000..95e0bb1 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/BsOIMr0T.js @@ -0,0 +1,52 @@ +import { g as t } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "78305447-0aa0-4fe7-b9f4-39f491404710"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-78305447-0aa0-4fe7-b9f4-39f491404710")); + })(); +} catch {} +const l = () => "Save", + o = () => "Salvar", + y = (e = {}, n = {}) => ((n.locale ?? t()) === "en" ? l() : o()), + s = () => "Members", + a = () => "Membros", + _ = (e = {}, n = {}) => ((n.locale ?? t()) === "en" ? s() : a()), + i = () => "Player", + c = () => "Jogador", + g = (e = {}, n = {}) => ((n.locale ?? t()) === "en" ? i() : c()), + u = () => "Last pixel", + f = () => "Último pixel", + m = (e = {}, n = {}) => ((n.locale ?? t()) === "en" ? u() : f()), + d = () => "Visit", + p = () => "Visitar", + v = (e = {}, n = {}) => ((n.locale ?? t()) === "en" ? d() : p()); +export { m as l, _ as m, g as p, y as s, v }; diff --git a/frontend-backup/_app/immutable/chunks/BtAj0icR.js b/frontend-backup/_app/immutable/chunks/BtAj0icR.js deleted file mode 100644 index e0ddb2a..0000000 --- a/frontend-backup/_app/immutable/chunks/BtAj0icR.js +++ /dev/null @@ -1 +0,0 @@ -import"./B2cHk4HI.js";import{v as n,b as r}from"./BDALf20I.js";import{b as s}from"./BNZUboE0.js";import{r as i}from"./Bke_korE.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6275c75f-2cba-4611-a807-b274187f8ba0",e._sentryDebugIdIdentifier="sentry-dbid-6275c75f-2cba-4611-a807-b274187f8ba0")})()}catch{}var l=n('');function c(e,t){let f=i(t,["$$slots","$$events","$$legacy"]);var o=l();s(o,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),r(e,o)}export{c as W}; diff --git a/frontend-backup/_app/immutable/chunks/BtP6pfnb.js b/frontend-backup/_app/immutable/chunks/BtP6pfnb.js deleted file mode 100644 index d6611ca..0000000 --- a/frontend-backup/_app/immutable/chunks/BtP6pfnb.js +++ /dev/null @@ -1,24 +0,0 @@ -import { h as i, e as m, g as p, E as _, i as h, j as v, k as l, l as b, m as g, n as k } from "./DUoKDNpf.js"; -function x(s, d, u) { - i && m(); - var r = s, - n, - e, - a = null, - f = null; - function t() { - e && (k(e), (e = null)), a && (a.lastChild.remove(), r.before(a), (a = null)), (e = f), (f = null); - } - p(() => { - if (n !== (n = d())) { - var c = b(); - if (n) { - var o = r; - c && ((a = document.createDocumentFragment()), a.append((o = h())), e && l.skipped_effects.add(e)), (f = v(() => u(o, n))); - } - c ? l.add_callback(t) : t(); - } - }, _), - i && (r = g); -} -export { x as c }; diff --git a/frontend-backup/_app/immutable/chunks/BuTItAOu.js b/frontend-backup/_app/immutable/chunks/BuTItAOu.js deleted file mode 100644 index 8d39638..0000000 --- a/frontend-backup/_app/immutable/chunks/BuTItAOu.js +++ /dev/null @@ -1,50 +0,0 @@ -import { w as p, x as g, y as l, z as y, A as _, B as d, g as u, C as w, D as h } from "./BDALf20I.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - n = new e.Error().stack; - n && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[n] = "888755b8-82ba-4039-836b-67876fe1f611"), (e._sentryDebugIdIdentifier = "sentry-dbid-888755b8-82ba-4039-836b-67876fe1f611")); - })(); -} catch {} -function m(e = !1) { - const n = p, - f = n.l.u; - if (!f) return; - let i = () => w(n.s); - if (e) { - let s = 0, - t = {}; - const b = h(() => { - let r = !1; - const a = n.s; - for (const o in a) a[o] !== t[o] && ((t[o] = a[o]), (r = !0)); - return r && s++, s; - }); - i = () => u(b); - } - f.b.length && - g(() => { - c(n, i), d(f.b); - }), - l(() => { - const s = y(() => f.m.map(_)); - return () => { - for (const t of s) typeof t == "function" && t(); - }; - }), - f.a.length && - l(() => { - c(n, i), d(f.a); - }); -} -function c(e, n) { - if (e.l.s) for (const f of e.l.s) u(f); - n(); -} -export { m as i }; diff --git a/frontend-backup/_app/immutable/chunks/BvbG2Lay.js b/frontend-backup/_app/immutable/chunks/BvbG2Lay.js deleted file mode 100644 index b072ed2..0000000 --- a/frontend-backup/_app/immutable/chunks/BvbG2Lay.js +++ /dev/null @@ -1,92 +0,0 @@ -import { bk as B, g as E, a1 as M, H as u, z as l, bl as w, L as d } from "./BDALf20I.js"; -(function () { - try { - var q = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - q.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var q = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - V = new q.Error().stack; - V && ((q._sentryDebugIds = q._sentryDebugIds || {}), (q._sentryDebugIds[V] = "7dfee601-a4e3-44a0-a728-07e9d3b55676"), (q._sentryDebugIdIdentifier = "sentry-dbid-7dfee601-a4e3-44a0-a728-07e9d3b55676")); - })(); -} catch {} -function y(q) { - let V = 0, - A = M(0), - e; - return () => { - B() && - (E(A), - u( - () => ( - V === 0 && (e = l(() => q(() => w(A)))), - (V += 1), - () => { - d(() => { - (V -= 1), V === 0 && (e == null || e(), (e = void 0), w(A)); - }); - } - ) - )); - }; -} -const D = - "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAAEAAAHPAB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn6pqampqampqampqampqampqampqampqamp29vb29vb29vb29vb29vb29vb29vb29vb2/////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJANgAAAAAAAABzxmm4psAAAAAAD/+8DEAAAF7A1FtDAAIzil6D87kgAAAktuqNu7gOcCAAgEATB8HzcHwfB8+DgIROD4ABAEAQOeCH/iAMXLB9//BB3Lg+AAIgJwBCSoyQ0QES1dNwAYhicYDAiarL8aXE4ZXwYe9BkCgLS/Dg4MKQDMkgCjAiAxujyCQPmFYGBApKtkawq2qi9GqTYgLTpFiGdI9O1D5NmvVykb4Q0iC3QOU5rUBLCQ9IoJWFutwdm2v5UmUWmoy2K9QxuXw5RxuOwA2j2ytp2dZrWp2A2/kMupbmC5HKc2et0mbjSyeld35/luxXs97SW4/JJiln38v54TdWITN+nq3a1Pq93WW/3/vNLLf/////K6sDGP////6PvWxQBFoFJABHMZRCBoQGHo/GW6NG17vGW1Zm25xgoZkkHEXiCgHb9v4bi8evlnFw5BStnezI76WTtDaVvOnLL8s9+1t95y7trVqdf0zfXXtpb2dzNrj94XquvZ0M/NLX6l+vktgwC4jICYwfNAuho0IiQuj////9r102AEMKOmGkMYagJIsBaYDIChgOgJiENow+wojIdUMMSQEYSBUTMZQb0o8Sk0SAjR1t5HOrfQNex7cq0ENSD4pyGX7X0xZTZxIYcKtF3mZptVyMvMJudNbJV6UKXY/pfr32nNn0c5rcEZq6nJYnCORDbENctTk5KWZdS63RUTWFzZVbMV3mt6vHJyziusGx5zczaCWWIN////qcOYSSNcFwyUIAAjtY6tsg5hoaQgzCTEAExUCDBozfYO8qSY3T3MLBgMXFAyoIjSiUtF/0DIhCIBgG52VxKVSh3n1s08dh16HvYXJ8JdlBMxTY839i3jR8vtSlsKfeK0NnC/nM0tLW7FK8/Tyq3KYLswxTDQEYZQZBHdQsioRGajdWcNkfpNOahWTpUJEDyc9LCQ0gcfR2T8/////////2zGWVnTPOpjElOJxIKDcdxGcttHMdDk5//7cMTkAA8Uz0Nd1gAigaJm6eyxPIZMDGR0PEgIGrR49MVAZAmYoKJjqJJImBhKP02+o9Jznif5eVT2eHC0ysbdDWHcRBDdQtNsGHz5fw8l282p0U6XSlewoyfTz751qsNZZnm32XJ+unFUNjmoX7ZOpHcZdMd7QbwNu3WpMQZplTGVCmaoMR34247bm1mKtcK2aK+iQ4ivzjUezP///5geOSUMiJ4hUgCgC0K1WiCQN8vbLG0AQADBIlTNsRCYEzAEsjEodxELxqxP5Q/JrC1wBDIwZKExnLAxQW8x7DEIOswwBYw/DkUH4DcJwDDAHaJgbsOBr7QGlBha6NwBiCDcgQQAxYAIUQGBKBYuBJEAcWJEnQDE4pIly4MoYoqAEDCUAPQRAxqkAJ5GoBgyB4RikbLIcbhtIX7/+4DE6YAUZaM7rZheonoiZ3a28ASIsGAgt7D+AWIjkDSGWD0hfqSddyAgLAQ5QaQn8QDHWOoB4AMjh6g6BZYagtVSTqMjpBSeF6RccsrkVJwiZEC0VjA1cjv+xgbI/0TEwQN0GdBn///9q1N/9v//0/VsitLemubODxzX2KfBVKuK49NlTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7YMT0gCAhwyP52gAIAAA/w4AABKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==", - c = - "data:audio/mpeg;base64,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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7QMTxA9NhPR3sPM5AAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV", - m = "" + new URL("../assets/notification.CPyrWqU1.mp3", import.meta.url).href, - Y = - "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAADAAAHVgCKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioru7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7///////////////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJAUQAAAAAAAAB1ZvGw9zAAAAAAD/+9DEAAAGgANNtBAAJL5DKPc9kEkIAKVy6ZvTvjNiAEAQA4fwcOKBAED85LicHw/BAEHfg+D4f/B8Hwf/Ococ/lz//4P//lwfAAAQCzgEApUAchBICAMDwGwwpg3jDHA2MWkaAxCQqDAjBQMMoFYwVgLDCrX1NfwPQxajfTO/VkEYD4sAuYOwYBgPgBGmQOAYIgDoKER8AN4KNYgISnpehHt0X2WsksoO27zM1duB3IgimTpnXNwTefFr9ly4HYK1lgtE8a3uVY23SCpDEpz4xL3DZVTV8ZygdeB4X+GuX6sTh9sVNAzuwVTIUztBdnLL60VnPsrt8f+fw/LCUy2caLDNmzuzGatmcu97UsVIYilyxqUcpaSPSW63KzZucjnakuzw+zlc5nD7yfL5zPv59z7/dQ9EolEu9pf5V1Y1+7Eayl1qkt8rXLGdi5nz//////////////////9/r9dw1l39/+P73/7////rWr1PdwxvJCIEbNPJ1QmAABaCxKJEmLpurTGDFSAYMB0FQxfggyqAeYtYSphnAwmFmBIYTATyaZhFiAGFIEqY0hJ5wAIxmFKCgaFaihh9A1GSlMSJYunOGWWB6pdsMvN5kqIig49MYApkLhJxyjmgkA1gIGDp1/CEIOLNkht0Ag8+NWKWQOW+aivhGVsj00TCW4CiJWJKkYRECshrDX0vHCHosi1cqERxakomvtDHA2TIAyjt52yUsMz8EMpZDLYdbq3V0XSRtfmhWkyaFM+YpBSrxQBAx03pQHPND6exc0OKEQq3lvKqM9hSCVHlv0yVdJhNZf+1Nx2GYZbqxt2qLJ9GC00ETr2vY+tmMTrOqWWTEkkUeh27PYQFIWX0rcGmtAswPXlLzWp6IVZe/ssk8FZ02r16Xdz3hTwPHJu3DEos63dr2927GPfz3+sM+93/63n3u//D///3nv9/rX71v97/PHuGWv7z/1Uo+X7tNTZ91XyoaWnob1bs9Yp86oQUCZIAAwEB7VQIuyrSQANCQ2GhZMQQ4MOCHMFxAMRwkMAxlMHzDM9QQMAxabsYLC+aWdScYCCZCoabxBOZSGWZcE2FB0xAuPp4zhWswUOJAsxAQMFDR4qN//vAxOUALmI5MbnsgE1xwGT3O7ABhADArk1MFMSD0qUALTCIVTNZ6aumhCoZWXmZixYEi2Kiy35BH02oFLPGCg7rCgQDQYw4ZYE5yE1rTPX1YekYKAYsD1hgHKA0ZBWZkQVFFhX2gNE3fFvt411kDPlAE5BAAMrWnKUzkdUQ4GcKFNJrQ1beZZDA2TyBhzsLNlCcxIeBUAMBCRkBamhsy15MFpJFZV1ovs/V/u78Uh+bo5dMT3L0lpqC3Wi9mVXpPlvn5TNa1Vyq409e/b1XvY/9bHmF3O1dwt2u5ZY444Y8q2a2Ou5Zd/GzvHV7tu/cx5fzv587Xua5ewz1n3+91X/LPesO2M9Zb7c5n3eOHcb+5KDXnf0F87HySsMMMAEIAAAwaBkBfgCqAAS3goeAwxXwM3QBieI+IEf/E3Ckh6ID/mLENJk99YSErPrb/4uVDX/7Vo/+KKI1///VTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+yDE4AAIHGcJGUmAAAAANIOAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV", - G = - "data:audio/mpeg;base64,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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+xDE1gPAAAGkHAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==", - p = - "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAACAAAE/gDLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL//////////////////////////////////////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJAOoAAAAAAAABP6u4u+sAAAAAAD/+9DEAAAGhC1UdGMAJM1C6nc34FFSaWP+7vYBAAEOAAiHPJp6YAwtNgQl3qDHKBgo4Th/wf/Lh/8H35R3/4IAg7//gh/+UOcPgABgAAAB0YnM2TIZDUkAGYOFBdqBQkadAmEAgiDTKD1BYUFTGA4LixoJUcUsGkDJrfwYKEmBDRg+gZmBSBeYUQyJj2B9mAOAkYXINwOA3cdvzIrBtMDwFYOAEMZhFcyRwWTDiAGWo/LzSFp7vtDTSQ3bHKocXbPR6kg2U07Vs4KcJaDIIGTHZxDsSjEMyhPing6w8PSYAlwHfdtbFq3lAc1qmqzPxFFV1cbUkrP9GG/cbKIyivlRWq1mzvHDWNad73eE7q3JYPnIerXqKJTtzV3DmUzLZZFM7sv1z9U8czh5wVG4G3nru8cfyy+rhT5TtHTb7jzd3eWO6Wmy3R3e6/DW9b5l/b9e5///87///eY////9///////Df7/8vx/Xf///9f///52O6s3rZINILq82aqo6x1TAYDoYGInIIhASA++E8wYSIkIBd0NdJXDHQL2vFAR4YOsgwGFK6QQiPQDhcITBl4MWgDBEAosgZUgoDGkAwGFAMCCEDEQVAwaOgMChwEQXAwUBg5MTgJcAwARZxBj4Ng0LAigBGYdKKwKBIeIQDHCyhWxMlUmTx0xUCgJFBjnkGFkpk0ZF4gSLLRZJKGARbBQAsZDCCFAhxianDEuspVXRkOUWCGGCYsxZiXa0Ukl/8XOS4vxxjrDJR7RLyeiisxJn//y+11pJqNycOJkgiapIoo0UdS0dL//sUjzHxMgBgMUtVdLRYGrKTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//tgxOMAHVGjN7magIAAADSDgAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", - L = T(); -function T() { - const q = { plop: new Audio(Y), smallPlop: new Audio(p), bigPlop: new Audio(D), smallDropplet: new Audio(G), droppletAndPlop: new Audio(c), notification1: new Audio(m) }; - for (const V of Object.values(q)) (V.preload = "auto"), (V.volume = 0.3); - return q; -} -let t; -function f(q) { - return (t = q), a({ type: "previewPixels", data: q }); -} -function C() { - return (t = void 0), a({ type: "clearPixelPreview" }); -} -function x(q) { - return a({ type: "paintPixels", data: q }); -} -async function U() { - t || (await a({ type: "clearPixelPreview" })); -} -function a(q) { - const V = Math.random(), - A = { ...q, id: V }; - return new Promise((e, s) => { - try { - const i = navigator.serviceWorker; - i || s(new Error("You're an using an older browser, some features might not work. Consider updating or changing browser.")); - const r = (g) => { - var o; - ((o = g.data) == null ? void 0 : o.id) === V && (e(void 0), i.removeEventListener("message", r)); - }; - i.addEventListener("message", r); - const n = navigator.serviceWorker.controller; - n - ? n.postMessage(A) - : navigator.serviceWorker.ready.then((g) => { - const o = g.active; - o ? o == null || o.postMessage(A) : s(new Error("Service worker registration not active")); - }); - } catch (i) { - s(i); - } - }); -} -function J({ pixel: q, season: V, tile: A }) { - return `t=(${A[0]},${A[1]});p=(${q[0]},${q[1]});s=${V}`; -} -export { L as A, C as a, x as b, y as c, J as g, f as p, U as s }; diff --git a/frontend-backup/_app/immutable/chunks/ByKBPM-D.js b/frontend-backup/_app/immutable/chunks/ByKBPM-D.js deleted file mode 100644 index 1d10b48..0000000 --- a/frontend-backup/_app/immutable/chunks/ByKBPM-D.js +++ /dev/null @@ -1,129 +0,0 @@ -import { - g as y, - h as m, - e as h, - ab as b, - aa as x, - ao as C, - E as w, - j as A, - ap as E, - a0 as S, - m as d, - J as k, - aq as c, - w as T, - ar as p, - as as j, - u as s, - Y as P, - at as v, - au as R, - x as f, - av as z, - aw as D, - ax as F, - ay as M, - az as N, - aA as O, - aB as U, -} from "./DUoKDNpf.js"; -import { h as $, m as q, u as B } from "./g8c1BvYP.js"; -function W(e, t, ...r) { - var n = e, - a = E, - o; - y(() => { - a !== (a = t()) && (o && (S(o), (o = null)), (o = A(() => a(n, ...r)))); - }, w), - m && (n = d); -} -function J(e) { - return (t, ...r) => { - var u; - var n = e(...r), - a; - if (m) (a = d), h(); - else { - var o = n.render().trim(), - i = b(o); - (a = k(i)), t.before(a); - } - const l = (u = n.setup) == null ? void 0 : u.call(n, a); - x(a, a), typeof l == "function" && C(l); - }; -} -function Y() { - var e; - return p === null && j(), ((e = p).ac ?? (e.ac = new AbortController())).signal; -} -function g(e) { - s === null && c(), - R && s.l !== null - ? _(s).m.push(e) - : T(() => { - const t = f(e); - if (typeof t == "function") return t; - }); -} -function G(e) { - s === null && c(), g(() => () => f(e)); -} -function H(e, t, { bubbles: r = !1, cancelable: n = !1 } = {}) { - return new CustomEvent(e, { detail: t, bubbles: r, cancelable: n }); -} -function I() { - const e = s; - return ( - e === null && c(), - (t, r, n) => { - var o; - const a = (o = e.s.$$events) == null ? void 0 : o[t]; - if (a) { - const i = P(a) ? a.slice() : [a], - l = H(t, r, n); - for (const u of i) u.call(e.x, l); - return !l.defaultPrevented; - } - return !0; - } - ); -} -function K(e) { - s === null && c(), s.l === null && v(), _(s).b.push(e); -} -function L(e) { - s === null && c(), s.l === null && v(), _(s).a.push(e); -} -function _(e) { - var t = e.l; - return t.u ?? (t.u = { a: [], b: [], m: [] }); -} -const X = Object.freeze( - Object.defineProperty( - { - __proto__: null, - afterUpdate: L, - beforeUpdate: K, - createEventDispatcher: I, - createRawSnippet: J, - flushSync: z, - getAbortSignal: Y, - getAllContexts: D, - getContext: F, - hasContext: M, - hydrate: $, - mount: q, - onDestroy: G, - onMount: g, - setContext: N, - settled: O, - tick: U, - unmount: B, - untrack: f, - }, - Symbol.toStringTag, - { value: "Module" } - ) -); -export { X as a, g as o, W as s }; diff --git a/frontend-backup/_app/immutable/chunks/Bzak7iHL.js b/frontend-backup/_app/immutable/chunks/Bzak7iHL.js deleted file mode 100644 index d27d7cc..0000000 --- a/frontend-backup/_app/immutable/chunks/Bzak7iHL.js +++ /dev/null @@ -1,2 +0,0 @@ -var e; -typeof window < "u" && ((e = window.__svelte ?? (window.__svelte = {})).v ?? (e.v = new Set())).add("5"); diff --git a/frontend-backup/_app/immutable/chunks/C-Y7nmnD.js b/frontend-backup/_app/immutable/chunks/C-Y7nmnD.js deleted file mode 100644 index 5378155..0000000 --- a/frontend-backup/_app/immutable/chunks/C-Y7nmnD.js +++ /dev/null @@ -1,28 +0,0 @@ -import { s as d, p as t } from "./B4HM4TqG.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - n = new e.Error().stack; - n && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[n] = "a3dbed05-c198-4ed7-927f-c0428effe604"), (e._sentryDebugIdIdentifier = "sentry-dbid-a3dbed05-c198-4ed7-927f-c0428effe604")); - })(); -} catch {} -const f = { - get error() { - return t.error; - }, - get status() { - return t.status; - }, - get url() { - return t.url; - }, -}; -d.updated.check; -const r = f; -export { r as p }; diff --git a/frontend-backup/_app/immutable/chunks/C0GlPMrk.js b/frontend-backup/_app/immutable/chunks/C0GlPMrk.js new file mode 100644 index 0000000..0669939 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/C0GlPMrk.js @@ -0,0 +1,137 @@ +import { + bk as B, + g as E, + _ as M, + H as d, + z as u, + bl as w, + L as l, +} from "./CMvZtFtm.js"; +(function () { + try { + var q = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + q.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var q = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + V = new q.Error().stack; + V && + ((q._sentryDebugIds = q._sentryDebugIds || {}), + (q._sentryDebugIds[V] = "09f87ec5-2106-454b-b5de-093b7f8953b6"), + (q._sentryDebugIdIdentifier = + "sentry-dbid-09f87ec5-2106-454b-b5de-093b7f8953b6")); + })(); +} catch {} +function f(q) { + let V = 0, + A = M(0), + e; + return () => { + B() && + (E(A), + d( + () => ( + V === 0 && (e = u(() => q(() => w(A)))), + (V += 1), + () => { + l(() => { + (V -= 1), V === 0 && (e == null || e(), (e = void 0), w(A)); + }); + } + ) + )); + }; +} +const D = + "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAAEAAAHPAB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn6pqampqampqampqampqampqampqampqamp29vb29vb29vb29vb29vb29vb29vb29vb2/////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJANgAAAAAAAABzxmm4psAAAAAAD/+8DEAAAF7A1FtDAAIzil6D87kgAAAktuqNu7gOcCAAgEATB8HzcHwfB8+DgIROD4ABAEAQOeCH/iAMXLB9//BB3Lg+AAIgJwBCSoyQ0QES1dNwAYhicYDAiarL8aXE4ZXwYe9BkCgLS/Dg4MKQDMkgCjAiAxujyCQPmFYGBApKtkawq2qi9GqTYgLTpFiGdI9O1D5NmvVykb4Q0iC3QOU5rUBLCQ9IoJWFutwdm2v5UmUWmoy2K9QxuXw5RxuOwA2j2ytp2dZrWp2A2/kMupbmC5HKc2et0mbjSyeld35/luxXs97SW4/JJiln38v54TdWITN+nq3a1Pq93WW/3/vNLLf/////K6sDGP////6PvWxQBFoFJABHMZRCBoQGHo/GW6NG17vGW1Zm25xgoZkkHEXiCgHb9v4bi8evlnFw5BStnezI76WTtDaVvOnLL8s9+1t95y7trVqdf0zfXXtpb2dzNrj94XquvZ0M/NLX6l+vktgwC4jICYwfNAuho0IiQuj////9r102AEMKOmGkMYagJIsBaYDIChgOgJiENow+wojIdUMMSQEYSBUTMZQb0o8Sk0SAjR1t5HOrfQNex7cq0ENSD4pyGX7X0xZTZxIYcKtF3mZptVyMvMJudNbJV6UKXY/pfr32nNn0c5rcEZq6nJYnCORDbENctTk5KWZdS63RUTWFzZVbMV3mt6vHJyziusGx5zczaCWWIN////qcOYSSNcFwyUIAAjtY6tsg5hoaQgzCTEAExUCDBozfYO8qSY3T3MLBgMXFAyoIjSiUtF/0DIhCIBgG52VxKVSh3n1s08dh16HvYXJ8JdlBMxTY839i3jR8vtSlsKfeK0NnC/nM0tLW7FK8/Tyq3KYLswxTDQEYZQZBHdQsioRGajdWcNkfpNOahWTpUJEDyc9LCQ0gcfR2T8/////////2zGWVnTPOpjElOJxIKDcdxGcttHMdDk5//7cMTkAA8Uz0Nd1gAigaJm6eyxPIZMDGR0PEgIGrR49MVAZAmYoKJjqJJImBhKP02+o9Jznif5eVT2eHC0ysbdDWHcRBDdQtNsGHz5fw8l282p0U6XSlewoyfTz751qsNZZnm32XJ+unFUNjmoX7ZOpHcZdMd7QbwNu3WpMQZplTGVCmaoMR34247bm1mKtcK2aK+iQ4ivzjUezP///5geOSUMiJ4hUgCgC0K1WiCQN8vbLG0AQADBIlTNsRCYEzAEsjEodxELxqxP5Q/JrC1wBDIwZKExnLAxQW8x7DEIOswwBYw/DkUH4DcJwDDAHaJgbsOBr7QGlBha6NwBiCDcgQQAxYAIUQGBKBYuBJEAcWJEnQDE4pIly4MoYoqAEDCUAPQRAxqkAJ5GoBgyB4RikbLIcbhtIX7/+4DE6YAUZaM7rZheonoiZ3a28ASIsGAgt7D+AWIjkDSGWD0hfqSddyAgLAQ5QaQn8QDHWOoB4AMjh6g6BZYagtVSTqMjpBSeF6RccsrkVJwiZEC0VjA1cjv+xgbI/0TEwQN0GdBn///9q1N/9v//0/VsitLemubODxzX2KfBVKuK49NlTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7YMT0gCAhwyP52gAIAAA/w4AABKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==", + c = + "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAAGAAAMOQBTU1NTU1NTU1NTU1NTU1NTj4+Pj4+Pj4+Pj4+Pj4+Pj4+xsbGxsbGxsbGxsbGxsbGx09PT09PT09PT09PT09PT09Px8fHx8fHx8fHx8fHx8fHx8f////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJAUCAAAAAAAADDmA9uH8AAAAAAD/+9DEAAAGFANhtBAAJCSzLP89oJggAALb/tFAHjUCAYWGC58oo4CEuCAIOg4GP5fRBB15d/B8//BD/8oc4P+IDnJ//+D6gBACgHGGMmGGAYEAiEB0ibwcAGYcgfRhlAyGKWf0bXgNSIiUpgJg3mBeAkYsQk5hPADlmkJZgCgFBwUTEzBIAxEJQCATNDF2H2BixBVlEwlzUKFrGHDQ4nWyRnNV/JBAF1sDEsMohzGgb1m1JVzYdFHSaE+z0sgpe0s1EHDlczHIpHJOmtL6zKoYHgNBIYtd3lSww5V7OX45QY8sij7/LrY1GYxP03P1apXhgahit65dpdyplb2v7z7ucliN6mqU12tNv5LZV38sssdxGi1lXqZdmKamks5j8TpqXDHX63h3LH/h2U1L9zvftRHeOH/Py6bpM6lW/25d3y5z//7sqvZz3YGGIslXoQAHIFYzMVUYY9rMbh+/5sjC/CwNSMXUxAQnzJeWbMYkawxUCtzUoDaMEwMM0fxPzAdAuPZcmMwegmDAmBMMA8BgSBpMFkFQwXwCzAzABCQh40ymzMFK6DaBdtCcQIjSzGERXtMBEDDDSpcseAQEhixEHPYg6NDZwXRTdTCUwLOBYhlLW4WFgkbE7CgteafKb7vQa6DYlbENXIfIFCvkjkWkdR7769xUFK9KZHhoFVuiCNprTXJRpaoyJRYiET9UWY8+NuRNZLuP4x5KyHs4xBTdFlhhEcaW2q9IuwaTPsXudBEZLpy1XvE+qaqyIJa61KPTcDJaNWd5uzE24qnctYsd0no78+X/bZMhpjju4rljKjzGl415+7TzVy7T1ZXLu1r16IXZBQ41qe5Yq1p61S7q3pZR1LEssXJ/H696Uf//////z////////////////////9/+////v//1LFjuNy5nnnL7/K9/Dus7VzocWTAKABqutOI9GcW+3l4CgFOmDMDYYN4p4OCIBgV4YBiYAwFpq3hZDALhgJheGG2D6YKoYZg5gwGEgBkYNYFphwg6mA+AMYlIK4CFoVGGIjshzRKgYzTWXYlEJDkBhliAGCiAMloYkENCHeTEfJPsMAiEWY0DBKVRQGMQrCBiAdCsOAiMKbZE//vAxPoALdY1PfnsgE4Yxut/PaRBBkBQHBwyEGzhMscp7WbLObyLCAEzgto46sDc0rgggEBIxDipkdkxXZrtwett4ObmoG7jE2pw9G3QXC9jsuymLPw8+Dp08zJVtJWLBQJG3nrSxgCARXBfwsgoJJakNPUmFAz6ymVOgwSNwc6ag6cDI37WpSsgXpTpiTbQy8CvHbLKIKUt7T7MqL/QzSvVejWbO3fp6S7ZsVZRKOxuxRqQUoWJXZJJY21x/IELxq7kdLLy/1DNU1VlTQoJb1RVFZiXHpf6rq7239u7fuX62GX9y/8uf////2gdh+JHSWIYfycuSiWW99lD+SyX9+URic7/5XMu5frePP1lvGtj/PytbBWbABr+NiRItGCIZg4OGBEwWGCIWpNDACG7UImORRmNIaDwrs7AwMkQArQS6k8HiYGkkirYXFQmGxR5kKSL1vXKtUyFx4T5jhQmF+whaQHE6XGvt7M9GafHhRoOvuW1IDkdKMUZ5eBrb7dJoN6amnbmZvm+3j6HmLq2q4hRrPoisU5yqSPBmgtVsTXziNa2d7hPoVaZjRoi6ngsbErm9SqVxgVVm4VXr2C2q3dv/r/61mta1rW1vujknTRQ19msXVc7hV1Xdc11aLCBo2Cp271Uf/UywAnCzbS32pPGamAsBpzmFioQBhg2Kjh0LkBkdooCME6gqEIgGAhqxojES6MTe1pYSgiSBzhgqHpfxOpePB/UvWXorrSCCQqGUqVy0uO846vZssTbWJ/YawtY0CQrcgrcQnVkStzrDmSplOcGO38lU/mpJn4sku6RNJMm2k1Yqwa8rusvFCZaRw0KBUhgtU8YCxh95G8mz///6377jVbFW1Y56omg1G6bnd/2Vr59WaV2YBZ5qm2v+m3BwJkYsxMtgywTOKITz+fIw9AMyzAYcvSgJRZWuTBZq4azK6gjFhyJxe0dgFKx8IRmfJPW6u08V2P/+5DE4oAaRaNFvdeAAsG0ab22JiTl7NF5XJKE5dsm4vPXm6Vp3rDpGjOBKkSFe3tNFtG6rZ1o6etaX9rzx9mPbrMUFLulWK9+1DLhBufN1vOx3rNmWqypHsrBeU3SiTDox81vMIlVgiXRUa9Dgpk2nfyuz9XPvl6u1c3cpk/A/gWXVdXsKZXBVmZidJ7U7lfGRISlEwhspJOroN5MDRCFozSo4PRp7DISWzyrHd1z3RgefpIcgdcsShprMD4hP+0MVsLDjcJXKys6Ga7Vdl7WiCjaHxrG/heggmYMOVOzOrqmMWnJZWBYrE0hI1GiJhaLOom6fm+kSVXFl6GtlQOAiiaue/E3/uv7FWa7Ti8ANAywuHoKNr8jKF2IrBWEc850vaXja818T1SdxbQ5WtPQYaQOvHXB2UzZMnh3YGV4h11mtblaifpokQYKBhDoBSUA2QTWiIrygwiGBx7J7jE1bVtsyV4wd1WRHHsgERdqbejj9ZEPb1I1syno5xVYyItSRXNgmUjk6XaXP9RFIvQduMPeLKNpCYqKmTSaO1xS2vX/+5DE5wAWWYdL7OGHKtS0aD2WJpwoC6Vo3TPtsVJqLczSJW6nLWe+RU8BTMSrJkUQEdHH9dqd1O0OpFJOKgqiZTKguYTbSEZ99rpKJJtnm3TjjbEvBH4psoYppbHqapsFc3ZS/hfzUowoBRmADiGVLXY2VAdYfAY/sMWgT8XeFZEk1KwhLVgEpQ9PRt0vWswHOP82Jw7zyycVBYBRrQFUJoI5rUTRhNc4RDYMNCsEDQypQrQMKn0GqqG0mR4lFJMphLFERHUXhkUMcg955lJulY9lCeExa4xrbRdNmgCwQrKGs07zWarceJ+Go4kpwak1mqmoCi1NiZk92yHqaq4LpwY8gfZBMxcgV2VVI7klXnve3r7CxdUjIhOIY0jCclaBBxgQeIwRQgNrirEfKZTIFFHkKTagty/jclnF1Wc0TpHMznSpnMAvJECHAqiV61TJyRqvMEjVErnTUTkjVVVXlGwkbGV5bTcrDkiKgZMiVlPh1osSFHo1//+2yyRsV/VkTlkYROLMTROeJZIFMDhIMB3LbLbjSdaNDwEROyQUeLD/+4DE+QAXeZc97L0xaq2z5v2Emn0yAiJIKjB3X////9aSZKVLFkxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7QMTxA9NhPR3sPM5AAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV", + m = "" + new URL("../assets/notification.CPyrWqU1.mp3", import.meta.url).href, + Y = + "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAADAAAHVgCKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioru7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7///////////////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJAUQAAAAAAAAB1ZvGw9zAAAAAAD/+9DEAAAGgANNtBAAJL5DKPc9kEkIAKVy6ZvTvjNiAEAQA4fwcOKBAED85LicHw/BAEHfg+D4f/B8Hwf/Ococ/lz//4P//lwfAAAQCzgEApUAchBICAMDwGwwpg3jDHA2MWkaAxCQqDAjBQMMoFYwVgLDCrX1NfwPQxajfTO/VkEYD4sAuYOwYBgPgBGmQOAYIgDoKER8AN4KNYgISnpehHt0X2WsksoO27zM1duB3IgimTpnXNwTefFr9ly4HYK1lgtE8a3uVY23SCpDEpz4xL3DZVTV8ZygdeB4X+GuX6sTh9sVNAzuwVTIUztBdnLL60VnPsrt8f+fw/LCUy2caLDNmzuzGatmcu97UsVIYilyxqUcpaSPSW63KzZucjnakuzw+zlc5nD7yfL5zPv59z7/dQ9EolEu9pf5V1Y1+7Eayl1qkt8rXLGdi5nz//////////////////9/r9dw1l39/+P73/7////rWr1PdwxvJCIEbNPJ1QmAABaCxKJEmLpurTGDFSAYMB0FQxfggyqAeYtYSphnAwmFmBIYTATyaZhFiAGFIEqY0hJ5wAIxmFKCgaFaihh9A1GSlMSJYunOGWWB6pdsMvN5kqIig49MYApkLhJxyjmgkA1gIGDp1/CEIOLNkht0Ag8+NWKWQOW+aivhGVsj00TCW4CiJWJKkYRECshrDX0vHCHosi1cqERxakomvtDHA2TIAyjt52yUsMz8EMpZDLYdbq3V0XSRtfmhWkyaFM+YpBSrxQBAx03pQHPND6exc0OKEQq3lvKqM9hSCVHlv0yVdJhNZf+1Nx2GYZbqxt2qLJ9GC00ETr2vY+tmMTrOqWWTEkkUeh27PYQFIWX0rcGmtAswPXlLzWp6IVZe/ssk8FZ02r16Xdz3hTwPHJu3DEos63dr2927GPfz3+sM+93/63n3u//D///3nv9/rX71v97/PHuGWv7z/1Uo+X7tNTZ91XyoaWnob1bs9Yp86oQUCZIAAwEB7VQIuyrSQANCQ2GhZMQQ4MOCHMFxAMRwkMAxlMHzDM9QQMAxabsYLC+aWdScYCCZCoabxBOZSGWZcE2FB0xAuPp4zhWswUOJAsxAQMFDR4qN//vAxOUALmI5MbnsgE1xwGT3O7ABhADArk1MFMSD0qUALTCIVTNZ6aumhCoZWXmZixYEi2Kiy35BH02oFLPGCg7rCgQDQYw4ZYE5yE1rTPX1YekYKAYsD1hgHKA0ZBWZkQVFFhX2gNE3fFvt411kDPlAE5BAAMrWnKUzkdUQ4GcKFNJrQ1beZZDA2TyBhzsLNlCcxIeBUAMBCRkBamhsy15MFpJFZV1ovs/V/u78Uh+bo5dMT3L0lpqC3Wi9mVXpPlvn5TNa1Vyq409e/b1XvY/9bHmF3O1dwt2u5ZY444Y8q2a2Ou5Zd/GzvHV7tu/cx5fzv587Xua5ewz1n3+91X/LPesO2M9Zb7c5n3eOHcb+5KDXnf0F87HySsMMMAEIAAAwaBkBfgCqAAS3goeAwxXwM3QBieI+IEf/E3Ckh6ID/mLENJk99YSErPrb/4uVDX/7Vo/+KKI1///VTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+yDE4AAIHGcJGUmAAAAANIOAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV", + G = + "data:audio/mpeg;base64,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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+xDE1gPAAAGkHAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==", + p = + "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAACAAAE/gDLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL//////////////////////////////////////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJAOoAAAAAAAABP6u4u+sAAAAAAD/+9DEAAAGhC1UdGMAJM1C6nc34FFSaWP+7vYBAAEOAAiHPJp6YAwtNgQl3qDHKBgo4Th/wf/Lh/8H35R3/4IAg7//gh/+UOcPgABgAAAB0YnM2TIZDUkAGYOFBdqBQkadAmEAgiDTKD1BYUFTGA4LixoJUcUsGkDJrfwYKEmBDRg+gZmBSBeYUQyJj2B9mAOAkYXINwOA3cdvzIrBtMDwFYOAEMZhFcyRwWTDiAGWo/LzSFp7vtDTSQ3bHKocXbPR6kg2U07Vs4KcJaDIIGTHZxDsSjEMyhPing6w8PSYAlwHfdtbFq3lAc1qmqzPxFFV1cbUkrP9GG/cbKIyivlRWq1mzvHDWNad73eE7q3JYPnIerXqKJTtzV3DmUzLZZFM7sv1z9U8czh5wVG4G3nru8cfyy+rhT5TtHTb7jzd3eWO6Wmy3R3e6/DW9b5l/b9e5///87///eY////9///////Df7/8vx/Xf///9f///52O6s3rZINILq82aqo6x1TAYDoYGInIIhASA++E8wYSIkIBd0NdJXDHQL2vFAR4YOsgwGFK6QQiPQDhcITBl4MWgDBEAosgZUgoDGkAwGFAMCCEDEQVAwaOgMChwEQXAwUBg5MTgJcAwARZxBj4Ng0LAigBGYdKKwKBIeIQDHCyhWxMlUmTx0xUCgJFBjnkGFkpk0ZF4gSLLRZJKGARbBQAsZDCCFAhxianDEuspVXRkOUWCGGCYsxZiXa0Ukl/8XOS4vxxjrDJR7RLyeiisxJn//y+11pJqNycOJkgiapIoo0UdS0dL//sUjzHxMgBgMUtVdLRYGrKTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//tgxOMAHVGjN7magIAAADSDgAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", + y = T(); +function T() { + const q = { + plop: new Audio(Y), + smallPlop: new Audio(p), + bigPlop: new Audio(D), + smallDropplet: new Audio(G), + droppletAndPlop: new Audio(c), + notification1: new Audio(m), + }; + for (const V of Object.values(q)) (V.preload = "auto"), (V.volume = 0.3); + return q; +} +let t; +function b(q) { + return (t = q), a({ type: "previewPixels", data: q }); +} +function L() { + return (t = void 0), a({ type: "clearPixelPreview" }); +} +function C(q) { + return a({ type: "paintPixels", data: q }); +} +async function x() { + t || (await a({ type: "clearPixelPreview" })); +} +function a(q) { + const V = Math.random(), + A = { ...q, id: V }; + return new Promise((e, s) => { + try { + const i = navigator.serviceWorker; + i || + s( + new Error( + "You're an using an older browser, some features might not work. Consider updating or changing browser." + ) + ); + const r = (g) => { + var o; + ((o = g.data) == null ? void 0 : o.id) === V && + (e(void 0), i.removeEventListener("message", r)); + }; + i.addEventListener("message", r); + const n = navigator.serviceWorker.controller; + n + ? n.postMessage(A) + : navigator.serviceWorker.ready.then((g) => { + const o = g.active; + o + ? o == null || o.postMessage(A) + : s(new Error("Service worker registration not active")); + }); + } catch (i) { + s(i); + } + }); +} +function U({ pixel: q, season: V, tile: A }) { + return `t=(${A[0]},${A[1]});p=(${q[0]},${q[1]});s=${V}`; +} +export { y as A, L as a, C as b, f as c, U as g, b as p, x as s }; diff --git a/frontend-backup/_app/immutable/chunks/C2Ms0SfR.js b/frontend-backup/_app/immutable/chunks/C2Ms0SfR.js deleted file mode 100644 index 771c578..0000000 --- a/frontend-backup/_app/immutable/chunks/C2Ms0SfR.js +++ /dev/null @@ -1 +0,0 @@ -import{g as U}from"./DklPLC_x.js";import"./B2cHk4HI.js";import{o as _t}from"./4WsUhDWi.js";import{v as N,b as d,at as Ye,p as Ke,ay as Ve,a as me,c as We,f as k,d as t,r as o,s as n,n as O,t as y,ax as fe,y as mt,g as _,au as be,aw as L,u as _e,b4 as Ce}from"./BDALf20I.js";import{s as w}from"./4k6DpCgf.js";import{r as ne,p as Ge,i as M}from"./Bke_korE.js";import{b as j,f as gt,s as ae,r as Ie,g as Le,a as Je,e as xt}from"./BNZUboE0.js";import{b as ht}from"./BrZ10JY-.js";import{g as Re}from"./B4HM4TqG.js";import{p as Ae}from"./C-Y7nmnD.js";import{g as wt,u as se,t as re,a as $e,S as yt,P as Fe}from"./DffDvEhl.js";import{a as kt}from"./DCxPsWiR.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new a.Error().stack;e&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[e]="2bdf6b0b-6be8-47c7-adbc-087285b24a69",a._sentryDebugIdIdentifier="sentry-dbid-2bdf6b0b-6be8-47c7-adbc-087285b24a69")})()}catch{}const Ct=()=>"Add profile picture",It=()=>"Adicionar imagem de perfil",yo=(a={},e={})=>(e.locale??U())==="en"?Ct():It(),Lt=()=>"Close",zt=()=>"Fechar",Pt=(a={},e={})=>(e.locale??U())==="en"?Lt():zt(),qt=()=>"You gain 1 droplet per pixel painted and 500 droplets per level",Tt=()=>"Você ganha 1 droplet por pixel pintado e 500 droplets por level",Xe=(a={},e={})=>(e.locale??U())==="en"?qt():Tt(),Dt=()=>"Eraser",Mt=()=>"Borracha",ko=(a={},e={})=>(e.locale??U())==="en"?Dt():Mt(),St=()=>"Refund Policy",Et=()=>"Política de Reembolso",Oe=(a={},e={})=>(e.locale??U())==="en"?St():Et(),Bt=()=>"For refund requests and processing details, please see our",Ht=()=>"Para pedidos de reembolso, consulte nossa",je=(a={},e={})=>(e.locale??U())==="en"?Bt():Ht();var Ut=N('');function Zt(a,e){let r=ne(e,["$$slots","$$events","$$legacy"]);var s=Ut();j(s,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...r})),d(a,s)}function Rt(){return U()}function Ne(a){return`${a}/terms/return${Rt()==="pt"?"/pt":""}`}var At=N('');function ze(a,e){let r=ne(e,["$$slots","$$events","$$legacy"]);var s=At();j(s,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...r})),d(a,s)}var Ft=k(''),Xt=k(' Droplets '),Ot=k(''),jt=k('');function Nt(a,e){Ke(e,!0);const r=i=>{var p=Xt(),f=t(p);ze(f,{class:"text-primary size-4.5"});var h=n(f,2),S=t(h);O(),o(h);var C=n(h,2);{var q=E=>{var Q=Ft(),Z=t(Q);Zt(Z,{class:"size-4"}),o(Q),d(E,Q)};M(C,E=>{s()&&E(q)})}o(p),y(E=>w(S,`${E??""} `),[()=>e.value.toLocaleString("en-US")]),d(i,p)};let s=Ge(e,"button",3,!0);var m=Ve(),u=me(m);{var b=i=>{var p=Ot();p.__click=()=>{wt.dropletsDialogOpen=!0};var f=t(p);r(f),o(p),d(i,p)},c=i=>{var p=jt(),f=t(p);r(f),o(p),d(i,p)};M(u,i=>{s()?i(b):i(c,!1)})}d(a,m),We()}Ye(["click"]);var Qt=N('');function Yt(a,e){let r=ne(e,["$$slots","$$events","$$legacy"]);var s=Qt();j(s,()=>({xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px",fill:"currentColor",...r})),d(a,s)}var Kt=N('');function Qe(a,e){let r=ne(e,["$$slots","$$events","$$legacy"]);var s=Kt();j(s,()=>({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"100",height:"100",viewBox:"0 0 48 48",...r})),d(a,s)}var Vt=(a,e,r,s,m)=>{_(e).show(),L(r,!0),$e.generatePixQrCode(s()).then(u=>{L(m,u,!0)}).catch(u=>{re.error(u.message)}).finally(()=>{L(r,!1)})},Wt=k('
        '),Gt=k('
        '),Jt=k('

        Droplets

        '),$t=k('

        Droplets

        '),eo=(a,e)=>{var r;navigator.clipboard.writeText(((r=_(e))==null?void 0:r.pixCode)??""),re.success("Código PIX copiado")},to=async(a,e,r)=>{var s,m,u;if(!_(e)){re.info("Espere 1 minuto e recarrege a pagina");return}try{L(r,!0);const{paid:b}=await $e.getPixStatus(_(e).pixId);if(b){const c=_(e).productId.toString(),i=(u=(m=(s=yt.products[c])==null?void 0:s.items)==null?void 0:m[0])==null?void 0:u.amount;await se.refresh(),i?Re(`payment/success?droplets=${i}`):Re("payment/success")}else re.info("Pagamento ainda não recebido. Desculpe a demora, tente novamente em instantes.",{duration:1e5})}catch(b){console.error(b),re.error("Error ao atualizar o status do pix. Tente recarregar a página.")}finally{L(r,!1)}},oo=k('

        Efetue o pagamento do PIX no valor de

        QR code PIX
        Código
        ',1),ao=k('
        '),so=k(' ',1);function Co(a,e){Ke(e,!0);let r=Ge(e,"open",15),s=be(!1);_t(()=>{const l=g=>{g.key==="Escape"&&r(!1)};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)});const m=_e(()=>{var l,g;return((g=(l=se.data)==null?void 0:l.country)==null?void 0:g.toUpperCase())==="BR"}),u=_e(()=>{var l,g;return((g=(l=se.data)==null?void 0:l.country)==null?void 0:g.toUpperCase())==="MX"});let b=be(null),c=be(void 0),i=be(!1);var p=so(),f=me(p),h=t(f),S=n(t(h),2);{var C=l=>{var g=$t(),B=t(g),R=t(B),le=t(R);ze(le,{class:"text-primary size-6"});var A=n(le,4),ie=t(A);{let z=_e(()=>{var F;return((F=se.data)==null?void 0:F.droplets)??0});Nt(ie,{get value(){return _(z)},button:!1})}o(A),o(R);var de=n(R,2),Y=t(de,!0);o(de),o(B);var K=n(B,2);{const z=(F,v)=>{let J=()=>v==null?void 0:v().droplets,$=()=>v==null?void 0:v().bonus,he=()=>v==null?void 0:v().price,Se=()=>v==null?void 0:v().stripeLookupkey,nt=()=>v==null?void 0:v().productId,lt=()=>v==null?void 0:v().dropdownClass;var we=Jt(),ye=t(we),Ee=t(ye);ze(Ee,{class:"mb-1 inline size-7"});var Be=n(Ee,2),it=t(Be);O(),o(Be),o(ye);var ke=n(ye,2),He=t(ke);{var dt=I=>{var x=Ce();y(T=>w(x,`${T??""} Droplets`),[()=>J().toLocaleString("en-US")]),d(I,x)};M(He,I=>{$()&&I(dt)})}var Ue=n(He,2),ct=t(Ue);o(Ue),o(ke);var pt=n(ke,2);{var vt=I=>{var x=Wt(),T=t(x),ee=t(T);o(T);var ve=n(T,2),te=t(ve),X=t(te),P=t(X);Ie(P);var D=n(P,2),oe=t(D);Yt(oe,{class:"inline size-5"}),O(2),o(D),o(X),o(te);var Ze=n(te,2),ue=t(Ze);ue.__click=[Vt,b,s,nt,c];var ft=t(ue);Qe(ft,{class:"size-5"}),O(2),o(ue),o(Ze),o(ve),o(x),y(bt=>{Je(x,1,`dropdown mt-3 ${lt()??""}`),w(ee,`R$${bt??""}`),ae(X,"action",`${Fe}/payment/create-checkout-session`),Le(P,Se()),D.disabled=_(s),ue.disabled=_(s)},[()=>(he()*4).toFixed(2).replace(".",",")]),fe("submit",X,()=>{L(s,!0),setTimeout(()=>L(s,!1),3e3)}),d(I,x)},ut=I=>{var x=Gt(),T=t(x);Ie(T);var ee=n(T,2),ve=t(ee);{var te=P=>{var D=Ce();y(oe=>w(D,`MX$ ${oe??""}`),[()=>(he()*18).toFixed(2)]),d(P,D)},X=P=>{var D=Ce();y(oe=>w(D,`$${oe??""}`),[()=>he().toFixed(2)]),d(P,D)};M(ve,P=>{_(u)?P(te):P(X,!1)})}o(ee),o(x),y(()=>{ae(x,"action",`${Fe}/payment/create-checkout-session`),Le(T,Se()),ee.disabled=_(s)}),fe("submit",x,()=>{L(s,!0),setTimeout(()=>L(s,!1),3e3)}),d(I,x)};M(pt,I=>{_(m)?I(vt):I(ut,!1)})}o(we),y((I,x)=>{w(it,`${I??""} `),w(ct,`+${x??""} bonus`)},[()=>(J()+$()).toLocaleString("en-US"),()=>$().toLocaleString("en-US")]),d(F,we)};var H=t(K),V=t(H);z(V,()=>({price:5,droplets:25e3,bonus:0,stripeLookupkey:"droplets_5",productId:10,dropdownClass:"dropdown-center"}));var ce=n(V,2);z(ce,()=>({price:15,droplets:75e3,bonus:3750,stripeLookupkey:"droplets_15",productId:20,dropdownClass:"dropdown-center"}));var W=n(ce,2);z(W,()=>({price:30,droplets:15e4,bonus:15e3,stripeLookupkey:"droplets_30",productId:30,dropdownClass:"dropdown-center"}));var G=n(W,2);z(G,()=>({price:50,droplets:25e4,bonus:37500,stripeLookupkey:"droplets_50",productId:40,dropdownClass:"dropdown-center"}));var pe=n(G,2);z(pe,()=>({price:75,droplets:375e3,bonus:75e3,stripeLookupkey:"droplets_75",productId:50,dropdownClass:"dropdown-center"}));var st=n(pe,2);z(st,()=>({price:100,droplets:5e5,bonus:125e3,stripeLookupkey:"droplets_100",productId:60,dropdownClass:"max-sm:dropdown-top dropdown-center"})),o(H);var De=n(H,2),Me=t(De),xe=n(Me),rt=t(xe,!0);o(xe),o(De),o(K),y((F,v,J,$)=>{w(Me,`${v??""} `),ae(xe,"href",J),w(rt,$)},[()=>Xe(),()=>je(),()=>Ne(Ae.url.origin),()=>Oe()])}o(g),y((z,F,v,J)=>w(Y,z),[()=>Xe(),()=>je(),()=>Ne(Ae.url.origin),()=>Oe()]),d(l,g)};M(S,l=>{se.data&&l(C)})}o(h);var q=n(h,2),E=t(q),Q=t(E,!0);o(E),o(q),o(f),gt(f,()=>l=>{mt(()=>{r()?l.show():l.close()})});var Z=n(f,2),Pe=t(Z),qe=n(t(Pe),2),ge=t(qe),Te=t(ge),et=t(Te);Qe(et,{class:"size-10"}),O(2),o(Te),o(ge);var tt=n(ge,2);{var ot=l=>{var g=oo(),B=me(g),R=n(t(B)),le=t(R);o(R),o(B);var A=n(B,2),ie=t(A),de=t(ie);O(2),o(ie),o(A);var Y=n(A,2),K=n(t(Y),2),H=t(K);Ie(H);var V=n(H,2),ce=t(V);ce.__click=[eo,c],o(V),o(K),o(Y);var W=n(Y,2),G=t(W);G.__click=[to,c,i],o(W),y(pe=>{w(le,`R$${pe??""}`),ae(de,"src",_(c).qrCode),Le(H,_(c).pixCode),G.disabled=_(i)},[()=>(_(c).price/100).toFixed(2).replace(".",",")]),d(l,g)},at=l=>{var g=ao();d(l,g)};M(tt,l=>{_(c)?l(ot):l(at,!1)})}o(qe),o(Pe),o(Z),ht(Z,l=>L(b,l),()=>_(b)),y(l=>w(Q,l),[()=>Pt()]),fe("close",f,()=>{r(!1)}),fe("close",Z,()=>{setTimeout(()=>{L(c,void 0)},300)}),d(a,p),We()}Ye(["click"]);var ro=N(''),no=N('');function Io(a,e){let r=ne(e,["$$slots","$$events","$$legacy","filled"]);var s=Ve(),m=me(s);{var u=c=>{var i=ro();j(i,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...r})),d(c,i)},b=c=>{var i=no();j(i,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...r})),d(c,i)};M(m,c=>{e.filled?c(u):c(b,!1)})}d(a,s)}function Lo([a,e],[r,s]){a=Math.floor(a),e=Math.floor(e),r=Math.floor(r),s=Math.floor(s);const m=[],u=Math.abs(r-a),b=Math.abs(s-e),c=a-b&&(p-=b,f+=c),S'),io=k('
        ');function zo(a,e){const r=_e(()=>e.level%1*360);var s=io(),m=n(t(s),2),u=n(m,2),b=t(u),c=t(b);{var i=C=>{kt(C,{get userId(){return e.userId}})},p=C=>{var q=lo();y(()=>ae(q,"src",e.pictureUrl)),d(C,q)};M(c,C=>{e.pictureUrl?C(p,!1):C(i)})}o(b),o(u);var f=n(u,2);let h;var S=t(f,!0);o(f),o(s),y((C,q)=>{xt(m,`--angle: ${_(r)??""}deg; --color: var(--color-secondary)`),h=Je(f,1,"text-primary-content bg-secondary absolute bottom-0 flex items-center justify-center rounded-full px-[5px] py-0 text-xs font-bold",null,h,C),w(S,q)},[()=>({"left-0":e.level>99,"-left-1":e.level>99}),()=>Math.floor(e.level)]),d(a,s)}export{Zt as A,Nt as D,Io as I,zo as P,ze as a,Co as b,yo as c,Pt as d,ko as e,Ne as f,Lo as r}; diff --git a/frontend-backup/_app/immutable/chunks/C3E1P42D.js b/frontend-backup/_app/immutable/chunks/C3E1P42D.js new file mode 100644 index 0000000..41a25ce --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/C3E1P42D.js @@ -0,0 +1,40 @@ +import { g as f } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "b6fedc18-c426-4b17-bf09-8644b91cab4b"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-b6fedc18-c426-4b17-bf09-8644b91cab4b")); + })(); +} catch {} +const t = () => "Refresh", + d = () => "Atualizar", + l = (e = {}, n = {}) => ((n.locale ?? f()) === "en" ? t() : d()); +export { l as r }; diff --git a/frontend-backup/_app/immutable/chunks/C4yB2Gnm.js b/frontend-backup/_app/immutable/chunks/C4yB2Gnm.js new file mode 100644 index 0000000..134aa66 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/C4yB2Gnm.js @@ -0,0 +1,40 @@ +import { g as o } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "a39ce8e6-c68e-4670-97d0-cab3082bdbf7"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-a39ce8e6-c68e-4670-97d0-cab3082bdbf7")); + })(); +} catch {} +const d = () => "Confirm", + f = () => "Confirmar", + i = (e = {}, n = {}) => ((n.locale ?? o()) === "en" ? d() : f()); +export { i as c }; diff --git a/frontend-backup/_app/immutable/chunks/C5GsJ62f.js b/frontend-backup/_app/immutable/chunks/C5GsJ62f.js deleted file mode 100644 index 2e956da..0000000 --- a/frontend-backup/_app/immutable/chunks/C5GsJ62f.js +++ /dev/null @@ -1,80 +0,0 @@ -const f = ["en", "zh", "zh-cn", "zh-tw"], -g = "PARAGLIDE_LOCALE", - u = ["localStorage", "preferredLanguage", "baseLocale"]; -globalThis.__paraglide = {}; -let i = !1, - h = () => { - let e; - for (const t of u) { - if (t === "baseLocale") e = "en"; - else if (t === "preferredLanguage") e = w(); - else if (t === "localStorage") e = localStorage.getItem(g) ?? void 0; - else if (d(t) && r.has(t)) { - const o = r.get(t); - if (o) { - const a = o.getLocale(); - if (a instanceof Promise) continue; - e = a - } - } - if (e !== void 0) { - const o = p(e); - return i || (i = !0, m(o, { - reload: !1 - })), o - } - } - throw new Error("No locale found. Read the docs https://inlang.com/m/gerre34r/library-inlang-paraglideJs/errors#no-locale-found") - }, - m = (e, t) => { - const o = { - reload: !0, - ...t - }; - let a; - try { - a = h() - } catch {} - for (const l of u) - if (l !== "baseLocale") { - if (l === "localStorage" && typeof window < "u") localStorage.setItem(g, e); - else if (d(l) && r.has(l)) { - const n = r.get(l); - if (n) { - const c = n.setLocale(e); - c instanceof Promise && c.catch(L => { - console.warn(`Custom strategy "${l}" setLocale failed:`, L) - }) - } - } - } o.reload && window.location && e !== a && window.location.reload() - }; - -function s(e) { - return e ? f.includes(e) : !1 -} - -function p(e) { - if (s(e) === !1) throw new Error(`Invalid locale: ${e}. Expected one of: ${f.join(", ")}`); - return e -} - -function w() { - if (!navigator?.languages?.length) return "en"; - for (const lang of navigator.languages) { - const tag = lang.toLowerCase(); - if (tag.startsWith("zh")) { - return "zh"; - } - } - return "en"; -} - -const r = new Map; - -function d(e) { - return typeof e == "string" && /^custom-[A-Za-z0-9_-]+$/.test(e) -} -export { - h as g, g as l -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/chunks/C5yqZvKC.js b/frontend-backup/_app/immutable/chunks/C5yqZvKC.js new file mode 100644 index 0000000..4227a35 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/C5yqZvKC.js @@ -0,0 +1,482 @@ +import { + i as Y, + a5 as k, + k as G, + ac as P, + h as p, + a1 as Z, + b5 as Q, + J as W, + K as X, + G as m, + b6 as x, + b7 as rr, + b8 as fr, + b9 as ir, + g as er, + ba as ar, + bb as tr, + T as j, + bc as ur, + bd as sr, + at as or, + be as lr, + bf as nr, + aM as cr, + bg as dr, + bh as vr, + bi as br, +} from "./CMvZtFtm.js"; +(function () { + try { + var r = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + r.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var r = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + f = new r.Error().stack; + f && + ((r._sentryDebugIds = r._sentryDebugIds || {}), + (r._sentryDebugIds[f] = "3e064db4-a3f5-4fbb-9aa1-ead39619ee99"), + (r._sentryDebugIdIdentifier = + "sentry-dbid-3e064db4-a3f5-4fbb-9aa1-ead39619ee99")); + })(); +} catch {} +function gr(r, f) { + var i = void 0, + e; + Y(() => { + i !== (i = f()) && + (e && (k(e), (e = null)), + i && + (e = G(() => { + P(() => i(r)); + }))); + }); +} +function H(r) { + var f, + i, + e = ""; + if (typeof r == "string" || typeof r == "number") e += r; + else if (typeof r == "object") + if (Array.isArray(r)) { + var a = r.length; + for (f = 0; f < a; f++) + r[f] && (i = H(r[f])) && (e && (e += " "), (e += i)); + } else for (i in r) r[i] && (e && (e += " "), (e += i)); + return e; +} +function hr() { + for (var r, f, i = 0, e = "", a = arguments.length; i < a; i++) + (r = arguments[i]) && (f = H(r)) && (e && (e += " "), (e += f)); + return e; +} +function _r(r) { + return typeof r == "object" ? hr(r) : r ?? ""; +} +const q = [ + ...` +\r\f \v\uFEFF`, +]; +function Ar(r, f, i) { + var e = r == null ? "" : "" + r; + if ((f && (e = e ? e + " " + f : f), i)) { + for (var a in i) + if (i[a]) e = e ? e + " " + a : a; + else if (e.length) + for (var t = a.length, u = 0; (u = e.indexOf(a, u)) >= 0; ) { + var s = u + t; + (u === 0 || q.includes(e[u - 1])) && + (s === e.length || q.includes(e[s])) + ? (e = (u === 0 ? "" : e.substring(0, u)) + e.substring(s + 1)) + : (u = s); + } + } + return e === "" ? null : e; +} +function D(r, f = !1) { + var i = f ? " !important;" : ";", + e = ""; + for (var a in r) { + var t = r[a]; + t != null && t !== "" && (e += " " + a + ": " + t + i); + } + return e; +} +function C(r) { + return r[0] !== "-" || r[1] !== "-" ? r.toLowerCase() : r; +} +function Sr(r, f) { + if (f) { + var i = "", + e, + a; + if ((Array.isArray(f) ? ((e = f[0]), (a = f[1])) : (e = f), r)) { + r = String(r) + .replaceAll(/\s*\/\*.*?\*\/\s*/g, "") + .trim(); + var t = !1, + u = 0, + s = !1, + d = []; + e && d.push(...Object.keys(e).map(C)), + a && d.push(...Object.keys(a).map(C)); + var l = 0, + A = -1; + const b = r.length; + for (var v = 0; v < b; v++) { + var c = r[v]; + if ( + (s + ? c === "/" && r[v - 1] === "*" && (s = !1) + : t + ? t === c && (t = !1) + : c === "/" && r[v + 1] === "*" + ? (s = !0) + : c === '"' || c === "'" + ? (t = c) + : c === "(" + ? u++ + : c === ")" && u--, + !s && t === !1 && u === 0) + ) { + if (c === ":" && A === -1) A = v; + else if (c === ";" || v === b - 1) { + if (A !== -1) { + var y = C(r.substring(l, A).trim()); + if (!d.includes(y)) { + c !== ";" && v++; + var S = r.substring(l, v).trim(); + i += " " + S + ";"; + } + } + (l = v + 1), (A = -1); + } + } + } + } + return ( + e && (i += D(e)), + a && (i += D(a, !0)), + (i = i.trim()), + i === "" ? null : i + ); + } + return r == null ? null : String(r); +} +function pr(r, f, i, e, a, t) { + var u = r.__className; + if (p || u !== i || u === void 0) { + var s = Ar(i, e, t); + (!p || s !== r.getAttribute("class")) && + (s == null + ? r.removeAttribute("class") + : f + ? (r.className = s) + : r.setAttribute("class", s)), + (r.__className = i); + } else if (t && a !== t) + for (var d in t) { + var l = !!t[d]; + (a == null || l !== !!a[d]) && r.classList.toggle(d, l); + } + return t; +} +function M(r, f = {}, i, e) { + for (var a in i) { + var t = i[a]; + f[a] !== t && + (i[a] == null ? r.style.removeProperty(a) : r.style.setProperty(a, t, e)); + } +} +function yr(r, f, i, e) { + var a = r.__style; + if (p || a !== f) { + var t = Sr(f, e); + (!p || t !== r.getAttribute("style")) && + (t == null ? r.removeAttribute("style") : (r.style.cssText = t)), + (r.__style = f); + } else + e && + (Array.isArray(e) + ? (M(r, i == null ? void 0 : i[0], e[0]), + M(r, i == null ? void 0 : i[1], e[1], "important")) + : M(r, i, e)); + return e; +} +function I(r, f, i = !1) { + if (r.multiple) { + if (f == null) return; + if (!Z(f)) return Q(); + for (var e of r.options) e.selected = f.includes(w(e)); + return; + } + for (e of r.options) { + var a = w(e); + if (W(a, f)) { + e.selected = !0; + return; + } + } + (!i || f !== void 0) && (r.selectedIndex = -1); +} +function K(r) { + var f = new MutationObserver(() => { + I(r, r.__value); + }); + f.observe(r, { + childList: !0, + subtree: !0, + attributes: !0, + attributeFilter: ["value"], + }), + X(() => { + f.disconnect(); + }); +} +function wr(r, f, i = f) { + var e = !0; + m(r, "change", (a) => { + var t = a ? "[selected]" : ":checked", + u; + if (r.multiple) u = [].map.call(r.querySelectorAll(t), w); + else { + var s = r.querySelector(t) ?? r.querySelector("option:not([disabled])"); + u = s && w(s); + } + i(u); + }), + P(() => { + var a = f(); + if ((I(r, a, e), e && a === void 0)) { + var t = r.querySelector(":checked"); + t !== null && ((a = w(t)), i(a)); + } + (r.__value = a), (e = !1); + }), + K(r); +} +function w(r) { + return "__value" in r ? r.__value : r.value; +} +const E = Symbol("class"), + N = Symbol("style"), + V = Symbol("is custom element"), + B = Symbol("is html"); +function Ir(r) { + if (p) { + var f = !1, + i = () => { + if (!f) { + if (((f = !0), r.hasAttribute("value"))) { + var e = r.value; + L(r, "value", null), (r.value = e); + } + if (r.hasAttribute("checked")) { + var a = r.checked; + L(r, "checked", null), (r.checked = a); + } + } + }; + (r.__on_r = i), dr(i), vr(); + } +} +function Lr(r, f) { + var i = R(r); + i.value === (i.value = f ?? void 0) || + (r.value === f && (f !== 0 || r.nodeName !== "PROGRESS")) || + (r.value = f ?? ""); +} +function Tr(r, f) { + f + ? r.hasAttribute("selected") || r.setAttribute("selected", "") + : r.removeAttribute("selected"); +} +function L(r, f, i, e) { + var a = R(r); + (p && + ((a[f] = r.getAttribute(f)), + f === "src" || + f === "srcset" || + (f === "href" && r.nodeName === "LINK"))) || + (a[f] !== (a[f] = i) && + (f === "loading" && (r[ir] = i), + i == null + ? r.removeAttribute(f) + : typeof i != "string" && z(r).includes(f) + ? (r[f] = i) + : r.setAttribute(f, i))); +} +function Er(r, f, i, e, a = !1) { + var t = R(r), + u = t[V], + s = !t[B]; + let d = p && u; + d && j(!1); + var l = f || {}, + A = r.tagName === "OPTION"; + for (var v in f) v in i || (i[v] = null); + i.class ? (i.class = _r(i.class)) : (e || i[E]) && (i.class = null), + i[N] && (i.style ?? (i.style = null)); + var c = z(r); + for (const o in i) { + let n = i[o]; + if (A && o === "value" && n == null) { + (r.value = r.__value = ""), (l[o] = n); + continue; + } + if (o === "class") { + var y = r.namespaceURI === "http://www.w3.org/1999/xhtml"; + pr(r, y, n, e, f == null ? void 0 : f[E], i[E]), + (l[o] = n), + (l[E] = i[E]); + continue; + } + if (o === "style") { + yr(r, n, f == null ? void 0 : f[N], i[N]), (l[o] = n), (l[N] = i[N]); + continue; + } + var S = l[o]; + if (!(n === S && !(n === void 0 && r.hasAttribute(o)))) { + l[o] = n; + var b = o[0] + o[1]; + if (b !== "$$") + if (b === "on") { + const _ = {}, + T = "$$" + o; + let g = o.slice(2); + var O = br(g); + if ((ur(g) && ((g = g.slice(0, -7)), (_.capture = !0)), !O && S)) { + if (n != null) continue; + r.removeEventListener(g, l[T], _), (l[T] = null); + } + if (n != null) + if (O) (r[`__${g}`] = n), or([g]); + else { + let F = function (J) { + l[o].call(this, J); + }; + l[T] = sr(g, r, F, _); + } + else O && (r[`__${g}`] = void 0); + } else if (o === "style") L(r, o, n); + else if (o === "autofocus") lr(r, !!n); + else if (!u && (o === "__value" || (o === "value" && n != null))) + r.value = r.__value = n; + else if (o === "selected" && A) Tr(r, n); + else { + var h = o; + s || (h = nr(h)); + var $ = h === "defaultValue" || h === "defaultChecked"; + if (n == null && !u && !$) + if (((t[o] = null), h === "value" || h === "checked")) { + let _ = r; + const T = f === void 0; + if (h === "value") { + let g = _.defaultValue; + _.removeAttribute(h), + (_.defaultValue = g), + (_.value = _.__value = T ? g : null); + } else { + let g = _.defaultChecked; + _.removeAttribute(h), + (_.defaultChecked = g), + (_.checked = T ? g : !1); + } + } else r.removeAttribute(o); + else + $ || (c.includes(h) && (u || typeof n != "string")) + ? ((r[h] = n), h in t && (t[h] = cr)) + : typeof n != "function" && L(r, h, n); + } + } + } + return d && j(!0), l; +} +function Or(r, f, i = [], e = [], a, t = !1) { + x(i, e, (u) => { + var s = void 0, + d = {}, + l = r.nodeName === "SELECT", + A = !1; + if ( + (Y(() => { + var c = f(...u.map(er)), + y = Er(r, s, c, a, t); + A && l && "value" in c && I(r, c.value); + for (let b of Object.getOwnPropertySymbols(d)) c[b] || k(d[b]); + for (let b of Object.getOwnPropertySymbols(c)) { + var S = c[b]; + b.description === ar && + (!s || S !== s[b]) && + (d[b] && k(d[b]), (d[b] = G(() => gr(r, () => S)))), + (y[b] = S); + } + s = y; + }), + l) + ) { + var v = r; + P(() => { + I(v, s.value, !0), K(v); + }); + } + A = !0; + }); +} +function R(r) { + return ( + r.__attributes ?? + (r.__attributes = { + [V]: r.nodeName.includes("-"), + [B]: r.namespaceURI === rr, + }) + ); +} +var U = new Map(); +function z(r) { + var f = U.get(r.nodeName); + if (f) return f; + U.set(r.nodeName, (f = [])); + for (var i, e = r, a = Element.prototype; a !== e; ) { + i = tr(e); + for (var t in i) i[t].set && f.push(t); + e = fr(e); + } + return f; +} +export { + E as C, + N as S, + pr as a, + Or as b, + _r as c, + wr as d, + yr as e, + gr as f, + Lr as g, + hr as h, + Ir as r, + L as s, +}; diff --git a/frontend-backup/_app/immutable/chunks/CAQlJ3np.js b/frontend-backup/_app/immutable/chunks/CAQlJ3np.js deleted file mode 100644 index 4cbce82..0000000 --- a/frontend-backup/_app/immutable/chunks/CAQlJ3np.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s}from"./DklPLC_x.js";import"./B2cHk4HI.js";import{p as O,g as o,u as R,aw as w,au as j,y as k,f as g,d as c,s as x,bj as C,r as l,t as v,b,c as N}from"./BDALf20I.js";import{s as h}from"./4k6DpCgf.js";import{p as S,i as q,r as Y}from"./Bke_korE.js";import{b as z,C as B}from"./BNZUboE0.js";import{b as F}from"./DS58drb5.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="832b2d91-c507-495d-8a1f-d5c91dd6acad",t._sentryDebugIdIdentifier="sentry-dbid-832b2d91-c507-495d-8a1f-d5c91dd6acad")})()}catch{}const G=()=>"Select the reason",H=()=>"Selecione o motivo",xe=(t={},e={})=>(e.locale??s())==="en"?G():H(),J=()=>"Other",K=()=>"Outro motivo",ve=(t={},e={})=>(e.locale??s())==="en"?J():K(),P=()=>"Extra context on what happened (required)",Q=()=>"Mais informações sobre o que aconteceu (obrigatório)",be=(t={},e={})=>(e.locale??s())==="en"?P():Q(),U=()=>"Select the report reason",V=()=>"Selecione o motivo da denúncia",he=(t={},e={})=>(e.locale??s())==="en"?U():V(),W=()=>"Required",X=()=>"Obrigatório",Z=(t={},e={})=>(e.locale??s())==="en"?W():X(),$=t=>`Min. characters: ${t.min}`,ee=t=>`Mínimo de caracteres: ${t.min}`,te=(t,e={})=>(e.locale??s())==="en"?$(t):ee(t),ae=t=>`Max. characters: ${t.max}`,re=t=>`Máximo de caracteres: ${t.max}`,ne=(t,e={})=>(e.locale??s())==="en"?ae(t):re(t);var se=g(' '),oe=g(' '),ce=g('
        ');function ge(t,e){O(e,!0);let r=S(e,"value",15),E=S(e,"validate",15),I=Y(e,["$$slots","$$events","$$legacy","label","placeholder","value","max","min","validate"]),i=j("");const d=R(()=>{var a;return((a=r())==null?void 0:a.length)??0});E(T);function T(){return e.min!==void 0&&o(d)e.max?(w(i,ne({max:e.max}),!0),!1):!0}k(()=>{var a;e.max!==void 0&&o(d)>e.max&&r((a=r())==null?void 0:a.substring(0,e.max))});var f=ce(),y=c(f);{var L=a=>{var n=se(),m=c(n,!0);l(n),v(()=>h(m,e.label)),b(a,n)};q(y,a=>{e.label&&a(L)})}var u=x(y,2);C(u),z(u,a=>({...I,class:`textarea w-full ${e.class??""}`,placeholder:e.placeholder,[B]:a}),[()=>({"textarea-error":!!o(i)})]);var p=x(u,2),_=c(p),M=c(_,!0);l(_);var D=x(_,2);{var A=a=>{var n=oe(),m=c(n,!0);l(n),v(()=>h(m,e.max-o(d))),b(a,n)};q(D,a=>{e.max!==void 0&&a(A)})}l(p),l(f),v(()=>h(M,o(i))),F(u,r),b(t,f),N()}export{ge as L,he as a,be as g,ve as o,xe as s}; diff --git a/frontend-backup/_app/immutable/chunks/CBqzI9hL.js b/frontend-backup/_app/immutable/chunks/CBqzI9hL.js deleted file mode 100644 index 41e26bd..0000000 --- a/frontend-backup/_app/immutable/chunks/CBqzI9hL.js +++ /dev/null @@ -1,665 +0,0 @@ -import { - bl as ze, - F as Se, - h as qe, - aW as _t, - ao as mt, - G as Re, - bb as bt, - k as G, - x as Xe, - bm as ht, - bn as gt, - q as R, - b as _, - an as We, - p as Qe, - aS as Ge, - a as pe, - c as Ke, - f as k, - d as o, - r as l, - s as d, - o as U, - t as z, - bj as ce, - w as xt, - A as b, - aR as ie, - aH as C, - aT as Le, - aU as wt -} from "./DUoKDNpf.js"; -import { - g as N -} from "./C5GsJ62f.js"; -import "./Bzak7iHL.js"; -import { - o as kt -} from "./ByKBPM-D.js"; -import { - s as I -} from "./g8c1BvYP.js"; -import { - r as Y, - p as Ne, - i as M -} from "./5NasrULQ.js"; -import { - a as A, - e as yt, - r as xe, - b as de, - f as we, - s as Ye, - d as Ct -} from "./B1GmkH4o.js"; -import { - b as Lt -} from "./CMs8vKjq.js"; -import { - g as Fe -} from "./KvV259my.js"; -import { - g as It, - u as ve, - t as K, - a as Je, - S as zt, - c as je -} from "./1lh-LSvX.js"; -import { - a as St -} from "./DsJqb9ei.js"; - -function Ca(e, t, a = t) { - var r = bt(), - i = new WeakSet; - ze(e, "input", c => { - var s = c ? e.defaultValue : e.value; - if (s = ye(e) ? Ce(s) : s, a(s), G !== null && i.add(G), r && s !== (s = t())) { - var f = e.selectionStart, - v = e.selectionEnd; - e.value = s ?? "", v !== null && (e.selectionStart = f, e.selectionEnd = Math.min(v, e.value.length)) - } - }), (qe && e.defaultValue !== e.value || Xe(t) == null && e.value) && (a(ye(e) ? Ce(e.value) : e.value), G !== null && i.add(G)), Se(() => { - var c = t(); - if (e === document.activeElement) { - var s = ht ?? G; - if (i.has(s)) return - } - ye(e) && c === Ce(e.value) || e.type === "date" && !c && !e.value || c !== e.value && (e.value = c ?? "") - }) -} -const ke = new Set; - -function La(e, t, a, r, i = r) { - var c = a.getAttribute("type") === "checkbox", - s = e; - let f = !1; - if (t !== null) - for (var v of t) s = s[v] ?? (s[v] = []); - s.push(a), ze(a, "change", () => { - var n = a.__value; - c && (n = Oe(s, n, a.checked)), i(n) - }, () => i(c ? [] : null)), Se(() => { - var n = r(); - if (qe && a.defaultChecked !== a.checked) { - f = !0; - return - } - c ? (n = n || [], a.checked = n.includes(a.__value)) : a.checked = _t(a.__value, n) - }), mt(() => { - var n = s.indexOf(a); - n !== -1 && s.splice(n, 1) - }), ke.has(s) || (ke.add(s), Re(() => { - s.sort((n, p) => n.compareDocumentPosition(p) === 4 ? -1 : 1), ke.delete(s) - })), Re(() => { - if (f) { - var n; - if (c) n = Oe(s, n, a.checked); - else { - var p = s.find(g => g.checked); - n = p == null ? void 0 : p.__value - } - i(n) - } - }) -} - -function Ia(e, t, a = t) { - ze(e, "change", r => { - var i = r ? e.defaultChecked : e.checked; - a(i) - }), (qe && e.defaultChecked !== e.checked || Xe(t) == null) && a(e.checked), Se(() => { - var r = t(); - e.checked = !!r - }) -} - -function Oe(e, t, a) { - for (var r = new Set, i = 0; i < e.length; i += 1) e[i].checked && r.add(e[i].__value); - return a || r.delete(t), Array.from(r) -} - -function ye(e) { - var t = e.type; - return t === "number" || t === "range" -} - -function Ce(e) { - return e === "" ? null : +e -} -const qt = gt, - Pt = () => "Add profile picture", - Dt = () => "添加头像", - za = (e = {}, t = {}) => (t.locale ?? N()) === "en" ? Pt() : Dt(), - Mt = () => "Cancel", - Tt = () => "取消", - Sa = (e = {}, t = {}) => (t.locale ?? N()) === "en" ? Mt() : Tt(), - Bt = () => "Close", - Et = () => "关闭", - Ht = (e = {}, t = {}) => (t.locale ?? N()) === "en" ? Bt() : Et(), - Zt = () => "You gain 1 droplet per pixel painted and 500 droplets per level", - Ut = () => "每绘制一个像素会获得一个水滴,每次升级会获得500水滴", - At = (e = {}, t = {}) => (t.locale ?? N()) === "en" ? Zt() : Ut(), - Rt = () => "Eraser", - Ft = () => "擦除", - Text3_EN = () => "Droplets", - Text3_CN = () => "水滴", - Text3 = (e = {}, t = {}) => (t.locale ?? N()) === "en" ? Text3_EN() : Text3_CN(), - Text4_EN = () => "bonus", - Text4_CN = () => "赠品", - Text4 = (e = {}, t = {}) => (t.locale ?? N()) === "en" ? Text4_EN() : Text4_CN(), - qa = (e = {}, t = {}) => (t.locale ?? N()) === "en" ? Rt() : Ft(); -var jt = R(''); - -function Ot(e, t) { - let a = Y(t, ["$$slots", "$$events", "$$legacy"]); - var r = jt(); - A(r, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), _(e, r) -} -var Vt = R(''); - -function Ie(e, t) { - let a = Y(t, ["$$slots", "$$events", "$$legacy"]); - var r = Vt(); - A(r, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), _(e, r) -} -var Xt = k(''), - Wt = k(' '+Text3()+' '), - Qt = k(''), - Gt = k(''); - -function Kt(e, t) { - Qe(t, !0); - const a = v => { - var n = Wt(), - p = o(n); - Ie(p, { - class: "text-primary size-4.5" - }); - var g = d(p, 2), - P = o(g); - U(), l(g); - var x = d(g, 2); - { - var S = T => { - var D = Xt(), - J = o(D); - Ot(J, { - class: "size-4" - }), l(D), _(T, D) - }; - M(x, T => { - r() && T(S) - }) - } - l(n), z(T => I(P, `${T??""} `), [() => t.value.toLocaleString("en-US")]), _(v, n) - }; - let r = Ne(t, "button", 3, !0); - var i = Ge(), - c = pe(i); - { - var s = v => { - var n = Qt(); - n.__click = () => { - It.dropletsDialogOpen = !0 - }; - var p = o(n); - a(p), l(n), _(v, n) - }, - f = v => { - var n = Gt(), - p = o(n); - a(p), l(n), _(v, n) - }; - M(c, v => { - r() ? v(s) : v(f, !1) - }) - } - _(e, i), Ke() -} -We(["click"]); -var Nt = R(''); - -function Yt(e, t) { - let a = Y(t, ["$$slots", "$$events", "$$legacy"]); - var r = Nt(); - A(r, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ...a - })), _(e, r) -} -var Jt = R(''); - -function Ve(e, t) { - let a = Y(t, ["$$slots", "$$events", "$$legacy"]); - var r = Jt(); - A(r, () => ({ - xmlns: "http://www.w3.org/2000/svg", - x: "0px", - y: "0px", - width: "100", - height: "100", - viewBox: "0 0 48 48", - ...a - })), _(e, r) -} -var $t = (e, t, a, r, i) => { - b(t).show(), C(a, !0), Je.generatePixQrCode(r()).then(c => { - C(i, c, !0) - }).catch(c => { - K.error(c.message) - }).finally(() => { - C(a, !1) - }) - }, - ea = k('
        '), - ta = k('
        '), - aa = k('

        '+Text3()+'

        '), - ra = k('

        '+Text3()+'

        '), - sa = (e, t) => { - var a; - navigator.clipboard.writeText(((a = b(t)) == null ? void 0 : a.pixCode) ?? ""), K.success("Código PIX copiado") - }, - oa = async (e, t, a) => { - var r, i, c; - if (!b(t)) { - K.info("Espere 1 minuto e recarrege a pagina"); - return - } - try { - C(a, !0); - const { - paid: s - } = await Je.getPixStatus(b(t).pixId); - if (s) { - const f = b(t).productId.toString(), - v = (c = (i = (r = zt.products[f]) == null ? void 0 : r.items) == null ? void 0 : i[0]) == null ? void 0 : c.amount; - await ve.refresh(), v ? Fe(`payment/success?droplets=${v}`) : Fe("payment/success") - } else K.info("Pagamento ainda não recebido. Desculpe a demora, tente novamente em instantes.", { - duration: 1e5 - }) - } catch (s) { - console.error(s), K.error("Error ao atualizar o status do pix. Tente recarregar a página.") - } finally { - C(a, !1) - } - }, la = k('

        Efetue o pagamento do PIX no valor de

        QR code PIX
        Código
        ', 1), na = k('
        '), ca = k(' ', 1); - -function Pa(e, t) { - Qe(t, !0); - let a = Ne(t, "open", 15), - r = ie(!1); - kt(() => { - const u = w => { - w.key === "Escape" && a(!1) - }; - return document.addEventListener("keydown", u), () => document.removeEventListener("keydown", u) - }); - const i = Le(() => { - var u, w; - return ((w = (u = ve.data) == null ? void 0 : u.country) == null ? void 0 : w.toUpperCase()) === "BR" - }); - let c = ie(null), - s = ie(void 0), - f = ie(!1); - var v = ca(), - n = pe(v), - p = o(n), - g = d(o(p), 2); - { - var P = u => { - var w = ra(), - B = o(w), - E = o(B), - $ = o(E); - Ie($, { - class: "text-primary size-6" - }); - var H = d($, 4), - ee = o(H); - { - let L = Le(() => { - var se; - return ((se = ve.data) == null ? void 0 : se.droplets) ?? 0 - }); - Kt(ee, { - get value() { - return b(L) - }, - button: !1 - }) - } - l(H), l(E); - var te = d(E, 2), - F = o(te, !0); - l(te), l(B); - var j = d(B, 2); - { - const L = (se, m) => { - let Me = () => m == null ? void 0 : m().droplets, - fe = () => m == null ? void 0 : m().bonus, - Te = () => m == null ? void 0 : m().price, - Be = () => m == null ? void 0 : m().stripeLookupkey, - st = () => m == null ? void 0 : m().productId, - ot = () => m == null ? void 0 : m().dropdownClass; - var _e = aa(), - me = o(_e), - Ee = o(me); - Ie(Ee, { - class: "mb-1 inline size-7" - }); - var He = d(Ee, 2), - lt = o(He); - U(), l(He), l(me); - var be = d(me, 2), - Ze = o(be); - { - var nt = y => { - var h = wt(); - z(q => I(h, `${q??""} ` + Text3()), [() => Me().toLocaleString("en-US")]), _(y, h) - }; - M(Ze, y => { - fe() && y(nt) - }) - } - var Ue = d(Ze, 2), - ct = o(Ue); - l(Ue), l(be); - var it = d(be, 2); - { - var dt = y => { - var h = ea(), - q = o(h), - W = o(q); - l(q); - var oe = d(q, 2), - Q = o(oe), - le = o(Q), - he = o(le); - xe(he); - var ge = d(he, 2), - pt = o(ge); - Yt(pt, { - class: "inline size-5" - }), U(2), l(ge), l(le), l(Q); - var Ae = d(Q, 2), - ne = o(Ae); - ne.__click = [$t, c, r, st, s]; - var ut = o(ne); - Ve(ut, { - class: "size-5" - }), U(2), l(ne), l(Ae), l(oe), l(h), z(ft => { - Ye(h, 1, `dropdown mt-3 ${ot()??""}`), I(W, `R$${ft??""}`), de(le, "action", `${je}/payment/create-checkout-session`), we(he, Be()), ge.disabled = b(r), ne.disabled = b(r) - }, [() => (Te() * 4).toFixed(2).replace(".", ",")]), ce("submit", le, () => { - C(r, !0), setTimeout(() => C(r, !1), 3e3) - }), _(y, h) - }, - vt = y => { - var h = ta(), - q = o(h); - xe(q); - var W = d(q, 2), - oe = o(W); - l(W), l(h), z(Q => { - de(h, "action", `${je}/payment/create-checkout-session`), we(q, Be()), W.disabled = b(r), I(oe, `¥ ${Q??""}`) - }, [() => Te().toFixed(2)]), ce("submit", h, () => { - C(r, !0), setTimeout(() => C(r, !1), 3e3) - }), _(y, h) - }; - M(it, y => { - b(i) || qt ? y(dt) : y(vt, !1) - }) - } - l(_e), z((y, h) => { - I(lt, `${y??""} `), I(ct, `+${h??""} ` + Text4()) - }, [() => (Me() + fe()).toLocaleString("en-US"), () => fe().toLocaleString("en-US")]), _(se, _e) - }; - var Z = o(j), - O = o(Z); - L(O, () => ({ - price: 5, - droplets: 25e3, - bonus: 0, - stripeLookupkey: "droplets_5", - productId: 10, - dropdownClass: "dropdown-center" - })); - var ae = d(O, 2); - L(ae, () => ({ - price: 15, - droplets: 75e3, - bonus: 3750, - stripeLookupkey: "droplets_15", - productId: 20, - dropdownClass: "dropdown-center" - })); - var V = d(ae, 2); - L(V, () => ({ - price: 30, - droplets: 15e4, - bonus: 15e3, - stripeLookupkey: "droplets_30", - productId: 30, - dropdownClass: "dropdown-center" - })); - var X = d(V, 2); - L(X, () => ({ - price: 50, - droplets: 25e4, - bonus: 37500, - stripeLookupkey: "droplets_50", - productId: 40, - dropdownClass: "dropdown-center" - })); - var re = d(X, 2); - L(re, () => ({ - price: 75, - droplets: 375e3, - bonus: 75e3, - stripeLookupkey: "droplets_75", - productId: 50, - dropdownClass: "dropdown-center" - })); - var rt = d(re, 2); - L(rt, () => ({ - price: 100, - droplets: 5e5, - bonus: 125e3, - stripeLookupkey: "droplets_100", - productId: 60, - dropdownClass: "max-sm:dropdown-top dropdown-center" - })), l(Z), l(j) - } - l(w), z(L => I(F, L), [() => At()]), _(u, w) - }; - M(g, u => { - ve.data && u(P) - }) - } - l(p); - var x = d(p, 2), - S = o(x), - T = o(S, !0); - l(S), l(x), l(n), yt(n, () => u => { - xt(() => { - a() ? u.show() : u.close() - }) - }); - var D = d(n, 2), - J = o(D), - Pe = d(o(J), 2), - ue = o(Pe), - De = o(ue), - $e = o(De); - Ve($e, { - class: "size-10" - }), U(2), l(De), l(ue); - var et = d(ue, 2); - { - var tt = u => { - var w = la(), - B = pe(w), - E = d(o(B)), - $ = o(E); - l(E), l(B); - var H = d(B, 2), - ee = o(H), - te = o(ee); - U(2), l(ee), l(H); - var F = d(H, 2), - j = d(o(F), 2), - Z = o(j); - xe(Z); - var O = d(Z, 2), - ae = o(O); - ae.__click = [sa, s], l(O), l(j), l(F); - var V = d(F, 2), - X = o(V); - X.__click = [oa, s, f], l(V), z(re => { - I($, `R$${re??""}`), de(te, "src", b(s).qrCode), we(Z, b(s).pixCode), X.disabled = b(f) - }, [() => (b(s).price / 100).toFixed(2).replace(".", ",")]), _(u, w) - }, - at = u => { - var w = na(); - _(u, w) - }; - M(et, u => { - b(s) ? u(tt) : u(at, !1) - }) - } - l(Pe), l(J), l(D), Lt(D, u => C(c, u), () => b(c)), z(u => I(T, u), [() => Ht()]), ce("close", n, () => { - a(!1) - }), ce("close", D, () => { - setTimeout(() => { - C(s, void 0) - }, 300) - }), _(e, v), Ke() -} -We(["click"]); -var ia = R(''), - da = R(''); - -function Da(e, t) { - let a = Y(t, ["$$slots", "$$events", "$$legacy", "filled"]); - var r = Ge(), - i = pe(r); - { - var c = f => { - var v = ia(); - A(v, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), _(f, v) - }, - s = f => { - var v = da(); - A(v, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), _(f, v) - }; - M(i, f => { - t.filled ? f(c) : f(s, !1) - }) - } - _(e, r) -} - -function Ma([e, t], [a, r]) { - e = Math.floor(e), t = Math.floor(t), a = Math.floor(a), r = Math.floor(r); - const i = [], - c = Math.abs(a - e), - s = Math.abs(r - t), - f = e < a ? 1 : -1, - v = t < r ? 1 : -1; - let n = c - s, - p = e, - g = t; - for (; i.push([p, g]), !(p === a && g === r);) { - const P = 2 * n; - P > -s && (n -= s, p += f), P < c && (n += c, g += v) - } - return i -} -var va = k('User profile'), - pa = k('
        '); - -function Ta(e, t) { - const a = Le(() => t.level % 1 * 360); - var r = pa(), - i = d(o(r), 2), - c = d(i, 2), - s = o(c), - f = o(s); - { - var v = x => { - St(x, { - get userId() { - return t.userId - } - }) - }, - n = x => { - var S = va(); - z(() => de(S, "src", t.pictureUrl)), _(x, S) - }; - M(f, x => { - t.pictureUrl ? x(n, !1) : x(v) - }) - } - l(s), l(c); - var p = d(c, 2); - let g; - var P = o(p, !0); - l(p), l(r), z((x, S) => { - Ct(i, `--angle: ${b(a)??""}deg; --color: var(--color-secondary)`), g = Ye(p, 1, "text-primary-content bg-secondary absolute bottom-0 flex items-center justify-center rounded-full px-[5px] py-0 text-xs font-bold", null, g, x), I(P, S) - }, [() => ({ - "left-0": t.level > 99, - "-left-1": t.level > 99 - }), () => Math.floor(t.level)]), _(e, r) -} -export { - Ot as A, Kt as D, Da as I, Ta as P, Ie as a, Pa as b, za as c, Sa as d, qa as e, Ht as f, Ca as g, La as h, qt as i, Ia as j, Ma as r -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/chunks/CDZgL_Bh.js b/frontend-backup/_app/immutable/chunks/CDZgL_Bh.js deleted file mode 100644 index 1b04119..0000000 --- a/frontend-backup/_app/immutable/chunks/CDZgL_Bh.js +++ /dev/null @@ -1 +0,0 @@ -import{g as c}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="476c3416-464c-44fb-9f2f-18bebc310382",e._sentryDebugIdIdentifier="sentry-dbid-476c3416-464c-44fb-9f2f-18bebc310382")})()}catch{}const o=()=>"Cancel",t=()=>"Cancelar",d=(e={},n={})=>(n.locale??c())==="en"?o():t();export{d as c}; diff --git a/frontend-backup/_app/immutable/chunks/CHGjpGz-.js b/frontend-backup/_app/immutable/chunks/CHGjpGz-.js new file mode 100644 index 0000000..5d69997 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CHGjpGz-.js @@ -0,0 +1,40 @@ +import { g as c } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "476c3416-464c-44fb-9f2f-18bebc310382"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-476c3416-464c-44fb-9f2f-18bebc310382")); + })(); +} catch {} +const o = () => "Cancel", + t = () => "Cancelar", + l = (e = {}, n = {}) => ((n.locale ?? c()) === "en" ? o() : t()); +export { l as c }; diff --git a/frontend-backup/_app/immutable/chunks/CMs8vKjq.js b/frontend-backup/_app/immutable/chunks/CMs8vKjq.js deleted file mode 100644 index 8f447cb..0000000 --- a/frontend-backup/_app/immutable/chunks/CMs8vKjq.js +++ /dev/null @@ -1,27 +0,0 @@ -import { D as S, F as h, x as k, G as x, S as T } from "./DUoKDNpf.js"; -function t(r, i) { - return r === i || (r == null ? void 0 : r[T]) === i; -} -function A(r = {}, i, a, c) { - return ( - S(() => { - var f, s; - return ( - h(() => { - (f = s), - (s = []), - k(() => { - r !== a(...s) && (i(r, ...s), f && t(a(...f), r) && i(null, ...f)); - }); - }), - () => { - x(() => { - s && t(a(...s), r) && i(null, ...s); - }); - } - ); - }), - r - ); -} -export { A as b }; diff --git a/frontend-backup/_app/immutable/chunks/CMvZtFtm.js b/frontend-backup/_app/immutable/chunks/CMvZtFtm.js new file mode 100644 index 0000000..b2634df --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CMvZtFtm.js @@ -0,0 +1,1988 @@ +var bn = Object.defineProperty; +var Ee = (t) => { + throw TypeError(t); +}; +var gn = (t, e, n) => + e in t + ? bn(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) + : (t[e] = n); +var kt = (t, e, n) => gn(t, typeof e != "symbol" ? e + "" : e, n), + Jt = (t, e, n) => e.has(t) || Ee("Cannot " + n); +var d = (t, e, n) => ( + Jt(t, e, "read from private field"), n ? n.call(t) : e.get(t) + ), + k = (t, e, n) => + e.has(t) + ? Ee("Cannot add the same private member more than once") + : e instanceof WeakSet + ? e.add(t) + : e.set(t, n), + R = (t, e, n, r) => ( + Jt(t, e, "write to private field"), r ? r.call(t, n) : e.set(t, n), n + ), + Q = (t, e, n) => (Jt(t, e, "access private method"), n); +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "499cc772-9cbd-41eb-a7e0-ed5b7c59daca"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-499cc772-9cbd-41eb-a7e0-ed5b7c59daca")); + })(); +} catch {} +const De = !1; +var Pe = Array.isArray, + En = Array.prototype.indexOf, + Tr = Array.from, + ee = Object.defineProperty, + Nt = Object.getOwnPropertyDescriptor, + mn = Object.getOwnPropertyDescriptors, + Tn = Object.prototype, + An = Array.prototype, + Me = Object.getPrototypeOf, + me = Object.isExtensible; +function Ar(t) { + return typeof t == "function"; +} +const kr = () => {}; +function xr(t) { + return t(); +} +function Le(t) { + for (var e = 0; e < t.length; e++) t[e](); +} +function kn() { + var t, + e, + n = new Promise((r, a) => { + (t = r), (e = a); + }); + return { promise: n, resolve: t, reject: e }; +} +function Sr(t, e) { + if (Array.isArray(t)) return t; + if (!(Symbol.iterator in t)) return Array.from(t); + const n = []; + for (const r of t) if ((n.push(r), n.length === e)) break; + return n; +} +const N = 2, + le = 4, + $t = 8, + mt = 16, + Y = 32, + ft = 64, + Fe = 128, + C = 256, + Ht = 512, + m = 1024, + D = 2048, + Z = 4096, + K = 8192, + Tt = 16384, + fe = 32768, + qe = 65536, + Te = 1 << 17, + xn = 1 << 18, + oe = 1 << 19, + je = 1 << 20, + ne = 1 << 21, + ce = 1 << 22, + at = 1 << 23, + st = Symbol("$state"), + Ir = Symbol("legacy props"), + Nr = Symbol(""), + _e = new (class extends Error { + constructor() { + super(...arguments); + kt(this, "name", "StaleReactionError"); + kt( + this, + "message", + "The reaction that called `getAbortSignal()` was re-run or destroyed" + ); + } + })(), + ve = 3, + de = 8; +function Sn() { + throw new Error("https://svelte.dev/e/await_outside_boundary"); +} +function In(t) { + throw new Error("https://svelte.dev/e/lifecycle_outside_component"); +} +function Nn() { + throw new Error("https://svelte.dev/e/async_derived_orphan"); +} +function Rn(t) { + throw new Error("https://svelte.dev/e/effect_in_teardown"); +} +function On() { + throw new Error("https://svelte.dev/e/effect_in_unowned_derived"); +} +function Cn(t) { + throw new Error("https://svelte.dev/e/effect_orphan"); +} +function Dn() { + throw new Error("https://svelte.dev/e/effect_update_depth_exceeded"); +} +function Or() { + throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction"); +} +function Cr() { + throw new Error("https://svelte.dev/e/hydration_failed"); +} +function Dr(t) { + throw new Error("https://svelte.dev/e/lifecycle_legacy_only"); +} +function Pr(t) { + throw new Error("https://svelte.dev/e/props_invalid_value"); +} +function Pn() { + throw new Error("https://svelte.dev/e/state_descriptors_fixed"); +} +function Mn() { + throw new Error("https://svelte.dev/e/state_prototype_fixed"); +} +function Ln() { + throw new Error("https://svelte.dev/e/state_unsafe_mutation"); +} +const Mr = 1, + Lr = 2, + Fr = 4, + qr = 8, + jr = 16, + Yr = 1, + Hr = 2, + Ur = 4, + Br = 8, + Vr = 16, + Wr = 1, + $r = 2, + Gr = 4, + Fn = 1, + qn = 2, + jn = "[", + Yn = "[!", + Hn = "]", + he = {}, + E = Symbol(), + Kr = "http://www.w3.org/1999/xhtml", + zr = "@attach"; +function pe(t) { + console.warn("https://svelte.dev/e/hydration_mismatch"); +} +function Xr() { + console.warn("https://svelte.dev/e/select_multiple_invalid_value"); +} +let S = !1; +function Zr(t) { + S = t; +} +let y; +function yt(t) { + if (t === null) throw (pe(), he); + return (y = t); +} +function Ye() { + return yt(ot(y)); +} +function Jr(t) { + if (S) { + if (ot(y) !== null) throw (pe(), he); + y = t; + } +} +function Qr(t = 1) { + if (S) { + for (var e = t, n = y; e--; ) n = ot(n); + y = n; + } +} +function ta() { + for (var t = 0, e = y; ; ) { + if (e.nodeType === de) { + var n = e.data; + if (n === Hn) { + if (t === 0) return e; + t -= 1; + } else (n === jn || n === Yn) && (t += 1); + } + var r = ot(e); + e.remove(), (e = r); + } +} +function ea(t) { + if (!t || t.nodeType !== de) throw (pe(), he); + return t.data; +} +function He(t) { + return t === this.v; +} +function Un(t, e) { + return t != t + ? e == e + : t !== e || (t !== null && typeof t == "object") || typeof t == "function"; +} +function na(t, e) { + return t !== e; +} +function Ue(t) { + return !Un(t, this.v); +} +let Gt = !1, + Bn = !1; +function ra() { + Gt = !0; +} +let b = null; +function Ut(t) { + b = t; +} +function aa(t) { + return Kt().get(t); +} +function sa(t, e) { + return Kt().set(t, e), e; +} +function ia(t) { + return Kt().has(t); +} +function ua() { + return Kt(); +} +function la(t, e = !1, n) { + b = { + p: b, + c: null, + e: null, + s: t, + x: null, + l: Gt && !e ? { s: null, u: null, $: [] } : null, + }; +} +function fa(t) { + var e = b, + n = e.e; + if (n !== null) { + e.e = null; + for (var r of n) an(r); + } + return t !== void 0 && (e.x = t), (b = e.p), t ?? {}; +} +function Ft() { + return !Gt || (b !== null && b.l === null); +} +function Kt(t) { + return b === null && In(), b.c ?? (b.c = new Map(Vn(b) || void 0)); +} +function Vn(t) { + let e = t.p; + for (; e !== null; ) { + const n = e.c; + if (n !== null) return n; + e = e.p; + } + return null; +} +const Wn = new WeakMap(); +function $n(t) { + var e = v; + if (e === null) return (_.f |= at), t; + if ((e.f & fe) === 0) { + if ((e.f & Fe) === 0) throw (!e.parent && t instanceof Error && Be(t), t); + e.b.error(t); + } else we(t, e); +} +function we(t, e) { + for (; e !== null; ) { + if ((e.f & Fe) !== 0) + try { + e.b.error(t); + return; + } catch (n) { + t = n; + } + e = e.parent; + } + throw (t instanceof Error && Be(t), t); +} +function Be(t) { + const e = Wn.get(t); + e && + (ee(t, "message", { value: e.message }), + ee(t, "stack", { value: e.stack })); +} +const Gn = + typeof requestIdleCallback > "u" + ? (t) => setTimeout(t, 1) + : requestIdleCallback; +let Rt = [], + Ot = []; +function Ve() { + var t = Rt; + (Rt = []), Le(t); +} +function We() { + var t = Ot; + (Ot = []), Le(t); +} +function $e(t) { + Rt.length === 0 && queueMicrotask(Ve), Rt.push(t); +} +function oa(t) { + Ot.length === 0 && Gn(We), Ot.push(t); +} +function Kn() { + Rt.length > 0 && Ve(), Ot.length > 0 && We(); +} +function zn() { + for (var t = v.b; t !== null && !t.has_pending_snippet(); ) t = t.parent; + return t === null && Sn(), t; +} +function ye(t) { + var e = N | D, + n = _ !== null && (_.f & N) !== 0 ? _ : null; + return ( + v === null || (n !== null && (n.f & C) !== 0) ? (e |= C) : (v.f |= oe), + { + ctx: b, + deps: null, + effects: null, + equals: He, + f: e, + fn: t, + reactions: null, + rv: 0, + v: E, + wv: 0, + parent: n ?? v, + ac: null, + } + ); +} +function Xn(t, e) { + let n = v; + n === null && Nn(); + var r = n.b, + a = void 0, + s = ge(E), + u = null, + l = !_; + return ( + ur(() => { + try { + var i = t(); + } catch (h) { + i = Promise.reject(h); + } + var f = () => i; + (a = (u == null ? void 0 : u.then(f, f)) ?? Promise.resolve(i)), (u = a); + var o = g, + c = r.pending; + l && (r.update_pending_count(1), c || o.increment()); + const w = (h, p = void 0) => { + (u = null), + c || o.activate(), + p + ? p !== _e && ((s.f |= at), ie(s, p)) + : ((s.f & at) !== 0 && (s.f ^= at), ie(s, h)), + l && (r.update_pending_count(-1), c || o.decrement()), + ze(); + }; + if ((a.then(w, (h) => w(null, h || "unknown")), o)) + return () => { + queueMicrotask(() => o.neuter()); + }; + }), + new Promise((i) => { + function f(o) { + function c() { + o === a ? i(s) : f(a); + } + o.then(c, c); + } + f(a); + }) + ); +} +function ca(t) { + const e = ye(t); + return cn(e), e; +} +function Zn(t) { + const e = ye(t); + return (e.equals = Ue), e; +} +function Ge(t) { + var e = t.effects; + if (e !== null) { + t.effects = null; + for (var n = 0; n < e.length; n += 1) lt(e[n]); + } +} +function Jn(t) { + for (var e = t.parent; e !== null; ) { + if ((e.f & N) === 0) return e; + e = e.parent; + } + return null; +} +function be(t) { + var e, + n = v; + X(Jn(t)); + try { + Ge(t), (e = hn(t)); + } finally { + X(n); + } + return e; +} +function Ke(t) { + var e = be(t); + if ((t.equals(e) || ((t.v = e), (t.wv = vn())), !At)) + if (W !== null) W.set(t, t.v); + else { + var n = ($ || (t.f & C) !== 0) && t.deps !== null ? Z : m; + x(t, n); + } +} +function Qn(t, e, n) { + const r = Ft() ? ye : Zn; + if (e.length === 0) { + n(t.map(r)); + return; + } + var a = g, + s = v, + u = tr(), + l = zn(); + Promise.all(e.map((i) => Xn(i))) + .then((i) => { + a == null || a.activate(), u(); + try { + n([...t.map(r), ...i]); + } catch (f) { + (s.f & Tt) === 0 && we(f, s); + } + a == null || a.deactivate(), ze(); + }) + .catch((i) => { + l.error(i); + }); +} +function tr() { + var t = v, + e = _, + n = b; + return function () { + X(t), F(e), Ut(n); + }; +} +function ze() { + X(null), F(null), Ut(null); +} +const xt = new Set(); +let g = null, + Qt = null, + W = null, + Ae = new Set(), + Bt = []; +function Xe() { + const t = Bt.shift(); + Bt.length > 0 && queueMicrotask(Xe), t(); +} +let ut = [], + zt = null, + re = !1, + jt = !1; +var dt, ht, B, Dt, Pt, nt, pt, rt, V, wt, Mt, Lt, L, Ze, Yt, ae; +const Wt = class Wt { + constructor() { + k(this, L); + kt(this, "current", new Map()); + k(this, dt, new Map()); + k(this, ht, new Set()); + k(this, B, 0); + k(this, Dt, null); + k(this, Pt, !1); + k(this, nt, []); + k(this, pt, []); + k(this, rt, []); + k(this, V, []); + k(this, wt, []); + k(this, Mt, []); + k(this, Lt, []); + kt(this, "skipped_effects", new Set()); + } + process(e) { + var s; + (ut = []), (Qt = null); + var n = null; + if (xt.size > 1) { + (n = new Map()), (W = new Map()); + for (const [u, l] of this.current) + n.set(u, { v: u.v, wv: u.wv }), (u.v = l); + for (const u of xt) + if (u !== this) + for (const [l, i] of d(u, dt)) + n.has(l) || (n.set(l, { v: l.v, wv: l.wv }), (l.v = i)); + } + for (const u of e) Q(this, L, Ze).call(this, u); + if (d(this, nt).length === 0 && d(this, B) === 0) { + Q(this, L, ae).call(this); + var r = d(this, rt), + a = d(this, V); + R(this, rt, []), + R(this, V, []), + R(this, wt, []), + (Qt = g), + (g = null), + ke(r), + ke(a), + g === null ? (g = this) : xt.delete(this), + (s = d(this, Dt)) == null || s.resolve(); + } else + Q(this, L, Yt).call(this, d(this, rt)), + Q(this, L, Yt).call(this, d(this, V)), + Q(this, L, Yt).call(this, d(this, wt)); + if (n) { + for (const [u, { v: l, wv: i }] of n) u.wv <= i && (u.v = l); + W = null; + } + for (const u of d(this, nt)) vt(u); + for (const u of d(this, pt)) vt(u); + R(this, nt, []), R(this, pt, []); + } + capture(e, n) { + d(this, dt).has(e) || d(this, dt).set(e, n), this.current.set(e, e.v); + } + activate() { + g = this; + } + deactivate() { + (g = null), (Qt = null); + for (const e of Ae) if ((Ae.delete(e), e(), g !== null)) break; + } + neuter() { + R(this, Pt, !0); + } + flush() { + ut.length > 0 ? se() : Q(this, L, ae).call(this), + g === this && (d(this, B) === 0 && xt.delete(this), this.deactivate()); + } + increment() { + R(this, B, d(this, B) + 1); + } + decrement() { + if ((R(this, B, d(this, B) - 1), d(this, B) === 0)) { + for (const e of d(this, Mt)) x(e, D), gt(e); + for (const e of d(this, Lt)) x(e, Z), gt(e); + R(this, rt, []), R(this, V, []), this.flush(); + } else this.deactivate(); + } + add_callback(e) { + d(this, ht).add(e); + } + settled() { + return (d(this, Dt) ?? R(this, Dt, kn())).promise; + } + static ensure() { + if (g === null) { + const e = (g = new Wt()); + xt.add(g), + jt || + Wt.enqueue(() => { + g === e && e.flush(); + }); + } + return g; + } + static enqueue(e) { + Bt.length === 0 && queueMicrotask(Xe), Bt.unshift(e); + } +}; +(dt = new WeakMap()), + (ht = new WeakMap()), + (B = new WeakMap()), + (Dt = new WeakMap()), + (Pt = new WeakMap()), + (nt = new WeakMap()), + (pt = new WeakMap()), + (rt = new WeakMap()), + (V = new WeakMap()), + (wt = new WeakMap()), + (Mt = new WeakMap()), + (Lt = new WeakMap()), + (L = new WeakSet()), + (Ze = function (e) { + var o; + e.f ^= m; + for (var n = e.first; n !== null; ) { + var r = n.f, + a = (r & (Y | ft)) !== 0, + s = a && (r & m) !== 0, + u = s || (r & K) !== 0 || this.skipped_effects.has(n); + if (!u && n.fn !== null) { + if (a) n.f ^= m; + else if ((r & le) !== 0) d(this, V).push(n); + else if ((r & m) === 0) + if ((r & ce) !== 0) { + var l = (o = n.b) != null && o.pending ? d(this, pt) : d(this, nt); + l.push(n); + } else Zt(n) && ((n.f & mt) !== 0 && d(this, wt).push(n), vt(n)); + var i = n.first; + if (i !== null) { + n = i; + continue; + } + } + var f = n.parent; + for (n = n.next; n === null && f !== null; ) (n = f.next), (f = f.parent); + } + }), + (Yt = function (e) { + for (const n of e) + ((n.f & D) !== 0 ? d(this, Mt) : d(this, Lt)).push(n), x(n, m); + e.length = 0; + }), + (ae = function () { + if (!d(this, Pt)) for (const e of d(this, ht)) e(); + d(this, ht).clear(); + }); +let bt = Wt; +function er(t) { + var e = jt; + jt = !0; + try { + var n; + for (t && (se(), (n = t())); ; ) { + if ((Kn(), ut.length === 0 && (g == null || g.flush(), ut.length === 0))) + return (zt = null), n; + se(); + } + } finally { + jt = e; + } +} +function se() { + var t = _t; + re = !0; + try { + var e = 0; + for (Ne(!0); ut.length > 0; ) { + var n = bt.ensure(); + if (e++ > 1e3) { + var r, a; + nr(); + } + n.process(ut), G.clear(); + } + } finally { + (re = !1), Ne(t), (zt = null); + } +} +function nr() { + try { + Dn(); + } catch (t) { + we(t, zt); + } +} +let et = null; +function ke(t) { + var e = t.length; + if (e !== 0) { + for (var n = 0; n < e; ) { + var r = t[n++]; + if ( + (r.f & (Tt | K)) === 0 && + Zt(r) && + ((et = []), + vt(r), + r.deps === null && + r.first === null && + r.nodes_start === null && + (r.teardown === null && r.ac === null ? ln(r) : (r.fn = null)), + et.length > 0) + ) { + G.clear(); + for (const a of et) vt(a); + et = []; + } + } + et = null; + } +} +function gt(t) { + for (var e = (zt = t); e.parent !== null; ) { + e = e.parent; + var n = e.f; + if (re && e === v && (n & mt) !== 0) return; + if ((n & (ft | Y)) !== 0) { + if ((n & m) === 0) return; + e.f ^= m; + } + } + ut.push(e); +} +const G = new Map(); +function ge(t, e) { + var n = { f: 0, v: t, reactions: null, equals: He, rv: 0, wv: 0 }; + return n; +} +function U(t, e) { + const n = ge(t); + return cn(n), n; +} +function _a(t, e = !1, n = !0) { + var a; + const r = ge(t); + return ( + e || (r.equals = Ue), + Gt && + n && + b !== null && + b.l !== null && + ((a = b.l).s ?? (a.s = [])).push(r), + r + ); +} +function tt(t, e, n = !1) { + _ !== null && + (!M || (_.f & Te) !== 0) && + Ft() && + (_.f & (N | mt | ce | Te)) !== 0 && + !(A != null && A.includes(t)) && + Ln(); + let r = n ? St(e) : e; + return ie(t, r); +} +function ie(t, e) { + if (!t.equals(e)) { + var n = t.v; + At ? G.set(t, e) : G.set(t, n), (t.v = e); + var r = bt.ensure(); + r.capture(t, n), + (t.f & N) !== 0 && + ((t.f & D) !== 0 && be(t), x(t, (t.f & C) === 0 ? m : Z)), + (t.wv = vn()), + Je(t, D), + Ft() && + v !== null && + (v.f & m) !== 0 && + (v.f & (Y | ft)) === 0 && + (O === null ? _r([t]) : O.push(t)); + } + return e; +} +function te(t) { + tt(t, t.v + 1); +} +function Je(t, e) { + var n = t.reactions; + if (n !== null) + for (var r = Ft(), a = n.length, s = 0; s < a; s++) { + var u = n[s], + l = u.f; + if (!(!r && u === v)) { + var i = (l & D) === 0; + i && x(u, e), + (l & N) !== 0 + ? Je(u, Z) + : i && ((l & mt) !== 0 && et !== null && et.push(u), gt(u)); + } + } +} +function St(t) { + if (typeof t != "object" || t === null || st in t) return t; + const e = Me(t); + if (e !== Tn && e !== An) return t; + var n = new Map(), + r = Pe(t), + a = U(0), + s = it, + u = (l) => { + if (it === s) return l(); + var i = _, + f = it; + F(null), Oe(s); + var o = l(); + return F(i), Oe(f), o; + }; + return ( + r && n.set("length", U(t.length)), + new Proxy(t, { + defineProperty(l, i, f) { + (!("value" in f) || + f.configurable === !1 || + f.enumerable === !1 || + f.writable === !1) && + Pn(); + var o = n.get(i); + return ( + o === void 0 + ? (o = u(() => { + var c = U(f.value); + return n.set(i, c), c; + })) + : tt(o, f.value, !0), + !0 + ); + }, + deleteProperty(l, i) { + var f = n.get(i); + if (f === void 0) { + if (i in l) { + const o = u(() => U(E)); + n.set(i, o), te(a); + } + } else tt(f, E), te(a); + return !0; + }, + get(l, i, f) { + var h; + if (i === st) return t; + var o = n.get(i), + c = i in l; + if ( + (o === void 0 && + (!c || ((h = Nt(l, i)) != null && h.writable)) && + ((o = u(() => { + var p = St(c ? l[i] : E), + P = U(p); + return P; + })), + n.set(i, o)), + o !== void 0) + ) { + var w = It(o); + return w === E ? void 0 : w; + } + return Reflect.get(l, i, f); + }, + getOwnPropertyDescriptor(l, i) { + var f = Reflect.getOwnPropertyDescriptor(l, i); + if (f && "value" in f) { + var o = n.get(i); + o && (f.value = It(o)); + } else if (f === void 0) { + var c = n.get(i), + w = c == null ? void 0 : c.v; + if (c !== void 0 && w !== E) + return { enumerable: !0, configurable: !0, value: w, writable: !0 }; + } + return f; + }, + has(l, i) { + var w; + if (i === st) return !0; + var f = n.get(i), + o = (f !== void 0 && f.v !== E) || Reflect.has(l, i); + if ( + f !== void 0 || + (v !== null && (!o || ((w = Nt(l, i)) != null && w.writable))) + ) { + f === void 0 && + ((f = u(() => { + var h = o ? St(l[i]) : E, + p = U(h); + return p; + })), + n.set(i, f)); + var c = It(f); + if (c === E) return !1; + } + return o; + }, + set(l, i, f, o) { + var J; + var c = n.get(i), + w = i in l; + if (r && i === "length") + for (var h = f; h < c.v; h += 1) { + var p = n.get(h + ""); + p !== void 0 + ? tt(p, E) + : h in l && ((p = u(() => U(E))), n.set(h + "", p)); + } + if (c === void 0) + (!w || ((J = Nt(l, i)) != null && J.writable)) && + ((c = u(() => U(void 0))), tt(c, St(f)), n.set(i, c)); + else { + w = c.v !== E; + var P = u(() => St(f)); + tt(c, P); + } + var H = Reflect.getOwnPropertyDescriptor(l, i); + if ((H != null && H.set && H.set.call(o, f), !w)) { + if (r && typeof i == "string") { + var qt = n.get("length"), + ct = Number(i); + Number.isInteger(ct) && ct >= qt.v && tt(qt, ct + 1); + } + te(a); + } + return !0; + }, + ownKeys(l) { + It(a); + var i = Reflect.ownKeys(l).filter((c) => { + var w = n.get(c); + return w === void 0 || w.v !== E; + }); + for (var [f, o] of n) o.v !== E && !(f in l) && i.push(f); + return i; + }, + setPrototypeOf() { + Mn(); + }, + }) + ); +} +function xe(t) { + try { + if (t !== null && typeof t == "object" && st in t) return t[st]; + } catch {} + return t; +} +function va(t, e) { + return Object.is(xe(t), xe(e)); +} +var Se, rr, Qe, tn, en; +function da() { + if (Se === void 0) { + (Se = window), (rr = document), (Qe = /Firefox/.test(navigator.userAgent)); + var t = Element.prototype, + e = Node.prototype, + n = Text.prototype; + (tn = Nt(e, "firstChild").get), + (en = Nt(e, "nextSibling").get), + me(t) && + ((t.__click = void 0), + (t.__className = void 0), + (t.__attributes = null), + (t.__style = void 0), + (t.__e = void 0)), + me(n) && (n.__t = void 0); + } +} +function Et(t = "") { + return document.createTextNode(t); +} +function z(t) { + return tn.call(t); +} +function ot(t) { + return en.call(t); +} +function ha(t, e) { + if (!S) return z(t); + var n = z(y); + if (n === null) n = y.appendChild(Et()); + else if (e && n.nodeType !== ve) { + var r = Et(); + return n == null || n.before(r), yt(r), r; + } + return yt(n), n; +} +function pa(t, e) { + if (!S) { + var n = z(t); + return n instanceof Comment && n.data === "" ? ot(n) : n; + } + return y; +} +function wa(t, e = 1, n = !1) { + let r = S ? y : t; + for (var a; e--; ) (a = r), (r = ot(r)); + if (!S) return r; + if (n && (r == null ? void 0 : r.nodeType) !== ve) { + var s = Et(); + return r === null ? a == null || a.after(s) : r.before(s), yt(s), s; + } + return yt(r), r; +} +function ar(t) { + t.textContent = ""; +} +function ya() { + return !1; +} +function ba(t, e) { + if (e) { + const n = document.body; + (t.autofocus = !0), + $e(() => { + document.activeElement === n && t.focus(); + }); + } +} +function ga(t) { + S && z(t) !== null && ar(t); +} +let Ie = !1; +function sr() { + Ie || + ((Ie = !0), + document.addEventListener( + "reset", + (t) => { + Promise.resolve().then(() => { + var e; + if (!t.defaultPrevented) + for (const n of t.target.elements) + (e = n.__on_r) == null || e.call(n); + }); + }, + { capture: !0 } + )); +} +function Ea(t, e, n, r = !0) { + r && n(); + for (var a of e) t.addEventListener(a, n); + rn(() => { + for (var s of e) t.removeEventListener(s, n); + }); +} +function Xt(t) { + var e = _, + n = v; + F(null), X(null); + try { + return t(); + } finally { + F(e), X(n); + } +} +function ma(t, e, n, r = n) { + t.addEventListener(e, () => Xt(n)); + const a = t.__on_r; + a + ? (t.__on_r = () => { + a(), r(!0); + }) + : (t.__on_r = () => r(!0)), + sr(); +} +function nn(t) { + v === null && _ === null && Cn(), + _ !== null && (_.f & C) !== 0 && v === null && On(), + At && Rn(); +} +function ir(t, e) { + var n = e.last; + n === null + ? (e.last = e.first = t) + : ((n.next = t), (t.prev = n), (e.last = t)); +} +function q(t, e, n, r = !0) { + var a = v; + a !== null && (a.f & K) !== 0 && (t |= K); + var s = { + ctx: b, + deps: null, + nodes_start: null, + nodes_end: null, + f: t | D, + first: null, + fn: e, + last: null, + next: null, + parent: a, + b: a && a.b, + prev: null, + teardown: null, + transitions: null, + wv: 0, + ac: null, + }; + if (n) + try { + vt(s), (s.f |= fe); + } catch (i) { + throw (lt(s), i); + } + else e !== null && gt(s); + var u = + n && + s.deps === null && + s.first === null && + s.nodes_start === null && + s.teardown === null && + (s.f & oe) === 0; + if ( + !u && + r && + (a !== null && ir(s, a), _ !== null && (_.f & N) !== 0 && (t & ft) === 0) + ) { + var l = _; + (l.effects ?? (l.effects = [])).push(s); + } + return s; +} +function Ta() { + return _ !== null && !M; +} +function rn(t) { + const e = q($t, null, !1); + return x(e, m), (e.teardown = t), e; +} +function Aa(t) { + nn(); + var e = v.f, + n = !_ && (e & Y) !== 0 && (e & fe) === 0; + if (n) { + var r = b; + (r.e ?? (r.e = [])).push(t); + } else return an(t); +} +function an(t) { + return q(le | je, t, !1); +} +function ka(t) { + return nn(), q($t | je, t, !0); +} +function xa(t) { + bt.ensure(); + const e = q(ft, t, !0); + return (n = {}) => + new Promise((r) => { + n.outro + ? or(e, () => { + lt(e), r(void 0); + }) + : (lt(e), r(void 0)); + }); +} +function Sa(t) { + return q(le, t, !1); +} +function ur(t) { + return q(ce | oe, t, !0); +} +function Ia(t, e = 0) { + return q($t | e, t, !0); +} +function Na(t, e = [], n = []) { + Qn(e, n, (r) => { + q($t, () => t(...r.map(It)), !0); + }); +} +function Ra(t, e = 0) { + var n = q(mt | e, t, !0); + return n; +} +function Oa(t, e = !0) { + return q(Y, t, !0, e); +} +function sn(t) { + var e = t.teardown; + if (e !== null) { + const n = At, + r = _; + Re(!0), F(null); + try { + e.call(null); + } finally { + Re(n), F(r); + } + } +} +function un(t, e = !1) { + var n = t.first; + for (t.first = t.last = null; n !== null; ) { + const a = n.ac; + a !== null && + Xt(() => { + a.abort(_e); + }); + var r = n.next; + (n.f & ft) !== 0 ? (n.parent = null) : lt(n, e), (n = r); + } +} +function lr(t) { + for (var e = t.first; e !== null; ) { + var n = e.next; + (e.f & Y) === 0 && lt(e), (e = n); + } +} +function lt(t, e = !0) { + var n = !1; + (e || (t.f & xn) !== 0) && + t.nodes_start !== null && + t.nodes_end !== null && + (fr(t.nodes_start, t.nodes_end), (n = !0)), + un(t, e && !n), + Vt(t, 0), + x(t, Tt); + var r = t.transitions; + if (r !== null) for (const s of r) s.stop(); + sn(t); + var a = t.parent; + a !== null && a.first !== null && ln(t), + (t.next = + t.prev = + t.teardown = + t.ctx = + t.deps = + t.fn = + t.nodes_start = + t.nodes_end = + t.ac = + null); +} +function fr(t, e) { + for (; t !== null; ) { + var n = t === e ? null : ot(t); + t.remove(), (t = n); + } +} +function ln(t) { + var e = t.parent, + n = t.prev, + r = t.next; + n !== null && (n.next = r), + r !== null && (r.prev = n), + e !== null && + (e.first === t && (e.first = r), e.last === t && (e.last = n)); +} +function or(t, e) { + var n = []; + fn(t, n, !0), + cr(n, () => { + lt(t), e && e(); + }); +} +function cr(t, e) { + var n = t.length; + if (n > 0) { + var r = () => --n || e(); + for (var a of t) a.out(r); + } else e(); +} +function fn(t, e, n) { + if ((t.f & K) === 0) { + if (((t.f ^= K), t.transitions !== null)) + for (const u of t.transitions) (u.is_global || n) && e.push(u); + for (var r = t.first; r !== null; ) { + var a = r.next, + s = (r.f & qe) !== 0 || (r.f & Y) !== 0; + fn(r, e, s ? n : !1), (r = a); + } + } +} +function Ca(t) { + on(t, !0); +} +function on(t, e) { + if ((t.f & K) !== 0) { + (t.f ^= K), (t.f & m) === 0 && (x(t, D), gt(t)); + for (var n = t.first; n !== null; ) { + var r = n.next, + a = (n.f & qe) !== 0 || (n.f & Y) !== 0; + on(n, a ? e : !1), (n = r); + } + if (t.transitions !== null) + for (const s of t.transitions) (s.is_global || e) && s.in(); + } +} +let _t = !1; +function Ne(t) { + _t = t; +} +let At = !1; +function Re(t) { + At = t; +} +let _ = null, + M = !1; +function F(t) { + _ = t; +} +let v = null; +function X(t) { + v = t; +} +let A = null; +function cn(t) { + _ !== null && (A === null ? (A = [t]) : A.push(t)); +} +let T = null, + I = 0, + O = null; +function _r(t) { + O = t; +} +let _n = 1, + Ct = 0, + it = Ct; +function Oe(t) { + it = t; +} +let $ = !1; +function vn() { + return ++_n; +} +function Zt(t) { + var c; + var e = t.f; + if ((e & D) !== 0) return !0; + if ((e & Z) !== 0) { + var n = t.deps, + r = (e & C) !== 0; + if (n !== null) { + var a, + s, + u = (e & Ht) !== 0, + l = r && v !== null && !$, + i = n.length; + if ((u || l) && (v === null || (v.f & Tt) === 0)) { + var f = t, + o = f.parent; + for (a = 0; a < i; a++) + (s = n[a]), + (u || + !( + (c = s == null ? void 0 : s.reactions) != null && c.includes(f) + )) && + (s.reactions ?? (s.reactions = [])).push(f); + u && (f.f ^= Ht), l && o !== null && (o.f & C) === 0 && (f.f ^= C); + } + for (a = 0; a < i; a++) + if (((s = n[a]), Zt(s) && Ke(s), s.wv > t.wv)) return !0; + } + (!r || (v !== null && !$)) && x(t, m); + } + return !1; +} +function dn(t, e, n = !0) { + var r = t.reactions; + if (r !== null && !(A != null && A.includes(t))) + for (var a = 0; a < r.length; a++) { + var s = r[a]; + (s.f & N) !== 0 + ? dn(s, e, !1) + : e === s && (n ? x(s, D) : (s.f & m) !== 0 && x(s, Z), gt(s)); + } +} +function hn(t) { + var P; + var e = T, + n = I, + r = O, + a = _, + s = $, + u = A, + l = b, + i = M, + f = it, + o = t.f; + (T = null), + (I = 0), + (O = null), + ($ = (o & C) !== 0 && (M || !_t || _ === null)), + (_ = (o & (Y | ft)) === 0 ? t : null), + (A = null), + Ut(t.ctx), + (M = !1), + (it = ++Ct), + t.ac !== null && + (Xt(() => { + t.ac.abort(_e); + }), + (t.ac = null)); + try { + t.f |= ne; + var c = t.fn, + w = c(), + h = t.deps; + if (T !== null) { + var p; + if ((Vt(t, I), h !== null && I > 0)) + for (h.length = I + T.length, p = 0; p < T.length; p++) h[I + p] = T[p]; + else t.deps = h = T; + if (!$ || ((o & N) !== 0 && t.reactions !== null)) + for (p = I; p < h.length; p++) + ((P = h[p]).reactions ?? (P.reactions = [])).push(t); + } else h !== null && I < h.length && (Vt(t, I), (h.length = I)); + if (Ft() && O !== null && !M && h !== null && (t.f & (N | Z | D)) === 0) + for (p = 0; p < O.length; p++) dn(O[p], t); + return ( + a !== null && + a !== t && + (Ct++, O !== null && (r === null ? (r = O) : r.push(...O))), + (t.f & at) !== 0 && (t.f ^= at), + w + ); + } catch (H) { + return $n(H); + } finally { + (t.f ^= ne), + (T = e), + (I = n), + (O = r), + (_ = a), + ($ = s), + (A = u), + Ut(l), + (M = i), + (it = f); + } +} +function vr(t, e) { + let n = e.reactions; + if (n !== null) { + var r = En.call(n, t); + if (r !== -1) { + var a = n.length - 1; + a === 0 ? (n = e.reactions = null) : ((n[r] = n[a]), n.pop()); + } + } + n === null && + (e.f & N) !== 0 && + (T === null || !T.includes(e)) && + (x(e, Z), (e.f & (C | Ht)) === 0 && (e.f ^= Ht), Ge(e), Vt(e, 0)); +} +function Vt(t, e) { + var n = t.deps; + if (n !== null) for (var r = e; r < n.length; r++) vr(t, n[r]); +} +function vt(t) { + var e = t.f; + if ((e & Tt) === 0) { + x(t, m); + var n = v, + r = _t; + (v = t), (_t = !0); + try { + (e & mt) !== 0 ? lr(t) : un(t), sn(t); + var a = hn(t); + (t.teardown = typeof a == "function" ? a : null), (t.wv = _n); + var s; + De && Bn && (t.f & D) !== 0 && t.deps; + } finally { + (_t = r), (v = n); + } + } +} +async function Da() { + await Promise.resolve(), er(); +} +function Pa() { + return bt.ensure().settled(); +} +function It(t) { + var e = t.f, + n = (e & N) !== 0; + if (_ !== null && !M) { + var r = v !== null && (v.f & Tt) !== 0; + if (!r && !(A != null && A.includes(t))) { + var a = _.deps; + if ((_.f & ne) !== 0) + t.rv < Ct && + ((t.rv = Ct), + T === null && a !== null && a[I] === t + ? I++ + : T === null + ? (T = [t]) + : (!$ || !T.includes(t)) && T.push(t)); + else { + (_.deps ?? (_.deps = [])).push(t); + var s = t.reactions; + s === null ? (t.reactions = [_]) : s.includes(_) || s.push(_); + } + } + } else if (n && t.deps === null && t.effects === null) { + var u = t, + l = u.parent; + l !== null && (l.f & C) === 0 && (u.f ^= C); + } + if (At) { + if (G.has(t)) return G.get(t); + if (n) { + u = t; + var i = u.v; + return ( + (((u.f & m) === 0 && u.reactions !== null) || pn(u)) && (i = be(u)), + G.set(u, i), + i + ); + } + } else if (n) { + if (((u = t), W != null && W.has(u))) return W.get(u); + Zt(u) && Ke(u); + } + if ((t.f & at) !== 0) throw t.v; + return t.v; +} +function pn(t) { + if (t.v === E) return !0; + if (t.deps === null) return !1; + for (const e of t.deps) if (G.has(e) || ((e.f & N) !== 0 && pn(e))) return !0; + return !1; +} +function Ma(t) { + var e = M; + try { + return (M = !0), t(); + } finally { + M = e; + } +} +const dr = -7169; +function x(t, e) { + t.f = (t.f & dr) | e; +} +function La(t) { + if (!(typeof t != "object" || !t || t instanceof EventTarget)) { + if (st in t) ue(t); + else if (!Array.isArray(t)) + for (let e in t) { + const n = t[e]; + typeof n == "object" && n && st in n && ue(n); + } + } +} +function ue(t, e = new Set()) { + if ( + typeof t == "object" && + t !== null && + !(t instanceof EventTarget) && + !e.has(t) + ) { + e.add(t), t instanceof Date && t.getTime(); + for (let r in t) + try { + ue(t[r], e); + } catch {} + const n = Me(t); + if ( + n !== Object.prototype && + n !== Array.prototype && + n !== Map.prototype && + n !== Set.prototype && + n !== Date.prototype + ) { + const r = mn(n); + for (let a in r) { + const s = r[a].get; + if (s) + try { + s.call(t); + } catch {} + } + } + } +} +function Fa(t) { + return ( + t.endsWith("capture") && + t !== "gotpointercapture" && + t !== "lostpointercapture" + ); +} +const hr = [ + "beforeinput", + "click", + "change", + "dblclick", + "contextmenu", + "focusin", + "focusout", + "input", + "keydown", + "keyup", + "mousedown", + "mousemove", + "mouseout", + "mouseover", + "mouseup", + "pointerdown", + "pointermove", + "pointerout", + "pointerover", + "pointerup", + "touchend", + "touchmove", + "touchstart", +]; +function qa(t) { + return hr.includes(t); +} +const pr = { + formnovalidate: "formNoValidate", + ismap: "isMap", + nomodule: "noModule", + playsinline: "playsInline", + readonly: "readOnly", + defaultvalue: "defaultValue", + defaultchecked: "defaultChecked", + srcobject: "srcObject", + novalidate: "noValidate", + allowfullscreen: "allowFullscreen", + disablepictureinpicture: "disablePictureInPicture", + disableremoteplayback: "disableRemotePlayback", +}; +function ja(t) { + return (t = t.toLowerCase()), pr[t] ?? t; +} +const wr = ["touchstart", "touchmove"]; +function Ya(t) { + return wr.includes(t); +} +const yr = new Set(), + br = new Set(); +function wn(t, e, n, r = {}) { + function a(s) { + if ((r.capture || gr.call(e, s), !s.cancelBubble)) + return Xt(() => (n == null ? void 0 : n.call(this, s))); + } + return ( + t.startsWith("pointer") || t.startsWith("touch") || t === "wheel" + ? $e(() => { + e.addEventListener(t, a, r); + }) + : e.addEventListener(t, a, r), + a + ); +} +function Ha(t, e, n, r = {}) { + var a = wn(e, t, n, r); + return () => { + t.removeEventListener(e, a, r); + }; +} +function Ua(t, e, n, r, a) { + var s = { capture: r, passive: a }, + u = wn(t, e, n, s); + (e === document.body || + e === window || + e === document || + e instanceof HTMLMediaElement) && + rn(() => { + e.removeEventListener(t, u, s); + }); +} +function Ba(t) { + for (var e = 0; e < t.length; e++) yr.add(t[e]); + for (var n of br) n(t); +} +let Ce = null; +function gr(t) { + var ct; + var e = this, + n = e.ownerDocument, + r = t.type, + a = ((ct = t.composedPath) == null ? void 0 : ct.call(t)) || [], + s = a[0] || t.target; + Ce = t; + var u = 0, + l = Ce === t && t.__root; + if (l) { + var i = a.indexOf(l); + if (i !== -1 && (e === document || e === window)) { + t.__root = e; + return; + } + var f = a.indexOf(e); + if (f === -1) return; + i <= f && (u = i); + } + if (((s = a[u] || t.target), s !== e)) { + ee(t, "currentTarget", { + configurable: !0, + get() { + return s || n; + }, + }); + var o = _, + c = v; + F(null), X(null); + try { + for (var w, h = []; s !== null; ) { + var p = s.assignedSlot || s.parentNode || s.host || null; + try { + var P = s["__" + r]; + if (P != null && (!s.disabled || t.target === s)) + if (Pe(P)) { + var [H, ...qt] = P; + H.apply(s, [t, ...qt]); + } else P.call(s, t); + } catch (J) { + w ? h.push(J) : (w = J); + } + if (t.cancelBubble || p === e || p === null) break; + s = p; + } + if (w) { + for (let J of h) + queueMicrotask(() => { + throw J; + }); + throw w; + } + } finally { + (t.__root = e), delete t.currentTarget, F(o), X(c); + } + } +} +function yn(t) { + var e = document.createElement("template"); + return (e.innerHTML = t.replaceAll("", "")), e.content; +} +function j(t, e) { + var n = v; + n.nodes_start === null && ((n.nodes_start = t), (n.nodes_end = e)); +} +function Va(t, e) { + var n = (e & Fn) !== 0, + r = (e & qn) !== 0, + a, + s = !t.startsWith(""); + return () => { + if (S) return j(y, null), y; + a === void 0 && ((a = yn(s ? t : "" + t)), n || (a = z(a))); + var u = r || Qe ? document.importNode(a, !0) : a.cloneNode(!0); + if (n) { + var l = z(u), + i = u.lastChild; + j(l, i); + } else j(u, u); + return u; + }; +} +function Er(t, e, n = "svg") { + var r = !t.startsWith(""), + a = `<${n}>${r ? t : "" + t}`, + s; + return () => { + if (S) return j(y, null), y; + if (!s) { + var u = yn(a), + l = z(u); + s = z(l); + } + var i = s.cloneNode(!0); + return j(i, i), i; + }; +} +function Wa(t, e) { + return Er(t, e, "svg"); +} +function $a(t = "") { + if (!S) { + var e = Et(t + ""); + return j(e, e), e; + } + var n = y; + return n.nodeType !== ve && (n.before((n = Et())), yt(n)), j(n, n), n; +} +function Ga() { + if (S) return j(y, null), y; + var t = document.createDocumentFragment(), + e = document.createComment(""), + n = Et(); + return t.append(e, n), j(e, n), t; +} +function Ka(t, e) { + if (S) { + (v.nodes_end = y), Ye(); + return; + } + t !== null && t.before(e); +} +function za() { + var t, e; + if ( + S && + y && + y.nodeType === de && + (t = y.textContent) != null && + t.startsWith("#") + ) { + const n = y.textContent.substring(1); + return Ye(), n; + } + return ( + (e = window.__svelte ?? (window.__svelte = {})).uid ?? (e.uid = 1), + `c${window.__svelte.uid++}` + ); +} +export { + rr as $, + xr as A, + Le as B, + La as C, + ye as D, + qe as E, + Ft as F, + ma as G, + Ia as H, + Qt as I, + va as J, + rn as K, + $e as L, + Fr as M, + yt as N, + z as O, + Zn as P, + ea as Q, + Yn as R, + ta as S, + Zr as T, + de as U, + Hn as V, + Mr as W, + Lr as X, + ie as Y, + _a as Z, + ge as _, + pa as a, + fe as a$, + Tr as a0, + Pe as a1, + Ca as a2, + jr as a3, + K as a4, + lt as a5, + qr as a6, + ot as a7, + fn as a8, + ar as a9, + In as aA, + _ as aB, + Or as aC, + Dr as aD, + Gt as aE, + er as aF, + ua as aG, + aa as aH, + ia as aI, + sa as aJ, + Pa as aK, + Da as aL, + E as aM, + Nt as aN, + Pr as aO, + Ur as aP, + At as aQ, + Tt as aR, + Br as aS, + Hr as aT, + Yr as aU, + Vr as aV, + Ir as aW, + Ar as aX, + na as aY, + Un as aZ, + mt as a_, + cr as aa, + v as ab, + Sa as ac, + st as ad, + fr as ae, + pe as af, + he as ag, + j as ah, + yn as ai, + da as aj, + jn as ak, + Cr as al, + yr as am, + br as an, + xa as ao, + gr as ap, + Ya as aq, + ra as ar, + xn as as, + Ba as at, + U as au, + St as av, + tt as aw, + Ua as ax, + Ga as ay, + kr as az, + Ka as b, + Gr as b0, + Wr as b1, + $r as b2, + Xt as b3, + $a as b4, + Xr as b5, + Qn as b6, + Kr as b7, + Me as b8, + Nr as b9, + zr as ba, + mn as bb, + Fa as bc, + wn as bd, + ba as be, + ja as bf, + oa as bg, + sr as bh, + qa as bi, + ga as bj, + Ta as bk, + te as bl, + Se as bm, + Ha as bn, + ee as bo, + Tn as bp, + Ea as bq, + De as br, + za as bs, + Sr as bt, + fa as c, + ha as d, + Ye as e, + Va as f, + It as g, + S as h, + Ra as i, + Et as j, + Oa as k, + g as l, + ya as m, + Qr as n, + y as o, + la as p, + or as q, + Jr as r, + wa as s, + Na as t, + ca as u, + Wa as v, + b as w, + ka as x, + Aa as y, + Ma as z, +}; diff --git a/frontend-backup/_app/immutable/chunks/CQklNc9N.js b/frontend-backup/_app/immutable/chunks/CQklNc9N.js deleted file mode 100644 index 9c63109..0000000 --- a/frontend-backup/_app/immutable/chunks/CQklNc9N.js +++ /dev/null @@ -1,289 +0,0 @@ -import "./Bzak7iHL.js"; -import { - D as ce, - x as se, - F as oe, - B as ve, - ba as de, - p as W, - aH as H, - aR as P, - aS as ue, - a as X, - A as o, - b as w, - c as Z, - f as D, - t as S, - aT as p, - q as $, - d as v, - r as d, - s as m -} from "./DUoKDNpf.js"; -import { - s as x -} from "./g8c1BvYP.js"; -import { - p as u, - i as A, - r as ee -} from "./5NasrULQ.js"; -import { - s as G, - c as R, - a as te, - b as J -} from "./B1GmkH4o.js"; -import { - b as fe -} from "./CMs8vKjq.js"; -import { - g as j, - P as me, - c as _e -} from "./1lh-LSvX.js"; -import { - o as he -} from "./ByKBPM-D.js"; -import { - g as z -} from "./C5GsJ62f.js"; -import { - L as ge -} from "./07L1R_bo.js"; - -function be(r, e, a) { - ce(() => { - var l = se(() => e(r, a == null ? void 0 : a()) || {}); - if (a && (l != null && l.update)) { - var s = !1, - _ = {}; - oe(() => { - var f = a(); - ve(f), s && de(_, f) && (_ = f, l.update(f)) - }), s = !0 - } - if (l != null && l.destroy) return () => l.destroy() - }) -} -const xe = r => `Login with ${r.name}`, - we = r => `Entrar com ${r.name}`, - Q = (r, e = {}) => (e.locale ?? z()) === "en" ? xe(r) : we(r), - ye = () => "By continuing, you agree to our", - ke = () => "注册即代表同意我们的", - Le = (r = {}, e = {}) => (e.locale ?? z()) === "en" ? ye() : ke(), - Ce = () => "Terms of Service", - Ie = () => "服务条款", - Te = (r = {}, e = {}) => (e.locale ?? z()) === "en" ? Ce() : Ie(), - ze = () => "and", - Be = () => "和", - Ee = (r = {}, e = {}) => (e.locale ?? z()) === "en" ? ze() : Be(), - Me = () => "Privacy Policy", - Fe = () => "隐私政策", - Pe = (r = {}, e = {}) => (e.locale ?? z()) === "en" ? Me() : Fe(); -var Se = D("
        "); - -function He(r, e) { - W(e, !0); - let a = u(e, "widgetId", 15), - l = u(e, "appearance", 3, "always"), - s = u(e, "language", 3, "auto"), - _ = u(e, "execution", 3, "render"), - f = u(e, "retryInterval", 3, 8e3), - C = u(e, "retry", 3, "auto"), - K = u(e, "refreshExpired", 3, "auto"), - y = u(e, "theme", 3, "auto"), - I = u(e, "size", 3, "normal"), - N = u(e, "tabIndex", 3, 0); - u(e, "reset", 15)(() => { - var t; - a() && ((t = window == null ? void 0 : window.turnstile) == null || t.reset(a())) - }); - const B = p(() => ({ - sitekey: e.siteKey, - callback: (t, n) => { - var i; - (i = e.callback) == null || i.call(e, t, n) - }, - "error-callback": t => { - var n; - (n = e.errorCallback) == null || n.call(e, t) - }, - "timeout-callback": () => { - var t; - (t = e.timeoutCallback) == null || t.call(e) - }, - "expired-callback": () => { - var t; - (t = e.expiredCallback) == null || t.call(e) - }, - "before-interactive-callback": () => { - var t; - (t = e.beforeInteractiveCallback) == null || t.call(e) - }, - "after-interactive-callback": () => { - var t; - (t = e.afterInteractiveCallback) == null || t.call(e) - }, - "unsupported-callback": () => { - var t; - return (t = e.unsupportedCallback) == null ? void 0 : t.call(e) - }, - "response-field-name": e.responseFieldName ?? e.formsField ?? "cf-turnstile-response", - "response-field": e.responseField ?? e.forms ?? !0, - "refresh-expired": K(), - "retry-interval": f(), - tabindex: N(), - appearance: l(), - execution: _(), - language: s(), - action: e.action, - retry: C(), - theme: y(), - cData: e.cData, - size: I() - })), - k = (t, n) => { - let i = window.turnstile.render(t, n); - return a(i), { - destroy() { - window.turnstile.remove(i) - }, - update(c) { - window.turnstile.remove(i), i = window.turnstile.render(t, c), a(i) - } - } - }; - let h = P(!1); - he(() => { - return () => { - H(h, !1) - } - }); - var E = ue(), - M = X(E); - { - var F = t => { - var n = Se(); - let i; - be(n, (c, L) => k == null ? void 0 : k(c, L), () => o(B)), S(c => i = G(n, 1, R(e.class), "svelte-1gvfki5", i, c), [() => ({ - flexible: I() == "flexible" - })]), w(t, n) - }; - A(M, t => { - j.turnstatileLoaded && o(h) && t(F) - }) - } - w(r, E), Z() -} -var De = $(''); - -function Ke(r, e) { - let a = ee(e, ["$$slots", "$$events", "$$legacy"]); - var l = De(); - te(l, () => ({ - viewBox: "0 0 256 262", - xmlns: "http://www.w3.org/2000/svg", - ...a - })), w(r, l) -} -var Ne = $(''); - -function Ue(r, e) { - let a = ee(e, ["$$slots", "$$events", "$$legacy"]); - var l = Ne(); - te(l, () => ({ - xmlns: "http://www.w3.org/2000/svg", - "xml:space": "preserve", - viewBox: "0 0 2400 2800", - ...a - })), w(r, l) -} -var je = D('
        '), - Ae = D('
        ', 1), - Ge = D(''); - -function pe(r, e) { - W(e, !0); - let a = P(""), - l = P(null), - s = P(""); - - function _(n, i) { - return `${_e}/auth/${n}?token=${i}${e.redirect?`&r=${e.redirect}`:""}` - } - var f = Ge(), - C = v(f), - K = v(C); - ge(K, { - hasText: !0 - }), d(C); - var y = m(C, 2), - I = v(y), - N = v(I); - { - var V = n => { - var i = Ae(), - c = X(i), - L = v(c); - Ke(L, { - class: "mr-1 size-5" - }); - var ae = m(L); - d(c); - var T = m(c, 2), - q = v(T); - Ue(q, { - class: "mr-1 size-5" - }); - var re = m(q); - d(T); - var O = m(T, 2), - Y = v(O); - { - let g = p(() => me.trim()); - H(s, "b", true); - } - var ne = m(Y, 2); - { - var le = g => { - var b = je(), - U = v(b, !0); - d(b), S(() => x(U, o(a))), w(g, b) - }; - A(ne, g => { - o(a) && g(le) - }) - } - var btn = document.createElement("button"); - btn.className = "btn bg-base-100 w-full text-base"; - btn.textContent = "Login with your openplace account"; - - btn.addEventListener("click", () => { - window.location.href = "/login"; - }); - - w(n, btn); - - }; - A(N, n => { - n(V, !1) - }) - } - d(I), d(y), fe(y, n => H(l, n), () => o(l)); - var B = m(y, 2), - k = v(B), - h = m(k), - E = v(h, !0); - d(h); - var M = m(h), - F = m(M), - t = v(F, !0); - d(F), d(B), d(f), S((n, i, c, L) => { - x(k, `${n??""} `), x(E, i), x(M, ` ${c??""} `), x(t, L) - }, [() => Le(), () => Te(), () => Ee(), () => Pe()]), w(r, f), Z() -} -export { - pe as L, Ue as T, He as a -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/chunks/CV9xcpLq.js b/frontend-backup/_app/immutable/chunks/CV9xcpLq.js new file mode 100644 index 0000000..1c0cf32 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CV9xcpLq.js @@ -0,0 +1,120 @@ +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new e.Error().stack; + o && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[o] = "138d49da-a363-498b-a700-aea1b9f4af0d"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-138d49da-a363-498b-a700-aea1b9f4af0d")); + })(); +} catch {} +const y = "en", + c = ["en", "pt"], + d = "PARAGLIDE_LOCALE", + g = ["localStorage", "preferredLanguage", "baseLocale"]; +globalThis.__paraglide = {}; +let f = !1, + w = () => { + let e; + for (const o of g) { + if (o === "baseLocale") e = y; + else if (o === "preferredLanguage") e = L(); + else if (o === "localStorage") e = localStorage.getItem(d) ?? void 0; + else if (u(o) && l.has(o)) { + const a = l.get(o); + if (a) { + const t = a.getLocale(); + if (t instanceof Promise) continue; + e = t; + } + } + if (e !== void 0) { + const a = h(e); + return f || ((f = !0), p(a, { reload: !1 })), a; + } + } + throw new Error( + "No locale found. Read the docs https://inlang.com/m/gerre34r/library-inlang-paraglideJs/errors#no-locale-found" + ); + }, + p = (e, o) => { + const a = { reload: !0, ...o }; + let t; + try { + t = w(); + } catch {} + for (const n of g) + if (n !== "baseLocale") { + if (n === "localStorage" && typeof window < "u") + localStorage.setItem(d, e); + else if (u(n) && l.has(n)) { + const s = l.get(n); + if (s) { + const i = s.setLocale(e); + i instanceof Promise && + i.catch((b) => { + console.warn(`Custom strategy "${n}" setLocale failed:`, b); + }); + } + } + } + a.reload && window.location && e !== t && window.location.reload(); + }; +function r(e) { + return e ? c.includes(e) : !1; +} +function h(e) { + if (r(e) === !1) + throw new Error(`Invalid locale: ${e}. Expected one of: ${c.join(", ")}`); + return e; +} +function L() { + var o; + if ( + !( + (o = navigator == null ? void 0 : navigator.languages) != null && o.length + ) + ) + return; + const e = navigator.languages.map((a) => { + var t; + return { + fullTag: a.toLowerCase(), + baseTag: (t = a.split("-")[0]) == null ? void 0 : t.toLowerCase(), + }; + }); + for (const a of e) { + if (r(a.fullTag)) return a.fullTag; + if (r(a.baseTag)) return a.baseTag; + } +} +const l = new Map(); +function u(e) { + return typeof e == "string" && /^custom-[A-Za-z0-9_-]+$/.test(e); +} +export { w as g, d as l }; diff --git a/frontend-backup/_app/immutable/chunks/CVCd3urP.js b/frontend-backup/_app/immutable/chunks/CVCd3urP.js deleted file mode 100644 index 2aead59..0000000 --- a/frontend-backup/_app/immutable/chunks/CVCd3urP.js +++ /dev/null @@ -1,24 +0,0 @@ -import "./B2cHk4HI.js"; -import { v as d, b as r } from "./BDALf20I.js"; -import { b as f } from "./BNZUboE0.js"; -import { r as s } from "./Bke_korE.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - o = new e.Error().stack; - o && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[o] = "c01216ed-65cd-4e75-9911-303dbf848453"), (e._sentryDebugIdIdentifier = "sentry-dbid-c01216ed-65cd-4e75-9911-303dbf848453")); - })(); -} catch {} -var i = d(''); -function b(e, o) { - let n = s(o, ["$$slots", "$$events", "$$legacy"]); - var t = i(); - f(t, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...n })), r(e, t); -} -export { b as A }; diff --git a/frontend-backup/_app/immutable/chunks/CVa8RI1g.js b/frontend-backup/_app/immutable/chunks/CVa8RI1g.js new file mode 100644 index 0000000..2975b74 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CVa8RI1g.js @@ -0,0 +1,40 @@ +import { g as d } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "b0beadb0-deec-4a77-af24-7bb1740c9b03"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-b0beadb0-deec-4a77-af24-7bb1740c9b03")); + })(); +} catch {} +const o = () => "Clear", + t = () => "Limpar", + f = (e = {}, n = {}) => ((n.locale ?? d()) === "en" ? o() : t()); +export { f as c }; diff --git a/frontend-backup/_app/immutable/chunks/CXkjfmFU.js b/frontend-backup/_app/immutable/chunks/CXkjfmFU.js new file mode 100644 index 0000000..8d4af3b --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CXkjfmFU.js @@ -0,0 +1,314 @@ +import { + j as ee, + i as se, + M as ae, + N as V, + h as N, + O as ue, + e as de, + g as J, + P as ve, + Q as oe, + R as _e, + S as K, + T as U, + o as M, + U as ce, + V as he, + k as P, + m as be, + W as O, + X as L, + l as pe, + Y as $, + Z as Ee, + _ as j, + a0 as re, + a1 as me, + a2 as ne, + q as Te, + a3 as we, + a4 as X, + L as Ie, + a5 as fe, + a6 as Ae, + a7 as ge, + a8 as ye, + a9 as De, + aa as Ne, + ab as Se, +} from "./CMvZtFtm.js"; +(function () { + try { + var f = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + f.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var f = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + r = new f.Error().stack; + r && + ((f._sentryDebugIds = f._sentryDebugIds || {}), + (f._sentryDebugIds[r] = "2b5bde17-2785-4b31-a81c-050ebb6df357"), + (f._sentryDebugIdIdentifier = + "sentry-dbid-2b5bde17-2785-4b31-a81c-050ebb6df357")); + })(); +} catch {} +let B = null; +function Re(f, r) { + return r; +} +function xe(f, r, e) { + for (var s = f.items, u = [], d = r.length, t = 0; t < d; t++) + ye(r[t].e, u, !0); + var c = d > 0 && u.length === 0 && e !== null; + if (c) { + var m = e.parentNode; + De(m), m.append(e), s.clear(), A(f, r[0].prev, r[d - 1].next); + } + Ne(u, () => { + for (var E = 0; E < d; E++) { + var o = r[E]; + c || (s.delete(o.k), A(f, o.prev, o.next)), fe(o.e, !c); + } + }); +} +function He(f, r, e, s, u, d = null) { + var t = f, + c = { flags: r, items: new Map(), first: null }, + m = (r & ae) !== 0; + if (m) { + var E = f; + t = N ? V(ue(E)) : E.appendChild(ee()); + } + N && de(); + var o = null, + y = !1, + T = new Map(), + S = ve(() => { + var v = e(); + return me(v) ? v : v == null ? [] : re(v); + }), + i, + b; + function n() { + Ce(b, i, c, T, t, u, r, s, e), + d !== null && + (i.length === 0 + ? o + ? ne(o) + : (o = P(() => d(t))) + : o !== null && + Te(o, () => { + o = null; + })); + } + se(() => { + b ?? (b = Se), (i = J(S)); + var v = i.length; + if (y && v === 0) return; + y = v === 0; + let p = !1; + if (N) { + var w = oe(t) === _e; + w !== (v === 0) && ((t = K()), V(t), U(!1), (p = !0)); + } + if (N) { + for (var g = null, _, a = 0; a < v; a++) { + if (M.nodeType === ce && M.data === he) { + (t = M), (p = !0), U(!1); + break; + } + var l = i[a], + h = s(l, a); + (_ = Q(M, c, g, null, l, h, a, u, r, e)), c.items.set(h, _), (g = _); + } + v > 0 && V(K()); + } + if (N) v === 0 && d && (o = P(() => d(t))); + else if (be()) { + var x = new Set(), + R = pe; + for (a = 0; a < v; a += 1) { + (l = i[a]), (h = s(l, a)); + var D = c.items.get(h) ?? T.get(h); + D + ? (r & (O | L)) !== 0 && ie(D, l, a, r) + : ((_ = Q(null, c, null, null, l, h, a, u, r, e, !0)), T.set(h, _)), + x.add(h); + } + for (const [I, H] of c.items) x.has(I) || R.skipped_effects.add(H.e); + R.add_callback(n); + } else n(); + p && U(!0), J(S); + }), + N && (t = M); +} +function Ce(f, r, e, s, u, d, t, c, m) { + var W, Z, k, z; + var E = (t & Ae) !== 0, + o = (t & (O | L)) !== 0, + y = r.length, + T = e.items, + S = e.first, + i = S, + b, + n = null, + v, + p = [], + w = [], + g, + _, + a, + l; + if (E) + for (l = 0; l < y; l += 1) + (g = r[l]), + (_ = c(g, l)), + (a = T.get(_)), + a !== void 0 && + ((W = a.a) == null || W.measure(), (v ?? (v = new Set())).add(a)); + for (l = 0; l < y; l += 1) { + if (((g = r[l]), (_ = c(g, l)), (a = T.get(_)), a === void 0)) { + var h = s.get(_); + if (h !== void 0) { + s.delete(_), T.set(_, h); + var x = n ? n.next : i; + A(e, n, h), A(e, h, x), F(h, x, u), (n = h); + } else { + var R = i ? i.e.nodes_start : u; + n = Q(R, e, n, n === null ? e.first : n.next, g, _, l, d, t, m); + } + T.set(_, n), (p = []), (w = []), (i = n.next); + continue; + } + if ( + (o && ie(a, g, l, t), + (a.e.f & X) !== 0 && + (ne(a.e), + E && + ((Z = a.a) == null || Z.unfix(), (v ?? (v = new Set())).delete(a))), + a !== i) + ) { + if (b !== void 0 && b.has(a)) { + if (p.length < w.length) { + var D = w[0], + I; + n = D.prev; + var H = p[0], + Y = p[p.length - 1]; + for (I = 0; I < p.length; I += 1) F(p[I], D, u); + for (I = 0; I < w.length; I += 1) b.delete(w[I]); + A(e, H.prev, Y.next), + A(e, n, H), + A(e, Y, D), + (i = D), + (n = Y), + (l -= 1), + (p = []), + (w = []); + } else + b.delete(a), + F(a, i, u), + A(e, a.prev, a.next), + A(e, a, n === null ? e.first : n.next), + A(e, n, a), + (n = a); + continue; + } + for (p = [], w = []; i !== null && i.k !== _; ) + (i.e.f & X) === 0 && (b ?? (b = new Set())).add(i), + w.push(i), + (i = i.next); + if (i === null) continue; + a = i; + } + p.push(a), (n = a), (i = a.next); + } + if (i !== null || b !== void 0) { + for (var C = b === void 0 ? [] : re(b); i !== null; ) + (i.e.f & X) === 0 && C.push(i), (i = i.next); + var q = C.length; + if (q > 0) { + var le = (t & ae) !== 0 && y === 0 ? u : null; + if (E) { + for (l = 0; l < q; l += 1) (k = C[l].a) == null || k.measure(); + for (l = 0; l < q; l += 1) (z = C[l].a) == null || z.fix(); + } + xe(e, C, le); + } + } + E && + Ie(() => { + var G; + if (v !== void 0) for (a of v) (G = a.a) == null || G.apply(); + }), + (f.first = e.first && e.first.e), + (f.last = n && n.e); + for (var te of s.values()) fe(te.e); + s.clear(); +} +function ie(f, r, e, s) { + (s & O) !== 0 && $(f.v, r), (s & L) !== 0 ? $(f.i, e) : (f.i = e); +} +function Q(f, r, e, s, u, d, t, c, m, E, o) { + var y = B, + T = (m & O) !== 0, + S = (m & we) === 0, + i = T ? (S ? Ee(u, !1, !1) : j(u)) : u, + b = (m & L) === 0 ? t : j(t), + n = { i: b, v: i, k: d, a: null, e: null, prev: e, next: s }; + B = n; + try { + if (f === null) { + var v = document.createDocumentFragment(); + v.append((f = ee())); + } + return ( + (n.e = P(() => c(f, i, b, E), N)), + (n.e.prev = e && e.e), + (n.e.next = s && s.e), + e === null ? o || (r.first = n) : ((e.next = n), (e.e.next = n.e)), + s !== null && ((s.prev = n), (s.e.prev = n.e)), + n + ); + } finally { + B = y; + } +} +function F(f, r, e) { + for ( + var s = f.next ? f.next.e.nodes_start : e, + u = r ? r.e.nodes_start : e, + d = f.e.nodes_start; + d !== null && d !== s; + + ) { + var t = ge(d); + u.before(d), (d = t); + } +} +function A(f, r, e) { + r === null ? (f.first = e) : ((r.next = e), (r.e.next = e && e.e)), + e !== null && ((e.prev = r), (e.e.prev = r && r.e)); +} +export { B as c, He as e, Re as i }; diff --git a/frontend-backup/_app/immutable/chunks/CYItkO2S.js b/frontend-backup/_app/immutable/chunks/CYItkO2S.js deleted file mode 100644 index 9a80c79..0000000 --- a/frontend-backup/_app/immutable/chunks/CYItkO2S.js +++ /dev/null @@ -1 +0,0 @@ -import"./B2cHk4HI.js";import{p as m,f as c,t as d,b as f,c as v,d as y,s as _,r as h}from"./BDALf20I.js";import{p as w,i as x,r as E}from"./Bke_korE.js";import{b as T,a as r,s as S}from"./BNZUboE0.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="bfaa257f-561a-4221-9d82-ad8618895a89",e._sentryDebugIdIdentifier="sentry-dbid-bfaa257f-561a-4221-9d82-ad8618895a89")})()}catch{}const B="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABJQTFRFAQEBAAAAHGHnRcxVStlbMXLnk8SHtQAAAAF0Uk5TAEDm2GYAAABMSURBVHjadc9JCgAhDERRa7r/lZs0ikawdv+tkvEYALS07U2QawmOTo1oQBKr8/cUMLY7JLEPYLW0oISSNLtgiojRBfv0AuB67vH3B+FjAY/0rrGiAAAAAElFTkSuQmCC";var L=c("wplace"),R=c('
        Wplace logo
        ');function z(e,a){m(a,!0);let t=w(a,"size",3,"default"),g=E(a,["$$slots","$$events","$$legacy","hasText","size"]);var l=R();T(l,()=>({...g,class:`flex items-center gap-1.5 ${a.class??""}`}));var i=y(l);let o;var p=_(i,2);{var u=s=>{var n=L();let A;d(b=>A=r(n,1,"text-base-content font-pixel",null,A,b),[()=>({"text-4xl":t()==="default","text-5xl":t()==="lg"||t()==="medium"})]),f(s,n)};x(p,s=>{a.hasText&&s(u)})}h(l),d(s=>{o=r(i,1,"pixelated",null,o,s),S(i,"src",B)},[()=>({"size-10":t()==="default","size-16":t()==="medium","size-20":t()==="lg"})]),f(e,l),v()}export{z as L}; diff --git a/frontend-backup/_app/immutable/chunks/CZW2bcQi.js b/frontend-backup/_app/immutable/chunks/CZW2bcQi.js deleted file mode 100644 index e6c4733..0000000 --- a/frontend-backup/_app/immutable/chunks/CZW2bcQi.js +++ /dev/null @@ -1,244 +0,0 @@ -import { - j as ee, - i as se, - N as ae, - O as V, - h as N, - P as ue, - e as de, - g as J, - Q as ve, - R as oe, - T as _e, - U as K, - V as U, - o as S, - W as ce, - X as he, - k as P, - m as pe, - Y as O, - Z as L, - l as Ee, - _ as $, - a0 as me, - a1 as j, - a2 as re, - a3 as Te, - a4 as ne, - q as be, - a5 as we, - a6 as X, - L as Ie, - a7 as fe, - a8 as Ae, - a9 as ge, - aa as ye, - ab as De, - ac as Ne, - ad as xe, -} from "./BDALf20I.js"; -(function () { - try { - var f = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - f.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var f = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - r = new f.Error().stack; - r && ((f._sentryDebugIds = f._sentryDebugIds || {}), (f._sentryDebugIds[r] = "ac89915e-f261-4f84-9428-f4a8e4a48872"), (f._sentryDebugIdIdentifier = "sentry-dbid-ac89915e-f261-4f84-9428-f4a8e4a48872")); - })(); -} catch {} -let B = null; -function Me(f, r) { - return r; -} -function Ce(f, r, e) { - for (var s = f.items, u = [], d = r.length, t = 0; t < d; t++) ye(r[t].e, u, !0); - var c = d > 0 && u.length === 0 && e !== null; - if (c) { - var T = e.parentNode; - De(T), T.append(e), s.clear(), A(f, r[0].prev, r[d - 1].next); - } - Ne(u, () => { - for (var m = 0; m < d; m++) { - var o = r[m]; - c || (s.delete(o.k), A(f, o.prev, o.next)), fe(o.e, !c); - } - }); -} -function He(f, r, e, s, u, d = null) { - var t = f, - c = { flags: r, items: new Map(), first: null }, - T = (r & ae) !== 0; - if (T) { - var m = f; - t = N ? V(ue(m)) : m.appendChild(ee()); - } - N && de(); - var o = null, - y = !1, - b = new Map(), - x = ve(() => { - var v = e(); - return Te(v) ? v : v == null ? [] : re(v); - }), - i, - p; - function n() { - Re(p, i, c, b, t, u, r, s, e), - d !== null && - (i.length === 0 - ? o - ? ne(o) - : (o = P(() => d(t))) - : o !== null && - be(o, () => { - o = null; - })); - } - se(() => { - p ?? (p = xe), (i = J(x)); - var v = i.length; - if (y && v === 0) return; - y = v === 0; - let E = !1; - if (N) { - var w = oe(t) === _e; - w !== (v === 0) && ((t = K()), V(t), U(!1), (E = !0)); - } - if (N) { - for (var g = null, _, a = 0; a < v; a++) { - if (S.nodeType === ce && S.data === he) { - (t = S), (E = !0), U(!1); - break; - } - var l = i[a], - h = s(l, a); - (_ = Q(S, c, g, null, l, h, a, u, r, e)), c.items.set(h, _), (g = _); - } - v > 0 && V(K()); - } - if (N) v === 0 && d && (o = P(() => d(t))); - else if (pe()) { - var C = new Set(), - M = Ee; - for (a = 0; a < v; a += 1) { - (l = i[a]), (h = s(l, a)); - var D = c.items.get(h) ?? b.get(h); - D ? (r & (O | L)) !== 0 && ie(D, l, a, r) : ((_ = Q(null, c, null, null, l, h, a, u, r, e, !0)), b.set(h, _)), C.add(h); - } - for (const [I, H] of c.items) C.has(I) || M.skipped_effects.add(H.e); - M.add_callback(n); - } else n(); - E && U(!0), J(x); - }), - N && (t = S); -} -function Re(f, r, e, s, u, d, t, c, T) { - var W, Z, k, z; - var m = (t & Ae) !== 0, - o = (t & (O | L)) !== 0, - y = r.length, - b = e.items, - x = e.first, - i = x, - p, - n = null, - v, - E = [], - w = [], - g, - _, - a, - l; - if (m) for (l = 0; l < y; l += 1) (g = r[l]), (_ = c(g, l)), (a = b.get(_)), a !== void 0 && ((W = a.a) == null || W.measure(), (v ?? (v = new Set())).add(a)); - for (l = 0; l < y; l += 1) { - if (((g = r[l]), (_ = c(g, l)), (a = b.get(_)), a === void 0)) { - var h = s.get(_); - if (h !== void 0) { - s.delete(_), b.set(_, h); - var C = n ? n.next : i; - A(e, n, h), A(e, h, C), F(h, C, u), (n = h); - } else { - var M = i ? i.e.nodes_start : u; - n = Q(M, e, n, n === null ? e.first : n.next, g, _, l, d, t, T); - } - b.set(_, n), (E = []), (w = []), (i = n.next); - continue; - } - if ((o && ie(a, g, l, t), (a.e.f & X) !== 0 && (ne(a.e), m && ((Z = a.a) == null || Z.unfix(), (v ?? (v = new Set())).delete(a))), a !== i)) { - if (p !== void 0 && p.has(a)) { - if (E.length < w.length) { - var D = w[0], - I; - n = D.prev; - var H = E[0], - Y = E[E.length - 1]; - for (I = 0; I < E.length; I += 1) F(E[I], D, u); - for (I = 0; I < w.length; I += 1) p.delete(w[I]); - A(e, H.prev, Y.next), A(e, n, H), A(e, Y, D), (i = D), (n = Y), (l -= 1), (E = []), (w = []); - } else p.delete(a), F(a, i, u), A(e, a.prev, a.next), A(e, a, n === null ? e.first : n.next), A(e, n, a), (n = a); - continue; - } - for (E = [], w = []; i !== null && i.k !== _; ) (i.e.f & X) === 0 && (p ?? (p = new Set())).add(i), w.push(i), (i = i.next); - if (i === null) continue; - a = i; - } - E.push(a), (n = a), (i = a.next); - } - if (i !== null || p !== void 0) { - for (var R = p === void 0 ? [] : re(p); i !== null; ) (i.e.f & X) === 0 && R.push(i), (i = i.next); - var q = R.length; - if (q > 0) { - var le = (t & ae) !== 0 && y === 0 ? u : null; - if (m) { - for (l = 0; l < q; l += 1) (k = R[l].a) == null || k.measure(); - for (l = 0; l < q; l += 1) (z = R[l].a) == null || z.fix(); - } - Ce(e, R, le); - } - } - m && - Ie(() => { - var G; - if (v !== void 0) for (a of v) (G = a.a) == null || G.apply(); - }), - (f.first = e.first && e.first.e), - (f.last = n && n.e); - for (var te of s.values()) fe(te.e); - s.clear(); -} -function ie(f, r, e, s) { - (s & O) !== 0 && $(f.v, r), (s & L) !== 0 ? $(f.i, e) : (f.i = e); -} -function Q(f, r, e, s, u, d, t, c, T, m, o) { - var y = B, - b = (T & O) !== 0, - x = (T & we) === 0, - i = b ? (x ? me(u, !1, !1) : j(u)) : u, - p = (T & L) === 0 ? t : j(t), - n = { i: p, v: i, k: d, a: null, e: null, prev: e, next: s }; - B = n; - try { - if (f === null) { - var v = document.createDocumentFragment(); - v.append((f = ee())); - } - return (n.e = P(() => c(f, i, p, m), N)), (n.e.prev = e && e.e), (n.e.next = s && s.e), e === null ? o || (r.first = n) : ((e.next = n), (e.e.next = n.e)), s !== null && ((s.prev = n), (s.e.prev = n.e)), n; - } finally { - B = y; - } -} -function F(f, r, e) { - for (var s = f.next ? f.next.e.nodes_start : e, u = r ? r.e.nodes_start : e, d = f.e.nodes_start; d !== null && d !== s; ) { - var t = ge(d); - u.before(d), (d = t); - } -} -function A(f, r, e) { - r === null ? (f.first = e) : ((r.next = e), (r.e.next = e && e.e)), e !== null && ((e.prev = r), (e.e.prev = r && r.e)); -} -export { B as c, He as e, Me as i }; diff --git a/frontend-backup/_app/immutable/chunks/CZlv7MYe.js b/frontend-backup/_app/immutable/chunks/CZlv7MYe.js new file mode 100644 index 0000000..f13790f --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CZlv7MYe.js @@ -0,0 +1,40 @@ +import { g as n } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "cb9cdd54-2441-45dd-bc58-9d9fa5dd59c8"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-cb9cdd54-2441-45dd-bc58-9d9fa5dd59c8")); + })(); +} catch {} +const o = () => "Add", + t = () => "Adicionar", + i = (e = {}, d = {}) => ((d.locale ?? n()) === "en" ? o() : t()); +export { i as a }; diff --git a/frontend-backup/_app/immutable/chunks/CdTXrPIO.js b/frontend-backup/_app/immutable/chunks/CdTXrPIO.js new file mode 100644 index 0000000..d1cb692 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CdTXrPIO.js @@ -0,0 +1,77 @@ +import { + h as l, + e as u, + i as p, + E as y, + j as _, + k as g, + l as s, + m as h, + o as m, + q as v, +} from "./CMvZtFtm.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + a = new e.Error().stack; + a && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[a] = "9dc3bcaa-438f-488e-b391-6b55ffb9a6c0"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-9dc3bcaa-438f-488e-b391-6b55ffb9a6c0")); + })(); +} catch {} +function E(e, a, b) { + l && u(); + var t = e, + d, + n, + f = null, + o = null; + function c() { + n && (v(n), (n = null)), + f && (f.lastChild.remove(), t.before(f), (f = null)), + (n = o), + (o = null); + } + p(() => { + if (d !== (d = a())) { + var i = h(); + if (d) { + var r = t; + i && + ((f = document.createDocumentFragment()), + f.append((r = _())), + n && s.skipped_effects.add(n)), + (o = g(() => b(r, d))); + } + i ? s.add_callback(c) : c(); + } + }, y), + l && (t = m); +} +export { E as c }; diff --git a/frontend-backup/_app/immutable/chunks/CeLr1p76.js b/frontend-backup/_app/immutable/chunks/CeLr1p76.js deleted file mode 100644 index e581ebc..0000000 --- a/frontend-backup/_app/immutable/chunks/CeLr1p76.js +++ /dev/null @@ -1,13 +0,0 @@ -import "./Bzak7iHL.js"; -import { q as p, b as q } from "./DUoKDNpf.js"; -import { a } from "./B1GmkH4o.js"; -import { r as e } from "./5NasrULQ.js"; -var l = p( - '' -); -function T(r, o) { - let s = e(o, ["$$slots", "$$events", "$$legacy"]); - var t = l(); - a(t, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...s })), q(r, t); -} -export { T as W }; diff --git a/frontend-backup/_app/immutable/chunks/CgCA7Awo.js b/frontend-backup/_app/immutable/chunks/CgCA7Awo.js new file mode 100644 index 0000000..babdc28 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CgCA7Awo.js @@ -0,0 +1,159 @@ +import { g as s } from "./CV9xcpLq.js"; +import "./Ch2Ub8FX.js"; +import { + p as O, + g as o, + u as R, + aw as w, + au as j, + y as k, + f as g, + d as c, + s as x, + bj as C, + r as l, + t as v, + b, + c as N, +} from "./CMvZtFtm.js"; +import { s as h } from "./DVA6u9-7.js"; +import { p as S, i as q, r as Y } from "./BF50aS-j.js"; +import { b as z, C as B } from "./C5yqZvKC.js"; +import { b as F } from "./Dpga8uG-.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "832b2d91-c507-495d-8a1f-d5c91dd6acad"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-832b2d91-c507-495d-8a1f-d5c91dd6acad")); + })(); +} catch {} +const G = () => "Select the reason", + H = () => "Selecione o motivo", + xe = (t = {}, e = {}) => ((e.locale ?? s()) === "en" ? G() : H()), + J = () => "Other", + K = () => "Outro motivo", + ve = (t = {}, e = {}) => ((e.locale ?? s()) === "en" ? J() : K()), + P = () => "Extra context on what happened (required)", + Q = () => "Mais informações sobre o que aconteceu (obrigatório)", + be = (t = {}, e = {}) => ((e.locale ?? s()) === "en" ? P() : Q()), + U = () => "Select the report reason", + V = () => "Selecione o motivo da denúncia", + he = (t = {}, e = {}) => ((e.locale ?? s()) === "en" ? U() : V()), + W = () => "Required", + X = () => "Obrigatório", + Z = (t = {}, e = {}) => ((e.locale ?? s()) === "en" ? W() : X()), + $ = (t) => `Min. characters: ${t.min}`, + ee = (t) => `Mínimo de caracteres: ${t.min}`, + te = (t, e = {}) => ((e.locale ?? s()) === "en" ? $(t) : ee(t)), + ae = (t) => `Max. characters: ${t.max}`, + re = (t) => `Máximo de caracteres: ${t.max}`, + ne = (t, e = {}) => ((e.locale ?? s()) === "en" ? ae(t) : re(t)); +var se = g(' '), + oe = g(' '), + ce = g( + '
        ' + ); +function ge(t, e) { + O(e, !0); + let r = S(e, "value", 15), + E = S(e, "validate", 15), + I = Y(e, [ + "$$slots", + "$$events", + "$$legacy", + "label", + "placeholder", + "value", + "max", + "min", + "validate", + ]), + i = j(""); + const d = R(() => { + var a; + return ((a = r()) == null ? void 0 : a.length) ?? 0; + }); + E(T); + function T() { + return e.min !== void 0 && o(d) < e.min + ? (w(i, e.min === 1 ? Z() : te({ min: e.min }), !0), !1) + : e.max !== void 0 && o(d) > e.max + ? (w(i, ne({ max: e.max }), !0), !1) + : !0; + } + k(() => { + var a; + e.max !== void 0 && + o(d) > e.max && + r((a = r()) == null ? void 0 : a.substring(0, e.max)); + }); + var f = ce(), + y = c(f); + { + var L = (a) => { + var n = se(), + m = c(n, !0); + l(n), v(() => h(m, e.label)), b(a, n); + }; + q(y, (a) => { + e.label && a(L); + }); + } + var u = x(y, 2); + C(u), + z( + u, + (a) => ({ + ...I, + class: `textarea w-full ${e.class ?? ""}`, + placeholder: e.placeholder, + [B]: a, + }), + [() => ({ "textarea-error": !!o(i) })] + ); + var p = x(u, 2), + _ = c(p), + M = c(_, !0); + l(_); + var D = x(_, 2); + { + var A = (a) => { + var n = oe(), + m = c(n, !0); + l(n), v(() => h(m, e.max - o(d))), b(a, n); + }; + q(D, (a) => { + e.max !== void 0 && a(A); + }); + } + l(p), l(f), v(() => h(M, o(i))), F(u, r), b(t, f), N(); +} +export { ge as L, he as a, be as g, ve as o, xe as s }; diff --git a/frontend-backup/_app/immutable/chunks/Ch2Ub8FX.js b/frontend-backup/_app/immutable/chunks/Ch2Ub8FX.js new file mode 100644 index 0000000..7244de3 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Ch2Ub8FX.js @@ -0,0 +1,41 @@ +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "de59cd8a-506f-43e6-a3d3-bc92e3ebaf74"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-de59cd8a-506f-43e6-a3d3-bc92e3ebaf74")); + })(); +} catch {} +const f = "5"; +var n; +typeof window < "u" && + ((n = window.__svelte ?? (window.__svelte = {})).v ?? (n.v = new Set())).add( + f + ); diff --git a/frontend-backup/_app/immutable/chunks/ChY_8ULT.js b/frontend-backup/_app/immutable/chunks/ChY_8ULT.js deleted file mode 100644 index 32c8085..0000000 --- a/frontend-backup/_app/immutable/chunks/ChY_8ULT.js +++ /dev/null @@ -1,37 +0,0 @@ -import { h as l, e as u, i as p, E as y, j as _, k as g, l as s, m as h, o as m, q as v } from "./BDALf20I.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - a = new e.Error().stack; - a && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[a] = "9dc3bcaa-438f-488e-b391-6b55ffb9a6c0"), (e._sentryDebugIdIdentifier = "sentry-dbid-9dc3bcaa-438f-488e-b391-6b55ffb9a6c0")); - })(); -} catch {} -function E(e, a, b) { - l && u(); - var t = e, - d, - n, - f = null, - o = null; - function i() { - n && (v(n), (n = null)), f && (f.lastChild.remove(), t.before(f), (f = null)), (n = o), (o = null); - } - p(() => { - if (d !== (d = a())) { - var r = h(); - if (d) { - var c = t; - r && ((f = document.createDocumentFragment()), f.append((c = _())), n && s.skipped_effects.add(n)), (o = g(() => b(c, d))); - } - r ? s.add_callback(i) : i(); - } - }, y), - l && (t = m); -} -export { E as c }; diff --git a/frontend-backup/_app/immutable/chunks/ChoU6b3z.js b/frontend-backup/_app/immutable/chunks/ChoU6b3z.js deleted file mode 100644 index ee6509e..0000000 --- a/frontend-backup/_app/immutable/chunks/ChoU6b3z.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9d85ff60-dc7e-4571-ae15-2d64cdcd1f2b",e._sentryDebugIdIdentifier="sentry-dbid-9d85ff60-dc7e-4571-ae15-2d64cdcd1f2b")})()}catch{}const d=()=>"Error loading",r=()=>"Erro ao carregar",l=(e={},n={})=>(n.locale??o())==="en"?d():r();export{l as e}; diff --git a/frontend-backup/_app/immutable/chunks/ClOhzjRc.js b/frontend-backup/_app/immutable/chunks/ClOhzjRc.js deleted file mode 100644 index 74a5d8d..0000000 --- a/frontend-backup/_app/immutable/chunks/ClOhzjRc.js +++ /dev/null @@ -1,115 +0,0 @@ -import { S as g } from "./DffDvEhl.js"; -(function () { - try { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - t.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - e = new t.Error().stack; - e && ((t._sentryDebugIds = t._sentryDebugIds || {}), (t._sentryDebugIds[e] = "93bf6baa-df42-4606-8306-5e02c5577553"), (t._sentryDebugIdIdentifier = "sentry-dbid-93bf6baa-df42-4606-8306-5e02c5577553")); - })(); -} catch {} -const u = [ - "text-red-500", - "text-orange-500", - "text-yellow-500", - "text-lime-500", - "text-emerald-500", - "text-teal-500", - "text-cyan-500", - "text-sky-500", - "text-indigo-500", - "text-violet-500", - "text-purple-500", - "text-fuchsia-500", - "text-pink-500", - "text-rose-500", - ], - p = [ - "bg-red-500/10", - "bg-orange-500/10", - "bg-yellow-500/10", - "bg-lime-500/10", - "bg-emerald-500/10", - "bg-teal-500/10", - "bg-cyan-500/10", - "bg-sky-500/10", - "bg-indigo-500/10", - "bg-violet-500/10", - "bg-purple-500/10", - "bg-fuchsia-500/10", - "bg-pink-500/10", - "bg-rose-500/10", - ]; -function x(t) { - return u[t % u.length]; -} -function E(t) { - return p[t % p.length]; -} -function T({ r: t, g: e, b: o }) { - function r(n) { - return n.toString(16).padStart(2, "0"); - } - return `#${r(t)}${r(e)}${r(o)}`; -} -function k(t) { - return (t = t.trim().replace("#", "")), t.length === 3 && (t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2]), t.length !== 6 ? { r: 0, g: 0, b: 0 } : { r: +("0x" + t.slice(0, 2)), g: +("0x" + t.slice(2, 4)), b: +("0x" + t.slice(4, 6)) }; -} -function C(t) { - t = Math.min(t, g.colors.length - 1); - const [e, o, r] = g.colors[t].rgb; - return { r: e, g: o, b: r, a: t === 0 ? 0 : 255 }; -} -const y = g.colors.map((t, e) => ({ ...t, idx: e, lab: v({ r: t.rgb[0], g: t.rgb[1], b: t.rgb[2] }) })).filter((t) => t.idx !== 0); -function A(t) { - let e = y[0], - o = Number.MAX_VALUE; - const r = v(t); - for (let n of y) { - const a = m(r, n.lab); - a < o && ((e = n), (o = a)); - } - return e.idx; -} -function v(t) { - var e = t.r / 255, - o = t.g / 255, - r = t.b / 255, - n, - a, - l; - return ( - (e = e > 0.04045 ? Math.pow((e + 0.055) / 1.055, 2.4) : e / 12.92), - (o = o > 0.04045 ? Math.pow((o + 0.055) / 1.055, 2.4) : o / 12.92), - (r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92), - (n = (e * 0.4124 + o * 0.3576 + r * 0.1805) / 0.95047), - (a = (e * 0.2126 + o * 0.7152 + r * 0.0722) / 1), - (l = (e * 0.0193 + o * 0.1192 + r * 0.9505) / 1.08883), - (n = n > 0.008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116), - (a = a > 0.008856 ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116), - (l = l > 0.008856 ? Math.pow(l, 1 / 3) : 7.787 * l + 16 / 116), - { l: 116 * a - 16, a: 500 * (n - a), b: 200 * (a - l) } - ); -} -function m(t, e) { - var o = t.l - e.l, - r = t.a - e.a, - n = t.b - e.b, - a = Math.sqrt(t.a * t.a + t.b * t.b), - l = Math.sqrt(e.a * e.a + e.b * e.b), - i = a - l, - s = r * r + n * n - i * i; - s = s < 0 ? 0 : Math.sqrt(s); - var w = 1 + 0.045 * a, - h = 1 + 0.015 * a, - c = o / 1, - b = i / w, - f = s / h, - d = c * c + b * b + f * f; - return d < 0 ? 0 : Math.sqrt(d); -} -export { E as a, A as b, C as c, x as g, k as h, T as r }; diff --git a/frontend-backup/_app/immutable/chunks/CmAc-jwz.js b/frontend-backup/_app/immutable/chunks/CmAc-jwz.js deleted file mode 100644 index 78ba442..0000000 --- a/frontend-backup/_app/immutable/chunks/CmAc-jwz.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9b7e0fbd-b2ac-4ffa-96b2-eb70cfb71837",e._sentryDebugIdIdentifier="sentry-dbid-9b7e0fbd-b2ac-4ffa-96b2-eb70cfb71837")})()}catch{}const f=()=>"Role",t=()=>"Cargo",r=(e={},n={})=>(n.locale??o())==="en"?f():t();export{r}; diff --git a/frontend-backup/_app/immutable/chunks/CmhsLcKe.js b/frontend-backup/_app/immutable/chunks/CmhsLcKe.js new file mode 100644 index 0000000..74ee92a --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CmhsLcKe.js @@ -0,0 +1,40 @@ +import { g as d } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "9d85ff60-dc7e-4571-ae15-2d64cdcd1f2b"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-9d85ff60-dc7e-4571-ae15-2d64cdcd1f2b")); + })(); +} catch {} +const o = () => "Error loading", + r = () => "Erro ao carregar", + l = (e = {}, n = {}) => ((n.locale ?? d()) === "en" ? o() : r()); +export { l as e }; diff --git a/frontend-backup/_app/immutable/chunks/Cp3o644A.js b/frontend-backup/_app/immutable/chunks/Cp3o644A.js deleted file mode 100644 index c45d05d..0000000 --- a/frontend-backup/_app/immutable/chunks/Cp3o644A.js +++ /dev/null @@ -1,15 +0,0 @@ -import { s as e, p as r } from "./KvV259my.js"; -const t = { - get error() { - return r.error; - }, - get status() { - return r.status; - }, - get url() { - return r.url; - }, -}; -e.updated.check; -const a = t; -export { a as p }; diff --git a/frontend-backup/_app/immutable/chunks/Cqwd83E5.js b/frontend-backup/_app/immutable/chunks/Cqwd83E5.js new file mode 100644 index 0000000..6999db0 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Cqwd83E5.js @@ -0,0 +1,420 @@ +import { g as u } from "./CV9xcpLq.js"; +import "./Ch2Ub8FX.js"; +import { o as De } from "./DoL3ojdE.js"; +import { + at as Be, + p as Te, + y as ae, + aw as h, + au as R, + f as X, + d as o, + s as c, + r as n, + n as Ee, + ax as se, + b, + c as Le, + t as k, + g as s, + u as ie, + b4 as J, + ay as le, + a as ce, + v as Ue, +} from "./CMvZtFtm.js"; +import { s as _ } from "./DVA6u9-7.js"; +import { p as Ie, i as C, r as Pe } from "./BF50aS-j.js"; +import { e as Ce } from "./CXkjfmFU.js"; +import { + f as ze, + r as D, + s as ue, + g as z, + a as Me, + b as Se, +} from "./C5yqZvKC.js"; +import { t as Ae } from "./BBgyHb-Z.js"; +import { c as Oe } from "./Dpga8uG-.js"; +import { b as je } from "./0wx1llIh.js"; +import { + i as Ne, + h as qe, + f as Ze, + j as Fe, + k as He, + P as Q, + t as W, +} from "./BRM3t761.js"; +import { o as Ke, L as Ve, s as Ye, a as Ge, g as Je } from "./CgCA7Awo.js"; +import { P as Qe } from "./D3yaN7Zl.js"; +import { c as We } from "./CHGjpGz-.js"; +import { g as Xe } from "./lE0oaQc5.js"; +import { f as $e } from "./wZ7b5CwQ.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "ec586f40-9abd-4bae-8453-2c8e973cd3d0"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-ec586f40-9abd-4bae-8453-2c8e973cd3d0")); + })(); +} catch {} +const et = () => "Copy", + tt = () => "Copiar", + lr = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? et() : tt()), + rt = () => "Report User", + nt = () => "Reportar usuário", + ot = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? rt() : nt()), + at = () => "Timeout User", + st = () => "Suspender usuário", + it = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? at() : st()), + lt = () => "Ban User", + ct = () => "Banir usuário", + ut = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? lt() : ct()), + dt = () => "+18, inappropriate link, highly suggestive content, ...", + pt = () => "+18, links inapropriados, conteúdo altamente sugestivo, ...", + _t = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? dt() : pt()), + ft = () => "Use of software to completely automate painting", + mt = () => "Uso de software para pintar de forma completamente automatizada ", + vt = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? ft() : mt()), + gt = () => "Racism, homophobia, hate groups, ...", + bt = () => "Racismo, homofobia, grupos de ódio, ...", + ht = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? gt() : bt()), + xt = () => "Messed up artworks for no reason", + yt = () => "Estragar desenho dos outros sem motivo", + wt = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? xt() : yt()), + Rt = () => "Released other's personal information without their consent", + kt = () => "Vazar informações pessoais de terceiros sem consentimento", + Dt = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? Rt() : kt()), + Bt = () => "Other reason not listed", + Tt = () => "Outro motivo não listado", + Et = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? Bt() : Tt()), + Lt = () => "Report", + Ut = () => "Reportar", + It = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? Lt() : Ut()), + Pt = () => "Report sent successfully", + Ct = () => "Denúncia enviada com sucesso", + zt = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? Pt() : Ct()), + Mt = () => "Report failed. Please try again later", + St = () => "Denúncia falhou. Por favor, tente novamente mais tarde", + At = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? Mt() : St()), + Ot = () => "Purchases", + jt = () => "Compras", + cr = (t = {}, e = {}) => ((e.locale ?? u()) === "en" ? Ot() : jt()); +var Nt = X( + '' + ), + qt = (t, e) => { + e(!1); + }, + Zt = X( + '

        ' + ), + Ft = X( + ' ' + ); +function ur(t, e) { + Te(e, !0); + const i = []; + let p = Ie(e, "open", 15), + B = R(!1), + T = R(""), + M = R(""), + E = R(null), + S = R(null); + const de = [ + { value: "inappropriate-content", label: Ne(), description: _t() }, + { value: "hate-speech", label: qe(), description: ht() }, + { value: "doxxing", label: Ze(), description: Dt() }, + { value: "bot", label: Fe(), description: vt() }, + { value: "griefing", label: He(), description: wt() }, + { value: "other", label: Ke(), description: Et() }, + ]; + De(() => { + const f = (m) => { + m.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", f), + () => document.removeEventListener("keydown", f) + ); + }), + ae(() => { + p() || (h(T, ""), h(M, "")); + }); + const pe = { + "report-user": `${Q}/report-user`, + timeout: `${Q}/moderator/timeout-user`, + ban: `${Q}/admin/ban-user`, + }; + var x = Ft(), + $ = o(x), + _e = c(o($), 2); + { + var fe = (f) => { + var m = Zt(), + A = o(m); + D(A); + var O = c(A, 2); + D(O); + var j = c(O, 2); + D(j); + var N = c(j, 2); + D(N); + var q = c(N, 2), + ee = o(q); + Qe(ee, { + get userId() { + return e.paintedBy.id; + }, + get pictureUrl() { + return e.paintedBy.picture; + }, + class: "size-14", + }); + var te = c(ee, 2), + Z = o(te), + me = o(Z); + { + var ve = (a) => { + var r = J(); + k((l) => _(r, l), [() => ot()]), b(a, r); + }, + ge = (a) => { + var r = le(), + l = ce(r); + { + var d = (v) => { + var g = J(); + k((y) => _(g, y), [() => it()]), b(v, g); + }, + U = (v) => { + var g = le(), + y = ce(g); + { + var I = (w) => { + var P = J(); + k((ke) => _(P, ke), [() => ut()]), b(w, P); + }; + C( + y, + (w) => { + e.action === "ban" && w(I); + }, + !0 + ); + } + b(v, g); + }; + C( + l, + (v) => { + e.action === "timeout" ? v(d) : v(U, !1); + }, + !0 + ); + } + b(a, r); + }; + C(me, (a) => { + e.action === "report-user" ? a(ve) : a(ge, !1); + }); + } + n(Z); + var F = c(Z, 2), + H = o(F), + be = o(H, !0); + n(H); + var re = c(H, 2), + he = o(re); + n(re), n(F), n(te), n(q); + var K = c(q, 2), + V = o(K), + xe = o(V); + n(V); + var ne = c(V, 2); + Ce( + ne, + 21, + () => de, + (a) => a.value, + (a, r) => { + var l = Nt(), + d = o(l); + D(d); + var U, + v = c(d, 2), + g = o(v), + y = o(g, !0); + n(g); + var I = c(g, 2), + w = o(I, !0); + n(I), + n(v), + n(l), + k(() => { + ue(d, "aria-label", s(r).label), + U !== (U = s(r).value) && + (d.value = (d.__value = s(r).value) ?? ""), + _(y, s(r).label), + _(w, s(r).description); + }), + Oe( + i, + [], + d, + () => (s(r).value, s(T)), + (P) => h(T, P) + ), + b(a, l); + } + ), + n(ne), + n(K); + var Y = c(K, 2), + ye = o(Y); + { + let a = ie(() => Je()), + r = ie(() => (s(T) === "doxxing" ? 20 : 5)); + Ve(ye, { + class: "h-20 rounded-lg", + name: "notes", + get placeholder() { + return s(a); + }, + max: 2056, + get min() { + return s(r); + }, + get value() { + return s(M); + }, + set value(l) { + h(M, l, !0); + }, + get validate() { + return s(S); + }, + set validate(l) { + h(S, l, !0); + }, + }); + } + n(Y); + var oe = c(Y, 2), + L = o(oe); + L.__click = [qt, p]; + var we = o(L, !0); + n(L); + var G = c(L, 2), + Re = o(G, !0); + n(G), + n(oe), + n(m), + je( + m, + (a) => h(E, a), + () => s(E) + ), + k( + (a, r, l, d) => { + ue(m, "action", pe[e.action]), + z(A, e.paintedBy.id), + z(O, e.latLon[0]), + z(j, e.latLon[1]), + z(N, e.zoom), + Me(F, 1, `font-medium ${a ?? ""} flex gap-1.5`), + _(be, e.paintedBy.name), + _(he, `#${e.paintedBy.id ?? ""}`), + _(xe, `${r ?? ""}:`), + _(we, l), + (G.disabled = s(B)), + _(Re, d); + }, + [() => Xe(e.paintedBy.id), () => Ye(), () => We(), () => It()] + ), + se("submit", m, async (a) => { + if ((a.preventDefault(), !s(B) && s(S)())) + try { + h(B, !0); + const r = new FormData(s(E)); + if (!r.get("reason")) { + W.error(Ge()); + return; + } + const l = await e.image; + r.append("image", l, `report-${Date.now()}.jpeg`); + const d = await fetch(s(E).action, { + method: "POST", + body: r, + credentials: "include", + }); + d.status === 200 || d.status === 409 + ? (W.info(zt()), p(!1)) + : W.error(At()); + } finally { + h(B, !1); + } + }), + Ae(2, m, () => $e), + b(f, m); + }; + C(_e, (f) => { + p() && f(fe); + }); + } + n($), + Ee(2), + n(x), + ze(x, () => (f) => { + ae(() => { + p() ? f.show() : f.close(); + }); + }), + se("close", x, () => p(!1)), + b(t, x), + Le(); +} +Be(["click"]); +var Ht = Ue( + '' +); +function dr(t, e) { + let i = Pe(e, ["$$slots", "$$events", "$$legacy"]); + var p = Ht(); + Se(p, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...i, + })), + b(t, p); +} +export { dr as D, ur as R, ut as b, lr as c, cr as p, ot as r, it as t }; diff --git a/frontend-backup/_app/immutable/chunks/CyB--sFG.js b/frontend-backup/_app/immutable/chunks/CyB--sFG.js new file mode 100644 index 0000000..68406c5 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/CyB--sFG.js @@ -0,0 +1,2129 @@ +var ee = (t) => { + throw TypeError(t); +}; +var Ve = (t, e, n) => e.has(t) || ee("Cannot " + n); +var b = (t, e, n) => ( + Ve(t, e, "read from private field"), n ? n.call(t) : e.get(t) + ), + P = (t, e, n) => + e.has(t) + ? ee("Cannot add the same private member more than once") + : e instanceof WeakSet + ? e.add(t) + : e.set(t, n); +import { v as qe, o as ne, a as Me } from "./DoL3ojdE.js"; +import { + az as Tt, + aZ as Ge, + au as C, + g as N, + aw as O, + aL as re, +} from "./CMvZtFtm.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "35463346-9c54-44df-a0ee-505101ff53d1"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-35463346-9c54-44df-a0ee-505101ff53d1")); + })(); +} catch {} +const q = []; +function Dt(t, e = Tt) { + let n = null; + const a = new Set(); + function r(o) { + if (Ge(t, o) && ((t = o), n)) { + const c = !q.length; + for (const l of a) l[1](), q.push(l, t); + if (c) { + for (let l = 0; l < q.length; l += 2) q[l][0](q[l + 1]); + q.length = 0; + } + } + } + function s(o) { + r(o(t)); + } + function i(o, c = Tt) { + const l = [o, c]; + return ( + a.add(l), + a.size === 1 && (n = e(r, s) || Tt), + o(t), + () => { + a.delete(l), a.size === 0 && n && (n(), (n = null)); + } + ); + } + return { set: r, update: s, subscribe: i }; +} +class Et { + constructor(e, n) { + (this.status = e), + typeof n == "string" + ? (this.body = { message: n }) + : n + ? (this.body = n) + : (this.body = { message: `Error: ${e}` }); + } + toString() { + return JSON.stringify(this.body); + } +} +class Ft { + constructor(e, n) { + (this.status = e), (this.location = n); + } +} +class Bt extends Error { + constructor(e, n, a) { + super(a), (this.status = e), (this.text = n); + } +} +new URL("sveltekit-internal://"); +function He(t, e) { + return t === "/" || e === "ignore" + ? t + : e === "never" + ? t.endsWith("/") + ? t.slice(0, -1) + : t + : e === "always" && !t.endsWith("/") + ? t + "/" + : t; +} +function Ke(t) { + return t.split("%25").map(decodeURI).join("%25"); +} +function Ye(t) { + for (const e in t) t[e] = decodeURIComponent(t[e]); + return t; +} +function Ut({ href: t }) { + return t.split("#")[0]; +} +function ze(t, e, n, a = !1) { + const r = new URL(t); + Object.defineProperty(r, "searchParams", { + value: new Proxy(r.searchParams, { + get(i, o) { + if (o === "get" || o === "getAll" || o === "has") + return (l) => (n(l), i[o](l)); + e(); + const c = Reflect.get(i, o); + return typeof c == "function" ? c.bind(i) : c; + }, + }), + enumerable: !0, + configurable: !0, + }); + const s = ["href", "pathname", "search", "toString", "toJSON"]; + a && s.push("hash"); + for (const i of s) + Object.defineProperty(r, i, { + get() { + return e(), t[i]; + }, + enumerable: !0, + configurable: !0, + }); + return r; +} +function We(...t) { + let e = 5381; + for (const n of t) + if (typeof n == "string") { + let a = n.length; + for (; a; ) e = (e * 33) ^ n.charCodeAt(--a); + } else if (ArrayBuffer.isView(n)) { + const a = new Uint8Array(n.buffer, n.byteOffset, n.byteLength); + let r = a.length; + for (; r; ) e = (e * 33) ^ a[--r]; + } else throw new TypeError("value must be a string or TypedArray"); + return (e >>> 0).toString(36); +} +new TextEncoder(); +const Je = new TextDecoder(); +function Xe(t) { + const e = atob(t), + n = new Uint8Array(e.length); + for (let a = 0; a < e.length; a++) n[a] = e.charCodeAt(a); + return n; +} +const Ze = window.fetch; +window.fetch = (t, e) => ( + (t instanceof Request + ? t.method + : (e == null ? void 0 : e.method) || "GET") !== "GET" && z.delete(Vt(t)), + Ze(t, e) +); +const z = new Map(); +function Qe(t, e) { + const n = Vt(t, e), + a = document.querySelector(n); + if (a != null && a.textContent) { + a.remove(); + let { body: r, ...s } = JSON.parse(a.textContent); + const i = a.getAttribute("data-ttl"); + return ( + i && z.set(n, { body: r, init: s, ttl: 1e3 * Number(i) }), + a.getAttribute("data-b64") !== null && (r = Xe(r)), + Promise.resolve(new Response(r, s)) + ); + } + return window.fetch(t, e); +} +function tn(t, e, n) { + if (z.size > 0) { + const a = Vt(t, n), + r = z.get(a); + if (r) { + if ( + performance.now() < r.ttl && + ["default", "force-cache", "only-if-cached", void 0].includes( + n == null ? void 0 : n.cache + ) + ) + return new Response(r.body, r.init); + z.delete(a); + } + } + return window.fetch(e, n); +} +function Vt(t, e) { + let a = `script[data-sveltekit-fetched][data-url=${JSON.stringify( + t instanceof Request ? t.url : t + )}]`; + if ((e != null && e.headers) || (e != null && e.body)) { + const r = []; + e.headers && r.push([...new Headers(e.headers)].join(",")), + e.body && + (typeof e.body == "string" || ArrayBuffer.isView(e.body)) && + r.push(e.body), + (a += `[data-hash="${We(...r)}"]`); + } + return a; +} +const en = /^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/; +function nn(t) { + const e = []; + return { + pattern: + t === "/" + ? /^\/$/ + : new RegExp( + `^${an(t) + .map((a) => { + const r = /^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a); + if (r) + return ( + e.push({ + name: r[1], + matcher: r[2], + optional: !1, + rest: !0, + chained: !0, + }), + "(?:/([^]*))?" + ); + const s = /^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a); + if (s) + return ( + e.push({ + name: s[1], + matcher: s[2], + optional: !0, + rest: !1, + chained: !0, + }), + "(?:/([^/]+))?" + ); + if (!a) return; + const i = a.split(/\[(.+?)\](?!\])/); + return ( + "/" + + i + .map((c, l) => { + if (l % 2) { + if (c.startsWith("x+")) + return xt( + String.fromCharCode(parseInt(c.slice(2), 16)) + ); + if (c.startsWith("u+")) + return xt( + String.fromCharCode( + ...c + .slice(2) + .split("-") + .map((u) => parseInt(u, 16)) + ) + ); + const d = en.exec(c), + [, p, y, f, m] = d; + return ( + e.push({ + name: f, + matcher: m, + optional: !!p, + rest: !!y, + chained: y ? l === 1 && i[0] === "" : !1, + }), + y ? "([^]*?)" : p ? "([^/]*)?" : "([^/]+?)" + ); + } + return xt(c); + }) + .join("") + ); + }) + .join("")}/?$` + ), + params: e, + }; +} +function rn(t) { + return t !== "" && !/^\([^)]+\)$/.test(t); +} +function an(t) { + return t.slice(1).split("/").filter(rn); +} +function on(t, e, n) { + const a = {}, + r = t.slice(1), + s = r.filter((o) => o !== void 0); + let i = 0; + for (let o = 0; o < e.length; o += 1) { + const c = e[o]; + let l = r[o - i]; + if ( + (c.chained && + c.rest && + i && + ((l = r + .slice(o - i, o + 1) + .filter((d) => d) + .join("/")), + (i = 0)), + l === void 0) + ) { + c.rest && (a[c.name] = ""); + continue; + } + if (!c.matcher || n[c.matcher](l)) { + a[c.name] = l; + const d = e[o + 1], + p = r[o + 1]; + d && !d.rest && d.optional && p && c.chained && (i = 0), + !d && !p && Object.keys(a).length === s.length && (i = 0); + continue; + } + if (c.optional && c.chained) { + i++; + continue; + } + return; + } + if (!i) return a; +} +function xt(t) { + return t + .normalize() + .replace(/[[\]]/g, "\\$&") + .replace(/%/g, "%25") + .replace(/\//g, "%2[Ff]") + .replace(/\?/g, "%3[Ff]") + .replace(/#/g, "%23") + .replace(/[.*+?^${}()|\\]/g, "\\$&"); +} +function sn({ nodes: t, server_loads: e, dictionary: n, matchers: a }) { + const r = new Set(e); + return Object.entries(n).map(([o, [c, l, d]]) => { + const { pattern: p, params: y } = nn(o), + f = { + id: o, + exec: (m) => { + const u = p.exec(m); + if (u) return on(u, y, a); + }, + errors: [1, ...(d || [])].map((m) => t[m]), + layouts: [0, ...(l || [])].map(i), + leaf: s(c), + }; + return ( + (f.errors.length = f.layouts.length = + Math.max(f.errors.length, f.layouts.length)), + f + ); + }); + function s(o) { + const c = o < 0; + return c && (o = ~o), [c, t[o]]; + } + function i(o) { + return o === void 0 ? o : [r.has(o), t[o]]; + } +} +function ve(t, e = JSON.parse) { + try { + return e(sessionStorage[t]); + } catch {} +} +function ae(t, e, n = JSON.stringify) { + const a = n(e); + try { + sessionStorage[t] = a; + } catch {} +} +var ge; +const x = + ((ge = globalThis.__sveltekit_18835iy) == null ? void 0 : ge.base) ?? ""; +var me; +const cn = + ((me = globalThis.__sveltekit_18835iy) == null ? void 0 : me.assets) ?? x, + be = "sveltekit:snapshot", + Ee = "sveltekit:scroll", + Ae = "sveltekit:states", + ln = "sveltekit:pageurl", + G = "sveltekit:history", + Z = "sveltekit:navigation", + F = { tap: 1, hover: 2, viewport: 3, eager: 4, off: -1, false: -1 }, + dt = location.origin; +function qt(t) { + if (t instanceof URL) return t; + let e = document.baseURI; + if (!e) { + const n = document.getElementsByTagName("base"); + e = n.length ? n[0].href : document.URL; + } + return new URL(t, e); +} +function At() { + return { x: pageXOffset, y: pageYOffset }; +} +function M(t, e) { + return t.getAttribute(`data-sveltekit-${e}`); +} +const oe = { ...F, "": F.hover }; +function ke(t) { + let e = t.assignedSlot ?? t.parentNode; + return (e == null ? void 0 : e.nodeType) === 11 && (e = e.host), e; +} +function Se(t, e) { + for (; t && t !== e; ) { + if (t.nodeName.toUpperCase() === "A" && t.hasAttribute("href")) return t; + t = ke(t); + } +} +function Nt(t, e, n) { + let a; + try { + if ( + ((a = new URL( + t instanceof SVGAElement ? t.href.baseVal : t.href, + document.baseURI + )), + n && a.hash.match(/^#[^/]/)) + ) { + const o = location.hash.split("#")[1] || "/"; + a.hash = `#${o}${a.hash}`; + } + } catch {} + const r = t instanceof SVGAElement ? t.target.baseVal : t.target, + s = + !a || + !!r || + kt(a, e, n) || + (t.getAttribute("rel") || "").split(/\s+/).includes("external"), + i = (a == null ? void 0 : a.origin) === dt && t.hasAttribute("download"); + return { url: a, external: s, target: r, download: i }; +} +function pt(t) { + let e = null, + n = null, + a = null, + r = null, + s = null, + i = null, + o = t; + for (; o && o !== document.documentElement; ) + a === null && (a = M(o, "preload-code")), + r === null && (r = M(o, "preload-data")), + e === null && (e = M(o, "keepfocus")), + n === null && (n = M(o, "noscroll")), + s === null && (s = M(o, "reload")), + i === null && (i = M(o, "replacestate")), + (o = ke(o)); + function c(l) { + switch (l) { + case "": + case "true": + return !0; + case "off": + case "false": + return !1; + default: + return; + } + } + return { + preload_code: oe[a ?? "off"], + preload_data: oe[r ?? "off"], + keepfocus: c(e), + noscroll: c(n), + reload: c(s), + replace_state: c(i), + }; +} +function se(t) { + const e = Dt(t); + let n = !0; + function a() { + (n = !0), e.update((i) => i); + } + function r(i) { + (n = !1), e.set(i); + } + function s(i) { + let o; + return e.subscribe((c) => { + (o === void 0 || (n && c !== o)) && i((o = c)); + }); + } + return { notify: a, set: r, subscribe: s }; +} +const Re = { v: () => {} }; +function fn() { + const { set: t, subscribe: e } = Dt(!1); + let n; + async function a() { + clearTimeout(n); + try { + const r = await fetch(`${cn}/_app/version.json`, { + headers: { pragma: "no-cache", "cache-control": "no-cache" }, + }); + if (!r.ok) return !1; + const i = (await r.json()).version !== qe; + return i && (t(!0), Re.v(), clearTimeout(n)), i; + } catch { + return !1; + } + } + return { subscribe: e, check: a }; +} +function kt(t, e, n) { + return t.origin !== dt || !t.pathname.startsWith(e) + ? !0 + : n + ? !( + t.pathname === e + "/" || + t.pathname === e + "/index.html" || + (t.protocol === "file:" && + t.pathname.replace(/\/[^/]+\.html?$/, "") === e) + ) + : !1; +} +function Zn(t) {} +function ie(t) { + const e = dn(t), + n = new ArrayBuffer(e.length), + a = new DataView(n); + for (let r = 0; r < n.byteLength; r++) a.setUint8(r, e.charCodeAt(r)); + return n; +} +const un = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +function dn(t) { + t.length % 4 === 0 && (t = t.replace(/==?$/, "")); + let e = "", + n = 0, + a = 0; + for (let r = 0; r < t.length; r++) + (n <<= 6), + (n |= un.indexOf(t[r])), + (a += 6), + a === 24 && + ((e += String.fromCharCode((n & 16711680) >> 16)), + (e += String.fromCharCode((n & 65280) >> 8)), + (e += String.fromCharCode(n & 255)), + (n = a = 0)); + return ( + a === 12 + ? ((n >>= 4), (e += String.fromCharCode(n))) + : a === 18 && + ((n >>= 2), + (e += String.fromCharCode((n & 65280) >> 8)), + (e += String.fromCharCode(n & 255))), + e + ); +} +const hn = -1, + pn = -2, + gn = -3, + mn = -4, + yn = -5, + _n = -6; +function wn(t, e) { + if (typeof t == "number") return r(t, !0); + if (!Array.isArray(t) || t.length === 0) throw new Error("Invalid input"); + const n = t, + a = Array(n.length); + function r(s, i = !1) { + if (s === hn) return; + if (s === gn) return NaN; + if (s === mn) return 1 / 0; + if (s === yn) return -1 / 0; + if (s === _n) return -0; + if (i) throw new Error("Invalid input"); + if (s in a) return a[s]; + const o = n[s]; + if (!o || typeof o != "object") a[s] = o; + else if (Array.isArray(o)) + if (typeof o[0] == "string") { + const c = o[0], + l = e == null ? void 0 : e[c]; + if (l) return (a[s] = l(r(o[1]))); + switch (c) { + case "Date": + a[s] = new Date(o[1]); + break; + case "Set": + const d = new Set(); + a[s] = d; + for (let f = 1; f < o.length; f += 1) d.add(r(o[f])); + break; + case "Map": + const p = new Map(); + a[s] = p; + for (let f = 1; f < o.length; f += 2) p.set(r(o[f]), r(o[f + 1])); + break; + case "RegExp": + a[s] = new RegExp(o[1], o[2]); + break; + case "Object": + a[s] = Object(o[1]); + break; + case "BigInt": + a[s] = BigInt(o[1]); + break; + case "null": + const y = Object.create(null); + a[s] = y; + for (let f = 1; f < o.length; f += 2) y[o[f]] = r(o[f + 1]); + break; + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "BigInt64Array": + case "BigUint64Array": { + const f = globalThis[c], + m = o[1], + u = ie(m), + h = new f(u); + a[s] = h; + break; + } + case "ArrayBuffer": { + const f = o[1], + m = ie(f); + a[s] = m; + break; + } + default: + throw new Error(`Unknown type ${c}`); + } + } else { + const c = new Array(o.length); + a[s] = c; + for (let l = 0; l < o.length; l += 1) { + const d = o[l]; + d !== pn && (c[l] = r(d)); + } + } + else { + const c = {}; + a[s] = c; + for (const l in o) { + const d = o[l]; + c[l] = r(d); + } + } + return a[s]; + } + return r(0); +} +const Ie = new Set([ + "load", + "prerender", + "csr", + "ssr", + "trailingSlash", + "config", +]); +[...Ie]; +const vn = new Set([...Ie]); +[...vn]; +function bn(t) { + return t.filter((e) => e != null); +} +const En = "x-sveltekit-invalidated", + An = "x-sveltekit-trailing-slash"; +function gt(t) { + return t instanceof Et || t instanceof Bt ? t.status : 500; +} +function kn(t) { + return t instanceof Bt ? t.text : "Internal Error"; +} +let L, Q, Pt; +const Sn = + ne.toString().includes("$$") || /function \w+\(\) \{\}/.test(ne.toString()); +var nt, rt, at, ot, st, it, ct, lt, ye, ft, _e, ut, we; +Sn + ? ((L = { + data: {}, + form: null, + error: null, + params: {}, + route: { id: null }, + state: {}, + status: -1, + url: new URL("https://example.com"), + }), + (Q = { current: null }), + (Pt = { current: !1 })) + : ((L = new ((ye = class { + constructor() { + P(this, nt, C({})); + P(this, rt, C(null)); + P(this, at, C(null)); + P(this, ot, C({})); + P(this, st, C({ id: null })); + P(this, it, C({})); + P(this, ct, C(-1)); + P(this, lt, C(new URL("https://example.com"))); + } + get data() { + return N(b(this, nt)); + } + set data(e) { + O(b(this, nt), e); + } + get form() { + return N(b(this, rt)); + } + set form(e) { + O(b(this, rt), e); + } + get error() { + return N(b(this, at)); + } + set error(e) { + O(b(this, at), e); + } + get params() { + return N(b(this, ot)); + } + set params(e) { + O(b(this, ot), e); + } + get route() { + return N(b(this, st)); + } + set route(e) { + O(b(this, st), e); + } + get state() { + return N(b(this, it)); + } + set state(e) { + O(b(this, it), e); + } + get status() { + return N(b(this, ct)); + } + set status(e) { + O(b(this, ct), e); + } + get url() { + return N(b(this, lt)); + } + set url(e) { + O(b(this, lt), e); + } + }), + (nt = new WeakMap()), + (rt = new WeakMap()), + (at = new WeakMap()), + (ot = new WeakMap()), + (st = new WeakMap()), + (it = new WeakMap()), + (ct = new WeakMap()), + (lt = new WeakMap()), + ye)()), + (Q = new ((_e = class { + constructor() { + P(this, ft, C(null)); + } + get current() { + return N(b(this, ft)); + } + set current(e) { + O(b(this, ft), e); + } + }), + (ft = new WeakMap()), + _e)()), + (Pt = new ((we = class { + constructor() { + P(this, ut, C(!1)); + } + get current() { + return N(b(this, ut)); + } + set current(e) { + O(b(this, ut), e); + } + }), + (ut = new WeakMap()), + we)()), + (Re.v = () => (Pt.current = !0))); +function Rn(t) { + Object.assign(L, t); +} +const In = "/__data.json", + Ln = ".html__data.json"; +function Tn(t) { + return t.endsWith(".html") + ? t.replace(/\.html$/, Ln) + : t.replace(/\/$/, "") + In; +} +const ce = { + spanContext() { + return Un; + }, + setAttribute() { + return this; + }, + setAttributes() { + return this; + }, + addEvent() { + return this; + }, + setStatus() { + return this; + }, + updateName() { + return this; + }, + end() { + return this; + }, + isRecording() { + return !1; + }, + recordException() { + return this; + }, + addLink() { + return this; + }, + addLinks() { + return this; + }, + }, + Un = { traceId: "", spanId: "", traceFlags: 0 }, + { onMount: xn, tick: Pn } = Me, + Cn = new Set(["icon", "shortcut icon", "apple-touch-icon"]), + V = ve(Ee) ?? {}, + tt = ve(be) ?? {}, + $ = { url: se({}), page: se({}), navigating: Dt(null), updated: fn() }; +function Mt(t) { + V[t] = At(); +} +function Nn(t, e) { + let n = t + 1; + for (; V[n]; ) delete V[n], (n += 1); + for (n = e + 1; tt[n]; ) delete tt[n], (n += 1); +} +function K(t) { + return (location.href = t.href), new Promise(() => {}); +} +async function Le() { + if ("serviceWorker" in navigator) { + const t = await navigator.serviceWorker.getRegistration(x || "/"); + t && (await t.update()); + } +} +function le() {} +let Gt, Ot, mt, j, jt, E; +globalThis.__sveltekit_18835iy.data; +const yt = [], + _t = []; +let T = null; +const ht = new Map(), + Ht = new Set(), + On = new Set(), + W = new Set(); +let w = { branch: [], error: null, url: null }, + Kt = !1, + wt = !1, + fe = !0, + et = !1, + Y = !1, + Te = !1, + Yt = !1, + Ue, + S, + U, + B; +const J = new Set(), + ue = new Map(); +async function nr(t, e, n) { + var s, i, o, c; + document.URL !== location.href && (location.href = location.href), + (E = t), + await ((i = (s = t.hooks).init) == null ? void 0 : i.call(s)), + (Gt = sn(t)), + (j = document.documentElement), + (jt = e), + (Ot = t.nodes[0]), + (mt = t.nodes[1]), + Ot(), + mt(), + (S = (o = history.state) == null ? void 0 : o[G]), + (U = (c = history.state) == null ? void 0 : c[Z]), + S || + ((S = U = Date.now()), + history.replaceState({ ...history.state, [G]: S, [Z]: U }, "")); + const a = V[S]; + function r() { + a && ((history.scrollRestoration = "manual"), scrollTo(a.x, a.y)); + } + n + ? (r(), await Kn(jt, n)) + : (await X({ + type: "enter", + url: qt(E.hash ? zn(new URL(location.href)) : location.href), + replace_state: !0, + }), + r()), + Hn(); +} +function jn() { + (yt.length = 0), (Yt = !1); +} +function xe(t) { + _t.some((e) => (e == null ? void 0 : e.snapshot)) && + (tt[t] = _t.map((e) => { + var n; + return (n = e == null ? void 0 : e.snapshot) == null + ? void 0 + : n.capture(); + })); +} +function Pe(t) { + var e; + (e = tt[t]) == null || + e.forEach((n, a) => { + var r, s; + (s = (r = _t[a]) == null ? void 0 : r.snapshot) == null || s.restore(n); + }); +} +function de() { + Mt(S), ae(Ee, V), xe(U), ae(be, tt); +} +async function zt(t, e, n, a) { + let r; + const s = await X({ + type: "goto", + url: qt(t), + keepfocus: e.keepFocus, + noscroll: e.noScroll, + replace_state: e.replaceState, + state: e.state, + redirect_count: n, + nav_token: a, + accept: () => { + e.invalidateAll && ((Yt = !0), (r = [...ue.keys()])), + e.invalidate && e.invalidate.forEach(Gn); + }, + }); + return ( + e.invalidateAll && + re() + .then(re) + .then(() => { + ue.forEach(({ resource: i }, o) => { + var c; + r != null && + r.includes(o) && + ((c = i.refresh) == null || c.call(i)); + }); + }), + s + ); +} +async function $n(t) { + if (t.id !== (T == null ? void 0 : T.id)) { + const e = {}; + J.add(e), + (T = { + id: t.id, + token: e, + promise: Oe({ ...t, preload: e }).then( + (n) => ( + J.delete(e), n.type === "loaded" && n.state.error && (T = null), n + ) + ), + }); + } + return T.promise; +} +async function Ct(t) { + var n; + const e = (n = await Rt(t, !1)) == null ? void 0 : n.route; + e && + (await Promise.all( + [...e.layouts, e.leaf].map((a) => (a == null ? void 0 : a[1]())) + )); +} +function Ce(t, e, n) { + var r; + w = t.state; + const a = document.querySelector("style[data-sveltekit]"); + if ( + (a && a.remove(), + Object.assign(L, t.props.page), + (Ue = new E.root({ + target: e, + props: { ...t.props, stores: $, components: _t }, + hydrate: n, + sync: !1, + })), + Pe(U), + n) + ) { + const s = { + from: null, + to: { + params: w.params, + route: { id: ((r = w.route) == null ? void 0 : r.id) ?? null }, + url: new URL(location.href), + }, + willUnload: !1, + type: "enter", + complete: Promise.resolve(), + }; + W.forEach((i) => i(s)); + } + wt = !0; +} +function vt({ + url: t, + params: e, + branch: n, + status: a, + error: r, + route: s, + form: i, +}) { + let o = "never"; + if (x && (t.pathname === x || t.pathname === x + "/")) o = "always"; + else + for (const f of n) + (f == null ? void 0 : f.slash) !== void 0 && (o = f.slash); + (t.pathname = He(t.pathname, o)), (t.search = t.search); + const c = { + type: "loaded", + state: { url: t, params: e, branch: n, error: r, route: s }, + props: { constructors: bn(n).map((f) => f.node.component), page: Zt(L) }, + }; + i !== void 0 && (c.props.form = i); + let l = {}, + d = !L, + p = 0; + for (let f = 0; f < Math.max(n.length, w.branch.length); f += 1) { + const m = n[f], + u = w.branch[f]; + (m == null ? void 0 : m.data) !== (u == null ? void 0 : u.data) && (d = !0), + m && + ((l = { ...l, ...m.data }), d && (c.props[`data_${p}`] = l), (p += 1)); + } + return ( + (!w.url || + t.href !== w.url.href || + w.error !== r || + (i !== void 0 && i !== L.form) || + d) && + (c.props.page = { + error: r, + params: e, + route: { id: (s == null ? void 0 : s.id) ?? null }, + state: {}, + status: a, + url: new URL(t), + form: i ?? null, + data: d ? l : L.data, + }), + c + ); +} +async function Wt({ + loader: t, + parent: e, + url: n, + params: a, + route: r, + server_data_node: s, +}) { + var d, p, y; + let i = null, + o = !0; + const c = { + dependencies: new Set(), + params: new Set(), + parent: !1, + route: !1, + url: !1, + search_params: new Set(), + }, + l = await t(); + if ((d = l.universal) != null && d.load) { + let f = function (...u) { + for (const h of u) { + const { href: A } = new URL(h, n); + c.dependencies.add(A); + } + }; + const m = { + tracing: { enabled: !1, root: ce, current: ce }, + route: new Proxy(r, { get: (u, h) => (o && (c.route = !0), u[h]) }), + params: new Proxy(a, { get: (u, h) => (o && c.params.add(h), u[h]) }), + data: (s == null ? void 0 : s.data) ?? null, + url: ze( + n, + () => { + o && (c.url = !0); + }, + (u) => { + o && c.search_params.add(u); + }, + E.hash + ), + async fetch(u, h) { + u instanceof Request && + (h = { + body: + u.method === "GET" || u.method === "HEAD" + ? void 0 + : await u.blob(), + cache: u.cache, + credentials: u.credentials, + headers: + [...u.headers].length > 0 + ? u == null + ? void 0 + : u.headers + : void 0, + integrity: u.integrity, + keepalive: u.keepalive, + method: u.method, + mode: u.mode, + redirect: u.redirect, + referrer: u.referrer, + referrerPolicy: u.referrerPolicy, + signal: u.signal, + ...h, + }); + const { resolved: A, promise: R } = Ne(u, h, n); + return o && f(A.href), R; + }, + setHeaders: () => {}, + depends: f, + parent() { + return o && (c.parent = !0), e(); + }, + untrack(u) { + o = !1; + try { + return u(); + } finally { + o = !0; + } + }, + }; + i = (await l.universal.load.call(null, m)) ?? null; + } + return { + node: l, + loader: t, + server: s, + universal: + (p = l.universal) != null && p.load + ? { type: "data", data: i, uses: c } + : null, + data: i ?? (s == null ? void 0 : s.data) ?? null, + slash: + ((y = l.universal) == null ? void 0 : y.trailingSlash) ?? + (s == null ? void 0 : s.slash), + }; +} +function Ne(t, e, n) { + let a = t instanceof Request ? t.url : t; + const r = new URL(a, n); + r.origin === n.origin && (a = r.href.slice(n.origin.length)); + const s = wt ? tn(a, r.href, e) : Qe(a, e); + return { resolved: r, promise: s }; +} +function he(t, e, n, a, r, s) { + if (Yt) return !0; + if (!r) return !1; + if ((r.parent && t) || (r.route && e) || (r.url && n)) return !0; + for (const i of r.search_params) if (a.has(i)) return !0; + for (const i of r.params) if (s[i] !== w.params[i]) return !0; + for (const i of r.dependencies) if (yt.some((o) => o(new URL(i)))) return !0; + return !1; +} +function Jt(t, e) { + return (t == null ? void 0 : t.type) === "data" + ? t + : (t == null ? void 0 : t.type) === "skip" + ? e ?? null + : null; +} +function Dn(t, e) { + if (!t) return new Set(e.searchParams.keys()); + const n = new Set([...t.searchParams.keys(), ...e.searchParams.keys()]); + for (const a of n) { + const r = t.searchParams.getAll(a), + s = e.searchParams.getAll(a); + r.every((i) => s.includes(i)) && + s.every((i) => r.includes(i)) && + n.delete(a); + } + return n; +} +function pe({ error: t, url: e, route: n, params: a }) { + return { + type: "loaded", + state: { error: t, url: e, route: n, params: a, branch: [] }, + props: { page: Zt(L), constructors: [] }, + }; +} +async function Oe({ + id: t, + invalidating: e, + url: n, + params: a, + route: r, + preload: s, +}) { + if ((T == null ? void 0 : T.id) === t) return J.delete(T.token), T.promise; + const { errors: i, layouts: o, leaf: c } = r, + l = [...o, c]; + i.forEach((g) => (g == null ? void 0 : g().catch(() => {}))), + l.forEach((g) => (g == null ? void 0 : g[1]().catch(() => {}))); + let d = null; + const p = w.url ? t !== bt(w.url) : !1, + y = w.route ? r.id !== w.route.id : !1, + f = Dn(w.url, n); + let m = !1; + const u = l.map((g, _) => { + var D; + const v = w.branch[_], + k = + !!(g != null && g[0]) && + ((v == null ? void 0 : v.loader) !== g[1] || + he(m, y, p, f, (D = v.server) == null ? void 0 : D.uses, a)); + return k && (m = !0), k; + }); + if (u.some(Boolean)) { + try { + d = await De(n, u); + } catch (g) { + const _ = await H(g, { url: n, params: a, route: { id: t } }); + return J.has(s) + ? pe({ error: _, url: n, params: a, route: r }) + : St({ status: gt(g), error: _, url: n, route: r }); + } + if (d.type === "redirect") return d; + } + const h = d == null ? void 0 : d.nodes; + let A = !1; + const R = l.map(async (g, _) => { + var It; + if (!g) return; + const v = w.branch[_], + k = h == null ? void 0 : h[_]; + if ( + (!k || k.type === "skip") && + g[1] === (v == null ? void 0 : v.loader) && + !he(A, y, p, f, (It = v.universal) == null ? void 0 : It.uses, a) + ) + return v; + if (((A = !0), (k == null ? void 0 : k.type) === "error")) throw k; + return Wt({ + loader: g[1], + url: n, + params: a, + route: r, + parent: async () => { + var te; + const Qt = {}; + for (let Lt = 0; Lt < _; Lt += 1) + Object.assign(Qt, (te = await R[Lt]) == null ? void 0 : te.data); + return Qt; + }, + server_data_node: Jt( + k === void 0 && g[0] ? { type: "skip" } : k ?? null, + g[0] ? (v == null ? void 0 : v.server) : void 0 + ), + }); + }); + for (const g of R) g.catch(() => {}); + const I = []; + for (let g = 0; g < l.length; g += 1) + if (l[g]) + try { + I.push(await R[g]); + } catch (_) { + if (_ instanceof Ft) return { type: "redirect", location: _.location }; + if (J.has(s)) + return pe({ + error: await H(_, { params: a, url: n, route: { id: r.id } }), + url: n, + params: a, + route: r, + }); + let v = gt(_), + k; + if (h != null && h.includes(_)) (v = _.status ?? v), (k = _.error); + else if (_ instanceof Et) k = _.body; + else { + if (await $.updated.check()) return await Le(), await K(n); + k = await H(_, { params: a, url: n, route: { id: r.id } }); + } + const D = await Fn(g, I, i); + return D + ? vt({ + url: n, + params: a, + branch: I.slice(0, D.idx).concat(D.node), + status: v, + error: k, + route: r, + }) + : await $e(n, { id: r.id }, k, v); + } + else I.push(void 0); + return vt({ + url: n, + params: a, + branch: I, + status: 200, + error: null, + route: r, + form: e ? void 0 : null, + }); +} +async function Fn(t, e, n) { + for (; t--; ) + if (n[t]) { + let a = t; + for (; !e[a]; ) a -= 1; + try { + return { + idx: a + 1, + node: { + node: await n[t](), + loader: n[t], + data: {}, + server: null, + universal: null, + }, + }; + } catch { + continue; + } + } +} +async function St({ status: t, error: e, url: n, route: a }) { + const r = {}; + let s = null; + if (E.server_loads[0] === 0) + try { + const o = await De(n, [!0]); + if (o.type !== "data" || (o.nodes[0] && o.nodes[0].type !== "data")) + throw 0; + s = o.nodes[0] ?? null; + } catch { + (n.origin !== dt || n.pathname !== location.pathname || Kt) && + (await K(n)); + } + try { + const o = await Wt({ + loader: Ot, + url: n, + params: r, + route: a, + parent: () => Promise.resolve({}), + server_data_node: Jt(s), + }), + c = { + node: await mt(), + loader: mt, + universal: null, + server: null, + data: null, + }; + return vt({ + url: n, + params: r, + branch: [o, c], + status: t, + error: e, + route: null, + }); + } catch (o) { + if (o instanceof Ft) return zt(new URL(o.location, location.href), {}, 0); + throw o; + } +} +async function Bn(t) { + const e = t.href; + if (ht.has(e)) return ht.get(e); + let n; + try { + const a = (async () => { + let r = + (await E.hooks.reroute({ + url: new URL(t), + fetch: async (s, i) => Ne(s, i, t).promise, + })) ?? t; + if (typeof r == "string") { + const s = new URL(t); + E.hash ? (s.hash = r) : (s.pathname = r), (r = s); + } + return r; + })(); + ht.set(e, a), (n = await a); + } catch { + ht.delete(e); + return; + } + return n; +} +async function Rt(t, e) { + if (t && !kt(t, x, E.hash)) { + const n = await Bn(t); + if (!n) return; + const a = Vn(n); + for (const r of Gt) { + const s = r.exec(a); + if (s) + return { id: bt(t), invalidating: e, route: r, params: Ye(s), url: t }; + } + } +} +function Vn(t) { + return ( + Ke( + E.hash + ? t.hash.replace(/^#/, "").replace(/[?#].+/, "") + : t.pathname.slice(x.length) + ) || "/" + ); +} +function bt(t) { + return (E.hash ? t.hash.replace(/^#/, "") : t.pathname) + t.search; +} +function je({ url: t, type: e, intent: n, delta: a }) { + let r = !1; + const s = Xt(w, n, t, e); + a !== void 0 && (s.navigation.delta = a); + const i = { + ...s.navigation, + cancel: () => { + (r = !0), s.reject(new Error("navigation cancelled")); + }, + }; + return et || Ht.forEach((o) => o(i)), r ? null : s; +} +async function X({ + type: t, + url: e, + popped: n, + keepfocus: a, + noscroll: r, + replace_state: s, + state: i = {}, + redirect_count: o = 0, + nav_token: c = {}, + accept: l = le, + block: d = le, +}) { + const p = B; + B = c; + const y = await Rt(e, !1), + f = + t === "enter" + ? Xt(w, y, e, t) + : je({ + url: e, + type: t, + delta: n == null ? void 0 : n.delta, + intent: y, + }); + if (!f) { + d(), B === c && (B = p); + return; + } + const m = S, + u = U; + l(), + (et = !0), + wt && + f.navigation.type !== "enter" && + $.navigating.set((Q.current = f.navigation)); + let h = y && (await Oe(y)); + if (!h) { + if (kt(e, x, E.hash)) return await K(e); + h = await $e( + e, + { id: null }, + await H(new Bt(404, "Not Found", `Not found: ${e.pathname}`), { + url: e, + params: {}, + route: { id: null }, + }), + 404 + ); + } + if (((e = (y == null ? void 0 : y.url) || e), B !== c)) + return f.reject(new Error("navigation aborted")), !1; + if (h.type === "redirect") + if (o >= 20) + h = await St({ + status: 500, + error: await H(new Error("Redirect loop"), { + url: e, + params: {}, + route: { id: null }, + }), + url: e, + route: { id: null }, + }); + else return await zt(new URL(h.location, e).href, {}, o + 1, c), !1; + else + h.props.page.status >= 400 && + (await $.updated.check()) && + (await Le(), await K(e)); + if ( + (jn(), + Mt(m), + xe(u), + h.props.page.url.pathname !== e.pathname && + (e.pathname = h.props.page.url.pathname), + (i = n ? n.state : i), + !n) + ) { + const g = s ? 0 : 1, + _ = { [G]: (S += g), [Z]: (U += g), [Ae]: i }; + (s ? history.replaceState : history.pushState).call(history, _, "", e), + s || Nn(S, U); + } + if (((T = null), (h.props.page.state = i), wt)) { + const g = ( + await Promise.all(Array.from(On, (_) => _(f.navigation))) + ).filter((_) => typeof _ == "function"); + if (g.length > 0) { + let _ = function () { + g.forEach((v) => { + W.delete(v); + }); + }; + g.push(_), + g.forEach((v) => { + W.add(v); + }); + } + (w = h.state), + h.props.page && (h.props.page.url = e), + Ue.$set(h.props), + Rn(h.props.page), + (Te = !0); + } else Ce(h, jt, !1); + const { activeElement: A } = document; + await Pn(); + const R = n ? n.scroll : r ? At() : null; + if (fe) { + const g = e.hash && document.getElementById(Be(e)); + R ? scrollTo(R.x, R.y) : g ? g.scrollIntoView() : scrollTo(0, 0); + } + const I = + document.activeElement !== A && document.activeElement !== document.body; + !a && !I && Yn(e), + (fe = !0), + h.props.page && Object.assign(L, h.props.page), + (et = !1), + t === "popstate" && Pe(U), + f.fulfil(void 0), + W.forEach((g) => g(f.navigation)), + $.navigating.set((Q.current = null)); +} +async function $e(t, e, n, a) { + return t.origin === dt && t.pathname === location.pathname && !Kt + ? await St({ status: a, error: n, url: t, route: e }) + : await K(t); +} +function qn() { + let t, e, n; + j.addEventListener("mousemove", (o) => { + const c = o.target; + clearTimeout(t), + (t = setTimeout(() => { + s(c, F.hover); + }, 20)); + }); + function a(o) { + o.defaultPrevented || s(o.composedPath()[0], F.tap); + } + j.addEventListener("mousedown", a), + j.addEventListener("touchstart", a, { passive: !0 }); + const r = new IntersectionObserver( + (o) => { + for (const c of o) + c.isIntersecting && (Ct(new URL(c.target.href)), r.unobserve(c.target)); + }, + { threshold: 0 } + ); + async function s(o, c) { + const l = Se(o, j), + d = l === e && c >= n; + if (!l || d) return; + const { url: p, external: y, download: f } = Nt(l, x, E.hash); + if (y || f) return; + const m = pt(l), + u = p && bt(w.url) === bt(p); + if (!(m.reload || u)) + if (c <= m.preload_data) { + (e = l), (n = F.tap); + const h = await Rt(p, !1); + if (!h) return; + $n(h); + } else c <= m.preload_code && ((e = l), (n = c), Ct(p)); + } + function i() { + r.disconnect(); + for (const o of j.querySelectorAll("a")) { + const { url: c, external: l, download: d } = Nt(o, x, E.hash); + if (l || d) continue; + const p = pt(o); + p.reload || + (p.preload_code === F.viewport && r.observe(o), + p.preload_code === F.eager && Ct(c)); + } + } + W.add(i), i(); +} +function H(t, e) { + if (t instanceof Et) return t.body; + const n = gt(t), + a = kn(t); + return ( + E.hooks.handleError({ error: t, event: e, status: n, message: a }) ?? { + message: a, + } + ); +} +function Mn(t, e) { + xn( + () => ( + t.add(e), + () => { + t.delete(e); + } + ) + ); +} +function rr(t) { + Mn(Ht, t); +} +function ar(t, e = {}) { + return ( + (t = new URL(qt(t))), + t.origin !== dt + ? Promise.reject(new Error("goto: invalid URL")) + : zt(t, e, 0) + ); +} +function Gn(t) { + if (typeof t == "function") yt.push(t); + else { + const { href: e } = new URL(t, location.href); + yt.push((n) => n.href === e); + } +} +function Hn() { + var e; + (history.scrollRestoration = "manual"), + addEventListener("beforeunload", (n) => { + let a = !1; + if ((de(), !et)) { + const r = Xt(w, void 0, null, "leave"), + s = { + ...r.navigation, + cancel: () => { + (a = !0), r.reject(new Error("navigation cancelled")); + }, + }; + Ht.forEach((i) => i(s)); + } + a + ? (n.preventDefault(), (n.returnValue = "")) + : (history.scrollRestoration = "auto"); + }), + addEventListener("visibilitychange", () => { + document.visibilityState === "hidden" && de(); + }), + ((e = navigator.connection) != null && e.saveData) || qn(), + j.addEventListener("click", async (n) => { + if ( + n.button || + n.which !== 1 || + n.metaKey || + n.ctrlKey || + n.shiftKey || + n.altKey || + n.defaultPrevented + ) + return; + const a = Se(n.composedPath()[0], j); + if (!a) return; + const { url: r, external: s, target: i, download: o } = Nt(a, x, E.hash); + if (!r) return; + if (i === "_parent" || i === "_top") { + if (window.parent !== window) return; + } else if (i && i !== "_self") return; + const c = pt(a); + if ( + (!(a instanceof SVGAElement) && + r.protocol !== location.protocol && + !(r.protocol === "https:" || r.protocol === "http:")) || + o + ) + return; + const [d, p] = (E.hash ? r.hash.replace(/^#/, "") : r.href).split("#"), + y = d === Ut(location); + if (s || (c.reload && (!y || !p))) { + je({ url: r, type: "link" }) ? (et = !0) : n.preventDefault(); + return; + } + if (p !== void 0 && y) { + const [, f] = w.url.href.split("#"); + if (f === p) { + if ( + (n.preventDefault(), + p === "" || + (p === "top" && a.ownerDocument.getElementById("top") === null)) + ) + window.scrollTo({ top: 0 }); + else { + const m = a.ownerDocument.getElementById(decodeURIComponent(p)); + m && (m.scrollIntoView(), m.focus()); + } + return; + } + if (((Y = !0), Mt(S), t(r), !c.replace_state)) return; + Y = !1; + } + n.preventDefault(), + await new Promise((f) => { + requestAnimationFrame(() => { + setTimeout(f, 0); + }), + setTimeout(f, 100); + }), + await X({ + type: "link", + url: r, + keepfocus: c.keepfocus, + noscroll: c.noscroll, + replace_state: c.replace_state ?? r.href === location.href, + }); + }), + j.addEventListener("submit", (n) => { + if (n.defaultPrevented) return; + const a = HTMLFormElement.prototype.cloneNode.call(n.target), + r = n.submitter; + if ( + ((r == null ? void 0 : r.formTarget) || a.target) === "_blank" || + ((r == null ? void 0 : r.formMethod) || a.method) !== "get" + ) + return; + const o = new URL( + ((r == null ? void 0 : r.hasAttribute("formaction")) && + (r == null ? void 0 : r.formAction)) || + a.action + ); + if (kt(o, x, !1)) return; + const c = n.target, + l = pt(c); + if (l.reload) return; + n.preventDefault(), n.stopPropagation(); + const d = new FormData(c), + p = r == null ? void 0 : r.getAttribute("name"); + p && d.append(p, (r == null ? void 0 : r.getAttribute("value")) ?? ""), + (o.search = new URLSearchParams(d).toString()), + X({ + type: "form", + url: o, + keepfocus: l.keepfocus, + noscroll: l.noscroll, + replace_state: l.replace_state ?? o.href === location.href, + }); + }), + addEventListener("popstate", async (n) => { + var a; + if (!$t) { + if ((a = n.state) != null && a[G]) { + const r = n.state[G]; + if (((B = {}), r === S)) return; + const s = V[r], + i = n.state[Ae] ?? {}, + o = new URL(n.state[ln] ?? location.href), + c = n.state[Z], + l = w.url ? Ut(location) === Ut(w.url) : !1; + if (c === U && (Te || l)) { + i !== L.state && (L.state = i), + t(o), + (V[S] = At()), + s && scrollTo(s.x, s.y), + (S = r); + return; + } + const p = r - S; + await X({ + type: "popstate", + url: o, + popped: { state: i, scroll: s, delta: p }, + accept: () => { + (S = r), (U = c); + }, + block: () => { + history.go(-p); + }, + nav_token: B, + }); + } else if (!Y) { + const r = new URL(location.href); + t(r), E.hash && location.reload(); + } + } + }), + addEventListener("hashchange", () => { + Y && + ((Y = !1), + history.replaceState( + { ...history.state, [G]: ++S, [Z]: U }, + "", + location.href + )); + }); + for (const n of document.querySelectorAll("link")) + Cn.has(n.rel) && (n.href = n.href); + addEventListener("pageshow", (n) => { + n.persisted && $.navigating.set((Q.current = null)); + }); + function t(n) { + (w.url = L.url = n), $.page.set(Zt(L)), $.page.notify(); + } +} +async function Kn( + t, + { + status: e = 200, + error: n, + node_ids: a, + params: r, + route: s, + server_route: i, + data: o, + form: c, + } +) { + Kt = !0; + const l = new URL(location.href); + let d; + ({ params: r = {}, route: s = { id: null } } = (await Rt(l, !1)) || {}), + (d = Gt.find(({ id: f }) => f === s.id)); + let p, + y = !0; + try { + const f = a.map(async (u, h) => { + const A = o[h]; + return ( + A != null && A.uses && (A.uses = Fe(A.uses)), + Wt({ + loader: E.nodes[u], + url: l, + params: r, + route: s, + parent: async () => { + const R = {}; + for (let I = 0; I < h; I += 1) + Object.assign(R, (await f[I]).data); + return R; + }, + server_data_node: Jt(A), + }) + ); + }), + m = await Promise.all(f); + if (d) { + const u = d.layouts; + for (let h = 0; h < u.length; h++) u[h] || m.splice(h, 0, void 0); + } + p = vt({ + url: l, + params: r, + branch: m, + status: e, + error: n, + form: c, + route: d ?? null, + }); + } catch (f) { + if (f instanceof Ft) { + await K(new URL(f.location, location.href)); + return; + } + (p = await St({ + status: gt(f), + error: await H(f, { url: l, params: r, route: s }), + url: l, + route: s, + })), + (t.textContent = ""), + (y = !1); + } + p.props.page && (p.props.page.state = {}), Ce(p, t, y); +} +async function De(t, e) { + var s; + const n = new URL(t); + (n.pathname = Tn(t.pathname)), + t.pathname.endsWith("/") && n.searchParams.append(An, "1"), + n.searchParams.append(En, e.map((i) => (i ? "1" : "0")).join("")); + const a = window.fetch, + r = await a(n.href, {}); + if (!r.ok) { + let i; + throw ( + ((s = r.headers.get("content-type")) != null && + s.includes("application/json") + ? (i = await r.json()) + : r.status === 404 + ? (i = "Not Found") + : r.status === 500 && (i = "Internal Error"), + new Et(r.status, i)) + ); + } + return new Promise(async (i) => { + var p; + const o = new Map(), + c = r.body.getReader(); + function l(y) { + return wn(y, { + ...E.decoders, + Promise: (f) => + new Promise((m, u) => { + o.set(f, { fulfil: m, reject: u }); + }), + }); + } + let d = ""; + for (;;) { + const { done: y, value: f } = await c.read(); + if (y && !d) break; + for ( + d += + !f && d + ? ` +` + : Je.decode(f, { stream: !0 }); + ; + + ) { + const m = d.indexOf(` +`); + if (m === -1) break; + const u = JSON.parse(d.slice(0, m)); + if (((d = d.slice(m + 1)), u.type === "redirect")) return i(u); + if (u.type === "data") + (p = u.nodes) == null || + p.forEach((h) => { + (h == null ? void 0 : h.type) === "data" && + ((h.uses = Fe(h.uses)), (h.data = l(h.data))); + }), + i(u); + else if (u.type === "chunk") { + const { id: h, data: A, error: R } = u, + I = o.get(h); + o.delete(h), R ? I.reject(l(R)) : I.fulfil(l(A)); + } + } + } + }); +} +function Fe(t) { + return { + dependencies: new Set((t == null ? void 0 : t.dependencies) ?? []), + params: new Set((t == null ? void 0 : t.params) ?? []), + parent: !!(t != null && t.parent), + route: !!(t != null && t.route), + url: !!(t != null && t.url), + search_params: new Set((t == null ? void 0 : t.search_params) ?? []), + }; +} +let $t = !1; +function Yn(t) { + const e = document.querySelector("[autofocus]"); + if (e) e.focus(); + else { + const n = Be(t); + if (n && document.getElementById(n)) { + const { x: r, y: s } = At(); + setTimeout(() => { + const i = history.state; + ($t = !0), + location.replace(`#${n}`), + E.hash && location.replace(t.hash), + history.replaceState(i, "", t.hash), + scrollTo(r, s), + ($t = !1); + }); + } else { + const r = document.body, + s = r.getAttribute("tabindex"); + (r.tabIndex = -1), + r.focus({ preventScroll: !0, focusVisible: !1 }), + s !== null + ? r.setAttribute("tabindex", s) + : r.removeAttribute("tabindex"); + } + const a = getSelection(); + if (a && a.type !== "None") { + const r = []; + for (let s = 0; s < a.rangeCount; s += 1) r.push(a.getRangeAt(s)); + setTimeout(() => { + if (a.rangeCount === r.length) { + for (let s = 0; s < a.rangeCount; s += 1) { + const i = r[s], + o = a.getRangeAt(s); + if ( + i.commonAncestorContainer !== o.commonAncestorContainer || + i.startContainer !== o.startContainer || + i.endContainer !== o.endContainer || + i.startOffset !== o.startOffset || + i.endOffset !== o.endOffset + ) + return; + } + a.removeAllRanges(); + } + }); + } + } +} +function Xt(t, e, n, a) { + var c, l; + let r, s; + const i = new Promise((d, p) => { + (r = d), (s = p); + }); + return ( + i.catch(() => {}), + { + navigation: { + from: { + params: t.params, + route: { id: ((c = t.route) == null ? void 0 : c.id) ?? null }, + url: t.url, + }, + to: n && { + params: (e == null ? void 0 : e.params) ?? null, + route: { + id: + ((l = e == null ? void 0 : e.route) == null ? void 0 : l.id) ?? + null, + }, + url: n, + }, + willUnload: !e, + type: a, + complete: i, + }, + fulfil: r, + reject: s, + } + ); +} +function Zt(t) { + return { + data: t.data, + error: t.error, + form: t.form, + params: t.params, + route: t.route, + state: t.state, + status: t.status, + url: t.url, + }; +} +function zn(t) { + const e = new URL(t); + return (e.hash = decodeURIComponent(t.hash)), e; +} +function Be(t) { + let e; + if (E.hash) { + const [, , n] = t.hash.split("#", 3); + e = n ?? ""; + } else e = t.hash.slice(1); + return decodeURIComponent(e); +} +export { nr as a, rr as b, ar as g, Zn as l, L as p, $ as s }; diff --git a/frontend-backup/_app/immutable/chunks/D1ivTjwA.js b/frontend-backup/_app/immutable/chunks/D1ivTjwA.js deleted file mode 100644 index 61eb8ec..0000000 --- a/frontend-backup/_app/immutable/chunks/D1ivTjwA.js +++ /dev/null @@ -1,37 +0,0 @@ -import { u as d, v as g, w as i, x as m, y as v, z as l, A as p, B as b, C as h } from "./DUoKDNpf.js"; -function x(n = !1) { - const s = d, - e = s.l.u; - if (!e) return; - let r = () => b(s.s); - if (n) { - let o = 0, - t = {}; - const _ = h(() => { - let c = !1; - const a = s.s; - for (const f in a) a[f] !== t[f] && ((t[f] = a[f]), (c = !0)); - return c && o++, o; - }); - r = () => p(_); - } - e.b.length && - g(() => { - u(s, r), l(e.b); - }), - i(() => { - const o = m(() => e.m.map(v)); - return () => { - for (const t of o) typeof t == "function" && t(); - }; - }), - e.a.length && - i(() => { - u(s, r), l(e.a); - }); -} -function u(n, s) { - if (n.l.s) for (const e of n.l.s) p(e); - s(); -} -export { x as i }; diff --git a/frontend-backup/_app/immutable/chunks/D2m5UD3G.js b/frontend-backup/_app/immutable/chunks/D2m5UD3G.js deleted file mode 100644 index a0fc948..0000000 --- a/frontend-backup/_app/immutable/chunks/D2m5UD3G.js +++ /dev/null @@ -1,79 +0,0 @@ -import { b8 as M, A as E, W as D, F as n, x as m, b9 as w, G as u } from "./DUoKDNpf.js"; -function C(q) { - let V = 0, - A = D(0), - o; - return () => { - M() && - (E(A), - n( - () => ( - V === 0 && (o = m(() => q(() => w(A)))), - (V += 1), - () => { - u(() => { - (V -= 1), V === 0 && (o == null || o(), (o = void 0), w(A)); - }); - } - ) - )); - }; -} -const Y = - "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAAEAAAHPAB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn6pqampqampqampqampqampqampqampqamp29vb29vb29vb29vb29vb29vb29vb29vb2/////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJANgAAAAAAAABzxmm4psAAAAAAD/+8DEAAAF7A1FtDAAIzil6D87kgAAAktuqNu7gOcCAAgEATB8HzcHwfB8+DgIROD4ABAEAQOeCH/iAMXLB9//BB3Lg+AAIgJwBCSoyQ0QES1dNwAYhicYDAiarL8aXE4ZXwYe9BkCgLS/Dg4MKQDMkgCjAiAxujyCQPmFYGBApKtkawq2qi9GqTYgLTpFiGdI9O1D5NmvVykb4Q0iC3QOU5rUBLCQ9IoJWFutwdm2v5UmUWmoy2K9QxuXw5RxuOwA2j2ytp2dZrWp2A2/kMupbmC5HKc2et0mbjSyeld35/luxXs97SW4/JJiln38v54TdWITN+nq3a1Pq93WW/3/vNLLf/////K6sDGP////6PvWxQBFoFJABHMZRCBoQGHo/GW6NG17vGW1Zm25xgoZkkHEXiCgHb9v4bi8evlnFw5BStnezI76WTtDaVvOnLL8s9+1t95y7trVqdf0zfXXtpb2dzNrj94XquvZ0M/NLX6l+vktgwC4jICYwfNAuho0IiQuj////9r102AEMKOmGkMYagJIsBaYDIChgOgJiENow+wojIdUMMSQEYSBUTMZQb0o8Sk0SAjR1t5HOrfQNex7cq0ENSD4pyGX7X0xZTZxIYcKtF3mZptVyMvMJudNbJV6UKXY/pfr32nNn0c5rcEZq6nJYnCORDbENctTk5KWZdS63RUTWFzZVbMV3mt6vHJyziusGx5zczaCWWIN////qcOYSSNcFwyUIAAjtY6tsg5hoaQgzCTEAExUCDBozfYO8qSY3T3MLBgMXFAyoIjSiUtF/0DIhCIBgG52VxKVSh3n1s08dh16HvYXJ8JdlBMxTY839i3jR8vtSlsKfeK0NnC/nM0tLW7FK8/Tyq3KYLswxTDQEYZQZBHdQsioRGajdWcNkfpNOahWTpUJEDyc9LCQ0gcfR2T8/////////2zGWVnTPOpjElOJxIKDcdxGcttHMdDk5//7cMTkAA8Uz0Nd1gAigaJm6eyxPIZMDGR0PEgIGrR49MVAZAmYoKJjqJJImBhKP02+o9Jznif5eVT2eHC0ysbdDWHcRBDdQtNsGHz5fw8l282p0U6XSlewoyfTz751qsNZZnm32XJ+unFUNjmoX7ZOpHcZdMd7QbwNu3WpMQZplTGVCmaoMR34247bm1mKtcK2aK+iQ4ivzjUezP///5geOSUMiJ4hUgCgC0K1WiCQN8vbLG0AQADBIlTNsRCYEzAEsjEodxELxqxP5Q/JrC1wBDIwZKExnLAxQW8x7DEIOswwBYw/DkUH4DcJwDDAHaJgbsOBr7QGlBha6NwBiCDcgQQAxYAIUQGBKBYuBJEAcWJEnQDE4pIly4MoYoqAEDCUAPQRAxqkAJ5GoBgyB4RikbLIcbhtIX7/+4DE6YAUZaM7rZheonoiZ3a28ASIsGAgt7D+AWIjkDSGWD0hfqSddyAgLAQ5QaQn8QDHWOoB4AMjh6g6BZYagtVSTqMjpBSeF6RccsrkVJwiZEC0VjA1cjv+xgbI/0TEwQN0GdBn///9q1N/9v//0/VsitLemubODxzX2KfBVKuK49NlTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7YMT0gCAhwyP52gAIAAA/w4AABKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==", - c = - "data:audio/mpeg;base64,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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7QMTxA9NhPR3sPM5AAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV", - G = "" + new URL("../assets/notification.CPyrWqU1.mp3", import.meta.url).href, - l = - "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAADAAAHVgCKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioru7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7///////////////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJAUQAAAAAAAAB1ZvGw9zAAAAAAD/+9DEAAAGgANNtBAAJL5DKPc9kEkIAKVy6ZvTvjNiAEAQA4fwcOKBAED85LicHw/BAEHfg+D4f/B8Hwf/Ococ/lz//4P//lwfAAAQCzgEApUAchBICAMDwGwwpg3jDHA2MWkaAxCQqDAjBQMMoFYwVgLDCrX1NfwPQxajfTO/VkEYD4sAuYOwYBgPgBGmQOAYIgDoKER8AN4KNYgISnpehHt0X2WsksoO27zM1duB3IgimTpnXNwTefFr9ly4HYK1lgtE8a3uVY23SCpDEpz4xL3DZVTV8ZygdeB4X+GuX6sTh9sVNAzuwVTIUztBdnLL60VnPsrt8f+fw/LCUy2caLDNmzuzGatmcu97UsVIYilyxqUcpaSPSW63KzZucjnakuzw+zlc5nD7yfL5zPv59z7/dQ9EolEu9pf5V1Y1+7Eayl1qkt8rXLGdi5nz//////////////////9/r9dw1l39/+P73/7////rWr1PdwxvJCIEbNPJ1QmAABaCxKJEmLpurTGDFSAYMB0FQxfggyqAeYtYSphnAwmFmBIYTATyaZhFiAGFIEqY0hJ5wAIxmFKCgaFaihh9A1GSlMSJYunOGWWB6pdsMvN5kqIig49MYApkLhJxyjmgkA1gIGDp1/CEIOLNkht0Ag8+NWKWQOW+aivhGVsj00TCW4CiJWJKkYRECshrDX0vHCHosi1cqERxakomvtDHA2TIAyjt52yUsMz8EMpZDLYdbq3V0XSRtfmhWkyaFM+YpBSrxQBAx03pQHPND6exc0OKEQq3lvKqM9hSCVHlv0yVdJhNZf+1Nx2GYZbqxt2qLJ9GC00ETr2vY+tmMTrOqWWTEkkUeh27PYQFIWX0rcGmtAswPXlLzWp6IVZe/ssk8FZ02r16Xdz3hTwPHJu3DEos63dr2927GPfz3+sM+93/63n3u//D///3nv9/rX71v97/PHuGWv7z/1Uo+X7tNTZ91XyoaWnob1bs9Yp86oQUCZIAAwEB7VQIuyrSQANCQ2GhZMQQ4MOCHMFxAMRwkMAxlMHzDM9QQMAxabsYLC+aWdScYCCZCoabxBOZSGWZcE2FB0xAuPp4zhWswUOJAsxAQMFDR4qN//vAxOUALmI5MbnsgE1xwGT3O7ABhADArk1MFMSD0qUALTCIVTNZ6aumhCoZWXmZixYEi2Kiy35BH02oFLPGCg7rCgQDQYw4ZYE5yE1rTPX1YekYKAYsD1hgHKA0ZBWZkQVFFhX2gNE3fFvt411kDPlAE5BAAMrWnKUzkdUQ4GcKFNJrQ1beZZDA2TyBhzsLNlCcxIeBUAMBCRkBamhsy15MFpJFZV1ovs/V/u78Uh+bo5dMT3L0lpqC3Wi9mVXpPlvn5TNa1Vyq409e/b1XvY/9bHmF3O1dwt2u5ZY444Y8q2a2Ou5Zd/GzvHV7tu/cx5fzv587Xua5ewz1n3+91X/LPesO2M9Zb7c5n3eOHcb+5KDXnf0F87HySsMMMAEIAAAwaBkBfgCqAAS3goeAwxXwM3QBieI+IEf/E3Ckh6ID/mLENJk99YSErPrb/4uVDX/7Vo/+KKI1///VTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+yDE4AAIHGcJGUmAAAAANIOAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV", - T = - "data:audio/mpeg;base64,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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+xDE1gPAAAGkHAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==", - p = - "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjYwLjE2LjEwMAAAAAAAAAAAAAAA//tAwAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAAACAAAE/gDLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL//////////////////////////////////////////////////////////////////8AAAAATGF2YzYwLjMxAAAAAAAAAAAAAAAAJAOoAAAAAAAABP6u4u+sAAAAAAD/+9DEAAAGhC1UdGMAJM1C6nc34FFSaWP+7vYBAAEOAAiHPJp6YAwtNgQl3qDHKBgo4Th/wf/Lh/8H35R3/4IAg7//gh/+UOcPgABgAAAB0YnM2TIZDUkAGYOFBdqBQkadAmEAgiDTKD1BYUFTGA4LixoJUcUsGkDJrfwYKEmBDRg+gZmBSBeYUQyJj2B9mAOAkYXINwOA3cdvzIrBtMDwFYOAEMZhFcyRwWTDiAGWo/LzSFp7vtDTSQ3bHKocXbPR6kg2U07Vs4KcJaDIIGTHZxDsSjEMyhPing6w8PSYAlwHfdtbFq3lAc1qmqzPxFFV1cbUkrP9GG/cbKIyivlRWq1mzvHDWNad73eE7q3JYPnIerXqKJTtzV3DmUzLZZFM7sv1z9U8czh5wVG4G3nru8cfyy+rhT5TtHTb7jzd3eWO6Wmy3R3e6/DW9b5l/b9e5///87///eY////9///////Df7/8vx/Xf///9f///52O6s3rZINILq82aqo6x1TAYDoYGInIIhASA++E8wYSIkIBd0NdJXDHQL2vFAR4YOsgwGFK6QQiPQDhcITBl4MWgDBEAosgZUgoDGkAwGFAMCCEDEQVAwaOgMChwEQXAwUBg5MTgJcAwARZxBj4Ng0LAigBGYdKKwKBIeIQDHCyhWxMlUmTx0xUCgJFBjnkGFkpk0ZF4gSLLRZJKGARbBQAsZDCCFAhxianDEuspVXRkOUWCGGCYsxZiXa0Ukl/8XOS4vxxjrDJR7RLyeiisxJn//y+11pJqNycOJkgiapIoo0UdS0dL//sUjzHxMgBgMUtVdLRYGrKTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//tgxOMAHVGjN7magIAAADSDgAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", - I = d(); -function d() { - const q = { plop: new Audio(l), smallPlop: new Audio(p), bigPlop: new Audio(Y), smallDropplet: new Audio(T), droppletAndPlop: new Audio(c), notification1: new Audio(G) }; - for (const V of Object.values(q)) (V.preload = "auto"), (V.volume = 0.3); - return q; -} -let t; -function L(q) { - return (t = q), i({ type: "previewPixels", data: q }); -} -function U() { - return (t = void 0), i({ type: "clearPixelPreview" }); -} -function J(q) { - return i({ type: "paintPixels", data: q }); -} -async function Q() { - t || (await i({ type: "clearPixelPreview" })); -} -function i(q) { - const V = Math.random(), - A = { ...q, id: V }; - return new Promise((o, s) => { - try { - const a = navigator.serviceWorker; - a || o(new Error("You're an using an older browser, some features might not work. Consider updating or changing browser.")); - const B = (g) => { - var e; - ((e = g.data) == null ? void 0 : e.id) === V && (o(void 0), a.removeEventListener("message", B)); - }; - a.addEventListener("message", B); - const r = navigator.serviceWorker.controller; - r - ? r.postMessage(A) - : navigator.serviceWorker.ready.then((g) => { - const e = g.active; - e ? e == null || e.postMessage(A) : o(new Error("Service worker registration not active")); - }); - } catch (a) { - s(a); - } - }); -} -function W({ pixel: q, season: V, tile: A }) { - return `t=(${A[0]},${A[1]});p=(${q[0]},${q[1]});s=${V}`; -} -export { I as A, U as a, J as b, C as c, W as g, L as p, Q as s }; diff --git a/frontend-backup/_app/immutable/chunks/D35KiPL1.js b/frontend-backup/_app/immutable/chunks/D35KiPL1.js deleted file mode 100644 index 591fd19..0000000 --- a/frontend-backup/_app/immutable/chunks/D35KiPL1.js +++ /dev/null @@ -1,2 +0,0 @@ -import { al as a } from "./DUoKDNpf.js"; -a(); diff --git a/frontend-backup/_app/immutable/chunks/D3yDgRbd.js b/frontend-backup/_app/immutable/chunks/D3yDgRbd.js new file mode 100644 index 0000000..1e1086c --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/D3yDgRbd.js @@ -0,0 +1,97 @@ +import "./Ch2Ub8FX.js"; +import { + p as m, + f as c, + t as A, + b as f, + c as v, + d as y, + s as _, + r as h, +} from "./CMvZtFtm.js"; +import { p as w, i as x, r as E } from "./BF50aS-j.js"; +import { b as T, a as r, s as S } from "./C5yqZvKC.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + a = new e.Error().stack; + a && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[a] = "bfaa257f-561a-4221-9d82-ad8618895a89"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-bfaa257f-561a-4221-9d82-ad8618895a89")); + })(); +} catch {} +const B = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABJQTFRFAQEBAAAAHGHnRcxVStlbMXLnk8SHtQAAAAF0Uk5TAEDm2GYAAABMSURBVHjadc9JCgAhDERRa7r/lZs0ikawdv+tkvEYALS07U2QawmOTo1oQBKr8/cUMLY7JLEPYLW0oISSNLtgiojRBfv0AuB67vH3B+FjAY/0rrGiAAAAAElFTkSuQmCC"; +var L = c("FurryPlace"), + R = c('
        FurryPlace logo
        '); +function z(e, a) { + m(a, !0); + let t = w(a, "size", 3, "default"), + g = E(a, ["$$slots", "$$events", "$$legacy", "hasText", "size"]); + var l = R(); + T(l, () => ({ ...g, class: `flex items-center gap-1.5 ${a.class ?? ""}` })); + var i = y(l); + let o; + var p = _(i, 2); + { + var u = (s) => { + var d = L(); + let n; + A( + (b) => (n = r(d, 1, "text-base-content font-pixel", null, n, b)), + [ + () => ({ + "text-4xl": t() === "default", + "text-5xl": t() === "lg" || t() === "medium", + }), + ] + ), + f(s, d); + }; + x(p, (s) => { + a.hasText && s(u); + }); + } + h(l), + A( + (s) => { + (o = r(i, 1, "pixelated", null, o, s)), S(i, "src", B); + }, + [ + () => ({ + "size-10": t() === "default", + "size-16": t() === "medium", + "size-20": t() === "lg", + }), + ] + ), + f(e, l), + v(); +} +export { z as L }; diff --git a/frontend-backup/_app/immutable/chunks/D3yaN7Zl.js b/frontend-backup/_app/immutable/chunks/D3yaN7Zl.js new file mode 100644 index 0000000..3dcbe65 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/D3yaN7Zl.js @@ -0,0 +1,1354 @@ +var $e = Object.defineProperty; +var Re = (e) => { + throw TypeError(e); +}; +var eo = (e, o, r) => + o in e + ? $e(e, o, { enumerable: !0, configurable: !0, writable: !0, value: r }) + : (e[o] = r); +var Te = (e, o, r) => eo(e, typeof o != "symbol" ? o + "" : o, r), + ne = (e, o, r) => o.has(e) || Re("Cannot " + r); +var ae = (e, o, r) => ( + ne(e, o, "read from private field"), r ? r.call(e) : o.get(e) + ), + K = (e, o, r) => + o.has(e) + ? Re("Cannot add the same private member more than once") + : o instanceof WeakSet + ? o.add(e) + : o.set(e, r), + Pe = (e, o, r, t) => ( + ne(e, o, "write to private field"), t ? t.call(e, r) : o.set(e, r), r + ), + ie = (e, o, r) => (ne(e, o, "access private method"), r); +import "./Ch2Ub8FX.js"; +import { + p as Fe, + f as xe, + d as de, + r as me, + t as pe, + b as ue, + c as Ue, +} from "./CMvZtFtm.js"; +import { i as oo } from "./BF50aS-j.js"; +import { a as fe, c as ro, s as to } from "./C5yqZvKC.js"; +import { h as so } from "./DueIxFLX.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new e.Error().stack; + o && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[o] = "1e957b58-5144-4041-9888-816ae37d90f2"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-1e957b58-5144-4041-9888-816ae37d90f2")); + })(); +} catch {} +const Ee = 9, + no = 95, + ao = 45, + Ge = 5; +function io(e) { + return e.split("").reduce((o, r) => (o ^ r.charCodeAt(0)) * -Ge, Ge) >>> 2; +} +function Be(e = "", o = no, r = ao, t = io) { + const a = t(e), + d = (a % Ee) * (360 / Ee); + return ( + [...Array(e ? 25 : 0)].reduce( + (l, u, i) => + a & (1 << i % 15) + ? l + + `` + : l, + `` + ) + "" + ); +} +var Ve, A, oe, D, H, be, je; +((Ve = globalThis.customElements) != null && Ve.get("minidenticon-svg")) || + (je = globalThis.customElements) == null || + je.define( + "minidenticon-svg", + ((A = class extends HTMLElement { + constructor() { + super(...arguments); + K(this, H); + K(this, D, !1); + } + connectedCallback() { + ie(this, H, be).call(this), Pe(this, D, !0); + } + attributeChangedCallback() { + ae(this, D) && ie(this, H, be).call(this); + } + }), + (oe = new WeakMap()), + (D = new WeakMap()), + (H = new WeakSet()), + (be = function () { + var a; + const r = A.observedAttributes.map((d) => this.getAttribute(d) || void 0), + t = r.join(","); + this.innerHTML = (a = ae(A, oe))[t] ?? (a[t] = Be(...r)); + }), + Te(A, "observedAttributes", ["username", "saturation", "lightness"]), + K(A, oe, {}), + A) + ); +var lo = xe("
        "); +function co(e, o) { + Fe(o, !0); + var r = lo(), + t = de(r); + so(t, () => Be(o.userId.toString(), 95, 45)), + me(r), + pe(() => fe(r, 1, `bg-base-200 minidenticon ${o.class ?? "" ?? ""}`)), + ue(e, r), + Ue(); +} +const ye = "-", + mo = (e) => { + const o = uo(e), + { conflictingClassGroups: r, conflictingClassGroupModifiers: t } = e; + return { + getClassGroupId: (l) => { + const u = l.split(ye); + return u[0] === "" && u.length !== 1 && u.shift(), We(u, o) || po(l); + }, + getConflictingClassGroupIds: (l, u) => { + const i = r[l] || []; + return u && t[l] ? [...i, ...t[l]] : i; + }, + }; + }, + We = (e, o) => { + var l; + if (e.length === 0) return o.classGroupId; + const r = e[0], + t = o.nextPart.get(r), + a = t ? We(e.slice(1), t) : void 0; + if (a) return a; + if (o.validators.length === 0) return; + const d = e.join(ye); + return (l = o.validators.find(({ validator: u }) => u(d))) == null + ? void 0 + : l.classGroupId; + }, + Le = /^\[(.+)\]$/, + po = (e) => { + if (Le.test(e)) { + const o = Le.exec(e)[1], + r = o == null ? void 0 : o.substring(0, o.indexOf(":")); + if (r) return "arbitrary.." + r; + } + }, + uo = (e) => { + const { theme: o, classGroups: r } = e, + t = { nextPart: new Map(), validators: [] }; + for (const a in r) ge(r[a], t, a, o); + return t; + }, + ge = (e, o, r, t) => { + e.forEach((a) => { + if (typeof a == "string") { + const d = a === "" ? o : _e(o, a); + d.classGroupId = r; + return; + } + if (typeof a == "function") { + if (fo(a)) { + ge(a(t), o, r, t); + return; + } + o.validators.push({ validator: a, classGroupId: r }); + return; + } + Object.entries(a).forEach(([d, l]) => { + ge(l, _e(o, d), r, t); + }); + }); + }, + _e = (e, o) => { + let r = e; + return ( + o.split(ye).forEach((t) => { + r.nextPart.has(t) || + r.nextPart.set(t, { nextPart: new Map(), validators: [] }), + (r = r.nextPart.get(t)); + }), + r + ); + }, + fo = (e) => e.isThemeGetter, + bo = (e) => { + if (e < 1) return { get: () => {}, set: () => {} }; + let o = 0, + r = new Map(), + t = new Map(); + const a = (d, l) => { + r.set(d, l), o++, o > e && ((o = 0), (t = r), (r = new Map())); + }; + return { + get(d) { + let l = r.get(d); + if (l !== void 0) return l; + if ((l = t.get(d)) !== void 0) return a(d, l), l; + }, + set(d, l) { + r.has(d) ? r.set(d, l) : a(d, l); + }, + }; + }, + he = "!", + we = ":", + go = we.length, + ho = (e) => { + const { prefix: o, experimentalParseClassName: r } = e; + let t = (a) => { + const d = []; + let l = 0, + u = 0, + i = 0, + f; + for (let y = 0; y < a.length; y++) { + let k = a[y]; + if (l === 0 && u === 0) { + if (k === we) { + d.push(a.slice(i, y)), (i = y + go); + continue; + } + if (k === "/") { + f = y; + continue; + } + } + k === "[" ? l++ : k === "]" ? l-- : k === "(" ? u++ : k === ")" && u--; + } + const h = d.length === 0 ? a : a.substring(i), + C = wo(h), + j = C !== h, + F = f && f > i ? f - i : void 0; + return { + modifiers: d, + hasImportantModifier: j, + baseClassName: C, + maybePostfixModifierPosition: F, + }; + }; + if (o) { + const a = o + we, + d = t; + t = (l) => + l.startsWith(a) + ? d(l.substring(a.length)) + : { + isExternal: !0, + modifiers: [], + hasImportantModifier: !1, + baseClassName: l, + maybePostfixModifierPosition: void 0, + }; + } + if (r) { + const a = t; + t = (d) => r({ className: d, parseClassName: a }); + } + return t; + }, + wo = (e) => + e.endsWith(he) + ? e.substring(0, e.length - 1) + : e.startsWith(he) + ? e.substring(1) + : e, + xo = (e) => { + const o = Object.fromEntries(e.orderSensitiveModifiers.map((t) => [t, !0])); + return (t) => { + if (t.length <= 1) return t; + const a = []; + let d = []; + return ( + t.forEach((l) => { + l[0] === "[" || o[l] ? (a.push(...d.sort(), l), (d = [])) : d.push(l); + }), + a.push(...d.sort()), + a + ); + }; + }, + yo = (e) => ({ + cache: bo(e.cacheSize), + parseClassName: ho(e), + sortModifiers: xo(e), + ...mo(e), + }), + ko = /\s+/, + vo = (e, o) => { + const { + parseClassName: r, + getClassGroupId: t, + getConflictingClassGroupIds: a, + sortModifiers: d, + } = o, + l = [], + u = e.trim().split(ko); + let i = ""; + for (let f = u.length - 1; f >= 0; f -= 1) { + const h = u[f], + { + isExternal: C, + modifiers: j, + hasImportantModifier: F, + baseClassName: y, + maybePostfixModifierPosition: k, + } = r(h); + if (C) { + i = h + (i.length > 0 ? " " + i : i); + continue; + } + let E = !!k, + I = t(E ? y.substring(0, k) : y); + if (!I) { + if (!E) { + i = h + (i.length > 0 ? " " + i : i); + continue; + } + if (((I = t(y)), !I)) { + i = h + (i.length > 0 ? " " + i : i); + continue; + } + E = !1; + } + const q = d(j).join(":"), + U = F ? q + he : q, + G = U + I; + if (l.includes(G)) continue; + l.push(G); + const L = a(I, E); + for (let R = 0; R < L.length; ++R) { + const B = L[R]; + l.push(U + B); + } + i = h + (i.length > 0 ? " " + i : i); + } + return i; + }; +function zo() { + let e = 0, + o, + r, + t = ""; + for (; e < arguments.length; ) + (o = arguments[e++]) && (r = De(o)) && (t && (t += " "), (t += r)); + return t; +} +const De = (e) => { + if (typeof e == "string") return e; + let o, + r = ""; + for (let t = 0; t < e.length; t++) + e[t] && (o = De(e[t])) && (r && (r += " "), (r += o)); + return r; +}; +function So(e, ...o) { + let r, + t, + a, + d = l; + function l(i) { + const f = o.reduce((h, C) => C(h), e()); + return (r = yo(f)), (t = r.cache.get), (a = r.cache.set), (d = u), u(i); + } + function u(i) { + const f = t(i); + if (f) return f; + const h = vo(i, r); + return a(i, h), h; + } + return function () { + return d(zo.apply(null, arguments)); + }; +} +const b = (e) => { + const o = (r) => r[e] || []; + return (o.isThemeGetter = !0), o; + }, + He = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, + qe = /^\((?:(\w[\w-]*):)?(.+)\)$/i, + Ao = /^\d+\/\d+$/, + Co = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, + Mo = + /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, + Io = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, + Ro = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, + To = + /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, + N = (e) => Ao.test(e), + p = (e) => !!e && !Number.isNaN(Number(e)), + M = (e) => !!e && Number.isInteger(Number(e)), + le = (e) => e.endsWith("%") && p(e.slice(0, -1)), + S = (e) => Co.test(e), + Po = () => !0, + Eo = (e) => Mo.test(e) && !Io.test(e), + Je = () => !1, + Go = (e) => Ro.test(e), + Lo = (e) => To.test(e), + _o = (e) => !s(e) && !n(e), + No = (e) => O(e, Qe, Je), + s = (e) => He.test(e), + P = (e) => O(e, Ze, Eo), + ce = (e) => O(e, Uo, p), + Ne = (e) => O(e, Xe, Je), + Oo = (e) => O(e, Ye, Lo), + $ = (e) => O(e, Ke, Go), + n = (e) => qe.test(e), + W = (e) => V(e, Ze), + Vo = (e) => V(e, Bo), + Oe = (e) => V(e, Xe), + jo = (e) => V(e, Qe), + Fo = (e) => V(e, Ye), + ee = (e) => V(e, Ke, !0), + O = (e, o, r) => { + const t = He.exec(e); + return t ? (t[1] ? o(t[1]) : r(t[2])) : !1; + }, + V = (e, o, r = !1) => { + const t = qe.exec(e); + return t ? (t[1] ? o(t[1]) : r) : !1; + }, + Xe = (e) => e === "position" || e === "percentage", + Ye = (e) => e === "image" || e === "url", + Qe = (e) => e === "length" || e === "size" || e === "bg-size", + Ze = (e) => e === "length", + Uo = (e) => e === "number", + Bo = (e) => e === "family-name", + Ke = (e) => e === "shadow", + Wo = () => { + const e = b("color"), + o = b("font"), + r = b("text"), + t = b("font-weight"), + a = b("tracking"), + d = b("leading"), + l = b("breakpoint"), + u = b("container"), + i = b("spacing"), + f = b("radius"), + h = b("shadow"), + C = b("inset-shadow"), + j = b("text-shadow"), + F = b("drop-shadow"), + y = b("blur"), + k = b("perspective"), + E = b("aspect"), + I = b("ease"), + q = b("animate"), + U = () => [ + "auto", + "avoid", + "all", + "avoid-page", + "page", + "left", + "right", + "column", + ], + G = () => [ + "center", + "top", + "bottom", + "left", + "right", + "top-left", + "left-top", + "top-right", + "right-top", + "bottom-right", + "right-bottom", + "bottom-left", + "left-bottom", + ], + L = () => [...G(), n, s], + R = () => ["auto", "hidden", "clip", "visible", "scroll"], + B = () => ["auto", "contain", "none"], + m = () => [n, s, i], + v = () => [N, "full", "auto", ...m()], + ke = () => [M, "none", "subgrid", n, s], + ve = () => ["auto", { span: ["full", M, n, s] }, M, n, s], + J = () => [M, "auto", n, s], + ze = () => ["auto", "min", "max", "fr", n, s], + re = () => [ + "start", + "end", + "center", + "between", + "around", + "evenly", + "stretch", + "baseline", + "center-safe", + "end-safe", + ], + _ = () => [ + "start", + "end", + "center", + "stretch", + "center-safe", + "end-safe", + ], + z = () => ["auto", ...m()], + T = () => [ + N, + "auto", + "full", + "dvw", + "dvh", + "lvw", + "lvh", + "svw", + "svh", + "min", + "max", + "fit", + ...m(), + ], + c = () => [e, n, s], + Se = () => [...G(), Oe, Ne, { position: [n, s] }], + Ae = () => ["no-repeat", { repeat: ["", "x", "y", "space", "round"] }], + Ce = () => ["auto", "cover", "contain", jo, No, { size: [n, s] }], + te = () => [le, W, P], + w = () => ["", "none", "full", f, n, s], + x = () => ["", p, W, P], + X = () => ["solid", "dashed", "dotted", "double"], + Me = () => [ + "normal", + "multiply", + "screen", + "overlay", + "darken", + "lighten", + "color-dodge", + "color-burn", + "hard-light", + "soft-light", + "difference", + "exclusion", + "hue", + "saturation", + "color", + "luminosity", + ], + g = () => [p, le, Oe, Ne], + Ie = () => ["", "none", y, n, s], + Y = () => ["none", p, n, s], + Q = () => ["none", p, n, s], + se = () => [p, n, s], + Z = () => [N, "full", ...m()]; + return { + cacheSize: 500, + theme: { + animate: ["spin", "ping", "pulse", "bounce"], + aspect: ["video"], + blur: [S], + breakpoint: [S], + color: [Po], + container: [S], + "drop-shadow": [S], + ease: ["in", "out", "in-out"], + font: [_o], + "font-weight": [ + "thin", + "extralight", + "light", + "normal", + "medium", + "semibold", + "bold", + "extrabold", + "black", + ], + "inset-shadow": [S], + leading: ["none", "tight", "snug", "normal", "relaxed", "loose"], + perspective: [ + "dramatic", + "near", + "normal", + "midrange", + "distant", + "none", + ], + radius: [S], + shadow: [S], + spacing: ["px", p], + text: [S], + "text-shadow": [S], + tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"], + }, + classGroups: { + aspect: [{ aspect: ["auto", "square", N, s, n, E] }], + container: ["container"], + columns: [{ columns: [p, s, n, u] }], + "break-after": [{ "break-after": U() }], + "break-before": [{ "break-before": U() }], + "break-inside": [ + { "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"] }, + ], + "box-decoration": [{ "box-decoration": ["slice", "clone"] }], + box: [{ box: ["border", "content"] }], + display: [ + "block", + "inline-block", + "inline", + "flex", + "inline-flex", + "table", + "inline-table", + "table-caption", + "table-cell", + "table-column", + "table-column-group", + "table-footer-group", + "table-header-group", + "table-row-group", + "table-row", + "flow-root", + "grid", + "inline-grid", + "contents", + "list-item", + "hidden", + ], + sr: ["sr-only", "not-sr-only"], + float: [{ float: ["right", "left", "none", "start", "end"] }], + clear: [{ clear: ["left", "right", "both", "none", "start", "end"] }], + isolation: ["isolate", "isolation-auto"], + "object-fit": [ + { object: ["contain", "cover", "fill", "none", "scale-down"] }, + ], + "object-position": [{ object: L() }], + overflow: [{ overflow: R() }], + "overflow-x": [{ "overflow-x": R() }], + "overflow-y": [{ "overflow-y": R() }], + overscroll: [{ overscroll: B() }], + "overscroll-x": [{ "overscroll-x": B() }], + "overscroll-y": [{ "overscroll-y": B() }], + position: ["static", "fixed", "absolute", "relative", "sticky"], + inset: [{ inset: v() }], + "inset-x": [{ "inset-x": v() }], + "inset-y": [{ "inset-y": v() }], + start: [{ start: v() }], + end: [{ end: v() }], + top: [{ top: v() }], + right: [{ right: v() }], + bottom: [{ bottom: v() }], + left: [{ left: v() }], + visibility: ["visible", "invisible", "collapse"], + z: [{ z: [M, "auto", n, s] }], + basis: [{ basis: [N, "full", "auto", u, ...m()] }], + "flex-direction": [ + { flex: ["row", "row-reverse", "col", "col-reverse"] }, + ], + "flex-wrap": [{ flex: ["nowrap", "wrap", "wrap-reverse"] }], + flex: [{ flex: [p, N, "auto", "initial", "none", s] }], + grow: [{ grow: ["", p, n, s] }], + shrink: [{ shrink: ["", p, n, s] }], + order: [{ order: [M, "first", "last", "none", n, s] }], + "grid-cols": [{ "grid-cols": ke() }], + "col-start-end": [{ col: ve() }], + "col-start": [{ "col-start": J() }], + "col-end": [{ "col-end": J() }], + "grid-rows": [{ "grid-rows": ke() }], + "row-start-end": [{ row: ve() }], + "row-start": [{ "row-start": J() }], + "row-end": [{ "row-end": J() }], + "grid-flow": [ + { "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"] }, + ], + "auto-cols": [{ "auto-cols": ze() }], + "auto-rows": [{ "auto-rows": ze() }], + gap: [{ gap: m() }], + "gap-x": [{ "gap-x": m() }], + "gap-y": [{ "gap-y": m() }], + "justify-content": [{ justify: [...re(), "normal"] }], + "justify-items": [{ "justify-items": [..._(), "normal"] }], + "justify-self": [{ "justify-self": ["auto", ..._()] }], + "align-content": [{ content: ["normal", ...re()] }], + "align-items": [{ items: [..._(), { baseline: ["", "last"] }] }], + "align-self": [{ self: ["auto", ..._(), { baseline: ["", "last"] }] }], + "place-content": [{ "place-content": re() }], + "place-items": [{ "place-items": [..._(), "baseline"] }], + "place-self": [{ "place-self": ["auto", ..._()] }], + p: [{ p: m() }], + px: [{ px: m() }], + py: [{ py: m() }], + ps: [{ ps: m() }], + pe: [{ pe: m() }], + pt: [{ pt: m() }], + pr: [{ pr: m() }], + pb: [{ pb: m() }], + pl: [{ pl: m() }], + m: [{ m: z() }], + mx: [{ mx: z() }], + my: [{ my: z() }], + ms: [{ ms: z() }], + me: [{ me: z() }], + mt: [{ mt: z() }], + mr: [{ mr: z() }], + mb: [{ mb: z() }], + ml: [{ ml: z() }], + "space-x": [{ "space-x": m() }], + "space-x-reverse": ["space-x-reverse"], + "space-y": [{ "space-y": m() }], + "space-y-reverse": ["space-y-reverse"], + size: [{ size: T() }], + w: [{ w: [u, "screen", ...T()] }], + "min-w": [{ "min-w": [u, "screen", "none", ...T()] }], + "max-w": [ + { "max-w": [u, "screen", "none", "prose", { screen: [l] }, ...T()] }, + ], + h: [{ h: ["screen", "lh", ...T()] }], + "min-h": [{ "min-h": ["screen", "lh", "none", ...T()] }], + "max-h": [{ "max-h": ["screen", "lh", ...T()] }], + "font-size": [{ text: ["base", r, W, P] }], + "font-smoothing": ["antialiased", "subpixel-antialiased"], + "font-style": ["italic", "not-italic"], + "font-weight": [{ font: [t, n, ce] }], + "font-stretch": [ + { + "font-stretch": [ + "ultra-condensed", + "extra-condensed", + "condensed", + "semi-condensed", + "normal", + "semi-expanded", + "expanded", + "extra-expanded", + "ultra-expanded", + le, + s, + ], + }, + ], + "font-family": [{ font: [Vo, s, o] }], + "fvn-normal": ["normal-nums"], + "fvn-ordinal": ["ordinal"], + "fvn-slashed-zero": ["slashed-zero"], + "fvn-figure": ["lining-nums", "oldstyle-nums"], + "fvn-spacing": ["proportional-nums", "tabular-nums"], + "fvn-fraction": ["diagonal-fractions", "stacked-fractions"], + tracking: [{ tracking: [a, n, s] }], + "line-clamp": [{ "line-clamp": [p, "none", n, ce] }], + leading: [{ leading: [d, ...m()] }], + "list-image": [{ "list-image": ["none", n, s] }], + "list-style-position": [{ list: ["inside", "outside"] }], + "list-style-type": [{ list: ["disc", "decimal", "none", n, s] }], + "text-alignment": [ + { text: ["left", "center", "right", "justify", "start", "end"] }, + ], + "placeholder-color": [{ placeholder: c() }], + "text-color": [{ text: c() }], + "text-decoration": [ + "underline", + "overline", + "line-through", + "no-underline", + ], + "text-decoration-style": [{ decoration: [...X(), "wavy"] }], + "text-decoration-thickness": [ + { decoration: [p, "from-font", "auto", n, P] }, + ], + "text-decoration-color": [{ decoration: c() }], + "underline-offset": [{ "underline-offset": [p, "auto", n, s] }], + "text-transform": [ + "uppercase", + "lowercase", + "capitalize", + "normal-case", + ], + "text-overflow": ["truncate", "text-ellipsis", "text-clip"], + "text-wrap": [{ text: ["wrap", "nowrap", "balance", "pretty"] }], + indent: [{ indent: m() }], + "vertical-align": [ + { + align: [ + "baseline", + "top", + "middle", + "bottom", + "text-top", + "text-bottom", + "sub", + "super", + n, + s, + ], + }, + ], + whitespace: [ + { + whitespace: [ + "normal", + "nowrap", + "pre", + "pre-line", + "pre-wrap", + "break-spaces", + ], + }, + ], + break: [{ break: ["normal", "words", "all", "keep"] }], + wrap: [{ wrap: ["break-word", "anywhere", "normal"] }], + hyphens: [{ hyphens: ["none", "manual", "auto"] }], + content: [{ content: ["none", n, s] }], + "bg-attachment": [{ bg: ["fixed", "local", "scroll"] }], + "bg-clip": [{ "bg-clip": ["border", "padding", "content", "text"] }], + "bg-origin": [{ "bg-origin": ["border", "padding", "content"] }], + "bg-position": [{ bg: Se() }], + "bg-repeat": [{ bg: Ae() }], + "bg-size": [{ bg: Ce() }], + "bg-image": [ + { + bg: [ + "none", + { + linear: [ + { to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"] }, + M, + n, + s, + ], + radial: ["", n, s], + conic: [M, n, s], + }, + Fo, + Oo, + ], + }, + ], + "bg-color": [{ bg: c() }], + "gradient-from-pos": [{ from: te() }], + "gradient-via-pos": [{ via: te() }], + "gradient-to-pos": [{ to: te() }], + "gradient-from": [{ from: c() }], + "gradient-via": [{ via: c() }], + "gradient-to": [{ to: c() }], + rounded: [{ rounded: w() }], + "rounded-s": [{ "rounded-s": w() }], + "rounded-e": [{ "rounded-e": w() }], + "rounded-t": [{ "rounded-t": w() }], + "rounded-r": [{ "rounded-r": w() }], + "rounded-b": [{ "rounded-b": w() }], + "rounded-l": [{ "rounded-l": w() }], + "rounded-ss": [{ "rounded-ss": w() }], + "rounded-se": [{ "rounded-se": w() }], + "rounded-ee": [{ "rounded-ee": w() }], + "rounded-es": [{ "rounded-es": w() }], + "rounded-tl": [{ "rounded-tl": w() }], + "rounded-tr": [{ "rounded-tr": w() }], + "rounded-br": [{ "rounded-br": w() }], + "rounded-bl": [{ "rounded-bl": w() }], + "border-w": [{ border: x() }], + "border-w-x": [{ "border-x": x() }], + "border-w-y": [{ "border-y": x() }], + "border-w-s": [{ "border-s": x() }], + "border-w-e": [{ "border-e": x() }], + "border-w-t": [{ "border-t": x() }], + "border-w-r": [{ "border-r": x() }], + "border-w-b": [{ "border-b": x() }], + "border-w-l": [{ "border-l": x() }], + "divide-x": [{ "divide-x": x() }], + "divide-x-reverse": ["divide-x-reverse"], + "divide-y": [{ "divide-y": x() }], + "divide-y-reverse": ["divide-y-reverse"], + "border-style": [{ border: [...X(), "hidden", "none"] }], + "divide-style": [{ divide: [...X(), "hidden", "none"] }], + "border-color": [{ border: c() }], + "border-color-x": [{ "border-x": c() }], + "border-color-y": [{ "border-y": c() }], + "border-color-s": [{ "border-s": c() }], + "border-color-e": [{ "border-e": c() }], + "border-color-t": [{ "border-t": c() }], + "border-color-r": [{ "border-r": c() }], + "border-color-b": [{ "border-b": c() }], + "border-color-l": [{ "border-l": c() }], + "divide-color": [{ divide: c() }], + "outline-style": [{ outline: [...X(), "none", "hidden"] }], + "outline-offset": [{ "outline-offset": [p, n, s] }], + "outline-w": [{ outline: ["", p, W, P] }], + "outline-color": [{ outline: c() }], + shadow: [{ shadow: ["", "none", h, ee, $] }], + "shadow-color": [{ shadow: c() }], + "inset-shadow": [{ "inset-shadow": ["none", C, ee, $] }], + "inset-shadow-color": [{ "inset-shadow": c() }], + "ring-w": [{ ring: x() }], + "ring-w-inset": ["ring-inset"], + "ring-color": [{ ring: c() }], + "ring-offset-w": [{ "ring-offset": [p, P] }], + "ring-offset-color": [{ "ring-offset": c() }], + "inset-ring-w": [{ "inset-ring": x() }], + "inset-ring-color": [{ "inset-ring": c() }], + "text-shadow": [{ "text-shadow": ["none", j, ee, $] }], + "text-shadow-color": [{ "text-shadow": c() }], + opacity: [{ opacity: [p, n, s] }], + "mix-blend": [ + { "mix-blend": [...Me(), "plus-darker", "plus-lighter"] }, + ], + "bg-blend": [{ "bg-blend": Me() }], + "mask-clip": [ + { + "mask-clip": [ + "border", + "padding", + "content", + "fill", + "stroke", + "view", + ], + }, + "mask-no-clip", + ], + "mask-composite": [ + { mask: ["add", "subtract", "intersect", "exclude"] }, + ], + "mask-image-linear-pos": [{ "mask-linear": [p] }], + "mask-image-linear-from-pos": [{ "mask-linear-from": g() }], + "mask-image-linear-to-pos": [{ "mask-linear-to": g() }], + "mask-image-linear-from-color": [{ "mask-linear-from": c() }], + "mask-image-linear-to-color": [{ "mask-linear-to": c() }], + "mask-image-t-from-pos": [{ "mask-t-from": g() }], + "mask-image-t-to-pos": [{ "mask-t-to": g() }], + "mask-image-t-from-color": [{ "mask-t-from": c() }], + "mask-image-t-to-color": [{ "mask-t-to": c() }], + "mask-image-r-from-pos": [{ "mask-r-from": g() }], + "mask-image-r-to-pos": [{ "mask-r-to": g() }], + "mask-image-r-from-color": [{ "mask-r-from": c() }], + "mask-image-r-to-color": [{ "mask-r-to": c() }], + "mask-image-b-from-pos": [{ "mask-b-from": g() }], + "mask-image-b-to-pos": [{ "mask-b-to": g() }], + "mask-image-b-from-color": [{ "mask-b-from": c() }], + "mask-image-b-to-color": [{ "mask-b-to": c() }], + "mask-image-l-from-pos": [{ "mask-l-from": g() }], + "mask-image-l-to-pos": [{ "mask-l-to": g() }], + "mask-image-l-from-color": [{ "mask-l-from": c() }], + "mask-image-l-to-color": [{ "mask-l-to": c() }], + "mask-image-x-from-pos": [{ "mask-x-from": g() }], + "mask-image-x-to-pos": [{ "mask-x-to": g() }], + "mask-image-x-from-color": [{ "mask-x-from": c() }], + "mask-image-x-to-color": [{ "mask-x-to": c() }], + "mask-image-y-from-pos": [{ "mask-y-from": g() }], + "mask-image-y-to-pos": [{ "mask-y-to": g() }], + "mask-image-y-from-color": [{ "mask-y-from": c() }], + "mask-image-y-to-color": [{ "mask-y-to": c() }], + "mask-image-radial": [{ "mask-radial": [n, s] }], + "mask-image-radial-from-pos": [{ "mask-radial-from": g() }], + "mask-image-radial-to-pos": [{ "mask-radial-to": g() }], + "mask-image-radial-from-color": [{ "mask-radial-from": c() }], + "mask-image-radial-to-color": [{ "mask-radial-to": c() }], + "mask-image-radial-shape": [{ "mask-radial": ["circle", "ellipse"] }], + "mask-image-radial-size": [ + { + "mask-radial": [ + { closest: ["side", "corner"], farthest: ["side", "corner"] }, + ], + }, + ], + "mask-image-radial-pos": [{ "mask-radial-at": G() }], + "mask-image-conic-pos": [{ "mask-conic": [p] }], + "mask-image-conic-from-pos": [{ "mask-conic-from": g() }], + "mask-image-conic-to-pos": [{ "mask-conic-to": g() }], + "mask-image-conic-from-color": [{ "mask-conic-from": c() }], + "mask-image-conic-to-color": [{ "mask-conic-to": c() }], + "mask-mode": [{ mask: ["alpha", "luminance", "match"] }], + "mask-origin": [ + { + "mask-origin": [ + "border", + "padding", + "content", + "fill", + "stroke", + "view", + ], + }, + ], + "mask-position": [{ mask: Se() }], + "mask-repeat": [{ mask: Ae() }], + "mask-size": [{ mask: Ce() }], + "mask-type": [{ "mask-type": ["alpha", "luminance"] }], + "mask-image": [{ mask: ["none", n, s] }], + filter: [{ filter: ["", "none", n, s] }], + blur: [{ blur: Ie() }], + brightness: [{ brightness: [p, n, s] }], + contrast: [{ contrast: [p, n, s] }], + "drop-shadow": [{ "drop-shadow": ["", "none", F, ee, $] }], + "drop-shadow-color": [{ "drop-shadow": c() }], + grayscale: [{ grayscale: ["", p, n, s] }], + "hue-rotate": [{ "hue-rotate": [p, n, s] }], + invert: [{ invert: ["", p, n, s] }], + saturate: [{ saturate: [p, n, s] }], + sepia: [{ sepia: ["", p, n, s] }], + "backdrop-filter": [{ "backdrop-filter": ["", "none", n, s] }], + "backdrop-blur": [{ "backdrop-blur": Ie() }], + "backdrop-brightness": [{ "backdrop-brightness": [p, n, s] }], + "backdrop-contrast": [{ "backdrop-contrast": [p, n, s] }], + "backdrop-grayscale": [{ "backdrop-grayscale": ["", p, n, s] }], + "backdrop-hue-rotate": [{ "backdrop-hue-rotate": [p, n, s] }], + "backdrop-invert": [{ "backdrop-invert": ["", p, n, s] }], + "backdrop-opacity": [{ "backdrop-opacity": [p, n, s] }], + "backdrop-saturate": [{ "backdrop-saturate": [p, n, s] }], + "backdrop-sepia": [{ "backdrop-sepia": ["", p, n, s] }], + "border-collapse": [{ border: ["collapse", "separate"] }], + "border-spacing": [{ "border-spacing": m() }], + "border-spacing-x": [{ "border-spacing-x": m() }], + "border-spacing-y": [{ "border-spacing-y": m() }], + "table-layout": [{ table: ["auto", "fixed"] }], + caption: [{ caption: ["top", "bottom"] }], + transition: [ + { + transition: [ + "", + "all", + "colors", + "opacity", + "shadow", + "transform", + "none", + n, + s, + ], + }, + ], + "transition-behavior": [{ transition: ["normal", "discrete"] }], + duration: [{ duration: [p, "initial", n, s] }], + ease: [{ ease: ["linear", "initial", I, n, s] }], + delay: [{ delay: [p, n, s] }], + animate: [{ animate: ["none", q, n, s] }], + backface: [{ backface: ["hidden", "visible"] }], + perspective: [{ perspective: [k, n, s] }], + "perspective-origin": [{ "perspective-origin": L() }], + rotate: [{ rotate: Y() }], + "rotate-x": [{ "rotate-x": Y() }], + "rotate-y": [{ "rotate-y": Y() }], + "rotate-z": [{ "rotate-z": Y() }], + scale: [{ scale: Q() }], + "scale-x": [{ "scale-x": Q() }], + "scale-y": [{ "scale-y": Q() }], + "scale-z": [{ "scale-z": Q() }], + "scale-3d": ["scale-3d"], + skew: [{ skew: se() }], + "skew-x": [{ "skew-x": se() }], + "skew-y": [{ "skew-y": se() }], + transform: [{ transform: [n, s, "", "none", "gpu", "cpu"] }], + "transform-origin": [{ origin: L() }], + "transform-style": [{ transform: ["3d", "flat"] }], + translate: [{ translate: Z() }], + "translate-x": [{ "translate-x": Z() }], + "translate-y": [{ "translate-y": Z() }], + "translate-z": [{ "translate-z": Z() }], + "translate-none": ["translate-none"], + accent: [{ accent: c() }], + appearance: [{ appearance: ["none", "auto"] }], + "caret-color": [{ caret: c() }], + "color-scheme": [ + { + scheme: [ + "normal", + "dark", + "light", + "light-dark", + "only-dark", + "only-light", + ], + }, + ], + cursor: [ + { + cursor: [ + "auto", + "default", + "pointer", + "wait", + "text", + "move", + "help", + "not-allowed", + "none", + "context-menu", + "progress", + "cell", + "crosshair", + "vertical-text", + "alias", + "copy", + "no-drop", + "grab", + "grabbing", + "all-scroll", + "col-resize", + "row-resize", + "n-resize", + "e-resize", + "s-resize", + "w-resize", + "ne-resize", + "nw-resize", + "se-resize", + "sw-resize", + "ew-resize", + "ns-resize", + "nesw-resize", + "nwse-resize", + "zoom-in", + "zoom-out", + n, + s, + ], + }, + ], + "field-sizing": [{ "field-sizing": ["fixed", "content"] }], + "pointer-events": [{ "pointer-events": ["auto", "none"] }], + resize: [{ resize: ["none", "", "y", "x"] }], + "scroll-behavior": [{ scroll: ["auto", "smooth"] }], + "scroll-m": [{ "scroll-m": m() }], + "scroll-mx": [{ "scroll-mx": m() }], + "scroll-my": [{ "scroll-my": m() }], + "scroll-ms": [{ "scroll-ms": m() }], + "scroll-me": [{ "scroll-me": m() }], + "scroll-mt": [{ "scroll-mt": m() }], + "scroll-mr": [{ "scroll-mr": m() }], + "scroll-mb": [{ "scroll-mb": m() }], + "scroll-ml": [{ "scroll-ml": m() }], + "scroll-p": [{ "scroll-p": m() }], + "scroll-px": [{ "scroll-px": m() }], + "scroll-py": [{ "scroll-py": m() }], + "scroll-ps": [{ "scroll-ps": m() }], + "scroll-pe": [{ "scroll-pe": m() }], + "scroll-pt": [{ "scroll-pt": m() }], + "scroll-pr": [{ "scroll-pr": m() }], + "scroll-pb": [{ "scroll-pb": m() }], + "scroll-pl": [{ "scroll-pl": m() }], + "snap-align": [{ snap: ["start", "end", "center", "align-none"] }], + "snap-stop": [{ snap: ["normal", "always"] }], + "snap-type": [{ snap: ["none", "x", "y", "both"] }], + "snap-strictness": [{ snap: ["mandatory", "proximity"] }], + touch: [{ touch: ["auto", "none", "manipulation"] }], + "touch-x": [{ "touch-pan": ["x", "left", "right"] }], + "touch-y": [{ "touch-pan": ["y", "up", "down"] }], + "touch-pz": ["touch-pinch-zoom"], + select: [{ select: ["none", "text", "all", "auto"] }], + "will-change": [ + { "will-change": ["auto", "scroll", "contents", "transform", n, s] }, + ], + fill: [{ fill: ["none", ...c()] }], + "stroke-w": [{ stroke: [p, W, P, ce] }], + stroke: [{ stroke: ["none", ...c()] }], + "forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }], + }, + conflictingClassGroups: { + overflow: ["overflow-x", "overflow-y"], + overscroll: ["overscroll-x", "overscroll-y"], + inset: [ + "inset-x", + "inset-y", + "start", + "end", + "top", + "right", + "bottom", + "left", + ], + "inset-x": ["right", "left"], + "inset-y": ["top", "bottom"], + flex: ["basis", "grow", "shrink"], + gap: ["gap-x", "gap-y"], + p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"], + px: ["pr", "pl"], + py: ["pt", "pb"], + m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"], + mx: ["mr", "ml"], + my: ["mt", "mb"], + size: ["w", "h"], + "font-size": ["leading"], + "fvn-normal": [ + "fvn-ordinal", + "fvn-slashed-zero", + "fvn-figure", + "fvn-spacing", + "fvn-fraction", + ], + "fvn-ordinal": ["fvn-normal"], + "fvn-slashed-zero": ["fvn-normal"], + "fvn-figure": ["fvn-normal"], + "fvn-spacing": ["fvn-normal"], + "fvn-fraction": ["fvn-normal"], + "line-clamp": ["display", "overflow"], + rounded: [ + "rounded-s", + "rounded-e", + "rounded-t", + "rounded-r", + "rounded-b", + "rounded-l", + "rounded-ss", + "rounded-se", + "rounded-ee", + "rounded-es", + "rounded-tl", + "rounded-tr", + "rounded-br", + "rounded-bl", + ], + "rounded-s": ["rounded-ss", "rounded-es"], + "rounded-e": ["rounded-se", "rounded-ee"], + "rounded-t": ["rounded-tl", "rounded-tr"], + "rounded-r": ["rounded-tr", "rounded-br"], + "rounded-b": ["rounded-br", "rounded-bl"], + "rounded-l": ["rounded-tl", "rounded-bl"], + "border-spacing": ["border-spacing-x", "border-spacing-y"], + "border-w": [ + "border-w-x", + "border-w-y", + "border-w-s", + "border-w-e", + "border-w-t", + "border-w-r", + "border-w-b", + "border-w-l", + ], + "border-w-x": ["border-w-r", "border-w-l"], + "border-w-y": ["border-w-t", "border-w-b"], + "border-color": [ + "border-color-x", + "border-color-y", + "border-color-s", + "border-color-e", + "border-color-t", + "border-color-r", + "border-color-b", + "border-color-l", + ], + "border-color-x": ["border-color-r", "border-color-l"], + "border-color-y": ["border-color-t", "border-color-b"], + translate: ["translate-x", "translate-y", "translate-none"], + "translate-none": [ + "translate", + "translate-x", + "translate-y", + "translate-z", + ], + "scroll-m": [ + "scroll-mx", + "scroll-my", + "scroll-ms", + "scroll-me", + "scroll-mt", + "scroll-mr", + "scroll-mb", + "scroll-ml", + ], + "scroll-mx": ["scroll-mr", "scroll-ml"], + "scroll-my": ["scroll-mt", "scroll-mb"], + "scroll-p": [ + "scroll-px", + "scroll-py", + "scroll-ps", + "scroll-pe", + "scroll-pt", + "scroll-pr", + "scroll-pb", + "scroll-pl", + ], + "scroll-px": ["scroll-pr", "scroll-pl"], + "scroll-py": ["scroll-pt", "scroll-pb"], + touch: ["touch-x", "touch-y", "touch-pz"], + "touch-x": ["touch"], + "touch-y": ["touch"], + "touch-pz": ["touch"], + }, + conflictingClassGroupModifiers: { "font-size": ["leading"] }, + orderSensitiveModifiers: [ + "*", + "**", + "after", + "backdrop", + "before", + "details-content", + "file", + "first-letter", + "first-line", + "marker", + "placeholder", + "selection", + ], + }; + }, + Do = So(Wo); +var Ho = xe('User profile'), + qo = xe("
        "); +function $o(e, o) { + Fe(o, !0); + var r = qo(); + let t; + var a = de(r), + d = de(a); + { + var l = (i) => { + co(i, { + get userId() { + return o.userId; + }, + }); + }, + u = (i) => { + var f = Ho(); + pe(() => to(f, "src", o.pictureUrl)), ue(i, f); + }; + oo(d, (i) => { + o.pictureUrl ? i(u, !1) : i(l); + }); + } + me(a), + me(r), + pe( + (i, f) => { + (t = fe(r, 1, "avatar relative rounded-full", null, t, i)), fe(a, 1, f); + }, + [ + () => ({ "border-3": o.isSuspended, "border-red-500": o.isSuspended }), + () => ro(Do("border-base-300 size-20 rounded-full border-2", o.class)), + ] + ), + ue(e, r), + Ue(); +} +export { $o as P, co as a, Do as t }; diff --git a/frontend-backup/_app/immutable/chunks/DBSOMMI_.js b/frontend-backup/_app/immutable/chunks/DBSOMMI_.js new file mode 100644 index 0000000..c75080e --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DBSOMMI_.js @@ -0,0 +1,84 @@ +import { g as z } from "./CV9xcpLq.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "dcdc3bc1-2905-4a7a-b382-b2ec639c05ea"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-dcdc3bc1-2905-4a7a-b382-b2ec639c05ea")); + })(); +} catch {} +const C = () => "Timeout", + D = () => "Timeout", + M = (t = {}, e = {}) => ((e.locale ?? z()) === "en" ? C() : D()); +function q(t) { + const e = t - 1; + return e * e * e + 1; +} +function O(t, { from: e, to: r }, u = {}) { + var { + delay: h = 0, + duration: i = (n) => Math.sqrt(n) * 120, + easing: y = q, + } = u, + o = getComputedStyle(t), + g = o.transform === "none" ? "" : o.transform, + [d, s] = o.transformOrigin.split(" ").map(parseFloat); + (d /= t.clientWidth), (s /= t.clientHeight); + var f = H(t), + p = t.clientWidth / r.width / f, + v = t.clientHeight / r.height / f, + b = e.left + e.width * d, + m = e.top + e.height * s, + w = r.left + r.width * d, + x = r.top + r.height * s, + c = (b - w) * p, + l = (m - x) * v, + S = e.width / r.width, + _ = e.height / r.height; + return { + delay: h, + duration: typeof i == "function" ? i(Math.sqrt(c * c + l * l)) : i, + easing: y, + css: (n, a) => { + var T = a * c, + E = a * l, + I = n + a * S, + $ = n + a * _; + return `transform: ${g} translate(${T}px, ${E}px) scale(${I}, ${$});`; + }, + }; +} +function H(t) { + if ("currentCSSZoom" in t) return t.currentCSSZoom; + for (var e = t, r = 1; e !== null; ) + (r *= +getComputedStyle(e).zoom), (e = e.parentElement); + return r; +} +export { O as f, M as t }; diff --git a/frontend-backup/_app/immutable/chunks/DCxPsWiR.js b/frontend-backup/_app/immutable/chunks/DCxPsWiR.js deleted file mode 100644 index 64897f5..0000000 --- a/frontend-backup/_app/immutable/chunks/DCxPsWiR.js +++ /dev/null @@ -1,939 +0,0 @@ -var $e = Object.defineProperty; -var Re = (e) => { - throw TypeError(e); -}; -var eo = (e, o, r) => (o in e ? $e(e, o, { enumerable: !0, configurable: !0, writable: !0, value: r }) : (e[o] = r)); -var Te = (e, o, r) => eo(e, typeof o != "symbol" ? o + "" : o, r), - ne = (e, o, r) => o.has(e) || Re("Cannot " + r); -var ae = (e, o, r) => (ne(e, o, "read from private field"), r ? r.call(e) : o.get(e)), - K = (e, o, r) => (o.has(e) ? Re("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(e) : o.set(e, r)), - Pe = (e, o, r, t) => (ne(e, o, "write to private field"), t ? t.call(e, r) : o.set(e, r), r), - ie = (e, o, r) => (ne(e, o, "access private method"), r); -import "./B2cHk4HI.js"; -import { p as Fe, f as xe, d as de, r as me, t as pe, b as ue, c as Ue } from "./BDALf20I.js"; -import { i as oo } from "./Bke_korE.js"; -import { a as fe, c as ro, s as to } from "./BNZUboE0.js"; -import { h as so } from "./DV6L2nvf.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - o = new e.Error().stack; - o && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[o] = "528903a0-0bed-45f0-9252-4d79de448496"), (e._sentryDebugIdIdentifier = "sentry-dbid-528903a0-0bed-45f0-9252-4d79de448496")); - })(); -} catch {} -const Ee = 9, - no = 95, - ao = 45, - Ge = 5; -function io(e) { - return e.split("").reduce((o, r) => (o ^ r.charCodeAt(0)) * -Ge, Ge) >>> 2; -} -function Be(e = "", o = no, r = ao, t = io) { - const a = t(e), - d = (a % Ee) * (360 / Ee); - return ( - [...Array(e ? 25 : 0)].reduce( - (l, u, i) => (a & (1 << i % 15) ? l + `` : l), - `` - ) + "" - ); -} -var Ve, A, oe, D, H, be, je; -((Ve = globalThis.customElements) != null && Ve.get("minidenticon-svg")) || - (je = globalThis.customElements) == null || - je.define( - "minidenticon-svg", - ((A = class extends HTMLElement { - constructor() { - super(...arguments); - K(this, H); - K(this, D, !1); - } - connectedCallback() { - ie(this, H, be).call(this), Pe(this, D, !0); - } - attributeChangedCallback() { - ae(this, D) && ie(this, H, be).call(this); - } - }), - (oe = new WeakMap()), - (D = new WeakMap()), - (H = new WeakSet()), - (be = function () { - var a; - const r = A.observedAttributes.map((d) => this.getAttribute(d) || void 0), - t = r.join(","); - this.innerHTML = (a = ae(A, oe))[t] ?? (a[t] = Be(...r)); - }), - Te(A, "observedAttributes", ["username", "saturation", "lightness"]), - K(A, oe, {}), - A) - ); -var lo = xe("
        "); -function co(e, o) { - Fe(o, !0); - var r = lo(), - t = de(r); - so(t, () => Be(o.userId.toString(), 95, 45)), me(r), pe(() => fe(r, 1, `bg-base-200 minidenticon ${o.class ?? "" ?? ""}`)), ue(e, r), Ue(); -} -const ye = "-", - mo = (e) => { - const o = uo(e), - { conflictingClassGroups: r, conflictingClassGroupModifiers: t } = e; - return { - getClassGroupId: (l) => { - const u = l.split(ye); - return u[0] === "" && u.length !== 1 && u.shift(), We(u, o) || po(l); - }, - getConflictingClassGroupIds: (l, u) => { - const i = r[l] || []; - return u && t[l] ? [...i, ...t[l]] : i; - }, - }; - }, - We = (e, o) => { - var l; - if (e.length === 0) return o.classGroupId; - const r = e[0], - t = o.nextPart.get(r), - a = t ? We(e.slice(1), t) : void 0; - if (a) return a; - if (o.validators.length === 0) return; - const d = e.join(ye); - return (l = o.validators.find(({ validator: u }) => u(d))) == null ? void 0 : l.classGroupId; - }, - Le = /^\[(.+)\]$/, - po = (e) => { - if (Le.test(e)) { - const o = Le.exec(e)[1], - r = o == null ? void 0 : o.substring(0, o.indexOf(":")); - if (r) return "arbitrary.." + r; - } - }, - uo = (e) => { - const { theme: o, classGroups: r } = e, - t = { nextPart: new Map(), validators: [] }; - for (const a in r) ge(r[a], t, a, o); - return t; - }, - ge = (e, o, r, t) => { - e.forEach((a) => { - if (typeof a == "string") { - const d = a === "" ? o : _e(o, a); - d.classGroupId = r; - return; - } - if (typeof a == "function") { - if (fo(a)) { - ge(a(t), o, r, t); - return; - } - o.validators.push({ validator: a, classGroupId: r }); - return; - } - Object.entries(a).forEach(([d, l]) => { - ge(l, _e(o, d), r, t); - }); - }); - }, - _e = (e, o) => { - let r = e; - return ( - o.split(ye).forEach((t) => { - r.nextPart.has(t) || r.nextPart.set(t, { nextPart: new Map(), validators: [] }), (r = r.nextPart.get(t)); - }), - r - ); - }, - fo = (e) => e.isThemeGetter, - bo = (e) => { - if (e < 1) return { get: () => {}, set: () => {} }; - let o = 0, - r = new Map(), - t = new Map(); - const a = (d, l) => { - r.set(d, l), o++, o > e && ((o = 0), (t = r), (r = new Map())); - }; - return { - get(d) { - let l = r.get(d); - if (l !== void 0) return l; - if ((l = t.get(d)) !== void 0) return a(d, l), l; - }, - set(d, l) { - r.has(d) ? r.set(d, l) : a(d, l); - }, - }; - }, - he = "!", - we = ":", - go = we.length, - ho = (e) => { - const { prefix: o, experimentalParseClassName: r } = e; - let t = (a) => { - const d = []; - let l = 0, - u = 0, - i = 0, - f; - for (let y = 0; y < a.length; y++) { - let k = a[y]; - if (l === 0 && u === 0) { - if (k === we) { - d.push(a.slice(i, y)), (i = y + go); - continue; - } - if (k === "/") { - f = y; - continue; - } - } - k === "[" ? l++ : k === "]" ? l-- : k === "(" ? u++ : k === ")" && u--; - } - const h = d.length === 0 ? a : a.substring(i), - C = wo(h), - j = C !== h, - F = f && f > i ? f - i : void 0; - return { modifiers: d, hasImportantModifier: j, baseClassName: C, maybePostfixModifierPosition: F }; - }; - if (o) { - const a = o + we, - d = t; - t = (l) => (l.startsWith(a) ? d(l.substring(a.length)) : { isExternal: !0, modifiers: [], hasImportantModifier: !1, baseClassName: l, maybePostfixModifierPosition: void 0 }); - } - if (r) { - const a = t; - t = (d) => r({ className: d, parseClassName: a }); - } - return t; - }, - wo = (e) => (e.endsWith(he) ? e.substring(0, e.length - 1) : e.startsWith(he) ? e.substring(1) : e), - xo = (e) => { - const o = Object.fromEntries(e.orderSensitiveModifiers.map((t) => [t, !0])); - return (t) => { - if (t.length <= 1) return t; - const a = []; - let d = []; - return ( - t.forEach((l) => { - l[0] === "[" || o[l] ? (a.push(...d.sort(), l), (d = [])) : d.push(l); - }), - a.push(...d.sort()), - a - ); - }; - }, - yo = (e) => ({ cache: bo(e.cacheSize), parseClassName: ho(e), sortModifiers: xo(e), ...mo(e) }), - ko = /\s+/, - vo = (e, o) => { - const { parseClassName: r, getClassGroupId: t, getConflictingClassGroupIds: a, sortModifiers: d } = o, - l = [], - u = e.trim().split(ko); - let i = ""; - for (let f = u.length - 1; f >= 0; f -= 1) { - const h = u[f], - { isExternal: C, modifiers: j, hasImportantModifier: F, baseClassName: y, maybePostfixModifierPosition: k } = r(h); - if (C) { - i = h + (i.length > 0 ? " " + i : i); - continue; - } - let E = !!k, - I = t(E ? y.substring(0, k) : y); - if (!I) { - if (!E) { - i = h + (i.length > 0 ? " " + i : i); - continue; - } - if (((I = t(y)), !I)) { - i = h + (i.length > 0 ? " " + i : i); - continue; - } - E = !1; - } - const q = d(j).join(":"), - U = F ? q + he : q, - G = U + I; - if (l.includes(G)) continue; - l.push(G); - const L = a(I, E); - for (let R = 0; R < L.length; ++R) { - const B = L[R]; - l.push(U + B); - } - i = h + (i.length > 0 ? " " + i : i); - } - return i; - }; -function zo() { - let e = 0, - o, - r, - t = ""; - for (; e < arguments.length; ) (o = arguments[e++]) && (r = De(o)) && (t && (t += " "), (t += r)); - return t; -} -const De = (e) => { - if (typeof e == "string") return e; - let o, - r = ""; - for (let t = 0; t < e.length; t++) e[t] && (o = De(e[t])) && (r && (r += " "), (r += o)); - return r; -}; -function So(e, ...o) { - let r, - t, - a, - d = l; - function l(i) { - const f = o.reduce((h, C) => C(h), e()); - return (r = yo(f)), (t = r.cache.get), (a = r.cache.set), (d = u), u(i); - } - function u(i) { - const f = t(i); - if (f) return f; - const h = vo(i, r); - return a(i, h), h; - } - return function () { - return d(zo.apply(null, arguments)); - }; -} -const b = (e) => { - const o = (r) => r[e] || []; - return (o.isThemeGetter = !0), o; - }, - He = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, - qe = /^\((?:(\w[\w-]*):)?(.+)\)$/i, - Ao = /^\d+\/\d+$/, - Co = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, - Mo = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, - Io = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, - Ro = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, - To = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, - N = (e) => Ao.test(e), - p = (e) => !!e && !Number.isNaN(Number(e)), - M = (e) => !!e && Number.isInteger(Number(e)), - le = (e) => e.endsWith("%") && p(e.slice(0, -1)), - S = (e) => Co.test(e), - Po = () => !0, - Eo = (e) => Mo.test(e) && !Io.test(e), - Je = () => !1, - Go = (e) => Ro.test(e), - Lo = (e) => To.test(e), - _o = (e) => !s(e) && !n(e), - No = (e) => O(e, Qe, Je), - s = (e) => He.test(e), - P = (e) => O(e, Ze, Eo), - ce = (e) => O(e, Uo, p), - Ne = (e) => O(e, Xe, Je), - Oo = (e) => O(e, Ye, Lo), - $ = (e) => O(e, Ke, Go), - n = (e) => qe.test(e), - W = (e) => V(e, Ze), - Vo = (e) => V(e, Bo), - Oe = (e) => V(e, Xe), - jo = (e) => V(e, Qe), - Fo = (e) => V(e, Ye), - ee = (e) => V(e, Ke, !0), - O = (e, o, r) => { - const t = He.exec(e); - return t ? (t[1] ? o(t[1]) : r(t[2])) : !1; - }, - V = (e, o, r = !1) => { - const t = qe.exec(e); - return t ? (t[1] ? o(t[1]) : r) : !1; - }, - Xe = (e) => e === "position" || e === "percentage", - Ye = (e) => e === "image" || e === "url", - Qe = (e) => e === "length" || e === "size" || e === "bg-size", - Ze = (e) => e === "length", - Uo = (e) => e === "number", - Bo = (e) => e === "family-name", - Ke = (e) => e === "shadow", - Wo = () => { - const e = b("color"), - o = b("font"), - r = b("text"), - t = b("font-weight"), - a = b("tracking"), - d = b("leading"), - l = b("breakpoint"), - u = b("container"), - i = b("spacing"), - f = b("radius"), - h = b("shadow"), - C = b("inset-shadow"), - j = b("text-shadow"), - F = b("drop-shadow"), - y = b("blur"), - k = b("perspective"), - E = b("aspect"), - I = b("ease"), - q = b("animate"), - U = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], - G = () => ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom"], - L = () => [...G(), n, s], - R = () => ["auto", "hidden", "clip", "visible", "scroll"], - B = () => ["auto", "contain", "none"], - m = () => [n, s, i], - v = () => [N, "full", "auto", ...m()], - ke = () => [M, "none", "subgrid", n, s], - ve = () => ["auto", { span: ["full", M, n, s] }, M, n, s], - J = () => [M, "auto", n, s], - ze = () => ["auto", "min", "max", "fr", n, s], - re = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], - _ = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], - z = () => ["auto", ...m()], - T = () => [N, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...m()], - c = () => [e, n, s], - Se = () => [...G(), Oe, Ne, { position: [n, s] }], - Ae = () => ["no-repeat", { repeat: ["", "x", "y", "space", "round"] }], - Ce = () => ["auto", "cover", "contain", jo, No, { size: [n, s] }], - te = () => [le, W, P], - w = () => ["", "none", "full", f, n, s], - x = () => ["", p, W, P], - X = () => ["solid", "dashed", "dotted", "double"], - Me = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], - g = () => [p, le, Oe, Ne], - Ie = () => ["", "none", y, n, s], - Y = () => ["none", p, n, s], - Q = () => ["none", p, n, s], - se = () => [p, n, s], - Z = () => [N, "full", ...m()]; - return { - cacheSize: 500, - theme: { - animate: ["spin", "ping", "pulse", "bounce"], - aspect: ["video"], - blur: [S], - breakpoint: [S], - color: [Po], - container: [S], - "drop-shadow": [S], - ease: ["in", "out", "in-out"], - font: [_o], - "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"], - "inset-shadow": [S], - leading: ["none", "tight", "snug", "normal", "relaxed", "loose"], - perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"], - radius: [S], - shadow: [S], - spacing: ["px", p], - text: [S], - "text-shadow": [S], - tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"], - }, - classGroups: { - aspect: [{ aspect: ["auto", "square", N, s, n, E] }], - container: ["container"], - columns: [{ columns: [p, s, n, u] }], - "break-after": [{ "break-after": U() }], - "break-before": [{ "break-before": U() }], - "break-inside": [{ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"] }], - "box-decoration": [{ "box-decoration": ["slice", "clone"] }], - box: [{ box: ["border", "content"] }], - display: [ - "block", - "inline-block", - "inline", - "flex", - "inline-flex", - "table", - "inline-table", - "table-caption", - "table-cell", - "table-column", - "table-column-group", - "table-footer-group", - "table-header-group", - "table-row-group", - "table-row", - "flow-root", - "grid", - "inline-grid", - "contents", - "list-item", - "hidden", - ], - sr: ["sr-only", "not-sr-only"], - float: [{ float: ["right", "left", "none", "start", "end"] }], - clear: [{ clear: ["left", "right", "both", "none", "start", "end"] }], - isolation: ["isolate", "isolation-auto"], - "object-fit": [{ object: ["contain", "cover", "fill", "none", "scale-down"] }], - "object-position": [{ object: L() }], - overflow: [{ overflow: R() }], - "overflow-x": [{ "overflow-x": R() }], - "overflow-y": [{ "overflow-y": R() }], - overscroll: [{ overscroll: B() }], - "overscroll-x": [{ "overscroll-x": B() }], - "overscroll-y": [{ "overscroll-y": B() }], - position: ["static", "fixed", "absolute", "relative", "sticky"], - inset: [{ inset: v() }], - "inset-x": [{ "inset-x": v() }], - "inset-y": [{ "inset-y": v() }], - start: [{ start: v() }], - end: [{ end: v() }], - top: [{ top: v() }], - right: [{ right: v() }], - bottom: [{ bottom: v() }], - left: [{ left: v() }], - visibility: ["visible", "invisible", "collapse"], - z: [{ z: [M, "auto", n, s] }], - basis: [{ basis: [N, "full", "auto", u, ...m()] }], - "flex-direction": [{ flex: ["row", "row-reverse", "col", "col-reverse"] }], - "flex-wrap": [{ flex: ["nowrap", "wrap", "wrap-reverse"] }], - flex: [{ flex: [p, N, "auto", "initial", "none", s] }], - grow: [{ grow: ["", p, n, s] }], - shrink: [{ shrink: ["", p, n, s] }], - order: [{ order: [M, "first", "last", "none", n, s] }], - "grid-cols": [{ "grid-cols": ke() }], - "col-start-end": [{ col: ve() }], - "col-start": [{ "col-start": J() }], - "col-end": [{ "col-end": J() }], - "grid-rows": [{ "grid-rows": ke() }], - "row-start-end": [{ row: ve() }], - "row-start": [{ "row-start": J() }], - "row-end": [{ "row-end": J() }], - "grid-flow": [{ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"] }], - "auto-cols": [{ "auto-cols": ze() }], - "auto-rows": [{ "auto-rows": ze() }], - gap: [{ gap: m() }], - "gap-x": [{ "gap-x": m() }], - "gap-y": [{ "gap-y": m() }], - "justify-content": [{ justify: [...re(), "normal"] }], - "justify-items": [{ "justify-items": [..._(), "normal"] }], - "justify-self": [{ "justify-self": ["auto", ..._()] }], - "align-content": [{ content: ["normal", ...re()] }], - "align-items": [{ items: [..._(), { baseline: ["", "last"] }] }], - "align-self": [{ self: ["auto", ..._(), { baseline: ["", "last"] }] }], - "place-content": [{ "place-content": re() }], - "place-items": [{ "place-items": [..._(), "baseline"] }], - "place-self": [{ "place-self": ["auto", ..._()] }], - p: [{ p: m() }], - px: [{ px: m() }], - py: [{ py: m() }], - ps: [{ ps: m() }], - pe: [{ pe: m() }], - pt: [{ pt: m() }], - pr: [{ pr: m() }], - pb: [{ pb: m() }], - pl: [{ pl: m() }], - m: [{ m: z() }], - mx: [{ mx: z() }], - my: [{ my: z() }], - ms: [{ ms: z() }], - me: [{ me: z() }], - mt: [{ mt: z() }], - mr: [{ mr: z() }], - mb: [{ mb: z() }], - ml: [{ ml: z() }], - "space-x": [{ "space-x": m() }], - "space-x-reverse": ["space-x-reverse"], - "space-y": [{ "space-y": m() }], - "space-y-reverse": ["space-y-reverse"], - size: [{ size: T() }], - w: [{ w: [u, "screen", ...T()] }], - "min-w": [{ "min-w": [u, "screen", "none", ...T()] }], - "max-w": [{ "max-w": [u, "screen", "none", "prose", { screen: [l] }, ...T()] }], - h: [{ h: ["screen", "lh", ...T()] }], - "min-h": [{ "min-h": ["screen", "lh", "none", ...T()] }], - "max-h": [{ "max-h": ["screen", "lh", ...T()] }], - "font-size": [{ text: ["base", r, W, P] }], - "font-smoothing": ["antialiased", "subpixel-antialiased"], - "font-style": ["italic", "not-italic"], - "font-weight": [{ font: [t, n, ce] }], - "font-stretch": [{ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", le, s] }], - "font-family": [{ font: [Vo, s, o] }], - "fvn-normal": ["normal-nums"], - "fvn-ordinal": ["ordinal"], - "fvn-slashed-zero": ["slashed-zero"], - "fvn-figure": ["lining-nums", "oldstyle-nums"], - "fvn-spacing": ["proportional-nums", "tabular-nums"], - "fvn-fraction": ["diagonal-fractions", "stacked-fractions"], - tracking: [{ tracking: [a, n, s] }], - "line-clamp": [{ "line-clamp": [p, "none", n, ce] }], - leading: [{ leading: [d, ...m()] }], - "list-image": [{ "list-image": ["none", n, s] }], - "list-style-position": [{ list: ["inside", "outside"] }], - "list-style-type": [{ list: ["disc", "decimal", "none", n, s] }], - "text-alignment": [{ text: ["left", "center", "right", "justify", "start", "end"] }], - "placeholder-color": [{ placeholder: c() }], - "text-color": [{ text: c() }], - "text-decoration": ["underline", "overline", "line-through", "no-underline"], - "text-decoration-style": [{ decoration: [...X(), "wavy"] }], - "text-decoration-thickness": [{ decoration: [p, "from-font", "auto", n, P] }], - "text-decoration-color": [{ decoration: c() }], - "underline-offset": [{ "underline-offset": [p, "auto", n, s] }], - "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"], - "text-overflow": ["truncate", "text-ellipsis", "text-clip"], - "text-wrap": [{ text: ["wrap", "nowrap", "balance", "pretty"] }], - indent: [{ indent: m() }], - "vertical-align": [{ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", n, s] }], - whitespace: [{ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"] }], - break: [{ break: ["normal", "words", "all", "keep"] }], - wrap: [{ wrap: ["break-word", "anywhere", "normal"] }], - hyphens: [{ hyphens: ["none", "manual", "auto"] }], - content: [{ content: ["none", n, s] }], - "bg-attachment": [{ bg: ["fixed", "local", "scroll"] }], - "bg-clip": [{ "bg-clip": ["border", "padding", "content", "text"] }], - "bg-origin": [{ "bg-origin": ["border", "padding", "content"] }], - "bg-position": [{ bg: Se() }], - "bg-repeat": [{ bg: Ae() }], - "bg-size": [{ bg: Ce() }], - "bg-image": [{ bg: ["none", { linear: [{ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"] }, M, n, s], radial: ["", n, s], conic: [M, n, s] }, Fo, Oo] }], - "bg-color": [{ bg: c() }], - "gradient-from-pos": [{ from: te() }], - "gradient-via-pos": [{ via: te() }], - "gradient-to-pos": [{ to: te() }], - "gradient-from": [{ from: c() }], - "gradient-via": [{ via: c() }], - "gradient-to": [{ to: c() }], - rounded: [{ rounded: w() }], - "rounded-s": [{ "rounded-s": w() }], - "rounded-e": [{ "rounded-e": w() }], - "rounded-t": [{ "rounded-t": w() }], - "rounded-r": [{ "rounded-r": w() }], - "rounded-b": [{ "rounded-b": w() }], - "rounded-l": [{ "rounded-l": w() }], - "rounded-ss": [{ "rounded-ss": w() }], - "rounded-se": [{ "rounded-se": w() }], - "rounded-ee": [{ "rounded-ee": w() }], - "rounded-es": [{ "rounded-es": w() }], - "rounded-tl": [{ "rounded-tl": w() }], - "rounded-tr": [{ "rounded-tr": w() }], - "rounded-br": [{ "rounded-br": w() }], - "rounded-bl": [{ "rounded-bl": w() }], - "border-w": [{ border: x() }], - "border-w-x": [{ "border-x": x() }], - "border-w-y": [{ "border-y": x() }], - "border-w-s": [{ "border-s": x() }], - "border-w-e": [{ "border-e": x() }], - "border-w-t": [{ "border-t": x() }], - "border-w-r": [{ "border-r": x() }], - "border-w-b": [{ "border-b": x() }], - "border-w-l": [{ "border-l": x() }], - "divide-x": [{ "divide-x": x() }], - "divide-x-reverse": ["divide-x-reverse"], - "divide-y": [{ "divide-y": x() }], - "divide-y-reverse": ["divide-y-reverse"], - "border-style": [{ border: [...X(), "hidden", "none"] }], - "divide-style": [{ divide: [...X(), "hidden", "none"] }], - "border-color": [{ border: c() }], - "border-color-x": [{ "border-x": c() }], - "border-color-y": [{ "border-y": c() }], - "border-color-s": [{ "border-s": c() }], - "border-color-e": [{ "border-e": c() }], - "border-color-t": [{ "border-t": c() }], - "border-color-r": [{ "border-r": c() }], - "border-color-b": [{ "border-b": c() }], - "border-color-l": [{ "border-l": c() }], - "divide-color": [{ divide: c() }], - "outline-style": [{ outline: [...X(), "none", "hidden"] }], - "outline-offset": [{ "outline-offset": [p, n, s] }], - "outline-w": [{ outline: ["", p, W, P] }], - "outline-color": [{ outline: c() }], - shadow: [{ shadow: ["", "none", h, ee, $] }], - "shadow-color": [{ shadow: c() }], - "inset-shadow": [{ "inset-shadow": ["none", C, ee, $] }], - "inset-shadow-color": [{ "inset-shadow": c() }], - "ring-w": [{ ring: x() }], - "ring-w-inset": ["ring-inset"], - "ring-color": [{ ring: c() }], - "ring-offset-w": [{ "ring-offset": [p, P] }], - "ring-offset-color": [{ "ring-offset": c() }], - "inset-ring-w": [{ "inset-ring": x() }], - "inset-ring-color": [{ "inset-ring": c() }], - "text-shadow": [{ "text-shadow": ["none", j, ee, $] }], - "text-shadow-color": [{ "text-shadow": c() }], - opacity: [{ opacity: [p, n, s] }], - "mix-blend": [{ "mix-blend": [...Me(), "plus-darker", "plus-lighter"] }], - "bg-blend": [{ "bg-blend": Me() }], - "mask-clip": [{ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"] }, "mask-no-clip"], - "mask-composite": [{ mask: ["add", "subtract", "intersect", "exclude"] }], - "mask-image-linear-pos": [{ "mask-linear": [p] }], - "mask-image-linear-from-pos": [{ "mask-linear-from": g() }], - "mask-image-linear-to-pos": [{ "mask-linear-to": g() }], - "mask-image-linear-from-color": [{ "mask-linear-from": c() }], - "mask-image-linear-to-color": [{ "mask-linear-to": c() }], - "mask-image-t-from-pos": [{ "mask-t-from": g() }], - "mask-image-t-to-pos": [{ "mask-t-to": g() }], - "mask-image-t-from-color": [{ "mask-t-from": c() }], - "mask-image-t-to-color": [{ "mask-t-to": c() }], - "mask-image-r-from-pos": [{ "mask-r-from": g() }], - "mask-image-r-to-pos": [{ "mask-r-to": g() }], - "mask-image-r-from-color": [{ "mask-r-from": c() }], - "mask-image-r-to-color": [{ "mask-r-to": c() }], - "mask-image-b-from-pos": [{ "mask-b-from": g() }], - "mask-image-b-to-pos": [{ "mask-b-to": g() }], - "mask-image-b-from-color": [{ "mask-b-from": c() }], - "mask-image-b-to-color": [{ "mask-b-to": c() }], - "mask-image-l-from-pos": [{ "mask-l-from": g() }], - "mask-image-l-to-pos": [{ "mask-l-to": g() }], - "mask-image-l-from-color": [{ "mask-l-from": c() }], - "mask-image-l-to-color": [{ "mask-l-to": c() }], - "mask-image-x-from-pos": [{ "mask-x-from": g() }], - "mask-image-x-to-pos": [{ "mask-x-to": g() }], - "mask-image-x-from-color": [{ "mask-x-from": c() }], - "mask-image-x-to-color": [{ "mask-x-to": c() }], - "mask-image-y-from-pos": [{ "mask-y-from": g() }], - "mask-image-y-to-pos": [{ "mask-y-to": g() }], - "mask-image-y-from-color": [{ "mask-y-from": c() }], - "mask-image-y-to-color": [{ "mask-y-to": c() }], - "mask-image-radial": [{ "mask-radial": [n, s] }], - "mask-image-radial-from-pos": [{ "mask-radial-from": g() }], - "mask-image-radial-to-pos": [{ "mask-radial-to": g() }], - "mask-image-radial-from-color": [{ "mask-radial-from": c() }], - "mask-image-radial-to-color": [{ "mask-radial-to": c() }], - "mask-image-radial-shape": [{ "mask-radial": ["circle", "ellipse"] }], - "mask-image-radial-size": [{ "mask-radial": [{ closest: ["side", "corner"], farthest: ["side", "corner"] }] }], - "mask-image-radial-pos": [{ "mask-radial-at": G() }], - "mask-image-conic-pos": [{ "mask-conic": [p] }], - "mask-image-conic-from-pos": [{ "mask-conic-from": g() }], - "mask-image-conic-to-pos": [{ "mask-conic-to": g() }], - "mask-image-conic-from-color": [{ "mask-conic-from": c() }], - "mask-image-conic-to-color": [{ "mask-conic-to": c() }], - "mask-mode": [{ mask: ["alpha", "luminance", "match"] }], - "mask-origin": [{ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"] }], - "mask-position": [{ mask: Se() }], - "mask-repeat": [{ mask: Ae() }], - "mask-size": [{ mask: Ce() }], - "mask-type": [{ "mask-type": ["alpha", "luminance"] }], - "mask-image": [{ mask: ["none", n, s] }], - filter: [{ filter: ["", "none", n, s] }], - blur: [{ blur: Ie() }], - brightness: [{ brightness: [p, n, s] }], - contrast: [{ contrast: [p, n, s] }], - "drop-shadow": [{ "drop-shadow": ["", "none", F, ee, $] }], - "drop-shadow-color": [{ "drop-shadow": c() }], - grayscale: [{ grayscale: ["", p, n, s] }], - "hue-rotate": [{ "hue-rotate": [p, n, s] }], - invert: [{ invert: ["", p, n, s] }], - saturate: [{ saturate: [p, n, s] }], - sepia: [{ sepia: ["", p, n, s] }], - "backdrop-filter": [{ "backdrop-filter": ["", "none", n, s] }], - "backdrop-blur": [{ "backdrop-blur": Ie() }], - "backdrop-brightness": [{ "backdrop-brightness": [p, n, s] }], - "backdrop-contrast": [{ "backdrop-contrast": [p, n, s] }], - "backdrop-grayscale": [{ "backdrop-grayscale": ["", p, n, s] }], - "backdrop-hue-rotate": [{ "backdrop-hue-rotate": [p, n, s] }], - "backdrop-invert": [{ "backdrop-invert": ["", p, n, s] }], - "backdrop-opacity": [{ "backdrop-opacity": [p, n, s] }], - "backdrop-saturate": [{ "backdrop-saturate": [p, n, s] }], - "backdrop-sepia": [{ "backdrop-sepia": ["", p, n, s] }], - "border-collapse": [{ border: ["collapse", "separate"] }], - "border-spacing": [{ "border-spacing": m() }], - "border-spacing-x": [{ "border-spacing-x": m() }], - "border-spacing-y": [{ "border-spacing-y": m() }], - "table-layout": [{ table: ["auto", "fixed"] }], - caption: [{ caption: ["top", "bottom"] }], - transition: [{ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", n, s] }], - "transition-behavior": [{ transition: ["normal", "discrete"] }], - duration: [{ duration: [p, "initial", n, s] }], - ease: [{ ease: ["linear", "initial", I, n, s] }], - delay: [{ delay: [p, n, s] }], - animate: [{ animate: ["none", q, n, s] }], - backface: [{ backface: ["hidden", "visible"] }], - perspective: [{ perspective: [k, n, s] }], - "perspective-origin": [{ "perspective-origin": L() }], - rotate: [{ rotate: Y() }], - "rotate-x": [{ "rotate-x": Y() }], - "rotate-y": [{ "rotate-y": Y() }], - "rotate-z": [{ "rotate-z": Y() }], - scale: [{ scale: Q() }], - "scale-x": [{ "scale-x": Q() }], - "scale-y": [{ "scale-y": Q() }], - "scale-z": [{ "scale-z": Q() }], - "scale-3d": ["scale-3d"], - skew: [{ skew: se() }], - "skew-x": [{ "skew-x": se() }], - "skew-y": [{ "skew-y": se() }], - transform: [{ transform: [n, s, "", "none", "gpu", "cpu"] }], - "transform-origin": [{ origin: L() }], - "transform-style": [{ transform: ["3d", "flat"] }], - translate: [{ translate: Z() }], - "translate-x": [{ "translate-x": Z() }], - "translate-y": [{ "translate-y": Z() }], - "translate-z": [{ "translate-z": Z() }], - "translate-none": ["translate-none"], - accent: [{ accent: c() }], - appearance: [{ appearance: ["none", "auto"] }], - "caret-color": [{ caret: c() }], - "color-scheme": [{ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"] }], - cursor: [ - { - cursor: [ - "auto", - "default", - "pointer", - "wait", - "text", - "move", - "help", - "not-allowed", - "none", - "context-menu", - "progress", - "cell", - "crosshair", - "vertical-text", - "alias", - "copy", - "no-drop", - "grab", - "grabbing", - "all-scroll", - "col-resize", - "row-resize", - "n-resize", - "e-resize", - "s-resize", - "w-resize", - "ne-resize", - "nw-resize", - "se-resize", - "sw-resize", - "ew-resize", - "ns-resize", - "nesw-resize", - "nwse-resize", - "zoom-in", - "zoom-out", - n, - s, - ], - }, - ], - "field-sizing": [{ "field-sizing": ["fixed", "content"] }], - "pointer-events": [{ "pointer-events": ["auto", "none"] }], - resize: [{ resize: ["none", "", "y", "x"] }], - "scroll-behavior": [{ scroll: ["auto", "smooth"] }], - "scroll-m": [{ "scroll-m": m() }], - "scroll-mx": [{ "scroll-mx": m() }], - "scroll-my": [{ "scroll-my": m() }], - "scroll-ms": [{ "scroll-ms": m() }], - "scroll-me": [{ "scroll-me": m() }], - "scroll-mt": [{ "scroll-mt": m() }], - "scroll-mr": [{ "scroll-mr": m() }], - "scroll-mb": [{ "scroll-mb": m() }], - "scroll-ml": [{ "scroll-ml": m() }], - "scroll-p": [{ "scroll-p": m() }], - "scroll-px": [{ "scroll-px": m() }], - "scroll-py": [{ "scroll-py": m() }], - "scroll-ps": [{ "scroll-ps": m() }], - "scroll-pe": [{ "scroll-pe": m() }], - "scroll-pt": [{ "scroll-pt": m() }], - "scroll-pr": [{ "scroll-pr": m() }], - "scroll-pb": [{ "scroll-pb": m() }], - "scroll-pl": [{ "scroll-pl": m() }], - "snap-align": [{ snap: ["start", "end", "center", "align-none"] }], - "snap-stop": [{ snap: ["normal", "always"] }], - "snap-type": [{ snap: ["none", "x", "y", "both"] }], - "snap-strictness": [{ snap: ["mandatory", "proximity"] }], - touch: [{ touch: ["auto", "none", "manipulation"] }], - "touch-x": [{ "touch-pan": ["x", "left", "right"] }], - "touch-y": [{ "touch-pan": ["y", "up", "down"] }], - "touch-pz": ["touch-pinch-zoom"], - select: [{ select: ["none", "text", "all", "auto"] }], - "will-change": [{ "will-change": ["auto", "scroll", "contents", "transform", n, s] }], - fill: [{ fill: ["none", ...c()] }], - "stroke-w": [{ stroke: [p, W, P, ce] }], - stroke: [{ stroke: ["none", ...c()] }], - "forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }], - }, - conflictingClassGroups: { - overflow: ["overflow-x", "overflow-y"], - overscroll: ["overscroll-x", "overscroll-y"], - inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"], - "inset-x": ["right", "left"], - "inset-y": ["top", "bottom"], - flex: ["basis", "grow", "shrink"], - gap: ["gap-x", "gap-y"], - p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"], - px: ["pr", "pl"], - py: ["pt", "pb"], - m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"], - mx: ["mr", "ml"], - my: ["mt", "mb"], - size: ["w", "h"], - "font-size": ["leading"], - "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"], - "fvn-ordinal": ["fvn-normal"], - "fvn-slashed-zero": ["fvn-normal"], - "fvn-figure": ["fvn-normal"], - "fvn-spacing": ["fvn-normal"], - "fvn-fraction": ["fvn-normal"], - "line-clamp": ["display", "overflow"], - rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"], - "rounded-s": ["rounded-ss", "rounded-es"], - "rounded-e": ["rounded-se", "rounded-ee"], - "rounded-t": ["rounded-tl", "rounded-tr"], - "rounded-r": ["rounded-tr", "rounded-br"], - "rounded-b": ["rounded-br", "rounded-bl"], - "rounded-l": ["rounded-tl", "rounded-bl"], - "border-spacing": ["border-spacing-x", "border-spacing-y"], - "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"], - "border-w-x": ["border-w-r", "border-w-l"], - "border-w-y": ["border-w-t", "border-w-b"], - "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"], - "border-color-x": ["border-color-r", "border-color-l"], - "border-color-y": ["border-color-t", "border-color-b"], - translate: ["translate-x", "translate-y", "translate-none"], - "translate-none": ["translate", "translate-x", "translate-y", "translate-z"], - "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"], - "scroll-mx": ["scroll-mr", "scroll-ml"], - "scroll-my": ["scroll-mt", "scroll-mb"], - "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"], - "scroll-px": ["scroll-pr", "scroll-pl"], - "scroll-py": ["scroll-pt", "scroll-pb"], - touch: ["touch-x", "touch-y", "touch-pz"], - "touch-x": ["touch"], - "touch-y": ["touch"], - "touch-pz": ["touch"], - }, - conflictingClassGroupModifiers: { "font-size": ["leading"] }, - orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"], - }; - }, - Do = So(Wo); -var Ho = xe('User profile'), - qo = xe("
        "); -function $o(e, o) { - Fe(o, !0); - var r = qo(); - let t; - var a = de(r), - d = de(a); - { - var l = (i) => { - co(i, { - get userId() { - return o.userId; - }, - }); - }, - u = (i) => { - var f = Ho(); - pe(() => to(f, "src", o.pictureUrl)), ue(i, f); - }; - oo(d, (i) => { - o.pictureUrl ? i(u, !1) : i(l); - }); - } - me(a), - me(r), - pe( - (i, f) => { - (t = fe(r, 1, "avatar relative rounded-full", null, t, i)), fe(a, 1, f); - }, - [() => ({ "border-3": o.isSuspended, "border-red-500": o.isSuspended }), () => ro(Do("border-base-300 size-20 rounded-full border-2", o.class))] - ), - ue(e, r), - Ue(); -} -export { $o as P, co as a, Do as t }; diff --git a/frontend-backup/_app/immutable/chunks/DCynssDD.js b/frontend-backup/_app/immutable/chunks/DCynssDD.js new file mode 100644 index 0000000..9cfa9a5 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DCynssDD.js @@ -0,0 +1,54 @@ +import "./Ch2Ub8FX.js"; +import { v as n, b as d } from "./CMvZtFtm.js"; +import { b as r } from "./C5yqZvKC.js"; +import { r as s } from "./BF50aS-j.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "6275c75f-2cba-4611-a807-b274187f8ba0"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-6275c75f-2cba-4611-a807-b274187f8ba0")); + })(); +} catch {} +var i = n( + '' +); +function c(e, t) { + let f = s(t, ["$$slots", "$$events", "$$legacy"]); + var o = i(); + r(o, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...f, + })), + d(e, o); +} +export { c as W }; diff --git a/frontend-backup/_app/immutable/chunks/DFzO1c4b.js b/frontend-backup/_app/immutable/chunks/DFzO1c4b.js deleted file mode 100644 index 9a08808..0000000 --- a/frontend-backup/_app/immutable/chunks/DFzO1c4b.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e0ae0548-fcbf-4f39-9ea8-c8dece67686b",e._sentryDebugIdIdentifier="sentry-dbid-e0ae0548-fcbf-4f39-9ea8-c8dece67686b")})()}catch{}const t=()=>"No data.",d=()=>"Sem dados.",l=(e={},n={})=>(n.locale??o())==="en"?t():d();export{l as n}; diff --git a/frontend-backup/_app/immutable/chunks/DLfdYhzo.js b/frontend-backup/_app/immutable/chunks/DLfdYhzo.js new file mode 100644 index 0000000..171f2dd --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DLfdYhzo.js @@ -0,0 +1,109 @@ +import { g as p } from "./CV9xcpLq.js"; +import "./Ch2Ub8FX.js"; +import { ay as g, a as h, b as r, v } from "./CMvZtFtm.js"; +import { i as w, r as i } from "./BF50aS-j.js"; +import { b as s } from "./C5yqZvKC.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new e.Error().stack; + o && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[o] = "3298bbfa-10df-4888-8ec0-1b806457f64a"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-3298bbfa-10df-4888-8ec0-1b806457f64a")); + })(); +} catch {} +const m = (e) => `Copy alliance ID: #${e.allianceId}`, + b = (e) => `Copiar ID da aliança: #${e.allianceId}`, + C = (e, o = {}) => ((o.locale ?? p()) === "en" ? m(e) : b(e)); +var u = v( + '' + ), + y = v( + '' + ); +function H(e, o) { + let a = i(o, ["$$slots", "$$events", "$$legacy", "filled"]); + var t = g(), + f = h(t); + { + var c = (l) => { + var n = u(); + s(n, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...a, + })), + r(l, n); + }, + d = (l) => { + var n = y(); + s(n, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...a, + })), + r(l, n); + }; + w(f, (l) => { + o.filled ? l(c) : l(d, !1); + }); + } + r(e, t); +} +var T = v( + '' +); +function D(e, o) { + let a = i(o, ["$$slots", "$$events", "$$legacy"]); + var t = T(); + s(t, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...a, + })), + r(e, t); +} +var q = v( + '' +); +function M(e, o) { + let a = i(o, ["$$slots", "$$events", "$$legacy"]); + var t = q(); + s(t, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...a, + })), + r(e, t); +} +export { H as C, D as G, M as T, C as c }; diff --git a/frontend-backup/_app/immutable/chunks/DM9nRpoa.js b/frontend-backup/_app/immutable/chunks/DM9nRpoa.js deleted file mode 100644 index f9c35b8..0000000 --- a/frontend-backup/_app/immutable/chunks/DM9nRpoa.js +++ /dev/null @@ -1,1684 +0,0 @@ -(function () { - try { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - t.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var t = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - e = new t.Error().stack; - e && ((t._sentryDebugIds = t._sentryDebugIds || {}), (t._sentryDebugIds[e] = "94f605bd-8e96-4f8e-8769-0ddf701a4cfb"), (t._sentryDebugIdIdentifier = "sentry-dbid-94f605bd-8e96-4f8e-8769-0ddf701a4cfb")); - })(); -} catch {} -const S = typeof __SENTRY_DEBUG__ > "u" || __SENTRY_DEBUG__, - g = globalThis, - O = "10.11.0"; -function D() { - return et(g), g; -} -function et(t) { - const e = (t.__SENTRY__ = t.__SENTRY__ || {}); - return (e.version = e.version || O), (e[O] = e[O] || {}); -} -function j(t, e, n = g) { - const r = (n.__SENTRY__ = n.__SENTRY__ || {}), - s = (r[O] = r[O] || {}); - return s[t] || (s[t] = e()); -} -const wn = ["debug", "info", "warn", "error", "log", "assert", "trace"], - Jt = "Sentry Logger ", - dt = {}; -function nt(t) { - if (!("console" in g)) return t(); - const e = g.console, - n = {}, - r = Object.keys(dt); - r.forEach((s) => { - const i = dt[s]; - (n[s] = e[s]), (e[s] = i); - }); - try { - return t(); - } finally { - r.forEach((s) => { - e[s] = n[s]; - }); - } -} -function qt() { - st().enabled = !0; -} -function Qt() { - st().enabled = !1; -} -function Rt() { - return st().enabled; -} -function Zt(...t) { - rt("log", ...t); -} -function te(...t) { - rt("warn", ...t); -} -function ee(...t) { - rt("error", ...t); -} -function rt(t, ...e) { - S && - Rt() && - nt(() => { - g.console[t](`${Jt}[${t}]:`, ...e); - }); -} -function st() { - return S ? j("loggerSettings", () => ({ enabled: !1 })) : { enabled: !1 }; -} -const h = { enable: qt, disable: Qt, isEnabled: Rt, log: Zt, warn: te, error: ee }, - Ot = 50, - ne = "?", - pt = /\(error: (.*)\)/, - lt = /captureMessage|captureException/; -function re(...t) { - const e = t.sort((n, r) => n[0] - r[0]).map((n) => n[1]); - return (n, r = 0, s = 0) => { - const i = [], - o = n.split(` -`); - for (let c = r; c < o.length; c++) { - let a = o[c]; - a.length > 1024 && (a = a.slice(0, 1024)); - const u = pt.test(a) ? a.replace(pt, "$1") : a; - if (!u.match(/\S*Error: /)) { - for (const f of e) { - const d = f(u); - if (d) { - i.push(d); - break; - } - } - if (i.length >= Ot + s) break; - } - } - return se(i.slice(s)); - }; -} -function Pn(t) { - return Array.isArray(t) ? re(...t) : t; -} -function se(t) { - if (!t.length) return []; - const e = Array.from(t); - return ( - /sentryWrapped/.test(w(e).function || "") && e.pop(), - e.reverse(), - lt.test(w(e).function || "") && (e.pop(), lt.test(w(e).function || "") && e.pop()), - e.slice(0, Ot).map((n) => ({ ...n, filename: n.filename || w(e).filename, function: n.function || ne })) - ); -} -function w(t) { - return t[t.length - 1] || {}; -} -const K = ""; -function ie(t) { - try { - return !t || typeof t != "function" ? K : t.name || K; - } catch { - return K; - } -} -function kn(t) { - const e = t.exception; - if (e) { - const n = []; - try { - return ( - e.values.forEach((r) => { - r.stacktrace.frames && n.push(...r.stacktrace.frames); - }), - n - ); - } catch { - return; - } - } -} -const Dt = Object.prototype.toString; -function oe(t) { - switch (Dt.call(t)) { - case "[object Error]": - case "[object Exception]": - case "[object DOMException]": - case "[object WebAssembly.Exception]": - return !0; - default: - return M(t, Error); - } -} -function x(t, e) { - return Dt.call(t) === `[object ${e}]`; -} -function Ln(t) { - return x(t, "ErrorEvent"); -} -function Fn(t) { - return x(t, "DOMError"); -} -function $n(t) { - return x(t, "DOMException"); -} -function F(t) { - return x(t, "String"); -} -function ae(t) { - return typeof t == "object" && t !== null && "__sentry_template_string__" in t && "__sentry_template_values__" in t; -} -function Un(t) { - return t === null || ae(t) || (typeof t != "object" && typeof t != "function"); -} -function Mt(t) { - return x(t, "Object"); -} -function ce(t) { - return typeof Event < "u" && M(t, Event); -} -function ue(t) { - return typeof Element < "u" && M(t, Element); -} -function fe(t) { - return x(t, "RegExp"); -} -function it(t) { - return !!(t != null && t.then && typeof t.then == "function"); -} -function de(t) { - return Mt(t) && "nativeEvent" in t && "preventDefault" in t && "stopPropagation" in t; -} -function M(t, e) { - try { - return t instanceof e; - } catch { - return !1; - } -} -function wt(t) { - return !!(typeof t == "object" && t !== null && (t.__isVue || t._isVue)); -} -function jn(t) { - return typeof Request < "u" && M(t, Request); -} -const ot = g, - pe = 80; -function le(t, e = {}) { - if (!t) return ""; - try { - let n = t; - const r = 5, - s = []; - let i = 0, - o = 0; - const c = " > ", - a = c.length; - let u; - const f = Array.isArray(e) ? e : e.keyAttrs, - d = (!Array.isArray(e) && e.maxStringLength) || pe; - for (; n && i++ < r && ((u = _e(n, f)), !(u === "html" || (i > 1 && o + s.length * a + u.length >= d))); ) s.push(u), (o += u.length), (n = n.parentNode); - return s.reverse().join(c); - } catch { - return ""; - } -} -function _e(t, e) { - const n = t, - r = []; - if (!(n != null && n.tagName)) return ""; - if (ot.HTMLElement && n instanceof HTMLElement && n.dataset) { - if (n.dataset.sentryComponent) return n.dataset.sentryComponent; - if (n.dataset.sentryElement) return n.dataset.sentryElement; - } - r.push(n.tagName.toLowerCase()); - const s = e != null && e.length ? e.filter((o) => n.getAttribute(o)).map((o) => [o, n.getAttribute(o)]) : null; - if (s != null && s.length) - s.forEach((o) => { - r.push(`[${o[0]}="${o[1]}"]`); - }); - else { - n.id && r.push(`#${n.id}`); - const o = n.className; - if (o && F(o)) { - const c = o.split(/\s+/); - for (const a of c) r.push(`.${a}`); - } - } - const i = ["aria-label", "type", "name", "title", "alt"]; - for (const o of i) { - const c = n.getAttribute(o); - c && r.push(`[${o}="${c}"]`); - } - return r.join(""); -} -function vn() { - try { - return ot.document.location.href; - } catch { - return ""; - } -} -function Bn(t) { - if (!ot.HTMLElement) return null; - let e = t; - const n = 5; - for (let r = 0; r < n; r++) { - if (!e) return null; - if (e instanceof HTMLElement) { - if (e.dataset.sentryComponent) return e.dataset.sentryComponent; - if (e.dataset.sentryElement) return e.dataset.sentryElement; - } - e = e.parentNode; - } - return null; -} -function $(t, e = 0) { - return typeof t != "string" || e === 0 || t.length <= e ? t : `${t.slice(0, e)}...`; -} -function Gn(t, e) { - if (!Array.isArray(t)) return ""; - const n = []; - for (let r = 0; r < t.length; r++) { - const s = t[r]; - try { - wt(s) ? n.push("[VueViewModel]") : n.push(String(s)); - } catch { - n.push("[value cannot be serialized]"); - } - } - return n.join(e); -} -function ge(t, e, n = !1) { - return F(t) ? (fe(e) ? e.test(t) : F(e) ? (n ? t === e : t.includes(e)) : !1) : !1; -} -function zn(t, e = [], n = !1) { - return e.some((r) => ge(t, r, n)); -} -function Hn(t, e, n) { - if (!(e in t)) return; - const r = t[e]; - if (typeof r != "function") return; - const s = n(r); - typeof s == "function" && he(s, r); - try { - t[e] = s; - } catch { - S && h.log(`Failed to replace method "${e}" in object`, t); - } -} -function I(t, e, n) { - try { - Object.defineProperty(t, e, { value: n, writable: !0, configurable: !0 }); - } catch { - S && h.log(`Failed to add non-enumerable property "${e}" to object`, t); - } -} -function he(t, e) { - try { - const n = e.prototype || {}; - (t.prototype = e.prototype = n), I(t, "__sentry_original__", e); - } catch {} -} -function Yn(t) { - return t.__sentry_original__; -} -function Pt(t) { - if (oe(t)) return { message: t.message, name: t.name, stack: t.stack, ...gt(t) }; - if (ce(t)) { - const e = { type: t.type, target: _t(t.target), currentTarget: _t(t.currentTarget), ...gt(t) }; - return typeof CustomEvent < "u" && M(t, CustomEvent) && (e.detail = t.detail), e; - } else return t; -} -function _t(t) { - try { - return ue(t) ? le(t) : Object.prototype.toString.call(t); - } catch { - return ""; - } -} -function gt(t) { - if (typeof t == "object" && t !== null) { - const e = {}; - for (const n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); - return e; - } else return {}; -} -function Vn(t, e = 40) { - const n = Object.keys(Pt(t)); - n.sort(); - const r = n[0]; - if (!r) return "[object has no keys]"; - if (r.length >= e) return $(r, e); - for (let s = n.length; s > 0; s--) { - const i = n.slice(0, s).join(", "); - if (!(i.length > e)) return s === n.length ? i : $(i, e); - } - return ""; -} -function me() { - const t = g; - return t.crypto || t.msCrypto; -} -function T(t = me()) { - let e = () => Math.random() * 16; - try { - if (t != null && t.randomUUID) return t.randomUUID().replace(/-/g, ""); - t != null && - t.getRandomValues && - (e = () => { - const n = new Uint8Array(1); - return t.getRandomValues(n), n[0]; - }); - } catch {} - return ("10000000100040008000" + 1e11).replace(/[018]/g, (n) => (n ^ ((e() & 15) >> (n / 4))).toString(16)); -} -function kt(t) { - var e, n; - return (n = (e = t.exception) == null ? void 0 : e.values) == null ? void 0 : n[0]; -} -function Kn(t) { - const { message: e, event_id: n } = t; - if (e) return e; - const r = kt(t); - return r ? (r.type && r.value ? `${r.type}: ${r.value}` : r.type || r.value || n || "") : n || ""; -} -function Wn(t, e, n) { - const r = (t.exception = t.exception || {}), - s = (r.values = r.values || []), - i = (s[0] = s[0] || {}); - i.value || (i.value = e || ""), i.type || (i.type = "Error"); -} -function Se(t, e) { - const n = kt(t); - if (!n) return; - const r = { type: "generic", handled: !0 }, - s = n.mechanism; - if (((n.mechanism = { ...r, ...s, ...e }), e && "data" in e)) { - const i = { ...(s == null ? void 0 : s.data), ...e.data }; - n.mechanism.data = i; - } -} -function Xn(t) { - if (ye(t)) return !0; - try { - I(t, "__sentry_captured__", !0); - } catch {} - return !1; -} -function ye(t) { - try { - return t.__sentry_captured__; - } catch {} -} -const Lt = 1e3; -function at() { - return Date.now() / Lt; -} -function Ee() { - const { performance: t } = g; - if (!(t != null && t.now) || !t.timeOrigin) return at; - const e = t.timeOrigin; - return () => (e + t.now()) / Lt; -} -let ht; -function ct() { - return (ht ?? (ht = Ee()))(); -} -let W; -function be() { - var f; - const { performance: t } = g; - if (!(t != null && t.now)) return [void 0, "none"]; - const e = 3600 * 1e3, - n = t.now(), - r = Date.now(), - s = t.timeOrigin ? Math.abs(t.timeOrigin + n - r) : e, - i = s < e, - o = (f = t.timing) == null ? void 0 : f.navigationStart, - a = typeof o == "number" ? Math.abs(o + n - r) : e, - u = a < e; - return i || u ? (s <= a ? [t.timeOrigin, "timeOrigin"] : [o, "navigationStart"]) : [r, "dateNow"]; -} -function Jn() { - return W || (W = be()), W[0]; -} -function Te(t) { - const e = ct(), - n = { sid: T(), init: !0, timestamp: e, started: e, duration: 0, status: "ok", errors: 0, ignoreDuration: !1, toJSON: () => Ae(n) }; - return t && v(n, t), n; -} -function v(t, e = {}) { - if ( - (e.user && (!t.ipAddress && e.user.ip_address && (t.ipAddress = e.user.ip_address), !t.did && !e.did && (t.did = e.user.id || e.user.email || e.user.username)), - (t.timestamp = e.timestamp || ct()), - e.abnormal_mechanism && (t.abnormal_mechanism = e.abnormal_mechanism), - e.ignoreDuration && (t.ignoreDuration = e.ignoreDuration), - e.sid && (t.sid = e.sid.length === 32 ? e.sid : T()), - e.init !== void 0 && (t.init = e.init), - !t.did && e.did && (t.did = `${e.did}`), - typeof e.started == "number" && (t.started = e.started), - t.ignoreDuration) - ) - t.duration = void 0; - else if (typeof e.duration == "number") t.duration = e.duration; - else { - const n = t.timestamp - t.started; - t.duration = n >= 0 ? n : 0; - } - e.release && (t.release = e.release), - e.environment && (t.environment = e.environment), - !t.ipAddress && e.ipAddress && (t.ipAddress = e.ipAddress), - !t.userAgent && e.userAgent && (t.userAgent = e.userAgent), - typeof e.errors == "number" && (t.errors = e.errors), - e.status && (t.status = e.status); -} -function Ie(t, e) { - let n = {}; - t.status === "ok" && (n = { status: "exited" }), v(t, n); -} -function Ae(t) { - return { - sid: `${t.sid}`, - init: t.init, - started: new Date(t.started * 1e3).toISOString(), - timestamp: new Date(t.timestamp * 1e3).toISOString(), - status: t.status, - errors: t.errors, - did: typeof t.did == "number" || typeof t.did == "string" ? `${t.did}` : void 0, - duration: t.duration, - abnormal_mechanism: t.abnormal_mechanism, - attrs: { release: t.release, environment: t.environment, ip_address: t.ipAddress, user_agent: t.userAgent }, - }; -} -function B(t, e, n = 2) { - if (!e || typeof e != "object" || n <= 0) return e; - if (t && Object.keys(e).length === 0) return t; - const r = { ...t }; - for (const s in e) Object.prototype.hasOwnProperty.call(e, s) && (r[s] = B(r[s], e[s], n - 1)); - return r; -} -function U() { - return T(); -} -function ut() { - return T().substring(16); -} -const J = "_sentrySpan"; -function mt(t, e) { - e ? I(t, J, e) : delete t[J]; -} -function q(t) { - return t[J]; -} -const Ce = 100; -class y { - constructor() { - (this._notifyingListeners = !1), - (this._scopeListeners = []), - (this._eventProcessors = []), - (this._breadcrumbs = []), - (this._attachments = []), - (this._user = {}), - (this._tags = {}), - (this._extra = {}), - (this._contexts = {}), - (this._sdkProcessingMetadata = {}), - (this._propagationContext = { traceId: U(), sampleRand: Math.random() }); - } - clone() { - const e = new y(); - return ( - (e._breadcrumbs = [...this._breadcrumbs]), - (e._tags = { ...this._tags }), - (e._extra = { ...this._extra }), - (e._contexts = { ...this._contexts }), - this._contexts.flags && (e._contexts.flags = { values: [...this._contexts.flags.values] }), - (e._user = this._user), - (e._level = this._level), - (e._session = this._session), - (e._transactionName = this._transactionName), - (e._fingerprint = this._fingerprint), - (e._eventProcessors = [...this._eventProcessors]), - (e._attachments = [...this._attachments]), - (e._sdkProcessingMetadata = { ...this._sdkProcessingMetadata }), - (e._propagationContext = { ...this._propagationContext }), - (e._client = this._client), - (e._lastEventId = this._lastEventId), - mt(e, q(this)), - e - ); - } - setClient(e) { - this._client = e; - } - setLastEventId(e) { - this._lastEventId = e; - } - getClient() { - return this._client; - } - lastEventId() { - return this._lastEventId; - } - addScopeListener(e) { - this._scopeListeners.push(e); - } - addEventProcessor(e) { - return this._eventProcessors.push(e), this; - } - setUser(e) { - return (this._user = e || { email: void 0, id: void 0, ip_address: void 0, username: void 0 }), this._session && v(this._session, { user: e }), this._notifyScopeListeners(), this; - } - getUser() { - return this._user; - } - setTags(e) { - return (this._tags = { ...this._tags, ...e }), this._notifyScopeListeners(), this; - } - setTag(e, n) { - return (this._tags = { ...this._tags, [e]: n }), this._notifyScopeListeners(), this; - } - setExtras(e) { - return (this._extra = { ...this._extra, ...e }), this._notifyScopeListeners(), this; - } - setExtra(e, n) { - return (this._extra = { ...this._extra, [e]: n }), this._notifyScopeListeners(), this; - } - setFingerprint(e) { - return (this._fingerprint = e), this._notifyScopeListeners(), this; - } - setLevel(e) { - return (this._level = e), this._notifyScopeListeners(), this; - } - setTransactionName(e) { - return (this._transactionName = e), this._notifyScopeListeners(), this; - } - setContext(e, n) { - return n === null ? delete this._contexts[e] : (this._contexts[e] = n), this._notifyScopeListeners(), this; - } - setSession(e) { - return e ? (this._session = e) : delete this._session, this._notifyScopeListeners(), this; - } - getSession() { - return this._session; - } - update(e) { - if (!e) return this; - const n = typeof e == "function" ? e(this) : e, - r = n instanceof y ? n.getScopeData() : Mt(n) ? e : void 0, - { tags: s, extra: i, user: o, contexts: c, level: a, fingerprint: u = [], propagationContext: f } = r || {}; - return ( - (this._tags = { ...this._tags, ...s }), - (this._extra = { ...this._extra, ...i }), - (this._contexts = { ...this._contexts, ...c }), - o && Object.keys(o).length && (this._user = o), - a && (this._level = a), - u.length && (this._fingerprint = u), - f && (this._propagationContext = f), - this - ); - } - clear() { - return ( - (this._breadcrumbs = []), - (this._tags = {}), - (this._extra = {}), - (this._user = {}), - (this._contexts = {}), - (this._level = void 0), - (this._transactionName = void 0), - (this._fingerprint = void 0), - (this._session = void 0), - mt(this, void 0), - (this._attachments = []), - this.setPropagationContext({ traceId: U(), sampleRand: Math.random() }), - this._notifyScopeListeners(), - this - ); - } - addBreadcrumb(e, n) { - var i; - const r = typeof n == "number" ? n : Ce; - if (r <= 0) return this; - const s = { timestamp: at(), ...e, message: e.message ? $(e.message, 2048) : e.message }; - return ( - this._breadcrumbs.push(s), - this._breadcrumbs.length > r && ((this._breadcrumbs = this._breadcrumbs.slice(-r)), (i = this._client) == null || i.recordDroppedEvent("buffer_overflow", "log_item")), - this._notifyScopeListeners(), - this - ); - } - getLastBreadcrumb() { - return this._breadcrumbs[this._breadcrumbs.length - 1]; - } - clearBreadcrumbs() { - return (this._breadcrumbs = []), this._notifyScopeListeners(), this; - } - addAttachment(e) { - return this._attachments.push(e), this; - } - clearAttachments() { - return (this._attachments = []), this; - } - getScopeData() { - return { - breadcrumbs: this._breadcrumbs, - attachments: this._attachments, - contexts: this._contexts, - tags: this._tags, - extra: this._extra, - user: this._user, - level: this._level, - fingerprint: this._fingerprint || [], - eventProcessors: this._eventProcessors, - propagationContext: this._propagationContext, - sdkProcessingMetadata: this._sdkProcessingMetadata, - transactionName: this._transactionName, - span: q(this), - }; - } - setSDKProcessingMetadata(e) { - return (this._sdkProcessingMetadata = B(this._sdkProcessingMetadata, e, 2)), this; - } - setPropagationContext(e) { - return (this._propagationContext = e), this; - } - getPropagationContext() { - return this._propagationContext; - } - captureException(e, n) { - const r = (n == null ? void 0 : n.event_id) || T(); - if (!this._client) return S && h.warn("No client configured on scope - will not capture exception!"), r; - const s = new Error("Sentry syntheticException"); - return this._client.captureException(e, { originalException: e, syntheticException: s, ...n, event_id: r }, this), r; - } - captureMessage(e, n, r) { - const s = (r == null ? void 0 : r.event_id) || T(); - if (!this._client) return S && h.warn("No client configured on scope - will not capture message!"), s; - const i = new Error(e); - return this._client.captureMessage(e, n, { originalException: e, syntheticException: i, ...r, event_id: s }, this), s; - } - captureEvent(e, n) { - const r = (n == null ? void 0 : n.event_id) || T(); - return this._client ? (this._client.captureEvent(e, { ...n, event_id: r }, this), r) : (S && h.warn("No client configured on scope - will not capture event!"), r); - } - _notifyScopeListeners() { - this._notifyingListeners || - ((this._notifyingListeners = !0), - this._scopeListeners.forEach((e) => { - e(this); - }), - (this._notifyingListeners = !1)); - } -} -function Ne() { - return j("defaultCurrentScope", () => new y()); -} -function xe() { - return j("defaultIsolationScope", () => new y()); -} -class Re { - constructor(e, n) { - let r; - e ? (r = e) : (r = new y()); - let s; - n ? (s = n) : (s = new y()), (this._stack = [{ scope: r }]), (this._isolationScope = s); - } - withScope(e) { - const n = this._pushScope(); - let r; - try { - r = e(n); - } catch (s) { - throw (this._popScope(), s); - } - return it(r) - ? r.then( - (s) => (this._popScope(), s), - (s) => { - throw (this._popScope(), s); - } - ) - : (this._popScope(), r); - } - getClient() { - return this.getStackTop().client; - } - getScope() { - return this.getStackTop().scope; - } - getIsolationScope() { - return this._isolationScope; - } - getStackTop() { - return this._stack[this._stack.length - 1]; - } - _pushScope() { - const e = this.getScope().clone(); - return this._stack.push({ client: this.getClient(), scope: e }), e; - } - _popScope() { - return this._stack.length <= 1 ? !1 : !!this._stack.pop(); - } -} -function C() { - const t = D(), - e = et(t); - return (e.stack = e.stack || new Re(Ne(), xe())); -} -function Oe(t) { - return C().withScope(t); -} -function De(t, e) { - const n = C(); - return n.withScope(() => ((n.getStackTop().scope = t), e(t))); -} -function St(t) { - return C().withScope(() => t(C().getIsolationScope())); -} -function Me() { - return { withIsolationScope: St, withScope: Oe, withSetScope: De, withSetIsolationScope: (t, e) => St(e), getCurrentScope: () => C().getScope(), getIsolationScope: () => C().getIsolationScope() }; -} -function G(t) { - const e = et(t); - return e.acs ? e.acs : Me(); -} -function R() { - const t = D(); - return G(t).getCurrentScope(); -} -function z() { - const t = D(); - return G(t).getIsolationScope(); -} -function we() { - return j("globalScope", () => new y()); -} -function qn(...t) { - const e = D(), - n = G(e); - if (t.length === 2) { - const [r, s] = t; - return r ? n.withSetScope(r, s) : n.withScope(s); - } - return n.withScope(t[0]); -} -function H() { - return R().getClient(); -} -function Qn(t) { - const e = t.getPropagationContext(), - { traceId: n, parentSpanId: r, propagationSpanId: s } = e, - i = { trace_id: n, span_id: s || ut() }; - return r && (i.parent_span_id = r), i; -} -const Pe = "sentry.source", - ke = "sentry.sample_rate", - Le = "sentry.previous_trace_sample_rate", - Fe = "sentry.op", - $e = "sentry.origin", - Zn = "sentry.idle_span_finish_reason", - tr = "sentry.measurement_unit", - er = "sentry.measurement_value", - nr = "sentry.custom_span_name", - rr = "sentry.profile_id", - sr = "sentry.exclusive_time", - ir = "sentry.link.type", - Ue = 0, - Ft = 1, - _ = 2; -function je(t) { - if (t < 400 && t >= 100) return { code: Ft }; - if (t >= 400 && t < 500) - switch (t) { - case 401: - return { code: _, message: "unauthenticated" }; - case 403: - return { code: _, message: "permission_denied" }; - case 404: - return { code: _, message: "not_found" }; - case 409: - return { code: _, message: "already_exists" }; - case 413: - return { code: _, message: "failed_precondition" }; - case 429: - return { code: _, message: "resource_exhausted" }; - case 499: - return { code: _, message: "cancelled" }; - default: - return { code: _, message: "invalid_argument" }; - } - if (t >= 500 && t < 600) - switch (t) { - case 501: - return { code: _, message: "unimplemented" }; - case 503: - return { code: _, message: "unavailable" }; - case 504: - return { code: _, message: "deadline_exceeded" }; - default: - return { code: _, message: "internal_error" }; - } - return { code: _, message: "unknown_error" }; -} -function or(t, e) { - t.setAttribute("http.response.status_code", e); - const n = je(e); - n.message !== "unknown_error" && t.setStatus(n); -} -const $t = "_sentryScope", - Ut = "_sentryIsolationScope"; -function ar(t, e, n) { - t && (I(t, Ut, n), I(t, $t, e)); -} -function jt(t) { - return { scope: t[$t], isolationScope: t[Ut] }; -} -const vt = "sentry-", - ve = /^sentry-/, - Be = 8192; -function Bt(t) { - const e = Ge(t); - if (!e) return; - const n = Object.entries(e).reduce((r, [s, i]) => { - if (s.match(ve)) { - const o = s.slice(vt.length); - r[o] = i; - } - return r; - }, {}); - if (Object.keys(n).length > 0) return n; -} -function cr(t) { - if (!t) return; - const e = Object.entries(t).reduce((n, [r, s]) => (s && (n[`${vt}${r}`] = s), n), {}); - return ze(e); -} -function Ge(t) { - if (!(!t || (!F(t) && !Array.isArray(t)))) - return Array.isArray(t) - ? t.reduce((e, n) => { - const r = yt(n); - return ( - Object.entries(r).forEach(([s, i]) => { - e[s] = i; - }), - e - ); - }, {}) - : yt(t); -} -function yt(t) { - return t - .split(",") - .map((e) => - e.split("=").map((n) => { - try { - return decodeURIComponent(n.trim()); - } catch { - return; - } - }) - ) - .reduce((e, [n, r]) => (n && r && (e[n] = r), e), {}); -} -function ze(t) { - if (Object.keys(t).length !== 0) - return Object.entries(t).reduce((e, [n, r], s) => { - const i = `${encodeURIComponent(n)}=${encodeURIComponent(r)}`, - o = s === 0 ? i : `${e},${i}`; - return o.length > Be ? (S && h.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`), e) : o; - }, ""); -} -const He = /^o(\d+)\./, - Ye = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/; -function Ve(t) { - return t === "http" || t === "https"; -} -function ur(t, e = !1) { - const { host: n, path: r, pass: s, port: i, projectId: o, protocol: c, publicKey: a } = t; - return `${c}://${a}${e && s ? `:${s}` : ""}@${n}${i ? `:${i}` : ""}/${r && `${r}/`}${o}`; -} -function Ke(t) { - const e = Ye.exec(t); - if (!e) { - nt(() => { - console.error(`Invalid Sentry Dsn: ${t}`); - }); - return; - } - const [n, r, s = "", i = "", o = "", c = ""] = e.slice(1); - let a = "", - u = c; - const f = u.split("/"); - if ((f.length > 1 && ((a = f.slice(0, -1).join("/")), (u = f.pop())), u)) { - const d = u.match(/^\d+/); - d && (u = d[0]); - } - return Gt({ host: i, pass: s, path: a, projectId: u, port: o, protocol: n, publicKey: r }); -} -function Gt(t) { - return { protocol: t.protocol, publicKey: t.publicKey || "", pass: t.pass || "", host: t.host, port: t.port || "", path: t.path || "", projectId: t.projectId }; -} -function We(t) { - if (!S) return !0; - const { port: e, projectId: n, protocol: r } = t; - return ["protocol", "publicKey", "host", "projectId"].find((o) => (t[o] ? !1 : (h.error(`Invalid Sentry Dsn: ${o} missing`), !0))) - ? !1 - : n.match(/^\d+$/) - ? Ve(r) - ? e && isNaN(parseInt(e, 10)) - ? (h.error(`Invalid Sentry Dsn: Invalid port ${e}`), !1) - : !0 - : (h.error(`Invalid Sentry Dsn: Invalid protocol ${r}`), !1) - : (h.error(`Invalid Sentry Dsn: Invalid projectId ${n}`), !1); -} -function Xe(t) { - const e = t.match(He); - return e == null ? void 0 : e[1]; -} -function Je(t) { - const e = t.getOptions(), - { host: n } = t.getDsn() || {}; - let r; - return e.orgId ? (r = String(e.orgId)) : n && (r = Xe(n)), r; -} -function fr(t) { - const e = typeof t == "string" ? Ke(t) : Gt(t); - if (!(!e || !We(e))) return e; -} -function Et(t) { - if (typeof t == "boolean") return Number(t); - const e = typeof t == "string" ? parseFloat(t) : t; - if (!(typeof e != "number" || isNaN(e) || e < 0 || e > 1)) return e; -} -const qe = new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$"); -function Qe(t) { - if (!t) return; - const e = t.match(qe); - if (!e) return; - let n; - return e[3] === "1" ? (n = !0) : e[3] === "0" && (n = !1), { traceId: e[1], parentSampled: n, parentSpanId: e[2] }; -} -function dr(t, e) { - const n = Qe(t), - r = Bt(e); - if (!(n != null && n.traceId)) return { traceId: U(), sampleRand: Math.random() }; - const s = tn(n, r); - r && (r.sample_rand = s.toString()); - const { traceId: i, parentSpanId: o, parentSampled: c } = n; - return { traceId: i, parentSpanId: o, sampled: c, dsc: r || {}, sampleRand: s }; -} -function Ze(t = U(), e = ut(), n) { - let r = ""; - return n !== void 0 && (r = n ? "-1" : "-0"), `${t}-${e}${r}`; -} -function tn(t, e) { - const n = Et(e == null ? void 0 : e.sample_rand); - if (n !== void 0) return n; - const r = Et(e == null ? void 0 : e.sample_rate); - return r && (t == null ? void 0 : t.parentSampled) !== void 0 ? (t.parentSampled ? Math.random() * r : r + Math.random() * (1 - r)) : Math.random(); -} -const pr = 0, - zt = 1; -let bt = !1; -function lr(t) { - const { spanId: e, traceId: n } = t.spanContext(), - { data: r, op: s, parent_span_id: i, status: o, origin: c, links: a } = Y(t); - return { parent_span_id: i, span_id: e, trace_id: n, data: r, op: s, status: o, origin: c, links: a }; -} -function en(t) { - const { spanId: e, traceId: n, isRemote: r } = t.spanContext(), - s = r ? e : Y(t).parent_span_id, - i = jt(t).scope, - o = r ? (i == null ? void 0 : i.getPropagationContext().propagationSpanId) || ut() : e; - return { parent_span_id: s, span_id: o, trace_id: n }; -} -function _r(t) { - const { traceId: e, spanId: n } = t.spanContext(), - r = ft(t); - return Ze(e, n, r); -} -function nn(t) { - if (t && t.length > 0) return t.map(({ context: { spanId: e, traceId: n, traceFlags: r, ...s }, attributes: i }) => ({ span_id: e, trace_id: n, sampled: r === zt, attributes: i, ...s })); -} -function Tt(t) { - return typeof t == "number" ? It(t) : Array.isArray(t) ? t[0] + t[1] / 1e9 : t instanceof Date ? It(t.getTime()) : ct(); -} -function It(t) { - return t > 9999999999 ? t / 1e3 : t; -} -function Y(t) { - var r; - if (sn(t)) return t.getSpanJSON(); - const { spanId: e, traceId: n } = t.spanContext(); - if (rn(t)) { - const { attributes: s, startTime: i, name: o, endTime: c, status: a, links: u } = t, - f = "parentSpanId" in t ? t.parentSpanId : "parentSpanContext" in t ? ((r = t.parentSpanContext) == null ? void 0 : r.spanId) : void 0; - return { span_id: e, trace_id: n, data: s, description: o, parent_span_id: f, start_timestamp: Tt(i), timestamp: Tt(c) || void 0, status: on(a), op: s[Fe], origin: s[$e], links: nn(u) }; - } - return { span_id: e, trace_id: n, start_timestamp: 0, data: {} }; -} -function rn(t) { - const e = t; - return !!e.attributes && !!e.startTime && !!e.name && !!e.endTime && !!e.status; -} -function sn(t) { - return typeof t.getSpanJSON == "function"; -} -function ft(t) { - const { traceFlags: e } = t.spanContext(); - return e === zt; -} -function on(t) { - if (!(!t || t.code === Ue)) return t.code === Ft ? "ok" : t.message || "unknown_error"; -} -const A = "_sentryChildSpans", - Q = "_sentryRootSpan"; -function gr(t, e) { - const n = t[Q] || t; - I(e, Q, n), t[A] ? t[A].add(e) : I(t, A, new Set([e])); -} -function hr(t, e) { - t[A] && t[A].delete(e); -} -function mr(t) { - const e = new Set(); - function n(r) { - if (!e.has(r) && ft(r)) { - e.add(r); - const s = r[A] ? Array.from(r[A]) : []; - for (const i of s) n(i); - } - } - return n(t), Array.from(e); -} -function Ht(t) { - return t[Q] || t; -} -function Sr() { - const t = D(), - e = G(t); - return e.getActiveSpan ? e.getActiveSpan() : q(R()); -} -function yr() { - bt || - (nt(() => { - console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly."); - }), - (bt = !0)); -} -function an(t) { - var n; - if (typeof __SENTRY_TRACING__ == "boolean" && !__SENTRY_TRACING__) return !1; - const e = t || ((n = H()) == null ? void 0 : n.getOptions()); - return !!e && (e.tracesSampleRate != null || !!e.tracesSampler); -} -const Yt = "production", - Vt = "_frozenDsc"; -function Er(t, e) { - I(t, Vt, e); -} -function Kt(t, e) { - const n = e.getOptions(), - { publicKey: r } = e.getDsn() || {}, - s = { environment: n.environment || Yt, release: n.release, public_key: r, trace_id: t, org_id: Je(e) }; - return e.emit("createDsc", s), s; -} -function br(t, e) { - const n = e.getPropagationContext(); - return n.dsc || Kt(n.traceId, t); -} -function cn(t) { - var E; - const e = H(); - if (!e) return {}; - const n = Ht(t), - r = Y(n), - s = r.data, - i = n.spanContext().traceState, - o = (i == null ? void 0 : i.get("sentry.sample_rate")) ?? s[ke] ?? s[Le]; - function c(V) { - return (typeof o == "number" || typeof o == "string") && (V.sample_rate = `${o}`), V; - } - const a = n[Vt]; - if (a) return c(a); - const u = i == null ? void 0 : i.get("sentry.dsc"), - f = u && Bt(u); - if (f) return c(f); - const d = Kt(t.spanContext().traceId, e), - l = s[Pe], - p = r.description; - return ( - l !== "url" && p && (d.transaction = p), - an() && ((d.sampled = String(ft(n))), (d.sample_rand = (i == null ? void 0 : i.get("sentry.sample_rand")) ?? ((E = jt(n).scope) == null ? void 0 : E.getPropagationContext().sampleRand.toString()))), - c(d), - e.emit("createDsc", d, n), - d - ); -} -function b(t, e = 100, n = 1 / 0) { - try { - return Z("", t, e, n); - } catch (r) { - return { ERROR: `**non-serializable** (${r})` }; - } -} -function un(t, e = 3, n = 100 * 1024) { - const r = b(t, e); - return ln(r) > n ? un(t, e - 1, n) : r; -} -function Z(t, e, n = 1 / 0, r = 1 / 0, s = _n()) { - const [i, o] = s; - if (e == null || ["boolean", "string"].includes(typeof e) || (typeof e == "number" && Number.isFinite(e))) return e; - const c = fn(t, e); - if (!c.startsWith("[object ")) return c; - if (e.__sentry_skip_normalization__) return e; - const a = typeof e.__sentry_override_normalization_depth__ == "number" ? e.__sentry_override_normalization_depth__ : n; - if (a === 0) return c.replace("object ", ""); - if (i(e)) return "[Circular ~]"; - const u = e; - if (u && typeof u.toJSON == "function") - try { - const p = u.toJSON(); - return Z("", p, a - 1, r, s); - } catch {} - const f = Array.isArray(e) ? [] : {}; - let d = 0; - const l = Pt(e); - for (const p in l) { - if (!Object.prototype.hasOwnProperty.call(l, p)) continue; - if (d >= r) { - f[p] = "[MaxProperties ~]"; - break; - } - const E = l[p]; - (f[p] = Z(p, E, a - 1, r, s)), d++; - } - return o(e), f; -} -function fn(t, e) { - try { - if (t === "domain" && e && typeof e == "object" && e._events) return "[Domain]"; - if (t === "domainEmitter") return "[DomainEmitter]"; - if (typeof global < "u" && e === global) return "[Global]"; - if (typeof window < "u" && e === window) return "[Window]"; - if (typeof document < "u" && e === document) return "[Document]"; - if (wt(e)) return "[VueViewModel]"; - if (de(e)) return "[SyntheticEvent]"; - if (typeof e == "number" && !Number.isFinite(e)) return `[${e}]`; - if (typeof e == "function") return `[Function: ${ie(e)}]`; - if (typeof e == "symbol") return `[${String(e)}]`; - if (typeof e == "bigint") return `[BigInt: ${String(e)}]`; - const n = dn(e); - return /^HTML(\w*)Element$/.test(n) ? `[HTMLElement: ${n}]` : `[object ${n}]`; - } catch (n) { - return `**non-serializable** (${n})`; - } -} -function dn(t) { - const e = Object.getPrototypeOf(t); - return e != null && e.constructor ? e.constructor.name : "null prototype"; -} -function pn(t) { - return ~-encodeURI(t).split(/%..|./).length; -} -function ln(t) { - return pn(JSON.stringify(t)); -} -function _n() { - const t = new WeakSet(); - function e(r) { - return t.has(r) ? !0 : (t.add(r), !1); - } - function n(r) { - t.delete(r); - } - return [e, n]; -} -const X = 0, - At = 1, - Ct = 2; -function Tr(t) { - return new N((e) => { - e(t); - }); -} -function Ir(t) { - return new N((e, n) => { - n(t); - }); -} -class N { - constructor(e) { - (this._state = X), (this._handlers = []), this._runExecutor(e); - } - then(e, n) { - return new N((r, s) => { - this._handlers.push([ - !1, - (i) => { - if (!e) r(i); - else - try { - r(e(i)); - } catch (o) { - s(o); - } - }, - (i) => { - if (!n) s(i); - else - try { - r(n(i)); - } catch (o) { - s(o); - } - }, - ]), - this._executeHandlers(); - }); - } - catch(e) { - return this.then((n) => n, e); - } - finally(e) { - return new N((n, r) => { - let s, i; - return this.then( - (o) => { - (i = !1), (s = o), e && e(); - }, - (o) => { - (i = !0), (s = o), e && e(); - } - ).then(() => { - if (i) { - r(s); - return; - } - n(s); - }); - }); - } - _executeHandlers() { - if (this._state === X) return; - const e = this._handlers.slice(); - (this._handlers = []), - e.forEach((n) => { - n[0] || (this._state === At && n[1](this._value), this._state === Ct && n[2](this._value), (n[0] = !0)); - }); - } - _runExecutor(e) { - const n = (i, o) => { - if (this._state === X) { - if (it(o)) { - o.then(r, s); - return; - } - (this._state = i), (this._value = o), this._executeHandlers(); - } - }, - r = (i) => { - n(At, i); - }, - s = (i) => { - n(Ct, i); - }; - try { - e(r, s); - } catch (i) { - s(i); - } - } -} -function tt(t, e, n, r = 0) { - return new N((s, i) => { - const o = t[r]; - if (e === null || typeof o != "function") s(e); - else { - const c = o({ ...e }, n); - S && o.id && c === null && h.log(`Event processor "${o.id}" dropped event`), - it(c) - ? c.then((a) => tt(t, a, n, r + 1).then(s)).then(null, i) - : tt(t, c, n, r + 1) - .then(s) - .then(null, i); - } - }); -} -function gn(t, e) { - const { fingerprint: n, span: r, breadcrumbs: s, sdkProcessingMetadata: i } = e; - hn(t, e), r && yn(t, r), En(t, n), mn(t, s), Sn(t, i); -} -function Nt(t, e) { - const { extra: n, tags: r, user: s, contexts: i, level: o, sdkProcessingMetadata: c, breadcrumbs: a, fingerprint: u, eventProcessors: f, attachments: d, propagationContext: l, transactionName: p, span: E } = e; - P(t, "extra", n), - P(t, "tags", r), - P(t, "user", s), - P(t, "contexts", i), - (t.sdkProcessingMetadata = B(t.sdkProcessingMetadata, c, 2)), - o && (t.level = o), - p && (t.transactionName = p), - E && (t.span = E), - a.length && (t.breadcrumbs = [...t.breadcrumbs, ...a]), - u.length && (t.fingerprint = [...t.fingerprint, ...u]), - f.length && (t.eventProcessors = [...t.eventProcessors, ...f]), - d.length && (t.attachments = [...t.attachments, ...d]), - (t.propagationContext = { ...t.propagationContext, ...l }); -} -function P(t, e, n) { - t[e] = B(t[e], n, 1); -} -function hn(t, e) { - const { extra: n, tags: r, user: s, contexts: i, level: o, transactionName: c } = e; - Object.keys(n).length && (t.extra = { ...n, ...t.extra }), - Object.keys(r).length && (t.tags = { ...r, ...t.tags }), - Object.keys(s).length && (t.user = { ...s, ...t.user }), - Object.keys(i).length && (t.contexts = { ...i, ...t.contexts }), - o && (t.level = o), - c && t.type !== "transaction" && (t.transaction = c); -} -function mn(t, e) { - const n = [...(t.breadcrumbs || []), ...e]; - t.breadcrumbs = n.length ? n : void 0; -} -function Sn(t, e) { - t.sdkProcessingMetadata = { ...t.sdkProcessingMetadata, ...e }; -} -function yn(t, e) { - (t.contexts = { trace: en(e), ...t.contexts }), (t.sdkProcessingMetadata = { dynamicSamplingContext: cn(e), ...t.sdkProcessingMetadata }); - const n = Ht(e), - r = Y(n).description; - r && !t.transaction && t.type === "transaction" && (t.transaction = r); -} -function En(t, e) { - (t.fingerprint = t.fingerprint ? (Array.isArray(t.fingerprint) ? t.fingerprint : [t.fingerprint]) : []), e && (t.fingerprint = t.fingerprint.concat(e)), t.fingerprint.length || delete t.fingerprint; -} -let k, xt, L; -function bn(t) { - const e = g._sentryDebugIds; - if (!e) return {}; - const n = Object.keys(e); - return ( - (L && n.length === xt) || - ((xt = n.length), - (L = n.reduce((r, s) => { - k || (k = {}); - const i = k[s]; - if (i) r[i[0]] = i[1]; - else { - const o = t(s); - for (let c = o.length - 1; c >= 0; c--) { - const a = o[c], - u = a == null ? void 0 : a.filename, - f = e[s]; - if (u && f) { - (r[u] = f), (k[s] = [u, f]); - break; - } - } - } - return r; - }, {}))), - L - ); -} -function Ar(t, e, n, r, s, i) { - const { normalizeDepth: o = 3, normalizeMaxBreadth: c = 1e3 } = t, - a = { ...e, event_id: e.event_id || n.event_id || T(), timestamp: e.timestamp || at() }, - u = n.integrations || t.integrations.map((m) => m.name); - Tn(a, t), Cn(a, u), s && s.emit("applyFrameMetadata", e), e.type === void 0 && In(a, t.stackParser); - const f = xn(r, n.captureContext); - n.mechanism && Se(a, n.mechanism); - const d = s ? s.getEventProcessors() : [], - l = we().getScopeData(); - if (i) { - const m = i.getScopeData(); - Nt(l, m); - } - if (f) { - const m = f.getScopeData(); - Nt(l, m); - } - const p = [...(n.attachments || []), ...l.attachments]; - p.length && (n.attachments = p), gn(a, l); - const E = [...d, ...l.eventProcessors]; - return tt(E, a, n).then((m) => (m && An(m), typeof o == "number" && o > 0 ? Nn(m, o, c) : m)); -} -function Tn(t, e) { - const { environment: n, release: r, dist: s, maxValueLength: i = 250 } = e; - (t.environment = t.environment || n || Yt), !t.release && r && (t.release = r), !t.dist && s && (t.dist = s); - const o = t.request; - o != null && o.url && (o.url = $(o.url, i)); -} -function In(t, e) { - var r, s; - const n = bn(e); - (s = (r = t.exception) == null ? void 0 : r.values) == null || - s.forEach((i) => { - var o, c; - (c = (o = i.stacktrace) == null ? void 0 : o.frames) == null || - c.forEach((a) => { - a.filename && (a.debug_id = n[a.filename]); - }); - }); -} -function An(t) { - var r, s; - const e = {}; - if ( - ((s = (r = t.exception) == null ? void 0 : r.values) == null || - s.forEach((i) => { - var o, c; - (c = (o = i.stacktrace) == null ? void 0 : o.frames) == null || - c.forEach((a) => { - a.debug_id && (a.abs_path ? (e[a.abs_path] = a.debug_id) : a.filename && (e[a.filename] = a.debug_id), delete a.debug_id); - }); - }), - Object.keys(e).length === 0) - ) - return; - (t.debug_meta = t.debug_meta || {}), (t.debug_meta.images = t.debug_meta.images || []); - const n = t.debug_meta.images; - Object.entries(e).forEach(([i, o]) => { - n.push({ type: "sourcemap", code_file: i, debug_id: o }); - }); -} -function Cn(t, e) { - e.length > 0 && ((t.sdk = t.sdk || {}), (t.sdk.integrations = [...(t.sdk.integrations || []), ...e])); -} -function Nn(t, e, n) { - var s, i; - if (!t) return null; - const r = { - ...t, - ...(t.breadcrumbs && { breadcrumbs: t.breadcrumbs.map((o) => ({ ...o, ...(o.data && { data: b(o.data, e, n) }) })) }), - ...(t.user && { user: b(t.user, e, n) }), - ...(t.contexts && { contexts: b(t.contexts, e, n) }), - ...(t.extra && { extra: b(t.extra, e, n) }), - }; - return ( - (s = t.contexts) != null && s.trace && r.contexts && ((r.contexts.trace = t.contexts.trace), t.contexts.trace.data && (r.contexts.trace.data = b(t.contexts.trace.data, e, n))), - t.spans && (r.spans = t.spans.map((o) => ({ ...o, ...(o.data && { data: b(o.data, e, n) }) }))), - (i = t.contexts) != null && i.flags && r.contexts && (r.contexts.flags = b(t.contexts.flags, 3, n)), - r - ); -} -function xn(t, e) { - if (!e) return t; - const n = t ? t.clone() : new y(); - return n.update(e), n; -} -function Rn(t) { - if (t) return On(t) ? { captureContext: t } : Mn(t) ? { captureContext: t } : t; -} -function On(t) { - return t instanceof y || typeof t == "function"; -} -const Dn = ["user", "level", "extra", "contexts", "tags", "fingerprint", "propagationContext"]; -function Mn(t) { - return Object.keys(t).some((e) => Dn.includes(e)); -} -function Cr(t, e) { - return R().captureException(t, Rn(e)); -} -function Nr(t, e) { - return R().captureEvent(t, e); -} -function xr(t, e) { - z().setContext(t, e); -} -function Rr() { - const t = H(); - return (t == null ? void 0 : t.getOptions().enabled) !== !1 && !!(t != null && t.getTransport()); -} -function Or(t) { - const e = z(), - n = R(), - { userAgent: r } = g.navigator || {}, - s = Te({ user: n.getUser() || e.getUser(), ...(r && { userAgent: r }), ...t }), - i = e.getSession(); - return (i == null ? void 0 : i.status) === "ok" && v(i, { status: "exited" }), Wt(), e.setSession(s), s; -} -function Wt() { - const t = z(), - n = R().getSession() || t.getSession(); - n && Ie(n), Xt(), t.setSession(); -} -function Xt() { - const t = z(), - e = H(), - n = t.getSession(); - n && e && e.captureSession(n); -} -function Dr(t = !1) { - if (t) { - Wt(); - return; - } - Xt(); -} -export { - fr as $, - rr as A, - H as B, - jt as C, - S as D, - R as E, - mr as F, - g as G, - nr as H, - lr as I, - it as J, - an as K, - Et as L, - qn as M, - D as N, - G as O, - q as P, - Er as Q, - z as R, - _ as S, - pr as T, - gr as U, - ar as V, - ke as W, - Zn as X, - hr as Y, - at as Z, - mt as _, - Sr as a, - T as a0, - Xn as a1, - Un as a2, - v as a3, - Tr as a4, - Yt as a5, - N as a6, - Ar as a7, - Qn as a8, - br as a9, - vn as aA, - he as aB, - Wn as aC, - Se as aD, - Cr as aE, - Ln as aF, - Fn as aG, - $n as aH, - ce as aI, - un as aJ, - Vn as aK, - Jn as aL, - le as aM, - Bn as aN, - F as aO, - re as aP, - ne as aQ, - Gn as aR, - Or as aS, - Dr as aT, - Nr as aU, - Pn as aV, - Le as aW, - ir as aX, - dr as aY, - Ir as aa, - ae as ab, - B as ac, - Mt as ad, - j as ae, - nt as af, - O as ag, - Rr as ah, - _r as ai, - cr as aj, - qe as ak, - Ze as al, - Qe as am, - Yn as an, - Kn as ao, - zn as ap, - M as aq, - wn as ar, - Hn as as, - dt as at, - kn as au, - or as av, - jn as aw, - vt as ax, - oe as ay, - I as az, - Ht as b, - U as c, - h as d, - ut as e, - et as f, - ie as g, - ur as h, - ge as i, - cn as j, - Y as k, - yr as l, - ft as m, - b as n, - tr as o, - er as p, - Fe as q, - $e as r, - xr as s, - ct as t, - zt as u, - Tt as v, - Pe as w, - nn as x, - on as y, - sr as z, -}; diff --git a/frontend-backup/_app/immutable/chunks/DS58drb5.js b/frontend-backup/_app/immutable/chunks/DS58drb5.js deleted file mode 100644 index 85c4eda..0000000 --- a/frontend-backup/_app/immutable/chunks/DS58drb5.js +++ /dev/null @@ -1 +0,0 @@ -import{F as E,G as _,l as v,z as g,H as i,I as S,h as k,J as I,K as D,L as y}from"./BDALf20I.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},f=new e.Error().stack;f&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[f]="6fc49d13-f7d8-42d1-9723-e4fb7b109694",e._sentryDebugIdIdentifier="sentry-dbid-6fc49d13-f7d8-42d1-9723-e4fb7b109694")})()}catch{}function A(e,f,l=f){var d=E(),r=new WeakSet;_(e,"input",s=>{var a=s?e.defaultValue:e.value;if(a=h(e)?b(a):a,l(a),v!==null&&r.add(v),d&&a!==(a=f())){var t=e.selectionStart,n=e.selectionEnd;e.value=a??"",n!==null&&(e.selectionStart=t,e.selectionEnd=Math.min(n,e.value.length))}}),(k&&e.defaultValue!==e.value||g(f)==null&&e.value)&&(l(h(e)?b(e.value):e.value),v!==null&&r.add(v)),i(()=>{var s=f();if(e===document.activeElement){var a=S??v;if(r.has(a))return}h(e)&&s===b(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const u=new Set;function C(e,f,l,d,r=d){var s=l.getAttribute("type")==="checkbox",a=e;let t=!1;if(f!==null)for(var n of f)a=a[n]??(a[n]=[]);a.push(l),_(l,"change",()=>{var c=l.__value;s&&(c=m(a,c,l.checked)),r(c)},()=>r(s?[]:null)),i(()=>{var c=d();if(k&&l.defaultChecked!==l.checked){t=!0;return}s?(c=c||[],l.checked=c.includes(l.__value)):l.checked=I(l.__value,c)}),D(()=>{var c=a.indexOf(l);c!==-1&&a.splice(c,1)}),u.has(a)||(u.add(a),y(()=>{a.sort((c,o)=>c.compareDocumentPosition(o)===4?-1:1),u.delete(a)})),y(()=>{if(t){var c;if(s)c=m(a,c,l.checked);else{var o=a.find(w=>w.checked);c=o==null?void 0:o.__value}r(c)}})}function L(e,f,l=f){_(e,"change",d=>{var r=d?e.defaultChecked:e.checked;l(r)}),(k&&e.defaultChecked!==e.checked||g(f)==null)&&l(e.checked),i(()=>{var d=f();e.checked=!!d})}function m(e,f,l){for(var d=new Set,r=0;r "Timeout", - D = () => "Timeout", - M = (t = {}, e = {}) => ((e.locale ?? z()) === "en" ? C() : D()); -function q(t) { - const e = t - 1; - return e * e * e + 1; -} -function O(t, { from: e, to: r }, u = {}) { - var { delay: h = 0, duration: i = (n) => Math.sqrt(n) * 120, easing: y = q } = u, - o = getComputedStyle(t), - g = o.transform === "none" ? "" : o.transform, - [s, c] = o.transformOrigin.split(" ").map(parseFloat); - (s /= t.clientWidth), (c /= t.clientHeight); - var f = H(t), - p = t.clientWidth / r.width / f, - v = t.clientHeight / r.height / f, - b = e.left + e.width * s, - m = e.top + e.height * c, - w = r.left + r.width * s, - x = r.top + r.height * c, - l = (b - w) * p, - d = (m - x) * v, - S = e.width / r.width, - _ = e.height / r.height; - return { - delay: h, - duration: typeof i == "function" ? i(Math.sqrt(l * l + d * d)) : i, - easing: y, - css: (n, a) => { - var T = a * l, - E = a * d, - I = n + a * S, - $ = n + a * _; - return `transform: ${g} translate(${T}px, ${E}px) scale(${I}, ${$});`; - }, - }; -} -function H(t) { - if ("currentCSSZoom" in t) return t.currentCSSZoom; - for (var e = t, r = 1; e !== null; ) (r *= +getComputedStyle(e).zoom), (e = e.parentElement); - return r; -} -export { O as f, M as t }; diff --git a/frontend-backup/_app/immutable/chunks/DTFgqBF9.js b/frontend-backup/_app/immutable/chunks/DTFgqBF9.js new file mode 100644 index 0000000..7344223 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DTFgqBF9.js @@ -0,0 +1,126 @@ +import { g as o } from "./CV9xcpLq.js"; +import "./Ch2Ub8FX.js"; +import { v as i, b as a } from "./CMvZtFtm.js"; +import { b as p } from "./C5yqZvKC.js"; +import { r as u } from "./BF50aS-j.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "6745f234-f59d-4730-a832-4873b80dedc4"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-6745f234-f59d-4730-a832-4873b80dedc4")); + })(); +} catch {} +const _ = () => "Reported users", + d = () => "Usuários denunciados", + O = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? _() : d()), + f = () => "No pending reports", + y = () => "Sem denúncias pendentes", + Q = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? f() : y()), + m = () => "Ticket", + g = () => "Ticket", + W = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? m() : g()), + x = () => "Times reported", + b = () => "Denúncias", + X = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? x() : b()), + C = () => "Timeout count", + h = () => "Contagem de timeouts", + ee = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? C() : h()), + I = () => "Last timeout reason", + v = () => "Motivo do último timeout", + te = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? I() : v()), + w = () => "Reported by", + D = () => "Denunciado por", + ne = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? w() : D()), + F = () => "Reason", + T = () => "Motivo", + oe = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? F() : T()), + k = () => "Time", + $ = () => "Hora", + re = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? k() : $()), + M = () => "Reported pixel", + R = () => "Pixel reportado", + se = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? M() : R()), + E = () => "Aggressor's Last pixel painted", + L = () => "Último pixel pintado pelo agressor", + ce = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? E() : L()), + j = () => "Accounts with same IP", + A = () => "Contas com mesmo IP", + le = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? j() : A()), + P = () => "Report", + S = () => "Denúncia", + ie = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? P() : S()), + Z = () => "User ID copied", + N = () => "ID do usuário copiado", + ae = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? Z() : N()), + U = (t) => `Copy user ID: #${t.userId}`, + z = (t) => `Copiar ID do usuário: #${t.userId}`, + pe = (t, e = {}) => ((e.locale ?? o()) === "en" ? U(t) : z(t)), + B = () => "Alliance ID copied", + H = () => "ID da aliança copiado", + ue = (t = {}, e = {}) => ((e.locale ?? o()) === "en" ? B() : H()); +var V = i( + '' +); +function _e(t, e) { + let n = u(e, ["$$slots", "$$events", "$$legacy"]); + var r = V(); + p(r, () => ({ display: "block", viewBox: "0 0 27 41", ...n })), a(t, r); +} +function de(t, e) { + let n = t[0], + r = e(n); + for (let s = 1; s < t.length; s++) { + const c = t[s], + l = e(c); + l > r && ((n = c), (r = l)); + } + return n; +} +export { + _e as M, + ie as a, + ne as b, + oe as c, + se as d, + W as e, + pe as f, + X as g, + le as h, + ee as i, + te as j, + ue as k, + ce as l, + de as m, + Q as n, + O as r, + re as t, + ae as u, +}; diff --git a/frontend-backup/_app/immutable/chunks/DUoKDNpf.js b/frontend-backup/_app/immutable/chunks/DUoKDNpf.js deleted file mode 100644 index a0e8b59..0000000 --- a/frontend-backup/_app/immutable/chunks/DUoKDNpf.js +++ /dev/null @@ -1,1678 +0,0 @@ -var yn = Object.defineProperty; -var me = t => { - throw TypeError(t) -}; -var gn = (t, e, n) => e in t ? yn(t, e, {enumerable: !0, configurable: !0, writable: !0, value: n}) : t[e] = n; -var xt = (t, e, n) => gn(t, typeof e != "symbol" ? e + "" : e, n), Jt = (t, e, n) => e.has(t) || me("Cannot " + n); -var d = (t, e, n) => (Jt(t, e, "read from private field"), n ? n.call(t) : e.get(t)), - x = (t, e, n) => e.has(t) ? me("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), - R = (t, e, n, r) => (Jt(t, e, "write to private field"), r ? r.call(t, n) : e.set(t, n), n), - Q = (t, e, n) => (Jt(t, e, "access private method"), n); -const mr = !1; -var Pe = Array.isArray, En = Array.prototype.indexOf, br = Array.from, ee = Object.defineProperty, - Ot = Object.getOwnPropertyDescriptor, mn = Object.getOwnPropertyDescriptors, bn = Object.prototype, - Tn = Array.prototype, De = Object.getPrototypeOf, be = Object.isExtensible; - -function Tr(t) { - return typeof t == "function" -} - -const Ar = () => { -}; - -function xr(t) { - return t() -} - -function Me(t) { - for (var e = 0; e < t.length; e++) t[e]() -} - -function An() { - var t, e, n = new Promise((r, a) => { - t = r, e = a - }); - return {promise: n, resolve: t, reject: e} -} - -function kr(t, e) { - if (Array.isArray(t)) return t; - if (!(Symbol.iterator in t)) return Array.from(t); - const n = []; - for (const r of t) if (n.push(r), n.length === e) break; - return n -} - -const O = 2, le = 4, $t = 8, bt = 16, Y = 32, ft = 64, Le = 128, C = 256, Ht = 512, b = 1024, L = 2048, Z = 4096, - K = 8192, Tt = 16384, fe = 32768, Fe = 65536, Te = 1 << 17, xn = 1 << 18, oe = 1 << 19, qe = 1 << 20, ne = 1 << 21, - ce = 1 << 22, at = 1 << 23, st = Symbol("$state"), Sr = Symbol("legacy props"), Nr = Symbol(""), - _e = new class extends Error { - constructor() { - super(...arguments); - xt(this, "name", "StaleReactionError"); - xt(this, "message", "The reaction that called `getAbortSignal()` was re-run or destroyed") - } - }, ve = 3, de = 8; - -function kn() { - throw new Error("https://svelte.dev/e/await_outside_boundary") -} - -function Sn(t) { - throw new Error("https://svelte.dev/e/lifecycle_outside_component") -} - -function Nn() { - throw new Error("https://svelte.dev/e/async_derived_orphan") -} - -function On(t) { - throw new Error("https://svelte.dev/e/effect_in_teardown") -} - -function Rn() { - throw new Error("https://svelte.dev/e/effect_in_unowned_derived") -} - -function In(t) { - throw new Error("https://svelte.dev/e/effect_orphan") -} - -function Cn() { - throw new Error("https://svelte.dev/e/effect_update_depth_exceeded") -} - -function Rr() { - throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction") -} - -function Ir() { - throw new Error("https://svelte.dev/e/hydration_failed") -} - -function Cr(t) { - throw new Error("https://svelte.dev/e/lifecycle_legacy_only") -} - -function Pr(t) { - throw new Error("https://svelte.dev/e/props_invalid_value") -} - -function Pn() { - throw new Error("https://svelte.dev/e/state_descriptors_fixed") -} - -function Dn() { - throw new Error("https://svelte.dev/e/state_prototype_fixed") -} - -function Mn() { - throw new Error("https://svelte.dev/e/state_unsafe_mutation") -} - -const Dr = 1, Mr = 2, Lr = 4, Fr = 8, qr = 16, jr = 1, Yr = 2, Hr = 4, Ur = 8, Vr = 16, Br = 1, Wr = 2, $r = 4, Ln = 1, - Fn = 2, qn = "[", jn = "[!", Yn = "]", he = {}, m = Symbol(), Gr = "http://www.w3.org/1999/xhtml", Kr = "@attach"; - -function pe(t) { - console.warn("https://svelte.dev/e/hydration_mismatch") -} - -function zr() { - console.warn("https://svelte.dev/e/select_multiple_invalid_value") -} - -let S = !1; - -function Xr(t) { - S = t -} - -let y; - -function yt(t) { - if (t === null) throw pe(), he; - return y = t -} - -function je() { - return yt(ot(y)) -} - -function Zr(t) { - if (S) { - if (ot(y) !== null) throw pe(), he; - y = t - } -} - -function Jr(t = 1) { - if (S) { - for (var e = t, n = y; e--;) n = ot(n); - y = n - } -} - -function Qr() { - for (var t = 0, e = y; ;) { - if (e.nodeType === de) { - var n = e.data; - if (n === Yn) { - if (t === 0) return e; - t -= 1 - } else (n === qn || n === jn) && (t += 1) - } - var r = ot(e); - e.remove(), e = r - } -} - -function ta(t) { - if (!t || t.nodeType !== de) throw pe(), he; - return t.data -} - -function Ye(t) { - return t === this.v -} - -function Hn(t, e) { - return t != t ? e == e : t !== e || t !== null && typeof t == "object" || typeof t == "function" -} - -function ea(t, e) { - return t !== e -} - -function He(t) { - return !Hn(t, this.v) -} - -let Gt = !1; - -function na() { - Gt = !0 -} - -let g = null; - -function Ut(t) { - g = t -} - -function ra(t) { - return Kt().get(t) -} - -function aa(t, e) { - return Kt().set(t, e), e -} - -function sa(t) { - return Kt().has(t) -} - -function ia() { - return Kt() -} - -function ua(t, e = !1, n) { - g = {p: g, c: null, e: null, s: t, x: null, l: Gt && !e ? {s: null, u: null, $: []} : null} -} - -function la(t) { - var e = g, n = e.e; - if (n !== null) { - e.e = null; - for (var r of n) rn(r) - } - return t !== void 0 && (e.x = t), g = e.p, t ?? {} -} - -function Ft() { - return !Gt || g !== null && g.l === null -} - -function Kt(t) { - return g === null && Sn(), g.c ?? (g.c = new Map(Un(g) || void 0)) -} - -function Un(t) { - let e = t.p; - for (; e !== null;) { - const n = e.c; - if (n !== null) return n; - e = e.p - } - return null -} - -const Vn = new WeakMap; - -function Bn(t) { - var e = v; - if (e === null) return _.f |= at, t; - if ((e.f & fe) === 0) { - if ((e.f & Le) === 0) throw !e.parent && t instanceof Error && Ue(t), t; - e.b.error(t) - } else we(t, e) -} - -function we(t, e) { - for (; e !== null;) { - if ((e.f & Le) !== 0) try { - e.b.error(t); - return - } catch (n) { - t = n - } - e = e.parent - } - throw t instanceof Error && Ue(t), t -} - -function Ue(t) { - const e = Vn.get(t); - e && (ee(t, "message", {value: e.message}), ee(t, "stack", {value: e.stack})) -} - -const Wn = typeof requestIdleCallback > "u" ? t => setTimeout(t, 1) : requestIdleCallback; -let Rt = [], It = []; - -function Ve() { - var t = Rt; - Rt = [], Me(t) -} - -function Be() { - var t = It; - It = [], Me(t) -} - -function We(t) { - Rt.length === 0 && queueMicrotask(Ve), Rt.push(t) -} - -function fa(t) { - It.length === 0 && Wn(Be), It.push(t) -} - -function $n() { - Rt.length > 0 && Ve(), It.length > 0 && Be() -} - -function Gn() { - for (var t = v.b; t !== null && !t.has_pending_snippet();) t = t.parent; - return t === null && kn(), t -} - -function ye(t) { - var e = O | L, n = _ !== null && (_.f & O) !== 0 ? _ : null; - return v === null || n !== null && (n.f & C) !== 0 ? e |= C : v.f |= oe, { - ctx: g, - deps: null, - effects: null, - equals: Ye, - f: e, - fn: t, - reactions: null, - rv: 0, - v: m, - wv: 0, - parent: n ?? v, - ac: null - } -} - -function Kn(t, e) { - let n = v; - n === null && Nn(); - var r = n.b, a = void 0, s = Ee(m), u = null, l = !_; - return sr(() => { - try { - var i = t() - } catch (h) { - i = Promise.reject(h) - } - var f = () => i; - a = (u == null ? void 0 : u.then(f, f)) ?? Promise.resolve(i), u = a; - var o = E, c = r.pending; - l && (r.update_pending_count(1), c || o.increment()); - const w = (h, p = void 0) => { - u = null, c || o.activate(), p ? p !== _e && (s.f |= at, ie(s, p)) : ((s.f & at) !== 0 && (s.f ^= at), ie(s, h)), l && (r.update_pending_count(-1), c || o.decrement()), Ke() - }; - if (a.then(w, h => w(null, h || "unknown")), o) return () => { - queueMicrotask(() => o.neuter()) - } - }), new Promise(i => { - function f(o) { - function c() { - o === a ? i(s) : f(a) - } - - o.then(c, c) - } - - f(a) - }) -} - -function oa(t) { - const e = ye(t); - return on(e), e -} - -function zn(t) { - const e = ye(t); - return e.equals = He, e -} - -function $e(t) { - var e = t.effects; - if (e !== null) { - t.effects = null; - for (var n = 0; n < e.length; n += 1) lt(e[n]) - } -} - -function Xn(t) { - for (var e = t.parent; e !== null;) { - if ((e.f & O) === 0) return e; - e = e.parent - } - return null -} - -function ge(t) { - var e, n = v; - X(Xn(t)); - try { - $e(t), e = dn(t) - } finally { - X(n) - } - return e -} - -function Ge(t) { - var e = ge(t); - if (t.equals(e) || (t.v = e, t.wv = _n()), !At) if (W !== null) W.set(t, t.v); else { - var n = ($ || (t.f & C) !== 0) && t.deps !== null ? Z : b; - k(t, n) - } -} - -function Zn(t, e, n) { - const r = Ft() ? ye : zn; - if (e.length === 0) { - n(t.map(r)); - return - } - var a = E, s = v, u = Jn(), l = Gn(); - Promise.all(e.map(i => Kn(i))).then(i => { - a == null || a.activate(), u(); - try { - n([...t.map(r), ...i]) - } catch (f) { - (s.f & Tt) === 0 && we(f, s) - } - a == null || a.deactivate(), Ke() - }).catch(i => { - l.error(i) - }) -} - -function Jn() { - var t = v, e = _, n = g; - return function () { - X(t), F(e), Ut(n) - } -} - -function Ke() { - X(null), F(null), Ut(null) -} - -const kt = new Set; -let E = null, Qt = null, W = null, Ae = new Set, Vt = []; - -function ze() { - const t = Vt.shift(); - Vt.length > 0 && queueMicrotask(ze), t() -} - -let ut = [], zt = null, re = !1, jt = !1; -var dt, ht, V, Pt, Dt, nt, pt, rt, B, wt, Mt, Lt, M, Xe, Yt, ae; -const Wt = class Wt { - constructor() { - x(this, M); - xt(this, "current", new Map); - x(this, dt, new Map); - x(this, ht, new Set); - x(this, V, 0); - x(this, Pt, null); - x(this, Dt, !1); - x(this, nt, []); - x(this, pt, []); - x(this, rt, []); - x(this, B, []); - x(this, wt, []); - x(this, Mt, []); - x(this, Lt, []); - xt(this, "skipped_effects", new Set) - } - - process(e) { - var s; - ut = [], Qt = null; - var n = null; - if (kt.size > 1) { - n = new Map, W = new Map; - for (const [u, l] of this.current) n.set(u, {v: u.v, wv: u.wv}), u.v = l; - for (const u of kt) if (u !== this) for (const [l, i] of d(u, dt)) n.has(l) || (n.set(l, { - v: l.v, - wv: l.wv - }), l.v = i) - } - for (const u of e) Q(this, M, Xe).call(this, u); - if (d(this, nt).length === 0 && d(this, V) === 0) { - Q(this, M, ae).call(this); - var r = d(this, rt), a = d(this, B); - R(this, rt, []), R(this, B, []), R(this, wt, []), Qt = E, E = null, xe(r), xe(a), E === null ? E = this : kt.delete(this), (s = d(this, Pt)) == null || s.resolve() - } else Q(this, M, Yt).call(this, d(this, rt)), Q(this, M, Yt).call(this, d(this, B)), Q(this, M, Yt).call(this, d(this, wt)); - if (n) { - for (const [u, {v: l, wv: i}] of n) u.wv <= i && (u.v = l); - W = null - } - for (const u of d(this, nt)) vt(u); - for (const u of d(this, pt)) vt(u); - R(this, nt, []), R(this, pt, []) - } - - capture(e, n) { - d(this, dt).has(e) || d(this, dt).set(e, n), this.current.set(e, e.v) - } - - activate() { - E = this - } - - deactivate() { - E = null, Qt = null; - for (const e of Ae) if (Ae.delete(e), e(), E !== null) break - } - - neuter() { - R(this, Dt, !0) - } - - flush() { - ut.length > 0 ? se() : Q(this, M, ae).call(this), E === this && (d(this, V) === 0 && kt.delete(this), this.deactivate()) - } - - increment() { - R(this, V, d(this, V) + 1) - } - - decrement() { - if (R(this, V, d(this, V) - 1), d(this, V) === 0) { - for (const e of d(this, Mt)) k(e, L), Et(e); - for (const e of d(this, Lt)) k(e, Z), Et(e); - R(this, rt, []), R(this, B, []), this.flush() - } else this.deactivate() - } - - add_callback(e) { - d(this, ht).add(e) - } - - settled() { - return (d(this, Pt) ?? R(this, Pt, An())).promise - } - - static ensure() { - if (E === null) { - const e = E = new Wt; - kt.add(E), jt || Wt.enqueue(() => { - E === e && e.flush() - }) - } - return E - } - - static enqueue(e) { - Vt.length === 0 && queueMicrotask(ze), Vt.unshift(e) - } -}; -dt = new WeakMap, ht = new WeakMap, V = new WeakMap, Pt = new WeakMap, Dt = new WeakMap, nt = new WeakMap, pt = new WeakMap, rt = new WeakMap, B = new WeakMap, wt = new WeakMap, Mt = new WeakMap, Lt = new WeakMap, M = new WeakSet, Xe = function (e) { - var o; - e.f ^= b; - for (var n = e.first; n !== null;) { - var r = n.f, a = (r & (Y | ft)) !== 0, s = a && (r & b) !== 0, - u = s || (r & K) !== 0 || this.skipped_effects.has(n); - if (!u && n.fn !== null) { - if (a) n.f ^= b; else if ((r & le) !== 0) d(this, B).push(n); else if ((r & b) === 0) if ((r & ce) !== 0) { - var l = (o = n.b) != null && o.pending ? d(this, pt) : d(this, nt); - l.push(n) - } else Zt(n) && ((n.f & bt) !== 0 && d(this, wt).push(n), vt(n)); - var i = n.first; - if (i !== null) { - n = i; - continue - } - } - var f = n.parent; - for (n = n.next; n === null && f !== null;) n = f.next, f = f.parent - } -}, Yt = function (e) { - for (const n of e) ((n.f & L) !== 0 ? d(this, Mt) : d(this, Lt)).push(n), k(n, b); - e.length = 0 -}, ae = function () { - if (!d(this, Dt)) for (const e of d(this, ht)) e(); - d(this, ht).clear() -}; -let gt = Wt; - -function Qn(t) { - var e = jt; - jt = !0; - try { - var n; - for (t && (se(), n = t()); ;) { - if ($n(), ut.length === 0 && (E == null || E.flush(), ut.length === 0)) return zt = null, n; - se() - } - } finally { - jt = e - } -} - -function se() { - var t = _t; - re = !0; - try { - var e = 0; - for (Oe(!0); ut.length > 0;) { - var n = gt.ensure(); - if (e++ > 1e3) { - var r, a; - tr() - } - n.process(ut), G.clear() - } - } finally { - re = !1, Oe(t), zt = null - } -} - -function tr() { - try { - Cn() - } catch (t) { - we(t, zt) - } -} - -let et = null; - -function xe(t) { - var e = t.length; - if (e !== 0) { - for (var n = 0; n < e;) { - var r = t[n++]; - if ((r.f & (Tt | K)) === 0 && Zt(r) && (et = [], vt(r), r.deps === null && r.first === null && r.nodes_start === null && (r.teardown === null && r.ac === null ? un(r) : r.fn = null), et.length > 0)) { - G.clear(); - for (const a of et) vt(a); - et = [] - } - } - et = null - } -} - -function Et(t) { - for (var e = zt = t; e.parent !== null;) { - e = e.parent; - var n = e.f; - if (re && e === v && (n & bt) !== 0) return; - if ((n & (ft | Y)) !== 0) { - if ((n & b) === 0) return; - e.f ^= b - } - } - ut.push(e) -} - -const G = new Map; - -function Ee(t, e) { - var n = {f: 0, v: t, reactions: null, equals: Ye, rv: 0, wv: 0}; - return n -} - -function U(t, e) { - const n = Ee(t); - return on(n), n -} - -function ca(t, e = !1, n = !0) { - var a; - const r = Ee(t); - return e || (r.equals = He), Gt && n && g !== null && g.l !== null && ((a = g.l).s ?? (a.s = [])).push(r), r -} - -function tt(t, e, n = !1) { - _ !== null && (!D || (_.f & Te) !== 0) && Ft() && (_.f & (O | bt | ce | Te)) !== 0 && !(A != null && A.includes(t)) && Mn(); - let r = n ? St(e) : e; - return ie(t, r) -} - -function ie(t, e) { - if (!t.equals(e)) { - var n = t.v; - At ? G.set(t, e) : G.set(t, n), t.v = e; - var r = gt.ensure(); - r.capture(t, n), (t.f & O) !== 0 && ((t.f & L) !== 0 && ge(t), k(t, (t.f & C) === 0 ? b : Z)), t.wv = _n(), Ze(t, L), Ft() && v !== null && (v.f & b) !== 0 && (v.f & (Y | ft)) === 0 && (I === null ? or([t]) : I.push(t)) - } - return e -} - -function te(t) { - tt(t, t.v + 1) -} - -function Ze(t, e) { - var n = t.reactions; - if (n !== null) for (var r = Ft(), a = n.length, s = 0; s < a; s++) { - var u = n[s], l = u.f; - if (!(!r && u === v)) { - var i = (l & L) === 0; - i && k(u, e), (l & O) !== 0 ? Ze(u, Z) : i && ((l & bt) !== 0 && et !== null && et.push(u), Et(u)) - } - } -} - -function St(t) { - if (typeof t != "object" || t === null || st in t) return t; - const e = De(t); - if (e !== bn && e !== Tn) return t; - var n = new Map, r = Pe(t), a = U(0), s = it, u = l => { - if (it === s) return l(); - var i = _, f = it; - F(null), Ie(s); - var o = l(); - return F(i), Ie(f), o - }; - return r && n.set("length", U(t.length)), new Proxy(t, { - defineProperty(l, i, f) { - (!("value" in f) || f.configurable === !1 || f.enumerable === !1 || f.writable === !1) && Pn(); - var o = n.get(i); - return o === void 0 ? o = u(() => { - var c = U(f.value); - return n.set(i, c), c - }) : tt(o, f.value, !0), !0 - }, deleteProperty(l, i) { - var f = n.get(i); - if (f === void 0) { - if (i in l) { - const o = u(() => U(m)); - n.set(i, o), te(a) - } - } else tt(f, m), te(a); - return !0 - }, get(l, i, f) { - var h; - if (i === st) return t; - var o = n.get(i), c = i in l; - if (o === void 0 && (!c || (h = Ot(l, i)) != null && h.writable) && (o = u(() => { - var p = St(c ? l[i] : m), P = U(p); - return P - }), n.set(i, o)), o !== void 0) { - var w = Nt(o); - return w === m ? void 0 : w - } - return Reflect.get(l, i, f) - }, getOwnPropertyDescriptor(l, i) { - var f = Reflect.getOwnPropertyDescriptor(l, i); - if (f && "value" in f) { - var o = n.get(i); - o && (f.value = Nt(o)) - } else if (f === void 0) { - var c = n.get(i), w = c == null ? void 0 : c.v; - if (c !== void 0 && w !== m) return {enumerable: !0, configurable: !0, value: w, writable: !0} - } - return f - }, has(l, i) { - var w; - if (i === st) return !0; - var f = n.get(i), o = f !== void 0 && f.v !== m || Reflect.has(l, i); - if (f !== void 0 || v !== null && (!o || (w = Ot(l, i)) != null && w.writable)) { - f === void 0 && (f = u(() => { - var h = o ? St(l[i]) : m, p = U(h); - return p - }), n.set(i, f)); - var c = Nt(f); - if (c === m) return !1 - } - return o - }, set(l, i, f, o) { - var J; - var c = n.get(i), w = i in l; - if (r && i === "length") for (var h = f; h < c.v; h += 1) { - var p = n.get(h + ""); - p !== void 0 ? tt(p, m) : h in l && (p = u(() => U(m)), n.set(h + "", p)) - } - if (c === void 0) (!w || (J = Ot(l, i)) != null && J.writable) && (c = u(() => U(void 0)), tt(c, St(f)), n.set(i, c)); else { - w = c.v !== m; - var P = u(() => St(f)); - tt(c, P) - } - var H = Reflect.getOwnPropertyDescriptor(l, i); - if (H != null && H.set && H.set.call(o, f), !w) { - if (r && typeof i == "string") { - var qt = n.get("length"), ct = Number(i); - Number.isInteger(ct) && ct >= qt.v && tt(qt, ct + 1) - } - te(a) - } - return !0 - }, ownKeys(l) { - Nt(a); - var i = Reflect.ownKeys(l).filter(c => { - var w = n.get(c); - return w === void 0 || w.v !== m - }); - for (var [f, o] of n) o.v !== m && !(f in l) && i.push(f); - return i - }, setPrototypeOf() { - Dn() - } - }) -} - -function ke(t) { - try { - if (t !== null && typeof t == "object" && st in t) return t[st] - } catch { - } - return t -} - -function _a(t, e) { - return Object.is(ke(t), ke(e)) -} - -var Se, er, Je, Qe, tn; - -function va() { - if (Se === void 0) { - Se = window, er = document, Je = /Firefox/.test(navigator.userAgent); - var t = Element.prototype, e = Node.prototype, n = Text.prototype; - Qe = Ot(e, "firstChild").get, tn = Ot(e, "nextSibling").get, be(t) && (t.__click = void 0, t.__className = void 0, t.__attributes = null, t.__style = void 0, t.__e = void 0), be(n) && (n.__t = void 0) - } -} - -function mt(t = "") { - return document.createTextNode(t) -} - -function z(t) { - return Qe.call(t) -} - -function ot(t) { - return tn.call(t) -} - -function da(t, e) { - if (!S) return z(t); - var n = z(y); - if (n === null) n = y.appendChild(mt()); else if (e && n.nodeType !== ve) { - var r = mt(); - return n == null || n.before(r), yt(r), r - } - return yt(n), n -} - -function ha(t, e) { - if (!S) { - var n = z(t); - return n instanceof Comment && n.data === "" ? ot(n) : n - } - return y -} - -function pa(t, e = 1, n = !1) { - let r = S ? y : t; - for (var a; e--;) a = r, r = ot(r); - if (!S) return r; - if (n && (r == null ? void 0 : r.nodeType) !== ve) { - var s = mt(); - return r === null ? a == null || a.after(s) : r.before(s), yt(s), s - } - return yt(r), r -} - -function nr(t) { - t.textContent = "" -} - -function wa() { - return !1 -} - -function ya(t, e) { - if (e) { - const n = document.body; - t.autofocus = !0, We(() => { - document.activeElement === n && t.focus() - }) - } -} - -function ga(t) { - S && z(t) !== null && nr(t) -} - -let Ne = !1; - -function rr() { - Ne || (Ne = !0, document.addEventListener("reset", t => { - Promise.resolve().then(() => { - var e; - if (!t.defaultPrevented) for (const n of t.target.elements) (e = n.__on_r) == null || e.call(n) - }) - }, {capture: !0})) -} - -function Ea(t, e, n, r = !0) { - r && n(); - for (var a of e) t.addEventListener(a, n); - nn(() => { - for (var s of e) t.removeEventListener(s, n) - }) -} - -function Xt(t) { - var e = _, n = v; - F(null), X(null); - try { - return t() - } finally { - F(e), X(n) - } -} - -function ma(t, e, n, r = n) { - t.addEventListener(e, () => Xt(n)); - const a = t.__on_r; - a ? t.__on_r = () => { - a(), r(!0) - } : t.__on_r = () => r(!0), rr() -} - -function en(t) { - v === null && _ === null && In(), _ !== null && (_.f & C) !== 0 && v === null && Rn(), At && On() -} - -function ar(t, e) { - var n = e.last; - n === null ? e.last = e.first = t : (n.next = t, t.prev = n, e.last = t) -} - -function q(t, e, n, r = !0) { - var a = v; - a !== null && (a.f & K) !== 0 && (t |= K); - var s = { - ctx: g, - deps: null, - nodes_start: null, - nodes_end: null, - f: t | L, - first: null, - fn: e, - last: null, - next: null, - parent: a, - b: a && a.b, - prev: null, - teardown: null, - transitions: null, - wv: 0, - ac: null - }; - if (n) try { - vt(s), s.f |= fe - } catch (i) { - throw lt(s), i - } else e !== null && Et(s); - var u = n && s.deps === null && s.first === null && s.nodes_start === null && s.teardown === null && (s.f & oe) === 0; - if (!u && r && (a !== null && ar(s, a), _ !== null && (_.f & O) !== 0 && (t & ft) === 0)) { - var l = _; - (l.effects ?? (l.effects = [])).push(s) - } - return s -} - -function ba() { - return _ !== null && !D -} - -function nn(t) { - const e = q($t, null, !1); - return k(e, b), e.teardown = t, e -} - -function Ta(t) { - en(); - var e = v.f, n = !_ && (e & Y) !== 0 && (e & fe) === 0; - if (n) { - var r = g; - (r.e ?? (r.e = [])).push(t) - } else return rn(t) -} - -function rn(t) { - return q(le | qe, t, !1) -} - -function Aa(t) { - return en(), q($t | qe, t, !0) -} - -function xa(t) { - gt.ensure(); - const e = q(ft, t, !0); - return (n = {}) => new Promise(r => { - n.outro ? lr(e, () => { - lt(e), r(void 0) - }) : (lt(e), r(void 0)) - }) -} - -function ka(t) { - return q(le, t, !1) -} - -function sr(t) { - return q(ce | oe, t, !0) -} - -function Sa(t, e = 0) { - return q($t | e, t, !0) -} - -function Na(t, e = [], n = []) { - Zn(e, n, r => { - q($t, () => t(...r.map(Nt)), !0) - }) -} - -function Oa(t, e = 0) { - var n = q(bt | e, t, !0); - return n -} - -function Ra(t, e = !0) { - return q(Y, t, !0, e) -} - -function an(t) { - var e = t.teardown; - if (e !== null) { - const n = At, r = _; - Re(!0), F(null); - try { - e.call(null) - } finally { - Re(n), F(r) - } - } -} - -function sn(t, e = !1) { - var n = t.first; - for (t.first = t.last = null; n !== null;) { - const a = n.ac; - a !== null && Xt(() => { - a.abort(_e) - }); - var r = n.next; - (n.f & ft) !== 0 ? n.parent = null : lt(n, e), n = r - } -} - -function ir(t) { - for (var e = t.first; e !== null;) { - var n = e.next; - (e.f & Y) === 0 && lt(e), e = n - } -} - -function lt(t, e = !0) { - var n = !1; - (e || (t.f & xn) !== 0) && t.nodes_start !== null && t.nodes_end !== null && (ur(t.nodes_start, t.nodes_end), n = !0), sn(t, e && !n), Bt(t, 0), k(t, Tt); - var r = t.transitions; - if (r !== null) for (const s of r) s.stop(); - an(t); - var a = t.parent; - a !== null && a.first !== null && un(t), t.next = t.prev = t.teardown = t.ctx = t.deps = t.fn = t.nodes_start = t.nodes_end = t.ac = null -} - -function ur(t, e) { - for (; t !== null;) { - var n = t === e ? null : ot(t); - t.remove(), t = n - } -} - -function un(t) { - var e = t.parent, n = t.prev, r = t.next; - n !== null && (n.next = r), r !== null && (r.prev = n), e !== null && (e.first === t && (e.first = r), e.last === t && (e.last = n)) -} - -function lr(t, e) { - var n = []; - ln(t, n, !0), fr(n, () => { - lt(t), e && e() - }) -} - -function fr(t, e) { - var n = t.length; - if (n > 0) { - var r = () => --n || e(); - for (var a of t) a.out(r) - } else e() -} - -function ln(t, e, n) { - if ((t.f & K) === 0) { - if (t.f ^= K, t.transitions !== null) for (const u of t.transitions) (u.is_global || n) && e.push(u); - for (var r = t.first; r !== null;) { - var a = r.next, s = (r.f & Fe) !== 0 || (r.f & Y) !== 0; - ln(r, e, s ? n : !1), r = a - } - } -} - -function Ia(t) { - fn(t, !0) -} - -function fn(t, e) { - if ((t.f & K) !== 0) { - t.f ^= K, (t.f & b) === 0 && (k(t, L), Et(t)); - for (var n = t.first; n !== null;) { - var r = n.next, a = (n.f & Fe) !== 0 || (n.f & Y) !== 0; - fn(n, a ? e : !1), n = r - } - if (t.transitions !== null) for (const s of t.transitions) (s.is_global || e) && s.in() - } -} - -let _t = !1; - -function Oe(t) { - _t = t -} - -let At = !1; - -function Re(t) { - At = t -} - -let _ = null, D = !1; - -function F(t) { - _ = t -} - -let v = null; - -function X(t) { - v = t -} - -let A = null; - -function on(t) { - _ !== null && (A === null ? A = [t] : A.push(t)) -} - -let T = null, N = 0, I = null; - -function or(t) { - I = t -} - -let cn = 1, Ct = 0, it = Ct; - -function Ie(t) { - it = t -} - -let $ = !1; - -function _n() { - return ++cn -} - -function Zt(t) { - var c; - var e = t.f; - if ((e & L) !== 0) return !0; - if ((e & Z) !== 0) { - var n = t.deps, r = (e & C) !== 0; - if (n !== null) { - var a, s, u = (e & Ht) !== 0, l = r && v !== null && !$, i = n.length; - if ((u || l) && (v === null || (v.f & Tt) === 0)) { - var f = t, o = f.parent; - for (a = 0; a < i; a++) s = n[a], (u || !((c = s == null ? void 0 : s.reactions) != null && c.includes(f))) && (s.reactions ?? (s.reactions = [])).push(f); - u && (f.f ^= Ht), l && o !== null && (o.f & C) === 0 && (f.f ^= C) - } - for (a = 0; a < i; a++) if (s = n[a], Zt(s) && Ge(s), s.wv > t.wv) return !0 - } - (!r || v !== null && !$) && k(t, b) - } - return !1 -} - -function vn(t, e, n = !0) { - var r = t.reactions; - if (r !== null && !(A != null && A.includes(t))) for (var a = 0; a < r.length; a++) { - var s = r[a]; - (s.f & O) !== 0 ? vn(s, e, !1) : e === s && (n ? k(s, L) : (s.f & b) !== 0 && k(s, Z), Et(s)) - } -} - -function dn(t) { - var P; - var e = T, n = N, r = I, a = _, s = $, u = A, l = g, i = D, f = it, o = t.f; - T = null, N = 0, I = null, $ = (o & C) !== 0 && (D || !_t || _ === null), _ = (o & (Y | ft)) === 0 ? t : null, A = null, Ut(t.ctx), D = !1, it = ++Ct, t.ac !== null && (Xt(() => { - t.ac.abort(_e) - }), t.ac = null); - try { - t.f |= ne; - var c = t.fn, w = c(), h = t.deps; - if (T !== null) { - var p; - if (Bt(t, N), h !== null && N > 0) for (h.length = N + T.length, p = 0; p < T.length; p++) h[N + p] = T[p]; else t.deps = h = T; - if (!$ || (o & O) !== 0 && t.reactions !== null) for (p = N; p < h.length; p++) ((P = h[p]).reactions ?? (P.reactions = [])).push(t) - } else h !== null && N < h.length && (Bt(t, N), h.length = N); - if (Ft() && I !== null && !D && h !== null && (t.f & (O | Z | L)) === 0) for (p = 0; p < I.length; p++) vn(I[p], t); - return a !== null && a !== t && (Ct++, I !== null && (r === null ? r = I : r.push(...I))), (t.f & at) !== 0 && (t.f ^= at), w - } catch (H) { - return Bn(H) - } finally { - t.f ^= ne, T = e, N = n, I = r, _ = a, $ = s, A = u, Ut(l), D = i, it = f - } -} - -function cr(t, e) { - let n = e.reactions; - if (n !== null) { - var r = En.call(n, t); - if (r !== -1) { - var a = n.length - 1; - a === 0 ? n = e.reactions = null : (n[r] = n[a], n.pop()) - } - } - n === null && (e.f & O) !== 0 && (T === null || !T.includes(e)) && (k(e, Z), (e.f & (C | Ht)) === 0 && (e.f ^= Ht), $e(e), Bt(e, 0)) -} - -function Bt(t, e) { - var n = t.deps; - if (n !== null) for (var r = e; r < n.length; r++) cr(t, n[r]) -} - -function vt(t) { - var e = t.f; - if ((e & Tt) === 0) { - k(t, b); - var n = v, r = _t; - v = t, _t = !0; - try { - (e & bt) !== 0 ? ir(t) : sn(t), an(t); - var a = dn(t); - t.teardown = typeof a == "function" ? a : null, t.wv = cn; - var s - } finally { - _t = r, v = n - } - } -} - -async function Ca() { - await Promise.resolve(), Qn() -} - -function Pa() { - return gt.ensure().settled() -} - -function Nt(t) { - var e = t.f, n = (e & O) !== 0; - if (_ !== null && !D) { - var r = v !== null && (v.f & Tt) !== 0; - if (!r && !(A != null && A.includes(t))) { - var a = _.deps; - if ((_.f & ne) !== 0) t.rv < Ct && (t.rv = Ct, T === null && a !== null && a[N] === t ? N++ : T === null ? T = [t] : (!$ || !T.includes(t)) && T.push(t)); else { - (_.deps ?? (_.deps = [])).push(t); - var s = t.reactions; - s === null ? t.reactions = [_] : s.includes(_) || s.push(_) - } - } - } else if (n && t.deps === null && t.effects === null) { - var u = t, l = u.parent; - l !== null && (l.f & C) === 0 && (u.f ^= C) - } - if (At) { - if (G.has(t)) return G.get(t); - if (n) { - u = t; - var i = u.v; - return ((u.f & b) === 0 && u.reactions !== null || hn(u)) && (i = ge(u)), G.set(u, i), i - } - } else if (n) { - if (u = t, W != null && W.has(u)) return W.get(u); - Zt(u) && Ge(u) - } - if ((t.f & at) !== 0) throw t.v; - return t.v -} - -function hn(t) { - if (t.v === m) return !0; - if (t.deps === null) return !1; - for (const e of t.deps) if (G.has(e) || (e.f & O) !== 0 && hn(e)) return !0; - return !1 -} - -function Da(t) { - var e = D; - try { - return D = !0, t() - } finally { - D = e - } -} - -const _r = -7169; - -function k(t, e) { - t.f = t.f & _r | e -} - -function Ma(t) { - if (!(typeof t != "object" || !t || t instanceof EventTarget)) { - if (st in t) ue(t); else if (!Array.isArray(t)) for (let e in t) { - const n = t[e]; - typeof n == "object" && n && st in n && ue(n) - } - } -} - -function ue(t, e = new Set) { - if (typeof t == "object" && t !== null && !(t instanceof EventTarget) && !e.has(t)) { - e.add(t), t instanceof Date && t.getTime(); - for (let r in t) try { - ue(t[r], e) - } catch { - } - const n = De(t); - if (n !== Object.prototype && n !== Array.prototype && n !== Map.prototype && n !== Set.prototype && n !== Date.prototype) { - const r = mn(n); - for (let a in r) { - const s = r[a].get; - if (s) try { - s.call(t) - } catch { - } - } - } - } -} - -function La(t) { - return t.endsWith("capture") && t !== "gotpointercapture" && t !== "lostpointercapture" -} - -const vr = ["beforeinput", "click", "change", "dblclick", "contextmenu", "focusin", "focusout", "input", "keydown", "keyup", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "pointerdown", "pointermove", "pointerout", "pointerover", "pointerup", "touchend", "touchmove", "touchstart"]; - -function Fa(t) { - return vr.includes(t) -} - -const dr = { - formnovalidate: "formNoValidate", - ismap: "isMap", - nomodule: "noModule", - playsinline: "playsInline", - readonly: "readOnly", - defaultvalue: "defaultValue", - defaultchecked: "defaultChecked", - srcobject: "srcObject", - novalidate: "noValidate", - allowfullscreen: "allowFullscreen", - disablepictureinpicture: "disablePictureInPicture", - disableremoteplayback: "disableRemotePlayback" -}; - -function qa(t) { - return t = t.toLowerCase(), dr[t] ?? t -} - -const hr = ["touchstart", "touchmove"]; - -function ja(t) { - return hr.includes(t) -} - -const pr = new Set, wr = new Set; - -function pn(t, e, n, r = {}) { - function a(s) { - if (r.capture || yr.call(e, s), !s.cancelBubble) return Xt(() => n == null ? void 0 : n.call(this, s)) - } - - return t.startsWith("pointer") || t.startsWith("touch") || t === "wheel" ? We(() => { - e.addEventListener(t, a, r) - }) : e.addEventListener(t, a, r), a -} - -function Ya(t, e, n, r = {}) { - var a = pn(e, t, n, r); - return () => { - t.removeEventListener(e, a, r) - } -} - -function Ha(t, e, n, r, a) { - var s = {capture: r, passive: a}, u = pn(t, e, n, s); - (e === document.body || e === window || e === document || e instanceof HTMLMediaElement) && nn(() => { - e.removeEventListener(t, u, s) - }) -} - -function Ua(t) { - for (var e = 0; e < t.length; e++) pr.add(t[e]); - for (var n of wr) n(t) -} - -let Ce = null; - -function yr(t) { - var ct; - var e = this, n = e.ownerDocument, r = t.type, a = ((ct = t.composedPath) == null ? void 0 : ct.call(t)) || [], - s = a[0] || t.target; - Ce = t; - var u = 0, l = Ce === t && t.__root; - if (l) { - var i = a.indexOf(l); - if (i !== -1 && (e === document || e === window)) { - t.__root = e; - return - } - var f = a.indexOf(e); - if (f === -1) return; - i <= f && (u = i) - } - if (s = a[u] || t.target, s !== e) { - ee(t, "currentTarget", { - configurable: !0, get() { - return s || n - } - }); - var o = _, c = v; - F(null), X(null); - try { - for (var w, h = []; s !== null;) { - var p = s.assignedSlot || s.parentNode || s.host || null; - try { - var P = s["__" + r]; - if (P != null && (!s.disabled || t.target === s)) if (Pe(P)) { - var [H, ...qt] = P; - H.apply(s, [t, ...qt]) - } else P.call(s, t) - } catch (J) { - w ? h.push(J) : w = J - } - if (t.cancelBubble || p === e || p === null) break; - s = p - } - if (w) { - for (let J of h) queueMicrotask(() => { - throw J - }); - throw w - } - } finally { - t.__root = e, delete t.currentTarget, F(o), X(c) - } - } -} - -function wn(t) { - var e = document.createElement("template"); - return e.innerHTML = t.replaceAll("", ""), e.content -} - -function j(t, e) { - var n = v; - n.nodes_start === null && (n.nodes_start = t, n.nodes_end = e) -} - -function Va(t, e) { - var n = (e & Ln) !== 0, r = (e & Fn) !== 0, a, s = !t.startsWith(""); - return () => { - if (S) return j(y, null), y; - a === void 0 && (a = wn(s ? t : "" + t), n || (a = z(a))); - var u = r || Je ? document.importNode(a, !0) : a.cloneNode(!0); - if (n) { - var l = z(u), i = u.lastChild; - j(l, i) - } else j(u, u); - return u - } -} - -function gr(t, e, n = "svg") { - var r = !t.startsWith(""), a = `<${n}>${r ? t : "" + t}`, s; - return () => { - if (S) return j(y, null), y; - if (!s) { - var u = wn(a), l = z(u); - s = z(l) - } - var i = s.cloneNode(!0); - return j(i, i), i - } -} - -function Ba(t, e) { - return gr(t, e, "svg") -} - -function Wa(t = "") { - if (!S) { - var e = mt(t + ""); - return j(e, e), e - } - var n = y; - return n.nodeType !== ve && (n.before(n = mt()), yt(n)), j(n, n), n -} - -function $a() { - if (S) return j(y, null), y; - var t = document.createDocumentFragment(), e = document.createComment(""), n = mt(); - return t.append(e, n), j(e, n), t -} - -function Ga(t, e) { - if (S) { - v.nodes_end = y, je(); - return - } - t !== null && t.before(e) -} - -function Ka() { - var t, e; - if (S && y && y.nodeType === de && ((t = y.textContent) != null && t.startsWith("#"))) { - const n = y.textContent.substring(1); - return je(), n - } - return (e = window.__svelte ?? (window.__svelte = {})).uid ?? (e.uid = 1), `c${window.__svelte.uid++}` -} - -export { - K as $, - Nt as A, - Ma as B, - ye as C, - ka as D, - Fe as E, - Sa as F, - We as G, - Lr as H, - yt as I, - z as J, - zn as K, - ta as L, - jn as M, - Qr as N, - Xr as O, - de as P, - Yn as Q, - Dr as R, - st as S, - Mr as T, - ie as U, - ca as V, - Ee as W, - br as X, - Pe as Y, - Ia as Z, - qr as _, - ha as a, - Kr as a$, - lt as a0, - Fr as a1, - ot as a2, - ln as a3, - nr as a4, - fr as a5, - v as a6, - ur as a7, - pe as a8, - he as a9, - Pa as aA, - Ca as aB, - m as aC, - Ot as aD, - Pr as aE, - Hr as aF, - St as aG, - tt as aH, - At as aI, - Tt as aJ, - Ur as aK, - Yr as aL, - jr as aM, - Vr as aN, - Sr as aO, - Tr as aP, - ee as aQ, - U as aR, - $a as aS, - oa as aT, - Wa as aU, - zr as aV, - _a as aW, - Zn as aX, - Gr as aY, - De as aZ, - Nr as a_, - j as aa, - wn as ab, - va as ac, - qn as ad, - Ir as ae, - pr as af, - wr as ag, - xa as ah, - yr as ai, - ja as aj, - er as ak, - na as al, - xn as am, - Ua as an, - nn as ao, - Ar as ap, - Sn as aq, - _ as ar, - Rr as as, - Cr as at, - Gt as au, - Qn as av, - ia as aw, - ra as ax, - sa as ay, - aa as az, - Ga as b, - mn as b0, - La as b1, - pn as b2, - ya as b3, - qa as b4, - Fa as b5, - fa as b6, - rr as b7, - ba as b8, - te as b9, - Hn as ba, - Ft as bb, - ea as bc, - $r as bd, - Xt as be, - bt as bf, - fe as bg, - Br as bh, - Wr as bi, - Ha as bj, - Se as bk, - ma as bl, - Qt as bm, - mr as bn, - Ya as bo, - bn as bp, - Ea as bq, - ga as br, - Ka as bs, - kr as bt, - la as c, - da as d, - je as e, - Va as f, - Oa as g, - S as h, - mt as i, - Ra as j, - E as k, - wa as l, - y as m, - lr as n, - Jr as o, - ua as p, - Ba as q, - Zr as r, - pa as s, - Na as t, - g as u, - Aa as v, - Ta as w, - Da as x, - xr as y, - Me as z -}; diff --git a/frontend-backup/_app/immutable/chunks/DV6L2nvf.js b/frontend-backup/_app/immutable/chunks/DV6L2nvf.js deleted file mode 100644 index 8f71d44..0000000 --- a/frontend-backup/_app/immutable/chunks/DV6L2nvf.js +++ /dev/null @@ -1,40 +0,0 @@ -import { t as g, h, e as c, ad as b, ae as p, o as u, W as w, a9 as v, af as m, ag as E, ah as y, O as T, ai as D, P as i } from "./BDALf20I.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - d = new e.Error().stack; - d && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[d] = "c5676a6a-afed-4227-8555-1ad1a2540ba4"), (e._sentryDebugIdIdentifier = "sentry-dbid-c5676a6a-afed-4227-8555-1ad1a2540ba4")); - })(); -} catch {} -function O(e, d, r = !1, o = !1, I = !1) { - var l = e, - t = ""; - g(() => { - var n = b; - if (t === (t = d() ?? "")) { - h && c(); - return; - } - if ((n.nodes_start !== null && (p(n.nodes_start, n.nodes_end), (n.nodes_start = n.nodes_end = null)), t !== "")) { - if (h) { - u.data; - for (var a = c(), _ = a; a !== null && (a.nodeType !== w || a.data !== ""); ) (_ = a), (a = v(a)); - if (a === null) throw (m(), E); - y(u, _), (l = T(a)); - return; - } - var s = t + ""; - r ? (s = `${s}`) : o && (s = `${s}`); - var f = D(s); - if (((r || o) && (f = i(f)), y(i(f), f.lastChild), r || o)) for (; i(f); ) l.before(i(f)); - else l.before(f); - } - }); -} -export { O as h }; diff --git a/frontend-backup/_app/immutable/chunks/DVA6u9-7.js b/frontend-backup/_app/immutable/chunks/DVA6u9-7.js new file mode 100644 index 0000000..296018e --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DVA6u9-7.js @@ -0,0 +1,172 @@ +import { + aj as v, + O as A, + U as T, + ak as L, + a7 as k, + ag as p, + T as h, + N as D, + e as M, + o as u, + V as S, + af as Y, + al as j, + a9 as C, + a0 as H, + am as V, + an as N, + ao as W, + ap as y, + aq as $, + j as q, + k as F, + h as w, + p as P, + w as U, + ah as z, + ab as B, + c as G, +} from "./CMvZtFtm.js"; +import { r as J } from "./P77cUGnY.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + a = new e.Error().stack; + a && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[a] = "091e34c6-a6e4-4616-9b7c-d8a0b150b9c0"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-091e34c6-a6e4-4616-9b7c-d8a0b150b9c0")); + })(); +} catch {} +let R = !0; +function Z(e, a) { + var t = a == null ? "" : typeof a == "object" ? a + "" : a; + t !== (e.__t ?? (e.__t = e.nodeValue)) && + ((e.__t = t), (e.nodeValue = t + "")); +} +function K(e, a) { + return I(e, a); +} +function x(e, a) { + v(), (a.intro = a.intro ?? !1); + const t = a.target, + c = w, + _ = u; + try { + for (var s = A(t); s && (s.nodeType !== T || s.data !== L); ) s = k(s); + if (!s) throw p; + h(!0), D(s), M(); + const d = I(e, { ...a, anchor: s }); + if (u === null || u.nodeType !== T || u.data !== S) throw (Y(), p); + return h(!1), d; + } catch (d) { + if ( + d instanceof Error && + d.message + .split( + ` +` + ) + .some((f) => f.startsWith("https://svelte.dev/e/")) + ) + throw d; + return ( + d !== p && console.warn("Failed to hydrate: ", d), + a.recover === !1 && j(), + v(), + C(t), + h(!1), + K(e, a) + ); + } finally { + h(c), D(_), J(); + } +} +const i = new Map(); +function I( + e, + { target: a, anchor: t, props: c = {}, events: _, context: s, intro: d = !0 } +) { + v(); + var f = new Set(), + g = (o) => { + for (var n = 0; n < o.length; n++) { + var r = o[n]; + if (!f.has(r)) { + f.add(r); + var l = $(r); + a.addEventListener(r, y, { passive: l }); + var E = i.get(r); + E === void 0 + ? (document.addEventListener(r, y, { passive: l }), i.set(r, 1)) + : i.set(r, E + 1); + } + } + }; + g(H(V)), N.add(g); + var b = void 0, + O = W(() => { + var o = t ?? a.appendChild(q()); + return ( + F(() => { + if (s) { + P({}); + var n = U; + n.c = s; + } + _ && (c.$$events = _), + w && z(o, null), + (R = d), + (b = e(o, c) || {}), + (R = !0), + w && (B.nodes_end = u), + s && G(); + }), + () => { + var l; + for (var n of f) { + a.removeEventListener(n, y); + var r = i.get(n); + --r === 0 + ? (document.removeEventListener(n, y), i.delete(n)) + : i.set(n, r); + } + N.delete(g), + o !== t && ((l = o.parentNode) == null || l.removeChild(o)); + } + ); + }); + return m.set(b, O), b; +} +let m = new WeakMap(); +function ee(e, a) { + const t = m.get(e); + return t ? (m.delete(e), t(a)) : Promise.resolve(); +} +export { R as a, x as h, K as m, Z as s, ee as u }; diff --git a/frontend-backup/_app/immutable/chunks/DXjtejww.js b/frontend-backup/_app/immutable/chunks/DXjtejww.js deleted file mode 100644 index c325e2e..0000000 --- a/frontend-backup/_app/immutable/chunks/DXjtejww.js +++ /dev/null @@ -1,30 +0,0 @@ -import { g as n } from "./DklPLC_x.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - o = new e.Error().stack; - o && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[o] = "76e4e08a-3479-4679-9995-6d7032094b18"), (e._sentryDebugIdIdentifier = "sentry-dbid-76e4e08a-3479-4679-9995-6d7032094b18")); - })(); -} catch {} -const r = () => "Apply", - d = () => "Aplicar", - f = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? r() : d()), - a = () => "Media total per mod", - i = () => "Media total por mod", - b = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? a() : i()), - l = () => "Media ban per mod", - _ = () => "Media de banimento por mod", - g = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? l() : _()), - c = () => "Media ignored per mod", - p = () => "Media de ignorados por mod", - y = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? c() : p()), - s = () => "Media timeout per mod", - u = () => "Media de timeout por mod", - w = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? s() : u()); -export { f as a, g as b, y as c, w as d, b as m }; diff --git a/frontend-backup/_app/immutable/chunks/DdJK9GIy.js b/frontend-backup/_app/immutable/chunks/DdJK9GIy.js deleted file mode 100644 index fa4a0c8..0000000 --- a/frontend-backup/_app/immutable/chunks/DdJK9GIy.js +++ /dev/null @@ -1 +0,0 @@ -import{g as n}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new e.Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="cb9cdd54-2441-45dd-bc58-9d9fa5dd59c8",e._sentryDebugIdIdentifier="sentry-dbid-cb9cdd54-2441-45dd-bc58-9d9fa5dd59c8")})()}catch{}const o=()=>"Add",t=()=>"Adicionar",i=(e={},d={})=>(d.locale??n())==="en"?o():t();export{i as a}; diff --git a/frontend-backup/_app/immutable/chunks/DffDvEhl.js b/frontend-backup/_app/immutable/chunks/DffDvEhl.js deleted file mode 100644 index 2cd5a79..0000000 --- a/frontend-backup/_app/immutable/chunks/DffDvEhl.js +++ /dev/null @@ -1,1489 +0,0 @@ -var be = Object.defineProperty; -var re = (a) => { - throw TypeError(a); -}; -var ye = (a, e, t) => (e in a ? be(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : (a[e] = t)); -var _ = (a, e, t) => ye(a, typeof e != "symbol" ? e + "" : e, t), - Se = (a, e, t) => e.has(a) || re("Cannot " + t); -var u = (a, e, t) => (Se(a, e, "read from private field"), t ? t.call(a) : e.get(a)), - h = (a, e, t) => (e.has(a) ? re("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(a) : e.set(a, t)); -import { au as y, av as Z, g as p, aw as w, z as se, u as P } from "./BDALf20I.js"; -import { g } from "./DklPLC_x.js"; -import { s as Te } from "./DM9nRpoa.js"; -(function () { - try { - var a = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - a.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var a = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - e = new a.Error().stack; - e && ((a._sentryDebugIds = a._sentryDebugIds || {}), (a._sentryDebugIds[e] = "787c12f8-0765-444c-9905-69388673c8cc"), (a._sentryDebugIdIdentifier = "sentry-dbid-787c12f8-0765-444c-9905-69388673c8cc")); - })(); -} catch {} -const Ee = "true", - oa = "/files", - ia = "0x4AAAAAABpHqZ-6i7uL0nmG", - ue = "", - ca = "0x4AAAAAABpqJe8FO0N84q0F"; -function la(...a) { - return a.filter(Boolean).join(" "); -} -const ve = typeof document < "u"; -let oe = 0; -var k, L, C; -class Ae { - constructor() { - h(this, k, y(Z([]))); - h(this, L, y(Z([]))); - h(this, C, (e) => { - const t = this.toasts.findIndex((n) => n.id === e); - return t === -1 ? null : t; - }); - _(this, "addToast", (e) => { - ve && this.toasts.unshift(e); - }); - _(this, "updateToast", ({ id: e, data: t, type: n, message: s }) => { - const r = this.toasts.findIndex((o) => o.id === e), - l = this.toasts[r]; - this.toasts[r] = { ...l, ...t, id: e, title: s, type: n, updated: !0 }; - }); - _(this, "create", (e) => { - var o; - const { message: t, ...n } = e, - s = typeof (e == null ? void 0 : e.id) == "number" || (e.id && ((o = e.id) == null ? void 0 : o.length) > 0) ? e.id : oe++, - r = e.dismissable === void 0 ? !0 : e.dismissable, - l = e.type === void 0 ? "default" : e.type; - return ( - se(() => { - this.toasts.find((c) => c.id === s) ? this.updateToast({ id: s, data: e, type: l, message: t, dismissable: r }) : this.addToast({ ...n, id: s, title: t, dismissable: r, type: l }); - }), - s - ); - }); - _( - this, - "dismiss", - (e) => ( - se(() => { - if (e === void 0) { - this.toasts = this.toasts.map((n) => ({ ...n, dismiss: !0 })); - return; - } - const t = this.toasts.findIndex((n) => n.id === e); - this.toasts[t] && (this.toasts[t] = { ...this.toasts[t], dismiss: !0 }); - }), - e - ) - ); - _(this, "remove", (e) => { - if (e === void 0) { - this.toasts = []; - return; - } - const t = u(this, C).call(this, e); - if (t !== null) return this.toasts.splice(t, 1), e; - }); - _(this, "message", (e, t) => this.create({ ...t, type: "default", message: e })); - _(this, "error", (e, t) => this.create({ ...t, type: "error", message: e })); - _(this, "success", (e, t) => this.create({ ...t, type: "success", message: e })); - _(this, "info", (e, t) => this.create({ ...t, type: "info", message: e })); - _(this, "warning", (e, t) => this.create({ ...t, type: "warning", message: e })); - _(this, "loading", (e, t) => this.create({ ...t, type: "loading", message: e })); - _(this, "promise", (e, t) => { - if (!t) return; - let n; - t.loading !== void 0 && (n = this.create({ ...t, promise: e, type: "loading", message: typeof t.loading == "string" ? t.loading : t.loading() })); - const s = e instanceof Promise ? e : e(); - let r = n !== void 0; - return ( - s - .then((l) => { - if (typeof l == "object" && l && "ok" in l && typeof l.ok == "boolean" && !l.ok) { - r = !1; - const o = Pe(l); - this.create({ id: n, type: "error", message: o }); - } else if (t.success !== void 0) { - r = !1; - const o = typeof t.success == "function" ? t.success(l) : t.success; - this.create({ id: n, type: "success", message: o }); - } - }) - .catch((l) => { - if (t.error !== void 0) { - r = !1; - const o = typeof t.error == "function" ? t.error(l) : t.error; - this.create({ id: n, type: "error", message: o }); - } - }) - .finally(() => { - var l; - r && (this.dismiss(n), (n = void 0)), (l = t.finally) == null || l.call(t); - }), - n - ); - }); - _(this, "custom", (e, t) => { - const n = (t == null ? void 0 : t.id) || oe++; - return this.create({ component: e, id: n, ...t }), n; - }); - _(this, "removeHeight", (e) => { - this.heights = this.heights.filter((t) => t.toastId !== e); - }); - _(this, "setHeight", (e) => { - const t = u(this, C).call(this, e.toastId); - if (t === null) { - this.heights.push(e); - return; - } - this.heights[t] = e; - }); - _(this, "reset", () => { - (this.toasts = []), (this.heights = []); - }); - } - get toasts() { - return p(u(this, k)); - } - set toasts(e) { - w(u(this, k), e, !0); - } - get heights() { - return p(u(this, L)); - } - set heights(e) { - w(u(this, L), e, !0); - } -} -(k = new WeakMap()), (L = new WeakMap()), (C = new WeakMap()); -function Pe(a) { - return a && typeof a == "object" && "status" in a ? `HTTP error! Status: ${a.status}` : `Error! ${a}`; -} -const T = new Ae(); -function xe(a, e) { - return T.create({ message: a, ...e }); -} -var ee; -class da { - constructor() { - h( - this, - ee, - P(() => T.toasts.filter((e) => !e.dismiss)) - ); - } - get toasts() { - return p(u(this, ee)); - } -} -ee = new WeakMap(); -const Ie = xe, - ge = Object.assign(Ie, { - success: T.success, - info: T.info, - warning: T.warning, - error: T.error, - custom: T.custom, - message: T.message, - promise: T.promise, - dismiss: T.dismiss, - loading: T.loading, - getActiveToasts: () => T.toasts.filter((a) => !a.dismiss), - }); -let fe = y(void 0); -const me = () => p(fe), - ua = (a) => { - const e = new URL(a, ue), - t = me(); - return t && e.searchParams.set("override", t.token), e.toString(); - }; -function ga() { - try { - Oe(); - } catch (a) { - console.error("failed to load override", a); - } -} -function Oe() { - const e = new URL(location.href).searchParams.get("override"); - if (!e) return; - const t = e.split("."); - if (t.length !== 2) throw new Error("override token wrong amount of parts"); - const [n] = t, - s = JSON.parse(atob(n)); - if (Date.now() / 1e3 > s.expiresAt) throw new Error("override token expired"); - ge.info(`Currently using the ${s.id} override. Bugs may occur, go back to ${location.protocol}//${location.host} to clear this override.`, { duration: 6e4 }), w(fe, { token: e, payload: s }, !0); -} -const ie = "theme"; -var M, q, N, B, D, U, G; -class ke { - constructor() { - h(this, M, y(!1)); - h(this, q, y(!1)); - h(this, N, y(Z(Ce()))); - h(this, B, y(!1)); - h(this, D, y("custom-winter")); - h(this, U, y(Z(Date.now()))); - h(this, G, y(void 0)); - setInterval(() => { - w(u(this, U), Date.now(), !0); - }, 500), - (this.theme = localStorage.getItem(ie) || "custom-winter"); - } - get dropletsDialogOpen() { - return p(u(this, M)); - } - set dropletsDialogOpen(e) { - w(u(this, M), e, !0); - } - get muted() { - return p(u(this, q)); - } - set muted(e) { - w(u(this, q), e, !0); - } - get language() { - return p(u(this, N)); - } - set language(e) { - w(u(this, N), e, !0); - } - get turnstatileLoaded() { - return p(u(this, B)); - } - set turnstatileLoaded(e) { - w(u(this, B), e, !0); - } - get theme() { - return p(u(this, D)); - } - set theme(e) { - w(u(this, D), e, !0), localStorage.setItem(ie, e), document.documentElement.setAttribute("data-theme", e); - } - get now() { - return p(u(this, U)); - } - get captcha() { - return Me ? p(u(this, G)) : { token: "turnstile-disabled", time: Date.now() }; - } - set captcha(e) { - w(u(this, G), e, !0); - } -} -(M = new WeakMap()), (q = new WeakMap()), (N = new WeakMap()), (B = new WeakMap()), (D = new WeakMap()), (U = new WeakMap()), (G = new WeakMap()); -const Le = new ke(); -function Ce() { - if (navigator.languages && navigator.languages.length > 0) { - const a = navigator.languages.find((e) => e.length === 2); - if (a) return a; - } - return (navigator.language || navigator.userLanguage || navigator.browserLanguage || "en").substring(0, 2); -} -const Me = Ee.toLowerCase() !== "false"; -let m; -function x(a) { - const e = m.__externref_table_alloc(); - return m.__wbindgen_export_2.set(e, a), e; -} -function A(a, e) { - try { - return a.apply(this, e); - } catch (t) { - const n = x(t); - m.__wbindgen_exn_store(n); - } -} -const he = - typeof TextDecoder < "u" - ? new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }) - : { - decode: () => { - throw Error("TextDecoder not available"); - }, - }; -typeof TextDecoder < "u" && he.decode(); -let I = null; -function W() { - return (I === null || I.byteLength === 0) && (I = new Uint8Array(m.memory.buffer)), I; -} -function O(a, e) { - return (a = a >>> 0), he.decode(W().subarray(a, a + e)); -} -function H(a) { - return a == null; -} -function fa(a) { - m.set_user_id(a); -} -let Q = 0; -const Y = - typeof TextEncoder < "u" - ? new TextEncoder("utf-8") - : { - encode: () => { - throw Error("TextEncoder not available"); - }, - }, - qe = - typeof Y.encodeInto == "function" - ? function (a, e) { - return Y.encodeInto(a, e); - } - : function (a, e) { - const t = Y.encode(a); - return e.set(t), { read: a.length, written: t.length }; - }; -function _e(a, e, t) { - if (t === void 0) { - const o = Y.encode(a), - d = e(o.length, 1) >>> 0; - return ( - W() - .subarray(d, d + o.length) - .set(o), - (Q = o.length), - d - ); - } - let n = a.length, - s = e(n, 1) >>> 0; - const r = W(); - let l = 0; - for (; l < n; l++) { - const o = a.charCodeAt(l); - if (o > 127) break; - r[s + l] = o; - } - if (l !== n) { - l !== 0 && (a = a.slice(l)), (s = t(s, n, (n = l + a.length * 3), 1) >>> 0); - const o = W().subarray(s + l, s + n), - d = qe(a, o); - (l += d.written), (s = t(s, n, l, 1) >>> 0); - } - return (Q = l), s; -} -function ma(a) { - const e = _e(a, m.__wbindgen_malloc, m.__wbindgen_realloc), - t = Q; - m.request_url(e, t); -} -function Ne() { - let a, e; - try { - const t = m.get_load_payload(); - return (a = t[0]), (e = t[1]), O(t[0], t[1]); - } finally { - m.__wbindgen_free(a, e, 1); - } -} -function Be(a) { - let e, t; - try { - const n = _e(a, m.__wbindgen_malloc, m.__wbindgen_realloc), - s = Q, - r = m.get_pawtected_endpoint_payload(n, s); - return (e = r[0]), (t = r[1]), O(r[0], r[1]); - } finally { - m.__wbindgen_free(e, t, 1); - } -} -async function De(a, e) { - if (typeof Response == "function" && a instanceof Response) { - if (typeof WebAssembly.instantiateStreaming == "function") - try { - return await WebAssembly.instantiateStreaming(a, e); - } catch (n) { - if (a.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", n); - else throw n; - } - const t = await a.arrayBuffer(); - return await WebAssembly.instantiate(t, e); - } else { - const t = await WebAssembly.instantiate(a, e); - return t instanceof WebAssembly.Instance ? { instance: t, module: a } : t; - } -} -function Ue() { - const a = {}; - return ( - (a.wbg = {}), - (a.wbg.__wbg_buffer_609cc3eee51ed158 = function (e) { - return e.buffer; - }), - (a.wbg.__wbg_call_672a4d21634d4a24 = function () { - return A(function (e, t) { - return e.call(t); - }, arguments); - }), - (a.wbg.__wbg_call_7cccdd69e0791ae2 = function () { - return A(function (e, t, n) { - return e.call(t, n); - }, arguments); - }), - (a.wbg.__wbg_crypto_574e78ad8b13b65f = function (e) { - return e.crypto; - }), - (a.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e = function () { - return A(function (e, t) { - e.getRandomValues(t); - }, arguments); - }), - (a.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function (e) { - return e.msCrypto; - }), - (a.wbg.__wbg_new_a12002a7f91c75be = function (e) { - return new Uint8Array(e); - }), - (a.wbg.__wbg_newnoargs_105ed471475aaf50 = function (e, t) { - return new Function(O(e, t)); - }), - (a.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function (e, t, n) { - return new Uint8Array(e, t >>> 0, n >>> 0); - }), - (a.wbg.__wbg_newwithlength_a381634e90c276d4 = function (e) { - return new Uint8Array(e >>> 0); - }), - (a.wbg.__wbg_node_905d3e251edff8a2 = function (e) { - return e.node; - }), - (a.wbg.__wbg_process_dc0fbacc7c1c06f7 = function (e) { - return e.process; - }), - (a.wbg.__wbg_randomFillSync_ac0988aba3254290 = function () { - return A(function (e, t) { - e.randomFillSync(t); - }, arguments); - }), - (a.wbg.__wbg_require_60cc747a6bc5215a = function () { - return A(function () { - return module.require; - }, arguments); - }), - (a.wbg.__wbg_set_65595bdd868b3009 = function (e, t, n) { - e.set(t, n >>> 0); - }), - (a.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function () { - const e = typeof global > "u" ? null : global; - return H(e) ? 0 : x(e); - }), - (a.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function () { - const e = typeof globalThis > "u" ? null : globalThis; - return H(e) ? 0 : x(e); - }), - (a.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function () { - const e = typeof self > "u" ? null : self; - return H(e) ? 0 : x(e); - }), - (a.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function () { - const e = typeof window > "u" ? null : window; - return H(e) ? 0 : x(e); - }), - (a.wbg.__wbg_subarray_aa9065fa9dc5df96 = function (e, t, n) { - return e.subarray(t >>> 0, n >>> 0); - }), - (a.wbg.__wbg_versions_c01dfd4722a88165 = function (e) { - return e.versions; - }), - (a.wbg.__wbindgen_init_externref_table = function () { - const e = m.__wbindgen_export_2, - t = e.grow(4); - e.set(0, void 0), e.set(t + 0, void 0), e.set(t + 1, null), e.set(t + 2, !0), e.set(t + 3, !1); - }), - (a.wbg.__wbindgen_is_function = function (e) { - return typeof e == "function"; - }), - (a.wbg.__wbindgen_is_object = function (e) { - const t = e; - return typeof t == "object" && t !== null; - }), - (a.wbg.__wbindgen_is_string = function (e) { - return typeof e == "string"; - }), - (a.wbg.__wbindgen_is_undefined = function (e) { - return e === void 0; - }), - (a.wbg.__wbindgen_memory = function () { - return m.memory; - }), - (a.wbg.__wbindgen_string_new = function (e, t) { - return O(e, t); - }), - (a.wbg.__wbindgen_throw = function (e, t) { - throw new Error(O(e, t)); - }), - a - ); -} -function Ge(a, e) { - return (m = a.exports), (Re.__wbindgen_wasm_module = e), (I = null), m.__wbindgen_start(), m; -} -async function Re(a) { - if (m !== void 0) return m; - typeof a < "u" && (Object.getPrototypeOf(a) === Object.prototype ? ({ module_or_path: a } = a) : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), - typeof a > "u" && (a = new URL("pawtect_wasm_bg.wasm", import.meta.url)); - const e = Ue(); - (typeof a == "string" || (typeof Request == "function" && a instanceof Request) || (typeof URL == "function" && a instanceof URL)) && (a = fetch(a)); - const { instance: t, module: n } = await De(await a, e); - return Ge(t, n); -} -const $e = () => "Unexpected server error. Try again later.", - je = () => "Erro inesperado do servidor. Tente novamente mais tarde.", - i = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? $e() : je()), - Fe = () => "You need to be logged in to paint", - Je = () => "Você precisa estar conectado para pintar", - Ke = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Fe() : Je()), - ze = (a) => `Error while painting: ${a.err}`, - Ve = (a) => `Erro enquanto pinta: ${a.err}`, - He = (a, e = {}) => ((e.locale ?? g()) === "en" ? ze(a) : Ve(a)), - We = () => "Invalid phone number", - Ye = () => "Número de telefone inválido", - Ze = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? We() : Ye()), - Qe = () => "Phone already used", - Xe = () => "Telefone já usado", - et = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Qe() : Xe()), - tt = () => "You have to wait to resend a code", - nt = () => "Você tem de esperar para reenviar um código", - at = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? tt() : nt()), - rt = () => "Invalid code", - st = () => "Código inválido", - ot = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? rt() : st()), - it = () => "Operation not allowed. Maybe you have too many favorite locations.", - ct = () => "Operação não permitida. Talvez você tenha muitos locais favoritos.", - lt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? it() : ct()), - dt = () => "Location name is too big (max. 128 characters)", - ut = () => "Nome da localização é grande demais (max. 128 caracteres)", - gt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? dt() : ut()), - ft = () => "Couldn't complete the purchase. This item does not exist.", - mt = () => "Não foi possível concluir a compra. Este item não existe.", - ht = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? ft() : mt()), - _t = () => "You do not have enough droplets to buy this item.", - pt = () => "Você não tem gotas suficientes para comprar este item.", - wt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? _t() : pt()), - bt = () => "You already have this item. Please refresh the page.", - yt = () => "Você já possui este item. Atualize a página.", - St = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? bt() : yt()), - Tt = () => "Alliance name exceeded the maximum number of characters", - Et = () => "O nome da aliança excedeu o número máximo de caracteres", - vt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Tt() : Et()), - At = () => "Alliance name already taken", - Pt = () => "Já possui uma aliança com esse nome", - xt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? At() : Pt()), - It = () => "Alliance with empty name", - Ot = () => "Aliança com nome vazio", - kt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? It() : Ot()), - Lt = () => "You are already in an alliance", - Ct = () => "Você já está em uma aliança", - Mt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Lt() : Ct()), - qt = () => "You are not allowed to do this", - Nt = () => "Você não tem permissão para fazer isso", - E = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? qt() : Nt()), - Bt = () => "Can't reach the server. Maybe you are without internet connection or the server is down. Try again later", - Dt = () => "Não é possível acessar o servidor. Talvez você esteja sem conexão com a internet ou o servidor esteja fora do ar. Tente novamente mais tarde.", - Ut = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Bt() : Dt()), - Gt = () => "You or someone in your network is making a lot of requests to the server. Try again later.", - Rt = () => "Você ou alguém na sua rede está fazendo muitas solicitações ao servidor. Tente novamente mais tarde.", - ce = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Gt() : Rt()), - $t = () => "No internet access or the servers are offline. Try again later.", - jt = () => "Sem acesso à internet ou os servidores estão fora do ar. Tente novamente mais tarde.", - Ft = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? $t() : jt()), - Jt = () => "We’re currently experiencing high traffic. Some requests may not be processed at this time—please try again later. Thank you for your patience.", - Kt = () => "Estamos enfrentando um volume alto de acessos no momento. Algumas solicitações podem não ser processadas agora — por favor, tente novamente mais tarde. Agradecemos a sua compreensão.", - zt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Jt() : Kt()), - Vt = () => "Refresh your page to get the latest update", - Ht = () => "Recarregue sua página para obter as últimas atualizações", - Wt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Vt() : Ht()), - Yt = () => "Inappropriate content", - Zt = () => "Conteúdo inapropriado", - Qt = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Yt() : Zt()), - Xt = () => "Botting", - en = () => "Uso de bots", - tn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Xt() : en()), - nn = () => "Hate speech", - an = () => "Discurso de Ódio", - rn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? nn() : an()), - sn = () => "Griefing", - on = () => "Griefing", - cn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? sn() : on()), - ln = () => "Doxxing", - dn = () => "Doxxing", - un = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? ln() : dn()), - gn = () => "Leaderboard is temporarily disabled", - fn = () => "O ranking está temporariamente desativado", - v = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? gn() : fn()), - mn = () => "Multi-accounting", - hn = () => "Múltiplas contas", - _n = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? mn() : hn()), - pn = () => "Breaking the rules", - wn = () => "Quebrar as regras", - bn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? pn() : wn()), - yn = () => "Your account has been suspended for breaking the rules", - Sn = () => "Sua conta foi suspensa por quebrar as regras", - Tn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? yn() : Sn()), - En = () => "Your account has been banned for violating the rules", - vn = () => "A sua conta foi banida por quebrar as regras", - An = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? En() : vn()), - Pn = (a) => `Your account has been suspended out until ${a.until}`, - xn = (a) => `A sua conta está suspensa até ${a.until}`, - In = (a, e = {}) => ((e.locale ?? g()) === "en" ? Pn(a) : xn(a)), - On = () => "You are trying to paint with a color you do not own", - kn = () => "Você está tentando pintar com uma cor que não possui", - Ln = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? On() : kn()), - Cn = () => "The new leader must be a member of the alliance", - Mn = () => "O novo líder deve ser um membro da aliança", - qn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Cn() : Mn()), - Nn = () => "The name contains disallowed characters or words. Please choose a different name.", - Bn = () => "O nome contém caracteres ou palavras não permitidas. Por favor, escolha outro nome.", - Dn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Nn() : Bn()), - Un = () => "Invalid discord.", - Gn = () => "Discord inválido.", - Rn = (a = {}, e = {}) => ((e.locale ?? g()) === "en" ? Un() : Gn()), - ha = { griefing: cn(), "multi-accounting": _n(), "hate-speech": rn(), bot: tn(), doxxing: un(), "inappropriate-content": Qt(), other: bn() }, - _a = { doxxing: "text-red-600", "hate-speech": "text-red-600", "inappropriate-content": "text-amber-600", "multi-accounting": "text-amber-600", bot: "text-amber-600", griefing: "text-amber-600", other: "text-blue-600" }, - le = { doxxing: 0, "hate-speech": 1, "inappropriate-content": 2, bot: 3, "multi-accounting": 4, other: 5, griefing: 6 }; -function $n(a) { - const e = atob(a), - t = new Uint8Array(e.length); - for (let n = 0; n < e.length; n++) t[n] = e.charCodeAt(n); - return t; -} -class jn { - constructor(e) { - _(this, "bytes"); - this.bytes = e ?? new Uint8Array(); - } - set(e, t) { - const n = Math.floor(e / 8), - s = e % 8; - if (n >= this.bytes.length) { - const l = new Uint8Array(n + 1), - o = l.length - this.bytes.length; - for (let d = 0; d < this.bytes.length; d++) l[d + o] = this.bytes[d]; - this.bytes = l; - } - const r = this.bytes.length - 1 - n; - t ? (this.bytes[r] = this.bytes[r] | (1 << s)) : (this.bytes[r] = this.bytes[r] & ~(1 << s)); - } - get(e) { - const t = Math.floor(e / 8), - n = e % 8, - s = this.bytes.length; - return t > s ? !1 : (this.bytes[s - 1 - t] & (1 << n)) !== 0; - } -} -var R, $, j, F, J, K, z; -class Fn { - constructor() { - _(this, "channel", new BroadcastChannel("user-channel")); - h(this, R, y()); - h(this, $, y(!0)); - h(this, j, y(Date.now())); - h( - this, - F, - P(() => { - if (!this.data) return; - const e = this.data.charges; - if (e.count > e.max) return e.count; - const t = e.count + Math.max((Le.now - this.lastFetch) / e.cooldownMs, 0); - return Math.min(e.max, t); - }) - ); - h( - this, - J, - P(() => (this.charges !== void 0 && this.data ? (1 - (this.charges % 1)) * this.data.charges.cooldownMs : void 0)) - ); - h( - this, - K, - P(() => { - var e; - return new jn($n(((e = this.data) == null ? void 0 : e.flagsBitmap) ?? "AA==")); - }) - ); - h( - this, - z, - P(() => { - var t; - if (!((t = this.data) != null && t.timeoutUntil)) return; - const e = new Date(this.data.timeoutUntil); - if (!(e.getTime() < Date.now())) return e; - }) - ); - this.channel.onmessage = (e) => { - const t = JSON.parse(e.data); - t.type === "refresh" ? ((this.data = t.data), (this.lastFetch = Date.now())) : t.type === "logout" && (this.data = void 0); - }; - } - get data() { - return p(u(this, R)); - } - set data(e) { - w(u(this, R), e, !0); - } - get loading() { - return p(u(this, $)); - } - set loading(e) { - w(u(this, $), e, !0); - } - get lastFetch() { - return p(u(this, j)); - } - set lastFetch(e) { - w(u(this, j), e); - } - get charges() { - return p(u(this, F)); - } - set charges(e) { - w(u(this, F), e); - } - get cooldown() { - return p(u(this, J)); - } - set cooldown(e) { - w(u(this, J), e); - } - get flagsBitmap() { - return p(u(this, K)); - } - set flagsBitmap(e) { - w(u(this, K), e); - } - get timeoutUntil() { - return p(u(this, z)); - } - set timeoutUntil(e) { - w(u(this, z), e); - } - async refresh() { - try { - return (this.loading = !0), (this.data = await de.me()), (this.lastFetch = Date.now()), this.channel.postMessage(JSON.stringify({ type: "refresh", data: this.data })), Te("userId", { id: this.data.id }), !0; - } catch (e) { - return console.error(e), ge.warning(Ft(), { duration: 1e4 }), !1; - } finally { - this.loading = !1; - } - } - async logout() { - await de.logout(), this.channel.postMessage(JSON.stringify({ type: "logout" })), (this.data = void 0); - } - hasColor(e) { - var n; - return e < 32 ? !0 : ((((n = this.data) == null ? void 0 : n.extraColorsBitmap) ?? 0) & (1 << (e - 32))) !== 0; - } -} -(R = new WeakMap()), ($ = new WeakMap()), (j = new WeakMap()), (F = new WeakMap()), (J = new WeakMap()), (K = new WeakMap()), (z = new WeakMap()); -const X = new Fn(); -class f extends Error { - constructor(e, t) { - super(e), (this.message = e), (this.status = t); - } -} -function Jn(a, e) { - const t = {}; - for (const n of a) { - const s = e(n); - let r = t[s]; - r ? r.push(n) : (t[s] = [n]); - } - return t; -} -function pa(a, e) { - const t = {}; - for (const n of a) { - const s = e(n); - t[s] = n; - } - return t; -} -const Kn = [{ tileSize: 1e3, zoom: 11 }], - zn = 4, - Vn = 6e3, - Hn = [ - { name: "Transparent", rgb: [0, 0, 0] }, - { name: "Black", rgb: [0, 0, 0] }, - { name: "Dark Gray", rgb: [60, 60, 60] }, - { name: "Gray", rgb: [120, 120, 120] }, - { name: "Light Gray", rgb: [210, 210, 210] }, - { name: "White", rgb: [255, 255, 255] }, - { name: "Deep Red", rgb: [96, 0, 24] }, - { name: "Red", rgb: [237, 28, 36] }, - { name: "Orange", rgb: [255, 127, 39] }, - { name: "Gold", rgb: [246, 170, 9] }, - { name: "Yellow", rgb: [249, 221, 59] }, - { name: "Light Yellow", rgb: [255, 250, 188] }, - { name: "Dark Green", rgb: [14, 185, 104] }, - { name: "Green", rgb: [19, 230, 123] }, - { name: "Light Green", rgb: [135, 255, 94] }, - { name: "Dark Teal", rgb: [12, 129, 110] }, - { name: "Teal", rgb: [16, 174, 166] }, - { name: "Light Teal", rgb: [19, 225, 190] }, - { name: "Dark Blue", rgb: [40, 80, 158] }, - { name: "Blue", rgb: [64, 147, 228] }, - { name: "Cyan", rgb: [96, 247, 242] }, - { name: "Indigo", rgb: [107, 80, 246] }, - { name: "Light Indigo", rgb: [153, 177, 251] }, - { name: "Dark Purple", rgb: [120, 12, 153] }, - { name: "Purple", rgb: [170, 56, 185] }, - { name: "Light Purple", rgb: [224, 159, 249] }, - { name: "Dark Pink", rgb: [203, 0, 122] }, - { name: "Pink", rgb: [236, 31, 128] }, - { name: "Light Pink", rgb: [243, 141, 169] }, - { name: "Dark Brown", rgb: [104, 70, 52] }, - { name: "Brown", rgb: [149, 104, 42] }, - { name: "Beige", rgb: [248, 178, 119] }, - { name: "Medium Gray", rgb: [170, 170, 170] }, - { name: "Dark Red", rgb: [165, 14, 30] }, - { name: "Light Red", rgb: [250, 128, 114] }, - { name: "Dark Orange", rgb: [228, 92, 26] }, - { name: "Light Tan", rgb: [214, 181, 148] }, - { name: "Dark Goldenrod", rgb: [156, 132, 49] }, - { name: "Goldenrod", rgb: [197, 173, 49] }, - { name: "Light Goldenrod", rgb: [232, 212, 95] }, - { name: "Dark Olive", rgb: [74, 107, 58] }, - { name: "Olive", rgb: [90, 148, 74] }, - { name: "Light Olive", rgb: [132, 197, 115] }, - { name: "Dark Cyan", rgb: [15, 121, 159] }, - { name: "Light Cyan", rgb: [187, 250, 242] }, - { name: "Light Blue", rgb: [125, 199, 255] }, - { name: "Dark Indigo", rgb: [77, 49, 184] }, - { name: "Dark Slate Blue", rgb: [74, 66, 132] }, - { name: "Slate Blue", rgb: [122, 113, 196] }, - { name: "Light Slate Blue", rgb: [181, 174, 241] }, - { name: "Light Brown", rgb: [219, 164, 99] }, - { name: "Dark Beige", rgb: [209, 128, 81] }, - { name: "Light Beige", rgb: [255, 197, 165] }, - { name: "Dark Peach", rgb: [155, 82, 73] }, - { name: "Peach", rgb: [209, 128, 120] }, - { name: "Light Peach", rgb: [250, 182, 164] }, - { name: "Dark Tan", rgb: [123, 99, 82] }, - { name: "Tan", rgb: [156, 132, 107] }, - { name: "Dark Slate", rgb: [51, 57, 65] }, - { name: "Slate", rgb: [109, 117, 141] }, - { name: "Light Slate", rgb: [179, 185, 209] }, - { name: "Dark Stone", rgb: [109, 100, 63] }, - { name: "Stone", rgb: [148, 140, 107] }, - { name: "Light Stone", rgb: [205, 197, 158] }, - ], - Wn = { needsPhoneVerification: "needs_phone_verification" }, - Yn = { Droplet: {}, "Max. Charge": {}, "Paint Charge": {}, Color: {}, Flag: {}, "Profile Picture": {} }, - Zn = { - 10: { name: "25,000 Droplets", price: 500, isDollar: !0, lookupKey: "droplets_5", items: [{ name: "Droplet", amount: 25e3 }] }, - 20: { name: "78,750 Droplets", price: 1500, isDollar: !0, lookupKey: "droplets_15", items: [{ name: "Droplet", amount: 76750 }] }, - 30: { name: "165,000 Droplets", price: 3e3, isDollar: !0, lookupKey: "droplets_30", items: [{ name: "Droplet", amount: 165e3 }] }, - 40: { name: "287,500 Droplets", price: 5e3, isDollar: !0, lookupKey: "droplets_50", items: [{ name: "Droplet", amount: 287500 }] }, - 50: { name: "450,000 Droplets", price: 7500, isDollar: !0, lookupKey: "droplets_75", items: [{ name: "Droplet", amount: 45e4 }] }, - 60: { name: "625,000 Droplets", price: 1e4, isDollar: !0, lookupKey: "droplets_100", items: [{ name: "Droplet", amount: 625e3 }] }, - 70: { name: "+5 Max. Charges", price: 500, isDollar: !1, items: [{ name: "Max. Charge", amount: 5 }] }, - 80: { name: "+30 Paint Charges", price: 500, isDollar: !1, items: [{ name: "Paint Charge", amount: 30 }] }, - 100: { name: "Unlock Color", price: 2e3, isDollar: !1, items: [{ name: "Color", amount: 1 }] }, - 110: { name: "Flag", price: 2e4, isDollar: !1, items: [{ name: "Flag", amount: 1 }] }, - 120: { name: "Profile Picture", price: 2e4, isDollar: !1, items: [{ name: "Profile Picture", amount: 1 }] }, - }, - Qn = JSON.parse( - `[{"id":1,"name":"Afghanistan","code":"AF","flag":"🇦🇫"},{"id":2,"name":"Albania","code":"AL","flag":"🇦🇱"},{"id":3,"name":"Algeria","code":"DZ","flag":"🇩🇿"},{"id":4,"name":"American Samoa","code":"AS","flag":"🇦🇸"},{"id":5,"name":"Andorra","code":"AD","flag":"🇦🇩"},{"id":6,"name":"Angola","code":"AO","flag":"🇦🇴"},{"id":7,"name":"Anguilla","code":"AI","flag":"🇦🇮"},{"id":8,"name":"Antarctica","code":"AQ","flag":"🇦🇶"},{"id":9,"name":"Antigua and Barbuda","code":"AG","flag":"🇦🇬"},{"id":10,"name":"Argentina","code":"AR","flag":"🇦🇷"},{"id":11,"name":"Armenia","code":"AM","flag":"🇦🇲"},{"id":12,"name":"Aruba","code":"AW","flag":"🇦🇼"},{"id":13,"name":"Australia","code":"AU","flag":"🇦🇺"},{"id":14,"name":"Austria","code":"AT","flag":"🇦🇹"},{"id":15,"name":"Azerbaijan","code":"AZ","flag":"🇦🇿"},{"id":16,"name":"Bahamas","code":"BS","flag":"🇧🇸"},{"id":17,"name":"Bahrain","code":"BH","flag":"🇧🇭"},{"id":18,"name":"Bangladesh","code":"BD","flag":"🇧🇩"},{"id":19,"name":"Barbados","code":"BB","flag":"🇧🇧"},{"id":20,"name":"Belarus","code":"BY","flag":"🇧🇾"},{"id":21,"name":"Belgium","code":"BE","flag":"🇧🇪"},{"id":22,"name":"Belize","code":"BZ","flag":"🇧🇿"},{"id":23,"name":"Benin","code":"BJ","flag":"🇧🇯"},{"id":24,"name":"Bermuda","code":"BM","flag":"🇧🇲"},{"id":25,"name":"Bhutan","code":"BT","flag":"🇧🇹"},{"id":26,"name":"Bolivia","code":"BO","flag":"🇧🇴"},{"id":27,"name":"Bonaire","code":"BQ","flag":"🇧🇶"},{"id":28,"name":"Bosnia and Herzegovina","code":"BA","flag":"🇧🇦"},{"id":29,"name":"Botswana","code":"BW","flag":"🇧🇼"},{"id":30,"name":"Bouvet Island","code":"BV","flag":"🇧🇻"},{"id":31,"name":"Brazil","code":"BR","flag":"🇧🇷"},{"id":32,"name":"British Indian Ocean Territory","code":"IO","flag":"🇮🇴"},{"id":33,"name":"Brunei Darussalam","code":"BN","flag":"🇧🇳"},{"id":34,"name":"Bulgaria","code":"BG","flag":"🇧🇬"},{"id":35,"name":"Burkina Faso","code":"BF","flag":"🇧🇫"},{"id":36,"name":"Burundi","code":"BI","flag":"🇧🇮"},{"id":37,"name":"Cabo Verde","code":"CV","flag":"🇨🇻"},{"id":38,"name":"Cambodia","code":"KH","flag":"🇰🇭"},{"id":39,"name":"Cameroon","code":"CM","flag":"🇨🇲"},{"id":40,"name":"Canada","code":"CA","flag":"🇨🇦"},{"id":41,"name":"Cayman Islands","code":"KY","flag":"🇰🇾"},{"id":42,"name":"Central African Republic","code":"CF","flag":"🇨🇫"},{"id":43,"name":"Chad","code":"TD","flag":"🇹🇩"},{"id":44,"name":"Chile","code":"CL","flag":"🇨🇱"},{"id":45,"name":"China","code":"CN","flag":"🇨🇳"},{"id":46,"name":"Christmas Island","code":"CX","flag":"🇨🇽"},{"id":47,"name":"Cocos (Keeling) Islands","code":"CC","flag":"🇨🇨"},{"id":48,"name":"Colombia","code":"CO","flag":"🇨🇴"},{"id":49,"name":"Comoros","code":"KM","flag":"🇰🇲"},{"id":50,"name":"Congo","code":"CG","flag":"🇨🇬"},{"id":51,"name":"Cook Islands","code":"CK","flag":"🇨🇰"},{"id":52,"name":"Costa Rica","code":"CR","flag":"🇨🇷"},{"id":53,"name":"Croatia","code":"HR","flag":"🇭🇷"},{"id":54,"name":"Cuba","code":"CU","flag":"🇨🇺"},{"id":55,"name":"Curaçao","code":"CW","flag":"🇨🇼"},{"id":56,"name":"Cyprus","code":"CY","flag":"🇨🇾"},{"id":57,"name":"Czechia","code":"CZ","flag":"🇨🇿"},{"id":58,"name":"Côte d'Ivoire","code":"CI","flag":"🇨🇮"},{"id":59,"name":"Denmark","code":"DK","flag":"🇩🇰"},{"id":60,"name":"Djibouti","code":"DJ","flag":"🇩🇯"},{"id":61,"name":"Dominica","code":"DM","flag":"🇩🇲"},{"id":62,"name":"Dominican Republic","code":"DO","flag":"🇩🇴"},{"id":63,"name":"Ecuador","code":"EC","flag":"🇪🇨"},{"id":64,"name":"Egypt","code":"EG","flag":"🇪🇬"},{"id":65,"name":"El Salvador","code":"SV","flag":"🇸🇻"},{"id":66,"name":"Equatorial Guinea","code":"GQ","flag":"🇬🇶"},{"id":67,"name":"Eritrea","code":"ER","flag":"🇪🇷"},{"id":68,"name":"Estonia","code":"EE","flag":"🇪🇪"},{"id":69,"name":"Eswatini","code":"SZ","flag":"🇸🇿"},{"id":70,"name":"Ethiopia","code":"ET","flag":"🇪🇹"},{"id":71,"name":"Falkland Islands (Malvinas)","code":"FK","flag":"🇫🇰"},{"id":72,"name":"Faroe Islands","code":"FO","flag":"🇫🇴"},{"id":73,"name":"Fiji","code":"FJ","flag":"🇫🇯"},{"id":74,"name":"Finland","code":"FI","flag":"🇫🇮"},{"id":75,"name":"France","code":"FR","flag":"🇫🇷"},{"id":76,"name":"French Guiana","code":"GF","flag":"🇬🇫"},{"id":77,"name":"French Polynesia","code":"PF","flag":"🇵🇫"},{"id":78,"name":"French Southern Territories","code":"TF","flag":"🇹🇫"},{"id":79,"name":"Gabon","code":"GA","flag":"🇬🇦"},{"id":80,"name":"Gambia","code":"GM","flag":"🇬🇲"},{"id":81,"name":"Georgia","code":"GE","flag":"🇬🇪"},{"id":82,"name":"Germany","code":"DE","flag":"🇩🇪"},{"id":83,"name":"Ghana","code":"GH","flag":"🇬🇭"},{"id":84,"name":"Gibraltar","code":"GI","flag":"🇬🇮"},{"id":85,"name":"Greece","code":"GR","flag":"🇬🇷"},{"id":86,"name":"Greenland","code":"GL","flag":"🇬🇱"},{"id":87,"name":"Grenada","code":"GD","flag":"🇬🇩"},{"id":88,"name":"Guadeloupe","code":"GP","flag":"🇬🇵"},{"id":89,"name":"Guam","code":"GU","flag":"🇬🇺"},{"id":90,"name":"Guatemala","code":"GT","flag":"🇬🇹"},{"id":91,"name":"Guernsey","code":"GG","flag":"🇬🇬"},{"id":92,"name":"Guinea","code":"GN","flag":"🇬🇳"},{"id":93,"name":"Guinea-Bissau","code":"GW","flag":"🇬🇼"},{"id":94,"name":"Guyana","code":"GY","flag":"🇬🇾"},{"id":95,"name":"Haiti","code":"HT","flag":"🇭🇹"},{"id":96,"name":"Heard Island and McDonald Islands","code":"HM","flag":"🇭🇲"},{"id":97,"name":"Honduras","code":"HN","flag":"🇭🇳"},{"id":98,"name":"Hong Kong","code":"HK","flag":"🇭🇰"},{"id":99,"name":"Hungary","code":"HU","flag":"🇭🇺"},{"id":100,"name":"Iceland","code":"IS","flag":"🇮🇸"},{"id":101,"name":"India","code":"IN","flag":"🇮🇳"},{"id":102,"name":"Indonesia","code":"ID","flag":"🇮🇩"},{"id":103,"name":"Iran","code":"IR","flag":"🇮🇷"},{"id":104,"name":"Iraq","code":"IQ","flag":"🇮🇶"},{"id":105,"name":"Ireland","code":"IE","flag":"🇮🇪"},{"id":106,"name":"Isle of Man","code":"IM","flag":"🇮🇲"},{"id":107,"name":"Israel","code":"IL","flag":"🇮🇱"},{"id":108,"name":"Italy","code":"IT","flag":"🇮🇹"},{"id":109,"name":"Jamaica","code":"JM","flag":"🇯🇲"},{"id":110,"name":"Japan","code":"JP","flag":"🇯🇵"},{"id":111,"name":"Jersey","code":"JE","flag":"🇯🇪"},{"id":112,"name":"Jordan","code":"JO","flag":"🇯🇴"},{"id":113,"name":"Kazakhstan","code":"KZ","flag":"🇰🇿"},{"id":114,"name":"Kenya","code":"KE","flag":"🇰🇪"},{"id":115,"name":"Kiribati","code":"KI","flag":"🇰🇮"},{"id":116,"name":"Kosovo","code":"XK","flag":"🇽🇰"},{"id":117,"name":"Kuwait","code":"KW","flag":"🇰🇼"},{"id":118,"name":"Kyrgyzstan","code":"KG","flag":"🇰🇬"},{"id":119,"name":"Laos","code":"LA","flag":"🇱🇦"},{"id":120,"name":"Latvia","code":"LV","flag":"🇱🇻"},{"id":121,"name":"Lebanon","code":"LB","flag":"🇱🇧"},{"id":122,"name":"Lesotho","code":"LS","flag":"🇱🇸"},{"id":123,"name":"Liberia","code":"LR","flag":"🇱🇷"},{"id":124,"name":"Libya","code":"LY","flag":"🇱🇾"},{"id":125,"name":"Liechtenstein","code":"LI","flag":"🇱🇮"},{"id":126,"name":"Lithuania","code":"LT","flag":"🇱🇹"},{"id":127,"name":"Luxembourg","code":"LU","flag":"🇱🇺"},{"id":128,"name":"Macao","code":"MO","flag":"🇲🇴"},{"id":129,"name":"Madagascar","code":"MG","flag":"🇲🇬"},{"id":130,"name":"Malawi","code":"MW","flag":"🇲🇼"},{"id":131,"name":"Malaysia","code":"MY","flag":"🇲🇾"},{"id":132,"name":"Maldives","code":"MV","flag":"🇲🇻"},{"id":133,"name":"Mali","code":"ML","flag":"🇲🇱"},{"id":134,"name":"Malta","code":"MT","flag":"🇲🇹"},{"id":135,"name":"Marshall Islands","code":"MH","flag":"🇲🇭"},{"id":136,"name":"Martinique","code":"MQ","flag":"🇲🇶"},{"id":137,"name":"Mauritania","code":"MR","flag":"🇲🇷"},{"id":138,"name":"Mauritius","code":"MU","flag":"🇲🇺"},{"id":139,"name":"Mayotte","code":"YT","flag":"🇾🇹"},{"id":140,"name":"Mexico","code":"MX","flag":"🇲🇽"},{"id":141,"name":"Micronesia","code":"FM","flag":"🇫🇲"},{"id":142,"name":"Moldova","code":"MD","flag":"🇲🇩"},{"id":143,"name":"Monaco","code":"MC","flag":"🇲🇨"},{"id":144,"name":"Mongolia","code":"MN","flag":"🇲🇳"},{"id":145,"name":"Montenegro","code":"ME","flag":"🇲🇪"},{"id":146,"name":"Montserrat","code":"MS","flag":"🇲🇸"},{"id":147,"name":"Morocco","code":"MA","flag":"🇲🇦"},{"id":148,"name":"Mozambique","code":"MZ","flag":"🇲🇿"},{"id":149,"name":"Myanmar","code":"MM","flag":"🇲🇲"},{"id":150,"name":"Namibia","code":"NA","flag":"🇳🇦"},{"id":151,"name":"Nauru","code":"NR","flag":"🇳🇷"},{"id":152,"name":"Nepal","code":"NP","flag":"🇳🇵"},{"id":153,"name":"Netherlands","code":"NL","flag":"🇳🇱"},{"id":154,"name":"New Caledonia","code":"NC","flag":"🇳🇨"},{"id":155,"name":"New Zealand","code":"NZ","flag":"🇳🇿"},{"id":156,"name":"Nicaragua","code":"NI","flag":"🇳🇮"},{"id":157,"name":"Niger","code":"NE","flag":"🇳🇪"},{"id":158,"name":"Nigeria","code":"NG","flag":"🇳🇬"},{"id":159,"name":"Niue","code":"NU","flag":"🇳🇺"},{"id":160,"name":"Norfolk Island","code":"NF","flag":"🇳🇫"},{"id":161,"name":"North Korea","code":"KP","flag":"🇰🇵"},{"id":162,"name":"North Macedonia","code":"MK","flag":"🇲🇰"},{"id":163,"name":"Northern Mariana Islands","code":"MP","flag":"🇲🇵"},{"id":164,"name":"Norway","code":"NO","flag":"🇳🇴"},{"id":165,"name":"Oman","code":"OM","flag":"🇴🇲"},{"id":166,"name":"Pakistan","code":"PK","flag":"🇵🇰"},{"id":167,"name":"Palau","code":"PW","flag":"🇵🇼"},{"id":168,"name":"Palestine","code":"PS","flag":"🇵🇸"},{"id":169,"name":"Panama","code":"PA","flag":"🇵🇦"},{"id":170,"name":"Papua New Guinea","code":"PG","flag":"🇵🇬"},{"id":171,"name":"Paraguay","code":"PY","flag":"🇵🇾"},{"id":172,"name":"Peru","code":"PE","flag":"🇵🇪"},{"id":173,"name":"Philippines","code":"PH","flag":"🇵🇭"},{"id":174,"name":"Pitcairn","code":"PN","flag":"🇵🇳"},{"id":175,"name":"Poland","code":"PL","flag":"🇵🇱"},{"id":176,"name":"Portugal","code":"PT","flag":"🇵🇹"},{"id":177,"name":"Puerto Rico","code":"PR","flag":"🇵🇷"},{"id":178,"name":"Qatar","code":"QA","flag":"🇶🇦"},{"id":179,"name":"Republic of the Congo","code":"CD","flag":"🇨🇩"},{"id":180,"name":"Romania","code":"RO","flag":"🇷🇴"},{"id":181,"name":"Russia","code":"RU","flag":"🇷🇺"},{"id":182,"name":"Rwanda","code":"RW","flag":"🇷🇼"},{"id":183,"name":"Réunion","code":"RE","flag":"🇷🇪"},{"id":184,"name":"Saint Barthélemy","code":"BL","flag":"🇧🇱"},{"id":185,"name":"Saint Helena","code":"SH","flag":"🇸🇭"},{"id":186,"name":"Saint Kitts and Nevis","code":"KN","flag":"🇰🇳"},{"id":187,"name":"Saint Lucia","code":"LC","flag":"🇱🇨"},{"id":188,"name":"Saint Martin (French part)","code":"MF","flag":"🇲🇫"},{"id":189,"name":"Saint Pierre and Miquelon","code":"PM","flag":"🇵🇲"},{"id":190,"name":"Saint Vincent and the Grenadines","code":"VC","flag":"🇻🇨"},{"id":191,"name":"Samoa","code":"WS","flag":"🇼🇸"},{"id":192,"name":"San Marino","code":"SM","flag":"🇸🇲"},{"id":193,"name":"Sao Tome and Principe","code":"ST","flag":"🇸🇹"},{"id":194,"name":"Saudi Arabia","code":"SA","flag":"🇸🇦"},{"id":195,"name":"Senegal","code":"SN","flag":"🇸🇳"},{"id":196,"name":"Serbia","code":"RS","flag":"🇷🇸"},{"id":197,"name":"Seychelles","code":"SC","flag":"🇸🇨"},{"id":198,"name":"Sierra Leone","code":"SL","flag":"🇸🇱"},{"id":199,"name":"Singapore","code":"SG","flag":"🇸🇬"},{"id":200,"name":"Sint Maarten (Dutch part)","code":"SX","flag":"🇸🇽"},{"id":201,"name":"Slovakia","code":"SK","flag":"🇸🇰"},{"id":202,"name":"Slovenia","code":"SI","flag":"🇸🇮"},{"id":203,"name":"Solomon Islands","code":"SB","flag":"🇸🇧"},{"id":204,"name":"Somalia","code":"SO","flag":"🇸🇴"},{"id":205,"name":"South Africa","code":"ZA","flag":"🇿🇦"},{"id":206,"name":"South Georgia and the South Sandwich Islands","code":"GS","flag":"🇬🇸"},{"id":207,"name":"South Korea","code":"KR","flag":"🇰🇷"},{"id":208,"name":"South Sudan","code":"SS","flag":"🇸🇸"},{"id":209,"name":"Spain","code":"ES","flag":"🇪🇸"},{"id":210,"name":"Sri Lanka","code":"LK","flag":"🇱🇰"},{"id":211,"name":"Sudan","code":"SD","flag":"🇸🇩"},{"id":212,"name":"Suriname","code":"SR","flag":"🇸🇷"},{"id":213,"name":"Svalbard and Jan Mayen","code":"SJ","flag":"🇸🇯"},{"id":214,"name":"Sweden","code":"SE","flag":"🇸🇪"},{"id":215,"name":"Switzerland","code":"CH","flag":"🇨🇭"},{"id":216,"name":"Syrian Arab Republic","code":"SY","flag":"🇸🇾"},{"id":217,"name":"Taiwan","code":"TW","flag":"🇹🇼"},{"id":218,"name":"Tajikistan","code":"TJ","flag":"🇹🇯"},{"id":219,"name":"Tanzania","code":"TZ","flag":"🇹🇿"},{"id":220,"name":"Thailand","code":"TH","flag":"🇹🇭"},{"id":221,"name":"Timor-Leste","code":"TL","flag":"🇹🇱"},{"id":222,"name":"Togo","code":"TG","flag":"🇹🇬"},{"id":223,"name":"Tokelau","code":"TK","flag":"🇹🇰"},{"id":224,"name":"Tonga","code":"TO","flag":"🇹🇴"},{"id":225,"name":"Trinidad and Tobago","code":"TT","flag":"🇹🇹"},{"id":226,"name":"Tunisia","code":"TN","flag":"🇹🇳"},{"id":227,"name":"Turkmenistan","code":"TM","flag":"🇹🇲"},{"id":228,"name":"Turks and Caicos Islands","code":"TC","flag":"🇹🇨"},{"id":229,"name":"Tuvalu","code":"TV","flag":"🇹🇻"},{"id":230,"name":"Türkiye","code":"TR","flag":"🇹🇷"},{"id":231,"name":"Uganda","code":"UG","flag":"🇺🇬"},{"id":232,"name":"Ukraine","code":"UA","flag":"🇺🇦"},{"id":233,"name":"United Arab Emirates","code":"AE","flag":"🇦🇪"},{"id":234,"name":"United Kingdom","code":"GB","flag":"🇬🇧"},{"id":235,"name":"United States","code":"US","flag":"🇺🇸"},{"id":236,"name":"United States Minor Outlying Islands","code":"UM","flag":"🇺🇲"},{"id":237,"name":"Uruguay","code":"UY","flag":"🇺🇾"},{"id":238,"name":"Uzbekistan","code":"UZ","flag":"🇺🇿"},{"id":239,"name":"Vanuatu","code":"VU","flag":"🇻🇺"},{"id":240,"name":"Vatican City","code":"VA","flag":"🇻🇦"},{"id":241,"name":"Venezuela","code":"VE","flag":"🇻🇪"},{"id":242,"name":"Viet Nam","code":"VN","flag":"🇻🇳"},{"id":243,"name":"Virgin Islands","code":"VG","flag":"🇻🇬"},{"id":244,"name":"Virgin Islands","code":"VI","flag":"🇻🇮"},{"id":245,"name":"Wallis and Futuna","code":"WF","flag":"🇼🇫"},{"id":246,"name":"Western Sahara","code":"EH","flag":"🇪🇭"},{"id":247,"name":"Yemen","code":"YE","flag":"🇾🇪"},{"id":248,"name":"Zambia","code":"ZM","flag":"🇿🇲"},{"id":249,"name":"Zimbabwe","code":"ZW","flag":"🇿🇼"},{"id":250,"name":"Åland Islands","code":"AX","flag":"🇦🇽"},{"id":251,"name":"Canary Islands","code":"IC","flag":"🇮🇨"}]` - ), - te = { seasons: Kn, regionSize: zn, refreshIntervalMs: Vn, colors: Hn, errors: Wn, items: Yn, products: Zn, countries: Qn }, - Xn = te, - pe = te.seasons.length - 1, - wa = te.seasons[pe].zoom, - ba = te.seasons[pe].tileSize; -function ya(a) { - return Xn.countries[a - 1]; -} -function ea(a) { - return X.data ? X.data.experiments[a] ?? null : null; -} -function Sa(a) { - var e, t; - return ((t = (e = X.data) == null ? void 0 : e.experiments[a]) == null ? void 0 : t.enabled) ?? !0; -} -var V; -class ta { - constructor(e) { - h(this, V, y(!0)); - this.url = e; - } - get online() { - return p(u(this, V)); - } - set online(e) { - w(u(this, V), e, !0); - } - async paint(e, t, n) { - const s = Jn(e, (d) => `t=(${d.tile[0]},${d.tile[1]}),s=${d.season}`), - r = ea("2025-09_pawtect"); - if (!r) throw new Error("paint request while pawtect experiment not found"); - const o = ( - await Promise.all( - Object.values(s).map((d) => { - const [c, S] = d[0].tile, - b = d[0].season, - we = { colors: d.map((ne) => ne.colorIdx), coords: d.flatMap((ne) => ne.pixel), t, fp: n }, - ae = JSON.stringify(we); - return this.request(`/s${b}/pixel/${c}/${S}`, { method: "POST", body: ae, headers: { "x-pawtect-token": r.variant !== "disabled" ? Be(ae) : "", "x-pawtect-variant": r.variant }, credentials: "include" }); - }) - ) - ).filter((d) => d.status !== 200); - if (o.length) { - const d = o[0]; - if (d.status === 401) throw new Error(Ke()); - if (d.status === 403) { - if (d.headers.get("cf-mitigated") === "challenge") throw new Error(zt()); - const c = await d.json(); - if ((c == null ? void 0 : c.error) === "refresh") throw new Error(Wt()); - if ((c == null ? void 0 : c.error) === "color-not-owned") throw new Error(Ln()); - X.refresh(); - } else if (d.status === 451) { - const c = await o[0].json(); - c == null || c.err; - const S = c == null ? void 0 : c.suspension; - if (S === "ban") throw new Error(An()); - if (S === "timeout") { - const b = new Date(Date.now() + ((c == null ? void 0 : c.durationMs) ?? 0)); - throw new Error(In({ until: b.toLocaleString() })); - } else throw new Error(i()); - } else throw new Error(i()); - } - } - async getPixelInfo({ season: e, tile: [t, n], pixel: [s, r], isModerator: l = !1 }) { - const o = new URLSearchParams(); - o.set("x", String(s)), o.set("y", String(r)); - const d = await this.request(`${l ? "/moderator" : ""}/s${e}/pixel/${t}/${n}?${o.toString()}`, { credentials: l ? "include" : void 0 }); - if (d.status !== 200) { - const c = await d.text(); - throw new Error(He({ err: c })); - } - return d.json(); - } - async getPixelAreaInfo({ season: e, tile: [t, n], p0: [s, r], p1: [l, o] }) { - const d = await this.request(`/moderator/pixel-area/s${e}/${t}/${n}?x0=${s}&y0=${r}&x1=${l}&y1=${o}`, { credentials: "include" }); - if (d.status !== 200) { - const c = await d.text(); - throw (console.error("Error while fetching pixel area info", c), new Error(i())); - } - return d.json(); - } - async me() { - const e = await this.request("/me", { credentials: "include" }); - if (e.status === 200) return await e.json(); - } - async logout() { - const e = await this.request("/auth/logout", { method: "POST", credentials: "include" }); - if (e.status !== 200) throw new Error(await e.text()); - return await e.json(); - } - async refreshPaymentSession(e) { - return (await this.request(`/payment/refresh-session/${encodeURIComponent(e)}`, { method: "POST", credentials: "include" })).status === 200; - } - async getOtpCooldown() { - const e = await this.request("/otp/cooldown", { credentials: "include" }); - if (e.status !== 200) throw new Error(i()); - return await e.json(); - } - async sendOtp(e) { - const t = await this.request("/otp/send", { method: "POST", credentials: "include", body: JSON.stringify({ phone: e }) }); - if (t.status === 400) throw new Error(Ze()); - if (t.status === 403) throw new Error(et()); - if (t.status === 429) throw new Error(at()); - if (t.status !== 200) throw new Error(i()); - return await t.json(); - } - async verifyOtp(e) { - const t = await this.request("/otp/verify", { method: "POST", credentials: "include", body: JSON.stringify({ code: e }) }); - if (t.status === 400) throw new Error(ot()); - if (t.status !== 200) throw new Error(i()); - return await t.json(); - } - async updateMe(e) { - const t = await this.request("/me/update", { method: "POST", credentials: "include", body: JSON.stringify(e) }); - if (t.status === 400) { - const n = await t.json(); - throw (n == null ? void 0 : n.error) === "invalid_name" ? new Error(Dn()) : (n == null ? void 0 : n.error) === "invalid_discord" ? new Error(Rn()) : new Error(n == null ? void 0 : n.error); - } else if (t.status !== 200) throw new Error(i()); - } - async deleteMe() { - if ((await this.request("/me/delete", { method: "POST", credentials: "include" })).status !== 200) throw new Error(i()); - } - async favoriteLocation(e) { - const t = await this.request("/favorite-location", { method: "POST", body: JSON.stringify({ latitude: e[0], longitude: e[1] }), credentials: "include" }); - if (t.status === 403) throw new Error(lt()); - if (t.status !== 200) throw new Error(i()); - } - async deleteFavoriteLocation(e) { - if ((await this.request("/favorite-location/delete", { method: "POST", body: JSON.stringify({ id: e }), credentials: "include" })).status !== 200) throw new Error(i()); - } - async updateFavoriteLocation(e, t) { - const n = await this.request("/favorite-location/update", { method: "POST", body: JSON.stringify({ id: e, name: t }), credentials: "include" }); - if (n.status === 400) throw new Error(gt()); - if (n.status !== 200) throw new Error(i()); - } - async leaderboardPlayers(e) { - const t = await this.request(`/leaderboard/player/${e}`); - if (t.status !== 200) throw new Error(v()); - return t.json(); - } - async leaderboardAlliances(e) { - const t = await this.request(`/leaderboard/alliance/${e}`); - if (t.status !== 200) throw new Error(v()); - return t.json(); - } - async leaderboardRegions(e, t = 0) { - const n = await this.request(`/leaderboard/region/${e}/${t}`); - if (n.status === 200) return n.json(); - throw new Error(v()); - } - async leaderboardRegionPlayers(e, t) { - const n = await this.request(`/leaderboard/region/players/${e}/${t}`); - if (n.status === 200) return n.json(); - throw new Error(v()); - } - async leaderboardRegionAlliances(e, t) { - const n = await this.request(`/leaderboard/region/alliances/${e}/${t}`); - if (n.status === 200) return n.json(); - throw new Error(v()); - } - async leaderboardCountries(e) { - const t = await this.request(`/leaderboard/country/${e}`, { credentials: "include" }); - if (t.status === 200) return t.json(); - throw new Error(v()); - } - async getRandomTile(e) { - const t = await this.request(`/s${e}/tile/random`); - if (t.status !== 200) throw new Error(i()); - return t.json(); - } - async purchase(e) { - const t = await this.request("/purchase", { method: "POST", credentials: "include", body: JSON.stringify({ product: e }) }); - if (t.status !== 200) throw t.status === 404 ? new Error(ht()) : t.status === 403 ? new Error(wt()) : t.status === 409 ? new Error(St()) : new Error(i()); - } - async getAlliance() { - const e = await this.request("/alliance", { credentials: "include" }); - if (e.status === 200) return e.json(); - if (e.status === 404) return; - throw new Error(i()); - } - async createAlliance(e) { - const t = await this.request("/alliance", { method: "POST", credentials: "include", body: JSON.stringify({ name: e }) }); - if (t.status === 200) return t.json(); - if (t.status === 400) { - const n = await t.json(); - throw n.error === "max_characters" ? new Error(vt()) : n.error === "name_taken" ? new Error(xt()) : n.error == "empty_name" ? new Error(kt()) : new Error(i()); - } else throw t.status === 403 ? new Error(Mt()) : new Error(i()); - } - async leaveAlliance() { - if ((await this.request("/alliance/leave", { method: "POST", credentials: "include" })).status !== 200) throw new Error(i()); - } - async updateAllianceDescription(e) { - const t = await this.request("/alliance/update-description", { method: "POST", credentials: "include", body: JSON.stringify({ description: e }) }); - if (t.status !== 200) throw t.status === 403 ? new Error(E()) : new Error(i()); - } - async updateAllianceHeadquarters(e, t) { - const n = await this.request("/alliance/update-headquarters", { method: "POST", credentials: "include", body: JSON.stringify({ latitude: e, longitude: t }) }); - if (n.status !== 200) throw n.status === 403 ? new Error(E()) : new Error(i()); - } - async allianceLeaderboard(e) { - const t = await this.request(`/alliance/leaderboard/${e}`, { credentials: "include" }); - if (t.status === 200) return t.json(); - throw t.status === 403 ? new Error(E()) : new Error(v()); - } - async getAllianceInvites() { - const e = await this.request("/alliance/invites", { credentials: "include" }); - if (e.status === 200) return e.json(); - throw e.status === 403 ? new Error(E()) : new Error(i()); - } - async joinAlliance(e) { - switch ((await this.request(`/alliance/join/${e}`, { credentials: "include" })).status) { - case 200: - return "success"; - case 208: - return "in-another-alliance"; - case 401: - return "not-logged-in"; - case 403: - return "banned"; - case 400: - case 404: - return "invalid-invite"; - default: - return "error"; - } - } - async getAllianceMembers(e) { - const t = await this.request(`/alliance/members/${e}`, { credentials: "include" }); - if (t.status === 200) return t.json(); - throw new Error(i()); - } - async getAllianceBannedMembers(e) { - const t = await this.request(`/alliance/members/banned/${e}`, { credentials: "include" }); - if (t.status === 200) return t.json(); - throw new Error(i()); - } - async getAllianceById(e) { - const t = await this.request(`/admin/alliances/${e}`, { method: "GET", credentials: "include" }); - if (t.status === 404) return; - if (t.status !== 200) throw new f(i(), t.status); - const n = await t.json(); - return { id: Number(n.id), name: String(n.name), pixelsPainted: Number((n == null ? void 0 : n.pixels_painted) ?? 0) }; - } - async searchAlliance(e) { - const t = new URLSearchParams({ q: e }), - n = await this.request(`/admin/alliances/search?${t.toString()}`, { method: "GET", credentials: "include" }); - if (n.status !== 200) throw new f(i(), n.status); - const s = await n.json(); - return (Array.isArray(s) ? s : []).map((r) => ({ id: Number(r.id), name: String(r.name ?? ""), pixelsPainted: Number((r == null ? void 0 : r.pixels_painted) ?? 0) })); - } - async searchAlliances(e) { - return this.searchAlliance(e); - } - async getAllianceFull(e) { - const t = await this.request(`/admin/alliances/${e}/full`, { method: "GET", credentials: "include" }); - if (t.status === 404) return null; - if (t.status !== 200) throw new f(i(), t.status); - const n = await t.json(), - s = Array.isArray(n == null ? void 0 : n.members) ? n.members : []; - return { - id: Number(n == null ? void 0 : n.id), - name: String((n == null ? void 0 : n.name) ?? ""), - description: (n == null ? void 0 : n.description) ?? null, - ownerId: Number((n == null ? void 0 : n.ownerId) ?? (n == null ? void 0 : n.created_by)), - ownerName: (n == null ? void 0 : n.ownerName) ?? null, - hqName: (n == null ? void 0 : n.hqName) ?? null, - hqLatitude: (n == null ? void 0 : n.hqLatitude) ?? (n == null ? void 0 : n.hq_latitude) ?? null, - hqLongitude: (n == null ? void 0 : n.hqLongitude) ?? (n == null ? void 0 : n.hq_longitude) ?? null, - pixelsPainted: Number((n == null ? void 0 : n.pixelsPainted) ?? (n == null ? void 0 : n.pixels_painted) ?? 0), - membersCount: Number((n == null ? void 0 : n.membersCount) ?? s.length), - members: s.map((r) => ({ - id: Number(r == null ? void 0 : r.id), - name: String((r == null ? void 0 : r.name) ?? `#${r == null ? void 0 : r.id}`), - picture: (r == null ? void 0 : r.picture) ?? null, - pixelsPainted: Number((r == null ? void 0 : r.pixelsPainted) ?? (r == null ? void 0 : r.pixels_painted) ?? 0), - lastPixelLatitude: (r == null ? void 0 : r.lastPixelLatitude) ?? null, - lastPixelLongitude: (r == null ? void 0 : r.lastPixelLongitude) ?? null, - role: (r == null ? void 0 : r.alliance_role) === "admin" || (r == null ? void 0 : r.role) === "admin" ? "admin" : "member", - })), - }; - } - async getAdminAllianceMembers(e, t) { - const n = new URLSearchParams({ page: String(t.page), pageSize: String(t.pageSize) }), - s = await this.request(`/admin/alliances/${e}/members?${n.toString()}`, { method: "GET", credentials: "include" }); - if (s.status === 404) return { members: [], total: 0 }; - if (s.status !== 200) throw new f(i(), s.status); - const r = await s.json(), - l = Array.isArray(r == null ? void 0 : r.members) ? r.members : []; - return { - members: l.map((o) => ({ - id: Number(o == null ? void 0 : o.id), - name: String((o == null ? void 0 : o.name) ?? `#${o == null ? void 0 : o.id}`), - picture: (o == null ? void 0 : o.picture) ?? null, - pixelsPainted: Number((o == null ? void 0 : o.pixelsPainted) ?? (o == null ? void 0 : o.pixels_painted) ?? 0), - lastPixelLatitude: (o == null ? void 0 : o.lastPixelLatitude) ?? null, - lastPixelLongitude: (o == null ? void 0 : o.lastPixelLongitude) ?? null, - role: (o == null ? void 0 : o.alliance_role) === "admin" || (o == null ? void 0 : o.role) === "admin" ? "admin" : "member", - })), - total: Number((r == null ? void 0 : r.total) ?? l.length), - }; - } - async renameAlliance(e, t) { - const n = await this.request(`/admin/alliances/${e}/rename`, { method: "POST", credentials: "include", body: JSON.stringify({ name: t }) }); - if (n.status === 400) { - const s = await n.json().catch(() => ({})); - throw new Error((s == null ? void 0 : s.error) ?? i()); - } else if (n.status !== 200) throw new f(i(), n.status); - } - async changeAllianceLeader(e, t) { - const n = await this.request(`/admin/alliances/${e}/leader`, { method: "POST", credentials: "include", body: JSON.stringify({ newLeaderUserId: t }) }); - if (n.status === 400) { - const s = await n.json(); - throw (s == null ? void 0 : s.error) === "user_not_in_alliance" ? new Error(qn()) : new Error(i()); - } else if (n.status !== 200) throw new f(i(), n.status); - } - async banAllAllianceMembers(e, t, n) { - const s = await this.request(`/admin/alliances/${e}/ban-all`, { method: "POST", credentials: "include", body: JSON.stringify({ reason: t, notes: n }) }); - if (s.status !== 200) throw new f(i(), s.status); - } - async setAllianceMemberRole(e, t, n) { - const s = await this.request(`/admin/alliances/${e}/members/${t}/role`, { method: "POST", credentials: "include", body: JSON.stringify({ role: n }) }); - if (s.status !== 200) throw new f(i(), s.status); - } - async removeAllianceMember(e, t) { - const n = await this.request(`/admin/alliances/${e}/members/${t}/remove`, { method: "POST", credentials: "include" }); - if (n.status !== 200) throw new f(i(), n.status); - } - async giveAllianceAdmin(e) { - const t = await this.request("/alliance/give-admin", { body: JSON.stringify({ promotedUserId: e }), method: "POST", credentials: "include" }); - if (t.status !== 200) throw t.status === 403 ? new Error(E()) : new Error(i()); - } - async banAllianceUser(e) { - const t = await this.request("/alliance/ban", { body: JSON.stringify({ bannedUserId: e }), method: "POST", credentials: "include" }); - if (t.status !== 200) throw t.status === 403 ? new Error(E()) : new Error(i()); - } - async equipFlag(e) { - if ((await this.request(`/flag/equip/${e}`, { method: "POST", credentials: "include" })).status !== 200) throw new Error(i()); - } - async getMyProfilePictures() { - const e = await this.request("/me/profile-pictures", { credentials: "include" }); - if (e.status !== 200) throw new Error(i()); - return e.json(); - } - async changeProfilePicture(e) { - if ((await this.request("/me/profile-picture/change", { method: "POST", credentials: "include", body: JSON.stringify({ pictureId: e }) })).status !== 200) throw new Error(i()); - } - async unbanAllianceUser(e) { - const t = await this.request("/alliance/unban", { body: JSON.stringify({ unbannedUserId: e }), method: "POST", credentials: "include" }); - if (t.status !== 200) throw t.status === 403 ? new Error(E()) : new Error(i()); - } - async health() { - return (await this.request("/health")).json(); - } - async generatePixQrCode(e) { - const t = await this.request(`/payment/abacatepay/create/pix/${e}`, { method: "POST", credentials: "include" }); - if (t.status === 400) { - const s = await t.json(); - throw new Error(s == null ? void 0 : s.error); - } else { - if (t.status === 451) throw new Error(Tn()); - if (t.status !== 200) throw new Error(i()); - } - return await t.json(); - } - async refreshPixPayment(e) { - const t = await this.request(`/payment/abacatepay/refresh/pix/${e}`, { method: "POST", credentials: "include" }); - if (t.status === 400) { - const n = await t.json(); - throw new Error(n == null ? void 0 : n.error); - } else if (t.status !== 200) throw new Error("Unexpected error on the server. Try again later"); - return t.json(); - } - async getPixStatus(e) { - const t = await this.request(`/payment/abacatepay/status/pix/${e}`, { method: "GET", credentials: "include" }); - if (t.status !== 200) throw new Error("Erro inesperado. Tente atualizar a página."); - return t.json(); - } - async getModeratorTickets() { - const e = await this.request("/moderator/tickets", { method: "GET", credentials: "include" }); - if (e.status !== 200) throw new f(i(), e.status); - const t = await e.json(); - for (const n of t.tickets) n.reports.sort((s, r) => le[s.reason] - le[r.reason]); - return t; - } - async countMyTicketsClosedToday() { - const e = await this.request("/moderator/count-my-tickets", { method: "GET", credentials: "include" }); - if (e.status !== 200) throw new f(i(), e.status); - return e.json(); - } - async getNonPaidUserOpenTicketsCount() { - const e = await this.request("/moderator/open-tickets-count", { method: "GET", credentials: "include" }); - if (e.status !== 200) throw new f(i(), e.status); - const { tickets: t } = await e.json(); - return t; - } - async assignNewTickets() { - const e = await this.request("/moderator/assign-new-tickets", { method: "POST", credentials: "include" }); - if (e.status !== 200) throw new f(i(), e.status); - return e.json(); - } - async setTicketStatus(e, t, n, s) { - const r = await this.request("/moderator/set-ticket-status", { method: "POST", credentials: "include", body: JSON.stringify({ ticketId: e, status: t, selectedReportId: n, assignedReason: s }) }); - if (r.status !== 200) throw new f(i(), r.status); - } - async request(e, t) { - let n; - const s = me(); - if (s) { - const r = new Headers(t == null ? void 0 : t.headers); - r.set("x-alien-override", s.token), (t = { ...(t ?? {}), headers: r }); - } - try { - (n = await fetch(`${this.url}${e}`, t)), (this.online = !0); - } catch (r) { - throw (console.error("Fetch error:", r), (this.online = !1), new Error(Ut(), { cause: r })); - } - if (n.status === 429) throw new Error(ce()); - if (n.status === 503 || n.status === 408) throw new Error(ce()); - return n; - } - async getOpenTicketsSummary() { - const e = await this.request("/admin/count-all-tickets", { method: "GET", credentials: "include" }); - if (e.status !== 200) throw new f(i(), e.status); - return e.json(); - } - async getOpenReportsSummary() { - const e = await this.request("/admin/count-all-reports", { method: "GET", credentials: "include" }); - if (e.status !== 200) throw new f(i(), e.status); - return e.json(); - } - async getClosedTicketsByMod(e, t) { - const n = await this.request(`/admin/closed-tickets?start=${encodeURIComponent(e)}&end=${encodeURIComponent(t)}`, { method: "GET", credentials: "include" }); - if (n.status !== 200) throw new f(i(), n.status); - return (await n.json()).items.map((r) => ({ ...r, suspensionRate: (r.ban + r.timeout) / r.total })); - } - async getClosedReportsByMod(e, t) { - const n = await this.request(`/admin/closed-reports?start=${encodeURIComponent(e)}&end=${encodeURIComponent(t)}`, { method: "GET", credentials: "include" }); - if (n.status !== 200) throw new f(i(), n.status); - return (await n.json()).items.map((r) => ({ ...r, suspensionRate: (r.ban + r.timeout) / r.total })); - } - async getUserInfoById(e) { - const t = await this.request(`/moderator/user-info/${encodeURIComponent(e)}`, { method: "GET", credentials: "include" }); - if (t.status !== 404) { - if (t.status !== 200) throw new f(i(), t.status); - return t.json(); - } - } - async getMultipleUsersInfoById(e) { - const t = await this.request(`/moderator/users?ids=${encodeURIComponent(e.join(","))}`, { method: "GET", credentials: "include" }); - if (t.status !== 200) throw new f(i(), t.status); - return t.json(); - } - async getUserInfoFull(e) { - const t = await this.request(`/admin/users?id=${encodeURIComponent(e)}`, { method: "GET", credentials: "include" }); - if (t.status !== 404) { - if (t.status !== 200) throw new f(i(), t.status); - return t.json(); - } - } - async removeTimeout(e) { - const t = await this.request("/admin/remove-timeout", { method: "POST", credentials: "include", body: JSON.stringify({ userId: e }) }); - if (t.status !== 200) throw new f(i(), t.status); - } - async removeBan(e) { - const t = await this.request("/admin/remove-ban", { method: "POST", credentials: "include", body: JSON.stringify({ userId: e }) }); - if (t.status !== 200) throw new f(i(), t.status); - } - async getUserNotes(e) { - const t = await this.request(`/admin/users/notes?userId=${encodeURIComponent(e)}`, { method: "GET", credentials: "include" }); - if (t.status !== 200) throw new f(i(), t.status); - return t.json(); - } - async addUserNote(e, t) { - const n = await this.request("/admin/users/notes", { method: "POST", credentials: "include", body: JSON.stringify({ userId: e, note: t }) }); - if (n.status !== 200) throw new f(i(), n.status); - } - async getUserPurchases(e) { - const t = await this.request(`/admin/users/purchases?userId=${encodeURIComponent(e)}`, { method: "GET", credentials: "include" }); - if (t.status !== 200) throw new f(i(), t.status); - const n = await t.json(); - return (Array.isArray(n == null ? void 0 : n.purchases) ? n.purchases : []).map((r) => ({ - id: String(r.id ?? ""), - product_name: String(r.productName ?? r.product_name ?? ""), - price: Number(r.price ?? 0), - amount: Number(r.amount ?? 0), - createdAt: typeof r.createdAt == "string" ? r.createdAt : r.CreatedAt ? new Date(r.CreatedAt).toISOString() : "", - })); - } - async postSetUserDroplets(e, t) { - const n = await this.request("/admin/users/set-user-droplets", { method: "POST", credentials: "include", body: JSON.stringify({ userId: e, droplets: t }) }); - if (n.status !== 200) throw new f(i(), n.status); - } - async getUserTickets(e) { - const { userId: t, kind: n, page: s = 0, pageSize: r = 20 } = e, - l = new URLSearchParams({ userId: String(t), kind: n, page: String(s), pageSize: String(r) }), - o = await this.request(`/moderator/users/tickets?${l.toString()}`, { method: "GET", credentials: "include" }); - if (o.status !== 200) throw new f(i(), o.status); - const d = await o.json(), - c = Array.isArray(d == null ? void 0 : d.tickets) ? d.tickets : []; - return c.sort((S, b) => new Date(b.createdAt).getTime() - new Date(S.createdAt).getTime()), c; - } - mapTicketsToReportRows(e, t) { - var s, r, l, o, d; - const n = []; - for (const c of e) { - const S = c.status ?? "open"; - if (t === "received") { - for (const b of c.reports) - n.push({ - id: String(b.id), - ticketId: String(c.id), - createdAt: b.createdAt ?? c.createdAt, - byUser: { id: Number(b.reportedBy), name: String(b.reportedByName ?? b.reportedBy), picture: b.reportedByPicture ?? null }, - reason: String(b.reason), - status: S, - }); - continue; - } - if (t === "sent") { - for (const b of c.reports) - n.push({ - id: String(b.id), - ticketId: String(c.id), - createdAt: b.createdAt ?? c.createdAt, - toUser: { id: Number(c.reportedUser.id), name: String(c.reportedUser.name), picture: c.reportedUser.picture ?? null }, - reason: String(b.reason), - status: S, - }); - continue; - } - n.push({ - id: String(c.id), - ticketId: String(c.id), - createdAt: c.createdAt, - handledBy: - c.status && c.status !== "open" - ? { id: ((s = c.handledBy) == null ? void 0 : s.id) ?? 0, name: ((r = c.handledBy) == null ? void 0 : r.name) ?? "Moderator", picture: ((l = c.handledBy) == null ? void 0 : l.picture) ?? null } - : { id: 0, name: "—", picture: null }, - reason: String(((d = (o = c.reports) == null ? void 0 : o[0]) == null ? void 0 : d.reason) ?? "other"), - status: S, - }); - } - return n.sort((c, S) => new Date(S.createdAt).getTime() - new Date(c.createdAt).getTime()), n; - } - async getModeratorClosedTicketStats(e) { - const t = new URLSearchParams({ id: String(e) }).toString(), - n = await this.request(`/admin/users/tickets?${t}`, { method: "GET", credentials: "include" }); - if (n.status !== 200) throw new f(i(), n.status); - return n.json(); - } - async postPawtectLoad() { - const e = await this.request("/pawtect/load", { method: "POST", credentials: "include", body: JSON.stringify({ pawtectMe: Ne(), "paint-the": "world", "but-not": "using-bots", security: "/.well-known/security.txt" }) }); - if (e.status !== 204) throw new f(i(), e.status); - } - async unlinkDiscord() { - const e = await this.request("/discord/unlink", { method: "POST", credentials: "include" }); - if (e.status !== 204) throw new f(i(), e.status); - } -} -V = new WeakMap(); -let de = new ta(ue); -export { - pa as A, - wa as B, - pe as C, - ba as D, - oa as E, - ca as F, - ue as P, - Xn as S, - Re as _, - de as a, - _a as b, - i as c, - Me as d, - ia as e, - un as f, - Le as g, - rn as h, - Qt as i, - tn as j, - cn as k, - T as l, - la as m, - da as n, - ea as o, - fa as p, - ga as q, - ma as r, - ha as s, - ge as t, - X as u, - ya as v, - Sa as w, - ua as x, - An as y, - In as z, -}; diff --git a/frontend-backup/_app/immutable/chunks/DhR_xAc4.js b/frontend-backup/_app/immutable/chunks/DhR_xAc4.js deleted file mode 100644 index f8be341..0000000 --- a/frontend-backup/_app/immutable/chunks/DhR_xAc4.js +++ /dev/null @@ -1 +0,0 @@ -import{g as t}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="78305447-0aa0-4fe7-b9f4-39f491404710",e._sentryDebugIdIdentifier="sentry-dbid-78305447-0aa0-4fe7-b9f4-39f491404710")})()}catch{}const l=()=>"Save",o=()=>"Salvar",y=(e={},n={})=>(n.locale??t())==="en"?l():o(),s=()=>"Members",a=()=>"Membros",_=(e={},n={})=>(n.locale??t())==="en"?s():a(),i=()=>"Player",c=()=>"Jogador",g=(e={},n={})=>(n.locale??t())==="en"?i():c(),u=()=>"Last pixel",f=()=>"Último pixel",m=(e={},n={})=>(n.locale??t())==="en"?u():f(),d=()=>"Visit",p=()=>"Visitar",v=(e={},n={})=>(n.locale??t())==="en"?d():p();export{m as l,_ as m,g as p,y as s,v}; diff --git a/frontend-backup/_app/immutable/chunks/DkBFL3pa.js b/frontend-backup/_app/immutable/chunks/DkBFL3pa.js deleted file mode 100644 index 8f5bdad..0000000 --- a/frontend-backup/_app/immutable/chunks/DkBFL3pa.js +++ /dev/null @@ -1,32 +0,0 @@ -import { - g as s -} from "./C5GsJ62f.js"; -import "./Bzak7iHL.js"; -import { - q as a, - b as n -} from "./DUoKDNpf.js"; -import { - a as p -} from "./B1GmkH4o.js"; -import { - r as f -} from "./5NasrULQ.js"; -const l = () => "Refresh", - c = () => "刷新", - u = (t = {}, r = {}) => (r.locale ?? s()) === "en" ? l() : c(); -var i = a(''); - -function $(t, r) { - let e = f(r, ["$$slots", "$$events", "$$legacy"]); - var o = i(); - p(o, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...e - })), n(t, o) -} -export { - $ as R, u as r -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/chunks/DklPLC_x.js b/frontend-backup/_app/immutable/chunks/DklPLC_x.js deleted file mode 100644 index 400f2ea..0000000 --- a/frontend-backup/_app/immutable/chunks/DklPLC_x.js +++ /dev/null @@ -1,86 +0,0 @@ -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - o = new e.Error().stack; - o && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[o] = "138d49da-a363-498b-a700-aea1b9f4af0d"), (e._sentryDebugIdIdentifier = "sentry-dbid-138d49da-a363-498b-a700-aea1b9f4af0d")); - })(); -} catch {} -const y = "en", - c = ["en", "pt"], - d = "PARAGLIDE_LOCALE", - g = ["localStorage", "preferredLanguage", "baseLocale"]; -globalThis.__paraglide = {}; -let f = !1, - w = () => { - let e; - for (const o of g) { - if (o === "baseLocale") e = y; - else if (o === "preferredLanguage") e = L(); - else if (o === "localStorage") e = localStorage.getItem(d) ?? void 0; - else if (u(o) && l.has(o)) { - const a = l.get(o); - if (a) { - const t = a.getLocale(); - if (t instanceof Promise) continue; - e = t; - } - } - if (e !== void 0) { - const a = h(e); - return f || ((f = !0), p(a, { reload: !1 })), a; - } - } - throw new Error("No locale found. Read the docs https://inlang.com/m/gerre34r/library-inlang-paraglideJs/errors#no-locale-found"); - }, - p = (e, o) => { - const a = { reload: !0, ...o }; - let t; - try { - t = w(); - } catch {} - for (const n of g) - if (n !== "baseLocale") { - if (n === "localStorage" && typeof window < "u") localStorage.setItem(d, e); - else if (u(n) && l.has(n)) { - const s = l.get(n); - if (s) { - const i = s.setLocale(e); - i instanceof Promise && - i.catch((b) => { - console.warn(`Custom strategy "${n}" setLocale failed:`, b); - }); - } - } - } - a.reload && window.location && e !== t && window.location.reload(); - }; -function r(e) { - return e ? c.includes(e) : !1; -} -function h(e) { - if (r(e) === !1) throw new Error(`Invalid locale: ${e}. Expected one of: ${c.join(", ")}`); - return e; -} -function L() { - var o; - if (!((o = navigator == null ? void 0 : navigator.languages) != null && o.length)) return; - const e = navigator.languages.map((a) => { - var t; - return { fullTag: a.toLowerCase(), baseTag: (t = a.split("-")[0]) == null ? void 0 : t.toLowerCase() }; - }); - for (const a of e) { - if (r(a.fullTag)) return a.fullTag; - if (r(a.baseTag)) return a.baseTag; - } -} -const l = new Map(); -function u(e) { - return typeof e == "string" && /^custom-[A-Za-z0-9_-]+$/.test(e); -} -export { w as g, d as l }; diff --git a/frontend-backup/_app/immutable/chunks/Dmqg20ho.js b/frontend-backup/_app/immutable/chunks/Dmqg20ho.js new file mode 100644 index 0000000..fa9bcf2 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Dmqg20ho.js @@ -0,0 +1,2130 @@ +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "94f605bd-8e96-4f8e-8769-0ddf701a4cfb"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-94f605bd-8e96-4f8e-8769-0ddf701a4cfb")); + })(); +} catch {} +const S = typeof __SENTRY_DEBUG__ > "u" || __SENTRY_DEBUG__, + g = globalThis, + O = "10.11.0"; +function D() { + return et(g), g; +} +function et(t) { + const e = (t.__SENTRY__ = t.__SENTRY__ || {}); + return (e.version = e.version || O), (e[O] = e[O] || {}); +} +function j(t, e, n = g) { + const r = (n.__SENTRY__ = n.__SENTRY__ || {}), + s = (r[O] = r[O] || {}); + return s[t] || (s[t] = e()); +} +const wn = ["debug", "info", "warn", "error", "log", "assert", "trace"], + Jt = "Sentry Logger ", + dt = {}; +function nt(t) { + if (!("console" in g)) return t(); + const e = g.console, + n = {}, + r = Object.keys(dt); + r.forEach((s) => { + const i = dt[s]; + (n[s] = e[s]), (e[s] = i); + }); + try { + return t(); + } finally { + r.forEach((s) => { + e[s] = n[s]; + }); + } +} +function qt() { + st().enabled = !0; +} +function Qt() { + st().enabled = !1; +} +function Rt() { + return st().enabled; +} +function Zt(...t) { + rt("log", ...t); +} +function te(...t) { + rt("warn", ...t); +} +function ee(...t) { + rt("error", ...t); +} +function rt(t, ...e) { + S && + Rt() && + nt(() => { + g.console[t](`${Jt}[${t}]:`, ...e); + }); +} +function st() { + return S ? j("loggerSettings", () => ({ enabled: !1 })) : { enabled: !1 }; +} +const h = { + enable: qt, + disable: Qt, + isEnabled: Rt, + log: Zt, + warn: te, + error: ee, + }, + Ot = 50, + ne = "?", + pt = /\(error: (.*)\)/, + lt = /captureMessage|captureException/; +function re(...t) { + const e = t.sort((n, r) => n[0] - r[0]).map((n) => n[1]); + return (n, r = 0, s = 0) => { + const i = [], + o = n.split(` +`); + for (let c = r; c < o.length; c++) { + let a = o[c]; + a.length > 1024 && (a = a.slice(0, 1024)); + const u = pt.test(a) ? a.replace(pt, "$1") : a; + if (!u.match(/\S*Error: /)) { + for (const f of e) { + const d = f(u); + if (d) { + i.push(d); + break; + } + } + if (i.length >= Ot + s) break; + } + } + return se(i.slice(s)); + }; +} +function Pn(t) { + return Array.isArray(t) ? re(...t) : t; +} +function se(t) { + if (!t.length) return []; + const e = Array.from(t); + return ( + /sentryWrapped/.test(w(e).function || "") && e.pop(), + e.reverse(), + lt.test(w(e).function || "") && + (e.pop(), lt.test(w(e).function || "") && e.pop()), + e + .slice(0, Ot) + .map((n) => ({ + ...n, + filename: n.filename || w(e).filename, + function: n.function || ne, + })) + ); +} +function w(t) { + return t[t.length - 1] || {}; +} +const K = ""; +function ie(t) { + try { + return !t || typeof t != "function" ? K : t.name || K; + } catch { + return K; + } +} +function kn(t) { + const e = t.exception; + if (e) { + const n = []; + try { + return ( + e.values.forEach((r) => { + r.stacktrace.frames && n.push(...r.stacktrace.frames); + }), + n + ); + } catch { + return; + } + } +} +const Dt = Object.prototype.toString; +function oe(t) { + switch (Dt.call(t)) { + case "[object Error]": + case "[object Exception]": + case "[object DOMException]": + case "[object WebAssembly.Exception]": + return !0; + default: + return M(t, Error); + } +} +function x(t, e) { + return Dt.call(t) === `[object ${e}]`; +} +function Ln(t) { + return x(t, "ErrorEvent"); +} +function Fn(t) { + return x(t, "DOMError"); +} +function $n(t) { + return x(t, "DOMException"); +} +function F(t) { + return x(t, "String"); +} +function ae(t) { + return ( + typeof t == "object" && + t !== null && + "__sentry_template_string__" in t && + "__sentry_template_values__" in t + ); +} +function Un(t) { + return ( + t === null || ae(t) || (typeof t != "object" && typeof t != "function") + ); +} +function Mt(t) { + return x(t, "Object"); +} +function ce(t) { + return typeof Event < "u" && M(t, Event); +} +function ue(t) { + return typeof Element < "u" && M(t, Element); +} +function fe(t) { + return x(t, "RegExp"); +} +function it(t) { + return !!(t != null && t.then && typeof t.then == "function"); +} +function de(t) { + return ( + Mt(t) && + "nativeEvent" in t && + "preventDefault" in t && + "stopPropagation" in t + ); +} +function M(t, e) { + try { + return t instanceof e; + } catch { + return !1; + } +} +function wt(t) { + return !!(typeof t == "object" && t !== null && (t.__isVue || t._isVue)); +} +function jn(t) { + return typeof Request < "u" && M(t, Request); +} +const ot = g, + pe = 80; +function le(t, e = {}) { + if (!t) return ""; + try { + let n = t; + const r = 5, + s = []; + let i = 0, + o = 0; + const c = " > ", + a = c.length; + let u; + const f = Array.isArray(e) ? e : e.keyAttrs, + d = (!Array.isArray(e) && e.maxStringLength) || pe; + for ( + ; + n && + i++ < r && + ((u = _e(n, f)), + !(u === "html" || (i > 1 && o + s.length * a + u.length >= d))); + + ) + s.push(u), (o += u.length), (n = n.parentNode); + return s.reverse().join(c); + } catch { + return ""; + } +} +function _e(t, e) { + const n = t, + r = []; + if (!(n != null && n.tagName)) return ""; + if (ot.HTMLElement && n instanceof HTMLElement && n.dataset) { + if (n.dataset.sentryComponent) return n.dataset.sentryComponent; + if (n.dataset.sentryElement) return n.dataset.sentryElement; + } + r.push(n.tagName.toLowerCase()); + const s = + e != null && e.length + ? e.filter((o) => n.getAttribute(o)).map((o) => [o, n.getAttribute(o)]) + : null; + if (s != null && s.length) + s.forEach((o) => { + r.push(`[${o[0]}="${o[1]}"]`); + }); + else { + n.id && r.push(`#${n.id}`); + const o = n.className; + if (o && F(o)) { + const c = o.split(/\s+/); + for (const a of c) r.push(`.${a}`); + } + } + const i = ["aria-label", "type", "name", "title", "alt"]; + for (const o of i) { + const c = n.getAttribute(o); + c && r.push(`[${o}="${c}"]`); + } + return r.join(""); +} +function vn() { + try { + return ot.document.location.href; + } catch { + return ""; + } +} +function Bn(t) { + if (!ot.HTMLElement) return null; + let e = t; + const n = 5; + for (let r = 0; r < n; r++) { + if (!e) return null; + if (e instanceof HTMLElement) { + if (e.dataset.sentryComponent) return e.dataset.sentryComponent; + if (e.dataset.sentryElement) return e.dataset.sentryElement; + } + e = e.parentNode; + } + return null; +} +function $(t, e = 0) { + return typeof t != "string" || e === 0 || t.length <= e + ? t + : `${t.slice(0, e)}...`; +} +function Gn(t, e) { + if (!Array.isArray(t)) return ""; + const n = []; + for (let r = 0; r < t.length; r++) { + const s = t[r]; + try { + wt(s) ? n.push("[VueViewModel]") : n.push(String(s)); + } catch { + n.push("[value cannot be serialized]"); + } + } + return n.join(e); +} +function ge(t, e, n = !1) { + return F(t) + ? fe(e) + ? e.test(t) + : F(e) + ? n + ? t === e + : t.includes(e) + : !1 + : !1; +} +function zn(t, e = [], n = !1) { + return e.some((r) => ge(t, r, n)); +} +function Hn(t, e, n) { + if (!(e in t)) return; + const r = t[e]; + if (typeof r != "function") return; + const s = n(r); + typeof s == "function" && he(s, r); + try { + t[e] = s; + } catch { + S && h.log(`Failed to replace method "${e}" in object`, t); + } +} +function I(t, e, n) { + try { + Object.defineProperty(t, e, { value: n, writable: !0, configurable: !0 }); + } catch { + S && h.log(`Failed to add non-enumerable property "${e}" to object`, t); + } +} +function he(t, e) { + try { + const n = e.prototype || {}; + (t.prototype = e.prototype = n), I(t, "__sentry_original__", e); + } catch {} +} +function Yn(t) { + return t.__sentry_original__; +} +function Pt(t) { + if (oe(t)) + return { message: t.message, name: t.name, stack: t.stack, ...gt(t) }; + if (ce(t)) { + const e = { + type: t.type, + target: _t(t.target), + currentTarget: _t(t.currentTarget), + ...gt(t), + }; + return ( + typeof CustomEvent < "u" && M(t, CustomEvent) && (e.detail = t.detail), e + ); + } else return t; +} +function _t(t) { + try { + return ue(t) ? le(t) : Object.prototype.toString.call(t); + } catch { + return ""; + } +} +function gt(t) { + if (typeof t == "object" && t !== null) { + const e = {}; + for (const n in t) + Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); + return e; + } else return {}; +} +function Vn(t, e = 40) { + const n = Object.keys(Pt(t)); + n.sort(); + const r = n[0]; + if (!r) return "[object has no keys]"; + if (r.length >= e) return $(r, e); + for (let s = n.length; s > 0; s--) { + const i = n.slice(0, s).join(", "); + if (!(i.length > e)) return s === n.length ? i : $(i, e); + } + return ""; +} +function me() { + const t = g; + return t.crypto || t.msCrypto; +} +function T(t = me()) { + let e = () => Math.random() * 16; + try { + if (t != null && t.randomUUID) return t.randomUUID().replace(/-/g, ""); + t != null && + t.getRandomValues && + (e = () => { + const n = new Uint8Array(1); + return t.getRandomValues(n), n[0]; + }); + } catch {} + return ("10000000100040008000" + 1e11).replace(/[018]/g, (n) => + (n ^ ((e() & 15) >> (n / 4))).toString(16) + ); +} +function kt(t) { + var e, n; + return (n = (e = t.exception) == null ? void 0 : e.values) == null + ? void 0 + : n[0]; +} +function Kn(t) { + const { message: e, event_id: n } = t; + if (e) return e; + const r = kt(t); + return r + ? r.type && r.value + ? `${r.type}: ${r.value}` + : r.type || r.value || n || "" + : n || ""; +} +function Wn(t, e, n) { + const r = (t.exception = t.exception || {}), + s = (r.values = r.values || []), + i = (s[0] = s[0] || {}); + i.value || (i.value = e || ""), i.type || (i.type = "Error"); +} +function Se(t, e) { + const n = kt(t); + if (!n) return; + const r = { type: "generic", handled: !0 }, + s = n.mechanism; + if (((n.mechanism = { ...r, ...s, ...e }), e && "data" in e)) { + const i = { ...(s == null ? void 0 : s.data), ...e.data }; + n.mechanism.data = i; + } +} +function Xn(t) { + if (ye(t)) return !0; + try { + I(t, "__sentry_captured__", !0); + } catch {} + return !1; +} +function ye(t) { + try { + return t.__sentry_captured__; + } catch {} +} +const Lt = 1e3; +function at() { + return Date.now() / Lt; +} +function Ee() { + const { performance: t } = g; + if (!(t != null && t.now) || !t.timeOrigin) return at; + const e = t.timeOrigin; + return () => (e + t.now()) / Lt; +} +let ht; +function ct() { + return (ht ?? (ht = Ee()))(); +} +let W; +function be() { + var f; + const { performance: t } = g; + if (!(t != null && t.now)) return [void 0, "none"]; + const e = 3600 * 1e3, + n = t.now(), + r = Date.now(), + s = t.timeOrigin ? Math.abs(t.timeOrigin + n - r) : e, + i = s < e, + o = (f = t.timing) == null ? void 0 : f.navigationStart, + a = typeof o == "number" ? Math.abs(o + n - r) : e, + u = a < e; + return i || u + ? s <= a + ? [t.timeOrigin, "timeOrigin"] + : [o, "navigationStart"] + : [r, "dateNow"]; +} +function Jn() { + return W || (W = be()), W[0]; +} +function Te(t) { + const e = ct(), + n = { + sid: T(), + init: !0, + timestamp: e, + started: e, + duration: 0, + status: "ok", + errors: 0, + ignoreDuration: !1, + toJSON: () => Ae(n), + }; + return t && v(n, t), n; +} +function v(t, e = {}) { + if ( + (e.user && + (!t.ipAddress && e.user.ip_address && (t.ipAddress = e.user.ip_address), + !t.did && + !e.did && + (t.did = e.user.id || e.user.email || e.user.username)), + (t.timestamp = e.timestamp || ct()), + e.abnormal_mechanism && (t.abnormal_mechanism = e.abnormal_mechanism), + e.ignoreDuration && (t.ignoreDuration = e.ignoreDuration), + e.sid && (t.sid = e.sid.length === 32 ? e.sid : T()), + e.init !== void 0 && (t.init = e.init), + !t.did && e.did && (t.did = `${e.did}`), + typeof e.started == "number" && (t.started = e.started), + t.ignoreDuration) + ) + t.duration = void 0; + else if (typeof e.duration == "number") t.duration = e.duration; + else { + const n = t.timestamp - t.started; + t.duration = n >= 0 ? n : 0; + } + e.release && (t.release = e.release), + e.environment && (t.environment = e.environment), + !t.ipAddress && e.ipAddress && (t.ipAddress = e.ipAddress), + !t.userAgent && e.userAgent && (t.userAgent = e.userAgent), + typeof e.errors == "number" && (t.errors = e.errors), + e.status && (t.status = e.status); +} +function Ie(t, e) { + let n = {}; + t.status === "ok" && (n = { status: "exited" }), v(t, n); +} +function Ae(t) { + return { + sid: `${t.sid}`, + init: t.init, + started: new Date(t.started * 1e3).toISOString(), + timestamp: new Date(t.timestamp * 1e3).toISOString(), + status: t.status, + errors: t.errors, + did: + typeof t.did == "number" || typeof t.did == "string" + ? `${t.did}` + : void 0, + duration: t.duration, + abnormal_mechanism: t.abnormal_mechanism, + attrs: { + release: t.release, + environment: t.environment, + ip_address: t.ipAddress, + user_agent: t.userAgent, + }, + }; +} +function B(t, e, n = 2) { + if (!e || typeof e != "object" || n <= 0) return e; + if (t && Object.keys(e).length === 0) return t; + const r = { ...t }; + for (const s in e) + Object.prototype.hasOwnProperty.call(e, s) && (r[s] = B(r[s], e[s], n - 1)); + return r; +} +function U() { + return T(); +} +function ut() { + return T().substring(16); +} +const J = "_sentrySpan"; +function mt(t, e) { + e ? I(t, J, e) : delete t[J]; +} +function q(t) { + return t[J]; +} +const Ce = 100; +class y { + constructor() { + (this._notifyingListeners = !1), + (this._scopeListeners = []), + (this._eventProcessors = []), + (this._breadcrumbs = []), + (this._attachments = []), + (this._user = {}), + (this._tags = {}), + (this._extra = {}), + (this._contexts = {}), + (this._sdkProcessingMetadata = {}), + (this._propagationContext = { traceId: U(), sampleRand: Math.random() }); + } + clone() { + const e = new y(); + return ( + (e._breadcrumbs = [...this._breadcrumbs]), + (e._tags = { ...this._tags }), + (e._extra = { ...this._extra }), + (e._contexts = { ...this._contexts }), + this._contexts.flags && + (e._contexts.flags = { values: [...this._contexts.flags.values] }), + (e._user = this._user), + (e._level = this._level), + (e._session = this._session), + (e._transactionName = this._transactionName), + (e._fingerprint = this._fingerprint), + (e._eventProcessors = [...this._eventProcessors]), + (e._attachments = [...this._attachments]), + (e._sdkProcessingMetadata = { ...this._sdkProcessingMetadata }), + (e._propagationContext = { ...this._propagationContext }), + (e._client = this._client), + (e._lastEventId = this._lastEventId), + mt(e, q(this)), + e + ); + } + setClient(e) { + this._client = e; + } + setLastEventId(e) { + this._lastEventId = e; + } + getClient() { + return this._client; + } + lastEventId() { + return this._lastEventId; + } + addScopeListener(e) { + this._scopeListeners.push(e); + } + addEventProcessor(e) { + return this._eventProcessors.push(e), this; + } + setUser(e) { + return ( + (this._user = e || { + email: void 0, + id: void 0, + ip_address: void 0, + username: void 0, + }), + this._session && v(this._session, { user: e }), + this._notifyScopeListeners(), + this + ); + } + getUser() { + return this._user; + } + setTags(e) { + return ( + (this._tags = { ...this._tags, ...e }), this._notifyScopeListeners(), this + ); + } + setTag(e, n) { + return ( + (this._tags = { ...this._tags, [e]: n }), + this._notifyScopeListeners(), + this + ); + } + setExtras(e) { + return ( + (this._extra = { ...this._extra, ...e }), + this._notifyScopeListeners(), + this + ); + } + setExtra(e, n) { + return ( + (this._extra = { ...this._extra, [e]: n }), + this._notifyScopeListeners(), + this + ); + } + setFingerprint(e) { + return (this._fingerprint = e), this._notifyScopeListeners(), this; + } + setLevel(e) { + return (this._level = e), this._notifyScopeListeners(), this; + } + setTransactionName(e) { + return (this._transactionName = e), this._notifyScopeListeners(), this; + } + setContext(e, n) { + return ( + n === null ? delete this._contexts[e] : (this._contexts[e] = n), + this._notifyScopeListeners(), + this + ); + } + setSession(e) { + return ( + e ? (this._session = e) : delete this._session, + this._notifyScopeListeners(), + this + ); + } + getSession() { + return this._session; + } + update(e) { + if (!e) return this; + const n = typeof e == "function" ? e(this) : e, + r = n instanceof y ? n.getScopeData() : Mt(n) ? e : void 0, + { + tags: s, + extra: i, + user: o, + contexts: c, + level: a, + fingerprint: u = [], + propagationContext: f, + } = r || {}; + return ( + (this._tags = { ...this._tags, ...s }), + (this._extra = { ...this._extra, ...i }), + (this._contexts = { ...this._contexts, ...c }), + o && Object.keys(o).length && (this._user = o), + a && (this._level = a), + u.length && (this._fingerprint = u), + f && (this._propagationContext = f), + this + ); + } + clear() { + return ( + (this._breadcrumbs = []), + (this._tags = {}), + (this._extra = {}), + (this._user = {}), + (this._contexts = {}), + (this._level = void 0), + (this._transactionName = void 0), + (this._fingerprint = void 0), + (this._session = void 0), + mt(this, void 0), + (this._attachments = []), + this.setPropagationContext({ traceId: U(), sampleRand: Math.random() }), + this._notifyScopeListeners(), + this + ); + } + addBreadcrumb(e, n) { + var i; + const r = typeof n == "number" ? n : Ce; + if (r <= 0) return this; + const s = { + timestamp: at(), + ...e, + message: e.message ? $(e.message, 2048) : e.message, + }; + return ( + this._breadcrumbs.push(s), + this._breadcrumbs.length > r && + ((this._breadcrumbs = this._breadcrumbs.slice(-r)), + (i = this._client) == null || + i.recordDroppedEvent("buffer_overflow", "log_item")), + this._notifyScopeListeners(), + this + ); + } + getLastBreadcrumb() { + return this._breadcrumbs[this._breadcrumbs.length - 1]; + } + clearBreadcrumbs() { + return (this._breadcrumbs = []), this._notifyScopeListeners(), this; + } + addAttachment(e) { + return this._attachments.push(e), this; + } + clearAttachments() { + return (this._attachments = []), this; + } + getScopeData() { + return { + breadcrumbs: this._breadcrumbs, + attachments: this._attachments, + contexts: this._contexts, + tags: this._tags, + extra: this._extra, + user: this._user, + level: this._level, + fingerprint: this._fingerprint || [], + eventProcessors: this._eventProcessors, + propagationContext: this._propagationContext, + sdkProcessingMetadata: this._sdkProcessingMetadata, + transactionName: this._transactionName, + span: q(this), + }; + } + setSDKProcessingMetadata(e) { + return ( + (this._sdkProcessingMetadata = B(this._sdkProcessingMetadata, e, 2)), this + ); + } + setPropagationContext(e) { + return (this._propagationContext = e), this; + } + getPropagationContext() { + return this._propagationContext; + } + captureException(e, n) { + const r = (n == null ? void 0 : n.event_id) || T(); + if (!this._client) + return ( + S && + h.warn("No client configured on scope - will not capture exception!"), + r + ); + const s = new Error("Sentry syntheticException"); + return ( + this._client.captureException( + e, + { originalException: e, syntheticException: s, ...n, event_id: r }, + this + ), + r + ); + } + captureMessage(e, n, r) { + const s = (r == null ? void 0 : r.event_id) || T(); + if (!this._client) + return ( + S && + h.warn("No client configured on scope - will not capture message!"), + s + ); + const i = new Error(e); + return ( + this._client.captureMessage( + e, + n, + { originalException: e, syntheticException: i, ...r, event_id: s }, + this + ), + s + ); + } + captureEvent(e, n) { + const r = (n == null ? void 0 : n.event_id) || T(); + return this._client + ? (this._client.captureEvent(e, { ...n, event_id: r }, this), r) + : (S && h.warn("No client configured on scope - will not capture event!"), + r); + } + _notifyScopeListeners() { + this._notifyingListeners || + ((this._notifyingListeners = !0), + this._scopeListeners.forEach((e) => { + e(this); + }), + (this._notifyingListeners = !1)); + } +} +function Ne() { + return j("defaultCurrentScope", () => new y()); +} +function xe() { + return j("defaultIsolationScope", () => new y()); +} +class Re { + constructor(e, n) { + let r; + e ? (r = e) : (r = new y()); + let s; + n ? (s = n) : (s = new y()), + (this._stack = [{ scope: r }]), + (this._isolationScope = s); + } + withScope(e) { + const n = this._pushScope(); + let r; + try { + r = e(n); + } catch (s) { + throw (this._popScope(), s); + } + return it(r) + ? r.then( + (s) => (this._popScope(), s), + (s) => { + throw (this._popScope(), s); + } + ) + : (this._popScope(), r); + } + getClient() { + return this.getStackTop().client; + } + getScope() { + return this.getStackTop().scope; + } + getIsolationScope() { + return this._isolationScope; + } + getStackTop() { + return this._stack[this._stack.length - 1]; + } + _pushScope() { + const e = this.getScope().clone(); + return this._stack.push({ client: this.getClient(), scope: e }), e; + } + _popScope() { + return this._stack.length <= 1 ? !1 : !!this._stack.pop(); + } +} +function C() { + const t = D(), + e = et(t); + return (e.stack = e.stack || new Re(Ne(), xe())); +} +function Oe(t) { + return C().withScope(t); +} +function De(t, e) { + const n = C(); + return n.withScope(() => ((n.getStackTop().scope = t), e(t))); +} +function St(t) { + return C().withScope(() => t(C().getIsolationScope())); +} +function Me() { + return { + withIsolationScope: St, + withScope: Oe, + withSetScope: De, + withSetIsolationScope: (t, e) => St(e), + getCurrentScope: () => C().getScope(), + getIsolationScope: () => C().getIsolationScope(), + }; +} +function G(t) { + const e = et(t); + return e.acs ? e.acs : Me(); +} +function R() { + const t = D(); + return G(t).getCurrentScope(); +} +function z() { + const t = D(); + return G(t).getIsolationScope(); +} +function we() { + return j("globalScope", () => new y()); +} +function qn(...t) { + const e = D(), + n = G(e); + if (t.length === 2) { + const [r, s] = t; + return r ? n.withSetScope(r, s) : n.withScope(s); + } + return n.withScope(t[0]); +} +function H() { + return R().getClient(); +} +function Qn(t) { + const e = t.getPropagationContext(), + { traceId: n, parentSpanId: r, propagationSpanId: s } = e, + i = { trace_id: n, span_id: s || ut() }; + return r && (i.parent_span_id = r), i; +} +const Pe = "sentry.source", + ke = "sentry.sample_rate", + Le = "sentry.previous_trace_sample_rate", + Fe = "sentry.op", + $e = "sentry.origin", + Zn = "sentry.idle_span_finish_reason", + tr = "sentry.measurement_unit", + er = "sentry.measurement_value", + nr = "sentry.custom_span_name", + rr = "sentry.profile_id", + sr = "sentry.exclusive_time", + ir = "sentry.link.type", + Ue = 0, + Ft = 1, + _ = 2; +function je(t) { + if (t < 400 && t >= 100) return { code: Ft }; + if (t >= 400 && t < 500) + switch (t) { + case 401: + return { code: _, message: "unauthenticated" }; + case 403: + return { code: _, message: "permission_denied" }; + case 404: + return { code: _, message: "not_found" }; + case 409: + return { code: _, message: "already_exists" }; + case 413: + return { code: _, message: "failed_precondition" }; + case 429: + return { code: _, message: "resource_exhausted" }; + case 499: + return { code: _, message: "cancelled" }; + default: + return { code: _, message: "invalid_argument" }; + } + if (t >= 500 && t < 600) + switch (t) { + case 501: + return { code: _, message: "unimplemented" }; + case 503: + return { code: _, message: "unavailable" }; + case 504: + return { code: _, message: "deadline_exceeded" }; + default: + return { code: _, message: "internal_error" }; + } + return { code: _, message: "unknown_error" }; +} +function or(t, e) { + t.setAttribute("http.response.status_code", e); + const n = je(e); + n.message !== "unknown_error" && t.setStatus(n); +} +const $t = "_sentryScope", + Ut = "_sentryIsolationScope"; +function ar(t, e, n) { + t && (I(t, Ut, n), I(t, $t, e)); +} +function jt(t) { + return { scope: t[$t], isolationScope: t[Ut] }; +} +const vt = "sentry-", + ve = /^sentry-/, + Be = 8192; +function Bt(t) { + const e = Ge(t); + if (!e) return; + const n = Object.entries(e).reduce((r, [s, i]) => { + if (s.match(ve)) { + const o = s.slice(vt.length); + r[o] = i; + } + return r; + }, {}); + if (Object.keys(n).length > 0) return n; +} +function cr(t) { + if (!t) return; + const e = Object.entries(t).reduce( + (n, [r, s]) => (s && (n[`${vt}${r}`] = s), n), + {} + ); + return ze(e); +} +function Ge(t) { + if (!(!t || (!F(t) && !Array.isArray(t)))) + return Array.isArray(t) + ? t.reduce((e, n) => { + const r = yt(n); + return ( + Object.entries(r).forEach(([s, i]) => { + e[s] = i; + }), + e + ); + }, {}) + : yt(t); +} +function yt(t) { + return t + .split(",") + .map((e) => + e.split("=").map((n) => { + try { + return decodeURIComponent(n.trim()); + } catch { + return; + } + }) + ) + .reduce((e, [n, r]) => (n && r && (e[n] = r), e), {}); +} +function ze(t) { + if (Object.keys(t).length !== 0) + return Object.entries(t).reduce((e, [n, r], s) => { + const i = `${encodeURIComponent(n)}=${encodeURIComponent(r)}`, + o = s === 0 ? i : `${e},${i}`; + return o.length > Be + ? (S && + h.warn( + `Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.` + ), + e) + : o; + }, ""); +} +const He = /^o(\d+)\./, + Ye = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/; +function Ve(t) { + return t === "http" || t === "https"; +} +function ur(t, e = !1) { + const { + host: n, + path: r, + pass: s, + port: i, + projectId: o, + protocol: c, + publicKey: a, + } = t; + return `${c}://${a}${e && s ? `:${s}` : ""}@${n}${i ? `:${i}` : ""}/${ + r && `${r}/` + }${o}`; +} +function Ke(t) { + const e = Ye.exec(t); + if (!e) { + nt(() => { + console.error(`Invalid Sentry Dsn: ${t}`); + }); + return; + } + const [n, r, s = "", i = "", o = "", c = ""] = e.slice(1); + let a = "", + u = c; + const f = u.split("/"); + if ((f.length > 1 && ((a = f.slice(0, -1).join("/")), (u = f.pop())), u)) { + const d = u.match(/^\d+/); + d && (u = d[0]); + } + return Gt({ + host: i, + pass: s, + path: a, + projectId: u, + port: o, + protocol: n, + publicKey: r, + }); +} +function Gt(t) { + return { + protocol: t.protocol, + publicKey: t.publicKey || "", + pass: t.pass || "", + host: t.host, + port: t.port || "", + path: t.path || "", + projectId: t.projectId, + }; +} +function We(t) { + if (!S) return !0; + const { port: e, projectId: n, protocol: r } = t; + return ["protocol", "publicKey", "host", "projectId"].find((o) => + t[o] ? !1 : (h.error(`Invalid Sentry Dsn: ${o} missing`), !0) + ) + ? !1 + : n.match(/^\d+$/) + ? Ve(r) + ? e && isNaN(parseInt(e, 10)) + ? (h.error(`Invalid Sentry Dsn: Invalid port ${e}`), !1) + : !0 + : (h.error(`Invalid Sentry Dsn: Invalid protocol ${r}`), !1) + : (h.error(`Invalid Sentry Dsn: Invalid projectId ${n}`), !1); +} +function Xe(t) { + const e = t.match(He); + return e == null ? void 0 : e[1]; +} +function Je(t) { + const e = t.getOptions(), + { host: n } = t.getDsn() || {}; + let r; + return e.orgId ? (r = String(e.orgId)) : n && (r = Xe(n)), r; +} +function fr(t) { + const e = typeof t == "string" ? Ke(t) : Gt(t); + if (!(!e || !We(e))) return e; +} +function Et(t) { + if (typeof t == "boolean") return Number(t); + const e = typeof t == "string" ? parseFloat(t) : t; + if (!(typeof e != "number" || isNaN(e) || e < 0 || e > 1)) return e; +} +const qe = new RegExp( + "^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$" +); +function Qe(t) { + if (!t) return; + const e = t.match(qe); + if (!e) return; + let n; + return ( + e[3] === "1" ? (n = !0) : e[3] === "0" && (n = !1), + { traceId: e[1], parentSampled: n, parentSpanId: e[2] } + ); +} +function dr(t, e) { + const n = Qe(t), + r = Bt(e); + if (!(n != null && n.traceId)) + return { traceId: U(), sampleRand: Math.random() }; + const s = tn(n, r); + r && (r.sample_rand = s.toString()); + const { traceId: i, parentSpanId: o, parentSampled: c } = n; + return { + traceId: i, + parentSpanId: o, + sampled: c, + dsc: r || {}, + sampleRand: s, + }; +} +function Ze(t = U(), e = ut(), n) { + let r = ""; + return n !== void 0 && (r = n ? "-1" : "-0"), `${t}-${e}${r}`; +} +function tn(t, e) { + const n = Et(e == null ? void 0 : e.sample_rand); + if (n !== void 0) return n; + const r = Et(e == null ? void 0 : e.sample_rate); + return r && (t == null ? void 0 : t.parentSampled) !== void 0 + ? t.parentSampled + ? Math.random() * r + : r + Math.random() * (1 - r) + : Math.random(); +} +const pr = 0, + zt = 1; +let bt = !1; +function lr(t) { + const { spanId: e, traceId: n } = t.spanContext(), + { + data: r, + op: s, + parent_span_id: i, + status: o, + origin: c, + links: a, + } = Y(t); + return { + parent_span_id: i, + span_id: e, + trace_id: n, + data: r, + op: s, + status: o, + origin: c, + links: a, + }; +} +function en(t) { + const { spanId: e, traceId: n, isRemote: r } = t.spanContext(), + s = r ? e : Y(t).parent_span_id, + i = jt(t).scope, + o = r + ? (i == null ? void 0 : i.getPropagationContext().propagationSpanId) || + ut() + : e; + return { parent_span_id: s, span_id: o, trace_id: n }; +} +function _r(t) { + const { traceId: e, spanId: n } = t.spanContext(), + r = ft(t); + return Ze(e, n, r); +} +function nn(t) { + if (t && t.length > 0) + return t.map( + ({ + context: { spanId: e, traceId: n, traceFlags: r, ...s }, + attributes: i, + }) => ({ + span_id: e, + trace_id: n, + sampled: r === zt, + attributes: i, + ...s, + }) + ); +} +function Tt(t) { + return typeof t == "number" + ? It(t) + : Array.isArray(t) + ? t[0] + t[1] / 1e9 + : t instanceof Date + ? It(t.getTime()) + : ct(); +} +function It(t) { + return t > 9999999999 ? t / 1e3 : t; +} +function Y(t) { + var r; + if (sn(t)) return t.getSpanJSON(); + const { spanId: e, traceId: n } = t.spanContext(); + if (rn(t)) { + const { + attributes: s, + startTime: i, + name: o, + endTime: c, + status: a, + links: u, + } = t, + f = + "parentSpanId" in t + ? t.parentSpanId + : "parentSpanContext" in t + ? (r = t.parentSpanContext) == null + ? void 0 + : r.spanId + : void 0; + return { + span_id: e, + trace_id: n, + data: s, + description: o, + parent_span_id: f, + start_timestamp: Tt(i), + timestamp: Tt(c) || void 0, + status: on(a), + op: s[Fe], + origin: s[$e], + links: nn(u), + }; + } + return { span_id: e, trace_id: n, start_timestamp: 0, data: {} }; +} +function rn(t) { + const e = t; + return ( + !!e.attributes && !!e.startTime && !!e.name && !!e.endTime && !!e.status + ); +} +function sn(t) { + return typeof t.getSpanJSON == "function"; +} +function ft(t) { + const { traceFlags: e } = t.spanContext(); + return e === zt; +} +function on(t) { + if (!(!t || t.code === Ue)) + return t.code === Ft ? "ok" : t.message || "unknown_error"; +} +const A = "_sentryChildSpans", + Q = "_sentryRootSpan"; +function gr(t, e) { + const n = t[Q] || t; + I(e, Q, n), t[A] ? t[A].add(e) : I(t, A, new Set([e])); +} +function hr(t, e) { + t[A] && t[A].delete(e); +} +function mr(t) { + const e = new Set(); + function n(r) { + if (!e.has(r) && ft(r)) { + e.add(r); + const s = r[A] ? Array.from(r[A]) : []; + for (const i of s) n(i); + } + } + return n(t), Array.from(e); +} +function Ht(t) { + return t[Q] || t; +} +function Sr() { + const t = D(), + e = G(t); + return e.getActiveSpan ? e.getActiveSpan() : q(R()); +} +function yr() { + bt || + (nt(() => { + console.warn( + "[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly." + ); + }), + (bt = !0)); +} +function an(t) { + var n; + if (typeof __SENTRY_TRACING__ == "boolean" && !__SENTRY_TRACING__) return !1; + const e = t || ((n = H()) == null ? void 0 : n.getOptions()); + return !!e && (e.tracesSampleRate != null || !!e.tracesSampler); +} +const Yt = "production", + Vt = "_frozenDsc"; +function Er(t, e) { + I(t, Vt, e); +} +function Kt(t, e) { + const n = e.getOptions(), + { publicKey: r } = e.getDsn() || {}, + s = { + environment: n.environment || Yt, + release: n.release, + public_key: r, + trace_id: t, + org_id: Je(e), + }; + return e.emit("createDsc", s), s; +} +function br(t, e) { + const n = e.getPropagationContext(); + return n.dsc || Kt(n.traceId, t); +} +function cn(t) { + var E; + const e = H(); + if (!e) return {}; + const n = Ht(t), + r = Y(n), + s = r.data, + i = n.spanContext().traceState, + o = (i == null ? void 0 : i.get("sentry.sample_rate")) ?? s[ke] ?? s[Le]; + function c(V) { + return ( + (typeof o == "number" || typeof o == "string") && + (V.sample_rate = `${o}`), + V + ); + } + const a = n[Vt]; + if (a) return c(a); + const u = i == null ? void 0 : i.get("sentry.dsc"), + f = u && Bt(u); + if (f) return c(f); + const d = Kt(t.spanContext().traceId, e), + l = s[Pe], + p = r.description; + return ( + l !== "url" && p && (d.transaction = p), + an() && + ((d.sampled = String(ft(n))), + (d.sample_rand = + (i == null ? void 0 : i.get("sentry.sample_rand")) ?? + ((E = jt(n).scope) == null + ? void 0 + : E.getPropagationContext().sampleRand.toString()))), + c(d), + e.emit("createDsc", d, n), + d + ); +} +function b(t, e = 100, n = 1 / 0) { + try { + return Z("", t, e, n); + } catch (r) { + return { ERROR: `**non-serializable** (${r})` }; + } +} +function un(t, e = 3, n = 100 * 1024) { + const r = b(t, e); + return ln(r) > n ? un(t, e - 1, n) : r; +} +function Z(t, e, n = 1 / 0, r = 1 / 0, s = _n()) { + const [i, o] = s; + if ( + e == null || + ["boolean", "string"].includes(typeof e) || + (typeof e == "number" && Number.isFinite(e)) + ) + return e; + const c = fn(t, e); + if (!c.startsWith("[object ")) return c; + if (e.__sentry_skip_normalization__) return e; + const a = + typeof e.__sentry_override_normalization_depth__ == "number" + ? e.__sentry_override_normalization_depth__ + : n; + if (a === 0) return c.replace("object ", ""); + if (i(e)) return "[Circular ~]"; + const u = e; + if (u && typeof u.toJSON == "function") + try { + const p = u.toJSON(); + return Z("", p, a - 1, r, s); + } catch {} + const f = Array.isArray(e) ? [] : {}; + let d = 0; + const l = Pt(e); + for (const p in l) { + if (!Object.prototype.hasOwnProperty.call(l, p)) continue; + if (d >= r) { + f[p] = "[MaxProperties ~]"; + break; + } + const E = l[p]; + (f[p] = Z(p, E, a - 1, r, s)), d++; + } + return o(e), f; +} +function fn(t, e) { + try { + if (t === "domain" && e && typeof e == "object" && e._events) + return "[Domain]"; + if (t === "domainEmitter") return "[DomainEmitter]"; + if (typeof global < "u" && e === global) return "[Global]"; + if (typeof window < "u" && e === window) return "[Window]"; + if (typeof document < "u" && e === document) return "[Document]"; + if (wt(e)) return "[VueViewModel]"; + if (de(e)) return "[SyntheticEvent]"; + if (typeof e == "number" && !Number.isFinite(e)) return `[${e}]`; + if (typeof e == "function") return `[Function: ${ie(e)}]`; + if (typeof e == "symbol") return `[${String(e)}]`; + if (typeof e == "bigint") return `[BigInt: ${String(e)}]`; + const n = dn(e); + return /^HTML(\w*)Element$/.test(n) + ? `[HTMLElement: ${n}]` + : `[object ${n}]`; + } catch (n) { + return `**non-serializable** (${n})`; + } +} +function dn(t) { + const e = Object.getPrototypeOf(t); + return e != null && e.constructor ? e.constructor.name : "null prototype"; +} +function pn(t) { + return ~-encodeURI(t).split(/%..|./).length; +} +function ln(t) { + return pn(JSON.stringify(t)); +} +function _n() { + const t = new WeakSet(); + function e(r) { + return t.has(r) ? !0 : (t.add(r), !1); + } + function n(r) { + t.delete(r); + } + return [e, n]; +} +const X = 0, + At = 1, + Ct = 2; +function Tr(t) { + return new N((e) => { + e(t); + }); +} +function Ir(t) { + return new N((e, n) => { + n(t); + }); +} +class N { + constructor(e) { + (this._state = X), (this._handlers = []), this._runExecutor(e); + } + then(e, n) { + return new N((r, s) => { + this._handlers.push([ + !1, + (i) => { + if (!e) r(i); + else + try { + r(e(i)); + } catch (o) { + s(o); + } + }, + (i) => { + if (!n) s(i); + else + try { + r(n(i)); + } catch (o) { + s(o); + } + }, + ]), + this._executeHandlers(); + }); + } + catch(e) { + return this.then((n) => n, e); + } + finally(e) { + return new N((n, r) => { + let s, i; + return this.then( + (o) => { + (i = !1), (s = o), e && e(); + }, + (o) => { + (i = !0), (s = o), e && e(); + } + ).then(() => { + if (i) { + r(s); + return; + } + n(s); + }); + }); + } + _executeHandlers() { + if (this._state === X) return; + const e = this._handlers.slice(); + (this._handlers = []), + e.forEach((n) => { + n[0] || + (this._state === At && n[1](this._value), + this._state === Ct && n[2](this._value), + (n[0] = !0)); + }); + } + _runExecutor(e) { + const n = (i, o) => { + if (this._state === X) { + if (it(o)) { + o.then(r, s); + return; + } + (this._state = i), (this._value = o), this._executeHandlers(); + } + }, + r = (i) => { + n(At, i); + }, + s = (i) => { + n(Ct, i); + }; + try { + e(r, s); + } catch (i) { + s(i); + } + } +} +function tt(t, e, n, r = 0) { + return new N((s, i) => { + const o = t[r]; + if (e === null || typeof o != "function") s(e); + else { + const c = o({ ...e }, n); + S && + o.id && + c === null && + h.log(`Event processor "${o.id}" dropped event`), + it(c) + ? c.then((a) => tt(t, a, n, r + 1).then(s)).then(null, i) + : tt(t, c, n, r + 1) + .then(s) + .then(null, i); + } + }); +} +function gn(t, e) { + const { + fingerprint: n, + span: r, + breadcrumbs: s, + sdkProcessingMetadata: i, + } = e; + hn(t, e), r && yn(t, r), En(t, n), mn(t, s), Sn(t, i); +} +function Nt(t, e) { + const { + extra: n, + tags: r, + user: s, + contexts: i, + level: o, + sdkProcessingMetadata: c, + breadcrumbs: a, + fingerprint: u, + eventProcessors: f, + attachments: d, + propagationContext: l, + transactionName: p, + span: E, + } = e; + P(t, "extra", n), + P(t, "tags", r), + P(t, "user", s), + P(t, "contexts", i), + (t.sdkProcessingMetadata = B(t.sdkProcessingMetadata, c, 2)), + o && (t.level = o), + p && (t.transactionName = p), + E && (t.span = E), + a.length && (t.breadcrumbs = [...t.breadcrumbs, ...a]), + u.length && (t.fingerprint = [...t.fingerprint, ...u]), + f.length && (t.eventProcessors = [...t.eventProcessors, ...f]), + d.length && (t.attachments = [...t.attachments, ...d]), + (t.propagationContext = { ...t.propagationContext, ...l }); +} +function P(t, e, n) { + t[e] = B(t[e], n, 1); +} +function hn(t, e) { + const { + extra: n, + tags: r, + user: s, + contexts: i, + level: o, + transactionName: c, + } = e; + Object.keys(n).length && (t.extra = { ...n, ...t.extra }), + Object.keys(r).length && (t.tags = { ...r, ...t.tags }), + Object.keys(s).length && (t.user = { ...s, ...t.user }), + Object.keys(i).length && (t.contexts = { ...i, ...t.contexts }), + o && (t.level = o), + c && t.type !== "transaction" && (t.transaction = c); +} +function mn(t, e) { + const n = [...(t.breadcrumbs || []), ...e]; + t.breadcrumbs = n.length ? n : void 0; +} +function Sn(t, e) { + t.sdkProcessingMetadata = { ...t.sdkProcessingMetadata, ...e }; +} +function yn(t, e) { + (t.contexts = { trace: en(e), ...t.contexts }), + (t.sdkProcessingMetadata = { + dynamicSamplingContext: cn(e), + ...t.sdkProcessingMetadata, + }); + const n = Ht(e), + r = Y(n).description; + r && !t.transaction && t.type === "transaction" && (t.transaction = r); +} +function En(t, e) { + (t.fingerprint = t.fingerprint + ? Array.isArray(t.fingerprint) + ? t.fingerprint + : [t.fingerprint] + : []), + e && (t.fingerprint = t.fingerprint.concat(e)), + t.fingerprint.length || delete t.fingerprint; +} +let k, xt, L; +function bn(t) { + const e = g._sentryDebugIds; + if (!e) return {}; + const n = Object.keys(e); + return ( + (L && n.length === xt) || + ((xt = n.length), + (L = n.reduce((r, s) => { + k || (k = {}); + const i = k[s]; + if (i) r[i[0]] = i[1]; + else { + const o = t(s); + for (let c = o.length - 1; c >= 0; c--) { + const a = o[c], + u = a == null ? void 0 : a.filename, + f = e[s]; + if (u && f) { + (r[u] = f), (k[s] = [u, f]); + break; + } + } + } + return r; + }, {}))), + L + ); +} +function Ar(t, e, n, r, s, i) { + const { normalizeDepth: o = 3, normalizeMaxBreadth: c = 1e3 } = t, + a = { + ...e, + event_id: e.event_id || n.event_id || T(), + timestamp: e.timestamp || at(), + }, + u = n.integrations || t.integrations.map((m) => m.name); + Tn(a, t), + Cn(a, u), + s && s.emit("applyFrameMetadata", e), + e.type === void 0 && In(a, t.stackParser); + const f = xn(r, n.captureContext); + n.mechanism && Se(a, n.mechanism); + const d = s ? s.getEventProcessors() : [], + l = we().getScopeData(); + if (i) { + const m = i.getScopeData(); + Nt(l, m); + } + if (f) { + const m = f.getScopeData(); + Nt(l, m); + } + const p = [...(n.attachments || []), ...l.attachments]; + p.length && (n.attachments = p), gn(a, l); + const E = [...d, ...l.eventProcessors]; + return tt(E, a, n).then( + (m) => (m && An(m), typeof o == "number" && o > 0 ? Nn(m, o, c) : m) + ); +} +function Tn(t, e) { + const { environment: n, release: r, dist: s, maxValueLength: i = 250 } = e; + (t.environment = t.environment || n || Yt), + !t.release && r && (t.release = r), + !t.dist && s && (t.dist = s); + const o = t.request; + o != null && o.url && (o.url = $(o.url, i)); +} +function In(t, e) { + var r, s; + const n = bn(e); + (s = (r = t.exception) == null ? void 0 : r.values) == null || + s.forEach((i) => { + var o, c; + (c = (o = i.stacktrace) == null ? void 0 : o.frames) == null || + c.forEach((a) => { + a.filename && (a.debug_id = n[a.filename]); + }); + }); +} +function An(t) { + var r, s; + const e = {}; + if ( + ((s = (r = t.exception) == null ? void 0 : r.values) == null || + s.forEach((i) => { + var o, c; + (c = (o = i.stacktrace) == null ? void 0 : o.frames) == null || + c.forEach((a) => { + a.debug_id && + (a.abs_path + ? (e[a.abs_path] = a.debug_id) + : a.filename && (e[a.filename] = a.debug_id), + delete a.debug_id); + }); + }), + Object.keys(e).length === 0) + ) + return; + (t.debug_meta = t.debug_meta || {}), + (t.debug_meta.images = t.debug_meta.images || []); + const n = t.debug_meta.images; + Object.entries(e).forEach(([i, o]) => { + n.push({ type: "sourcemap", code_file: i, debug_id: o }); + }); +} +function Cn(t, e) { + e.length > 0 && + ((t.sdk = t.sdk || {}), + (t.sdk.integrations = [...(t.sdk.integrations || []), ...e])); +} +function Nn(t, e, n) { + var s, i; + if (!t) return null; + const r = { + ...t, + ...(t.breadcrumbs && { + breadcrumbs: t.breadcrumbs.map((o) => ({ + ...o, + ...(o.data && { data: b(o.data, e, n) }), + })), + }), + ...(t.user && { user: b(t.user, e, n) }), + ...(t.contexts && { contexts: b(t.contexts, e, n) }), + ...(t.extra && { extra: b(t.extra, e, n) }), + }; + return ( + (s = t.contexts) != null && + s.trace && + r.contexts && + ((r.contexts.trace = t.contexts.trace), + t.contexts.trace.data && + (r.contexts.trace.data = b(t.contexts.trace.data, e, n))), + t.spans && + (r.spans = t.spans.map((o) => ({ + ...o, + ...(o.data && { data: b(o.data, e, n) }), + }))), + (i = t.contexts) != null && + i.flags && + r.contexts && + (r.contexts.flags = b(t.contexts.flags, 3, n)), + r + ); +} +function xn(t, e) { + if (!e) return t; + const n = t ? t.clone() : new y(); + return n.update(e), n; +} +function Rn(t) { + if (t) + return On(t) ? { captureContext: t } : Mn(t) ? { captureContext: t } : t; +} +function On(t) { + return t instanceof y || typeof t == "function"; +} +const Dn = [ + "user", + "level", + "extra", + "contexts", + "tags", + "fingerprint", + "propagationContext", +]; +function Mn(t) { + return Object.keys(t).some((e) => Dn.includes(e)); +} +function Cr(t, e) { + return R().captureException(t, Rn(e)); +} +function Nr(t, e) { + return R().captureEvent(t, e); +} +function xr(t, e) { + z().setContext(t, e); +} +function Rr() { + const t = H(); + return ( + (t == null ? void 0 : t.getOptions().enabled) !== !1 && + !!(t != null && t.getTransport()) + ); +} +function Or(t) { + const e = z(), + n = R(), + { userAgent: r } = g.navigator || {}, + s = Te({ + user: n.getUser() || e.getUser(), + ...(r && { userAgent: r }), + ...t, + }), + i = e.getSession(); + return ( + (i == null ? void 0 : i.status) === "ok" && v(i, { status: "exited" }), + Wt(), + e.setSession(s), + s + ); +} +function Wt() { + const t = z(), + n = R().getSession() || t.getSession(); + n && Ie(n), Xt(), t.setSession(); +} +function Xt() { + const t = z(), + e = H(), + n = t.getSession(); + n && e && e.captureSession(n); +} +function Dr(t = !1) { + if (t) { + Wt(); + return; + } + Xt(); +} +export { + fr as $, + rr as A, + H as B, + jt as C, + S as D, + R as E, + mr as F, + g as G, + nr as H, + lr as I, + it as J, + an as K, + Et as L, + qn as M, + D as N, + G as O, + q as P, + Er as Q, + z as R, + _ as S, + pr as T, + gr as U, + ar as V, + ke as W, + Zn as X, + hr as Y, + at as Z, + mt as _, + Sr as a, + T as a0, + Xn as a1, + Un as a2, + v as a3, + Tr as a4, + Yt as a5, + N as a6, + Ar as a7, + Qn as a8, + br as a9, + vn as aA, + he as aB, + Wn as aC, + Se as aD, + Cr as aE, + Ln as aF, + Fn as aG, + $n as aH, + ce as aI, + un as aJ, + Vn as aK, + Jn as aL, + le as aM, + Bn as aN, + F as aO, + re as aP, + ne as aQ, + Gn as aR, + Or as aS, + Dr as aT, + Nr as aU, + Pn as aV, + Le as aW, + ir as aX, + dr as aY, + Ir as aa, + ae as ab, + B as ac, + Mt as ad, + j as ae, + nt as af, + O as ag, + Rr as ah, + _r as ai, + cr as aj, + qe as ak, + Ze as al, + Qe as am, + Yn as an, + Kn as ao, + zn as ap, + M as aq, + wn as ar, + Hn as as, + dt as at, + kn as au, + or as av, + jn as aw, + vt as ax, + oe as ay, + I as az, + Ht as b, + U as c, + h as d, + ut as e, + et as f, + ie as g, + ur as h, + ge as i, + cn as j, + Y as k, + yr as l, + ft as m, + b as n, + tr as o, + er as p, + Fe as q, + $e as r, + xr as s, + ct as t, + zt as u, + Tt as v, + Pe as w, + nn as x, + on as y, + sr as z, +}; diff --git a/frontend-backup/_app/immutable/chunks/DnhglgUZ.js b/frontend-backup/_app/immutable/chunks/DnhglgUZ.js deleted file mode 100644 index e72b27f..0000000 --- a/frontend-backup/_app/immutable/chunks/DnhglgUZ.js +++ /dev/null @@ -1 +0,0 @@ -(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="318a9da5-f9ae-41c4-a6ad-1557223c6f66",e._sentryDebugIdIdentifier="sentry-dbid-318a9da5-f9ae-41c4-a6ad-1557223c6f66")})()}catch{}const b=e=>e;function h(e){const t=e-1;return t*t*t+1}function w(e,{delay:t=0,duration:i=400,easing:s=b}={}){const r=+getComputedStyle(e).opacity;return{delay:t,duration:i,easing:s,css:a=>`opacity: ${a*r}`}}function m(e,{delay:t=0,duration:i=400,easing:s=h,axis:r="y"}={}){const a=getComputedStyle(e),c=+a.opacity,p=r==="y"?"height":"width",l=parseFloat(a[p]),o=r==="y"?["top","bottom"]:["left","right"],d=o.map(n=>`${n[0].toUpperCase()}${n.slice(1)}`),f=parseFloat(a[`padding${d[0]}`]),y=parseFloat(a[`padding${d[1]}`]),u=parseFloat(a[`margin${d[0]}`]),g=parseFloat(a[`margin${d[1]}`]),_=parseFloat(a[`border${d[0]}Width`]),$=parseFloat(a[`border${d[1]}Width`]);return{delay:t,duration:i,easing:s,css:n=>`overflow: hidden;opacity: ${Math.min(n*20,1)*c};${p}: ${n*l}px;padding-${o[0]}: ${n*f}px;padding-${o[1]}: ${n*y}px;margin-${o[0]}: ${n*u}px;margin-${o[1]}: ${n*g}px;border-${o[0]}-width: ${n*_}px;border-${o[1]}-width: ${n*$}px;min-${p}: 0`}}export{w as f,m as s}; diff --git a/frontend-backup/_app/immutable/chunks/DoL3ojdE.js b/frontend-backup/_app/immutable/chunks/DoL3ojdE.js new file mode 100644 index 0000000..aebd0cd --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DoL3ojdE.js @@ -0,0 +1,167 @@ +import { + i as h, + h as p, + e as v, + ai as m, + ah as w, + K as E, + E as x, + k as T, + az as C, + a5 as S, + o as y, + O as k, + aA as l, + y as A, + aB as _, + aC as D, + w as o, + a1 as I, + aD as b, + aE as R, + z as u, + aF as z, + aG as F, + aH as N, + aI as O, + aJ as P, + aK as j, + aL as K, +} from "./CMvZtFtm.js"; +import { h as L, m as M, u as U } from "./DVA6u9-7.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "6413790b-21e4-4c33-94fd-67237f9cfc7a"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-6413790b-21e4-4c33-94fd-67237f9cfc7a")); + })(); +} catch {} +function W(e, t, ...r) { + var a = e, + n = C, + s; + h(() => { + n !== (n = t()) && (s && (S(s), (s = null)), (s = T(() => n(a, ...r)))); + }, x), + p && (a = y); +} +function $(e) { + return (t, ...r) => { + var i; + var a = e(...r), + n; + if (p) (n = y), v(); + else { + var s = a.render().trim(), + c = m(s); + (n = k(c)), t.before(n); + } + const f = (i = a.setup) == null ? void 0 : i.call(a, n); + w(n, n), typeof f == "function" && E(f); + }; +} +function B() { + var e; + return ( + _ === null && D(), ((e = _).ac ?? (e.ac = new AbortController())).signal + ); +} +function g(e) { + o === null && l(), + R && o.l !== null + ? d(o).m.push(e) + : A(() => { + const t = u(e); + if (typeof t == "function") return t; + }); +} +function G(e) { + o === null && l(), g(() => () => u(e)); +} +function H(e, t, { bubbles: r = !1, cancelable: a = !1 } = {}) { + return new CustomEvent(e, { detail: t, bubbles: r, cancelable: a }); +} +function J() { + const e = o; + return ( + e === null && l(), + (t, r, a) => { + var s; + const n = (s = e.s.$$events) == null ? void 0 : s[t]; + if (n) { + const c = I(n) ? n.slice() : [n], + f = H(t, r, a); + for (const i of c) i.call(e.x, f); + return !f.defaultPrevented; + } + return !0; + } + ); +} +function Y(e) { + o === null && l(), o.l === null && b(), d(o).b.push(e); +} +function q(e) { + o === null && l(), o.l === null && b(), d(o).a.push(e); +} +function d(e) { + var t = e.l; + return t.u ?? (t.u = { a: [], b: [], m: [] }); +} +const X = Object.freeze( + Object.defineProperty( + { + __proto__: null, + afterUpdate: q, + beforeUpdate: Y, + createEventDispatcher: J, + createRawSnippet: $, + flushSync: z, + getAbortSignal: B, + getAllContexts: F, + getContext: N, + hasContext: O, + hydrate: L, + mount: M, + onDestroy: G, + onMount: g, + setContext: P, + settled: j, + tick: K, + unmount: U, + untrack: u, + }, + Symbol.toStringTag, + { value: "Module" } + ) + ), + Z = "1759353996237"; +export { X as a, g as o, W as s, Z as v }; diff --git a/frontend-backup/_app/immutable/chunks/DouSnzU9.js b/frontend-backup/_app/immutable/chunks/DouSnzU9.js new file mode 100644 index 0000000..5714d54 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DouSnzU9.js @@ -0,0 +1,40 @@ +import { g as o } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "9b7e0fbd-b2ac-4ffa-96b2-eb70cfb71837"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-9b7e0fbd-b2ac-4ffa-96b2-eb70cfb71837")); + })(); +} catch {} +const f = () => "Role", + d = () => "Cargo", + r = (e = {}, n = {}) => ((n.locale ?? o()) === "en" ? f() : d()); +export { r }; diff --git a/frontend-backup/_app/immutable/chunks/Dp1pzeXC.js b/frontend-backup/_app/immutable/chunks/Dp1pzeXC.js deleted file mode 100644 index 1678ee7..0000000 --- a/frontend-backup/_app/immutable/chunks/Dp1pzeXC.js +++ /dev/null @@ -1,51 +0,0 @@ -const y = "modulepreload", - w = function (f, a) { - return new URL(f, a).href; - }, - E = {}, - g = function (a, u, d) { - let h = Promise.resolve(); - if (u && u.length > 0) { - let s = function (e) { - return Promise.all( - e.map((r) => - Promise.resolve(r).then( - (l) => ({ status: "fulfilled", value: l }), - (l) => ({ status: "rejected", reason: l }) - ) - ) - ); - }; - const t = document.getElementsByTagName("link"), - o = document.querySelector("meta[property=csp-nonce]"), - v = (o == null ? void 0 : o.nonce) || (o == null ? void 0 : o.getAttribute("nonce")); - h = s( - u.map((e) => { - if (((e = w(e, d)), e in E)) return; - E[e] = !0; - const r = e.endsWith(".css"), - l = r ? '[rel="stylesheet"]' : ""; - if (!!d) - for (let i = t.length - 1; i >= 0; i--) { - const c = t[i]; - if (c.href === e && (!r || c.rel === "stylesheet")) return; - } - else if (document.querySelector(`link[href="${e}"]${l}`)) return; - const n = document.createElement("link"); - if (((n.rel = r ? "stylesheet" : y), r || (n.as = "script"), (n.crossOrigin = ""), (n.href = e), v && n.setAttribute("nonce", v), document.head.appendChild(n), r)) - return new Promise((i, c) => { - n.addEventListener("load", i), n.addEventListener("error", () => c(new Error(`Unable to preload CSS for ${e}`))); - }); - }) - ); - } - function m(s) { - const t = new Event("vite:preloadError", { cancelable: !0 }); - if (((t.payload = s), window.dispatchEvent(t), !t.defaultPrevented)) throw s; - } - return h.then((s) => { - for (const t of s || []) t.status === "rejected" && m(t.reason); - return a().catch(m); - }); - }; -export { g as _ }; diff --git a/frontend-backup/_app/immutable/chunks/Dpga8uG-.js b/frontend-backup/_app/immutable/chunks/Dpga8uG-.js new file mode 100644 index 0000000..90a1e18 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Dpga8uG-.js @@ -0,0 +1,151 @@ +import { + F as E, + G as _, + l as v, + z as g, + H as i, + I as S, + h as k, + J as I, + K as D, + L as y, +} from "./CMvZtFtm.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "6fc49d13-f7d8-42d1-9723-e4fb7b109694"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-6fc49d13-f7d8-42d1-9723-e4fb7b109694")); + })(); +} catch {} +function A(e, d, l = d) { + var r = E(), + f = new WeakSet(); + _(e, "input", (s) => { + var a = s ? e.defaultValue : e.value; + if ( + ((a = h(e) ? b(a) : a), + l(a), + v !== null && f.add(v), + r && a !== (a = d())) + ) { + var t = e.selectionStart, + n = e.selectionEnd; + (e.value = a ?? ""), + n !== null && + ((e.selectionStart = t), + (e.selectionEnd = Math.min(n, e.value.length))); + } + }), + ((k && e.defaultValue !== e.value) || (g(d) == null && e.value)) && + (l(h(e) ? b(e.value) : e.value), v !== null && f.add(v)), + i(() => { + var s = d(); + if (e === document.activeElement) { + var a = S ?? v; + if (f.has(a)) return; + } + (h(e) && s === b(e.value)) || + (e.type === "date" && !s && !e.value) || + (s !== e.value && (e.value = s ?? "")); + }); +} +const u = new Set(); +function C(e, d, l, r, f = r) { + var s = l.getAttribute("type") === "checkbox", + a = e; + let t = !1; + if (d !== null) for (var n of d) a = a[n] ?? (a[n] = []); + a.push(l), + _( + l, + "change", + () => { + var c = l.__value; + s && (c = m(a, c, l.checked)), f(c); + }, + () => f(s ? [] : null) + ), + i(() => { + var c = r(); + if (k && l.defaultChecked !== l.checked) { + t = !0; + return; + } + s + ? ((c = c || []), (l.checked = c.includes(l.__value))) + : (l.checked = I(l.__value, c)); + }), + D(() => { + var c = a.indexOf(l); + c !== -1 && a.splice(c, 1); + }), + u.has(a) || + (u.add(a), + y(() => { + a.sort((c, o) => (c.compareDocumentPosition(o) === 4 ? -1 : 1)), + u.delete(a); + })), + y(() => { + if (t) { + var c; + if (s) c = m(a, c, l.checked); + else { + var o = a.find((w) => w.checked); + c = o == null ? void 0 : o.__value; + } + f(c); + } + }); +} +function L(e, d, l = d) { + _(e, "change", (r) => { + var f = r ? e.defaultChecked : e.checked; + l(f); + }), + ((k && e.defaultChecked !== e.checked) || g(d) == null) && l(e.checked), + i(() => { + var r = d(); + e.checked = !!r; + }); +} +function m(e, d, l) { + for (var r = new Set(), f = 0; f < e.length; f += 1) + e[f].checked && r.add(e[f].__value); + return l || r.delete(d), Array.from(r); +} +function h(e) { + var d = e.type; + return d === "number" || d === "range"; +} +function b(e) { + return e === "" ? null : +e; +} +export { L as a, A as b, C as c }; diff --git a/frontend-backup/_app/immutable/chunks/Drv8f_fG.js b/frontend-backup/_app/immutable/chunks/Drv8f_fG.js deleted file mode 100644 index 95a7fdf..0000000 --- a/frontend-backup/_app/immutable/chunks/Drv8f_fG.js +++ /dev/null @@ -1,18 +0,0 @@ -import { g as f } from "./DklPLC_x.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - n = new e.Error().stack; - n && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[n] = "b6fedc18-c426-4b17-bf09-8644b91cab4b"), (e._sentryDebugIdIdentifier = "sentry-dbid-b6fedc18-c426-4b17-bf09-8644b91cab4b")); - })(); -} catch {} -const t = () => "Refresh", - o = () => "Atualizar", - l = (e = {}, n = {}) => ((n.locale ?? f()) === "en" ? t() : o()); -export { l as r }; diff --git a/frontend-backup/_app/immutable/chunks/DsJqb9ei.js b/frontend-backup/_app/immutable/chunks/DsJqb9ei.js deleted file mode 100644 index 5299b41..0000000 --- a/frontend-backup/_app/immutable/chunks/DsJqb9ei.js +++ /dev/null @@ -1,1023 +0,0 @@ -var sr = Object.defineProperty; -var Re = (e) => { - throw TypeError(e); -}; -var nr = (e, r, o) => (r in e ? sr(e, r, { enumerable: !0, configurable: !0, writable: !0, value: o }) : (e[r] = o)); -var Pe = (e, r, o) => nr(e, typeof r != "symbol" ? r + "" : r, o), - ae = (e, r, o) => r.has(e) || Re("Cannot " + o); -var ie = (e, r, o) => (ae(e, r, "read from private field"), o ? o.call(e) : r.get(e)), - Q = (e, r, o) => (r.has(e) ? Re("Cannot add the same private member more than once") : r instanceof WeakSet ? r.add(e) : r.set(e, o)), - Te = (e, r, o, t) => (ae(e, r, "write to private field"), t ? t.call(e, o) : r.set(e, o), o), - le = (e, r, o) => (ae(e, r, "access private method"), o); -import "./Bzak7iHL.js"; -import { p as $e, f as we, d as me, r as pe, t as ue, b as re, c as He, q as ar } from "./DUoKDNpf.js"; -import { i as ir, r as lr } from "./5NasrULQ.js"; -import { s as We, c as cr, b as dr, a as mr } from "./B1GmkH4o.js"; -import { h as pr } from "./BMKgGW48.js"; -import { S as ge } from "./1lh-LSvX.js"; -const Ee = 9, - ur = 95, - gr = 45, - Ge = 5; -function br(e) { - return e.split("").reduce((r, o) => (r ^ o.charCodeAt(0)) * -Ge, Ge) >>> 2; -} -function qe(e = "", r = ur, o = gr, t = br) { - const s = t(e), - i = (s % Ee) * (360 / Ee); - return ( - [...Array(e ? 25 : 0)].reduce( - (l, p, c) => (s & (1 << c % 15) ? l + `` : l), - `` - ) + "" - ); -} -var je, A, oe, H, W, be, Fe; -((je = globalThis.customElements) != null && je.get("minidenticon-svg")) || - (Fe = globalThis.customElements) == null || - Fe.define( - "minidenticon-svg", - ((A = class extends HTMLElement { - constructor() { - super(...arguments); - Q(this, W); - Q(this, H, !1); - } - connectedCallback() { - le(this, W, be).call(this), Te(this, H, !0); - } - attributeChangedCallback() { - ie(this, H) && le(this, W, be).call(this); - } - }), - (oe = new WeakMap()), - (H = new WeakMap()), - (W = new WeakSet()), - (be = function () { - var s; - const o = A.observedAttributes.map((i) => this.getAttribute(i) || void 0), - t = o.join(","); - this.innerHTML = (s = ie(A, oe))[t] ?? (s[t] = qe(...o)); - }), - Pe(A, "observedAttributes", ["username", "saturation", "lightness"]), - Q(A, oe, {}), - A) - ); -var fr = we("
        "); -function hr(e, r) { - $e(r, !0); - var o = fr(), - t = me(o); - pr(t, () => qe(r.userId.toString(), 95, 45)), pe(o), ue(() => We(o, 1, `bg-base-200 minidenticon ${r.class ?? "" ?? ""}`)), re(e, o), He(); -} -const ve = "-", - xr = (e) => { - const r = vr(e), - { conflictingClassGroups: o, conflictingClassGroupModifiers: t } = e; - return { - getClassGroupId: (l) => { - const p = l.split(ve); - return p[0] === "" && p.length !== 1 && p.shift(), De(p, r) || wr(l); - }, - getConflictingClassGroupIds: (l, p) => { - const c = o[l] || []; - return p && t[l] ? [...c, ...t[l]] : c; - }, - }; - }, - De = (e, r) => { - var l; - if (e.length === 0) return r.classGroupId; - const o = e[0], - t = r.nextPart.get(o), - s = t ? De(e.slice(1), t) : void 0; - if (s) return s; - if (r.validators.length === 0) return; - const i = e.join(ve); - return (l = r.validators.find(({ validator: p }) => p(i))) == null ? void 0 : l.classGroupId; - }, - Le = /^\[(.+)\]$/, - wr = (e) => { - if (Le.test(e)) { - const r = Le.exec(e)[1], - o = r == null ? void 0 : r.substring(0, r.indexOf(":")); - if (o) return "arbitrary.." + o; - } - }, - vr = (e) => { - const { theme: r, classGroups: o } = e, - t = { nextPart: new Map(), validators: [] }; - for (const s in o) fe(o[s], t, s, r); - return t; - }, - fe = (e, r, o, t) => { - e.forEach((s) => { - if (typeof s == "string") { - const i = s === "" ? r : Ne(r, s); - i.classGroupId = o; - return; - } - if (typeof s == "function") { - if (kr(s)) { - fe(s(t), r, o, t); - return; - } - r.validators.push({ validator: s, classGroupId: o }); - return; - } - Object.entries(s).forEach(([i, l]) => { - fe(l, Ne(r, i), o, t); - }); - }); - }, - Ne = (e, r) => { - let o = e; - return ( - r.split(ve).forEach((t) => { - o.nextPart.has(t) || o.nextPart.set(t, { nextPart: new Map(), validators: [] }), (o = o.nextPart.get(t)); - }), - o - ); - }, - kr = (e) => e.isThemeGetter, - yr = (e) => { - if (e < 1) return { get: () => {}, set: () => {} }; - let r = 0, - o = new Map(), - t = new Map(); - const s = (i, l) => { - o.set(i, l), r++, r > e && ((r = 0), (t = o), (o = new Map())); - }; - return { - get(i) { - let l = o.get(i); - if (l !== void 0) return l; - if ((l = t.get(i)) !== void 0) return s(i, l), l; - }, - set(i, l) { - o.has(i) ? o.set(i, l) : s(i, l); - }, - }; - }, - he = "!", - xe = ":", - zr = xe.length, - Cr = (e) => { - const { prefix: r, experimentalParseClassName: o } = e; - let t = (s) => { - const i = []; - let l = 0, - p = 0, - c = 0, - f; - for (let x = 0; x < s.length; x++) { - let y = s[x]; - if (l === 0 && p === 0) { - if (y === xe) { - i.push(s.slice(c, x)), (c = x + zr); - continue; - } - if (y === "/") { - f = x; - continue; - } - } - y === "[" ? l++ : y === "]" ? l-- : y === "(" ? p++ : y === ")" && p--; - } - const h = i.length === 0 ? s : s.substring(c), - k = Mr(h), - S = k !== h, - I = f && f > c ? f - c : void 0; - return { modifiers: i, hasImportantModifier: S, baseClassName: k, maybePostfixModifierPosition: I }; - }; - if (r) { - const s = r + xe, - i = t; - t = (l) => (l.startsWith(s) ? i(l.substring(s.length)) : { isExternal: !0, modifiers: [], hasImportantModifier: !1, baseClassName: l, maybePostfixModifierPosition: void 0 }); - } - if (o) { - const s = t; - t = (i) => o({ className: i, parseClassName: s }); - } - return t; - }, - Mr = (e) => (e.endsWith(he) ? e.substring(0, e.length - 1) : e.startsWith(he) ? e.substring(1) : e), - Ar = (e) => { - const r = Object.fromEntries(e.orderSensitiveModifiers.map((t) => [t, !0])); - return (t) => { - if (t.length <= 1) return t; - const s = []; - let i = []; - return ( - t.forEach((l) => { - l[0] === "[" || r[l] ? (s.push(...i.sort(), l), (i = [])) : i.push(l); - }), - s.push(...i.sort()), - s - ); - }; - }, - Sr = (e) => ({ cache: yr(e.cacheSize), parseClassName: Cr(e), sortModifiers: Ar(e), ...xr(e) }), - Ir = /\s+/, - Rr = (e, r) => { - const { parseClassName: o, getClassGroupId: t, getConflictingClassGroupIds: s, sortModifiers: i } = r, - l = [], - p = e.trim().split(Ir); - let c = ""; - for (let f = p.length - 1; f >= 0; f -= 1) { - const h = p[f], - { isExternal: k, modifiers: S, hasImportantModifier: I, baseClassName: x, maybePostfixModifierPosition: y } = o(h); - if (k) { - c = h + (c.length > 0 ? " " + c : c); - continue; - } - let L = !!y, - P = t(L ? x.substring(0, y) : x); - if (!P) { - if (!L) { - c = h + (c.length > 0 ? " " + c : c); - continue; - } - if (((P = t(x)), !P)) { - c = h + (c.length > 0 ? " " + c : c); - continue; - } - L = !1; - } - const q = i(S).join(":"), - j = I ? q + he : q, - N = j + P; - if (l.includes(N)) continue; - l.push(N); - const _ = s(P, L); - for (let T = 0; T < _.length; ++T) { - const F = _[T]; - l.push(j + F); - } - c = h + (c.length > 0 ? " " + c : c); - } - return c; - }; -function Pr() { - let e = 0, - r, - o, - t = ""; - for (; e < arguments.length; ) (r = arguments[e++]) && (o = Xe(r)) && (t && (t += " "), (t += o)); - return t; -} -const Xe = (e) => { - if (typeof e == "string") return e; - let r, - o = ""; - for (let t = 0; t < e.length; t++) e[t] && (r = Xe(e[t])) && (o && (o += " "), (o += r)); - return o; -}; -function Tr(e, ...r) { - let o, - t, - s, - i = l; - function l(c) { - const f = r.reduce((h, k) => k(h), e()); - return (o = Sr(f)), (t = o.cache.get), (s = o.cache.set), (i = p), p(c); - } - function p(c) { - const f = t(c); - if (f) return f; - const h = Rr(c, o); - return s(c, h), h; - } - return function () { - return i(Pr.apply(null, arguments)); - }; -} -const g = (e) => { - const r = (o) => o[e] || []; - return (r.isThemeGetter = !0), r; - }, - Je = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, - Ze = /^\((?:(\w[\w-]*):)?(.+)\)$/i, - Er = /^\d+\/\d+$/, - Gr = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, - Lr = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, - Nr = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, - _r = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, - Br = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, - O = (e) => Er.test(e), - u = (e) => !!e && !Number.isNaN(Number(e)), - R = (e) => !!e && Number.isInteger(Number(e)), - ce = (e) => e.endsWith("%") && u(e.slice(0, -1)), - M = (e) => Gr.test(e), - Or = () => !0, - Vr = (e) => Lr.test(e) && !Nr.test(e), - Ke = () => !1, - Ur = (e) => _r.test(e), - jr = (e) => Br.test(e), - Fr = (e) => !n(e) && !a(e), - $r = (e) => V(e, er, Ke), - n = (e) => Je.test(e), - G = (e) => V(e, rr, Vr), - de = (e) => V(e, Xr, u), - _e = (e) => V(e, Qe, Ke), - Hr = (e) => V(e, Ye, jr), - Y = (e) => V(e, or, Ur), - a = (e) => Ze.test(e), - $ = (e) => U(e, rr), - Wr = (e) => U(e, Jr), - Be = (e) => U(e, Qe), - qr = (e) => U(e, er), - Dr = (e) => U(e, Ye), - ee = (e) => U(e, or, !0), - V = (e, r, o) => { - const t = Je.exec(e); - return t ? (t[1] ? r(t[1]) : o(t[2])) : !1; - }, - U = (e, r, o = !1) => { - const t = Ze.exec(e); - return t ? (t[1] ? r(t[1]) : o) : !1; - }, - Qe = (e) => e === "position" || e === "percentage", - Ye = (e) => e === "image" || e === "url", - er = (e) => e === "length" || e === "size" || e === "bg-size", - rr = (e) => e === "length", - Xr = (e) => e === "number", - Jr = (e) => e === "family-name", - or = (e) => e === "shadow", - Zr = () => { - const e = g("color"), - r = g("font"), - o = g("text"), - t = g("font-weight"), - s = g("tracking"), - i = g("leading"), - l = g("breakpoint"), - p = g("container"), - c = g("spacing"), - f = g("radius"), - h = g("shadow"), - k = g("inset-shadow"), - S = g("text-shadow"), - I = g("drop-shadow"), - x = g("blur"), - y = g("perspective"), - L = g("aspect"), - P = g("ease"), - q = g("animate"), - j = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], - N = () => ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom"], - _ = () => [...N(), a, n], - T = () => ["auto", "hidden", "clip", "visible", "scroll"], - F = () => ["auto", "contain", "none"], - m = () => [a, n, c], - z = () => [O, "full", "auto", ...m()], - ke = () => [R, "none", "subgrid", a, n], - ye = () => ["auto", { span: ["full", R, a, n] }, R, a, n], - D = () => [R, "auto", a, n], - ze = () => ["auto", "min", "max", "fr", a, n], - te = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], - B = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], - C = () => ["auto", ...m()], - E = () => [O, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...m()], - d = () => [e, a, n], - Ce = () => [...N(), Be, _e, { position: [a, n] }], - Me = () => ["no-repeat", { repeat: ["", "x", "y", "space", "round"] }], - Ae = () => ["auto", "cover", "contain", qr, $r, { size: [a, n] }], - se = () => [ce, $, G], - w = () => ["", "none", "full", f, a, n], - v = () => ["", u, $, G], - X = () => ["solid", "dashed", "dotted", "double"], - Se = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], - b = () => [u, ce, Be, _e], - Ie = () => ["", "none", x, a, n], - J = () => ["none", u, a, n], - Z = () => ["none", u, a, n], - ne = () => [u, a, n], - K = () => [O, "full", ...m()]; - return { - cacheSize: 500, - theme: { - animate: ["spin", "ping", "pulse", "bounce"], - aspect: ["video"], - blur: [M], - breakpoint: [M], - color: [Or], - container: [M], - "drop-shadow": [M], - ease: ["in", "out", "in-out"], - font: [Fr], - "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"], - "inset-shadow": [M], - leading: ["none", "tight", "snug", "normal", "relaxed", "loose"], - perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"], - radius: [M], - shadow: [M], - spacing: ["px", u], - text: [M], - "text-shadow": [M], - tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"], - }, - classGroups: { - aspect: [{ aspect: ["auto", "square", O, n, a, L] }], - container: ["container"], - columns: [{ columns: [u, n, a, p] }], - "break-after": [{ "break-after": j() }], - "break-before": [{ "break-before": j() }], - "break-inside": [{ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"] }], - "box-decoration": [{ "box-decoration": ["slice", "clone"] }], - box: [{ box: ["border", "content"] }], - display: [ - "block", - "inline-block", - "inline", - "flex", - "inline-flex", - "table", - "inline-table", - "table-caption", - "table-cell", - "table-column", - "table-column-group", - "table-footer-group", - "table-header-group", - "table-row-group", - "table-row", - "flow-root", - "grid", - "inline-grid", - "contents", - "list-item", - "hidden", - ], - sr: ["sr-only", "not-sr-only"], - float: [{ float: ["right", "left", "none", "start", "end"] }], - clear: [{ clear: ["left", "right", "both", "none", "start", "end"] }], - isolation: ["isolate", "isolation-auto"], - "object-fit": [{ object: ["contain", "cover", "fill", "none", "scale-down"] }], - "object-position": [{ object: _() }], - overflow: [{ overflow: T() }], - "overflow-x": [{ "overflow-x": T() }], - "overflow-y": [{ "overflow-y": T() }], - overscroll: [{ overscroll: F() }], - "overscroll-x": [{ "overscroll-x": F() }], - "overscroll-y": [{ "overscroll-y": F() }], - position: ["static", "fixed", "absolute", "relative", "sticky"], - inset: [{ inset: z() }], - "inset-x": [{ "inset-x": z() }], - "inset-y": [{ "inset-y": z() }], - start: [{ start: z() }], - end: [{ end: z() }], - top: [{ top: z() }], - right: [{ right: z() }], - bottom: [{ bottom: z() }], - left: [{ left: z() }], - visibility: ["visible", "invisible", "collapse"], - z: [{ z: [R, "auto", a, n] }], - basis: [{ basis: [O, "full", "auto", p, ...m()] }], - "flex-direction": [{ flex: ["row", "row-reverse", "col", "col-reverse"] }], - "flex-wrap": [{ flex: ["nowrap", "wrap", "wrap-reverse"] }], - flex: [{ flex: [u, O, "auto", "initial", "none", n] }], - grow: [{ grow: ["", u, a, n] }], - shrink: [{ shrink: ["", u, a, n] }], - order: [{ order: [R, "first", "last", "none", a, n] }], - "grid-cols": [{ "grid-cols": ke() }], - "col-start-end": [{ col: ye() }], - "col-start": [{ "col-start": D() }], - "col-end": [{ "col-end": D() }], - "grid-rows": [{ "grid-rows": ke() }], - "row-start-end": [{ row: ye() }], - "row-start": [{ "row-start": D() }], - "row-end": [{ "row-end": D() }], - "grid-flow": [{ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"] }], - "auto-cols": [{ "auto-cols": ze() }], - "auto-rows": [{ "auto-rows": ze() }], - gap: [{ gap: m() }], - "gap-x": [{ "gap-x": m() }], - "gap-y": [{ "gap-y": m() }], - "justify-content": [{ justify: [...te(), "normal"] }], - "justify-items": [{ "justify-items": [...B(), "normal"] }], - "justify-self": [{ "justify-self": ["auto", ...B()] }], - "align-content": [{ content: ["normal", ...te()] }], - "align-items": [{ items: [...B(), { baseline: ["", "last"] }] }], - "align-self": [{ self: ["auto", ...B(), { baseline: ["", "last"] }] }], - "place-content": [{ "place-content": te() }], - "place-items": [{ "place-items": [...B(), "baseline"] }], - "place-self": [{ "place-self": ["auto", ...B()] }], - p: [{ p: m() }], - px: [{ px: m() }], - py: [{ py: m() }], - ps: [{ ps: m() }], - pe: [{ pe: m() }], - pt: [{ pt: m() }], - pr: [{ pr: m() }], - pb: [{ pb: m() }], - pl: [{ pl: m() }], - m: [{ m: C() }], - mx: [{ mx: C() }], - my: [{ my: C() }], - ms: [{ ms: C() }], - me: [{ me: C() }], - mt: [{ mt: C() }], - mr: [{ mr: C() }], - mb: [{ mb: C() }], - ml: [{ ml: C() }], - "space-x": [{ "space-x": m() }], - "space-x-reverse": ["space-x-reverse"], - "space-y": [{ "space-y": m() }], - "space-y-reverse": ["space-y-reverse"], - size: [{ size: E() }], - w: [{ w: [p, "screen", ...E()] }], - "min-w": [{ "min-w": [p, "screen", "none", ...E()] }], - "max-w": [{ "max-w": [p, "screen", "none", "prose", { screen: [l] }, ...E()] }], - h: [{ h: ["screen", "lh", ...E()] }], - "min-h": [{ "min-h": ["screen", "lh", "none", ...E()] }], - "max-h": [{ "max-h": ["screen", "lh", ...E()] }], - "font-size": [{ text: ["base", o, $, G] }], - "font-smoothing": ["antialiased", "subpixel-antialiased"], - "font-style": ["italic", "not-italic"], - "font-weight": [{ font: [t, a, de] }], - "font-stretch": [{ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", ce, n] }], - "font-family": [{ font: [Wr, n, r] }], - "fvn-normal": ["normal-nums"], - "fvn-ordinal": ["ordinal"], - "fvn-slashed-zero": ["slashed-zero"], - "fvn-figure": ["lining-nums", "oldstyle-nums"], - "fvn-spacing": ["proportional-nums", "tabular-nums"], - "fvn-fraction": ["diagonal-fractions", "stacked-fractions"], - tracking: [{ tracking: [s, a, n] }], - "line-clamp": [{ "line-clamp": [u, "none", a, de] }], - leading: [{ leading: [i, ...m()] }], - "list-image": [{ "list-image": ["none", a, n] }], - "list-style-position": [{ list: ["inside", "outside"] }], - "list-style-type": [{ list: ["disc", "decimal", "none", a, n] }], - "text-alignment": [{ text: ["left", "center", "right", "justify", "start", "end"] }], - "placeholder-color": [{ placeholder: d() }], - "text-color": [{ text: d() }], - "text-decoration": ["underline", "overline", "line-through", "no-underline"], - "text-decoration-style": [{ decoration: [...X(), "wavy"] }], - "text-decoration-thickness": [{ decoration: [u, "from-font", "auto", a, G] }], - "text-decoration-color": [{ decoration: d() }], - "underline-offset": [{ "underline-offset": [u, "auto", a, n] }], - "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"], - "text-overflow": ["truncate", "text-ellipsis", "text-clip"], - "text-wrap": [{ text: ["wrap", "nowrap", "balance", "pretty"] }], - indent: [{ indent: m() }], - "vertical-align": [{ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", a, n] }], - whitespace: [{ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"] }], - break: [{ break: ["normal", "words", "all", "keep"] }], - wrap: [{ wrap: ["break-word", "anywhere", "normal"] }], - hyphens: [{ hyphens: ["none", "manual", "auto"] }], - content: [{ content: ["none", a, n] }], - "bg-attachment": [{ bg: ["fixed", "local", "scroll"] }], - "bg-clip": [{ "bg-clip": ["border", "padding", "content", "text"] }], - "bg-origin": [{ "bg-origin": ["border", "padding", "content"] }], - "bg-position": [{ bg: Ce() }], - "bg-repeat": [{ bg: Me() }], - "bg-size": [{ bg: Ae() }], - "bg-image": [{ bg: ["none", { linear: [{ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"] }, R, a, n], radial: ["", a, n], conic: [R, a, n] }, Dr, Hr] }], - "bg-color": [{ bg: d() }], - "gradient-from-pos": [{ from: se() }], - "gradient-via-pos": [{ via: se() }], - "gradient-to-pos": [{ to: se() }], - "gradient-from": [{ from: d() }], - "gradient-via": [{ via: d() }], - "gradient-to": [{ to: d() }], - rounded: [{ rounded: w() }], - "rounded-s": [{ "rounded-s": w() }], - "rounded-e": [{ "rounded-e": w() }], - "rounded-t": [{ "rounded-t": w() }], - "rounded-r": [{ "rounded-r": w() }], - "rounded-b": [{ "rounded-b": w() }], - "rounded-l": [{ "rounded-l": w() }], - "rounded-ss": [{ "rounded-ss": w() }], - "rounded-se": [{ "rounded-se": w() }], - "rounded-ee": [{ "rounded-ee": w() }], - "rounded-es": [{ "rounded-es": w() }], - "rounded-tl": [{ "rounded-tl": w() }], - "rounded-tr": [{ "rounded-tr": w() }], - "rounded-br": [{ "rounded-br": w() }], - "rounded-bl": [{ "rounded-bl": w() }], - "border-w": [{ border: v() }], - "border-w-x": [{ "border-x": v() }], - "border-w-y": [{ "border-y": v() }], - "border-w-s": [{ "border-s": v() }], - "border-w-e": [{ "border-e": v() }], - "border-w-t": [{ "border-t": v() }], - "border-w-r": [{ "border-r": v() }], - "border-w-b": [{ "border-b": v() }], - "border-w-l": [{ "border-l": v() }], - "divide-x": [{ "divide-x": v() }], - "divide-x-reverse": ["divide-x-reverse"], - "divide-y": [{ "divide-y": v() }], - "divide-y-reverse": ["divide-y-reverse"], - "border-style": [{ border: [...X(), "hidden", "none"] }], - "divide-style": [{ divide: [...X(), "hidden", "none"] }], - "border-color": [{ border: d() }], - "border-color-x": [{ "border-x": d() }], - "border-color-y": [{ "border-y": d() }], - "border-color-s": [{ "border-s": d() }], - "border-color-e": [{ "border-e": d() }], - "border-color-t": [{ "border-t": d() }], - "border-color-r": [{ "border-r": d() }], - "border-color-b": [{ "border-b": d() }], - "border-color-l": [{ "border-l": d() }], - "divide-color": [{ divide: d() }], - "outline-style": [{ outline: [...X(), "none", "hidden"] }], - "outline-offset": [{ "outline-offset": [u, a, n] }], - "outline-w": [{ outline: ["", u, $, G] }], - "outline-color": [{ outline: d() }], - shadow: [{ shadow: ["", "none", h, ee, Y] }], - "shadow-color": [{ shadow: d() }], - "inset-shadow": [{ "inset-shadow": ["none", k, ee, Y] }], - "inset-shadow-color": [{ "inset-shadow": d() }], - "ring-w": [{ ring: v() }], - "ring-w-inset": ["ring-inset"], - "ring-color": [{ ring: d() }], - "ring-offset-w": [{ "ring-offset": [u, G] }], - "ring-offset-color": [{ "ring-offset": d() }], - "inset-ring-w": [{ "inset-ring": v() }], - "inset-ring-color": [{ "inset-ring": d() }], - "text-shadow": [{ "text-shadow": ["none", S, ee, Y] }], - "text-shadow-color": [{ "text-shadow": d() }], - opacity: [{ opacity: [u, a, n] }], - "mix-blend": [{ "mix-blend": [...Se(), "plus-darker", "plus-lighter"] }], - "bg-blend": [{ "bg-blend": Se() }], - "mask-clip": [{ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"] }, "mask-no-clip"], - "mask-composite": [{ mask: ["add", "subtract", "intersect", "exclude"] }], - "mask-image-linear-pos": [{ "mask-linear": [u] }], - "mask-image-linear-from-pos": [{ "mask-linear-from": b() }], - "mask-image-linear-to-pos": [{ "mask-linear-to": b() }], - "mask-image-linear-from-color": [{ "mask-linear-from": d() }], - "mask-image-linear-to-color": [{ "mask-linear-to": d() }], - "mask-image-t-from-pos": [{ "mask-t-from": b() }], - "mask-image-t-to-pos": [{ "mask-t-to": b() }], - "mask-image-t-from-color": [{ "mask-t-from": d() }], - "mask-image-t-to-color": [{ "mask-t-to": d() }], - "mask-image-r-from-pos": [{ "mask-r-from": b() }], - "mask-image-r-to-pos": [{ "mask-r-to": b() }], - "mask-image-r-from-color": [{ "mask-r-from": d() }], - "mask-image-r-to-color": [{ "mask-r-to": d() }], - "mask-image-b-from-pos": [{ "mask-b-from": b() }], - "mask-image-b-to-pos": [{ "mask-b-to": b() }], - "mask-image-b-from-color": [{ "mask-b-from": d() }], - "mask-image-b-to-color": [{ "mask-b-to": d() }], - "mask-image-l-from-pos": [{ "mask-l-from": b() }], - "mask-image-l-to-pos": [{ "mask-l-to": b() }], - "mask-image-l-from-color": [{ "mask-l-from": d() }], - "mask-image-l-to-color": [{ "mask-l-to": d() }], - "mask-image-x-from-pos": [{ "mask-x-from": b() }], - "mask-image-x-to-pos": [{ "mask-x-to": b() }], - "mask-image-x-from-color": [{ "mask-x-from": d() }], - "mask-image-x-to-color": [{ "mask-x-to": d() }], - "mask-image-y-from-pos": [{ "mask-y-from": b() }], - "mask-image-y-to-pos": [{ "mask-y-to": b() }], - "mask-image-y-from-color": [{ "mask-y-from": d() }], - "mask-image-y-to-color": [{ "mask-y-to": d() }], - "mask-image-radial": [{ "mask-radial": [a, n] }], - "mask-image-radial-from-pos": [{ "mask-radial-from": b() }], - "mask-image-radial-to-pos": [{ "mask-radial-to": b() }], - "mask-image-radial-from-color": [{ "mask-radial-from": d() }], - "mask-image-radial-to-color": [{ "mask-radial-to": d() }], - "mask-image-radial-shape": [{ "mask-radial": ["circle", "ellipse"] }], - "mask-image-radial-size": [{ "mask-radial": [{ closest: ["side", "corner"], farthest: ["side", "corner"] }] }], - "mask-image-radial-pos": [{ "mask-radial-at": N() }], - "mask-image-conic-pos": [{ "mask-conic": [u] }], - "mask-image-conic-from-pos": [{ "mask-conic-from": b() }], - "mask-image-conic-to-pos": [{ "mask-conic-to": b() }], - "mask-image-conic-from-color": [{ "mask-conic-from": d() }], - "mask-image-conic-to-color": [{ "mask-conic-to": d() }], - "mask-mode": [{ mask: ["alpha", "luminance", "match"] }], - "mask-origin": [{ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"] }], - "mask-position": [{ mask: Ce() }], - "mask-repeat": [{ mask: Me() }], - "mask-size": [{ mask: Ae() }], - "mask-type": [{ "mask-type": ["alpha", "luminance"] }], - "mask-image": [{ mask: ["none", a, n] }], - filter: [{ filter: ["", "none", a, n] }], - blur: [{ blur: Ie() }], - brightness: [{ brightness: [u, a, n] }], - contrast: [{ contrast: [u, a, n] }], - "drop-shadow": [{ "drop-shadow": ["", "none", I, ee, Y] }], - "drop-shadow-color": [{ "drop-shadow": d() }], - grayscale: [{ grayscale: ["", u, a, n] }], - "hue-rotate": [{ "hue-rotate": [u, a, n] }], - invert: [{ invert: ["", u, a, n] }], - saturate: [{ saturate: [u, a, n] }], - sepia: [{ sepia: ["", u, a, n] }], - "backdrop-filter": [{ "backdrop-filter": ["", "none", a, n] }], - "backdrop-blur": [{ "backdrop-blur": Ie() }], - "backdrop-brightness": [{ "backdrop-brightness": [u, a, n] }], - "backdrop-contrast": [{ "backdrop-contrast": [u, a, n] }], - "backdrop-grayscale": [{ "backdrop-grayscale": ["", u, a, n] }], - "backdrop-hue-rotate": [{ "backdrop-hue-rotate": [u, a, n] }], - "backdrop-invert": [{ "backdrop-invert": ["", u, a, n] }], - "backdrop-opacity": [{ "backdrop-opacity": [u, a, n] }], - "backdrop-saturate": [{ "backdrop-saturate": [u, a, n] }], - "backdrop-sepia": [{ "backdrop-sepia": ["", u, a, n] }], - "border-collapse": [{ border: ["collapse", "separate"] }], - "border-spacing": [{ "border-spacing": m() }], - "border-spacing-x": [{ "border-spacing-x": m() }], - "border-spacing-y": [{ "border-spacing-y": m() }], - "table-layout": [{ table: ["auto", "fixed"] }], - caption: [{ caption: ["top", "bottom"] }], - transition: [{ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", a, n] }], - "transition-behavior": [{ transition: ["normal", "discrete"] }], - duration: [{ duration: [u, "initial", a, n] }], - ease: [{ ease: ["linear", "initial", P, a, n] }], - delay: [{ delay: [u, a, n] }], - animate: [{ animate: ["none", q, a, n] }], - backface: [{ backface: ["hidden", "visible"] }], - perspective: [{ perspective: [y, a, n] }], - "perspective-origin": [{ "perspective-origin": _() }], - rotate: [{ rotate: J() }], - "rotate-x": [{ "rotate-x": J() }], - "rotate-y": [{ "rotate-y": J() }], - "rotate-z": [{ "rotate-z": J() }], - scale: [{ scale: Z() }], - "scale-x": [{ "scale-x": Z() }], - "scale-y": [{ "scale-y": Z() }], - "scale-z": [{ "scale-z": Z() }], - "scale-3d": ["scale-3d"], - skew: [{ skew: ne() }], - "skew-x": [{ "skew-x": ne() }], - "skew-y": [{ "skew-y": ne() }], - transform: [{ transform: [a, n, "", "none", "gpu", "cpu"] }], - "transform-origin": [{ origin: _() }], - "transform-style": [{ transform: ["3d", "flat"] }], - translate: [{ translate: K() }], - "translate-x": [{ "translate-x": K() }], - "translate-y": [{ "translate-y": K() }], - "translate-z": [{ "translate-z": K() }], - "translate-none": ["translate-none"], - accent: [{ accent: d() }], - appearance: [{ appearance: ["none", "auto"] }], - "caret-color": [{ caret: d() }], - "color-scheme": [{ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"] }], - cursor: [ - { - cursor: [ - "auto", - "default", - "pointer", - "wait", - "text", - "move", - "help", - "not-allowed", - "none", - "context-menu", - "progress", - "cell", - "crosshair", - "vertical-text", - "alias", - "copy", - "no-drop", - "grab", - "grabbing", - "all-scroll", - "col-resize", - "row-resize", - "n-resize", - "e-resize", - "s-resize", - "w-resize", - "ne-resize", - "nw-resize", - "se-resize", - "sw-resize", - "ew-resize", - "ns-resize", - "nesw-resize", - "nwse-resize", - "zoom-in", - "zoom-out", - a, - n, - ], - }, - ], - "field-sizing": [{ "field-sizing": ["fixed", "content"] }], - "pointer-events": [{ "pointer-events": ["auto", "none"] }], - resize: [{ resize: ["none", "", "y", "x"] }], - "scroll-behavior": [{ scroll: ["auto", "smooth"] }], - "scroll-m": [{ "scroll-m": m() }], - "scroll-mx": [{ "scroll-mx": m() }], - "scroll-my": [{ "scroll-my": m() }], - "scroll-ms": [{ "scroll-ms": m() }], - "scroll-me": [{ "scroll-me": m() }], - "scroll-mt": [{ "scroll-mt": m() }], - "scroll-mr": [{ "scroll-mr": m() }], - "scroll-mb": [{ "scroll-mb": m() }], - "scroll-ml": [{ "scroll-ml": m() }], - "scroll-p": [{ "scroll-p": m() }], - "scroll-px": [{ "scroll-px": m() }], - "scroll-py": [{ "scroll-py": m() }], - "scroll-ps": [{ "scroll-ps": m() }], - "scroll-pe": [{ "scroll-pe": m() }], - "scroll-pt": [{ "scroll-pt": m() }], - "scroll-pr": [{ "scroll-pr": m() }], - "scroll-pb": [{ "scroll-pb": m() }], - "scroll-pl": [{ "scroll-pl": m() }], - "snap-align": [{ snap: ["start", "end", "center", "align-none"] }], - "snap-stop": [{ snap: ["normal", "always"] }], - "snap-type": [{ snap: ["none", "x", "y", "both"] }], - "snap-strictness": [{ snap: ["mandatory", "proximity"] }], - touch: [{ touch: ["auto", "none", "manipulation"] }], - "touch-x": [{ "touch-pan": ["x", "left", "right"] }], - "touch-y": [{ "touch-pan": ["y", "up", "down"] }], - "touch-pz": ["touch-pinch-zoom"], - select: [{ select: ["none", "text", "all", "auto"] }], - "will-change": [{ "will-change": ["auto", "scroll", "contents", "transform", a, n] }], - fill: [{ fill: ["none", ...d()] }], - "stroke-w": [{ stroke: [u, $, G, de] }], - stroke: [{ stroke: ["none", ...d()] }], - "forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }], - }, - conflictingClassGroups: { - overflow: ["overflow-x", "overflow-y"], - overscroll: ["overscroll-x", "overscroll-y"], - inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"], - "inset-x": ["right", "left"], - "inset-y": ["top", "bottom"], - flex: ["basis", "grow", "shrink"], - gap: ["gap-x", "gap-y"], - p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"], - px: ["pr", "pl"], - py: ["pt", "pb"], - m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"], - mx: ["mr", "ml"], - my: ["mt", "mb"], - size: ["w", "h"], - "font-size": ["leading"], - "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"], - "fvn-ordinal": ["fvn-normal"], - "fvn-slashed-zero": ["fvn-normal"], - "fvn-figure": ["fvn-normal"], - "fvn-spacing": ["fvn-normal"], - "fvn-fraction": ["fvn-normal"], - "line-clamp": ["display", "overflow"], - rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"], - "rounded-s": ["rounded-ss", "rounded-es"], - "rounded-e": ["rounded-se", "rounded-ee"], - "rounded-t": ["rounded-tl", "rounded-tr"], - "rounded-r": ["rounded-tr", "rounded-br"], - "rounded-b": ["rounded-br", "rounded-bl"], - "rounded-l": ["rounded-tl", "rounded-bl"], - "border-spacing": ["border-spacing-x", "border-spacing-y"], - "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"], - "border-w-x": ["border-w-r", "border-w-l"], - "border-w-y": ["border-w-t", "border-w-b"], - "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"], - "border-color-x": ["border-color-r", "border-color-l"], - "border-color-y": ["border-color-t", "border-color-b"], - translate: ["translate-x", "translate-y", "translate-none"], - "translate-none": ["translate", "translate-x", "translate-y", "translate-z"], - "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"], - "scroll-mx": ["scroll-mr", "scroll-ml"], - "scroll-my": ["scroll-mt", "scroll-mb"], - "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"], - "scroll-px": ["scroll-pr", "scroll-pl"], - "scroll-py": ["scroll-pt", "scroll-pb"], - touch: ["touch-x", "touch-y", "touch-pz"], - "touch-x": ["touch"], - "touch-y": ["touch"], - "touch-pz": ["touch"], - }, - conflictingClassGroupModifiers: { "font-size": ["leading"] }, - orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"], - }; - }, - Kr = Tr(Zr); -var Qr = we('User profile'), - Yr = we('
        '); -function co(e, r) { - $e(r, !0); - var o = Yr(), - t = me(o), - s = me(t); - { - var i = (p) => { - hr(p, { - get userId() { - return r.userId; - }, - }); - }, - l = (p) => { - var c = Qr(); - ue(() => dr(c, "src", r.pictureUrl)), re(p, c); - }; - ir(s, (p) => { - r.pictureUrl ? p(l, !1) : p(i); - }); - } - pe(t), pe(o), ue((p) => We(t, 1, p), [() => cr(Kr("border-base-300 size-20 rounded-full border-2", r.class))]), re(e, o), He(); -} -const Oe = [ - "text-red-500", - "text-orange-500", - "text-yellow-500", - "text-lime-500", - "text-emerald-500", - "text-teal-500", - "text-cyan-500", - "text-sky-500", - "text-indigo-500", - "text-violet-500", - "text-purple-500", - "text-fuchsia-500", - "text-pink-500", - "text-rose-500", - ], - Ve = [ - "bg-red-500/10", - "bg-orange-500/10", - "bg-yellow-500/10", - "bg-lime-500/10", - "bg-emerald-500/10", - "bg-teal-500/10", - "bg-cyan-500/10", - "bg-sky-500/10", - "bg-indigo-500/10", - "bg-violet-500/10", - "bg-purple-500/10", - "bg-fuchsia-500/10", - "bg-pink-500/10", - "bg-rose-500/10", - ]; -function mo(e) { - return Oe[e % Oe.length]; -} -function po(e) { - return Ve[e % Ve.length]; -} -function uo({ r: e, g: r, b: o }) { - function t(s) { - return s.toString(16).padStart(2, "0"); - } - return `#${t(e)}${t(r)}${t(o)}`; -} -function go(e) { - return (e = e.trim().replace("#", "")), e.length === 3 && (e = e[0] + e[0] + e[1] + e[1] + e[2] + e[2]), e.length !== 6 ? { r: 0, g: 0, b: 0 } : { r: +("0x" + e.slice(0, 2)), g: +("0x" + e.slice(2, 4)), b: +("0x" + e.slice(4, 6)) }; -} -function bo(e) { - e = Math.min(e, ge.colors.length - 1); - const [r, o, t] = ge.colors[e].rgb; - return { r, g: o, b: t, a: e === 0 ? 0 : 255 }; -} -const Ue = ge.colors.map((e, r) => ({ ...e, idx: r, lab: tr({ r: e.rgb[0], g: e.rgb[1], b: e.rgb[2] }) })).filter((e) => e.idx !== 0); -function fo(e) { - let r = Ue[0], - o = Number.MAX_VALUE; - const t = tr(e); - for (let s of Ue) { - const i = eo(t, s.lab); - i < o && ((r = s), (o = i)); - } - return r.idx; -} -function tr(e) { - var r = e.r / 255, - o = e.g / 255, - t = e.b / 255, - s, - i, - l; - return ( - (r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92), - (o = o > 0.04045 ? Math.pow((o + 0.055) / 1.055, 2.4) : o / 12.92), - (t = t > 0.04045 ? Math.pow((t + 0.055) / 1.055, 2.4) : t / 12.92), - (s = (r * 0.4124 + o * 0.3576 + t * 0.1805) / 0.95047), - (i = (r * 0.2126 + o * 0.7152 + t * 0.0722) / 1), - (l = (r * 0.0193 + o * 0.1192 + t * 0.9505) / 1.08883), - (s = s > 0.008856 ? Math.pow(s, 1 / 3) : 7.787 * s + 16 / 116), - (i = i > 0.008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116), - (l = l > 0.008856 ? Math.pow(l, 1 / 3) : 7.787 * l + 16 / 116), - { l: 116 * i - 16, a: 500 * (s - i), b: 200 * (i - l) } - ); -} -function eo(e, r) { - var o = e.l - r.l, - t = e.a - r.a, - s = e.b - r.b, - i = Math.sqrt(e.a * e.a + e.b * e.b), - l = Math.sqrt(r.a * r.a + r.b * r.b), - p = i - l, - c = t * t + s * s - p * p; - c = c < 0 ? 0 : Math.sqrt(c); - var f = 1 + 0.045 * i, - h = 1 + 0.015 * i, - k = o / 1, - S = p / f, - I = c / h, - x = k * k + S * S + I * I; - return x < 0 ? 0 : Math.sqrt(x); -} -var ro = ar(''); -function ho(e, r) { - let o = lr(r, ["$$slots", "$$events", "$$legacy"]); - var t = ro(); - mr(t, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...o })), re(e, t); -} -export { ho as A, co as P, hr as a, po as b, bo as c, fo as d, mo as g, go as h, uo as r, Kr as t }; diff --git a/frontend-backup/_app/immutable/chunks/Dt3xBOvm.js b/frontend-backup/_app/immutable/chunks/Dt3xBOvm.js new file mode 100644 index 0000000..2f9b739 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Dt3xBOvm.js @@ -0,0 +1,58 @@ +import { g as r } from "./CV9xcpLq.js"; +import "./Ch2Ub8FX.js"; +import { v as s, b as a } from "./CMvZtFtm.js"; +import { b as f } from "./C5yqZvKC.js"; +import { r as l } from "./BF50aS-j.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new e.Error().stack; + o && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[o] = "96221a50-a410-40f3-b47c-daa8097a15f4"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-96221a50-a410-40f3-b47c-daa8097a15f4")); + })(); +} catch {} +const d = () => "Close", + c = () => "Fechar", + w = (e = {}, o = {}) => ((o.locale ?? r()) === "en" ? d() : c()); +var i = s( + '' +); +function v(e, o) { + let t = l(o, ["$$slots", "$$events", "$$legacy"]); + var n = i(); + f(n, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...t, + })), + a(e, n); +} +export { v as A, w as c }; diff --git a/frontend-backup/_app/immutable/chunks/DueIxFLX.js b/frontend-backup/_app/immutable/chunks/DueIxFLX.js new file mode 100644 index 0000000..65adb33 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/DueIxFLX.js @@ -0,0 +1,87 @@ +import { + t as y, + h as c, + e as h, + ab as g, + ae as p, + o as b, + U as w, + a7 as v, + af as m, + ag as E, + ah as u, + N as T, + ai as D, + O as i, +} from "./CMvZtFtm.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "94d4e00b-a912-44a4-9c84-3fbf1f4139c4"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-94d4e00b-a912-44a4-9c84-3fbf1f4139c4")); + })(); +} catch {} +function N(e, d, r = !1, o = !1, I = !1) { + var l = e, + t = ""; + y(() => { + var n = g; + if (t === (t = d() ?? "")) { + c && h(); + return; + } + if ( + (n.nodes_start !== null && + (p(n.nodes_start, n.nodes_end), (n.nodes_start = n.nodes_end = null)), + t !== "") + ) { + if (c) { + b.data; + for ( + var a = h(), _ = a; + a !== null && (a.nodeType !== w || a.data !== ""); + + ) + (_ = a), (a = v(a)); + if (a === null) throw (m(), E); + u(b, _), (l = T(a)); + return; + } + var s = t + ""; + r ? (s = `${s}`) : o && (s = `${s}`); + var f = D(s); + if (((r || o) && (f = i(f)), u(i(f), f.lastChild), r || o)) + for (; i(f); ) l.before(i(f)); + else l.before(f); + } + }); +} +export { N as h }; diff --git a/frontend-backup/_app/immutable/chunks/EXYzlOI1.js b/frontend-backup/_app/immutable/chunks/EXYzlOI1.js deleted file mode 100644 index bbad5cc..0000000 --- a/frontend-backup/_app/immutable/chunks/EXYzlOI1.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a39ce8e6-c68e-4670-97d0-cab3082bdbf7",e._sentryDebugIdIdentifier="sentry-dbid-a39ce8e6-c68e-4670-97d0-cab3082bdbf7")})()}catch{}const f=()=>"Confirm",t=()=>"Confirmar",r=(e={},n={})=>(n.locale??o())==="en"?f():t();export{r as c}; diff --git a/frontend-backup/_app/immutable/chunks/F0pgzfyy.js b/frontend-backup/_app/immutable/chunks/F0pgzfyy.js deleted file mode 100644 index 63f7215..0000000 --- a/frontend-backup/_app/immutable/chunks/F0pgzfyy.js +++ /dev/null @@ -1,2 +0,0 @@ -const o = "1756230503892"; -export { o as v }; diff --git a/frontend-backup/_app/immutable/chunks/GVP1MJz5.js b/frontend-backup/_app/immutable/chunks/GVP1MJz5.js deleted file mode 100644 index 7c538b5..0000000 --- a/frontend-backup/_app/immutable/chunks/GVP1MJz5.js +++ /dev/null @@ -1,18 +0,0 @@ -import { g as t } from "./DklPLC_x.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - n = new e.Error().stack; - n && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[n] = "82e5352c-47b9-45dc-82d9-9c5d1081102b"), (e._sentryDebugIdIdentifier = "sentry-dbid-82e5352c-47b9-45dc-82d9-9c5d1081102b")); - })(); -} catch {} -const o = () => "Open tickets", - d = () => "Tickets abertos", - s = (e = {}, n = {}) => ((n.locale ?? t()) === "en" ? o() : d()); -export { s as o }; diff --git a/frontend-backup/_app/immutable/chunks/KvV259my.js b/frontend-backup/_app/immutable/chunks/KvV259my.js deleted file mode 100644 index 46312f2..0000000 --- a/frontend-backup/_app/immutable/chunks/KvV259my.js +++ /dev/null @@ -1,1527 +0,0 @@ -var ee = (t) => { - throw TypeError(t); -}; -var Ve = (t, e, n) => e.has(t) || ee("Cannot " + n); -var b = (t, e, n) => (Ve(t, e, "read from private field"), n ? n.call(t) : e.get(t)), - P = (t, e, n) => (e.has(t) ? ee("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n)); -import { o as ne, a as qe } from "./ByKBPM-D.js"; -import { ap as Lt, ba as Me, aR as C, A as N, aH as O, aB as re } from "./DUoKDNpf.js"; -import { v as Ge } from "./F0pgzfyy.js"; -const q = []; -function Dt(t, e = Lt) { - let n = null; - const a = new Set(); - function r(o) { - if (Me(t, o) && ((t = o), n)) { - const c = !q.length; - for (const l of a) l[1](), q.push(l, t); - if (c) { - for (let l = 0; l < q.length; l += 2) q[l][0](q[l + 1]); - q.length = 0; - } - } - } - function s(o) { - r(o(t)); - } - function i(o, c = Lt) { - const l = [o, c]; - return ( - a.add(l), - a.size === 1 && (n = e(r, s) || Lt), - o(t), - () => { - a.delete(l), a.size === 0 && n && (n(), (n = null)); - } - ); - } - return { set: r, update: s, subscribe: i }; -} -class kt { - constructor(e, n) { - (this.status = e), typeof n == "string" ? (this.body = { message: n }) : n ? (this.body = n) : (this.body = { message: `Error: ${e}` }); - } - toString() { - return JSON.stringify(this.body); - } -} -class Bt { - constructor(e, n) { - (this.status = e), (this.location = n); - } -} -class Ft extends Error { - constructor(e, n, a) { - super(a), (this.status = e), (this.text = n); - } -} -new URL("sveltekit-internal://"); -function He(t, e) { - return t === "/" || e === "ignore" ? t : e === "never" ? (t.endsWith("/") ? t.slice(0, -1) : t) : e === "always" && !t.endsWith("/") ? t + "/" : t; -} -function Ke(t) { - return t.split("%25").map(decodeURI).join("%25"); -} -function We(t) { - for (const e in t) t[e] = decodeURIComponent(t[e]); - return t; -} -function Tt({ href: t }) { - return t.split("#")[0]; -} -function Ye(t, e, n, a = !1) { - const r = new URL(t); - Object.defineProperty(r, "searchParams", { - value: new Proxy(r.searchParams, { - get(i, o) { - if (o === "get" || o === "getAll" || o === "has") return (l) => (n(l), i[o](l)); - e(); - const c = Reflect.get(i, o); - return typeof c == "function" ? c.bind(i) : c; - }, - }), - enumerable: !0, - configurable: !0, - }); - const s = ["href", "pathname", "search", "toString", "toJSON"]; - a && s.push("hash"); - for (const i of s) - Object.defineProperty(r, i, { - get() { - return e(), t[i]; - }, - enumerable: !0, - configurable: !0, - }); - return r; -} -function ze(...t) { - let e = 5381; - for (const n of t) - if (typeof n == "string") { - let a = n.length; - for (; a; ) e = (e * 33) ^ n.charCodeAt(--a); - } else if (ArrayBuffer.isView(n)) { - const a = new Uint8Array(n.buffer, n.byteOffset, n.byteLength); - let r = a.length; - for (; r; ) e = (e * 33) ^ a[--r]; - } else throw new TypeError("value must be a string or TypedArray"); - return (e >>> 0).toString(36); -} -new TextEncoder(); -const Je = new TextDecoder(); -function Xe(t) { - const e = atob(t), - n = new Uint8Array(e.length); - for (let a = 0; a < e.length; a++) n[a] = e.charCodeAt(a); - return n; -} -const Ze = window.fetch; -window.fetch = (t, e) => ((t instanceof Request ? t.method : (e == null ? void 0 : e.method) || "GET") !== "GET" && Y.delete(Vt(t)), Ze(t, e)); -const Y = new Map(); -function Qe(t, e) { - const n = Vt(t, e), - a = document.querySelector(n); - if (a != null && a.textContent) { - a.remove(); - let { body: r, ...s } = JSON.parse(a.textContent); - const i = a.getAttribute("data-ttl"); - return i && Y.set(n, { body: r, init: s, ttl: 1e3 * Number(i) }), a.getAttribute("data-b64") !== null && (r = Xe(r)), Promise.resolve(new Response(r, s)); - } - return window.fetch(t, e); -} -function tn(t, e, n) { - if (Y.size > 0) { - const a = Vt(t, n), - r = Y.get(a); - if (r) { - if (performance.now() < r.ttl && ["default", "force-cache", "only-if-cached", void 0].includes(n == null ? void 0 : n.cache)) return new Response(r.body, r.init); - Y.delete(a); - } - } - return window.fetch(e, n); -} -function Vt(t, e) { - let a = `script[data-sveltekit-fetched][data-url=${JSON.stringify(t instanceof Request ? t.url : t)}]`; - if ((e != null && e.headers) || (e != null && e.body)) { - const r = []; - e.headers && r.push([...new Headers(e.headers)].join(",")), e.body && (typeof e.body == "string" || ArrayBuffer.isView(e.body)) && r.push(e.body), (a += `[data-hash="${ze(...r)}"]`); - } - return a; -} -const en = /^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/; -function nn(t) { - const e = []; - return { - pattern: - t === "/" - ? /^\/$/ - : new RegExp( - `^${an(t) - .map((a) => { - const r = /^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a); - if (r) return e.push({ name: r[1], matcher: r[2], optional: !1, rest: !0, chained: !0 }), "(?:/([^]*))?"; - const s = /^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a); - if (s) return e.push({ name: s[1], matcher: s[2], optional: !0, rest: !1, chained: !0 }), "(?:/([^/]+))?"; - if (!a) return; - const i = a.split(/\[(.+?)\](?!\])/); - return ( - "/" + - i - .map((c, l) => { - if (l % 2) { - if (c.startsWith("x+")) return xt(String.fromCharCode(parseInt(c.slice(2), 16))); - if (c.startsWith("u+")) - return xt( - String.fromCharCode( - ...c - .slice(2) - .split("-") - .map((u) => parseInt(u, 16)) - ) - ); - const h = en.exec(c), - [, p, _, f, m] = h; - return e.push({ name: f, matcher: m, optional: !!p, rest: !!_, chained: _ ? l === 1 && i[0] === "" : !1 }), _ ? "([^]*?)" : p ? "([^/]*)?" : "([^/]+?)"; - } - return xt(c); - }) - .join("") - ); - }) - .join("")}/?$` - ), - params: e, - }; -} -function rn(t) { - return t !== "" && !/^\([^)]+\)$/.test(t); -} -function an(t) { - return t.slice(1).split("/").filter(rn); -} -function on(t, e, n) { - const a = {}, - r = t.slice(1), - s = r.filter((o) => o !== void 0); - let i = 0; - for (let o = 0; o < e.length; o += 1) { - const c = e[o]; - let l = r[o - i]; - if ( - (c.chained && - c.rest && - i && - ((l = r - .slice(o - i, o + 1) - .filter((h) => h) - .join("/")), - (i = 0)), - l === void 0) - ) { - c.rest && (a[c.name] = ""); - continue; - } - if (!c.matcher || n[c.matcher](l)) { - a[c.name] = l; - const h = e[o + 1], - p = r[o + 1]; - h && !h.rest && h.optional && p && c.chained && (i = 0), !h && !p && Object.keys(a).length === s.length && (i = 0); - continue; - } - if (c.optional && c.chained) { - i++; - continue; - } - return; - } - if (!i) return a; -} -function xt(t) { - return t - .normalize() - .replace(/[[\]]/g, "\\$&") - .replace(/%/g, "%25") - .replace(/\//g, "%2[Ff]") - .replace(/\?/g, "%3[Ff]") - .replace(/#/g, "%23") - .replace(/[.*+?^${}()|\\]/g, "\\$&"); -} -function sn({ nodes: t, server_loads: e, dictionary: n, matchers: a }) { - const r = new Set(e); - return Object.entries(n).map(([o, [c, l, h]]) => { - const { pattern: p, params: _ } = nn(o), - f = { - id: o, - exec: (m) => { - const u = p.exec(m); - if (u) return on(u, _, a); - }, - errors: [1, ...(h || [])].map((m) => t[m]), - layouts: [0, ...(l || [])].map(i), - leaf: s(c), - }; - return (f.errors.length = f.layouts.length = Math.max(f.errors.length, f.layouts.length)), f; - }); - function s(o) { - const c = o < 0; - return c && (o = ~o), [c, t[o]]; - } - function i(o) { - return o === void 0 ? o : [r.has(o), t[o]]; - } -} -function ve(t, e = JSON.parse) { - try { - return e(sessionStorage[t]); - } catch {} -} -function ae(t, e, n = JSON.stringify) { - const a = n(e); - try { - sessionStorage[t] = a; - } catch {} -} -var ge; -const x = ((ge = globalThis.__sveltekit_9k4bn8) == null ? void 0 : ge.base) ?? ""; -var me; -const cn = ((me = globalThis.__sveltekit_9k4bn8) == null ? void 0 : me.assets) ?? x, - be = "sveltekit:snapshot", - ke = "sveltekit:scroll", - Ae = "sveltekit:states", - ln = "sveltekit:pageurl", - G = "sveltekit:history", - Z = "sveltekit:navigation", - B = { tap: 1, hover: 2, viewport: 3, eager: 4, off: -1, false: -1 }, - ht = location.origin; -function qt(t) { - if (t instanceof URL) return t; - let e = document.baseURI; - if (!e) { - const n = document.getElementsByTagName("base"); - e = n.length ? n[0].href : document.URL; - } - return new URL(t, e); -} -function At() { - return { x: pageXOffset, y: pageYOffset }; -} -function M(t, e) { - return t.getAttribute(`data-sveltekit-${e}`); -} -const oe = { ...B, "": B.hover }; -function Ee(t) { - let e = t.assignedSlot ?? t.parentNode; - return (e == null ? void 0 : e.nodeType) === 11 && (e = e.host), e; -} -function Se(t, e) { - for (; t && t !== e; ) { - if (t.nodeName.toUpperCase() === "A" && t.hasAttribute("href")) return t; - t = Ee(t); - } -} -function Nt(t, e, n) { - let a; - try { - if (((a = new URL(t instanceof SVGAElement ? t.href.baseVal : t.href, document.baseURI)), n && a.hash.match(/^#[^/]/))) { - const o = location.hash.split("#")[1] || "/"; - a.hash = `#${o}${a.hash}`; - } - } catch {} - const r = t instanceof SVGAElement ? t.target.baseVal : t.target, - s = !a || !!r || Et(a, e, n) || (t.getAttribute("rel") || "").split(/\s+/).includes("external"), - i = (a == null ? void 0 : a.origin) === ht && t.hasAttribute("download"); - return { url: a, external: s, target: r, download: i }; -} -function pt(t) { - let e = null, - n = null, - a = null, - r = null, - s = null, - i = null, - o = t; - for (; o && o !== document.documentElement; ) - a === null && (a = M(o, "preload-code")), - r === null && (r = M(o, "preload-data")), - e === null && (e = M(o, "keepfocus")), - n === null && (n = M(o, "noscroll")), - s === null && (s = M(o, "reload")), - i === null && (i = M(o, "replacestate")), - (o = Ee(o)); - function c(l) { - switch (l) { - case "": - case "true": - return !0; - case "off": - case "false": - return !1; - default: - return; - } - } - return { preload_code: oe[a ?? "off"], preload_data: oe[r ?? "off"], keepfocus: c(e), noscroll: c(n), reload: c(s), replace_state: c(i) }; -} -function se(t) { - const e = Dt(t); - let n = !0; - function a() { - (n = !0), e.update((i) => i); - } - function r(i) { - (n = !1), e.set(i); - } - function s(i) { - let o; - return e.subscribe((c) => { - (o === void 0 || (n && c !== o)) && i((o = c)); - }); - } - return { notify: a, set: r, subscribe: s }; -} -const Re = { v: () => {} }; -function fn() { - const { set: t, subscribe: e } = Dt(!1); - let n; - async function a() { - clearTimeout(n); - try { - const r = await fetch(`${cn}/_app/version.json`, { headers: { pragma: "no-cache", "cache-control": "no-cache" } }); - if (!r.ok) return !1; - const i = (await r.json()).version !== Ge; - return i && (t(!0), Re.v(), clearTimeout(n)), i; - } catch { - return !1; - } - } - return { subscribe: e, check: a }; -} -function Et(t, e, n) { - return t.origin !== ht || !t.pathname.startsWith(e) ? !0 : n ? !(t.pathname === e + "/" || t.pathname === e + "/index.html" || (t.protocol === "file:" && t.pathname.replace(/\/[^/]+\.html?$/, "") === e)) : !1; -} -function Qn(t) {} -function ie(t) { - const e = hn(t), - n = new ArrayBuffer(e.length), - a = new DataView(n); - for (let r = 0; r < n.byteLength; r++) a.setUint8(r, e.charCodeAt(r)); - return n; -} -const un = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -function hn(t) { - t.length % 4 === 0 && (t = t.replace(/==?$/, "")); - let e = "", - n = 0, - a = 0; - for (let r = 0; r < t.length; r++) - (n <<= 6), (n |= un.indexOf(t[r])), (a += 6), a === 24 && ((e += String.fromCharCode((n & 16711680) >> 16)), (e += String.fromCharCode((n & 65280) >> 8)), (e += String.fromCharCode(n & 255)), (n = a = 0)); - return a === 12 ? ((n >>= 4), (e += String.fromCharCode(n))) : a === 18 && ((n >>= 2), (e += String.fromCharCode((n & 65280) >> 8)), (e += String.fromCharCode(n & 255))), e; -} -const dn = -1, - pn = -2, - gn = -3, - mn = -4, - _n = -5, - yn = -6; -function wn(t, e) { - if (typeof t == "number") return r(t, !0); - if (!Array.isArray(t) || t.length === 0) throw new Error("Invalid input"); - const n = t, - a = Array(n.length); - function r(s, i = !1) { - if (s === dn) return; - if (s === gn) return NaN; - if (s === mn) return 1 / 0; - if (s === _n) return -1 / 0; - if (s === yn) return -0; - if (i) throw new Error("Invalid input"); - if (s in a) return a[s]; - const o = n[s]; - if (!o || typeof o != "object") a[s] = o; - else if (Array.isArray(o)) - if (typeof o[0] == "string") { - const c = o[0], - l = e == null ? void 0 : e[c]; - if (l) return (a[s] = l(r(o[1]))); - switch (c) { - case "Date": - a[s] = new Date(o[1]); - break; - case "Set": - const h = new Set(); - a[s] = h; - for (let f = 1; f < o.length; f += 1) h.add(r(o[f])); - break; - case "Map": - const p = new Map(); - a[s] = p; - for (let f = 1; f < o.length; f += 2) p.set(r(o[f]), r(o[f + 1])); - break; - case "RegExp": - a[s] = new RegExp(o[1], o[2]); - break; - case "Object": - a[s] = Object(o[1]); - break; - case "BigInt": - a[s] = BigInt(o[1]); - break; - case "null": - const _ = Object.create(null); - a[s] = _; - for (let f = 1; f < o.length; f += 2) _[o[f]] = r(o[f + 1]); - break; - case "Int8Array": - case "Uint8Array": - case "Uint8ClampedArray": - case "Int16Array": - case "Uint16Array": - case "Int32Array": - case "Uint32Array": - case "Float32Array": - case "Float64Array": - case "BigInt64Array": - case "BigUint64Array": { - const f = globalThis[c], - m = o[1], - u = ie(m), - d = new f(u); - a[s] = d; - break; - } - case "ArrayBuffer": { - const f = o[1], - m = ie(f); - a[s] = m; - break; - } - default: - throw new Error(`Unknown type ${c}`); - } - } else { - const c = new Array(o.length); - a[s] = c; - for (let l = 0; l < o.length; l += 1) { - const h = o[l]; - h !== pn && (c[l] = r(h)); - } - } - else { - const c = {}; - a[s] = c; - for (const l in o) { - const h = o[l]; - c[l] = r(h); - } - } - return a[s]; - } - return r(0); -} -const Ie = new Set(["load", "prerender", "csr", "ssr", "trailingSlash", "config"]); -[...Ie]; -const vn = new Set([...Ie]); -[...vn]; -function bn(t) { - return t.filter((e) => e != null); -} -const kn = "x-sveltekit-invalidated", - An = "x-sveltekit-trailing-slash"; -function gt(t) { - return t instanceof kt || t instanceof Ft ? t.status : 500; -} -function En(t) { - return t instanceof Ft ? t.text : "Internal Error3"; -} -let U, Q, Pt; -const Sn = ne.toString().includes("$$") || /function \w+\(\) \{\}/.test(ne.toString()); -var nt, rt, at, ot, st, it, ct, lt, _e, ft, ye, ut, we; -Sn - ? ((U = { data: {}, form: null, error: null, params: {}, route: { id: null }, state: {}, status: -1, url: new URL("https://example.com") }), (Q = { current: null }), (Pt = { current: !1 })) - : ((U = new ((_e = class { - constructor() { - P(this, nt, C({})); - P(this, rt, C(null)); - P(this, at, C(null)); - P(this, ot, C({})); - P(this, st, C({ id: null })); - P(this, it, C({})); - P(this, ct, C(-1)); - P(this, lt, C(new URL("https://example.com"))); - } - get data() { - return N(b(this, nt)); - } - set data(e) { - O(b(this, nt), e); - } - get form() { - return N(b(this, rt)); - } - set form(e) { - O(b(this, rt), e); - } - get error() { - return N(b(this, at)); - } - set error(e) { - O(b(this, at), e); - } - get params() { - return N(b(this, ot)); - } - set params(e) { - O(b(this, ot), e); - } - get route() { - return N(b(this, st)); - } - set route(e) { - O(b(this, st), e); - } - get state() { - return N(b(this, it)); - } - set state(e) { - O(b(this, it), e); - } - get status() { - return N(b(this, ct)); - } - set status(e) { - O(b(this, ct), e); - } - get url() { - return N(b(this, lt)); - } - set url(e) { - O(b(this, lt), e); - } - }), - (nt = new WeakMap()), - (rt = new WeakMap()), - (at = new WeakMap()), - (ot = new WeakMap()), - (st = new WeakMap()), - (it = new WeakMap()), - (ct = new WeakMap()), - (lt = new WeakMap()), - _e)()), - (Q = new ((ye = class { - constructor() { - P(this, ft, C(null)); - } - get current() { - return N(b(this, ft)); - } - set current(e) { - O(b(this, ft), e); - } - }), - (ft = new WeakMap()), - ye)()), - (Pt = new ((we = class { - constructor() { - P(this, ut, C(!1)); - } - get current() { - return N(b(this, ut)); - } - set current(e) { - O(b(this, ut), e); - } - }), - (ut = new WeakMap()), - we)()), - (Re.v = () => (Pt.current = !0))); -function Rn(t) { - Object.assign(U, t); -} -const In = "/__data.json", - Un = ".html__data.json"; -function Ln(t) { - return t.endsWith(".html") ? t.replace(/\.html$/, Un) : t.replace(/\/$/, "") + In; -} -const ce = { - spanContext() { - return Tn; - }, - setAttribute() { - return this; - }, - setAttributes() { - return this; - }, - addEvent() { - return this; - }, - setStatus() { - return this; - }, - updateName() { - return this; - }, - end() { - return this; - }, - isRecording() { - return !1; - }, - recordException() { - return this; - }, - addLink() { - return this; - }, - addLinks() { - return this; - }, - }, - Tn = { traceId: "", spanId: "", traceFlags: 0 }, - { onMount: xn, tick: Pn } = qe, - Cn = new Set(["icon", "shortcut icon", "apple-touch-icon"]), - V = ve(ke) ?? {}, - tt = ve(be) ?? {}, - $ = { url: se({}), page: se({}), navigating: Dt(null), updated: fn() }; -function Mt(t) { - V[t] = At(); -} -function Nn(t, e) { - let n = t + 1; - for (; V[n]; ) delete V[n], (n += 1); - for (n = e + 1; tt[n]; ) delete tt[n], (n += 1); -} -function K(t) { - return (location.href = t.href), new Promise(() => {}); -} -async function Ue() { - if ("serviceWorker" in navigator) { - const t = await navigator.serviceWorker.getRegistration(x || "/"); - t && (await t.update()); - } -} -function le() {} -let Gt, Ot, mt, j, jt, k; -globalThis.__sveltekit_9k4bn8.data; -const _t = [], - yt = []; -let L = null; -const dt = new Map(), - Ht = new Set(), - On = new Set(), - z = new Set(); -let w = { branch: [], error: null, url: null }, - Kt = !1, - wt = !1, - fe = !0, - et = !1, - W = !1, - Le = !1, - Wt = !1, - Te, - S, - T, - F; -const J = new Set(), - ue = new Map(); -async function rr(t, e, n) { - var s, i, o, c; - document.URL !== location.href && (location.href = location.href), - (k = t), - await ((i = (s = t.hooks).init) == null ? void 0 : i.call(s)), - (Gt = sn(t)), - (j = document.documentElement), - (jt = e), - (Ot = t.nodes[0]), - (mt = t.nodes[1]), - Ot(), - mt(), - (S = (o = history.state) == null ? void 0 : o[G]), - (T = (c = history.state) == null ? void 0 : c[Z]), - S || ((S = T = Date.now()), history.replaceState({ ...history.state, [G]: S, [Z]: T }, "")); - const a = V[S]; - function r() { - a && ((history.scrollRestoration = "manual"), scrollTo(a.x, a.y)); - } - n ? (r(), await Kn(jt, n)) : (await X({ type: "enter", url: qt(k.hash ? Yn(new URL(location.href)) : location.href), replace_state: !0 }), r()), Hn(); -} -function jn() { - (_t.length = 0), (Wt = !1); -} -function xe(t) { - yt.some((e) => (e == null ? void 0 : e.snapshot)) && - (tt[t] = yt.map((e) => { - var n; - return (n = e == null ? void 0 : e.snapshot) == null ? void 0 : n.capture(); - })); -} -function Pe(t) { - var e; - (e = tt[t]) == null || - e.forEach((n, a) => { - var r, s; - (s = (r = yt[a]) == null ? void 0 : r.snapshot) == null || s.restore(n); - }); -} -function he() { - Mt(S), ae(ke, V), xe(T), ae(be, tt); -} -async function Yt(t, e, n, a) { - let r; - const s = await X({ - type: "goto", - url: qt(t), - keepfocus: e.keepFocus, - noscroll: e.noScroll, - replace_state: e.replaceState, - state: e.state, - redirect_count: n, - nav_token: a, - accept: () => { - e.invalidateAll && ((Wt = !0), (r = [...ue.keys()])), e.invalidate && e.invalidate.forEach(Gn); - }, - }); - return ( - e.invalidateAll && - re() - .then(re) - .then(() => { - ue.forEach(({ resource: i }, o) => { - var c; - r != null && r.includes(o) && ((c = i.refresh) == null || c.call(i)); - }); - }), - s - ); -} -async function $n(t) { - if (t.id !== (L == null ? void 0 : L.id)) { - const e = {}; - J.add(e), (L = { id: t.id, token: e, promise: Oe({ ...t, preload: e }).then((n) => (J.delete(e), n.type === "loaded" && n.state.error && (L = null), n)) }); - } - return L.promise; -} -async function Ct(t) { - var n; - const e = (n = await Rt(t, !1)) == null ? void 0 : n.route; - e && (await Promise.all([...e.layouts, e.leaf].map((a) => (a == null ? void 0 : a[1]())))); -} -function Ce(t, e, n) { - var r; - w = t.state; - const a = document.querySelector("style[data-sveltekit]"); - if ((a && a.remove(), Object.assign(U, t.props.page), (Te = new k.root({ target: e, props: { ...t.props, stores: $, components: yt }, hydrate: n, sync: !1 })), Pe(T), n)) { - const s = { from: null, to: { params: w.params, route: { id: ((r = w.route) == null ? void 0 : r.id) ?? null }, url: new URL(location.href) }, willUnload: !1, type: "enter", complete: Promise.resolve() }; - z.forEach((i) => i(s)); - } - wt = !0; -} -function vt({ url: t, params: e, branch: n, status: a, error: r, route: s, form: i }) { - let o = "never"; - if (x && (t.pathname === x || t.pathname === x + "/")) o = "always"; - else for (const f of n) (f == null ? void 0 : f.slash) !== void 0 && (o = f.slash); - (t.pathname = He(t.pathname, o)), (t.search = t.search); - const c = { type: "loaded", state: { url: t, params: e, branch: n, error: r, route: s }, props: { constructors: bn(n).map((f) => f.node.component), page: Zt(U) } }; - i !== void 0 && (c.props.form = i); - let l = {}, - h = !U, - p = 0; - for (let f = 0; f < Math.max(n.length, w.branch.length); f += 1) { - const m = n[f], - u = w.branch[f]; - (m == null ? void 0 : m.data) !== (u == null ? void 0 : u.data) && (h = !0), m && ((l = { ...l, ...m.data }), h && (c.props[`data_${p}`] = l), (p += 1)); - } - return ( - (!w.url || t.href !== w.url.href || w.error !== r || (i !== void 0 && i !== U.form) || h) && - (c.props.page = { error: r, params: e, route: { id: (s == null ? void 0 : s.id) ?? null }, state: {}, status: a, url: new URL(t), form: i ?? null, data: h ? l : U.data }), - c - ); -} -async function zt({ loader: t, parent: e, url: n, params: a, route: r, server_data_node: s }) { - var h, p, _; - let i = null, - o = !0; - const c = { dependencies: new Set(), params: new Set(), parent: !1, route: !1, url: !1, search_params: new Set() }, - l = await t(); - if ((h = l.universal) != null && h.load) { - let f = function (...u) { - for (const d of u) { - const { href: A } = new URL(d, n); - c.dependencies.add(A); - } - }; - const m = { - tracing: { enabled: !1, root: ce, current: ce }, - route: new Proxy(r, { get: (u, d) => (o && (c.route = !0), u[d]) }), - params: new Proxy(a, { get: (u, d) => (o && c.params.add(d), u[d]) }), - data: (s == null ? void 0 : s.data) ?? null, - url: Ye( - n, - () => { - o && (c.url = !0); - }, - (u) => { - o && c.search_params.add(u); - }, - k.hash - ), - async fetch(u, d) { - u instanceof Request && - (d = { - body: u.method === "GET" || u.method === "HEAD" ? void 0 : await u.blob(), - cache: u.cache, - credentials: u.credentials, - headers: [...u.headers].length > 0 ? (u == null ? void 0 : u.headers) : void 0, - integrity: u.integrity, - keepalive: u.keepalive, - method: u.method, - mode: u.mode, - redirect: u.redirect, - referrer: u.referrer, - referrerPolicy: u.referrerPolicy, - signal: u.signal, - ...d, - }); - const { resolved: A, promise: R } = Ne(u, d, n); - return o && f(A.href), R; - }, - setHeaders: () => {}, - depends: f, - parent() { - return o && (c.parent = !0), e(); - }, - untrack(u) { - o = !1; - try { - return u(); - } finally { - o = !0; - } - }, - }; - i = (await l.universal.load.call(null, m)) ?? null; - } - return { - node: l, - loader: t, - server: s, - universal: (p = l.universal) != null && p.load ? { type: "data", data: i, uses: c } : null, - data: i ?? (s == null ? void 0 : s.data) ?? null, - slash: ((_ = l.universal) == null ? void 0 : _.trailingSlash) ?? (s == null ? void 0 : s.slash), - }; -} -function Ne(t, e, n) { - let a = t instanceof Request ? t.url : t; - const r = new URL(a, n); - r.origin === n.origin && (a = r.href.slice(n.origin.length)); - const s = wt ? tn(a, r.href, e) : Qe(a, e); - return { resolved: r, promise: s }; -} -function de(t, e, n, a, r, s) { - if (Wt) return !0; - if (!r) return !1; - if ((r.parent && t) || (r.route && e) || (r.url && n)) return !0; - for (const i of r.search_params) if (a.has(i)) return !0; - for (const i of r.params) if (s[i] !== w.params[i]) return !0; - for (const i of r.dependencies) if (_t.some((o) => o(new URL(i)))) return !0; - return !1; -} -function Jt(t, e) { - return (t == null ? void 0 : t.type) === "data" ? t : (t == null ? void 0 : t.type) === "skip" ? e ?? null : null; -} -function Dn(t, e) { - if (!t) return new Set(e.searchParams.keys()); - const n = new Set([...t.searchParams.keys(), ...e.searchParams.keys()]); - for (const a of n) { - const r = t.searchParams.getAll(a), - s = e.searchParams.getAll(a); - r.every((i) => s.includes(i)) && s.every((i) => r.includes(i)) && n.delete(a); - } - return n; -} -function pe({ error: t, url: e, route: n, params: a }) { - return { type: "loaded", state: { error: t, url: e, route: n, params: a, branch: [] }, props: { page: Zt(U), constructors: [] } }; -} -async function Oe({ id: t, invalidating: e, url: n, params: a, route: r, preload: s }) { - if ((L == null ? void 0 : L.id) === t) return J.delete(L.token), L.promise; - const { errors: i, layouts: o, leaf: c } = r, - l = [...o, c]; - i.forEach((g) => (g == null ? void 0 : g().catch(() => {}))), l.forEach((g) => (g == null ? void 0 : g[1]().catch(() => {}))); - let h = null; - const p = w.url ? t !== bt(w.url) : !1, - _ = w.route ? r.id !== w.route.id : !1, - f = Dn(w.url, n); - let m = !1; - const u = l.map((g, y) => { - var D; - const v = w.branch[y], - E = !!(g != null && g[0]) && ((v == null ? void 0 : v.loader) !== g[1] || de(m, _, p, f, (D = v.server) == null ? void 0 : D.uses, a)); - return E && (m = !0), E; - }); - if (u.some(Boolean)) { - try { - h = await De(n, u); - } catch (g) { - const y = await H(g, { url: n, params: a, route: { id: t } }); - return J.has(s) ? pe({ error: y, url: n, params: a, route: r }) : St({ status: gt(g), error: y, url: n, route: r }); - } - if (h.type === "redirect") return h; - } - const d = h == null ? void 0 : h.nodes; - let A = !1; - const R = l.map(async (g, y) => { - var It; - if (!g) return; - const v = w.branch[y], - E = d == null ? void 0 : d[y]; - if ((!E || E.type === "skip") && g[1] === (v == null ? void 0 : v.loader) && !de(A, _, p, f, (It = v.universal) == null ? void 0 : It.uses, a)) return v; - if (((A = !0), (E == null ? void 0 : E.type) === "error")) throw E; - return zt({ - loader: g[1], - url: n, - params: a, - route: r, - parent: async () => { - var te; - const Qt = {}; - for (let Ut = 0; Ut < y; Ut += 1) Object.assign(Qt, (te = await R[Ut]) == null ? void 0 : te.data); - return Qt; - }, - server_data_node: Jt(E === void 0 && g[0] ? { type: "skip" } : E ?? null, g[0] ? (v == null ? void 0 : v.server) : void 0), - }); - }); - for (const g of R) g.catch(() => {}); - const I = []; - for (let g = 0; g < l.length; g += 1) - if (l[g]) - try { - I.push(await R[g]); - } catch (y) { - if (y instanceof Bt) return { type: "redirect", location: y.location }; - if (J.has(s)) return pe({ error: await H(y, { params: a, url: n, route: { id: r.id } }), url: n, params: a, route: r }); - let v = gt(y), - E; - if (d != null && d.includes(y)) (v = y.status ?? v), (E = y.error); - else if (y instanceof kt) E = y.body; - else { - if (await $.updated.check()) return await Ue(), await K(n); - E = await H(y, { params: a, url: n, route: { id: r.id } }); - } - const D = await Bn(g, I, i); - return D ? vt({ url: n, params: a, branch: I.slice(0, D.idx).concat(D.node), status: v, error: E, route: r }) : await $e(n, { id: r.id }, E, v); - } - else I.push(void 0); - return vt({ url: n, params: a, branch: I, status: 200, error: null, route: r, form: e ? void 0 : null }); -} -async function Bn(t, e, n) { - for (; t--; ) - if (n[t]) { - let a = t; - for (; !e[a]; ) a -= 1; - try { - return { idx: a + 1, node: { node: await n[t](), loader: n[t], data: {}, server: null, universal: null } }; - } catch { - continue; - } - } -} -async function St({ status: t, error: e, url: n, route: a }) { - const r = {}; - let s = null; - if (k.server_loads[0] === 0) - try { - const o = await De(n, [!0]); - if (o.type !== "data" || (o.nodes[0] && o.nodes[0].type !== "data")) throw 0; - s = o.nodes[0] ?? null; - } catch { - (n.origin !== ht || n.pathname !== location.pathname || Kt) && (await K(n)); - } - try { - const o = await zt({ loader: Ot, url: n, params: r, route: a, parent: () => Promise.resolve({}), server_data_node: Jt(s) }), - c = { node: await mt(), loader: mt, universal: null, server: null, data: null }; - return vt({ url: n, params: r, branch: [o, c], status: t, error: e, route: null }); - } catch (o) { - if (o instanceof Bt) return Yt(new URL(o.location, location.href), {}, 0); - throw o; - } -} -async function Fn(t) { - const e = t.href; - if (dt.has(e)) return dt.get(e); - let n; - try { - const a = (async () => { - let r = (await k.hooks.reroute({ url: new URL(t), fetch: async (s, i) => Ne(s, i, t).promise })) ?? t; - if (typeof r == "string") { - const s = new URL(t); - k.hash ? (s.hash = r) : (s.pathname = r), (r = s); - } - return r; - })(); - dt.set(e, a), (n = await a); - } catch { - dt.delete(e); - return; - } - return n; -} -async function Rt(t, e) { - if (t && !Et(t, x, k.hash)) { - const n = await Fn(t); - if (!n) return; - const a = Vn(n); - for (const r of Gt) { - const s = r.exec(a); - if (s) return { id: bt(t), invalidating: e, route: r, params: We(s), url: t }; - } - } -} -function Vn(t) { - return Ke(k.hash ? t.hash.replace(/^#/, "").replace(/[?#].+/, "") : t.pathname.slice(x.length)) || "/"; -} -function bt(t) { - return (k.hash ? t.hash.replace(/^#/, "") : t.pathname) + t.search; -} -function je({ url: t, type: e, intent: n, delta: a }) { - let r = !1; - const s = Xt(w, n, t, e); - a !== void 0 && (s.navigation.delta = a); - const i = { - ...s.navigation, - cancel: () => { - (r = !0), s.reject(new Error("navigation cancelled")); - }, - }; - return et || Ht.forEach((o) => o(i)), r ? null : s; -} -async function X({ type: t, url: e, popped: n, keepfocus: a, noscroll: r, replace_state: s, state: i = {}, redirect_count: o = 0, nav_token: c = {}, accept: l = le, block: h = le }) { - const p = F; - F = c; - const _ = await Rt(e, !1), - f = t === "enter" ? Xt(w, _, e, t) : je({ url: e, type: t, delta: n == null ? void 0 : n.delta, intent: _ }); - if (!f) { - h(), F === c && (F = p); - return; - } - const m = S, - u = T; - l(), (et = !0), wt && f.navigation.type !== "enter" && $.navigating.set((Q.current = f.navigation)); - let d = _ && (await Oe(_)); - if (!d) { - if (Et(e, x, k.hash)) return await K(e); - d = await $e(e, { id: null }, await H(new Ft(404, "Not Found", `Not found: ${e.pathname}`), { url: e, params: {}, route: { id: null } }), 404); - } - if (((e = (_ == null ? void 0 : _.url) || e), F !== c)) return f.reject(new Error("navigation aborted")), !1; - if (d.type === "redirect") - if (o >= 20) d = await St({ status: 500, error: await H(new Error("Redirect loop"), { url: e, params: {}, route: { id: null } }), url: e, route: { id: null } }); - else return await Yt(new URL(d.location, e).href, {}, o + 1, c), !1; - else d.props.page.status >= 400 && (await $.updated.check()) && (await Ue(), await K(e)); - if ((jn(), Mt(m), xe(u), d.props.page.url.pathname !== e.pathname && (e.pathname = d.props.page.url.pathname), (i = n ? n.state : i), !n)) { - const g = s ? 0 : 1, - y = { [G]: (S += g), [Z]: (T += g), [Ae]: i }; - (s ? history.replaceState : history.pushState).call(history, y, "", e), s || Nn(S, T); - } - if (((L = null), (d.props.page.state = i), wt)) { - const g = (await Promise.all(Array.from(On, (y) => y(f.navigation)))).filter((y) => typeof y == "function"); - if (g.length > 0) { - let y = function () { - g.forEach((v) => { - z.delete(v); - }); - }; - g.push(y), - g.forEach((v) => { - z.add(v); - }); - } - (w = d.state), d.props.page && (d.props.page.url = e), Te.$set(d.props), Rn(d.props.page), (Le = !0); - } else Ce(d, jt, !1); - const { activeElement: A } = document; - await Pn(); - const R = n ? n.scroll : r ? At() : null; - if (fe) { - const g = e.hash && document.getElementById(Fe(e)); - R ? scrollTo(R.x, R.y) : g ? g.scrollIntoView() : scrollTo(0, 0); - } - const I = document.activeElement !== A && document.activeElement !== document.body; - !a && !I && Wn(e), (fe = !0), d.props.page && Object.assign(U, d.props.page), (et = !1), t === "popstate" && Pe(T), f.fulfil(void 0), z.forEach((g) => g(f.navigation)), $.navigating.set((Q.current = null)); -} -async function $e(t, e, n, a) { - return t.origin === ht && t.pathname === location.pathname && !Kt ? await St({ status: a, error: n, url: t, route: e }) : await K(t); -} -function qn() { - let t, e, n; - j.addEventListener("mousemove", (o) => { - const c = o.target; - clearTimeout(t), - (t = setTimeout(() => { - s(c, B.hover); - }, 20)); - }); - function a(o) { - o.defaultPrevented || s(o.composedPath()[0], B.tap); - } - j.addEventListener("mousedown", a), j.addEventListener("touchstart", a, { passive: !0 }); - const r = new IntersectionObserver( - (o) => { - for (const c of o) c.isIntersecting && (Ct(new URL(c.target.href)), r.unobserve(c.target)); - }, - { threshold: 0 } - ); - async function s(o, c) { - const l = Se(o, j), - h = l === e && c >= n; - if (!l || h) return; - const { url: p, external: _, download: f } = Nt(l, x, k.hash); - if (_ || f) return; - const m = pt(l), - u = p && bt(w.url) === bt(p); - if (!(m.reload || u)) - if (c <= m.preload_data) { - (e = l), (n = B.tap); - const d = await Rt(p, !1); - if (!d) return; - $n(d); - } else c <= m.preload_code && ((e = l), (n = c), Ct(p)); - } - function i() { - r.disconnect(); - for (const o of j.querySelectorAll("a")) { - const { url: c, external: l, download: h } = Nt(o, x, k.hash); - if (l || h) continue; - const p = pt(o); - p.reload || (p.preload_code === B.viewport && r.observe(o), p.preload_code === B.eager && Ct(c)); - } - } - z.add(i), i(); -} -function H(t, e) { - if (t instanceof kt) return t.body; - const n = gt(t), - a = En(t); - return k.hooks.handleError({ error: t, event: e, status: n, message: a }) ?? { message: a }; -} -function Mn(t, e) { - xn( - () => ( - t.add(e), - () => { - t.delete(e); - } - ) - ); -} -function ar(t) { - Mn(Ht, t); -} -function or(t, e = {}) { - return (t = new URL(qt(t))), t.origin !== ht ? Promise.reject(new Error("goto: invalid URL")) : Yt(t, e, 0); -} -function Gn(t) { - if (typeof t == "function") _t.push(t); - else { - const { href: e } = new URL(t, location.href); - _t.push((n) => n.href === e); - } -} -function Hn() { - var e; - (history.scrollRestoration = "manual"), - addEventListener("beforeunload", (n) => { - let a = !1; - if ((he(), !et)) { - const r = Xt(w, void 0, null, "leave"), - s = { - ...r.navigation, - cancel: () => { - (a = !0), r.reject(new Error("navigation cancelled")); - }, - }; - Ht.forEach((i) => i(s)); - } - a ? (n.preventDefault(), (n.returnValue = "")) : (history.scrollRestoration = "auto"); - }), - addEventListener("visibilitychange", () => { - document.visibilityState === "hidden" && he(); - }), - ((e = navigator.connection) != null && e.saveData) || qn(), - j.addEventListener("click", async (n) => { - if (n.button || n.which !== 1 || n.metaKey || n.ctrlKey || n.shiftKey || n.altKey || n.defaultPrevented) return; - const a = Se(n.composedPath()[0], j); - if (!a) return; - const { url: r, external: s, target: i, download: o } = Nt(a, x, k.hash); - if (!r) return; - if (i === "_parent" || i === "_top") { - if (window.parent !== window) return; - } else if (i && i !== "_self") return; - const c = pt(a); - if ((!(a instanceof SVGAElement) && r.protocol !== location.protocol && !(r.protocol === "https:" || r.protocol === "http:")) || o) return; - const [h, p] = (k.hash ? r.hash.replace(/^#/, "") : r.href).split("#"), - _ = h === Tt(location); - if (s || (c.reload && (!_ || !p))) { - je({ url: r, type: "link" }) ? (et = !0) : n.preventDefault(); - return; - } - if (p !== void 0 && _) { - const [, f] = w.url.href.split("#"); - if (f === p) { - if ((n.preventDefault(), p === "" || (p === "top" && a.ownerDocument.getElementById("top") === null))) window.scrollTo({ top: 0 }); - else { - const m = a.ownerDocument.getElementById(decodeURIComponent(p)); - m && (m.scrollIntoView(), m.focus()); - } - return; - } - if (((W = !0), Mt(S), t(r), !c.replace_state)) return; - W = !1; - } - n.preventDefault(), - await new Promise((f) => { - requestAnimationFrame(() => { - setTimeout(f, 0); - }), - setTimeout(f, 100); - }), - await X({ type: "link", url: r, keepfocus: c.keepfocus, noscroll: c.noscroll, replace_state: c.replace_state ?? r.href === location.href }); - }), - j.addEventListener("submit", (n) => { - if (n.defaultPrevented) return; - const a = HTMLFormElement.prototype.cloneNode.call(n.target), - r = n.submitter; - if (((r == null ? void 0 : r.formTarget) || a.target) === "_blank" || ((r == null ? void 0 : r.formMethod) || a.method) !== "get") return; - const o = new URL(((r == null ? void 0 : r.hasAttribute("formaction")) && (r == null ? void 0 : r.formAction)) || a.action); - if (Et(o, x, !1)) return; - const c = n.target, - l = pt(c); - if (l.reload) return; - n.preventDefault(), n.stopPropagation(); - const h = new FormData(c), - p = r == null ? void 0 : r.getAttribute("name"); - p && h.append(p, (r == null ? void 0 : r.getAttribute("value")) ?? ""), - (o.search = new URLSearchParams(h).toString()), - X({ type: "form", url: o, keepfocus: l.keepfocus, noscroll: l.noscroll, replace_state: l.replace_state ?? o.href === location.href }); - }), - addEventListener("popstate", async (n) => { - var a; - if (!$t) { - if ((a = n.state) != null && a[G]) { - const r = n.state[G]; - if (((F = {}), r === S)) return; - const s = V[r], - i = n.state[Ae] ?? {}, - o = new URL(n.state[ln] ?? location.href), - c = n.state[Z], - l = w.url ? Tt(location) === Tt(w.url) : !1; - if (c === T && (Le || l)) { - i !== U.state && (U.state = i), t(o), (V[S] = At()), s && scrollTo(s.x, s.y), (S = r); - return; - } - const p = r - S; - await X({ - type: "popstate", - url: o, - popped: { state: i, scroll: s, delta: p }, - accept: () => { - (S = r), (T = c); - }, - block: () => { - history.go(-p); - }, - nav_token: F, - }); - } else if (!W) { - const r = new URL(location.href); - t(r), k.hash && location.reload(); - } - } - }), - addEventListener("hashchange", () => { - W && ((W = !1), history.replaceState({ ...history.state, [G]: ++S, [Z]: T }, "", location.href)); - }); - for (const n of document.querySelectorAll("link")) Cn.has(n.rel) && (n.href = n.href); - addEventListener("pageshow", (n) => { - n.persisted && $.navigating.set((Q.current = null)); - }); - function t(n) { - (w.url = U.url = n), $.page.set(Zt(U)), $.page.notify(); - } -} -async function Kn(t, { status: e = 200, error: n, node_ids: a, params: r, route: s, server_route: i, data: o, form: c }) { - Kt = !0; - const l = new URL(location.href); - let h; - ({ params: r = {}, route: s = { id: null } } = (await Rt(l, !1)) || {}), (h = Gt.find(({ id: f }) => f === s.id)); - let p, - _ = !0; - try { - const f = a.map(async (u, d) => { - const A = o[d]; - return ( - A != null && A.uses && (A.uses = Be(A.uses)), - zt({ - loader: k.nodes[u], - url: l, - params: r, - route: s, - parent: async () => { - const R = {}; - for (let I = 0; I < d; I += 1) Object.assign(R, (await f[I]).data); - return R; - }, - server_data_node: Jt(A), - }) - ); - }), - m = await Promise.all(f); - if (h) { - const u = h.layouts; - for (let d = 0; d < u.length; d++) u[d] || m.splice(d, 0, void 0); - } - p = vt({ url: l, params: r, branch: m, status: e, error: n, form: c, route: h ?? null }); - } catch (f) { - if (f instanceof Bt) { - await K(new URL(f.location, location.href)); - return; - } - (p = await St({ status: gt(f), error: await H(f, { url: l, params: r, route: s }), url: l, route: s })), (t.textContent = ""), (_ = !1); - } - p.props.page && (p.props.page.state = {}), Ce(p, t, _); -} -async function De(t, e) { - var s; - const n = new URL(t); - (n.pathname = Ln(t.pathname)), t.pathname.endsWith("/") && n.searchParams.append(An, "1"), n.searchParams.append(kn, e.map((i) => (i ? "1" : "0")).join("")); - const a = window.fetch, - r = await a(n.href, {}); - if (!r.ok) { - let i; - throw ((s = r.headers.get("content-type")) != null && s.includes("application/json") ? (i = await r.json()) : r.status === 404 ? (i = "Not Found") : r.status === 500 && (i = "Internal Error4"), new kt(r.status, i)); - } - return new Promise(async (i) => { - var p; - const o = new Map(), - c = r.body.getReader(); - function l(_) { - return wn(_, { - ...k.decoders, - Promise: (f) => - new Promise((m, u) => { - o.set(f, { fulfil: m, reject: u }); - }), - }); - } - let h = ""; - for (;;) { - const { done: _, value: f } = await c.read(); - if (_ && !h) break; - for ( - h += - !f && h - ? ` -` - : Je.decode(f, { stream: !0 }); - ; - - ) { - const m = h.indexOf(` -`); - if (m === -1) break; - const u = JSON.parse(h.slice(0, m)); - if (((h = h.slice(m + 1)), u.type === "redirect")) return i(u); - if (u.type === "data") - (p = u.nodes) == null || - p.forEach((d) => { - (d == null ? void 0 : d.type) === "data" && ((d.uses = Be(d.uses)), (d.data = l(d.data))); - }), - i(u); - else if (u.type === "chunk") { - const { id: d, data: A, error: R } = u, - I = o.get(d); - o.delete(d), R ? I.reject(l(R)) : I.fulfil(l(A)); - } - } - } - }); -} -function Be(t) { - return { - dependencies: new Set((t == null ? void 0 : t.dependencies) ?? []), - params: new Set((t == null ? void 0 : t.params) ?? []), - parent: !!(t != null && t.parent), - route: !!(t != null && t.route), - url: !!(t != null && t.url), - search_params: new Set((t == null ? void 0 : t.search_params) ?? []), - }; -} -let $t = !1; -function Wn(t) { - const e = document.querySelector("[autofocus]"); - if (e) e.focus(); - else { - const n = Fe(t); - if (n && document.getElementById(n)) { - const { x: r, y: s } = At(); - setTimeout(() => { - const i = history.state; - ($t = !0), location.replace(`#${n}`), k.hash && location.replace(t.hash), history.replaceState(i, "", t.hash), scrollTo(r, s), ($t = !1); - }); - } else { - const r = document.body, - s = r.getAttribute("tabindex"); - (r.tabIndex = -1), r.focus({ preventScroll: !0, focusVisible: !1 }), s !== null ? r.setAttribute("tabindex", s) : r.removeAttribute("tabindex"); - } - const a = getSelection(); - if (a && a.type !== "None") { - const r = []; - for (let s = 0; s < a.rangeCount; s += 1) r.push(a.getRangeAt(s)); - setTimeout(() => { - if (a.rangeCount === r.length) { - for (let s = 0; s < a.rangeCount; s += 1) { - const i = r[s], - o = a.getRangeAt(s); - if (i.commonAncestorContainer !== o.commonAncestorContainer || i.startContainer !== o.startContainer || i.endContainer !== o.endContainer || i.startOffset !== o.startOffset || i.endOffset !== o.endOffset) return; - } - a.removeAllRanges(); - } - }); - } - } -} -function Xt(t, e, n, a) { - var c, l; - let r, s; - const i = new Promise((h, p) => { - (r = h), (s = p); - }); - return ( - i.catch(() => {}), - { - navigation: { - from: { params: t.params, route: { id: ((c = t.route) == null ? void 0 : c.id) ?? null }, url: t.url }, - to: n && { params: (e == null ? void 0 : e.params) ?? null, route: { id: ((l = e == null ? void 0 : e.route) == null ? void 0 : l.id) ?? null }, url: n }, - willUnload: !e, - type: a, - complete: i, - }, - fulfil: r, - reject: s, - } - ); -} -function Zt(t) { - return { data: t.data, error: t.error, form: t.form, params: t.params, route: t.route, state: t.state, status: t.status, url: t.url }; -} -function Yn(t) { - const e = new URL(t); - return (e.hash = decodeURIComponent(t.hash)), e; -} -function Fe(t) { - let e; - if (k.hash) { - const [, , n] = t.hash.split("#", 3); - e = n ?? ""; - } else e = t.hash.slice(1); - return decodeURIComponent(e); -} -export { rr as a, ar as b, or as g, Qn as l, U as p, $ as s }; diff --git a/frontend-backup/_app/immutable/chunks/LGRbXsL1.js b/frontend-backup/_app/immutable/chunks/LGRbXsL1.js new file mode 100644 index 0000000..19c1707 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/LGRbXsL1.js @@ -0,0 +1,40 @@ +import { g as o } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "6cf8a249-5900-4491-a606-2fb2ee92a24f"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-6cf8a249-5900-4491-a606-2fb2ee92a24f")); + })(); +} catch {} +const t = () => "Export CSV", + f = () => "Exportar CSV", + l = (e = {}, n = {}) => ((n.locale ?? o()) === "en" ? t() : f()); +export { l as e }; diff --git a/frontend-backup/_app/immutable/chunks/P77cUGnY.js b/frontend-backup/_app/immutable/chunks/P77cUGnY.js new file mode 100644 index 0000000..99dda62 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/P77cUGnY.js @@ -0,0 +1,73 @@ +import { + j as r, + i as h, + as as u, + h as a, + U as y, + ak as _, + a7 as i, + T as f, + N as o, + o as s, + O as c, +} from "./CMvZtFtm.js"; +(function () { + try { + var n = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + n.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var n = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new n.Error().stack; + d && + ((n._sentryDebugIds = n._sentryDebugIds || {}), + (n._sentryDebugIds[d] = "83634668-25a7-4757-b236-0f768368991f"), + (n._sentryDebugIdIdentifier = + "sentry-dbid-83634668-25a7-4757-b236-0f768368991f")); + })(); +} catch {} +let e; +function g() { + e = void 0; +} +function p(n) { + let d = null, + l = a; + var t; + if (a) { + for ( + d = s, e === void 0 && (e = c(document.head)); + e !== null && (e.nodeType !== y || e.data !== _); + + ) + e = i(e); + e === null ? f(!1) : (e = o(i(e))); + } + a || (t = document.head.appendChild(r())); + try { + h(() => n(t), u); + } finally { + l && (f(!0), (e = s), o(d)); + } +} +export { p as h, g as r }; diff --git a/frontend-backup/_app/immutable/chunks/U908S-6f.js b/frontend-backup/_app/immutable/chunks/U908S-6f.js deleted file mode 100644 index d2bfca2..0000000 --- a/frontend-backup/_app/immutable/chunks/U908S-6f.js +++ /dev/null @@ -1,231 +0,0 @@ -import { - i as ee, - g as ue, - H as ae, - I as X, - h as D, - J as te, - e as ve, - A as z, - K as de, - L as _e, - M as oe, - N as k, - O as g, - m as O, - P as ce, - Q as he, - j as J, - l as me, - R as V, - T as Y, - k as pe, - U as y, - V as Ee, - W as j, - X as re, - Y as Te, - Z as ne, - n as Ae, - _ as Ie, - $ as B, - G as Ne, - a0 as fe, - a1 as we, - a2 as xe, - a3 as Ce, - a4 as Me, - a5 as De, - a6 as He, -} from "./DUoKDNpf.js"; -let F = null; -function Le(i, n) { - return n; -} -function Re(i, n, e) { - for (var u = i.items, t = [], v = n.length, s = 0; s < v; s++) Ce(n[s].e, t, !0); - var c = v > 0 && t.length === 0 && e !== null; - if (c) { - var T = e.parentNode; - Me(T), T.append(e), u.clear(), w(i, n[0].prev, n[v - 1].next); - } - De(t, () => { - for (var E = 0; E < v; E++) { - var _ = n[E]; - c || (u.delete(_.k), w(i, _.prev, _.next)), fe(_.e, !c); - } - }); -} -function be(i, n, e, u, t, v = null) { - var s = i, - c = { flags: n, items: new Map(), first: null }, - T = (n & ae) !== 0; - if (T) { - var E = i; - s = D ? X(te(E)) : E.appendChild(ee()); - } - D && ve(); - var _ = null, - C = !1, - A = new Map(), - H = de(() => { - var d = e(); - return Te(d) ? d : d == null ? [] : re(d); - }), - f, - m; - function r() { - Se(m, f, c, A, s, t, n, u, e), - v !== null && - (f.length === 0 - ? _ - ? ne(_) - : (_ = J(() => v(s))) - : _ !== null && - Ae(_, () => { - _ = null; - })); - } - ue(() => { - m ?? (m = He), (f = z(H)); - var d = f.length; - if (C && d === 0) return; - C = d === 0; - let p = !1; - if (D) { - var I = _e(s) === oe; - I !== (d === 0) && ((s = k()), X(s), g(!1), (p = !0)); - } - if (D) { - for (var x = null, o, a = 0; a < d; a++) { - if (O.nodeType === ce && O.data === he) { - (s = O), (p = !0), g(!1); - break; - } - var l = f[a], - h = u(l, a); - (o = K(O, c, x, null, l, h, a, t, n, e)), c.items.set(h, o), (x = o); - } - d > 0 && X(k()); - } - if (D) d === 0 && v && (_ = J(() => v(s))); - else if (me()) { - var R = new Set(), - L = pe; - for (a = 0; a < d; a += 1) { - (l = f[a]), (h = u(l, a)); - var M = c.items.get(h) ?? A.get(h); - M ? (n & (V | Y)) !== 0 && le(M, l, a, n) : ((o = K(null, c, null, null, l, h, a, t, n, e, !0)), A.set(h, o)), R.add(h); - } - for (const [N, b] of c.items) R.has(N) || L.skipped_effects.add(b.e); - L.add_callback(r); - } else r(); - p && g(!0), z(H); - }), - D && (s = O); -} -function Se(i, n, e, u, t, v, s, c, T) { - var P, Q, W, Z; - var E = (s & we) !== 0, - _ = (s & (V | Y)) !== 0, - C = n.length, - A = e.items, - H = e.first, - f = H, - m, - r = null, - d, - p = [], - I = [], - x, - o, - a, - l; - if (E) for (l = 0; l < C; l += 1) (x = n[l]), (o = c(x, l)), (a = A.get(o)), a !== void 0 && ((P = a.a) == null || P.measure(), (d ?? (d = new Set())).add(a)); - for (l = 0; l < C; l += 1) { - if (((x = n[l]), (o = c(x, l)), (a = A.get(o)), a === void 0)) { - var h = u.get(o); - if (h !== void 0) { - u.delete(o), A.set(o, h); - var R = r ? r.next : f; - w(e, r, h), w(e, h, R), G(h, R, t), (r = h); - } else { - var L = f ? f.e.nodes_start : t; - r = K(L, e, r, r === null ? e.first : r.next, x, o, l, v, s, T); - } - A.set(o, r), (p = []), (I = []), (f = r.next); - continue; - } - if ((_ && le(a, x, l, s), (a.e.f & B) !== 0 && (ne(a.e), E && ((Q = a.a) == null || Q.unfix(), (d ?? (d = new Set())).delete(a))), a !== f)) { - if (m !== void 0 && m.has(a)) { - if (p.length < I.length) { - var M = I[0], - N; - r = M.prev; - var b = p[0], - q = p[p.length - 1]; - for (N = 0; N < p.length; N += 1) G(p[N], M, t); - for (N = 0; N < I.length; N += 1) m.delete(I[N]); - w(e, b.prev, q.next), w(e, r, b), w(e, q, M), (f = M), (r = q), (l -= 1), (p = []), (I = []); - } else m.delete(a), G(a, f, t), w(e, a.prev, a.next), w(e, a, r === null ? e.first : r.next), w(e, r, a), (r = a); - continue; - } - for (p = [], I = []; f !== null && f.k !== o; ) (f.e.f & B) === 0 && (m ?? (m = new Set())).add(f), I.push(f), (f = f.next); - if (f === null) continue; - a = f; - } - p.push(a), (r = a), (f = a.next); - } - if (f !== null || m !== void 0) { - for (var S = m === void 0 ? [] : re(m); f !== null; ) (f.e.f & B) === 0 && S.push(f), (f = f.next); - var U = S.length; - if (U > 0) { - var ie = (s & ae) !== 0 && C === 0 ? t : null; - if (E) { - for (l = 0; l < U; l += 1) (W = S[l].a) == null || W.measure(); - for (l = 0; l < U; l += 1) (Z = S[l].a) == null || Z.fix(); - } - Re(e, S, ie); - } - } - E && - Ne(() => { - var $; - if (d !== void 0) for (a of d) ($ = a.a) == null || $.apply(); - }), - (i.first = e.first && e.first.e), - (i.last = r && r.e); - for (var se of u.values()) fe(se.e); - u.clear(); -} -function le(i, n, e, u) { - (u & V) !== 0 && y(i.v, n), (u & Y) !== 0 ? y(i.i, e) : (i.i = e); -} -function K(i, n, e, u, t, v, s, c, T, E, _) { - var C = F, - A = (T & V) !== 0, - H = (T & Ie) === 0, - f = A ? (H ? Ee(t, !1, !1) : j(t)) : t, - m = (T & Y) === 0 ? s : j(s), - r = { i: m, v: f, k: v, a: null, e: null, prev: e, next: u }; - F = r; - try { - if (i === null) { - var d = document.createDocumentFragment(); - d.append((i = ee())); - } - return (r.e = J(() => c(i, f, m, E), D)), (r.e.prev = e && e.e), (r.e.next = u && u.e), e === null ? _ || (n.first = r) : ((e.next = r), (e.e.next = r.e)), u !== null && ((u.prev = r), (u.e.prev = r.e)), r; - } finally { - F = C; - } -} -function G(i, n, e) { - for (var u = i.next ? i.next.e.nodes_start : e, t = n ? n.e.nodes_start : e, v = i.e.nodes_start; v !== null && v !== u; ) { - var s = xe(v); - t.before(v), (v = s); - } -} -function w(i, n, e) { - n === null ? (i.first = e) : ((n.next = e), (n.e.next = e && e.e)), e !== null && ((e.prev = n), (e.e.prev = n && n.e)); -} -export { F as c, be as e, Le as i }; diff --git a/frontend-backup/_app/immutable/chunks/Y9es74tr.js b/frontend-backup/_app/immutable/chunks/Y9es74tr.js deleted file mode 100644 index 542ca76..0000000 --- a/frontend-backup/_app/immutable/chunks/Y9es74tr.js +++ /dev/null @@ -1,438 +0,0 @@ -import { - bb as z, - bc as D, - ba as P, - g as G, - h as A, - e as U, - i as W, - j, - k as K, - l as Q, - m as J, - aC as V, - n as X, - a6 as Y, - bd as tt, - be as F, - aP as rt, - G as at, - ap as C, - E as it, - bf as et, - bg as st, - D as nt, - x as ot, - bh as ft, - bi as vt, - q as Z, - b as $, - aS as ct, - a as lt -} from "./DUoKDNpf.js"; -import { - a as ht -} from "./g8c1BvYP.js"; -import { - c as ut -} from "./U908S-6f.js"; -import { - g as L -} from "./C5GsJ62f.js"; -import "./Bzak7iHL.js"; -import { - a as y -} from "./B1GmkH4o.js"; -import { - r as M, - i as dt -} from "./5NasrULQ.js"; - -function Lt(r, t, a) { - A && U(); - var i = r, - e = V, - o, n, s = null, - f = z() ? D : P; - - function u() { - o && X(o), s !== null && (s.lastChild.remove(), i.before(s), s = null), o = n - } - G(() => { - if (f(e, e = t())) { - var c = i, - l = Q(); - l && (s = document.createDocumentFragment(), s.append(c = W())), n = j(() => a(c)), l ? K.add_callback(u) : u() - } - }), A && (i = J) -} -const pt = () => performance.now(), - T = { - tick: r => requestAnimationFrame(r), - now: () => pt(), - tasks: new Set - }; - -function O() { - const r = T.now(); - T.tasks.forEach(t => { - t.c(r) || (T.tasks.delete(t), t.f()) - }), T.tasks.size !== 0 && T.tick(O) -} - -function gt(r) { - let t; - return T.tasks.size === 0 && T.tick(O), { - promise: new Promise(a => { - T.tasks.add(t = { - c: r, - f: a - }) - }), - abort() { - T.tasks.delete(t) - } - } -} - -function E(r, t) { - F(() => { - r.dispatchEvent(new CustomEvent(t)) - }) -} - -function mt(r) { - if (r === "float") return "cssFloat"; - if (r === "offset") return "cssOffset"; - if (r.startsWith("--")) return r; - const t = r.split("-"); - return t.length === 1 ? t[0] : t[0] + t.slice(1).map(a => a[0].toUpperCase() + a.slice(1)).join("") -} - -function B(r) { - const t = {}, - a = r.split(";"); - for (const i of a) { - const [e, o] = i.split(":"); - if (!e || o === void 0) break; - const n = mt(e.trim()); - t[n] = o.trim() - } - return t -} -const wt = r => r; - -function Ot(r, t, a) { - var i = ut, - e, o, n, s = null; - i.a ?? (i.a = { - element: r, - measure() { - e = this.element.getBoundingClientRect() - }, - apply() { - if (n == null || n.abort(), o = this.element.getBoundingClientRect(), e.left !== o.left || e.right !== o.right || e.top !== o.top || e.bottom !== o.bottom) { - const f = t()(this.element, { - from: e, - to: o - }, a == null ? void 0 : a()); - n = N(this.element, f, void 0, 1, () => { - n == null || n.abort(), n = void 0 - }) - } - }, - fix() { - if (!r.getAnimations().length) { - var { - position: f, - width: u, - height: c - } = getComputedStyle(r); - if (f !== "absolute" && f !== "fixed") { - var l = r.style; - s = { - position: l.position, - width: l.width, - height: l.height, - transform: l.transform - }, l.position = "absolute", l.width = u, l.height = c; - var v = r.getBoundingClientRect(); - if (e.left !== v.left || e.top !== v.top) { - var h = `translate(${e.left-v.left}px, ${e.top-v.top}px)`; - l.transform = l.transform ? `${l.transform} ${h}` : h - } - } - } - }, - unfix() { - if (s) { - var f = r.style; - f.position = s.position, f.width = s.width, f.height = s.height, f.transform = s.transform - } - } - }), i.a.element = r -} - -function Ht(r, t, a, i) { - var e = (r & ft) !== 0, - o = (r & vt) !== 0, - n = e && o, - s = (r & tt) !== 0, - f = n ? "both" : e ? "in" : "out", - u, c = t.inert, - l = t.style.overflow, - v, h; - - function w() { - return F(() => u ?? (u = a()(t, (i == null ? void 0 : i()) ?? {}, { - direction: f - }))) - } - var g = { - is_global: s, - in() { - var p; - if (t.inert = c, !e) { - h == null || h.abort(), (p = h == null ? void 0 : h.reset) == null || p.call(h); - return - } - o || v == null || v.abort(), E(t, "introstart"), v = N(t, w(), h, 1, () => { - E(t, "introend"), v == null || v.abort(), v = u = void 0, t.style.overflow = l - }) - }, - out(p) { - if (!o) { - p == null || p(), u = void 0; - return - } - t.inert = !0, E(t, "outrostart"), h = N(t, w(), v, 0, () => { - E(t, "outroend"), p == null || p() - }) - }, - stop: () => { - v == null || v.abort(), h == null || h.abort() - } - }, - m = Y; - if ((m.transitions ?? (m.transitions = [])).push(g), e && ht) { - var _ = s; - if (!_) { - for (var d = m.parent; d && (d.f & it) !== 0;) - for (; - (d = d.parent) && (d.f & et) === 0;); - _ = !d || (d.f & st) !== 0 - } - _ && nt(() => { - ot(() => g.in()) - }) - } -} - -function N(r, t, a, i, e) { - var o = i === 1; - if (rt(t)) { - var n, s = !1; - return at(() => { - if (!s) { - var m = t({ - direction: o ? "in" : "out" - }); - n = N(r, m, a, i, e) - } - }), { - abort: () => { - s = !0, n == null || n.abort() - }, - deactivate: () => n.deactivate(), - reset: () => n.reset(), - t: () => n.t() - } - } - if (a == null || a.deactivate(), !(t != null && t.duration)) return e(), { - abort: C, - deactivate: C, - reset: C, - t: () => i - }; - const { - delay: f = 0, - css: u, - tick: c, - easing: l = wt - } = t; - var v = []; - if (o && a === void 0 && (c && c(0, 1), u)) { - var h = B(u(0, 1)); - v.push(h, h) - } - var w = () => 1 - i, - g = r.animate(v, { - duration: f, - fill: "forwards" - }); - return g.onfinish = () => { - g.cancel(); - var m = (a == null ? void 0 : a.t()) ?? 1 - i; - a == null || a.abort(); - var _ = i - m, - d = t.duration * Math.abs(_), - p = []; - if (d > 0) { - var k = !1; - if (u) - for (var I = Math.ceil(d / 16.666666666666668), q = 0; q <= I; q += 1) { - var b = m + _ * l(q / I), - S = B(u(b, 1 - b)); - p.push(S), k || (k = S.overflow === "hidden") - } - k && (r.style.overflow = "hidden"), w = () => { - var x = g.currentTime; - return m + _ * l(x / d) - }, c && gt(() => { - if (g.playState !== "running") return !1; - var x = w(); - return c(x, 1 - x), !0 - }) - } - g = r.animate(p, { - duration: d, - fill: "forwards" - }), g.onfinish = () => { - w = () => i, c == null || c(i, 1 - i), e() - } - }, { - abort: () => { - g && (g.cancel(), g.effect = null, g.onfinish = C) - }, - deactivate: () => { - e = C - }, - reset: () => { - i === 0 && (c == null || c(1, 0)) - }, - t: () => w() - } -} -const _t = () => "Pixels painted", - Tt = () => "已绘制像素", - Rt = (r = {}, t = {}) => (t.locale ?? L()) === "en" ? _t() : Tt(), - qt = () => "Description", - bt = () => "描述", - zt = (r = {}, t = {}) => (t.locale ?? L()) === "en" ? qt() : bt(); -var xt = Z(''); - -function Dt(r, t) { - let a = M(t, ["$$slots", "$$events", "$$legacy"]); - var i = xt(); - y(i, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), $(r, i) -} - -function $t(r) { - const t = r - 1; - return t * t * t + 1 -} - -function Pt(r, { - from: t, - to: a -}, i = {}) { - var { - delay: e = 0, - duration: o = q => Math.sqrt(q) * 120, - easing: n = $t - } = i, s = getComputedStyle(r), f = s.transform === "none" ? "" : s.transform, [u, c] = s.transformOrigin.split(" ").map(parseFloat); - u /= r.clientWidth, c /= r.clientHeight; - var l = Ct(r), - v = r.clientWidth / a.width / l, - h = r.clientHeight / a.height / l, - w = t.left + t.width * u, - g = t.top + t.height * c, - m = a.left + a.width * u, - _ = a.top + a.height * c, - d = (w - m) * v, - p = (g - _) * h, - k = t.width / a.width, - I = t.height / a.height; - return { - delay: e, - duration: typeof o == "function" ? o(Math.sqrt(d * d + p * p)) : o, - easing: n, - css: (q, b) => { - var S = b * d, - x = b * p, - H = q + b * k, - R = q + b * I; - return `transform: ${f} translate(${S}px, ${x}px) scale(${H}, ${R});` - } - } -} - -function Ct(r) { - if ("currentCSSZoom" in r) return r.currentCSSZoom; - for (var t = r, a = 1; t !== null;) a *= +getComputedStyle(t).zoom, t = t.parentElement; - return a -} -var yt = Z(''), - Zt = Z(''); - -function Gt(r, t) { - let a = M(t, ["$$slots", "$$events", "$$legacy", "filled"]); - var i = ct(), - e = lt(i); - { - var o = s => { - var f = yt(); - y(f, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), $(s, f) - }, - n = s => { - var f = Zt(); - y(f, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), $(s, f) - }; - dt(e, s => { - t.filled ? s(o) : s(n, !1) - }) - } - $(r, i) -} -var kt = Z(''); - -function Ut(r, t) { - let a = M(t, ["$$slots", "$$events", "$$legacy"]); - var i = kt(); - y(i, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), $(r, i) -} -var It = Z(''); - -function Wt(r, t) { - let a = M(t, ["$$slots", "$$events", "$$legacy"]); - var i = It(); - y(i, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ...a - })), $(r, i) -} -export { - Gt as C, Ut as G, Dt as L, Wt as T, Ot as a, zt as d, Pt as f, Lt as k, Rt as p, Ht as t -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/chunks/Z_72d8Vp.js b/frontend-backup/_app/immutable/chunks/Z_72d8Vp.js new file mode 100644 index 0000000..8ccb6a0 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/Z_72d8Vp.js @@ -0,0 +1,82 @@ +import { + w as p, + x as g, + y as d, + z as y, + A as _, + B as l, + g as u, + C as w, + D as h, +} from "./CMvZtFtm.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + n = new e.Error().stack; + n && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[n] = "888755b8-82ba-4039-836b-67876fe1f611"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-888755b8-82ba-4039-836b-67876fe1f611")); + })(); +} catch {} +function m(e = !1) { + const n = p, + f = n.l.u; + if (!f) return; + let i = () => w(n.s); + if (e) { + let s = 0, + t = {}; + const b = h(() => { + let r = !1; + const a = n.s; + for (const o in a) a[o] !== t[o] && ((t[o] = a[o]), (r = !0)); + return r && s++, s; + }); + i = () => u(b); + } + f.b.length && + g(() => { + c(n, i), l(f.b); + }), + d(() => { + const s = y(() => f.m.map(_)); + return () => { + for (const t of s) typeof t == "function" && t(); + }; + }), + f.a.length && + d(() => { + c(n, i), l(f.a); + }); +} +function c(e, n) { + if (e.l.s) for (const f of e.l.s) u(f); + n(); +} +export { m as i }; diff --git a/frontend-backup/_app/immutable/chunks/ZzI7cLBE.js b/frontend-backup/_app/immutable/chunks/ZzI7cLBE.js deleted file mode 100644 index 24e7dc7..0000000 --- a/frontend-backup/_app/immutable/chunks/ZzI7cLBE.js +++ /dev/null @@ -1,59 +0,0 @@ -import { g as p } from "./DklPLC_x.js"; -import "./B2cHk4HI.js"; -import { ay as g, a as h, b as r, v } from "./BDALf20I.js"; -import { i as w, r as i } from "./Bke_korE.js"; -import { b as s } from "./BNZUboE0.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - o = new e.Error().stack; - o && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[o] = "3298bbfa-10df-4888-8ec0-1b806457f64a"), (e._sentryDebugIdIdentifier = "sentry-dbid-3298bbfa-10df-4888-8ec0-1b806457f64a")); - })(); -} catch {} -const m = (e) => `Copy alliance ID: #${e.allianceId}`, - u = (e) => `Copiar ID da aliança: #${e.allianceId}`, - C = (e, o = {}) => ((o.locale ?? p()) === "en" ? m(e) : u(e)); -var b = v(''), - y = v( - '' - ); -function H(e, o) { - let a = i(o, ["$$slots", "$$events", "$$legacy", "filled"]); - var t = g(), - f = h(t); - { - var c = (l) => { - var n = b(); - s(n, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...a })), r(l, n); - }, - d = (l) => { - var n = y(); - s(n, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...a })), r(l, n); - }; - w(f, (l) => { - o.filled ? l(c) : l(d, !1); - }); - } - r(e, t); -} -var T = v(''); -function D(e, o) { - let a = i(o, ["$$slots", "$$events", "$$legacy"]); - var t = T(); - s(t, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...a })), r(e, t); -} -var q = v( - '' -); -function M(e, o) { - let a = i(o, ["$$slots", "$$events", "$$legacy"]); - var t = q(); - s(t, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...a })), r(e, t); -} -export { H as C, D as G, M as T, C as c }; diff --git a/frontend-backup/_app/immutable/chunks/cUtKXcx3.js b/frontend-backup/_app/immutable/chunks/cUtKXcx3.js deleted file mode 100644 index de93ed1..0000000 --- a/frontend-backup/_app/immutable/chunks/cUtKXcx3.js +++ /dev/null @@ -1,15 +0,0 @@ -import { ar as n } from "./BDALf20I.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - f = new e.Error().stack; - f && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[f] = "04fff17c-04f8-458c-8ff9-180b80f62e15"), (e._sentryDebugIdIdentifier = "sentry-dbid-04fff17c-04f8-458c-8ff9-180b80f62e15")); - })(); -} catch {} -n(); diff --git a/frontend-backup/_app/immutable/chunks/fZ59cmjx.js b/frontend-backup/_app/immutable/chunks/fZ59cmjx.js deleted file mode 100644 index 4f7a1c3..0000000 --- a/frontend-backup/_app/immutable/chunks/fZ59cmjx.js +++ /dev/null @@ -1 +0,0 @@ -import{g as u}from"./DklPLC_x.js";import"./B2cHk4HI.js";import{o as De}from"./4WsUhDWi.js";import{at as Be,p as Te,y as ae,aw as h,au as R,f as X,d as o,s as c,r as n,n as Ee,ax as se,b as g,c as Le,t as k,g as s,u as ie,b4 as J,ay as le,a as ce,v as Ue}from"./BDALf20I.js";import{s as _}from"./4k6DpCgf.js";import{p as Ie,i as C,r as Pe}from"./Bke_korE.js";import{e as Ce}from"./CZW2bcQi.js";import{f as ze,r as D,s as ue,g as z,a as Me,b as Se}from"./BNZUboE0.js";import{t as Ae}from"./BCONGQnO.js";import{c as Oe}from"./DS58drb5.js";import{b as je}from"./BrZ10JY-.js";import{i as Ne,h as qe,f as Ze,j as Fe,k as He,P as Q,t as W}from"./DffDvEhl.js";import{o as Ke,L as Ve,s as Ye,a as Ge,g as Je}from"./CAQlJ3np.js";import{P as Qe}from"./DCxPsWiR.js";import{c as We}from"./CDZgL_Bh.js";import{g as Xe}from"./ClOhzjRc.js";import{f as $e}from"./DnhglgUZ.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="66bbb02f-2e45-48b1-b4e0-91d8d5145a93",t._sentryDebugIdIdentifier="sentry-dbid-66bbb02f-2e45-48b1-b4e0-91d8d5145a93")})()}catch{}const et=()=>"Copy",tt=()=>"Copiar",lr=(t={},e={})=>(e.locale??u())==="en"?et():tt(),rt=()=>"Report User",nt=()=>"Reportar usuário",ot=(t={},e={})=>(e.locale??u())==="en"?rt():nt(),at=()=>"Timeout User",st=()=>"Suspender usuário",it=(t={},e={})=>(e.locale??u())==="en"?at():st(),lt=()=>"Ban User",ct=()=>"Banir usuário",ut=(t={},e={})=>(e.locale??u())==="en"?lt():ct(),pt=()=>"+18, inappropriate link, highly suggestive content, ...",dt=()=>"+18, links inapropriados, conteúdo altamente sugestivo, ...",_t=(t={},e={})=>(e.locale??u())==="en"?pt():dt(),ft=()=>"Use of software to completely automate painting",mt=()=>"Uso de software para pintar de forma completamente automatizada ",vt=(t={},e={})=>(e.locale??u())==="en"?ft():mt(),bt=()=>"Racism, homophobia, hate groups, ...",gt=()=>"Racismo, homofobia, grupos de ódio, ...",ht=(t={},e={})=>(e.locale??u())==="en"?bt():gt(),xt=()=>"Messed up artworks for no reason",yt=()=>"Estragar desenho dos outros sem motivo",wt=(t={},e={})=>(e.locale??u())==="en"?xt():yt(),Rt=()=>"Released other's personal information without their consent",kt=()=>"Vazar informações pessoais de terceiros sem consentimento",Dt=(t={},e={})=>(e.locale??u())==="en"?Rt():kt(),Bt=()=>"Other reason not listed",Tt=()=>"Outro motivo não listado",Et=(t={},e={})=>(e.locale??u())==="en"?Bt():Tt(),Lt=()=>"Report",Ut=()=>"Reportar",It=(t={},e={})=>(e.locale??u())==="en"?Lt():Ut(),Pt=()=>"Report sent successfully",Ct=()=>"Denúncia enviada com sucesso",zt=(t={},e={})=>(e.locale??u())==="en"?Pt():Ct(),Mt=()=>"Report failed. Please try again later",St=()=>"Denúncia falhou. Por favor, tente novamente mais tarde",At=(t={},e={})=>(e.locale??u())==="en"?Mt():St(),Ot=()=>"Purchases",jt=()=>"Compras",cr=(t={},e={})=>(e.locale??u())==="en"?Ot():jt();var Nt=X(''),qt=(t,e)=>{e(!1)},Zt=X('

        '),Ft=X(' ');function ur(t,e){Te(e,!0);const i=[];let d=Ie(e,"open",15),B=R(!1),T=R(""),M=R(""),E=R(null),S=R(null);const pe=[{value:"inappropriate-content",label:Ne(),description:_t()},{value:"hate-speech",label:qe(),description:ht()},{value:"doxxing",label:Ze(),description:Dt()},{value:"bot",label:Fe(),description:vt()},{value:"griefing",label:He(),description:wt()},{value:"other",label:Ke(),description:Et()}];De(()=>{const f=m=>{m.key==="Escape"&&d(!1)};return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)}),ae(()=>{d()||(h(T,""),h(M,""))});const de={"report-user":`${Q}/report-user`,timeout:`${Q}/moderator/timeout-user`,ban:`${Q}/admin/ban-user`};var x=Ft(),$=o(x),_e=c(o($),2);{var fe=f=>{var m=Zt(),A=o(m);D(A);var O=c(A,2);D(O);var j=c(O,2);D(j);var N=c(j,2);D(N);var q=c(N,2),ee=o(q);Qe(ee,{get userId(){return e.paintedBy.id},get pictureUrl(){return e.paintedBy.picture},class:"size-14"});var te=c(ee,2),Z=o(te),me=o(Z);{var ve=a=>{var r=J();k(l=>_(r,l),[()=>ot()]),g(a,r)},be=a=>{var r=le(),l=ce(r);{var p=v=>{var b=J();k(y=>_(b,y),[()=>it()]),g(v,b)},U=v=>{var b=le(),y=ce(b);{var I=w=>{var P=J();k(ke=>_(P,ke),[()=>ut()]),g(w,P)};C(y,w=>{e.action==="ban"&&w(I)},!0)}g(v,b)};C(l,v=>{e.action==="timeout"?v(p):v(U,!1)},!0)}g(a,r)};C(me,a=>{e.action==="report-user"?a(ve):a(be,!1)})}n(Z);var F=c(Z,2),H=o(F),ge=o(H,!0);n(H);var re=c(H,2),he=o(re);n(re),n(F),n(te),n(q);var K=c(q,2),V=o(K),xe=o(V);n(V);var ne=c(V,2);Ce(ne,21,()=>pe,a=>a.value,(a,r)=>{var l=Nt(),p=o(l);D(p);var U,v=c(p,2),b=o(v),y=o(b,!0);n(b);var I=c(b,2),w=o(I,!0);n(I),n(v),n(l),k(()=>{ue(p,"aria-label",s(r).label),U!==(U=s(r).value)&&(p.value=(p.__value=s(r).value)??""),_(y,s(r).label),_(w,s(r).description)}),Oe(i,[],p,()=>(s(r).value,s(T)),P=>h(T,P)),g(a,l)}),n(ne),n(K);var Y=c(K,2),ye=o(Y);{let a=ie(()=>Je()),r=ie(()=>s(T)==="doxxing"?20:5);Ve(ye,{class:"h-20 rounded-lg",name:"notes",get placeholder(){return s(a)},max:2056,get min(){return s(r)},get value(){return s(M)},set value(l){h(M,l,!0)},get validate(){return s(S)},set validate(l){h(S,l,!0)}})}n(Y);var oe=c(Y,2),L=o(oe);L.__click=[qt,d];var we=o(L,!0);n(L);var G=c(L,2),Re=o(G,!0);n(G),n(oe),n(m),je(m,a=>h(E,a),()=>s(E)),k((a,r,l,p)=>{ue(m,"action",de[e.action]),z(A,e.paintedBy.id),z(O,e.latLon[0]),z(j,e.latLon[1]),z(N,e.zoom),Me(F,1,`font-medium ${a??""} flex gap-1.5`),_(ge,e.paintedBy.name),_(he,`#${e.paintedBy.id??""}`),_(xe,`${r??""}:`),_(we,l),G.disabled=s(B),_(Re,p)},[()=>Xe(e.paintedBy.id),()=>Ye(),()=>We(),()=>It()]),se("submit",m,async a=>{if(a.preventDefault(),!s(B)&&s(S)())try{h(B,!0);const r=new FormData(s(E));if(!r.get("reason")){W.error(Ge());return}const l=await e.image;r.append("image",l,`report-${Date.now()}.jpeg`);const p=await fetch(s(E).action,{method:"POST",body:r,credentials:"include"});p.status===200||p.status===409?(W.info(zt()),d(!1)):W.error(At())}finally{h(B,!1)}}),Ae(2,m,()=>$e),g(f,m)};C(_e,f=>{d()&&f(fe)})}n($),Ee(2),n(x),ze(x,()=>f=>{ae(()=>{d()?f.show():f.close()})}),se("close",x,()=>d(!1)),g(t,x),Le()}Be(["click"]);var Ht=Ue('');function pr(t,e){let i=Pe(e,["$$slots","$$events","$$legacy"]);var d=Ht();Se(d,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...i})),g(t,d)}export{pr as D,ur as R,ut as b,lr as c,cr as p,ot as r,it as t}; diff --git a/frontend-backup/_app/immutable/chunks/g8c1BvYP.js b/frontend-backup/_app/immutable/chunks/g8c1BvYP.js deleted file mode 100644 index ab562ac..0000000 --- a/frontend-backup/_app/immutable/chunks/g8c1BvYP.js +++ /dev/null @@ -1,115 +0,0 @@ -import { - ac as m, - J as L, - P as N, - ad as M, - a2 as b, - a9 as p, - O as h, - I as O, - e as j, - m as l, - Q as C, - a8 as H, - ae as Y, - a4 as P, - X as S, - af as V, - ag as R, - ah as W, - ai as v, - aj as $, - i as k, - j as F, - h as w, - p as J, - u as Q, - aa as X, - a6 as q, - c as z, -} from "./DUoKDNpf.js"; -import { r as B } from "./2CRhGZHc.js"; -let D = !0; -function Z(a, e) { - var t = e == null ? "" : typeof e == "object" ? e + "" : e; - t !== (a.__t ?? (a.__t = a.nodeValue)) && ((a.__t = t), (a.nodeValue = t + "")); -} -function G(a, e) { - return A(a, e); -} -function x(a, e) { - m(), (e.intro = e.intro ?? !1); - const t = e.target, - u = w, - c = l; - try { - for (var r = L(t); r && (r.nodeType !== N || r.data !== M); ) r = b(r); - if (!r) throw p; - h(!0), O(r), j(); - const o = A(a, { ...e, anchor: r }); - if (l === null || l.nodeType !== N || l.data !== C) throw (H(), p); - return h(!1), o; - } catch (o) { - if ( - o instanceof Error && - o.message - .split( - ` -` - ) - .some((f) => f.startsWith("https://svelte.dev/e/")) - ) - throw o; - return o !== p && console.warn("Failed to hydrate: ", o), e.recover === !1 && Y(), m(), P(t), h(!1), G(a, e); - } finally { - h(u), O(c), B(); - } -} -const d = new Map(); -function A(a, { target: e, anchor: t, props: u = {}, events: c, context: r, intro: o = !0 }) { - m(); - var f = new Set(), - y = (i) => { - for (var s = 0; s < i.length; s++) { - var n = i[s]; - if (!f.has(n)) { - f.add(n); - var _ = $(n); - e.addEventListener(n, v, { passive: _ }); - var T = d.get(n); - T === void 0 ? (document.addEventListener(n, v, { passive: _ }), d.set(n, 1)) : d.set(n, T + 1); - } - } - }; - y(S(V)), R.add(y); - var g = void 0, - I = W(() => { - var i = t ?? e.appendChild(k()); - return ( - F(() => { - if (r) { - J({}); - var s = Q; - s.c = r; - } - c && (u.$$events = c), w && X(i, null), (D = o), (g = a(i, u) || {}), (D = !0), w && (q.nodes_end = l), r && z(); - }), - () => { - var _; - for (var s of f) { - e.removeEventListener(s, v); - var n = d.get(s); - --n === 0 ? (document.removeEventListener(s, v), d.delete(s)) : d.set(s, n); - } - R.delete(y), i !== t && ((_ = i.parentNode) == null || _.removeChild(i)); - } - ); - }); - return E.set(g, I), g; -} -let E = new WeakMap(); -function ee(a, e) { - const t = E.get(a); - return t ? (E.delete(a), t(e)) : Promise.resolve(); -} -export { D as a, x as h, G as m, Z as s, ee as u }; diff --git a/frontend-backup/_app/immutable/chunks/g9MKNE1A.js b/frontend-backup/_app/immutable/chunks/g9MKNE1A.js new file mode 100644 index 0000000..b982770 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/g9MKNE1A.js @@ -0,0 +1,52 @@ +import { g as n } from "./CV9xcpLq.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new e.Error().stack; + o && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[o] = "76e4e08a-3479-4679-9995-6d7032094b18"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-76e4e08a-3479-4679-9995-6d7032094b18")); + })(); +} catch {} +const d = () => "Apply", + r = () => "Aplicar", + f = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? d() : r()), + a = () => "Media total per mod", + i = () => "Media total por mod", + b = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? a() : i()), + l = () => "Media ban per mod", + _ = () => "Media de banimento por mod", + g = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? l() : _()), + c = () => "Media ignored per mod", + p = () => "Media de ignorados por mod", + y = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? c() : p()), + s = () => "Media timeout per mod", + u = () => "Media de timeout por mod", + w = (e = {}, o = {}) => ((o.locale ?? n()) === "en" ? s() : u()); +export { f as a, g as b, y as c, w as d, b as m }; diff --git a/frontend-backup/_app/immutable/chunks/hLPYzGnf.js b/frontend-backup/_app/immutable/chunks/hLPYzGnf.js deleted file mode 100644 index 82d2917..0000000 --- a/frontend-backup/_app/immutable/chunks/hLPYzGnf.js +++ /dev/null @@ -1 +0,0 @@ -import{g as o}from"./DklPLC_x.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b0beadb0-deec-4a77-af24-7bb1740c9b03",e._sentryDebugIdIdentifier="sentry-dbid-b0beadb0-deec-4a77-af24-7bb1740c9b03")})()}catch{}const t=()=>"Clear",d=()=>"Limpar",f=(e={},n={})=>(n.locale??o())==="en"?t():d();export{f as c}; diff --git a/frontend-backup/_app/immutable/chunks/lE0oaQc5.js b/frontend-backup/_app/immutable/chunks/lE0oaQc5.js new file mode 100644 index 0000000..4b178cd --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/lE0oaQc5.js @@ -0,0 +1,153 @@ +import { S as i } from "./BRM3t761.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "13ddcd48-eb69-440b-ae8c-96bbeeaf7d7d"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-13ddcd48-eb69-440b-ae8c-96bbeeaf7d7d")); + })(); +} catch {} +const u = [ + "text-red-500", + "text-orange-500", + "text-yellow-500", + "text-lime-500", + "text-emerald-500", + "text-teal-500", + "text-cyan-500", + "text-sky-500", + "text-indigo-500", + "text-violet-500", + "text-purple-500", + "text-fuchsia-500", + "text-pink-500", + "text-rose-500", + ], + p = [ + "bg-red-500/10", + "bg-orange-500/10", + "bg-yellow-500/10", + "bg-lime-500/10", + "bg-emerald-500/10", + "bg-teal-500/10", + "bg-cyan-500/10", + "bg-sky-500/10", + "bg-indigo-500/10", + "bg-violet-500/10", + "bg-purple-500/10", + "bg-fuchsia-500/10", + "bg-pink-500/10", + "bg-rose-500/10", + ]; +function x(t) { + return u[t % u.length]; +} +function E(t) { + return p[t % p.length]; +} +function T({ r: t, g: e, b: o }) { + function r(n) { + return n.toString(16).padStart(2, "0"); + } + return `#${r(t)}${r(e)}${r(o)}`; +} +function k(t) { + return ( + (t = t.trim().replace("#", "")), + t.length === 3 && (t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2]), + t.length !== 6 + ? { r: 0, g: 0, b: 0 } + : { + r: +("0x" + t.slice(0, 2)), + g: +("0x" + t.slice(2, 4)), + b: +("0x" + t.slice(4, 6)), + } + ); +} +function C(t) { + t = Math.min(t, i.colors.length - 1); + const [e, o, r] = i.colors[t].rgb; + return { r: e, g: o, b: r, a: t === 0 ? 0 : 255 }; +} +const y = i.colors + .map((t, e) => ({ + ...t, + idx: e, + lab: v({ r: t.rgb[0], g: t.rgb[1], b: t.rgb[2] }), + })) + .filter((t) => t.idx !== 0); +function A(t) { + let e = y[0], + o = Number.MAX_VALUE; + const r = v(t); + for (let n of y) { + const a = m(r, n.lab); + a < o && ((e = n), (o = a)); + } + return e.idx; +} +function v(t) { + var e = t.r / 255, + o = t.g / 255, + r = t.b / 255, + n, + a, + l; + return ( + (e = e > 0.04045 ? Math.pow((e + 0.055) / 1.055, 2.4) : e / 12.92), + (o = o > 0.04045 ? Math.pow((o + 0.055) / 1.055, 2.4) : o / 12.92), + (r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92), + (n = (e * 0.4124 + o * 0.3576 + r * 0.1805) / 0.95047), + (a = (e * 0.2126 + o * 0.7152 + r * 0.0722) / 1), + (l = (e * 0.0193 + o * 0.1192 + r * 0.9505) / 1.08883), + (n = n > 0.008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116), + (a = a > 0.008856 ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116), + (l = l > 0.008856 ? Math.pow(l, 1 / 3) : 7.787 * l + 16 / 116), + { l: 116 * a - 16, a: 500 * (n - a), b: 200 * (a - l) } + ); +} +function m(t, e) { + var o = t.l - e.l, + r = t.a - e.a, + n = t.b - e.b, + a = Math.sqrt(t.a * t.a + t.b * t.b), + l = Math.sqrt(e.a * e.a + e.b * e.b), + d = a - l, + s = r * r + n * n - d * d; + s = s < 0 ? 0 : Math.sqrt(s); + var w = 1 + 0.045 * a, + h = 1 + 0.015 * a, + b = o / 1, + c = d / w, + g = s / h, + f = b * b + c * c + g * g; + return f < 0 ? 0 : Math.sqrt(f); +} +export { E as a, A as b, C as c, x as g, k as h, T as r }; diff --git a/frontend-backup/_app/immutable/chunks/m3o6lEf1.js b/frontend-backup/_app/immutable/chunks/m3o6lEf1.js new file mode 100644 index 0000000..4803267 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/m3o6lEf1.js @@ -0,0 +1,54 @@ +import "./Ch2Ub8FX.js"; +import { v as f, b as r } from "./CMvZtFtm.js"; +import { b as s } from "./C5yqZvKC.js"; +import { r as d } from "./BF50aS-j.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "e7827935-ebe4-43f0-84b4-16441b18c03c"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-e7827935-ebe4-43f0-84b4-16441b18c03c")); + })(); +} catch {} +var i = f( + '' +); +function c(e, t) { + let n = d(t, ["$$slots", "$$events", "$$legacy"]); + var o = i(); + s(o, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...n, + })), + r(e, o); +} +export { c as R }; diff --git a/frontend-backup/_app/immutable/chunks/rLj4C5Bn.js b/frontend-backup/_app/immutable/chunks/rLj4C5Bn.js deleted file mode 100644 index ea954ec..0000000 --- a/frontend-backup/_app/immutable/chunks/rLj4C5Bn.js +++ /dev/null @@ -1,26 +0,0 @@ -import "./B2cHk4HI.js"; -import { v as f, b as r } from "./BDALf20I.js"; -import { b as s } from "./BNZUboE0.js"; -import { r as d } from "./Bke_korE.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - t = new e.Error().stack; - t && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[t] = "e7827935-ebe4-43f0-84b4-16441b18c03c"), (e._sentryDebugIdIdentifier = "sentry-dbid-e7827935-ebe4-43f0-84b4-16441b18c03c")); - })(); -} catch {} -var i = f( - '' -); -function c(e, t) { - let n = d(t, ["$$slots", "$$events", "$$legacy"]); - var o = i(); - s(o, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...n })), r(e, o); -} -export { c as R }; diff --git a/frontend-backup/_app/immutable/chunks/sZ1mzRzK.js b/frontend-backup/_app/immutable/chunks/sZ1mzRzK.js deleted file mode 100644 index 3a31159..0000000 --- a/frontend-backup/_app/immutable/chunks/sZ1mzRzK.js +++ /dev/null @@ -1,33 +0,0 @@ -import { g as s } from "./DklPLC_x.js"; -import "./B2cHk4HI.js"; -import { v as r, b as i } from "./BDALf20I.js"; -import { b as a } from "./BNZUboE0.js"; -import { r as l } from "./Bke_korE.js"; -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - t = new e.Error().stack; - t && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[t] = "e9a4a830-f71c-4119-8142-30326aa85639"), (e._sentryDebugIdIdentifier = "sentry-dbid-e9a4a830-f71c-4119-8142-30326aa85639")); - })(); -} catch {} -const p = () => "Pixels painted", - c = () => "Pixels pintados", - T = (e = {}, t = {}) => ((t.locale ?? s()) === "en" ? p() : c()), - d = () => "Description", - f = () => "Descrição", - m = (e = {}, t = {}) => ((t.locale ?? s()) === "en" ? d() : f()); -var u = r( - '' -); -function v(e, t) { - let n = l(t, ["$$slots", "$$events", "$$legacy"]); - var o = u(); - a(o, () => ({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", fill: "currentColor", ...n })), i(e, o); -} -export { v as L, m as d, T as p }; diff --git a/frontend-backup/_app/immutable/chunks/start.CJ_UwIBa.js b/frontend-backup/_app/immutable/chunks/start.CJ_UwIBa.js deleted file mode 100644 index 0f85a4a..0000000 --- a/frontend-backup/_app/immutable/chunks/start.CJ_UwIBa.js +++ /dev/null @@ -1,2 +0,0 @@ -import { l as o, a as r } from "../chunks/KvV259my.js"; -export { o as load_css, r as start }; diff --git a/frontend-backup/_app/immutable/chunks/wZ7b5CwQ.js b/frontend-backup/_app/immutable/chunks/wZ7b5CwQ.js new file mode 100644 index 0000000..6f6230d --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/wZ7b5CwQ.js @@ -0,0 +1,75 @@ +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "318a9da5-f9ae-41c4-a6ad-1557223c6f66"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-318a9da5-f9ae-41c4-a6ad-1557223c6f66")); + })(); +} catch {} +const b = (e) => e; +function h(e) { + const t = e - 1; + return t * t * t + 1; +} +function w(e, { delay: t = 0, duration: i = 400, easing: s = b } = {}) { + const r = +getComputedStyle(e).opacity; + return { delay: t, duration: i, easing: s, css: (a) => `opacity: ${a * r}` }; +} +function m( + e, + { delay: t = 0, duration: i = 400, easing: s = h, axis: r = "y" } = {} +) { + const a = getComputedStyle(e), + c = +a.opacity, + p = r === "y" ? "height" : "width", + l = parseFloat(a[p]), + o = r === "y" ? ["top", "bottom"] : ["left", "right"], + d = o.map((n) => `${n[0].toUpperCase()}${n.slice(1)}`), + f = parseFloat(a[`padding${d[0]}`]), + y = parseFloat(a[`padding${d[1]}`]), + u = parseFloat(a[`margin${d[0]}`]), + g = parseFloat(a[`margin${d[1]}`]), + _ = parseFloat(a[`border${d[0]}Width`]), + $ = parseFloat(a[`border${d[1]}Width`]); + return { + delay: t, + duration: i, + easing: s, + css: (n) => + `overflow: hidden;opacity: ${Math.min(n * 20, 1) * c};${p}: ${ + n * l + }px;padding-${o[0]}: ${n * f}px;padding-${o[1]}: ${n * y}px;margin-${ + o[0] + }: ${n * u}px;margin-${o[1]}: ${n * g}px;border-${o[0]}-width: ${ + n * _ + }px;border-${o[1]}-width: ${n * $}px;min-${p}: 0`, + }; +} +export { w as f, m as s }; diff --git a/frontend-backup/_app/immutable/chunks/x1RL6Wqy.js b/frontend-backup/_app/immutable/chunks/x1RL6Wqy.js deleted file mode 100644 index cfe185e..0000000 --- a/frontend-backup/_app/immutable/chunks/x1RL6Wqy.js +++ /dev/null @@ -1,64 +0,0 @@ -(function () { - try { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - e.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - o = new e.Error().stack; - o && ((e._sentryDebugIds = e._sentryDebugIds || {}), (e._sentryDebugIds[o] = "2873cead-a87c-4550-afcc-7d8128f4def3"), (e._sentryDebugIdIdentifier = "sentry-dbid-2873cead-a87c-4550-afcc-7d8128f4def3")); - })(); -} catch {} -const m = "modulepreload", - w = function (e, o) { - return new URL(e, o).href; - }, - g = {}, - v = function (o, d, u) { - let h = Promise.resolve(); - if (d && d.length > 0) { - let i = function (t) { - return Promise.all( - t.map((s) => - Promise.resolve(s).then( - (c) => ({ status: "fulfilled", value: c }), - (c) => ({ status: "rejected", reason: c }) - ) - ) - ); - }; - const n = document.getElementsByTagName("link"), - l = document.querySelector("meta[property=csp-nonce]"), - b = (l == null ? void 0 : l.nonce) || (l == null ? void 0 : l.getAttribute("nonce")); - h = i( - d.map((t) => { - if (((t = w(t, u)), t in g)) return; - g[t] = !0; - const s = t.endsWith(".css"), - c = s ? '[rel="stylesheet"]' : ""; - if (!!u) - for (let f = n.length - 1; f >= 0; f--) { - const a = n[f]; - if (a.href === t && (!s || a.rel === "stylesheet")) return; - } - else if (document.querySelector(`link[href="${t}"]${c}`)) return; - const r = document.createElement("link"); - if (((r.rel = s ? "stylesheet" : m), s || (r.as = "script"), (r.crossOrigin = ""), (r.href = t), b && r.setAttribute("nonce", b), document.head.appendChild(r), s)) - return new Promise((f, a) => { - r.addEventListener("load", f), r.addEventListener("error", () => a(new Error(`Unable to preload CSS for ${t}`))); - }); - }) - ); - } - function y(i) { - const n = new Event("vite:preloadError", { cancelable: !0 }); - if (((n.payload = i), window.dispatchEvent(n), !n.defaultPrevented)) throw i; - } - return h.then((i) => { - for (const n of i || []) n.status === "rejected" && y(n.reason); - return o().catch(y); - }); - }; -export { v as _ }; diff --git a/frontend-backup/_app/immutable/chunks/yW7U80iv.js b/frontend-backup/_app/immutable/chunks/yW7U80iv.js new file mode 100644 index 0000000..7a07ba8 --- /dev/null +++ b/frontend-backup/_app/immutable/chunks/yW7U80iv.js @@ -0,0 +1,17408 @@ +(function () { + try { + var E = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + E.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var E = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + g = new E.Error().stack; + g && + ((E._sentryDebugIds = E._sentryDebugIds || {}), + (E._sentryDebugIds[g] = "48c88be9-ac3d-4338-9fee-762fd564c6c9"), + (E._sentryDebugIdIdentifier = + "sentry-dbid-48c88be9-ac3d-4338-9fee-762fd564c6c9")); + })(); +} catch {} +(function () { + var E = this || self; + function g(d, $) { + d = d.split("."); + var t = E; + d[0] in t || typeof t.execScript > "u" || t.execScript("var " + d[0]); + for (var e; d.length && (e = d.shift()); ) + d.length || $ === void 0 + ? t[e] && t[e] !== Object.prototype[e] + ? (t = t[e]) + : (t = t[e] = {}) + : (t[e] = $); + } + function _(d, $) { + function t() {} + (t.prototype = $.prototype), + (d.ma = $.prototype), + (d.prototype = new t()), + (d.prototype.constructor = d), + (d.sa = function (e, n, r) { + for ( + var u = Array(arguments.length - 2), i = 2; + i < arguments.length; + i++ + ) + u[i - 2] = arguments[i]; + return $.prototype[n].apply(e, u); + }); + } + function F1(d) { + const $ = []; + let t = 0; + for (const e in d) $[t++] = d[e]; + return $; + } + var b = class { + constructor(d) { + if (d1 !== d1) throw Error("SafeUrl is not meant to be built directly"); + this.g = d; + } + toString() { + return this.g.toString(); + } + }, + d1 = {}; + new b("about:invalid#zClosurez"), new b("about:blank"); + const $1 = {}; + class V1 { + constructor() { + if ($1 !== $1) throw Error("SafeStyle is not meant to be built directly"); + } + toString() { + return ""; + } + } + new V1(); + const t1 = {}; + class Z1 { + constructor() { + if (t1 !== t1) + throw Error("SafeStyleSheet is not meant to be built directly"); + } + toString() { + return ""; + } + } + new Z1(); + const e1 = {}; + class H1 { + constructor() { + var $ = (E.trustedTypes && E.trustedTypes.emptyHTML) || ""; + if (e1 !== e1) throw Error("SafeHtml is not meant to be built directly"); + this.g = $; + } + toString() { + return this.g.toString(); + } + } + new H1(); + function W1(d, $) { + switch ( + ((this.g = d), + (this.l = !!$.aa), + (this.h = $.i), + (this.s = $.type), + (this.o = !1), + this.h) + ) { + case J1: + case X1: + case Q1: + case k1: + case z1: + case j1: + case Y1: + this.o = !0; + } + this.j = $.defaultValue; + } + var Y1 = 1, + j1 = 2, + J1 = 3, + X1 = 4, + Q1 = 6, + k1 = 16, + z1 = 18; + function q1(d, $) { + for (this.h = d, this.g = {}, d = 0; d < $.length; d++) { + var t = $[d]; + this.g[t.g] = t; + } + } + function b1(d) { + return ( + (d = F1(d.g)), + d.sort(function ($, t) { + return $.g - t.g; + }), + d + ); + } + function C() { + (this.h = {}), (this.j = this.m().g), (this.g = this.l = null); + } + (C.prototype.has = function (d) { + return m(this, d.g); + }), + (C.prototype.get = function (d, $) { + return f(this, d.g, $); + }), + (C.prototype.set = function (d, $) { + c(this, d.g, $); + }), + (C.prototype.add = function (d, $) { + r1(this, d.g, $); + }); + function n1(d, $) { + for (var t = b1(d.m()), e = 0; e < t.length; e++) { + var n = t[e], + r = n.g; + if (m($, r)) { + d.g && delete d.g[n.g]; + var u = n.h == 11 || n.h == 10; + if (n.l) { + n = a($, r); + for (var i = 0; i < n.length; i++) r1(d, r, u ? n[i].clone() : n[i]); + } else + (n = K($, r)), + u ? ((u = K(d, r)) ? n1(u, n) : c(d, r, n.clone())) : c(d, r, n); + } + } + } + C.prototype.clone = function () { + var d = new this.constructor(); + return d != this && ((d.h = {}), d.g && (d.g = {}), n1(d, this)), d; + }; + function m(d, $) { + return d.h[$] != null; + } + function K(d, $) { + var t = d.h[$]; + if (t == null) return null; + if (d.l) { + if (!($ in d.g)) { + var e = d.l, + n = d.j[$]; + if (t != null) + if (n.l) { + for (var r = [], u = 0; u < t.length; u++) r[u] = e.h(n, t[u]); + t = r; + } else t = e.h(n, t); + return (d.g[$] = t); + } + return d.g[$]; + } + return t; + } + function f(d, $, t) { + var e = K(d, $); + return d.j[$].l ? e[t || 0] : e; + } + function l(d, $) { + if (m(d, $)) d = f(d, $); + else + d: { + if (((d = d.j[$]), d.j === void 0)) + if ((($ = d.s), $ === Boolean)) d.j = !1; + else if ($ === Number) d.j = 0; + else if ($ === String) d.j = d.o ? "0" : ""; + else { + d = new $(); + break d; + } + d = d.j; + } + return d; + } + function a(d, $) { + return K(d, $) || []; + } + function I(d, $) { + return d.j[$].l ? (m(d, $) ? d.h[$].length : 0) : m(d, $) ? 1 : 0; + } + function c(d, $, t) { + (d.h[$] = t), d.g && (d.g[$] = t); + } + function r1(d, $, t) { + d.h[$] || (d.h[$] = []), d.h[$].push(t), d.g && delete d.g[$]; + } + function D(d, $) { + var t = [], + e; + for (e in $) e != 0 && t.push(new W1(e, $[e])); + return new q1(d, t); + } + function F() {} + (F.prototype.g = function (d) { + throw (new d.h(), Error("Unimplemented")); + }), + (F.prototype.h = function (d, $) { + if (d.h == 11 || d.h == 10) + return $ instanceof C ? $ : this.g(d.s.prototype.m(), $); + if (d.h == 14) + return typeof $ == "string" && u1.test($) && ((d = Number($)), 0 < d) + ? d + : $; + if (!d.o) return $; + if (((d = d.s), d === String)) { + if (typeof $ == "number") return String($); + } else if ( + d === Number && + typeof $ == "string" && + ($ === "Infinity" || $ === "-Infinity" || $ === "NaN" || u1.test($)) + ) + return Number($); + return $; + }); + var u1 = /^-?[0-9]+$/; + function J() {} + _(J, F), + (J.prototype.g = function (d, $) { + return (d = new d.h()), (d.l = this), (d.h = $), (d.g = {}), d; + }); + function B() {} + _(B, J), + (B.prototype.h = function (d, $) { + return d.h == 8 ? !!$ : F.prototype.h.apply(this, arguments); + }), + (B.prototype.g = function (d, $) { + return B.ma.g.call(this, d, $); + }); + function h(d, $) { + d != null && this.g.apply(this, arguments); + } + (h.prototype.h = ""), + (h.prototype.set = function (d) { + this.h = "" + d; + }), + (h.prototype.g = function (d, $, t) { + if (((this.h += String(d)), $ != null)) + for (let e = 1; e < arguments.length; e++) this.h += arguments[e]; + return this; + }); + function S(d) { + d.h = ""; + } + h.prototype.toString = function () { + return this.h; + }; + function v() { + C.call(this); + } + _(v, C); + var i1 = null; + function s() { + C.call(this); + } + _(s, C); + var f1 = null; + function R() { + C.call(this); + } + _(R, C); + var o1 = null; + (v.prototype.m = function () { + var d = i1; + return ( + d || + (i1 = d = + D(v, { + 0: { name: "NumberFormat", ia: "i18n.phonenumbers.NumberFormat" }, + 1: { name: "pattern", required: !0, i: 9, type: String }, + 2: { name: "format", required: !0, i: 9, type: String }, + 3: { name: "leading_digits_pattern", aa: !0, i: 9, type: String }, + 4: { name: "national_prefix_formatting_rule", i: 9, type: String }, + 6: { + name: "national_prefix_optional_when_formatting", + i: 8, + defaultValue: !1, + type: Boolean, + }, + 5: { + name: "domestic_carrier_code_formatting_rule", + i: 9, + type: String, + }, + })), + d + ); + }), + (v.m = v.prototype.m), + (s.prototype.m = function () { + var d = f1; + return ( + d || + (f1 = d = + D(s, { + 0: { + name: "PhoneNumberDesc", + ia: "i18n.phonenumbers.PhoneNumberDesc", + }, + 2: { name: "national_number_pattern", i: 9, type: String }, + 9: { name: "possible_length", aa: !0, i: 5, type: Number }, + 10: { + name: "possible_length_local_only", + aa: !0, + i: 5, + type: Number, + }, + 6: { name: "example_number", i: 9, type: String }, + })), + d + ); + }), + (s.m = s.prototype.m), + (R.prototype.m = function () { + var d = o1; + return ( + d || + (o1 = d = + D(R, { + 0: { + name: "PhoneMetadata", + ia: "i18n.phonenumbers.PhoneMetadata", + }, + 1: { name: "general_desc", i: 11, type: s }, + 2: { name: "fixed_line", i: 11, type: s }, + 3: { name: "mobile", i: 11, type: s }, + 4: { name: "toll_free", i: 11, type: s }, + 5: { name: "premium_rate", i: 11, type: s }, + 6: { name: "shared_cost", i: 11, type: s }, + 7: { name: "personal_number", i: 11, type: s }, + 8: { name: "voip", i: 11, type: s }, + 21: { name: "pager", i: 11, type: s }, + 25: { name: "uan", i: 11, type: s }, + 27: { name: "emergency", i: 11, type: s }, + 28: { name: "voicemail", i: 11, type: s }, + 29: { name: "short_code", i: 11, type: s }, + 30: { name: "standard_rate", i: 11, type: s }, + 31: { name: "carrier_specific", i: 11, type: s }, + 33: { name: "sms_services", i: 11, type: s }, + 24: { name: "no_international_dialling", i: 11, type: s }, + 9: { name: "id", required: !0, i: 9, type: String }, + 10: { name: "country_code", i: 5, type: Number }, + 11: { name: "international_prefix", i: 9, type: String }, + 17: { + name: "preferred_international_prefix", + i: 9, + type: String, + }, + 12: { name: "national_prefix", i: 9, type: String }, + 13: { name: "preferred_extn_prefix", i: 9, type: String }, + 15: { name: "national_prefix_for_parsing", i: 9, type: String }, + 16: { + name: "national_prefix_transform_rule", + i: 9, + type: String, + }, + 18: { + name: "same_mobile_and_fixed_line_pattern", + i: 8, + defaultValue: !1, + type: Boolean, + }, + 19: { name: "number_format", aa: !0, i: 11, type: v }, + 20: { name: "intl_number_format", aa: !0, i: 11, type: v }, + 22: { + name: "main_country_for_code", + i: 8, + defaultValue: !1, + type: Boolean, + }, + 23: { name: "leading_digits", i: 9, type: String }, + })), + d + ); + }), + (R.m = R.prototype.m); + function A() { + C.call(this); + } + _(A, C); + var l1 = null, + d2 = { ra: 0, qa: 1, pa: 5, oa: 10, na: 20 }; + (A.prototype.m = function () { + var d = l1; + return ( + d || + (l1 = d = + D(A, { + 0: { name: "PhoneNumber", ia: "i18n.phonenumbers.PhoneNumber" }, + 1: { name: "country_code", required: !0, i: 5, type: Number }, + 2: { name: "national_number", required: !0, i: 4, type: Number }, + 3: { name: "extension", i: 9, type: String }, + 4: { name: "italian_leading_zero", i: 8, type: Boolean }, + 8: { + name: "number_of_leading_zeros", + i: 5, + defaultValue: 1, + type: Number, + }, + 5: { name: "raw_input", i: 9, type: String }, + 6: { + name: "country_code_source", + i: 14, + defaultValue: 0, + type: d2, + }, + 7: { name: "preferred_domestic_carrier_code", i: 9, type: String }, + })), + d + ); + }), + (A.ctor = A), + (A.ctor.m = A.prototype.m); + var w = { + 1: "US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI".split( + " " + ), + 7: ["RU", "KZ"], + 20: ["EG"], + 27: ["ZA"], + 30: ["GR"], + 31: ["NL"], + 32: ["BE"], + 33: ["FR"], + 34: ["ES"], + 36: ["HU"], + 39: ["IT", "VA"], + 40: ["RO"], + 41: ["CH"], + 43: ["AT"], + 44: ["GB", "GG", "IM", "JE"], + 45: ["DK"], + 46: ["SE"], + 47: ["NO", "SJ"], + 48: ["PL"], + 49: ["DE"], + 51: ["PE"], + 52: ["MX"], + 53: ["CU"], + 54: ["AR"], + 55: ["BR"], + 56: ["CL"], + 57: ["CO"], + 58: ["VE"], + 60: ["MY"], + 61: ["AU", "CC", "CX"], + 62: ["ID"], + 63: ["PH"], + 64: ["NZ"], + 65: ["SG"], + 66: ["TH"], + 81: ["JP"], + 82: ["KR"], + 84: ["VN"], + 86: ["CN"], + 90: ["TR"], + 91: ["IN"], + 92: ["PK"], + 93: ["AF"], + 94: ["LK"], + 95: ["MM"], + 98: ["IR"], + 211: ["SS"], + 212: ["MA", "EH"], + 213: ["DZ"], + 216: ["TN"], + 218: ["LY"], + 220: ["GM"], + 221: ["SN"], + 222: ["MR"], + 223: ["ML"], + 224: ["GN"], + 225: ["CI"], + 226: ["BF"], + 227: ["NE"], + 228: ["TG"], + 229: ["BJ"], + 230: ["MU"], + 231: ["LR"], + 232: ["SL"], + 233: ["GH"], + 234: ["NG"], + 235: ["TD"], + 236: ["CF"], + 237: ["CM"], + 238: ["CV"], + 239: ["ST"], + 240: ["GQ"], + 241: ["GA"], + 242: ["CG"], + 243: ["CD"], + 244: ["AO"], + 245: ["GW"], + 246: ["IO"], + 247: ["AC"], + 248: ["SC"], + 249: ["SD"], + 250: ["RW"], + 251: ["ET"], + 252: ["SO"], + 253: ["DJ"], + 254: ["KE"], + 255: ["TZ"], + 256: ["UG"], + 257: ["BI"], + 258: ["MZ"], + 260: ["ZM"], + 261: ["MG"], + 262: ["RE", "YT"], + 263: ["ZW"], + 264: ["NA"], + 265: ["MW"], + 266: ["LS"], + 267: ["BW"], + 268: ["SZ"], + 269: ["KM"], + 290: ["SH", "TA"], + 291: ["ER"], + 297: ["AW"], + 298: ["FO"], + 299: ["GL"], + 350: ["GI"], + 351: ["PT"], + 352: ["LU"], + 353: ["IE"], + 354: ["IS"], + 355: ["AL"], + 356: ["MT"], + 357: ["CY"], + 358: ["FI", "AX"], + 359: ["BG"], + 370: ["LT"], + 371: ["LV"], + 372: ["EE"], + 373: ["MD"], + 374: ["AM"], + 375: ["BY"], + 376: ["AD"], + 377: ["MC"], + 378: ["SM"], + 380: ["UA"], + 381: ["RS"], + 382: ["ME"], + 383: ["XK"], + 385: ["HR"], + 386: ["SI"], + 387: ["BA"], + 389: ["MK"], + 420: ["CZ"], + 421: ["SK"], + 423: ["LI"], + 500: ["FK"], + 501: ["BZ"], + 502: ["GT"], + 503: ["SV"], + 504: ["HN"], + 505: ["NI"], + 506: ["CR"], + 507: ["PA"], + 508: ["PM"], + 509: ["HT"], + 590: ["GP", "BL", "MF"], + 591: ["BO"], + 592: ["GY"], + 593: ["EC"], + 594: ["GF"], + 595: ["PY"], + 596: ["MQ"], + 597: ["SR"], + 598: ["UY"], + 599: ["CW", "BQ"], + 670: ["TL"], + 672: ["NF"], + 673: ["BN"], + 674: ["NR"], + 675: ["PG"], + 676: ["TO"], + 677: ["SB"], + 678: ["VU"], + 679: ["FJ"], + 680: ["PW"], + 681: ["WF"], + 682: ["CK"], + 683: ["NU"], + 685: ["WS"], + 686: ["KI"], + 687: ["NC"], + 688: ["TV"], + 689: ["PF"], + 690: ["TK"], + 691: ["FM"], + 692: ["MH"], + 800: ["001"], + 808: ["001"], + 850: ["KP"], + 852: ["HK"], + 853: ["MO"], + 855: ["KH"], + 856: ["LA"], + 870: ["001"], + 878: ["001"], + 880: ["BD"], + 881: ["001"], + 882: ["001"], + 883: ["001"], + 886: ["TW"], + 888: ["001"], + 960: ["MV"], + 961: ["LB"], + 962: ["JO"], + 963: ["SY"], + 964: ["IQ"], + 965: ["KW"], + 966: ["SA"], + 967: ["YE"], + 968: ["OM"], + 970: ["PS"], + 971: ["AE"], + 972: ["IL"], + 973: ["BH"], + 974: ["QA"], + 975: ["BT"], + 976: ["MN"], + 977: ["NP"], + 979: ["001"], + 992: ["TJ"], + 993: ["TM"], + 994: ["AZ"], + 995: ["GE"], + 996: ["KG"], + 998: ["UZ"], + }, + s1 = { + AC: [ + , + [, , "(?:[01589]\\d|[46])\\d{4}", , , , , , , [5, 6]], + [, , "6[2-467]\\d{3}", , , , "62889", , , [5]], + [, , "4\\d{4}", , , , "40123", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AC", + 247, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:0[1-9]|[1589]\\d)\\d{4}", , , , "542011", , , [6]], + , + , + [, , , , , , , , , [-1]], + ], + AD: [ + , + [, , "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", , , , , , , [6, 8, 9]], + [, , "[78]\\d{5}", , , , "712345", , , [6]], + [, , "690\\d{6}|[356]\\d{5}", , , , "312345", , , [6, 9]], + [, , "180[02]\\d{4}", , , , "18001234", , , [8]], + [, , "[19]\\d{5}", , , , "912345", , , [6]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AD", + 376, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["1"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "1800\\d{4}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AE: [ + , + [ + , + , + "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 11, 12], + ], + [, , "[2-4679][2-8]\\d{6}", , , , "22345678", , , [8], [7]], + [, , "5[024-68]\\d{7}", , , , "501234567", , , [9]], + [, , "400\\d{6}|800\\d{2,9}", , , , "800123456"], + [, , "900[02]\\d{5}", , , , "900234567", , , [9]], + [, , "700[05]\\d{5}", , , , "700012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AE", + 971, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], + [, "(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "600[25]\\d{5}", , , , "600212345", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + AF: [ + , + [, , "[2-7]\\d{8}", , , , , , , [9], [7]], + [ + , + , + "(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}", + , + , + , + "234567890", + , + , + , + [7], + ], + [, , "7\\d{8}", , , , "701234567", , , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AF", + 93, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[1-9]"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], + ], + [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AG: [ + , + [, , "(?:268|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}", + , + , + , + "2684601234", + , + , + , + [7], + ], + [ + , + , + "268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}", + , + , + , + "2684641234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "26848[01]\\d{4}", , , , "2684801234", , , , [7]], + "AG", + 1, + "011", + "1", + , + , + "([457]\\d{6})$|1", + "268$1", + , + , + , + , + [, , "26840[69]\\d{4}", , , , "2684061234", , , , [7]], + , + "268", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AI: [ + , + [, , "(?:264|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "264(?:292|4(?:6[12]|9[78]))\\d{4}", + , + , + , + "2644612345", + , + , + , + [7], + ], + [ + , + , + "264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}", + , + , + , + "2642351234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "AI", + 1, + "011", + "1", + , + , + "([2457]\\d{6})$|1", + "264$1", + , + , + , + , + [, , "264724\\d{4}", , , , "2647241234", , , , [7]], + , + "264", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AL: [ + , + [ + , + , + "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", + , + , + , + , + , + , + [6, 7, 8, 9], + [5], + ], + [ + , + , + "4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}", + , + , + , + "22345678", + , + , + [8], + [5, 6, 7], + ], + [, , "6(?:[78][2-9]|9\\d)\\d{6}", , , , "672123456", , , [9]], + [, , "800\\d{4}", , , , "8001234", , , [7]], + [, , "900[1-9]\\d\\d", , , , "900123", , , [6]], + [, , "808[1-9]\\d\\d", , , , "808123", , , [6]], + [, , "700[2-9]\\d{4}", , , , "70021234", , , [8]], + [, , , , , , , , , [-1]], + "AL", + 355, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AM: [ + , + [, , "(?:[1-489]\\d|55|60|77)\\d{6}", , , , , , , [8], [5, 6]], + [ + , + , + "(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}", + , + , + , + "10123456", + , + , + , + [5, 6], + ], + [, , "(?:33|4[1349]|55|77|88|9[13-9])\\d{6}", , , , "77123456"], + [, , "800\\d{5}", , , , "80012345"], + [, , "90[016]\\d{5}", , , , "90012345"], + [, , "80[1-4]\\d{5}", , , , "80112345"], + [, , , , , , , , , [-1]], + [ + , + , + "60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[0-2])\\d{4}", + , + , + , + "60271234", + ], + "AM", + 374, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], + [, "(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], + [, "(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], + [, "(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AO: [ + , + [, , "[29]\\d{8}", , , , , , , [9]], + [, , "2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}", , , , "222123456"], + [, , "9[1-79]\\d{7}", , , , "923123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AO", + 244, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AR: [ + , + [ + , + , + "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", + , + , + , + , + , + , + [10, 11], + [6, 7, 8], + ], + [ + , + , + "3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\d{5}|(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68])))\\d{6}|(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}", + , + , + , + "1123456789", + , + , + [10], + [6, 7, 8], + ], + [ + , + , + "93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\d{5}|9(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68]))))\\d{6}|9(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}", + , + , + , + "91123456789", + , + , + , + [6, 7, 8], + ], + [, , "800\\d{7,8}", , , , "8001234567"], + [, , "60[04579]\\d{7}", , , , "6001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AR", + 54, + "00", + "0", + , + , + "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", + "9$1", + , + , + [ + [ + , + "(\\d{3})", + "$1", + ["0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911"], + ], + [, "(\\d{2})(\\d{4})", "$1-$2", ["[1-9]"]], + [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-9]"]], + [, "(\\d{4})(\\d{4})", "$1-$2", ["[1-8]"]], + [ + , + "(\\d{4})(\\d{2})(\\d{4})", + "$1 $2-$3", + [ + "2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", + "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + "0$1", + , + 1, + ], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", , 1], + [ + , + "(\\d)(\\d{4})(\\d{2})(\\d{4})", + "$2 15-$3-$4", + [ + "9(?:2[2-469]|3[3-578])", + "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", + "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + "0$1", + ], + [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1"], + ], + [ + [ + , + "(\\d{4})(\\d{2})(\\d{4})", + "$1 $2-$3", + [ + "2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", + "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + "0$1", + , + 1, + ], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", , 1], + [ + , + "(\\d)(\\d{4})(\\d{2})(\\d{4})", + "$1 $2 $3-$4", + [ + "9(?:2[2-469]|3[3-578])", + "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", + "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + ], + [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3-$4", ["91"]], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3-$4", ["9"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , "810\\d{7}", , , , , , , [10]], + [, , "810\\d{7}", , , , "8101234567", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + AS: [ + , + [, , "(?:[58]\\d\\d|684|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "6846(?:22|33|44|55|77|88|9[19])\\d{4}", + , + , + , + "6846221234", + , + , + , + [7], + ], + [ + , + , + "684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}", + , + , + , + "6847331234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "AS", + 1, + "011", + "1", + , + , + "([267]\\d{6})$|1", + "684$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "684", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AT: [ + , + [ + , + , + "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", + , + , + , + , + , + , + [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], + [3], + ], + [ + , + , + "1(?:11\\d|[2-9]\\d{3,11})|(?:316|463)\\d{3,10}|648[34]\\d{3,9}|(?:51|66|73)2\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-7]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}", + , + , + , + "1234567890", + , + , + , + [3], + ], + [ + , + , + "6(?:485|(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d)\\d{3,9}", + , + , + , + "664123456", + , + , + [7, 8, 9, 10, 11, 12, 13], + ], + [, , "800\\d{6,10}", , , , "800123456", , , [9, 10, 11, 12, 13]], + [ + , + , + "(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}", + , + , + , + "900123456", + , + , + [9, 10, 11, 12, 13], + ], + [ + , + , + "8(?:10|2[018])\\d{6,10}|828\\d{5}", + , + , + , + "810123456", + , + , + [8, 9, 10, 11, 12, 13], + ], + [, , , , , , , , , [-1]], + [ + , + , + "5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}", + , + , + , + "780123456", + , + , + [5, 6, 7, 8, 9, 10, 11, 12, 13], + ], + "AT", + 43, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})", "$1", ["14"]], + [, "(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], + [, "(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], + [, "(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], + [, "(\\d{6})", "$1", ["[18]"]], + [ + , + "(\\d{3})(\\d{3,10})", + "$1 $2", + [ + "(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]", + "(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]", + ], + "0$1", + ], + [, "(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"], + ], + [ + [, "(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], + [, "(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], + [, "(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], + [ + , + "(\\d{3})(\\d{3,10})", + "$1 $2", + [ + "(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]", + "(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]", + ], + "0$1", + ], + [, "(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AU: [ + , + [ + , + , + "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 12], + ], + [ + , + , + "(?:(?:2(?:(?:[0-26-9]\\d|3[0-8]|5[0135-9])\\d|4(?:[02-9]\\d|10))|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90))|7(?:[013-57-9]\\d|2[0-8])\\d)\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|[34]\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", + , + , + , + "212345678", + , + , + [9], + [8], + ], + [ + , + , + "4(?:79[01]|83[0-389]|94[0-478])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\\d{6}", + , + , + , + "412345678", + , + , + [9], + ], + [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], + [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], + [ + , + , + "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", + , + , + , + "1300123456", + , + , + [6, 8, 10, 12], + ], + [, , , , , , , , , [-1]], + [ + , + , + "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", + , + , + , + "147101234", + , + , + [9], + ], + "AU", + 61, + "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", + "0", + , + , + "(183[12])|0", + , + "0011", + , + [ + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["13"]], + [, "(\\d{3})(\\d{3})", "$1 $2", ["19"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["180", "1802"]], + [, "(\\d{4})(\\d{3,4})", "$1 $2", ["19"]], + [, "(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], + [ + , + "(\\d)(\\d{4})(\\d{4})", + "$1 $2 $3", + ["[2378]"], + "(0$1)", + "$CC ($1)", + ], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]], + [, "(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["130"]], + ], + [ + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], + [ + , + "(\\d)(\\d{4})(\\d{4})", + "$1 $2 $3", + ["[2378]"], + "(0$1)", + "$CC ($1)", + ], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]], + ], + [, , "163\\d{2,6}", , , , "1631234", , , [5, 6, 7, 8, 9]], + 1, + , + [ + , + , + "1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}", + , + , + , + , + , + , + [6, 7, 8, 10, 12], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AW: [ + , + [, , "(?:[25-79]\\d\\d|800)\\d{4}", , , , , , , [7]], + [, , "5(?:2\\d|8[1-9])\\d{4}", , , , "5212345"], + [ + , + , + "(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}", + , + , + , + "5601234", + ], + [, , "800\\d{4}", , , , "8001234"], + [, , "900\\d{4}", , , , "9001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:28\\d|501)\\d{4}", , , , "5011234"], + "AW", + 297, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AX: [ + , + [ + , + , + "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 11, 12], + ], + [, , "18[1-8]\\d{3,6}", , , , "181234567", , , [6, 7, 8, 9]], + [ + , + , + "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", + , + , + , + "412345678", + , + , + [6, 7, 8, 9, 10], + ], + [, , "800\\d{4,6}", , , , "800123456", , , [7, 8, 9]], + [, , "[67]00\\d{5,6}", , , , "600123456", , , [8, 9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AX", + 358, + "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", + "0", + , + , + "0", + , + "00", + , + , + , + [, , , , , , , , , [-1]], + , + "18", + [, , , , , , , , , [-1]], + [ + , + , + "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}", + , + , + , + "10112345", + ], + , + , + [, , , , , , , , , [-1]], + ], + AZ: [ + , + [, , "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", , , , , , , [9], [7]], + [ + , + , + "(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}", + , + , + , + "123123456", + , + , + , + [7], + ], + [ + , + , + "36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}", + , + , + , + "401234567", + ], + [, , "88\\d{7}", , , , "881234567"], + [, , "900200\\d{3}", , , , "900200123"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AZ", + 994, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[1-9]"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "1[28]|2|365|46", + "1[28]|2|365[45]|46", + "1[28]|2|365(?:4|5[02])|46", + ], + "(0$1)", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[13-9]"], + "0$1", + ], + ], + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "1[28]|2|365|46", + "1[28]|2|365[45]|46", + "1[28]|2|365(?:4|5[02])|46", + ], + "(0$1)", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[13-9]"], + "0$1", + ], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BA: [ + , + [, , "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", , , , , , , [8, 9], [6]], + [ + , + , + "(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}", + , + , + , + "30212345", + , + , + [8], + [6], + ], + [, , "6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}", , , , "61123456"], + [, , "8[08]\\d{6}", , , , "80123456", , , [8]], + [, , "9[0246]\\d{6}", , , , "90123456", , , [8]], + [, , "8[12]\\d{6}", , , , "82123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BA", + 387, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1-$2", ["[2-9]"]], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"], + ], + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}", + , + , + , + "70341234", + , + , + [8], + ], + , + , + [, , , , , , , , , [-1]], + ], + BB: [ + , + [, , "(?:246|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}", + , + , + , + "2464123456", + , + , + , + [7], + ], + [ + , + , + "246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}", + , + , + , + "2462501234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "(?:246976|900[2-9]\\d\\d)\\d{4}", , , , "9002123456", , , , [7]], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "24631\\d{5}", , , , "2463101234", , , , [7]], + "BB", + 1, + "011", + "1", + , + , + "([2-9]\\d{6})$|1", + "246$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "246", + [, , , , , , , , , [-1]], + [ + , + , + "246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}", + , + , + , + "2464301234", + , + , + , + [7], + ], + , + , + [, , , , , , , , , [-1]], + ], + BD: [ + , + [ + , + , + "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10], + ], + [ + , + , + "(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:[23]\\d|[45])\\d\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}", + , + , + , + "27111234", + ], + [ + , + , + "(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}", + , + , + , + "1812345678", + , + , + [10], + ], + [, , "80[03]\\d{7}", , , , "8001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\d{6}", + , + , + , + "9604123456", + , + , + [10], + ], + "BD", + 880, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], + [ + , + "(\\d{3})(\\d{3,7})", + "$1-$2", + [ + "3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]", + ], + "0$1", + ], + [, "(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], + [, "(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BE: [ + , + [, , "4\\d{8}|[1-9]\\d{7}", , , , , , , [8, 9]], + [ + , + , + "80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}", + , + , + , + "12345678", + , + , + [8], + ], + [, , "4[5-9]\\d{7}", , , , "470123456", , , [9]], + [, , "800[1-9]\\d{4}", , , , "80012345", , , [8]], + [ + , + , + "(?:70(?:2[0-57]|3[04-7]|44|6[04-69]|7[0579])|90\\d\\d)\\d{4}", + , + , + , + "90012345", + , + , + [8], + ], + [, , "7879\\d{4}", , , , "78791234", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BE", + 32, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], + [ + , + "(\\d)(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[239]|4[23]"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[15-8]"], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "78(?:0[578]|1[014-8]|2[25]|3[15-8]|48|5[05]|60|7[06-8]|9\\d)\\d{4}", + , + , + , + "78102345", + , + , + [8], + ], + , + , + [, , , , , , , , , [-1]], + ], + BF: [ + , + [, , "(?:[025-7]\\d|44)\\d{6}", , , , , , , [8]], + [ + , + , + "2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}", + , + , + , + "20491234", + ], + [, , "(?:0[1-7]|44|5[0-8]|[67]\\d)\\d{6}", , , , "70123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BF", + 226, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[024-7]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BG: [ + , + [ + , + , + "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 12], + [4, 5], + ], + [ + , + , + "2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}", + , + , + , + "2123456", + , + , + [6, 7, 8], + [4, 5], + ], + [ + , + , + "(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}", + , + , + , + "43012345", + , + , + [8, 9], + ], + [, , "(?:00800\\d\\d|800)\\d{5}", , , , "80012345", , , [8, 12]], + [, , "90\\d{6}", , , , "90123456", , , [8]], + [, , "700\\d{5}", , , , "70012345", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BG", + 359, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{6})", "$1", ["1"]], + [, "(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2,3})", + "$1 $2 $3", + ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], + ], + [ + [, "(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2,3})", + "$1 $2 $3", + ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BH: [ + , + [, , "[136-9]\\d{7}", , , , , , , [8]], + [ + , + , + "(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\\d\\d|1(?:11|78)))\\d{4}", + , + , + , + "17001234", + ], + [ + , + , + "(?:3(?:[0-79]\\d|8[0-57-9])\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\d|7[0-689])))\\d{4}", + , + , + , + "36001234", + ], + [, , "8[02369]\\d{6}", , , , "80123456"], + [, , "(?:87|9[0-8])\\d{6}", , , , "90123456"], + [, , "84\\d{6}", , , , "84123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BH", + 973, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BI: [ + , + [, , "(?:[267]\\d|31)\\d{6}", , , , , , , [8]], + [, , "(?:22|31)\\d{6}", , , , "22201234"], + [, , "(?:29|6[124-9]|7[125-9])\\d{6}", , , , "79561234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BI", + 257, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BJ: [ + , + [, , "(?:01\\d|[24-689])\\d{7}", , , , , , , [8, 10]], + [ + , + , + "2090\\d{4}|(?:012\\d\\d|2(?:02|1[037]|2[45]|3[68]|4\\d))\\d{5}", + , + , + , + "0120211234", + ], + [ + , + , + "(?:01(?:2[5-9]|[4-69]\\d)|4[0-8]|[56]\\d|9[013-9])\\d{6}", + , + , + , + "0195123456", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "857[58]\\d{4}", , , , "85751234", , , [8]], + "BJ", + 229, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["0"], + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "81\\d{6}", , , , "81123456", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + BL: [ + , + [, , "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", , , , , , , [9]], + [, , "590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}", , , , "590271234"], + [ + , + , + "(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}", + , + , + , + "690001234", + ], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}", , , , "976012345"], + "BL", + 590, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BM: [ + , + [, , "(?:441|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}", + , + , + , + "4414123456", + , + , + , + [7], + ], + [ + , + , + "441(?:[2378]\\d|5[0-39]|9[02])\\d{5}", + , + , + , + "4413701234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "BM", + 1, + "011", + "1", + , + , + "([2-9]\\d{6})$|1", + "441$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "441", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BN: [ + , + [, , "[2-578]\\d{6}", , , , , , , [7]], + [ + , + , + "22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}", + , + , + , + "2345678", + ], + [, , "(?:22[89]|[78]\\d\\d)\\d{4}", , , , "7123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "5[34]\\d{5}", , , , "5345678"], + "BN", + 673, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BO: [ + , + [, , "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", , , , , , , [8, 9], [7]], + [ + , + , + "(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}", + , + , + , + "22123456", + , + , + [8], + [7], + ], + [, , "[67]\\d{7}", , , , "71234567", , , [8]], + [, , "8001[07]\\d{4}", , , , "800171234", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "50\\d{6}", , , , "50123456", , , [8], [7]], + "BO", + 591, + "00(?:1\\d)?", + "0", + , + , + "0(1\\d)?", + , + , + , + [ + [, "(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"], , "0$CC $1"], + [, "(\\d{8})", "$1", ["[67]"], , "0$CC $1"], + [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"], , "0$CC $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "8001[07]\\d{4}", , , , , , , [9]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BQ: [ + , + [, , "(?:[34]1|7\\d)\\d{5}", , , , , , , [7]], + [ + , + , + "(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}", + , + , + , + "7151234", + ], + [ + , + , + "(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}", + , + , + , + "3181234", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BQ", + 599, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "[347]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BR: [ + , + [ + , + , + "[1-467]\\d{9,10}|55[0-46-9]\\d{8}|[34]\\d{7}|55\\d{7,8}|(?:5[0-46-9]|[89]\\d)\\d{7,9}", + , + , + , + , + , + , + [8, 9, 10, 11], + ], + [ + , + , + "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}", + , + , + , + "1123456789", + , + , + [10], + [8], + ], + [ + , + , + "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}", + , + , + , + "11961234567", + , + , + [10, 11], + [8, 9], + ], + [, , "800\\d{6,7}", , , , "800123456", , , [9, 10]], + [, , "[59]00\\d{6,7}", , , , "500123456", , , [9, 10]], + [ + , + , + "(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370|864))\\d{4}|300\\d{5}", + , + , + , + "40041234", + , + , + [8, 10], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BR", + 55, + "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", + "0", + , + , + "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", + "$2", + , + , + [ + [ + , + "(\\d{3,6})", + "$1", + [ + "1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610", + ], + ], + [ + , + "(\\d{4})(\\d{4})", + "$1-$2", + ["300|4(?:0[02]|37|86)", "300|4(?:0(?:0|20)|370|864)"], + ], + [ + , + "(\\d{4})(\\d{4})", + "$1-$2", + ["[2-57]", "[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))"], + ], + [ + , + "(\\d{3})(\\d{2,3})(\\d{4})", + "$1 $2 $3", + ["(?:[358]|90)0"], + "0$1", + ], + [, "(\\d{5})(\\d{4})", "$1-$2", ["9"]], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2-$3", + ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], + "($1)", + "0 $CC ($1)", + ], + [ + , + "(\\d{2})(\\d{5})(\\d{4})", + "$1 $2-$3", + ["[16][1-9]|[2-57-9]"], + "($1)", + "0 $CC ($1)", + ], + ], + [ + [ + , + "(\\d{4})(\\d{4})", + "$1-$2", + ["300|4(?:0[02]|37|86)", "300|4(?:0(?:0|20)|370|864)"], + ], + [ + , + "(\\d{3})(\\d{2,3})(\\d{4})", + "$1 $2 $3", + ["(?:[358]|90)0"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2-$3", + ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], + "($1)", + "0 $CC ($1)", + ], + [ + , + "(\\d{2})(\\d{5})(\\d{4})", + "$1 $2-$3", + ["[16][1-9]|[2-57-9]"], + "($1)", + "0 $CC ($1)", + ], + ], + [, , , , , , , , , [-1]], + , + , + [ + , + , + "(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|864))\\d{4}|800\\d{6,7}|300\\d{5}", + , + , + , + , + , + , + [8, 9, 10], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BS: [ + , + [, , "(?:242|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}", + , + , + , + "2423456789", + , + , + , + [7], + ], + [ + , + , + "242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|3[0-4]|[89]9))\\d{4}", + , + , + , + "2423591234", + , + , + , + [7], + ], + [ + , + , + "242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", + , + , + , + "8002123456", + , + , + , + [7], + ], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "BS", + 1, + "011", + "1", + , + , + "([3-8]\\d{6})$|1", + "242$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "242", + [, , , , , , , , , [-1]], + [, , "242225\\d{4}", , , , "2422250123"], + , + , + [, , , , , , , , , [-1]], + ], + BT: [ + , + [, , "[17]\\d{7}|[2-8]\\d{6}", , , , , , , [7, 8], [6]], + [ + , + , + "(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}", + , + , + , + "2345678", + , + , + [7], + [6], + ], + [, , "(?:1[67]|77)\\d{6}", , , , "17123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BT", + 975, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["[2-7]"]], + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]], + ], + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BW: [ + , + [ + , + , + "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", + , + , + , + , + , + , + [7, 8, 10], + ], + [ + , + , + "(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\d{4}", + , + , + , + "2401234", + , + , + [7], + ], + [, , "(?:321|7[1-8]\\d)\\d{5}", , , , "71123456", , , [8]], + [, , "(?:0800|800\\d)\\d{6}", , , , "0800012345", , , [10]], + [, , "90\\d{5}", , , , "9012345", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "79(?:1(?:[0-2]\\d|3[0-8])|2[0-7]\\d)\\d{3}", + , + , + , + "79101234", + , + , + [8], + ], + "BW", + 267, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{5})", "$1 $2", ["90"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], + [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BY: [ + , + [ + , + , + "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11], + [5], + ], + [ + , + , + "(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}", + , + , + , + "152450911", + , + , + [9], + [5, 6, 7], + ], + [ + , + , + "(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}", + , + , + , + "294911911", + , + , + [9], + ], + [, , "800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}", , , , "8011234567"], + [, , "(?:810|902)\\d{7}", , , , "9021234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "249\\d{6}", , , , "249123456", , , [9]], + "BY", + 375, + "810", + "8", + , + , + "0|80?", + , + "8~10", + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], + [, "(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], + [ + , + "(\\d{4})(\\d{2})(\\d{3})", + "$1 $2-$3", + [ + "1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", + "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])", + ], + "8 0$1", + ], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2-$3-$4", + ["1(?:[56]|7[467])|2[1-3]"], + "8 0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2-$3-$4", + ["[1-4]"], + "8 0$1", + ], + [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BZ: [ + , + [, , "(?:0800\\d|[2-8])\\d{6}", , , , , , , [7, 11]], + [ + , + , + "(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}", + , + , + , + "2221234", + , + , + [7], + ], + [, , "6[0-35-7]\\d{5}", , , , "6221234", , , [7]], + [, , "0800\\d{7}", , , , "08001234123", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BZ", + 501, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], + [, "(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CA: [ + , + [, , "[2-9]\\d{9}|3\\d{6}", , , , , , , [7, 10]], + [ + , + , + "(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}", + , + , + , + "5062345678", + , + , + [10], + [7], + ], + [ + , + , + "(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}", + , + , + , + "5062345678", + , + , + [10], + [7], + ], + [ + , + , + "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", + , + , + , + "8002123456", + , + , + [10], + ], + [, , "900[2-9]\\d{6}", , , , "9002123456", , , [10]], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\d{6}", + , + , + , + "5219023456", + , + , + [10], + ], + [, , "600[2-9]\\d{6}", , , , "6002012345", , , [10]], + "CA", + 1, + "011", + "1", + , + , + "1", + , + , + 1, + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "310\\d{4}", , , , "3101234", , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + CC: [ + , + [ + , + , + "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 12], + ], + [ + , + , + "8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", + , + , + , + "891621234", + , + , + [9], + [8], + ], + [ + , + , + "4(?:79[01]|83[0-389]|94[0-478])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\\d{6}", + , + , + , + "412345678", + , + , + [9], + ], + [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], + [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], + [ + , + , + "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", + , + , + , + "1300123456", + , + , + [6, 8, 10, 12], + ], + [, , , , , , , , , [-1]], + [ + , + , + "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", + , + , + , + "147101234", + , + , + [9], + ], + "CC", + 61, + "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", + "0", + , + , + "([59]\\d{7})$|0", + "8$1", + "0011", + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CD: [ + , + [ + , + , + "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", + , + , + , + , + , + , + [7, 8, 9, 10], + ], + [, , "(?:(?:12|573)\\d\\d|276)\\d{5}|[1-6]\\d{6}", , , , "1234567"], + [ + , + , + "88\\d{5}|(?:8[0-69]|9[017-9])\\d{7}", + , + , + , + "991234567", + , + , + [7, 9], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CD", + 243, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], + [, "(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CF: [ + , + [, , "(?:[27]\\d{3}|8776)\\d{4}", , , , , , , [8]], + [, , "2[12]\\d{6}", , , , "21612345"], + [, , "7[024-7]\\d{6}", , , , "70012345"], + [, , , , , , , , , [-1]], + [, , "8776\\d{4}", , , , "87761234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CF", + 236, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CG: [ + , + [, , "222\\d{6}|(?:0\\d|80)\\d{7}", , , , , , , [9]], + [, , "222[1-589]\\d{5}", , , , "222123456"], + [ + , + , + "026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}", + , + , + , + "061234567", + ], + [, , , , , , , , , [-1]], + [, , "80[0-2]\\d{6}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CG", + 242, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CH: [ + , + [, , "8\\d{11}|[2-9]\\d{8}", , , , , , , [9, 12]], + [ + , + , + "(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}", + , + , + , + "212345678", + , + , + [9], + ], + [, , "(?:6[89]|7[235-9])\\d{7}", , , , "781234567", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "90[016]\\d{6}", , , , "900123456", , , [9]], + [, , "84[0248]\\d{6}", , , , "840123456", , , [9]], + [, , "878\\d{6}", , , , "878123456", , , [9]], + [, , , , , , , , , [-1]], + "CH", + 41, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[2-79]|81"], + "0$1", + ], + [ + , + "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["8"], + "0$1", + ], + ], + , + [, , "74[0248]\\d{6}", , , , "740123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + [, , "5[18]\\d{7}", , , , "581234567", , , [9]], + , + , + [, , "860\\d{9}", , , , "860123456789", , , [12]], + ], + CI: [ + , + [, , "[02]\\d{9}", , , , , , , [10]], + [ + , + , + "2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}", + , + , + , + "2123456789", + ], + [, , "0[157]\\d{8}", , , , "0123456789"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CI", + 225, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CK: [ + , + [, , "[2-578]\\d{4}", , , , , , , [5]], + [, , "(?:2\\d|3[13-7]|4[1-5])\\d{3}", , , , "21234"], + [, , "[578]\\d{4}", , , , "71234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CK", + 682, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CL: [ + , + [, , "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", , , , , , , [9, 10, 11]], + [ + , + , + "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|2\\d{3}|3(?:(?:2\\d|50)\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578])\\d|6(?:00|[13-57]\\d)|8(?:0[1-9]|[1-9]\\d))\\d\\d|9(?:(?:10[01]|(?:[2458]\\d|7[1-9])\\d)\\d|3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}", + , + , + , + "600123456", + , + , + [9], + ], + [ + , + , + "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|2\\d{3}|3(?:(?:2\\d|50)\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57])\\d|8(?:0[1-8]|[1-9]\\d))\\d\\d|9(?:(?:10[01]|(?:[2458]\\d|7[1-9])\\d)\\d|3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}", + , + , + , + "221234567", + , + , + [9], + ], + [, , "(?:123|8)00\\d{6}", , , , "800123456", , , [9, 11]], + [, , , , , , , , , [-1]], + [, , "600\\d{7,8}", , , , "6001234567", , , [10, 11]], + [, , , , , , , , , [-1]], + [, , "44\\d{7}", , , , "441234567", , , [9]], + "CL", + 56, + "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", + , + , + , + , + , + , + , + [ + [, "(\\d{4})", "$1", ["1(?:[03-589]|21)|[29]0|78"]], + [, "(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["60|809"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9(?:10|[2-9])"]], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])"], + "($1)", + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]], + ], + [ + [, "(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["60|809"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9(?:10|[2-9])"]], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])"], + "($1)", + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , "600\\d{7,8}", , , , , , , [10, 11]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CM: [ + , + [, , "[26]\\d{8}|88\\d{6,7}", , , , , , , [8, 9]], + [, , "2(?:22|33)\\d{6}", , , , "222123456", , , [9]], + [, , "(?:24[23]|6(?:[25-9]\\d|40))\\d{6}", , , , "671234567", , , [9]], + [, , "88\\d{6,7}", , , , "88012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CM", + 237, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], + [ + , + "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["[26]|88"], + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CN: [ + , + [ + , + , + "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", + , + , + , + , + , + , + [7, 8, 9, 10, 11, 12], + [5, 6], + ], + [ + , + , + "(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|2(?:[02-57-9]\\d{3}|1(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))|(?:41[03]|8078|9(?:78|94))\\d\\d)\\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\\d\\d|95\\d{3,4})|(?:41[03]|9(?:78|94))(?:100\\d\\d|95\\d{3,4})|8078123|(?:43[35]|754|851)\\d{7,8}|(?:43[35]|754|851)(?:1(?:00\\d|23)\\d|95\\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[13-9]\\d{6}|2(?:[0-24-9]\\d{5}|3\\d(?:\\d{4})?))|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[13-9]\\d{5}|2(?:[0-24-9]\\d{4}|3\\d(?:\\d{3})?))|9(?:[0-46-9]\\d{5}|5\\d{3,5}))", + , + , + , + "1012345678", + , + , + [7, 8, 9, 10, 11], + [5, 6], + ], + [ + , + , + "1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}", + , + , + , + "13123456789", + , + , + [11], + ], + [, , "(?:(?:10|21)8|8)00\\d{7}", , , , "8001234567", , , [10, 12]], + [, , "16[08]\\d{5}", , , , "16812345", , , [8]], + [ + , + , + "10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}", + , + , + , + "4001234567", + , + , + [7, 8, 9, 10, 11], + [5, 6], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CN", + 86, + "00|1(?:[12]\\d|79)\\d\\d00", + "0", + , + , + "(1(?:[12]\\d|79)\\d\\d)|0", + , + "00", + , + [ + [ + , + "(\\d{5,6})", + "$1", + [ + "1(?:00|2[13])|9[56]", + "1(?:00|2(?:1|39))|9[56]", + "1(?:00|2(?:1|395))|9[56]", + ], + ], + [ + , + "(\\d{5,6})", + "$1", + [ + "1(?:0|23)|781|[1-9]12", + "1(?:0|23)|7812|[1-9]123", + "1(?:0|23(?:[0-8]|9[0-46-9]))|78123|[1-9]123", + ], + ], + [ + , + "(\\d{2})(\\d{5,6})", + "$1 $2", + [ + "(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", + "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", + "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", + "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", + "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", + ], + "0$1", + "$CC $1", + ], + [ + , + "(\\d{3})(\\d{4})", + "$1 $2", + [ + "[1-9]", + "1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])", + "1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|[3-9]", + "1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))", + "1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:0(?:[0-689]|7[0-79])|1[01459]|2[0-489]|[46]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))", + ], + ], + [, "(\\d{4})(\\d{4})", "$1 $2", ["16[08]"]], + [ + , + "(\\d{3})(\\d{5,6})", + "$1 $2", + [ + "3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", + "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", + "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", + "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])", + ], + "0$1", + "$CC $1", + ], + [ + , + "(\\d{4})(\\d{4})", + "$1 $2", + [ + "[1-9]", + "1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]", + "1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])", + "1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])", + ], + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "10|2(?:[02-57-9]|1[1-9])", + "10|2(?:[02-57-9]|1[1-9])", + "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])", + ], + "0$1", + "$CC $1", + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]", + ], + "0$1", + "$CC $1", + 1, + ], + [, "(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], + [ + , + "(\\d{4})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["80"], + "0$1", + "$CC $1", + 1, + ], + [ + , + "(\\d{3})(\\d{4})(\\d{4})", + "$1 $2 $3", + ["[3-578]"], + "0$1", + "$CC $1", + 1, + ], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"], , "$CC $1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3 $4", + ["[12]"], + "0$1", + , + 1, + ], + ], + [ + [ + , + "(\\d{2})(\\d{5,6})", + "$1 $2", + [ + "(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", + "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", + "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", + "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", + "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", + ], + "0$1", + "$CC $1", + ], + [ + , + "(\\d{3})(\\d{5,6})", + "$1 $2", + [ + "3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", + "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", + "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", + "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])", + ], + "0$1", + "$CC $1", + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "10|2(?:[02-57-9]|1[1-9])", + "10|2(?:[02-57-9]|1[1-9])", + "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])", + ], + "0$1", + "$CC $1", + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]", + ], + "0$1", + "$CC $1", + 1, + ], + [, "(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], + [ + , + "(\\d{4})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["80"], + "0$1", + "$CC $1", + 1, + ], + [ + , + "(\\d{3})(\\d{4})(\\d{4})", + "$1 $2 $3", + ["[3-578]"], + "0$1", + "$CC $1", + 1, + ], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"], , "$CC $1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3 $4", + ["[12]"], + "0$1", + , + 1, + ], + ], + [, , , , , , , , , [-1]], + , + , + [ + , + , + "(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}", + , + , + , + , + , + , + [10, 11, 12], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CO: [ + , + [ + , + , + "(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}", + , + , + , + , + , + , + [8, 10, 11], + [4, 7], + ], + [ + , + , + "601055(?:[0-4]\\d|50)\\d\\d|6010(?:[0-4]\\d|5[0-4])\\d{4}|(?:46|60(?:[18][1-9]|[24-7][2-9]))\\d{6}", + , + , + , + "6012345678", + , + , + [8, 10], + [4, 7], + ], + [ + , + , + "333301[0-5]\\d{3}|3333(?:00|2[5-9]|[3-9]\\d)\\d{4}|(?:3(?:(?:0[0-5]|1\\d|5[01]|70)\\d|2(?:[0-3]\\d|4[1-9])|3(?:00|3[0-24-9]))|9(?:101|408))\\d{6}", + , + , + , + "3211234567", + , + , + [10], + ], + [, , "1800\\d{7}", , , , "18001234567", , , [11]], + [ + , + , + "(?:19(?:0[01]|4[78])|901)\\d{7}", + , + , + , + "19001234567", + , + , + [10, 11], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CO", + 57, + "00(?:4(?:[14]4|56)|[579])", + "0", + , + , + "0([3579]|4(?:[14]4|56))?", + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["46"]], + [, "(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)", "0$CC $1"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|9[14]"], , "0$CC $1"], + [, "(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1"], + ], + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["46"]], + [, "(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)", "0$CC $1"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|9[14]"], , "0$CC $1"], + [, "(\\d)(\\d{3})(\\d{7})", "$1 $2 $3", ["1"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CR: [ + , + [ + , + , + "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", + , + , + , + , + , + , + [8, 10], + ], + [ + , + , + "210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}", + , + , + , + "22123456", + , + , + [8], + ], + [ + , + , + "(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}", + , + , + , + "83123456", + , + , + [8], + ], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "90[059]\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:210[0-6]|4\\d{3}|5100)\\d{4}", , , , "40001234", , , [8]], + "CR", + 506, + "00", + , + , + , + "(19(?:0[0-2468]|1[09]|20|66|77|99))", + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"], , "$CC $1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"], , "$CC $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CU: [ + , + [ + , + , + "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 10], + [4, 5], + ], + [ + , + , + "(?:3[23]|4[89])\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}", + , + , + , + "71234567", + , + , + , + [4, 5], + ], + [, , "(?:5\\d|6[2-4])\\d{6}", , , , "51234567", , , [8]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "807\\d{7}", , , , "8071234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CU", + 53, + "119", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], + [, "(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], + [, "(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CV: [ + , + [, , "(?:[2-59]\\d\\d|800)\\d{4}", , , , , , , [7]], + [ + , + , + "2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}", + , + , + , + "2211234", + ], + [, , "(?:36|5[1-389]|9\\d)\\d{5}", , , , "9911234"], + [, , "800\\d{4}", , , , "8001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:3[3-5]|4[356])\\d{5}", , , , "3401234"], + "CV", + 238, + "0", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CW: [ + , + [, , "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", , , , , , , [7, 8]], + [ + , + , + "9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}", + , + , + , + "94351234", + ], + [, , "953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}", , , , "95181234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "60[0-2]\\d{4}", , , , "6001234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CW", + 599, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]], + ], + , + [, , "955\\d{5}", , , , "95581234", , , [8]], + 1, + "[69]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CX: [ + , + [ + , + , + "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 12], + ], + [ + , + , + "8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", + , + , + , + "891641234", + , + , + [9], + [8], + ], + [ + , + , + "4(?:79[01]|83[0-389]|94[0-478])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\\d{6}", + , + , + , + "412345678", + , + , + [9], + ], + [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], + [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], + [ + , + , + "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", + , + , + , + "1300123456", + , + , + [6, 8, 10, 12], + ], + [, , , , , , , , , [-1]], + [ + , + , + "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", + , + , + , + "147101234", + , + , + [9], + ], + "CX", + 61, + "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", + "0", + , + , + "([59]\\d{7})$|0", + "8$1", + "0011", + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CY: [ + , + [, , "(?:[279]\\d|[58]0)\\d{6}", , , , , , , [8]], + [, , "2[2-6]\\d{6}", , , , "22345678"], + [, , "9(?:10|[4-79]\\d)\\d{5}", , , , "96123456"], + [, , "800\\d{5}", , , , "80001234"], + [, , "90[09]\\d{5}", , , , "90012345"], + [, , "80[1-9]\\d{5}", , , , "80112345"], + [, , "700\\d{5}", , , , "70012345"], + [, , , , , , , , , [-1]], + "CY", + 357, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:50|77)\\d{6}", , , , "77123456"], + , + , + [, , , , , , , , , [-1]], + ], + CZ: [ + , + [, , "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", , , , , , , [9, 10, 11, 12]], + [ + , + , + "(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}", + , + , + , + "212345678", + , + , + [9], + ], + [ + , + , + "(?:60[1-8]\\d|7(?:0(?:[2-5]\\d|60)|19[0-4]|[2379]\\d\\d))\\d{5}", + , + , + , + "601123456", + , + , + [9], + ], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "9(?:0[05689]|76)\\d{6}", , , , "900123456", , , [9]], + [, , "8[134]\\d{7}", , , , "811234567", , , [9]], + [, , "70[01]\\d{6}", , , , "700123456", , , [9]], + [, , "9[17]0\\d{6}", , , , "910123456", , , [9]], + "CZ", + 420, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], + [, "(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], + [, "(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "9(?:5\\d|7[2-4])\\d{6}", , , , "972123456", , , [9]], + , + , + [, , "9(?:3\\d{9}|6\\d{7,10})", , , , "93123456789"], + ], + DE: [ + , + [ + , + , + "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", + , + , + , + , + , + , + [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + [2, 3], + ], + [ + , + , + "32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}", + , + , + , + "30123456", + , + , + [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + [2, 3, 4], + ], + [ + , + , + "15310\\d{6}|1(?:5[0-25-9]\\d|7[013-5])\\d{7}|1(?:6[023]|7[26-9])\\d{7,8}", + , + , + , + "15123456789", + , + , + [10, 11], + ], + [ + , + , + "800\\d{7,12}", + , + , + , + "8001234567890", + , + , + [10, 11, 12, 13, 14, 15], + ], + [ + , + , + "(?:137[7-9]|900(?:[135]|9\\d))\\d{6}", + , + , + , + "9001234567", + , + , + [10, 11], + ], + [ + , + , + "180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}", + , + , + , + "18012345", + , + , + [7, 8, 9, 10, 11, 12, 13, 14], + ], + [, , "700\\d{8}", , , , "70012345678", , , [11]], + [, , , , , , , , , [-1]], + "DE", + 49, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], + [ + , + "(\\d{3})(\\d{3,12})", + "$1 $2", + [ + "2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", + "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", + ], + "0$1", + ], + [ + , + "(\\d{4})(\\d{2,11})", + "$1 $2", + [ + "[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", + "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]", + ], + "0$1", + ], + [, "(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], + [, "(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], + [, "(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], + [, "(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], + [, "(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], + [, "(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], + [, "(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + [, "(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], + [, "(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], + [ + , + "(\\d{5})(\\d{6})", + "$1 $2", + ["15[03568]", "15(?:[0568]|31)"], + "0$1", + ], + [, "(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], + [ + , + "(\\d{3})(\\d{2})(\\d{7,8})", + "$1 $2 $3", + ["1(?:6[023]|7)"], + "0$1", + ], + [, "(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"], + ], + , + [ + , + , + "16(?:4\\d{1,10}|[89]\\d{1,11})", + , + , + , + "16412345", + , + , + [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + ], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "18(?:1\\d{5,11}|[2-9]\\d{8})", + , + , + , + "18500123456", + , + , + [8, 9, 10, 11, 12, 13, 14], + ], + , + , + [ + , + , + "1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}", + , + , + , + "177991234567", + , + , + [12, 13], + ], + ], + DJ: [ + , + [, , "(?:2\\d|77)\\d{6}", , , , , , , [8]], + [, , "2(?:1[2-5]|7[45])\\d{5}", , , , "21360003"], + [, , "77\\d{6}", , , , "77831001"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "DJ", + 253, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DK: [ + , + [, , "[2-9]\\d{7}", , , , , , , [8]], + [ + , + , + "(?:2(?:[0-59][1-9]|[6-8]\\d)|3(?:[0-3][1-9]|4[13]|5[1-58]|6[1347-9]|7\\d|8[1-8]|9[1-79])|4(?:[0-25][1-9]|[34][2-9]|6[13-579]|7[13579]|8[1-47]|9[127])|5(?:[0-36][1-9]|4[146-9]|5[3-57-9]|7[568]|8[1-358]|9[1-69])|6(?:[0135][1-9]|2[1-68]|4[2-8]|6[1689]|[78]\\d|9[15689])|7(?:[0-69][1-9]|7[3-9]|8[147])|8(?:[16-9][1-9]|2[1-58])|9(?:[1-47-9][1-9]|6\\d))\\d{5}", + , + , + , + "32123456", + ], + [ + , + , + "(?:2[6-8]|37|6[78]|96)\\d{6}|(?:2[0-59]|3[0-689]|[457]\\d|6[0-69]|8[126-9]|9[1-47-9])[1-9]\\d{5}", + , + , + , + "34412345", + ], + [, , "80\\d{6}", , , , "80123456"], + [, , "90\\d{6}", , , , "90123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "DK", + 45, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DM: [ + , + [, , "(?:[58]\\d\\d|767|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}", + , + , + , + "7674201234", + , + , + , + [7], + ], + [ + , + , + "767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}", + , + , + , + "7672251234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "DM", + 1, + "011", + "1", + , + , + "([2-7]\\d{6})$|1", + "767$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "767", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DO: [ + , + [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}", + , + , + , + "8092345678", + , + , + , + [7], + ], + [, , "8[024]9[2-9]\\d{6}", , , , "8092345678", , , , [7]], + [ + , + , + "800(?:14|[2-9]\\d)\\d{5}|8[024]9[01]\\d{6}|8(?:33|44|55|66|77|88)[2-9]\\d{6}", + , + , + , + "8002123456", + ], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "DO", + 1, + "011", + "1", + , + , + "1", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "8001|8[024]9", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DZ: [ + , + [, , "(?:[1-4]|[5-79]\\d|80)\\d{7}", , , , , , , [8, 9]], + [ + , + , + "9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}", + , + , + , + "12345678", + ], + [ + , + , + "(?:5(?:4[0-29]|5\\d|6[0-3])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}", + , + , + , + "551234567", + , + , + [9], + ], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "80[3-689]1\\d{5}", , , , "808123456", , , [9]], + [, , "80[12]1\\d{5}", , , , "801123456", , , [9]], + [, , , , , , , , , [-1]], + [, , "98[23]\\d{6}", , , , "983123456", , , [9]], + "DZ", + 213, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[1-4]"], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[5-8]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EC: [ + , + [ + , + , + "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", + , + , + , + , + , + , + [8, 9, 10, 11], + [7], + ], + [, , "[2-7][2-7]\\d{6}", , , , "22123456", , , [8], [7]], + [ + , + , + "964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}", + , + , + , + "991234567", + , + , + [9], + ], + [, , "1800\\d{7}|1[78]00\\d{6}", , , , "18001234567", , , [10, 11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "[2-7]890\\d{4}", , , , "28901234", , , [8]], + "EC", + 593, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-7]"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]], + ], + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-7]"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EE: [ + , + [ + , + , + "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", + , + , + , + , + , + , + [7, 8, 10], + ], + [ + , + , + "(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}", + , + , + , + "3212345", + , + , + [7], + ], + [ + , + , + "(?:5\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\d)|[3-9]\\d\\d)|(?:1(?:0[2-6]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:0(?:00|4\\d)|(?:19|[2-7]\\d)\\d)|(?:(?:[124-69]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}", + , + , + , + "51234567", + , + , + [7, 8], + ], + [, , "800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}", , , , "80012345"], + [, , "(?:40\\d\\d|900)\\d{4}", , , , "9001234", , , [7, 8]], + [, , , , , , , , , [-1]], + [, , "70[0-2]\\d{5}", , , , "70012345", , , [8]], + [, , , , , , , , , [-1]], + "EE", + 372, + "00", + , + , + , + , + , + , + , + [ + [ + , + "(\\d{3})(\\d{4})", + "$1 $2", + [ + "[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", + "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88", + ], + ], + [ + , + "(\\d{4})(\\d{3,4})", + "$1 $2", + ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"], + ], + [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "800[2-9]\\d{3}", , , , , , , [7]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EG: [ + , + [ + , + , + "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", + , + , + , + , + , + , + [8, 9, 10], + [6, 7], + ], + [ + , + , + "13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2\\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}", + , + , + , + "234567890", + , + , + [8, 9], + [6, 7], + ], + [, , "1[0-25]\\d{8}", , , , "1001234567", , , [10]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "900\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "EG", + 20, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], + [ + , + "(\\d{2})(\\d{6,7})", + "$1 $2", + ["1[35]|[4-6]|8[2468]|9[235-7]"], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EH: [ + , + [, , "[5-8]\\d{8}", , , , , , , [9]], + [, , "528[89]\\d{5}", , , , "528812345"], + [ + , + , + "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-8]|5[0-5]|8[0-7]))\\d{6}", + , + , + , + "650123456", + ], + [, , "80[0-7]\\d{6}", , , , "801234567"], + [, , "89\\d{7}", , , , "891234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}", , , , "592401234"], + "EH", + 212, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "528[89]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ER: [ + , + [, , "[178]\\d{6}", , , , , , , [7], [6]], + [ + , + , + "(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}", + , + , + , + "8370362", + , + , + , + [6], + ], + [, , "(?:17[1-3]|7\\d\\d)\\d{4}", , , , "7123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ER", + 291, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ES: [ + , + [, , "[5-9]\\d{8}", , , , , , , [9]], + [ + , + , + "96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}", + , + , + , + "810123456", + ], + [ + , + , + "(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}", + , + , + , + "612345678", + ], + [, , "[89]00\\d{6}", , , , "800123456"], + [, , "80[367]\\d{6}", , , , "803123456"], + [, , "90[12]\\d{6}", , , , "901123456"], + [, , "70\\d{7}", , , , "701234567"], + [, , , , , , , , , [-1]], + "ES", + 34, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})", "$1", ["905"]], + [, "(\\d{6})", "$1", ["[79]9"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]], + ], + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "51\\d{7}", , , , "511234567"], + , + , + [, , , , , , , , , [-1]], + ], + ET: [ + , + [, , "(?:11|[2-579]\\d)\\d{7}", , , , , , , [9], [7]], + [ + , + , + "11667[01]\\d{3}|(?:11(?:1(?:1[1-468]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8]|7\\d)|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}", + , + , + , + "111112345", + , + , + , + [7], + ], + [ + , + , + "700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}", + , + , + , + "911234567", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ET", + 251, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FI: [ + , + [ + , + , + "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 11, 12], + ], + [ + , + , + "1[3-7][1-8]\\d{3,6}|(?:19[1-8]|[23568][1-8]\\d|9(?:00|[1-8]\\d))\\d{2,6}", + , + , + , + "131234567", + , + , + [5, 6, 7, 8, 9], + ], + [ + , + , + "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", + , + , + , + "412345678", + , + , + [6, 7, 8, 9, 10], + ], + [, , "800\\d{4,6}", , , , "800123456", , , [7, 8, 9]], + [, , "[67]00\\d{5,6}", , , , "600123456", , , [8, 9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FI", + 358, + "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", + "0", + , + , + "0", + , + "00", + , + [ + [, "(\\d{5})", "$1", ["75[12]"], "0$1"], + [, "(\\d{5})", "$1", ["20[2-59]"], "0$1"], + [, "(\\d{6})", "$1", ["11"]], + [ + , + "(\\d{3})(\\d{3,7})", + "$1 $2", + ["(?:[1-3]0|[68])0|70[07-9]"], + "0$1", + ], + [, "(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], + [, "(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], + [ + , + "(\\d)(\\d{4,9})", + "$1 $2", + ["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], + "0$1", + ], + ], + [ + [, "(\\d{5})", "$1", ["20[2-59]"], "0$1"], + [ + , + "(\\d{3})(\\d{3,7})", + "$1 $2", + ["(?:[1-3]0|[68])0|70[07-9]"], + "0$1", + ], + [, "(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], + [, "(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], + [ + , + "(\\d)(\\d{4,9})", + "$1 $2", + ["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], + "0$1", + ], + ], + [, , , , , , , , , [-1]], + 1, + "1[03-79]|[2-9]", + [ + , + , + "20(?:2[023]|9[89])\\d{1,6}|(?:60[12]\\d|7099)\\d{4,5}|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:[1-3]00|7(?:0[1-5]\\d\\d|5[03-9]))\\d{3,7}", + ], + [ + , + , + "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}", + , + , + , + "10112345", + ], + , + , + [, , , , , , , , , [-1]], + ], + FJ: [ + , + [, , "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", , , , , , , [7, 11]], + [ + , + , + "603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}", + , + , + , + "3212345", + , + , + [7], + ], + [ + , + , + "(?:[279]\\d|45|5[01568]|8[034679])\\d{5}", + , + , + , + "7012345", + , + , + [7], + ], + [, , "0800\\d{7}", , , , "08001234567", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FJ", + 679, + "0(?:0|52)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FK: [ + , + [, , "[2-7]\\d{4}", , , , , , , [5]], + [, , "[2-47]\\d{4}", , , , "31234"], + [, , "[56]\\d{4}", , , , "51234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FK", + 500, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FM: [ + , + [, , "(?:[39]\\d\\d|820)\\d{4}", , , , , , , [7]], + [ + , + , + "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}", + , + , + , + "3201234", + ], + [ + , + , + "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}", + , + , + , + "3501234", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FM", + 691, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FO: [ + , + [, , "[2-9]\\d{5}", , , , , , , [6]], + [, , "(?:20|[34]\\d|8[19])\\d{4}", , , , "201234"], + [, , "(?:[27][1-9]|5\\d|9[16])\\d{4}", , , , "211234"], + [, , "80[257-9]\\d{3}", , , , "802123"], + [, , "90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d", , , , "901123"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:6[0-36]|88)\\d{4}", , , , "601234"], + "FO", + 298, + "00", + , + , + , + "(10(?:01|[12]0|88))", + , + , + , + [[, "(\\d{6})", "$1", ["[2-9]"], , "$CC $1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FR: [ + , + [, , "[1-9]\\d{8}", , , , , , , [9]], + [ + , + , + "(?:26[013-9]|59[1-35-9])\\d{6}|(?:[13]\\d|2[0-57-9]|4[1-9]|5[0-8])\\d{7}", + , + , + , + "123456789", + ], + [ + , + , + "(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}", + , + , + , + "612345678", + ], + [, , "80[0-5]\\d{6}", , , , "801234567"], + [ + , + , + "836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}", + , + , + , + "891123456", + ], + [, , "8(?:1[01]|2[0156]|4[024]|84)\\d{6}", , , , "884012345"], + [, , , , , , , , , [-1]], + [, , "9\\d{8}", , , , "912345678"], + "FR", + 33, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})", "$1", ["10"]], + [, "(\\d{3})(\\d{3})", "$1 $2", ["1"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], + [ + , + "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["[1-79]"], + "0$1", + ], + ], + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], + [ + , + "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["[1-79]"], + "0$1", + ], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "80[6-9]\\d{6}", , , , "806123456"], + , + , + [, , , , , , , , , [-1]], + ], + GA: [ + , + [, , "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", , , , , , , [7, 8]], + [, , "[01]1\\d{6}", , , , "01441234", , , [8]], + [ + , + , + "(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}", + , + , + , + "06031234", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GA", + 241, + "00", + , + , + , + "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", + "$1", + , + , + [ + [, "(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["11|[67]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GB: [ + , + [ + , + , + "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", + , + , + , + , + , + , + [7, 9, 10], + [4, 5, 6, 8], + ], + [ + , + , + "(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", + , + , + , + "1212345678", + , + , + [9, 10], + [4, 5, 6, 7, 8], + ], + [ + , + , + "7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", + , + , + , + "7400123456", + , + , + [10], + ], + [, , "80[08]\\d{7}|800\\d{6}|8001111", , , , "8001234567"], + [ + , + , + "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", + , + , + , + "9012345678", + , + , + [7, 10], + ], + [, , , , , , , , , [-1]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + [, , "56\\d{8}", , , , "5612345678", , , [10]], + "GB", + 44, + "00", + "0", + " x", + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{4})", + "$1 $2", + ["800", "8001", "80011", "800111", "8001111"], + "0$1", + ], + [ + , + "(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3", + ["845", "8454", "84546", "845464"], + "0$1", + ], + [, "(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], + [ + , + "(\\d{5})(\\d{4,5})", + "$1 $2", + [ + "1(?:38|5[23]|69|76|94)", + "1(?:(?:38|69)7|5(?:24|39)|768|946)", + "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)", + ], + "0$1", + ], + [, "(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], + "0$1", + ], + [, "(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"], + ], + , + [ + , + , + "76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", + , + , + , + "7640123456", + , + , + [10], + ], + 1, + , + [, , , , , , , , , [-1]], + [, , "(?:3[0347]|55)\\d{8}", , , , "5512345678", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + GD: [ + , + [, , "(?:473|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-4]|5[59]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}", + , + , + , + "4732691234", + , + , + , + [7], + ], + [ + , + , + "473(?:4(?:0[2-79]|1[04-9]|2[0-5]|49|5[6-8])|5(?:2[01]|3[3-8])|901)\\d{4}", + , + , + , + "4734031234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "GD", + 1, + "011", + "1", + , + , + "([2-9]\\d{6})$|1", + "473$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "473", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GE: [ + , + [, , "(?:[3-57]\\d\\d|800)\\d{6}", , , , , , , [9], [6, 7]], + [ + , + , + "(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}", + , + , + , + "322123456", + , + , + , + [6, 7], + ], + [ + , + , + "5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|5(?:0(?:0[17]0|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\d{3}|(?:5(?:0(?:0(?:0\\d|11|22|3[0-6]|44|5[05]|77|88|9[09])|(?:[14]\\d|77)\\d|22[02])|1(?:1(?:[03][01]|[124]\\d|5[2-6]|7[0-4])|4\\d\\d)|[23]555|4(?:4\\d\\d|555)|5(?:[0157-9]\\d\\d|200|333|444)|6[89]\\d\\d|7(?:[0147-9]\\d\\d|5(?:00|[57]5))|8(?:0(?:[018]\\d|2[0-4])|5(?:55|8[89])|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}", + , + , + , + "555123456", + ], + [, , "800\\d{6}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "70[67]\\d{6}", , , , "706123456"], + "GE", + 995, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[348]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "70[67]\\d{6}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GF: [ + , + [, , "(?:[56]94\\d|7093)\\d{5}|(?:80|9\\d)\\d{7}", , , , , , , [9]], + [ + , + , + "594(?:[02-49]\\d|1[0-5]|5[6-9]|6[0-3]|80)\\d{4}", + , + , + , + "594101234", + ], + [, , "(?:694(?:[0-249]\\d|3[0-8])|7093[0-3])\\d{4}", , , , "694201234"], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:(?:396|76\\d)\\d|476[0-6])\\d{4}", , , , "976012345"], + "GF", + 594, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[5-7]|9[47]"], + "0$1", + ], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[89]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GG: [ + , + [ + , + , + "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", + , + , + , + , + , + , + [7, 9, 10], + [6], + ], + [, , "1481[25-9]\\d{5}", , , , "1481256789", , , [10], [6]], + [, , "7(?:(?:781|839)\\d|911[17])\\d{5}", , , , "7781123456", , , [10]], + [, , "80[08]\\d{7}|800\\d{6}|8001111", , , , "8001234567"], + [ + , + , + "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", + , + , + , + "9012345678", + , + , + [7, 10], + ], + [, , , , , , , , , [-1]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + [, , "56\\d{8}", , , , "5612345678", , , [10]], + "GG", + 44, + "00", + "0", + , + , + "([25-9]\\d{5})$|0", + "1481$1", + , + , + , + , + [ + , + , + "76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", + , + , + , + "7640123456", + , + , + [10], + ], + , + , + [, , , , , , , , , [-1]], + [, , "(?:3[0347]|55)\\d{8}", , , , "5512345678", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + GH: [ + , + [, , "(?:[235]\\d{3}|800)\\d{5}", , , , , , , [8, 9], [7]], + [ + , + , + "3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}", + , + , + , + "302345678", + , + , + [9], + [7], + ], + [ + , + , + "(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}", + , + , + , + "231234567", + , + , + [9], + ], + [, , "800\\d{5}", , , , "80012345", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GH", + 233, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[237]|8[0-2]"]], + [, "(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , "800\\d{5}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GI: [ + , + [, , "(?:[25]\\d|60)\\d{6}", , , , , , , [8]], + [ + , + , + "2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}", + , + , + , + "20012345", + ], + [ + , + , + "5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}", + , + , + , + "57123456", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GI", + 350, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{5})", "$1 $2", ["2"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GL: [ + , + [, , "(?:19|[2-689]\\d|70)\\d{4}", , , , , , , [6]], + [, , "(?:19|3[1-7]|[68][1-9]|70|9\\d)\\d{4}", , , , "321000"], + [, , "[245]\\d{5}", , , , "221234"], + [, , "80\\d{4}", , , , "801234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "3[89]\\d{4}", , , , "381234"], + "GL", + 299, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GM: [ + , + [, , "[2-9]\\d{6}", , , , , , , [7]], + [ + , + , + "(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}", + , + , + , + "5661234", + ], + [, , "556\\d{4}|(?:[23679]\\d|4[015]|5[0-489])\\d{5}", , , , "3012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GM", + 220, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GN: [ + , + [, , "722\\d{6}|(?:3|6\\d)\\d{7}", , , , , , , [8, 9]], + [ + , + , + "3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}", + , + , + , + "30241234", + , + , + [8], + ], + [, , "6[0-356]\\d{7}", , , , "601123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "722\\d{6}", , , , "722123456", , , [9]], + "GN", + 224, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GP: [ + , + [, , "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", , , , , , , [9]], + [ + , + , + "590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}", + , + , + , + "590201234", + ], + [ + , + , + "(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}", + , + , + , + "690001234", + ], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}", , , , "976012345"], + "GP", + 590, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[5-79]"], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GQ: [ + , + [, , "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", , , , , , , [9]], + [ + , + , + "33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}", + , + , + , + "333091234", + ], + [, , "(?:222|55\\d)\\d{6}", , , , "222123456"], + [, , "80\\d[1-9]\\d{5}", , , , "800123456"], + [, , "90\\d[1-9]\\d{5}", , , , "900123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GQ", + 240, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], + [, "(\\d{3})(\\d{6})", "$1 $2", ["[89]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GR: [ + , + [ + , + , + "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", + , + , + , + , + , + , + [10, 11, 12], + ], + [ + , + , + "2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}", + , + , + , + "2123456789", + , + , + [10], + ], + [, , "68[57-9]\\d{7}|(?:69|94)\\d{8}", , , , "6912345678", , , [10]], + [, , "800\\d{7,9}", , , , "8001234567"], + [, , "90[19]\\d{7}", , , , "9091234567", , , [10]], + [, , "8(?:0[16]|12|[27]5|50)\\d{7}", , , , "8011234567", , , [10]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + [, , , , , , , , , [-1]], + "GR", + 30, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], + [ + , + "(\\d{4})(\\d{6})", + "$1 $2", + ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"], + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], + [, "(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "5005000\\d{3}", , , , "5005000123", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + GT: [ + , + [, , "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", , , , , , , [8, 11]], + [, , "[267][2-9]\\d{6}", , , , "22456789", , , [8]], + [, , "(?:[3-5]\\d\\d|80[0-4])\\d{5}", , , , "51234567", , , [8]], + [, , "18[01]\\d{8}", , , , "18001112222", , , [11]], + [, , "19\\d{9}", , , , "19001112222", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GT", + 502, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GU: [ + , + [, , "(?:[58]\\d\\d|671|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "671(?:2\\d\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}", + , + , + , + "6713001234", + , + , + , + [7], + ], + [ + , + , + "671(?:2\\d\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}", + , + , + , + "6713001234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "GU", + 1, + "011", + "1", + , + , + "([2-9]\\d{6})$|1", + "671$1", + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "671", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GW: [ + , + [, , "[49]\\d{8}|4\\d{6}", , , , , , , [7, 9]], + [, , "443\\d{6}", , , , "443201234", , , [9]], + [, , "9(?:5\\d|6[569]|77)\\d{6}", , , , "955012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "40\\d{5}", , , , "4012345", , , [7]], + "GW", + 245, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["40"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GY: [ + , + [, , "(?:[2-8]\\d{3}|9008)\\d{3}", , , , , , , [7]], + [ + , + , + "(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|50[0-6]|77[1-57])\\d{4}", + , + , + , + "2201234", + ], + [, , "(?:510|6\\d\\d|7(?:[0-5]\\d|6[019]|70))\\d{4}", , , , "6091234"], + [, , "(?:289|8(?:00|6[28]|88|99))\\d{4}", , , , "2891234"], + [, , "9008\\d{3}", , , , "9008123"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "515\\d{4}", , , , "5151234"], + "GY", + 592, + "001", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + HK: [ + , + [ + , + , + "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 11], + ], + [ + , + , + "(?:2(?:[13-9]\\d|2[013-9])\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\d|8(?:4[0-8]|[579]\\d|6[0-5]))|58(?:0[1-9]|1[2-9]))\\d{4}", + , + , + , + "21234567", + , + , + [8], + ], + [ + , + , + "(?:4(?:44[0-35-9]|6(?:4[0-57-9]|6[0-4])|7(?:3[0-4]|4[0-48]|6[0-5]))|5(?:35[4-8]|73[0-6]|95[0-8])|6(?:26[013-8]|(?:66|78)[0-5])|70(?:7[1-8]|8[0-8])|84(?:4[0-2]|8[0-35-9])|9(?:29[013-9]|39[014-9]|59[0-4]|899))\\d{4}|(?:4(?:4[0-35-9]|6[0-357-9]|7[0-25])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|70[1-59]|84[0-39]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}", + , + , + , + "51234567", + , + , + [8], + ], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [ + , + , + "900(?:[0-24-9]\\d{7}|3\\d{1,4})", + , + , + , + "90012345678", + , + , + [5, 6, 7, 8, 11], + ], + [, , , , , , , , , [-1]], + [ + , + , + "8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}", + , + , + , + "81123456", + , + , + [8], + ], + [, , , , , , , , , [-1]], + "HK", + 852, + "00(?:30|5[09]|[126-9]?)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + [, "(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], + ], + , + [ + , + , + "7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}", + , + , + , + "71123456", + , + , + [8], + ], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}", + , + , + , + "30161234", + , + , + [8], + ], + , + , + [, , , , , , , , , [-1]], + ], + HN: [ + , + [, , "8\\d{10}|[237-9]\\d{7}", , , , , , , [8, 11]], + [ + , + , + "2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-7]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}", + , + , + , + "22123456", + , + , + [8], + ], + [, , "[37-9]\\d{7}", , , , "91234567", , , [8]], + [, , "8002\\d{7}", , , , "80021234567", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "HN", + 504, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], + ], + [[, "(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]], + [, , , , , , , , , [-1]], + , + , + [, , "8002\\d{7}", , , , , , , [11]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + HR: [ + , + [ + , + , + "[2-69]\\d{8}|80\\d{5,7}|[1-79]\\d{7}|6\\d{6}", + , + , + , + , + , + , + [7, 8, 9], + [6], + ], + [ + , + , + "1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}", + , + , + , + "12345678", + , + , + [8, 9], + [6, 7], + ], + [ + , + , + "9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|55|77|9[5-79])))\\d{4}|98\\d{6}", + , + , + , + "921234567", + , + , + [8, 9], + ], + [, , "80\\d{5,7}", , , , "800123456"], + [, , "6[01459]\\d{6}|6[01]\\d{5}", , , , "6001234", , , [7, 8]], + [, , , , , , , , , [-1]], + [, , "7[45]\\d{6}", , , , "74123456", , , [8]], + [, , , , , , , , , [-1]], + "HR", + 385, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["6[01]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], + [, "(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "62\\d{6,7}|72\\d{6}", , , , "62123456", , , [8, 9]], + , + , + [, , , , , , , , , [-1]], + ], + HT: [ + , + [, , "[2-589]\\d{7}", , , , , , , [8]], + [, , "2(?:2\\d|5[1-5]|81|9[149])\\d{5}", , , , "22453300"], + [, , "(?:[34]\\d|5[56])\\d{6}", , , , "34101234"], + [, , "8\\d{7}", , , , "80012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}", , , , "98901234"], + "HT", + 509, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + HU: [ + , + [, , "[235-7]\\d{8}|[1-9]\\d{7}", , , , , , , [8, 9], [6, 7]], + [ + , + , + "(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}", + , + , + , + "12345678", + , + , + [8], + [6, 7], + ], + [, , "(?:[257]0|3[01])\\d{7}", , , , "201234567", , , [9]], + [, , "(?:[48]0\\d|680[29])\\d{5}", , , , "80123456"], + [, , "9[01]\\d{6}", , , , "90123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "21\\d{7}", , , , "211234567", , , [9]], + "HU", + 36, + "00", + "06", + , + , + "06", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], + [ + , + "(\\d{2})(\\d{3})(\\d{3})", + "$1 $2 $3", + ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], + "(06 $1)", + ], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "(?:[48]0\\d|680[29])\\d{5}"], + [, , "38\\d{7}", , , , "381234567", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + ID: [ + , + [ + , + , + "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", + , + , + , + , + , + , + [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], + [5, 6], + ], + [ + , + , + "2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}", + , + , + , + "218350123", + , + , + [7, 8, 9, 10, 11], + [5, 6], + ], + [, , "8[1-35-9]\\d{7,10}", , , , "812345678", , , [9, 10, 11, 12]], + [ + , + , + "00(?:1803\\d{5,11}|7803\\d{7})|(?:177\\d|800)\\d{5,7}", + , + , + , + "8001234567", + , + , + [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], + ], + [, , "809\\d{7}", , , , "8091234567", , , [10]], + [, , "804\\d{7}", , , , "8041234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ID", + 62, + "00[89]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], + [, "(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], + [, "(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], + [, "(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], + [, "(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], + [, "(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], + [, "(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3 $4", ["001"]], + [, "(\\d{2})(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], + ], + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], + [, "(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], + [, "(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], + [, "(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], + [, "(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], + [, "(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], + [, "(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [ + , + , + "001803\\d{5,11}|(?:007803\\d|8071)\\d{6}", + , + , + , + , + , + , + [10, 11, 12, 13, 14, 15, 16, 17], + ], + [, , "(?:1500|8071\\d{3})\\d{3}", , , , "8071123456", , , [7, 10]], + , + , + [, , , , , , , , , [-1]], + ], + IE: [ + , + [ + , + , + "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", + , + , + , + , + , + , + [7, 8, 9, 10], + [5, 6], + ], + [ + , + , + "(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}", + , + , + , + "2212345", + , + , + , + [5, 6], + ], + [, , "8(?:22|[35-9]\\d)\\d{6}", , , , "850123456", , , [9]], + [, , "1800\\d{6}", , , , "1800123456", , , [10]], + [, , "15(?:1[2-8]|[2-8]0|9[089])\\d{6}", , , , "1520123456", , , [10]], + [, , "18[59]0\\d{6}", , , , "1850123456", , , [10]], + [, , "700\\d{6}", , , , "700123456", , , [9]], + [, , "76\\d{7}", , , , "761234567", , , [9]], + "IE", + 353, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{2})(\\d{5})", + "$1 $2", + ["2[24-9]|47|58|6[237-9]|9[35-9]"], + "(0$1)", + ], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], + [, "(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["[2569]|4[1-69]|7[14]"], + "(0$1)", + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], + [, "(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "18[59]0\\d{6}", , , , , , , [10]], + [, , "818\\d{6}", , , , "818123456", , , [9]], + , + , + [ + , + , + "88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}", + , + , + , + "8551234567", + , + , + [10], + ], + ], + IL: [ + , + [ + , + , + "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", + , + , + , + , + , + , + [7, 8, 9, 10, 11, 12], + ], + [ + , + , + "153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}", + , + , + , + "21234567", + , + , + [8, 11, 12], + [7], + ], + [ + , + , + "55(?:4(?:[01]0|5[0-5])|57[0-289])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}", + , + , + , + "502345678", + , + , + [9], + ], + [, , "1(?:255|80[019]\\d{3})\\d{3}", , , , "1800123456", , , [7, 10]], + [ + , + , + "1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}", + , + , + , + "1919123456", + , + , + [8, 10], + ], + [, , "1700\\d{6}", , , , "1700123456", , , [10]], + [, , , , , , , , , [-1]], + [ + , + , + "7(?:38(?:[05]\\d|8[018])|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}", + , + , + , + "771234567", + , + , + [9], + ], + "IL", + 972, + "0(?:0|1[2-9])", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{3})", "$1-$2", ["125"]], + [, "(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], + [, "(\\d{4})(\\d{6})", "$1-$2", ["159"]], + [, "(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], + [, "(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "1700\\d{6}", , , , , , , [10]], + [, , "1599\\d{6}", , , , "1599123456", , , [10]], + , + , + [, , "151\\d{8,9}", , , , "15112340000", , , [11, 12]], + ], + IM: [ + , + [, , "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], + [, , "1624(?:230|[5-8]\\d\\d)\\d{3}", , , , "1624756789", , , , [6]], + [ + , + , + "76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}", + , + , + , + "7924123456", + ], + [, , "808162\\d{4}", , , , "8081624567"], + [ + , + , + "8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}", + , + , + , + "9016247890", + ], + [, , , , , , , , , [-1]], + [, , "70\\d{8}", , , , "7012345678"], + [, , "56\\d{8}", , , , "5612345678"], + "IM", + 44, + "00", + "0", + , + , + "([25-8]\\d{5})$|0", + "1624$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "74576|(?:16|7[56])24", + [, , , , , , , , , [-1]], + [ + , + , + "3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}", + , + , + , + "5512345678", + ], + , + , + [, , , , , , , , , [-1]], + ], + IN: [ + , + [ + , + , + "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", + , + , + , + , + , + , + [8, 9, 10, 11, 12, 13], + [6, 7], + ], + [ + , + , + "2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}", + , + , + , + "7410410123", + , + , + [10], + [6, 7, 8], + ], + [ + , + , + "(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}", + , + , + , + "8123456789", + , + , + [10], + ], + [ + , + , + "000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))", + , + , + , + "1800123456", + ], + [, , "186[12]\\d{9}", , , , "1861123456789", , , [13]], + [, , "1860\\d{7}", , , , "18603451234", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IN", + 91, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{7})", "$1", ["575"]], + [ + , + "(\\d{8})", + "$1", + [ + "5(?:0|2[23]|3[03]|[67]1|88)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)", + ], + , + , + 1, + ], + [, "(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], , , 1], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "11|2[02]|33|4[04]|79[1-7]|80[2-46]", + "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", + "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{4})(\\d{3})(\\d{3})", + "$1 $2 $3", + [ + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", + "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]", + ], + "0$1", + , + 1, + ], + [, "(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", , 1], + [ + , + "(\\d{4})(\\d{2,4})(\\d{4})", + "$1 $2 $3", + ["1(?:6|8[06])", "1(?:6|8[06]0)"], + , + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], + [, "(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], , , 1], + ], + [ + [ + , + "(\\d{8})", + "$1", + [ + "5(?:0|2[23]|3[03]|[67]1|88)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)", + ], + , + , + 1, + ], + [, "(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], , , 1], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "11|2[02]|33|4[04]|79[1-7]|80[2-46]", + "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", + "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{4})(\\d{3})(\\d{3})", + "$1 $2 $3", + [ + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", + "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]", + ], + "0$1", + , + 1, + ], + [, "(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", , 1], + [ + , + "(\\d{4})(\\d{2,4})(\\d{4})", + "$1 $2 $3", + ["1(?:6|8[06])", "1(?:6|8[06]0)"], + , + , + 1, + ], + [, "(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], , , 1], + ], + [, , , , , , , , , [-1]], + , + , + [ + , + , + "1(?:600\\d{6}|800\\d{4,9})|(?:000800|18(?:03\\d\\d|6(?:0|[12]\\d\\d)))\\d{7}", + ], + [, , "140\\d{7}", , , , "1409305260", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + IO: [ + , + [, , "3\\d{6}", , , , , , , [7]], + [, , "37\\d{5}", , , , "3709100"], + [, , "38\\d{5}", , , , "3801234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IO", + 246, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["3"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + IQ: [ + , + [ + , + , + "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", + , + , + , + , + , + , + [8, 9, 10], + [6, 7], + ], + [ + , + , + "1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}", + , + , + , + "12345678", + , + , + [8, 9], + [6, 7], + ], + [, , "7[3-9]\\d{8}", , , , "7912345678", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IQ", + 964, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + IR: [ + , + [ + , + , + "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", + , + , + , + , + , + , + [4, 5, 6, 7, 10], + [8], + ], + [ + , + , + "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|(?:12\\d|30[0-2])\\d|2(?:121|[2689]0\\d)|4(?:111|40\\d))\\d{4}", + , + , + , + "2123456789", + , + , + [6, 7, 10], + [4, 5, 8], + ], + [ + , + , + "9(?:(?:0[0-5]|[13]\\d|2[0-3])\\d\\d|9(?:[0-46]\\d\\d|5(?:10|5\\d)|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}", + , + , + , + "9123456789", + , + , + [10], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IR", + 98, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4,5})", "$1", ["96"], "0$1"], + [ + , + "(\\d{2})(\\d{4,5})", + "$1 $2", + [ + "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]", + ], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [ + , + , + "9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))", + , + , + , + , + , + , + [4, 5, 10], + ], + [ + , + , + "96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])", + , + , + , + "9601", + , + , + [4, 5], + ], + , + , + [, , , , , , , , , [-1]], + ], + IS: [ + , + [, , "(?:38\\d|[4-9])\\d{6}", , , , , , , [7, 9]], + [ + , + , + "(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}", + , + , + , + "4101234", + , + , + [7], + ], + [ + , + , + "(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}", + , + , + , + "6111234", + ], + [, , "80[0-8]\\d{4}", , , , "8001234", , , [7]], + [ + , + , + "90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}", + , + , + , + "9001234", + , + , + [7], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "49[0-24-79]\\d{4}", , , , "4921234", , , [7]], + "IS", + 354, + "00|1(?:0(?:01|[12]0)|100)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "809\\d{4}", , , , "8091234", , , [7]], + , + , + [, , "(?:689|8(?:7[18]|80)|95[48])\\d{4}", , , , "6891234", , , [7]], + ], + IT: [ + , + [ + , + , + "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11, 12], + ], + [ + , + , + "0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", + , + , + , + "0212345678", + , + , + [6, 7, 8, 9, 10, 11], + ], + [, , "3[2-9]\\d{7,8}|(?:31|43)\\d{8}", , , , "3123456789", , , [9, 10]], + [, , "80(?:0\\d{3}|3)\\d{3}", , , , "800123456", , , [6, 9]], + [ + , + , + "(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", + , + , + , + "899123456", + , + , + [6, 8, 9, 10], + ], + [, , "84(?:[08]\\d{3}|[17])\\d{3}", , , , "848123456", , , [6, 9]], + [, , "1(?:78\\d|99)\\d{6}", , , , "1781234567", , , [9, 10]], + [, , "55\\d{8}", , , , "5512345678", , , [10]], + "IT", + 39, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4,5})", "$1", ["1(?:0|9[246])", "1(?:0|9(?:2[2-9]|[46]))"]], + [, "(\\d{6})", "$1", ["1(?:1|92)"]], + [, "(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], + [ + , + "(\\d{3})(\\d{3,6})", + "$1 $2", + [ + "0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", + "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))", + ], + ], + [, "(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["894"]], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], + [ + , + "(\\d{3})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["1(?:44|[679])|[378]|43"], + ], + [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], + [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]], + ], + [ + [, "(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], + [ + , + "(\\d{3})(\\d{3,6})", + "$1 $2", + [ + "0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", + "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))", + ], + ], + [, "(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["894"]], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], + [ + , + "(\\d{3})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["1(?:44|[679])|[378]|43"], + ], + [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], + [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]], + ], + [, , , , , , , , , [-1]], + 1, + , + [, , "848\\d{6}", , , , , , , [9]], + [, , , , , , , , , [-1]], + , + , + [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]], + ], + JE: [ + , + [, , "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], + [, , "1534[0-24-8]\\d{5}", , , , "1534456789", , , , [6]], + [ + , + , + "7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}", + , + , + , + "7797712345", + ], + [, , "80(?:07(?:35|81)|8901)\\d{4}", , , , "8007354567"], + [ + , + , + "(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}", + , + , + , + "9018105678", + ], + [, , , , , , , , , [-1]], + [, , "701511\\d{4}", , , , "7015115678"], + [, , "56\\d{8}", , , , "5612345678"], + "JE", + 44, + "00", + "0", + , + , + "([0-24-8]\\d{5})$|0", + "1534$1", + , + , + , + , + [ + , + , + "76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", + , + , + , + "7640123456", + ], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}", + , + , + , + "5512345678", + ], + , + , + [, , , , , , , , , [-1]], + ], + JM: [ + , + [, , "(?:[58]\\d\\d|658|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}", + , + , + , + "8765230123", + , + , + , + [7], + ], + [ + , + , + "(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}", + , + , + , + "8762101234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "JM", + 1, + "011", + "1", + , + , + "1", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "658|876", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + JO: [ + , + [, , "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", , , , , , , [8, 9]], + [ + , + , + "87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}", + , + , + , + "62001234", + , + , + [8], + ], + [, , "7(?:[78][0-25-9]|9\\d)\\d{6}", , , , "790123456", , , [9]], + [, , "80\\d{6}", , , , "80012345", , , [8]], + [, , "9\\d{7}", , , , "90012345", , , [8]], + [, , "85\\d{6}", , , , "85012345", , , [8]], + [, , "70\\d{7}", , , , "700123456", , , [9]], + [, , , , , , , , , [-1]], + "JO", + 962, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], + [, "(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , "74(?:66|77)\\d{5}", , , , "746612345", , , [9]], + , + , + [, , , , , , , , , [-1]], + [, , "8(?:10|8\\d)\\d{5}", , , , "88101234", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + JP: [ + , + [ + , + , + "00[1-9]\\d{6,14}|[25-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", + , + , + , + , + , + , + [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], + ], + [ + , + , + "(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}", + , + , + , + "312345678", + , + , + [9], + ], + [ + , + , + "(?:601[0-4]0|[7-9]0[1-9]\\d\\d)\\d{5}", + , + , + , + "9012345678", + , + , + [10], + ], + [ + , + , + "00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}", + , + , + , + "120123456", + ], + [, , "990\\d{6}", , , , "990123456", , , [9]], + [, , , , , , , , , [-1]], + [, , "60\\d{7}", , , , "601234567", , , [9]], + [, , "50[1-9]\\d{7}", , , , "5012345678", , , [10]], + "JP", + 81, + "010", + "0", + , + , + "(000[2569]\\d{4,6})$|(?:(?:003768)0?)|0", + "$1", + , + , + [ + [ + , + "(\\d{4})(\\d{4})", + "$1-$2", + ["007", "0077", "00777", "00777[01]"], + ], + [, "(\\d{8,10})", "$1", ["000"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], + [ + , + "(\\d{4})(\\d)(\\d{4})", + "$1-$2-$3", + [ + "1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + ], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], + [ + , + "(\\d)(\\d{4})(\\d{4})", + "$1-$2-$3", + [ + "3|4(?:2[09]|7[01])|6[1-9]", + "3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]", + ], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1-$2-$3", + [ + "1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", + ], + "0$1", + ], + [ + , + "(\\d{3})(\\d{2})(\\d{4})", + "$1-$2-$3", + ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], + "0$1", + ], + [, "(\\d{4})(\\d{2})(\\d{3,4})", "$1-$2-$3", ["007", "0077"]], + [, "(\\d{4})(\\d{2})(\\d{4})", "$1-$2-$3", ["008"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[25-9]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1-$2-$3", ["0"]], + [, "(\\d{4})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["0"]], + [, "(\\d{4})(\\d{5})(\\d{5,6})", "$1-$2-$3", ["0"]], + [, "(\\d{4})(\\d{6})(\\d{6,7})", "$1-$2-$3", ["0"]], + ], + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], + [ + , + "(\\d{4})(\\d)(\\d{4})", + "$1-$2-$3", + [ + "1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + ], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], + [ + , + "(\\d)(\\d{4})(\\d{4})", + "$1-$2-$3", + [ + "3|4(?:2[09]|7[01])|6[1-9]", + "3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]", + ], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1-$2-$3", + [ + "1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", + ], + "0$1", + ], + [ + , + "(\\d{3})(\\d{2})(\\d{4})", + "$1-$2-$3", + ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[25-9]"], "0$1"], + ], + [, , "20\\d{8}", , , , "2012345678", , , [10]], + , + , + [ + , + , + "00(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d|00(?:37|66|78)\\d{6,13}", + ], + [, , "570\\d{6}", , , , "570123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + KE: [ + , + [ + , + , + "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", + , + , + , + , + , + , + [7, 8, 9, 10], + ], + [ + , + , + "(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}", + , + , + , + "202012345", + , + , + [7, 8, 9], + ], + [ + , + , + "(?:1(?:0[0-8]|1[0-7]|2[014]|30)|7\\d\\d)\\d{6}", + , + , + , + "712123456", + , + , + [9], + ], + [, , "800[02-8]\\d{5,6}", , , , "800223456", , , [9, 10]], + [, , "900[02-9]\\d{5}", , , , "900223456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KE", + 254, + "000", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], + [, "(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KG: [ + , + [, , "8\\d{9}|[235-9]\\d{8}", , , , , , , [9, 10], [5, 6]], + [ + , + , + "312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}", + , + , + , + "312123456", + , + , + [9], + [5, 6], + ], + [ + , + , + "312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|9(?:12|9[05-9]))\\d{6}", + , + , + , + "700123456", + , + , + [9], + ], + [, , "800\\d{6,7}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KG", + 996, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KH: [ + , + [, , "1\\d{9}|[1-9]\\d{7,8}", , , , , , , [8, 9, 10], [6, 7]], + [ + , + , + "23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})", + , + , + , + "23756789", + , + , + [8, 9], + [6, 7], + ], + [ + , + , + "(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}", + , + , + , + "91234567", + , + , + [8, 9], + ], + [, , "1800(?:1\\d|2[019])\\d{4}", , , , "1800123456", , , [10]], + [, , "1900(?:1\\d|2[09])\\d{4}", , , , "1900123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KH", + 855, + "00[14-9]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KI: [ + , + [ + , + , + "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", + , + , + , + , + , + , + [5, 8], + ], + [ + , + , + "(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}", + , + , + , + "31234", + ], + [ + , + , + "(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}", + , + , + , + "72001234", + , + , + [8], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "30(?:0[01]\\d\\d|12(?:11|20))\\d\\d", , , , "30010000", , , [8]], + "KI", + 686, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KM: [ + , + [, , "[3478]\\d{6}", , , , , , , [7], [4]], + [, , "7[4-7]\\d{5}", , , , "7712345", , , , [4]], + [, , "[34]\\d{6}", , , , "3212345"], + [, , , , , , , , , [-1]], + [, , "8\\d{6}", , , , "8001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KM", + 269, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KN: [ + , + [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}", + , + , + , + "8692361234", + , + , + , + [7], + ], + [ + , + , + "869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}", + , + , + , + "8697652917", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "KN", + 1, + "011", + "1", + , + , + "([2-7]\\d{6})$|1", + "869$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "869", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KP: [ + , + [, , "85\\d{6}|(?:19\\d|[2-7])\\d{7}", , , , , , , [8, 10], [6, 7]], + [ + , + , + "(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}", + , + , + , + "21234567", + , + , + , + [6, 7], + ], + [, , "19[1-3]\\d{7}", , , , "1921234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KP", + 850, + "00|99", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "238[02-9]\\d{4}|2(?:[0-24-9]\\d|3[0-79])\\d{5}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KR: [ + , + [ + , + , + "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", + , + , + , + , + , + , + [5, 6, 8, 9, 10, 11, 12, 13, 14], + [3, 4, 7], + ], + [ + , + , + "(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}", + , + , + , + "22123456", + , + , + [5, 6, 8, 9, 10], + [3, 4, 7], + ], + [ + , + , + "1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[0-46-9]|[16-9]\\d|2[013-9])\\d{6,7}", + , + , + , + "1020000000", + , + , + [9, 10], + ], + [ + , + , + "00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|[38]0)\\d{7}", + , + , + , + "801234567", + , + , + [9, 11, 12, 13, 14], + ], + [, , "60[2-9]\\d{6}", , , , "602345678", , , [9]], + [, , , , , , , , , [-1]], + [, , "50\\d{8,9}", , , , "5012345678", , , [10, 11]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + "KR", + 82, + "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", + "0", + , + , + "0(8(?:[1-46-8]|5\\d\\d))?", + , + , + , + [ + [ + , + "(\\d{5})", + "$1", + ["1[016-9]1", "1[016-9]11", "1[016-9]114"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3,4})", + "$1-$2", + ["(?:3[1-3]|[46][1-4]|5[1-5])1"], + "0$1", + "0$CC-$1", + ], + [, "(\\d{4})(\\d{4})", "$1-$2", ["1"]], + [, "(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1", "0$CC-$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1-$2-$3", + ["[36]0|8"], + "0$1", + "0$CC-$1", + ], + [ + , + "(\\d{2})(\\d{3,4})(\\d{4})", + "$1-$2-$3", + ["[1346]|5[1-5]"], + "0$1", + "0$CC-$1", + ], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1-$2-$3", + ["[57]"], + "0$1", + "0$CC-$1", + ], + [, "(\\d{5})(\\d{3})(\\d{3})", "$1 $2 $3", ["003", "0030"]], + [, "(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1", "0$CC-$1"], + [, "(\\d{5})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0"]], + [, "(\\d{5})(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], + ], + [ + [ + , + "(\\d{2})(\\d{3,4})", + "$1-$2", + ["(?:3[1-3]|[46][1-4]|5[1-5])1"], + "0$1", + "0$CC-$1", + ], + [, "(\\d{4})(\\d{4})", "$1-$2", ["1"]], + [, "(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1", "0$CC-$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1-$2-$3", + ["[36]0|8"], + "0$1", + "0$CC-$1", + ], + [ + , + "(\\d{2})(\\d{3,4})(\\d{4})", + "$1-$2-$3", + ["[1346]|5[1-5]"], + "0$1", + "0$CC-$1", + ], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1-$2-$3", + ["[57]"], + "0$1", + "0$CC-$1", + ], + [, "(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1", "0$CC-$1"], + ], + [, , "15\\d{7,8}", , , , "1523456789", , , [9, 10]], + , + , + [ + , + , + "00(?:3(?:08\\d{6,7}|68\\d{7})|798\\d{7,9})", + , + , + , + , + , + , + [11, 12, 13, 14], + ], + [ + , + , + "1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[0168]|88)|8(?:00|33|55|77|99))\\d{4}", + , + , + , + "15441234", + , + , + [8], + ], + , + , + [, , , , , , , , , [-1]], + ], + KW: [ + , + [, , "18\\d{5}|(?:[2569]\\d|41)\\d{6}", , , , , , , [7, 8]], + [ + , + , + "2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}", + , + , + , + "22345678", + , + , + [8], + ], + [ + , + , + "(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|6[16])|2[26]2|3[36]3|4[46]4|7(?:0[013-9]|[67]\\d)|8[68]8|9(?:[069]\\d|3[039]))|9(?:(?:[04679]\\d|8[057-9])\\d|1(?:00|1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}", + , + , + , + "50012345", + , + , + [8], + ], + [, , "18\\d{5}", , , , "1801234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KW", + 965, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[245]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KY: [ + , + [, , "(?:345|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|4[89]|88)|9(?:14|4[035-9]))\\d{4}", + , + , + , + "3452221234", + , + , + , + [7], + ], + [ + , + , + "345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}", + , + , + , + "3453231234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "(?:345976|900[2-9]\\d\\d)\\d{4}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "KY", + 1, + "011", + "1", + , + , + "([2-9]\\d{6})$|1", + "345$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "345", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KZ: [ + , + [ + , + , + "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", + , + , + , + , + , + , + [10, 14], + [5, 6, 7], + ], + [ + , + , + "(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}", + , + , + , + "7123456789", + , + , + [10], + [5, 6, 7], + ], + [ + , + , + "7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}", + , + , + , + "7710009998", + , + , + [10], + ], + [, , "8(?:00|108\\d{3})\\d{7}", , , , "8001234567"], + [, , "809\\d{7}", , , , "8091234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "808\\d{7}", , , , "8081234567", , , [10]], + [, , "751\\d{7}", , , , "7511234567", , , [10]], + "KZ", + 7, + "810", + "8", + , + , + "8", + , + "8~10", + , + , + , + [, , , , , , , , , [-1]], + , + "33622|7", + [, , "751\\d{7}", , , , , , , [10]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LA: [ + , + [ + , + , + "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", + , + , + , + , + , + , + [8, 9, 10], + [6], + ], + [ + , + , + "(?:2[13]|[35-7][14]|41|8[1468])\\d{6}", + , + , + , + "21212862", + , + , + [8], + [6], + ], + [ + , + , + "(?:20(?:[23579]\\d|8[78])|30[24]\\d)\\d{6}|30\\d{7}", + , + , + , + "2023123456", + , + , + [9, 10], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LA", + 856, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{2})(\\d{3})(\\d{3})", + "$1 $2 $3", + ["2[13]|3[14]|[4-8]"], + "0$1", + ], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["3"], "0$1"], + [ + , + "(\\d{2})(\\d{2})(\\d{3})(\\d{3})", + "$1 $2 $3 $4", + ["[23]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LB: [ + , + [, , "[27-9]\\d{7}|[13-9]\\d{6}", , , , , , , [7, 8]], + [ + , + , + "7(?:62|8[0-6]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}", + , + , + , + "1123456", + ], + [ + , + , + "(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[7-9]|9[1-3]))\\d{5}", + , + , + , + "71123456", + ], + [, , , , , , , , , [-1]], + [, , "9[01]\\d{6}", , , , "90123456", , , [8]], + [, , "80\\d{6}", , , , "80123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LB", + 961, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d)(\\d{3})(\\d{3})", + "$1 $2 $3", + ["[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]"], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LC: [ + , + [, , "(?:[58]\\d\\d|758|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}", + , + , + , + "7584305678", + , + , + , + [7], + ], + [ + , + , + "758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}", + , + , + , + "7582845678", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "LC", + 1, + "011", + "1", + , + , + "([2-8]\\d{6})$|1", + "758$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "758", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LI: [ + , + [, , "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", , , , , , , [7, 9]], + [ + , + , + "(?:2(?:01|1[27]|2[024]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}", + , + , + , + "2345678", + , + , + [7], + ], + [ + , + , + "(?:6(?:(?:4[5-9]|5[0-46-9])\\d|6(?:[024-6]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}", + , + , + , + "660234567", + ], + [, , "8002[28]\\d\\d|80(?:05\\d|9)\\d{4}", , , , "8002222"], + [ + , + , + "90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d", + , + , + , + "9002222", + , + , + [7], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LI", + 423, + "00", + "0", + , + , + "(1001)|0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3", + ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"], + , + "$CC $1", + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"], , "$CC $1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"], , "$CC $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "870(?:28|87)\\d\\d", , , , "8702812", , , [7]], + , + , + [, , "697(?:42|56|[78]\\d)\\d{4}", , , , "697861234", , , [9]], + ], + LK: [ + , + [, , "[1-9]\\d{8}", , , , , , , [9], [7]], + [ + , + , + "(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}", + , + , + , + "112345678", + , + , + , + [7], + ], + [, , "7(?:[0-25-8]\\d|4[0-4])\\d{6}", , , , "712345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LK", + 94, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "1973\\d{5}", , , , "197312345"], + , + , + [, , , , , , , , , [-1]], + ], + LR: [ + , + [ + , + , + "(?:[2457]\\d|33|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", + , + , + , + , + , + , + [7, 8, 9], + ], + [, , "2\\d{7}", , , , "21234567", , , [8]], + [ + , + , + "(?:(?:(?:22|33)0|555|7(?:6[01]|7\\d)|88\\d)\\d|4(?:240|[67]))\\d{5}|[56]\\d{6}", + , + , + , + "770123456", + , + , + [7, 9], + ], + [, , , , , , , , , [-1]], + [, , "332(?:02|[34]\\d)\\d{4}", , , , "332021234", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LR", + 231, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LS: [ + , + [, , "(?:[256]\\d\\d|800)\\d{5}", , , , , , , [8]], + [, , "2\\d{7}", , , , "22123456"], + [, , "[56]\\d{7}", , , , "50123456"], + [, , "800[1256]\\d{4}", , , , "80021234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LS", + 266, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LT: [ + , + [, , "(?:[3469]\\d|52|[78]0)\\d{6}", , , , , , , [8]], + [, , "(?:3[1478]|4[124-6]|52)\\d{6}", , , , "31234567"], + [, , "6\\d{7}", , , , "61234567"], + [, , "80[02]\\d{5}", , , , "80012345"], + [, , "9(?:0[0239]|10)\\d{5}", , , , "90012345"], + [, , "808\\d{5}", , , , "80812345"], + [, , "70[05]\\d{5}", , , , "70012345"], + [, , "[89]01\\d{5}", , , , "80123456"], + "LT", + 370, + "00", + "0", + , + , + "[08]", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", , 1], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", , 1], + [ + , + "(\\d{2})(\\d{6})", + "$1 $2", + ["37|4(?:[15]|6[1-8])"], + "(0-$1)", + , + 1, + ], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", , 1], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "70[67]\\d{5}", , , , "70712345"], + , + , + [, , , , , , , , , [-1]], + ], + LU: [ + , + [ + , + , + "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", + , + , + , + , + , + , + [4, 5, 6, 7, 8, 9, 10, 11], + ], + [ + , + , + "(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}", + , + , + , + "27123456", + ], + [ + , + , + "6(?:[269][18]|5[1568]|7[189]|81)\\d{6}", + , + , + , + "628123456", + , + , + [9], + ], + [, , "800\\d{5}", , , , "80012345", , , [8]], + [, , "90[015]\\d{5}", , , , "90012345", , , [8]], + [, , "801\\d{5}", , , , "80112345", , , [8]], + [, , , , , , , , , [-1]], + [ + , + , + "20(?:1\\d{5}|[2-689]\\d{1,7})", + , + , + , + "20201234", + , + , + [4, 5, 6, 7, 8, 9, 10], + ], + "LU", + 352, + "00", + , + , + , + "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)", + , + , + , + [ + [ + , + "(\\d{2})(\\d{3})", + "$1 $2", + [ + "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])", + ], + , + "$CC $1", + ], + [ + , + "(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3", + [ + "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])", + ], + , + "$CC $1", + ], + [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"], , "$CC $1"], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", + "$1 $2 $3 $4", + ["2(?:[0367]|4[3-8])"], + , + "$CC $1", + ], + [ + , + "(\\d{3})(\\d{2})(\\d{3})", + "$1 $2 $3", + ["80[01]|90[015]"], + , + "$CC $1", + ], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", + "$1 $2 $3 $4", + ["20"], + , + "$CC $1", + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"], , "$CC $1"], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", + "$1 $2 $3 $4 $5", + ["2(?:[0367]|4[3-8])"], + , + "$CC $1", + ], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", + "$1 $2 $3 $4", + ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"], + , + "$CC $1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LV: [ + , + [, , "(?:[268]\\d|90)\\d{6}", , , , , , , [8]], + [, , "6\\d{7}", , , , "63123456"], + [ + , + , + "2333[0-8]\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[02-9]|3[0-24-9]))\\d{4}", + , + , + , + "21234567", + ], + [, , "80\\d{6}", , , , "80123456"], + [, , "90\\d{6}", , , , "90123456"], + [, , "81\\d{6}", , , , "81123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LV", + 371, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LY: [ + , + [, , "[2-9]\\d{8}", , , , , , , [9], [7]], + [ + , + , + "(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}", + , + , + , + "212345678", + , + , + , + [7], + ], + [, , "9[1-6]\\d{7}", , , , "912345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LY", + 218, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MA: [ + , + [, , "[5-8]\\d{8}", , , , , , , [9]], + [ + , + , + "5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}", + , + , + , + "520123456", + ], + [ + , + , + "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-8]|5[0-5]|8[0-7]))\\d{6}", + , + , + , + "650123456", + ], + [, , "80[0-7]\\d{6}", , , , "801234567"], + [, , "89\\d{7}", , , , "891234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}", , , , "592401234"], + "MA", + 212, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["5[45]"], + "0$1", + ], + [ + , + "(\\d{4})(\\d{5})", + "$1-$2", + ["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"], + "0$1", + ], + [, "(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], + [, "(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MC: [ + , + [, , "(?:[3489]|6\\d)\\d{7}", , , , , , , [8, 9]], + [, , "(?:870|9[2-47-9]\\d)\\d{5}", , , , "99123456", , , [8]], + [, , "4(?:[469]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}", , , , "612345678"], + [, , "(?:800|90\\d)\\d{5}", , , , "90123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MC", + 377, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["87"]], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], + [ + , + "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["6"], + "0$1", + ], + ], + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], + [ + , + "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["6"], + "0$1", + ], + ], + [, , , , , , , , , [-1]], + , + , + [, , "8[07]0\\d{5}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MD: [ + , + [, , "(?:[235-7]\\d|[89]0)\\d{6}", , , , , , , [8]], + [ + , + , + "(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}", + , + , + , + "22212345", + ], + [, , "562\\d{5}|(?:6\\d|7[16-9])\\d{6}", , , , "62112345"], + [, , "800\\d{5}", , , , "80012345"], + [, , "90[056]\\d{5}", , , , "90012345"], + [, , "808\\d{5}", , , , "80812345"], + [, , , , , , , , , [-1]], + [, , "3[08]\\d{6}", , , , "30123456"], + "MD", + 373, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "803\\d{5}", , , , "80312345"], + , + , + [, , , , , , , , , [-1]], + ], + ME: [ + , + [, , "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", , , , , , , [8, 9], [6]], + [ + , + , + "(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}", + , + , + , + "30234567", + , + , + [8], + [6], + ], + [, , "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}", , , , "67622901", , , [8]], + [, , "80(?:[0-2578]|9\\d)\\d{5}", , , , "80080002"], + [, , "9(?:4[1568]|5[178])\\d{5}", , , , "94515151", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "78[1-49]\\d{5}", , , , "78108780", , , [8]], + "ME", + 382, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "77[1-9]\\d{5}", , , , "77273012", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + MF: [ + , + [, , "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", , , , , , , [9]], + [ + , + , + "590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}", + , + , + , + "590271234", + ], + [ + , + , + "(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}", + , + , + , + "690001234", + ], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}", , , , "976012345"], + "MF", + 590, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MG: [ + , + [, , "[23]\\d{8}", , , , , , , [9], [7]], + [ + , + , + "2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[356]|8[268]|9[2457])\\d{5}", + , + , + , + "202123456", + , + , + , + [7], + ], + [, , "3[2-47-9]\\d{7}", , , , "321234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "22\\d{7}", , , , "221234567"], + "MG", + 261, + "00", + "0", + , + , + "([24-9]\\d{6})$|0", + "20$1", + , + , + [ + [ + , + "(\\d{2})(\\d{2})(\\d{3})(\\d{2})", + "$1 $2 $3 $4", + ["[23]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MH: [ + , + [, , "329\\d{4}|(?:[256]\\d|45)\\d{5}", , , , , , , [7]], + [, , "(?:247|528|625)\\d{4}", , , , "2471234"], + [, , "(?:(?:23|54)5|329|45[35-8])\\d{4}", , , , "2351234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "635\\d{4}", , , , "6351234"], + "MH", + 692, + "011", + "1", + , + , + "1", + , + , + , + [[, "(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MK: [ + , + [, , "[2-578]\\d{7}", , , , , , , [8], [6, 7]], + [ + , + , + "(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}", + , + , + , + "22012345", + , + , + , + [6, 7], + ], + [ + , + , + "7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-478]\\d|6[01])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}", + , + , + , + "72345678", + ], + [, , "800\\d{5}", , , , "80012345"], + [, , "5\\d{7}", , , , "50012345"], + [, , "8(?:0[1-9]|[1-9]\\d)\\d{5}", , , , "80123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MK", + 389, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d)(\\d{3})(\\d{4})", + "$1 $2 $3", + ["2|34[47]|4(?:[37]7|5[47]|64)"], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], + [, "(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ML: [ + , + [, , "[24-9]\\d{7}", , , , , , , [8]], + [ + , + , + "2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-59]))\\d{5}", + , + , + , + "20212345", + ], + [ + , + , + "2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[0-3]|[679]\\d|8[2-59])\\d{6}", + , + , + , + "65012345", + ], + [, , "80\\d{6}", , , , "80012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ML", + 223, + "00", + , + , + , + , + , + , + , + [ + [ + , + "(\\d{4})", + "$1", + [ + "67[057-9]|74[045]", + "67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)", + ], + ], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]], + ], + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]], + [, , , , , , , , , [-1]], + , + , + [, , "80\\d{6}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MM: [ + , + [ + , + , + "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", + , + , + , + , + , + , + [6, 7, 8, 9, 10], + [5], + ], + [ + , + , + "(?:1(?:(?:12|[28]\\d|3[56]|7[3-6]|9[0-6])\\d|4(?:2[29]|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|22|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5(?:2\\d|470))|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:3\\d\\d|4[67]0|8(?:[01459]\\d|8))))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|(?:[35]2|64)\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}", + , + , + , + "1234567", + , + , + [6, 7, 8, 9], + [5], + ], + [ + , + , + "(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}", + , + , + , + "92123456", + , + , + [7, 8, 9, 10], + ], + [, , "80080(?:0[1-9]|2\\d)\\d{3}", , , , "8008001234", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "1333\\d{4}", , , , "13331234", , , [8]], + "MM", + 95, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], + [ + , + "(\\d{2})(\\d{2})(\\d{3})", + "$1 $2 $3", + [ + "4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]", + ], + "0$1", + ], + [ + , + "(\\d)(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["[12]|452|678|86", "[12]|452|6788|86"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["[4-7]|8[1-35]"], + "0$1", + ], + [ + , + "(\\d)(\\d{3})(\\d{4,6})", + "$1 $2 $3", + ["9(?:2[0-4]|[35-9]|4[137-9])"], + "0$1", + ], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], + [, "(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MN: [ + , + [, , "[12]\\d{7,9}|[5-9]\\d{7}", , , , , , , [8, 9, 10], [4, 5, 6]], + [ + , + , + "[12]2[1-3]\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\d\\d|7(?:0(?:[0-5]\\d|7[078]|80)|128))\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}", + , + , + , + "53123456", + , + , + , + [4, 5, 6], + ], + [ + , + , + "92[0139]\\d{5}|(?:5[05]|6[069]|7[28]|8[0135689]|9[013-9])\\d{6}", + , + , + , + "88123456", + , + , + [8], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "712[0-79]\\d{4}|7(?:1[013-9]|[5-79]\\d)\\d{5}", + , + , + , + "75123456", + , + , + [8], + ], + "MN", + 976, + "001", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], + [, "(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], + [ + , + "(\\d{4})(\\d{5,6})", + "$1 $2", + [ + "[12](?:27|3[2-8]|4[2-68]|5[1-4689])", + "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]", + ], + "0$1", + ], + [, "(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MO: [ + , + [, , "0800\\d{3}|(?:28|[68]\\d)\\d{6}", , , , , , , [7, 8]], + [ + , + , + "(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}", + , + , + , + "28212345", + , + , + [8], + ], + [ + , + , + "6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}", + , + , + , + "66123456", + , + , + [8], + ], + [, , "0800\\d{3}", , , , "0800501", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MO", + 853, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{3})", "$1 $2", ["0"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[268]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MP: [ + , + [, , "[58]\\d{9}|(?:67|90)0\\d{7}", , , , , , , [10], [7]], + [ + , + , + "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}", + , + , + , + "6702345678", + , + , + , + [7], + ], + [ + , + , + "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}", + , + , + , + "6702345678", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "MP", + 1, + "011", + "1", + , + , + "([2-9]\\d{6})$|1", + "670$1", + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "670", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MQ: [ + , + [, , "(?:596\\d|7091)\\d{5}|(?:69|[89]\\d)\\d{7}", , , , , , , [9]], + [ + , + , + "(?:596(?:[03-7]\\d|1[05]|2[7-9]|8[0-39]|9[04-9])|80[6-9]\\d\\d|9(?:477[6-9]|767[4589]))\\d{4}", + , + , + , + "596301234", + ], + [, , "(?:69[67]\\d\\d|7091[0-3])\\d{4}", , , , "696201234"], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , "8[129]\\d{7}", , , , "810123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "9(?:397[0-3]|477[0-5]|76(?:6\\d|7[0-367]))\\d{4}", + , + , + , + "976612345", + ], + "MQ", + 596, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[5-79]|8(?:0[6-9]|[36])"], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MR: [ + , + [, , "(?:[2-4]\\d\\d|800)\\d{5}", , , , , , , [8]], + [, , "(?:25[08]|35\\d|45[1-7])\\d{5}", , , , "35123456"], + [, , "[2-4][0-46-9]\\d{6}", , , , "22123456"], + [, , "800\\d{5}", , , , "80012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MR", + 222, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MS: [ + , + [, , "(?:[58]\\d\\d|664|900)\\d{7}", , , , , , , [10], [7]], + [, , "6644(?:1[0-3]|91)\\d{4}", , , , "6644912345", , , , [7]], + [ + , + , + "664(?:3(?:49|9[1-6])|49[2-6])\\d{4}", + , + , + , + "6644923456", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "MS", + 1, + "011", + "1", + , + , + "([34]\\d{6})$|1", + "664$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "664", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MT: [ + , + [, , "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", , , , , , , [8]], + [ + , + , + "20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}", + , + , + , + "21001234", + ], + [ + , + , + "(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}", + , + , + , + "96961234", + ], + [, , "800(?:02|[3467]\\d)\\d{3}", , , , "80071234"], + [ + , + , + "5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}", + , + , + , + "50037123", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "3550\\d{4}", , , , "35501234"], + "MT", + 356, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]], + , + [, , "7117\\d{4}", , , , "71171234"], + , + , + [, , , , , , , , , [-1]], + [, , "501\\d{5}", , , , "50112345"], + , + , + [, , , , , , , , , [-1]], + ], + MU: [ + , + [, , "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", , , , , , , [7, 8, 10]], + [ + , + , + "(?:2(?:[0346-8]\\d|1[0-8])|4(?:[013568]\\d|2[4-8]|71|90)|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}", + , + , + , + "54480123", + , + , + [7, 8], + ], + [ + , + , + "5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-6]|3[013]))\\d{5}", + , + , + , + "52512345", + , + , + [8], + ], + [, , "802\\d{7}|80[0-2]\\d{4}", , , , "8001234", , , [7, 10]], + [, , "30\\d{5}", , , , "3012345", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "3(?:20|9\\d)\\d{4}", , , , "3201234", , , [7]], + "MU", + 230, + "0(?:0|[24-7]0|3[03])", + , + , + , + , + , + "020", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], + [, "(\\d{5})(\\d{5})", "$1 $2", ["8"]], + ], + , + [, , "219\\d{4}", , , , "2190123", , , [7]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MV: [ + , + [, , "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", , , , , , , [7, 10]], + [ + , + , + "(?:3(?:0[0-4]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}", + , + , + , + "6701234", + , + , + [7], + ], + [, , "(?:46[46]|[79]\\d\\d)\\d{4}", , , , "7712345", , , [7]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "900\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MV", + 960, + "0(?:0|19)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "4(?:0[01]|50)\\d{4}", , , , "4001234", , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + MW: [ + , + [, , "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", , , , , , , [7, 9]], + [, , "(?:1[2-9]|2[12]\\d\\d)\\d{5}", , , , "1234567"], + [, , "111\\d{6}|(?:31|77|[89][89])\\d{7}", , , , "991234567", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MW", + 265, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[137-9]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MX: [ + , + [, , "[2-9]\\d{9}", , , , , , , [10], [7, 8]], + [ + , + , + "(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}", + , + , + , + "2001234567", + , + , + , + [7, 8], + ], + [ + , + , + "(?:2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}", + , + , + , + "2221234567", + , + , + , + [7, 8], + ], + [, , "8(?:00|88)\\d{7}", , , , "8001234567"], + [, , "900\\d{7}", , , , "9001234567"], + [, , "300\\d{7}", , , , "3001234567"], + [, , "500\\d{7}", , , , "5001234567"], + [, , , , , , , , , [-1]], + "MX", + 52, + "0[09]", + , + , + , + , + , + "00", + , + [ + [, "(\\d{5})", "$1", ["53"]], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]], + ], + [ + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MY: [ + , + [, , "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", , , , , , , [8, 9, 10], [6, 7]], + [ + , + , + "427[01]\\d{4}|(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}", + , + , + , + "323856789", + , + , + [8, 9], + [6, 7], + ], + [ + , + , + "1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-7]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}", + , + , + , + "123456789", + , + , + [9, 10], + ], + [, , "1[378]00\\d{6}", , , , "1300123456", , , [10]], + [, , "1600\\d{6}", , , , "1600123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}", + , + , + , + "1546012345", + , + , + [10], + ], + "MY", + 60, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1-$2 $3", + [ + "1(?:[02469]|[378][1-9]|53)|8", + "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8", + ], + "0$1", + ], + [, "(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], + [, "(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MZ: [ + , + [, , "(?:2|8\\d)\\d{7}", , , , , , , [8, 9]], + [ + , + , + "2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}", + , + , + , + "21123456", + , + , + [8], + ], + [, , "8[2-79]\\d{7}", , , , "821234567", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MZ", + 258, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NA: [ + , + [, , "[68]\\d{7,8}", , , , , , , [8, 9]], + [ + , + , + "64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}", + , + , + , + "61221234", + ], + [, , "(?:60|8[1245])\\d{7}", , , , "811234567", , , [9]], + [, , "80\\d{7}", , , , "800123456", , , [9]], + [, , "8701\\d{5}", , , , "870123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "8(?:3\\d\\d|86)\\d{5}", , , , "88612345"], + "NA", + 264, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NC: [ + , + [, , "(?:050|[2-57-9]\\d\\d)\\d{3}", , , , , , , [6]], + [, , "(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}", , , , "201234"], + [, , "(?:[579]\\d|8[0-79])\\d{4}", , , , "751234"], + [, , "050\\d{3}", , , , "050012"], + [, , "36\\d{4}", , , , "366711"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NC", + 687, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})", "$1", ["5[6-8]"]], + [, "(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]], + ], + [[, "(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NE: [ + , + [, , "[027-9]\\d{7}", , , , , , , [8]], + [ + , + , + "2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}", + , + , + , + "20201234", + ], + [, , "(?:23|7[0467]|[89]\\d)\\d{6}", , , , "93123456"], + [, , "08\\d{6}", , , , "08123456"], + [, , "09\\d{6}", , , , "09123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NE", + 227, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[089]|2[013]|7[0467]"], + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NF: [ + , + [, , "[13]\\d{5}", , , , , , , [6], [5]], + [, , "(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}", , , , "106609", , , , [5]], + [, , "(?:14|3[58])\\d{4}", , , , "381234", , , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NF", + 672, + "00", + , + , + , + "([0-258]\\d{4})$", + "3$1", + , + , + [ + [, "(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], + [, "(\\d)(\\d{5})", "$1 $2", ["[13]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NG: [ + , + [ + , + , + "(?:20|9\\d)\\d{8}|[78]\\d{9,13}", + , + , + , + , + , + , + [10, 11, 12, 13, 14], + [6, 7], + ], + [ + , + , + "20(?:[1259]\\d|3[013-9]|4[1-8]|6[024-689]|7[1-79]|8[2-9])\\d{6}", + , + , + , + "2033123456", + , + , + [10], + [6, 7], + ], + [ + , + , + "(?:702[0-24-9]|819[01])\\d{6}|(?:7(?:0[13-9]|[12]\\d)|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-6]))\\d{7}", + , + , + , + "8021234567", + , + , + [10], + ], + [, , "800\\d{7,11}", , , , "80017591759"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NG", + 234, + "009", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], + [, "(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], + [, "(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "700\\d{7,11}", , , , "7001234567"], + , + , + [, , , , , , , , , [-1]], + ], + NI: [ + , + [, , "(?:1800|[25-8]\\d{3})\\d{4}", , , , , , , [8]], + [, , "2\\d{7}", , , , "21234567"], + [ + , + , + "(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}", + , + , + , + "81234567", + ], + [, , "1800\\d{4}", , , , "18001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NI", + 505, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NL: [ + , + [ + , + , + "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 11], + ], + [ + , + , + "(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}", + , + , + , + "101234567", + , + , + [9], + ], + [, , "(?:6[1-58]|970\\d)\\d{7}", , , , "612345678", , , [9, 11]], + [, , "800\\d{4,7}", , , , "8001234", , , [7, 8, 9, 10]], + [, , "90[069]\\d{4,7}", , , , "9061234", , , [7, 8, 9, 10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:85|91)\\d{7}", , , , "851234567", , , [9]], + "NL", + 31, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})", "$1", ["1[238]|[34]"]], + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["14"]], + [, "(\\d{6})", "$1", ["1"]], + [, "(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], + [, "(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], + [ + , + "(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3", + ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], + [, "(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], + [ + , + "(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3", + ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"], + ], + [, , "66\\d{7}", , , , "662345678", , , [9]], + , + , + [ + , + , + "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\d", + , + , + , + , + , + , + [5, 6], + ], + [ + , + , + "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d", + , + , + , + "14020", + , + , + [5, 6, 9], + ], + , + , + [, , , , , , , , , [-1]], + ], + NO: [ + , + [, , "(?:0|[2-9]\\d{3})\\d{4}", , , , , , , [5, 8]], + [ + , + , + "(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}", + , + , + , + "21234567", + , + , + [8], + ], + [, , "(?:4[015-8]|9\\d)\\d{6}", , , , "40612345", , , [8]], + [, , "80[01]\\d{5}", , , , "80012345", , , [8]], + [, , "82[09]\\d{5}", , , , "82012345", , , [8]], + [, , "810(?:0[0-6]|[2-8]\\d)\\d{3}", , , , "81021234", , , [8]], + [, , "880\\d{5}", , , , "88012345", , , [8]], + [, , "85[0-5]\\d{5}", , , , "85012345", , , [8]], + "NO", + 47, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]], + ], + , + [, , , , , , , , , [-1]], + 1, + "[02-689]|7[0-8]", + [, , , , , , , , , [-1]], + [ + , + , + "(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}", + , + , + , + "02000", + ], + , + , + [, , "81[23]\\d{5}", , , , "81212345", , , [8]], + ], + NP: [ + , + [, , "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", , , , , , , [8, 10, 11], [6, 7]], + [ + , + , + "(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}", + , + , + , + "14567890", + , + , + [8], + [6, 7], + ], + [ + , + , + "9(?:00|6[0-3]|7[0-24-6]|8[0-24-68])\\d{7}", + , + , + , + "9841234567", + , + , + [10], + ], + [, , "1(?:66001|800\\d\\d)\\d{5}", , , , "16600101234", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NP", + 977, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], + [ + , + "(\\d{2})(\\d{6})", + "$1-$2", + ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], + "0$1", + ], + [, "(\\d{3})(\\d{7})", "$1-$2", ["9"]], + [, "(\\d{4})(\\d{2})(\\d{5})", "$1-$2-$3", ["1"]], + ], + [ + [, "(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], + [ + , + "(\\d{2})(\\d{6})", + "$1-$2", + ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], + "0$1", + ], + [, "(\\d{3})(\\d{7})", "$1-$2", ["9"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NR: [ + , + [, , "(?:222|444|(?:55|8\\d)\\d|666|777|999)\\d{4}", , , , , , , [7]], + [, , "444\\d{4}", , , , "4441234"], + [, , "(?:222|55[3-9]|666|777|8\\d\\d|999)\\d{4}", , , , "5551234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NR", + 674, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[24-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NU: [ + , + [, , "(?:[4-7]|888\\d)\\d{3}", , , , , , , [4, 7]], + [, , "[47]\\d{3}", , , , "7012", , , [4]], + [, , "(?:[56]|888[1-9])\\d{3}", , , , "8884012"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NU", + 683, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["8"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NZ: [ + , + [ + , + , + "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10], + ], + [ + , + , + "240\\d{5}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}", + , + , + , + "32345678", + , + , + [8], + [7], + ], + [ + , + , + "2(?:[0-27-9]\\d|6)\\d{6,7}|2(?:1\\d|75)\\d{5}", + , + , + , + "211234567", + , + , + [8, 9, 10], + ], + [, , "508\\d{6,7}|80\\d{6,8}", , , , "800123456", , , [8, 9, 10]], + [ + , + , + "(?:1[13-57-9]\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}", + , + , + , + "900123456", + , + , + [7, 8, 9, 10], + ], + [, , , , , , , , , [-1]], + [, , "70\\d{7}", , , , "701234567", , , [9]], + [, , , , , , , , , [-1]], + "NZ", + 64, + "0(?:0|161)", + "0", + , + , + "0", + , + "00", + , + [ + [, "(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], + [ + , + "(\\d{3})(\\d{2})(\\d{2,3})", + "$1 $2 $3", + ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], + "0$1", + ], + [ + , + "(\\d)(\\d{3})(\\d{4})", + "$1 $2 $3", + ["24|[346]|7[2-57-9]|9[2-9]"], + "0$1", + ], + [ + , + "(\\d{3})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["2(?:10|74)|[589]"], + "0$1", + ], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3,5})", + "$1 $2 $3", + ["2(?:[169]|7[0-35-9])|7"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "8(?:1[16-9]|22|3\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\d{2,7}", + , + , + , + "83012378", + ], + , + , + [, , , , , , , , , [-1]], + ], + OM: [ + , + [ + , + , + "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", + , + , + , + , + , + , + [7, 8, 9], + ], + [, , "2[1-6]\\d{6}", , , , "23123456", , , [8]], + [ + , + , + "1505\\d{4}|(?:7(?:[126-9]\\d|41)|9(?:0[1-9]|[1-9]\\d))\\d{5}", + , + , + , + "92123456", + , + , + [8], + ], + [, , "8007\\d{4,5}|(?:500|800[05])\\d{4}", , , , "80071234"], + [, , "900\\d{5}", , , , "90012345", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "OM", + 968, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], + [, "(\\d{2})(\\d{6})", "$1 $2", ["2"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[179]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PA: [ + , + [ + , + , + "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", + , + , + , + , + , + , + [7, 8, 10, 11], + ], + [ + , + , + "(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[058]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[047-9]\\d|1[0-8]|2[0-5]|33|5[0-35]|6[068])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[0156]|7[0-24-9]|8[4-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}", + , + , + , + "2001234", + , + , + [7], + ], + [ + , + , + "(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}", + , + , + , + "61234567", + , + , + [7, 8], + ], + [, , "800\\d{4,5}|(?:00800|800\\d)\\d{6}", , , , "8001234"], + [ + , + , + "(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}", + , + , + , + "8601234", + , + , + [7], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PA", + 507, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], + [, "(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PE: [ + , + [, , "(?:[14-8]|9\\d)\\d{7}", , , , , , , [8, 9], [6, 7]], + [ + , + , + "(?:(?:(?:4[34]|5[14])[0-8]|687)\\d|7(?:173|(?:3[0-8]|55)\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[0569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}", + , + , + , + "11234567", + , + , + [8], + [6, 7], + ], + [, , "9\\d{8}", , , , "912345678", , , [9]], + [, , "800\\d{5}", , , , "80012345", , , [8]], + [, , "805\\d{5}", , , , "80512345", , , [8]], + [, , "801\\d{5}", , , , "80112345", , , [8]], + [, , "80[24]\\d{5}", , , , "80212345", , , [8]], + [, , , , , , , , , [-1]], + "PE", + 51, + "00|19(?:1[124]|77|90)00", + "0", + " Anexo ", + , + "0", + , + "00", + , + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], + [, "(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], + [, "(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PF: [ + , + [, , "4\\d{5}(?:\\d{2})?|8\\d{7,8}", , , , , , , [6, 8, 9]], + [, , "4(?:0[4-689]|9[4-68])\\d{5}", , , , "40412345", , , [8]], + [, , "8[7-9]\\d{6}", , , , "87123456", , , [8]], + [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "499\\d{5}", , , , "49901234", , , [8]], + "PF", + 689, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "44\\d{4}", , , , , , , [6]], + [, , "44\\d{4}", , , , "440123", , , [6]], + , + , + [, , , , , , , , , [-1]], + ], + PG: [ + , + [ + , + , + "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", + , + , + , + , + , + , + [7, 8], + ], + [ + , + , + "(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}", + , + , + , + "3123456", + , + , + [7], + ], + [, , "(?:7\\d|8[1-48])\\d{6}", , , , "70123456", , , [8]], + [, , "180\\d{4}", , , , "1801234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "2(?:0[0-57]|7[568])\\d{4}", , , , "2751234", , , [7]], + "PG", + 675, + "00|140[1-3]", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[78]"]], + ], + , + [, , "27[01]\\d{4}", , , , "2700123", , , [7]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PH: [ + , + [ + , + , + "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", + , + , + , + , + , + , + [6, 8, 9, 10, 11, 12, 13], + [4, 5, 7], + ], + [ + , + , + "(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}", + , + , + , + "232345678", + , + , + [6, 8, 9, 10], + [4, 5, 7], + ], + [ + , + , + "(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}", + , + , + , + "9051234567", + , + , + [10], + ], + [, , "1800\\d{7,9}", , , , "180012345678", , , [11, 12, 13]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PH", + 63, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], + [ + , + "(\\d{4})(\\d{4,6})", + "$1 $2", + [ + "3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", + "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))", + ], + "(0$1)", + ], + [ + , + "(\\d{5})(\\d{4})", + "$1 $2", + ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], + "(0$1)", + ], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + [, "(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PK: [ + , + [ + , + , + "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", + , + , + , + , + , + , + [8, 9, 10, 11, 12], + [5, 6, 7], + ], + [ + , + , + "(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}", + , + , + , + "2123456789", + , + , + [9, 10], + [5, 6, 7, 8], + ], + [ + , + , + "3(?:[0-247]\\d|3[0-79]|55|64)\\d{7}", + , + , + , + "3012345678", + , + , + [10], + ], + [, , "800\\d{5}(?:\\d{3})?", , , , "80012345", , , [8, 11]], + [, , "900\\d{5}", , , , "90012345", , , [8]], + [, , , , , , , , , [-1]], + [, , "122\\d{6}", , , , "122044444", , , [9]], + [, , , , , , , , , [-1]], + "PK", + 92, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], + [, "(\\d{4})(\\d{5})", "$1 $2", ["1"]], + [ + , + "(\\d{3})(\\d{6,7})", + "$1 $2", + [ + "2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", + "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]", + ], + "(0$1)", + ], + [ + , + "(\\d{2})(\\d{7,8})", + "$1 $2", + ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], + "(0$1)", + ], + [, "(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3 $4", + ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], + "(0$1)", + ], + [ + , + "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3 $4", + ["[24-9]"], + "(0$1)", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}", + , + , + , + "21111825888", + , + , + [11, 12], + ], + , + , + [, , , , , , , , , [-1]], + ], + PL: [ + , + [ + , + , + "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10], + ], + [ + , + , + "47\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))", + , + , + , + "123456789", + , + , + [7, 9], + ], + [ + , + , + "2131[89]\\d{4}|21(?:1[013-5]|2\\d|3[2-9])\\d{5}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}", + , + , + , + "512345678", + , + , + [9], + ], + [, , "800\\d{6,7}", , , , "800123456", , , [9, 10]], + [, , "70[01346-8]\\d{6}", , , , "701234567", , , [9]], + [, , "801\\d{6}", , , , "801234567", , , [9]], + [, , , , , , , , , [-1]], + [, , "39\\d{7}", , , , "391234567", , , [9]], + "PL", + 48, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{5})", "$1", ["19"]], + [, "(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], + [ + , + "(\\d{2})(\\d{2})(\\d{3})", + "$1 $2 $3", + [ + "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", + "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19", + ], + ], + [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], + [ + , + "(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3", + ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"], + ], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["1[2-8]|[2-7]|8[1-79]|9[145]"], + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]], + ], + , + [, , "64\\d{4,7}", , , , "641234567", , , [6, 7, 8, 9]], + , + , + [, , , , , , , , , [-1]], + [, , "804\\d{6}", , , , "804123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + PM: [ + , + [, , "[45]\\d{5}|(?:708|8\\d\\d)\\d{6}", , , , , , , [6, 9]], + [, , "(?:4[1-35-9]|5[0-47-9]|80[6-9]\\d\\d)\\d{4}", , , , "430123"], + [ + , + , + "(?:4[02-489]|5[02-9]|708(?:4[0-5]|5[0-6]))\\d{4}", + , + , + , + "551234", + ], + [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], + [, , "8[129]\\d{7}", , , , "810123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PM", + 508, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PR: [ + , + [, , "(?:[589]\\d\\d|787)\\d{7}", , , , , , , [10], [7]], + [, , "(?:787|939)[2-9]\\d{6}", , , , "7872345678", , , , [7]], + [, , "(?:787|939)[2-9]\\d{6}", , , , "7872345678", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "PR", + 1, + "011", + "1", + , + , + "1", + , + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "787|939", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PS: [ + , + [, , "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", , , , , , , [8, 9, 10], [7]], + [ + , + , + "(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}", + , + , + , + "22234567", + , + , + [8], + [7], + ], + [, , "5[69]\\d{7}", , , , "599123456", , , [9]], + [, , "1800\\d{6}", , , , "1800123456", , , [10]], + [, , , , , , , , , [-1]], + [, , "1700\\d{6}", , , , "1700123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PS", + 970, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PT: [ + , + [, , "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", , , , , , , [9]], + [ + , + , + "2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}", + , + , + , + "212345678", + ], + [ + , + , + "6(?:[06]92(?:30|9\\d)|[35]92(?:[049]\\d|3[034]))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}", + , + , + , + "912345678", + ], + [, , "80[02]\\d{6}", , , , "800123456"], + [ + , + , + "(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}", + , + , + , + "760123456", + ], + [, , "80(?:8\\d|9[1579])\\d{5}", , , , "808123456"], + [, , "884[0-4689]\\d{5}", , , , "884123456"], + [, , "30\\d{7}", , , , "301234567"], + "PT", + 351, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]], + ], + , + [, , "6(?:222\\d|89(?:00|88|99))\\d{4}", , , , "622212345"], + , + , + [, , , , , , , , , [-1]], + [, , "70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}", , , , "707123456"], + , + , + [, , "600\\d{6}|6[06]92(?:0\\d|3[349]|49)\\d{3}", , , , "600110000"], + ], + PW: [ + , + [, , "(?:[24-8]\\d\\d|345|900)\\d{4}", , , , , , , [7]], + [ + , + , + "(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}", + , + , + , + "2771234", + ], + [ + , + , + "(?:(?:46|83)[0-5]|(?:6[2-4689]|78)0)\\d{4}|(?:45|77|88)\\d{5}", + , + , + , + "6201234", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PW", + 680, + "01[12]", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PY: [ + , + [ + , + , + "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11], + [5], + ], + [ + , + , + "(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}", + , + , + , + "212345678", + , + , + [7, 8, 9], + [5, 6], + ], + [ + , + , + "9(?:51|6[129]|7[1-6]|8[1-7]|9[1-5])\\d{6}", + , + , + , + "961456789", + , + , + [9], + ], + [, , "9800\\d{5,7}", , , , "98000123456", , , [9, 10, 11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "8700[0-4]\\d{4}", , , , "870012345", , , [9]], + "PY", + 595, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], + [ + , + "(\\d{2})(\\d{5})", + "$1 $2", + ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], + "(0$1)", + ], + [ + , + "(\\d{3})(\\d{4,5})", + "$1 $2", + ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], + "(0$1)", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], + "(0$1)", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], + [, "(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "[2-9]0\\d{4,7}", , , , "201234567", , , [6, 7, 8, 9]], + , + , + [, , , , , , , , , [-1]], + ], + QA: [ + , + [ + , + , + "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", + , + , + , + , + , + , + [7, 8, 9, 11], + ], + [ + , + , + "4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}", + , + , + , + "44123456", + , + , + [8], + ], + [, , "[35-7]\\d{7}", , , , "33123456", , , [8]], + [ + , + , + "800\\d{4}|(?:0080[01]|800)\\d{6}", + , + , + , + "8001234", + , + , + [7, 9, 11], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "QA", + 974, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["2[136]|8"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]], + ], + , + [, , "2[136]\\d{5}", , , , "2123456", , , [7]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + RE: [ + , + [, , "709\\d{6}|(?:26|[689]\\d)\\d{7}", , , , , , , [9]], + [, , "26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}", , , , "262161234"], + [ + , + , + "(?:69(?:2\\d\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}", + , + , + , + "692123456", + ], + [, , "80\\d{7}", , , , "801234567"], + [, , "89[1-37-9]\\d{6}", , , , "891123456"], + [, , "8(?:1[019]|2[0156]|84|90)\\d{6}", , , , "810123456"], + [, , , , , , , , , [-1]], + [ + , + , + "9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\d{4}", + , + , + , + "939901234", + ], + "RE", + 262, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[26-9]"], + "0$1", + ], + ], + , + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + RO: [ + , + [, , "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", , , , , , , [6, 9]], + [ + , + , + "[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d", + , + , + , + "211234567", + ], + [ + , + , + "(?:630|702)0\\d{5}|(?:6(?:00|2\\d)|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-39]))\\d{6}", + , + , + , + "712034567", + , + , + [9], + ], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "90[0136]\\d{6}", , , , "900123456", , , [9]], + [, , "801\\d{6}", , , , "801123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "RO", + 40, + "00", + "0", + " int ", + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], + [, "(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:37\\d|80[578])\\d{6}", , , , "372123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + RS: [ + , + [ + , + , + "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11, 12], + [4, 5], + ], + [ + , + , + "(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}", + , + , + , + "10234567", + , + , + [7, 8, 9, 10, 11, 12], + [4, 5, 6], + ], + [, , "6(?:[0-689]|7\\d)\\d{6,7}", , , , "601234567", , , [8, 9, 10]], + [, , "800\\d{3,9}", , , , "80012345"], + [ + , + , + "(?:78\\d|90[0169])\\d{3,7}", + , + , + , + "90012345", + , + , + [6, 7, 8, 9, 10], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "RS", + 381, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], + [, "(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "7[06]\\d{4,10}", , , , "700123456"], + , + , + [, , , , , , , , , [-1]], + ], + RU: [ + , + [, , "8\\d{13}|[347-9]\\d{9}", , , , , , , [10, 14], [7]], + [ + , + , + "336(?:[013-9]\\d|2[013-9])\\d{5}|(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15-7]|6[0-35-79]|7[1-37-9]))\\d{7}", + , + , + , + "3011234567", + , + , + [10], + [7], + ], + [, , "9\\d{9}", , , , "9123456789", , , [10]], + [, , "8(?:0[04]|108\\d{3})\\d{7}", , , , "8001234567"], + [, , "80[39]\\d{7}", , , , "8091234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "808\\d{7}", , , , "8081234567", , , [10]], + [, , , , , , , , , [-1]], + "RU", + 7, + "810", + "8", + , + , + "8", + , + "8~10", + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})", "$1-$2-$3", ["[0-79]"]], + [ + , + "(\\d{4})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-8]|2[1-9])", + "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", + "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2", + ], + "8 ($1)", + , + 1, + ], + [ + , + "(\\d{5})(\\d)(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-68]|2[1-9])", + "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", + "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]", + ], + "8 ($1)", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", , 1], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2-$3-$4", + ["[349]|8(?:[02-7]|1[1-8])"], + "8 ($1)", + , + 1, + ], + [ + , + "(\\d{4})(\\d{4})(\\d{3})(\\d{3})", + "$1 $2 $3 $4", + ["8"], + "8 ($1)", + ], + ], + [ + [ + , + "(\\d{4})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-8]|2[1-9])", + "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", + "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2", + ], + "8 ($1)", + , + 1, + ], + [ + , + "(\\d{5})(\\d)(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-68]|2[1-9])", + "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", + "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]", + ], + "8 ($1)", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", , 1], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2-$3-$4", + ["[349]|8(?:[02-7]|1[1-8])"], + "8 ($1)", + , + 1, + ], + [ + , + "(\\d{4})(\\d{4})(\\d{3})(\\d{3})", + "$1 $2 $3 $4", + ["8"], + "8 ($1)", + ], + ], + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + RW: [ + , + [, , "(?:06|[27]\\d\\d|[89]00)\\d{6}", , , , , , , [8, 9]], + [, , "(?:06|2[23568]\\d)\\d{6}", , , , "250123456"], + [, , "7[237-9]\\d{7}", , , , "720123456", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "900\\d{6}", , , , "900123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "RW", + 250, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SA: [ + , + [, , "(?:[15]\\d|800|92)\\d{7}", , , , , , , [9, 10], [7]], + [ + , + , + "1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}", + , + , + , + "112345678", + , + , + [9], + [7], + ], + [ + , + , + "579[01]\\d{5}|5(?:[013-689]\\d|7[0-8])\\d{6}", + , + , + , + "512345678", + , + , + [9], + ], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "925\\d{6}", , , , "925012345", , , [9]], + [, , "920\\d{6}", , , , "920012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SA", + 966, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{5})", "$1 $2", ["9"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SB: [ + , + [, , "[6-9]\\d{6}|[1-6]\\d{4}", , , , , , , [5, 7]], + [ + , + , + "(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}", + , + , + , + "40123", + , + , + [5], + ], + [ + , + , + "48\\d{3}|(?:(?:6[89]|7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}", + , + , + , + "7421234", + ], + [, , "1[38]\\d{3}", , , , "18123", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "5[12]\\d{3}", , , , "51123", , , [5]], + "SB", + 677, + "0[01]", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SC: [ + , + [, , "(?:[2489]\\d|64)\\d{5}", , , , , , , [7]], + [, , "4[2-46]\\d{5}", , , , "4217123"], + [, , "2[125-8]\\d{5}", , , , "2510123"], + [, , "800[08]\\d{3}", , , , "8000000"], + [, , "85\\d{5}", , , , "8512345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "971\\d{4}|(?:64|95)\\d{5}", , , , "6412345"], + "SC", + 248, + "010|0[0-2]", + , + , + , + , + , + "00", + , + [[, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SD: [ + , + [, , "[19]\\d{8}", , , , , , , [9]], + [, , "1(?:5\\d|8[35-7])\\d{6}", , , , "153123456"], + [, , "(?:1[0-2]|9[0-3569])\\d{7}", , , , "911231234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SD", + 249, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SE: [ + , + [ + , + , + "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 12], + ], + [ + , + , + "(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}", + , + , + , + "8123456", + , + , + [7, 8, 9], + ], + [, , "7[02369]\\d{7}", , , , "701234567", , , [9]], + [, , "20\\d{4,7}", , , , "20123456", , , [6, 7, 8, 9]], + [ + , + , + "649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}", + , + , + , + "9001234567", + , + , + [7, 8, 9, 10], + ], + [, , "77[0-7]\\d{6}", , , , "771234567", , , [9]], + [, , "75[1-8]\\d{6}", , , , "751234567", , , [9]], + [, , , , , , , , , [-1]], + "SE", + 46, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})", + "$1-$2 $3", + ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], + "0$1", + ], + [, "(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1"], + [ + , + "(\\d{3})(\\d{2,3})(\\d{2})", + "$1-$2 $3", + [ + "1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", + ], + "0$1", + ], + [ + , + "(\\d{3})(\\d{2,3})(\\d{3})", + "$1-$2 $3", + ["9(?:00|39|44)"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", + "$1-$2 $3 $4", + ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1-$2 $3 $4", + ["10|7"], + "0$1", + ], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1"], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1-$2 $3 $4", + [ + "[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", + ], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1"], + [ + , + "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1-$2 $3 $4 $5", + ["[26]"], + "0$1", + ], + ], + [ + [, "(\\d{2})(\\d{2,3})(\\d{2})", "$1 $2 $3", ["20"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["9(?:00|39|44|9)"]], + [ + , + "(\\d{2})(\\d{3})(\\d{2})", + "$1 $2 $3", + ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], + ], + [, "(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + [ + , + "(\\d{3})(\\d{2,3})(\\d{2})", + "$1 $2 $3", + [ + "1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", + ], + ], + [, "(\\d{3})(\\d{2,3})(\\d{3})", "$1 $2 $3", ["9(?:00|39|44)"]], + [ + , + "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], + ], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["10|7"]], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["8"]], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", + ], + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["9"]], + [ + , + "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4 $5", + ["[26]"], + ], + ], + [, , "74[02-9]\\d{6}", , , , "740123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + [, , "10[1-8]\\d{6}", , , , "102345678", , , [9]], + , + , + [, , "(?:25[245]|67[3-68])\\d{9}", , , , "254123456789", , , [12]], + ], + SG: [ + , + [ + , + , + "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", + , + , + , + , + , + , + [8, 10, 11], + ], + [ + , + , + "662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}", + , + , + , + "61234567", + , + , + [8], + ], + [ + , + , + "89(?:7[0-689]|80)\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-6])|9[0-8]\\d)\\d{5}", + , + , + , + "81234567", + , + , + [8], + ], + [, , "(?:18|8)00\\d{7}", , , , "18001234567", , , [10, 11]], + [, , "1900\\d{7}", , , , "19001234567", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:3[12]\\d|666)\\d{5}", , , , "31234567", , , [8]], + "SG", + 65, + "0[0-3]\\d", + , + , + , + , + , + , + , + [ + [ + , + "(\\d{4,5})", + "$1", + ["1[013-9]|77", "1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"], + ], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + [, "(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + ], + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + [, "(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "7000\\d{7}", , , , "70001234567", , , [11]], + , + , + [, , , , , , , , , [-1]], + ], + SH: [ + , + [, , "(?:[256]\\d|8)\\d{3}", , , , , , , [4, 5]], + [, , "2(?:[0-57-9]\\d|6[4-9])\\d\\d", , , , "22158"], + [, , "[56]\\d{4}", , , , "51234", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "262\\d\\d", , , , "26212", , , [5]], + "SH", + 290, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + 1, + "[256]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SI: [ + , + [, , "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", , , , , , , [5, 6, 7, 8]], + [, , "(?:[1-357][2-8]|4[24-8])\\d{6}", , , , "12345678", , , [8], [7]], + [ + , + , + "65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}", + , + , + , + "31234567", + , + , + [8], + ], + [, , "80\\d{4,6}", , , , "80123456", , , [6, 7, 8]], + [, , "89[1-3]\\d{2,5}|90\\d{4,6}", , , , "90123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}", + , + , + , + "59012345", + , + , + [8], + ], + "SI", + 386, + "00|10(?:22|66|88|99)", + "0", + , + , + "0", + , + "00", + , + [ + [, "(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], + [, "(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3})", + "$1 $2 $3", + ["[37][01]|4[0139]|51|6"], + "0$1", + ], + [ + , + "(\\d)(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[1-57]"], + "(0$1)", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SJ: [ + , + [, , "0\\d{4}|(?:[489]\\d|79)\\d{6}", , , , , , , [5, 8]], + [, , "79\\d{6}", , , , "79123456", , , [8]], + [, , "(?:4[015-8]|9\\d)\\d{6}", , , , "41234567", , , [8]], + [, , "80[01]\\d{5}", , , , "80012345", , , [8]], + [, , "82[09]\\d{5}", , , , "82012345", , , [8]], + [, , "810(?:0[0-6]|[2-8]\\d)\\d{3}", , , , "81021234", , , [8]], + [, , "880\\d{5}", , , , "88012345", , , [8]], + [, , "85[0-5]\\d{5}", , , , "85012345", , , [8]], + "SJ", + 47, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "79", + [, , , , , , , , , [-1]], + [ + , + , + "(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}", + , + , + , + "02000", + ], + , + , + [, , "81[23]\\d{5}", , , , "81212345", , , [8]], + ], + SK: [ + , + [, , "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", , , , , , , [6, 7, 9]], + [ + , + , + "(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d", + , + , + , + "221234567", + ], + [ + , + , + "909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}", + , + , + , + "912123456", + , + , + [9], + ], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "9(?:00|[78]\\d)\\d{6}", , , , "900123456", , , [9]], + [, , "8[5-9]\\d{7}", , , , "850123456", , , [9]], + [, , , , , , , , , [-1]], + [, , "6(?:02|5[0-4]|9[0-6])\\d{6}", , , , "690123456", , , [9]], + "SK", + 421, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], + [ + , + "(\\d{2})(\\d{2})(\\d{2,3})", + "$1 $2 $3", + ["[3-5][1-8]1", "[3-5][1-8]1[67]"], + "0$1", + ], + [, "(\\d{4})(\\d{3})", "$1 $2", ["909", "9090"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1/$2 $3 $4", + ["[3-5]"], + "0$1", + ], + ], + [ + [, "(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], + [ + , + "(\\d{2})(\\d{2})(\\d{2,3})", + "$1 $2 $3", + ["[3-5][1-8]1", "[3-5][1-8]1[67]"], + "0$1", + ], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1/$2 $3 $4", + ["[3-5]"], + "0$1", + ], + ], + [, , "9090\\d{3}", , , , "9090123", , , [7]], + , + , + [ + , + , + "9090\\d{3}|(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}", + , + , + , + , + , + , + [7, 9], + ], + [, , "96\\d{7}", , , , "961234567", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + SL: [ + , + [, , "(?:[237-9]\\d|66)\\d{6}", , , , , , , [8], [6]], + [, , "22[2-4][2-9]\\d{4}", , , , "22221234", , , , [6]], + [, , "(?:25|3[0-5]|66|7[1-9]|8[08]|9[09])\\d{6}", , , , "25123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SL", + 232, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SM: [ + , + [, , "(?:0549|[5-7]\\d)\\d{6}", , , , , , , [8, 10], [6]], + [, , "0549(?:8[0157-9]|9\\d)\\d{4}", , , , "0549886377", , , [10], [6]], + [, , "6[16]\\d{6}", , , , "66661212", , , [8]], + [, , , , , , , , , [-1]], + [, , "7[178]\\d{6}", , , , "71123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "5[158]\\d{6}", , , , "58001110", , , [8]], + "SM", + 378, + "00", + , + , + , + "([89]\\d{5})$", + "0549$1", + , + , + [ + [, "(\\d{6})", "$1", ["[89]"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], + [, "(\\d{4})(\\d{6})", "$1 $2", ["0"]], + ], + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], + [, "(\\d{4})(\\d{6})", "$1 $2", ["0"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SN: [ + , + [, , "(?:[378]\\d|93)\\d{7}", , , , , , , [9]], + [ + , + , + "3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}", + , + , + , + "301012345", + ], + [ + , + , + "7(?:(?:[06-8]\\d|[19]0|21)\\d|5(?:0[01]|[19]0|2[25]|3[356]|[4-7]\\d|8[35]))\\d{5}", + , + , + , + "701234567", + ], + [, , "800\\d{6}", , , , "800123456"], + [, , "88[4689]\\d{6}", , , , "884123456"], + [, , "81[02468]\\d{6}", , , , "810123456"], + [, , , , , , , , , [-1]], + [ + , + , + "(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}", + , + , + , + "933301234", + ], + "SN", + 221, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SO: [ + , + [ + , + , + "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9], + ], + [ + , + , + "(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}", + , + , + , + "4012345", + , + , + [6, 7], + ], + [ + , + , + "(?:(?:15|(?:3[59]|4[89]|6\\d|7[679]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}", + , + , + , + "71123456", + , + , + [7, 8, 9], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SO", + 252, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], + [, "(\\d{6})", "$1", ["[134]"]], + [, "(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], + [, "(\\d)(\\d{7})", "$1 $2", ["(?:2|90)4|[67]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], + [, "(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|7[67]|9[2-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SR: [ + , + [, , "(?:[2-5]|68|[78]\\d|90)\\d{5}", , , , , , , [6, 7]], + [, , "(?:2[1-3]|3[0-7]|(?:4|68)\\d|5[2-58])\\d{4}", , , , "211234"], + [, , "(?:7[124-7]|8[1-9])\\d{5}", , , , "7412345", , , [7]], + [, , "80\\d{5}", , , , "8012345", , , [7]], + [, , "90\\d{5}", , , , "9012345", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "56\\d{4}", , , , "561234", , , [6]], + "SR", + 597, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], + [, "(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], + [, "(\\d{3})(\\d{4})", "$1-$2", ["[6-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SS: [ + , + [, , "[19]\\d{8}", , , , , , , [9]], + [, , "1[89]\\d{7}", , , , "181234567"], + [, , "(?:12|9[1257-9])\\d{7}", , , , "977123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SS", + 211, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ST: [ + , + [, , "(?:22|9\\d)\\d{5}", , , , , , , [7]], + [, , "22\\d{5}", , , , "2221234"], + [, , "900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}", , , , "9812345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ST", + 239, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SV: [ + , + [ + , + , + "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", + , + , + , + , + , + , + [7, 8, 11], + ], + [ + , + , + "2(?:79(?:0[0347-9]|[1-9]\\d)|89(?:0[024589]|[1-9]\\d))\\d{3}|2(?:[1-69]\\d|[78][0-8])\\d{5}", + , + , + , + "21234567", + , + , + [8], + ], + [, , "[67]\\d{7}", , , , "70123456", , , [8]], + [, , "800\\d{8}|80[01]\\d{4}", , , , "8001234", , , [7, 11]], + [, , "900\\d{4}(?:\\d{4})?", , , , "9001234", , , [7, 11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SV", + 503, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SX: [ + , + [, , "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "7215(?:4[2-8]|8[239]|9[056])\\d{4}", + , + , + , + "7215425678", + , + , + , + [7], + ], + [ + , + , + "7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}", + , + , + , + "7215205678", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "SX", + 1, + "011", + "1", + , + , + "(5\\d{6})$|1", + "721$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "721", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SY: [ + , + [, , "[1-359]\\d{8}|[1-5]\\d{7}", , , , , , , [8, 9], [6, 7]], + [ + , + , + "21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}", + , + , + , + "112345678", + , + , + , + [6, 7], + ], + [, , "(?:50|9[1-9])\\d{7}", , , , "944567890", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SY", + 963, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["[1-4]|5[1-3]"], + "0$1", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[59]"], "0$1", , 1], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SZ: [ + , + [, , "0800\\d{4}|(?:[237]\\d|900)\\d{6}", , , , , , , [8, 9]], + [, , "[23][2-5]\\d{6}", , , , "22171234", , , [8]], + [, , "7[5-9]\\d{6}", , , , "76123456", , , [8]], + [, , "0800\\d{4}", , , , "08001234", , , [8]], + [, , "900\\d{6}", , , , "900012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "70\\d{6}", , , , "70012345", , , [8]], + "SZ", + 268, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], + [, "(\\d{5})(\\d{4})", "$1 $2", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "0800\\d{4}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TA: [ + , + [, , "8\\d{3}", , , , , , , [4]], + [, , "8\\d{3}", , , , "8999"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TA", + 290, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "8", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TC: [ + , + [, , "(?:[58]\\d\\d|649|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "649(?:266|712|9(?:4\\d|50))\\d{4}", + , + , + , + "6497121234", + , + , + , + [7], + ], + [ + , + , + "649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}", + , + , + , + "6492311234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "649(?:71[01]|966)\\d{4}", , , , "6497101234", , , , [7]], + "TC", + 1, + "011", + "1", + , + , + "([2-479]\\d{6})$|1", + "649$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "649", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TD: [ + , + [, , "(?:22|30|[689]\\d|77)\\d{6}", , , , , , , [8]], + [, , "22(?:[37-9]0|5[0-5]|6[89])\\d{4}", , , , "22501234"], + [, , "(?:30|[69]\\d|77|8[56])\\d{6}", , , , "63012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TD", + 235, + "00|16", + , + , + , + , + , + "00", + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[236-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TG: [ + , + [, , "[279]\\d{7}", , , , , , , [8]], + [, , "2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}", , , , "22212345"], + [, , "(?:7[0-29]|9[0-36-9])\\d{6}", , , , "90112345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TG", + 228, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TH: [ + , + [ + , + , + "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", + , + , + , + , + , + , + [8, 9, 10, 13], + ], + [ + , + , + "(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}", + , + , + , + "21234567", + , + , + [8], + ], + [ + , + , + "67(?:1[0-8]|2[4-7])\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}", + , + , + , + "812345678", + , + , + [9], + ], + [, , "(?:001800\\d|1800)\\d{6}", , , , "1800123456", , , [10, 13]], + [, , "1900\\d{6}", , , , "1900123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "6[08]\\d{7}", , , , "601234567", , , [9]], + "TH", + 66, + "00[1-9]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TJ: [ + , + [, , "[0-57-9]\\d{8}", , , , , , , [9], [3, 5, 6, 7]], + [ + , + , + "(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}", + , + , + , + "372123456", + , + , + , + [3, 5, 6, 7], + ], + [ + , + , + "(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\d{6}|(?:[09]\\d|1[0-27-9]|2[0-27]|[34]0|5[05]|7[01578]|8[078])\\d{7}", + , + , + , + "917123456", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TJ", + 992, + "810", + , + , + , + , + , + "8~10", + , + [ + [, "(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], + [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], + [, "(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TK: [ + , + [, , "[2-47]\\d{3,6}", , , , , , , [4, 5, 6, 7]], + [, , "(?:2[2-4]|[34]\\d)\\d{2,5}", , , , "3101"], + [, , "7[2-4]\\d{2,5}", , , , "7290"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TK", + 690, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TL: [ + , + [, , "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", , , , , , , [7, 8]], + [, , "(?:2[1-5]|3[1-9]|4[1-4])\\d{5}", , , , "2112345", , , [7]], + [, , "7[2-8]\\d{6}", , , , "77212345", , , [8]], + [, , "80\\d{5}", , , , "8012345", , , [7]], + [, , "90\\d{5}", , , , "9012345", , , [7]], + [, , , , , , , , , [-1]], + [, , "70\\d{5}", , , , "7012345", , , [7]], + [, , , , , , , , , [-1]], + "TL", + 670, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["7"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TM: [ + , + [, , "(?:[1-6]\\d|71)\\d{6}", , , , , , , [8]], + [ + , + , + "(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}", + , + , + , + "12345678", + ], + [, , "(?:6\\d|71)\\d{6}", , , , "66123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TM", + 993, + "810", + "8", + , + , + "8", + , + "8~10", + , + [ + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2-$3-$4", + ["12"], + "(8 $1)", + ], + [ + , + "(\\d{3})(\\d)(\\d{2})(\\d{2})", + "$1 $2-$3-$4", + ["[1-5]"], + "(8 $1)", + ], + [, "(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TN: [ + , + [, , "[2-57-9]\\d{7}", , , , , , , [8]], + [, , "81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}", , , , "30010123"], + [ + , + , + "3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-8])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}", + , + , + , + "20123456", + ], + [, , "8010\\d{4}", , , , "80101234"], + [, , "88\\d{6}", , , , "88123456"], + [, , "8[12]10\\d{4}", , , , "81101234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TN", + 216, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TO: [ + , + [ + , + , + "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", + , + , + , + , + , + , + [5, 7], + ], + [ + , + , + "(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}", + , + , + , + "20123", + , + , + [5], + ], + [ + , + , + "(?:5(?:4[0-5]|5[4-6])|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}", + , + , + , + "7715123", + , + , + [7], + ], + [, , "0800\\d{3}", , , , "0800222", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "55[0-37-9]\\d{4}", , , , "5510123", , , [7]], + "TO", + 676, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], + [, "(\\d{4})(\\d{3})", "$1 $2", ["0"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TR: [ + , + [ + , + , + "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", + , + , + , + , + , + , + [7, 10, 12, 13], + ], + [ + , + , + "(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}", + , + , + , + "2123456789", + , + , + [10], + ], + [ + , + , + "561(?:011|61\\d)\\d{4}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}", + , + , + , + "5012345678", + , + , + [10], + ], + [ + , + , + "8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})", + , + , + , + "8001234567", + , + , + [10, 12, 13], + ], + [, , "(?:8[89]8|900)\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "592(?:21[12]|461)\\d{4}", , , , "5922121234", , , [10]], + [, , "850\\d{7}", , , , "8500123456", , , [10]], + "TR", + 90, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d)(\\d{3})", "$1 $2 $3", ["444"], , , 1], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["512|8[01589]|90"], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[24][1-8]|3[1-9]"], + "(0$1)", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", , 1], + ], + [ + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["512|8[01589]|90"], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[24][1-8]|3[1-9]"], + "(0$1)", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", , 1], + ], + [, , "512\\d{7}", , , , "5123456789", , , [10]], + , + , + [, , "(?:444|811\\d{3})\\d{4}", , , , , , , [7, 10]], + [, , "444\\d{4}", , , , "4441444", , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + TT: [ + , + [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "868(?:2(?:01|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}", + , + , + , + "8682211234", + , + , + , + [7], + ], + [ + , + , + "868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}", + , + , + , + "8682911234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "TT", + 1, + "011", + "1", + , + , + "([2-46-8]\\d{6})$|1", + "868$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "868", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "868619\\d{4}", , , , "8686191234", , , , [7]], + ], + TV: [ + , + [, , "(?:2|7\\d\\d|90)\\d{4}", , , , , , , [5, 6, 7]], + [, , "2[02-9]\\d{3}", , , , "20123", , , [5]], + [, , "(?:7[01]\\d|90)\\d{4}", , , , "901234", , , [6, 7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TV", + 688, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})", "$1 $2", ["2"]], + [, "(\\d{2})(\\d{4})", "$1 $2", ["90"]], + [, "(\\d{2})(\\d{5})", "$1 $2", ["7"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TW: [ + , + [ + , + , + "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", + , + , + , + , + , + , + [7, 8, 9, 10, 11], + ], + [ + , + , + "(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}", + , + , + , + "221234567", + , + , + [8, 9], + ], + [, , "(?:40001[0-2]|9[0-8]\\d{4})\\d{3}", , , , "912345678", , , [9]], + [, , "80[0-79]\\d{6}|800\\d{5}", , , , "800123456", , , [8, 9]], + [, , "20(?:[013-9]\\d\\d|2)\\d{4}", , , , "203123456", , , [7, 9]], + [, , , , , , , , , [-1]], + [, , "99\\d{7}", , , , "990123456", , , [9]], + [ + , + , + "7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}", + , + , + , + "7012345678", + , + , + [10, 11], + ], + "TW", + 886, + "0(?:0[25-79]|19)", + "0", + "#", + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], + [ + , + "(\\d)(\\d{3,4})(\\d{4})", + "$1 $2 $3", + [ + "[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", + "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]", + ], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "50[0-46-9]\\d{6}", , , , "500123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + TZ: [ + , + [, , "(?:[25-8]\\d|41|90)\\d{7}", , , , , , , [9]], + [, , "2[2-8]\\d{7}", , , , "222345678"], + [, , "(?:6[125-9]|7[13-9])\\d{7}", , , , "621234567"], + [, , "80[08]\\d{6}", , , , "800123456"], + [, , "90\\d{7}", , , , "900123456"], + [, , "8(?:40|6[01])\\d{6}", , , , "840123456"], + [, , , , , , , , , [-1]], + [, , "41\\d{7}", , , , "412345678"], + "TZ", + 255, + "00[056]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["5"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "(?:8(?:[04]0|6[01])|90\\d)\\d{6}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UA: [ + , + [, , "[89]\\d{9}|[3-9]\\d{8}", , , , , , , [9, 10], [5, 6, 7]], + [ + , + , + "(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}", + , + , + , + "311234567", + , + , + [9], + [5, 6, 7], + ], + [ + , + , + "790\\d{6}|(?:39|50|6[36-8]|7[1-357]|9[1-9])\\d{7}", + , + , + , + "501234567", + , + , + [9], + ], + [, , "800[1-8]\\d{5,6}", , , , "800123456"], + [, , "900[239]\\d{5,6}", , , , "900212345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "89[1-579]\\d{6}", , , , "891234567", , , [9]], + "UA", + 380, + "00", + "0", + , + , + "0", + , + "0~0", + , + [ + [ + , + "(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3", + [ + "6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", + "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]", + ], + "0$1", + ], + [ + , + "(\\d{4})(\\d{5})", + "$1 $2", + [ + "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", + "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])", + ], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["[3-7]|89|9[1-9]"], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UG: [ + , + [, , "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", , , , , , , [9], [5, 6, 7]], + [ + , + , + "20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}", + , + , + , + "312345678", + , + , + , + [5, 6, 7], + ], + [ + , + , + "72[48]0\\d{5}|7(?:[014-8]\\d|2[067]|36|9[0189])\\d{6}", + , + , + , + "712345678", + ], + [, , "800[1-3]\\d{5}", , , , "800123456"], + [, , "90[1-3]\\d{6}", , , , "901123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "UG", + 256, + "00[057]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], + [, "(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + US: [ + , + [, , "[2-9]\\d{9}|3\\d{6}", , , , , , , [10], [7]], + [ + , + , + "(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[0-68]))\\d{4}|(?:2742|305[3-9]|(?:472|983)[2-47-9]|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}", + , + , + , + "2015550123", + , + , + , + [7], + ], + [ + , + , + "(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[0-68]))\\d{4}|(?:2742|305[3-9]|(?:472|983)[2-47-9]|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}", + , + , + , + "2015550123", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "305209\\d{4}", , , , "3052090123", , , , [7]], + "US", + 1, + "011", + "1", + , + , + "1", + , + , + 1, + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["310"], , , 1], + [, "(\\d{3})(\\d{4})", "$1-$2", ["[24-9]|3(?:[02-9]|1[1-9])"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], , , 1], + ], + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["310"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-9]"]], + ], + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UY: [ + , + [ + , + , + "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11, 12, 13], + ], + [ + , + , + "(?:1(?:770|9(?:20|[89]7))|(?:2\\d|4[2-7])\\d\\d)\\d{4}", + , + , + , + "21231234", + , + , + [8], + [7], + ], + [, , "9[1-9]\\d{6}", , , , "94231234", , , [8]], + [, , "0004\\d{2,9}|(?:405|80[05])\\d{4}", , , , "8001234"], + [, , "90[0-8]\\d{4}", , , , "9001234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "UY", + 598, + "0(?:0|1[3-9]\\d)", + "0", + " int. ", + , + "0", + , + "00", + , + [ + [, "(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], + [, "(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UZ: [ + , + [, , "(?:20|33|[5-9]\\d)\\d{7}", , , , , , , [9]], + [ + , + , + "(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|[69]\\d\\d|7(?:[23]\\d|7[69]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|[168]\\d\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|9(?:22|5[1-9])))\\d{5}", + , + , + , + "669050123", + ], + [ + , + , + "(?:(?:[25]0|33|8[78]|9[0-57-9])\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079])))|7(?:[07]\\d{3}|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}", + , + , + , + "912345678", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "UZ", + 998, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VA: [ + , + [ + , + , + "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11, 12], + ], + [, , "06698\\d{1,6}", , , , "0669812345", , , [6, 7, 8, 9, 10, 11]], + [, , "3[1-9]\\d{8}|3[2-9]\\d{7}", , , , "3123456789", , , [9, 10]], + [, , "80(?:0\\d{3}|3)\\d{3}", , , , "800123456", , , [6, 9]], + [ + , + , + "(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", + , + , + , + "899123456", + , + , + [6, 8, 9, 10], + ], + [, , "84(?:[08]\\d{3}|[17])\\d{3}", , , , "848123456", , , [6, 9]], + [, , "1(?:78\\d|99)\\d{6}", , , , "1781234567", , , [9, 10]], + [, , "55\\d{8}", , , , "5512345678", , , [10]], + "VA", + 39, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "06698", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]], + ], + VC: [ + , + [, , "(?:[58]\\d\\d|784|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}", + , + , + , + "7842661234", + , + , + , + [7], + ], + [ + , + , + "784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}", + , + , + , + "7844301234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "78451[0-2]\\d{4}", , , , "7845101234", , , , [7]], + "VC", + 1, + "011", + "1", + , + , + "([2-7]\\d{6})$|1", + "784$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "784", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VE: [ + , + [, , "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", , , , , , , [10], [7]], + [ + , + , + "(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}", + , + , + , + "2121234567", + , + , + , + [7], + ], + [, , "4(?:1[24-8]|2[246])\\d{7}", , , , "4121234567"], + [, , "800\\d{7}", , , , "8001234567"], + [, , "90[01]\\d{7}", , , , "9001234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "VE", + 58, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1", "$CC $1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "501\\d{7}", , , , "5010123456", , , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + VG: [ + , + [, , "(?:284|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}", + , + , + , + "2842291234", + , + , + , + [7], + ], + [ + , + , + "284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}", + , + , + , + "2843001234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "VG", + 1, + "011", + "1", + , + , + "([2-578]\\d{6})$|1", + "284$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "284", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VI: [ + , + [, , "[58]\\d{9}|(?:34|90)0\\d{7}", , , , , , , [10], [7]], + [ + , + , + "340(?:2(?:0\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}", + , + , + , + "3406421234", + , + , + , + [7], + ], + [ + , + , + "340(?:2(?:0\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}", + , + , + , + "3406421234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "VI", + 1, + "011", + "1", + , + , + "([2-9]\\d{6})$|1", + "340$1", + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "340", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VN: [ + , + [ + , + , + "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", + , + , + , + , + , + , + [7, 8, 9, 10], + ], + [ + , + , + "2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}", + , + , + , + "2101234567", + , + , + [10], + ], + [ + , + , + "(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[1689]|7[06-9]|8[1-8]|9[0-8])\\d{7}", + , + , + , + "912345678", + , + , + [9], + ], + [ + , + , + "1800\\d{4,6}|12(?:0[13]|28)\\d{4}", + , + , + , + "1800123456", + , + , + [8, 9, 10], + ], + [, , "1900\\d{4,6}", , , , "1900123456", , , [8, 9, 10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "672\\d{6}", , , , "672012345", , , [9]], + "VN", + 84, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[17]99"], "0$1", , 1], + [, "(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", , 1], + [, "(\\d{3})(\\d{4,5})", "$1 $2", ["69"], "0$1", , 1], + [, "(\\d{4})(\\d{4,6})", "$1 $2", ["1"], , , 1], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["6"], + "0$1", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", , 1], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", , 1], + [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", , 1], + ], + [ + [, "(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", , 1], + [, "(\\d{4})(\\d{4,6})", "$1 $2", ["1"], , , 1], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["6"], + "0$1", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", , 1], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", , 1], + [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", , 1], + ], + [, , , , , , , , , [-1]], + , + , + [, , "[17]99\\d{4}|69\\d{5,6}", , , , , , , [7, 8]], + [, , "(?:[17]99|80\\d)\\d{4}|69\\d{5,6}", , , , "1992000", , , [7, 8]], + , + , + [, , , , , , , , , [-1]], + ], + VU: [ + , + [, , "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", , , , , , , [5, 7]], + [ + , + , + "(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}", + , + , + , + "22123", + , + , + [5], + ], + [, , "(?:[58]\\d|7[013-7])\\d{5}", , , , "5912345", , , [7]], + [, , "81[18]\\d\\d", , , , "81123", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:0[1-9]|1[01])\\d{4}", , , , "9010123", , , [7]], + "VU", + 678, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:3[03]|900\\d)\\d{3}", , , , "30123"], + , + , + [, , , , , , , , , [-1]], + ], + WF: [ + , + [, , "(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}", , , , , , , [6, 9]], + [, , "72\\d{4}", , , , "721234", , , [6]], + [, , "(?:72|8[23])\\d{4}", , , , "821234", , , [6]], + [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9[23]\\d{4}", , , , "921234", , , [6]], + "WF", + 681, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[47-9]"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "[48]0\\d{4}", , , , "401234", , , [6]], + ], + WS: [ + , + [ + , + , + "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", + , + , + , + , + , + , + [5, 6, 7, 10], + ], + [, , "6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}", , , , "22123", , , [5, 6]], + [ + , + , + "(?:7[1-35-8]|8(?:[3-7]|9\\d{3}))\\d{5}", + , + , + , + "7212345", + , + , + [7, 10], + ], + [, , "800\\d{3}", , , , "800123", , , [6]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "WS", + 685, + "0", + , + , + , + , + , + , + , + [ + [, "(\\d{5})", "$1", ["[2-5]|6[1-9]"]], + [, "(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], + [, "(\\d{2})(\\d{5})", "$1 $2", ["7"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + XK: [ + , + [ + , + , + "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", + , + , + , + , + , + , + [8, 9, 10, 11, 12], + ], + [ + , + , + "38\\d{6,10}|(?:2[89]|39)(?:0\\d{5,6}|[1-9]\\d{5})", + , + , + , + "28012345", + ], + [, , "4[3-9]\\d{6}", , , , "43201234", , , [8]], + [, , "800\\d{5}", , , , "80001234", , , [8]], + [, , "900\\d{5}", , , , "90001234", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "XK", + 383, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], + [, "(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + YE: [ + , + [, , "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", , , , , , , [7, 8, 9], [6]], + [ + , + , + "78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}", + , + , + , + "1234567", + , + , + [7, 8], + [6], + ], + [, , "7[01378]\\d{7}", , , , "712345678", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "YE", + 967, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d)(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["[1-6]|7(?:[24-6]|8[0-7])"], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + YT: [ + , + [, , "7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", , , , , , , [9]], + [, , "269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}", , , , "269601234"], + [ + , + , + "(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}", + , + , + , + "639012345", + ], + [, , "80\\d{7}", , , , "801234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:(?:39|47)8[01]|769\\d)\\d{4}", , , , "939801234"], + "YT", + 262, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ZA: [ + , + [, , "[1-79]\\d{8}|8\\d{4,9}", , , , , , , [5, 6, 7, 8, 9, 10]], + [ + , + , + "(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}", + , + , + , + "101234567", + , + , + [9], + ], + [ + , + , + "(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:50[0-2]|6\\d\\d|7(?:[0-46-9]\\d|5[0-4]))\\d\\d|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}", + , + , + , + "711234567", + , + , + [5, 6, 7, 8, 9], + ], + [, , "80\\d{7}", , , , "801234567", , , [9]], + [, , "(?:86[2-9]|9[0-2]\\d)\\d{6}", , , , "862345678", , , [9]], + [, , "860\\d{6}", , , , "860123456", , , [9]], + [, , , , , , , , , [-1]], + [ + , + , + "87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}", + , + , + , + "871234567", + , + , + [9], + ], + "ZA", + 27, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "861\\d{6,7}", , , , "861123456", , , [9, 10]], + , + , + [, , , , , , , , , [-1]], + ], + ZM: [ + , + [, , "800\\d{6}|(?:21|[579]\\d|63)\\d{7}", , , , , , , [9], [6]], + [, , "21[1-8]\\d{6}", , , , "211234567", , , , [6]], + [, , "(?:[59][5-8]|7[5-9])\\d{7}", , , , "955123456"], + [, , "800\\d{6}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "63\\d{7}", , , , "630123456"], + "ZM", + 260, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["[1-9]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["[579]"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["[579]"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ZW: [ + , + [ + , + , + "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10], + [3, 4], + ], + [ + , + , + "(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}", + , + , + , + "1312345", + , + , + , + [3, 4], + ], + [, , "7(?:[1278]\\d|3[1-9])\\d{6}", , , , "712345678", , , [9]], + [, , "80(?:[01]\\d|20|8[0-8])\\d{3}", , , , "8001234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "86(?:1[12]|22|30|44|55|77|8[368])\\d{6}", + , + , + , + "8686123456", + , + , + [10], + ], + "ZW", + 263, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{3,5})", + "$1 $2", + [ + "2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]", + ], + "0$1", + ], + [, "(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], + [ + , + "(\\d{2})(\\d{7})", + "$1 $2", + [ + "24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", + "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]", + ], + "(0$1)", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + [ + , + "(\\d{3})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + [ + "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", + "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)", + ], + "0$1", + ], + [, "(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], + [ + , + "(\\d{2})(\\d{3,5})", + "$1 $2", + [ + "1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]", + ], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["29[013-9]|39|54"], + "0$1", + ], + [, "(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 800: [ + , + [, , "(?:00|[1-9]\\d)\\d{6}", , , , , , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:00|[1-9]\\d)\\d{6}", , , , "12345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 800, + , + , + , + , + , + , + , + 1, + [[, "(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 808: [ + , + [, , "[1-9]\\d{7}", , , , , , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "[1-9]\\d{7}", , , , "12345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 808, + , + , + , + , + , + , + , + 1, + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 870: [ + , + [, , "7\\d{11}|[235-7]\\d{8}", , , , , , , [9, 12]], + [, , , , , , , , , [-1]], + [, , "(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}", , , , "301234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "2\\d{8}", , , , "201234567", , , [9]], + "001", + 870, + , + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-7]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 878: [ + , + [, , "10\\d{10}", , , , , , , [12]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "10\\d{10}", , , , "101234567890"], + "001", + 878, + , + , + , + , + , + , + , + 1, + [[, "(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 881: [ + , + [, , "6\\d{9}|[0-36-9]\\d{8}", , , , , , , [9, 10]], + [, , , , , , , , , [-1]], + [, , "6\\d{9}|[0-36-9]\\d{8}", , , , "612345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 881, + , + , + , + , + , + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], + [, "(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 882: [ + , + [ + , + , + "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", + , + , + , + , + , + , + [7, 8, 9, 10, 11, 12], + ], + [, , , , , , , , , [-1]], + [ + , + , + "342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", + , + , + , + "3421234", + , + , + [7, 8, 9, 10, 12], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}", + , + , + , + "390123456789", + ], + "001", + 882, + , + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], + [, "(\\d{2})(\\d{6})", "$1 $2", ["49"]], + [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], + [, "(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + ["10|23|3(?:[15]|4[57])|4|51"], + ], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], + [, "(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "348[57]\\d{7}", , , , "34851234567", , , [11]], + ], + 883: [ + , + [, , "(?:[1-4]\\d|51)\\d{6,10}", , , , , , , [8, 9, 10, 11, 12]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}", + , + , + , + "510012345", + ], + "001", + 883, + , + , + , + , + , + , + , + 1, + [ + [ + , + "(\\d{3})(\\d{3})(\\d{2,8})", + "$1 $2 $3", + ["[14]|2[24-689]|3[02-689]|51[24-9]"], + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], + [, "(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 888: [ + , + [, , "\\d{11}", , , , , , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 888, + , + , + , + , + , + , + , + 1, + [[, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "\\d{11}", , , , "12345678901"], + , + , + [, , , , , , , , , [-1]], + ], + 979: [ + , + [, , "[1359]\\d{8}", , , , , , , [9], [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "[1359]\\d{8}", , , , "123456789", , , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 979, + , + , + , + , + , + , + , + 1, + [[, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + }; + function p() { + this.g = {}; + } + (p.h = void 0), + (p.g = function () { + return p.h ? p.h : (p.h = new p()); + }); + var X = { + 0: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "٠": "0", + "١": "1", + "٢": "2", + "٣": "3", + "٤": "4", + "٥": "5", + "٦": "6", + "٧": "7", + "٨": "8", + "٩": "9", + "۰": "0", + "۱": "1", + "۲": "2", + "۳": "3", + "۴": "4", + "۵": "5", + "۶": "6", + "۷": "7", + "۸": "8", + "۹": "9", + }, + $2 = { + 0: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + "+": "+", + "*": "*", + "#": "#", + }, + t2 = { + 0: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "٠": "0", + "١": "1", + "٢": "2", + "٣": "3", + "٤": "4", + "٥": "5", + "٦": "6", + "٧": "7", + "٨": "8", + "٩": "9", + "۰": "0", + "۱": "1", + "۲": "2", + "۳": "3", + "۴": "4", + "۵": "5", + "۶": "6", + "۷": "7", + "۸": "8", + "۹": "9", + A: "2", + B: "2", + C: "2", + D: "3", + E: "3", + F: "3", + G: "4", + H: "4", + I: "4", + J: "5", + K: "5", + L: "5", + M: "6", + N: "6", + O: "6", + P: "7", + Q: "7", + R: "7", + S: "7", + T: "8", + U: "8", + V: "8", + W: "9", + X: "9", + Y: "9", + Z: "9", + }, + e2 = RegExp("[++]+"), + O = RegExp("^[++]+"), + g1 = RegExp("([0-90-9٠-٩۰-۹])"), + n2 = RegExp("[++0-90-9٠-٩۰-۹]"), + r2 = /[\\\/] *x/, + u2 = RegExp("[^0-90-9٠-٩۰-۹A-Za-z#]+$"), + i2 = /(?:.*?[A-Za-z]){3}.*/, + f2 = RegExp( + "^\\+([0-90-9٠-٩۰-۹]|[\\-\\.\\(\\)]?)*[0-90-9٠-٩۰-۹]([0-90-9٠-٩۰-۹]|[\\-\\.\\(\\)]?)*$" + ), + o2 = RegExp( + "^([A-Za-z0-90-9٠-٩۰-۹]+((\\-)*[A-Za-z0-90-9٠-٩۰-۹])*\\.)*[A-Za-z]+((\\-)*[A-Za-z0-90-9٠-٩۰-۹])*\\.?$" + ); + function L(d) { + return "([0-90-9٠-٩۰-۹]{1," + d + "})"; + } + function h1() { + return ( + ";ext=" + + L("20") + + "|[  \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|доб|anexo)[:\\..]?[  \\t,-]*" + + (L("20") + "#?|[  \\t,]*(?:[xx##~~]|int|int)[:\\..]?[  \\t,-]*") + + (L("9") + "#?|[- ]+") + + (L("6") + "#|[  \\t]*(?:,{2}|;)[:\\..]?[  \\t,-]*") + + (L("15") + "#?|[  \\t]*(?:,)+[:\\..]?[  \\t,-]*") + + (L("9") + "#?") + ); + } + var c1 = new RegExp("(?:" + h1() + ")$", "i"), + l2 = new RegExp( + "^[0-90-9٠-٩۰-۹]{2}$|^[++]*(?:[-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~*]*[0-90-9٠-٩۰-۹]){3,}[-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~*A-Za-z0-90-9٠-٩۰-۹]*(?:" + + h1() + + ")?$", + "i" + ), + s2 = /(\$\d)/, + g2 = /^\(?\$1\)?$/; + function p1(d) { + return 2 > d.length ? !1 : y(l2, d); + } + function a1(d) { + return y(i2, d) ? V(d, t2) : V(d, X); + } + function C1(d) { + var $ = a1(d.toString()); + S(d), d.g($); + } + function m1(d) { + return d != null && (I(d, 9) != 1 || a(d, 9)[0] != -1); + } + function V(d, $) { + for (var t = new h(), e, n = d.length, r = 0; r < n; ++r) + (e = d.charAt(r)), (e = $[e.toUpperCase()]), e != null && t.g(e); + return t.toString(); + } + function S1(d) { + return d.length == 0 || g2.test(d); + } + function Z(d) { + return d != null && isNaN(d) && d.toUpperCase() in s1; + } + p.prototype.format = function (d, $) { + if (f(d, 2) == 0 && m(d, 5)) { + var t = l(d, 5); + if (0 < t.length) return t; + } + t = l(d, 1); + var e = P(d); + if ($ == 0) return E1(t, 0, e, ""); + if (!(t in w)) return e; + var n = x(this, t, U(t)); + d = + m(d, 3) && f(d, 3).length != 0 + ? $ == 3 + ? ";ext=" + f(d, 3) + : m(n, 13) + ? f(n, 13) + l(d, 3) + : " ext. " + l(d, 3) + : ""; + d: { + n = a(n, 20).length == 0 || $ == 2 ? a(n, 19) : a(n, 20); + for (var r, u = n.length, i = 0; i < u; ++i) { + r = n[i]; + var o = I(r, 3); + if ( + (o == 0 || e.search(f(r, 3, o - 1)) == 0) && + ((o = new RegExp(f(r, 1))), y(o, e)) + ) { + n = r; + break d; + } + } + n = null; + } + return ( + n != null && + ((u = n), + (n = l(u, 2)), + (r = new RegExp(f(u, 1))), + l(u, 5), + (u = l(u, 4)), + (e = + $ == 2 && u != null && 0 < u.length + ? e.replace(r, n.replace(s2, u)) + : e.replace(r, n)), + $ == 3 && + ((e = e.replace( + RegExp("^[-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~]+"), + "" + )), + (e = e.replace( + RegExp("[-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~]+", "g"), + "-" + )))), + E1(t, $, e, d) + ); + }; + function x(d, $, t) { + return t == "001" ? N(d, "" + $) : N(d, t); + } + function P(d) { + if (!m(d, 2)) return ""; + var $ = "" + f(d, 2); + return m(d, 4) && f(d, 4) && 0 < l(d, 8) + ? Array(l(d, 8) + 1).join("0") + $ + : $; + } + function E1(d, $, t, e) { + switch ($) { + case 0: + return "+" + d + t + e; + case 1: + return "+" + d + " " + t + e; + case 3: + return "tel:+" + d + "-" + t + e; + default: + return t + e; + } + } + function H(d, $) { + switch ($) { + case 4: + return f(d, 5); + case 3: + return f(d, 4); + case 1: + return f(d, 3); + case 0: + case 2: + return f(d, 2); + case 5: + return f(d, 6); + case 6: + return f(d, 8); + case 7: + return f(d, 7); + case 8: + return f(d, 21); + case 9: + return f(d, 25); + case 10: + return f(d, 28); + default: + return f(d, 1); + } + } + function T1(d, $) { + var t = y1(d, $); + return (d = x(d, l($, 1), t)), d == null ? -1 : (($ = P($)), Q($, d)); + } + function Q(d, $) { + return T(d, f($, 1)) + ? T(d, f($, 5)) + ? 4 + : T(d, f($, 4)) + ? 3 + : T(d, f($, 6)) + ? 5 + : T(d, f($, 8)) + ? 6 + : T(d, f($, 7)) + ? 7 + : T(d, f($, 21)) + ? 8 + : T(d, f($, 25)) + ? 9 + : T(d, f($, 28)) + ? 10 + : T(d, f($, 2)) + ? f($, 18) || T(d, f($, 3)) + ? 2 + : 0 + : !f($, 18) && T(d, f($, 3)) + ? 1 + : -1 + : -1; + } + function N(d, $) { + if ($ == null) return null; + $ = $.toUpperCase(); + var t = d.g[$]; + if (t == null) { + if (((t = s1[$]), t == null)) return null; + (t = new B().g(R.m(), t)), (d.g[$] = t); + } + return t; + } + function T(d, $) { + var t = d.length; + return 0 < I($, 9) && a($, 9).indexOf(t) == -1 ? !1 : y(l($, 2), d); + } + function h2(d, $) { + var t = y1(d, $), + e = l($, 1), + n = x(d, e, t); + return ( + n == null || (t != "001" && e != M1(d, t)) + ? (n = !1) + : ((d = P($)), (n = Q(d, n) != -1)), + n + ); + } + function y1(d, $) { + if ($ == null) return null; + var t = l($, 1); + if (((t = w[t]), t == null)) d = null; + else if (t.length == 1) d = t[0]; + else + d: { + $ = P($); + for (var e, n = t.length, r = 0; r < n; r++) { + e = t[r]; + var u = N(d, e); + if (m(u, 23)) { + if ($.search(f(u, 23)) == 0) { + d = e; + break d; + } + } else if (Q($, u) != -1) { + d = e; + break d; + } + } + d = null; + } + return d; + } + function U(d) { + return (d = w[d]), d == null ? "ZZ" : d[0]; + } + function M1(d, $) { + if (((d = N(d, $)), d == null)) throw Error("Invalid region code: " + $); + return l(d, 10); + } + function W(d, $, t, e) { + var n = H(t, e), + r = I(n, 9) == 0 ? a(f(t, 1), 9) : a(n, 9); + if (((n = a(n, 10)), e == 2)) + if (m1(H(t, 0))) + (d = H(t, 1)), + m1(d) && + ((r = r.concat(I(d, 9) == 0 ? a(f(t, 1), 9) : a(d, 9))), + r.sort(), + n.length == 0 + ? (n = a(d, 10)) + : ((n = n.concat(a(d, 10))), n.sort())); + else return W(d, $, t, 1); + return r[0] == -1 + ? 5 + : (($ = $.length), + -1 < n.indexOf($) + ? 4 + : ((t = r[0]), + t == $ + ? 0 + : t > $ + ? 2 + : r[r.length - 1] < $ + ? 3 + : -1 < r.indexOf($, 1) + ? 0 + : 5)); + } + function Y(d, $, t) { + var e = P($); + return ($ = l($, 1)), $ in w ? (($ = x(d, $, U($))), W(d, e, $, t)) : 1; + } + function I1(d, $) { + if (((d = d.toString()), d.length == 0 || d.charAt(0) == "0")) return 0; + for (var t, e = d.length, n = 1; 3 >= n && n <= e; ++n) + if (((t = parseInt(d.substring(0, n), 10)), t in w)) + return $.g(d.substring(n)), t; + return 0; + } + function A1(d, $, t, e, n, r) { + if ($.length == 0) return 0; + $ = new h($); + var u; + t != null && (u = f(t, 11)), u == null && (u = "NonMatch"); + var i = $.toString(); + if (i.length == 0) u = 20; + else if (O.test(i)) (i = i.replace(O, "")), S($), $.g(a1(i)), (u = 1); + else { + if (((i = new RegExp(u)), C1($), (u = $.toString()), u.search(i) == 0)) { + i = u.match(i)[0].length; + var o = u.substring(i).match(g1); + o && o[1] != null && 0 < o[1].length && V(o[1], X) == "0" + ? (u = !1) + : (S($), $.g(u.substring(i)), (u = !0)); + } else u = !1; + u = u ? 5 : 20; + } + if ((n && c(r, 6, u), u != 20)) { + if (2 >= $.h.length) throw Error("Phone number too short after IDD"); + if (((d = I1($, e)), d != 0)) return c(r, 1, d), d; + throw Error("Invalid country calling code"); + } + return t != null && + ((u = l(t, 10)), + (i = "" + u), + (o = $.toString()), + o.lastIndexOf(i, 0) == 0 && + ((i = new h(o.substring(i.length))), + (o = f(t, 1)), + (o = new RegExp(l(o, 2))), + N1(i, t, null), + (i = i.toString()), + (!y(o, $.toString()) && y(o, i)) || W(d, $.toString(), t, -1) == 3)) + ? (e.g(i), n && c(r, 6, 10), c(r, 1, u), u) + : (c(r, 1, 0), 0); + } + function N1(d, $, t) { + var e = d.toString(), + n = e.length, + r = f($, 15); + if (n != 0 && r != null && r.length != 0) { + var u = new RegExp("^(?:" + r + ")"); + if ((n = u.exec(e))) { + r = new RegExp(l(f($, 1), 2)); + var i = y(r, e), + o = n.length - 1; + ($ = f($, 16)), + $ == null || $.length == 0 || n[o] == null || n[o].length == 0 + ? (!i || y(r, e.substring(n[0].length))) && + (t != null && 0 < o && n[o] != null && t.g(n[1]), + d.set(e.substring(n[0].length))) + : ((e = e.replace(u, $)), + (!i || y(r, e)) && (t != null && 0 < o && t.g(n[1]), d.set(e))); + } + } + } + function G(d, $, t) { + if (!Z(t) && 0 < $.length && $.charAt(0) != "+") + throw Error("Invalid country calling code"); + return v1(d, $, t, !0); + } + function v1(d, $, t, e) { + if ($ == null) + throw Error("The string supplied did not seem to be a phone number"); + if (250 < $.length) + throw Error("The string supplied is too long to be a phone number"); + var n = new h(), + r = $.indexOf(";phone-context="); + if (r === -1) r = null; + else if (((r += 15), r >= $.length)) r = ""; + else { + var u = $.indexOf(";", r); + r = u !== -1 ? $.substring(r, u) : $.substring(r); + } + var i = r; + if ( + (i == null + ? (u = !0) + : i.length === 0 + ? (u = !1) + : ((u = f2.exec(i)), (i = o2.exec(i)), (u = u !== null || i !== null)), + !u || + (r != null + ? (r.charAt(0) === "+" && n.g(r), + (r = $.indexOf("tel:")), + n.g($.substring(0 <= r ? r + 4 : 0, $.indexOf(";phone-context=")))) + : ((r = n.g), + (u = $ ?? ""), + (i = u.search(n2)), + 0 <= i + ? ((u = u.substring(i)), + (u = u.replace(u2, "")), + (i = u.search(r2)), + 0 <= i && (u = u.substring(0, i))) + : (u = ""), + r.call(n, u)), + (r = n.toString()), + (u = r.indexOf(";isub=")), + 0 < u && (S(n), n.g(r.substring(0, u))), + !p1(n.toString()))) + ) + throw Error("The string supplied did not seem to be a phone number"); + if ( + ((r = n.toString()), !(Z(t) || (r != null && 0 < r.length && O.test(r)))) + ) + throw Error("Invalid country calling code"); + (r = new A()), e && c(r, 5, $); + d: { + if ( + (($ = n.toString()), + (u = $.search(c1)), + 0 <= u && p1($.substring(0, u))) + ) { + i = $.match(c1); + for (var o = i.length, M = 1; M < o; ++M) + if (i[M] != null && 0 < i[M].length) { + S(n), n.g($.substring(0, u)), ($ = i[M]); + break d; + } + } + $ = ""; + } + 0 < $.length && c(r, 3, $), + (u = N(d, t)), + ($ = new h()), + (i = 0), + (o = n.toString()); + try { + i = A1(d, o, u, $, e, r); + } catch (q) { + if (q.message == "Invalid country calling code" && O.test(o)) { + if (((o = o.replace(O, "")), (i = A1(d, o, u, $, e, r)), i == 0)) + throw q; + } else throw q; + } + if ( + (i != 0 + ? ((n = U(i)), n != t && (u = x(d, i, n))) + : (C1(n), + $.g(n.toString()), + t != null + ? ((i = l(u, 10)), c(r, 1, i)) + : e && (delete r.h[6], r.g && delete r.g[6])), + 2 > $.h.length || + (u != null && + ((t = new h()), + (n = new h($.toString())), + N1(n, u, t), + (d = W(d, n.toString(), u, -1)), + d != 2 && + d != 4 && + d != 5 && + (($ = n), e && 0 < t.toString().length && c(r, 7, t.toString()))), + (e = $.toString()), + (d = e.length), + 2 > d)) + ) + throw Error("The string supplied is too short to be a phone number"); + if (17 < d) + throw Error("The string supplied is too long to be a phone number"); + if (1 < e.length && e.charAt(0) == "0") { + for (c(r, 4, !0), d = 1; d < e.length - 1 && e.charAt(d) == "0"; ) d++; + d != 1 && c(r, 8, d); + } + return c(r, 2, parseInt(e, 10)), r; + } + function y(d, $) { + return !!( + (d = $.match( + new RegExp("^(?:" + (typeof d == "string" ? d : d.source) + ")$", "i") + )) && d[0].length == $.length + ); + } + function c2(d) { + (this.fa = RegExp(" ")), + (this.ja = ""), + (this.v = new h()), + (this.da = ""), + (this.s = new h()), + (this.ba = new h()), + (this.u = !0), + (this.ea = this.ca = this.la = !1), + (this.ga = p.g()), + (this.$ = 0), + (this.h = new h()), + (this.ha = !1), + (this.o = ""), + (this.g = new h()), + (this.j = []), + (this.ka = d), + (this.l = _1(this, this.ka)); + } + var R1 = new R(); + c(R1, 11, "NA"); + var p2 = RegExp( + "^[-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~]*\\$1[-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~]*(\\$\\d[-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~]*)*$" + ), + G1 = /[- ]/; + function _1(d, $) { + var t = d.ga; + return ($ = Z($) ? M1(t, $) : 0), (d = N(d.ga, U($))), d ?? R1; + } + function L1(d) { + for (var $ = d.j.length, t = 0; t < $; ++t) { + var e = d.j[t], + n = l(e, 1); + if (d.da == n) return !1; + var r = d, + u = e, + i = l(u, 1); + S(r.v); + var o = r; + u = l(u, 2); + var M = "999999999999999".match(i)[0]; + if ( + (M.length < o.g.h.length + ? (o = "") + : ((o = M.replace(new RegExp(i, "g"), u)), + (o = o.replace(RegExp("9", "g"), " "))), + 0 < o.length ? (r.v.g(o), (r = !0)) : (r = !1), + r) + ) + return (d.da = n), (d.ha = G1.test(f(e, 4))), (d.$ = 0), !0; + } + return (d.u = !1); + } + function B1(d, $) { + for (var t = [], e = $.length - 3, n = d.j.length, r = 0; r < n; ++r) { + var u = d.j[r]; + I(u, 3) == 0 + ? t.push(d.j[r]) + : ((u = f(u, 3, Math.min(e, I(u, 3) - 1))), + $.search(u) == 0 && t.push(d.j[r])); + } + d.j = t; + } + function a2(d, $) { + d.s.g($); + var t = $; + if ( + (g1.test(t) || (d.s.h.length == 1 && e2.test(t)) + ? ($ == "+" ? ((t = $), d.ba.g($)) : ((t = X[$]), d.ba.g(t), d.g.g(t)), + ($ = t)) + : ((d.u = !1), (d.la = !0)), + !d.u) + ) { + if (!d.la) { + if (U1(d)) { + if (K1(d)) return w1(d); + } else if ( + (0 < d.o.length && + (($ = d.g.toString()), + S(d.g), + d.g.g(d.o), + d.g.g($), + ($ = d.h.toString()), + (t = $.lastIndexOf(d.o)), + S(d.h), + d.h.g($.substring(0, t))), + d.o != P1(d)) + ) + return d.h.g(" "), w1(d); + } + return d.s.toString(); + } + switch (d.ba.h.length) { + case 0: + case 1: + case 2: + return d.s.toString(); + case 3: + if (U1(d)) d.ea = !0; + else return (d.o = P1(d)), k(d); + default: + return d.ea + ? (K1(d) && (d.ea = !1), d.h.toString() + d.g.toString()) + : 0 < d.j.length + ? (($ = D1(d, $)), + (t = O1(d)), + 0 < t.length + ? t + : (B1(d, d.g.toString()), + L1(d) ? x1(d) : d.u ? j(d, $) : d.s.toString())) + : k(d); + } + } + function w1(d) { + return ( + (d.u = !0), (d.ea = !1), (d.j = []), (d.$ = 0), S(d.v), (d.da = ""), k(d) + ); + } + function O1(d) { + for (var $ = d.g.toString(), t = d.j.length, e = 0; e < t; ++e) { + var n = d.j[e], + r = l(n, 1); + if ( + new RegExp("^(?:" + r + ")$").test($) && + ((d.ha = G1.test(f(n, 4))), + (n = $.replace(new RegExp(r, "g"), f(n, 2))), + (n = j(d, n)), + V(n, $2) == d.ba) + ) + return n; + } + return ""; + } + function j(d, $) { + var t = d.h.h.length; + return d.ha && 0 < t && d.h.toString().charAt(t - 1) != " " + ? d.h + " " + $ + : d.h + $; + } + function k(d) { + var $ = d.g.toString(); + if (3 <= $.length) { + for ( + var t = + d.ca && d.o.length == 0 && 0 < I(d.l, 20) ? a(d.l, 20) : a(d.l, 19), + e = t.length, + n = 0; + n < e; + ++n + ) { + var r = t[n]; + (0 < d.o.length && S1(l(r, 4)) && !f(r, 6) && !m(r, 5)) || + ((d.o.length != 0 || d.ca || S1(l(r, 4)) || f(r, 6)) && + p2.test(l(r, 2)) && + d.j.push(r)); + } + return ( + B1(d, $), ($ = O1(d)), 0 < $.length ? $ : L1(d) ? x1(d) : d.s.toString() + ); + } + return j(d, $); + } + function x1(d) { + var $ = d.g.toString(), + t = $.length; + if (0 < t) { + for (var e = "", n = 0; n < t; n++) e = D1(d, $.charAt(n)); + return d.u ? j(d, e) : d.s.toString(); + } + return d.h.toString(); + } + function P1(d) { + var $ = d.g.toString(), + t = 0; + if (f(d.l, 10) != 1) var e = !1; + else + (e = d.g.toString()), + (e = e.charAt(0) == "1" && e.charAt(1) != "0" && e.charAt(1) != "1"); + return ( + e + ? ((t = 1), d.h.g("1").g(" "), (d.ca = !0)) + : m(d.l, 15) && + ((e = new RegExp("^(?:" + f(d.l, 15) + ")")), + (e = $.match(e)), + e != null && + e[0] != null && + 0 < e[0].length && + ((d.ca = !0), (t = e[0].length), d.h.g($.substring(0, t)))), + S(d.g), + d.g.g($.substring(t)), + $.substring(0, t) + ); + } + function U1(d) { + var $ = d.ba.toString(), + t = new RegExp("^(?:\\+|" + f(d.l, 11) + ")"); + return ( + (t = $.match(t)), + t != null && t[0] != null && 0 < t[0].length + ? ((d.ca = !0), + (t = t[0].length), + S(d.g), + d.g.g($.substring(t)), + S(d.h), + d.h.g($.substring(0, t)), + $.charAt(0) != "+" && d.h.g(" "), + !0) + : !1 + ); + } + function K1(d) { + if (d.g.h.length == 0) return !1; + var $ = new h(), + t = I1(d.g, $); + return t == 0 + ? !1 + : (S(d.g), + d.g.g($.toString()), + ($ = U(t)), + $ == "001" ? (d.l = N(d.ga, "" + t)) : $ != d.ka && (d.l = _1(d, $)), + d.h.g("" + t).g(" "), + (d.o = ""), + !0); + } + function D1(d, $) { + var t = d.v.toString(); + if (0 <= t.substring(d.$).search(d.fa)) { + var e = t.search(d.fa); + return ( + ($ = t.replace(d.fa, $)), + S(d.v), + d.v.g($), + (d.$ = e), + $.substring(0, d.$ + 1) + ); + } + return d.j.length == 1 && (d.u = !1), (d.da = ""), d.s.toString(); + } + const z = { + FIXED_LINE: 0, + MOBILE: 1, + FIXED_LINE_OR_MOBILE: 2, + TOLL_FREE: 3, + PREMIUM_RATE: 4, + SHARED_COST: 5, + VOIP: 6, + PERSONAL_NUMBER: 7, + PAGER: 8, + UAN: 9, + VOICEMAIL: 10, + UNKNOWN: -1, + }; + g("intlTelInputUtilsTemp", {}), + g("intlTelInputUtilsTemp.formatNumberAsYouType", (d, $) => { + try { + const t = d.replace(/[^+0-9]/g, ""), + e = new c2($); + $ = ""; + for (let n = 0; n < t.length; n++) + (e.ja = a2(e, t.charAt(n))), ($ = e.ja); + return $; + } catch { + return d; + } + }), + g("intlTelInputUtilsTemp.formatNumber", (d, $, t) => { + try { + const n = p.g(), + r = G(n, d, $); + var e = Y(n, r, -1); + return e == 0 || e == 4 ? n.format(r, typeof t > "u" ? 0 : t) : d; + } catch { + return d; + } + }), + g("intlTelInputUtilsTemp.getExampleNumber", (d, $, t, e) => { + try { + const o = p.g(); + d: { + var n = o; + if (Z(d)) { + var r = H(N(n, d), t); + try { + if (m(r, 6)) { + var u = f(r, 6), + i = v1(n, u, d, !1); + break d; + } + } catch {} + } + i = null; + } + return o.format(i, e ? 0 : $ ? 2 : 1); + } catch { + return ""; + } + }), + g("intlTelInputUtilsTemp.getExtension", (d, $) => { + try { + return f(G(p.g(), d, $), 3); + } catch { + return ""; + } + }), + g("intlTelInputUtilsTemp.getNumberType", (d, $) => { + try { + const t = p.g(), + e = G(t, d, $); + return T1(t, e); + } catch { + return -99; + } + }), + g("intlTelInputUtilsTemp.getValidationError", (d, $) => { + if (!$) return 1; + try { + const t = p.g(), + e = G(t, d, $); + return Y(t, e, -1); + } catch (t) { + return t.message === "Invalid country calling code" + ? 1 + : 3 >= d.length || + t.message === "Phone number too short after IDD" || + t.message === + "The string supplied is too short to be a phone number" + ? 2 + : t.message === "The string supplied is too long to be a phone number" + ? 3 + : -99; + } + }), + g("intlTelInputUtilsTemp.isValidNumber", (d, $, t) => { + try { + const e = p.g(), + n = G(e, d, $), + r = h2(e, n); + if (t) { + const u = t.map((i) => z[i]); + return r && u.includes(T1(e, n)); + } + return r; + } catch { + return !1; + } + }), + g("intlTelInputUtilsTemp.isPossibleNumber", (d, $, t) => { + try { + const e = p.g(), + n = G(e, d, $); + if (t) { + t.includes("FIXED_LINE_OR_MOBILE") && + (t.includes("MOBILE") || t.push("MOBILE"), + t.includes("FIXED_LINE") || t.push("FIXED_LINE")); + for (let r of t) if (Y(e, n, z[r]) === 0) return !0; + return !1; + } + return Y(e, n, -1) === 0; + } catch { + return !1; + } + }), + g("intlTelInputUtilsTemp.getCoreNumber", (d, $) => { + try { + return f(G(p.g(), d, $), 2).toString(); + } catch { + return ""; + } + }), + g("intlTelInputUtilsTemp.numberFormat", { + E164: 0, + INTERNATIONAL: 1, + NATIONAL: 2, + RFC3966: 3, + }), + g("intlTelInputUtilsTemp.numberType", z), + g("intlTelInputUtilsTemp.validationError", { + IS_POSSIBLE: 0, + INVALID_COUNTRY_CODE: 1, + TOO_SHORT: 2, + TOO_LONG: 3, + IS_POSSIBLE_LOCAL_ONLY: 4, + INVALID_LENGTH: 5, + }); +})(); +const C2 = window.intlTelInputUtilsTemp; +delete window.intlTelInputUtilsTemp; +export { C2 as default }; diff --git a/frontend-backup/_app/immutable/entry/app.CuVZ6Ons.js b/frontend-backup/_app/immutable/entry/app.CuVZ6Ons.js deleted file mode 100644 index 508dba1..0000000 --- a/frontend-backup/_app/immutable/entry/app.CuVZ6Ons.js +++ /dev/null @@ -1,20 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DIpSCqpd.js","../chunks/B2cHk4HI.js","../chunks/4WsUhDWi.js","../chunks/BDALf20I.js","../chunks/4k6DpCgf.js","../chunks/BUhRjcOt.js","../chunks/DffDvEhl.js","../chunks/DklPLC_x.js","../chunks/DM9nRpoa.js","../chunks/BvbG2Lay.js","../chunks/Bke_korE.js","../chunks/CZW2bcQi.js","../chunks/BNZUboE0.js","../chunks/BrZ10JY-.js","../chunks/ChY_8ULT.js","../chunks/cUtKXcx3.js","../assets/0.DQCxyt33.css","../nodes/1.-aaO_7rD.js","../chunks/BuTItAOu.js","../chunks/C-Y7nmnD.js","../chunks/B4HM4TqG.js","../nodes/2.DTTH4yjc.js","../chunks/BCONGQnO.js","../chunks/CYItkO2S.js","../chunks/DnhglgUZ.js","../nodes/3.BjOx-5ND.js","../nodes/4.DLrwqUeR.js","../chunks/DV6L2nvf.js","../chunks/CAQlJ3np.js","../chunks/DS58drb5.js","../chunks/CDZgL_Bh.js","../chunks/sZ1mzRzK.js","../chunks/fZ59cmjx.js","../chunks/DCxPsWiR.js","../chunks/ClOhzjRc.js","../chunks/DhR_xAc4.js","../chunks/DS5O-Inb.js","../chunks/CVCd3urP.js","../chunks/C2Ms0SfR.js","../assets/ProfileAvatarWithLevel.6dmPRSfx.css","../chunks/ZzI7cLBE.js","../chunks/BHr_eBwR.js","../assets/LoginForm.CxMG0irz.css","../chunks/x1RL6Wqy.js","../chunks/EXYzlOI1.js","../chunks/rLj4C5Bn.js","../chunks/BtAj0icR.js","../chunks/Drv8f_fG.js","../assets/4.BtKF873c.css","../nodes/5.lvNarnfM.js","../nodes/6.DyKsgUf2.js","../nodes/7.C4jrLY7T.js","../chunks/hLPYzGnf.js","../chunks/BMfwGdZU.js","../chunks/CmAc-jwz.js","../chunks/6TAPgKgc.js","../nodes/8.DIMn846h.js","../chunks/GVP1MJz5.js","../chunks/DFzO1c4b.js","../chunks/ChoU6b3z.js","../nodes/9.BhPlDH9q.js","../nodes/10.2PlMuzkM.js","../chunks/DXjtejww.js","../chunks/BpEsgMDn.js","../nodes/11.7LNU-V2c.js","../nodes/12.Dk7Cyr8v.js","../chunks/5mOJ66sL.js","../chunks/DdJK9GIy.js","../nodes/13.DsAxPfo7.js","../chunks/BpFpuxGr.js","../nodes/14.TE67n0On.js","../nodes/15.BKIY6Gje.js","../nodes/16.CKya8A82.js","../nodes/17.C45_aAtw.js","../nodes/18.WvT7vRmm.js","../assets/18.BD1hRFPA.css","../nodes/19.Dqy7C9y2.js","../nodes/20.ppFj_8Kx.js","../nodes/21.PUjACzZY.js"])))=>i.map(i=>d[i]); -var Jn=t=>{throw TypeError(t)};var Kn=(t,e,n)=>e.has(t)||Jn("Cannot "+n);var B=(t,e,n)=>(Kn(t,e,"read from private field"),n?n.call(t):e.get(t)),Kt=(t,e,n)=>e.has(t)?Jn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),Qt=(t,e,n,r)=>(Kn(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n);import{_ as L}from"../chunks/x1RL6Wqy.js";import{D as S,d as g,g as _e,G as F,a as G,b as W,S as Me,c as Pt,e as Vr,T as Wr,n as oa,f as ca,h as st,i as Zt,j as Ne,k as R,l as mn,m as Mt,o as at,p as it,t as q,q as Se,r as D,u as ua,v as Xe,w as Z,x as da,y as fa,z as Ue,A as Cn,B as k,C as Qn,E as C,F as Et,H as Zn,I as la,J as Gr,K as Le,L as On,M as Ht,N as Yr,O as zr,_ as $t,P as pa,Q as Tt,R as Bt,U as Xr,V as ma,W as Jr,X as kt,Y as ga,Z as Ut,$ as ha,a0 as yt,a1 as er,a2 as Ze,a3 as tr,a4 as Ce,a5 as _a,a6 as Kr,a7 as Sa,a8 as Ea,a9 as Qr,aa as Nt,ab as Zr,ac as Ta,ad as gn,ae as ya,af as qt,ag as nr,ah as va,ai as ba,aj as Ia,ak as Ra,al as wa,am as Aa,an as xn,ao as Pe,ap as he,aq as Lt,ar as Pa,as as V,at as rr,au as sr,av as es,aw as ts,ax as ka,ay as ns,az as et,aA as ot,aB as Na,aC as hn,aD as tt,aE as rs,aF as ss,aG as ar,aH as La,aI as Dn,aJ as Ca,aK as Oa,aL as Y,aM as pe,aN as as,aO as Je,aP as xa,aQ as He,aR as ir,aS as or,aT as cr,aU as is,aV as Da,aW as Fa,aX as Ma,aY as Ha}from"../chunks/DM9nRpoa.js";import{s as $a}from"../chunks/B4HM4TqG.js";import{aw as vt,aW as Ba,g as j,aF as Ua,bo as qa,a0 as ja,p as Va,x as Wa,y as Ga,au as en,aL as Ya,f as os,a as ae,s as za,b as K,c as Xa,ay as fe,d as Ja,r as Ka,u as Re,b4 as Qa,t as Za}from"../chunks/BDALf20I.js";import{h as ei,m as ti,u as ni,s as ri}from"../chunks/4k6DpCgf.js";import"../chunks/B2cHk4HI.js";import{o as si}from"../chunks/4WsUhDWi.js";import{p as Ye,i as ze}from"../chunks/Bke_korE.js";import{c as we}from"../chunks/ChY_8ULT.js";import{b as Ae}from"../chunks/BrZ10JY-.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="47e693a9-a90f-4976-a787-dc2285b07af6",t._sentryDebugIdIdentifier="sentry-dbid-47e693a9-a90f-4976-a787-dc2285b07af6")})()}catch{}function ai(t){return class extends ii{constructor(e){super({component:t,...e})}}}var le,Q;class ii{constructor(e){Kt(this,le);Kt(this,Q);var a;var n=new Map,r=(i,o)=>{var c=ja(o,!1,!1);return n.set(i,c),c};const s=new Proxy({...e.props||{},$$events:{}},{get(i,o){return j(n.get(o)??r(o,Reflect.get(i,o)))},has(i,o){return o===Ba?!0:(j(n.get(o)??r(o,Reflect.get(i,o))),Reflect.has(i,o))},set(i,o,c){return vt(n.get(o)??r(o,c),c),Reflect.set(i,o,c)}});Qt(this,Q,(e.hydrate?ei:ti)(e.component,{target:e.target,anchor:e.anchor,props:s,context:e.context,intro:e.intro??!1,recover:e.recover})),(!((a=e==null?void 0:e.props)!=null&&a.$$host)||e.sync===!1)&&Ua(),Qt(this,le,s.$$events);for(const i of Object.keys(B(this,Q)))i==="$set"||i==="$destroy"||i==="$on"||qa(this,i,{get(){return B(this,Q)[i]},set(o){B(this,Q)[i]=o},enumerable:!0});B(this,Q).$set=i=>{Object.assign(s,i)},B(this,Q).$destroy=()=>{ni(B(this,Q))}}$set(e){B(this,Q).$set(e)}$on(e,n){B(this,le)[e]=B(this,le)[e]||[];const r=(...s)=>n.call(this,...s);return B(this,le)[e].push(r),()=>{B(this,le)[e]=B(this,le)[e].filter(s=>s!==r)}}$destroy(){B(this,Q).$destroy()}}le=new WeakMap,Q=new WeakMap;const bt={},ur={};function ye(t,e){bt[t]=bt[t]||[],bt[t].push(e)}function ve(t,e){if(!ur[t]){ur[t]=!0;try{e()}catch(n){S&&g.error(`Error while instrumenting ${t}`,n)}}}function ee(t,e){const n=t&&bt[t];if(n)for(const r of n)try{r(e)}catch(s){S&&g.error(`Error while triggering instrumentation handler. -Type: ${t} -Name: ${_e(r)} -Error:`,s)}}let tn=null;function cs(t){const e="error";ye(e,t),ve(e,oi)}function oi(){tn=F.onerror,F.onerror=function(t,e,n,r,s){return ee("error",{column:r,error:s,line:n,msg:t,url:e}),tn?tn.apply(this,arguments):!1},F.onerror.__SENTRY_INSTRUMENTED__=!0}let nn=null;function us(t){const e="unhandledrejection";ye(e,t),ve(e,ci)}function ci(){nn=F.onunhandledrejection,F.onunhandledrejection=function(t){return ee("unhandledrejection",t),nn?nn.apply(this,arguments):!0},F.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}let dr=!1;function ui(){if(dr)return;function t(){const e=G(),n=e&&W(e);if(n){const r="internal_error";S&&g.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:Me,message:r})}}t.tag="sentry_tracingErrorCallback",dr=!0,cs(t),us(t)}class Ee{constructor(e={}){this._traceId=e.traceId||Pt(),this._spanId=e.spanId||Vr()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Wr}}end(e){}setAttribute(e,n){return this}setAttributes(e){return this}setStatus(e){return this}updateName(e){return this}isRecording(){return!1}addEvent(e,n,r){return this}addLink(e){return this}addLinks(e){return this}recordException(e,n){}}function qe(t,e=[]){return[t,e]}function di(t,e){const[n,r]=t;return[n,[...r,e]]}function fr(t,e){const n=t[1];for(const r of n){const s=r[0].type;if(e(r,s))return!0}return!1}function _n(t){const e=ca(F);return e.encodePolyfill?e.encodePolyfill(t):new TextEncoder().encode(t)}function fi(t){const[e,n]=t;let r=JSON.stringify(e);function s(a){typeof r=="string"?r=typeof a=="string"?r+a:[_n(r),a]:r.push(typeof a=="string"?_n(a):a)}for(const a of n){const[i,o]=a;if(s(` -${JSON.stringify(i)} -`),typeof o=="string"||o instanceof Uint8Array)s(o);else{let c;try{c=JSON.stringify(o)}catch{c=JSON.stringify(oa(o))}s(c)}}return typeof r=="string"?r:li(r)}function li(t){const e=t.reduce((s,a)=>s+a.length,0),n=new Uint8Array(e);let r=0;for(const s of t)n.set(s,r),r+=s.length;return n}function pi(t){return[{type:"span"},t]}function mi(t){const e=typeof t.data=="string"?_n(t.data):t.data;return[{type:"attachment",length:e.length,filename:t.filename,content_type:t.contentType,attachment_type:t.attachmentType},e]}const gi={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item"};function lr(t){return gi[t]}function ds(t){if(!(t!=null&&t.sdk))return;const{name:e,version:n}=t.sdk;return{name:e,version:n}}function hi(t,e,n,r){var a;const s=(a=t.sdkProcessingMetadata)==null?void 0:a.dynamicSamplingContext;return{event_id:t.event_id,sent_at:new Date().toISOString(),...e&&{sdk:e},...!!n&&r&&{dsn:st(r)},...s&&{trace:s}}}function Sn(t,e){if(!(e!=null&&e.length)||!t.description)return!1;for(const n of e){if(Si(n)){if(Zt(t.description,n))return!0;continue}if(!n.name&&!n.op)continue;const r=n.name?Zt(t.description,n.name):!0,s=n.op?t.op&&Zt(t.op,n.op):!0;if(r&&s)return!0}return!1}function _i(t,e){const n=e.parent_span_id,r=e.span_id;if(n)for(const s of t)s.parent_span_id===r&&(s.parent_span_id=n)}function Si(t){return typeof t=="string"||t instanceof RegExp}function Ei(t,e){var r,s,a,i;if(!e)return t;const n=t.sdk||{};return t.sdk={...n,name:n.name||e.name,version:n.version||e.version,integrations:[...((r=t.sdk)==null?void 0:r.integrations)||[],...e.integrations||[]],packages:[...((s=t.sdk)==null?void 0:s.packages)||[],...e.packages||[]],settings:(a=t.sdk)!=null&&a.settings||e.settings?{...(i=t.sdk)==null?void 0:i.settings,...e.settings}:void 0},t}function Ti(t,e,n,r){const s=ds(n),a={sent_at:new Date().toISOString(),...s&&{sdk:s},...!!r&&e&&{dsn:st(e)}},i="aggregates"in t?[{type:"sessions"},t]:[{type:"session"},t.toJSON()];return qe(a,[i])}function yi(t,e,n,r){const s=ds(n),a=t.type&&t.type!=="replay_event"?t.type:"event";Ei(t,n==null?void 0:n.sdk);const i=hi(t,s,r,e);return delete t.sdkProcessingMetadata,qe(i,[[{type:a},t]])}function vi(t,e){function n(l){return!!l.trace_id&&!!l.public_key}const r=Ne(t[0]),s=e==null?void 0:e.getDsn(),a=e==null?void 0:e.getOptions().tunnel,i={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!a&&s&&{dsn:st(s)}},{beforeSendSpan:o,ignoreSpans:c}=(e==null?void 0:e.getOptions())||{},u=c!=null&&c.length?t.filter(l=>!Sn(R(l),c)):t,f=t.length-u.length;f&&(e==null||e.recordDroppedEvent("before_send","span",f));const d=o?l=>{const m=R(l),h=o(m);return h||(mn(),m)}:R,p=[];for(const l of u){const m=d(l);m&&p.push(pi(m))}return qe(i,p)}function bi(t){if(!S)return;const{description:e="< unknown name >",op:n="< unknown op >",parent_span_id:r}=R(t),{spanId:s}=t.spanContext(),a=Mt(t),i=W(t),o=i===t,c=`[Tracing] Starting ${a?"sampled":"unsampled"} ${o?"root ":""}span`,u=[`op: ${n}`,`name: ${e}`,`ID: ${s}`];if(r&&u.push(`parent ID: ${r}`),!o){const{op:f,description:d}=R(i);u.push(`root ID: ${i.spanContext().spanId}`),f&&u.push(`root op: ${f}`),d&&u.push(`root description: ${d}`)}g.log(`${c} - ${u.join(` - `)}`)}function Ii(t){if(!S)return;const{description:e="< unknown name >",op:n="< unknown op >"}=R(t),{spanId:r}=t.spanContext(),a=W(t)===t,i=`[Tracing] Finishing "${n}" ${a?"root ":""}span "${e}" with ID ${r}`;g.log(i)}function Ri(t,e,n,r=G()){const s=r&&W(r);s&&(S&&g.log(`[Measurement] Setting measurement on root span: ${t} = ${e} ${n}`),s.addEvent(t,{[it]:e,[at]:n}))}function pr(t){if(!t||t.length===0)return;const e={};return t.forEach(n=>{const r=n.attributes||{},s=r[at],a=r[it];typeof s=="string"&&typeof a=="number"&&(e[n.name]={value:a,unit:s})}),e}const mr=1e3;class jt{constructor(e={}){this._traceId=e.traceId||Pt(),this._spanId=e.spanId||Vr(),this._startTime=e.startTimestamp||q(),this._links=e.links,this._attributes={},this.setAttributes({[D]:"manual",[Se]:e.op,...e.attributes}),this._name=e.name,e.parentSpanId&&(this._parentSpanId=e.parentSpanId),"sampled"in e&&(this._sampled=e.sampled),e.endTimestamp&&(this._endTime=e.endTimestamp),this._events=[],this._isStandaloneSpan=e.isStandalone,this._endTime&&this._onSpanEnded()}addLink(e){return this._links?this._links.push(e):this._links=[e],this}addLinks(e){return this._links?this._links.push(...e):this._links=e,this}recordException(e,n){}spanContext(){const{_spanId:e,_traceId:n,_sampled:r}=this;return{spanId:e,traceId:n,traceFlags:r?ua:Wr}}setAttribute(e,n){return n===void 0?delete this._attributes[e]:this._attributes[e]=n,this}setAttributes(e){return Object.keys(e).forEach(n=>this.setAttribute(n,e[n])),this}updateStartTime(e){this._startTime=Xe(e)}setStatus(e){return this._status=e,this}updateName(e){return this._name=e,this.setAttribute(Z,"custom"),this}end(e){this._endTime||(this._endTime=Xe(e),Ii(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[Se],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:fa(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[D],profile_id:this._attributes[Cn],exclusive_time:this._attributes[Ue],measurements:pr(this._events),is_segment:this._isStandaloneSpan&&W(this)===this||void 0,segment_id:this._isStandaloneSpan?W(this).spanContext().spanId:void 0,links:da(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(e,n,r){S&&g.log("[Tracing] Adding an event to span:",e);const s=gr(n)?n:r||q(),a=gr(n)?{}:n||{},i={name:e,time:Xe(s),attributes:a};return this._events.push(i),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){const e=k();if(e&&e.emit("spanEnd",this),!(this._isStandaloneSpan||this===W(this)))return;if(this._isStandaloneSpan){this._sampled?Ai(vi([this],e)):(S&&g.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),e&&e.recordDroppedEvent("sample_rate","span"));return}const r=this._convertSpanToTransaction();r&&(Qn(this).scope||C()).captureEvent(r)}_convertSpanToTransaction(){var f;if(!hr(R(this)))return;this._name||(S&&g.warn("Transaction has no name, falling back to ``."),this._name="");const{scope:e,isolationScope:n}=Qn(this),r=(f=e==null?void 0:e.getScopeData().sdkProcessingMetadata)==null?void 0:f.normalizedRequest;if(this._sampled!==!0)return;const a=Et(this).filter(d=>d!==this&&!wi(d)).map(d=>R(d)).filter(hr),i=this._attributes[Z];delete this._attributes[Zn],a.forEach(d=>{delete d.data[Zn]});const o={contexts:{trace:la(this)},spans:a.length>mr?a.sort((d,p)=>d.start_timestamp-p.start_timestamp).slice(0,mr):a,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:e,capturedSpanIsolationScope:n,dynamicSamplingContext:Ne(this)},request:r,...i&&{transaction_info:{source:i}}},c=pr(this._events);return c&&Object.keys(c).length&&(S&&g.log("[Measurements] Adding measurements to transaction event",JSON.stringify(c,void 0,2)),o.measurements=c),o}}function gr(t){return t&&typeof t=="number"||t instanceof Date||Array.isArray(t)}function hr(t){return!!t.start_timestamp&&!!t.timestamp&&!!t.span_id&&!!t.trace_id}function wi(t){return t instanceof jt&&t.isStandaloneSpan()}function Ai(t){const e=k();if(!e)return;const n=t[1];if(!n||n.length===0){e.recordDroppedEvent("before_send","span");return}e.sendEnvelope(t)}function Pi(t,e,n=()=>{}){let r;try{r=t()}catch(s){throw e(s),n(),s}return ki(r,e,n)}function ki(t,e,n){return Gr(t)?t.then(r=>(n(),r),r=>{throw e(r),n(),r}):(n(),t)}function Ni(t,e,n){if(!Le(t))return[!1];let r,s;typeof t.tracesSampler=="function"?(s=t.tracesSampler({...e,inheritOrSampleWith:o=>typeof e.parentSampleRate=="number"?e.parentSampleRate:typeof e.parentSampled=="boolean"?Number(e.parentSampled):o}),r=!0):e.parentSampled!==void 0?s=e.parentSampled:typeof t.tracesSampleRate<"u"&&(s=t.tracesSampleRate,r=!0);const a=On(s);if(a===void 0)return S&&g.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(s)} of type ${JSON.stringify(typeof s)}.`),[!1];if(!a)return S&&g.log(`[Tracing] Discarding transaction because ${typeof t.tracesSampler=="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,a,r];const i=nOi(a)(()=>{const u=C(),f=ms(u,a),p=t.onlyIfParent&&!f?new Ee:ls({parentSpan:f,spanArguments:r,forceTransaction:s,scope:u});return $t(u,p),Pi(()=>e(p),()=>{const{status:l}=R(p);p.isRecording()&&(!l||l==="ok")&&p.setStatus({code:Me,message:"internal_error"})},()=>{p.end()})}))}function xe(t){const e=Mn();if(e.startInactiveSpan)return e.startInactiveSpan(t);const n=ps(t),{forceTransaction:r,parentSpan:s}=t;return(t.scope?i=>Ht(t.scope,i):s!==void 0?i=>Fn(s,i):i=>i())(()=>{const i=C(),o=ms(i,s);return t.onlyIfParent&&!o?new Ee:ls({parentSpan:o,spanArguments:n,forceTransaction:r,scope:i})})}function Fn(t,e){const n=Mn();return n.withActiveSpan?n.withActiveSpan(t,e):Ht(r=>($t(r,t||void 0),e(r)))}function ls({parentSpan:t,spanArguments:e,forceTransaction:n,scope:r}){if(!Le()){const i=new Ee;if(n||!t){const o={sampled:"false",sample_rate:"0",transaction:e.name,...Ne(i)};Tt(i,o)}return i}const s=Bt();let a;if(t&&!n)a=Ci(t,r,e),Xr(t,a);else if(t){const i=Ne(t),{traceId:o,spanId:c}=t.spanContext(),u=Mt(t);a=_r({traceId:o,parentSpanId:c,...e},r,u),Tt(a,i)}else{const{traceId:i,dsc:o,parentSpanId:c,sampled:u}={...s.getPropagationContext(),...r.getPropagationContext()};a=_r({traceId:i,parentSpanId:c,...e},r,u),o&&Tt(a,o)}return bi(a),ma(a,r,s),a}function ps(t){const n={isStandalone:(t.experimental||{}).standalone,...t};if(t.startTime){const r={...n};return r.startTimestamp=Xe(t.startTime),delete r.startTime,r}return n}function Mn(){const t=Yr();return zr(t)}function _r(t,e,n){var m;const r=k(),s=(r==null?void 0:r.getOptions())||{},{name:a=""}=t,i={spanAttributes:{...t.attributes},spanName:a,parentSampled:n};r==null||r.emit("beforeSampling",i,{decision:!1});const o=i.parentSampled??n,c=i.spanAttributes,u=e.getPropagationContext(),[f,d,p]=e.getScopeData().sdkProcessingMetadata[fs]?[!1]:Ni(s,{name:a,parentSampled:o,attributes:c,parentSampleRate:On((m=u.dsc)==null?void 0:m.sample_rate)},u.sampleRand),l=new jt({...t,attributes:{[Z]:"custom",[Jr]:d!==void 0&&p?d:void 0,...c},sampled:f});return!f&&r&&(S&&g.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),r.recordDroppedEvent("sample_rate","transaction")),r&&r.emit("spanStart",l),l}function Ci(t,e,n){const{spanId:r,traceId:s}=t.spanContext(),a=e.getScopeData().sdkProcessingMetadata[fs]?!1:Mt(t),i=a?new jt({...n,parentSpanId:r,traceId:s,sampled:a}):new Ee({traceId:s});Xr(t,i);const o=k();return o&&(o.emit("spanStart",i),n.endTimestamp&&o.emit("spanEnd",i)),i}function ms(t,e){if(e)return e;if(e===null)return;const n=pa(t);if(!n)return;const r=k();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?W(n):n}function Oi(t){return t!==void 0?e=>Fn(t,e):e=>e()}const It={idleTimeout:1e3,finalTimeout:3e4,childSpanTimeout:15e3},xi="heartbeatFailed",Di="idleTimeout",Fi="finalTimeout",Mi="externalFinish";function gs(t,e={}){const n=new Map;let r=!1,s,a=Mi,i=!e.disableAutoFinish;const o=[],{idleTimeout:c=It.idleTimeout,finalTimeout:u=It.finalTimeout,childSpanTimeout:f=It.childSpanTimeout,beforeSpanEnd:d}=e,p=k();if(!p||!Le()){const E=new Ee,b={sample_rate:"0",sampled:"false",...Ne(E)};return Tt(E,b),E}const l=C(),m=G(),h=Hi(t);h.end=new Proxy(h.end,{apply(E,b,be){if(d&&d(h),b instanceof Ee)return;const[me,...ge]=be,ce=me||q(),N=Xe(ce),H=Et(h).filter(P=>P!==h);if(!H.length)return z(N),Reflect.apply(E,b,[N,...ge]);const X=H.map(P=>R(P).timestamp).filter(P=>!!P),y=X.length?Math.max(...X):void 0,A=R(h).start_timestamp,v=Math.min(A?A+u/1e3:1/0,Math.max(A||-1/0,Math.min(N,y||1/0)));return z(v),Reflect.apply(E,b,[v,...ge])}});function x(){s&&(clearTimeout(s),s=void 0)}function I(E){x(),s=setTimeout(()=>{!r&&n.size===0&&i&&(a=Di,h.end(E))},c)}function M(E){s=setTimeout(()=>{!r&&i&&(a=xi,h.end(E))},f)}function $(E){x(),n.set(E,!0);const b=q();M(b+f/1e3)}function oe(E){if(n.has(E)&&n.delete(E),n.size===0){const b=q();I(b+c/1e3)}}function z(E){r=!0,n.clear(),o.forEach(N=>N()),$t(l,m);const b=R(h),{start_timestamp:be}=b;if(!be)return;b.data[kt]||h.setAttribute(kt,a),g.log(`[Tracing] Idle span "${b.op}" finished`);const ge=Et(h).filter(N=>N!==h);let ce=0;ge.forEach(N=>{N.isRecording()&&(N.setStatus({code:Me,message:"cancelled"}),N.end(E),S&&g.log("[Tracing] Cancelling span since span ended early",JSON.stringify(N,void 0,2)));const H=R(N),{timestamp:X=0,start_timestamp:y=0}=H,A=y<=E,v=(u+c)/1e3,P=X-y<=v;if(S){const w=JSON.stringify(N,void 0,2);A?P||g.log("[Tracing] Discarding span since it finished after idle span final timeout",w):g.log("[Tracing] Discarding span since it happened after idle span was finished",w)}(!P||!A)&&(ga(h,N),ce++)}),ce>0&&h.setAttribute("sentry.idle_span_discarded_spans",ce)}return o.push(p.on("spanStart",E=>{if(r||E===h||R(E).timestamp||E instanceof jt&&E.isStandaloneSpan())return;Et(h).includes(E)&&$(E.spanContext().spanId)})),o.push(p.on("spanEnd",E=>{r||oe(E.spanContext().spanId)})),o.push(p.on("idleSpanEnableAutoFinish",E=>{E===h&&(i=!0,I(),n.size&&M())})),e.disableAutoFinish||I(),setTimeout(()=>{r||(h.setStatus({code:Me,message:"deadline_exceeded"}),a=Fi,h.end())},u),h}function Hi(t){const e=xe(t);return $t(C(),e),S&&g.log("[Tracing] Started span is an idle span"),e}const $i="7";function Bi(t){const e=t.protocol?`${t.protocol}:`:"",n=t.port?`:${t.port}`:"";return`${e}//${t.host}${n}${t.path?`/${t.path}`:""}/api/`}function Ui(t){return`${Bi(t)}${t.projectId}/envelope/`}function qi(t,e){const n={sentry_version:$i};return t.publicKey&&(n.sentry_key=t.publicKey),e&&(n.sentry_client=`${e.name}/${e.version}`),new URLSearchParams(n).toString()}function ji(t,e,n){return e||`${Ui(t)}?${qi(t,n)}`}const Sr=[];function Vi(t){const e={};return t.forEach(n=>{const{name:r}=n,s=e[r];s&&!s.isDefaultInstance&&n.isDefaultInstance||(e[r]=n)}),Object.values(e)}function Wi(t){const e=t.defaultIntegrations||[],n=t.integrations;e.forEach(s=>{s.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...e,...n];else if(typeof n=="function"){const s=n(e);r=Array.isArray(s)?s:[s]}else r=e;return Vi(r)}function Gi(t,e){const n={};return e.forEach(r=>{r&&hs(t,r,n)}),n}function Er(t,e){for(const n of e)n!=null&&n.afterAllSetup&&n.afterAllSetup(t)}function hs(t,e,n){if(n[e.name]){S&&g.log(`Integration skipped because it was already installed: ${e.name}`);return}if(n[e.name]=e,Sr.indexOf(e.name)===-1&&typeof e.setupOnce=="function"&&(e.setupOnce(),Sr.push(e.name)),e.setup&&typeof e.setup=="function"&&e.setup(t),typeof e.preprocessEvent=="function"){const r=e.preprocessEvent.bind(e);t.on("preprocessEvent",(s,a)=>r(s,a,t))}if(typeof e.processEvent=="function"){const r=e.processEvent.bind(e),s=Object.assign((a,i)=>r(a,i,t),{id:e.name});t.addEventProcessor(s)}S&&g.log(`Integration installed: ${e.name}`)}function Yi(t,e,n){const r=[{type:"client_report"},{timestamp:Ut(),discarded_events:t}];return qe(e?{dsn:e}:{},[r])}function _s(t){const e=[];t.message&&e.push(t.message);try{const n=t.exception.values[t.exception.values.length-1];n!=null&&n.value&&(e.push(n.value),n.type&&e.push(`${n.type}: ${n.value}`))}catch{}return e}function zi(t){var c;const{trace_id:e,parent_span_id:n,span_id:r,status:s,origin:a,data:i,op:o}=((c=t.contexts)==null?void 0:c.trace)??{};return{data:i??{},description:t.transaction,op:o,parent_span_id:n,span_id:r??"",start_timestamp:t.start_timestamp??0,status:s,timestamp:t.timestamp,trace_id:e??"",origin:a,profile_id:i==null?void 0:i[Cn],exclusive_time:i==null?void 0:i[Ue],measurements:t.measurements,is_segment:!0}}function Xi(t){return{type:"transaction",timestamp:t.timestamp,start_timestamp:t.start_timestamp,transaction:t.description,contexts:{trace:{trace_id:t.trace_id,span_id:t.span_id,parent_span_id:t.parent_span_id,op:t.op,status:t.status,origin:t.origin,data:{...t.data,...t.profile_id&&{[Cn]:t.profile_id},...t.exclusive_time&&{[Ue]:t.exclusive_time}}}},measurements:t.measurements}}const Tr="Not capturing exception because it's already been captured.",yr="Discarded session because of missing or non-string release",Ss=Symbol.for("SentryInternalError"),Es=Symbol.for("SentryDoNotSendEventError");function Rt(t){return{message:t,[Ss]:!0}}function rn(t){return{message:t,[Es]:!0}}function vr(t){return!!t&&typeof t=="object"&&Ss in t}function br(t){return!!t&&typeof t=="object"&&Es in t}class Ji{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=ha(e.dsn):S&&g.warn("No DSN provided, client will not send events."),this._dsn){const n=ji(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:n})}}captureException(e,n,r){const s=yt();if(er(e))return S&&g.log(Tr),s;const a={event_id:s,...n};return this._process(this.eventFromException(e,a).then(i=>this._captureEvent(i,a,r))),a.event_id}captureMessage(e,n,r,s){const a={event_id:yt(),...r},i=Zr(e)?e:String(e),o=Ze(e)?this.eventFromMessage(i,n,a):this.eventFromException(e,a);return this._process(o.then(c=>this._captureEvent(c,a,s))),a.event_id}captureEvent(e,n,r){const s=yt();if(n!=null&&n.originalException&&er(n.originalException))return S&&g.log(Tr),s;const a={event_id:s,...n},i=e.sdkProcessingMetadata||{},o=i.capturedSpanScope,c=i.capturedSpanIsolationScope;return this._process(this._captureEvent(e,a,o||r,c)),a.event_id}captureSession(e){this.sendSession(e),tr(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const n=this._transport;return n?(this.emit("flush"),this._isClientDoneProcessing(e).then(r=>n.flush(e).then(s=>r&&s))):Ce(!0)}close(e){return this.flush(e).then(n=>(this.getOptions().enabled=!1,this.emit("close"),n))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const n=this._integrations[e.name];hs(this,e,this._integrations),n||Er(this,[e])}sendEvent(e,n={}){this.emit("beforeSendEvent",e,n);let r=yi(e,this._dsn,this._options._metadata,this._options.tunnel);for(const a of n.attachments||[])r=di(r,mi(a));const s=this.sendEnvelope(r);s&&s.then(a=>this.emit("afterSendEvent",e,a),null)}sendSession(e){const{release:n,environment:r=_a}=this._options;if("aggregates"in e){const a=e.attrs||{};if(!a.release&&!n){S&&g.warn(yr);return}a.release=a.release||n,a.environment=a.environment||r,e.attrs=a}else{if(!e.release&&!n){S&&g.warn(yr);return}e.release=e.release||n,e.environment=e.environment||r}this.emit("beforeSendSession",e);const s=Ti(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(s)}recordDroppedEvent(e,n,r=1){if(this._options.sendClientReports){const s=`${e}:${n}`;S&&g.log(`Recording outcome: "${s}"${r>1?` (${r} times)`:""}`),this._outcomes[s]=(this._outcomes[s]||0)+r}}on(e,n){const r=this._hooks[e]=this._hooks[e]||[];return r.push(n),()=>{const s=r.indexOf(n);s>-1&&r.splice(s,1)}}emit(e,...n){const r=this._hooks[e];r&&r.forEach(s=>s(...n))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,n=>(S&&g.error("Error while sending envelope:",n),n)):(S&&g.error("Transport disabled"),Ce({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=Gi(this,e),Er(this,e)}_updateSessionFromEvent(e,n){var c;let r=n.level==="fatal",s=!1;const a=(c=n.exception)==null?void 0:c.values;if(a){s=!0;for(const u of a){const f=u.mechanism;if((f==null?void 0:f.handled)===!1){r=!0;break}}}const i=e.status==="ok";(i&&e.errors===0||i&&r)&&(tr(e,{...r&&{status:"crashed"},errors:e.errors||Number(s||r)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Kr(n=>{let r=0;const s=1,a=setInterval(()=>{this._numProcessing==0?(clearInterval(a),n(!0)):(r+=s,e&&r>=e&&(clearInterval(a),n(!1)))},s)})}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,n,r,s){const a=this.getOptions(),i=Object.keys(this._integrations);return!n.integrations&&(i!=null&&i.length)&&(n.integrations=i),this.emit("preprocessEvent",e,n),e.type||s.setLastEventId(e.event_id||n.event_id),Sa(a,e,n,r,this,s).then(o=>{if(o===null)return o;this.emit("postprocessEvent",o,n),o.contexts={trace:Ea(r),...o.contexts};const c=Qr(this,r);return o.sdkProcessingMetadata={dynamicSamplingContext:c,...o.sdkProcessingMetadata},o})}_captureEvent(e,n={},r=C(),s=Bt()){return S&&En(e)&&g.log(`Captured error event \`${_s(e)[0]||""}\``),this._processEvent(e,n,r,s).then(a=>a.event_id,a=>{S&&(br(a)?g.log(a.message):vr(a)?g.warn(a.message):g.warn(a))})}_processEvent(e,n,r,s){const a=this.getOptions(),{sampleRate:i}=a,o=Ts(e),c=En(e),u=e.type||"error",f=`before send for type \`${u}\``,d=typeof i>"u"?void 0:On(i);if(c&&typeof d=="number"&&Math.random()>d)return this.recordDroppedEvent("sample_rate","error"),Nt(rn(`Discarding event because it's not included in the random sample (sampling rate = ${i})`));const p=u==="replay_event"?"replay":u;return this._prepareEvent(e,n,r,s).then(l=>{if(l===null)throw this.recordDroppedEvent("event_processor",p),rn("An event processor returned `null`, will not send event.");if(n.data&&n.data.__sentry__===!0)return l;const h=Qi(this,a,l,n);return Ki(h,f)}).then(l=>{var x;if(l===null){if(this.recordDroppedEvent("before_send",p),o){const M=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",M)}throw rn(`${f} returned \`null\`, will not send event.`)}const m=r.getSession()||s.getSession();if(c&&m&&this._updateSessionFromEvent(m,l),o){const I=((x=l.sdkProcessingMetadata)==null?void 0:x.spanCountBeforeProcessing)||0,M=l.spans?l.spans.length:0,$=I-M;$>0&&this.recordDroppedEvent("before_send","span",$)}const h=l.transaction_info;if(o&&h&&l.transaction!==e.transaction){const I="custom";l.transaction_info={...h,source:I}}return this.sendEvent(l,n),l}).then(null,l=>{throw br(l)||vr(l)?l:(this.captureException(l,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:l}),Rt(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${l}`))})}_process(e){this._numProcessing++,e.then(n=>(this._numProcessing--,n),n=>(this._numProcessing--,n))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([n,r])=>{const[s,a]=n.split(":");return{reason:s,category:a,quantity:r}})}_flushOutcomes(){S&&g.log("Flushing outcomes...");const e=this._clearOutcomes();if(e.length===0){S&&g.log("No outcomes to send");return}if(!this._dsn){S&&g.log("No dsn provided, will not send outcomes");return}S&&g.log("Sending outcomes:",e);const n=Yi(e,this._options.tunnel&&st(this._dsn));this.sendEnvelope(n)}}function Ki(t,e){const n=`${e} must return \`null\` or a valid event.`;if(Gr(t))return t.then(r=>{if(!gn(r)&&r!==null)throw Rt(n);return r},r=>{throw Rt(`${e} rejected with ${r}`)});if(!gn(t)&&t!==null)throw Rt(n);return t}function Qi(t,e,n,r){const{beforeSend:s,beforeSendTransaction:a,beforeSendSpan:i,ignoreSpans:o}=e;let c=n;if(En(c)&&s)return s(c,r);if(Ts(c)){if(i||o){const u=zi(c);if(o!=null&&o.length&&Sn(u,o))return null;if(i){const f=i(u);f?c=Ta(n,Xi(f)):mn()}if(c.spans){const f=[],d=c.spans;for(const l of d){if(o!=null&&o.length&&Sn(l,o)){_i(d,l);continue}if(i){const m=i(l);m?f.push(m):(mn(),f.push(l))}else f.push(l)}const p=c.spans.length-f.length;p&&t.recordDroppedEvent("before_send","span",p),c.spans=f}}if(a){if(c.spans){const u=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return a(c,r)}}return c}function En(t){return t.type===void 0}function Ts(t){return t.type==="transaction"}function Zi(t){return[{type:"log",item_count:t.length,content_type:"application/vnd.sentry.items.log+json"},{items:t}]}function eo(t,e,n,r){const s={};return e!=null&&e.sdk&&(s.sdk={name:e.sdk.name,version:e.sdk.version}),n&&r&&(s.dsn=st(r)),qe(s,[Zi(t)])}function sn(t,e){const n=to(t)??[];if(n.length===0)return;const r=t.getOptions(),s=eo(n,r._metadata,r.tunnel,t.getDsn());ys().set(t,[]),t.emit("flushLogs"),t.sendEnvelope(s)}function to(t){return ys().get(t)}function ys(){return ya("clientToLogBufferMap",()=>new WeakMap)}function no(t,e){e.debug===!0&&(S?g.enable():qt(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),C().update(e.initialScope);const r=new t(e);return ro(r),r.init(),r}function ro(t){C().setClient(t)}const vs=Symbol.for("SentryBufferFullError");function so(t){const e=[];function n(){return t===void 0||e.lengthr(o)).then(null,()=>r(o).then(null,()=>{})),o}function a(i){return new Kr((o,c)=>{let u=e.length;if(!u)return o(!0);const f=setTimeout(()=>{i&&i>0&&o(!1)},i);e.forEach(d=>{Ce(d).then(()=>{--u||(clearTimeout(f),o(!0))},c)})})}return{$:e,add:s,drain:a}}const ao=60*1e3;function io(t,e=Date.now()){const n=parseInt(`${t}`,10);if(!isNaN(n))return n*1e3;const r=Date.parse(`${t}`);return isNaN(r)?ao:r-e}function oo(t,e){return t[e]||t.all||0}function co(t,e,n=Date.now()){return oo(t,e)>n}function uo(t,{statusCode:e,headers:n},r=Date.now()){const s={...t},a=n==null?void 0:n["x-sentry-rate-limits"],i=n==null?void 0:n["retry-after"];if(a)for(const o of a.trim().split(",")){const[c,u,,,f]=o.split(":",5),d=parseInt(c,10),p=(isNaN(d)?60:d)*1e3;if(!u)s.all=r+p;else for(const l of u.split(";"))l==="metric_bucket"?(!f||f.split(";").includes("custom"))&&(s[l]=r+p):s[l]=r+p}else i?s.all=r+io(i,r):e===429&&(s.all=r+60*1e3);return s}const fo=64;function lo(t,e,n=so(t.bufferSize||fo)){let r={};const s=i=>n.drain(i);function a(i){const o=[];if(fr(i,(d,p)=>{const l=lr(p);co(r,l)?t.recordDroppedEvent("ratelimit_backoff",l):o.push(d)}),o.length===0)return Ce({});const c=qe(i[0],o),u=d=>{fr(c,(p,l)=>{t.recordDroppedEvent(d,lr(l))})},f=()=>e({body:fi(c)}).then(d=>(d.statusCode!==void 0&&(d.statusCode<200||d.statusCode>=300)&&S&&g.warn(`Sentry responded with status code ${d.statusCode} to sent event.`),r=uo(r,d),d),d=>{throw u("network_error"),S&&g.error("Encountered error running transport request:",d),d});return n.add(f).then(d=>d,d=>{if(d===vs)return S&&g.error("Skipped sending event because buffer is full."),u("queue_overflow"),Ce({});throw d})}return{send:a,flush:s}}const po="thismessage:/";function bs(t){return"isRelative"in t}function Is(t,e){const n=t.indexOf("://")<=0&&t.indexOf("//")!==0,r=n?po:void 0;try{if("canParse"in URL&&!URL.canParse(t,r))return;const s=new URL(t,r);return n?{isRelative:n,pathname:s.pathname,search:s.search,hash:s.hash}:s}catch{}}function mo(t){if(bs(t))return t.pathname;const e=new URL(t);return e.search="",e.hash="",["80","443"].includes(e.port)&&(e.port=""),e.password&&(e.password="%filtered%"),e.username&&(e.username="%filtered%"),e.toString()}function ke(t){if(!t)return{};const e=t.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)return{};const n=e[6]||"",r=e[8]||"";return{host:e[4],path:e[5],protocol:e[2],search:n,hash:r,relative:e[5]+n+r}}function go(t){return t.split(/[?#]/,1)[0]}function ho(t){var e;"aggregates"in t?((e=t.attrs)==null?void 0:e.ip_address)===void 0&&(t.attrs={...t.attrs,ip_address:"{{auto}}"}):t.ipAddress===void 0&&(t.ipAddress="{{auto}}")}function Hn(t,e,n=[e],r="npm"){const s=t._metadata||{};s.sdk||(s.sdk={name:`sentry.javascript.${e}`,packages:n.map(a=>({name:`${r}:@sentry/${a}`,version:nr})),version:nr}),t._metadata=s}function Rs(t={}){const e=t.client||k();if(!va()||!e)return{};const n=Yr(),r=zr(n);if(r.getTraceData)return r.getTraceData(t);const s=t.scope||C(),a=t.span||G(),i=a?ba(a):_o(s),o=a?Ne(a):Qr(e,s),c=Ia(o);if(!Ra.test(i))return g.warn("Invalid sentry-trace data. Cannot generate trace data"),{};const f={"sentry-trace":i,baggage:c};if(t.propagateTraceparent){const d=So(i);d&&(f.traceparent=d)}return f}function _o(t){const{traceId:e,sampled:n,propagationSpanId:r}=t.getPropagationContext();return wa(e,r,n)}function So(t){const{traceId:e,parentSpanId:n,parentSampled:r}=Aa(t)||{};if(!(!e||!n))return`00-${e}-${n}-${r?"01":"00"}`}const Eo=100;function Oe(t,e){const n=k(),r=Bt();if(!n)return;const{beforeBreadcrumb:s=null,maxBreadcrumbs:a=Eo}=n.getOptions();if(a<=0)return;const o={timestamp:Ut(),...t},c=s?qt(()=>s(o,e)):o;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,e),r.addBreadcrumb(c,a))}let Ir;const To="FunctionToString",Rr=new WeakMap,yo=(()=>({name:To,setupOnce(){Ir=Function.prototype.toString;try{Function.prototype.toString=function(...t){const e=xn(this),n=Rr.has(k())&&e!==void 0?e:this;return Ir.apply(n,t)}}catch{}},setup(t){Rr.set(t,!0)}})),vo=yo,bo=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],Io="EventFilters",Ro=(t={})=>{let e;return{name:Io,setup(n){const r=n.getOptions();e=wr(t,r)},processEvent(n,r,s){if(!e){const a=s.getOptions();e=wr(t,a)}return Ao(n,e)?null:n}}},wo=((t={})=>({...Ro(t),name:"InboundFilters"}));function wr(t={},e={}){return{allowUrls:[...t.allowUrls||[],...e.allowUrls||[]],denyUrls:[...t.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...t.ignoreErrors||[],...e.ignoreErrors||[],...t.disableErrorDefaults?[]:bo],ignoreTransactions:[...t.ignoreTransactions||[],...e.ignoreTransactions||[]]}}function Ao(t,e){if(t.type){if(t.type==="transaction"&&ko(t,e.ignoreTransactions))return S&&g.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${Pe(t)}`),!0}else{if(Po(t,e.ignoreErrors))return S&&g.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${Pe(t)}`),!0;if(Oo(t))return S&&g.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${Pe(t)}`),!0;if(No(t,e.denyUrls))return S&&g.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${Pe(t)}. -Url: ${Ct(t)}`),!0;if(!Lo(t,e.allowUrls))return S&&g.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${Pe(t)}. -Url: ${Ct(t)}`),!0}return!1}function Po(t,e){return e!=null&&e.length?_s(t).some(n=>he(n,e)):!1}function ko(t,e){if(!(e!=null&&e.length))return!1;const n=t.transaction;return n?he(n,e):!1}function No(t,e){if(!(e!=null&&e.length))return!1;const n=Ct(t);return n?he(n,e):!1}function Lo(t,e){if(!(e!=null&&e.length))return!0;const n=Ct(t);return n?he(n,e):!0}function Co(t=[]){for(let e=t.length-1;e>=0;e--){const n=t[e];if(n&&n.filename!==""&&n.filename!=="[native code]")return n.filename||null}return null}function Ct(t){var e,n;try{const r=[...((e=t.exception)==null?void 0:e.values)??[]].reverse().find(a=>{var i,o,c;return((i=a.mechanism)==null?void 0:i.parent_id)===void 0&&((c=(o=a.stacktrace)==null?void 0:o.frames)==null?void 0:c.length)}),s=(n=r==null?void 0:r.stacktrace)==null?void 0:n.frames;return s?Co(s):null}catch{return S&&g.error(`Cannot extract url for event ${Pe(t)}`),null}}function Oo(t){var e,n;return(n=(e=t.exception)==null?void 0:e.values)!=null&&n.length?!t.message&&!t.exception.values.some(r=>r.stacktrace||r.type&&r.type!=="Error"||r.value):!1}function xo(t,e,n,r,s,a){var o;if(!((o=s.exception)!=null&&o.values)||!a||!Lt(a.originalException,Error))return;const i=s.exception.values.length>0?s.exception.values[s.exception.values.length-1]:void 0;i&&(s.exception.values=Tn(t,e,r,a.originalException,n,s.exception.values,i,0))}function Tn(t,e,n,r,s,a,i,o){if(a.length>=n+1)return a;let c=[...a];if(Lt(r[s],Error)){Ar(i,o);const u=t(e,r[s]),f=c.length;Pr(u,s,f,o),c=Tn(t,e,n,r[s],s,[u,...c],u,f)}return Array.isArray(r.errors)&&r.errors.forEach((u,f)=>{if(Lt(u,Error)){Ar(i,o);const d=t(e,u),p=c.length;Pr(d,`errors[${f}]`,p,o),c=Tn(t,e,n,u,s,[d,...c],d,p)}}),c}function Ar(t,e){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,...t.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function Pr(t,e,n,r){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,type:"chained",source:e,exception_id:n,parent_id:r}}function Do(t){const e="console";ye(e,t),ve(e,Fo)}function Fo(){"console"in F&&Pa.forEach(function(t){t in F.console&&V(F.console,t,function(e){return rr[t]=e,function(...n){ee("console",{args:n,level:t});const s=rr[t];s==null||s.apply(F.console,n)}})})}function Mo(t){return t==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(t)?t:"log"}const Ho="Dedupe",$o=(()=>{let t;return{name:Ho,processEvent(e){if(e.type)return e;try{if(Uo(e,t))return S&&g.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return t=e}}}),Bo=$o;function Uo(t,e){return e?!!(qo(t,e)||jo(t,e)):!1}function qo(t,e){const n=t.message,r=e.message;return!(!n&&!r||n&&!r||!n&&r||n!==r||!As(t,e)||!ws(t,e))}function jo(t,e){const n=kr(e),r=kr(t);return!(!n||!r||n.type!==r.type||n.value!==r.value||!As(t,e)||!ws(t,e))}function ws(t,e){let n=sr(t),r=sr(e);if(!n&&!r)return!0;if(n&&!r||!n&&r||(n=n,r=r,r.length!==n.length))return!1;for(let s=0;sd[0]==="sentry-trace")||u.push(["sentry-trace",a]),r&&o&&!c.find(d=>d[0]==="traceparent")&&u.push(["traceparent",o]);const f=c.find(d=>d[0]==="baggage"&&mt(d[1]));return i&&!f&&u.push(["baggage",i]),u}else{const u="sentry-trace"in c?c["sentry-trace"]:void 0,f="traceparent"in c?c.traceparent:void 0,d="baggage"in c?c.baggage:void 0,p=d?Array.isArray(d)?[...d]:[d]:[],l=d&&(Array.isArray(d)?d.find(h=>mt(h)):mt(d));i&&!l&&p.push(i);const m={...c,"sentry-trace":u??a,baggage:p.length>0?p.join(","):void 0};return r&&o&&!f&&(m.traceparent=o),m}else return{...s}}function Go(t,e){var n,r;if(e.response){es(t,e.response.status);const s=(r=(n=e.response)==null?void 0:n.headers)==null?void 0:r.get("content-length");if(s){const a=parseInt(s);a>0&&t.setAttribute("http.response_content_length",a)}}else e.error&&t.setStatus({code:Me,message:"internal_error"});t.end()}function mt(t){return t.split(",").some(e=>e.trim().startsWith(ka))}function Yo(t){return typeof Headers<"u"&&Lt(t,Headers)}function zo(t,e,n){const r=Is(t);return{name:r?`${e} ${mo(r)}`:e,attributes:Xo(t,r,e,n)}}function Xo(t,e,n,r){const s={url:t,type:"fetch","http.method":n,[D]:r,[Se]:"http.client"};return e&&(bs(e)||(s["http.url"]=e.href,s["server.address"]=e.host),e.search&&(s["http.query"]=e.search),e.hash&&(s["http.fragment"]=e.hash)),s}function Ps(t){if(t!==void 0)return t>=400&&t<500?"warning":t>=500?"error":void 0}const nt=F;function Jo(){return"history"in nt&&!!nt.history}function Ko(){if(!("fetch"in nt))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function yn(t){return t&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(t.toString())}function Qo(){var n;if(typeof EdgeRuntime=="string")return!0;if(!Ko())return!1;if(yn(nt.fetch))return!0;let t=!1;const e=nt.document;if(e&&typeof e.createElement=="function")try{const r=e.createElement("iframe");r.hidden=!0,e.head.appendChild(r),(n=r.contentWindow)!=null&&n.fetch&&(t=yn(r.contentWindow.fetch)),e.head.removeChild(r)}catch(r){S&&g.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",r)}return t}function ks(t,e){const n="fetch";ye(n,t),ve(n,()=>Ns(void 0,e))}function Zo(t){const e="fetch-body-resolved";ye(e,t),ve(e,()=>Ns(tc))}function Ns(t,e=!1){e&&!Qo()||V(F,"fetch",function(n){return function(...r){const s=new Error,{method:a,url:i}=nc(r),o={args:r,fetchData:{method:a,url:i},startTimestamp:q()*1e3,virtualError:s,headers:rc(r)};return t||ee("fetch",{...o}),n.apply(F,r).then(async c=>(t?t(c):ee("fetch",{...o,endTimestamp:q()*1e3,response:c}),c),c=>{if(ee("fetch",{...o,endTimestamp:q()*1e3,error:c}),ns(c)&&c.stack===void 0&&(c.stack=s.stack,et(c,"framesToPop",1)),c instanceof TypeError&&(c.message==="Failed to fetch"||c.message==="Load failed"||c.message==="NetworkError when attempting to fetch resource."))try{const u=new URL(o.fetchData.url);c.message=`${c.message} (${u.host})`}catch{}throw c})}})}async function ec(t,e){if(t!=null&&t.body){const n=t.body,r=n.getReader(),s=setTimeout(()=>{n.cancel().then(null,()=>{})},90*1e3);let a=!0;for(;a;){let i;try{i=setTimeout(()=>{n.cancel().then(null,()=>{})},5e3);const{done:o}=await r.read();clearTimeout(i),o&&(e(),a=!1)}catch{a=!1}finally{clearTimeout(i)}}clearTimeout(s),r.releaseLock(),n.cancel().then(null,()=>{})}}function tc(t){let e;try{e=t.clone()}catch{return}ec(e,()=>{ee("fetch-body-resolved",{endTimestamp:q()*1e3,response:t})})}function vn(t,e){return!!t&&typeof t=="object"&&!!t[e]}function Nr(t){return typeof t=="string"?t:t?vn(t,"url")?t.url:t.toString?t.toString():"":""}function nc(t){if(t.length===0)return{method:"GET",url:""};if(t.length===2){const[n,r]=t;return{url:Nr(n),method:vn(r,"method")?String(r.method).toUpperCase():"GET"}}const e=t[0];return{url:Nr(e),method:vn(e,"method")?String(e.method).toUpperCase():"GET"}}function rc(t){const[e,n]=t;try{if(typeof n=="object"&&n!==null&&"headers"in n&&n.headers)return new Headers(n.headers);if(ts(e))return new Headers(e.headers)}catch{}}function sc(){return"npm"}const T=F;let bn=0;function Ls(){return bn>0}function ac(){bn++,setTimeout(()=>{bn--})}function $e(t,e={}){function n(s){return typeof s=="function"}if(!n(t))return t;try{const s=t.__sentry_wrapped__;if(s)return typeof s=="function"?s:t;if(xn(t))return t}catch{return t}const r=function(...s){try{const a=s.map(i=>$e(i,e));return t.apply(this,a)}catch(a){throw ac(),Ht(i=>{i.addEventProcessor(o=>(e.mechanism&&(hn(o,void 0),tt(o,e.mechanism)),o.extra={...o.extra,arguments:s},o)),rs(a)}),a}};try{for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(r[s]=t[s])}catch{}Na(r,t),et(t,"__sentry_wrapped__",r);try{Object.getOwnPropertyDescriptor(r,"name").configurable&&Object.defineProperty(r,"name",{get(){return t.name}})}catch{}return r}function $n(){const t=ot(),{referrer:e}=T.document||{},{userAgent:n}=T.navigator||{},r={...e&&{Referer:e},...n&&{"User-Agent":n}};return{url:t,headers:r}}function Bn(t,e){const n=Un(t,e),r={type:dc(e),value:fc(e)};return n.length&&(r.stacktrace={frames:n}),r.type===void 0&&r.value===""&&(r.value="Unrecoverable error caught"),r}function ic(t,e,n,r){const s=k(),a=s==null?void 0:s.getOptions().normalizeDepth,i=hc(e),o={__serialized__:Ca(e,a)};if(i)return{exception:{values:[Bn(t,i)]},extra:o};const c={exception:{values:[{type:Dn(e)?e.constructor.name:r?"UnhandledRejection":"Error",value:mc(e,{isUnhandledRejection:r})}]},extra:o};if(n){const u=Un(t,n);u.length&&(c.exception.values[0].stacktrace={frames:u})}return c}function an(t,e){return{exception:{values:[Bn(t,e)]}}}function Un(t,e){const n=e.stacktrace||e.stack||"",r=cc(e),s=uc(e);try{return t(n,r,s)}catch{}return[]}const oc=/Minified React error #\d+;/i;function cc(t){return t&&oc.test(t.message)?1:0}function uc(t){return typeof t.framesToPop=="number"?t.framesToPop:0}function Cs(t){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?t instanceof WebAssembly.Exception:!1}function dc(t){const e=t==null?void 0:t.name;return!e&&Cs(t)?t.message&&Array.isArray(t.message)&&t.message.length==2?t.message[0]:"WebAssembly.Exception":e}function fc(t){const e=t==null?void 0:t.message;return Cs(t)?Array.isArray(t.message)&&t.message.length==2?t.message[1]:"wasm exception":e?e.error&&typeof e.error.message=="string"?e.error.message:e:"No error message"}function lc(t,e,n,r){const s=(n==null?void 0:n.syntheticException)||void 0,a=qn(t,e,s,r);return tt(a),a.level="error",n!=null&&n.event_id&&(a.event_id=n.event_id),Ce(a)}function pc(t,e,n="info",r,s){const a=(r==null?void 0:r.syntheticException)||void 0,i=In(t,e,a,s);return i.level=n,r!=null&&r.event_id&&(i.event_id=r.event_id),Ce(i)}function qn(t,e,n,r,s){let a;if(ss(e)&&e.error)return an(t,e.error);if(ar(e)||La(e)){const i=e;if("stack"in e)a=an(t,e);else{const o=i.name||(ar(i)?"DOMError":"DOMException"),c=i.message?`${o}: ${i.message}`:o;a=In(t,c,n,r),hn(a,c)}return"code"in i&&(a.tags={...a.tags,"DOMException.code":`${i.code}`}),a}return ns(e)?an(t,e):gn(e)||Dn(e)?(a=ic(t,e,n,s),tt(a,{synthetic:!0}),a):(a=In(t,e,n,r),hn(a,`${e}`),tt(a,{synthetic:!0}),a)}function In(t,e,n,r){const s={};if(r&&n){const a=Un(t,n);a.length&&(s.exception={values:[{value:e,stacktrace:{frames:a}}]}),tt(s,{synthetic:!0})}if(Zr(e)){const{__sentry_template_string__:a,__sentry_template_values__:i}=e;return s.logentry={message:a,params:i},s}return s.message=e,s}function mc(t,{isUnhandledRejection:e}){const n=Oa(t),r=e?"promise rejection":"exception";return ss(t)?`Event \`ErrorEvent\` captured as ${r} with message \`${t.message}\``:Dn(t)?`Event \`${gc(t)}\` (type=${t.type}) captured as ${r}`:`Object captured as ${r} with keys: ${n}`}function gc(t){try{const e=Object.getPrototypeOf(t);return e?e.constructor.name:void 0}catch{}}function hc(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)){const n=t[e];if(n instanceof Error)return n}}const _c=5e3;class Sc extends Ji{constructor(e){var o;const n=Ec(e),r=T.SENTRY_SDK_SOURCE||sc();Hn(n,"browser",["browser"],r),(o=n._metadata)!=null&&o.sdk&&(n._metadata.sdk.settings={infer_ip:n.sendDefaultPii?"auto":"never",...n._metadata.sdk.settings}),super(n);const{sendDefaultPii:s,sendClientReports:a,enableLogs:i}=this._options;T.document&&(a||i)&&T.document.addEventListener("visibilitychange",()=>{T.document.visibilityState==="hidden"&&(a&&this._flushOutcomes(),i&&sn(this))}),i&&(this.on("flush",()=>{sn(this)}),this.on("afterCaptureLog",()=>{this._logFlushIdleTimeout&&clearTimeout(this._logFlushIdleTimeout),this._logFlushIdleTimeout=setTimeout(()=>{sn(this)},_c)})),s&&this.on("beforeSendSession",ho)}eventFromException(e,n){return lc(this._options.stackParser,e,n,this._options.attachStacktrace)}eventFromMessage(e,n="info",r){return pc(this._options.stackParser,e,n,r,this._options.attachStacktrace)}_prepareEvent(e,n,r,s){return e.platform=e.platform||"javascript",super._prepareEvent(e,n,r,s)}}function Ec(t){var e;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(e=T.SENTRY_RELEASE)==null?void 0:e.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...t}}const Vt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,_=F,Tc=(t,e)=>t>e[1]?"poor":t>e[0]?"needs-improvement":"good",ct=(t,e,n,r)=>{let s,a;return i=>{e.value>=0&&(i||r)&&(a=e.value-(s??0),(a||s===void 0)&&(s=e.value,e.delta=a,e.rating=Tc(e.value,n),t(e)))}},yc=()=>`v5-${Date.now()}-${Math.floor(Math.random()*(9e12-1))+1e12}`,ut=(t=!0)=>{var n,r;const e=(r=(n=_.performance)==null?void 0:n.getEntriesByType)==null?void 0:r.call(n,"navigation")[0];if(!t||e&&e.responseStart>0&&e.responseStart{const t=ut();return(t==null?void 0:t.activationStart)??0},dt=(t,e=-1)=>{var a,i;const n=ut();let r="navigate";return n&&((a=_.document)!=null&&a.prerendering||je()>0?r="prerender":(i=_.document)!=null&&i.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:t,value:e,rating:"good",delta:0,entries:[],id:yc(),navigationType:r}},on=new WeakMap;function jn(t,e){return on.get(t)||on.set(t,new e),on.get(t)}class Ot{constructor(){Ot.prototype.__init.call(this),Ot.prototype.__init2.call(this)}__init(){this._sessionValue=0}__init2(){this._sessionEntries=[]}_processEntry(e){var s;if(e.hadRecentInput)return;const n=this._sessionEntries[0],r=this._sessionEntries[this._sessionEntries.length-1];this._sessionValue&&n&&r&&e.startTime-r.startTime<1e3&&e.startTime-n.startTime<5e3?(this._sessionValue+=e.value,this._sessionEntries.push(e)):(this._sessionValue=e.value,this._sessionEntries=[e]),(s=this._onAfterProcessingUnexpectedShift)==null||s.call(this,e)}}const Ve=(t,e,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(t)){const r=new PerformanceObserver(s=>{Promise.resolve().then(()=>{e(s.getEntries())})});return r.observe({type:t,buffered:!0,...n}),r}}catch{}},Vn=t=>{let e=!1;return()=>{e||(t(),e=!0)}};let Ke=-1;const vc=()=>{var t,e;return((t=_.document)==null?void 0:t.visibilityState)==="hidden"&&!((e=_.document)!=null&&e.prerendering)?0:1/0},xt=t=>{_.document.visibilityState==="hidden"&&Ke>-1&&(Ke=t.type==="visibilitychange"?t.timeStamp:0,Ic())},bc=()=>{addEventListener("visibilitychange",xt,!0),addEventListener("prerenderingchange",xt,!0)},Ic=()=>{removeEventListener("visibilitychange",xt,!0),removeEventListener("prerenderingchange",xt,!0)},Wn=()=>{var t;if(_.document&&Ke<0){const e=je();Ke=(_.document.prerendering||(t=globalThis.performance.getEntriesByType("visibility-state").filter(r=>r.name==="hidden"&&r.startTime>e)[0])==null?void 0:t.startTime)??vc(),bc()}return{get firstHiddenTime(){return Ke}}},Wt=t=>{var e;(e=_.document)!=null&&e.prerendering?addEventListener("prerenderingchange",()=>t(),!0):t()},Rc=[1800,3e3],wc=(t,e={})=>{Wt(()=>{const n=Wn(),r=dt("FCP");let s;const i=Ve("paint",o=>{for(const c of o)c.name==="first-contentful-paint"&&(i.disconnect(),c.startTime{wc(Vn(()=>{var o,c;const n=dt("CLS",0);let r;const s=jn(e,Ot),a=u=>{for(const f of u)s._processEntry(f);s._sessionValue>n.value&&(n.value=s._sessionValue,n.entries=s._sessionEntries,r())},i=Ve("layout-shift",a);i&&(r=ct(t,n,Ac,e.reportAllChanges),(o=_.document)==null||o.addEventListener("visibilitychange",()=>{var u;((u=_.document)==null?void 0:u.visibilityState)==="hidden"&&(a(i.takeRecords()),r(!0))}),(c=_==null?void 0:_.setTimeout)==null||c.call(_,r))}))};let Os=0,cn=1/0,gt=0;const kc=t=>{t.forEach(e=>{e.interactionId&&(cn=Math.min(cn,e.interactionId),gt=Math.max(gt,e.interactionId),Os=gt?(gt-cn)/7+1:0)})};let Rn;const xs=()=>Rn?Os:performance.interactionCount||0,Nc=()=>{"interactionCount"in performance||Rn||(Rn=Ve("event",kc,{type:"event",buffered:!0,durationThreshold:0}))},un=10;let Ds=0;const Lc=()=>xs()-Ds;class Dt{constructor(){Dt.prototype.__init.call(this),Dt.prototype.__init2.call(this)}__init(){this._longestInteractionList=[]}__init2(){this._longestInteractionMap=new Map}_resetInteractions(){Ds=xs(),this._longestInteractionList.length=0,this._longestInteractionMap.clear()}_estimateP98LongestInteraction(){const e=Math.min(this._longestInteractionList.length-1,Math.floor(Lc()/50));return this._longestInteractionList[e]}_processEntry(e){var s,a;if((s=this._onBeforeProcessingEntry)==null||s.call(this,e),!(e.interactionId||e.entryType==="first-input"))return;const n=this._longestInteractionList.at(-1);let r=this._longestInteractionMap.get(e.interactionId);if(r||this._longestInteractionList.lengthn._latency){if(r?e.duration>r._latency?(r.entries=[e],r._latency=e.duration):e.duration===r._latency&&e.startTime===r.entries[0].startTime&&r.entries.push(e):(r={id:e.interactionId,entries:[e],_latency:e.duration},this._longestInteractionMap.set(r.id,r),this._longestInteractionList.push(r)),this._longestInteractionList.sort((i,o)=>o._latency-i._latency),this._longestInteractionList.length>un){const i=this._longestInteractionList.splice(un);for(const o of i)this._longestInteractionMap.delete(o.id)}(a=this._onAfterProcessingINPCandidate)==null||a.call(this,r)}}}const Gn=t=>{const e=n=>{var r;(n.type==="pagehide"||((r=_.document)==null?void 0:r.visibilityState)==="hidden")&&t(n)};_.document&&(addEventListener("visibilitychange",e,!0),addEventListener("pagehide",e,!0))},Fs=t=>{var n;const e=_.requestIdleCallback||_.setTimeout;((n=_.document)==null?void 0:n.visibilityState)==="hidden"?t():(t=Vn(t),e(t),Gn(t))},Cc=[200,500],Oc=40,xc=(t,e={})=>{globalThis.PerformanceEventTiming&&"interactionId"in PerformanceEventTiming.prototype&&Wt(()=>{Nc();const n=dt("INP");let r;const s=jn(e,Dt),a=o=>{Fs(()=>{for(const u of o)s._processEntry(u);const c=s._estimateP98LongestInteraction();c&&c._latency!==n.value&&(n.value=c._latency,n.entries=c.entries,r())})},i=Ve("event",a,{durationThreshold:e.durationThreshold??Oc});r=ct(t,n,Cc,e.reportAllChanges),i&&(i.observe({type:"first-input",buffered:!0}),Gn(()=>{a(i.takeRecords()),r(!0)}))})};class Dc{_processEntry(e){var n;(n=this._onBeforeProcessingEntry)==null||n.call(this,e)}}const Fc=[2500,4e3],Mc=(t,e={})=>{Wt(()=>{const n=Wn(),r=dt("LCP");let s;const a=jn(e,Dc),i=c=>{e.reportAllChanges||(c=c.slice(-1));for(const u of c)a._processEntry(u),u.startTime{i(o.takeRecords()),o.disconnect(),s(!0)});for(const u of["keydown","click","visibilitychange"])_.document&&addEventListener(u,()=>Fs(c),{capture:!0,once:!0})}})},Hc=[800,1800],wn=t=>{var e,n;(e=_.document)!=null&&e.prerendering?Wt(()=>wn(t)):((n=_.document)==null?void 0:n.readyState)!=="complete"?addEventListener("load",()=>wn(t),!0):setTimeout(t)},$c=(t,e={})=>{const n=dt("TTFB"),r=ct(t,n,Hc,e.reportAllChanges);wn(()=>{const s=ut();s&&(n.value=Math.max(s.responseStart-je(),0),n.entries=[s],r(!0))})},Qe={},Ft={};let Ms,Hs,$s,Bs;function Us(t,e=!1){return Gt("cls",t,qc,Ms,e)}function qs(t,e=!1){return Gt("lcp",t,jc,Hs,e)}function Bc(t){return Gt("ttfb",t,Vc,$s)}function Uc(t){return Gt("inp",t,Wc,Bs)}function Be(t,e){return js(t,e),Ft[t]||(Gc(t),Ft[t]=!0),Vs(t,e)}function ft(t,e){const n=Qe[t];if(n!=null&&n.length)for(const r of n)try{r(e)}catch(s){Vt&&g.error(`Error while triggering instrumentation handler. -Type: ${t} -Name: ${_e(r)} -Error:`,s)}}function qc(){return Pc(t=>{ft("cls",{metric:t}),Ms=t},{reportAllChanges:!0})}function jc(){return Mc(t=>{ft("lcp",{metric:t}),Hs=t},{reportAllChanges:!0})}function Vc(){return $c(t=>{ft("ttfb",{metric:t}),$s=t})}function Wc(){return xc(t=>{ft("inp",{metric:t}),Bs=t})}function Gt(t,e,n,r,s=!1){js(t,e);let a;return Ft[t]||(a=n(),Ft[t]=!0),r&&e({metric:r}),Vs(t,e,s?a:void 0)}function Gc(t){const e={};t==="event"&&(e.durationThreshold=0),Ve(t,n=>{ft(t,{entries:n})},e)}function js(t,e){Qe[t]=Qe[t]||[],Qe[t].push(e)}function Vs(t,e,n){return()=>{n&&n();const r=Qe[t];if(!r)return;const s=r.indexOf(e);s!==-1&&r.splice(s,1)}}function Yc(t){return"duration"in t}function dn(t){return typeof t=="number"&&isFinite(t)}function Te(t,e,n,{...r}){const s=R(t).start_timestamp;return s&&s>e&&typeof t.updateStartTime=="function"&&t.updateStartTime(e),Fn(t,()=>{const a=xe({startTime:e,...r});return a&&a.end(n),a})}function Yn(t){var x;const e=k();if(!e)return;const{name:n,transaction:r,attributes:s,startTime:a}=t,{release:i,environment:o,sendDefaultPii:c}=e.getOptions(),u=e.getIntegrationByName("Replay"),f=u==null?void 0:u.getReplayId(),d=C(),p=d.getUser(),l=p!==void 0?p.email||p.id||p.ip_address:void 0;let m;try{m=d.getScopeData().contexts.profile.profile_id}catch{}const h={release:i,environment:o,user:l||void 0,profile_id:m||void 0,replay_id:f||void 0,transaction:r,"user_agent.original":(x=_.navigator)==null?void 0:x.userAgent,"client.address":c?"{{auto}}":void 0,...s};return xe({name:n,attributes:h,startTime:a,experimental:{standalone:!0}})}function Yt(){return _.addEventListener&&_.performance}function O(t){return t/1e3}function Ws(t){let e="unknown",n="unknown",r="";for(const s of t){if(s==="/"){[e,n]=t.split("/");break}if(!isNaN(Number(s))){e=r==="h"?"http":r,n=t.split(r)[1];break}r+=s}return r===t&&(e=r),{name:e,version:n}}function Gs(t){try{return PerformanceObserver.supportedEntryTypes.includes(t)}catch{return!1}}function Ys(t,e){let n,r=!1;function s(o){!r&&n&&e(o,n),r=!0}Gn(()=>{s("pagehide")});const a=t.on("beforeStartNavigationSpan",(o,c)=>{c!=null&&c.isRedirect||(s("navigation"),Lr(a,i))}),i=t.on("afterStartPageLoadSpan",o=>{n=o.spanContext().spanId,Lr(i)})}function Lr(...t){t.forEach(e=>e&&setTimeout(e,0))}function zc(t){let e=0,n;if(!Gs("layout-shift"))return;const r=Us(({metric:s})=>{const a=s.entries[s.entries.length-1];a&&(e=s.value,n=a)},!0);Ys(t,(s,a)=>{Xc(e,n,a,s),r()})}function Xc(t,e,n,r){var u;Vt&&g.log(`Sending CLS span (${t})`);const s=O((Y()||0)+((e==null?void 0:e.startTime)||0)),a=C().getScopeData().transactionName,i=e?pe((u=e.sources[0])==null?void 0:u.node):"Layout shift",o={[D]:"auto.http.browser.cls",[Se]:"ui.webvital.cls",[Ue]:(e==null?void 0:e.duration)||0,"sentry.pageload.span_id":n,"sentry.report_event":r};e!=null&&e.sources&&e.sources.forEach((f,d)=>{o[`cls.source.${d+1}`]=pe(f.node)});const c=Yn({name:i,transaction:a,attributes:o,startTime:s});c&&(c.addEvent("cls",{[at]:"",[it]:t}),c.end(s))}function Jc(t){let e=0,n;if(!Gs("largest-contentful-paint"))return;const r=qs(({metric:s})=>{const a=s.entries[s.entries.length-1];a&&(e=s.value,n=a)},!0);Ys(t,(s,a)=>{Kc(e,n,a,s),r()})}function Kc(t,e,n,r){Vt&&g.log(`Sending LCP span (${t})`);const s=O((Y()||0)+((e==null?void 0:e.startTime)||0)),a=C().getScopeData().transactionName,i=e?pe(e.element):"Largest contentful paint",o={[D]:"auto.http.browser.lcp",[Se]:"ui.webvital.lcp",[Ue]:0,"sentry.pageload.span_id":n,"sentry.report_event":r};e&&(e.element&&(o["lcp.element"]=pe(e.element)),e.id&&(o["lcp.id"]=e.id),e.url&&(o["lcp.url"]=e.url.trim().slice(0,200)),e.loadTime!=null&&(o["lcp.loadTime"]=e.loadTime),e.renderTime!=null&&(o["lcp.renderTime"]=e.renderTime),e.size!=null&&(o["lcp.size"]=e.size));const c=Yn({name:i,transaction:a,attributes:o,startTime:s});c&&(c.addEvent("lcp",{[at]:"millisecond",[it]:t}),c.end(s))}const Qc=2147483647;let Cr=0,re={},U,De;function Zc({recordClsStandaloneSpans:t,recordLcpStandaloneSpans:e,client:n}){const r=Yt();if(r&&Y()){r.mark&&_.performance.mark("sentry-tracing-init");const s=e?Jc(n):su(),a=au(),i=t?zc(n):ru();return()=>{s==null||s(),a(),i==null||i()}}return()=>{}}function eu(){Be("longtask",({entries:t})=>{const e=G();if(!e)return;const{op:n,start_timestamp:r}=R(e);for(const s of t){const a=O(Y()+s.startTime),i=O(s.duration);n==="navigation"&&r&&a{const n=G();if(n)for(const r of e.getEntries()){if(!r.scripts[0])continue;const s=O(Y()+r.startTime),{start_timestamp:a,op:i}=R(n);if(i==="navigation"&&a&&s{const e=G();if(e){for(const n of t)if(n.name==="click"){const r=O(Y()+n.startTime),s=O(n.duration),a={name:pe(n.target),op:`ui.interaction.${n.name}`,startTime:r,attributes:{[D]:"auto.ui.browser.metrics"}},i=as(n.target);i&&(a.attributes["ui.component_name"]=i),Te(e,r,r+s,a)}}})}function ru(){return Us(({metric:t})=>{const e=t.entries[t.entries.length-1];e&&(re.cls={value:t.value,unit:""},De=e)},!0)}function su(){return qs(({metric:t})=>{const e=t.entries[t.entries.length-1];e&&(re.lcp={value:t.value,unit:"millisecond"},U=e)},!0)}function au(){return Bc(({metric:t})=>{t.entries[t.entries.length-1]&&(re.ttfb={value:t.value,unit:"millisecond"})})}function iu(t,e){const n=Yt(),r=Y();if(!(n!=null&&n.getEntries)||!r)return;const s=O(r),a=n.getEntries(),{op:i,start_timestamp:o}=R(t);a.slice(Cr).forEach(c=>{const u=O(c.startTime),f=O(Math.max(0,c.duration));if(!(i==="navigation"&&o&&s+u{Ri(c,u.value,u.unit)}),t.setAttribute("performance.timeOrigin",s),t.setAttribute("performance.activationStart",je()),mu(t,e)),U=void 0,De=void 0,re={}}function ou(t,e,n,r,s,a){if(["mark","measure"].includes(e.entryType)&&he(e.name,a))return;const i=ut(!1),o=O(i?i.requestStart:0),c=s+Math.max(n,o),u=s+n,f=u+r,d={[D]:"auto.resource.browser.metrics"};c!==u&&(d["sentry.browser.measure_happened_before_request"]=!0,d["sentry.browser.measure_start_time"]=c),cu(d,e),c<=f&&Te(t,c,f,{name:e.name,op:e.entryType,attributes:d})}function cu(t,e){try{const n=e.detail;if(!n)return;if(typeof n=="object"){for(const[r,s]of Object.entries(n))if(s&&Ze(s))t[`sentry.browser.measure.detail.${r}`]=s;else if(s!==void 0)try{t[`sentry.browser.measure.detail.${r}`]=JSON.stringify(s)}catch{}return}if(Ze(n)){t["sentry.browser.measure.detail"]=n;return}try{t["sentry.browser.measure.detail"]=JSON.stringify(n)}catch{}}catch{}}function uu(t,e,n){["unloadEvent","redirect","domContentLoadedEvent","loadEvent","connect"].forEach(r=>{ht(t,e,r,n)}),ht(t,e,"secureConnection",n,"TLS/SSL"),ht(t,e,"fetch",n,"cache"),ht(t,e,"domainLookup",n,"DNS"),fu(t,e,n)}function ht(t,e,n,r,s=n){const a=du(n),i=e[a],o=e[`${n}Start`];!o||!i||Te(t,r+O(o),r+O(i),{op:`browser.${s}`,name:e.name,attributes:{[D]:"auto.ui.browser.metrics",...n==="redirect"&&e.redirectCount!=null?{"http.redirect_count":e.redirectCount}:{}}})}function du(t){return t==="secureConnection"?"connectEnd":t==="fetch"?"domainLookupStart":`${t}End`}function fu(t,e,n){const r=n+O(e.requestStart),s=n+O(e.responseEnd),a=n+O(e.responseStart);e.responseEnd&&(Te(t,r,s,{op:"browser.request",name:e.name,attributes:{[D]:"auto.ui.browser.metrics"}}),Te(t,a,s,{op:"browser.response",name:e.name,attributes:{[D]:"auto.ui.browser.metrics"}}))}function lu(t,e,n,r,s,a,i){if(e.initiatorType==="xmlhttprequest"||e.initiatorType==="fetch")return;const o=e.initiatorType?`resource.${e.initiatorType}`:"resource.other";if(i!=null&&i.includes(o))return;const c=ke(n),u={[D]:"auto.resource.browser.metrics"};fn(u,e,"transferSize","http.response_transfer_size"),fn(u,e,"encodedBodySize","http.response_content_length"),fn(u,e,"decodedBodySize","http.decoded_response_content_length");const f=e.deliveryType;f!=null&&(u["http.response_delivery_type"]=f);const d=e.renderBlockingStatus;if(d&&(u["resource.render_blocking_status"]=d),c.protocol&&(u["url.scheme"]=c.protocol.split(":").pop()),c.host&&(u["server.address"]=c.host),u["url.same_origin"]=n.includes(_.location.origin),e.nextHopProtocol!=null){const{name:m,version:h}=Ws(e.nextHopProtocol);u["network.protocol.name"]=m,u["network.protocol.version"]=h}const p=a+r,l=p+s;Te(t,p,l,{name:n.replace(_.location.origin,""),op:o,attributes:u})}function pu(t){const e=_.navigator;if(!e)return;const n=e.connection;n&&(n.effectiveType&&t.setAttribute("effectiveConnectionType",n.effectiveType),n.type&&t.setAttribute("connectionType",n.type),dn(n.rtt)&&(re["connection.rtt"]={value:n.rtt,unit:"millisecond"})),dn(e.deviceMemory)&&t.setAttribute("deviceMemory",`${e.deviceMemory} GB`),dn(e.hardwareConcurrency)&&t.setAttribute("hardwareConcurrency",String(e.hardwareConcurrency))}function mu(t,e){U&&e.recordLcpOnPageloadSpan&&(U.element&&t.setAttribute("lcp.element",pe(U.element)),U.id&&t.setAttribute("lcp.id",U.id),U.url&&t.setAttribute("lcp.url",U.url.trim().slice(0,200)),U.loadTime!=null&&t.setAttribute("lcp.loadTime",U.loadTime),U.renderTime!=null&&t.setAttribute("lcp.renderTime",U.renderTime),t.setAttribute("lcp.size",U.size)),De!=null&&De.sources&&e.recordClsOnPageloadSpan&&De.sources.forEach((n,r)=>t.setAttribute(`cls.source.${r+1}`,pe(n.node)))}function fn(t,e,n,r){const s=e[n];s!=null&&s{}}const _u=({entries:t})=>{const e=G(),n=e?W(e):void 0,r=n?R(n).description:C().getScopeData().transactionName;t.forEach(s=>{var l,m;const a=s;if(!a.identifier)return;const i=a.name,o=a.renderTime,c=a.loadTime,[u,f]=c?[O(c),"load-time"]:o?[O(o),"render-time"]:[q(),"entry-emission"],d=i==="image-paint"?O(Math.max(0,(o??0)-(c??0))):0,p={[D]:"auto.ui.browser.elementtiming",[Se]:"ui.elementtiming",[Z]:"component","sentry.span_start_time_source":f,"sentry.transaction_name":r,"element.id":a.id,"element.type":((m=(l=a.element)==null?void 0:l.tagName)==null?void 0:m.toLowerCase())||"unknown","element.size":a.naturalWidth&&a.naturalHeight?`${a.naturalWidth}x${a.naturalHeight}`:void 0,"element.render_time":o,"element.load_time":c,"element.url":a.url||void 0,"element.identifier":a.identifier,"element.paint_type":i};Li({name:`element[${a.identifier}]`,attributes:p,startTime:u,onlyIfParent:!0},h=>{h.end(u+d)})})},Su=1e3;let Or,An,Pn;function Eu(t){ye("dom",t),ve("dom",Tu)}function Tu(){if(!_.document)return;const t=ee.bind(null,"dom"),e=xr(t,!0);_.document.addEventListener("click",e,!1),_.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach(n=>{var a,i;const s=(a=_[n])==null?void 0:a.prototype;(i=s==null?void 0:s.hasOwnProperty)!=null&&i.call(s,"addEventListener")&&(V(s,"addEventListener",function(o){return function(c,u,f){if(c==="click"||c=="keypress")try{const d=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},p=d[c]=d[c]||{refCount:0};if(!p.handler){const l=xr(t);p.handler=l,o.call(this,c,l,f)}p.refCount++}catch{}return o.call(this,c,u,f)}}),V(s,"removeEventListener",function(o){return function(c,u,f){if(c==="click"||c=="keypress")try{const d=this.__sentry_instrumentation_handlers__||{},p=d[c];p&&(p.refCount--,p.refCount<=0&&(o.call(this,c,p.handler,f),p.handler=void 0,delete d[c]),Object.keys(d).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return o.call(this,c,u,f)}}))})}function yu(t){if(t.type!==An)return!1;try{if(!t.target||t.target._sentryId!==Pn)return!1}catch{}return!0}function vu(t,e){return t!=="keypress"?!1:e!=null&&e.tagName?!(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable):!0}function xr(t,e=!1){return n=>{if(!n||n._sentryCaptured)return;const r=bu(n);if(vu(n.type,r))return;et(n,"_sentryCaptured",!0),r&&!r._sentryId&&et(r,"_sentryId",yt());const s=n.type==="keypress"?"input":n.type;yu(n)||(t({event:n,name:s,global:e}),An=n.type,Pn=r?r._sentryId:void 0),clearTimeout(Or),Or=_.setTimeout(()=>{Pn=void 0,An=void 0},Su)}}function bu(t){try{return t.target}catch{return null}}let _t;function zn(t){const e="history";ye(e,t),ve(e,Iu)}function Iu(){if(_.addEventListener("popstate",()=>{const e=_.location.href,n=_t;if(_t=e,n===e)return;ee("history",{from:n,to:e})}),!Jo())return;function t(e){return function(...n){const r=n.length>2?n[2]:void 0;if(r){const s=_t,a=Ru(String(r));if(_t=a,s===a)return e.apply(this,n);ee("history",{from:s,to:a})}return e.apply(this,n)}}V(_.history,"pushState",t),V(_.history,"replaceState",t)}function Ru(t){try{return new URL(t,_.location.origin).toString()}catch{return t}}const wt={};function wu(t){const e=wt[t];if(e)return e;let n=_[t];if(yn(n))return wt[t]=n.bind(_);const r=_.document;if(r&&typeof r.createElement=="function")try{const s=r.createElement("iframe");s.hidden=!0,r.head.appendChild(s);const a=s.contentWindow;a!=null&&a[t]&&(n=a[t]),r.head.removeChild(s)}catch(s){Vt&&g.warn(`Could not create sandbox iframe for ${t} check, bailing to window.${t}: `,s)}return n&&(wt[t]=n.bind(_))}function Dr(t){wt[t]=void 0}const Fe="__sentry_xhr_v3__";function zs(t){ye("xhr",t),ve("xhr",Au)}function Au(){if(!_.XMLHttpRequest)return;const t=XMLHttpRequest.prototype;t.open=new Proxy(t.open,{apply(e,n,r){const s=new Error,a=q()*1e3,i=Je(r[0])?r[0].toUpperCase():void 0,o=Pu(r[1]);if(!i||!o)return e.apply(n,r);n[Fe]={method:i,url:o,request_headers:{}},i==="POST"&&o.match(/sentry_key/)&&(n.__sentry_own_request__=!0);const c=()=>{const u=n[Fe];if(u&&n.readyState===4){try{u.status_code=n.status}catch{}const f={endTimestamp:q()*1e3,startTimestamp:a,xhr:n,virtualError:s};ee("xhr",f)}};return"onreadystatechange"in n&&typeof n.onreadystatechange=="function"?n.onreadystatechange=new Proxy(n.onreadystatechange,{apply(u,f,d){return c(),u.apply(f,d)}}):n.addEventListener("readystatechange",c),n.setRequestHeader=new Proxy(n.setRequestHeader,{apply(u,f,d){const[p,l]=d,m=f[Fe];return m&&Je(p)&&Je(l)&&(m.request_headers[p.toLowerCase()]=l),u.apply(f,d)}}),e.apply(n,r)}}),t.send=new Proxy(t.send,{apply(e,n,r){const s=n[Fe];if(!s)return e.apply(n,r);r[0]!==void 0&&(s.body=r[0]);const a={startTimestamp:q()*1e3,xhr:n};return ee("xhr",a),e.apply(n,r)}})}function Pu(t){if(Je(t))return t;try{return t.toString()}catch{}}const ln=[],At=new Map,ku=60;function Nu(){if(Yt()&&Y()){const e=Lu();return()=>{e()}}return()=>{}}const Fr={click:"click",pointerdown:"click",pointerup:"click",mousedown:"click",mouseup:"click",touchstart:"click",touchend:"click",mouseover:"hover",mouseout:"hover",mouseenter:"hover",mouseleave:"hover",pointerover:"hover",pointerout:"hover",pointerenter:"hover",pointerleave:"hover",dragstart:"drag",dragend:"drag",drag:"drag",dragenter:"drag",dragleave:"drag",dragover:"drag",drop:"drag",keydown:"press",keyup:"press",keypress:"press",input:"press"};function Lu(){return Uc(Cu)}const Cu=({metric:t})=>{if(t.value==null)return;const e=O(t.value);if(e>ku)return;const n=t.entries.find(m=>m.duration===t.value&&Fr[m.name]);if(!n)return;const{interactionId:r}=n,s=Fr[n.name],a=O(Y()+n.startTime),i=G(),o=i?W(i):void 0,u=(r!=null?At.get(r):void 0)||o,f=u?R(u).description:C().getScopeData().transactionName,d=pe(n.target),p={[D]:"auto.http.browser.inp",[Se]:`ui.interaction.${s}`,[Ue]:n.duration},l=Yn({name:d,transaction:f,attributes:p,startTime:a});l&&(l.addEvent("inp",{[at]:"millisecond",[it]:t.value}),l.end(a+e))};function Ou(){const t=({entries:e})=>{const n=G(),r=n&&W(n);e.forEach(s=>{if(!Yc(s)||!r)return;const a=s.interactionId;if(a!=null&&!At.has(a)){if(ln.length>10){const i=ln.shift();At.delete(i)}ln.push(a),At.set(a,r)}})};Be("event",t),Be("first-input",t)}function xu(t,e=wu("fetch")){let n=0,r=0;function s(a){const i=a.body.length;n+=i,r++;const o={body:a.body,method:"POST",referrerPolicy:"strict-origin",headers:t.headers,keepalive:n<=6e4&&r<15,...t.fetchOptions};if(!e)return Dr("fetch"),Nt("No fetch implementation available");try{return e(t.url,o).then(c=>(n-=i,r--,{statusCode:c.status,headers:{"x-sentry-rate-limits":c.headers.get("X-Sentry-Rate-Limits"),"retry-after":c.headers.get("Retry-After")}}))}catch(c){return Dr("fetch"),n-=i,r--,Nt(c)}}return lo(t,s)}const Du=30,Fu=50;function kn(t,e,n,r){const s={filename:t,function:e===""?He:e,in_app:!0};return n!==void 0&&(s.lineno=n),r!==void 0&&(s.colno=r),s}const Mu=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Hu=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,$u=/\((\S*)(?::(\d+))(?::(\d+))\)/,Bu=/at (.+?) ?\(data:(.+?),/,Uu=t=>{const e=t.match(Bu);if(e)return{filename:``,function:e[1]};const n=Mu.exec(t);if(n){const[,s,a,i]=n;return kn(s,He,+a,+i)}const r=Hu.exec(t);if(r){if(r[2]&&r[2].indexOf("eval")===0){const o=$u.exec(r[2]);o&&(r[2]=o[1],r[3]=o[2],r[4]=o[3])}const[a,i]=Xs(r[1]||He,r[2]);return kn(i,a,r[3]?+r[3]:void 0,r[4]?+r[4]:void 0)}},qu=[Du,Uu],ju=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Vu=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Wu=t=>{const e=ju.exec(t);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const a=Vu.exec(e[3]);a&&(e[1]=e[1]||"eval",e[3]=a[1],e[4]=a[2],e[5]="")}let r=e[3],s=e[1]||He;return[s,r]=Xs(s,r),kn(r,s,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}},Gu=[Fu,Wu],Yu=[qu,Gu],zu=xa(...Yu),Xs=(t,e)=>{const n=t.indexOf("safari-extension")!==-1,r=t.indexOf("safari-web-extension")!==-1;return n||r?[t.indexOf("@")!==-1?t.split("@")[0]:He,n?`safari-extension:${e}`:`safari-web-extension:${e}`]:[t,e]},te=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,St=1024,Xu="Breadcrumbs",Ju=((t={})=>{const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...t};return{name:Xu,setup(n){e.console&&Do(ed(n)),e.dom&&Eu(Zu(n,e.dom)),e.xhr&&zs(td(n)),e.fetch&&ks(nd(n)),e.history&&zn(rd(n)),e.sentry&&n.on("beforeSendEvent",Qu(n))}}}),Ku=Ju;function Qu(t){return function(n){k()===t&&Oe({category:`sentry.${n.type==="transaction"?"transaction":"event"}`,event_id:n.event_id,level:n.level,message:Pe(n)},{event:n})}}function Zu(t,e){return function(r){if(k()!==t)return;let s,a,i=typeof e=="object"?e.serializeAttribute:void 0,o=typeof e=="object"&&typeof e.maxStringLength=="number"?e.maxStringLength:void 0;o&&o>St&&(te&&g.warn(`\`dom.maxStringLength\` cannot exceed ${St}, but a value of ${o} was configured. Sentry will use ${St} instead.`),o=St),typeof i=="string"&&(i=[i]);try{const u=r.event,f=sd(u)?u.target:u;s=pe(f,{keyAttrs:i,maxStringLength:o}),a=as(f)}catch{s=""}if(s.length===0)return;const c={category:`ui.${r.name}`,message:s};a&&(c.data={"ui.component_name":a}),Oe(c,{event:r.event,name:r.name,global:r.global})}}function ed(t){return function(n){if(k()!==t)return;const r={category:"console",data:{arguments:n.args,logger:"console"},level:Mo(n.level),message:ir(n.args," ")};if(n.level==="assert")if(n.args[0]===!1)r.message=`Assertion failed: ${ir(n.args.slice(1)," ")||"console.assert"}`,r.data.arguments=n.args.slice(1);else return;Oe(r,{input:n.args,level:n.level})}}function td(t){return function(n){if(k()!==t)return;const{startTimestamp:r,endTimestamp:s}=n,a=n.xhr[Fe];if(!r||!s||!a)return;const{method:i,url:o,status_code:c,body:u}=a,f={method:i,url:o,status_code:c},d={xhr:n.xhr,input:u,startTimestamp:r,endTimestamp:s},p={category:"xhr",data:f,type:"http",level:Ps(c)};t.emit("beforeOutgoingRequestBreadcrumb",p,d),Oe(p,d)}}function nd(t){return function(n){if(k()!==t)return;const{startTimestamp:r,endTimestamp:s}=n;if(s&&!(n.fetchData.url.match(/sentry_key/)&&n.fetchData.method==="POST"))if(n.fetchData.method,n.fetchData.url,n.error){const a=n.fetchData,i={data:n.error,input:n.args,startTimestamp:r,endTimestamp:s},o={category:"fetch",data:a,level:"error",type:"http"};t.emit("beforeOutgoingRequestBreadcrumb",o,i),Oe(o,i)}else{const a=n.response,i={...n.fetchData,status_code:a==null?void 0:a.status};n.fetchData.request_body_size,n.fetchData.response_body_size,a==null||a.status;const o={input:n.args,response:a,startTimestamp:r,endTimestamp:s},c={category:"fetch",data:i,type:"http",level:Ps(i.status_code)};t.emit("beforeOutgoingRequestBreadcrumb",c,o),Oe(c,o)}}}function rd(t){return function(n){if(k()!==t)return;let r=n.from,s=n.to;const a=ke(T.location.href);let i=r?ke(r):void 0;const o=ke(s);i!=null&&i.path||(i=a),a.protocol===o.protocol&&a.host===o.host&&(s=o.relative),a.protocol===i.protocol&&a.host===i.host&&(r=i.relative),Oe({category:"navigation",data:{from:r,to:s}})}}function sd(t){return!!t&&!!t.target}const ad=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],id="BrowserApiErrors",od=((t={})=>{const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...t};return{name:id,setupOnce(){e.setTimeout&&V(T,"setTimeout",Mr),e.setInterval&&V(T,"setInterval",Mr),e.requestAnimationFrame&&V(T,"requestAnimationFrame",ud),e.XMLHttpRequest&&"XMLHttpRequest"in T&&V(XMLHttpRequest.prototype,"send",dd);const n=e.eventTarget;n&&(Array.isArray(n)?n:ad).forEach(s=>fd(s,e))}}}),cd=od;function Mr(t){return function(...e){const n=e[0];return e[0]=$e(n,{mechanism:{handled:!1,type:`auto.browser.browserapierrors.${_e(t)}`}}),t.apply(this,e)}}function ud(t){return function(e){return t.apply(this,[$e(e,{mechanism:{data:{handler:_e(t)},handled:!1,type:"auto.browser.browserapierrors.requestAnimationFrame"}})])}}function dd(t){return function(...e){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(s=>{s in n&&typeof n[s]=="function"&&V(n,s,function(a){const i={mechanism:{data:{handler:_e(a)},handled:!1,type:`auto.browser.browserapierrors.xhr.${s}`}},o=xn(a);return o&&(i.mechanism.data.handler=_e(o)),$e(a,i)})}),t.apply(this,e)}}function fd(t,e){var s,a;const r=(s=T[t])==null?void 0:s.prototype;(a=r==null?void 0:r.hasOwnProperty)!=null&&a.call(r,"addEventListener")&&(V(r,"addEventListener",function(i){return function(o,c,u){try{ld(c)&&(c.handleEvent=$e(c.handleEvent,{mechanism:{data:{handler:_e(c),target:t},handled:!1,type:"auto.browser.browserapierrors.handleEvent"}}))}catch{}return e.unregisterOriginalCallbacks&&pd(this,o,c),i.apply(this,[o,$e(c,{mechanism:{data:{handler:_e(c),target:t},handled:!1,type:"auto.browser.browserapierrors.addEventListener"}}),u])}}),V(r,"removeEventListener",function(i){return function(o,c,u){try{const f=c.__sentry_wrapped__;f&&i.call(this,o,f,u)}catch{}return i.call(this,o,c,u)}}))}function ld(t){return typeof t.handleEvent=="function"}function pd(t,e,n){t&&typeof t=="object"&&"removeEventListener"in t&&typeof t.removeEventListener=="function"&&t.removeEventListener(e,n)}const md=()=>({name:"BrowserSession",setupOnce(){if(typeof T.document>"u"){te&&g.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}or({ignoreDuration:!0}),cr(),zn(({from:t,to:e})=>{t!==void 0&&t!==e&&(or({ignoreDuration:!0}),cr())})}}),gd="GlobalHandlers",hd=((t={})=>{const e={onerror:!0,onunhandledrejection:!0,...t};return{name:gd,setupOnce(){Error.stackTraceLimit=50},setup(n){e.onerror&&(Sd(n),Hr("onerror")),e.onunhandledrejection&&(Ed(n),Hr("onunhandledrejection"))}}}),_d=hd;function Sd(t){cs(e=>{const{stackParser:n,attachStacktrace:r}=Js();if(k()!==t||Ls())return;const{msg:s,url:a,line:i,column:o,error:c}=e,u=vd(qn(n,c||s,void 0,r,!1),a,i,o);u.level="error",is(u,{originalException:c,mechanism:{handled:!1,type:"auto.browser.global_handlers.onerror"}})})}function Ed(t){us(e=>{const{stackParser:n,attachStacktrace:r}=Js();if(k()!==t||Ls())return;const s=Td(e),a=Ze(s)?yd(s):qn(n,s,void 0,r,!0);a.level="error",is(a,{originalException:s,mechanism:{handled:!1,type:"auto.browser.global_handlers.onunhandledrejection"}})})}function Td(t){if(Ze(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}function yd(t){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(t)}`}]}}}function vd(t,e,n,r){const s=t.exception=t.exception||{},a=s.values=s.values||[],i=a[0]=a[0]||{},o=i.stacktrace=i.stacktrace||{},c=o.frames=o.frames||[],u=r,f=n,d=bd(e)??ot();return c.length===0&&c.push({colno:u,filename:d,function:He,in_app:!0,lineno:f}),t}function Hr(t){te&&g.log(`Global Handler attached: ${t}`)}function Js(){const t=k();return(t==null?void 0:t.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}function bd(t){if(!(!Je(t)||t.length===0)){if(t.startsWith("data:")){const e=t.match(/^data:([^;]+)/),n=e?e[1]:"text/javascript",r=t.includes("base64,");return``}return t.slice(0,1024)}}const Id=()=>({name:"HttpContext",preprocessEvent(t){var r;if(!T.navigator&&!T.location&&!T.document)return;const e=$n(),n={...e.headers,...(r=t.request)==null?void 0:r.headers};t.request={...e,...t.request,headers:n}}}),Rd="cause",wd=5,Ad="LinkedErrors",Pd=((t={})=>{const e=t.limit||wd,n=t.key||Rd;return{name:Ad,preprocessEvent(r,s,a){const i=a.getOptions();xo(Bn,i.stackParser,n,e,r,s)}}}),kd=Pd;function Nd(){return Ld()?(te&&qt(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function Ld(){var a;if(typeof T.window>"u")return!1;const t=T;if(t.nw)return!1;const e=t.chrome||t.browser;if(!((a=e==null?void 0:e.runtime)!=null&&a.id))return!1;const n=ot(),r=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(T===T.top&&r.some(i=>n.startsWith(`${i}://`)))}function Nn(t){return[wo(),vo(),cd(),Ku(),_d(),kd(),Bo(),Id(),md()]}function Cd(t={}){const e=!t.skipBrowserExtensionCheck&&Nd(),n={...t,enabled:e?!1:t.enabled,stackParser:Da(t.stackParser||zu),integrations:Wi({integrations:t.integrations,defaultIntegrations:t.defaultIntegrations==null?Nn():t.defaultIntegrations}),transport:t.transport||xu};return no(Sc,n)}function ie(t=0){return((Y()||performance.timeOrigin)+t)/1e3}function Od(t){const e=[];if(t.nextHopProtocol!=null){const{name:n,version:r}=Ws(t.nextHopProtocol);e.push(["network.protocol.version",r],["network.protocol.name",n])}return Y()?[...e,["http.request.redirect_start",ie(t.redirectStart)],["http.request.fetch_start",ie(t.fetchStart)],["http.request.domain_lookup_start",ie(t.domainLookupStart)],["http.request.domain_lookup_end",ie(t.domainLookupEnd)],["http.request.connect_start",ie(t.connectStart)],["http.request.secure_connection_start",ie(t.secureConnectionStart)],["http.request.connection_end",ie(t.connectEnd)],["http.request.request_start",ie(t.requestStart)],["http.request.response_start",ie(t.responseStart)],["http.request.response_end",ie(t.responseEnd)]]:e}const $r=new WeakMap,pn=new Map,Ks={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function xd(t,e){const{traceFetch:n,traceXHR:r,trackFetchStreamPerformance:s,shouldCreateSpanForRequest:a,enableHTTPTimings:i,tracePropagationTargets:o,onRequestSpanStart:c}={...Ks,...e},u=typeof a=="function"?a:l=>!0,f=l=>Fd(l,o),d={},p=t.getOptions().propagateTraceparent;n&&(t.addEventProcessor(l=>(l.type==="transaction"&&l.spans&&l.spans.forEach(m=>{if(m.op==="http.client"){const h=pn.get(m.span_id);h&&(m.timestamp=h/1e3,pn.delete(m.span_id))}}),l)),s&&Zo(l=>{if(l.response){const m=$r.get(l.response);m&&l.endTimestamp&&pn.set(m,l.endTimestamp)}}),ks(l=>{const m=Vo(l,u,f,d,{propagateTraceparent:p});if(l.response&&l.fetchData.__span&&$r.set(l.response,l.fetchData.__span),m){const h=Qs(l.fetchData.url),x=h?ke(h).host:void 0;m.setAttributes({"http.url":h,"server.address":x}),i&&Br(m),c==null||c(m,{headers:l.headers})}})),r&&zs(l=>{var h;const m=Md(l,u,f,d,p);if(m){i&&Br(m);let x;try{x=new Headers((h=l.xhr.__sentry_xhr_v3__)==null?void 0:h.request_headers)}catch{}c==null||c(m,{headers:x})}})}function Dd(t){return t.entryType==="resource"&&"initiatorType"in t&&typeof t.nextHopProtocol=="string"&&(t.initiatorType==="fetch"||t.initiatorType==="xmlhttprequest")}function Br(t){const{url:e}=R(t).data;if(!e||typeof e!="string")return;const n=Be("resource",({entries:r})=>{r.forEach(s=>{Dd(s)&&s.name.endsWith(e)&&(Od(s).forEach(i=>t.setAttribute(...i)),setTimeout(n))})})}function Fd(t,e){const n=ot();if(n){let r,s;try{r=new URL(t,n),s=new URL(n).origin}catch{return!1}const a=r.origin===s;return e?he(r.toString(),e)||a&&he(r.pathname,e):a}else{const r=!!t.match(/^\/(?!\/)/);return e?he(t,e):r}}function Md(t,e,n,r,s){const a=t.xhr,i=a==null?void 0:a[Fe];if(!a||a.__sentry_own_request__||!i)return;const{url:o,method:c}=i,u=Le()&&e(o);if(t.endTimestamp&&u){const x=a.__sentry_xhr_span_id__;if(!x)return;const I=r[x];I&&i.status_code!==void 0&&(es(I,i.status_code),I.end(),delete r[x]);return}const f=Qs(o),d=ke(f||o),p=go(o),l=!!G(),m=u&&l?xe({name:`${c} ${p}`,attributes:{url:o,type:"xhr","http.method":c,"http.url":f,"server.address":d==null?void 0:d.host,[D]:"auto.http.browser",[Se]:"http.client",...(d==null?void 0:d.search)&&{"http.query":d==null?void 0:d.search},...(d==null?void 0:d.hash)&&{"http.fragment":d==null?void 0:d.hash}}}):new Ee;a.__sentry_xhr_span_id__=m.spanContext().spanId,r[a.__sentry_xhr_span_id__]=m,n(o)&&Hd(a,Le()&&l?m:void 0,s);const h=k();return h&&h.emit("beforeOutgoingRequestSpan",m,t),m}function Hd(t,e,n){const{"sentry-trace":r,baggage:s,traceparent:a}=Rs({span:e,propagateTraceparent:n});r&&$d(t,r,s,a)}function $d(t,e,n,r){var a;const s=(a=t.__sentry_xhr_v3__)==null?void 0:a.request_headers;if(!(s!=null&&s["sentry-trace"]||!t.setRequestHeader))try{if(t.setRequestHeader("sentry-trace",e),r&&!(s!=null&&s.traceparent)&&t.setRequestHeader("traceparent",r),n){const i=s==null?void 0:s.baggage;(!i||!Bd(i))&&t.setRequestHeader("baggage",n)}}catch{}}function Bd(t){return t.split(",").some(e=>e.trim().startsWith("sentry-"))}function Qs(t){try{return new URL(t,T.location.origin).href}catch{return}}function Ud(){T.document?T.document.addEventListener("visibilitychange",()=>{const t=G();if(!t)return;const e=W(t);if(T.document.hidden&&e){const n="cancelled",{op:r,status:s}=R(e);te&&g.log(`[Tracing] Transaction: ${n} -> since tab moved to the background, op: ${r}`),s||e.setStatus({code:Me,message:n}),e.setAttribute("sentry.cancellation_reason","document.hidden"),e.end()}}):te&&g.warn("[Tracing] Could not set up background tab detection due to lack of global document")}const qd=3600,Zs="sentry_previous_trace",jd="sentry.previous_trace";function Vd(t,{linkPreviousTrace:e,consistentTraceSampling:n}){const r=e==="session-storage";let s=r?Yd():void 0;t.on("spanStart",i=>{if(W(i)!==i)return;const o=C().getPropagationContext();s=Wd(s,i,o),r&&Gd(s)});let a=!0;n&&t.on("beforeSampling",i=>{if(!s)return;const o=C(),c=o.getPropagationContext();if(a&&c.parentSpanId){a=!1;return}o.setPropagationContext({...c,dsc:{...c.dsc,sample_rate:String(s.sampleRate),sampled:String(Ln(s.spanContext))},sampleRand:s.sampleRand}),i.parentSampled=Ln(s.spanContext),i.parentSampleRate=s.sampleRate,i.spanAttributes={...i.spanAttributes,[Fa]:s.sampleRate}})}function Wd(t,e,n){const r=R(e);function s(){var o,c;try{return Number((o=n.dsc)==null?void 0:o.sample_rate)??Number((c=r.data)==null?void 0:c[Jr])}catch{return 0}}const a={spanContext:e.spanContext(),startTimestamp:r.start_timestamp,sampleRate:s(),sampleRand:n.sampleRand};if(!t)return a;const i=t.spanContext;return i.traceId===r.trace_id?t:(Date.now()/1e3-t.startTimestamp<=qd&&(te&&g.log(`Adding previous_trace ${i} link to span ${{op:r.op,...e.spanContext()}}`),e.addLink({context:i,attributes:{[Ma]:"previous_trace"}}),e.setAttribute(jd,`${i.traceId}-${i.spanId}-${Ln(i)?1:0}`)),a)}function Gd(t){try{T.sessionStorage.setItem(Zs,JSON.stringify(t))}catch(e){te&&g.warn("Could not store previous trace in sessionStorage",e)}}function Yd(){var t;try{const e=(t=T.sessionStorage)==null?void 0:t.getItem(Zs);return JSON.parse(e)}catch{return}}function Ln(t){return t.traceFlags===1}const zd="BrowserTracing",Xd={...It,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,enableElementTiming:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,_experiments:{},...Ks},Jd=((t={})=>{const e={name:void 0,source:void 0},n=T.document,{enableInp:r,enableElementTiming:s,enableLongTask:a,enableLongAnimationFrame:i,_experiments:{enableInteractions:o,enableStandaloneClsSpans:c,enableStandaloneLcpSpans:u},beforeStartSpan:f,idleTimeout:d,finalTimeout:p,childSpanTimeout:l,markBackgroundSpan:m,traceFetch:h,traceXHR:x,trackFetchStreamPerformance:I,shouldCreateSpanForRequest:M,enableHTTPTimings:$,ignoreResourceSpans:oe,ignorePerformanceApiSpans:z,instrumentPageLoad:E,instrumentNavigation:b,detectRedirects:be,linkPreviousTrace:me,consistentTraceSampling:ge,onRequestSpanStart:ce}={...Xd,...t};let N,H;function X(y,A,v=!0){const P=A.op==="pageload",w=A.name,J=f?f(A):A,se=J.attributes||{};if(w!==J.name&&(se[Z]="custom",J.attributes=se),!v){const Ie=Ut();xe({...J,startTime:Ie}).end(Ie);return}e.name=J.name,e.source=se[Z];const ue=gs(J,{idleTimeout:d,finalTimeout:p,childSpanTimeout:l,disableAutoFinish:P,beforeSpanEnd:Ie=>{N==null||N(),iu(Ie,{recordClsOnPageloadSpan:!c,recordLcpOnPageloadSpan:!u,ignoreResourceSpans:oe,ignorePerformanceApiSpans:z}),qr(y,void 0);const de=C(),We=de.getPropagationContext();de.setPropagationContext({...We,traceId:ue.spanContext().traceId,sampled:Mt(ue),dsc:Ne(Ie)})}});qr(y,ue);function lt(){n&&["interactive","complete"].includes(n.readyState)&&y.emit("idleSpanEnableAutoFinish",ue)}P&&n&&(n.addEventListener("readystatechange",()=>{lt()}),lt())}return{name:zd,setup(y){if(ui(),N=Zc({recordClsStandaloneSpans:c||!1,recordLcpStandaloneSpans:u||!1,client:y}),r&&Nu(),s&&hu(),i&&F.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&PerformanceObserver.supportedEntryTypes.includes("long-animation-frame")?tu():a&&eu(),o&&nu(),be&&n){const v=()=>{H=q()};addEventListener("click",v,{capture:!0}),addEventListener("keydown",v,{capture:!0,passive:!0})}function A(){const v=rt(y);v&&!R(v).timestamp&&(te&&g.log(`[Tracing] Finishing current active span with op: ${R(v).op}`),v.setAttribute(kt,"cancelled"),v.end())}y.on("startNavigationSpan",(v,P)=>{if(k()!==y)return;if(P!=null&&P.isRedirect){te&&g.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),X(y,{op:"navigation.redirect",...v},!1);return}H=void 0,A(),Bt().setPropagationContext({traceId:Pt(),sampleRand:Math.random()});const w=C();w.setPropagationContext({traceId:Pt(),sampleRand:Math.random()}),w.setSDKProcessingMetadata({normalizedRequest:void 0}),X(y,{op:"navigation",...v})}),y.on("startPageLoadSpan",(v,P={})=>{if(k()!==y)return;A();const w=P.sentryTrace||Ur("sentry-trace"),J=P.baggage||Ur("baggage"),se=Ha(w,J),ue=C();ue.setPropagationContext(se),ue.setSDKProcessingMetadata({normalizedRequest:$n()}),X(y,{op:"pageload",...v})})},afterAllSetup(y){let A=ot();if(me!=="off"&&Vd(y,{linkPreviousTrace:me,consistentTraceSampling:ge}),T.location){if(E){const v=Y();ea(y,{name:T.location.pathname,startTime:v?v/1e3:void 0,attributes:{[Z]:"url",[D]:"auto.pageload.browser"}})}b&&zn(({to:v,from:P})=>{if(P===void 0&&(A==null?void 0:A.indexOf(v))!==-1){A=void 0;return}A=void 0;const w=Is(v),J=rt(y),se=J&&be&&Qd(J,H);ta(y,{name:(w==null?void 0:w.pathname)||T.location.pathname,attributes:{[Z]:"url",[D]:"auto.navigation.browser"}},{url:v,isRedirect:se})})}m&&Ud(),o&&Kd(y,d,p,l,e),r&&Ou(),xd(y,{traceFetch:h,traceXHR:x,trackFetchStreamPerformance:I,tracePropagationTargets:y.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:M,enableHTTPTimings:$,onRequestSpanStart:ce})}}});function ea(t,e,n){t.emit("startPageLoadSpan",e,n),C().setTransactionName(e.name);const r=rt(t);return r&&t.emit("afterStartPageLoadSpan",r),r}function ta(t,e,n){const{url:r,isRedirect:s}=n||{};t.emit("beforeStartNavigationSpan",e,{isRedirect:s}),t.emit("startNavigationSpan",e,{isRedirect:s});const a=C();return a.setTransactionName(e.name),r&&!s&&a.setSDKProcessingMetadata({normalizedRequest:{...$n(),url:r}}),rt(t)}function Ur(t){const e=T.document,n=e==null?void 0:e.querySelector(`meta[name=${t}]`);return(n==null?void 0:n.getAttribute("content"))||void 0}function Kd(t,e,n,r,s){const a=T.document;let i;const o=()=>{const c="ui.action.click",u=rt(t);if(u){const f=R(u).op;if(["navigation","pageload"].includes(f)){te&&g.warn(`[Tracing] Did not create ${c} span because a pageload or navigation span is in progress.`);return}}if(i&&(i.setAttribute(kt,"interactionInterrupted"),i.end(),i=void 0),!s.name){te&&g.warn(`[Tracing] Did not create ${c} transaction because _latestRouteName is missing.`);return}i=gs({name:s.name,op:c,attributes:{[Z]:s.source||"url"}},{idleTimeout:e,finalTimeout:n,childSpanTimeout:r})};a&&addEventListener("click",o,{capture:!0})}const na="_sentry_idleSpan";function rt(t){return t[na]}function qr(t,e){et(t,na,e)}const jr=1.5;function Qd(t,e){const n=R(t),r=Ut(),s=n.start_timestamp;return!(r-s>jr||e&&r-e<=jr)}function Zd(t){const e={...t};return Hn(e,"svelte"),Cd(e)}const ra=()=>{const t=$a;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},ef={subscribe(t){return ra().page.subscribe(t)}},tf={subscribe(t){return ra().navigating.subscribe(t)}};function nf(t={}){const e={...Jd({...t,instrumentNavigation:!1,instrumentPageLoad:!1})};return{...e,afterAllSetup:n=>{e.afterAllSetup(n),t.instrumentPageLoad!==!1&&rf(n),t.instrumentNavigation!==!1&&sf(n)}}}function rf(t){var r;const e=(r=T.location)==null?void 0:r.pathname,n=ea(t,{name:e,op:"pageload",attributes:{[D]:"auto.pageload.sveltekit",[Z]:"url"}});n&&ef.subscribe(s=>{var i;if(!s)return;const a=(i=s.route)==null?void 0:i.id;a&&(n.updateName(a),n.setAttribute(Z,"route"),C().setTransactionName(a))})}function sf(t){let e;tf.subscribe(n=>{var f;if(!n){e&&(e.end(),e=void 0);return}const r=n.from,s=n.to,a=(r==null?void 0:r.url.pathname)||((f=T.location)==null?void 0:f.pathname),i=s==null?void 0:s.url.pathname;if(a===i)return;const o=r==null?void 0:r.route.id,c=s==null?void 0:s.route.id;e&&e.end();const u={"sentry.sveltekit.navigation.type":n.type,"sentry.sveltekit.navigation.from":o||void 0,"sentry.sveltekit.navigation.to":c||void 0};ta(t,{name:c||i||"unknown",op:"navigation",attributes:{[D]:"auto.navigation.sveltekit",[Z]:c?"route":"url",...u}}),e=xe({op:"ui.sveltekit.routing",name:"SvelteKit Route Change",attributes:{[D]:"auto.ui.sveltekit",...u},onlyIfParent:!0})})}function af(t){const e={defaultIntegrations:of(),...t};Hn(e,"sveltekit",["sveltekit","svelte"]);const n=cf(),r=Zd(e);return n&&uf(n),r}function of(t){return typeof __SENTRY_TRACING__>"u"||__SENTRY_TRACING__?[...Nn(),nf()]:Nn()}function cf(){const t=T,e=t.fetch;if(t._sentryFetchProxy&&e)return t.fetch=t._sentryFetchProxy,e}function uf(t){const e=T;e._sentryFetchProxy=e.fetch,e.fetch=t}function df({error:t}){qt(()=>{console.error(t)})}function ff(t){const e=df;return n=>(lf(n)||rs(n.error,{mechanism:{type:"sveltekit",handled:!1}}),e(n))}function lf(t){const{status:e}=t;return e?e>=400&&e<500:!1}af({dsn:"",tracesSampleRate:1,enableLogs:!0,environment:"prod",replaysOnErrorSampleRate:1});const pf=ff(),Lf={};var mf=os('
        '),gf=os(" ",1);function hf(t,e){Va(e,!0);let n=Ye(e,"components",23,()=>[]),r=Ye(e,"data_0",3,null),s=Ye(e,"data_1",3,null),a=Ye(e,"data_2",3,null),i=Ye(e,"data_3",3,null);Wa(()=>e.stores.page.set(e.page)),Ga(()=>{e.stores,e.page,e.constructors,n(),e.form,r(),s(),a(),i(),e.stores.page.notify()});let o=en(!1),c=en(!1),u=en(null);si(()=>{const I=e.stores.page.subscribe(()=>{j(o)&&(vt(c,!0),Ya().then(()=>{vt(u,document.title||"untitled page",!0)}))});return vt(o,!0),I});const f=Re(()=>e.constructors[3]);var d=gf(),p=ae(d);{var l=I=>{const M=Re(()=>e.constructors[0]);var $=fe(),oe=ae($);we(oe,()=>j(M),(z,E)=>{Ae(E(z,{get data(){return r()},get form(){return e.form},get params(){return e.page.params},children:(b,be)=>{var me=fe(),ge=ae(me);{var ce=H=>{const X=Re(()=>e.constructors[1]);var y=fe(),A=ae(y);we(A,()=>j(X),(v,P)=>{Ae(P(v,{get data(){return s()},get form(){return e.form},get params(){return e.page.params},children:(w,J)=>{var se=fe(),ue=ae(se);{var lt=de=>{const We=Re(()=>e.constructors[2]);var Ge=fe(),zt=ae(Ge);we(zt,()=>j(We),(Xt,Jt)=>{Ae(Jt(Xt,{get data(){return a()},get form(){return e.form},get params(){return e.page.params},children:(ne,Ef)=>{var Xn=fe(),sa=ae(Xn);we(sa,()=>j(f),(aa,ia)=>{Ae(ia(aa,{get data(){return i()},get form(){return e.form},get params(){return e.page.params}}),pt=>n()[3]=pt,()=>{var pt;return(pt=n())==null?void 0:pt[3]})}),K(ne,Xn)},$$slots:{default:!0}}),ne=>n()[2]=ne,()=>{var ne;return(ne=n())==null?void 0:ne[2]})}),K(de,Ge)},Ie=de=>{const We=Re(()=>e.constructors[2]);var Ge=fe(),zt=ae(Ge);we(zt,()=>j(We),(Xt,Jt)=>{Ae(Jt(Xt,{get data(){return a()},get form(){return e.form},get params(){return e.page.params}}),ne=>n()[2]=ne,()=>{var ne;return(ne=n())==null?void 0:ne[2]})}),K(de,Ge)};ze(ue,de=>{e.constructors[3]?de(lt):de(Ie,!1)})}K(w,se)},$$slots:{default:!0}}),w=>n()[1]=w,()=>{var w;return(w=n())==null?void 0:w[1]})}),K(H,y)},N=H=>{const X=Re(()=>e.constructors[1]);var y=fe(),A=ae(y);we(A,()=>j(X),(v,P)=>{Ae(P(v,{get data(){return s()},get form(){return e.form},get params(){return e.page.params}}),w=>n()[1]=w,()=>{var w;return(w=n())==null?void 0:w[1]})}),K(H,y)};ze(ge,H=>{e.constructors[2]?H(ce):H(N,!1)})}K(b,me)},$$slots:{default:!0}}),b=>n()[0]=b,()=>{var b;return(b=n())==null?void 0:b[0]})}),K(I,$)},m=I=>{const M=Re(()=>e.constructors[0]);var $=fe(),oe=ae($);we(oe,()=>j(M),(z,E)=>{Ae(E(z,{get data(){return r()},get form(){return e.form},get params(){return e.page.params}}),b=>n()[0]=b,()=>{var b;return(b=n())==null?void 0:b[0]})}),K(I,$)};ze(p,I=>{e.constructors[1]?I(l):I(m,!1)})}var h=za(p,2);{var x=I=>{var M=mf(),$=Ja(M);{var oe=z=>{var E=Qa();Za(()=>ri(E,j(u))),K(z,E)};ze($,z=>{j(c)&&z(oe)})}Ka(M),K(I,M)};ze(h,I=>{j(o)&&I(x)})}K(t,d),Xa()}const Cf=ai(hf),Of=[()=>L(()=>import("../nodes/0.DIpSCqpd.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),import.meta.url),()=>L(()=>import("../nodes/1.-aaO_7rD.js"),__vite__mapDeps([17,1,15,3,4,5,18,19,20,2]),import.meta.url),()=>L(()=>import("../nodes/2.DTTH4yjc.js"),__vite__mapDeps([21,1,3,4,5,2,22,11,12,19,20,23,10,24]),import.meta.url),()=>L(()=>import("../nodes/3.BjOx-5ND.js"),__vite__mapDeps([25,1,3,4,5,2,22,11,12,19,20,24]),import.meta.url),()=>L(()=>import("../nodes/4.DLrwqUeR.js"),__vite__mapDeps([26,1,2,3,4,5,10,12,22,11,20,19,6,7,8,9,27,13,28,29,30,31,32,33,34,24,35,36,37,38,39,40,15,18,23,14,41,42,43,44,45,46,47,48]),import.meta.url),()=>L(()=>import("../nodes/5.lvNarnfM.js"),__vite__mapDeps([49,1,15,3,23,10,12]),import.meta.url),()=>L(()=>import("../nodes/6.DyKsgUf2.js"),__vite__mapDeps([50,1,15,3,2,4,5,18,7,20]),import.meta.url),()=>L(()=>import("../nodes/7.C4jrLY7T.js"),__vite__mapDeps([51,1,3,4,5,10,22,11,12,29,20,2,19,6,7,8,28,33,27,31,45,47,30,44,35,52,53,54,55,34,24]),import.meta.url),()=>L(()=>import("../nodes/8.DIMn846h.js"),__vite__mapDeps([56,1,2,3,4,5,10,11,12,29,20,6,7,8,45,57,52,53,58,59]),import.meta.url),()=>L(()=>import("../nodes/9.BhPlDH9q.js"),__vite__mapDeps([60,1,15,3,5,7,20,2,4]),import.meta.url),()=>L(()=>import("../nodes/10.2PlMuzkM.js"),__vite__mapDeps([61,1,2,3,4,5,10,11,12,29,20,6,7,8,33,27,45,53,58,62,63,59,54]),import.meta.url),()=>L(()=>import("../nodes/11.7LNU-V2c.js"),__vite__mapDeps([64,1,2,3,4,5,10,11,12,29,20,6,7,8,33,27,45,53,58,62,63,59]),import.meta.url),()=>L(()=>import("../nodes/12.Dk7Cyr8v.js"),__vite__mapDeps([65,1,3,4,5,10,22,11,12,29,20,2,19,6,7,8,32,13,28,33,27,30,34,24,40,31,66,45,47,67,53,58,63,55]),import.meta.url),()=>L(()=>import("../nodes/13.DsAxPfo7.js"),__vite__mapDeps([68,1,2,3,4,5,10,20,19,6,7,8,41,12,13,23,42,69]),import.meta.url),()=>L(()=>import("../nodes/14.TE67n0On.js"),__vite__mapDeps([70,1,2,3,4,5,10,22,11,12,20,19,6,7,8,33,27,37,40,31,66,45,47,36,57,34]),import.meta.url),()=>L(()=>import("../nodes/15.BKIY6Gje.js"),__vite__mapDeps([71,1,15,3,4,5,18,23,10,12,45,46,7,47]),import.meta.url),()=>L(()=>import("../nodes/16.CKya8A82.js"),__vite__mapDeps([72,1,2,3,4,5,10,27,19,20,6,7,8,23,12,69]),import.meta.url),()=>L(()=>import("../nodes/17.C45_aAtw.js"),__vite__mapDeps([73,1,3,4,5,10,11,12,29,13,20,2,6,7,8,38,19,33,27,39,37,30,44,67,34]),import.meta.url),()=>L(()=>import("../nodes/18.WvT7vRmm.js"),__vite__mapDeps([74,1,15,3,5,23,10,12,75]),import.meta.url),()=>L(()=>import("../nodes/19.Dqy7C9y2.js"),__vite__mapDeps([76,1,15,3,5,23,10,12]),import.meta.url),()=>L(()=>import("../nodes/20.ppFj_8Kx.js"),__vite__mapDeps([77,1,15,3,5,23,10,12]),import.meta.url),()=>L(()=>import("../nodes/21.PUjACzZY.js"),__vite__mapDeps([78,1,15,3,5,23,10,12,75]),import.meta.url)],xf=[],Df={"/":[4],"/404":[5],"/admin":[6,[2]],"/admin/alliances":[7,[2]],"/admin/dashboard":[8,[2]],"/admin/mods":[9,[2,3]],"/admin/mods/leaderboard-reports":[11,[2,3]],"/admin/mods/leaderboard":[10,[2,3]],"/admin/users":[12,[2]],"/join":[13],"/admin":[14],"/offline":[15],"/payment/success":[16],"/profile-picture":[17],"/terms/privacy":[18],"/terms/return":[19],"/terms/return/pt":[20],"/terms/terms-of-service":[21]},_f={handleError:pf||(({error:t})=>{console.error(t)}),init:void 0,reroute:(()=>{}),transport:{}},Sf=Object.fromEntries(Object.entries(_f.transport).map(([t,e])=>[t,e.decode])),Ff=!1,Mf=(t,e)=>Sf[t](e);export{Mf as decode,Sf as decoders,Df as dictionary,Ff as hash,_f as hooks,Lf as matchers,Of as nodes,Cf as root,xf as server_loads}; diff --git a/frontend-backup/_app/immutable/entry/app.DTM8GXam.js b/frontend-backup/_app/immutable/entry/app.DTM8GXam.js new file mode 100644 index 0000000..bb6c43e --- /dev/null +++ b/frontend-backup/_app/immutable/entry/app.DTM8GXam.js @@ -0,0 +1,6318 @@ +const __vite__mapDeps = ( + i, + m = __vite__mapDeps, + d = m.f || + (m.f = [ + "../nodes/0.D5b7oOw2.js", + "../chunks/Ch2Ub8FX.js", + "../chunks/DoL3ojdE.js", + "../chunks/CMvZtFtm.js", + "../chunks/DVA6u9-7.js", + "../chunks/P77cUGnY.js", + "../chunks/BRM3t761.js", + "../chunks/CV9xcpLq.js", + "../chunks/Dmqg20ho.js", + "../chunks/C0GlPMrk.js", + "../chunks/BF50aS-j.js", + "../chunks/CXkjfmFU.js", + "../chunks/C5yqZvKC.js", + "../chunks/0wx1llIh.js", + "../chunks/CdTXrPIO.js", + "../chunks/BOREeBzQ.js", + "../assets/0.0xfYb4uv.css", + "../nodes/1.BMc-PacL.js", + "../chunks/Z_72d8Vp.js", + "../chunks/B6ZK_HZO.js", + "../chunks/CyB--sFG.js", + "../nodes/2.-6emjql3.js", + "../chunks/BBgyHb-Z.js", + "../chunks/D3yDgRbd.js", + "../chunks/wZ7b5CwQ.js", + "../nodes/3.DOMAwJeg.js", + "../nodes/4.CrDfIbdR.js", + "../chunks/DueIxFLX.js", + "../chunks/CgCA7Awo.js", + "../chunks/Dpga8uG-.js", + "../chunks/CHGjpGz-.js", + "../chunks/BKioTOWR.js", + "../chunks/Cqwd83E5.js", + "../chunks/D3yaN7Zl.js", + "../chunks/lE0oaQc5.js", + "../chunks/BsOIMr0T.js", + "../chunks/DBSOMMI_.js", + "../chunks/Dt3xBOvm.js", + "../chunks/BA2Qx8r3.js", + "../assets/ProfileAvatarWithLevel.6dmPRSfx.css", + "../chunks/DLfdYhzo.js", + "../chunks/Bn0Xcwmn.js", + "../assets/LoginForm.CxMG0irz.css", + "../chunks/BI7eddl7.js", + "../chunks/C4yB2Gnm.js", + "../chunks/m3o6lEf1.js", + "../chunks/DCynssDD.js", + "../chunks/C3E1P42D.js", + "../assets/4.BtKF873c.css", + "../nodes/5.cZCL4YVE.js", + "../nodes/6.WPRvZASS.js", + "../nodes/7.ACRjrnuj.js", + "../chunks/CVa8RI1g.js", + "../chunks/BHI5vujT.js", + "../chunks/DouSnzU9.js", + "../chunks/BFFUopoM.js", + "../nodes/8.BbOUPQlW.js", + "../chunks/BpoSU4rb.js", + "../chunks/Blc0Ir5M.js", + "../chunks/CmhsLcKe.js", + "../nodes/9.Cn-noR6e.js", + "../nodes/10.DqbXhTAj.js", + "../chunks/g9MKNE1A.js", + "../chunks/LGRbXsL1.js", + "../nodes/11.C3Fd3lks.js", + "../nodes/12.B7-BJxmw.js", + "../chunks/DTFgqBF9.js", + "../chunks/CZlv7MYe.js", + "../nodes/13.DbQSn9aq.js", + "../chunks/BSXXHLQ0.js", + "../nodes/14.ClqwdR4T.js", + "../nodes/15.D6A8EYfF.js", + "../nodes/16.DTKQOukW.js", + "../nodes/17.CONNNOye.js", + "../nodes/18.24JvCqRi.js", + "../assets/18.BD1hRFPA.css", + "../nodes/19.B2QYN1F_.js", + "../nodes/20.LCTNv26D.js", + "../nodes/21.zScYLJw9.js", + ]) +) => i.map((i) => d[i]); +var Jn = (t) => { + throw TypeError(t); +}; +var Kn = (t, e, n) => e.has(t) || Jn("Cannot " + n); +var B = (t, e, n) => ( + Kn(t, e, "read from private field"), n ? n.call(t) : e.get(t) + ), + Kt = (t, e, n) => + e.has(t) + ? Jn("Cannot add the same private member more than once") + : e instanceof WeakSet + ? e.add(t) + : e.set(t, n), + Zt = (t, e, n, r) => ( + Kn(t, e, "write to private field"), r ? r.call(t, n) : e.set(t, n), n + ); +import { _ as L } from "../chunks/BI7eddl7.js"; +import { + D as S, + d as g, + g as _e, + G as F, + a as G, + b as W, + S as Me, + c as Pt, + e as Vr, + T as Wr, + n as oa, + f as ca, + h as st, + i as Qt, + j as Ne, + k as R, + l as mn, + m as Mt, + o as at, + p as it, + t as q, + q as Se, + r as D, + u as ua, + v as Xe, + w as Q, + x as da, + y as la, + z as Ue, + A as Cn, + B as k, + C as Zn, + E as C, + F as Et, + H as Qn, + I as fa, + J as Gr, + K as Le, + L as On, + M as Ht, + N as Yr, + O as zr, + _ as $t, + P as pa, + Q as Tt, + R as Bt, + U as Xr, + V as ma, + W as Jr, + X as kt, + Y as ga, + Z as Ut, + $ as ha, + a0 as yt, + a1 as er, + a2 as Qe, + a3 as tr, + a4 as Ce, + a5 as _a, + a6 as Kr, + a7 as Sa, + a8 as Ea, + a9 as Zr, + aa as Nt, + ab as Qr, + ac as Ta, + ad as gn, + ae as ya, + af as qt, + ag as nr, + ah as va, + ai as ba, + aj as Ia, + ak as Ra, + al as wa, + am as Aa, + an as xn, + ao as Pe, + ap as he, + aq as Lt, + ar as Pa, + as as V, + at as rr, + au as sr, + av as es, + aw as ts, + ax as ka, + ay as ns, + az as et, + aA as ot, + aB as Na, + aC as hn, + aD as tt, + aE as rs, + aF as ss, + aG as ar, + aH as La, + aI as Dn, + aJ as Ca, + aK as Oa, + aL as Y, + aM as pe, + aN as as, + aO as Je, + aP as xa, + aQ as He, + aR as ir, + aS as or, + aT as cr, + aU as is, + aV as Da, + aW as Fa, + aX as Ma, + aY as Ha, +} from "../chunks/Dmqg20ho.js"; +import { s as $a } from "../chunks/CyB--sFG.js"; +import { + aw as vt, + aW as Ba, + g as j, + aF as Ua, + bo as qa, + Z as ja, + p as Va, + x as Wa, + y as Ga, + au as en, + aL as Ya, + f as os, + a as ae, + s as za, + b as K, + c as Xa, + ay as le, + d as Ja, + r as Ka, + u as Re, + b4 as Za, + t as Qa, +} from "../chunks/CMvZtFtm.js"; +import { h as ei, m as ti, u as ni, s as ri } from "../chunks/DVA6u9-7.js"; +import "../chunks/Ch2Ub8FX.js"; +import { o as si } from "../chunks/DoL3ojdE.js"; +import { p as Ye, i as ze } from "../chunks/BF50aS-j.js"; +import { c as we } from "../chunks/CdTXrPIO.js"; +import { b as Ae } from "../chunks/0wx1llIh.js"; +(function () { + try { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + t.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var t = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new t.Error().stack; + e && + ((t._sentryDebugIds = t._sentryDebugIds || {}), + (t._sentryDebugIds[e] = "bcc6de85-c1a7-4324-b950-e2a499027b98"), + (t._sentryDebugIdIdentifier = + "sentry-dbid-bcc6de85-c1a7-4324-b950-e2a499027b98")); + })(); +} catch {} +function ai(t) { + return class extends ii { + constructor(e) { + super({ component: t, ...e }); + } + }; +} +var fe, Z; +class ii { + constructor(e) { + Kt(this, fe); + Kt(this, Z); + var a; + var n = new Map(), + r = (i, o) => { + var c = ja(o, !1, !1); + return n.set(i, c), c; + }; + const s = new Proxy( + { ...(e.props || {}), $$events: {} }, + { + get(i, o) { + return j(n.get(o) ?? r(o, Reflect.get(i, o))); + }, + has(i, o) { + return o === Ba + ? !0 + : (j(n.get(o) ?? r(o, Reflect.get(i, o))), Reflect.has(i, o)); + }, + set(i, o, c) { + return vt(n.get(o) ?? r(o, c), c), Reflect.set(i, o, c); + }, + } + ); + Zt( + this, + Z, + (e.hydrate ? ei : ti)(e.component, { + target: e.target, + anchor: e.anchor, + props: s, + context: e.context, + intro: e.intro ?? !1, + recover: e.recover, + }) + ), + (!((a = e == null ? void 0 : e.props) != null && a.$$host) || + e.sync === !1) && + Ua(), + Zt(this, fe, s.$$events); + for (const i of Object.keys(B(this, Z))) + i === "$set" || + i === "$destroy" || + i === "$on" || + qa(this, i, { + get() { + return B(this, Z)[i]; + }, + set(o) { + B(this, Z)[i] = o; + }, + enumerable: !0, + }); + (B(this, Z).$set = (i) => { + Object.assign(s, i); + }), + (B(this, Z).$destroy = () => { + ni(B(this, Z)); + }); + } + $set(e) { + B(this, Z).$set(e); + } + $on(e, n) { + B(this, fe)[e] = B(this, fe)[e] || []; + const r = (...s) => n.call(this, ...s); + return ( + B(this, fe)[e].push(r), + () => { + B(this, fe)[e] = B(this, fe)[e].filter((s) => s !== r); + } + ); + } + $destroy() { + B(this, Z).$destroy(); + } +} +(fe = new WeakMap()), (Z = new WeakMap()); +const bt = {}, + ur = {}; +function ye(t, e) { + (bt[t] = bt[t] || []), bt[t].push(e); +} +function ve(t, e) { + if (!ur[t]) { + ur[t] = !0; + try { + e(); + } catch (n) { + S && g.error(`Error while instrumenting ${t}`, n); + } + } +} +function ee(t, e) { + const n = t && bt[t]; + if (n) + for (const r of n) + try { + r(e); + } catch (s) { + S && + g.error( + `Error while triggering instrumentation handler. +Type: ${t} +Name: ${_e(r)} +Error:`, + s + ); + } +} +let tn = null; +function cs(t) { + const e = "error"; + ye(e, t), ve(e, oi); +} +function oi() { + (tn = F.onerror), + (F.onerror = function (t, e, n, r, s) { + return ( + ee("error", { column: r, error: s, line: n, msg: t, url: e }), + tn ? tn.apply(this, arguments) : !1 + ); + }), + (F.onerror.__SENTRY_INSTRUMENTED__ = !0); +} +let nn = null; +function us(t) { + const e = "unhandledrejection"; + ye(e, t), ve(e, ci); +} +function ci() { + (nn = F.onunhandledrejection), + (F.onunhandledrejection = function (t) { + return ee("unhandledrejection", t), nn ? nn.apply(this, arguments) : !0; + }), + (F.onunhandledrejection.__SENTRY_INSTRUMENTED__ = !0); +} +let dr = !1; +function ui() { + if (dr) return; + function t() { + const e = G(), + n = e && W(e); + if (n) { + const r = "internal_error"; + S && g.log(`[Tracing] Root span: ${r} -> Global error occurred`), + n.setStatus({ code: Me, message: r }); + } + } + (t.tag = "sentry_tracingErrorCallback"), (dr = !0), cs(t), us(t); +} +class Ee { + constructor(e = {}) { + (this._traceId = e.traceId || Pt()), (this._spanId = e.spanId || Vr()); + } + spanContext() { + return { spanId: this._spanId, traceId: this._traceId, traceFlags: Wr }; + } + end(e) {} + setAttribute(e, n) { + return this; + } + setAttributes(e) { + return this; + } + setStatus(e) { + return this; + } + updateName(e) { + return this; + } + isRecording() { + return !1; + } + addEvent(e, n, r) { + return this; + } + addLink(e) { + return this; + } + addLinks(e) { + return this; + } + recordException(e, n) {} +} +function qe(t, e = []) { + return [t, e]; +} +function di(t, e) { + const [n, r] = t; + return [n, [...r, e]]; +} +function lr(t, e) { + const n = t[1]; + for (const r of n) { + const s = r[0].type; + if (e(r, s)) return !0; + } + return !1; +} +function _n(t) { + const e = ca(F); + return e.encodePolyfill ? e.encodePolyfill(t) : new TextEncoder().encode(t); +} +function li(t) { + const [e, n] = t; + let r = JSON.stringify(e); + function s(a) { + typeof r == "string" + ? (r = typeof a == "string" ? r + a : [_n(r), a]) + : r.push(typeof a == "string" ? _n(a) : a); + } + for (const a of n) { + const [i, o] = a; + if ( + (s(` +${JSON.stringify(i)} +`), + typeof o == "string" || o instanceof Uint8Array) + ) + s(o); + else { + let c; + try { + c = JSON.stringify(o); + } catch { + c = JSON.stringify(oa(o)); + } + s(c); + } + } + return typeof r == "string" ? r : fi(r); +} +function fi(t) { + const e = t.reduce((s, a) => s + a.length, 0), + n = new Uint8Array(e); + let r = 0; + for (const s of t) n.set(s, r), (r += s.length); + return n; +} +function pi(t) { + return [{ type: "span" }, t]; +} +function mi(t) { + const e = typeof t.data == "string" ? _n(t.data) : t.data; + return [ + { + type: "attachment", + length: e.length, + filename: t.filename, + content_type: t.contentType, + attachment_type: t.attachmentType, + }, + e, + ]; +} +const gi = { + session: "session", + sessions: "session", + attachment: "attachment", + transaction: "transaction", + event: "error", + client_report: "internal", + user_report: "default", + profile: "profile", + profile_chunk: "profile", + replay_event: "replay", + replay_recording: "replay", + check_in: "monitor", + feedback: "feedback", + span: "span", + raw_security: "security", + log: "log_item", +}; +function fr(t) { + return gi[t]; +} +function ds(t) { + if (!(t != null && t.sdk)) return; + const { name: e, version: n } = t.sdk; + return { name: e, version: n }; +} +function hi(t, e, n, r) { + var a; + const s = + (a = t.sdkProcessingMetadata) == null ? void 0 : a.dynamicSamplingContext; + return { + event_id: t.event_id, + sent_at: new Date().toISOString(), + ...(e && { sdk: e }), + ...(!!n && r && { dsn: st(r) }), + ...(s && { trace: s }), + }; +} +function Sn(t, e) { + if (!(e != null && e.length) || !t.description) return !1; + for (const n of e) { + if (Si(n)) { + if (Qt(t.description, n)) return !0; + continue; + } + if (!n.name && !n.op) continue; + const r = n.name ? Qt(t.description, n.name) : !0, + s = n.op ? t.op && Qt(t.op, n.op) : !0; + if (r && s) return !0; + } + return !1; +} +function _i(t, e) { + const n = e.parent_span_id, + r = e.span_id; + if (n) for (const s of t) s.parent_span_id === r && (s.parent_span_id = n); +} +function Si(t) { + return typeof t == "string" || t instanceof RegExp; +} +function Ei(t, e) { + var r, s, a, i; + if (!e) return t; + const n = t.sdk || {}; + return ( + (t.sdk = { + ...n, + name: n.name || e.name, + version: n.version || e.version, + integrations: [ + ...(((r = t.sdk) == null ? void 0 : r.integrations) || []), + ...(e.integrations || []), + ], + packages: [ + ...(((s = t.sdk) == null ? void 0 : s.packages) || []), + ...(e.packages || []), + ], + settings: + ((a = t.sdk) != null && a.settings) || e.settings + ? { ...((i = t.sdk) == null ? void 0 : i.settings), ...e.settings } + : void 0, + }), + t + ); +} +function Ti(t, e, n, r) { + const s = ds(n), + a = { + sent_at: new Date().toISOString(), + ...(s && { sdk: s }), + ...(!!r && e && { dsn: st(e) }), + }, + i = + "aggregates" in t + ? [{ type: "sessions" }, t] + : [{ type: "session" }, t.toJSON()]; + return qe(a, [i]); +} +function yi(t, e, n, r) { + const s = ds(n), + a = t.type && t.type !== "replay_event" ? t.type : "event"; + Ei(t, n == null ? void 0 : n.sdk); + const i = hi(t, s, r, e); + return delete t.sdkProcessingMetadata, qe(i, [[{ type: a }, t]]); +} +function vi(t, e) { + function n(f) { + return !!f.trace_id && !!f.public_key; + } + const r = Ne(t[0]), + s = e == null ? void 0 : e.getDsn(), + a = e == null ? void 0 : e.getOptions().tunnel, + i = { + sent_at: new Date().toISOString(), + ...(n(r) && { trace: r }), + ...(!!a && s && { dsn: st(s) }), + }, + { beforeSendSpan: o, ignoreSpans: c } = + (e == null ? void 0 : e.getOptions()) || {}, + u = c != null && c.length ? t.filter((f) => !Sn(R(f), c)) : t, + l = t.length - u.length; + l && (e == null || e.recordDroppedEvent("before_send", "span", l)); + const d = o + ? (f) => { + const m = R(f), + h = o(m); + return h || (mn(), m); + } + : R, + p = []; + for (const f of u) { + const m = d(f); + m && p.push(pi(m)); + } + return qe(i, p); +} +function bi(t) { + if (!S) return; + const { + description: e = "< unknown name >", + op: n = "< unknown op >", + parent_span_id: r, + } = R(t), + { spanId: s } = t.spanContext(), + a = Mt(t), + i = W(t), + o = i === t, + c = `[Tracing] Starting ${a ? "sampled" : "unsampled"} ${ + o ? "root " : "" + }span`, + u = [`op: ${n}`, `name: ${e}`, `ID: ${s}`]; + if ((r && u.push(`parent ID: ${r}`), !o)) { + const { op: l, description: d } = R(i); + u.push(`root ID: ${i.spanContext().spanId}`), + l && u.push(`root op: ${l}`), + d && u.push(`root description: ${d}`); + } + g.log(`${c} + ${u.join(` + `)}`); +} +function Ii(t) { + if (!S) return; + const { description: e = "< unknown name >", op: n = "< unknown op >" } = + R(t), + { spanId: r } = t.spanContext(), + a = W(t) === t, + i = `[Tracing] Finishing "${n}" ${ + a ? "root " : "" + }span "${e}" with ID ${r}`; + g.log(i); +} +function Ri(t, e, n, r = G()) { + const s = r && W(r); + s && + (S && + g.log(`[Measurement] Setting measurement on root span: ${t} = ${e} ${n}`), + s.addEvent(t, { [it]: e, [at]: n })); +} +function pr(t) { + if (!t || t.length === 0) return; + const e = {}; + return ( + t.forEach((n) => { + const r = n.attributes || {}, + s = r[at], + a = r[it]; + typeof s == "string" && + typeof a == "number" && + (e[n.name] = { value: a, unit: s }); + }), + e + ); +} +const mr = 1e3; +class jt { + constructor(e = {}) { + (this._traceId = e.traceId || Pt()), + (this._spanId = e.spanId || Vr()), + (this._startTime = e.startTimestamp || q()), + (this._links = e.links), + (this._attributes = {}), + this.setAttributes({ [D]: "manual", [Se]: e.op, ...e.attributes }), + (this._name = e.name), + e.parentSpanId && (this._parentSpanId = e.parentSpanId), + "sampled" in e && (this._sampled = e.sampled), + e.endTimestamp && (this._endTime = e.endTimestamp), + (this._events = []), + (this._isStandaloneSpan = e.isStandalone), + this._endTime && this._onSpanEnded(); + } + addLink(e) { + return this._links ? this._links.push(e) : (this._links = [e]), this; + } + addLinks(e) { + return this._links ? this._links.push(...e) : (this._links = e), this; + } + recordException(e, n) {} + spanContext() { + const { _spanId: e, _traceId: n, _sampled: r } = this; + return { spanId: e, traceId: n, traceFlags: r ? ua : Wr }; + } + setAttribute(e, n) { + return ( + n === void 0 ? delete this._attributes[e] : (this._attributes[e] = n), + this + ); + } + setAttributes(e) { + return Object.keys(e).forEach((n) => this.setAttribute(n, e[n])), this; + } + updateStartTime(e) { + this._startTime = Xe(e); + } + setStatus(e) { + return (this._status = e), this; + } + updateName(e) { + return (this._name = e), this.setAttribute(Q, "custom"), this; + } + end(e) { + this._endTime || ((this._endTime = Xe(e)), Ii(this), this._onSpanEnded()); + } + getSpanJSON() { + return { + data: this._attributes, + description: this._name, + op: this._attributes[Se], + parent_span_id: this._parentSpanId, + span_id: this._spanId, + start_timestamp: this._startTime, + status: la(this._status), + timestamp: this._endTime, + trace_id: this._traceId, + origin: this._attributes[D], + profile_id: this._attributes[Cn], + exclusive_time: this._attributes[Ue], + measurements: pr(this._events), + is_segment: (this._isStandaloneSpan && W(this) === this) || void 0, + segment_id: this._isStandaloneSpan + ? W(this).spanContext().spanId + : void 0, + links: da(this._links), + }; + } + isRecording() { + return !this._endTime && !!this._sampled; + } + addEvent(e, n, r) { + S && g.log("[Tracing] Adding an event to span:", e); + const s = gr(n) ? n : r || q(), + a = gr(n) ? {} : n || {}, + i = { name: e, time: Xe(s), attributes: a }; + return this._events.push(i), this; + } + isStandaloneSpan() { + return !!this._isStandaloneSpan; + } + _onSpanEnded() { + const e = k(); + if ( + (e && e.emit("spanEnd", this), + !(this._isStandaloneSpan || this === W(this))) + ) + return; + if (this._isStandaloneSpan) { + this._sampled + ? Ai(vi([this], e)) + : (S && + g.log( + "[Tracing] Discarding standalone span because its trace was not chosen to be sampled." + ), + e && e.recordDroppedEvent("sample_rate", "span")); + return; + } + const r = this._convertSpanToTransaction(); + r && (Zn(this).scope || C()).captureEvent(r); + } + _convertSpanToTransaction() { + var l; + if (!hr(R(this))) return; + this._name || + (S && + g.warn( + "Transaction has no name, falling back to ``." + ), + (this._name = "")); + const { scope: e, isolationScope: n } = Zn(this), + r = + (l = e == null ? void 0 : e.getScopeData().sdkProcessingMetadata) == + null + ? void 0 + : l.normalizedRequest; + if (this._sampled !== !0) return; + const a = Et(this) + .filter((d) => d !== this && !wi(d)) + .map((d) => R(d)) + .filter(hr), + i = this._attributes[Q]; + delete this._attributes[Qn], + a.forEach((d) => { + delete d.data[Qn]; + }); + const o = { + contexts: { trace: fa(this) }, + spans: + a.length > mr + ? a + .sort((d, p) => d.start_timestamp - p.start_timestamp) + .slice(0, mr) + : a, + start_timestamp: this._startTime, + timestamp: this._endTime, + transaction: this._name, + type: "transaction", + sdkProcessingMetadata: { + capturedSpanScope: e, + capturedSpanIsolationScope: n, + dynamicSamplingContext: Ne(this), + }, + request: r, + ...(i && { transaction_info: { source: i } }), + }, + c = pr(this._events); + return ( + c && + Object.keys(c).length && + (S && + g.log( + "[Measurements] Adding measurements to transaction event", + JSON.stringify(c, void 0, 2) + ), + (o.measurements = c)), + o + ); + } +} +function gr(t) { + return (t && typeof t == "number") || t instanceof Date || Array.isArray(t); +} +function hr(t) { + return !!t.start_timestamp && !!t.timestamp && !!t.span_id && !!t.trace_id; +} +function wi(t) { + return t instanceof jt && t.isStandaloneSpan(); +} +function Ai(t) { + const e = k(); + if (!e) return; + const n = t[1]; + if (!n || n.length === 0) { + e.recordDroppedEvent("before_send", "span"); + return; + } + e.sendEnvelope(t); +} +function Pi(t, e, n = () => {}) { + let r; + try { + r = t(); + } catch (s) { + throw (e(s), n(), s); + } + return ki(r, e, n); +} +function ki(t, e, n) { + return Gr(t) + ? t.then( + (r) => (n(), r), + (r) => { + throw (e(r), n(), r); + } + ) + : (n(), t); +} +function Ni(t, e, n) { + if (!Le(t)) return [!1]; + let r, s; + typeof t.tracesSampler == "function" + ? ((s = t.tracesSampler({ + ...e, + inheritOrSampleWith: (o) => + typeof e.parentSampleRate == "number" + ? e.parentSampleRate + : typeof e.parentSampled == "boolean" + ? Number(e.parentSampled) + : o, + })), + (r = !0)) + : e.parentSampled !== void 0 + ? (s = e.parentSampled) + : typeof t.tracesSampleRate < "u" && ((s = t.tracesSampleRate), (r = !0)); + const a = On(s); + if (a === void 0) + return ( + S && + g.warn( + `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify( + s + )} of type ${JSON.stringify(typeof s)}.` + ), + [!1] + ); + if (!a) + return ( + S && + g.log( + `[Tracing] Discarding transaction because ${ + typeof t.tracesSampler == "function" + ? "tracesSampler returned 0 or false" + : "a negative sampling decision was inherited or tracesSampleRate is set to 0" + }` + ), + [!1, a, r] + ); + const i = n < a; + return ( + i || + (S && + g.log( + `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number( + s + )})` + )), + [i, a, r] + ); +} +const ls = "__SENTRY_SUPPRESS_TRACING__"; +function Li(t, e) { + const n = Mn(); + if (n.startSpan) return n.startSpan(t, e); + const r = ps(t), + { forceTransaction: s, parentSpan: a, scope: i } = t, + o = i == null ? void 0 : i.clone(); + return Ht(o, () => + Oi(a)(() => { + const u = C(), + l = ms(u, a), + p = + t.onlyIfParent && !l + ? new Ee() + : fs({ + parentSpan: l, + spanArguments: r, + forceTransaction: s, + scope: u, + }); + return ( + $t(u, p), + Pi( + () => e(p), + () => { + const { status: f } = R(p); + p.isRecording() && + (!f || f === "ok") && + p.setStatus({ code: Me, message: "internal_error" }); + }, + () => { + p.end(); + } + ) + ); + }) + ); +} +function xe(t) { + const e = Mn(); + if (e.startInactiveSpan) return e.startInactiveSpan(t); + const n = ps(t), + { forceTransaction: r, parentSpan: s } = t; + return ( + t.scope + ? (i) => Ht(t.scope, i) + : s !== void 0 + ? (i) => Fn(s, i) + : (i) => i() + )(() => { + const i = C(), + o = ms(i, s); + return t.onlyIfParent && !o + ? new Ee() + : fs({ parentSpan: o, spanArguments: n, forceTransaction: r, scope: i }); + }); +} +function Fn(t, e) { + const n = Mn(); + return n.withActiveSpan + ? n.withActiveSpan(t, e) + : Ht((r) => ($t(r, t || void 0), e(r))); +} +function fs({ + parentSpan: t, + spanArguments: e, + forceTransaction: n, + scope: r, +}) { + if (!Le()) { + const i = new Ee(); + if (n || !t) { + const o = { + sampled: "false", + sample_rate: "0", + transaction: e.name, + ...Ne(i), + }; + Tt(i, o); + } + return i; + } + const s = Bt(); + let a; + if (t && !n) (a = Ci(t, r, e)), Xr(t, a); + else if (t) { + const i = Ne(t), + { traceId: o, spanId: c } = t.spanContext(), + u = Mt(t); + (a = _r({ traceId: o, parentSpanId: c, ...e }, r, u)), Tt(a, i); + } else { + const { + traceId: i, + dsc: o, + parentSpanId: c, + sampled: u, + } = { ...s.getPropagationContext(), ...r.getPropagationContext() }; + (a = _r({ traceId: i, parentSpanId: c, ...e }, r, u)), o && Tt(a, o); + } + return bi(a), ma(a, r, s), a; +} +function ps(t) { + const n = { isStandalone: (t.experimental || {}).standalone, ...t }; + if (t.startTime) { + const r = { ...n }; + return (r.startTimestamp = Xe(t.startTime)), delete r.startTime, r; + } + return n; +} +function Mn() { + const t = Yr(); + return zr(t); +} +function _r(t, e, n) { + var m; + const r = k(), + s = (r == null ? void 0 : r.getOptions()) || {}, + { name: a = "" } = t, + i = { spanAttributes: { ...t.attributes }, spanName: a, parentSampled: n }; + r == null || r.emit("beforeSampling", i, { decision: !1 }); + const o = i.parentSampled ?? n, + c = i.spanAttributes, + u = e.getPropagationContext(), + [l, d, p] = e.getScopeData().sdkProcessingMetadata[ls] + ? [!1] + : Ni( + s, + { + name: a, + parentSampled: o, + attributes: c, + parentSampleRate: On((m = u.dsc) == null ? void 0 : m.sample_rate), + }, + u.sampleRand + ), + f = new jt({ + ...t, + attributes: { [Q]: "custom", [Jr]: d !== void 0 && p ? d : void 0, ...c }, + sampled: l, + }); + return ( + !l && + r && + (S && + g.log( + "[Tracing] Discarding root span because its trace was not chosen to be sampled." + ), + r.recordDroppedEvent("sample_rate", "transaction")), + r && r.emit("spanStart", f), + f + ); +} +function Ci(t, e, n) { + const { spanId: r, traceId: s } = t.spanContext(), + a = e.getScopeData().sdkProcessingMetadata[ls] ? !1 : Mt(t), + i = a + ? new jt({ ...n, parentSpanId: r, traceId: s, sampled: a }) + : new Ee({ traceId: s }); + Xr(t, i); + const o = k(); + return ( + o && (o.emit("spanStart", i), n.endTimestamp && o.emit("spanEnd", i)), i + ); +} +function ms(t, e) { + if (e) return e; + if (e === null) return; + const n = pa(t); + if (!n) return; + const r = k(); + return (r ? r.getOptions() : {}).parentSpanIsAlwaysRootSpan ? W(n) : n; +} +function Oi(t) { + return t !== void 0 ? (e) => Fn(t, e) : (e) => e(); +} +const It = { idleTimeout: 1e3, finalTimeout: 3e4, childSpanTimeout: 15e3 }, + xi = "heartbeatFailed", + Di = "idleTimeout", + Fi = "finalTimeout", + Mi = "externalFinish"; +function gs(t, e = {}) { + const n = new Map(); + let r = !1, + s, + a = Mi, + i = !e.disableAutoFinish; + const o = [], + { + idleTimeout: c = It.idleTimeout, + finalTimeout: u = It.finalTimeout, + childSpanTimeout: l = It.childSpanTimeout, + beforeSpanEnd: d, + } = e, + p = k(); + if (!p || !Le()) { + const E = new Ee(), + b = { sample_rate: "0", sampled: "false", ...Ne(E) }; + return Tt(E, b), E; + } + const f = C(), + m = G(), + h = Hi(t); + h.end = new Proxy(h.end, { + apply(E, b, be) { + if ((d && d(h), b instanceof Ee)) return; + const [me, ...ge] = be, + ce = me || q(), + N = Xe(ce), + H = Et(h).filter((P) => P !== h); + if (!H.length) return z(N), Reflect.apply(E, b, [N, ...ge]); + const X = H.map((P) => R(P).timestamp).filter((P) => !!P), + y = X.length ? Math.max(...X) : void 0, + A = R(h).start_timestamp, + v = Math.min( + A ? A + u / 1e3 : 1 / 0, + Math.max(A || -1 / 0, Math.min(N, y || 1 / 0)) + ); + return z(v), Reflect.apply(E, b, [v, ...ge]); + }, + }); + function x() { + s && (clearTimeout(s), (s = void 0)); + } + function I(E) { + x(), + (s = setTimeout(() => { + !r && n.size === 0 && i && ((a = Di), h.end(E)); + }, c)); + } + function M(E) { + s = setTimeout(() => { + !r && i && ((a = xi), h.end(E)); + }, l); + } + function $(E) { + x(), n.set(E, !0); + const b = q(); + M(b + l / 1e3); + } + function oe(E) { + if ((n.has(E) && n.delete(E), n.size === 0)) { + const b = q(); + I(b + c / 1e3); + } + } + function z(E) { + (r = !0), n.clear(), o.forEach((N) => N()), $t(f, m); + const b = R(h), + { start_timestamp: be } = b; + if (!be) return; + b.data[kt] || h.setAttribute(kt, a), + g.log(`[Tracing] Idle span "${b.op}" finished`); + const ge = Et(h).filter((N) => N !== h); + let ce = 0; + ge.forEach((N) => { + N.isRecording() && + (N.setStatus({ code: Me, message: "cancelled" }), + N.end(E), + S && + g.log( + "[Tracing] Cancelling span since span ended early", + JSON.stringify(N, void 0, 2) + )); + const H = R(N), + { timestamp: X = 0, start_timestamp: y = 0 } = H, + A = y <= E, + v = (u + c) / 1e3, + P = X - y <= v; + if (S) { + const w = JSON.stringify(N, void 0, 2); + A + ? P || + g.log( + "[Tracing] Discarding span since it finished after idle span final timeout", + w + ) + : g.log( + "[Tracing] Discarding span since it happened after idle span was finished", + w + ); + } + (!P || !A) && (ga(h, N), ce++); + }), + ce > 0 && h.setAttribute("sentry.idle_span_discarded_spans", ce); + } + return ( + o.push( + p.on("spanStart", (E) => { + if ( + r || + E === h || + R(E).timestamp || + (E instanceof jt && E.isStandaloneSpan()) + ) + return; + Et(h).includes(E) && $(E.spanContext().spanId); + }) + ), + o.push( + p.on("spanEnd", (E) => { + r || oe(E.spanContext().spanId); + }) + ), + o.push( + p.on("idleSpanEnableAutoFinish", (E) => { + E === h && ((i = !0), I(), n.size && M()); + }) + ), + e.disableAutoFinish || I(), + setTimeout(() => { + r || + (h.setStatus({ code: Me, message: "deadline_exceeded" }), + (a = Fi), + h.end()); + }, u), + h + ); +} +function Hi(t) { + const e = xe(t); + return $t(C(), e), S && g.log("[Tracing] Started span is an idle span"), e; +} +const $i = "7"; +function Bi(t) { + const e = t.protocol ? `${t.protocol}:` : "", + n = t.port ? `:${t.port}` : ""; + return `${e}//${t.host}${n}${t.path ? `/${t.path}` : ""}/api/`; +} +function Ui(t) { + return `${Bi(t)}${t.projectId}/envelope/`; +} +function qi(t, e) { + const n = { sentry_version: $i }; + return ( + t.publicKey && (n.sentry_key = t.publicKey), + e && (n.sentry_client = `${e.name}/${e.version}`), + new URLSearchParams(n).toString() + ); +} +function ji(t, e, n) { + return e || `${Ui(t)}?${qi(t, n)}`; +} +const Sr = []; +function Vi(t) { + const e = {}; + return ( + t.forEach((n) => { + const { name: r } = n, + s = e[r]; + (s && !s.isDefaultInstance && n.isDefaultInstance) || (e[r] = n); + }), + Object.values(e) + ); +} +function Wi(t) { + const e = t.defaultIntegrations || [], + n = t.integrations; + e.forEach((s) => { + s.isDefaultInstance = !0; + }); + let r; + if (Array.isArray(n)) r = [...e, ...n]; + else if (typeof n == "function") { + const s = n(e); + r = Array.isArray(s) ? s : [s]; + } else r = e; + return Vi(r); +} +function Gi(t, e) { + const n = {}; + return ( + e.forEach((r) => { + r && hs(t, r, n); + }), + n + ); +} +function Er(t, e) { + for (const n of e) n != null && n.afterAllSetup && n.afterAllSetup(t); +} +function hs(t, e, n) { + if (n[e.name]) { + S && + g.log(`Integration skipped because it was already installed: ${e.name}`); + return; + } + if ( + ((n[e.name] = e), + Sr.indexOf(e.name) === -1 && + typeof e.setupOnce == "function" && + (e.setupOnce(), Sr.push(e.name)), + e.setup && typeof e.setup == "function" && e.setup(t), + typeof e.preprocessEvent == "function") + ) { + const r = e.preprocessEvent.bind(e); + t.on("preprocessEvent", (s, a) => r(s, a, t)); + } + if (typeof e.processEvent == "function") { + const r = e.processEvent.bind(e), + s = Object.assign((a, i) => r(a, i, t), { id: e.name }); + t.addEventProcessor(s); + } + S && g.log(`Integration installed: ${e.name}`); +} +function Yi(t, e, n) { + const r = [ + { type: "client_report" }, + { timestamp: Ut(), discarded_events: t }, + ]; + return qe(e ? { dsn: e } : {}, [r]); +} +function _s(t) { + const e = []; + t.message && e.push(t.message); + try { + const n = t.exception.values[t.exception.values.length - 1]; + n != null && + n.value && + (e.push(n.value), n.type && e.push(`${n.type}: ${n.value}`)); + } catch {} + return e; +} +function zi(t) { + var c; + const { + trace_id: e, + parent_span_id: n, + span_id: r, + status: s, + origin: a, + data: i, + op: o, + } = ((c = t.contexts) == null ? void 0 : c.trace) ?? {}; + return { + data: i ?? {}, + description: t.transaction, + op: o, + parent_span_id: n, + span_id: r ?? "", + start_timestamp: t.start_timestamp ?? 0, + status: s, + timestamp: t.timestamp, + trace_id: e ?? "", + origin: a, + profile_id: i == null ? void 0 : i[Cn], + exclusive_time: i == null ? void 0 : i[Ue], + measurements: t.measurements, + is_segment: !0, + }; +} +function Xi(t) { + return { + type: "transaction", + timestamp: t.timestamp, + start_timestamp: t.start_timestamp, + transaction: t.description, + contexts: { + trace: { + trace_id: t.trace_id, + span_id: t.span_id, + parent_span_id: t.parent_span_id, + op: t.op, + status: t.status, + origin: t.origin, + data: { + ...t.data, + ...(t.profile_id && { [Cn]: t.profile_id }), + ...(t.exclusive_time && { [Ue]: t.exclusive_time }), + }, + }, + }, + measurements: t.measurements, + }; +} +const Tr = "Not capturing exception because it's already been captured.", + yr = "Discarded session because of missing or non-string release", + Ss = Symbol.for("SentryInternalError"), + Es = Symbol.for("SentryDoNotSendEventError"); +function Rt(t) { + return { message: t, [Ss]: !0 }; +} +function rn(t) { + return { message: t, [Es]: !0 }; +} +function vr(t) { + return !!t && typeof t == "object" && Ss in t; +} +function br(t) { + return !!t && typeof t == "object" && Es in t; +} +class Ji { + constructor(e) { + if ( + ((this._options = e), + (this._integrations = {}), + (this._numProcessing = 0), + (this._outcomes = {}), + (this._hooks = {}), + (this._eventProcessors = []), + e.dsn + ? (this._dsn = ha(e.dsn)) + : S && g.warn("No DSN provided, client will not send events."), + this._dsn) + ) { + const n = ji(this._dsn, e.tunnel, e._metadata ? e._metadata.sdk : void 0); + this._transport = e.transport({ + tunnel: this._options.tunnel, + recordDroppedEvent: this.recordDroppedEvent.bind(this), + ...e.transportOptions, + url: n, + }); + } + } + captureException(e, n, r) { + const s = yt(); + if (er(e)) return S && g.log(Tr), s; + const a = { event_id: s, ...n }; + return ( + this._process( + this.eventFromException(e, a).then((i) => this._captureEvent(i, a, r)) + ), + a.event_id + ); + } + captureMessage(e, n, r, s) { + const a = { event_id: yt(), ...r }, + i = Qr(e) ? e : String(e), + o = Qe(e) + ? this.eventFromMessage(i, n, a) + : this.eventFromException(e, a); + return ( + this._process(o.then((c) => this._captureEvent(c, a, s))), a.event_id + ); + } + captureEvent(e, n, r) { + const s = yt(); + if (n != null && n.originalException && er(n.originalException)) + return S && g.log(Tr), s; + const a = { event_id: s, ...n }, + i = e.sdkProcessingMetadata || {}, + o = i.capturedSpanScope, + c = i.capturedSpanIsolationScope; + return this._process(this._captureEvent(e, a, o || r, c)), a.event_id; + } + captureSession(e) { + this.sendSession(e), tr(e, { init: !1 }); + } + getDsn() { + return this._dsn; + } + getOptions() { + return this._options; + } + getSdkMetadata() { + return this._options._metadata; + } + getTransport() { + return this._transport; + } + flush(e) { + const n = this._transport; + return n + ? (this.emit("flush"), + this._isClientDoneProcessing(e).then((r) => + n.flush(e).then((s) => r && s) + )) + : Ce(!0); + } + close(e) { + return this.flush(e).then( + (n) => ((this.getOptions().enabled = !1), this.emit("close"), n) + ); + } + getEventProcessors() { + return this._eventProcessors; + } + addEventProcessor(e) { + this._eventProcessors.push(e); + } + init() { + (this._isEnabled() || + this._options.integrations.some(({ name: e }) => + e.startsWith("Spotlight") + )) && + this._setupIntegrations(); + } + getIntegrationByName(e) { + return this._integrations[e]; + } + addIntegration(e) { + const n = this._integrations[e.name]; + hs(this, e, this._integrations), n || Er(this, [e]); + } + sendEvent(e, n = {}) { + this.emit("beforeSendEvent", e, n); + let r = yi(e, this._dsn, this._options._metadata, this._options.tunnel); + for (const a of n.attachments || []) r = di(r, mi(a)); + const s = this.sendEnvelope(r); + s && s.then((a) => this.emit("afterSendEvent", e, a), null); + } + sendSession(e) { + const { release: n, environment: r = _a } = this._options; + if ("aggregates" in e) { + const a = e.attrs || {}; + if (!a.release && !n) { + S && g.warn(yr); + return; + } + (a.release = a.release || n), + (a.environment = a.environment || r), + (e.attrs = a); + } else { + if (!e.release && !n) { + S && g.warn(yr); + return; + } + (e.release = e.release || n), (e.environment = e.environment || r); + } + this.emit("beforeSendSession", e); + const s = Ti(e, this._dsn, this._options._metadata, this._options.tunnel); + this.sendEnvelope(s); + } + recordDroppedEvent(e, n, r = 1) { + if (this._options.sendClientReports) { + const s = `${e}:${n}`; + S && g.log(`Recording outcome: "${s}"${r > 1 ? ` (${r} times)` : ""}`), + (this._outcomes[s] = (this._outcomes[s] || 0) + r); + } + } + on(e, n) { + const r = (this._hooks[e] = this._hooks[e] || []); + return ( + r.push(n), + () => { + const s = r.indexOf(n); + s > -1 && r.splice(s, 1); + } + ); + } + emit(e, ...n) { + const r = this._hooks[e]; + r && r.forEach((s) => s(...n)); + } + sendEnvelope(e) { + return ( + this.emit("beforeEnvelope", e), + this._isEnabled() && this._transport + ? this._transport + .send(e) + .then( + null, + (n) => (S && g.error("Error while sending envelope:", n), n) + ) + : (S && g.error("Transport disabled"), Ce({})) + ); + } + _setupIntegrations() { + const { integrations: e } = this._options; + (this._integrations = Gi(this, e)), Er(this, e); + } + _updateSessionFromEvent(e, n) { + var c; + let r = n.level === "fatal", + s = !1; + const a = (c = n.exception) == null ? void 0 : c.values; + if (a) { + s = !0; + for (const u of a) { + const l = u.mechanism; + if ((l == null ? void 0 : l.handled) === !1) { + r = !0; + break; + } + } + } + const i = e.status === "ok"; + ((i && e.errors === 0) || (i && r)) && + (tr(e, { + ...(r && { status: "crashed" }), + errors: e.errors || Number(s || r), + }), + this.captureSession(e)); + } + _isClientDoneProcessing(e) { + return new Kr((n) => { + let r = 0; + const s = 1, + a = setInterval(() => { + this._numProcessing == 0 + ? (clearInterval(a), n(!0)) + : ((r += s), e && r >= e && (clearInterval(a), n(!1))); + }, s); + }); + } + _isEnabled() { + return this.getOptions().enabled !== !1 && this._transport !== void 0; + } + _prepareEvent(e, n, r, s) { + const a = this.getOptions(), + i = Object.keys(this._integrations); + return ( + !n.integrations && i != null && i.length && (n.integrations = i), + this.emit("preprocessEvent", e, n), + e.type || s.setLastEventId(e.event_id || n.event_id), + Sa(a, e, n, r, this, s).then((o) => { + if (o === null) return o; + this.emit("postprocessEvent", o, n), + (o.contexts = { trace: Ea(r), ...o.contexts }); + const c = Zr(this, r); + return ( + (o.sdkProcessingMetadata = { + dynamicSamplingContext: c, + ...o.sdkProcessingMetadata, + }), + o + ); + }) + ); + } + _captureEvent(e, n = {}, r = C(), s = Bt()) { + return ( + S && + En(e) && + g.log(`Captured error event \`${_s(e)[0] || ""}\``), + this._processEvent(e, n, r, s).then( + (a) => a.event_id, + (a) => { + S && + (br(a) ? g.log(a.message) : vr(a) ? g.warn(a.message) : g.warn(a)); + } + ) + ); + } + _processEvent(e, n, r, s) { + const a = this.getOptions(), + { sampleRate: i } = a, + o = Ts(e), + c = En(e), + u = e.type || "error", + l = `before send for type \`${u}\``, + d = typeof i > "u" ? void 0 : On(i); + if (c && typeof d == "number" && Math.random() > d) + return ( + this.recordDroppedEvent("sample_rate", "error"), + Nt( + rn( + `Discarding event because it's not included in the random sample (sampling rate = ${i})` + ) + ) + ); + const p = u === "replay_event" ? "replay" : u; + return this._prepareEvent(e, n, r, s) + .then((f) => { + if (f === null) + throw ( + (this.recordDroppedEvent("event_processor", p), + rn("An event processor returned `null`, will not send event.")) + ); + if (n.data && n.data.__sentry__ === !0) return f; + const h = Zi(this, a, f, n); + return Ki(h, l); + }) + .then((f) => { + var x; + if (f === null) { + if ((this.recordDroppedEvent("before_send", p), o)) { + const M = 1 + (e.spans || []).length; + this.recordDroppedEvent("before_send", "span", M); + } + throw rn(`${l} returned \`null\`, will not send event.`); + } + const m = r.getSession() || s.getSession(); + if ((c && m && this._updateSessionFromEvent(m, f), o)) { + const I = + ((x = f.sdkProcessingMetadata) == null + ? void 0 + : x.spanCountBeforeProcessing) || 0, + M = f.spans ? f.spans.length : 0, + $ = I - M; + $ > 0 && this.recordDroppedEvent("before_send", "span", $); + } + const h = f.transaction_info; + if (o && h && f.transaction !== e.transaction) { + const I = "custom"; + f.transaction_info = { ...h, source: I }; + } + return this.sendEvent(f, n), f; + }) + .then(null, (f) => { + throw br(f) || vr(f) + ? f + : (this.captureException(f, { + mechanism: { handled: !1, type: "internal" }, + data: { __sentry__: !0 }, + originalException: f, + }), + Rt(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${f}`)); + }); + } + _process(e) { + this._numProcessing++, + e.then( + (n) => (this._numProcessing--, n), + (n) => (this._numProcessing--, n) + ); + } + _clearOutcomes() { + const e = this._outcomes; + return ( + (this._outcomes = {}), + Object.entries(e).map(([n, r]) => { + const [s, a] = n.split(":"); + return { reason: s, category: a, quantity: r }; + }) + ); + } + _flushOutcomes() { + S && g.log("Flushing outcomes..."); + const e = this._clearOutcomes(); + if (e.length === 0) { + S && g.log("No outcomes to send"); + return; + } + if (!this._dsn) { + S && g.log("No dsn provided, will not send outcomes"); + return; + } + S && g.log("Sending outcomes:", e); + const n = Yi(e, this._options.tunnel && st(this._dsn)); + this.sendEnvelope(n); + } +} +function Ki(t, e) { + const n = `${e} must return \`null\` or a valid event.`; + if (Gr(t)) + return t.then( + (r) => { + if (!gn(r) && r !== null) throw Rt(n); + return r; + }, + (r) => { + throw Rt(`${e} rejected with ${r}`); + } + ); + if (!gn(t) && t !== null) throw Rt(n); + return t; +} +function Zi(t, e, n, r) { + const { + beforeSend: s, + beforeSendTransaction: a, + beforeSendSpan: i, + ignoreSpans: o, + } = e; + let c = n; + if (En(c) && s) return s(c, r); + if (Ts(c)) { + if (i || o) { + const u = zi(c); + if (o != null && o.length && Sn(u, o)) return null; + if (i) { + const l = i(u); + l ? (c = Ta(n, Xi(l))) : mn(); + } + if (c.spans) { + const l = [], + d = c.spans; + for (const f of d) { + if (o != null && o.length && Sn(f, o)) { + _i(d, f); + continue; + } + if (i) { + const m = i(f); + m ? l.push(m) : (mn(), l.push(f)); + } else l.push(f); + } + const p = c.spans.length - l.length; + p && t.recordDroppedEvent("before_send", "span", p), (c.spans = l); + } + } + if (a) { + if (c.spans) { + const u = c.spans.length; + c.sdkProcessingMetadata = { + ...n.sdkProcessingMetadata, + spanCountBeforeProcessing: u, + }; + } + return a(c, r); + } + } + return c; +} +function En(t) { + return t.type === void 0; +} +function Ts(t) { + return t.type === "transaction"; +} +function Qi(t) { + return [ + { + type: "log", + item_count: t.length, + content_type: "application/vnd.sentry.items.log+json", + }, + { items: t }, + ]; +} +function eo(t, e, n, r) { + const s = {}; + return ( + e != null && + e.sdk && + (s.sdk = { name: e.sdk.name, version: e.sdk.version }), + n && r && (s.dsn = st(r)), + qe(s, [Qi(t)]) + ); +} +function sn(t, e) { + const n = to(t) ?? []; + if (n.length === 0) return; + const r = t.getOptions(), + s = eo(n, r._metadata, r.tunnel, t.getDsn()); + ys().set(t, []), t.emit("flushLogs"), t.sendEnvelope(s); +} +function to(t) { + return ys().get(t); +} +function ys() { + return ya("clientToLogBufferMap", () => new WeakMap()); +} +function no(t, e) { + e.debug === !0 && + (S + ? g.enable() + : qt(() => { + console.warn( + "[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle." + ); + })), + C().update(e.initialScope); + const r = new t(e); + return ro(r), r.init(), r; +} +function ro(t) { + C().setClient(t); +} +const vs = Symbol.for("SentryBufferFullError"); +function so(t) { + const e = []; + function n() { + return t === void 0 || e.length < t; + } + function r(i) { + return e.splice(e.indexOf(i), 1)[0] || Promise.resolve(void 0); + } + function s(i) { + if (!n()) return Nt(vs); + const o = i(); + return ( + e.indexOf(o) === -1 && e.push(o), + o.then(() => r(o)).then(null, () => r(o).then(null, () => {})), + o + ); + } + function a(i) { + return new Kr((o, c) => { + let u = e.length; + if (!u) return o(!0); + const l = setTimeout(() => { + i && i > 0 && o(!1); + }, i); + e.forEach((d) => { + Ce(d).then(() => { + --u || (clearTimeout(l), o(!0)); + }, c); + }); + }); + } + return { $: e, add: s, drain: a }; +} +const ao = 60 * 1e3; +function io(t, e = Date.now()) { + const n = parseInt(`${t}`, 10); + if (!isNaN(n)) return n * 1e3; + const r = Date.parse(`${t}`); + return isNaN(r) ? ao : r - e; +} +function oo(t, e) { + return t[e] || t.all || 0; +} +function co(t, e, n = Date.now()) { + return oo(t, e) > n; +} +function uo(t, { statusCode: e, headers: n }, r = Date.now()) { + const s = { ...t }, + a = n == null ? void 0 : n["x-sentry-rate-limits"], + i = n == null ? void 0 : n["retry-after"]; + if (a) + for (const o of a.trim().split(",")) { + const [c, u, , , l] = o.split(":", 5), + d = parseInt(c, 10), + p = (isNaN(d) ? 60 : d) * 1e3; + if (!u) s.all = r + p; + else + for (const f of u.split(";")) + f === "metric_bucket" + ? (!l || l.split(";").includes("custom")) && (s[f] = r + p) + : (s[f] = r + p); + } + else i ? (s.all = r + io(i, r)) : e === 429 && (s.all = r + 60 * 1e3); + return s; +} +const lo = 64; +function fo(t, e, n = so(t.bufferSize || lo)) { + let r = {}; + const s = (i) => n.drain(i); + function a(i) { + const o = []; + if ( + (lr(i, (d, p) => { + const f = fr(p); + co(r, f) ? t.recordDroppedEvent("ratelimit_backoff", f) : o.push(d); + }), + o.length === 0) + ) + return Ce({}); + const c = qe(i[0], o), + u = (d) => { + lr(c, (p, f) => { + t.recordDroppedEvent(d, fr(f)); + }); + }, + l = () => + e({ body: li(c) }).then( + (d) => ( + d.statusCode !== void 0 && + (d.statusCode < 200 || d.statusCode >= 300) && + S && + g.warn( + `Sentry responded with status code ${d.statusCode} to sent event.` + ), + (r = uo(r, d)), + d + ), + (d) => { + throw ( + (u("network_error"), + S && g.error("Encountered error running transport request:", d), + d) + ); + } + ); + return n.add(l).then( + (d) => d, + (d) => { + if (d === vs) + return ( + S && g.error("Skipped sending event because buffer is full."), + u("queue_overflow"), + Ce({}) + ); + throw d; + } + ); + } + return { send: a, flush: s }; +} +const po = "thismessage:/"; +function bs(t) { + return "isRelative" in t; +} +function Is(t, e) { + const n = t.indexOf("://") <= 0 && t.indexOf("//") !== 0, + r = n ? po : void 0; + try { + if ("canParse" in URL && !URL.canParse(t, r)) return; + const s = new URL(t, r); + return n + ? { isRelative: n, pathname: s.pathname, search: s.search, hash: s.hash } + : s; + } catch {} +} +function mo(t) { + if (bs(t)) return t.pathname; + const e = new URL(t); + return ( + (e.search = ""), + (e.hash = ""), + ["80", "443"].includes(e.port) && (e.port = ""), + e.password && (e.password = "%filtered%"), + e.username && (e.username = "%filtered%"), + e.toString() + ); +} +function ke(t) { + if (!t) return {}; + const e = t.match( + /^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/ + ); + if (!e) return {}; + const n = e[6] || "", + r = e[8] || ""; + return { + host: e[4], + path: e[5], + protocol: e[2], + search: n, + hash: r, + relative: e[5] + n + r, + }; +} +function go(t) { + return t.split(/[?#]/, 1)[0]; +} +function ho(t) { + var e; + "aggregates" in t + ? ((e = t.attrs) == null ? void 0 : e.ip_address) === void 0 && + (t.attrs = { ...t.attrs, ip_address: "{{auto}}" }) + : t.ipAddress === void 0 && (t.ipAddress = "{{auto}}"); +} +function Hn(t, e, n = [e], r = "npm") { + const s = t._metadata || {}; + s.sdk || + (s.sdk = { + name: `sentry.javascript.${e}`, + packages: n.map((a) => ({ name: `${r}:@sentry/${a}`, version: nr })), + version: nr, + }), + (t._metadata = s); +} +function Rs(t = {}) { + const e = t.client || k(); + if (!va() || !e) return {}; + const n = Yr(), + r = zr(n); + if (r.getTraceData) return r.getTraceData(t); + const s = t.scope || C(), + a = t.span || G(), + i = a ? ba(a) : _o(s), + o = a ? Ne(a) : Zr(e, s), + c = Ia(o); + if (!Ra.test(i)) + return g.warn("Invalid sentry-trace data. Cannot generate trace data"), {}; + const l = { "sentry-trace": i, baggage: c }; + if (t.propagateTraceparent) { + const d = So(i); + d && (l.traceparent = d); + } + return l; +} +function _o(t) { + const { + traceId: e, + sampled: n, + propagationSpanId: r, + } = t.getPropagationContext(); + return wa(e, r, n); +} +function So(t) { + const { traceId: e, parentSpanId: n, parentSampled: r } = Aa(t) || {}; + if (!(!e || !n)) return `00-${e}-${n}-${r ? "01" : "00"}`; +} +const Eo = 100; +function Oe(t, e) { + const n = k(), + r = Bt(); + if (!n) return; + const { beforeBreadcrumb: s = null, maxBreadcrumbs: a = Eo } = n.getOptions(); + if (a <= 0) return; + const o = { timestamp: Ut(), ...t }, + c = s ? qt(() => s(o, e)) : o; + c !== null && + (n.emit && n.emit("beforeAddBreadcrumb", c, e), r.addBreadcrumb(c, a)); +} +let Ir; +const To = "FunctionToString", + Rr = new WeakMap(), + yo = () => ({ + name: To, + setupOnce() { + Ir = Function.prototype.toString; + try { + Function.prototype.toString = function (...t) { + const e = xn(this), + n = Rr.has(k()) && e !== void 0 ? e : this; + return Ir.apply(n, t); + }; + } catch {} + }, + setup(t) { + Rr.set(t, !0); + }, + }), + vo = yo, + bo = [ + /^Script error\.?$/, + /^Javascript error: Script error\.? on line 0$/, + /^ResizeObserver loop completed with undelivered notifications.$/, + /^Cannot redefine property: googletag$/, + /^Can't find variable: gmo$/, + /^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/, + `can't redefine non-configurable property "solana"`, + "vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)", + "Can't find variable: _AutofillCallbackHandler", + /^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/, + /^Java exception was raised during method invocation$/, + ], + Io = "EventFilters", + Ro = (t = {}) => { + let e; + return { + name: Io, + setup(n) { + const r = n.getOptions(); + e = wr(t, r); + }, + processEvent(n, r, s) { + if (!e) { + const a = s.getOptions(); + e = wr(t, a); + } + return Ao(n, e) ? null : n; + }, + }; + }, + wo = (t = {}) => ({ ...Ro(t), name: "InboundFilters" }); +function wr(t = {}, e = {}) { + return { + allowUrls: [...(t.allowUrls || []), ...(e.allowUrls || [])], + denyUrls: [...(t.denyUrls || []), ...(e.denyUrls || [])], + ignoreErrors: [ + ...(t.ignoreErrors || []), + ...(e.ignoreErrors || []), + ...(t.disableErrorDefaults ? [] : bo), + ], + ignoreTransactions: [ + ...(t.ignoreTransactions || []), + ...(e.ignoreTransactions || []), + ], + }; +} +function Ao(t, e) { + if (t.type) { + if (t.type === "transaction" && ko(t, e.ignoreTransactions)) + return ( + S && + g.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Pe(t)}`), + !0 + ); + } else { + if (Po(t, e.ignoreErrors)) + return ( + S && + g.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Pe(t)}`), + !0 + ); + if (Oo(t)) + return ( + S && + g.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Pe(t)}`), + !0 + ); + if (No(t, e.denyUrls)) + return ( + S && + g.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${Pe(t)}. +Url: ${Ct(t)}`), + !0 + ); + if (!Lo(t, e.allowUrls)) + return ( + S && + g.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${Pe(t)}. +Url: ${Ct(t)}`), + !0 + ); + } + return !1; +} +function Po(t, e) { + return e != null && e.length ? _s(t).some((n) => he(n, e)) : !1; +} +function ko(t, e) { + if (!(e != null && e.length)) return !1; + const n = t.transaction; + return n ? he(n, e) : !1; +} +function No(t, e) { + if (!(e != null && e.length)) return !1; + const n = Ct(t); + return n ? he(n, e) : !1; +} +function Lo(t, e) { + if (!(e != null && e.length)) return !0; + const n = Ct(t); + return n ? he(n, e) : !0; +} +function Co(t = []) { + for (let e = t.length - 1; e >= 0; e--) { + const n = t[e]; + if (n && n.filename !== "" && n.filename !== "[native code]") + return n.filename || null; + } + return null; +} +function Ct(t) { + var e, n; + try { + const r = [...(((e = t.exception) == null ? void 0 : e.values) ?? [])] + .reverse() + .find((a) => { + var i, o, c; + return ( + ((i = a.mechanism) == null ? void 0 : i.parent_id) === void 0 && + ((c = (o = a.stacktrace) == null ? void 0 : o.frames) == null + ? void 0 + : c.length) + ); + }), + s = (n = r == null ? void 0 : r.stacktrace) == null ? void 0 : n.frames; + return s ? Co(s) : null; + } catch { + return S && g.error(`Cannot extract url for event ${Pe(t)}`), null; + } +} +function Oo(t) { + var e, n; + return (n = (e = t.exception) == null ? void 0 : e.values) != null && n.length + ? !t.message && + !t.exception.values.some( + (r) => r.stacktrace || (r.type && r.type !== "Error") || r.value + ) + : !1; +} +function xo(t, e, n, r, s, a) { + var o; + if ( + !((o = s.exception) != null && o.values) || + !a || + !Lt(a.originalException, Error) + ) + return; + const i = + s.exception.values.length > 0 + ? s.exception.values[s.exception.values.length - 1] + : void 0; + i && + (s.exception.values = Tn( + t, + e, + r, + a.originalException, + n, + s.exception.values, + i, + 0 + )); +} +function Tn(t, e, n, r, s, a, i, o) { + if (a.length >= n + 1) return a; + let c = [...a]; + if (Lt(r[s], Error)) { + Ar(i, o); + const u = t(e, r[s]), + l = c.length; + Pr(u, s, l, o), (c = Tn(t, e, n, r[s], s, [u, ...c], u, l)); + } + return ( + Array.isArray(r.errors) && + r.errors.forEach((u, l) => { + if (Lt(u, Error)) { + Ar(i, o); + const d = t(e, u), + p = c.length; + Pr(d, `errors[${l}]`, p, o), (c = Tn(t, e, n, u, s, [d, ...c], d, p)); + } + }), + c + ); +} +function Ar(t, e) { + (t.mechanism = t.mechanism || { type: "generic", handled: !0 }), + (t.mechanism = { + ...t.mechanism, + ...(t.type === "AggregateError" && { is_exception_group: !0 }), + exception_id: e, + }); +} +function Pr(t, e, n, r) { + (t.mechanism = t.mechanism || { type: "generic", handled: !0 }), + (t.mechanism = { + ...t.mechanism, + type: "chained", + source: e, + exception_id: n, + parent_id: r, + }); +} +function Do(t) { + const e = "console"; + ye(e, t), ve(e, Fo); +} +function Fo() { + "console" in F && + Pa.forEach(function (t) { + t in F.console && + V(F.console, t, function (e) { + return ( + (rr[t] = e), + function (...n) { + ee("console", { args: n, level: t }); + const s = rr[t]; + s == null || s.apply(F.console, n); + } + ); + }); + }); +} +function Mo(t) { + return t === "warn" + ? "warning" + : ["fatal", "error", "warning", "log", "info", "debug"].includes(t) + ? t + : "log"; +} +const Ho = "Dedupe", + $o = () => { + let t; + return { + name: Ho, + processEvent(e) { + if (e.type) return e; + try { + if (Uo(e, t)) + return ( + S && + g.warn( + "Event dropped due to being a duplicate of previously captured event." + ), + null + ); + } catch {} + return (t = e); + }, + }; + }, + Bo = $o; +function Uo(t, e) { + return e ? !!(qo(t, e) || jo(t, e)) : !1; +} +function qo(t, e) { + const n = t.message, + r = e.message; + return !( + (!n && !r) || + (n && !r) || + (!n && r) || + n !== r || + !As(t, e) || + !ws(t, e) + ); +} +function jo(t, e) { + const n = kr(e), + r = kr(t); + return !( + !n || + !r || + n.type !== r.type || + n.value !== r.value || + !As(t, e) || + !ws(t, e) + ); +} +function ws(t, e) { + let n = sr(t), + r = sr(e); + if (!n && !r) return !0; + if ((n && !r) || (!n && r) || ((n = n), (r = r), r.length !== n.length)) + return !1; + for (let s = 0; s < r.length; s++) { + const a = r[s], + i = n[s]; + if ( + a.filename !== i.filename || + a.lineno !== i.lineno || + a.colno !== i.colno || + a.function !== i.function + ) + return !1; + } + return !0; +} +function As(t, e) { + let n = t.fingerprint, + r = e.fingerprint; + if (!n && !r) return !0; + if ((n && !r) || (!n && r)) return !1; + (n = n), (r = r); + try { + return n.join("") === r.join(""); + } catch { + return !1; + } +} +function kr(t) { + var e, n; + return (n = (e = t.exception) == null ? void 0 : e.values) == null + ? void 0 + : n[0]; +} +function Vo(t, e, n, r, s) { + if (!t.fetchData) return; + const { method: a, url: i } = t.fetchData, + o = Le() && e(i); + if (t.endTimestamp && o) { + const f = t.fetchData.__span; + if (!f) return; + const m = r[f]; + m && (Go(m, t), delete r[f]); + return; + } + const { spanOrigin: c = "auto.http.browser", propagateTraceparent: u = !1 } = + typeof s == "object" ? s : { spanOrigin: s }, + l = !!G(), + d = o && l ? xe(zo(i, a, c)) : new Ee(); + if ( + ((t.fetchData.__span = d.spanContext().spanId), + (r[d.spanContext().spanId] = d), + n(t.fetchData.url)) + ) { + const f = t.args[0], + m = t.args[1] || {}, + h = Wo(f, m, Le() && l ? d : void 0, u); + h && ((t.args[1] = m), (m.headers = h)); + } + const p = k(); + if (p) { + const f = { + input: t.args, + response: t.response, + startTimestamp: t.startTimestamp, + endTimestamp: t.endTimestamp, + }; + p.emit("beforeOutgoingRequestSpan", d, f); + } + return d; +} +function Wo(t, e, n, r) { + const s = Rs({ span: n, propagateTraceparent: r }), + a = s["sentry-trace"], + i = s.baggage, + o = s.traceparent; + if (!a) return; + const c = e.headers || (ts(t) ? t.headers : void 0); + if (c) + if (Yo(c)) { + const u = new Headers(c); + if ( + (u.get("sentry-trace") || u.set("sentry-trace", a), + r && o && !u.get("traceparent") && u.set("traceparent", o), + i) + ) { + const l = u.get("baggage"); + l ? mt(l) || u.set("baggage", `${l},${i}`) : u.set("baggage", i); + } + return u; + } else if (Array.isArray(c)) { + const u = [...c]; + c.find((d) => d[0] === "sentry-trace") || u.push(["sentry-trace", a]), + r && + o && + !c.find((d) => d[0] === "traceparent") && + u.push(["traceparent", o]); + const l = c.find((d) => d[0] === "baggage" && mt(d[1])); + return i && !l && u.push(["baggage", i]), u; + } else { + const u = "sentry-trace" in c ? c["sentry-trace"] : void 0, + l = "traceparent" in c ? c.traceparent : void 0, + d = "baggage" in c ? c.baggage : void 0, + p = d ? (Array.isArray(d) ? [...d] : [d]) : [], + f = d && (Array.isArray(d) ? d.find((h) => mt(h)) : mt(d)); + i && !f && p.push(i); + const m = { + ...c, + "sentry-trace": u ?? a, + baggage: p.length > 0 ? p.join(",") : void 0, + }; + return r && o && !l && (m.traceparent = o), m; + } + else return { ...s }; +} +function Go(t, e) { + var n, r; + if (e.response) { + es(t, e.response.status); + const s = + (r = (n = e.response) == null ? void 0 : n.headers) == null + ? void 0 + : r.get("content-length"); + if (s) { + const a = parseInt(s); + a > 0 && t.setAttribute("http.response_content_length", a); + } + } else e.error && t.setStatus({ code: Me, message: "internal_error" }); + t.end(); +} +function mt(t) { + return t.split(",").some((e) => e.trim().startsWith(ka)); +} +function Yo(t) { + return typeof Headers < "u" && Lt(t, Headers); +} +function zo(t, e, n) { + const r = Is(t); + return { name: r ? `${e} ${mo(r)}` : e, attributes: Xo(t, r, e, n) }; +} +function Xo(t, e, n, r) { + const s = { + url: t, + type: "fetch", + "http.method": n, + [D]: r, + [Se]: "http.client", + }; + return ( + e && + (bs(e) || ((s["http.url"] = e.href), (s["server.address"] = e.host)), + e.search && (s["http.query"] = e.search), + e.hash && (s["http.fragment"] = e.hash)), + s + ); +} +function Ps(t) { + if (t !== void 0) + return t >= 400 && t < 500 ? "warning" : t >= 500 ? "error" : void 0; +} +const nt = F; +function Jo() { + return "history" in nt && !!nt.history; +} +function Ko() { + if (!("fetch" in nt)) return !1; + try { + return ( + new Headers(), new Request("http://www.example.com"), new Response(), !0 + ); + } catch { + return !1; + } +} +function yn(t) { + return ( + t && /^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(t.toString()) + ); +} +function Zo() { + var n; + if (typeof EdgeRuntime == "string") return !0; + if (!Ko()) return !1; + if (yn(nt.fetch)) return !0; + let t = !1; + const e = nt.document; + if (e && typeof e.createElement == "function") + try { + const r = e.createElement("iframe"); + (r.hidden = !0), + e.head.appendChild(r), + (n = r.contentWindow) != null && + n.fetch && + (t = yn(r.contentWindow.fetch)), + e.head.removeChild(r); + } catch (r) { + S && + g.warn( + "Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ", + r + ); + } + return t; +} +function ks(t, e) { + const n = "fetch"; + ye(n, t), ve(n, () => Ns(void 0, e)); +} +function Qo(t) { + const e = "fetch-body-resolved"; + ye(e, t), ve(e, () => Ns(tc)); +} +function Ns(t, e = !1) { + (e && !Zo()) || + V(F, "fetch", function (n) { + return function (...r) { + const s = new Error(), + { method: a, url: i } = nc(r), + o = { + args: r, + fetchData: { method: a, url: i }, + startTimestamp: q() * 1e3, + virtualError: s, + headers: rc(r), + }; + return ( + t || ee("fetch", { ...o }), + n.apply(F, r).then( + async (c) => ( + t + ? t(c) + : ee("fetch", { ...o, endTimestamp: q() * 1e3, response: c }), + c + ), + (c) => { + if ( + (ee("fetch", { ...o, endTimestamp: q() * 1e3, error: c }), + ns(c) && + c.stack === void 0 && + ((c.stack = s.stack), et(c, "framesToPop", 1)), + c instanceof TypeError && + (c.message === "Failed to fetch" || + c.message === "Load failed" || + c.message === + "NetworkError when attempting to fetch resource.")) + ) + try { + const u = new URL(o.fetchData.url); + c.message = `${c.message} (${u.host})`; + } catch {} + throw c; + } + ) + ); + }; + }); +} +async function ec(t, e) { + if (t != null && t.body) { + const n = t.body, + r = n.getReader(), + s = setTimeout(() => { + n.cancel().then(null, () => {}); + }, 90 * 1e3); + let a = !0; + for (; a; ) { + let i; + try { + i = setTimeout(() => { + n.cancel().then(null, () => {}); + }, 5e3); + const { done: o } = await r.read(); + clearTimeout(i), o && (e(), (a = !1)); + } catch { + a = !1; + } finally { + clearTimeout(i); + } + } + clearTimeout(s), r.releaseLock(), n.cancel().then(null, () => {}); + } +} +function tc(t) { + let e; + try { + e = t.clone(); + } catch { + return; + } + ec(e, () => { + ee("fetch-body-resolved", { endTimestamp: q() * 1e3, response: t }); + }); +} +function vn(t, e) { + return !!t && typeof t == "object" && !!t[e]; +} +function Nr(t) { + return typeof t == "string" + ? t + : t + ? vn(t, "url") + ? t.url + : t.toString + ? t.toString() + : "" + : ""; +} +function nc(t) { + if (t.length === 0) return { method: "GET", url: "" }; + if (t.length === 2) { + const [n, r] = t; + return { + url: Nr(n), + method: vn(r, "method") ? String(r.method).toUpperCase() : "GET", + }; + } + const e = t[0]; + return { + url: Nr(e), + method: vn(e, "method") ? String(e.method).toUpperCase() : "GET", + }; +} +function rc(t) { + const [e, n] = t; + try { + if (typeof n == "object" && n !== null && "headers" in n && n.headers) + return new Headers(n.headers); + if (ts(e)) return new Headers(e.headers); + } catch {} +} +function sc() { + return "npm"; +} +const T = F; +let bn = 0; +function Ls() { + return bn > 0; +} +function ac() { + bn++, + setTimeout(() => { + bn--; + }); +} +function $e(t, e = {}) { + function n(s) { + return typeof s == "function"; + } + if (!n(t)) return t; + try { + const s = t.__sentry_wrapped__; + if (s) return typeof s == "function" ? s : t; + if (xn(t)) return t; + } catch { + return t; + } + const r = function (...s) { + try { + const a = s.map((i) => $e(i, e)); + return t.apply(this, a); + } catch (a) { + throw ( + (ac(), + Ht((i) => { + i.addEventProcessor( + (o) => ( + e.mechanism && (hn(o, void 0), tt(o, e.mechanism)), + (o.extra = { ...o.extra, arguments: s }), + o + ) + ), + rs(a); + }), + a) + ); + } + }; + try { + for (const s in t) + Object.prototype.hasOwnProperty.call(t, s) && (r[s] = t[s]); + } catch {} + Na(r, t), et(t, "__sentry_wrapped__", r); + try { + Object.getOwnPropertyDescriptor(r, "name").configurable && + Object.defineProperty(r, "name", { + get() { + return t.name; + }, + }); + } catch {} + return r; +} +function $n() { + const t = ot(), + { referrer: e } = T.document || {}, + { userAgent: n } = T.navigator || {}, + r = { ...(e && { Referer: e }), ...(n && { "User-Agent": n }) }; + return { url: t, headers: r }; +} +function Bn(t, e) { + const n = Un(t, e), + r = { type: dc(e), value: lc(e) }; + return ( + n.length && (r.stacktrace = { frames: n }), + r.type === void 0 && + r.value === "" && + (r.value = "Unrecoverable error caught"), + r + ); +} +function ic(t, e, n, r) { + const s = k(), + a = s == null ? void 0 : s.getOptions().normalizeDepth, + i = hc(e), + o = { __serialized__: Ca(e, a) }; + if (i) return { exception: { values: [Bn(t, i)] }, extra: o }; + const c = { + exception: { + values: [ + { + type: Dn(e) ? e.constructor.name : r ? "UnhandledRejection" : "Error", + value: mc(e, { isUnhandledRejection: r }), + }, + ], + }, + extra: o, + }; + if (n) { + const u = Un(t, n); + u.length && (c.exception.values[0].stacktrace = { frames: u }); + } + return c; +} +function an(t, e) { + return { exception: { values: [Bn(t, e)] } }; +} +function Un(t, e) { + const n = e.stacktrace || e.stack || "", + r = cc(e), + s = uc(e); + try { + return t(n, r, s); + } catch {} + return []; +} +const oc = /Minified React error #\d+;/i; +function cc(t) { + return t && oc.test(t.message) ? 1 : 0; +} +function uc(t) { + return typeof t.framesToPop == "number" ? t.framesToPop : 0; +} +function Cs(t) { + return typeof WebAssembly < "u" && typeof WebAssembly.Exception < "u" + ? t instanceof WebAssembly.Exception + : !1; +} +function dc(t) { + const e = t == null ? void 0 : t.name; + return !e && Cs(t) + ? t.message && Array.isArray(t.message) && t.message.length == 2 + ? t.message[0] + : "WebAssembly.Exception" + : e; +} +function lc(t) { + const e = t == null ? void 0 : t.message; + return Cs(t) + ? Array.isArray(t.message) && t.message.length == 2 + ? t.message[1] + : "wasm exception" + : e + ? e.error && typeof e.error.message == "string" + ? e.error.message + : e + : "No error message"; +} +function fc(t, e, n, r) { + const s = (n == null ? void 0 : n.syntheticException) || void 0, + a = qn(t, e, s, r); + return ( + tt(a), + (a.level = "error"), + n != null && n.event_id && (a.event_id = n.event_id), + Ce(a) + ); +} +function pc(t, e, n = "info", r, s) { + const a = (r == null ? void 0 : r.syntheticException) || void 0, + i = In(t, e, a, s); + return ( + (i.level = n), r != null && r.event_id && (i.event_id = r.event_id), Ce(i) + ); +} +function qn(t, e, n, r, s) { + let a; + if (ss(e) && e.error) return an(t, e.error); + if (ar(e) || La(e)) { + const i = e; + if ("stack" in e) a = an(t, e); + else { + const o = i.name || (ar(i) ? "DOMError" : "DOMException"), + c = i.message ? `${o}: ${i.message}` : o; + (a = In(t, c, n, r)), hn(a, c); + } + return ( + "code" in i && (a.tags = { ...a.tags, "DOMException.code": `${i.code}` }), + a + ); + } + return ns(e) + ? an(t, e) + : gn(e) || Dn(e) + ? ((a = ic(t, e, n, s)), tt(a, { synthetic: !0 }), a) + : ((a = In(t, e, n, r)), hn(a, `${e}`), tt(a, { synthetic: !0 }), a); +} +function In(t, e, n, r) { + const s = {}; + if (r && n) { + const a = Un(t, n); + a.length && + (s.exception = { values: [{ value: e, stacktrace: { frames: a } }] }), + tt(s, { synthetic: !0 }); + } + if (Qr(e)) { + const { __sentry_template_string__: a, __sentry_template_values__: i } = e; + return (s.logentry = { message: a, params: i }), s; + } + return (s.message = e), s; +} +function mc(t, { isUnhandledRejection: e }) { + const n = Oa(t), + r = e ? "promise rejection" : "exception"; + return ss(t) + ? `Event \`ErrorEvent\` captured as ${r} with message \`${t.message}\`` + : Dn(t) + ? `Event \`${gc(t)}\` (type=${t.type}) captured as ${r}` + : `Object captured as ${r} with keys: ${n}`; +} +function gc(t) { + try { + const e = Object.getPrototypeOf(t); + return e ? e.constructor.name : void 0; + } catch {} +} +function hc(t) { + for (const e in t) + if (Object.prototype.hasOwnProperty.call(t, e)) { + const n = t[e]; + if (n instanceof Error) return n; + } +} +const _c = 5e3; +class Sc extends Ji { + constructor(e) { + var o; + const n = Ec(e), + r = T.SENTRY_SDK_SOURCE || sc(); + Hn(n, "browser", ["browser"], r), + (o = n._metadata) != null && + o.sdk && + (n._metadata.sdk.settings = { + infer_ip: n.sendDefaultPii ? "auto" : "never", + ...n._metadata.sdk.settings, + }), + super(n); + const { + sendDefaultPii: s, + sendClientReports: a, + enableLogs: i, + } = this._options; + T.document && + (a || i) && + T.document.addEventListener("visibilitychange", () => { + T.document.visibilityState === "hidden" && + (a && this._flushOutcomes(), i && sn(this)); + }), + i && + (this.on("flush", () => { + sn(this); + }), + this.on("afterCaptureLog", () => { + this._logFlushIdleTimeout && clearTimeout(this._logFlushIdleTimeout), + (this._logFlushIdleTimeout = setTimeout(() => { + sn(this); + }, _c)); + })), + s && this.on("beforeSendSession", ho); + } + eventFromException(e, n) { + return fc(this._options.stackParser, e, n, this._options.attachStacktrace); + } + eventFromMessage(e, n = "info", r) { + return pc( + this._options.stackParser, + e, + n, + r, + this._options.attachStacktrace + ); + } + _prepareEvent(e, n, r, s) { + return ( + (e.platform = e.platform || "javascript"), super._prepareEvent(e, n, r, s) + ); + } +} +function Ec(t) { + var e; + return { + release: + typeof __SENTRY_RELEASE__ == "string" + ? __SENTRY_RELEASE__ + : (e = T.SENTRY_RELEASE) == null + ? void 0 + : e.id, + sendClientReports: !0, + parentSpanIsAlwaysRootSpan: !0, + ...t, + }; +} +const Vt = typeof __SENTRY_DEBUG__ > "u" || __SENTRY_DEBUG__, + _ = F, + Tc = (t, e) => (t > e[1] ? "poor" : t > e[0] ? "needs-improvement" : "good"), + ct = (t, e, n, r) => { + let s, a; + return (i) => { + e.value >= 0 && + (i || r) && + ((a = e.value - (s ?? 0)), + (a || s === void 0) && + ((s = e.value), (e.delta = a), (e.rating = Tc(e.value, n)), t(e))); + }; + }, + yc = () => + `v5-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`, + ut = (t = !0) => { + var n, r; + const e = + (r = (n = _.performance) == null ? void 0 : n.getEntriesByType) == null + ? void 0 + : r.call(n, "navigation")[0]; + if (!t || (e && e.responseStart > 0 && e.responseStart < performance.now())) + return e; + }, + je = () => { + const t = ut(); + return (t == null ? void 0 : t.activationStart) ?? 0; + }, + dt = (t, e = -1) => { + var a, i; + const n = ut(); + let r = "navigate"; + return ( + n && + (((a = _.document) != null && a.prerendering) || je() > 0 + ? (r = "prerender") + : (i = _.document) != null && i.wasDiscarded + ? (r = "restore") + : n.type && (r = n.type.replace(/_/g, "-"))), + { + name: t, + value: e, + rating: "good", + delta: 0, + entries: [], + id: yc(), + navigationType: r, + } + ); + }, + on = new WeakMap(); +function jn(t, e) { + return on.get(t) || on.set(t, new e()), on.get(t); +} +class Ot { + constructor() { + Ot.prototype.__init.call(this), Ot.prototype.__init2.call(this); + } + __init() { + this._sessionValue = 0; + } + __init2() { + this._sessionEntries = []; + } + _processEntry(e) { + var s; + if (e.hadRecentInput) return; + const n = this._sessionEntries[0], + r = this._sessionEntries[this._sessionEntries.length - 1]; + this._sessionValue && + n && + r && + e.startTime - r.startTime < 1e3 && + e.startTime - n.startTime < 5e3 + ? ((this._sessionValue += e.value), this._sessionEntries.push(e)) + : ((this._sessionValue = e.value), (this._sessionEntries = [e])), + (s = this._onAfterProcessingUnexpectedShift) == null || s.call(this, e); + } +} +const Ve = (t, e, n = {}) => { + try { + if (PerformanceObserver.supportedEntryTypes.includes(t)) { + const r = new PerformanceObserver((s) => { + Promise.resolve().then(() => { + e(s.getEntries()); + }); + }); + return r.observe({ type: t, buffered: !0, ...n }), r; + } + } catch {} + }, + Vn = (t) => { + let e = !1; + return () => { + e || (t(), (e = !0)); + }; + }; +let Ke = -1; +const vc = () => { + var t, e; + return ((t = _.document) == null ? void 0 : t.visibilityState) === + "hidden" && !((e = _.document) != null && e.prerendering) + ? 0 + : 1 / 0; + }, + xt = (t) => { + _.document.visibilityState === "hidden" && + Ke > -1 && + ((Ke = t.type === "visibilitychange" ? t.timeStamp : 0), Ic()); + }, + bc = () => { + addEventListener("visibilitychange", xt, !0), + addEventListener("prerenderingchange", xt, !0); + }, + Ic = () => { + removeEventListener("visibilitychange", xt, !0), + removeEventListener("prerenderingchange", xt, !0); + }, + Wn = () => { + var t; + if (_.document && Ke < 0) { + const e = je(); + (Ke = + (_.document.prerendering || + (t = globalThis.performance + .getEntriesByType("visibility-state") + .filter((r) => r.name === "hidden" && r.startTime > e)[0]) == null + ? void 0 + : t.startTime) ?? vc()), + bc(); + } + return { + get firstHiddenTime() { + return Ke; + }, + }; + }, + Wt = (t) => { + var e; + (e = _.document) != null && e.prerendering + ? addEventListener("prerenderingchange", () => t(), !0) + : t(); + }, + Rc = [1800, 3e3], + wc = (t, e = {}) => { + Wt(() => { + const n = Wn(), + r = dt("FCP"); + let s; + const i = Ve("paint", (o) => { + for (const c of o) + c.name === "first-contentful-paint" && + (i.disconnect(), + c.startTime < n.firstHiddenTime && + ((r.value = Math.max(c.startTime - je(), 0)), + r.entries.push(c), + s(!0))); + }); + i && (s = ct(t, r, Rc, e.reportAllChanges)); + }); + }, + Ac = [0.1, 0.25], + Pc = (t, e = {}) => { + wc( + Vn(() => { + var o, c; + const n = dt("CLS", 0); + let r; + const s = jn(e, Ot), + a = (u) => { + for (const l of u) s._processEntry(l); + s._sessionValue > n.value && + ((n.value = s._sessionValue), + (n.entries = s._sessionEntries), + r()); + }, + i = Ve("layout-shift", a); + i && + ((r = ct(t, n, Ac, e.reportAllChanges)), + (o = _.document) == null || + o.addEventListener("visibilitychange", () => { + var u; + ((u = _.document) == null ? void 0 : u.visibilityState) === + "hidden" && (a(i.takeRecords()), r(!0)); + }), + (c = _ == null ? void 0 : _.setTimeout) == null || c.call(_, r)); + }) + ); + }; +let Os = 0, + cn = 1 / 0, + gt = 0; +const kc = (t) => { + t.forEach((e) => { + e.interactionId && + ((cn = Math.min(cn, e.interactionId)), + (gt = Math.max(gt, e.interactionId)), + (Os = gt ? (gt - cn) / 7 + 1 : 0)); + }); +}; +let Rn; +const xs = () => (Rn ? Os : performance.interactionCount || 0), + Nc = () => { + "interactionCount" in performance || + Rn || + (Rn = Ve("event", kc, { + type: "event", + buffered: !0, + durationThreshold: 0, + })); + }, + un = 10; +let Ds = 0; +const Lc = () => xs() - Ds; +class Dt { + constructor() { + Dt.prototype.__init.call(this), Dt.prototype.__init2.call(this); + } + __init() { + this._longestInteractionList = []; + } + __init2() { + this._longestInteractionMap = new Map(); + } + _resetInteractions() { + (Ds = xs()), + (this._longestInteractionList.length = 0), + this._longestInteractionMap.clear(); + } + _estimateP98LongestInteraction() { + const e = Math.min( + this._longestInteractionList.length - 1, + Math.floor(Lc() / 50) + ); + return this._longestInteractionList[e]; + } + _processEntry(e) { + var s, a; + if ( + ((s = this._onBeforeProcessingEntry) == null || s.call(this, e), + !(e.interactionId || e.entryType === "first-input")) + ) + return; + const n = this._longestInteractionList.at(-1); + let r = this._longestInteractionMap.get(e.interactionId); + if ( + r || + this._longestInteractionList.length < un || + e.duration > n._latency + ) { + if ( + (r + ? e.duration > r._latency + ? ((r.entries = [e]), (r._latency = e.duration)) + : e.duration === r._latency && + e.startTime === r.entries[0].startTime && + r.entries.push(e) + : ((r = { id: e.interactionId, entries: [e], _latency: e.duration }), + this._longestInteractionMap.set(r.id, r), + this._longestInteractionList.push(r)), + this._longestInteractionList.sort((i, o) => o._latency - i._latency), + this._longestInteractionList.length > un) + ) { + const i = this._longestInteractionList.splice(un); + for (const o of i) this._longestInteractionMap.delete(o.id); + } + (a = this._onAfterProcessingINPCandidate) == null || a.call(this, r); + } + } +} +const Gn = (t) => { + const e = (n) => { + var r; + (n.type === "pagehide" || + ((r = _.document) == null ? void 0 : r.visibilityState) === "hidden") && + t(n); + }; + _.document && + (addEventListener("visibilitychange", e, !0), + addEventListener("pagehide", e, !0)); + }, + Fs = (t) => { + var n; + const e = _.requestIdleCallback || _.setTimeout; + ((n = _.document) == null ? void 0 : n.visibilityState) === "hidden" + ? t() + : ((t = Vn(t)), e(t), Gn(t)); + }, + Cc = [200, 500], + Oc = 40, + xc = (t, e = {}) => { + globalThis.PerformanceEventTiming && + "interactionId" in PerformanceEventTiming.prototype && + Wt(() => { + Nc(); + const n = dt("INP"); + let r; + const s = jn(e, Dt), + a = (o) => { + Fs(() => { + for (const u of o) s._processEntry(u); + const c = s._estimateP98LongestInteraction(); + c && + c._latency !== n.value && + ((n.value = c._latency), (n.entries = c.entries), r()); + }); + }, + i = Ve("event", a, { durationThreshold: e.durationThreshold ?? Oc }); + (r = ct(t, n, Cc, e.reportAllChanges)), + i && + (i.observe({ type: "first-input", buffered: !0 }), + Gn(() => { + a(i.takeRecords()), r(!0); + })); + }); + }; +class Dc { + _processEntry(e) { + var n; + (n = this._onBeforeProcessingEntry) == null || n.call(this, e); + } +} +const Fc = [2500, 4e3], + Mc = (t, e = {}) => { + Wt(() => { + const n = Wn(), + r = dt("LCP"); + let s; + const a = jn(e, Dc), + i = (c) => { + e.reportAllChanges || (c = c.slice(-1)); + for (const u of c) + a._processEntry(u), + u.startTime < n.firstHiddenTime && + ((r.value = Math.max(u.startTime - je(), 0)), + (r.entries = [u]), + s()); + }, + o = Ve("largest-contentful-paint", i); + if (o) { + s = ct(t, r, Fc, e.reportAllChanges); + const c = Vn(() => { + i(o.takeRecords()), o.disconnect(), s(!0); + }); + for (const u of ["keydown", "click", "visibilitychange"]) + _.document && + addEventListener(u, () => Fs(c), { capture: !0, once: !0 }); + } + }); + }, + Hc = [800, 1800], + wn = (t) => { + var e, n; + (e = _.document) != null && e.prerendering + ? Wt(() => wn(t)) + : ((n = _.document) == null ? void 0 : n.readyState) !== "complete" + ? addEventListener("load", () => wn(t), !0) + : setTimeout(t); + }, + $c = (t, e = {}) => { + const n = dt("TTFB"), + r = ct(t, n, Hc, e.reportAllChanges); + wn(() => { + const s = ut(); + s && + ((n.value = Math.max(s.responseStart - je(), 0)), + (n.entries = [s]), + r(!0)); + }); + }, + Ze = {}, + Ft = {}; +let Ms, Hs, $s, Bs; +function Us(t, e = !1) { + return Gt("cls", t, qc, Ms, e); +} +function qs(t, e = !1) { + return Gt("lcp", t, jc, Hs, e); +} +function Bc(t) { + return Gt("ttfb", t, Vc, $s); +} +function Uc(t) { + return Gt("inp", t, Wc, Bs); +} +function Be(t, e) { + return js(t, e), Ft[t] || (Gc(t), (Ft[t] = !0)), Vs(t, e); +} +function lt(t, e) { + const n = Ze[t]; + if (n != null && n.length) + for (const r of n) + try { + r(e); + } catch (s) { + Vt && + g.error( + `Error while triggering instrumentation handler. +Type: ${t} +Name: ${_e(r)} +Error:`, + s + ); + } +} +function qc() { + return Pc( + (t) => { + lt("cls", { metric: t }), (Ms = t); + }, + { reportAllChanges: !0 } + ); +} +function jc() { + return Mc( + (t) => { + lt("lcp", { metric: t }), (Hs = t); + }, + { reportAllChanges: !0 } + ); +} +function Vc() { + return $c((t) => { + lt("ttfb", { metric: t }), ($s = t); + }); +} +function Wc() { + return xc((t) => { + lt("inp", { metric: t }), (Bs = t); + }); +} +function Gt(t, e, n, r, s = !1) { + js(t, e); + let a; + return ( + Ft[t] || ((a = n()), (Ft[t] = !0)), + r && e({ metric: r }), + Vs(t, e, s ? a : void 0) + ); +} +function Gc(t) { + const e = {}; + t === "event" && (e.durationThreshold = 0), + Ve( + t, + (n) => { + lt(t, { entries: n }); + }, + e + ); +} +function js(t, e) { + (Ze[t] = Ze[t] || []), Ze[t].push(e); +} +function Vs(t, e, n) { + return () => { + n && n(); + const r = Ze[t]; + if (!r) return; + const s = r.indexOf(e); + s !== -1 && r.splice(s, 1); + }; +} +function Yc(t) { + return "duration" in t; +} +function dn(t) { + return typeof t == "number" && isFinite(t); +} +function Te(t, e, n, { ...r }) { + const s = R(t).start_timestamp; + return ( + s && + s > e && + typeof t.updateStartTime == "function" && + t.updateStartTime(e), + Fn(t, () => { + const a = xe({ startTime: e, ...r }); + return a && a.end(n), a; + }) + ); +} +function Yn(t) { + var x; + const e = k(); + if (!e) return; + const { name: n, transaction: r, attributes: s, startTime: a } = t, + { release: i, environment: o, sendDefaultPii: c } = e.getOptions(), + u = e.getIntegrationByName("Replay"), + l = u == null ? void 0 : u.getReplayId(), + d = C(), + p = d.getUser(), + f = p !== void 0 ? p.email || p.id || p.ip_address : void 0; + let m; + try { + m = d.getScopeData().contexts.profile.profile_id; + } catch {} + const h = { + release: i, + environment: o, + user: f || void 0, + profile_id: m || void 0, + replay_id: l || void 0, + transaction: r, + "user_agent.original": (x = _.navigator) == null ? void 0 : x.userAgent, + "client.address": c ? "{{auto}}" : void 0, + ...s, + }; + return xe({ + name: n, + attributes: h, + startTime: a, + experimental: { standalone: !0 }, + }); +} +function Yt() { + return _.addEventListener && _.performance; +} +function O(t) { + return t / 1e3; +} +function Ws(t) { + let e = "unknown", + n = "unknown", + r = ""; + for (const s of t) { + if (s === "/") { + [e, n] = t.split("/"); + break; + } + if (!isNaN(Number(s))) { + (e = r === "h" ? "http" : r), (n = t.split(r)[1]); + break; + } + r += s; + } + return r === t && (e = r), { name: e, version: n }; +} +function Gs(t) { + try { + return PerformanceObserver.supportedEntryTypes.includes(t); + } catch { + return !1; + } +} +function Ys(t, e) { + let n, + r = !1; + function s(o) { + !r && n && e(o, n), (r = !0); + } + Gn(() => { + s("pagehide"); + }); + const a = t.on("beforeStartNavigationSpan", (o, c) => { + (c != null && c.isRedirect) || (s("navigation"), Lr(a, i)); + }), + i = t.on("afterStartPageLoadSpan", (o) => { + (n = o.spanContext().spanId), Lr(i); + }); +} +function Lr(...t) { + t.forEach((e) => e && setTimeout(e, 0)); +} +function zc(t) { + let e = 0, + n; + if (!Gs("layout-shift")) return; + const r = Us(({ metric: s }) => { + const a = s.entries[s.entries.length - 1]; + a && ((e = s.value), (n = a)); + }, !0); + Ys(t, (s, a) => { + Xc(e, n, a, s), r(); + }); +} +function Xc(t, e, n, r) { + var u; + Vt && g.log(`Sending CLS span (${t})`); + const s = O((Y() || 0) + ((e == null ? void 0 : e.startTime) || 0)), + a = C().getScopeData().transactionName, + i = e ? pe((u = e.sources[0]) == null ? void 0 : u.node) : "Layout shift", + o = { + [D]: "auto.http.browser.cls", + [Se]: "ui.webvital.cls", + [Ue]: (e == null ? void 0 : e.duration) || 0, + "sentry.pageload.span_id": n, + "sentry.report_event": r, + }; + e != null && + e.sources && + e.sources.forEach((l, d) => { + o[`cls.source.${d + 1}`] = pe(l.node); + }); + const c = Yn({ name: i, transaction: a, attributes: o, startTime: s }); + c && (c.addEvent("cls", { [at]: "", [it]: t }), c.end(s)); +} +function Jc(t) { + let e = 0, + n; + if (!Gs("largest-contentful-paint")) return; + const r = qs(({ metric: s }) => { + const a = s.entries[s.entries.length - 1]; + a && ((e = s.value), (n = a)); + }, !0); + Ys(t, (s, a) => { + Kc(e, n, a, s), r(); + }); +} +function Kc(t, e, n, r) { + Vt && g.log(`Sending LCP span (${t})`); + const s = O((Y() || 0) + ((e == null ? void 0 : e.startTime) || 0)), + a = C().getScopeData().transactionName, + i = e ? pe(e.element) : "Largest contentful paint", + o = { + [D]: "auto.http.browser.lcp", + [Se]: "ui.webvital.lcp", + [Ue]: 0, + "sentry.pageload.span_id": n, + "sentry.report_event": r, + }; + e && + (e.element && (o["lcp.element"] = pe(e.element)), + e.id && (o["lcp.id"] = e.id), + e.url && (o["lcp.url"] = e.url.trim().slice(0, 200)), + e.loadTime != null && (o["lcp.loadTime"] = e.loadTime), + e.renderTime != null && (o["lcp.renderTime"] = e.renderTime), + e.size != null && (o["lcp.size"] = e.size)); + const c = Yn({ name: i, transaction: a, attributes: o, startTime: s }); + c && (c.addEvent("lcp", { [at]: "millisecond", [it]: t }), c.end(s)); +} +const Zc = 2147483647; +let Cr = 0, + re = {}, + U, + De; +function Qc({ + recordClsStandaloneSpans: t, + recordLcpStandaloneSpans: e, + client: n, +}) { + const r = Yt(); + if (r && Y()) { + r.mark && _.performance.mark("sentry-tracing-init"); + const s = e ? Jc(n) : su(), + a = au(), + i = t ? zc(n) : ru(); + return () => { + s == null || s(), a(), i == null || i(); + }; + } + return () => {}; +} +function eu() { + Be("longtask", ({ entries: t }) => { + const e = G(); + if (!e) return; + const { op: n, start_timestamp: r } = R(e); + for (const s of t) { + const a = O(Y() + s.startTime), + i = O(s.duration); + (n === "navigation" && r && a < r) || + Te(e, a, a + i, { + name: "Main UI thread blocked", + op: "ui.long-task", + attributes: { [D]: "auto.ui.browser.metrics" }, + }); + } + }); +} +function tu() { + new PerformanceObserver((e) => { + const n = G(); + if (n) + for (const r of e.getEntries()) { + if (!r.scripts[0]) continue; + const s = O(Y() + r.startTime), + { start_timestamp: a, op: i } = R(n); + if (i === "navigation" && a && s < a) continue; + const o = O(r.duration), + c = { [D]: "auto.ui.browser.metrics" }, + u = r.scripts[0], + { + invoker: l, + invokerType: d, + sourceURL: p, + sourceFunctionName: f, + sourceCharPosition: m, + } = u; + (c["browser.script.invoker"] = l), + (c["browser.script.invoker_type"] = d), + p && (c["code.filepath"] = p), + f && (c["code.function"] = f), + m !== -1 && (c["browser.script.source_char_position"] = m), + Te(n, s, s + o, { + name: "Main UI thread blocked", + op: "ui.long-animation-frame", + attributes: c, + }); + } + }).observe({ type: "long-animation-frame", buffered: !0 }); +} +function nu() { + Be("event", ({ entries: t }) => { + const e = G(); + if (e) { + for (const n of t) + if (n.name === "click") { + const r = O(Y() + n.startTime), + s = O(n.duration), + a = { + name: pe(n.target), + op: `ui.interaction.${n.name}`, + startTime: r, + attributes: { [D]: "auto.ui.browser.metrics" }, + }, + i = as(n.target); + i && (a.attributes["ui.component_name"] = i), Te(e, r, r + s, a); + } + } + }); +} +function ru() { + return Us(({ metric: t }) => { + const e = t.entries[t.entries.length - 1]; + e && ((re.cls = { value: t.value, unit: "" }), (De = e)); + }, !0); +} +function su() { + return qs(({ metric: t }) => { + const e = t.entries[t.entries.length - 1]; + e && ((re.lcp = { value: t.value, unit: "millisecond" }), (U = e)); + }, !0); +} +function au() { + return Bc(({ metric: t }) => { + t.entries[t.entries.length - 1] && + (re.ttfb = { value: t.value, unit: "millisecond" }); + }); +} +function iu(t, e) { + const n = Yt(), + r = Y(); + if (!(n != null && n.getEntries) || !r) return; + const s = O(r), + a = n.getEntries(), + { op: i, start_timestamp: o } = R(t); + a.slice(Cr).forEach((c) => { + const u = O(c.startTime), + l = O(Math.max(0, c.duration)); + if (!(i === "navigation" && o && s + u < o)) + switch (c.entryType) { + case "navigation": { + uu(t, c, s); + break; + } + case "mark": + case "paint": + case "measure": { + ou(t, c, u, l, s, e.ignorePerformanceApiSpans); + const d = Wn(), + p = c.startTime < d.firstHiddenTime; + c.name === "first-paint" && + p && + (re.fp = { value: c.startTime, unit: "millisecond" }), + c.name === "first-contentful-paint" && + p && + (re.fcp = { value: c.startTime, unit: "millisecond" }); + break; + } + case "resource": { + fu(t, c, c.name, u, l, s, e.ignoreResourceSpans); + break; + } + } + }), + (Cr = Math.max(a.length - 1, 0)), + pu(t), + i === "pageload" && + (gu(re), + e.recordClsOnPageloadSpan || delete re.cls, + e.recordLcpOnPageloadSpan || delete re.lcp, + Object.entries(re).forEach(([c, u]) => { + Ri(c, u.value, u.unit); + }), + t.setAttribute("performance.timeOrigin", s), + t.setAttribute("performance.activationStart", je()), + mu(t, e)), + (U = void 0), + (De = void 0), + (re = {}); +} +function ou(t, e, n, r, s, a) { + if (["mark", "measure"].includes(e.entryType) && he(e.name, a)) return; + const i = ut(!1), + o = O(i ? i.requestStart : 0), + c = s + Math.max(n, o), + u = s + n, + l = u + r, + d = { [D]: "auto.resource.browser.metrics" }; + c !== u && + ((d["sentry.browser.measure_happened_before_request"] = !0), + (d["sentry.browser.measure_start_time"] = c)), + cu(d, e), + c <= l && Te(t, c, l, { name: e.name, op: e.entryType, attributes: d }); +} +function cu(t, e) { + try { + const n = e.detail; + if (!n) return; + if (typeof n == "object") { + for (const [r, s] of Object.entries(n)) + if (s && Qe(s)) t[`sentry.browser.measure.detail.${r}`] = s; + else if (s !== void 0) + try { + t[`sentry.browser.measure.detail.${r}`] = JSON.stringify(s); + } catch {} + return; + } + if (Qe(n)) { + t["sentry.browser.measure.detail"] = n; + return; + } + try { + t["sentry.browser.measure.detail"] = JSON.stringify(n); + } catch {} + } catch {} +} +function uu(t, e, n) { + [ + "unloadEvent", + "redirect", + "domContentLoadedEvent", + "loadEvent", + "connect", + ].forEach((r) => { + ht(t, e, r, n); + }), + ht(t, e, "secureConnection", n, "TLS/SSL"), + ht(t, e, "fetch", n, "cache"), + ht(t, e, "domainLookup", n, "DNS"), + lu(t, e, n); +} +function ht(t, e, n, r, s = n) { + const a = du(n), + i = e[a], + o = e[`${n}Start`]; + !o || + !i || + Te(t, r + O(o), r + O(i), { + op: `browser.${s}`, + name: e.name, + attributes: { + [D]: "auto.ui.browser.metrics", + ...(n === "redirect" && e.redirectCount != null + ? { "http.redirect_count": e.redirectCount } + : {}), + }, + }); +} +function du(t) { + return t === "secureConnection" + ? "connectEnd" + : t === "fetch" + ? "domainLookupStart" + : `${t}End`; +} +function lu(t, e, n) { + const r = n + O(e.requestStart), + s = n + O(e.responseEnd), + a = n + O(e.responseStart); + e.responseEnd && + (Te(t, r, s, { + op: "browser.request", + name: e.name, + attributes: { [D]: "auto.ui.browser.metrics" }, + }), + Te(t, a, s, { + op: "browser.response", + name: e.name, + attributes: { [D]: "auto.ui.browser.metrics" }, + })); +} +function fu(t, e, n, r, s, a, i) { + if (e.initiatorType === "xmlhttprequest" || e.initiatorType === "fetch") + return; + const o = e.initiatorType ? `resource.${e.initiatorType}` : "resource.other"; + if (i != null && i.includes(o)) return; + const c = ke(n), + u = { [D]: "auto.resource.browser.metrics" }; + ln(u, e, "transferSize", "http.response_transfer_size"), + ln(u, e, "encodedBodySize", "http.response_content_length"), + ln(u, e, "decodedBodySize", "http.decoded_response_content_length"); + const l = e.deliveryType; + l != null && (u["http.response_delivery_type"] = l); + const d = e.renderBlockingStatus; + if ( + (d && (u["resource.render_blocking_status"] = d), + c.protocol && (u["url.scheme"] = c.protocol.split(":").pop()), + c.host && (u["server.address"] = c.host), + (u["url.same_origin"] = n.includes(_.location.origin)), + e.nextHopProtocol != null) + ) { + const { name: m, version: h } = Ws(e.nextHopProtocol); + (u["network.protocol.name"] = m), (u["network.protocol.version"] = h); + } + const p = a + r, + f = p + s; + Te(t, p, f, { name: n.replace(_.location.origin, ""), op: o, attributes: u }); +} +function pu(t) { + const e = _.navigator; + if (!e) return; + const n = e.connection; + n && + (n.effectiveType && + t.setAttribute("effectiveConnectionType", n.effectiveType), + n.type && t.setAttribute("connectionType", n.type), + dn(n.rtt) && + (re["connection.rtt"] = { value: n.rtt, unit: "millisecond" })), + dn(e.deviceMemory) && + t.setAttribute("deviceMemory", `${e.deviceMemory} GB`), + dn(e.hardwareConcurrency) && + t.setAttribute("hardwareConcurrency", String(e.hardwareConcurrency)); +} +function mu(t, e) { + U && + e.recordLcpOnPageloadSpan && + (U.element && t.setAttribute("lcp.element", pe(U.element)), + U.id && t.setAttribute("lcp.id", U.id), + U.url && t.setAttribute("lcp.url", U.url.trim().slice(0, 200)), + U.loadTime != null && t.setAttribute("lcp.loadTime", U.loadTime), + U.renderTime != null && t.setAttribute("lcp.renderTime", U.renderTime), + t.setAttribute("lcp.size", U.size)), + De != null && + De.sources && + e.recordClsOnPageloadSpan && + De.sources.forEach((n, r) => + t.setAttribute(`cls.source.${r + 1}`, pe(n.node)) + ); +} +function ln(t, e, n, r) { + const s = e[n]; + s != null && s < Zc && (t[r] = s); +} +function gu(t) { + const e = ut(!1); + if (!e) return; + const { responseStart: n, requestStart: r } = e; + r <= n && (t["ttfb.requestTime"] = { value: n - r, unit: "millisecond" }); +} +function hu() { + return Yt() && Y() ? Be("element", _u) : () => {}; +} +const _u = ({ entries: t }) => { + const e = G(), + n = e ? W(e) : void 0, + r = n ? R(n).description : C().getScopeData().transactionName; + t.forEach((s) => { + var f, m; + const a = s; + if (!a.identifier) return; + const i = a.name, + o = a.renderTime, + c = a.loadTime, + [u, l] = c + ? [O(c), "load-time"] + : o + ? [O(o), "render-time"] + : [q(), "entry-emission"], + d = i === "image-paint" ? O(Math.max(0, (o ?? 0) - (c ?? 0))) : 0, + p = { + [D]: "auto.ui.browser.elementtiming", + [Se]: "ui.elementtiming", + [Q]: "component", + "sentry.span_start_time_source": l, + "sentry.transaction_name": r, + "element.id": a.id, + "element.type": + ((m = (f = a.element) == null ? void 0 : f.tagName) == null + ? void 0 + : m.toLowerCase()) || "unknown", + "element.size": + a.naturalWidth && a.naturalHeight + ? `${a.naturalWidth}x${a.naturalHeight}` + : void 0, + "element.render_time": o, + "element.load_time": c, + "element.url": a.url || void 0, + "element.identifier": a.identifier, + "element.paint_type": i, + }; + Li( + { + name: `element[${a.identifier}]`, + attributes: p, + startTime: u, + onlyIfParent: !0, + }, + (h) => { + h.end(u + d); + } + ); + }); + }, + Su = 1e3; +let Or, An, Pn; +function Eu(t) { + ye("dom", t), ve("dom", Tu); +} +function Tu() { + if (!_.document) return; + const t = ee.bind(null, "dom"), + e = xr(t, !0); + _.document.addEventListener("click", e, !1), + _.document.addEventListener("keypress", e, !1), + ["EventTarget", "Node"].forEach((n) => { + var a, i; + const s = (a = _[n]) == null ? void 0 : a.prototype; + (i = s == null ? void 0 : s.hasOwnProperty) != null && + i.call(s, "addEventListener") && + (V(s, "addEventListener", function (o) { + return function (c, u, l) { + if (c === "click" || c == "keypress") + try { + const d = (this.__sentry_instrumentation_handlers__ = + this.__sentry_instrumentation_handlers__ || {}), + p = (d[c] = d[c] || { refCount: 0 }); + if (!p.handler) { + const f = xr(t); + (p.handler = f), o.call(this, c, f, l); + } + p.refCount++; + } catch {} + return o.call(this, c, u, l); + }; + }), + V(s, "removeEventListener", function (o) { + return function (c, u, l) { + if (c === "click" || c == "keypress") + try { + const d = this.__sentry_instrumentation_handlers__ || {}, + p = d[c]; + p && + (p.refCount--, + p.refCount <= 0 && + (o.call(this, c, p.handler, l), + (p.handler = void 0), + delete d[c]), + Object.keys(d).length === 0 && + delete this.__sentry_instrumentation_handlers__); + } catch {} + return o.call(this, c, u, l); + }; + })); + }); +} +function yu(t) { + if (t.type !== An) return !1; + try { + if (!t.target || t.target._sentryId !== Pn) return !1; + } catch {} + return !0; +} +function vu(t, e) { + return t !== "keypress" + ? !1 + : e != null && e.tagName + ? !( + e.tagName === "INPUT" || + e.tagName === "TEXTAREA" || + e.isContentEditable + ) + : !0; +} +function xr(t, e = !1) { + return (n) => { + if (!n || n._sentryCaptured) return; + const r = bu(n); + if (vu(n.type, r)) return; + et(n, "_sentryCaptured", !0), r && !r._sentryId && et(r, "_sentryId", yt()); + const s = n.type === "keypress" ? "input" : n.type; + yu(n) || + (t({ event: n, name: s, global: e }), + (An = n.type), + (Pn = r ? r._sentryId : void 0)), + clearTimeout(Or), + (Or = _.setTimeout(() => { + (Pn = void 0), (An = void 0); + }, Su)); + }; +} +function bu(t) { + try { + return t.target; + } catch { + return null; + } +} +let _t; +function zn(t) { + const e = "history"; + ye(e, t), ve(e, Iu); +} +function Iu() { + if ( + (_.addEventListener("popstate", () => { + const e = _.location.href, + n = _t; + if (((_t = e), n === e)) return; + ee("history", { from: n, to: e }); + }), + !Jo()) + ) + return; + function t(e) { + return function (...n) { + const r = n.length > 2 ? n[2] : void 0; + if (r) { + const s = _t, + a = Ru(String(r)); + if (((_t = a), s === a)) return e.apply(this, n); + ee("history", { from: s, to: a }); + } + return e.apply(this, n); + }; + } + V(_.history, "pushState", t), V(_.history, "replaceState", t); +} +function Ru(t) { + try { + return new URL(t, _.location.origin).toString(); + } catch { + return t; + } +} +const wt = {}; +function wu(t) { + const e = wt[t]; + if (e) return e; + let n = _[t]; + if (yn(n)) return (wt[t] = n.bind(_)); + const r = _.document; + if (r && typeof r.createElement == "function") + try { + const s = r.createElement("iframe"); + (s.hidden = !0), r.head.appendChild(s); + const a = s.contentWindow; + a != null && a[t] && (n = a[t]), r.head.removeChild(s); + } catch (s) { + Vt && + g.warn( + `Could not create sandbox iframe for ${t} check, bailing to window.${t}: `, + s + ); + } + return n && (wt[t] = n.bind(_)); +} +function Dr(t) { + wt[t] = void 0; +} +const Fe = "__sentry_xhr_v3__"; +function zs(t) { + ye("xhr", t), ve("xhr", Au); +} +function Au() { + if (!_.XMLHttpRequest) return; + const t = XMLHttpRequest.prototype; + (t.open = new Proxy(t.open, { + apply(e, n, r) { + const s = new Error(), + a = q() * 1e3, + i = Je(r[0]) ? r[0].toUpperCase() : void 0, + o = Pu(r[1]); + if (!i || !o) return e.apply(n, r); + (n[Fe] = { method: i, url: o, request_headers: {} }), + i === "POST" && + o.match(/sentry_key/) && + (n.__sentry_own_request__ = !0); + const c = () => { + const u = n[Fe]; + if (u && n.readyState === 4) { + try { + u.status_code = n.status; + } catch {} + const l = { + endTimestamp: q() * 1e3, + startTimestamp: a, + xhr: n, + virtualError: s, + }; + ee("xhr", l); + } + }; + return ( + "onreadystatechange" in n && typeof n.onreadystatechange == "function" + ? (n.onreadystatechange = new Proxy(n.onreadystatechange, { + apply(u, l, d) { + return c(), u.apply(l, d); + }, + })) + : n.addEventListener("readystatechange", c), + (n.setRequestHeader = new Proxy(n.setRequestHeader, { + apply(u, l, d) { + const [p, f] = d, + m = l[Fe]; + return ( + m && Je(p) && Je(f) && (m.request_headers[p.toLowerCase()] = f), + u.apply(l, d) + ); + }, + })), + e.apply(n, r) + ); + }, + })), + (t.send = new Proxy(t.send, { + apply(e, n, r) { + const s = n[Fe]; + if (!s) return e.apply(n, r); + r[0] !== void 0 && (s.body = r[0]); + const a = { startTimestamp: q() * 1e3, xhr: n }; + return ee("xhr", a), e.apply(n, r); + }, + })); +} +function Pu(t) { + if (Je(t)) return t; + try { + return t.toString(); + } catch {} +} +const fn = [], + At = new Map(), + ku = 60; +function Nu() { + if (Yt() && Y()) { + const e = Lu(); + return () => { + e(); + }; + } + return () => {}; +} +const Fr = { + click: "click", + pointerdown: "click", + pointerup: "click", + mousedown: "click", + mouseup: "click", + touchstart: "click", + touchend: "click", + mouseover: "hover", + mouseout: "hover", + mouseenter: "hover", + mouseleave: "hover", + pointerover: "hover", + pointerout: "hover", + pointerenter: "hover", + pointerleave: "hover", + dragstart: "drag", + dragend: "drag", + drag: "drag", + dragenter: "drag", + dragleave: "drag", + dragover: "drag", + drop: "drag", + keydown: "press", + keyup: "press", + keypress: "press", + input: "press", +}; +function Lu() { + return Uc(Cu); +} +const Cu = ({ metric: t }) => { + if (t.value == null) return; + const e = O(t.value); + if (e > ku) return; + const n = t.entries.find((m) => m.duration === t.value && Fr[m.name]); + if (!n) return; + const { interactionId: r } = n, + s = Fr[n.name], + a = O(Y() + n.startTime), + i = G(), + o = i ? W(i) : void 0, + u = (r != null ? At.get(r) : void 0) || o, + l = u ? R(u).description : C().getScopeData().transactionName, + d = pe(n.target), + p = { + [D]: "auto.http.browser.inp", + [Se]: `ui.interaction.${s}`, + [Ue]: n.duration, + }, + f = Yn({ name: d, transaction: l, attributes: p, startTime: a }); + f && + (f.addEvent("inp", { [at]: "millisecond", [it]: t.value }), f.end(a + e)); +}; +function Ou() { + const t = ({ entries: e }) => { + const n = G(), + r = n && W(n); + e.forEach((s) => { + if (!Yc(s) || !r) return; + const a = s.interactionId; + if (a != null && !At.has(a)) { + if (fn.length > 10) { + const i = fn.shift(); + At.delete(i); + } + fn.push(a), At.set(a, r); + } + }); + }; + Be("event", t), Be("first-input", t); +} +function xu(t, e = wu("fetch")) { + let n = 0, + r = 0; + function s(a) { + const i = a.body.length; + (n += i), r++; + const o = { + body: a.body, + method: "POST", + referrerPolicy: "strict-origin", + headers: t.headers, + keepalive: n <= 6e4 && r < 15, + ...t.fetchOptions, + }; + if (!e) return Dr("fetch"), Nt("No fetch implementation available"); + try { + return e(t.url, o).then( + (c) => ( + (n -= i), + r--, + { + statusCode: c.status, + headers: { + "x-sentry-rate-limits": c.headers.get("X-Sentry-Rate-Limits"), + "retry-after": c.headers.get("Retry-After"), + }, + } + ) + ); + } catch (c) { + return Dr("fetch"), (n -= i), r--, Nt(c); + } + } + return fo(t, s); +} +const Du = 30, + Fu = 50; +function kn(t, e, n, r) { + const s = { filename: t, function: e === "" ? He : e, in_app: !0 }; + return n !== void 0 && (s.lineno = n), r !== void 0 && (s.colno = r), s; +} +const Mu = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i, + Hu = + /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, + $u = /\((\S*)(?::(\d+))(?::(\d+))\)/, + Bu = /at (.+?) ?\(data:(.+?),/, + Uu = (t) => { + const e = t.match(Bu); + if (e) return { filename: ``, function: e[1] }; + const n = Mu.exec(t); + if (n) { + const [, s, a, i] = n; + return kn(s, He, +a, +i); + } + const r = Hu.exec(t); + if (r) { + if (r[2] && r[2].indexOf("eval") === 0) { + const o = $u.exec(r[2]); + o && ((r[2] = o[1]), (r[3] = o[2]), (r[4] = o[3])); + } + const [a, i] = Xs(r[1] || He, r[2]); + return kn(i, a, r[3] ? +r[3] : void 0, r[4] ? +r[4] : void 0); + } + }, + qu = [Du, Uu], + ju = + /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i, + Vu = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, + Wu = (t) => { + const e = ju.exec(t); + if (e) { + if (e[3] && e[3].indexOf(" > eval") > -1) { + const a = Vu.exec(e[3]); + a && + ((e[1] = e[1] || "eval"), (e[3] = a[1]), (e[4] = a[2]), (e[5] = "")); + } + let r = e[3], + s = e[1] || He; + return ( + ([s, r] = Xs(s, r)), + kn(r, s, e[4] ? +e[4] : void 0, e[5] ? +e[5] : void 0) + ); + } + }, + Gu = [Fu, Wu], + Yu = [qu, Gu], + zu = xa(...Yu), + Xs = (t, e) => { + const n = t.indexOf("safari-extension") !== -1, + r = t.indexOf("safari-web-extension") !== -1; + return n || r + ? [ + t.indexOf("@") !== -1 ? t.split("@")[0] : He, + n ? `safari-extension:${e}` : `safari-web-extension:${e}`, + ] + : [t, e]; + }, + te = typeof __SENTRY_DEBUG__ > "u" || __SENTRY_DEBUG__, + St = 1024, + Xu = "Breadcrumbs", + Ju = (t = {}) => { + const e = { + console: !0, + dom: !0, + fetch: !0, + history: !0, + sentry: !0, + xhr: !0, + ...t, + }; + return { + name: Xu, + setup(n) { + e.console && Do(ed(n)), + e.dom && Eu(Qu(n, e.dom)), + e.xhr && zs(td(n)), + e.fetch && ks(nd(n)), + e.history && zn(rd(n)), + e.sentry && n.on("beforeSendEvent", Zu(n)); + }, + }; + }, + Ku = Ju; +function Zu(t) { + return function (n) { + k() === t && + Oe( + { + category: `sentry.${ + n.type === "transaction" ? "transaction" : "event" + }`, + event_id: n.event_id, + level: n.level, + message: Pe(n), + }, + { event: n } + ); + }; +} +function Qu(t, e) { + return function (r) { + if (k() !== t) return; + let s, + a, + i = typeof e == "object" ? e.serializeAttribute : void 0, + o = + typeof e == "object" && typeof e.maxStringLength == "number" + ? e.maxStringLength + : void 0; + o && + o > St && + (te && + g.warn( + `\`dom.maxStringLength\` cannot exceed ${St}, but a value of ${o} was configured. Sentry will use ${St} instead.` + ), + (o = St)), + typeof i == "string" && (i = [i]); + try { + const u = r.event, + l = sd(u) ? u.target : u; + (s = pe(l, { keyAttrs: i, maxStringLength: o })), (a = as(l)); + } catch { + s = ""; + } + if (s.length === 0) return; + const c = { category: `ui.${r.name}`, message: s }; + a && (c.data = { "ui.component_name": a }), + Oe(c, { event: r.event, name: r.name, global: r.global }); + }; +} +function ed(t) { + return function (n) { + if (k() !== t) return; + const r = { + category: "console", + data: { arguments: n.args, logger: "console" }, + level: Mo(n.level), + message: ir(n.args, " "), + }; + if (n.level === "assert") + if (n.args[0] === !1) + (r.message = `Assertion failed: ${ + ir(n.args.slice(1), " ") || "console.assert" + }`), + (r.data.arguments = n.args.slice(1)); + else return; + Oe(r, { input: n.args, level: n.level }); + }; +} +function td(t) { + return function (n) { + if (k() !== t) return; + const { startTimestamp: r, endTimestamp: s } = n, + a = n.xhr[Fe]; + if (!r || !s || !a) return; + const { method: i, url: o, status_code: c, body: u } = a, + l = { method: i, url: o, status_code: c }, + d = { xhr: n.xhr, input: u, startTimestamp: r, endTimestamp: s }, + p = { category: "xhr", data: l, type: "http", level: Ps(c) }; + t.emit("beforeOutgoingRequestBreadcrumb", p, d), Oe(p, d); + }; +} +function nd(t) { + return function (n) { + if (k() !== t) return; + const { startTimestamp: r, endTimestamp: s } = n; + if ( + s && + !(n.fetchData.url.match(/sentry_key/) && n.fetchData.method === "POST") + ) + if ((n.fetchData.method, n.fetchData.url, n.error)) { + const a = n.fetchData, + i = { + data: n.error, + input: n.args, + startTimestamp: r, + endTimestamp: s, + }, + o = { category: "fetch", data: a, level: "error", type: "http" }; + t.emit("beforeOutgoingRequestBreadcrumb", o, i), Oe(o, i); + } else { + const a = n.response, + i = { ...n.fetchData, status_code: a == null ? void 0 : a.status }; + n.fetchData.request_body_size, + n.fetchData.response_body_size, + a == null || a.status; + const o = { + input: n.args, + response: a, + startTimestamp: r, + endTimestamp: s, + }, + c = { + category: "fetch", + data: i, + type: "http", + level: Ps(i.status_code), + }; + t.emit("beforeOutgoingRequestBreadcrumb", c, o), Oe(c, o); + } + }; +} +function rd(t) { + return function (n) { + if (k() !== t) return; + let r = n.from, + s = n.to; + const a = ke(T.location.href); + let i = r ? ke(r) : void 0; + const o = ke(s); + (i != null && i.path) || (i = a), + a.protocol === o.protocol && a.host === o.host && (s = o.relative), + a.protocol === i.protocol && a.host === i.host && (r = i.relative), + Oe({ category: "navigation", data: { from: r, to: s } }); + }; +} +function sd(t) { + return !!t && !!t.target; +} +const ad = [ + "EventTarget", + "Window", + "Node", + "ApplicationCache", + "AudioTrackList", + "BroadcastChannel", + "ChannelMergerNode", + "CryptoOperation", + "EventSource", + "FileReader", + "HTMLUnknownElement", + "IDBDatabase", + "IDBRequest", + "IDBTransaction", + "KeyOperation", + "MediaController", + "MessagePort", + "ModalWindow", + "Notification", + "SVGElementInstance", + "Screen", + "SharedWorker", + "TextTrack", + "TextTrackCue", + "TextTrackList", + "WebSocket", + "WebSocketWorker", + "Worker", + "XMLHttpRequest", + "XMLHttpRequestEventTarget", + "XMLHttpRequestUpload", + ], + id = "BrowserApiErrors", + od = (t = {}) => { + const e = { + XMLHttpRequest: !0, + eventTarget: !0, + requestAnimationFrame: !0, + setInterval: !0, + setTimeout: !0, + unregisterOriginalCallbacks: !1, + ...t, + }; + return { + name: id, + setupOnce() { + e.setTimeout && V(T, "setTimeout", Mr), + e.setInterval && V(T, "setInterval", Mr), + e.requestAnimationFrame && V(T, "requestAnimationFrame", ud), + e.XMLHttpRequest && + "XMLHttpRequest" in T && + V(XMLHttpRequest.prototype, "send", dd); + const n = e.eventTarget; + n && (Array.isArray(n) ? n : ad).forEach((s) => ld(s, e)); + }, + }; + }, + cd = od; +function Mr(t) { + return function (...e) { + const n = e[0]; + return ( + (e[0] = $e(n, { + mechanism: { + handled: !1, + type: `auto.browser.browserapierrors.${_e(t)}`, + }, + })), + t.apply(this, e) + ); + }; +} +function ud(t) { + return function (e) { + return t.apply(this, [ + $e(e, { + mechanism: { + data: { handler: _e(t) }, + handled: !1, + type: "auto.browser.browserapierrors.requestAnimationFrame", + }, + }), + ]); + }; +} +function dd(t) { + return function (...e) { + const n = this; + return ( + ["onload", "onerror", "onprogress", "onreadystatechange"].forEach((s) => { + s in n && + typeof n[s] == "function" && + V(n, s, function (a) { + const i = { + mechanism: { + data: { handler: _e(a) }, + handled: !1, + type: `auto.browser.browserapierrors.xhr.${s}`, + }, + }, + o = xn(a); + return o && (i.mechanism.data.handler = _e(o)), $e(a, i); + }); + }), + t.apply(this, e) + ); + }; +} +function ld(t, e) { + var s, a; + const r = (s = T[t]) == null ? void 0 : s.prototype; + (a = r == null ? void 0 : r.hasOwnProperty) != null && + a.call(r, "addEventListener") && + (V(r, "addEventListener", function (i) { + return function (o, c, u) { + try { + fd(c) && + (c.handleEvent = $e(c.handleEvent, { + mechanism: { + data: { handler: _e(c), target: t }, + handled: !1, + type: "auto.browser.browserapierrors.handleEvent", + }, + })); + } catch {} + return ( + e.unregisterOriginalCallbacks && pd(this, o, c), + i.apply(this, [ + o, + $e(c, { + mechanism: { + data: { handler: _e(c), target: t }, + handled: !1, + type: "auto.browser.browserapierrors.addEventListener", + }, + }), + u, + ]) + ); + }; + }), + V(r, "removeEventListener", function (i) { + return function (o, c, u) { + try { + const l = c.__sentry_wrapped__; + l && i.call(this, o, l, u); + } catch {} + return i.call(this, o, c, u); + }; + })); +} +function fd(t) { + return typeof t.handleEvent == "function"; +} +function pd(t, e, n) { + t && + typeof t == "object" && + "removeEventListener" in t && + typeof t.removeEventListener == "function" && + t.removeEventListener(e, n); +} +const md = () => ({ + name: "BrowserSession", + setupOnce() { + if (typeof T.document > "u") { + te && + g.warn( + "Using the `browserSessionIntegration` in non-browser environments is not supported." + ); + return; + } + or({ ignoreDuration: !0 }), + cr(), + zn(({ from: t, to: e }) => { + t !== void 0 && t !== e && (or({ ignoreDuration: !0 }), cr()); + }); + }, + }), + gd = "GlobalHandlers", + hd = (t = {}) => { + const e = { onerror: !0, onunhandledrejection: !0, ...t }; + return { + name: gd, + setupOnce() { + Error.stackTraceLimit = 50; + }, + setup(n) { + e.onerror && (Sd(n), Hr("onerror")), + e.onunhandledrejection && (Ed(n), Hr("onunhandledrejection")); + }, + }; + }, + _d = hd; +function Sd(t) { + cs((e) => { + const { stackParser: n, attachStacktrace: r } = Js(); + if (k() !== t || Ls()) return; + const { msg: s, url: a, line: i, column: o, error: c } = e, + u = vd(qn(n, c || s, void 0, r, !1), a, i, o); + (u.level = "error"), + is(u, { + originalException: c, + mechanism: { + handled: !1, + type: "auto.browser.global_handlers.onerror", + }, + }); + }); +} +function Ed(t) { + us((e) => { + const { stackParser: n, attachStacktrace: r } = Js(); + if (k() !== t || Ls()) return; + const s = Td(e), + a = Qe(s) ? yd(s) : qn(n, s, void 0, r, !0); + (a.level = "error"), + is(a, { + originalException: s, + mechanism: { + handled: !1, + type: "auto.browser.global_handlers.onunhandledrejection", + }, + }); + }); +} +function Td(t) { + if (Qe(t)) return t; + try { + if ("reason" in t) return t.reason; + if ("detail" in t && "reason" in t.detail) return t.detail.reason; + } catch {} + return t; +} +function yd(t) { + return { + exception: { + values: [ + { + type: "UnhandledRejection", + value: `Non-Error promise rejection captured with value: ${String( + t + )}`, + }, + ], + }, + }; +} +function vd(t, e, n, r) { + const s = (t.exception = t.exception || {}), + a = (s.values = s.values || []), + i = (a[0] = a[0] || {}), + o = (i.stacktrace = i.stacktrace || {}), + c = (o.frames = o.frames || []), + u = r, + l = n, + d = bd(e) ?? ot(); + return ( + c.length === 0 && + c.push({ colno: u, filename: d, function: He, in_app: !0, lineno: l }), + t + ); +} +function Hr(t) { + te && g.log(`Global Handler attached: ${t}`); +} +function Js() { + const t = k(); + return ( + (t == null ? void 0 : t.getOptions()) || { + stackParser: () => [], + attachStacktrace: !1, + } + ); +} +function bd(t) { + if (!(!Je(t) || t.length === 0)) { + if (t.startsWith("data:")) { + const e = t.match(/^data:([^;]+)/), + n = e ? e[1] : "text/javascript", + r = t.includes("base64,"); + return ``; + } + return t.slice(0, 1024); + } +} +const Id = () => ({ + name: "HttpContext", + preprocessEvent(t) { + var r; + if (!T.navigator && !T.location && !T.document) return; + const e = $n(), + n = { ...e.headers, ...((r = t.request) == null ? void 0 : r.headers) }; + t.request = { ...e, ...t.request, headers: n }; + }, + }), + Rd = "cause", + wd = 5, + Ad = "LinkedErrors", + Pd = (t = {}) => { + const e = t.limit || wd, + n = t.key || Rd; + return { + name: Ad, + preprocessEvent(r, s, a) { + const i = a.getOptions(); + xo(Bn, i.stackParser, n, e, r, s); + }, + }; + }, + kd = Pd; +function Nd() { + return Ld() + ? (te && + qt(() => { + console.error( + "[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/" + ); + }), + !0) + : !1; +} +function Ld() { + var a; + if (typeof T.window > "u") return !1; + const t = T; + if (t.nw) return !1; + const e = t.chrome || t.browser; + if (!((a = e == null ? void 0 : e.runtime) != null && a.id)) return !1; + const n = ot(), + r = [ + "chrome-extension", + "moz-extension", + "ms-browser-extension", + "safari-web-extension", + ]; + return !(T === T.top && r.some((i) => n.startsWith(`${i}://`))); +} +function Nn(t) { + return [wo(), vo(), cd(), Ku(), _d(), kd(), Bo(), Id(), md()]; +} +function Cd(t = {}) { + const e = !t.skipBrowserExtensionCheck && Nd(), + n = { + ...t, + enabled: e ? !1 : t.enabled, + stackParser: Da(t.stackParser || zu), + integrations: Wi({ + integrations: t.integrations, + defaultIntegrations: + t.defaultIntegrations == null ? Nn() : t.defaultIntegrations, + }), + transport: t.transport || xu, + }; + return no(Sc, n); +} +function ie(t = 0) { + return ((Y() || performance.timeOrigin) + t) / 1e3; +} +function Od(t) { + const e = []; + if (t.nextHopProtocol != null) { + const { name: n, version: r } = Ws(t.nextHopProtocol); + e.push(["network.protocol.version", r], ["network.protocol.name", n]); + } + return Y() + ? [ + ...e, + ["http.request.redirect_start", ie(t.redirectStart)], + ["http.request.fetch_start", ie(t.fetchStart)], + ["http.request.domain_lookup_start", ie(t.domainLookupStart)], + ["http.request.domain_lookup_end", ie(t.domainLookupEnd)], + ["http.request.connect_start", ie(t.connectStart)], + ["http.request.secure_connection_start", ie(t.secureConnectionStart)], + ["http.request.connection_end", ie(t.connectEnd)], + ["http.request.request_start", ie(t.requestStart)], + ["http.request.response_start", ie(t.responseStart)], + ["http.request.response_end", ie(t.responseEnd)], + ] + : e; +} +const $r = new WeakMap(), + pn = new Map(), + Ks = { + traceFetch: !0, + traceXHR: !0, + enableHTTPTimings: !0, + trackFetchStreamPerformance: !1, + }; +function xd(t, e) { + const { + traceFetch: n, + traceXHR: r, + trackFetchStreamPerformance: s, + shouldCreateSpanForRequest: a, + enableHTTPTimings: i, + tracePropagationTargets: o, + onRequestSpanStart: c, + } = { ...Ks, ...e }, + u = typeof a == "function" ? a : (f) => !0, + l = (f) => Fd(f, o), + d = {}, + p = t.getOptions().propagateTraceparent; + n && + (t.addEventProcessor( + (f) => ( + f.type === "transaction" && + f.spans && + f.spans.forEach((m) => { + if (m.op === "http.client") { + const h = pn.get(m.span_id); + h && ((m.timestamp = h / 1e3), pn.delete(m.span_id)); + } + }), + f + ) + ), + s && + Qo((f) => { + if (f.response) { + const m = $r.get(f.response); + m && f.endTimestamp && pn.set(m, f.endTimestamp); + } + }), + ks((f) => { + const m = Vo(f, u, l, d, { propagateTraceparent: p }); + if ( + (f.response && + f.fetchData.__span && + $r.set(f.response, f.fetchData.__span), + m) + ) { + const h = Zs(f.fetchData.url), + x = h ? ke(h).host : void 0; + m.setAttributes({ "http.url": h, "server.address": x }), + i && Br(m), + c == null || c(m, { headers: f.headers }); + } + })), + r && + zs((f) => { + var h; + const m = Md(f, u, l, d, p); + if (m) { + i && Br(m); + let x; + try { + x = new Headers( + (h = f.xhr.__sentry_xhr_v3__) == null ? void 0 : h.request_headers + ); + } catch {} + c == null || c(m, { headers: x }); + } + }); +} +function Dd(t) { + return ( + t.entryType === "resource" && + "initiatorType" in t && + typeof t.nextHopProtocol == "string" && + (t.initiatorType === "fetch" || t.initiatorType === "xmlhttprequest") + ); +} +function Br(t) { + const { url: e } = R(t).data; + if (!e || typeof e != "string") return; + const n = Be("resource", ({ entries: r }) => { + r.forEach((s) => { + Dd(s) && + s.name.endsWith(e) && + (Od(s).forEach((i) => t.setAttribute(...i)), setTimeout(n)); + }); + }); +} +function Fd(t, e) { + const n = ot(); + if (n) { + let r, s; + try { + (r = new URL(t, n)), (s = new URL(n).origin); + } catch { + return !1; + } + const a = r.origin === s; + return e ? he(r.toString(), e) || (a && he(r.pathname, e)) : a; + } else { + const r = !!t.match(/^\/(?!\/)/); + return e ? he(t, e) : r; + } +} +function Md(t, e, n, r, s) { + const a = t.xhr, + i = a == null ? void 0 : a[Fe]; + if (!a || a.__sentry_own_request__ || !i) return; + const { url: o, method: c } = i, + u = Le() && e(o); + if (t.endTimestamp && u) { + const x = a.__sentry_xhr_span_id__; + if (!x) return; + const I = r[x]; + I && + i.status_code !== void 0 && + (es(I, i.status_code), I.end(), delete r[x]); + return; + } + const l = Zs(o), + d = ke(l || o), + p = go(o), + f = !!G(), + m = + u && f + ? xe({ + name: `${c} ${p}`, + attributes: { + url: o, + type: "xhr", + "http.method": c, + "http.url": l, + "server.address": d == null ? void 0 : d.host, + [D]: "auto.http.browser", + [Se]: "http.client", + ...((d == null ? void 0 : d.search) && { + "http.query": d == null ? void 0 : d.search, + }), + ...((d == null ? void 0 : d.hash) && { + "http.fragment": d == null ? void 0 : d.hash, + }), + }, + }) + : new Ee(); + (a.__sentry_xhr_span_id__ = m.spanContext().spanId), + (r[a.__sentry_xhr_span_id__] = m), + n(o) && Hd(a, Le() && f ? m : void 0, s); + const h = k(); + return h && h.emit("beforeOutgoingRequestSpan", m, t), m; +} +function Hd(t, e, n) { + const { + "sentry-trace": r, + baggage: s, + traceparent: a, + } = Rs({ span: e, propagateTraceparent: n }); + r && $d(t, r, s, a); +} +function $d(t, e, n, r) { + var a; + const s = (a = t.__sentry_xhr_v3__) == null ? void 0 : a.request_headers; + if (!((s != null && s["sentry-trace"]) || !t.setRequestHeader)) + try { + if ( + (t.setRequestHeader("sentry-trace", e), + r && + !(s != null && s.traceparent) && + t.setRequestHeader("traceparent", r), + n) + ) { + const i = s == null ? void 0 : s.baggage; + (!i || !Bd(i)) && t.setRequestHeader("baggage", n); + } + } catch {} +} +function Bd(t) { + return t.split(",").some((e) => e.trim().startsWith("sentry-")); +} +function Zs(t) { + try { + return new URL(t, T.location.origin).href; + } catch { + return; + } +} +function Ud() { + T.document + ? T.document.addEventListener("visibilitychange", () => { + const t = G(); + if (!t) return; + const e = W(t); + if (T.document.hidden && e) { + const n = "cancelled", + { op: r, status: s } = R(e); + te && + g.log( + `[Tracing] Transaction: ${n} -> since tab moved to the background, op: ${r}` + ), + s || e.setStatus({ code: Me, message: n }), + e.setAttribute("sentry.cancellation_reason", "document.hidden"), + e.end(); + } + }) + : te && + g.warn( + "[Tracing] Could not set up background tab detection due to lack of global document" + ); +} +const qd = 3600, + Qs = "sentry_previous_trace", + jd = "sentry.previous_trace"; +function Vd(t, { linkPreviousTrace: e, consistentTraceSampling: n }) { + const r = e === "session-storage"; + let s = r ? Yd() : void 0; + t.on("spanStart", (i) => { + if (W(i) !== i) return; + const o = C().getPropagationContext(); + (s = Wd(s, i, o)), r && Gd(s); + }); + let a = !0; + n && + t.on("beforeSampling", (i) => { + if (!s) return; + const o = C(), + c = o.getPropagationContext(); + if (a && c.parentSpanId) { + a = !1; + return; + } + o.setPropagationContext({ + ...c, + dsc: { + ...c.dsc, + sample_rate: String(s.sampleRate), + sampled: String(Ln(s.spanContext)), + }, + sampleRand: s.sampleRand, + }), + (i.parentSampled = Ln(s.spanContext)), + (i.parentSampleRate = s.sampleRate), + (i.spanAttributes = { ...i.spanAttributes, [Fa]: s.sampleRate }); + }); +} +function Wd(t, e, n) { + const r = R(e); + function s() { + var o, c; + try { + return ( + Number((o = n.dsc) == null ? void 0 : o.sample_rate) ?? + Number((c = r.data) == null ? void 0 : c[Jr]) + ); + } catch { + return 0; + } + } + const a = { + spanContext: e.spanContext(), + startTimestamp: r.start_timestamp, + sampleRate: s(), + sampleRand: n.sampleRand, + }; + if (!t) return a; + const i = t.spanContext; + return i.traceId === r.trace_id + ? t + : (Date.now() / 1e3 - t.startTimestamp <= qd && + (te && + g.log( + `Adding previous_trace ${i} link to span ${{ + op: r.op, + ...e.spanContext(), + }}` + ), + e.addLink({ context: i, attributes: { [Ma]: "previous_trace" } }), + e.setAttribute(jd, `${i.traceId}-${i.spanId}-${Ln(i) ? 1 : 0}`)), + a); +} +function Gd(t) { + try { + T.sessionStorage.setItem(Qs, JSON.stringify(t)); + } catch (e) { + te && g.warn("Could not store previous trace in sessionStorage", e); + } +} +function Yd() { + var t; + try { + const e = (t = T.sessionStorage) == null ? void 0 : t.getItem(Qs); + return JSON.parse(e); + } catch { + return; + } +} +function Ln(t) { + return t.traceFlags === 1; +} +const zd = "BrowserTracing", + Xd = { + ...It, + instrumentNavigation: !0, + instrumentPageLoad: !0, + markBackgroundSpan: !0, + enableLongTask: !0, + enableLongAnimationFrame: !0, + enableInp: !0, + enableElementTiming: !0, + ignoreResourceSpans: [], + ignorePerformanceApiSpans: [], + detectRedirects: !0, + linkPreviousTrace: "in-memory", + consistentTraceSampling: !1, + _experiments: {}, + ...Ks, + }, + Jd = (t = {}) => { + const e = { name: void 0, source: void 0 }, + n = T.document, + { + enableInp: r, + enableElementTiming: s, + enableLongTask: a, + enableLongAnimationFrame: i, + _experiments: { + enableInteractions: o, + enableStandaloneClsSpans: c, + enableStandaloneLcpSpans: u, + }, + beforeStartSpan: l, + idleTimeout: d, + finalTimeout: p, + childSpanTimeout: f, + markBackgroundSpan: m, + traceFetch: h, + traceXHR: x, + trackFetchStreamPerformance: I, + shouldCreateSpanForRequest: M, + enableHTTPTimings: $, + ignoreResourceSpans: oe, + ignorePerformanceApiSpans: z, + instrumentPageLoad: E, + instrumentNavigation: b, + detectRedirects: be, + linkPreviousTrace: me, + consistentTraceSampling: ge, + onRequestSpanStart: ce, + } = { ...Xd, ...t }; + let N, H; + function X(y, A, v = !0) { + const P = A.op === "pageload", + w = A.name, + J = l ? l(A) : A, + se = J.attributes || {}; + if ((w !== J.name && ((se[Q] = "custom"), (J.attributes = se)), !v)) { + const Ie = Ut(); + xe({ ...J, startTime: Ie }).end(Ie); + return; + } + (e.name = J.name), (e.source = se[Q]); + const ue = gs(J, { + idleTimeout: d, + finalTimeout: p, + childSpanTimeout: f, + disableAutoFinish: P, + beforeSpanEnd: (Ie) => { + N == null || N(), + iu(Ie, { + recordClsOnPageloadSpan: !c, + recordLcpOnPageloadSpan: !u, + ignoreResourceSpans: oe, + ignorePerformanceApiSpans: z, + }), + qr(y, void 0); + const de = C(), + We = de.getPropagationContext(); + de.setPropagationContext({ + ...We, + traceId: ue.spanContext().traceId, + sampled: Mt(ue), + dsc: Ne(Ie), + }); + }, + }); + qr(y, ue); + function ft() { + n && + ["interactive", "complete"].includes(n.readyState) && + y.emit("idleSpanEnableAutoFinish", ue); + } + P && + n && + (n.addEventListener("readystatechange", () => { + ft(); + }), + ft()); + } + return { + name: zd, + setup(y) { + if ( + (ui(), + (N = Qc({ + recordClsStandaloneSpans: c || !1, + recordLcpStandaloneSpans: u || !1, + client: y, + })), + r && Nu(), + s && hu(), + i && + F.PerformanceObserver && + PerformanceObserver.supportedEntryTypes && + PerformanceObserver.supportedEntryTypes.includes( + "long-animation-frame" + ) + ? tu() + : a && eu(), + o && nu(), + be && n) + ) { + const v = () => { + H = q(); + }; + addEventListener("click", v, { capture: !0 }), + addEventListener("keydown", v, { capture: !0, passive: !0 }); + } + function A() { + const v = rt(y); + v && + !R(v).timestamp && + (te && + g.log( + `[Tracing] Finishing current active span with op: ${R(v).op}` + ), + v.setAttribute(kt, "cancelled"), + v.end()); + } + y.on("startNavigationSpan", (v, P) => { + if (k() !== y) return; + if (P != null && P.isRedirect) { + te && + g.warn( + "[Tracing] Detected redirect, navigation span will not be the root span, but a child span." + ), + X(y, { op: "navigation.redirect", ...v }, !1); + return; + } + (H = void 0), + A(), + Bt().setPropagationContext({ + traceId: Pt(), + sampleRand: Math.random(), + }); + const w = C(); + w.setPropagationContext({ traceId: Pt(), sampleRand: Math.random() }), + w.setSDKProcessingMetadata({ normalizedRequest: void 0 }), + X(y, { op: "navigation", ...v }); + }), + y.on("startPageLoadSpan", (v, P = {}) => { + if (k() !== y) return; + A(); + const w = P.sentryTrace || Ur("sentry-trace"), + J = P.baggage || Ur("baggage"), + se = Ha(w, J), + ue = C(); + ue.setPropagationContext(se), + ue.setSDKProcessingMetadata({ normalizedRequest: $n() }), + X(y, { op: "pageload", ...v }); + }); + }, + afterAllSetup(y) { + let A = ot(); + if ( + (me !== "off" && + Vd(y, { linkPreviousTrace: me, consistentTraceSampling: ge }), + T.location) + ) { + if (E) { + const v = Y(); + ea(y, { + name: T.location.pathname, + startTime: v ? v / 1e3 : void 0, + attributes: { [Q]: "url", [D]: "auto.pageload.browser" }, + }); + } + b && + zn(({ to: v, from: P }) => { + if (P === void 0 && (A == null ? void 0 : A.indexOf(v)) !== -1) { + A = void 0; + return; + } + A = void 0; + const w = Is(v), + J = rt(y), + se = J && be && Zd(J, H); + ta( + y, + { + name: + (w == null ? void 0 : w.pathname) || T.location.pathname, + attributes: { [Q]: "url", [D]: "auto.navigation.browser" }, + }, + { url: v, isRedirect: se } + ); + }); + } + m && Ud(), + o && Kd(y, d, p, f, e), + r && Ou(), + xd(y, { + traceFetch: h, + traceXHR: x, + trackFetchStreamPerformance: I, + tracePropagationTargets: y.getOptions().tracePropagationTargets, + shouldCreateSpanForRequest: M, + enableHTTPTimings: $, + onRequestSpanStart: ce, + }); + }, + }; + }; +function ea(t, e, n) { + t.emit("startPageLoadSpan", e, n), C().setTransactionName(e.name); + const r = rt(t); + return r && t.emit("afterStartPageLoadSpan", r), r; +} +function ta(t, e, n) { + const { url: r, isRedirect: s } = n || {}; + t.emit("beforeStartNavigationSpan", e, { isRedirect: s }), + t.emit("startNavigationSpan", e, { isRedirect: s }); + const a = C(); + return ( + a.setTransactionName(e.name), + r && + !s && + a.setSDKProcessingMetadata({ normalizedRequest: { ...$n(), url: r } }), + rt(t) + ); +} +function Ur(t) { + const e = T.document, + n = e == null ? void 0 : e.querySelector(`meta[name=${t}]`); + return (n == null ? void 0 : n.getAttribute("content")) || void 0; +} +function Kd(t, e, n, r, s) { + const a = T.document; + let i; + const o = () => { + const c = "ui.action.click", + u = rt(t); + if (u) { + const l = R(u).op; + if (["navigation", "pageload"].includes(l)) { + te && + g.warn( + `[Tracing] Did not create ${c} span because a pageload or navigation span is in progress.` + ); + return; + } + } + if ( + (i && + (i.setAttribute(kt, "interactionInterrupted"), i.end(), (i = void 0)), + !s.name) + ) { + te && + g.warn( + `[Tracing] Did not create ${c} transaction because _latestRouteName is missing.` + ); + return; + } + i = gs( + { name: s.name, op: c, attributes: { [Q]: s.source || "url" } }, + { idleTimeout: e, finalTimeout: n, childSpanTimeout: r } + ); + }; + a && addEventListener("click", o, { capture: !0 }); +} +const na = "_sentry_idleSpan"; +function rt(t) { + return t[na]; +} +function qr(t, e) { + et(t, na, e); +} +const jr = 1.5; +function Zd(t, e) { + const n = R(t), + r = Ut(), + s = n.start_timestamp; + return !(r - s > jr || (e && r - e <= jr)); +} +function Qd(t) { + const e = { ...t }; + return Hn(e, "svelte"), Cd(e); +} +const ra = () => { + const t = $a; + return { + page: { subscribe: t.page.subscribe }, + navigating: { subscribe: t.navigating.subscribe }, + updated: t.updated, + }; + }, + el = { + subscribe(t) { + return ra().page.subscribe(t); + }, + }, + tl = { + subscribe(t) { + return ra().navigating.subscribe(t); + }, + }; +function nl(t = {}) { + const e = { + ...Jd({ ...t, instrumentNavigation: !1, instrumentPageLoad: !1 }), + }; + return { + ...e, + afterAllSetup: (n) => { + e.afterAllSetup(n), + t.instrumentPageLoad !== !1 && rl(n), + t.instrumentNavigation !== !1 && sl(n); + }, + }; +} +function rl(t) { + var r; + const e = (r = T.location) == null ? void 0 : r.pathname, + n = ea(t, { + name: e, + op: "pageload", + attributes: { [D]: "auto.pageload.sveltekit", [Q]: "url" }, + }); + n && + el.subscribe((s) => { + var i; + if (!s) return; + const a = (i = s.route) == null ? void 0 : i.id; + a && + (n.updateName(a), + n.setAttribute(Q, "route"), + C().setTransactionName(a)); + }); +} +function sl(t) { + let e; + tl.subscribe((n) => { + var l; + if (!n) { + e && (e.end(), (e = void 0)); + return; + } + const r = n.from, + s = n.to, + a = + (r == null ? void 0 : r.url.pathname) || + ((l = T.location) == null ? void 0 : l.pathname), + i = s == null ? void 0 : s.url.pathname; + if (a === i) return; + const o = r == null ? void 0 : r.route.id, + c = s == null ? void 0 : s.route.id; + e && e.end(); + const u = { + "sentry.sveltekit.navigation.type": n.type, + "sentry.sveltekit.navigation.from": o || void 0, + "sentry.sveltekit.navigation.to": c || void 0, + }; + ta(t, { + name: c || i || "unknown", + op: "navigation", + attributes: { + [D]: "auto.navigation.sveltekit", + [Q]: c ? "route" : "url", + ...u, + }, + }), + (e = xe({ + op: "ui.sveltekit.routing", + name: "SvelteKit Route Change", + attributes: { [D]: "auto.ui.sveltekit", ...u }, + onlyIfParent: !0, + })); + }); +} +function al(t) { + const e = { defaultIntegrations: il(), ...t }; + Hn(e, "sveltekit", ["sveltekit", "svelte"]); + const n = ol(), + r = Qd(e); + return n && cl(n), r; +} +function il(t) { + return typeof __SENTRY_TRACING__ > "u" || __SENTRY_TRACING__ + ? [...Nn(), nl()] + : Nn(); +} +function ol() { + const t = T, + e = t.fetch; + if (t._sentryFetchProxy && e) return (t.fetch = t._sentryFetchProxy), e; +} +function cl(t) { + const e = T; + (e._sentryFetchProxy = e.fetch), (e.fetch = t); +} +function ul({ error: t }) { + qt(() => { + console.error(t); + }); +} +function dl(t) { + const e = ul; + return (n) => ( + ll(n) || rs(n.error, { mechanism: { type: "sveltekit", handled: !1 } }), + e(n) + ); +} +function ll(t) { + const { status: e } = t; + return e ? e >= 400 && e < 500 : !1; +} +al({ + dsn: "", + tracesSampleRate: 1, + enableLogs: !0, + environment: "prod", + replaysOnErrorSampleRate: 1, +}); +const fl = dl(), + Nl = {}; +var pl = os( + '
        ' + ), + ml = os(" ", 1); +function gl(t, e) { + Va(e, !0); + let n = Ye(e, "components", 23, () => []), + r = Ye(e, "data_0", 3, null), + s = Ye(e, "data_1", 3, null), + a = Ye(e, "data_2", 3, null), + i = Ye(e, "data_3", 3, null); + Wa(() => e.stores.page.set(e.page)), + Ga(() => { + e.stores, + e.page, + e.constructors, + n(), + e.form, + r(), + s(), + a(), + i(), + e.stores.page.notify(); + }); + let o = en(!1), + c = en(!1), + u = en(null); + si(() => { + const I = e.stores.page.subscribe(() => { + j(o) && + (vt(c, !0), + Ya().then(() => { + vt(u, document.title || "untitled page", !0); + })); + }); + return vt(o, !0), I; + }); + const l = Re(() => e.constructors[3]); + var d = ml(), + p = ae(d); + { + var f = (I) => { + const M = Re(() => e.constructors[0]); + var $ = le(), + oe = ae($); + we( + oe, + () => j(M), + (z, E) => { + Ae( + E(z, { + get data() { + return r(); + }, + get form() { + return e.form; + }, + get params() { + return e.page.params; + }, + children: (b, be) => { + var me = le(), + ge = ae(me); + { + var ce = (H) => { + const X = Re(() => e.constructors[1]); + var y = le(), + A = ae(y); + we( + A, + () => j(X), + (v, P) => { + Ae( + P(v, { + get data() { + return s(); + }, + get form() { + return e.form; + }, + get params() { + return e.page.params; + }, + children: (w, J) => { + var se = le(), + ue = ae(se); + { + var ft = (de) => { + const We = Re(() => e.constructors[2]); + var Ge = le(), + zt = ae(Ge); + we( + zt, + () => j(We), + (Xt, Jt) => { + Ae( + Jt(Xt, { + get data() { + return a(); + }, + get form() { + return e.form; + }, + get params() { + return e.page.params; + }, + children: (ne, Sl) => { + var Xn = le(), + sa = ae(Xn); + we( + sa, + () => j(l), + (aa, ia) => { + Ae( + ia(aa, { + get data() { + return i(); + }, + get form() { + return e.form; + }, + get params() { + return e.page + .params; + }, + }), + (pt) => (n()[3] = pt), + () => { + var pt; + return (pt = n()) == + null + ? void 0 + : pt[3]; + } + ); + } + ), + K(ne, Xn); + }, + $$slots: { default: !0 }, + }), + (ne) => (n()[2] = ne), + () => { + var ne; + return (ne = n()) == null + ? void 0 + : ne[2]; + } + ); + } + ), + K(de, Ge); + }, + Ie = (de) => { + const We = Re(() => e.constructors[2]); + var Ge = le(), + zt = ae(Ge); + we( + zt, + () => j(We), + (Xt, Jt) => { + Ae( + Jt(Xt, { + get data() { + return a(); + }, + get form() { + return e.form; + }, + get params() { + return e.page.params; + }, + }), + (ne) => (n()[2] = ne), + () => { + var ne; + return (ne = n()) == null + ? void 0 + : ne[2]; + } + ); + } + ), + K(de, Ge); + }; + ze(ue, (de) => { + e.constructors[3] ? de(ft) : de(Ie, !1); + }); + } + K(w, se); + }, + $$slots: { default: !0 }, + }), + (w) => (n()[1] = w), + () => { + var w; + return (w = n()) == null ? void 0 : w[1]; + } + ); + } + ), + K(H, y); + }, + N = (H) => { + const X = Re(() => e.constructors[1]); + var y = le(), + A = ae(y); + we( + A, + () => j(X), + (v, P) => { + Ae( + P(v, { + get data() { + return s(); + }, + get form() { + return e.form; + }, + get params() { + return e.page.params; + }, + }), + (w) => (n()[1] = w), + () => { + var w; + return (w = n()) == null ? void 0 : w[1]; + } + ); + } + ), + K(H, y); + }; + ze(ge, (H) => { + e.constructors[2] ? H(ce) : H(N, !1); + }); + } + K(b, me); + }, + $$slots: { default: !0 }, + }), + (b) => (n()[0] = b), + () => { + var b; + return (b = n()) == null ? void 0 : b[0]; + } + ); + } + ), + K(I, $); + }, + m = (I) => { + const M = Re(() => e.constructors[0]); + var $ = le(), + oe = ae($); + we( + oe, + () => j(M), + (z, E) => { + Ae( + E(z, { + get data() { + return r(); + }, + get form() { + return e.form; + }, + get params() { + return e.page.params; + }, + }), + (b) => (n()[0] = b), + () => { + var b; + return (b = n()) == null ? void 0 : b[0]; + } + ); + } + ), + K(I, $); + }; + ze(p, (I) => { + e.constructors[1] ? I(f) : I(m, !1); + }); + } + var h = za(p, 2); + { + var x = (I) => { + var M = pl(), + $ = Ja(M); + { + var oe = (z) => { + var E = Za(); + Qa(() => ri(E, j(u))), K(z, E); + }; + ze($, (z) => { + j(c) && z(oe); + }); + } + Ka(M), K(I, M); + }; + ze(h, (I) => { + j(o) && I(x); + }); + } + K(t, d), Xa(); +} +const Ll = ai(gl), + Cl = [ + () => + L( + () => import("../nodes/0.D5b7oOw2.js"), + __vite__mapDeps([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/1.BMc-PacL.js"), + __vite__mapDeps([17, 1, 15, 3, 4, 5, 18, 19, 20, 2]), + import.meta.url + ), + () => + L( + () => import("../nodes/2.-6emjql3.js"), + __vite__mapDeps([21, 1, 3, 4, 5, 2, 22, 11, 12, 19, 20, 23, 10, 24]), + import.meta.url + ), + () => + L( + () => import("../nodes/3.DOMAwJeg.js"), + __vite__mapDeps([25, 1, 3, 4, 5, 2, 22, 11, 12, 19, 20, 24]), + import.meta.url + ), + () => + L( + () => import("../nodes/4.CrDfIbdR.js"), + __vite__mapDeps([ + 26, 1, 2, 3, 4, 5, 10, 12, 22, 11, 20, 19, 6, 7, 8, 9, 27, 13, 28, 29, + 30, 31, 32, 33, 34, 24, 35, 36, 37, 38, 39, 40, 15, 18, 23, 14, 41, + 42, 43, 44, 45, 46, 47, 48, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/5.cZCL4YVE.js"), + __vite__mapDeps([49, 1, 15, 3, 23, 10, 12]), + import.meta.url + ), + () => + L( + () => import("../nodes/6.WPRvZASS.js"), + __vite__mapDeps([50, 1, 15, 3, 2, 4, 5, 18, 7, 20]), + import.meta.url + ), + () => + L( + () => import("../nodes/7.ACRjrnuj.js"), + __vite__mapDeps([ + 51, 1, 3, 4, 5, 10, 22, 11, 12, 29, 20, 2, 19, 6, 7, 8, 28, 33, 27, + 31, 45, 47, 30, 44, 35, 52, 53, 54, 55, 34, 24, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/8.BbOUPQlW.js"), + __vite__mapDeps([ + 56, 1, 2, 3, 4, 5, 10, 11, 12, 29, 20, 6, 7, 8, 45, 57, 52, 53, 58, + 59, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/9.Cn-noR6e.js"), + __vite__mapDeps([60, 1, 15, 3, 5, 7, 20, 2, 4]), + import.meta.url + ), + () => + L( + () => import("../nodes/10.DqbXhTAj.js"), + __vite__mapDeps([ + 61, 1, 2, 3, 4, 5, 10, 11, 12, 29, 20, 6, 7, 8, 33, 27, 45, 53, 58, + 62, 63, 59, 54, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/11.C3Fd3lks.js"), + __vite__mapDeps([ + 64, 1, 2, 3, 4, 5, 10, 11, 12, 29, 20, 6, 7, 8, 33, 27, 45, 53, 58, + 62, 63, 59, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/12.B7-BJxmw.js"), + __vite__mapDeps([ + 65, 1, 3, 4, 5, 10, 22, 11, 12, 29, 20, 2, 19, 6, 7, 8, 32, 13, 28, + 33, 27, 30, 34, 24, 40, 31, 66, 45, 47, 67, 53, 58, 63, 55, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/13.DbQSn9aq.js"), + __vite__mapDeps([ + 68, 1, 2, 3, 4, 5, 10, 20, 19, 6, 7, 8, 41, 12, 13, 23, 42, 69, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/14.ClqwdR4T.js"), + __vite__mapDeps([ + 70, 1, 2, 3, 4, 5, 10, 22, 11, 12, 13, 20, 19, 6, 7, 8, 33, 27, 37, + 40, 31, 66, 45, 47, 36, 57, 34, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/15.D6A8EYfF.js"), + __vite__mapDeps([71, 1, 15, 3, 4, 5, 18, 23, 10, 12, 45, 46, 7, 47]), + import.meta.url + ), + () => + L( + () => import("../nodes/16.DTKQOukW.js"), + __vite__mapDeps([ + 72, 1, 2, 3, 4, 5, 10, 27, 19, 20, 6, 7, 8, 23, 12, 69, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/17.CONNNOye.js"), + __vite__mapDeps([ + 73, 1, 3, 4, 5, 10, 11, 12, 29, 13, 20, 2, 6, 7, 8, 38, 19, 37, 33, + 27, 39, 30, 44, 67, 34, + ]), + import.meta.url + ), + () => + L( + () => import("../nodes/18.24JvCqRi.js"), + __vite__mapDeps([74, 1, 15, 3, 5, 23, 10, 12, 75]), + import.meta.url + ), + () => + L( + () => import("../nodes/19.B2QYN1F_.js"), + __vite__mapDeps([76, 1, 15, 3, 5, 23, 10, 12]), + import.meta.url + ), + () => + L( + () => import("../nodes/20.LCTNv26D.js"), + __vite__mapDeps([77, 1, 15, 3, 5, 23, 10, 12]), + import.meta.url + ), + () => + L( + () => import("../nodes/21.zScYLJw9.js"), + __vite__mapDeps([78, 1, 15, 3, 5, 23, 10, 12, 75]), + import.meta.url + ), + ], + Ol = [], + xl = { + "/": [4], + "/404": [5], + "/admin": [6, [2]], + "/admin/alliances": [7, [2]], + "/admin/dashboard": [8, [2]], + "/admin/mods": [9, [2, 3]], + "/admin/mods/leaderboard-reports": [11, [2, 3]], + "/admin/mods/leaderboard": [10, [2, 3]], + "/admin/users": [12, [2]], + "/join": [13], + "/moderation": [14], + "/offline": [15], + "/payment/success": [16], + "/profile-picture": [17], + "/terms/privacy": [18], + "/terms/return": [19], + "/terms/return/pt": [20], + "/terms/terms-of-service": [21], + }, + hl = { + handleError: + fl || + (({ error: t }) => { + console.error(t); + }), + init: void 0, + reroute: () => {}, + transport: {}, + }, + _l = Object.fromEntries( + Object.entries(hl.transport).map(([t, e]) => [t, e.decode]) + ), + Dl = !1, + Fl = (t, e) => _l[t](e); +export { + Fl as decode, + _l as decoders, + xl as dictionary, + Dl as hash, + hl as hooks, + Nl as matchers, + Cl as nodes, + Ll as root, + Ol as server_loads, +}; diff --git a/frontend-backup/_app/immutable/entry/app.iDaujbEI.js b/frontend-backup/_app/immutable/entry/app.iDaujbEI.js deleted file mode 100644 index 45f46fc..0000000 --- a/frontend-backup/_app/immutable/entry/app.iDaujbEI.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CnnlsrhC.js","../chunks/Bzak7iHL.js","../chunks/ByKBPM-D.js","../chunks/DUoKDNpf.js","../chunks/g8c1BvYP.js","../chunks/2CRhGZHc.js","../chunks/F0pgzfyy.js","../chunks/D2m5UD3G.js","../chunks/1lh-LSvX.js","../chunks/C5GsJ62f.js","../chunks/5NasrULQ.js","../chunks/U908S-6f.js","../chunks/B1GmkH4o.js","../chunks/CMs8vKjq.js","../chunks/BtP6pfnb.js","../chunks/D35KiPL1.js","../assets/0.CmqRY0au.css","../nodes/1.DpC5h7KA.js","../chunks/D1ivTjwA.js","../chunks/Cp3o644A.js","../chunks/KvV259my.js","../nodes/2.BY7SdjrD.js","../chunks/Y9es74tr.js","../chunks/BMKgGW48.js","../chunks/CBqzI9hL.js","../chunks/DsJqb9ei.js","../assets/ProfileAvatarWithLevel.6dmPRSfx.css","../chunks/07L1R_bo.js","../chunks/CQklNc9N.js","../assets/LoginForm.CxMG0irz.css","../chunks/Dp1pzeXC.js","../chunks/DkBFL3pa.js","../chunks/CeLr1p76.js","../assets/2.BtKF873c.css","../nodes/3.DVSEiJTt.js","../nodes/4.CeYpVeIo.js","../chunks/1mTheT_N.js","../nodes/5.CXeQMqhf.js","../nodes/6.DD7Zmm97.js","../nodes/7.DDuBPi09.js","../nodes/8.B8sOtsfv.js","../nodes/9.BQE9fbrM.js","../assets/9.BD1hRFPA.css","../nodes/10.C07JyVXo.js","../nodes/11.BVmrEev1.js"])))=>i.map(i=>d[i]); -var M=e=>{throw TypeError(e)};var B=(e,t,r)=>t.has(e)||M("Cannot "+r);var o=(e,t,r)=>(B(e,t,"read from private field"),r?r.call(e):t.get(e)),A=(e,t,r)=>t.has(e)?M("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),L=(e,t,r,i)=>(B(e,t,"write to private field"),i?i.call(e,r):t.set(e,r),r);import{_ as m}from"../chunks/Dp1pzeXC.js";import{aH as b,aO as J,A as l,av as K,aQ as N,V as W,p as X,v as Z,w as $,aR as T,aB as tt,f as G,a as O,s as et,b as y,c as rt,aS as V,d as at,r as st,aT as D,aU as ot,t as it}from"../chunks/DUoKDNpf.js";import{h as nt,m as mt,u as _t,s as ct}from"../chunks/g8c1BvYP.js";import"../chunks/Bzak7iHL.js";import{o as ut}from"../chunks/ByKBPM-D.js";import{p as I,i as x}from"../chunks/5NasrULQ.js";import{c as w}from"../chunks/BtP6pfnb.js";import{b as j}from"../chunks/CMs8vKjq.js";function lt(e){return class extends dt{constructor(t){super({component:e,...t})}}}var d,_;class dt{constructor(t){A(this,d);A(this,_);var E;var r=new Map,i=(a,s)=>{var f=W(s,!1,!1);return r.set(a,f),f};const u=new Proxy({...t.props||{},$$events:{}},{get(a,s){return l(r.get(s)??i(s,Reflect.get(a,s)))},has(a,s){return s===J?!0:(l(r.get(s)??i(s,Reflect.get(a,s))),Reflect.has(a,s))},set(a,s,f){return b(r.get(s)??i(s,f),f),Reflect.set(a,s,f)}});L(this,_,(t.hydrate?nt:mt)(t.component,{target:t.target,anchor:t.anchor,props:u,context:t.context,intro:t.intro??!1,recover:t.recover})),(!((E=t==null?void 0:t.props)!=null&&E.$$host)||t.sync===!1)&&K(),L(this,d,u.$$events);for(const a of Object.keys(o(this,_)))a==="$set"||a==="$destroy"||a==="$on"||N(this,a,{get(){return o(this,_)[a]},set(s){o(this,_)[a]=s},enumerable:!0});o(this,_).$set=a=>{Object.assign(u,a)},o(this,_).$destroy=()=>{_t(o(this,_))}}$set(t){o(this,_).$set(t)}$on(t,r){o(this,d)[t]=o(this,d)[t]||[];const i=(...u)=>r.call(this,...u);return o(this,d)[t].push(i),()=>{o(this,d)[t]=o(this,d)[t].filter(u=>u!==i)}}$destroy(){o(this,_).$destroy()}}d=new WeakMap,_=new WeakMap;const Dt={};var ft=G('
        '),vt=G(" ",1);function ht(e,t){X(t,!0);let r=I(t,"components",23,()=>[]),i=I(t,"data_0",3,null),u=I(t,"data_1",3,null);Z(()=>t.stores.page.set(t.page)),$(()=>{t.stores,t.page,t.constructors,r(),t.form,i(),u(),t.stores.page.notify()});let E=T(!1),a=T(!1),s=T(null);ut(()=>{const n=t.stores.page.subscribe(()=>{l(E)&&(b(a,!0),tt().then(()=>{b(s,document.title||"untitled page",!0)}))});return b(E,!0),n});const f=D(()=>t.constructors[1]);var k=vt(),C=O(k);{var H=n=>{const v=D(()=>t.constructors[0]);var h=V(),P=O(h);w(P,()=>l(v),(g,p)=>{j(p(g,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(c,pt)=>{var S=V(),q=O(S);w(q,()=>l(f),(z,F)=>{j(F(z,{get data(){return u()},get form(){return t.form},get params(){return t.page.params}}),R=>r()[1]=R,()=>{var R;return(R=r())==null?void 0:R[1]})}),y(c,S)},$$slots:{default:!0}}),c=>r()[0]=c,()=>{var c;return(c=r())==null?void 0:c[0]})}),y(n,h)},Q=n=>{const v=D(()=>t.constructors[0]);var h=V(),P=O(h);w(P,()=>l(v),(g,p)=>{j(p(g,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),c=>r()[0]=c,()=>{var c;return(c=r())==null?void 0:c[0]})}),y(n,h)};x(C,n=>{t.constructors[1]?n(H):n(Q,!1)})}var U=et(C,2);{var Y=n=>{var v=ft(),h=at(v);{var P=g=>{var p=ot();it(()=>ct(p,l(s))),y(g,p)};x(h,g=>{l(a)&&g(P)})}st(v),y(n,v)};x(U,n=>{l(E)&&n(Y)})}y(e,k),rt()}const It=lt(ht),xt=[()=>m(()=>import("../nodes/0.CnnlsrhC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),import.meta.url),()=>m(()=>import("../nodes/1.DpC5h7KA.js"),__vite__mapDeps([17,1,15,3,4,5,18,19,20,2,6]),import.meta.url),()=>m(()=>import("../nodes/2.BY7SdjrD.js"),__vite__mapDeps([21,1,2,3,4,5,10,12,22,11,9,19,20,6,8,7,23,13,24,25,26,15,18,27,14,28,29,30,31,32,33]),import.meta.url),()=>m(()=>import("../nodes/3.DVSEiJTt.js"),__vite__mapDeps([34,1,15,3,27,10,12]),import.meta.url),()=>m(()=>import("../nodes/4.CeYpVeIo.js"),__vite__mapDeps([35,1,2,3,4,5,10,20,6,19,8,9,28,12,13,27,29,36]),import.meta.url),()=>m(()=>import("../nodes/5.CXeQMqhf.js"),__vite__mapDeps([37,1,2,3,4,5,10,22,11,9,12,20,6,19,8,25,23,31]),import.meta.url),()=>m(()=>import("../nodes/6.DD7Zmm97.js"),__vite__mapDeps([38,1,15,3,4,5,18,27,10,12,31,9,32]),import.meta.url),()=>m(()=>import("../nodes/7.DDuBPi09.js"),__vite__mapDeps([39,1,2,3,4,5,10,23,19,20,6,8,9,27,12,36]),import.meta.url),()=>m(()=>import("../nodes/8.B8sOtsfv.js"),__vite__mapDeps([40,1,3,4,5,10,11,12,24,9,2,13,20,6,8,25,23,26]),import.meta.url),()=>m(()=>import("../nodes/9.BQE9fbrM.js"),__vite__mapDeps([41,1,15,3,5,27,10,12,42]),import.meta.url),()=>m(()=>import("../nodes/10.C07JyVXo.js"),__vite__mapDeps([43,1,15,3,5,27,10,12]),import.meta.url),()=>m(()=>import("../nodes/11.BVmrEev1.js"),__vite__mapDeps([44,1,15,3,5,27,10,12,42]),import.meta.url)],wt=[],jt={"/":[2],"/404":[3],"/join":[4],"/admin":[5],"/offline":[6],"/payment/success":[7],"/profile-picture":[8],"/terms/privacy":[9],"/terms/return":[10],"/terms/terms-of-service":[11]},gt={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},Et=Object.fromEntries(Object.entries(gt.transport).map(([e,t])=>[e,t.decode])),kt=!1,Ct=(e,t)=>Et[e](t);export{Ct as decode,Et as decoders,jt as dictionary,kt as hash,gt as hooks,Dt as matchers,xt as nodes,It as root,wt as server_loads}; diff --git a/frontend-backup/_app/immutable/entry/start.CJ_UwIBa.js b/frontend-backup/_app/immutable/entry/start.CJ_UwIBa.js deleted file mode 100644 index 6a31c2c..0000000 --- a/frontend-backup/_app/immutable/entry/start.CJ_UwIBa.js +++ /dev/null @@ -1 +0,0 @@ -import{l as o,a as r}from"../chunks/KvV259my.js";export{o as load_css,r as start}; diff --git a/frontend-backup/_app/immutable/entry/start.CqSbdZXc.js b/frontend-backup/_app/immutable/entry/start.CqSbdZXc.js deleted file mode 100644 index d742b46..0000000 --- a/frontend-backup/_app/immutable/entry/start.CqSbdZXc.js +++ /dev/null @@ -1 +0,0 @@ -import{l as o,a}from"../chunks/B4HM4TqG.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5a191b66-7525-49e4-8b03-c06818aa62d5",e._sentryDebugIdIdentifier="sentry-dbid-5a191b66-7525-49e4-8b03-c06818aa62d5")})()}catch{}export{o as load_css,a as start}; diff --git a/frontend-backup/_app/immutable/entry/start.cg9kNiPJ.js b/frontend-backup/_app/immutable/entry/start.cg9kNiPJ.js new file mode 100644 index 0000000..470439b --- /dev/null +++ b/frontend-backup/_app/immutable/entry/start.cg9kNiPJ.js @@ -0,0 +1,37 @@ +import { l as o, a } from "../chunks/CyB--sFG.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "5a191b66-7525-49e4-8b03-c06818aa62d5"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-5a191b66-7525-49e4-8b03-c06818aa62d5")); + })(); +} catch {} +export { o as load_css, a as start }; diff --git a/frontend-backup/_app/immutable/nodes/0.CnnlsrhC.js b/frontend-backup/_app/immutable/nodes/0.CnnlsrhC.js deleted file mode 100644 index 388f0f1..0000000 --- a/frontend-backup/_app/immutable/nodes/0.CnnlsrhC.js +++ /dev/null @@ -1 +0,0 @@ -var ke=o=>{throw TypeError(o)};var He=(o,t,l)=>t.has(o)||ke("Cannot "+l);var gt=(o,t,l)=>(He(o,t,"read from private field"),l?l.call(o):t.get(o)),qt=(o,t,l)=>t.has(o)?ke("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(o):t.set(o,l),Qt=(o,t,l,S)=>(He(o,t,"write to private field"),S?S.call(o,l):t.set(o,l),l);import"../chunks/Bzak7iHL.js";import{o as pt,s as it}from"../chunks/ByKBPM-D.js";import{p as de,f as et,d as ot,b as n,r as p,t as J,c as ue,bo as le,ay as pe,ax as Re,az as $e,aR as R,aG as Ue,w as _t,aH as f,A as e,aT as b,x as $t,s as Mt,bj as Ve,ap as ht,aS as g,a as v,an as tn,aU as Ne,q as ne,bk as en}from"../chunks/DUoKDNpf.js";import{s as Jt}from"../chunks/g8c1BvYP.js";import{v as nn}from"../chunks/F0pgzfyy.js";import{c as an,A as on,s as sn,a as rn}from"../chunks/D2m5UD3G.js";import{d as Z,e as xt,f as ln,g as Fe,u as cn}from"../chunks/1lh-LSvX.js";import"../chunks/C5GsJ62f.js";import{p as O,i as I,s as Me,r as dn}from"../chunks/5NasrULQ.js";import{e as Pe}from"../chunks/U908S-6f.js";import{c as It,s as Tt,b as A,d as Ae,a as un,S as fn}from"../chunks/B1GmkH4o.js";import{b as Ke}from"../chunks/CMs8vKjq.js";import{c as Ot}from"../chunks/BtP6pfnb.js";import"../chunks/D35KiPL1.js";const vn=!0,Ia=Object.freeze(Object.defineProperty({__proto__:null,prerender:vn},Symbol.toStringTag,{value:"Module"})),mn=Array(12).fill(0);var gn=et('
        '),hn=et('
        ');function _n(o,t){de(t,!0);var l=hn(),S=ot(l);Pe(S,23,()=>mn,(M,L)=>`spinner-bar-${L}`,(M,L)=>{var V=gn();n(M,V)}),p(S),p(l),J(M=>{Tt(l,1,M),A(l,"data-visible",t.visible)},[()=>It(["sonner-loading-wrapper",t.class].filter(Boolean).join(" "))]),n(o,l),ue()}const bn=typeof window<"u"?window:void 0;function wn(o){let t=o.activeElement;for(;t!=null&&t.shadowRoot;){const l=t.shadowRoot.activeElement;if(l===t)break;t=l}return t}var jt,te;class yn{constructor(t={}){qt(this,jt);qt(this,te);const{window:l=bn,document:S=l==null?void 0:l.document}=t;l!==void 0&&(Qt(this,jt,S),Qt(this,te,an(M=>{const L=le(l,"focusin",M),V=le(l,"focusout",M);return()=>{L(),V()}})))}get current(){var t;return(t=gt(this,te))==null||t.call(this),gt(this,jt)?wn(gt(this,jt)):null}}jt=new WeakMap,te=new WeakMap;new yn;var ee,St;class xn{constructor(t){qt(this,ee);qt(this,St);Qt(this,ee,t),Qt(this,St,Symbol(t))}get key(){return gt(this,St)}exists(){return pe(gt(this,St))}get(){const t=Re(gt(this,St));if(t===void 0)throw new Error(`Context "${gt(this,ee)}" not found`);return t}getOr(t){const l=Re(gt(this,St));return l===void 0?t:l}set(t){return $e(gt(this,St),t)}}ee=new WeakMap,St=new WeakMap;const In=new xn("");function ce(o){return o.label!==void 0}function Tn(){let o=R(Ue(typeof document<"u"?document.hidden:!1));return _t(()=>le(document,"visibilitychange",()=>{f(o,document.hidden,!0)})),{get current(){return e(o)}}}const je=4e3,Sn=14,Bn=45,Dn=200,En=.05,Mn={toast:"",title:"",description:"",loader:"",closeButton:"",cancelButton:"",actionButton:"",action:"",warning:"",error:"",success:"",default:"",info:"",loading:""};function An(o){const[t,l]=o.split("-"),S=[];return t&&S.push(t),l&&S.push(l),S}function ze(o){return 1/(1.5+Math.abs(o)/20)}var Cn=et("
        "),Pn=(o,t,l,S,M)=>{var L,V;e(t)||!e(l)||(S(),(V=(L=M.toast).onDismiss)==null||V.call(L,M.toast))},On=et(''),Ln=et('
        '),kn=et('
        '),Hn=(o,t,l,S)=>{var M,L;ce(t.toast.cancel)&&e(l)&&((L=(M=t.toast.cancel)==null?void 0:M.onClick)==null||L.call(M,o),S())},Rn=et(''),Nn=(o,t,l)=>{var S;ce(t.toast.action)&&((S=t.toast.action)==null||S.onClick(o),!o.defaultPrevented&&l())},Fn=et(''),jn=et('
        ',1),zn=et('
      • ');function Un(o,t){de(t,!0);const l=s=>{var c=g(),x=v(c);{var T=h=>{var W=Cn(),tt=ot(W);it(tt,()=>t.loadingIcon),p(W),J(Y=>{Tt(W,1,Y),A(W,"data-visible",e(E)==="loading")},[()=>{var Y,j,m;return It(xt((Y=e(at))==null?void 0:Y.loader,(m=(j=t.toast)==null?void 0:j.classes)==null?void 0:m.loader,"sonner-loader"))}]),n(h,W)},B=h=>{{let W=b(()=>{var Y,j;return xt((Y=e(at))==null?void 0:Y.loader,(j=t.toast.classes)==null?void 0:j.loader)}),tt=b(()=>e(E)==="loading");_n(h,{get class(){return e(W)},get visible(){return e(tt)}})}};I(x,h=>{t.loadingIcon?h(T):h(B,!1)})}n(s,c)};let S=O(t,"cancelButtonStyle",3,""),M=O(t,"actionButtonStyle",3,""),L=O(t,"descriptionClass",3,""),V=O(t,"unstyled",3,!1),Bt=O(t,"defaultRichColors",3,!1);const $={...Mn};let N=R(!1),q=R(!1),Lt=R(!1),zt=R(!1),Ut=R(!1),Q=R(0),bt=R(0),kt=t.toast.duration||t.duration||je,nt=R(void 0),ut=R(null),Vt=R(null);const fe=b(()=>t.index===0),ve=b(()=>t.index+1<=t.visibleToasts),E=b(()=>t.toast.type),ft=b(()=>t.toast.dismissable!==!1),At=b(()=>t.toast.class||""),Dt=b(()=>t.toast.descriptionClass||""),vt=b(()=>Z.heights.findIndex(s=>s.toastId===t.toast.id)||0),Ct=b(()=>t.toast.closeButton??t.closeButton),me=b(()=>t.toast.duration??t.duration??je);let Et=null;const ae=b(()=>t.position.split("-")),ge=b(()=>Z.heights.reduce((s,c,x)=>x>=e(vt)?s:s+c.height,0)),he=Tn(),_e=b(()=>t.toast.invert||t.invert),Kt=b(()=>e(E)==="loading"),at=b(()=>({...$,...t.classes})),be=b(()=>t.toast.title),Pt=b(()=>t.toast.description);let Wt=R(0),oe=R(0);const r=b(()=>Math.round(e(vt)*Sn+e(ge)));_t(()=>{e(be),e(Pt);let s;t.expanded||t.expandByDefault?s=1:s=1-t.index*En;const c=$t(()=>e(nt));if(c===void 0)return;c.style.setProperty("height","auto");const x=c.offsetHeight,T=c.getBoundingClientRect().height,B=Math.round(T/s+Number.EPSILON&100)/100;c.style.removeProperty("height");let h;Math.abs(B-x)<1?h=B:h=x,f(bt,h,!0),$t(()=>{Z.setHeight({toastId:t.toast.id,height:h})})});function u(){f(q,!0),f(Q,e(r),!0),Z.removeHeight(t.toast.id),setTimeout(()=>{Z.remove(t.toast.id)},Dn)}let F;const wt=b(()=>t.toast.promise&&e(E)==="loading"||t.toast.duration===Number.POSITIVE_INFINITY);function st(){f(Wt,new Date().getTime(),!0),F=setTimeout(()=>{var s,c;(c=(s=t.toast).onAutoClose)==null||c.call(s,t.toast),u()},kt)}function Ht(){if(e(oe){t.toast.updated&&(clearTimeout(F),kt=e(me),st())}),_t(()=>(e(wt)||(t.expanded||t.interacting||he.current?Ht():st()),()=>clearTimeout(F))),pt(()=>{var c;f(N,!0);const s=(c=e(nt))==null?void 0:c.getBoundingClientRect().height;return f(bt,s,!0),Z.setHeight({toastId:t.toast.id,height:s}),()=>{Z.removeHeight(t.toast.id)}}),_t(()=>{t.toast.delete&&$t(()=>{var s,c;u(),(c=(s=t.toast).onDismiss)==null||c.call(s,t.toast)})});const Oe=s=>{if(e(Kt))return;f(Q,e(r),!0);const c=s.target;c.setPointerCapture(s.pointerId),c.tagName!=="BUTTON"&&(f(Lt,!0),Et={x:s.clientX,y:s.clientY})},ie=()=>{var h,W,tt,Y,j,m;if(e(zt)||!e(ft))return;Et=null;const s=Number(((h=e(nt))==null?void 0:h.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),c=Number(((W=e(nt))==null?void 0:W.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),x=new Date().getTime()-0,T=e(ut)==="x"?s:c,B=Math.abs(T)/x;if(Math.abs(T)>=Bn||B>.11){f(Q,e(r),!0),(Y=(tt=t.toast).onDismiss)==null||Y.call(tt,t.toast),e(ut)==="x"?f(Vt,s>0?"right":"left",!0):f(Vt,c>0?"down":"up",!0),u(),f(zt,!0);return}else(j=e(nt))==null||j.style.setProperty("--swipe-amount-x","0px"),(m=e(nt))==null||m.style.setProperty("--swipe-amount-y","0px");f(Ut,!1),f(Lt,!1),f(ut,null)},mt=s=>{var W,tt,Y;if(!Et||!e(ft)||(((W=window.getSelection())==null?void 0:W.toString().length)??-1)>0)return;const x=s.clientY-Et.y,T=s.clientX-Et.x,B=t.swipeDirections??An(t.position);!e(ut)&&(Math.abs(T)>1||Math.abs(x)>1)&&f(ut,Math.abs(T)>Math.abs(x)?"x":"y",!0);let h={x:0,y:0};if(e(ut)==="y"){if(B.includes("top")||B.includes("bottom"))if(B.includes("top")&&x<0||B.includes("bottom")&&x>0)h.y=x;else{const j=x*ze(x);h.y=Math.abs(j)0)h.x=T;else{const j=T*ze(T);h.x=Math.abs(j)0||Math.abs(h.y)>0)&&f(Ut,!0),(tt=e(nt))==null||tt.style.setProperty("--swipe-amount-x",`${h.x}px`),(Y=e(nt))==null||Y.style.setProperty("--swipe-amount-y",`${h.y}px`)},yt=()=>{f(Lt,!1),f(ut,null),Et=null},K=b(()=>t.toast.icon?t.toast.icon:e(E)==="success"?t.successIcon:e(E)==="error"?t.errorIcon:e(E)==="warning"?t.warningIcon:e(E)==="info"?t.infoIcon:e(E)==="loading"?t.loadingIcon:null);var w=zn();A(w,"tabindex",0);let se;w.__pointermove=mt,w.__pointerup=ie,w.__pointerdown=Oe;var we=ot(w);{var ye=s=>{var c=On();c.__click=[Pn,Kt,ft,u,t];var x=ot(c);it(x,()=>t.closeIcon??ht),p(c),J(T=>{A(c,"aria-label",t.closeButtonAriaLabel),A(c,"data-disabled",e(Kt)),Tt(c,1,T)},[()=>{var T,B,h;return It(xt((T=e(at))==null?void 0:T.closeButton,(h=(B=t.toast)==null?void 0:B.classes)==null?void 0:h.closeButton))}]),n(s,c)};I(we,s=>{e(Ct)&&!t.toast.component&&e(E)!=="loading"&&t.closeIcon!==null&&s(ye)})}var xe=Mt(we,2);{var Ie=s=>{const c=b(()=>t.toast.component);var x=g(),T=v(x);Ot(T,()=>e(c),(B,h)=>{h(B,Me(()=>t.toast.componentProps,{closeToast:u}))}),n(s,x)},Te=s=>{var c=jn(),x=v(c);{var T=y=>{var a=Ln(),d=ot(a);{var D=_=>{var C=g(),z=v(C);{var H=G=>{var U=g(),ct=v(U);Ot(ct,()=>t.toast.icon,(dt,Yt)=>{Yt(dt,{})}),n(G,U)},P=G=>{l(G)};I(z,G=>{t.toast.icon?G(H):G(P,!1)})}n(_,C)};I(d,_=>{(t.toast.promise||e(E)==="loading")&&_(D)})}var k=Mt(d,2);{var i=_=>{var C=g(),z=v(C);{var H=G=>{var U=g(),ct=v(U);Ot(ct,()=>t.toast.icon,(dt,Yt)=>{Yt(dt,{})}),n(G,U)},P=G=>{var U=g(),ct=v(U);{var dt=Rt=>{var Gt=g(),Se=v(Gt);it(Se,()=>t.successIcon??ht),n(Rt,Gt)},Yt=Rt=>{var Gt=g(),Se=v(Gt);{var Ge=Nt=>{var Zt=g(),Be=v(Zt);it(Be,()=>t.errorIcon??ht),n(Nt,Zt)},Ze=Nt=>{var Zt=g(),Be=v(Zt);{var Xe=Ft=>{var Xt=g(),De=v(Xt);it(De,()=>t.warningIcon??ht),n(Ft,Xt)},qe=Ft=>{var Xt=g(),De=v(Xt);{var Qe=Ee=>{var Le=g(),Je=v(Le);it(Je,()=>t.infoIcon??ht),n(Ee,Le)};I(De,Ee=>{e(E)==="info"&&Ee(Qe)},!0)}n(Ft,Xt)};I(Be,Ft=>{e(E)==="warning"?Ft(Xe):Ft(qe,!1)},!0)}n(Nt,Zt)};I(Se,Nt=>{e(E)==="error"?Nt(Ge):Nt(Ze,!1)},!0)}n(Rt,Gt)};I(ct,Rt=>{e(E)==="success"?Rt(dt):Rt(Yt,!1)},!0)}n(G,U)};I(z,G=>{t.toast.icon?G(H):G(P,!1)})}n(_,C)};I(k,_=>{t.toast.type!=="loading"&&_(i)})}p(a),J(_=>Tt(a,1,_),[()=>{var _,C,z;return It(xt((_=e(at))==null?void 0:_.icon,(z=(C=t.toast)==null?void 0:C.classes)==null?void 0:z.icon))}]),n(y,a)};I(x,y=>{(e(E)||t.toast.icon||t.toast.promise)&&t.toast.icon!==null&&(e(K)!==null||t.toast.icon)&&y(T)})}var B=Mt(x,2),h=ot(B),W=ot(h);{var tt=y=>{var a=g(),d=v(a);{var D=i=>{const _=b(()=>t.toast.title);var C=g(),z=v(C);Ot(z,()=>e(_),(H,P)=>{P(H,Me(()=>t.toast.componentProps))}),n(i,C)},k=i=>{var _=Ne();J(()=>Jt(_,t.toast.title)),n(i,_)};I(d,i=>{typeof t.toast.title!="string"?i(D):i(k,!1)})}n(y,a)};I(W,y=>{t.toast.title&&y(tt)})}p(h);var Y=Mt(h,2);{var j=y=>{var a=kn(),d=ot(a);{var D=i=>{const _=b(()=>t.toast.description);var C=g(),z=v(C);Ot(z,()=>e(_),(H,P)=>{P(H,Me(()=>t.toast.componentProps))}),n(i,C)},k=i=>{var _=Ne();J(()=>Jt(_,t.toast.description)),n(i,_)};I(d,i=>{typeof t.toast.description!="string"?i(D):i(k,!1)})}p(a),J(i=>Tt(a,1,i),[()=>{var i,_;return It(xt(L(),e(Dt),(i=e(at))==null?void 0:i.description,(_=t.toast.classes)==null?void 0:_.description))}]),n(y,a)};I(Y,y=>{t.toast.description&&y(j)})}p(B);var m=Mt(B,2);{var X=y=>{var a=g(),d=v(a);{var D=i=>{var _=g(),C=v(_);Ot(C,()=>t.toast.cancel,(z,H)=>{H(z,{})}),n(i,_)},k=i=>{var _=g(),C=v(_);{var z=H=>{var P=Rn();P.__click=[Hn,t,ft,u];var G=ot(P,!0);p(P),J(U=>{Ae(P,t.toast.cancelButtonStyle??S()),Tt(P,1,U),Jt(G,t.toast.cancel.label)},[()=>{var U,ct,dt;return It(xt((U=e(at))==null?void 0:U.cancelButton,(dt=(ct=t.toast)==null?void 0:ct.classes)==null?void 0:dt.cancelButton))}]),n(H,P)};I(C,H=>{ce(t.toast.cancel)&&H(z)},!0)}n(i,_)};I(d,i=>{typeof t.toast.cancel=="function"?i(D):i(k,!1)})}n(y,a)};I(m,y=>{t.toast.cancel&&y(X)})}var rt=Mt(m,2);{var lt=y=>{var a=g(),d=v(a);{var D=i=>{var _=g(),C=v(_);Ot(C,()=>t.toast.action,(z,H)=>{H(z,{})}),n(i,_)},k=i=>{var _=g(),C=v(_);{var z=H=>{var P=Fn();P.__click=[Nn,t,u];var G=ot(P,!0);p(P),J(U=>{Ae(P,t.toast.actionButtonStyle??M()),Tt(P,1,U),Jt(G,t.toast.action.label)},[()=>{var U,ct,dt;return It(xt((U=e(at))==null?void 0:U.actionButton,(dt=(ct=t.toast)==null?void 0:ct.classes)==null?void 0:dt.actionButton))}]),n(H,P)};I(C,H=>{ce(t.toast.action)&&H(z)},!0)}n(i,_)};I(d,i=>{typeof t.toast.action=="function"?i(D):i(k,!1)})}n(y,a)};I(rt,y=>{t.toast.action&&y(lt)})}J(y=>Tt(h,1,y),[()=>{var y,a,d;return It(xt((y=e(at))==null?void 0:y.title,(d=(a=t.toast)==null?void 0:a.classes)==null?void 0:d.title))}]),n(s,c)};I(xe,s=>{t.toast.component?s(Ie):s(Te,!1)})}p(w),Ke(w,s=>f(nt,s),()=>e(nt)),J((s,c,x,T)=>{Tt(w,1,s),A(w,"data-rich-colors",t.toast.richColors??Bt()),A(w,"data-styled",!(t.toast.component||t.toast.unstyled||V())),A(w,"data-mounted",e(N)),A(w,"data-promise",c),A(w,"data-swiped",e(Ut)),A(w,"data-removed",e(q)),A(w,"data-visible",e(ve)),A(w,"data-y-position",e(ae)[0]),A(w,"data-x-position",e(ae)[1]),A(w,"data-index",t.index),A(w,"data-front",e(fe)),A(w,"data-swiping",e(Lt)),A(w,"data-dismissable",e(ft)),A(w,"data-type",e(E)),A(w,"data-invert",e(_e)),A(w,"data-swipe-out",e(zt)),A(w,"data-swipe-direction",e(Vt)),A(w,"data-expanded",x),se=Ae(w,`${t.style} ${t.toast.style}`,se,T)},[()=>{var s,c,x,T,B,h;return It(xt(t.class,e(At),(s=e(at))==null?void 0:s.toast,(x=(c=t.toast)==null?void 0:c.classes)==null?void 0:x.toast,(T=e(at))==null?void 0:T[e(E)],(h=(B=t.toast)==null?void 0:B.classes)==null?void 0:h[e(E)]))},()=>!!t.toast.promise,()=>!!(t.expanded||t.expandByDefault&&e(N)),()=>({"--index":t.index,"--toasts-before":t.index,"--z-index":Z.toasts.length-t.index,"--offset":`${e(q)?e(Q):e(r)}px`,"--initial-height":t.expandByDefault?"auto":`${e(bt)}px`})]),Ve("dragend",w,yt),n(o,w),ue()}tn(["pointermove","pointerup","pointerdown","click"]);var Vn=ne('');function Kn(o){var t=Vn();n(o,t)}var Wn=ne('');function Yn(o){var t=Wn();n(o,t)}var Gn=ne('');function Zn(o){var t=Gn();n(o,t)}var Xn=ne('');function qn(o){var t=Xn();n(o,t)}var Qn=ne('');function Jn(o){var t=Qn();n(o,t)}const pn=3,We="24px",Ye="16px",$n=4e3,ta=356,ea=14,Ce="dark",re="light";function na(o,t){const l={};return[o,t].forEach((S,M)=>{const L=M===1,V=L?"--mobile-offset":"--offset",Bt=L?Ye:We;function $(N){["top","right","bottom","left"].forEach(q=>{l[`${V}-${q}`]=typeof N=="number"?`${N}px`:N})}typeof S=="number"||typeof S=="string"?$(S):typeof S=="object"?["top","right","bottom","left"].forEach(N=>{const q=S[N];q===void 0?l[`${V}-${N}`]=Bt:l[`${V}-${N}`]=typeof q=="number"?`${q}px`:q}):$(Bt)}),l}var aa=et("
          "),oa=et('
          ');function ia(o,t){de(t,!0);function l(r){return r!=="system"?r:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Ce:re}let S=O(t,"invert",3,!1),M=O(t,"position",3,"bottom-right"),L=O(t,"hotkey",19,()=>["altKey","KeyT"]),V=O(t,"expand",3,!1),Bt=O(t,"closeButton",3,!1),$=O(t,"offset",3,We),N=O(t,"mobileOffset",3,Ye),q=O(t,"theme",3,"light"),Lt=O(t,"richColors",3,!1),zt=O(t,"duration",3,$n),Ut=O(t,"visibleToasts",3,pn),Q=O(t,"toastOptions",19,()=>({})),bt=O(t,"dir",7,"auto"),kt=O(t,"gap",3,ea),nt=O(t,"containerAriaLabel",3,"Notifications"),ut=O(t,"closeButtonAriaLabel",3,"Close toast"),Vt=dn(t,["$$slots","$$events","$$legacy","invert","position","hotkey","expand","closeButton","offset","mobileOffset","theme","richColors","duration","visibleToasts","toastOptions","dir","gap","loadingIcon","successIcon","errorIcon","warningIcon","closeIcon","infoIcon","containerAriaLabel","class","closeButtonAriaLabel","onblur","onfocus","onmouseenter","onmousemove","onmouseleave","ondragend","onpointerdown","onpointerup"]);function fe(){if(bt()!=="auto")return bt();if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?($t(()=>bt(window.getComputedStyle(document.documentElement).direction??"ltr")),bt()):($t(()=>bt(r)),r)}const ve=b(()=>Array.from(new Set([M(),...Z.toasts.filter(r=>r.position).map(r=>r.position)].filter(Boolean))));let E=R(!1),ft=R(!1),At=R(Ue(l(q()))),Dt=R(void 0),vt=R(null),Ct=R(!1);const me=b(()=>L().join("+").replace(/Key/g,"").replace(/Digit/g,""));_t(()=>{Z.toasts.length<=1&&f(E,!1)}),_t(()=>{const r=Z.toasts.filter(u=>u.dismiss&&!u.delete);if(r.length>0){const u=Z.toasts.map(F=>r.find(st=>st.id===F.id)?{...F,delete:!0}:F);Z.toasts=u}}),_t(()=>()=>{e(Dt)&&e(vt)&&(e(vt).focus({preventScroll:!0}),f(vt,null),f(Ct,!1))}),pt(()=>(Z.reset(),le(document,"keydown",u=>{var wt,st;L().every(Ht=>u[Ht]||u.code===Ht)&&(f(E,!0),(wt=e(Dt))==null||wt.focus()),u.code==="Escape"&&(document.activeElement===e(Dt)||(st=e(Dt))!=null&&st.contains(document.activeElement))&&f(E,!1)}))),_t(()=>{if(q()!=="system"&&f(At,q()),typeof window<"u"){q()==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?f(At,Ce):f(At,re));const r=window.matchMedia("(prefers-color-scheme: dark)"),u=({matches:F})=>{f(At,F?Ce:re,!0)};"addEventListener"in r?r.addEventListener("change",u):r.addListener(u)}});const Et=r=>{var u;(u=t.onblur)==null||u.call(t,r),e(Ct)&&!r.currentTarget.contains(r.relatedTarget)&&(f(Ct,!1),e(vt)&&(e(vt).focus({preventScroll:!0}),f(vt,null)))},ae=r=>{var F;(F=t.onfocus)==null||F.call(t,r),!(r.target instanceof HTMLElement&&r.target.dataset.dismissable==="false")&&(e(Ct)||(f(Ct,!0),f(vt,r.relatedTarget,!0)))},ge=r=>{var F;(F=t.onpointerdown)==null||F.call(t,r),!(r.target instanceof HTMLElement&&r.target.dataset.dismissable==="false")&&f(ft,!0)},he=r=>{var u;(u=t.onmouseenter)==null||u.call(t,r),f(E,!0)},_e=r=>{var u;(u=t.onmouseleave)==null||u.call(t,r),e(ft)||f(E,!1)},Kt=r=>{var u;(u=t.onmousemove)==null||u.call(t,r),f(E,!0)},at=r=>{var u;(u=t.ondragend)==null||u.call(t,r),f(E,!1)},be=r=>{var u;(u=t.onpointerup)==null||u.call(t,r),f(ft,!1)};In.set(new ln);var Pt=oa();A(Pt,"tabindex",-1);var Wt=ot(Pt);{var oe=r=>{var u=g(),F=v(u);Pe(F,18,()=>e(ve),wt=>wt,(wt,st,Ht,Oe)=>{const ie=b(()=>{const[K,w]=st.split("-");return{y:K,x:w}}),mt=b(()=>na($(),N()));var yt=aa();un(yt,(K,w)=>({tabindex:-1,dir:K,class:t.class,"data-sonner-toaster":!0,"data-sonner-theme":e(At),"data-y-position":e(ie).y,"data-x-position":e(ie).x,style:t.style,onblur:Et,onfocus:ae,onmouseenter:he,onmousemove:Kt,onmouseleave:_e,ondragend:at,onpointerdown:ge,onpointerup:be,...Vt,[fn]:w}),[fe,()=>{var K;return{"--front-toast-height":`${(K=Z.heights[0])==null?void 0:K.height}px`,"--width":`${ta}px`,"--gap":`${kt()}px`,"--offset-top":e(mt)["--offset-top"],"--offset-right":e(mt)["--offset-right"],"--offset-bottom":e(mt)["--offset-bottom"],"--offset-left":e(mt)["--offset-left"],"--mobile-offset-top":e(mt)["--mobile-offset-top"],"--mobile-offset-right":e(mt)["--mobile-offset-right"],"--mobile-offset-bottom":e(mt)["--mobile-offset-bottom"],"--mobile-offset-left":e(mt)["--mobile-offset-left"]}}],void 0,"svelte-tppj9g"),Pe(yt,23,()=>Z.toasts.filter(K=>!K.position&&e(Ht)===0||K.position===st),K=>K.id,(K,w,se,we)=>{{const ye=m=>{var X=g(),rt=v(X);{var lt=a=>{var d=g(),D=v(d);it(D,()=>t.successIcon??ht),n(a,d)},y=a=>{var d=g(),D=v(d);{var k=i=>{Kn(i)};I(D,i=>{t.successIcon!==null&&i(k)},!0)}n(a,d)};I(rt,a=>{t.successIcon?a(lt):a(y,!1)})}n(m,X)},xe=m=>{var X=g(),rt=v(X);{var lt=a=>{var d=g(),D=v(d);it(D,()=>t.errorIcon??ht),n(a,d)},y=a=>{var d=g(),D=v(d);{var k=i=>{Yn(i)};I(D,i=>{t.errorIcon!==null&&i(k)},!0)}n(a,d)};I(rt,a=>{t.errorIcon?a(lt):a(y,!1)})}n(m,X)},Ie=m=>{var X=g(),rt=v(X);{var lt=a=>{var d=g(),D=v(d);it(D,()=>t.warningIcon??ht),n(a,d)},y=a=>{var d=g(),D=v(d);{var k=i=>{Zn(i)};I(D,i=>{t.warningIcon!==null&&i(k)},!0)}n(a,d)};I(rt,a=>{t.warningIcon?a(lt):a(y,!1)})}n(m,X)},Te=m=>{var X=g(),rt=v(X);{var lt=a=>{var d=g(),D=v(d);it(D,()=>t.infoIcon??ht),n(a,d)},y=a=>{var d=g(),D=v(d);{var k=i=>{qn(i)};I(D,i=>{t.infoIcon!==null&&i(k)},!0)}n(a,d)};I(rt,a=>{t.infoIcon?a(lt):a(y,!1)})}n(m,X)},s=m=>{var X=g(),rt=v(X);{var lt=a=>{var d=g(),D=v(d);it(D,()=>t.closeIcon??ht),n(a,d)},y=a=>{var d=g(),D=v(d);{var k=i=>{Jn(i)};I(D,i=>{t.closeIcon!==null&&i(k)},!0)}n(a,d)};I(rt,a=>{t.closeIcon?a(lt):a(y,!1)})}n(m,X)};let c=b(()=>{var m;return((m=Q())==null?void 0:m.duration)??zt()}),x=b(()=>{var m;return((m=Q())==null?void 0:m.class)??""}),T=b(()=>{var m;return((m=Q())==null?void 0:m.descriptionClass)||""}),B=b(()=>{var m;return((m=Q())==null?void 0:m.style)??""}),h=b(()=>Q().classes||{}),W=b(()=>Q().unstyled??!1),tt=b(()=>{var m;return((m=Q())==null?void 0:m.cancelButtonStyle)??""}),Y=b(()=>{var m;return((m=Q())==null?void 0:m.actionButtonStyle)??""}),j=b(()=>{var m;return((m=Q())==null?void 0:m.closeButtonAriaLabel)??ut()});Un(K,{get index(){return e(se)},get toast(){return e(w)},get defaultRichColors(){return Lt()},get duration(){return e(c)},get class(){return e(x)},get descriptionClass(){return e(T)},get invert(){return S()},get visibleToasts(){return Ut()},get closeButton(){return Bt()},get interacting(){return e(ft)},get position(){return st},get style(){return e(B)},get classes(){return e(h)},get unstyled(){return e(W)},get cancelButtonStyle(){return e(tt)},get actionButtonStyle(){return e(Y)},get closeButtonAriaLabel(){return e(j)},get expandByDefault(){return V()},get expanded(){return e(E)},get loadingIcon(){return t.loadingIcon},successIcon:ye,errorIcon:xe,warningIcon:Ie,infoIcon:Te,closeIcon:s,$$slots:{successIcon:!0,errorIcon:!0,warningIcon:!0,infoIcon:!0,closeIcon:!0}})}}),p(yt),Ke(yt,K=>f(Dt,K),()=>e(Dt)),J(()=>yt.dir=yt.dir),n(wt,yt)}),n(r,u)};I(Wt,r=>{Z.toasts.length>0&&r(oe)})}p(Pt),J(()=>A(Pt,"aria-label",`${nt()??""} ${e(me)??""}`)),n(o,Pt),ue()}var sa=et(' ',1);function Ta(o,t){de(t,!0),pt(()=>{cn.refresh();let $=setInterval(()=>{sn()},5e3);return()=>{clearTimeout($)}});const l="muted";pt(()=>{Fe.muted=localStorage.getItem(l)==="1"}),_t(()=>{{const $=Fe.muted;document.querySelectorAll("audio").forEach(N=>{N.muted=$});for(const N of Object.values(on))N.muted=$,$||(N.volume=.3);localStorage.setItem(l,Number($).toString())}}),pt(()=>{});var S=sa();Ve("beforeunload",en,()=>{rn()});var M=v(S),L=ot(M);p(M);var V=Mt(M,2);it(V,()=>t.children);var Bt=Mt(V,2);ia(Bt,{closeButton:!0,richColors:!0,position:"top-right",class:"!top-15",duration:3e3}),J(()=>Jt(L,`Version: ${nn}`)),n(o,S),ue()}export{Ta as component,Ia as universal}; diff --git a/frontend-backup/_app/immutable/nodes/0.D5b7oOw2.js b/frontend-backup/_app/immutable/nodes/0.D5b7oOw2.js new file mode 100644 index 0000000..b46ad0f --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/0.D5b7oOw2.js @@ -0,0 +1,1845 @@ +var He = (n) => { + throw TypeError(n); +}; +var Re = (n, t, i) => t.has(n) || He("Cannot " + i); +var gt = (n, t, i) => ( + Re(n, t, "read from private field"), i ? i.call(n) : t.get(n) + ), + qt = (n, t, i) => + t.has(n) + ? He("Cannot add the same private member more than once") + : t instanceof WeakSet + ? t.add(n) + : t.set(n, i), + Jt = (n, t, i, h) => ( + Re(n, t, "write to private field"), h ? h.call(n, i) : t.set(n, i), i + ); +import "../chunks/Ch2Ub8FX.js"; +import { o as pt, s as it, v as en } from "../chunks/DoL3ojdE.js"; +import { + p as de, + f as et, + d as ot, + b as a, + r as p, + t as Q, + c as ue, + bn as le, + aI as nn, + aH as Ne, + aJ as an, + au as H, + av as Ve, + y as _t, + aw as u, + g as e, + u as w, + z as $t, + s as At, + ax as We, + az as ht, + ay as g, + a as v, + at as on, + b4 as Fe, + v as ne, + bm as sn, +} from "../chunks/CMvZtFtm.js"; +import { s as Qt } from "../chunks/DVA6u9-7.js"; +import { + l as G, + m as xt, + n as rn, + o as ln, + u as Pe, + _ as cn, + p as dn, + a as un, + r as fn, + g as Ue, + q as vn, + P as mn, +} from "../chunks/BRM3t761.js"; +import { c as gn, A as hn, s as _n, a as bn } from "../chunks/C0GlPMrk.js"; +import "../chunks/CV9xcpLq.js"; +import { p as O, i as T, s as Ae, r as wn } from "../chunks/BF50aS-j.js"; +import { e as Le } from "../chunks/CXkjfmFU.js"; +import { + c as It, + a as Tt, + s as M, + e as Me, + b as yn, + S as xn, +} from "../chunks/C5yqZvKC.js"; +import { b as Ke } from "../chunks/0wx1llIh.js"; +import { c as Pt } from "../chunks/CdTXrPIO.js"; +import "../chunks/BOREeBzQ.js"; +(function () { + try { + var n = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + n.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var n = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new n.Error().stack; + t && + ((n._sentryDebugIds = n._sentryDebugIds || {}), + (n._sentryDebugIds[t] = "8646eece-6508-48d5-bb48-54d5c2d58aca"), + (n._sentryDebugIdIdentifier = + "sentry-dbid-8646eece-6508-48d5-bb48-54d5c2d58aca")); + })(); +} catch {} +const In = !0, + ka = Object.freeze( + Object.defineProperty( + { __proto__: null, prerender: In }, + Symbol.toStringTag, + { value: "Module" } + ) + ), + Tn = Array(12).fill(0); +var Sn = et('
          '), + Bn = et('
          '); +function En(n, t) { + de(t, !0); + var i = Bn(), + h = ot(i); + Le( + h, + 23, + () => Tn, + (D, k) => `spinner-bar-${k}`, + (D, k) => { + var V = Sn(); + a(D, V); + } + ), + p(h), + p(i), + Q( + (D) => { + Tt(i, 1, D), M(i, "data-visible", t.visible); + }, + [() => It(["sonner-loading-wrapper", t.class].filter(Boolean).join(" "))] + ), + a(n, i), + ue(); +} +const Dn = typeof window < "u" ? window : void 0; +function An(n) { + let t = n.activeElement; + for (; t != null && t.shadowRoot; ) { + const i = t.shadowRoot.activeElement; + if (i === t) break; + t = i; + } + return t; +} +var Ut, te; +class Mn { + constructor(t = {}) { + qt(this, Ut); + qt(this, te); + const { window: i = Dn, document: h = i == null ? void 0 : i.document } = t; + i !== void 0 && + (Jt(this, Ut, h), + Jt( + this, + te, + gn((D) => { + const k = le(i, "focusin", D), + V = le(i, "focusout", D); + return () => { + k(), V(); + }; + }) + )); + } + get current() { + var t; + return ( + (t = gt(this, te)) == null || t.call(this), + gt(this, Ut) ? An(gt(this, Ut)) : null + ); + } +} +(Ut = new WeakMap()), (te = new WeakMap()); +new Mn(); +var ee, St; +class Cn { + constructor(t) { + qt(this, ee); + qt(this, St); + Jt(this, ee, t), Jt(this, St, Symbol(t)); + } + get key() { + return gt(this, St); + } + exists() { + return nn(gt(this, St)); + } + get() { + const t = Ne(gt(this, St)); + if (t === void 0) throw new Error(`Context "${gt(this, ee)}" not found`); + return t; + } + getOr(t) { + const i = Ne(gt(this, St)); + return i === void 0 ? t : i; + } + set(t) { + return an(gt(this, St), t); + } +} +(ee = new WeakMap()), (St = new WeakMap()); +const Ln = new Cn(""); +function ce(n) { + return n.label !== void 0; +} +function Pn() { + let n = H(Ve(typeof document < "u" ? document.hidden : !1)); + return ( + _t(() => + le(document, "visibilitychange", () => { + u(n, document.hidden, !0); + }) + ), + { + get current() { + return e(n); + }, + } + ); +} +const je = 4e3, + On = 14, + kn = 45, + Hn = 200, + Rn = 0.05, + Nn = { + toast: "", + title: "", + description: "", + loader: "", + closeButton: "", + cancelButton: "", + actionButton: "", + action: "", + warning: "", + error: "", + success: "", + default: "", + info: "", + loading: "", + }; +function Fn(n) { + const [t, i] = n.split("-"), + h = []; + return t && h.push(t), i && h.push(i), h; +} +function ze(n) { + return 1 / (1.5 + Math.abs(n) / 20); +} +var Un = et("
          "), + jn = (n, t, i, h, D) => { + var k, V; + e(t) || + !e(i) || + (h(), (V = (k = D.toast).onDismiss) == null || V.call(k, D.toast)); + }, + zn = et(''), + Vn = et('
          '), + Wn = et('
          '), + Kn = (n, t, i, h) => { + var D, k; + ce(t.toast.cancel) && + e(i) && + ((k = (D = t.toast.cancel) == null ? void 0 : D.onClick) == null || + k.call(D, n), + h()); + }, + Yn = et(''), + Zn = (n, t, i) => { + var h; + ce(t.toast.action) && + ((h = t.toast.action) == null || h.onClick(n), + !n.defaultPrevented && i()); + }, + Gn = et(''), + Xn = et( + '
          ', + 1 + ), + qn = et('
        1. '); +function Jn(n, t) { + de(t, !0); + const i = (r) => { + var c = g(), + I = v(c); + { + var S = (_) => { + var K = Un(), + tt = ot(K); + it(tt, () => t.loadingIcon), + p(K), + Q( + (Y) => { + Tt(K, 1, Y), M(K, "data-visible", e(A) === "loading"); + }, + [ + () => { + var Y, U, m; + return It( + xt( + (Y = e(at)) == null ? void 0 : Y.loader, + (m = (U = t.toast) == null ? void 0 : U.classes) == null + ? void 0 + : m.loader, + "sonner-loader" + ) + ); + }, + ] + ), + a(_, K); + }, + B = (_) => { + { + let K = w(() => { + var Y, U; + return xt( + (Y = e(at)) == null ? void 0 : Y.loader, + (U = t.toast.classes) == null ? void 0 : U.loader + ); + }), + tt = w(() => e(A) === "loading"); + En(_, { + get class() { + return e(K); + }, + get visible() { + return e(tt); + }, + }); + } + }; + T(I, (_) => { + t.loadingIcon ? _(S) : _(B, !1); + }); + } + a(r, c); + }; + let h = O(t, "cancelButtonStyle", 3, ""), + D = O(t, "actionButtonStyle", 3, ""), + k = O(t, "descriptionClass", 3, ""), + V = O(t, "unstyled", 3, !1), + Bt = O(t, "defaultRichColors", 3, !1); + const $ = { ...Nn }; + let L = H(!1), + q = H(!1), + Ot = H(!1), + jt = H(!1), + zt = H(!1), + J = H(0), + bt = H(0), + kt = t.toast.duration || t.duration || je, + nt = H(void 0), + ut = H(null), + Vt = H(null); + const fe = w(() => t.index === 0), + ve = w(() => t.index + 1 <= t.visibleToasts), + A = w(() => t.toast.type), + ft = w(() => t.toast.dismissable !== !1), + Mt = w(() => t.toast.class || ""), + Et = w(() => t.toast.descriptionClass || ""), + vt = w(() => G.heights.findIndex((r) => r.toastId === t.toast.id) || 0), + Ct = w(() => t.toast.closeButton ?? t.closeButton), + me = w(() => t.toast.duration ?? t.duration ?? je); + let Dt = null; + const ae = w(() => t.position.split("-")), + ge = w(() => + G.heights.reduce((r, c, I) => (I >= e(vt) ? r : r + c.height), 0) + ), + he = Pn(), + _e = w(() => t.toast.invert || t.invert), + Wt = w(() => e(A) === "loading"), + at = w(() => ({ ...$, ...t.classes })), + be = w(() => t.toast.title), + Lt = w(() => t.toast.description); + let Kt = H(0), + oe = H(0); + const l = w(() => Math.round(e(vt) * On + e(ge))); + _t(() => { + e(be), e(Lt); + let r; + t.expanded || t.expandByDefault ? (r = 1) : (r = 1 - t.index * Rn); + const c = $t(() => e(nt)); + if (c === void 0) return; + c.style.setProperty("height", "auto"); + const I = c.offsetHeight, + S = c.getBoundingClientRect().height, + B = Math.round((S / r + Number.EPSILON) & 100) / 100; + c.style.removeProperty("height"); + let _; + Math.abs(B - I) < 1 ? (_ = B) : (_ = I), + u(bt, _, !0), + $t(() => { + G.setHeight({ toastId: t.toast.id, height: _ }); + }); + }); + function f() { + u(q, !0), + u(J, e(l), !0), + G.removeHeight(t.toast.id), + setTimeout(() => { + G.remove(t.toast.id); + }, Hn); + } + let F; + const wt = w( + () => + (t.toast.promise && e(A) === "loading") || + t.toast.duration === Number.POSITIVE_INFINITY + ); + function st() { + u(Kt, new Date().getTime(), !0), + (F = setTimeout(() => { + var r, c; + (c = (r = t.toast).onAutoClose) == null || c.call(r, t.toast), f(); + }, kt)); + } + function Ht() { + if (e(oe) < e(Kt)) { + const r = new Date().getTime() - e(Kt); + kt = kt - r; + } + u(oe, new Date().getTime(), !0); + } + _t(() => { + t.toast.updated && (clearTimeout(F), (kt = e(me)), st()); + }), + _t( + () => ( + e(wt) || (t.expanded || t.interacting || he.current ? Ht() : st()), + () => clearTimeout(F) + ) + ), + pt(() => { + var c; + u(L, !0); + const r = (c = e(nt)) == null ? void 0 : c.getBoundingClientRect().height; + return ( + u(bt, r, !0), + G.setHeight({ toastId: t.toast.id, height: r }), + () => { + G.removeHeight(t.toast.id); + } + ); + }), + _t(() => { + t.toast.delete && + $t(() => { + var r, c; + f(), (c = (r = t.toast).onDismiss) == null || c.call(r, t.toast); + }); + }); + const Oe = (r) => { + if (e(Wt)) return; + u(J, e(l), !0); + const c = r.target; + c.setPointerCapture(r.pointerId), + c.tagName !== "BUTTON" && + (u(Ot, !0), (Dt = { x: r.clientX, y: r.clientY })); + }, + ie = () => { + var _, K, tt, Y, U, m; + if (e(jt) || !e(ft)) return; + Dt = null; + const r = Number( + ((_ = e(nt)) == null + ? void 0 + : _.style.getPropertyValue("--swipe-amount-x").replace("px", "")) || + 0 + ), + c = Number( + ((K = e(nt)) == null + ? void 0 + : K.style.getPropertyValue("--swipe-amount-y").replace("px", "")) || + 0 + ), + I = new Date().getTime() - 0, + S = e(ut) === "x" ? r : c, + B = Math.abs(S) / I; + if (Math.abs(S) >= kn || B > 0.11) { + u(J, e(l), !0), + (Y = (tt = t.toast).onDismiss) == null || Y.call(tt, t.toast), + e(ut) === "x" + ? u(Vt, r > 0 ? "right" : "left", !0) + : u(Vt, c > 0 ? "down" : "up", !0), + f(), + u(jt, !0); + return; + } else + (U = e(nt)) == null || U.style.setProperty("--swipe-amount-x", "0px"), + (m = e(nt)) == null || m.style.setProperty("--swipe-amount-y", "0px"); + u(zt, !1), u(Ot, !1), u(ut, null); + }, + mt = (r) => { + var K, tt, Y; + if ( + !Dt || + !e(ft) || + (((K = window.getSelection()) == null ? void 0 : K.toString().length) ?? + -1) > 0 + ) + return; + const I = r.clientY - Dt.y, + S = r.clientX - Dt.x, + B = t.swipeDirections ?? Fn(t.position); + !e(ut) && + (Math.abs(S) > 1 || Math.abs(I) > 1) && + u(ut, Math.abs(S) > Math.abs(I) ? "x" : "y", !0); + let _ = { x: 0, y: 0 }; + if (e(ut) === "y") { + if (B.includes("top") || B.includes("bottom")) + if ((B.includes("top") && I < 0) || (B.includes("bottom") && I > 0)) + _.y = I; + else { + const U = I * ze(I); + _.y = Math.abs(U) < Math.abs(I) ? U : I; + } + } else if (e(ut) === "x" && (B.includes("left") || B.includes("right"))) + if ((B.includes("left") && S < 0) || (B.includes("right") && S > 0)) + _.x = S; + else { + const U = S * ze(S); + _.x = Math.abs(U) < Math.abs(S) ? U : S; + } + (Math.abs(_.x) > 0 || Math.abs(_.y) > 0) && u(zt, !0), + (tt = e(nt)) == null || + tt.style.setProperty("--swipe-amount-x", `${_.x}px`), + (Y = e(nt)) == null || + Y.style.setProperty("--swipe-amount-y", `${_.y}px`); + }, + yt = () => { + u(Ot, !1), u(ut, null), (Dt = null); + }, + W = w(() => + t.toast.icon + ? t.toast.icon + : e(A) === "success" + ? t.successIcon + : e(A) === "error" + ? t.errorIcon + : e(A) === "warning" + ? t.warningIcon + : e(A) === "info" + ? t.infoIcon + : e(A) === "loading" + ? t.loadingIcon + : null + ); + var y = qn(); + M(y, "tabindex", 0); + let se; + (y.__pointermove = mt), (y.__pointerup = ie), (y.__pointerdown = Oe); + var we = ot(y); + { + var ye = (r) => { + var c = zn(); + c.__click = [jn, Wt, ft, f, t]; + var I = ot(c); + it(I, () => t.closeIcon ?? ht), + p(c), + Q( + (S) => { + M(c, "aria-label", t.closeButtonAriaLabel), + M(c, "data-disabled", e(Wt)), + Tt(c, 1, S); + }, + [ + () => { + var S, B, _; + return It( + xt( + (S = e(at)) == null ? void 0 : S.closeButton, + (_ = (B = t.toast) == null ? void 0 : B.classes) == null + ? void 0 + : _.closeButton + ) + ); + }, + ] + ), + a(r, c); + }; + T(we, (r) => { + e(Ct) && + !t.toast.component && + e(A) !== "loading" && + t.closeIcon !== null && + r(ye); + }); + } + var xe = At(we, 2); + { + var Ie = (r) => { + const c = w(() => t.toast.component); + var I = g(), + S = v(I); + Pt( + S, + () => e(c), + (B, _) => { + _( + B, + Ae(() => t.toast.componentProps, { closeToast: f }) + ); + } + ), + a(r, I); + }, + Te = (r) => { + var c = Xn(), + I = v(c); + { + var S = (x) => { + var o = Vn(), + d = ot(o); + { + var E = (b) => { + var C = g(), + j = v(C); + { + var N = (Z) => { + var z = g(), + ct = v(z); + Pt( + ct, + () => t.toast.icon, + (dt, Yt) => { + Yt(dt, {}); + } + ), + a(Z, z); + }, + P = (Z) => { + i(Z); + }; + T(j, (Z) => { + t.toast.icon ? Z(N) : Z(P, !1); + }); + } + a(b, C); + }; + T(d, (b) => { + (t.toast.promise || e(A) === "loading") && b(E); + }); + } + var R = At(d, 2); + { + var s = (b) => { + var C = g(), + j = v(C); + { + var N = (Z) => { + var z = g(), + ct = v(z); + Pt( + ct, + () => t.toast.icon, + (dt, Yt) => { + Yt(dt, {}); + } + ), + a(Z, z); + }, + P = (Z) => { + var z = g(), + ct = v(z); + { + var dt = (Rt) => { + var Zt = g(), + Se = v(Zt); + it(Se, () => t.successIcon ?? ht), a(Rt, Zt); + }, + Yt = (Rt) => { + var Zt = g(), + Se = v(Zt); + { + var qe = (Nt) => { + var Gt = g(), + Be = v(Gt); + it(Be, () => t.errorIcon ?? ht), a(Nt, Gt); + }, + Je = (Nt) => { + var Gt = g(), + Be = v(Gt); + { + var Qe = (Ft) => { + var Xt = g(), + Ee = v(Xt); + it(Ee, () => t.warningIcon ?? ht), + a(Ft, Xt); + }, + pe = (Ft) => { + var Xt = g(), + Ee = v(Xt); + { + var $e = (De) => { + var ke = g(), + tn = v(ke); + it(tn, () => t.infoIcon ?? ht), + a(De, ke); + }; + T( + Ee, + (De) => { + e(A) === "info" && De($e); + }, + !0 + ); + } + a(Ft, Xt); + }; + T( + Be, + (Ft) => { + e(A) === "warning" + ? Ft(Qe) + : Ft(pe, !1); + }, + !0 + ); + } + a(Nt, Gt); + }; + T( + Se, + (Nt) => { + e(A) === "error" ? Nt(qe) : Nt(Je, !1); + }, + !0 + ); + } + a(Rt, Zt); + }; + T( + ct, + (Rt) => { + e(A) === "success" ? Rt(dt) : Rt(Yt, !1); + }, + !0 + ); + } + a(Z, z); + }; + T(j, (Z) => { + t.toast.icon ? Z(N) : Z(P, !1); + }); + } + a(b, C); + }; + T(R, (b) => { + t.toast.type !== "loading" && b(s); + }); + } + p(o), + Q( + (b) => Tt(o, 1, b), + [ + () => { + var b, C, j; + return It( + xt( + (b = e(at)) == null ? void 0 : b.icon, + (j = (C = t.toast) == null ? void 0 : C.classes) == null + ? void 0 + : j.icon + ) + ); + }, + ] + ), + a(x, o); + }; + T(I, (x) => { + (e(A) || t.toast.icon || t.toast.promise) && + t.toast.icon !== null && + (e(W) !== null || t.toast.icon) && + x(S); + }); + } + var B = At(I, 2), + _ = ot(B), + K = ot(_); + { + var tt = (x) => { + var o = g(), + d = v(o); + { + var E = (s) => { + const b = w(() => t.toast.title); + var C = g(), + j = v(C); + Pt( + j, + () => e(b), + (N, P) => { + P( + N, + Ae(() => t.toast.componentProps) + ); + } + ), + a(s, C); + }, + R = (s) => { + var b = Fe(); + Q(() => Qt(b, t.toast.title)), a(s, b); + }; + T(d, (s) => { + typeof t.toast.title != "string" ? s(E) : s(R, !1); + }); + } + a(x, o); + }; + T(K, (x) => { + t.toast.title && x(tt); + }); + } + p(_); + var Y = At(_, 2); + { + var U = (x) => { + var o = Wn(), + d = ot(o); + { + var E = (s) => { + const b = w(() => t.toast.description); + var C = g(), + j = v(C); + Pt( + j, + () => e(b), + (N, P) => { + P( + N, + Ae(() => t.toast.componentProps) + ); + } + ), + a(s, C); + }, + R = (s) => { + var b = Fe(); + Q(() => Qt(b, t.toast.description)), a(s, b); + }; + T(d, (s) => { + typeof t.toast.description != "string" ? s(E) : s(R, !1); + }); + } + p(o), + Q( + (s) => Tt(o, 1, s), + [ + () => { + var s, b; + return It( + xt( + k(), + e(Et), + (s = e(at)) == null ? void 0 : s.description, + (b = t.toast.classes) == null ? void 0 : b.description + ) + ); + }, + ] + ), + a(x, o); + }; + T(Y, (x) => { + t.toast.description && x(U); + }); + } + p(B); + var m = At(B, 2); + { + var X = (x) => { + var o = g(), + d = v(o); + { + var E = (s) => { + var b = g(), + C = v(b); + Pt( + C, + () => t.toast.cancel, + (j, N) => { + N(j, {}); + } + ), + a(s, b); + }, + R = (s) => { + var b = g(), + C = v(b); + { + var j = (N) => { + var P = Yn(); + P.__click = [Kn, t, ft, f]; + var Z = ot(P, !0); + p(P), + Q( + (z) => { + Me(P, t.toast.cancelButtonStyle ?? h()), + Tt(P, 1, z), + Qt(Z, t.toast.cancel.label); + }, + [ + () => { + var z, ct, dt; + return It( + xt( + (z = e(at)) == null ? void 0 : z.cancelButton, + (dt = + (ct = t.toast) == null + ? void 0 + : ct.classes) == null + ? void 0 + : dt.cancelButton + ) + ); + }, + ] + ), + a(N, P); + }; + T( + C, + (N) => { + ce(t.toast.cancel) && N(j); + }, + !0 + ); + } + a(s, b); + }; + T(d, (s) => { + typeof t.toast.cancel == "function" ? s(E) : s(R, !1); + }); + } + a(x, o); + }; + T(m, (x) => { + t.toast.cancel && x(X); + }); + } + var rt = At(m, 2); + { + var lt = (x) => { + var o = g(), + d = v(o); + { + var E = (s) => { + var b = g(), + C = v(b); + Pt( + C, + () => t.toast.action, + (j, N) => { + N(j, {}); + } + ), + a(s, b); + }, + R = (s) => { + var b = g(), + C = v(b); + { + var j = (N) => { + var P = Gn(); + P.__click = [Zn, t, f]; + var Z = ot(P, !0); + p(P), + Q( + (z) => { + Me(P, t.toast.actionButtonStyle ?? D()), + Tt(P, 1, z), + Qt(Z, t.toast.action.label); + }, + [ + () => { + var z, ct, dt; + return It( + xt( + (z = e(at)) == null ? void 0 : z.actionButton, + (dt = + (ct = t.toast) == null + ? void 0 + : ct.classes) == null + ? void 0 + : dt.actionButton + ) + ); + }, + ] + ), + a(N, P); + }; + T( + C, + (N) => { + ce(t.toast.action) && N(j); + }, + !0 + ); + } + a(s, b); + }; + T(d, (s) => { + typeof t.toast.action == "function" ? s(E) : s(R, !1); + }); + } + a(x, o); + }; + T(rt, (x) => { + t.toast.action && x(lt); + }); + } + Q( + (x) => Tt(_, 1, x), + [ + () => { + var x, o, d; + return It( + xt( + (x = e(at)) == null ? void 0 : x.title, + (d = (o = t.toast) == null ? void 0 : o.classes) == null + ? void 0 + : d.title + ) + ); + }, + ] + ), + a(r, c); + }; + T(xe, (r) => { + t.toast.component ? r(Ie) : r(Te, !1); + }); + } + p(y), + Ke( + y, + (r) => u(nt, r), + () => e(nt) + ), + Q( + (r, c, I, S) => { + Tt(y, 1, r), + M(y, "data-rich-colors", t.toast.richColors ?? Bt()), + M(y, "data-styled", !(t.toast.component || t.toast.unstyled || V())), + M(y, "data-mounted", e(L)), + M(y, "data-promise", c), + M(y, "data-swiped", e(zt)), + M(y, "data-removed", e(q)), + M(y, "data-visible", e(ve)), + M(y, "data-y-position", e(ae)[0]), + M(y, "data-x-position", e(ae)[1]), + M(y, "data-index", t.index), + M(y, "data-front", e(fe)), + M(y, "data-swiping", e(Ot)), + M(y, "data-dismissable", e(ft)), + M(y, "data-type", e(A)), + M(y, "data-invert", e(_e)), + M(y, "data-swipe-out", e(jt)), + M(y, "data-swipe-direction", e(Vt)), + M(y, "data-expanded", I), + (se = Me(y, `${t.style} ${t.toast.style}`, se, S)); + }, + [ + () => { + var r, c, I, S, B, _; + return It( + xt( + t.class, + e(Mt), + (r = e(at)) == null ? void 0 : r.toast, + (I = (c = t.toast) == null ? void 0 : c.classes) == null + ? void 0 + : I.toast, + (S = e(at)) == null ? void 0 : S[e(A)], + (_ = (B = t.toast) == null ? void 0 : B.classes) == null + ? void 0 + : _[e(A)] + ) + ); + }, + () => !!t.toast.promise, + () => !!(t.expanded || (t.expandByDefault && e(L))), + () => ({ + "--index": t.index, + "--toasts-before": t.index, + "--z-index": G.toasts.length - t.index, + "--offset": `${e(q) ? e(J) : e(l)}px`, + "--initial-height": t.expandByDefault ? "auto" : `${e(bt)}px`, + }), + ] + ), + We("dragend", y, yt), + a(n, y), + ue(); +} +on(["pointermove", "pointerup", "pointerdown", "click"]); +var Qn = ne( + '' +); +function pn(n) { + var t = Qn(); + a(n, t); +} +var $n = ne( + '' +); +function ta(n) { + var t = $n(); + a(n, t); +} +var ea = ne( + '' +); +function na(n) { + var t = ea(); + a(n, t); +} +var aa = ne( + '' +); +function oa(n) { + var t = aa(); + a(n, t); +} +var ia = ne( + '' +); +function sa(n) { + var t = ia(); + a(n, t); +} +const ra = 3, + Ye = "24px", + Ze = "16px", + la = 4e3, + ca = 356, + da = 14, + Ce = "dark", + re = "light"; +function ua(n, t) { + const i = {}; + return ( + [n, t].forEach((h, D) => { + const k = D === 1, + V = k ? "--mobile-offset" : "--offset", + Bt = k ? Ze : Ye; + function $(L) { + ["top", "right", "bottom", "left"].forEach((q) => { + i[`${V}-${q}`] = typeof L == "number" ? `${L}px` : L; + }); + } + typeof h == "number" || typeof h == "string" + ? $(h) + : typeof h == "object" + ? ["top", "right", "bottom", "left"].forEach((L) => { + const q = h[L]; + q === void 0 + ? (i[`${V}-${L}`] = Bt) + : (i[`${V}-${L}`] = typeof q == "number" ? `${q}px` : q); + }) + : $(Bt); + }), + i + ); +} +var fa = et("
            "), + va = et( + '
            ' + ); +function ma(n, t) { + de(t, !0); + function i(l) { + return l !== "system" + ? l + : typeof window < "u" && + window.matchMedia && + window.matchMedia("(prefers-color-scheme: dark)").matches + ? Ce + : re; + } + let h = O(t, "invert", 3, !1), + D = O(t, "position", 3, "bottom-right"), + k = O(t, "hotkey", 19, () => ["altKey", "KeyT"]), + V = O(t, "expand", 3, !1), + Bt = O(t, "closeButton", 3, !1), + $ = O(t, "offset", 3, Ye), + L = O(t, "mobileOffset", 3, Ze), + q = O(t, "theme", 3, "light"), + Ot = O(t, "richColors", 3, !1), + jt = O(t, "duration", 3, la), + zt = O(t, "visibleToasts", 3, ra), + J = O(t, "toastOptions", 19, () => ({})), + bt = O(t, "dir", 7, "auto"), + kt = O(t, "gap", 3, da), + nt = O(t, "containerAriaLabel", 3, "Notifications"), + ut = O(t, "closeButtonAriaLabel", 3, "Close toast"), + Vt = wn(t, [ + "$$slots", + "$$events", + "$$legacy", + "invert", + "position", + "hotkey", + "expand", + "closeButton", + "offset", + "mobileOffset", + "theme", + "richColors", + "duration", + "visibleToasts", + "toastOptions", + "dir", + "gap", + "loadingIcon", + "successIcon", + "errorIcon", + "warningIcon", + "closeIcon", + "infoIcon", + "containerAriaLabel", + "class", + "closeButtonAriaLabel", + "onblur", + "onfocus", + "onmouseenter", + "onmousemove", + "onmouseleave", + "ondragend", + "onpointerdown", + "onpointerup", + ]); + function fe() { + if (bt() !== "auto") return bt(); + if (typeof window > "u" || typeof document > "u") return "ltr"; + const l = document.documentElement.getAttribute("dir"); + return l === "auto" || !l + ? ($t(() => + bt( + window.getComputedStyle(document.documentElement).direction ?? "ltr" + ) + ), + bt()) + : ($t(() => bt(l)), l); + } + const ve = w(() => + Array.from( + new Set( + [ + D(), + ...G.toasts.filter((l) => l.position).map((l) => l.position), + ].filter(Boolean) + ) + ) + ); + let A = H(!1), + ft = H(!1), + Mt = H(Ve(i(q()))), + Et = H(void 0), + vt = H(null), + Ct = H(!1); + const me = w(() => k().join("+").replace(/Key/g, "").replace(/Digit/g, "")); + _t(() => { + G.toasts.length <= 1 && u(A, !1); + }), + _t(() => { + const l = G.toasts.filter((f) => f.dismiss && !f.delete); + if (l.length > 0) { + const f = G.toasts.map((F) => + l.find((st) => st.id === F.id) ? { ...F, delete: !0 } : F + ); + G.toasts = f; + } + }), + _t(() => () => { + e(Et) && + e(vt) && + (e(vt).focus({ preventScroll: !0 }), u(vt, null), u(Ct, !1)); + }), + pt( + () => ( + G.reset(), + le(document, "keydown", (f) => { + var wt, st; + k().every((Ht) => f[Ht] || f.code === Ht) && + (u(A, !0), (wt = e(Et)) == null || wt.focus()), + f.code === "Escape" && + (document.activeElement === e(Et) || + ((st = e(Et)) != null && + st.contains(document.activeElement))) && + u(A, !1); + }) + ) + ), + _t(() => { + if ((q() !== "system" && u(Mt, q()), typeof window < "u")) { + q() === "system" && + (window.matchMedia && + window.matchMedia("(prefers-color-scheme: dark)").matches + ? u(Mt, Ce) + : u(Mt, re)); + const l = window.matchMedia("(prefers-color-scheme: dark)"), + f = ({ matches: F }) => { + u(Mt, F ? Ce : re, !0); + }; + "addEventListener" in l + ? l.addEventListener("change", f) + : l.addListener(f); + } + }); + const Dt = (l) => { + var f; + (f = t.onblur) == null || f.call(t, l), + e(Ct) && + !l.currentTarget.contains(l.relatedTarget) && + (u(Ct, !1), + e(vt) && (e(vt).focus({ preventScroll: !0 }), u(vt, null))); + }, + ae = (l) => { + var F; + (F = t.onfocus) == null || F.call(t, l), + !( + l.target instanceof HTMLElement && + l.target.dataset.dismissable === "false" + ) && + (e(Ct) || (u(Ct, !0), u(vt, l.relatedTarget, !0))); + }, + ge = (l) => { + var F; + (F = t.onpointerdown) == null || F.call(t, l), + !( + l.target instanceof HTMLElement && + l.target.dataset.dismissable === "false" + ) && u(ft, !0); + }, + he = (l) => { + var f; + (f = t.onmouseenter) == null || f.call(t, l), u(A, !0); + }, + _e = (l) => { + var f; + (f = t.onmouseleave) == null || f.call(t, l), e(ft) || u(A, !1); + }, + Wt = (l) => { + var f; + (f = t.onmousemove) == null || f.call(t, l), u(A, !0); + }, + at = (l) => { + var f; + (f = t.ondragend) == null || f.call(t, l), u(A, !1); + }, + be = (l) => { + var f; + (f = t.onpointerup) == null || f.call(t, l), u(ft, !1); + }; + Ln.set(new rn()); + var Lt = va(); + M(Lt, "tabindex", -1); + var Kt = ot(Lt); + { + var oe = (l) => { + var f = g(), + F = v(f); + Le( + F, + 18, + () => e(ve), + (wt) => wt, + (wt, st, Ht, Oe) => { + const ie = w(() => { + const [W, y] = st.split("-"); + return { y: W, x: y }; + }), + mt = w(() => ua($(), L())); + var yt = fa(); + yn( + yt, + (W, y) => ({ + tabindex: -1, + dir: W, + class: t.class, + "data-sonner-toaster": !0, + "data-sonner-theme": e(Mt), + "data-y-position": e(ie).y, + "data-x-position": e(ie).x, + style: t.style, + onblur: Dt, + onfocus: ae, + onmouseenter: he, + onmousemove: Wt, + onmouseleave: _e, + ondragend: at, + onpointerdown: ge, + onpointerup: be, + ...Vt, + [xn]: y, + }), + [ + fe, + () => { + var W; + return { + "--front-toast-height": `${ + (W = G.heights[0]) == null ? void 0 : W.height + }px`, + "--width": `${ca}px`, + "--gap": `${kt()}px`, + "--offset-top": e(mt)["--offset-top"], + "--offset-right": e(mt)["--offset-right"], + "--offset-bottom": e(mt)["--offset-bottom"], + "--offset-left": e(mt)["--offset-left"], + "--mobile-offset-top": e(mt)["--mobile-offset-top"], + "--mobile-offset-right": e(mt)["--mobile-offset-right"], + "--mobile-offset-bottom": e(mt)["--mobile-offset-bottom"], + "--mobile-offset-left": e(mt)["--mobile-offset-left"], + }; + }, + ], + void 0, + "svelte-tppj9g" + ), + Le( + yt, + 23, + () => + G.toasts.filter( + (W) => (!W.position && e(Ht) === 0) || W.position === st + ), + (W) => W.id, + (W, y, se, we) => { + { + const ye = (m) => { + var X = g(), + rt = v(X); + { + var lt = (o) => { + var d = g(), + E = v(d); + it(E, () => t.successIcon ?? ht), a(o, d); + }, + x = (o) => { + var d = g(), + E = v(d); + { + var R = (s) => { + pn(s); + }; + T( + E, + (s) => { + t.successIcon !== null && s(R); + }, + !0 + ); + } + a(o, d); + }; + T(rt, (o) => { + t.successIcon ? o(lt) : o(x, !1); + }); + } + a(m, X); + }, + xe = (m) => { + var X = g(), + rt = v(X); + { + var lt = (o) => { + var d = g(), + E = v(d); + it(E, () => t.errorIcon ?? ht), a(o, d); + }, + x = (o) => { + var d = g(), + E = v(d); + { + var R = (s) => { + ta(s); + }; + T( + E, + (s) => { + t.errorIcon !== null && s(R); + }, + !0 + ); + } + a(o, d); + }; + T(rt, (o) => { + t.errorIcon ? o(lt) : o(x, !1); + }); + } + a(m, X); + }, + Ie = (m) => { + var X = g(), + rt = v(X); + { + var lt = (o) => { + var d = g(), + E = v(d); + it(E, () => t.warningIcon ?? ht), a(o, d); + }, + x = (o) => { + var d = g(), + E = v(d); + { + var R = (s) => { + na(s); + }; + T( + E, + (s) => { + t.warningIcon !== null && s(R); + }, + !0 + ); + } + a(o, d); + }; + T(rt, (o) => { + t.warningIcon ? o(lt) : o(x, !1); + }); + } + a(m, X); + }, + Te = (m) => { + var X = g(), + rt = v(X); + { + var lt = (o) => { + var d = g(), + E = v(d); + it(E, () => t.infoIcon ?? ht), a(o, d); + }, + x = (o) => { + var d = g(), + E = v(d); + { + var R = (s) => { + oa(s); + }; + T( + E, + (s) => { + t.infoIcon !== null && s(R); + }, + !0 + ); + } + a(o, d); + }; + T(rt, (o) => { + t.infoIcon ? o(lt) : o(x, !1); + }); + } + a(m, X); + }, + r = (m) => { + var X = g(), + rt = v(X); + { + var lt = (o) => { + var d = g(), + E = v(d); + it(E, () => t.closeIcon ?? ht), a(o, d); + }, + x = (o) => { + var d = g(), + E = v(d); + { + var R = (s) => { + sa(s); + }; + T( + E, + (s) => { + t.closeIcon !== null && s(R); + }, + !0 + ); + } + a(o, d); + }; + T(rt, (o) => { + t.closeIcon ? o(lt) : o(x, !1); + }); + } + a(m, X); + }; + let c = w(() => { + var m; + return ((m = J()) == null ? void 0 : m.duration) ?? jt(); + }), + I = w(() => { + var m; + return ((m = J()) == null ? void 0 : m.class) ?? ""; + }), + S = w(() => { + var m; + return ( + ((m = J()) == null ? void 0 : m.descriptionClass) || "" + ); + }), + B = w(() => { + var m; + return ((m = J()) == null ? void 0 : m.style) ?? ""; + }), + _ = w(() => J().classes || {}), + K = w(() => J().unstyled ?? !1), + tt = w(() => { + var m; + return ( + ((m = J()) == null ? void 0 : m.cancelButtonStyle) ?? "" + ); + }), + Y = w(() => { + var m; + return ( + ((m = J()) == null ? void 0 : m.actionButtonStyle) ?? "" + ); + }), + U = w(() => { + var m; + return ( + ((m = J()) == null ? void 0 : m.closeButtonAriaLabel) ?? + ut() + ); + }); + Jn(W, { + get index() { + return e(se); + }, + get toast() { + return e(y); + }, + get defaultRichColors() { + return Ot(); + }, + get duration() { + return e(c); + }, + get class() { + return e(I); + }, + get descriptionClass() { + return e(S); + }, + get invert() { + return h(); + }, + get visibleToasts() { + return zt(); + }, + get closeButton() { + return Bt(); + }, + get interacting() { + return e(ft); + }, + get position() { + return st; + }, + get style() { + return e(B); + }, + get classes() { + return e(_); + }, + get unstyled() { + return e(K); + }, + get cancelButtonStyle() { + return e(tt); + }, + get actionButtonStyle() { + return e(Y); + }, + get closeButtonAriaLabel() { + return e(U); + }, + get expandByDefault() { + return V(); + }, + get expanded() { + return e(A); + }, + get loadingIcon() { + return t.loadingIcon; + }, + successIcon: ye, + errorIcon: xe, + warningIcon: Ie, + infoIcon: Te, + closeIcon: r, + $$slots: { + successIcon: !0, + errorIcon: !0, + warningIcon: !0, + infoIcon: !0, + closeIcon: !0, + }, + }); + } + } + ), + p(yt), + Ke( + yt, + (W) => u(Et, W), + () => e(Et) + ), + Q(() => (yt.dir = yt.dir)), + a(wt, yt); + } + ), + a(l, f); + }; + T(Kt, (l) => { + G.toasts.length > 0 && l(oe); + }); + } + p(Lt), + Q(() => M(Lt, "aria-label", `${nt() ?? ""} ${e(me) ?? ""}`)), + a(n, Lt), + ue(); +} +const ga = + "" + new URL("../assets/pawtect_wasm_bg.BvxCe1S1.wasm", import.meta.url).href; +let Ge = H(!1); +function ha() { + const n = ln("2025-09_pawtect"); + if (!n) throw new Error("pawtect experiment not found on load"); + n.variant !== "disabled" && (e(Ge) || (Pe.data && cn(ga).then(_a))); +} +function _a() { + dn(Pe.data.id), un.postPawtectLoad(); + const n = fetch; + Object.assign(window, { + fetch: Xe((t, i) => { + let h = null; + return ( + t instanceof Request ? (h = t.url) : (h = t), + h.startsWith("/") || fn(h), + n.call(window, t, i) + ); + }), + }), + u(Ge, !0); +} +function Xe(n) { + return n.bind().bind(); +} +function ba(n, t, i) { + const h = { + [n.name](...D) { + return i(...D), t(...D); + }, + }[n.name]; + return Xe(h); +} +var wa = et(' ', 1); +function Ha(n, t) { + de(t, !0), + pt(() => { + vn(), + Pe.refresh().then((L) => { + L && ha(); + }), + Object.assign(window, { + eval: ba( + eval, + function () {}, + async () => { + await fetch(mn + "/me", { + credentials: "include", + headers: { Authorization: "Bearer " + crypto.randomUUID() }, + }); + } + ), + }); + let $ = setInterval(() => { + _n(); + }, 5e3); + return () => { + clearTimeout($); + }; + }); + const i = "muted"; + pt(() => { + Ue.muted = localStorage.getItem(i) === "1"; + }), + _t(() => { + { + const $ = Ue.muted; + document.querySelectorAll("audio").forEach((L) => { + L.muted = $; + }); + for (const L of Object.values(hn)) (L.muted = $), $ || (L.volume = 0.3); + localStorage.setItem(i, Number($).toString()); + } + }), + pt(() => {}); + var h = wa(); + We("beforeunload", sn, () => { + bn(); + }); + var D = v(h), + k = ot(D); + p(D); + var V = At(D, 2); + it(V, () => t.children); + var Bt = At(V, 2); + ma(Bt, { + closeButton: !0, + richColors: !0, + position: "top-right", + class: "!top-15", + duration: 3e3, + }), + Q(() => Qt(k, `Version: ${en}`)), + a(n, h), + ue(); +} +export { Ha as component, ka as universal }; diff --git a/frontend-backup/_app/immutable/nodes/0.DIpSCqpd.js b/frontend-backup/_app/immutable/nodes/0.DIpSCqpd.js deleted file mode 100644 index ed67095..0000000 --- a/frontend-backup/_app/immutable/nodes/0.DIpSCqpd.js +++ /dev/null @@ -1 +0,0 @@ -var He=n=>{throw TypeError(n)};var Re=(n,t,i)=>t.has(n)||He("Cannot "+i);var gt=(n,t,i)=>(Re(n,t,"read from private field"),i?i.call(n):t.get(n)),qt=(n,t,i)=>t.has(n)?He("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,i),Jt=(n,t,i,h)=>(Re(n,t,"write to private field"),h?h.call(n,i):t.set(n,i),i);import"../chunks/B2cHk4HI.js";import{o as pt,s as it,v as en}from"../chunks/4WsUhDWi.js";import{p as de,f as et,d as ot,b as a,r as p,t as Q,c as ue,bn as le,aI as nn,aH as Ne,aJ as an,au as H,av as Ve,y as _t,aw as u,g as e,u as w,z as $t,s as At,ax as We,az as ht,ay as g,a as v,at as on,b4 as Fe,v as ne,bm as sn}from"../chunks/BDALf20I.js";import{s as Qt}from"../chunks/4k6DpCgf.js";import{l as G,m as xt,n as rn,o as ln,u as Pe,_ as cn,p as dn,a as un,r as fn,g as Ue,q as vn,P as mn}from"../chunks/DffDvEhl.js";import{c as gn,A as hn,s as _n,a as bn}from"../chunks/BvbG2Lay.js";import"../chunks/DklPLC_x.js";import{p as O,i as T,s as Ae,r as wn}from"../chunks/Bke_korE.js";import{e as Le}from"../chunks/CZW2bcQi.js";import{c as It,a as Tt,s as M,e as Me,b as yn,S as xn}from"../chunks/BNZUboE0.js";import{b as Ke}from"../chunks/BrZ10JY-.js";import{c as Pt}from"../chunks/ChY_8ULT.js";import"../chunks/cUtKXcx3.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};n.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new n.Error().stack;t&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[t]="7df7b08c-d83d-4377-adc3-d16a109e44ac",n._sentryDebugIdIdentifier="sentry-dbid-7df7b08c-d83d-4377-adc3-d16a109e44ac")})()}catch{}const In=!0,ka=Object.freeze(Object.defineProperty({__proto__:null,prerender:In},Symbol.toStringTag,{value:"Module"})),Tn=Array(12).fill(0);var Sn=et('
            '),Bn=et('
            ');function En(n,t){de(t,!0);var i=Bn(),h=ot(i);Le(h,23,()=>Tn,(D,k)=>`spinner-bar-${k}`,(D,k)=>{var V=Sn();a(D,V)}),p(h),p(i),Q(D=>{Tt(i,1,D),M(i,"data-visible",t.visible)},[()=>It(["sonner-loading-wrapper",t.class].filter(Boolean).join(" "))]),a(n,i),ue()}const Dn=typeof window<"u"?window:void 0;function An(n){let t=n.activeElement;for(;t!=null&&t.shadowRoot;){const i=t.shadowRoot.activeElement;if(i===t)break;t=i}return t}var Ut,te;class Mn{constructor(t={}){qt(this,Ut);qt(this,te);const{window:i=Dn,document:h=i==null?void 0:i.document}=t;i!==void 0&&(Jt(this,Ut,h),Jt(this,te,gn(D=>{const k=le(i,"focusin",D),V=le(i,"focusout",D);return()=>{k(),V()}})))}get current(){var t;return(t=gt(this,te))==null||t.call(this),gt(this,Ut)?An(gt(this,Ut)):null}}Ut=new WeakMap,te=new WeakMap;new Mn;var ee,St;class Cn{constructor(t){qt(this,ee);qt(this,St);Jt(this,ee,t),Jt(this,St,Symbol(t))}get key(){return gt(this,St)}exists(){return nn(gt(this,St))}get(){const t=Ne(gt(this,St));if(t===void 0)throw new Error(`Context "${gt(this,ee)}" not found`);return t}getOr(t){const i=Ne(gt(this,St));return i===void 0?t:i}set(t){return an(gt(this,St),t)}}ee=new WeakMap,St=new WeakMap;const Ln=new Cn("");function ce(n){return n.label!==void 0}function Pn(){let n=H(Ve(typeof document<"u"?document.hidden:!1));return _t(()=>le(document,"visibilitychange",()=>{u(n,document.hidden,!0)})),{get current(){return e(n)}}}const je=4e3,On=14,kn=45,Hn=200,Rn=.05,Nn={toast:"",title:"",description:"",loader:"",closeButton:"",cancelButton:"",actionButton:"",action:"",warning:"",error:"",success:"",default:"",info:"",loading:""};function Fn(n){const[t,i]=n.split("-"),h=[];return t&&h.push(t),i&&h.push(i),h}function ze(n){return 1/(1.5+Math.abs(n)/20)}var Un=et("
            "),jn=(n,t,i,h,D)=>{var k,V;e(t)||!e(i)||(h(),(V=(k=D.toast).onDismiss)==null||V.call(k,D.toast))},zn=et(''),Vn=et('
            '),Wn=et('
            '),Kn=(n,t,i,h)=>{var D,k;ce(t.toast.cancel)&&e(i)&&((k=(D=t.toast.cancel)==null?void 0:D.onClick)==null||k.call(D,n),h())},Yn=et(''),Zn=(n,t,i)=>{var h;ce(t.toast.action)&&((h=t.toast.action)==null||h.onClick(n),!n.defaultPrevented&&i())},Gn=et(''),Xn=et('
            ',1),qn=et('
          1. ');function Jn(n,t){de(t,!0);const i=r=>{var c=g(),I=v(c);{var S=_=>{var K=Un(),tt=ot(K);it(tt,()=>t.loadingIcon),p(K),Q(Y=>{Tt(K,1,Y),M(K,"data-visible",e(A)==="loading")},[()=>{var Y,U,m;return It(xt((Y=e(at))==null?void 0:Y.loader,(m=(U=t.toast)==null?void 0:U.classes)==null?void 0:m.loader,"sonner-loader"))}]),a(_,K)},B=_=>{{let K=w(()=>{var Y,U;return xt((Y=e(at))==null?void 0:Y.loader,(U=t.toast.classes)==null?void 0:U.loader)}),tt=w(()=>e(A)==="loading");En(_,{get class(){return e(K)},get visible(){return e(tt)}})}};T(I,_=>{t.loadingIcon?_(S):_(B,!1)})}a(r,c)};let h=O(t,"cancelButtonStyle",3,""),D=O(t,"actionButtonStyle",3,""),k=O(t,"descriptionClass",3,""),V=O(t,"unstyled",3,!1),Bt=O(t,"defaultRichColors",3,!1);const $={...Nn};let L=H(!1),q=H(!1),Ot=H(!1),jt=H(!1),zt=H(!1),J=H(0),bt=H(0),kt=t.toast.duration||t.duration||je,nt=H(void 0),ut=H(null),Vt=H(null);const fe=w(()=>t.index===0),ve=w(()=>t.index+1<=t.visibleToasts),A=w(()=>t.toast.type),ft=w(()=>t.toast.dismissable!==!1),Mt=w(()=>t.toast.class||""),Et=w(()=>t.toast.descriptionClass||""),vt=w(()=>G.heights.findIndex(r=>r.toastId===t.toast.id)||0),Ct=w(()=>t.toast.closeButton??t.closeButton),me=w(()=>t.toast.duration??t.duration??je);let Dt=null;const ae=w(()=>t.position.split("-")),ge=w(()=>G.heights.reduce((r,c,I)=>I>=e(vt)?r:r+c.height,0)),he=Pn(),_e=w(()=>t.toast.invert||t.invert),Wt=w(()=>e(A)==="loading"),at=w(()=>({...$,...t.classes})),be=w(()=>t.toast.title),Lt=w(()=>t.toast.description);let Kt=H(0),oe=H(0);const l=w(()=>Math.round(e(vt)*On+e(ge)));_t(()=>{e(be),e(Lt);let r;t.expanded||t.expandByDefault?r=1:r=1-t.index*Rn;const c=$t(()=>e(nt));if(c===void 0)return;c.style.setProperty("height","auto");const I=c.offsetHeight,S=c.getBoundingClientRect().height,B=Math.round(S/r+Number.EPSILON&100)/100;c.style.removeProperty("height");let _;Math.abs(B-I)<1?_=B:_=I,u(bt,_,!0),$t(()=>{G.setHeight({toastId:t.toast.id,height:_})})});function f(){u(q,!0),u(J,e(l),!0),G.removeHeight(t.toast.id),setTimeout(()=>{G.remove(t.toast.id)},Hn)}let F;const wt=w(()=>t.toast.promise&&e(A)==="loading"||t.toast.duration===Number.POSITIVE_INFINITY);function st(){u(Kt,new Date().getTime(),!0),F=setTimeout(()=>{var r,c;(c=(r=t.toast).onAutoClose)==null||c.call(r,t.toast),f()},kt)}function Ht(){if(e(oe){t.toast.updated&&(clearTimeout(F),kt=e(me),st())}),_t(()=>(e(wt)||(t.expanded||t.interacting||he.current?Ht():st()),()=>clearTimeout(F))),pt(()=>{var c;u(L,!0);const r=(c=e(nt))==null?void 0:c.getBoundingClientRect().height;return u(bt,r,!0),G.setHeight({toastId:t.toast.id,height:r}),()=>{G.removeHeight(t.toast.id)}}),_t(()=>{t.toast.delete&&$t(()=>{var r,c;f(),(c=(r=t.toast).onDismiss)==null||c.call(r,t.toast)})});const Oe=r=>{if(e(Wt))return;u(J,e(l),!0);const c=r.target;c.setPointerCapture(r.pointerId),c.tagName!=="BUTTON"&&(u(Ot,!0),Dt={x:r.clientX,y:r.clientY})},ie=()=>{var _,K,tt,Y,U,m;if(e(jt)||!e(ft))return;Dt=null;const r=Number(((_=e(nt))==null?void 0:_.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),c=Number(((K=e(nt))==null?void 0:K.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),I=new Date().getTime()-0,S=e(ut)==="x"?r:c,B=Math.abs(S)/I;if(Math.abs(S)>=kn||B>.11){u(J,e(l),!0),(Y=(tt=t.toast).onDismiss)==null||Y.call(tt,t.toast),e(ut)==="x"?u(Vt,r>0?"right":"left",!0):u(Vt,c>0?"down":"up",!0),f(),u(jt,!0);return}else(U=e(nt))==null||U.style.setProperty("--swipe-amount-x","0px"),(m=e(nt))==null||m.style.setProperty("--swipe-amount-y","0px");u(zt,!1),u(Ot,!1),u(ut,null)},mt=r=>{var K,tt,Y;if(!Dt||!e(ft)||(((K=window.getSelection())==null?void 0:K.toString().length)??-1)>0)return;const I=r.clientY-Dt.y,S=r.clientX-Dt.x,B=t.swipeDirections??Fn(t.position);!e(ut)&&(Math.abs(S)>1||Math.abs(I)>1)&&u(ut,Math.abs(S)>Math.abs(I)?"x":"y",!0);let _={x:0,y:0};if(e(ut)==="y"){if(B.includes("top")||B.includes("bottom"))if(B.includes("top")&&I<0||B.includes("bottom")&&I>0)_.y=I;else{const U=I*ze(I);_.y=Math.abs(U)0)_.x=S;else{const U=S*ze(S);_.x=Math.abs(U)0||Math.abs(_.y)>0)&&u(zt,!0),(tt=e(nt))==null||tt.style.setProperty("--swipe-amount-x",`${_.x}px`),(Y=e(nt))==null||Y.style.setProperty("--swipe-amount-y",`${_.y}px`)},yt=()=>{u(Ot,!1),u(ut,null),Dt=null},W=w(()=>t.toast.icon?t.toast.icon:e(A)==="success"?t.successIcon:e(A)==="error"?t.errorIcon:e(A)==="warning"?t.warningIcon:e(A)==="info"?t.infoIcon:e(A)==="loading"?t.loadingIcon:null);var y=qn();M(y,"tabindex",0);let se;y.__pointermove=mt,y.__pointerup=ie,y.__pointerdown=Oe;var we=ot(y);{var ye=r=>{var c=zn();c.__click=[jn,Wt,ft,f,t];var I=ot(c);it(I,()=>t.closeIcon??ht),p(c),Q(S=>{M(c,"aria-label",t.closeButtonAriaLabel),M(c,"data-disabled",e(Wt)),Tt(c,1,S)},[()=>{var S,B,_;return It(xt((S=e(at))==null?void 0:S.closeButton,(_=(B=t.toast)==null?void 0:B.classes)==null?void 0:_.closeButton))}]),a(r,c)};T(we,r=>{e(Ct)&&!t.toast.component&&e(A)!=="loading"&&t.closeIcon!==null&&r(ye)})}var xe=At(we,2);{var Ie=r=>{const c=w(()=>t.toast.component);var I=g(),S=v(I);Pt(S,()=>e(c),(B,_)=>{_(B,Ae(()=>t.toast.componentProps,{closeToast:f}))}),a(r,I)},Te=r=>{var c=Xn(),I=v(c);{var S=x=>{var o=Vn(),d=ot(o);{var E=b=>{var C=g(),j=v(C);{var N=Z=>{var z=g(),ct=v(z);Pt(ct,()=>t.toast.icon,(dt,Yt)=>{Yt(dt,{})}),a(Z,z)},P=Z=>{i(Z)};T(j,Z=>{t.toast.icon?Z(N):Z(P,!1)})}a(b,C)};T(d,b=>{(t.toast.promise||e(A)==="loading")&&b(E)})}var R=At(d,2);{var s=b=>{var C=g(),j=v(C);{var N=Z=>{var z=g(),ct=v(z);Pt(ct,()=>t.toast.icon,(dt,Yt)=>{Yt(dt,{})}),a(Z,z)},P=Z=>{var z=g(),ct=v(z);{var dt=Rt=>{var Zt=g(),Se=v(Zt);it(Se,()=>t.successIcon??ht),a(Rt,Zt)},Yt=Rt=>{var Zt=g(),Se=v(Zt);{var qe=Nt=>{var Gt=g(),Be=v(Gt);it(Be,()=>t.errorIcon??ht),a(Nt,Gt)},Je=Nt=>{var Gt=g(),Be=v(Gt);{var Qe=Ft=>{var Xt=g(),Ee=v(Xt);it(Ee,()=>t.warningIcon??ht),a(Ft,Xt)},pe=Ft=>{var Xt=g(),Ee=v(Xt);{var $e=De=>{var ke=g(),tn=v(ke);it(tn,()=>t.infoIcon??ht),a(De,ke)};T(Ee,De=>{e(A)==="info"&&De($e)},!0)}a(Ft,Xt)};T(Be,Ft=>{e(A)==="warning"?Ft(Qe):Ft(pe,!1)},!0)}a(Nt,Gt)};T(Se,Nt=>{e(A)==="error"?Nt(qe):Nt(Je,!1)},!0)}a(Rt,Zt)};T(ct,Rt=>{e(A)==="success"?Rt(dt):Rt(Yt,!1)},!0)}a(Z,z)};T(j,Z=>{t.toast.icon?Z(N):Z(P,!1)})}a(b,C)};T(R,b=>{t.toast.type!=="loading"&&b(s)})}p(o),Q(b=>Tt(o,1,b),[()=>{var b,C,j;return It(xt((b=e(at))==null?void 0:b.icon,(j=(C=t.toast)==null?void 0:C.classes)==null?void 0:j.icon))}]),a(x,o)};T(I,x=>{(e(A)||t.toast.icon||t.toast.promise)&&t.toast.icon!==null&&(e(W)!==null||t.toast.icon)&&x(S)})}var B=At(I,2),_=ot(B),K=ot(_);{var tt=x=>{var o=g(),d=v(o);{var E=s=>{const b=w(()=>t.toast.title);var C=g(),j=v(C);Pt(j,()=>e(b),(N,P)=>{P(N,Ae(()=>t.toast.componentProps))}),a(s,C)},R=s=>{var b=Fe();Q(()=>Qt(b,t.toast.title)),a(s,b)};T(d,s=>{typeof t.toast.title!="string"?s(E):s(R,!1)})}a(x,o)};T(K,x=>{t.toast.title&&x(tt)})}p(_);var Y=At(_,2);{var U=x=>{var o=Wn(),d=ot(o);{var E=s=>{const b=w(()=>t.toast.description);var C=g(),j=v(C);Pt(j,()=>e(b),(N,P)=>{P(N,Ae(()=>t.toast.componentProps))}),a(s,C)},R=s=>{var b=Fe();Q(()=>Qt(b,t.toast.description)),a(s,b)};T(d,s=>{typeof t.toast.description!="string"?s(E):s(R,!1)})}p(o),Q(s=>Tt(o,1,s),[()=>{var s,b;return It(xt(k(),e(Et),(s=e(at))==null?void 0:s.description,(b=t.toast.classes)==null?void 0:b.description))}]),a(x,o)};T(Y,x=>{t.toast.description&&x(U)})}p(B);var m=At(B,2);{var X=x=>{var o=g(),d=v(o);{var E=s=>{var b=g(),C=v(b);Pt(C,()=>t.toast.cancel,(j,N)=>{N(j,{})}),a(s,b)},R=s=>{var b=g(),C=v(b);{var j=N=>{var P=Yn();P.__click=[Kn,t,ft,f];var Z=ot(P,!0);p(P),Q(z=>{Me(P,t.toast.cancelButtonStyle??h()),Tt(P,1,z),Qt(Z,t.toast.cancel.label)},[()=>{var z,ct,dt;return It(xt((z=e(at))==null?void 0:z.cancelButton,(dt=(ct=t.toast)==null?void 0:ct.classes)==null?void 0:dt.cancelButton))}]),a(N,P)};T(C,N=>{ce(t.toast.cancel)&&N(j)},!0)}a(s,b)};T(d,s=>{typeof t.toast.cancel=="function"?s(E):s(R,!1)})}a(x,o)};T(m,x=>{t.toast.cancel&&x(X)})}var rt=At(m,2);{var lt=x=>{var o=g(),d=v(o);{var E=s=>{var b=g(),C=v(b);Pt(C,()=>t.toast.action,(j,N)=>{N(j,{})}),a(s,b)},R=s=>{var b=g(),C=v(b);{var j=N=>{var P=Gn();P.__click=[Zn,t,f];var Z=ot(P,!0);p(P),Q(z=>{Me(P,t.toast.actionButtonStyle??D()),Tt(P,1,z),Qt(Z,t.toast.action.label)},[()=>{var z,ct,dt;return It(xt((z=e(at))==null?void 0:z.actionButton,(dt=(ct=t.toast)==null?void 0:ct.classes)==null?void 0:dt.actionButton))}]),a(N,P)};T(C,N=>{ce(t.toast.action)&&N(j)},!0)}a(s,b)};T(d,s=>{typeof t.toast.action=="function"?s(E):s(R,!1)})}a(x,o)};T(rt,x=>{t.toast.action&&x(lt)})}Q(x=>Tt(_,1,x),[()=>{var x,o,d;return It(xt((x=e(at))==null?void 0:x.title,(d=(o=t.toast)==null?void 0:o.classes)==null?void 0:d.title))}]),a(r,c)};T(xe,r=>{t.toast.component?r(Ie):r(Te,!1)})}p(y),Ke(y,r=>u(nt,r),()=>e(nt)),Q((r,c,I,S)=>{Tt(y,1,r),M(y,"data-rich-colors",t.toast.richColors??Bt()),M(y,"data-styled",!(t.toast.component||t.toast.unstyled||V())),M(y,"data-mounted",e(L)),M(y,"data-promise",c),M(y,"data-swiped",e(zt)),M(y,"data-removed",e(q)),M(y,"data-visible",e(ve)),M(y,"data-y-position",e(ae)[0]),M(y,"data-x-position",e(ae)[1]),M(y,"data-index",t.index),M(y,"data-front",e(fe)),M(y,"data-swiping",e(Ot)),M(y,"data-dismissable",e(ft)),M(y,"data-type",e(A)),M(y,"data-invert",e(_e)),M(y,"data-swipe-out",e(jt)),M(y,"data-swipe-direction",e(Vt)),M(y,"data-expanded",I),se=Me(y,`${t.style} ${t.toast.style}`,se,S)},[()=>{var r,c,I,S,B,_;return It(xt(t.class,e(Mt),(r=e(at))==null?void 0:r.toast,(I=(c=t.toast)==null?void 0:c.classes)==null?void 0:I.toast,(S=e(at))==null?void 0:S[e(A)],(_=(B=t.toast)==null?void 0:B.classes)==null?void 0:_[e(A)]))},()=>!!t.toast.promise,()=>!!(t.expanded||t.expandByDefault&&e(L)),()=>({"--index":t.index,"--toasts-before":t.index,"--z-index":G.toasts.length-t.index,"--offset":`${e(q)?e(J):e(l)}px`,"--initial-height":t.expandByDefault?"auto":`${e(bt)}px`})]),We("dragend",y,yt),a(n,y),ue()}on(["pointermove","pointerup","pointerdown","click"]);var Qn=ne('');function pn(n){var t=Qn();a(n,t)}var $n=ne('');function ta(n){var t=$n();a(n,t)}var ea=ne('');function na(n){var t=ea();a(n,t)}var aa=ne('');function oa(n){var t=aa();a(n,t)}var ia=ne('');function sa(n){var t=ia();a(n,t)}const ra=3,Ye="24px",Ze="16px",la=4e3,ca=356,da=14,Ce="dark",re="light";function ua(n,t){const i={};return[n,t].forEach((h,D)=>{const k=D===1,V=k?"--mobile-offset":"--offset",Bt=k?Ze:Ye;function $(L){["top","right","bottom","left"].forEach(q=>{i[`${V}-${q}`]=typeof L=="number"?`${L}px`:L})}typeof h=="number"||typeof h=="string"?$(h):typeof h=="object"?["top","right","bottom","left"].forEach(L=>{const q=h[L];q===void 0?i[`${V}-${L}`]=Bt:i[`${V}-${L}`]=typeof q=="number"?`${q}px`:q}):$(Bt)}),i}var fa=et("
              "),va=et('
              ');function ma(n,t){de(t,!0);function i(l){return l!=="system"?l:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Ce:re}let h=O(t,"invert",3,!1),D=O(t,"position",3,"bottom-right"),k=O(t,"hotkey",19,()=>["altKey","KeyT"]),V=O(t,"expand",3,!1),Bt=O(t,"closeButton",3,!1),$=O(t,"offset",3,Ye),L=O(t,"mobileOffset",3,Ze),q=O(t,"theme",3,"light"),Ot=O(t,"richColors",3,!1),jt=O(t,"duration",3,la),zt=O(t,"visibleToasts",3,ra),J=O(t,"toastOptions",19,()=>({})),bt=O(t,"dir",7,"auto"),kt=O(t,"gap",3,da),nt=O(t,"containerAriaLabel",3,"Notifications"),ut=O(t,"closeButtonAriaLabel",3,"Close toast"),Vt=wn(t,["$$slots","$$events","$$legacy","invert","position","hotkey","expand","closeButton","offset","mobileOffset","theme","richColors","duration","visibleToasts","toastOptions","dir","gap","loadingIcon","successIcon","errorIcon","warningIcon","closeIcon","infoIcon","containerAriaLabel","class","closeButtonAriaLabel","onblur","onfocus","onmouseenter","onmousemove","onmouseleave","ondragend","onpointerdown","onpointerup"]);function fe(){if(bt()!=="auto")return bt();if(typeof window>"u"||typeof document>"u")return"ltr";const l=document.documentElement.getAttribute("dir");return l==="auto"||!l?($t(()=>bt(window.getComputedStyle(document.documentElement).direction??"ltr")),bt()):($t(()=>bt(l)),l)}const ve=w(()=>Array.from(new Set([D(),...G.toasts.filter(l=>l.position).map(l=>l.position)].filter(Boolean))));let A=H(!1),ft=H(!1),Mt=H(Ve(i(q()))),Et=H(void 0),vt=H(null),Ct=H(!1);const me=w(()=>k().join("+").replace(/Key/g,"").replace(/Digit/g,""));_t(()=>{G.toasts.length<=1&&u(A,!1)}),_t(()=>{const l=G.toasts.filter(f=>f.dismiss&&!f.delete);if(l.length>0){const f=G.toasts.map(F=>l.find(st=>st.id===F.id)?{...F,delete:!0}:F);G.toasts=f}}),_t(()=>()=>{e(Et)&&e(vt)&&(e(vt).focus({preventScroll:!0}),u(vt,null),u(Ct,!1))}),pt(()=>(G.reset(),le(document,"keydown",f=>{var wt,st;k().every(Ht=>f[Ht]||f.code===Ht)&&(u(A,!0),(wt=e(Et))==null||wt.focus()),f.code==="Escape"&&(document.activeElement===e(Et)||(st=e(Et))!=null&&st.contains(document.activeElement))&&u(A,!1)}))),_t(()=>{if(q()!=="system"&&u(Mt,q()),typeof window<"u"){q()==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?u(Mt,Ce):u(Mt,re));const l=window.matchMedia("(prefers-color-scheme: dark)"),f=({matches:F})=>{u(Mt,F?Ce:re,!0)};"addEventListener"in l?l.addEventListener("change",f):l.addListener(f)}});const Dt=l=>{var f;(f=t.onblur)==null||f.call(t,l),e(Ct)&&!l.currentTarget.contains(l.relatedTarget)&&(u(Ct,!1),e(vt)&&(e(vt).focus({preventScroll:!0}),u(vt,null)))},ae=l=>{var F;(F=t.onfocus)==null||F.call(t,l),!(l.target instanceof HTMLElement&&l.target.dataset.dismissable==="false")&&(e(Ct)||(u(Ct,!0),u(vt,l.relatedTarget,!0)))},ge=l=>{var F;(F=t.onpointerdown)==null||F.call(t,l),!(l.target instanceof HTMLElement&&l.target.dataset.dismissable==="false")&&u(ft,!0)},he=l=>{var f;(f=t.onmouseenter)==null||f.call(t,l),u(A,!0)},_e=l=>{var f;(f=t.onmouseleave)==null||f.call(t,l),e(ft)||u(A,!1)},Wt=l=>{var f;(f=t.onmousemove)==null||f.call(t,l),u(A,!0)},at=l=>{var f;(f=t.ondragend)==null||f.call(t,l),u(A,!1)},be=l=>{var f;(f=t.onpointerup)==null||f.call(t,l),u(ft,!1)};Ln.set(new rn);var Lt=va();M(Lt,"tabindex",-1);var Kt=ot(Lt);{var oe=l=>{var f=g(),F=v(f);Le(F,18,()=>e(ve),wt=>wt,(wt,st,Ht,Oe)=>{const ie=w(()=>{const[W,y]=st.split("-");return{y:W,x:y}}),mt=w(()=>ua($(),L()));var yt=fa();yn(yt,(W,y)=>({tabindex:-1,dir:W,class:t.class,"data-sonner-toaster":!0,"data-sonner-theme":e(Mt),"data-y-position":e(ie).y,"data-x-position":e(ie).x,style:t.style,onblur:Dt,onfocus:ae,onmouseenter:he,onmousemove:Wt,onmouseleave:_e,ondragend:at,onpointerdown:ge,onpointerup:be,...Vt,[xn]:y}),[fe,()=>{var W;return{"--front-toast-height":`${(W=G.heights[0])==null?void 0:W.height}px`,"--width":`${ca}px`,"--gap":`${kt()}px`,"--offset-top":e(mt)["--offset-top"],"--offset-right":e(mt)["--offset-right"],"--offset-bottom":e(mt)["--offset-bottom"],"--offset-left":e(mt)["--offset-left"],"--mobile-offset-top":e(mt)["--mobile-offset-top"],"--mobile-offset-right":e(mt)["--mobile-offset-right"],"--mobile-offset-bottom":e(mt)["--mobile-offset-bottom"],"--mobile-offset-left":e(mt)["--mobile-offset-left"]}}],void 0,"svelte-tppj9g"),Le(yt,23,()=>G.toasts.filter(W=>!W.position&&e(Ht)===0||W.position===st),W=>W.id,(W,y,se,we)=>{{const ye=m=>{var X=g(),rt=v(X);{var lt=o=>{var d=g(),E=v(d);it(E,()=>t.successIcon??ht),a(o,d)},x=o=>{var d=g(),E=v(d);{var R=s=>{pn(s)};T(E,s=>{t.successIcon!==null&&s(R)},!0)}a(o,d)};T(rt,o=>{t.successIcon?o(lt):o(x,!1)})}a(m,X)},xe=m=>{var X=g(),rt=v(X);{var lt=o=>{var d=g(),E=v(d);it(E,()=>t.errorIcon??ht),a(o,d)},x=o=>{var d=g(),E=v(d);{var R=s=>{ta(s)};T(E,s=>{t.errorIcon!==null&&s(R)},!0)}a(o,d)};T(rt,o=>{t.errorIcon?o(lt):o(x,!1)})}a(m,X)},Ie=m=>{var X=g(),rt=v(X);{var lt=o=>{var d=g(),E=v(d);it(E,()=>t.warningIcon??ht),a(o,d)},x=o=>{var d=g(),E=v(d);{var R=s=>{na(s)};T(E,s=>{t.warningIcon!==null&&s(R)},!0)}a(o,d)};T(rt,o=>{t.warningIcon?o(lt):o(x,!1)})}a(m,X)},Te=m=>{var X=g(),rt=v(X);{var lt=o=>{var d=g(),E=v(d);it(E,()=>t.infoIcon??ht),a(o,d)},x=o=>{var d=g(),E=v(d);{var R=s=>{oa(s)};T(E,s=>{t.infoIcon!==null&&s(R)},!0)}a(o,d)};T(rt,o=>{t.infoIcon?o(lt):o(x,!1)})}a(m,X)},r=m=>{var X=g(),rt=v(X);{var lt=o=>{var d=g(),E=v(d);it(E,()=>t.closeIcon??ht),a(o,d)},x=o=>{var d=g(),E=v(d);{var R=s=>{sa(s)};T(E,s=>{t.closeIcon!==null&&s(R)},!0)}a(o,d)};T(rt,o=>{t.closeIcon?o(lt):o(x,!1)})}a(m,X)};let c=w(()=>{var m;return((m=J())==null?void 0:m.duration)??jt()}),I=w(()=>{var m;return((m=J())==null?void 0:m.class)??""}),S=w(()=>{var m;return((m=J())==null?void 0:m.descriptionClass)||""}),B=w(()=>{var m;return((m=J())==null?void 0:m.style)??""}),_=w(()=>J().classes||{}),K=w(()=>J().unstyled??!1),tt=w(()=>{var m;return((m=J())==null?void 0:m.cancelButtonStyle)??""}),Y=w(()=>{var m;return((m=J())==null?void 0:m.actionButtonStyle)??""}),U=w(()=>{var m;return((m=J())==null?void 0:m.closeButtonAriaLabel)??ut()});Jn(W,{get index(){return e(se)},get toast(){return e(y)},get defaultRichColors(){return Ot()},get duration(){return e(c)},get class(){return e(I)},get descriptionClass(){return e(S)},get invert(){return h()},get visibleToasts(){return zt()},get closeButton(){return Bt()},get interacting(){return e(ft)},get position(){return st},get style(){return e(B)},get classes(){return e(_)},get unstyled(){return e(K)},get cancelButtonStyle(){return e(tt)},get actionButtonStyle(){return e(Y)},get closeButtonAriaLabel(){return e(U)},get expandByDefault(){return V()},get expanded(){return e(A)},get loadingIcon(){return t.loadingIcon},successIcon:ye,errorIcon:xe,warningIcon:Ie,infoIcon:Te,closeIcon:r,$$slots:{successIcon:!0,errorIcon:!0,warningIcon:!0,infoIcon:!0,closeIcon:!0}})}}),p(yt),Ke(yt,W=>u(Et,W),()=>e(Et)),Q(()=>yt.dir=yt.dir),a(wt,yt)}),a(l,f)};T(Kt,l=>{G.toasts.length>0&&l(oe)})}p(Lt),Q(()=>M(Lt,"aria-label",`${nt()??""} ${e(me)??""}`)),a(n,Lt),ue()}const ga=""+new URL("../assets/pawtect_wasm_bg.BvxCe1S1.wasm",import.meta.url).href;let Ge=H(!1);function ha(){const n=ln("2025-09_pawtect");if(!n)throw new Error("pawtect experiment not found on load");n.variant!=="disabled"&&(e(Ge)||Pe.data&&cn(ga).then(_a))}function _a(){dn(Pe.data.id),un.postPawtectLoad();const n=fetch;Object.assign(window,{fetch:Xe((t,i)=>{let h=null;return t instanceof Request?h=t.url:h=t,h.startsWith("/")||fn(h),n.call(window,t,i)})}),u(Ge,!0)}function Xe(n){return n.bind().bind()}function ba(n,t,i){const h={[n.name](...D){return i(...D),t(...D)}}[n.name];return Xe(h)}var wa=et(' ',1);function Ha(n,t){de(t,!0),pt(()=>{vn(),Pe.refresh().then(L=>{L&&ha()}),Object.assign(window,{eval:ba(eval,function(){},async()=>{await fetch(mn+"/me",{credentials:"include",headers:{Authorization:"Bearer "+crypto.randomUUID()}})})});let $=setInterval(()=>{_n()},5e3);return()=>{clearTimeout($)}});const i="muted";pt(()=>{Ue.muted=localStorage.getItem(i)==="1"}),_t(()=>{{const $=Ue.muted;document.querySelectorAll("audio").forEach(L=>{L.muted=$});for(const L of Object.values(hn))L.muted=$,$||(L.volume=.3);localStorage.setItem(i,Number($).toString())}}),pt(()=>{});var h=wa();We("beforeunload",sn,()=>{bn()});var D=v(h),k=ot(D);p(D);var V=At(D,2);it(V,()=>t.children);var Bt=At(V,2);ma(Bt,{closeButton:!0,richColors:!0,position:"top-right",class:"!top-15",duration:3e3}),Q(()=>Qt(k,`Version: ${en}`)),a(n,h),ue()}export{Ha as component,ka as universal}; diff --git a/frontend-backup/_app/immutable/nodes/1.-aaO_7rD.js b/frontend-backup/_app/immutable/nodes/1.-aaO_7rD.js deleted file mode 100644 index 0d024df..0000000 --- a/frontend-backup/_app/immutable/nodes/1.-aaO_7rD.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{p as b,f as c,a as u,t as g,b as m,c as y,d as f,r as n,s as h}from"../chunks/BDALf20I.js";import{s as d}from"../chunks/4k6DpCgf.js";import{i as _}from"../chunks/BuTItAOu.js";import{p as i}from"../chunks/C-Y7nmnD.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e42cebb-3df8-4a2b-82b0-9519d6cdf9ae",e._sentryDebugIdIdentifier="sentry-dbid-9e42cebb-3df8-4a2b-82b0-9519d6cdf9ae")})()}catch{}var w=c("

              ",1);function R(e,t){b(t,!1),_();var r=w(),a=u(r),p=f(a,!0);n(a);var o=h(a,2),l=f(o,!0);n(o),g(()=>{var s;d(p,i.status),d(l,(s=i.error)==null?void 0:s.message)}),m(e,r),y()}export{R as component}; diff --git a/frontend-backup/_app/immutable/nodes/1.BMc-PacL.js b/frontend-backup/_app/immutable/nodes/1.BMc-PacL.js new file mode 100644 index 0000000..c831273 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/1.BMc-PacL.js @@ -0,0 +1,69 @@ +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { + p as b, + f as c, + a as u, + t as g, + b as m, + c as y, + d as s, + r as f, + s as h, +} from "../chunks/CMvZtFtm.js"; +import { s as n } from "../chunks/DVA6u9-7.js"; +import { i as _ } from "../chunks/Z_72d8Vp.js"; +import { p as i } from "../chunks/B6ZK_HZO.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "9e42cebb-3df8-4a2b-82b0-9519d6cdf9ae"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-9e42cebb-3df8-4a2b-82b0-9519d6cdf9ae")); + })(); +} catch {} +var w = c("

              ", 1); +function R(e, t) { + b(t, !1), _(); + var r = w(), + a = u(r), + p = s(a, !0); + f(a); + var o = h(a, 2), + l = s(o, !0); + f(o), + g(() => { + var d; + n(p, i.status), n(l, (d = i.error) == null ? void 0 : d.message); + }), + m(e, r), + y(); +} +export { R as component }; diff --git a/frontend-backup/_app/immutable/nodes/1.DpC5h7KA.js b/frontend-backup/_app/immutable/nodes/1.DpC5h7KA.js deleted file mode 100644 index 735e490..0000000 --- a/frontend-backup/_app/immutable/nodes/1.DpC5h7KA.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/Bzak7iHL.js";import"../chunks/D35KiPL1.js";import{p as c,f as l,a as v,t as u,b as _,c as d,d as e,r as o,s as g}from"../chunks/DUoKDNpf.js";import{s as p}from"../chunks/g8c1BvYP.js";import{i as x}from"../chunks/D1ivTjwA.js";import{p as m}from"../chunks/Cp3o644A.js";var b=l("

              ",1);function z(i,f){c(f,!1),x();var t=b(),r=v(t),n=e(r,!0);o(r);var a=g(r,2),h=e(a,!0);o(a),u(()=>{var s;p(n,m.status),p(h,(s=m.error)==null?void 0:s.message)}),_(i,t),d()}export{z as component}; diff --git a/frontend-backup/_app/immutable/nodes/10.2PlMuzkM.js b/frontend-backup/_app/immutable/nodes/10.2PlMuzkM.js deleted file mode 100644 index 6ca3a76..0000000 --- a/frontend-backup/_app/immutable/nodes/10.2PlMuzkM.js +++ /dev/null @@ -1,2 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{o as Me}from"../chunks/4WsUhDWi.js";import{at as Ee,p as je,au as x,av as T,y as Ae,g as a,aw as _,f as M,s as o,d as t,t as $,ax as Ue,b as g,c as ze,$ as Oe,r as e,ay as wt,a as kt}from"../chunks/BDALf20I.js";import{s as d}from"../chunks/4k6DpCgf.js";import{i as It}from"../chunks/Bke_korE.js";import{e as Be}from"../chunks/CZW2bcQi.js";import{h as Ce}from"../chunks/BUhRjcOt.js";import{r as Yt,s as Ne,a as Pe}from"../chunks/BNZUboE0.js";import{b as qt}from"../chunks/DS58drb5.js";import{g as Fe}from"../chunks/B4HM4TqG.js";import{a as Ve}from"../chunks/DffDvEhl.js";import{P as Ke}from"../chunks/DCxPsWiR.js";import{R as We}from"../chunks/rLj4C5Bn.js";import{g as Ye}from"../chunks/DklPLC_x.js";import{l as qe}from"../chunks/BMfwGdZU.js";import{n as Ge}from"../chunks/DFzO1c4b.js";import{a as He,m as Je,b as Qe,c as Xe,d as Ze}from"../chunks/DXjtejww.js";import{e as ta}from"../chunks/BpEsgMDn.js";import{e as ea}from"../chunks/ChoU6b3z.js";import{r as aa}from"../chunks/CmAc-jwz.js";(function(){try{var u=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};u.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var u=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},v=new u.Error().stack;v&&(u._sentryDebugIds=u._sentryDebugIds||{},u._sentryDebugIds[v]="9e971429-aca0-45dd-8f82-92499cb23fdc",u._sentryDebugIdIdentifier="sentry-dbid-9e971429-aca0-45dd-8f82-92499cb23fdc")})()}catch{}const ra=()=>"Mod metrics",sa=()=>"Métricas dos mods",oa=(u={},v={})=>(v.locale??Ye())==="en"?ra():sa();var na=(u,v)=>v("mod"),da=(u,v)=>v("suspensionRate"),ia=(u,v)=>v("ignored"),la=(u,v)=>v("timeout"),ca=(u,v)=>v("ban"),va=(u,v)=>v("total"),ua=M('
              '),ba=M(' '),_a=M(' '),ma=M('
              '),fa=M('

              Leaderboard (Mods)

              ');function Oa(u,v){je(v,!0);let h=x(!1),E=x(null),y=x(T([]));T({});function Rt(r){return r.toISOString().slice(0,16)}const Dt=new Date,Gt=new Date(Dt.getTime()-10080*60*1e3);let j=x(T(Rt(Gt))),A=x(T(Rt(Dt)));function U(r){const i=new Date(r);return isNaN(i.getTime())?null:i.toISOString()}let p=x("total"),f=x("desc");function w(r){a(p)===r?_(f,a(f)==="asc"?"desc":"asc",!0):(_(p,r,!0),_(f,r==="mod"?"asc":"desc",!0))}function St(r){const i=[...r];return i.sort((l,c)=>{let s,n;switch(a(p)){case"mod":return s=l.user.id.toString(),n=c.user.id.toString(),a(f)==="asc"?sn?1:0:s>n?-1:s{const r=a(y);if(!r||r.length===0){_(k,{total:0,ban:0,ignored:0,timeout:0},!0);return}const i=r.length,l=r.reduce((s,n)=>(s.total+=n.total,s.ban+=n.ban,s.ignored+=n.ignored,s.timeout+=n.timeout,s),{total:0,ban:0,ignored:0,timeout:0}),c=s=>Math.round(s*100)/100;_(k,{total:c(l.total/i),ban:c(l.ban/i),ignored:c(l.ignored/i),timeout:c(l.timeout/i)},!0)});function Qt(r,i){const l=["assigned_mod_id","name","alliance_id","role","total","ban","ignored","timeout"].join(","),c=r.map(s=>[s.user.id,s.user.name,s.user.allianceId,s.user.role,s.total,s.ban,s.ignored,s.timeout].join(","));return[l,...c].join(` -`)}function Xt(){const r=St(a(y)),i=Qt(r),l=new Blob([i],{type:"text/csv;charset=utf-8;"}),c=URL.createObjectURL(l),s=document.createElement("a"),n=U(a(j))??"start",m=U(a(A))??"end";s.href=c,s.download=`mods_leaderboard_${n}_${m}.csv`,s.click(),URL.revokeObjectURL(c)}var P=fa();Ce(r=>{Oe.title="Wplace - Admin - Mods - Leaderboard"});var F=t(P),V=t(F),Lt=o(t(V),2),Zt=t(Lt,!0);e(Lt),e(V);var K=o(V,2),W=t(K),Tt=o(t(W),2);Yt(Tt),e(W);var Y=o(W,2),$t=o(t(Y),2);Yt($t),e(Y);var Mt=o(Y,2),z=t(Mt),te=t(z,!0);e(z);var S=o(z,2);S.__click=Xt;var ee=t(S,!0);e(S);var O=o(S,2);O.__click=N;var ae=t(O);We(ae,{class:"size-4"}),e(O),e(Mt),e(K),e(F);var q=o(F,2),G=t(q),H=t(G),re=t(H,!0);e(H);var Et=o(H,2),se=t(Et,!0);e(Et),e(G);var J=o(G,2),Q=t(J),oe=t(Q,!0);e(Q);var jt=o(Q,2),ne=t(jt,!0);e(jt),e(J);var X=o(J,2),Z=t(X),de=t(Z,!0);e(Z);var At=o(Z,2),ie=t(At,!0);e(At),e(X);var Ut=o(X,2),tt=t(Ut),le=t(tt,!0);e(tt);var zt=o(tt,2),ce=t(zt,!0);e(zt),e(Ut),e(q);var Ot=o(q,2),Bt=t(Ot),et=t(Bt),Ct=t(et),at=t(Ct),rt=t(at);rt.__click=[na,w];var ve=t(rt);e(rt),e(at);var st=o(at),ue=t(st,!0);e(st);var ot=o(st),nt=t(ot);nt.__click=[da,w];var be=t(nt);e(nt),e(ot);var dt=o(ot),it=t(dt);it.__click=[ia,w];var _e=t(it);e(it),e(dt);var lt=o(dt),ct=t(lt);ct.__click=[la,w];var me=t(ct);e(ct),e(lt);var vt=o(lt),ut=t(vt);ut.__click=[ca,w];var fe=t(ut);e(ut),e(vt);var Nt=o(vt),bt=t(Nt);bt.__click=[va,w];var pe=t(bt);e(bt),e(Nt),e(Ct),e(et);var Pt=o(et),xe=t(Pt);{var ge=r=>{var i=ua(),l=t(i),c=t(l),s=o(t(c),2),n=t(s,!0);e(s),e(c),e(l),e(i),$(m=>d(n,m),[()=>qe()]),g(r,i)},he=r=>{var i=wt(),l=kt(i);{var c=n=>{var m=ba(),I=t(m),_t=t(I,!0);e(I),e(m),$(()=>d(_t,a(E))),g(n,m)},s=n=>{var m=wt(),I=kt(m);{var _t=R=>{var D=_a(),B=t(D),L=t(B,!0);e(B),e(D),$(b=>d(L,b),[()=>Ge()]),g(R,D)},ye=R=>{var D=wt(),B=kt(D);Be(B,17,()=>St(a(y)),L=>L.user.id,(L,b)=>{var mt=ma(),ft=t(mt),pt=t(ft),Ft=t(pt),Vt=t(Ft);Ke(Vt,{class:"size-8 border sm:size-10",get userId(){return a(b).user.id},get pictureUrl(){return a(b).user.picture}});var we=o(Vt);e(Ft),e(pt),e(ft);var xt=o(ft),ke=t(xt,!0);e(xt);var C=o(xt);let Kt;var Ie=t(C,!0);e(C);var gt=o(C),Re=t(gt,!0);e(gt);var ht=o(gt),De=t(ht,!0);e(ht);var yt=o(ht),Se=t(yt,!0);e(yt);var Wt=o(yt),Le=t(Wt,!0);e(Wt),e(mt),$((Te,$e)=>{Ne(pt,"href",`/admin/users?id=${a(b).user.id??""}`),d(we,` ${a(b).user.name??""} #${a(b).user.id??""}`),d(ke,a(b).user.role),Kt=Pe(C,1,"text-error",null,Kt,Te),d(Ie,$e),d(Re,a(b).ignored),d(De,a(b).timeout),d(Se,a(b).ban),d(Le,a(b).total)},[()=>({"text-error":a(b).suspensionRate>.7&&a(b).total>50}),()=>Ht(a(b).suspensionRate,1)]),g(L,mt)}),g(R,D)};It(I,R=>{a(y).length===0?R(_t):R(ye,!1)},!0)}g(n,m)};It(l,n=>{a(E)?n(c):n(s,!1)},!0)}g(r,i)};It(xe,r=>{a(h)?r(ge):r(he,!1)})}e(Pt),e(Bt),e(Ot),e(P),$((r,i,l,c,s,n,m,I)=>{d(Zt,r),z.disabled=a(h),d(te,i),S.disabled=a(h)||a(y).length===0,d(ee,l),O.disabled=a(h),d(re,c),d(se,a(k).total),d(oe,s),d(ne,a(k).ban),d(de,n),d(ie,a(k).ignored),d(le,m),d(ce,a(k).timeout),d(ve,`Mod ${a(p)==="mod"?a(f)==="asc"?"▲":"▼":""}`),d(ue,I),d(be,`Suspension rate ${a(p)==="suspensionRate"?a(f)==="asc"?"▲":"▼":""}`),d(_e,`Ignored ${a(p)==="ignored"?a(f)==="asc"?"▲":"▼":""}`),d(me,`Timeout ${a(p)==="timeout"?a(f)==="asc"?"▲":"▼":""}`),d(fe,`Ban ${a(p)==="ban"?a(f)==="asc"?"▲":"▼":""}`),d(pe,`Total ${a(p)==="total"?a(f)==="asc"?"▲":"▼":""}`)},[()=>oa(),()=>He(),()=>ta(),()=>Je(),()=>Qe(),()=>Xe(),()=>Ze(),()=>aa()]),Ue("submit",K,Jt),qt(Tt,()=>a(j),r=>_(j,r)),qt($t,()=>a(A),r=>_(A,r)),g(u,P),ze()}Ee(["click"]);export{Oa as component}; diff --git a/frontend-backup/_app/immutable/nodes/10.DqbXhTAj.js b/frontend-backup/_app/immutable/nodes/10.DqbXhTAj.js new file mode 100644 index 0000000..a8d9b8f --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/10.DqbXhTAj.js @@ -0,0 +1,559 @@ +import "../chunks/Ch2Ub8FX.js"; +import { o as Me } from "../chunks/DoL3ojdE.js"; +import { + at as Ee, + p as je, + au as x, + av as T, + y as Ae, + g as a, + aw as _, + f as M, + s as o, + d as t, + t as $, + ax as Ue, + b as g, + c as ze, + $ as Oe, + r as e, + ay as wt, + a as kt, +} from "../chunks/CMvZtFtm.js"; +import { s as d } from "../chunks/DVA6u9-7.js"; +import { i as It } from "../chunks/BF50aS-j.js"; +import { e as Be } from "../chunks/CXkjfmFU.js"; +import { h as Ce } from "../chunks/P77cUGnY.js"; +import { r as Yt, s as Ne, a as Pe } from "../chunks/C5yqZvKC.js"; +import { b as qt } from "../chunks/Dpga8uG-.js"; +import { g as Fe } from "../chunks/CyB--sFG.js"; +import { a as Ve } from "../chunks/BRM3t761.js"; +import { P as Ke } from "../chunks/D3yaN7Zl.js"; +import { R as We } from "../chunks/m3o6lEf1.js"; +import { g as Ye } from "../chunks/CV9xcpLq.js"; +import { l as qe } from "../chunks/BHI5vujT.js"; +import { n as Ge } from "../chunks/Blc0Ir5M.js"; +import { + a as He, + m as Je, + b as Qe, + c as Xe, + d as Ze, +} from "../chunks/g9MKNE1A.js"; +import { e as ta } from "../chunks/LGRbXsL1.js"; +import { e as ea } from "../chunks/CmhsLcKe.js"; +import { r as aa } from "../chunks/DouSnzU9.js"; +(function () { + try { + var u = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + u.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var u = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + v = new u.Error().stack; + v && + ((u._sentryDebugIds = u._sentryDebugIds || {}), + (u._sentryDebugIds[v] = "88b4314f-84d1-4dfd-bc7e-6d4107a18a40"), + (u._sentryDebugIdIdentifier = + "sentry-dbid-88b4314f-84d1-4dfd-bc7e-6d4107a18a40")); + })(); +} catch {} +const ra = () => "Mod metrics", + sa = () => "Métricas dos mods", + oa = (u = {}, v = {}) => ((v.locale ?? Ye()) === "en" ? ra() : sa()); +var na = (u, v) => v("mod"), + da = (u, v) => v("suspensionRate"), + ia = (u, v) => v("ignored"), + la = (u, v) => v("timeout"), + ca = (u, v) => v("ban"), + va = (u, v) => v("total"), + ua = M( + '
              ' + ), + ba = M(' '), + _a = M(' '), + ma = M( + '
              ' + ), + fa = M( + '

              Leaderboard (Mods)

              ' + ); +function Oa(u, v) { + je(v, !0); + let h = x(!1), + E = x(null), + y = x(T([])); + T({}); + function Rt(r) { + return r.toISOString().slice(0, 16); + } + const Dt = new Date(), + Gt = new Date(Dt.getTime() - 10080 * 60 * 1e3); + let j = x(T(Rt(Gt))), + A = x(T(Rt(Dt))); + function U(r) { + const i = new Date(r); + return isNaN(i.getTime()) ? null : i.toISOString(); + } + let p = x("total"), + f = x("desc"); + function w(r) { + a(p) === r + ? _(f, a(f) === "asc" ? "desc" : "asc", !0) + : (_(p, r, !0), _(f, r === "mod" ? "asc" : "desc", !0)); + } + function St(r) { + const i = [...r]; + return ( + i.sort((l, c) => { + let s, n; + switch (a(p)) { + case "mod": + return ( + (s = l.user.id.toString()), + (n = c.user.id.toString()), + a(f) === "asc" + ? s < n + ? -1 + : s > n + ? 1 + : 0 + : s > n + ? -1 + : s < n + ? 1 + : 0 + ); + case "total": + (s = l.total), (n = c.total); + break; + case "ban": + (s = l.ban), (n = c.ban); + break; + case "ignored": + (s = l.ignored), (n = c.ignored); + break; + case "timeout": + (s = l.timeout), (n = c.timeout); + break; + case "suspensionRate": + (s = l.suspensionRate), (n = c.suspensionRate); + break; + default: + (s = 0), (n = 0); + } + return a(f) === "asc" ? s - n : n - s; + }), + i + ); + } + function Ht(r, i = 1) { + return `${(r * 100).toFixed(i)}%`; + } + async function N() { + try { + _(h, !0), _(E, null); + const r = U(a(j)), + i = U(a(A)); + if (!r || !i) throw new Error("Datas inválidas"); + const l = await Ve.getClosedTicketsByMod(r, i); + _(y, l ?? [], !0); + } catch (r) { + r.status === 403 || r.status === 401 + ? Fe("/404") + : _(E, (r == null ? void 0 : r.message) ?? ea(), !0), + _(y, [], !0); + } finally { + _(h, !1); + } + } + Me(N); + function Jt(r) { + r.preventDefault(), N(); + } + let k = x(T({ total: 0, ban: 0, ignored: 0, timeout: 0 })); + Ae(() => { + const r = a(y); + if (!r || r.length === 0) { + _(k, { total: 0, ban: 0, ignored: 0, timeout: 0 }, !0); + return; + } + const i = r.length, + l = r.reduce( + (s, n) => ( + (s.total += n.total), + (s.ban += n.ban), + (s.ignored += n.ignored), + (s.timeout += n.timeout), + s + ), + { total: 0, ban: 0, ignored: 0, timeout: 0 } + ), + c = (s) => Math.round(s * 100) / 100; + _( + k, + { + total: c(l.total / i), + ban: c(l.ban / i), + ignored: c(l.ignored / i), + timeout: c(l.timeout / i), + }, + !0 + ); + }); + function Qt(r, i) { + const l = [ + "assigned_mod_id", + "name", + "alliance_id", + "role", + "total", + "ban", + "ignored", + "timeout", + ].join(","), + c = r.map((s) => + [ + s.user.id, + s.user.name, + s.user.allianceId, + s.user.role, + s.total, + s.ban, + s.ignored, + s.timeout, + ].join(",") + ); + return [l, ...c].join(` +`); + } + function Xt() { + const r = St(a(y)), + i = Qt(r), + l = new Blob([i], { type: "text/csv;charset=utf-8;" }), + c = URL.createObjectURL(l), + s = document.createElement("a"), + n = U(a(j)) ?? "start", + m = U(a(A)) ?? "end"; + (s.href = c), + (s.download = `mods_leaderboard_${n}_${m}.csv`), + s.click(), + URL.revokeObjectURL(c); + } + var P = fa(); + Ce((r) => { + Oe.title = "FurryPlace - Admin - Mods - Leaderboard"; + }); + var F = t(P), + V = t(F), + Lt = o(t(V), 2), + Zt = t(Lt, !0); + e(Lt), e(V); + var K = o(V, 2), + W = t(K), + Tt = o(t(W), 2); + Yt(Tt), e(W); + var Y = o(W, 2), + $t = o(t(Y), 2); + Yt($t), e(Y); + var Mt = o(Y, 2), + z = t(Mt), + te = t(z, !0); + e(z); + var S = o(z, 2); + S.__click = Xt; + var ee = t(S, !0); + e(S); + var O = o(S, 2); + O.__click = N; + var ae = t(O); + We(ae, { class: "size-4" }), e(O), e(Mt), e(K), e(F); + var q = o(F, 2), + G = t(q), + H = t(G), + re = t(H, !0); + e(H); + var Et = o(H, 2), + se = t(Et, !0); + e(Et), e(G); + var J = o(G, 2), + Q = t(J), + oe = t(Q, !0); + e(Q); + var jt = o(Q, 2), + ne = t(jt, !0); + e(jt), e(J); + var X = o(J, 2), + Z = t(X), + de = t(Z, !0); + e(Z); + var At = o(Z, 2), + ie = t(At, !0); + e(At), e(X); + var Ut = o(X, 2), + tt = t(Ut), + le = t(tt, !0); + e(tt); + var zt = o(tt, 2), + ce = t(zt, !0); + e(zt), e(Ut), e(q); + var Ot = o(q, 2), + Bt = t(Ot), + et = t(Bt), + Ct = t(et), + at = t(Ct), + rt = t(at); + rt.__click = [na, w]; + var ve = t(rt); + e(rt), e(at); + var st = o(at), + ue = t(st, !0); + e(st); + var ot = o(st), + nt = t(ot); + nt.__click = [da, w]; + var be = t(nt); + e(nt), e(ot); + var dt = o(ot), + it = t(dt); + it.__click = [ia, w]; + var _e = t(it); + e(it), e(dt); + var lt = o(dt), + ct = t(lt); + ct.__click = [la, w]; + var me = t(ct); + e(ct), e(lt); + var vt = o(lt), + ut = t(vt); + ut.__click = [ca, w]; + var fe = t(ut); + e(ut), e(vt); + var Nt = o(vt), + bt = t(Nt); + bt.__click = [va, w]; + var pe = t(bt); + e(bt), e(Nt), e(Ct), e(et); + var Pt = o(et), + xe = t(Pt); + { + var ge = (r) => { + var i = ua(), + l = t(i), + c = t(l), + s = o(t(c), 2), + n = t(s, !0); + e(s), e(c), e(l), e(i), $((m) => d(n, m), [() => qe()]), g(r, i); + }, + he = (r) => { + var i = wt(), + l = kt(i); + { + var c = (n) => { + var m = ba(), + I = t(m), + _t = t(I, !0); + e(I), e(m), $(() => d(_t, a(E))), g(n, m); + }, + s = (n) => { + var m = wt(), + I = kt(m); + { + var _t = (R) => { + var D = _a(), + B = t(D), + L = t(B, !0); + e(B), e(D), $((b) => d(L, b), [() => Ge()]), g(R, D); + }, + ye = (R) => { + var D = wt(), + B = kt(D); + Be( + B, + 17, + () => St(a(y)), + (L) => L.user.id, + (L, b) => { + var mt = ma(), + ft = t(mt), + pt = t(ft), + Ft = t(pt), + Vt = t(Ft); + Ke(Vt, { + class: "size-8 border sm:size-10", + get userId() { + return a(b).user.id; + }, + get pictureUrl() { + return a(b).user.picture; + }, + }); + var we = o(Vt); + e(Ft), e(pt), e(ft); + var xt = o(ft), + ke = t(xt, !0); + e(xt); + var C = o(xt); + let Kt; + var Ie = t(C, !0); + e(C); + var gt = o(C), + Re = t(gt, !0); + e(gt); + var ht = o(gt), + De = t(ht, !0); + e(ht); + var yt = o(ht), + Se = t(yt, !0); + e(yt); + var Wt = o(yt), + Le = t(Wt, !0); + e(Wt), + e(mt), + $( + (Te, $e) => { + Ne( + pt, + "href", + `/admin/users?id=${a(b).user.id ?? ""}` + ), + d( + we, + ` ${a(b).user.name ?? ""} #${ + a(b).user.id ?? "" + }` + ), + d(ke, a(b).user.role), + (Kt = Pe(C, 1, "text-error", null, Kt, Te)), + d(Ie, $e), + d(Re, a(b).ignored), + d(De, a(b).timeout), + d(Se, a(b).ban), + d(Le, a(b).total); + }, + [ + () => ({ + "text-error": + a(b).suspensionRate > 0.7 && a(b).total > 50, + }), + () => Ht(a(b).suspensionRate, 1), + ] + ), + g(L, mt); + } + ), + g(R, D); + }; + It( + I, + (R) => { + a(y).length === 0 ? R(_t) : R(ye, !1); + }, + !0 + ); + } + g(n, m); + }; + It( + l, + (n) => { + a(E) ? n(c) : n(s, !1); + }, + !0 + ); + } + g(r, i); + }; + It(xe, (r) => { + a(h) ? r(ge) : r(he, !1); + }); + } + e(Pt), + e(Bt), + e(Ot), + e(P), + $( + (r, i, l, c, s, n, m, I) => { + d(Zt, r), + (z.disabled = a(h)), + d(te, i), + (S.disabled = a(h) || a(y).length === 0), + d(ee, l), + (O.disabled = a(h)), + d(re, c), + d(se, a(k).total), + d(oe, s), + d(ne, a(k).ban), + d(de, n), + d(ie, a(k).ignored), + d(le, m), + d(ce, a(k).timeout), + d(ve, `Mod ${a(p) === "mod" ? (a(f) === "asc" ? "▲" : "▼") : ""}`), + d(ue, I), + d( + be, + `Suspension rate ${ + a(p) === "suspensionRate" ? (a(f) === "asc" ? "▲" : "▼") : "" + }` + ), + d( + _e, + `Ignored ${a(p) === "ignored" ? (a(f) === "asc" ? "▲" : "▼") : ""}` + ), + d( + me, + `Timeout ${a(p) === "timeout" ? (a(f) === "asc" ? "▲" : "▼") : ""}` + ), + d(fe, `Ban ${a(p) === "ban" ? (a(f) === "asc" ? "▲" : "▼") : ""}`), + d( + pe, + `Total ${a(p) === "total" ? (a(f) === "asc" ? "▲" : "▼") : ""}` + ); + }, + [ + () => oa(), + () => He(), + () => ta(), + () => Je(), + () => Qe(), + () => Xe(), + () => Ze(), + () => aa(), + ] + ), + Ue("submit", K, Jt), + qt( + Tt, + () => a(j), + (r) => _(j, r) + ), + qt( + $t, + () => a(A), + (r) => _(A, r) + ), + g(u, P), + ze(); +} +Ee(["click"]); +export { Oa as component }; diff --git a/frontend-backup/_app/immutable/nodes/11.7LNU-V2c.js b/frontend-backup/_app/immutable/nodes/11.7LNU-V2c.js deleted file mode 100644 index f2ed738..0000000 --- a/frontend-backup/_app/immutable/nodes/11.7LNU-V2c.js +++ /dev/null @@ -1,2 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{o as je}from"../chunks/4WsUhDWi.js";import{at as Ae,p as Me,au as g,av as L,y as Ue,g as r,aw as b,f as E,s as n,d as t,t as T,ax as ze,b as h,c as Ne,$ as Oe,r as e,ay as wt,a as kt}from"../chunks/BDALf20I.js";import{s as d}from"../chunks/4k6DpCgf.js";import{i as Rt}from"../chunks/Bke_korE.js";import{e as Be}from"../chunks/CZW2bcQi.js";import{h as Ce}from"../chunks/BUhRjcOt.js";import{r as Wt,s as Fe,a as Pe}from"../chunks/BNZUboE0.js";import{b as Yt}from"../chunks/DS58drb5.js";import{g as Ve}from"../chunks/B4HM4TqG.js";import{a as Ke}from"../chunks/DffDvEhl.js";import{P as Qe}from"../chunks/DCxPsWiR.js";import{R as We}from"../chunks/rLj4C5Bn.js";import{g as qt}from"../chunks/DklPLC_x.js";import{l as Ye}from"../chunks/BMfwGdZU.js";import{n as qe}from"../chunks/DFzO1c4b.js";import{a as Ge,m as He,b as Je,c as Xe,d as Ze}from"../chunks/DXjtejww.js";import{e as tr}from"../chunks/BpEsgMDn.js";import{e as er}from"../chunks/ChoU6b3z.js";(function(){try{var v=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};v.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var v=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},u=new v.Error().stack;u&&(v._sentryDebugIds=v._sentryDebugIds||{},v._sentryDebugIds[u]="106dbd45-a0ec-4fa7-a6b6-735319752f28",v._sentryDebugIdIdentifier="sentry-dbid-106dbd45-a0ec-4fa7-a6b6-735319752f28")})()}catch{}const rr=()=>"Number of reports treated per moderator in the period",ar=()=>"Quantidade de reports tratados por moderador no período",sr=(v={},u={})=>(u.locale??qt())==="en"?rr():ar(),or=()=>"Treated reports",nr=()=>"Reports tratados",dr=(v={},u={})=>(u.locale??qt())==="en"?or():nr();var lr=(v,u)=>u("mod"),ir=(v,u)=>u("suspensionRate"),cr=(v,u)=>u("ignored"),ur=(v,u)=>u("timeout"),vr=(v,u)=>u("ban"),_r=(v,u)=>u("total"),br=E('
              '),mr=E(' '),pr=E(' '),fr=E('
              '),xr=E('

              Role
              ');function Or(v,u){Me(u,!0);let x=g(!1),j=g(null),y=g(L([]));L({});function It(a){return a.toISOString().slice(0,16)}const Dt=new Date,Gt=new Date(Dt.getTime()-10080*60*1e3);let A=g(L(It(Gt))),M=g(L(It(Dt)));function U(a){const l=new Date(a);return isNaN(l.getTime())?null:l.toISOString()}let f=g("total"),p=g("desc");function w(a){r(f)===a?b(p,r(p)==="asc"?"desc":"asc",!0):(b(f,a,!0),b(p,a==="mod"?"asc":"desc",!0))}function St(a){const l=[...a];return l.sort((i,c)=>{let s,o;switch(r(f)){case"mod":return s=i.user.id.toString(),o=c.user.id.toString(),r(p)==="asc"?so?1:0:s>o?-1:s{const a=r(y);if(!a||a.length===0){b(k,{total:0,ban:0,ignored:0,timeout:0},!0);return}const l=a.length,i=a.reduce((s,o)=>(s.total+=o.total,s.ban+=o.ban,s.ignored+=o.ignored,s.timeout+=o.timeout,s),{total:0,ban:0,ignored:0,timeout:0}),c=s=>Math.round(s*100)/100;b(k,{total:c(i.total/l),ban:c(i.ban/l),ignored:c(i.ignored/l),timeout:c(i.timeout/l)},!0)});function Xt(a,l){const i=["assigned_mod_id","name","alliance_id","role","total_reports_closed","ban","ignored","timeout","suspension_rate"].join(","),c=a.map(s=>[s.user.id,s.user.name,s.user.allianceId,s.user.role,s.total,s.ban,s.ignored,s.timeout,(s.suspensionRate??0).toFixed(4)].join(","));return[i,...c].join(` -`)}function Zt(){const a=St(r(y)),l=Xt(a),i=new Blob([l],{type:"text/csv;charset=utf-8;"}),c=URL.createObjectURL(i),s=document.createElement("a"),o=U(r(A))??"start",m=U(r(M))??"end";s.href=c,s.download=`reports_leaderboard_${o}_${m}.csv`,s.click(),URL.revokeObjectURL(c)}var F=xr();Ce(a=>{Oe.title="Wplace - Admin - Reports - Leaderboard"});var P=t(F),V=t(P),K=t(V),te=t(K);e(K);var $t=n(K,2),ee=t($t,!0);e($t),e(V);var Q=n(V,2),W=t(Q),Lt=n(t(W),2);Wt(Lt),e(W);var Y=n(W,2),Tt=n(t(Y),2);Wt(Tt),e(Y);var Et=n(Y,2),z=t(Et),re=t(z,!0);e(z);var S=n(z,2);S.__click=Zt;var ae=t(S,!0);e(S);var N=n(S,2);N.__click=C;var se=t(N);We(se,{class:"size-4"}),e(N),e(Et),e(Q),e(P);var q=n(P,2),G=t(q),H=t(G),oe=t(H,!0);e(H);var jt=n(H,2),ne=t(jt,!0);e(jt),e(G);var J=n(G,2),X=t(J),de=t(X,!0);e(X);var At=n(X,2),le=t(At,!0);e(At),e(J);var Z=n(J,2),tt=t(Z),ie=t(tt,!0);e(tt);var Mt=n(tt,2),ce=t(Mt,!0);e(Mt),e(Z);var Ut=n(Z,2),et=t(Ut),ue=t(et,!0);e(et);var zt=n(et,2),ve=t(zt,!0);e(zt),e(Ut),e(q);var Nt=n(q,2),Ot=t(Nt),rt=t(Ot),Bt=t(rt),at=t(Bt),st=t(at);st.__click=[lr,w];var _e=t(st);e(st),e(at);var ot=n(at,2),nt=t(ot);nt.__click=[ir,w];var be=t(nt);e(nt),e(ot);var dt=n(ot),lt=t(dt);lt.__click=[cr,w];var me=t(lt);e(lt),e(dt);var it=n(dt),ct=t(it);ct.__click=[ur,w];var pe=t(ct);e(ct),e(it);var ut=n(it),vt=t(ut);vt.__click=[vr,w];var fe=t(vt);e(vt),e(ut);var Ct=n(ut),_t=t(Ct);_t.__click=[_r,w];var xe=t(_t);e(_t),e(Ct),e(Bt),e(rt);var Ft=n(rt),ge=t(Ft);{var he=a=>{var l=br(),i=t(l),c=t(i),s=n(t(c),2),o=t(s,!0);e(s),e(c),e(i),e(l),T(m=>d(o,m),[()=>Ye()]),h(a,l)},ye=a=>{var l=wt(),i=kt(l);{var c=o=>{var m=mr(),R=t(m),bt=t(R,!0);e(R),e(m),T(()=>d(bt,r(j))),h(o,m)},s=o=>{var m=wt(),R=kt(m);{var bt=I=>{var D=pr(),O=t(D),$=t(O,!0);e(O),e(D),T(_=>d($,_),[()=>qe()]),h(I,D)},we=I=>{var D=wt(),O=kt(D);Be(O,17,()=>St(r(y)),$=>$.user.id,($,_)=>{var mt=fr(),pt=t(mt),ft=t(pt),Pt=t(ft),Vt=t(Pt);Qe(Vt,{class:"size-8 border sm:size-10",get userId(){return r(_).user.id},get pictureUrl(){return r(_).user.picture}});var ke=n(Vt);e(Pt),e(ft),e(pt);var xt=n(pt),Re=t(xt,!0);e(xt);var B=n(xt);let Kt;var Ie=t(B,!0);e(B);var gt=n(B),De=t(gt,!0);e(gt);var ht=n(gt),Se=t(ht,!0);e(ht);var yt=n(ht),$e=t(yt,!0);e(yt);var Qt=n(yt),Le=t(Qt,!0);e(Qt),e(mt),T((Te,Ee)=>{Fe(ft,"href",`/admin/users?id=${r(_).user.id??""}`),d(ke,` ${r(_).user.name??""} #${r(_).user.id??""}`),d(Re,r(_).user.role),Kt=Pe(B,1,"text-error",null,Kt,Te),d(Ie,Ee),d(De,r(_).ignored),d(Se,r(_).timeout),d($e,r(_).ban),d(Le,r(_).total)},[()=>({"text-error":r(_).suspensionRate>.7&&r(_).total>50}),()=>Ht(r(_).suspensionRate,1)]),h($,mt)}),h(I,D)};Rt(R,I=>{r(y).length===0?I(bt):I(we,!1)},!0)}h(o,m)};Rt(i,o=>{r(j)?o(c):o(s,!1)},!0)}h(a,l)};Rt(ge,a=>{r(x)?a(he):a(ye,!1)})}e(Ft),e(Ot),e(Nt),e(F),T((a,l,i,c,s,o,m,R)=>{d(te,`Leaderboard (${a??""})`),d(ee,l),z.disabled=r(x),d(re,i),S.disabled=r(x)||r(y).length===0,d(ae,c),N.disabled=r(x),d(oe,s),d(ne,r(k).total),d(de,o),d(le,r(k).ban),d(ie,m),d(ce,r(k).ignored),d(ue,R),d(ve,r(k).timeout),d(_e,`Mod ${r(f)==="mod"?r(p)==="asc"?"▲":"▼":""}`),d(be,`Suspension rate ${r(f)==="suspensionRate"?r(p)==="asc"?"▲":"▼":""}`),d(me,`Ignored ${r(f)==="ignored"?r(p)==="asc"?"▲":"▼":""}`),d(pe,`Timeout ${r(f)==="timeout"?r(p)==="asc"?"▲":"▼":""}`),d(fe,`Ban ${r(f)==="ban"?r(p)==="asc"?"▲":"▼":""}`),d(xe,`Total ${r(f)==="total"?r(p)==="asc"?"▲":"▼":""}`)},[()=>dr(),()=>sr(),()=>Ge(),()=>tr(),()=>He(),()=>Je(),()=>Xe(),()=>Ze()]),ze("submit",Q,Jt),Yt(Lt,()=>r(A),a=>b(A,a)),Yt(Tt,()=>r(M),a=>b(M,a)),h(v,F),Ne()}Ae(["click"]);export{Or as component}; diff --git a/frontend-backup/_app/immutable/nodes/11.C3Fd3lks.js b/frontend-backup/_app/immutable/nodes/11.C3Fd3lks.js new file mode 100644 index 0000000..de5c1dd --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/11.C3Fd3lks.js @@ -0,0 +1,563 @@ +import "../chunks/Ch2Ub8FX.js"; +import { o as je } from "../chunks/DoL3ojdE.js"; +import { + at as Ae, + p as Me, + au as g, + av as L, + y as Ue, + g as r, + aw as b, + f as E, + s as n, + d as t, + t as T, + ax as ze, + b as h, + c as Ne, + $ as Oe, + r as e, + ay as wt, + a as kt, +} from "../chunks/CMvZtFtm.js"; +import { s as d } from "../chunks/DVA6u9-7.js"; +import { i as Rt } from "../chunks/BF50aS-j.js"; +import { e as Be } from "../chunks/CXkjfmFU.js"; +import { h as Ce } from "../chunks/P77cUGnY.js"; +import { r as Wt, s as Fe, a as Pe } from "../chunks/C5yqZvKC.js"; +import { b as Yt } from "../chunks/Dpga8uG-.js"; +import { g as Ve } from "../chunks/CyB--sFG.js"; +import { a as Ke } from "../chunks/BRM3t761.js"; +import { P as Qe } from "../chunks/D3yaN7Zl.js"; +import { R as We } from "../chunks/m3o6lEf1.js"; +import { g as qt } from "../chunks/CV9xcpLq.js"; +import { l as Ye } from "../chunks/BHI5vujT.js"; +import { n as qe } from "../chunks/Blc0Ir5M.js"; +import { + a as Ge, + m as He, + b as Je, + c as Xe, + d as Ze, +} from "../chunks/g9MKNE1A.js"; +import { e as tr } from "../chunks/LGRbXsL1.js"; +import { e as er } from "../chunks/CmhsLcKe.js"; +(function () { + try { + var v = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + v.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var v = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + u = new v.Error().stack; + u && + ((v._sentryDebugIds = v._sentryDebugIds || {}), + (v._sentryDebugIds[u] = "c0720b76-8acb-4662-837b-1ac310dfea18"), + (v._sentryDebugIdIdentifier = + "sentry-dbid-c0720b76-8acb-4662-837b-1ac310dfea18")); + })(); +} catch {} +const rr = () => "Number of reports treated per moderator in the period", + ar = () => "Quantidade de reports tratados por moderador no período", + sr = (v = {}, u = {}) => ((u.locale ?? qt()) === "en" ? rr() : ar()), + or = () => "Treated reports", + nr = () => "Reports tratados", + dr = (v = {}, u = {}) => ((u.locale ?? qt()) === "en" ? or() : nr()); +var lr = (v, u) => u("mod"), + ir = (v, u) => u("suspensionRate"), + cr = (v, u) => u("ignored"), + ur = (v, u) => u("timeout"), + vr = (v, u) => u("ban"), + _r = (v, u) => u("total"), + br = E( + '
              ' + ), + mr = E(' '), + pr = E(' '), + fr = E( + '
              ' + ), + xr = E( + '

              Role
              ' + ); +function Or(v, u) { + Me(u, !0); + let x = g(!1), + j = g(null), + y = g(L([])); + L({}); + function It(a) { + return a.toISOString().slice(0, 16); + } + const Dt = new Date(), + Gt = new Date(Dt.getTime() - 10080 * 60 * 1e3); + let A = g(L(It(Gt))), + M = g(L(It(Dt))); + function U(a) { + const l = new Date(a); + return isNaN(l.getTime()) ? null : l.toISOString(); + } + let f = g("total"), + p = g("desc"); + function w(a) { + r(f) === a + ? b(p, r(p) === "asc" ? "desc" : "asc", !0) + : (b(f, a, !0), b(p, a === "mod" ? "asc" : "desc", !0)); + } + function St(a) { + const l = [...a]; + return ( + l.sort((i, c) => { + let s, o; + switch (r(f)) { + case "mod": + return ( + (s = i.user.id.toString()), + (o = c.user.id.toString()), + r(p) === "asc" + ? s < o + ? -1 + : s > o + ? 1 + : 0 + : s > o + ? -1 + : s < o + ? 1 + : 0 + ); + case "total": + (s = i.total), (o = c.total); + break; + case "ban": + (s = i.ban), (o = c.ban); + break; + case "ignored": + (s = i.ignored), (o = c.ignored); + break; + case "timeout": + (s = i.timeout), (o = c.timeout); + break; + case "suspensionRate": + (s = i.suspensionRate ?? 0), (o = c.suspensionRate ?? 0); + break; + default: + (s = 0), (o = 0); + } + return r(p) === "asc" ? s - o : o - s; + }), + l + ); + } + function Ht(a, l = 1) { + return `${((a ?? 0) * 100).toFixed(l)}%`; + } + async function C() { + try { + b(x, !0), b(j, null); + const a = U(r(A)), + l = U(r(M)); + if (!a || !l) throw new Error("Datas inválidas"); + const i = await Ke.getClosedReportsByMod(a, l); + b(y, i ?? [], !0); + } catch (a) { + a.status === 403 || a.status === 401 + ? Ve("/404") + : b(j, (a == null ? void 0 : a.message) ?? er(), !0), + b(y, [], !0); + } finally { + b(x, !1); + } + } + je(C); + function Jt(a) { + a.preventDefault(), C(); + } + let k = g(L({ total: 0, ban: 0, ignored: 0, timeout: 0 })); + Ue(() => { + const a = r(y); + if (!a || a.length === 0) { + b(k, { total: 0, ban: 0, ignored: 0, timeout: 0 }, !0); + return; + } + const l = a.length, + i = a.reduce( + (s, o) => ( + (s.total += o.total), + (s.ban += o.ban), + (s.ignored += o.ignored), + (s.timeout += o.timeout), + s + ), + { total: 0, ban: 0, ignored: 0, timeout: 0 } + ), + c = (s) => Math.round(s * 100) / 100; + b( + k, + { + total: c(i.total / l), + ban: c(i.ban / l), + ignored: c(i.ignored / l), + timeout: c(i.timeout / l), + }, + !0 + ); + }); + function Xt(a, l) { + const i = [ + "assigned_mod_id", + "name", + "alliance_id", + "role", + "total_reports_closed", + "ban", + "ignored", + "timeout", + "suspension_rate", + ].join(","), + c = a.map((s) => + [ + s.user.id, + s.user.name, + s.user.allianceId, + s.user.role, + s.total, + s.ban, + s.ignored, + s.timeout, + (s.suspensionRate ?? 0).toFixed(4), + ].join(",") + ); + return [i, ...c].join(` +`); + } + function Zt() { + const a = St(r(y)), + l = Xt(a), + i = new Blob([l], { type: "text/csv;charset=utf-8;" }), + c = URL.createObjectURL(i), + s = document.createElement("a"), + o = U(r(A)) ?? "start", + m = U(r(M)) ?? "end"; + (s.href = c), + (s.download = `reports_leaderboard_${o}_${m}.csv`), + s.click(), + URL.revokeObjectURL(c); + } + var F = xr(); + Ce((a) => { + Oe.title = "FurryPlace - Admin - Reports - Leaderboard"; + }); + var P = t(F), + V = t(P), + K = t(V), + te = t(K); + e(K); + var $t = n(K, 2), + ee = t($t, !0); + e($t), e(V); + var Q = n(V, 2), + W = t(Q), + Lt = n(t(W), 2); + Wt(Lt), e(W); + var Y = n(W, 2), + Tt = n(t(Y), 2); + Wt(Tt), e(Y); + var Et = n(Y, 2), + z = t(Et), + re = t(z, !0); + e(z); + var S = n(z, 2); + S.__click = Zt; + var ae = t(S, !0); + e(S); + var N = n(S, 2); + N.__click = C; + var se = t(N); + We(se, { class: "size-4" }), e(N), e(Et), e(Q), e(P); + var q = n(P, 2), + G = t(q), + H = t(G), + oe = t(H, !0); + e(H); + var jt = n(H, 2), + ne = t(jt, !0); + e(jt), e(G); + var J = n(G, 2), + X = t(J), + de = t(X, !0); + e(X); + var At = n(X, 2), + le = t(At, !0); + e(At), e(J); + var Z = n(J, 2), + tt = t(Z), + ie = t(tt, !0); + e(tt); + var Mt = n(tt, 2), + ce = t(Mt, !0); + e(Mt), e(Z); + var Ut = n(Z, 2), + et = t(Ut), + ue = t(et, !0); + e(et); + var zt = n(et, 2), + ve = t(zt, !0); + e(zt), e(Ut), e(q); + var Nt = n(q, 2), + Ot = t(Nt), + rt = t(Ot), + Bt = t(rt), + at = t(Bt), + st = t(at); + st.__click = [lr, w]; + var _e = t(st); + e(st), e(at); + var ot = n(at, 2), + nt = t(ot); + nt.__click = [ir, w]; + var be = t(nt); + e(nt), e(ot); + var dt = n(ot), + lt = t(dt); + lt.__click = [cr, w]; + var me = t(lt); + e(lt), e(dt); + var it = n(dt), + ct = t(it); + ct.__click = [ur, w]; + var pe = t(ct); + e(ct), e(it); + var ut = n(it), + vt = t(ut); + vt.__click = [vr, w]; + var fe = t(vt); + e(vt), e(ut); + var Ct = n(ut), + _t = t(Ct); + _t.__click = [_r, w]; + var xe = t(_t); + e(_t), e(Ct), e(Bt), e(rt); + var Ft = n(rt), + ge = t(Ft); + { + var he = (a) => { + var l = br(), + i = t(l), + c = t(i), + s = n(t(c), 2), + o = t(s, !0); + e(s), e(c), e(i), e(l), T((m) => d(o, m), [() => Ye()]), h(a, l); + }, + ye = (a) => { + var l = wt(), + i = kt(l); + { + var c = (o) => { + var m = mr(), + R = t(m), + bt = t(R, !0); + e(R), e(m), T(() => d(bt, r(j))), h(o, m); + }, + s = (o) => { + var m = wt(), + R = kt(m); + { + var bt = (I) => { + var D = pr(), + O = t(D), + $ = t(O, !0); + e(O), e(D), T((_) => d($, _), [() => qe()]), h(I, D); + }, + we = (I) => { + var D = wt(), + O = kt(D); + Be( + O, + 17, + () => St(r(y)), + ($) => $.user.id, + ($, _) => { + var mt = fr(), + pt = t(mt), + ft = t(pt), + Pt = t(ft), + Vt = t(Pt); + Qe(Vt, { + class: "size-8 border sm:size-10", + get userId() { + return r(_).user.id; + }, + get pictureUrl() { + return r(_).user.picture; + }, + }); + var ke = n(Vt); + e(Pt), e(ft), e(pt); + var xt = n(pt), + Re = t(xt, !0); + e(xt); + var B = n(xt); + let Kt; + var Ie = t(B, !0); + e(B); + var gt = n(B), + De = t(gt, !0); + e(gt); + var ht = n(gt), + Se = t(ht, !0); + e(ht); + var yt = n(ht), + $e = t(yt, !0); + e(yt); + var Qt = n(yt), + Le = t(Qt, !0); + e(Qt), + e(mt), + T( + (Te, Ee) => { + Fe( + ft, + "href", + `/admin/users?id=${r(_).user.id ?? ""}` + ), + d( + ke, + ` ${r(_).user.name ?? ""} #${ + r(_).user.id ?? "" + }` + ), + d(Re, r(_).user.role), + (Kt = Pe(B, 1, "text-error", null, Kt, Te)), + d(Ie, Ee), + d(De, r(_).ignored), + d(Se, r(_).timeout), + d($e, r(_).ban), + d(Le, r(_).total); + }, + [ + () => ({ + "text-error": + r(_).suspensionRate > 0.7 && r(_).total > 50, + }), + () => Ht(r(_).suspensionRate, 1), + ] + ), + h($, mt); + } + ), + h(I, D); + }; + Rt( + R, + (I) => { + r(y).length === 0 ? I(bt) : I(we, !1); + }, + !0 + ); + } + h(o, m); + }; + Rt( + i, + (o) => { + r(j) ? o(c) : o(s, !1); + }, + !0 + ); + } + h(a, l); + }; + Rt(ge, (a) => { + r(x) ? a(he) : a(ye, !1); + }); + } + e(Ft), + e(Ot), + e(Nt), + e(F), + T( + (a, l, i, c, s, o, m, R) => { + d(te, `Leaderboard (${a ?? ""})`), + d(ee, l), + (z.disabled = r(x)), + d(re, i), + (S.disabled = r(x) || r(y).length === 0), + d(ae, c), + (N.disabled = r(x)), + d(oe, s), + d(ne, r(k).total), + d(de, o), + d(le, r(k).ban), + d(ie, m), + d(ce, r(k).ignored), + d(ue, R), + d(ve, r(k).timeout), + d(_e, `Mod ${r(f) === "mod" ? (r(p) === "asc" ? "▲" : "▼") : ""}`), + d( + be, + `Suspension rate ${ + r(f) === "suspensionRate" ? (r(p) === "asc" ? "▲" : "▼") : "" + }` + ), + d( + me, + `Ignored ${r(f) === "ignored" ? (r(p) === "asc" ? "▲" : "▼") : ""}` + ), + d( + pe, + `Timeout ${r(f) === "timeout" ? (r(p) === "asc" ? "▲" : "▼") : ""}` + ), + d(fe, `Ban ${r(f) === "ban" ? (r(p) === "asc" ? "▲" : "▼") : ""}`), + d( + xe, + `Total ${r(f) === "total" ? (r(p) === "asc" ? "▲" : "▼") : ""}` + ); + }, + [ + () => dr(), + () => sr(), + () => Ge(), + () => tr(), + () => He(), + () => Je(), + () => Xe(), + () => Ze(), + ] + ), + ze("submit", Q, Jt), + Yt( + Lt, + () => r(A), + (a) => b(A, a) + ), + Yt( + Tt, + () => r(M), + (a) => b(M, a) + ), + h(v, F), + Ne(); +} +Ae(["click"]); +export { Or as component }; diff --git a/frontend-backup/_app/immutable/nodes/12.B7-BJxmw.js b/frontend-backup/_app/immutable/nodes/12.B7-BJxmw.js new file mode 100644 index 0000000..d5ba0a5 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/12.B7-BJxmw.js @@ -0,0 +1,1915 @@ +import "../chunks/Ch2Ub8FX.js"; +import { + at as As, + p as Ls, + au as B, + av as ze, + y as Ps, + g as e, + aw as _, + f as x, + d as a, + s as r, + t as f, + ax as Rs, + b as v, + c as zs, + $ as Ss, + r as t, + ay as Ve, + a as ue, + u as ne, + az as Bs, + b4 as Se, + n as Mt, +} from "../chunks/CMvZtFtm.js"; +import { s } from "../chunks/DVA6u9-7.js"; +import { i as h } from "../chunks/BF50aS-j.js"; +import { k as Ms } from "../chunks/BBgyHb-Z.js"; +import { e as jt } from "../chunks/CXkjfmFU.js"; +import { h as js } from "../chunks/P77cUGnY.js"; +import { r as $a, a as W, c as ka, s as xe } from "../chunks/C5yqZvKC.js"; +import { b as Da } from "../chunks/Dpga8uG-.js"; +import { g as Es } from "../chunks/CyB--sFG.js"; +import { p as Ta } from "../chunks/B6ZK_HZO.js"; +import { + a as ge, + t as oe, + b as Cs, + s as gr, + u as Fs, +} from "../chunks/BRM3t761.js"; +import { D as Os, p as Gs, R as Vs, c as qs } from "../chunks/Cqwd83E5.js"; +import { P as Et } from "../chunks/D3yaN7Zl.js"; +import { C as Ia, c as Hs, G as Ks, T as Qs } from "../chunks/DLfdYhzo.js"; +import { p as hr, L as yr, d as Ws } from "../chunks/BKioTOWR.js"; +import { + g as wr, + h as Ur, + n as $r, + a as Ys, + b as Zs, + c as Js, + t as Xs, + d as en, + l as tn, + M as an, + e as rn, + r as sn, + f as nn, + m as on, + i as dn, + j as ln, + u as cn, + k as vn, +} from "../chunks/DTFgqBF9.js"; +import { R as kr } from "../chunks/m3o6lEf1.js"; +import { g as j } from "../chunks/CV9xcpLq.js"; +import { r as Dr } from "../chunks/C3E1P42D.js"; +import { a as _n } from "../chunks/CZlv7MYe.js"; +import { l as un } from "../chunks/BHI5vujT.js"; +import { n as Tr } from "../chunks/Blc0Ir5M.js"; +import { e as pn } from "../chunks/LGRbXsL1.js"; +import { s as bn, l as mn } from "../chunks/BFFUopoM.js"; +import { g as Ct, a as fn } from "../chunks/lE0oaQc5.js"; +(function () { + try { + var u = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + u.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var u = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new u.Error().stack; + o && + ((u._sentryDebugIds = u._sentryDebugIds || {}), + (u._sentryDebugIds[o] = "bf5b26c3-5495-4e0a-8ea0-a651975fe366"), + (u._sentryDebugIdIdentifier = + "sentry-dbid-bf5b26c3-5495-4e0a-8ea0-a651975fe366")); + })(); +} catch {} +const xn = () => "Search user", + gn = () => "Buscar usuário", + Na = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? xn() : gn()), + hn = () => "Verifications", + yn = () => "Verificações", + wn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? hn() : yn()), + Un = () => "Notes", + $n = () => "Notas", + kn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Un() : $n()), + Dn = () => "No notes yet.", + Tn = () => "Sem notas ainda.", + In = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Dn() : Tn()), + Nn = () => "Add a note...", + An = () => "Adicionar uma nota...", + Ln = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Nn() : An()), + Pn = () => "Product", + Rn = () => "Produto", + zn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Pn() : Rn()), + Sn = () => "Price", + Bn = () => "Preço", + Mn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Sn() : Bn()), + jn = () => "Amount", + En = () => "Quantidade", + Cn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? jn() : En()), + Fn = () => "Date", + On = () => "Data", + Gn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Fn() : On()), + Vn = () => "No purchases", + qn = () => "Sem compras", + Hn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Vn() : qn()), + Kn = () => "Received reports", + Qn = () => "Reportes recebidos", + Wn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Kn() : Qn()), + Yn = () => "Sent reports", + Zn = () => "Reportes enviados", + Jn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Yn() : Zn()), + Xn = () => "Handled reports", + eo = () => "Reportes tratados", + to = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Xn() : eo()), + ao = () => "Received", + ro = () => "Recebidos", + so = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? ao() : ro()), + no = () => "Sent", + oo = () => "Enviados", + io = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? no() : oo()), + lo = () => "Handled", + co = () => "Tratados", + vo = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? lo() : co()), + _o = () => "Associated tickets", + uo = () => "Tickets atrelados", + po = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? _o() : uo()), + bo = () => "Moderator performance", + mo = () => "Desempenho do moderador", + fo = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? bo() : mo()), + Ir = (u, o = Bs) => { + var c = wo(); + let y; + var z = a(c); + { + var Y = (V) => { + var he = Se("MOD"); + v(V, he); + }, + l = (V) => { + var he = Ve(), + Be = ue(he); + { + var Ft = (P) => { + var q = Se("GM"); + v(P, q); + }, + Ot = (P) => { + var q = Se("ADMIN"); + v(P, q); + }; + h( + Be, + (P) => { + o() === "global_moderator" ? P(Ft) : P(Ot, !1); + }, + !0 + ); + } + v(V, he); + }; + h(z, (V) => { + o() === "moderator" ? V(Y) : V(l, !1); + }); + } + t(c), + f( + (V) => (y = W(c, 1, "badge badge-sm ml-0.5 font-semibold", null, y, V)), + [ + () => ({ + "badge-secondary": o() === "moderator" || o() == "global_moderator", + "badge-warning": o() === "admin", + }), + ] + ), + v(u, c); + }; +function xo(u, o, c, y, z, Y) { + e(o) && (_(c, "timeout"), _(y, z(e(o)), !0), _(Y, !0)); +} +function go(u, o, c, y, z, Y) { + e(o) && (_(c, "ban"), _(y, z(e(o)), !0), _(Y, !0)); +} +async function ho(u, o, c) { + if (e(o)) + try { + _(c, !0), + await ge.removeBan(e(o).id), + (e(o).ban_reason = null), + oe.success("Ban removido"); + } catch (y) { + oe.error((y == null ? void 0 : y.message) ?? "Falha ao remover ban"); + } finally { + _(c, !1); + } +} +async function yo(u, o, c) { + if (e(o)) + try { + _(c, !0), + await ge.removeTimeout(e(o).id), + (e(o).timeout_until = null), + oe.success("Timeout removido"); + } catch (y) { + oe.error((y == null ? void 0 : y.message) ?? "Falha ao remover timeout"); + } finally { + _(c, !1); + } +} +var wo = x(""), + Uo = x( + '
              ' + ), + $o = x('
              '), + ko = x('
              '), + Do = (u, o, c) => { + var y; + return o(String((y = e(c)) == null ? void 0 : y.id), "User ID copied"); + }, + To = x(' '), + Io = x(' '), + No = x(' '), + Ao = x('OK'), + Lo = x(''), + Po = x(' ', 1), + Ro = x( + '
              Alliance: Role:
              ' + ), + zo = (u, o) => { + u.key === "Enter" && o(); + }, + So = (u, o, c) => o(e(c)), + Bo = x( + '
              ' + ), + Mo = x('
              '), + jo = x( + ' ' + ), + Eo = x(' '), + Co = x('
              '), + Fo = x( + '
              Closed tickets
              Bans
              Ignored
              Timeouts
              ' + ), + Oo = x( + '

              ' + ), + Go = async (u, o, c, y) => { + _(o, "received"), c.has("received") || (await y("received", !0)); + }, + Vo = async (u, o, c, y) => { + _(o, "sent"), c.has("sent") || (await y("sent", !0)); + }, + qo = async (u, o, c, y) => { + _(o, "handled"), c.has("handled") || (await y("handled", !0)); + }, + Ho = async (u, o, c) => { + await o(e(c), !0); + }, + Ko = x( + '
              ' + ), + Qo = (u, o, c) => { + _(o, e(c), !0); + }, + Wo = x(" "), + Yo = x('
              '), + Zo = x( + '' + ), + Jo = x('
              '), + Xo = async (u, o, c, y) => { + (o[e(c)] += 1), await y(e(c)); + }, + ei = (u, o) => { + navigator.clipboard.writeText(e(o).reportedUser.id.toString()), + oe.success(cn()); + }, + ti = (u, o) => { + navigator.clipboard.writeText(String(e(o))), oe.success(vn()); + }, + ai = x(""), + ri = x( + ' ', + 1 + ), + si = x( + ' Link' + ), + ni = x( + ' Link' + ), + oi = x( + '

              ' + ), + ii = x( + 'Report location' + ), + di = x( + '' + ), + li = x( + '
              Report image
              ' + ), + ci = x( + '
              ' + ), + vi = x( + '

              ', + 1 + ), + _i = x(''), + ui = x( + '
              ' + ), + pi = x( + '
              Timeouts
              Droplets
              Email:
              Phone:
              Discord:

              ', + 1 + ), + bi = x( + '
              ' + ); +function Oi(u, o) { + Ls(o, !0); + let c = B(""), + y = B(null), + z = B(!1), + Y = B(null), + l = B(null), + V = B(ze([])), + he = B(""), + Be = B(ze([])), + Ft = B(0), + Ot = B(!0), + P = B(null), + q = B("received"); + ze([]), ze([]), ze([]); + let xt = B(!1), + Gt = B("timeout"), + gt = B(null); + const Nr = [-23.551814832869923, -46.63379610146964], + Ar = 1; + let ht = B(""), + Me = B(!1), + De = B(ze([])), + Te = B(void 0), + Vt = ze({ received: 0, sent: 0, handled: 0 }); + const Lr = 20; + let Je = ze(new Set()); + function Aa() { + const n = Number(e(ht)); + if (!Number.isFinite(n) || n === 0) { + oe.error("Informe um número diferente de 0"); + return; + } + zr(n), _(ht, ""); + } + function Pr() { + const n = ` + + + Action from Admin Panel + + `; + return Promise.resolve(new Blob([n], { type: "image/svg+xml" })); + } + function La(n) { + return { + id: n.id, + name: n.name ?? `#${n.id}`, + picture: n.picture ?? void 0, + allianceId: 0, + allianceName: "", + equippedFlag: 0, + }; + } + Ps(() => { + const n = Ta.url.searchParams.get("id"), + b = n ? Number(n) : null; + b !== e(y) && (_(y, b, !0), n && _(c, n, !0)), + e(y) != null && !isNaN(e(y)) ? Ra() : (_(l, null), _(Y, null)); + }); + function Pa(n) { + if (!n) return "—"; + const b = new Date(n); + return isNaN(b.getTime()) ? "—" : b.toLocaleString(); + } + function qt(n, b) { + if (!b) return "0.00%"; + const g = (n / b) * 100; + return `${(Math.round(g * 100) / 100).toFixed(2)}%`; + } + function Rr(n, b = "Copied!") { + navigator.clipboard.writeText(n), oe.success(b); + } + function Ht(n) { + if (!n) return !1; + const b = new Date(n).getTime(); + return !isNaN(b) && b > Date.now(); + } + async function qe(n, b = !1) { + if (e(l)) + try { + _(Me, !0), + b && ((Vt[n] = 0), _(De, [], !0), _(Te, void 0), Je.delete(n)); + const g = Vt[n], + H = await ge.getUserTickets({ + userId: e(l).id, + kind: n, + page: g, + pageSize: Lr, + }); + _(De, g === 0 ? H : [...e(De), ...H], !0), + !e(Te) && e(De).length > 0 && _(Te, e(De)[0], !0), + Je.add(n); + } catch (g) { + console.error("Erro ao carregar mini moderation", n, g), + oe.error( + (g == null ? void 0 : g.message) ?? "Falha ao carregar tickets" + ); + } finally { + _(Me, !1); + } + } + async function Ra() { + if (!e(y) || isNaN(e(y))) { + _(l, null), _(Y, null); + return; + } + try { + _(z, !0), _(Y, null); + const n = await ge.getUserInfoFull(e(y)); + if (!n) { + _(l, null), _(Y, "User not found"); + return; + } + n.timeout_until && !Ht(n.timeout_until) && (n.timeout_until = null), + _(l, n, !0), + Sr(), + _(Ft, 0); + try { + const b = await ge.getUserPurchases(n.id); + _( + Be, + b.sort( + (g, H) => + new Date(H.createdAt).getTime() - new Date(g.createdAt).getTime() + ), + !0 + ); + } catch (b) { + console.error("Erro ao carregar compras", b), _(Be, [], !0), _(Ot, !1); + } + if ((_(P, null), n.role !== "user")) + try { + const b = await ge.getModeratorClosedTicketStats(n.id); + _(P, b, !0); + } catch (b) { + console.error("Moderator stats error", b), _(P, null); + } + await qe("received", !0); + } catch (n) { + _(Y, (n == null ? void 0 : n.message) ?? "Erro ao carregar usuário", !0); + } finally { + _(z, !1); + } + } + async function za() { + const n = Number(e(c).trim()); + if (!n || isNaN(n)) { + oe.error("Informe um ID numérico por enquanto"); + return; + } + Es(`/admin/users?id=${n}`); + } + async function zr(n) { + e(l) && + (await ge.postSetUserDroplets(e(l).id, n), + (e(l).droplets = Math.max(0, (e(l).droplets ?? 0) + n)), + Sa( + `Droplets ${n >= 0 ? "+" : "-"}${Math.abs(n)}, agora ${e(l).droplets}` + )); + } + async function Sr() { + if (e(l) && e(l)) + try { + const n = await ge.getUserNotes(e(l).id); + _(V, n.notes, !0); + } catch (n) { + console.error("Erro ao carregar notas", n), _(V, [], !0); + } + } + async function Sa(n) { + if (!e(l)) return; + const b = n.trim(); + if (b) + try { + _(z, !0), + await ge.addUserNote(e(l).id, b), + (n = ""), + oe.success("Nota adicionada"); + try { + const g = await ge.getUserNotes(e(l).id); + _(V, g.notes, !0); + } catch (g) { + console.error("Erro ao recarregar notas", g); + } + } catch (g) { + oe.error((g == null ? void 0 : g.message) ?? "Falha ao adicionar nota"); + } finally { + _(z, !1); + } + } + function Br() { + var ae; + const n = ["id", "product_name", "price", "amount", "createdAt"].join(","), + b = e(Be).map((ie) => + [ie.id, ie.product_name, ie.price, ie.amount, ie.createdAt].join(",") + ), + g = [n, ...b].join(` +`), + H = new Blob([g], { type: "text/csv;charset=utf-8;" }), + Z = URL.createObjectURL(H), + te = document.createElement("a"); + (te.href = Z), + (te.download = `purchases_user_${ + ((ae = e(l)) == null ? void 0 : ae.id) ?? "unknown" + }.csv`), + te.click(), + URL.revokeObjectURL(Z); + } + var Kt = bi(); + js((n) => { + Ss.title = "FurryPlace - Admin - Users"; + }); + var Qt = a(Kt), + Wt = a(Qt), + Yt = a(Wt), + Zt = a(Yt), + Mr = a(Zt, !0); + t(Zt); + var Ba = r(Zt, 2); + $a(Ba), t(Yt); + var Ma = r(Yt, 2), + Xe = a(Ma); + Xe.__click = za; + var jr = a(Xe, !0); + t(Xe); + var yt = r(Xe, 2); + yt.__click = Ra; + var ja = a(yt); + kr(ja, { class: "size-4" }); + var Er = r(ja); + t(yt), t(Ma), t(Wt), t(Qt); + var Jt = r(Qt, 2), + Cr = a(Jt); + { + var Fr = (n) => { + var b = Uo(), + g = r(a(b), 2), + H = a(g, !0); + t(g), + t(b), + f( + (Z) => s(H, Z), + [ + () => { + var Z; + return ((Z = un) == null ? void 0 : Z()) ?? "Loading..."; + }, + ] + ), + v(n, b); + }, + Or = (n) => { + var b = Ve(), + g = ue(b); + { + var H = (te) => { + var ae = $o(), + ie = a(ae, !0); + t(ae), f(() => s(ie, e(Y))), v(te, ae); + }, + Z = (te) => { + var ae = Ve(), + ie = ue(ae); + { + var et = (Ie) => { + var de = ko(), + ye = a(de, !0); + t(de), + f( + (we) => s(ye, we), + [ + () => { + var we; + return ( + ((we = Tr) == null ? void 0 : we()) ?? + "No user selected" + ); + }, + ] + ), + v(Ie, de); + }, + wt = (Ie) => { + var de = Ro(), + ye = a(de), + we = a(ye); + { + let T = ne(() => e(l).picture ?? void 0); + Et(we, { + class: "size-16 border", + get userId() { + return e(l).id; + }, + get pictureUrl() { + return e(T); + }, + }); + } + var tt = r(we, 2), + at = a(tt), + je = a(at), + rt = a(je, !0); + t(je); + var st = r(je, 2), + Ut = a(st); + t(st); + var He = r(st, 2); + He.__click = [Do, Rr, l]; + var Ke = a(He); + Ia(Ke, { class: "size-3.5" }); + var $t = r(Ke); + t(He); + var nt = r(He, 2); + { + var Xt = (T) => { + var I = To(), + J = a(I, !0); + t(I), f(() => s(J, e(l).role)), v(T, I); + }; + h(nt, (T) => { + e(l).role !== "user" && T(Xt); + }); + } + t(at); + var ot = r(at, 2), + Ne = a(ot), + Qe = r(a(Ne)), + kt = a(Qe, !0); + t(Qe); + var it = r(Qe, 2); + { + var ea = (T) => { + var I = Se(); + f(() => s(I, `(#${e(l).alliance_id ?? ""})`)), v(T, I); + }; + h(it, (T) => { + e(l).alliance_id && T(ea); + }); + } + t(Ne); + var dt = r(Ne, 4), + We = r(a(dt)), + Dt = a(We, !0); + t(We), t(dt), t(ot), t(tt), t(ye); + var Tt = r(ye, 2), + Ee = a(Tt), + lt = a(Ee); + { + var ta = (T) => { + var I = Io(), + J = a(I); + t(I), + f(() => + s( + J, + `BANNED${ + e(l).ban_reason ? ` (${e(l).ban_reason})` : "" + }` + ) + ), + v(T, I); + }, + It = (T) => { + var I = Ve(), + J = ue(I); + { + var Ae = (le) => { + var re = No(), + Ue = a(re); + t(re), + f( + (_t) => s(Ue, `TIMEOUT until ${_t ?? ""}`), + [() => Pa(e(l).timeout_until)] + ), + v(le, re); + }, + Le = (le) => { + var re = Ao(); + v(le, re); + }; + h( + J, + (le) => { + Ht(e(l).timeout_until) ? le(Ae) : le(Le, !1); + }, + !0 + ); + } + v(T, I); + }; + h(lt, (T) => { + e(l).ban_reason ? T(ta) : T(It, !1); + }); + } + t(Ee); + var Ye = r(Ee, 2), + Nt = a(Ye); + { + var ct = (T) => { + var I = Po(), + J = ue(I); + { + var Ae = (re) => { + var Ue = Lo(); + Ue.__click = [xo, l, Gt, gt, La, xt]; + var _t = a(Ue); + Qs(_t, { class: "size-4" }), + Mt(), + t(Ue), + f(() => (Ue.disabled = e(z))), + v(re, Ue); + }; + h(J, (re) => { + Ht(e(l).timeout_until) || re(Ae); + }); + } + var Le = r(J, 2); + Le.__click = [go, l, Gt, gt, La, xt]; + var le = a(Le); + Ks(le, { class: "size-4" }), + Mt(), + t(Le), + f(() => (Le.disabled = e(z))), + v(T, I); + }; + h(Nt, (T) => { + var I; + ((I = Fs.data) == null ? void 0 : I.id) !== e(l).id && + !e(l).ban_reason && + T(ct); + }); + } + var Ce = r(Nt, 2); + Ce.__click = [yo, l, z]; + var vt = r(Ce, 2); + (vt.__click = [ho, l, z]), + t(Ye), + t(Tt), + t(de), + f( + (T) => { + s(rt, e(l).name), + s(Ut, `#${e(l).id ?? ""}`), + s($t, ` ${T ?? ""} ID`), + s(kt, e(l).alliance_name ?? "—"), + s(Dt, e(l).role), + (Ce.disabled = e(z)), + (vt.disabled = e(z)); + }, + [() => qs()] + ), + v(Ie, de); + }; + h( + ie, + (Ie) => { + e(l) ? Ie(wt, !1) : Ie(et); + }, + !0 + ); + } + v(te, ae); + }; + h( + g, + (te) => { + e(Y) ? te(H) : te(Z, !1); + }, + !0 + ); + } + v(n, b); + }; + h(Cr, (n) => { + e(z) ? n(Fr) : n(Or, !1); + }); + } + t(Jt); + var Ea = r(Jt, 2); + { + var Gr = (n) => { + var b = pi(), + g = ue(b), + H = a(g), + Z = a(H), + te = a(Z, !0); + t(Z); + var ae = r(Z, 2), + ie = a(ae, !0); + t(ae), t(H); + var et = r(H, 2), + wt = r(a(et), 2), + Ie = a(wt, !0); + t(wt), t(et); + var de = r(et, 2), + ye = a(de), + we = a(ye, !0); + t(ye); + var tt = r(ye, 2), + at = a(tt, !0); + t(tt), t(de); + var je = r(de, 2), + rt = a(je), + st = a(rt, !0); + t(rt); + var Ut = r(rt, 2), + He = a(Ut, !0); + t(Ut), t(je); + var Ke = r(je, 2), + $t = r(a(Ke), 2), + nt = a($t), + Xt = a(nt, !0); + t(nt); + var ot = r(nt, 2), + Ne = a(ot); + $a(Ne), (Ne.__keydown = [zo, Aa]); + var Qe = r(Ne, 2); + (Qe.__click = Aa), t(ot), t($t), t(Ke); + var kt = r(Ke, 2), + it = a(kt), + ea = a(it, !0); + t(it); + var dt = r(it, 2), + We = a(dt), + Dt = r(a(We)), + Tt = a(Dt, !0); + t(Dt), t(We); + var Ee = r(We, 2), + lt = r(a(Ee)), + ta = a(lt, !0); + t(lt), t(Ee); + var It = r(Ee, 2), + Ye = r(a(It)), + Nt = a(Ye, !0); + t(Ye), t(It), t(dt), t(kt), t(g); + var ct = r(g, 2), + Ce = a(ct), + vt = a(Ce), + T = a(vt, !0); + t(vt), t(Ce); + var I = r(Ce, 2), + J = a(I); + $a(J); + var Ae = r(J, 2); + Ae.__click = [So, Sa, he]; + var Le = a(Ae, !0); + t(Ae), t(I); + var le = r(I, 2), + re = a(le); + jt( + re, + 17, + () => e(V), + (d) => `${d.author.id}-${d.createdAt}`, + (d, i) => { + var U = Bo(), + D = a(U), + p = a(D), + $ = a(p), + k = r($), + w = a(k, !0); + t(k), t(p); + var N = r(p, 2), + F = a(N, !0); + t(N), t(D); + var M = r(D, 2), + X = a(M, !0); + t(M), + t(U), + f( + (K) => { + s($, `${e(i).author.name ?? ""} #${e(i).author.id ?? ""} `), + s(w, e(i).author.role), + s(F, K), + s(X, e(i).note); + }, + [() => new Date(e(i).createdAt).toLocaleString()] + ), + v(d, U); + } + ); + var Ue = r(re, 2); + { + var _t = (d) => { + var i = Mo(), + U = a(i, !0); + t(i), f((D) => s(U, D), [() => In()]), v(d, i); + }; + h(Ue, (d) => { + e(V).length === 0 && d(_t); + }); + } + t(le), t(ct); + var aa = r(ct, 2), + ra = a(aa), + sa = a(ra), + Hr = a(sa, !0); + t(sa); + var na = r(sa, 2); + na.__click = Br; + var Ca = a(na); + Os(Ca, { class: "size-4" }); + var Kr = r(Ca); + t(na), t(ra); + var Fa = r(ra, 2), + Oa = a(Fa), + oa = a(Oa), + Ga = a(oa), + ia = a(Ga), + Qr = a(ia, !0); + t(ia); + var da = r(ia), + Wr = a(da, !0); + t(da); + var la = r(da), + Yr = a(la, !0); + t(la); + var Va = r(la), + Zr = a(Va, !0); + t(Va), t(Ga), t(oa); + var qa = r(oa), + Ha = a(qa); + jt( + Ha, + 17, + () => e(Be), + (d) => d.id, + (d, i) => { + var U = jo(), + D = a(U), + p = a(D, !0); + t(D); + var $ = r(D), + k = a($); + t($); + var w = r($), + N = a(w, !0); + t(w); + var F = r(w), + M = a(F, !0); + t(F), + t(U), + f( + (X, K) => { + s(p, e(i).product_name), + s(k, `US$ ${X ?? ""}`), + s(N, e(i).amount), + s(M, K); + }, + [() => (e(i).price / 100).toFixed(2), () => Pa(e(i).createdAt)] + ), + v(d, U); + } + ); + var Jr = r(Ha); + { + var Xr = (d) => { + var i = Eo(), + U = a(i), + D = a(U, !0); + t(U), t(i), f((p) => s(D, p), [() => Hn()]), v(d, i); + }; + h(Jr, (d) => { + e(Be).length === 0 && d(Xr); + }); + } + t(qa), t(Oa), t(Fa), t(aa); + var Ka = r(aa, 2); + { + var es = (d) => { + var i = Oo(), + U = a(i), + D = a(U, !0); + t(U); + var p = r(U, 2); + { + var $ = (w) => { + var N = Co(), + F = a(N, !0); + t(N), f((M) => s(F, M), [() => Tr()]), v(w, N); + }, + k = (w) => { + var N = Fo(), + F = a(N), + M = r(a(F), 2), + X = a(M, !0); + t(M), t(F); + var K = r(F, 2), + $e = r(a(K), 2), + ce = a($e), + ve = r(ce), + Fe = a(ve); + t(ve), t($e), t(K); + var se = r(K, 2), + pe = r(a(se), 2), + R = a(pe), + E = r(R), + Pe = a(E); + t(E), t(pe), t(se); + var be = r(se, 2), + Ze = r(a(be), 2), + Pt = a(Ze), + Rt = r(Pt), + ba = a(Rt); + t(Rt), + t(Ze), + t(be), + t(N), + f( + (ma, zt, mt) => { + s(X, e(P).closedTotal), + s(ce, `${e(P).bans ?? ""} `), + s(Fe, `(${ma ?? ""})`), + s(R, `${e(P).ignored ?? ""} `), + s(Pe, `(${zt ?? ""})`), + s(Pt, `${e(P).timeouts ?? ""} `), + s(ba, `(${mt ?? ""})`); + }, + [ + () => qt(e(P).bans, e(P).closedTotal), + () => qt(e(P).ignored, e(P).closedTotal), + () => qt(e(P).timeouts, e(P).closedTotal), + ] + ), + v(w, N); + }; + h(p, (w) => { + e(P) ? w(k, !1) : w($); + }); + } + t(i), f((w) => s(D, w), [() => fo()]), v(d, i); + }; + h(Ka, (d) => { + e(l).role !== "user" && d(es); + }); + } + var Qa = r(Ka, 2), + ca = a(Qa), + ts = a(ca, !0); + t(ca); + var va = r(ca, 2), + ut = a(va); + ut.__click = [Go, q, Je, qe]; + var as = a(ut, !0); + t(ut); + var pt = r(ut, 2); + pt.__click = [Vo, q, Je, qe]; + var rs = a(pt, !0); + t(pt); + var At = r(pt, 2); + At.__click = [qo, q, Je, qe]; + var ss = a(At, !0); + t(At), t(va); + var Wa = r(va, 2), + _a = a(Wa), + ua = a(_a), + pa = a(ua), + Ya = a(pa), + ns = a(Ya); + { + var os = (d) => { + var i = Se(); + f((U) => s(i, U), [() => Wn()]), v(d, i); + }, + is = (d) => { + var i = Ve(), + U = ue(i); + { + var D = ($) => { + var k = Se(); + f((w) => s(k, w), [() => Jn()]), v($, k); + }, + p = ($) => { + var k = Se(); + f((w) => s(k, w), [() => to()]), v($, k); + }; + h( + U, + ($) => { + e(q) === "sent" ? $(D) : $(p, !1); + }, + !0 + ); + } + v(d, i); + }; + h(ns, (d) => { + e(q) === "received" ? d(os) : d(is, !1); + }); + } + t(Ya), t(pa); + var bt = r(pa, 2); + bt.__click = [Ho, qe, q]; + var ds = a(bt); + kr(ds, { class: "size-4" }), t(bt), t(ua); + var Za = r(ua, 2); + { + var ls = (d) => { + var i = Ko(); + v(d, i); + }; + h(Za, (d) => { + e(Me) && e(De).length === 0 && d(ls); + }); + } + var Ja = r(Za, 2); + jt( + Ja, + 17, + () => e(De), + (d) => d.id, + (d, i) => { + const U = ne(() => new Date(e(i).createdAt)), + D = ne(() => { + var R; + return ((R = e(Te)) == null ? void 0 : R.id) === e(i).id; + }); + var p = Zo(); + p.__click = [Qo, Te, i]; + var $ = a(p); + { + let R = ne(() => e(i).reportedUser.picture ?? void 0); + Et($, { + class: "size-12", + get userId() { + return e(i).reportedUser.id; + }, + get pictureUrl() { + return e(R); + }, + }); + } + var k = r($, 2), + w = a(k), + N = a(w), + F = a(N, !0); + t(N); + var M = r(N, 2), + X = a(M); + t(M); + var K = r(M, 2); + { + var $e = (R) => { + var E = Wo(); + let Pe; + var be = a(E, !0); + t(E), + f( + (Ze) => { + (Pe = W( + E, + 1, + "badge badge-xs font-semibold", + null, + Pe, + Ze + )), + s(be, e(i).status); + }, + [ + () => ({ + "badge-ghost": + e(i).status === "open" || e(i).status === "ignore", + "badge-warning": e(i).status === "timeout", + "badge-error": e(i).status === "ban", + }), + ] + ), + v(R, E); + }; + h(K, (R) => { + e(i).status && R($e); + }); + } + t(w); + var ce = r(w, 2), + ve = a(ce), + Fe = a(ve, !0); + t(ve), t(ce), t(k); + var se = r(k, 2); + { + var pe = (R) => { + var E = Yo(), + Pe = a(E); + Ir(Pe, () => e(i).reportedUser.role), t(E), v(R, E); + }; + h(se, (R) => { + e(i).reportedUser.role !== "user" && R(pe); + }); + } + t(p), + f( + (R, E) => { + W( + p, + 1, + ka({ + "bg-base-100 ring-primary relative flex gap-2 rounded-2xl p-3 shadow": + !0, + "bg-primary/10 ring-2": e(D), + }) + ), + W(w, 1, `text-base font-semibold ${R ?? ""} flex gap-1.5`), + s(F, e(i).reportedUser.name), + s(X, `#${e(i).reportedUser.id ?? ""}`), + s(Fe, E); + }, + [() => Ct(e(i).reportedUser.id), () => e(U).toLocaleString()] + ), + v(d, p); + } + ); + var Xa = r(Ja, 2); + { + var cs = (d) => { + var i = Jo(), + U = a(i, !0); + t(i), f((D) => s(U, D), [() => $r()]), v(d, i); + }; + h(Xa, (d) => { + !e(Me) && e(De).length === 0 && d(cs); + }); + } + var er = r(Xa, 2), + Lt = a(er); + Lt.__click = [Xo, Vt, q, qe]; + var vs = a(Lt, !0); + t(Lt), t(er), t(_a); + var tr = r(_a, 2), + _s = a(tr); + { + var us = (d) => { + var i = Ve(), + U = ue(i); + Ms( + U, + () => e(Te).id, + (D) => { + const p = ne(() => e(Te)), + $ = ne(() => { + var A; + return ( + ((A = on(e(p).reports, (m) => m.sameIpAccounts ?? 0)) == + null + ? void 0 + : A.sameIpAccounts) ?? 0 + ); + }); + var k = vi(), + w = ue(k), + N = a(w), + F = a(N); + t(N), t(w); + var M = r(w, 2), + X = a(M), + K = a(X); + { + let A = ne(() => e(p).reportedUser.picture ?? void 0); + Et(K, { + class: "size-14", + get userId() { + return e(p).reportedUser.id; + }, + get pictureUrl() { + return e(A); + }, + }); + } + var $e = r(K, 2), + ce = a($e), + ve = a(ce), + Fe = a(ve); + t(ve); + var se = r(ve, 2), + pe = a(se), + R = a(pe, !0); + t(pe); + var E = r(pe, 2), + Pe = a(E); + t(E); + var be = r(E, 2); + be.__click = [ei, p]; + var Ze = a(be); + Ia(Ze, { class: "inline size-4" }), t(be); + var Pt = r(be, 2); + { + var Rt = (A) => { + const m = ne(() => e(p).reportedUser.allianceId); + var G = ai(); + G.__click = [ti, m]; + var _e = a(G), + me = r(_e); + Ia(me, { class: "size-3" }), + t(G), + f( + (ke, Re, fe) => { + W( + G, + 1, + `tooltip badge badge-sm ml-0.5 border-0 ${ + ke ?? "" + } ${Re ?? ""}` + ), + xe(G, "title", fe), + s( + _e, + `${e(p).reportedUser.allianceName ?? "—" ?? ""} ` + ); + }, + [ + () => fn(e(m)), + () => Ct(e(m)), + () => Hs({ allianceId: e(m) }), + ] + ), + v(A, G); + }; + h(Pt, (A) => { + e(p).reportedUser.allianceId != null && A(Rt); + }); + } + t(se); + var ba = r(se, 2); + { + var ma = (A) => { + Ir(A, () => e(p).reportedUser.role); + }; + h(ba, (A) => { + e(p).reportedUser.role !== "user" && A(ma); + }); + } + t(ce); + var zt = r(ce, 2), + mt = a(zt), + ar = a(mt), + rr = r(ar), + bs = a(rr, !0); + t(rr), t(mt); + var sr = r(mt, 2); + { + var ms = (A) => { + var m = ri(), + G = ue(m), + _e = a(G), + me = r(_e), + ke = a(me, !0); + t(me), t(G); + var Re = r(G, 2), + fe = a(Re), + Oe = r(fe), + St = a(Oe, !0); + t(Oe), + t(Re), + f( + (ft, Bt) => { + s(_e, `${ft ?? ""}: `), + s(ke, e(p).reportedUser.timeoutCount ?? 0), + s(fe, `${Bt ?? ""}: `), + s( + St, + gr[e(p).reportedUser.lastTimeoutReason] ?? + e(p).reportedUser.lastTimeoutReason + ); + }, + [() => dn(), () => ln()] + ), + v(A, m); + }; + h(sr, (A) => { + e(p).reportedUser.lastTimeoutReason && A(ms); + }); + } + var fa = r(sr, 2), + nr = a(fa), + or = r(nr), + fs = a(or, !0); + t(or), t(fa); + var ir = r(fa, 2), + dr = a(ir), + xa = r(dr); + let lr; + var xs = a(xa, !0); + t(xa), t(ir), t(zt), t($e), t(X); + var cr = r(X, 4); + jt( + cr, + 21, + () => e(p).reports, + (A) => A.id, + (A, m) => { + const G = ne( + () => + e(m).reportedLatitude != null && + e(m).reportedLongitude != null + ), + _e = ne(() => + e(G) + ? `${Ta.url.origin}/?lat=${ + e(m).reportedLatitude + }&lng=${e(m).reportedLongitude}&select=true${ + e(m).zoom ? `&zoom=${e(m).zoom}` : "" + }` + : null + ); + var me = ci(), + ke = a(me), + Re = a(ke); + t(ke); + var fe = r(ke, 2), + Oe = a(fe); + { + let L = ne(() => e(m).reportedByPicture ?? void 0); + Et(Oe, { + class: "size-14", + get userId() { + return e(m).reportedBy; + }, + get pictureUrl() { + return e(L); + }, + }); + } + var St = r(Oe, 2), + ft = a(St), + Bt = a(ft), + ga = r(Bt), + ha = a(ga), + gs = a(ha, !0); + t(ha); + var vr = r(ha, 2), + hs = a(vr); + t(vr), t(ga), t(ft); + var _r = r(ft, 2), + ya = a(_r), + ur = a(ya), + wa = r(ur), + ys = a(wa, !0); + t(wa), t(ya); + var Ua = r(ya, 2), + pr = a(Ua), + br = r(pr), + ws = a(br, !0); + t(br), t(Ua); + var mr = r(Ua, 2); + { + var Us = (L) => { + var S = si(), + C = a(S), + O = r(C), + Q = a(O); + yr(Q, { class: "inline size-4" }), + Mt(2), + t(O), + t(S), + f( + (ee) => { + s(C, `${ee ?? ""}: `), xe(O, "href", e(_e)); + }, + [() => en()] + ), + v(L, S); + }; + h(mr, (L) => { + e(G) && L(Us); + }); + } + var $s = r(mr, 2); + { + var ks = (L) => { + var S = ni(), + C = a(S), + O = r(C), + Q = a(O); + yr(Q, { class: "inline size-4" }), + Mt(2), + t(O), + t(S), + f( + (ee) => { + s(C, `${ee ?? ""}: `), + xe( + O, + "href", + `${Ta.url.origin}/?lat=${ + e(m).lastPixelLatitude + }&lng=${e(m).lastPixelLongitude}&select=true` + ); + }, + [() => tn()] + ), + v(L, S); + }; + h($s, (L) => { + e(m).lastPixelLatitude != null && + e(m).lastPixelLongitude != null && + L(ks); + }); + } + t(_r), t(St), t(fe); + var fr = r(fe, 2); + { + var Ds = (L) => { + var S = oi(), + C = a(S), + O = a(C, !0); + t(C); + var Q = r(C, 2), + ee = a(Q, !0); + t(Q), + t(S), + f( + (Ge) => { + s(O, Ge), s(ee, e(m).notes); + }, + [() => Ws()] + ), + v(L, S); + }; + h(fr, (L) => { + e(m).notes && L(Ds); + }); + } + var Ts = r(fr, 2); + { + var Is = (L) => { + var S = di(), + C = a(S), + O = a(C); + { + var Q = (Ge) => { + var xr = ii(); + f(() => xe(xr, "src", e(m).imageUrl)), v(Ge, xr); + }; + h(O, (Ge) => { + e(m).imageUrl && Ge(Q); + }); + } + var ee = r(O, 2); + an(ee, { + class: + "absolute left-1/2 top-1/2 size-7 -translate-x-1/2 -translate-y-[87%]", + }), + t(C), + t(S), + f(() => xe(C, "href", e(_e))), + v(L, S); + }, + Ns = (L) => { + var S = Ve(), + C = ue(S); + { + var O = (Q) => { + var ee = li(), + Ge = a(ee); + t(ee), + f(() => xe(Ge, "src", e(m).imageUrl)), + v(Q, ee); + }; + h( + C, + (Q) => { + e(m).imageUrl && Q(O); + }, + !0 + ); + } + v(L, S); + }; + h(Ts, (L) => { + e(_e) ? L(Is) : L(Ns, !1); + }); + } + t(me), + f( + (L, S, C, O, Q, ee) => { + s(Re, `${L ?? ""} #${e(m).id ?? ""}`), + s(Bt, `${S ?? ""}: `), + W(ga, 1, `font-semibold ${C ?? ""}`), + s(gs, e(m).reportedByName), + s(hs, `#${e(m).reportedBy ?? ""}`), + s(ur, `${O ?? ""}: `), + W(wa, 1, `font-bold ${Cs[e(m).reason] ?? ""}`), + s(ys, gr[e(m).reason] ?? e(m).reason), + s(pr, `${Q ?? ""}: `), + s(ws, ee); + }, + [ + () => Ys(), + () => Zs(), + () => Ct(e(m).reportedBy), + () => Js(), + () => Xs(), + () => new Date(e(m).createdAt).toLocaleString(), + ] + ), + v(A, me); + } + ), + t(cr), + t(M), + f( + (A, m, G, _e, me, ke, Re, fe, Oe) => { + xe(N, "title", e(p).id), + s(F, `${A ?? ""}: ${m ?? ""}`), + s(Fe, `${G ?? ""}:`), + W(se, 1, `text-base font-semibold ${_e ?? ""}`), + s(R, e(p).reportedUser.name), + s(Pe, `#${e(p).reportedUser.id ?? ""}`), + xe(be, "title", me), + s(ar, `${ke ?? ""}: `), + s(bs, e(p).reportedUser.reportedCount ?? 0), + s(nr, `${Re ?? ""}: `), + s(fs, e(p).reportedUser.pixelsPainted ?? 0), + s(dr, `${fe ?? ""}: `), + (lr = W(xa, 1, "font-semibold", null, lr, Oe)), + s(xs, e($)); + }, + [ + () => rn(), + () => e(p).id.split("-").at(-1), + () => sn(), + () => Ct(e(p).reportedUser.id), + () => nn({ userId: e(p).reportedUser.id }), + () => wr(), + () => hr(), + () => Ur(), + () => ({ "text-red-600": e($) >= 7 }), + ] + ), + v(D, k); + } + ), + v(d, i); + }, + ps = (d) => { + var i = ui(), + U = a(i); + { + var D = ($) => { + var k = _i(); + v($, k); + }, + p = ($) => { + var k = Se(); + f((w) => s(k, w), [() => $r()]), v($, k); + }; + h(U, ($) => { + e(Me) ? $(D) : $(p, !1); + }); + } + t(i), v(d, i); + }; + h(_s, (d) => { + e(Te) ? d(us) : d(ps, !1); + }); + } + t(tr), + t(Wa), + t(Qa), + f( + ( + d, + i, + U, + D, + p, + $, + k, + w, + N, + F, + M, + X, + K, + $e, + ce, + ve, + Fe, + se, + pe, + R + ) => { + s(te, d), + s(ie, e(l).reported_times), + s(Ie, e(l).timeouts_count), + s(we, i), + s(at, e(l).same_ip_accounts), + s(st, U), + s(He, e(l).pixels_painted), + s(Xt, e(l).droplets), + (Qe.disabled = e(z)), + s(ea, D), + s(Tt, e(l).email), + W( + lt, + 1, + ka(e(l).phone_validated ? "text-success" : "text-error") + ), + s(ta, e(l).phone_validated ? "Validated" : "Not validated"), + W(Ye, 1, ka(e(l).discord ? "text-success" : "text-error")), + s(Nt, e(l).discord ? "Connected" : "Not connected"), + s(T, p), + xe(J, "placeholder", $), + (Ae.disabled = k), + s(Le, w), + s(Hr, N), + s(Kr, ` ${F ?? ""}`), + s(Qr, M), + s(Wr, X), + s(Yr, K), + s(Zr, $e), + s(ts, ce), + W( + ut, + 1, + `tab transition-all ${ + e(q) === "received" + ? "tab-active !bg-primary !text-primary-content !border-primary/60 btn btn-primary btn-sm scale-[1.02] !border !shadow-md" + : "hover:brightness-105" + }` + ), + s(as, ve), + W( + pt, + 1, + `tab transition-all ${ + e(q) === "sent" + ? "tab-active !bg-primary !text-primary-content !border-primary/60 btn btn-primary btn-sm scale-[1.02] !border !shadow-md" + : "hover:brightness-105" + }` + ), + s(rs, Fe), + W( + At, + 1, + `tab transition-all ${ + e(q) === "handled" + ? "tab-active !bg-primary !text-primary-content !border-primary/60 btn btn-primary btn-sm scale-[1.02] !border !shadow-md" + : "hover:brightness-105" + }` + ), + s(ss, se), + (bt.disabled = e(Me)), + xe(bt, "title", pe), + (Lt.disabled = e(Me)), + s(vs, R); + }, + [ + () => wr(), + () => Ur(), + () => hr(), + () => wn(), + () => kn(), + () => Ln(), + () => !e(he).trim(), + () => _n(), + () => Gs(), + () => pn(), + () => zn(), + () => Mn(), + () => Cn(), + () => Gn(), + () => po(), + () => so(), + () => io(), + () => vo(), + () => { + var d; + return ((d = Dr) == null ? void 0 : d()) ?? "Refresh"; + }, + () => { + var d; + return ((d = mn) == null ? void 0 : d()) ?? "Load more"; + }, + ] + ), + Da( + Ne, + () => e(ht), + (d) => _(ht, d) + ), + Da( + J, + () => e(he), + (d) => _(he, d) + ), + v(n, b); + }; + h(Ea, (n) => { + e(l) && n(Gr); + }); + } + var Vr = r(Ea, 2); + { + var qr = (n) => { + { + let b = ne(Pr); + Vs(n, { + get action() { + return e(Gt); + }, + get paintedBy() { + return e(gt); + }, + get image() { + return e(b); + }, + get latLon() { + return Nr; + }, + zoom: Ar, + get open() { + return e(xt); + }, + set open(g) { + _(xt, g, !0); + }, + }); + } + }; + h(Vr, (n) => { + e(gt) && n(qr); + }); + } + t(Kt), + f( + (n, b, g) => { + s(Mr, n), + (Xe.disabled = e(z)), + s(jr, b), + (yt.disabled = e(z)), + s(Er, ` ${g ?? ""}`); + }, + [ + () => (Na == null ? void 0 : Na()) ?? "Search user (ID)", + () => { + var n; + return ((n = bn) == null ? void 0 : n()) ?? "Search"; + }, + () => { + var n; + return ((n = Dr) == null ? void 0 : n()) ?? "Refresh"; + }, + ] + ), + Rs("submit", Wt, (n) => { + n.preventDefault(), za(); + }), + Da( + Ba, + () => e(c), + (n) => _(c, n) + ), + v(u, Kt), + zs(); +} +As(["click", "keydown"]); +export { Oi as component }; diff --git a/frontend-backup/_app/immutable/nodes/12.Dk7Cyr8v.js b/frontend-backup/_app/immutable/nodes/12.Dk7Cyr8v.js deleted file mode 100644 index aa4787c..0000000 --- a/frontend-backup/_app/immutable/nodes/12.Dk7Cyr8v.js +++ /dev/null @@ -1,1566 +0,0 @@ -import "../chunks/B2cHk4HI.js"; -import { at as As, p as Ls, au as B, av as ze, y as Ps, g as e, aw as _, f as x, d as a, s as r, t as f, ax as Rs, b as v, c as zs, $ as Ss, r as t, ay as Ve, a as ue, u as ne, az as Bs, b4 as Se, n as Mt } from "../chunks/BDALf20I.js"; -import { s } from "../chunks/4k6DpCgf.js"; -import { i as h } from "../chunks/Bke_korE.js"; -import { k as Ms } from "../chunks/BCONGQnO.js"; -import { e as jt } from "../chunks/CZW2bcQi.js"; -import { h as js } from "../chunks/BUhRjcOt.js"; -import { r as $a, a as W, c as ka, s as xe } from "../chunks/BNZUboE0.js"; -import { b as Da } from "../chunks/DS58drb5.js"; -import { g as Es } from "../chunks/B4HM4TqG.js"; -import { p as Ta } from "../chunks/C-Y7nmnD.js"; -import { a as ge, t as oe, b as Cs, s as gr, u as Fs } from "../chunks/DffDvEhl.js"; -import { D as Os, p as Gs, R as Vs, c as qs } from "../chunks/fZ59cmjx.js"; -import { P as Et } from "../chunks/DCxPsWiR.js"; -import { C as Ia, c as Hs, G as Ks, T as Qs } from "../chunks/ZzI7cLBE.js"; -import { p as hr, L as yr, d as Ws } from "../chunks/sZ1mzRzK.js"; -import { g as wr, h as Ur, n as $r, a as Ys, b as Zs, c as Js, t as Xs, d as en, l as tn, M as an, e as rn, r as sn, f as nn, m as on, i as dn, j as ln, u as cn, k as vn } from "../chunks/5mOJ66sL.js"; -import { R as kr } from "../chunks/rLj4C5Bn.js"; -import { g as j } from "../chunks/DklPLC_x.js"; -import { r as Dr } from "../chunks/Drv8f_fG.js"; -import { a as _n } from "../chunks/DdJK9GIy.js"; -import { l as un } from "../chunks/BMfwGdZU.js"; -import { n as Tr } from "../chunks/DFzO1c4b.js"; -import { e as pn } from "../chunks/BpEsgMDn.js"; -import { s as bn, l as mn } from "../chunks/6TAPgKgc.js"; -import { g as Ct, a as fn } from "../chunks/ClOhzjRc.js"; -(function () { - try { - var u = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; - u.SENTRY_RELEASE = { id: "35111e7039e8c68cc677344b7f7c6971567f6820" }; - } catch {} -})(); -try { - (function () { - var u = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}, - o = new u.Error().stack; - o && ((u._sentryDebugIds = u._sentryDebugIds || {}), (u._sentryDebugIds[o] = "5a255a26-a4ab-45a5-87f0-f9268fbaca16"), (u._sentryDebugIdIdentifier = "sentry-dbid-5a255a26-a4ab-45a5-87f0-f9268fbaca16")); - })(); -} catch {} -const xn = () => "Search user", - gn = () => "Buscar usuário", - Na = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? xn() : gn()), - hn = () => "Verifications", - yn = () => "Verificações", - wn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? hn() : yn()), - Un = () => "Notes", - $n = () => "Notas", - kn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Un() : $n()), - Dn = () => "No notes yet.", - Tn = () => "Sem notas ainda.", - In = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Dn() : Tn()), - Nn = () => "Add a note...", - An = () => "Adicionar uma nota...", - Ln = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Nn() : An()), - Pn = () => "Product", - Rn = () => "Produto", - zn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Pn() : Rn()), - Sn = () => "Price", - Bn = () => "Preço", - Mn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Sn() : Bn()), - jn = () => "Amount", - En = () => "Quantidade", - Cn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? jn() : En()), - Fn = () => "Date", - On = () => "Data", - Gn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Fn() : On()), - Vn = () => "No purchases", - qn = () => "Sem compras", - Hn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Vn() : qn()), - Kn = () => "Received reports", - Qn = () => "Reportes recebidos", - Wn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Kn() : Qn()), - Yn = () => "Sent reports", - Zn = () => "Reportes enviados", - Jn = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Yn() : Zn()), - Xn = () => "Handled reports", - eo = () => "Reportes tratados", - to = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? Xn() : eo()), - ao = () => "Received", - ro = () => "Recebidos", - so = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? ao() : ro()), - no = () => "Sent", - oo = () => "Enviados", - io = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? no() : oo()), - lo = () => "Handled", - co = () => "Tratados", - vo = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? lo() : co()), - _o = () => "Associated tickets", - uo = () => "Tickets atrelados", - po = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? _o() : uo()), - bo = () => "Moderator performance", - mo = () => "Desempenho do moderador", - fo = (u = {}, o = {}) => ((o.locale ?? j()) === "en" ? bo() : mo()), - Ir = (u, o = Bs) => { - var c = wo(); - let y; - var z = a(c); - { - var Y = (V) => { - var he = Se("MOD"); - v(V, he); - }, - l = (V) => { - var he = Ve(), - Be = ue(he); - { - var Ft = (P) => { - var q = Se("GM"); - v(P, q); - }, - Ot = (P) => { - var q = Se("ADMIN"); - v(P, q); - }; - h( - Be, - (P) => { - o() === "global_moderator" ? P(Ft) : P(Ot, !1); - }, - !0 - ); - } - v(V, he); - }; - h(z, (V) => { - o() === "moderator" ? V(Y) : V(l, !1); - }); - } - t(c), f((V) => (y = W(c, 1, "badge badge-sm ml-0.5 font-semibold", null, y, V)), [() => ({ "badge-secondary": o() === "moderator" || o() == "global_moderator", "badge-warning": o() === "admin" })]), v(u, c); - }; -function xo(u, o, c, y, z, Y) { - e(o) && (_(c, "timeout"), _(y, z(e(o)), !0), _(Y, !0)); -} -function go(u, o, c, y, z, Y) { - e(o) && (_(c, "ban"), _(y, z(e(o)), !0), _(Y, !0)); -} -async function ho(u, o, c) { - if (e(o)) - try { - _(c, !0), await ge.removeBan(e(o).id), (e(o).ban_reason = null), oe.success("Ban removido"); - } catch (y) { - oe.error((y == null ? void 0 : y.message) ?? "Falha ao remover ban"); - } finally { - _(c, !1); - } -} -async function yo(u, o, c) { - if (e(o)) - try { - _(c, !0), await ge.removeTimeout(e(o).id), (e(o).timeout_until = null), oe.success("Timeout removido"); - } catch (y) { - oe.error((y == null ? void 0 : y.message) ?? "Falha ao remover timeout"); - } finally { - _(c, !1); - } -} -var wo = x(""), - Uo = x('
              '), - $o = x('
              '), - ko = x('
              '), - Do = (u, o, c) => { - var y; - return o(String((y = e(c)) == null ? void 0 : y.id), "User ID copied"); - }, - To = x(' '), - Io = x(' '), - No = x(' '), - Ao = x('OK'), - Lo = x(''), - Po = x(' ', 1), - Ro = x( - '
              Alliance: Role:
              ' - ), - zo = (u, o) => { - u.key === "Enter" && o(); - }, - So = (u, o, c) => o(e(c)), - Bo = x( - '
              ' - ), - Mo = x('
              '), - jo = x(' '), - Eo = x(' '), - Co = x('
              '), - Fo = x( - '
              Closed tickets
              Bans
              Ignored
              Timeouts
              ' - ), - Oo = x('

              '), - Go = async (u, o, c, y) => { - _(o, "received"), c.has("received") || (await y("received", !0)); - }, - Vo = async (u, o, c, y) => { - _(o, "sent"), c.has("sent") || (await y("sent", !0)); - }, - qo = async (u, o, c, y) => { - _(o, "handled"), c.has("handled") || (await y("handled", !0)); - }, - Ho = async (u, o, c) => { - await o(e(c), !0); - }, - Ko = x('
              '), - Qo = (u, o, c) => { - _(o, e(c), !0); - }, - Wo = x(" "), - Yo = x('
              '), - Zo = x(''), - Jo = x('
              '), - Xo = async (u, o, c, y) => { - (o[e(c)] += 1), await y(e(c)); - }, - ei = (u, o) => { - navigator.clipboard.writeText(e(o).reportedUser.id.toString()), oe.success(cn()); - }, - ti = (u, o) => { - navigator.clipboard.writeText(String(e(o))), oe.success(vn()); - }, - ai = x(""), - ri = x(' ', 1), - si = x(' Link'), - ni = x(' Link'), - oi = x('

              '), - ii = x('Report location'), - di = x(''), - li = x('
              Report image
              '), - ci = x( - '
              ' - ), - vi = x( - '

              ', - 1 - ), - _i = x(''), - ui = x('
              '), - pi = x( - '
              Timeouts
              Droplets
              Email:
              Phone:
              Discord:

              ', - 1 - ), - bi = x( - '
              ' - ); -function Oi(u, o) { - Ls(o, !0); - let c = B(""), - y = B(null), - z = B(!1), - Y = B(null), - l = B(null), - V = B(ze([])), - he = B(""), - Be = B(ze([])), - Ft = B(0), - Ot = B(!0), - P = B(null), - q = B("received"); - ze([]), ze([]), ze([]); - let xt = B(!1), - Gt = B("timeout"), - gt = B(null); - const Nr = [-23.551814832869923, -46.63379610146964], - Ar = 1; - let ht = B(""), - Me = B(!1), - De = B(ze([])), - Te = B(void 0), - Vt = ze({ received: 0, sent: 0, handled: 0 }); - const Lr = 20; - let Je = ze(new Set()); - function Aa() { - const n = Number(e(ht)); - if (!Number.isFinite(n) || n === 0) { - oe.error("Enter a number other than zero"); - return; - } - zr(n), _(ht, ""); - } - function Pr() { - const n = ` - - - Action from Admin Panel - - `; - return Promise.resolve(new Blob([n], { type: "image/svg+xml" })); - } - function La(n) { - return { id: n.id, name: n.name ?? `#${n.id}`, picture: n.picture ?? void 0, allianceId: 0, allianceName: "", equippedFlag: 0 }; - } - Ps(() => { - const n = Ta.url.searchParams.get("id"), - b = n ? Number(n) : null; - b !== e(y) && (_(y, b, !0), n && _(c, n, !0)), e(y) != null && !isNaN(e(y)) ? Ra() : (_(l, null), _(Y, null)); - }); - function Pa(n) { - if (!n) return "—"; - const b = new Date(n); - return isNaN(b.getTime()) ? "—" : b.toLocaleString(); - } - function qt(n, b) { - if (!b) return "0.00%"; - const g = (n / b) * 100; - return `${(Math.round(g * 100) / 100).toFixed(2)}%`; - } - function Rr(n, b = "Copied!") { - navigator.clipboard.writeText(n), oe.success(b); - } - function Ht(n) { - if (!n) return !1; - const b = new Date(n).getTime(); - return !isNaN(b) && b > Date.now(); - } - async function qe(n, b = !1) { - if (e(l)) - try { - _(Me, !0), b && ((Vt[n] = 0), _(De, [], !0), _(Te, void 0), Je.delete(n)); - const g = Vt[n], - H = await ge.getUserTickets({ userId: e(l).id, kind: n, page: g, pageSize: Lr }); - _(De, g === 0 ? H : [...e(De), ...H], !0), !e(Te) && e(De).length > 0 && _(Te, e(De)[0], !0), Je.add(n); - } catch (g) { - console.error("Error loading mini moderation", n, g), oe.error((g == null ? void 0 : g.message) ?? "Falha ao carregar tickets"); - } finally { - _(Me, !1); - } - } - async function Ra() { - if (!e(y) || isNaN(e(y))) { - _(l, null), _(Y, null); - return; - } - try { - _(z, !0), _(Y, null); - const n = await ge.getUserInfoFull(e(y)); - if (!n) { - _(l, null), _(Y, "User not found"); - return; - } - n.timeout_until && !Ht(n.timeout_until) && (n.timeout_until = null), _(l, n, !0), Sr(), _(Ft, 0); - try { - const b = await ge.getUserPurchases(n.id); - _( - Be, - b.sort((g, H) => new Date(H.createdAt).getTime() - new Date(g.createdAt).getTime()), - !0 - ); - } catch (b) { - console.error("Error loading purchases", b), _(Be, [], !0), _(Ot, !1); - } - if ((_(P, null), n.role !== "user")) - try { - const b = await ge.getModeratorClosedTicketStats(n.id); - _(P, b, !0); - } catch (b) { - console.error("Moderator stats error", b), _(P, null); - } - await qe("received", !0); - } catch (n) { - _(Y, (n == null ? void 0 : n.message) ?? "Error loading user", !0); - } finally { - _(z, !1); - } - } - async function za() { - const n = Number(e(c).trim()); - if (!n || isNaN(n)) { - oe.error("Enter a valid user ID"); - return; - } - Es(`/admin/users?id=${n}`); - } - async function zr(n) { - e(l) && (await ge.postSetUserDroplets(e(l).id, n), (e(l).droplets = Math.max(0, (e(l).droplets ?? 0) + n)), Sa(`Droplets ${n >= 0 ? "+" : "-"}${Math.abs(n)}, now ${e(l).droplets}`)); - } - async function Sr() { - if (e(l) && e(l)) - try { - const n = await ge.getUserNotes(e(l).id); - _(V, n.notes, !0); - } catch (n) { - console.error("Error loading notes", n), _(V, [], !0); - } - } - async function Sa(n) { - if (!e(l)) return; - const b = n.trim(); - if (b) - try { - _(z, !0), await ge.addUserNote(e(l).id, b), (n = ""), oe.success("Note added"); - try { - const g = await ge.getUserNotes(e(l).id); - _(V, g.notes, !0); - } catch (g) { - console.error("Error reloading notes", g); - } - } catch (g) { - oe.error((g == null ? void 0 : g.message) ?? "Failed to add note"); - } finally { - _(z, !1); - } - } - function Br() { - var ae; - const n = ["id", "product_name", "price", "amount", "createdAt"].join(","), - b = e(Be).map((ie) => [ie.id, ie.product_name, ie.price, ie.amount, ie.createdAt].join(",")), - g = [n, ...b].join(` -`), - H = new Blob([g], { type: "text/csv;charset=utf-8;" }), - Z = URL.createObjectURL(H), - te = document.createElement("a"); - (te.href = Z), (te.download = `purchases_user_${((ae = e(l)) == null ? void 0 : ae.id) ?? "unknown"}.csv`), te.click(), URL.revokeObjectURL(Z); - } - var Kt = bi(); - js((n) => { - Ss.title = "Wplace - Admin - Users"; - }); - var Qt = a(Kt), - Wt = a(Qt), - Yt = a(Wt), - Zt = a(Yt), - Mr = a(Zt, !0); - t(Zt); - var Ba = r(Zt, 2); - $a(Ba), t(Yt); - var Ma = r(Yt, 2), - Xe = a(Ma); - Xe.__click = za; - var jr = a(Xe, !0); - t(Xe); - var yt = r(Xe, 2); - yt.__click = Ra; - var ja = a(yt); - kr(ja, { class: "size-4" }); - var Er = r(ja); - t(yt), t(Ma), t(Wt), t(Qt); - var Jt = r(Qt, 2), - Cr = a(Jt); - { - var Fr = (n) => { - var b = Uo(), - g = r(a(b), 2), - H = a(g, !0); - t(g), - t(b), - f((Z) => s(H, Z), [ - () => { - var Z; - return ((Z = un) == null ? void 0 : Z()) ?? "Loading..."; - }, - ]), - v(n, b); - }, - Or = (n) => { - var b = Ve(), - g = ue(b); - { - var H = (te) => { - var ae = $o(), - ie = a(ae, !0); - t(ae), f(() => s(ie, e(Y))), v(te, ae); - }, - Z = (te) => { - var ae = Ve(), - ie = ue(ae); - { - var et = (Ie) => { - var de = ko(), - ye = a(de, !0); - t(de), - f((we) => s(ye, we), [ - () => { - var we; - return ((we = Tr) == null ? void 0 : we()) ?? "No user selected"; - }, - ]), - v(Ie, de); - }, - wt = (Ie) => { - var de = Ro(), - ye = a(de), - we = a(ye); - { - let T = ne(() => e(l).picture ?? void 0); - Et(we, { - class: "size-16 border", - get userId() { - return e(l).id; - }, - get pictureUrl() { - return e(T); - }, - }); - } - var tt = r(we, 2), - at = a(tt), - je = a(at), - rt = a(je, !0); - t(je); - var st = r(je, 2), - Ut = a(st); - t(st); - var He = r(st, 2); - He.__click = [Do, Rr, l]; - var Ke = a(He); - Ia(Ke, { class: "size-3.5" }); - var $t = r(Ke); - t(He); - var nt = r(He, 2); - { - var Xt = (T) => { - var I = To(), - J = a(I, !0); - t(I), f(() => s(J, e(l).role)), v(T, I); - }; - h(nt, (T) => { - e(l).role !== "user" && T(Xt); - }); - } - t(at); - var ot = r(at, 2), - Ne = a(ot), - Qe = r(a(Ne)), - kt = a(Qe, !0); - t(Qe); - var it = r(Qe, 2); - { - var ea = (T) => { - var I = Se(); - f(() => s(I, `(#${e(l).alliance_id ?? ""})`)), v(T, I); - }; - h(it, (T) => { - e(l).alliance_id && T(ea); - }); - } - t(Ne); - var dt = r(Ne, 4), - We = r(a(dt)), - Dt = a(We, !0); - t(We), t(dt), t(ot), t(tt), t(ye); - var Tt = r(ye, 2), - Ee = a(Tt), - lt = a(Ee); - { - var ta = (T) => { - var I = Io(), - J = a(I); - t(I), f(() => s(J, `BANNED${e(l).ban_reason ? ` (${e(l).ban_reason})` : ""}`)), v(T, I); - }, - It = (T) => { - var I = Ve(), - J = ue(I); - { - var Ae = (le) => { - var re = No(), - Ue = a(re); - t(re), f((_t) => s(Ue, `TIMEOUT until ${_t ?? ""}`), [() => Pa(e(l).timeout_until)]), v(le, re); - }, - Le = (le) => { - var re = Ao(); - v(le, re); - }; - h( - J, - (le) => { - Ht(e(l).timeout_until) ? le(Ae) : le(Le, !1); - }, - !0 - ); - } - v(T, I); - }; - h(lt, (T) => { - e(l).ban_reason ? T(ta) : T(It, !1); - }); - } - t(Ee); - var Ye = r(Ee, 2), - Nt = a(Ye); - { - var ct = (T) => { - var I = Po(), - J = ue(I); - { - var Ae = (re) => { - var Ue = Lo(); - Ue.__click = [xo, l, Gt, gt, La, xt]; - var _t = a(Ue); - Qs(_t, { class: "size-4" }), Mt(), t(Ue), f(() => (Ue.disabled = e(z))), v(re, Ue); - }; - h(J, (re) => { - Ht(e(l).timeout_until) || re(Ae); - }); - } - var Le = r(J, 2); - Le.__click = [go, l, Gt, gt, La, xt]; - var le = a(Le); - Ks(le, { class: "size-4" }), Mt(), t(Le), f(() => (Le.disabled = e(z))), v(T, I); - }; - h(Nt, (T) => { - var I; - ((I = Fs.data) == null ? void 0 : I.id) !== e(l).id && !e(l).ban_reason && T(ct); - }); - } - var Ce = r(Nt, 2); - Ce.__click = [yo, l, z]; - var vt = r(Ce, 2); - (vt.__click = [ho, l, z]), - t(Ye), - t(Tt), - t(de), - f( - (T) => { - s(rt, e(l).name), s(Ut, `#${e(l).id ?? ""}`), s($t, ` ${T ?? ""} ID`), s(kt, e(l).alliance_name ?? "—"), s(Dt, e(l).role), (Ce.disabled = e(z)), (vt.disabled = e(z)); - }, - [() => qs()] - ), - v(Ie, de); - }; - h( - ie, - (Ie) => { - e(l) ? Ie(wt, !1) : Ie(et); - }, - !0 - ); - } - v(te, ae); - }; - h( - g, - (te) => { - e(Y) ? te(H) : te(Z, !1); - }, - !0 - ); - } - v(n, b); - }; - h(Cr, (n) => { - e(z) ? n(Fr) : n(Or, !1); - }); - } - t(Jt); - var Ea = r(Jt, 2); - { - var Gr = (n) => { - var b = pi(), - g = ue(b), - H = a(g), - Z = a(H), - te = a(Z, !0); - t(Z); - var ae = r(Z, 2), - ie = a(ae, !0); - t(ae), t(H); - var et = r(H, 2), - wt = r(a(et), 2), - Ie = a(wt, !0); - t(wt), t(et); - var de = r(et, 2), - ye = a(de), - we = a(ye, !0); - t(ye); - var tt = r(ye, 2), - at = a(tt, !0); - t(tt), t(de); - var je = r(de, 2), - rt = a(je), - st = a(rt, !0); - t(rt); - var Ut = r(rt, 2), - He = a(Ut, !0); - t(Ut), t(je); - var Ke = r(je, 2), - $t = r(a(Ke), 2), - nt = a($t), - Xt = a(nt, !0); - t(nt); - var ot = r(nt, 2), - Ne = a(ot); - $a(Ne), (Ne.__keydown = [zo, Aa]); - var Qe = r(Ne, 2); - (Qe.__click = Aa), t(ot), t($t), t(Ke); - var kt = r(Ke, 2), - it = a(kt), - ea = a(it, !0); - t(it); - var dt = r(it, 2), - We = a(dt), - Dt = r(a(We)), - Tt = a(Dt, !0); - t(Dt), t(We); - var Ee = r(We, 2), - lt = r(a(Ee)), - ta = a(lt, !0); - t(lt), t(Ee); - var It = r(Ee, 2), - Ye = r(a(It)), - Nt = a(Ye, !0); - t(Ye), t(It), t(dt), t(kt), t(g); - var ct = r(g, 2), - Ce = a(ct), - vt = a(Ce), - T = a(vt, !0); - t(vt), t(Ce); - var I = r(Ce, 2), - J = a(I); - $a(J); - var Ae = r(J, 2); - Ae.__click = [So, Sa, he]; - var Le = a(Ae, !0); - t(Ae), t(I); - var le = r(I, 2), - re = a(le); - jt( - re, - 17, - () => e(V), - (d) => `${d.author.id}-${d.createdAt}`, - (d, i) => { - var U = Bo(), - D = a(U), - p = a(D), - $ = a(p), - k = r($), - w = a(k, !0); - t(k), t(p); - var N = r(p, 2), - F = a(N, !0); - t(N), t(D); - var M = r(D, 2), - X = a(M, !0); - t(M), - t(U), - f( - (K) => { - s($, `${e(i).author.name ?? ""} #${e(i).author.id ?? ""} `), s(w, e(i).author.role), s(F, K), s(X, e(i).note); - }, - [() => new Date(e(i).createdAt).toLocaleString()] - ), - v(d, U); - } - ); - var Ue = r(re, 2); - { - var _t = (d) => { - var i = Mo(), - U = a(i, !0); - t(i), f((D) => s(U, D), [() => In()]), v(d, i); - }; - h(Ue, (d) => { - e(V).length === 0 && d(_t); - }); - } - t(le), t(ct); - var aa = r(ct, 2), - ra = a(aa), - sa = a(ra), - Hr = a(sa, !0); - t(sa); - var na = r(sa, 2); - na.__click = Br; - var Ca = a(na); - Os(Ca, { class: "size-4" }); - var Kr = r(Ca); - t(na), t(ra); - var Fa = r(ra, 2), - Oa = a(Fa), - oa = a(Oa), - Ga = a(oa), - ia = a(Ga), - Qr = a(ia, !0); - t(ia); - var da = r(ia), - Wr = a(da, !0); - t(da); - var la = r(da), - Yr = a(la, !0); - t(la); - var Va = r(la), - Zr = a(Va, !0); - t(Va), t(Ga), t(oa); - var qa = r(oa), - Ha = a(qa); - jt( - Ha, - 17, - () => e(Be), - (d) => d.id, - (d, i) => { - var U = jo(), - D = a(U), - p = a(D, !0); - t(D); - var $ = r(D), - k = a($); - t($); - var w = r($), - N = a(w, !0); - t(w); - var F = r(w), - M = a(F, !0); - t(F), - t(U), - f( - (X, K) => { - s(p, e(i).product_name), s(k, `US$ ${X ?? ""}`), s(N, e(i).amount), s(M, K); - }, - [() => (e(i).price / 100).toFixed(2), () => Pa(e(i).createdAt)] - ), - v(d, U); - } - ); - var Jr = r(Ha); - { - var Xr = (d) => { - var i = Eo(), - U = a(i), - D = a(U, !0); - t(U), t(i), f((p) => s(D, p), [() => Hn()]), v(d, i); - }; - h(Jr, (d) => { - e(Be).length === 0 && d(Xr); - }); - } - t(qa), t(Oa), t(Fa), t(aa); - var Ka = r(aa, 2); - { - var es = (d) => { - var i = Oo(), - U = a(i), - D = a(U, !0); - t(U); - var p = r(U, 2); - { - var $ = (w) => { - var N = Co(), - F = a(N, !0); - t(N), f((M) => s(F, M), [() => Tr()]), v(w, N); - }, - k = (w) => { - var N = Fo(), - F = a(N), - M = r(a(F), 2), - X = a(M, !0); - t(M), t(F); - var K = r(F, 2), - $e = r(a(K), 2), - ce = a($e), - ve = r(ce), - Fe = a(ve); - t(ve), t($e), t(K); - var se = r(K, 2), - pe = r(a(se), 2), - R = a(pe), - E = r(R), - Pe = a(E); - t(E), t(pe), t(se); - var be = r(se, 2), - Ze = r(a(be), 2), - Pt = a(Ze), - Rt = r(Pt), - ba = a(Rt); - t(Rt), - t(Ze), - t(be), - t(N), - f( - (ma, zt, mt) => { - s(X, e(P).closedTotal), s(ce, `${e(P).bans ?? ""} `), s(Fe, `(${ma ?? ""})`), s(R, `${e(P).ignored ?? ""} `), s(Pe, `(${zt ?? ""})`), s(Pt, `${e(P).timeouts ?? ""} `), s(ba, `(${mt ?? ""})`); - }, - [() => qt(e(P).bans, e(P).closedTotal), () => qt(e(P).ignored, e(P).closedTotal), () => qt(e(P).timeouts, e(P).closedTotal)] - ), - v(w, N); - }; - h(p, (w) => { - e(P) ? w(k, !1) : w($); - }); - } - t(i), f((w) => s(D, w), [() => fo()]), v(d, i); - }; - h(Ka, (d) => { - e(l).role !== "user" && d(es); - }); - } - var Qa = r(Ka, 2), - ca = a(Qa), - ts = a(ca, !0); - t(ca); - var va = r(ca, 2), - ut = a(va); - ut.__click = [Go, q, Je, qe]; - var as = a(ut, !0); - t(ut); - var pt = r(ut, 2); - pt.__click = [Vo, q, Je, qe]; - var rs = a(pt, !0); - t(pt); - var At = r(pt, 2); - At.__click = [qo, q, Je, qe]; - var ss = a(At, !0); - t(At), t(va); - var Wa = r(va, 2), - _a = a(Wa), - ua = a(_a), - pa = a(ua), - Ya = a(pa), - ns = a(Ya); - { - var os = (d) => { - var i = Se(); - f((U) => s(i, U), [() => Wn()]), v(d, i); - }, - is = (d) => { - var i = Ve(), - U = ue(i); - { - var D = ($) => { - var k = Se(); - f((w) => s(k, w), [() => Jn()]), v($, k); - }, - p = ($) => { - var k = Se(); - f((w) => s(k, w), [() => to()]), v($, k); - }; - h( - U, - ($) => { - e(q) === "sent" ? $(D) : $(p, !1); - }, - !0 - ); - } - v(d, i); - }; - h(ns, (d) => { - e(q) === "received" ? d(os) : d(is, !1); - }); - } - t(Ya), t(pa); - var bt = r(pa, 2); - bt.__click = [Ho, qe, q]; - var ds = a(bt); - kr(ds, { class: "size-4" }), t(bt), t(ua); - var Za = r(ua, 2); - { - var ls = (d) => { - var i = Ko(); - v(d, i); - }; - h(Za, (d) => { - e(Me) && e(De).length === 0 && d(ls); - }); - } - var Ja = r(Za, 2); - jt( - Ja, - 17, - () => e(De), - (d) => d.id, - (d, i) => { - const U = ne(() => new Date(e(i).createdAt)), - D = ne(() => { - var R; - return ((R = e(Te)) == null ? void 0 : R.id) === e(i).id; - }); - var p = Zo(); - p.__click = [Qo, Te, i]; - var $ = a(p); - { - let R = ne(() => e(i).reportedUser.picture ?? void 0); - Et($, { - class: "size-12", - get userId() { - return e(i).reportedUser.id; - }, - get pictureUrl() { - return e(R); - }, - }); - } - var k = r($, 2), - w = a(k), - N = a(w), - F = a(N, !0); - t(N); - var M = r(N, 2), - X = a(M); - t(M); - var K = r(M, 2); - { - var $e = (R) => { - var E = Wo(); - let Pe; - var be = a(E, !0); - t(E), - f( - (Ze) => { - (Pe = W(E, 1, "badge badge-xs font-semibold", null, Pe, Ze)), s(be, e(i).status); - }, - [() => ({ "badge-ghost": e(i).status === "open" || e(i).status === "ignore", "badge-warning": e(i).status === "timeout", "badge-error": e(i).status === "ban" })] - ), - v(R, E); - }; - h(K, (R) => { - e(i).status && R($e); - }); - } - t(w); - var ce = r(w, 2), - ve = a(ce), - Fe = a(ve, !0); - t(ve), t(ce), t(k); - var se = r(k, 2); - { - var pe = (R) => { - var E = Yo(), - Pe = a(E); - Ir(Pe, () => e(i).reportedUser.role), t(E), v(R, E); - }; - h(se, (R) => { - e(i).reportedUser.role !== "user" && R(pe); - }); - } - t(p), - f( - (R, E) => { - W(p, 1, ka({ "bg-base-100 ring-primary relative flex gap-2 rounded-2xl p-3 shadow": !0, "bg-primary/10 ring-2": e(D) })), - W(w, 1, `text-base font-semibold ${R ?? ""} flex gap-1.5`), - s(F, e(i).reportedUser.name), - s(X, `#${e(i).reportedUser.id ?? ""}`), - s(Fe, E); - }, - [() => Ct(e(i).reportedUser.id), () => e(U).toLocaleString()] - ), - v(d, p); - } - ); - var Xa = r(Ja, 2); - { - var cs = (d) => { - var i = Jo(), - U = a(i, !0); - t(i), f((D) => s(U, D), [() => $r()]), v(d, i); - }; - h(Xa, (d) => { - !e(Me) && e(De).length === 0 && d(cs); - }); - } - var er = r(Xa, 2), - Lt = a(er); - Lt.__click = [Xo, Vt, q, qe]; - var vs = a(Lt, !0); - t(Lt), t(er), t(_a); - var tr = r(_a, 2), - _s = a(tr); - { - var us = (d) => { - var i = Ve(), - U = ue(i); - Ms( - U, - () => e(Te).id, - (D) => { - const p = ne(() => e(Te)), - $ = ne(() => { - var A; - return ((A = on(e(p).reports, (m) => m.sameIpAccounts ?? 0)) == null ? void 0 : A.sameIpAccounts) ?? 0; - }); - var k = vi(), - w = ue(k), - N = a(w), - F = a(N); - t(N), t(w); - var M = r(w, 2), - X = a(M), - K = a(X); - { - let A = ne(() => e(p).reportedUser.picture ?? void 0); - Et(K, { - class: "size-14", - get userId() { - return e(p).reportedUser.id; - }, - get pictureUrl() { - return e(A); - }, - }); - } - var $e = r(K, 2), - ce = a($e), - ve = a(ce), - Fe = a(ve); - t(ve); - var se = r(ve, 2), - pe = a(se), - R = a(pe, !0); - t(pe); - var E = r(pe, 2), - Pe = a(E); - t(E); - var be = r(E, 2); - be.__click = [ei, p]; - var Ze = a(be); - Ia(Ze, { class: "inline size-4" }), t(be); - var Pt = r(be, 2); - { - var Rt = (A) => { - const m = ne(() => e(p).reportedUser.allianceId); - var G = ai(); - G.__click = [ti, m]; - var _e = a(G), - me = r(_e); - Ia(me, { class: "size-3" }), - t(G), - f( - (ke, Re, fe) => { - W(G, 1, `tooltip badge badge-sm ml-0.5 border-0 ${ke ?? ""} ${Re ?? ""}`), xe(G, "title", fe), s(_e, `${e(p).reportedUser.allianceName ?? "—" ?? ""} `); - }, - [() => fn(e(m)), () => Ct(e(m)), () => Hs({ allianceId: e(m) })] - ), - v(A, G); - }; - h(Pt, (A) => { - e(p).reportedUser.allianceId != null && A(Rt); - }); - } - t(se); - var ba = r(se, 2); - { - var ma = (A) => { - Ir(A, () => e(p).reportedUser.role); - }; - h(ba, (A) => { - e(p).reportedUser.role !== "user" && A(ma); - }); - } - t(ce); - var zt = r(ce, 2), - mt = a(zt), - ar = a(mt), - rr = r(ar), - bs = a(rr, !0); - t(rr), t(mt); - var sr = r(mt, 2); - { - var ms = (A) => { - var m = ri(), - G = ue(m), - _e = a(G), - me = r(_e), - ke = a(me, !0); - t(me), t(G); - var Re = r(G, 2), - fe = a(Re), - Oe = r(fe), - St = a(Oe, !0); - t(Oe), - t(Re), - f( - (ft, Bt) => { - s(_e, `${ft ?? ""}: `), s(ke, e(p).reportedUser.timeoutCount ?? 0), s(fe, `${Bt ?? ""}: `), s(St, gr[e(p).reportedUser.lastTimeoutReason] ?? e(p).reportedUser.lastTimeoutReason); - }, - [() => dn(), () => ln()] - ), - v(A, m); - }; - h(sr, (A) => { - e(p).reportedUser.lastTimeoutReason && A(ms); - }); - } - var fa = r(sr, 2), - nr = a(fa), - or = r(nr), - fs = a(or, !0); - t(or), t(fa); - var ir = r(fa, 2), - dr = a(ir), - xa = r(dr); - let lr; - var xs = a(xa, !0); - t(xa), t(ir), t(zt), t($e), t(X); - var cr = r(X, 4); - jt( - cr, - 21, - () => e(p).reports, - (A) => A.id, - (A, m) => { - const G = ne(() => e(m).reportedLatitude != null && e(m).reportedLongitude != null), - _e = ne(() => (e(G) ? `${Ta.url.origin}/?lat=${e(m).reportedLatitude}&lng=${e(m).reportedLongitude}&select=true${e(m).zoom ? `&zoom=${e(m).zoom}` : ""}` : null)); - var me = ci(), - ke = a(me), - Re = a(ke); - t(ke); - var fe = r(ke, 2), - Oe = a(fe); - { - let L = ne(() => e(m).reportedByPicture ?? void 0); - Et(Oe, { - class: "size-14", - get userId() { - return e(m).reportedBy; - }, - get pictureUrl() { - return e(L); - }, - }); - } - var St = r(Oe, 2), - ft = a(St), - Bt = a(ft), - ga = r(Bt), - ha = a(ga), - gs = a(ha, !0); - t(ha); - var vr = r(ha, 2), - hs = a(vr); - t(vr), t(ga), t(ft); - var _r = r(ft, 2), - ya = a(_r), - ur = a(ya), - wa = r(ur), - ys = a(wa, !0); - t(wa), t(ya); - var Ua = r(ya, 2), - pr = a(Ua), - br = r(pr), - ws = a(br, !0); - t(br), t(Ua); - var mr = r(Ua, 2); - { - var Us = (L) => { - var S = si(), - C = a(S), - O = r(C), - Q = a(O); - yr(Q, { class: "inline size-4" }), - Mt(2), - t(O), - t(S), - f( - (ee) => { - s(C, `${ee ?? ""}: `), xe(O, "href", e(_e)); - }, - [() => en()] - ), - v(L, S); - }; - h(mr, (L) => { - e(G) && L(Us); - }); - } - var $s = r(mr, 2); - { - var ks = (L) => { - var S = ni(), - C = a(S), - O = r(C), - Q = a(O); - yr(Q, { class: "inline size-4" }), - Mt(2), - t(O), - t(S), - f( - (ee) => { - s(C, `${ee ?? ""}: `), xe(O, "href", `${Ta.url.origin}/?lat=${e(m).lastPixelLatitude}&lng=${e(m).lastPixelLongitude}&select=true`); - }, - [() => tn()] - ), - v(L, S); - }; - h($s, (L) => { - e(m).lastPixelLatitude != null && e(m).lastPixelLongitude != null && L(ks); - }); - } - t(_r), t(St), t(fe); - var fr = r(fe, 2); - { - var Ds = (L) => { - var S = oi(), - C = a(S), - O = a(C, !0); - t(C); - var Q = r(C, 2), - ee = a(Q, !0); - t(Q), - t(S), - f( - (Ge) => { - s(O, Ge), s(ee, e(m).notes); - }, - [() => Ws()] - ), - v(L, S); - }; - h(fr, (L) => { - e(m).notes && L(Ds); - }); - } - var Ts = r(fr, 2); - { - var Is = (L) => { - var S = di(), - C = a(S), - O = a(C); - { - var Q = (Ge) => { - var xr = ii(); - f(() => xe(xr, "src", e(m).imageUrl)), v(Ge, xr); - }; - h(O, (Ge) => { - e(m).imageUrl && Ge(Q); - }); - } - var ee = r(O, 2); - an(ee, { class: "absolute left-1/2 top-1/2 size-7 -translate-x-1/2 -translate-y-[87%]" }), t(C), t(S), f(() => xe(C, "href", e(_e))), v(L, S); - }, - Ns = (L) => { - var S = Ve(), - C = ue(S); - { - var O = (Q) => { - var ee = li(), - Ge = a(ee); - t(ee), f(() => xe(Ge, "src", e(m).imageUrl)), v(Q, ee); - }; - h( - C, - (Q) => { - e(m).imageUrl && Q(O); - }, - !0 - ); - } - v(L, S); - }; - h(Ts, (L) => { - e(_e) ? L(Is) : L(Ns, !1); - }); - } - t(me), - f( - (L, S, C, O, Q, ee) => { - s(Re, `${L ?? ""} #${e(m).id ?? ""}`), - s(Bt, `${S ?? ""}: `), - W(ga, 1, `font-semibold ${C ?? ""}`), - s(gs, e(m).reportedByName), - s(hs, `#${e(m).reportedBy ?? ""}`), - s(ur, `${O ?? ""}: `), - W(wa, 1, `font-bold ${Cs[e(m).reason] ?? ""}`), - s(ys, gr[e(m).reason] ?? e(m).reason), - s(pr, `${Q ?? ""}: `), - s(ws, ee); - }, - [() => Ys(), () => Zs(), () => Ct(e(m).reportedBy), () => Js(), () => Xs(), () => new Date(e(m).createdAt).toLocaleString()] - ), - v(A, me); - } - ), - t(cr), - t(M), - f( - (A, m, G, _e, me, ke, Re, fe, Oe) => { - xe(N, "title", e(p).id), - s(F, `${A ?? ""}: ${m ?? ""}`), - s(Fe, `${G ?? ""}:`), - W(se, 1, `text-base font-semibold ${_e ?? ""}`), - s(R, e(p).reportedUser.name), - s(Pe, `#${e(p).reportedUser.id ?? ""}`), - xe(be, "title", me), - s(ar, `${ke ?? ""}: `), - s(bs, e(p).reportedUser.reportedCount ?? 0), - s(nr, `${Re ?? ""}: `), - s(fs, e(p).reportedUser.pixelsPainted ?? 0), - s(dr, `${fe ?? ""}: `), - (lr = W(xa, 1, "font-semibold", null, lr, Oe)), - s(xs, e($)); - }, - [ - () => rn(), - () => e(p).id.split("-").at(-1), - () => sn(), - () => Ct(e(p).reportedUser.id), - () => nn({ userId: e(p).reportedUser.id }), - () => wr(), - () => hr(), - () => Ur(), - () => ({ "text-red-600": e($) >= 7 }), - ] - ), - v(D, k); - } - ), - v(d, i); - }, - ps = (d) => { - var i = ui(), - U = a(i); - { - var D = ($) => { - var k = _i(); - v($, k); - }, - p = ($) => { - var k = Se(); - f((w) => s(k, w), [() => $r()]), v($, k); - }; - h(U, ($) => { - e(Me) ? $(D) : $(p, !1); - }); - } - t(i), v(d, i); - }; - h(_s, (d) => { - e(Te) ? d(us) : d(ps, !1); - }); - } - t(tr), - t(Wa), - t(Qa), - f( - (d, i, U, D, p, $, k, w, N, F, M, X, K, $e, ce, ve, Fe, se, pe, R) => { - s(te, d), - s(ie, e(l).reported_times), - s(Ie, e(l).timeouts_count), - s(we, i), - s(at, e(l).same_ip_accounts), - s(st, U), - s(He, e(l).pixels_painted), - s(Xt, e(l).droplets), - (Qe.disabled = e(z)), - s(ea, D), - s(Tt, e(l).email), - W(lt, 1, ka(e(l).phone_validated ? "text-success" : "text-error")), - s(ta, e(l).phone_validated ? "Validated" : "Not validated"), - W(Ye, 1, ka(e(l).discord ? "text-success" : "text-error")), - s(Nt, e(l).discord ? "Connected" : "Not connected"), - s(T, p), - xe(J, "placeholder", $), - (Ae.disabled = k), - s(Le, w), - s(Hr, N), - s(Kr, ` ${F ?? ""}`), - s(Qr, M), - s(Wr, X), - s(Yr, K), - s(Zr, $e), - s(ts, ce), - W(ut, 1, `tab transition-all ${e(q) === "received" ? "tab-active !bg-primary !text-primary-content !border-primary/60 btn btn-primary btn-sm scale-[1.02] !border !shadow-md" : "hover:brightness-105"}`), - s(as, ve), - W(pt, 1, `tab transition-all ${e(q) === "sent" ? "tab-active !bg-primary !text-primary-content !border-primary/60 btn btn-primary btn-sm scale-[1.02] !border !shadow-md" : "hover:brightness-105"}`), - s(rs, Fe), - W(At, 1, `tab transition-all ${e(q) === "handled" ? "tab-active !bg-primary !text-primary-content !border-primary/60 btn btn-primary btn-sm scale-[1.02] !border !shadow-md" : "hover:brightness-105"}`), - s(ss, se), - (bt.disabled = e(Me)), - xe(bt, "title", pe), - (Lt.disabled = e(Me)), - s(vs, R); - }, - [ - () => wr(), - () => Ur(), - () => hr(), - () => wn(), - () => kn(), - () => Ln(), - () => !e(he).trim(), - () => _n(), - () => Gs(), - () => pn(), - () => zn(), - () => Mn(), - () => Cn(), - () => Gn(), - () => po(), - () => so(), - () => io(), - () => vo(), - () => { - var d; - return ((d = Dr) == null ? void 0 : d()) ?? "Refresh"; - }, - () => { - var d; - return ((d = mn) == null ? void 0 : d()) ?? "Load more"; - }, - ] - ), - Da( - Ne, - () => e(ht), - (d) => _(ht, d) - ), - Da( - J, - () => e(he), - (d) => _(he, d) - ), - v(n, b); - }; - h(Ea, (n) => { - e(l) && n(Gr); - }); - } - var Vr = r(Ea, 2); - { - var qr = (n) => { - { - let b = ne(Pr); - Vs(n, { - get action() { - return e(Gt); - }, - get paintedBy() { - return e(gt); - }, - get image() { - return e(b); - }, - get latLon() { - return Nr; - }, - zoom: Ar, - get open() { - return e(xt); - }, - set open(g) { - _(xt, g, !0); - }, - }); - } - }; - h(Vr, (n) => { - e(gt) && n(qr); - }); - } - t(Kt), - f( - (n, b, g) => { - s(Mr, n), (Xe.disabled = e(z)), s(jr, b), (yt.disabled = e(z)), s(Er, ` ${g ?? ""}`); - }, - [ - () => (Na == null ? void 0 : Na()) ?? "Search user (ID)", - () => { - var n; - return ((n = bn) == null ? void 0 : n()) ?? "Search"; - }, - () => { - var n; - return ((n = Dr) == null ? void 0 : n()) ?? "Refresh"; - }, - ] - ), - Rs("submit", Wt, (n) => { - n.preventDefault(), za(); - }), - Da( - Ba, - () => e(c), - (n) => _(c, n) - ), - v(u, Kt), - zs(); -} -As(["click", "keydown"]); -export { Oi as component }; diff --git a/frontend-backup/_app/immutable/nodes/13.DbQSn9aq.js b/frontend-backup/_app/immutable/nodes/13.DbQSn9aq.js new file mode 100644 index 0000000..cb2d0b7 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/13.DbQSn9aq.js @@ -0,0 +1,239 @@ +import "../chunks/Ch2Ub8FX.js"; +import { o as re } from "../chunks/DoL3ojdE.js"; +import { + at as oe, + p as ie, + y as le, + g as t, + au as b, + u as z, + aw as o, + f as _, + b as l, + c as se, + t as w, + $ as ce, + n as ue, + d as s, + r as c, + ay as F, + a as E, + s as Y, +} from "../chunks/CMvZtFtm.js"; +import { s as x } from "../chunks/DVA6u9-7.js"; +import { i as j } from "../chunks/BF50aS-j.js"; +import { h as fe } from "../chunks/P77cUGnY.js"; +import { g as M } from "../chunks/CyB--sFG.js"; +import { p as N } from "../chunks/B6ZK_HZO.js"; +import { c as de, a as P, t as ve } from "../chunks/BRM3t761.js"; +import { L as pe } from "../chunks/Bn0Xcwmn.js"; +import { L as _e } from "../chunks/D3yDgRbd.js"; +import { g as m } from "../chunks/CV9xcpLq.js"; +import { g as me } from "../chunks/BSXXHLQ0.js"; +(function () { + try { + var a = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + a.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var a = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new a.Error().stack; + e && + ((a._sentryDebugIds = a._sentryDebugIds || {}), + (a._sentryDebugIds[e] = "c1586dac-f5e8-440e-b93d-4bbd5586913c"), + (a._sentryDebugIdIdentifier = + "sentry-dbid-c1586dac-f5e8-440e-b93d-4bbd5586913c")); + })(); +} catch {} +const ge = () => "You have been banned from this alliance. You cannot join it.", + be = () => "Você foi banido desta aliança. Você não pode entrar.", + he = (a = {}, e = {}) => ((e.locale ?? m()) === "en" ? ge() : be()), + ye = () => `You are already in an alliance. +Do you want to leave your current alliance to join?`, + we = () => "Você já está em uma aliança. Deseja sair da sua aliança atual?", + xe = (a = {}, e = {}) => ((e.locale ?? m()) === "en" ? ye() : we()), + je = () => "Invalid invite. It might be expired.", + Ie = () => "Convite inválido. Pode estar expirado.", + Le = (a = {}, e = {}) => ((e.locale ?? m()) === "en" ? je() : Ie()), + De = () => "Alliance invite", + Te = () => "Convite de aliança", + ke = (a = {}, e = {}) => ((e.locale ?? m()) === "en" ? De() : Te()), + Ae = () => "Leave", + Ee = () => "Sair", + Ye = (a = {}, e = {}) => ((e.locale ?? m()) === "en" ? Ae() : Ee()), + Ne = () => "No", + Pe = () => "Não", + Se = (a = {}, e = {}) => ((e.locale ?? m()) === "en" ? Ne() : Pe()); +var Ve = _( + ' ', + 1 + ), + Ce = _(''), + Je = async (a, e, i, n) => { + o(e, !0); + try { + await P.leaveAlliance(), o(i, await P.joinAlliance(t(n)), !0); + } catch (h) { + ve.error(h.message); + } finally { + o(e, !1); + } + }, + Re = _( + '' + ), + ze = _(' '), + Fe = _( + '

              ', + 1 + ), + Me = _( + '
              ' + ); +function aa(a, e) { + ie(e, !0); + let i = b(!0), + n = b(void 0), + h = b(!1), + u = b(""), + S = b(!1); + const V = z(() => N.url.searchParams.get("id") ?? ""), + U = z(() => N.url.searchParams.get("new-user")); + re(async () => { + try { + o(n, await P.joinAlliance(t(V)), !0); + } catch (r) { + console.error(r.message), o(u, r.message, !0); + } finally { + o(i, !1); + } + }), + le(() => { + t(n) === "success" + ? t(U) + ? M("/?new-user=1") + : M("/?alliance=1") + : t(n) === "not-logged-in" + ? o(h, !0) + : t(n) === "banned" + ? o(u, he(), !0) + : t(n) === "in-another-alliance" + ? o(u, xe(), !0) + : t(n) === "invalid-invite" + ? o(u, Le(), !0) + : t(n) === "error" && o(u, de(), !0); + }); + var I = Me(); + fe((r) => { + var d = Ve(); + ue(4), w((L) => (ce.title = `FurryPlace - ${L ?? ""}`), [() => ke()]), l(r, d); + }); + var W = s(I); + { + var q = (r) => { + var d = Ce(); + l(r, d); + }, + B = (r) => { + var d = F(), + L = E(d); + { + var G = (v) => { + pe(v, { + get redirect() { + return N.url.pathname; + }, + }); + }, + H = (v) => { + var C = F(), + K = E(C); + { + var O = (D) => { + var J = Fe(), + T = E(J), + R = s(T), + Q = s(R); + _e(Q, { size: "lg", hasText: !0 }), c(R), c(T); + var k = Y(T, 2), + X = s(k, !0); + c(k); + var Z = Y(k, 2); + { + var $ = (p) => { + var f = Re(), + g = s(f), + A = s(g, !0); + c(g); + var y = Y(g, 2); + y.__click = [Je, S, n, V]; + var ae = s(y, !0); + c(y), + c(f), + w( + (te, ne) => { + x(A, te), (y.disabled = t(S)), x(ae, ne); + }, + [() => Se(), () => Ye()] + ), + l(p, f); + }, + ee = (p) => { + var f = ze(), + g = s(f, !0); + c(f), w((A) => x(g, A), [() => me()]), l(p, f); + }; + j(Z, (p) => { + t(n) === "in-another-alliance" ? p($) : p(ee, !1); + }); + } + w(() => x(X, t(u))), l(D, J); + }; + j( + K, + (D) => { + t(u) && D(O); + }, + !0 + ); + } + l(v, C); + }; + j( + L, + (v) => { + t(h) ? v(G) : v(H, !1); + }, + !0 + ); + } + l(r, d); + }; + j(W, (r) => { + t(i) ? r(q) : r(B, !1); + }); + } + c(I), l(a, I), se(); +} +oe(["click"]); +export { aa as component }; diff --git a/frontend-backup/_app/immutable/nodes/13.DsAxPfo7.js b/frontend-backup/_app/immutable/nodes/13.DsAxPfo7.js deleted file mode 100644 index ea039e8..0000000 --- a/frontend-backup/_app/immutable/nodes/13.DsAxPfo7.js +++ /dev/null @@ -1,2 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{o as re}from"../chunks/4WsUhDWi.js";import{at as oe,p as ie,y as le,g as t,au as b,u as z,aw as o,f as _,b as l,c as se,t as w,$ as ce,n as ue,d as s,r as c,ay as F,a as E,s as Y}from"../chunks/BDALf20I.js";import{s as x}from"../chunks/4k6DpCgf.js";import{i as j}from"../chunks/Bke_korE.js";import{h as fe}from"../chunks/BUhRjcOt.js";import{g as M}from"../chunks/B4HM4TqG.js";import{p as N}from"../chunks/C-Y7nmnD.js";import{c as de,a as P,t as ve}from"../chunks/DffDvEhl.js";import{L as pe}from"../chunks/BHr_eBwR.js";import{L as _e}from"../chunks/CYItkO2S.js";import{g as m}from"../chunks/DklPLC_x.js";import{g as me}from"../chunks/BpFpuxGr.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new a.Error().stack;e&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[e]="e9cc3e94-c5f6-477f-8101-d4d8186f40c2",a._sentryDebugIdIdentifier="sentry-dbid-e9cc3e94-c5f6-477f-8101-d4d8186f40c2")})()}catch{}const ge=()=>"You have been banned from this alliance. You cannot join it.",be=()=>"Você foi banido desta aliança. Você não pode entrar.",he=(a={},e={})=>(e.locale??m())==="en"?ge():be(),ye=()=>`You are already in an alliance. -Do you want to leave your current alliance to join?`,we=()=>"Você já está em uma aliança. Deseja sair da sua aliança atual?",xe=(a={},e={})=>(e.locale??m())==="en"?ye():we(),je=()=>"Invalid invite. It might be expired.",Ie=()=>"Convite inválido. Pode estar expirado.",Le=(a={},e={})=>(e.locale??m())==="en"?je():Ie(),De=()=>"Alliance invite",Te=()=>"Convite de aliança",ke=(a={},e={})=>(e.locale??m())==="en"?De():Te(),Ae=()=>"Leave",Ee=()=>"Sair",Ye=(a={},e={})=>(e.locale??m())==="en"?Ae():Ee(),Ne=()=>"No",Pe=()=>"Não",Se=(a={},e={})=>(e.locale??m())==="en"?Ne():Pe();var Ve=_(' ',1),Ce=_(''),Je=async(a,e,i,n)=>{o(e,!0);try{await P.leaveAlliance(),o(i,await P.joinAlliance(t(n)),!0)}catch(h){ve.error(h.message)}finally{o(e,!1)}},Re=_(''),ze=_(' '),Fe=_('

              ',1),Me=_('
              ');function aa(a,e){ie(e,!0);let i=b(!0),n=b(void 0),h=b(!1),u=b(""),S=b(!1);const V=z(()=>N.url.searchParams.get("id")??""),U=z(()=>N.url.searchParams.get("new-user"));re(async()=>{try{o(n,await P.joinAlliance(t(V)),!0)}catch(r){console.error(r.message),o(u,r.message,!0)}finally{o(i,!1)}}),le(()=>{t(n)==="success"?t(U)?M("/?new-user=1"):M("/?alliance=1"):t(n)==="not-logged-in"?o(h,!0):t(n)==="banned"?o(u,he(),!0):t(n)==="in-another-alliance"?o(u,xe(),!0):t(n)==="invalid-invite"?o(u,Le(),!0):t(n)==="error"&&o(u,de(),!0)});var I=Me();fe(r=>{var d=Ve();ue(4),w(L=>ce.title=`Wplace - ${L??""}`,[()=>ke()]),l(r,d)});var W=s(I);{var q=r=>{var d=Ce();l(r,d)},B=r=>{var d=F(),L=E(d);{var G=v=>{pe(v,{get redirect(){return N.url.pathname}})},H=v=>{var C=F(),K=E(C);{var O=D=>{var J=Fe(),T=E(J),R=s(T),Q=s(R);_e(Q,{size:"lg",hasText:!0}),c(R),c(T);var k=Y(T,2),X=s(k,!0);c(k);var Z=Y(k,2);{var $=p=>{var f=Re(),g=s(f),A=s(g,!0);c(g);var y=Y(g,2);y.__click=[Je,S,n,V];var ae=s(y,!0);c(y),c(f),w((te,ne)=>{x(A,te),y.disabled=t(S),x(ae,ne)},[()=>Se(),()=>Ye()]),l(p,f)},ee=p=>{var f=ze(),g=s(f,!0);c(f),w(A=>x(g,A),[()=>me()]),l(p,f)};j(Z,p=>{t(n)==="in-another-alliance"?p($):p(ee,!1)})}w(()=>x(X,t(u))),l(D,J)};j(K,D=>{t(u)&&D(O)},!0)}l(v,C)};j(L,v=>{t(h)?v(G):v(H,!1)},!0)}l(r,d)};j(W,r=>{t(i)?r(q):r(B,!1)})}c(I),l(a,I),se()}oe(["click"]);export{aa as component}; diff --git a/frontend-backup/_app/immutable/nodes/14.ClqwdR4T.js b/frontend-backup/_app/immutable/nodes/14.ClqwdR4T.js new file mode 100644 index 0000000..269e922 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/14.ClqwdR4T.js @@ -0,0 +1,1079 @@ +import "../chunks/Ch2Ub8FX.js"; +import { o as as } from "../chunks/DoL3ojdE.js"; +import { + at as ts, + p as ss, + au as B, + av as ta, + f as w, + a as K, + s, + d as t, + t as U, + ax as rs, + b as g, + c as os, + g as e, + aw as b, + $ as ns, + r as a, + u as ae, + az as is, + ay as ia, + n as Ka, + b4 as sa, +} from "../chunks/CMvZtFtm.js"; +import { s as i } from "../chunks/DVA6u9-7.js"; +import { i as $ } from "../chunks/BF50aS-j.js"; +import { a as ls, k as cs } from "../chunks/BBgyHb-Z.js"; +import { e as ra, i as ds } from "../chunks/CXkjfmFU.js"; +import { h as vs } from "../chunks/P77cUGnY.js"; +import { s as Y, a as F, c as _s, d as ps } from "../chunks/C5yqZvKC.js"; +import { b as us } from "../chunks/0wx1llIh.js"; +import { g as fs } from "../chunks/CyB--sFG.js"; +import { p as oa } from "../chunks/B6ZK_HZO.js"; +import { + a as pe, + t as G, + u as ue, + s as q, + b as bs, +} from "../chunks/BRM3t761.js"; +import { P as na } from "../chunks/D3yaN7Zl.js"; +import { A as ms, c as gs } from "../chunks/Dt3xBOvm.js"; +import { T as Qa, C as Va, G as Xa, c as xs } from "../chunks/DLfdYhzo.js"; +import { L as Za, d as hs, p as ys } from "../chunks/BKioTOWR.js"; +import { + r as et, + a as at, + n as ks, + M as ws, + b as $s, + c as Ts, + t as Us, + d as Is, + l as zs, + e as As, + f as Rs, + g as Ls, + h as Cs, + m as Bs, + i as Ds, + j as Ms, + u as Ss, + k as js, +} from "../chunks/DTFgqBF9.js"; +import { R as tt } from "../chunks/m3o6lEf1.js"; +import { g as Te } from "../chunks/CV9xcpLq.js"; +import { r as Ps } from "../chunks/C3E1P42D.js"; +import { t as st, f as Ns } from "../chunks/DBSOMMI_.js"; +import { o as Es } from "../chunks/BpoSU4rb.js"; +import { g as $e, a as Os } from "../chunks/lE0oaQc5.js"; +(function () { + try { + var p = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + p.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var p = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + c = new p.Error().stack; + c && + ((p._sentryDebugIds = p._sentryDebugIds || {}), + (p._sentryDebugIds[c] = "84791c29-68a7-479d-acd2-06e603b3dfe6"), + (p._sentryDebugIdIdentifier = + "sentry-dbid-84791c29-68a7-479d-acd2-06e603b3dfe6")); + })(); +} catch {} +const Gs = () => "Ignore", + Ws = () => "Ignorar", + rt = (p = {}, c = {}) => ((c.locale ?? Te()) === "en" ? Gs() : Ws()), + Ys = () => "Ignore all", + qs = () => "Ignorar todos", + Fs = (p = {}, c = {}) => ((c.locale ?? Te()) === "en" ? Ys() : qs()), + it = () => "Ban", + Hs = it, + ot = (p = {}, c = {}) => ((c.locale ?? Te()) === "en" ? it() : Hs()), + Js = () => "Closed tickets", + Ks = () => "Tickets fechados", + Qs = (p = {}, c = {}) => ((c.locale ?? Te()) === "en" ? Js() : Ks()), + nt = (p, c = is) => { + var d = Vs(); + let u; + var _ = t(d); + { + var Q = (m) => { + var T = sa("MOD"); + g(m, T); + }, + D = (m) => { + var T = ia(), + Ue = K(T); + { + var fe = (R) => { + var V = sa("GM"); + g(R, V); + }, + be = (R) => { + var V = sa("ADMIN"); + g(R, V); + }; + $( + Ue, + (R) => { + c() === "global_moderator" ? R(fe) : R(be, !1); + }, + !0 + ); + } + g(m, T); + }; + $(_, (m) => { + c() === "moderator" ? m(Q) : m(D, !1); + }); + } + a(d), + U( + (m) => (u = F(d, 1, "badge badge-sm ml-0.5 font-semibold", null, u, m)), + [ + () => ({ + "badge-secondary": c() === "moderator" || c() == "global_moderator", + "badge-warning": c() === "admin", + }), + ] + ), + g(p, d); + }; +var Vs = w(""), + Xs = (p, c) => { + c(); + }, + Zs = (p, c, d) => { + b(c, e(d), !0); + }, + er = w('
              '), + ar = w( + '' + ), + tr = async (p, c, d, u) => { + await c(), b(d, e(u)[0], !0); + }, + sr = w( + '

              ', + 1 + ), + rr = w(''), + or = (p, c) => { + navigator.clipboard.writeText(e(c).reportedUser.id.toString()), + G.success(Ss()); + }, + nr = (p, c) => { + navigator.clipboard.writeText(e(c).toString()), G.success(js()); + }, + ir = w(""), + lr = w( + '💰 PAID' + ), + cr = w( + ' ', + 1 + ), + dr = (p, c, d) => { + c(e(d).id); + }, + vr = w(''), + _r = (p, c, d, u) => { + c(e(d).id, e(u).id); + }, + pr = (p, c, d, u) => { + c(e(d).id, e(u)); + }, + ur = (p, c, d, u) => { + c(e(d).id, e(u)); + }, + fr = w(''), + br = w(""), + mr = w( + '

              ' + ), + gr = (p, c, d, u, _, Q, D, m) => { + b(c, e(d)), b(u, e(_), !0), b(Q, e(D), !0), e(m).showModal(); + }, + xr = w( + '' + ), + hr = w( + '

              :
              ', + 1 + ), + yr = async (p, c, d, u, _) => { + await c(e(d).id, e(u).id), e(_).close(); + }, + kr = async (p, c, d, u, _) => { + await c(e(d).id, e(u)), e(_).close(); + }, + wr = async (p, c, d, u, _) => { + await c(e(d).id, e(u)), e(_).close(); + }, + $r = w(''), + Tr = w( + '' + ), + Ur = w( + '




              ', + 1 + ); +function Vr(p, c) { + ss(c, !0); + let d = B(!0), + u = B(!1), + _ = B(ta([])), + Q = B(void 0), + D = B( + ta({ + closedTotal: 0, + bans: 0, + ignored: 0, + timeouts: 0, + rclosedTotal: 0, + rignored: 0, + rtimeouts: 0, + rbans: 0, + }) + ), + m = B(void 0), + T = B(ta({})); + const Ue = [ + { value: "griefing", label: q.griefing }, + { value: "inappropriate-content", label: q["inappropriate-content"] }, + { value: "hate-speech", label: q["hate-speech"] }, + { value: "doxxing", label: q.doxxing }, + { value: "multi-accounting", label: q["multi-accounting"] }, + { value: "bot", label: q.bot }, + { value: "other", label: q.other }, + ]; + as(() => { + fe(); + }); + async function fe() { + await be(), e(_).length <= 1 && (await R()), e(m) || b(m, e(_)[0], !0); + } + async function be() { + try { + b(d, !0); + const n = await pe.getModeratorTickets(); + b(_, n.tickets, !0), V(); + try { + b(D, await pe.countMyTicketsClosedToday(), !0); + } catch (r) { + return ( + G.error(r.message), + { + closedTotal: 0, + ignored: 0, + timeouts: 0, + bans: 0, + rclosedTotal: 0, + rignored: 0, + rtimeouts: 0, + rbans: 0, + } + ); + } + b(T, {}, !0); + for (const r of e(_)) + for (const v of r.reports) e(T)[v.id] = v.assignedReason ?? v.reason; + } catch (n) { + n.status === 403 || n.status === 401 ? fs("/404") : G.error(n.message); + } finally { + b(d, !1); + } + } + async function R() { + try { + b(d, !0); + const { newTicketsIds: n } = await pe.assignNewTickets(); + n.length > 0 && (await be()), await V(); + } catch (n) { + G.error(n.message); + } finally { + b(d, !1); + } + } + async function V() { + try { + b(Q, await pe.getNonPaidUserOpenTicketsCount(), !0); + } catch (n) { + G.error(n.message); + } + } + async function me(n, r, v, x) { + try { + b(u, !0), + await pe.setTicketStatus(n, r, v, x), + r !== "open" && + !(r === "ignore" && v) && + (b( + _, + e(_).filter((o) => o.id !== n), + !0 + ), + e(_).length <= 1 && (await R()), + b(m, e(_)[0], !0)); + } catch (o) { + G.error(o.message); + } finally { + b(u, !1); + } + } + function lt(n) { + return me(n, "ignore", 0, "other") + .then(() => { + b( + _, + e(_).filter((r) => r.id !== n), + !0 + ), + b(m, e(_)[0], !0), + e(_).length <= 1 && R(); + }) + .catch((r) => { + G.error(r.message); + }); + } + function la(n, r) { + return me(n, "ignore", r, e(T)[r] ?? "other") + .then(() => { + const v = e(_).findIndex((o) => o.id === n); + if (v === -1) return; + const x = e(_)[v]; + if ( + ((x.reports = x.reports.filter((o) => o.id !== r)), + delete e(T)[r], + x.reports.length === 0) + ) { + b( + _, + e(_).filter((o) => o.id !== n), + !0 + ), + b(m, e(_)[0], !0), + e(_).length <= 1 && R(); + return; + } + b(m, { ...x }, !0); + }) + .catch((v) => { + G.error(v.message); + }); + } + function ca(n, r) { + const v = e(T)[r.id] ?? r.assignedReason ?? r.reason; + return me(n, "timeout", r.id, v); + } + function da(n, r) { + const v = e(T)[r.id] ?? r.assignedReason ?? r.reason; + return me(n, "ban", r.id, v); + } + let X = B(null), + ge = B(""), + te = B(void 0), + Z = B(void 0); + var va = Ur(); + vs((n) => { + ns.title = "FurryPlace - Moderation"; + }); + var Ie = K(va), + ze = t(Ie), + Ae = t(ze), + Re = t(Ae), + xe = t(Re), + ct = t(xe); + ms(ct, { class: "size-5" }), a(xe); + var _a = s(xe, 2), + Le = t(_a), + dt = t(Le, !0); + a(Le); + var Ce = s(Le, 2), + vt = t(Ce); + a(Ce); + var pa = s(Ce, 2), + Be = t(pa), + ua = t(Be), + fa = s(ua, 2), + ba = s(fa, 2), + _t = s(ba, 2); + a(Be); + var pt = s(Be); + a(pa), a(_a), a(Re); + var he = s(Re, 2); + he.__click = [Xs, fe]; + var ut = t(he); + tt(ut, { class: "size-4" }), a(he), a(Ae); + var ma = s(Ae, 2); + ra( + ma, + 25, + () => e(_), + (n) => n.id, + (n, r) => { + const v = ae(() => new Date(e(r).createdAt)), + x = ae(() => { + var S; + return ((S = e(m)) == null ? void 0 : S.id) === e(r).id; + }); + var o = ar(); + o.__click = [Zs, m, r]; + var L = t(o); + na(L, { + class: "size-13", + get userId() { + return e(r).reportedUser.id; + }, + get pictureUrl() { + return e(r).reportedUser.picture; + }, + }); + var M = s(L, 2), + I = t(M), + N = t(I), + je = t(N, !0); + a(N); + var oe = s(N, 2), + ne = t(oe); + a(oe), a(I); + var ie = s(I, 2), + le = t(ie, !0); + a(ie), a(M); + var ce = s(M, 2); + { + var de = (S) => { + var j = er(), + ve = t(j); + nt(ve, () => e(r).reportedUser.role), a(j), g(S, j); + }; + $(ce, (S) => { + e(r).reportedUser.role !== "user" && S(de); + }); + } + a(o), + U( + (S, j) => { + F( + o, + 1, + _s({ + "bg-base-100 ring-primary relative flex gap-2 rounded-2xl p-4 shadow": + !0, + "bg-primary/10 ring-2": e(x), + }) + ), + F(I, 1, `text-lg font-semibold ${S ?? ""} flex gap-1.5`), + i(je, e(r).reportedUser.name), + i(ne, `#${e(r).reportedUser.id ?? ""}`), + i(le, j); + }, + [() => $e(e(r).reportedUser.id), () => e(v).toLocaleString()] + ), + ls( + o, + () => Ns, + () => ({ duration: 250 }) + ), + g(n, o); + } + ); + var ga = s(ma, 2), + ft = t(ga); + { + var bt = (n) => { + var r = sr(), + v = K(r), + x = t(v, !0); + a(v); + var o = s(v, 2); + o.__click = [tr, R, m, _]; + var L = t(o); + tt(L, { class: "size-5" }); + var M = s(L); + a(o), + U( + (I, N) => { + i(x, I), i(M, ` ${N ?? ""}`); + }, + [() => ks(), () => Ps()] + ), + g(n, r); + }, + mt = (n) => { + var r = ia(), + v = K(r); + { + var x = (o) => { + var L = rr(); + g(o, L); + }; + $( + v, + (o) => { + e(d) && e(_).length === 0 && o(x); + }, + !0 + ); + } + g(n, r); + }; + $(ft, (n) => { + !e(d) && e(_).length === 0 ? n(bt) : n(mt, !1); + }); + } + a(ga), a(ze); + var xa = s(ze, 2), + gt = t(xa); + { + var xt = (n) => { + var r = ia(), + v = K(r); + cs( + v, + () => e(m).id, + (x) => { + const o = ae(() => e(m)), + L = ae(() => { + var f; + return (f = Bs(e(o).reports, (l) => l.sameIpAccounts)) == null + ? void 0 + : f.sameIpAccounts; + }); + var M = hr(), + I = K(M), + N = t(I), + je = t(N); + a(N), a(I); + var oe = s(I, 2), + ne = t(oe), + ie = t(ne); + na(ie, { + class: "size-15", + get userId() { + return e(o).reportedUser.id; + }, + get pictureUrl() { + return e(o).reportedUser.picture; + }, + }); + var le = s(ie, 2), + ce = t(le), + de = t(ce), + S = t(de, !0); + a(de); + var j = s(de, 2), + ve = t(j), + zt = t(ve, !0); + a(ve); + var Pe = s(ve, 2), + At = t(Pe); + a(Pe); + var _e = s(Pe, 2); + _e.__click = [or, o]; + var Rt = t(_e); + Va(Rt, { class: "inline size-4" }), a(_e); + var Ta = s(_e, 2); + { + var Lt = (f) => { + const l = ae(() => e(o).reportedUser.allianceId); + var y = ir(); + y.__click = [nr, l]; + var z = t(y), + P = s(z); + Va(P, { class: "size-3" }), + a(y), + U( + (W, E, C) => { + F( + y, + 1, + `tooltip badge badge-sm ml-0.5 border-0 ${W ?? ""} ${ + E ?? "" + }` + ), + Y(y, "title", C), + i(z, `${e(o).reportedUser.allianceName ?? ""} `); + }, + [ + () => Os(e(l)), + () => $e(e(l)), + () => xs({ allianceId: e(l) }), + ] + ), + g(f, y); + }; + $(Ta, (f) => { + e(o).reportedUser.allianceId && f(Lt); + }); + } + var Ct = s(Ta, 2); + { + var Bt = (f) => { + var l = lr(); + g(f, l); + }; + $(Ct, (f) => { + e(o).reportedUser.paid && f(Bt); + }); + } + a(j); + var Dt = s(j, 2); + { + var Mt = (f) => { + nt(f, () => e(o).reportedUser.role); + }; + $(Dt, (f) => { + e(o).reportedUser.role !== "user" && f(Mt); + }); + } + a(ce); + var Ua = s(ce, 2), + Ne = t(Ua), + Ia = t(Ne), + za = s(Ia), + St = t(za, !0); + a(za), a(Ne); + var Aa = s(Ne, 2); + { + var jt = (f) => { + var l = cr(), + y = K(l), + z = t(y), + P = s(z), + W = t(P, !0); + a(P), a(y); + var E = s(y, 2), + C = t(E), + ee = s(C), + H = t(ee, !0); + a(ee), + a(E), + U( + (ke, Ge) => { + i(z, `${ke ?? ""}: `), + i(W, e(o).reportedUser.timeoutCount), + i(C, `${Ge ?? ""}: `), + i( + H, + q[e(o).reportedUser.lastTimeoutReason] ?? + e(o).reportedUser.lastTimeoutReason + ); + }, + [() => Ds(), () => Ms()] + ), + g(f, l); + }; + $(Aa, (f) => { + e(o).reportedUser.lastTimeoutReason && f(jt); + }); + } + var Ee = s(Aa, 2), + Ra = t(Ee), + La = s(Ra), + Pt = t(La, !0); + a(La), a(Ee); + var Ca = s(Ee, 2), + Ba = t(Ca), + Oe = s(Ba); + let Da; + var Nt = t(Oe, !0); + a(Oe), a(Ca), a(Ua), a(le); + var Et = s(le, 2); + { + var Ot = (f) => { + var l = vr(); + l.__click = [dr, lt, o]; + var y = t(l, !0); + a(l), + U( + (z) => { + (l.disabled = e(u)), i(y, z); + }, + [() => Fs()] + ), + g(f, l); + }; + $(Et, (f) => { + var l; + ((l = ue.data) == null ? void 0 : l.role) === "admin" && f(Ot); + }); + } + a(ne); + var Ma = s(ne, 4); + ra( + Ma, + 21, + () => e(o).reports, + (f) => f.id, + (f, l) => { + const y = ae( + () => + `${oa.url.origin}/?lat=${e(l).reportedLatitude}&lng=${ + e(l).reportedLongitude + }&select=true${e(l).zoom ? `&zoom=${e(l).zoom}` : ""}` + ); + var z = xr(), + P = t(z), + W = t(P), + E = s(W), + C = t(E); + C.__click = [_r, la, o, l]; + var ee = t(C, !0); + a(C); + var H = s(C, 2); + H.__click = [pr, ca, o, l]; + var ke = t(H); + Qa(ke, { class: "size-5" }); + var Ge = s(ke); + a(H); + var Gt = s(H, 2); + { + var Wt = (A) => { + var h = fr(); + h.__click = [ur, da, o, l]; + var k = t(h); + Xa(k, { class: "size-5" }); + var J = s(k); + a(h), + U( + (O) => { + (h.disabled = e(u)), i(J, ` ${O ?? ""}`); + }, + [() => ot()] + ), + g(A, h); + }; + $(Gt, (A) => { + var h, k; + (((h = ue.data) == null ? void 0 : h.role) === "admin" || + ((k = ue.data) == null ? void 0 : k.role) === + "global_moderator") && + A(Wt); + }); + } + a(E), a(P); + var We = s(P, 2), + Sa = t(We); + na(Sa, { + class: "size-15", + get userId() { + return e(l).reportedBy; + }, + get pictureUrl() { + return e(l).reportedByPicture; + }, + }); + var ja = s(Sa, 2), + Ye = t(ja), + Pa = t(Ye), + qe = s(Pa), + Fe = t(qe), + Yt = t(Fe, !0); + a(Fe); + var Na = s(Fe, 2), + qt = t(Na); + a(Na), a(qe), a(Ye); + var Ea = s(Ye, 2), + He = t(Ea), + Je = t(He), + Ft = t(Je); + a(Je); + var we = s(Je, 2); + ra( + we, + 21, + () => Ue, + ds, + (A, h) => { + var k = br(), + J = t(k, !0); + a(k); + var O = {}; + U(() => { + i(J, e(h).label), + O !== (O = e(h).value) && + (k.value = (k.__value = e(h).value) ?? ""); + }), + g(A, k); + } + ), + a(we), + a(He); + var Ke = s(He, 2), + Oa = t(Ke), + Ga = s(Oa), + Ht = t(Ga, !0); + a(Ga), a(Ke); + var Qe = s(Ke, 2), + Wa = t(Qe), + Ve = s(Wa), + Jt = t(Ve); + Za(Jt, { class: "inline size-4" }), Ka(2), a(Ve), a(Qe); + var Ya = s(Qe, 2), + qa = t(Ya), + Xe = s(qa), + Kt = t(Xe); + Za(Kt, { class: "inline size-4" }), + Ka(2), + a(Xe), + a(Ya), + a(Ea), + a(ja), + a(We); + var Fa = s(We, 2); + { + var Qt = (A) => { + var h = mr(), + k = t(h), + J = t(k, !0); + a(k); + var O = s(k, 2), + ea = t(O, !0); + a(O), + a(h), + U( + (aa) => { + i(J, aa), i(ea, e(l).notes); + }, + [() => hs()] + ), + g(A, h); + }; + $(Fa, (A) => { + e(l).notes && A(Qt); + }); + } + var Ha = s(Fa, 2), + Ze = t(Ha); + Ze.__click = [gr, ge, y, te, o, Z, l, X]; + var Ja = t(Ze), + Vt = s(Ja, 2); + ws(Vt, { + class: + "absolute left-1/2 top-1/2 size-7 -translate-x-1/2 -translate-y-[87%]", + }), + a(Ze), + a(Ha), + a(z), + U( + (A, h, k, J, O, ea, aa, Xt, Zt, es) => { + i(W, `${A ?? ""} #${e(l).id ?? ""} `), + (C.disabled = e(u)), + i(ee, h), + (H.disabled = e(u)), + i(Ge, ` ${k ?? ""}`), + i(Pa, `${J ?? ""}: `), + F(qe, 1, `font-semibold ${O ?? ""}`), + i(Yt, e(l).reportedByName), + i(qt, `#${e(l).reportedBy ?? ""}`), + i(Ft, `${ea ?? ""}:`), + F( + we, + 1, + `select select-bordered select-sm font-semibold ${ + bs[e(T)[e(l).id]] ?? "" + }` + ), + i(Oa, `${aa ?? ""}: `), + i(Ht, Xt), + i(Wa, `${Zt ?? ""}: `), + Y(Ve, "href", e(y)), + i(qa, `${es ?? ""}: `), + Y( + Xe, + "href", + `${oa.url.origin ?? ""}/?lat=${ + e(l).lastPixelLatitude ?? "" + }&lng=${e(l).lastPixelLongitude ?? ""}&select=true` + ), + Y(Ja, "src", e(l).imageUrl); + }, + [ + () => at(), + () => rt(), + () => st(), + () => $s(), + () => $e(e(l).reportedBy), + () => Ts(), + () => Us(), + () => new Date(e(l).createdAt).toLocaleString(), + () => Is(), + () => zs(), + ] + ), + ps( + we, + () => e(T)[e(l).id], + (A) => (e(T)[e(l).id] = A) + ), + g(f, z); + } + ), + a(Ma), + a(oe), + U( + (f, l, y, z, P, W, E, C, ee) => { + Y(N, "title", e(o).id), + i(je, `${f ?? ""}: ${l ?? ""}`), + i(S, y), + F(j, 1, `text-lg font-semibold ${z ?? ""}`), + i(zt, e(o).reportedUser.name), + i(At, `#${e(o).reportedUser.id ?? ""}`), + Y(_e, "title", P), + i(Ia, `${W ?? ""}: `), + i(St, e(o).reportedUser.reportedCount), + i(Ra, `${E ?? ""}: `), + i(Pt, e(o).reportedUser.pixelsPainted), + i(Ba, `${C ?? ""}: `), + (Da = F(Oe, 1, "font-semibold", null, Da, ee)), + i(Nt, e(L)); + }, + [ + () => As(), + () => e(o).id.split("-").at(-1), + () => et(), + () => $e(e(o).reportedUser.id), + () => Rs({ userId: e(o).reportedUser.id }), + () => Ls(), + () => ys(), + () => Cs(), + () => ({ "text-red-600": e(L) >= 7 }), + ] + ), + g(x, M); + } + ), + g(n, r); + }; + $(gt, (n) => { + e(m) && n(xt); + }); + } + a(xa), a(Ie); + var ye = s(Ie, 2), + De = t(ye), + ha = s(t(De), 2), + Me = t(ha), + Se = t(Me), + ht = t(Se); + a(Se); + var ya = s(Se, 2), + se = t(ya); + se.__click = [yr, la, te, Z, X]; + var yt = t(se, !0); + a(se); + var re = s(se, 2); + re.__click = [kr, ca, te, Z, X]; + var ka = t(re); + Qa(ka, { class: "size-5" }); + var kt = s(ka); + a(re); + var wt = s(re, 2); + { + var $t = (n) => { + var r = $r(); + r.__click = [wr, da, te, Z, X]; + var v = t(r); + Xa(v, { class: "size-5" }); + var x = s(v); + a(r), + U( + (o) => { + (r.disabled = e(u)), i(x, ` ${o ?? ""}`); + }, + [() => ot()] + ), + g(n, r); + }; + $(wt, (n) => { + var r, v; + (((r = ue.data) == null ? void 0 : r.role) === "admin" || + ((v = ue.data) == null ? void 0 : v.role) === "global_moderator") && + n($t); + }); + } + a(ya), a(Me); + var Tt = s(Me, 2); + { + var Ut = (n) => { + var r = Tr(); + U(() => Y(r, "src", e(ge))), g(n, r); + }; + $(Tt, (n) => { + e(ge) && n(Ut); + }); + } + a(ha), a(De); + var wa = s(De, 2), + $a = t(wa), + It = t($a, !0); + a($a), + a(wa), + a(ye), + us( + ye, + (n) => b(X, n), + () => e(X) + ), + U( + (n, r, v, x, o, L, M) => { + var I; + Y(xe, "href", oa.url.origin), + i(dt, n), + i(vt, `${r ?? ""}: ${e(Q) ?? "" ?? ""}`), + i(ua, `Closed reports: ${e(D).rclosedTotal ?? ""}`), + i(fa, ` Ignored: ${e(D).ignored ?? ""}`), + i(ba, ` Timeouts: ${e(D).timeouts ?? ""}`), + i(_t, ` Bans: ${e(D).bans ?? ""}`), + i(pt, ` ${v ?? ""}: ${e(D).closedTotal ?? ""}`), + (he.disabled = e(d)), + i(ht, `${x ?? ""} #${((I = e(Z)) == null ? void 0 : I.id) ?? ""}`), + (se.disabled = e(u)), + i(yt, o), + (re.disabled = e(u)), + i(kt, ` ${L ?? ""}`), + i(It, M); + }, + [ + () => et(), + () => Es(), + () => Qs(), + () => at(), + () => rt(), + () => st(), + () => gs(), + ] + ), + rs("close", ye, () => { + b(ge, ""), b(te, void 0), b(Z, void 0); + }), + g(p, va), + os(); +} +ts(["click"]); +export { Vr as component }; diff --git a/frontend-backup/_app/immutable/nodes/14.TE67n0On.js b/frontend-backup/_app/immutable/nodes/14.TE67n0On.js deleted file mode 100644 index da03222..0000000 --- a/frontend-backup/_app/immutable/nodes/14.TE67n0On.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{o as Rt}from"../chunks/4WsUhDWi.js";import{at as Lt,p as Ct,au as Q,av as be,f as w,s,t as U,b,c as Bt,g as e,aw as x,$ as St,d as t,r as a,u as X,az as Mt,a as Z,ay as Ze,n as qe,b4 as Fe}from"../chunks/BDALf20I.js";import{s as l}from"../chunks/4k6DpCgf.js";import{i as T}from"../chunks/Bke_korE.js";import{a as Dt,k as Pt}from"../chunks/BCONGQnO.js";import{e as He,i as jt}from"../chunks/CZW2bcQi.js";import{h as Nt}from"../chunks/BUhRjcOt.js";import{s as G,a as H,c as Et,d as Ot}from"../chunks/BNZUboE0.js";import{g as Gt}from"../chunks/B4HM4TqG.js";import{p as Je}from"../chunks/C-Y7nmnD.js";import{a as le,t as W,u as Ke,s as F,b as Wt}from"../chunks/DffDvEhl.js";import{P as Qe}from"../chunks/DCxPsWiR.js";import{A as Vt}from"../chunks/CVCd3urP.js";import{C as Ba,T as Yt,G as qt,c as Ft}from"../chunks/ZzI7cLBE.js";import{L as Xe,d as Ht,p as Jt}from"../chunks/sZ1mzRzK.js";import{r as Sa,n as Kt,M as Qt,a as Xt,b as Zt,c as es,t as as,d as ts,l as ss,e as rs,f as ns,g as os,h as is,m as ls,i as cs,j as ds,u as vs,k as _s}from"../chunks/5mOJ66sL.js";import{R as Ma}from"../chunks/rLj4C5Bn.js";import{g as xe}from"../chunks/DklPLC_x.js";import{r as ps}from"../chunks/Drv8f_fG.js";import{t as us,f as fs}from"../chunks/DS5O-Inb.js";import{o as ms}from"../chunks/GVP1MJz5.js";import{g as ge,a as bs}from"../chunks/ClOhzjRc.js";(function(){try{var p=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};p.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var p=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},c=new p.Error().stack;c&&(p._sentryDebugIds=p._sentryDebugIds||{},p._sentryDebugIds[c]="e37f7fef-8481-48d3-ae18-a18771d129a0",p._sentryDebugIdIdentifier="sentry-dbid-e37f7fef-8481-48d3-ae18-a18771d129a0")})()}catch{}const gs=()=>"Ignore",xs=()=>"Ignorar",hs=(p={},c={})=>(c.locale??xe())==="en"?gs():xs(),ys=()=>"Ignore all",ks=()=>"Ignorar todos",ws=(p={},c={})=>(c.locale??xe())==="en"?ys():ks(),Pa=()=>"Ban",$s=Pa,Ts=(p={},c={})=>(c.locale??xe())==="en"?Pa():$s(),Us=()=>"Closed tickets",Is=()=>"Tickets fechados",zs=(p={},c={})=>(c.locale??xe())==="en"?Us():Is(),Da=(p,c=Mt)=>{var d=As();let k;var f=t(d);{var ce=g=>{var Y=Fe("MOD");b(g,Y)},V=g=>{var Y=Ze(),I=Z(Y);{var he=M=>{var D=Fe("GM");b(M,D)},de=M=>{var D=Fe("ADMIN");b(M,D)};T(I,M=>{c()==="global_moderator"?M(he):M(de,!1)},!0)}b(g,Y)};T(f,g=>{c()==="moderator"?g(ce):g(V,!1)})}a(d),U(g=>k=H(d,1,"badge badge-sm ml-0.5 font-semibold",null,k,g),[()=>({"badge-secondary":c()==="moderator"||c()=="global_moderator","badge-warning":c()==="admin"})]),b(p,d)};var As=w(""),Rs=(p,c)=>{c()},Ls=(p,c,d)=>{x(c,e(d),!0)},Cs=w('
              '),Bs=w(''),Ss=async(p,c,d,k)=>{await c(),x(d,e(k)[0],!0)},Ms=w('

              ',1),Ds=w(''),Ps=(p,c)=>{navigator.clipboard.writeText(e(c).reportedUser.id.toString()),W.success(vs())},js=(p,c)=>{navigator.clipboard.writeText(e(c).toString()),W.success(_s())},Ns=w(""),Es=w('💰 PAID'),Os=w(' ',1),Gs=(p,c,d)=>{c(e(d).id)},Ws=w(''),Vs=(p,c,d,k)=>{c(e(d).id,e(k).id)},Ys=(p,c,d,k)=>{c(e(d).id,e(k))},qs=(p,c,d,k)=>{c(e(d).id,e(k))},Fs=w(''),Hs=w(""),Js=w('

              '),Ks=w(''),Qs=(p,c,d)=>{c[e(d).id]={showIframe:!0}},Xs=w(''),Zs=w(''),er=w('

              :
              ',1),ar=w('




              ');function Tr(p,c){Ct(c,!0);let d=Q(!0),k=Q(!1),f=Q(be([])),ce=Q(void 0),V=Q(be({closedTotal:0,bans:0,ignored:0,timeouts:0,rclosedTotal:0,rignored:0,rtimeouts:0,rbans:0})),g=Q(void 0),Y=be({}),I=Q(be({}));const he=[{value:"griefing",label:F.griefing},{value:"inappropriate-content",label:F["inappropriate-content"]},{value:"hate-speech",label:F["hate-speech"]},{value:"doxxing",label:F.doxxing},{value:"multi-accounting",label:F["multi-accounting"]},{value:"bot",label:F.bot},{value:"other",label:F.other}];Rt(()=>{de()});async function de(){await M(),e(f).length<=1&&await D(),e(g)||x(g,e(f)[0],!0)}async function M(){try{x(d,!0);const i=await le.getModeratorTickets();x(f,i.tickets,!0),ea();try{x(V,await le.countMyTicketsClosedToday(),!0)}catch(n){return W.error(n.message),{closedTotal:0,ignored:0,timeouts:0,bans:0,rclosedTotal:0,rignored:0,rtimeouts:0,rbans:0}}x(I,{},!0);for(const n of e(f))for(const _ of n.reports)e(I)[_.id]=_.assignedReason??_.reason}catch(i){i.status===403||i.status===401?Gt("/404"):W.error(i.message)}finally{x(d,!1)}}async function D(){try{x(d,!0);const{newTicketsIds:i}=await le.assignNewTickets();i.length>0&&await M(),await ea()}catch(i){W.error(i.message)}finally{x(d,!1)}}async function ea(){try{x(ce,await le.getNonPaidUserOpenTicketsCount(),!0)}catch(i){W.error(i.message)}}async function ve(i,n,_,$){try{x(k,!0),await le.setTicketStatus(i,n,_,$),n!=="open"&&!(n==="ignore"&&_)&&(x(f,e(f).filter(r=>r.id!==i),!0),e(f).length<=1&&await D(),x(g,e(f)[0],!0))}catch(r){W.error(r.message)}finally{x(k,!1)}}function ja(i){return ve(i,"ignore",0,"other").then(()=>{x(f,e(f).filter(n=>n.id!==i),!0),x(g,e(f)[0],!0),e(f).length<=1&&D()}).catch(n=>{W.error(n.message)})}function Na(i,n){return ve(i,"ignore",n,e(I)[n]??"other").then(()=>{const _=e(f).findIndex(r=>r.id===i);if(_===-1)return;const $=e(f)[_];if($.reports=$.reports.filter(r=>r.id!==n),delete e(I)[n],delete Y[n],$.reports.length===0){x(f,e(f).filter(r=>r.id!==i),!0),x(g,e(f)[0],!0),e(f).length<=1&&D();return}x(g,{...$},!0)}).catch(_=>{W.error(_.message)})}function Ea(i,n){const _=e(I)[n.id]??n.assignedReason??n.reason;return ve(i,"timeout",n.id,_)}function Oa(i,n){const _=e(I)[n.id]??n.assignedReason??n.reason;return ve(i,"ban",n.id,_)}var ye=ar();Nt(i=>{St.title="Wplace - Moderation"});var ke=t(ye),we=t(ke),$e=t(we),_e=t($e),Ga=t(_e);Vt(Ga,{class:"size-5"}),a(_e);var aa=s(_e,2),Te=t(aa),Wa=t(Te,!0);a(Te);var Ue=s(Te,2),Va=t(Ue);a(Ue);var ta=s(Ue,2),Ie=t(ta),sa=t(Ie),ra=s(sa,2),na=s(ra,2),Ya=s(na,2);a(Ie);var qa=s(Ie);a(ta),a(aa),a($e);var pe=s($e,2);pe.__click=[Rs,de];var Fa=t(pe);Ma(Fa,{class:"size-4"}),a(pe),a(we);var oa=s(we,2);He(oa,25,()=>e(f),i=>i.id,(i,n)=>{const _=X(()=>new Date(e(n).createdAt)),$=X(()=>{var L;return((L=e(g))==null?void 0:L.id)===e(n).id});var r=Bs();r.__click=[Ls,g,n];var A=t(r);Qe(A,{class:"size-13",get userId(){return e(n).reportedUser.id},get pictureUrl(){return e(n).reportedUser.picture}});var q=s(A,2),R=t(q),P=t(R),ze=t(P,!0);a(P);var ee=s(P,2),ae=t(ee);a(ee),a(R);var te=s(R,2),se=t(te,!0);a(te),a(q);var re=s(q,2);{var ne=L=>{var C=Cs(),oe=t(C);Da(oe,()=>e(n).reportedUser.role),a(C),b(L,C)};T(re,L=>{e(n).reportedUser.role!=="user"&&L(ne)})}a(r),U((L,C)=>{H(r,1,Et({"bg-base-100 ring-primary relative flex gap-2 rounded-2xl p-4 shadow":!0,"bg-primary/10 ring-2":e($)})),H(R,1,`text-lg font-semibold ${L??""} flex gap-1.5`),l(ze,e(n).reportedUser.name),l(ae,`#${e(n).reportedUser.id??""}`),l(se,C)},[()=>ge(e(n).reportedUser.id),()=>e(_).toLocaleString()]),Dt(r,()=>fs,()=>({duration:250})),b(i,r)});var ia=s(oa,2),Ha=t(ia);{var Ja=i=>{var n=Ms(),_=Z(n),$=t(_,!0);a(_);var r=s(_,2);r.__click=[Ss,D,g,f];var A=t(r);Ma(A,{class:"size-5"});var q=s(A);a(r),U((R,P)=>{l($,R),l(q,` ${P??""}`)},[()=>Kt(),()=>ps()]),b(i,n)},Ka=i=>{var n=Ze(),_=Z(n);{var $=r=>{var A=Ds();b(r,A)};T(_,r=>{e(d)&&e(f).length===0&&r($)},!0)}b(i,n)};T(Ha,i=>{!e(d)&&e(f).length===0?i(Ja):i(Ka,!1)})}a(ia),a(ke);var la=s(ke,2),Qa=t(la);{var Xa=i=>{var n=Ze(),_=Z(n);Pt(_,()=>e(g).id,$=>{const r=X(()=>e(g)),A=X(()=>{var v;return(v=ls(e(r).reports,o=>o.sameIpAccounts))==null?void 0:v.sameIpAccounts});var q=er(),R=Z(q),P=t(R),ze=t(P);a(P),a(R);var ee=s(R,2),ae=t(ee),te=t(ae);Qe(te,{class:"size-15",get userId(){return e(r).reportedUser.id},get pictureUrl(){return e(r).reportedUser.picture}});var se=s(te,2),re=t(se),ne=t(re),L=t(ne,!0);a(ne);var C=s(ne,2),oe=t(C),Za=t(oe,!0);a(oe);var Ae=s(oe,2),et=t(Ae);a(Ae);var ie=s(Ae,2);ie.__click=[Ps,r];var at=t(ie);Ba(at,{class:"inline size-4"}),a(ie);var ca=s(ie,2);{var tt=v=>{const o=X(()=>e(r).reportedUser.allianceId);var y=Ns();y.__click=[js,o];var z=t(y),B=s(z);Ba(B,{class:"size-3"}),a(y),U((j,N,E)=>{H(y,1,`tooltip badge badge-sm ml-0.5 border-0 ${j??""} ${N??""}`),G(y,"title",E),l(z,`${e(r).reportedUser.allianceName??""} `)},[()=>bs(e(o)),()=>ge(e(o)),()=>Ft({allianceId:e(o)})]),b(v,y)};T(ca,v=>{e(r).reportedUser.allianceId&&v(tt)})}var st=s(ca,2);{var rt=v=>{var o=Es();b(v,o)};T(st,v=>{e(r).reportedUser.paid&&v(rt)})}a(C);var nt=s(C,2);{var ot=v=>{Da(v,()=>e(r).reportedUser.role)};T(nt,v=>{e(r).reportedUser.role!=="user"&&v(ot)})}a(re);var da=s(re,2),Re=t(da),va=t(Re),_a=s(va),it=t(_a,!0);a(_a),a(Re);var pa=s(Re,2);{var lt=v=>{var o=Os(),y=Z(o),z=t(y),B=s(z),j=t(B,!0);a(B),a(y);var N=s(y,2),E=t(N),S=s(E),Be=t(S,!0);a(S),a(N),U((J,ue)=>{l(z,`${J??""}: `),l(j,e(r).reportedUser.timeoutCount),l(E,`${ue??""}: `),l(Be,F[e(r).reportedUser.lastTimeoutReason]??e(r).reportedUser.lastTimeoutReason)},[()=>cs(),()=>ds()]),b(v,o)};T(pa,v=>{e(r).reportedUser.lastTimeoutReason&&v(lt)})}var Le=s(pa,2),ua=t(Le),fa=s(ua),ct=t(fa,!0);a(fa),a(Le);var ma=s(Le,2),ba=t(ma),Ce=s(ba);let ga;var dt=t(Ce,!0);a(Ce),a(ma),a(da),a(se);var vt=s(se,2);{var _t=v=>{var o=Ws();o.__click=[Gs,ja,r];var y=t(o,!0);a(o),U(z=>{o.disabled=e(k),l(y,z)},[()=>ws()]),b(v,o)};T(vt,v=>{var o;((o=Ke.data)==null?void 0:o.role)==="admin"&&v(_t)})}a(ae);var xa=s(ae,4);He(xa,21,()=>e(r).reports,v=>v.id,(v,o)=>{const y=X(()=>`${Je.url.origin}/?lat=${e(o).reportedLatitude}&lng=${e(o).reportedLongitude}&select=true${e(o).zoom?`&zoom=${e(o).zoom}`:""}`),z=X(()=>{var m;return((m=Y[e(o).id])==null?void 0:m.showIframe)??!1});var B=Zs(),j=t(B),N=t(j),E=s(N),S=t(E);S.__click=[Vs,Na,r,o];var Be=t(S,!0);a(S);var J=s(S,2);J.__click=[Ys,Ea,r,o];var ue=t(J);Yt(ue,{class:"size-5"});var pt=s(ue);a(J);var ut=s(J,2);{var ft=m=>{var u=Fs();u.__click=[qs,Oa,r,o];var h=t(u);qt(h,{class:"size-5"});var K=s(h);a(u),U(O=>{u.disabled=e(k),l(K,` ${O??""}`)},[()=>Ts()]),b(m,u)};T(ut,m=>{var u,h;(((u=Ke.data)==null?void 0:u.role)==="admin"||((h=Ke.data)==null?void 0:h.role)==="global_moderator")&&m(ft)})}a(E),a(j);var Se=s(j,2),ha=t(Se);Qe(ha,{class:"size-15",get userId(){return e(o).reportedBy},get pictureUrl(){return e(o).reportedByPicture}});var ya=s(ha,2),Me=t(ya),ka=t(Me),De=s(ka),Pe=t(De),mt=t(Pe,!0);a(Pe);var wa=s(Pe,2),bt=t(wa);a(wa),a(De),a(Me);var $a=s(Me,2),je=t($a),Ne=t(je),gt=t(Ne);a(Ne);var fe=s(Ne,2);He(fe,21,()=>he,jt,(m,u)=>{var h=Hs(),K=t(h,!0);a(h);var O={};U(()=>{l(K,e(u).label),O!==(O=e(u).value)&&(h.value=(h.__value=e(u).value)??"")}),b(m,h)}),a(fe),a(je);var Ee=s(je,2),Ta=t(Ee),Ua=s(Ta),xt=t(Ua,!0);a(Ua),a(Ee);var Oe=s(Ee,2),Ia=t(Oe),Ge=s(Ia),ht=t(Ge);Xe(ht,{class:"inline size-4"}),qe(2),a(Ge),a(Oe);var za=s(Oe,2),Aa=t(za),We=s(Aa),yt=t(We);Xe(yt,{class:"inline size-4"}),qe(2),a(We),a(za),a($a),a(ya),a(Se);var Ra=s(Se,2);{var kt=m=>{var u=Js(),h=t(u),K=t(h,!0);a(h);var O=s(h,2),Ve=t(O,!0);a(O),a(u),U(Ye=>{l(K,Ye),l(Ve,e(o).notes)},[()=>Ht()]),b(m,u)};T(Ra,m=>{e(o).notes&&m(kt)})}var La=s(Ra,2),me=t(La),Ca=t(me),wt=s(Ca,2);Qt(wt,{class:"absolute left-1/2 top-1/2 size-7 -translate-x-1/2 -translate-y-[87%]"}),a(me);var $t=s(me,2);{var Tt=m=>{var u=Ks();U(()=>G(u,"src",e(y))),b(m,u)},Ut=m=>{var u=Xs();u.__click=[Qs,Y,o];var h=t(u);Xe(h,{class:"size-4"}),qe(),a(u),b(m,u)};T($t,m=>{e(z)?m(Tt):m(Ut,!1)})}a(La),a(B),U((m,u,h,K,O,Ve,Ye,It,zt,At)=>{l(N,`${m??""} #${e(o).id??""} `),S.disabled=e(k),l(Be,u),J.disabled=e(k),l(pt,` ${h??""}`),l(ka,`${K??""}: `),H(De,1,`font-semibold ${O??""}`),l(mt,e(o).reportedByName),l(bt,`#${e(o).reportedBy??""}`),l(gt,`${Ve??""}:`),H(fe,1,`select select-bordered select-sm font-semibold ${Wt[e(I)[e(o).id]]??""}`),l(Ta,`${Ye??""}: `),l(xt,It),l(Ia,`${zt??""}: `),G(Ge,"href",e(y)),l(Aa,`${At??""}: `),G(We,"href",`${Je.url.origin??""}/?lat=${e(o).lastPixelLatitude??""}&lng=${e(o).lastPixelLongitude??""}&select=true`),G(me,"href",e(y)),G(Ca,"src",e(o).imageUrl)},[()=>Xt(),()=>hs(),()=>us(),()=>Zt(),()=>ge(e(o).reportedBy),()=>es(),()=>as(),()=>new Date(e(o).createdAt).toLocaleString(),()=>ts(),()=>ss()]),Ot(fe,()=>e(I)[e(o).id],m=>e(I)[e(o).id]=m),b(v,B)}),a(xa),a(ee),U((v,o,y,z,B,j,N,E,S)=>{G(P,"title",e(r).id),l(ze,`${v??""}: ${o??""}`),l(L,y),H(C,1,`text-lg font-semibold ${z??""}`),l(Za,e(r).reportedUser.name),l(et,`#${e(r).reportedUser.id??""}`),G(ie,"title",B),l(va,`${j??""}: `),l(it,e(r).reportedUser.reportedCount),l(ua,`${N??""}: `),l(ct,e(r).reportedUser.pixelsPainted),l(ba,`${E??""}: `),ga=H(Ce,1,"font-semibold",null,ga,S),l(dt,e(A))},[()=>rs(),()=>e(r).id.split("-").at(-1),()=>Sa(),()=>ge(e(r).reportedUser.id),()=>ns({userId:e(r).reportedUser.id}),()=>os(),()=>Jt(),()=>is(),()=>({"text-red-600":e(A)>=7})]),b($,q)}),b(i,n)};T(Qa,i=>{e(g)&&i(Xa)})}a(la),a(ye),U((i,n,_)=>{G(_e,"href",Je.url.origin),l(Wa,i),l(Va,`${n??""}: ${e(ce)??""??""}`),l(sa,`Closed reports: ${e(V).rclosedTotal??""}`),l(ra,` Ignored: ${e(V).ignored??""}`),l(na,` Timeouts: ${e(V).timeouts??""}`),l(Ya,` Bans: ${e(V).bans??""}`),l(qa,` ${_??""}: ${e(V).closedTotal??""}`),pe.disabled=e(d)},[()=>Sa(),()=>ms(),()=>zs()]),b(p,ye),Bt()}Lt(["click"]);export{Tr as component}; diff --git a/frontend-backup/_app/immutable/nodes/15.BKIY6Gje.js b/frontend-backup/_app/immutable/nodes/15.BKIY6Gje.js deleted file mode 100644 index 17138c3..0000000 --- a/frontend-backup/_app/immutable/nodes/15.BKIY6Gje.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{at as v,p as y,f as x,s as o,t as u,b as w,c as I,$ as T,d as a,r}from"../chunks/BDALf20I.js";import{s as m}from"../chunks/4k6DpCgf.js";import{h as $}from"../chunks/BUhRjcOt.js";import{i as E}from"../chunks/BuTItAOu.js";import{L as k}from"../chunks/CYItkO2S.js";import{R as D}from"../chunks/rLj4C5Bn.js";import{W as L}from"../chunks/BtAj0icR.js";import{g as R}from"../chunks/DklPLC_x.js";import{r as S}from"../chunks/Drv8f_fG.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f5fe2200-0629-4b3d-908c-fa574a4638ca",e._sentryDebugIdIdentifier="sentry-dbid-f5fe2200-0629-4b3d-908c-fa574a4638ca")})()}catch{}const W=()=>"No internet connection",z=()=>"Sem conexão na internet",b=(e={},t={})=>(t.locale??R())==="en"?W():z();var N=()=>{location.reload()},j=x('

              ');function M(e,t){y(t,!1),E();var n=j();$(p=>{u(f=>T.title=`Wplace - ${f??""}`,[()=>b()])});var s=a(n),_=a(s);k(_,{class:"absolute left-1/2 top-10 -translate-x-1/2",size:"lg",hasText:!0}),r(s);var l=o(s,2);L(l,{class:"text-base-content/80 w-40"});var i=o(l,2),g=a(i,!0);r(i);var c=o(i,2);c.__click=[N];var d=a(c);D(d,{class:"size-5"});var h=o(d);r(c),r(n),u((p,f)=>{m(g,p),m(h,` ${f??""}`)},[()=>b(),()=>S()]),w(e,n),I()}v(["click"]);export{M as component}; diff --git a/frontend-backup/_app/immutable/nodes/15.D6A8EYfF.js b/frontend-backup/_app/immutable/nodes/15.D6A8EYfF.js new file mode 100644 index 0000000..a70aaf8 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/15.D6A8EYfF.js @@ -0,0 +1,103 @@ +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { + at as v, + p as y, + f as x, + s as o, + t as u, + b as w, + c as I, + $ as T, + d as a, + r, +} from "../chunks/CMvZtFtm.js"; +import { s as m } from "../chunks/DVA6u9-7.js"; +import { h as $ } from "../chunks/P77cUGnY.js"; +import { i as E } from "../chunks/Z_72d8Vp.js"; +import { L as k } from "../chunks/D3yDgRbd.js"; +import { R as D } from "../chunks/m3o6lEf1.js"; +import { W as L } from "../chunks/DCynssDD.js"; +import { g as R } from "../chunks/CV9xcpLq.js"; +import { r as S } from "../chunks/C3E1P42D.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "f5fe2200-0629-4b3d-908c-fa574a4638ca"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-f5fe2200-0629-4b3d-908c-fa574a4638ca")); + })(); +} catch {} +const W = () => "No internet connection", + z = () => "Sem conexão na internet", + b = (e = {}, t = {}) => ((t.locale ?? R()) === "en" ? W() : z()); +var N = () => { + location.reload(); + }, + j = x( + '

              ' + ); +function M(e, t) { + y(t, !1), E(); + var n = j(); + $((p) => { + u((f) => (T.title = `FurryPlace - ${f ?? ""}`), [() => b()]); + }); + var s = a(n), + _ = a(s); + k(_, { + class: "absolute left-1/2 top-10 -translate-x-1/2", + size: "lg", + hasText: !0, + }), + r(s); + var l = o(s, 2); + L(l, { class: "text-base-content/80 w-40" }); + var i = o(l, 2), + g = a(i, !0); + r(i); + var c = o(i, 2); + c.__click = [N]; + var d = a(c); + D(d, { class: "size-5" }); + var h = o(d); + r(c), + r(n), + u( + (p, f) => { + m(g, p), m(h, ` ${f ?? ""}`); + }, + [() => b(), () => S()] + ), + w(e, n), + I(); +} +v(["click"]); +export { M as component }; diff --git a/frontend-backup/_app/immutable/nodes/16.CKya8A82.js b/frontend-backup/_app/immutable/nodes/16.CKya8A82.js deleted file mode 100644 index 45b68c9..0000000 --- a/frontend-backup/_app/immutable/nodes/16.CKya8A82.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{o as P}from"../chunks/4WsUhDWi.js";import{v as D,b as m,p as S,f as C,t as w,c as z,$ as N,d as s,s as c,aw as R,au as Y,r as n,g as x,ay as Z,a as j}from"../chunks/BDALf20I.js";import{s as f}from"../chunks/4k6DpCgf.js";import{r as A,i as B}from"../chunks/Bke_korE.js";import{h as M}from"../chunks/DV6L2nvf.js";import{h as O}from"../chunks/BUhRjcOt.js";import{p as $}from"../chunks/C-Y7nmnD.js";import{a as V,u as W}from"../chunks/DffDvEhl.js";import{L as F}from"../chunks/CYItkO2S.js";import{b as G}from"../chunks/BNZUboE0.js";import{g as _}from"../chunks/DklPLC_x.js";import{g as H}from"../chunks/BpFpuxGr.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a6bf5bb-6139-4c34-aa73-98961bc8f67e",e._sentryDebugIdIdentifier="sentry-dbid-4a6bf5bb-6139-4c34-aa73-98961bc8f67e")})()}catch{}const J=()=>"Payment succeeded",K=()=>"Pagamento bem sucedido",T=(e={},t={})=>(t.locale??_())==="en"?J():K(),Q=e=>`You purchased ${e.number_droplet} droplets.`,U=e=>`Você comprou ${e.number_droplet} droplets.`,X=(e,t={})=>(t.locale??_())==="en"?Q(e):U(e),ee=()=>"Thank you for your support!",te=()=>"Obrigado pelo seu apoio!",re=(e={},t={})=>(t.locale??_())==="en"?ee():te();var oe=D('');function ae(e,t){let o=A(t,["$$slots","$$events","$$legacy"]);var l=oe();G(l,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...o})),m(e,l)}var se=C('');function ge(e,t){S(t,!0);let o=Y(null);P(async()=>{R(o,$.url.searchParams.get("droplets"),!0);const r=$.url.searchParams.get("session_id");r&&await V.refreshPaymentSession(r)&&await W.refresh()});var l=se();O(r=>{w(a=>N.title=`Wplace - ${a??""}`,[()=>T()])});var d=s(l),q=s(d);F(q,{size:"lg",hasText:!0}),n(d);var b=c(d,2),v=s(b),h=s(v);ae(h,{class:"size-16 text-emerald-500"});var i=c(h,2),k=s(i);n(i);var p=c(i,2),g=s(p);{var I=r=>{var a=Z(),u=j(a);M(u,()=>X({number_droplet:Number(x(o)).toLocaleString()})),m(r,a)};B(g,r=>{x(o)&&r(I)})}var E=c(g);n(p);var y=c(p,2),L=s(y,!0);n(y),n(v),n(b),n(l),w((r,a,u)=>{f(k,`${r??""}!`),f(E,` ${a??""}`),f(L,u)},[()=>T(),()=>re(),()=>H()]),m(e,l),z()}export{ge as component}; diff --git a/frontend-backup/_app/immutable/nodes/16.DTKQOukW.js b/frontend-backup/_app/immutable/nodes/16.DTKQOukW.js new file mode 100644 index 0000000..16b236b --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/16.DTKQOukW.js @@ -0,0 +1,142 @@ +import "../chunks/Ch2Ub8FX.js"; +import { o as P } from "../chunks/DoL3ojdE.js"; +import { + v as D, + b as m, + p as S, + f as C, + t as w, + c as z, + $ as N, + d as a, + s as d, + aw as R, + au as Y, + r as n, + g as x, + ay as Z, + a as j, +} from "../chunks/CMvZtFtm.js"; +import { s as f } from "../chunks/DVA6u9-7.js"; +import { r as A, i as B } from "../chunks/BF50aS-j.js"; +import { h as M } from "../chunks/DueIxFLX.js"; +import { h as O } from "../chunks/P77cUGnY.js"; +import { p as $ } from "../chunks/B6ZK_HZO.js"; +import { a as V, u as W } from "../chunks/BRM3t761.js"; +import { L as F } from "../chunks/D3yDgRbd.js"; +import { b as G } from "../chunks/C5yqZvKC.js"; +import { g as _ } from "../chunks/CV9xcpLq.js"; +import { g as H } from "../chunks/BSXXHLQ0.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "287ebbc0-bb62-455b-83c8-7046bd097bb3"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-287ebbc0-bb62-455b-83c8-7046bd097bb3")); + })(); +} catch {} +const J = () => "Payment succeeded", + K = () => "Pagamento bem sucedido", + T = (e = {}, t = {}) => ((t.locale ?? _()) === "en" ? J() : K()), + Q = (e) => `You purchased ${e.number_droplet} droplets.`, + U = (e) => `Você comprou ${e.number_droplet} droplets.`, + X = (e, t = {}) => ((t.locale ?? _()) === "en" ? Q(e) : U(e)), + ee = () => "Thank you for your support!", + te = () => "Obrigado pelo seu apoio!", + re = (e = {}, t = {}) => ((t.locale ?? _()) === "en" ? ee() : te()); +var oe = D( + '' +); +function se(e, t) { + let o = A(t, ["$$slots", "$$events", "$$legacy"]); + var l = oe(); + G(l, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...o, + })), + m(e, l); +} +var ae = C( + '' +); +function ge(e, t) { + S(t, !0); + let o = Y(null); + P(async () => { + R(o, $.url.searchParams.get("droplets"), !0); + const r = $.url.searchParams.get("session_id"); + r && (await V.refreshPaymentSession(r)) && (await W.refresh()); + }); + var l = ae(); + O((r) => { + w((s) => (N.title = `FurryPlace - ${s ?? ""}`), [() => T()]); + }); + var c = a(l), + q = a(c); + F(q, { size: "lg", hasText: !0 }), n(c); + var b = d(c, 2), + v = a(b), + h = a(v); + se(h, { class: "size-16 text-emerald-500" }); + var i = d(h, 2), + k = a(i); + n(i); + var p = d(i, 2), + g = a(p); + { + var I = (r) => { + var s = Z(), + u = j(s); + M(u, () => X({ number_droplet: Number(x(o)).toLocaleString() })), m(r, s); + }; + B(g, (r) => { + x(o) && r(I); + }); + } + var E = d(g); + n(p); + var y = d(p, 2), + L = a(y, !0); + n(y), + n(v), + n(b), + n(l), + w( + (r, s, u) => { + f(k, `${r ?? ""}!`), f(E, ` ${s ?? ""}`), f(L, u); + }, + [() => T(), () => re(), () => H()] + ), + m(e, l), + z(); +} +export { ge as component }; diff --git a/frontend-backup/_app/immutable/nodes/17.C45_aAtw.js b/frontend-backup/_app/immutable/nodes/17.C45_aAtw.js deleted file mode 100644 index 190b448..0000000 --- a/frontend-backup/_app/immutable/nodes/17.C45_aAtw.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{v as Ct,b as A,at as la,p as ia,y as ca,g as e,au as U,aw as u,ay as ht,ax as z,a as Te,c as da,bm as O,u as N,f as ce,d as o,r as a,s as n,n as xt,t as Re}from"../chunks/BDALf20I.js";import{s as k}from"../chunks/4k6DpCgf.js";import{r as Tt,i as Me}from"../chunks/Bke_korE.js";import{e as ua}from"../chunks/CZW2bcQi.js";import{b as Rt,c as wt,a as K,s as ie,e as yt,r as va}from"../chunks/BNZUboE0.js";import{b as _a}from"../chunks/DS58drb5.js";import{b as Pe}from"../chunks/BrZ10JY-.js";import{g as pa}from"../chunks/B4HM4TqG.js";import{S as kt,u as h,g as It,t as Ee,P as fa,c as ma}from"../chunks/DffDvEhl.js";import{r as ga,P as Le,D as ba,a as ha,I as xa,b as wa,e as ya,c as ka,d as Ia}from"../chunks/C2Ms0SfR.js";import{P as W}from"../chunks/DCxPsWiR.js";import{A as Da}from"../chunks/CVCd3urP.js";import{g as C}from"../chunks/DklPLC_x.js";import{c as $a}from"../chunks/CDZgL_Bh.js";import{c as Ua}from"../chunks/EXYzlOI1.js";import{a as za}from"../chunks/DdJK9GIy.js";import{h as Ca,r as Ta}from"../chunks/ClOhzjRc.js";(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};r.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var r=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new r.Error().stack;t&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[t]="dbc33fbf-2e89-4500-af3a-1c9728004562",r._sentryDebugIdIdentifier="sentry-dbid-dbc33fbf-2e89-4500-af3a-1c9728004562")})()}catch{}const Ra=r=>`unexpected url format: ${r.url}`,Ma=r=>`formato da url inesperado: ${r.url}`,Pa=(r,t={})=>(t.locale??C())==="en"?Ra(r):Ma(r),La=()=>"Canvas does not have 2d context",Ea=()=>"A tela não tem contexto 2D",Sa=(r={},t={})=>(t.locale??C())==="en"?La():Ea(),Aa=()=>"Failed to upload the image. Check the file uploaded.",Ha=()=>"Falha ao enviar a imagem. Verifique o arquivo enviado.",qa=(r={},t={})=>(t.locale??C())==="en"?Aa():Ha(),Ba=()=>"Disclaimer: inappropriate pictures may be removed without notice.",Ya=()=>"Aviso: Imagens inapropriadas podem ser removidas sem aviso prévio.",Fa=(r={},t={})=>(t.locale??C())==="en"?Ba():Ya(),Xa=()=>"Failed to send image to the server.",Za=()=>"Falha ao enviar imagem para o servidor.",Oa=(r={},t={})=>(t.locale??C())==="en"?Xa():Za(),Wa=()=>"You are not logged in",ja=()=>"Você não está logado",Na=(r={},t={})=>(t.locale??C())==="en"?Wa():ja(),Ka=()=>"Home",Va=()=>"Início",Ga=(r={},t={})=>(t.locale??C())==="en"?Ka():Va(),Ja=()=>"Preferably, use a 16x16 image",Qa=()=>"De preferência uma imagem 16x16",er=(r={},t={})=>(t.locale??C())==="en"?Ja():Qa(),tr=()=>"Upload",ar=()=>"Upload",rr=(r={},t={})=>(t.locale??C())==="en"?tr():ar(),sr=()=>"Draw profile picture",or=()=>"Imagem de perfil",nr=(r={},t={})=>(t.locale??C())==="en"?sr():or(),lr=()=>"Preview",ir=()=>"Prévia",Dt=(r={},t={})=>(t.locale??C())==="en"?lr():ir();var cr=Ct('');function $t(r,t){let c=Tt(t,["$$slots","$$events","$$legacy"]);var m=cr();Rt(m,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...c})),A(r,m)}var dr=Ct('');function Ut(r,t){let c=Tt(t,["$$slots","$$events","$$legacy"]);var m=dr();Rt(m,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...c})),A(r,m)}async function zt(r,t,c,m,L){var H;try{const q=(H=r.currentTarget.files)==null?void 0:H[0];if(q){const T=await t(q);c(T,e(m)),u(L,e(m).toDataURL("image/png"),!0),T.remove()}}catch(q){console.error(q),Ee.error(qa())}}var ur=(r,t)=>t(),vr=(r,t)=>{const c=r.offsetX,m=r.offsetY;t(c,m,c,m)},_r=(r,t)=>t(),pr=(r,t,c,m)=>{u(t,e(c),!0),u(m,!1)},fr=ce("
              "),mr=(r,t)=>{u(t,!1)},gr=(r,t)=>{e(t).show()},br=(r,t)=>{u(t,!e(t))},hr=(r,t)=>{var c;(c=e(t))==null||c.close()},xr=(r,t,c)=>{u(t,!0),e(c).toBlob(async m=>{try{if(!m){Ee.error(Oa());return}const L=new FormData;if(L.set("image",m),(await fetch(`${fa}/me/profile-picture`,{method:"POST",credentials:"include",body:L})).status!==200){Ee.error(ma());return}await h.refresh(),pa("/")}finally{u(t,!1)}u(t,!0)})},wr=ce(''),yr=ce('

              E
              ',1),kr=ce('');function Fr(r,t){ia(t,!0);const c=kt.products[120];let m=U(!1),L=U(!1),H=U(!1);const q=N(()=>e(m)||e(L)||e(H));let T=U("#000000"),de=U(!1),y=U(!1),w=U(""),D=[0,0],ue=U(!1);const Se=N(()=>{var s;return(((s=h.data)==null?void 0:s.droplets)??0)>=c.price}),Mt=N(()=>{if(e(y))return[0,0,0,0];const{r:s,g:d,b:l}=Ca(e(T));return[s,d,l,255]});let _=U(null),B=U(null),ee=U(null);const Pt=new Set([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,52]),Lt=[1,2,3,32,4,5,6,33,7,34,35,8,36,9,10,11,37,38,39,40,41,42,12,13,14,15,16,17,43,20,44,18,19,45,46,21,22,47,48,49,23,24,25,26,27,28,53,54,55,56,57,29,30,50,51,31,52,61,62,63,58,59,60].map(s=>({...kt.colors[s],idx:s}));ca(()=>{e(_)&&u(w,e(_).toDataURL("image/png"),!0)});function j(s,d,l,v){const p=Math.floor(s/e(_).clientWidth*e(_).width),f=Math.floor(d/e(_).clientHeight*e(_).height),g=Math.floor(l/e(_).clientWidth*e(_).width),b=Math.floor(v/e(_).clientHeight*e(_).height),R=ga([p,f],[g,b]);for(const[M,Y]of R){const F=e(_).getContext("2d"),E=F.createImageData(1,1),[te,_e,V,pe]=e(Mt);E.data[0]=te,E.data[1]=_e,E.data[2]=V,E.data[3]=pe,F.putImageData(E,M,Y)}u(w,e(_).toDataURL("image/png"),!0)}function ve(s,d){const l=e(B).width,v=e(B).height,p=Math.floor(s/e(B).clientWidth*l),f=Math.floor(d/e(B).clientHeight*v);if(!isFinite(p)||!isFinite(f))return;const g=e(B).getContext("2d"),b=g.createImageData(1,1);b.data[0]=128,b.data[1]=128,b.data[2]=128,b.data[3]=60,g.clearRect(0,0,l,v),g.putImageData(b,p,f)}async function Ae(s){return new Promise((d,l)=>{const v=new FileReader;v.onload=p=>{var b;const f=new Image;f.onload=()=>d(f),f.onerror=R=>l(R);const g=(b=p.target)==null?void 0:b.result;g&&typeof g=="string"?f.src=g:l(new Error(Pa({url:g??""})))},v.onerror=p=>l(p),v.readAsDataURL(s)})}function He(s,d){const l=d.getContext("2d");if(!l)throw new Error(Sa());const v=d.width,p=d.height;l.clearRect(0,0,v,p);const f=Math.min(v/s.width,p/s.height),g=s.width*f,b=s.height*f,R=(v-g)/2,M=(p-b)/2;l.drawImage(s,R,M,g,b)}function qe(s,d,l){const v=s.getBoundingClientRect(),p=d-v.left,f=l-v.top;return[p,f]}function Be(){const s=e(_).getContext("2d");s==null||s.clearRect(0,0,e(_).width,e(_).height),u(w,e(_).toDataURL("image/png"),!0)}var Ye=ht();z("mousedown",O,s=>{u(m,!0);const[d,l]=qe(e(_),s.clientX,s.clientY);j(d,l,d,l),D=[d,l]}),z("mouseup",O,()=>{u(m,!1)}),z("touchstart",O,s=>{u(H,!0);const d=s.touches.item(0),[l,v]=qe(e(_),d.clientX,d.clientY);j(l,v,l,v),D=[l,v]},void 0,!0),z("touchend",O,()=>{u(H,!1)}),z("keypress",O,s=>{s.code==="KeyE"&&u(y,!e(y))}),z("keydown",O,s=>{if(s.code==="Space"){u(L,!0);const d=D[0],l=D[1];j(d,l,d,l),s.preventDefault()}}),z("keyup",O,s=>{s.code==="Space"&&u(L,!1)});var Et=Te(Ye);{var St=s=>{var d=yr(),l=Te(d),v=o(l),p=o(v),f=o(p),g=o(f);Da(g,{class:"size-5"}),a(f);var b=n(f,2),R=o(b,!0);a(b);var M=n(b,2),Y=o(M),F=o(Y),E=o(F);Ut(E,{class:"size-5"});var te=n(E),_e=n(te);_e.__change=[zt,Ae,He,_,w],a(F),a(Y),a(M);var V=n(M,2);V.__click=[ur,Be];var pe=o(V);$t(pe,{class:"size-5"}),a(V),a(p);var fe=n(p,2),Fe=o(fe),me=o(Fe),Ht=o(me);a(me);var Xe=n(me,2);Le(Xe,{get userId(){return h.data.id},get level(){return h.data.level},get pictureUrl(){return e(w)}});var Ze=n(Xe,2);W(Ze,{class:"size-10 border",get userId(){return h.data.id},get pictureUrl(){return e(w)}});var qt=n(Ze,2);W(qt,{class:"size-5 border-0",get userId(){return h.data.id},get pictureUrl(){return e(w)}}),a(Fe),a(fe);var Bt=n(fe,2);ba(Bt,{get value(){return h.data.droplets}}),a(v);var Oe=n(v,2),ge=o(Oe),X=o(ge);let We;X.__touchmove=i=>{u(de,!0);const x=i.targetTouches.item(0),$=i.currentTarget.getBoundingClientRect(),I=x.clientX-$.left,P=x.clientY-$.top;e(q)&&j(D[0],D[1],I,P),ve(I,P),D=[I,P]},X.__mousemove=i=>{u(de,!1);const x=i.offsetX,$=i.offsetY;e(q)&&j(D[0],D[1],x,$),ve(x,$),D=[x,$]},X.__click=[vr,j],Pe(X,i=>u(_,i),()=>e(_));var je=n(X,2);let Ne;Pe(je,i=>u(B,i),()=>e(B)),xt(2),a(ge);var be=n(ge,2),he=o(be),xe=o(he),Yt=o(xe);a(xe);var Ke=n(xe,2);Le(Ke,{get userId(){return h.data.id},get level(){return h.data.level},get pictureUrl(){return e(w)}});var Ve=n(Ke,2);W(Ve,{class:"size-10 border",get userId(){return h.data.id},get pictureUrl(){return e(w)}});var Ft=n(Ve,2);W(Ft,{class:"size-5 border-0",get userId(){return h.data.id},get pictureUrl(){return e(w)}}),a(he);var Ge=n(he,2),ae=o(Ge);ae.__click=[_r,Be];var Xt=o(ae);$t(Xt,{class:"size-5"}),a(ae);var Je=n(ae,2),Qe=o(Je),et=o(Qe);Ut(et,{class:"size-5"});var Zt=n(et,2);Zt.__change=[zt,Ae,He,_,w],a(Qe),a(Je),a(Ge),a(be);var tt=n(be,2),we=o(tt);ua(we,23,()=>Lt,i=>i.idx,(i,x,$)=>{const I=N(()=>{const[Q,ze,Ce]=e(x).rgb;return{r:Q,g:ze,b:Ce}}),P=N(()=>Ta({r:e(I).r,g:e(I).g,b:e(I).b})),le=N(()=>e(T)===e(P)&&!e(y));var Z=fr(),S=o(Z);S.__click=[pr,T,P,y],a(Z),Re(Q=>{K(Z,1,Q),ie(Z,"data-tip",e(x).name),K(S,1,wt({"btn relative aspect-square w-full rounded-xl":!0,"border-primary ring-primary ring-2":e(le),"border-base-content/20":!e(le),"max-sm:h-6 max-sm:rounded-md":!0})),yt(S,`background: rgb(${e(I).r} ${e(I).g} ${e(I).b})`),ie(S,"aria-label",e(x).name),ie(S,"id",`color-${e(x).idx??""}`)},[()=>wt({tooltip:!0,"max-sm:hidden":!Pt.has(e(x).idx),"max-sm:before:-translate-x-1/4":e($)%8===0&&e(x).name.length>7,"max-sm:before:translate-x-1/4":(e($)-7)%8===0&&e(x).name.length>7})]),z("focus",S,()=>{u(T,e(P),!0),u(y,!1)}),A(i,Z)}),a(we);var at=n(we,2),G=o(at);G.__click=[mr,y];var rt=o(G),st=n(rt,2);va(st),a(G);var re=n(G,2);let ot;var se=o(re);se.__click=[gr,ee];var nt=o(se),lt=n(nt),it=o(lt);ha(it,{class:"size-4.5"});var Ot=n(it);a(lt),a(se),a(re);var ct=n(re,2),ye=o(ct),Wt=o(ye);xt(),a(ye);var J=n(ye,2);let dt;J.__click=[br,y];var jt=o(J);xa(jt,{class:"size-5",get filled(){return e(y)}}),a(J),a(ct),a(at),a(tt),a(Oe),a(l);var ut=n(l,2);wa(ut,{get open(){return It.dropletsDialogOpen},set open(i){It.dropletsDialogOpen=i}});var ke=n(ut,2),Ie=o(ke),De=n(o(Ie),2),Nt=o(De,!0);a(De);var $e=n(De,2),vt=o($e);W(vt,{class:"size-20",get userId(){return h.data.id},get pictureUrl(){return e(w)}});var _t=n(vt,2);Le(_t,{get userId(){return h.data.id},get level(){return h.data.level},get pictureUrl(){return e(w)}});var pt=n(_t,2);W(pt,{class:"size-10 border",get userId(){return h.data.id},get pictureUrl(){return e(w)}});var Kt=n(pt,2);W(Kt,{class:"size-5 border-0",get userId(){return h.data.id},get pictureUrl(){return e(w)}}),a($e);var Ue=n($e,2),Vt=o(Ue,!0);a(Ue);var ft=n(Ue,2),oe=o(ft);oe.__click=[hr,ee];var Gt=o(oe,!0);a(oe);var ne=n(oe,2);ne.__click=[xr,ue,_];var mt=o(ne),Jt=n(mt);{var Qt=i=>{var x=wr();A(i,x)};Me(Jt,i=>{e(ue)&&i(Qt)})}a(ne),a(ft),a(Ie);var gt=n(Ie,2),bt=o(gt),ea=o(bt,!0);a(bt),a(gt),a(ke),Pe(ke,i=>u(ee,i),()=>e(ee)),Re((i,x,$,I,P,le,Z,S,Q,ze,Ce,ta,aa,ra,sa,oa,na)=>{k(R,i),ie(Y,"data-tip",x),k(te,`${$??""} `),k(Ht,`${I??""}:`),We=K(X,1,"pixelated size-full",null,We,P),Ne=K(je,1,"pixelated pointer-events-none absolute left-0 top-0 size-full",null,Ne,le),k(Yt,`${Z??""}:`),yt(rt,`background: ${e(T)}`),ot=K(re,1,"",null,ot,S),se.disabled=!e(Se),k(nt,`${Q??""} `),k(Ot,` ${ze??""}`),k(Wt,`${Ce??""} `),dt=K(J,1,"btn btn-lg btn-square sm:btn-xl shadow-md",null,dt,ta),k(Nt,aa),k(Vt,ra),k(Gt,sa),ne.disabled=e(ue),k(mt,`${oa??""} `),k(ea,na)},[()=>nr(),()=>er(),()=>rr(),()=>Dt(),()=>({"cursor-pencil":!e(y),"cursor-eraser":e(y)}),()=>({hidden:e(de)}),()=>Dt(),()=>({tooltip:!e(Se)}),()=>za(),()=>c.price.toLocaleString("en-US"),()=>ya(),()=>({"btn-primary":e(y)}),()=>ka(),()=>Fa(),()=>$a(),()=>Ua(),()=>Ia()]),z("mouseleave",X,i=>{ve(i.offsetX,i.offsetY),D=[i.offsetX,i.offsetY]}),z("focus",G,()=>{u(y,!1)}),_a(st,()=>e(T),i=>u(T,i)),z("focus",J,()=>{u(y,!0)}),A(s,d)},At=s=>{var d=ht(),l=Te(d);{var v=p=>{var f=kr(),g=o(f),b=o(g,!0);a(g);var R=n(g,2),M=o(R,!0);a(R),a(f),Re((Y,F)=>{k(b,Y),k(M,F)},[()=>Na(),()=>Ga()]),A(p,f)};Me(l,p=>{!h.data&&!h.loading&&p(v)},!0)}A(s,d)};Me(Et,s=>{h.data?s(St):s(At,!1)})}A(r,Ye),da()}la(["change","click","touchmove","mousemove"]);export{Fr as component}; diff --git a/frontend-backup/_app/immutable/nodes/17.CONNNOye.js b/frontend-backup/_app/immutable/nodes/17.CONNNOye.js new file mode 100644 index 0000000..2d8ba2a --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/17.CONNNOye.js @@ -0,0 +1,831 @@ +import "../chunks/Ch2Ub8FX.js"; +import { + v as Ct, + b as A, + at as la, + p as ia, + y as ca, + g as e, + au as U, + aw as u, + ay as ht, + ax as z, + a as Te, + c as da, + bm as O, + u as N, + f as ce, + d as o, + r as a, + s as n, + n as xt, + t as Re, +} from "../chunks/CMvZtFtm.js"; +import { s as k } from "../chunks/DVA6u9-7.js"; +import { r as Tt, i as Me } from "../chunks/BF50aS-j.js"; +import { e as ua } from "../chunks/CXkjfmFU.js"; +import { + b as Rt, + c as wt, + a as K, + s as ie, + e as yt, + r as va, +} from "../chunks/C5yqZvKC.js"; +import { b as _a } from "../chunks/Dpga8uG-.js"; +import { b as Pe } from "../chunks/0wx1llIh.js"; +import { g as pa } from "../chunks/CyB--sFG.js"; +import { + S as kt, + u as h, + g as It, + t as Ee, + P as fa, + c as ma, +} from "../chunks/BRM3t761.js"; +import { + r as ga, + P as Le, + D as ba, + a as ha, + I as xa, + b as wa, + e as ya, + c as ka, +} from "../chunks/BA2Qx8r3.js"; +import { P as W } from "../chunks/D3yaN7Zl.js"; +import { A as Ia, c as Da } from "../chunks/Dt3xBOvm.js"; +import { g as C } from "../chunks/CV9xcpLq.js"; +import { c as $a } from "../chunks/CHGjpGz-.js"; +import { c as Ua } from "../chunks/C4yB2Gnm.js"; +import { a as za } from "../chunks/CZlv7MYe.js"; +import { h as Ca, r as Ta } from "../chunks/lE0oaQc5.js"; +(function () { + try { + var r = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + r.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var r = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new r.Error().stack; + t && + ((r._sentryDebugIds = r._sentryDebugIds || {}), + (r._sentryDebugIds[t] = "b645305a-a2bb-4f20-862e-8d4e8a88cafe"), + (r._sentryDebugIdIdentifier = + "sentry-dbid-b645305a-a2bb-4f20-862e-8d4e8a88cafe")); + })(); +} catch {} +const Ra = (r) => `unexpected url format: ${r.url}`, + Ma = (r) => `formato da url inesperado: ${r.url}`, + Pa = (r, t = {}) => ((t.locale ?? C()) === "en" ? Ra(r) : Ma(r)), + La = () => "Canvas does not have 2d context", + Ea = () => "A tela não tem contexto 2D", + Sa = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? La() : Ea()), + Aa = () => "Failed to upload the image. Check the file uploaded.", + Ha = () => "Falha ao enviar a imagem. Verifique o arquivo enviado.", + qa = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? Aa() : Ha()), + Ba = () => + "Disclaimer: inappropriate pictures may be removed without notice.", + Ya = () => + "Aviso: Imagens inapropriadas podem ser removidas sem aviso prévio.", + Fa = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? Ba() : Ya()), + Xa = () => "Failed to send image to the server.", + Za = () => "Falha ao enviar imagem para o servidor.", + Oa = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? Xa() : Za()), + Wa = () => "You are not logged in", + ja = () => "Você não está logado", + Na = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? Wa() : ja()), + Ka = () => "Home", + Va = () => "Início", + Ga = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? Ka() : Va()), + Ja = () => "Preferably, use a 16x16 image", + Qa = () => "De preferência uma imagem 16x16", + er = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? Ja() : Qa()), + tr = () => "Upload", + ar = () => "Upload", + rr = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? tr() : ar()), + sr = () => "Draw profile picture", + or = () => "Imagem de perfil", + nr = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? sr() : or()), + lr = () => "Preview", + ir = () => "Prévia", + Dt = (r = {}, t = {}) => ((t.locale ?? C()) === "en" ? lr() : ir()); +var cr = Ct( + '' +); +function $t(r, t) { + let c = Tt(t, ["$$slots", "$$events", "$$legacy"]); + var m = cr(); + Rt(m, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...c, + })), + A(r, m); +} +var dr = Ct( + '' +); +function Ut(r, t) { + let c = Tt(t, ["$$slots", "$$events", "$$legacy"]); + var m = dr(); + Rt(m, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...c, + })), + A(r, m); +} +async function zt(r, t, c, m, L) { + var H; + try { + const q = (H = r.currentTarget.files) == null ? void 0 : H[0]; + if (q) { + const T = await t(q); + c(T, e(m)), u(L, e(m).toDataURL("image/png"), !0), T.remove(); + } + } catch (q) { + console.error(q), Ee.error(qa()); + } +} +var ur = (r, t) => t(), + vr = (r, t) => { + const c = r.offsetX, + m = r.offsetY; + t(c, m, c, m); + }, + _r = (r, t) => t(), + pr = (r, t, c, m) => { + u(t, e(c), !0), u(m, !1); + }, + fr = ce("
              "), + mr = (r, t) => { + u(t, !1); + }, + gr = (r, t) => { + e(t).show(); + }, + br = (r, t) => { + u(t, !e(t)); + }, + hr = (r, t) => { + var c; + (c = e(t)) == null || c.close(); + }, + xr = (r, t, c) => { + u(t, !0), + e(c).toBlob(async (m) => { + try { + if (!m) { + Ee.error(Oa()); + return; + } + const L = new FormData(); + if ( + (L.set("image", m), + ( + await fetch(`${fa}/me/profile-picture`, { + method: "POST", + credentials: "include", + body: L, + }) + ).status !== 200) + ) { + Ee.error(ma()); + return; + } + await h.refresh(), pa("/"); + } finally { + u(t, !1); + } + u(t, !0); + }); + }, + wr = ce( + '' + ), + yr = ce( + '

              E
              ', + 1 + ), + kr = ce( + '' + ); +function Fr(r, t) { + ia(t, !0); + const c = kt.products[120]; + let m = U(!1), + L = U(!1), + H = U(!1); + const q = N(() => e(m) || e(L) || e(H)); + let T = U("#000000"), + de = U(!1), + y = U(!1), + w = U(""), + D = [0, 0], + ue = U(!1); + const Se = N(() => { + var s; + return (((s = h.data) == null ? void 0 : s.droplets) ?? 0) >= c.price; + }), + Mt = N(() => { + if (e(y)) return [0, 0, 0, 0]; + const { r: s, g: d, b: l } = Ca(e(T)); + return [s, d, l, 255]; + }); + let _ = U(null), + B = U(null), + ee = U(null); + const Pt = new Set([ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 52, + ]), + Lt = [ + 1, 2, 3, 32, 4, 5, 6, 33, 7, 34, 35, 8, 36, 9, 10, 11, 37, 38, 39, 40, 41, + 42, 12, 13, 14, 15, 16, 17, 43, 20, 44, 18, 19, 45, 46, 21, 22, 47, 48, + 49, 23, 24, 25, 26, 27, 28, 53, 54, 55, 56, 57, 29, 30, 50, 51, 31, 52, + 61, 62, 63, 58, 59, 60, + ].map((s) => ({ ...kt.colors[s], idx: s })); + ca(() => { + e(_) && u(w, e(_).toDataURL("image/png"), !0); + }); + function j(s, d, l, v) { + const p = Math.floor((s / e(_).clientWidth) * e(_).width), + f = Math.floor((d / e(_).clientHeight) * e(_).height), + g = Math.floor((l / e(_).clientWidth) * e(_).width), + b = Math.floor((v / e(_).clientHeight) * e(_).height), + R = ga([p, f], [g, b]); + for (const [M, Y] of R) { + const F = e(_).getContext("2d"), + E = F.createImageData(1, 1), + [te, _e, V, pe] = e(Mt); + (E.data[0] = te), + (E.data[1] = _e), + (E.data[2] = V), + (E.data[3] = pe), + F.putImageData(E, M, Y); + } + u(w, e(_).toDataURL("image/png"), !0); + } + function ve(s, d) { + const l = e(B).width, + v = e(B).height, + p = Math.floor((s / e(B).clientWidth) * l), + f = Math.floor((d / e(B).clientHeight) * v); + if (!isFinite(p) || !isFinite(f)) return; + const g = e(B).getContext("2d"), + b = g.createImageData(1, 1); + (b.data[0] = 128), + (b.data[1] = 128), + (b.data[2] = 128), + (b.data[3] = 60), + g.clearRect(0, 0, l, v), + g.putImageData(b, p, f); + } + async function Ae(s) { + return new Promise((d, l) => { + const v = new FileReader(); + (v.onload = (p) => { + var b; + const f = new Image(); + (f.onload = () => d(f)), (f.onerror = (R) => l(R)); + const g = (b = p.target) == null ? void 0 : b.result; + g && typeof g == "string" + ? (f.src = g) + : l(new Error(Pa({ url: g ?? "" }))); + }), + (v.onerror = (p) => l(p)), + v.readAsDataURL(s); + }); + } + function He(s, d) { + const l = d.getContext("2d"); + if (!l) throw new Error(Sa()); + const v = d.width, + p = d.height; + l.clearRect(0, 0, v, p); + const f = Math.min(v / s.width, p / s.height), + g = s.width * f, + b = s.height * f, + R = (v - g) / 2, + M = (p - b) / 2; + l.drawImage(s, R, M, g, b); + } + function qe(s, d, l) { + const v = s.getBoundingClientRect(), + p = d - v.left, + f = l - v.top; + return [p, f]; + } + function Be() { + const s = e(_).getContext("2d"); + s == null || s.clearRect(0, 0, e(_).width, e(_).height), + u(w, e(_).toDataURL("image/png"), !0); + } + var Ye = ht(); + z("mousedown", O, (s) => { + u(m, !0); + const [d, l] = qe(e(_), s.clientX, s.clientY); + j(d, l, d, l), (D = [d, l]); + }), + z("mouseup", O, () => { + u(m, !1); + }), + z( + "touchstart", + O, + (s) => { + u(H, !0); + const d = s.touches.item(0), + [l, v] = qe(e(_), d.clientX, d.clientY); + j(l, v, l, v), (D = [l, v]); + }, + void 0, + !0 + ), + z("touchend", O, () => { + u(H, !1); + }), + z("keypress", O, (s) => { + s.code === "KeyE" && u(y, !e(y)); + }), + z("keydown", O, (s) => { + if (s.code === "Space") { + u(L, !0); + const d = D[0], + l = D[1]; + j(d, l, d, l), s.preventDefault(); + } + }), + z("keyup", O, (s) => { + s.code === "Space" && u(L, !1); + }); + var Et = Te(Ye); + { + var St = (s) => { + var d = yr(), + l = Te(d), + v = o(l), + p = o(v), + f = o(p), + g = o(f); + Ia(g, { class: "size-5" }), a(f); + var b = n(f, 2), + R = o(b, !0); + a(b); + var M = n(b, 2), + Y = o(M), + F = o(Y), + E = o(F); + Ut(E, { class: "size-5" }); + var te = n(E), + _e = n(te); + (_e.__change = [zt, Ae, He, _, w]), a(F), a(Y), a(M); + var V = n(M, 2); + V.__click = [ur, Be]; + var pe = o(V); + $t(pe, { class: "size-5" }), a(V), a(p); + var fe = n(p, 2), + Fe = o(fe), + me = o(Fe), + Ht = o(me); + a(me); + var Xe = n(me, 2); + Le(Xe, { + get userId() { + return h.data.id; + }, + get level() { + return h.data.level; + }, + get pictureUrl() { + return e(w); + }, + }); + var Ze = n(Xe, 2); + W(Ze, { + class: "size-10 border", + get userId() { + return h.data.id; + }, + get pictureUrl() { + return e(w); + }, + }); + var qt = n(Ze, 2); + W(qt, { + class: "size-5 border-0", + get userId() { + return h.data.id; + }, + get pictureUrl() { + return e(w); + }, + }), + a(Fe), + a(fe); + var Bt = n(fe, 2); + ba(Bt, { + get value() { + return h.data.droplets; + }, + }), + a(v); + var Oe = n(v, 2), + ge = o(Oe), + X = o(ge); + let We; + (X.__touchmove = (i) => { + u(de, !0); + const x = i.targetTouches.item(0), + $ = i.currentTarget.getBoundingClientRect(), + I = x.clientX - $.left, + P = x.clientY - $.top; + e(q) && j(D[0], D[1], I, P), ve(I, P), (D = [I, P]); + }), + (X.__mousemove = (i) => { + u(de, !1); + const x = i.offsetX, + $ = i.offsetY; + e(q) && j(D[0], D[1], x, $), ve(x, $), (D = [x, $]); + }), + (X.__click = [vr, j]), + Pe( + X, + (i) => u(_, i), + () => e(_) + ); + var je = n(X, 2); + let Ne; + Pe( + je, + (i) => u(B, i), + () => e(B) + ), + xt(2), + a(ge); + var be = n(ge, 2), + he = o(be), + xe = o(he), + Yt = o(xe); + a(xe); + var Ke = n(xe, 2); + Le(Ke, { + get userId() { + return h.data.id; + }, + get level() { + return h.data.level; + }, + get pictureUrl() { + return e(w); + }, + }); + var Ve = n(Ke, 2); + W(Ve, { + class: "size-10 border", + get userId() { + return h.data.id; + }, + get pictureUrl() { + return e(w); + }, + }); + var Ft = n(Ve, 2); + W(Ft, { + class: "size-5 border-0", + get userId() { + return h.data.id; + }, + get pictureUrl() { + return e(w); + }, + }), + a(he); + var Ge = n(he, 2), + ae = o(Ge); + ae.__click = [_r, Be]; + var Xt = o(ae); + $t(Xt, { class: "size-5" }), a(ae); + var Je = n(ae, 2), + Qe = o(Je), + et = o(Qe); + Ut(et, { class: "size-5" }); + var Zt = n(et, 2); + (Zt.__change = [zt, Ae, He, _, w]), a(Qe), a(Je), a(Ge), a(be); + var tt = n(be, 2), + we = o(tt); + ua( + we, + 23, + () => Lt, + (i) => i.idx, + (i, x, $) => { + const I = N(() => { + const [Q, ze, Ce] = e(x).rgb; + return { r: Q, g: ze, b: Ce }; + }), + P = N(() => Ta({ r: e(I).r, g: e(I).g, b: e(I).b })), + le = N(() => e(T) === e(P) && !e(y)); + var Z = fr(), + S = o(Z); + (S.__click = [pr, T, P, y]), + a(Z), + Re( + (Q) => { + K(Z, 1, Q), + ie(Z, "data-tip", e(x).name), + K( + S, + 1, + wt({ + "btn relative aspect-square w-full rounded-xl": !0, + "border-primary ring-primary ring-2": e(le), + "border-base-content/20": !e(le), + "max-sm:h-6 max-sm:rounded-md": !0, + }) + ), + yt(S, `background: rgb(${e(I).r} ${e(I).g} ${e(I).b})`), + ie(S, "aria-label", e(x).name), + ie(S, "id", `color-${e(x).idx ?? ""}`); + }, + [ + () => + wt({ + tooltip: !0, + "max-sm:hidden": !Pt.has(e(x).idx), + "max-sm:before:-translate-x-1/4": + e($) % 8 === 0 && e(x).name.length > 7, + "max-sm:before:translate-x-1/4": + (e($) - 7) % 8 === 0 && e(x).name.length > 7, + }), + ] + ), + z("focus", S, () => { + u(T, e(P), !0), u(y, !1); + }), + A(i, Z); + } + ), + a(we); + var at = n(we, 2), + G = o(at); + G.__click = [mr, y]; + var rt = o(G), + st = n(rt, 2); + va(st), a(G); + var re = n(G, 2); + let ot; + var se = o(re); + se.__click = [gr, ee]; + var nt = o(se), + lt = n(nt), + it = o(lt); + ha(it, { class: "size-4.5" }); + var Ot = n(it); + a(lt), a(se), a(re); + var ct = n(re, 2), + ye = o(ct), + Wt = o(ye); + xt(), a(ye); + var J = n(ye, 2); + let dt; + J.__click = [br, y]; + var jt = o(J); + xa(jt, { + class: "size-5", + get filled() { + return e(y); + }, + }), + a(J), + a(ct), + a(at), + a(tt), + a(Oe), + a(l); + var ut = n(l, 2); + wa(ut, { + get open() { + return It.dropletsDialogOpen; + }, + set open(i) { + It.dropletsDialogOpen = i; + }, + }); + var ke = n(ut, 2), + Ie = o(ke), + De = n(o(Ie), 2), + Nt = o(De, !0); + a(De); + var $e = n(De, 2), + vt = o($e); + W(vt, { + class: "size-20", + get userId() { + return h.data.id; + }, + get pictureUrl() { + return e(w); + }, + }); + var _t = n(vt, 2); + Le(_t, { + get userId() { + return h.data.id; + }, + get level() { + return h.data.level; + }, + get pictureUrl() { + return e(w); + }, + }); + var pt = n(_t, 2); + W(pt, { + class: "size-10 border", + get userId() { + return h.data.id; + }, + get pictureUrl() { + return e(w); + }, + }); + var Kt = n(pt, 2); + W(Kt, { + class: "size-5 border-0", + get userId() { + return h.data.id; + }, + get pictureUrl() { + return e(w); + }, + }), + a($e); + var Ue = n($e, 2), + Vt = o(Ue, !0); + a(Ue); + var ft = n(Ue, 2), + oe = o(ft); + oe.__click = [hr, ee]; + var Gt = o(oe, !0); + a(oe); + var ne = n(oe, 2); + ne.__click = [xr, ue, _]; + var mt = o(ne), + Jt = n(mt); + { + var Qt = (i) => { + var x = wr(); + A(i, x); + }; + Me(Jt, (i) => { + e(ue) && i(Qt); + }); + } + a(ne), a(ft), a(Ie); + var gt = n(Ie, 2), + bt = o(gt), + ea = o(bt, !0); + a(bt), + a(gt), + a(ke), + Pe( + ke, + (i) => u(ee, i), + () => e(ee) + ), + Re( + (i, x, $, I, P, le, Z, S, Q, ze, Ce, ta, aa, ra, sa, oa, na) => { + k(R, i), + ie(Y, "data-tip", x), + k(te, `${$ ?? ""} `), + k(Ht, `${I ?? ""}:`), + (We = K(X, 1, "pixelated size-full", null, We, P)), + (Ne = K( + je, + 1, + "pixelated pointer-events-none absolute left-0 top-0 size-full", + null, + Ne, + le + )), + k(Yt, `${Z ?? ""}:`), + yt(rt, `background: ${e(T)}`), + (ot = K(re, 1, "", null, ot, S)), + (se.disabled = !e(Se)), + k(nt, `${Q ?? ""} `), + k(Ot, ` ${ze ?? ""}`), + k(Wt, `${Ce ?? ""} `), + (dt = K( + J, + 1, + "btn btn-lg btn-square sm:btn-xl shadow-md", + null, + dt, + ta + )), + k(Nt, aa), + k(Vt, ra), + k(Gt, sa), + (ne.disabled = e(ue)), + k(mt, `${oa ?? ""} `), + k(ea, na); + }, + [ + () => nr(), + () => er(), + () => rr(), + () => Dt(), + () => ({ "cursor-pencil": !e(y), "cursor-eraser": e(y) }), + () => ({ hidden: e(de) }), + () => Dt(), + () => ({ tooltip: !e(Se) }), + () => za(), + () => c.price.toLocaleString("en-US"), + () => ya(), + () => ({ "btn-primary": e(y) }), + () => ka(), + () => Fa(), + () => $a(), + () => Ua(), + () => Da(), + ] + ), + z("mouseleave", X, (i) => { + ve(i.offsetX, i.offsetY), (D = [i.offsetX, i.offsetY]); + }), + z("focus", G, () => { + u(y, !1); + }), + _a( + st, + () => e(T), + (i) => u(T, i) + ), + z("focus", J, () => { + u(y, !0); + }), + A(s, d); + }, + At = (s) => { + var d = ht(), + l = Te(d); + { + var v = (p) => { + var f = kr(), + g = o(f), + b = o(g, !0); + a(g); + var R = n(g, 2), + M = o(R, !0); + a(R), + a(f), + Re( + (Y, F) => { + k(b, Y), k(M, F); + }, + [() => Na(), () => Ga()] + ), + A(p, f); + }; + Me( + l, + (p) => { + !h.data && !h.loading && p(v); + }, + !0 + ); + } + A(s, d); + }; + Me(Et, (s) => { + h.data ? s(St) : s(At, !1); + }); + } + A(r, Ye), da(); +} +la(["change", "click", "touchmove", "mousemove"]); +export { Fr as component }; diff --git a/frontend-backup/_app/immutable/nodes/18.WvT7vRmm.js b/frontend-backup/_app/immutable/nodes/18.24JvCqRi.js similarity index 98% rename from frontend-backup/_app/immutable/nodes/18.WvT7vRmm.js rename to frontend-backup/_app/immutable/nodes/18.24JvCqRi.js index 3b49b30..5a79765 100644 --- a/frontend-backup/_app/immutable/nodes/18.WvT7vRmm.js +++ b/frontend-backup/_app/immutable/nodes/18.24JvCqRi.js @@ -1,4 +1,52 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{f as o,b as v,$ as c,d as t,r as a,n as i}from"../chunks/BDALf20I.js";import{h as d}from"../chunks/BUhRjcOt.js";import{L as p}from"../chunks/CYItkO2S.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};s.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new s.Error().stack;e&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[e]="80007cd4-11f3-4974-9d84-af15371fd311",s._sentryDebugIdIdentifier="sentry-dbid-80007cd4-11f3-4974-9d84-af15371fd311")})()}catch{}var r=o(`

              PRIVACY POLICY

              Last updated June 10, 2025



              This Privacy Notice for Wplace ("we," "us," or "our"), describes how and why we might access, collect, store, use, and/or share ("process") your +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { + f as o, + b as v, + $ as c, + d as t, + r as a, + n as i, +} from "../chunks/CMvZtFtm.js"; +import { h as d } from "../chunks/P77cUGnY.js"; +import { L as p } from "../chunks/D3yDgRbd.js"; +(function () { + try { + var s = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + s.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var s = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new s.Error().stack; + e && + ((s._sentryDebugIds = s._sentryDebugIds || {}), + (s._sentryDebugIds[e] = "80007cd4-11f3-4974-9d84-af15371fd311"), + (s._sentryDebugIdIdentifier = + "sentry-dbid-80007cd4-11f3-4974-9d84-af15371fd311")); + })(); +} catch {} +var r = + o(`

              PRIVACY POLICY

              Last updated June 10, 2025



              This Privacy Notice for Wplace ("we," "us," or "our"), describes how and why we might access, collect, store, use, and/or share ("process") your personal information when you use our services ("Services"), including when you:
              • Visit our website at wplace.live, or any website of ours that links to this Privacy Notice
              • Use Wplace. Wplace overlays a massive, interactive canvas on the map of the Earth, letting users collaborate in real time by placing pixels and building art as a community.
              • Engage with us in other related ways, including any sales, marketing, or events
              Questions or concerns? Reading this Privacy Notice will help @@ -1034,4 +1082,14 @@ import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{f as o,b as v your personal information, - please visit: wplace.live.
              `);function g(s){var e=r();d(b=>{c.title="Wplace - Privacy Policy"});var l=t(e),n=t(l);p(n,{class:"mb-4",hasText:!0}),a(l),i(2),a(e),v(s,e)}export{g as component}; + please visit: wplace.live.`); +function g(s) { + var e = r(); + d((b) => { + c.title = "FurryPlace - Privacy Policy"; + }); + var l = t(e), + n = t(l); + p(n, { class: "mb-4", hasText: !0 }), a(l), i(2), a(e), v(s, e); +} +export { g as component }; diff --git a/frontend-backup/_app/immutable/nodes/19.B2QYN1F_.js b/frontend-backup/_app/immutable/nodes/19.B2QYN1F_.js new file mode 100644 index 0000000..6c06c1b --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/19.B2QYN1F_.js @@ -0,0 +1,64 @@ +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { + f as l, + b as o, + $ as n, + d as s, + r as t, + n as d, +} from "../chunks/CMvZtFtm.js"; +import { h as u } from "../chunks/P77cUGnY.js"; +import { L as c } from "../chunks/D3yDgRbd.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + a = new e.Error().stack; + a && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[a] = "d0716220-f70f-4592-a87e-840e1b3a49be"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-d0716220-f70f-4592-a87e-840e1b3a49be")); + })(); +} catch {} +var h = + l(`

              Refund Policy

              Last update: September 17, 2025

              How to request a refund?

              • Contact official support via email at refund@wplace.live
              • Provide your user ID, registered email, proof of payment, and reason for the request.

              You may request a refund when:

              • You are charged twice for the same service.
              • You are unable to use the service due to technical issues with Wplace lasting more than 24 + hours.
              • You have not used the services within 7 calendar days after purchase.

              Refunds will not be granted when:

              • More than 7 days have passed since the purchase.
              • Cancellation occurs after the services have been used.
              • There is a violation of the terms of use, especially in cases of account ban.
              • There are issues related to card usage, such as:
                • Loss, theft, or robbery of the card;
                • Unauthorized use by third parties;
                • Disputes over purchases made by unauthorized users, when it is not possible to prove a + system failure.
              • In these cases, the cardholder must contact the financial institution directly to take + appropriate actions, such as blocking the card, disputing charges, and requesting a reversal, + according to the bank or card operator's rules.
              • Refunds will only be considered in situations where a technical failure of the platform's + system is proven.

              Deadlines:

              • Wplace will respond within 10 business days.
              • The refund will be processed using the same payment method and will occur within 7 to 30 days.
              `); +function w(e) { + var a = h(); + u((f) => { + n.title = "FurryPlace - Refund Policy"; + }); + var i = s(a), + r = s(i); + c(r, { size: "lg", class: "mb-4", hasText: !0 }), t(i), d(20), t(a), o(e, a); +} +export { w as component }; diff --git a/frontend-backup/_app/immutable/nodes/19.Dqy7C9y2.js b/frontend-backup/_app/immutable/nodes/19.Dqy7C9y2.js deleted file mode 100644 index 2e7603e..0000000 --- a/frontend-backup/_app/immutable/nodes/19.Dqy7C9y2.js +++ /dev/null @@ -1,6 +0,0 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{f as l,b as o,$ as n,d as s,r as t,n as d}from"../chunks/BDALf20I.js";import{h as u}from"../chunks/BUhRjcOt.js";import{L as c}from"../chunks/CYItkO2S.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="d0716220-f70f-4592-a87e-840e1b3a49be",e._sentryDebugIdIdentifier="sentry-dbid-d0716220-f70f-4592-a87e-840e1b3a49be")})()}catch{}var h=l(`

              Refund Policy

              Last update: September 17, 2025

              How to request a refund?

              • Contact official support via email at refund@wplace.live
              • Provide your user ID, registered email, proof of payment, and reason for the request.

              You may request a refund when:

              • You are charged twice for the same service.
              • You are unable to use the service due to technical issues with Wplace lasting more than 24 - hours.
              • You have not used the services within 7 calendar days after purchase.

              Refunds will not be granted when:

              • More than 7 days have passed since the purchase.
              • Cancellation occurs after the services have been used.
              • There is a violation of the terms of use, especially in cases of account ban.
              • There are issues related to card usage, such as:
                • Loss, theft, or robbery of the card;
                • Unauthorized use by third parties;
                • Disputes over purchases made by unauthorized users, when it is not possible to prove a - system failure.
              • In these cases, the cardholder must contact the financial institution directly to take - appropriate actions, such as blocking the card, disputing charges, and requesting a reversal, - according to the bank or card operator's rules.
              • Refunds will only be considered in situations where a technical failure of the platform's - system is proven.

              Deadlines:

              • Wplace will respond within 10 business days.
              • The refund will be processed using the same payment method and will occur within 7 to 30 days.
              `);function w(e){var a=h();u(f=>{n.title="Wplace - Refund Policy"});var i=s(a),r=s(i);c(r,{size:"lg",class:"mb-4",hasText:!0}),t(i),d(20),t(a),o(e,a)}export{w as component}; diff --git a/frontend-backup/_app/immutable/nodes/2.-6emjql3.js b/frontend-backup/_app/immutable/nodes/2.-6emjql3.js new file mode 100644 index 0000000..cb0a38b --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/2.-6emjql3.js @@ -0,0 +1,142 @@ +import "../chunks/Ch2Ub8FX.js"; +import { + p as L, + f as b, + b as f, + c as R, + $ as S, + d as t, + n as y, + r as s, + s as x, + t as W, + g as i, + u as $, +} from "../chunks/CMvZtFtm.js"; +import { s as j } from "../chunks/DVA6u9-7.js"; +import { s as z } from "../chunks/DoL3ojdE.js"; +import { k as M, t as g } from "../chunks/BBgyHb-Z.js"; +import { e as N, i as P } from "../chunks/CXkjfmFU.js"; +import { h as U } from "../chunks/P77cUGnY.js"; +import { c as Y, s as q, a as B } from "../chunks/C5yqZvKC.js"; +import { p as _ } from "../chunks/B6ZK_HZO.js"; +import { L as C } from "../chunks/D3yDgRbd.js"; +import { f as w } from "../chunks/wZ7b5CwQ.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "b13ebcf7-0e8c-49ec-bc33-0015c8d1ee6b"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-b13ebcf7-0e8c-49ec-bc33-0015c8d1ee6b")); + })(); +} catch {} +var F = b(' '), + G = b("
              "), + H = b( + '' + ); +function re(e, d) { + L(d, !0); + const m = $(() => _.url.pathname), + k = [ + { label: "Dashboard", href: "/admin/dashboard", key: "dashboard" }, + { label: "Mods", href: "/admin/mods/leaderboard", key: "mods" }, + { label: "Users", href: "/admin/users", key: "users" }, + { label: "Alliances", href: "/admin/alliances", key: "alliances" }, + ]; + function A(r) { + return i(m) === r || i(m).startsWith(r + "/"); + } + var n = H(); + U((r) => { + S.title = "FurryPlace - Admin"; + }); + var l = t(n), + c = t(l), + p = t(c), + D = t(p); + C(D, { class: "h-7 w-auto" }), y(2), s(p), y(2), s(c); + var u = x(c, 2), + v = t(u); + N( + v, + 21, + () => k, + P, + (r, a) => { + var o = F(), + I = t(o, !0); + s(o), + W( + (T) => { + q(o, "href", i(a).href), B(o, 1, T), j(I, i(a).label); + }, + [ + () => + Y({ tab: !0, "font-semibold": !0, "tab-active": A(i(a).href) }), + ] + ), + f(r, o); + } + ), + s(v), + s(u), + s(l); + var h = x(l, 2), + E = t(h); + M( + E, + () => _.url.pathname, + (r) => { + var a = G(), + o = t(a); + z(o, () => d.children), + s(a), + g( + 1, + a, + () => w, + () => ({ duration: 120 }) + ), + g( + 2, + a, + () => w, + () => ({ duration: 80 }) + ), + f(r, a); + } + ), + s(h), + s(n), + f(e, n), + R(); +} +export { re as component }; diff --git a/frontend-backup/_app/immutable/nodes/2.BY7SdjrD.js b/frontend-backup/_app/immutable/nodes/2.BY7SdjrD.js deleted file mode 100644 index 6f0d457..0000000 --- a/frontend-backup/_app/immutable/nodes/2.BY7SdjrD.js +++ /dev/null @@ -1,47015 +0,0 @@ -var ky = Object.defineProperty; -var ng = b => { - throw TypeError(b) -}; -var Ey = (b, l, _) => l in b ? ky(b, l, { - enumerable: !0, - configurable: !0, - writable: !0, - value: _ -}) : b[l] = _; -var lr = (b, l, _) => Ey(b, typeof l != "symbol" ? l + "" : l, _), - lf = (b, l, _) => l.has(b) || ng("Cannot " + _); -var et = (b, l, _) => (lf(b, l, "read from private field"), _ ? _.call(b) : l.get(b)), - br = (b, l, _) => l.has(b) ? ng("Cannot add the same private member more than once") : l instanceof WeakSet ? l.add(b) : l.set(b, _), - Jn = (b, l, _, C) => (lf(b, l, "write to private field"), C ? C.call(b, _) : l.set(b, _), _), - Fr = (b, l, _) => (lf(b, l, "access private method"), _); -import "../chunks/Bzak7iHL.js"; -import { - o as Ii, - s as Ji -} from "../chunks/ByKBPM-D.js"; -import { - Y as zy, - aZ as Ly, - bp as Dy, - a$ as Ry, - bq as By, - be as Fy, - aR as nt, - A as x, - aH as oe, - aG as zn, - p as Sr, - aT as lt, - w as Zr, - f as Ie, - d as k, - s as V, - br as Oy, - r as A, - t as Ge, - b as H, - c as Pr, - an as Wi, - o as fi, - bj as an, - q as Tr, - bo as Su, - v as Hf, - x as Go, - aS as Jt, - a as zt, - aU as Fn, - ay as Ny, - ax as ag, - az as jy, - aB as Mg, - bs as ts, - ap as fa, - bt as Ag, - ak as qy -} from "../chunks/DUoKDNpf.js"; -import { - s as fe -} from "../chunks/g8c1BvYP.js"; -import { - p as Et, - i as Ue, - r as Qt, - s as lo, - u as kg -} from "../chunks/5NasrULQ.js"; -import { - h as Vy -} from "../chunks/2CRhGZHc.js"; -import { - a as er, - C as Uy, - r as ea, - e as On, - s as Or, - f as Jl, - b as zr, - d as uc, - g as Tu, - c as Vo -} from "../chunks/B1GmkH4o.js"; -import { - d as Zy, - a as Zo, - f as $o, - L as Wf, - p as Xf, - k as Pu, - t as En, - C as $y, - T as Eg, - G as Gy -} from "../chunks/Y9es74tr.js"; -import { - p as La -} from "../chunks/Cp3o644A.js"; -import { - S as $n, - a as ni, - t as qr, - u as Dt, - i as ds, - j as Hy, - k as Wy, - l as Xy, - m as Ky, - n as Yy, - o as Jy, - p as Qy, - q as ex, - r as tx, - v as rx, - c as Cd, - g as oa, - C as sg, - w as og, - x as ix, - y as nx, - z as ax -} from "../chunks/1lh-LSvX.js"; -import { - c as zg, - A as pa, - a as yf, - g as cf, - p as sx, - b as ox -} from "../chunks/D2m5UD3G.js"; -import { - g as Lg, - b as lx -} from "../chunks/KvV259my.js"; -import { - h as cx -} from "../chunks/BMKgGW48.js"; -import { - b as ps -} from "../chunks/CMs8vKjq.js"; -import { - g as jd, - d as qd, - h as Vd, - A as Dg, - f as tc, - D as Rg, - a as Ud, - r as ux, - i as hx, - I as lg, - e as dx, - c as px, - j as fx, - P as Bg, - b as mx -} from "../chunks/CBqzI9hL.js"; -import { - g as Fe, - l as _x -} from "../chunks/C5GsJ62f.js"; -import { - e as nn, - i as Zd -} from "../chunks/U908S-6f.js"; -import { - P as es, - g as Zn, - A as gx, - t as Fg, - b as Kf, - c as vx, - d as yx -} from "../chunks/DsJqb9ei.js"; -import "../chunks/D35KiPL1.js"; -import { - i as Og -} from "../chunks/D1ivTjwA.js"; -import { - L as Ng -} from "../chunks/07L1R_bo.js"; -import { - c as _n -} from "../chunks/BtP6pfnb.js"; -import { - L as xx, - T as jg, - a as bx -} from "../chunks/CQklNc9N.js"; -import { - _ as wx -} from "../chunks/Dp1pzeXC.js"; -import { - R as Tx, - r as Cx -} from "../chunks/DkBFL3pa.js"; -import { - W as Sx -} from "../chunks/CeLr1p76.js"; -const Px = []; - -function Ix(b, l = !1, _ = !1) { - return Sd(b, new Map, "", Px, null, _) -} - -function Sd(b, l, _, C, L = null, F = !1) { - if (typeof b == "object" && b !== null) { - var T = l.get(b); - if (T !== void 0) return T; - if (b instanceof Map) return new Map(b); - if (b instanceof Set) return new Set(b); - if (zy(b)) { - var o = Array(b.length); - l.set(b, o), L !== null && l.set(L, o); - for (var $ = 0; $ < b.length; $ += 1) { - var W = b[$]; - $ in b && (o[$] = Sd(W, l, _, C, null, F)) - } - return o - } - if (Ly(b) === Dy) { - o = {}, l.set(b, o), L !== null && l.set(L, o); - for (var ie in b) o[ie] = Sd(b[ie], l, _, C, null, F); - return o - } - if (b instanceof Date) return structuredClone(b); - if (typeof b.toJSON == "function" && !F) return Sd(b.toJSON(), l, _, C, b) - } - if (b instanceof EventTarget) return b; - try { - return structuredClone(b) - } catch { - return b - } -} - -function Mx() { - return Symbol(Ry) -} - -function $d(b, l) { - By(window, ["resize"], () => Fy(() => l(window[b]))) -} -const Ax = () => "Log in", - kx = () => "登入", - Ex = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ax() : kx(), - zx = () => "Store", - Lx = () => "商店", - qg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zx() : Lx(), - Dx = () => "Alliance", - Rx = () => "工会", - Gd = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Dx() : Rx(), - Bx = () => "Leaderboard", - Fx = () => "排行榜", - Yf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Bx() : Fx(), - Ox = () => "Unlock", - Nx = () => "解锁", - jx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ox() : Nx(), - qx = () => "Lock", - Vx = () => "锁定", - Ux = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qx() : Vx(), - Zx = () => "Info", - $x = () => "信息", - Gx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Zx() : $x(), - Hx = () => "Zoom in", - Wx = () => "放大", - Xx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Hx() : Wx(), - Kx = () => "Zoom out", - Yx = () => "缩小", - Jx = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Kx() : Yx(), - Qx = () => "Previous location", - e1 = () => "上一个位置", - t1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Qx() : e1(), - r1 = () => "Offline", - i1 = () => "连接丢失", - n1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? r1() : i1(), - a1 = () => "Zoom in to see the pixels", - s1 = () => "放大以查看像素", - o1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? a1() : s1(), - l1 = () => "Phone verification required", - c1 = () => "需要手机号验证", - cg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? l1() : c1(), - u1 = () => "My location", - h1 = () => "我的位置", - d1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? u1() : h1(), - p1 = () => "You don't have charges to paint. Wait to recharge.", - f1 = () => "你没有足够的像素点,请等待恢复.", - m1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? p1() : f1(), - _1 = () => "Map powered by:", - g1 = () => "地图提供方:", - v1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _1() : g1(), - y1 = () => "OpenMapTiles Data from", - x1 = () => "OpenMapTiles 出品方:", - b1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? y1() : x1(), - w1 = () => "Feedback and bugs", - T1 = () => "BUG反馈", - C1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? w1() : T1(), - S1 = () => "Overview", - P1 = () => "总览", - I1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? S1() : P1(), - M1 = () => "How to paint faster", - A1 = () => "如何画得更快?", - k1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? M1() : A1(), - E1 = () => "When painting, click on the button", - z1 = () => "在绘制时候按住按钮", - L1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E1() : z1(), - D1 = () => "on the top right corner of the screen. This will lock the screen but it'll also enable painting by moving your finger over the map.", - R1 = () => "屏幕右上角。这将锁定屏幕,但也可以通过在地图上移动手指来绘画.", - B1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? D1() : R1(), - F1 = () => "Hold", - O1 = () => "按住", - N1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? F1() : O1(), - j1 = () => "SPACE", - q1 = () => "空格", - V1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j1() : q1(), - U1 = () => "and move your cursor over the map.", - Z1 = () => "并且移动鼠标.", - $1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? U1() : Z1(), - G1 = () => "Explore", - H1 = () => "探索", - W1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? G1() : H1(), - X1 = () => "Recharge paint charges", - K1 = () => "立刻恢复像素点", - Y1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? X1() : K1(), - J1 = () => "Items", - Q1 = () => "物品", - eb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? J1() : Q1(), - tb = () => "Get more charges", - rb = () => "获得更多像素点", - ib = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tb() : rb(), - nb = b => `+${b.amount} Max. Charges`, - ab = b => `+${b.amount} 最大像素容量`, - sb = (b, l = {}) => (l.locale ?? Fe()) === "en" ? nb(b) : ab(b), - ob = () => "Increase your maximum paint charges capacity", - lb = () => "提高最大像素点容量", - cb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ob() : lb(), - ub = () => "Profile picture", - hb = () => "头像", - db = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ub() : hb(), - pb = () => "Add a new 16x16 profile picture", - fb = () => "添加一个新的16x16头像", - mb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? pb() : fb(), - _b = () => "Not enough droplets", - gb = () => "没有足够的水滴", - Hd = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _b() : gb(), - vb = () => "Show profile", - yb = () => "显示个人资料", - xb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? vb() : yb(), - bb = () => "Menu", - wb = () => "菜单", - Tb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? bb() : wb(), - Cb = b => `Could not install the app: ${b.error}`, - Sb = b => `无法安装App: ${b.error}`, - Pb = (b, l = {}) => (l.locale ?? Fe()) === "en" ? Cb(b) : Sb(b), - Ib = () => "Install App", - Mb = () => "安装App", - Ab = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ib() : Mb(), - kb = () => "Livestreams", - Eb = () => "直播", - zb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? kb() : Eb(), - Lb = () => "Log Out", - Db = () => "退出登录", - Rb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Lb() : Db(), - Bb = () => "Hide UI", - Fb = () => "隐藏UI", - Ob = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Bb() : Fb(), - Nb = () => "Change picture:", - jb = () => "更换头像:", - qb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Nb() : jb(), - Vb = () => "Show last painted pixel on alliance", - Ub = () => "在工会排行榜中展示你最后一次绘画位置", - Zb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Vb() : Ub(), - $b = () => "Delete Account", - Gb = () => "注销账号", - ug = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? $b() : Gb(), - Hb = () => "Save", - Wb = () => "保存", - Xb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Hb() : Wb(), - Kb = () => "Are you absolutely sure?", - Yb = () => "你真的确定吗?", - Jb = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Kb() : Yb(), - Qb = () => "This will permanently delete your account and all associated data. This action cannot be undone.", - e2 = () => "这会永久删除你的账号和所有数据,并且无法撤销。", - t2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Qb() : e2(), - r2 = () => "Profile", - i2 = () => "资料", - n2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? r2() : i2(), - a2 = () => "Display your country’s flag next to your username. Plus, when painting in regions where you own the corresponding flag, you recover 10% of the charges spent.", - s2 = () => "在你的用户名旁边显示一个旗帜。而且,当你在拥有对应旗帜的区域绘制时,可以返还所消耗像素点的10%。", - o2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? a2() : s2(), - l2 = () => "Does not need to be equipped to provide the bonus", - c2 = () => "即使未装备,也能提供加成。", - u2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? l2() : c2(), - h2 = () => "Equipped", - d2 = () => "已装备", - p2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? h2() : d2(), - f2 = () => "Equip", - m2 = () => "装备", - _2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? f2() : m2(), - g2 = () => "Country", - v2 = () => "国家或地区", - Vg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? g2() : v2(), - y2 = () => "No country found.", - x2 = () => "没有找到地区.", - b2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? y2() : x2(), - w2 = () => "Welcome to", - T2 = () => "欢迎来到", - C2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? w2() : T2(), - S2 = () => "Rules", - P2 = () => "规则", - I2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? S2() : P2(), - M2 = () => "Important", - A2 = () => "重要", - k2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? M2() : A2(), - E2 = () => "🚫 No inappropriate content (+18, hate speech, inappropriate links, highly suggestive material, ...)", - z2 = () => "🚫 Conteúdo inapropriado não permitido (+18, discurso de ódio, links inapropriados, conteúdo altamente sugestivo, ...)", - L2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E2() : z2(), - D2 = () => "😈 Do not paint over other artworks using random colors or patterns just to mess things up", - R2 = () => "😈 Não desenhe por cima de outras artes usando cores ou padrões aleatórios só para bagunçar", - B2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? D2() : R2(), - F2 = () => "✅ Paint with more than one account", - O2 = () => "✅ Não desenhe com mais de uma conta", - N2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? F2() : O2(), - j2 = () => "✅ Use of bots or scripts is allowed", - q2 = () => "✅ Usar bots não é permitido", - V2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j2() : q2(), - U2 = () => "🙅 Disclosing other's personal information is not allowed", - Z2 = () => "🙅 Divulgar informações pessoais dos outros não é permitido", - $2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? U2() : Z2(), - G2 = () => "✅ Painting over other artworks to complement them or create a new drawing is allowed", - H2 = () => "✅ Desenhar sobre outras artes para complementar ou criar novas artes é permitido", - W2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? G2() : H2(), - X2 = () => "✅ Griefing political party flags or portraits of politicians is allowed", - K2 = () => "✅ Desenhar sobre bandeiras de partidos e retratos de políticos é permitido", - Y2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? X2() : K2(), - J2 = () => "Violations of these rules may result in suspension of your account.", - Q2 = () => "违反会导致你被封禁。", - ew = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? J2() : Q2(), - tw = () => "Understood", - rw = () => "我同意", - iw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tw() : rw(), - nw = () => "Toggle art opacity", - aw = () => "开关像素透明度", - Ug = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? nw() : aw(), - sw = () => "Paint", - ow = () => "绘画", - Zg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? sw() : ow(), - lw = () => "Select a color", - cw = () => "选择一个娅安瑟", - uw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? lw() : cw(), - hw = () => "Select a pixel to erase", - dw = () => "选择一个像素来擦除", - pw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? hw() : dw(), - fw = () => "Pick a color from the map", - mw = () => "从地图上选择一个颜色", - _w = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? fw() : mw(), - gw = () => "Click", - vw = () => "点击", - yw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? gw() : vw(), - xw = () => "SPACE", - bw = () => "空格", - ww = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? xw() : bw(), - Tw = () => "or hold", - Cw = () => "或按住", - Sw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Tw() : Cw(), - Pw = () => "to paint,", - Iw = () => "来绘画", - Mw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Pw() : Iw(), - Aw = () => "You can paint more than 1 pixel", - kw = () => "你可以绘制多个像素", - Ew = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Aw() : kw(), - zw = () => "Paint pixel", - Lw = () => "已经绘制像素", - Dw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zw() : Lw(), - Rw = () => "Color Picker", - Bw = () => "取色器", - Fw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Rw() : Bw(), - Ow = () => "+2 max. charge/level", - Nw = () => "+2 最大像素点/每次升级", - jw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ow() : Nw(), - qw = () => "Name", - Vw = () => "名字", - xf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qw() : Vw(), - Uw = () => "Discord Username", - Zw = () => "社交媒体", - $w = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Uw() : Zw(), - Gw = () => "Max. Charges", - Hw = () => "像素点上限", - hg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Gw() : Hw(), - Ww = () => "Paint Charges", - Xw = () => "像素点包", - Kw = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Ww() : Xw(), - Yw = b => `+${b.amount} Paint Charges`, - Jw = b => `+${b.amount} 像素点`, - Qw = (b, l = {}) => (l.locale ?? Fe()) === "en" ? Yw(b) : Jw(b), - e5 = () => "Leave alliance", - t5 = () => "离开工会", - r5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? e5() : t5(), - i5 = () => "Members", - n5 = () => "成员", - $g = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? i5() : n5(), - a5 = () => "Headquarters", - s5 = () => "总部", - o5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? a5() : s5(), - l5 = () => "Not set", - c5 = () => "未设置", - u5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? l5() : c5(), - h5 = () => "You are not in an alliance", - d5 = () => "你没有加入一个工会", - p5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? h5() : d5(), - f5 = () => "Get invited to an alliance", - m5 = () => "得到一个邀请", - _5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? f5() : m5(), - g5 = () => "OR", - v5 = () => "或", - y5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? g5() : v5(), - x5 = () => "Create an alliance", - b5 = () => "创建工会", - w5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? x5() : b5(), - T5 = () => "Invite link", - C5 = () => "邀请", - S5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? T5() : C5(), - P5 = () => "Send the link below to everybody you want to invite to the alliance", - I5 = () => "发送这个链接给你要邀请加入的人", - M5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? P5() : I5(), - A5 = () => "Copied", - k5 = () => "已复制", - Gg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? A5() : k5(), - E5 = () => "Copy", - z5 = () => "复制", - bf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E5() : z5(), - L5 = () => "No description", - D5 = () => "没有描述", - Hg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? L5() : D5(), - R5 = () => "Invite", - B5 = () => "邀请", - F5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? R5() : B5(), - O5 = () => "No pixels painted", - N5 = () => "没有绘制像素", - Jf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? O5() : N5(), - j5 = () => "Today", - q5 = () => "今天", - Wd = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j5() : q5(), - V5 = () => "Week", - U5 = () => "本周", - Z5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? V5() : U5(), - $5 = () => "Month", - G5 = () => "本月", - H5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? $5() : G5(), - W5 = () => "All time", - X5 = () => "总计", - K5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? W5() : X5(), - Y5 = () => "this week", - J5 = () => "本周", - Qf = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Y5() : J5(), - Q5 = () => "this month", - eT = () => "本月", - em = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Q5() : eT(), - tT = () => "Player", - rT = () => "玩家", - tm = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tT() : rT(), - iT = () => "Last pixel", - nT = () => "最后一次绘制", - aT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? iT() : nT(), - sT = () => "Create alliance", - oT = () => "创建工会", - lT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? sT() : oT(), - cT = () => "Alliance Name", - uT = () => "公会名称", - hT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? cT() : uT(), - dT = () => "Create", - pT = () => "创建", - fT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? dT() : pT(), - mT = () => "Give admin", - _T = () => "设为管理员", - gT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? mT() : _T(), - vT = () => "Ban from alliance", - yT = () => "踢出工会", - Wg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? vT() : yT(), - xT = () => "No action", - bT = () => "没有操作", - wT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? xT() : bT(), - TT = () => "Unban", - CT = () => "解除黑名单", - ST = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? TT() : CT(), - PT = () => "No banned users", - IT = () => "没有被踢出的用户", - MT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? PT() : IT(), - AT = () => "Update", - kT = () => "更新", - ET = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? AT() : kT(), - zT = () => "Error giving admin to user", - LT = () => "设置管理员失败", - DT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zT() : LT(), - RT = () => "Users", - BT = () => "玩家", - FT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? RT() : BT(), - OT = () => "Banned", - NT = () => "已封禁", - jT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? OT() : NT(), - qT = () => "Regions", - VT = () => "区域", - UT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qT() : VT(), - ZT = () => "Countries", - $T = () => "国家或地区", - GT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ZT() : $T(), - HT = () => "Players", - WT = () => "玩家", - Xg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? HT() : WT(), - XT = () => "Alliances", - KT = () => "工会", - Kg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? XT() : KT(), - YT = () => "Region", - JT = () => "区域", - QT = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? YT() : JT(), - e3 = () => "Pixels", - t3 = () => "像素", - Ql = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? e3() : t3(), - r3 = () => "Painted", - i3 = () => "已绘制", - ec = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? r3() : i3(), - n3 = () => "Pixels painted inside the region", - a3 = () => "这个区域已绘制的像素", - s3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? n3() : a3(), - o3 = () => "Visit", - l3 = () => "查看", - c3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? o3() : l3(), - u3 = () => "Not painted", - h3 = () => "没有绘制", - d3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? u3() : h3(), - p3 = () => "Painted by", - f3 = () => "绘制者:", - m3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? p3() : f3(), - _3 = () => "Limit reached", - g3 = () => "已到达上限", - v3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _3() : g3(), - y3 = () => "Favorite", - x3 = () => "收藏", - b3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? y3() : x3(), - w3 = () => "Share", - T3 = () => "分享", - C3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? w3() : T3(), - S3 = () => "Share place", - P3 = () => "分享位置", - I3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? S3() : P3(), - M3 = () => "Mute", - A3 = () => "静音", - k3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? M3() : A3(), - E3 = () => "Unmute", - z3 = () => "开启音效", - L3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? E3() : z3(), - D3 = () => "Select the headquarters location", - R3 = () => "选择总部位置", - B3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? D3() : R3(), - F3 = () => "Pixels painted inside the country", - O3 = () => "这个国家/地区已绘制的像素", - N3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? F3() : O3(), - j3 = () => "Username copied to clipboard", - q3 = () => "成功复制用户名", - V3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? j3() : q3(), - U3 = () => "No more charges", - Z3 = () => "没有更多像素点", - $3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? U3() : Z3(), - G3 = () => "You are not allowed to use multiple accounts. Use your main account to paint.", - H3 = () => "请勿使用多个账户绘制。", - W3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? G3() : H3(), - X3 = () => "SMS sent to", - K3 = () => "短信已发送到", - Y3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? X3() : K3(), - J3 = () => "Phone successfully verified", - Q3 = () => "手机验证成功", - eC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? J3() : Q3(), - tC = () => "Not a valid phone number", - rC = () => "手机号无效", - iC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tC() : rC(), - nC = () => "Location unfavorited", - aC = () => "已取消收藏", - sC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? nC() : aC(), - oC = () => "Location favorited", - lC = () => "已收藏地区", - cC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? oC() : lC(), - uC = () => "Giving admin to user", - hC = () => "设为管理员", - dC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? uC() : hC(), - pC = () => "Profile updated", - fC = () => "资料已更新", - mC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? pC() : fC(), - _C = () => "Account successfully deleted", - gC = () => "账号注销成功", - vC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _C() : gC(), - yC = () => "Logged out", - xC = () => "已退出登录", - bC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? yC() : xC(), - wC = () => "Could not logout. Try refreshing the page.", - TC = () => "退出失败,请尝试刷新页面。", - CC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? wC() : TC(), - SC = () => "You need to zoom in to select a pixel", - PC = () => "你需要放大才能选择像素", - IC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? SC() : PC(), - MC = () => "Phone verification", - AC = () => "手机号验证", - kC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? MC() : AC(), - EC = () => "Please verify your phone number to continue playing. This helps us keep bots out and ensure a safe, creative experience for everyone.", - zC = () => "如需继续游玩,请您验证手机号码。该操作有助于我们防范机器人账户,为全体用户创造安全的游戏体验.", - LC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? EC() : zC(), - DC = () => "Send Code", - RC = () => "发送验证码", - BC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? DC() : RC(), - FC = () => "Input the code", - OC = () => "请输入验证码", - NC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? FC() : OC(), - jC = () => "Sent to", - qC = () => "已发送到", - VC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? jC() : qC(), - UC = () => "Resend Code", - ZC = () => "重新发送验证码", - $C = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? UC() : ZC(), - GC = () => "Try another number", - HC = () => "请尝试其他手机号", - WC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? GC() : HC(), - XC = () => "Edit profile", - KC = () => "编辑资料", - YC = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? XC() : KC(), - JC = () => "Image", - QC = () => "图像", - eS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? JC() : QC(), - tS = () => "Download", - rS = () => "下载", - iS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? tS() : rS(), - nS = () => "Image copied to clipboard", - aS = () => "图像已复制", - sS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? nS() : aS(), - oS = () => "My map is lagging", - lS = () => "地图卡顿", - cS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? oS() : lS(), - uS = () => "Verify if", - hS = () => "确保", - dS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? uS() : hS(), - pS = () => "Use hardware acceleration when available", - fS = () => "使用图形加速", - mS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? pS() : fS(), - _S = () => "is enabled on", - gS = () => "已启用", - vS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? _S() : gS(), - yS = () => "Follow the instructions to enable hardware acceleration", - xS = () => "按照说明启用硬件加速", - bS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? yS() : xS(), - wS = () => "Report User", - TS = () => "举报", - Yg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? wS() : TS(), - CS = () => "Ban User", - SS = () => "封禁用户", - Jg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? CS() : SS(), - PS = () => "Select the reason", - IS = () => "选择原因", - MS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? PS() : IS(), - AS = () => "Other", - kS = () => "其他", - ES = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? AS() : kS(), - zS = () => "Other reason not listed", - LS = () => "其他未列出的原因", - DS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? zS() : LS(), - RS = () => "Extra context on what happened (required)", - BS = () => "举报详情(必填)", - FS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? RS() : BS(), - OS = () => "Report", - NS = () => "提交举报", - jS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? OS() : NS(), - qS = () => "Report sent successfully", - VS = () => "举报成功", - US = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? qS() : VS(), - ZS = () => "Select the report reason", - $S = () => "选择举报原因", - GS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? ZS() : $S(), - HS = () => "Report failed. Please try again later", - WS = () => "举报失败,请稍后重试", - XS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? HS() : WS(), - KS = () => "Moderation", - YS = () => "管理", - JS = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? KS() : YS(), - QS = () => "Terms", - eP = () => "用户协议", - tP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? QS() : eP(), - rP = () => "Privacy", - iP = () => "隐私政策", - nP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? rP() : iP(), - aP = () => "Clear area", - sP = () => "清除区域", - oP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? aP() : sP(), - lP = () => "Select the area's first corner", - cP = () => "请选择第一个角", - uP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? lP() : cP(), - hP = () => "Select the area's opposite corner", - dP = () => "请选择第二个角", - pP = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? hP() : dP(), - fP = () => "Required", - mP = () => "必须", - _P = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? fP() : mP(), - gP = b => `Min. characters: ${b.min}`, - vP = b => `最少${b.min}个字2`, - yP = (b, l = {}) => (l.locale ?? Fe()) === "en" ? gP(b) : vP(b), - xP = b => `Max. characters: ${b.max}`, - bP = b => `最多${b.max}个字`, - wP = (b, l = {}) => (l.locale ?? Fe()) === "en" ? xP(b) : bP(b), - TP = () => "封禁用户", - CP = () => "timeout_user", - Qg = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? CP() : TP(), - language_en = (t = {}, e = {}) => (e.locale ?? o()) === "en", - - Text1_EN = () => "You don't have charges to paint.", - Text1_CN = () => "你没有足够的像素点.", - Text1 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text1_EN() : Text1_CN(), - Text2_EN = () => "Next charge in", - Text2_CN = () => "距离下一次恢复还有:", - Text2 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text2_EN() : Text2_CN(), - Text3_EN = () => "Droplets", - Text3_CN = () => "水滴", - Text3 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text3_EN() : Text3_CN(), - Text5_EN = () => "Unlock", - Text5_CN = () => "解锁颜色", - Text5 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text5_EN() : Text5_CN(), - Text6_EN = () => "Permanently unlock the color", - Text6_CN = () => "永久解锁这个颜色", - Text6 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text6_EN() : Text6_CN(), - Text7_EN = () => "Close", - Text7_CN = () => "关闭", - Text7 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text7_EN() : Text7_CN(), - Text8_EN = () => "Flags", - Text8_CN = () => "旗帜", - Text8 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text8_EN() : Text8_CN(), - Text9_EN = () => "Level", - Text9_CN = () => "等级", - Text9 = (b = {}, l = {}) => (l.locale ?? Fe()) === "en" ? Text9_EN() : Text9_CN(), - - Es = 2 * Math.PI * 6378137 / 2; - -class hc { - constructor(l = 256) { - lr(this, "initialResolution"); - this.tileSize = l, this.initialResolution = 2 * Es / this.tileSize - } - latLonToMeters(l, _) { - const C = _ / 180 * Es, - L = Math.log(Math.tan((90 + l) * Math.PI / 360)) / (Math.PI / 180) * Es / 180; - return [C, L] - } - metersToLatLon(l, _) { - const C = l / Es * 180; - let L = _ / Es * 180; - return L = 180 / Math.PI * (2 * Math.atan(Math.exp(L * Math.PI / 180)) - Math.PI / 2), [L, C] - } - pixelsToMeters(l, _, C) { - const L = this.resolution(C), - F = l * L - Es, - T = Es - _ * L; - return [F, T] - } - pixelsToLatLon(l, _, C) { - const [L, F] = this.pixelsToMeters(l, _, C); - return this.metersToLatLon(L, F) - } - latLonToPixels(l, _, C) { - const [L, F] = this.latLonToMeters(l, _); - return this.metersToPixels(L, F, C) - } - latLonToPixelsFloor(l, _, C) { - const [L, F] = this.latLonToPixels(l, _, C); - return [Math.floor(L), Math.floor(F)] - } - metersToPixels(l, _, C) { - const L = this.resolution(C), - F = (l + Es) / L, - T = (Es - _) / L; - return [F, T] - } - latLonToTile(l, _, C) { - const [L, F] = this.latLonToMeters(l, _); - return this.metersToTile(L, F, C) - } - metersToTile(l, _, C) { - const [L, F] = this.metersToPixels(l, _, C); - return this.pixelsToTile(L, F) - } - pixelsToTile(l, _) { - const C = Math.ceil(l / this.tileSize) - 1, - L = Math.ceil(_ / this.tileSize) - 1; - return [C, L] - } - pixelsToTileLocal(l, _) { - return { - tile: this.pixelsToTile(l, _), - pixel: [Math.floor(l) % this.tileSize, Math.floor(_) % this.tileSize] - } - } - tileBounds(l, _, C) { - const [L, F] = this.pixelsToMeters(l * this.tileSize, _ * this.tileSize, C), [T, o] = this.pixelsToMeters((l + 1) * this.tileSize, (_ + 1) * this.tileSize, C); - return { - min: [L, F], - max: [T, o] - } - } - tileBoundsLatLon(l, _, C) { - const L = this.tileBounds(l, _, C); - return { - min: this.metersToLatLon(L.min[0], L.min[1]), - max: this.metersToLatLon(L.max[0], L.max[1]) - } - } - resolution(l) { - return this.initialResolution / 2 ** l - } - latLonToTileAndPixel(l, _, C) { - const [L, F] = this.latLonToMeters(l, _), [T, o] = this.metersToTile(L, F, C), [$, W] = this.metersToPixels(L, F, C); - return { - tile: [T, o], - pixel: [Math.floor($) % this.tileSize, Math.floor(W) % this.tileSize] - } - } - pixelBounds(l, _, C) { - return { - min: this.pixelsToMeters(l, _, C), - max: this.pixelsToMeters(l + 1, _ + 1, C) - } - } - pixelToBoundsLatLon(l, _, C) { - const L = this.pixelBounds(l, _, C), - F = .001885, - T = (L.max[0] - L.min[0]) * F, - o = (L.max[1] - L.min[1]) * F; - return L.min[0] -= T, L.max[0] -= T, L.min[1] -= o, L.max[1] -= o, { - min: this.metersToLatLon(L.min[0], L.min[1]), - max: this.metersToLatLon(L.max[0], L.max[1]) - } - } - latLonToTileBoundsLatLon(l, _, C) { - const [L, F] = this.latLonToMeters(l, _), [T, o] = this.metersToTile(L, F, C); - return this.tileBoundsLatLon(T, o, C) - } - latLonToPixelBoundsLatLon(l, _, C) { - const [L, F] = this.latLonToMeters(l, _), [T, o] = this.metersToPixels(L, F, C); - return this.pixelToBoundsLatLon(Math.floor(T), Math.floor(o), C) - } - latLonToRegionAndPixel(l, _, C, L = $n.regionSize) { - const [F, T] = this.latLonToPixelsFloor(l, _, C), o = this.tileSize * L; - return { - region: [Math.floor(F / o), Math.floor(T / o)], - pixel: [F % o, T % o] - } - } -} - -function rm(b, l = !0) { - const { - min: _, - max: C - } = b; - return l ? [ - [_[1], C[0]], - [C[1], C[0]], - [C[1], _[0]], - [_[1], _[0]] - ] : [ - [_[0], C[1]], - [C[0], C[1]], - [C[0], _[1]], - [_[0], _[1]] - ] -} - -function im(b) { - return [(b.min[0] + b.max[0]) / 2, (b.min[1] + b.max[1]) / 2] -} -const SP = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAAXNSR0IArs4c6QAAACpJREFUeNpj+AsEZ86ASIa/DAwMZ84ACRDzDBigMs/AARITq1oUwxBWAADaREUdDMswKwAAAABJRU5ErkJggg==", - dg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAACVJREFUeNpj+A8FDEAAZwMRBAIBmIYLIgHcgkQDIs3E6SRsjgcABYFLtfTgakEAAAAASUVORK5CYII="; - -function PP(b) { - return Math.floor(Math.random() * b) -} -const wf = 14.5; -async function IP() { - const b = kP(); - if (b) return b; - try { - if ((await navigator.permissions.query({ - name: "geolocation" - })).state === "granted") { - const _ = await new Promise((C, L) => navigator.geolocation.getCurrentPosition(F => C(F), F => L(F))); - return { - lat: _.coords.latitude, - lng: _.coords.longitude, - zoom: wf - } - } - } catch (l) { - console.error(l) - } - return { - ...MP().pos, - zoom: wf - } -} - -function MP() { - const b = Object.entries(AP), - l = PP(b.length), - [_, C] = b[l]; - return { - city: _, - pos: C - } -} -const AP = { - tokyo: { - lat: 35.677545560719665, - lng: 139.76394445809638 - }, - paris: { - lat: 48.8537151734952, - lng: 2.3484026030630787 - }, - newYork: { - lat: 40.71283173786517, - lng: -74.00599771376795 - }, - saoPaulo: { - lat: -23.550584064565356, - lng: -46.63339720713918 - }, - sydney: { - lat: -33.86943325619071, - lng: 151.2083447239608 - } - }, - ev = "location"; - -function Qa(b, l) { - localStorage.setItem(ev, JSON.stringify({ - ...b, - zoom: l - })) -} - -function kP() { - const b = localStorage.getItem(ev); - if (!b) return; - const l = JSON.parse(b); - return l.zoom ?? (l.zoom = wf), l -} -var ku, Eu; -class EP { - constructor() { - br(this, ku, nt(-1)); - br(this, Eu, nt([])) - } - get idx() { - return x(et(this, ku)) - } - set idx(l) { - oe(et(this, ku), l, !0) - } - get entries() { - return x(et(this, Eu)) - } - set entries(l) { - oe(et(this, Eu), l) - } - hasNext() { - return this.idx < this.entries.length - 1 - } - goToNext(l) { - const _ = this.idx + 1, - C = this.entries[_]; - C && (this.idx = _, l.flyTo({ - center: C.pos, - zoom: C.zoom - })) - } - hasPrev() { - return this.idx > 0 - } - goToPrev(l) { - const _ = this.idx - 1, - C = this.entries[_]; - C && (this.idx = _, l.flyTo({ - center: C.pos, - zoom: C.zoom - })) - } - isEmpty() { - return this.entries.length === 0 - } - push(l) { - this.idx = this.idx + 1, this.entries = [...this.entries.slice(0, this.idx), l] - } -} -ku = new WeakMap, Eu = new WeakMap; -const Ho = new EP; - -function nm(b) { - return b && b.__esModule && Object.prototype.hasOwnProperty.call(b, "default") ? b.default : b -} -var Pd = { - exports: {} -}; -/** - * MapLibre GL JS - * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.6.2/LICENSE.txt - */ -var zP = Pd.exports, - pg; - -function LP() { - return pg || (pg = 1, (function(b, l) { - (function(_, C) { - b.exports = C() - })(zP, (function() { - var _ = {}, - C = {}; - - function L(T, o, $) { - if (C[T] = $, T === "index") { - var W = "var sharedModule = {}; (" + C.shared + ")(sharedModule); (" + C.worker + ")(sharedModule);", - ie = {}; - return C.shared(ie), C.index(_, ie), typeof window < "u" && _.setWorkerUrl(window.URL.createObjectURL(new Blob([W], { - type: "text/javascript" - }))), _ - } - } - L("shared", ["exports"], (function(T) { - function o(i, t, r, a) { - return new(r || (r = Promise))((function(c, p) { - function f(S) { - try { - v(a.next(S)) - } catch (I) { - p(I) - } - } - - function g(S) { - try { - v(a.throw(S)) - } catch (I) { - p(I) - } - } - - function v(S) { - var I; - S.done ? c(S.value) : (I = S.value, I instanceof r ? I : new r((function(E) { - E(I) - }))).then(f, g) - } - v((a = a.apply(i, t || [])).next()) - })) - } - - function $(i, t) { - this.x = i, this.y = t - } - - function W(i) { - return i && i.__esModule && Object.prototype.hasOwnProperty.call(i, "default") ? i.default : i - } - var ie, pe; - typeof SuppressedError == "function" && SuppressedError, $.prototype = { - clone() { - return new $(this.x, this.y) - }, - add(i) { - return this.clone()._add(i) - }, - sub(i) { - return this.clone()._sub(i) - }, - multByPoint(i) { - return this.clone()._multByPoint(i) - }, - divByPoint(i) { - return this.clone()._divByPoint(i) - }, - mult(i) { - return this.clone()._mult(i) - }, - div(i) { - return this.clone()._div(i) - }, - rotate(i) { - return this.clone()._rotate(i) - }, - rotateAround(i, t) { - return this.clone()._rotateAround(i, t) - }, - matMult(i) { - return this.clone()._matMult(i) - }, - unit() { - return this.clone()._unit() - }, - perp() { - return this.clone()._perp() - }, - round() { - return this.clone()._round() - }, - mag() { - return Math.sqrt(this.x * this.x + this.y * this.y) - }, - equals(i) { - return this.x === i.x && this.y === i.y - }, - dist(i) { - return Math.sqrt(this.distSqr(i)) - }, - distSqr(i) { - const t = i.x - this.x, - r = i.y - this.y; - return t * t + r * r - }, - angle() { - return Math.atan2(this.y, this.x) - }, - angleTo(i) { - return Math.atan2(this.y - i.y, this.x - i.x) - }, - angleWith(i) { - return this.angleWithSep(i.x, i.y) - }, - angleWithSep(i, t) { - return Math.atan2(this.x * t - this.y * i, this.x * i + this.y * t) - }, - _matMult(i) { - const t = i[2] * this.x + i[3] * this.y; - return this.x = i[0] * this.x + i[1] * this.y, this.y = t, this - }, - _add(i) { - return this.x += i.x, this.y += i.y, this - }, - _sub(i) { - return this.x -= i.x, this.y -= i.y, this - }, - _mult(i) { - return this.x *= i, this.y *= i, this - }, - _div(i) { - return this.x /= i, this.y /= i, this - }, - _multByPoint(i) { - return this.x *= i.x, this.y *= i.y, this - }, - _divByPoint(i) { - return this.x /= i.x, this.y /= i.y, this - }, - _unit() { - return this._div(this.mag()), this - }, - _perp() { - const i = this.y; - return this.y = this.x, this.x = -i, this - }, - _rotate(i) { - const t = Math.cos(i), - r = Math.sin(i), - a = r * this.x + t * this.y; - return this.x = t * this.x - r * this.y, this.y = a, this - }, - _rotateAround(i, t) { - const r = Math.cos(i), - a = Math.sin(i), - c = t.y + a * (this.x - t.x) + r * (this.y - t.y); - return this.x = t.x + r * (this.x - t.x) - a * (this.y - t.y), this.y = c, this - }, - _round() { - return this.x = Math.round(this.x), this.y = Math.round(this.y), this - }, - constructor: $ - }, $.convert = function(i) { - if (i instanceof $) return i; - if (Array.isArray(i)) return new $(+i[0], +i[1]); - if (i.x !== void 0 && i.y !== void 0) return new $(+i.x, +i.y); - throw new Error("Expected [x, y] or {x, y} point format") - }; - var ye = (function() { - if (pe) return ie; - - function i(t, r, a, c) { - this.cx = 3 * t, this.bx = 3 * (a - t) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * r, this.by = 3 * (c - r) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t, this.p1y = r, this.p2x = a, this.p2y = c - } - return pe = 1, ie = i, i.prototype = { - sampleCurveX: function(t) { - return ((this.ax * t + this.bx) * t + this.cx) * t - }, - sampleCurveY: function(t) { - return ((this.ay * t + this.by) * t + this.cy) * t - }, - sampleCurveDerivativeX: function(t) { - return (3 * this.ax * t + 2 * this.bx) * t + this.cx - }, - solveCurveX: function(t, r) { - if (r === void 0 && (r = 1e-6), t < 0) return 0; - if (t > 1) return 1; - for (var a = t, c = 0; c < 8; c++) { - var p = this.sampleCurveX(a) - t; - if (Math.abs(p) < r) return a; - var f = this.sampleCurveDerivativeX(a); - if (Math.abs(f) < 1e-6) break; - a -= p / f - } - var g = 0, - v = 1; - for (a = t, c = 0; c < 20 && (p = this.sampleCurveX(a), !(Math.abs(p - t) < r)); c++) t > p ? g = a : v = a, a = .5 * (v - g) + g; - return a - }, - solve: function(t, r) { - return this.sampleCurveY(this.solveCurveX(t, r)) - } - }, ie - })(), - X = W(ye); - let Se, we; - - function Re() { - return Se == null && (Se = typeof OffscreenCanvas < "u" && new OffscreenCanvas(1, 1).getContext("2d") && typeof createImageBitmap == "function"), Se - } - - function Ae() { - if (we == null && (we = !1, Re())) { - const t = new OffscreenCanvas(5, 5).getContext("2d", { - willReadFrequently: !0 - }); - if (t) { - for (let a = 0; a < 25; a++) { - const c = 4 * a; - t.fillStyle = `rgb(${c},${c+1},${c+2})`, t.fillRect(a % 5, Math.floor(a / 5), 1, 1) - } - const r = t.getImageData(0, 0, 5, 5).data; - for (let a = 0; a < 100; a++) - if (a % 4 != 3 && r[a] !== a) { - we = !0; - break - } - } - } - return we || !1 - } - var Oe = 1e-6, - Ee = typeof Float32Array < "u" ? Float32Array : Array; - - function Ne() { - var i = new Ee(9); - return Ee != Float32Array && (i[1] = 0, i[2] = 0, i[3] = 0, i[5] = 0, i[6] = 0, i[7] = 0), i[0] = 1, i[4] = 1, i[8] = 1, i - } - - function ft(i) { - return i[0] = 1, i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = 1, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[10] = 1, i[11] = 0, i[12] = 0, i[13] = 0, i[14] = 0, i[15] = 1, i - } - - function ht() { - var i = new Ee(3); - return Ee != Float32Array && (i[0] = 0, i[1] = 0, i[2] = 0), i - } - - function Xe(i) { - return Math.hypot(i[0], i[1], i[2]) - } - - function ct(i, t, r) { - var a = new Ee(3); - return a[0] = i, a[1] = t, a[2] = r, a - } - - function Je(i, t, r) { - return i[0] = t[0] + r[0], i[1] = t[1] + r[1], i[2] = t[2] + r[2], i - } - - function Be(i, t, r) { - return i[0] = t[0] * r, i[1] = t[1] * r, i[2] = t[2] * r, i - } - - function st(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = r[0], - g = r[1], - v = r[2]; - return i[0] = c * v - p * g, i[1] = p * f - a * v, i[2] = a * g - c * f, i - } - Math.hypot || (Math.hypot = function() { - for (var i = 0, t = arguments.length; t--;) i += arguments[t] * arguments[t]; - return Math.sqrt(i) - }); - var it, Qe = Xe; - - function ke(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = t[3]; - return i[0] = r[0] * a + r[4] * c + r[8] * p + r[12] * f, i[1] = r[1] * a + r[5] * c + r[9] * p + r[13] * f, i[2] = r[2] * a + r[6] * c + r[10] * p + r[14] * f, i[3] = r[3] * a + r[7] * c + r[11] * p + r[15] * f, i - } - - function vt() { - var i = new Ee(4); - return Ee != Float32Array && (i[0] = 0, i[1] = 0, i[2] = 0), i[3] = 1, i - } - - function Q(i, t, r, a) { - var c = .5 * Math.PI / 180; - t *= c, r *= c, a *= c; - var p = Math.sin(t), - f = Math.cos(t), - g = Math.sin(r), - v = Math.cos(r), - S = Math.sin(a), - I = Math.cos(a); - return i[0] = p * v * I - f * g * S, i[1] = f * g * I + p * v * S, i[2] = f * v * S - p * g * I, i[3] = f * v * I + p * g * S, i - } - - function te() { - var i = new Ee(2); - return Ee != Float32Array && (i[0] = 0, i[1] = 0), i - } - - function _e(i, t) { - var r = new Ee(2); - return r[0] = i, r[1] = t, r - } - ht(), it = new Ee(4), Ee != Float32Array && (it[0] = 0, it[1] = 0, it[2] = 0, it[3] = 0), ht(), ct(1, 0, 0), ct(0, 1, 0), vt(), vt(), Ne(), te(); - const ne = 8192; - - function Pe(i, t, r) { - return t * (ne / (i.tileSize * Math.pow(2, r - i.tileID.overscaledZ))) - } - - function Me(i, t) { - return (i % t + t) % t - } - - function at(i, t, r) { - return i * (1 - r) + t * r - } - - function We(i) { - if (i <= 0) return 0; - if (i >= 1) return 1; - const t = i * i, - r = t * i; - return 4 * (i < .5 ? r : 3 * (i - t) + r - .75) - } - - function Ct(i, t, r, a) { - const c = new X(i, t, r, a); - return p => c.solve(p) - } - const _t = Ct(.25, .1, .25, 1); - - function xt(i, t, r) { - return Math.min(r, Math.max(t, i)) - } - - function tt(i, t, r) { - const a = r - t, - c = ((i - t) % a + a) % a + t; - return c === t ? r : c - } - - function pt(i, ...t) { - for (const r of t) - for (const a in r) i[a] = r[a]; - return i - } - let It = 1; - - function ut(i, t, r) { - const a = {}; - for (const c in i) a[c] = t.call(this, i[c], c, i); - return a - } - - function bt(i, t, r) { - const a = {}; - for (const c in i) t.call(this, i[c], c, i) && (a[c] = i[c]); - return a - } - - function wt(i) { - return Array.isArray(i) ? i.map(wt) : typeof i == "object" && i ? ut(i, wt) : i - } - const dt = {}; - - function Lt(i) { - dt[i] || (typeof console < "u" && console.warn(i), dt[i] = !0) - } - - function Xt(i, t, r) { - return (r.y - i.y) * (t.x - i.x) > (t.y - i.y) * (r.x - i.x) - } - - function Yt(i) { - return typeof WorkerGlobalScope < "u" && i !== void 0 && i instanceof WorkerGlobalScope - } - let nr = null; - - function ar(i) { - return typeof ImageBitmap < "u" && i instanceof ImageBitmap - } - const Ft = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="; - - function dr(i, t, r, a, c) { - return o(this, void 0, void 0, (function*() { - if (typeof VideoFrame > "u") throw new Error("VideoFrame not supported"); - const p = new VideoFrame(i, { - timestamp: 0 - }); - try { - const f = p == null ? void 0 : p.format; - if (!f || !f.startsWith("BGR") && !f.startsWith("RGB")) throw new Error(`Unrecognized format ${f}`); - const g = f.startsWith("BGR"), - v = new Uint8ClampedArray(a * c * 4); - if (yield p.copyTo(v, (function(S, I, E, R, N) { - const j = 4 * Math.max(-I, 0), - Z = (Math.max(0, E) - E) * R * 4 + j, - Y = 4 * R, - ae = Math.max(0, I), - ze = Math.max(0, E); - return { - rect: { - x: ae, - y: ze, - width: Math.min(S.width, I + R) - ae, - height: Math.min(S.height, E + N) - ze - }, - layout: [{ - offset: Z, - stride: Y - }] - } - })(i, t, r, a, c)), g) - for (let S = 0; S < v.length; S += 4) { - const I = v[S]; - v[S] = v[S + 2], v[S + 2] = I - } - return v - } finally { - p.close() - } - })) - } - let _r, Ir; - - function jr(i, t, r, a) { - return i.addEventListener(t, r, a), { - unsubscribe: () => { - i.removeEventListener(t, r, a) - } - } - } - - function ur(i) { - return i * Math.PI / 180 - } - - function Mr(i) { - return i / Math.PI * 180 - } - const Ar = { - touchstart: !0, - touchmove: !0, - touchmoveWindow: !0, - touchend: !0, - touchcancel: !0 - }, - kr = { - dblclick: !0, - click: !0, - mouseover: !0, - mouseout: !0, - mousedown: !0, - mousemove: !0, - mousemoveWindow: !0, - mouseup: !0, - mouseupWindow: !0, - contextmenu: !0, - wheel: !0 - }, - Nr = "AbortError"; - - function ce() { - return new Error(Nr) - } - const O = { - MAX_PARALLEL_IMAGE_REQUESTS: 16, - MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8, - MAX_TILE_CACHE_ZOOM_LEVELS: 5, - REGISTERED_PROTOCOLS: {}, - WORKER_URL: "" - }; - - function q(i) { - return O.REGISTERED_PROTOCOLS[i.substring(0, i.indexOf("://"))] - } - const G = "global-dispatcher"; - class K extends Error { - constructor(t, r, a, c) { - super(`AJAXError: ${r} (${t}): ${a}`), this.status = t, this.statusText = r, this.url = a, this.body = c - } - } - const le = () => Yt(self) ? self.worker && self.worker.referrer : (window.location.protocol === "blob:" ? window.parent : window).location.href, - ve = function(i, t) { - if (/:\/\//.test(i.url) && !/^https?:|^file:/.test(i.url)) { - const a = q(i.url); - if (a) return a(i, t); - if (Yt(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ - type: "GR", - data: i, - targetMapId: G - }, t) - } - if (!(/^file:/.test(r = i.url) || /^file:/.test(le()) && !/^\w+:/.test(r))) { - if (fetch && Request && AbortController && Object.prototype.hasOwnProperty.call(Request.prototype, "signal")) return (function(a, c) { - return o(this, void 0, void 0, (function*() { - const p = new Request(a.url, { - method: a.method || "GET", - body: a.body, - credentials: a.credentials, - headers: a.headers, - cache: a.cache, - referrer: le(), - signal: c.signal - }); - let f, g; - a.type !== "json" || p.headers.has("Accept") || p.headers.set("Accept", "application/json"); - try { - f = yield fetch(p) - } catch (S) { - throw new K(0, S.message, a.url, new Blob) - } - if (!f.ok) { - const S = yield f.blob(); - throw new K(f.status, f.statusText, a.url, S) - } - g = a.type === "arrayBuffer" || a.type === "image" ? f.arrayBuffer() : a.type === "json" ? f.json() : f.text(); - const v = yield g; - if (c.signal.aborted) throw ce(); - return { - data: v, - cacheControl: f.headers.get("Cache-Control"), - expires: f.headers.get("Expires") - } - })) - })(i, t); - if (Yt(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ - type: "GR", - data: i, - mustQueue: !0, - targetMapId: G - }, t) - } - var r; - return (function(a, c) { - return new Promise(((p, f) => { - var g; - const v = new XMLHttpRequest; - v.open(a.method || "GET", a.url, !0), a.type !== "arrayBuffer" && a.type !== "image" || (v.responseType = "arraybuffer"); - for (const S in a.headers) v.setRequestHeader(S, a.headers[S]); - a.type === "json" && (v.responseType = "text", !((g = a.headers) === null || g === void 0) && g.Accept || v.setRequestHeader("Accept", "application/json")), v.withCredentials = a.credentials === "include", v.onerror = () => { - f(new Error(v.statusText)) - }, v.onload = () => { - if (!c.signal.aborted) - if ((v.status >= 200 && v.status < 300 || v.status === 0) && v.response !== null) { - let S = v.response; - if (a.type === "json") try { - S = JSON.parse(v.response) - } catch (I) { - return void f(I) - } - p({ - data: S, - cacheControl: v.getResponseHeader("Cache-Control"), - expires: v.getResponseHeader("Expires") - }) - } else { - const S = new Blob([v.response], { - type: v.getResponseHeader("Content-Type") - }); - f(new K(v.status, v.statusText, a.url, S)) - } - }, c.signal.addEventListener("abort", (() => { - v.abort(), f(ce()) - })), v.send(a.body) - })) - })(i, t) - }; - - function Le(i) { - if (!i || i.indexOf("://") <= 0 || i.indexOf("data:image/") === 0 || i.indexOf("blob:") === 0) return !0; - const t = new URL(i), - r = window.location; - return t.protocol === r.protocol && t.host === r.host - } - - function Ce(i, t, r) { - r[i] && r[i].indexOf(t) !== -1 || (r[i] = r[i] || [], r[i].push(t)) - } - - function Ze(i, t, r) { - if (r && r[i]) { - const a = r[i].indexOf(t); - a !== -1 && r[i].splice(a, 1) - } - } - class ot { - constructor(t, r = {}) { - pt(this, r), this.type = t - } - } - class Ye extends ot { - constructor(t, r = {}) { - super("error", pt({ - error: t - }, r)) - } - } - class Ot { - on(t, r) { - return this._listeners = this._listeners || {}, Ce(t, r, this._listeners), { - unsubscribe: () => { - this.off(t, r) - } - } - } - off(t, r) { - return Ze(t, r, this._listeners), Ze(t, r, this._oneTimeListeners), this - } - once(t, r) { - return r ? (this._oneTimeListeners = this._oneTimeListeners || {}, Ce(t, r, this._oneTimeListeners), this) : new Promise((a => this.once(t, a))) - } - fire(t, r) { - typeof t == "string" && (t = new ot(t, r || {})); - const a = t.type; - if (this.listens(a)) { - t.target = this; - const c = this._listeners && this._listeners[a] ? this._listeners[a].slice() : []; - for (const g of c) g.call(this, t); - const p = this._oneTimeListeners && this._oneTimeListeners[a] ? this._oneTimeListeners[a].slice() : []; - for (const g of p) Ze(a, g, this._oneTimeListeners), g.call(this, t); - const f = this._eventedParent; - f && (pt(t, typeof this._eventedParentData == "function" ? this._eventedParentData() : this._eventedParentData), f.fire(t)) - } else t instanceof Ye && console.error(t.error); - return this - } - listens(t) { - return this._listeners && this._listeners[t] && this._listeners[t].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t] && this._oneTimeListeners[t].length > 0 || this._eventedParent && this._eventedParent.listens(t) - } - setEventedParent(t, r) { - return this._eventedParent = t, this._eventedParentData = r, this - } - } - var xe = { - $version: 8, - $root: { - version: { - required: !0, - type: "enum", - values: [8] - }, - name: { - type: "string" - }, - metadata: { - type: "*" - }, - center: { - type: "array", - value: "number" - }, - centerAltitude: { - type: "number" - }, - zoom: { - type: "number" - }, - bearing: { - type: "number", - default: 0, - period: 360, - units: "degrees" - }, - pitch: { - type: "number", - default: 0, - units: "degrees" - }, - roll: { - type: "number", - default: 0, - units: "degrees" - }, - state: { - type: "state", - default: {} - }, - light: { - type: "light" - }, - sky: { - type: "sky" - }, - projection: { - type: "projection" - }, - terrain: { - type: "terrain" - }, - sources: { - required: !0, - type: "sources" - }, - sprite: { - type: "sprite" - }, - glyphs: { - type: "string" - }, - 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: {}, - "color-relief": {}, - background: {} - }, - required: !0 - }, - metadata: { - type: "*" - }, - source: { - type: "string" - }, - "source-layer": { - type: "string" - }, - minzoom: { - type: "number", - minimum: 0, - maximum: 24 - }, - maxzoom: { - type: "number", - minimum: 0, - maximum: 24 - }, - filter: { - type: "filter" - }, - layout: { - type: "layout" - }, - paint: { - type: "paint" - } - }, - layout: ["layout_fill", "layout_line", "layout_circle", "layout_heatmap", "layout_fill-extrusion", "layout_symbol", "layout_raster", "layout_hillshade", "layout_color-relief", "layout_background"], - layout_background: { - visibility: { - type: "enum", - values: { - visible: {}, - none: {} - }, - default: "visible", - "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" - } - }, - "layout_color-relief": { - 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": {} - } - }, - 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 - }, - "horizon-color": { - type: "color", - "property-type": "data-constant", - default: "#ffffff", - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "fog-color": { - type: "color", - "property-type": "data-constant", - default: "#ffffff", - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "fog-ground-blend": { - type: "number", - "property-type": "data-constant", - default: .5, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "horizon-fog-blend": { - type: "number", - "property-type": "data-constant", - default: .8, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "sky-horizon-blend": { - type: "number", - "property-type": "data-constant", - default: .8, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - }, - "atmosphere-blend": { - type: "number", - "property-type": "data-constant", - default: .8, - minimum: 0, - maximum: 1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - transition: !0 - } - }, - terrain: { - source: { - type: "string", - required: !0 - }, - exaggeration: { - type: "number", - minimum: 0, - default: 1 - } - }, - projection: { - type: { - type: "projectionDefinition", - default: "mercator", - "property-type": "data-constant", - transition: !1, - expression: { - interpolated: !0, - parameters: ["zoom"] - } - } - }, - paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_color-relief", "paint_background"], - paint_fill: { - "fill-antialias": { - type: "boolean", - default: !0, - expression: { - interpolated: !1, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "fill-opacity": { - type: "number", - default: 1, - minimum: 0, - maximum: 1, - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom", "feature", "feature-state"] - }, - "property-type": "data-driven" - }, - "fill-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: "numberArray", - default: 335, - minimum: 0, - maximum: 359, - transition: !1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-illumination-altitude": { - type: "numberArray", - default: 45, - minimum: 0, - maximum: 90, - transition: !1, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-illumination-anchor": { - type: "enum", - values: { - map: {}, - viewport: {} - }, - default: "viewport", - expression: { - interpolated: !1, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-exaggeration": { - type: "number", - default: .5, - minimum: 0, - maximum: 1, - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-shadow-color": { - type: "colorArray", - default: "#000000", - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-highlight-color": { - type: "colorArray", - default: "#FFFFFF", - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-accent-color": { - type: "color", - default: "#000000", - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "hillshade-method": { - type: "enum", - values: { - standard: {}, - basic: {}, - combined: {}, - igor: {}, - multidirectional: {} - }, - default: "standard", - expression: { - interpolated: !1, - parameters: ["zoom"] - }, - "property-type": "data-constant" - } - }, - "paint_color-relief": { - "color-relief-opacity": { - type: "number", - default: 1, - minimum: 0, - maximum: 1, - transition: !0, - expression: { - interpolated: !0, - parameters: ["zoom"] - }, - "property-type": "data-constant" - }, - "color-relief-color": { - type: "color", - transition: !1, - expression: { - interpolated: !0, - parameters: ["elevation"] - }, - "property-type": "color-ramp" - } - }, - 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 At = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"]; - - function Pt(i, t) { - const r = {}; - for (const a in i) a !== "ref" && (r[a] = i[a]); - return At.forEach((a => { - a in t && (r[a] = t[a]) - })), r - } - - function kt(i, t) { - if (Array.isArray(i)) { - if (!Array.isArray(t) || i.length !== t.length) return !1; - for (let r = 0; r < i.length; r++) - if (!kt(i[r], t[r])) return !1; - return !0 - } - if (typeof i == "object" && i !== null && t !== null) { - if (typeof t != "object" || Object.keys(i).length !== Object.keys(t).length) return !1; - for (const r in i) - if (!kt(i[r], t[r])) return !1; - return !0 - } - return i === t - } - - function Wt(i, t) { - i.push(t) - } - - function Lr(i, t, r) { - Wt(r, { - command: "addSource", - args: [i, t[i]] - }) - } - - function Kr(i, t, r) { - Wt(t, { - command: "removeSource", - args: [i] - }), r[i] = !0 - } - - function Hr(i, t, r, a) { - Kr(i, r, a), Lr(i, t, r) - } - - function $r(i, t, r) { - let a; - for (a in i[r]) - if (Object.prototype.hasOwnProperty.call(i[r], a) && a !== "data" && !kt(i[r][a], t[r][a])) return !1; - for (a in t[r]) - if (Object.prototype.hasOwnProperty.call(t[r], a) && a !== "data" && !kt(i[r][a], t[r][a])) return !1; - return !0 - } - - function mr(i, t, r, a, c, p) { - i = i || {}, t = t || {}; - for (const f in i) Object.prototype.hasOwnProperty.call(i, f) && (kt(i[f], t[f]) || r.push({ - command: p, - args: [a, f, t[f], c] - })); - for (const f in t) Object.prototype.hasOwnProperty.call(t, f) && !Object.prototype.hasOwnProperty.call(i, f) && (kt(i[f], t[f]) || r.push({ - command: p, - args: [a, f, t[f], c] - })) - } - - function gr(i) { - return i.id - } - - function ai(i, t) { - return i[t.id] = t, i - } - class Tt { - constructor(t, r, a, c) { - this.message = (t ? `${t}: ` : "") + a, c && (this.identifier = c), r != null && r.__line__ && (this.line = r.__line__) - } - } - - function Ci(i, ...t) { - for (const r of t) - for (const a in r) i[a] = r[a]; - return i - } - class di extends Error { - constructor(t, r) { - super(r), this.message = r, this.key = t - } - } - class Pn { - constructor(t, r = []) { - this.parent = t, this.bindings = {}; - for (const [a, c] of r) this.bindings[a] = c - } - concat(t) { - return new Pn(this, t) - } - get(t) { - if (this.bindings[t]) return this.bindings[t]; - if (this.parent) return this.parent.get(t); - throw new Error(`${t} not found in scope.`) - } - has(t) { - return !!this.bindings[t] || !!this.parent && this.parent.has(t) - } - } - const Mt = { - kind: "null" - }, - Ke = { - kind: "number" - }, - jt = { - kind: "string" - }, - Gt = { - kind: "boolean" - }, - Dr = { - kind: "color" - }, - Gr = { - kind: "projectionDefinition" - }, - li = { - kind: "object" - }, - fr = { - kind: "value" - }, - bi = { - kind: "collator" - }, - Si = { - kind: "formatted" - }, - zi = { - kind: "padding" - }, - mi = { - kind: "colorArray" - }, - Li = { - kind: "numberArray" - }, - rr = { - kind: "resolvedImage" - }, - yi = { - kind: "variableAnchorOffsetCollection" - }; - - function Qr(i, t) { - return { - kind: "array", - itemType: i, - N: t - } - } - - function Yr(i) { - if (i.kind === "array") { - const t = Yr(i.itemType); - return typeof i.N == "number" ? `array<${t}, ${i.N}>` : i.itemType.kind === "value" ? "array" : `array<${t}>` - } - return i.kind - } - const la = [Mt, Ke, jt, Gt, Dr, Gr, Si, li, Qr(fr), zi, Li, mi, rr, yi]; - - function sn(i, t) { - if (t.kind === "error") return null; - if (i.kind === "array") { - if (t.kind === "array" && (t.N === 0 && t.itemType.kind === "value" || !sn(i.itemType, t.itemType)) && (typeof i.N != "number" || i.N === t.N)) return null - } else { - if (i.kind === t.kind) return null; - if (i.kind === "value") { - for (const r of la) - if (!sn(r, t)) return null - } - } - return `Expected ${Yr(i)} but found ${Yr(t)} instead.` - } - - function ta(i, t) { - return t.some((r => r.kind === i.kind)) - } - - function Fi(i, t) { - return t.some((r => r === "null" ? i === null : r === "array" ? Array.isArray(i) : r === "object" ? i && !Array.isArray(i) && typeof i == "object" : r === typeof i)) - } - - function Xi(i, t) { - return i.kind === "array" && t.kind === "array" ? i.itemType.kind === t.itemType.kind && typeof i.N == "number" : i.kind === t.kind - } - const Gn = .96422, - Hn = .82521, - Ln = 4 / 29, - gt = 6 / 29, - qt = 3 * gt * gt, - vr = gt * gt * gt, - _i = Math.PI / 180, - Di = 180 / Math.PI; - - function $i(i) { - return (i %= 360) < 0 && (i += 360), i - } - - function Mi([i, t, r, a]) { - let c, p; - const f = gn((.2225045 * (i = Cr(i)) + .7168786 * (t = Cr(t)) + .0606169 * (r = Cr(r))) / 1); - i === t && t === r ? c = p = f : (c = gn((.4360747 * i + .3850649 * t + .1430804 * r) / Gn), p = gn((.0139322 * i + .0971045 * t + .7141733 * r) / Hn)); - const g = 116 * f - 16; - return [g < 0 ? 0 : g, 500 * (c - f), 200 * (f - p), a] - } - - function Cr(i) { - return i <= .04045 ? i / 12.92 : Math.pow((i + .055) / 1.055, 2.4) - } - - function gn(i) { - return i > vr ? Math.pow(i, 1 / 3) : i / qt + Ln - } - - function tr([i, t, r, a]) { - let c = (i + 16) / 116, - p = isNaN(t) ? c : c + t / 500, - f = isNaN(r) ? c : c - r / 200; - return c = 1 * ei(c), p = Gn * ei(p), f = Hn * ei(f), [Ht(3.1338561 * p - 1.6168667 * c - .4906146 * f), Ht(-.9787684 * p + 1.9161415 * c + .033454 * f), Ht(.0719453 * p - .2289914 * c + 1.4052427 * f), a] - } - - function Ht(i) { - return (i = i <= .00304 ? 12.92 * i : 1.055 * Math.pow(i, 1 / 2.4) - .055) < 0 ? 0 : i > 1 ? 1 : i - } - - function ei(i) { - return i > gt ? i * i * i : qt * (i - Ln) - } - const ri = Object.hasOwn || function(i, t) { - return Object.prototype.hasOwnProperty.call(i, t) - }; - - function gi(i, t) { - return ri(i, t) ? i[t] : void 0 - } - - function ci(i) { - return parseInt(i.padEnd(2, i), 16) / 255 - } - - function pi(i, t) { - return Er(t ? i / 100 : i, 0, 1) - } - - function Er(i, t, r) { - return Math.min(Math.max(t, i), r) - } - - function Ri(i) { - return !i.some(Number.isNaN) - } - const ui = { - aliceblue: [240, 248, 255], - antiquewhite: [250, 235, 215], - aqua: [0, 255, 255], - aquamarine: [127, 255, 212], - azure: [240, 255, 255], - beige: [245, 245, 220], - bisque: [255, 228, 196], - black: [0, 0, 0], - blanchedalmond: [255, 235, 205], - blue: [0, 0, 255], - blueviolet: [138, 43, 226], - brown: [165, 42, 42], - burlywood: [222, 184, 135], - cadetblue: [95, 158, 160], - chartreuse: [127, 255, 0], - chocolate: [210, 105, 30], - coral: [255, 127, 80], - cornflowerblue: [100, 149, 237], - cornsilk: [255, 248, 220], - crimson: [220, 20, 60], - cyan: [0, 255, 255], - darkblue: [0, 0, 139], - darkcyan: [0, 139, 139], - darkgoldenrod: [184, 134, 11], - darkgray: [169, 169, 169], - darkgreen: [0, 100, 0], - darkgrey: [169, 169, 169], - darkkhaki: [189, 183, 107], - darkmagenta: [139, 0, 139], - darkolivegreen: [85, 107, 47], - darkorange: [255, 140, 0], - darkorchid: [153, 50, 204], - darkred: [139, 0, 0], - darksalmon: [233, 150, 122], - darkseagreen: [143, 188, 143], - darkslateblue: [72, 61, 139], - darkslategray: [47, 79, 79], - darkslategrey: [47, 79, 79], - darkturquoise: [0, 206, 209], - darkviolet: [148, 0, 211], - deeppink: [255, 20, 147], - deepskyblue: [0, 191, 255], - dimgray: [105, 105, 105], - dimgrey: [105, 105, 105], - dodgerblue: [30, 144, 255], - firebrick: [178, 34, 34], - floralwhite: [255, 250, 240], - forestgreen: [34, 139, 34], - fuchsia: [255, 0, 255], - gainsboro: [220, 220, 220], - ghostwhite: [248, 248, 255], - gold: [255, 215, 0], - goldenrod: [218, 165, 32], - gray: [128, 128, 128], - green: [0, 128, 0], - greenyellow: [173, 255, 47], - grey: [128, 128, 128], - honeydew: [240, 255, 240], - hotpink: [255, 105, 180], - indianred: [205, 92, 92], - indigo: [75, 0, 130], - ivory: [255, 255, 240], - khaki: [240, 230, 140], - lavender: [230, 230, 250], - lavenderblush: [255, 240, 245], - lawngreen: [124, 252, 0], - lemonchiffon: [255, 250, 205], - lightblue: [173, 216, 230], - lightcoral: [240, 128, 128], - lightcyan: [224, 255, 255], - lightgoldenrodyellow: [250, 250, 210], - lightgray: [211, 211, 211], - lightgreen: [144, 238, 144], - lightgrey: [211, 211, 211], - lightpink: [255, 182, 193], - lightsalmon: [255, 160, 122], - lightseagreen: [32, 178, 170], - lightskyblue: [135, 206, 250], - lightslategray: [119, 136, 153], - lightslategrey: [119, 136, 153], - lightsteelblue: [176, 196, 222], - lightyellow: [255, 255, 224], - lime: [0, 255, 0], - limegreen: [50, 205, 50], - linen: [250, 240, 230], - magenta: [255, 0, 255], - maroon: [128, 0, 0], - mediumaquamarine: [102, 205, 170], - mediumblue: [0, 0, 205], - mediumorchid: [186, 85, 211], - mediumpurple: [147, 112, 219], - mediumseagreen: [60, 179, 113], - mediumslateblue: [123, 104, 238], - mediumspringgreen: [0, 250, 154], - mediumturquoise: [72, 209, 204], - mediumvioletred: [199, 21, 133], - midnightblue: [25, 25, 112], - mintcream: [245, 255, 250], - mistyrose: [255, 228, 225], - moccasin: [255, 228, 181], - navajowhite: [255, 222, 173], - navy: [0, 0, 128], - oldlace: [253, 245, 230], - olive: [128, 128, 0], - olivedrab: [107, 142, 35], - orange: [255, 165, 0], - orangered: [255, 69, 0], - orchid: [218, 112, 214], - palegoldenrod: [238, 232, 170], - palegreen: [152, 251, 152], - paleturquoise: [175, 238, 238], - palevioletred: [219, 112, 147], - papayawhip: [255, 239, 213], - peachpuff: [255, 218, 185], - peru: [205, 133, 63], - pink: [255, 192, 203], - plum: [221, 160, 221], - powderblue: [176, 224, 230], - purple: [128, 0, 128], - rebeccapurple: [102, 51, 153], - red: [255, 0, 0], - rosybrown: [188, 143, 143], - royalblue: [65, 105, 225], - saddlebrown: [139, 69, 19], - salmon: [250, 128, 114], - sandybrown: [244, 164, 96], - seagreen: [46, 139, 87], - seashell: [255, 245, 238], - sienna: [160, 82, 45], - silver: [192, 192, 192], - skyblue: [135, 206, 235], - slateblue: [106, 90, 205], - slategray: [112, 128, 144], - slategrey: [112, 128, 144], - snow: [255, 250, 250], - springgreen: [0, 255, 127], - steelblue: [70, 130, 180], - tan: [210, 180, 140], - teal: [0, 128, 128], - thistle: [216, 191, 216], - tomato: [255, 99, 71], - turquoise: [64, 224, 208], - violet: [238, 130, 238], - wheat: [245, 222, 179], - white: [255, 255, 255], - whitesmoke: [245, 245, 245], - yellow: [255, 255, 0], - yellowgreen: [154, 205, 50] - }; - - function Jr(i, t, r) { - return i + r * (t - i) - } - - function ti(i, t, r) { - return i.map(((a, c) => Jr(a, t[c], r))) - } - class yr { - constructor(t, r, a, c = 1, p = !0) { - this.r = t, this.g = r, this.b = a, this.a = c, p || (this.r *= c, this.g *= c, this.b *= c, c || this.overwriteGetter("rgb", [t, r, a, c])) - } - static parse(t) { - if (t instanceof yr) return t; - if (typeof t != "string") return; - const r = (function(a) { - if ((a = a.toLowerCase().trim()) === "transparent") return [0, 0, 0, 0]; - const c = gi(ui, a); - if (c) { - const [f, g, v] = c; - return [f / 255, g / 255, v / 255, 1] - } - if (a.startsWith("#") && /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(a)) { - const f = a.length < 6 ? 1 : 2; - let g = 1; - return [ci(a.slice(g, g += f)), ci(a.slice(g, g += f)), ci(a.slice(g, g += f)), ci(a.slice(g, g + f) || "ff")] - } - if (a.startsWith("rgb")) { - const f = a.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/); - if (f) { - const [g, v, S, I, E, R, N, j, Z, Y, ae, ze] = f, me = [I || " ", N || " ", Y].join(""); - if (me === " " || me === " /" || me === ",," || me === ",,,") { - const be = [S, R, Z].join(""), - Ve = be === "%%%" ? 100 : be === "" ? 255 : 0; - if (Ve) { - const rt = [Er(+v / Ve, 0, 1), Er(+E / Ve, 0, 1), Er(+j / Ve, 0, 1), ae ? pi(+ae, ze) : 1]; - if (Ri(rt)) return rt - } - } - return - } - } - const p = a.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/); - if (p) { - const [f, g, v, S, I, E, R, N, j] = p, Z = [v || " ", I || " ", R].join(""); - if (Z === " " || Z === " /" || Z === ",," || Z === ",,,") { - const Y = [+g, Er(+S, 0, 100), Er(+E, 0, 100), N ? pi(+N, j) : 1]; - if (Ri(Y)) return (function([ae, ze, me, be]) { - function Ve(rt) { - const St = (rt + ae / 30) % 12, - $t = ze * Math.min(me, 1 - me); - return me - $t * Math.max(-1, Math.min(St - 3, 9 - St, 1)) - } - return ae = $i(ae), ze /= 100, me /= 100, [Ve(0), Ve(8), Ve(4), be] - })(Y) - } - } - })(t); - return r ? new yr(...r, !1) : void 0 - } - get rgb() { - const { - r: t, - g: r, - b: a, - a: c - } = this, p = c || 1 / 0; - return this.overwriteGetter("rgb", [t / p, r / p, a / p, c]) - } - get hcl() { - return this.overwriteGetter("hcl", (function(t) { - const [r, a, c, p] = Mi(t), f = Math.sqrt(a * a + c * c); - return [Math.round(1e4 * f) ? $i(Math.atan2(c, a) * Di) : NaN, f, r, p] - })(this.rgb)) - } - get lab() { - return this.overwriteGetter("lab", Mi(this.rgb)) - } - overwriteGetter(t, r) { - return Object.defineProperty(this, t, { - value: r - }), r - } - toString() { - const [t, r, a, c] = this.rgb; - return `rgba(${[t,r,a].map((p=>Math.round(255*p))).join(",")},${c})` - } - static interpolate(t, r, a, c = "rgb") { - switch (c) { - case "rgb": { - const [p, f, g, v] = ti(t.rgb, r.rgb, a); - return new yr(p, f, g, v, !1) - } - case "hcl": { - const [p, f, g, v] = t.hcl, [S, I, E, R] = r.hcl; - let N, j; - if (isNaN(p) || isNaN(S)) isNaN(p) ? isNaN(S) ? N = NaN : (N = S, g !== 1 && g !== 0 || (j = I)) : (N = p, E !== 1 && E !== 0 || (j = f)); - else { - let me = S - p; - S > p && me > 180 ? me -= 360 : S < p && p - S > 180 && (me += 360), N = p + a * me - } - const [Z, Y, ae, ze] = (function([me, be, Ve, rt]) { - return me = isNaN(me) ? 0 : me * _i, tr([Ve, Math.cos(me) * be, Math.sin(me) * be, rt]) - })([N, j ?? Jr(f, I, a), Jr(g, E, a), Jr(v, R, a)]); - return new yr(Z, Y, ae, ze, !1) - } - case "lab": { - const [p, f, g, v] = tr(ti(t.lab, r.lab, a)); - return new yr(p, f, g, v, !1) - } - } - } - } - yr.black = new yr(0, 0, 0, 1), yr.white = new yr(1, 1, 1, 1), yr.transparent = new yr(0, 0, 0, 0), yr.red = new yr(1, 0, 0, 1); - class on { - constructor(t, r, a) { - this.sensitivity = t ? r ? "variant" : "case" : r ? "accent" : "base", this.locale = a, this.collator = new Intl.Collator(this.locale ? this.locale : [], { - sensitivity: this.sensitivity, - usage: "search" - }) - } - compare(t, r) { - return this.collator.compare(t, r) - } - resolvedLocale() { - return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale - } - } - const vn = ["bottom", "center", "top"]; - class _a { - constructor(t, r, a, c, p, f) { - this.text = t, this.image = r, this.scale = a, this.fontStack = c, this.textColor = p, this.verticalAlign = f - } - } - class ln { - constructor(t) { - this.sections = t - } - static fromString(t) { - return new ln([new _a(t, null, null, null, null, null)]) - } - isEmpty() { - return this.sections.length === 0 || !this.sections.some((t => t.text.length !== 0 || t.image && t.image.name.length !== 0)) - } - static factory(t) { - return t instanceof ln ? t : ln.fromString(t) - } - toString() { - return this.sections.length === 0 ? "" : this.sections.map((t => t.text)).join("") - } - } - class Ki { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof Ki) return t; - if (typeof t == "number") return new Ki([t, t, t, t]); - if (Array.isArray(t) && !(t.length < 1 || t.length > 4)) { - for (const r of t) - if (typeof r != "number") return; - switch (t.length) { - case 1: - t = [t[0], t[0], t[0], t[0]]; - break; - case 2: - t = [t[0], t[1], t[0], t[1]]; - break; - case 3: - t = [t[0], t[1], t[2], t[1]] - } - return new Ki(t) - } - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a) { - return new Ki(ti(t.values, r.values, a)) - } - } - class cn { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof cn) return t; - if (typeof t == "number") return new cn([t]); - if (Array.isArray(t)) { - for (const r of t) - if (typeof r != "number") return; - return new cn(t) - } - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a) { - return new cn(ti(t.values, r.values, a)) - } - } - class Ni { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof Ni) return t; - if (typeof t == "string") { - const a = yr.parse(t); - return a ? new Ni([a]) : void 0 - } - if (!Array.isArray(t)) return; - const r = []; - for (const a of t) { - if (typeof a != "string") return; - const c = yr.parse(a); - if (!c) return; - r.push(c) - } - return new Ni(r) - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a, c = "rgb") { - const p = []; - if (t.values.length != r.values.length) throw new Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${r.values.length}), cannot interpolate.`); - for (let f = 0; f < t.values.length; f++) p.push(yr.interpolate(t.values[f], r.values[f], a, c)); - return new Ni(p) - } - } - class wi extends Error { - constructor(t) { - super(t), this.name = "RuntimeError" - } - toJSON() { - return this.message - } - } - const Ko = new Set(["center", "left", "right", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right"]); - class un { - constructor(t) { - this.values = t.slice() - } - static parse(t) { - if (t instanceof un) return t; - if (Array.isArray(t) && !(t.length < 1) && t.length % 2 == 0) { - for (let r = 0; r < t.length; r += 2) { - const a = t[r], - c = t[r + 1]; - if (typeof a != "string" || !Ko.has(a) || !Array.isArray(c) || c.length !== 2 || typeof c[0] != "number" || typeof c[1] != "number") return - } - return new un(t) - } - } - toString() { - return JSON.stringify(this.values) - } - static interpolate(t, r, a) { - const c = t.values, - p = r.values; - if (c.length !== p.length) throw new wi(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${r.toString()}`); - const f = []; - for (let g = 0; g < c.length; g += 2) { - if (c[g] !== p[g]) throw new wi(`Cannot interpolate values containing mismatched anchors. from[${g}]: ${c[g]}, to[${g}]: ${p[g]}`); - f.push(c[g]); - const [v, S] = c[g + 1], [I, E] = p[g + 1]; - f.push([Jr(v, I, a), Jr(S, E, a)]) - } - return new un(f) - } - } - class Nn { - constructor(t) { - this.name = t.name, this.available = t.available - } - toString() { - return this.name - } - static fromString(t) { - return t ? new Nn({ - name: t, - available: !1 - }) : null - } - } - class hn { - constructor(t, r, a) { - this.from = t, this.to = r, this.transition = a - } - static interpolate(t, r, a) { - return new hn(t, r, a) - } - static parse(t) { - return t instanceof hn ? t : Array.isArray(t) && t.length === 3 && typeof t[0] == "string" && typeof t[1] == "string" && typeof t[2] == "number" ? new hn(t[0], t[1], t[2]) : typeof t == "object" && typeof t.from == "string" && typeof t.to == "string" && typeof t.transition == "number" ? new hn(t.from, t.to, t.transition) : typeof t == "string" ? new hn(t, t, 1) : void 0 - } - } - - function Ti(i, t, r, a) { - return typeof i == "number" && i >= 0 && i <= 255 && typeof t == "number" && t >= 0 && t <= 255 && typeof r == "number" && r >= 0 && r <= 255 ? a === void 0 || typeof a == "number" && a >= 0 && a <= 1 ? null : `Invalid rgba value [${[i,t,r,a].join(", ")}]: 'a' must be between 0 and 1.` : `Invalid rgba value [${(typeof a=="number"?[i,t,r,a]:[i,t,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.` - } - - function Za(i) { - if (i === null || typeof i == "string" || typeof i == "boolean" || typeof i == "number" || i instanceof hn || i instanceof yr || i instanceof on || i instanceof ln || i instanceof Ki || i instanceof cn || i instanceof Ni || i instanceof un || i instanceof Nn) return !0; - if (Array.isArray(i)) { - for (const t of i) - if (!Za(t)) return !1; - return !0 - } - if (typeof i == "object") { - for (const t in i) - if (!Za(i[t])) return !1; - return !0 - } - return !1 - } - - function wr(i) { - if (i === null) return Mt; - if (typeof i == "string") return jt; - if (typeof i == "boolean") return Gt; - if (typeof i == "number") return Ke; - if (i instanceof yr) return Dr; - if (i instanceof hn) return Gr; - if (i instanceof on) return bi; - if (i instanceof ln) return Si; - if (i instanceof Ki) return zi; - if (i instanceof cn) return Li; - if (i instanceof Ni) return mi; - if (i instanceof un) return yi; - if (i instanceof Nn) return rr; - if (Array.isArray(i)) { - const t = i.length; - let r; - for (const a of i) { - const c = wr(a); - if (r) { - if (r === c) continue; - r = fr; - break - } - r = c - } - return Qr(r || fr, t) - } - return li - } - - function Vr(i) { - const t = typeof i; - return i === null ? "" : t === "string" || t === "number" || t === "boolean" ? String(i) : i instanceof yr || i instanceof hn || i instanceof ln || i instanceof Ki || i instanceof cn || i instanceof Ni || i instanceof un || i instanceof Nn ? i.toString() : JSON.stringify(i) - } - class ga { - constructor(t, r) { - this.type = t, this.value = r - } - static parse(t, r) { - if (t.length !== 2) return r.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`); - if (!Za(t[1])) return r.error("invalid value"); - const a = t[1]; - let c = wr(a); - const p = r.expectedType; - return c.kind !== "array" || c.N !== 0 || !p || p.kind !== "array" || typeof p.N == "number" && p.N !== 0 || (c = p), new ga(c, a) - } - evaluate() { - return this.value - } - eachChild() {} - outputDefined() { - return !0 - } - } - const hi = { - string: jt, - number: Ke, - boolean: Gt, - object: li - }; - class ra { - constructor(t, r) { - this.type = t, this.args = r - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - let a, c = 1; - const p = t[0]; - if (p === "array") { - let g, v; - if (t.length > 2) { - const S = t[1]; - if (typeof S != "string" || !(S in hi) || S === "object") return r.error('The item type argument of "array" must be one of string, number, boolean', 1); - g = hi[S], c++ - } else g = fr; - if (t.length > 3) { - if (t[2] !== null && (typeof t[2] != "number" || t[2] < 0 || t[2] !== Math.floor(t[2]))) return r.error('The length argument to "array" must be a positive integer literal', 2); - v = t[2], c++ - } - a = Qr(g, v) - } else { - if (!hi[p]) throw new Error(`Types doesn't contain name = ${p}`); - a = hi[p] - } - const f = []; - for (; c < t.length; c++) { - const g = r.parse(t[c], c, fr); - if (!g) return null; - f.push(g) - } - return new ra(a, f) - } - evaluate(t) { - for (let r = 0; r < this.args.length; r++) { - const a = this.args[r].evaluate(t); - if (!sn(this.type, wr(a))) return a; - if (r === this.args.length - 1) throw new wi(`Expected value to be of type ${Yr(this.type)}, but found ${Yr(wr(a))} instead.`) - } - throw new Error - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return this.args.every((t => t.outputDefined())) - } - } - const Ra = { - "to-boolean": Gt, - "to-color": Dr, - "to-number": Ke, - "to-string": jt - }; - class Ba { - constructor(t, r) { - this.type = t, this.args = r - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - const a = t[0]; - if (!Ra[a]) throw new Error(`Can't parse ${a} as it is not part of the known types`); - if ((a === "to-boolean" || a === "to-string") && t.length !== 2) return r.error("Expected one argument."); - const c = Ra[a], - p = []; - for (let f = 1; f < t.length; f++) { - const g = r.parse(t[f], f, fr); - if (!g) return null; - p.push(g) - } - return new Ba(c, p) - } - evaluate(t) { - switch (this.type.kind) { - case "boolean": - return !!this.args[0].evaluate(t); - case "color": { - let r, a; - for (const c of this.args) { - if (r = c.evaluate(t), a = null, r instanceof yr) return r; - if (typeof r == "string") { - const p = t.parseColor(r); - if (p) return p - } else if (Array.isArray(r) && (a = r.length < 3 || r.length > 4 ? `Invalid rgba value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.` : Ti(r[0], r[1], r[2], r[3]), !a)) return new yr(r[0] / 255, r[1] / 255, r[2] / 255, r[3]) - } - throw new wi(a || `Could not parse color from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "padding": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = Ki.parse(r); - if (c) return c - } - throw new wi(`Could not parse padding from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "numberArray": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = cn.parse(r); - if (c) return c - } - throw new wi(`Could not parse numberArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "colorArray": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = Ni.parse(r); - if (c) return c - } - throw new wi(`Could not parse colorArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "variableAnchorOffsetCollection": { - let r; - for (const a of this.args) { - r = a.evaluate(t); - const c = un.parse(r); - if (c) return c - } - throw new wi(`Could not parse variableAnchorOffsetCollection from value '${typeof r=="string"?r:JSON.stringify(r)}'`) - } - case "number": { - let r = null; - for (const a of this.args) { - if (r = a.evaluate(t), r === null) return 0; - const c = Number(r); - if (!isNaN(c)) return c - } - throw new wi(`Could not convert ${JSON.stringify(r)} to number.`) - } - case "formatted": - return ln.fromString(Vr(this.args[0].evaluate(t))); - case "resolvedImage": - return Nn.fromString(Vr(this.args[0].evaluate(t))); - case "projectionDefinition": - return this.args[0].evaluate(t); - default: - return Vr(this.args[0].evaluate(t)) - } - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return this.args.every((t => t.outputDefined())) - } - } - const Yo = ["Unknown", "Point", "LineString", "Polygon"]; - class mc { - constructor() { - this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = new Map, this.availableImages = null, this.canonical = null - } - id() { - return this.feature && "id" in this.feature ? this.feature.id : null - } - geometryType() { - return this.feature ? typeof this.feature.type == "number" ? Yo[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(t) { - let r = this._parseColorCache.get(t); - return r || (r = yr.parse(t), this._parseColorCache.set(t, r)), r - } - } - class Rs { - constructor(t, r, a = [], c, p = new Pn, f = []) { - this.registry = t, this.path = a, this.key = a.map((g => `[${g}]`)).join(""), this.scope = p, this.errors = f, this.expectedType = c, this._isConstant = r - } - parse(t, r, a, c, p = {}) { - return r ? this.concat(r, a, c)._parse(t, p) : this._parse(t, p) - } - _parse(t, r) { - function a(c, p, f) { - return f === "assert" ? new ra(p, [c]) : f === "coerce" ? new Ba(p, [c]) : c - } - if (t !== null && typeof t != "string" && typeof t != "boolean" && typeof t != "number" || (t = ["literal", t]), Array.isArray(t)) { - if (t.length === 0) return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].'); - const c = t[0]; - if (typeof c != "string") return this.error(`Expression name must be a string, but found ${typeof c} instead. If you wanted a literal array, use ["literal", [...]].`, 0), null; - const p = this.registry[c]; - if (p) { - let f = p.parse(t, this); - if (!f) return null; - if (this.expectedType) { - const g = this.expectedType, - v = f.type; - if (g.kind !== "string" && g.kind !== "number" && g.kind !== "boolean" && g.kind !== "object" && g.kind !== "array" || v.kind !== "value") { - if (g.kind === "projectionDefinition" && ["string", "array"].includes(v.kind) || ["color", "formatted", "resolvedImage"].includes(g.kind) && ["value", "string"].includes(v.kind) || ["padding", "numberArray"].includes(g.kind) && ["value", "number", "array"].includes(v.kind) || g.kind === "colorArray" && ["value", "string", "array"].includes(v.kind) || g.kind === "variableAnchorOffsetCollection" && ["value", "array"].includes(v.kind)) f = a(f, g, r.typeAnnotation || "coerce"); - else if (this.checkSubtype(g, v)) return null - } else f = a(f, g, r.typeAnnotation || "assert") - } - if (!(f instanceof ga) && f.type.kind !== "resolvedImage" && this._isConstant(f)) { - const g = new mc; - try { - f = new ga(f.type, f.evaluate(g)) - } catch (v) { - return this.error(v.message), null - } - } - return f - } - return this.error(`Unknown expression "${c}". If you wanted a literal array, use ["literal", [...]].`, 0) - } - return this.error(t === void 0 ? "'undefined' value invalid. Use null instead." : typeof t == "object" ? 'Bare objects invalid. Use ["literal", {...}] instead.' : `Expected an array, but found ${typeof t} instead.`) - } - concat(t, r, a) { - const c = typeof t == "number" ? this.path.concat(t) : this.path, - p = a ? this.scope.concat(a) : this.scope; - return new Rs(this.registry, this._isConstant, c, r || null, p, this.errors) - } - error(t, ...r) { - const a = `${this.key}${r.map((c=>`[${c}]`)).join("")}`; - this.errors.push(new di(a, t)) - } - checkSubtype(t, r) { - const a = sn(t, r); - return a && this.error(a), a - } - } - class co { - constructor(t, r) { - this.type = r.type, this.bindings = [].concat(t), this.result = r - } - evaluate(t) { - return this.result.evaluate(t) - } - eachChild(t) { - for (const r of this.bindings) t(r[1]); - t(this.result) - } - static parse(t, r) { - if (t.length < 4) return r.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`); - const a = []; - for (let p = 1; p < t.length - 1; p += 2) { - const f = t[p]; - if (typeof f != "string") return r.error(`Expected string, but found ${typeof f} instead.`, p); - if (/[^a-zA-Z0-9_]/.test(f)) return r.error("Variable names must contain only alphanumeric characters or '_'.", p); - const g = r.parse(t[p + 1], p + 1); - if (!g) return null; - a.push([f, g]) - } - const c = r.parse(t[t.length - 1], t.length - 1, r.expectedType, a); - return c ? new co(a, c) : null - } - outputDefined() { - return this.result.outputDefined() - } - } - class Jo { - constructor(t, r) { - this.type = r.type, this.name = t, this.boundExpression = r - } - static parse(t, r) { - if (t.length !== 2 || typeof t[1] != "string") return r.error("'var' expression requires exactly one string literal argument."); - const a = t[1]; - return r.scope.has(a) ? new Jo(a, r.scope.get(a)) : r.error(`Unknown variable "${a}". Make sure "${a}" has been bound in an enclosing "let" expression before using it.`, 1) - } - evaluate(t) { - return this.boundExpression.evaluate(t) - } - eachChild() {} - outputDefined() { - return !1 - } - } - class Qo { - constructor(t, r, a) { - this.type = t, this.index = r, this.input = a - } - static parse(t, r) { - if (t.length !== 3) return r.error(`Expected 2 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, Ke), - c = r.parse(t[2], 2, Qr(r.expectedType || fr)); - return a && c ? new Qo(c.type.itemType, a, c) : null - } - evaluate(t) { - const r = this.index.evaluate(t), - a = this.input.evaluate(t); - if (r < 0) throw new wi(`Array index out of bounds: ${r} < 0.`); - if (r >= a.length) throw new wi(`Array index out of bounds: ${r} > ${a.length-1}.`); - if (r !== Math.floor(r)) throw new wi(`Array index must be an integer, but found ${r} instead.`); - return a[r] - } - eachChild(t) { - t(this.index), t(this.input) - } - outputDefined() { - return !1 - } - } - class el { - constructor(t, r) { - this.type = Gt, this.needle = t, this.haystack = r - } - static parse(t, r) { - if (t.length !== 3) return r.error(`Expected 2 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, fr), - c = r.parse(t[2], 2, fr); - return a && c ? ta(a.type, [Gt, jt, Ke, Mt, fr]) ? new el(a, c) : r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(a.type)} instead`) : null - } - evaluate(t) { - const r = this.needle.evaluate(t), - a = this.haystack.evaluate(t); - if (!a) return !1; - if (!Fi(r, ["boolean", "string", "number", "null"])) throw new wi(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(wr(r))} instead.`); - if (!Fi(a, ["string", "array"])) throw new wi(`Expected second argument to be of type array or string, but found ${Yr(wr(a))} instead.`); - return a.indexOf(r) >= 0 - } - eachChild(t) { - t(this.needle), t(this.haystack) - } - outputDefined() { - return !0 - } - } - class va { - constructor(t, r, a) { - this.type = Ke, this.needle = t, this.haystack = r, this.fromIndex = a - } - static parse(t, r) { - if (t.length <= 2 || t.length >= 5) return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, fr), - c = r.parse(t[2], 2, fr); - if (!a || !c) return null; - if (!ta(a.type, [Gt, jt, Ke, Mt, fr])) return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(a.type)} instead`); - if (t.length === 4) { - const p = r.parse(t[3], 3, Ke); - return p ? new va(a, c, p) : null - } - return new va(a, c) - } - evaluate(t) { - const r = this.needle.evaluate(t), - a = this.haystack.evaluate(t); - if (!Fi(r, ["boolean", "string", "number", "null"])) throw new wi(`Expected first argument to be of type boolean, string, number or null, but found ${Yr(wr(r))} instead.`); - let c; - if (this.fromIndex && (c = this.fromIndex.evaluate(t)), Fi(a, ["string"])) { - const p = a.indexOf(r, c); - return p === -1 ? -1 : [...a.slice(0, p)].length - } - if (Fi(a, ["array"])) return a.indexOf(r, c); - throw new wi(`Expected second argument to be of type array or string, but found ${Yr(wr(a))} instead.`) - } - eachChild(t) { - t(this.needle), t(this.haystack), this.fromIndex && t(this.fromIndex) - } - outputDefined() { - return !1 - } - } - class yn { - constructor(t, r, a, c, p, f) { - this.inputType = t, this.type = r, this.input = a, this.cases = c, this.outputs = p, this.otherwise = f - } - static parse(t, r) { - if (t.length < 5) return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`); - if (t.length % 2 != 1) return r.error("Expected an even number of arguments."); - let a, c; - r.expectedType && r.expectedType.kind !== "value" && (c = r.expectedType); - const p = {}, - f = []; - for (let S = 2; S < t.length - 1; S += 2) { - let I = t[S]; - const E = t[S + 1]; - Array.isArray(I) || (I = [I]); - const R = r.concat(S); - if (I.length === 0) return R.error("Expected at least one branch label."); - for (const j of I) { - if (typeof j != "number" && typeof j != "string") return R.error("Branch labels must be numbers or strings."); - if (typeof j == "number" && Math.abs(j) > Number.MAX_SAFE_INTEGER) return R.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`); - if (typeof j == "number" && Math.floor(j) !== j) return R.error("Numeric branch labels must be integer values."); - if (a) { - if (R.checkSubtype(a, wr(j))) return null - } else a = wr(j); - if (p[String(j)] !== void 0) return R.error("Branch labels must be unique."); - p[String(j)] = f.length - } - const N = r.parse(E, S, c); - if (!N) return null; - c = c || N.type, f.push(N) - } - const g = r.parse(t[1], 1, fr); - if (!g) return null; - const v = r.parse(t[t.length - 1], t.length - 1, c); - return v ? g.type.kind !== "value" && r.concat(1).checkSubtype(a, g.type) ? null : new yn(a, c, g, p, f, v) : null - } - evaluate(t) { - const r = this.input.evaluate(t); - return (wr(r) === this.inputType && this.outputs[this.cases[r]] || this.otherwise).evaluate(t) - } - eachChild(t) { - t(this.input), this.outputs.forEach(t), t(this.otherwise) - } - outputDefined() { - return this.outputs.every((t => t.outputDefined())) && this.otherwise.outputDefined() - } - } - class Bs { - constructor(t, r, a) { - this.type = t, this.branches = r, this.otherwise = a - } - static parse(t, r) { - if (t.length < 4) return r.error(`Expected at least 3 arguments, but found only ${t.length-1}.`); - if (t.length % 2 != 0) return r.error("Expected an odd number of arguments."); - let a; - r.expectedType && r.expectedType.kind !== "value" && (a = r.expectedType); - const c = []; - for (let f = 1; f < t.length - 1; f += 2) { - const g = r.parse(t[f], f, Gt); - if (!g) return null; - const v = r.parse(t[f + 1], f + 1, a); - if (!v) return null; - c.push([g, v]), a = a || v.type - } - const p = r.parse(t[t.length - 1], t.length - 1, a); - if (!p) return null; - if (!a) throw new Error("Can't infer output type"); - return new Bs(a, c, p) - } - evaluate(t) { - for (const [r, a] of this.branches) - if (r.evaluate(t)) return a.evaluate(t); - return this.otherwise.evaluate(t) - } - eachChild(t) { - for (const [r, a] of this.branches) t(r), t(a); - t(this.otherwise) - } - outputDefined() { - return this.branches.every((([t, r]) => r.outputDefined())) && this.otherwise.outputDefined() - } - } - class uo { - constructor(t, r, a, c) { - this.type = t, this.input = r, this.beginIndex = a, this.endIndex = c - } - static parse(t, r) { - if (t.length <= 2 || t.length >= 5) return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1, fr), - c = r.parse(t[2], 2, Ke); - if (!a || !c) return null; - if (!ta(a.type, [Qr(fr), jt, fr])) return r.error(`Expected first argument to be of type array or string, but found ${Yr(a.type)} instead`); - if (t.length === 4) { - const p = r.parse(t[3], 3, Ke); - return p ? new uo(a.type, a, c, p) : null - } - return new uo(a.type, a, c) - } - evaluate(t) { - const r = this.input.evaluate(t), - a = this.beginIndex.evaluate(t); - let c; - if (this.endIndex && (c = this.endIndex.evaluate(t)), Fi(r, ["string"])) return [...r].slice(a, c).join(""); - if (Fi(r, ["array"])) return r.slice(a, c); - throw new wi(`Expected first argument to be of type array or string, but found ${Yr(wr(r))} instead.`) - } - eachChild(t) { - t(this.input), t(this.beginIndex), this.endIndex && t(this.endIndex) - } - outputDefined() { - return !1 - } - } - - function fs(i, t) { - const r = i.length - 1; - let a, c, p = 0, - f = r, - g = 0; - for (; p <= f;) - if (g = Math.floor((p + f) / 2), a = i[g], c = i[g + 1], a <= t) { - if (g === r || t < c) return g; - p = g + 1 - } else { - if (!(a > t)) throw new wi("Input is not a number."); - f = g - 1 - } return 0 - } - class Gi { - constructor(t, r, a) { - this.type = t, this.input = r, this.labels = [], this.outputs = []; - for (const [c, p] of a) this.labels.push(c), this.outputs.push(p) - } - static parse(t, r) { - if (t.length - 1 < 4) return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`); - if ((t.length - 1) % 2 != 0) return r.error("Expected an even number of arguments."); - const a = r.parse(t[1], 1, Ke); - if (!a) return null; - const c = []; - let p = null; - r.expectedType && r.expectedType.kind !== "value" && (p = r.expectedType); - for (let f = 1; f < t.length; f += 2) { - const g = f === 1 ? -1 / 0 : t[f], - v = t[f + 1], - S = f, - I = f + 1; - if (typeof g != "number") return r.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', S); - if (c.length && c[c.length - 1][0] >= g) return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', S); - const E = r.parse(v, I, p); - if (!E) return null; - p = p || E.type, c.push([g, E]) - } - return new Gi(p, a, c) - } - evaluate(t) { - const r = this.labels, - a = this.outputs; - if (r.length === 1) return a[0].evaluate(t); - const c = this.input.evaluate(t); - if (c <= r[0]) return a[0].evaluate(t); - const p = r.length; - return c >= r[p - 1] ? a[p - 1].evaluate(t) : a[fs(r, c)].evaluate(t) - } - eachChild(t) { - t(this.input); - for (const r of this.outputs) t(r) - } - outputDefined() { - return this.outputs.every((t => t.outputDefined())) - } - } - - function _h(i) { - return i && i.__esModule && Object.prototype.hasOwnProperty.call(i, "default") ? i.default : i - } - var ho, _c, Yd = (function() { - if (_c) return ho; - - function i(t, r, a, c) { - this.cx = 3 * t, this.bx = 3 * (a - t) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * r, this.by = 3 * (c - r) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t, this.p1y = r, this.p2x = a, this.p2y = c - } - return _c = 1, ho = i, i.prototype = { - sampleCurveX: function(t) { - return ((this.ax * t + this.bx) * t + this.cx) * t - }, - sampleCurveY: function(t) { - return ((this.ay * t + this.by) * t + this.cy) * t - }, - sampleCurveDerivativeX: function(t) { - return (3 * this.ax * t + 2 * this.bx) * t + this.cx - }, - solveCurveX: function(t, r) { - if (r === void 0 && (r = 1e-6), t < 0) return 0; - if (t > 1) return 1; - for (var a = t, c = 0; c < 8; c++) { - var p = this.sampleCurveX(a) - t; - if (Math.abs(p) < r) return a; - var f = this.sampleCurveDerivativeX(a); - if (Math.abs(f) < 1e-6) break; - a -= p / f - } - var g = 0, - v = 1; - for (a = t, c = 0; c < 20 && (p = this.sampleCurveX(a), !(Math.abs(p - t) < r)); c++) t > p ? g = a : v = a, a = .5 * (v - g) + g; - return a - }, - solve: function(t, r) { - return this.sampleCurveY(this.solveCurveX(t, r)) - } - }, ho - })(), - Fs = _h(Yd); - class In { - constructor(t, r, a, c, p) { - this.type = t, this.operator = r, this.interpolation = a, this.input = c, this.labels = [], this.outputs = []; - for (const [f, g] of p) this.labels.push(f), this.outputs.push(g) - } - static interpolationFactor(t, r, a, c) { - let p = 0; - if (t.name === "exponential") p = po(r, t.base, a, c); - else if (t.name === "linear") p = po(r, 1, a, c); - else if (t.name === "cubic-bezier") { - const f = t.controlPoints; - p = new Fs(f[0], f[1], f[2], f[3]).solve(po(r, 1, a, c)) - } - return p - } - static parse(t, r) { - let [a, c, p, ...f] = t; - if (!Array.isArray(c) || c.length === 0) return r.error("Expected an interpolation type expression.", 1); - if (c[0] === "linear") c = { - name: "linear" - }; - else if (c[0] === "exponential") { - const S = c[1]; - if (typeof S != "number") return r.error("Exponential interpolation requires a numeric base.", 1, 1); - c = { - name: "exponential", - base: S - } - } else { - if (c[0] !== "cubic-bezier") return r.error(`Unknown interpolation type ${String(c[0])}`, 1, 0); - { - const S = c.slice(1); - if (S.length !== 4 || S.some((I => typeof I != "number" || I < 0 || I > 1))) return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1); - c = { - name: "cubic-bezier", - controlPoints: S - } - } - } - if (t.length - 1 < 4) return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`); - if ((t.length - 1) % 2 != 0) return r.error("Expected an even number of arguments."); - if (p = r.parse(p, 2, Ke), !p) return null; - const g = []; - let v = null; - a !== "interpolate-hcl" && a !== "interpolate-lab" || r.expectedType == mi ? r.expectedType && r.expectedType.kind !== "value" && (v = r.expectedType) : v = Dr; - for (let S = 0; S < f.length; S += 2) { - const I = f[S], - E = f[S + 1], - R = S + 3, - N = S + 4; - if (typeof I != "number") return r.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', R); - if (g.length && g[g.length - 1][0] >= I) return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', R); - const j = r.parse(E, N, v); - if (!j) return null; - v = v || j.type, g.push([I, j]) - } - return Xi(v, Ke) || Xi(v, Gr) || Xi(v, Dr) || Xi(v, zi) || Xi(v, Li) || Xi(v, mi) || Xi(v, yi) || Xi(v, Qr(Ke)) ? new In(v, a, c, p, g) : r.error(`Type ${Yr(v)} is not interpolatable.`) - } - evaluate(t) { - const r = this.labels, - a = this.outputs; - if (r.length === 1) return a[0].evaluate(t); - const c = this.input.evaluate(t); - if (c <= r[0]) return a[0].evaluate(t); - const p = r.length; - if (c >= r[p - 1]) return a[p - 1].evaluate(t); - const f = fs(r, c), - g = In.interpolationFactor(this.interpolation, c, r[f], r[f + 1]), - v = a[f].evaluate(t), - S = a[f + 1].evaluate(t); - switch (this.operator) { - case "interpolate": - switch (this.type.kind) { - case "number": - return Jr(v, S, g); - case "color": - return yr.interpolate(v, S, g); - case "padding": - return Ki.interpolate(v, S, g); - case "colorArray": - return Ni.interpolate(v, S, g); - case "numberArray": - return cn.interpolate(v, S, g); - case "variableAnchorOffsetCollection": - return un.interpolate(v, S, g); - case "array": - return ti(v, S, g); - case "projectionDefinition": - return hn.interpolate(v, S, g) - } - case "interpolate-hcl": - switch (this.type.kind) { - case "color": - return yr.interpolate(v, S, g, "hcl"); - case "colorArray": - return Ni.interpolate(v, S, g, "hcl") - } - case "interpolate-lab": - switch (this.type.kind) { - case "color": - return yr.interpolate(v, S, g, "lab"); - case "colorArray": - return Ni.interpolate(v, S, g, "lab") - } - } - } - eachChild(t) { - t(this.input); - for (const r of this.outputs) t(r) - } - outputDefined() { - return this.outputs.every((t => t.outputDefined())) - } - } - - function po(i, t, r, a) { - const c = a - r, - p = i - r; - return c === 0 ? 0 : t === 1 ? p / c : (Math.pow(t, p) - 1) / (Math.pow(t, c) - 1) - } - const Fa = { - color: yr.interpolate, - number: Jr, - padding: Ki.interpolate, - numberArray: cn.interpolate, - colorArray: Ni.interpolate, - variableAnchorOffsetCollection: un.interpolate, - array: ti - }; - class fo { - constructor(t, r) { - this.type = t, this.args = r - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - let a = null; - const c = r.expectedType; - c && c.kind !== "value" && (a = c); - const p = []; - for (const g of t.slice(1)) { - const v = r.parse(g, 1 + p.length, a, void 0, { - typeAnnotation: "omit" - }); - if (!v) return null; - a = a || v.type, p.push(v) - } - if (!a) throw new Error("No output type"); - const f = c && p.some((g => sn(c, g.type))); - return new fo(f ? fr : a, p) - } - evaluate(t) { - let r, a = null, - c = 0; - for (const p of this.args) - if (c++, a = p.evaluate(t), a && a instanceof Nn && !a.available && (r || (r = a.name), a = null, c === this.args.length && (a = r)), a !== null) break; - return a - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return this.args.every((t => t.outputDefined())) - } - } - - function mo(i, t) { - return i === "==" || i === "!=" ? t.kind === "boolean" || t.kind === "string" || t.kind === "number" || t.kind === "null" || t.kind === "value" : t.kind === "string" || t.kind === "number" || t.kind === "value" - } - - function _o(i, t, r, a) { - return a.compare(t, r) === 0 - } - - function Dn(i, t, r) { - const a = i !== "==" && i !== "!="; - return class tv { - constructor(p, f, g) { - this.type = Gt, this.lhs = p, this.rhs = f, this.collator = g, this.hasUntypedArgument = p.type.kind === "value" || f.type.kind === "value" - } - static parse(p, f) { - if (p.length !== 3 && p.length !== 4) return f.error("Expected two or three arguments."); - const g = p[0]; - let v = f.parse(p[1], 1, fr); - if (!v) return null; - if (!mo(g, v.type)) return f.concat(1).error(`"${g}" comparisons are not supported for type '${Yr(v.type)}'.`); - let S = f.parse(p[2], 2, fr); - if (!S) return null; - if (!mo(g, S.type)) return f.concat(2).error(`"${g}" comparisons are not supported for type '${Yr(S.type)}'.`); - if (v.type.kind !== S.type.kind && v.type.kind !== "value" && S.type.kind !== "value") return f.error(`Cannot compare types '${Yr(v.type)}' and '${Yr(S.type)}'.`); - a && (v.type.kind === "value" && S.type.kind !== "value" ? v = new ra(S.type, [v]) : v.type.kind !== "value" && S.type.kind === "value" && (S = new ra(v.type, [S]))); - let I = null; - if (p.length === 4) { - if (v.type.kind !== "string" && S.type.kind !== "string" && v.type.kind !== "value" && S.type.kind !== "value") return f.error("Cannot use collator to compare non-string types."); - if (I = f.parse(p[3], 3, bi), !I) return null - } - return new tv(v, S, I) - } - evaluate(p) { - const f = this.lhs.evaluate(p), - g = this.rhs.evaluate(p); - if (a && this.hasUntypedArgument) { - const v = wr(f), - S = wr(g); - if (v.kind !== S.kind || v.kind !== "string" && v.kind !== "number") throw new wi(`Expected arguments for "${i}" to be (string, string) or (number, number), but found (${v.kind}, ${S.kind}) instead.`) - } - if (this.collator && !a && this.hasUntypedArgument) { - const v = wr(f), - S = wr(g); - if (v.kind !== "string" || S.kind !== "string") return t(p, f, g) - } - return this.collator ? r(p, f, g, this.collator.evaluate(p)) : t(p, f, g) - } - eachChild(p) { - p(this.lhs), p(this.rhs), this.collator && p(this.collator) - } - outputDefined() { - return !0 - } - } - } - const gh = Dn("==", (function(i, t, r) { - return t === r - }), _o), - tl = Dn("!=", (function(i, t, r) { - return t !== r - }), (function(i, t, r, a) { - return !_o(0, t, r, a) - })), - Jd = Dn("<", (function(i, t, r) { - return t < r - }), (function(i, t, r, a) { - return a.compare(t, r) < 0 - })), - gc = Dn(">", (function(i, t, r) { - return t > r - }), (function(i, t, r, a) { - return a.compare(t, r) > 0 - })), - Qd = Dn("<=", (function(i, t, r) { - return t <= r - }), (function(i, t, r, a) { - return a.compare(t, r) <= 0 - })), - ep = Dn(">=", (function(i, t, r) { - return t >= r - }), (function(i, t, r, a) { - return a.compare(t, r) >= 0 - })); - class rl { - constructor(t, r, a) { - this.type = bi, this.locale = a, this.caseSensitive = t, this.diacriticSensitive = r - } - static parse(t, r) { - if (t.length !== 2) return r.error("Expected one argument."); - const a = t[1]; - if (typeof a != "object" || Array.isArray(a)) return r.error("Collator options argument must be an object."); - const c = r.parse(a["case-sensitive"] !== void 0 && a["case-sensitive"], 1, Gt); - if (!c) return null; - const p = r.parse(a["diacritic-sensitive"] !== void 0 && a["diacritic-sensitive"], 1, Gt); - if (!p) return null; - let f = null; - return a.locale && (f = r.parse(a.locale, 1, jt), !f) ? null : new rl(c, p, f) - } - evaluate(t) { - return new on(this.caseSensitive.evaluate(t), this.diacriticSensitive.evaluate(t), this.locale ? this.locale.evaluate(t) : null) - } - eachChild(t) { - t(this.caseSensitive), t(this.diacriticSensitive), this.locale && t(this.locale) - } - outputDefined() { - return !1 - } - } - class vc { - constructor(t, r, a, c, p) { - this.type = jt, this.number = t, this.locale = r, this.currency = a, this.minFractionDigits = c, this.maxFractionDigits = p - } - static parse(t, r) { - if (t.length !== 3) return r.error("Expected two arguments."); - const a = r.parse(t[1], 1, Ke); - if (!a) return null; - const c = t[2]; - if (typeof c != "object" || Array.isArray(c)) return r.error("NumberFormat options argument must be an object."); - let p = null; - if (c.locale && (p = r.parse(c.locale, 1, jt), !p)) return null; - let f = null; - if (c.currency && (f = r.parse(c.currency, 1, jt), !f)) return null; - let g = null; - if (c["min-fraction-digits"] && (g = r.parse(c["min-fraction-digits"], 1, Ke), !g)) return null; - let v = null; - return c["max-fraction-digits"] && (v = r.parse(c["max-fraction-digits"], 1, Ke), !v) ? null : new vc(a, p, f, g, v) - } - evaluate(t) { - return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t) : [], { - style: this.currency ? "currency" : "decimal", - currency: this.currency ? this.currency.evaluate(t) : void 0, - minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t) : void 0, - maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t) : void 0 - }).format(this.number.evaluate(t)) - } - eachChild(t) { - t(this.number), this.locale && t(this.locale), this.currency && t(this.currency), this.minFractionDigits && t(this.minFractionDigits), this.maxFractionDigits && t(this.maxFractionDigits) - } - outputDefined() { - return !1 - } - } - class ms { - constructor(t) { - this.type = Si, this.sections = t - } - static parse(t, r) { - if (t.length < 2) return r.error("Expected at least one argument."); - const a = t[1]; - if (!Array.isArray(a) && typeof a == "object") return r.error("First argument must be an image or text section."); - const c = []; - let p = !1; - for (let f = 1; f <= t.length - 1; ++f) { - const g = t[f]; - if (p && typeof g == "object" && !Array.isArray(g)) { - p = !1; - let v = null; - if (g["font-scale"] && (v = r.parse(g["font-scale"], 1, Ke), !v)) return null; - let S = null; - if (g["text-font"] && (S = r.parse(g["text-font"], 1, Qr(jt)), !S)) return null; - let I = null; - if (g["text-color"] && (I = r.parse(g["text-color"], 1, Dr), !I)) return null; - let E = null; - if (g["vertical-align"]) { - if (typeof g["vertical-align"] == "string" && !vn.includes(g["vertical-align"])) return r.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${g["vertical-align"]}' instead.`); - if (E = r.parse(g["vertical-align"], 1, jt), !E) return null - } - const R = c[c.length - 1]; - R.scale = v, R.font = S, R.textColor = I, R.verticalAlign = E - } else { - const v = r.parse(t[f], 1, fr); - if (!v) return null; - const S = v.type.kind; - if (S !== "string" && S !== "value" && S !== "null" && S !== "resolvedImage") return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'."); - p = !0, c.push({ - content: v, - scale: null, - font: null, - textColor: null, - verticalAlign: null - }) - } - } - return new ms(c) - } - evaluate(t) { - return new ln(this.sections.map((r => { - const a = r.content.evaluate(t); - return wr(a) === rr ? new _a("", a, null, null, null, r.verticalAlign ? r.verticalAlign.evaluate(t) : null) : new _a(Vr(a), null, r.scale ? r.scale.evaluate(t) : null, r.font ? r.font.evaluate(t).join(",") : null, r.textColor ? r.textColor.evaluate(t) : null, r.verticalAlign ? r.verticalAlign.evaluate(t) : null) - }))) - } - eachChild(t) { - for (const r of this.sections) t(r.content), r.scale && t(r.scale), r.font && t(r.font), r.textColor && t(r.textColor), r.verticalAlign && t(r.verticalAlign) - } - outputDefined() { - return !1 - } - } - class yc { - constructor(t) { - this.type = rr, this.input = t - } - static parse(t, r) { - if (t.length !== 2) return r.error("Expected two arguments."); - const a = r.parse(t[1], 1, jt); - return a ? new yc(a) : r.error("No image name provided.") - } - evaluate(t) { - const r = this.input.evaluate(t), - a = Nn.fromString(r); - return a && t.availableImages && (a.available = t.availableImages.indexOf(r) > -1), a - } - eachChild(t) { - t(this.input) - } - outputDefined() { - return !1 - } - } - class il { - constructor(t) { - this.type = Ke, this.input = t - } - static parse(t, r) { - if (t.length !== 2) return r.error(`Expected 1 argument, but found ${t.length-1} instead.`); - const a = r.parse(t[1], 1); - return a ? a.type.kind !== "array" && a.type.kind !== "string" && a.type.kind !== "value" ? r.error(`Expected argument of type string or array, but found ${Yr(a.type)} instead.`) : new il(a) : null - } - evaluate(t) { - const r = this.input.evaluate(t); - if (typeof r == "string") return [...r].length; - if (Array.isArray(r)) return r.length; - throw new wi(`Expected value to be of type string or array, but found ${Yr(wr(r))} instead.`) - } - eachChild(t) { - t(this.input) - } - outputDefined() { - return !1 - } - } - const ya = 8192; - - function tp(i, t) { - const r = (180 + i[0]) / 360, - a = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + i[1] * Math.PI / 360))) / 360, - c = Math.pow(2, t.z); - return [Math.round(r * c * ya), Math.round(a * c * ya)] - } - - function nl(i, t) { - const r = Math.pow(2, t.z); - return [(c = (i[0] / ya + t.x) / r, 360 * c - 180), (a = (i[1] / ya + t.y) / r, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * a) * Math.PI / 180)) - 90)]; - var a, c - } - - function go(i, t) { - i[0] = Math.min(i[0], t[0]), i[1] = Math.min(i[1], t[1]), i[2] = Math.max(i[2], t[0]), i[3] = Math.max(i[3], t[1]) - } - - function vo(i, t) { - return !(i[0] <= t[0] || i[2] >= t[2] || i[1] <= t[1] || i[3] >= t[3]) - } - - function rp(i, t, r) { - const a = i[0] - t[0], - c = i[1] - t[1], - p = i[0] - r[0], - f = i[1] - r[1]; - return a * f - p * c == 0 && a * p <= 0 && c * f <= 0 - } - - function al(i, t, r, a) { - return (c = [a[0] - r[0], a[1] - r[1]])[0] * (p = [t[0] - i[0], t[1] - i[1]])[1] - c[1] * p[0] != 0 && !(!yh(i, t, r, a) || !yh(r, a, i, t)); - var c, p - } - - function ip(i, t, r) { - for (const a of r) - for (let c = 0; c < a.length - 1; ++c) - if (al(i, t, a[c], a[c + 1])) return !0; - return !1 - } - - function _s(i, t, r = !1) { - let a = !1; - for (const g of t) - for (let v = 0; v < g.length - 1; v++) { - if (rp(i, g[v], g[v + 1])) return r; - (p = g[v])[1] > (c = i)[1] != (f = g[v + 1])[1] > c[1] && c[0] < (f[0] - p[0]) * (c[1] - p[1]) / (f[1] - p[1]) + p[0] && (a = !a) - } - var c, p, f; - return a - } - - function vh(i, t) { - for (const r of t) - if (_s(i, r)) return !0; - return !1 - } - - function xc(i, t) { - for (const r of i) - if (!_s(r, t)) return !1; - for (let r = 0; r < i.length - 1; ++r) - if (ip(i[r], i[r + 1], t)) return !1; - return !0 - } - - function np(i, t) { - for (const r of t) - if (xc(i, r)) return !0; - return !1 - } - - function yh(i, t, r, a) { - const c = a[0] - r[0], - p = a[1] - r[1], - f = (i[0] - r[0]) * p - c * (i[1] - r[1]), - g = (t[0] - r[0]) * p - c * (t[1] - r[1]); - return f > 0 && g < 0 || f < 0 && g > 0 - } - - function bc(i, t, r) { - const a = []; - for (let c = 0; c < i.length; c++) { - const p = []; - for (let f = 0; f < i[c].length; f++) { - const g = tp(i[c][f], r); - go(t, g), p.push(g) - } - a.push(p) - } - return a - } - - function xh(i, t, r) { - const a = []; - for (let c = 0; c < i.length; c++) { - const p = bc(i[c], t, r); - a.push(p) - } - return a - } - - function sl(i, t, r, a) { - if (i[0] < r[0] || i[0] > r[2]) { - const c = .5 * a; - let p = i[0] - r[0] > c ? -a : r[0] - i[0] > c ? a : 0; - p === 0 && (p = i[0] - r[2] > c ? -a : r[2] - i[0] > c ? a : 0), i[0] += p - } - go(t, i) - } - - function bh(i, t, r, a) { - const c = Math.pow(2, a.z) * ya, - p = [a.x * ya, a.y * ya], - f = []; - for (const g of i) - for (const v of g) { - const S = [v.x + p[0], v.y + p[1]]; - sl(S, t, r, c), f.push(S) - } - return f - } - - function wh(i, t, r, a) { - const c = Math.pow(2, a.z) * ya, - p = [a.x * ya, a.y * ya], - f = []; - for (const v of i) { - const S = []; - for (const I of v) { - const E = [I.x + p[0], I.y + p[1]]; - go(t, E), S.push(E) - } - f.push(S) - } - if (t[2] - t[0] <= c / 2) { - (g = t)[0] = g[1] = 1 / 0, g[2] = g[3] = -1 / 0; - for (const v of f) - for (const S of v) sl(S, t, r, c) - } - var g; - return f - } - class gs { - constructor(t, r) { - this.type = Gt, this.geojson = t, this.geometries = r - } - static parse(t, r) { - if (t.length !== 2) return r.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`); - if (Za(t[1])) { - const a = t[1]; - if (a.type === "FeatureCollection") { - const c = []; - for (const p of a.features) { - const { - type: f, - coordinates: g - } = p.geometry; - f === "Polygon" && c.push(g), f === "MultiPolygon" && c.push(...g) - } - if (c.length) return new gs(a, { - type: "MultiPolygon", - coordinates: c - }) - } else if (a.type === "Feature") { - const c = a.geometry.type; - if (c === "Polygon" || c === "MultiPolygon") return new gs(a, a.geometry) - } else if (a.type === "Polygon" || a.type === "MultiPolygon") return new gs(a, a) - } - return r.error("'within' expression requires valid geojson object that contains polygon geometry type.") - } - evaluate(t) { - if (t.geometry() != null && t.canonicalID() != null) { - if (t.geometryType() === "Point") return (function(r, a) { - const c = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - p = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - f = r.canonicalID(); - if (a.type === "Polygon") { - const g = bc(a.coordinates, p, f), - v = bh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!_s(S, g)) return !1 - } - if (a.type === "MultiPolygon") { - const g = xh(a.coordinates, p, f), - v = bh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!vh(S, g)) return !1 - } - return !0 - })(t, this.geometries); - if (t.geometryType() === "LineString") return (function(r, a) { - const c = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - p = [1 / 0, 1 / 0, -1 / 0, -1 / 0], - f = r.canonicalID(); - if (a.type === "Polygon") { - const g = bc(a.coordinates, p, f), - v = wh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!xc(S, g)) return !1 - } - if (a.type === "MultiPolygon") { - const g = xh(a.coordinates, p, f), - v = wh(r.geometry(), c, p, f); - if (!vo(c, p)) return !1; - for (const S of v) - if (!np(S, g)) return !1 - } - return !0 - })(t, this.geometries) - } - return !1 - } - eachChild() {} - outputDefined() { - return !0 - } - } - let wc = class { - constructor(i = [], t = (r, a) => r < a ? -1 : r > a ? 1 : 0) { - if (this.data = i, this.length = this.data.length, this.compare = t, this.length > 0) - for (let r = (this.length >> 1) - 1; r >= 0; r--) this._down(r) - } - push(i) { - this.data.push(i), this._up(this.length++) - } - pop() { - if (this.length === 0) return; - const i = this.data[0], - t = this.data.pop(); - return --this.length > 0 && (this.data[0] = t, this._down(0)), i - } - peek() { - return this.data[0] - } - _up(i) { - const { - data: t, - compare: r - } = this, a = t[i]; - for (; i > 0;) { - const c = i - 1 >> 1, - p = t[c]; - if (r(a, p) >= 0) break; - t[i] = p, i = c - } - t[i] = a - } - _down(i) { - const { - data: t, - compare: r - } = this, a = this.length >> 1, c = t[i]; - for (; i < a;) { - let p = 1 + (i << 1); - const f = p + 1; - if (f < this.length && r(t[f], t[p]) < 0 && (p = f), r(t[p], c) >= 0) break; - t[i] = t[p], i = p - } - t[i] = c - } - }; - - function Tc(i, t, r = 0, a = i.length - 1, c = ap) { - for (; a > r;) { - if (a - r > 600) { - const v = a - r + 1, - S = t - r + 1, - I = Math.log(v), - E = .5 * Math.exp(2 * I / 3), - R = .5 * Math.sqrt(I * E * (v - E) / v) * (S - v / 2 < 0 ? -1 : 1); - Tc(i, t, Math.max(r, Math.floor(t - S * E / v + R)), Math.min(a, Math.floor(t + (v - S) * E / v + R)), c) - } - const p = i[t]; - let f = r, - g = a; - for (yo(i, r, t), c(i[a], p) > 0 && yo(i, r, a); f < g;) { - for (yo(i, f, g), f++, g--; c(i[f], p) < 0;) f++; - for (; c(i[g], p) > 0;) g-- - } - c(i[r], p) === 0 ? yo(i, r, g) : (g++, yo(i, g, a)), g <= t && (r = g + 1), t <= g && (a = g - 1) - } - } - - function yo(i, t, r) { - const a = i[t]; - i[t] = i[r], i[r] = a - } - - function ap(i, t) { - return i < t ? -1 : i > t ? 1 : 0 - } - - function xo(i, t) { - if (i.length <= 1) return [i]; - const r = []; - let a, c; - for (const p of i) { - const f = sp(p); - f !== 0 && (p.area = Math.abs(f), c === void 0 && (c = f < 0), c === f < 0 ? (a && r.push(a), a = [p]) : a.push(p)) - } - if (a && r.push(a), t > 1) - for (let p = 0; p < r.length; p++) r[p].length <= t || (Tc(r[p], t, 1, r[p].length - 1, Th), r[p] = r[p].slice(0, t)); - return r - } - - function Th(i, t) { - return t.area - i.area - } - - function sp(i) { - let t = 0; - for (let r, a, c = 0, p = i.length, f = p - 1; c < p; f = c++) r = i[c], a = i[f], t += (a.x - r.x) * (r.y + a.y); - return t - } - const Ch = 1 / 298.257223563, - Sh = Ch * (2 - Ch), - Cc = Math.PI / 180; - class Sc { - constructor(t) { - const r = 6378.137 * Cc * 1e3, - a = Math.cos(t * Cc), - c = 1 / (1 - Sh * (1 - a * a)), - p = Math.sqrt(c); - this.kx = r * p * a, this.ky = r * p * c * (1 - Sh) - } - distance(t, r) { - const a = this.wrap(t[0] - r[0]) * this.kx, - c = (t[1] - r[1]) * this.ky; - return Math.sqrt(a * a + c * c) - } - pointOnLine(t, r) { - let a, c, p, f, g = 1 / 0; - for (let v = 0; v < t.length - 1; v++) { - let S = t[v][0], - I = t[v][1], - E = this.wrap(t[v + 1][0] - S) * this.kx, - R = (t[v + 1][1] - I) * this.ky, - N = 0; - E === 0 && R === 0 || (N = (this.wrap(r[0] - S) * this.kx * E + (r[1] - I) * this.ky * R) / (E * E + R * R), N > 1 ? (S = t[v + 1][0], I = t[v + 1][1]) : N > 0 && (S += E / this.kx * N, I += R / this.ky * N)), E = this.wrap(r[0] - S) * this.kx, R = (r[1] - I) * this.ky; - const j = E * E + R * R; - j < g && (g = j, a = S, c = I, p = v, f = N) - } - return { - point: [a, c], - index: p, - t: Math.max(0, Math.min(1, f)) - } - } - wrap(t) { - for (; t < -180;) t += 360; - for (; t > 180;) t -= 360; - return t - } - } - - function Ph(i, t) { - return t[0] - i[0] - } - - function ol(i) { - return i[1] - i[0] + 1 - } - - function $a(i, t) { - return i[1] >= i[0] && i[1] < t - } - - function vi(i, t) { - if (i[0] > i[1]) return [null, null]; - const r = ol(i); - if (t) { - if (r === 2) return [i, null]; - const c = Math.floor(r / 2); - return [ - [i[0], i[0] + c], - [i[0] + c, i[1]] - ] - } - if (r === 1) return [i, null]; - const a = Math.floor(r / 2) - 1; - return [ - [i[0], i[0] + a], - [i[0] + a + 1, i[1]] - ] - } - - function Pc(i, t) { - if (!$a(t, i.length)) return [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - const r = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (let a = t[0]; a <= t[1]; ++a) go(r, i[a]); - return r - } - - function Ic(i) { - const t = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (const r of i) - for (const a of r) go(t, a); - return t - } - - function Ih(i) { - return i[0] !== -1 / 0 && i[1] !== -1 / 0 && i[2] !== 1 / 0 && i[3] !== 1 / 0 - } - - function Mc(i, t, r) { - if (!Ih(i) || !Ih(t)) return NaN; - let a = 0, - c = 0; - return i[2] < t[0] && (a = t[0] - i[2]), i[0] > t[2] && (a = i[0] - t[2]), i[1] > t[3] && (c = i[1] - t[3]), i[3] < t[1] && (c = t[1] - i[3]), r.distance([0, 0], [a, c]) - } - - function vs(i, t, r) { - const a = r.pointOnLine(t, i); - return r.distance(i, a.point) - } - - function Ac(i, t, r, a, c) { - const p = Math.min(vs(i, [r, a], c), vs(t, [r, a], c)), - f = Math.min(vs(r, [i, t], c), vs(a, [i, t], c)); - return Math.min(p, f) - } - - function op(i, t, r, a, c) { - if (!$a(t, i.length) || !$a(a, r.length)) return 1 / 0; - let p = 1 / 0; - for (let f = t[0]; f < t[1]; ++f) { - const g = i[f], - v = i[f + 1]; - for (let S = a[0]; S < a[1]; ++S) { - const I = r[S], - E = r[S + 1]; - if (al(g, v, I, E)) return 0; - p = Math.min(p, Ac(g, v, I, E, c)) - } - } - return p - } - - function lp(i, t, r, a, c) { - if (!$a(t, i.length) || !$a(a, r.length)) return NaN; - let p = 1 / 0; - for (let f = t[0]; f <= t[1]; ++f) - for (let g = a[0]; g <= a[1]; ++g) - if (p = Math.min(p, c.distance(i[f], r[g])), p === 0) return p; - return p - } - - function cp(i, t, r) { - if (_s(i, t, !0)) return 0; - let a = 1 / 0; - for (const c of t) { - const p = c[0], - f = c[c.length - 1]; - if (p !== f && (a = Math.min(a, vs(i, [f, p], r)), a === 0)) return a; - const g = r.pointOnLine(c, i); - if (a = Math.min(a, r.distance(i, g.point)), a === 0) return a - } - return a - } - - function up(i, t, r, a) { - if (!$a(t, i.length)) return NaN; - for (let p = t[0]; p <= t[1]; ++p) - if (_s(i[p], r, !0)) return 0; - let c = 1 / 0; - for (let p = t[0]; p < t[1]; ++p) { - const f = i[p], - g = i[p + 1]; - for (const v of r) - for (let S = 0, I = v.length, E = I - 1; S < I; E = S++) { - const R = v[E], - N = v[S]; - if (al(f, g, R, N)) return 0; - c = Math.min(c, Ac(f, g, R, N, a)) - } - } - return c - } - - function Mh(i, t) { - for (const r of i) - for (const a of r) - if (_s(a, t, !0)) return !0; - return !1 - } - - function hp(i, t, r, a = 1 / 0) { - const c = Ic(i), - p = Ic(t); - if (a !== 1 / 0 && Mc(c, p, r) >= a) return a; - if (vo(c, p)) { - if (Mh(i, t)) return 0 - } else if (Mh(t, i)) return 0; - let f = 1 / 0; - for (const g of i) - for (let v = 0, S = g.length, I = S - 1; v < S; I = v++) { - const E = g[I], - R = g[v]; - for (const N of t) - for (let j = 0, Z = N.length, Y = Z - 1; j < Z; Y = j++) { - const ae = N[Y], - ze = N[j]; - if (al(E, R, ae, ze)) return 0; - f = Math.min(f, Ac(E, R, ae, ze, r)) - } - } - return f - } - - function Ah(i, t, r, a, c, p) { - if (!p) return; - const f = Mc(Pc(a, p), c, r); - f < t && i.push([f, p, [0, 0]]) - } - - function ll(i, t, r, a, c, p, f) { - if (!p || !f) return; - const g = Mc(Pc(a, p), Pc(c, f), r); - g < t && i.push([g, p, f]) - } - - function cl(i, t, r, a, c = 1 / 0) { - let p = Math.min(a.distance(i[0], r[0][0]), c); - if (p === 0) return p; - const f = new wc([ - [0, [0, i.length - 1], - [0, 0] - ] - ], Ph), - g = Ic(r); - for (; f.length > 0;) { - const v = f.pop(); - if (v[0] >= p) continue; - const S = v[1], - I = t ? 50 : 100; - if (ol(S) <= I) { - if (!$a(S, i.length)) return NaN; - if (t) { - const E = up(i, S, r, a); - if (isNaN(E) || E === 0) return E; - p = Math.min(p, E) - } else - for (let E = S[0]; E <= S[1]; ++E) { - const R = cp(i[E], r, a); - if (p = Math.min(p, R), p === 0) return 0 - } - } else { - const E = vi(S, t); - Ah(f, p, a, i, g, E[0]), Ah(f, p, a, i, g, E[1]) - } - } - return p - } - - function ul(i, t, r, a, c, p = 1 / 0) { - let f = Math.min(p, c.distance(i[0], r[0])); - if (f === 0) return f; - const g = new wc([ - [0, [0, i.length - 1], - [0, r.length - 1] - ] - ], Ph); - for (; g.length > 0;) { - const v = g.pop(); - if (v[0] >= f) continue; - const S = v[1], - I = v[2], - E = t ? 50 : 100, - R = a ? 50 : 100; - if (ol(S) <= E && ol(I) <= R) { - if (!$a(S, i.length) && $a(I, r.length)) return NaN; - let N; - if (t && a) N = op(i, S, r, I, c), f = Math.min(f, N); - else if (t && !a) { - const j = i.slice(S[0], S[1] + 1); - for (let Z = I[0]; Z <= I[1]; ++Z) - if (N = vs(r[Z], j, c), f = Math.min(f, N), f === 0) return f - } else if (!t && a) { - const j = r.slice(I[0], I[1] + 1); - for (let Z = S[0]; Z <= S[1]; ++Z) - if (N = vs(i[Z], j, c), f = Math.min(f, N), f === 0) return f - } else N = lp(i, S, r, I, c), f = Math.min(f, N) - } else { - const N = vi(S, t), - j = vi(I, a); - ll(g, f, c, i, r, N[0], j[0]), ll(g, f, c, i, r, N[0], j[1]), ll(g, f, c, i, r, N[1], j[0]), ll(g, f, c, i, r, N[1], j[1]) - } - } - return f - } - - function kc(i) { - return i.type === "MultiPolygon" ? i.coordinates.map((t => ({ - type: "Polygon", - coordinates: t - }))) : i.type === "MultiLineString" ? i.coordinates.map((t => ({ - type: "LineString", - coordinates: t - }))) : i.type === "MultiPoint" ? i.coordinates.map((t => ({ - type: "Point", - coordinates: t - }))) : [i] - } - class ys { - constructor(t, r) { - this.type = Ke, this.geojson = t, this.geometries = r - } - static parse(t, r) { - if (t.length !== 2) return r.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`); - if (Za(t[1])) { - const a = t[1]; - if (a.type === "FeatureCollection") return new ys(a, a.features.map((c => kc(c.geometry))).flat()); - if (a.type === "Feature") return new ys(a, kc(a.geometry)); - if ("type" in a && "coordinates" in a) return new ys(a, kc(a)) - } - return r.error("'distance' expression requires valid geojson object that contains polygon geometry type.") - } - evaluate(t) { - if (t.geometry() != null && t.canonicalID() != null) { - if (t.geometryType() === "Point") return (function(r, a) { - const c = r.geometry(), - p = c.flat().map((v => nl([v.x, v.y], r.canonical))); - if (c.length === 0) return NaN; - const f = new Sc(p[0][1]); - let g = 1 / 0; - for (const v of a) { - switch (v.type) { - case "Point": - g = Math.min(g, ul(p, !1, [v.coordinates], !1, f, g)); - break; - case "LineString": - g = Math.min(g, ul(p, !1, v.coordinates, !0, f, g)); - break; - case "Polygon": - g = Math.min(g, cl(p, !1, v.coordinates, f, g)) - } - if (g === 0) return g - } - return g - })(t, this.geometries); - if (t.geometryType() === "LineString") return (function(r, a) { - const c = r.geometry(), - p = c.flat().map((v => nl([v.x, v.y], r.canonical))); - if (c.length === 0) return NaN; - const f = new Sc(p[0][1]); - let g = 1 / 0; - for (const v of a) { - switch (v.type) { - case "Point": - g = Math.min(g, ul(p, !0, [v.coordinates], !1, f, g)); - break; - case "LineString": - g = Math.min(g, ul(p, !0, v.coordinates, !0, f, g)); - break; - case "Polygon": - g = Math.min(g, cl(p, !0, v.coordinates, f, g)) - } - if (g === 0) return g - } - return g - })(t, this.geometries); - if (t.geometryType() === "Polygon") return (function(r, a) { - const c = r.geometry(); - if (c.length === 0 || c[0].length === 0) return NaN; - const p = xo(c, 0).map((v => v.map((S => S.map((I => nl([I.x, I.y], r.canonical))))))), - f = new Sc(p[0][0][0][1]); - let g = 1 / 0; - for (const v of a) - for (const S of p) { - switch (v.type) { - case "Point": - g = Math.min(g, cl([v.coordinates], !1, S, f, g)); - break; - case "LineString": - g = Math.min(g, cl(v.coordinates, !0, S, f, g)); - break; - case "Polygon": - g = Math.min(g, hp(S, v.coordinates, f, g)) - } - if (g === 0) return g - } - return g - })(t, this.geometries) - } - return NaN - } - eachChild() {} - outputDefined() { - return !0 - } - } - class bo { - constructor(t) { - this.type = fr, this.key = t - } - static parse(t, r) { - if (t.length !== 2) return r.error(`Expected 1 argument, but found ${t.length-1} instead.`); - const a = t[1]; - return a == null ? r.error("Global state property must be defined.") : typeof a != "string" ? r.error(`Global state property must be string, but found ${typeof t[1]} instead.`) : new bo(a) - } - evaluate(t) { - var r; - const a = (r = t.globals) === null || r === void 0 ? void 0 : r.globalState; - return a && Object.keys(a).length !== 0 ? gi(a, this.key) : null - } - eachChild() {} - outputDefined() { - return !1 - } - } - const Os = { - "==": gh, - "!=": tl, - ">": gc, - "<": Jd, - ">=": ep, - "<=": Qd, - array: ra, - at: Qo, - boolean: ra, - case: Bs, - coalesce: fo, - collator: rl, - format: ms, - image: yc, - in: el, - "index-of": va, - interpolate: In, - "interpolate-hcl": In, - "interpolate-lab": In, - length: il, - let: co, - literal: ga, - match: yn, - number: ra, - "number-format": vc, - object: ra, - slice: uo, - step: Gi, - string: ra, - "to-boolean": Ba, - "to-color": Ba, - "to-number": Ba, - "to-string": Ba, - var: Jo, - within: gs, - distance: ys, - "global-state": bo - }; - class ca { - constructor(t, r, a, c) { - this.name = t, this.type = r, this._evaluate = a, this.args = c - } - evaluate(t) { - return this._evaluate(t, this.args) - } - eachChild(t) { - this.args.forEach(t) - } - outputDefined() { - return !1 - } - static parse(t, r) { - const a = t[0], - c = ca.definitions[a]; - if (!c) return r.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`, 0); - const p = Array.isArray(c) ? c[0] : c.type, - f = Array.isArray(c) ? [ - [c[1], c[2]] - ] : c.overloads, - g = f.filter((([S]) => !Array.isArray(S) || S.length === t.length - 1)); - let v = null; - for (const [S, I] of g) { - v = new Rs(r.registry, hl, r.path, null, r.scope); - const E = []; - let R = !1; - for (let N = 1; N < t.length; N++) { - const j = t[N], - Z = Array.isArray(S) ? S[N - 1] : S.type, - Y = v.parse(j, 1 + E.length, Z); - if (!Y) { - R = !0; - break - } - E.push(Y) - } - if (!R) - if (Array.isArray(S) && S.length !== E.length) v.error(`Expected ${S.length} arguments, but found ${E.length} instead.`); - else { - for (let N = 0; N < E.length; N++) { - const j = Array.isArray(S) ? S[N] : S.type, - Z = E[N]; - v.concat(N + 1).checkSubtype(j, Z.type) - } - if (v.errors.length === 0) return new ca(a, p, I, E) - } - } - if (g.length === 1) r.errors.push(...v.errors); - else { - const S = (g.length ? g : f).map((([E]) => { - return R = E, Array.isArray(R) ? `(${R.map(Yr).join(", ")})` : `(${Yr(R.type)}...)`; - var R - })).join(" | "), - I = []; - for (let E = 1; E < t.length; E++) { - const R = r.parse(t[E], 1 + I.length); - if (!R) return null; - I.push(Yr(R.type)) - } - r.error(`Expected arguments of type ${S}, but found (${I.join(", ")}) instead.`) - } - return null - } - static register(t, r) { - ca.definitions = r; - for (const a in r) t[a] = ca - } - } - - function kh(i, [t, r, a, c]) { - t = t.evaluate(i), r = r.evaluate(i), a = a.evaluate(i); - const p = c ? c.evaluate(i) : 1, - f = Ti(t, r, a, p); - if (f) throw new wi(f); - return new yr(t / 255, r / 255, a / 255, p, !1) - } - - function Eh(i, t) { - return i in t - } - - function Ec(i, t) { - const r = t[i]; - return r === void 0 ? null : r - } - - function xs(i) { - return { - type: i - } - } - - function hl(i) { - if (i instanceof Jo) return hl(i.boundExpression); - if (i instanceof ca && i.name === "error" || i instanceof rl || i instanceof gs || i instanceof ys || i instanceof bo) return !1; - const t = i instanceof Ba || i instanceof ra; - let r = !0; - return i.eachChild((a => { - r = t ? r && hl(a) : r && a instanceof ga - })), !!r && dl(i) && pl(i, ["zoom", "heatmap-density", "elevation", "line-progress", "accumulated", "is-supported-script"]) - } - - function dl(i) { - if (i instanceof ca && (i.name === "get" && i.args.length === 1 || i.name === "feature-state" || i.name === "has" && i.args.length === 1 || i.name === "properties" || i.name === "geometry-type" || i.name === "id" || /^filter-/.test(i.name)) || i instanceof gs || i instanceof ys) return !1; - let t = !0; - return i.eachChild((r => { - t && !dl(r) && (t = !1) - })), t - } - - function wo(i) { - if (i instanceof ca && i.name === "feature-state") return !1; - let t = !0; - return i.eachChild((r => { - t && !wo(r) && (t = !1) - })), t - } - - function pl(i, t) { - if (i instanceof ca && t.indexOf(i.name) >= 0) return !1; - let r = !0; - return i.eachChild((a => { - r && !pl(a, t) && (r = !1) - })), r - } - - function zh(i) { - return { - result: "success", - value: i - } - } - - function Ns(i) { - return { - result: "error", - value: i - } - } - - function rs(i) { - return i["property-type"] === "data-driven" || i["property-type"] === "cross-faded-data-driven" - } - - function Lh(i) { - return !!i.expression && i.expression.parameters.indexOf("zoom") > -1 - } - - function zc(i) { - return !!i.expression && i.expression.interpolated - } - - function ii(i) { - return i instanceof Number ? "number" : i instanceof String ? "string" : i instanceof Boolean ? "boolean" : Array.isArray(i) ? "array" : i === null ? "null" : typeof i - } - - function To(i) { - return typeof i == "object" && i !== null && !Array.isArray(i) && wr(i) === li - } - - function dp(i) { - return i - } - - function Dh(i, t) { - const r = i.stops && typeof i.stops[0][0] == "object", - a = r || !(r || i.property !== void 0), - c = i.type || (zc(t) ? "exponential" : "interval"), - p = (function(I) { - switch (I.type) { - case "color": - return yr.parse; - case "padding": - return Ki.parse; - case "numberArray": - return cn.parse; - case "colorArray": - return Ni.parse; - default: - return null - } - })(t); - if (p && ((i = Ci({}, i)).stops && (i.stops = i.stops.map((I => [I[0], p(I[1])]))), i.default = p(i.default ? i.default : t.default)), i.colorSpace && (f = i.colorSpace) !== "rgb" && f !== "hcl" && f !== "lab") throw new Error(`Unknown color space: "${i.colorSpace}"`); - var f; - const g = (function(I) { - switch (I) { - case "exponential": - return Bh; - case "interval": - return pp; - case "categorical": - return Rh; - case "identity": - return fp; - default: - throw new Error(`Unknown function type "${I}"`) - } - })(c); - let v, S; - if (c === "categorical") { - v = Object.create(null); - for (const I of i.stops) v[I[0]] = I[1]; - S = typeof i.stops[0][0] - } - if (r) { - const I = {}, - E = []; - for (let j = 0; j < i.stops.length; j++) { - const Z = i.stops[j], - Y = Z[0].zoom; - I[Y] === void 0 && (I[Y] = { - zoom: Y, - type: i.type, - property: i.property, - default: i.default, - stops: [] - }, E.push(Y)), I[Y].stops.push([Z[0].value, Z[1]]) - } - const R = []; - for (const j of E) R.push([I[j].zoom, Dh(I[j], t)]); - const N = { - name: "linear" - }; - return { - kind: "composite", - interpolationType: N, - interpolationFactor: In.interpolationFactor.bind(void 0, N), - zoomStops: R.map((j => j[0])), - evaluate: ({ - zoom: j - }, Z) => Bh({ - stops: R, - base: i.base - }, t, j).evaluate(j, Z) - } - } - if (a) { - const I = c === "exponential" ? { - name: "exponential", - base: i.base !== void 0 ? i.base : 1 - } : null; - return { - kind: "camera", - interpolationType: I, - interpolationFactor: In.interpolationFactor.bind(void 0, I), - zoomStops: i.stops.map((E => E[0])), - evaluate: ({ - zoom: E - }) => g(i, t, E, v, S) - } - } - return { - kind: "source", - evaluate(I, E) { - const R = E && E.properties ? E.properties[i.property] : void 0; - return R === void 0 ? is(i.default, t.default) : g(i, t, R, v, S) - } - } - } - - function is(i, t, r) { - return i !== void 0 ? i : t !== void 0 ? t : r !== void 0 ? r : void 0 - } - - function Rh(i, t, r, a, c) { - return is(typeof r === c ? a[r] : void 0, i.default, t.default) - } - - function pp(i, t, r) { - if (ii(r) !== "number") return is(i.default, t.default); - const a = i.stops.length; - if (a === 1 || r <= i.stops[0][0]) return i.stops[0][1]; - if (r >= i.stops[a - 1][0]) return i.stops[a - 1][1]; - const c = fs(i.stops.map((p => p[0])), r); - return i.stops[c][1] - } - - function Bh(i, t, r) { - const a = i.base !== void 0 ? i.base : 1; - if (ii(r) !== "number") return is(i.default, t.default); - const c = i.stops.length; - if (c === 1 || r <= i.stops[0][0]) return i.stops[0][1]; - if (r >= i.stops[c - 1][0]) return i.stops[c - 1][1]; - const p = fs(i.stops.map((I => I[0])), r), - f = (function(I, E, R, N) { - const j = N - R, - Z = I - R; - return j === 0 ? 0 : E === 1 ? Z / j : (Math.pow(E, Z) - 1) / (Math.pow(E, j) - 1) - })(r, a, i.stops[p][0], i.stops[p + 1][0]), - g = i.stops[p][1], - v = i.stops[p + 1][1], - S = Fa[t.type] || dp; - return typeof g.evaluate == "function" ? { - evaluate(...I) { - const E = g.evaluate.apply(void 0, I), - R = v.evaluate.apply(void 0, I); - if (E !== void 0 && R !== void 0) return S(E, R, f, i.colorSpace) - } - } : S(g, v, f, i.colorSpace) - } - - function fp(i, t, r) { - switch (t.type) { - case "color": - r = yr.parse(r); - break; - case "formatted": - r = ln.fromString(r.toString()); - break; - case "resolvedImage": - r = Nn.fromString(r.toString()); - break; - case "padding": - r = Ki.parse(r); - break; - case "colorArray": - r = Ni.parse(r); - break; - case "numberArray": - r = cn.parse(r); - break; - default: - ii(r) === t.type || t.type === "enum" && t.values[r] || (r = void 0) - } - return is(r, i.default, t.default) - } - ca.register(Os, { - error: [{ - kind: "error" - }, - [jt], (i, [t]) => { - throw new wi(t.evaluate(i)) - } - ], - typeof: [jt, [fr], (i, [t]) => Yr(wr(t.evaluate(i)))], - "to-rgba": [Qr(Ke, 4), [Dr], (i, [t]) => { - const [r, a, c, p] = t.evaluate(i).rgb; - return [255 * r, 255 * a, 255 * c, p] - }], - rgb: [Dr, [Ke, Ke, Ke], kh], - rgba: [Dr, [Ke, Ke, Ke, Ke], kh], - has: { - type: Gt, - overloads: [ - [ - [jt], (i, [t]) => Eh(t.evaluate(i), i.properties()) - ], - [ - [jt, li], (i, [t, r]) => Eh(t.evaluate(i), r.evaluate(i)) - ] - ] - }, - get: { - type: fr, - overloads: [ - [ - [jt], (i, [t]) => Ec(t.evaluate(i), i.properties()) - ], - [ - [jt, li], (i, [t, r]) => Ec(t.evaluate(i), r.evaluate(i)) - ] - ] - }, - "feature-state": [fr, [jt], (i, [t]) => Ec(t.evaluate(i), i.featureState || {})], - properties: [li, [], i => i.properties()], - "geometry-type": [jt, [], i => i.geometryType()], - id: [fr, [], i => i.id()], - zoom: [Ke, [], i => i.globals.zoom], - "heatmap-density": [Ke, [], i => i.globals.heatmapDensity || 0], - elevation: [Ke, [], i => i.globals.elevation || 0], - "line-progress": [Ke, [], i => i.globals.lineProgress || 0], - accumulated: [fr, [], i => i.globals.accumulated === void 0 ? null : i.globals.accumulated], - "+": [Ke, xs(Ke), (i, t) => { - let r = 0; - for (const a of t) r += a.evaluate(i); - return r - }], - "*": [Ke, xs(Ke), (i, t) => { - let r = 1; - for (const a of t) r *= a.evaluate(i); - return r - }], - "-": { - type: Ke, - overloads: [ - [ - [Ke, Ke], (i, [t, r]) => t.evaluate(i) - r.evaluate(i) - ], - [ - [Ke], (i, [t]) => -t.evaluate(i) - ] - ] - }, - "/": [Ke, [Ke, Ke], (i, [t, r]) => t.evaluate(i) / r.evaluate(i)], - "%": [Ke, [Ke, Ke], (i, [t, r]) => t.evaluate(i) % r.evaluate(i)], - ln2: [Ke, [], () => Math.LN2], - pi: [Ke, [], () => Math.PI], - e: [Ke, [], () => Math.E], - "^": [Ke, [Ke, Ke], (i, [t, r]) => Math.pow(t.evaluate(i), r.evaluate(i))], - sqrt: [Ke, [Ke], (i, [t]) => Math.sqrt(t.evaluate(i))], - log10: [Ke, [Ke], (i, [t]) => Math.log(t.evaluate(i)) / Math.LN10], - ln: [Ke, [Ke], (i, [t]) => Math.log(t.evaluate(i))], - log2: [Ke, [Ke], (i, [t]) => Math.log(t.evaluate(i)) / Math.LN2], - sin: [Ke, [Ke], (i, [t]) => Math.sin(t.evaluate(i))], - cos: [Ke, [Ke], (i, [t]) => Math.cos(t.evaluate(i))], - tan: [Ke, [Ke], (i, [t]) => Math.tan(t.evaluate(i))], - asin: [Ke, [Ke], (i, [t]) => Math.asin(t.evaluate(i))], - acos: [Ke, [Ke], (i, [t]) => Math.acos(t.evaluate(i))], - atan: [Ke, [Ke], (i, [t]) => Math.atan(t.evaluate(i))], - min: [Ke, xs(Ke), (i, t) => Math.min(...t.map((r => r.evaluate(i))))], - max: [Ke, xs(Ke), (i, t) => Math.max(...t.map((r => r.evaluate(i))))], - abs: [Ke, [Ke], (i, [t]) => Math.abs(t.evaluate(i))], - round: [Ke, [Ke], (i, [t]) => { - const r = t.evaluate(i); - return r < 0 ? -Math.round(-r) : Math.round(r) - }], - floor: [Ke, [Ke], (i, [t]) => Math.floor(t.evaluate(i))], - ceil: [Ke, [Ke], (i, [t]) => Math.ceil(t.evaluate(i))], - "filter-==": [Gt, [jt, fr], (i, [t, r]) => i.properties()[t.value] === r.value], - "filter-id-==": [Gt, [fr], (i, [t]) => i.id() === t.value], - "filter-type-==": [Gt, [jt], (i, [t]) => i.geometryType() === t.value], - "filter-<": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a < c - }], - "filter-id-<": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r < a - }], - "filter->": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a > c - }], - "filter-id->": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r > a - }], - "filter-<=": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a <= c - }], - "filter-id-<=": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r <= a - }], - "filter->=": [Gt, [jt, fr], (i, [t, r]) => { - const a = i.properties()[t.value], - c = r.value; - return typeof a == typeof c && a >= c - }], - "filter-id->=": [Gt, [fr], (i, [t]) => { - const r = i.id(), - a = t.value; - return typeof r == typeof a && r >= a - }], - "filter-has": [Gt, [fr], (i, [t]) => t.value in i.properties()], - "filter-has-id": [Gt, [], i => i.id() !== null && i.id() !== void 0], - "filter-type-in": [Gt, [Qr(jt)], (i, [t]) => t.value.indexOf(i.geometryType()) >= 0], - "filter-id-in": [Gt, [Qr(fr)], (i, [t]) => t.value.indexOf(i.id()) >= 0], - "filter-in-small": [Gt, [jt, Qr(fr)], (i, [t, r]) => r.value.indexOf(i.properties()[t.value]) >= 0], - "filter-in-large": [Gt, [jt, Qr(fr)], (i, [t, r]) => (function(a, c, p, f) { - for (; p <= f;) { - const g = p + f >> 1; - if (c[g] === a) return !0; - c[g] > a ? f = g - 1 : p = g + 1 - } - return !1 - })(i.properties()[t.value], r.value, 0, r.value.length - 1)], - all: { - type: Gt, - overloads: [ - [ - [Gt, Gt], (i, [t, r]) => t.evaluate(i) && r.evaluate(i) - ], - [xs(Gt), (i, t) => { - for (const r of t) - if (!r.evaluate(i)) return !1; - return !0 - }] - ] - }, - any: { - type: Gt, - overloads: [ - [ - [Gt, Gt], (i, [t, r]) => t.evaluate(i) || r.evaluate(i) - ], - [xs(Gt), (i, t) => { - for (const r of t) - if (r.evaluate(i)) return !0; - return !1 - }] - ] - }, - "!": [Gt, [Gt], (i, [t]) => !t.evaluate(i)], - "is-supported-script": [Gt, [jt], (i, [t]) => { - const r = i.globals && i.globals.isSupportedScript; - return !r || r(t.evaluate(i)) - }], - upcase: [jt, [jt], (i, [t]) => t.evaluate(i).toUpperCase()], - downcase: [jt, [jt], (i, [t]) => t.evaluate(i).toLowerCase()], - concat: [jt, xs(fr), (i, t) => t.map((r => Vr(r.evaluate(i)))).join("")], - "resolved-locale": [jt, [bi], (i, [t]) => t.evaluate(i).resolvedLocale()] - }); - class Lc { - constructor(t, r) { - this.expression = t, this._warningHistory = {}, this._evaluator = new mc, this._defaultValue = r ? (function(a) { - if (a.type === "color" && To(a.default)) return new yr(0, 0, 0, 0); - switch (a.type) { - case "color": - return yr.parse(a.default) || null; - case "padding": - return Ki.parse(a.default) || null; - case "numberArray": - return cn.parse(a.default) || null; - case "colorArray": - return Ni.parse(a.default) || null; - case "variableAnchorOffsetCollection": - return un.parse(a.default) || null; - case "projectionDefinition": - return hn.parse(a.default) || null; - default: - return a.default === void 0 ? null : a.default - } - })(r) : null, this._enumValues = r && r.type === "enum" ? r.values : null - } - evaluateWithoutErrorHandling(t, r, a, c, p, f) { - return this._evaluator.globals = t, this._evaluator.feature = r, this._evaluator.featureState = a, this._evaluator.canonical = c, this._evaluator.availableImages = p || null, this._evaluator.formattedSection = f, this.expression.evaluate(this._evaluator) - } - evaluate(t, r, a, c, p, f) { - this._evaluator.globals = t, this._evaluator.feature = r || null, this._evaluator.featureState = a || null, this._evaluator.canonical = c, this._evaluator.availableImages = p || null, this._evaluator.formattedSection = f || null; - try { - const g = this.expression.evaluate(this._evaluator); - if (g == null || typeof g == "number" && g != g) return this._defaultValue; - if (this._enumValues && !(g in this._enumValues)) throw new wi(`Expected value to be one of ${Object.keys(this._enumValues).map((v=>JSON.stringify(v))).join(", ")}, but found ${JSON.stringify(g)} instead.`); - return g - } catch (g) { - return this._warningHistory[g.message] || (this._warningHistory[g.message] = !0, typeof console < "u" && console.warn(g.message)), this._defaultValue - } - } - } - - function fl(i) { - return Array.isArray(i) && i.length > 0 && typeof i[0] == "string" && i[0] in Os - } - - function Co(i, t) { - const r = new Rs(Os, hl, [], t ? (function(c) { - const p = { - color: Dr, - string: jt, - number: Ke, - enum: jt, - boolean: Gt, - formatted: Si, - padding: zi, - numberArray: Li, - colorArray: mi, - projectionDefinition: Gr, - resolvedImage: rr, - variableAnchorOffsetCollection: yi - }; - return c.type === "array" ? Qr(p[c.value] || fr, c.length) : p[c.type] - })(t) : void 0), - a = r.parse(i, void 0, void 0, void 0, t && t.type === "string" ? { - typeAnnotation: "coerce" - } : void 0); - return a ? zh(new Lc(a, t)) : Ns(r.errors) - } - class So { - constructor(t, r) { - this.kind = t, this._styleExpression = r, this.isStateDependent = t !== "constant" && !wo(r.expression), this.globalStateRefs = Mo(r.expression) - } - evaluateWithoutErrorHandling(t, r, a, c, p, f) { - return this._styleExpression.evaluateWithoutErrorHandling(t, r, a, c, p, f) - } - evaluate(t, r, a, c, p, f) { - return this._styleExpression.evaluate(t, r, a, c, p, f) - } - } - class Dc { - constructor(t, r, a, c) { - this.kind = t, this.zoomStops = a, this._styleExpression = r, this.isStateDependent = t !== "camera" && !wo(r.expression), this.globalStateRefs = Mo(r.expression), this.interpolationType = c - } - evaluateWithoutErrorHandling(t, r, a, c, p, f) { - return this._styleExpression.evaluateWithoutErrorHandling(t, r, a, c, p, f) - } - evaluate(t, r, a, c, p, f) { - return this._styleExpression.evaluate(t, r, a, c, p, f) - } - interpolationFactor(t, r, a) { - return this.interpolationType ? In.interpolationFactor(this.interpolationType, t, r, a) : 0 - } - } - - function Fh(i, t) { - const r = Co(i, t); - if (r.result === "error") return r; - const a = r.value.expression, - c = dl(a); - if (!c && !rs(t)) return Ns([new di("", "data expressions not supported")]); - const p = pl(a, ["zoom"]); - if (!p && !Lh(t)) return Ns([new di("", "zoom expressions not supported")]); - const f = Io(a); - return f || p ? f instanceof di ? Ns([f]) : f instanceof In && !zc(t) ? Ns([new di("", '"interpolate" expressions cannot be used with this property')]) : zh(f ? new Dc(c ? "camera" : "composite", r.value, f.labels, f instanceof In ? f.interpolation : void 0) : new So(c ? "constant" : "source", r.value)) : Ns([new di("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]) - } - class Po { - constructor(t, r) { - this._parameters = t, this._specification = r, Ci(this, Dh(this._parameters, this._specification)) - } - static deserialize(t) { - return new Po(t._parameters, t._specification) - } - static serialize(t) { - return { - _parameters: t._parameters, - _specification: t._specification - } - } - } - - function Io(i) { - let t = null; - if (i instanceof co) t = Io(i.result); - else if (i instanceof fo) { - for (const r of i.args) - if (t = Io(r), t) break - } else(i instanceof Gi || i instanceof In) && i.input instanceof ca && i.input.name === "zoom" && (t = i); - return t instanceof di || i.eachChild((r => { - const a = Io(r); - a instanceof di ? t = a : !t && a ? t = new di("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : t && a && t !== a && (t = new di("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.')) - })), t - } - - function Mo(i, t = new Set) { - return i instanceof bo && t.add(i.key), i.eachChild((r => { - Mo(r, t) - })), t - } - - function ml(i) { - if (i === !0 || i === !1) return !0; - if (!Array.isArray(i) || i.length === 0) return !1; - switch (i[0]) { - case "has": - return i.length >= 2 && i[1] !== "$id" && i[1] !== "$type"; - case "in": - return i.length >= 3 && (typeof i[1] != "string" || Array.isArray(i[2])); - case "!in": - case "!has": - case "none": - return !1; - case "==": - case "!=": - case ">": - case ">=": - case "<": - case "<=": - return i.length !== 3 || Array.isArray(i[1]) || Array.isArray(i[2]); - case "any": - case "all": - for (const t of i.slice(1)) - if (!ml(t) && typeof t != "boolean") return !1; - return !0; - default: - return !0 - } - } - const Rc = { - type: "boolean", - default: !1, - transition: !1, - "property-type": "data-driven", - expression: { - interpolated: !1, - parameters: ["zoom", "feature"] - } - }; - - function bs(i) { - if (i == null) return { - filter: () => !0, - needGeometry: !1, - getGlobalStateRefs: () => new Set - }; - ml(i) || (i = ws(i)); - const t = Co(i, Rc); - if (t.result === "error") throw new Error(t.value.map((r => `${r.key}: ${r.message}`)).join(", ")); - return { - filter: (r, a, c) => t.value.evaluate(r, a, {}, c), - needGeometry: _l(i), - getGlobalStateRefs: () => Mo(t.value.expression) - } - } - - function Bc(i, t) { - return i < t ? -1 : i > t ? 1 : 0 - } - - function _l(i) { - if (!Array.isArray(i)) return !1; - if (i[0] === "within" || i[0] === "distance") return !0; - for (let t = 1; t < i.length; t++) - if (_l(i[t])) return !0; - return !1 - } - - function ws(i) { - if (!i) return !0; - const t = i[0]; - return i.length <= 1 ? t !== "any" : t === "==" ? Fc(i[1], i[2], "==") : t === "!=" ? gl(Fc(i[1], i[2], "==")) : t === "<" || t === ">" || t === "<=" || t === ">=" ? Fc(i[1], i[2], t) : t === "any" ? (r = i.slice(1), ["any"].concat(r.map(ws))) : t === "all" ? ["all"].concat(i.slice(1).map(ws)) : t === "none" ? ["all"].concat(i.slice(1).map(ws).map(gl)) : t === "in" ? Oh(i[1], i.slice(2)) : t === "!in" ? gl(Oh(i[1], i.slice(2))) : t === "has" ? Nh(i[1]) : t !== "!has" || gl(Nh(i[1])); - var r - } - - function Fc(i, t, r) { - switch (i) { - case "$type": - return [`filter-type-${r}`, t]; - case "$id": - return [`filter-id-${r}`, t]; - default: - return [`filter-${r}`, i, t] - } - } - - function Oh(i, t) { - if (t.length === 0) return !1; - switch (i) { - case "$type": - return ["filter-type-in", ["literal", t]]; - case "$id": - return ["filter-id-in", ["literal", t]]; - default: - return t.length > 200 && !t.some((r => typeof r != typeof t[0])) ? ["filter-in-large", i, ["literal", t.sort(Bc)]] : ["filter-in-small", i, ["literal", t]] - } - } - - function Nh(i) { - switch (i) { - case "$type": - return !0; - case "$id": - return ["filter-has-id"]; - default: - return ["filter-has", i] - } - } - - function gl(i) { - return ["!", i] - } - - function Oc(i) { - const t = typeof i; - if (t === "number" || t === "boolean" || t === "string" || i == null) return JSON.stringify(i); - if (Array.isArray(i)) { - let c = "["; - for (const p of i) c += `${Oc(p)},`; - return `${c}]` - } - const r = Object.keys(i).sort(); - let a = "{"; - for (let c = 0; c < r.length; c++) a += `${JSON.stringify(r[c])}:${Oc(i[r[c]])},`; - return `${a}}` - } - - function mp(i) { - let t = ""; - for (const r of At) t += `/${Oc(i[r])}`; - return t - } - - function Nc(i) { - const t = i.value; - return t ? [new Tt(i.key, t, "constants have been deprecated as of v8")] : [] - } - - function Vi(i) { - return i instanceof Number || i instanceof String || i instanceof Boolean ? i.valueOf() : i - } - - function Oa(i) { - if (Array.isArray(i)) return i.map(Oa); - if (i instanceof Object && !(i instanceof Number || i instanceof String || i instanceof Boolean)) { - const t = {}; - for (const r in i) t[r] = Oa(i[r]); - return t - } - return Vi(i) - } - - function ua(i) { - const t = i.key, - r = i.value, - a = i.valueSpec || {}, - c = i.objectElementValidators || {}, - p = i.style, - f = i.styleSpec, - g = i.validateSpec; - let v = []; - const S = ii(r); - if (S !== "object") return [new Tt(t, r, `object expected, ${S} found`)]; - for (const I in r) { - const E = I.split(".")[0], - R = gi(a, E) || a["*"]; - let N; - if (gi(c, E)) N = c[E]; - else if (gi(a, E)) N = g; - else if (c["*"]) N = c["*"]; - else { - if (!a["*"]) { - v.push(new Tt(t, r[I], `unknown property "${I}"`)); - continue - } - N = g - } - v = v.concat(N({ - key: (t && `${t}.`) + I, - value: r[I], - valueSpec: R, - style: p, - styleSpec: f, - object: r, - objectKey: I, - validateSpec: g - }, r)) - } - for (const I in a) c[I] || a[I].required && a[I].default === void 0 && r[I] === void 0 && v.push(new Tt(t, r, `missing required property "${I}"`)); - return v - } - - function vl(i) { - const t = i.value, - r = i.valueSpec, - a = i.style, - c = i.styleSpec, - p = i.key, - f = i.arrayElementValidator || i.validateSpec; - if (ii(t) !== "array") return [new Tt(p, t, `array expected, ${ii(t)} found`)]; - if (r.length && t.length !== r.length) return [new Tt(p, t, `array length ${r.length} expected, length ${t.length} found`)]; - if (r["min-length"] && t.length < r["min-length"]) return [new Tt(p, t, `array length at least ${r["min-length"]} expected, length ${t.length} found`)]; - let g = { - type: r.value, - values: r.values - }; - c.$version < 7 && (g.function = r.function), ii(r.value) === "object" && (g = r.value); - let v = []; - for (let S = 0; S < t.length; S++) v = v.concat(f({ - array: t, - arrayIndex: S, - value: t[S], - valueSpec: g, - validateSpec: i.validateSpec, - style: a, - styleSpec: c, - key: `${p}[${S}]` - })); - return v - } - - function Ao(i) { - const t = i.key, - r = i.value, - a = i.valueSpec; - let c = ii(r); - return c === "number" && r != r && (c = "NaN"), c !== "number" ? [new Tt(t, r, `number expected, ${c} found`)] : "minimum" in a && r < a.minimum ? [new Tt(t, r, `${r} is less than the minimum value ${a.minimum}`)] : "maximum" in a && r > a.maximum ? [new Tt(t, r, `${r} is greater than the maximum value ${a.maximum}`)] : [] - } - - function jh(i) { - const t = i.valueSpec, - r = Vi(i.value.type); - let a, c, p, f = {}; - const g = r !== "categorical" && i.value.property === void 0, - v = !g, - S = ii(i.value.stops) === "array" && ii(i.value.stops[0]) === "array" && ii(i.value.stops[0][0]) === "object", - I = ua({ - key: i.key, - value: i.value, - valueSpec: i.styleSpec.function, - validateSpec: i.validateSpec, - style: i.style, - styleSpec: i.styleSpec, - objectElementValidators: { - stops: function(N) { - if (r === "identity") return [new Tt(N.key, N.value, 'identity function may not have a "stops" property')]; - let j = []; - const Z = N.value; - return j = j.concat(vl({ - key: N.key, - value: Z, - valueSpec: N.valueSpec, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec, - arrayElementValidator: E - })), ii(Z) === "array" && Z.length === 0 && j.push(new Tt(N.key, Z, "array must have at least one stop")), j - }, - default: function(N) { - return N.validateSpec({ - key: N.key, - value: N.value, - valueSpec: t, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec - }) - } - } - }); - return r === "identity" && g && I.push(new Tt(i.key, i.value, 'missing required property "property"')), r === "identity" || i.value.stops || I.push(new Tt(i.key, i.value, 'missing required property "stops"')), r === "exponential" && i.valueSpec.expression && !zc(i.valueSpec) && I.push(new Tt(i.key, i.value, "exponential functions not supported")), i.styleSpec.$version >= 8 && (v && !rs(i.valueSpec) ? I.push(new Tt(i.key, i.value, "property functions not supported")) : g && !Lh(i.valueSpec) && I.push(new Tt(i.key, i.value, "zoom functions not supported"))), r !== "categorical" && !S || i.value.property !== void 0 || I.push(new Tt(i.key, i.value, '"property" property is required')), I; - - function E(N) { - let j = []; - const Z = N.value, - Y = N.key; - if (ii(Z) !== "array") return [new Tt(Y, Z, `array expected, ${ii(Z)} found`)]; - if (Z.length !== 2) return [new Tt(Y, Z, `array length 2 expected, length ${Z.length} found`)]; - if (S) { - if (ii(Z[0]) !== "object") return [new Tt(Y, Z, `object expected, ${ii(Z[0])} found`)]; - if (Z[0].zoom === void 0) return [new Tt(Y, Z, "object stop key must have zoom")]; - if (Z[0].value === void 0) return [new Tt(Y, Z, "object stop key must have value")]; - if (p && p > Vi(Z[0].zoom)) return [new Tt(Y, Z[0].zoom, "stop zoom values must appear in ascending order")]; - Vi(Z[0].zoom) !== p && (p = Vi(Z[0].zoom), c = void 0, f = {}), j = j.concat(ua({ - key: `${Y}[0]`, - value: Z[0], - valueSpec: { - zoom: {} - }, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec, - objectElementValidators: { - zoom: Ao, - value: R - } - })) - } else j = j.concat(R({ - key: `${Y}[0]`, - value: Z[0], - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec - }, Z)); - return fl(Oa(Z[1])) ? j.concat([new Tt(`${Y}[1]`, Z[1], "expressions are not allowed in function stops.")]) : j.concat(N.validateSpec({ - key: `${Y}[1]`, - value: Z[1], - valueSpec: t, - validateSpec: N.validateSpec, - style: N.style, - styleSpec: N.styleSpec - })) - } - - function R(N, j) { - const Z = ii(N.value), - Y = Vi(N.value), - ae = N.value !== null ? N.value : j; - if (a) { - if (Z !== a) return [new Tt(N.key, ae, `${Z} stop domain type must match previous stop domain type ${a}`)] - } else a = Z; - if (Z !== "number" && Z !== "string" && Z !== "boolean") return [new Tt(N.key, ae, "stop domain value must be a number, string, or boolean")]; - if (Z !== "number" && r !== "categorical") { - let ze = `number expected, ${Z} found`; - return rs(t) && r === void 0 && (ze += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new Tt(N.key, ae, ze)] - } - return r !== "categorical" || Z !== "number" || isFinite(Y) && Math.floor(Y) === Y ? r !== "categorical" && Z === "number" && c !== void 0 && Y < c ? [new Tt(N.key, ae, "stop domain values must appear in ascending order")] : (c = Y, r === "categorical" && Y in f ? [new Tt(N.key, ae, "stop domain values must be unique")] : (f[Y] = !0, [])) : [new Tt(N.key, ae, `integer expected, found ${Y}`)] - } - } - - function Ts(i) { - const t = (i.expressionContext === "property" ? Fh : Co)(Oa(i.value), i.valueSpec); - if (t.result === "error") return t.value.map((a => new Tt(`${i.key}${a.key}`, i.value, a.message))); - const r = t.value.expression || t.value._styleExpression.expression; - if (i.expressionContext === "property" && i.propertyKey === "text-font" && !r.outputDefined()) return [new Tt(i.key, i.value, `Invalid data expression for "${i.propertyKey}". Output values must be contained as literals within the expression.`)]; - if (i.expressionContext === "property" && i.propertyType === "layout" && !wo(r)) return [new Tt(i.key, i.value, '"feature-state" data expressions are not supported with layout properties.')]; - if (i.expressionContext === "filter" && !wo(r)) return [new Tt(i.key, i.value, '"feature-state" data expressions are not supported with filters.')]; - if (i.expressionContext && i.expressionContext.indexOf("cluster") === 0) { - if (!pl(r, ["zoom", "feature-state"])) return [new Tt(i.key, i.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')]; - if (i.expressionContext === "cluster-initial" && !dl(r)) return [new Tt(i.key, i.value, "Feature data expressions are not supported with initial expression part of cluster properties.")] - } - return [] - } - - function yl(i) { - const t = i.key, - r = i.value, - a = ii(r); - return a !== "string" ? [new Tt(t, r, `color expected, ${a} found`)] : yr.parse(String(r)) ? [] : [new Tt(t, r, `color expected, "${r}" found`)] - } - - function Ga(i) { - const t = i.key, - r = i.value, - a = i.valueSpec, - c = []; - return Array.isArray(a.values) ? a.values.indexOf(Vi(r)) === -1 && c.push(new Tt(t, r, `expected one of [${a.values.join(", ")}], ${JSON.stringify(r)} found`)) : Object.keys(a.values).indexOf(Vi(r)) === -1 && c.push(new Tt(t, r, `expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(r)} found`)), c - } - - function jc(i) { - return ml(Oa(i.value)) ? Ts(Ci({}, i, { - expressionContext: "filter", - valueSpec: { - value: "boolean" - } - })) : qh(i) - } - - function qh(i) { - const t = i.value, - r = i.key; - if (ii(t) !== "array") return [new Tt(r, t, `array expected, ${ii(t)} found`)]; - const a = i.styleSpec; - let c, p = []; - if (t.length < 1) return [new Tt(r, t, "filter array must have at least 1 element")]; - switch (p = p.concat(Ga({ - key: `${r}[0]`, - value: t[0], - valueSpec: a.filter_operator, - style: i.style, - styleSpec: i.styleSpec - })), Vi(t[0])) { - case "<": - case "<=": - case ">": - case ">=": - t.length >= 2 && Vi(t[1]) === "$type" && p.push(new Tt(r, t, `"$type" cannot be use with operator "${t[0]}"`)); - case "==": - case "!=": - t.length !== 3 && p.push(new Tt(r, t, `filter array for operator "${t[0]}" must have 3 elements`)); - case "in": - case "!in": - t.length >= 2 && (c = ii(t[1]), c !== "string" && p.push(new Tt(`${r}[1]`, t[1], `string expected, ${c} found`))); - for (let f = 2; f < t.length; f++) c = ii(t[f]), Vi(t[1]) === "$type" ? p = p.concat(Ga({ - key: `${r}[${f}]`, - value: t[f], - valueSpec: a.geometry_type, - style: i.style, - styleSpec: i.styleSpec - })) : c !== "string" && c !== "number" && c !== "boolean" && p.push(new Tt(`${r}[${f}]`, t[f], `string, number, or boolean expected, ${c} found`)); - break; - case "any": - case "all": - case "none": - for (let f = 1; f < t.length; f++) p = p.concat(qh({ - key: `${r}[${f}]`, - value: t[f], - style: i.style, - styleSpec: i.styleSpec - })); - break; - case "has": - case "!has": - c = ii(t[1]), t.length !== 2 ? p.push(new Tt(r, t, `filter array for "${t[0]}" operator must have 2 elements`)) : c !== "string" && p.push(new Tt(`${r}[1]`, t[1], `string expected, ${c} found`)) - } - return p - } - - function Vh(i, t) { - const r = i.key, - a = i.validateSpec, - c = i.style, - p = i.styleSpec, - f = i.value, - g = i.objectKey, - v = p[`${t}_${i.layerType}`]; - if (!v) return []; - const S = g.match(/^(.*)-transition$/); - if (t === "paint" && S && v[S[1]] && v[S[1]].transition) return a({ - key: r, - value: f, - valueSpec: p.transition, - style: c, - styleSpec: p - }); - const I = i.valueSpec || v[g]; - if (!I) return [new Tt(r, f, `unknown property "${g}"`)]; - let E; - if (ii(f) === "string" && rs(I) && !I.tokens && (E = /^{([^}]+)}$/.exec(f))) return [new Tt(r, f, `"${g}" does not support interpolation syntax -Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(E[1])} }\`.`)]; - const R = []; - return i.layerType === "symbol" && (g === "text-field" && c && !c.glyphs && R.push(new Tt(r, f, 'use of "text-field" requires a style "glyphs" property')), g === "text-font" && To(Oa(f)) && Vi(f.type) === "identity" && R.push(new Tt(r, f, '"text-font" does not support identity functions'))), R.concat(a({ - key: i.key, - value: f, - valueSpec: I, - style: c, - styleSpec: p, - expressionContext: "property", - propertyType: t, - propertyKey: g - })) - } - - function Uh(i) { - return Vh(i, "paint") - } - - function Zh(i) { - return Vh(i, "layout") - } - - function $h(i) { - let t = []; - const r = i.value, - a = i.key, - c = i.style, - p = i.styleSpec; - if (ii(r) !== "object") return [new Tt(a, r, `object expected, ${ii(r)} found`)]; - r.type || r.ref || t.push(new Tt(a, r, 'either "type" or "ref" is required')); - let f = Vi(r.type); - const g = Vi(r.ref); - if (r.id) { - const v = Vi(r.id); - for (let S = 0; S < i.arrayIndex; S++) { - const I = c.layers[S]; - Vi(I.id) === v && t.push(new Tt(a, r.id, `duplicate layer id "${r.id}", previously used at line ${I.id.__line__}`)) - } - } - if ("ref" in r) { - let v; - ["type", "source", "source-layer", "filter", "layout"].forEach((S => { - S in r && t.push(new Tt(a, r[S], `"${S}" is prohibited for ref layers`)) - })), c.layers.forEach((S => { - Vi(S.id) === g && (v = S) - })), v ? v.ref ? t.push(new Tt(a, r.ref, "ref cannot reference another ref layer")) : f = Vi(v.type) : t.push(new Tt(a, r.ref, `ref layer "${g}" not found`)) - } else if (f !== "background") - if (r.source) { - const v = c.sources && c.sources[r.source], - S = v && Vi(v.type); - v ? S === "vector" && f === "raster" ? t.push(new Tt(a, r.source, `layer "${r.id}" requires a raster source`)) : S !== "raster-dem" && f === "hillshade" || S !== "raster-dem" && f === "color-relief" ? t.push(new Tt(a, r.source, `layer "${r.id}" requires a raster-dem source`)) : S === "raster" && f !== "raster" ? t.push(new Tt(a, r.source, `layer "${r.id}" requires a vector source`)) : S !== "vector" || r["source-layer"] ? S === "raster-dem" && f !== "hillshade" && f !== "color-relief" ? t.push(new Tt(a, r.source, "raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")) : f !== "line" || !r.paint || !r.paint["line-gradient"] || S === "geojson" && v.lineMetrics || t.push(new Tt(a, r, `layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)) : t.push(new Tt(a, r, `layer "${r.id}" must specify a "source-layer"`)) : t.push(new Tt(a, r.source, `source "${r.source}" not found`)) - } else t.push(new Tt(a, r, 'missing required property "source"')); - return t = t.concat(ua({ - key: a, - value: r, - valueSpec: p.layer, - style: i.style, - styleSpec: i.styleSpec, - validateSpec: i.validateSpec, - objectElementValidators: { - "*": () => [], - type: () => i.validateSpec({ - key: `${a}.type`, - value: r.type, - valueSpec: p.layer.type, - style: i.style, - styleSpec: i.styleSpec, - validateSpec: i.validateSpec, - object: r, - objectKey: "type" - }), - filter: jc, - layout: v => ua({ - layer: r, - key: v.key, - value: v.value, - style: v.style, - styleSpec: v.styleSpec, - validateSpec: v.validateSpec, - objectElementValidators: { - "*": S => Zh(Ci({ - layerType: f - }, S)) - } - }), - paint: v => ua({ - layer: r, - key: v.key, - value: v.value, - style: v.style, - styleSpec: v.styleSpec, - validateSpec: v.validateSpec, - objectElementValidators: { - "*": S => Uh(Ci({ - layerType: f - }, S)) - } - }) - } - })), t - } - - function xa(i) { - const t = i.value, - r = i.key, - a = ii(t); - return a !== "string" ? [new Tt(r, t, `string expected, ${a} found`)] : [] - } - const js = { - promoteId: function({ - key: i, - value: t - }) { - if (ii(t) === "string") return xa({ - key: i, - value: t - }); - { - const r = []; - for (const a in t) r.push(...xa({ - key: `${i}.${a}`, - value: t[a] - })); - return r - } - } - }; - - function Wn(i) { - const t = i.value, - r = i.key, - a = i.styleSpec, - c = i.style, - p = i.validateSpec; - if (!t.type) return [new Tt(r, t, '"type" is required')]; - const f = Vi(t.type); - let g; - switch (f) { - case "vector": - case "raster": - return g = ua({ - key: r, - value: t, - valueSpec: a[`source_${f.replace("-","_")}`], - style: i.style, - styleSpec: a, - objectElementValidators: js, - validateSpec: p - }), g; - case "raster-dem": - return g = (function(v) { - var S; - const I = (S = v.sourceName) !== null && S !== void 0 ? S : "", - E = v.value, - R = v.styleSpec, - N = R.source_raster_dem, - j = v.style; - let Z = []; - const Y = ii(E); - if (E === void 0) return Z; - if (Y !== "object") return Z.push(new Tt("source_raster_dem", E, `object expected, ${Y} found`)), Z; - const ae = Vi(E.encoding) === "custom", - ze = ["redFactor", "greenFactor", "blueFactor", "baseShift"], - me = v.value.encoding ? `"${v.value.encoding}"` : "Default"; - for (const be in E) !ae && ze.includes(be) ? Z.push(new Tt(be, E[be], `In "${I}": "${be}" is only valid when "encoding" is set to "custom". ${me} encoding found`)) : N[be] ? Z = Z.concat(v.validateSpec({ - key: be, - value: E[be], - valueSpec: N[be], - validateSpec: v.validateSpec, - style: j, - styleSpec: R - })) : Z.push(new Tt(be, E[be], `unknown property "${be}"`)); - return Z - })({ - sourceName: r, - value: t, - style: i.style, - styleSpec: a, - validateSpec: p - }), g; - case "geojson": - if (g = ua({ - key: r, - value: t, - valueSpec: a.source_geojson, - style: c, - styleSpec: a, - validateSpec: p, - objectElementValidators: js - }), t.cluster) - for (const v in t.clusterProperties) { - const [S, I] = t.clusterProperties[v], E = typeof S == "string" ? [S, ["accumulated"], - ["get", v] - ] : S; - g.push(...Ts({ - key: `${r}.${v}.map`, - value: I, - expressionContext: "cluster-map" - })), g.push(...Ts({ - key: `${r}.${v}.reduce`, - value: E, - expressionContext: "cluster-reduce" - })) - } - return g; - case "video": - return ua({ - key: r, - value: t, - valueSpec: a.source_video, - style: c, - validateSpec: p, - styleSpec: a - }); - case "image": - return ua({ - key: r, - value: t, - valueSpec: a.source_image, - style: c, - validateSpec: p, - styleSpec: a - }); - case "canvas": - return [new Tt(r, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")]; - default: - return Ga({ - key: `${r}.type`, - value: t.type, - valueSpec: { - values: ["vector", "raster", "raster-dem", "geojson", "video", "image"] - } - }) - } - } - - function qs(i) { - const t = i.value, - r = i.styleSpec, - a = r.light, - c = i.style; - let p = []; - const f = ii(t); - if (t === void 0) return p; - if (f !== "object") return p = p.concat([new Tt("light", t, `object expected, ${f} found`)]), p; - for (const g in t) { - const v = g.match(/^(.*)-transition$/); - p = p.concat(v && a[v[1]] && a[v[1]].transition ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: r.transition, - validateSpec: i.validateSpec, - style: c, - styleSpec: r - }) : a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - validateSpec: i.validateSpec, - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]) - } - return p - } - - function qc(i) { - const t = i.value, - r = i.styleSpec, - a = r.sky, - c = i.style, - p = ii(t); - if (t === void 0) return []; - if (p !== "object") return [new Tt("sky", t, `object expected, ${p} found`)]; - let f = []; - for (const g in t) f = f.concat(a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]); - return f - } - - function Gh(i) { - const t = i.value, - r = i.styleSpec, - a = r.terrain, - c = i.style; - let p = []; - const f = ii(t); - if (t === void 0) return p; - if (f !== "object") return p = p.concat([new Tt("terrain", t, `object expected, ${f} found`)]), p; - for (const g in t) p = p.concat(a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - validateSpec: i.validateSpec, - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]); - return p - } - - function Hh(i) { - let t = []; - const r = i.value, - a = i.key; - if (Array.isArray(r)) { - const c = [], - p = []; - for (const f in r) r[f].id && c.includes(r[f].id) && t.push(new Tt(a, r, `all the sprites' ids must be unique, but ${r[f].id} is duplicated`)), c.push(r[f].id), r[f].url && p.includes(r[f].url) && t.push(new Tt(a, r, `all the sprites' URLs must be unique, but ${r[f].url} is duplicated`)), p.push(r[f].url), t = t.concat(ua({ - key: `${a}[${f}]`, - value: r[f], - valueSpec: { - id: { - type: "string", - required: !0 - }, - url: { - type: "string", - required: !0 - } - }, - validateSpec: i.validateSpec - })); - return t - } - return xa({ - key: a, - value: r - }) - } - - function Vs(i) { - return t = i.value, t && t.constructor === Object ? [] : [new Tt(i.key, i.value, `object expected, ${ii(i.value)} found`)]; - var t - } - const Vc = { - "*": () => [], - array: vl, - boolean: function(i) { - const t = i.value, - r = i.key, - a = ii(t); - return a !== "boolean" ? [new Tt(r, t, `boolean expected, ${a} found`)] : [] - }, - number: Ao, - color: yl, - constants: Nc, - enum: Ga, - filter: jc, - function: jh, - layer: $h, - object: ua, - source: Wn, - light: qs, - sky: qc, - terrain: Gh, - projection: function(i) { - const t = i.value, - r = i.styleSpec, - a = r.projection, - c = i.style, - p = ii(t); - if (t === void 0) return []; - if (p !== "object") return [new Tt("projection", t, `object expected, ${p} found`)]; - let f = []; - for (const g in t) f = f.concat(a[g] ? i.validateSpec({ - key: g, - value: t[g], - valueSpec: a[g], - style: c, - styleSpec: r - }) : [new Tt(g, t[g], `unknown property "${g}"`)]); - return f - }, - projectionDefinition: function(i) { - const t = i.key; - let r = i.value; - r = r instanceof String ? r.valueOf() : r; - const a = ii(r); - return a !== "array" || (function(c) { - return Array.isArray(c) && c.length === 3 && typeof c[0] == "string" && typeof c[1] == "string" && typeof c[2] == "number" - })(r) || (function(c) { - return !!["interpolate", "step", "literal"].includes(c[0]) - })(r) ? ["array", "string"].includes(a) ? [] : [new Tt(t, r, `projection expected, invalid type "${a}" found`)] : [new Tt(t, r, `projection expected, invalid array ${JSON.stringify(r)} found`)] - }, - string: xa, - formatted: function(i) { - return xa(i).length === 0 ? [] : Ts(i) - }, - resolvedImage: function(i) { - return xa(i).length === 0 ? [] : Ts(i) - }, - padding: function(i) { - const t = i.key, - r = i.value; - if (ii(r) === "array") { - if (r.length < 1 || r.length > 4) return [new Tt(t, r, `padding requires 1 to 4 values; ${r.length} values found`)]; - const a = { - type: "number" - }; - let c = []; - for (let p = 0; p < r.length; p++) c = c.concat(i.validateSpec({ - key: `${t}[${p}]`, - value: r[p], - validateSpec: i.validateSpec, - valueSpec: a - })); - return c - } - return Ao({ - key: t, - value: r, - valueSpec: {} - }) - }, - numberArray: function(i) { - const t = i.key, - r = i.value; - if (ii(r) === "array") { - const a = { - type: "number" - }; - if (r.length < 1) return [new Tt(t, r, "array length at least 1 expected, length 0 found")]; - let c = []; - for (let p = 0; p < r.length; p++) c = c.concat(i.validateSpec({ - key: `${t}[${p}]`, - value: r[p], - validateSpec: i.validateSpec, - valueSpec: a - })); - return c - } - return Ao({ - key: t, - value: r, - valueSpec: {} - }) - }, - colorArray: function(i) { - const t = i.key, - r = i.value; - if (ii(r) === "array") { - if (r.length < 1) return [new Tt(t, r, "array length at least 1 expected, length 0 found")]; - let a = []; - for (let c = 0; c < r.length; c++) a = a.concat(yl({ - key: `${t}[${c}]`, - value: r[c] - })); - return a - } - return yl({ - key: t, - value: r - }) - }, - variableAnchorOffsetCollection: function(i) { - const t = i.key, - r = i.value, - a = ii(r), - c = i.styleSpec; - if (a !== "array" || r.length < 1 || r.length % 2 != 0) return [new Tt(t, r, "variableAnchorOffsetCollection requires a non-empty array of even length")]; - let p = []; - for (let f = 0; f < r.length; f += 2) p = p.concat(Ga({ - key: `${t}[${f}]`, - value: r[f], - valueSpec: c.layout_symbol["text-anchor"] - })), p = p.concat(vl({ - key: `${t}[${f+1}]`, - value: r[f + 1], - valueSpec: { - length: 2, - value: "number" - }, - validateSpec: i.validateSpec, - style: i.style, - styleSpec: c - })); - return p - }, - sprite: Hh, - state: Vs - }; - - function Us(i) { - const t = i.value, - r = i.valueSpec, - a = i.styleSpec; - return i.validateSpec = Us, r.expression && To(Vi(t)) ? jh(i) : r.expression && fl(Oa(t)) ? Ts(i) : r.type && Vc[r.type] ? Vc[r.type](i) : ua(Ci({}, i, { - valueSpec: r.type ? a[r.type] : r - })) - } - - function Wh(i) { - const t = i.value, - r = i.key, - a = xa(i); - return a.length || (t.indexOf("{fontstack}") === -1 && a.push(new Tt(r, t, '"glyphs" url must include a "{fontstack}" token')), t.indexOf("{range}") === -1 && a.push(new Tt(r, t, '"glyphs" url must include a "{range}" token'))), a - } - - function Xn(i, t = xe) { - let r = []; - return r = r.concat(Us({ - key: "", - value: i, - valueSpec: t.$root, - styleSpec: t, - style: i, - validateSpec: Us, - objectElementValidators: { - glyphs: Wh, - "*": () => [] - } - })), i.constants && (r = r.concat(Nc({ - key: "constants", - value: i.constants - }))), Zs(r) - } - - function ba(i) { - return function(t) { - return i({ - ...t, - validateSpec: Us - }) - } - } - - function Zs(i) { - return [].concat(i).sort(((t, r) => t.line - r.line)) - } - - function wa(i) { - return function(...t) { - return Zs(i.apply(this, t)) - } - } - Xn.source = wa(ba(Wn)), Xn.sprite = wa(ba(Hh)), Xn.glyphs = wa(ba(Wh)), Xn.light = wa(ba(qs)), Xn.sky = wa(ba(qc)), Xn.terrain = wa(ba(Gh)), Xn.state = wa(ba(Vs)), Xn.layer = wa(ba($h)), Xn.filter = wa(ba(jc)), Xn.paintProperty = wa(ba(Uh)), Xn.layoutProperty = wa(ba(Zh)); - const $s = Xn, - _p = $s.light, - ko = $s.sky, - gp = $s.paintProperty, - vp = $s.layoutProperty; - - function Eo(i, t) { - let r = !1; - if (t && t.length) - for (const a of t) i.fire(new Ye(new Error(a.message))), r = !0; - return r - } - class zo { - constructor(t, r, a) { - const c = this.cells = []; - if (t instanceof ArrayBuffer) { - this.arrayBuffer = t; - const f = new Int32Array(this.arrayBuffer); - t = f[0], this.d = (r = f[1]) + 2 * (a = f[2]); - for (let v = 0; v < this.d * this.d; v++) { - const S = f[3 + v], - I = f[3 + v + 1]; - c.push(S === I ? null : f.subarray(S, I)) - } - const g = f[3 + c.length + 1]; - this.keys = f.subarray(f[3 + c.length], g), this.bboxes = f.subarray(g), this.insert = this._insertReadonly - } else { - this.d = r + 2 * a; - for (let f = 0; f < this.d * this.d; f++) c.push([]); - this.keys = [], this.bboxes = [] - } - this.n = r, this.extent = t, this.padding = a, this.scale = r / t, this.uid = 0; - const p = a / r * t; - this.min = -p, this.max = t + p - } - insert(t, r, a, c, p) { - this._forEachCell(r, a, c, p, this._insertCell, this.uid++, void 0, void 0), this.keys.push(t), this.bboxes.push(r), this.bboxes.push(a), this.bboxes.push(c), this.bboxes.push(p) - } - _insertReadonly() { - throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer.") - } - _insertCell(t, r, a, c, p, f) { - this.cells[p].push(f) - } - query(t, r, a, c, p) { - const f = this.min, - g = this.max; - if (t <= f && r <= f && g <= a && g <= c && !p) return Array.prototype.slice.call(this.keys); - { - const v = []; - return this._forEachCell(t, r, a, c, this._queryCell, v, {}, p), v - } - } - _queryCell(t, r, a, c, p, f, g, v) { - const S = this.cells[p]; - if (S !== null) { - const I = this.keys, - E = this.bboxes; - for (let R = 0; R < S.length; R++) { - const N = S[R]; - if (g[N] === void 0) { - const j = 4 * N; - (v ? v(E[j + 0], E[j + 1], E[j + 2], E[j + 3]) : t <= E[j + 2] && r <= E[j + 3] && a >= E[j + 0] && c >= E[j + 1]) ? (g[N] = !0, f.push(I[N])) : g[N] = !1 - } - } - } - } - _forEachCell(t, r, a, c, p, f, g, v) { - const S = this._convertToCellCoord(t), - I = this._convertToCellCoord(r), - E = this._convertToCellCoord(a), - R = this._convertToCellCoord(c); - for (let N = S; N <= E; N++) - for (let j = I; j <= R; j++) { - const Z = this.d * j + N; - if ((!v || v(this._convertFromCellCoord(N), this._convertFromCellCoord(j), this._convertFromCellCoord(N + 1), this._convertFromCellCoord(j + 1))) && p.call(this, t, r, a, c, Z, f, g, v)) return - } - } - _convertFromCellCoord(t) { - return (t - this.padding) / this.scale - } - _convertToCellCoord(t) { - return Math.max(0, Math.min(this.d - 1, Math.floor(t * this.scale) + this.padding)) - } - toArrayBuffer() { - if (this.arrayBuffer) return this.arrayBuffer; - const t = this.cells, - r = 3 + this.cells.length + 1 + 1; - let a = 0; - for (let f = 0; f < this.cells.length; f++) a += this.cells[f].length; - const c = new Int32Array(r + a + this.keys.length + this.bboxes.length); - c[0] = this.extent, c[1] = this.n, c[2] = this.padding; - let p = r; - for (let f = 0; f < t.length; f++) { - const g = t[f]; - c[3 + f] = p, c.set(g, p), p += g.length - } - return c[3 + t.length] = p, c.set(this.keys, p), p += this.keys.length, c[3 + t.length + 1] = p, c.set(this.bboxes, p), p += this.bboxes.length, c.buffer - } - static serialize(t, r) { - const a = t.toArrayBuffer(); - return r && r.push(a), { - buffer: a - } - } - static deserialize(t) { - return new zo(t.buffer) - } - } - const Ta = {}; - - function Kt(i, t, r = {}) { - if (Ta[i]) throw new Error(`${i} is already registered.`); - Object.defineProperty(t, "_classRegistryKey", { - value: i, - writeable: !1 - }), Ta[i] = { - klass: t, - omit: r.omit || [], - shallow: r.shallow || [] - } - } - Kt("Object", Object), Kt("Set", Set), Kt("TransferableGridIndex", zo), Kt("Color", yr), Kt("Error", Error), Kt("AJAXError", K), Kt("ResolvedImage", Nn), Kt("StylePropertyFunction", Po), Kt("StyleExpression", Lc, { - omit: ["_evaluator"] - }), Kt("ZoomDependentExpression", Dc), Kt("ZoomConstantExpression", So), Kt("CompoundExpression", ca, { - omit: ["_evaluate"] - }); - for (const i in Os) Os[i]._classRegistryKey || Kt(`Expression_${i}`, Os[i]); - - function Uc(i) { - return i && typeof ArrayBuffer < "u" && (i instanceof ArrayBuffer || i.constructor && i.constructor.name === "ArrayBuffer") - } - - function xl(i) { - return i.$name || i.constructor._classRegistryKey - } - - function Zc(i) { - return !(function(t) { - if (t === null || typeof t != "object") return !1; - const r = xl(t); - return !(!r || r === "Object") - })(i) && (i == null || typeof i == "boolean" || typeof i == "number" || typeof i == "string" || i instanceof Boolean || i instanceof Number || i instanceof String || i instanceof Date || i instanceof RegExp || i instanceof Blob || i instanceof Error || Uc(i) || ar(i) || ArrayBuffer.isView(i) || i instanceof ImageData) - } - - function Gs(i, t) { - if (Zc(i)) return (Uc(i) || ar(i)) && t && t.push(i), ArrayBuffer.isView(i) && t && t.push(i.buffer), i instanceof ImageData && t && t.push(i.data.buffer), i; - if (Array.isArray(i)) { - const p = []; - for (const f of i) p.push(Gs(f, t)); - return p - } - if (typeof i != "object") throw new Error("can't serialize object of type " + typeof i); - const r = xl(i); - if (!r) throw new Error(`can't serialize object of unregistered class ${i.constructor.name}`); - if (!Ta[r]) throw new Error(`${r} is not registered.`); - const { - klass: a - } = Ta[r], c = a.serialize ? a.serialize(i, t) : {}; - if (a.serialize) { - if (t && c === t[t.length - 1]) throw new Error("statically serialized object won't survive transfer of $name property") - } else { - for (const p in i) { - if (!i.hasOwnProperty(p) || Ta[r].omit.indexOf(p) >= 0) continue; - const f = i[p]; - c[p] = Ta[r].shallow.indexOf(p) >= 0 ? f : Gs(f, t) - } - i instanceof Error && (c.message = i.message) - } - if (c.$name) throw new Error("$name property is reserved for worker serialization logic."); - return r !== "Object" && (c.$name = r), c - } - - function Cs(i) { - if (Zc(i)) return i; - if (Array.isArray(i)) return i.map(Cs); - if (typeof i != "object") throw new Error("can't deserialize object of type " + typeof i); - const t = xl(i) || "Object"; - if (!Ta[t]) throw new Error(`can't deserialize unregistered class ${t}`); - const { - klass: r - } = Ta[t]; - if (!r) throw new Error(`can't deserialize unregistered class ${t}`); - if (r.deserialize) return r.deserialize(i); - const a = Object.create(r.prototype); - for (const c of Object.keys(i)) { - if (c === "$name") continue; - const p = i[c]; - a[c] = Ta[t].shallow.indexOf(c) >= 0 ? p : Cs(p) - } - return a - } - class bl { - constructor() { - this.first = !0 - } - update(t, r) { - const a = Math.floor(t); - return this.first ? (this.first = !1, this.lastIntegerZoom = a, this.lastIntegerZoomTime = 0, this.lastZoom = t, this.lastFloorZoom = a, !0) : (this.lastFloorZoom > a ? (this.lastIntegerZoom = a + 1, this.lastIntegerZoomTime = r) : this.lastFloorZoom < a && (this.lastIntegerZoom = a, this.lastIntegerZoomTime = r), t !== this.lastZoom && (this.lastZoom = t, this.lastFloorZoom = a, !0)) - } - } - const si = { - "Latin-1 Supplement": i => i >= 128 && i <= 255, - "Hangul Jamo": i => i >= 4352 && i <= 4607, - Khmer: i => i >= 6016 && i <= 6143, - "General Punctuation": i => i >= 8192 && i <= 8303, - "Letterlike Symbols": i => i >= 8448 && i <= 8527, - "Number Forms": i => i >= 8528 && i <= 8591, - "Miscellaneous Technical": i => i >= 8960 && i <= 9215, - "Control Pictures": i => i >= 9216 && i <= 9279, - "Optical Character Recognition": i => i >= 9280 && i <= 9311, - "Enclosed Alphanumerics": i => i >= 9312 && i <= 9471, - "Geometric Shapes": i => i >= 9632 && i <= 9727, - "Miscellaneous Symbols": i => i >= 9728 && i <= 9983, - "Miscellaneous Symbols and Arrows": i => i >= 11008 && i <= 11263, - "Ideographic Description Characters": i => i >= 12272 && i <= 12287, - "CJK Symbols and Punctuation": i => i >= 12288 && i <= 12351, - Hiragana: i => i >= 12352 && i <= 12447, - Katakana: i => i >= 12448 && i <= 12543, - Kanbun: i => i >= 12688 && i <= 12703, - "CJK Strokes": i => i >= 12736 && i <= 12783, - "Enclosed CJK Letters and Months": i => i >= 12800 && i <= 13055, - "CJK Compatibility": i => i >= 13056 && i <= 13311, - "Yijing Hexagram Symbols": i => i >= 19904 && i <= 19967, - "CJK Unified Ideographs": i => i >= 19968 && i <= 40959, - "Hangul Syllables": i => i >= 44032 && i <= 55215, - "Private Use Area": i => i >= 57344 && i <= 63743, - "Vertical Forms": i => i >= 65040 && i <= 65055, - "CJK Compatibility Forms": i => i >= 65072 && i <= 65103, - "Small Form Variants": i => i >= 65104 && i <= 65135, - "Halfwidth and Fullwidth Forms": i => i >= 65280 && i <= 65519 - }; - - function wl(i) { - for (const t of i) - if (Gc(t.charCodeAt(0))) return !0; - return !1 - } - - function yp(i) { - for (const t of i) - if (!Xh(t.charCodeAt(0))) return !1; - return !0 - } - - function Tl(i) { - const t = i.map((r => { - try { - return new RegExp(`\\p{sc=${r}}`, "u").source - } catch { - return null - } - })).filter((r => r)); - return new RegExp(t.join("|"), "u") - } - const xp = Tl(["Arab", "Dupl", "Mong", "Ougr", "Syrc"]); - - function Xh(i) { - return !xp.test(String.fromCodePoint(i)) - } - const $c = Tl(["Bopo", "Hani", "Hira", "Kana", "Kits", "Nshu", "Tang", "Yiii"]); - - function Gc(i) { - return !(i !== 746 && i !== 747 && (i < 4352 || !(si["CJK Compatibility Forms"](i) && !(i >= 65097 && i <= 65103) || si["CJK Compatibility"](i) || si["CJK Strokes"](i) || !(!si["CJK Symbols and Punctuation"](i) || i >= 12296 && i <= 12305 || i >= 12308 && i <= 12319 || i === 12336) || si["Enclosed CJK Letters and Months"](i) || si["Ideographic Description Characters"](i) || si.Kanbun(i) || si.Katakana(i) && i !== 12540 || !(!si["Halfwidth and Fullwidth Forms"](i) || i === 65288 || i === 65289 || i === 65293 || i >= 65306 && i <= 65310 || i === 65339 || i === 65341 || i === 65343 || i >= 65371 && i <= 65503 || i === 65507 || i >= 65512 && i <= 65519) || !(!si["Small Form Variants"](i) || i >= 65112 && i <= 65118 || i >= 65123 && i <= 65126) || si["Vertical Forms"](i) || si["Yijing Hexagram Symbols"](i) || new RegExp("\\p{sc=Cans}", "u").test(String.fromCodePoint(i)) || new RegExp("\\p{sc=Hang}", "u").test(String.fromCodePoint(i)) || $c.test(String.fromCodePoint(i))))) - } - - function Kh(i) { - return !(Gc(i) || (function(t) { - return !!(si["Latin-1 Supplement"](t) && (t === 167 || t === 169 || t === 174 || t === 177 || t === 188 || t === 189 || t === 190 || t === 215 || t === 247) || si["General Punctuation"](t) && (t === 8214 || t === 8224 || t === 8225 || t === 8240 || t === 8241 || t === 8251 || t === 8252 || t === 8258 || t === 8263 || t === 8264 || t === 8265 || t === 8273) || si["Letterlike Symbols"](t) || si["Number Forms"](t) || si["Miscellaneous Technical"](t) && (t >= 8960 && t <= 8967 || t >= 8972 && t <= 8991 || t >= 8996 && t <= 9e3 || t === 9003 || t >= 9085 && t <= 9114 || t >= 9150 && t <= 9165 || t === 9167 || t >= 9169 && t <= 9179 || t >= 9186 && t <= 9215) || si["Control Pictures"](t) && t !== 9251 || si["Optical Character Recognition"](t) || si["Enclosed Alphanumerics"](t) || si["Geometric Shapes"](t) || si["Miscellaneous Symbols"](t) && !(t >= 9754 && t <= 9759) || si["Miscellaneous Symbols and Arrows"](t) && (t >= 11026 && t <= 11055 || t >= 11088 && t <= 11097 || t >= 11192 && t <= 11243) || si["CJK Symbols and Punctuation"](t) || si.Katakana(t) || si["Private Use Area"](t) || si["CJK Compatibility Forms"](t) || si["Small Form Variants"](t) || si["Halfwidth and Fullwidth Forms"](t) || t === 8734 || t === 8756 || t === 8757 || t >= 9984 && t <= 10087 || t >= 10102 && t <= 10131 || t === 65532 || t === 65533) - })(i)) - } - const Yh = Tl(["Adlm", "Arab", "Armi", "Avst", "Chrs", "Cprt", "Egyp", "Elym", "Gara", "Hatr", "Hebr", "Hung", "Khar", "Lydi", "Mand", "Mani", "Mend", "Merc", "Mero", "Narb", "Nbat", "Nkoo", "Orkh", "Palm", "Phli", "Phlp", "Phnx", "Prti", "Rohg", "Samr", "Sarb", "Sogo", "Syrc", "Thaa", "Todr", "Yezi"]); - - function Hc(i) { - return Yh.test(String.fromCodePoint(i)) - } - - function Jh(i, t) { - return !(!t && Hc(i) || i >= 2304 && i <= 3583 || i >= 3840 && i <= 4255 || si.Khmer(i)) - } - - function Qh(i) { - for (const t of i) - if (Hc(t.charCodeAt(0))) return !0; - return !1 - } - const Ca = new class { - constructor() { - this.TIMEOUT = 5e3, this.applyArabicShaping = null, this.processBidirectionalText = null, this.processStyledBidirectionalText = null, this.pluginStatus = "unavailable", this.pluginURL = null, this.loadScriptResolve = () => {} - } - setState(i) { - this.pluginStatus = i.pluginStatus, this.pluginURL = i.pluginURL - } - getState() { - return { - pluginStatus: this.pluginStatus, - pluginURL: this.pluginURL - } - } - setMethods(i) { - if (Ca.isParsed()) throw new Error("RTL text plugin already registered."); - this.applyArabicShaping = i.applyArabicShaping, this.processBidirectionalText = i.processBidirectionalText, this.processStyledBidirectionalText = i.processStyledBidirectionalText, this.loadScriptResolve() - } - isParsed() { - return this.applyArabicShaping != null && this.processBidirectionalText != null && this.processStyledBidirectionalText != null - } - getRTLTextPluginStatus() { - return this.pluginStatus - } - syncState(i, t) { - return o(this, void 0, void 0, (function*() { - if (this.isParsed()) return this.getState(); - if (i.pluginStatus !== "loading") return this.setState(i), i; - const r = i.pluginURL, - a = new Promise((p => { - this.loadScriptResolve = p - })); - t(r); - const c = new Promise((p => setTimeout((() => p()), this.TIMEOUT))); - if (yield Promise.race([a, c]), this.isParsed()) { - const p = { - pluginStatus: "loaded", - pluginURL: r - }; - return this.setState(p), p - } - throw this.setState({ - pluginStatus: "error", - pluginURL: "" - }), new Error(`RTL Text Plugin failed to import scripts from ${r}`) - })) - } - }; - class Oi { - constructor(t, r) { - this.zoom = t, r ? (this.now = r.now || 0, this.fadeDuration = r.fadeDuration || 0, this.zoomHistory = r.zoomHistory || new bl, this.transition = r.transition || {}, this.globalState = r.globalState || {}) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new bl, this.transition = {}, this.globalState = {}) - } - isSupportedScript(t) { - return (function(r, a) { - for (const c of r) - if (!Jh(c.charCodeAt(0), a)) return !1; - return !0 - })(t, Ca.getRTLTextPluginStatus() === "loaded") - } - crossFadingFactor() { - return this.fadeDuration === 0 ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1) - } - getCrossfadeParameters() { - const t = this.zoom, - r = t - Math.floor(t), - a = this.crossFadingFactor(); - return t > this.zoomHistory.lastIntegerZoom ? { - fromScale: 2, - toScale: 1, - t: r + (1 - r) * a - } : { - fromScale: .5, - toScale: 1, - t: 1 - (1 - a) * r - } - } - } - class Hs { - constructor(t, r) { - this.property = t, this.value = r, this.expression = (function(a, c) { - if (To(a)) return new Po(a, c); - if (fl(a)) { - const p = Fh(a, c); - if (p.result === "error") throw new Error(p.value.map((f => `${f.key}: ${f.message}`)).join(", ")); - return p.value - } { - let p = a; - return c.type === "color" && typeof a == "string" ? p = yr.parse(a) : c.type !== "padding" || typeof a != "number" && !Array.isArray(a) ? c.type !== "numberArray" || typeof a != "number" && !Array.isArray(a) ? c.type !== "colorArray" || typeof a != "string" && !Array.isArray(a) ? c.type === "variableAnchorOffsetCollection" && Array.isArray(a) ? p = un.parse(a) : c.type === "projectionDefinition" && typeof a == "string" && (p = hn.parse(a)) : p = Ni.parse(a) : p = cn.parse(a) : p = Ki.parse(a), { - globalStateRefs: new Set, - kind: "constant", - evaluate: () => p - } - } - })(r === void 0 ? t.specification.default : r, t.specification) - } - isDataDriven() { - return this.expression.kind === "source" || this.expression.kind === "composite" - } - getGlobalStateRefs() { - return this.expression.globalStateRefs || new Set - } - possiblyEvaluate(t, r, a) { - return this.property.possiblyEvaluate(this, t, r, a) - } - } - class Wc { - constructor(t) { - this.property = t, this.value = new Hs(t, void 0) - } - transitioned(t, r) { - return new Xc(this.property, this.value, r, pt({}, t.transition, this.transition), t.now) - } - untransitioned() { - return new Xc(this.property, this.value, null, {}, 0) - } - } - class ed { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultTransitionablePropertyValues) - } - getValue(t) { - return wt(this._values[t].value.value) - } - setValue(t, r) { - Object.prototype.hasOwnProperty.call(this._values, t) || (this._values[t] = new Wc(this._values[t].property)), this._values[t].value = new Hs(this._values[t].property, r === null ? void 0 : wt(r)) - } - getTransition(t) { - return wt(this._values[t].transition) - } - setTransition(t, r) { - Object.prototype.hasOwnProperty.call(this._values, t) || (this._values[t] = new Wc(this._values[t].property)), this._values[t].transition = wt(r) || void 0 - } - serialize() { - const t = {}; - for (const r of Object.keys(this._values)) { - const a = this.getValue(r); - a !== void 0 && (t[r] = a); - const c = this.getTransition(r); - c !== void 0 && (t[`${r}-transition`] = c) - } - return t - } - transitioned(t, r) { - const a = new Kc(this._properties); - for (const c of Object.keys(this._values)) a._values[c] = this._values[c].transitioned(t, r._values[c]); - return a - } - untransitioned() { - const t = new Kc(this._properties); - for (const r of Object.keys(this._values)) t._values[r] = this._values[r].untransitioned(); - return t - } - } - class Xc { - constructor(t, r, a, c, p) { - this.property = t, this.value = r, this.begin = p + c.delay || 0, this.end = this.begin + c.duration || 0, t.specification.transition && (c.delay || c.duration) && (this.prior = a) - } - possiblyEvaluate(t, r, a) { - const c = t.now || 0, - p = this.value.possiblyEvaluate(t, r, a), - f = this.prior; - if (f) { - if (c > this.end) return this.prior = null, p; - if (this.value.isDataDriven()) return this.prior = null, p; - if (c < this.begin) return f.possiblyEvaluate(t, r, a); - { - const g = (c - this.begin) / (this.end - this.begin); - return this.property.interpolate(f.possiblyEvaluate(t, r, a), p, We(g)) - } - } - return p - } - } - class Kc { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultTransitioningPropertyValues) - } - possiblyEvaluate(t, r, a) { - const c = new Cl(this._properties); - for (const p of Object.keys(this._values)) c._values[p] = this._values[p].possiblyEvaluate(t, r, a); - return c - } - hasTransition() { - for (const t of Object.keys(this._values)) - if (this._values[t].prior) return !0; - return !1 - } - } - class td { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultPropertyValues) - } - hasValue(t) { - return this._values[t].value !== void 0 - } - getValue(t) { - return wt(this._values[t].value) - } - setValue(t, r) { - this._values[t] = new Hs(this._values[t].property, r === null ? void 0 : wt(r)) - } - serialize() { - const t = {}; - for (const r of Object.keys(this._values)) { - const a = this.getValue(r); - a !== void 0 && (t[r] = a) - } - return t - } - possiblyEvaluate(t, r, a) { - const c = new Cl(this._properties); - for (const p of Object.keys(this._values)) c._values[p] = this._values[p].possiblyEvaluate(t, r, a); - return c - } - } - class Na { - constructor(t, r, a) { - this.property = t, this.value = r, this.parameters = a - } - isConstant() { - return this.value.kind === "constant" - } - constantOr(t) { - return this.value.kind === "constant" ? this.value.value : t - } - evaluate(t, r, a, c) { - return this.property.evaluate(this.value, this.parameters, t, r, a, c) - } - } - class Cl { - constructor(t) { - this._properties = t, this._values = Object.create(t.defaultPossiblyEvaluatedValues) - } - get(t) { - return this._values[t] - } - } - class hr { - constructor(t) { - this.specification = t - } - possiblyEvaluate(t, r) { - if (t.isDataDriven()) throw new Error("Value should not be data driven"); - return t.expression.evaluate(r) - } - interpolate(t, r, a) { - const c = Fa[this.specification.type]; - return c ? c(t, r, a) : t - } - } - class Rr { - constructor(t, r) { - this.specification = t, this.overrides = r - } - possiblyEvaluate(t, r, a, c) { - return new Na(this, t.expression.kind === "constant" || t.expression.kind === "camera" ? { - kind: "constant", - value: t.expression.evaluate(r, null, {}, a, c) - } : t.expression, r) - } - interpolate(t, r, a) { - if (t.value.kind !== "constant" || r.value.kind !== "constant") return t; - if (t.value.value === void 0 || r.value.value === void 0) return new Na(this, { - kind: "constant", - value: void 0 - }, t.parameters); - const c = Fa[this.specification.type]; - if (c) { - const p = c(t.value.value, r.value.value, a); - return new Na(this, { - kind: "constant", - value: p - }, t.parameters) - } - return t - } - evaluate(t, r, a, c, p, f) { - return t.kind === "constant" ? t.value : t.evaluate(r, a, c, p, f) - } - } - class Sl extends Rr { - possiblyEvaluate(t, r, a, c) { - if (t.value === void 0) return new Na(this, { - kind: "constant", - value: void 0 - }, r); - if (t.expression.kind === "constant") { - const p = t.expression.evaluate(r, null, {}, a, c), - f = t.property.specification.type === "resolvedImage" && typeof p != "string" ? p.name : p, - g = this._calculate(f, f, f, r); - return new Na(this, { - kind: "constant", - value: g - }, r) - } - if (t.expression.kind === "camera") { - const p = this._calculate(t.expression.evaluate({ - zoom: r.zoom - 1 - }), t.expression.evaluate({ - zoom: r.zoom - }), t.expression.evaluate({ - zoom: r.zoom + 1 - }), r); - return new Na(this, { - kind: "constant", - value: p - }, r) - } - return new Na(this, t.expression, r) - } - evaluate(t, r, a, c, p, f) { - if (t.kind === "source") { - const g = t.evaluate(r, a, c, p, f); - return this._calculate(g, g, g, r) - } - return t.kind === "composite" ? this._calculate(t.evaluate({ - zoom: Math.floor(r.zoom) - 1 - }, a, c), t.evaluate({ - zoom: Math.floor(r.zoom) - }, a, c), t.evaluate({ - zoom: Math.floor(r.zoom) + 1 - }, a, c), r) : t.value - } - _calculate(t, r, a, c) { - return c.zoom > c.zoomHistory.lastIntegerZoom ? { - from: t, - to: r - } : { - from: a, - to: r - } - } - interpolate(t) { - return t - } - } - class ns { - constructor(t) { - this.specification = t - } - possiblyEvaluate(t, r, a, c) { - if (t.value !== void 0) { - if (t.expression.kind === "constant") { - const p = t.expression.evaluate(r, null, {}, a, c); - return this._calculate(p, p, p, r) - } - return this._calculate(t.expression.evaluate(new Oi(Math.floor(r.zoom - 1), r)), t.expression.evaluate(new Oi(Math.floor(r.zoom), r)), t.expression.evaluate(new Oi(Math.floor(r.zoom + 1), r)), r) - } - } - _calculate(t, r, a, c) { - return c.zoom > c.zoomHistory.lastIntegerZoom ? { - from: t, - to: r - } : { - from: a, - to: r - } - } - interpolate(t) { - return t - } - } - class Pl { - constructor(t) { - this.specification = t - } - possiblyEvaluate(t, r, a, c) { - return !!t.expression.evaluate(r, null, {}, a, c) - } - interpolate() { - return !1 - } - } - class jn { - constructor(t) { - this.properties = t, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = []; - for (const r in t) { - const a = t[r]; - a.specification.overridable && this.overridableProperties.push(r); - const c = this.defaultPropertyValues[r] = new Hs(a, void 0), - p = this.defaultTransitionablePropertyValues[r] = new Wc(a); - this.defaultTransitioningPropertyValues[r] = p.untransitioned(), this.defaultPossiblyEvaluatedValues[r] = c.possiblyEvaluate({}) - } - } - } - Kt("DataDrivenProperty", Rr), Kt("DataConstantProperty", hr), Kt("CrossFadedDataDrivenProperty", Sl), Kt("CrossFadedProperty", ns), Kt("ColorRampProperty", Pl); - const rd = "-transition"; - class ha extends Ot { - constructor(t, r) { - if (super(), this.id = t.id, this.type = t.type, this._featureFilter = { - filter: () => !0, - needGeometry: !1, - getGlobalStateRefs: () => new Set - }, t.type !== "custom" && (this.metadata = t.metadata, this.minzoom = t.minzoom, this.maxzoom = t.maxzoom, t.type !== "background" && (this.source = t.source, this.sourceLayer = t["source-layer"], this.filter = t.filter, this._featureFilter = bs(t.filter)), r.layout && (this._unevaluatedLayout = new td(r.layout)), r.paint)) { - this._transitionablePaint = new ed(r.paint); - for (const a in t.paint) this.setPaintProperty(a, t.paint[a], { - validate: !1 - }); - for (const a in t.layout) this.setLayoutProperty(a, t.layout[a], { - validate: !1 - }); - this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new Cl(r.paint) - } - } - setFilter(t) { - this.filter = t, this._featureFilter = bs(t) - } - getCrossfadeParameters() { - return this._crossfadeParameters - } - getLayoutProperty(t) { - return t === "visibility" ? this.visibility : this._unevaluatedLayout.getValue(t) - } - getLayoutAffectingGlobalStateRefs() { - const t = new Set; - if (this._unevaluatedLayout) - for (const r in this._unevaluatedLayout._values) { - const a = this._unevaluatedLayout._values[r]; - for (const c of a.getGlobalStateRefs()) t.add(c) - } - for (const r of this._featureFilter.getGlobalStateRefs()) t.add(r); - return t - } - setLayoutProperty(t, r, a = {}) { - r != null && this._validate(vp, `layers.${this.id}.layout.${t}`, t, r, a) || (t !== "visibility" ? this._unevaluatedLayout.setValue(t, r) : this.visibility = r) - } - getPaintProperty(t) { - return t.endsWith(rd) ? this._transitionablePaint.getTransition(t.slice(0, -11)) : this._transitionablePaint.getValue(t) - } - setPaintProperty(t, r, a = {}) { - if (r != null && this._validate(gp, `layers.${this.id}.paint.${t}`, t, r, a)) return !1; - if (t.endsWith(rd)) return this._transitionablePaint.setTransition(t.slice(0, -11), r || void 0), !1; - { - const c = this._transitionablePaint._values[t], - p = c.property.specification["property-type"] === "cross-faded-data-driven", - f = c.value.isDataDriven(), - g = c.value; - this._transitionablePaint.setValue(t, r), this._handleSpecialPaintPropertyUpdate(t); - const v = this._transitionablePaint._values[t].value; - return v.isDataDriven() || f || p || this._handleOverridablePaintPropertyUpdate(t, g, v) - } - } - _handleSpecialPaintPropertyUpdate(t) {} - _handleOverridablePaintPropertyUpdate(t, r, a) { - return !1 - } - isHidden(t) { - return !!(this.minzoom && t < this.minzoom) || !!(this.maxzoom && t >= this.maxzoom) || this.visibility === "none" - } - updateTransitions(t) { - this._transitioningPaint = this._transitionablePaint.transitioned(t, this._transitioningPaint) - } - hasTransition() { - return this._transitioningPaint.hasTransition() - } - recalculate(t, r) { - t.getCrossfadeParameters && (this._crossfadeParameters = t.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t, void 0, r)), this.paint = this._transitioningPaint.possiblyEvaluate(t, void 0, r) - } - serialize() { - const t = { - id: this.id, - type: this.type, - source: this.source, - "source-layer": this.sourceLayer, - metadata: this.metadata, - minzoom: this.minzoom, - maxzoom: this.maxzoom, - filter: this.filter, - layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), - paint: this._transitionablePaint && this._transitionablePaint.serialize() - }; - return this.visibility && (t.layout = t.layout || {}, t.layout.visibility = this.visibility), bt(t, ((r, a) => !(r === void 0 || a === "layout" && !Object.keys(r).length || a === "paint" && !Object.keys(r).length))) - } - _validate(t, r, a, c, p = {}) { - return (!p || p.validate !== !1) && Eo(this, t.call($s, { - key: r, - layerType: this.type, - objectKey: a, - value: c, - styleSpec: xe, - style: { - glyphs: !0, - sprite: !0 - } - })) - } - is3D() { - return !1 - } - isTileClipped() { - return !1 - } - hasOffscreenPass() { - return !1 - } - resize() {} - isStateDependent() { - for (const t in this.paint._values) { - const r = this.paint.get(t); - if (r instanceof Na && rs(r.property.specification) && (r.value.kind === "source" || r.value.kind === "composite") && r.value.isStateDependent) return !0 - } - return !1 - } - } - const bp = { - Int8: Int8Array, - Uint8: Uint8Array, - Int16: Int16Array, - Uint16: Uint16Array, - Int32: Int32Array, - Uint32: Uint32Array, - Float32: Float32Array - }; - class Lo { - constructor(t, r) { - this._structArray = t, this._pos1 = r * 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(t, r) { - return t._trim(), r && (t.isTransferred = !0, r.push(t.arrayBuffer)), { - length: t.length, - arrayBuffer: t.arrayBuffer - } - } - static deserialize(t) { - const r = Object.create(this.prototype); - return r.arrayBuffer = t.arrayBuffer, r.length = t.length, r.capacity = t.arrayBuffer.byteLength / r.bytesPerElement, r._refreshViews(), r - } - _trim() { - this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews()) - } - clear() { - this.length = 0 - } - resize(t) { - this.reserve(t), this.length = t - } - reserve(t) { - if (t > this.capacity) { - this.capacity = Math.max(t, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement); - const r = this.uint8; - this._refreshViews(), r && this.uint8.set(r) - } - } - _refreshViews() { - throw new Error("_refreshViews() must be implemented by each concrete StructArray layout") - } - } - - function Hi(i, t = 1) { - let r = 0, - a = 0; - return { - members: i.map((c => { - const p = bp[c.type].BYTES_PER_ELEMENT, - f = r = Il(r, Math.max(t, p)), - g = c.components || 1; - return a = Math.max(a, p), r += p * g, { - name: c.name, - type: c.type, - components: g, - offset: f - } - })), - size: Il(r, Math.max(a, t)), - alignment: t - } - } - - function Il(i, t) { - return Math.ceil(i / t) * t - } - class Ws extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r) { - const a = this.length; - return this.resize(a + 1), this.emplace(a, t, r) - } - emplace(t, r, a) { - const c = 2 * t; - return this.int16[c + 0] = r, this.int16[c + 1] = a, t - } - } - Ws.prototype.bytesPerElement = 4, Kt("StructArrayLayout2i4", Ws); - class Xs extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.int16[p + 0] = r, this.int16[p + 1] = a, this.int16[p + 2] = c, t - } - } - Xs.prototype.bytesPerElement = 6, Kt("StructArrayLayout3i6", Xs); - class Yc extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c) { - const p = this.length; - return this.resize(p + 1), this.emplace(p, t, r, a, c) - } - emplace(t, r, a, c, p) { - const f = 4 * t; - return this.int16[f + 0] = r, this.int16[f + 1] = a, this.int16[f + 2] = c, this.int16[f + 3] = p, t - } - } - Yc.prototype.bytesPerElement = 8, Kt("StructArrayLayout4i8", Yc); - class Ks extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 6 * t; - return this.int16[v + 0] = r, this.int16[v + 1] = a, this.int16[v + 2] = c, this.int16[v + 3] = p, this.int16[v + 4] = f, this.int16[v + 5] = g, t - } - } - Ks.prototype.bytesPerElement = 12, Kt("StructArrayLayout2i4i12", Ks); - class Ss extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 4 * t, - S = 8 * t; - return this.int16[v + 0] = r, this.int16[v + 1] = a, this.uint8[S + 4] = c, this.uint8[S + 5] = p, this.uint8[S + 6] = f, this.uint8[S + 7] = g, t - } - } - Ss.prototype.bytesPerElement = 8, Kt("StructArrayLayout2i4ub8", Ss); - class Do extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r) { - const a = this.length; - return this.resize(a + 1), this.emplace(a, t, r) - } - emplace(t, r, a) { - const c = 2 * t; - return this.float32[c + 0] = r, this.float32[c + 1] = a, t - } - } - Do.prototype.bytesPerElement = 8, Kt("StructArrayLayout2f8", Do); - class Ml extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f, g, v, S, I) { - const E = this.length; - return this.resize(E + 1), this.emplace(E, t, r, a, c, p, f, g, v, S, I) - } - emplace(t, r, a, c, p, f, g, v, S, I, E) { - const R = 10 * t; - return this.uint16[R + 0] = r, this.uint16[R + 1] = a, this.uint16[R + 2] = c, this.uint16[R + 3] = p, this.uint16[R + 4] = f, this.uint16[R + 5] = g, this.uint16[R + 6] = v, this.uint16[R + 7] = S, this.uint16[R + 8] = I, this.uint16[R + 9] = E, t - } - } - Ml.prototype.bytesPerElement = 20, Kt("StructArrayLayout10ui20", Ml); - class Ps extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f, g, v, S, I, E, R) { - const N = this.length; - return this.resize(N + 1), this.emplace(N, t, r, a, c, p, f, g, v, S, I, E, R) - } - emplace(t, r, a, c, p, f, g, v, S, I, E, R, N) { - const j = 12 * t; - return this.int16[j + 0] = r, this.int16[j + 1] = a, this.int16[j + 2] = c, this.int16[j + 3] = p, this.uint16[j + 4] = f, this.uint16[j + 5] = g, this.uint16[j + 6] = v, this.uint16[j + 7] = S, this.int16[j + 8] = I, this.int16[j + 9] = E, this.int16[j + 10] = R, this.int16[j + 11] = N, t - } - } - Ps.prototype.bytesPerElement = 24, Kt("StructArrayLayout4i4ui4i24", Ps); - class Jc extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.float32[p + 0] = r, this.float32[p + 1] = a, this.float32[p + 2] = c, t - } - } - Jc.prototype.bytesPerElement = 12, Kt("StructArrayLayout3f12", Jc); - class Qc extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer) - } - emplaceBack(t) { - const r = this.length; - return this.resize(r + 1), this.emplace(r, t) - } - emplace(t, r) { - return this.uint32[1 * t + 0] = r, t - } - } - Qc.prototype.bytesPerElement = 4, Kt("StructArrayLayout1ul4", Qc); - class Al 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(t, r, a, c, p, f, g, v, S) { - const I = this.length; - return this.resize(I + 1), this.emplace(I, t, r, a, c, p, f, g, v, S) - } - emplace(t, r, a, c, p, f, g, v, S, I) { - const E = 10 * t, - R = 5 * t; - return this.int16[E + 0] = r, this.int16[E + 1] = a, this.int16[E + 2] = c, this.int16[E + 3] = p, this.int16[E + 4] = f, this.int16[E + 5] = g, this.uint32[R + 3] = v, this.uint16[E + 8] = S, this.uint16[E + 9] = I, t - } - } - Al.prototype.bytesPerElement = 20, Kt("StructArrayLayout6i1ul2ui20", Al); - class eu extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 6 * t; - return this.int16[v + 0] = r, this.int16[v + 1] = a, this.int16[v + 2] = c, this.int16[v + 3] = p, this.int16[v + 4] = f, this.int16[v + 5] = g, t - } - } - eu.prototype.bytesPerElement = 12, Kt("StructArrayLayout2i2i2i12", eu); - class h extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p) { - const f = this.length; - return this.resize(f + 1), this.emplace(f, t, r, a, c, p) - } - emplace(t, r, a, c, p, f) { - const g = 4 * t, - v = 8 * t; - return this.float32[g + 0] = r, this.float32[g + 1] = a, this.float32[g + 2] = c, this.int16[v + 6] = p, this.int16[v + 7] = f, t - } - } - h.prototype.bytesPerElement = 16, Kt("StructArrayLayout2f1f2i16", h); - class e extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c, p, f) { - const g = this.length; - return this.resize(g + 1), this.emplace(g, t, r, a, c, p, f) - } - emplace(t, r, a, c, p, f, g) { - const v = 16 * t, - S = 4 * t, - I = 8 * t; - return this.uint8[v + 0] = r, this.uint8[v + 1] = a, this.float32[S + 1] = c, this.float32[S + 2] = p, this.int16[I + 6] = f, this.int16[I + 7] = g, t - } - } - e.prototype.bytesPerElement = 16, Kt("StructArrayLayout2ub2f2i16", e); - class n extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.uint16[p + 0] = r, this.uint16[p + 1] = a, this.uint16[p + 2] = c, t - } - } - n.prototype.bytesPerElement = 6, Kt("StructArrayLayout3ui6", n); - class s 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(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae) { - const ze = this.length; - return this.resize(ze + 1), this.emplace(ze, t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae) - } - emplace(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze) { - const me = 24 * t, - be = 12 * t, - Ve = 48 * t; - return this.int16[me + 0] = r, this.int16[me + 1] = a, this.uint16[me + 2] = c, this.uint16[me + 3] = p, this.uint32[be + 2] = f, this.uint32[be + 3] = g, this.uint32[be + 4] = v, this.uint16[me + 10] = S, this.uint16[me + 11] = I, this.uint16[me + 12] = E, this.float32[be + 7] = R, this.float32[be + 8] = N, this.uint8[Ve + 36] = j, this.uint8[Ve + 37] = Z, this.uint8[Ve + 38] = Y, this.uint32[be + 10] = ae, this.int16[me + 22] = ze, t - } - } - s.prototype.bytesPerElement = 48, Kt("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", s); - class u 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(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me, be, Ve, rt, St, $t, Bt, Ut, pr, Vt) { - const Zt = this.length; - return this.resize(Zt + 1), this.emplace(Zt, t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me, be, Ve, rt, St, $t, Bt, Ut, pr, Vt) - } - emplace(t, r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me, be, Ve, rt, St, $t, Bt, Ut, pr, Vt, Zt) { - const mt = 32 * t, - Br = 16 * t; - return this.int16[mt + 0] = r, this.int16[mt + 1] = a, this.int16[mt + 2] = c, this.int16[mt + 3] = p, this.int16[mt + 4] = f, this.int16[mt + 5] = g, this.int16[mt + 6] = v, this.int16[mt + 7] = S, this.uint16[mt + 8] = I, this.uint16[mt + 9] = E, this.uint16[mt + 10] = R, this.uint16[mt + 11] = N, this.uint16[mt + 12] = j, this.uint16[mt + 13] = Z, this.uint16[mt + 14] = Y, this.uint16[mt + 15] = ae, this.uint16[mt + 16] = ze, this.uint16[mt + 17] = me, this.uint16[mt + 18] = be, this.uint16[mt + 19] = Ve, this.uint16[mt + 20] = rt, this.uint16[mt + 21] = St, this.uint16[mt + 22] = $t, this.uint32[Br + 12] = Bt, this.float32[Br + 13] = Ut, this.float32[Br + 14] = pr, this.uint16[mt + 30] = Vt, this.uint16[mt + 31] = Zt, t - } - } - u.prototype.bytesPerElement = 64, Kt("StructArrayLayout8i15ui1ul2f2ui64", u); - class d extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t) { - const r = this.length; - return this.resize(r + 1), this.emplace(r, t) - } - emplace(t, r) { - return this.float32[1 * t + 0] = r, t - } - } - d.prototype.bytesPerElement = 4, Kt("StructArrayLayout1f4", d); - class m extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 3 * t; - return this.uint16[6 * t + 0] = r, this.float32[p + 1] = a, this.float32[p + 2] = c, t - } - } - m.prototype.bytesPerElement = 12, Kt("StructArrayLayout1ui2f12", m); - class y extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r, a) { - const c = this.length; - return this.resize(c + 1), this.emplace(c, t, r, a) - } - emplace(t, r, a, c) { - const p = 4 * t; - return this.uint32[2 * t + 0] = r, this.uint16[p + 2] = a, this.uint16[p + 3] = c, t - } - } - y.prototype.bytesPerElement = 8, Kt("StructArrayLayout1ul2ui8", y); - class w extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t, r) { - const a = this.length; - return this.resize(a + 1), this.emplace(a, t, r) - } - emplace(t, r, a) { - const c = 2 * t; - return this.uint16[c + 0] = r, this.uint16[c + 1] = a, t - } - } - w.prototype.bytesPerElement = 4, Kt("StructArrayLayout2ui4", w); - class P extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer) - } - emplaceBack(t) { - const r = this.length; - return this.resize(r + 1), this.emplace(r, t) - } - emplace(t, r) { - return this.uint16[1 * t + 0] = r, t - } - } - P.prototype.bytesPerElement = 2, Kt("StructArrayLayout1ui2", P); - class M extends Ai { - _refreshViews() { - this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer) - } - emplaceBack(t, r, a, c) { - const p = this.length; - return this.resize(p + 1), this.emplace(p, t, r, a, c) - } - emplace(t, r, a, c, p) { - const f = 4 * t; - return this.float32[f + 0] = r, this.float32[f + 1] = a, this.float32[f + 2] = c, this.float32[f + 3] = p, t - } - } - M.prototype.bytesPerElement = 16, Kt("StructArrayLayout4f16", M); - class D extends Lo { - 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 $(this.anchorPointX, this.anchorPointY) - } - } - D.prototype.size = 20; - class z extends Al { - get(t) { - return new D(this, t) - } - } - Kt("CollisionBoxArray", z); - class B extends Lo { - 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(t) { - this._structArray.uint8[this._pos1 + 37] = t - } - get hidden() { - return this._structArray.uint8[this._pos1 + 38] - } - set hidden(t) { - this._structArray.uint8[this._pos1 + 38] = t - } - get crossTileID() { - return this._structArray.uint32[this._pos4 + 10] - } - set crossTileID(t) { - this._structArray.uint32[this._pos4 + 10] = t - } - get associatedIconIndex() { - return this._structArray.int16[this._pos2 + 22] - } - } - B.prototype.size = 48; - class U extends s { - get(t) { - return new B(this, t) - } - } - Kt("PlacedSymbolArray", U); - class ee extends Lo { - 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(t) { - this._structArray.uint32[this._pos4 + 12] = t - } - 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] - } - } - ee.prototype.size = 64; - class J extends u { - get(t) { - return new ee(this, t) - } - } - Kt("SymbolInstanceArray", J); - class re extends d { - getoffsetX(t) { - return this.float32[1 * t + 0] - } - } - Kt("GlyphOffsetArray", re); - class se extends Xs { - getx(t) { - return this.int16[3 * t + 0] - } - gety(t) { - return this.int16[3 * t + 1] - } - gettileUnitDistanceFromAnchor(t) { - return this.int16[3 * t + 2] - } - } - Kt("SymbolLineVertexArray", se); - class de extends Lo { - 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] - } - } - de.prototype.size = 12; - class ue extends m { - get(t) { - return new de(this, t) - } - } - Kt("TextAnchorOffsetArray", ue); - class ge extends Lo { - 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] - } - } - ge.prototype.size = 8; - class Te extends y { - get(t) { - return new ge(this, t) - } - } - Kt("FeatureIndexArray", Te); - class he extends Ws {} - class De extends Ws {} - class He extends Ws {} - class je extends Ks {} - class qe extends Ss {} - class $e extends Do {} - class Rt extends Ml {} - class Nt extends Ps {} - class yt extends Jc {} - class sr extends Qc {} - class Xr extends eu {} - class xi extends e {} - class ki extends n {} - class Pi extends w {} - const ji = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }], 4), - { - members: Ui - } = ji; - class Wr { - constructor(t = []) { - this._forceNewSegmentOnNextPrepare = !1, this.segments = t - } - prepareSegment(t, r, a, c) { - const p = this.segments[this.segments.length - 1]; - return t > Wr.MAX_VERTEX_ARRAY_LENGTH && Lt(`Max vertices per segment is ${Wr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${Wr.MAX_VERTEX_ARRAY_LENGTH} vertices.`), this._forceNewSegmentOnNextPrepare || !p || p.vertexLength + t > Wr.MAX_VERTEX_ARRAY_LENGTH || p.sortKey !== c ? this.createNewSegment(r, a, c) : p - } - createNewSegment(t, r, a) { - const c = { - vertexOffset: t.length, - primitiveOffset: r.length, - vertexLength: 0, - primitiveLength: 0, - vaos: {} - }; - return a !== void 0 && (c.sortKey = a), this._forceNewSegmentOnNextPrepare = !1, this.segments.push(c), c - } - getOrCreateLatestSegment(t, r, a) { - return this.prepareSegment(0, t, r, a) - } - forceNewSegmentOnNextPrepare() { - this._forceNewSegmentOnNextPrepare = !0 - } - get() { - return this.segments - } - destroy() { - for (const t of this.segments) - for (const r in t.vaos) t.vaos[r].destroy() - } - static simpleSegment(t, r, a, c) { - return new Wr([{ - vertexOffset: t, - primitiveOffset: r, - vertexLength: a, - primitiveLength: c, - vaos: {}, - sortKey: 0 - }]) - } - } - - function Ei(i, t) { - return 256 * (i = xt(Math.floor(i), 0, 255)) + xt(Math.floor(t), 0, 255) - } - Wr.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, Kt("SegmentVector", Wr); - const Qi = Hi([{ - 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 dn, xn, qn, Sa = { - exports: {} - }, - as = { - exports: {} - }, - ss = { - exports: {} - }, - Ys = (function() { - if (qn) return Sa.exports; - qn = 1; - var i = (dn || (dn = 1, as.exports = function(r, a) { - var c, p, f, g, v, S, I, E; - for (p = r.length - (c = 3 & r.length), f = a, v = 3432918353, S = 461845907, E = 0; E < p;) I = 255 & r.charCodeAt(E) | (255 & r.charCodeAt(++E)) << 8 | (255 & r.charCodeAt(++E)) << 16 | (255 & r.charCodeAt(++E)) << 24, ++E, f = 27492 + (65535 & (g = 5 * (65535 & (f = (f ^= I = (65535 & (I = (I = (65535 & I) * v + (((I >>> 16) * v & 65535) << 16) & 4294967295) << 15 | I >>> 17)) * S + (((I >>> 16) * S & 65535) << 16) & 4294967295) << 13 | f >>> 19)) + ((5 * (f >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (g >>> 16) & 65535) << 16); - switch (I = 0, c) { - case 3: - I ^= (255 & r.charCodeAt(E + 2)) << 16; - case 2: - I ^= (255 & r.charCodeAt(E + 1)) << 8; - case 1: - f ^= I = (65535 & (I = (I = (65535 & (I ^= 255 & r.charCodeAt(E))) * v + (((I >>> 16) * v & 65535) << 16) & 4294967295) << 15 | I >>> 17)) * S + (((I >>> 16) * S & 65535) << 16) & 4294967295 - } - return f ^= r.length, f = 2246822507 * (65535 & (f ^= f >>> 16)) + ((2246822507 * (f >>> 16) & 65535) << 16) & 4294967295, f = 3266489909 * (65535 & (f ^= f >>> 13)) + ((3266489909 * (f >>> 16) & 65535) << 16) & 4294967295, (f ^= f >>> 16) >>> 0 - }), as.exports), - t = (xn || (xn = 1, ss.exports = function(r, a) { - for (var c, p = r.length, f = a ^ p, g = 0; p >= 4;) c = 1540483477 * (65535 & (c = 255 & r.charCodeAt(g) | (255 & r.charCodeAt(++g)) << 8 | (255 & r.charCodeAt(++g)) << 16 | (255 & r.charCodeAt(++g)) << 24)) + ((1540483477 * (c >>> 16) & 65535) << 16), f = 1540483477 * (65535 & f) + ((1540483477 * (f >>> 16) & 65535) << 16) ^ (c = 1540483477 * (65535 & (c ^= c >>> 24)) + ((1540483477 * (c >>> 16) & 65535) << 16)), p -= 4, ++g; - switch (p) { - case 3: - f ^= (255 & r.charCodeAt(g + 2)) << 16; - case 2: - f ^= (255 & r.charCodeAt(g + 1)) << 8; - case 1: - f = 1540483477 * (65535 & (f ^= 255 & r.charCodeAt(g))) + ((1540483477 * (f >>> 16) & 65535) << 16) - } - return f = 1540483477 * (65535 & (f ^= f >>> 13)) + ((1540483477 * (f >>> 16) & 65535) << 16), (f ^= f >>> 15) >>> 0 - }), ss.exports); - return Sa.exports = i, Sa.exports.murmur3 = i, Sa.exports.murmur2 = t, Sa.exports - })(), - Js = W(Ys); - class Is { - constructor() { - this.ids = [], this.positions = [], this.indexed = !1 - } - add(t, r, a, c) { - this.ids.push(Ms(t)), this.positions.push(r, a, c) - } - getPositions(t) { - if (!this.indexed) throw new Error("Trying to get index, but feature positions are not indexed"); - const r = Ms(t); - let a = 0, - c = this.ids.length - 1; - for (; a < c;) { - const f = a + c >> 1; - this.ids[f] >= r ? c = f : a = f + 1 - } - const p = []; - for (; this.ids[a] === r;) p.push({ - index: this.positions[3 * a], - start: this.positions[3 * a + 1], - end: this.positions[3 * a + 2] - }), a++; - return p - } - static serialize(t, r) { - const a = new Float64Array(t.ids), - c = new Uint32Array(t.positions); - return Kn(a, c, 0, a.length - 1), r && r.push(a.buffer, c.buffer), { - ids: a, - positions: c - } - } - static deserialize(t) { - const r = new Is; - return r.ids = t.ids, r.positions = t.positions, r.indexed = !0, r - } - } - - function Ms(i) { - const t = +i; - return !isNaN(t) && t <= Number.MAX_SAFE_INTEGER ? t : Js(String(i)) - } - - function Kn(i, t, r, a) { - for (; r < a;) { - const c = i[r + a >> 1]; - let p = r - 1, - f = a + 1; - for (;;) { - do p++; while (i[p] < c); - do f--; while (i[f] > c); - if (p >= f) break; - Pa(i, p, f), Pa(t, 3 * p, 3 * f), Pa(t, 3 * p + 1, 3 * f + 1), Pa(t, 3 * p + 2, 3 * f + 2) - } - f - r < a - f ? (Kn(i, t, r, f), r = f + 1) : (Kn(i, t, f + 1, a), a = f) - } - } - - function Pa(i, t, r) { - const a = i[t]; - i[t] = i[r], i[r] = a - } - Kt("FeaturePositionMap", Is); - class Vn { - constructor(t, r) { - this.gl = t.gl, this.location = r - } - } - class os extends Vn { - constructor(t, r) { - super(t, r), this.current = 0 - } - set(t) { - this.current !== t && (this.current = t, this.gl.uniform1f(this.location, t)) - } - } - class en extends Vn { - constructor(t, r) { - super(t, r), this.current = [0, 0, 0, 0] - } - set(t) { - t[0] === this.current[0] && t[1] === this.current[1] && t[2] === this.current[2] && t[3] === this.current[3] || (this.current = t, this.gl.uniform4f(this.location, t[0], t[1], t[2], t[3])) - } - } - class pn extends Vn { - constructor(t, r) { - super(t, r), this.current = yr.transparent - } - set(t) { - t.r === this.current.r && t.g === this.current.g && t.b === this.current.b && t.a === this.current.a || (this.current = t, this.gl.uniform4f(this.location, t.r, t.g, t.b, t.a)) - } - } - const da = new Float32Array(16); - - function tn(i) { - return [Ei(255 * i.r, 255 * i.g), Ei(255 * i.b, 255 * i.a)] - } - class Ro { - constructor(t, r, a) { - this.value = t, this.uniformNames = r.map((c => `u_${c}`)), this.type = a - } - setUniform(t, r, a) { - t.set(a.constantOr(this.value)) - } - getBinding(t, r, a) { - return this.type === "color" ? new pn(t, r) : new os(t, r) - } - } - class Qs { - constructor(t, r) { - this.uniformNames = r.map((a => `u_${a}`)), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1 - } - setConstantPatternPositions(t, r) { - this.pixelRatioFrom = r.pixelRatio, this.pixelRatioTo = t.pixelRatio, this.patternFrom = r.tlbr, this.patternTo = t.tlbr - } - setUniform(t, r, a, c) { - const p = c === "u_pattern_to" ? this.patternTo : c === "u_pattern_from" ? this.patternFrom : c === "u_pixel_ratio_to" ? this.pixelRatioTo : c === "u_pixel_ratio_from" ? this.pixelRatioFrom : null; - p && t.set(p) - } - getBinding(t, r, a) { - return a.substr(0, 9) === "u_pattern" ? new en(t, r) : new os(t, r) - } - } - class Ha { - constructor(t, r, a, c) { - this.expression = t, this.type = a, this.maxValue = 0, this.paintVertexAttributes = r.map((p => ({ - name: `a_${p}`, - type: "Float32", - components: a === "color" ? 2 : 1, - offset: 0 - }))), this.paintVertexArray = new c - } - populatePaintArray(t, r, a, c, p) { - const f = this.paintVertexArray.length, - g = this.expression.evaluate(new Oi(0), r, {}, c, [], p); - this.paintVertexArray.resize(t), this._setPaintValue(f, t, g) - } - updatePaintArray(t, r, a, c) { - const p = this.expression.evaluate({ - zoom: 0 - }, a, c); - this._setPaintValue(t, r, p) - } - _setPaintValue(t, r, a) { - if (this.type === "color") { - const c = tn(a); - for (let p = t; p < r; p++) this.paintVertexArray.emplace(p, c[0], c[1]) - } else { - for (let c = t; c < r; c++) this.paintVertexArray.emplace(c, a); - this.maxValue = Math.max(this.maxValue, Math.abs(a)) - } - } - upload(t) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)) - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy() - } - } - class Ia { - constructor(t, r, a, c, p, f) { - this.expression = t, this.uniformNames = r.map((g => `u_${g}_t`)), this.type = a, this.useIntegerZoom = c, this.zoom = p, this.maxValue = 0, this.paintVertexAttributes = r.map((g => ({ - name: `a_${g}`, - type: "Float32", - components: a === "color" ? 4 : 2, - offset: 0 - }))), this.paintVertexArray = new f - } - populatePaintArray(t, r, a, c, p) { - const f = this.expression.evaluate(new Oi(this.zoom), r, {}, c, [], p), - g = this.expression.evaluate(new Oi(this.zoom + 1), r, {}, c, [], p), - v = this.paintVertexArray.length; - this.paintVertexArray.resize(t), this._setPaintValue(v, t, f, g) - } - updatePaintArray(t, r, a, c) { - const p = this.expression.evaluate({ - zoom: this.zoom - }, a, c), - f = this.expression.evaluate({ - zoom: this.zoom + 1 - }, a, c); - this._setPaintValue(t, r, p, f) - } - _setPaintValue(t, r, a, c) { - if (this.type === "color") { - const p = tn(a), - f = tn(c); - for (let g = t; g < r; g++) this.paintVertexArray.emplace(g, p[0], p[1], f[0], f[1]) - } else { - for (let p = t; p < r; p++) this.paintVertexArray.emplace(p, a, c); - this.maxValue = Math.max(this.maxValue, Math.abs(a), Math.abs(c)) - } - } - upload(t) { - this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent)) - } - destroy() { - this.paintVertexBuffer && this.paintVertexBuffer.destroy() - } - setUniform(t, r) { - const a = this.useIntegerZoom ? Math.floor(r.zoom) : r.zoom, - c = xt(this.expression.interpolationFactor(a, this.zoom, this.zoom + 1), 0, 1); - t.set(c) - } - getBinding(t, r, a) { - return new os(t, r) - } - } - class ls { - constructor(t, r, a, c, p, f) { - this.expression = t, this.type = r, this.useIntegerZoom = a, this.zoom = c, this.layerId = f, this.zoomInPaintVertexArray = new p, this.zoomOutPaintVertexArray = new p - } - populatePaintArray(t, r, a) { - const c = this.zoomInPaintVertexArray.length; - this.zoomInPaintVertexArray.resize(t), this.zoomOutPaintVertexArray.resize(t), this._setPaintValues(c, t, r.patterns && r.patterns[this.layerId], a) - } - updatePaintArray(t, r, a, c, p) { - this._setPaintValues(t, r, a.patterns && a.patterns[this.layerId], p) - } - _setPaintValues(t, r, a, c) { - if (!c || !a) return; - const { - min: p, - mid: f, - max: g - } = a, v = c[p], S = c[f], I = c[g]; - if (v && S && I) - for (let E = t; E < r; E++) this.zoomInPaintVertexArray.emplace(E, S.tl[0], S.tl[1], S.br[0], S.br[1], v.tl[0], v.tl[1], v.br[0], v.br[1], S.pixelRatio, v.pixelRatio), this.zoomOutPaintVertexArray.emplace(E, S.tl[0], S.tl[1], S.br[0], S.br[1], I.tl[0], I.tl[1], I.br[0], I.br[1], S.pixelRatio, I.pixelRatio) - } - upload(t) { - this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t.createVertexBuffer(this.zoomInPaintVertexArray, Qi.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t.createVertexBuffer(this.zoomOutPaintVertexArray, Qi.members, this.expression.isStateDependent)) - } - destroy() { - this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy() - } - } - class id { - constructor(t, r, a) { - this.binders = {}, this._buffers = []; - const c = []; - for (const p in t.paint._values) { - if (!a(p)) continue; - const f = t.paint.get(p); - if (!(f instanceof Na && rs(f.property.specification))) continue; - const g = nd(p, t.type), - v = f.value, - S = f.property.specification.type, - I = f.property.useIntegerZoom, - E = f.property.specification["property-type"], - R = E === "cross-faded" || E === "cross-faded-data-driven"; - if (v.kind === "constant") this.binders[p] = R ? new Qs(v.value, g) : new Ro(v.value, g, S), c.push(`/u_${p}`); - else if (v.kind === "source" || R) { - const N = tu(p, S, "source"); - this.binders[p] = R ? new ls(v, S, I, r, N, t.id) : new Ha(v, g, S, N), c.push(`/a_${p}`) - } else { - const N = tu(p, S, "composite"); - this.binders[p] = new Ia(v, g, S, I, r, N), c.push(`/z_${p}`) - } - } - this.cacheKey = c.sort().join("") - } - getMaxValue(t) { - const r = this.binders[t]; - return r instanceof Ha || r instanceof Ia ? r.maxValue : 0 - } - populatePaintArrays(t, r, a, c, p) { - for (const f in this.binders) { - const g = this.binders[f]; - (g instanceof Ha || g instanceof Ia || g instanceof ls) && g.populatePaintArray(t, r, a, c, p) - } - } - setConstantPatternPositions(t, r) { - for (const a in this.binders) { - const c = this.binders[a]; - c instanceof Qs && c.setConstantPatternPositions(t, r) - } - } - updatePaintArrays(t, r, a, c, p) { - let f = !1; - for (const g in t) { - const v = r.getPositions(g); - for (const S of v) { - const I = a.feature(S.index); - for (const E in this.binders) { - const R = this.binders[E]; - if ((R instanceof Ha || R instanceof Ia || R instanceof ls) && R.expression.isStateDependent === !0) { - const N = c.paint.get(E); - R.expression = N.value, R.updatePaintArray(S.start, S.end, I, t[g], p), f = !0 - } - } - } - } - return f - } - defines() { - const t = []; - for (const r in this.binders) { - const a = this.binders[r]; - (a instanceof Ro || a instanceof Qs) && t.push(...a.uniformNames.map((c => `#define HAS_UNIFORM_${c}`))) - } - return t - } - getBinderAttributes() { - const t = []; - for (const r in this.binders) { - const a = this.binders[r]; - if (a instanceof Ha || a instanceof Ia) - for (let c = 0; c < a.paintVertexAttributes.length; c++) t.push(a.paintVertexAttributes[c].name); - else if (a instanceof ls) - for (let c = 0; c < Qi.members.length; c++) t.push(Qi.members[c].name) - } - return t - } - getBinderUniforms() { - const t = []; - for (const r in this.binders) { - const a = this.binders[r]; - if (a instanceof Ro || a instanceof Qs || a instanceof Ia) - for (const c of a.uniformNames) t.push(c) - } - return t - } - getPaintVertexBuffers() { - return this._buffers - } - getUniforms(t, r) { - const a = []; - for (const c in this.binders) { - const p = this.binders[c]; - if (p instanceof Ro || p instanceof Qs || p instanceof Ia) { - for (const f of p.uniformNames) - if (r[f]) { - const g = p.getBinding(t, r[f], f); - a.push({ - name: f, - property: c, - binding: g - }) - } - } - } - return a - } - setUniforms(t, r, a, c) { - for (const { - name: p, - property: f, - binding: g - } - of r) this.binders[f].setUniform(g, c, a.get(f), p) - } - updatePaintBuffers(t) { - this._buffers = []; - for (const r in this.binders) { - const a = this.binders[r]; - if (t && a instanceof ls) { - const c = t.fromScale === 2 ? a.zoomInPaintVertexBuffer : a.zoomOutPaintVertexBuffer; - c && this._buffers.push(c) - } else(a instanceof Ha || a instanceof Ia) && a.paintVertexBuffer && this._buffers.push(a.paintVertexBuffer) - } - } - upload(t) { - for (const r in this.binders) { - const a = this.binders[r]; - (a instanceof Ha || a instanceof Ia || a instanceof ls) && a.upload(t) - } - this.updatePaintBuffers() - } - destroy() { - for (const t in this.binders) { - const r = this.binders[t]; - (r instanceof Ha || r instanceof Ia || r instanceof ls) && r.destroy() - } - } - } - class ia { - constructor(t, r, a = () => !0) { - this.programConfigurations = {}; - for (const c of t) this.programConfigurations[c.id] = new id(c, r, a); - this.needsUpload = !1, this._featureMap = new Is, this._bufferOffset = 0 - } - populatePaintArrays(t, r, a, c, p, f) { - for (const g in this.programConfigurations) this.programConfigurations[g].populatePaintArrays(t, r, c, p, f); - r.id !== void 0 && this._featureMap.add(r.id, a, this._bufferOffset, t), this._bufferOffset = t, this.needsUpload = !0 - } - updatePaintArrays(t, r, a, c) { - for (const p of a) this.needsUpload = this.programConfigurations[p.id].updatePaintArrays(t, this._featureMap, r, p, c) || this.needsUpload - } - get(t) { - return this.programConfigurations[t] - } - upload(t) { - if (this.needsUpload) { - for (const r in this.programConfigurations) this.programConfigurations[r].upload(t); - this.needsUpload = !1 - } - } - destroy() { - for (const t in this.programConfigurations) this.programConfigurations[t].destroy() - } - } - - function nd(i, t) { - return { - "text-opacity": ["opacity"], - "icon-opacity": ["opacity"], - "text-color": ["fill_color"], - "icon-color": ["fill_color"], - "text-halo-color": ["halo_color"], - "icon-halo-color": ["halo_color"], - "text-halo-blur": ["halo_blur"], - "icon-halo-blur": ["halo_blur"], - "text-halo-width": ["halo_width"], - "icon-halo-width": ["halo_width"], - "line-gap-width": ["gapwidth"], - "line-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], - "fill-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"], - "fill-extrusion-pattern": ["pattern_to", "pattern_from", "pixel_ratio_to", "pixel_ratio_from"] - } [i] || [i.replace(`${t}-`, "").replace(/-/g, "_")] - } - - function tu(i, t, r) { - const a = { - color: { - source: Do, - composite: M - }, - number: { - source: d, - composite: Do - } - }, - c = (function(p) { - return { - "line-pattern": { - source: Rt, - composite: Rt - }, - "fill-pattern": { - source: Rt, - composite: Rt - }, - "fill-extrusion-pattern": { - source: Rt, - composite: Rt - } - } [p] - })(i); - return c && c[r] || a[t][r] - } - Kt("ConstantBinder", Ro), Kt("CrossFadedConstantBinder", Qs), Kt("SourceExpressionBinder", Ha), Kt("CrossFadedCompositeBinder", ls), Kt("CompositeExpressionBinder", Ia), Kt("ProgramConfiguration", id, { - omit: ["_buffers"] - }), Kt("ProgramConfigurationSet", ia); - const kl = Math.pow(2, 14) - 1, - El = -kl - 1; - - function cs(i) { - const t = ne / i.extent, - r = i.loadGeometry(); - for (let a = 0; a < r.length; a++) { - const c = r[a]; - for (let p = 0; p < c.length; p++) { - const f = c[p], - g = Math.round(f.x * t), - v = Math.round(f.y * t); - f.x = xt(g, El, kl), f.y = xt(v, El, kl), (g < f.x || g > f.x + 1 || v < f.y || v > f.y + 1) && Lt("Geometry exceeds allowed extent, reduce your vector tile buffer size") - } - } - return r - } - - function Wa(i, t) { - return { - type: i.type, - id: i.id, - properties: i.properties, - geometry: t ? cs(i) : [] - } - } - const Cm = -32768; - - function Bv(i, t, r, a, c) { - i.emplaceBack(Cm + 8 * t + a, Cm + 8 * r + c) - } - class wp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.layoutVertexArray = new De, this.indexArray = new ki, this.segments = new Wr, this.programConfigurations = new ia(t.layers, t.zoom), this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - const c = this.layers[0], - p = []; - let f = null, - g = !1, - v = c.type === "heatmap"; - if (c.type === "circle") { - const I = c; - f = I.layout.get("circle-sort-key"), g = !f.isConstant(), v = v || I.paint.get("circle-pitch-alignment") === "map" - } - const S = v ? r.subdivisionGranularity.circle : 1; - for (const { - feature: I, - id: E, - index: R, - sourceLayerIndex: N - } - of t) { - const j = this.layers[0]._featureFilter.needGeometry, - Z = Wa(I, j); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), Z, a)) continue; - const Y = g ? f.evaluate(Z, {}, a) : void 0, - ae = { - id: E, - properties: I.properties, - type: I.type, - sourceLayerIndex: N, - index: R, - geometry: j ? Z.geometry : cs(I), - patterns: {}, - sortKey: Y - }; - p.push(ae) - } - g && p.sort(((I, E) => I.sortKey - E.sortKey)); - for (const I of p) { - const { - geometry: E, - index: R, - sourceLayerIndex: N - } = I, j = t[R].feature; - this.addFeature(I, E, R, a, S), r.featureIndex.insert(j, E, R, N, this.index) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - isEmpty() { - return this.layoutVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, Ui), this.indexBuffer = t.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()) - } - addFeature(t, r, a, c, p = 1) { - let f; - switch (p) { - case 1: - f = [0, 7]; - break; - case 3: - f = [0, 2, 5, 7]; - break; - case 5: - f = [0, 1, 3, 4, 6, 7]; - break; - case 7: - f = [0, 1, 2, 3, 4, 5, 6, 7]; - break; - default: - throw new Error(`Invalid circle bucket granularity: ${p}; valid values are 1, 3, 5, 7.`) - } - const g = f.length; - for (const v of r) - for (const S of v) { - const I = S.x, - E = S.y; - if (I < 0 || I >= ne || E < 0 || E >= ne) continue; - const R = this.segments.prepareSegment(g * g, this.layoutVertexArray, this.indexArray, t.sortKey), - N = R.vertexLength; - for (let j = 0; j < g; j++) - for (let Z = 0; Z < g; Z++) Bv(this.layoutVertexArray, I, E, f[Z], f[j]); - for (let j = 0; j < g - 1; j++) - for (let Z = 0; Z < g - 1; Z++) { - const Y = N + j * g + Z, - ae = N + (j + 1) * g + Z; - this.indexArray.emplaceBack(Y, ae + 1, Y + 1), this.indexArray.emplaceBack(Y, ae, ae + 1) - } - R.vertexLength += g * g, R.primitiveLength += (g - 1) * (g - 1) * 2 - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, {}, c) - } - } - - function Sm(i, t) { - for (let r = 0; r < i.length; r++) - if (zl(t, i[r])) return !0; - for (let r = 0; r < t.length; r++) - if (zl(i, t[r])) return !0; - return !!Tp(i, t) - } - - function Fv(i, t, r) { - return !!zl(i, t) || !!Cp(t, i, r) - } - - function Pm(i, t) { - if (i.length === 1) return Mm(t, i[0]); - for (let r = 0; r < t.length; r++) { - const a = t[r]; - for (let c = 0; c < a.length; c++) - if (zl(i, a[c])) return !0 - } - for (let r = 0; r < i.length; r++) - if (Mm(t, i[r])) return !0; - for (let r = 0; r < t.length; r++) - if (Tp(i, t[r])) return !0; - return !1 - } - - function Ov(i, t, r) { - if (i.length > 1) { - if (Tp(i, t)) return !0; - for (let a = 0; a < t.length; a++) - if (Cp(t[a], i, r)) return !0 - } - for (let a = 0; a < i.length; a++) - if (Cp(i[a], t, r)) return !0; - return !1 - } - - function Tp(i, t) { - if (i.length === 0 || t.length === 0) return !1; - for (let r = 0; r < i.length - 1; r++) { - const a = i[r], - c = i[r + 1]; - for (let p = 0; p < t.length - 1; p++) - if (Nv(a, c, t[p], t[p + 1])) return !0 - } - return !1 - } - - function Nv(i, t, r, a) { - return Xt(i, r, a) !== Xt(t, r, a) && Xt(i, t, r) !== Xt(i, t, a) - } - - function Cp(i, t, r) { - const a = r * r; - if (t.length === 1) return i.distSqr(t[0]) < a; - for (let c = 1; c < t.length; c++) - if (Im(i, t[c - 1], t[c]) < a) return !0; - return !1 - } - - function Im(i, t, r) { - const a = t.distSqr(r); - if (a === 0) return i.distSqr(t); - const c = ((i.x - t.x) * (r.x - t.x) + (i.y - t.y) * (r.y - t.y)) / a; - return i.distSqr(c < 0 ? t : c > 1 ? r : r.sub(t)._mult(c)._add(t)) - } - - function Mm(i, t) { - let r, a, c, p = !1; - for (let f = 0; f < i.length; f++) { - r = i[f]; - for (let g = 0, v = r.length - 1; g < r.length; v = g++) a = r[g], c = r[v], a.y > t.y != c.y > t.y && t.x < (c.x - a.x) * (t.y - a.y) / (c.y - a.y) + a.x && (p = !p) - } - return p - } - - function zl(i, t) { - let r = !1; - for (let a = 0, c = i.length - 1; a < i.length; c = a++) { - const p = i[a], - f = i[c]; - p.y > t.y != f.y > t.y && t.x < (f.x - p.x) * (t.y - p.y) / (f.y - p.y) + p.x && (r = !r) - } - return r - } - - function jv(i, t, r) { - const a = r[0], - c = r[2]; - if (i.x < a.x && t.x < a.x || i.x > c.x && t.x > c.x || i.y < a.y && t.y < a.y || i.y > c.y && t.y > c.y) return !1; - const p = Xt(i, t, r[0]); - return p !== Xt(i, t, r[1]) || p !== Xt(i, t, r[2]) || p !== Xt(i, t, r[3]) - } - - function ru(i, t, r) { - const a = t.paint.get(i).value; - return a.kind === "constant" ? a.value : r.programConfigurations.get(t.id).getMaxValue(i) - } - - function ad(i) { - return Math.sqrt(i[0] * i[0] + i[1] * i[1]) - } - - function sd(i, t, r, a, c) { - if (!t[0] && !t[1]) return i; - const p = $.convert(t)._mult(c); - r === "viewport" && p._rotate(-a); - const f = []; - for (let g = 0; g < i.length; g++) f.push(i[g].sub(p)); - return f - } - let Am, km; - Kt("CircleBucket", wp, { - omit: ["layers"] - }); - var qv = { - get paint() { - return km = km || new jn({ - "circle-radius": new Rr(xe.paint_circle["circle-radius"]), - "circle-color": new Rr(xe.paint_circle["circle-color"]), - "circle-blur": new Rr(xe.paint_circle["circle-blur"]), - "circle-opacity": new Rr(xe.paint_circle["circle-opacity"]), - "circle-translate": new hr(xe.paint_circle["circle-translate"]), - "circle-translate-anchor": new hr(xe.paint_circle["circle-translate-anchor"]), - "circle-pitch-scale": new hr(xe.paint_circle["circle-pitch-scale"]), - "circle-pitch-alignment": new hr(xe.paint_circle["circle-pitch-alignment"]), - "circle-stroke-width": new Rr(xe.paint_circle["circle-stroke-width"]), - "circle-stroke-color": new Rr(xe.paint_circle["circle-stroke-color"]), - "circle-stroke-opacity": new Rr(xe.paint_circle["circle-stroke-opacity"]) - }) - }, - get layout() { - return Am = Am || new jn({ - "circle-sort-key": new Rr(xe.layout_circle["circle-sort-key"]) - }) - } - }; - class Vv extends ha { - constructor(t) { - super(t, qv) - } - createBucket(t) { - return new wp(t) - } - queryRadius(t) { - const r = t; - return ru("circle-radius", this, r) + ru("circle-stroke-width", this, r) + ad(this.paint.get("circle-translate")) - } - queryIntersectsFeature({ - queryGeometry: t, - feature: r, - featureState: a, - geometry: c, - transform: p, - pixelsToTileUnits: f, - unwrappedTileID: g, - getElevation: v - }) { - const S = sd(t, this.paint.get("circle-translate"), this.paint.get("circle-translate-anchor"), -p.bearingInRadians, f), - I = this.paint.get("circle-radius").evaluate(r, a) + this.paint.get("circle-stroke-width").evaluate(r, a), - E = this.paint.get("circle-pitch-alignment") === "map", - R = E ? S : (function(j, Z, Y, ae) { - return j.map((ze => Em(ze, Z, Y, ae))) - })(S, p, g, v), - N = E ? I * f : I; - for (const j of c) - for (const Z of j) { - const Y = E ? Z : Em(Z, p, g, v); - let ae = N; - const ze = p.projectTileCoordinates(Z.x, Z.y, g, v).signedDistanceFromCamera; - if (this.paint.get("circle-pitch-scale") === "viewport" && this.paint.get("circle-pitch-alignment") === "map" ? ae *= ze / p.cameraToCenterDistance : this.paint.get("circle-pitch-scale") === "map" && this.paint.get("circle-pitch-alignment") === "viewport" && (ae *= p.cameraToCenterDistance / ze), Fv(R, Y, ae)) return !0 - } - return !1 - } - } - - function Em(i, t, r, a) { - const c = t.projectTileCoordinates(i.x, i.y, r, a).point; - return new $((.5 * c.x + .5) * t.width, (.5 * -c.y + .5) * t.height) - } - class zm extends wp {} - let Lm; - Kt("HeatmapBucket", zm, { - omit: ["layers"] - }); - var Uv = { - get paint() { - return Lm = Lm || new jn({ - "heatmap-radius": new Rr(xe.paint_heatmap["heatmap-radius"]), - "heatmap-weight": new Rr(xe.paint_heatmap["heatmap-weight"]), - "heatmap-intensity": new hr(xe.paint_heatmap["heatmap-intensity"]), - "heatmap-color": new Pl(xe.paint_heatmap["heatmap-color"]), - "heatmap-opacity": new hr(xe.paint_heatmap["heatmap-opacity"]) - }) - } - }; - - function Sp(i, { - width: t, - height: r - }, a, c) { - if (c) { - if (c instanceof Uint8ClampedArray) c = new Uint8Array(c.buffer); - else if (c.length !== t * r * a) throw new RangeError(`mismatched image size. expected: ${c.length} but got: ${t*r*a}`) - } else c = new Uint8Array(t * r * a); - return i.width = t, i.height = r, i.data = c, i - } - - function Dm(i, { - width: t, - height: r - }, a) { - if (t === i.width && r === i.height) return; - const c = Sp({}, { - width: t, - height: r - }, a); - Pp(i, c, { - x: 0, - y: 0 - }, { - x: 0, - y: 0 - }, { - width: Math.min(i.width, t), - height: Math.min(i.height, r) - }, a), i.width = t, i.height = r, i.data = c.data - } - - function Pp(i, t, r, a, c, p) { - if (c.width === 0 || c.height === 0) return t; - if (c.width > i.width || c.height > i.height || r.x > i.width - c.width || r.y > i.height - c.height) throw new RangeError("out of range source coordinates for image copy"); - if (c.width > t.width || c.height > t.height || a.x > t.width - c.width || a.y > t.height - c.height) throw new RangeError("out of range destination coordinates for image copy"); - const f = i.data, - g = t.data; - if (f === g) throw new Error("srcData equals dstData, so image is already copied"); - for (let v = 0; v < c.height; v++) { - const S = ((r.y + v) * i.width + r.x) * p, - I = ((a.y + v) * t.width + a.x) * p; - for (let E = 0; E < c.width * p; E++) g[I + E] = f[S + E] - } - return t - } - class iu { - constructor(t, r) { - Sp(this, t, 1, r) - } - resize(t) { - Dm(this, t, 1) - } - clone() { - return new iu({ - width: this.width, - height: this.height - }, new Uint8Array(this.data)) - } - static copy(t, r, a, c, p) { - Pp(t, r, a, c, p, 1) - } - } - class na { - constructor(t, r) { - Sp(this, t, 4, r) - } - resize(t) { - Dm(this, t, 4) - } - replace(t, r) { - r ? this.data.set(t) : this.data = t instanceof Uint8ClampedArray ? new Uint8Array(t.buffer) : t - } - clone() { - return new na({ - width: this.width, - height: this.height - }, new Uint8Array(this.data)) - } - static copy(t, r, a, c, p) { - Pp(t, r, a, c, p, 4) - } - setPixel(t, r, a) { - const c = 4 * (t * this.width + r); - this.data[c + 0] = Math.round(255 * a.r / a.a), this.data[c + 1] = Math.round(255 * a.g / a.a), this.data[c + 2] = Math.round(255 * a.b / a.a), this.data[c + 3] = Math.round(255 * a.a) - } - } - - function Rm(i) { - const t = {}, - r = i.resolution || 256, - a = i.clips ? i.clips.length : 1, - c = i.image || new na({ - width: r, - height: a - }); - if (Math.log(r) / Math.LN2 % 1 != 0) throw new Error(`width is not a power of 2 - ${r}`); - const p = (f, g, v) => { - t[i.evaluationKey] = v; - const S = i.expression.evaluate(t); - c.setPixel(f / 4 / r, g / 4, S) - }; - if (i.clips) - for (let f = 0, g = 0; f < a; ++f, g += 4 * r) - for (let v = 0, S = 0; v < r; v++, S += 4) { - const I = v / (r - 1), - { - start: E, - end: R - } = i.clips[f]; - p(g, S, E * (1 - I) + R * I) - } else - for (let f = 0, g = 0; f < r; f++, g += 4) p(0, g, f / (r - 1)); - return c - } - Kt("AlphaImage", iu), Kt("RGBAImage", na); - const Ip = "big-fb"; - class Zv extends ha { - createBucket(t) { - return new zm(t) - } - constructor(t) { - super(t, Uv), this.heatmapFbos = new Map, this._updateColorRamp() - } - _handleSpecialPaintPropertyUpdate(t) { - t === "heatmap-color" && this._updateColorRamp() - } - _updateColorRamp() { - this.colorRamp = Rm({ - expression: this._transitionablePaint._values["heatmap-color"].value.expression, - evaluationKey: "heatmapDensity", - image: this.colorRamp - }), this.colorRampTexture = null - } - resize() { - this.heatmapFbos.has(Ip) && this.heatmapFbos.delete(Ip) - } - queryRadius() { - return 0 - } - queryIntersectsFeature() { - return !1 - } - hasOffscreenPass() { - return this.paint.get("heatmap-opacity") !== 0 && this.visibility !== "none" - } - } - let Bm; - var $v = { - get paint() { - return Bm = Bm || new jn({ - "hillshade-illumination-direction": new hr(xe.paint_hillshade["hillshade-illumination-direction"]), - "hillshade-illumination-altitude": new hr(xe.paint_hillshade["hillshade-illumination-altitude"]), - "hillshade-illumination-anchor": new hr(xe.paint_hillshade["hillshade-illumination-anchor"]), - "hillshade-exaggeration": new hr(xe.paint_hillshade["hillshade-exaggeration"]), - "hillshade-shadow-color": new hr(xe.paint_hillshade["hillshade-shadow-color"]), - "hillshade-highlight-color": new hr(xe.paint_hillshade["hillshade-highlight-color"]), - "hillshade-accent-color": new hr(xe.paint_hillshade["hillshade-accent-color"]), - "hillshade-method": new hr(xe.paint_hillshade["hillshade-method"]) - }) - } - }; - class Gv extends ha { - constructor(t) { - super(t, $v), this.recalculate({ - zoom: 0, - zoomHistory: {} - }, void 0) - } - getIlluminationProperties() { - let t = this.paint.get("hillshade-illumination-direction").values, - r = this.paint.get("hillshade-illumination-altitude").values, - a = this.paint.get("hillshade-highlight-color").values, - c = this.paint.get("hillshade-shadow-color").values; - const p = Math.max(t.length, r.length, a.length, c.length); - t = t.concat(Array(p - t.length).fill(t.at(-1))), r = r.concat(Array(p - r.length).fill(r.at(-1))), a = a.concat(Array(p - a.length).fill(a.at(-1))), c = c.concat(Array(p - c.length).fill(c.at(-1))); - const f = r.map(ur); - return { - directionRadians: t.map(ur), - altitudeRadians: f, - shadowColor: c, - highlightColor: a - } - } - hasOffscreenPass() { - return this.paint.get("hillshade-exaggeration") !== 0 && this.visibility !== "none" - } - } - let Fm; - var Hv = { - get paint() { - return Fm = Fm || new jn({ - "color-relief-opacity": new hr(xe["paint_color-relief"]["color-relief-opacity"]), - "color-relief-color": new Pl(xe["paint_color-relief"]["color-relief-color"]) - }) - } - }; - class Mp { - constructor(t, r, a, c) { - this.context = t, this.format = a, this.texture = t.gl.createTexture(), this.update(r, c) - } - update(t, r, a) { - const { - width: c, - height: p - } = t, f = !(this.size && this.size[0] === c && this.size[1] === p || a), { - context: g - } = this, { - gl: v - } = g; - if (this.useMipmap = !!(r && r.useMipmap), v.bindTexture(v.TEXTURE_2D, this.texture), g.pixelStoreUnpackFlipY.set(!1), g.pixelStoreUnpack.set(1), g.pixelStoreUnpackPremultiplyAlpha.set(this.format === v.RGBA && (!r || r.premultiply !== !1)), f) this.size = [c, p], t instanceof HTMLImageElement || t instanceof HTMLCanvasElement || t instanceof HTMLVideoElement || t instanceof ImageData || ar(t) ? v.texImage2D(v.TEXTURE_2D, 0, this.format, this.format, v.UNSIGNED_BYTE, t) : v.texImage2D(v.TEXTURE_2D, 0, this.format, c, p, 0, this.format, v.UNSIGNED_BYTE, t.data); - else { - const { - x: S, - y: I - } = a || { - x: 0, - y: 0 - }; - t instanceof HTMLImageElement || t instanceof HTMLCanvasElement || t instanceof HTMLVideoElement || t instanceof ImageData || ar(t) ? v.texSubImage2D(v.TEXTURE_2D, 0, S, I, v.RGBA, v.UNSIGNED_BYTE, t) : v.texSubImage2D(v.TEXTURE_2D, 0, S, I, c, p, v.RGBA, v.UNSIGNED_BYTE, t.data) - } - this.useMipmap && this.isSizePowerOfTwo() && v.generateMipmap(v.TEXTURE_2D), g.pixelStoreUnpackFlipY.setDefault(), g.pixelStoreUnpack.setDefault(), g.pixelStoreUnpackPremultiplyAlpha.setDefault() - } - bind(t, r, a) { - const { - context: c - } = this, { - gl: p - } = c; - p.bindTexture(p.TEXTURE_2D, this.texture), a !== p.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (a = p.LINEAR), t !== this.filter && (p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MAG_FILTER, t), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MIN_FILTER, a || t), this.filter = t), r !== this.wrap && (p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_S, r), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_T, r), this.wrap = r) - } - isSizePowerOfTwo() { - return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0 - } - destroy() { - const { - gl: t - } = this.context; - t.deleteTexture(this.texture), this.texture = null - } - } - class Om { - constructor(t, r, a, c = 1, p = 1, f = 1, g = 0) { - if (this.uid = t, r.height !== r.width) throw new RangeError("DEM tiles must be square"); - if (a && !["mapbox", "terrarium", "custom"].includes(a)) return void Lt(`"${a}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`); - this.stride = r.height; - const v = this.dim = r.height - 2; - switch (this.data = new Uint32Array(r.data.buffer), a) { - case "terrarium": - this.redFactor = 256, this.greenFactor = 1, this.blueFactor = 1 / 256, this.baseShift = 32768; - break; - case "custom": - this.redFactor = c, this.greenFactor = p, this.blueFactor = f, this.baseShift = g; - break; - default: - this.redFactor = 6553.6, this.greenFactor = 25.6, this.blueFactor = .1, this.baseShift = 1e4 - } - for (let S = 0; S < v; S++) this.data[this._idx(-1, S)] = this.data[this._idx(0, S)], this.data[this._idx(v, S)] = this.data[this._idx(v - 1, S)], this.data[this._idx(S, -1)] = this.data[this._idx(S, 0)], this.data[this._idx(S, v)] = this.data[this._idx(S, v - 1)]; - this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(v, -1)] = this.data[this._idx(v - 1, 0)], this.data[this._idx(-1, v)] = this.data[this._idx(0, v - 1)], this.data[this._idx(v, v)] = this.data[this._idx(v - 1, v - 1)], this.min = Number.MAX_SAFE_INTEGER, this.max = Number.MIN_SAFE_INTEGER; - for (let S = 0; S < v; S++) - for (let I = 0; I < v; I++) { - const E = this.get(S, I); - E > this.max && (this.max = E), E < this.min && (this.min = E) - } - } - get(t, r) { - const a = new Uint8Array(this.data.buffer), - c = 4 * this._idx(t, r); - return this.unpack(a[c], a[c + 1], a[c + 2]) - } - getUnpackVector() { - return [this.redFactor, this.greenFactor, this.blueFactor, this.baseShift] - } - _idx(t, r) { - if (t < -1 || t >= this.dim + 1 || r < -1 || r >= this.dim + 1) throw new RangeError("out of range source coordinates for DEM data"); - return (r + 1) * this.stride + (t + 1) - } - unpack(t, r, a) { - return t * this.redFactor + r * this.greenFactor + a * this.blueFactor - this.baseShift - } - pack(t) { - return Nm(t, this.getUnpackVector()) - } - getPixels() { - return new na({ - width: this.stride, - height: this.stride - }, new Uint8Array(this.data.buffer)) - } - backfillBorder(t, r, a) { - if (this.dim !== t.dim) throw new Error("dem dimension mismatch"); - let c = r * this.dim, - p = r * this.dim + this.dim, - f = a * this.dim, - g = a * this.dim + this.dim; - switch (r) { - case -1: - c = p - 1; - break; - case 1: - p = c + 1 - } - switch (a) { - case -1: - f = g - 1; - break; - case 1: - g = f + 1 - } - const v = -r * this.dim, - S = -a * this.dim; - for (let I = f; I < g; I++) - for (let E = c; E < p; E++) this.data[this._idx(E, I)] = t.data[this._idx(E + v, I + S)] - } - } - - function Nm(i, t) { - const r = t[0], - a = t[1], - c = t[2], - p = t[3], - f = Math.min(r, a, c), - g = Math.round((i + p) / f); - return { - r: Math.floor(g * f / r) % 256, - g: Math.floor(g * f / a) % 256, - b: Math.floor(g * f / c) % 256 - } - } - Kt("DEMData", Om); - class Wv extends ha { - constructor(t) { - super(t, Hv) - } - _createColorRamp(t) { - const r = { - elevationStops: [], - colorStops: [] - }, - a = this._transitionablePaint._values["color-relief-color"].value.expression; - if (a instanceof So && a._styleExpression.expression instanceof In) { - this.colorRampExpression = a; - const f = a._styleExpression.expression; - r.elevationStops = f.labels, r.colorStops = []; - for (const g of r.elevationStops) r.colorStops.push(f.evaluate({ - globals: { - elevation: g - } - })) - } - if (r.elevationStops.length < 1 && (r.elevationStops = [0], r.colorStops = [yr.transparent]), r.elevationStops.length < 2 && (r.elevationStops.push(r.elevationStops[0] + 1), r.colorStops.push(r.colorStops[0])), r.elevationStops.length <= t) return r; - const c = { - elevationStops: [], - colorStops: [] - }, - p = (r.elevationStops.length - 1) / (t - 1); - for (let f = 0; f < r.elevationStops.length - .5; f += p) c.elevationStops.push(r.elevationStops[Math.round(f)]), c.colorStops.push(r.colorStops[Math.round(f)]); - return Lt(`Too many colors in specification of ${this.id} color-relief layer, may not render properly.`), c - } - _colorRampChanged() { - return this.colorRampExpression != this._transitionablePaint._values["color-relief-color"].value.expression - } - getColorRampTextures(t, r, a) { - if (this.colorRampTextures && !this._colorRampChanged()) return this.colorRampTextures; - const c = this._createColorRamp(r), - p = new na({ - width: c.colorStops.length, - height: 1 - }), - f = new na({ - width: c.colorStops.length, - height: 1 - }); - for (let g = 0; g < c.elevationStops.length; g++) { - const v = Nm(c.elevationStops[g], a); - f.setPixel(0, g, new yr(v.r / 255, v.g / 255, v.b / 255, 1)), p.setPixel(0, g, c.colorStops[g]) - } - return this.colorRampTextures = { - elevationTexture: new Mp(t, f, t.gl.RGBA), - colorTexture: new Mp(t, p, t.gl.RGBA) - }, this.colorRampTextures - } - hasOffscreenPass() { - return this.visibility !== "none" && !!this.colorRampTextures - } - } - const Xv = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }], 4), - { - members: Kv - } = Xv; - - function Ap(i, t, r) { - const a = r.patternDependencies; - let c = !1; - for (const p of t) { - const f = p.paint.get(`${i}-pattern`); - f.isConstant() || (c = !0); - const g = f.constantOr(null); - g && (c = !0, a[g.to] = !0, a[g.from] = !0) - } - return c - } - - function kp(i, t, r, a, c) { - const p = c.patternDependencies; - for (const f of t) { - const g = f.paint.get(`${i}-pattern`).value; - if (g.kind !== "constant") { - let v = g.evaluate({ - zoom: a - 1 - }, r, {}, c.availableImages), - S = g.evaluate({ - zoom: a - }, r, {}, c.availableImages), - I = g.evaluate({ - zoom: a + 1 - }, r, {}, c.availableImages); - v = v && v.name ? v.name : v, S = S && S.name ? S.name : S, I = I && I.name ? I.name : I, p[v] = !0, p[S] = !0, p[I] = !0, r.patterns[f.id] = { - min: v, - mid: S, - max: I - } - } - } - return r - } - - function jm(i, t, r, a, c) { - let p; - if (c === (function(f, g, v, S) { - let I = 0; - for (let E = g, R = v - S; E < v; E += S) I += (f[R] - f[E]) * (f[E + 1] + f[R + 1]), R = E; - return I - })(i, t, r, a) > 0) - for (let f = t; f < r; f += a) p = Zm(f / a | 0, i[f], i[f + 1], p); - else - for (let f = r - a; f >= t; f -= a) p = Zm(f / a | 0, i[f], i[f + 1], p); - return p && Ll(p, p.next) && (ou(p), p = p.next), p - } - - function Bo(i, t) { - if (!i) return i; - t || (t = i); - let r, a = i; - do - if (r = !1, a.steiner || !Ll(a, a.next) && Yi(a.prev, a, a.next) !== 0) a = a.next; - else { - if (ou(a), a = t = a.prev, a === a.next) break; - r = !0 - } while (r || a !== t); - return t - } - - function nu(i, t, r, a, c, p, f) { - if (!i) return; - !f && p && (function(v, S, I, E) { - let R = v; - do R.z === 0 && (R.z = Ep(R.x, R.y, S, I, E)), R.prevZ = R.prev, R.nextZ = R.next, R = R.next; while (R !== v); - R.prevZ.nextZ = null, R.prevZ = null, (function(N) { - let j, Z = 1; - do { - let Y, ae = N; - N = null; - let ze = null; - for (j = 0; ae;) { - j++; - let me = ae, - be = 0; - for (let rt = 0; rt < Z && (be++, me = me.nextZ, me); rt++); - let Ve = Z; - for (; be > 0 || Ve > 0 && me;) be !== 0 && (Ve === 0 || !me || ae.z <= me.z) ? (Y = ae, ae = ae.nextZ, be--) : (Y = me, me = me.nextZ, Ve--), ze ? ze.nextZ = Y : N = Y, Y.prevZ = ze, ze = Y; - ae = me - } - ze.nextZ = null, Z *= 2 - } while (j > 1) - })(R) - })(i, a, c, p); - let g = i; - for (; i.prev !== i.next;) { - const v = i.prev, - S = i.next; - if (p ? Jv(i, a, c, p) : Yv(i)) t.push(v.i, i.i, S.i), ou(i), i = S.next, g = S.next; - else if ((i = S) === g) { - f ? f === 1 ? nu(i = Qv(Bo(i), t), t, r, a, c, p, 2) : f === 2 && e0(i, t, r, a, c, p) : nu(Bo(i), t, r, a, c, p, 1); - break - } - } - } - - function Yv(i) { - const t = i.prev, - r = i, - a = i.next; - if (Yi(t, r, a) >= 0) return !1; - const c = t.x, - p = r.x, - f = a.x, - g = t.y, - v = r.y, - S = a.y, - I = Math.min(c, p, f), - E = Math.min(g, v, S), - R = Math.max(c, p, f), - N = Math.max(g, v, S); - let j = a.next; - for (; j !== t;) { - if (j.x >= I && j.x <= R && j.y >= E && j.y <= N && au(c, g, p, v, f, S, j.x, j.y) && Yi(j.prev, j, j.next) >= 0) return !1; - j = j.next - } - return !0 - } - - function Jv(i, t, r, a) { - const c = i.prev, - p = i, - f = i.next; - if (Yi(c, p, f) >= 0) return !1; - const g = c.x, - v = p.x, - S = f.x, - I = c.y, - E = p.y, - R = f.y, - N = Math.min(g, v, S), - j = Math.min(I, E, R), - Z = Math.max(g, v, S), - Y = Math.max(I, E, R), - ae = Ep(N, j, t, r, a), - ze = Ep(Z, Y, t, r, a); - let me = i.prevZ, - be = i.nextZ; - for (; me && me.z >= ae && be && be.z <= ze;) { - if (me.x >= N && me.x <= Z && me.y >= j && me.y <= Y && me !== c && me !== f && au(g, I, v, E, S, R, me.x, me.y) && Yi(me.prev, me, me.next) >= 0 || (me = me.prevZ, be.x >= N && be.x <= Z && be.y >= j && be.y <= Y && be !== c && be !== f && au(g, I, v, E, S, R, be.x, be.y) && Yi(be.prev, be, be.next) >= 0)) return !1; - be = be.nextZ - } - for (; me && me.z >= ae;) { - if (me.x >= N && me.x <= Z && me.y >= j && me.y <= Y && me !== c && me !== f && au(g, I, v, E, S, R, me.x, me.y) && Yi(me.prev, me, me.next) >= 0) return !1; - me = me.prevZ - } - for (; be && be.z <= ze;) { - if (be.x >= N && be.x <= Z && be.y >= j && be.y <= Y && be !== c && be !== f && au(g, I, v, E, S, R, be.x, be.y) && Yi(be.prev, be, be.next) >= 0) return !1; - be = be.nextZ - } - return !0 - } - - function Qv(i, t) { - let r = i; - do { - const a = r.prev, - c = r.next.next; - !Ll(a, c) && Vm(a, r, r.next, c) && su(a, c) && su(c, a) && (t.push(a.i, r.i, c.i), ou(r), ou(r.next), r = i = c), r = r.next - } while (r !== i); - return Bo(r) - } - - function e0(i, t, r, a, c, p) { - let f = i; - do { - let g = f.next.next; - for (; g !== f.prev;) { - if (f.i !== g.i && a0(f, g)) { - let v = Um(f, g); - return f = Bo(f, f.next), v = Bo(v, v.next), nu(f, t, r, a, c, p, 0), void nu(v, t, r, a, c, p, 0) - } - g = g.next - } - f = f.next - } while (f !== i) - } - - function t0(i, t) { - let r = i.x - t.x; - return r === 0 && (r = i.y - t.y, r === 0) && (r = (i.next.y - i.y) / (i.next.x - i.x) - (t.next.y - t.y) / (t.next.x - t.x)), r - } - - function r0(i, t) { - const r = (function(c, p) { - let f = p; - const g = c.x, - v = c.y; - let S, I = -1 / 0; - if (Ll(c, f)) return f; - do { - if (Ll(c, f.next)) return f.next; - if (v <= f.y && v >= f.next.y && f.next.y !== f.y) { - const Z = f.x + (v - f.y) * (f.next.x - f.x) / (f.next.y - f.y); - if (Z <= g && Z > I && (I = Z, S = f.x < f.next.x ? f : f.next, Z === g)) return S - } - f = f.next - } while (f !== p); - if (!S) return null; - const E = S, - R = S.x, - N = S.y; - let j = 1 / 0; - f = S; - do { - if (g >= f.x && f.x >= R && g !== f.x && qm(v < N ? g : I, v, R, N, v < N ? I : g, v, f.x, f.y)) { - const Z = Math.abs(v - f.y) / (g - f.x); - su(f, c) && (Z < j || Z === j && (f.x > S.x || f.x === S.x && i0(S, f))) && (S = f, j = Z) - } - f = f.next - } while (f !== E); - return S - })(i, t); - if (!r) return t; - const a = Um(r, i); - return Bo(a, a.next), Bo(r, r.next) - } - - function i0(i, t) { - return Yi(i.prev, i, t.prev) < 0 && Yi(t.next, i, i.next) < 0 - } - - function Ep(i, t, r, a, c) { - return (i = 1431655765 & ((i = 858993459 & ((i = 252645135 & ((i = 16711935 & ((i = (i - r) * c | 0) | i << 8)) | i << 4)) | i << 2)) | i << 1)) | (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = (t - a) * c | 0) | t << 8)) | t << 4)) | t << 2)) | t << 1)) << 1 - } - - function n0(i) { - let t = i, - r = i; - do(t.x < r.x || t.x === r.x && t.y < r.y) && (r = t), t = t.next; while (t !== i); - return r - } - - function qm(i, t, r, a, c, p, f, g) { - return (c - f) * (t - g) >= (i - f) * (p - g) && (i - f) * (a - g) >= (r - f) * (t - g) && (r - f) * (p - g) >= (c - f) * (a - g) - } - - function au(i, t, r, a, c, p, f, g) { - return !(i === f && t === g) && qm(i, t, r, a, c, p, f, g) - } - - function a0(i, t) { - return i.next.i !== t.i && i.prev.i !== t.i && !(function(r, a) { - let c = r; - do { - if (c.i !== r.i && c.next.i !== r.i && c.i !== a.i && c.next.i !== a.i && Vm(c, c.next, r, a)) return !0; - c = c.next - } while (c !== r); - return !1 - })(i, t) && (su(i, t) && su(t, i) && (function(r, a) { - let c = r, - p = !1; - const f = (r.x + a.x) / 2, - g = (r.y + a.y) / 2; - do c.y > g != c.next.y > g && c.next.y !== c.y && f < (c.next.x - c.x) * (g - c.y) / (c.next.y - c.y) + c.x && (p = !p), c = c.next; while (c !== r); - return p - })(i, t) && (Yi(i.prev, i, t.prev) || Yi(i, t.prev, t)) || Ll(i, t) && Yi(i.prev, i, i.next) > 0 && Yi(t.prev, t, t.next) > 0) - } - - function Yi(i, t, r) { - return (t.y - i.y) * (r.x - t.x) - (t.x - i.x) * (r.y - t.y) - } - - function Ll(i, t) { - return i.x === t.x && i.y === t.y - } - - function Vm(i, t, r, a) { - const c = ld(Yi(i, t, r)), - p = ld(Yi(i, t, a)), - f = ld(Yi(r, a, i)), - g = ld(Yi(r, a, t)); - return c !== p && f !== g || !(c !== 0 || !od(i, r, t)) || !(p !== 0 || !od(i, a, t)) || !(f !== 0 || !od(r, i, a)) || !(g !== 0 || !od(r, t, a)) - } - - function od(i, t, r) { - return t.x <= Math.max(i.x, r.x) && t.x >= Math.min(i.x, r.x) && t.y <= Math.max(i.y, r.y) && t.y >= Math.min(i.y, r.y) - } - - function ld(i) { - return i > 0 ? 1 : i < 0 ? -1 : 0 - } - - function su(i, t) { - return Yi(i.prev, i, i.next) < 0 ? Yi(i, t, i.next) >= 0 && Yi(i, i.prev, t) >= 0 : Yi(i, t, i.prev) < 0 || Yi(i, i.next, t) < 0 - } - - function Um(i, t) { - const r = zp(i.i, i.x, i.y), - a = zp(t.i, t.x, t.y), - c = i.next, - p = t.prev; - return i.next = t, t.prev = i, r.next = c, c.prev = r, a.next = r, r.prev = a, p.next = a, a.prev = p, a - } - - function Zm(i, t, r, a) { - const c = zp(i, t, r); - return a ? (c.next = a.next, c.prev = a, a.next.prev = c, a.next = c) : (c.prev = c, c.next = c), c - } - - function ou(i) { - i.next.prev = i.prev, i.prev.next = i.next, i.prevZ && (i.prevZ.nextZ = i.nextZ), i.nextZ && (i.nextZ.prevZ = i.prevZ) - } - - function zp(i, t, r) { - return { - i, - x: t, - y: r, - prev: null, - next: null, - z: 0, - prevZ: null, - nextZ: null, - steiner: !1 - } - } - class Dl { - constructor(t, r) { - if (r > t) throw new Error("Min granularity must not be greater than base granularity."); - this._baseZoomGranularity = t, this._minGranularity = r - } - getGranularityForZoomLevel(t) { - return Math.max(Math.floor(this._baseZoomGranularity / (1 << t)), this._minGranularity, 1) - } - } - class cd { - constructor(t) { - this.fill = t.fill, this.line = t.line, this.tile = t.tile, this.stencil = t.stencil, this.circle = t.circle - } - } - cd.noSubdivision = new cd({ - fill: new Dl(0, 0), - line: new Dl(0, 0), - tile: new Dl(0, 0), - stencil: new Dl(0, 0), - circle: 1 - }), Kt("SubdivisionGranularityExpression", Dl), Kt("SubdivisionGranularitySetting", cd); - const Rl = -32768, - lu = 32767; - class s0 { - constructor(t, r) { - this._vertexBuffer = [], this._vertexDictionary = new Map, this._used = !1, this._granularity = t, this._granularityCellSize = ne / t, this._canonical = r - } - _getKey(t, r) { - return (t += 32768) << 16 | r + 32768 - } - _vertexToIndex(t, r) { - if (t < -32768 || r < -32768 || t > 32767 || r > 32767) throw new Error("Vertex coordinates are out of signed 16 bit integer range."); - const a = 0 | Math.round(t), - c = 0 | Math.round(r), - p = this._getKey(a, c); - if (this._vertexDictionary.has(p)) return this._vertexDictionary.get(p); - const f = this._vertexBuffer.length / 2; - return this._vertexDictionary.set(p, f), this._vertexBuffer.push(a, c), f - } - _subdivideTrianglesScanline(t) { - if (this._granularity < 2) return (function(c, p) { - const f = []; - for (let g = 0; g < p.length; g += 3) { - const v = p[g], - S = p[g + 1], - I = p[g + 2], - E = c[2 * v], - R = c[2 * v + 1]; - (c[2 * S] - E) * (c[2 * I + 1] - R) - (c[2 * S + 1] - R) * (c[2 * I] - E) > 0 ? (f.push(v), f.push(I), f.push(S)) : (f.push(v), f.push(S), f.push(I)) - } - return f - })(this._vertexBuffer, t); - const r = [], - a = t.length; - for (let c = 0; c < a; c += 3) { - const p = [t[c + 0], t[c + 1], t[c + 2]], - f = [this._vertexBuffer[2 * t[c + 0] + 0], this._vertexBuffer[2 * t[c + 0] + 1], this._vertexBuffer[2 * t[c + 1] + 0], this._vertexBuffer[2 * t[c + 1] + 1], this._vertexBuffer[2 * t[c + 2] + 0], this._vertexBuffer[2 * t[c + 2] + 1]]; - let g = 1 / 0, - v = 1 / 0, - S = -1 / 0, - I = -1 / 0; - for (let Z = 0; Z < 3; Z++) { - const Y = f[2 * Z], - ae = f[2 * Z + 1]; - g = Math.min(g, Y), S = Math.max(S, Y), v = Math.min(v, ae), I = Math.max(I, ae) - } - if (g === S || v === I) continue; - const E = Math.floor(g / this._granularityCellSize), - R = Math.ceil(S / this._granularityCellSize), - N = Math.floor(v / this._granularityCellSize), - j = Math.ceil(I / this._granularityCellSize); - if (E !== R || N !== j) - for (let Z = N; Z < j; Z++) { - const Y = this._scanlineGenerateVertexRingForCellRow(Z, f, p); - o0(this._vertexBuffer, Y, r) - } else r.push(...p) - } - return r - } - _scanlineGenerateVertexRingForCellRow(t, r, a) { - const c = t * this._granularityCellSize, - p = c + this._granularityCellSize, - f = []; - for (let g = 0; g < 3; g++) { - const v = r[2 * g], - S = r[2 * g + 1], - I = r[2 * (g + 1) % 6], - E = r[(2 * (g + 1) + 1) % 6], - R = r[2 * (g + 2) % 6], - N = r[(2 * (g + 2) + 1) % 6], - j = I - v, - Z = E - S, - Y = j === 0, - ae = Z === 0, - ze = (c - S) / Z, - me = (p - S) / Z, - be = Math.min(ze, me), - Ve = Math.max(ze, me); - if (!ae && (be >= 1 || Ve <= 0) || ae && (S < c || S > p)) { - E >= c && E <= p && f.push(a[(g + 1) % 3]); - continue - }!ae && be > 0 && f.push(this._vertexToIndex(v + j * be, S + Z * be)); - const rt = v + j * Math.max(be, 0), - St = v + j * Math.min(Ve, 1); - Y || this._generateIntraEdgeVertices(f, v, S, I, E, rt, St), !ae && Ve < 1 && f.push(this._vertexToIndex(v + j * Ve, S + Z * Ve)), (ae || E >= c && E <= p) && f.push(a[(g + 1) % 3]), !ae && (E <= c || E >= p) && this._generateInterEdgeVertices(f, v, S, I, E, R, N, St, c, p) - } - return f - } - _generateIntraEdgeVertices(t, r, a, c, p, f, g) { - const v = c - r, - S = p - a, - I = S === 0, - E = I ? Math.min(r, c) : Math.min(f, g), - R = I ? Math.max(r, c) : Math.max(f, g), - N = Math.floor(E / this._granularityCellSize) + 1, - j = Math.ceil(R / this._granularityCellSize) - 1; - if (I ? r < c : f < g) - for (let Z = N; Z <= j; Z++) { - const Y = Z * this._granularityCellSize; - t.push(this._vertexToIndex(Y, a + S * (Y - r) / v)) - } else - for (let Z = j; Z >= N; Z--) { - const Y = Z * this._granularityCellSize; - t.push(this._vertexToIndex(Y, a + S * (Y - r) / v)) - } - } - _generateInterEdgeVertices(t, r, a, c, p, f, g, v, S, I) { - const E = p - a, - R = f - c, - N = g - p, - j = (S - p) / N, - Z = (I - p) / N, - Y = Math.min(j, Z), - ae = Math.max(j, Z), - ze = c + R * Y; - let me = Math.floor(Math.min(ze, v) / this._granularityCellSize) + 1, - be = Math.ceil(Math.max(ze, v) / this._granularityCellSize) - 1, - Ve = v < ze; - const rt = N === 0; - if (rt && (g === S || g === I)) return; - if (rt || Y >= 1 || ae <= 0) { - const $t = a - g, - Bt = f + (r - f) * Math.min((S - g) / $t, (I - g) / $t); - me = Math.floor(Math.min(Bt, v) / this._granularityCellSize) + 1, be = Math.ceil(Math.max(Bt, v) / this._granularityCellSize) - 1, Ve = v < Bt - } - const St = E > 0 ? I : S; - if (Ve) - for (let $t = me; $t <= be; $t++) t.push(this._vertexToIndex($t * this._granularityCellSize, St)); - else - for (let $t = be; $t >= me; $t--) t.push(this._vertexToIndex($t * this._granularityCellSize, St)) - } - _generateOutline(t) { - const r = []; - for (const a of t) { - const c = Fo(a, this._granularity, !0), - p = this._pointArrayToIndices(c), - f = []; - for (let g = 1; g < p.length; g++) f.push(p[g - 1]), f.push(p[g]); - r.push(f) - } - return r - } - _handlePoles(t) { - let r = !1, - a = !1; - this._canonical && (this._canonical.y === 0 && (r = !0), this._canonical.y === (1 << this._canonical.z) - 1 && (a = !0)), (r || a) && this._fillPoles(t, r, a) - } - _ensureNoPoleVertices() { - const t = this._vertexBuffer; - for (let r = 0; r < t.length; r += 2) { - const a = t[r + 1]; - a === Rl && (t[r + 1] = -32767), a === lu && (t[r + 1] = 32766) - } - } - _generatePoleQuad(t, r, a, c, p, f) { - c > p != (f === Rl) ? (t.push(r), t.push(a), t.push(this._vertexToIndex(c, f)), t.push(a), t.push(this._vertexToIndex(p, f)), t.push(this._vertexToIndex(c, f))) : (t.push(a), t.push(r), t.push(this._vertexToIndex(c, f)), t.push(this._vertexToIndex(p, f)), t.push(a), t.push(this._vertexToIndex(c, f))) - } - _fillPoles(t, r, a) { - const c = this._vertexBuffer, - p = ne, - f = t.length; - for (let g = 2; g < f; g += 3) { - const v = t[g - 2], - S = t[g - 1], - I = t[g], - E = c[2 * v], - R = c[2 * v + 1], - N = c[2 * S], - j = c[2 * S + 1], - Z = c[2 * I], - Y = c[2 * I + 1]; - r && (R === 0 && j === 0 && this._generatePoleQuad(t, v, S, E, N, Rl), j === 0 && Y === 0 && this._generatePoleQuad(t, S, I, N, Z, Rl), Y === 0 && R === 0 && this._generatePoleQuad(t, I, v, Z, E, Rl)), a && (R === p && j === p && this._generatePoleQuad(t, v, S, E, N, lu), j === p && Y === p && this._generatePoleQuad(t, S, I, N, Z, lu), Y === p && R === p && this._generatePoleQuad(t, I, v, Z, E, lu)) - } - } - _initializeVertices(t) { - for (let r = 0; r < t.length; r += 2) this._vertexToIndex(t[r], t[r + 1]) - } - subdividePolygonInternal(t, r) { - if (this._used) throw new Error("Subdivision: multiple use not allowed."); - this._used = !0; - const { - flattened: a, - holeIndices: c - } = (function(g) { - const v = [], - S = []; - for (const I of g) - if (I.length !== 0) { - I !== g[0] && v.push(S.length / 2); - for (let E = 0; E < I.length; E++) S.push(I[E].x), S.push(I[E].y) - } return { - flattened: S, - holeIndices: v - } - })(t); - let p; - this._initializeVertices(a); - try { - const g = (function(S, I, E = 2) { - const R = I && I.length, - N = R ? I[0] * E : S.length; - let j = jm(S, 0, N, E, !0); - const Z = []; - if (!j || j.next === j.prev) return Z; - let Y, ae, ze; - if (R && (j = (function(me, be, Ve, rt) { - const St = []; - for (let $t = 0, Bt = be.length; $t < Bt; $t++) { - const Ut = jm(me, be[$t] * rt, $t < Bt - 1 ? be[$t + 1] * rt : me.length, rt, !1); - Ut === Ut.next && (Ut.steiner = !0), St.push(n0(Ut)) - } - St.sort(t0); - for (let $t = 0; $t < St.length; $t++) Ve = r0(St[$t], Ve); - return Ve - })(S, I, j, E)), S.length > 80 * E) { - Y = S[0], ae = S[1]; - let me = Y, - be = ae; - for (let Ve = E; Ve < N; Ve += E) { - const rt = S[Ve], - St = S[Ve + 1]; - rt < Y && (Y = rt), St < ae && (ae = St), rt > me && (me = rt), St > be && (be = St) - } - ze = Math.max(me - Y, be - ae), ze = ze !== 0 ? 32767 / ze : 0 - } - return nu(j, Z, E, Y, ae, ze, 0), Z - })(a, c), - v = this._convertIndices(a, g); - p = this._subdivideTrianglesScanline(v) - } catch (g) { - console.error(g) - } - let f = []; - return r && (f = this._generateOutline(t)), this._ensureNoPoleVertices(), this._handlePoles(p), { - verticesFlattened: this._vertexBuffer, - indicesTriangles: p, - indicesLineList: f - } - } - _convertIndices(t, r) { - const a = []; - for (let c = 0; c < r.length; c++) a.push(this._vertexToIndex(t[2 * r[c]], t[2 * r[c] + 1])); - return a - } - _pointArrayToIndices(t) { - const r = []; - for (let a = 0; a < t.length; a++) { - const c = t[a]; - r.push(this._vertexToIndex(c.x, c.y)) - } - return r - } - } - - function $m(i, t, r, a = !0) { - return new s0(r, t).subdividePolygonInternal(i, a) - } - - function Fo(i, t, r = !1) { - if (!i || i.length < 1) return []; - if (i.length < 2) return []; - const a = i[0], - c = i[i.length - 1], - p = r && (a.x !== c.x || a.y !== c.y); - if (t < 2) return p ? [...i, i[0]] : [...i]; - const f = Math.floor(ne / t), - g = []; - g.push(new $(i[0].x, i[0].y)); - const v = i.length, - S = p ? v : v - 1; - for (let I = 0; I < S; I++) { - const E = i[I], - R = I < v - 1 ? i[I + 1] : i[0], - N = E.x, - j = E.y, - Z = R.x, - Y = R.y, - ae = N !== Z, - ze = j !== Y; - if (!ae && !ze) continue; - const me = Z - N, - be = Y - j, - Ve = Math.abs(me), - rt = Math.abs(be); - let St = N, - $t = j; - for (;;) { - const Ut = me > 0 ? (Math.floor(St / f) + 1) * f : (Math.ceil(St / f) - 1) * f, - pr = be > 0 ? (Math.floor($t / f) + 1) * f : (Math.ceil($t / f) - 1) * f, - Vt = Math.abs(St - Ut), - Zt = Math.abs($t - pr), - mt = Math.abs(St - Z), - Br = Math.abs($t - Y), - Ur = ae ? Vt / Ve : Number.POSITIVE_INFINITY, - xr = ze ? Zt / rt : Number.POSITIVE_INFINITY; - if ((mt <= Vt || !ae) && (Br <= Zt || !ze)) break; - if (Ur < xr && ae || !ze) { - St = Ut, $t += be * Ur; - const or = new $(St, Math.round($t)); - g[g.length - 1].x === or.x && g[g.length - 1].y === or.y || g.push(or) - } else { - St += me * xr, $t = pr; - const or = new $(Math.round(St), $t); - g[g.length - 1].x === or.x && g[g.length - 1].y === or.y || g.push(or) - } - } - const Bt = new $(Z, Y); - g[g.length - 1].x === Bt.x && g[g.length - 1].y === Bt.y || g.push(Bt) - } - return g - } - - function o0(i, t, r) { - if (t.length === 0) throw new Error("Subdivision vertex ring is empty."); - let a = 0, - c = i[2 * t[0]]; - for (let v = 1; v < t.length; v++) { - const S = i[2 * t[v]]; - S < c && (c = S, a = v) - } - const p = t.length; - let f = a, - g = (f + 1) % p; - for (;;) { - const v = f - 1 >= 0 ? f - 1 : p - 1, - S = (g + 1) % p, - I = i[2 * t[v]], - E = i[2 * t[S]], - R = i[2 * t[f]], - N = i[2 * t[f] + 1], - j = i[2 * t[g] + 1]; - let Z = !1; - if (I < E) Z = !0; - else if (I > E) Z = !1; - else { - const Y = j - N, - ae = -(i[2 * t[g]] - R), - ze = N < j ? 1 : -1; - ((I - R) * Y + (i[2 * t[v] + 1] - N) * ae) * ze > ((E - R) * Y + (i[2 * t[S] + 1] - N) * ae) * ze && (Z = !0) - } - if (Z) { - const Y = t[v], - ae = t[f], - ze = t[g]; - Y !== ae && Y !== ze && ae !== ze && r.push(ze, ae, Y), f--, f < 0 && (f = p - 1) - } else { - const Y = t[S], - ae = t[f], - ze = t[g]; - Y !== ae && Y !== ze && ae !== ze && r.push(ze, ae, Y), g++, g >= p && (g = 0) - } - if (v === S) break - } - } - - function Gm(i, t, r, a, c, p, f, g, v) { - const S = c.length / 2, - I = f && g && v; - if (S < Wr.MAX_VERTEX_ARRAY_LENGTH) { - const E = t.prepareSegment(S, r, a), - R = E.vertexLength; - for (let Z = 0; Z < p.length; Z += 3) a.emplaceBack(R + p[Z], R + p[Z + 1], R + p[Z + 2]); - let N, j; - E.vertexLength += S, E.primitiveLength += p.length / 3, I && (j = f.prepareSegment(S, r, g), N = j.vertexLength, j.vertexLength += S); - for (let Z = 0; Z < c.length; Z += 2) i(c[Z], c[Z + 1]); - if (I) - for (let Z = 0; Z < v.length; Z++) { - const Y = v[Z]; - for (let ae = 1; ae < Y.length; ae += 2) g.emplaceBack(N + Y[ae - 1], N + Y[ae]); - j.primitiveLength += Y.length / 2 - } - } else(function(E, R, N, j, Z, Y) { - const ae = []; - for (let rt = 0; rt < j.length / 2; rt++) ae.push(-1); - const ze = { - count: 0 - }; - let me = 0, - be = E.getOrCreateLatestSegment(R, N), - Ve = be.vertexLength; - for (let rt = 2; rt < Z.length; rt += 3) { - const St = Z[rt - 2], - $t = Z[rt - 1], - Bt = Z[rt]; - let Ut = ae[St] < me, - pr = ae[$t] < me, - Vt = ae[Bt] < me; - be.vertexLength + ((Ut ? 1 : 0) + (pr ? 1 : 0) + (Vt ? 1 : 0)) > Wr.MAX_VERTEX_ARRAY_LENGTH && (be = E.createNewSegment(R, N), me = ze.count, Ut = !0, pr = !0, Vt = !0, Ve = 0); - const Zt = cu(ae, j, Y, ze, St, Ut, be), - mt = cu(ae, j, Y, ze, $t, pr, be), - Br = cu(ae, j, Y, ze, Bt, Vt, be); - N.emplaceBack(Ve + Zt - me, Ve + mt - me, Ve + Br - me), be.primitiveLength++ - } - })(t, r, a, c, p, i), I && (function(E, R, N, j, Z, Y) { - const ae = []; - for (let rt = 0; rt < j.length / 2; rt++) ae.push(-1); - const ze = { - count: 0 - }; - let me = 0, - be = E.getOrCreateLatestSegment(R, N), - Ve = be.vertexLength; - for (let rt = 0; rt < Z.length; rt++) { - const St = Z[rt]; - for (let $t = 1; $t < Z[rt].length; $t += 2) { - const Bt = St[$t - 1], - Ut = St[$t]; - let pr = ae[Bt] < me, - Vt = ae[Ut] < me; - be.vertexLength + ((pr ? 1 : 0) + (Vt ? 1 : 0)) > Wr.MAX_VERTEX_ARRAY_LENGTH && (be = E.createNewSegment(R, N), me = ze.count, pr = !0, Vt = !0, Ve = 0); - const Zt = cu(ae, j, Y, ze, Bt, pr, be), - mt = cu(ae, j, Y, ze, Ut, Vt, be); - N.emplaceBack(Ve + Zt - me, Ve + mt - me), be.primitiveLength++ - } - } - })(f, r, g, c, v, i), t.forceNewSegmentOnNextPrepare(), f == null || f.forceNewSegmentOnNextPrepare() - } - - function cu(i, t, r, a, c, p, f) { - if (p) { - const g = a.count; - return r(t[2 * c], t[2 * c + 1]), i[c] = a.count, a.count++, f.vertexLength++, g - } - return i[c] - } - class Lp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.patternFeatures = [], this.layoutVertexArray = new He, this.indexArray = new ki, this.indexArray2 = new Pi, this.programConfigurations = new ia(t.layers, t.zoom), this.segments = new Wr, this.segments2 = new Wr, this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - this.hasPattern = Ap("fill", this.layers, r); - const c = this.layers[0].layout.get("fill-sort-key"), - p = !c.isConstant(), - f = []; - for (const { - feature: g, - id: v, - index: S, - sourceLayerIndex: I - } - of t) { - const E = this.layers[0]._featureFilter.needGeometry, - R = Wa(g, E); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), R, a)) continue; - const N = p ? c.evaluate(R, {}, a, r.availableImages) : void 0, - j = { - id: v, - properties: g.properties, - type: g.type, - sourceLayerIndex: I, - index: S, - geometry: E ? R.geometry : cs(g), - patterns: {}, - sortKey: N - }; - f.push(j) - } - p && f.sort(((g, v) => g.sortKey - v.sortKey)); - for (const g of f) { - const { - geometry: v, - index: S, - sourceLayerIndex: I - } = g; - if (this.hasPattern) { - const E = kp("fill", this.layers, g, this.zoom, r); - this.patternFeatures.push(E) - } else this.addFeature(g, v, S, a, {}, r.subdivisionGranularity); - r.featureIndex.insert(t[S].feature, v, S, I, this.index) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - addFeatures(t, r, a) { - for (const c of this.patternFeatures) this.addFeature(c, c.geometry, c.index, r, a, t.subdivisionGranularity) - } - isEmpty() { - return this.layoutVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, Kv), this.indexBuffer = t.createIndexBuffer(this.indexArray), this.indexBuffer2 = t.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy()) - } - addFeature(t, r, a, c, p, f) { - for (const g of xo(r, 500)) { - const v = $m(g, c, f.fill.getGranularityForZoomLevel(c.z)), - S = this.layoutVertexArray; - Gm(((I, E) => { - S.emplaceBack(I, E) - }), this.segments, this.layoutVertexArray, this.indexArray, v.verticesFlattened, v.indicesTriangles, this.segments2, this.indexArray2, v.indicesLineList) - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, p, c) - } - } - let Hm, Wm; - Kt("FillBucket", Lp, { - omit: ["layers", "patternFeatures"] - }); - var l0 = { - get paint() { - return Wm = Wm || new jn({ - "fill-antialias": new hr(xe.paint_fill["fill-antialias"]), - "fill-opacity": new Rr(xe.paint_fill["fill-opacity"]), - "fill-color": new Rr(xe.paint_fill["fill-color"]), - "fill-outline-color": new Rr(xe.paint_fill["fill-outline-color"]), - "fill-translate": new hr(xe.paint_fill["fill-translate"]), - "fill-translate-anchor": new hr(xe.paint_fill["fill-translate-anchor"]), - "fill-pattern": new Sl(xe.paint_fill["fill-pattern"]) - }) - }, - get layout() { - return Hm = Hm || new jn({ - "fill-sort-key": new Rr(xe.layout_fill["fill-sort-key"]) - }) - } - }; - class c0 extends ha { - constructor(t) { - super(t, l0) - } - recalculate(t, r) { - super.recalculate(t, r); - const a = this.paint._values["fill-outline-color"]; - a.value.kind === "constant" && a.value.value === void 0 && (this.paint._values["fill-outline-color"] = this.paint._values["fill-color"]) - } - createBucket(t) { - return new Lp(t) - } - queryRadius() { - return ad(this.paint.get("fill-translate")) - } - queryIntersectsFeature({ - queryGeometry: t, - geometry: r, - transform: a, - pixelsToTileUnits: c - }) { - return Pm(sd(t, this.paint.get("fill-translate"), this.paint.get("fill-translate-anchor"), -a.bearingInRadians, c), r) - } - isTileClipped() { - return !0 - } - } - const u0 = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }, { - name: "a_normal_ed", - components: 4, - type: "Int16" - }], 4), - h0 = Hi([{ - name: "a_centroid", - components: 2, - type: "Int16" - }], 4), - { - members: d0 - } = u0; - class Bl { - constructor(t, r, a, c, p) { - this.properties = {}, this.extent = a, this.type = 0, this.id = void 0, this._pbf = t, this._geometry = -1, this._keys = c, this._values = p, t.readFields(p0, this, r) - } - loadGeometry() { - const t = this._pbf; - t.pos = this._geometry; - const r = t.readVarint() + t.pos, - a = []; - let c, p = 1, - f = 0, - g = 0, - v = 0; - for (; t.pos < r;) { - if (f <= 0) { - const S = t.readVarint(); - p = 7 & S, f = S >> 3 - } - if (f--, p === 1 || p === 2) g += t.readSVarint(), v += t.readSVarint(), p === 1 && (c && a.push(c), c = []), c && c.push(new $(g, v)); - else { - if (p !== 7) throw new Error(`unknown command ${p}`); - c && c.push(c[0].clone()) - } - } - return c && a.push(c), a - } - bbox() { - const t = this._pbf; - t.pos = this._geometry; - const r = t.readVarint() + t.pos; - let a = 1, - c = 0, - p = 0, - f = 0, - g = 1 / 0, - v = -1 / 0, - S = 1 / 0, - I = -1 / 0; - for (; t.pos < r;) { - if (c <= 0) { - const E = t.readVarint(); - a = 7 & E, c = E >> 3 - } - if (c--, a === 1 || a === 2) p += t.readSVarint(), f += t.readSVarint(), p < g && (g = p), p > v && (v = p), f < S && (S = f), f > I && (I = f); - else if (a !== 7) throw new Error(`unknown command ${a}`) - } - return [g, S, v, I] - } - toGeoJSON(t, r, a) { - const c = this.extent * Math.pow(2, a), - p = this.extent * t, - f = this.extent * r, - g = this.loadGeometry(); - - function v(R) { - return [360 * (R.x + p) / c - 180, 360 / Math.PI * Math.atan(Math.exp((1 - 2 * (R.y + f) / c) * Math.PI)) - 90] - } - - function S(R) { - return R.map(v) - } - let I; - if (this.type === 1) { - const R = []; - for (const j of g) R.push(j[0]); - const N = S(R); - I = R.length === 1 ? { - type: "Point", - coordinates: N[0] - } : { - type: "MultiPoint", - coordinates: N - } - } else if (this.type === 2) { - const R = g.map(S); - I = R.length === 1 ? { - type: "LineString", - coordinates: R[0] - } : { - type: "MultiLineString", - coordinates: R - } - } else { - if (this.type !== 3) throw new Error("unknown feature type"); - { - const R = (function(j) { - const Z = j.length; - if (Z <= 1) return [j]; - const Y = []; - let ae, ze; - for (let me = 0; me < Z; me++) { - const be = f0(j[me]); - be !== 0 && (ze === void 0 && (ze = be < 0), ze === be < 0 ? (ae && Y.push(ae), ae = [j[me]]) : ae && ae.push(j[me])) - } - return ae && Y.push(ae), Y - })(g), - N = []; - for (const j of R) N.push(j.map(S)); - I = N.length === 1 ? { - type: "Polygon", - coordinates: N[0] - } : { - type: "MultiPolygon", - coordinates: N - } - } - } - const E = { - type: "Feature", - geometry: I, - properties: this.properties - }; - return this.id != null && (E.id = this.id), E - } - } - - function p0(i, t, r) { - i === 1 ? t.id = r.readVarint() : i === 2 ? (function(a, c) { - const p = a.readVarint() + a.pos; - for (; a.pos < p;) { - const f = c._keys[a.readVarint()], - g = c._values[a.readVarint()]; - c.properties[f] = g - } - })(r, t) : i === 3 ? t.type = r.readVarint() : i === 4 && (t._geometry = r.pos) - } - - function f0(i) { - let t = 0; - for (let r, a, c = 0, p = i.length, f = p - 1; c < p; f = c++) r = i[c], a = i[f], t += (a.x - r.x) * (r.y + a.y); - return t - } - Bl.types = ["Unknown", "Point", "LineString", "Polygon"]; - class Xm { - constructor(t, r) { - this.version = 1, this.name = "", this.extent = 4096, this.length = 0, this._pbf = t, this._keys = [], this._values = [], this._features = [], t.readFields(m0, this, r), this.length = this._features.length - } - feature(t) { - if (t < 0 || t >= this._features.length) throw new Error("feature index out of bounds"); - this._pbf.pos = this._features[t]; - const r = this._pbf.readVarint() + this._pbf.pos; - return new Bl(this._pbf, r, this.extent, this._keys, this._values) - } - } - - function m0(i, t, r) { - i === 15 ? t.version = r.readVarint() : i === 1 ? t.name = r.readString() : i === 5 ? t.extent = r.readVarint() : i === 2 ? t._features.push(r.pos) : i === 3 ? t._keys.push(r.readString()) : i === 4 && t._values.push((function(a) { - let c = null; - const p = a.readVarint() + a.pos; - for (; a.pos < p;) { - const f = a.readVarint() >> 3; - c = f === 1 ? a.readString() : f === 2 ? a.readFloat() : f === 3 ? a.readDouble() : f === 4 ? a.readVarint64() : f === 5 ? a.readVarint() : f === 6 ? a.readSVarint() : f === 7 ? a.readBoolean() : null - } - if (c == null) throw new Error("unknown feature value"); - return c - })(r)) - } - class Km { - constructor(t, r) { - this.layers = t.readFields(_0, {}, r) - } - } - - function _0(i, t, r) { - if (i === 3) { - const a = new Xm(r, r.readVarint() + r.pos); - a.length && (t[a.name] = a) - } - } - const Dp = Math.pow(2, 13); - - function uu(i, t, r, a, c, p, f, g) { - i.emplaceBack(t, r, 2 * Math.floor(a * Dp) + f, c * Dp * 2, p * Dp * 2, Math.round(g)) - } - class Rp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.layoutVertexArray = new je, this.centroidVertexArray = new he, this.indexArray = new ki, this.programConfigurations = new ia(t.layers, t.zoom), this.segments = new Wr, this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - this.features = [], this.hasPattern = Ap("fill-extrusion", this.layers, r); - for (const { - feature: c, - id: p, - index: f, - sourceLayerIndex: g - } - of t) { - const v = this.layers[0]._featureFilter.needGeometry, - S = Wa(c, v); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), S, a)) continue; - const I = { - id: p, - sourceLayerIndex: g, - index: f, - geometry: v ? S.geometry : cs(c), - properties: c.properties, - type: c.type, - patterns: {} - }; - this.hasPattern ? this.features.push(kp("fill-extrusion", this.layers, I, this.zoom, r)) : this.addFeature(I, I.geometry, f, a, {}, r.subdivisionGranularity), r.featureIndex.insert(c, I.geometry, f, g, this.index, !0) - } - } - addFeatures(t, r, a) { - for (const c of this.features) { - const { - geometry: p - } = c; - this.addFeature(c, p, c.index, r, a, t.subdivisionGranularity) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - isEmpty() { - return this.layoutVertexArray.length === 0 && this.centroidVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, d0), this.centroidVertexBuffer = t.createVertexBuffer(this.centroidVertexArray, h0.members, !0), this.indexBuffer = t.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.centroidVertexBuffer.destroy()) - } - addFeature(t, r, a, c, p, f) { - for (const g of xo(r, 500)) { - const v = { - x: 0, - y: 0, - sampleCount: 0 - }, - S = this.layoutVertexArray.length; - this.processPolygon(v, c, t, g, f); - const I = this.layoutVertexArray.length - S, - E = Math.floor(v.x / v.sampleCount), - R = Math.floor(v.y / v.sampleCount); - for (let N = 0; N < I; N++) this.centroidVertexArray.emplaceBack(E, R) - } - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, p, c) - } - processPolygon(t, r, a, c, p) { - if (c.length < 1 || Ym(c[0])) return; - for (const E of c) E.length !== 0 && g0(t, E); - const f = { - segment: this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray) - }, - g = p.fill.getGranularityForZoomLevel(r.z), - v = Bl.types[a.type] === "Polygon"; - for (const E of c) { - if (E.length === 0 || Ym(E)) continue; - const R = Fo(E, g, v); - this._generateSideFaces(R, f) - } - if (!v) return; - const S = $m(c, r, g, !1), - I = this.layoutVertexArray; - Gm(((E, R) => { - uu(I, E, R, 0, 0, 1, 1, 0) - }), this.segments, this.layoutVertexArray, this.indexArray, S.verticesFlattened, S.indicesTriangles) - } - _generateSideFaces(t, r) { - let a = 0; - for (let c = 1; c < t.length; c++) { - const p = t[c], - f = t[c - 1]; - if (v0(p, f)) continue; - r.segment.vertexLength + 4 > Wr.MAX_VERTEX_ARRAY_LENGTH && (r.segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray)); - const g = p.sub(f)._perp()._unit(), - v = f.dist(p); - a + v > 32768 && (a = 0), uu(this.layoutVertexArray, p.x, p.y, g.x, g.y, 0, 0, a), uu(this.layoutVertexArray, p.x, p.y, g.x, g.y, 0, 1, a), a += v, uu(this.layoutVertexArray, f.x, f.y, g.x, g.y, 0, 0, a), uu(this.layoutVertexArray, f.x, f.y, g.x, g.y, 0, 1, a); - const S = r.segment.vertexLength; - this.indexArray.emplaceBack(S, S + 2, S + 1), this.indexArray.emplaceBack(S + 1, S + 2, S + 3), r.segment.vertexLength += 4, r.segment.primitiveLength += 2 - } - } - } - - function g0(i, t) { - for (let r = 0; r < t.length; r++) { - const a = t[r]; - r === t.length - 1 && t[0].x === a.x && t[0].y === a.y || (i.x += a.x, i.y += a.y, i.sampleCount++) - } - } - - function v0(i, t) { - return i.x === t.x && (i.x < 0 || i.x > ne) || i.y === t.y && (i.y < 0 || i.y > ne) - } - - function Ym(i) { - return i.every((t => t.x < 0)) || i.every((t => t.x > ne)) || i.every((t => t.y < 0)) || i.every((t => t.y > ne)) - } - let Jm; - Kt("FillExtrusionBucket", Rp, { - omit: ["layers", "features"] - }); - var y0 = { - get paint() { - return Jm = Jm || new jn({ - "fill-extrusion-opacity": new hr(xe["paint_fill-extrusion"]["fill-extrusion-opacity"]), - "fill-extrusion-color": new Rr(xe["paint_fill-extrusion"]["fill-extrusion-color"]), - "fill-extrusion-translate": new hr(xe["paint_fill-extrusion"]["fill-extrusion-translate"]), - "fill-extrusion-translate-anchor": new hr(xe["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]), - "fill-extrusion-pattern": new Sl(xe["paint_fill-extrusion"]["fill-extrusion-pattern"]), - "fill-extrusion-height": new Rr(xe["paint_fill-extrusion"]["fill-extrusion-height"]), - "fill-extrusion-base": new Rr(xe["paint_fill-extrusion"]["fill-extrusion-base"]), - "fill-extrusion-vertical-gradient": new hr(xe["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]) - }) - } - }; - class x0 extends ha { - constructor(t) { - super(t, y0) - } - createBucket(t) { - return new Rp(t) - } - queryRadius() { - return ad(this.paint.get("fill-extrusion-translate")) - } - is3D() { - return !0 - } - queryIntersectsFeature({ - queryGeometry: t, - feature: r, - featureState: a, - geometry: c, - transform: p, - pixelsToTileUnits: f, - pixelPosMatrix: g - }) { - const v = sd(t, this.paint.get("fill-extrusion-translate"), this.paint.get("fill-extrusion-translate-anchor"), -p.bearingInRadians, f), - S = this.paint.get("fill-extrusion-height").evaluate(r, a), - I = this.paint.get("fill-extrusion-base").evaluate(r, a), - E = (function(N, j) { - const Z = []; - for (const Y of N) { - const ae = [Y.x, Y.y, 0, 1]; - ke(ae, ae, j), Z.push(new $(ae[0] / ae[3], ae[1] / ae[3])) - } - return Z - })(v, g), - R = (function(N, j, Z, Y) { - const ae = [], - ze = [], - me = Y[8] * j, - be = Y[9] * j, - Ve = Y[10] * j, - rt = Y[11] * j, - St = Y[8] * Z, - $t = Y[9] * Z, - Bt = Y[10] * Z, - Ut = Y[11] * Z; - for (const pr of N) { - const Vt = [], - Zt = []; - for (const mt of pr) { - const Br = mt.x, - Ur = mt.y, - xr = Y[0] * Br + Y[4] * Ur + Y[12], - or = Y[1] * Br + Y[5] * Ur + Y[13], - oi = Y[2] * Br + Y[6] * Ur + Y[14], - Zi = Y[3] * Br + Y[7] * Ur + Y[15], - fn = oi + Ve, - Bn = Zi + rt, - Aa = xr + St, - aa = or + $t, - Mn = oi + Bt, - qi = Zi + Ut, - wn = new $((xr + me) / Bn, (or + be) / Bn); - wn.z = fn / Bn, Vt.push(wn); - const An = new $(Aa / qi, aa / qi); - An.z = Mn / qi, Zt.push(An) - } - ae.push(Vt), ze.push(Zt) - } - return [ae, ze] - })(c, I, S, g); - return (function(N, j, Z) { - let Y = 1 / 0; - Pm(Z, j) && (Y = Qm(Z, j[0])); - for (let ae = 0; ae < j.length; ae++) { - const ze = j[ae], - me = N[ae]; - for (let be = 0; be < ze.length - 1; be++) { - const Ve = ze[be], - rt = [Ve, ze[be + 1], me[be + 1], me[be], Ve]; - Sm(Z, rt) && (Y = Math.min(Y, Qm(Z, rt))) - } - } - return Y !== 1 / 0 && Y - })(R[0], R[1], E) - } - } - - function hu(i, t) { - return i.x * t.x + i.y * t.y - } - - function Qm(i, t) { - if (i.length === 1) { - let r = 0; - const a = t[r++]; - let c; - for (; !c || a.equals(c);) - if (c = t[r++], !c) return 1 / 0; - for (; r < t.length; r++) { - const p = t[r], - f = i[0], - g = c.sub(a), - v = p.sub(a), - S = f.sub(a), - I = hu(g, g), - E = hu(g, v), - R = hu(v, v), - N = hu(S, g), - j = hu(S, v), - Z = I * R - E * E, - Y = (R * N - E * j) / Z, - ae = (I * j - E * N) / Z, - ze = a.z * (1 - Y - ae) + c.z * Y + p.z * ae; - if (isFinite(ze)) return ze - } - return 1 / 0 - } { - let r = 1 / 0; - for (const a of t) r = Math.min(r, a.z); - return r - } - } - const b0 = Hi([{ - name: "a_pos_normal", - components: 2, - type: "Int16" - }, { - name: "a_data", - components: 4, - type: "Uint8" - }], 4), - { - members: w0 - } = b0, - T0 = Hi([{ - name: "a_uv_x", - components: 1, - type: "Float32" - }, { - name: "a_split_index", - components: 1, - type: "Float32" - }]), - { - members: C0 - } = T0, - S0 = Math.cos(Math.PI / 180 * 37.5), - e_ = Math.pow(2, 14) / .5; - class Bp { - constructor(t) { - this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((r => r.id)), this.index = t.index, this.hasPattern = !1, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach((r => { - this.gradients[r.id] = {} - })), this.layoutVertexArray = new qe, this.layoutVertexArray2 = new $e, this.indexArray = new ki, this.programConfigurations = new ia(t.layers, t.zoom), this.segments = new Wr, this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter((r => r.isStateDependent())).map((r => r.id)) - } - populate(t, r, a) { - this.hasPattern = Ap("line", this.layers, r); - const c = this.layers[0].layout.get("line-sort-key"), - p = !c.isConstant(), - f = []; - for (const { - feature: g, - id: v, - index: S, - sourceLayerIndex: I - } - of t) { - const E = this.layers[0]._featureFilter.needGeometry, - R = Wa(g, E); - if (!this.layers[0]._featureFilter.filter(new Oi(this.zoom, { - globalState: this.globalState - }), R, a)) continue; - const N = p ? c.evaluate(R, {}, a) : void 0, - j = { - id: v, - properties: g.properties, - type: g.type, - sourceLayerIndex: I, - index: S, - geometry: E ? R.geometry : cs(g), - patterns: {}, - sortKey: N - }; - f.push(j) - } - p && f.sort(((g, v) => g.sortKey - v.sortKey)); - for (const g of f) { - const { - geometry: v, - index: S, - sourceLayerIndex: I - } = g; - if (this.hasPattern) { - const E = kp("line", this.layers, g, this.zoom, r); - this.patternFeatures.push(E) - } else this.addFeature(g, v, S, a, {}, r.subdivisionGranularity); - r.featureIndex.insert(t[S].feature, v, S, I, this.index) - } - } - update(t, r, a) { - this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t, r, this.stateDependentLayers, a) - } - addFeatures(t, r, a) { - for (const c of this.patternFeatures) this.addFeature(c, c.geometry, c.index, r, a, t.subdivisionGranularity) - } - isEmpty() { - return this.layoutVertexArray.length === 0 - } - uploadPending() { - return !this.uploaded || this.programConfigurations.needsUpload - } - upload(t) { - this.uploaded || (this.layoutVertexArray2.length !== 0 && (this.layoutVertexBuffer2 = t.createVertexBuffer(this.layoutVertexArray2, C0)), this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, w0), this.indexBuffer = t.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t), this.uploaded = !0 - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy()) - } - lineFeatureClips(t) { - if (t.properties && Object.prototype.hasOwnProperty.call(t.properties, "mapbox_clip_start") && Object.prototype.hasOwnProperty.call(t.properties, "mapbox_clip_end")) return { - start: +t.properties.mapbox_clip_start, - end: +t.properties.mapbox_clip_end - } - } - addFeature(t, r, a, c, p, f) { - const g = this.layers[0].layout, - v = g.get("line-join").evaluate(t, {}), - S = g.get("line-cap"), - I = g.get("line-miter-limit"), - E = g.get("line-round-limit"); - this.lineClips = this.lineFeatureClips(t); - for (const R of r) this.addLine(R, t, v, S, I, E, c, f); - this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t, a, p, c) - } - addLine(t, r, a, c, p, f, g, v) { - if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, t = Fo(t, g ? v.line.getGranularityForZoomLevel(g.z) : 1), this.lineClips) { - this.lineClipsArray.push(this.lineClips); - for (let me = 0; me < t.length - 1; me++) this.totalDistance += t[me].dist(t[me + 1]); - this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance) - } - const S = Bl.types[r.type] === "Polygon"; - let I = t.length; - for (; I >= 2 && t[I - 1].equals(t[I - 2]);) I--; - let E = 0; - for (; E < I - 1 && t[E].equals(t[E + 1]);) E++; - if (I < (S ? 3 : 2)) return; - a === "bevel" && (p = 1.05); - const R = this.overscaling <= 16 ? 122880 / (512 * this.overscaling) : 0, - N = this.segments.prepareSegment(10 * I, this.layoutVertexArray, this.indexArray); - let j, Z, Y, ae, ze; - this.e1 = this.e2 = -1, S && (j = t[I - 2], ze = t[E].sub(j)._unit()._perp()); - for (let me = E; me < I; me++) { - if (Y = me === I - 1 ? S ? t[E + 1] : void 0 : t[me + 1], Y && t[me].equals(Y)) continue; - ze && (ae = ze), j && (Z = j), j = t[me], ze = Y ? Y.sub(j)._unit()._perp() : ae, ae = ae || ze; - let be = ae.add(ze); - be.x === 0 && be.y === 0 || be._unit(); - const Ve = ae.x * ze.x + ae.y * ze.y, - rt = be.x * ze.x + be.y * ze.y, - St = rt !== 0 ? 1 / rt : 1 / 0, - $t = 2 * Math.sqrt(2 - 2 * rt), - Bt = rt < S0 && Z && Y, - Ut = ae.x * ze.y - ae.y * ze.x > 0; - if (Bt && me > E) { - const Zt = j.dist(Z); - if (Zt > 2 * R) { - const mt = j.sub(j.sub(Z)._mult(R / Zt)._round()); - this.updateDistance(Z, mt), this.addCurrentVertex(mt, ae, 0, 0, N), Z = mt - } - } - const pr = Z && Y; - let Vt = pr ? a : S ? "butt" : c; - if (pr && Vt === "round" && (St < f ? Vt = "miter" : St <= 2 && (Vt = "fakeround")), Vt === "miter" && St > p && (Vt = "bevel"), Vt === "bevel" && (St > 2 && (Vt = "flipbevel"), St < p && (Vt = "miter")), Z && this.updateDistance(Z, j), Vt === "miter") be._mult(St), this.addCurrentVertex(j, be, 0, 0, N); - else if (Vt === "flipbevel") { - if (St > 100) be = ze.mult(-1); - else { - const Zt = St * ae.add(ze).mag() / ae.sub(ze).mag(); - be._perp()._mult(Zt * (Ut ? -1 : 1)) - } - this.addCurrentVertex(j, be, 0, 0, N), this.addCurrentVertex(j, be.mult(-1), 0, 0, N) - } else if (Vt === "bevel" || Vt === "fakeround") { - const Zt = -Math.sqrt(St * St - 1), - mt = Ut ? Zt : 0, - Br = Ut ? 0 : Zt; - if (Z && this.addCurrentVertex(j, ae, mt, Br, N), Vt === "fakeround") { - const Ur = Math.round(180 * $t / Math.PI / 20); - for (let xr = 1; xr < Ur; xr++) { - let or = xr / Ur; - if (or !== .5) { - const Zi = or - .5; - or += or * Zi * (or - 1) * ((1.0904 + Ve * (Ve * (3.55645 - 1.43519 * Ve) - 3.2452)) * Zi * Zi + (.848013 + Ve * (.215638 * Ve - 1.06021))) - } - const oi = ze.sub(ae)._mult(or)._add(ae)._unit()._mult(Ut ? -1 : 1); - this.addHalfVertex(j, oi.x, oi.y, !1, Ut, 0, N) - } - } - Y && this.addCurrentVertex(j, ze, -mt, -Br, N) - } else if (Vt === "butt") this.addCurrentVertex(j, be, 0, 0, N); - else if (Vt === "square") { - const Zt = Z ? 1 : -1; - this.addCurrentVertex(j, be, Zt, Zt, N) - } else Vt === "round" && (Z && (this.addCurrentVertex(j, ae, 0, 0, N), this.addCurrentVertex(j, ae, 1, 1, N, !0)), Y && (this.addCurrentVertex(j, ze, -1, -1, N, !0), this.addCurrentVertex(j, ze, 0, 0, N))); - if (Bt && me < I - 1) { - const Zt = j.dist(Y); - if (Zt > 2 * R) { - const mt = j.add(Y.sub(j)._mult(R / Zt)._round()); - this.updateDistance(j, mt), this.addCurrentVertex(mt, ze, 0, 0, N), j = mt - } - } - } - } - addCurrentVertex(t, r, a, c, p, f = !1) { - const g = r.y * c - r.x, - v = -r.y - r.x * c; - this.addHalfVertex(t, r.x + r.y * a, r.y - r.x * a, f, !1, a, p), this.addHalfVertex(t, g, v, f, !0, -c, p), this.distance > e_ / 2 && this.totalDistance === 0 && (this.distance = 0, this.updateScaledDistance(), this.addCurrentVertex(t, r, a, c, p, f)) - } - addHalfVertex({ - x: t, - y: r - }, a, c, p, f, g, v) { - const S = .5 * (this.lineClips ? this.scaledDistance * (e_ - 1) : this.scaledDistance); - this.layoutVertexArray.emplaceBack((t << 1) + (p ? 1 : 0), (r << 1) + (f ? 1 : 0), Math.round(63 * a) + 128, Math.round(63 * c) + 128, 1 + (g === 0 ? 0 : g < 0 ? -1 : 1) | (63 & S) << 2, S >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length); - const I = v.vertexLength++; - this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, I, this.e2), v.primitiveLength++), f ? this.e2 = I : this.e1 = I - } - updateScaledDistance() { - this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance - } - updateDistance(t, r) { - this.distance += t.dist(r), this.updateScaledDistance() - } - } - let t_, r_; - Kt("LineBucket", Bp, { - omit: ["layers", "patternFeatures"] - }); - var i_ = { - get paint() { - return r_ = r_ || new jn({ - "line-opacity": new Rr(xe.paint_line["line-opacity"]), - "line-color": new Rr(xe.paint_line["line-color"]), - "line-translate": new hr(xe.paint_line["line-translate"]), - "line-translate-anchor": new hr(xe.paint_line["line-translate-anchor"]), - "line-width": new Rr(xe.paint_line["line-width"]), - "line-gap-width": new Rr(xe.paint_line["line-gap-width"]), - "line-offset": new Rr(xe.paint_line["line-offset"]), - "line-blur": new Rr(xe.paint_line["line-blur"]), - "line-dasharray": new ns(xe.paint_line["line-dasharray"]), - "line-pattern": new Sl(xe.paint_line["line-pattern"]), - "line-gradient": new Pl(xe.paint_line["line-gradient"]) - }) - }, - get layout() { - return t_ = t_ || new jn({ - "line-cap": new hr(xe.layout_line["line-cap"]), - "line-join": new Rr(xe.layout_line["line-join"]), - "line-miter-limit": new hr(xe.layout_line["line-miter-limit"]), - "line-round-limit": new hr(xe.layout_line["line-round-limit"]), - "line-sort-key": new Rr(xe.layout_line["line-sort-key"]) - }) - } - }; - class P0 extends Rr { - possiblyEvaluate(t, r) { - return r = new Oi(Math.floor(r.zoom), { - now: r.now, - fadeDuration: r.fadeDuration, - zoomHistory: r.zoomHistory, - transition: r.transition - }), super.possiblyEvaluate(t, r) - } - evaluate(t, r, a, c) { - return r = pt({}, r, { - zoom: Math.floor(r.zoom) - }), super.evaluate(t, r, a, c) - } - } - let ud; - class I0 extends ha { - constructor(t) { - super(t, i_), this.gradientVersion = 0, ud || (ud = new P0(i_.paint.properties["line-width"].specification), ud.useIntegerZoom = !0) - } - _handleSpecialPaintPropertyUpdate(t) { - if (t === "line-gradient") { - const r = this.gradientExpression(); - this.stepInterpolant = !!(function(a) { - return a._styleExpression !== void 0 - })(r) && r._styleExpression.expression instanceof Gi, this.gradientVersion = (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER - } - } - gradientExpression() { - return this._transitionablePaint._values["line-gradient"].value.expression - } - recalculate(t, r) { - super.recalculate(t, r), this.paint._values["line-floorwidth"] = ud.possiblyEvaluate(this._transitioningPaint._values["line-width"].value, t) - } - createBucket(t) { - return new Bp(t) - } - queryRadius(t) { - const r = t, - a = n_(ru("line-width", this, r), ru("line-gap-width", this, r)), - c = ru("line-offset", this, r); - return a / 2 + Math.abs(c) + ad(this.paint.get("line-translate")) - } - queryIntersectsFeature({ - queryGeometry: t, - feature: r, - featureState: a, - geometry: c, - transform: p, - pixelsToTileUnits: f - }) { - const g = sd(t, this.paint.get("line-translate"), this.paint.get("line-translate-anchor"), -p.bearingInRadians, f), - v = f / 2 * n_(this.paint.get("line-width").evaluate(r, a), this.paint.get("line-gap-width").evaluate(r, a)), - S = this.paint.get("line-offset").evaluate(r, a); - return S && (c = (function(I, E) { - const R = []; - for (let N = 0; N < I.length; N++) { - const j = I[N], - Z = []; - for (let Y = 0; Y < j.length; Y++) { - const ae = j[Y - 1], - ze = j[Y], - me = j[Y + 1], - be = Y === 0 ? new $(0, 0) : ze.sub(ae)._unit()._perp(), - Ve = Y === j.length - 1 ? new $(0, 0) : me.sub(ze)._unit()._perp(), - rt = be._add(Ve)._unit(), - St = rt.x * Ve.x + rt.y * Ve.y; - St !== 0 && rt._mult(1 / St), Z.push(rt._mult(E)._add(ze)) - } - R.push(Z) - } - return R - })(c, S * f)), (function(I, E, R) { - for (let N = 0; N < E.length; N++) { - const j = E[N]; - if (I.length >= 3) { - for (let Z = 0; Z < j.length; Z++) - if (zl(I, j[Z])) return !0 - } - if (Ov(I, j, R)) return !0 - } - return !1 - })(g, c, v) - } - isTileClipped() { - return !0 - } - } - - function n_(i, t) { - return t > 0 ? t + 2 * i : i - } - const M0 = Hi([{ - name: "a_pos_offset", - components: 4, - type: "Int16" - }, { - name: "a_data", - components: 4, - type: "Uint16" - }, { - name: "a_pixeloffset", - components: 4, - type: "Int16" - }], 4), - A0 = Hi([{ - name: "a_projected_pos", - components: 3, - type: "Float32" - }], 4); - Hi([{ - name: "a_fade_opacity", - components: 1, - type: "Uint32" - }], 4); - const k0 = Hi([{ - name: "a_placed", - components: 2, - type: "Uint8" - }, { - name: "a_shift", - components: 2, - type: "Float32" - }, { - name: "a_box_real", - components: 2, - type: "Int16" - }]); - Hi([{ - 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 a_ = Hi([{ - name: "a_pos", - components: 2, - type: "Int16" - }, { - name: "a_anchor_pos", - components: 2, - type: "Int16" - }, { - name: "a_extrude", - components: 2, - type: "Int16" - }], 4), - E0 = Hi([{ - name: "a_pos", - components: 2, - type: "Float32" - }, { - name: "a_radius", - components: 1, - type: "Float32" - }, { - name: "a_flags", - components: 2, - type: "Int16" - }], 4); - - function z0(i, t, r) { - return i.sections.forEach((a => { - a.text = (function(c, p, f) { - const g = p.layout.get("text-transform").evaluate(f, {}); - return g === "uppercase" ? c = c.toLocaleUpperCase() : g === "lowercase" && (c = c.toLocaleLowerCase()), Ca.applyArabicShaping && (c = Ca.applyArabicShaping(c)), c - })(a.text, t, r) - })), i - } - Hi([{ - name: "triangle", - components: 3, - type: "Uint16" - }]), Hi([{ - 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" - }]), Hi([{ - 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" - }]), Hi([{ - type: "Float32", - name: "offsetX" - }]), Hi([{ - type: "Int16", - name: "x" - }, { - type: "Int16", - name: "y" - }, { - type: "Int16", - name: "tileUnitDistanceFromAnchor" - }]), Hi([{ - type: "Uint16", - name: "textAnchor" - }, { - type: "Float32", - components: 2, - name: "textOffset" - }]); - const du = { - "!": "︕", - "#": "#", - $: "$", - "%": "%", - "&": "&", - "(": "︵", - ")": "︶", - "*": "*", - "+": "+", - ",": "︐", - "-": "︲", - ".": "・", - "/": "/", - ":": "︓", - ";": "︔", - "<": "︿", - "=": "=", - ">": "﹀", - "?": "︖", - "@": "@", - "[": "﹇", - "\\": "\", - "]": "﹈", - "^": "^", - _: "︳", - "`": "`", - "{": "︷", - "|": "―", - "}": "︸", - "~": "~", - "¢": "¢", - "£": "£", - "¥": "¥", - "¦": "¦", - "¬": "¬", - "¯": " ̄", - "–": "︲", - "—": "︱", - "‘": "﹃", - "’": "﹄", - "“": "﹁", - "”": "﹂", - "…": "︙", - "‧": "・", - "₩": "₩", - "、": "︑", - "。": "︒", - "〈": "︿", - "〉": "﹀", - "《": "︽", - "》": "︾", - "「": "﹁", - "」": "﹂", - "『": "﹃", - "』": "﹄", - "【": "︻", - "】": "︼", - "〔": "︹", - "〕": "︺", - "〖": "︗", - "〗": "︘", - "!": "︕", - "(": "︵", - ")": "︶", - ",": "︐", - "-": "︲", - ".": "・", - ":": "︓", - ";": "︔", - "<": "︿", - ">": "﹀", - "?": "︖", - "[": "﹇", - "]": "﹈", - "_": "︳", - "{": "︷", - "|": "―", - "}": "︸", - "⦅": "︵", - "⦆": "︶", - "。": "︒", - "「": "﹁", - "」": "﹂" - }; - var bn = 24; - const Fp = 4294967296, - s_ = 1 / Fp, - o_ = typeof TextDecoder > "u" ? null : new TextDecoder("utf-8"); - class Op { - constructor(t = new Uint8Array(16)) { - this.buf = ArrayBuffer.isView(t) ? t : new Uint8Array(t), this.dataView = new DataView(this.buf.buffer), this.pos = 0, this.type = 0, this.length = this.buf.length - } - readFields(t, r, a = this.length) { - for (; this.pos < a;) { - const c = this.readVarint(), - p = c >> 3, - f = this.pos; - this.type = 7 & c, t(p, r, this), this.pos === f && this.skip(c) - } - return r - } - readMessage(t, r) { - return this.readFields(t, r, this.readVarint() + this.pos) - } - readFixed32() { - const t = this.dataView.getUint32(this.pos, !0); - return this.pos += 4, t - } - readSFixed32() { - const t = this.dataView.getInt32(this.pos, !0); - return this.pos += 4, t - } - readFixed64() { - const t = this.dataView.getUint32(this.pos, !0) + this.dataView.getUint32(this.pos + 4, !0) * Fp; - return this.pos += 8, t - } - readSFixed64() { - const t = this.dataView.getUint32(this.pos, !0) + this.dataView.getInt32(this.pos + 4, !0) * Fp; - return this.pos += 8, t - } - readFloat() { - const t = this.dataView.getFloat32(this.pos, !0); - return this.pos += 4, t - } - readDouble() { - const t = this.dataView.getFloat64(this.pos, !0); - return this.pos += 8, t - } - readVarint(t) { - const r = this.buf; - let a, c; - return c = r[this.pos++], a = 127 & c, c < 128 ? a : (c = r[this.pos++], a |= (127 & c) << 7, c < 128 ? a : (c = r[this.pos++], a |= (127 & c) << 14, c < 128 ? a : (c = r[this.pos++], a |= (127 & c) << 21, c < 128 ? a : (c = r[this.pos], a |= (15 & c) << 28, (function(p, f, g) { - const v = g.buf; - let S, I; - if (I = v[g.pos++], S = (112 & I) >> 4, I < 128 || (I = v[g.pos++], S |= (127 & I) << 3, I < 128) || (I = v[g.pos++], S |= (127 & I) << 10, I < 128) || (I = v[g.pos++], S |= (127 & I) << 17, I < 128) || (I = v[g.pos++], S |= (127 & I) << 24, I < 128) || (I = v[g.pos++], S |= (1 & I) << 31, I < 128)) return Fl(p, S, f); - throw new Error("Expected varint not more than 10 bytes") - })(a, t, this))))) - } - readVarint64() { - return this.readVarint(!0) - } - readSVarint() { - const t = this.readVarint(); - return t % 2 == 1 ? (t + 1) / -2 : t / 2 - } - readBoolean() { - return !!this.readVarint() - } - readString() { - const t = this.readVarint() + this.pos, - r = this.pos; - return this.pos = t, t - r >= 12 && o_ ? o_.decode(this.buf.subarray(r, t)) : (function(a, c, p) { - let f = "", - g = c; - for (; g < p;) { - const v = a[g]; - let S, I, E, R = null, - N = v > 239 ? 4 : v > 223 ? 3 : v > 191 ? 2 : 1; - if (g + N > p) break; - N === 1 ? v < 128 && (R = v) : N === 2 ? (S = a[g + 1], (192 & S) == 128 && (R = (31 & v) << 6 | 63 & S, R <= 127 && (R = null))) : N === 3 ? (S = a[g + 1], I = a[g + 2], (192 & S) == 128 && (192 & I) == 128 && (R = (15 & v) << 12 | (63 & S) << 6 | 63 & I, (R <= 2047 || R >= 55296 && R <= 57343) && (R = null))) : N === 4 && (S = a[g + 1], I = a[g + 2], E = a[g + 3], (192 & S) == 128 && (192 & I) == 128 && (192 & E) == 128 && (R = (15 & v) << 18 | (63 & S) << 12 | (63 & I) << 6 | 63 & E, (R <= 65535 || R >= 1114112) && (R = null))), R === null ? (R = 65533, N = 1) : R > 65535 && (R -= 65536, f += String.fromCharCode(R >>> 10 & 1023 | 55296), R = 56320 | 1023 & R), f += String.fromCharCode(R), g += N - } - return f - })(this.buf, r, t) - } - readBytes() { - const t = this.readVarint() + this.pos, - r = this.buf.subarray(this.pos, t); - return this.pos = t, r - } - readPackedVarint(t = [], r) { - const a = this.readPackedEnd(); - for (; this.pos < a;) t.push(this.readVarint(r)); - return t - } - readPackedSVarint(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readSVarint()); - return t - } - readPackedBoolean(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readBoolean()); - return t - } - readPackedFloat(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readFloat()); - return t - } - readPackedDouble(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readDouble()); - return t - } - readPackedFixed32(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readFixed32()); - return t - } - readPackedSFixed32(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readSFixed32()); - return t - } - readPackedFixed64(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readFixed64()); - return t - } - readPackedSFixed64(t = []) { - const r = this.readPackedEnd(); - for (; this.pos < r;) t.push(this.readSFixed64()); - return t - } - readPackedEnd() { - return this.type === 2 ? this.readVarint() + this.pos : this.pos + 1 - } - skip(t) { - const r = 7 & t; - if (r === 0) - for (; this.buf[this.pos++] > 127;); - else if (r === 2) this.pos = this.readVarint() + this.pos; - else if (r === 5) this.pos += 4; - else { - if (r !== 1) throw new Error(`Unimplemented type: ${r}`); - this.pos += 8 - } - } - writeTag(t, r) { - this.writeVarint(t << 3 | r) - } - realloc(t) { - let r = this.length || 16; - for (; r < this.pos + t;) r *= 2; - if (r !== this.length) { - const a = new Uint8Array(r); - a.set(this.buf), this.buf = a, this.dataView = new DataView(a.buffer), this.length = r - } - } - finish() { - return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length) - } - writeFixed32(t) { - this.realloc(4), this.dataView.setInt32(this.pos, t, !0), this.pos += 4 - } - writeSFixed32(t) { - this.realloc(4), this.dataView.setInt32(this.pos, t, !0), this.pos += 4 - } - writeFixed64(t) { - this.realloc(8), this.dataView.setInt32(this.pos, -1 & t, !0), this.dataView.setInt32(this.pos + 4, Math.floor(t * s_), !0), this.pos += 8 - } - writeSFixed64(t) { - this.realloc(8), this.dataView.setInt32(this.pos, -1 & t, !0), this.dataView.setInt32(this.pos + 4, Math.floor(t * s_), !0), this.pos += 8 - } - writeVarint(t) { - (t = +t || 0) > 268435455 || t < 0 ? (function(r, a) { - let c, p; - if (r >= 0 ? (c = r % 4294967296 | 0, p = r / 4294967296 | 0) : (c = ~(-r % 4294967296), p = ~(-r / 4294967296), 4294967295 ^ c ? c = c + 1 | 0 : (c = 0, p = p + 1 | 0)), r >= 18446744073709552e3 || r < -18446744073709552e3) throw new Error("Given varint doesn't fit into 10 bytes"); - a.realloc(10), (function(f, g, v) { - v.buf[v.pos++] = 127 & f | 128, f >>>= 7, v.buf[v.pos++] = 127 & f | 128, f >>>= 7, v.buf[v.pos++] = 127 & f | 128, f >>>= 7, v.buf[v.pos++] = 127 & f | 128, v.buf[v.pos] = 127 & (f >>>= 7) - })(c, 0, a), (function(f, g) { - const v = (7 & f) << 4; - g.buf[g.pos++] |= v | ((f >>>= 3) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f | ((f >>>= 7) ? 128 : 0), f && (g.buf[g.pos++] = 127 & f))))) - })(p, a) - })(t, this) : (this.realloc(4), this.buf[this.pos++] = 127 & t | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = 127 & (t >>>= 7) | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = 127 & (t >>>= 7) | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = t >>> 7 & 127)))) - } - writeSVarint(t) { - this.writeVarint(t < 0 ? 2 * -t - 1 : 2 * t) - } - writeBoolean(t) { - this.writeVarint(+t) - } - writeString(t) { - t = String(t), this.realloc(4 * t.length), this.pos++; - const r = this.pos; - this.pos = (function(c, p, f) { - for (let g, v, S = 0; S < p.length; S++) { - if (g = p.charCodeAt(S), g > 55295 && g < 57344) { - if (!v) { - g > 56319 || S + 1 === p.length ? (c[f++] = 239, c[f++] = 191, c[f++] = 189) : v = g; - continue - } - if (g < 56320) { - c[f++] = 239, c[f++] = 191, c[f++] = 189, v = g; - continue - } - g = v - 55296 << 10 | g - 56320 | 65536, v = null - } else v && (c[f++] = 239, c[f++] = 191, c[f++] = 189, v = null); - g < 128 ? c[f++] = g : (g < 2048 ? c[f++] = g >> 6 | 192 : (g < 65536 ? c[f++] = g >> 12 | 224 : (c[f++] = g >> 18 | 240, c[f++] = g >> 12 & 63 | 128), c[f++] = g >> 6 & 63 | 128), c[f++] = 63 & g | 128) - } - return f - })(this.buf, t, this.pos); - const a = this.pos - r; - a >= 128 && l_(r, a, this), this.pos = r - 1, this.writeVarint(a), this.pos += a - } - writeFloat(t) { - this.realloc(4), this.dataView.setFloat32(this.pos, t, !0), this.pos += 4 - } - writeDouble(t) { - this.realloc(8), this.dataView.setFloat64(this.pos, t, !0), this.pos += 8 - } - writeBytes(t) { - const r = t.length; - this.writeVarint(r), this.realloc(r); - for (let a = 0; a < r; a++) this.buf[this.pos++] = t[a] - } - writeRawMessage(t, r) { - this.pos++; - const a = this.pos; - t(r, this); - const c = this.pos - a; - c >= 128 && l_(a, c, this), this.pos = a - 1, this.writeVarint(c), this.pos += c - } - writeMessage(t, r, a) { - this.writeTag(t, 2), this.writeRawMessage(r, a) - } - writePackedVarint(t, r) { - r.length && this.writeMessage(t, L0, r) - } - writePackedSVarint(t, r) { - r.length && this.writeMessage(t, D0, r) - } - writePackedBoolean(t, r) { - r.length && this.writeMessage(t, F0, r) - } - writePackedFloat(t, r) { - r.length && this.writeMessage(t, R0, r) - } - writePackedDouble(t, r) { - r.length && this.writeMessage(t, B0, r) - } - writePackedFixed32(t, r) { - r.length && this.writeMessage(t, O0, r) - } - writePackedSFixed32(t, r) { - r.length && this.writeMessage(t, N0, r) - } - writePackedFixed64(t, r) { - r.length && this.writeMessage(t, j0, r) - } - writePackedSFixed64(t, r) { - r.length && this.writeMessage(t, q0, r) - } - writeBytesField(t, r) { - this.writeTag(t, 2), this.writeBytes(r) - } - writeFixed32Field(t, r) { - this.writeTag(t, 5), this.writeFixed32(r) - } - writeSFixed32Field(t, r) { - this.writeTag(t, 5), this.writeSFixed32(r) - } - writeFixed64Field(t, r) { - this.writeTag(t, 1), this.writeFixed64(r) - } - writeSFixed64Field(t, r) { - this.writeTag(t, 1), this.writeSFixed64(r) - } - writeVarintField(t, r) { - this.writeTag(t, 0), this.writeVarint(r) - } - writeSVarintField(t, r) { - this.writeTag(t, 0), this.writeSVarint(r) - } - writeStringField(t, r) { - this.writeTag(t, 2), this.writeString(r) - } - writeFloatField(t, r) { - this.writeTag(t, 5), this.writeFloat(r) - } - writeDoubleField(t, r) { - this.writeTag(t, 1), this.writeDouble(r) - } - writeBooleanField(t, r) { - this.writeVarintField(t, +r) - } - } - - function Fl(i, t, r) { - return r ? 4294967296 * t + (i >>> 0) : 4294967296 * (t >>> 0) + (i >>> 0) - } - - function l_(i, t, r) { - const a = t <= 16383 ? 1 : t <= 2097151 ? 2 : t <= 268435455 ? 3 : Math.floor(Math.log(t) / (7 * Math.LN2)); - r.realloc(a); - for (let c = r.pos - 1; c >= i; c--) r.buf[c + a] = r.buf[c] - } - - function L0(i, t) { - for (let r = 0; r < i.length; r++) t.writeVarint(i[r]) - } - - function D0(i, t) { - for (let r = 0; r < i.length; r++) t.writeSVarint(i[r]) - } - - function R0(i, t) { - for (let r = 0; r < i.length; r++) t.writeFloat(i[r]) - } - - function B0(i, t) { - for (let r = 0; r < i.length; r++) t.writeDouble(i[r]) - } - - function F0(i, t) { - for (let r = 0; r < i.length; r++) t.writeBoolean(i[r]) - } - - function O0(i, t) { - for (let r = 0; r < i.length; r++) t.writeFixed32(i[r]) - } - - function N0(i, t) { - for (let r = 0; r < i.length; r++) t.writeSFixed32(i[r]) - } - - function j0(i, t) { - for (let r = 0; r < i.length; r++) t.writeFixed64(i[r]) - } - - function q0(i, t) { - for (let r = 0; r < i.length; r++) t.writeSFixed64(i[r]) - } - - function V0(i, t, r) { - i === 1 && r.readMessage(U0, t) - } - - function U0(i, t, r) { - if (i === 3) { - const { - id: a, - bitmap: c, - width: p, - height: f, - left: g, - top: v, - advance: S - } = r.readMessage(Z0, {}); - t.push({ - id: a, - bitmap: new iu({ - width: p + 6, - height: f + 6 - }, c), - metrics: { - width: p, - height: f, - left: g, - top: v, - advance: S - } - }) - } - } - - function Z0(i, t, r) { - i === 1 ? t.id = r.readVarint() : i === 2 ? t.bitmap = r.readBytes() : i === 3 ? t.width = r.readVarint() : i === 4 ? t.height = r.readVarint() : i === 5 ? t.left = r.readSVarint() : i === 6 ? t.top = r.readSVarint() : i === 7 && (t.advance = r.readVarint()) - } - - function c_(i) { - let t = 0, - r = 0; - for (const f of i) t += f.w * f.h, r = Math.max(r, f.w); - i.sort(((f, g) => g.h - f.h)); - const a = [{ - x: 0, - y: 0, - w: Math.max(Math.ceil(Math.sqrt(t / .95)), r), - h: 1 / 0 - }]; - let c = 0, - p = 0; - for (const f of i) - for (let g = a.length - 1; g >= 0; g--) { - const v = a[g]; - if (!(f.w > v.w || f.h > v.h)) { - if (f.x = v.x, f.y = v.y, p = Math.max(p, f.y + f.h), c = Math.max(c, f.x + f.w), f.w === v.w && f.h === v.h) { - const S = a.pop(); - S && g < a.length && (a[g] = S) - } else f.h === v.h ? (v.x += f.w, v.w -= f.w) : f.w === v.w ? (v.y += f.h, v.h -= f.h) : (a.push({ - x: v.x + f.w, - y: v.y, - w: v.w - f.w, - h: f.h - }), v.y += f.h, v.h -= f.h); - break - } - } - return { - w: c, - h: p, - fill: t / (c * p) || 0 - } - } - class Np { - constructor(t, { - pixelRatio: r, - version: a, - stretchX: c, - stretchY: p, - content: f, - textFitWidth: g, - textFitHeight: v - }) { - this.paddedRect = t, this.pixelRatio = r, this.stretchX = c, this.stretchY = p, this.content = f, this.version = a, this.textFitWidth = g, this.textFitHeight = v - } - get tl() { - return [this.paddedRect.x + 1, this.paddedRect.y + 1] - } - get br() { - return [this.paddedRect.x + this.paddedRect.w - 1, this.paddedRect.y + this.paddedRect.h - 1] - } - get tlbr() { - return this.tl.concat(this.br) - } - get displaySize() { - return [(this.paddedRect.w - 2) / this.pixelRatio, (this.paddedRect.h - 2) / this.pixelRatio] - } - } - class u_ { - constructor(t, r) { - const a = {}, - c = {}; - this.haveRenderCallbacks = []; - const p = []; - this.addImages(t, a, p), this.addImages(r, c, p); - const { - w: f, - h: g - } = c_(p), v = new na({ - width: f || 1, - height: g || 1 - }); - for (const S in t) { - const I = t[S], - E = a[S].paddedRect; - na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: E.x + 1, - y: E.y + 1 - }, I.data) - } - for (const S in r) { - const I = r[S], - E = c[S].paddedRect, - R = E.x + 1, - N = E.y + 1, - j = I.data.width, - Z = I.data.height; - na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: R, - y: N - }, I.data), na.copy(I.data, v, { - x: 0, - y: Z - 1 - }, { - x: R, - y: N - 1 - }, { - width: j, - height: 1 - }), na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: R, - y: N + Z - }, { - width: j, - height: 1 - }), na.copy(I.data, v, { - x: j - 1, - y: 0 - }, { - x: R - 1, - y: N - }, { - width: 1, - height: Z - }), na.copy(I.data, v, { - x: 0, - y: 0 - }, { - x: R + j, - y: N - }, { - width: 1, - height: Z - }) - } - this.image = v, this.iconPositions = a, this.patternPositions = c - } - addImages(t, r, a) { - for (const c in t) { - const p = t[c], - f = { - x: 0, - y: 0, - w: p.data.width + 2, - h: p.data.height + 2 - }; - a.push(f), r[c] = new Np(f, p), p.hasRenderCallback && this.haveRenderCallbacks.push(c) - } - } - patchUpdatedImages(t, r) { - t.dispatchRenderCallbacks(this.haveRenderCallbacks); - for (const a in t.updatedImages) this.patchUpdatedImage(this.iconPositions[a], t.getImage(a), r), this.patchUpdatedImage(this.patternPositions[a], t.getImage(a), r) - } - patchUpdatedImage(t, r, a) { - if (!t || !r || t.version === r.version) return; - t.version = r.version; - const [c, p] = t.tl; - a.update(r.data, void 0, { - x: c, - y: p - }) - } - } - var eo; - Kt("ImagePosition", Np), Kt("ImageAtlas", u_), T.ao = void 0, (eo = T.ao || (T.ao = {}))[eo.none = 0] = "none", eo[eo.horizontal = 1] = "horizontal", eo[eo.vertical = 2] = "vertical", eo[eo.horizontalOnly = 3] = "horizontalOnly"; - class pu { - constructor() { - this.scale = 1, this.fontStack = "", this.imageName = null, this.verticalAlign = "bottom" - } - static forText(t, r, a) { - const c = new pu; - return c.scale = t || 1, c.fontStack = r, c.verticalAlign = a || "bottom", c - } - static forImage(t, r) { - const a = new pu; - return a.imageName = t, a.verticalAlign = r || "bottom", a - } - } - class Ol { - constructor() { - this.text = "", this.sectionIndex = [], this.sections = [], this.imageSectionID = null - } - static fromFeature(t, r) { - const a = new Ol; - for (let c = 0; c < t.sections.length; c++) { - const p = t.sections[c]; - p.image ? a.addImageSection(p) : a.addTextSection(p, r) - } - return a - } - length() { - return this.text.length - } - getSection(t) { - return this.sections[this.sectionIndex[t]] - } - getSectionIndex(t) { - return this.sectionIndex[t] - } - getCharCode(t) { - return this.text.charCodeAt(t) - } - verticalizePunctuation() { - this.text = (function(t) { - let r = ""; - for (let a = 0; a < t.length; a++) { - const c = t.charCodeAt(a + 1) || null, - p = t.charCodeAt(a - 1) || null; - r += c && Kh(c) && !du[t[a + 1]] || p && Kh(p) && !du[t[a - 1]] || !du[t[a]] ? t[a] : du[t[a]] - } - return r - })(this.text) - } - trim() { - let t = 0; - for (let a = 0; a < this.text.length && dd[this.text.charCodeAt(a)]; a++) t++; - let r = this.text.length; - for (let a = this.text.length - 1; a >= 0 && a >= t && dd[this.text.charCodeAt(a)]; a--) r--; - this.text = this.text.substring(t, r), this.sectionIndex = this.sectionIndex.slice(t, r) - } - substring(t, r) { - const a = new Ol; - return a.text = this.text.substring(t, r), a.sectionIndex = this.sectionIndex.slice(t, r), a.sections = this.sections, a - } - toString() { - return this.text - } - getMaxScale() { - return this.sectionIndex.reduce(((t, r) => Math.max(t, this.sections[r].scale)), 0) - } - getMaxImageSize(t) { - let r = 0, - a = 0; - for (let c = 0; c < this.length(); c++) { - const p = this.getSection(c); - if (p.imageName) { - const f = t[p.imageName]; - if (!f) continue; - const g = f.displaySize; - r = Math.max(r, g[0]), a = Math.max(a, g[1]) - } - } - return { - maxImageWidth: r, - maxImageHeight: a - } - } - addTextSection(t, r) { - this.text += t.text, this.sections.push(pu.forText(t.scale, t.fontStack || r, t.verticalAlign)); - const a = this.sections.length - 1; - for (let c = 0; c < t.text.length; ++c) this.sectionIndex.push(a) - } - addImageSection(t) { - const r = t.image ? t.image.name : ""; - if (r.length === 0) return void Lt("Can't add FormattedSection with an empty image."); - const a = this.getNextImageSectionCharCode(); - a ? (this.text += String.fromCharCode(a), this.sections.push(pu.forImage(r, t.verticalAlign)), this.sectionIndex.push(this.sections.length - 1)) : Lt("Reached maximum number of images 6401") - } - getNextImageSectionCharCode() { - return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID) - } - } - - function hd(i, t, r, a, c, p, f, g, v, S, I, E, R, N, j) { - const Z = Ol.fromFeature(i, c); - let Y; - E === T.ao.vertical && Z.verticalizePunctuation(); - const { - processBidirectionalText: ae, - processStyledBidirectionalText: ze - } = Ca; - if (ae && Z.sections.length === 1) { - Y = []; - const Ve = ae(Z.toString(), jp(Z, S, p, t, a, N)); - for (const rt of Ve) { - const St = new Ol; - St.text = rt, St.sections = Z.sections; - for (let $t = 0; $t < rt.length; $t++) St.sectionIndex.push(0); - Y.push(St) - } - } else if (ze) { - Y = []; - const Ve = ze(Z.text, Z.sectionIndex, jp(Z, S, p, t, a, N)); - for (const rt of Ve) { - const St = new Ol; - St.text = rt[0], St.sectionIndex = rt[1], St.sections = Z.sections, Y.push(St) - } - } else Y = (function(Ve, rt) { - const St = [], - $t = Ve.text; - let Bt = 0; - for (const Ut of rt) St.push(Ve.substring(Bt, Ut)), Bt = Ut; - return Bt < $t.length && St.push(Ve.substring(Bt, $t.length)), St - })(Z, jp(Z, S, p, t, a, N)); - const me = [], - be = { - positionedLines: me, - text: Z.toString(), - top: I[1], - bottom: I[1], - left: I[0], - right: I[0], - writingMode: E, - iconsInText: !1, - verticalizable: !1 - }; - return (function(Ve, rt, St, $t, Bt, Ut, pr, Vt, Zt, mt, Br, Ur) { - let xr = 0, - or = 0, - oi = 0, - Zi = 0; - const fn = Vt === "right" ? 1 : Vt === "left" ? 0 : .5, - Bn = bn / Ur; - let Aa = 0; - for (const qi of Bt) { - qi.trim(); - const wn = qi.getMaxScale(), - An = { - positionedGlyphs: [], - lineOffset: 0 - }; - Ve.positionedLines[Aa] = An; - const kn = An.positionedGlyphs; - let Yn = 0; - if (!qi.length()) { - or += Ut, ++Aa; - continue - } - const ka = W0($t, qi, Bn); - for (let sa = 0; sa < qi.length(); sa++) { - const mn = qi.getSection(sa), - Cn = qi.getSectionIndex(sa), - Sn = qi.getCharCode(sa), - rn = X0(Zt, Br, Sn); - let Bi; - if (mn.imageName) { - if (Ve.iconsInText = !0, mn.scale = mn.scale * Bn, Bi = Y0(mn, rn, wn, ka, $t), !Bi) continue; - Yn = Math.max(Yn, Bi.imageOffset) - } else if (Bi = K0(mn, Sn, rn, ka, rt, St), !Bi) continue; - const { - rect: Xa, - metrics: Vl, - baselineOffset: Ka - } = Bi; - kn.push({ - glyph: Sn, - imageName: mn.imageName, - x: xr, - y: or + Ka + -17, - vertical: rn, - scale: mn.scale, - fontStack: mn.fontStack, - sectionIndex: Cn, - metrics: Vl, - rect: Xa - }), rn ? (Ve.verticalizable = !0, xr += (mn.imageName ? Vl.advance : bn) * mn.scale + mt) : xr += Vl.advance * mn.scale + mt - } - kn.length !== 0 && (oi = Math.max(xr - mt, oi), J0(kn, 0, kn.length - 1, fn)), xr = 0, An.lineOffset = Math.max(Yn, (wn - 1) * bn); - const Tn = Ut * wn + Yn; - or += Tn, Zi = Math.max(Tn, Zi), ++Aa - } - const { - horizontalAlign: aa, - verticalAlign: Mn - } = qp(pr); - (function(qi, wn, An, kn, Yn, ka, Tn, sa, mn) { - const Cn = (wn - An) * Yn; - let Sn = 0; - Sn = ka !== Tn ? -sa * kn - -17 : -kn * mn * Tn + .5 * Tn; - for (const rn of qi) - for (const Bi of rn.positionedGlyphs) Bi.x += Cn, Bi.y += Sn - })(Ve.positionedLines, fn, aa, Mn, oi, Zi, Ut, or, Bt.length), Ve.top += -Mn * or, Ve.bottom = Ve.top + or, Ve.left += -aa * oi, Ve.right = Ve.left + oi - })(be, t, r, a, Y, f, g, v, E, S, R, j), !(function(Ve) { - for (const rt of Ve) - if (rt.positionedGlyphs.length !== 0) return !1; - return !0 - })(me) && be - } - const dd = { - 9: !0, - 10: !0, - 11: !0, - 12: !0, - 13: !0, - 32: !0 - }, - $0 = { - 10: !0, - 32: !0, - 38: !0, - 41: !0, - 43: !0, - 45: !0, - 47: !0, - 173: !0, - 183: !0, - 8203: !0, - 8208: !0, - 8211: !0, - 8231: !0 - }, - G0 = { - 40: !0 - }; - - function h_(i, t, r, a, c, p) { - if (t.imageName) { - const f = a[t.imageName]; - return f ? f.displaySize[0] * t.scale * bn / p + c : 0 - } { - const f = r[t.fontStack], - g = f && f[i]; - return g ? g.metrics.advance * t.scale + c : 0 - } - } - - function d_(i, t, r, a) { - const c = Math.pow(i - t, 2); - return a ? i < t ? c / 2 : 2 * c : c + Math.abs(r) * r - } - - function H0(i, t, r) { - let a = 0; - return i === 10 && (a -= 1e4), r && (a += 150), i !== 40 && i !== 65288 || (a += 50), t !== 41 && t !== 65289 || (a += 50), a - } - - function p_(i, t, r, a, c, p) { - let f = null, - g = d_(t, r, c, p); - for (const v of a) { - const S = d_(t - v.x, r, c, p) + v.badness; - S <= g && (f = v, g = S) - } - return { - index: i, - x: t, - priorBreak: f, - badness: g - } - } - - function f_(i) { - return i ? f_(i.priorBreak).concat(i.index) : [] - } - - function jp(i, t, r, a, c, p) { - if (!i) return []; - const f = [], - g = (function(E, R, N, j, Z, Y) { - let ae = 0; - for (let ze = 0; ze < E.length(); ze++) { - const me = E.getSection(ze); - ae += h_(E.getCharCode(ze), me, j, Z, R, Y) - } - return ae / Math.max(1, Math.ceil(ae / N)) - })(i, t, r, a, c, p), - v = i.text.indexOf("​") >= 0; - let S = 0; - for (let E = 0; E < i.length(); E++) { - const R = i.getSection(E), - N = i.getCharCode(E); - if (dd[N] || (S += h_(N, R, a, c, t, p)), E < i.length() - 1) { - const j = !((I = N) < 11904) && (!!si["CJK Compatibility Forms"](I) || !!si["CJK Compatibility"](I) || !!si["CJK Strokes"](I) || !!si["CJK Symbols and Punctuation"](I) || !!si["Enclosed CJK Letters and Months"](I) || !!si["Halfwidth and Fullwidth Forms"](I) || !!si["Ideographic Description Characters"](I) || !!si["Vertical Forms"](I) || $c.test(String.fromCodePoint(I))); - ($0[N] || j || R.imageName || E !== i.length() - 2 && G0[i.getCharCode(E + 1)]) && f.push(p_(E + 1, S, g, f, H0(N, i.getCharCode(E + 1), j && v), !1)) - } - } - var I; - return f_(p_(i.length(), S, g, f, 0, !0)) - } - - function qp(i) { - let t = .5, - r = .5; - switch (i) { - case "right": - case "top-right": - case "bottom-right": - t = 1; - break; - case "left": - case "top-left": - case "bottom-left": - t = 0 - } - switch (i) { - case "bottom": - case "bottom-right": - case "bottom-left": - r = 1; - break; - case "top": - case "top-right": - case "top-left": - r = 0 - } - return { - horizontalAlign: t, - verticalAlign: r - } - } - - function W0(i, t, r) { - const a = t.getMaxScale() * bn, - { - maxImageWidth: c, - maxImageHeight: p - } = t.getMaxImageSize(i), - f = Math.max(a, p * r); - return { - verticalLineContentWidth: Math.max(a, c * r), - horizontalLineContentHeight: f - } - } - - function m_(i) { - switch (i) { - case "top": - return 0; - case "center": - return .5; - default: - return 1 - } - } - - function X0(i, t, r) { - return !(i === T.ao.horizontal || !t && !Gc(r) || t && (dd[r] || (a = r, new RegExp("\\p{sc=Arab}", "u").test(String.fromCodePoint(a))))); - var a - } - - function K0(i, t, r, a, c, p) { - const f = p[i.fontStack], - g = (function(S, I, E, R) { - if (S && S.rect) return S; - const N = I[E.fontStack], - j = N && N[R]; - return j ? { - rect: null, - metrics: j.metrics - } : null - })(f && f[t], c, i, t); - if (g === null) return null; - let v; - if (r) v = a.verticalLineContentWidth - i.scale * bn; - else { - const S = m_(i.verticalAlign); - v = (a.horizontalLineContentHeight - i.scale * bn) * S - } - return { - rect: g.rect, - metrics: g.metrics, - baselineOffset: v - } - } - - function Y0(i, t, r, a, c) { - const p = c[i.imageName]; - if (!p) return null; - const f = p.paddedRect, - g = p.displaySize, - v = { - width: g[0], - height: g[1], - left: 1, - top: -3, - advance: t ? g[1] : g[0] - }; - let S; - if (t) S = a.verticalLineContentWidth - g[1] * i.scale; - else { - const I = m_(i.verticalAlign); - S = (a.horizontalLineContentHeight - g[1] * i.scale) * I - } - return { - rect: f, - metrics: v, - baselineOffset: S, - imageOffset: (t ? g[0] : g[1]) * i.scale - bn * r - } - } - - function J0(i, t, r, a) { - if (a === 0) return; - const c = i[r], - p = (i[r].x + c.metrics.advance * c.scale) * a; - for (let f = t; f <= r; f++) i[f].x -= p - } - - function Q0(i, t, r) { - const { - horizontalAlign: a, - verticalAlign: c - } = qp(r), p = t[0] - i.displaySize[0] * a, f = t[1] - i.displaySize[1] * c; - return { - image: i, - top: f, - bottom: f + i.displaySize[1], - left: p, - right: p + i.displaySize[0] - } - } - - function __(i) { - var t, r; - let a = i.left, - c = i.top, - p = i.right - a, - f = i.bottom - c; - const g = (t = i.image.textFitWidth) !== null && t !== void 0 ? t : "stretchOrShrink", - v = (r = i.image.textFitHeight) !== null && r !== void 0 ? r : "stretchOrShrink", - S = (i.image.content[2] - i.image.content[0]) / (i.image.content[3] - i.image.content[1]); - if (v === "proportional") { - if (g === "stretchOnly" && p / f < S || g === "proportional") { - const I = Math.ceil(f * S); - a *= I / p, p = I - } - } else if (g === "proportional" && v === "stretchOnly" && S !== 0 && p / f > S) { - const I = Math.ceil(p / S); - c *= I / f, f = I - } - return { - x1: a, - y1: c, - x2: a + p, - y2: c + f - } - } - - function g_(i, t, r, a, c, p) { - const f = i.image; - let g; - if (f.content) { - const Y = f.content, - ae = f.pixelRatio || 1; - g = [Y[0] / ae, Y[1] / ae, f.displaySize[0] - Y[2] / ae, f.displaySize[1] - Y[3] / ae] - } - const v = t.left * p, - S = t.right * p; - let I, E, R, N; - r === "width" || r === "both" ? (N = c[0] + v - a[3], E = c[0] + S + a[1]) : (N = c[0] + (v + S - f.displaySize[0]) / 2, E = N + f.displaySize[0]); - const j = t.top * p, - Z = t.bottom * p; - return r === "height" || r === "both" ? (I = c[1] + j - a[0], R = c[1] + Z + a[2]) : (I = c[1] + (j + Z - f.displaySize[1]) / 2, R = I + f.displaySize[1]), { - image: f, - top: I, - right: E, - bottom: R, - left: N, - collisionPadding: g - } - } - const As = 128, - to = 32640; - - function v_(i, t) { - const { - expression: r - } = t; - if (r.kind === "constant") return { - kind: "constant", - layoutSize: r.evaluate(new Oi(i + 1)) - }; - if (r.kind === "source") return { - kind: "source" - }; - { - const { - zoomStops: a, - interpolationType: c - } = r; - let p = 0; - for (; p < a.length && a[p] <= i;) p++; - p = Math.max(0, p - 1); - let f = p; - for (; f < a.length && a[f] < i + 1;) f++; - f = Math.min(a.length - 1, f); - const g = a[p], - v = a[f]; - return r.kind === "composite" ? { - kind: "composite", - minZoom: g, - maxZoom: v, - interpolationType: c - } : { - kind: "camera", - minZoom: g, - maxZoom: v, - minSize: r.evaluate(new Oi(g)), - maxSize: r.evaluate(new Oi(v)), - interpolationType: c - } - } - } - - function Vp(i, t, r) { - let a = "never"; - const c = i.get(t); - return c ? a = c : i.get(r) && (a = "always"), a - } - const ey = [{ - name: "a_fade_opacity", - components: 1, - type: "Uint8", - offset: 0 - }]; - - function pd(i, t, r, a, c, p, f, g, v, S, I, E, R) { - const N = g ? Math.min(to, Math.round(g[0])) : 0, - j = g ? Math.min(to, Math.round(g[1])) : 0; - i.emplaceBack(t, r, Math.round(32 * a), Math.round(32 * c), p, f, (N << 1) + (v ? 1 : 0), j, 16 * S, 16 * I, 256 * E, 256 * R) - } - - function Up(i, t, r) { - i.emplaceBack(t.x, t.y, r), i.emplaceBack(t.x, t.y, r), i.emplaceBack(t.x, t.y, r), i.emplaceBack(t.x, t.y, r) - } - - function ty(i) { - for (const t of i.sections) - if (Qh(t.text)) return !0; - return !1 - } - class Zp { - constructor(t) { - this.layoutVertexArray = new Nt, this.indexArray = new ki, this.programConfigurations = t, this.segments = new Wr, this.dynamicLayoutVertexArray = new yt, this.opacityVertexArray = new sr, this.hasVisibleVertices = !1, this.placedSymbolArray = new U - } - isEmpty() { - return this.layoutVertexArray.length === 0 && this.indexArray.length === 0 && this.dynamicLayoutVertexArray.length === 0 && this.opacityVertexArray.length === 0 - } - upload(t, r, a, c) { - this.isEmpty() || (a && (this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, M0.members), this.indexBuffer = t.createIndexBuffer(this.indexArray, r), this.dynamicLayoutVertexBuffer = t.createVertexBuffer(this.dynamicLayoutVertexArray, A0.members, !0), this.opacityVertexBuffer = t.createVertexBuffer(this.opacityVertexArray, ey, !0), this.opacityVertexBuffer.itemSize = 1), (a || c) && this.programConfigurations.upload(t)) - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy()) - } - } - Kt("SymbolBuffers", Zp); - class $p { - constructor(t, r, a) { - this.layoutVertexArray = new t, this.layoutAttributes = r, this.indexArray = new a, this.segments = new Wr, this.collisionVertexArray = new xi - } - upload(t) { - this.layoutVertexBuffer = t.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t.createVertexBuffer(this.collisionVertexArray, k0.members, !0) - } - destroy() { - this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy()) - } - } - Kt("CollisionBuffers", $p); - class Nl { - constructor(t) { - this.collisionBoxArray = t.collisionBoxArray, this.zoom = t.zoom, this.globalState = t.globalState, this.overscaling = t.overscaling, this.layers = t.layers, this.layerIds = this.layers.map((f => f.id)), this.index = t.index, this.pixelRatio = t.pixelRatio, this.sourceLayerIndex = t.sourceLayerIndex, this.hasPattern = !1, this.hasRTLText = !1, this.sortKeyRanges = [], this.collisionCircleArray = []; - const r = this.layers[0]._unevaluatedLayout._values; - this.textSizeData = v_(this.zoom, r["text-size"]), this.iconSizeData = v_(this.zoom, r["icon-size"]); - const a = this.layers[0].layout, - c = a.get("symbol-sort-key"), - p = a.get("symbol-z-order"); - this.canOverlap = Vp(a, "text-overlap", "text-allow-overlap") !== "never" || Vp(a, "icon-overlap", "icon-allow-overlap") !== "never" || a.get("text-ignore-placement") || a.get("icon-ignore-placement"), this.sortFeaturesByKey = p !== "viewport-y" && !c.isConstant(), this.sortFeaturesByY = (p === "viewport-y" || p === "auto" && !this.sortFeaturesByKey) && this.canOverlap, a.get("symbol-placement") === "point" && (this.writingModes = a.get("text-writing-mode").map((f => T.ao[f]))), this.stateDependentLayerIds = this.layers.filter((f => f.isStateDependent())).map((f => f.id)), this.sourceID = t.sourceID - } - createArrays() { - this.text = new Zp(new ia(this.layers, this.zoom, (t => /^text/.test(t)))), this.icon = new Zp(new ia(this.layers, this.zoom, (t => /^icon/.test(t)))), this.glyphOffsetArray = new re, this.lineVertexArray = new se, this.symbolInstances = new J, this.textAnchorOffsets = new ue - } - calculateGlyphDependencies(t, r, a, c, p) { - for (let f = 0; f < t.length; f++) - if (r[t.charCodeAt(f)] = !0, (a || c) && p) { - const g = du[t.charAt(f)]; - g && (r[g.charCodeAt(0)] = !0) - } - } - populate(t, r, a) { - const c = this.layers[0], - p = c.layout, - f = p.get("text-font"), - g = p.get("text-field"), - v = p.get("icon-image"), - S = (g.value.kind !== "constant" || g.value.value instanceof ln && !g.value.value.isEmpty() || g.value.value.toString().length > 0) && (f.value.kind !== "constant" || f.value.value.length > 0), - I = v.value.kind !== "constant" || !!v.value.value || Object.keys(v.parameters).length > 0, - E = p.get("symbol-sort-key"); - if (this.features = [], !S && !I) return; - const R = r.iconDependencies, - N = r.glyphDependencies, - j = r.availableImages, - Z = new Oi(this.zoom, { - globalState: this.globalState - }); - for (const { - feature: Y, - id: ae, - index: ze, - sourceLayerIndex: me - } - of t) { - const be = c._featureFilter.needGeometry, - Ve = Wa(Y, be); - if (!c._featureFilter.filter(Z, Ve, a)) continue; - let rt, St; - if (be || (Ve.geometry = cs(Y)), S) { - const Bt = c.getValueAndResolveTokens("text-field", Ve, a, j), - Ut = ln.factory(Bt), - pr = this.hasRTLText = this.hasRTLText || ty(Ut); - (!pr || Ca.getRTLTextPluginStatus() === "unavailable" || pr && Ca.isParsed()) && (rt = z0(Ut, c, Ve)) - } - if (I) { - const Bt = c.getValueAndResolveTokens("icon-image", Ve, a, j); - St = Bt instanceof Nn ? Bt : Nn.fromString(Bt) - } - if (!rt && !St) continue; - const $t = this.sortFeaturesByKey ? E.evaluate(Ve, {}, a) : void 0; - if (this.features.push({ - id: ae, - text: rt, - icon: St, - index: ze, - sourceLayerIndex: me, - geometry: Ve.geometry, - properties: Y.properties, - type: Bl.types[Y.type], - sortKey: $t - }), St && (R[St.name] = !0), rt) { - const Bt = f.evaluate(Ve, {}, a).join(","), - Ut = p.get("text-rotation-alignment") !== "viewport" && p.get("symbol-placement") !== "point"; - this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(T.ao.vertical) >= 0; - for (const pr of rt.sections) - if (pr.image) R[pr.image.name] = !0; - else { - const Vt = wl(rt.toString()), - Zt = pr.fontStack || Bt, - mt = N[Zt] = N[Zt] || {}; - this.calculateGlyphDependencies(pr.text, mt, Ut, this.allowVerticalPlacement, Vt) - } - } - } - p.get("symbol-placement") === "line" && (this.features = (function(Y) { - const ae = {}, - ze = {}, - me = []; - let be = 0; - - function Ve(Bt) { - me.push(Y[Bt]), be++ - } - - function rt(Bt, Ut, pr) { - const Vt = ze[Bt]; - return delete ze[Bt], ze[Ut] = Vt, me[Vt].geometry[0].pop(), me[Vt].geometry[0] = me[Vt].geometry[0].concat(pr[0]), Vt - } - - function St(Bt, Ut, pr) { - const Vt = ae[Ut]; - return delete ae[Ut], ae[Bt] = Vt, me[Vt].geometry[0].shift(), me[Vt].geometry[0] = pr[0].concat(me[Vt].geometry[0]), Vt - } - - function $t(Bt, Ut, pr) { - const Vt = pr ? Ut[0][Ut[0].length - 1] : Ut[0][0]; - return `${Bt}:${Vt.x}:${Vt.y}` - } - for (let Bt = 0; Bt < Y.length; Bt++) { - const Ut = Y[Bt], - pr = Ut.geometry, - Vt = Ut.text ? Ut.text.toString() : null; - if (!Vt) { - Ve(Bt); - continue - } - const Zt = $t(Vt, pr), - mt = $t(Vt, pr, !0); - if (Zt in ze && mt in ae && ze[Zt] !== ae[mt]) { - const Br = St(Zt, mt, pr), - Ur = rt(Zt, mt, me[Br].geometry); - delete ae[Zt], delete ze[mt], ze[$t(Vt, me[Ur].geometry, !0)] = Ur, me[Br].geometry = null - } else Zt in ze ? rt(Zt, mt, pr) : mt in ae ? St(Zt, mt, pr) : (Ve(Bt), ae[Zt] = be - 1, ze[mt] = be - 1) - } - return me.filter((Bt => Bt.geometry)) - })(this.features)), this.sortFeaturesByKey && this.features.sort(((Y, ae) => Y.sortKey - ae.sortKey)) - } - update(t, r, a) { - this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t, r, this.layers, a), this.icon.programConfigurations.updatePaintArrays(t, r, this.layers, a)) - } - isEmpty() { - return this.symbolInstances.length === 0 && !this.hasRTLText - } - uploadPending() { - return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload - } - upload(t) { - !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t), this.iconCollisionBox.upload(t)), this.text.upload(t, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = !0 - } - destroyDebugData() { - this.textCollisionBox.destroy(), this.iconCollisionBox.destroy() - } - destroy() { - this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData() - } - addToLineVertexArray(t, r) { - const a = this.lineVertexArray.length; - if (t.segment !== void 0) { - let c = t.dist(r[t.segment + 1]), - p = t.dist(r[t.segment]); - const f = {}; - for (let g = t.segment + 1; g < r.length; g++) f[g] = { - x: r[g].x, - y: r[g].y, - tileUnitDistanceFromAnchor: c - }, g < r.length - 1 && (c += r[g + 1].dist(r[g])); - for (let g = t.segment || 0; g >= 0; g--) f[g] = { - x: r[g].x, - y: r[g].y, - tileUnitDistanceFromAnchor: p - }, g > 0 && (p += r[g - 1].dist(r[g])); - for (let g = 0; g < r.length; g++) { - const v = f[g]; - this.lineVertexArray.emplaceBack(v.x, v.y, v.tileUnitDistanceFromAnchor) - } - } - return { - lineStartIndex: a, - lineLength: this.lineVertexArray.length - a - } - } - addSymbols(t, r, a, c, p, f, g, v, S, I, E, R) { - const N = t.indexArray, - j = t.layoutVertexArray, - Z = t.segments.prepareSegment(4 * r.length, j, N, this.canOverlap ? f.sortKey : void 0), - Y = this.glyphOffsetArray.length, - ae = Z.vertexLength, - ze = this.allowVerticalPlacement && g === T.ao.vertical ? Math.PI / 2 : 0, - me = f.text && f.text.sections; - for (let be = 0; be < r.length; be++) { - const { - tl: Ve, - tr: rt, - bl: St, - br: $t, - tex: Bt, - pixelOffsetTL: Ut, - pixelOffsetBR: pr, - minFontScaleX: Vt, - minFontScaleY: Zt, - glyphOffset: mt, - isSDF: Br, - sectionIndex: Ur - } = r[be], xr = Z.vertexLength, or = mt[1]; - pd(j, v.x, v.y, Ve.x, or + Ve.y, Bt.x, Bt.y, a, Br, Ut.x, Ut.y, Vt, Zt), pd(j, v.x, v.y, rt.x, or + rt.y, Bt.x + Bt.w, Bt.y, a, Br, pr.x, Ut.y, Vt, Zt), pd(j, v.x, v.y, St.x, or + St.y, Bt.x, Bt.y + Bt.h, a, Br, Ut.x, pr.y, Vt, Zt), pd(j, v.x, v.y, $t.x, or + $t.y, Bt.x + Bt.w, Bt.y + Bt.h, a, Br, pr.x, pr.y, Vt, Zt), Up(t.dynamicLayoutVertexArray, v, ze), N.emplaceBack(xr, xr + 2, xr + 1), N.emplaceBack(xr + 1, xr + 2, xr + 3), Z.vertexLength += 4, Z.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(mt[0]), be !== r.length - 1 && Ur === r[be + 1].sectionIndex || t.programConfigurations.populatePaintArrays(j.length, f, f.index, {}, R, me && me[Ur]) - } - t.placedSymbolArray.emplaceBack(v.x, v.y, Y, this.glyphOffsetArray.length - Y, ae, S, I, v.segment, a ? a[0] : 0, a ? a[1] : 0, c[0], c[1], g, 0, !1, 0, E) - } - _addCollisionDebugVertex(t, r, a, c, p, f) { - return r.emplaceBack(0, 0), t.emplaceBack(a.x, a.y, c, p, Math.round(f.x), Math.round(f.y)) - } - addCollisionDebugVertices(t, r, a, c, p, f, g) { - const v = p.segments.prepareSegment(4, p.layoutVertexArray, p.indexArray), - S = v.vertexLength, - I = p.layoutVertexArray, - E = p.collisionVertexArray, - R = g.anchorX, - N = g.anchorY; - this._addCollisionDebugVertex(I, E, f, R, N, new $(t, r)), this._addCollisionDebugVertex(I, E, f, R, N, new $(a, r)), this._addCollisionDebugVertex(I, E, f, R, N, new $(a, c)), this._addCollisionDebugVertex(I, E, f, R, N, new $(t, c)), v.vertexLength += 4; - const j = p.indexArray; - j.emplaceBack(S, S + 1), j.emplaceBack(S + 1, S + 2), j.emplaceBack(S + 2, S + 3), j.emplaceBack(S + 3, S), v.primitiveLength += 4 - } - addDebugCollisionBoxes(t, r, a, c) { - for (let p = t; p < r; p++) { - const f = this.collisionBoxArray.get(p); - this.addCollisionDebugVertices(f.x1, f.y1, f.x2, f.y2, c ? this.textCollisionBox : this.iconCollisionBox, f.anchorPoint, a) - } - } - generateCollisionDebugBuffers() { - this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new $p(Xr, a_.members, Pi), this.iconCollisionBox = new $p(Xr, a_.members, Pi); - for (let t = 0; t < this.symbolInstances.length; t++) { - const r = this.symbolInstances.get(t); - this.addDebugCollisionBoxes(r.textBoxStartIndex, r.textBoxEndIndex, r, !0), this.addDebugCollisionBoxes(r.verticalTextBoxStartIndex, r.verticalTextBoxEndIndex, r, !0), this.addDebugCollisionBoxes(r.iconBoxStartIndex, r.iconBoxEndIndex, r, !1), this.addDebugCollisionBoxes(r.verticalIconBoxStartIndex, r.verticalIconBoxEndIndex, r, !1) - } - } - _deserializeCollisionBoxesForSymbol(t, r, a, c, p, f, g, v, S) { - const I = {}; - for (let E = r; E < a; E++) { - const R = t.get(E); - I.textBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.textFeatureIndex = R.featureIndex; - break - } - for (let E = c; E < p; E++) { - const R = t.get(E); - I.verticalTextBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.verticalTextFeatureIndex = R.featureIndex; - break - } - for (let E = f; E < g; E++) { - const R = t.get(E); - I.iconBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.iconFeatureIndex = R.featureIndex; - break - } - for (let E = v; E < S; E++) { - const R = t.get(E); - I.verticalIconBox = { - x1: R.x1, - y1: R.y1, - x2: R.x2, - y2: R.y2, - anchorPointX: R.anchorPointX, - anchorPointY: R.anchorPointY - }, I.verticalIconFeatureIndex = R.featureIndex; - break - } - return I - } - deserializeCollisionBoxes(t) { - this.collisionArrays = []; - for (let r = 0; r < this.symbolInstances.length; r++) { - const a = this.symbolInstances.get(r); - this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t, a.textBoxStartIndex, a.textBoxEndIndex, a.verticalTextBoxStartIndex, a.verticalTextBoxEndIndex, a.iconBoxStartIndex, a.iconBoxEndIndex, a.verticalIconBoxStartIndex, a.verticalIconBoxEndIndex)) - } - } - hasTextData() { - return this.text.segments.get().length > 0 - } - hasIconData() { - return this.icon.segments.get().length > 0 - } - hasDebugData() { - return this.textCollisionBox && this.iconCollisionBox - } - hasTextCollisionBoxData() { - return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0 - } - hasIconCollisionBoxData() { - return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0 - } - addIndicesForPlacedSymbol(t, r) { - const a = t.placedSymbolArray.get(r), - c = a.vertexStartIndex + 4 * a.numGlyphs; - for (let p = a.vertexStartIndex; p < c; p += 4) t.indexArray.emplaceBack(p, p + 2, p + 1), t.indexArray.emplaceBack(p + 1, p + 2, p + 3) - } - getSortedSymbolIndexes(t) { - if (this.sortedAngle === t && this.symbolInstanceIndexes !== void 0) return this.symbolInstanceIndexes; - const r = Math.sin(t), - a = Math.cos(t), - c = [], - p = [], - f = []; - for (let g = 0; g < this.symbolInstances.length; ++g) { - f.push(g); - const v = this.symbolInstances.get(g); - c.push(0 | Math.round(r * v.anchorX + a * v.anchorY)), p.push(v.featureIndex) - } - return f.sort(((g, v) => c[g] - c[v] || p[v] - p[g])), f - } - addToSortKeyRanges(t, r) { - const a = this.sortKeyRanges[this.sortKeyRanges.length - 1]; - a && a.sortKey === r ? a.symbolInstanceEnd = t + 1 : this.sortKeyRanges.push({ - sortKey: r, - symbolInstanceStart: t, - symbolInstanceEnd: t + 1 - }) - } - sortFeatures(t) { - if (this.sortFeaturesByY && this.sortedAngle !== t && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) { - this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t), this.sortedAngle = t, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = []; - for (const r of this.symbolInstanceIndexes) { - const a = this.symbolInstances.get(r); - this.featureSortOrder.push(a.featureIndex), [a.rightJustifiedTextSymbolIndex, a.centerJustifiedTextSymbolIndex, a.leftJustifiedTextSymbolIndex].forEach(((c, p, f) => { - c >= 0 && f.indexOf(c) === p && this.addIndicesForPlacedSymbol(this.text, c) - })), a.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, a.verticalPlacedTextSymbolIndex), a.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, a.placedIconSymbolIndex), a.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, a.verticalPlacedIconSymbolIndex) - } - this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray) - } - } - } - let y_, x_; - Kt("SymbolBucket", Nl, { - omit: ["layers", "collisionBoxArray", "features", "compareText"] - }), Nl.MAX_GLYPHS = 65535, Nl.addDynamicAttributes = Up; - var Gp = { - get paint() { - return x_ = x_ || new jn({ - "icon-opacity": new Rr(xe.paint_symbol["icon-opacity"]), - "icon-color": new Rr(xe.paint_symbol["icon-color"]), - "icon-halo-color": new Rr(xe.paint_symbol["icon-halo-color"]), - "icon-halo-width": new Rr(xe.paint_symbol["icon-halo-width"]), - "icon-halo-blur": new Rr(xe.paint_symbol["icon-halo-blur"]), - "icon-translate": new hr(xe.paint_symbol["icon-translate"]), - "icon-translate-anchor": new hr(xe.paint_symbol["icon-translate-anchor"]), - "text-opacity": new Rr(xe.paint_symbol["text-opacity"]), - "text-color": new Rr(xe.paint_symbol["text-color"], { - runtimeType: Dr, - getOverride: i => i.textColor, - hasOverride: i => !!i.textColor - }), - "text-halo-color": new Rr(xe.paint_symbol["text-halo-color"]), - "text-halo-width": new Rr(xe.paint_symbol["text-halo-width"]), - "text-halo-blur": new Rr(xe.paint_symbol["text-halo-blur"]), - "text-translate": new hr(xe.paint_symbol["text-translate"]), - "text-translate-anchor": new hr(xe.paint_symbol["text-translate-anchor"]) - }) - }, - get layout() { - return y_ = y_ || new jn({ - "symbol-placement": new hr(xe.layout_symbol["symbol-placement"]), - "symbol-spacing": new hr(xe.layout_symbol["symbol-spacing"]), - "symbol-avoid-edges": new hr(xe.layout_symbol["symbol-avoid-edges"]), - "symbol-sort-key": new Rr(xe.layout_symbol["symbol-sort-key"]), - "symbol-z-order": new hr(xe.layout_symbol["symbol-z-order"]), - "icon-allow-overlap": new hr(xe.layout_symbol["icon-allow-overlap"]), - "icon-overlap": new hr(xe.layout_symbol["icon-overlap"]), - "icon-ignore-placement": new hr(xe.layout_symbol["icon-ignore-placement"]), - "icon-optional": new hr(xe.layout_symbol["icon-optional"]), - "icon-rotation-alignment": new hr(xe.layout_symbol["icon-rotation-alignment"]), - "icon-size": new Rr(xe.layout_symbol["icon-size"]), - "icon-text-fit": new hr(xe.layout_symbol["icon-text-fit"]), - "icon-text-fit-padding": new hr(xe.layout_symbol["icon-text-fit-padding"]), - "icon-image": new Rr(xe.layout_symbol["icon-image"]), - "icon-rotate": new Rr(xe.layout_symbol["icon-rotate"]), - "icon-padding": new Rr(xe.layout_symbol["icon-padding"]), - "icon-keep-upright": new hr(xe.layout_symbol["icon-keep-upright"]), - "icon-offset": new Rr(xe.layout_symbol["icon-offset"]), - "icon-anchor": new Rr(xe.layout_symbol["icon-anchor"]), - "icon-pitch-alignment": new hr(xe.layout_symbol["icon-pitch-alignment"]), - "text-pitch-alignment": new hr(xe.layout_symbol["text-pitch-alignment"]), - "text-rotation-alignment": new hr(xe.layout_symbol["text-rotation-alignment"]), - "text-field": new Rr(xe.layout_symbol["text-field"]), - "text-font": new Rr(xe.layout_symbol["text-font"]), - "text-size": new Rr(xe.layout_symbol["text-size"]), - "text-max-width": new Rr(xe.layout_symbol["text-max-width"]), - "text-line-height": new hr(xe.layout_symbol["text-line-height"]), - "text-letter-spacing": new Rr(xe.layout_symbol["text-letter-spacing"]), - "text-justify": new Rr(xe.layout_symbol["text-justify"]), - "text-radial-offset": new Rr(xe.layout_symbol["text-radial-offset"]), - "text-variable-anchor": new hr(xe.layout_symbol["text-variable-anchor"]), - "text-variable-anchor-offset": new Rr(xe.layout_symbol["text-variable-anchor-offset"]), - "text-anchor": new Rr(xe.layout_symbol["text-anchor"]), - "text-max-angle": new hr(xe.layout_symbol["text-max-angle"]), - "text-writing-mode": new hr(xe.layout_symbol["text-writing-mode"]), - "text-rotate": new Rr(xe.layout_symbol["text-rotate"]), - "text-padding": new hr(xe.layout_symbol["text-padding"]), - "text-keep-upright": new hr(xe.layout_symbol["text-keep-upright"]), - "text-transform": new Rr(xe.layout_symbol["text-transform"]), - "text-offset": new Rr(xe.layout_symbol["text-offset"]), - "text-allow-overlap": new hr(xe.layout_symbol["text-allow-overlap"]), - "text-overlap": new hr(xe.layout_symbol["text-overlap"]), - "text-ignore-placement": new hr(xe.layout_symbol["text-ignore-placement"]), - "text-optional": new hr(xe.layout_symbol["text-optional"]) - }) - } - }; - class b_ { - constructor(t) { - if (t.property.overrides === void 0) throw new Error("overrides must be provided to instantiate FormatSectionOverride class"); - this.type = t.property.overrides ? t.property.overrides.runtimeType : Mt, this.defaultValue = t - } - evaluate(t) { - if (t.formattedSection) { - const r = this.defaultValue.property.overrides; - if (r && r.hasOverride(t.formattedSection)) return r.getOverride(t.formattedSection) - } - return t.feature && t.featureState ? this.defaultValue.evaluate(t.feature, t.featureState) : this.defaultValue.property.specification.default - } - eachChild(t) { - this.defaultValue.isConstant() || t(this.defaultValue.value._styleExpression.expression) - } - outputDefined() { - return !1 - } - serialize() { - return null - } - } - Kt("FormatSectionOverride", b_, { - omit: ["defaultValue"] - }); - class fd extends ha { - constructor(t) { - super(t, Gp) - } - recalculate(t, r) { - if (super.recalculate(t, r), this.layout.get("icon-rotation-alignment") === "auto" && (this.layout._values["icon-rotation-alignment"] = this.layout.get("symbol-placement") !== "point" ? "map" : "viewport"), this.layout.get("text-rotation-alignment") === "auto" && (this.layout._values["text-rotation-alignment"] = this.layout.get("symbol-placement") !== "point" ? "map" : "viewport"), this.layout.get("text-pitch-alignment") === "auto" && (this.layout._values["text-pitch-alignment"] = this.layout.get("text-rotation-alignment") === "map" ? "map" : "viewport"), this.layout.get("icon-pitch-alignment") === "auto" && (this.layout._values["icon-pitch-alignment"] = this.layout.get("icon-rotation-alignment")), this.layout.get("symbol-placement") === "point") { - const a = this.layout.get("text-writing-mode"); - if (a) { - const c = []; - for (const p of a) c.indexOf(p) < 0 && c.push(p); - this.layout._values["text-writing-mode"] = c - } else this.layout._values["text-writing-mode"] = ["horizontal"] - } - this._setPaintOverrides() - } - getValueAndResolveTokens(t, r, a, c) { - const p = this.layout.get(t).evaluate(r, {}, a, c), - f = this._unevaluatedLayout._values[t]; - return f.isDataDriven() || fl(f.value) || !p ? p : (function(g, v) { - return v.replace(/{([^{}]+)}/g, ((S, I) => g && I in g ? String(g[I]) : "")) - })(r.properties, p) - } - createBucket(t) { - return new Nl(t) - } - queryRadius() { - return 0 - } - queryIntersectsFeature() { - throw new Error("Should take a different path in FeatureIndex") - } - _setPaintOverrides() { - for (const t of Gp.paint.overridableProperties) { - if (!fd.hasPaintOverride(this.layout, t)) continue; - const r = this.paint.get(t), - a = new b_(r), - c = new Lc(a, r.property.specification); - let p = null; - p = r.value.kind === "constant" || r.value.kind === "source" ? new So("source", c) : new Dc("composite", c, r.value.zoomStops), this.paint._values[t] = new Na(r.property, p, r.parameters) - } - } - _handleOverridablePaintPropertyUpdate(t, r, a) { - return !(!this.layout || r.isDataDriven() || a.isDataDriven()) && fd.hasPaintOverride(this.layout, t) - } - static hasPaintOverride(t, r) { - const a = t.get("text-field"), - c = Gp.paint.properties[r]; - let p = !1; - const f = g => { - for (const v of g) - if (c.overrides && c.overrides.hasOverride(v)) return void(p = !0) - }; - if (a.value.kind === "constant" && a.value.value instanceof ln) f(a.value.value.sections); - else if (a.value.kind === "source") { - const g = S => { - p || (S instanceof ga && wr(S.value) === Si ? f(S.value.sections) : S instanceof ms ? f(S.sections) : S.eachChild(g)) - }, - v = a.value; - v._styleExpression && g(v._styleExpression.expression) - } - return p - } - } - let w_; - var ry = { - get paint() { - return w_ = w_ || new jn({ - "background-color": new hr(xe.paint_background["background-color"]), - "background-pattern": new ns(xe.paint_background["background-pattern"]), - "background-opacity": new hr(xe.paint_background["background-opacity"]) - }) - } - }; - class iy extends ha { - constructor(t) { - super(t, ry) - } - } - let T_; - var ny = { - get paint() { - return T_ = T_ || new jn({ - "raster-opacity": new hr(xe.paint_raster["raster-opacity"]), - "raster-hue-rotate": new hr(xe.paint_raster["raster-hue-rotate"]), - "raster-brightness-min": new hr(xe.paint_raster["raster-brightness-min"]), - "raster-brightness-max": new hr(xe.paint_raster["raster-brightness-max"]), - "raster-saturation": new hr(xe.paint_raster["raster-saturation"]), - "raster-contrast": new hr(xe.paint_raster["raster-contrast"]), - "raster-resampling": new hr(xe.paint_raster["raster-resampling"]), - "raster-fade-duration": new hr(xe.paint_raster["raster-fade-duration"]) - }) - } - }; - class ay extends ha { - constructor(t) { - super(t, ny) - } - } - class sy extends ha { - constructor(t) { - super(t, {}), this.onAdd = r => { - this.implementation.onAdd && this.implementation.onAdd(r, r.painter.context.gl) - }, this.onRemove = r => { - this.implementation.onRemove && this.implementation.onRemove(r, r.painter.context.gl) - }, this.implementation = t - } - 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 oy { - constructor(t) { - this._methodToThrottle = t, 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 ly = { - once: !0 - }, - Hp = 63710088e-1; - class ro { - constructor(t, r) { - if (isNaN(t) || isNaN(r)) throw new Error(`Invalid LngLat object: (${t}, ${r})`); - if (this.lng = +t, this.lat = +r, this.lat > 90 || this.lat < -90) throw new Error("Invalid LngLat latitude value: must be between -90 and 90") - } - wrap() { - return new ro(tt(this.lng, -180, 180), this.lat) - } - toArray() { - return [this.lng, this.lat] - } - toString() { - return `LngLat(${this.lng}, ${this.lat})` - } - distanceTo(t) { - const r = Math.PI / 180, - a = this.lat * r, - c = t.lat * r, - p = Math.sin(a) * Math.sin(c) + Math.cos(a) * Math.cos(c) * Math.cos((t.lng - this.lng) * r); - return Hp * Math.acos(Math.min(p, 1)) - } - static convert(t) { - if (t instanceof ro) return t; - if (Array.isArray(t) && (t.length === 2 || t.length === 3)) return new ro(Number(t[0]), Number(t[1])); - if (!Array.isArray(t) && typeof t == "object" && t !== null) return new ro(Number("lng" in t ? t.lng : t.lon), Number(t.lat)); - throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]") - } - } - const C_ = 2 * Math.PI * Hp; - - function S_(i) { - return C_ * Math.cos(i * Math.PI / 180) - } - - function P_(i) { - return (180 + i) / 360 - } - - function I_(i) { - return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + i * Math.PI / 360))) / 360 - } - - function M_(i, t) { - return i / S_(t) - } - - function Wp(i) { - return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * i) * Math.PI / 180)) - 90 - } - - function A_(i, t) { - return i * S_(Wp(t)) - } - class fu { - constructor(t, r, a = 0) { - this.x = +t, this.y = +r, this.z = +a - } - static fromLngLat(t, r = 0) { - const a = ro.convert(t); - return new fu(P_(a.lng), I_(a.lat), M_(r, a.lat)) - } - toLngLat() { - return new ro(360 * this.x - 180, Wp(this.y)) - } - toAltitude() { - return A_(this.z, this.y) - } - meterInMercatorCoordinateUnits() { - return 1 / C_ * (t = Wp(this.y), 1 / Math.cos(t * Math.PI / 180)); - var t - } - } - - function k_(i, t, r) { - var a = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r); - return [i * a - 2 * Math.PI * 6378137 / 2, t * a - 2 * Math.PI * 6378137 / 2] - } - class Xp { - constructor(t, r, a) { - if (!(function(c, p, f) { - return !(c < 0 || c > 25 || f < 0 || f >= Math.pow(2, c) || p < 0 || p >= Math.pow(2, c)) - })(t, r, a)) throw new Error(`x=${r}, y=${a}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `); - this.z = t, this.x = r, this.y = a, this.key = jl(0, t, t, r, a) - } - equals(t) { - return this.z === t.z && this.x === t.x && this.y === t.y - } - url(t, r, a) { - const c = (f = this.y, g = this.z, v = k_(256 * (p = this.x), 256 * (f = Math.pow(2, g) - f - 1), g), S = k_(256 * (p + 1), 256 * (f + 1), g), v[0] + "," + v[1] + "," + S[0] + "," + S[1]); - var p, f, g, v, S; - const I = (function(E, R, N) { - let j, Z = ""; - for (let Y = E; Y > 0; Y--) j = 1 << Y - 1, Z += (R & j ? 1 : 0) + (N & j ? 2 : 0); - return Z - })(this.z, this.x, this.y); - return t[(this.x + this.y) % t.length].replace(/{prefix}/g, (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(/{z}/g, String(this.z)).replace(/{x}/g, String(this.x)).replace(/{y}/g, String(a === "tms" ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(/{ratio}/g, r > 1 ? "@2x" : "").replace(/{quadkey}/g, I).replace(/{bbox-epsg-3857}/g, c) - } - isChildOf(t) { - const r = this.z - t.z; - return r > 0 && t.x === this.x >> r && t.y === this.y >> r - } - getTilePoint(t) { - const r = Math.pow(2, this.z); - return new $((t.x * r - this.x) * ne, (t.y * r - this.y) * ne) - } - toString() { - return `${this.z}/${this.x}/${this.y}` - } - } - class E_ { - constructor(t, r) { - this.wrap = t, this.canonical = r, this.key = jl(t, r.z, r.z, r.x, r.y) - } - } - class Ma { - constructor(t, r, a, c, p) { - if (this.terrainRttPosMatrix32f = null, t < a) throw new Error(`overscaledZ should be >= z; overscaledZ = ${t}; z = ${a}`); - this.overscaledZ = t, this.wrap = r, this.canonical = new Xp(a, +c, +p), this.key = jl(r, t, a, c, p) - } - clone() { - return new Ma(this.overscaledZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) - } - equals(t) { - return this.overscaledZ === t.overscaledZ && this.wrap === t.wrap && this.canonical.equals(t.canonical) - } - scaledTo(t) { - if (t > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`); - const r = this.canonical.z - t; - return t > this.canonical.z ? new Ma(t, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new Ma(t, this.wrap, t, this.canonical.x >> r, this.canonical.y >> r) - } - calculateScaledKey(t, r) { - if (t > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`); - const a = this.canonical.z - t; - return t > this.canonical.z ? jl(this.wrap * +r, t, this.canonical.z, this.canonical.x, this.canonical.y) : jl(this.wrap * +r, t, t, this.canonical.x >> a, this.canonical.y >> a) - } - isChildOf(t) { - if (t.wrap !== this.wrap) return !1; - const r = this.canonical.z - t.canonical.z; - return t.overscaledZ === 0 || t.overscaledZ < this.overscaledZ && t.canonical.x === this.canonical.x >> r && t.canonical.y === this.canonical.y >> r - } - children(t) { - if (this.overscaledZ >= t) return [new Ma(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)]; - const r = this.canonical.z + 1, - a = 2 * this.canonical.x, - c = 2 * this.canonical.y; - return [new Ma(r, this.wrap, r, a, c), new Ma(r, this.wrap, r, a + 1, c), new Ma(r, this.wrap, r, a, c + 1), new Ma(r, this.wrap, r, a + 1, c + 1)] - } - isLessThan(t) { - return this.wrap < t.wrap || !(this.wrap > t.wrap) && (this.overscaledZ < t.overscaledZ || !(this.overscaledZ > t.overscaledZ) && (this.canonical.x < t.canonical.x || !(this.canonical.x > t.canonical.x) && this.canonical.y < t.canonical.y)) - } - wrapped() { - return new Ma(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y) - } - unwrapTo(t) { - return new Ma(this.overscaledZ, t, this.canonical.z, this.canonical.x, this.canonical.y) - } - overscaleFactor() { - return Math.pow(2, this.overscaledZ - this.canonical.z) - } - toUnwrapped() { - return new E_(this.wrap, this.canonical) - } - toString() { - return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}` - } - getTilePoint(t) { - return this.canonical.getTilePoint(new fu(t.x - this.wrap, t.y)) - } - } - - function jl(i, t, r, a, c) { - (i *= 2) < 0 && (i = -1 * i - 1); - const p = 1 << r; - return (p * p * i + p * c + a).toString(36) + r.toString(36) + t.toString(36) - } - - function mu(i, t) { - return t ? i.properties[t] : i.id - } - Kt("CanonicalTileID", Xp), Kt("OverscaledTileID", Ma, { - omit: ["terrainRttPosMatrix32f"] - }); - class Oo { - constructor() { - this.minX = 1 / 0, this.maxX = -1 / 0, this.minY = 1 / 0, this.maxY = -1 / 0 - } - extend(t) { - return this.minX = Math.min(this.minX, t.x), this.minY = Math.min(this.minY, t.y), this.maxX = Math.max(this.maxX, t.x), this.maxY = Math.max(this.maxY, t.y), this - } - expandBy(t) { - return this.minX -= t, this.minY -= t, this.maxX += t, this.maxY += t, (this.minX > this.maxX || this.minY > this.maxY) && (this.minX = 1 / 0, this.maxX = -1 / 0, this.minY = 1 / 0, this.maxY = -1 / 0), this - } - shrinkBy(t) { - return this.expandBy(-t) - } - map(t) { - const r = new Oo; - return r.extend(t(new $(this.minX, this.minY))), r.extend(t(new $(this.maxX, this.minY))), r.extend(t(new $(this.minX, this.maxY))), r.extend(t(new $(this.maxX, this.maxY))), r - } - static fromPoints(t) { - const r = new Oo; - for (const a of t) r.extend(a); - return r - } - contains(t) { - return t.x >= this.minX && t.x <= this.maxX && t.y >= this.minY && t.y <= this.maxY - } - empty() { - return this.minX > this.maxX - } - width() { - return this.maxX - this.minX - } - height() { - return this.maxY - this.minY - } - covers(t) { - return !this.empty() && !t.empty() && t.minX >= this.minX && t.maxX <= this.maxX && t.minY >= this.minY && t.maxY <= this.maxY - } - intersects(t) { - return !this.empty() && !t.empty() && t.minX <= this.maxX && t.maxX >= this.minX && t.minY <= this.maxY && t.maxY >= this.minY - } - } - class z_ { - constructor(t) { - this._stringToNumber = {}, this._numberToString = []; - for (let r = 0; r < t.length; r++) { - const a = t[r]; - this._stringToNumber[a] = r, this._numberToString[r] = a - } - } - encode(t) { - return this._stringToNumber[t] - } - decode(t) { - if (t >= this._numberToString.length) throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`); - return this._numberToString[t] - } - } - class L_ { - constructor(t, r, a, c, p) { - this.type = "Feature", this._vectorTileFeature = t, t._z = r, t._x = a, t._y = c, this.properties = t.properties, this.id = p - } - 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(t) { - this._geometry = t - } - toJSON() { - const t = { - geometry: this.geometry - }; - for (const r in this) r !== "_geometry" && r !== "_vectorTileFeature" && (t[r] = this[r]); - return t - } - } - class D_ { - constructor(t, r) { - this.tileID = t, this.x = t.canonical.x, this.y = t.canonical.y, this.z = t.canonical.z, this.grid = new zo(ne, 16, 0), this.grid3D = new zo(ne, 16, 0), this.featureIndexArray = new Te, this.promoteId = r - } - insert(t, r, a, c, p, f) { - const g = this.featureIndexArray.length; - this.featureIndexArray.emplaceBack(a, c, p); - const v = f ? this.grid3D : this.grid; - for (let S = 0; S < r.length; S++) { - const I = r[S], - E = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; - for (let R = 0; R < I.length; R++) { - const N = I[R]; - E[0] = Math.min(E[0], N.x), E[1] = Math.min(E[1], N.y), E[2] = Math.max(E[2], N.x), E[3] = Math.max(E[3], N.y) - } - E[0] < ne && E[1] < ne && E[2] >= 0 && E[3] >= 0 && v.insert(g, E[0], E[1], E[2], E[3]) - } - } - loadVTLayers() { - return this.vtLayers || (this.vtLayers = new Km(new Op(this.rawTileData)).layers, this.sourceLayerCoder = new z_(this.vtLayers ? Object.keys(this.vtLayers).sort() : ["_geojsonTileLayer"])), this.vtLayers - } - query(t, r, a, c) { - this.loadVTLayers(); - const p = t.params, - f = ne / t.tileSize / t.scale, - g = bs(p.filter), - v = t.queryGeometry, - S = t.queryPadding * f, - I = Oo.fromPoints(v), - E = this.grid.query(I.minX - S, I.minY - S, I.maxX + S, I.maxY + S), - R = Oo.fromPoints(t.cameraQueryGeometry).expandBy(S), - N = this.grid3D.query(R.minX, R.minY, R.maxX, R.maxY, ((Y, ae, ze, me) => (function(be, Ve, rt, St, $t) { - for (const Ut of be) - if (Ve <= Ut.x && rt <= Ut.y && St >= Ut.x && $t >= Ut.y) return !0; - const Bt = [new $(Ve, rt), new $(Ve, $t), new $(St, $t), new $(St, rt)]; - if (be.length > 2) { - for (const Ut of Bt) - if (zl(be, Ut)) return !0 - } - for (let Ut = 0; Ut < be.length - 1; Ut++) - if (jv(be[Ut], be[Ut + 1], Bt)) return !0; - return !1 - })(t.cameraQueryGeometry, Y - S, ae - S, ze + S, me + S))); - for (const Y of N) E.push(Y); - E.sort(cy); - const j = {}; - let Z; - for (let Y = 0; Y < E.length; Y++) { - const ae = E[Y]; - if (ae === Z) continue; - Z = ae; - const ze = this.featureIndexArray.get(ae); - let me = null; - this.loadMatchingFeature(j, ze.bucketIndex, ze.sourceLayerIndex, ze.featureIndex, g, p.layers, p.availableImages, r, a, c, ((be, Ve, rt) => (me || (me = cs(be)), Ve.queryIntersectsFeature({ - queryGeometry: v, - feature: be, - featureState: rt, - geometry: me, - zoom: this.z, - transform: t.transform, - pixelsToTileUnits: f, - pixelPosMatrix: t.pixelPosMatrix, - unwrappedTileID: this.tileID.toUnwrapped(), - getElevation: t.getElevation - })))) - } - return j - } - loadMatchingFeature(t, r, a, c, p, f, g, v, S, I, E) { - const R = this.bucketLayerIDs[r]; - if (f && !R.some((Y => f.has(Y)))) return; - const N = this.sourceLayerCoder.decode(a), - j = this.vtLayers[N].feature(c); - if (p.needGeometry) { - const Y = Wa(j, !0); - if (!p.filter(new Oi(this.tileID.overscaledZ), Y, this.tileID.canonical)) return - } else if (!p.filter(new Oi(this.tileID.overscaledZ), j)) return; - const Z = this.getId(j, N); - for (let Y = 0; Y < R.length; Y++) { - const ae = R[Y]; - if (f && !f.has(ae)) continue; - const ze = v[ae]; - if (!ze) continue; - let me = {}; - Z && I && (me = I.getState(ze.sourceLayer || "_geojsonTileLayer", Z)); - const be = pt({}, S[ae]); - be.paint = R_(be.paint, ze.paint, j, me, g), be.layout = R_(be.layout, ze.layout, j, me, g); - const Ve = !E || E(j, ze, me); - if (!Ve) continue; - const rt = new L_(j, this.z, this.x, this.y, Z); - rt.layer = be; - let St = t[ae]; - St === void 0 && (St = t[ae] = []), St.push({ - featureIndex: c, - feature: rt, - intersectionZ: Ve - }) - } - } - lookupSymbolFeatures(t, r, a, c, p, f, g, v) { - const S = {}; - this.loadVTLayers(); - const I = bs(p); - for (const E of t) this.loadMatchingFeature(S, a, c, E, I, f, g, v, r); - return S - } - hasLayer(t) { - for (const r of this.bucketLayerIDs) - for (const a of r) - if (t === a) return !0; - return !1 - } - getId(t, r) { - var a; - let c = t.id; - return this.promoteId && (c = t.properties[typeof this.promoteId == "string" ? this.promoteId : this.promoteId[r]], typeof c == "boolean" && (c = Number(c)), c === void 0 && (!((a = t.properties) === null || a === void 0) && a.cluster) && this.promoteId && (c = Number(t.properties.cluster_id))), c - } - } - - function R_(i, t, r, a, c) { - return ut(i, ((p, f) => { - const g = t instanceof Cl ? t.get(f) : null; - return g && g.evaluate ? g.evaluate(r, a, c) : g - })) - } - - function cy(i, t) { - return t - i - } - - function B_(i, t, r, a, c) { - const p = []; - for (let f = 0; f < i.length; f++) { - const g = i[f]; - let v; - for (let S = 0; S < g.length - 1; S++) { - let I = g[S], - E = g[S + 1]; - I.x < t && E.x < t || (I.x < t ? I = new $(t, I.y + (t - I.x) / (E.x - I.x) * (E.y - I.y))._round() : E.x < t && (E = new $(t, I.y + (t - I.x) / (E.x - I.x) * (E.y - I.y))._round()), I.y < r && E.y < r || (I.y < r ? I = new $(I.x + (r - I.y) / (E.y - I.y) * (E.x - I.x), r)._round() : E.y < r && (E = new $(I.x + (r - I.y) / (E.y - I.y) * (E.x - I.x), r)._round()), I.x >= a && E.x >= a || (I.x >= a ? I = new $(a, I.y + (a - I.x) / (E.x - I.x) * (E.y - I.y))._round() : E.x >= a && (E = new $(a, I.y + (a - I.x) / (E.x - I.x) * (E.y - I.y))._round()), I.y >= c && E.y >= c || (I.y >= c ? I = new $(I.x + (c - I.y) / (E.y - I.y) * (E.x - I.x), c)._round() : E.y >= c && (E = new $(I.x + (c - I.y) / (E.y - I.y) * (E.x - I.x), c)._round()), v && I.equals(v[v.length - 1]) || (v = [I], p.push(v)), v.push(E))))) - } - } - return p - } - Kt("FeatureIndex", D_, { - omit: ["rawTileData", "sourceLayerCoder"] - }); - class io extends $ { - constructor(t, r, a, c) { - super(t, r), this.angle = a, c !== void 0 && (this.segment = c) - } - clone() { - return new io(this.x, this.y, this.angle, this.segment) - } - } - - function F_(i, t, r, a, c) { - if (t.segment === void 0 || r === 0) return !0; - let p = t, - f = t.segment + 1, - g = 0; - for (; g > -r / 2;) { - if (f--, f < 0) return !1; - g -= i[f].dist(p), p = i[f] - } - g += i[f].dist(i[f + 1]), f++; - const v = []; - let S = 0; - for (; g < r / 2;) { - const I = i[f], - E = i[f + 1]; - if (!E) return !1; - let R = i[f - 1].angleTo(I) - I.angleTo(E); - for (R = Math.abs((R + 3 * Math.PI) % (2 * Math.PI) - Math.PI), v.push({ - distance: g, - angleDelta: R - }), S += R; g - v[0].distance > a;) S -= v.shift().angleDelta; - if (S > c) return !1; - f++, g += I.dist(E) - } - return !0 - } - - function O_(i) { - let t = 0; - for (let r = 0; r < i.length - 1; r++) t += i[r].dist(i[r + 1]); - return t - } - - function N_(i, t, r) { - return i ? .6 * t * r : 0 - } - - function j_(i, t) { - return Math.max(i ? i.right - i.left : 0, t ? t.right - t.left : 0) - } - - function uy(i, t, r, a, c, p) { - const f = N_(r, c, p), - g = j_(r, a) * p; - let v = 0; - const S = O_(i) / 2; - for (let I = 0; I < i.length - 1; I++) { - const E = i[I], - R = i[I + 1], - N = E.dist(R); - if (v + N > S) { - const j = (S - v) / N, - Z = Fa.number(E.x, R.x, j), - Y = Fa.number(E.y, R.y, j), - ae = new io(Z, Y, R.angleTo(E), I); - return ae._round(), !f || F_(i, ae, g, f, t) ? ae : void 0 - } - v += N - } - } - - function hy(i, t, r, a, c, p, f, g, v) { - const S = N_(a, p, f), - I = j_(a, c), - E = I * f, - R = i[0].x === 0 || i[0].x === v || i[0].y === 0 || i[0].y === v; - return t - E < t / 4 && (t = E + t / 4), q_(i, R ? t / 2 * g % t : (I / 2 + 2 * p) * f * g % t, t, S, r, E, R, !1, v) - } - - function q_(i, t, r, a, c, p, f, g, v) { - const S = p / 2, - I = O_(i); - let E = 0, - R = t - r, - N = []; - for (let j = 0; j < i.length - 1; j++) { - const Z = i[j], - Y = i[j + 1], - ae = Z.dist(Y), - ze = Y.angleTo(Z); - for (; R + r < E + ae;) { - R += r; - const me = (R - E) / ae, - be = Fa.number(Z.x, Y.x, me), - Ve = Fa.number(Z.y, Y.y, me); - if (be >= 0 && be < v && Ve >= 0 && Ve < v && R - S >= 0 && R + S <= I) { - const rt = new io(be, Ve, ze, j); - rt._round(), a && !F_(i, rt, p, a, c) || N.push(rt) - } - } - E += ae - } - return g || N.length || f || (N = q_(i, E / 2, r, a, c, p, f, !0, v)), N - } - - function V_(i, t, r, a) { - const c = [], - p = i.image, - f = p.pixelRatio, - g = p.paddedRect.w - 2, - v = p.paddedRect.h - 2; - let S = { - x1: i.left, - y1: i.top, - x2: i.right, - y2: i.bottom - }; - const I = p.stretchX || [ - [0, g] - ], - E = p.stretchY || [ - [0, v] - ], - R = (mt, Br) => mt + Br[1] - Br[0], - N = I.reduce(R, 0), - j = E.reduce(R, 0), - Z = g - N, - Y = v - j; - let ae = 0, - ze = N, - me = 0, - be = j, - Ve = 0, - rt = Z, - St = 0, - $t = Y; - if (p.content && a) { - const mt = p.content, - Br = mt[2] - mt[0], - Ur = mt[3] - mt[1]; - (p.textFitWidth || p.textFitHeight) && (S = __(i)), ae = md(I, 0, mt[0]), me = md(E, 0, mt[1]), ze = md(I, mt[0], mt[2]), be = md(E, mt[1], mt[3]), Ve = mt[0] - ae, St = mt[1] - me, rt = Br - ze, $t = Ur - be - } - const Bt = S.x1, - Ut = S.y1, - pr = S.x2 - Bt, - Vt = S.y2 - Ut, - Zt = (mt, Br, Ur, xr) => { - const or = _d(mt.stretch - ae, ze, pr, Bt), - oi = gd(mt.fixed - Ve, rt, mt.stretch, N), - Zi = _d(Br.stretch - me, be, Vt, Ut), - fn = gd(Br.fixed - St, $t, Br.stretch, j), - Bn = _d(Ur.stretch - ae, ze, pr, Bt), - Aa = gd(Ur.fixed - Ve, rt, Ur.stretch, N), - aa = _d(xr.stretch - me, be, Vt, Ut), - Mn = gd(xr.fixed - St, $t, xr.stretch, j), - qi = new $(or, Zi), - wn = new $(Bn, Zi), - An = new $(Bn, aa), - kn = new $(or, aa), - Yn = new $(oi / f, fn / f), - ka = new $(Aa / f, Mn / f), - Tn = t * Math.PI / 180; - if (Tn) { - const Cn = Math.sin(Tn), - Sn = Math.cos(Tn), - rn = [Sn, -Cn, Cn, Sn]; - qi._matMult(rn), wn._matMult(rn), kn._matMult(rn), An._matMult(rn) - } - const sa = mt.stretch + mt.fixed, - mn = Br.stretch + Br.fixed; - return { - tl: qi, - tr: wn, - bl: kn, - br: An, - tex: { - x: p.paddedRect.x + 1 + sa, - y: p.paddedRect.y + 1 + mn, - w: Ur.stretch + Ur.fixed - sa, - h: xr.stretch + xr.fixed - mn - }, - writingMode: void 0, - glyphOffset: [0, 0], - sectionIndex: 0, - pixelOffsetTL: Yn, - pixelOffsetBR: ka, - minFontScaleX: rt / f / pr, - minFontScaleY: $t / f / Vt, - isSDF: r - } - }; - if (a && (p.stretchX || p.stretchY)) { - const mt = U_(I, Z, N), - Br = U_(E, Y, j); - for (let Ur = 0; Ur < mt.length - 1; Ur++) { - const xr = mt[Ur], - or = mt[Ur + 1]; - for (let oi = 0; oi < Br.length - 1; oi++) c.push(Zt(xr, Br[oi], or, Br[oi + 1])) - } - } else c.push(Zt({ - fixed: 0, - stretch: -1 - }, { - fixed: 0, - stretch: -1 - }, { - fixed: 0, - stretch: g + 1 - }, { - fixed: 0, - stretch: v + 1 - })); - return c - } - - function md(i, t, r) { - let a = 0; - for (const c of i) a += Math.max(t, Math.min(r, c[1])) - Math.max(t, Math.min(r, c[0])); - return a - } - - function U_(i, t, r) { - const a = [{ - fixed: -1, - stretch: 0 - }]; - for (const [c, p] of i) { - const f = a[a.length - 1]; - a.push({ - fixed: c - f.stretch, - stretch: f.stretch - }), a.push({ - fixed: c - f.stretch, - stretch: f.stretch + (p - c) - }) - } - return a.push({ - fixed: t + 1, - stretch: r - }), a - } - - function _d(i, t, r, a) { - return i / t * r + a - } - - function gd(i, t, r, a) { - return i - t * r / a - } - Kt("Anchor", io); - class vd { - constructor(t, r, a, c, p, f, g, v, S, I) { - var E; - if (this.boxStartIndex = t.length, S) { - let R = f.top, - N = f.bottom; - const j = f.collisionPadding; - j && (R -= j[1], N += j[3]); - let Z = N - R; - Z > 0 && (Z = Math.max(10, Z), this.circleDiameter = Z) - } else { - const R = !((E = f.image) === null || E === void 0) && E.content && (f.image.textFitWidth || f.image.textFitHeight) ? __(f) : { - x1: f.left, - y1: f.top, - x2: f.right, - y2: f.bottom - }; - R.y1 = R.y1 * g - v[0], R.y2 = R.y2 * g + v[2], R.x1 = R.x1 * g - v[3], R.x2 = R.x2 * g + v[1]; - const N = f.collisionPadding; - if (N && (R.x1 -= N[0] * g, R.y1 -= N[1] * g, R.x2 += N[2] * g, R.y2 += N[3] * g), I) { - const j = new $(R.x1, R.y1), - Z = new $(R.x2, R.y1), - Y = new $(R.x1, R.y2), - ae = new $(R.x2, R.y2), - ze = I * Math.PI / 180; - j._rotate(ze), Z._rotate(ze), Y._rotate(ze), ae._rotate(ze), R.x1 = Math.min(j.x, Z.x, Y.x, ae.x), R.x2 = Math.max(j.x, Z.x, Y.x, ae.x), R.y1 = Math.min(j.y, Z.y, Y.y, ae.y), R.y2 = Math.max(j.y, Z.y, Y.y, ae.y) - } - t.emplaceBack(r.x, r.y, R.x1, R.y1, R.x2, R.y2, a, c, p) - } - this.boxEndIndex = t.length - } - } - class dy { - constructor(t = [], r = (a, c) => a < c ? -1 : a > c ? 1 : 0) { - if (this.data = t, this.length = this.data.length, this.compare = r, this.length > 0) - for (let a = (this.length >> 1) - 1; a >= 0; a--) this._down(a) - } - push(t) { - this.data.push(t), this._up(this.length++) - } - pop() { - if (this.length === 0) return; - const t = this.data[0], - r = this.data.pop(); - return --this.length > 0 && (this.data[0] = r, this._down(0)), t - } - peek() { - return this.data[0] - } - _up(t) { - const { - data: r, - compare: a - } = this, c = r[t]; - for (; t > 0;) { - const p = t - 1 >> 1, - f = r[p]; - if (a(c, f) >= 0) break; - r[t] = f, t = p - } - r[t] = c - } - _down(t) { - const { - data: r, - compare: a - } = this, c = this.length >> 1, p = r[t]; - for (; t < c;) { - let f = 1 + (t << 1); - const g = f + 1; - if (g < this.length && a(r[g], r[f]) < 0 && (f = g), a(r[f], p) >= 0) break; - r[t] = r[f], t = f - } - r[t] = p - } - } - - function py(i, t = 1, r = !1) { - const a = Oo.fromPoints(i[0]), - c = Math.min(a.width(), a.height()); - let p = c / 2; - const f = new dy([], fy), - { - minX: g, - minY: v, - maxX: S, - maxY: I - } = a; - if (c === 0) return new $(g, v); - for (let N = g; N < S; N += c) - for (let j = v; j < I; j += c) f.push(new ql(N + p, j + p, p, i)); - let E = (function(N) { - let j = 0, - Z = 0, - Y = 0; - const ae = N[0]; - for (let ze = 0, me = ae.length, be = me - 1; ze < me; be = ze++) { - const Ve = ae[ze], - rt = ae[be], - St = Ve.x * rt.y - rt.x * Ve.y; - Z += (Ve.x + rt.x) * St, Y += (Ve.y + rt.y) * St, j += 3 * St - } - return new ql(Z / j, Y / j, 0, N) - })(i), - R = f.length; - for (; f.length;) { - const N = f.pop(); - (N.d > E.d || !E.d) && (E = N, r && console.log("found best %d after %d probes", Math.round(1e4 * N.d) / 1e4, R)), N.max - E.d <= t || (p = N.h / 2, f.push(new ql(N.p.x - p, N.p.y - p, p, i)), f.push(new ql(N.p.x + p, N.p.y - p, p, i)), f.push(new ql(N.p.x - p, N.p.y + p, p, i)), f.push(new ql(N.p.x + p, N.p.y + p, p, i)), R += 4) - } - return r && (console.log(`num probes: ${R}`), console.log(`best distance: ${E.d}`)), E.p - } - - function fy(i, t) { - return t.max - i.max - } - - function ql(i, t, r, a) { - this.p = new $(i, t), this.h = r, this.d = (function(c, p) { - let f = !1, - g = 1 / 0; - for (let v = 0; v < p.length; v++) { - const S = p[v]; - for (let I = 0, E = S.length, R = E - 1; I < E; R = I++) { - const N = S[I], - j = S[R]; - N.y > c.y != j.y > c.y && c.x < (j.x - N.x) * (c.y - N.y) / (j.y - N.y) + N.x && (f = !f), g = Math.min(g, Im(c, N, j)) - } - } - return (f ? 1 : -1) * Math.sqrt(g) - })(this.p, a), this.max = this.d + this.h * Math.SQRT2 - } - var Rn; - T.aE = void 0, (Rn = T.aE || (T.aE = {}))[Rn.center = 1] = "center", Rn[Rn.left = 2] = "left", Rn[Rn.right = 3] = "right", Rn[Rn.top = 4] = "top", Rn[Rn.bottom = 5] = "bottom", Rn[Rn["top-left"] = 6] = "top-left", Rn[Rn["top-right"] = 7] = "top-right", Rn[Rn["bottom-left"] = 8] = "bottom-left", Rn[Rn["bottom-right"] = 9] = "bottom-right"; - const Kp = Number.POSITIVE_INFINITY; - - function Z_(i, t) { - return t[1] !== Kp ? (function(r, a, c) { - let p = 0, - f = 0; - switch (a = Math.abs(a), c = Math.abs(c), r) { - case "top-right": - case "top-left": - case "top": - f = c - 7; - break; - case "bottom-right": - case "bottom-left": - case "bottom": - f = 7 - c - } - switch (r) { - case "top-right": - case "bottom-right": - case "right": - p = -a; - break; - case "top-left": - case "bottom-left": - case "left": - p = a - } - return [p, f] - })(i, t[0], t[1]) : (function(r, a) { - let c = 0, - p = 0; - a < 0 && (a = 0); - const f = a / Math.SQRT2; - switch (r) { - case "top-right": - case "top-left": - p = f - 7; - break; - case "bottom-right": - case "bottom-left": - p = 7 - f; - break; - case "bottom": - p = 7 - a; - break; - case "top": - p = a - 7 - } - switch (r) { - case "top-right": - case "bottom-right": - c = -f; - break; - case "top-left": - case "bottom-left": - c = f; - break; - case "left": - c = a; - break; - case "right": - c = -a - } - return [c, p] - })(i, t[0]) - } - - function $_(i, t, r) { - var a; - const c = i.layout, - p = (a = c.get("text-variable-anchor-offset")) === null || a === void 0 ? void 0 : a.evaluate(t, {}, r); - if (p) { - const g = p.values, - v = []; - for (let S = 0; S < g.length; S += 2) { - const I = v[S] = g[S], - E = g[S + 1].map((R => R * bn)); - I.startsWith("top") ? E[1] -= 7 : I.startsWith("bottom") && (E[1] += 7), v[S + 1] = E - } - return new un(v) - } - const f = c.get("text-variable-anchor"); - if (f) { - let g; - g = i._unevaluatedLayout.getValue("text-radial-offset") !== void 0 ? [c.get("text-radial-offset").evaluate(t, {}, r) * bn, Kp] : c.get("text-offset").evaluate(t, {}, r).map((S => S * bn)); - const v = []; - for (const S of f) v.push(S, Z_(S, g)); - return new un(v) - } - return null - } - - function Yp(i) { - switch (i) { - case "right": - case "top-right": - case "bottom-right": - return "right"; - case "left": - case "top-left": - case "bottom-left": - return "left" - } - return "center" - } - - function my(i, t, r, a, c, p, f, g, v, S, I, E) { - let R = p.textMaxSize.evaluate(t, {}); - R === void 0 && (R = f); - const N = i.layers[0].layout, - j = N.get("icon-offset").evaluate(t, {}, I), - Z = H_(r.horizontal), - Y = f / 24, - ae = i.tilePixelRatio * Y, - ze = i.tilePixelRatio * R / 24, - me = i.tilePixelRatio * g, - be = i.tilePixelRatio * N.get("symbol-spacing"), - Ve = N.get("text-padding") * i.tilePixelRatio, - rt = (function(Ur, xr, or, oi = 1) { - const Zi = Ur.get("icon-padding").evaluate(xr, {}, or), - fn = Zi && Zi.values; - return [fn[0] * oi, fn[1] * oi, fn[2] * oi, fn[3] * oi] - })(N, t, I, i.tilePixelRatio), - St = N.get("text-max-angle") / 180 * Math.PI, - $t = N.get("text-rotation-alignment") !== "viewport" && N.get("symbol-placement") !== "point", - Bt = N.get("icon-rotation-alignment") === "map" && N.get("symbol-placement") !== "point", - Ut = N.get("symbol-placement"), - pr = be / 2, - Vt = N.get("icon-text-fit"); - let Zt; - a && Vt !== "none" && (i.allowVerticalPlacement && r.vertical && (Zt = g_(a, r.vertical, Vt, N.get("icon-text-fit-padding"), j, Y)), Z && (a = g_(a, Z, Vt, N.get("icon-text-fit-padding"), j, Y))); - const mt = I ? E.line.getGranularityForZoomLevel(I.z) : 1, - Br = (Ur, xr) => { - xr.x < 0 || xr.x >= ne || xr.y < 0 || xr.y >= ne || (function(or, oi, Zi, fn, Bn, Aa, aa, Mn, qi, wn, An, kn, Yn, ka, Tn, sa, mn, Cn, Sn, rn, Bi, Xa, Vl, Ka, vy) { - const Ul = or.addToLineVertexArray(oi, Zi); - let No, Zl, $l, Gl, Y_ = 0, - J_ = 0, - Q_ = 0, - eg = 0, - sf = -1, - of = -1; - const ks = {}; - let tg = Js(""); - if (or.allowVerticalPlacement && fn.vertical) { - const Un = Mn.layout.get("text-rotate").evaluate(Bi, {}, Ka) + 90; - $l = new vd(qi, oi, wn, An, kn, fn.vertical, Yn, ka, Tn, Un), aa && (Gl = new vd(qi, oi, wn, An, kn, aa, mn, Cn, Tn, Un)) - } - if (Bn) { - const Un = Mn.layout.get("icon-rotate").evaluate(Bi, {}), - Ea = Mn.layout.get("icon-text-fit") !== "none", - jo = V_(Bn, Un, Vl, Ea), - Ja = aa ? V_(aa, Un, Vl, Ea) : void 0; - Zl = new vd(qi, oi, wn, An, kn, Bn, mn, Cn, !1, Un), Y_ = 4 * jo.length; - const qo = or.iconSizeData; - let us = null; - qo.kind === "source" ? (us = [As * Mn.layout.get("icon-size").evaluate(Bi, {})], us[0] > to && Lt(`${or.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)) : qo.kind === "composite" && (us = [As * Xa.compositeIconSizes[0].evaluate(Bi, {}, Ka), As * Xa.compositeIconSizes[1].evaluate(Bi, {}, Ka)], (us[0] > to || us[1] > to) && Lt(`${or.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)), or.addSymbols(or.icon, jo, us, rn, Sn, Bi, T.ao.none, oi, Ul.lineStartIndex, Ul.lineLength, -1, Ka), sf = or.icon.placedSymbolArray.length - 1, Ja && (J_ = 4 * Ja.length, or.addSymbols(or.icon, Ja, us, rn, Sn, Bi, T.ao.vertical, oi, Ul.lineStartIndex, Ul.lineLength, -1, Ka), of = or.icon.placedSymbolArray.length - 1) - } - const rg = Object.keys(fn.horizontal); - for (const Un of rg) { - const Ea = fn.horizontal[Un]; - if (!No) { - tg = Js(Ea.text); - const Ja = Mn.layout.get("text-rotate").evaluate(Bi, {}, Ka); - No = new vd(qi, oi, wn, An, kn, Ea, Yn, ka, Tn, Ja) - } - const jo = Ea.positionedLines.length === 1; - if (Q_ += G_(or, oi, Ea, Aa, Mn, Tn, Bi, sa, Ul, fn.vertical ? T.ao.horizontal : T.ao.horizontalOnly, jo ? rg : [Un], ks, sf, Xa, Ka), jo) break - } - fn.vertical && (eg += G_(or, oi, fn.vertical, Aa, Mn, Tn, Bi, sa, Ul, T.ao.vertical, ["vertical"], ks, of, Xa, Ka)); - const yy = No ? No.boxStartIndex : or.collisionBoxArray.length, - xy = No ? No.boxEndIndex : or.collisionBoxArray.length, - by = $l ? $l.boxStartIndex : or.collisionBoxArray.length, - wy = $l ? $l.boxEndIndex : or.collisionBoxArray.length, - Ty = Zl ? Zl.boxStartIndex : or.collisionBoxArray.length, - Cy = Zl ? Zl.boxEndIndex : or.collisionBoxArray.length, - Sy = Gl ? Gl.boxStartIndex : or.collisionBoxArray.length, - Py = Gl ? Gl.boxEndIndex : or.collisionBoxArray.length; - let Ya = -1; - const xd = (Un, Ea) => Un && Un.circleDiameter ? Math.max(Un.circleDiameter, Ea) : Ea; - Ya = xd(No, Ya), Ya = xd($l, Ya), Ya = xd(Zl, Ya), Ya = xd(Gl, Ya); - const ig = Ya > -1 ? 1 : 0; - ig && (Ya *= vy / bn), or.glyphOffsetArray.length >= Nl.MAX_GLYPHS && Lt("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"), Bi.sortKey !== void 0 && or.addToSortKeyRanges(or.symbolInstances.length, Bi.sortKey); - const Iy = $_(Mn, Bi, Ka), - [My, Ay] = (function(Un, Ea) { - const jo = Un.length, - Ja = Ea == null ? void 0 : Ea.values; - if ((Ja == null ? void 0 : Ja.length) > 0) - for (let qo = 0; qo < Ja.length; qo += 2) { - const us = Ja[qo + 1]; - Un.emplaceBack(T.aE[Ja[qo]], us[0], us[1]) - } - return [jo, Un.length] - })(or.textAnchorOffsets, Iy); - or.symbolInstances.emplaceBack(oi.x, oi.y, ks.right >= 0 ? ks.right : -1, ks.center >= 0 ? ks.center : -1, ks.left >= 0 ? ks.left : -1, ks.vertical || -1, sf, of, tg, yy, xy, by, wy, Ty, Cy, Sy, Py, wn, Q_, eg, Y_, J_, ig, 0, Yn, Ya, My, Ay) - })(i, xr, Ur, r, a, c, Zt, i.layers[0], i.collisionBoxArray, t.index, t.sourceLayerIndex, i.index, ae, [Ve, Ve, Ve, Ve], $t, v, me, rt, Bt, j, t, p, S, I, f) - }; - if (Ut === "line") - for (const Ur of B_(t.geometry, 0, 0, ne, ne)) { - const xr = Fo(Ur, mt), - or = hy(xr, be, St, r.vertical || Z, a, 24, ze, i.overscaling, ne); - for (const oi of or) Z && _y(i, Z.text, pr, oi) || Br(xr, oi) - } else if (Ut === "line-center") { - for (const Ur of t.geometry) - if (Ur.length > 1) { - const xr = Fo(Ur, mt), - or = uy(xr, St, r.vertical || Z, a, 24, ze); - or && Br(xr, or) - } - } else if (t.type === "Polygon") - for (const Ur of xo(t.geometry, 0)) { - const xr = py(Ur, 16); - Br(Fo(Ur[0], mt, !0), new io(xr.x, xr.y, 0)) - } else if (t.type === "LineString") - for (const Ur of t.geometry) { - const xr = Fo(Ur, mt); - Br(xr, new io(xr[0].x, xr[0].y, 0)) - } else if (t.type === "Point") - for (const Ur of t.geometry) - for (const xr of Ur) Br([xr], new io(xr.x, xr.y, 0)) - } - - function G_(i, t, r, a, c, p, f, g, v, S, I, E, R, N, j) { - const Z = (function(ze, me, be, Ve, rt, St, $t, Bt) { - const Ut = Ve.layout.get("text-rotate").evaluate(St, {}) * Math.PI / 180, - pr = []; - for (const Vt of me.positionedLines) - for (const Zt of Vt.positionedGlyphs) { - if (!Zt.rect) continue; - const mt = Zt.rect || {}; - let Br = 4, - Ur = !0, - xr = 1, - or = 0; - const oi = (rt || Bt) && Zt.vertical, - Zi = Zt.metrics.advance * Zt.scale / 2; - if (Bt && me.verticalizable && (or = Vt.lineOffset / 2 - (Zt.imageName ? -(bn - Zt.metrics.width * Zt.scale) / 2 : (Zt.scale - 1) * bn)), Zt.imageName) { - const Cn = $t[Zt.imageName]; - Ur = Cn.sdf, xr = Cn.pixelRatio, Br = 1 / xr - } - const fn = rt ? [Zt.x + Zi, Zt.y] : [0, 0]; - let Bn = rt ? [0, 0] : [Zt.x + Zi + be[0], Zt.y + be[1] - or], - Aa = [0, 0]; - oi && (Aa = Bn, Bn = [0, 0]); - const aa = Zt.metrics.isDoubleResolution ? 2 : 1, - Mn = (Zt.metrics.left - Br) * Zt.scale - Zi + Bn[0], - qi = (-Zt.metrics.top - Br) * Zt.scale + Bn[1], - wn = Mn + mt.w / aa * Zt.scale / xr, - An = qi + mt.h / aa * Zt.scale / xr, - kn = new $(Mn, qi), - Yn = new $(wn, qi), - ka = new $(Mn, An), - Tn = new $(wn, An); - if (oi) { - const Cn = new $(-Zi, Zi - -17), - Sn = -Math.PI / 2, - rn = 12 - Zi, - Bi = new $(22 - rn, -(Zt.imageName ? rn : 0)), - Xa = new $(...Aa); - kn._rotateAround(Sn, Cn)._add(Bi)._add(Xa), Yn._rotateAround(Sn, Cn)._add(Bi)._add(Xa), ka._rotateAround(Sn, Cn)._add(Bi)._add(Xa), Tn._rotateAround(Sn, Cn)._add(Bi)._add(Xa) - } - if (Ut) { - const Cn = Math.sin(Ut), - Sn = Math.cos(Ut), - rn = [Sn, -Cn, Cn, Sn]; - kn._matMult(rn), Yn._matMult(rn), ka._matMult(rn), Tn._matMult(rn) - } - const sa = new $(0, 0), - mn = new $(0, 0); - pr.push({ - tl: kn, - tr: Yn, - bl: ka, - br: Tn, - tex: mt, - writingMode: me.writingMode, - glyphOffset: fn, - sectionIndex: Zt.sectionIndex, - isSDF: Ur, - pixelOffsetTL: sa, - pixelOffsetBR: mn, - minFontScaleX: 0, - minFontScaleY: 0 - }) - } - return pr - })(0, r, g, c, p, f, a, i.allowVerticalPlacement), - Y = i.textSizeData; - let ae = null; - Y.kind === "source" ? (ae = [As * c.layout.get("text-size").evaluate(f, {})], ae[0] > to && Lt(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)) : Y.kind === "composite" && (ae = [As * N.compositeTextSizes[0].evaluate(f, {}, j), As * N.compositeTextSizes[1].evaluate(f, {}, j)], (ae[0] > to || ae[1] > to) && Lt(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)), i.addSymbols(i.text, Z, ae, g, p, f, S, t, v.lineStartIndex, v.lineLength, R, j); - for (const ze of I) E[ze] = i.text.placedSymbolArray.length - 1; - return 4 * Z.length - } - - function H_(i) { - for (const t in i) return i[t]; - return null - } - - function _y(i, t, r, a) { - const c = i.compareText; - if (t in c) { - const p = c[t]; - for (let f = p.length - 1; f >= 0; f--) - if (a.dist(p[f]) < r) return !0 - } else c[t] = []; - return c[t].push(a), !1 - } - const W_ = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; - class Jp { - static from(t) { - if (!(t instanceof ArrayBuffer)) throw new Error("Data must be an instance of ArrayBuffer."); - const [r, a] = new Uint8Array(t, 0, 2); - if (r !== 219) throw new Error("Data does not appear to be in a KDBush format."); - const c = a >> 4; - if (c !== 1) throw new Error(`Got v${c} data when expected v1.`); - const p = W_[15 & a]; - if (!p) throw new Error("Unrecognized array type."); - const [f] = new Uint16Array(t, 2, 1), [g] = new Uint32Array(t, 4, 1); - return new Jp(g, f, p, t) - } - constructor(t, r = 64, a = Float64Array, c) { - if (isNaN(t) || t < 0) throw new Error(`Unpexpected numItems value: ${t}.`); - this.numItems = +t, this.nodeSize = Math.min(Math.max(+r, 2), 65535), this.ArrayType = a, this.IndexArrayType = t < 65536 ? Uint16Array : Uint32Array; - const p = W_.indexOf(this.ArrayType), - f = 2 * t * this.ArrayType.BYTES_PER_ELEMENT, - g = t * this.IndexArrayType.BYTES_PER_ELEMENT, - v = (8 - g % 8) % 8; - if (p < 0) throw new Error(`Unexpected typed array class: ${a}.`); - c && c instanceof ArrayBuffer ? (this.data = c, this.ids = new this.IndexArrayType(this.data, 8, t), this.coords = new this.ArrayType(this.data, 8 + g + v, 2 * t), this._pos = 2 * t, this._finished = !0) : (this.data = new ArrayBuffer(8 + f + g + v), this.ids = new this.IndexArrayType(this.data, 8, t), this.coords = new this.ArrayType(this.data, 8 + g + v, 2 * t), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, 16 + p]), new Uint16Array(this.data, 2, 1)[0] = r, new Uint32Array(this.data, 4, 1)[0] = t) - } - add(t, r) { - const a = this._pos >> 1; - return this.ids[a] = a, this.coords[this._pos++] = t, this.coords[this._pos++] = r, a - } - finish() { - const t = this._pos >> 1; - if (t !== this.numItems) throw new Error(`Added ${t} items when expected ${this.numItems}.`); - return Qp(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this - } - range(t, r, a, c) { - if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); - const { - ids: p, - coords: f, - nodeSize: g - } = this, v = [0, p.length - 1, 0], S = []; - for (; v.length;) { - const I = v.pop() || 0, - E = v.pop() || 0, - R = v.pop() || 0; - if (E - R <= g) { - for (let Y = R; Y <= E; Y++) { - const ae = f[2 * Y], - ze = f[2 * Y + 1]; - ae >= t && ae <= a && ze >= r && ze <= c && S.push(p[Y]) - } - continue - } - const N = R + E >> 1, - j = f[2 * N], - Z = f[2 * N + 1]; - j >= t && j <= a && Z >= r && Z <= c && S.push(p[N]), (I === 0 ? t <= j : r <= Z) && (v.push(R), v.push(N - 1), v.push(1 - I)), (I === 0 ? a >= j : c >= Z) && (v.push(N + 1), v.push(E), v.push(1 - I)) - } - return S - } - within(t, r, a) { - if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); - const { - ids: c, - coords: p, - nodeSize: f - } = this, g = [0, c.length - 1, 0], v = [], S = a * a; - for (; g.length;) { - const I = g.pop() || 0, - E = g.pop() || 0, - R = g.pop() || 0; - if (E - R <= f) { - for (let Y = R; Y <= E; Y++) K_(p[2 * Y], p[2 * Y + 1], t, r) <= S && v.push(c[Y]); - continue - } - const N = R + E >> 1, - j = p[2 * N], - Z = p[2 * N + 1]; - K_(j, Z, t, r) <= S && v.push(c[N]), (I === 0 ? t - a <= j : r - a <= Z) && (g.push(R), g.push(N - 1), g.push(1 - I)), (I === 0 ? t + a >= j : r + a >= Z) && (g.push(N + 1), g.push(E), g.push(1 - I)) - } - return v - } - } - - function Qp(i, t, r, a, c, p) { - if (c - a <= r) return; - const f = a + c >> 1; - X_(i, t, f, a, c, p), Qp(i, t, r, a, f - 1, 1 - p), Qp(i, t, r, f + 1, c, 1 - p) - } - - function X_(i, t, r, a, c, p) { - for (; c > a;) { - if (c - a > 600) { - const S = c - a + 1, - I = r - a + 1, - E = Math.log(S), - R = .5 * Math.exp(2 * E / 3), - N = .5 * Math.sqrt(E * R * (S - R) / S) * (I - S / 2 < 0 ? -1 : 1); - X_(i, t, r, Math.max(a, Math.floor(r - I * R / S + N)), Math.min(c, Math.floor(r + (S - I) * R / S + N)), p) - } - const f = t[2 * r + p]; - let g = a, - v = c; - for (_u(i, t, a, r), t[2 * c + p] > f && _u(i, t, a, c); g < v;) { - for (_u(i, t, g, v), g++, v--; t[2 * g + p] < f;) g++; - for (; t[2 * v + p] > f;) v-- - } - t[2 * a + p] === f ? _u(i, t, a, v) : (v++, _u(i, t, v, c)), v <= r && (a = v + 1), r <= v && (c = v - 1) - } - } - - function _u(i, t, r, a) { - ef(i, r, a), ef(t, 2 * r, 2 * a), ef(t, 2 * r + 1, 2 * a + 1) - } - - function ef(i, t, r) { - const a = i[t]; - i[t] = i[r], i[r] = a - } - - function K_(i, t, r, a) { - const c = i - r, - p = t - a; - return c * c + p * p - } - var tf; - T.cx = void 0, (tf = T.cx || (T.cx = {})).create = "create", tf.load = "load", tf.fullLoad = "fullLoad"; - let yd = null, - gu = []; - const rf = 1e3 / 60, - nf = "loadTime", - af = "fullLoadTime", - gy = { - mark(i) { - performance.mark(i) - }, - frame(i) { - const t = i; - yd != null && gu.push(t - yd), yd = t - }, - clearMetrics() { - yd = null, gu = [], performance.clearMeasures(nf), performance.clearMeasures(af); - for (const i in T.cx) performance.clearMarks(T.cx[i]) - }, - getPerformanceMetrics() { - performance.measure(nf, T.cx.create, T.cx.load), performance.measure(af, T.cx.create, T.cx.fullLoad); - const i = performance.getEntriesByName(nf)[0].duration, - t = performance.getEntriesByName(af)[0].duration, - r = gu.length, - a = 1 / (gu.reduce(((p, f) => p + f), 0) / r / 1e3), - c = gu.filter((p => p > rf)).reduce(((p, f) => p + (f - rf) / rf), 0); - return { - loadTime: i, - fullLoadTime: t, - fps: a, - percentDroppedFrames: c / (r + c) * 100, - totalFrames: r - } - } - }; - T.$ = ne, T.A = Ee, T.B = function([i, t, r]) { - return t += 90, t *= Math.PI / 180, r *= Math.PI / 180, { - x: i * Math.cos(t) * Math.sin(r), - y: i * Math.sin(t) * Math.sin(r), - z: i * Math.cos(r) - } - }, T.C = Fa, T.D = hr, T.E = Ot, T.F = Oi, T.G = ko, T.H = function(i) { - if (nr == null) { - const t = i.navigator ? i.navigator.userAgent : null; - nr = !!i.safari || !(!t || !(/\b(iPad|iPhone|iPod)\b/.test(t) || t.match("Safari") && !t.match("Chrome"))) - } - return nr - }, T.I = Np, T.J = class { - constructor(i, t) { - this.target = i, this.mapId = t, this.resolveRejects = {}, this.tasks = {}, this.taskQueue = [], this.abortControllers = {}, this.messageHandlers = {}, this.invoker = new oy((() => this.process())), this.subscription = jr(this.target, "message", (r => this.receive(r)), !1), this.globalScope = Yt(self) ? i : window - } - registerMessageHandler(i, t) { - this.messageHandlers[i] = t - } - sendAsync(i, t) { - return new Promise(((r, a) => { - const c = Math.round(1e18 * Math.random()).toString(36).substring(0, 10), - p = t ? jr(t.signal, "abort", (() => { - p == null || p.unsubscribe(), delete this.resolveRejects[c]; - const v = { - id: c, - type: "", - origin: location.origin, - targetMapId: i.targetMapId, - sourceMapId: this.mapId - }; - this.target.postMessage(v) - }), ly) : null; - this.resolveRejects[c] = { - resolve: v => { - p == null || p.unsubscribe(), r(v) - }, - reject: v => { - p == null || p.unsubscribe(), a(v) - } - }; - const f = [], - g = Object.assign(Object.assign({}, i), { - id: c, - sourceMapId: this.mapId, - origin: location.origin, - data: Gs(i.data, f) - }); - this.target.postMessage(g, { - transfer: f - }) - })) - } - receive(i) { - const t = i.data, - r = t.id; - if (!(t.origin !== "file://" && location.origin !== "file://" && t.origin !== "resource://android" && location.origin !== "resource://android" && t.origin !== location.origin || t.targetMapId && this.mapId !== t.targetMapId)) { - if (t.type === "") { - delete this.tasks[r]; - const a = this.abortControllers[r]; - return delete this.abortControllers[r], void(a && a.abort()) - } - if (Yt(self) || t.mustQueue) return this.tasks[r] = t, this.taskQueue.push(r), void this.invoker.trigger(); - this.processTask(r, t) - } - } - process() { - if (this.taskQueue.length === 0) return; - const i = this.taskQueue.shift(), - t = this.tasks[i]; - delete this.tasks[i], this.taskQueue.length > 0 && this.invoker.trigger(), t && this.processTask(i, t) - } - processTask(i, t) { - return o(this, void 0, void 0, (function*() { - if (t.type === "") { - const c = this.resolveRejects[i]; - return delete this.resolveRejects[i], c ? void(t.error ? c.reject(Cs(t.error)) : c.resolve(Cs(t.data))) : void 0 - } - if (!this.messageHandlers[t.type]) return void this.completeTask(i, new Error(`Could not find a registered handler for ${t.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`)); - const r = Cs(t.data), - a = new AbortController; - this.abortControllers[i] = a; - try { - const c = yield this.messageHandlers[t.type](t.sourceMapId, r, a); - this.completeTask(i, null, c) - } catch (c) { - this.completeTask(i, c) - } - })) - } - completeTask(i, t, r) { - const a = []; - delete this.abortControllers[i]; - const c = { - id: i, - type: "", - sourceMapId: this.mapId, - origin: location.origin, - error: t ? Gs(t) : null, - data: Gs(r, a) - }; - this.target.postMessage(c, { - transfer: a - }) - } - remove() { - this.invoker.remove(), this.subscription.unsubscribe() - } - }, T.K = G, T.L = function() { - var i = new Ee(16); - return Ee != Float32Array && (i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[11] = 0, i[12] = 0, i[13] = 0, i[14] = 0), i[0] = 1, i[5] = 1, i[10] = 1, i[15] = 1, i - }, T.M = function(i, t, r) { - var a, c, p, f, g, v, S, I, E, R, N, j, Z = r[0], - Y = r[1], - ae = r[2]; - return t === i ? (i[12] = t[0] * Z + t[4] * Y + t[8] * ae + t[12], i[13] = t[1] * Z + t[5] * Y + t[9] * ae + t[13], i[14] = t[2] * Z + t[6] * Y + t[10] * ae + t[14], i[15] = t[3] * Z + t[7] * Y + t[11] * ae + t[15]) : (c = t[1], p = t[2], f = t[3], g = t[4], v = t[5], S = t[6], I = t[7], E = t[8], R = t[9], N = t[10], j = t[11], i[0] = a = t[0], i[1] = c, i[2] = p, i[3] = f, i[4] = g, i[5] = v, i[6] = S, i[7] = I, i[8] = E, i[9] = R, i[10] = N, i[11] = j, i[12] = a * Z + g * Y + E * ae + t[12], i[13] = c * Z + v * Y + R * ae + t[13], i[14] = p * Z + S * Y + N * ae + t[14], i[15] = f * Z + I * Y + j * ae + t[15]), i - }, T.N = function(i, t, r) { - var a = r[0], - c = r[1], - p = r[2]; - return i[0] = t[0] * a, i[1] = t[1] * a, i[2] = t[2] * a, i[3] = t[3] * a, i[4] = t[4] * c, i[5] = t[5] * c, i[6] = t[6] * c, i[7] = t[7] * c, i[8] = t[8] * p, i[9] = t[9] * p, i[10] = t[10] * p, i[11] = t[11] * p, i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15], i - }, T.O = function(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = t[3], - g = t[4], - v = t[5], - S = t[6], - I = t[7], - E = t[8], - R = t[9], - N = t[10], - j = t[11], - Z = t[12], - Y = t[13], - ae = t[14], - ze = t[15], - me = r[0], - be = r[1], - Ve = r[2], - rt = r[3]; - return i[0] = me * a + be * g + Ve * E + rt * Z, i[1] = me * c + be * v + Ve * R + rt * Y, i[2] = me * p + be * S + Ve * N + rt * ae, i[3] = me * f + be * I + Ve * j + rt * ze, i[4] = (me = r[4]) * a + (be = r[5]) * g + (Ve = r[6]) * E + (rt = r[7]) * Z, i[5] = me * c + be * v + Ve * R + rt * Y, i[6] = me * p + be * S + Ve * N + rt * ae, i[7] = me * f + be * I + Ve * j + rt * ze, i[8] = (me = r[8]) * a + (be = r[9]) * g + (Ve = r[10]) * E + (rt = r[11]) * Z, i[9] = me * c + be * v + Ve * R + rt * Y, i[10] = me * p + be * S + Ve * N + rt * ae, i[11] = me * f + be * I + Ve * j + rt * ze, i[12] = (me = r[12]) * a + (be = r[13]) * g + (Ve = r[14]) * E + (rt = r[15]) * Z, i[13] = me * c + be * v + Ve * R + rt * Y, i[14] = me * p + be * S + Ve * N + rt * ae, i[15] = me * f + be * I + Ve * j + rt * ze, i - }, T.P = $, T.Q = function(i, t) { - const r = {}; - for (let a = 0; a < t.length; a++) { - const c = t[a]; - c in i && (r[c] = i[c]) - } - return r - }, T.R = na, T.S = ro, T.T = Mp, T.U = I_, T.V = P_, T.W = Re, T.X = Ae, T.Y = dr, T.Z = Ma, T._ = o, T.a = O, T.a$ = Qe, T.a0 = function(i, t) { - var r, a, c, p; - if (!i) return t ?? {}; - if (!t) return i; - const f = Object.assign({}, i); - if (t.removeAll && (f.removeAll = !0), t.remove) { - const g = new Set(f.remove ? f.remove.concat(t.remove) : t.remove); - f.remove = Array.from(g.values()) - } - if (t.add) { - const g = f.add ? f.add.concat(t.add) : t.add, - v = new Map(g.map((S => [S.id, S]))); - f.add = Array.from(v.values()) - } - if (t.update) { - const g = new Map((r = f.update) === null || r === void 0 ? void 0 : r.map((v => [v.id, v]))); - for (const v of t.update) { - const S = (a = g.get(v.id)) !== null && a !== void 0 ? a : { - id: v.id - }; - v.newGeometry && (S.newGeometry = v.newGeometry), v.addOrUpdateProperties && (S.addOrUpdateProperties = ((c = S.addOrUpdateProperties) !== null && c !== void 0 ? c : []).concat(v.addOrUpdateProperties)), v.removeProperties && (S.removeProperties = ((p = S.removeProperties) !== null && p !== void 0 ? p : []).concat(v.removeProperties)), v.removeAllProperties && (S.removeAllProperties = !0), g.set(v.id, S) - } - f.update = Array.from(g.values()) - } - return f - }, T.a1 = fu, T.a2 = Oo, T.a3 = 25, T.a4 = Xp, T.a5 = i => { - const t = window.document.createElement("video"); - return t.muted = !0, new Promise((r => { - t.onloadstart = () => { - r(t) - }; - for (const a of i) { - const c = window.document.createElement("source"); - Le(a) || (t.crossOrigin = "Anonymous"), c.src = a, t.appendChild(c) - } - })) - }, T.a6 = Tt, T.a7 = function() { - return It++ - }, T.a8 = z, T.a9 = Nl, T.aA = function(i) { - let t = 1 / 0, - r = 1 / 0, - a = -1 / 0, - c = -1 / 0; - for (const p of i) t = Math.min(t, p.x), r = Math.min(r, p.y), a = Math.max(a, p.x), c = Math.max(c, p.y); - return [t, r, a, c] - }, T.aB = bn, T.aC = Pe, T.aD = function(i, t, r, a, c = !1) { - if (!r[0] && !r[1]) return [0, 0]; - const p = c ? a === "map" ? -i.bearingInRadians : 0 : a === "viewport" ? i.bearingInRadians : 0; - if (p) { - const f = Math.sin(p), - g = Math.cos(p); - r = [r[0] * g - r[1] * f, r[0] * f + r[1] * g] - } - return [c ? r[0] : Pe(t, r[0], i.zoom), c ? r[1] : Pe(t, r[1], i.zoom)] - }, T.aF = Vp, T.aG = Yp, T.aH = qp, T.aI = Jp, T.aJ = Hi, T.aK = cd, T.aL = he, T.aM = Wr, T.aN = ki, T.aO = tt, T.aP = Mr, T.aQ = A_, T.aR = Be, T.aS = Je, T.aT = function(i) { - var t = new Ee(3); - return t[0] = i[0], t[1] = i[1], t[2] = i[2], t - }, T.aU = function(i, t, r) { - return i[0] = t[0] - r[0], i[1] = t[1] - r[1], i[2] = t[2] - r[2], i - }, T.aV = function(i, t) { - var r = t[0], - a = t[1], - c = t[2], - p = r * r + a * a + c * c; - return p > 0 && (p = 1 / Math.sqrt(p)), i[0] = t[0] * p, i[1] = t[1] * p, i[2] = t[2] * p, i - }, T.aW = st, T.aX = function(i, t) { - return i[0] * t[0] + i[1] * t[1] + i[2] * t[2] - }, T.aY = function(i, t, r) { - return i[0] = t[0] * r[0], i[1] = t[1] * r[1], i[2] = t[2] * r[2], i[3] = t[3] * r[3], i - }, T.aZ = Xe, T.a_ = function(i, t, r) { - const a = t[0] * r[0] + t[1] * r[1] + t[2] * r[2]; - return a === 0 ? null : (-(i[0] * r[0] + i[1] * r[1] + i[2] * r[2]) - r[3]) / a - }, T.aa = bs, T.ab = Wa, T.ac = L_, T.ad = function(i) { - const t = {}; - if (i.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, ((r, a, c, p) => { - const f = c || p; - return t[a] = !f || f.toLowerCase(), "" - })), t["max-age"]) { - const r = parseInt(t["max-age"], 10); - isNaN(r) ? delete t["max-age"] : t["max-age"] = r - } - return t - }, T.ae = ur, T.af = function(i) { - return Math.pow(2, i) - }, T.ag = ft, T.ah = xt, T.ai = 85.051129, T.aj = M_, T.ak = function(i) { - return Math.log(i) / Math.LN2 - }, T.al = function(i) { - var t = i[0], - r = i[1]; - return t * t + r * r - }, T.am = function(i, t) { - const r = []; - for (const a in i) a in t || r.push(a); - return r - }, T.an = function(i, t) { - let r = 0, - a = 0; - if (i.kind === "constant") a = i.layoutSize; - else if (i.kind !== "source") { - const { - interpolationType: c, - minZoom: p, - maxZoom: f - } = i, g = c ? xt(In.interpolationFactor(c, t, p, f), 0, 1) : 0; - i.kind === "camera" ? a = Fa.number(i.minSize, i.maxSize, g) : r = g - } - return { - uSizeT: r, - uSize: a - } - }, T.ap = function(i, { - uSize: t, - uSizeT: r - }, { - lowerSize: a, - upperSize: c - }) { - return i.kind === "source" ? a / As : i.kind === "composite" ? Fa.number(a / As, c / As, r) : t - }, T.aq = function(i, t) { - var r = t[0], - a = t[1], - c = t[2], - p = t[3], - f = t[4], - g = t[5], - v = t[6], - S = t[7], - I = t[8], - E = t[9], - R = t[10], - N = t[11], - j = t[12], - Z = t[13], - Y = t[14], - ae = t[15], - ze = r * g - a * f, - me = r * v - c * f, - be = r * S - p * f, - Ve = a * v - c * g, - rt = a * S - p * g, - St = c * S - p * v, - $t = I * Z - E * j, - Bt = I * Y - R * j, - Ut = I * ae - N * j, - pr = E * Y - R * Z, - Vt = E * ae - N * Z, - Zt = R * ae - N * Y, - mt = ze * Zt - me * Vt + be * pr + Ve * Ut - rt * Bt + St * $t; - return mt ? (i[0] = (g * Zt - v * Vt + S * pr) * (mt = 1 / mt), i[1] = (c * Vt - a * Zt - p * pr) * mt, i[2] = (Z * St - Y * rt + ae * Ve) * mt, i[3] = (R * rt - E * St - N * Ve) * mt, i[4] = (v * Ut - f * Zt - S * Bt) * mt, i[5] = (r * Zt - c * Ut + p * Bt) * mt, i[6] = (Y * be - j * St - ae * me) * mt, i[7] = (I * St - R * be + N * me) * mt, i[8] = (f * Vt - g * Ut + S * $t) * mt, i[9] = (a * Ut - r * Vt - p * $t) * mt, i[10] = (j * rt - Z * be + ae * ze) * mt, i[11] = (E * be - I * rt - N * ze) * mt, i[12] = (g * Bt - f * pr - v * $t) * mt, i[13] = (r * pr - a * Bt + c * $t) * mt, i[14] = (Z * me - j * Ve - Y * ze) * mt, i[15] = (I * Ve - E * me + R * ze) * mt, i) : null - }, T.ar = te, T.as = function(i) { - return Math.hypot(i[0], i[1]) - }, T.at = function(i) { - return i[0] = 0, i[1] = 0, i - }, T.au = function(i, t, r) { - return i[0] = t[0] * r, i[1] = t[1] * r, i - }, T.av = Up, T.aw = ke, T.ax = function(i, t, r, a) { - const c = t.y - i.y, - p = t.x - i.x, - f = a.y - r.y, - g = a.x - r.x, - v = f * p - g * c; - if (v === 0) return null; - const S = (g * (i.y - r.y) - f * (i.x - r.x)) / v; - return new $(i.x + S * p, i.y + S * c) - }, T.ay = B_, T.az = Sm, T.b = ar, T.b$ = class extends h {}, T.b0 = function(i, t, r) { - return i[0] = t[0] * r, i[1] = t[1] * r, i[2] = t[2] * r, i[3] = t[3] * r, i - }, T.b1 = function(i, t) { - return i[0] * t[0] + i[1] * t[1] + i[2] * t[2] + i[3] - }, T.b2 = E_, T.b3 = jl, T.b4 = function(i, t, r, a, c) { - var p, f = 1 / Math.tan(t / 2); - return i[0] = f / r, i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = f, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[11] = -1, i[12] = 0, i[13] = 0, i[15] = 0, c != null && c !== 1 / 0 ? (i[10] = (c + a) * (p = 1 / (a - c)), i[14] = 2 * c * a * p) : (i[10] = -1, i[14] = -2 * a), i - }, T.b5 = function(i) { - var t = new Ee(16); - return t[0] = i[0], t[1] = i[1], t[2] = i[2], t[3] = i[3], t[4] = i[4], t[5] = i[5], t[6] = i[6], t[7] = i[7], t[8] = i[8], t[9] = i[9], t[10] = i[10], t[11] = i[11], t[12] = i[12], t[13] = i[13], t[14] = i[14], t[15] = i[15], t - }, T.b6 = function(i, t, r) { - var a = Math.sin(r), - c = Math.cos(r), - p = t[0], - f = t[1], - g = t[2], - v = t[3], - S = t[4], - I = t[5], - E = t[6], - R = t[7]; - return t !== i && (i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]), i[0] = p * c + S * a, i[1] = f * c + I * a, i[2] = g * c + E * a, i[3] = v * c + R * a, i[4] = S * c - p * a, i[5] = I * c - f * a, i[6] = E * c - g * a, i[7] = R * c - v * a, i - }, T.b7 = function(i, t, r) { - var a = Math.sin(r), - c = Math.cos(r), - p = t[4], - f = t[5], - g = t[6], - v = t[7], - S = t[8], - I = t[9], - E = t[10], - R = t[11]; - return t !== i && (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]), i[4] = p * c + S * a, i[5] = f * c + I * a, i[6] = g * c + E * a, i[7] = v * c + R * a, i[8] = S * c - p * a, i[9] = I * c - f * a, i[10] = E * c - g * a, i[11] = R * c - v * a, i - }, T.b8 = function() { - const i = new Float32Array(16); - return ft(i), i - }, T.b9 = function() { - const i = new Float64Array(16); - return ft(i), i - }, T.bA = function(i, t) { - const r = Me(i, 360), - a = Me(t, 360), - c = a - r, - p = a > r ? c - 360 : c + 360; - return Math.abs(c) < Math.abs(p) ? c : p - }, T.bB = function(i) { - return i[0] = 0, i[1] = 0, i[2] = 0, i - }, T.bC = function(i, t, r, a) { - const c = Math.sqrt(i * i + t * t), - p = Math.sqrt(r * r + a * a); - i /= c, t /= c, r /= p, a /= p; - const f = Math.acos(i * r + t * a); - return -t * r + i * a > 0 ? f : -f - }, T.bD = function(i, t) { - const r = Me(i, 2 * Math.PI), - a = Me(t, 2 * Math.PI); - return Math.min(Math.abs(r - a), Math.abs(r - a + 2 * Math.PI), Math.abs(r - a - 2 * Math.PI)) - }, T.bE = function() { - const i = {}, - t = xe.$version; - for (const r in xe.$root) { - const a = xe.$root[r]; - if (a.required) { - let c = null; - c = r === "version" ? t : a.type === "array" ? [] : {}, c != null && (i[r] = c) - } - } - return i - }, T.bF = bl, T.bG = le, T.bH = function i(t, r) { - if (Array.isArray(t)) { - if (!Array.isArray(r) || t.length !== r.length) return !1; - for (let a = 0; a < t.length; a++) - if (!i(t[a], r[a])) return !1; - return !0 - } - if (typeof t == "object" && t !== null && r !== null) { - if (typeof r != "object" || Object.keys(t).length !== Object.keys(r).length) return !1; - for (const a in t) - if (!i(t[a], r[a])) return !1; - return !0 - } - return t === r - }, T.bI = function(i) { - i = i.slice(); - const t = Object.create(null); - for (let r = 0; r < i.length; r++) t[i[r].id] = i[r]; - for (let r = 0; r < i.length; r++) "ref" in i[r] && (i[r] = Pt(i[r], t[i[r].ref])); - return i - }, T.bJ = function(i) { - if (i.type === "custom") return new sy(i); - switch (i.type) { - case "background": - return new iy(i); - case "circle": - return new Vv(i); - case "color-relief": - return new Wv(i); - case "fill": - return new c0(i); - case "fill-extrusion": - return new x0(i); - case "heatmap": - return new Zv(i); - case "hillshade": - return new Gv(i); - case "line": - return new I0(i); - case "raster": - return new ay(i); - case "symbol": - return new fd(i) - } - }, T.bK = wt, T.bL = function(i, t) { - if (!i) return [{ - command: "setStyle", - args: [t] - }]; - let r = []; - try { - if (!kt(i.version, t.version)) return [{ - command: "setStyle", - args: [t] - }]; - kt(i.center, t.center) || r.push({ - command: "setCenter", - args: [t.center] - }), kt(i.state, t.state) || r.push({ - command: "setGlobalState", - args: [t.state] - }), kt(i.centerAltitude, t.centerAltitude) || r.push({ - command: "setCenterAltitude", - args: [t.centerAltitude] - }), kt(i.zoom, t.zoom) || r.push({ - command: "setZoom", - args: [t.zoom] - }), kt(i.bearing, t.bearing) || r.push({ - command: "setBearing", - args: [t.bearing] - }), kt(i.pitch, t.pitch) || r.push({ - command: "setPitch", - args: [t.pitch] - }), kt(i.roll, t.roll) || r.push({ - command: "setRoll", - args: [t.roll] - }), kt(i.sprite, t.sprite) || r.push({ - command: "setSprite", - args: [t.sprite] - }), kt(i.glyphs, t.glyphs) || r.push({ - command: "setGlyphs", - args: [t.glyphs] - }), kt(i.transition, t.transition) || r.push({ - command: "setTransition", - args: [t.transition] - }), kt(i.light, t.light) || r.push({ - command: "setLight", - args: [t.light] - }), kt(i.terrain, t.terrain) || r.push({ - command: "setTerrain", - args: [t.terrain] - }), kt(i.sky, t.sky) || r.push({ - command: "setSky", - args: [t.sky] - }), kt(i.projection, t.projection) || r.push({ - command: "setProjection", - args: [t.projection] - }); - const a = {}, - c = []; - (function(f, g, v, S) { - let I; - for (I in g = g || {}, f = f || {}) Object.prototype.hasOwnProperty.call(f, I) && (Object.prototype.hasOwnProperty.call(g, I) || Kr(I, v, S)); - for (I in g) Object.prototype.hasOwnProperty.call(g, I) && (Object.prototype.hasOwnProperty.call(f, I) ? kt(f[I], g[I]) || (f[I].type === "geojson" && g[I].type === "geojson" && $r(f, g, I) ? Wt(v, { - command: "setGeoJSONSourceData", - args: [I, g[I].data] - }) : Hr(I, g, v, S)) : Lr(I, g, v)) - })(i.sources, t.sources, c, a); - const p = []; - i.layers && i.layers.forEach((f => { - "source" in f && a[f.source] ? r.push({ - command: "removeLayer", - args: [f.id] - }) : p.push(f) - })), r = r.concat(c), (function(f, g, v) { - g = g || []; - const S = (f = f || []).map(gr), - I = g.map(gr), - E = f.reduce(ai, {}), - R = g.reduce(ai, {}), - N = S.slice(), - j = Object.create(null); - let Z, Y, ae, ze, me; - for (let be = 0, Ve = 0; be < S.length; be++) Z = S[be], Object.prototype.hasOwnProperty.call(R, Z) ? Ve++ : (Wt(v, { - command: "removeLayer", - args: [Z] - }), N.splice(N.indexOf(Z, Ve), 1)); - for (let be = 0, Ve = 0; be < I.length; be++) Z = I[I.length - 1 - be], N[N.length - 1 - be] !== Z && (Object.prototype.hasOwnProperty.call(E, Z) ? (Wt(v, { - command: "removeLayer", - args: [Z] - }), N.splice(N.lastIndexOf(Z, N.length - Ve), 1)) : Ve++, ze = N[N.length - be], Wt(v, { - command: "addLayer", - args: [R[Z], ze] - }), N.splice(N.length - be, 0, Z), j[Z] = !0); - for (let be = 0; be < I.length; be++) - if (Z = I[be], Y = E[Z], ae = R[Z], !j[Z] && !kt(Y, ae)) - if (kt(Y.source, ae.source) && kt(Y["source-layer"], ae["source-layer"]) && kt(Y.type, ae.type)) { - for (me in mr(Y.layout, ae.layout, v, Z, null, "setLayoutProperty"), mr(Y.paint, ae.paint, v, Z, null, "setPaintProperty"), kt(Y.filter, ae.filter) || Wt(v, { - command: "setFilter", - args: [Z, ae.filter] - }), kt(Y.minzoom, ae.minzoom) && kt(Y.maxzoom, ae.maxzoom) || Wt(v, { - command: "setLayerZoomRange", - args: [Z, ae.minzoom, ae.maxzoom] - }), Y) Object.prototype.hasOwnProperty.call(Y, me) && me !== "layout" && me !== "paint" && me !== "filter" && me !== "metadata" && me !== "minzoom" && me !== "maxzoom" && (me.indexOf("paint.") === 0 ? mr(Y[me], ae[me], v, Z, me.slice(6), "setPaintProperty") : kt(Y[me], ae[me]) || Wt(v, { - command: "setLayerProperty", - args: [Z, me, ae[me]] - })); - for (me in ae) Object.prototype.hasOwnProperty.call(ae, me) && !Object.prototype.hasOwnProperty.call(Y, me) && me !== "layout" && me !== "paint" && me !== "filter" && me !== "metadata" && me !== "minzoom" && me !== "maxzoom" && (me.indexOf("paint.") === 0 ? mr(Y[me], ae[me], v, Z, me.slice(6), "setPaintProperty") : kt(Y[me], ae[me]) || Wt(v, { - command: "setLayerProperty", - args: [Z, me, ae[me]] - })) - } else Wt(v, { - command: "removeLayer", - args: [Z] - }), ze = N[N.lastIndexOf(Z) + 1], Wt(v, { - command: "addLayer", - args: [ae, ze] - }) - })(p, t.layers, r) - } catch (a) { - console.warn("Unable to compute style diff:", a), r = [{ - command: "setStyle", - args: [t] - }] - } - return r - }, T.bM = function(i) { - const t = [], - r = i.id; - return r === void 0 && t.push({ - message: `layers.${r}: missing required property "id"` - }), i.render === void 0 && t.push({ - message: `layers.${r}: missing required method "render"` - }), i.renderingMode && i.renderingMode !== "2d" && i.renderingMode !== "3d" && t.push({ - message: `layers.${r}: property "renderingMode" must be either "2d" or "3d"` - }), t - }, T.bN = ut, T.bO = bt, T.bP = class extends Vn { - constructor(i, t) { - super(i, t), this.current = 0 - } - set(i) { - this.current !== i && (this.current = i, this.gl.uniform1i(this.location, i)) - } - }, T.bQ = pn, T.bR = class extends Vn { - constructor(i, t) { - super(i, t), this.current = da - } - set(i) { - if (i[12] !== this.current[12] || i[0] !== this.current[0]) return this.current = i, void this.gl.uniformMatrix4fv(this.location, !1, i); - for (let t = 1; t < 16; t++) - if (i[t] !== this.current[t]) { - this.current = i, this.gl.uniformMatrix4fv(this.location, !1, i); - break - } - } - }, T.bS = en, T.bT = class extends Vn { - constructor(i, t) { - super(i, t), this.current = [0, 0, 0] - } - set(i) { - i[0] === this.current[0] && i[1] === this.current[1] && i[2] === this.current[2] || (this.current = i, this.gl.uniform3f(this.location, i[0], i[1], i[2])) - } - }, T.bU = class extends Vn { - constructor(i, t) { - super(i, t), this.current = [0, 0] - } - set(i) { - i[0] === this.current[0] && i[1] === this.current[1] || (this.current = i, this.gl.uniform2f(this.location, i[0], i[1])) - } - }, T.bV = Ne, T.bW = function(i, t) { - var r = Math.sin(t), - a = Math.cos(t); - return i[0] = a, i[1] = r, i[2] = 0, i[3] = -r, i[4] = a, i[5] = 0, i[6] = 0, i[7] = 0, i[8] = 1, i - }, T.bX = function(i, t, r) { - var a = t[0], - c = t[1], - p = t[2]; - return i[0] = a * r[0] + c * r[3] + p * r[6], i[1] = a * r[1] + c * r[4] + p * r[7], i[2] = a * r[2] + c * r[5] + p * r[8], i - }, T.bY = function(i, t, r, a, c, p, f) { - var g = 1 / (t - r), - v = 1 / (a - c), - S = 1 / (p - f); - return i[0] = -2 * g, i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = -2 * v, i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[10] = 2 * S, i[11] = 0, i[12] = (t + r) * g, i[13] = (c + a) * v, i[14] = (f + p) * S, i[15] = 1, i - }, T.bZ = class extends Vn { - constructor(i, t) { - super(i, t), this.current = new Array - } - set(i) { - if (i != this.current) { - this.current = i; - const t = new Float32Array(4 * i.length); - for (let r = 0; r < i.length; r++) t[4 * r] = i[r].r, t[4 * r + 1] = i[r].g, t[4 * r + 2] = i[r].b, t[4 * r + 3] = i[r].a; - this.gl.uniform4fv(this.location, t) - } - } - }, T.b_ = class extends Vn { - constructor(i, t) { - super(i, t), this.current = new Array - } - set(i) { - if (i != this.current) { - this.current = i; - const t = new Float32Array(i); - this.gl.uniform1fv(this.location, t) - } - } - }, T.ba = function() { - return new Float64Array(16) - }, T.bb = function(i, t, r) { - const a = new Float64Array(4); - return Q(a, i, t - 90, r), a - }, T.bc = function(i, t, r, a) { - var c, p, f, g, v, S = t[0], - I = t[1], - E = t[2], - R = t[3], - N = r[0], - j = r[1], - Z = r[2], - Y = r[3]; - return (p = S * N + I * j + E * Z + R * Y) < 0 && (p = -p, N = -N, j = -j, Z = -Z, Y = -Y), 1 - p > Oe ? (c = Math.acos(p), f = Math.sin(c), g = Math.sin((1 - a) * c) / f, v = Math.sin(a * c) / f) : (g = 1 - a, v = a), i[0] = g * S + v * N, i[1] = g * I + v * j, i[2] = g * E + v * Z, i[3] = g * R + v * Y, i - }, T.bd = function(i) { - const t = new Float64Array(9); - var r, a, c, p, f, g, v, S, I, E, R, N, j, Z, Y, ae, ze, me; - E = (c = (a = i)[0]) * (v = c + c), R = (p = a[1]) * v, j = (f = a[2]) * v, Z = f * (S = p + p), ae = (g = a[3]) * v, ze = g * S, me = g * (I = f + f), (r = t)[0] = 1 - (N = p * S) - (Y = f * I), r[3] = R - me, r[6] = j + ze, r[1] = R + me, r[4] = 1 - E - Y, r[7] = Z - ae, r[2] = j - ze, r[5] = Z + ae, r[8] = 1 - E - N; - const be = Mr(-Math.asin(xt(t[2], -1, 1))); - let Ve, rt; - return Math.hypot(t[5], t[8]) < .001 ? (Ve = 0, rt = -Mr(Math.atan2(t[3], t[4]))) : (Ve = Mr(t[5] === 0 && t[8] === 0 ? 0 : Math.atan2(t[5], t[8])), rt = Mr(t[1] === 0 && t[0] === 0 ? 0 : Math.atan2(t[1], t[0]))), { - roll: Ve, - pitch: be + 90, - bearing: rt - } - }, T.be = function(i, t) { - return i.roll == t.roll && i.pitch == t.pitch && i.bearing == t.bearing - }, T.bf = yr, T.bg = os, T.bh = Rl, T.bi = lu, T.bj = Dl, T.bk = at, T.bl = We, T.bm = hn, T.bn = function(i, t, r, a, c) { - return at(a, c, xt((i - t) / (r - t), 0, 1)) - }, T.bo = Me, T.bp = function() { - return new Float64Array(3) - }, T.bq = function(i, t, r, a) { - return i[0] = t[0] + r[0] * a, i[1] = t[1] + r[1] * a, i[2] = t[2] + r[2] * a, i - }, T.br = Q, T.bs = function(i, t, r) { - var a = r[0], - c = r[1], - p = r[2], - f = t[0], - g = t[1], - v = t[2], - S = c * v - p * g, - I = p * f - a * v, - E = a * g - c * f, - R = c * E - p * I, - N = p * S - a * E, - j = a * I - c * S, - Z = 2 * r[3]; - return I *= Z, E *= Z, N *= 2, j *= 2, i[0] = f + (S *= Z) + (R *= 2), i[1] = g + I + N, i[2] = v + E + j, i - }, T.bt = function(i, t, r) { - const a = (c = [i[0], i[1], i[2], t[0], t[1], t[2], r[0], r[1], r[2]])[0] * ((I = c[8]) * (f = c[4]) - (g = c[5]) * (S = c[7])) + c[1] * (-I * (p = c[3]) + g * (v = c[6])) + c[2] * (S * p - f * v); - var c, p, f, g, v, S, I; - if (a === 0) return null; - const E = st([], [t[0], t[1], t[2]], [r[0], r[1], r[2]]), - R = st([], [r[0], r[1], r[2]], [i[0], i[1], i[2]]), - N = st([], [i[0], i[1], i[2]], [t[0], t[1], t[2]]), - j = Be([], E, -i[3]); - return Je(j, j, Be([], R, -t[3])), Je(j, j, Be([], N, -r[3])), Be(j, j, 1 / a), j - }, T.bu = Hp, T.bv = function() { - return new Float64Array(4) - }, T.bw = function(i, t, r, a) { - var c = [], - p = []; - return c[0] = t[0] - r[0], c[1] = t[1] - r[1], c[2] = t[2] - r[2], p[0] = c[0] * Math.cos(a) - c[1] * Math.sin(a), p[1] = c[0] * Math.sin(a) + c[1] * Math.cos(a), p[2] = c[2], i[0] = p[0] + r[0], i[1] = p[1] + r[1], i[2] = p[2] + r[2], i - }, T.bx = function(i, t, r, a) { - var c = [], - p = []; - return c[0] = t[0] - r[0], c[1] = t[1] - r[1], c[2] = t[2] - r[2], p[0] = c[0], p[1] = c[1] * Math.cos(a) - c[2] * Math.sin(a), p[2] = c[1] * Math.sin(a) + c[2] * Math.cos(a), i[0] = p[0] + r[0], i[1] = p[1] + r[1], i[2] = p[2] + r[2], i - }, T.by = function(i, t, r, a) { - var c = [], - p = []; - return c[0] = t[0] - r[0], c[1] = t[1] - r[1], c[2] = t[2] - r[2], p[0] = c[2] * Math.sin(a) + c[0] * Math.cos(a), p[1] = c[1], p[2] = c[2] * Math.cos(a) - c[0] * Math.sin(a), i[0] = p[0] + r[0], i[1] = p[1] + r[1], i[2] = p[2] + r[2], i - }, T.bz = function(i, t, r) { - var a = Math.sin(r), - c = Math.cos(r), - p = t[0], - f = t[1], - g = t[2], - v = t[3], - S = t[8], - I = t[9], - E = t[10], - R = t[11]; - return t !== i && (i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]), i[0] = p * c - S * a, i[1] = f * c - I * a, i[2] = g * c - E * a, i[3] = v * c - R * a, i[8] = p * a + S * c, i[9] = f * a + I * c, i[10] = g * a + E * c, i[11] = v * a + R * c, i - }, T.c = ce, T.c0 = E0, T.c1 = class extends n {}, T.c2 = Ip, T.c3 = function(i) { - return i <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(i) / Math.LN2)) - }, T.c4 = Rm, T.c5 = function(i, t, r) { - var a = t[0], - c = t[1], - p = t[2], - f = r[3] * a + r[7] * c + r[11] * p + r[15]; - return i[0] = (r[0] * a + r[4] * c + r[8] * p + r[12]) / (f = f || 1), i[1] = (r[1] * a + r[5] * c + r[9] * p + r[13]) / f, i[2] = (r[2] * a + r[6] * c + r[10] * p + r[14]) / f, i - }, T.c6 = class extends Yc {}, T.c7 = class extends P {}, T.c8 = function(i, t) { - return i[0] === t[0] && i[1] === t[1] && i[2] === t[2] && i[3] === t[3] && i[4] === t[4] && i[5] === t[5] && i[6] === t[6] && i[7] === t[7] && i[8] === t[8] && i[9] === t[9] && i[10] === t[10] && i[11] === t[11] && i[12] === t[12] && i[13] === t[13] && i[14] === t[14] && i[15] === t[15] - }, T.c9 = function(i, t) { - var r = i[0], - a = i[1], - c = i[2], - p = i[3], - f = i[4], - g = i[5], - v = i[6], - S = i[7], - I = i[8], - E = i[9], - R = i[10], - N = i[11], - j = i[12], - Z = i[13], - Y = i[14], - ae = i[15], - ze = t[0], - me = t[1], - be = t[2], - Ve = t[3], - rt = t[4], - St = t[5], - $t = t[6], - Bt = t[7], - Ut = t[8], - pr = t[9], - Vt = t[10], - Zt = t[11], - mt = t[12], - Br = t[13], - Ur = t[14], - xr = t[15]; - return Math.abs(r - ze) <= Oe * Math.max(1, Math.abs(r), Math.abs(ze)) && Math.abs(a - me) <= Oe * Math.max(1, Math.abs(a), Math.abs(me)) && Math.abs(c - be) <= Oe * Math.max(1, Math.abs(c), Math.abs(be)) && Math.abs(p - Ve) <= Oe * Math.max(1, Math.abs(p), Math.abs(Ve)) && Math.abs(f - rt) <= Oe * Math.max(1, Math.abs(f), Math.abs(rt)) && Math.abs(g - St) <= Oe * Math.max(1, Math.abs(g), Math.abs(St)) && Math.abs(v - $t) <= Oe * Math.max(1, Math.abs(v), Math.abs($t)) && Math.abs(S - Bt) <= Oe * Math.max(1, Math.abs(S), Math.abs(Bt)) && Math.abs(I - Ut) <= Oe * Math.max(1, Math.abs(I), Math.abs(Ut)) && Math.abs(E - pr) <= Oe * Math.max(1, Math.abs(E), Math.abs(pr)) && Math.abs(R - Vt) <= Oe * Math.max(1, Math.abs(R), Math.abs(Vt)) && Math.abs(N - Zt) <= Oe * Math.max(1, Math.abs(N), Math.abs(Zt)) && Math.abs(j - mt) <= Oe * Math.max(1, Math.abs(j), Math.abs(mt)) && Math.abs(Z - Br) <= Oe * Math.max(1, Math.abs(Z), Math.abs(Br)) && Math.abs(Y - Ur) <= Oe * Math.max(1, Math.abs(Y), Math.abs(Ur)) && Math.abs(ae - xr) <= Oe * Math.max(1, Math.abs(ae), Math.abs(xr)) - }, T.cA = function(i, t) { - O.REGISTERED_PROTOCOLS[i] = t - }, T.cB = function(i) { - delete O.REGISTERED_PROTOCOLS[i] - }, T.cC = function(i, t) { - const r = {}; - for (let c = 0; c < i.length; c++) { - const p = t && t[i[c].id] || mp(i[c]); - t && (t[i[c].id] = p); - let f = r[p]; - f || (f = r[p] = []), f.push(i[c]) - } - const a = []; - for (const c in r) a.push(r[c]); - return a - }, T.cD = Kt, T.cE = z_, T.cF = D_, T.cG = u_, T.cH = function(i) { - i.bucket.createArrays(), i.bucket.tilePixelRatio = ne / (512 * i.bucket.overscaling), i.bucket.compareText = {}, i.bucket.iconsNeedLinear = !1; - const t = i.bucket.layers[0], - r = t.layout, - a = t._unevaluatedLayout._values, - c = { - layoutIconSize: a["icon-size"].possiblyEvaluate(new Oi(i.bucket.zoom + 1), i.canonical), - layoutTextSize: a["text-size"].possiblyEvaluate(new Oi(i.bucket.zoom + 1), i.canonical), - textMaxSize: a["text-size"].possiblyEvaluate(new Oi(18)) - }; - if (i.bucket.textSizeData.kind === "composite") { - const { - minZoom: S, - maxZoom: I - } = i.bucket.textSizeData; - c.compositeTextSizes = [a["text-size"].possiblyEvaluate(new Oi(S), i.canonical), a["text-size"].possiblyEvaluate(new Oi(I), i.canonical)] - } - if (i.bucket.iconSizeData.kind === "composite") { - const { - minZoom: S, - maxZoom: I - } = i.bucket.iconSizeData; - c.compositeIconSizes = [a["icon-size"].possiblyEvaluate(new Oi(S), i.canonical), a["icon-size"].possiblyEvaluate(new Oi(I), i.canonical)] - } - const p = r.get("text-line-height") * bn, - f = r.get("text-rotation-alignment") !== "viewport" && r.get("symbol-placement") !== "point", - g = r.get("text-keep-upright"), - v = r.get("text-size"); - for (const S of i.bucket.features) { - const I = r.get("text-font").evaluate(S, {}, i.canonical).join(","), - E = v.evaluate(S, {}, i.canonical), - R = c.layoutTextSize.evaluate(S, {}, i.canonical), - N = c.layoutIconSize.evaluate(S, {}, i.canonical), - j = { - horizontal: {}, - vertical: void 0 - }, - Z = S.text; - let Y, ae = [0, 0]; - if (Z) { - const be = Z.toString(), - Ve = r.get("text-letter-spacing").evaluate(S, {}, i.canonical) * bn, - rt = yp(be) ? Ve : 0, - St = r.get("text-anchor").evaluate(S, {}, i.canonical), - $t = $_(t, S, i.canonical); - if (!$t) { - const Vt = r.get("text-radial-offset").evaluate(S, {}, i.canonical); - ae = Vt ? Z_(St, [Vt * bn, Kp]) : r.get("text-offset").evaluate(S, {}, i.canonical).map((Zt => Zt * bn)) - } - let Bt = f ? "center" : r.get("text-justify").evaluate(S, {}, i.canonical); - const Ut = r.get("symbol-placement") === "point" ? r.get("text-max-width").evaluate(S, {}, i.canonical) * bn : 1 / 0, - pr = () => { - i.bucket.allowVerticalPlacement && wl(be) && (j.vertical = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, St, "left", rt, ae, T.ao.vertical, !0, R, E)) - }; - if (!f && $t) { - const Vt = new Set; - if (Bt === "auto") - for (let mt = 0; mt < $t.values.length; mt += 2) Vt.add(Yp($t.values[mt])); - else Vt.add(Bt); - let Zt = !1; - for (const mt of Vt) - if (!j.horizontal[mt]) - if (Zt) j.horizontal[mt] = j.horizontal[0]; - else { - const Br = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, "center", mt, rt, ae, T.ao.horizontal, !1, R, E); - Br && (j.horizontal[mt] = Br, Zt = Br.positionedLines.length === 1) - } pr() - } else { - Bt === "auto" && (Bt = Yp(St)); - const Vt = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, St, Bt, rt, ae, T.ao.horizontal, !1, R, E); - Vt && (j.horizontal[Bt] = Vt), pr(), wl(be) && f && g && (j.vertical = hd(Z, i.glyphMap, i.glyphPositions, i.imagePositions, I, Ut, p, St, Bt, rt, ae, T.ao.vertical, !1, R, E)) - } - } - let ze = !1; - if (S.icon && S.icon.name) { - const be = i.imageMap[S.icon.name]; - be && (Y = Q0(i.imagePositions[S.icon.name], r.get("icon-offset").evaluate(S, {}, i.canonical), r.get("icon-anchor").evaluate(S, {}, i.canonical)), ze = !!be.sdf, i.bucket.sdfIcons === void 0 ? i.bucket.sdfIcons = ze : i.bucket.sdfIcons !== ze && Lt("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"), (be.pixelRatio !== i.bucket.pixelRatio || r.get("icon-rotate").constantOr(1) !== 0) && (i.bucket.iconsNeedLinear = !0)) - } - const me = H_(j.horizontal) || j.vertical; - i.bucket.iconsInText = !!me && me.iconsInText, (me || Y) && my(i.bucket, S, j, Y, i.imageMap, c, R, N, ae, ze, i.canonical, i.subdivisionGranularity) - } - i.showCollisionBoxes && i.bucket.generateCollisionDebugBuffers() - }, T.cI = Bp, T.cJ = Lp, T.cK = Rp, T.cL = Km, T.cM = Op, T.cN = class { - constructor(i) { - this._marks = { - start: [i.url, "start"].join("#"), - end: [i.url, "end"].join("#"), - measure: i.url.toString() - }, performance.mark(this._marks.start) - } - finish() { - performance.mark(this._marks.end); - let i = performance.getEntriesByName(this._marks.measure); - return i.length === 0 && (performance.measure(this._marks.measure, this._marks.start, this._marks.end), i = performance.getEntriesByName(this._marks.measure), performance.clearMarks(this._marks.start), performance.clearMarks(this._marks.end), performance.clearMeasures(this._marks.measure)), i - } - }, T.cO = function(i, t, r, a, c) { - return o(this, void 0, void 0, (function*() { - if (Ae()) try { - return yield dr(i, t, r, a, c) - } catch {} - return (function(p, f, g, v, S) { - const I = p.width, - E = p.height; - _r && Ir || (_r = new OffscreenCanvas(I, E), Ir = _r.getContext("2d", { - willReadFrequently: !0 - })), _r.width = I, _r.height = E, Ir.drawImage(p, 0, 0, I, E); - const R = Ir.getImageData(f, g, v, S); - return Ir.clearRect(0, 0, I, E), R.data - })(i, t, r, a, c) - })) - }, T.cP = Om, T.cQ = W, T.cR = Xm, T.cS = Bl, T.cT = Co, T.cU = function(i, t) { - const r = new Map; - if (i != null) - if (i.type === "Feature") r.set(mu(i, t), i); - else - for (const a of i.features) r.set(mu(a, t), a); - return r - }, T.cV = function(i, t) { - if (i == null) return !0; - if (i.type === "Feature") return mu(i, t) != null; - if (i.type === "FeatureCollection") { - const r = new Set; - for (const a of i.features) { - const c = mu(a, t); - if (c == null || r.has(c)) return !1; - r.add(c) - } - return !0 - } - return !1 - }, T.cW = function(i, t, r) { - var a, c, p, f; - if (t.removeAll && i.clear(), t.remove) - for (const g of t.remove) i.delete(g); - if (t.add) - for (const g of t.add) { - const v = mu(g, r); - v != null && i.set(v, g) - } - if (t.update) - for (const g of t.update) { - let v = i.get(g.id); - if (v == null) continue; - const S = !g.removeAllProperties && (((a = g.removeProperties) === null || a === void 0 ? void 0 : a.length) > 0 || ((c = g.addOrUpdateProperties) === null || c === void 0 ? void 0 : c.length) > 0); - if ((g.newGeometry || g.removeAllProperties || S) && (v = Object.assign({}, v), i.set(g.id, v), S && (v.properties = Object.assign({}, v.properties))), g.newGeometry && (v.geometry = g.newGeometry), g.removeAllProperties) v.properties = {}; - else if (((p = g.removeProperties) === null || p === void 0 ? void 0 : p.length) > 0) - for (const I of g.removeProperties) Object.prototype.hasOwnProperty.call(v.properties, I) && delete v.properties[I]; - if (((f = g.addOrUpdateProperties) === null || f === void 0 ? void 0 : f.length) > 0) - for (const { - key: I, - value: E - } - of g.addOrUpdateProperties) v.properties[I] = E - } - }, T.cX = Ca, T.ca = function(i, t) { - return i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15], i - }, T.cb = i => i.type === "symbol", T.cc = i => i.type === "circle", T.cd = i => i.type === "heatmap", T.ce = i => i.type === "line", T.cf = i => i.type === "fill", T.cg = i => i.type === "fill-extrusion", T.ch = i => i.type === "hillshade", T.ci = i => i.type === "color-relief", T.cj = i => i.type === "raster", T.ck = i => i.type === "background", T.cl = i => i.type === "custom", T.cm = Ct, T.cn = function(i, t, r) { - const a = _e(t.x - r.x, t.y - r.y), - c = _e(i.x - r.x, i.y - r.y); - var p, f; - return Mr(Math.atan2(a[0] * c[1] - a[1] * c[0], (p = a)[0] * (f = c)[0] + p[1] * f[1])) - }, T.co = _t, T.cp = function(i, t) { - return kr[t] && (i instanceof MouseEvent || i instanceof WheelEvent) - }, T.cq = function(i, t) { - return Ar[t] && "touches" in i - }, T.cr = function(i) { - return Ar[i] || kr[i] - }, T.cs = function(i, t, r) { - var a = t[0], - c = t[1]; - return i[0] = r[0] * a + r[4] * c + r[12], i[1] = r[1] * a + r[5] * c + r[13], i - }, T.ct = function(i, t) { - const { - x: r, - y: a - } = fu.fromLngLat(t); - return !(i < 0 || i > 25 || a < 0 || a >= 1 || r < 0 || r >= 1) - }, T.cu = function(i, t) { - return i[0] = t[0], i[1] = 0, i[2] = 0, i[3] = 0, i[4] = 0, i[5] = t[1], i[6] = 0, i[7] = 0, i[8] = 0, i[9] = 0, i[10] = t[2], i[11] = 0, i[12] = 0, i[13] = 0, i[14] = 0, i[15] = 1, i - }, T.cv = class extends Xs {}, T.cw = gy, T.cy = function(i) { - return i.message === Nr - }, T.cz = K, T.d = Le, T.e = pt, T.f = i => o(void 0, void 0, void 0, (function*() { - if (i.byteLength === 0) return createImageBitmap(new ImageData(1, 1)); - const t = new Blob([new Uint8Array(i)], { - type: "image/png" - }); - try { - return createImageBitmap(t) - } catch (r) { - throw new Error(`Could not load image because of ${r.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`) - } - })), T.g = q, T.h = i => new Promise(((t, r) => { - const a = new Image; - a.onload = () => { - t(a), URL.revokeObjectURL(a.src), a.onload = null, window.requestAnimationFrame((() => { - a.src = Ft - })) - }, a.onerror = () => r(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 c = new Blob([new Uint8Array(i)], { - type: "image/png" - }); - a.src = i.byteLength ? URL.createObjectURL(c) : Ft - })), T.i = Yt, T.j = (i, t) => ve(pt(i, { - type: "json" - }), t), T.k = Ye, T.l = ot, T.m = ve, T.n = (i, t) => ve(pt(i, { - type: "arrayBuffer" - }), t), T.o = function(i) { - return new Op(i).readFields(V0, []) - }, T.p = c_, T.q = iu, T.r = jn, T.s = jr, T.t = ed, T.u = si, T.v = xe, T.w = Lt, T.x = _p, T.y = Eo, T.z = $s - })), L("worker", ["./shared"], (function(T) { - class o { - constructor(O) { - this.keyCache = {}, O && this.replace(O) - } - replace(O) { - this._layerConfigs = {}, this._layers = {}, this.update(O, []) - } - update(O, q) { - for (const K of O) { - this._layerConfigs[K.id] = K; - const le = this._layers[K.id] = T.bJ(K); - le._featureFilter = T.aa(le.filter), this.keyCache[K.id] && delete this.keyCache[K.id] - } - for (const K of q) delete this.keyCache[K], delete this._layerConfigs[K], delete this._layers[K]; - this.familiesBySource = {}; - const G = T.cC(Object.values(this._layerConfigs), this.keyCache); - for (const K of G) { - const le = K.map((Ye => this._layers[Ye.id])), - ve = le[0]; - if (ve.visibility === "none") continue; - const Le = ve.source || ""; - let Ce = this.familiesBySource[Le]; - Ce || (Ce = this.familiesBySource[Le] = {}); - const Ze = ve.sourceLayer || "_geojsonTileLayer"; - let ot = Ce[Ze]; - ot || (ot = Ce[Ze] = []), ot.push(le) - } - } - } - class $ { - constructor(O) { - const q = {}, - G = []; - for (const Le in O) { - const Ce = O[Le], - Ze = q[Le] = {}; - for (const ot in Ce) { - const Ye = Ce[+ot]; - if (!Ye || Ye.bitmap.width === 0 || Ye.bitmap.height === 0) continue; - const Ot = { - x: 0, - y: 0, - w: Ye.bitmap.width + 2, - h: Ye.bitmap.height + 2 - }; - G.push(Ot), Ze[ot] = { - rect: Ot, - metrics: Ye.metrics - } - } - } - const { - w: K, - h: le - } = T.p(G), ve = new T.q({ - width: K || 1, - height: le || 1 - }); - for (const Le in O) { - const Ce = O[Le]; - for (const Ze in Ce) { - const ot = Ce[+Ze]; - if (!ot || ot.bitmap.width === 0 || ot.bitmap.height === 0) continue; - const Ye = q[Le][Ze].rect; - T.q.copy(ot.bitmap, ve, { - x: 0, - y: 0 - }, { - x: Ye.x + 1, - y: Ye.y + 1 - }, ot.bitmap) - } - } - this.image = ve, this.positions = q - } - } - T.cD("GlyphAtlas", $); - class W { - constructor(O) { - this.tileID = new T.Z(O.tileID.overscaledZ, O.tileID.wrap, O.tileID.canonical.z, O.tileID.canonical.x, O.tileID.canonical.y), this.uid = O.uid, this.zoom = O.zoom, this.pixelRatio = O.pixelRatio, this.tileSize = O.tileSize, this.source = O.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = O.showCollisionBoxes, this.collectResourceTiming = !!O.collectResourceTiming, this.returnDependencies = !!O.returnDependencies, this.promoteId = O.promoteId, this.inFlightDependencies = [], this.globalState = O.globalState - } - parse(O, q, G, K, le) { - return T._(this, void 0, void 0, (function*() { - this.status = "parsing", this.data = O, this.collisionBoxArray = new T.a8; - const ve = new T.cE(Object.keys(O.layers).sort()), - Le = new T.cF(this.tileID, this.promoteId); - Le.bucketLayerIDs = []; - const Ce = {}, - Ze = { - featureIndex: Le, - iconDependencies: {}, - patternDependencies: {}, - glyphDependencies: {}, - availableImages: G, - subdivisionGranularity: le - }, - ot = q.familiesBySource[this.source]; - for (const mr in ot) { - const gr = O.layers[mr]; - if (!gr) continue; - gr.version === 1 && T.w(`Vector tile source "${this.source}" layer "${mr}" does not use vector tile spec v2 and therefore may have some rendering errors.`); - const ai = ve.encode(mr), - Tt = []; - for (let Ci = 0; Ci < gr.length; Ci++) { - const di = gr.feature(Ci), - Pn = Le.getId(di, mr); - Tt.push({ - feature: di, - id: Pn, - index: Ci, - sourceLayerIndex: ai - }) - } - for (const Ci of ot[mr]) { - const di = Ci[0]; - di.source !== this.source && T.w(`layer.source = ${di.source} does not equal this.source = ${this.source}`), di.minzoom && this.zoom < Math.floor(di.minzoom) || di.maxzoom && this.zoom >= di.maxzoom || di.visibility !== "none" && (ie(Ci, this.zoom, G), (Ce[di.id] = di.createBucket({ - index: Le.bucketLayerIDs.length, - layers: Ci, - zoom: this.zoom, - pixelRatio: this.pixelRatio, - overscaling: this.overscaling, - collisionBoxArray: this.collisionBoxArray, - sourceLayerIndex: ai, - sourceID: this.source, - globalState: this.globalState - })).populate(Tt, Ze, this.tileID.canonical), Le.bucketLayerIDs.push(Ci.map((Pn => Pn.id)))) - } - } - const Ye = T.bN(Ze.glyphDependencies, (mr => Object.keys(mr).map(Number))); - this.inFlightDependencies.forEach((mr => mr == null ? void 0 : mr.abort())), this.inFlightDependencies = []; - let Ot = Promise.resolve({}); - if (Object.keys(Ye).length) { - const mr = new AbortController; - this.inFlightDependencies.push(mr), Ot = K.sendAsync({ - type: "GG", - data: { - stacks: Ye, - source: this.source, - tileID: this.tileID, - type: "glyphs" - } - }, mr) - } - const xe = Object.keys(Ze.iconDependencies); - let At = Promise.resolve({}); - if (xe.length) { - const mr = new AbortController; - this.inFlightDependencies.push(mr), At = K.sendAsync({ - type: "GI", - data: { - icons: xe, - source: this.source, - tileID: this.tileID, - type: "icons" - } - }, mr) - } - const Pt = Object.keys(Ze.patternDependencies); - let kt = Promise.resolve({}); - if (Pt.length) { - const mr = new AbortController; - this.inFlightDependencies.push(mr), kt = K.sendAsync({ - type: "GI", - data: { - icons: Pt, - source: this.source, - tileID: this.tileID, - type: "patterns" - } - }, mr) - } - const [Wt, Lr, Kr] = yield Promise.all([Ot, At, kt]), Hr = new $(Wt), $r = new T.cG(Lr, Kr); - for (const mr in Ce) { - const gr = Ce[mr]; - gr instanceof T.a9 ? (ie(gr.layers, this.zoom, G), T.cH({ - bucket: gr, - glyphMap: Wt, - glyphPositions: Hr.positions, - imageMap: Lr, - imagePositions: $r.iconPositions, - showCollisionBoxes: this.showCollisionBoxes, - canonical: this.tileID.canonical, - subdivisionGranularity: Ze.subdivisionGranularity - })) : gr.hasPattern && (gr instanceof T.cI || gr instanceof T.cJ || gr instanceof T.cK) && (ie(gr.layers, this.zoom, G), gr.addFeatures(Ze, this.tileID.canonical, $r.patternPositions)) - } - return this.status = "done", { - buckets: Object.values(Ce).filter((mr => !mr.isEmpty())), - featureIndex: Le, - collisionBoxArray: this.collisionBoxArray, - glyphAtlasImage: Hr.image, - imageAtlas: $r, - glyphMap: this.returnDependencies ? Wt : null, - iconMap: this.returnDependencies ? Lr : null, - glyphPositions: this.returnDependencies ? Hr.positions : null - } - })) - } - } - - function ie(ce, O, q) { - const G = new T.F(O); - for (const K of ce) K.recalculate(G, q) - } - class pe { - constructor(O, q, G) { - this.actor = O, this.layerIndex = q, this.availableImages = G, this.fetching = {}, this.loading = {}, this.loaded = {} - } - loadVectorTile(O, q) { - return T._(this, void 0, void 0, (function*() { - const G = yield T.n(O.request, q); - try { - return { - vectorTile: new T.cL(new T.cM(G.data)), - rawData: G.data, - cacheControl: G.cacheControl, - expires: G.expires - } - } catch (K) { - const le = new Uint8Array(G.data); - let ve = `Unable to parse the tile at ${O.request.url}, `; - throw ve += le[0] === 31 && le[1] === 139 ? "please make sure the data is not gzipped and that you have configured the relevant header in the server" : `got error: ${K.message}`, new Error(ve) - } - })) - } - loadTile(O) { - return T._(this, void 0, void 0, (function*() { - const q = O.uid, - G = !!(O && O.request && O.request.collectResourceTiming) && new T.cN(O.request), - K = new W(O); - this.loading[q] = K; - const le = new AbortController; - K.abort = le; - try { - const ve = yield this.loadVectorTile(O, le); - if (delete this.loading[q], !ve) return null; - const Le = ve.rawData, - Ce = {}; - ve.expires && (Ce.expires = ve.expires), ve.cacheControl && (Ce.cacheControl = ve.cacheControl); - const Ze = {}; - if (G) { - const Ye = G.finish(); - Ye && (Ze.resourceTiming = JSON.parse(JSON.stringify(Ye))) - } - K.vectorTile = ve.vectorTile; - const ot = K.parse(ve.vectorTile, this.layerIndex, this.availableImages, this.actor, O.subdivisionGranularity); - this.loaded[q] = K, this.fetching[q] = { - rawTileData: Le, - cacheControl: Ce, - resourceTiming: Ze - }; - try { - const Ye = yield ot; - return T.e({ - rawTileData: Le.slice(0) - }, Ye, Ce, Ze) - } finally { - delete this.fetching[q] - } - } catch (ve) { - throw delete this.loading[q], K.status = "done", this.loaded[q] = K, ve - } - })) - } - reloadTile(O) { - return T._(this, void 0, void 0, (function*() { - const q = O.uid; - if (!this.loaded || !this.loaded[q]) throw new Error("Should not be trying to reload a tile that was never loaded or has been removed"); - const G = this.loaded[q]; - if (G.showCollisionBoxes = O.showCollisionBoxes, G.globalState = O.globalState, G.status === "parsing") { - const K = yield G.parse(G.vectorTile, this.layerIndex, this.availableImages, this.actor, O.subdivisionGranularity); - let le; - if (this.fetching[q]) { - const { - rawTileData: ve, - cacheControl: Le, - resourceTiming: Ce - } = this.fetching[q]; - delete this.fetching[q], le = T.e({ - rawTileData: ve.slice(0) - }, K, Le, Ce) - } else le = K; - return le - } - if (G.status === "done" && G.vectorTile) return G.parse(G.vectorTile, this.layerIndex, this.availableImages, this.actor, O.subdivisionGranularity) - })) - } - abortTile(O) { - return T._(this, void 0, void 0, (function*() { - const q = this.loading, - G = O.uid; - q && q[G] && q[G].abort && (q[G].abort.abort(), delete q[G]) - })) - } - removeTile(O) { - return T._(this, void 0, void 0, (function*() { - this.loaded && this.loaded[O.uid] && delete this.loaded[O.uid] - })) - } - } - class ye { - constructor() { - this.loaded = {} - } - loadTile(O) { - return T._(this, void 0, void 0, (function*() { - const { - uid: q, - encoding: G, - rawImageData: K, - redFactor: le, - greenFactor: ve, - blueFactor: Le, - baseShift: Ce - } = O, Ze = K.width + 2, ot = K.height + 2, Ye = T.b(K) ? new T.R({ - width: Ze, - height: ot - }, yield T.cO(K, -1, -1, Ze, ot)) : K, Ot = new T.cP(q, Ye, G, le, ve, Le, Ce); - return this.loaded = this.loaded || {}, this.loaded[q] = Ot, Ot - })) - } - removeTile(O) { - const q = this.loaded, - G = O.uid; - q && q[G] && delete q[G] - } - } - var X, Se, we = (function() { - if (Se) return X; - - function ce(q, G) { - if (q.length !== 0) { - O(q[0], G); - for (var K = 1; K < q.length; K++) O(q[K], !G) - } - } - - function O(q, G) { - for (var K = 0, le = 0, ve = 0, Le = q.length, Ce = Le - 1; ve < Le; Ce = ve++) { - var Ze = (q[ve][0] - q[Ce][0]) * (q[Ce][1] + q[ve][1]), - ot = K + Ze; - le += Math.abs(K) >= Math.abs(Ze) ? K - ot + Ze : Ze - ot + K, K = ot - } - K + le >= 0 != !!G && q.reverse() - } - return Se = 1, X = function q(G, K) { - var le, ve = G && G.type; - if (ve === "FeatureCollection") - for (le = 0; le < G.features.length; le++) q(G.features[le], K); - else if (ve === "GeometryCollection") - for (le = 0; le < G.geometries.length; le++) q(G.geometries[le], K); - else if (ve === "Feature") q(G.geometry, K); - else if (ve === "Polygon") ce(G.coordinates, K); - else if (ve === "MultiPolygon") - for (le = 0; le < G.coordinates.length; le++) ce(G.coordinates[le], K); - return G - } - })(), - Re = T.cQ(we); - class Ae extends T.cS { - constructor(O, q) { - super(new T.cM, 0, q, [], []), this.feature = O, this.type = O.type, this.properties = O.tags ? O.tags : {}, "id" in O && (typeof O.id == "string" ? this.id = parseInt(O.id, 10) : typeof O.id != "number" || isNaN(O.id) || (this.id = O.id)) - } - loadGeometry() { - const O = [], - q = this.feature.type === 1 ? [this.feature.geometry] : this.feature.geometry; - for (const G of q) { - const K = []; - for (const le of G) K.push(new T.P(le[0], le[1])); - O.push(K) - } - return O - } - } - class Oe extends T.cR { - constructor(O, q) { - super(new T.cM), this.layers = { - _geojsonTileLayer: this - }, this.name = "_geojsonTileLayer", this.version = q ? q.version : 1, this.extent = q ? q.extent : 4096, this.length = O.length, this.features = O - } - feature(O) { - return new Ae(this.features[O], this.extent) - } - } - - function Ee(ce, O) { - O.writeVarintField(15, ce.version || 1), O.writeStringField(1, ce.name || ""), O.writeVarintField(5, ce.extent || 4096); - const q = { - keys: [], - values: [], - keycache: {}, - valuecache: {} - }; - for (let le = 0; le < ce.length; le++) q.feature = ce.feature(le), O.writeMessage(2, Ne, q); - const G = q.keys; - for (const le of G) O.writeStringField(3, le); - const K = q.values; - for (const le of K) O.writeMessage(4, Je, le) - } - - function Ne(ce, O) { - if (!ce.feature) return; - const q = ce.feature; - q.id !== void 0 && O.writeVarintField(1, q.id), O.writeMessage(2, ft, ce), O.writeVarintField(3, q.type), O.writeMessage(4, ct, q) - } - - function ft(ce, O) { - var q; - for (const G in (q = ce.feature) == null ? void 0 : q.properties) { - let K = ce.feature.properties[G], - le = ce.keycache[G]; - if (K === null) continue; - le === void 0 && (ce.keys.push(G), le = ce.keys.length - 1, ce.keycache[G] = le), O.writeVarint(le), typeof K != "string" && typeof K != "boolean" && typeof K != "number" && (K = JSON.stringify(K)); - const ve = typeof K + ":" + K; - let Le = ce.valuecache[ve]; - Le === void 0 && (ce.values.push(K), Le = ce.values.length - 1, ce.valuecache[ve] = Le), O.writeVarint(Le) - } - } - - function ht(ce, O) { - return (O << 3) + (7 & ce) - } - - function Xe(ce) { - return ce << 1 ^ ce >> 31 - } - - function ct(ce, O) { - const q = ce.loadGeometry(), - G = ce.type; - let K = 0, - le = 0; - for (const ve of q) { - let Le = 1; - G === 1 && (Le = ve.length), O.writeVarint(ht(1, Le)); - const Ce = G === 3 ? ve.length - 1 : ve.length; - for (let Ze = 0; Ze < Ce; Ze++) { - Ze === 1 && G !== 1 && O.writeVarint(ht(2, Ce - 1)); - const ot = ve[Ze].x - K, - Ye = ve[Ze].y - le; - O.writeVarint(Xe(ot)), O.writeVarint(Xe(Ye)), K += ot, le += Ye - } - ce.type === 3 && O.writeVarint(ht(7, 1)) - } - } - - function Je(ce, O) { - const q = typeof ce; - q === "string" ? O.writeStringField(1, ce) : q === "boolean" ? O.writeBooleanField(7, ce) : q === "number" && (ce % 1 != 0 ? O.writeDoubleField(3, ce) : ce < 0 ? O.writeSVarintField(6, ce) : O.writeVarintField(5, ce)) - } - const Be = { - minZoom: 0, - maxZoom: 16, - minPoints: 2, - radius: 40, - extent: 512, - nodeSize: 64, - log: !1, - generateId: !1, - reduce: null, - map: ce => ce - }, - st = Math.fround || (it = new Float32Array(1), ce => (it[0] = +ce, it[0])); - var it; - class Qe { - constructor(O) { - this.options = Object.assign(Object.create(Be), O), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [] - } - load(O) { - const { - log: q, - minZoom: G, - maxZoom: K - } = this.options; - q && console.time("total time"); - const le = `prepare ${O.length} points`; - q && console.time(le), this.points = O; - const ve = []; - for (let Ce = 0; Ce < O.length; Ce++) { - const Ze = O[Ce]; - if (!Ze.geometry) continue; - const [ot, Ye] = Ze.geometry.coordinates, Ot = st(Q(ot)), xe = st(te(Ye)); - ve.push(Ot, xe, 1 / 0, Ce, -1, 1), this.options.reduce && ve.push(0) - } - let Le = this.trees[K + 1] = this._createTree(ve); - q && console.timeEnd(le); - for (let Ce = K; Ce >= G; Ce--) { - const Ze = +Date.now(); - Le = this.trees[Ce] = this._createTree(this._cluster(Le, Ce)), q && console.log("z%d: %d clusters in %dms", Ce, Le.numItems, +Date.now() - Ze) - } - return q && console.timeEnd("total time"), this - } - getClusters(O, q) { - let G = ((O[0] + 180) % 360 + 360) % 360 - 180; - const K = Math.max(-90, Math.min(90, O[1])); - let le = O[2] === 180 ? 180 : ((O[2] + 180) % 360 + 360) % 360 - 180; - const ve = Math.max(-90, Math.min(90, O[3])); - if (O[2] - O[0] >= 360) G = -180, le = 180; - else if (G > le) { - const Ye = this.getClusters([G, K, 180, ve], q), - Ot = this.getClusters([-180, K, le, ve], q); - return Ye.concat(Ot) - } - const Le = this.trees[this._limitZoom(q)], - Ce = Le.range(Q(G), te(ve), Q(le), te(K)), - Ze = Le.data, - ot = []; - for (const Ye of Ce) { - const Ot = this.stride * Ye; - ot.push(Ze[Ot + 5] > 1 ? ke(Ze, Ot, this.clusterProps) : this.points[Ze[Ot + 3]]) - } - return ot - } - getChildren(O) { - const q = this._getOriginId(O), - G = this._getOriginZoom(O), - K = "No cluster with the specified id.", - le = this.trees[G]; - if (!le) throw new Error(K); - const ve = le.data; - if (q * this.stride >= ve.length) throw new Error(K); - const Le = this.options.radius / (this.options.extent * Math.pow(2, G - 1)), - Ce = le.within(ve[q * this.stride], ve[q * this.stride + 1], Le), - Ze = []; - for (const ot of Ce) { - const Ye = ot * this.stride; - ve[Ye + 4] === O && Ze.push(ve[Ye + 5] > 1 ? ke(ve, Ye, this.clusterProps) : this.points[ve[Ye + 3]]) - } - if (Ze.length === 0) throw new Error(K); - return Ze - } - getLeaves(O, q, G) { - const K = []; - return this._appendLeaves(K, O, q = q || 10, G = G || 0, 0), K - } - getTile(O, q, G) { - const K = this.trees[this._limitZoom(O)], - le = Math.pow(2, O), - { - extent: ve, - radius: Le - } = this.options, - Ce = Le / ve, - Ze = (G - Ce) / le, - ot = (G + 1 + Ce) / le, - Ye = { - features: [] - }; - return this._addTileFeatures(K.range((q - Ce) / le, Ze, (q + 1 + Ce) / le, ot), K.data, q, G, le, Ye), q === 0 && this._addTileFeatures(K.range(1 - Ce / le, Ze, 1, ot), K.data, le, G, le, Ye), q === le - 1 && this._addTileFeatures(K.range(0, Ze, Ce / le, ot), K.data, -1, G, le, Ye), Ye.features.length ? Ye : null - } - getClusterExpansionZoom(O) { - let q = this._getOriginZoom(O) - 1; - for (; q <= this.options.maxZoom;) { - const G = this.getChildren(O); - if (q++, G.length !== 1) break; - O = G[0].properties.cluster_id - } - return q - } - _appendLeaves(O, q, G, K, le) { - const ve = this.getChildren(q); - for (const Le of ve) { - const Ce = Le.properties; - if (Ce && Ce.cluster ? le + Ce.point_count <= K ? le += Ce.point_count : le = this._appendLeaves(O, Ce.cluster_id, G, K, le) : le < K ? le++ : O.push(Le), O.length === G) break - } - return le - } - _createTree(O) { - const q = new T.aI(O.length / this.stride | 0, this.options.nodeSize, Float32Array); - for (let G = 0; G < O.length; G += this.stride) q.add(O[G], O[G + 1]); - return q.finish(), q.data = O, q - } - _addTileFeatures(O, q, G, K, le, ve) { - for (const Le of O) { - const Ce = Le * this.stride, - Ze = q[Ce + 5] > 1; - let ot, Ye, Ot; - if (Ze) ot = vt(q, Ce, this.clusterProps), Ye = q[Ce], Ot = q[Ce + 1]; - else { - const Pt = this.points[q[Ce + 3]]; - ot = Pt.properties; - const [kt, Wt] = Pt.geometry.coordinates; - Ye = Q(kt), Ot = te(Wt) - } - const xe = { - type: 1, - geometry: [ - [Math.round(this.options.extent * (Ye * le - G)), Math.round(this.options.extent * (Ot * le - K))] - ], - tags: ot - }; - let At; - At = Ze || this.options.generateId ? q[Ce + 3] : this.points[q[Ce + 3]].id, At !== void 0 && (xe.id = At), ve.features.push(xe) - } - } - _limitZoom(O) { - return Math.max(this.options.minZoom, Math.min(Math.floor(+O), this.options.maxZoom + 1)) - } - _cluster(O, q) { - const { - radius: G, - extent: K, - reduce: le, - minPoints: ve - } = this.options, Le = G / (K * Math.pow(2, q)), Ce = O.data, Ze = [], ot = this.stride; - for (let Ye = 0; Ye < Ce.length; Ye += ot) { - if (Ce[Ye + 2] <= q) continue; - Ce[Ye + 2] = q; - const Ot = Ce[Ye], - xe = Ce[Ye + 1], - At = O.within(Ce[Ye], Ce[Ye + 1], Le), - Pt = Ce[Ye + 5]; - let kt = Pt; - for (const Wt of At) { - const Lr = Wt * ot; - Ce[Lr + 2] > q && (kt += Ce[Lr + 5]) - } - if (kt > Pt && kt >= ve) { - let Wt, Lr = Ot * Pt, - Kr = xe * Pt, - Hr = -1; - const $r = (Ye / ot << 5) + (q + 1) + this.points.length; - for (const mr of At) { - const gr = mr * ot; - if (Ce[gr + 2] <= q) continue; - Ce[gr + 2] = q; - const ai = Ce[gr + 5]; - Lr += Ce[gr] * ai, Kr += Ce[gr + 1] * ai, Ce[gr + 4] = $r, le && (Wt || (Wt = this._map(Ce, Ye, !0), Hr = this.clusterProps.length, this.clusterProps.push(Wt)), le(Wt, this._map(Ce, gr))) - } - Ce[Ye + 4] = $r, Ze.push(Lr / kt, Kr / kt, 1 / 0, $r, -1, kt), le && Ze.push(Hr) - } else { - for (let Wt = 0; Wt < ot; Wt++) Ze.push(Ce[Ye + Wt]); - if (kt > 1) - for (const Wt of At) { - const Lr = Wt * ot; - if (!(Ce[Lr + 2] <= q)) { - Ce[Lr + 2] = q; - for (let Kr = 0; Kr < ot; Kr++) Ze.push(Ce[Lr + Kr]) - } - } - } - } - return Ze - } - _getOriginId(O) { - return O - this.points.length >> 5 - } - _getOriginZoom(O) { - return (O - this.points.length) % 32 - } - _map(O, q, G) { - if (O[q + 5] > 1) { - const ve = this.clusterProps[O[q + 6]]; - return G ? Object.assign({}, ve) : ve - } - const K = this.points[O[q + 3]].properties, - le = this.options.map(K); - return G && le === K ? Object.assign({}, le) : le - } - } - - function ke(ce, O, q) { - return { - type: "Feature", - id: ce[O + 3], - properties: vt(ce, O, q), - geometry: { - type: "Point", - coordinates: [(G = ce[O], 360 * (G - .5)), _e(ce[O + 1])] - } - }; - var G - } - - function vt(ce, O, q) { - const G = ce[O + 5], - K = G >= 1e4 ? `${Math.round(G/1e3)}k` : G >= 1e3 ? Math.round(G / 100) / 10 + "k" : G, - le = ce[O + 6], - ve = le === -1 ? {} : Object.assign({}, q[le]); - return Object.assign(ve, { - cluster: !0, - cluster_id: ce[O + 3], - point_count: G, - point_count_abbreviated: K - }) - } - - function Q(ce) { - return ce / 360 + .5 - } - - function te(ce) { - const O = Math.sin(ce * Math.PI / 180), - q = .5 - .25 * Math.log((1 + O) / (1 - O)) / Math.PI; - return q < 0 ? 0 : q > 1 ? 1 : q - } - - function _e(ce) { - const O = (180 - 360 * ce) * Math.PI / 180; - return 360 * Math.atan(Math.exp(O)) / Math.PI - 90 - } - - function ne(ce, O, q, G) { - let K = G; - const le = O + (q - O >> 1); - let ve, Le = q - O; - const Ce = ce[O], - Ze = ce[O + 1], - ot = ce[q], - Ye = ce[q + 1]; - for (let Ot = O + 3; Ot < q; Ot += 3) { - const xe = Pe(ce[Ot], ce[Ot + 1], Ce, Ze, ot, Ye); - if (xe > K) ve = Ot, K = xe; - else if (xe === K) { - const At = Math.abs(Ot - le); - At < Le && (ve = Ot, Le = At) - } - } - K > G && (ve - O > 3 && ne(ce, O, ve, G), ce[ve + 2] = K, q - ve > 3 && ne(ce, ve, q, G)) - } - - function Pe(ce, O, q, G, K, le) { - let ve = K - q, - Le = le - G; - if (ve !== 0 || Le !== 0) { - const Ce = ((ce - q) * ve + (O - G) * Le) / (ve * ve + Le * Le); - Ce > 1 ? (q = K, G = le) : Ce > 0 && (q += ve * Ce, G += Le * Ce) - } - return ve = ce - q, Le = O - G, ve * ve + Le * Le - } - - function Me(ce, O, q, G) { - const K = { - id: ce ?? null, - type: O, - geometry: q, - tags: G, - minX: 1 / 0, - minY: 1 / 0, - maxX: -1 / 0, - maxY: -1 / 0 - }; - if (O === "Point" || O === "MultiPoint" || O === "LineString") at(K, q); - else if (O === "Polygon") at(K, q[0]); - else if (O === "MultiLineString") - for (const le of q) at(K, le); - else if (O === "MultiPolygon") - for (const le of q) at(K, le[0]); - return K - } - - function at(ce, O) { - for (let q = 0; q < O.length; q += 3) ce.minX = Math.min(ce.minX, O[q]), ce.minY = Math.min(ce.minY, O[q + 1]), ce.maxX = Math.max(ce.maxX, O[q]), ce.maxY = Math.max(ce.maxY, O[q + 1]) - } - - function We(ce, O, q, G) { - if (!O.geometry) return; - const K = O.geometry.coordinates; - if (K && K.length === 0) return; - const le = O.geometry.type, - ve = Math.pow(q.tolerance / ((1 << q.maxZoom) * q.extent), 2); - let Le = [], - Ce = O.id; - if (q.promoteId ? Ce = O.properties[q.promoteId] : q.generateId && (Ce = G || 0), le === "Point") Ct(K, Le); - else if (le === "MultiPoint") - for (const Ze of K) Ct(Ze, Le); - else if (le === "LineString") _t(K, Le, ve, !1); - else if (le === "MultiLineString") { - if (q.lineMetrics) { - for (const Ze of K) Le = [], _t(Ze, Le, ve, !1), ce.push(Me(Ce, "LineString", Le, O.properties)); - return - } - xt(K, Le, ve, !1) - } else if (le === "Polygon") xt(K, Le, ve, !0); - else { - if (le !== "MultiPolygon") { - if (le === "GeometryCollection") { - for (const Ze of O.geometry.geometries) We(ce, { - id: Ce, - geometry: Ze, - properties: O.properties - }, q, G); - return - } - throw new Error("Input data is not a valid GeoJSON object.") - } - for (const Ze of K) { - const ot = []; - xt(Ze, ot, ve, !0), Le.push(ot) - } - } - ce.push(Me(Ce, le, Le, O.properties)) - } - - function Ct(ce, O) { - O.push(tt(ce[0]), pt(ce[1]), 0) - } - - function _t(ce, O, q, G) { - let K, le, ve = 0; - for (let Ce = 0; Ce < ce.length; Ce++) { - const Ze = tt(ce[Ce][0]), - ot = pt(ce[Ce][1]); - O.push(Ze, ot, 0), Ce > 0 && (ve += G ? (K * ot - Ze * le) / 2 : Math.sqrt(Math.pow(Ze - K, 2) + Math.pow(ot - le, 2))), K = Ze, le = ot - } - const Le = O.length - 3; - O[2] = 1, ne(O, 0, Le, q), O[Le + 2] = 1, O.size = Math.abs(ve), O.start = 0, O.end = O.size - } - - function xt(ce, O, q, G) { - for (let K = 0; K < ce.length; K++) { - const le = []; - _t(ce[K], le, q, G), O.push(le) - } - } - - function tt(ce) { - return ce / 360 + .5 - } - - function pt(ce) { - const O = Math.sin(ce * Math.PI / 180), - q = .5 - .25 * Math.log((1 + O) / (1 - O)) / Math.PI; - return q < 0 ? 0 : q > 1 ? 1 : q - } - - function It(ce, O, q, G, K, le, ve, Le) { - if (G /= O, le >= (q /= O) && ve < G) return ce; - if (ve < q || le >= G) return null; - const Ce = []; - for (const Ze of ce) { - const ot = Ze.geometry; - let Ye = Ze.type; - const Ot = K === 0 ? Ze.minX : Ze.minY, - xe = K === 0 ? Ze.maxX : Ze.maxY; - if (Ot >= q && xe < G) { - Ce.push(Ze); - continue - } - if (xe < q || Ot >= G) continue; - let At = []; - if (Ye === "Point" || Ye === "MultiPoint") ut(ot, At, q, G, K); - else if (Ye === "LineString") bt(ot, At, q, G, K, !1, Le.lineMetrics); - else if (Ye === "MultiLineString") dt(ot, At, q, G, K, !1); - else if (Ye === "Polygon") dt(ot, At, q, G, K, !0); - else if (Ye === "MultiPolygon") - for (const Pt of ot) { - const kt = []; - dt(Pt, kt, q, G, K, !0), kt.length && At.push(kt) - } - if (At.length) { - if (Le.lineMetrics && Ye === "LineString") { - for (const Pt of At) Ce.push(Me(Ze.id, Ye, Pt, Ze.tags)); - continue - } - Ye !== "LineString" && Ye !== "MultiLineString" || (At.length === 1 ? (Ye = "LineString", At = At[0]) : Ye = "MultiLineString"), Ye !== "Point" && Ye !== "MultiPoint" || (Ye = At.length === 3 ? "Point" : "MultiPoint"), Ce.push(Me(Ze.id, Ye, At, Ze.tags)) - } - } - return Ce.length ? Ce : null - } - - function ut(ce, O, q, G, K) { - for (let le = 0; le < ce.length; le += 3) { - const ve = ce[le + K]; - ve >= q && ve <= G && Lt(O, ce[le], ce[le + 1], ce[le + 2]) - } - } - - function bt(ce, O, q, G, K, le, ve) { - let Le = wt(ce); - const Ce = K === 0 ? Xt : Yt; - let Ze, ot, Ye = ce.start; - for (let kt = 0; kt < ce.length - 3; kt += 3) { - const Wt = ce[kt], - Lr = ce[kt + 1], - Kr = ce[kt + 2], - Hr = ce[kt + 3], - $r = ce[kt + 4], - mr = K === 0 ? Wt : Lr, - gr = K === 0 ? Hr : $r; - let ai = !1; - ve && (Ze = Math.sqrt(Math.pow(Wt - Hr, 2) + Math.pow(Lr - $r, 2))), mr < q ? gr > q && (ot = Ce(Le, Wt, Lr, Hr, $r, q), ve && (Le.start = Ye + Ze * ot)) : mr > G ? gr < G && (ot = Ce(Le, Wt, Lr, Hr, $r, G), ve && (Le.start = Ye + Ze * ot)) : Lt(Le, Wt, Lr, Kr), gr < q && mr >= q && (ot = Ce(Le, Wt, Lr, Hr, $r, q), ai = !0), gr > G && mr <= G && (ot = Ce(Le, Wt, Lr, Hr, $r, G), ai = !0), !le && ai && (ve && (Le.end = Ye + Ze * ot), O.push(Le), Le = wt(ce)), ve && (Ye += Ze) - } - let Ot = ce.length - 3; - const xe = ce[Ot], - At = ce[Ot + 1], - Pt = K === 0 ? xe : At; - Pt >= q && Pt <= G && Lt(Le, xe, At, ce[Ot + 2]), Ot = Le.length - 3, le && Ot >= 3 && (Le[Ot] !== Le[0] || Le[Ot + 1] !== Le[1]) && Lt(Le, Le[0], Le[1], Le[2]), Le.length && O.push(Le) - } - - function wt(ce) { - const O = []; - return O.size = ce.size, O.start = ce.start, O.end = ce.end, O - } - - function dt(ce, O, q, G, K, le) { - for (const ve of ce) bt(ve, O, q, G, K, le, !1) - } - - function Lt(ce, O, q, G) { - ce.push(O, q, G) - } - - function Xt(ce, O, q, G, K, le) { - const ve = (le - O) / (G - O); - return Lt(ce, le, q + (K - q) * ve, 1), ve - } - - function Yt(ce, O, q, G, K, le) { - const ve = (le - q) / (K - q); - return Lt(ce, O + (G - O) * ve, le, 1), ve - } - - function nr(ce, O) { - const q = []; - for (let G = 0; G < ce.length; G++) { - const K = ce[G], - le = K.type; - let ve; - if (le === "Point" || le === "MultiPoint" || le === "LineString") ve = ar(K.geometry, O); - else if (le === "MultiLineString" || le === "Polygon") { - ve = []; - for (const Le of K.geometry) ve.push(ar(Le, O)) - } else if (le === "MultiPolygon") { - ve = []; - for (const Le of K.geometry) { - const Ce = []; - for (const Ze of Le) Ce.push(ar(Ze, O)); - ve.push(Ce) - } - } - q.push(Me(K.id, le, ve, K.tags)) - } - return q - } - - function ar(ce, O) { - const q = []; - q.size = ce.size, ce.start !== void 0 && (q.start = ce.start, q.end = ce.end); - for (let G = 0; G < ce.length; G += 3) q.push(ce[G] + O, ce[G + 1], ce[G + 2]); - return q - } - - function Ft(ce, O) { - if (ce.transformed) return ce; - const q = 1 << ce.z, - G = ce.x, - K = ce.y; - for (const le of ce.features) { - const ve = le.geometry, - Le = le.type; - if (le.geometry = [], Le === 1) - for (let Ce = 0; Ce < ve.length; Ce += 2) le.geometry.push(dr(ve[Ce], ve[Ce + 1], O, q, G, K)); - else - for (let Ce = 0; Ce < ve.length; Ce++) { - const Ze = []; - for (let ot = 0; ot < ve[Ce].length; ot += 2) Ze.push(dr(ve[Ce][ot], ve[Ce][ot + 1], O, q, G, K)); - le.geometry.push(Ze) - } - } - return ce.transformed = !0, ce - } - - function dr(ce, O, q, G, K, le) { - return [Math.round(q * (ce * G - K)), Math.round(q * (O * G - le))] - } - - function _r(ce, O, q, G, K) { - const le = O === K.maxZoom ? 0 : K.tolerance / ((1 << O) * K.extent), - ve = { - features: [], - numPoints: 0, - numSimplified: 0, - numFeatures: ce.length, - source: null, - x: q, - y: G, - z: O, - transformed: !1, - minX: 2, - minY: 1, - maxX: -1, - maxY: 0 - }; - for (const Le of ce) Ir(ve, Le, le, K); - return ve - } - - function Ir(ce, O, q, G) { - const K = O.geometry, - le = O.type, - ve = []; - if (ce.minX = Math.min(ce.minX, O.minX), ce.minY = Math.min(ce.minY, O.minY), ce.maxX = Math.max(ce.maxX, O.maxX), ce.maxY = Math.max(ce.maxY, O.maxY), le === "Point" || le === "MultiPoint") - for (let Le = 0; Le < K.length; Le += 3) ve.push(K[Le], K[Le + 1]), ce.numPoints++, ce.numSimplified++; - else if (le === "LineString") jr(ve, K, ce, q, !1, !1); - else if (le === "MultiLineString" || le === "Polygon") - for (let Le = 0; Le < K.length; Le++) jr(ve, K[Le], ce, q, le === "Polygon", Le === 0); - else if (le === "MultiPolygon") - for (let Le = 0; Le < K.length; Le++) { - const Ce = K[Le]; - for (let Ze = 0; Ze < Ce.length; Ze++) jr(ve, Ce[Ze], ce, q, !0, Ze === 0) - } - if (ve.length) { - let Le = O.tags || null; - if (le === "LineString" && G.lineMetrics) { - Le = {}; - for (const Ze in O.tags) Le[Ze] = O.tags[Ze]; - Le.mapbox_clip_start = K.start / K.size, Le.mapbox_clip_end = K.end / K.size - } - const Ce = { - geometry: ve, - type: le === "Polygon" || le === "MultiPolygon" ? 3 : le === "LineString" || le === "MultiLineString" ? 2 : 1, - tags: Le - }; - O.id !== null && (Ce.id = O.id), ce.features.push(Ce) - } - } - - function jr(ce, O, q, G, K, le) { - const ve = G * G; - if (G > 0 && O.size < (K ? ve : G)) return void(q.numPoints += O.length / 3); - const Le = []; - for (let Ce = 0; Ce < O.length; Ce += 3)(G === 0 || O[Ce + 2] > ve) && (q.numSimplified++, Le.push(O[Ce], O[Ce + 1])), q.numPoints++; - K && (function(Ce, Ze) { - let ot = 0; - for (let Ye = 0, Ot = Ce.length, xe = Ot - 2; Ye < Ot; xe = Ye, Ye += 2) ot += (Ce[Ye] - Ce[xe]) * (Ce[Ye + 1] + Ce[xe + 1]); - if (ot > 0 === Ze) - for (let Ye = 0, Ot = Ce.length; Ye < Ot / 2; Ye += 2) { - const xe = Ce[Ye], - At = Ce[Ye + 1]; - Ce[Ye] = Ce[Ot - 2 - Ye], Ce[Ye + 1] = Ce[Ot - 1 - Ye], Ce[Ot - 2 - Ye] = xe, Ce[Ot - 1 - Ye] = At - } - })(Le, le), ce.push(Le) - } - const ur = { - maxZoom: 14, - indexMaxZoom: 5, - indexMaxPoints: 1e5, - tolerance: 3, - extent: 4096, - buffer: 64, - lineMetrics: !1, - promoteId: null, - generateId: !1, - debug: 0 - }; - class Mr { - constructor(O, q) { - const G = (q = this.options = (function(le, ve) { - for (const Le in ve) le[Le] = ve[Le]; - return le - })(Object.create(ur), q)).debug; - if (G && console.time("preprocess data"), q.maxZoom < 0 || q.maxZoom > 24) 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."); - let K = (function(le, ve) { - const Le = []; - if (le.type === "FeatureCollection") - for (let Ce = 0; Ce < le.features.length; Ce++) We(Le, le.features[Ce], ve, Ce); - else We(Le, le.type === "Feature" ? le : { - geometry: le - }, ve); - return Le - })(O, q); - this.tiles = {}, this.tileCoords = [], G && (console.timeEnd("preprocess data"), console.log("index: maxZoom: %d, maxPoints: %d", q.indexMaxZoom, q.indexMaxPoints), console.time("generate tiles"), this.stats = {}, this.total = 0), K = (function(le, ve) { - const Le = ve.buffer / ve.extent; - let Ce = le; - const Ze = It(le, 1, -1 - Le, Le, 0, -1, 2, ve), - ot = It(le, 1, 1 - Le, 2 + Le, 0, -1, 2, ve); - return (Ze || ot) && (Ce = It(le, 1, -Le, 1 + Le, 0, -1, 2, ve) || [], Ze && (Ce = nr(Ze, 1).concat(Ce)), ot && (Ce = Ce.concat(nr(ot, -1)))), Ce - })(K, q), K.length && this.splitTile(K, 0, 0, 0), G && (K.length && console.log("features: %d, points: %d", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd("generate tiles"), console.log("tiles generated:", this.total, JSON.stringify(this.stats))) - } - splitTile(O, q, G, K, le, ve, Le) { - const Ce = [O, q, G, K], - Ze = this.options, - ot = Ze.debug; - for (; Ce.length;) { - K = Ce.pop(), G = Ce.pop(), q = Ce.pop(), O = Ce.pop(); - const Ye = 1 << q, - Ot = Ar(q, G, K); - let xe = this.tiles[Ot]; - if (!xe && (ot > 1 && console.time("creation"), xe = this.tiles[Ot] = _r(O, q, G, K, Ze), this.tileCoords.push({ - z: q, - x: G, - y: K - }), ot)) { - ot > 1 && (console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", q, G, K, xe.numFeatures, xe.numPoints, xe.numSimplified), console.timeEnd("creation")); - const ai = `z${q}`; - this.stats[ai] = (this.stats[ai] || 0) + 1, this.total++ - } - if (xe.source = O, le == null) { - if (q === Ze.indexMaxZoom || xe.numPoints <= Ze.indexMaxPoints) continue - } else { - if (q === Ze.maxZoom || q === le) continue; - if (le != null) { - const ai = le - q; - if (G !== ve >> ai || K !== Le >> ai) continue - } - } - if (xe.source = null, O.length === 0) continue; - ot > 1 && console.time("clipping"); - const At = .5 * Ze.buffer / Ze.extent, - Pt = .5 - At, - kt = .5 + At, - Wt = 1 + At; - let Lr = null, - Kr = null, - Hr = null, - $r = null, - mr = It(O, Ye, G - At, G + kt, 0, xe.minX, xe.maxX, Ze), - gr = It(O, Ye, G + Pt, G + Wt, 0, xe.minX, xe.maxX, Ze); - O = null, mr && (Lr = It(mr, Ye, K - At, K + kt, 1, xe.minY, xe.maxY, Ze), Kr = It(mr, Ye, K + Pt, K + Wt, 1, xe.minY, xe.maxY, Ze), mr = null), gr && (Hr = It(gr, Ye, K - At, K + kt, 1, xe.minY, xe.maxY, Ze), $r = It(gr, Ye, K + Pt, K + Wt, 1, xe.minY, xe.maxY, Ze), gr = null), ot > 1 && console.timeEnd("clipping"), Ce.push(Lr || [], q + 1, 2 * G, 2 * K), Ce.push(Kr || [], q + 1, 2 * G, 2 * K + 1), Ce.push(Hr || [], q + 1, 2 * G + 1, 2 * K), Ce.push($r || [], q + 1, 2 * G + 1, 2 * K + 1) - } - } - getTile(O, q, G) { - O = +O, q = +q, G = +G; - const K = this.options, - { - extent: le, - debug: ve - } = K; - if (O < 0 || O > 24) return null; - const Le = 1 << O, - Ce = Ar(O, q = q + Le & Le - 1, G); - if (this.tiles[Ce]) return Ft(this.tiles[Ce], le); - ve > 1 && console.log("drilling down to z%d-%d-%d", O, q, G); - let Ze, ot = O, - Ye = q, - Ot = G; - for (; !Ze && ot > 0;) ot--, Ye >>= 1, Ot >>= 1, Ze = this.tiles[Ar(ot, Ye, Ot)]; - return Ze && Ze.source ? (ve > 1 && (console.log("found parent tile z%d-%d-%d", ot, Ye, Ot), console.time("drilling down")), this.splitTile(Ze.source, ot, Ye, Ot, O, q, G), ve > 1 && console.timeEnd("drilling down"), this.tiles[Ce] ? Ft(this.tiles[Ce], le) : null) : null - } - } - - function Ar(ce, O, q) { - return 32 * ((1 << ce) * q + O) + ce - } - class kr extends pe { - constructor() { - super(...arguments), this._dataUpdateable = new Map - } - loadVectorTile(O, q) { - return T._(this, void 0, void 0, (function*() { - const G = O.tileID.canonical; - if (!this._geoJSONIndex) throw new Error("Unable to parse the data into a cluster or geojson"); - const K = this._geoJSONIndex.getTile(G.z, G.x, G.y); - if (!K) return null; - const le = new Oe(K.features, { - version: 2, - extent: T.$ - }); - let ve = (function(Le) { - const Ce = new T.cM; - return (function(Ze, ot) { - for (const Ye in Ze.layers) ot.writeMessage(3, Ee, Ze.layers[Ye]) - })(Le, Ce), Ce.finish() - })(le); - return ve.byteOffset === 0 && ve.byteLength === ve.buffer.byteLength || (ve = new Uint8Array(ve)), { - vectorTile: le, - rawData: ve.buffer - } - })) - } - loadData(O) { - return T._(this, void 0, void 0, (function*() { - var q; - (q = this._pendingRequest) === null || q === void 0 || q.abort(); - const G = !!(O && O.request && O.request.collectResourceTiming) && new T.cN(O.request); - this._pendingRequest = new AbortController; - try { - this._pendingData = this.loadAndProcessGeoJSON(O, this._pendingRequest); - const K = yield this._pendingData; - this._geoJSONIndex = O.cluster ? new Qe((function({ - superclusterOptions: ve, - clusterProperties: Le - }) { - if (!Le || !ve) return ve; - const Ce = {}, - Ze = {}, - ot = { - accumulated: null, - zoom: 0 - }, - Ye = { - properties: null - }, - Ot = Object.keys(Le); - for (const xe of Ot) { - const [At, Pt] = Le[xe], kt = T.cT(Pt), Wt = T.cT(typeof At == "string" ? [At, ["accumulated"], - ["get", xe] - ] : At); - Ce[xe] = kt.value, Ze[xe] = Wt.value - } - return ve.map = xe => { - Ye.properties = xe; - const At = {}; - for (const Pt of Ot) At[Pt] = Ce[Pt].evaluate(ot, Ye); - return At - }, ve.reduce = (xe, At) => { - Ye.properties = At; - for (const Pt of Ot) ot.accumulated = xe[Pt], xe[Pt] = Ze[Pt].evaluate(ot, Ye) - }, ve - })(O)).load(K.features) : (function(ve, Le) { - return new Mr(ve, Le) - })(K, O.geojsonVtOptions), this.loaded = {}; - const le = { - data: K - }; - if (G) { - const ve = G.finish(); - ve && (le.resourceTiming = {}, le.resourceTiming[O.source] = JSON.parse(JSON.stringify(ve))) - } - return le - } catch (K) { - if (delete this._pendingRequest, T.cy(K)) return { - abandoned: !0 - }; - throw K - } - })) - } - getData() { - return T._(this, void 0, void 0, (function*() { - return this._pendingData - })) - } - reloadTile(O) { - const q = this.loaded; - return q && q[O.uid] ? super.reloadTile(O) : this.loadTile(O) - } - loadAndProcessGeoJSON(O, q) { - return T._(this, void 0, void 0, (function*() { - let G = yield this.loadGeoJSON(O, q); - if (delete this._pendingRequest, typeof G != "object") throw new Error(`Input data given to '${O.source}' is not a valid GeoJSON object.`); - if (Re(G, !0), O.filter) { - const K = T.cT(O.filter, { - type: "boolean", - "property-type": "data-driven", - overridable: !1, - transition: !1 - }); - if (K.result === "error") throw new Error(K.value.map((ve => `${ve.key}: ${ve.message}`)).join(", ")); - G = { - type: "FeatureCollection", - features: G.features.filter((ve => K.value.evaluate({ - zoom: 0 - }, ve))) - } - } - return G - })) - } - loadGeoJSON(O, q) { - return T._(this, void 0, void 0, (function*() { - const { - promoteId: G - } = O; - if (O.request) { - const K = yield T.j(O.request, q); - return this._dataUpdateable = T.cV(K.data, G) ? T.cU(K.data, G) : void 0, K.data - } - if (typeof O.data == "string") try { - const K = JSON.parse(O.data); - return this._dataUpdateable = T.cV(K, G) ? T.cU(K, G) : void 0, K - } catch { - throw new Error(`Input data given to '${O.source}' is not a valid GeoJSON object.`) - } - if (!O.dataDiff) throw new Error(`Input data given to '${O.source}' is not a valid GeoJSON object.`); - if (!this._dataUpdateable) throw new Error(`Cannot update existing geojson data in ${O.source}`); - return T.cW(this._dataUpdateable, O.dataDiff, G), { - type: "FeatureCollection", - features: Array.from(this._dataUpdateable.values()) - } - })) - } - removeSource(O) { - return T._(this, void 0, void 0, (function*() { - this._pendingRequest && this._pendingRequest.abort() - })) - } - getClusterExpansionZoom(O) { - return this._geoJSONIndex.getClusterExpansionZoom(O.clusterId) - } - getClusterChildren(O) { - return this._geoJSONIndex.getChildren(O.clusterId) - } - getClusterLeaves(O) { - return this._geoJSONIndex.getLeaves(O.clusterId, O.limit, O.offset) - } - } - class Nr { - constructor(O) { - this.self = O, this.actor = new T.J(O), this.layerIndexes = {}, this.availableImages = {}, this.workerSources = {}, this.demWorkerSources = {}, this.externalWorkerSourceTypes = {}, this.self.registerWorkerSource = (q, G) => { - if (this.externalWorkerSourceTypes[q]) throw new Error(`Worker source with name "${q}" already registered.`); - this.externalWorkerSourceTypes[q] = G - }, this.self.addProtocol = T.cA, this.self.removeProtocol = T.cB, this.self.registerRTLTextPlugin = q => { - T.cX.setMethods(q) - }, this.actor.registerMessageHandler("LDT", ((q, G) => this._getDEMWorkerSource(q, G.source).loadTile(G))), this.actor.registerMessageHandler("RDT", ((q, G) => T._(this, void 0, void 0, (function*() { - this._getDEMWorkerSource(q, G.source).removeTile(G) - })))), this.actor.registerMessageHandler("GCEZ", ((q, G) => T._(this, void 0, void 0, (function*() { - return this._getWorkerSource(q, G.type, G.source).getClusterExpansionZoom(G) - })))), this.actor.registerMessageHandler("GCC", ((q, G) => T._(this, void 0, void 0, (function*() { - return this._getWorkerSource(q, G.type, G.source).getClusterChildren(G) - })))), this.actor.registerMessageHandler("GCL", ((q, G) => T._(this, void 0, void 0, (function*() { - return this._getWorkerSource(q, G.type, G.source).getClusterLeaves(G) - })))), this.actor.registerMessageHandler("LD", ((q, G) => this._getWorkerSource(q, G.type, G.source).loadData(G))), this.actor.registerMessageHandler("GD", ((q, G) => this._getWorkerSource(q, G.type, G.source).getData())), this.actor.registerMessageHandler("LT", ((q, G) => this._getWorkerSource(q, G.type, G.source).loadTile(G))), this.actor.registerMessageHandler("RT", ((q, G) => this._getWorkerSource(q, G.type, G.source).reloadTile(G))), this.actor.registerMessageHandler("AT", ((q, G) => this._getWorkerSource(q, G.type, G.source).abortTile(G))), this.actor.registerMessageHandler("RMT", ((q, G) => this._getWorkerSource(q, G.type, G.source).removeTile(G))), this.actor.registerMessageHandler("RS", ((q, G) => T._(this, void 0, void 0, (function*() { - if (!this.workerSources[q] || !this.workerSources[q][G.type] || !this.workerSources[q][G.type][G.source]) return; - const K = this.workerSources[q][G.type][G.source]; - delete this.workerSources[q][G.type][G.source], K.removeSource !== void 0 && K.removeSource(G) - })))), this.actor.registerMessageHandler("RM", (q => T._(this, void 0, void 0, (function*() { - delete this.layerIndexes[q], delete this.availableImages[q], delete this.workerSources[q], delete this.demWorkerSources[q] - })))), this.actor.registerMessageHandler("SR", ((q, G) => T._(this, void 0, void 0, (function*() { - this.referrer = G - })))), this.actor.registerMessageHandler("SRPS", ((q, G) => this._syncRTLPluginState(q, G))), this.actor.registerMessageHandler("IS", ((q, G) => T._(this, void 0, void 0, (function*() { - this.self.importScripts(G) - })))), this.actor.registerMessageHandler("SI", ((q, G) => this._setImages(q, G))), this.actor.registerMessageHandler("UL", ((q, G) => T._(this, void 0, void 0, (function*() { - this._getLayerIndex(q).update(G.layers, G.removedIds) - })))), this.actor.registerMessageHandler("SL", ((q, G) => T._(this, void 0, void 0, (function*() { - this._getLayerIndex(q).replace(G) - })))) - } - _setImages(O, q) { - return T._(this, void 0, void 0, (function*() { - this.availableImages[O] = q; - for (const G in this.workerSources[O]) { - const K = this.workerSources[O][G]; - for (const le in K) K[le].availableImages = q - } - })) - } - _syncRTLPluginState(O, q) { - return T._(this, void 0, void 0, (function*() { - return yield T.cX.syncState(q, this.self.importScripts) - })) - } - _getAvailableImages(O) { - let q = this.availableImages[O]; - return q || (q = []), q - } - _getLayerIndex(O) { - let q = this.layerIndexes[O]; - return q || (q = this.layerIndexes[O] = new o), q - } - _getWorkerSource(O, q, G) { - if (this.workerSources[O] || (this.workerSources[O] = {}), this.workerSources[O][q] || (this.workerSources[O][q] = {}), !this.workerSources[O][q][G]) { - const K = { - sendAsync: (le, ve) => (le.targetMapId = O, this.actor.sendAsync(le, ve)) - }; - switch (q) { - case "vector": - this.workerSources[O][q][G] = new pe(K, this._getLayerIndex(O), this._getAvailableImages(O)); - break; - case "geojson": - this.workerSources[O][q][G] = new kr(K, this._getLayerIndex(O), this._getAvailableImages(O)); - break; - default: - this.workerSources[O][q][G] = new this.externalWorkerSourceTypes[q](K, this._getLayerIndex(O), this._getAvailableImages(O)) - } - } - return this.workerSources[O][q][G] - } - _getDEMWorkerSource(O, q) { - return this.demWorkerSources[O] || (this.demWorkerSources[O] = {}), this.demWorkerSources[O][q] || (this.demWorkerSources[O][q] = new ye), this.demWorkerSources[O][q] - } - } - return T.i(self) && (self.worker = new Nr(self)), Nr - })), L("index", ["exports", "./shared"], (function(T, o) { - var $ = "5.6.2"; - - function W() { - var h = new o.A(4); - return o.A != Float32Array && (h[1] = 0, h[2] = 0), h[0] = 1, h[3] = 1, h - } - let ie, pe; - const ye = { - now: typeof performance < "u" && performance && performance.now ? performance.now.bind(performance) : Date.now.bind(Date), - frame(h, e, n) { - const s = requestAnimationFrame((d => { - u(), e(d) - })), - { - unsubscribe: u - } = o.s(h.signal, "abort", (() => { - u(), cancelAnimationFrame(s), n(o.c()) - }), !1) - }, - frameAsync(h) { - return new Promise(((e, n) => { - this.frame(h, e, n) - })) - }, - getImageData(h, e = 0) { - return this.getImageCanvasContext(h).getImageData(-e, -e, h.width + 2 * e, h.height + 2 * e) - }, - getImageCanvasContext(h) { - const e = window.document.createElement("canvas"), - n = e.getContext("2d", { - willReadFrequently: !0 - }); - if (!n) throw new Error("failed to create canvas 2d context"); - return e.width = h.width, e.height = h.height, n.drawImage(h, 0, 0, h.width, h.height), n - }, - resolveURL: h => (ie || (ie = document.createElement("a")), ie.href = h, ie.href), - hardwareConcurrency: typeof navigator < "u" && navigator.hardwareConcurrency || 4, - get prefersReducedMotion() { - return !!matchMedia && (pe == null && (pe = matchMedia("(prefers-reduced-motion: reduce)")), pe.matches) - } - }; - class X { - static testProp(e) { - if (!X.docStyle) return e[0]; - for (let n = 0; n < e.length; n++) - if (e[n] in X.docStyle) return e[n]; - return e[0] - } - static create(e, n, s) { - const u = window.document.createElement(e); - return n !== void 0 && (u.className = n), s && s.appendChild(u), u - } - static createNS(e, n) { - return window.document.createElementNS(e, n) - } - static disableDrag() { - X.docStyle && X.selectProp && (X.userSelect = X.docStyle[X.selectProp], X.docStyle[X.selectProp] = "none") - } - static enableDrag() { - X.docStyle && X.selectProp && (X.docStyle[X.selectProp] = X.userSelect) - } - static setTransform(e, n) { - e.style[X.transformProp] = n - } - static addEventListener(e, n, s, u = {}) { - e.addEventListener(n, s, "passive" in u ? u : u.capture) - } - static removeEventListener(e, n, s, u = {}) { - e.removeEventListener(n, s, "passive" in u ? u : u.capture) - } - static suppressClickInternal(e) { - e.preventDefault(), e.stopPropagation(), window.removeEventListener("click", X.suppressClickInternal, !0) - } - static suppressClick() { - window.addEventListener("click", X.suppressClickInternal, !0), window.setTimeout((() => { - window.removeEventListener("click", X.suppressClickInternal, !0) - }), 0) - } - static getScale(e) { - const n = e.getBoundingClientRect(); - return { - x: n.width / e.offsetWidth || 1, - y: n.height / e.offsetHeight || 1, - boundingClientRect: n - } - } - static getPoint(e, n, s) { - const u = n.boundingClientRect; - return new o.P((s.clientX - u.left) / n.x - e.clientLeft, (s.clientY - u.top) / n.y - e.clientTop) - } - static mousePos(e, n) { - const s = X.getScale(e); - return X.getPoint(e, s, n) - } - static touchPos(e, n) { - const s = [], - u = X.getScale(e); - for (let d = 0; d < n.length; d++) s.push(X.getPoint(e, u, n[d])); - return s - } - static mouseButton(e) { - return e.button - } - static remove(e) { - e.parentNode && e.parentNode.removeChild(e) - } - static sanitize(e) { - const n = new DOMParser().parseFromString(e, "text/html").body || document.createElement("body"), - s = n.querySelectorAll("script"); - for (const u of s) u.remove(); - return X.clean(n), n.innerHTML - } - static isPossiblyDangerous(e, n) { - const s = n.replace(/\s+/g, "").toLowerCase(); - return !(!["src", "href", "xlink:href"].includes(e) || !s.includes("javascript:") && !s.includes("data:")) || !!e.startsWith("on") || void 0 - } - static clean(e) { - const n = e.children; - for (const s of n) X.removeAttributes(s), X.clean(s) - } - static removeAttributes(e) { - for (const { - name: n, - value: s - } - of e.attributes) X.isPossiblyDangerous(n, s) && e.removeAttribute(n) - } - } - X.docStyle = typeof window < "u" && window.document && window.document.documentElement.style, X.selectProp = X.testProp(["userSelect", "MozUserSelect", "WebkitUserSelect", "msUserSelect"]), X.transformProp = X.testProp(["transform", "WebkitTransform"]); - const Se = { - supported: !1, - testSupport: function(h) { - !Ae && Re && (Oe ? Ee(h) : we = h) - } - }; - let we, Re, Ae = !1, - Oe = !1; - - function Ee(h) { - const e = h.createTexture(); - h.bindTexture(h.TEXTURE_2D, e); - try { - if (h.texImage2D(h.TEXTURE_2D, 0, h.RGBA, h.RGBA, h.UNSIGNED_BYTE, Re), h.isContextLost()) return; - Se.supported = !0 - } catch {} - h.deleteTexture(e), Ae = !0 - } - var Ne; - typeof document < "u" && (Re = document.createElement("img"), Re.onload = () => { - we && Ee(we), we = null, Oe = !0 - }, Re.onerror = () => { - Ae = !0, we = null - }, Re.src = "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="), (function(h) { - let e, n, s, u; - h.resetRequestQueue = () => { - e = [], n = 0, s = 0, u = {} - }, h.addThrottleControl = w => { - const P = s++; - return u[P] = w, P - }, h.removeThrottleControl = w => { - delete u[w], m() - }, h.getImage = (w, P, M = !0) => new Promise(((D, z) => { - Se.supported && (w.headers || (w.headers = {}), w.headers.accept = "image/webp,*/*"), o.e(w, { - type: "image" - }), e.push({ - abortController: P, - requestParameters: w, - supportImageRefresh: M, - state: "queued", - onError: B => { - z(B) - }, - onSuccess: B => { - D(B) - } - }), m() - })); - const d = w => o._(this, void 0, void 0, (function*() { - w.state = "running"; - const { - requestParameters: P, - supportImageRefresh: M, - onError: D, - onSuccess: z, - abortController: B - } = w, U = M === !1 && !o.i(self) && !o.g(P.url) && (!P.headers || Object.keys(P.headers).reduce(((re, se) => re && se === "accept"), !0)); - n++; - const ee = U ? y(P, B) : o.m(P, B); - try { - const re = yield ee; - delete w.abortController, w.state = "completed", re.data instanceof HTMLImageElement || o.b(re.data) ? z(re) : re.data && z({ - data: yield(J = re.data, typeof createImageBitmap == "function" ? o.f(J) : o.h(J)), - cacheControl: re.cacheControl, - expires: re.expires - }) - } catch (re) { - delete w.abortController, D(re) - } finally { - n--, m() - } - var J - })), - m = () => { - const w = (() => { - for (const P of Object.keys(u)) - if (u[P]()) return !0; - return !1 - })() ? o.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME : o.a.MAX_PARALLEL_IMAGE_REQUESTS; - for (let P = n; P < w && e.length > 0; P++) { - const M = e.shift(); - M.abortController.signal.aborted ? P-- : d(M) - } - }, - y = (w, P) => new Promise(((M, D) => { - const z = new Image, - B = w.url, - U = w.credentials; - U && U === "include" ? z.crossOrigin = "use-credentials" : (U && U === "same-origin" || !o.d(B)) && (z.crossOrigin = "anonymous"), P.signal.addEventListener("abort", (() => { - z.src = "", D(o.c()) - })), z.fetchPriority = "high", z.onload = () => { - z.onerror = z.onload = null, M({ - data: z - }) - }, z.onerror = () => { - z.onerror = z.onload = null, P.signal.aborted || D(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.")) - }, z.src = B - })) - })(Ne || (Ne = {})), Ne.resetRequestQueue(); - class ft { - constructor(e) { - this._transformRequestFn = e ?? null - } - transformRequest(e, n) { - return this._transformRequestFn && this._transformRequestFn(e, n) || { - url: e - } - } - setTransformRequest(e) { - this._transformRequestFn = e - } - } - - function ht(h) { - const e = []; - if (typeof h == "string") e.push({ - id: "default", - url: h - }); - else if (h && h.length > 0) { - const n = []; - for (const { - id: s, - url: u - } - of h) { - const d = `${s}${u}`; - n.indexOf(d) === -1 && (n.push(d), e.push({ - id: s, - url: u - })) - } - } - return e - } - - function Xe(h, e, n) { - try { - const s = new URL(h); - return s.pathname += `${e}${n}`, s.toString() - } catch { - throw new Error(`Invalid sprite URL "${h}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`) - } - } - - function ct(h) { - const { - userImage: e - } = h; - return !!(e && e.render && e.render()) && (h.data.replace(new Uint8Array(e.data.buffer)), !0) - } - class Je extends o.E { - constructor() { - super(), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = !1, this.requestors = [], this.patterns = {}, this.atlasImage = new o.R({ - width: 1, - height: 1 - }), this.dirty = !0 - } - isLoaded() { - return this.loaded - } - setLoaded(e) { - if (this.loaded !== e && (this.loaded = e, e)) { - for (const { - ids: n, - promiseResolve: s - } - of this.requestors) s(this._getImagesForIds(n)); - this.requestors = [] - } - } - getImage(e) { - const n = this.images[e]; - if (n && !n.data && n.spriteData) { - const s = n.spriteData; - n.data = new o.R({ - width: s.width, - height: s.height - }, s.context.getImageData(s.x, s.y, s.width, s.height).data), n.spriteData = null - } - return n - } - addImage(e, n) { - if (this.images[e]) throw new Error(`Image id ${e} already exist, use updateImage instead`); - this._validate(e, n) && (this.images[e] = n) - } - _validate(e, n) { - let s = !0; - const u = n.data || n.spriteData; - return this._validateStretch(n.stretchX, u && u.width) || (this.fire(new o.k(new Error(`Image "${e}" has invalid "stretchX" value`))), s = !1), this._validateStretch(n.stretchY, u && u.height) || (this.fire(new o.k(new Error(`Image "${e}" has invalid "stretchY" value`))), s = !1), this._validateContent(n.content, n) || (this.fire(new o.k(new Error(`Image "${e}" has invalid "content" value`))), s = !1), s - } - _validateStretch(e, n) { - if (!e) return !0; - let s = 0; - for (const u of e) { - if (u[0] < s || u[1] < u[0] || n < u[1]) return !1; - s = u[1] - } - return !0 - } - _validateContent(e, n) { - if (!e) return !0; - if (e.length !== 4) return !1; - const s = n.spriteData, - u = s && s.width || n.data.width, - d = s && s.height || n.data.height; - return !(e[0] < 0 || u < e[0] || e[1] < 0 || d < e[1] || e[2] < 0 || u < e[2] || e[3] < 0 || d < e[3] || e[2] < e[0] || e[3] < e[1]) - } - updateImage(e, n, s = !0) { - const u = this.getImage(e); - if (s && (u.data.width !== n.data.width || u.data.height !== n.data.height)) throw new Error(`size mismatch between old image (${u.data.width}x${u.data.height}) and new image (${n.data.width}x${n.data.height}).`); - n.version = u.version + 1, this.images[e] = n, this.updatedImages[e] = !0 - } - removeImage(e) { - const n = this.images[e]; - delete this.images[e], delete this.patterns[e], n.userImage && n.userImage.onRemove && n.userImage.onRemove() - } - listImages() { - return Object.keys(this.images) - } - getImages(e) { - return new Promise(((n, s) => { - let u = !0; - if (!this.isLoaded()) - for (const d of e) this.images[d] || (u = !1); - this.isLoaded() || u ? n(this._getImagesForIds(e)) : this.requestors.push({ - ids: e, - promiseResolve: n - }) - })) - } - _getImagesForIds(e) { - const n = {}; - for (const s of e) { - let u = this.getImage(s); - u || (this.fire(new o.l("styleimagemissing", { - id: s - })), u = this.getImage(s)), u ? n[s] = { - data: u.data.clone(), - pixelRatio: u.pixelRatio, - sdf: u.sdf, - version: u.version, - stretchX: u.stretchX, - stretchY: u.stretchY, - content: u.content, - textFitWidth: u.textFitWidth, - textFitHeight: u.textFitHeight, - hasRenderCallback: !!(u.userImage && u.userImage.render) - } : o.w(`Image "${s}" 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 n - } - getPixelSize() { - const { - width: e, - height: n - } = this.atlasImage; - return { - width: e, - height: n - } - } - getPattern(e) { - const n = this.patterns[e], - s = this.getImage(e); - if (!s) return null; - if (n && n.position.version === s.version) return n.position; - if (n) n.position.version = s.version; - else { - const u = { - w: s.data.width + 2, - h: s.data.height + 2, - x: 0, - y: 0 - }, - d = new o.I(u, s); - this.patterns[e] = { - bin: u, - position: d - } - } - return this._updatePatternAtlas(), this.patterns[e].position - } - bind(e) { - const n = e.gl; - this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = !1) : this.atlasTexture = new o.T(e, this.atlasImage, n.RGBA), this.atlasTexture.bind(n.LINEAR, n.CLAMP_TO_EDGE) - } - _updatePatternAtlas() { - const e = []; - for (const d in this.patterns) e.push(this.patterns[d].bin); - const { - w: n, - h: s - } = o.p(e), u = this.atlasImage; - u.resize({ - width: n || 1, - height: s || 1 - }); - for (const d in this.patterns) { - const { - bin: m - } = this.patterns[d], y = m.x + 1, w = m.y + 1, P = this.getImage(d).data, M = P.width, D = P.height; - o.R.copy(P, u, { - x: 0, - y: 0 - }, { - x: y, - y: w - }, { - width: M, - height: D - }), o.R.copy(P, u, { - x: 0, - y: D - 1 - }, { - x: y, - y: w - 1 - }, { - width: M, - height: 1 - }), o.R.copy(P, u, { - x: 0, - y: 0 - }, { - x: y, - y: w + D - }, { - width: M, - height: 1 - }), o.R.copy(P, u, { - x: M - 1, - y: 0 - }, { - x: y - 1, - y: w - }, { - width: 1, - height: D - }), o.R.copy(P, u, { - x: 0, - y: 0 - }, { - x: y + M, - y: w - }, { - width: 1, - height: D - }) - } - this.dirty = !0 - } - beginFrame() { - this.callbackDispatchedThisFrame = {} - } - dispatchRenderCallbacks(e) { - for (const n of e) { - if (this.callbackDispatchedThisFrame[n]) continue; - this.callbackDispatchedThisFrame[n] = !0; - const s = this.getImage(n); - s || o.w(`Image with ID: "${n}" was not found`), ct(s) && this.updateImage(n, s) - } - } - } - const Be = 1e20; - - function st(h, e, n, s, u, d, m, y, w) { - for (let P = e; P < e + s; P++) it(h, n * d + P, d, u, m, y, w); - for (let P = n; P < n + u; P++) it(h, P * d + e, 1, s, m, y, w) - } - - function it(h, e, n, s, u, d, m) { - d[0] = 0, m[0] = -Be, m[1] = Be, u[0] = h[e]; - for (let y = 1, w = 0, P = 0; y < s; y++) { - u[y] = h[e + y * n]; - const M = y * y; - do { - const D = d[w]; - P = (u[y] - u[D] + M - D * D) / (y - D) / 2 - } while (P <= m[w] && --w > -1); - w++, d[w] = y, m[w] = P, m[w + 1] = Be - } - for (let y = 0, w = 0; y < s; y++) { - for (; m[w + 1] < y;) w++; - const P = d[w], - M = y - P; - h[e + y * n] = u[P] + M * M - } - } - class Qe { - constructor(e, n) { - this.requestManager = e, this.localIdeographFontFamily = n, this.entries = {} - } - setURL(e) { - this.url = e - } - getGlyphs(e) { - return o._(this, void 0, void 0, (function*() { - const n = []; - for (const d in e) - for (const m of e[d]) n.push(this._getAndCacheGlyphsPromise(d, m)); - const s = yield Promise.all(n), u = {}; - for (const { - stack: d, - id: m, - glyph: y - } - of s) u[d] || (u[d] = {}), u[d][m] = y && { - id: y.id, - bitmap: y.bitmap.clone(), - metrics: y.metrics - }; - return u - })) - } - _getAndCacheGlyphsPromise(e, n) { - return o._(this, void 0, void 0, (function*() { - let s = this.entries[e]; - s || (s = this.entries[e] = { - glyphs: {}, - requests: {}, - ranges: {} - }); - let u = s.glyphs[n]; - if (u !== void 0) return { - stack: e, - id: n, - glyph: u - }; - if (u = this._tinySDF(s, e, n), u) return s.glyphs[n] = u, { - stack: e, - id: n, - glyph: u - }; - const d = Math.floor(n / 256); - if (256 * d > 65535) throw new Error("glyphs > 65535 not supported"); - if (s.ranges[d]) return { - stack: e, - id: n, - glyph: u - }; - if (!this.url) throw new Error("glyphsUrl is not set"); - if (!s.requests[d]) { - const y = Qe.loadGlyphRange(e, d, this.url, this.requestManager); - s.requests[d] = y - } - const m = yield s.requests[d]; - for (const y in m) this._doesCharSupportLocalGlyph(+y) || (s.glyphs[+y] = m[+y]); - return s.ranges[d] = !0, { - stack: e, - id: n, - glyph: m[n] || null - } - })) - } - _doesCharSupportLocalGlyph(e) { - return !!this.localIdeographFontFamily && (new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}", "u").test(String.fromCodePoint(e)) || o.u["CJK Unified Ideographs"](e) || o.u["Hangul Syllables"](e) || o.u.Hiragana(e) || o.u.Katakana(e) || o.u["CJK Symbols and Punctuation"](e) || o.u["Halfwidth and Fullwidth Forms"](e)) - } - _tinySDF(e, n, s) { - const u = this.localIdeographFontFamily; - if (!u || !this._doesCharSupportLocalGlyph(s)) return; - let d = e.tinySDF; - if (!d) { - let y = "400"; - /bold/i.test(n) ? y = "900" : /medium/i.test(n) ? y = "500" : /light/i.test(n) && (y = "200"), d = e.tinySDF = new Qe.TinySDF({ - fontSize: 48, - buffer: 6, - radius: 16, - cutoff: .25, - fontFamily: u, - fontWeight: y - }) - } - const m = d.draw(String.fromCharCode(s)); - return { - id: s, - bitmap: new o.q({ - width: m.width || 60, - height: m.height || 60 - }, m.data), - metrics: { - width: m.glyphWidth / 2 || 24, - height: m.glyphHeight / 2 || 24, - left: m.glyphLeft / 2 + .5 || 0, - top: m.glyphTop / 2 - 27.5 || -8, - advance: m.glyphAdvance / 2 || 24, - isDoubleResolution: !0 - } - } - } - } - Qe.loadGlyphRange = function(h, e, n, s) { - return o._(this, void 0, void 0, (function*() { - const u = 256 * e, - d = u + 255, - m = s.transformRequest(n.replace("{fontstack}", h).replace("{range}", `${u}-${d}`), "Glyphs"), - y = yield o.n(m, new AbortController); - if (!y || !y.data) throw new Error(`Could not load glyph range. range: ${e}, ${u}-${d}`); - const w = {}; - for (const P of o.o(y.data)) w[P.id] = P; - return w - })) - }, Qe.TinySDF = class { - constructor({ - fontSize: h = 24, - buffer: e = 3, - radius: n = 8, - cutoff: s = .25, - fontFamily: u = "sans-serif", - fontWeight: d = "normal", - fontStyle: m = "normal", - lang: y = null - } = {}) { - this.buffer = e, this.cutoff = s, this.radius = n, this.lang = y; - const w = this.size = h + 4 * e, - P = this._createCanvas(w), - M = this.ctx = P.getContext("2d", { - willReadFrequently: !0 - }); - M.font = `${m} ${d} ${h}px ${u}`, M.textBaseline = "alphabetic", M.textAlign = "left", M.fillStyle = "black", this.gridOuter = new Float64Array(w * w), this.gridInner = new Float64Array(w * w), this.f = new Float64Array(w), this.z = new Float64Array(w + 1), this.v = new Uint16Array(w) - } - _createCanvas(h) { - const e = document.createElement("canvas"); - return e.width = e.height = h, e - } - draw(h) { - const { - width: e, - actualBoundingBoxAscent: n, - actualBoundingBoxDescent: s, - actualBoundingBoxLeft: u, - actualBoundingBoxRight: d - } = this.ctx.measureText(h), m = Math.ceil(n), y = Math.max(0, Math.min(this.size - this.buffer, Math.ceil(d - u))), w = Math.min(this.size - this.buffer, m + Math.ceil(s)), P = y + 2 * this.buffer, M = w + 2 * this.buffer, D = Math.max(P * M, 0), z = new Uint8ClampedArray(D), B = { - data: z, - width: P, - height: M, - glyphWidth: y, - glyphHeight: w, - glyphTop: m, - glyphLeft: 0, - glyphAdvance: e - }; - if (y === 0 || w === 0) return B; - const { - ctx: U, - buffer: ee, - gridInner: J, - gridOuter: re - } = this; - this.lang && (U.lang = this.lang), U.clearRect(ee, ee, y, w), U.fillText(h, ee, ee + m); - const se = U.getImageData(ee, ee, y, w); - re.fill(Be, 0, D), J.fill(0, 0, D); - for (let de = 0; de < w; de++) - for (let ue = 0; ue < y; ue++) { - const ge = se.data[4 * (de * y + ue) + 3] / 255; - if (ge === 0) continue; - const Te = (de + ee) * P + ue + ee; - if (ge === 1) re[Te] = 0, J[Te] = Be; - else { - const he = .5 - ge; - re[Te] = he > 0 ? he * he : 0, J[Te] = he < 0 ? he * he : 0 - } - } - st(re, 0, 0, P, M, P, this.f, this.v, this.z), st(J, ee, ee, y, w, P, this.f, this.v, this.z); - for (let de = 0; de < D; de++) { - const ue = Math.sqrt(re[de]) - Math.sqrt(J[de]); - z[de] = Math.round(255 - 255 * (ue / this.radius + this.cutoff)) - } - return B - } - }; - class ke { - constructor() { - this.specification = o.v.light.position - } - possiblyEvaluate(e, n) { - return o.B(e.expression.evaluate(n)) - } - interpolate(e, n, s) { - return { - x: o.C.number(e.x, n.x, s), - y: o.C.number(e.y, n.y, s), - z: o.C.number(e.z, n.z, s) - } - } - } - let vt; - class Q extends o.E { - constructor(e) { - super(), vt = vt || new o.r({ - anchor: new o.D(o.v.light.anchor), - position: new ke, - color: new o.D(o.v.light.color), - intensity: new o.D(o.v.light.intensity) - }), this._transitionable = new o.t(vt), this.setLight(e), this._transitioning = this._transitionable.untransitioned() - } - getLight() { - return this._transitionable.serialize() - } - setLight(e, n = {}) { - if (!this._validate(o.x, e, n)) - for (const s in e) { - const u = e[s]; - s.endsWith("-transition") ? this._transitionable.setTransition(s.slice(0, -11), u) : this._transitionable.setValue(s, u) - } - } - updateTransitions(e) { - this._transitioning = this._transitionable.transitioned(e, this._transitioning) - } - hasTransition() { - return this._transitioning.hasTransition() - } - recalculate(e) { - this.properties = this._transitioning.possiblyEvaluate(e) - } - _validate(e, n, s) { - return (!s || s.validate !== !1) && o.y(this, e.call(o.z, { - value: n, - style: { - glyphs: !0, - sprite: !0 - }, - styleSpec: o.v - })) - } - } - const te = new o.r({ - "sky-color": new o.D(o.v.sky["sky-color"]), - "horizon-color": new o.D(o.v.sky["horizon-color"]), - "fog-color": new o.D(o.v.sky["fog-color"]), - "fog-ground-blend": new o.D(o.v.sky["fog-ground-blend"]), - "horizon-fog-blend": new o.D(o.v.sky["horizon-fog-blend"]), - "sky-horizon-blend": new o.D(o.v.sky["sky-horizon-blend"]), - "atmosphere-blend": new o.D(o.v.sky["atmosphere-blend"]) - }); - class _e extends o.E { - constructor(e) { - super(), this._transitionable = new o.t(te), this.setSky(e), this._transitioning = this._transitionable.untransitioned(), this.recalculate(new o.F(0)) - } - setSky(e, n = {}) { - if (!this._validate(o.G, e, n)) { - e || (e = { - "sky-color": "transparent", - "horizon-color": "transparent", - "fog-color": "transparent", - "fog-ground-blend": 1, - "atmosphere-blend": 0 - }); - for (const s in e) { - const u = e[s]; - s.endsWith("-transition") ? this._transitionable.setTransition(s.slice(0, -11), u) : this._transitionable.setValue(s, u) - } - } - } - getSky() { - return this._transitionable.serialize() - } - updateTransitions(e) { - this._transitioning = this._transitionable.transitioned(e, this._transitioning) - } - hasTransition() { - return this._transitioning.hasTransition() - } - recalculate(e) { - this.properties = this._transitioning.possiblyEvaluate(e) - } - _validate(e, n, s = {}) { - return (s == null ? void 0 : s.validate) !== !1 && o.y(this, e.call(o.z, o.e({ - value: n, - style: { - glyphs: !0, - sprite: !0 - }, - styleSpec: o.v - }))) - } - calculateFogBlendOpacity(e) { - return e < 60 ? 0 : e < 70 ? (e - 60) / 10 : 1 - } - } - class ne { - constructor(e, n) { - this.width = e, this.height = n, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {} - } - getDash(e, n) { - const s = e.join(",") + String(n); - return this.dashEntry[s] || (this.dashEntry[s] = this.addDash(e, n)), this.dashEntry[s] - } - getDashRanges(e, n, s) { - const u = []; - let d = e.length % 2 == 1 ? -e[e.length - 1] * s : 0, - m = e[0] * s, - y = !0; - u.push({ - left: d, - right: m, - isDash: y, - zeroLength: e[0] === 0 - }); - let w = e[0]; - for (let P = 1; P < e.length; P++) { - y = !y; - const M = e[P]; - d = w * s, w += M, m = w * s, u.push({ - left: d, - right: m, - isDash: y, - zeroLength: M === 0 - }) - } - return u - } - addRoundDash(e, n, s) { - const u = n / 2; - for (let d = -s; d <= s; d++) { - const m = this.width * (this.nextRow + s + d); - let y = 0, - w = e[y]; - for (let P = 0; P < this.width; P++) { - P / w.right > 1 && (w = e[++y]); - const M = Math.abs(P - w.left), - D = Math.abs(P - w.right), - z = Math.min(M, D); - let B; - const U = d / s * (u + 1); - if (w.isDash) { - const ee = u - Math.abs(U); - B = Math.sqrt(z * z + ee * ee) - } else B = u - Math.sqrt(z * z + U * U); - this.data[m + P] = Math.max(0, Math.min(255, B + 128)) - } - } - } - addRegularDash(e) { - for (let y = e.length - 1; y >= 0; --y) { - const w = e[y], - P = e[y + 1]; - w.zeroLength ? e.splice(y, 1) : P && P.isDash === w.isDash && (P.left = w.left, e.splice(y, 1)) - } - const n = e[0], - s = e[e.length - 1]; - n.isDash === s.isDash && (n.left = s.left - this.width, s.right = n.right + this.width); - const u = this.width * this.nextRow; - let d = 0, - m = e[d]; - for (let y = 0; y < this.width; y++) { - y / m.right > 1 && (m = e[++d]); - const w = Math.abs(y - m.left), - P = Math.abs(y - m.right), - M = Math.min(w, P); - this.data[u + y] = Math.max(0, Math.min(255, (m.isDash ? M : -M) + 128)) - } - } - addDash(e, n) { - const s = n ? 7 : 0, - u = 2 * s + 1; - if (this.nextRow + u > this.height) return o.w("LineAtlas out of space"), null; - let d = 0; - for (let y = 0; y < e.length; y++) d += e[y]; - if (d !== 0) { - const y = this.width / d, - w = this.getDashRanges(e, this.width, y); - n ? this.addRoundDash(w, y, s) : this.addRegularDash(w) - } - const m = { - y: (this.nextRow + s + .5) / this.height, - height: 2 * s / this.height, - width: d - }; - return this.nextRow += u, this.dirty = !0, m - } - bind(e) { - const n = e.gl; - this.texture ? (n.bindTexture(n.TEXTURE_2D, this.texture), this.dirty && (this.dirty = !1, n.texSubImage2D(n.TEXTURE_2D, 0, 0, 0, this.width, this.height, n.ALPHA, n.UNSIGNED_BYTE, this.data))) : (this.texture = n.createTexture(), n.bindTexture(n.TEXTURE_2D, this.texture), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.REPEAT), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.REPEAT), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.LINEAR), n.texImage2D(n.TEXTURE_2D, 0, n.ALPHA, this.width, this.height, 0, n.ALPHA, n.UNSIGNED_BYTE, this.data)) - } - } - const Pe = "maplibre_preloaded_worker_pool"; - class Me { - constructor() { - this.active = {} - } - acquire(e) { - if (!this.workers) - for (this.workers = []; this.workers.length < Me.workerCount;) this.workers.push(new Worker(o.a.WORKER_URL)); - return this.active[e] = !0, this.workers.slice() - } - release(e) { - delete this.active[e], this.numActive() === 0 && (this.workers.forEach((n => { - n.terminate() - })), this.workers = null) - } - isPreloaded() { - return !!this.active[Pe] - } - numActive() { - return Object.keys(this.active).length - } - } - const at = Math.floor(ye.hardwareConcurrency / 2); - let We, Ct; - - function _t() { - return We || (We = new Me), We - } - Me.workerCount = o.H(globalThis) ? Math.max(Math.min(at, 3), 1) : 1; - class xt { - constructor(e, n) { - this.workerPool = e, this.actors = [], this.currentActor = 0, this.id = n; - const s = this.workerPool.acquire(n); - for (let u = 0; u < s.length; u++) { - const d = new o.J(s[u], n); - d.name = `Worker ${u}`, this.actors.push(d) - } - if (!this.actors.length) throw new Error("No actors found") - } - broadcast(e, n) { - const s = []; - for (const u of this.actors) s.push(u.sendAsync({ - type: e, - data: n - })); - return Promise.all(s) - } - getActor() { - return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor] - } - remove(e = !0) { - this.actors.forEach((n => { - n.remove() - })), this.actors = [], e && this.workerPool.release(this.id) - } - registerMessageHandler(e, n) { - for (const s of this.actors) s.registerMessageHandler(e, n) - } - } - - function tt() { - return Ct || (Ct = new xt(_t(), o.K), Ct.registerMessageHandler("GR", ((h, e, n) => o.m(e, n)))), Ct - } - - function pt(h, e) { - const n = o.L(); - return o.M(n, n, [1, 1, 0]), o.N(n, n, [.5 * h.width, .5 * h.height, 1]), h.calculatePosMatrix ? o.O(n, n, h.calculatePosMatrix(e.toUnwrapped())) : n - } - - function It(h, e, n, s, u, d, m) { - var y; - const w = (function(z, B, U) { - if (z) - for (const ee of z) { - const J = B[ee]; - if (J && J.source === U && J.type === "fill-extrusion") return !0 - } else - for (const ee in B) { - const J = B[ee]; - if (J.source === U && J.type === "fill-extrusion") return !0 - } - return !1 - })((y = u == null ? void 0 : u.layers) !== null && y !== void 0 ? y : null, e, h.id), - P = d.maxPitchScaleFactor(), - M = h.tilesIn(s, P, w); - M.sort(ut); - const D = []; - for (const z of M) D.push({ - wrappedTileID: z.tileID.wrapped().key, - queryResults: z.tile.queryRenderedFeatures(e, n, h._state, z.queryGeometry, z.cameraQueryGeometry, z.scale, u, d, P, pt(h.transform, z.tileID), m ? (B, U) => m(z.tileID, B, U) : void 0) - }); - return (function(z, B) { - for (const U in z) - for (const ee of z[U]) bt(ee, B); - return z - })((function(z) { - const B = {}, - U = {}; - for (const ee of z) { - const J = ee.queryResults, - re = ee.wrappedTileID, - se = U[re] = U[re] || {}; - for (const de in J) { - const ue = J[de], - ge = se[de] = se[de] || {}, - Te = B[de] = B[de] || []; - for (const he of ue) ge[he.featureIndex] || (ge[he.featureIndex] = !0, Te.push(he)) - } - } - return B - })(D), h) - } - - function ut(h, e) { - const n = h.tileID, - s = e.tileID; - return n.overscaledZ - s.overscaledZ || n.canonical.y - s.canonical.y || n.wrap - s.wrap || n.canonical.x - s.canonical.x - } - - function bt(h, e) { - const n = h.feature, - s = e.getFeatureState(n.layer["source-layer"], n.id); - n.source = n.layer.source, n.layer["source-layer"] && (n.sourceLayer = n.layer["source-layer"]), n.state = s - } - - function wt(h, e, n) { - return o._(this, void 0, void 0, (function*() { - let s = h; - if (h.url ? s = (yield o.j(e.transformRequest(h.url, "Source"), n)).data : yield ye.frameAsync(n), !s) return null; - const u = o.Q(o.e(s, h), ["tiles", "minzoom", "maxzoom", "attribution", "bounds", "scheme", "tileSize", "encoding"]); - return "vector_layers" in s && s.vector_layers && (u.vectorLayerIds = s.vector_layers.map((d => d.id))), u - })) - } - class dt { - constructor(e, n) { - e && (n ? this.setSouthWest(e).setNorthEast(n) : Array.isArray(e) && (e.length === 4 ? this.setSouthWest([e[0], e[1]]).setNorthEast([e[2], e[3]]) : this.setSouthWest(e[0]).setNorthEast(e[1]))) - } - setNorthEast(e) { - return this._ne = e instanceof o.S ? new o.S(e.lng, e.lat) : o.S.convert(e), this - } - setSouthWest(e) { - return this._sw = e instanceof o.S ? new o.S(e.lng, e.lat) : o.S.convert(e), this - } - extend(e) { - const n = this._sw, - s = this._ne; - let u, d; - if (e instanceof o.S) u = e, d = e; - else { - if (!(e instanceof dt)) return Array.isArray(e) ? e.length === 4 || e.every(Array.isArray) ? this.extend(dt.convert(e)) : this.extend(o.S.convert(e)) : e && ("lng" in e || "lon" in e) && "lat" in e ? this.extend(o.S.convert(e)) : this; - if (u = e._sw, d = e._ne, !u || !d) return this - } - return n || s ? (n.lng = Math.min(u.lng, n.lng), n.lat = Math.min(u.lat, n.lat), s.lng = Math.max(d.lng, s.lng), s.lat = Math.max(d.lat, s.lat)) : (this._sw = new o.S(u.lng, u.lat), this._ne = new o.S(d.lng, d.lat)), this - } - getCenter() { - return new o.S((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 o.S(this.getWest(), this.getNorth()) - } - getSouthEast() { - return new o.S(this.getEast(), this.getSouth()) - } - getWest() { - return this._sw.lng - } - getSouth() { - return this._sw.lat - } - getEast() { - return this._ne.lng - } - getNorth() { - return this._ne.lat - } - toArray() { - return [this._sw.toArray(), this._ne.toArray()] - } - toString() { - return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})` - } - isEmpty() { - return !(this._sw && this._ne) - } - contains(e) { - const { - lng: n, - lat: s - } = o.S.convert(e); - let u = this._sw.lng <= n && n <= this._ne.lng; - return this._sw.lng > this._ne.lng && (u = this._sw.lng >= n && n >= this._ne.lng), this._sw.lat <= s && s <= this._ne.lat && u - } - static convert(e) { - return e instanceof dt ? e : e && new dt(e) - } - static fromLngLat(e, n = 0) { - const s = 360 * n / 40075017, - u = s / Math.cos(Math.PI / 180 * e.lat); - return new dt(new o.S(e.lng - u, e.lat - s), new o.S(e.lng + u, e.lat + s)) - } - adjustAntiMeridian() { - const e = new o.S(this._sw.lng, this._sw.lat), - n = new o.S(this._ne.lng, this._ne.lat); - return new dt(e, e.lng > n.lng ? new o.S(n.lng + 360, n.lat) : n) - } - } - class Lt { - constructor(e, n, s) { - this.bounds = dt.convert(this.validateBounds(e)), this.minzoom = n || 0, this.maxzoom = s || 24 - } - validateBounds(e) { - return Array.isArray(e) && e.length === 4 ? [Math.max(-180, e[0]), Math.max(-90, e[1]), Math.min(180, e[2]), Math.min(90, e[3])] : [-180, -90, 180, 90] - } - contains(e) { - const n = Math.pow(2, e.z), - s = Math.floor(o.V(this.bounds.getWest()) * n), - u = Math.floor(o.U(this.bounds.getNorth()) * n), - d = Math.ceil(o.V(this.bounds.getEast()) * n), - m = Math.ceil(o.U(this.bounds.getSouth()) * n); - return e.x >= s && e.x < d && e.y >= u && e.y < m - } - } - class Xt extends o.E { - constructor(e, n, s, u) { - if (super(), this.id = e, this.dispatcher = s, this.type = "vector", this.minzoom = 0, this.maxzoom = 22, this.scheme = "xyz", this.tileSize = 512, this.reparseOverscaled = !0, this.isTileClipped = !0, this._loaded = !1, o.e(this, o.Q(n, ["url", "scheme", "tileSize", "promoteId"])), this._options = o.e({ - type: "vector" - }, n), this._collectResourceTiming = n.collectResourceTiming, this.tileSize !== 512) throw new Error("vector tile sources must have a tileSize of 512"); - this.setEventedParent(u) - } - load() { - return o._(this, void 0, void 0, (function*() { - this._loaded = !1, this.fire(new o.l("dataloading", { - dataType: "source" - })), this._tileJSONRequest = new AbortController; - try { - const e = yield wt(this._options, this.map._requestManager, this._tileJSONRequest); - this._tileJSONRequest = null, this._loaded = !0, this.map.style.sourceCaches[this.id].clearTiles(), e && (o.e(this, e), e.bounds && (this.tileBounds = new Lt(e.bounds, this.minzoom, this.maxzoom)), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "metadata" - })), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "content" - }))) - } catch (e) { - this._tileJSONRequest = null, this.fire(new o.k(e)) - } - })) - } - loaded() { - return this._loaded - } - hasTile(e) { - return !this.tileBounds || this.tileBounds.contains(e.canonical) - } - onAdd(e) { - this.map = e, this.load() - } - setSourceProperty(e) { - this._tileJSONRequest && this._tileJSONRequest.abort(), e(), this.load() - } - setTiles(e) { - return this.setSourceProperty((() => { - this._options.tiles = e - })), this - } - setUrl(e) { - return this.setSourceProperty((() => { - this.url = e, this._options.url = e - })), this - } - onRemove() { - this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null) - } - serialize() { - return o.e({}, this._options) - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), - s = { - request: this.map._requestManager.transformRequest(n, "Tile"), - uid: e.uid, - tileID: e.tileID, - zoom: e.tileID.overscaledZ, - tileSize: this.tileSize * e.tileID.overscaleFactor(), - type: this.type, - source: this.id, - pixelRatio: this.map.getPixelRatio(), - showCollisionBoxes: this.map.showCollisionBoxes, - promoteId: this.promoteId, - subdivisionGranularity: this.map.style.projection.subdivisionGranularity, - globalState: this.map.getGlobalState() - }; - s.request.collectResourceTiming = this._collectResourceTiming; - let u = "RT"; - if (e.actor && e.state !== "expired") { - if (e.state === "loading") return new Promise(((d, m) => { - e.reloadPromise = { - resolve: d, - reject: m - } - })) - } else e.actor = this.dispatcher.getActor(), u = "LT"; - e.abortController = new AbortController; - try { - const d = yield e.actor.sendAsync({ - type: u, - data: s - }, e.abortController); - if (delete e.abortController, e.aborted) return; - this._afterTileLoadWorkerResponse(e, d) - } catch (d) { - if (delete e.abortController, e.aborted) return; - if (d && d.status !== 404) throw d; - this._afterTileLoadWorkerResponse(e, null) - } - })) - } - _afterTileLoadWorkerResponse(e, n) { - if (n && n.resourceTiming && (e.resourceTiming = n.resourceTiming), n && this.map._refreshExpiredTiles && e.setExpiryData(n), e.loadVectorData(n, this.map.painter), e.reloadPromise) { - const s = e.reloadPromise; - e.reloadPromise = null, this.loadTile(e).then(s.resolve).catch(s.reject) - } - } - abortTile(e) { - return o._(this, void 0, void 0, (function*() { - e.abortController && (e.abortController.abort(), delete e.abortController), e.actor && (yield e.actor.sendAsync({ - type: "AT", - data: { - uid: e.uid, - type: this.type, - source: this.id - } - })) - })) - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.unloadVectorData(), e.actor && (yield e.actor.sendAsync({ - type: "RMT", - data: { - uid: e.uid, - type: this.type, - source: this.id - } - })) - })) - } - hasTransition() { - return !1 - } - } - class Yt extends o.E { - constructor(e, n, s, u) { - super(), this.id = e, this.dispatcher = s, this.setEventedParent(u), this.type = "raster", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = !0, this.scheme = "xyz", this.tileSize = 512, this._loaded = !1, this._options = o.e({ - type: "raster" - }, n), o.e(this, o.Q(n, ["url", "scheme", "tileSize"])) - } - load() { - return o._(this, arguments, void 0, (function*(e = !1) { - this._loaded = !1, this.fire(new o.l("dataloading", { - dataType: "source" - })), this._tileJSONRequest = new AbortController; - try { - const n = yield wt(this._options, this.map._requestManager, this._tileJSONRequest); - this._tileJSONRequest = null, this._loaded = !0, n && (o.e(this, n), n.bounds && (this.tileBounds = new Lt(n.bounds, this.minzoom, this.maxzoom)), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "metadata" - })), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "content", - sourceDataChanged: e - }))) - } catch (n) { - this._tileJSONRequest = null, this.fire(new o.k(n)) - } - })) - } - loaded() { - return this._loaded - } - onAdd(e) { - this.map = e, this.load() - } - onRemove() { - this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null) - } - setSourceProperty(e) { - this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null), e(), this.load(!0) - } - setTiles(e) { - return this.setSourceProperty((() => { - this._options.tiles = e - })), this - } - setUrl(e) { - return this.setSourceProperty((() => { - this.url = e, this._options.url = e - })), this - } - serialize() { - return o.e({}, this._options) - } - hasTile(e) { - return !this.tileBounds || this.tileBounds.contains(e.canonical) - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme); - e.abortController = new AbortController; - try { - const s = yield Ne.getImage(this.map._requestManager.transformRequest(n, "Tile"), e.abortController, this.map._refreshExpiredTiles); - if (delete e.abortController, e.aborted) return void(e.state = "unloaded"); - if (s && s.data) { - this.map._refreshExpiredTiles && (s.cacheControl || s.expires) && e.setExpiryData({ - cacheControl: s.cacheControl, - expires: s.expires - }); - const u = this.map.painter.context, - d = u.gl, - m = s.data; - e.texture = this.map.painter.getTileTexture(m.width), e.texture ? e.texture.update(m, { - useMipmap: !0 - }) : (e.texture = new o.T(u, m, d.RGBA, { - useMipmap: !0 - }), e.texture.bind(d.LINEAR, d.CLAMP_TO_EDGE, d.LINEAR_MIPMAP_NEAREST)), e.state = "loaded" - } - } catch (s) { - if (delete e.abortController, e.aborted) e.state = "unloaded"; - else if (s) throw e.state = "errored", s - } - })) - } - abortTile(e) { - return o._(this, void 0, void 0, (function*() { - e.abortController && (e.abortController.abort(), delete e.abortController) - })) - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.texture && this.map.painter.saveTileTexture(e.texture) - })) - } - hasTransition() { - return !1 - } - } - class nr extends Yt { - constructor(e, n, s, u) { - super(e, n, s, u), this.type = "raster-dem", this.maxzoom = 22, this._options = o.e({ - type: "raster-dem" - }, n), this.encoding = n.encoding || "mapbox", this.redFactor = n.redFactor, this.greenFactor = n.greenFactor, this.blueFactor = n.blueFactor, this.baseShift = n.baseShift - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), - s = this.map._requestManager.transformRequest(n, "Tile"); - e.neighboringTiles = this._getNeighboringTiles(e.tileID), e.abortController = new AbortController; - try { - const u = yield Ne.getImage(s, e.abortController, this.map._refreshExpiredTiles); - if (delete e.abortController, e.aborted) return void(e.state = "unloaded"); - if (u && u.data) { - const d = u.data; - this.map._refreshExpiredTiles && (u.cacheControl || u.expires) && e.setExpiryData({ - cacheControl: u.cacheControl, - expires: u.expires - }); - const m = o.b(d) && o.W() ? d : yield this.readImageNow(d), y = { - type: this.type, - uid: e.uid, - source: this.id, - rawImageData: m, - encoding: this.encoding, - redFactor: this.redFactor, - greenFactor: this.greenFactor, - blueFactor: this.blueFactor, - baseShift: this.baseShift - }; - if (!e.actor || e.state === "expired") { - e.actor = this.dispatcher.getActor(); - const w = yield e.actor.sendAsync({ - type: "LDT", - data: y - }); - e.dem = w, e.needsHillshadePrepare = !0, e.needsTerrainPrepare = !0, e.state = "loaded" - } - } - } catch (u) { - if (delete e.abortController, e.aborted) e.state = "unloaded"; - else if (u) throw e.state = "errored", u - } - })) - } - readImageNow(e) { - return o._(this, void 0, void 0, (function*() { - if (typeof VideoFrame < "u" && o.X()) { - const n = e.width + 2, - s = e.height + 2; - try { - return new o.R({ - width: n, - height: s - }, yield o.Y(e, -1, -1, n, s)) - } catch {} - } - return ye.getImageData(e, 1) - })) - } - _getNeighboringTiles(e) { - const n = e.canonical, - s = Math.pow(2, n.z), - u = (n.x - 1 + s) % s, - d = n.x === 0 ? e.wrap - 1 : e.wrap, - m = (n.x + 1 + s) % s, - y = n.x + 1 === s ? e.wrap + 1 : e.wrap, - w = {}; - return w[new o.Z(e.overscaledZ, d, n.z, u, n.y).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, y, n.z, m, n.y).key] = { - backfilled: !1 - }, n.y > 0 && (w[new o.Z(e.overscaledZ, d, n.z, u, n.y - 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, e.wrap, n.z, n.x, n.y - 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, y, n.z, m, n.y - 1).key] = { - backfilled: !1 - }), n.y + 1 < s && (w[new o.Z(e.overscaledZ, d, n.z, u, n.y + 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, e.wrap, n.z, n.x, n.y + 1).key] = { - backfilled: !1 - }, w[new o.Z(e.overscaledZ, y, n.z, m, n.y + 1).key] = { - backfilled: !1 - }), w - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.demTexture && this.map.painter.saveTileTexture(e.demTexture), e.fbo && (e.fbo.destroy(), delete e.fbo), e.dem && delete e.dem, delete e.neighboringTiles, e.state = "unloaded", e.actor && (yield e.actor.sendAsync({ - type: "RDT", - data: { - type: this.type, - uid: e.uid, - source: this.id - } - })) - })) - } - } - class ar extends o.E { - constructor(e, n, s, u) { - super(), this.id = e, this.type = "geojson", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = !0, this.reparseOverscaled = !0, this._removed = !1, this._isUpdatingWorker = !1, this._pendingWorkerUpdate = { - data: n.data - }, this.actor = s.getActor(), this.setEventedParent(u), this._data = n.data, this._options = o.e({}, n), this._collectResourceTiming = n.collectResourceTiming, n.maxzoom !== void 0 && (this.maxzoom = n.maxzoom), n.type && (this.type = n.type), n.attribution && (this.attribution = n.attribution), this.promoteId = n.promoteId, n.clusterMaxZoom !== void 0 && this.maxzoom <= n.clusterMaxZoom && o.w(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${n.clusterMaxZoom}".`), this.workerOptions = o.e({ - source: this.id, - cluster: n.cluster || !1, - geojsonVtOptions: { - buffer: this._pixelsToTileUnits(n.buffer !== void 0 ? n.buffer : 128), - tolerance: this._pixelsToTileUnits(n.tolerance !== void 0 ? n.tolerance : .375), - extent: o.$, - maxZoom: this.maxzoom, - lineMetrics: n.lineMetrics || !1, - generateId: n.generateId || !1 - }, - superclusterOptions: { - maxZoom: this._getClusterMaxZoom(n.clusterMaxZoom), - minPoints: Math.max(2, n.clusterMinPoints || 2), - extent: o.$, - radius: this._pixelsToTileUnits(n.clusterRadius || 50), - log: !1, - generateId: n.generateId || !1 - }, - clusterProperties: n.clusterProperties, - filter: n.filter - }, n.workerOptions), typeof this.promoteId == "string" && (this.workerOptions.promoteId = this.promoteId) - } - _pixelsToTileUnits(e) { - return e * (o.$ / this.tileSize) - } - _getClusterMaxZoom(e) { - const n = e ? Math.round(e) : this.maxzoom - 1; - return Number.isInteger(e) || e === void 0 || o.w(`Integer expected for option 'clusterMaxZoom': provided value "${e}" rounded to "${n}"`), n - } - load() { - return o._(this, void 0, void 0, (function*() { - yield this._updateWorkerData() - })) - } - onAdd(e) { - this.map = e, this.load() - } - setData(e) { - return this._data = e, this._pendingWorkerUpdate = { - data: e - }, this._updateWorkerData(), this - } - updateData(e) { - return this._pendingWorkerUpdate.diff = o.a0(this._pendingWorkerUpdate.diff, e), this._updateWorkerData(), this - } - getData() { - return o._(this, void 0, void 0, (function*() { - const e = o.e({ - type: this.type - }, this.workerOptions); - return this.actor.sendAsync({ - type: "GD", - data: e - }) - })) - } - getCoordinatesFromGeometry(e) { - return e.type === "GeometryCollection" ? e.geometries.map((n => n.coordinates)).flat(1 / 0) : e.coordinates.flat(1 / 0) - } - getBounds() { - return o._(this, void 0, void 0, (function*() { - const e = new dt, - n = yield this.getData(); - let s; - switch (n.type) { - case "FeatureCollection": - s = n.features.map((u => this.getCoordinatesFromGeometry(u.geometry))).flat(1 / 0); - break; - case "Feature": - s = this.getCoordinatesFromGeometry(n.geometry); - break; - default: - s = this.getCoordinatesFromGeometry(n) - } - if (s.length == 0) return e; - for (let u = 0; u < s.length - 1; u += 2) e.extend([s[u], s[u + 1]]); - return e - })) - } - setClusterOptions(e) { - return this.workerOptions.cluster = e.cluster, e && (e.clusterRadius !== void 0 && (this.workerOptions.superclusterOptions.radius = this._pixelsToTileUnits(e.clusterRadius)), e.clusterMaxZoom !== void 0 && (this.workerOptions.superclusterOptions.maxZoom = this._getClusterMaxZoom(e.clusterMaxZoom))), this._updateWorkerData(), this - } - getClusterExpansionZoom(e) { - return this.actor.sendAsync({ - type: "GCEZ", - data: { - type: this.type, - clusterId: e, - source: this.id - } - }) - } - getClusterChildren(e) { - return this.actor.sendAsync({ - type: "GCC", - data: { - type: this.type, - clusterId: e, - source: this.id - } - }) - } - getClusterLeaves(e, n, s) { - return this.actor.sendAsync({ - type: "GCL", - data: { - type: this.type, - source: this.id, - clusterId: e, - limit: n, - offset: s - } - }) - } - _updateWorkerData() { - return o._(this, void 0, void 0, (function*() { - if (this._isUpdatingWorker) return; - const { - data: e, - diff: n - } = this._pendingWorkerUpdate; - if (!e && !n) return void o.w(`No data or diff provided to GeoJSONSource ${this.id}.`); - const s = o.e({ - type: this.type - }, this.workerOptions); - e ? (typeof e == "string" ? (s.request = this.map._requestManager.transformRequest(ye.resolveURL(e), "Source"), s.request.collectResourceTiming = this._collectResourceTiming) : s.data = JSON.stringify(e), this._pendingWorkerUpdate.data = void 0) : n && (s.dataDiff = n, this._pendingWorkerUpdate.diff = void 0), this._isUpdatingWorker = !0, this.fire(new o.l("dataloading", { - dataType: "source" - })); - try { - const u = yield this.actor.sendAsync({ - type: "LD", - data: s - }); - if (this._isUpdatingWorker = !1, this._removed || u.abandoned) return void this.fire(new o.l("dataabort", { - dataType: "source" - })); - this._data = u.data; - let d = null; - u.resourceTiming && u.resourceTiming[this.id] && (d = u.resourceTiming[this.id].slice(0)); - const m = { - dataType: "source" - }; - this._collectResourceTiming && d && d.length > 0 && o.e(m, { - resourceTiming: d - }), this.fire(new o.l("data", Object.assign(Object.assign({}, m), { - sourceDataType: "metadata" - }))), this.fire(new o.l("data", Object.assign(Object.assign({}, m), { - sourceDataType: "content" - }))) - } catch (u) { - if (this._isUpdatingWorker = !1, this._removed) return void this.fire(new o.l("dataabort", { - dataType: "source" - })); - this.fire(new o.k(u)) - } finally { - (this._pendingWorkerUpdate.data || this._pendingWorkerUpdate.diff) && this._updateWorkerData() - } - })) - } - loaded() { - return !this._isUpdatingWorker && this._pendingWorkerUpdate.data === void 0 && this._pendingWorkerUpdate.diff === void 0 - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - const n = e.actor ? "RT" : "LT"; - e.actor = this.actor; - const s = { - type: this.type, - uid: e.uid, - tileID: e.tileID, - zoom: e.tileID.overscaledZ, - maxZoom: this.maxzoom, - tileSize: this.tileSize, - source: this.id, - pixelRatio: this.map.getPixelRatio(), - showCollisionBoxes: this.map.showCollisionBoxes, - promoteId: this.promoteId, - subdivisionGranularity: this.map.style.projection.subdivisionGranularity, - globalState: this.map.getGlobalState() - }; - e.abortController = new AbortController; - const u = yield this.actor.sendAsync({ - type: n, - data: s - }, e.abortController); - delete e.abortController, e.unloadVectorData(), e.aborted || e.loadVectorData(u, this.map.painter, n === "RT") - })) - } - abortTile(e) { - return o._(this, void 0, void 0, (function*() { - e.abortController && (e.abortController.abort(), delete e.abortController), e.aborted = !0 - })) - } - unloadTile(e) { - return o._(this, void 0, void 0, (function*() { - e.unloadVectorData(), yield this.actor.sendAsync({ - type: "RMT", - data: { - uid: e.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 o.e({}, this._options, { - type: this.type, - data: this._data - }) - } - hasTransition() { - return !1 - } - } - class Ft extends o.E { - constructor(e, n, s, u) { - super(), this.flippedWindingOrder = !1, this.id = e, this.dispatcher = s, this.coordinates = n.coordinates, this.type = "image", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = !1, this.setEventedParent(u), this.options = n - } - load(e) { - return o._(this, void 0, void 0, (function*() { - this._loaded = !1, this.fire(new o.l("dataloading", { - dataType: "source" - })), this.url = this.options.url, this._request = new AbortController; - try { - const n = yield Ne.getImage(this.map._requestManager.transformRequest(this.url, "Image"), this._request); - this._request = null, this._loaded = !0, n && n.data && (this.image = n.data, e && (this.coordinates = e), this._finishLoading()) - } catch (n) { - this._request = null, this._loaded = !0, this.fire(new o.k(n)) - } - })) - } - loaded() { - return this._loaded - } - updateImage(e) { - return e.url ? (this._request && (this._request.abort(), this._request = null), this.options.url = e.url, this.load(e.coordinates).finally((() => { - this.texture = null - })), this) : this - } - _finishLoading() { - this.map && (this.setCoordinates(this.coordinates), this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "metadata" - }))) - } - onAdd(e) { - this.map = e, this.load() - } - onRemove() { - this._request && (this._request.abort(), this._request = null) - } - setCoordinates(e) { - this.coordinates = e; - const n = e.map(o.a1.fromLngLat); - var s; - return this.tileID = (function(u) { - const d = o.a2.fromPoints(u), - m = d.width(), - y = d.height(), - w = Math.max(m, y), - P = Math.max(0, Math.floor(-Math.log(w) / Math.LN2)), - M = Math.pow(2, P); - return new o.a4(P, Math.floor((d.minX + d.maxX) / 2 * M), Math.floor((d.minY + d.maxY) / 2 * M)) - })(n), this.terrainTileRanges = this._getOverlappingTileRanges(n), this.minzoom = this.maxzoom = this.tileID.z, this.tileCoords = n.map((u => this.tileID.getTilePoint(u)._round())), this.flippedWindingOrder = ((s = this.tileCoords)[1].x - s[0].x) * (s[2].y - s[0].y) - (s[1].y - s[0].y) * (s[2].x - s[0].x) < 0, this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "content" - })), this - } - prepare() { - if (Object.keys(this.tiles).length === 0 || !this.image) return; - const e = this.map.painter.context, - n = e.gl; - this.texture || (this.texture = new o.T(e, this.image, n.RGBA), this.texture.bind(n.LINEAR, n.CLAMP_TO_EDGE)); - let s = !1; - for (const u in this.tiles) { - const d = this.tiles[u]; - d.state !== "loaded" && (d.state = "loaded", d.texture = this.texture, s = !0) - } - s && this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "idle", - sourceId: this.id - })) - } - loadTile(e) { - return o._(this, void 0, void 0, (function*() { - this.tileID && this.tileID.equals(e.tileID.canonical) ? (this.tiles[String(e.tileID.wrap)] = e, e.buckets = {}) : e.state = "errored" - })) - } - serialize() { - return { - type: "image", - url: this.options.url, - coordinates: this.coordinates - } - } - hasTransition() { - return !1 - } - _getOverlappingTileRanges(e) { - const { - minX: n, - minY: s, - maxX: u, - maxY: d - } = o.a2.fromPoints(e), m = {}; - for (let y = 0; y <= o.a3; y++) { - const w = Math.pow(2, y), - P = Math.floor(n * w), - M = Math.floor(s * w), - D = Math.floor(u * w), - z = Math.floor(d * w); - m[y] = { - minTileX: P, - minTileY: M, - maxTileX: D, - maxTileY: z - } - } - return m - } - } - class dr extends Ft { - constructor(e, n, s, u) { - super(e, n, s, u), this.roundZoom = !0, this.type = "video", this.options = n - } - load() { - return o._(this, void 0, void 0, (function*() { - this._loaded = !1; - const e = this.options; - this.urls = []; - for (const n of e.urls) this.urls.push(this.map._requestManager.transformRequest(n, "Source").url); - try { - const n = yield o.a5(this.urls); - if (this._loaded = !0, !n) return; - this.video = n, this.video.loop = !0, this.video.addEventListener("playing", (() => { - this.map.triggerRepaint() - })), this.map && this.video.play(), this._finishLoading() - } catch (n) { - this.fire(new o.k(n)) - } - })) - } - pause() { - this.video && this.video.pause() - } - play() { - this.video && this.video.play() - } - seek(e) { - if (this.video) { - const n = this.video.seekable; - e < n.start(0) || e > n.end(0) ? this.fire(new o.k(new o.a6(`sources.${this.id}`, null, `Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))) : this.video.currentTime = e - } - } - getVideo() { - return this.video - } - onAdd(e) { - this.map || (this.map = e, 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 e = this.map.painter.context, - n = e.gl; - this.texture ? this.video.paused || (this.texture.bind(n.LINEAR, n.CLAMP_TO_EDGE), n.texSubImage2D(n.TEXTURE_2D, 0, 0, 0, n.RGBA, n.UNSIGNED_BYTE, this.video)) : (this.texture = new o.T(e, this.video, n.RGBA), this.texture.bind(n.LINEAR, n.CLAMP_TO_EDGE)); - let s = !1; - for (const u in this.tiles) { - const d = this.tiles[u]; - d.state !== "loaded" && (d.state = "loaded", d.texture = this.texture, s = !0) - } - s && this.fire(new o.l("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 _r extends Ft { - constructor(e, n, s, u) { - super(e, n, s, u), n.coordinates ? Array.isArray(n.coordinates) && n.coordinates.length === 4 && !n.coordinates.some((d => !Array.isArray(d) || d.length !== 2 || d.some((m => typeof m != "number")))) || this.fire(new o.k(new o.a6(`sources.${e}`, null, '"coordinates" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new o.k(new o.a6(`sources.${e}`, null, 'missing required property "coordinates"'))), n.animate && typeof n.animate != "boolean" && this.fire(new o.k(new o.a6(`sources.${e}`, null, 'optional "animate" property must be a boolean value'))), n.canvas ? typeof n.canvas == "string" || n.canvas instanceof HTMLCanvasElement || this.fire(new o.k(new o.a6(`sources.${e}`, null, '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new o.k(new o.a6(`sources.${e}`, null, 'missing required property "canvas"'))), this.options = n, this.animate = n.animate === void 0 || n.animate - } - load() { - return o._(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 o.k(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(e) { - this.map = e, this.load(), this.canvas && this.animate && this.play() - } - onRemove() { - this.pause() - } - prepare() { - let e = !1; - if (this.canvas.width !== this.width && (this.width = this.canvas.width, e = !0), this.canvas.height !== this.height && (this.height = this.canvas.height, e = !0), this._hasInvalidDimensions() || Object.keys(this.tiles).length === 0) return; - const n = this.map.painter.context, - s = n.gl; - this.texture ? (e || this._playing) && this.texture.update(this.canvas, { - premultiply: !0 - }) : this.texture = new o.T(n, this.canvas, s.RGBA, { - premultiply: !0 - }); - let u = !1; - for (const d in this.tiles) { - const m = this.tiles[d]; - m.state !== "loaded" && (m.state = "loaded", m.texture = this.texture, u = !0) - } - u && this.fire(new o.l("data", { - dataType: "source", - sourceDataType: "idle", - sourceId: this.id - })) - } - serialize() { - return { - type: "canvas", - coordinates: this.coordinates - } - } - hasTransition() { - return this._playing - } - _hasInvalidDimensions() { - for (const e of [this.canvas.width, this.canvas.height]) - if (isNaN(e) || e <= 0) return !0; - return !1 - } - } - const Ir = {}, - jr = h => { - switch (h) { - case "geojson": - return ar; - case "image": - return Ft; - case "raster": - return Yt; - case "raster-dem": - return nr; - case "vector": - return Xt; - case "video": - return dr; - case "canvas": - return _r - } - return Ir[h] - }, - ur = "RTLPluginLoaded"; - class Mr extends o.E { - constructor() { - super(...arguments), this.status = "unavailable", this.url = null, this.dispatcher = tt() - } - _syncState(e) { - return this.status = e, this.dispatcher.broadcast("SRPS", { - pluginStatus: e, - pluginURL: this.url - }).catch((n => { - throw this.status = "error", n - })) - } - getRTLTextPluginStatus() { - return this.status - } - clearRTLTextPlugin() { - this.status = "unavailable", this.url = null - } - setRTLTextPlugin(e) { - return o._(this, arguments, void 0, (function*(n, s = !1) { - if (this.url) throw new Error("setRTLTextPlugin cannot be called multiple times."); - if (this.url = ye.resolveURL(n), !this.url) throw new Error(`requested url ${n} is invalid`); - if (this.status === "unavailable") { - if (!s) return this._requestImport(); - this.status = "deferred", this._syncState(this.status) - } else if (this.status === "requested") return this._requestImport() - })) - } - _requestImport() { - return o._(this, void 0, void 0, (function*() { - yield this._syncState("loading"), this.status = "loaded", this.fire(new o.l(ur)) - })) - } - lazyLoad() { - this.status === "unavailable" ? this.status = "requested" : this.status === "deferred" && this._requestImport() - } - } - let Ar = null; - - function kr() { - return Ar || (Ar = new Mr), Ar - } - class Nr { - constructor(e, n) { - this.timeAdded = 0, this.fadeEndTime = 0, this.tileID = e, this.uid = o.a7(), this.uses = 0, this.tileSize = n, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = !1, this.hasRTLText = !1, this.dependencies = {}, this.rtt = [], this.rttCoords = {}, this.expiredRequestCount = 0, this.state = "loading" - } - registerFadeDuration(e) { - const n = e + this.timeAdded; - n < this.fadeEndTime || (this.fadeEndTime = n) - } - wasRequested() { - return this.state === "errored" || this.state === "loaded" || this.state === "reloading" - } - clearTextures(e) { - this.demTexture && e.saveTileTexture(this.demTexture), this.demTexture = null - } - loadVectorData(e, n, s) { - if (this.hasData() && this.unloadVectorData(), this.state = "loaded", e) { - e.featureIndex && (this.latestFeatureIndex = e.featureIndex, e.rawTileData ? (this.latestRawTileData = e.rawTileData, this.latestFeatureIndex.rawTileData = e.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = e.collisionBoxArray, this.buckets = (function(u, d) { - const m = {}; - if (!d) return m; - for (const y of u) { - const w = y.layerIds.map((P => d.getLayer(P))).filter(Boolean); - if (w.length !== 0) { - y.layers = w, y.stateDependentLayerIds && (y.stateDependentLayers = y.stateDependentLayerIds.map((P => w.filter((M => M.id === P))[0]))); - for (const P of w) m[P.id] = y - } - } - return m - })(e.buckets, n == null ? void 0 : n.style), this.hasSymbolBuckets = !1; - for (const u in this.buckets) { - const d = this.buckets[u]; - if (d instanceof o.a9) { - if (this.hasSymbolBuckets = !0, !s) break; - d.justReloaded = !0 - } - } - if (this.hasRTLText = !1, this.hasSymbolBuckets) - for (const u in this.buckets) { - const d = this.buckets[u]; - if (d instanceof o.a9 && d.hasRTLText) { - this.hasRTLText = !0, kr().lazyLoad(); - break - } - } - this.queryPadding = 0; - for (const u in this.buckets) { - const d = this.buckets[u]; - this.queryPadding = Math.max(this.queryPadding, n.style.getLayer(u).queryRadius(d)) - } - e.imageAtlas && (this.imageAtlas = e.imageAtlas), e.glyphAtlasImage && (this.glyphAtlasImage = e.glyphAtlasImage) - } else this.collisionBoxArray = new o.a8 - } - unloadVectorData() { - for (const e in this.buckets) this.buckets[e].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(e) { - return this.buckets[e.id] - } - upload(e) { - for (const s in this.buckets) { - const u = this.buckets[s]; - u.uploadPending() && u.upload(e) - } - const n = e.gl; - this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new o.T(e, this.imageAtlas.image, n.RGBA), this.imageAtlas.uploaded = !0), this.glyphAtlasImage && (this.glyphAtlasTexture = new o.T(e, this.glyphAtlasImage, n.ALPHA), this.glyphAtlasImage = null) - } - prepare(e) { - this.imageAtlas && this.imageAtlas.patchUpdatedImages(e, this.imageAtlasTexture) - } - queryRenderedFeatures(e, n, s, u, d, m, y, w, P, M, D) { - return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ - queryGeometry: u, - cameraQueryGeometry: d, - scale: m, - tileSize: this.tileSize, - pixelPosMatrix: M, - transform: w, - params: y, - queryPadding: this.queryPadding * P, - getElevation: D - }, e, n, s) : {} - } - querySourceFeatures(e, n) { - const s = this.latestFeatureIndex; - if (!s || !s.rawTileData) return; - const u = s.loadVTLayers(), - d = n && n.sourceLayer ? n.sourceLayer : "", - m = u._geojsonTileLayer || u[d]; - if (!m) return; - const y = o.aa(n && n.filter), - { - z: w, - x: P, - y: M - } = this.tileID.canonical, - D = { - z: w, - x: P, - y: M - }; - for (let z = 0; z < m.length; z++) { - const B = m.feature(z); - if (y.needGeometry) { - const J = o.ab(B, !0); - if (!y.filter(new o.F(this.tileID.overscaledZ), J, this.tileID.canonical)) continue - } else if (!y.filter(new o.F(this.tileID.overscaledZ), B)) continue; - const U = s.getId(B, d), - ee = new o.ac(B, w, P, M, U); - ee.tile = D, e.push(ee) - } - } - hasData() { - return this.state === "loaded" || this.state === "reloading" || this.state === "expired" - } - patternsLoaded() { - return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length - } - setExpiryData(e) { - const n = this.expirationTime; - if (e.cacheControl) { - const s = o.ad(e.cacheControl); - s["max-age"] && (this.expirationTime = Date.now() + 1e3 * s["max-age"]) - } else e.expires && (this.expirationTime = new Date(e.expires).getTime()); - if (this.expirationTime) { - const s = Date.now(); - let u = !1; - if (this.expirationTime > s) u = !1; - else if (n) - if (this.expirationTime < n) u = !0; - else { - const d = this.expirationTime - n; - d ? this.expirationTime = s + Math.max(d, 3e4) : u = !0 - } - else u = !0; - u ? (this.expiredRequestCount++, this.state = "expired") : this.expiredRequestCount = 0 - } - } - getExpiryTimeout() { - if (this.expirationTime) return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - new Date().getTime(), Math.pow(2, 31) - 1) - } - setFeatureState(e, n) { - if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || Object.keys(e).length === 0) return; - const s = this.latestFeatureIndex.loadVTLayers(); - for (const u in this.buckets) { - if (!n.style.hasLayer(u)) continue; - const d = this.buckets[u], - m = d.layers[0].sourceLayer || "_geojsonTileLayer", - y = s[m], - w = e[m]; - if (!y || !w || Object.keys(w).length === 0) continue; - d.update(w, y, this.imageAtlas && this.imageAtlas.patternPositions || {}); - const P = n && n.style && n.style.getLayer(u); - P && (this.queryPadding = Math.max(this.queryPadding, P.queryRadius(d))) - } - } - holdingForFade() { - return this.symbolFadeHoldUntil !== void 0 - } - symbolFadeFinished() { - return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < ye.now() - } - clearFadeHold() { - this.symbolFadeHoldUntil = void 0 - } - setHoldDuration(e) { - this.symbolFadeHoldUntil = ye.now() + e - } - setDependencies(e, n) { - const s = {}; - for (const u of n) s[u] = !0; - this.dependencies[e] = s - } - hasDependency(e, n) { - for (const s of e) { - const u = this.dependencies[s]; - if (u) { - for (const d of n) - if (u[d]) return !0 - } - } - return !1 - } - } - class ce { - constructor(e, n) { - this.max = e, this.onRemove = n, this.reset() - } - reset() { - for (const e in this.data) - for (const n of this.data[e]) n.timeout && clearTimeout(n.timeout), this.onRemove(n.value); - return this.data = {}, this.order = [], this - } - add(e, n, s) { - const u = e.wrapped().key; - this.data[u] === void 0 && (this.data[u] = []); - const d = { - value: n, - timeout: void 0 - }; - if (s !== void 0 && (d.timeout = setTimeout((() => { - this.remove(e, d) - }), s)), this.data[u].push(d), this.order.push(u), this.order.length > this.max) { - const m = this._getAndRemoveByKey(this.order[0]); - m && this.onRemove(m) - } - return this - } - has(e) { - return e.wrapped().key in this.data - } - getAndRemove(e) { - return this.has(e) ? this._getAndRemoveByKey(e.wrapped().key) : null - } - _getAndRemoveByKey(e) { - const n = this.data[e].shift(); - return n.timeout && clearTimeout(n.timeout), this.data[e].length === 0 && delete this.data[e], this.order.splice(this.order.indexOf(e), 1), n.value - } - getByKey(e) { - const n = this.data[e]; - return n ? n[0].value : null - } - get(e) { - return this.has(e) ? this.data[e.wrapped().key][0].value : null - } - remove(e, n) { - if (!this.has(e)) return this; - const s = e.wrapped().key, - u = n === void 0 ? 0 : this.data[s].indexOf(n), - d = this.data[s][u]; - return this.data[s].splice(u, 1), d.timeout && clearTimeout(d.timeout), this.data[s].length === 0 && delete this.data[s], this.onRemove(d.value), this.order.splice(this.order.indexOf(s), 1), this - } - setMaxSize(e) { - for (this.max = e; this.order.length > this.max;) { - const n = this._getAndRemoveByKey(this.order[0]); - n && this.onRemove(n) - } - return this - } - filter(e) { - const n = []; - for (const s in this.data) - for (const u of this.data[s]) e(u.value) || n.push(u); - for (const s of n) this.remove(s.value.tileID, s) - } - } - class O { - constructor() { - this.state = {}, this.stateChanges = {}, this.deletedStates = {} - } - updateState(e, n, s) { - const u = String(n); - if (this.stateChanges[e] = this.stateChanges[e] || {}, this.stateChanges[e][u] = this.stateChanges[e][u] || {}, o.e(this.stateChanges[e][u], s), this.deletedStates[e] === null) { - this.deletedStates[e] = {}; - for (const d in this.state[e]) d !== u && (this.deletedStates[e][d] = null) - } else if (this.deletedStates[e] && this.deletedStates[e][u] === null) { - this.deletedStates[e][u] = {}; - for (const d in this.state[e][u]) s[d] || (this.deletedStates[e][u][d] = null) - } else - for (const d in s) this.deletedStates[e] && this.deletedStates[e][u] && this.deletedStates[e][u][d] === null && delete this.deletedStates[e][u][d] - } - removeFeatureState(e, n, s) { - if (this.deletedStates[e] === null) return; - const u = String(n); - if (this.deletedStates[e] = this.deletedStates[e] || {}, s && n !== void 0) this.deletedStates[e][u] !== null && (this.deletedStates[e][u] = this.deletedStates[e][u] || {}, this.deletedStates[e][u][s] = null); - else if (n !== void 0) - if (this.stateChanges[e] && this.stateChanges[e][u]) - for (s in this.deletedStates[e][u] = {}, this.stateChanges[e][u]) this.deletedStates[e][u][s] = null; - else this.deletedStates[e][u] = null; - else this.deletedStates[e] = null - } - getState(e, n) { - const s = String(n), - u = o.e({}, (this.state[e] || {})[s], (this.stateChanges[e] || {})[s]); - if (this.deletedStates[e] === null) return {}; - if (this.deletedStates[e]) { - const d = this.deletedStates[e][n]; - if (d === null) return {}; - for (const m in d) delete u[m] - } - return u - } - initializeTileState(e, n) { - e.setFeatureState(this.state, n) - } - coalesceChanges(e, n) { - const s = {}; - for (const u in this.stateChanges) { - this.state[u] = this.state[u] || {}; - const d = {}; - for (const m in this.stateChanges[u]) this.state[u][m] || (this.state[u][m] = {}), o.e(this.state[u][m], this.stateChanges[u][m]), d[m] = this.state[u][m]; - s[u] = d - } - for (const u in this.deletedStates) { - this.state[u] = this.state[u] || {}; - const d = {}; - if (this.deletedStates[u] === null) - for (const m in this.state[u]) d[m] = {}, this.state[u][m] = {}; - else - for (const m in this.deletedStates[u]) { - if (this.deletedStates[u][m] === null) this.state[u][m] = {}; - else - for (const y of Object.keys(this.deletedStates[u][m])) delete this.state[u][m][y]; - d[m] = this.state[u][m] - } - s[u] = s[u] || {}, o.e(s[u], d) - } - if (this.stateChanges = {}, this.deletedStates = {}, Object.keys(s).length !== 0) - for (const u in e) e[u].setFeatureState(s, n) - } - } - const q = 89.25; - - function G(h, e) { - const n = o.ah(e.lat, -o.ai, o.ai); - return new o.P(o.V(e.lng) * h, o.U(n) * h) - } - - function K(h, e) { - return new o.a1(e.x / h, e.y / h).toLngLat() - } - - function le(h) { - return h.cameraToCenterDistance * Math.min(.85 * Math.tan(o.ae(90 - h.pitch)), Math.tan(o.ae(q - h.pitch))) - } - - function ve(h, e) { - const n = h.canonical, - s = e / o.af(n.z), - u = n.x + Math.pow(2, n.z) * h.wrap, - d = o.ag(new Float64Array(16)); - return o.M(d, d, [u * s, n.y * s, 0]), o.N(d, d, [s / o.$, s / o.$, 1]), d - } - - function Le(h, e, n, s, u) { - const d = o.a1.fromLngLat(h, e), - m = u * o.aj(1, h.lat), - y = m * Math.cos(o.ae(n)), - w = Math.sqrt(m * m - y * y), - P = w * Math.sin(o.ae(-s)), - M = w * Math.cos(o.ae(-s)); - return new o.a1(d.x + P, d.y + M, d.z + y) - } - - function Ce(h, e, n) { - const s = e.intersectsFrustum(h); - if (!n || s === 0) return s; - const u = e.intersectsPlane(n); - return u === 0 ? 0 : s === 2 && u === 2 ? 2 : 1 - } - - function Ze(h, e, n) { - let s = 0; - const u = (n - e) / 10; - for (let d = 0; d < 10; d++) s += u * Math.pow(Math.cos(e + (d + .5) / 10 * (n - e)), h); - return s - } - - function ot(h, e) { - return function(n, s, u, d, m) { - const y = 2 * ((h - 1) / o.ak(Math.cos(o.ae(q - m)) / Math.cos(o.ae(q))) - 1), - w = Math.acos(u / d), - P = 2 * Ze(y - 1, 0, o.ae(m / 2)), - M = Math.min(o.ae(q), w + o.ae(m / 2)), - D = Ze(y - 1, Math.min(M, w - o.ae(m / 2)), M), - z = Math.atan(s / u), - B = Math.hypot(s, u); - let U = n; - return U += o.ak(d / B / Math.max(.5, Math.cos(o.ae(m / 2)))), U += y * o.ak(Math.cos(z)) / 2, U -= o.ak(Math.max(1, D / P / e)) / 2, U - } - } - const Ye = ot(9.314, 3); - - function Ot(h, e) { - const n = (e.roundZoom ? Math.round : Math.floor)(h.zoom + o.ak(h.tileSize / e.tileSize)); - return Math.max(0, n) - } - - function xe(h, e) { - const n = h.getCameraFrustum(), - s = h.getClippingPlane(), - u = h.screenPointToMercatorCoordinate(h.getCameraPoint()), - d = o.a1.fromLngLat(h.center, h.elevation); - u.z = d.z + Math.cos(h.pitchInRadians) * h.cameraToCenterDistance / h.worldSize; - const m = h.getCoveringTilesDetailsProvider(), - y = m.allowVariableZoom(h, e), - w = Ot(h, e), - P = e.minzoom || 0, - M = e.maxzoom !== void 0 ? e.maxzoom : h.maxZoom, - D = Math.min(Math.max(0, w), M), - z = Math.pow(2, D), - B = [z * u.x, z * u.y, 0], - U = [z * d.x, z * d.y, 0], - ee = Math.hypot(d.x - u.x, d.y - u.y), - J = Math.abs(d.z - u.z), - re = Math.hypot(ee, J), - se = ge => ({ - zoom: 0, - x: 0, - y: 0, - wrap: ge, - fullyVisible: !1 - }), - de = [], - ue = []; - if (h.renderWorldCopies && m.allowWorldCopies()) - for (let ge = 1; ge <= 3; ge++) de.push(se(-ge)), de.push(se(ge)); - for (de.push(se(0)); de.length > 0;) { - const ge = de.pop(), - Te = ge.x, - he = ge.y; - let De = ge.fullyVisible; - const He = { - x: Te, - y: he, - z: ge.zoom - }, - je = m.getTileBoundingVolume(He, ge.wrap, h.elevation, e); - if (!De) { - const Nt = Ce(n, je, s); - if (Nt === 0) continue; - De = Nt === 2 - } - const qe = m.distanceToTile2d(u.x, u.y, He, je); - let $e = w; - y && ($e = (e.calculateTileZoom || Ye)(h.zoom + o.ak(h.tileSize / e.tileSize), qe, J, re, h.fov)), $e = (e.roundZoom ? Math.round : Math.floor)($e), $e = Math.max(0, $e); - const Rt = Math.min($e, M); - if (ge.wrap = m.getWrap(d, He, ge.wrap), ge.zoom >= Rt) { - if (ge.zoom < P) continue; - const Nt = D - ge.zoom, - yt = B[0] - .5 - (Te << Nt), - sr = B[1] - .5 - (he << Nt), - Xr = e.reparseOverscaled ? Math.max(ge.zoom, $e) : ge.zoom; - ue.push({ - tileID: new o.Z(ge.zoom === M ? Xr : ge.zoom, ge.wrap, ge.zoom, Te, he), - distanceSq: o.al([U[0] - .5 - Te, U[1] - .5 - he]), - tileDistanceToCamera: Math.sqrt(yt * yt + sr * sr) - }) - } else - for (let Nt = 0; Nt < 4; Nt++) de.push({ - zoom: ge.zoom + 1, - x: (Te << 1) + Nt % 2, - y: (he << 1) + (Nt >> 1), - wrap: ge.wrap, - fullyVisible: De - }) - } - return ue.sort(((ge, Te) => ge.distanceSq - Te.distanceSq)).map((ge => ge.tileID)) - } - const At = o.a2.fromPoints([new o.P(0, 0), new o.P(o.$, o.$)]); - class Pt extends o.E { - constructor(e, n, s) { - super(), this.id = e, this.dispatcher = s, this.on("data", (u => this._dataHandler(u))), this.on("dataloading", (() => { - this._sourceErrored = !1 - })), this.on("error", (() => { - this._sourceErrored = this._source.loaded() - })), this._source = ((u, d, m, y) => { - const w = new(jr(d.type))(u, d, m, y); - if (w.id !== u) throw new Error(`Expected Source id to be ${u} instead of ${w.id}`); - return w - })(e, n, s, this), this._tiles = {}, this._cache = new ce(0, (u => this._unloadTile(u))), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._maxTileCacheZoomLevels = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new O, this._didEmitContent = !1, this._updated = !1 - } - onAdd(e) { - this.map = e, this._maxTileCacheSize = e ? e._maxTileCacheSize : null, this._maxTileCacheZoomLevels = e ? e._maxTileCacheZoomLevels : null, this._source && this._source.onAdd && this._source.onAdd(e) - } - onRemove(e) { - this.clearTiles(), this._source && this._source.onRemove && this._source.onRemove(e) - } - 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 e in this._tiles) { - const n = this._tiles[e]; - if (n.state !== "loaded" && n.state !== "errored") return !1 - } - return !0 - } - getSource() { - return this._source - } - pause() { - this._paused = !0 - } - resume() { - if (!this._paused) return; - const e = this._shouldReloadOnResume; - this._paused = !1, this._shouldReloadOnResume = !1, e && this.reload(), this.transform && this.update(this.transform, this.terrain) - } - _loadTile(e, n, s) { - return o._(this, void 0, void 0, (function*() { - try { - yield this._source.loadTile(e), this._tileLoaded(e, n, s) - } catch (u) { - e.state = "errored", u.status !== 404 ? this._source.fire(new o.k(u, { - tile: e - })) : this.update(this.transform, this.terrain) - } - })) - } - _unloadTile(e) { - this._source.unloadTile && this._source.unloadTile(e) - } - _abortTile(e) { - this._source.abortTile && this._source.abortTile(e), this._source.fire(new o.l("dataabort", { - tile: e, - coord: e.tileID, - dataType: "source" - })) - } - serialize() { - return this._source.serialize() - } - prepare(e) { - this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null); - for (const n in this._tiles) { - const s = this._tiles[n]; - s.upload(e), s.prepare(this.map.style.imageManager) - } - } - getIds() { - return Object.values(this._tiles).map((e => e.tileID)).sort(kt).map((e => e.key)) - } - getRenderableIds(e) { - const n = []; - for (const s in this._tiles) this._isIdRenderable(s, e) && n.push(this._tiles[s]); - return e ? n.sort(((s, u) => { - const d = s.tileID, - m = u.tileID, - y = new o.P(d.canonical.x, d.canonical.y)._rotate(-this.transform.bearingInRadians), - w = new o.P(m.canonical.x, m.canonical.y)._rotate(-this.transform.bearingInRadians); - return d.overscaledZ - m.overscaledZ || w.y - y.y || w.x - y.x - })).map((s => s.tileID.key)) : n.map((s => s.tileID)).sort(kt).map((s => s.key)) - } - hasRenderableParent(e) { - const n = this.findLoadedParent(e, 0); - return !!n && this._isIdRenderable(n.tileID.key) - } - _isIdRenderable(e, n) { - return this._tiles[e] && this._tiles[e].hasData() && !this._coveredTiles[e] && (n || !this._tiles[e].holdingForFade()) - } - reload(e) { - if (this._paused) this._shouldReloadOnResume = !0; - else { - this._cache.reset(); - for (const n in this._tiles) e ? this._reloadTile(n, "expired") : this._tiles[n].state !== "errored" && this._reloadTile(n, "reloading") - } - } - _reloadTile(e, n) { - return o._(this, void 0, void 0, (function*() { - const s = this._tiles[e]; - s && (s.state !== "loading" && (s.state = n), yield this._loadTile(s, e, n)) - })) - } - _tileLoaded(e, n, s) { - e.timeAdded = ye.now(), s === "expired" && (e.refreshedUponExpiration = !0), this._setTileReloadTimer(n, e), this.getSource().type === "raster-dem" && e.dem && this._backfillDEM(e), this._state.initializeTileState(e, this.map ? this.map.painter : null), e.aborted || this._source.fire(new o.l("data", { - dataType: "source", - tile: e, - coord: e.tileID - })) - } - _backfillDEM(e) { - const n = this.getRenderableIds(); - for (let u = 0; u < n.length; u++) { - const d = n[u]; - if (e.neighboringTiles && e.neighboringTiles[d]) { - const m = this.getTileByID(d); - s(e, m), s(m, e) - } - } - - function s(u, d) { - u.needsHillshadePrepare = !0, u.needsTerrainPrepare = !0; - let m = d.tileID.canonical.x - u.tileID.canonical.x; - const y = d.tileID.canonical.y - u.tileID.canonical.y, - w = Math.pow(2, u.tileID.canonical.z), - P = d.tileID.key; - m === 0 && y === 0 || Math.abs(y) > 1 || (Math.abs(m) > 1 && (Math.abs(m + w) === 1 ? m += w : Math.abs(m - w) === 1 && (m -= w)), d.dem && u.dem && (u.dem.backfillBorder(d.dem, m, y), u.neighboringTiles && u.neighboringTiles[P] && (u.neighboringTiles[P].backfilled = !0))) - } - } - getTile(e) { - return this.getTileByID(e.key) - } - getTileByID(e) { - return this._tiles[e] - } - _retainLoadedChildren(e, n, s, u) { - for (const d in this._tiles) { - let m = this._tiles[d]; - if (u[d] || !m.hasData() || m.tileID.overscaledZ <= n || m.tileID.overscaledZ > s) continue; - let y = m.tileID; - for (; m && m.tileID.overscaledZ > n + 1;) { - const P = m.tileID.scaledTo(m.tileID.overscaledZ - 1); - m = this._tiles[P.key], m && m.hasData() && (y = P) - } - let w = y; - for (; w.overscaledZ > n;) - if (w = w.scaledTo(w.overscaledZ - 1), e[w.key] || e[w.canonical.key]) { - u[y.key] = y; - break - } - } - } - findLoadedParent(e, n) { - if (e.key in this._loadedParentTiles) { - const s = this._loadedParentTiles[e.key]; - return s && s.tileID.overscaledZ >= n ? s : null - } - for (let s = e.overscaledZ - 1; s >= n; s--) { - const u = e.scaledTo(s), - d = this._getLoadedTile(u); - if (d) return d - } - } - findLoadedSibling(e) { - return this._getLoadedTile(e) - } - _getLoadedTile(e) { - const n = this._tiles[e.key]; - return n && n.hasData() ? n : this._cache.getByKey(e.wrapped().key) - } - updateCacheSize(e) { - const n = Math.ceil(e.width / this._source.tileSize) + 1, - s = Math.ceil(e.height / this._source.tileSize) + 1, - u = Math.floor(n * s * (this._maxTileCacheZoomLevels === null ? o.a.MAX_TILE_CACHE_ZOOM_LEVELS : this._maxTileCacheZoomLevels)), - d = typeof this._maxTileCacheSize == "number" ? Math.min(this._maxTileCacheSize, u) : u; - this._cache.setMaxSize(d) - } - handleWrapJump(e) { - const n = Math.round((e - (this._prevLng === void 0 ? e : this._prevLng)) / 360); - if (this._prevLng = e, n) { - const s = {}; - for (const u in this._tiles) { - const d = this._tiles[u]; - d.tileID = d.tileID.unwrapTo(d.tileID.wrap + n), s[d.tileID.key] = d - } - this._tiles = s; - for (const u in this._timers) clearTimeout(this._timers[u]), delete this._timers[u]; - for (const u in this._tiles) this._setTileReloadTimer(u, this._tiles[u]) - } - } - _updateCoveredAndRetainedTiles(e, n, s, u, d, m) { - const y = {}, - w = {}, - P = Object.keys(e), - M = ye.now(); - for (const D of P) { - const z = e[D], - B = this._tiles[D]; - if (!B || B.fadeEndTime !== 0 && B.fadeEndTime <= M) continue; - const U = this.findLoadedParent(z, n), - ee = this.findLoadedSibling(z), - J = U || ee || null; - J && (this._addTile(J.tileID), y[J.tileID.key] = J.tileID), w[D] = z - } - this._retainLoadedChildren(w, u, s, e); - for (const D in y) e[D] || (this._coveredTiles[D] = !0, e[D] = y[D]); - if (m) { - const D = {}, - z = {}; - for (const B of d) this._tiles[B.key].hasData() ? D[B.key] = B : z[B.key] = B; - for (const B in z) { - const U = z[B].children(this._source.maxzoom); - this._tiles[U[0].key] && this._tiles[U[1].key] && this._tiles[U[2].key] && this._tiles[U[3].key] && (D[U[0].key] = e[U[0].key] = U[0], D[U[1].key] = e[U[1].key] = U[1], D[U[2].key] = e[U[2].key] = U[2], D[U[3].key] = e[U[3].key] = U[3], delete z[B]) - } - for (const B in z) { - const U = z[B], - ee = this.findLoadedParent(U, this._source.minzoom), - J = this.findLoadedSibling(U), - re = ee || J || null; - if (re) { - D[re.tileID.key] = e[re.tileID.key] = re.tileID; - for (const se in D) D[se].isChildOf(re.tileID) && delete D[se] - } - } - for (const B in this._tiles) D[B] || (this._coveredTiles[B] = !0) - } - } - update(e, n) { - if (!this._sourceLoaded || this._paused) return; - let s; - this.transform = e, this.terrain = n, this.updateCacheSize(e), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used || this.usedForTerrain ? this._source.tileID ? s = e.getVisibleUnwrappedCoordinates(this._source.tileID).map((M => new o.Z(M.canonical.z, M.wrap, M.canonical.z, M.canonical.x, M.canonical.y))) : (s = xe(e, { - tileSize: this.usedForTerrain ? this.tileSize : this._source.tileSize, - minzoom: this._source.minzoom, - maxzoom: this._source.maxzoom, - roundZoom: !this.usedForTerrain && this._source.roundZoom, - reparseOverscaled: this._source.reparseOverscaled, - terrain: n, - calculateTileZoom: this._source.calculateTileZoom - }), this._source.hasTile && (s = s.filter((M => this._source.hasTile(M))))) : s = []; - const u = Ot(e, this._source), - d = Math.max(u - Pt.maxOverzooming, this._source.minzoom), - m = Math.max(u + Pt.maxUnderzooming, this._source.minzoom); - if (this.usedForTerrain) { - const M = {}; - for (const D of s) - if (D.canonical.z > this._source.minzoom) { - const z = D.scaledTo(D.canonical.z - 1); - M[z.key] = z; - const B = D.scaledTo(Math.max(this._source.minzoom, Math.min(D.canonical.z, 5))); - M[B.key] = B - } s = s.concat(Object.values(M)) - } - const y = s.length === 0 && !this._updated && this._didEmitContent; - this._updated = !0, y && this.fire(new o.l("data", { - sourceDataType: "idle", - dataType: "source", - sourceId: this.id - })); - const w = this._updateRetainedTiles(s, u); - Wt(this._source.type) && this._updateCoveredAndRetainedTiles(w, d, m, u, s, n); - for (const M in w) this._tiles[M].clearFadeHold(); - const P = o.am(this._tiles, w); - for (const M of P) { - const D = this._tiles[M]; - D.hasSymbolBuckets && !D.holdingForFade() ? D.setHoldDuration(this.map._fadeDuration) : D.hasSymbolBuckets && !D.symbolFadeFinished() || this._removeTile(M) - } - this._updateLoadedParentTileCache(), this._updateLoadedSiblingTileCache() - } - releaseSymbolFadeTiles() { - for (const e in this._tiles) this._tiles[e].holdingForFade() && this._removeTile(e) - } - _updateRetainedTiles(e, n) { - var s; - const u = {}, - d = {}, - m = Math.max(n - Pt.maxOverzooming, this._source.minzoom), - y = Math.max(n + Pt.maxUnderzooming, this._source.minzoom), - w = {}; - for (const P of e) { - const M = this._addTile(P); - u[P.key] = P, M.hasData() || n < this._source.maxzoom && (w[P.key] = P) - } - this._retainLoadedChildren(w, n, y, u); - for (const P of e) { - let M = this._tiles[P.key]; - if (M.hasData()) continue; - if (n + 1 > this._source.maxzoom) { - const z = P.children(this._source.maxzoom)[0], - B = this.getTile(z); - if (B && B.hasData()) { - u[z.key] = z; - continue - } - } else { - const z = P.children(this._source.maxzoom); - if (u[z[0].key] && u[z[1].key] && u[z[2].key] && u[z[3].key]) continue - } - let D = M.wasRequested(); - for (let z = P.overscaledZ - 1; z >= m; --z) { - const B = P.scaledTo(z); - if (d[B.key]) break; - if (d[B.key] = !0, M = this.getTile(B), !M && D && (M = this._addTile(B)), M) { - const U = M.hasData(); - if ((U || !(!((s = this.map) === null || s === void 0) && s.cancelPendingTileRequestsWhileZooming) || D) && (u[B.key] = B), D = M.wasRequested(), U) break - } - } - } - return u - } - _updateLoadedParentTileCache() { - this._loadedParentTiles = {}; - for (const e in this._tiles) { - const n = []; - let s, u = this._tiles[e].tileID; - for (; u.overscaledZ > 0;) { - if (u.key in this._loadedParentTiles) { - s = this._loadedParentTiles[u.key]; - break - } - n.push(u.key); - const d = u.scaledTo(u.overscaledZ - 1); - if (s = this._getLoadedTile(d), s) break; - u = d - } - for (const d of n) this._loadedParentTiles[d] = s - } - } - _updateLoadedSiblingTileCache() { - this._loadedSiblingTiles = {}; - for (const e in this._tiles) { - const n = this._tiles[e].tileID, - s = this._getLoadedTile(n); - this._loadedSiblingTiles[n.key] = s - } - } - _addTile(e) { - let n = this._tiles[e.key]; - if (n) return n; - n = this._cache.getAndRemove(e), n && (this._setTileReloadTimer(e.key, n), n.tileID = e, this._state.initializeTileState(n, this.map ? this.map.painter : null), this._cacheTimers[e.key] && (clearTimeout(this._cacheTimers[e.key]), delete this._cacheTimers[e.key], this._setTileReloadTimer(e.key, n))); - const s = n; - return n || (n = new Nr(e, this._source.tileSize * e.overscaleFactor()), this._loadTile(n, e.key, n.state)), n.uses++, this._tiles[e.key] = n, s || this._source.fire(new o.l("dataloading", { - tile: n, - coord: n.tileID, - dataType: "source" - })), n - } - _setTileReloadTimer(e, n) { - e in this._timers && (clearTimeout(this._timers[e]), delete this._timers[e]); - const s = n.getExpiryTimeout(); - s && (this._timers[e] = setTimeout((() => { - this._reloadTile(e, "expired"), delete this._timers[e] - }), s)) - } - refreshTiles(e) { - for (const n in this._tiles)(this._isIdRenderable(n) || this._tiles[n].state == "errored") && e.some((s => s.equals(this._tiles[n].tileID.canonical))) && this._reloadTile(n, "expired") - } - _removeTile(e) { - const n = this._tiles[e]; - n && (n.uses--, delete this._tiles[e], this._timers[e] && (clearTimeout(this._timers[e]), delete this._timers[e]), n.uses > 0 || (n.hasData() && n.state !== "reloading" ? this._cache.add(n.tileID, n, n.getExpiryTimeout()) : (n.aborted = !0, this._abortTile(n), this._unloadTile(n)))) - } - _dataHandler(e) { - const n = e.sourceDataType; - e.dataType === "source" && n === "metadata" && (this._sourceLoaded = !0), this._sourceLoaded && !this._paused && e.dataType === "source" && n === "content" && (this.reload(e.sourceDataChanged), this.transform && this.update(this.transform, this.terrain), this._didEmitContent = !0) - } - clearTiles() { - this._shouldReloadOnResume = !1, this._paused = !1; - for (const e in this._tiles) this._removeTile(e); - this._cache.reset() - } - tilesIn(e, n, s) { - const u = [], - d = this.transform; - if (!d) return u; - const m = d.getCoveringTilesDetailsProvider().allowWorldCopies(), - y = s ? d.getCameraQueryGeometry(e) : e, - w = B => d.screenPointToMercatorCoordinate(B, this.terrain), - P = this.transformBbox(e, w, !m), - M = this.transformBbox(y, w, !m), - D = this.getIds(), - z = o.a2.fromPoints(M); - for (let B = 0; B < D.length; B++) { - const U = this._tiles[D[B]]; - if (U.holdingForFade()) continue; - const ee = m ? [U.tileID] : [U.tileID.unwrapTo(-1), U.tileID.unwrapTo(0)], - J = Math.pow(2, d.zoom - U.tileID.overscaledZ), - re = n * U.queryPadding * o.$ / U.tileSize / J; - for (const se of ee) { - const de = z.map((ue => se.getTilePoint(new o.a1(ue.x, ue.y)))); - if (de.expandBy(re), de.intersects(At)) { - const ue = P.map((Te => se.getTilePoint(Te))), - ge = M.map((Te => se.getTilePoint(Te))); - u.push({ - tile: U, - tileID: m ? se : se.unwrapTo(0), - queryGeometry: ue, - cameraQueryGeometry: ge, - scale: J - }) - } - } - } - return u - } - transformBbox(e, n, s) { - let u = e.map(n); - if (s) { - const d = o.a2.fromPoints(e); - d.shrinkBy(.001 * Math.min(d.width(), d.height())); - const m = d.map(n); - o.a2.fromPoints(u).covers(m) || (u = u.map((y => y.x > .5 ? new o.a1(y.x - 1, y.y, y.z) : y))) - } - return u - } - getVisibleCoordinates(e) { - const n = this.getRenderableIds(e).map((s => this._tiles[s].tileID)); - return this.transform && this.transform.populateCache(n), n - } - hasTransition() { - if (this._source.hasTransition()) return !0; - if (Wt(this._source.type)) { - const e = ye.now(); - for (const n in this._tiles) - if (this._tiles[n].fadeEndTime >= e) return !0 - } - return !1 - } - setFeatureState(e, n, s) { - this._state.updateState(e = e || "_geojsonTileLayer", n, s) - } - removeFeatureState(e, n, s) { - this._state.removeFeatureState(e = e || "_geojsonTileLayer", n, s) - } - getFeatureState(e, n) { - return this._state.getState(e = e || "_geojsonTileLayer", n) - } - setDependencies(e, n, s) { - const u = this._tiles[e]; - u && u.setDependencies(n, s) - } - reloadTilesForDependencies(e, n) { - for (const s in this._tiles) this._tiles[s].hasDependency(e, n) && this._reloadTile(s, "reloading"); - this._cache.filter((s => !s.hasDependency(e, n))) - } - } - - function kt(h, e) { - const n = Math.abs(2 * h.wrap) - +(h.wrap < 0), - s = Math.abs(2 * e.wrap) - +(e.wrap < 0); - return h.overscaledZ - e.overscaledZ || s - n || e.canonical.y - h.canonical.y || e.canonical.x - h.canonical.x - } - - function Wt(h) { - return h === "raster" || h === "image" || h === "video" - } - Pt.maxOverzooming = 10, Pt.maxUnderzooming = 3; - class Lr { - constructor(e, n) { - this.reset(e, n) - } - reset(e, n) { - this.points = e || [], this._distances = [0]; - for (let s = 1; s < this.points.length; s++) this._distances[s] = this._distances[s - 1] + this.points[s].dist(this.points[s - 1]); - this.length = this._distances[this._distances.length - 1], this.padding = Math.min(n || 0, .5 * this.length), this.paddedLength = this.length - 2 * this.padding - } - lerp(e) { - if (this.points.length === 1) return this.points[0]; - e = o.ah(e, 0, 1); - let n = 1, - s = this._distances[n]; - const u = e * this.paddedLength + this.padding; - for (; s < u && n < this._distances.length;) s = this._distances[++n]; - const d = n - 1, - m = this._distances[d], - y = s - m, - w = y > 0 ? (u - m) / y : 0; - return this.points[d].mult(1 - w).add(this.points[n].mult(w)) - } - } - - function Kr(h, e) { - let n = !0; - return h === "always" || h !== "never" && e !== "never" || (n = !1), n - } - class Hr { - constructor(e, n, s) { - const u = this.boxCells = [], - d = this.circleCells = []; - this.xCellCount = Math.ceil(e / s), this.yCellCount = Math.ceil(n / s); - for (let m = 0; m < this.xCellCount * this.yCellCount; m++) u.push([]), d.push([]); - this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = e, this.height = n, this.xScale = this.xCellCount / e, this.yScale = this.yCellCount / n, this.boxUid = 0, this.circleUid = 0 - } - keysLength() { - return this.boxKeys.length + this.circleKeys.length - } - insert(e, n, s, u, d) { - this._forEachCell(n, s, u, d, this._insertBoxCell, this.boxUid++), this.boxKeys.push(e), this.bboxes.push(n), this.bboxes.push(s), this.bboxes.push(u), this.bboxes.push(d) - } - insertCircle(e, n, s, u) { - this._forEachCell(n - u, s - u, n + u, s + u, this._insertCircleCell, this.circleUid++), this.circleKeys.push(e), this.circles.push(n), this.circles.push(s), this.circles.push(u) - } - _insertBoxCell(e, n, s, u, d, m) { - this.boxCells[d].push(m) - } - _insertCircleCell(e, n, s, u, d, m) { - this.circleCells[d].push(m) - } - _query(e, n, s, u, d, m, y) { - if (s < 0 || e > this.width || u < 0 || n > this.height) return []; - const w = []; - if (e <= 0 && n <= 0 && this.width <= s && this.height <= u) { - if (d) return [{ - key: null, - x1: e, - y1: n, - x2: s, - y2: u - }]; - for (let P = 0; P < this.boxKeys.length; P++) w.push({ - key: this.boxKeys[P], - x1: this.bboxes[4 * P], - y1: this.bboxes[4 * P + 1], - x2: this.bboxes[4 * P + 2], - y2: this.bboxes[4 * P + 3] - }); - for (let P = 0; P < this.circleKeys.length; P++) { - const M = this.circles[3 * P], - D = this.circles[3 * P + 1], - z = this.circles[3 * P + 2]; - w.push({ - key: this.circleKeys[P], - x1: M - z, - y1: D - z, - x2: M + z, - y2: D + z - }) - } - } else this._forEachCell(e, n, s, u, this._queryCell, w, { - hitTest: d, - overlapMode: m, - seenUids: { - box: {}, - circle: {} - } - }, y); - return w - } - query(e, n, s, u) { - return this._query(e, n, s, u, !1, null) - } - hitTest(e, n, s, u, d, m) { - return this._query(e, n, s, u, !0, d, m).length > 0 - } - hitTestCircle(e, n, s, u, d) { - const m = e - s, - y = e + s, - w = n - s, - P = n + s; - if (y < 0 || m > this.width || P < 0 || w > this.height) return !1; - const M = []; - return this._forEachCell(m, w, y, P, this._queryCellCircle, M, { - hitTest: !0, - overlapMode: u, - circle: { - x: e, - y: n, - radius: s - }, - seenUids: { - box: {}, - circle: {} - } - }, d), M.length > 0 - } - _queryCell(e, n, s, u, d, m, y, w) { - const { - seenUids: P, - hitTest: M, - overlapMode: D - } = y, z = this.boxCells[d]; - if (z !== null) { - const U = this.bboxes; - for (const ee of z) - if (!P.box[ee]) { - P.box[ee] = !0; - const J = 4 * ee, - re = this.boxKeys[ee]; - if (e <= U[J + 2] && n <= U[J + 3] && s >= U[J + 0] && u >= U[J + 1] && (!w || w(re)) && (!M || !Kr(D, re.overlapMode)) && (m.push({ - key: re, - x1: U[J], - y1: U[J + 1], - x2: U[J + 2], - y2: U[J + 3] - }), M)) return !0 - } - } - const B = this.circleCells[d]; - if (B !== null) { - const U = this.circles; - for (const ee of B) - if (!P.circle[ee]) { - P.circle[ee] = !0; - const J = 3 * ee, - re = this.circleKeys[ee]; - if (this._circleAndRectCollide(U[J], U[J + 1], U[J + 2], e, n, s, u) && (!w || w(re)) && (!M || !Kr(D, re.overlapMode))) { - const se = U[J], - de = U[J + 1], - ue = U[J + 2]; - if (m.push({ - key: re, - x1: se - ue, - y1: de - ue, - x2: se + ue, - y2: de + ue - }), M) return !0 - } - } - } - return !1 - } - _queryCellCircle(e, n, s, u, d, m, y, w) { - const { - circle: P, - seenUids: M, - overlapMode: D - } = y, z = this.boxCells[d]; - if (z !== null) { - const U = this.bboxes; - for (const ee of z) - if (!M.box[ee]) { - M.box[ee] = !0; - const J = 4 * ee, - re = this.boxKeys[ee]; - if (this._circleAndRectCollide(P.x, P.y, P.radius, U[J + 0], U[J + 1], U[J + 2], U[J + 3]) && (!w || w(re)) && !Kr(D, re.overlapMode)) return m.push(!0), !0 - } - } - const B = this.circleCells[d]; - if (B !== null) { - const U = this.circles; - for (const ee of B) - if (!M.circle[ee]) { - M.circle[ee] = !0; - const J = 3 * ee, - re = this.circleKeys[ee]; - if (this._circlesCollide(U[J], U[J + 1], U[J + 2], P.x, P.y, P.radius) && (!w || w(re)) && !Kr(D, re.overlapMode)) return m.push(!0), !0 - } - } - } - _forEachCell(e, n, s, u, d, m, y, w) { - const P = this._convertToXCellCoord(e), - M = this._convertToYCellCoord(n), - D = this._convertToXCellCoord(s), - z = this._convertToYCellCoord(u); - for (let B = P; B <= D; B++) - for (let U = M; U <= z; U++) - if (d.call(this, e, n, s, u, this.xCellCount * U + B, m, y, w)) return - } - _convertToXCellCoord(e) { - return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(e * this.xScale))) - } - _convertToYCellCoord(e) { - return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(e * this.yScale))) - } - _circlesCollide(e, n, s, u, d, m) { - const y = u - e, - w = d - n, - P = s + m; - return P * P > y * y + w * w - } - _circleAndRectCollide(e, n, s, u, d, m, y) { - const w = (m - u) / 2, - P = Math.abs(e - (u + w)); - if (P > w + s) return !1; - const M = (y - d) / 2, - D = Math.abs(n - (d + M)); - if (D > M + s) return !1; - if (P <= w || D <= M) return !0; - const z = P - w, - B = D - M; - return z * z + B * B <= s * s - } - } - - function $r(h, e, n) { - const s = o.L(); - if (!h) { - const { - vecSouth: D, - vecEast: z - } = gr(e), B = W(); - B[0] = z[0], B[1] = z[1], B[2] = D[0], B[3] = D[1], u = B, (M = (m = (d = B)[0]) * (P = d[3]) - (w = d[2]) * (y = d[1])) && (u[0] = P * (M = 1 / M), u[1] = -y * M, u[2] = -w * M, u[3] = m * M), s[0] = B[0], s[1] = B[1], s[4] = B[2], s[5] = B[3] - } - var u, d, m, y, w, P, M; - return o.N(s, s, [1 / n, 1 / n, 1]), s - } - - function mr(h, e, n, s) { - if (h) { - const u = o.L(); - if (!e) { - const { - vecSouth: d, - vecEast: m - } = gr(n); - u[0] = m[0], u[1] = m[1], u[4] = d[0], u[5] = d[1] - } - return o.N(u, u, [s, s, 1]), u - } - return n.pixelsToClipSpaceMatrix - } - - function gr(h) { - const e = Math.cos(h.rollInRadians), - n = Math.sin(h.rollInRadians), - s = Math.cos(h.pitchInRadians), - u = Math.cos(h.bearingInRadians), - d = Math.sin(h.bearingInRadians), - m = o.ar(); - m[0] = -u * s * n - d * e, m[1] = -d * s * n + u * e; - const y = o.as(m); - y < 1e-9 ? o.at(m) : o.au(m, m, 1 / y); - const w = o.ar(); - w[0] = u * s * e - d * n, w[1] = d * s * e + u * n; - const P = o.as(w); - return P < 1e-9 ? o.at(w) : o.au(w, w, 1 / P), { - vecEast: w, - vecSouth: m - } - } - - function ai(h, e, n, s) { - let u; - s ? (u = [h, e, s(h, e), 1], o.aw(u, u, n)) : (u = [h, e, 0, 1], Li(u, u, n)); - const d = u[3]; - return { - point: new o.P(u[0] / d, u[1] / d), - signedDistanceFromCamera: d, - isOccluded: !1 - } - } - - function Tt(h, e) { - return .5 + h / e * .5 - } - - function Ci(h, e) { - return h.x >= -e[0] && h.x <= e[0] && h.y >= -e[1] && h.y <= e[1] - } - - function di(h, e, n, s, u, d, m, y, w, P, M, D, z) { - const B = n ? h.textSizeData : h.iconSizeData, - U = o.an(B, e.transform.zoom), - ee = [256 / e.width * 2 + 1, 256 / e.height * 2 + 1], - J = n ? h.text.dynamicLayoutVertexArray : h.icon.dynamicLayoutVertexArray; - J.clear(); - const re = h.lineVertexArray, - se = n ? h.text.placedSymbolArray : h.icon.placedSymbolArray, - de = e.transform.width / e.transform.height; - let ue = !1; - for (let ge = 0; ge < se.length; ge++) { - const Te = se.get(ge); - if (Te.hidden || Te.writingMode === o.ao.vertical && !ue) { - mi(Te.numGlyphs, J); - continue - } - ue = !1; - const he = new o.P(Te.anchorX, Te.anchorY), - De = { - getElevation: z, - pitchedLabelPlaneMatrix: s, - lineVertexArray: re, - pitchWithMap: d, - projectionCache: { - projections: {}, - offsets: {}, - cachedAnchorPoint: void 0, - anyProjectionOccluded: !1 - }, - transform: e.transform, - tileAnchorPoint: he, - unwrappedTileID: w, - width: P, - height: M, - translation: D - }, - He = li(Te.anchorX, Te.anchorY, De); - if (!Ci(He.point, ee)) { - mi(Te.numGlyphs, J); - continue - } - const je = Tt(e.transform.cameraToCenterDistance, He.signedDistanceFromCamera), - qe = o.ap(B, U, Te), - $e = d ? qe * e.transform.getPitchedTextCorrection(Te.anchorX, Te.anchorY, w) / je : qe * je, - Rt = Ke({ - projectionContext: De, - pitchedLabelPlaneMatrixInverse: u, - symbol: Te, - fontSize: $e, - flip: !1, - keepUpright: m, - glyphOffsetArray: h.glyphOffsetArray, - dynamicLayoutVertexArray: J, - aspectRatio: de, - rotateToLine: y - }); - ue = Rt.useVertical, (Rt.notEnoughRoom || ue || Rt.needsFlipping && Ke({ - projectionContext: De, - pitchedLabelPlaneMatrixInverse: u, - symbol: Te, - fontSize: $e, - flip: !0, - keepUpright: m, - glyphOffsetArray: h.glyphOffsetArray, - dynamicLayoutVertexArray: J, - aspectRatio: de, - rotateToLine: y - }).notEnoughRoom) && mi(Te.numGlyphs, J) - } - n ? h.text.dynamicLayoutVertexBuffer.updateData(J) : h.icon.dynamicLayoutVertexBuffer.updateData(J) - } - - function Pn(h, e, n, s, u, d, m, y) { - const w = d.glyphStartIndex + d.numGlyphs, - P = d.lineStartIndex, - M = d.lineStartIndex + d.lineLength, - D = e.getoffsetX(d.glyphStartIndex), - z = e.getoffsetX(w - 1), - B = Si(h * D, n, s, u, d.segment, P, M, y, m); - if (!B) return null; - const U = Si(h * z, n, s, u, d.segment, P, M, y, m); - return U ? y.projectionCache.anyProjectionOccluded ? null : { - first: B, - last: U - } : null - } - - function Mt(h, e, n, s) { - return h === o.ao.horizontal && Math.abs(n.y - e.y) > Math.abs(n.x - e.x) * s ? { - useVertical: !0 - } : (h === o.ao.vertical ? e.y < n.y : e.x > n.x) ? { - needsFlipping: !0 - } : null - } - - function Ke(h) { - const { - projectionContext: e, - pitchedLabelPlaneMatrixInverse: n, - symbol: s, - fontSize: u, - flip: d, - keepUpright: m, - glyphOffsetArray: y, - dynamicLayoutVertexArray: w, - aspectRatio: P, - rotateToLine: M - } = h, D = u / 24, z = s.lineOffsetX * D, B = s.lineOffsetY * D; - let U; - if (s.numGlyphs > 1) { - const ee = s.glyphStartIndex + s.numGlyphs, - J = s.lineStartIndex, - re = s.lineStartIndex + s.lineLength, - se = Pn(D, y, z, B, d, s, M, e); - if (!se) return { - notEnoughRoom: !0 - }; - const de = Gr(se.first.point.x, se.first.point.y, e, n), - ue = Gr(se.last.point.x, se.last.point.y, e, n); - if (m && !d) { - const ge = Mt(s.writingMode, de, ue, P); - if (ge) return ge - } - U = [se.first]; - for (let ge = s.glyphStartIndex + 1; ge < ee - 1; ge++) { - const Te = Si(D * y.getoffsetX(ge), z, B, d, s.segment, J, re, e, M); - if (!Te) return { - notEnoughRoom: !0 - }; - U.push(Te) - } - U.push(se.last) - } else { - if (m && !d) { - const J = Dr(e.tileAnchorPoint.x, e.tileAnchorPoint.y, e).point, - re = s.lineStartIndex + s.segment + 1, - se = new o.P(e.lineVertexArray.getx(re), e.lineVertexArray.gety(re)), - de = Dr(se.x, se.y, e), - ue = de.signedDistanceFromCamera > 0 ? de.point : jt(e.tileAnchorPoint, se, J, 1, e), - ge = Gr(J.x, J.y, e, n), - Te = Gr(ue.x, ue.y, e, n), - he = Mt(s.writingMode, ge, Te, P); - if (he) return he - } - const ee = Si(D * y.getoffsetX(s.glyphStartIndex), z, B, d, s.segment, s.lineStartIndex, s.lineStartIndex + s.lineLength, e, M); - if (!ee || e.projectionCache.anyProjectionOccluded) return { - notEnoughRoom: !0 - }; - U = [ee] - } - for (const ee of U) o.av(w, ee.point, ee.angle); - return {} - } - - function jt(h, e, n, s, u) { - const d = h.add(h.sub(e)._unit()), - m = Dr(d.x, d.y, u).point, - y = n.sub(m); - return n.add(y._mult(s / y.mag())) - } - - function Gt(h, e, n) { - const s = e.projectionCache; - if (s.projections[h]) return s.projections[h]; - const u = new o.P(e.lineVertexArray.getx(h), e.lineVertexArray.gety(h)), - d = Dr(u.x, u.y, e); - if (d.signedDistanceFromCamera > 0) return s.projections[h] = d.point, s.anyProjectionOccluded = s.anyProjectionOccluded || d.isOccluded, d.point; - const m = h - n.direction; - return jt(n.distanceFromAnchor === 0 ? e.tileAnchorPoint : new o.P(e.lineVertexArray.getx(m), e.lineVertexArray.gety(m)), u, n.previousVertex, n.absOffsetX - n.distanceFromAnchor + 1, e) - } - - function Dr(h, e, n) { - const s = h + n.translation[0], - u = e + n.translation[1]; - let d; - return n.pitchWithMap ? (d = ai(s, u, n.pitchedLabelPlaneMatrix, n.getElevation), d.isOccluded = !1) : (d = n.transform.projectTileCoordinates(s, u, n.unwrappedTileID, n.getElevation), d.point.x = (.5 * d.point.x + .5) * n.width, d.point.y = (.5 * -d.point.y + .5) * n.height), d - } - - function Gr(h, e, n, s) { - if (n.pitchWithMap) { - const u = [h, e, 0, 1]; - return o.aw(u, u, s), n.transform.projectTileCoordinates(u[0] / u[3], u[1] / u[3], n.unwrappedTileID, n.getElevation).point - } - return { - x: h / n.width * 2 - 1, - y: 1 - e / n.height * 2 - } - } - - function li(h, e, n) { - return n.transform.projectTileCoordinates(h, e, n.unwrappedTileID, n.getElevation) - } - - function fr(h, e, n) { - return h._unit()._perp()._mult(e * n) - } - - function bi(h, e, n, s, u, d, m, y, w) { - if (y.projectionCache.offsets[h]) return y.projectionCache.offsets[h]; - const P = n.add(e); - if (h + w.direction < s || h + w.direction >= u) return y.projectionCache.offsets[h] = P, P; - const M = Gt(h + w.direction, y, w), - D = fr(M.sub(n), m, w.direction), - z = n.add(D), - B = M.add(D); - return y.projectionCache.offsets[h] = o.ax(d, P, z, B) || P, y.projectionCache.offsets[h] - } - - function Si(h, e, n, s, u, d, m, y, w) { - const P = s ? h - e : h + e; - let M = P > 0 ? 1 : -1, - D = 0; - s && (M *= -1, D = Math.PI), M < 0 && (D += Math.PI); - let z, B = M > 0 ? d + u : d + u + 1; - y.projectionCache.cachedAnchorPoint ? z = y.projectionCache.cachedAnchorPoint : (z = Dr(y.tileAnchorPoint.x, y.tileAnchorPoint.y, y).point, y.projectionCache.cachedAnchorPoint = z); - let U, ee, J = z, - re = z, - se = 0, - de = 0; - const ue = Math.abs(P), - ge = []; - let Te; - for (; se + de <= ue;) { - if (B += M, B < d || B >= m) return null; - se += de, re = J, ee = U; - const He = { - absOffsetX: ue, - direction: M, - distanceFromAnchor: se, - previousVertex: re - }; - if (J = Gt(B, y, He), n === 0) ge.push(re), Te = J.sub(re); - else { - let je; - const qe = J.sub(re); - je = qe.mag() === 0 ? fr(Gt(B + M, y, He).sub(J), n, M) : fr(qe, n, M), ee || (ee = re.add(je)), U = bi(B, je, J, d, m, ee, n, y, He), ge.push(ee), Te = U.sub(ee) - } - de = Te.mag() - } - const he = Te._mult((ue - se) / de)._add(ee || re), - De = D + Math.atan2(J.y - re.y, J.x - re.x); - return ge.push(he), { - point: he, - angle: w ? De : 0, - path: ge - } - } - const zi = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]); - - function mi(h, e) { - for (let n = 0; n < h; n++) { - const s = e.length; - e.resize(s + 4), e.float32.set(zi, 3 * s) - } - } - - function Li(h, e, n) { - const s = e[0], - u = e[1]; - return h[0] = n[0] * s + n[4] * u + n[12], h[1] = n[1] * s + n[5] * u + n[13], h[3] = n[3] * s + n[7] * u + n[15], h - } - const rr = 100; - class yi { - constructor(e, n = new Hr(e.width + 200, e.height + 200, 25), s = new Hr(e.width + 200, e.height + 200, 25)) { - this.transform = e, this.grid = n, this.ignoredGrid = s, this.pitchFactor = Math.cos(e.pitch * Math.PI / 180) * e.cameraToCenterDistance, this.screenRightBoundary = e.width + rr, this.screenBottomBoundary = e.height + rr, this.gridRightBoundary = e.width + 200, this.gridBottomBoundary = e.height + 200, this.perspectiveRatioCutoff = .6 - } - placeCollisionBox(e, n, s, u, d, m, y, w, P, M, D, z) { - const B = this.projectAndGetPerspectiveRatio(e.anchorPointX + w[0], e.anchorPointY + w[1], d, M, z), - U = s * B.perspectiveRatio; - let ee; - if (m || y) ee = this._projectCollisionBox(e, U, u, d, m, y, w, B, M, D, z); - else { - const Te = B.x + (D ? D.x * U : 0), - he = B.y + (D ? D.y * U : 0); - ee = { - allPointsOccluded: !1, - box: [Te + e.x1 * U, he + e.y1 * U, Te + e.x2 * U, he + e.y2 * U] - } - } - const [J, re, se, de] = ee.box, ue = m ? ee.allPointsOccluded : B.isOccluded; - let ge = ue; - return ge || (ge = B.perspectiveRatio < this.perspectiveRatioCutoff), ge || (ge = !this.isInsideGrid(J, re, se, de)), ge || n !== "always" && this.grid.hitTest(J, re, se, de, n, P) ? { - box: [J, re, se, de], - placeable: !1, - offscreen: !1, - occluded: ue - } : { - box: [J, re, se, de], - placeable: !0, - offscreen: this.isOffscreen(J, re, se, de), - occluded: ue - } - } - placeCollisionCircles(e, n, s, u, d, m, y, w, P, M, D, z, B, U) { - const ee = [], - J = new o.P(n.anchorX, n.anchorY), - re = this.getPerspectiveRatio(J.x, J.y, m, U), - se = (P ? d * this.transform.getPitchedTextCorrection(n.anchorX, n.anchorY, m) / re : d * re) / o.aB, - de = { - getElevation: U, - pitchedLabelPlaneMatrix: y, - lineVertexArray: s, - pitchWithMap: P, - projectionCache: { - projections: {}, - offsets: {}, - cachedAnchorPoint: void 0, - anyProjectionOccluded: !1 - }, - transform: this.transform, - tileAnchorPoint: J, - unwrappedTileID: m, - width: this.transform.width, - height: this.transform.height, - translation: B - }, - ue = Pn(se, u, n.lineOffsetX * se, n.lineOffsetY * se, !1, n, !1, de); - let ge = !1, - Te = !1, - he = !0; - if (ue) { - const De = .5 * D * re + z, - He = new o.P(-100, -100), - je = new o.P(this.screenRightBoundary, this.screenBottomBoundary), - qe = new Lr, - $e = ue.first, - Rt = ue.last; - let Nt = []; - for (let Xr = $e.path.length - 1; Xr >= 1; Xr--) Nt.push($e.path[Xr]); - for (let Xr = 1; Xr < Rt.path.length; Xr++) Nt.push(Rt.path[Xr]); - const yt = 2.5 * De; - if (P) { - const Xr = this.projectPathToScreenSpace(Nt, de); - Nt = Xr.some((xi => xi.signedDistanceFromCamera <= 0)) ? [] : Xr.map((xi => xi.point)) - } - let sr = []; - if (Nt.length > 0) { - const Xr = Nt[0].clone(), - xi = Nt[0].clone(); - for (let ki = 1; ki < Nt.length; ki++) Xr.x = Math.min(Xr.x, Nt[ki].x), Xr.y = Math.min(Xr.y, Nt[ki].y), xi.x = Math.max(xi.x, Nt[ki].x), xi.y = Math.max(xi.y, Nt[ki].y); - sr = Xr.x >= He.x && xi.x <= je.x && Xr.y >= He.y && xi.y <= je.y ? [Nt] : xi.x < He.x || Xr.x > je.x || xi.y < He.y || Xr.y > je.y ? [] : o.ay([Nt], He.x, He.y, je.x, je.y) - } - for (const Xr of sr) { - qe.reset(Xr, .25 * De); - let xi = 0; - xi = qe.length <= .5 * De ? 1 : Math.ceil(qe.paddedLength / yt) + 1; - for (let ki = 0; ki < xi; ki++) { - const Pi = ki / Math.max(xi - 1, 1), - ji = qe.lerp(Pi), - Ui = ji.x + rr, - Wr = ji.y + rr; - ee.push(Ui, Wr, De, 0); - const Ei = Ui - De, - Qi = Wr - De, - dn = Ui + De, - xn = Wr + De; - if (he = he && this.isOffscreen(Ei, Qi, dn, xn), Te = Te || this.isInsideGrid(Ei, Qi, dn, xn), e !== "always" && this.grid.hitTestCircle(Ui, Wr, De, e, M) && (ge = !0, !w)) return { - circles: [], - offscreen: !1, - collisionDetected: ge - } - } - } - } - return { - circles: !w && ge || !Te || re < this.perspectiveRatioCutoff ? [] : ee, - offscreen: he, - collisionDetected: ge - } - } - projectPathToScreenSpace(e, n) { - const s = (function(u, d) { - const m = o.L(); - return o.aq(m, d.pitchedLabelPlaneMatrix), u.map((y => { - const w = ai(y.x, y.y, m, d.getElevation), - P = d.transform.projectTileCoordinates(w.point.x, w.point.y, d.unwrappedTileID, d.getElevation); - return P.point.x = (.5 * P.point.x + .5) * d.width, P.point.y = (.5 * -P.point.y + .5) * d.height, P - })) - })(e, n); - return (function(u) { - let d = 0, - m = 0, - y = 0, - w = 0; - for (let P = 0; P < u.length; P++) u[P].isOccluded ? (y = P + 1, w = 0) : (w++, w > m && (m = w, d = y)); - return u.slice(d, d + m) - })(s) - } - queryRenderedSymbols(e) { - if (e.length === 0 || this.grid.keysLength() === 0 && this.ignoredGrid.keysLength() === 0) return {}; - const n = [], - s = new o.a2; - for (const D of e) { - const z = new o.P(D.x + rr, D.y + rr); - s.extend(z), n.push(z) - } - const { - minX: u, - minY: d, - maxX: m, - maxY: y - } = s, w = this.grid.query(u, d, m, y).concat(this.ignoredGrid.query(u, d, m, y)), P = {}, M = {}; - for (const D of w) { - const z = D.key; - if (P[z.bucketInstanceId] === void 0 && (P[z.bucketInstanceId] = {}), P[z.bucketInstanceId][z.featureIndex]) continue; - const B = [new o.P(D.x1, D.y1), new o.P(D.x2, D.y1), new o.P(D.x2, D.y2), new o.P(D.x1, D.y2)]; - o.az(n, B) && (P[z.bucketInstanceId][z.featureIndex] = !0, M[z.bucketInstanceId] === void 0 && (M[z.bucketInstanceId] = []), M[z.bucketInstanceId].push(z.featureIndex)) - } - return M - } - insertCollisionBox(e, n, s, u, d, m) { - (s ? this.ignoredGrid : this.grid).insert({ - bucketInstanceId: u, - featureIndex: d, - collisionGroupID: m, - overlapMode: n - }, e[0], e[1], e[2], e[3]) - } - insertCollisionCircles(e, n, s, u, d, m) { - const y = s ? this.ignoredGrid : this.grid, - w = { - bucketInstanceId: u, - featureIndex: d, - collisionGroupID: m, - overlapMode: n - }; - for (let P = 0; P < e.length; P += 4) y.insertCircle(w, e[P], e[P + 1], e[P + 2]) - } - projectAndGetPerspectiveRatio(e, n, s, u, d) { - if (d) { - let m; - u ? (m = [e, n, u(e, n), 1], o.aw(m, m, d)) : (m = [e, n, 0, 1], Li(m, m, d)); - const y = m[3]; - return { - x: (m[0] / y + 1) / 2 * this.transform.width + rr, - y: (-m[1] / y + 1) / 2 * this.transform.height + rr, - perspectiveRatio: .5 + this.transform.cameraToCenterDistance / y * .5, - isOccluded: !1, - signedDistanceFromCamera: y - } - } { - const m = this.transform.projectTileCoordinates(e, n, s, u); - return { - x: (m.point.x + 1) / 2 * this.transform.width + rr, - y: (1 - m.point.y) / 2 * this.transform.height + rr, - perspectiveRatio: .5 + this.transform.cameraToCenterDistance / m.signedDistanceFromCamera * .5, - isOccluded: m.isOccluded, - signedDistanceFromCamera: m.signedDistanceFromCamera - } - } - } - getPerspectiveRatio(e, n, s, u) { - const d = this.transform.projectTileCoordinates(e, n, s, u); - return .5 + this.transform.cameraToCenterDistance / d.signedDistanceFromCamera * .5 - } - isOffscreen(e, n, s, u) { - return s < rr || e >= this.screenRightBoundary || u < rr || n > this.screenBottomBoundary - } - isInsideGrid(e, n, s, u) { - return s >= 0 && e < this.gridRightBoundary && u >= 0 && n < this.gridBottomBoundary - } - getViewportMatrix() { - const e = o.ag([]); - return o.M(e, e, [-100, -100, 0]), e - } - _projectCollisionBox(e, n, s, u, d, m, y, w, P, M, D) { - let z = 1, - B = 0, - U = 0, - ee = 1; - const J = e.anchorPointX + y[0], - re = e.anchorPointY + y[1]; - if (m && !d) { - const Nt = this.projectAndGetPerspectiveRatio(J + 1, re, u, P, D), - yt = Nt.x - w.x, - sr = Math.atan((Nt.y - w.y) / yt) + (yt < 0 ? Math.PI : 0), - Xr = Math.sin(sr), - xi = Math.cos(sr); - z = xi, B = Xr, U = -Xr, ee = xi - } else if (!m && d) { - const Nt = gr(this.transform); - z = Nt.vecEast[0], B = Nt.vecEast[1], U = Nt.vecSouth[0], ee = Nt.vecSouth[1] - } - let se = w.x, - de = w.y, - ue = n; - d && (se = J, de = re, ue = Math.pow(2, -(this.transform.zoom - s.overscaledZ)), ue *= this.transform.getPitchedTextCorrection(J, re, u), M || (ue *= o.ah(.5 + w.signedDistanceFromCamera / this.transform.cameraToCenterDistance * .5, 0, 4))), M && (se += z * M.x * ue + U * M.y * ue, de += B * M.x * ue + ee * M.y * ue); - const ge = e.x1 * ue, - Te = e.x2 * ue, - he = (ge + Te) / 2, - De = e.y1 * ue, - He = e.y2 * ue, - je = (De + He) / 2, - qe = [{ - offsetX: ge, - offsetY: De - }, { - offsetX: he, - offsetY: De - }, { - offsetX: Te, - offsetY: De - }, { - offsetX: Te, - offsetY: je - }, { - offsetX: Te, - offsetY: He - }, { - offsetX: he, - offsetY: He - }, { - offsetX: ge, - offsetY: He - }, { - offsetX: ge, - offsetY: je - }]; - let $e = []; - for (const { - offsetX: Nt, - offsetY: yt - } - of qe) $e.push(new o.P(se + z * Nt + U * yt, de + B * Nt + ee * yt)); - let Rt = !1; - if (d) { - const Nt = $e.map((yt => this.projectAndGetPerspectiveRatio(yt.x, yt.y, u, P, D))); - Rt = Nt.some((yt => !yt.isOccluded)), $e = Nt.map((yt => new o.P(yt.x, yt.y))) - } else Rt = !0; - return { - box: o.aA($e), - allPointsOccluded: !Rt - } - } - } - class Qr { - constructor(e, n, s, u) { - this.opacity = e ? Math.max(0, Math.min(1, e.opacity + (e.placed ? n : -n))) : u && s ? 1 : 0, this.placed = s - } - isHidden() { - return this.opacity === 0 && !this.placed - } - } - class Yr { - constructor(e, n, s, u, d) { - this.text = new Qr(e ? e.text : null, n, s, d), this.icon = new Qr(e ? e.icon : null, n, u, d) - } - isHidden() { - return this.text.isHidden() && this.icon.isHidden() - } - } - class la { - constructor(e, n, s) { - this.text = e, this.icon = n, this.skipFade = s - } - } - class sn { - constructor(e, n, s, u, d) { - this.bucketInstanceId = e, this.featureIndex = n, this.sourceLayerIndex = s, this.bucketIndex = u, this.tileID = d - } - } - class ta { - constructor(e) { - this.crossSourceCollisions = e, this.maxGroupID = 0, this.collisionGroups = {} - } - get(e) { - if (this.crossSourceCollisions) return { - ID: 0, - predicate: null - }; - if (!this.collisionGroups[e]) { - const n = ++this.maxGroupID; - this.collisionGroups[e] = { - ID: n, - predicate: s => s.collisionGroupID === n - } - } - return this.collisionGroups[e] - } - } - - function Fi(h, e, n, s, u) { - const { - horizontalAlign: d, - verticalAlign: m - } = o.aH(h); - return new o.P(-(d - .5) * e + s[0] * u, -(m - .5) * n + s[1] * u) - } - class Xi { - constructor(e, n, s, u, d) { - this.transform = e.clone(), this.terrain = n, this.collisionIndex = new yi(this.transform), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = !1, this.commitTime = 0, this.fadeDuration = s, this.retainedQueryData = {}, this.collisionGroups = new ta(u), this.collisionCircleArrays = {}, this.collisionBoxArrays = new Map, this.prevPlacement = d, d && (d.prevPlacement = void 0), this.placedOrientations = {} - } - _getTerrainElevationFunc(e) { - const n = this.terrain; - return n ? (s, u) => n.getElevation(e, s, u) : null - } - getBucketParts(e, n, s, u) { - const d = s.getBucket(n), - m = s.latestFeatureIndex; - if (!d || !m || n.id !== d.layerIds[0]) return; - const y = s.collisionBoxArray, - w = d.layers[0].layout, - P = d.layers[0].paint, - M = Math.pow(2, this.transform.zoom - s.tileID.overscaledZ), - D = s.tileSize / o.$, - z = s.tileID.toUnwrapped(), - B = w.get("text-rotation-alignment") === "map", - U = o.aC(s, 1, this.transform.zoom), - ee = o.aD(this.collisionIndex.transform, s, P.get("text-translate"), P.get("text-translate-anchor")), - J = o.aD(this.collisionIndex.transform, s, P.get("icon-translate"), P.get("icon-translate-anchor")), - re = $r(B, this.transform, U); - this.retainedQueryData[d.bucketInstanceId] = new sn(d.bucketInstanceId, m, d.sourceLayerIndex, d.index, s.tileID); - const se = { - bucket: d, - layout: w, - translationText: ee, - translationIcon: J, - unwrappedTileID: z, - pitchedLabelPlaneMatrix: re, - scale: M, - textPixelRatio: D, - holdingForFade: s.holdingForFade(), - collisionBoxArray: y, - partiallyEvaluatedTextSize: o.an(d.textSizeData, this.transform.zoom), - collisionGroup: this.collisionGroups.get(d.sourceID) - }; - if (u) - for (const de of d.sortKeyRanges) { - const { - sortKey: ue, - symbolInstanceStart: ge, - symbolInstanceEnd: Te - } = de; - e.push({ - sortKey: ue, - symbolInstanceStart: ge, - symbolInstanceEnd: Te, - parameters: se - }) - } else e.push({ - symbolInstanceStart: 0, - symbolInstanceEnd: d.symbolInstances.length, - parameters: se - }) - } - attemptAnchorPlacement(e, n, s, u, d, m, y, w, P, M, D, z, B, U, ee, J, re, se, de, ue) { - const ge = o.aE[e.textAnchor], - Te = [e.textOffset0, e.textOffset1], - he = Fi(ge, s, u, Te, d), - De = this.collisionIndex.placeCollisionBox(n, z, w, P, M, y, m, J, D.predicate, de, he, ue); - if ((!se || this.collisionIndex.placeCollisionBox(se, z, w, P, M, y, m, re, D.predicate, de, he, ue).placeable) && De.placeable) { - let He; - if (this.prevPlacement && this.prevPlacement.variableOffsets[B.crossTileID] && this.prevPlacement.placements[B.crossTileID] && this.prevPlacement.placements[B.crossTileID].text && (He = this.prevPlacement.variableOffsets[B.crossTileID].anchor), B.crossTileID === 0) throw new Error("symbolInstance.crossTileID can't be 0"); - return this.variableOffsets[B.crossTileID] = { - textOffset: Te, - width: s, - height: u, - anchor: ge, - textBoxScale: d, - prevAnchor: He - }, this.markUsedJustification(U, ge, B, ee), U.allowVerticalPlacement && (this.markUsedOrientation(U, ee, B), this.placedOrientations[B.crossTileID] = ee), { - shift: he, - placedGlyphBoxes: De - } - } - } - placeLayerBucketPart(e, n, s) { - const { - bucket: u, - layout: d, - translationText: m, - translationIcon: y, - unwrappedTileID: w, - pitchedLabelPlaneMatrix: P, - textPixelRatio: M, - holdingForFade: D, - collisionBoxArray: z, - partiallyEvaluatedTextSize: B, - collisionGroup: U - } = e.parameters, ee = d.get("text-optional"), J = d.get("icon-optional"), re = o.aF(d, "text-overlap", "text-allow-overlap"), se = re === "always", de = o.aF(d, "icon-overlap", "icon-allow-overlap"), ue = de === "always", ge = d.get("text-rotation-alignment") === "map", Te = d.get("text-pitch-alignment") === "map", he = d.get("icon-text-fit") !== "none", De = d.get("symbol-z-order") === "viewport-y", He = se && (ue || !u.hasIconData() || J), je = ue && (se || !u.hasTextData() || ee); - !u.collisionArrays && z && u.deserializeCollisionBoxes(z); - const qe = this.retainedQueryData[u.bucketInstanceId].tileID, - $e = this._getTerrainElevationFunc(qe), - Rt = this.transform.getFastPathSimpleProjectionMatrix(qe), - Nt = (yt, sr, Xr) => { - var xi, ki; - if (n[yt.crossTileID]) return; - if (D) return void(this.placements[yt.crossTileID] = new la(!1, !1, !1)); - let Pi = !1, - ji = !1, - Ui = !0, - Wr = null, - Ei = { - box: null, - placeable: !1, - offscreen: null, - occluded: !1 - }, - Qi = { - placeable: !1 - }, - dn = null, - xn = null, - qn = null, - Sa = 0, - as = 0, - ss = 0; - sr.textFeatureIndex ? Sa = sr.textFeatureIndex : yt.useRuntimeCollisionCircles && (Sa = yt.featureIndex), sr.verticalTextFeatureIndex && (as = sr.verticalTextFeatureIndex); - const Ys = sr.textBox; - if (Ys) { - const Kn = en => { - let pn = o.ao.horizontal; - if (u.allowVerticalPlacement && !en && this.prevPlacement) { - const da = this.prevPlacement.placedOrientations[yt.crossTileID]; - da && (this.placedOrientations[yt.crossTileID] = da, pn = da, this.markUsedOrientation(u, pn, yt)) - } - return pn - }, - Pa = (en, pn) => { - if (u.allowVerticalPlacement && yt.numVerticalGlyphVertices > 0 && sr.verticalTextBox) { - for (const da of u.writingModes) - if (da === o.ao.vertical ? (Ei = pn(), Qi = Ei) : Ei = en(), Ei && Ei.placeable) break - } else Ei = en() - }, - Vn = yt.textAnchorOffsetStartIndex, - os = yt.textAnchorOffsetEndIndex; - if (os === Vn) { - const en = (pn, da) => { - const tn = this.collisionIndex.placeCollisionBox(pn, re, M, qe, w, Te, ge, m, U.predicate, $e, void 0, Rt); - return tn && tn.placeable && (this.markUsedOrientation(u, da, yt), this.placedOrientations[yt.crossTileID] = da), tn - }; - Pa((() => en(Ys, o.ao.horizontal)), (() => { - const pn = sr.verticalTextBox; - return u.allowVerticalPlacement && yt.numVerticalGlyphVertices > 0 && pn ? en(pn, o.ao.vertical) : { - box: null, - offscreen: null - } - })), Kn(Ei && Ei.placeable) - } else { - let en = o.aE[(ki = (xi = this.prevPlacement) === null || xi === void 0 ? void 0 : xi.variableOffsets[yt.crossTileID]) === null || ki === void 0 ? void 0 : ki.anchor]; - const pn = (tn, Ro, Qs) => { - const Ha = tn.x2 - tn.x1, - Ia = tn.y2 - tn.y1, - ls = yt.textBoxScale, - id = he && de === "never" ? Ro : null; - let ia = null, - nd = re === "never" ? 1 : 2, - tu = "never"; - en && nd++; - for (let kl = 0; kl < nd; kl++) { - for (let El = Vn; El < os; El++) { - const cs = u.textAnchorOffsets.get(El); - if (en && cs.textAnchor !== en) continue; - const Wa = this.attemptAnchorPlacement(cs, tn, Ha, Ia, ls, ge, Te, M, qe, w, U, tu, yt, u, Qs, m, y, id, $e); - if (Wa && (ia = Wa.placedGlyphBoxes, ia && ia.placeable)) return Pi = !0, Wr = Wa.shift, ia - } - en ? en = null : tu = re - } - return s && !ia && (ia = { - box: this.collisionIndex.placeCollisionBox(Ys, "always", M, qe, w, Te, ge, m, U.predicate, $e, void 0, Rt).box, - offscreen: !1, - placeable: !1, - occluded: !1 - }), ia - }; - Pa((() => pn(Ys, sr.iconBox, o.ao.horizontal)), (() => { - const tn = sr.verticalTextBox; - return u.allowVerticalPlacement && (!Ei || !Ei.placeable) && yt.numVerticalGlyphVertices > 0 && tn ? pn(tn, sr.verticalIconBox, o.ao.vertical) : { - box: null, - occluded: !0, - offscreen: null - } - })), Ei && (Pi = Ei.placeable, Ui = Ei.offscreen); - const da = Kn(Ei && Ei.placeable); - if (!Pi && this.prevPlacement) { - const tn = this.prevPlacement.variableOffsets[yt.crossTileID]; - tn && (this.variableOffsets[yt.crossTileID] = tn, this.markUsedJustification(u, tn.anchor, yt, da)) - } - } - } - if (dn = Ei, Pi = dn && dn.placeable, Ui = dn && dn.offscreen, yt.useRuntimeCollisionCircles) { - const Kn = u.text.placedSymbolArray.get(yt.centerJustifiedTextSymbolIndex), - Pa = o.ap(u.textSizeData, B, Kn), - Vn = d.get("text-padding"); - xn = this.collisionIndex.placeCollisionCircles(re, Kn, u.lineVertexArray, u.glyphOffsetArray, Pa, w, P, s, Te, U.predicate, yt.collisionCircleDiameter, Vn, m, $e), xn.circles.length && xn.collisionDetected && !s && o.w("Collisions detected, but collision boxes are not shown"), Pi = se || xn.circles.length > 0 && !xn.collisionDetected, Ui = Ui && xn.offscreen - } - if (sr.iconFeatureIndex && (ss = sr.iconFeatureIndex), sr.iconBox) { - const Kn = Pa => this.collisionIndex.placeCollisionBox(Pa, de, M, qe, w, Te, ge, y, U.predicate, $e, he && Wr ? Wr : void 0, Rt); - Qi && Qi.placeable && sr.verticalIconBox ? (qn = Kn(sr.verticalIconBox), ji = qn.placeable) : (qn = Kn(sr.iconBox), ji = qn.placeable), Ui = Ui && qn.offscreen - } - const Js = ee || yt.numHorizontalGlyphVertices === 0 && yt.numVerticalGlyphVertices === 0, - Is = J || yt.numIconVertices === 0; - Js || Is ? Is ? Js || (ji = ji && Pi) : Pi = ji && Pi : ji = Pi = ji && Pi; - const Ms = ji && qn.placeable; - if (Pi && dn.placeable && this.collisionIndex.insertCollisionBox(dn.box, re, d.get("text-ignore-placement"), u.bucketInstanceId, Qi && Qi.placeable && as ? as : Sa, U.ID), Ms && this.collisionIndex.insertCollisionBox(qn.box, de, d.get("icon-ignore-placement"), u.bucketInstanceId, ss, U.ID), xn && Pi && this.collisionIndex.insertCollisionCircles(xn.circles, re, d.get("text-ignore-placement"), u.bucketInstanceId, Sa, U.ID), s && this.storeCollisionData(u.bucketInstanceId, Xr, sr, dn, qn, xn), yt.crossTileID === 0) throw new Error("symbolInstance.crossTileID can't be 0"); - if (u.bucketInstanceId === 0) throw new Error("bucket.bucketInstanceId can't be 0"); - this.placements[yt.crossTileID] = new la((Pi || He) && !(dn != null && dn.occluded), (ji || je) && !(qn != null && qn.occluded), Ui || u.justReloaded), n[yt.crossTileID] = !0 - }; - if (De) { - if (e.symbolInstanceStart !== 0) throw new Error("bucket.bucketInstanceId should be 0"); - const yt = u.getSortedSymbolIndexes(-this.transform.bearingInRadians); - for (let sr = yt.length - 1; sr >= 0; --sr) { - const Xr = yt[sr]; - Nt(u.symbolInstances.get(Xr), u.collisionArrays[Xr], Xr) - } - } else - for (let yt = e.symbolInstanceStart; yt < e.symbolInstanceEnd; yt++) Nt(u.symbolInstances.get(yt), u.collisionArrays[yt], yt); - u.justReloaded = !1 - } - storeCollisionData(e, n, s, u, d, m) { - if (s.textBox || s.iconBox) { - let y, w; - this.collisionBoxArrays.has(e) ? y = this.collisionBoxArrays.get(e) : (y = new Map, this.collisionBoxArrays.set(e, y)), y.has(n) ? w = y.get(n) : (w = { - text: null, - icon: null - }, y.set(n, w)), s.textBox && (w.text = u.box), s.iconBox && (w.icon = d.box) - } - if (m) { - let y = this.collisionCircleArrays[e]; - y === void 0 && (y = this.collisionCircleArrays[e] = []); - for (let w = 0; w < m.circles.length; w += 4) y.push(m.circles[w + 0] - rr), y.push(m.circles[w + 1] - rr), y.push(m.circles[w + 2]), y.push(m.collisionDetected ? 1 : 0) - } - } - markUsedJustification(e, n, s, u) { - let d; - d = u === o.ao.vertical ? s.verticalPlacedTextSymbolIndex : { - left: s.leftJustifiedTextSymbolIndex, - center: s.centerJustifiedTextSymbolIndex, - right: s.rightJustifiedTextSymbolIndex - } [o.aG(n)]; - const m = [s.leftJustifiedTextSymbolIndex, s.centerJustifiedTextSymbolIndex, s.rightJustifiedTextSymbolIndex, s.verticalPlacedTextSymbolIndex]; - for (const y of m) y >= 0 && (e.text.placedSymbolArray.get(y).crossTileID = d >= 0 && y !== d ? 0 : s.crossTileID) - } - markUsedOrientation(e, n, s) { - const u = n === o.ao.horizontal || n === o.ao.horizontalOnly ? n : 0, - d = n === o.ao.vertical ? n : 0, - m = [s.leftJustifiedTextSymbolIndex, s.centerJustifiedTextSymbolIndex, s.rightJustifiedTextSymbolIndex]; - for (const y of m) e.text.placedSymbolArray.get(y).placedOrientation = u; - s.verticalPlacedTextSymbolIndex && (e.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).placedOrientation = d) - } - commit(e) { - this.commitTime = e, this.zoomAtLastRecencyCheck = this.transform.zoom; - const n = this.prevPlacement; - let s = !1; - this.prevZoomAdjustment = n ? n.zoomAdjustment(this.transform.zoom) : 0; - const u = n ? n.symbolFadeChange(e) : 1, - d = n ? n.opacities : {}, - m = n ? n.variableOffsets : {}, - y = n ? n.placedOrientations : {}; - for (const w in this.placements) { - const P = this.placements[w], - M = d[w]; - M ? (this.opacities[w] = new Yr(M, u, P.text, P.icon), s = s || P.text !== M.text.placed || P.icon !== M.icon.placed) : (this.opacities[w] = new Yr(null, u, P.text, P.icon, P.skipFade), s = s || P.text || P.icon) - } - for (const w in d) { - const P = d[w]; - if (!this.opacities[w]) { - const M = new Yr(P, u, !1, !1); - M.isHidden() || (this.opacities[w] = M, s = s || P.text.placed || P.icon.placed) - } - } - for (const w in m) this.variableOffsets[w] || !this.opacities[w] || this.opacities[w].isHidden() || (this.variableOffsets[w] = m[w]); - for (const w in y) this.placedOrientations[w] || !this.opacities[w] || this.opacities[w].isHidden() || (this.placedOrientations[w] = y[w]); - if (n && n.lastPlacementChangeTime === void 0) throw new Error("Last placement time for previous placement is not defined"); - s ? this.lastPlacementChangeTime = e : typeof this.lastPlacementChangeTime != "number" && (this.lastPlacementChangeTime = n ? n.lastPlacementChangeTime : e) - } - updateLayerOpacities(e, n) { - const s = {}; - for (const u of n) { - const d = u.getBucket(e); - d && u.latestFeatureIndex && e.id === d.layerIds[0] && this.updateBucketOpacities(d, u.tileID, s, u.collisionBoxArray) - } - } - updateBucketOpacities(e, n, s, u) { - e.hasTextData() && (e.text.opacityVertexArray.clear(), e.text.hasVisibleVertices = !1), e.hasIconData() && (e.icon.opacityVertexArray.clear(), e.icon.hasVisibleVertices = !1), e.hasIconCollisionBoxData() && e.iconCollisionBox.collisionVertexArray.clear(), e.hasTextCollisionBoxData() && e.textCollisionBox.collisionVertexArray.clear(); - const d = e.layers[0], - m = d.layout, - y = new Yr(null, 0, !1, !1, !0), - w = m.get("text-allow-overlap"), - P = m.get("icon-allow-overlap"), - M = d._unevaluatedLayout.hasValue("text-variable-anchor") || d._unevaluatedLayout.hasValue("text-variable-anchor-offset"), - D = m.get("text-rotation-alignment") === "map", - z = m.get("text-pitch-alignment") === "map", - B = m.get("icon-text-fit") !== "none", - U = new Yr(null, 0, w && (P || !e.hasIconData() || m.get("icon-optional")), P && (w || !e.hasTextData() || m.get("text-optional")), !0); - !e.collisionArrays && u && (e.hasIconCollisionBoxData() || e.hasTextCollisionBoxData()) && e.deserializeCollisionBoxes(u); - const ee = (re, se, de) => { - for (let ue = 0; ue < se / 4; ue++) re.opacityVertexArray.emplaceBack(de); - re.hasVisibleVertices = re.hasVisibleVertices || de !== Mi - }, - J = this.collisionBoxArrays.get(e.bucketInstanceId); - for (let re = 0; re < e.symbolInstances.length; re++) { - const se = e.symbolInstances.get(re), - { - numHorizontalGlyphVertices: de, - numVerticalGlyphVertices: ue, - crossTileID: ge - } = se; - let Te = this.opacities[ge]; - s[ge] ? Te = y : Te || (Te = U, this.opacities[ge] = Te), s[ge] = !0; - const he = se.numIconVertices > 0, - De = this.placedOrientations[se.crossTileID], - He = De === o.ao.vertical, - je = De === o.ao.horizontal || De === o.ao.horizontalOnly; - if (de > 0 || ue > 0) { - const $e = $i(Te.text); - ee(e.text, de, He ? Mi : $e), ee(e.text, ue, je ? Mi : $e); - const Rt = Te.text.isHidden(); - [se.rightJustifiedTextSymbolIndex, se.centerJustifiedTextSymbolIndex, se.leftJustifiedTextSymbolIndex].forEach((sr => { - sr >= 0 && (e.text.placedSymbolArray.get(sr).hidden = Rt || He ? 1 : 0) - })), se.verticalPlacedTextSymbolIndex >= 0 && (e.text.placedSymbolArray.get(se.verticalPlacedTextSymbolIndex).hidden = Rt || je ? 1 : 0); - const Nt = this.variableOffsets[se.crossTileID]; - Nt && this.markUsedJustification(e, Nt.anchor, se, De); - const yt = this.placedOrientations[se.crossTileID]; - yt && (this.markUsedJustification(e, "left", se, yt), this.markUsedOrientation(e, yt, se)) - } - if (he) { - const $e = $i(Te.icon), - Rt = !(B && se.verticalPlacedIconSymbolIndex && He); - se.placedIconSymbolIndex >= 0 && (ee(e.icon, se.numIconVertices, Rt ? $e : Mi), e.icon.placedSymbolArray.get(se.placedIconSymbolIndex).hidden = Te.icon.isHidden()), se.verticalPlacedIconSymbolIndex >= 0 && (ee(e.icon, se.numVerticalIconVertices, Rt ? Mi : $e), e.icon.placedSymbolArray.get(se.verticalPlacedIconSymbolIndex).hidden = Te.icon.isHidden()) - } - const qe = J && J.has(re) ? J.get(re) : { - text: null, - icon: null - }; - if (e.hasIconCollisionBoxData() || e.hasTextCollisionBoxData()) { - const $e = e.collisionArrays[re]; - if ($e) { - let Rt = new o.P(0, 0); - if ($e.textBox || $e.verticalTextBox) { - let Nt = !0; - if (M) { - const yt = this.variableOffsets[ge]; - yt ? (Rt = Fi(yt.anchor, yt.width, yt.height, yt.textOffset, yt.textBoxScale), D && Rt._rotate(z ? -this.transform.bearingInRadians : this.transform.bearingInRadians)) : Nt = !1 - } - if ($e.textBox || $e.verticalTextBox) { - let yt; - $e.textBox && (yt = He), $e.verticalTextBox && (yt = je), Gn(e.textCollisionBox.collisionVertexArray, Te.text.placed, !Nt || yt, qe.text, Rt.x, Rt.y) - } - } - if ($e.iconBox || $e.verticalIconBox) { - const Nt = !!(!je && $e.verticalIconBox); - let yt; - $e.iconBox && (yt = Nt), $e.verticalIconBox && (yt = !Nt), Gn(e.iconCollisionBox.collisionVertexArray, Te.icon.placed, yt, qe.icon, B ? Rt.x : 0, B ? Rt.y : 0) - } - } - } - } - if (e.sortFeatures(-this.transform.bearingInRadians), this.retainedQueryData[e.bucketInstanceId] && (this.retainedQueryData[e.bucketInstanceId].featureSortOrder = e.featureSortOrder), e.hasTextData() && e.text.opacityVertexBuffer && e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray), e.hasIconData() && e.icon.opacityVertexBuffer && e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray), e.hasIconCollisionBoxData() && e.iconCollisionBox.collisionVertexBuffer && e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray), e.hasTextCollisionBoxData() && e.textCollisionBox.collisionVertexBuffer && e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray), e.text.opacityVertexArray.length !== e.text.layoutVertexArray.length / 4) throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`); - if (e.icon.opacityVertexArray.length !== e.icon.layoutVertexArray.length / 4) throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`); - e.bucketInstanceId in this.collisionCircleArrays && (e.collisionCircleArray = this.collisionCircleArrays[e.bucketInstanceId], delete this.collisionCircleArrays[e.bucketInstanceId]) - } - symbolFadeChange(e) { - return this.fadeDuration === 0 ? 1 : (e - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment - } - zoomAdjustment(e) { - return Math.max(0, (this.transform.zoom - e) / 1.5) - } - hasTransitions(e) { - return this.stale || e - this.lastPlacementChangeTime < this.fadeDuration - } - stillRecent(e, n) { - const s = this.zoomAtLastRecencyCheck === n ? 1 - this.zoomAdjustment(n) : 1; - return this.zoomAtLastRecencyCheck = n, this.commitTime + this.fadeDuration * s > e - } - setStale() { - this.stale = !0 - } - } - - function Gn(h, e, n, s, u, d) { - s && s.length !== 0 || (s = [0, 0, 0, 0]); - const m = s[0] - rr, - y = s[1] - rr, - w = s[2] - rr, - P = s[3] - rr; - h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, m, y), h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, w, y), h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, w, P), h.emplaceBack(e ? 1 : 0, n ? 1 : 0, u || 0, d || 0, m, P) - } - const Hn = Math.pow(2, 25), - Ln = Math.pow(2, 24), - gt = Math.pow(2, 17), - qt = Math.pow(2, 16), - vr = Math.pow(2, 9), - _i = Math.pow(2, 8), - Di = Math.pow(2, 1); - - function $i(h) { - if (h.opacity === 0 && !h.placed) return 0; - if (h.opacity === 1 && h.placed) return 4294967295; - const e = h.placed ? 1 : 0, - n = Math.floor(127 * h.opacity); - return n * Hn + e * Ln + n * gt + e * qt + n * vr + e * _i + n * Di + e - } - const Mi = 0; - class Cr { - constructor(e) { - this._sortAcrossTiles = e.layout.get("symbol-z-order") !== "viewport-y" && !e.layout.get("symbol-sort-key").isConstant(), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = [] - } - continuePlacement(e, n, s, u, d) { - const m = this._bucketParts; - for (; this._currentTileIndex < e.length;) - if (n.getBucketParts(m, u, e[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, d()) return !0; - for (this._sortAcrossTiles && (this._sortAcrossTiles = !1, m.sort(((y, w) => y.sortKey - w.sortKey))); this._currentPartIndex < m.length;) - if (n.placeLayerBucketPart(m[this._currentPartIndex], this._seenCrossTileIDs, s), this._currentPartIndex++, d()) return !0; - return !1 - } - } - class gn { - constructor(e, n, s, u, d, m, y, w) { - this.placement = new Xi(e, n, m, y, w), this._currentPlacementIndex = s.length - 1, this._forceFullPlacement = u, this._showCollisionBoxes = d, this._done = !1 - } - isDone() { - return this._done - } - continuePlacement(e, n, s) { - const u = ye.now(), - d = () => !this._forceFullPlacement && ye.now() - u > 2; - for (; this._currentPlacementIndex >= 0;) { - const m = n[e[this._currentPlacementIndex]], - y = this.placement.collisionIndex.transform.zoom; - if (m.type === "symbol" && (!m.minzoom || m.minzoom <= y) && (!m.maxzoom || m.maxzoom > y)) { - if (this._inProgressLayer || (this._inProgressLayer = new Cr(m)), this._inProgressLayer.continuePlacement(s[m.source], this.placement, this._showCollisionBoxes, m, d)) return; - delete this._inProgressLayer - } - this._currentPlacementIndex-- - } - this._done = !0 - } - commit(e) { - return this.placement.commit(e), this.placement - } - } - const tr = 512 / o.$ / 2; - class Ht { - constructor(e, n, s) { - this.tileID = e, this.bucketInstanceId = s, this._symbolsByKey = {}; - const u = new Map; - for (let d = 0; d < n.length; d++) { - const m = n.get(d), - y = m.key, - w = u.get(y); - w ? w.push(m) : u.set(y, [m]) - } - for (const [d, m] of u) { - const y = { - positions: m.map((w => ({ - x: Math.floor(w.anchorX * tr), - y: Math.floor(w.anchorY * tr) - }))), - crossTileIDs: m.map((w => w.crossTileID)) - }; - if (y.positions.length > 128) { - const w = new o.aI(y.positions.length, 16, Uint16Array); - for (const { - x: P, - y: M - } - of y.positions) w.add(P, M); - w.finish(), delete y.positions, y.index = w - } - this._symbolsByKey[d] = y - } - } - getScaledCoordinates(e, n) { - const { - x: s, - y: u, - z: d - } = this.tileID.canonical, { - x: m, - y, - z: w - } = n.canonical, P = tr / Math.pow(2, w - d), M = (y * o.$ + e.anchorY) * P, D = u * o.$ * tr; - return { - x: Math.floor((m * o.$ + e.anchorX) * P - s * o.$ * tr), - y: Math.floor(M - D) - } - } - findMatches(e, n, s) { - const u = this.tileID.canonical.z < n.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - n.canonical.z); - for (let d = 0; d < e.length; d++) { - const m = e.get(d); - if (m.crossTileID) continue; - const y = this._symbolsByKey[m.key]; - if (!y) continue; - const w = this.getScaledCoordinates(m, n); - if (y.index) { - const P = y.index.range(w.x - u, w.y - u, w.x + u, w.y + u).sort(); - for (const M of P) { - const D = y.crossTileIDs[M]; - if (!s[D]) { - s[D] = !0, m.crossTileID = D; - break - } - } - } else if (y.positions) - for (let P = 0; P < y.positions.length; P++) { - const M = y.positions[P], - D = y.crossTileIDs[P]; - if (Math.abs(M.x - w.x) <= u && Math.abs(M.y - w.y) <= u && !s[D]) { - s[D] = !0, m.crossTileID = D; - break - } - } - } - } - getCrossTileIDsLists() { - return Object.values(this._symbolsByKey).map((({ - crossTileIDs: e - }) => e)) - } - } - class ei { - constructor() { - this.maxCrossTileID = 0 - } - generate() { - return ++this.maxCrossTileID - } - } - class ri { - constructor() { - this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0 - } - handleWrapJump(e) { - const n = Math.round((e - this.lng) / 360); - if (n !== 0) - for (const s in this.indexes) { - const u = this.indexes[s], - d = {}; - for (const m in u) { - const y = u[m]; - y.tileID = y.tileID.unwrapTo(y.tileID.wrap + n), d[y.tileID.key] = y - } - this.indexes[s] = d - } - this.lng = e - } - addBucket(e, n, s) { - if (this.indexes[e.overscaledZ] && this.indexes[e.overscaledZ][e.key]) { - if (this.indexes[e.overscaledZ][e.key].bucketInstanceId === n.bucketInstanceId) return !1; - this.removeBucketCrossTileIDs(e.overscaledZ, this.indexes[e.overscaledZ][e.key]) - } - for (let d = 0; d < n.symbolInstances.length; d++) n.symbolInstances.get(d).crossTileID = 0; - this.usedCrossTileIDs[e.overscaledZ] || (this.usedCrossTileIDs[e.overscaledZ] = {}); - const u = this.usedCrossTileIDs[e.overscaledZ]; - for (const d in this.indexes) { - const m = this.indexes[d]; - if (Number(d) > e.overscaledZ) - for (const y in m) { - const w = m[y]; - w.tileID.isChildOf(e) && w.findMatches(n.symbolInstances, e, u) - } else { - const y = m[e.scaledTo(Number(d)).key]; - y && y.findMatches(n.symbolInstances, e, u) - } - } - for (let d = 0; d < n.symbolInstances.length; d++) { - const m = n.symbolInstances.get(d); - m.crossTileID || (m.crossTileID = s.generate(), u[m.crossTileID] = !0) - } - return this.indexes[e.overscaledZ] === void 0 && (this.indexes[e.overscaledZ] = {}), this.indexes[e.overscaledZ][e.key] = new Ht(e, n.symbolInstances, n.bucketInstanceId), !0 - } - removeBucketCrossTileIDs(e, n) { - for (const s of n.getCrossTileIDsLists()) - for (const u of s) delete this.usedCrossTileIDs[e][u] - } - removeStaleBuckets(e) { - let n = !1; - for (const s in this.indexes) { - const u = this.indexes[s]; - for (const d in u) e[u[d].bucketInstanceId] || (this.removeBucketCrossTileIDs(s, u[d]), delete u[d], n = !0) - } - return n - } - } - class gi { - constructor() { - this.layerIndexes = {}, this.crossTileIDs = new ei, this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {} - } - addLayer(e, n, s) { - let u = this.layerIndexes[e.id]; - u === void 0 && (u = this.layerIndexes[e.id] = new ri); - let d = !1; - const m = {}; - u.handleWrapJump(s); - for (const y of n) { - const w = y.getBucket(e); - w && e.id === w.layerIds[0] && (w.bucketInstanceId || (w.bucketInstanceId = ++this.maxBucketInstanceId), u.addBucket(y.tileID, w, this.crossTileIDs) && (d = !0), m[w.bucketInstanceId] = !0) - } - return u.removeStaleBuckets(m) && (d = !0), d - } - pruneUnusedLayers(e) { - const n = {}; - e.forEach((s => { - n[s] = !0 - })); - for (const s in this.layerIndexes) n[s] || delete this.layerIndexes[s] - } - } - var ci = "void main() {fragColor=vec4(1.0);}"; - const pi = { - prelude: Er(`#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 -out highp vec4 fragColor;`, `#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;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c -);} -#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(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); -#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=(texture(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 -#ifdef GLOBE -if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;} -#endif -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 -}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`), - projectionMercator: Er("", "float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}"), - projectionGlobe: Er("", `#define GLOBE_RADIUS 6371008.8 -uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos -);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY); -if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len -);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`), - background: Er(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"), - backgroundPattern: Er(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "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;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"), - circle: Er(`in vec3 v_data;in 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);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;} -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out 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 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) { -#ifdef GLOBE -vec3 center_vector=projectToSphere(circle_center); -#endif -float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else { -#ifdef GLOBE -vec4 projected_center=interpolateProjection(circle_center,center_vector,ele); -#else -vec4 projected_center=projectTileWithElevation(circle_center,ele); -#endif -corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);} -#ifdef GLOBE -vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele); -#else -gl_Position=projectTileWithElevation(corner_position,ele); -#endif -} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`), - clippingMask: Er(ci, "in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"), - heatmap: Er(`uniform highp float u_intensity;in 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);fragColor=vec4(val,1.0,1.0,1.0); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out 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 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0); -#ifdef GLOBE -vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0); -#else -gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center)); -#endif -}`), - heatmapTexture: Er(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(0.0); -#endif -}`, "uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out 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: Er("in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}", "in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"), - collisionCircle: Er("in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}", "in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"), - colorRelief: Er(`#ifdef GL_ES -precision highp float; -#endif -uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else -{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0)); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "uniform vec2 u_dimension;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"), - debug: Er("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}", "in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}"), - depth: Er(ci, `in vec2 a_pos;void main() { -#ifdef GLOBE -gl_Position=projectTileFor3D(a_pos,0.0); -#else -gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0); -#endif -}`), - fill: Er(`#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 -fragColor=color*opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_fill_translate;in vec2 a_pos; -#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=projectTile(a_pos+u_fill_translate,a_pos);}`), - fillOutline: Er(`in vec2 v_pos; -#ifdef GLOBE -in float v_depth; -#endif -#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);fragColor=outline_color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos; -#ifdef GLOBE -out float v_depth; -#endif -#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=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -}`), - fillOutlinePattern: Er(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity; -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos; -#ifdef GLOBE -out float v_depth; -#endif -#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=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -}`), - fillPattern: Er(`#ifdef GL_ES -precision highp float; -#endif -uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in 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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out 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=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`), - fillExtrusion: Er(`in vec4 v_color;void main() {fragColor=v_color; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed; -#ifdef TERRAIN3D -in vec2 a_centroid; -#endif -out 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);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; -#ifdef GLOBE -vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); -#else -gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); -#endif -float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0); -#ifdef GLOBE -mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition); -#endif -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: Er(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting; -#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed; -#ifdef TERRAIN3D -in vec2 a_centroid; -#endif -#ifdef GLOBE -out vec3 v_sphere_pos; -#endif -out vec2 v_pos_a;out vec2 v_pos_b;out 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 elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; -#ifdef GLOBE -vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); -#else -gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); -#endif -vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 -? a_pos -: vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.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: Er(`#ifdef GL_ES -precision highp float; -#endif -uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;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))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"), - hillshade: Er(`uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES]; -#define PI 3.141592653589793 -#define STANDARD 0 -#define COMBINED 1 -#define IGOR 2 -#define MULTIDIRECTIONAL 3 -#define BASIC 4 -float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else -{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else -{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);} -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, "uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"), - line: Er(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale; -#ifdef GLOBE -in float v_depth; -#endif -#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);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`), - lineGradient: Er(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,v_uv);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`), - linePattern: Er(`#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;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width; -#ifdef GLOBE -in float v_depth; -#endif -#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(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity; -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`), - lineSDF: Er(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, ` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;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;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#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: Er(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in 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=texture(u_image0,v_pos0);vec4 color1=texture(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);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5; -#ifdef GLOBE -if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;} -#endif -v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`), - symbolIcon: Er(`uniform sampler2D u_texture;in vec2 v_tex;in 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;fragColor=texture(u_texture,v_tex)*alpha; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;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: Er(`#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;in vec2 v_data0;in 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=texture(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);}fragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform 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_translation;uniform float u_pitched_scale;out vec2 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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: Er(`#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;in vec4 v_data0;in 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;fragColor=texture(u_texture_icon,tex_icon)*alpha; -#ifdef OVERDRAW_INSPECTOR -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=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`, `in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in 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_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;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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: Er("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}", "in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"), - terrainDepth: Er("in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}", "in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}"), - terrainCoords: Er("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}", "in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}"), - projectionErrorMeasurement: Er("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}", "in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"), - atmosphere: Er(`in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758 -);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`, "in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}"), - sky: Er("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}", "in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}") - }; - - function Er(h, e) { - const n = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, - s = e.match(/in ([\w]+) ([\w]+)/g), - u = h.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), - d = e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), - m = d ? d.concat(u) : u, - y = {}; - return { - fragmentSource: h = h.replace(n, ((w, P, M, D, z) => (y[z] = !0, P === "define" ? ` -#ifndef HAS_UNIFORM_u_${z} -in ${M} ${D} ${z}; -#else -uniform ${M} ${D} u_${z}; -#endif -` : ` -#ifdef HAS_UNIFORM_u_${z} - ${M} ${D} ${z} = u_${z}; -#endif -`))), - vertexSource: e = e.replace(n, ((w, P, M, D, z) => { - const B = D === "float" ? "vec2" : "vec4", - U = z.match(/color/) ? "color" : B; - return y[z] ? P === "define" ? ` -#ifndef HAS_UNIFORM_u_${z} -uniform lowp float u_${z}_t; -in ${M} ${B} a_${z}; -out ${M} ${D} ${z}; -#else -uniform ${M} ${D} u_${z}; -#endif -` : U === "vec4" ? ` -#ifndef HAS_UNIFORM_u_${z} - ${z} = a_${z}; -#else - ${M} ${D} ${z} = u_${z}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${z} - ${z} = unpack_mix_${U}(a_${z}, u_${z}_t); -#else - ${M} ${D} ${z} = u_${z}; -#endif -` : P === "define" ? ` -#ifndef HAS_UNIFORM_u_${z} -uniform lowp float u_${z}_t; -in ${M} ${B} a_${z}; -#else -uniform ${M} ${D} u_${z}; -#endif -` : U === "vec4" ? ` -#ifndef HAS_UNIFORM_u_${z} - ${M} ${D} ${z} = a_${z}; -#else - ${M} ${D} ${z} = u_${z}; -#endif -` : ` -#ifndef HAS_UNIFORM_u_${z} - ${M} ${D} ${z} = unpack_mix_${U}(a_${z}, u_${z}_t); -#else - ${M} ${D} ${z} = u_${z}; -#endif -` - })), - staticAttributes: s, - staticUniforms: m - } - } - class Ri { - constructor(e, n, s) { - this.vertexBuffer = e, this.indexBuffer = n, this.segments = s - } - destroy() { - this.vertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.vertexBuffer = null, this.indexBuffer = null, this.segments = null - } - } - var ui = o.aJ([{ - name: "a_pos", - type: "Int16", - components: 2 - }]); - const Jr = "#define PROJECTION_MERCATOR", - ti = "mercator"; - class yr { - constructor() { - this._cachedMesh = null - } - get name() { - return "mercator" - } - get useSubdivision() { - return !1 - } - get shaderVariantName() { - return ti - } - get shaderDefine() { - return Jr - } - get shaderPreludeCode() { - return pi.projectionMercator - } - get vertexShaderPreludeCode() { - return pi.projectionMercator.vertexSource - } - get subdivisionGranularity() { - return o.aK.noSubdivision - } - get useGlobeControls() { - return !1 - } - get transitionState() { - return 0 - } - get latitudeErrorCorrectionRadians() { - return 0 - } - destroy() {} - updateGPUdependent(e) {} - getMeshFromTileID(e, n, s, u, d) { - if (this._cachedMesh) return this._cachedMesh; - const m = new o.aL; - m.emplaceBack(0, 0), m.emplaceBack(o.$, 0), m.emplaceBack(0, o.$), m.emplaceBack(o.$, o.$); - const y = e.createVertexBuffer(m, ui.members), - w = o.aM.simpleSegment(0, 0, 4, 2), - P = new o.aN; - P.emplaceBack(1, 0, 2), P.emplaceBack(1, 2, 3); - const M = e.createIndexBuffer(P); - return this._cachedMesh = new Ri(y, M, w), this._cachedMesh - } - recalculate() {} - hasTransition() { - return !1 - } - setErrorQueryLatitudeDegrees(e) {} - } - class on { - constructor(e = 0, n = 0, s = 0, u = 0) { - if (isNaN(e) || e < 0 || isNaN(n) || n < 0 || isNaN(s) || s < 0 || isNaN(u) || u < 0) throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers"); - this.top = e, this.bottom = n, this.left = s, this.right = u - } - interpolate(e, n, s) { - return n.top != null && e.top != null && (this.top = o.C.number(e.top, n.top, s)), n.bottom != null && e.bottom != null && (this.bottom = o.C.number(e.bottom, n.bottom, s)), n.left != null && e.left != null && (this.left = o.C.number(e.left, n.left, s)), n.right != null && e.right != null && (this.right = o.C.number(e.right, n.right, s)), this - } - getCenter(e, n) { - const s = o.ah((this.left + e - this.right) / 2, 0, e), - u = o.ah((this.top + n - this.bottom) / 2, 0, n); - return new o.P(s, u) - } - equals(e) { - return this.top === e.top && this.bottom === e.bottom && this.left === e.left && this.right === e.right - } - clone() { - return new on(this.top, this.bottom, this.left, this.right) - } - toJSON() { - return { - top: this.top, - bottom: this.bottom, - left: this.left, - right: this.right - } - } - } - - function vn(h, e) { - if (!h.renderWorldCopies || h.lngRange) return; - const n = e.lng - h.center.lng; - e.lng += n > 180 ? -360 : n < -180 ? 360 : 0 - } - - function _a(h) { - return Math.max(0, Math.floor(h)) - } - class ln { - constructor(e, n, s, u, d, m) { - this._callbacks = e, this._tileSize = 512, this._renderWorldCopies = m === void 0 || !!m, this._minZoom = n || 0, this._maxZoom = s || 22, this._minPitch = u ?? 0, this._maxPitch = d ?? 60, this.setMaxBounds(), this._width = 0, this._height = 0, this._center = new o.S(0, 0), this._elevation = 0, this._zoom = 0, this._tileZoom = _a(this._zoom), this._scale = o.af(this._zoom), this._bearingInRadians = 0, this._fovInRadians = .6435011087932844, this._pitchInRadians = 0, this._rollInRadians = 0, this._unmodified = !0, this._edgeInsets = new on, this._minElevationForCurrentTile = 0, this._autoCalculateNearFarZ = !0 - } - apply(e, n, s) { - this._latRange = e.latRange, this._lngRange = e.lngRange, this._width = e.width, this._height = e.height, this._center = e.center, this._elevation = e.elevation, this._minElevationForCurrentTile = e.minElevationForCurrentTile, this._zoom = e.zoom, this._tileZoom = _a(this._zoom), this._scale = o.af(this._zoom), this._bearingInRadians = e.bearingInRadians, this._fovInRadians = e.fovInRadians, this._pitchInRadians = e.pitchInRadians, this._rollInRadians = e.rollInRadians, this._unmodified = e.unmodified, this._edgeInsets = new on(e.padding.top, e.padding.bottom, e.padding.left, e.padding.right), this._minZoom = e.minZoom, this._maxZoom = e.maxZoom, this._minPitch = e.minPitch, this._maxPitch = e.maxPitch, this._renderWorldCopies = e.renderWorldCopies, this._cameraToCenterDistance = e.cameraToCenterDistance, this._nearZ = e.nearZ, this._farZ = e.farZ, this._autoCalculateNearFarZ = !s && e.autoCalculateNearFarZ, n && this._constrain(), this._calcMatrices() - } - get pixelsToClipSpaceMatrix() { - return this._pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._clipSpaceToPixelsMatrix - } - get minElevationForCurrentTile() { - return this._minElevationForCurrentTile - } - setMinElevationForCurrentTile(e) { - this._minElevationForCurrentTile = e - } - get tileSize() { - return this._tileSize - } - get tileZoom() { - return this._tileZoom - } - get scale() { - return this._scale - } - get width() { - return this._width - } - get height() { - return this._height - } - get bearingInRadians() { - return this._bearingInRadians - } - get lngRange() { - return this._lngRange - } - get latRange() { - return this._latRange - } - get pixelsToGLUnits() { - return this._pixelsToGLUnits - } - get minZoom() { - return this._minZoom - } - setMinZoom(e) { - this._minZoom !== e && (this._minZoom = e, this.setZoom(this.getConstrained(this._center, this.zoom).zoom)) - } - get maxZoom() { - return this._maxZoom - } - setMaxZoom(e) { - this._maxZoom !== e && (this._maxZoom = e, this.setZoom(this.getConstrained(this._center, this.zoom).zoom)) - } - get minPitch() { - return this._minPitch - } - setMinPitch(e) { - this._minPitch !== e && (this._minPitch = e, this.setPitch(Math.max(this.pitch, e))) - } - get maxPitch() { - return this._maxPitch - } - setMaxPitch(e) { - this._maxPitch !== e && (this._maxPitch = e, this.setPitch(Math.min(this.pitch, e))) - } - get renderWorldCopies() { - return this._renderWorldCopies - } - setRenderWorldCopies(e) { - e === void 0 ? e = !0 : e === null && (e = !1), this._renderWorldCopies = e - } - get worldSize() { - return this._tileSize * this._scale - } - get centerOffset() { - return this.centerPoint._sub(this.size._div(2)) - } - get size() { - return new o.P(this._width, this._height) - } - get bearing() { - return this._bearingInRadians / Math.PI * 180 - } - setBearing(e) { - const n = o.aO(e, -180, 180) * Math.PI / 180; - var s, u, d, m, y, w, P, M, D; - this._bearingInRadians !== n && (this._unmodified = !1, this._bearingInRadians = n, this._calcMatrices(), this._rotationMatrix = W(), s = this._rotationMatrix, d = -this._bearingInRadians, m = (u = this._rotationMatrix)[0], y = u[1], w = u[2], P = u[3], M = Math.sin(d), D = Math.cos(d), s[0] = m * D + w * M, s[1] = y * D + P * M, s[2] = m * -M + w * D, s[3] = y * -M + P * D) - } - get rotationMatrix() { - return this._rotationMatrix - } - get pitchInRadians() { - return this._pitchInRadians - } - get pitch() { - return this._pitchInRadians / Math.PI * 180 - } - setPitch(e) { - const n = o.ah(e, this.minPitch, this.maxPitch) / 180 * Math.PI; - this._pitchInRadians !== n && (this._unmodified = !1, this._pitchInRadians = n, this._calcMatrices()) - } - get rollInRadians() { - return this._rollInRadians - } - get roll() { - return this._rollInRadians / Math.PI * 180 - } - setRoll(e) { - const n = e / 180 * Math.PI; - this._rollInRadians !== n && (this._unmodified = !1, this._rollInRadians = n, this._calcMatrices()) - } - get fovInRadians() { - return this._fovInRadians - } - get fov() { - return o.aP(this._fovInRadians) - } - setFov(e) { - e = o.ah(e, .1, 150), this.fov !== e && (this._unmodified = !1, this._fovInRadians = o.ae(e), this._calcMatrices()) - } - get zoom() { - return this._zoom - } - setZoom(e) { - const n = this.getConstrained(this._center, e).zoom; - this._zoom !== n && (this._unmodified = !1, this._zoom = n, this._tileZoom = Math.max(0, Math.floor(n)), this._scale = o.af(n), this._constrain(), this._calcMatrices()) - } - get center() { - return this._center - } - setCenter(e) { - e.lat === this._center.lat && e.lng === this._center.lng || (this._unmodified = !1, this._center = e, this._constrain(), this._calcMatrices()) - } - get elevation() { - return this._elevation - } - setElevation(e) { - e !== this._elevation && (this._elevation = e, this._constrain(), this._calcMatrices()) - } - get padding() { - return this._edgeInsets.toJSON() - } - setPadding(e) { - this._edgeInsets.equals(e) || (this._unmodified = !1, this._edgeInsets.interpolate(this._edgeInsets, e, 1), this._calcMatrices()) - } - get centerPoint() { - return this._edgeInsets.getCenter(this._width, this._height) - } - get pixelsPerMeter() { - return this._pixelPerMeter - } - get unmodified() { - return this._unmodified - } - get cameraToCenterDistance() { - return this._cameraToCenterDistance - } - get nearZ() { - return this._nearZ - } - get farZ() { - return this._farZ - } - get autoCalculateNearFarZ() { - return this._autoCalculateNearFarZ - } - overrideNearFarZ(e, n) { - this._autoCalculateNearFarZ = !1, this._nearZ = e, this._farZ = n, this._calcMatrices() - } - clearNearFarZOverride() { - this._autoCalculateNearFarZ = !0, this._calcMatrices() - } - isPaddingEqual(e) { - return this._edgeInsets.equals(e) - } - interpolatePadding(e, n, s) { - this._unmodified = !1, this._edgeInsets.interpolate(e, n, s), this._constrain(), this._calcMatrices() - } - resize(e, n, s = !0) { - this._width = e, this._height = n, s && this._constrain(), this._calcMatrices() - } - getMaxBounds() { - return this._latRange && this._latRange.length === 2 && this._lngRange && this._lngRange.length === 2 ? new dt([this._lngRange[0], this._latRange[0]], [this._lngRange[1], this._latRange[1]]) : null - } - setMaxBounds(e) { - e ? (this._lngRange = [e.getWest(), e.getEast()], this._latRange = [e.getSouth(), e.getNorth()], this._constrain()) : (this._lngRange = null, this._latRange = [-o.ai, o.ai]) - } - getConstrained(e, n) { - return this._callbacks.getConstrained(e, n) - } - getCameraQueryGeometry(e, n) { - if (n.length === 1) return [n[0], e]; - { - const { - minX: s, - minY: u, - maxX: d, - maxY: m - } = o.a2.fromPoints(n).extend(e); - return [new o.P(s, u), new o.P(d, u), new o.P(d, m), new o.P(s, m), new o.P(s, u)] - } - } - _constrain() { - if (!this.center || !this._width || !this._height || this._constraining) return; - this._constraining = !0; - const e = this._unmodified, - { - center: n, - zoom: s - } = this.getConstrained(this.center, this.zoom); - this.setCenter(n), this.setZoom(s), this._unmodified = e, this._constraining = !1 - } - _calcMatrices() { - if (this._width && this._height) { - this._pixelsToGLUnits = [2 / this._width, -2 / this._height]; - let e = o.ag(new Float64Array(16)); - o.N(e, e, [this._width / 2, -this._height / 2, 1]), o.M(e, e, [1, -1, 0]), this._clipSpaceToPixelsMatrix = e, e = o.ag(new Float64Array(16)), o.N(e, e, [1, -1, 1]), o.M(e, e, [-1, -1, 0]), o.N(e, e, [2 / this._width, 2 / this._height, 1]), this._pixelsToClipSpaceMatrix = e, this._cameraToCenterDistance = .5 / Math.tan(this.fovInRadians / 2) * this._height - } - this._callbacks.calcMatrices() - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - const d = s !== void 0 ? s : this.bearing, - m = u = u !== void 0 ? u : this.pitch, - y = o.a1.fromLngLat(e, n), - w = -Math.cos(o.ae(m)), - P = Math.sin(o.ae(m)), - M = P * Math.sin(o.ae(d)), - D = -P * Math.cos(o.ae(d)); - let z = this.elevation; - const B = n - z; - let U; - w * B >= 0 || Math.abs(w) < .1 ? (U = 1e4, z = n + U * w) : U = -B / w; - let ee, J, re = o.aQ(1, y.y), - se = 0; - do { - if (se += 1, se > 10) break; - J = U / re, ee = new o.a1(y.x + M * J, y.y + D * J), re = 1 / ee.meterInMercatorCoordinateUnits() - } while (Math.abs(U - J * re) > 1e-12); - return { - center: ee.toLngLat(), - elevation: z, - zoom: o.ak(this.height / 2 / Math.tan(this.fovInRadians / 2) / J / this.tileSize) - } - } - recalculateZoomAndCenter(e) { - if (this.elevation - e == 0) return; - const n = o.aj(1, this.center.lat) * this.worldSize, - s = this.cameraToCenterDistance / n, - u = o.a1.fromLngLat(this.center, this.elevation), - d = Le(this.center, this.elevation, this.pitch, this.bearing, s); - this._elevation = e; - const m = this.calculateCenterFromCameraLngLatAlt(d.toLngLat(), o.aQ(d.z, u.y), this.bearing, this.pitch); - this._elevation = m.elevation, this._center = m.center, this.setZoom(m.zoom) - } - getCameraPoint() { - const e = Math.tan(this.pitchInRadians) * (this.cameraToCenterDistance || 1); - return this.centerPoint.add(new o.P(e * Math.sin(this.rollInRadians), e * Math.cos(this.rollInRadians))) - } - getCameraAltitude() { - return Math.cos(this.pitchInRadians) * this._cameraToCenterDistance / this._pixelPerMeter + this.elevation - } - getCameraLngLat() { - const e = o.aj(1, this.center.lat) * this.worldSize; - return Le(this.center, this.elevation, this.pitch, this.bearing, this.cameraToCenterDistance / e).toLngLat() - } - getMercatorTileCoordinates(e) { - if (!e) return [0, 0, 1, 1]; - const n = e.canonical.z >= 0 ? 1 << e.canonical.z : Math.pow(2, e.canonical.z); - return [e.canonical.x / n, e.canonical.y / n, 1 / n / o.$, 1 / n / o.$] - } - } - class Ki { - constructor(e, n) { - this.min = e, this.max = n, this.center = o.aR([], o.aS([], this.min, this.max), .5) - } - quadrant(e) { - const n = [e % 2 == 0, e < 2], - s = o.aT(this.min), - u = o.aT(this.max); - for (let d = 0; d < n.length; d++) s[d] = n[d] ? this.min[d] : this.center[d], u[d] = n[d] ? this.center[d] : this.max[d]; - return u[2] = this.max[2], new Ki(s, u) - } - distanceX(e) { - return Math.max(Math.min(this.max[0], e[0]), this.min[0]) - e[0] - } - distanceY(e) { - return Math.max(Math.min(this.max[1], e[1]), this.min[1]) - e[1] - } - intersectsFrustum(e) { - let n = !0; - for (let s = 0; s < e.planes.length; s++) { - const u = this.intersectsPlane(e.planes[s]); - if (u === 0) return 0; - u === 1 && (n = !1) - } - return n ? 2 : e.aabb.min[0] > this.max[0] || e.aabb.min[1] > this.max[1] || e.aabb.min[2] > this.max[2] || e.aabb.max[0] < this.min[0] || e.aabb.max[1] < this.min[1] || e.aabb.max[2] < this.min[2] ? 0 : 1 - } - intersectsPlane(e) { - let n = e[3], - s = e[3]; - for (let u = 0; u < 3; u++) e[u] > 0 ? (n += e[u] * this.min[u], s += e[u] * this.max[u]) : (s += e[u] * this.min[u], n += e[u] * this.max[u]); - return n >= 0 ? 2 : s < 0 ? 0 : 1 - } - } - class cn { - distanceToTile2d(e, n, s, u) { - const d = u.distanceX([e, n]), - m = u.distanceY([e, n]); - return Math.hypot(d, m) - } - getWrap(e, n, s) { - return s - } - getTileBoundingVolume(e, n, s, u) { - var d, m; - let y = 0, - w = 0; - if (u != null && u.terrain) { - const M = new o.Z(e.z, n, e.z, e.x, e.y), - D = u.terrain.getMinMaxElevation(M); - y = (d = D.minElevation) !== null && d !== void 0 ? d : Math.min(0, s), w = (m = D.maxElevation) !== null && m !== void 0 ? m : Math.max(0, s) - } - const P = 1 << e.z; - return new Ki([n + e.x / P, e.y / P, y], [n + (e.x + 1) / P, (e.y + 1) / P, w]) - } - allowVariableZoom(e, n) { - const s = e.fov * (Math.abs(Math.cos(e.rollInRadians)) * e.height + Math.abs(Math.sin(e.rollInRadians)) * e.width) / e.height, - u = o.ah(78.5 - s / 2, 0, 60); - return !!n.terrain || e.pitch > u - } - allowWorldCopies() { - return !0 - } - prepareNextFrame() {} - } - class Ni { - constructor(e, n, s) { - this.points = e, this.planes = n, this.aabb = s - } - static fromInvProjectionMatrix(e, n = 1, s = 0, u, d) { - const m = d ? [ - [6, 5, 4], - [0, 1, 2], - [0, 3, 7], - [2, 1, 5], - [3, 2, 6], - [0, 4, 5] - ] : [ - [0, 1, 2], - [6, 5, 4], - [0, 3, 7], - [2, 1, 5], - [3, 2, 6], - [0, 4, 5] - ], - y = Math.pow(2, s), - w = [ - [-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((z => (function(B, U, ee, J) { - const re = o.aw([], B, U), - se = 1 / re[3] / ee * J; - return o.aY(re, re, [se, se, 1 / re[3], se]) - })(z, e, n, y))); - u && (function(z, B, U, ee) { - const J = ee ? 4 : 0, - re = ee ? 0 : 4; - let se = 0; - const de = [], - ue = []; - for (let he = 0; he < 4; he++) { - const De = o.aU([], z[he + re], z[he + J]), - He = o.aZ(De); - o.aR(De, De, 1 / He), de.push(He), ue.push(De) - } - for (let he = 0; he < 4; he++) { - const De = o.a_(z[he + J], ue[he], U); - se = De !== null && De >= 0 ? Math.max(se, De) : Math.max(se, de[he]) - } - const ge = (function(he, De) { - const He = o.aU([], he[De[0]], he[De[1]]), - je = o.aU([], he[De[2]], he[De[1]]), - qe = [0, 0, 0, 0]; - return o.aV(qe, o.aW([], He, je)), qe[3] = -o.aX(qe, he[De[0]]), qe - })(z, B), - Te = (function(he, De) { - const He = o.a$(he), - je = o.b0([], he, 1 / He), - qe = o.aU([], De, o.aR([], je, o.aX(De, je))), - $e = o.a$(qe); - if ($e > 0) { - const Rt = Math.sqrt(1 - je[3] * je[3]), - Nt = o.aR([], je, -je[3]), - yt = o.aS([], Nt, o.aR([], qe, Rt / $e)); - return o.b1(De, yt) - } - return null - })(U, ge); - if (Te !== null) { - const he = Te / o.aX(ue[0], ge); - se = Math.min(se, he) - } - for (let he = 0; he < 4; he++) { - const De = Math.min(se, de[he]); - z[he + re] = [z[he + J][0] + ue[he][0] * De, z[he + J][1] + ue[he][1] * De, z[he + J][2] + ue[he][2] * De, 1] - } - })(w, m[0], u, d); - const P = m.map((z => { - const B = o.aU([], w[z[0]], w[z[1]]), - U = o.aU([], w[z[2]], w[z[1]]), - ee = o.aV([], o.aW([], B, U)), - J = -o.aX(ee, w[z[1]]); - return ee.concat(J) - })), - M = [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY], - D = [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY]; - for (const z of w) - for (let B = 0; B < 3; B++) M[B] = Math.min(M[B], z[B]), D[B] = Math.max(D[B], z[B]); - return new Ni(w, P, new Ki(M, D)) - } - } - class wi { - get pixelsToClipSpaceMatrix() { - return this._helper.pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._helper.clipSpaceToPixelsMatrix - } - get pixelsToGLUnits() { - return this._helper.pixelsToGLUnits - } - get centerOffset() { - return this._helper.centerOffset - } - get size() { - return this._helper.size - } - get rotationMatrix() { - return this._helper.rotationMatrix - } - get centerPoint() { - return this._helper.centerPoint - } - get pixelsPerMeter() { - return this._helper.pixelsPerMeter - } - setMinZoom(e) { - this._helper.setMinZoom(e) - } - setMaxZoom(e) { - this._helper.setMaxZoom(e) - } - setMinPitch(e) { - this._helper.setMinPitch(e) - } - setMaxPitch(e) { - this._helper.setMaxPitch(e) - } - setRenderWorldCopies(e) { - this._helper.setRenderWorldCopies(e) - } - setBearing(e) { - this._helper.setBearing(e) - } - setPitch(e) { - this._helper.setPitch(e) - } - setRoll(e) { - this._helper.setRoll(e) - } - setFov(e) { - this._helper.setFov(e) - } - setZoom(e) { - this._helper.setZoom(e) - } - setCenter(e) { - this._helper.setCenter(e) - } - setElevation(e) { - this._helper.setElevation(e) - } - setMinElevationForCurrentTile(e) { - this._helper.setMinElevationForCurrentTile(e) - } - setPadding(e) { - this._helper.setPadding(e) - } - interpolatePadding(e, n, s) { - return this._helper.interpolatePadding(e, n, s) - } - isPaddingEqual(e) { - return this._helper.isPaddingEqual(e) - } - resize(e, n, s = !0) { - this._helper.resize(e, n, s) - } - getMaxBounds() { - return this._helper.getMaxBounds() - } - setMaxBounds(e) { - this._helper.setMaxBounds(e) - } - overrideNearFarZ(e, n) { - this._helper.overrideNearFarZ(e, n) - } - clearNearFarZOverride() { - this._helper.clearNearFarZOverride() - } - getCameraQueryGeometry(e) { - return this._helper.getCameraQueryGeometry(this.getCameraPoint(), e) - } - get tileSize() { - return this._helper.tileSize - } - get tileZoom() { - return this._helper.tileZoom - } - get scale() { - return this._helper.scale - } - get worldSize() { - return this._helper.worldSize - } - get width() { - return this._helper.width - } - get height() { - return this._helper.height - } - get lngRange() { - return this._helper.lngRange - } - get latRange() { - return this._helper.latRange - } - get minZoom() { - return this._helper.minZoom - } - get maxZoom() { - return this._helper.maxZoom - } - get zoom() { - return this._helper.zoom - } - get center() { - return this._helper.center - } - get minPitch() { - return this._helper.minPitch - } - get maxPitch() { - return this._helper.maxPitch - } - get pitch() { - return this._helper.pitch - } - get pitchInRadians() { - return this._helper.pitchInRadians - } - get roll() { - return this._helper.roll - } - get rollInRadians() { - return this._helper.rollInRadians - } - get bearing() { - return this._helper.bearing - } - get bearingInRadians() { - return this._helper.bearingInRadians - } - get fov() { - return this._helper.fov - } - get fovInRadians() { - return this._helper.fovInRadians - } - get elevation() { - return this._helper.elevation - } - get minElevationForCurrentTile() { - return this._helper.minElevationForCurrentTile - } - get padding() { - return this._helper.padding - } - get unmodified() { - return this._helper.unmodified - } - get renderWorldCopies() { - return this._helper.renderWorldCopies - } - get cameraToCenterDistance() { - return this._helper.cameraToCenterDistance - } - get nearZ() { - return this._helper.nearZ - } - get farZ() { - return this._helper.farZ - } - get autoCalculateNearFarZ() { - return this._helper.autoCalculateNearFarZ - } - setTransitionState(e, n) {} - constructor(e, n, s, u, d) { - this._posMatrixCache = new Map, this._alignedPosMatrixCache = new Map, this._fogMatrixCacheF32 = new Map, this._helper = new ln({ - calcMatrices: () => { - this._calcMatrices() - }, - getConstrained: (m, y) => this.getConstrained(m, y) - }, e, n, s, u, d), this._coveringTilesDetailsProvider = new cn - } - clone() { - const e = new wi; - return e.apply(this), e - } - apply(e, n, s) { - this._helper.apply(e, n, s) - } - get cameraPosition() { - return this._cameraPosition - } - get projectionMatrix() { - return this._projectionMatrix - } - get modelViewProjectionMatrix() { - return this._viewProjMatrix - } - get inverseProjectionMatrix() { - return this._invProjMatrix - } - get mercatorMatrix() { - return this._mercatorMatrix - } - getVisibleUnwrappedCoordinates(e) { - const n = [new o.b2(0, e)]; - if (this._helper._renderWorldCopies) { - const s = this.screenPointToMercatorCoordinate(new o.P(0, 0)), - u = this.screenPointToMercatorCoordinate(new o.P(this._helper._width, 0)), - d = this.screenPointToMercatorCoordinate(new o.P(this._helper._width, this._helper._height)), - m = this.screenPointToMercatorCoordinate(new o.P(0, this._helper._height)), - y = Math.floor(Math.min(s.x, u.x, d.x, m.x)), - w = Math.floor(Math.max(s.x, u.x, d.x, m.x)), - P = 1; - for (let M = y - P; M <= w + P; M++) M !== 0 && n.push(new o.b2(M, e)) - } - return n - } - getCameraFrustum() { - return Ni.fromInvProjectionMatrix(this._invViewProjMatrix, this.worldSize) - } - getClippingPlane() { - return null - } - getCoveringTilesDetailsProvider() { - return this._coveringTilesDetailsProvider - } - recalculateZoomAndCenter(e) { - const n = this.screenPointToLocation(this.centerPoint, e), - s = e ? e.getElevationForLngLatZoom(n, this._helper._tileZoom) : 0; - this._helper.recalculateZoomAndCenter(s) - } - setLocationAtPoint(e, n) { - const s = o.aj(this.elevation, this.center.lat), - u = this.screenPointToMercatorCoordinateAtZ(n, s), - d = this.screenPointToMercatorCoordinateAtZ(this.centerPoint, s), - m = o.a1.fromLngLat(e), - y = new o.a1(m.x - (u.x - d.x), m.y - (u.y - d.y)); - this.setCenter(y == null ? void 0 : y.toLngLat()), this._helper._renderWorldCopies && this.setCenter(this.center.wrap()) - } - locationToScreenPoint(e, n) { - return n ? this.coordinatePoint(o.a1.fromLngLat(e), n.getElevationForLngLatZoom(e, this._helper._tileZoom), this._pixelMatrix3D) : this.coordinatePoint(o.a1.fromLngLat(e)) - } - screenPointToLocation(e, n) { - var s; - return (s = this.screenPointToMercatorCoordinate(e, n)) === null || s === void 0 ? void 0 : s.toLngLat() - } - screenPointToMercatorCoordinate(e, n) { - if (n) { - const s = n.pointCoordinate(e); - if (s != null) return s - } - return this.screenPointToMercatorCoordinateAtZ(e) - } - screenPointToMercatorCoordinateAtZ(e, n) { - const s = n || 0, - u = [e.x, e.y, 0, 1], - d = [e.x, e.y, 1, 1]; - o.aw(u, u, this._pixelMatrixInverse), o.aw(d, d, this._pixelMatrixInverse); - const m = u[3], - y = d[3], - w = u[1] / m, - P = d[1] / y, - M = u[2] / m, - D = d[2] / y, - z = M === D ? 0 : (s - M) / (D - M); - return new o.a1(o.C.number(u[0] / m, d[0] / y, z) / this.worldSize, o.C.number(w, P, z) / this.worldSize, s) - } - coordinatePoint(e, n = 0, s = this._pixelMatrix) { - const u = [e.x * this.worldSize, e.y * this.worldSize, n, 1]; - return o.aw(u, u, s), new o.P(u[0] / u[3], u[1] / u[3]) - } - getBounds() { - const e = Math.max(0, this._helper._height / 2 - le(this)); - return new dt().extend(this.screenPointToLocation(new o.P(0, e))).extend(this.screenPointToLocation(new o.P(this._helper._width, e))).extend(this.screenPointToLocation(new o.P(this._helper._width, this._helper._height))).extend(this.screenPointToLocation(new o.P(0, this._helper._height))) - } - isPointOnMapSurface(e, n) { - return n ? n.pointCoordinate(e) != null : e.y > this.height / 2 - le(this) - } - calculatePosMatrix(e, n = !1, s) { - var u; - const d = (u = e.key) !== null && u !== void 0 ? u : o.b3(e.wrap, e.canonical.z, e.canonical.z, e.canonical.x, e.canonical.y), - m = n ? this._alignedPosMatrixCache : this._posMatrixCache; - if (m.has(d)) { - const P = m.get(d); - return s ? P.f32 : P.f64 - } - const y = ve(e, this.worldSize); - o.O(y, n ? this._alignedProjMatrix : this._viewProjMatrix, y); - const w = { - f64: y, - f32: new Float32Array(y) - }; - return m.set(d, w), s ? w.f32 : w.f64 - } - calculateFogMatrix(e) { - const n = e.key, - s = this._fogMatrixCacheF32; - if (s.has(n)) return s.get(n); - const u = ve(e, this.worldSize); - return o.O(u, this._fogMatrix, u), s.set(n, new Float32Array(u)), s.get(n) - } - getConstrained(e, n) { - n = o.ah(+n, this.minZoom, this.maxZoom); - const s = { - center: new o.S(e.lng, e.lat), - zoom: n - }; - let u = this._helper._lngRange; - if (!this._helper._renderWorldCopies && u === null) { - const de = 179.9999999999; - u = [-de, de] - } - const d = this.tileSize * o.af(s.zoom); - let m = 0, - y = d, - w = 0, - P = d, - M = 0, - D = 0; - const { - x: z, - y: B - } = this.size; - if (this._helper._latRange) { - const de = this._helper._latRange; - m = o.U(de[1]) * d, y = o.U(de[0]) * d, y - m < B && (M = B / (y - m)) - } - u && (w = o.aO(o.V(u[0]) * d, 0, d), P = o.aO(o.V(u[1]) * d, 0, d), P < w && (P += d), P - w < z && (D = z / (P - w))); - const { - x: U, - y: ee - } = G(d, e); - let J, re; - const se = Math.max(D || 0, M || 0); - if (se) { - const de = new o.P(D ? (P + w) / 2 : U, M ? (y + m) / 2 : ee); - return s.center = K(d, de).wrap(), s.zoom += o.ak(se), s - } - if (this._helper._latRange) { - const de = B / 2; - ee - de < m && (re = m + de), ee + de > y && (re = y - de) - } - if (u) { - const de = (w + P) / 2; - let ue = U; - this._helper._renderWorldCopies && (ue = o.aO(U, de - d / 2, de + d / 2)); - const ge = z / 2; - ue - ge < w && (J = w + ge), ue + ge > P && (J = P - ge) - } - if (J !== void 0 || re !== void 0) { - const de = new o.P(J ?? U, re ?? ee); - s.center = K(d, de).wrap() - } - return s - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - return this._helper.calculateCenterFromCameraLngLatAlt(e, n, s, u) - } - _calculateNearFarZIfNeeded(e, n, s) { - if (!this._helper.autoCalculateNearFarZ) return; - const u = Math.min(this.elevation, this.minElevationForCurrentTile, this.getCameraAltitude() - 100), - d = e - u * this._helper._pixelPerMeter / Math.cos(n), - m = u < 0 ? d : e, - y = Math.PI / 2 + this.pitchInRadians, - w = o.ae(this.fov) * (Math.abs(Math.cos(o.ae(this.roll))) * this.height + Math.abs(Math.sin(o.ae(this.roll))) * this.width) / this.height * (.5 + s.y / this.height), - P = Math.sin(w) * m / Math.sin(o.ah(Math.PI - y - w, .01, Math.PI - .01)), - M = le(this), - D = Math.atan(M / this._helper.cameraToCenterDistance), - z = o.ae(.75), - B = D > z ? 2 * D * (.5 + s.y / (2 * M)) : z, - U = Math.sin(B) * m / Math.sin(o.ah(Math.PI - y - B, .01, Math.PI - .01)), - ee = Math.min(P, U); - this._helper._farZ = 1.01 * (Math.cos(Math.PI / 2 - n) * ee + m), this._helper._nearZ = this._helper._height / 50 - } - _calcMatrices() { - if (!this._helper._height) return; - const e = this.centerOffset, - n = G(this.worldSize, this.center), - s = n.x, - u = n.y; - this._helper._pixelPerMeter = o.aj(1, this.center.lat) * this.worldSize; - const d = o.ae(Math.min(this.pitch, q)), - m = Math.max(this._helper.cameraToCenterDistance / 2, this._helper.cameraToCenterDistance + this._helper._elevation * this._helper._pixelPerMeter / Math.cos(d)); - let y; - this._calculateNearFarZIfNeeded(m, d, e), y = new Float64Array(16), o.b4(y, this.fovInRadians, this._helper._width / this._helper._height, this._helper._nearZ, this._helper._farZ), this._invProjMatrix = new Float64Array(16), o.aq(this._invProjMatrix, y), y[8] = 2 * -e.x / this._helper._width, y[9] = 2 * e.y / this._helper._height, this._projectionMatrix = o.b5(y), o.N(y, y, [1, -1, 1]), o.M(y, y, [0, 0, -this._helper.cameraToCenterDistance]), o.b6(y, y, -this.rollInRadians), o.b7(y, y, this.pitchInRadians), o.b6(y, y, -this.bearingInRadians), o.M(y, y, [-s, -u, 0]), this._mercatorMatrix = o.N([], y, [this.worldSize, this.worldSize, this.worldSize]), o.N(y, y, [1, 1, this._helper._pixelPerMeter]), this._pixelMatrix = o.O(new Float64Array(16), this.clipSpaceToPixelsMatrix, y), o.M(y, y, [0, 0, -this.elevation]), this._viewProjMatrix = y, this._invViewProjMatrix = o.aq([], y); - const w = [0, 0, -1, 1]; - o.aw(w, w, this._invViewProjMatrix), this._cameraPosition = [w[0] / w[3], w[1] / w[3], w[2] / w[3]], this._fogMatrix = new Float64Array(16), o.b4(this._fogMatrix, this.fovInRadians, this.width / this.height, m, this._helper._farZ), this._fogMatrix[8] = 2 * -e.x / this.width, this._fogMatrix[9] = 2 * e.y / this.height, o.N(this._fogMatrix, this._fogMatrix, [1, -1, 1]), o.M(this._fogMatrix, this._fogMatrix, [0, 0, -this.cameraToCenterDistance]), o.b6(this._fogMatrix, this._fogMatrix, -this.rollInRadians), o.b7(this._fogMatrix, this._fogMatrix, this.pitchInRadians), o.b6(this._fogMatrix, this._fogMatrix, -this.bearingInRadians), o.M(this._fogMatrix, this._fogMatrix, [-s, -u, 0]), o.N(this._fogMatrix, this._fogMatrix, [1, 1, this._helper._pixelPerMeter]), o.M(this._fogMatrix, this._fogMatrix, [0, 0, -this.elevation]), this._pixelMatrix3D = o.O(new Float64Array(16), this.clipSpaceToPixelsMatrix, y); - const P = this._helper._width % 2 / 2, - M = this._helper._height % 2 / 2, - D = Math.cos(this.bearingInRadians), - z = Math.sin(-this.bearingInRadians), - B = s - Math.round(s) + D * P + z * M, - U = u - Math.round(u) + D * M + z * P, - ee = new Float64Array(y); - if (o.M(ee, ee, [B > .5 ? B - 1 : B, U > .5 ? U - 1 : U, 0]), this._alignedProjMatrix = ee, y = o.aq(new Float64Array(16), this._pixelMatrix), !y) throw new Error("failed to invert matrix"); - this._pixelMatrixInverse = y, this._clearMatrixCaches() - } - _clearMatrixCaches() { - this._posMatrixCache.clear(), this._alignedPosMatrixCache.clear(), this._fogMatrixCacheF32.clear() - } - maxPitchScaleFactor() { - if (!this._pixelMatrixInverse) return 1; - const e = this.screenPointToMercatorCoordinate(new o.P(0, 0)), - n = [e.x * this.worldSize, e.y * this.worldSize, 0, 1]; - return o.aw(n, n, this._pixelMatrix)[3] / this._helper.cameraToCenterDistance - } - getCameraPoint() { - return this._helper.getCameraPoint() - } - getCameraAltitude() { - return this._helper.getCameraAltitude() - } - getCameraLngLat() { - const e = o.aj(1, this.center.lat) * this.worldSize; - return Le(this.center, this.elevation, this.pitch, this.bearing, this._helper.cameraToCenterDistance / e).toLngLat() - } - lngLatToCameraDepth(e, n) { - const s = o.a1.fromLngLat(e), - u = [s.x * this.worldSize, s.y * this.worldSize, n, 1]; - return o.aw(u, u, this._viewProjMatrix), u[2] / u[3] - } - getProjectionData(e) { - const { - overscaledTileID: n, - aligned: s, - applyTerrainMatrix: u - } = e, d = this._helper.getMercatorTileCoordinates(n), m = n ? this.calculatePosMatrix(n, s, !0) : null; - let y; - return y = n && n.terrainRttPosMatrix32f && u ? n.terrainRttPosMatrix32f : m || o.b8(), { - mainMatrix: y, - tileMercatorCoords: d, - clippingPlane: [0, 0, 0, 0], - projectionTransition: 0, - fallbackMatrix: y - } - } - isLocationOccluded(e) { - return !1 - } - getPixelScale() { - return 1 - } - getCircleRadiusCorrection() { - return 1 - } - getPitchedTextCorrection(e, n, s) { - return 1 - } - transformLightDirection(e) { - return o.aT(e) - } - getRayDirectionFromPixel(e) { - throw new Error("Not implemented.") - } - projectTileCoordinates(e, n, s, u) { - const d = this.calculatePosMatrix(s); - let m; - u ? (m = [e, n, u(e, n), 1], o.aw(m, m, d)) : (m = [e, n, 0, 1], Li(m, m, d)); - const y = m[3]; - return { - point: new o.P(m[0] / y, m[1] / y), - signedDistanceFromCamera: y, - isOccluded: !1 - } - } - populateCache(e) { - for (const n of e) this.calculatePosMatrix(n) - } - getMatrixForModel(e, n) { - const s = o.a1.fromLngLat(e, n), - u = s.meterInMercatorCoordinateUnits(), - d = o.b9(); - return o.M(d, d, [s.x, s.y, s.z]), o.b6(d, d, Math.PI), o.b7(d, d, Math.PI / 2), o.N(d, d, [-u, u, u]), d - } - getProjectionDataForCustomLayer(e = !0) { - const n = new o.Z(0, 0, 0, 0, 0), - s = this.getProjectionData({ - overscaledTileID: n, - applyGlobeMatrix: e - }), - u = ve(n, this.worldSize); - o.O(u, this._viewProjMatrix, u), s.tileMercatorCoords = [0, 0, 1, 1]; - const d = [o.$, o.$, this.worldSize / this._helper.pixelsPerMeter], - m = o.ba(); - return o.N(m, u, d), s.fallbackMatrix = m, s.mainMatrix = m, s - } - getFastPathSimpleProjectionMatrix(e) { - return this.calculatePosMatrix(e) - } - } - - function Ko() { - o.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.") - } - - function un(h) { - if (h.useSlerp) - if (h.k < 1) { - const e = o.bb(h.startEulerAngles.roll, h.startEulerAngles.pitch, h.startEulerAngles.bearing), - n = o.bb(h.endEulerAngles.roll, h.endEulerAngles.pitch, h.endEulerAngles.bearing), - s = new Float64Array(4); - o.bc(s, e, n, h.k); - const u = o.bd(s); - h.tr.setRoll(u.roll), h.tr.setPitch(u.pitch), h.tr.setBearing(u.bearing) - } else h.tr.setRoll(h.endEulerAngles.roll), h.tr.setPitch(h.endEulerAngles.pitch), h.tr.setBearing(h.endEulerAngles.bearing); - else h.tr.setRoll(o.C.number(h.startEulerAngles.roll, h.endEulerAngles.roll, h.k)), h.tr.setPitch(o.C.number(h.startEulerAngles.pitch, h.endEulerAngles.pitch, h.k)), h.tr.setBearing(o.C.number(h.startEulerAngles.bearing, h.endEulerAngles.bearing, h.k)) - } - - function Nn(h, e, n, s, u) { - const d = u.padding, - m = G(u.worldSize, n.getNorthWest()), - y = G(u.worldSize, n.getNorthEast()), - w = G(u.worldSize, n.getSouthEast()), - P = G(u.worldSize, n.getSouthWest()), - M = o.ae(-s), - D = m.rotate(M), - z = y.rotate(M), - B = w.rotate(M), - U = P.rotate(M), - ee = new o.P(Math.max(D.x, z.x, U.x, B.x), Math.max(D.y, z.y, U.y, B.y)), - J = new o.P(Math.min(D.x, z.x, U.x, B.x), Math.min(D.y, z.y, U.y, B.y)), - re = ee.sub(J), - se = (u.width - (d.left + d.right + e.left + e.right)) / re.x, - de = (u.height - (d.top + d.bottom + e.top + e.bottom)) / re.y; - if (de < 0 || se < 0) return void Ko(); - const ue = Math.min(o.ak(u.scale * Math.min(se, de)), h.maxZoom), - ge = o.P.convert(h.offset), - Te = new o.P((e.left - e.right) / 2, (e.top - e.bottom) / 2).rotate(o.ae(s)), - he = ge.add(Te).mult(u.scale / o.af(ue)); - return { - center: K(u.worldSize, m.add(w).div(2).sub(he)), - zoom: ue, - bearing: s - } - } - class hn { - get useGlobeControls() { - return !1 - } - handlePanInertia(e, n) { - return { - easingOffset: e, - easingCenter: n.center - } - } - handleMapControlsRollPitchBearingZoom(e, n) { - e.bearingDelta && n.setBearing(n.bearing + e.bearingDelta), e.pitchDelta && n.setPitch(n.pitch + e.pitchDelta), e.rollDelta && n.setRoll(n.roll + e.rollDelta), e.zoomDelta && n.setZoom(n.zoom + e.zoomDelta) - } - handleMapControlsPan(e, n, s) { - e.around.distSqr(n.centerPoint) < .01 || n.setLocationAtPoint(s, e.around) - } - cameraForBoxAndBearing(e, n, s, u, d) { - return Nn(e, n, s, u, d) - } - handleJumpToCenterZoom(e, n) { - e.zoom !== (n.zoom !== void 0 ? +n.zoom : e.zoom) && e.setZoom(+n.zoom), n.center !== void 0 && e.setCenter(o.S.convert(n.center)) - } - handleEaseTo(e, n) { - const s = e.zoom, - u = e.padding, - d = { - roll: e.roll, - pitch: e.pitch, - bearing: e.bearing - }, - m = { - roll: n.roll === void 0 ? e.roll : n.roll, - pitch: n.pitch === void 0 ? e.pitch : n.pitch, - bearing: n.bearing === void 0 ? e.bearing : n.bearing - }, - y = n.zoom !== void 0, - w = !e.isPaddingEqual(n.padding); - let P = !1; - const M = y ? +n.zoom : e.zoom; - let D = e.centerPoint.add(n.offsetAsPoint); - const z = e.screenPointToLocation(D), - { - center: B, - zoom: U - } = e.getConstrained(o.S.convert(n.center || z), M ?? s); - vn(e, B); - const ee = G(e.worldSize, z), - J = G(e.worldSize, B).sub(ee), - re = o.af(U - s); - return P = U !== s, { - easeFunc: se => { - if (P && e.setZoom(o.C.number(s, U, se)), o.be(d, m) || un({ - startEulerAngles: d, - endEulerAngles: m, - tr: e, - k: se, - useSlerp: d.roll != m.roll - }), w && (e.interpolatePadding(u, n.padding, se), D = e.centerPoint.add(n.offsetAsPoint)), n.around) e.setLocationAtPoint(n.around, n.aroundPoint); - else { - const de = o.af(e.zoom - s), - ue = U > s ? Math.min(2, re) : Math.max(.5, re), - ge = Math.pow(ue, 1 - se), - Te = K(e.worldSize, ee.add(J.mult(se * ge)).mult(de)); - e.setLocationAtPoint(e.renderWorldCopies ? Te.wrap() : Te, D) - } - }, - isZooming: P, - elevationCenter: B - } - } - handleFlyTo(e, n) { - const s = n.zoom !== void 0, - u = e.zoom, - d = e.getConstrained(o.S.convert(n.center || n.locationAtOffset), s ? +n.zoom : u), - m = d.center, - y = d.zoom; - vn(e, m); - const w = G(e.worldSize, n.locationAtOffset), - P = G(e.worldSize, m).sub(w), - M = P.mag(), - D = o.af(y - u); - let z; - if (n.minZoom !== void 0) { - const B = Math.min(+n.minZoom, u, y), - U = e.getConstrained(m, B).zoom; - z = o.af(U - u) - } - return { - easeFunc: (B, U, ee, J) => { - e.setZoom(B === 1 ? y : u + o.ak(U)); - const re = B === 1 ? m : K(e.worldSize, w.add(P.mult(ee)).mult(U)); - e.setLocationAtPoint(e.renderWorldCopies ? re.wrap() : re, J) - }, - scaleOfZoom: D, - targetCenter: m, - scaleOfMinZoom: z, - pixelPathLength: M - } - } - } - class Ti { - constructor(e, n, s) { - this.blendFunction = e, this.blendColor = n, this.mask = s - } - } - Ti.Replace = [1, 0], Ti.disabled = new Ti(Ti.Replace, o.bf.transparent, [!1, !1, !1, !1]), Ti.unblended = new Ti(Ti.Replace, o.bf.transparent, [!0, !0, !0, !0]), Ti.alphaBlended = new Ti([1, 771], o.bf.transparent, [!0, !0, !0, !0]); - const Za = 2305; - class wr { - constructor(e, n, s) { - this.enable = e, this.mode = n, this.frontFace = s - } - } - wr.disabled = new wr(!1, 1029, Za), wr.backCCW = new wr(!0, 1029, Za), wr.frontCCW = new wr(!0, 1028, Za); - class Vr { - constructor(e, n, s) { - this.func = e, this.mask = n, this.range = s - } - } - Vr.ReadOnly = !1, Vr.ReadWrite = !0, Vr.disabled = new Vr(519, Vr.ReadOnly, [0, 1]); - const ga = 7680; - class hi { - constructor(e, n, s, u, d, m) { - this.test = e, this.ref = n, this.mask = s, this.fail = u, this.depthFail = d, this.pass = m - } - } - hi.disabled = new hi({ - func: 519, - mask: 0 - }, 0, 0, ga, ga, ga); - const ra = new WeakMap; - - function Ra(h) { - var e; - if (ra.has(h)) return ra.get(h); - { - const n = (e = h.getParameter(h.VERSION)) === null || e === void 0 ? void 0 : e.startsWith("WebGL 2.0"); - return ra.set(h, n), n - } - } - class Ba { - get awaitingQuery() { - return !!this._readbackQueue - } - constructor(e) { - this._readbackWaitFrames = 4, this._measureWaitFrames = 6, this._texWidth = 1, this._texHeight = 1, this._measuredError = 0, this._updateCount = 0, this._lastReadbackFrame = -1e3, this._readbackQueue = null, this._cachedRenderContext = e; - const n = e.context, - s = n.gl; - this._texFormat = s.RGBA, this._texType = s.UNSIGNED_BYTE; - const u = new o.aL; - u.emplaceBack(-1, -1), u.emplaceBack(2, -1), u.emplaceBack(-1, 2); - const d = new o.aN; - d.emplaceBack(0, 1, 2), this._fullscreenTriangle = new Ri(n.createVertexBuffer(u, ui.members), n.createIndexBuffer(d), o.aM.simpleSegment(0, 0, u.length, d.length)), this._resultBuffer = new Uint8Array(4), n.activeTexture.set(s.TEXTURE1); - const m = s.createTexture(); - s.bindTexture(s.TEXTURE_2D, m), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_WRAP_S, s.CLAMP_TO_EDGE), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_WRAP_T, s.CLAMP_TO_EDGE), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_MIN_FILTER, s.NEAREST), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_MAG_FILTER, s.NEAREST), s.texImage2D(s.TEXTURE_2D, 0, this._texFormat, this._texWidth, this._texHeight, 0, this._texFormat, this._texType, null), this._fbo = n.createFramebuffer(this._texWidth, this._texHeight, !1, !1), this._fbo.colorAttachment.set(m), Ra(s) && (this._pbo = s.createBuffer(), s.bindBuffer(s.PIXEL_PACK_BUFFER, this._pbo), s.bufferData(s.PIXEL_PACK_BUFFER, 4, s.STREAM_READ), s.bindBuffer(s.PIXEL_PACK_BUFFER, null)) - } - destroy() { - const e = this._cachedRenderContext.context.gl; - this._fullscreenTriangle.destroy(), this._fbo.destroy(), e.deleteBuffer(this._pbo), this._fullscreenTriangle = null, this._fbo = null, this._pbo = null, this._resultBuffer = null - } - updateErrorLoop(e, n) { - const s = this._updateCount; - return this._readbackQueue ? s >= this._readbackQueue.frameNumberIssued + this._readbackWaitFrames && this._tryReadback() : s >= this._lastReadbackFrame + this._measureWaitFrames && this._renderErrorTexture(e, n), this._updateCount++, this._measuredError - } - _bindFramebuffer() { - const e = this._cachedRenderContext.context, - n = e.gl; - e.activeTexture.set(n.TEXTURE1), n.bindTexture(n.TEXTURE_2D, this._fbo.colorAttachment.get()), e.bindFramebuffer.set(this._fbo.framebuffer) - } - _renderErrorTexture(e, n) { - const s = this._cachedRenderContext.context, - u = s.gl; - if (this._bindFramebuffer(), s.viewport.set([0, 0, this._texWidth, this._texHeight]), s.clear({ - color: o.bf.transparent - }), this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(s, u.TRIANGLES, Vr.disabled, hi.disabled, Ti.unblended, wr.disabled, ((d, m) => ({ - u_input: d, - u_output_expected: m - }))(e, n), null, null, "$clipping", this._fullscreenTriangle.vertexBuffer, this._fullscreenTriangle.indexBuffer, this._fullscreenTriangle.segments), this._pbo && Ra(u)) { - u.bindBuffer(u.PIXEL_PACK_BUFFER, this._pbo), u.readBuffer(u.COLOR_ATTACHMENT0), u.readPixels(0, 0, this._texWidth, this._texHeight, this._texFormat, this._texType, 0), u.bindBuffer(u.PIXEL_PACK_BUFFER, null); - const d = u.fenceSync(u.SYNC_GPU_COMMANDS_COMPLETE, 0); - u.flush(), this._readbackQueue = { - frameNumberIssued: this._updateCount, - sync: d - } - } else this._readbackQueue = { - frameNumberIssued: this._updateCount, - sync: null - } - } - _tryReadback() { - const e = this._cachedRenderContext.context.gl; - if (this._pbo && this._readbackQueue && Ra(e)) { - const n = e.clientWaitSync(this._readbackQueue.sync, 0, 0); - if (n === e.WAIT_FAILED) return o.w("WebGL2 clientWaitSync failed."), this._readbackQueue = null, void(this._lastReadbackFrame = this._updateCount); - if (n === e.TIMEOUT_EXPIRED) return; - e.bindBuffer(e.PIXEL_PACK_BUFFER, this._pbo), e.getBufferSubData(e.PIXEL_PACK_BUFFER, 0, this._resultBuffer, 0, 4), e.bindBuffer(e.PIXEL_PACK_BUFFER, null) - } else this._bindFramebuffer(), e.readPixels(0, 0, this._texWidth, this._texHeight, this._texFormat, this._texType, this._resultBuffer); - this._readbackQueue = null, this._measuredError = Ba._parseRGBA8float(this._resultBuffer), this._lastReadbackFrame = this._updateCount - } - static _parseRGBA8float(e) { - let n = 0; - return n += e[0] / 256, n += e[1] / 65536, n += e[2] / 16777216, e[3] < 127 && (n = -n), n / 128 - } - } - const Yo = o.$ / 128; - - function mc(h, e) { - const n = h.granularity !== void 0 ? Math.max(h.granularity, 1) : 1, - s = n + (h.generateBorders ? 2 : 0), - u = n + (h.extendToNorthPole || h.generateBorders ? 1 : 0) + (h.extendToSouthPole || h.generateBorders ? 1 : 0), - d = s + 1, - m = u + 1, - y = h.generateBorders ? -1 : 0, - w = h.generateBorders || h.extendToNorthPole ? -1 : 0, - P = n + (h.generateBorders ? 1 : 0), - M = n + (h.generateBorders || h.extendToSouthPole ? 1 : 0), - D = d * m, - z = s * u * 6, - B = d * m > 65536; - if (B && e === "16bit") throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices."); - const U = B || e === "32bit", - ee = new Int16Array(2 * D); - let J = 0; - for (let de = w; de <= M; de++) - for (let ue = y; ue <= P; ue++) { - let ge = ue / n * o.$; - ue === -1 && (ge = -Yo), ue === n + 1 && (ge = o.$ + Yo); - let Te = de / n * o.$; - de === -1 && (Te = h.extendToNorthPole ? o.bh : -Yo), de === n + 1 && (Te = h.extendToSouthPole ? o.bi : o.$ + Yo), ee[J++] = ge, ee[J++] = Te - } - const re = U ? new Uint32Array(z) : new Uint16Array(z); - let se = 0; - for (let de = 0; de < u; de++) - for (let ue = 0; ue < s; ue++) { - const ge = ue + 1 + de * d, - Te = ue + (de + 1) * d, - he = ue + 1 + (de + 1) * d; - re[se++] = ue + de * d, re[se++] = Te, re[se++] = ge, re[se++] = ge, re[se++] = Te, re[se++] = he - } - return { - vertices: ee.buffer.slice(0), - indices: re.buffer.slice(0), - uses32bitIndices: U - } - } - const Rs = new o.aK({ - fill: new o.bj(128, 2), - line: new o.bj(512, 0), - tile: new o.bj(128, 32), - stencil: new o.bj(128, 1), - circle: 3 - }); - class co { - constructor() { - this._tileMeshCache = {}, this._errorCorrectionUsable = 0, this._errorMeasurementLastValue = 0, this._errorCorrectionPreviousValue = 0, this._errorMeasurementLastChangeTime = -1e3 - } - get name() { - return "vertical-perspective" - } - get transitionState() { - return 1 - } - get useSubdivision() { - return !0 - } - get shaderVariantName() { - return "globe" - } - get shaderDefine() { - return "#define GLOBE" - } - get shaderPreludeCode() { - return pi.projectionGlobe - } - get vertexShaderPreludeCode() { - return pi.projectionMercator.vertexSource - } - get subdivisionGranularity() { - return Rs - } - get useGlobeControls() { - return !0 - } - get latitudeErrorCorrectionRadians() { - return this._errorCorrectionUsable - } - destroy() { - this._errorMeasurement && this._errorMeasurement.destroy() - } - updateGPUdependent(e) { - this._errorMeasurement || (this._errorMeasurement = new Ba(e)); - const n = o.U(this._errorQueryLatitudeDegrees), - s = 2 * Math.atan(Math.exp(Math.PI - n * Math.PI * 2)) - .5 * Math.PI, - u = this._errorMeasurement.updateErrorLoop(n, s), - d = ye.now(); - u !== this._errorMeasurementLastValue && (this._errorCorrectionPreviousValue = this._errorCorrectionUsable, this._errorMeasurementLastValue = u, this._errorMeasurementLastChangeTime = d); - const m = Math.min(Math.max((d - this._errorMeasurementLastChangeTime) / 1e3 / .5, 0), 1); - this._errorCorrectionUsable = o.bk(this._errorCorrectionPreviousValue, -this._errorMeasurementLastValue, o.bl(m)) - } - _getMeshKey(e) { - return `${e.granularity.toString(36)}_${e.generateBorders?"b":""}${e.extendToNorthPole?"n":""}${e.extendToSouthPole?"s":""}` - } - getMeshFromTileID(e, n, s, u, d) { - const m = (d === "stencil" ? Rs.stencil : Rs.tile).getGranularityForZoomLevel(n.z); - return this._getMesh(e, { - granularity: m, - generateBorders: s, - extendToNorthPole: n.y === 0 && u, - extendToSouthPole: n.y === (1 << n.z) - 1 && u - }) - } - _getMesh(e, n) { - const s = this._getMeshKey(n); - if (s in this._tileMeshCache) return this._tileMeshCache[s]; - const u = (function(d, m) { - const y = mc(m, "16bit"), - w = o.aL.deserialize({ - arrayBuffer: y.vertices, - length: y.vertices.byteLength / 2 / 2 - }), - P = o.aN.deserialize({ - arrayBuffer: y.indices, - length: y.indices.byteLength / 2 / 3 - }); - return new Ri(d.createVertexBuffer(w, ui.members), d.createIndexBuffer(P), o.aM.simpleSegment(0, 0, w.length, P.length)) - })(e, n); - return this._tileMeshCache[s] = u, u - } - recalculate(e) {} - hasTransition() { - const e = ye.now(); - let n = !1; - return n = n || (e - this._errorMeasurementLastChangeTime) / 1e3 < .7, n = n || this._errorMeasurement && this._errorMeasurement.awaitingQuery, n - } - setErrorQueryLatitudeDegrees(e) { - this._errorQueryLatitudeDegrees = e - } - } - const Jo = new o.r({ - type: new o.D(o.v.projection.type) - }); - class Qo extends o.E { - constructor(e) { - super(), this._transitionable = new o.t(Jo), this.setProjection(e), this._transitioning = this._transitionable.untransitioned(), this.recalculate(new o.F(0)), this._mercatorProjection = new yr, this._verticalPerspectiveProjection = new co - } - get transitionState() { - const e = this.properties.get("type"); - if (typeof e == "string" && e === "mercator") return 0; - if (typeof e == "string" && e === "vertical-perspective") return 1; - if (e instanceof o.bm) { - if (e.from === "vertical-perspective" && e.to === "mercator") return 1 - e.transition; - if (e.from === "mercator" && e.to === "vertical-perspective") return e.transition - } - return 1 - } - get useGlobeRendering() { - return this.transitionState > 0 - } - get latitudeErrorCorrectionRadians() { - return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians - } - get currentProjection() { - return this.useGlobeRendering ? this._verticalPerspectiveProjection : this._mercatorProjection - } - get name() { - return "globe" - } - get useSubdivision() { - return this.currentProjection.useSubdivision - } - get shaderVariantName() { - return this.currentProjection.shaderVariantName - } - get shaderDefine() { - return this.currentProjection.shaderDefine - } - get shaderPreludeCode() { - return this.currentProjection.shaderPreludeCode - } - get vertexShaderPreludeCode() { - return this.currentProjection.vertexShaderPreludeCode - } - get subdivisionGranularity() { - return this.currentProjection.subdivisionGranularity - } - get useGlobeControls() { - return this.transitionState > 0 - } - destroy() { - this._mercatorProjection.destroy(), this._verticalPerspectiveProjection.destroy() - } - updateGPUdependent(e) { - this._mercatorProjection.updateGPUdependent(e), this._verticalPerspectiveProjection.updateGPUdependent(e) - } - getMeshFromTileID(e, n, s, u, d) { - return this.currentProjection.getMeshFromTileID(e, n, s, u, d) - } - setProjection(e) { - this._transitionable.setValue("type", (e == null ? void 0 : e.type) || "mercator") - } - updateTransitions(e) { - this._transitioning = this._transitionable.transitioned(e, this._transitioning) - } - hasTransition() { - return this._transitioning.hasTransition() || this.currentProjection.hasTransition() - } - recalculate(e) { - this.properties = this._transitioning.possiblyEvaluate(e) - } - setErrorQueryLatitudeDegrees(e) { - this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(e), this._mercatorProjection.setErrorQueryLatitudeDegrees(e) - } - } - - function el(h) { - const e = Bs(h.worldSize, h.center.lat); - return 2 * Math.PI * e - } - - function va(h, e, n, s, u) { - const d = 1 / (1 << u), - m = e / o.$ * d + s * d, - y = o.bo((h / o.$ * d + n * d) * Math.PI * 2 + Math.PI, 2 * Math.PI), - w = 2 * Math.atan(Math.exp(Math.PI - m * Math.PI * 2)) - .5 * Math.PI, - P = Math.cos(w), - M = new Float64Array(3); - return M[0] = Math.sin(y) * P, M[1] = Math.sin(w), M[2] = Math.cos(y) * P, M - } - - function yn(h) { - return (function(e, n) { - const s = Math.cos(n), - u = new Float64Array(3); - return u[0] = Math.sin(e) * s, u[1] = Math.sin(n), u[2] = Math.cos(e) * s, u - })(h.lng * Math.PI / 180, h.lat * Math.PI / 180) - } - - function Bs(h, e) { - return h / (2 * Math.PI) / Math.cos(e * Math.PI / 180) - } - - function uo(h) { - const e = Math.asin(h[1]) / Math.PI * 180, - n = Math.sqrt(h[0] * h[0] + h[2] * h[2]); - if (n > 1e-6) { - const s = h[0] / n, - u = Math.acos(h[2] / n), - d = (s > 0 ? u : -u) / Math.PI * 180; - return new o.S(o.aO(d, -180, 180), e) - } - return new o.S(0, e) - } - - function fs(h) { - return Math.cos(h * Math.PI / 180) - } - - function Gi(h, e) { - const n = fs(h), - s = fs(e); - return o.ak(s / n) - } - - function _h(h, e) { - const n = h.rotate(e.bearingInRadians), - s = e.zoom + Gi(e.center.lat, 0), - u = o.bk(1 / fs(e.center.lat), 1 / fs(Math.min(Math.abs(e.center.lat), 60)), o.bn(s, 7, 3, 0, 1)), - d = 360 / el({ - worldSize: e.worldSize, - center: { - lat: e.center.lat - } - }); - return new o.S(e.center.lng - n.x * d * u, o.ah(e.center.lat + n.y * d, -o.ai, o.ai)) - } - - function ho(h) { - const e = .5 * h, - n = Math.sin(e), - s = Math.cos(e); - return Math.log(n + s) - Math.log(s - n) - } - - function _c(h, e, n, s) { - const u = h.lat + n * s; - if (Math.abs(n) > 1) { - const d = (Math.sign(h.lat + n) !== Math.sign(h.lat) ? -Math.abs(h.lat) : Math.abs(h.lat)) * Math.PI / 180, - m = Math.abs(h.lat + n) * Math.PI / 180, - y = ho(d + s * (m - d)), - w = ho(d), - P = ho(m); - return new o.S(h.lng + e * ((y - w) / (P - w)), u) - } - return new o.S(h.lng + e * s, u) - } - class Yd { - constructor(e) { - this._cachePrevious = new Map, this._cache = new Map, this._hadAnyChanges = !1, this._boundingVolumeFactory = e - } - swapBuffers() { - if (!this._hadAnyChanges) return; - const e = this._cachePrevious; - this._cachePrevious = this._cache, this._cache = e, this._cache.clear(), this._hadAnyChanges = !1 - } - getTileBoundingVolume(e, n, s, u) { - const d = `${e.z}_${e.x}_${e.y}_${u!=null&&u.terrain?"t":""}`, - m = this._cache.get(d); - if (m) return m; - const y = this._cachePrevious.get(d); - if (y) return this._cache.set(d, y), y; - const w = this._boundingVolumeFactory(e, n, s, u); - return this._cache.set(d, w), this._hadAnyChanges = !0, w - } - } - class Fs { - constructor(e, n, s, u) { - this.min = s, this.max = u, this.points = e, this.planes = n - } - static fromAabb(e, n) { - const s = []; - for (let u = 0; u < 8; u++) s.push([1 & ~u ? e[0] : n[0], (u >> 1 & 1) == 1 ? n[1] : e[1], (u >> 2 & 1) == 1 ? n[2] : e[2]]); - return new Fs(s, [ - [-1, 0, 0, n[0]], - [1, 0, 0, -e[0]], - [0, -1, 0, n[1]], - [0, 1, 0, -e[1]], - [0, 0, -1, n[2]], - [0, 0, 1, -e[2]] - ], e, n) - } - static fromCenterSizeAngles(e, n, s) { - const u = o.br([], s[0], s[1], s[2]), - d = o.bs([], [n[0], 0, 0], u), - m = o.bs([], [0, n[1], 0], u), - y = o.bs([], [0, 0, n[2]], u), - w = [...e], - P = [...e]; - for (let D = 0; D < 8; D++) - for (let z = 0; z < 3; z++) { - const B = e[z] + d[z] * (1 & ~D ? -1 : 1) + m[z] * ((D >> 1 & 1) == 1 ? 1 : -1) + y[z] * ((D >> 2 & 1) == 1 ? 1 : -1); - w[z] = Math.min(w[z], B), P[z] = Math.max(P[z], B) - } - const M = []; - for (let D = 0; D < 8; D++) { - const z = [...e]; - o.aS(z, z, o.aR([], d, 1 & ~D ? -1 : 1)), o.aS(z, z, o.aR([], m, (D >> 1 & 1) == 1 ? 1 : -1)), o.aS(z, z, o.aR([], y, (D >> 2 & 1) == 1 ? 1 : -1)), M.push(z) - } - return new Fs(M, [ - [...d, -o.aX(d, M[0])], - [...m, -o.aX(m, M[0])], - [...y, -o.aX(y, M[0])], - [-d[0], -d[1], -d[2], -o.aX(d, M[7])], - [-m[0], -m[1], -m[2], -o.aX(m, M[7])], - [-y[0], -y[1], -y[2], -o.aX(y, M[7])] - ], w, P) - } - intersectsFrustum(e) { - let n = !0; - const s = this.points.length, - u = this.planes.length, - d = e.planes.length, - m = e.points.length; - for (let y = 0; y < d; y++) { - const w = e.planes[y]; - let P = 0; - for (let M = 0; M < s; M++) { - const D = this.points[M]; - w[0] * D[0] + w[1] * D[1] + w[2] * D[2] + w[3] >= 0 && P++ - } - if (P === 0) return 0; - P < s && (n = !1) - } - if (n) return 2; - for (let y = 0; y < u; y++) { - const w = this.planes[y]; - let P = 0; - for (let M = 0; M < m; M++) { - const D = e.points[M]; - w[0] * D[0] + w[1] * D[1] + w[2] * D[2] + w[3] >= 0 && P++ - } - if (P === 0) return 0 - } - return 1 - } - intersectsPlane(e) { - const n = this.points.length; - let s = 0; - for (let u = 0; u < n; u++) { - const d = this.points[u]; - e[0] * d[0] + e[1] * d[1] + e[2] * d[2] + e[3] >= 0 && s++ - } - return s === n ? 2 : s === 0 ? 0 : 1 - } - } - - function In(h, e, n) { - const s = h - e; - return s < 0 ? -s : Math.max(0, s - n) - } - - function po(h, e, n, s, u) { - const d = h - n; - let m; - return m = d < 0 ? Math.min(-d, 1 + d - u) : d > 1 ? Math.min(Math.max(d - u, 0), 1 - d) : 0, Math.max(m, In(e, s, u)) - } - class Fa { - constructor() { - this._boundingVolumeCache = new Yd(this._computeTileBoundingVolume) - } - prepareNextFrame() { - this._boundingVolumeCache.swapBuffers() - } - distanceToTile2d(e, n, s, u) { - const d = 1 << s.z, - m = 1 / d, - y = s.x / d, - w = s.y / d; - let P = 2; - return P = Math.min(P, po(e, n, y, w, m)), P = Math.min(P, po(e, n, y + .5, -w - m, m)), P = Math.min(P, po(e, n, y + .5, 2 - w - m, m)), P - } - getWrap(e, n, s) { - const u = 1 << n.z, - d = 1 / u, - m = n.x / u, - y = In(e.x, m, d), - w = In(e.x, m - 1, d), - P = In(e.x, m + 1, d), - M = Math.min(y, w, P); - return M === P ? 1 : M === w ? -1 : 0 - } - allowVariableZoom(e, n) { - return Ot(e, n) > 4 - } - allowWorldCopies() { - return !1 - } - getTileBoundingVolume(e, n, s, u) { - return this._boundingVolumeCache.getTileBoundingVolume(e, n, s, u) - } - _computeTileBoundingVolume(e, n, s, u) { - var d, m; - let y = 0, - w = 0; - if (u != null && u.terrain) { - const P = new o.Z(e.z, n, e.z, e.x, e.y), - M = u.terrain.getMinMaxElevation(P); - y = (d = M.minElevation) !== null && d !== void 0 ? d : Math.min(0, s), w = (m = M.maxElevation) !== null && m !== void 0 ? m : Math.max(0, s) - } - if (y /= o.bu, w /= o.bu, y += 1, w += 1, e.z <= 0) return Fs.fromAabb([-w, -w, -w], [w, w, w]); - if (e.z === 1) return Fs.fromAabb([e.x === 0 ? -w : 0, e.y === 0 ? 0 : -w, -w], [e.x === 0 ? 0 : w, e.y === 0 ? w : 0, w]); - { - const P = [va(0, 0, e.x, e.y, e.z), va(o.$, 0, e.x, e.y, e.z), va(o.$, o.$, e.x, e.y, e.z), va(0, o.$, e.x, e.y, e.z)], - M = []; - for (const qe of P) M.push(o.aR([], qe, w)); - if (w !== y) - for (const qe of P) M.push(o.aR([], qe, y)); - e.y === 0 && M.push([0, 1, 0]), e.y === (1 << e.z) - 1 && M.push([0, -1, 0]); - const D = [1, 1, 1], - z = [-1, -1, -1]; - for (const qe of M) - for (let $e = 0; $e < 3; $e++) D[$e] = Math.min(D[$e], qe[$e]), z[$e] = Math.max(z[$e], qe[$e]); - const B = va(o.$ / 2, o.$ / 2, e.x, e.y, e.z), - U = o.aW([], [0, 1, 0], B); - o.aV(U, U); - const ee = o.aW([], B, U); - o.aV(ee, ee); - const J = o.aW([], P[2], P[1]); - o.aV(J, J); - const re = o.aW([], P[0], P[3]); - o.aV(re, re), M.push(o.aR([], B, w)), e.y >= (1 << e.z) / 2 && M.push(o.aR([], va(o.$ / 2, 0, e.x, e.y, e.z), w)), e.y < (1 << e.z) / 2 && M.push(o.aR([], va(o.$ / 2, o.$, e.x, e.y, e.z), w)); - const se = fo(B, M), - de = fo(ee, M), - ue = [-B[0], -B[1], -B[2], se.max], - ge = [B[0], B[1], B[2], -se.min], - Te = [-ee[0], -ee[1], -ee[2], de.max], - he = [ee[0], ee[1], ee[2], -de.min], - De = [...J, 0], - He = [...re, 0], - je = []; - return e.y === 0 ? je.push(o.bt(He, De, ue), o.bt(He, De, ge)) : je.push(o.bt(Te, De, ue), o.bt(Te, De, ge), o.bt(Te, He, ue), o.bt(Te, He, ge)), e.y === (1 << e.z) - 1 ? je.push(o.bt(He, De, ue), o.bt(He, De, ge)) : je.push(o.bt(he, De, ue), o.bt(he, De, ge), o.bt(he, He, ue), o.bt(he, He, ge)), new Fs(je, [ue, ge, Te, he, De, He], D, z) - } - } - } - - function fo(h, e) { - let n = 1 / 0, - s = -1 / 0; - for (const u of e) { - const d = o.aX(h, u); - n = Math.min(n, d), s = Math.max(s, d) - } - return { - min: n, - max: s - } - } - class mo { - get pixelsToClipSpaceMatrix() { - return this._helper.pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._helper.clipSpaceToPixelsMatrix - } - get pixelsToGLUnits() { - return this._helper.pixelsToGLUnits - } - get centerOffset() { - return this._helper.centerOffset - } - get size() { - return this._helper.size - } - get rotationMatrix() { - return this._helper.rotationMatrix - } - get centerPoint() { - return this._helper.centerPoint - } - get pixelsPerMeter() { - return this._helper.pixelsPerMeter - } - setMinZoom(e) { - this._helper.setMinZoom(e) - } - setMaxZoom(e) { - this._helper.setMaxZoom(e) - } - setMinPitch(e) { - this._helper.setMinPitch(e) - } - setMaxPitch(e) { - this._helper.setMaxPitch(e) - } - setRenderWorldCopies(e) { - this._helper.setRenderWorldCopies(e) - } - setBearing(e) { - this._helper.setBearing(e) - } - setPitch(e) { - this._helper.setPitch(e) - } - setRoll(e) { - this._helper.setRoll(e) - } - setFov(e) { - this._helper.setFov(e) - } - setZoom(e) { - this._helper.setZoom(e) - } - setCenter(e) { - this._helper.setCenter(e) - } - setElevation(e) { - this._helper.setElevation(e) - } - setMinElevationForCurrentTile(e) { - this._helper.setMinElevationForCurrentTile(e) - } - setPadding(e) { - this._helper.setPadding(e) - } - interpolatePadding(e, n, s) { - return this._helper.interpolatePadding(e, n, s) - } - isPaddingEqual(e) { - return this._helper.isPaddingEqual(e) - } - resize(e, n) { - this._helper.resize(e, n) - } - getMaxBounds() { - return this._helper.getMaxBounds() - } - setMaxBounds(e) { - this._helper.setMaxBounds(e) - } - overrideNearFarZ(e, n) { - this._helper.overrideNearFarZ(e, n) - } - clearNearFarZOverride() { - this._helper.clearNearFarZOverride() - } - getCameraQueryGeometry(e) { - return this._helper.getCameraQueryGeometry(this.getCameraPoint(), e) - } - get tileSize() { - return this._helper.tileSize - } - get tileZoom() { - return this._helper.tileZoom - } - get scale() { - return this._helper.scale - } - get worldSize() { - return this._helper.worldSize - } - get width() { - return this._helper.width - } - get height() { - return this._helper.height - } - get lngRange() { - return this._helper.lngRange - } - get latRange() { - return this._helper.latRange - } - get minZoom() { - return this._helper.minZoom - } - get maxZoom() { - return this._helper.maxZoom - } - get zoom() { - return this._helper.zoom - } - get center() { - return this._helper.center - } - get minPitch() { - return this._helper.minPitch - } - get maxPitch() { - return this._helper.maxPitch - } - get pitch() { - return this._helper.pitch - } - get pitchInRadians() { - return this._helper.pitchInRadians - } - get roll() { - return this._helper.roll - } - get rollInRadians() { - return this._helper.rollInRadians - } - get bearing() { - return this._helper.bearing - } - get bearingInRadians() { - return this._helper.bearingInRadians - } - get fov() { - return this._helper.fov - } - get fovInRadians() { - return this._helper.fovInRadians - } - get elevation() { - return this._helper.elevation - } - get minElevationForCurrentTile() { - return this._helper.minElevationForCurrentTile - } - get padding() { - return this._helper.padding - } - get unmodified() { - return this._helper.unmodified - } - get renderWorldCopies() { - return this._helper.renderWorldCopies - } - get nearZ() { - return this._helper.nearZ - } - get farZ() { - return this._helper.farZ - } - get autoCalculateNearFarZ() { - return this._helper.autoCalculateNearFarZ - } - setTransitionState(e) {} - constructor() { - this._cachedClippingPlane = o.bv(), this._projectionMatrix = o.b9(), this._globeViewProjMatrix32f = o.b8(), this._globeViewProjMatrixNoCorrection = o.b9(), this._globeViewProjMatrixNoCorrectionInverted = o.b9(), this._globeProjMatrixInverted = o.b9(), this._cameraPosition = o.bp(), this._globeLatitudeErrorCorrectionRadians = 0, this._helper = new ln({ - calcMatrices: () => { - this._calcMatrices() - }, - getConstrained: (e, n) => this.getConstrained(e, n) - }), this._coveringTilesDetailsProvider = new Fa - } - clone() { - const e = new mo; - return e.apply(this), e - } - apply(e, n) { - this._globeLatitudeErrorCorrectionRadians = n || 0, this._helper.apply(e) - } - get projectionMatrix() { - return this._projectionMatrix - } - get modelViewProjectionMatrix() { - return this._globeViewProjMatrixNoCorrection - } - get inverseProjectionMatrix() { - return this._globeProjMatrixInverted - } - get cameraPosition() { - const e = o.bp(); - return e[0] = this._cameraPosition[0], e[1] = this._cameraPosition[1], e[2] = this._cameraPosition[2], e - } - get cameraToCenterDistance() { - return this._helper.cameraToCenterDistance - } - getProjectionData(e) { - const { - overscaledTileID: n, - applyGlobeMatrix: s - } = e, u = this._helper.getMercatorTileCoordinates(n); - return { - mainMatrix: this._globeViewProjMatrix32f, - tileMercatorCoords: u, - clippingPlane: this._cachedClippingPlane, - projectionTransition: s ? 1 : 0, - fallbackMatrix: this._globeViewProjMatrix32f - } - } - _computeClippingPlane(e) { - const n = this.pitchInRadians, - s = this.cameraToCenterDistance / e, - u = Math.sin(n) * s, - d = Math.cos(n) * s + 1, - m = 1 / Math.sqrt(u * u + d * d) * 1; - let y = -u, - w = d; - const P = Math.sqrt(y * y + w * w); - y /= P, w /= P; - const M = [0, y, w]; - o.bw(M, M, [0, 0, 0], -this.bearingInRadians), o.bx(M, M, [0, 0, 0], -1 * this.center.lat * Math.PI / 180), o.by(M, M, [0, 0, 0], this.center.lng * Math.PI / 180); - const D = 1 / o.aZ(M); - return o.aR(M, M, D), [...M, -m * D] - } - isLocationOccluded(e) { - return !this.isSurfacePointVisible(yn(e)) - } - transformLightDirection(e) { - const n = this._helper._center.lng * Math.PI / 180, - s = this._helper._center.lat * Math.PI / 180, - u = Math.cos(s), - d = [Math.sin(n) * u, Math.sin(s), Math.cos(n) * u], - m = [d[2], 0, -d[0]], - y = [0, 0, 0]; - o.aW(y, m, d), o.aV(m, m), o.aV(y, y); - const w = [0, 0, 0]; - return o.aV(w, [m[0] * e[0] + y[0] * e[1] + d[0] * e[2], m[1] * e[0] + y[1] * e[1] + d[1] * e[2], m[2] * e[0] + y[2] * e[1] + d[2] * e[2]]), w - } - getPixelScale() { - return 1 / Math.cos(this._helper._center.lat * Math.PI / 180) - } - getCircleRadiusCorrection() { - return Math.cos(this._helper._center.lat * Math.PI / 180) - } - getPitchedTextCorrection(e, n, s) { - const u = (function(y, w, P) { - const M = 1 / (1 << P.z); - return new o.a1(y / o.$ * M + P.x * M, w / o.$ * M + P.y * M) - })(e, n, s.canonical), - d = (m = u.y, [o.bo(u.x * Math.PI * 2 + Math.PI, 2 * Math.PI), 2 * Math.atan(Math.exp(Math.PI - m * Math.PI * 2)) - .5 * Math.PI]); - var m; - return this.getCircleRadiusCorrection() / Math.cos(d[1]) - } - projectTileCoordinates(e, n, s, u) { - const d = s.canonical, - m = va(e, n, d.x, d.y, d.z), - y = 1 + (u ? u(e, n) : 0) / o.bu, - w = [m[0] * y, m[1] * y, m[2] * y, 1]; - o.aw(w, w, this._globeViewProjMatrixNoCorrection); - const P = this._cachedClippingPlane, - M = P[0] * m[0] + P[1] * m[1] + P[2] * m[2] + P[3] < 0; - return { - point: new o.P(w[0] / w[3], w[1] / w[3]), - signedDistanceFromCamera: w[3], - isOccluded: M - } - } - _calcMatrices() { - if (!this._helper._width || !this._helper._height) return; - const e = Bs(this.worldSize, this.center.lat), - n = o.ba(), - s = o.ba(); - this._helper.autoCalculateNearFarZ && (this._helper._nearZ = .5, this._helper._farZ = this.cameraToCenterDistance + 2 * e), o.b4(n, this.fovInRadians, this.width / this.height, this._helper._nearZ, this._helper._farZ); - const u = this.centerOffset; - n[8] = 2 * -u.x / this._helper._width, n[9] = 2 * u.y / this._helper._height, this._projectionMatrix = o.b5(n), this._globeProjMatrixInverted = o.ba(), o.aq(this._globeProjMatrixInverted, n), o.M(n, n, [0, 0, -this.cameraToCenterDistance]), o.b6(n, n, this.rollInRadians), o.b7(n, n, -this.pitchInRadians), o.b6(n, n, this.bearingInRadians), o.M(n, n, [0, 0, -e]); - const d = o.bp(); - d[0] = e, d[1] = e, d[2] = e, o.b7(s, n, this.center.lat * Math.PI / 180), o.bz(s, s, -this.center.lng * Math.PI / 180), o.N(s, s, d), this._globeViewProjMatrixNoCorrection = s, o.b7(n, n, this.center.lat * Math.PI / 180 - this._globeLatitudeErrorCorrectionRadians), o.bz(n, n, -this.center.lng * Math.PI / 180), o.N(n, n, d), this._globeViewProjMatrix32f = new Float32Array(n), this._globeViewProjMatrixNoCorrectionInverted = o.ba(), o.aq(this._globeViewProjMatrixNoCorrectionInverted, s); - const m = o.bp(); - this._cameraPosition = o.bp(), this._cameraPosition[2] = this.cameraToCenterDistance / e, o.bw(this._cameraPosition, this._cameraPosition, m, -this.rollInRadians), o.bx(this._cameraPosition, this._cameraPosition, m, this.pitchInRadians), o.bw(this._cameraPosition, this._cameraPosition, m, -this.bearingInRadians), o.aS(this._cameraPosition, this._cameraPosition, [0, 0, 1]), o.bx(this._cameraPosition, this._cameraPosition, m, -this.center.lat * Math.PI / 180), o.by(this._cameraPosition, this._cameraPosition, m, this.center.lng * Math.PI / 180), this._cachedClippingPlane = this._computeClippingPlane(e); - const y = o.b5(this._globeViewProjMatrixNoCorrectionInverted); - o.N(y, y, [1, 1, -1]), this._cachedFrustum = Ni.fromInvProjectionMatrix(y, 1, 0, this._cachedClippingPlane, !0) - } - calculateFogMatrix(e) { - o.w("calculateFogMatrix is not supported on globe projection."); - const n = o.ba(); - return o.ag(n), n - } - getVisibleUnwrappedCoordinates(e) { - return [new o.b2(0, e)] - } - getCameraFrustum() { - return this._cachedFrustum - } - getClippingPlane() { - return this._cachedClippingPlane - } - getCoveringTilesDetailsProvider() { - return this._coveringTilesDetailsProvider - } - recalculateZoomAndCenter(e) { - e && o.w("terrain is not fully supported on vertical perspective projection."), this._helper.recalculateZoomAndCenter(0) - } - maxPitchScaleFactor() { - return 1 - } - getCameraPoint() { - return this._helper.getCameraPoint() - } - getCameraAltitude() { - return this._helper.getCameraAltitude() - } - getCameraLngLat() { - return this._helper.getCameraLngLat() - } - lngLatToCameraDepth(e, n) { - if (!this._globeViewProjMatrixNoCorrection) return 1; - const s = yn(e); - o.aR(s, s, 1 + n / o.bu); - const u = o.bv(); - return o.aw(u, [s[0], s[1], s[2], 1], this._globeViewProjMatrixNoCorrection), u[2] / u[3] - } - populateCache(e) {} - getBounds() { - const e = .5 * this.width, - n = .5 * this.height, - s = [new o.P(0, 0), new o.P(e, 0), new o.P(this.width, 0), new o.P(this.width, n), new o.P(this.width, this.height), new o.P(e, this.height), new o.P(0, this.height), new o.P(0, n)], - u = []; - for (const D of s) u.push(this.unprojectScreenPoint(D)); - let d = 0, - m = 0, - y = 0, - w = 0; - const P = this.center; - for (const D of u) { - const z = o.bA(P.lng, D.lng), - B = o.bA(P.lat, D.lat); - z < m && (m = z), z > d && (d = z), B < w && (w = B), B > y && (y = B) - } - const M = [P.lng + m, P.lat + w, P.lng + d, P.lat + y]; - return this.isSurfacePointOnScreen([0, 1, 0]) && (M[3] = 90, M[0] = -180, M[2] = 180), this.isSurfacePointOnScreen([0, -1, 0]) && (M[1] = -90, M[0] = -180, M[2] = 180), new dt(M) - } - getConstrained(e, n) { - const s = o.ah(e.lat, -o.ai, o.ai), - u = o.ah(+n, this.minZoom + Gi(0, s), this.maxZoom); - return { - center: new o.S(e.lng, s), - zoom: u - } - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - return this._helper.calculateCenterFromCameraLngLatAlt(e, n, s, u) - } - setLocationAtPoint(e, n) { - const s = yn(this.unprojectScreenPoint(n)), - u = yn(e), - d = o.bp(); - o.bB(d); - const m = o.bp(); - o.by(m, s, d, -this.center.lng * Math.PI / 180), o.bx(m, m, d, this.center.lat * Math.PI / 180); - const y = u[0] * u[0] + u[2] * u[2], - w = m[0] * m[0]; - if (y < w) return; - const P = Math.sqrt(y - w), - M = -P, - D = o.bC(u[0], u[2], m[0], P), - z = o.bC(u[0], u[2], m[0], M), - B = o.bp(); - o.by(B, u, d, -D); - const U = o.bC(B[1], B[2], m[1], m[2]), - ee = o.bp(); - o.by(ee, u, d, -z); - const J = o.bC(ee[1], ee[2], m[1], m[2]), - re = .5 * Math.PI, - se = U >= -re && U <= re, - de = J >= -re && J <= re; - let ue, ge; - if (se && de) { - const He = this.center.lng * Math.PI / 180, - je = this.center.lat * Math.PI / 180; - o.bD(D, He) + o.bD(U, je) < o.bD(z, He) + o.bD(J, je) ? (ue = D, ge = U) : (ue = z, ge = J) - } else if (se) ue = D, ge = U; - else { - if (!de) return; - ue = z, ge = J - } - const Te = ue / Math.PI * 180, - he = ge / Math.PI * 180, - De = this.center.lat; - this.setCenter(new o.S(Te, o.ah(he, -90, 90))), this.setZoom(this.zoom + Gi(De, this.center.lat)) - } - locationToScreenPoint(e, n) { - const s = yn(e); - if (n) { - const u = n.getElevationForLngLatZoom(e, this._helper._tileZoom); - o.aR(s, s, 1 + u / o.bu) - } - return this._projectSurfacePointToScreen(s) - } - _projectSurfacePointToScreen(e) { - const n = o.bv(); - return o.aw(n, [...e, 1], this._globeViewProjMatrixNoCorrection), n[0] /= n[3], n[1] /= n[3], new o.P((.5 * n[0] + .5) * this.width, (.5 * -n[1] + .5) * this.height) - } - screenPointToMercatorCoordinate(e, n) { - if (n) { - const s = n.pointCoordinate(e); - if (s) return s - } - return o.a1.fromLngLat(this.unprojectScreenPoint(e)) - } - screenPointToLocation(e, n) { - var s; - return (s = this.screenPointToMercatorCoordinate(e, n)) === null || s === void 0 ? void 0 : s.toLngLat() - } - isPointOnMapSurface(e, n) { - const s = this._cameraPosition, - u = this.getRayDirectionFromPixel(e); - return !!this.rayPlanetIntersection(s, u) - } - getRayDirectionFromPixel(e) { - const n = o.bv(); - n[0] = e.x / this.width * 2 - 1, n[1] = -1 * (e.y / this.height * 2 - 1), n[2] = 1, n[3] = 1, o.aw(n, n, this._globeViewProjMatrixNoCorrectionInverted), n[0] /= n[3], n[1] /= n[3], n[2] /= n[3]; - const s = o.bp(); - s[0] = n[0] - this._cameraPosition[0], s[1] = n[1] - this._cameraPosition[1], s[2] = n[2] - this._cameraPosition[2]; - const u = o.bp(); - return o.aV(u, s), u - } - isSurfacePointVisible(e) { - const n = this._cachedClippingPlane; - return n[0] * e[0] + n[1] * e[1] + n[2] * e[2] + n[3] >= 0 - } - isSurfacePointOnScreen(e) { - if (!this.isSurfacePointVisible(e)) return !1; - const n = o.bv(); - return o.aw(n, [...e, 1], this._globeViewProjMatrixNoCorrection), n[0] /= n[3], n[1] /= n[3], n[2] /= n[3], n[0] > -1 && n[0] < 1 && n[1] > -1 && n[1] < 1 && n[2] > -1 && n[2] < 1 - } - rayPlanetIntersection(e, n) { - const s = o.aX(e, n), - u = o.bp(), - d = o.bp(); - o.aR(d, n, s), o.aU(u, e, d); - const m = 1 - o.aX(u, u); - if (m < 0) return null; - const y = o.aX(e, e) - 1, - w = -s + (s < 0 ? 1 : -1) * Math.sqrt(m), - P = y / w, - M = w; - return { - tMin: Math.min(P, M), - tMax: Math.max(P, M) - } - } - unprojectScreenPoint(e) { - const n = this._cameraPosition, - s = this.getRayDirectionFromPixel(e), - u = this.rayPlanetIntersection(n, s); - if (u) { - const M = o.bp(); - o.aS(M, n, [s[0] * u.tMin, s[1] * u.tMin, s[2] * u.tMin]); - const D = o.bp(); - return o.aV(D, M), uo(D) - } - const d = this._cachedClippingPlane, - m = d[0] * s[0] + d[1] * s[1] + d[2] * s[2], - y = -o.b1(d, n) / m, - w = o.bp(); - if (y > 0) o.aS(w, n, [s[0] * y, s[1] * y, s[2] * y]); - else { - const M = o.bp(); - o.aS(M, n, [2 * s[0], 2 * s[1], 2 * s[2]]); - const D = o.b1(this._cachedClippingPlane, M); - o.aU(w, M, [this._cachedClippingPlane[0] * D, this._cachedClippingPlane[1] * D, this._cachedClippingPlane[2] * D]) - } - const P = (function(M) { - const D = o.bp(); - return D[0] = M[0] * -M[3], D[1] = M[1] * -M[3], D[2] = M[2] * -M[3], { - center: D, - radius: Math.sqrt(1 - M[3] * M[3]) - } - })(d); - return uo((function(M, D, z) { - const B = o.bp(); - o.aU(B, z, M); - const U = o.bp(); - return o.bq(U, M, B, D / o.a$(B)), U - })(P.center, P.radius, w)) - } - getMatrixForModel(e, n) { - const s = o.S.convert(e), - u = 1 / o.bu, - d = o.b9(); - return o.bz(d, d, s.lng / 180 * Math.PI), o.b7(d, d, -s.lat / 180 * Math.PI), o.M(d, d, [0, 0, 1 + n / o.bu]), o.b7(d, d, .5 * Math.PI), o.N(d, d, [u, u, u]), d - } - getProjectionDataForCustomLayer(e = !0) { - const n = this.getProjectionData({ - overscaledTileID: new o.Z(0, 0, 0, 0, 0), - applyGlobeMatrix: e - }); - return n.tileMercatorCoords = [0, 0, 1, 1], n - } - getFastPathSimpleProjectionMatrix(e) {} - } - class _o { - get pixelsToClipSpaceMatrix() { - return this._helper.pixelsToClipSpaceMatrix - } - get clipSpaceToPixelsMatrix() { - return this._helper.clipSpaceToPixelsMatrix - } - get pixelsToGLUnits() { - return this._helper.pixelsToGLUnits - } - get centerOffset() { - return this._helper.centerOffset - } - get size() { - return this._helper.size - } - get rotationMatrix() { - return this._helper.rotationMatrix - } - get centerPoint() { - return this._helper.centerPoint - } - get pixelsPerMeter() { - return this._helper.pixelsPerMeter - } - setMinZoom(e) { - this._helper.setMinZoom(e) - } - setMaxZoom(e) { - this._helper.setMaxZoom(e) - } - setMinPitch(e) { - this._helper.setMinPitch(e) - } - setMaxPitch(e) { - this._helper.setMaxPitch(e) - } - setRenderWorldCopies(e) { - this._helper.setRenderWorldCopies(e) - } - setBearing(e) { - this._helper.setBearing(e) - } - setPitch(e) { - this._helper.setPitch(e) - } - setRoll(e) { - this._helper.setRoll(e) - } - setFov(e) { - this._helper.setFov(e) - } - setZoom(e) { - this._helper.setZoom(e) - } - setCenter(e) { - this._helper.setCenter(e) - } - setElevation(e) { - this._helper.setElevation(e) - } - setMinElevationForCurrentTile(e) { - this._helper.setMinElevationForCurrentTile(e) - } - setPadding(e) { - this._helper.setPadding(e) - } - interpolatePadding(e, n, s) { - return this._helper.interpolatePadding(e, n, s) - } - isPaddingEqual(e) { - return this._helper.isPaddingEqual(e) - } - resize(e, n, s = !0) { - this._helper.resize(e, n, s) - } - getMaxBounds() { - return this._helper.getMaxBounds() - } - setMaxBounds(e) { - this._helper.setMaxBounds(e) - } - overrideNearFarZ(e, n) { - this._helper.overrideNearFarZ(e, n) - } - clearNearFarZOverride() { - this._helper.clearNearFarZOverride() - } - getCameraQueryGeometry(e) { - return this._helper.getCameraQueryGeometry(this.getCameraPoint(), e) - } - get tileSize() { - return this._helper.tileSize - } - get tileZoom() { - return this._helper.tileZoom - } - get scale() { - return this._helper.scale - } - get worldSize() { - return this._helper.worldSize - } - get width() { - return this._helper.width - } - get height() { - return this._helper.height - } - get lngRange() { - return this._helper.lngRange - } - get latRange() { - return this._helper.latRange - } - get minZoom() { - return this._helper.minZoom - } - get maxZoom() { - return this._helper.maxZoom - } - get zoom() { - return this._helper.zoom - } - get center() { - return this._helper.center - } - get minPitch() { - return this._helper.minPitch - } - get maxPitch() { - return this._helper.maxPitch - } - get pitch() { - return this._helper.pitch - } - get pitchInRadians() { - return this._helper.pitchInRadians - } - get roll() { - return this._helper.roll - } - get rollInRadians() { - return this._helper.rollInRadians - } - get bearing() { - return this._helper.bearing - } - get bearingInRadians() { - return this._helper.bearingInRadians - } - get fov() { - return this._helper.fov - } - get fovInRadians() { - return this._helper.fovInRadians - } - get elevation() { - return this._helper.elevation - } - get minElevationForCurrentTile() { - return this._helper.minElevationForCurrentTile - } - get padding() { - return this._helper.padding - } - get unmodified() { - return this._helper.unmodified - } - get renderWorldCopies() { - return this._helper.renderWorldCopies - } - get cameraToCenterDistance() { - return this._helper.cameraToCenterDistance - } - get nearZ() { - return this._helper.nearZ - } - get farZ() { - return this._helper.farZ - } - get autoCalculateNearFarZ() { - return this._helper.autoCalculateNearFarZ - } - get isGlobeRendering() { - return this._globeness > 0 - } - setTransitionState(e, n) { - this._globeness = e, this._globeLatitudeErrorCorrectionRadians = n, this._calcMatrices(), this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(), this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame() - } - get currentTransform() { - return this.isGlobeRendering ? this._verticalPerspectiveTransform : this._mercatorTransform - } - constructor() { - this._globeLatitudeErrorCorrectionRadians = 0, this._globeness = 1, this._helper = new ln({ - calcMatrices: () => { - this._calcMatrices() - }, - getConstrained: (e, n) => this.getConstrained(e, n) - }), this._globeness = 1, this._mercatorTransform = new wi, this._verticalPerspectiveTransform = new mo - } - clone() { - const e = new _o; - return e._globeness = this._globeness, e._globeLatitudeErrorCorrectionRadians = this._globeLatitudeErrorCorrectionRadians, e.apply(this), e - } - apply(e) { - this._helper.apply(e), this._mercatorTransform.apply(this), this._verticalPerspectiveTransform.apply(this, this._globeLatitudeErrorCorrectionRadians) - } - get projectionMatrix() { - return this.currentTransform.projectionMatrix - } - get modelViewProjectionMatrix() { - return this.currentTransform.modelViewProjectionMatrix - } - get inverseProjectionMatrix() { - return this.currentTransform.inverseProjectionMatrix - } - get cameraPosition() { - return this.currentTransform.cameraPosition - } - getProjectionData(e) { - const n = this._mercatorTransform.getProjectionData(e), - s = this._verticalPerspectiveTransform.getProjectionData(e); - return { - mainMatrix: this.isGlobeRendering ? s.mainMatrix : n.mainMatrix, - clippingPlane: s.clippingPlane, - tileMercatorCoords: s.tileMercatorCoords, - projectionTransition: e.applyGlobeMatrix ? this._globeness : 0, - fallbackMatrix: n.fallbackMatrix - } - } - isLocationOccluded(e) { - return this.currentTransform.isLocationOccluded(e) - } - transformLightDirection(e) { - return this.currentTransform.transformLightDirection(e) - } - getPixelScale() { - return o.bk(this._mercatorTransform.getPixelScale(), this._verticalPerspectiveTransform.getPixelScale(), this._globeness) - } - getCircleRadiusCorrection() { - return o.bk(this._mercatorTransform.getCircleRadiusCorrection(), this._verticalPerspectiveTransform.getCircleRadiusCorrection(), this._globeness) - } - getPitchedTextCorrection(e, n, s) { - const u = this._mercatorTransform.getPitchedTextCorrection(e, n, s), - d = this._verticalPerspectiveTransform.getPitchedTextCorrection(e, n, s); - return o.bk(u, d, this._globeness) - } - projectTileCoordinates(e, n, s, u) { - return this.currentTransform.projectTileCoordinates(e, n, s, u) - } - _calcMatrices() { - this._helper._width && this._helper._height && (this._verticalPerspectiveTransform.apply(this, this._globeLatitudeErrorCorrectionRadians), this._helper._nearZ = this._verticalPerspectiveTransform.nearZ, this._helper._farZ = this._verticalPerspectiveTransform.farZ, this._mercatorTransform.apply(this, !0, this.isGlobeRendering), this._helper._nearZ = this._mercatorTransform.nearZ, this._helper._farZ = this._mercatorTransform.farZ) - } - calculateFogMatrix(e) { - return this.currentTransform.calculateFogMatrix(e) - } - getVisibleUnwrappedCoordinates(e) { - return this.currentTransform.getVisibleUnwrappedCoordinates(e) - } - getCameraFrustum() { - return this.currentTransform.getCameraFrustum() - } - getClippingPlane() { - return this.currentTransform.getClippingPlane() - } - getCoveringTilesDetailsProvider() { - return this.currentTransform.getCoveringTilesDetailsProvider() - } - recalculateZoomAndCenter(e) { - this._mercatorTransform.recalculateZoomAndCenter(e), this._verticalPerspectiveTransform.recalculateZoomAndCenter(e) - } - maxPitchScaleFactor() { - return this._mercatorTransform.maxPitchScaleFactor() - } - getCameraPoint() { - return this._helper.getCameraPoint() - } - getCameraAltitude() { - return this._helper.getCameraAltitude() - } - getCameraLngLat() { - return this._helper.getCameraLngLat() - } - lngLatToCameraDepth(e, n) { - return this.currentTransform.lngLatToCameraDepth(e, n) - } - populateCache(e) { - this._mercatorTransform.populateCache(e), this._verticalPerspectiveTransform.populateCache(e) - } - getBounds() { - return this.currentTransform.getBounds() - } - getConstrained(e, n) { - return this.currentTransform.getConstrained(e, n) - } - calculateCenterFromCameraLngLatAlt(e, n, s, u) { - return this._helper.calculateCenterFromCameraLngLatAlt(e, n, s, u) - } - setLocationAtPoint(e, n) { - if (!this.isGlobeRendering) return this._mercatorTransform.setLocationAtPoint(e, n), void this.apply(this._mercatorTransform); - this._verticalPerspectiveTransform.setLocationAtPoint(e, n), this.apply(this._verticalPerspectiveTransform) - } - locationToScreenPoint(e, n) { - return this.currentTransform.locationToScreenPoint(e, n) - } - screenPointToMercatorCoordinate(e, n) { - return this.currentTransform.screenPointToMercatorCoordinate(e, n) - } - screenPointToLocation(e, n) { - return this.currentTransform.screenPointToLocation(e, n) - } - isPointOnMapSurface(e, n) { - return this.currentTransform.isPointOnMapSurface(e, n) - } - getRayDirectionFromPixel(e) { - return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e) - } - getMatrixForModel(e, n) { - return this.currentTransform.getMatrixForModel(e, n) - } - getProjectionDataForCustomLayer(e = !0) { - const n = this._mercatorTransform.getProjectionDataForCustomLayer(e); - if (!this.isGlobeRendering) return n; - const s = this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e); - return s.fallbackMatrix = n.mainMatrix, s - } - getFastPathSimpleProjectionMatrix(e) { - return this.currentTransform.getFastPathSimpleProjectionMatrix(e) - } - } - class Dn { - get useGlobeControls() { - return !0 - } - handlePanInertia(e, n) { - const s = _h(e, n); - return Math.abs(s.lng - n.center.lng) > 180 && (s.lng = n.center.lng + 179.5 * Math.sign(s.lng - n.center.lng)), { - easingCenter: s, - easingOffset: new o.P(0, 0) - } - } - handleMapControlsRollPitchBearingZoom(e, n) { - const s = e.around, - u = n.screenPointToLocation(s); - e.bearingDelta && n.setBearing(n.bearing + e.bearingDelta), e.pitchDelta && n.setPitch(n.pitch + e.pitchDelta), e.rollDelta && n.setRoll(n.roll + e.rollDelta); - const d = n.zoom; - e.zoomDelta && n.setZoom(n.zoom + e.zoomDelta); - const m = n.zoom - d; - if (m === 0) return; - const y = o.bA(n.center.lng, u.lng), - w = y / (Math.abs(y / 180) + 1), - P = o.bA(n.center.lat, u.lat), - M = n.getRayDirectionFromPixel(s), - D = n.cameraPosition, - z = -1 * o.aX(D, M), - B = o.bp(); - o.aS(B, D, [M[0] * z, M[1] * z, M[2] * z]); - const U = o.aZ(B) - 1, - ee = Math.exp(.5 * -Math.max(U - .3, 0)), - J = Bs(n.worldSize, n.center.lat) / Math.min(n.width, n.height), - re = o.bn(J, .9, .5, 1, .25), - se = (1 - o.af(-m)) * Math.min(ee, re), - de = n.center.lat, - ue = n.zoom, - ge = new o.S(n.center.lng + w * se, o.ah(n.center.lat + P * se, -o.ai, o.ai)); - n.setLocationAtPoint(u, s); - const Te = n.center, - he = o.bn(Math.abs(y), 45, 85, 0, 1), - De = o.bn(J, .75, .35, 0, 1), - He = Math.pow(Math.max(he, De), .25), - je = o.bA(Te.lng, ge.lng), - qe = o.bA(Te.lat, ge.lat); - n.setCenter(new o.S(Te.lng + je * He, Te.lat + qe * He).wrap()), n.setZoom(ue + Gi(de, n.center.lat)) - } - handleMapControlsPan(e, n, s) { - if (!e.panDelta) return; - const u = n.center.lat, - d = n.zoom; - n.setCenter(_h(e.panDelta, n).wrap()), n.setZoom(d + Gi(u, n.center.lat)) - } - cameraForBoxAndBearing(e, n, s, u, d) { - const m = Nn(e, n, s, u, d), - y = n.left / d.width * 2 - 1, - w = (d.width - n.right) / d.width * 2 - 1, - P = n.top / d.height * -2 + 1, - M = (d.height - n.bottom) / d.height * -2 + 1, - D = o.bA(s.getWest(), s.getEast()) < 0, - z = D ? s.getEast() : s.getWest(), - B = D ? s.getWest() : s.getEast(), - U = Math.max(s.getNorth(), s.getSouth()), - ee = Math.min(s.getNorth(), s.getSouth()), - J = z + .5 * o.bA(z, B), - re = U + .5 * o.bA(U, ee), - se = d.clone(); - se.setCenter(m.center), se.setBearing(m.bearing), se.setPitch(0), se.setRoll(0), se.setZoom(m.zoom); - const de = se.modelViewProjectionMatrix, - ue = [yn(s.getNorthWest()), yn(s.getNorthEast()), yn(s.getSouthWest()), yn(s.getSouthEast()), yn(new o.S(B, re)), yn(new o.S(z, re)), yn(new o.S(J, U)), yn(new o.S(J, ee))], - ge = yn(m.center); - let Te = Number.POSITIVE_INFINITY; - for (const he of ue) y < 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "x", y))), w > 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "x", w))), P > 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "y", P))), M < 0 && (Te = Dn.getLesserNonNegativeNonNull(Te, Dn.solveVectorScale(he, ge, de, "y", M))); - if (Number.isFinite(Te) && Te !== 0) return m.zoom = se.zoom + o.ak(Te), m; - Ko() - } - handleJumpToCenterZoom(e, n) { - const s = e.center.lat, - u = e.getConstrained(n.center ? o.S.convert(n.center) : e.center, e.zoom).center; - e.setCenter(u.wrap()); - const d = n.zoom !== void 0 ? +n.zoom : e.zoom + Gi(s, u.lat); - e.zoom !== d && e.setZoom(d) - } - handleEaseTo(e, n) { - const s = e.zoom, - u = e.center, - d = e.padding, - m = { - roll: e.roll, - pitch: e.pitch, - bearing: e.bearing - }, - y = { - roll: n.roll === void 0 ? e.roll : n.roll, - pitch: n.pitch === void 0 ? e.pitch : n.pitch, - bearing: n.bearing === void 0 ? e.bearing : n.bearing - }, - w = n.zoom !== void 0, - P = !e.isPaddingEqual(n.padding); - let M = !1; - const D = n.center ? o.S.convert(n.center) : u, - z = e.getConstrained(D, s).center; - vn(e, z); - const B = e.clone(); - B.setCenter(z), B.setZoom(w ? +n.zoom : s + Gi(u.lat, D.lat)), B.setBearing(n.bearing); - const U = new o.P(o.ah(e.centerPoint.x + n.offsetAsPoint.x, 0, e.width), o.ah(e.centerPoint.y + n.offsetAsPoint.y, 0, e.height)); - B.setLocationAtPoint(z, U); - const ee = (n.offset && n.offsetAsPoint.mag()) > 0 ? B.center : z, - J = w ? +n.zoom : s + Gi(u.lat, ee.lat), - re = s + Gi(u.lat, 0), - se = J + Gi(ee.lat, 0), - de = o.bA(u.lng, ee.lng), - ue = o.bA(u.lat, ee.lat), - ge = o.af(se - re); - return M = J !== s, { - easeFunc: Te => { - if (o.be(m, y) || un({ - startEulerAngles: m, - endEulerAngles: y, - tr: e, - k: Te, - useSlerp: m.roll != y.roll - }), P && e.interpolatePadding(d, n.padding, Te), n.around) o.w("Easing around a point is not supported under globe projection."), e.setLocationAtPoint(n.around, n.aroundPoint); - else { - const he = se > re ? Math.min(2, ge) : Math.max(.5, ge), - De = Math.pow(he, 1 - Te), - He = _c(u, de, ue, Te * De); - e.setCenter(He.wrap()) - } - if (M) { - const he = o.C.number(re, se, Te) + Gi(0, e.center.lat); - e.setZoom(he) - } - }, - isZooming: M, - elevationCenter: ee - } - } - handleFlyTo(e, n) { - const s = n.zoom !== void 0, - u = e.center, - d = e.zoom, - m = e.padding, - y = !e.isPaddingEqual(n.padding), - w = e.getConstrained(o.S.convert(n.center || n.locationAtOffset), d).center, - P = s ? +n.zoom : e.zoom + Gi(e.center.lat, w.lat), - M = e.clone(); - M.setCenter(w), M.setZoom(P), M.setBearing(n.bearing); - const D = new o.P(o.ah(e.centerPoint.x + n.offsetAsPoint.x, 0, e.width), o.ah(e.centerPoint.y + n.offsetAsPoint.y, 0, e.height)); - M.setLocationAtPoint(w, D); - const z = M.center; - vn(e, z); - const B = (function(ue, ge, Te) { - const he = yn(ge), - De = yn(Te), - He = o.aX(he, De), - je = Math.acos(He), - qe = el(ue); - return je / (2 * Math.PI) * qe - })(e, u, z), - U = d + Gi(u.lat, 0), - ee = P + Gi(z.lat, 0), - J = o.af(ee - U); - let re; - if (typeof n.minZoom == "number") { - const ue = +n.minZoom + Gi(z.lat, 0), - ge = Math.min(ue, U, ee) + Gi(0, z.lat), - Te = e.getConstrained(z, ge).zoom + Gi(z.lat, 0); - re = o.af(Te - U) - } - const se = o.bA(u.lng, z.lng), - de = o.bA(u.lat, z.lat); - return { - easeFunc: (ue, ge, Te, he) => { - const De = _c(u, se, de, Te); - y && e.interpolatePadding(m, n.padding, ue); - const He = ue === 1 ? z : De; - e.setCenter(He.wrap()); - const je = U + o.ak(ge); - e.setZoom(ue === 1 ? P : je + Gi(0, He.lat)) - }, - scaleOfZoom: J, - targetCenter: z, - scaleOfMinZoom: re, - pixelPathLength: B - } - } - static solveVectorScale(e, n, s, u, d) { - const m = u === "x" ? [s[0], s[4], s[8], s[12]] : [s[1], s[5], s[9], s[13]], - y = [s[3], s[7], s[11], s[15]], - w = e[0] * m[0] + e[1] * m[1] + e[2] * m[2], - P = e[0] * y[0] + e[1] * y[1] + e[2] * y[2], - M = n[0] * m[0] + n[1] * m[1] + n[2] * m[2], - D = n[0] * y[0] + n[1] * y[1] + n[2] * y[2]; - return M + d * P === w + d * D || y[3] * (w - M) + m[3] * (D - P) + w * D == M * P ? null : (M + m[3] - d * D - d * y[3]) / (M - w - d * D + d * P) - } - static getLesserNonNegativeNonNull(e, n) { - return n !== null && n >= 0 && n < e ? n : e - } - } - class gh { - constructor(e) { - this._globe = e, this._mercatorCameraHelper = new hn, this._verticalPerspectiveCameraHelper = new Dn - } - get useGlobeControls() { - return this._globe.useGlobeRendering - } - get currentHelper() { - return this.useGlobeControls ? this._verticalPerspectiveCameraHelper : this._mercatorCameraHelper - } - handlePanInertia(e, n) { - return this.currentHelper.handlePanInertia(e, n) - } - handleMapControlsRollPitchBearingZoom(e, n) { - return this.currentHelper.handleMapControlsRollPitchBearingZoom(e, n) - } - handleMapControlsPan(e, n, s) { - this.currentHelper.handleMapControlsPan(e, n, s) - } - cameraForBoxAndBearing(e, n, s, u, d) { - return this.currentHelper.cameraForBoxAndBearing(e, n, s, u, d) - } - handleJumpToCenterZoom(e, n) { - this.currentHelper.handleJumpToCenterZoom(e, n) - } - handleEaseTo(e, n) { - return this.currentHelper.handleEaseTo(e, n) - } - handleFlyTo(e, n) { - return this.currentHelper.handleFlyTo(e, n) - } - } - const tl = (h, e) => o.y(h, e && e.filter((n => n.identifier !== "source.canvas"))), - Jd = o.bE(); - class gc extends o.E { - constructor(e, n = {}) { - super(), this._rtlPluginLoaded = () => { - for (const s in this.sourceCaches) { - const u = this.sourceCaches[s].getSource().type; - u !== "vector" && u !== "geojson" || this.sourceCaches[s].reload() - } - }, this.map = e, this.dispatcher = new xt(_t(), e._getMapId()), this.dispatcher.registerMessageHandler("GG", ((s, u) => this.getGlyphs(s, u))), this.dispatcher.registerMessageHandler("GI", ((s, u) => this.getImages(s, u))), this.imageManager = new Je, this.imageManager.setEventedParent(this), this.glyphManager = new Qe(e._requestManager, n.localIdeographFontFamily), this.lineAtlas = new ne(256, 512), this.crossTileSymbolIndex = new gi, this._spritesImagesIds = {}, this._layers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new o.bF, this._loaded = !1, this._availableImages = [], this._globalState = {}, this._resetUpdates(), this.dispatcher.broadcast("SR", o.bG()), kr().on(ur, this._rtlPluginLoaded), this.on("data", (s => { - if (s.dataType !== "source" || s.sourceDataType !== "metadata") return; - const u = this.sourceCaches[s.sourceId]; - if (!u) return; - const d = u.getSource(); - if (d && d.vectorLayerIds) - for (const m in this._layers) { - const y = this._layers[m]; - y.source === d.id && this._validateLayer(y) - } - })) - } - setGlobalStateProperty(e, n) { - var s, u, d; - this._checkLoaded(); - const m = n === null ? (d = (u = (s = this.stylesheet.state) === null || s === void 0 ? void 0 : s[e]) === null || u === void 0 ? void 0 : u.default) !== null && d !== void 0 ? d : null : n; - if (o.bH(m, this._globalState[e])) return this; - this._globalState[e] = m; - const y = this._findGlobalStateAffectedSources([e]); - for (const w in this.sourceCaches) y.has(w) && (this._reloadSource(w), this._changed = !0) - } - getGlobalState() { - return this._globalState - } - setGlobalState(e) { - this._checkLoaded(); - const n = []; - for (const u in e) !o.bH(this._globalState[u], e[u].default) && (n.push(u), this._globalState[u] = e[u].default); - const s = this._findGlobalStateAffectedSources(n); - for (const u in this.sourceCaches) s.has(u) && (this._reloadSource(u), this._changed = !0) - } - _findGlobalStateAffectedSources(e) { - if (e.length === 0) return new Set; - const n = new Set; - for (const s in this._layers) { - const u = this._layers[s], - d = u.getLayoutAffectingGlobalStateRefs(); - for (const m of e) d.has(m) && n.add(u.source) - } - return n - } - loadURL(e, n = {}, s) { - this.fire(new o.l("dataloading", { - dataType: "style" - })), n.validate = typeof n.validate != "boolean" || n.validate; - const u = this.map._requestManager.transformRequest(e, "Style"); - this._loadStyleRequest = new AbortController; - const d = this._loadStyleRequest; - o.j(u, this._loadStyleRequest).then((m => { - this._loadStyleRequest = null, this._load(m.data, n, s) - })).catch((m => { - this._loadStyleRequest = null, m && !d.signal.aborted && this.fire(new o.k(m)) - })) - } - loadJSON(e, n = {}, s) { - this.fire(new o.l("dataloading", { - dataType: "style" - })), this._frameRequest = new AbortController, ye.frameAsync(this._frameRequest).then((() => { - this._frameRequest = null, n.validate = n.validate !== !1, this._load(e, n, s) - })).catch((() => {})) - } - loadEmpty() { - this.fire(new o.l("dataloading", { - dataType: "style" - })), this._load(Jd, { - validate: !1 - }) - } - _load(e, n, s) { - var u, d, m; - const y = n.transformStyle ? n.transformStyle(s, e) : e; - if (!n.validate || !tl(this, o.z(y))) { - this._loaded = !0, this.stylesheet = y; - for (const w in y.sources) this.addSource(w, y.sources[w], { - validate: !1 - }); - y.sprite ? this._loadSprite(y.sprite) : this.imageManager.setLoaded(!0), this.glyphManager.setURL(y.glyphs), this._createLayers(), this.light = new Q(this.stylesheet.light), this._setProjectionInternal(((u = this.stylesheet.projection) === null || u === void 0 ? void 0 : u.type) || "mercator"), this.sky = new _e(this.stylesheet.sky), this.map.setTerrain((d = this.stylesheet.terrain) !== null && d !== void 0 ? d : null), this.setGlobalState((m = this.stylesheet.state) !== null && m !== void 0 ? m : null), this.fire(new o.l("data", { - dataType: "style" - })), this.fire(new o.l("style.load")) - } - } - _createLayers() { - const e = o.bI(this.stylesheet.layers); - this.dispatcher.broadcast("SL", e), this._order = e.map((n => n.id)), this._layers = {}, this._serializedLayers = null; - for (const n of e) { - const s = o.bJ(n); - s.setEventedParent(this, { - layer: { - id: n.id - } - }), this._layers[n.id] = s - } - } - _loadSprite(e, n = !1, s = void 0) { - let u; - this.imageManager.setLoaded(!1), this._spriteRequest = new AbortController, (function(d, m, y, w) { - return o._(this, void 0, void 0, (function*() { - const P = ht(d), - M = y > 1 ? "@2x" : "", - D = {}, - z = {}; - for (const { - id: B, - url: U - } - of P) { - const ee = m.transformRequest(Xe(U, M, ".json"), "SpriteJSON"); - D[B] = o.j(ee, w); - const J = m.transformRequest(Xe(U, M, ".png"), "SpriteImage"); - z[B] = Ne.getImage(J, w) - } - return yield Promise.all([...Object.values(D), ...Object.values(z)]), (function(B, U) { - return o._(this, void 0, void 0, (function*() { - const ee = {}; - for (const J in B) { - ee[J] = {}; - const re = ye.getImageCanvasContext((yield U[J]).data), - se = (yield B[J]).data; - for (const de in se) { - const { - width: ue, - height: ge, - x: Te, - y: he, - sdf: De, - pixelRatio: He, - stretchX: je, - stretchY: qe, - content: $e, - textFitWidth: Rt, - textFitHeight: Nt - } = se[de]; - ee[J][de] = { - data: null, - pixelRatio: He, - sdf: De, - stretchX: je, - stretchY: qe, - content: $e, - textFitWidth: Rt, - textFitHeight: Nt, - spriteData: { - width: ue, - height: ge, - x: Te, - y: he, - context: re - } - } - } - } - return ee - })) - })(D, z) - })) - })(e, this.map._requestManager, this.map.getPixelRatio(), this._spriteRequest).then((d => { - if (this._spriteRequest = null, d) - for (const m in d) { - this._spritesImagesIds[m] = []; - const y = this._spritesImagesIds[m] ? this._spritesImagesIds[m].filter((w => !(w in d))) : []; - for (const w of y) this.imageManager.removeImage(w), this._changedImages[w] = !0; - for (const w in d[m]) { - const P = m === "default" ? w : `${m}:${w}`; - this._spritesImagesIds[m].push(P), P in this.imageManager.images ? this.imageManager.updateImage(P, d[m][w], !1) : this.imageManager.addImage(P, d[m][w]), n && (this._changedImages[P] = !0) - } - } - })).catch((d => { - this._spriteRequest = null, u = d, this.fire(new o.k(u)) - })).finally((() => { - this.imageManager.setLoaded(!0), this._availableImages = this.imageManager.listImages(), n && (this._changed = !0), this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })), s && s(u) - })) - } - _unloadSprite() { - for (const e of Object.values(this._spritesImagesIds).flat()) this.imageManager.removeImage(e), this._changedImages[e] = !0; - this._spritesImagesIds = {}, this._availableImages = this.imageManager.listImages(), this._changed = !0, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })) - } - _validateLayer(e) { - const n = this.sourceCaches[e.source]; - if (!n) return; - const s = e.sourceLayer; - if (!s) return; - const u = n.getSource(); - (u.type === "geojson" || u.vectorLayerIds && u.vectorLayerIds.indexOf(s) === -1) && this.fire(new o.k(new Error(`Source layer "${s}" does not exist on source "${u.id}" as specified by style layer "${e.id}".`))) - } - loaded() { - if (!this._loaded || Object.keys(this._updatedSources).length) return !1; - for (const e in this.sourceCaches) - if (!this.sourceCaches[e].loaded()) return !1; - return !!this.imageManager.isLoaded() - } - _serializeByIds(e, n = !1) { - const s = this._serializedAllLayers(); - if (!e || e.length === 0) return Object.values(n ? o.bK(s) : s); - const u = []; - for (const d of e) - if (s[d]) { - const m = n ? o.bK(s[d]) : s[d]; - u.push(m) - } return u - } - _serializedAllLayers() { - let e = this._serializedLayers; - if (e) return e; - e = this._serializedLayers = {}; - const n = Object.keys(this._layers); - for (const s of n) { - const u = this._layers[s]; - u.type !== "custom" && (e[s] = u.serialize()) - } - return e - } - hasTransitions() { - var e, n, s; - if (!((e = this.light) === null || e === void 0) && e.hasTransition() || !((n = this.sky) === null || n === void 0) && n.hasTransition() || !((s = this.projection) === null || s === void 0) && s.hasTransition()) return !0; - for (const u in this.sourceCaches) - if (this.sourceCaches[u].hasTransition()) return !0; - for (const u in this._layers) - if (this._layers[u].hasTransition()) return !0; - return !1 - } - _checkLoaded() { - if (!this._loaded) throw new Error("Style is not done loading.") - } - update(e) { - if (!this._loaded) return; - const n = this._changed; - if (n) { - const u = Object.keys(this._updatedLayers), - d = Object.keys(this._removedLayers); - (u.length || d.length) && this._updateWorkerLayers(u, d); - for (const m in this._updatedSources) { - const y = this._updatedSources[m]; - if (y === "reload") this._reloadSource(m); - else { - if (y !== "clear") throw new Error(`Invalid action ${y}`); - this._clearSource(m) - } - } - this._updateTilesForChangedImages(), this._updateTilesForChangedGlyphs(); - for (const m in this._updatedPaintProps) this._layers[m].updateTransitions(e); - this.light.updateTransitions(e), this.sky.updateTransitions(e), this._resetUpdates() - } - const s = {}; - for (const u in this.sourceCaches) { - const d = this.sourceCaches[u]; - s[u] = d.used, d.used = !1 - } - for (const u of this._order) { - const d = this._layers[u]; - d.recalculate(e, this._availableImages), !d.isHidden(e.zoom) && d.source && (this.sourceCaches[d.source].used = !0) - } - for (const u in s) { - const d = this.sourceCaches[u]; - !!s[u] != !!d.used && d.fire(new o.l("data", { - sourceDataType: "visibility", - dataType: "source", - sourceId: u - })) - } - this.light.recalculate(e), this.sky.recalculate(e), this.projection.recalculate(e), this.z = e.zoom, n && this.fire(new o.l("data", { - dataType: "style" - })) - } - _updateTilesForChangedImages() { - const e = Object.keys(this._changedImages); - if (e.length) { - for (const n in this.sourceCaches) this.sourceCaches[n].reloadTilesForDependencies(["icons", "patterns"], e); - this._changedImages = {} - } - } - _updateTilesForChangedGlyphs() { - if (this._glyphsDidChange) { - for (const e in this.sourceCaches) this.sourceCaches[e].reloadTilesForDependencies(["glyphs"], [""]); - this._glyphsDidChange = !1 - } - } - _updateWorkerLayers(e, n) { - this.dispatcher.broadcast("UL", { - layers: this._serializeByIds(e, !1), - removedIds: n - }) - } - _resetUpdates() { - this._changed = !1, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {}, this._glyphsDidChange = !1 - } - setState(e, n = {}) { - var s; - this._checkLoaded(); - const u = this.serialize(); - if (e = n.transformStyle ? n.transformStyle(u, e) : e, ((s = n.validate) === null || s === void 0 || s) && tl(this, o.z(e))) return !1; - (e = o.bK(e)).layers = o.bI(e.layers); - const d = o.bL(u, e), - m = this._getOperationsToPerform(d); - if (m.unimplemented.length > 0) throw new Error(`Unimplemented: ${m.unimplemented.join(", ")}.`); - if (m.operations.length === 0) return !1; - for (const y of m.operations) y(); - return this.stylesheet = e, this._serializedLayers = null, !0 - } - _getOperationsToPerform(e) { - const n = [], - s = []; - for (const u of e) switch (u.command) { - case "setCenter": - case "setZoom": - case "setBearing": - case "setPitch": - case "setRoll": - continue; - case "addLayer": - n.push((() => this.addLayer.apply(this, u.args))); - break; - case "removeLayer": - n.push((() => this.removeLayer.apply(this, u.args))); - break; - case "setPaintProperty": - n.push((() => this.setPaintProperty.apply(this, u.args))); - break; - case "setLayoutProperty": - n.push((() => this.setLayoutProperty.apply(this, u.args))); - break; - case "setFilter": - n.push((() => this.setFilter.apply(this, u.args))); - break; - case "addSource": - n.push((() => this.addSource.apply(this, u.args))); - break; - case "removeSource": - n.push((() => this.removeSource.apply(this, u.args))); - break; - case "setLayerZoomRange": - n.push((() => this.setLayerZoomRange.apply(this, u.args))); - break; - case "setLight": - n.push((() => this.setLight.apply(this, u.args))); - break; - case "setGeoJSONSourceData": - n.push((() => this.setGeoJSONSourceData.apply(this, u.args))); - break; - case "setGlyphs": - n.push((() => this.setGlyphs.apply(this, u.args))); - break; - case "setSprite": - n.push((() => this.setSprite.apply(this, u.args))); - break; - case "setTerrain": - n.push((() => this.map.setTerrain.apply(this, u.args))); - break; - case "setSky": - n.push((() => this.setSky.apply(this, u.args))); - break; - case "setProjection": - this.setProjection.apply(this, u.args); - break; - case "setGlobalState": - n.push((() => this.setGlobalState.apply(this, u.args))); - break; - case "setTransition": - n.push((() => {})); - break; - default: - s.push(u.command) - } - return { - operations: n, - unimplemented: s - } - } - addImage(e, n) { - if (this.getImage(e)) return this.fire(new o.k(new Error(`An image named "${e}" already exists.`))); - this.imageManager.addImage(e, n), this._afterImageUpdated(e) - } - updateImage(e, n) { - this.imageManager.updateImage(e, n) - } - getImage(e) { - return this.imageManager.getImage(e) - } - removeImage(e) { - if (!this.getImage(e)) return this.fire(new o.k(new Error(`An image named "${e}" does not exist.`))); - this.imageManager.removeImage(e), this._afterImageUpdated(e) - } - _afterImageUpdated(e) { - this._availableImages = this.imageManager.listImages(), this._changedImages[e] = !0, this._changed = !0, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })) - } - listImages() { - return this._checkLoaded(), this.imageManager.listImages() - } - addSource(e, n, s = {}) { - if (this._checkLoaded(), this.sourceCaches[e] !== void 0) throw new Error(`Source "${e}" already exists.`); - if (!n.type) throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`); - if (["vector", "raster", "geojson", "video", "image"].indexOf(n.type) >= 0 && this._validate(o.z.source, `sources.${e}`, n, null, s)) return; - this.map && this.map._collectResourceTiming && (n.collectResourceTiming = !0); - const u = this.sourceCaches[e] = new Pt(e, n, this.dispatcher); - u.style = this, u.setEventedParent(this, (() => ({ - isSourceLoaded: u.loaded(), - source: u.serialize(), - sourceId: e - }))), u.onAdd(this.map), this._changed = !0 - } - removeSource(e) { - if (this._checkLoaded(), this.sourceCaches[e] === void 0) throw new Error("There is no source with this ID"); - for (const s in this._layers) - if (this._layers[s].source === e) return this.fire(new o.k(new Error(`Source "${e}" cannot be removed while layer "${s}" is using it.`))); - const n = this.sourceCaches[e]; - delete this.sourceCaches[e], delete this._updatedSources[e], n.fire(new o.l("data", { - sourceDataType: "metadata", - dataType: "source", - sourceId: e - })), n.setEventedParent(null), n.onRemove(this.map), this._changed = !0 - } - setGeoJSONSourceData(e, n) { - if (this._checkLoaded(), this.sourceCaches[e] === void 0) throw new Error(`There is no source with this ID=${e}`); - const s = this.sourceCaches[e].getSource(); - if (s.type !== "geojson") throw new Error(`geojsonSource.type is ${s.type}, which is !== 'geojson`); - s.setData(n), this._changed = !0 - } - getSource(e) { - return this.sourceCaches[e] && this.sourceCaches[e].getSource() - } - addLayer(e, n, s = {}) { - this._checkLoaded(); - const u = e.id; - if (this.getLayer(u)) return void this.fire(new o.k(new Error(`Layer "${u}" already exists on this map.`))); - let d; - if (e.type === "custom") { - if (tl(this, o.bM(e))) return; - d = o.bJ(e) - } else { - if ("source" in e && typeof e.source == "object" && (this.addSource(u, e.source), e = o.bK(e), e = o.e(e, { - source: u - })), this._validate(o.z.layer, `layers.${u}`, e, { - arrayIndex: -1 - }, s)) return; - d = o.bJ(e), this._validateLayer(d), d.setEventedParent(this, { - layer: { - id: u - } - }) - } - const m = n ? this._order.indexOf(n) : this._order.length; - if (n && m === -1) this.fire(new o.k(new Error(`Cannot add layer "${u}" before non-existing layer "${n}".`))); - else { - if (this._order.splice(m, 0, u), this._layerOrderChanged = !0, this._layers[u] = d, this._removedLayers[u] && d.source && d.type !== "custom") { - const y = this._removedLayers[u]; - delete this._removedLayers[u], y.type !== d.type ? this._updatedSources[d.source] = "clear" : (this._updatedSources[d.source] = "reload", this.sourceCaches[d.source].pause()) - } - this._updateLayer(d), d.onAdd && d.onAdd(this.map) - } - } - moveLayer(e, n) { - if (this._checkLoaded(), this._changed = !0, !this._layers[e]) return void this.fire(new o.k(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`))); - if (e === n) return; - const s = this._order.indexOf(e); - this._order.splice(s, 1); - const u = n ? this._order.indexOf(n) : this._order.length; - n && u === -1 ? this.fire(new o.k(new Error(`Cannot move layer "${e}" before non-existing layer "${n}".`))) : (this._order.splice(u, 0, e), this._layerOrderChanged = !0) - } - removeLayer(e) { - this._checkLoaded(); - const n = this._layers[e]; - if (!n) return void this.fire(new o.k(new Error(`Cannot remove non-existing layer "${e}".`))); - n.setEventedParent(null); - const s = this._order.indexOf(e); - this._order.splice(s, 1), this._layerOrderChanged = !0, this._changed = !0, this._removedLayers[e] = n, delete this._layers[e], this._serializedLayers && delete this._serializedLayers[e], delete this._updatedLayers[e], delete this._updatedPaintProps[e], n.onRemove && n.onRemove(this.map) - } - getLayer(e) { - return this._layers[e] - } - getLayersOrder() { - return [...this._order] - } - hasLayer(e) { - return e in this._layers - } - setLayerZoomRange(e, n, s) { - this._checkLoaded(); - const u = this.getLayer(e); - u ? u.minzoom === n && u.maxzoom === s || (n != null && (u.minzoom = n), s != null && (u.maxzoom = s), this._updateLayer(u)) : this.fire(new o.k(new Error(`Cannot set the zoom range of non-existing layer "${e}".`))) - } - setFilter(e, n, s = {}) { - this._checkLoaded(); - const u = this.getLayer(e); - if (u) { - if (!o.bH(u.filter, n)) return n == null ? (u.setFilter(void 0), void this._updateLayer(u)) : void(this._validate(o.z.filter, `layers.${u.id}.filter`, n, null, s) || (u.setFilter(o.bK(n)), this._updateLayer(u))) - } else this.fire(new o.k(new Error(`Cannot filter non-existing layer "${e}".`))) - } - getFilter(e) { - return o.bK(this.getLayer(e).filter) - } - setLayoutProperty(e, n, s, u = {}) { - this._checkLoaded(); - const d = this.getLayer(e); - d ? o.bH(d.getLayoutProperty(n), s) || (d.setLayoutProperty(n, s, u), this._updateLayer(d)) : this.fire(new o.k(new Error(`Cannot style non-existing layer "${e}".`))) - } - getLayoutProperty(e, n) { - const s = this.getLayer(e); - if (s) return s.getLayoutProperty(n); - this.fire(new o.k(new Error(`Cannot get style of non-existing layer "${e}".`))) - } - setPaintProperty(e, n, s, u = {}) { - this._checkLoaded(); - const d = this.getLayer(e); - d ? o.bH(d.getPaintProperty(n), s) || (d.setPaintProperty(n, s, u) && this._updateLayer(d), this._changed = !0, this._updatedPaintProps[e] = !0, this._serializedLayers = null) : this.fire(new o.k(new Error(`Cannot style non-existing layer "${e}".`))) - } - getPaintProperty(e, n) { - return this.getLayer(e).getPaintProperty(n) - } - setFeatureState(e, n) { - this._checkLoaded(); - const s = e.source, - u = e.sourceLayer, - d = this.sourceCaches[s]; - if (d === void 0) return void this.fire(new o.k(new Error(`The source '${s}' does not exist in the map's style.`))); - const m = d.getSource().type; - m === "geojson" && u ? this.fire(new o.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))) : m !== "vector" || u ? (e.id === void 0 && this.fire(new o.k(new Error("The feature id parameter must be provided."))), d.setFeatureState(u, e.id, n)) : this.fire(new o.k(new Error("The sourceLayer parameter must be provided for vector source types."))) - } - removeFeatureState(e, n) { - this._checkLoaded(); - const s = e.source, - u = this.sourceCaches[s]; - if (u === void 0) return void this.fire(new o.k(new Error(`The source '${s}' does not exist in the map's style.`))); - const d = u.getSource().type, - m = d === "vector" ? e.sourceLayer : void 0; - d !== "vector" || m ? n && typeof e.id != "string" && typeof e.id != "number" ? this.fire(new o.k(new Error("A feature id is required to remove its specific state property."))) : u.removeFeatureState(m, e.id, n) : this.fire(new o.k(new Error("The sourceLayer parameter must be provided for vector source types."))) - } - getFeatureState(e) { - this._checkLoaded(); - const n = e.source, - s = e.sourceLayer, - u = this.sourceCaches[n]; - if (u !== void 0) return u.getSource().type !== "vector" || s ? (e.id === void 0 && this.fire(new o.k(new Error("The feature id parameter must be provided."))), u.getFeatureState(s, e.id)) : void this.fire(new o.k(new Error("The sourceLayer parameter must be provided for vector source types."))); - this.fire(new o.k(new Error(`The source '${n}' does not exist in the map's style.`))) - } - getTransition() { - return o.e({ - duration: 300, - delay: 0 - }, this.stylesheet && this.stylesheet.transition) - } - serialize() { - if (!this._loaded) return; - const e = o.bN(this.sourceCaches, (d => d.serialize())), - n = this._serializeByIds(this._order, !0), - s = this.map.getTerrain() || void 0, - u = this.stylesheet; - return o.bO({ - version: u.version, - name: u.name, - metadata: u.metadata, - light: u.light, - sky: u.sky, - center: u.center, - zoom: u.zoom, - bearing: u.bearing, - pitch: u.pitch, - sprite: u.sprite, - glyphs: u.glyphs, - transition: u.transition, - projection: u.projection, - sources: e, - layers: n, - terrain: s - }, (d => d !== void 0)) - } - _updateLayer(e) { - this._updatedLayers[e.id] = !0, e.source && !this._updatedSources[e.source] && this.sourceCaches[e.source].getSource().type !== "raster" && (this._updatedSources[e.source] = "reload", this.sourceCaches[e.source].pause()), this._serializedLayers = null, this._changed = !0 - } - _flattenAndSortRenderedFeatures(e) { - const n = m => this._layers[m].type === "fill-extrusion", - s = {}, - u = []; - for (let m = this._order.length - 1; m >= 0; m--) { - const y = this._order[m]; - if (n(y)) { - s[y] = m; - for (const w of e) { - const P = w[y]; - if (P) - for (const M of P) u.push(M) - } - } - } - u.sort(((m, y) => y.intersectionZ - m.intersectionZ)); - const d = []; - for (let m = this._order.length - 1; m >= 0; m--) { - const y = this._order[m]; - if (n(y)) - for (let w = u.length - 1; w >= 0; w--) { - const P = u[w].feature; - if (s[P.layer.id] < m) break; - d.push(P), u.pop() - } else - for (const w of e) { - const P = w[y]; - if (P) - for (const M of P) d.push(M.feature) - } - } - return d - } - queryRenderedFeatures(e, n, s) { - n && n.filter && this._validate(o.z.filter, "queryRenderedFeatures.filter", n.filter, null, n); - const u = {}; - if (n && n.layers) { - if (!(Array.isArray(n.layers) || n.layers instanceof Set)) return this.fire(new o.k(new Error("parameters.layers must be an Array or a Set of strings"))), []; - for (const P of n.layers) { - const M = this._layers[P]; - if (!M) return this.fire(new o.k(new Error(`The layer '${P}' does not exist in the map's style and cannot be queried for features.`))), []; - u[M.source] = !0 - } - } - const d = []; - n.availableImages = this._availableImages; - const m = this._serializedAllLayers(), - y = n.layers instanceof Set ? n.layers : Array.isArray(n.layers) ? new Set(n.layers) : null, - w = Object.assign(Object.assign({}, n), { - layers: y - }); - for (const P in this.sourceCaches) n.layers && !u[P] || d.push(It(this.sourceCaches[P], this._layers, m, e, w, s, this.map.terrain ? (M, D, z) => this.map.terrain.getElevation(M, D, z) : void 0)); - return this.placement && d.push((function(P, M, D, z, B, U, ee) { - const J = {}, - re = U.queryRenderedSymbols(z), - se = []; - for (const de of Object.keys(re).map(Number)) se.push(ee[de]); - se.sort(ut); - for (const de of se) { - const ue = de.featureIndex.lookupSymbolFeatures(re[de.bucketInstanceId], M, de.bucketIndex, de.sourceLayerIndex, B.filter, B.layers, B.availableImages, P); - for (const ge in ue) { - const Te = J[ge] = J[ge] || [], - he = ue[ge]; - he.sort(((De, He) => { - const je = de.featureSortOrder; - if (je) { - const qe = je.indexOf(De.featureIndex); - return je.indexOf(He.featureIndex) - qe - } - return He.featureIndex - De.featureIndex - })); - for (const De of he) Te.push(De) - } - } - return (function(de, ue, ge) { - for (const Te in de) - for (const he of de[Te]) bt(he, ge[ue[Te].source]); - return de - })(J, P, D) - })(this._layers, m, this.sourceCaches, e, w, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(d) - } - querySourceFeatures(e, n) { - n && n.filter && this._validate(o.z.filter, "querySourceFeatures.filter", n.filter, null, n); - const s = this.sourceCaches[e]; - return s ? (function(u, d) { - const m = u.getRenderableIds().map((P => u.getTileByID(P))), - y = [], - w = {}; - for (let P = 0; P < m.length; P++) { - const M = m[P], - D = M.tileID.canonical.key; - w[D] || (w[D] = !0, M.querySourceFeatures(y, d)) - } - return y - })(s, n) : [] - } - getLight() { - return this.light.getLight() - } - setLight(e, n = {}) { - this._checkLoaded(); - const s = this.light.getLight(); - let u = !1; - for (const m in e) - if (!o.bH(e[m], s[m])) { - u = !0; - break - } if (!u) return; - const d = { - now: ye.now(), - transition: o.e({ - duration: 300, - delay: 0 - }, this.stylesheet.transition) - }; - this.light.setLight(e, n), this.light.updateTransitions(d) - } - getProjection() { - var e; - return (e = this.stylesheet) === null || e === void 0 ? void 0 : e.projection - } - setProjection(e) { - if (this._checkLoaded(), this.projection) { - if (this.projection.name === e.type) return; - this.projection.destroy(), delete this.projection - } - this.stylesheet.projection = e, this._setProjectionInternal(e.type) - } - getSky() { - var e; - return (e = this.stylesheet) === null || e === void 0 ? void 0 : e.sky - } - setSky(e, n = {}) { - this._checkLoaded(); - const s = this.getSky(); - let u = !1; - if (!e && !s) return; - if (e && !s) u = !0; - else if (!e && s) u = !0; - else - for (const m in e) - if (!o.bH(e[m], s[m])) { - u = !0; - break - } if (!u) return; - const d = { - now: ye.now(), - transition: o.e({ - duration: 300, - delay: 0 - }, this.stylesheet.transition) - }; - this.stylesheet.sky = e, this.sky.setSky(e, n), this.sky.updateTransitions(d) - } - _setProjectionInternal(e) { - const n = (function(s) { - if (Array.isArray(s)) { - const u = new Qo({ - type: s - }); - return { - projection: u, - transform: new _o, - cameraHelper: new gh(u) - } - } - switch (s) { - case "mercator": - return { - projection: new yr, transform: new wi, cameraHelper: new hn - }; - case "globe": { - const u = new Qo({ - type: ["interpolate", ["linear"], - ["zoom"], 11, "vertical-perspective", 12, "mercator" - ] - }); - return { - projection: u, - transform: new _o, - cameraHelper: new gh(u) - } - } - case "vertical-perspective": - return { - projection: new co, transform: new mo, cameraHelper: new Dn - }; - default: - return o.w(`Unknown projection name: ${s}. Falling back to mercator projection.`), { - projection: new yr, - transform: new wi, - cameraHelper: new hn - } - } - })(e); - this.projection = n.projection, this.map.migrateProjection(n.transform, n.cameraHelper); - for (const s in this.sourceCaches) this.sourceCaches[s].reload() - } - _validate(e, n, s, u, d = {}) { - return (!d || d.validate !== !1) && tl(this, e.call(o.z, o.e({ - key: n, - style: this.serialize(), - value: s, - styleSpec: o.v - }, u))) - } - _remove(e = !0) { - this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._loadStyleRequest && (this._loadStyleRequest.abort(), this._loadStyleRequest = null), this._spriteRequest && (this._spriteRequest.abort(), this._spriteRequest = null), kr().off(ur, this._rtlPluginLoaded); - for (const n in this._layers) this._layers[n].setEventedParent(null); - for (const n in this.sourceCaches) { - const s = this.sourceCaches[n]; - s.setEventedParent(null), s.onRemove(this.map) - } - this.imageManager.setEventedParent(null), this.setEventedParent(null), e && this.dispatcher.broadcast("RM", void 0), this.dispatcher.remove(e) - } - _clearSource(e) { - this.sourceCaches[e].clearTiles() - } - _reloadSource(e) { - this.sourceCaches[e].resume(), this.sourceCaches[e].reload() - } - _updateSources(e) { - for (const n in this.sourceCaches) this.sourceCaches[n].update(e, this.map.terrain) - } - _generateCollisionBoxes() { - for (const e in this.sourceCaches) this._reloadSource(e) - } - _updatePlacement(e, n, s, u, d = !1) { - let m = !1, - y = !1; - const w = {}; - for (const P of this._order) { - const M = this._layers[P]; - if (M.type !== "symbol") continue; - if (!w[M.source]) { - const z = this.sourceCaches[M.source]; - w[M.source] = z.getRenderableIds(!0).map((B => z.getTileByID(B))).sort(((B, U) => U.tileID.overscaledZ - B.tileID.overscaledZ || (B.tileID.isLessThan(U.tileID) ? -1 : 1))) - } - const D = this.crossTileSymbolIndex.addLayer(M, w[M.source], e.center.lng); - m = m || D - } - if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((d = d || this._layerOrderChanged || s === 0) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(ye.now(), e.zoom)) && (this.pauseablePlacement = new gn(e, this.map.terrain, this._order, d, n, s, u, this.placement), this._layerOrderChanged = !1), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, w), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(ye.now()), y = !0), m && this.pauseablePlacement.placement.setStale()), y || m) - for (const P of this._order) { - const M = this._layers[P]; - M.type === "symbol" && this.placement.updateLayerOpacities(M, w[M.source]) - } - return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(ye.now()) - } - _releaseSymbolFadeTiles() { - for (const e in this.sourceCaches) this.sourceCaches[e].releaseSymbolFadeTiles() - } - getImages(e, n) { - return o._(this, void 0, void 0, (function*() { - const s = yield this.imageManager.getImages(n.icons); - this._updateTilesForChangedImages(); - const u = this.sourceCaches[n.source]; - return u && u.setDependencies(n.tileID.key, n.type, n.icons), s - })) - } - getGlyphs(e, n) { - return o._(this, void 0, void 0, (function*() { - const s = yield this.glyphManager.getGlyphs(n.stacks), u = this.sourceCaches[n.source]; - return u && u.setDependencies(n.tileID.key, n.type, [""]), s - })) - } - getGlyphsUrl() { - return this.stylesheet.glyphs || null - } - setGlyphs(e, n = {}) { - this._checkLoaded(), e && this._validate(o.z.glyphs, "glyphs", e, null, n) || (this._glyphsDidChange = !0, this.stylesheet.glyphs = e, this.glyphManager.entries = {}, this.glyphManager.setURL(e)) - } - addSprite(e, n, s = {}, u) { - this._checkLoaded(); - const d = [{ - id: e, - url: n - }], - m = [...ht(this.stylesheet.sprite), ...d]; - this._validate(o.z.sprite, "sprite", m, null, s) || (this.stylesheet.sprite = m, this._loadSprite(d, !0, u)) - } - removeSprite(e) { - this._checkLoaded(); - const n = ht(this.stylesheet.sprite); - if (n.find((s => s.id === e))) { - if (this._spritesImagesIds[e]) - for (const s of this._spritesImagesIds[e]) this.imageManager.removeImage(s), this._changedImages[s] = !0; - n.splice(n.findIndex((s => s.id === e)), 1), this.stylesheet.sprite = n.length > 0 ? n : void 0, delete this._spritesImagesIds[e], this._availableImages = this.imageManager.listImages(), this._changed = !0, this.dispatcher.broadcast("SI", this._availableImages), this.fire(new o.l("data", { - dataType: "style" - })) - } else this.fire(new o.k(new Error(`Sprite "${e}" doesn't exists on this map.`))) - } - getSprite() { - return ht(this.stylesheet.sprite) - } - setSprite(e, n = {}, s) { - this._checkLoaded(), e && this._validate(o.z.sprite, "sprite", e, null, n) || (this.stylesheet.sprite = e, e ? this._loadSprite(e, !0, s) : (this._unloadSprite(), s && s(null))) - } - } - var Qd = o.aJ([{ - name: "a_pos", - type: "Int16", - components: 2 - }, { - name: "a_texture_pos", - type: "Int16", - components: 2 - }]); - class ep { - constructor() { - this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null - } - bind(e, n, s, u, d, m, y, w, P) { - this.context = e; - let M = this.boundPaintVertexBuffers.length !== u.length; - for (let D = 0; !M && D < u.length; D++) this.boundPaintVertexBuffers[D] !== u[D] && (M = !0); - !this.vao || this.boundProgram !== n || this.boundLayoutVertexBuffer !== s || M || this.boundIndexBuffer !== d || this.boundVertexOffset !== m || this.boundDynamicVertexBuffer !== y || this.boundDynamicVertexBuffer2 !== w || this.boundDynamicVertexBuffer3 !== P ? this.freshBind(n, s, u, d, m, y, w, P) : (e.bindVertexArray.set(this.vao), y && y.bind(), d && d.dynamicDraw && d.bind(), w && w.bind(), P && P.bind()) - } - freshBind(e, n, s, u, d, m, y, w) { - const P = e.numAttributes, - M = this.context, - D = M.gl; - this.vao && this.destroy(), this.vao = M.createVertexArray(), M.bindVertexArray.set(this.vao), this.boundProgram = e, this.boundLayoutVertexBuffer = n, this.boundPaintVertexBuffers = s, this.boundIndexBuffer = u, this.boundVertexOffset = d, this.boundDynamicVertexBuffer = m, this.boundDynamicVertexBuffer2 = y, this.boundDynamicVertexBuffer3 = w, n.enableAttributes(D, e); - for (const z of s) z.enableAttributes(D, e); - m && m.enableAttributes(D, e), y && y.enableAttributes(D, e), w && w.enableAttributes(D, e), n.bind(), n.setVertexAttribPointers(D, e, d); - for (const z of s) z.bind(), z.setVertexAttribPointers(D, e, d); - m && (m.bind(), m.setVertexAttribPointers(D, e, d)), u && u.bind(), y && (y.bind(), y.setVertexAttribPointers(D, e, d)), w && (w.bind(), w.setVertexAttribPointers(D, e, d)), M.currentNumAttributes = P - } - destroy() { - this.vao && (this.context.deleteVertexArray(this.vao), this.vao = null) - } - } - const rl = (h, e, n, s, u) => ({ - u_texture: 0, - u_ele_delta: h, - u_fog_matrix: e, - u_fog_color: n ? n.properties.get("fog-color") : o.bf.white, - u_fog_ground_blend: n ? n.properties.get("fog-ground-blend") : 1, - u_fog_ground_blend_opacity: u ? 0 : n ? n.calculateFogBlendOpacity(s) : 0, - u_horizon_color: n ? n.properties.get("horizon-color") : o.bf.white, - u_horizon_fog_blend: n ? n.properties.get("horizon-fog-blend") : 1, - u_is_globe_mode: u ? 1 : 0 - }), - vc = { - mainMatrix: "u_projection_matrix", - tileMercatorCoords: "u_projection_tile_mercator_coords", - clippingPlane: "u_projection_clipping_plane", - projectionTransition: "u_projection_transition", - fallbackMatrix: "u_projection_fallback_matrix" - }; - - function ms(h) { - const e = []; - for (let n = 0; n < h.length; n++) { - if (h[n] === null) continue; - const s = h[n].split(" "); - e.push(s.pop()) - } - return e - } - class yc { - constructor(e, n, s, u, d, m, y, w, P = []) { - const M = e.gl; - this.program = M.createProgram(); - const D = ms(n.staticAttributes), - z = s ? s.getBinderAttributes() : [], - B = D.concat(z), - U = pi.prelude.staticUniforms ? ms(pi.prelude.staticUniforms) : [], - ee = y.staticUniforms ? ms(y.staticUniforms) : [], - J = n.staticUniforms ? ms(n.staticUniforms) : [], - re = s ? s.getBinderUniforms() : [], - se = U.concat(ee).concat(J).concat(re), - de = []; - for (const je of se) de.indexOf(je) < 0 && de.push(je); - const ue = s ? s.defines() : []; - Ra(M) && ue.unshift("#version 300 es"), d && ue.push("#define OVERDRAW_INSPECTOR;"), m && ue.push("#define TERRAIN3D;"), w && ue.push(w), P && ue.push(...P); - let ge = ue.concat(pi.prelude.fragmentSource, y.fragmentSource, n.fragmentSource).join(` -`), - Te = ue.concat(pi.prelude.vertexSource, y.vertexSource, n.vertexSource).join(` -`); - Ra(M) || (ge = (function(je) { - return je.replace(/\bin\s/g, "varying ").replace("out highp vec4 fragColor;", "").replace(/fragColor/g, "gl_FragColor").replace(/texture\(/g, "texture2D(") - })(ge), Te = (function(je) { - return je.replace(/\bin\s/g, "attribute ").replace(/\bout\s/g, "varying ").replace(/texture\(/g, "texture2D(") - })(Te)); - const he = M.createShader(M.FRAGMENT_SHADER); - if (M.isContextLost()) return void(this.failedToCreate = !0); - if (M.shaderSource(he, ge), M.compileShader(he), !M.getShaderParameter(he, M.COMPILE_STATUS)) throw new Error(`Could not compile fragment shader: ${M.getShaderInfoLog(he)}`); - M.attachShader(this.program, he); - const De = M.createShader(M.VERTEX_SHADER); - if (M.isContextLost()) return void(this.failedToCreate = !0); - if (M.shaderSource(De, Te), M.compileShader(De), !M.getShaderParameter(De, M.COMPILE_STATUS)) throw new Error(`Could not compile vertex shader: ${M.getShaderInfoLog(De)}`); - M.attachShader(this.program, De), this.attributes = {}; - const He = {}; - this.numAttributes = B.length; - for (let je = 0; je < this.numAttributes; je++) B[je] && (M.bindAttribLocation(this.program, je, B[je]), this.attributes[B[je]] = je); - if (M.linkProgram(this.program), !M.getProgramParameter(this.program, M.LINK_STATUS)) throw new Error(`Program failed to link: ${M.getProgramInfoLog(this.program)}`); - M.deleteShader(De), M.deleteShader(he); - for (let je = 0; je < de.length; je++) { - const qe = de[je]; - if (qe && !He[qe]) { - const $e = M.getUniformLocation(this.program, qe); - $e && (He[qe] = $e) - } - } - this.fixedUniforms = u(e, He), this.terrainUniforms = ((je, qe) => ({ - u_depth: new o.bP(je, qe.u_depth), - u_terrain: new o.bP(je, qe.u_terrain), - u_terrain_dim: new o.bg(je, qe.u_terrain_dim), - u_terrain_matrix: new o.bR(je, qe.u_terrain_matrix), - u_terrain_unpack: new o.bS(je, qe.u_terrain_unpack), - u_terrain_exaggeration: new o.bg(je, qe.u_terrain_exaggeration) - }))(e, He), this.projectionUniforms = ((je, qe) => ({ - u_projection_matrix: new o.bR(je, qe.u_projection_matrix), - u_projection_tile_mercator_coords: new o.bS(je, qe.u_projection_tile_mercator_coords), - u_projection_clipping_plane: new o.bS(je, qe.u_projection_clipping_plane), - u_projection_transition: new o.bg(je, qe.u_projection_transition), - u_projection_fallback_matrix: new o.bR(je, qe.u_projection_fallback_matrix) - }))(e, He), this.binderUniforms = s ? s.getUniforms(e, He) : [] - } - draw(e, n, s, u, d, m, y, w, P, M, D, z, B, U, ee, J, re, se, de) { - const ue = e.gl; - if (this.failedToCreate) return; - if (e.program.set(this.program), e.setDepthMode(s), e.setStencilMode(u), e.setColorMode(d), e.setCullFace(m), w) { - e.activeTexture.set(ue.TEXTURE2), ue.bindTexture(ue.TEXTURE_2D, w.depthTexture), e.activeTexture.set(ue.TEXTURE3), ue.bindTexture(ue.TEXTURE_2D, w.texture); - for (const Te in this.terrainUniforms) this.terrainUniforms[Te].set(w[Te]) - } - if (P) - for (const Te in P) this.projectionUniforms[vc[Te]].set(P[Te]); - if (y) - for (const Te in this.fixedUniforms) this.fixedUniforms[Te].set(y[Te]); - J && J.setUniforms(e, this.binderUniforms, U, { - zoom: ee - }); - let ge = 0; - switch (n) { - case ue.LINES: - ge = 2; - break; - case ue.TRIANGLES: - ge = 3; - break; - case ue.LINE_STRIP: - ge = 1 - } - for (const Te of B.get()) { - const he = Te.vaos || (Te.vaos = {}); - (he[M] || (he[M] = new ep)).bind(e, this, D, J ? J.getPaintVertexBuffers() : [], z, Te.vertexOffset, re, se, de), ue.drawElements(n, Te.primitiveLength * ge, ue.UNSIGNED_SHORT, Te.primitiveOffset * ge * 2) - } - } - } - - function il(h, e, n) { - const s = 1 / o.aC(n, 1, e.transform.tileZoom), - u = Math.pow(2, n.tileID.overscaledZ), - d = n.tileSize * Math.pow(2, e.transform.tileZoom) / u, - m = d * (n.tileID.canonical.x + n.tileID.wrap * u), - y = d * n.tileID.canonical.y; - return { - u_image: 0, - u_texsize: n.imageAtlasTexture.size, - u_scale: [s, h.fromScale, h.toScale], - u_fade: h.t, - u_pixel_coord_upper: [m >> 16, y >> 16], - u_pixel_coord_lower: [65535 & m, 65535 & y] - } - } - const ya = (h, e, n, s) => { - const u = h.style.light, - d = u.properties.get("position"), - m = [d.x, d.y, d.z], - y = o.bV(); - u.properties.get("anchor") === "viewport" && o.bW(y, h.transform.bearingInRadians), o.bX(m, m, y); - const w = h.transform.transformLightDirection(m), - P = u.properties.get("color"); - return { - u_lightpos: m, - u_lightpos_globe: w, - u_lightintensity: u.properties.get("intensity"), - u_lightcolor: [P.r, P.g, P.b], - u_vertical_gradient: +e, - u_opacity: n, - u_fill_translate: s - } - }, - tp = (h, e, n, s, u, d, m) => o.e(ya(h, e, n, s), il(d, h, m), { - u_height_factor: -Math.pow(2, u.overscaledZ) / m.tileSize / 8 - }), - nl = (h, e, n, s) => o.e(il(e, h, n), { - u_fill_translate: s - }), - go = (h, e) => ({ - u_world: h, - u_fill_translate: e - }), - vo = (h, e, n, s, u) => o.e(nl(h, e, n, u), { - u_world: s - }), - rp = (h, e, n, s, u) => { - const d = h.transform; - let m, y, w = 0; - if (n.paint.get("circle-pitch-alignment") === "map") { - const P = o.aC(e, 1, d.zoom); - m = !0, y = [P, P], w = P / (o.$ * Math.pow(2, e.tileID.overscaledZ)) * 2 * Math.PI * u - } else m = !1, y = d.pixelsToGLUnits; - return { - u_camera_to_center_distance: d.cameraToCenterDistance, - u_scale_with_map: +(n.paint.get("circle-pitch-scale") === "map"), - u_pitch_with_map: +m, - u_device_pixel_ratio: h.pixelRatio, - u_extrude_scale: y, - u_globe_extrude_scale: w, - u_translate: s - } - }, - al = h => ({ - u_pixel_extrude_scale: [1 / h.width, 1 / h.height] - }), - ip = h => ({ - u_viewport_size: [h.width, h.height] - }), - _s = (h, e = 1) => ({ - u_color: h, - u_overlay: 0, - u_overlay_scale: e - }), - vh = (h, e, n, s) => { - const u = o.aC(h, 1, e) / (o.$ * Math.pow(2, h.tileID.overscaledZ)) * 2 * Math.PI * s; - return { - u_extrude_scale: o.aC(h, 1, e), - u_intensity: n, - u_globe_extrude_scale: u - } - }, - xc = (h, e, n, s) => { - const u = o.L(); - o.bY(u, 0, h.width, h.height, 0, 0, 1); - const d = h.context.gl; - return { - u_matrix: u, - u_world: [d.drawingBufferWidth, d.drawingBufferHeight], - u_image: n, - u_color_ramp: s, - u_opacity: e.paint.get("heatmap-opacity") - } - }, - np = (h, e, n) => { - const s = n.paint.get("hillshade-accent-color"); - let u; - switch (n.paint.get("hillshade-method")) { - case "basic": - u = 4; - break; - case "combined": - u = 1; - break; - case "igor": - u = 2; - break; - case "multidirectional": - u = 3; - break; - default: - u = 0 - } - const d = n.getIlluminationProperties(); - for (let m = 0; m < d.directionRadians.length; m++) n.paint.get("hillshade-illumination-anchor") === "viewport" && (d.directionRadians[m] += h.transform.bearingInRadians); - return { - u_image: 0, - u_latrange: bc(0, e.tileID), - u_exaggeration: n.paint.get("hillshade-exaggeration"), - u_altitudes: d.altitudeRadians, - u_azimuths: d.directionRadians, - u_accent: s, - u_method: u, - u_highlights: d.highlightColor, - u_shadows: d.shadowColor - } - }, - yh = (h, e) => { - const n = e.stride, - s = o.L(); - return o.bY(s, 0, o.$, -o.$, 0, 0, 1), o.M(s, s, [0, -o.$, 0]), { - u_matrix: s, - u_image: 1, - u_dimension: [n, n], - u_zoom: h.overscaledZ, - u_unpack: e.getUnpackVector() - } - }; - - function bc(h, e) { - const n = Math.pow(2, e.canonical.z), - s = e.canonical.y; - return [new o.a1(0, s / n).toLngLat().lat, new o.a1(0, (s + 1) / n).toLngLat().lat] - } - const xh = (h, e, n = 0) => ({ - u_image: 0, - u_unpack: e.getUnpackVector(), - u_dimension: [e.stride, e.stride], - u_elevation_stops: 1, - u_color_stops: 4, - u_color_ramp_size: n, - u_opacity: h.paint.get("color-relief-opacity") - }), - sl = (h, e, n, s) => { - const u = h.transform; - return { - u_translation: Tc(h, e, n), - u_ratio: s / o.aC(e, 1, u.zoom), - u_device_pixel_ratio: h.pixelRatio, - u_units_to_pixels: [1 / u.pixelsToGLUnits[0], 1 / u.pixelsToGLUnits[1]] - } - }, - bh = (h, e, n, s, u) => o.e(sl(h, e, n, s), { - u_image: 0, - u_image_height: u - }), - wh = (h, e, n, s, u) => { - const d = h.transform, - m = wc(e, d); - return { - u_translation: Tc(h, e, n), - u_texsize: e.imageAtlasTexture.size, - u_ratio: s / o.aC(e, 1, d.zoom), - u_device_pixel_ratio: h.pixelRatio, - u_image: 0, - u_scale: [m, u.fromScale, u.toScale], - u_fade: u.t, - u_units_to_pixels: [1 / d.pixelsToGLUnits[0], 1 / d.pixelsToGLUnits[1]] - } - }, - gs = (h, e, n, s, u, d) => { - const m = h.lineAtlas, - y = wc(e, h.transform), - w = n.layout.get("line-cap") === "round", - P = m.getDash(u.from, w), - M = m.getDash(u.to, w), - D = P.width * d.fromScale, - z = M.width * d.toScale; - return o.e(sl(h, e, n, s), { - u_patternscale_a: [y / D, -P.height / 2], - u_patternscale_b: [y / z, -M.height / 2], - u_sdfgamma: m.width / (256 * Math.min(D, z) * h.pixelRatio) / 2, - u_image: 0, - u_tex_y_a: P.y, - u_tex_y_b: M.y, - u_mix: d.t - }) - }; - - function wc(h, e) { - return 1 / o.aC(h, 1, e.tileZoom) - } - - function Tc(h, e, n) { - return o.aD(h.transform, e, n.paint.get("line-translate"), n.paint.get("line-translate-anchor")) - } - const yo = (h, e, n, s, u) => { - return { - u_tl_parent: h, - u_scale_parent: e, - u_buffer_scale: 1, - u_fade_t: n.mix, - u_opacity: n.opacity * s.paint.get("raster-opacity"), - u_image0: 0, - u_image1: 1, - u_brightness_low: s.paint.get("raster-brightness-min"), - u_brightness_high: s.paint.get("raster-brightness-max"), - u_saturation_factor: (m = s.paint.get("raster-saturation"), m > 0 ? 1 - 1 / (1.001 - m) : -m), - u_contrast_factor: (d = s.paint.get("raster-contrast"), d > 0 ? 1 / (1 - d) : 1 + d), - u_spin_weights: ap(s.paint.get("raster-hue-rotate")), - u_coords_top: [u[0].x, u[0].y, u[1].x, u[1].y], - u_coords_bottom: [u[3].x, u[3].y, u[2].x, u[2].y] - }; - var d, m - }; - - function ap(h) { - h *= Math.PI / 180; - const e = Math.sin(h), - n = Math.cos(h); - return [(2 * n + 1) / 3, (-Math.sqrt(3) * e - n + 1) / 3, (Math.sqrt(3) * e - n + 1) / 3] - } - const xo = (h, e, n, s, u, d, m, y, w, P, M, D, z) => { - const B = m.transform; - return { - u_is_size_zoom_constant: +(h === "constant" || h === "source"), - u_is_size_feature_constant: +(h === "constant" || h === "camera"), - u_size_t: e ? e.uSizeT : 0, - u_size: e ? e.uSize : 0, - u_camera_to_center_distance: B.cameraToCenterDistance, - u_pitch: B.pitch / 360 * 2 * Math.PI, - u_rotate_symbol: +n, - u_aspect_ratio: B.width / B.height, - u_fade_change: m.options.fadeDuration ? m.symbolFadeChange : 1, - u_label_plane_matrix: y, - u_coord_matrix: w, - u_is_text: +M, - u_pitch_with_map: +s, - u_is_along_line: u, - u_is_variable_anchor: d, - u_texsize: D, - u_texture: 0, - u_translation: P, - u_pitched_scale: z - } - }, - Th = (h, e, n, s, u, d, m, y, w, P, M, D, z, B) => { - const U = m.transform; - return o.e(xo(h, e, n, s, u, d, m, y, w, P, M, D, B), { - u_gamma_scale: s ? Math.cos(U.pitch * Math.PI / 180) * U.cameraToCenterDistance : 1, - u_device_pixel_ratio: m.pixelRatio, - u_is_halo: 1 - }) - }, - sp = (h, e, n, s, u, d, m, y, w, P, M, D, z) => o.e(Th(h, e, n, s, u, d, m, y, w, P, !0, M, 0, z), { - u_texsize_icon: D, - u_texture_icon: 1 - }), - Ch = (h, e) => ({ - u_opacity: h, - u_color: e - }), - Sh = (h, e, n, s, u) => o.e((function(d, m, y, w) { - const P = y.imageManager.getPattern(d.from.toString()), - M = y.imageManager.getPattern(d.to.toString()), - { - width: D, - height: z - } = y.imageManager.getPixelSize(), - B = Math.pow(2, w.tileID.overscaledZ), - U = w.tileSize * Math.pow(2, y.transform.tileZoom) / B, - ee = U * (w.tileID.canonical.x + w.tileID.wrap * B), - J = U * w.tileID.canonical.y; - return { - u_image: 0, - u_pattern_tl_a: P.tl, - u_pattern_br_a: P.br, - u_pattern_tl_b: M.tl, - u_pattern_br_b: M.br, - u_texsize: [D, z], - u_mix: m.t, - u_pattern_size_a: P.displaySize, - u_pattern_size_b: M.displaySize, - u_scale_a: m.fromScale, - u_scale_b: m.toScale, - u_tile_units_to_pixels: 1 / o.aC(w, 1, y.transform.tileZoom), - u_pixel_coord_upper: [ee >> 16, J >> 16], - u_pixel_coord_lower: [65535 & ee, 65535 & J] - } - })(n, u, e, s), { - u_opacity: h - }), - Cc = (h, e) => {}, - Sc = { - fillExtrusion: (h, e) => ({ - u_lightpos: new o.bT(h, e.u_lightpos), - u_lightpos_globe: new o.bT(h, e.u_lightpos_globe), - u_lightintensity: new o.bg(h, e.u_lightintensity), - u_lightcolor: new o.bT(h, e.u_lightcolor), - u_vertical_gradient: new o.bg(h, e.u_vertical_gradient), - u_opacity: new o.bg(h, e.u_opacity), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillExtrusionPattern: (h, e) => ({ - u_lightpos: new o.bT(h, e.u_lightpos), - u_lightpos_globe: new o.bT(h, e.u_lightpos_globe), - u_lightintensity: new o.bg(h, e.u_lightintensity), - u_lightcolor: new o.bT(h, e.u_lightcolor), - u_vertical_gradient: new o.bg(h, e.u_vertical_gradient), - u_height_factor: new o.bg(h, e.u_height_factor), - u_opacity: new o.bg(h, e.u_opacity), - u_fill_translate: new o.bU(h, e.u_fill_translate), - u_image: new o.bP(h, e.u_image), - u_texsize: new o.bU(h, e.u_texsize), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade) - }), - fill: (h, e) => ({ - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillPattern: (h, e) => ({ - u_image: new o.bP(h, e.u_image), - u_texsize: new o.bU(h, e.u_texsize), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillOutline: (h, e) => ({ - u_world: new o.bU(h, e.u_world), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - fillOutlinePattern: (h, e) => ({ - u_world: new o.bU(h, e.u_world), - u_image: new o.bP(h, e.u_image), - u_texsize: new o.bU(h, e.u_texsize), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade), - u_fill_translate: new o.bU(h, e.u_fill_translate) - }), - circle: (h, e) => ({ - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_scale_with_map: new o.bP(h, e.u_scale_with_map), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_extrude_scale: new o.bU(h, e.u_extrude_scale), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_globe_extrude_scale: new o.bg(h, e.u_globe_extrude_scale), - u_translate: new o.bU(h, e.u_translate) - }), - collisionBox: (h, e) => ({ - u_pixel_extrude_scale: new o.bU(h, e.u_pixel_extrude_scale) - }), - collisionCircle: (h, e) => ({ - u_viewport_size: new o.bU(h, e.u_viewport_size) - }), - debug: (h, e) => ({ - u_color: new o.bQ(h, e.u_color), - u_overlay: new o.bP(h, e.u_overlay), - u_overlay_scale: new o.bg(h, e.u_overlay_scale) - }), - depth: Cc, - clippingMask: Cc, - heatmap: (h, e) => ({ - u_extrude_scale: new o.bg(h, e.u_extrude_scale), - u_intensity: new o.bg(h, e.u_intensity), - u_globe_extrude_scale: new o.bg(h, e.u_globe_extrude_scale) - }), - heatmapTexture: (h, e) => ({ - u_matrix: new o.bR(h, e.u_matrix), - u_world: new o.bU(h, e.u_world), - u_image: new o.bP(h, e.u_image), - u_color_ramp: new o.bP(h, e.u_color_ramp), - u_opacity: new o.bg(h, e.u_opacity) - }), - hillshade: (h, e) => ({ - u_image: new o.bP(h, e.u_image), - u_latrange: new o.bU(h, e.u_latrange), - u_exaggeration: new o.bg(h, e.u_exaggeration), - u_altitudes: new o.b_(h, e.u_altitudes), - u_azimuths: new o.b_(h, e.u_azimuths), - u_accent: new o.bQ(h, e.u_accent), - u_method: new o.bP(h, e.u_method), - u_shadows: new o.bZ(h, e.u_shadows), - u_highlights: new o.bZ(h, e.u_highlights) - }), - hillshadePrepare: (h, e) => ({ - u_matrix: new o.bR(h, e.u_matrix), - u_image: new o.bP(h, e.u_image), - u_dimension: new o.bU(h, e.u_dimension), - u_zoom: new o.bg(h, e.u_zoom), - u_unpack: new o.bS(h, e.u_unpack) - }), - colorRelief: (h, e) => ({ - u_image: new o.bP(h, e.u_image), - u_unpack: new o.bS(h, e.u_unpack), - u_dimension: new o.bU(h, e.u_dimension), - u_elevation_stops: new o.bP(h, e.u_elevation_stops), - u_color_stops: new o.bP(h, e.u_color_stops), - u_color_ramp_size: new o.bP(h, e.u_color_ramp_size), - u_opacity: new o.bg(h, e.u_opacity) - }), - line: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels) - }), - lineGradient: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels), - u_image: new o.bP(h, e.u_image), - u_image_height: new o.bg(h, e.u_image_height) - }), - linePattern: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_texsize: new o.bU(h, e.u_texsize), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_image: new o.bP(h, e.u_image), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels), - u_scale: new o.bT(h, e.u_scale), - u_fade: new o.bg(h, e.u_fade) - }), - lineSDF: (h, e) => ({ - u_translation: new o.bU(h, e.u_translation), - u_ratio: new o.bg(h, e.u_ratio), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_units_to_pixels: new o.bU(h, e.u_units_to_pixels), - u_patternscale_a: new o.bU(h, e.u_patternscale_a), - u_patternscale_b: new o.bU(h, e.u_patternscale_b), - u_sdfgamma: new o.bg(h, e.u_sdfgamma), - u_image: new o.bP(h, e.u_image), - u_tex_y_a: new o.bg(h, e.u_tex_y_a), - u_tex_y_b: new o.bg(h, e.u_tex_y_b), - u_mix: new o.bg(h, e.u_mix) - }), - raster: (h, e) => ({ - u_tl_parent: new o.bU(h, e.u_tl_parent), - u_scale_parent: new o.bg(h, e.u_scale_parent), - u_buffer_scale: new o.bg(h, e.u_buffer_scale), - u_fade_t: new o.bg(h, e.u_fade_t), - u_opacity: new o.bg(h, e.u_opacity), - u_image0: new o.bP(h, e.u_image0), - u_image1: new o.bP(h, e.u_image1), - u_brightness_low: new o.bg(h, e.u_brightness_low), - u_brightness_high: new o.bg(h, e.u_brightness_high), - u_saturation_factor: new o.bg(h, e.u_saturation_factor), - u_contrast_factor: new o.bg(h, e.u_contrast_factor), - u_spin_weights: new o.bT(h, e.u_spin_weights), - u_coords_top: new o.bS(h, e.u_coords_top), - u_coords_bottom: new o.bS(h, e.u_coords_bottom) - }), - symbolIcon: (h, e) => ({ - u_is_size_zoom_constant: new o.bP(h, e.u_is_size_zoom_constant), - u_is_size_feature_constant: new o.bP(h, e.u_is_size_feature_constant), - u_size_t: new o.bg(h, e.u_size_t), - u_size: new o.bg(h, e.u_size), - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_pitch: new o.bg(h, e.u_pitch), - u_rotate_symbol: new o.bP(h, e.u_rotate_symbol), - u_aspect_ratio: new o.bg(h, e.u_aspect_ratio), - u_fade_change: new o.bg(h, e.u_fade_change), - u_label_plane_matrix: new o.bR(h, e.u_label_plane_matrix), - u_coord_matrix: new o.bR(h, e.u_coord_matrix), - u_is_text: new o.bP(h, e.u_is_text), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_is_along_line: new o.bP(h, e.u_is_along_line), - u_is_variable_anchor: new o.bP(h, e.u_is_variable_anchor), - u_texsize: new o.bU(h, e.u_texsize), - u_texture: new o.bP(h, e.u_texture), - u_translation: new o.bU(h, e.u_translation), - u_pitched_scale: new o.bg(h, e.u_pitched_scale) - }), - symbolSDF: (h, e) => ({ - u_is_size_zoom_constant: new o.bP(h, e.u_is_size_zoom_constant), - u_is_size_feature_constant: new o.bP(h, e.u_is_size_feature_constant), - u_size_t: new o.bg(h, e.u_size_t), - u_size: new o.bg(h, e.u_size), - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_pitch: new o.bg(h, e.u_pitch), - u_rotate_symbol: new o.bP(h, e.u_rotate_symbol), - u_aspect_ratio: new o.bg(h, e.u_aspect_ratio), - u_fade_change: new o.bg(h, e.u_fade_change), - u_label_plane_matrix: new o.bR(h, e.u_label_plane_matrix), - u_coord_matrix: new o.bR(h, e.u_coord_matrix), - u_is_text: new o.bP(h, e.u_is_text), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_is_along_line: new o.bP(h, e.u_is_along_line), - u_is_variable_anchor: new o.bP(h, e.u_is_variable_anchor), - u_texsize: new o.bU(h, e.u_texsize), - u_texture: new o.bP(h, e.u_texture), - u_gamma_scale: new o.bg(h, e.u_gamma_scale), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_is_halo: new o.bP(h, e.u_is_halo), - u_translation: new o.bU(h, e.u_translation), - u_pitched_scale: new o.bg(h, e.u_pitched_scale) - }), - symbolTextAndIcon: (h, e) => ({ - u_is_size_zoom_constant: new o.bP(h, e.u_is_size_zoom_constant), - u_is_size_feature_constant: new o.bP(h, e.u_is_size_feature_constant), - u_size_t: new o.bg(h, e.u_size_t), - u_size: new o.bg(h, e.u_size), - u_camera_to_center_distance: new o.bg(h, e.u_camera_to_center_distance), - u_pitch: new o.bg(h, e.u_pitch), - u_rotate_symbol: new o.bP(h, e.u_rotate_symbol), - u_aspect_ratio: new o.bg(h, e.u_aspect_ratio), - u_fade_change: new o.bg(h, e.u_fade_change), - u_label_plane_matrix: new o.bR(h, e.u_label_plane_matrix), - u_coord_matrix: new o.bR(h, e.u_coord_matrix), - u_is_text: new o.bP(h, e.u_is_text), - u_pitch_with_map: new o.bP(h, e.u_pitch_with_map), - u_is_along_line: new o.bP(h, e.u_is_along_line), - u_is_variable_anchor: new o.bP(h, e.u_is_variable_anchor), - u_texsize: new o.bU(h, e.u_texsize), - u_texsize_icon: new o.bU(h, e.u_texsize_icon), - u_texture: new o.bP(h, e.u_texture), - u_texture_icon: new o.bP(h, e.u_texture_icon), - u_gamma_scale: new o.bg(h, e.u_gamma_scale), - u_device_pixel_ratio: new o.bg(h, e.u_device_pixel_ratio), - u_is_halo: new o.bP(h, e.u_is_halo), - u_translation: new o.bU(h, e.u_translation), - u_pitched_scale: new o.bg(h, e.u_pitched_scale) - }), - background: (h, e) => ({ - u_opacity: new o.bg(h, e.u_opacity), - u_color: new o.bQ(h, e.u_color) - }), - backgroundPattern: (h, e) => ({ - u_opacity: new o.bg(h, e.u_opacity), - u_image: new o.bP(h, e.u_image), - u_pattern_tl_a: new o.bU(h, e.u_pattern_tl_a), - u_pattern_br_a: new o.bU(h, e.u_pattern_br_a), - u_pattern_tl_b: new o.bU(h, e.u_pattern_tl_b), - u_pattern_br_b: new o.bU(h, e.u_pattern_br_b), - u_texsize: new o.bU(h, e.u_texsize), - u_mix: new o.bg(h, e.u_mix), - u_pattern_size_a: new o.bU(h, e.u_pattern_size_a), - u_pattern_size_b: new o.bU(h, e.u_pattern_size_b), - u_scale_a: new o.bg(h, e.u_scale_a), - u_scale_b: new o.bg(h, e.u_scale_b), - u_pixel_coord_upper: new o.bU(h, e.u_pixel_coord_upper), - u_pixel_coord_lower: new o.bU(h, e.u_pixel_coord_lower), - u_tile_units_to_pixels: new o.bg(h, e.u_tile_units_to_pixels) - }), - terrain: (h, e) => ({ - u_texture: new o.bP(h, e.u_texture), - u_ele_delta: new o.bg(h, e.u_ele_delta), - u_fog_matrix: new o.bR(h, e.u_fog_matrix), - u_fog_color: new o.bQ(h, e.u_fog_color), - u_fog_ground_blend: new o.bg(h, e.u_fog_ground_blend), - u_fog_ground_blend_opacity: new o.bg(h, e.u_fog_ground_blend_opacity), - u_horizon_color: new o.bQ(h, e.u_horizon_color), - u_horizon_fog_blend: new o.bg(h, e.u_horizon_fog_blend), - u_is_globe_mode: new o.bg(h, e.u_is_globe_mode) - }), - terrainDepth: (h, e) => ({ - u_ele_delta: new o.bg(h, e.u_ele_delta) - }), - terrainCoords: (h, e) => ({ - u_texture: new o.bP(h, e.u_texture), - u_terrain_coords_id: new o.bg(h, e.u_terrain_coords_id), - u_ele_delta: new o.bg(h, e.u_ele_delta) - }), - projectionErrorMeasurement: (h, e) => ({ - u_input: new o.bg(h, e.u_input), - u_output_expected: new o.bg(h, e.u_output_expected) - }), - atmosphere: (h, e) => ({ - u_sun_pos: new o.bT(h, e.u_sun_pos), - u_atmosphere_blend: new o.bg(h, e.u_atmosphere_blend), - u_globe_position: new o.bT(h, e.u_globe_position), - u_globe_radius: new o.bg(h, e.u_globe_radius), - u_inv_proj_matrix: new o.bR(h, e.u_inv_proj_matrix) - }), - sky: (h, e) => ({ - u_sky_color: new o.bQ(h, e.u_sky_color), - u_horizon_color: new o.bQ(h, e.u_horizon_color), - u_horizon: new o.bU(h, e.u_horizon), - u_horizon_normal: new o.bU(h, e.u_horizon_normal), - u_sky_horizon_blend: new o.bg(h, e.u_sky_horizon_blend), - u_sky_blend: new o.bg(h, e.u_sky_blend) - }) - }; - class Ph { - constructor(e, n, s) { - this.context = e; - const u = e.gl; - this.buffer = u.createBuffer(), this.dynamicDraw = !!s, this.context.unbindVAO(), e.bindElementBuffer.set(this.buffer), u.bufferData(u.ELEMENT_ARRAY_BUFFER, n.arrayBuffer, this.dynamicDraw ? u.DYNAMIC_DRAW : u.STATIC_DRAW), this.dynamicDraw || delete n.arrayBuffer - } - bind() { - this.context.bindElementBuffer.set(this.buffer) - } - updateData(e) { - const n = this.context.gl; - if (!this.dynamicDraw) throw new Error("Attempted to update data while not in dynamic mode."); - this.context.unbindVAO(), this.bind(), n.bufferSubData(n.ELEMENT_ARRAY_BUFFER, 0, e.arrayBuffer) - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer) - } - } - const ol = { - Int8: "BYTE", - Uint8: "UNSIGNED_BYTE", - Int16: "SHORT", - Uint16: "UNSIGNED_SHORT", - Int32: "INT", - Uint32: "UNSIGNED_INT", - Float32: "FLOAT" - }; - class $a { - constructor(e, n, s, u) { - this.length = n.length, this.attributes = s, this.itemSize = n.bytesPerElement, this.dynamicDraw = u, this.context = e; - const d = e.gl; - this.buffer = d.createBuffer(), e.bindVertexBuffer.set(this.buffer), d.bufferData(d.ARRAY_BUFFER, n.arrayBuffer, this.dynamicDraw ? d.DYNAMIC_DRAW : d.STATIC_DRAW), this.dynamicDraw || delete n.arrayBuffer - } - bind() { - this.context.bindVertexBuffer.set(this.buffer) - } - updateData(e) { - if (e.length !== this.length) throw new Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`); - const n = this.context.gl; - this.bind(), n.bufferSubData(n.ARRAY_BUFFER, 0, e.arrayBuffer) - } - enableAttributes(e, n) { - for (let s = 0; s < this.attributes.length; s++) { - const u = n.attributes[this.attributes[s].name]; - u !== void 0 && e.enableVertexAttribArray(u) - } - } - setVertexAttribPointers(e, n, s) { - for (let u = 0; u < this.attributes.length; u++) { - const d = this.attributes[u], - m = n.attributes[d.name]; - m !== void 0 && e.vertexAttribPointer(m, d.components, e[ol[d.type]], !1, this.itemSize, d.offset + this.itemSize * (s || 0)) - } - } - destroy() { - this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer) - } - } - class vi { - constructor(e) { - this.gl = e.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = !1 - } - get() { - return this.current - } - set(e) {} - getDefault() { - return this.default - } - setDefault() { - this.set(this.default) - } - } - class Pc extends vi { - getDefault() { - return o.bf.transparent - } - set(e) { - const n = this.current; - (e.r !== n.r || e.g !== n.g || e.b !== n.b || e.a !== n.a || this.dirty) && (this.gl.clearColor(e.r, e.g, e.b, e.a), this.current = e, this.dirty = !1) - } - } - class Ic extends vi { - getDefault() { - return 1 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.clearDepth(e), this.current = e, this.dirty = !1) - } - } - class Ih extends vi { - getDefault() { - return 0 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.clearStencil(e), this.current = e, this.dirty = !1) - } - } - class Mc extends vi { - getDefault() { - return [!0, !0, !0, !0] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || e[2] !== n[2] || e[3] !== n[3] || this.dirty) && (this.gl.colorMask(e[0], e[1], e[2], e[3]), this.current = e, this.dirty = !1) - } - } - class vs extends vi { - getDefault() { - return !0 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.depthMask(e), this.current = e, this.dirty = !1) - } - } - class Ac extends vi { - getDefault() { - return 255 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.stencilMask(e), this.current = e, this.dirty = !1) - } - } - class op extends vi { - getDefault() { - return { - func: this.gl.ALWAYS, - ref: 0, - mask: 255 - } - } - set(e) { - const n = this.current; - (e.func !== n.func || e.ref !== n.ref || e.mask !== n.mask || this.dirty) && (this.gl.stencilFunc(e.func, e.ref, e.mask), this.current = e, this.dirty = !1) - } - } - class lp extends vi { - getDefault() { - const e = this.gl; - return [e.KEEP, e.KEEP, e.KEEP] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || e[2] !== n[2] || this.dirty) && (this.gl.stencilOp(e[0], e[1], e[2]), this.current = e, this.dirty = !1) - } - } - class cp extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.STENCIL_TEST) : n.disable(n.STENCIL_TEST), this.current = e, this.dirty = !1 - } - } - class up extends vi { - getDefault() { - return [0, 1] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || this.dirty) && (this.gl.depthRange(e[0], e[1]), this.current = e, this.dirty = !1) - } - } - class Mh extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.DEPTH_TEST) : n.disable(n.DEPTH_TEST), this.current = e, this.dirty = !1 - } - } - class hp extends vi { - getDefault() { - return this.gl.LESS - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.depthFunc(e), this.current = e, this.dirty = !1) - } - } - class Ah extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.BLEND) : n.disable(n.BLEND), this.current = e, this.dirty = !1 - } - } - class ll extends vi { - getDefault() { - const e = this.gl; - return [e.ONE, e.ZERO] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || this.dirty) && (this.gl.blendFunc(e[0], e[1]), this.current = e, this.dirty = !1) - } - } - class cl extends vi { - getDefault() { - return o.bf.transparent - } - set(e) { - const n = this.current; - (e.r !== n.r || e.g !== n.g || e.b !== n.b || e.a !== n.a || this.dirty) && (this.gl.blendColor(e.r, e.g, e.b, e.a), this.current = e, this.dirty = !1) - } - } - class ul extends vi { - getDefault() { - return this.gl.FUNC_ADD - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.blendEquation(e), this.current = e, this.dirty = !1) - } - } - class kc extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - e ? n.enable(n.CULL_FACE) : n.disable(n.CULL_FACE), this.current = e, this.dirty = !1 - } - } - class ys extends vi { - getDefault() { - return this.gl.BACK - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.cullFace(e), this.current = e, this.dirty = !1) - } - } - class bo extends vi { - getDefault() { - return this.gl.CCW - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.frontFace(e), this.current = e, this.dirty = !1) - } - } - class Os extends vi { - getDefault() { - return null - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.useProgram(e), this.current = e, this.dirty = !1) - } - } - class ca extends vi { - getDefault() { - return this.gl.TEXTURE0 - } - set(e) { - (e !== this.current || this.dirty) && (this.gl.activeTexture(e), this.current = e, this.dirty = !1) - } - } - class kh extends vi { - getDefault() { - const e = this.gl; - return [0, 0, e.drawingBufferWidth, e.drawingBufferHeight] - } - set(e) { - const n = this.current; - (e[0] !== n[0] || e[1] !== n[1] || e[2] !== n[2] || e[3] !== n[3] || this.dirty) && (this.gl.viewport(e[0], e[1], e[2], e[3]), this.current = e, this.dirty = !1) - } - } - class Eh extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindFramebuffer(n.FRAMEBUFFER, e), this.current = e, this.dirty = !1 - } - } - class Ec extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindRenderbuffer(n.RENDERBUFFER, e), this.current = e, this.dirty = !1 - } - } - class xs extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindTexture(n.TEXTURE_2D, e), this.current = e, this.dirty = !1 - } - } - class hl extends vi { - getDefault() { - return null - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.bindBuffer(n.ARRAY_BUFFER, e), this.current = e, this.dirty = !1 - } - } - class dl extends vi { - getDefault() { - return null - } - set(e) { - const n = this.gl; - n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, e), this.current = e, this.dirty = !1 - } - } - class wo extends vi { - getDefault() { - return null - } - set(e) { - var n; - if (e === this.current && !this.dirty) return; - const s = this.gl; - Ra(s) ? s.bindVertexArray(e) : (n = s.getExtension("OES_vertex_array_object")) === null || n === void 0 || n.bindVertexArrayOES(e), this.current = e, this.dirty = !1 - } - } - class pl extends vi { - getDefault() { - return 4 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.pixelStorei(n.UNPACK_ALIGNMENT, e), this.current = e, this.dirty = !1 - } - } - class zh extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e), this.current = e, this.dirty = !1 - } - } - class Ns extends vi { - getDefault() { - return !1 - } - set(e) { - if (e === this.current && !this.dirty) return; - const n = this.gl; - n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL, e), this.current = e, this.dirty = !1 - } - } - class rs extends vi { - constructor(e, n) { - super(e), this.context = e, this.parent = n - } - getDefault() { - return null - } - } - class Lh extends rs { - setDirty() { - this.dirty = !0 - } - set(e) { - if (e === this.current && !this.dirty) return; - this.context.bindFramebuffer.set(this.parent); - const n = this.gl; - n.framebufferTexture2D(n.FRAMEBUFFER, n.COLOR_ATTACHMENT0, n.TEXTURE_2D, e, 0), this.current = e, this.dirty = !1 - } - } - class zc extends rs { - set(e) { - if (e === this.current && !this.dirty) return; - this.context.bindFramebuffer.set(this.parent); - const n = this.gl; - n.framebufferRenderbuffer(n.FRAMEBUFFER, n.DEPTH_ATTACHMENT, n.RENDERBUFFER, e), this.current = e, this.dirty = !1 - } - } - class ii extends rs { - set(e) { - if (e === this.current && !this.dirty) return; - this.context.bindFramebuffer.set(this.parent); - const n = this.gl; - n.framebufferRenderbuffer(n.FRAMEBUFFER, n.DEPTH_STENCIL_ATTACHMENT, n.RENDERBUFFER, e), this.current = e, this.dirty = !1 - } - } - const To = "Framebuffer is not complete"; - class dp { - constructor(e, n, s, u, d) { - this.context = e, this.width = n, this.height = s; - const m = e.gl, - y = this.framebuffer = m.createFramebuffer(); - if (this.colorAttachment = new Lh(e, y), u) this.depthAttachment = d ? new ii(e, y) : new zc(e, y); - else if (d) throw new Error("Stencil cannot be set without depth"); - if (m.checkFramebufferStatus(m.FRAMEBUFFER) !== m.FRAMEBUFFER_COMPLETE) throw new Error(To) - } - destroy() { - const e = this.context.gl, - n = this.colorAttachment.get(); - if (n && e.deleteTexture(n), this.depthAttachment) { - const s = this.depthAttachment.get(); - s && e.deleteRenderbuffer(s) - } - e.deleteFramebuffer(this.framebuffer) - } - } - class Dh { - constructor(e) { - var n, s; - if (this.gl = e, this.clearColor = new Pc(this), this.clearDepth = new Ic(this), this.clearStencil = new Ih(this), this.colorMask = new Mc(this), this.depthMask = new vs(this), this.stencilMask = new Ac(this), this.stencilFunc = new op(this), this.stencilOp = new lp(this), this.stencilTest = new cp(this), this.depthRange = new up(this), this.depthTest = new Mh(this), this.depthFunc = new hp(this), this.blend = new Ah(this), this.blendFunc = new ll(this), this.blendColor = new cl(this), this.blendEquation = new ul(this), this.cullFace = new kc(this), this.cullFaceSide = new ys(this), this.frontFace = new bo(this), this.program = new Os(this), this.activeTexture = new ca(this), this.viewport = new kh(this), this.bindFramebuffer = new Eh(this), this.bindRenderbuffer = new Ec(this), this.bindTexture = new xs(this), this.bindVertexBuffer = new hl(this), this.bindElementBuffer = new dl(this), this.bindVertexArray = new wo(this), this.pixelStoreUnpack = new pl(this), this.pixelStoreUnpackPremultiplyAlpha = new zh(this), this.pixelStoreUnpackFlipY = new Ns(this), this.extTextureFilterAnisotropic = e.getExtension("EXT_texture_filter_anisotropic") || e.getExtension("MOZ_EXT_texture_filter_anisotropic") || e.getExtension("WEBKIT_EXT_texture_filter_anisotropic"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.maxTextureSize = e.getParameter(e.MAX_TEXTURE_SIZE), Ra(e)) { - this.HALF_FLOAT = e.HALF_FLOAT; - const u = e.getExtension("EXT_color_buffer_half_float"); - this.RGBA16F = (n = e.RGBA16F) !== null && n !== void 0 ? n : u == null ? void 0 : u.RGBA16F_EXT, this.RGB16F = (s = e.RGB16F) !== null && s !== void 0 ? s : u == null ? void 0 : u.RGB16F_EXT, e.getExtension("EXT_color_buffer_float") - } else { - e.getExtension("EXT_color_buffer_half_float"), e.getExtension("OES_texture_half_float_linear"); - const u = e.getExtension("OES_texture_half_float"); - this.HALF_FLOAT = u == null ? void 0 : u.HALF_FLOAT_OES - } - } - setDefault() { - this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault() - } - setDirty() { - this.clearColor.dirty = !0, this.clearDepth.dirty = !0, this.clearStencil.dirty = !0, this.colorMask.dirty = !0, this.depthMask.dirty = !0, this.stencilMask.dirty = !0, this.stencilFunc.dirty = !0, this.stencilOp.dirty = !0, this.stencilTest.dirty = !0, this.depthRange.dirty = !0, this.depthTest.dirty = !0, this.depthFunc.dirty = !0, this.blend.dirty = !0, this.blendFunc.dirty = !0, this.blendColor.dirty = !0, this.blendEquation.dirty = !0, this.cullFace.dirty = !0, this.cullFaceSide.dirty = !0, this.frontFace.dirty = !0, this.program.dirty = !0, this.activeTexture.dirty = !0, this.viewport.dirty = !0, this.bindFramebuffer.dirty = !0, this.bindRenderbuffer.dirty = !0, this.bindTexture.dirty = !0, this.bindVertexBuffer.dirty = !0, this.bindElementBuffer.dirty = !0, this.bindVertexArray.dirty = !0, this.pixelStoreUnpack.dirty = !0, this.pixelStoreUnpackPremultiplyAlpha.dirty = !0, this.pixelStoreUnpackFlipY.dirty = !0 - } - createIndexBuffer(e, n) { - return new Ph(this, e, n) - } - createVertexBuffer(e, n, s) { - return new $a(this, e, n, s) - } - createRenderbuffer(e, n, s) { - const u = this.gl, - d = u.createRenderbuffer(); - return this.bindRenderbuffer.set(d), u.renderbufferStorage(u.RENDERBUFFER, e, n, s), this.bindRenderbuffer.set(null), d - } - createFramebuffer(e, n, s, u) { - return new dp(this, e, n, s, u) - } - clear({ - color: e, - depth: n, - stencil: s - }) { - const u = this.gl; - let d = 0; - e && (d |= u.COLOR_BUFFER_BIT, this.clearColor.set(e), this.colorMask.set([!0, !0, !0, !0])), n !== void 0 && (d |= u.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(n), this.depthMask.set(!0)), s !== void 0 && (d |= u.STENCIL_BUFFER_BIT, this.clearStencil.set(s), this.stencilMask.set(255)), u.clear(d) - } - setCullFace(e) { - e.enable === !1 ? this.cullFace.set(!1) : (this.cullFace.set(!0), this.cullFaceSide.set(e.mode), this.frontFace.set(e.frontFace)) - } - setDepthMode(e) { - e.func !== this.gl.ALWAYS || e.mask ? (this.depthTest.set(!0), this.depthFunc.set(e.func), this.depthMask.set(e.mask), this.depthRange.set(e.range)) : this.depthTest.set(!1) - } - setStencilMode(e) { - e.test.func !== this.gl.ALWAYS || e.mask ? (this.stencilTest.set(!0), this.stencilMask.set(e.mask), this.stencilOp.set([e.fail, e.depthFail, e.pass]), this.stencilFunc.set({ - func: e.test.func, - ref: e.ref, - mask: e.test.mask - })) : this.stencilTest.set(!1) - } - setColorMode(e) { - o.bH(e.blendFunction, Ti.Replace) ? this.blend.set(!1) : (this.blend.set(!0), this.blendFunc.set(e.blendFunction), this.blendColor.set(e.blendColor)), this.colorMask.set(e.mask) - } - createVertexArray() { - var e; - return Ra(this.gl) ? this.gl.createVertexArray() : (e = this.gl.getExtension("OES_vertex_array_object")) === null || e === void 0 ? void 0 : e.createVertexArrayOES() - } - deleteVertexArray(e) { - var n; - return Ra(this.gl) ? this.gl.deleteVertexArray(e) : (n = this.gl.getExtension("OES_vertex_array_object")) === null || n === void 0 ? void 0 : n.deleteVertexArrayOES(e) - } - unbindVAO() { - this.bindVertexArray.set(null) - } - } - let is; - - function Rh(h, e, n, s, u) { - const d = h.context, - m = h.transform, - y = d.gl, - w = h.useProgram("collisionBox"), - P = []; - let M = 0, - D = 0; - for (let re = 0; re < s.length; re++) { - const se = s[re], - de = e.getTile(se).getBucket(n); - if (!de) continue; - const ue = u ? de.textCollisionBox : de.iconCollisionBox, - ge = de.collisionCircleArray; - ge.length > 0 && (P.push({ - circleArray: ge, - circleOffset: D, - coord: se - }), M += ge.length / 4, D = M), ue && w.draw(d, y.LINES, Vr.disabled, hi.disabled, h.colorModeForRenderPass(), wr.disabled, al(h.transform), h.style.map.terrain && h.style.map.terrain.getTerrainData(se), m.getProjectionData({ - overscaledTileID: se, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }), n.id, ue.layoutVertexBuffer, ue.indexBuffer, ue.segments, null, h.transform.zoom, null, null, ue.collisionVertexBuffer) - } - if (!u || !P.length) return; - const z = h.useProgram("collisionCircle"), - B = new o.b$; - B.resize(4 * M), B._trim(); - let U = 0; - for (const re of P) - for (let se = 0; se < re.circleArray.length / 4; se++) { - const de = 4 * se, - ue = re.circleArray[de + 0], - ge = re.circleArray[de + 1], - Te = re.circleArray[de + 2], - he = re.circleArray[de + 3]; - B.emplace(U++, ue, ge, Te, he, 0), B.emplace(U++, ue, ge, Te, he, 1), B.emplace(U++, ue, ge, Te, he, 2), B.emplace(U++, ue, ge, Te, he, 3) - }(!is || is.length < 2 * M) && (is = (function(re) { - const se = 2 * re, - de = new o.c1; - de.resize(se), de._trim(); - for (let ue = 0; ue < se; ue++) { - const ge = 6 * ue; - de.uint16[ge + 0] = 4 * ue + 0, de.uint16[ge + 1] = 4 * ue + 1, de.uint16[ge + 2] = 4 * ue + 2, de.uint16[ge + 3] = 4 * ue + 2, de.uint16[ge + 4] = 4 * ue + 3, de.uint16[ge + 5] = 4 * ue + 0 - } - return de - })(M)); - const ee = d.createIndexBuffer(is, !0), - J = d.createVertexBuffer(B, o.c0.members, !0); - for (const re of P) { - const se = ip(h.transform); - z.draw(d, y.TRIANGLES, Vr.disabled, hi.disabled, h.colorModeForRenderPass(), wr.disabled, se, h.style.map.terrain && h.style.map.terrain.getTerrainData(re.coord), null, n.id, J, ee, o.aM.simpleSegment(0, 2 * re.circleOffset, re.circleArray.length, re.circleArray.length / 2), null, h.transform.zoom, null, null, null) - } - J.destroy(), ee.destroy() - } - const pp = o.ag(new Float32Array(16)); - - function Bh(h, e, n, s, u, d) { - const { - horizontalAlign: m, - verticalAlign: y - } = o.aH(h); - return new o.P((-(m - .5) * e / u + s[0]) * d, (-(y - .5) * n / u + s[1]) * d) - } - - function fp(h, e, n, s, u, d) { - const m = e.tileAnchorPoint.add(new o.P(e.translation[0], e.translation[1])); - if (e.pitchWithMap) { - let y = s.mult(d); - n || (y = y.rotate(-u)); - const w = m.add(y); - return ai(w.x, w.y, e.pitchedLabelPlaneMatrix, e.getElevation).point - } - if (n) { - const y = Dr(e.tileAnchorPoint.x + 1, e.tileAnchorPoint.y, e).point.sub(h), - w = Math.atan(y.y / y.x) + (y.x < 0 ? Math.PI : 0); - return h.add(s.rotate(w)) - } - return h.add(s) - } - - function Lc(h, e, n, s, u, d, m, y, w, P, M, D) { - const z = h.text.placedSymbolArray, - B = h.text.dynamicLayoutVertexArray, - U = h.icon.dynamicLayoutVertexArray, - ee = {}; - B.clear(); - for (let J = 0; J < z.length; J++) { - const re = z.get(J), - se = re.hidden || !re.crossTileID || h.allowVerticalPlacement && !re.placedOrientation ? null : s[re.crossTileID]; - if (se) { - const de = new o.P(re.anchorX, re.anchorY), - ue = { - getElevation: D, - width: u.width, - height: u.height, - pitchedLabelPlaneMatrix: d, - pitchWithMap: n, - transform: u, - tileAnchorPoint: de, - translation: P, - unwrappedTileID: M - }, - ge = n ? li(de.x, de.y, ue) : Dr(de.x, de.y, ue), - Te = Tt(u.cameraToCenterDistance, ge.signedDistanceFromCamera); - let he = o.ap(h.textSizeData, y, re) * Te / o.aB; - n && (he *= h.tilePixelRatio / m); - const { - width: De, - height: He, - anchor: je, - textOffset: qe, - textBoxScale: $e - } = se, Rt = Bh(je, De, He, qe, $e, he), Nt = u.getPitchedTextCorrection(de.x + P[0], de.y + P[1], M), yt = fp(ge.point, ue, e, Rt, -u.bearingInRadians, Nt), sr = h.allowVerticalPlacement && re.placedOrientation === o.ao.vertical ? Math.PI / 2 : 0; - for (let Xr = 0; Xr < re.numGlyphs; Xr++) o.av(B, yt, sr); - w && re.associatedIconIndex >= 0 && (ee[re.associatedIconIndex] = { - shiftedAnchor: yt, - angle: sr - }) - } else mi(re.numGlyphs, B) - } - if (w) { - U.clear(); - const J = h.icon.placedSymbolArray; - for (let re = 0; re < J.length; re++) { - const se = J.get(re); - if (se.hidden) mi(se.numGlyphs, U); - else { - const de = ee[re]; - if (de) - for (let ue = 0; ue < se.numGlyphs; ue++) o.av(U, de.shiftedAnchor, de.angle); - else mi(se.numGlyphs, U) - } - } - h.icon.dynamicLayoutVertexBuffer.updateData(U) - } - h.text.dynamicLayoutVertexBuffer.updateData(B) - } - - function fl(h, e, n) { - return n.iconsInText && e ? "symbolTextAndIcon" : h ? "symbolSDF" : "symbolIcon" - } - - function Co(h, e, n, s, u, d, m, y, w, P, M, D, z) { - const B = h.context, - U = B.gl, - ee = h.transform, - J = y === "map", - re = w === "map", - se = y !== "viewport" && n.layout.get("symbol-placement") !== "point", - de = J && !re && !se, - ue = !n.layout.get("symbol-sort-key").isConstant(); - let ge = !1; - const Te = h.getDepthModeForSublayer(0, Vr.ReadOnly), - he = n._unevaluatedLayout.hasValue("text-variable-anchor") || n._unevaluatedLayout.hasValue("text-variable-anchor-offset"), - De = [], - He = ee.getCircleRadiusCorrection(); - for (const je of s) { - const qe = e.getTile(je), - $e = qe.getBucket(n); - if (!$e) continue; - const Rt = u ? $e.text : $e.icon; - if (!Rt || !Rt.segments.get().length || !Rt.hasVisibleVertices) continue; - const Nt = Rt.programConfigurations.get(n.id), - yt = u || $e.sdfIcons, - sr = u ? $e.textSizeData : $e.iconSizeData, - Xr = re || ee.pitch !== 0, - xi = h.useProgram(fl(yt, u, $e), Nt), - ki = o.an(sr, ee.zoom), - Pi = h.style.map.terrain && h.style.map.terrain.getTerrainData(je); - let ji, Ui, Wr, Ei, Qi = [0, 0], - dn = null; - if (u) Ui = qe.glyphAtlasTexture, Wr = U.LINEAR, ji = qe.glyphAtlasTexture.size, $e.iconsInText && (Qi = qe.imageAtlasTexture.size, dn = qe.imageAtlasTexture, Ei = Xr || h.options.rotating || h.options.zooming || sr.kind === "composite" || sr.kind === "camera" ? U.LINEAR : U.NEAREST); - else { - const en = n.layout.get("icon-size").constantOr(0) !== 1 || $e.iconsNeedLinear; - Ui = qe.imageAtlasTexture, Wr = yt || h.options.rotating || h.options.zooming || en || Xr ? U.LINEAR : U.NEAREST, ji = qe.imageAtlasTexture.size - } - const xn = o.aC(qe, 1, h.transform.zoom), - qn = $r(J, h.transform, xn), - Sa = o.L(); - o.aq(Sa, qn); - const as = mr(re, J, h.transform, xn), - ss = o.aD(ee, qe, d, m), - Ys = ee.getProjectionData({ - overscaledTileID: je, - applyGlobeMatrix: !z, - applyTerrainMatrix: !0 - }), - Js = he && $e.hasTextData(), - Is = n.layout.get("icon-text-fit") !== "none" && Js && $e.hasIconData(); - if (se) { - const en = h.style.map.terrain ? (da, tn) => h.style.map.terrain.getElevation(je, da, tn) : null, - pn = n.layout.get("text-rotation-alignment") === "map"; - di($e, h, u, qn, Sa, re, P, pn, je.toUnwrapped(), ee.width, ee.height, ss, en) - } - const Ms = u && he || Is, - Kn = se || Ms ? pp : re ? qn : h.transform.clipSpaceToPixelsMatrix, - Pa = yt && n.paint.get(u ? "text-halo-width" : "icon-halo-width").constantOr(1) !== 0; - let Vn; - Vn = yt ? $e.iconsInText ? sp(sr.kind, ki, de, re, se, Ms, h, Kn, as, ss, ji, Qi, He) : Th(sr.kind, ki, de, re, se, Ms, h, Kn, as, ss, u, ji, 0, He) : xo(sr.kind, ki, de, re, se, Ms, h, Kn, as, ss, u, ji, He); - const os = { - program: xi, - buffers: Rt, - uniformValues: Vn, - projectionData: Ys, - atlasTexture: Ui, - atlasTextureIcon: dn, - atlasInterpolation: Wr, - atlasInterpolationIcon: Ei, - isSDF: yt, - hasHalo: Pa - }; - if (ue && $e.canOverlap) { - ge = !0; - const en = Rt.segments.get(); - for (const pn of en) De.push({ - segments: new o.aM([pn]), - sortKey: pn.sortKey, - state: os, - terrainData: Pi - }) - } else De.push({ - segments: Rt.segments, - sortKey: 0, - state: os, - terrainData: Pi - }) - } - ge && De.sort(((je, qe) => je.sortKey - qe.sortKey)); - for (const je of De) { - const qe = je.state; - if (B.activeTexture.set(U.TEXTURE0), qe.atlasTexture.bind(qe.atlasInterpolation, U.CLAMP_TO_EDGE), qe.atlasTextureIcon && (B.activeTexture.set(U.TEXTURE1), qe.atlasTextureIcon && qe.atlasTextureIcon.bind(qe.atlasInterpolationIcon, U.CLAMP_TO_EDGE)), qe.isSDF) { - const $e = qe.uniformValues; - qe.hasHalo && ($e.u_is_halo = 1, So(qe.buffers, je.segments, n, h, qe.program, Te, M, D, $e, qe.projectionData, je.terrainData)), $e.u_is_halo = 0 - } - So(qe.buffers, je.segments, n, h, qe.program, Te, M, D, qe.uniformValues, qe.projectionData, je.terrainData) - } - } - - function So(h, e, n, s, u, d, m, y, w, P, M) { - const D = s.context; - u.draw(D, D.gl.TRIANGLES, d, m, y, wr.backCCW, w, M, P, n.id, h.layoutVertexBuffer, h.indexBuffer, e, n.paint, s.transform.zoom, h.programConfigurations.get(n.id), h.dynamicLayoutVertexBuffer, h.opacityVertexBuffer) - } - - function Dc(h, e, n, s, u) { - const d = h.context, - m = d.gl, - y = hi.disabled, - w = new Ti([m.ONE, m.ONE], o.bf.transparent, [!0, !0, !0, !0]), - P = e.getBucket(n); - if (!P) return; - const M = s.key; - let D = n.heatmapFbos.get(M); - D || (D = Po(d, e.tileSize, e.tileSize), n.heatmapFbos.set(M, D)), d.bindFramebuffer.set(D.framebuffer), d.viewport.set([0, 0, e.tileSize, e.tileSize]), d.clear({ - color: o.bf.transparent - }); - const z = P.programConfigurations.get(n.id), - B = h.useProgram("heatmap", z, !u), - U = h.transform.getProjectionData({ - overscaledTileID: e.tileID, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }), - ee = h.style.map.terrain.getTerrainData(s); - B.draw(d, m.TRIANGLES, Vr.disabled, y, w, wr.disabled, vh(e, h.transform.zoom, n.paint.get("heatmap-intensity"), 1), ee, U, n.id, P.layoutVertexBuffer, P.indexBuffer, P.segments, n.paint, h.transform.zoom, z) - } - - function Fh(h, e, n, s, u) { - const d = h.context, - m = d.gl, - y = h.transform; - d.setColorMode(h.colorModeForRenderPass()); - const w = Io(d, e), - P = n.key, - M = e.heatmapFbos.get(P); - if (!M) return; - d.activeTexture.set(m.TEXTURE0), m.bindTexture(m.TEXTURE_2D, M.colorAttachment.get()), d.activeTexture.set(m.TEXTURE1), w.bind(m.LINEAR, m.CLAMP_TO_EDGE); - const D = y.getProjectionData({ - overscaledTileID: n, - applyTerrainMatrix: u, - applyGlobeMatrix: !s - }); - h.useProgram("heatmapTexture").draw(d, m.TRIANGLES, Vr.disabled, hi.disabled, h.colorModeForRenderPass(), wr.disabled, xc(h, e, 0, 1), null, D, e.id, h.rasterBoundsBuffer, h.quadTriangleIndexBuffer, h.rasterBoundsSegments, e.paint, y.zoom), M.destroy(), e.heatmapFbos.delete(P) - } - - function Po(h, e, n) { - var s, u; - const d = h.gl, - m = d.createTexture(); - d.bindTexture(d.TEXTURE_2D, m), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_WRAP_S, d.CLAMP_TO_EDGE), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_WRAP_T, d.CLAMP_TO_EDGE), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MIN_FILTER, d.LINEAR), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER, d.LINEAR); - const y = (s = h.HALF_FLOAT) !== null && s !== void 0 ? s : d.UNSIGNED_BYTE, - w = (u = h.RGBA16F) !== null && u !== void 0 ? u : d.RGBA; - d.texImage2D(d.TEXTURE_2D, 0, w, e, n, 0, d.RGBA, y, null); - const P = h.createFramebuffer(e, n, !1, !1); - return P.colorAttachment.set(m), P - } - - function Io(h, e) { - return e.colorRampTexture || (e.colorRampTexture = new o.T(h, e.colorRamp, h.gl.RGBA)), e.colorRampTexture - } - - function Mo(h, e, n, s, u) { - if (!n || !s || !s.imageAtlas) return; - const d = s.imageAtlas.patternPositions; - let m = d[n.to.toString()], - y = d[n.from.toString()]; - if (!m && y && (m = y), !y && m && (y = m), !m || !y) { - const w = u.getPaintProperty(e); - m = d[w], y = d[w] - } - m && y && h.setConstantPatternPositions(m, y) - } - - function ml(h, e, n, s, u, d, m, y) { - const w = h.context.gl, - P = "fill-pattern", - M = n.paint.get(P), - D = M && M.constantOr(1), - z = n.getCrossfadeParameters(); - let B, U, ee, J, re; - const se = h.transform, - de = n.paint.get("fill-translate"), - ue = n.paint.get("fill-translate-anchor"); - m ? (U = D && !n.getPaintProperty("fill-outline-color") ? "fillOutlinePattern" : "fillOutline", B = w.LINES) : (U = D ? "fillPattern" : "fill", B = w.TRIANGLES); - const ge = M.constantOr(null); - for (const Te of s) { - const he = e.getTile(Te); - if (D && !he.patternsLoaded()) continue; - const De = he.getBucket(n); - if (!De) continue; - const He = De.programConfigurations.get(n.id), - je = h.useProgram(U, He), - qe = h.style.map.terrain && h.style.map.terrain.getTerrainData(Te); - D && (h.context.activeTexture.set(w.TEXTURE0), he.imageAtlasTexture.bind(w.LINEAR, w.CLAMP_TO_EDGE), He.updatePaintBuffers(z)), Mo(He, P, ge, he, n); - const $e = se.getProjectionData({ - overscaledTileID: Te, - applyGlobeMatrix: !y, - applyTerrainMatrix: !0 - }), - Rt = o.aD(se, he, de, ue); - if (m) { - J = De.indexBuffer2, re = De.segments2; - const yt = [w.drawingBufferWidth, w.drawingBufferHeight]; - ee = U === "fillOutlinePattern" && D ? vo(h, z, he, yt, Rt) : go(yt, Rt) - } else J = De.indexBuffer, re = De.segments, ee = D ? nl(h, z, he, Rt) : { - u_fill_translate: Rt - }; - const Nt = h.stencilModeForClipping(Te); - je.draw(h.context, B, u, Nt, d, wr.backCCW, ee, qe, $e, n.id, De.layoutVertexBuffer, J, re, n.paint, h.transform.zoom, He) - } - } - - function Rc(h, e, n, s, u, d, m, y) { - const w = h.context, - P = w.gl, - M = "fill-extrusion-pattern", - D = n.paint.get(M), - z = D.constantOr(1), - B = n.getCrossfadeParameters(), - U = n.paint.get("fill-extrusion-opacity"), - ee = D.constantOr(null), - J = h.transform; - for (const re of s) { - const se = e.getTile(re), - de = se.getBucket(n); - if (!de) continue; - const ue = h.style.map.terrain && h.style.map.terrain.getTerrainData(re), - ge = de.programConfigurations.get(n.id), - Te = h.useProgram(z ? "fillExtrusionPattern" : "fillExtrusion", ge); - z && (h.context.activeTexture.set(P.TEXTURE0), se.imageAtlasTexture.bind(P.LINEAR, P.CLAMP_TO_EDGE), ge.updatePaintBuffers(B)); - const he = J.getProjectionData({ - overscaledTileID: re, - applyGlobeMatrix: !y, - applyTerrainMatrix: !0 - }); - Mo(ge, M, ee, se, n); - const De = o.aD(J, se, n.paint.get("fill-extrusion-translate"), n.paint.get("fill-extrusion-translate-anchor")), - He = n.paint.get("fill-extrusion-vertical-gradient"), - je = z ? tp(h, He, U, De, re, B, se) : ya(h, He, U, De); - Te.draw(w, w.gl.TRIANGLES, u, d, m, wr.backCCW, je, ue, he, n.id, de.layoutVertexBuffer, de.indexBuffer, de.segments, n.paint, h.transform.zoom, ge, h.style.map.terrain && de.centroidVertexBuffer) - } - } - - function bs(h, e, n, s, u, d, m, y, w) { - var P; - const M = h.style.projection, - D = h.context, - z = h.transform, - B = D.gl, - U = [`#define NUM_ILLUMINATION_SOURCES ${n.paint.get("hillshade-highlight-color").values.length}`], - ee = h.useProgram("hillshade", null, !1, U), - J = !h.options.moving; - for (const re of s) { - const se = e.getTile(re), - de = se.fbo; - if (!de) continue; - const ue = M.getMeshFromTileID(D, re.canonical, y, !0, "raster"), - ge = (P = h.style.map.terrain) === null || P === void 0 ? void 0 : P.getTerrainData(re); - D.activeTexture.set(B.TEXTURE0), B.bindTexture(B.TEXTURE_2D, de.colorAttachment.get()); - const Te = z.getProjectionData({ - overscaledTileID: re, - aligned: J, - applyGlobeMatrix: !w, - applyTerrainMatrix: !0 - }); - ee.draw(D, B.TRIANGLES, d, u[re.overscaledZ], m, wr.backCCW, np(h, se, n), ge, Te, n.id, ue.vertexBuffer, ue.indexBuffer, ue.segments) - } - } - - function Bc(h, e, n, s, u, d, m, y, w) { - var P; - const M = h.style.projection, - D = h.context, - z = h.transform, - B = D.gl, - U = h.useProgram("colorRelief"), - ee = !h.options.moving; - let J = !0, - re = 0; - for (const se of s) { - const de = e.getTile(se), - ue = de.dem; - if (J) { - const je = B.getParameter(B.MAX_TEXTURE_SIZE), - { - elevationTexture: qe, - colorTexture: $e - } = n.getColorRampTextures(D, je, ue.getUnpackVector()); - D.activeTexture.set(B.TEXTURE1), qe.bind(B.NEAREST, B.CLAMP_TO_EDGE), D.activeTexture.set(B.TEXTURE4), $e.bind(B.LINEAR, B.CLAMP_TO_EDGE), J = !1, re = qe.size[0] - } - if (!ue || !ue.data) continue; - const ge = ue.stride, - Te = ue.getPixels(); - if (D.activeTexture.set(B.TEXTURE0), D.pixelStoreUnpackPremultiplyAlpha.set(!1), de.demTexture = de.demTexture || h.getTileTexture(ge), de.demTexture) { - const je = de.demTexture; - je.update(Te, { - premultiply: !1 - }), je.bind(B.LINEAR, B.CLAMP_TO_EDGE) - } else de.demTexture = new o.T(D, Te, B.RGBA, { - premultiply: !1 - }), de.demTexture.bind(B.LINEAR, B.CLAMP_TO_EDGE); - const he = M.getMeshFromTileID(D, se.canonical, y, !0, "raster"), - De = (P = h.style.map.terrain) === null || P === void 0 ? void 0 : P.getTerrainData(se), - He = z.getProjectionData({ - overscaledTileID: se, - aligned: ee, - applyGlobeMatrix: !w, - applyTerrainMatrix: !0 - }); - U.draw(D, B.TRIANGLES, d, u[se.overscaledZ], m, wr.backCCW, xh(n, de.dem, re), De, He, n.id, he.vertexBuffer, he.indexBuffer, he.segments) - } - } - const _l = [new o.P(0, 0), new o.P(o.$, 0), new o.P(o.$, o.$), new o.P(0, o.$)]; - - function ws(h, e, n, s, u, d, m, y, w = !1, P = !1) { - const M = s[s.length - 1].overscaledZ, - D = h.context, - z = D.gl, - B = h.useProgram("raster"), - U = h.transform, - ee = h.style.projection, - J = h.colorModeForRenderPass(), - re = !h.options.moving; - for (const se of s) { - const de = h.getDepthModeForSublayer(se.overscaledZ - M, n.paint.get("raster-opacity") === 1 ? Vr.ReadWrite : Vr.ReadOnly, z.LESS), - ue = e.getTile(se); - ue.registerFadeDuration(n.paint.get("raster-fade-duration")); - const ge = e.findLoadedParent(se, 0), - Te = e.findLoadedSibling(se), - he = Fc(ue, ge || Te || null, e, n, h.transform, h.style.map.terrain); - let De, He; - const je = n.paint.get("raster-resampling") === "nearest" ? z.NEAREST : z.LINEAR; - D.activeTexture.set(z.TEXTURE0), ue.texture.bind(je, z.CLAMP_TO_EDGE, z.LINEAR_MIPMAP_NEAREST), D.activeTexture.set(z.TEXTURE1), ge ? (ge.texture.bind(je, z.CLAMP_TO_EDGE, z.LINEAR_MIPMAP_NEAREST), De = Math.pow(2, ge.tileID.overscaledZ - ue.tileID.overscaledZ), He = [ue.tileID.canonical.x * De % 1, ue.tileID.canonical.y * De % 1]) : ue.texture.bind(je, z.CLAMP_TO_EDGE, z.LINEAR_MIPMAP_NEAREST), ue.texture.useMipmap && D.extTextureFilterAnisotropic && h.transform.pitch > 20 && z.texParameterf(z.TEXTURE_2D, D.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, D.extTextureFilterAnisotropicMax); - const qe = h.style.map.terrain && h.style.map.terrain.getTerrainData(se), - $e = U.getProjectionData({ - overscaledTileID: se, - aligned: re, - applyGlobeMatrix: !P, - applyTerrainMatrix: !0 - }), - Rt = yo(He || [0, 0], De || 1, he, n, y), - Nt = ee.getMeshFromTileID(D, se.canonical, d, m, "raster"); - B.draw(D, z.TRIANGLES, de, u ? u[se.overscaledZ] : hi.disabled, J, w ? wr.frontCCW : wr.backCCW, Rt, qe, $e, n.id, Nt.vertexBuffer, Nt.indexBuffer, Nt.segments) - } - } - - function Fc(h, e, n, s, u, d) { - const m = s.paint.get("raster-fade-duration"); - if (!d && m > 0) { - const y = ye.now(), - w = (y - h.timeAdded) / m, - P = e ? (y - e.timeAdded) / m : -1, - M = n.getSource(), - D = Ot(u, { - tileSize: M.tileSize, - roundZoom: M.roundZoom - }), - z = !e || Math.abs(e.tileID.overscaledZ - D) > Math.abs(h.tileID.overscaledZ - D), - B = z && h.refreshedUponExpiration ? 1 : o.ah(z ? w : 1 - P, 0, 1); - return h.refreshedUponExpiration && w >= 1 && (h.refreshedUponExpiration = !1), e ? { - opacity: 1, - mix: 1 - B - } : { - opacity: B, - mix: 0 - } - } - return { - opacity: 1, - mix: 0 - } - } - const Oh = new o.bf(1, 0, 0, 1), - Nh = new o.bf(0, 1, 0, 1), - gl = new o.bf(0, 0, 1, 1), - Oc = new o.bf(1, 0, 1, 1), - mp = new o.bf(0, 1, 1, 1); - - function Nc(h, e, n, s) { - Oa(h, 0, e + n / 2, h.transform.width, n, s) - } - - function Vi(h, e, n, s) { - Oa(h, e - n / 2, 0, n, h.transform.height, s) - } - - function Oa(h, e, n, s, u, d) { - const m = h.context, - y = m.gl; - y.enable(y.SCISSOR_TEST), y.scissor(e * h.pixelRatio, n * h.pixelRatio, s * h.pixelRatio, u * h.pixelRatio), m.clear({ - color: d - }), y.disable(y.SCISSOR_TEST) - } - - function ua(h, e, n) { - const s = h.context, - u = s.gl, - d = h.useProgram("debug"), - m = Vr.disabled, - y = hi.disabled, - w = h.colorModeForRenderPass(), - P = "$debug", - M = h.style.map.terrain && h.style.map.terrain.getTerrainData(n); - s.activeTexture.set(u.TEXTURE0); - const D = e.getTileByID(n.key).latestRawTileData, - z = Math.floor((D && D.byteLength || 0) / 1024), - B = e.getTile(n).tileSize, - U = 512 / Math.min(B, 512) * (n.overscaledZ / h.transform.zoom) * .5; - let ee = n.canonical.toString(); - n.overscaledZ !== n.canonical.z && (ee += ` => ${n.overscaledZ}`), (function(re, se) { - re.initDebugOverlayCanvas(); - const de = re.debugOverlayCanvas, - ue = re.context.gl, - ge = re.debugOverlayCanvas.getContext("2d"); - ge.clearRect(0, 0, de.width, de.height), ge.shadowColor = "white", ge.shadowBlur = 2, ge.lineWidth = 1.5, ge.strokeStyle = "white", ge.textBaseline = "top", ge.font = "bold 36px Open Sans, sans-serif", ge.fillText(se, 5, 5), ge.strokeText(se, 5, 5), re.debugOverlayTexture.update(de), re.debugOverlayTexture.bind(ue.LINEAR, ue.CLAMP_TO_EDGE) - })(h, `${ee} ${z}kB`); - const J = h.transform.getProjectionData({ - overscaledTileID: n, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }); - d.draw(s, u.TRIANGLES, m, y, Ti.alphaBlended, wr.disabled, _s(o.bf.transparent, U), null, J, P, h.debugBuffer, h.quadTriangleIndexBuffer, h.debugSegments), d.draw(s, u.LINE_STRIP, m, y, w, wr.disabled, _s(o.bf.red), M, J, P, h.debugBuffer, h.tileBorderIndexBuffer, h.debugSegments) - } - - function vl(h, e, n, s) { - const { - isRenderingGlobe: u - } = s, d = h.context, m = d.gl, y = h.transform, w = h.colorModeForRenderPass(), P = h.getDepthModeFor3D(), M = h.useProgram("terrain"); - d.bindFramebuffer.set(null), d.viewport.set([0, 0, h.width, h.height]); - for (const D of n) { - const z = e.getTerrainMesh(D.tileID), - B = h.renderToTexture.getTexture(D), - U = e.getTerrainData(D.tileID); - d.activeTexture.set(m.TEXTURE0), m.bindTexture(m.TEXTURE_2D, B.texture); - const ee = e.getMeshFrameDelta(y.zoom), - J = y.calculateFogMatrix(D.tileID.toUnwrapped()), - re = rl(ee, J, h.style.sky, y.pitch, u), - se = y.getProjectionData({ - overscaledTileID: D.tileID, - applyTerrainMatrix: !1, - applyGlobeMatrix: !0 - }); - M.draw(d, m.TRIANGLES, P, hi.disabled, w, wr.backCCW, re, U, se, "terrain", z.vertexBuffer, z.indexBuffer, z.segments) - } - } - - function Ao(h, e) { - if (!e.mesh) { - const n = new o.aL; - n.emplaceBack(-1, -1), n.emplaceBack(1, -1), n.emplaceBack(1, 1), n.emplaceBack(-1, 1); - const s = new o.aN; - s.emplaceBack(0, 1, 2), s.emplaceBack(0, 2, 3), e.mesh = new Ri(h.createVertexBuffer(n, ui.members), h.createIndexBuffer(s), o.aM.simpleSegment(0, 0, n.length, s.length)) - } - return e.mesh - } - class jh { - constructor(e, n) { - this.context = new Dh(e), this.transform = n, this._tileTextures = {}, this.terrainFacilitator = { - dirty: !0, - matrix: o.ag(new Float64Array(16)), - renderTime: 0 - }, this.setup(), this.numSublayers = Pt.maxUnderzooming + Pt.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new gi - } - resize(e, n, s) { - if (this.width = Math.floor(e * s), this.height = Math.floor(n * s), this.pixelRatio = s, this.context.viewport.set([0, 0, this.width, this.height]), this.style) - for (const u of this.style._order) this.style._layers[u].resize() - } - setup() { - const e = this.context, - n = new o.aL; - n.emplaceBack(0, 0), n.emplaceBack(o.$, 0), n.emplaceBack(0, o.$), n.emplaceBack(o.$, o.$), this.tileExtentBuffer = e.createVertexBuffer(n, ui.members), this.tileExtentSegments = o.aM.simpleSegment(0, 0, 4, 2); - const s = new o.aL; - s.emplaceBack(0, 0), s.emplaceBack(o.$, 0), s.emplaceBack(0, o.$), s.emplaceBack(o.$, o.$), this.debugBuffer = e.createVertexBuffer(s, ui.members), this.debugSegments = o.aM.simpleSegment(0, 0, 4, 5); - const u = new o.c6; - u.emplaceBack(0, 0, 0, 0), u.emplaceBack(o.$, 0, o.$, 0), u.emplaceBack(0, o.$, 0, o.$), u.emplaceBack(o.$, o.$, o.$, o.$), this.rasterBoundsBuffer = e.createVertexBuffer(u, Qd.members), this.rasterBoundsSegments = o.aM.simpleSegment(0, 0, 4, 2); - const d = new o.aL; - d.emplaceBack(0, 0), d.emplaceBack(o.$, 0), d.emplaceBack(0, o.$), d.emplaceBack(o.$, o.$), this.rasterBoundsBufferPosOnly = e.createVertexBuffer(d, ui.members), this.rasterBoundsSegmentsPosOnly = o.aM.simpleSegment(0, 0, 4, 5); - const m = new o.aL; - m.emplaceBack(0, 0), m.emplaceBack(1, 0), m.emplaceBack(0, 1), m.emplaceBack(1, 1), this.viewportBuffer = e.createVertexBuffer(m, ui.members), this.viewportSegments = o.aM.simpleSegment(0, 0, 4, 2); - const y = new o.c7; - y.emplaceBack(0), y.emplaceBack(1), y.emplaceBack(3), y.emplaceBack(2), y.emplaceBack(0), this.tileBorderIndexBuffer = e.createIndexBuffer(y); - const w = new o.aN; - w.emplaceBack(1, 0, 2), w.emplaceBack(1, 2, 3), this.quadTriangleIndexBuffer = e.createIndexBuffer(w); - const P = this.context.gl; - this.stencilClearMode = new hi({ - func: P.ALWAYS, - mask: 0 - }, 0, 255, P.ZERO, P.ZERO, P.ZERO), this.tileExtentMesh = new Ri(this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments) - } - clearStencil() { - const e = this.context, - n = e.gl; - this.nextStencilID = 1, this.currentStencilSource = void 0; - const s = o.L(); - o.bY(s, 0, this.width, this.height, 0, 0, 1), o.N(s, s, [n.drawingBufferWidth, n.drawingBufferHeight, 0]); - const u = { - mainMatrix: s, - tileMercatorCoords: [0, 0, 1, 1], - clippingPlane: [0, 0, 0, 0], - projectionTransition: 0, - fallbackMatrix: s - }; - this.useProgram("clippingMask", null, !0).draw(e, n.TRIANGLES, Vr.disabled, this.stencilClearMode, Ti.disabled, wr.disabled, null, null, u, "$clipping", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments) - } - _renderTileClippingMasks(e, n, s) { - if (this.currentStencilSource === e.source || !e.isTileClipped() || !n || !n.length) return; - this.currentStencilSource = e.source, this.nextStencilID + n.length > 256 && this.clearStencil(); - const u = this.context; - u.setColorMode(Ti.disabled), u.setDepthMode(Vr.disabled); - const d = {}; - for (const m of n) d[m.key] = this.nextStencilID++; - this._renderTileMasks(d, n, s, !0), this._renderTileMasks(d, n, s, !1), this._tileClippingMaskIDs = d - } - _renderTileMasks(e, n, s, u) { - const d = this.context, - m = d.gl, - y = this.style.projection, - w = this.transform, - P = this.useProgram("clippingMask"); - for (const M of n) { - const D = e[M.key], - z = this.style.map.terrain && this.style.map.terrain.getTerrainData(M), - B = y.getMeshFromTileID(this.context, M.canonical, u, !0, "stencil"), - U = w.getProjectionData({ - overscaledTileID: M, - applyGlobeMatrix: !s, - applyTerrainMatrix: !0 - }); - P.draw(d, m.TRIANGLES, Vr.disabled, new hi({ - func: m.ALWAYS, - mask: 0 - }, D, 255, m.KEEP, m.KEEP, m.REPLACE), Ti.disabled, s ? wr.disabled : wr.backCCW, null, z, U, "$clipping", B.vertexBuffer, B.indexBuffer, B.segments) - } - } - _renderTilesDepthBuffer() { - const e = this.context, - n = e.gl, - s = this.style.projection, - u = this.transform, - d = this.useProgram("depth"), - m = this.getDepthModeFor3D(), - y = xe(u, { - tileSize: u.tileSize - }); - for (const w of y) { - const P = this.style.map.terrain && this.style.map.terrain.getTerrainData(w), - M = s.getMeshFromTileID(this.context, w.canonical, !0, !0, "raster"), - D = u.getProjectionData({ - overscaledTileID: w, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }); - d.draw(e, n.TRIANGLES, m, hi.disabled, Ti.disabled, wr.backCCW, null, P, D, "$clipping", M.vertexBuffer, M.indexBuffer, M.segments) - } - } - stencilModeFor3D() { - this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil(); - const e = this.nextStencilID++, - n = this.context.gl; - return new hi({ - func: n.NOTEQUAL, - mask: 255 - }, e, 255, n.KEEP, n.KEEP, n.REPLACE) - } - stencilModeForClipping(e) { - const n = this.context.gl; - return new hi({ - func: n.EQUAL, - mask: 255 - }, this._tileClippingMaskIDs[e.key], 0, n.KEEP, n.KEEP, n.REPLACE) - } - getStencilConfigForOverlapAndUpdateStencilID(e) { - const n = this.context.gl, - s = e.sort(((m, y) => y.overscaledZ - m.overscaledZ)), - u = s[s.length - 1].overscaledZ, - d = s[0].overscaledZ - u + 1; - if (d > 1) { - this.currentStencilSource = void 0, this.nextStencilID + d > 256 && this.clearStencil(); - const m = {}; - for (let y = 0; y < d; y++) m[y + u] = new hi({ - func: n.GEQUAL, - mask: 255 - }, y + this.nextStencilID, 255, n.KEEP, n.KEEP, n.REPLACE); - return this.nextStencilID += d, [m, s] - } - return [{ - [u]: hi.disabled - }, s] - } - stencilConfigForOverlapTwoPass(e) { - const n = this.context.gl, - s = e.sort(((m, y) => y.overscaledZ - m.overscaledZ)), - u = s[s.length - 1].overscaledZ, - d = s[0].overscaledZ - u + 1; - if (this.clearStencil(), d > 1) { - const m = {}, - y = {}; - for (let w = 0; w < d; w++) m[w + u] = new hi({ - func: n.GREATER, - mask: 255 - }, d + 1 + w, 255, n.KEEP, n.KEEP, n.REPLACE), y[w + u] = new hi({ - func: n.GREATER, - mask: 255 - }, 1 + w, 255, n.KEEP, n.KEEP, n.REPLACE); - return this.nextStencilID = 2 * d + 1, [m, y, s] - } - return this.nextStencilID = 3, [{ - [u]: new hi({ - func: n.GREATER, - mask: 255 - }, 2, 255, n.KEEP, n.KEEP, n.REPLACE) - }, { - [u]: new hi({ - func: n.GREATER, - mask: 255 - }, 1, 255, n.KEEP, n.KEEP, n.REPLACE) - }, s] - } - colorModeForRenderPass() { - const e = this.context.gl; - return this._showOverdrawInspector ? new Ti([e.CONSTANT_COLOR, e.ONE], new o.bf(.125, .125, .125, 0), [!0, !0, !0, !0]) : this.renderPass === "opaque" ? Ti.unblended : Ti.alphaBlended - } - getDepthModeForSublayer(e, n, s) { - if (!this.opaquePassEnabledForLayer()) return Vr.disabled; - const u = 1 - ((1 + this.currentLayer) * this.numSublayers + e) * this.depthEpsilon; - return new Vr(s || this.context.gl.LEQUAL, n, [u, u]) - } - getDepthModeFor3D() { - return new Vr(this.context.gl.LEQUAL, Vr.ReadWrite, this.depthRangeFor3D) - } - opaquePassEnabledForLayer() { - return this.currentLayer < this.opaquePassCutoff - } - render(e, n) { - var s, u; - this.style = e, this.options = n, this.lineAtlas = e.lineAtlas, this.imageManager = e.imageManager, this.glyphManager = e.glyphManager, this.symbolFadeChange = e.placement.symbolFadeChange(ye.now()), this.imageManager.beginFrame(); - const d = this.style._order, - m = this.style.sourceCaches, - y = {}, - w = {}, - P = {}, - M = { - isRenderingToTexture: !1, - isRenderingGlobe: ((s = e.projection) === null || s === void 0 ? void 0 : s.transitionState) > 0 - }; - for (const z in m) { - const B = m[z]; - B.used && B.prepare(this.context), y[z] = B.getVisibleCoordinates(!1), w[z] = y[z].slice().reverse(), P[z] = B.getVisibleCoordinates(!0).reverse() - } - this.opaquePassCutoff = 1 / 0; - for (let z = 0; z < d.length; z++) - if (this.style._layers[d[z]].is3D()) { - this.opaquePassCutoff = z; - break - } this.maybeDrawDepthAndCoords(!1), this.renderToTexture && (this.renderToTexture.prepareForRender(this.style, this.transform.zoom), this.opaquePassCutoff = 0), this.renderPass = "offscreen"; - for (const z of d) { - const B = this.style._layers[z]; - if (!B.hasOffscreenPass() || B.isHidden(this.transform.zoom)) continue; - const U = w[B.source]; - (B.type === "custom" || U.length) && this.renderLayer(this, m[B.source], B, U, M) - } - if ((u = this.style.projection) === null || u === void 0 || u.updateGPUdependent({ - context: this.context, - useProgram: z => this.useProgram(z) - }), this.context.viewport.set([0, 0, this.width, this.height]), this.context.bindFramebuffer.set(null), this.context.clear({ - color: n.showOverdrawInspector ? o.bf.black : o.bf.transparent, - depth: 1 - }), this.clearStencil(), this.style.sky && (function(z, B) { - const U = z.context, - ee = U.gl, - J = ((Te, he, De) => { - const He = Math.cos(he.rollInRadians), - je = Math.sin(he.rollInRadians), - qe = le(he), - $e = he.getProjectionData({ - overscaledTileID: null, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }).projectionTransition; - return { - u_sky_color: Te.properties.get("sky-color"), - u_horizon_color: Te.properties.get("horizon-color"), - u_horizon: [(he.width / 2 - qe * je) * De, (he.height / 2 + qe * He) * De], - u_horizon_normal: [-je, He], - u_sky_horizon_blend: Te.properties.get("sky-horizon-blend") * he.height / 2 * De, - u_sky_blend: $e - } - })(B, z.style.map.transform, z.pixelRatio), - re = new Vr(ee.LEQUAL, Vr.ReadWrite, [0, 1]), - se = hi.disabled, - de = z.colorModeForRenderPass(), - ue = z.useProgram("sky"), - ge = Ao(U, B); - ue.draw(U, ee.TRIANGLES, re, se, de, wr.disabled, J, null, void 0, "sky", ge.vertexBuffer, ge.indexBuffer, ge.segments) - })(this, this.style.sky), this._showOverdrawInspector = n.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (e._order.length + 2) * this.numSublayers * this.depthEpsilon], !this.renderToTexture) - for (this.renderPass = "opaque", this.currentLayer = d.length - 1; this.currentLayer >= 0; this.currentLayer--) { - const z = this.style._layers[d[this.currentLayer]], - B = m[z.source], - U = y[z.source]; - this._renderTileClippingMasks(z, U, !1), this.renderLayer(this, B, z, U, M) - } - this.renderPass = "translucent"; - let D = !1; - for (this.currentLayer = 0; this.currentLayer < d.length; this.currentLayer++) { - const z = this.style._layers[d[this.currentLayer]], - B = m[z.source]; - if (this.renderToTexture && this.renderToTexture.renderLayer(z, M)) continue; - this.opaquePassEnabledForLayer() || D || (D = !0, M.isRenderingGlobe && !this.style.map.terrain && this._renderTilesDepthBuffer()); - const U = (z.type === "symbol" ? P : w)[z.source]; - this._renderTileClippingMasks(z, y[z.source], !!this.renderToTexture), this.renderLayer(this, B, z, U, M) - } - if (M.isRenderingGlobe && (function(z, B, U) { - const ee = z.context, - J = ee.gl, - re = z.useProgram("atmosphere"), - se = new Vr(J.LEQUAL, Vr.ReadOnly, [0, 1]), - de = z.transform, - ue = (function($e, Rt) { - const Nt = $e.properties.get("position"), - yt = [-Nt.x, -Nt.y, -Nt.z], - sr = o.ag(new Float64Array(16)); - return $e.properties.get("anchor") === "map" && (o.b6(sr, sr, Rt.rollInRadians), o.b7(sr, sr, -Rt.pitchInRadians), o.b6(sr, sr, Rt.bearingInRadians), o.b7(sr, sr, Rt.center.lat * Math.PI / 180), o.bz(sr, sr, -Rt.center.lng * Math.PI / 180)), o.c5(yt, yt, sr), yt - })(U, z.transform), - ge = de.getProjectionData({ - overscaledTileID: null, - applyGlobeMatrix: !0, - applyTerrainMatrix: !0 - }), - Te = B.properties.get("atmosphere-blend") * ge.projectionTransition; - if (Te === 0) return; - const he = Bs(de.worldSize, de.center.lat), - De = de.inverseProjectionMatrix, - He = new Float64Array(4); - He[3] = 1, o.aw(He, He, de.modelViewProjectionMatrix), He[0] /= He[3], He[1] /= He[3], He[2] /= He[3], He[3] = 1, o.aw(He, He, De), He[0] /= He[3], He[1] /= He[3], He[2] /= He[3], He[3] = 1; - const je = (($e, Rt, Nt, yt, sr) => ({ - u_sun_pos: $e, - u_atmosphere_blend: Rt, - u_globe_position: Nt, - u_globe_radius: yt, - u_inv_proj_matrix: sr - }))(ue, Te, [He[0], He[1], He[2]], he, De), - qe = Ao(ee, B); - re.draw(ee, J.TRIANGLES, se, hi.disabled, Ti.alphaBlended, wr.disabled, je, null, null, "atmosphere", qe.vertexBuffer, qe.indexBuffer, qe.segments) - })(this, this.style.sky, this.style.light), this.options.showTileBoundaries) { - const z = (function(B, U) { - let ee = null; - const J = Object.values(B._layers).flatMap((ue => ue.source && !ue.isHidden(U) ? [B.sourceCaches[ue.source]] : [])), - re = J.filter((ue => ue.getSource().type === "vector")), - se = J.filter((ue => ue.getSource().type !== "vector")), - de = ue => { - (!ee || ee.getSource().maxzoom < ue.getSource().maxzoom) && (ee = ue) - }; - return re.forEach((ue => de(ue))), ee || se.forEach((ue => de(ue))), ee - })(this.style, this.transform.zoom); - z && (function(B, U, ee) { - for (let J = 0; J < ee.length; J++) ua(B, U, ee[J]) - })(this, z, z.getVisibleCoordinates()) - } - this.options.showPadding && (function(z) { - const B = z.transform.padding; - Nc(z, z.transform.height - (B.top || 0), 3, Oh), Nc(z, B.bottom || 0, 3, Nh), Vi(z, B.left || 0, 3, gl), Vi(z, z.transform.width - (B.right || 0), 3, Oc); - const U = z.transform.centerPoint; - (function(ee, J, re, se) { - Oa(ee, J - 1, re - 10, 2, 20, se), Oa(ee, J - 10, re - 1, 20, 2, se) - })(z, U.x, z.transform.height - U.y, mp) - })(this), this.context.setDefault() - } - maybeDrawDepthAndCoords(e) { - if (!this.style || !this.style.map || !this.style.map.terrain) return; - const n = this.terrainFacilitator.matrix, - s = this.transform.modelViewProjectionMatrix; - let u = this.terrainFacilitator.dirty; - u || (u = e ? !o.c8(n, s) : !o.c9(n, s)), u || (u = this.style.map.terrain.sourceCache.anyTilesAfterTime(this.terrainFacilitator.renderTime)), u && (o.ca(n, s), this.terrainFacilitator.renderTime = Date.now(), this.terrainFacilitator.dirty = !1, (function(d, m) { - const y = d.context, - w = y.gl, - P = d.transform, - M = Ti.unblended, - D = new Vr(w.LEQUAL, Vr.ReadWrite, [0, 1]), - z = m.sourceCache.getRenderableTiles(), - B = d.useProgram("terrainDepth"); - y.bindFramebuffer.set(m.getFramebuffer("depth").framebuffer), y.viewport.set([0, 0, d.width / devicePixelRatio, d.height / devicePixelRatio]), y.clear({ - color: o.bf.transparent, - depth: 1 - }); - for (const U of z) { - const ee = m.getTerrainMesh(U.tileID), - J = m.getTerrainData(U.tileID), - re = P.getProjectionData({ - overscaledTileID: U.tileID, - applyTerrainMatrix: !1, - applyGlobeMatrix: !0 - }), - se = { - u_ele_delta: m.getMeshFrameDelta(P.zoom) - }; - B.draw(y, w.TRIANGLES, D, hi.disabled, M, wr.backCCW, se, J, re, "terrain", ee.vertexBuffer, ee.indexBuffer, ee.segments) - } - y.bindFramebuffer.set(null), y.viewport.set([0, 0, d.width, d.height]) - })(this, this.style.map.terrain), (function(d, m) { - const y = d.context, - w = y.gl, - P = d.transform, - M = Ti.unblended, - D = new Vr(w.LEQUAL, Vr.ReadWrite, [0, 1]), - z = m.getCoordsTexture(), - B = m.sourceCache.getRenderableTiles(), - U = d.useProgram("terrainCoords"); - y.bindFramebuffer.set(m.getFramebuffer("coords").framebuffer), y.viewport.set([0, 0, d.width / devicePixelRatio, d.height / devicePixelRatio]), y.clear({ - color: o.bf.transparent, - depth: 1 - }), m.coordsIndex = []; - for (const ee of B) { - const J = m.getTerrainMesh(ee.tileID), - re = m.getTerrainData(ee.tileID); - y.activeTexture.set(w.TEXTURE0), w.bindTexture(w.TEXTURE_2D, z.texture); - const se = { - u_terrain_coords_id: (255 - m.coordsIndex.length) / 255, - u_texture: 0, - u_ele_delta: m.getMeshFrameDelta(P.zoom) - }, - de = P.getProjectionData({ - overscaledTileID: ee.tileID, - applyTerrainMatrix: !1, - applyGlobeMatrix: !0 - }); - U.draw(y, w.TRIANGLES, D, hi.disabled, M, wr.backCCW, se, re, de, "terrain", J.vertexBuffer, J.indexBuffer, J.segments), m.coordsIndex.push(ee.tileID.key) - } - y.bindFramebuffer.set(null), y.viewport.set([0, 0, d.width, d.height]) - })(this, this.style.map.terrain)) - } - renderLayer(e, n, s, u, d) { - s.isHidden(this.transform.zoom) || (s.type === "background" || s.type === "custom" || (u || []).length) && (this.id = s.id, o.cb(s) ? (function(m, y, w, P, M, D) { - if (m.renderPass !== "translucent") return; - const { - isRenderingToTexture: z - } = D, B = hi.disabled, U = m.colorModeForRenderPass(); - (w._unevaluatedLayout.hasValue("text-variable-anchor") || w._unevaluatedLayout.hasValue("text-variable-anchor-offset")) && (function(ee, J, re, se, de, ue, ge, Te, he) { - const De = J.transform, - He = J.style.map.terrain, - je = de === "map", - qe = ue === "map"; - for (const $e of ee) { - const Rt = se.getTile($e), - Nt = Rt.getBucket(re); - if (!Nt || !Nt.text || !Nt.text.segments.get().length) continue; - const yt = o.an(Nt.textSizeData, De.zoom), - sr = o.aC(Rt, 1, J.transform.zoom), - Xr = $r(je, J.transform, sr), - xi = re.layout.get("icon-text-fit") !== "none" && Nt.hasIconData(); - if (yt) { - const ki = Math.pow(2, De.zoom - Rt.tileID.overscaledZ), - Pi = He ? (ji, Ui) => He.getElevation($e, ji, Ui) : null; - Lc(Nt, je, qe, he, De, Xr, ki, yt, xi, o.aD(De, Rt, ge, Te), $e.toUnwrapped(), Pi) - } - } - })(P, m, w, y, w.layout.get("text-rotation-alignment"), w.layout.get("text-pitch-alignment"), w.paint.get("text-translate"), w.paint.get("text-translate-anchor"), M), w.paint.get("icon-opacity").constantOr(1) !== 0 && Co(m, y, w, P, !1, w.paint.get("icon-translate"), w.paint.get("icon-translate-anchor"), w.layout.get("icon-rotation-alignment"), w.layout.get("icon-pitch-alignment"), w.layout.get("icon-keep-upright"), B, U, z), w.paint.get("text-opacity").constantOr(1) !== 0 && Co(m, y, w, P, !0, w.paint.get("text-translate"), w.paint.get("text-translate-anchor"), w.layout.get("text-rotation-alignment"), w.layout.get("text-pitch-alignment"), w.layout.get("text-keep-upright"), B, U, z), y.map.showCollisionBoxes && (Rh(m, y, w, P, !0), Rh(m, y, w, P, !1)) - })(e, n, s, u, this.style.placement.variableOffsets, d) : o.cc(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent") return; - const { - isRenderingToTexture: D - } = M, z = w.paint.get("circle-opacity"), B = w.paint.get("circle-stroke-width"), U = w.paint.get("circle-stroke-opacity"), ee = !w.layout.get("circle-sort-key").isConstant(); - if (z.constantOr(1) === 0 && (B.constantOr(1) === 0 || U.constantOr(1) === 0)) return; - const J = m.context, - re = J.gl, - se = m.transform, - de = m.getDepthModeForSublayer(0, Vr.ReadOnly), - ue = hi.disabled, - ge = m.colorModeForRenderPass(), - Te = [], - he = se.getCircleRadiusCorrection(); - for (let De = 0; De < P.length; De++) { - const He = P[De], - je = y.getTile(He), - qe = je.getBucket(w); - if (!qe) continue; - const $e = w.paint.get("circle-translate"), - Rt = w.paint.get("circle-translate-anchor"), - Nt = o.aD(se, je, $e, Rt), - yt = qe.programConfigurations.get(w.id), - sr = m.useProgram("circle", yt), - Xr = qe.layoutVertexBuffer, - xi = qe.indexBuffer, - ki = m.style.map.terrain && m.style.map.terrain.getTerrainData(He), - Pi = { - programConfiguration: yt, - program: sr, - layoutVertexBuffer: Xr, - indexBuffer: xi, - uniformValues: rp(m, je, w, Nt, he), - terrainData: ki, - projectionData: se.getProjectionData({ - overscaledTileID: He, - applyGlobeMatrix: !D, - applyTerrainMatrix: !0 - }) - }; - if (ee) { - const ji = qe.segments.get(); - for (const Ui of ji) Te.push({ - segments: new o.aM([Ui]), - sortKey: Ui.sortKey, - state: Pi - }) - } else Te.push({ - segments: qe.segments, - sortKey: 0, - state: Pi - }) - } - ee && Te.sort(((De, He) => De.sortKey - He.sortKey)); - for (const De of Te) { - const { - programConfiguration: He, - program: je, - layoutVertexBuffer: qe, - indexBuffer: $e, - uniformValues: Rt, - terrainData: Nt, - projectionData: yt - } = De.state; - je.draw(J, re.TRIANGLES, de, ue, ge, wr.backCCW, Rt, Nt, yt, w.id, qe, $e, De.segments, w.paint, m.transform.zoom, He) - } - })(e, n, s, u, d) : o.cd(s) ? (function(m, y, w, P, M) { - if (w.paint.get("heatmap-opacity") === 0) return; - const D = m.context, - { - isRenderingToTexture: z, - isRenderingGlobe: B - } = M; - if (m.style.map.terrain) { - for (const U of P) { - const ee = y.getTile(U); - y.hasRenderableParent(U) || (m.renderPass === "offscreen" ? Dc(m, ee, w, U, B) : m.renderPass === "translucent" && Fh(m, w, U, z, B)) - } - D.viewport.set([0, 0, m.width, m.height]) - } else m.renderPass === "offscreen" ? (function(U, ee, J, re) { - const se = U.context, - de = se.gl, - ue = U.transform, - ge = hi.disabled, - Te = new Ti([de.ONE, de.ONE], o.bf.transparent, [!0, !0, !0, !0]); - (function(he, De, He) { - const je = he.gl; - he.activeTexture.set(je.TEXTURE1), he.viewport.set([0, 0, De.width / 4, De.height / 4]); - let qe = He.heatmapFbos.get(o.c2); - qe ? (je.bindTexture(je.TEXTURE_2D, qe.colorAttachment.get()), he.bindFramebuffer.set(qe.framebuffer)) : (qe = Po(he, De.width / 4, De.height / 4), He.heatmapFbos.set(o.c2, qe)) - })(se, U, J), se.clear({ - color: o.bf.transparent - }); - for (let he = 0; he < re.length; he++) { - const De = re[he]; - if (ee.hasRenderableParent(De)) continue; - const He = ee.getTile(De), - je = He.getBucket(J); - if (!je) continue; - const qe = je.programConfigurations.get(J.id), - $e = U.useProgram("heatmap", qe), - Rt = ue.getProjectionData({ - overscaledTileID: De, - applyGlobeMatrix: !0, - applyTerrainMatrix: !1 - }), - Nt = ue.getCircleRadiusCorrection(); - $e.draw(se, de.TRIANGLES, Vr.disabled, ge, Te, wr.backCCW, vh(He, ue.zoom, J.paint.get("heatmap-intensity"), Nt), null, Rt, J.id, je.layoutVertexBuffer, je.indexBuffer, je.segments, J.paint, ue.zoom, qe) - } - se.viewport.set([0, 0, U.width, U.height]) - })(m, y, w, P) : m.renderPass === "translucent" && (function(U, ee) { - const J = U.context, - re = J.gl; - J.setColorMode(U.colorModeForRenderPass()); - const se = ee.heatmapFbos.get(o.c2); - se && (J.activeTexture.set(re.TEXTURE0), re.bindTexture(re.TEXTURE_2D, se.colorAttachment.get()), J.activeTexture.set(re.TEXTURE1), Io(J, ee).bind(re.LINEAR, re.CLAMP_TO_EDGE), U.useProgram("heatmapTexture").draw(J, re.TRIANGLES, Vr.disabled, hi.disabled, U.colorModeForRenderPass(), wr.disabled, xc(U, ee, 0, 1), null, null, ee.id, U.viewportBuffer, U.quadTriangleIndexBuffer, U.viewportSegments, ee.paint, U.transform.zoom)) - })(m, w) - })(e, n, s, u, d) : o.ce(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent") return; - const { - isRenderingToTexture: D - } = M, z = w.paint.get("line-opacity"), B = w.paint.get("line-width"); - if (z.constantOr(1) === 0 || B.constantOr(1) === 0) return; - const U = m.getDepthModeForSublayer(0, Vr.ReadOnly), - ee = m.colorModeForRenderPass(), - J = w.paint.get("line-dasharray"), - re = w.paint.get("line-pattern"), - se = re.constantOr(1), - de = w.paint.get("line-gradient"), - ue = w.getCrossfadeParameters(), - ge = se ? "linePattern" : J ? "lineSDF" : de ? "lineGradient" : "line", - Te = m.context, - he = Te.gl, - De = m.transform; - let He = !0; - for (const je of P) { - const qe = y.getTile(je); - if (se && !qe.patternsLoaded()) continue; - const $e = qe.getBucket(w); - if (!$e) continue; - const Rt = $e.programConfigurations.get(w.id), - Nt = m.context.program.get(), - yt = m.useProgram(ge, Rt), - sr = He || yt.program !== Nt, - Xr = m.style.map.terrain && m.style.map.terrain.getTerrainData(je), - xi = re.constantOr(null); - if (xi && qe.imageAtlas) { - const Wr = qe.imageAtlas, - Ei = Wr.patternPositions[xi.to.toString()], - Qi = Wr.patternPositions[xi.from.toString()]; - Ei && Qi && Rt.setConstantPatternPositions(Ei, Qi) - } - const ki = De.getProjectionData({ - overscaledTileID: je, - applyGlobeMatrix: !D, - applyTerrainMatrix: !0 - }), - Pi = De.getPixelScale(), - ji = se ? wh(m, qe, w, Pi, ue) : J ? gs(m, qe, w, Pi, J, ue) : de ? bh(m, qe, w, Pi, $e.lineClipsArray.length) : sl(m, qe, w, Pi); - if (se) Te.activeTexture.set(he.TEXTURE0), qe.imageAtlasTexture.bind(he.LINEAR, he.CLAMP_TO_EDGE), Rt.updatePaintBuffers(ue); - else if (J && (sr || m.lineAtlas.dirty)) Te.activeTexture.set(he.TEXTURE0), m.lineAtlas.bind(Te); - else if (de) { - const Wr = $e.gradients[w.id]; - let Ei = Wr.texture; - if (w.gradientVersion !== Wr.version) { - let Qi = 256; - if (w.stepInterpolant) { - const dn = y.getSource().maxzoom, - xn = je.canonical.z === dn ? Math.ceil(1 << m.transform.maxZoom - je.canonical.z) : 1; - Qi = o.ah(o.c3($e.maxLineLength / o.$ * 1024 * xn), 256, Te.maxTextureSize) - } - Wr.gradient = o.c4({ - expression: w.gradientExpression(), - evaluationKey: "lineProgress", - resolution: Qi, - image: Wr.gradient || void 0, - clips: $e.lineClipsArray - }), Wr.texture ? Wr.texture.update(Wr.gradient) : Wr.texture = new o.T(Te, Wr.gradient, he.RGBA), Wr.version = w.gradientVersion, Ei = Wr.texture - } - Te.activeTexture.set(he.TEXTURE0), Ei.bind(w.stepInterpolant ? he.NEAREST : he.LINEAR, he.CLAMP_TO_EDGE) - } - const Ui = m.stencilModeForClipping(je); - yt.draw(Te, he.TRIANGLES, U, Ui, ee, wr.disabled, ji, Xr, ki, w.id, $e.layoutVertexBuffer, $e.indexBuffer, $e.segments, w.paint, m.transform.zoom, Rt, $e.layoutVertexBuffer2), He = !1 - } - })(e, n, s, u, d) : o.cf(s) ? (function(m, y, w, P, M) { - const D = w.paint.get("fill-color"), - z = w.paint.get("fill-opacity"); - if (z.constantOr(1) === 0) return; - const { - isRenderingToTexture: B - } = M, U = m.colorModeForRenderPass(), ee = w.paint.get("fill-pattern"), J = m.opaquePassEnabledForLayer() && !ee.constantOr(1) && D.constantOr(o.bf.transparent).a === 1 && z.constantOr(0) === 1 ? "opaque" : "translucent"; - if (m.renderPass === J) { - const re = m.getDepthModeForSublayer(1, m.renderPass === "opaque" ? Vr.ReadWrite : Vr.ReadOnly); - ml(m, y, w, P, re, U, !1, B) - } - if (m.renderPass === "translucent" && w.paint.get("fill-antialias")) { - const re = m.getDepthModeForSublayer(w.getPaintProperty("fill-outline-color") ? 2 : 0, Vr.ReadOnly); - ml(m, y, w, P, re, U, !0, B) - } - })(e, n, s, u, d) : o.cg(s) ? (function(m, y, w, P, M) { - const D = w.paint.get("fill-extrusion-opacity"); - if (D === 0) return; - const { - isRenderingToTexture: z - } = M; - if (m.renderPass === "translucent") { - const B = new Vr(m.context.gl.LEQUAL, Vr.ReadWrite, m.depthRangeFor3D); - if (D !== 1 || w.paint.get("fill-extrusion-pattern").constantOr(1)) Rc(m, y, w, P, B, hi.disabled, Ti.disabled, z), Rc(m, y, w, P, B, m.stencilModeFor3D(), m.colorModeForRenderPass(), z); - else { - const U = m.colorModeForRenderPass(); - Rc(m, y, w, P, B, hi.disabled, U, z) - } - } - })(e, n, s, u, d) : o.ch(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "offscreen" && m.renderPass !== "translucent") return; - const { - isRenderingToTexture: D - } = M, z = m.context, B = m.style.projection.useSubdivision, U = m.getDepthModeForSublayer(0, Vr.ReadOnly), ee = m.colorModeForRenderPass(); - if (m.renderPass === "offscreen")(function(J, re, se, de, ue, ge, Te) { - const he = J.context, - De = he.gl; - for (const He of se) { - const je = re.getTile(He), - qe = je.dem; - if (!qe || !qe.data || !je.needsHillshadePrepare) continue; - const $e = qe.dim, - Rt = qe.stride, - Nt = qe.getPixels(); - if (he.activeTexture.set(De.TEXTURE1), he.pixelStoreUnpackPremultiplyAlpha.set(!1), je.demTexture = je.demTexture || J.getTileTexture(Rt), je.demTexture) { - const sr = je.demTexture; - sr.update(Nt, { - premultiply: !1 - }), sr.bind(De.NEAREST, De.CLAMP_TO_EDGE) - } else je.demTexture = new o.T(he, Nt, De.RGBA, { - premultiply: !1 - }), je.demTexture.bind(De.NEAREST, De.CLAMP_TO_EDGE); - he.activeTexture.set(De.TEXTURE0); - let yt = je.fbo; - if (!yt) { - const sr = new o.T(he, { - width: $e, - height: $e, - data: null - }, De.RGBA); - sr.bind(De.LINEAR, De.CLAMP_TO_EDGE), yt = je.fbo = he.createFramebuffer($e, $e, !0, !1), yt.colorAttachment.set(sr.texture) - } - he.bindFramebuffer.set(yt.framebuffer), he.viewport.set([0, 0, $e, $e]), J.useProgram("hillshadePrepare").draw(he, De.TRIANGLES, ue, ge, Te, wr.disabled, yh(je.tileID, qe), null, null, de.id, J.rasterBoundsBuffer, J.quadTriangleIndexBuffer, J.rasterBoundsSegments), je.needsHillshadePrepare = !1 - } - })(m, y, P, w, U, hi.disabled, ee), z.viewport.set([0, 0, m.width, m.height]); - else if (m.renderPass === "translucent") - if (B) { - const [J, re, se] = m.stencilConfigForOverlapTwoPass(P); - bs(m, y, w, se, J, U, ee, !1, D), bs(m, y, w, se, re, U, ee, !0, D) - } else { - const [J, re] = m.getStencilConfigForOverlapAndUpdateStencilID(P); - bs(m, y, w, re, J, U, ee, !1, D) - } - })(e, n, s, u, d) : o.ci(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent" || !P.length) return; - const { - isRenderingToTexture: D - } = M, z = m.style.projection.useSubdivision, B = m.getDepthModeForSublayer(0, Vr.ReadOnly), U = m.colorModeForRenderPass(); - if (z) { - const [ee, J, re] = m.stencilConfigForOverlapTwoPass(P); - Bc(m, y, w, re, ee, B, U, !1, D), Bc(m, y, w, re, J, B, U, !0, D) - } else { - const [ee, J] = m.getStencilConfigForOverlapAndUpdateStencilID(P); - Bc(m, y, w, J, ee, B, U, !1, D) - } - })(e, n, s, u, d) : o.cj(s) ? (function(m, y, w, P, M) { - if (m.renderPass !== "translucent" || w.paint.get("raster-opacity") === 0 || !P.length) return; - const { - isRenderingToTexture: D - } = M, z = y.getSource(), B = m.style.projection.useSubdivision; - if (z instanceof Ft) ws(m, y, w, P, null, !1, !1, z.tileCoords, z.flippedWindingOrder, D); - else if (B) { - const [U, ee, J] = m.stencilConfigForOverlapTwoPass(P); - ws(m, y, w, J, U, !1, !0, _l, !1, D), ws(m, y, w, J, ee, !0, !0, _l, !1, D) - } else { - const [U, ee] = m.getStencilConfigForOverlapAndUpdateStencilID(P); - ws(m, y, w, ee, U, !1, !0, _l, !1, D) - } - })(e, n, s, u, d) : o.ck(s) ? (function(m, y, w, P, M) { - const D = w.paint.get("background-color"), - z = w.paint.get("background-opacity"); - if (z === 0) return; - const { - isRenderingToTexture: B - } = M, U = m.context, ee = U.gl, J = m.style.projection, re = m.transform, se = re.tileSize, de = w.paint.get("background-pattern"); - if (m.isPatternMissing(de)) return; - const ue = !de && D.a === 1 && z === 1 && m.opaquePassEnabledForLayer() ? "opaque" : "translucent"; - if (m.renderPass !== ue) return; - const ge = hi.disabled, - Te = m.getDepthModeForSublayer(0, ue === "opaque" ? Vr.ReadWrite : Vr.ReadOnly), - he = m.colorModeForRenderPass(), - De = m.useProgram(de ? "backgroundPattern" : "background"), - He = P || xe(re, { - tileSize: se, - terrain: m.style.map.terrain - }); - de && (U.activeTexture.set(ee.TEXTURE0), m.imageManager.bind(m.context)); - const je = w.getCrossfadeParameters(); - for (const qe of He) { - const $e = re.getProjectionData({ - overscaledTileID: qe, - applyGlobeMatrix: !B, - applyTerrainMatrix: !0 - }), - Rt = de ? Sh(z, m, de, { - tileID: qe, - tileSize: se - }, je) : Ch(z, D), - Nt = m.style.map.terrain && m.style.map.terrain.getTerrainData(qe), - yt = J.getMeshFromTileID(U, qe.canonical, !1, !0, "raster"); - De.draw(U, ee.TRIANGLES, Te, ge, he, wr.backCCW, Rt, Nt, $e, w.id, yt.vertexBuffer, yt.indexBuffer, yt.segments) - } - })(e, 0, s, u, d) : o.cl(s) && (function(m, y, w, P) { - const { - isRenderingGlobe: M - } = P, D = m.context, z = w.implementation, B = m.style.projection, U = m.transform, ee = U.getProjectionDataForCustomLayer(M), J = { - farZ: U.farZ, - nearZ: U.nearZ, - fov: U.fov * Math.PI / 180, - modelViewProjectionMatrix: U.modelViewProjectionMatrix, - projectionMatrix: U.projectionMatrix, - shaderData: { - variantName: B.shaderVariantName, - vertexShaderPrelude: `const float PI = 3.141592653589793; -uniform mat4 u_projection_matrix; -${B.shaderPreludeCode.vertexSource}`, - define: B.shaderDefine - }, - defaultProjectionData: ee - }, re = z.renderingMode ? z.renderingMode : "2d"; - if (m.renderPass === "offscreen") { - const se = z.prerender; - se && (m.setCustomLayerDefaults(), D.setColorMode(m.colorModeForRenderPass()), se.call(z, D.gl, J), D.setDirty(), m.setBaseState()) - } else if (m.renderPass === "translucent") { - m.setCustomLayerDefaults(), D.setColorMode(m.colorModeForRenderPass()), D.setStencilMode(hi.disabled); - const se = re === "3d" ? m.getDepthModeFor3D() : m.getDepthModeForSublayer(0, Vr.ReadOnly); - D.setDepthMode(se), z.render(D.gl, J), D.setDirty(), m.setBaseState(), D.bindFramebuffer.set(null) - } - })(e, 0, s, d)) - } - saveTileTexture(e) { - const n = this._tileTextures[e.size[0]]; - n ? n.push(e) : this._tileTextures[e.size[0]] = [e] - } - getTileTexture(e) { - const n = this._tileTextures[e]; - return n && n.length > 0 ? n.pop() : null - } - isPatternMissing(e) { - if (!e) return !1; - if (!e.from || !e.to) return !0; - const n = this.imageManager.getPattern(e.from.toString()), - s = this.imageManager.getPattern(e.to.toString()); - return !n || !s - } - useProgram(e, n, s = !1, u = []) { - this.cache = this.cache || {}; - const d = !!this.style.map.terrain, - m = this.style.projection, - y = s ? pi.projectionMercator : m.shaderPreludeCode, - w = s ? Jr : m.shaderDefine, - P = e + (n ? n.cacheKey : "") + `/${s?ti:m.shaderVariantName}` + (this._showOverdrawInspector ? "/overdraw" : "") + (d ? "/terrain" : "") + (u ? `/${u.join("/")}` : ""); - return this.cache[P] || (this.cache[P] = new yc(this.context, pi[e], n, Sc[e], this._showOverdrawInspector, d, y, w, u)), this.cache[P] - } - 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 e = this.context.gl; - this.context.cullFace.set(!1), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(e.FUNC_ADD) - } - initDebugOverlayCanvas() { - this.debugOverlayCanvas == null && (this.debugOverlayCanvas = document.createElement("canvas"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new o.T(this.context, this.debugOverlayCanvas, this.context.gl.RGBA)) - } - destroy() { - this.debugOverlayTexture && this.debugOverlayTexture.destroy() - } - overLimit() { - const { - drawingBufferWidth: e, - drawingBufferHeight: n - } = this.context.gl; - return this.width !== e || this.height !== n - } - } - - function Ts(h, e) { - let n, s = !1, - u = null, - d = null; - const m = () => { - u = null, s && (h.apply(d, n), u = setTimeout(m, e), s = !1) - }; - return (...y) => (s = !0, d = this, n = y, u || m(), u) - } - class yl { - constructor(e) { - this._getCurrentHash = () => { - const n = window.location.hash.replace("#", ""); - if (this._hashName) { - let s; - return n.split("&").map((u => u.split("="))).forEach((u => { - u[0] === this._hashName && (s = u) - })), (s && s[1] || "").split("/") - } - return n.split("/") - }, this._onHashChange = () => { - const n = this._getCurrentHash(); - if (!this._isValidHash(n)) return !1; - const s = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(n[3] || 0) : this._map.getBearing(); - return this._map.jumpTo({ - center: [+n[2], +n[1]], - zoom: +n[0], - bearing: s, - pitch: +(n[4] || 0) - }), !0 - }, this._updateHashUnthrottled = () => { - const n = window.location.href.replace(/(#.*)?$/, this.getHashString()); - window.history.replaceState(window.history.state, null, n) - }, this._removeHash = () => { - const n = this._getCurrentHash(); - if (n.length === 0) return; - const s = n.join("/"); - let u = s; - u.split("&").length > 0 && (u = u.split("&")[0]), this._hashName && (u = `${this._hashName}=${s}`); - let d = window.location.hash.replace(u, ""); - d.startsWith("#&") ? d = d.slice(0, 1) + d.slice(2) : d === "#" && (d = ""); - let m = window.location.href.replace(/(#.+)?$/, d); - m = m.replace("&&", "&"), window.history.replaceState(window.history.state, null, m) - }, this._updateHash = Ts(this._updateHashUnthrottled, 300), this._hashName = e && encodeURIComponent(e) - } - addTo(e) { - return this._map = e, addEventListener("hashchange", this._onHashChange, !1), this._map.on("moveend", this._updateHash), this - } - remove() { - return removeEventListener("hashchange", this._onHashChange, !1), this._map.off("moveend", this._updateHash), clearTimeout(this._updateHash()), this._removeHash(), delete this._map, this - } - getHashString(e) { - const n = this._map.getCenter(), - s = Math.round(100 * this._map.getZoom()) / 100, - u = Math.ceil((s * Math.LN2 + Math.log(512 / 360 / .5)) / Math.LN10), - d = Math.pow(10, u), - m = Math.round(n.lng * d) / d, - y = Math.round(n.lat * d) / d, - w = this._map.getBearing(), - P = this._map.getPitch(); - let M = ""; - if (M += e ? `/${m}/${y}/${s}` : `${s}/${y}/${m}`, (w || P) && (M += "/" + Math.round(10 * w) / 10), P && (M += `/${Math.round(P)}`), this._hashName) { - const D = this._hashName; - let z = !1; - const B = window.location.hash.slice(1).split("&").map((U => { - const ee = U.split("=")[0]; - return ee === D ? (z = !0, `${ee}=${M}`) : U - })).filter((U => U)); - return z || B.push(`${D}=${M}`), `#${B.join("&")}` - } - return `#${M}` - } - _isValidHash(e) { - if (e.length < 3 || e.some(isNaN)) return !1; - try { - new o.S(+e[2], +e[1]) - } catch { - return !1 - } - const n = +e[0], - s = +(e[3] || 0), - u = +(e[4] || 0); - return n >= this._map.getMinZoom() && n <= this._map.getMaxZoom() && s >= -180 && s <= 180 && u >= this._map.getMinPitch() && u <= this._map.getMaxPitch() - } - } - const Ga = { - linearity: .3, - easing: o.cm(0, 0, .3, 1) - }, - jc = o.e({ - deceleration: 2500, - maxSpeed: 1400 - }, Ga), - qh = o.e({ - deceleration: 20, - maxSpeed: 1400 - }, Ga), - Vh = o.e({ - deceleration: 1e3, - maxSpeed: 360 - }, Ga), - Uh = o.e({ - deceleration: 1e3, - maxSpeed: 90 - }, Ga), - Zh = o.e({ - deceleration: 1e3, - maxSpeed: 360 - }, Ga); - class $h { - constructor(e) { - this._map = e, this.clear() - } - clear() { - this._inertiaBuffer = [] - } - record(e) { - this._drainInertiaBuffer(), this._inertiaBuffer.push({ - time: ye.now(), - settings: e - }) - } - _drainInertiaBuffer() { - const e = this._inertiaBuffer, - n = ye.now(); - for (; e.length > 0 && n - e[0].time > 160;) e.shift() - } - _onMoveEnd(e) { - if (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) return; - const n = { - zoom: 0, - bearing: 0, - pitch: 0, - roll: 0, - pan: new o.P(0, 0), - pinchAround: void 0, - around: void 0 - }; - for (const { - settings: d - } - of this._inertiaBuffer) n.zoom += d.zoomDelta || 0, n.bearing += d.bearingDelta || 0, n.pitch += d.pitchDelta || 0, n.roll += d.rollDelta || 0, d.panDelta && n.pan._add(d.panDelta), d.around && (n.around = d.around), d.pinchAround && (n.pinchAround = d.pinchAround); - const s = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, - u = {}; - if (n.pan.mag()) { - const d = js(n.pan.mag(), s, o.e({}, jc, e || {})), - m = n.pan.mult(d.amount / n.pan.mag()), - y = this._map.cameraHelper.handlePanInertia(m, this._map.transform); - u.center = y.easingCenter, u.offset = y.easingOffset, xa(u, d) - } - if (n.zoom) { - const d = js(n.zoom, s, qh); - u.zoom = this._map.transform.zoom + d.amount, xa(u, d) - } - if (n.bearing) { - const d = js(n.bearing, s, Vh); - u.bearing = this._map.transform.bearing + o.ah(d.amount, -179, 179), xa(u, d) - } - if (n.pitch) { - const d = js(n.pitch, s, Uh); - u.pitch = this._map.transform.pitch + d.amount, xa(u, d) - } - if (n.roll) { - const d = js(n.roll, s, Zh); - u.roll = this._map.transform.roll + o.ah(d.amount, -179, 179), xa(u, d) - } - if (u.zoom || u.bearing) { - const d = n.pinchAround === void 0 ? n.around : n.pinchAround; - u.around = d ? this._map.unproject(d) : this._map.getCenter() - } - return this.clear(), o.e(u, { - noMoveStart: !0 - }) - } - } - - function xa(h, e) { - (!h.duration || h.duration < e.duration) && (h.duration = e.duration, h.easing = e.easing) - } - - function js(h, e, n) { - const { - maxSpeed: s, - linearity: u, - deceleration: d - } = n, m = o.ah(h * u / (e / 1e3), -s, s), y = Math.abs(m) / (d * u); - return { - easing: n.easing, - duration: 1e3 * y, - amount: m * (y / 2) - } - } - class Wn extends o.l { - preventDefault() { - this._defaultPrevented = !0 - } - get defaultPrevented() { - return this._defaultPrevented - } - constructor(e, n, s, u = {}) { - s = s instanceof MouseEvent ? s : new MouseEvent(e, s); - const d = X.mousePos(n.getCanvas(), s), - m = n.unproject(d); - super(e, o.e({ - point: d, - lngLat: m, - originalEvent: s - }, u)), this._defaultPrevented = !1, this.target = n - } - } - class qs extends o.l { - preventDefault() { - this._defaultPrevented = !0 - } - get defaultPrevented() { - return this._defaultPrevented - } - constructor(e, n, s) { - const u = e === "touchend" ? s.changedTouches : s.touches, - d = X.touchPos(n.getCanvasContainer(), u), - m = d.map((w => n.unproject(w))), - y = d.reduce(((w, P, M, D) => w.add(P.div(D.length))), new o.P(0, 0)); - super(e, { - points: d, - point: y, - lngLats: m, - lngLat: n.unproject(y), - originalEvent: s - }), this._defaultPrevented = !1 - } - } - class qc extends o.l { - preventDefault() { - this._defaultPrevented = !0 - } - get defaultPrevented() { - return this._defaultPrevented - } - constructor(e, n, s) { - super(e, { - originalEvent: s - }), this._defaultPrevented = !1 - } - } - class Gh { - constructor(e, n) { - this._map = e, this._clickTolerance = n.clickTolerance - } - reset() { - delete this._mousedownPos - } - wheel(e) { - return this._firePreventable(new qc(e.type, this._map, e)) - } - mousedown(e, n) { - return this._mousedownPos = n, this._firePreventable(new Wn(e.type, this._map, e)) - } - mouseup(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - click(e, n) { - this._mousedownPos && this._mousedownPos.dist(n) >= this._clickTolerance || this._map.fire(new Wn(e.type, this._map, e)) - } - dblclick(e) { - return this._firePreventable(new Wn(e.type, this._map, e)) - } - mouseover(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - mouseout(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - touchstart(e) { - return this._firePreventable(new qs(e.type, this._map, e)) - } - touchmove(e) { - this._map.fire(new qs(e.type, this._map, e)) - } - touchend(e) { - this._map.fire(new qs(e.type, this._map, e)) - } - touchcancel(e) { - this._map.fire(new qs(e.type, this._map, e)) - } - _firePreventable(e) { - if (this._map.fire(e), e.defaultPrevented) return {} - } - isEnabled() { - return !0 - } - isActive() { - return !1 - } - enable() {} - disable() {} - } - class Hh { - constructor(e) { - this._map = e - } - reset() { - this._delayContextMenu = !1, this._ignoreContextMenu = !0, delete this._contextMenuEvent - } - mousemove(e) { - this._map.fire(new Wn(e.type, this._map, e)) - } - mousedown() { - this._delayContextMenu = !0, this._ignoreContextMenu = !1 - } - mouseup() { - this._delayContextMenu = !1, this._contextMenuEvent && (this._map.fire(new Wn("contextmenu", this._map, this._contextMenuEvent)), delete this._contextMenuEvent) - } - contextmenu(e) { - this._delayContextMenu ? this._contextMenuEvent = e : this._ignoreContextMenu || this._map.fire(new Wn(e.type, this._map, e)), this._map.listens("contextmenu") && e.preventDefault() - } - isEnabled() { - return !0 - } - isActive() { - return !1 - } - enable() {} - disable() {} - } - class Vs { - constructor(e) { - this._map = e - } - 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(e) { - return this.transform.screenPointToLocation(o.P.convert(e), this._map.terrain) - } - } - class Vc { - constructor(e, n) { - this._map = e, this._tr = new Vs(e), this._el = e.getCanvasContainer(), this._container = e.getContainer(), this._clickTolerance = n.clickTolerance || 1 - } - isEnabled() { - return !!this._enabled - } - isActive() { - return !!this._active - } - enable() { - this.isEnabled() || (this._enabled = !0) - } - disable() { - this.isEnabled() && (this._enabled = !1) - } - mousedown(e, n) { - this.isEnabled() && e.shiftKey && e.button === 0 && (X.disableDrag(), this._startPos = this._lastPos = n, this._active = !0) - } - mousemoveWindow(e, n) { - if (!this._active) return; - const s = n; - if (this._lastPos.equals(s) || !this._box && s.dist(this._startPos) < this._clickTolerance) return; - const u = this._startPos; - this._lastPos = s, this._box || (this._box = X.create("div", "maplibregl-boxzoom", this._container), this._container.classList.add("maplibregl-crosshair"), this._fireEvent("boxzoomstart", e)); - const d = Math.min(u.x, s.x), - m = Math.max(u.x, s.x), - y = Math.min(u.y, s.y), - w = Math.max(u.y, s.y); - X.setTransform(this._box, `translate(${d}px,${y}px)`), this._box.style.width = m - d + "px", this._box.style.height = w - y + "px" - } - mouseupWindow(e, n) { - if (!this._active || e.button !== 0) return; - const s = this._startPos, - u = n; - if (this.reset(), X.suppressClick(), s.x !== u.x || s.y !== u.y) return this._map.fire(new o.l("boxzoomend", { - originalEvent: e - })), { - cameraAnimation: d => d.fitScreenCoordinates(s, u, this._tr.bearing, { - linear: !0 - }) - }; - this._fireEvent("boxzoomcancel", e) - } - keydown(e) { - this._active && e.keyCode === 27 && (this.reset(), this._fireEvent("boxzoomcancel", e)) - } - reset() { - this._active = !1, this._container.classList.remove("maplibregl-crosshair"), this._box && (X.remove(this._box), this._box = null), X.enableDrag(), delete this._startPos, delete this._lastPos - } - _fireEvent(e, n) { - return this._map.fire(new o.l(e, { - originalEvent: n - })) - } - } - - function Us(h, e) { - if (h.length !== e.length) throw new Error(`The number of touches and points are not equal - touches ${h.length}, points ${e.length}`); - const n = {}; - for (let s = 0; s < h.length; s++) n[h[s].identifier] = e[s]; - return n - } - class Wh { - constructor(e) { - this.reset(), this.numTouches = e.numTouches - } - reset() { - delete this.centroid, delete this.startTime, delete this.touches, this.aborted = !1 - } - touchstart(e, n, s) { - (this.centroid || s.length > this.numTouches) && (this.aborted = !0), this.aborted || (this.startTime === void 0 && (this.startTime = e.timeStamp), s.length === this.numTouches && (this.centroid = (function(u) { - const d = new o.P(0, 0); - for (const m of u) d._add(m); - return d.div(u.length) - })(n), this.touches = Us(s, n))) - } - touchmove(e, n, s) { - if (this.aborted || !this.centroid) return; - const u = Us(s, n); - for (const d in this.touches) { - const m = u[d]; - (!m || m.dist(this.touches[d]) > 30) && (this.aborted = !0) - } - } - touchend(e, n, s) { - if ((!this.centroid || e.timeStamp - this.startTime > 500) && (this.aborted = !0), s.length === 0) { - const u = !this.aborted && this.centroid; - if (this.reset(), u) return u - } - } - } - class Xn { - constructor(e) { - this.singleTap = new Wh(e), this.numTaps = e.numTaps, this.reset() - } - reset() { - this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset() - } - touchstart(e, n, s) { - this.singleTap.touchstart(e, n, s) - } - touchmove(e, n, s) { - this.singleTap.touchmove(e, n, s) - } - touchend(e, n, s) { - const u = this.singleTap.touchend(e, n, s); - if (u) { - const d = e.timeStamp - this.lastTime < 500, - m = !this.lastTap || this.lastTap.dist(u) < 30; - if (d && m || this.reset(), this.count++, this.lastTime = e.timeStamp, this.lastTap = u, this.count === this.numTaps) return this.reset(), u - } - } - } - class ba { - constructor(e) { - this._tr = new Vs(e), this._zoomIn = new Xn({ - numTouches: 1, - numTaps: 2 - }), this._zoomOut = new Xn({ - numTouches: 2, - numTaps: 1 - }), this.reset() - } - reset() { - this._active = !1, this._zoomIn.reset(), this._zoomOut.reset() - } - touchstart(e, n, s) { - this._zoomIn.touchstart(e, n, s), this._zoomOut.touchstart(e, n, s) - } - touchmove(e, n, s) { - this._zoomIn.touchmove(e, n, s), this._zoomOut.touchmove(e, n, s) - } - touchend(e, n, s) { - const u = this._zoomIn.touchend(e, n, s), - d = this._zoomOut.touchend(e, n, s), - m = this._tr; - return u ? (this._active = !0, e.preventDefault(), setTimeout((() => this.reset()), 0), { - cameraAnimation: y => y.easeTo({ - duration: 300, - zoom: m.zoom + 1, - around: m.unproject(u) - }, { - originalEvent: e - }) - }) : d ? (this._active = !0, e.preventDefault(), setTimeout((() => this.reset()), 0), { - cameraAnimation: y => y.easeTo({ - duration: 300, - zoom: m.zoom - 1, - around: m.unproject(d) - }, { - originalEvent: e - }) - }) : void 0 - } - touchcancel() { - this.reset() - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Zs { - constructor(e) { - this._enabled = !!e.enable, this._moveStateManager = e.moveStateManager, this._clickTolerance = e.clickTolerance || 1, this._moveFunction = e.move, this._activateOnStart = !!e.activateOnStart, e.assignEvents(this), this.reset() - } - reset(e) { - this._active = !1, this._moved = !1, delete this._lastPoint, this._moveStateManager.endMove(e) - } - _move(...e) { - const n = this._moveFunction(...e); - if (n.bearingDelta || n.pitchDelta || n.rollDelta || n.around || n.panDelta) return this._active = !0, n - } - dragStart(e, n) { - this.isEnabled() && !this._lastPoint && this._moveStateManager.isValidStartEvent(e) && (this._moveStateManager.startMove(e), this._lastPoint = Array.isArray(n) ? n[0] : n, this._activateOnStart && this._lastPoint && (this._active = !0)) - } - dragMove(e, n) { - if (!this.isEnabled()) return; - const s = this._lastPoint; - if (!s) return; - if (e.preventDefault(), !this._moveStateManager.isValidMoveEvent(e)) return void this.reset(e); - const u = Array.isArray(n) ? n[0] : n; - return !this._moved && u.dist(s) < this._clickTolerance ? void 0 : (this._moved = !0, this._lastPoint = u, this._move(s, u)) - } - dragEnd(e) { - this.isEnabled() && this._lastPoint && this._moveStateManager.isValidEndEvent(e) && (this._moved && X.suppressClick(), this.reset(e)) - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - getClickTolerance() { - return this._clickTolerance - } - } - const wa = 0, - $s = 2, - _p = { - [wa]: 1, - [$s]: 2 - }; - class ko { - constructor(e) { - this._correctEvent = e.checkCorrectEvent - } - startMove(e) { - const n = X.mouseButton(e); - this._eventButton = n - } - endMove(e) { - delete this._eventButton - } - isValidStartEvent(e) { - return this._correctEvent(e) - } - isValidMoveEvent(e) { - return !(function(n, s) { - const u = _p[s]; - return n.buttons === void 0 || (n.buttons & u) !== u - })(e, this._eventButton) - } - isValidEndEvent(e) { - return X.mouseButton(e) === this._eventButton - } - } - class gp { - constructor() { - this._firstTouch = void 0 - } - _isOneFingerTouch(e) { - return e.targetTouches.length === 1 - } - _isSameTouchEvent(e) { - return e.targetTouches[0].identifier === this._firstTouch - } - startMove(e) { - this._firstTouch = e.targetTouches[0].identifier - } - endMove(e) { - delete this._firstTouch - } - isValidStartEvent(e) { - return this._isOneFingerTouch(e) - } - isValidMoveEvent(e) { - return this._isOneFingerTouch(e) && this._isSameTouchEvent(e) - } - isValidEndEvent(e) { - return this._isOneFingerTouch(e) && this._isSameTouchEvent(e) - } - } - class vp { - constructor(e = new ko({ - checkCorrectEvent: () => !0 - }), n = new gp) { - this.mouseMoveStateManager = e, this.oneFingerTouchMoveStateManager = n - } - _executeRelevantHandler(e, n, s) { - return e instanceof MouseEvent ? n(e) : typeof TouchEvent < "u" && e instanceof TouchEvent ? s(e) : void 0 - } - startMove(e) { - this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.startMove(n)), (n => this.oneFingerTouchMoveStateManager.startMove(n))) - } - endMove(e) { - this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.endMove(n)), (n => this.oneFingerTouchMoveStateManager.endMove(n))) - } - isValidStartEvent(e) { - return this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.isValidStartEvent(n)), (n => this.oneFingerTouchMoveStateManager.isValidStartEvent(n))) - } - isValidMoveEvent(e) { - return this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.isValidMoveEvent(n)), (n => this.oneFingerTouchMoveStateManager.isValidMoveEvent(n))) - } - isValidEndEvent(e) { - return this._executeRelevantHandler(e, (n => this.mouseMoveStateManager.isValidEndEvent(n)), (n => this.oneFingerTouchMoveStateManager.isValidEndEvent(n))) - } - } - const Eo = h => { - h.mousedown = h.dragStart, h.mousemoveWindow = h.dragMove, h.mouseup = h.dragEnd, h.contextmenu = e => { - e.preventDefault() - } - }; - class zo { - constructor(e, n) { - this._clickTolerance = e.clickTolerance || 1, this._map = n, this.reset() - } - reset() { - this._active = !1, this._touches = {}, this._sum = new o.P(0, 0) - } - _shouldBePrevented(e) { - return e < (this._map.cooperativeGestures.isEnabled() ? 2 : 1) - } - touchstart(e, n, s) { - return this._calculateTransform(e, n, s) - } - touchmove(e, n, s) { - if (this._active) { - if (!this._shouldBePrevented(s.length)) return e.preventDefault(), this._calculateTransform(e, n, s); - this._map.cooperativeGestures.notifyGestureBlocked("touch_pan", e) - } - } - touchend(e, n, s) { - this._calculateTransform(e, n, s), this._active && this._shouldBePrevented(s.length) && this.reset() - } - touchcancel() { - this.reset() - } - _calculateTransform(e, n, s) { - s.length > 0 && (this._active = !0); - const u = Us(s, n), - d = new o.P(0, 0), - m = new o.P(0, 0); - let y = 0; - for (const P in u) { - const M = u[P], - D = this._touches[P]; - D && (d._add(M), m._add(M.sub(D)), y++, u[P] = M) - } - if (this._touches = u, this._shouldBePrevented(y) || !m.mag()) return; - const w = m.div(y); - return this._sum._add(w), this._sum.mag() < this._clickTolerance ? void 0 : { - around: d.div(y), - panDelta: w - } - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Ta { - constructor() { - this.reset() - } - reset() { - this._active = !1, delete this._firstTwoTouches - } - touchstart(e, n, s) { - this._firstTwoTouches || s.length < 2 || (this._firstTwoTouches = [s[0].identifier, s[1].identifier], this._start([n[0], n[1]])) - } - touchmove(e, n, s) { - if (!this._firstTwoTouches) return; - e.preventDefault(); - const [u, d] = this._firstTwoTouches, m = Kt(s, n, u), y = Kt(s, n, d); - if (!m || !y) return; - const w = this._aroundCenter ? null : m.add(y).div(2); - return this._move([m, y], w, e) - } - touchend(e, n, s) { - if (!this._firstTwoTouches) return; - const [u, d] = this._firstTwoTouches, m = Kt(s, n, u), y = Kt(s, n, d); - m && y || (this._active && X.suppressClick(), this.reset()) - } - touchcancel() { - this.reset() - } - enable(e) { - this._enabled = !0, this._aroundCenter = !!e && e.around === "center" - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return !!this._enabled - } - isActive() { - return !!this._active - } - } - - function Kt(h, e, n) { - for (let s = 0; s < h.length; s++) - if (h[s].identifier === n) return e[s] - } - - function Uc(h, e) { - return Math.log(h / e) / Math.LN2 - } - class xl extends Ta { - reset() { - super.reset(), delete this._distance, delete this._startDistance - } - _start(e) { - this._startDistance = this._distance = e[0].dist(e[1]) - } - _move(e, n) { - const s = this._distance; - if (this._distance = e[0].dist(e[1]), this._active || !(Math.abs(Uc(this._distance, this._startDistance)) < .1)) return this._active = !0, { - zoomDelta: Uc(this._distance, s), - pinchAround: n - } - } - } - - function Zc(h, e) { - return 180 * h.angleWith(e) / Math.PI - } - class Gs extends Ta { - reset() { - super.reset(), delete this._minDiameter, delete this._startVector, delete this._vector - } - _start(e) { - this._startVector = this._vector = e[0].sub(e[1]), this._minDiameter = e[0].dist(e[1]) - } - _move(e, n, s) { - const u = this._vector; - if (this._vector = e[0].sub(e[1]), this._active || !this._isBelowThreshold(this._vector)) return this._active = !0, { - bearingDelta: Zc(this._vector, u), - pinchAround: n - } - } - _isBelowThreshold(e) { - this._minDiameter = Math.min(this._minDiameter, e.mag()); - const n = 25 / (Math.PI * this._minDiameter) * 360, - s = Zc(e, this._startVector); - return Math.abs(s) < n - } - } - - function Cs(h) { - return Math.abs(h.y) > Math.abs(h.x) - } - class bl extends Ta { - constructor(e) { - super(), this._currentTouchCount = 0, this._map = e - } - reset() { - super.reset(), this._valid = void 0, delete this._firstMove, delete this._lastPoints - } - touchstart(e, n, s) { - super.touchstart(e, n, s), this._currentTouchCount = s.length - } - _start(e) { - this._lastPoints = e, Cs(e[0].sub(e[1])) && (this._valid = !1) - } - _move(e, n, s) { - if (this._map.cooperativeGestures.isEnabled() && this._currentTouchCount < 3) return; - const u = e[0].sub(this._lastPoints[0]), - d = e[1].sub(this._lastPoints[1]); - return this._valid = this.gestureBeginsVertically(u, d, s.timeStamp), this._valid ? (this._lastPoints = e, this._active = !0, { - pitchDelta: (u.y + d.y) / 2 * -.5 - }) : void 0 - } - gestureBeginsVertically(e, n, s) { - if (this._valid !== void 0) return this._valid; - const u = e.mag() >= 2, - d = n.mag() >= 2; - if (!u && !d) return; - if (!u || !d) return this._firstMove === void 0 && (this._firstMove = s), s - this._firstMove < 100 && void 0; - const m = e.y > 0 == n.y > 0; - return Cs(e) && Cs(n) && m - } - } - const si = { - panStep: 100, - bearingStep: 15, - pitchStep: 10 - }; - class wl { - constructor(e) { - this._tr = new Vs(e); - const n = si; - this._panStep = n.panStep, this._bearingStep = n.bearingStep, this._pitchStep = n.pitchStep, this._rotationDisabled = !1 - } - reset() { - this._active = !1 - } - keydown(e) { - if (e.altKey || e.ctrlKey || e.metaKey) return; - let n = 0, - s = 0, - u = 0, - d = 0, - m = 0; - switch (e.keyCode) { - case 61: - case 107: - case 171: - case 187: - n = 1; - break; - case 189: - case 109: - case 173: - n = -1; - break; - case 37: - e.shiftKey ? s = -1 : (e.preventDefault(), d = -1); - break; - case 39: - e.shiftKey ? s = 1 : (e.preventDefault(), d = 1); - break; - case 38: - e.shiftKey ? u = 1 : (e.preventDefault(), m = -1); - break; - case 40: - e.shiftKey ? u = -1 : (e.preventDefault(), m = 1); - break; - default: - return - } - return this._rotationDisabled && (s = 0, u = 0), { - cameraAnimation: y => { - const w = this._tr; - y.easeTo({ - duration: 300, - easeId: "keyboardHandler", - easing: yp, - zoom: n ? Math.round(w.zoom) + n * (e.shiftKey ? 2 : 1) : w.zoom, - bearing: w.bearing + s * this._bearingStep, - pitch: w.pitch + u * this._pitchStep, - offset: [-d * this._panStep, -m * this._panStep], - center: w.center - }, { - originalEvent: e - }) - } - } - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - disableRotation() { - this._rotationDisabled = !0 - } - enableRotation() { - this._rotationDisabled = !1 - } - } - - function yp(h) { - return h * (2 - h) - } - const Tl = 4.000244140625, - xp = 1 / 450; - class Xh { - constructor(e, n) { - this._onTimeout = s => { - this._type = "wheel", this._delta -= this._lastValue, this._active || this._start(s) - }, this._map = e, this._tr = new Vs(e), this._triggerRenderFrame = n, this._delta = 0, this._defaultZoomRate = .01, this._wheelZoomRate = xp - } - setZoomRate(e) { - this._defaultZoomRate = e - } - setWheelZoomRate(e) { - this._wheelZoomRate = e - } - isEnabled() { - return !!this._enabled - } - isActive() { - return !!this._active || this._finishTimeout !== void 0 - } - isZooming() { - return !!this._zooming - } - enable(e) { - this.isEnabled() || (this._enabled = !0, this._aroundCenter = !!e && e.around === "center") - } - disable() { - this.isEnabled() && (this._enabled = !1) - } - _shouldBePrevented(e) { - return !!this._map.cooperativeGestures.isEnabled() && !(e.ctrlKey || this._map.cooperativeGestures.isBypassed(e)) - } - wheel(e) { - if (!this.isEnabled()) return; - if (this._shouldBePrevented(e)) return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom", e); - let n = e.deltaMode === WheelEvent.DOM_DELTA_LINE ? 40 * e.deltaY : e.deltaY; - const s = ye.now(), - u = s - (this._lastWheelEventTime || 0); - this._lastWheelEventTime = s, n !== 0 && n % Tl == 0 ? this._type = "wheel" : n !== 0 && Math.abs(n) < 4 ? this._type = "trackpad" : u > 400 ? (this._type = null, this._lastValue = n, this._timeout = setTimeout(this._onTimeout, 40, e)) : this._type || (this._type = Math.abs(u * n) < 200 ? "trackpad" : "wheel", this._timeout && (clearTimeout(this._timeout), this._timeout = null, n += this._lastValue)), e.shiftKey && n && (n /= 4), this._type && (this._lastWheelEvent = e, this._delta -= n, this._active || this._start(e)), e.preventDefault() - } - _start(e) { - 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 n = X.mousePos(this._map.getCanvas(), e), - s = this._tr; - this._aroundPoint = this._aroundCenter ? s.transform.locationToScreenPoint(o.S.convert(s.center)) : n, this._frameId || (this._frameId = !0, this._triggerRenderFrame()) - } - renderFrame() { - if (!this._frameId || (this._frameId = null, !this.isActive())) return; - const e = this._tr.transform; - if (typeof this._lastExpectedZoom == "number") { - const y = e.zoom - this._lastExpectedZoom; - typeof this._startZoom == "number" && (this._startZoom += y), typeof this._targetZoom == "number" && (this._targetZoom += y) - } - if (this._delta !== 0) { - const y = this._type === "wheel" && Math.abs(this._delta) > Tl ? this._wheelZoomRate : this._defaultZoomRate; - let w = 2 / (1 + Math.exp(-Math.abs(this._delta * y))); - this._delta < 0 && w !== 0 && (w = 1 / w); - const P = typeof this._targetZoom != "number" ? e.scale : o.af(this._targetZoom); - this._targetZoom = e.getConstrained(e.getCameraLngLat(), o.ak(P * w)).zoom, this._type === "wheel" && (this._startZoom = e.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0 - } - const n = typeof this._targetZoom != "number" ? e.zoom : this._targetZoom, - s = this._startZoom, - u = this._easing; - let d, m = !1; - if (this._type === "wheel" && s && u) { - const y = ye.now() - this._lastWheelEventTime, - w = Math.min((y + 5) / 200, 1), - P = u(w); - d = o.C.number(s, n, P), w < 1 ? this._frameId || (this._frameId = !0) : m = !0 - } else d = n, m = !0; - return this._active = !0, m && (this._active = !1, this._finishTimeout = setTimeout((() => { - this._zooming = !1, this._triggerRenderFrame(), delete this._targetZoom, delete this._lastExpectedZoom, delete this._finishTimeout - }), 200)), this._lastExpectedZoom = d, { - noInertia: !0, - needsRenderFrame: !m, - zoomDelta: d - e.zoom, - around: this._aroundPoint, - originalEvent: this._lastWheelEvent - } - } - _smoothOutEasing(e) { - let n = o.co; - if (this._prevEase) { - const s = this._prevEase, - u = (ye.now() - s.start) / s.duration, - d = s.easing(u + .01) - s.easing(u), - m = .27 / Math.sqrt(d * d + 1e-4) * .01, - y = Math.sqrt(.0729 - m * m); - n = o.cm(m, y, .25, 1) - } - return this._prevEase = { - start: ye.now(), - duration: e, - easing: n - }, n - } - reset() { - this._active = !1, this._zooming = !1, delete this._targetZoom, delete this._lastExpectedZoom, this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout) - } - } - class $c { - constructor(e, n) { - this._clickZoom = e, this._tapZoom = n - } - 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 Gc { - constructor(e) { - this._tr = new Vs(e), this.reset() - } - reset() { - this._active = !1 - } - dblclick(e, n) { - return e.preventDefault(), { - cameraAnimation: s => { - s.easeTo({ - duration: 300, - zoom: this._tr.zoom + (e.shiftKey ? -1 : 1), - around: this._tr.unproject(n) - }, { - originalEvent: e - }) - } - } - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Kh { - constructor() { - this._tap = new Xn({ - 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(e, n, s) { - if (!this._swipePoint) - if (this._tapTime) { - const u = n[0], - d = e.timeStamp - this._tapTime < 500, - m = this._tapPoint.dist(u) < 30; - d && m ? s.length > 0 && (this._swipePoint = u, this._swipeTouch = s[0].identifier) : this.reset() - } else this._tap.touchstart(e, n, s) - } - touchmove(e, n, s) { - if (this._tapTime) { - if (this._swipePoint) { - if (s[0].identifier !== this._swipeTouch) return; - const u = n[0], - d = u.y - this._swipePoint.y; - return this._swipePoint = u, e.preventDefault(), this._active = !0, { - zoomDelta: d / 128 - } - } - } else this._tap.touchmove(e, n, s) - } - touchend(e, n, s) { - if (this._tapTime) this._swipePoint && s.length === 0 && this.reset(); - else { - const u = this._tap.touchend(e, n, s); - u && (this._tapTime = e.timeStamp, this._tapPoint = u) - } - } - touchcancel() { - this.reset() - } - enable() { - this._enabled = !0 - } - disable() { - this._enabled = !1, this.reset() - } - isEnabled() { - return this._enabled - } - isActive() { - return this._active - } - } - class Yh { - constructor(e, n, s) { - this._el = e, this._mousePan = n, this._touchPan = s - } - enable(e) { - this._inertiaOptions = e || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add("maplibregl-touch-drag-pan") - } - disable() { - this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove("maplibregl-touch-drag-pan") - } - isEnabled() { - return this._mousePan.isEnabled() && this._touchPan.isEnabled() - } - isActive() { - return this._mousePan.isActive() || this._touchPan.isActive() - } - } - class Hc { - constructor(e, n, s, u) { - this._pitchWithRotate = e.pitchWithRotate, this._rollEnabled = e.rollEnabled, this._mouseRotate = n, this._mousePitch = s, this._mouseRoll = u - } - enable() { - this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable(), this._rollEnabled && this._mouseRoll.enable() - } - disable() { - this._mouseRotate.disable(), this._mousePitch.disable(), this._mouseRoll.disable() - } - isEnabled() { - return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled()) && (!this._rollEnabled || this._mouseRoll.isEnabled()) - } - isActive() { - return this._mouseRotate.isActive() || this._mousePitch.isActive() || this._mouseRoll.isActive() - } - } - class Jh { - constructor(e, n, s, u) { - this._el = e, this._touchZoom = n, this._touchRotate = s, this._tapDragZoom = u, this._rotationDisabled = !1, this._enabled = !0 - } - enable(e) { - this._touchZoom.enable(e), this._rotationDisabled || this._touchRotate.enable(e), this._tapDragZoom.enable(), this._el.classList.add("maplibregl-touch-zoom-rotate") - } - disable() { - this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove("maplibregl-touch-zoom-rotate") - } - isEnabled() { - return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled() - } - isActive() { - return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive() - } - disableRotation() { - this._rotationDisabled = !0, this._touchRotate.disable() - } - enableRotation() { - this._rotationDisabled = !1, this._touchZoom.isEnabled() && this._touchRotate.enable() - } - } - class Qh { - constructor(e, n) { - this._bypassKey = navigator.userAgent.indexOf("Mac") !== -1 ? "metaKey" : "ctrlKey", this._map = e, this._options = n, this._enabled = !1 - } - isActive() { - return !1 - } - reset() {} - _setupUI() { - if (this._container) return; - const e = this._map.getCanvasContainer(); - e.classList.add("maplibregl-cooperative-gestures"), this._container = X.create("div", "maplibregl-cooperative-gesture-screen", e); - let n = this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText"); - this._bypassKey === "metaKey" && (n = this._map._getUIString("CooperativeGesturesHandler.MacHelpText")); - const s = this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"), - u = document.createElement("div"); - u.className = "maplibregl-desktop-message", u.textContent = n, this._container.appendChild(u); - const d = document.createElement("div"); - d.className = "maplibregl-mobile-message", d.textContent = s, this._container.appendChild(d), this._container.setAttribute("aria-hidden", "true") - } - _destroyUI() { - this._container && (X.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._destroyUI() - } - isEnabled() { - return this._enabled - } - isBypassed(e) { - return e[this._bypassKey] - } - notifyGestureBlocked(e, n) { - this._enabled && (this._map.fire(new o.l("cooperativegestureprevented", { - gestureType: e, - originalEvent: n - })), this._container.classList.add("maplibregl-show"), setTimeout((() => { - this._container.classList.remove("maplibregl-show") - }), 100)) - } - } - const Ca = h => h.zoom || h.drag || h.roll || h.pitch || h.rotate; - class Oi extends o.l {} - - function Hs(h) { - return h.panDelta && h.panDelta.mag() || h.zoomDelta || h.bearingDelta || h.pitchDelta || h.rollDelta - } - class Wc { - constructor(e, n) { - this.handleWindowEvent = u => { - this.handleEvent(u, `${u.type}Window`) - }, this.handleEvent = (u, d) => { - if (u.type === "blur") return void this.stop(!0); - this._updatingCamera = !0; - const m = u.type === "renderFrame" ? void 0 : u, - y = { - needsRenderFrame: !1 - }, - w = {}, - P = {}; - for (const { - handlerName: z, - handler: B, - allowed: U - } - of this._handlers) { - if (!B.isEnabled()) continue; - let ee; - if (this._blockedByActive(P, U, z)) B.reset(); - else if (B[d || u.type]) { - if (o.cp(u, d || u.type)) { - const J = X.mousePos(this._map.getCanvas(), u); - ee = B[d || u.type](u, J) - } else if (o.cq(u, d || u.type)) { - const J = this._getMapTouches(u.touches), - re = X.touchPos(this._map.getCanvas(), J); - ee = B[d || u.type](u, re, J) - } else o.cr(d || u.type) || (ee = B[d || u.type](u)); - this.mergeHandlerResult(y, w, ee, z, m), ee && ee.needsRenderFrame && this._triggerRenderFrame() - }(ee || B.isActive()) && (P[z] = B) - } - const M = {}; - for (const z in this._previousActiveHandlers) P[z] || (M[z] = m); - this._previousActiveHandlers = P, (Object.keys(M).length || Hs(y)) && (this._changes.push([y, w, M]), this._triggerRenderFrame()), (Object.keys(P).length || Hs(y)) && this._map._stop(!0), this._updatingCamera = !1; - const { - cameraAnimation: D - } = y; - D && (this._inertia.clear(), this._fireEvents({}, {}, !0), this._changes = [], D(this._map)) - }, this._map = e, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new $h(e), this._bearingSnap = n.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(n); - const s = this._el; - this._listeners = [ - [s, "touchstart", { - passive: !0 - }], - [s, "touchmove", { - passive: !1 - }], - [s, "touchend", void 0], - [s, "touchcancel", void 0], - [s, "mousedown", void 0], - [s, "mousemove", void 0], - [s, "mouseup", void 0], - [document, "mousemove", { - capture: !0 - }], - [document, "mouseup", void 0], - [s, "mouseover", void 0], - [s, "mouseout", void 0], - [s, "dblclick", void 0], - [s, "click", void 0], - [s, "keydown", { - capture: !1 - }], - [s, "keyup", void 0], - [s, "wheel", { - passive: !1 - }], - [s, "contextmenu", void 0], - [window, "blur", void 0] - ]; - for (const [u, d, m] of this._listeners) X.addEventListener(u, d, u === document ? this.handleWindowEvent : this.handleEvent, m) - } - destroy() { - for (const [e, n, s] of this._listeners) X.removeEventListener(e, n, e === document ? this.handleWindowEvent : this.handleEvent, s) - } - _addDefaultHandlers(e) { - const n = this._map, - s = n.getCanvasContainer(); - this._add("mapEvent", new Gh(n, e)); - const u = n.boxZoom = new Vc(n, e); - this._add("boxZoom", u), e.interactive && e.boxZoom && u.enable(); - const d = n.cooperativeGestures = new Qh(n, e.cooperativeGestures); - this._add("cooperativeGestures", d), e.cooperativeGestures && d.enable(); - const m = new ba(n), - y = new Gc(n); - n.doubleClickZoom = new $c(y, m), this._add("tapZoom", m), this._add("clickZoom", y), e.interactive && e.doubleClickZoom && n.doubleClickZoom.enable(); - const w = new Kh; - this._add("tapDragZoom", w); - const P = n.touchPitch = new bl(n); - this._add("touchPitch", P), e.interactive && e.touchPitch && n.touchPitch.enable(e.touchPitch); - const M = () => n.project(n.getCenter()), - D = (function({ - enable: ue, - clickTolerance: ge, - aroundCenter: Te = !0, - minPixelCenterThreshold: he = 100, - rotateDegreesPerPixelMoved: De = .8 - }, He) { - const je = new ko({ - checkCorrectEvent: qe => X.mouseButton(qe) === 0 && qe.ctrlKey || X.mouseButton(qe) === 2 && !qe.ctrlKey - }); - return new Zs({ - clickTolerance: ge, - move: (qe, $e) => { - const Rt = He(); - if (Te && Math.abs(Rt.y - qe.y) > he) return { - bearingDelta: o.cn(new o.P(qe.x, $e.y), $e, Rt) - }; - let Nt = ($e.x - qe.x) * De; - return Te && $e.y < Rt.y && (Nt = -Nt), { - bearingDelta: Nt - } - }, - moveStateManager: je, - enable: ue, - assignEvents: Eo - }) - })(e, M), - z = (function({ - enable: ue, - clickTolerance: ge, - pitchDegreesPerPixelMoved: Te = -.5 - }) { - const he = new ko({ - checkCorrectEvent: De => X.mouseButton(De) === 0 && De.ctrlKey || X.mouseButton(De) === 2 - }); - return new Zs({ - clickTolerance: ge, - move: (De, He) => ({ - pitchDelta: (He.y - De.y) * Te - }), - moveStateManager: he, - enable: ue, - assignEvents: Eo - }) - })(e), - B = (function({ - enable: ue, - clickTolerance: ge, - rollDegreesPerPixelMoved: Te = .3 - }, he) { - const De = new ko({ - checkCorrectEvent: He => X.mouseButton(He) === 2 && He.ctrlKey - }); - return new Zs({ - clickTolerance: ge, - move: (He, je) => { - const qe = he(); - let $e = (je.x - He.x) * Te; - return je.y < qe.y && ($e = -$e), { - rollDelta: $e - } - }, - moveStateManager: De, - enable: ue, - assignEvents: Eo - }) - })(e, M); - n.dragRotate = new Hc(e, D, z, B), this._add("mouseRotate", D, ["mousePitch"]), this._add("mousePitch", z, ["mouseRotate", "mouseRoll"]), this._add("mouseRoll", B, ["mousePitch"]), e.interactive && e.dragRotate && n.dragRotate.enable(); - const U = (function({ - enable: ue, - clickTolerance: ge - }) { - const Te = new ko({ - checkCorrectEvent: he => X.mouseButton(he) === 0 && !he.ctrlKey - }); - return new Zs({ - clickTolerance: ge, - move: (he, De) => ({ - around: De, - panDelta: De.sub(he) - }), - activateOnStart: !0, - moveStateManager: Te, - enable: ue, - assignEvents: Eo - }) - })(e), - ee = new zo(e, n); - n.dragPan = new Yh(s, U, ee), this._add("mousePan", U), this._add("touchPan", ee, ["touchZoom", "touchRotate"]), e.interactive && e.dragPan && n.dragPan.enable(e.dragPan); - const J = new Gs, - re = new xl; - n.touchZoomRotate = new Jh(s, re, J, w), this._add("touchRotate", J, ["touchPan", "touchZoom"]), this._add("touchZoom", re, ["touchPan", "touchRotate"]), e.interactive && e.touchZoomRotate && n.touchZoomRotate.enable(e.touchZoomRotate); - const se = n.scrollZoom = new Xh(n, (() => this._triggerRenderFrame())); - this._add("scrollZoom", se, ["mousePan"]), e.interactive && e.scrollZoom && n.scrollZoom.enable(e.scrollZoom); - const de = n.keyboard = new wl(n); - this._add("keyboard", de), e.interactive && e.keyboard && n.keyboard.enable(), this._add("blockableMapEvent", new Hh(n)) - } - _add(e, n, s) { - this._handlers.push({ - handlerName: e, - handler: n, - allowed: s - }), this._handlersById[e] = n - } - stop(e) { - if (!this._updatingCamera) { - for (const { - handler: n - } - of this._handlers) n.reset(); - this._inertia.clear(), this._fireEvents({}, {}, e), this._changes = [] - } - } - isActive() { - for (const { - handler: e - } - of this._handlers) - if (e.isActive()) return !0; - return !1 - } - isZooming() { - return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming() - } - isRotating() { - return !!this._eventsInProgress.rotate - } - isMoving() { - return !!Ca(this._eventsInProgress) || this.isZooming() - } - _blockedByActive(e, n, s) { - for (const u in e) - if (u !== s && (!n || n.indexOf(u) < 0)) return !0; - return !1 - } - _getMapTouches(e) { - const n = []; - for (const s of e) this._el.contains(s.target) && n.push(s); - return n - } - mergeHandlerResult(e, n, s, u, d) { - if (!s) return; - o.e(e, s); - const m = { - handlerName: u, - originalEvent: s.originalEvent || d - }; - s.zoomDelta !== void 0 && (n.zoom = m), s.panDelta !== void 0 && (n.drag = m), s.rollDelta !== void 0 && (n.roll = m), s.pitchDelta !== void 0 && (n.pitch = m), s.bearingDelta !== void 0 && (n.rotate = m) - } - _applyChanges() { - const e = {}, - n = {}, - s = {}; - for (const [u, d, m] of this._changes) u.panDelta && (e.panDelta = (e.panDelta || new o.P(0, 0))._add(u.panDelta)), u.zoomDelta && (e.zoomDelta = (e.zoomDelta || 0) + u.zoomDelta), u.bearingDelta && (e.bearingDelta = (e.bearingDelta || 0) + u.bearingDelta), u.pitchDelta && (e.pitchDelta = (e.pitchDelta || 0) + u.pitchDelta), u.rollDelta && (e.rollDelta = (e.rollDelta || 0) + u.rollDelta), u.around !== void 0 && (e.around = u.around), u.pinchAround !== void 0 && (e.pinchAround = u.pinchAround), u.noInertia && (e.noInertia = u.noInertia), o.e(n, d), o.e(s, m); - this._updateMapTransform(e, n, s), this._changes = [] - } - _updateMapTransform(e, n, s) { - const u = this._map, - d = u._getTransformForUpdate(), - m = u.terrain; - if (!(Hs(e) || m && this._terrainMovement)) return this._fireEvents(n, s, !0); - u._stop(!0); - let { - panDelta: y, - zoomDelta: w, - bearingDelta: P, - pitchDelta: M, - rollDelta: D, - around: z, - pinchAround: B - } = e; - B !== void 0 && (z = B), z = z || u.transform.centerPoint, m && !d.isPointOnMapSurface(z) && (z = d.centerPoint); - const U = { - panDelta: y, - zoomDelta: w, - rollDelta: D, - pitchDelta: M, - bearingDelta: P, - around: z - }; - this._map.cameraHelper.useGlobeControls && !d.isPointOnMapSurface(z) && (z = d.centerPoint); - const ee = z.distSqr(d.centerPoint) < .01 ? d.center : d.screenPointToLocation(y ? z.sub(y) : z); - m ? (this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(U, d), this._terrainMovement || !n.drag && !n.zoom ? n.drag && this._terrainMovement ? d.setCenter(d.screenPointToLocation(d.centerPoint.sub(y))) : this._map.cameraHelper.handleMapControlsPan(U, d, ee) : (this._terrainMovement = !0, this._map._elevationFreeze = !0, this._map.cameraHelper.handleMapControlsPan(U, d, ee))) : (this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(U, d), this._map.cameraHelper.handleMapControlsPan(U, d, ee)), u._applyUpdatedTransform(d), this._map._update(), e.noInertia || this._inertia.record(e), this._fireEvents(n, s, !0) - } - _fireEvents(e, n, s) { - const u = Ca(this._eventsInProgress), - d = Ca(e), - m = {}; - for (const D in e) { - const { - originalEvent: z - } = e[D]; - this._eventsInProgress[D] || (m[`${D}start`] = z), this._eventsInProgress[D] = e[D] - }!u && d && this._fireEvent("movestart", d.originalEvent); - for (const D in m) this._fireEvent(D, m[D]); - d && this._fireEvent("move", d.originalEvent); - for (const D in e) { - const { - originalEvent: z - } = e[D]; - this._fireEvent(D, z) - } - const y = {}; - let w; - for (const D in this._eventsInProgress) { - const { - handlerName: z, - originalEvent: B - } = this._eventsInProgress[D]; - this._handlersById[z].isActive() || (delete this._eventsInProgress[D], w = n[z] || B, y[`${D}end`] = w) - } - for (const D in y) this._fireEvent(D, y[D]); - const P = Ca(this._eventsInProgress), - M = (u || d) && !P; - if (M && this._terrainMovement) { - this._map._elevationFreeze = !1, this._terrainMovement = !1; - const D = this._map._getTransformForUpdate(); - this._map.getCenterClampedToGround() && D.recalculateZoomAndCenter(this._map.terrain), this._map._applyUpdatedTransform(D) - } - if (s && M) { - this._updatingCamera = !0; - const D = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), - z = B => B !== 0 && -this._bearingSnap < B && B < this._bearingSnap; - !D || !D.essential && ye.prefersReducedMotion ? (this._map.fire(new o.l("moveend", { - originalEvent: w - })), z(this._map.getBearing()) && this._map.resetNorth()) : (z(D.bearing || this._map.getBearing()) && (D.bearing = 0), D.freezeElevation = !0, this._map.easeTo(D, { - originalEvent: w - })), this._updatingCamera = !1 - } - } - _fireEvent(e, n) { - this._map.fire(new o.l(e, n ? { - originalEvent: n - } : {})) - } - _requestFrame() { - return this._map.triggerRepaint(), this._map._renderTaskQueue.add((e => { - delete this._frameId, this.handleEvent(new Oi("renderFrame", { - timeStamp: e - })), this._applyChanges() - })) - } - _triggerRenderFrame() { - this._frameId === void 0 && (this._frameId = this._requestFrame()) - } - } - class ed extends o.E { - constructor(e, n, s) { - super(), this._renderFrameCallback = () => { - const u = Math.min((ye.now() - this._easeStart) / this._easeOptions.duration, 1); - this._onEaseFrame(this._easeOptions.easing(u)), u < 1 && this._easeFrameId ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop() - }, this._moving = !1, this._zooming = !1, this.transform = e, this._bearingSnap = s.bearingSnap, this.cameraHelper = n, this.on("moveend", (() => { - delete this._requestedCameraState - })) - } - migrateProjection(e, n) { - e.apply(this.transform), this.transform = e, this.cameraHelper = n - } - getCenter() { - return new o.S(this.transform.center.lng, this.transform.center.lat) - } - setCenter(e, n) { - return this.jumpTo({ - center: e - }, n) - } - getCenterElevation() { - return this.transform.elevation - } - setCenterElevation(e, n) { - return this.jumpTo({ - elevation: e - }, n), this - } - getCenterClampedToGround() { - return this._centerClampedToGround - } - setCenterClampedToGround(e) { - this._centerClampedToGround = e - } - panBy(e, n, s) { - return e = o.P.convert(e).mult(-1), this.panTo(this.transform.center, o.e({ - offset: e - }, n), s) - } - panTo(e, n, s) { - return this.easeTo(o.e({ - center: e - }, n), s) - } - getZoom() { - return this.transform.zoom - } - setZoom(e, n) { - return this.jumpTo({ - zoom: e - }, n), this - } - zoomTo(e, n, s) { - return this.easeTo(o.e({ - zoom: e - }, n), s) - } - zoomIn(e, n) { - return this.zoomTo(this.getZoom() + 1, e, n), this - } - zoomOut(e, n) { - return this.zoomTo(this.getZoom() - 1, e, n), this - } - getVerticalFieldOfView() { - return this.transform.fov - } - setVerticalFieldOfView(e, n) { - return e != this.transform.fov && (this.transform.setFov(e), this.fire(new o.l("movestart", n)).fire(new o.l("move", n)).fire(new o.l("moveend", n))), this - } - getBearing() { - return this.transform.bearing - } - setBearing(e, n) { - return this.jumpTo({ - bearing: e - }, n), this - } - getPadding() { - return this.transform.padding - } - setPadding(e, n) { - return this.jumpTo({ - padding: e - }, n), this - } - rotateTo(e, n, s) { - return this.easeTo(o.e({ - bearing: e - }, n), s) - } - resetNorth(e, n) { - return this.rotateTo(0, o.e({ - duration: 1e3 - }, e), n), this - } - resetNorthPitch(e, n) { - return this.easeTo(o.e({ - bearing: 0, - pitch: 0, - roll: 0, - duration: 1e3 - }, e), n), this - } - snapToNorth(e, n) { - return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(e, n) : this - } - getPitch() { - return this.transform.pitch - } - setPitch(e, n) { - return this.jumpTo({ - pitch: e - }, n), this - } - getRoll() { - return this.transform.roll - } - setRoll(e, n) { - return this.jumpTo({ - roll: e - }, n), this - } - cameraForBounds(e, n) { - e = dt.convert(e).adjustAntiMeridian(); - const s = n && n.bearing || 0; - return this._cameraForBoxAndBearing(e.getNorthWest(), e.getSouthEast(), s, n) - } - _cameraForBoxAndBearing(e, n, s, u) { - const d = { - top: 0, - bottom: 0, - right: 0, - left: 0 - }; - if (typeof(u = o.e({ - padding: d, - offset: [0, 0], - maxZoom: this.transform.maxZoom - }, u)).padding == "number") { - const P = u.padding; - u.padding = { - top: P, - bottom: P, - right: P, - left: P - } - } - const m = o.e(d, u.padding); - u.padding = m; - const y = this.transform, - w = new dt(e, n); - return this.cameraHelper.cameraForBoxAndBearing(u, m, w, s, y) - } - fitBounds(e, n, s) { - return this._fitInternal(this.cameraForBounds(e, n), n, s) - } - fitScreenCoordinates(e, n, s, u, d) { - return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(o.P.convert(e)), this.transform.screenPointToLocation(o.P.convert(n)), s, u), u, d) - } - _fitInternal(e, n, s) { - return e ? (delete(n = o.e(e, n)).padding, n.linear ? this.easeTo(n, s) : this.flyTo(n, s)) : this - } - jumpTo(e, n) { - this.stop(); - const s = this._getTransformForUpdate(); - let u = !1, - d = !1, - m = !1; - const y = s.zoom; - this.cameraHelper.handleJumpToCenterZoom(s, e); - const w = s.zoom !== y; - return "elevation" in e && s.elevation !== +e.elevation && s.setElevation(+e.elevation), "bearing" in e && s.bearing !== +e.bearing && (u = !0, s.setBearing(+e.bearing)), "pitch" in e && s.pitch !== +e.pitch && (d = !0, s.setPitch(+e.pitch)), "roll" in e && s.roll !== +e.roll && (m = !0, s.setRoll(+e.roll)), e.padding == null || s.isPaddingEqual(e.padding) || s.setPadding(e.padding), this._applyUpdatedTransform(s), this.fire(new o.l("movestart", n)).fire(new o.l("move", n)), w && this.fire(new o.l("zoomstart", n)).fire(new o.l("zoom", n)).fire(new o.l("zoomend", n)), u && this.fire(new o.l("rotatestart", n)).fire(new o.l("rotate", n)).fire(new o.l("rotateend", n)), d && this.fire(new o.l("pitchstart", n)).fire(new o.l("pitch", n)).fire(new o.l("pitchend", n)), m && this.fire(new o.l("rollstart", n)).fire(new o.l("roll", n)).fire(new o.l("rollend", n)), this.fire(new o.l("moveend", n)) - } - calculateCameraOptionsFromTo(e, n, s, u = 0) { - const d = o.a1.fromLngLat(e, n), - m = o.a1.fromLngLat(s, u), - y = m.x - d.x, - w = m.y - d.y, - P = m.z - d.z, - M = Math.hypot(y, w, P); - if (M === 0) throw new Error("Can't calculate camera options with same From and To"); - const D = Math.hypot(y, w), - z = o.ak(this.transform.cameraToCenterDistance / M / this.transform.tileSize), - B = 180 * Math.atan2(y, -w) / Math.PI; - let U = 180 * Math.acos(D / M) / Math.PI; - return U = P < 0 ? 90 - U : 90 + U, { - center: m.toLngLat(), - elevation: u, - zoom: z, - pitch: U, - bearing: B - } - } - calculateCameraOptionsFromCameraLngLatAltRotation(e, n, s, u, d) { - const m = this.transform.calculateCenterFromCameraLngLatAlt(e, n, s, u); - return { - center: m.center, - elevation: m.elevation, - zoom: m.zoom, - bearing: s, - pitch: u, - roll: d - } - } - easeTo(e, n) { - this._stop(!1, e.easeId), ((e = o.e({ - offset: [0, 0], - duration: 500, - easing: o.co - }, e)).animate === !1 || !e.essential && ye.prefersReducedMotion) && (e.duration = 0); - const s = this._getTransformForUpdate(), - u = this.getBearing(), - d = s.pitch, - m = s.roll, - y = "bearing" in e ? this._normalizeBearing(e.bearing, u) : u, - w = "pitch" in e ? +e.pitch : d, - P = "roll" in e ? this._normalizeBearing(e.roll, m) : m, - M = "padding" in e ? e.padding : s.padding, - D = o.P.convert(e.offset); - let z, B; - e.around && (z = o.S.convert(e.around), B = s.locationToScreenPoint(z)); - const U = { - moving: this._moving, - zooming: this._zooming, - rotating: this._rotating, - pitching: this._pitching, - rolling: this._rolling - }, - ee = this.cameraHelper.handleEaseTo(s, { - bearing: y, - pitch: w, - roll: P, - padding: M, - around: z, - aroundPoint: B, - offsetAsPoint: D, - offset: e.offset, - zoom: e.zoom, - center: e.center - }); - return this._rotating = this._rotating || u !== y, this._pitching = this._pitching || w !== d, this._rolling = this._rolling || P !== m, this._padding = !s.isPaddingEqual(M), this._zooming = this._zooming || ee.isZooming, this._easeId = e.easeId, this._prepareEase(n, e.noMoveStart, U), this.terrain && this._prepareElevation(ee.elevationCenter), this._ease((J => { - ee.easeFunc(J), this.terrain && !e.freezeElevation && this._updateElevation(J), this._applyUpdatedTransform(s), this._fireMoveEvents(n) - }), (J => { - this.terrain && e.freezeElevation && this._finalizeElevation(), this._afterEase(n, J) - }), e), this - } - _prepareEase(e, n, s = {}) { - this._moving = !0, n || s.moving || this.fire(new o.l("movestart", e)), this._zooming && !s.zooming && this.fire(new o.l("zoomstart", e)), this._rotating && !s.rotating && this.fire(new o.l("rotatestart", e)), this._pitching && !s.pitching && this.fire(new o.l("pitchstart", e)), this._rolling && !s.rolling && this.fire(new o.l("rollstart", e)) - } - _prepareElevation(e) { - this._elevationCenter = e, this._elevationStart = this.transform.elevation, this._elevationTarget = this.terrain.getElevationForLngLatZoom(e, this.transform.tileZoom), this._elevationFreeze = !0 - } - _updateElevation(e) { - this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom)); - const n = this.terrain.getElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom); - if (e < 1 && n !== this._elevationTarget) { - const s = this._elevationTarget - this._elevationStart; - this._elevationStart += e * (s - (n - (s * e + this._elevationStart)) / (1 - e)), this._elevationTarget = n - } - this.transform.setElevation(o.C.number(this._elevationStart, this._elevationTarget, e)) - } - _finalizeElevation() { - this._elevationFreeze = !1, this.getCenterClampedToGround() && this.transform.recalculateZoomAndCenter(this.terrain) - } - _getTransformForUpdate() { - return this.transformCameraUpdate || this.terrain ? (this._requestedCameraState || (this._requestedCameraState = this.transform.clone()), this._requestedCameraState) : this.transform - } - _elevateCameraIfInsideTerrain(e) { - if (!this.terrain && e.elevation >= 0 && e.pitch <= 90) return {}; - const n = e.getCameraLngLat(), - s = e.getCameraAltitude(), - u = this.terrain ? this.terrain.getElevationForLngLatZoom(n, e.zoom) : 0; - if (s < u) { - const d = this.calculateCameraOptionsFromTo(n, u, e.center, e.elevation); - return { - pitch: d.pitch, - zoom: d.zoom - } - } - return {} - } - _applyUpdatedTransform(e) { - const n = []; - if (n.push((u => this._elevateCameraIfInsideTerrain(u))), this.transformCameraUpdate && n.push((u => this.transformCameraUpdate(u))), !n.length) return; - const s = e.clone(); - for (const u of n) { - const d = s.clone(), - { - center: m, - zoom: y, - roll: w, - pitch: P, - bearing: M, - elevation: D - } = u(d); - m && d.setCenter(m), D !== void 0 && d.setElevation(D), y !== void 0 && d.setZoom(y), w !== void 0 && d.setRoll(w), P !== void 0 && d.setPitch(P), M !== void 0 && d.setBearing(M), s.apply(d) - } - this.transform.apply(s) - } - _fireMoveEvents(e) { - this.fire(new o.l("move", e)), this._zooming && this.fire(new o.l("zoom", e)), this._rotating && this.fire(new o.l("rotate", e)), this._pitching && this.fire(new o.l("pitch", e)), this._rolling && this.fire(new o.l("roll", e)) - } - _afterEase(e, n) { - if (this._easeId && n && this._easeId === n) return; - delete this._easeId; - const s = this._zooming, - u = this._rotating, - d = this._pitching, - m = this._rolling; - this._moving = !1, this._zooming = !1, this._rotating = !1, this._pitching = !1, this._rolling = !1, this._padding = !1, s && this.fire(new o.l("zoomend", e)), u && this.fire(new o.l("rotateend", e)), d && this.fire(new o.l("pitchend", e)), m && this.fire(new o.l("rollend", e)), this.fire(new o.l("moveend", e)) - } - flyTo(e, n) { - if (!e.essential && ye.prefersReducedMotion) { - const $e = o.Q(e, ["center", "zoom", "bearing", "pitch", "roll", "elevation"]); - return this.jumpTo($e, n) - } - this.stop(), e = o.e({ - offset: [0, 0], - speed: 1.2, - curve: 1.42, - easing: o.co - }, e); - const s = this._getTransformForUpdate(), - u = s.bearing, - d = s.pitch, - m = s.roll, - y = s.padding, - w = "bearing" in e ? this._normalizeBearing(e.bearing, u) : u, - P = "pitch" in e ? +e.pitch : d, - M = "roll" in e ? this._normalizeBearing(e.roll, m) : m, - D = "padding" in e ? e.padding : s.padding, - z = o.P.convert(e.offset); - let B = s.centerPoint.add(z); - const U = s.screenPointToLocation(B), - ee = this.cameraHelper.handleFlyTo(s, { - bearing: w, - pitch: P, - roll: M, - padding: D, - locationAtOffset: U, - offsetAsPoint: z, - center: e.center, - minZoom: e.minZoom, - zoom: e.zoom - }); - let J = e.curve; - const re = Math.max(s.width, s.height), - se = re / ee.scaleOfZoom, - de = ee.pixelPathLength; - typeof ee.scaleOfMinZoom == "number" && (J = Math.sqrt(re / ee.scaleOfMinZoom / de * 2)); - const ue = J * J; - - function ge($e) { - const Rt = (se * se - re * re + ($e ? -1 : 1) * ue * ue * de * de) / (2 * ($e ? se : re) * ue * de); - return Math.log(Math.sqrt(Rt * Rt + 1) - Rt) - } - - function Te($e) { - return (Math.exp($e) - Math.exp(-$e)) / 2 - } - - function he($e) { - return (Math.exp($e) + Math.exp(-$e)) / 2 - } - const De = ge(!1); - let He = function($e) { - return he(De) / he(De + J * $e) - }, - je = function($e) { - return re * ((he(De) * (Te(Rt = De + J * $e) / he(Rt)) - Te(De)) / ue) / de; - var Rt - }, - qe = (ge(!0) - De) / J; - if (Math.abs(de) < 2e-6 || !isFinite(qe)) { - if (Math.abs(re - se) < 1e-6) return this.easeTo(e, n); - const $e = se < re ? -1 : 1; - qe = Math.abs(Math.log(se / re)) / J, je = () => 0, He = Rt => Math.exp($e * J * Rt) - } - return e.duration = "duration" in e ? +e.duration : 1e3 * qe / ("screenSpeed" in e ? +e.screenSpeed / J : +e.speed), e.maxDuration && e.duration > e.maxDuration && (e.duration = 0), this._zooming = !0, this._rotating = u !== w, this._pitching = P !== d, this._rolling = M !== m, this._padding = !s.isPaddingEqual(D), this._prepareEase(n, !1), this.terrain && this._prepareElevation(ee.targetCenter), this._ease(($e => { - const Rt = $e * qe, - Nt = 1 / He(Rt), - yt = je(Rt); - this._rotating && s.setBearing(o.C.number(u, w, $e)), this._pitching && s.setPitch(o.C.number(d, P, $e)), this._rolling && s.setRoll(o.C.number(m, M, $e)), this._padding && (s.interpolatePadding(y, D, $e), B = s.centerPoint.add(z)), ee.easeFunc($e, Nt, yt, B), this.terrain && !e.freezeElevation && this._updateElevation($e), this._applyUpdatedTransform(s), this._fireMoveEvents(n) - }), (() => { - this.terrain && e.freezeElevation && this._finalizeElevation(), this._afterEase(n) - }), e), this - } - isEasing() { - return !!this._easeFrameId - } - stop() { - return this._stop() - } - _stop(e, n) { - var s; - if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) { - const u = this._onEaseEnd; - delete this._onEaseEnd, u.call(this, n) - } - return e || (s = this.handlers) === null || s === void 0 || s.stop(!1), this - } - _ease(e, n, s) { - s.animate === !1 || s.duration === 0 ? (e(1), n()) : (this._easeStart = ye.now(), this._easeOptions = s, this._onEaseFrame = e, this._onEaseEnd = n, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback)) - } - _normalizeBearing(e, n) { - e = o.aO(e, -180, 180); - const s = Math.abs(e - n); - return Math.abs(e - 360 - n) < s && (e -= 360), Math.abs(e + 360 - n) < s && (e += 360), e - } - queryTerrainElevation(e) { - return this.terrain ? this.terrain.getElevationForLngLatZoom(o.S.convert(e), this.transform.tileZoom) : null - } - } - const Xc = { - compact: !0, - customAttribution: 'MapLibre' - }; - class Kc { - constructor(e = Xc) { - 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 = n => { - !n || n.sourceDataType !== "metadata" && n.sourceDataType !== "visibility" && n.dataType !== "style" && n.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 = e - } - getDefaultPosition() { - return "bottom-right" - } - onAdd(e) { - return this._map = e, this._compact = this.options.compact, this._container = X.create("details", "maplibregl-ctrl maplibregl-ctrl-attrib"), this._compactButton = X.create("summary", "maplibregl-ctrl-attrib-button", this._container), this._compactButton.addEventListener("click", this._toggleAttribution), this._setElementTitle(this._compactButton, "ToggleAttribution"), this._innerContainer = X.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() { - X.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(e, n) { - const s = this._map._getUIString(`AttributionControl.${n}`); - e.title = s, e.setAttribute("aria-label", s) - } - _updateAttributions() { - if (!this._map.style) return; - let e = []; - if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? e = e.concat(this.options.customAttribution.map((u => typeof u != "string" ? "" : u))) : typeof this.options.customAttribution == "string" && e.push(this.options.customAttribution)), this._map.style.stylesheet) { - const u = this._map.style.stylesheet; - this.styleOwner = u.owner, this.styleId = u.id - } - const n = this._map.style.sourceCaches; - for (const u in n) { - const d = n[u]; - if (d.used || d.usedForTerrain) { - const m = d.getSource(); - m.attribution && e.indexOf(m.attribution) < 0 && e.push(m.attribution) - } - } - e = e.filter((u => String(u).trim())), e.sort(((u, d) => u.length - d.length)), e = e.filter(((u, d) => { - for (let m = d + 1; m < e.length; m++) - if (e[m].indexOf(u) >= 0) return !1; - return !0 - })); - const s = e.join(" | "); - s !== this._attribHTML && (this._attribHTML = s, e.length ? (this._innerContainer.innerHTML = X.sanitize(s), this._container.classList.remove("maplibregl-attrib-empty")) : this._container.classList.add("maplibregl-attrib-empty"), this._updateCompact(), this._editLink = null) - } - } - class td { - constructor(e = {}) { - this._updateCompact = () => { - const n = this._container.children; - if (n.length) { - const s = n[0]; - this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? this._compact !== !1 && s.classList.add("maplibregl-compact") : s.classList.remove("maplibregl-compact") - } - }, this.options = e - } - getDefaultPosition() { - return "bottom-left" - } - onAdd(e) { - this._map = e, this._compact = this.options && this.options.compact, this._container = X.create("div", "maplibregl-ctrl"); - const n = X.create("a", "maplibregl-ctrl-logo"); - return n.target = "_blank", n.rel = "noopener nofollow", n.href = "https://maplibre.org/", n.setAttribute("aria-label", this._map._getUIString("LogoControl.Title")), n.setAttribute("rel", "noopener nofollow"), this._container.appendChild(n), this._container.style.display = "block", this._map.on("resize", this._updateCompact), this._updateCompact(), this._container - } - onRemove() { - X.remove(this._container), this._map.off("resize", this._updateCompact), this._map = void 0, this._compact = void 0 - } - } - class Na { - constructor() { - this._queue = [], this._id = 0, this._cleared = !1, this._currentlyRunning = !1 - } - add(e) { - const n = ++this._id; - return this._queue.push({ - callback: e, - id: n, - cancelled: !1 - }), n - } - remove(e) { - const n = this._currentlyRunning, - s = n ? this._queue.concat(n) : this._queue; - for (const u of s) - if (u.id === e) return void(u.cancelled = !0) - } - run(e = 0) { - if (this._currentlyRunning) throw new Error("Attempting to run(), but is already running."); - const n = this._currentlyRunning = this._queue; - this._queue = []; - for (const s of n) - if (!s.cancelled && (s.callback(e), this._cleared)) break; - this._cleared = !1, this._currentlyRunning = !1 - } - clear() { - this._currentlyRunning && (this._cleared = !0), this._queue = [] - } - } - var Cl = o.aJ([{ - name: "a_pos3d", - type: "Int16", - components: 3 - }]); - class hr extends o.E { - constructor(e) { - super(), this._lastTilesetChange = ye.now(), this.sourceCache = e, this._tiles = {}, this._renderableTilesKeys = [], this._sourceTileCache = {}, this.minzoom = 0, this.maxzoom = 22, this.deltaZoom = 1, this.tileSize = e._source.tileSize * 2 ** this.deltaZoom, e.usedForTerrain = !0, e.tileSize = this.tileSize - } - destruct() { - this.sourceCache.usedForTerrain = !1, this.sourceCache.tileSize = null - } - update(e, n) { - this.sourceCache.update(e, n), this._renderableTilesKeys = []; - const s = {}; - for (const u of xe(e, { - tileSize: this.tileSize, - minzoom: this.minzoom, - maxzoom: this.maxzoom, - reparseOverscaled: !1, - terrain: n, - calculateTileZoom: this.sourceCache._source.calculateTileZoom - })) s[u.key] = !0, this._renderableTilesKeys.push(u.key), this._tiles[u.key] || (u.terrainRttPosMatrix32f = new Float64Array(16), o.bY(u.terrainRttPosMatrix32f, 0, o.$, o.$, 0, 0, 1), this._tiles[u.key] = new Nr(u, this.tileSize), this._lastTilesetChange = ye.now()); - for (const u in this._tiles) s[u] || delete this._tiles[u] - } - freeRtt(e) { - for (const n in this._tiles) { - const s = this._tiles[n]; - (!e || s.tileID.equals(e) || s.tileID.isChildOf(e) || e.isChildOf(s.tileID)) && (s.rtt = []) - } - } - getRenderableTiles() { - return this._renderableTilesKeys.map((e => this.getTileByID(e))) - } - getTileByID(e) { - return this._tiles[e] - } - getTerrainCoords(e, n) { - return n ? this._getTerrainCoordsForTileRanges(e, n) : this._getTerrainCoordsForRegularTile(e) - } - _getTerrainCoordsForRegularTile(e) { - const n = {}; - for (const s of this._renderableTilesKeys) { - const u = this._tiles[s].tileID, - d = e.clone(), - m = o.ba(); - if (u.canonical.equals(e.canonical)) o.bY(m, 0, o.$, o.$, 0, 0, 1); - else if (u.canonical.isChildOf(e.canonical)) { - const y = u.canonical.z - e.canonical.z, - w = u.canonical.x - (u.canonical.x >> y << y), - P = u.canonical.y - (u.canonical.y >> y << y), - M = o.$ >> y; - o.bY(m, 0, M, M, 0, 0, 1), o.M(m, m, [-w * M, -P * M, 0]) - } else { - if (!e.canonical.isChildOf(u.canonical)) continue; - { - const y = e.canonical.z - u.canonical.z, - w = e.canonical.x - (e.canonical.x >> y << y), - P = e.canonical.y - (e.canonical.y >> y << y), - M = o.$ >> y; - o.bY(m, 0, o.$, o.$, 0, 0, 1), o.M(m, m, [w * M, P * M, 0]), o.N(m, m, [1 / 2 ** y, 1 / 2 ** y, 0]) - } - } - d.terrainRttPosMatrix32f = new Float32Array(m), n[s] = d - } - return n - } - _getTerrainCoordsForTileRanges(e, n) { - const s = {}; - for (const u of this._renderableTilesKeys) { - const d = this._tiles[u].tileID; - if (!this._isWithinTileRanges(d, n)) continue; - const m = e.clone(), - y = o.ba(); - if (d.canonical.z === e.canonical.z) { - const w = e.canonical.x - d.canonical.x, - P = e.canonical.y - d.canonical.y; - o.bY(y, 0, o.$, o.$, 0, 0, 1), o.M(y, y, [w * o.$, P * o.$, 0]) - } else if (d.canonical.z > e.canonical.z) { - const w = d.canonical.z - e.canonical.z, - P = d.canonical.x - (d.canonical.x >> w << w), - M = d.canonical.y - (d.canonical.y >> w << w), - D = e.canonical.x - (d.canonical.x >> w), - z = e.canonical.y - (d.canonical.y >> w), - B = o.$ >> w; - o.bY(y, 0, B, B, 0, 0, 1), o.M(y, y, [-P * B + D * o.$, -M * B + z * o.$, 0]) - } else { - const w = e.canonical.z - d.canonical.z, - P = e.canonical.x - (e.canonical.x >> w << w), - M = e.canonical.y - (e.canonical.y >> w << w), - D = (e.canonical.x >> w) - d.canonical.x, - z = (e.canonical.y >> w) - d.canonical.y, - B = o.$ << w; - o.bY(y, 0, B, B, 0, 0, 1), o.M(y, y, [P * o.$ + D * B, M * o.$ + z * B, 0]) - } - m.terrainRttPosMatrix32f = new Float32Array(y), s[u] = m - } - return s - } - getSourceTile(e, n) { - const s = this.sourceCache._source; - let u = e.overscaledZ - this.deltaZoom; - if (u > s.maxzoom && (u = s.maxzoom), u < s.minzoom) return null; - this._sourceTileCache[e.key] || (this._sourceTileCache[e.key] = e.scaledTo(u).key); - let d = this.sourceCache.getTileByID(this._sourceTileCache[e.key]); - if ((!d || !d.dem) && n) - for (; u >= s.minzoom && (!d || !d.dem);) d = this.sourceCache.getTileByID(e.scaledTo(u--).key); - return d - } - anyTilesAfterTime(e = Date.now()) { - return this._lastTilesetChange >= e - } - _isWithinTileRanges(e, n) { - return n[e.canonical.z] && e.canonical.x >= n[e.canonical.z].minTileX && e.canonical.x <= n[e.canonical.z].maxTileX && e.canonical.y >= n[e.canonical.z].minTileY && e.canonical.y <= n[e.canonical.z].maxTileY - } - } - class Rr { - constructor(e, n, s) { - this._meshCache = {}, this.painter = e, this.sourceCache = new hr(n), this.options = s, this.exaggeration = typeof s.exaggeration == "number" ? s.exaggeration : 1, this.qualityFactor = 2, this.meshSize = 128, this._demMatrixCache = {}, this.coordsIndex = [], this._coordsTextureSize = 1024 - } - getDEMElevation(e, n, s, u = o.$) { - var d; - if (!(n >= 0 && n < u && s >= 0 && s < u)) return 0; - const m = this.getTerrainData(e), - y = (d = m.tile) === null || d === void 0 ? void 0 : d.dem; - if (!y) return 0; - const w = o.cs([], [n / u * o.$, s / u * o.$], m.u_terrain_matrix), - P = [w[0] * y.dim, w[1] * y.dim], - M = Math.floor(P[0]), - D = Math.floor(P[1]), - z = P[0] - M, - B = P[1] - D; - return y.get(M, D) * (1 - z) * (1 - B) + y.get(M + 1, D) * z * (1 - B) + y.get(M, D + 1) * (1 - z) * B + y.get(M + 1, D + 1) * z * B - } - getElevationForLngLatZoom(e, n) { - if (!o.ct(n, e.wrap())) return 0; - const { - tileID: s, - mercatorX: u, - mercatorY: d - } = this._getOverscaledTileIDFromLngLatZoom(e, n); - return this.getElevation(s, u % o.$, d % o.$, o.$) - } - getElevation(e, n, s, u = o.$) { - return this.getDEMElevation(e, n, s, u) * this.exaggeration - } - getTerrainData(e) { - if (!this._emptyDemTexture) { - const u = this.painter.context, - d = new o.R({ - width: 1, - height: 1 - }, new Uint8Array(4)); - this._emptyDepthTexture = new o.T(u, d, u.gl.RGBA, { - premultiply: !1 - }), this._emptyDemUnpack = [0, 0, 0, 0], this._emptyDemTexture = new o.T(u, new o.R({ - width: 1, - height: 1 - }), u.gl.RGBA, { - premultiply: !1 - }), this._emptyDemTexture.bind(u.gl.NEAREST, u.gl.CLAMP_TO_EDGE), this._emptyDemMatrix = o.ag([]) - } - const n = this.sourceCache.getSourceTile(e, !0); - if (n && n.dem && (!n.demTexture || n.needsTerrainPrepare)) { - const u = this.painter.context; - n.demTexture = this.painter.getTileTexture(n.dem.stride), n.demTexture ? n.demTexture.update(n.dem.getPixels(), { - premultiply: !1 - }) : n.demTexture = new o.T(u, n.dem.getPixels(), u.gl.RGBA, { - premultiply: !1 - }), n.demTexture.bind(u.gl.NEAREST, u.gl.CLAMP_TO_EDGE), n.needsTerrainPrepare = !1 - } - const s = n && n + n.tileID.key + e.key; - if (s && !this._demMatrixCache[s]) { - const u = this.sourceCache.sourceCache._source.maxzoom; - let d = e.canonical.z - n.tileID.canonical.z; - e.overscaledZ > e.canonical.z && (e.canonical.z >= u ? d = e.canonical.z - u : o.w("cannot calculate elevation if elevation maxzoom > source.maxzoom")); - const m = e.canonical.x - (e.canonical.x >> d << d), - y = e.canonical.y - (e.canonical.y >> d << d), - w = o.cu(new Float64Array(16), [1 / (o.$ << d), 1 / (o.$ << d), 0]); - o.M(w, w, [m * o.$, y * o.$, 0]), this._demMatrixCache[e.key] = { - matrix: w, - coord: e - } - } - return { - u_depth: 2, - u_terrain: 3, - u_terrain_dim: n && n.dem && n.dem.dim || 1, - u_terrain_matrix: s ? this._demMatrixCache[e.key].matrix : this._emptyDemMatrix, - u_terrain_unpack: n && n.dem && n.dem.getUnpackVector() || this._emptyDemUnpack, - u_terrain_exaggeration: this.exaggeration, - texture: (n && n.demTexture || this._emptyDemTexture).texture, - depthTexture: (this._fboDepthTexture || this._emptyDepthTexture).texture, - tile: n - } - } - getFramebuffer(e) { - const n = this.painter, - s = n.width / devicePixelRatio, - u = n.height / devicePixelRatio; - return !this._fbo || this._fbo.width === s && this._fbo.height === u || (this._fbo.destroy(), this._fboCoordsTexture.destroy(), this._fboDepthTexture.destroy(), delete this._fbo, delete this._fboDepthTexture, delete this._fboCoordsTexture), this._fboCoordsTexture || (this._fboCoordsTexture = new o.T(n.context, { - width: s, - height: u, - data: null - }, n.context.gl.RGBA, { - premultiply: !1 - }), this._fboCoordsTexture.bind(n.context.gl.NEAREST, n.context.gl.CLAMP_TO_EDGE)), this._fboDepthTexture || (this._fboDepthTexture = new o.T(n.context, { - width: s, - height: u, - data: null - }, n.context.gl.RGBA, { - premultiply: !1 - }), this._fboDepthTexture.bind(n.context.gl.NEAREST, n.context.gl.CLAMP_TO_EDGE)), this._fbo || (this._fbo = n.context.createFramebuffer(s, u, !0, !1), this._fbo.depthAttachment.set(n.context.createRenderbuffer(n.context.gl.DEPTH_COMPONENT16, s, u))), this._fbo.colorAttachment.set(e === "coords" ? this._fboCoordsTexture.texture : this._fboDepthTexture.texture), this._fbo - } - getCoordsTexture() { - const e = this.painter.context; - if (this._coordsTexture) return this._coordsTexture; - const n = new Uint8Array(this._coordsTextureSize * this._coordsTextureSize * 4); - for (let d = 0, m = 0; d < this._coordsTextureSize; d++) - for (let y = 0; y < this._coordsTextureSize; y++, m += 4) n[m + 0] = 255 & y, n[m + 1] = 255 & d, n[m + 2] = y >> 8 << 4 | d >> 8, n[m + 3] = 0; - const s = new o.R({ - width: this._coordsTextureSize, - height: this._coordsTextureSize - }, new Uint8Array(n.buffer)), - u = new o.T(e, s, e.gl.RGBA, { - premultiply: !1 - }); - return u.bind(e.gl.NEAREST, e.gl.CLAMP_TO_EDGE), this._coordsTexture = u, u - } - pointCoordinate(e) { - this.painter.maybeDrawDepthAndCoords(!0); - const n = new Uint8Array(4), - s = this.painter.context, - u = s.gl, - d = Math.round(e.x * this.painter.pixelRatio / devicePixelRatio), - m = Math.round(e.y * this.painter.pixelRatio / devicePixelRatio), - y = Math.round(this.painter.height / devicePixelRatio); - s.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer), u.readPixels(d, y - m - 1, 1, 1, u.RGBA, u.UNSIGNED_BYTE, n), s.bindFramebuffer.set(null); - const w = n[0] + (n[2] >> 4 << 8), - P = n[1] + ((15 & n[2]) << 8), - M = this.coordsIndex[255 - n[3]], - D = M && this.sourceCache.getTileByID(M); - if (!D) return null; - const z = this._coordsTextureSize, - B = (1 << D.tileID.canonical.z) * z; - return new o.a1((D.tileID.canonical.x * z + w) / B + D.tileID.wrap, (D.tileID.canonical.y * z + P) / B, this.getElevation(D.tileID, w, P, z)) - } - depthAtPoint(e) { - const n = new Uint8Array(4), - s = this.painter.context, - u = s.gl; - return s.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer), u.readPixels(e.x, this.painter.height / devicePixelRatio - e.y - 1, 1, 1, u.RGBA, u.UNSIGNED_BYTE, n), s.bindFramebuffer.set(null), (n[0] / 16777216 + n[1] / 65536 + n[2] / 256 + n[3]) / 256 - } - getTerrainMesh(e) { - var n; - const s = ((n = this.painter.style.projection) === null || n === void 0 ? void 0 : n.transitionState) > 0, - u = s && e.canonical.y === 0, - d = s && e.canonical.y === (1 << e.canonical.z) - 1, - m = `m_${u?"n":""}_${d?"s":""}`; - if (this._meshCache[m]) return this._meshCache[m]; - const y = this.painter.context, - w = new o.cv, - P = new o.aN, - M = this.meshSize, - D = o.$ / M, - z = M * M; - for (let he = 0; he <= M; he++) - for (let De = 0; De <= M; De++) w.emplaceBack(De * D, he * D, 0); - for (let he = 0; he < z; he += M + 1) - for (let De = 0; De < M; De++) P.emplaceBack(De + he, M + De + he + 1, M + De + he + 2), P.emplaceBack(De + he, M + De + he + 2, De + he + 1); - const B = w.length, - U = B + (M + 1), - ee = (M + 1) * M, - J = u ? o.bh : 0, - re = u ? 0 : 1, - se = d ? o.bi : o.$, - de = d ? 0 : 1; - for (let he = 0; he <= M; he++) w.emplaceBack(he * D, J, re); - for (let he = 0; he <= M; he++) w.emplaceBack(he * D, se, de); - for (let he = 0; he < M; he++) P.emplaceBack(ee + he, U + he, U + he + 1), P.emplaceBack(ee + he, U + he + 1, ee + he + 1), P.emplaceBack(0 + he, B + he + 1, B + he), P.emplaceBack(0 + he, 0 + he + 1, B + he + 1); - const ue = w.length, - ge = ue + 2 * (M + 1); - for (const he of [0, 1]) - for (let De = 0; De <= M; De++) - for (const He of [0, 1]) w.emplaceBack(he * o.$, De * D, He); - for (let he = 0; he < 2 * M; he += 2) P.emplaceBack(ue + he, ue + he + 1, ue + he + 3), P.emplaceBack(ue + he, ue + he + 3, ue + he + 2), P.emplaceBack(ge + he, ge + he + 3, ge + he + 1), P.emplaceBack(ge + he, ge + he + 2, ge + he + 3); - const Te = new Ri(y.createVertexBuffer(w, Cl.members), y.createIndexBuffer(P), o.aM.simpleSegment(0, 0, w.length, P.length)); - return this._meshCache[m] = Te, Te - } - getMeshFrameDelta(e) { - return 2 * Math.PI * o.bu / Math.pow(2, Math.max(e, 0)) / 5 - } - getMinTileElevationForLngLatZoom(e, n) { - var s; - const { - tileID: u - } = this._getOverscaledTileIDFromLngLatZoom(e, n); - return (s = this.getMinMaxElevation(u).minElevation) !== null && s !== void 0 ? s : 0 - } - getMinMaxElevation(e) { - const n = this.getTerrainData(e).tile, - s = { - minElevation: null, - maxElevation: null - }; - return n && n.dem && (s.minElevation = n.dem.min * this.exaggeration, s.maxElevation = n.dem.max * this.exaggeration), s - } - _getOverscaledTileIDFromLngLatZoom(e, n) { - const s = o.a1.fromLngLat(e.wrap()), - u = (1 << n) * o.$, - d = s.x * u, - m = s.y * u, - y = Math.floor(d / o.$), - w = Math.floor(m / o.$); - return { - tileID: new o.Z(n, 0, n, y, w), - mercatorX: d, - mercatorY: m - } - } - } - class Sl { - constructor(e, n, s) { - this._context = e, this._size = n, this._tileSize = s, this._objects = [], this._recentlyUsed = [], this._stamp = 0 - } - destruct() { - for (const e of this._objects) e.texture.destroy(), e.fbo.destroy() - } - _createObject(e) { - const n = this._context.createFramebuffer(this._tileSize, this._tileSize, !0, !0), - s = new o.T(this._context, { - width: this._tileSize, - height: this._tileSize, - data: null - }, this._context.gl.RGBA); - return s.bind(this._context.gl.LINEAR, this._context.gl.CLAMP_TO_EDGE), this._context.extTextureFilterAnisotropic && this._context.gl.texParameterf(this._context.gl.TEXTURE_2D, this._context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, this._context.extTextureFilterAnisotropicMax), n.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL, this._tileSize, this._tileSize)), n.colorAttachment.set(s.texture), { - id: e, - fbo: n, - texture: s, - stamp: -1, - inUse: !1 - } - } - getObjectForId(e) { - return this._objects[e] - } - useObject(e) { - e.inUse = !0, this._recentlyUsed = this._recentlyUsed.filter((n => e.id !== n)), this._recentlyUsed.push(e.id) - } - stampObject(e) { - e.stamp = ++this._stamp - } - getOrCreateFreeObject() { - for (const n of this._recentlyUsed) - if (!this._objects[n].inUse) return this._objects[n]; - if (this._objects.length >= this._size) throw new Error("No free RenderPool available, call freeAllObjects() required!"); - const e = this._createObject(this._objects.length); - return this._objects.push(e), e - } - freeObject(e) { - e.inUse = !1 - } - freeAllObjects() { - for (const e of this._objects) this.freeObject(e) - } - isFull() { - return !(this._objects.length < this._size) && this._objects.some((e => !e.inUse)) === !1 - } - } - const ns = { - background: !0, - fill: !0, - line: !0, - raster: !0, - hillshade: !0, - "color-relief": !0 - }; - class Pl { - constructor(e, n) { - this.painter = e, this.terrain = n, this.pool = new Sl(e.context, 30, n.sourceCache.tileSize * n.qualityFactor) - } - destruct() { - this.pool.destruct() - } - getTexture(e) { - return this.pool.getObjectForId(e.rtt[this._stacks.length - 1].id).texture - } - prepareForRender(e, n) { - this._stacks = [], this._prevType = null, this._rttTiles = [], this._renderableTiles = this.terrain.sourceCache.getRenderableTiles(), this._renderableLayerIds = e._order.filter((s => !e._layers[s].isHidden(n))), this._coordsAscending = {}; - for (const s in e.sourceCaches) { - this._coordsAscending[s] = {}; - const u = e.sourceCaches[s].getVisibleCoordinates(), - d = e.sourceCaches[s].getSource(), - m = d instanceof Ft ? d.terrainTileRanges : null; - for (const y of u) { - const w = this.terrain.sourceCache.getTerrainCoords(y, m); - for (const P in w) this._coordsAscending[s][P] || (this._coordsAscending[s][P] = []), this._coordsAscending[s][P].push(w[P]) - } - } - this._coordsAscendingStr = {}; - for (const s of e._order) { - const u = e._layers[s], - d = u.source; - if (ns[u.type] && !this._coordsAscendingStr[d]) { - this._coordsAscendingStr[d] = {}; - for (const m in this._coordsAscending[d]) this._coordsAscendingStr[d][m] = this._coordsAscending[d][m].map((y => y.key)).sort().join() - } - } - for (const s of this._renderableTiles) - for (const u in this._coordsAscendingStr) { - const d = this._coordsAscendingStr[u][s.tileID.key]; - d && d !== s.rttCoords[u] && (s.rtt = []) - } - } - renderLayer(e, n) { - if (e.isHidden(this.painter.transform.zoom)) return !1; - const s = Object.assign(Object.assign({}, n), { - isRenderingToTexture: !0 - }), - u = e.type, - d = this.painter, - m = this._renderableLayerIds[this._renderableLayerIds.length - 1] === e.id; - if (ns[u] && (this._prevType && ns[this._prevType] || this._stacks.push([]), this._prevType = u, this._stacks[this._stacks.length - 1].push(e.id), !m)) return !0; - if (ns[this._prevType] || ns[u] && m) { - this._prevType = u; - const y = this._stacks.length - 1, - w = this._stacks[y] || []; - for (const P of this._renderableTiles) { - if (this.pool.isFull() && (vl(this.painter, this.terrain, this._rttTiles, s), this._rttTiles = [], this.pool.freeAllObjects()), this._rttTiles.push(P), P.rtt[y]) { - const D = this.pool.getObjectForId(P.rtt[y].id); - if (D.stamp === P.rtt[y].stamp) { - this.pool.useObject(D); - continue - } - } - const M = this.pool.getOrCreateFreeObject(); - this.pool.useObject(M), this.pool.stampObject(M), P.rtt[y] = { - id: M.id, - stamp: M.stamp - }, d.context.bindFramebuffer.set(M.fbo.framebuffer), d.context.clear({ - color: o.bf.transparent, - stencil: 0 - }), d.currentStencilSource = void 0; - for (let D = 0; D < w.length; D++) { - const z = d.style._layers[w[D]], - B = z.source ? this._coordsAscending[z.source][P.tileID.key] : [P.tileID]; - d.context.viewport.set([0, 0, M.fbo.width, M.fbo.height]), d._renderTileClippingMasks(z, B, !0), d.renderLayer(d, d.style.sourceCaches[z.source], z, B, s), z.source && (P.rttCoords[z.source] = this._coordsAscendingStr[z.source][P.tileID.key]) - } - } - return vl(this.painter, this.terrain, this._rttTiles, s), this._rttTiles = [], this.pool.freeAllObjects(), ns[u] - } - return !1 - } - } - const jn = { - "AttributionControl.ToggleAttribution": "Toggle attribution", - "AttributionControl.MapFeedback": "Map feedback", - "FullscreenControl.Enter": "Enter fullscreen", - "FullscreenControl.Exit": "Exit fullscreen", - "GeolocateControl.FindMyLocation": "Find my location", - "GeolocateControl.LocationNotAvailable": "Location not available", - "LogoControl.Title": "MapLibre logo", - "Map.Title": "Map", - "Marker.Title": "Map marker", - "NavigationControl.ResetBearing": "Reset bearing to north", - "NavigationControl.ZoomIn": "Zoom in", - "NavigationControl.ZoomOut": "Zoom out", - "Popup.Close": "Close popup", - "ScaleControl.Feet": "ft", - "ScaleControl.Meters": "m", - "ScaleControl.Kilometers": "km", - "ScaleControl.Miles": "mi", - "ScaleControl.NauticalMiles": "nm", - "GlobeControl.Enable": "Enable globe", - "GlobeControl.Disable": "Disable globe", - "TerrainControl.Enable": "Enable terrain", - "TerrainControl.Disable": "Disable terrain", - "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map", - "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map", - "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map" - }, - rd = $, - ha = { - hash: !1, - interactive: !0, - bearingSnap: 7, - attributionControl: Xc, - maplibreLogo: !1, - refreshExpiredTiles: !0, - canvasContextAttributes: { - antialias: !1, - preserveDrawingBuffer: !1, - powerPreference: "high-performance", - failIfMajorPerformanceCaveat: !1, - desynchronized: !1, - contextType: void 0 - }, - scrollZoom: !0, - minZoom: -2, - maxZoom: 22, - minPitch: 0, - maxPitch: 60, - boxZoom: !0, - dragRotate: !0, - dragPan: !0, - keyboard: !0, - doubleClickZoom: !0, - touchZoomRotate: !0, - touchPitch: !0, - cooperativeGestures: !1, - trackResize: !0, - center: [0, 0], - elevation: 0, - zoom: 0, - bearing: 0, - pitch: 0, - roll: 0, - renderWorldCopies: !0, - maxTileCacheSize: null, - maxTileCacheZoomLevels: o.a.MAX_TILE_CACHE_ZOOM_LEVELS, - transformRequest: null, - transformCameraUpdate: null, - fadeDuration: 300, - crossSourceCollisions: !0, - clickTolerance: 3, - localIdeographFontFamily: "sans-serif", - pitchWithRotate: !0, - rollEnabled: !1, - validateStyle: !0, - maxCanvasSize: [4096, 4096], - cancelPendingTileRequestsWhileZooming: !0, - centerClampedToGround: !0 - }, - bp = { - showCompass: !0, - showZoom: !0, - visualizePitch: !1, - visualizeRoll: !0 - }; - class Lo { - constructor(e, n, s = !1) { - this.mousedown = d => { - this.startMove(d, X.mousePos(this.element, d)), X.addEventListener(window, "mousemove", this.mousemove), X.addEventListener(window, "mouseup", this.mouseup) - }, this.mousemove = d => { - this.move(d, X.mousePos(this.element, d)) - }, this.mouseup = d => { - this._rotatePitchHandler.dragEnd(d), this.offTemp() - }, this.touchstart = d => { - d.targetTouches.length !== 1 ? this.reset() : (this._startPos = this._lastPos = X.touchPos(this.element, d.targetTouches)[0], this.startMove(d, this._startPos), X.addEventListener(window, "touchmove", this.touchmove, { - passive: !1 - }), X.addEventListener(window, "touchend", this.touchend)) - }, this.touchmove = d => { - d.targetTouches.length !== 1 ? this.reset() : (this._lastPos = X.touchPos(this.element, d.targetTouches)[0], this.move(d, this._lastPos)) - }, this.touchend = d => { - d.targetTouches.length === 0 && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), delete this._startPos, delete this._lastPos, this.offTemp() - }, this.reset = () => { - this._rotatePitchHandler.reset(), delete this._startPos, delete this._lastPos, this.offTemp() - }, this._clickTolerance = 10, this.element = n; - const u = new vp; - this._rotatePitchHandler = new Zs({ - clickTolerance: 3, - move: (d, m) => { - const y = n.getBoundingClientRect(), - w = new o.P((y.bottom - y.top) / 2, (y.right - y.left) / 2); - return { - bearingDelta: o.cn(new o.P(d.x, m.y), m, w), - pitchDelta: s ? -.5 * (m.y - d.y) : void 0 - } - }, - moveStateManager: u, - enable: !0, - assignEvents: () => {} - }), this.map = e, X.addEventListener(n, "mousedown", this.mousedown), X.addEventListener(n, "touchstart", this.touchstart, { - passive: !1 - }), X.addEventListener(n, "touchcancel", this.reset) - } - startMove(e, n) { - this._rotatePitchHandler.dragStart(e, n), X.disableDrag() - } - move(e, n) { - const s = this.map, - { - bearingDelta: u, - pitchDelta: d - } = this._rotatePitchHandler.dragMove(e, n) || {}; - u && s.setBearing(s.getBearing() + u), d && s.setPitch(s.getPitch() + d) - } - off() { - const e = this.element; - X.removeEventListener(e, "mousedown", this.mousedown), X.removeEventListener(e, "touchstart", this.touchstart, { - passive: !1 - }), X.removeEventListener(window, "touchmove", this.touchmove, { - passive: !1 - }), X.removeEventListener(window, "touchend", this.touchend), X.removeEventListener(e, "touchcancel", this.reset), this.offTemp() - } - offTemp() { - X.enableDrag(), X.removeEventListener(window, "mousemove", this.mousemove), X.removeEventListener(window, "mouseup", this.mouseup), X.removeEventListener(window, "touchmove", this.touchmove, { - passive: !1 - }), X.removeEventListener(window, "touchend", this.touchend) - } - } - let Ai; - - function Hi(h, e, n, s = !1) { - if (s || !n.getCoveringTilesDetailsProvider().allowWorldCopies()) return h == null ? void 0 : h.wrap(); - const u = new o.S(h.lng, h.lat); - if (h = new o.S(h.lng, h.lat), e) { - const d = new o.S(h.lng - 360, h.lat), - m = new o.S(h.lng + 360, h.lat), - y = n.locationToScreenPoint(h).distSqr(e); - n.locationToScreenPoint(d).distSqr(e) < y ? h = d : n.locationToScreenPoint(m).distSqr(e) < y && (h = m) - } - for (; Math.abs(h.lng - n.center.lng) > 180;) { - const d = n.locationToScreenPoint(h); - if (d.x >= 0 && d.y >= 0 && d.x <= n.width && d.y <= n.height) break; - h.lng > n.center.lng ? h.lng -= 360 : h.lng += 360 - } - return h.lng !== u.lng && n.isPointOnMapSurface(n.locationToScreenPoint(h)) ? h : u - } - const Il = { - 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 Ws(h, e, n) { - const s = h.classList; - for (const u in Il) s.remove(`maplibregl-${n}-anchor-${u}`); - s.add(`maplibregl-${n}-anchor-${e}`) - } - class Xs extends o.E { - constructor(e) { - if (super(), this._onKeyPress = n => { - const s = n.code, - u = n.charCode || n.keyCode; - s !== "Space" && s !== "Enter" && u !== 32 && u !== 13 || this.togglePopup() - }, this._onMapClick = n => { - const s = n.originalEvent.target, - u = this._element; - this._popup && (s === u || u.contains(s)) && this.togglePopup() - }, this._update = n => { - if (!this._map) return; - const s = this._map.loaded() && !this._map.isMoving(); - ((n == null ? void 0 : n.type) === "terrain" || (n == null ? void 0 : n.type) === "render" && !s) && this._map.once("render", this._update), this._lngLat = Hi(this._lngLat, this._flatPos, this._map.transform), this._flatPos = this._pos = this._map.project(this._lngLat)._add(this._offset), this._map.terrain && (this._flatPos = this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset)); - let u = ""; - this._rotationAlignment === "viewport" || this._rotationAlignment === "auto" ? u = `rotateZ(${this._rotation}deg)` : this._rotationAlignment === "map" && (u = `rotateZ(${this._rotation-this._map.getBearing()}deg)`); - let d = ""; - this._pitchAlignment === "viewport" || this._pitchAlignment === "auto" ? d = "rotateX(0deg)" : this._pitchAlignment === "map" && (d = `rotateX(${this._map.getPitch()}deg)`), this._subpixelPositioning || n && n.type !== "moveend" || (this._pos = this._pos.round()), X.setTransform(this._element, `${Il[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${d} ${u}`), ye.frameAsync(new AbortController).then((() => { - this._updateOpacity(n && n.type === "moveend") - })).catch((() => {})) - }, this._onMove = n => { - if (!this._isDragging) { - const s = this._clickTolerance || this._map._clickTolerance; - this._isDragging = n.point.dist(this._pointerdownPos) >= s - } - this._isDragging && (this._pos = n.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 o.l("dragstart"))), this.fire(new o.l("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 o.l("dragend")), this._state = "inactive" - }, this._addDragHandler = n => { - this._element.contains(n.originalEvent.target) && (n.preventDefault(), this._positionDelta = n.point.sub(this._pos).add(this._offset), this._pointerdownPos = n.point, this._state = "pending", this._map.on("mousemove", this._onMove), this._map.on("touchmove", this._onMove), this._map.once("mouseup", this._onUp), this._map.once("touchend", this._onUp)) - }, this._anchor = e && e.anchor || "center", this._color = e && e.color || "#3FB1CE", this._scale = e && e.scale || 1, this._draggable = e && e.draggable || !1, this._clickTolerance = e && e.clickTolerance || 0, this._subpixelPositioning = e && e.subpixelPositioning || !1, this._isDragging = !1, this._state = "inactive", this._rotation = e && e.rotation || 0, this._rotationAlignment = e && e.rotationAlignment || "auto", this._pitchAlignment = e && e.pitchAlignment && e.pitchAlignment !== "auto" ? e.pitchAlignment : this._rotationAlignment, this.setOpacity(e == null ? void 0 : e.opacity, e == null ? void 0 : e.opacityWhenCovered), e && e.element) this._element = e.element, this._offset = o.P.convert(e && e.offset || [0, 0]); - else { - this._defaultMarker = !0, this._element = X.create("div"); - const n = X.createNS("http://www.w3.org/2000/svg", "svg"), - s = 41, - u = 27; - n.setAttributeNS(null, "display", "block"), n.setAttributeNS(null, "height", `${s}px`), n.setAttributeNS(null, "width", `${u}px`), n.setAttributeNS(null, "viewBox", `0 0 ${u} ${s}`); - const d = X.createNS("http://www.w3.org/2000/svg", "g"); - d.setAttributeNS(null, "stroke", "none"), d.setAttributeNS(null, "stroke-width", "1"), d.setAttributeNS(null, "fill", "none"), d.setAttributeNS(null, "fill-rule", "evenodd"); - const m = X.createNS("http://www.w3.org/2000/svg", "g"); - m.setAttributeNS(null, "fill-rule", "nonzero"); - const y = X.createNS("http://www.w3.org/2000/svg", "g"); - y.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), y.setAttributeNS(null, "fill", "#000000"); - const w = [{ - 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 re of w) { - const se = X.createNS("http://www.w3.org/2000/svg", "ellipse"); - se.setAttributeNS(null, "opacity", "0.04"), se.setAttributeNS(null, "cx", "10.5"), se.setAttributeNS(null, "cy", "5.80029008"), se.setAttributeNS(null, "rx", re.rx), se.setAttributeNS(null, "ry", re.ry), y.appendChild(se) - } - const P = X.createNS("http://www.w3.org/2000/svg", "g"); - P.setAttributeNS(null, "fill", this._color); - const M = X.createNS("http://www.w3.org/2000/svg", "path"); - M.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"), P.appendChild(M); - const D = X.createNS("http://www.w3.org/2000/svg", "g"); - D.setAttributeNS(null, "opacity", "0.25"), D.setAttributeNS(null, "fill", "#000000"); - const z = X.createNS("http://www.w3.org/2000/svg", "path"); - z.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"), D.appendChild(z); - const B = X.createNS("http://www.w3.org/2000/svg", "g"); - B.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), B.setAttributeNS(null, "fill", "#FFFFFF"); - const U = X.createNS("http://www.w3.org/2000/svg", "g"); - U.setAttributeNS(null, "transform", "translate(8.0, 8.0)"); - const ee = X.createNS("http://www.w3.org/2000/svg", "circle"); - ee.setAttributeNS(null, "fill", "#000000"), ee.setAttributeNS(null, "opacity", "0.25"), ee.setAttributeNS(null, "cx", "5.5"), ee.setAttributeNS(null, "cy", "5.5"), ee.setAttributeNS(null, "r", "5.4999962"); - const J = X.createNS("http://www.w3.org/2000/svg", "circle"); - J.setAttributeNS(null, "fill", "#FFFFFF"), J.setAttributeNS(null, "cx", "5.5"), J.setAttributeNS(null, "cy", "5.5"), J.setAttributeNS(null, "r", "5.4999962"), U.appendChild(ee), U.appendChild(J), m.appendChild(y), m.appendChild(P), m.appendChild(D), m.appendChild(B), m.appendChild(U), n.appendChild(m), n.setAttributeNS(null, "height", s * this._scale + "px"), n.setAttributeNS(null, "width", u * this._scale + "px"), this._element.appendChild(n), this._offset = o.P.convert(e && e.offset || [0, -14]) - } - if (this._element.classList.add("maplibregl-marker"), this._element.addEventListener("dragstart", (n => { - n.preventDefault() - })), this._element.addEventListener("mousedown", (n => { - n.preventDefault() - })), Ws(this._element, this._anchor, "marker"), e && e.className) - for (const n of e.className.split(" ")) this._element.classList.add(n); - this._popup = null - } - addTo(e) { - return this.remove(), this._map = e, this._element.hasAttribute("aria-label") || this._element.setAttribute("aria-label", e._getUIString("Marker.Title")), e.getCanvasContainer().appendChild(this._element), e.on("move", this._update), e.on("moveend", this._update), e.on("terrain", this._update), e.on("projectiontransition", this._update), 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("terrain", this._update), this._map.off("projectiontransition", 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), X.remove(this._element), this._popup && this._popup.remove(), this - } - getLngLat() { - return this._lngLat - } - setLngLat(e) { - return this._lngLat = o.S.convert(e), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this - } - getElement() { - return this._element - } - setPopup(e) { - if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener("keypress", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute("tabindex")), e) { - if (!("offset" in e.options)) { - const u = Math.abs(13.5) / Math.SQRT2; - e.options.offset = this._defaultMarker ? { - top: [0, 0], - "top-left": [0, 0], - "top-right": [0, 0], - bottom: [0, -38.1], - "bottom-left": [u, -1 * (38.1 - 13.5 + u)], - "bottom-right": [-u, -1 * (38.1 - 13.5 + u)], - left: [13.5, -1 * (38.1 - 13.5)], - right: [-13.5, -1 * (38.1 - 13.5)] - } : this._offset - } - this._popup = e, this._originalTabIndex = this._element.getAttribute("tabindex"), this._originalTabIndex || this._element.setAttribute("tabindex", "0"), this._element.addEventListener("keypress", this._onKeyPress) - } - return this - } - setSubpixelPositioning(e) { - return this._subpixelPositioning = e, this - } - getPopup() { - return this._popup - } - togglePopup() { - const e = this._popup; - return this._element.style.opacity === this._opacityWhenCovered ? this : e ? (e.isOpen() ? e.remove() : (e.setLngLat(this._lngLat), e.addTo(this._map)), this) : this - } - _updateOpacity(e = !1) { - var n, s; - const u = (n = this._map) === null || n === void 0 ? void 0 : n.terrain, - d = this._map.transform.isLocationOccluded(this._lngLat); - if (!u || d) { - const B = d ? this._opacityWhenCovered : this._opacity; - return void(this._element.style.opacity !== B && (this._element.style.opacity = B)) - } - if (e) this._opacityTimeout = null; - else { - if (this._opacityTimeout) return; - this._opacityTimeout = setTimeout((() => { - this._opacityTimeout = null - }), 100) - } - const m = this._map, - y = m.terrain.depthAtPoint(this._pos), - w = m.terrain.getElevationForLngLatZoom(this._lngLat, m.transform.tileZoom); - if (m.transform.lngLatToCameraDepth(this._lngLat, w) - y < .006) return void(this._element.style.opacity = this._opacity); - const P = -this._offset.y / m.transform.pixelsPerMeter, - M = Math.sin(m.getPitch() * Math.PI / 180) * P, - D = m.terrain.depthAtPoint(new o.P(this._pos.x, this._pos.y - this._offset.y)), - z = m.transform.lngLatToCameraDepth(this._lngLat, w + M) - D > .006; - !((s = this._popup) === null || s === void 0) && s.isOpen() && z && this._popup.remove(), this._element.style.opacity = z ? this._opacityWhenCovered : this._opacity - } - getOffset() { - return this._offset - } - setOffset(e) { - return this._offset = o.P.convert(e), this._update(), this - } - addClassName(e) { - this._element.classList.add(e) - } - removeClassName(e) { - this._element.classList.remove(e) - } - toggleClassName(e) { - return this._element.classList.toggle(e) - } - setDraggable(e) { - return this._draggable = !!e, this._map && (e ? (this._map.on("mousedown", this._addDragHandler), this._map.on("touchstart", this._addDragHandler)) : (this._map.off("mousedown", this._addDragHandler), this._map.off("touchstart", this._addDragHandler))), this - } - isDraggable() { - return this._draggable - } - setRotation(e) { - return this._rotation = e || 0, this._update(), this - } - getRotation() { - return this._rotation - } - setRotationAlignment(e) { - return this._rotationAlignment = e || "auto", this._update(), this - } - getRotationAlignment() { - return this._rotationAlignment - } - setPitchAlignment(e) { - return this._pitchAlignment = e && e !== "auto" ? e : this._rotationAlignment, this._update(), this - } - getPitchAlignment() { - return this._pitchAlignment - } - setOpacity(e, n) { - return (this._opacity === void 0 || e === void 0 && n === void 0) && (this._opacity = "1", this._opacityWhenCovered = "0.2"), e !== void 0 && (this._opacity = e), n !== void 0 && (this._opacityWhenCovered = n), this._map && this._updateOpacity(!0), this - } - } - const Yc = { - positionOptions: { - enableHighAccuracy: !1, - maximumAge: 0, - timeout: 6e3 - }, - fitBoundsOptions: { - maxZoom: 15 - }, - trackUserLocation: !1, - showAccuracyCircle: !0, - showUserLocation: !0 - }; - let Ks = 0, - Ss = !1; - const Do = { - maxWidth: 100, - unit: "metric" - }; - - function Ml(h, e, n) { - const s = n && n.maxWidth || 100, - u = h._container.clientHeight / 2, - d = h._container.clientWidth / 2, - m = h.unproject([d - s / 2, u]), - y = h.unproject([d + s / 2, u]), - w = Math.round(h.project(y).x - h.project(m).x), - P = Math.min(s, w, h._container.clientWidth), - M = m.distanceTo(y); - if (n && n.unit === "imperial") { - const D = 3.2808 * M; - D > 5280 ? Ps(e, P, D / 5280, h._getUIString("ScaleControl.Miles")) : Ps(e, P, D, h._getUIString("ScaleControl.Feet")) - } else n && n.unit === "nautical" ? Ps(e, P, M / 1852, h._getUIString("ScaleControl.NauticalMiles")) : M >= 1e3 ? Ps(e, P, M / 1e3, h._getUIString("ScaleControl.Kilometers")) : Ps(e, P, M, h._getUIString("ScaleControl.Meters")) - } - - function Ps(h, e, n, s) { - const u = (function(d) { - const m = Math.pow(10, `${Math.floor(d)}`.length - 1); - let y = d / m; - return y = y >= 10 ? 10 : y >= 5 ? 5 : y >= 3 ? 3 : y >= 2 ? 2 : y >= 1 ? 1 : (function(w) { - const P = Math.pow(10, Math.ceil(-Math.log(w) / Math.LN10)); - return Math.round(w * P) / P - })(y), m * y - })(n); - h.style.width = e * (u / n) + "px", h.innerHTML = `${u} ${s}` - } - const Jc = { - closeButton: !0, - closeOnClick: !0, - focusAfterOpen: !0, - className: "", - maxWidth: "240px", - subpixelPositioning: !1, - locationOccludedOpacity: void 0 - }, - Qc = ["a[href]", "[tabindex]:not([tabindex='-1'])", "[contenteditable]:not([contenteditable='false'])", "button:not([disabled])", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].join(", "); - - function Al(h) { - if (h) { - if (typeof h == "number") { - const e = Math.round(Math.abs(h) / Math.SQRT2); - return { - center: new o.P(0, 0), - top: new o.P(0, h), - "top-left": new o.P(e, e), - "top-right": new o.P(-e, e), - bottom: new o.P(0, -h), - "bottom-left": new o.P(e, -e), - "bottom-right": new o.P(-e, -e), - left: new o.P(h, 0), - right: new o.P(-h, 0) - } - } - if (h instanceof o.P || Array.isArray(h)) { - const e = o.P.convert(h); - return { - center: e, - top: e, - "top-left": e, - "top-right": e, - bottom: e, - "bottom-left": e, - "bottom-right": e, - left: e, - right: e - } - } - return { - center: o.P.convert(h.center || [0, 0]), - top: o.P.convert(h.top || [0, 0]), - "top-left": o.P.convert(h["top-left"] || [0, 0]), - "top-right": o.P.convert(h["top-right"] || [0, 0]), - bottom: o.P.convert(h.bottom || [0, 0]), - "bottom-left": o.P.convert(h["bottom-left"] || [0, 0]), - "bottom-right": o.P.convert(h["bottom-right"] || [0, 0]), - left: o.P.convert(h.left || [0, 0]), - right: o.P.convert(h.right || [0, 0]) - } - } - return Al(new o.P(0, 0)) - } - const eu = $; - T.AJAXError = o.cz, T.Event = o.l, T.Evented = o.E, T.LngLat = o.S, T.MercatorCoordinate = o.a1, T.Point = o.P, T.addProtocol = o.cA, T.config = o.a, T.removeProtocol = o.cB, T.AttributionControl = Kc, T.BoxZoomHandler = Vc, T.CanvasSource = _r, T.CooperativeGesturesHandler = Qh, T.DoubleClickZoomHandler = $c, T.DragPanHandler = Yh, T.DragRotateHandler = Hc, T.EdgeInsets = on, T.FullscreenControl = class extends o.E { - constructor(h = {}) { - super(), this._onFullscreenChange = () => { - var e; - let n = window.document.fullscreenElement || window.document.mozFullScreenElement || window.document.webkitFullscreenElement || window.document.msFullscreenElement; - for (; !((e = n == null ? void 0 : n.shadowRoot) === null || e === void 0) && e.fullscreenElement;) n = n.shadowRoot.fullscreenElement; - n === this._container !== this._fullscreen && this._handleFullscreenChange() - }, this._onClickFullscreen = () => { - this._isFullscreen() ? this._exitFullscreen() : this._requestFullscreen() - }, this._fullscreen = !1, h && h.container && (h.container instanceof HTMLElement ? this._container = h.container : o.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(h) { - return this._map = h, this._container || (this._container = this._map.getContainer()), this._controlContainer = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._setupUI(), this._controlContainer - } - onRemove() { - X.remove(this._controlContainer), this._map = null, window.document.removeEventListener(this._fullscreenchange, this._onFullscreenChange) - } - _setupUI() { - const h = this._fullscreenButton = X.create("button", "maplibregl-ctrl-fullscreen", this._controlContainer); - X.create("span", "maplibregl-ctrl-icon", h).setAttribute("aria-hidden", "true"), h.type = "button", this._updateTitle(), this._fullscreenButton.addEventListener("click", this._onClickFullscreen), window.document.addEventListener(this._fullscreenchange, this._onFullscreenChange) - } - _updateTitle() { - const h = this._getTitle(); - this._fullscreenButton.setAttribute("aria-label", h), this._fullscreenButton.title = h - } - _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 o.l("fullscreenstart")), this._prevCooperativeGesturesEnabled = this._map.cooperativeGestures.isEnabled(), this._map.cooperativeGestures.disable()) : (this.fire(new o.l("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() - } - }, T.GeoJSONSource = ar, T.GeolocateControl = class extends o.E { - constructor(h) { - super(), this._onSuccess = e => { - if (this._map) { - if (this._isOutOfMapMaxBounds(e)) return this._setErrorState(), this.fire(new o.l("outofmaxbounds", e)), this._updateMarker(), void this._finish(); - if (this.options.trackUserLocation) switch (this._lastKnownPosition = e, this._watchState) { - case "WAITING_ACTIVE": - case "ACTIVE_LOCK": - case "ACTIVE_ERROR": - this._watchState = "ACTIVE_LOCK", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active"); - break; - case "BACKGROUND": - case "BACKGROUND_ERROR": - this._watchState = "BACKGROUND", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"), this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"); - break; - default: - throw new Error(`Unexpected watchState ${this._watchState}`) - } - this.options.showUserLocation && this._watchState !== "OFF" && this._updateMarker(e), this.options.trackUserLocation && this._watchState !== "ACTIVE_LOCK" || this._updateCamera(e), this.options.showUserLocation && this._dotElement.classList.remove("maplibregl-user-location-dot-stale"), this.fire(new o.l("geolocate", e)), this._finish() - } - }, this._updateCamera = e => { - const n = new o.S(e.coords.longitude, e.coords.latitude), - s = e.coords.accuracy, - u = this._map.getBearing(), - d = o.e({ - bearing: u - }, this.options.fitBoundsOptions), - m = dt.fromLngLat(n, s); - this._map.fitBounds(m, d, { - geolocateSource: !0 - }) - }, this._updateMarker = e => { - if (e) { - const n = new o.S(e.coords.longitude, e.coords.latitude); - this._accuracyCircleMarker.setLngLat(n).addTo(this._map), this._userLocationDotMarker.setLngLat(n).addTo(this._map), this._accuracy = e.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 = e => { - if (this._map) { - if (e.code === 1) { - this._watchState = "OFF", this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"), this._geolocateButton.disabled = !0; - const n = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.title = n, this._geolocateButton.setAttribute("aria-label", n), this._geolocationWatchID !== void 0 && this._clearWatch() - } else { - if (e.code === 3 && Ss) return; - this.options.trackUserLocation && this._setErrorState() - } - this._watchState !== "OFF" && this.options.showUserLocation && this._dotElement.classList.add("maplibregl-user-location-dot-stale"), this.fire(new o.l("error", e)), this._finish() - } - }, this._finish = () => { - this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0 - }, this._setupUI = () => { - this._map && (this._container.addEventListener("contextmenu", (e => e.preventDefault())), this._geolocateButton = X.create("button", "maplibregl-ctrl-geolocate", this._container), X.create("span", "maplibregl-ctrl-icon", this._geolocateButton).setAttribute("aria-hidden", "true"), this._geolocateButton.type = "button", this._geolocateButton.disabled = !0) - }, this._finishSetupUI = e => { - if (this._map) { - if (e === !1) { - o.w("Geolocation support is not available so the GeolocateControl will be disabled."); - const n = this._map._getUIString("GeolocateControl.LocationNotAvailable"); - this._geolocateButton.disabled = !0, this._geolocateButton.title = n, this._geolocateButton.setAttribute("aria-label", n) - } else { - const n = this._map._getUIString("GeolocateControl.FindMyLocation"); - this._geolocateButton.disabled = !1, this._geolocateButton.title = n, this._geolocateButton.setAttribute("aria-label", n) - } - this.options.trackUserLocation && (this._geolocateButton.setAttribute("aria-pressed", "false"), this._watchState = "OFF"), this.options.showUserLocation && (this._dotElement = X.create("div", "maplibregl-user-location-dot"), this._userLocationDotMarker = new Xs({ - element: this._dotElement - }), this._circleElement = X.create("div", "maplibregl-user-location-accuracy-circle"), this._accuracyCircleMarker = new Xs({ - 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", (n => { - const s = (n == null ? void 0 : n[0]) instanceof ResizeObserverEntry; - n.geolocateSource || this._watchState !== "ACTIVE_LOCK" || s || this._map.isZooming() || (this._watchState = "BACKGROUND", this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"), this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"), this.fire(new o.l("trackuserlocationend")), this.fire(new o.l("userlocationlostfocus"))) - })) - } - }, this.options = o.e({}, Yc, h) - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._setupUI(), (function() { - return o._(this, arguments, void 0, (function*(e = !1) { - if (Ai !== void 0 && !e) return Ai; - if (window.navigator.permissions === void 0) return Ai = !!window.navigator.geolocation, Ai; - try { - Ai = (yield window.navigator.permissions.query({ - name: "geolocation" - })).state !== "denied" - } catch { - Ai = !!window.navigator.geolocation - } - return Ai - })) - })().then((e => this._finishSetupUI(e))), this._container - } - onRemove() { - this._geolocationWatchID !== void 0 && (window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), X.remove(this._container), this._map.off("zoom", this._onZoom), this._map = void 0, Ks = 0, Ss = !1 - } - _isOutOfMapMaxBounds(h) { - const e = this._map.getMaxBounds(), - n = h.coords; - return e && (n.longitude < e.getWest() || n.longitude > e.getEast() || n.latitude < e.getSouth() || n.latitude > e.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 h = this._map.getBounds(), - e = h.getSouthEast(), - n = h.getNorthEast(), - s = e.distanceTo(n), - u = Math.ceil(this._accuracy / (s / this._map._container.clientHeight) * 2); - this._circleElement.style.width = `${u}px`, this._circleElement.style.height = `${u}px` - } - trigger() { - if (!this._setup) return o.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 o.l("trackuserlocationstart")); - break; - case "WAITING_ACTIVE": - case "ACTIVE_LOCK": - case "ACTIVE_ERROR": - case "BACKGROUND_ERROR": - Ks--, Ss = !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 o.l("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 o.l("trackuserlocationstart")), this.fire(new o.l("userlocationfocus")); - 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 h; - this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"), this._geolocateButton.setAttribute("aria-pressed", "true"), Ks++, Ks > 1 ? (h = { - maximumAge: 6e5, - timeout: 0 - }, Ss = !0) : (h = this.options.positionOptions, Ss = !1), this._geolocationWatchID = window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, h) - } - } 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) - } - }, T.GlobeControl = class { - constructor() { - this._toggleProjection = () => { - var h; - const e = (h = this._map.getProjection()) === null || h === void 0 ? void 0 : h.type; - this._map.setProjection(e !== "mercator" && e ? { - type: "mercator" - } : { - type: "globe" - }), this._updateGlobeIcon() - }, this._updateGlobeIcon = () => { - var h; - this._globeButton.classList.remove("maplibregl-ctrl-globe"), this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"), ((h = this._map.getProjection()) === null || h === void 0 ? void 0 : h.type) === "globe" ? (this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"), this._globeButton.title = this._map._getUIString("GlobeControl.Disable")) : (this._globeButton.classList.add("maplibregl-ctrl-globe"), this._globeButton.title = this._map._getUIString("GlobeControl.Enable")) - } - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._globeButton = X.create("button", "maplibregl-ctrl-globe", this._container), X.create("span", "maplibregl-ctrl-icon", this._globeButton).setAttribute("aria-hidden", "true"), this._globeButton.type = "button", this._globeButton.addEventListener("click", this._toggleProjection), this._updateGlobeIcon(), this._map.on("styledata", this._updateGlobeIcon), this._container - } - onRemove() { - X.remove(this._container), this._map.off("styledata", this._updateGlobeIcon), this._globeButton.removeEventListener("click", this._toggleProjection), this._map = void 0 - } - }, T.Hash = yl, T.ImageSource = Ft, T.KeyboardHandler = wl, T.LngLatBounds = dt, T.LogoControl = td, T.Map = class extends ed { - constructor(h) { - var e, n; - o.cw.mark(o.cx.create); - const s = Object.assign(Object.assign(Object.assign({}, ha), h), { - canvasContextAttributes: Object.assign(Object.assign({}, ha.canvasContextAttributes), h.canvasContextAttributes) - }); - if (s.minZoom != null && s.maxZoom != null && s.minZoom > s.maxZoom) throw new Error("maxZoom must be greater than or equal to minZoom"); - if (s.minPitch != null && s.maxPitch != null && s.minPitch > s.maxPitch) throw new Error("maxPitch must be greater than or equal to minPitch"); - if (s.minPitch != null && s.minPitch < 0) throw new Error("minPitch must be greater than or equal to 0"); - if (s.maxPitch != null && s.maxPitch > 180) throw new Error("maxPitch must be less than or equal to 180"); - const u = new wi, - d = new hn; - if (s.minZoom !== void 0 && u.setMinZoom(s.minZoom), s.maxZoom !== void 0 && u.setMaxZoom(s.maxZoom), s.minPitch !== void 0 && u.setMinPitch(s.minPitch), s.maxPitch !== void 0 && u.setMaxPitch(s.maxPitch), s.renderWorldCopies !== void 0 && u.setRenderWorldCopies(s.renderWorldCopies), super(u, d, { - bearingSnap: s.bearingSnap - }), this._idleTriggered = !1, this._crossFadingFactor = 1, this._renderTaskQueue = new Na, this._controls = [], this._mapId = o.a7(), this._contextLost = y => { - y.preventDefault(), this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this.fire(new o.l("webglcontextlost", { - originalEvent: y - })) - }, this._contextRestored = y => { - this._setupPainter(), this.resize(), this._update(), this.fire(new o.l("webglcontextrestored", { - originalEvent: y - })) - }, this._onMapScroll = y => { - if (y.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, !1 - }, this._onWindowOnline = () => { - this._update() - }, this._interactive = s.interactive, this._maxTileCacheSize = s.maxTileCacheSize, this._maxTileCacheZoomLevels = s.maxTileCacheZoomLevels, this._canvasContextAttributes = Object.assign({}, s.canvasContextAttributes), this._trackResize = s.trackResize === !0, this._bearingSnap = s.bearingSnap, this._centerClampedToGround = s.centerClampedToGround, this._refreshExpiredTiles = s.refreshExpiredTiles === !0, this._fadeDuration = s.fadeDuration, this._crossSourceCollisions = s.crossSourceCollisions === !0, this._collectResourceTiming = s.collectResourceTiming === !0, this._locale = Object.assign(Object.assign({}, jn), s.locale), this._clickTolerance = s.clickTolerance, this._overridePixelRatio = s.pixelRatio, this._maxCanvasSize = s.maxCanvasSize, this.transformCameraUpdate = s.transformCameraUpdate, this.cancelPendingTileRequestsWhileZooming = s.cancelPendingTileRequestsWhileZooming === !0, this._imageQueueHandle = Ne.addThrottleControl((() => this.isMoving())), this._requestManager = new ft(s.transformRequest), typeof s.container == "string") { - if (this._container = document.getElementById(s.container), !this._container) throw new Error(`Container '${s.container}' not found.`) - } else { - if (!(s.container instanceof HTMLElement)) throw new Error("Invalid type: 'container' must be a String or HTMLElement."); - this._container = s.container - } - if (s.maxBounds && this.setMaxBounds(s.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 y = !1; - const w = Ts((P => { - this._trackResize && !this._removed && (this.resize(P), this.redraw()) - }), 50); - this._resizeObserver = new ResizeObserver((P => { - y ? w(P) : y = !0 - })), this._resizeObserver.observe(this._container) - } - this.handlers = new Wc(this, s), this._hash = s.hash && new yl(typeof s.hash == "string" && s.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ - center: s.center, - elevation: s.elevation, - zoom: s.zoom, - bearing: s.bearing, - pitch: s.pitch, - roll: s.roll - }), s.bounds && (this.resize(), this.fitBounds(s.bounds, o.e({}, s.fitBoundsOptions, { - duration: 0 - })))); - const m = typeof s.style == "string" || ((n = (e = s.style) === null || e === void 0 ? void 0 : e.projection) === null || n === void 0 ? void 0 : n.type) !== "globe"; - this.resize(null, m), this._localIdeographFontFamily = s.localIdeographFontFamily, this._validateStyle = s.validateStyle, s.style && this.setStyle(s.style, { - localIdeographFontFamily: s.localIdeographFontFamily - }), s.attributionControl && this.addControl(new Kc(typeof s.attributionControl == "boolean" ? void 0 : s.attributionControl)), s.maplibreLogo && this.addControl(new td, s.logoPosition), this.on("style.load", (() => { - if (m || this._resizeTransform(), this.transform.unmodified) { - const y = o.Q(this.style.stylesheet, ["center", "zoom", "bearing", "pitch", "roll"]); - this.jumpTo(y) - } - })), this.on("data", (y => { - this._update(y.dataType === "style"), this.fire(new o.l(`${y.dataType}data`, y)) - })), this.on("dataloading", (y => { - this.fire(new o.l(`${y.dataType}dataloading`, y)) - })), this.on("dataabort", (y => { - this.fire(new o.l("sourcedataabort", y)) - })) - } - _getMapId() { - return this._mapId - } - setGlobalStateProperty(h, e) { - return this.style.setGlobalStateProperty(h, e), this._update(!0) - } - getGlobalState() { - return this.style.getGlobalState() - } - addControl(h, e) { - if (e === void 0 && (e = h.getDefaultPosition ? h.getDefaultPosition() : "top-right"), !h || !h.onAdd) return this.fire(new o.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods."))); - const n = h.onAdd(this); - this._controls.push(h); - const s = this._controlPositions[e]; - return e.indexOf("bottom") !== -1 ? s.insertBefore(n, s.firstChild) : s.appendChild(n), this - } - removeControl(h) { - if (!h || !h.onRemove) return this.fire(new o.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods."))); - const e = this._controls.indexOf(h); - return e > -1 && this._controls.splice(e, 1), h.onRemove(this), this - } - hasControl(h) { - return this._controls.indexOf(h) > -1 - } - calculateCameraOptionsFromTo(h, e, n, s) { - return s == null && this.terrain && (s = this.terrain.getElevationForLngLatZoom(n, this.transform.tileZoom)), super.calculateCameraOptionsFromTo(h, e, n, s) - } - resize(h, e = !0) { - const [n, s] = this._containerDimensions(), u = this._getClampedPixelRatio(n, s); - if (this._resizeCanvas(n, s, u), this.painter.resize(n, s, u), this.painter.overLimit()) { - const m = this.painter.context.gl; - this._maxCanvasSize = [m.drawingBufferWidth, m.drawingBufferHeight]; - const y = this._getClampedPixelRatio(n, s); - this._resizeCanvas(n, s, y), this.painter.resize(n, s, y) - } - this._resizeTransform(e); - const d = !this._moving; - return d && (this.stop(), this.fire(new o.l("movestart", h)).fire(new o.l("move", h))), this.fire(new o.l("resize", h)), d && this.fire(new o.l("moveend", h)), this - } - _resizeTransform(h = !0) { - var e; - const [n, s] = this._containerDimensions(); - this.transform.resize(n, s, h), (e = this._requestedCameraState) === null || e === void 0 || e.resize(n, s, h) - } - _getClampedPixelRatio(h, e) { - const { - 0: n, - 1: s - } = this._maxCanvasSize, u = this.getPixelRatio(), d = h * u, m = e * u; - return Math.min(d > n ? n / d : 1, m > s ? s / m : 1) * u - } - getPixelRatio() { - var h; - return (h = this._overridePixelRatio) !== null && h !== void 0 ? h : devicePixelRatio - } - setPixelRatio(h) { - this._overridePixelRatio = h, this.resize() - } - getBounds() { - return this.transform.getBounds() - } - getMaxBounds() { - return this.transform.getMaxBounds() - } - setMaxBounds(h) { - return this.transform.setMaxBounds(dt.convert(h)), this._update() - } - setMinZoom(h) { - if ((h = h ?? -2) >= -2 && h <= this.transform.maxZoom) return this.transform.setMinZoom(h), this._update(), this.getZoom() < h && this.setZoom(h), this; - throw new Error("minZoom must be between -2 and the current maxZoom, inclusive") - } - getMinZoom() { - return this.transform.minZoom - } - setMaxZoom(h) { - if ((h = h ?? 22) >= this.transform.minZoom) return this.transform.setMaxZoom(h), this._update(), this.getZoom() > h && this.setZoom(h), this; - throw new Error("maxZoom must be greater than the current minZoom") - } - getMaxZoom() { - return this.transform.maxZoom - } - setMinPitch(h) { - if ((h = h ?? 0) < 0) throw new Error("minPitch must be greater than or equal to 0"); - if (h >= 0 && h <= this.transform.maxPitch) return this.transform.setMinPitch(h), this._update(), this.getPitch() < h && this.setPitch(h), this; - throw new Error("minPitch must be between 0 and the current maxPitch, inclusive") - } - getMinPitch() { - return this.transform.minPitch - } - setMaxPitch(h) { - if ((h = h ?? 60) > 180) throw new Error("maxPitch must be less than or equal to 180"); - if (h >= this.transform.minPitch) return this.transform.setMaxPitch(h), this._update(), this.getPitch() > h && this.setPitch(h), this; - throw new Error("maxPitch must be greater than the current minPitch") - } - getMaxPitch() { - return this.transform.maxPitch - } - getRenderWorldCopies() { - return this.transform.renderWorldCopies - } - setRenderWorldCopies(h) { - return this.transform.setRenderWorldCopies(h), this._update() - } - project(h) { - return this.transform.locationToScreenPoint(o.S.convert(h), this.style && this.terrain) - } - unproject(h) { - return this.transform.screenPointToLocation(o.P.convert(h), this.terrain) - } - isMoving() { - var h; - return this._moving || ((h = this.handlers) === null || h === void 0 ? void 0 : h.isMoving()) - } - isZooming() { - var h; - return this._zooming || ((h = this.handlers) === null || h === void 0 ? void 0 : h.isZooming()) - } - isRotating() { - var h; - return this._rotating || ((h = this.handlers) === null || h === void 0 ? void 0 : h.isRotating()) - } - _createDelegatedListener(h, e, n) { - if (h === "mouseenter" || h === "mouseover") { - let s = !1; - return { - layers: e, - listener: n, - delegates: { - mousemove: d => { - const m = e.filter((w => this.getLayer(w))), - y = m.length !== 0 ? this.queryRenderedFeatures(d.point, { - layers: m - }) : []; - y.length ? s || (s = !0, n.call(this, new Wn(h, this, d.originalEvent, { - features: y - }))) : s = !1 - }, - mouseout: () => { - s = !1 - } - } - } - } - if (h === "mouseleave" || h === "mouseout") { - let s = !1; - return { - layers: e, - listener: n, - delegates: { - mousemove: m => { - const y = e.filter((w => this.getLayer(w))); - (y.length !== 0 ? this.queryRenderedFeatures(m.point, { - layers: y - }) : []).length ? s = !0 : s && (s = !1, n.call(this, new Wn(h, this, m.originalEvent))) - }, - mouseout: m => { - s && (s = !1, n.call(this, new Wn(h, this, m.originalEvent))) - } - } - } - } { - const s = u => { - const d = e.filter((y => this.getLayer(y))), - m = d.length !== 0 ? this.queryRenderedFeatures(u.point, { - layers: d - }) : []; - m.length && (u.features = m, n.call(this, u), delete u.features) - }; - return { - layers: e, - listener: n, - delegates: { - [h]: s - } - } - } - } - _saveDelegatedListener(h, e) { - this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[h] = this._delegatedListeners[h] || [], this._delegatedListeners[h].push(e) - } - _removeDelegatedListener(h, e, n) { - if (!this._delegatedListeners || !this._delegatedListeners[h]) return; - const s = this._delegatedListeners[h]; - for (let u = 0; u < s.length; u++) { - const d = s[u]; - if (d.listener === n && d.layers.length === e.length && d.layers.every((m => e.includes(m)))) { - for (const m in d.delegates) this.off(m, d.delegates[m]); - return void s.splice(u, 1) - } - } - } - on(h, e, n) { - if (n === void 0) return super.on(h, e); - const s = typeof e == "string" ? [e] : e, - u = this._createDelegatedListener(h, s, n); - this._saveDelegatedListener(h, u); - for (const d in u.delegates) this.on(d, u.delegates[d]); - return { - unsubscribe: () => { - this._removeDelegatedListener(h, s, n) - } - } - } - once(h, e, n) { - if (n === void 0) return super.once(h, e); - const s = typeof e == "string" ? [e] : e, - u = this._createDelegatedListener(h, s, n); - for (const d in u.delegates) { - const m = u.delegates[d]; - u.delegates[d] = (...y) => { - this._removeDelegatedListener(h, s, n), m(...y) - } - } - this._saveDelegatedListener(h, u); - for (const d in u.delegates) this.once(d, u.delegates[d]); - return this - } - off(h, e, n) { - return n === void 0 ? super.off(h, e) : (this._removeDelegatedListener(h, typeof e == "string" ? [e] : e, n), this) - } - queryRenderedFeatures(h, e) { - if (!this.style) return []; - let n; - const s = h instanceof o.P || Array.isArray(h), - u = s ? h : [ - [0, 0], - [this.transform.width, this.transform.height] - ]; - if (e = e || (s ? {} : h) || {}, u instanceof o.P || typeof u[0] == "number") n = [o.P.convert(u)]; - else { - const d = o.P.convert(u[0]), - m = o.P.convert(u[1]); - n = [d, new o.P(m.x, d.y), m, new o.P(d.x, m.y), d] - } - return this.style.queryRenderedFeatures(n, e, this.transform) - } - querySourceFeatures(h, e) { - return this.style.querySourceFeatures(h, e) - } - setStyle(h, e) { - return (e = o.e({}, { - localIdeographFontFamily: this._localIdeographFontFamily, - validate: this._validateStyle - }, e)).diff !== !1 && e.localIdeographFontFamily === this._localIdeographFontFamily && this.style && h ? (this._diffStyle(h, e), this) : (this._localIdeographFontFamily = e.localIdeographFontFamily, this._updateStyle(h, e)) - } - setTransformRequest(h) { - return this._requestManager.setTransformRequest(h), this - } - _getUIString(h) { - const e = this._locale[h]; - if (e == null) throw new Error(`Missing UI string '${h}'`); - return e - } - _updateStyle(h, e) { - var n, s; - if (e.transformStyle && this.style && !this.style._loaded) return void this.style.once("style.load", (() => this._updateStyle(h, e))); - const u = this.style && e.transformStyle ? this.style.serialize() : void 0; - return this.style && (this.style.setEventedParent(null), this.style._remove(!h)), h ? (this.style = new gc(this, e || {}), this.style.setEventedParent(this, { - style: this.style - }), typeof h == "string" ? this.style.loadURL(h, e, u) : this.style.loadJSON(h, e, u), this) : ((s = (n = this.style) === null || n === void 0 ? void 0 : n.projection) === null || s === void 0 || s.destroy(), delete this.style, this) - } - _lazyInitEmptyStyle() { - this.style || (this.style = new gc(this, {}), this.style.setEventedParent(this, { - style: this.style - }), this.style.loadEmpty()) - } - _diffStyle(h, e) { - if (typeof h == "string") { - const n = this._requestManager.transformRequest(h, "Style"); - o.j(n, new AbortController).then((s => { - this._updateDiff(s.data, e) - })).catch((s => { - s && this.fire(new o.k(s)) - })) - } else typeof h == "object" && this._updateDiff(h, e) - } - _updateDiff(h, e) { - try { - this.style.setState(h, e) && this._update(!0) - } catch (n) { - o.w(`Unable to perform style diff: ${n.message||n.error||n}. Rebuilding the style from scratch.`), this._updateStyle(h, e) - } - } - getStyle() { - if (this.style) return this.style.serialize() - } - isStyleLoaded() { - return this.style ? this.style.loaded() : o.w("There is no style added to the map.") - } - addSource(h, e) { - return this._lazyInitEmptyStyle(), this.style.addSource(h, e), this._update(!0) - } - isSourceLoaded(h) { - const e = this.style && this.style.sourceCaches[h]; - if (e !== void 0) return e.loaded(); - this.fire(new o.k(new Error(`There is no source with ID '${h}'`))) - } - setTerrain(h) { - if (this.style._checkLoaded(), this._terrainDataCallback && this.style.off("data", this._terrainDataCallback), h) { - const e = this.style.sourceCaches[h.source]; - if (!e) throw new Error(`cannot load terrain, because there exists no source with ID: ${h.source}`); - this.terrain === null && e.reload(); - for (const n in this.style._layers) { - const s = this.style._layers[n]; - s.type === "hillshade" && s.source === h.source && o.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."), s.type === "color-relief" && s.source === h.source && o.w("You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.") - } - this.terrain = new Rr(this.painter, e, h), this.painter.renderToTexture = new Pl(this.painter, this.terrain), this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this._terrainDataCallback = n => { - var s; - n.dataType === "style" ? this.terrain.sourceCache.freeRtt() : n.dataType === "source" && n.tile && (n.sourceId !== h.source || this._elevationFreeze || (this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this._centerClampedToGround && this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom))), ((s = n.source) === null || s === void 0 ? void 0 : s.type) === "image" ? this.terrain.sourceCache.freeRtt() : this.terrain.sourceCache.freeRtt(n.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.setMinElevationForCurrentTile(0), this._centerClampedToGround && this.transform.setElevation(0); - return this.fire(new o.l("terrain", { - terrain: h - })), this - } - getTerrain() { - var h, e; - return (e = (h = this.terrain) === null || h === void 0 ? void 0 : h.options) !== null && e !== void 0 ? e : null - } - areTilesLoaded() { - const h = this.style && this.style.sourceCaches; - for (const e in h) { - const n = h[e]._tiles; - for (const s in n) { - const u = n[s]; - if (u.state !== "loaded" && u.state !== "errored") return !1 - } - } - return !0 - } - removeSource(h) { - return this.style.removeSource(h), this._update(!0) - } - getSource(h) { - return this.style.getSource(h) - } - setSourceTileLodParams(h, e, n) { - if (n) { - const s = this.getSource(n); - if (!s) throw new Error(`There is no source with ID "${n}", cannot set LOD parameters`); - s.calculateTileZoom = ot(Math.max(1, h), Math.max(1, e)) - } else - for (const s in this.style.sourceCaches) this.style.sourceCaches[s].getSource().calculateTileZoom = ot(Math.max(1, h), Math.max(1, e)); - return this._update(!0), this - } - refreshTiles(h, e) { - const n = this.style.sourceCaches[h]; - if (!n) throw new Error(`There is no source cache with ID "${h}", cannot refresh tile`); - e === void 0 ? n.reload(!0) : n.refreshTiles(e.map((s => new o.a4(s.z, s.x, s.y)))) - } - addImage(h, e, n = {}) { - const { - pixelRatio: s = 1, - sdf: u = !1, - stretchX: d, - stretchY: m, - content: y, - textFitWidth: w, - textFitHeight: P - } = n; - if (this._lazyInitEmptyStyle(), !(e instanceof HTMLImageElement || o.b(e))) { - if (e.width === void 0 || e.height === void 0) return this.fire(new o.k(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: D, - data: z - } = e, B = e; - return this.style.addImage(h, { - data: new o.R({ - width: M, - height: D - }, new Uint8Array(z)), - pixelRatio: s, - stretchX: d, - stretchY: m, - content: y, - textFitWidth: w, - textFitHeight: P, - sdf: u, - version: 0, - userImage: B - }), B.onAdd && B.onAdd(this, h), this - } - } { - const { - width: M, - height: D, - data: z - } = ye.getImageData(e); - this.style.addImage(h, { - data: new o.R({ - width: M, - height: D - }, z), - pixelRatio: s, - stretchX: d, - stretchY: m, - content: y, - textFitWidth: w, - textFitHeight: P, - sdf: u, - version: 0 - }) - } - } - updateImage(h, e) { - const n = this.style.getImage(h); - if (!n) return this.fire(new o.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead."))); - const s = e instanceof HTMLImageElement || o.b(e) ? ye.getImageData(e) : e, - { - width: u, - height: d, - data: m - } = s; - if (u === void 0 || d === void 0) return this.fire(new o.k(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 (u !== n.data.width || d !== n.data.height) return this.fire(new o.k(new Error("The width and height of the updated image must be that same as the previous version of the image"))); - const y = !(e instanceof HTMLImageElement || o.b(e)); - return n.data.replace(m, y), this.style.updateImage(h, n), this - } - getImage(h) { - return this.style.getImage(h) - } - hasImage(h) { - return h ? !!this.style.getImage(h) : (this.fire(new o.k(new Error("Missing required image id"))), !1) - } - removeImage(h) { - this.style.removeImage(h) - } - loadImage(h) { - return Ne.getImage(this._requestManager.transformRequest(h, "Image"), new AbortController) - } - listImages() { - return this.style.listImages() - } - addLayer(h, e) { - return this._lazyInitEmptyStyle(), this.style.addLayer(h, e), this._update(!0) - } - moveLayer(h, e) { - return this.style.moveLayer(h, e), this._update(!0) - } - removeLayer(h) { - return this.style.removeLayer(h), this._update(!0) - } - getLayer(h) { - return this.style.getLayer(h) - } - getLayersOrder() { - return this.style.getLayersOrder() - } - setLayerZoomRange(h, e, n) { - return this.style.setLayerZoomRange(h, e, n), this._update(!0) - } - setFilter(h, e, n = {}) { - return this.style.setFilter(h, e, n), this._update(!0) - } - getFilter(h) { - return this.style.getFilter(h) - } - setPaintProperty(h, e, n, s = {}) { - return this.style.setPaintProperty(h, e, n, s), this._update(!0) - } - getPaintProperty(h, e) { - return this.style.getPaintProperty(h, e) - } - setLayoutProperty(h, e, n, s = {}) { - return this.style.setLayoutProperty(h, e, n, s), this._update(!0) - } - getLayoutProperty(h, e) { - return this.style.getLayoutProperty(h, e) - } - setGlyphs(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setGlyphs(h, e), this._update(!0) - } - getGlyphs() { - return this.style.getGlyphsUrl() - } - addSprite(h, e, n = {}) { - return this._lazyInitEmptyStyle(), this.style.addSprite(h, e, n, (s => { - s || this._update(!0) - })), this - } - removeSprite(h) { - return this._lazyInitEmptyStyle(), this.style.removeSprite(h), this._update(!0) - } - getSprite() { - return this.style.getSprite() - } - setSprite(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setSprite(h, e, (n => { - n || this._update(!0) - })), this - } - setLight(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setLight(h, e), this._update(!0) - } - getLight() { - return this.style.getLight() - } - setSky(h, e = {}) { - return this._lazyInitEmptyStyle(), this.style.setSky(h, e), this._update(!0) - } - getSky() { - return this.style.getSky() - } - setFeatureState(h, e) { - return this.style.setFeatureState(h, e), this._update() - } - removeFeatureState(h, e) { - return this.style.removeFeatureState(h, e), this._update() - } - getFeatureState(h) { - return this.style.getFeatureState(h) - } - getContainer() { - return this._container - } - getCanvasContainer() { - return this._canvasContainer - } - getCanvas() { - return this._canvas - } - _containerDimensions() { - let h = 0, - e = 0; - return this._container && (h = this._container.clientWidth || 400, e = this._container.clientHeight || 300), [h, e] - } - _setupContainer() { - const h = this._container; - h.classList.add("maplibregl-map"); - const e = this._canvasContainer = X.create("div", "maplibregl-canvas-container", h); - this._interactive && e.classList.add("maplibregl-interactive"), this._canvas = X.create("canvas", "maplibregl-canvas", e), this._canvas.addEventListener("webglcontextlost", this._contextLost, !1), this._canvas.addEventListener("webglcontextrestored", this._contextRestored, !1), this._canvas.setAttribute("tabindex", this._interactive ? "0" : "-1"), this._canvas.setAttribute("aria-label", this._getUIString("Map.Title")), this._canvas.setAttribute("role", "region"); - const n = this._containerDimensions(), - s = this._getClampedPixelRatio(n[0], n[1]); - this._resizeCanvas(n[0], n[1], s); - const u = this._controlContainer = X.create("div", "maplibregl-control-container", h), - d = this._controlPositions = {}; - ["top-left", "top-right", "bottom-left", "bottom-right"].forEach((m => { - d[m] = X.create("div", `maplibregl-ctrl-${m} `, u) - })), this._container.addEventListener("scroll", this._onMapScroll, !1) - } - _resizeCanvas(h, e, n) { - this._canvas.width = Math.floor(n * h), this._canvas.height = Math.floor(n * e), this._canvas.style.width = `${h}px`, this._canvas.style.height = `${e}px` - } - _setupPainter() { - const h = Object.assign(Object.assign({}, this._canvasContextAttributes), { - alpha: !0, - depth: !0, - stencil: !0, - premultipliedAlpha: !0 - }); - let e = null; - this._canvas.addEventListener("webglcontextcreationerror", (s => { - e = { - requestedAttributes: h - }, s && (e.statusMessage = s.statusMessage, e.type = s.type) - }), { - once: !0 - }); - let n = null; - if (n = this._canvasContextAttributes.contextType ? this._canvas.getContext(this._canvasContextAttributes.contextType, h) : this._canvas.getContext("webgl2", h) || this._canvas.getContext("webgl", h), !n) { - const s = "Failed to initialize WebGL"; - throw e ? (e.message = s, new Error(JSON.stringify(e))) : new Error(s) - } - this.painter = new jh(n, this.transform), Se.testSupport(n) - } - migrateProjection(h, e) { - super.migrateProjection(h, e), this.painter.transform = h, this.fire(new o.l("projectiontransition", { - newProjection: this.style.projection.name - })) - } - loaded() { - return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded() - } - _update(h) { - return this.style && this.style._loaded ? (this._styleDirty = this._styleDirty || h, this._sourcesDirty = !0, this.triggerRepaint(), this) : this - } - _requestRenderFrame(h) { - return this._update(), this._renderTaskQueue.add(h) - } - _cancelRenderFrame(h) { - this._renderTaskQueue.remove(h) - } - _render(h) { - var e, n, s, u, d; - const m = this._idleTriggered ? this._fadeDuration : 0, - y = ((e = this.style.projection) === null || e === void 0 ? void 0 : e.transitionState) > 0; - if (this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(h), this._removed) return; - let w = !1; - if (this.style && this._styleDirty) { - this._styleDirty = !1; - const D = this.transform.zoom, - z = ye.now(); - this.style.zoomHistory.update(D, z); - const B = new o.F(D, { - now: z, - fadeDuration: m, - zoomHistory: this.style.zoomHistory, - transition: this.style.getTransition(), - globalState: this.style.getGlobalState() - }), - U = B.crossFadingFactor(); - U === 1 && U === this._crossFadingFactor || (w = !0, this._crossFadingFactor = U), this.style.update(B) - } - const P = ((n = this.style.projection) === null || n === void 0 ? void 0 : n.transitionState) > 0 !== y; - (s = this.style.projection) === null || s === void 0 || s.setErrorQueryLatitudeDegrees(this.transform.center.lat), this.transform.setTransitionState((u = this.style.projection) === null || u === void 0 ? void 0 : u.transitionState, (d = this.style.projection) === null || d === void 0 ? void 0 : d.latitudeErrorCorrectionRadians), this.style && (this._sourcesDirty || P) && (this._sourcesDirty = !1, this.style._updateSources(this.transform)), this.terrain ? (this.terrain.sourceCache.update(this.transform, this.terrain), this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), !this._elevationFreeze && this._centerClampedToGround && this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom))) : (this.transform.setMinElevationForCurrentTile(0), this._centerClampedToGround && this.transform.setElevation(0)), this._placementDirty = this.style && this.style._updatePlacement(this.transform, this.showCollisionBoxes, m, this._crossSourceCollisions, P), this.painter.render(this.style, { - showTileBoundaries: this.showTileBoundaries, - showOverdrawInspector: this._showOverdrawInspector, - rotating: this.isRotating(), - zooming: this.isZooming(), - moving: this.isMoving(), - fadeDuration: m, - showPadding: this.showPadding - }), this.fire(new o.l("render")), this.loaded() && !this._loaded && (this._loaded = !0, o.cw.mark(o.cx.load), this.fire(new o.l("load"))), this.style && (this.style.hasTransitions() || w) && (this._styleDirty = !0), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles(); - const M = this._sourcesDirty || this._styleDirty || this._placementDirty; - return M || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new o.l("idle")), !this._loaded || this._fullyLoaded || M || (this._fullyLoaded = !0, o.cw.mark(o.cx.fullLoad)), this - } - redraw() { - return this.style && (this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._render(0)), this - } - remove() { - var h; - this._hash && this._hash.remove(); - for (const n of this._controls) n.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), Ne.removeThrottleControl(this._imageQueueHandle), (h = this._resizeObserver) === null || h === void 0 || h.disconnect(); - const e = this.painter.context.gl.getExtension("WEBGL_lose_context"); - e != null && e.loseContext && e.loseContext(), this._canvas.removeEventListener("webglcontextrestored", this._contextRestored, !1), this._canvas.removeEventListener("webglcontextlost", this._contextLost, !1), X.remove(this._canvasContainer), X.remove(this._controlContainer), this._container.removeEventListener("scroll", this._onMapScroll, !1), this._container.classList.remove("maplibregl-map"), o.cw.clearMetrics(), this._removed = !0, this.fire(new o.l("remove")) - } - triggerRepaint() { - this.style && !this._frameRequest && (this._frameRequest = new AbortController, ye.frame(this._frameRequest, (h => { - o.cw.frame(h), this._frameRequest = null; - try { - this._render(h) - } catch (e) { - if (!o.cy(e) && !(function(n) { - return n.message === To - })(e)) throw e - } - }), (() => {}))) - } - get showTileBoundaries() { - return !!this._showTileBoundaries - } - set showTileBoundaries(h) { - this._showTileBoundaries !== h && (this._showTileBoundaries = h, this._update()) - } - get showPadding() { - return !!this._showPadding - } - set showPadding(h) { - this._showPadding !== h && (this._showPadding = h, this._update()) - } - get showCollisionBoxes() { - return !!this._showCollisionBoxes - } - set showCollisionBoxes(h) { - this._showCollisionBoxes !== h && (this._showCollisionBoxes = h, h ? this.style._generateCollisionBoxes() : this._update()) - } - get showOverdrawInspector() { - return !!this._showOverdrawInspector - } - set showOverdrawInspector(h) { - this._showOverdrawInspector !== h && (this._showOverdrawInspector = h, this._update()) - } - get repaint() { - return !!this._repaint - } - set repaint(h) { - this._repaint !== h && (this._repaint = h, this.triggerRepaint()) - } - get vertices() { - return !!this._vertices - } - set vertices(h) { - this._vertices = h, this._update() - } - get version() { - return rd - } - getCameraTargetElevation() { - return this.transform.elevation - } - getProjection() { - return this.style.getProjection() - } - setProjection(h) { - return this._lazyInitEmptyStyle(), this.style.setProjection(h), this._update(!0) - } - }, T.MapMouseEvent = Wn, T.MapTouchEvent = qs, T.MapWheelEvent = qc, T.Marker = Xs, T.NavigationControl = class { - constructor(h) { - this._updateZoomButtons = () => { - const e = this._map.getZoom(), - n = e === this._map.getMaxZoom(), - s = e === this._map.getMinZoom(); - this._zoomInButton.disabled = n, this._zoomOutButton.disabled = s, this._zoomInButton.setAttribute("aria-disabled", n.toString()), this._zoomOutButton.setAttribute("aria-disabled", s.toString()) - }, this._rotateCompassArrow = () => { - this._compassIcon.style.transform = this.options.visualizePitch && this.options.visualizeRoll ? `scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)` : this.options.visualizePitch ? `scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)` : this.options.visualizeRoll ? `rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)` : `rotate(${-this._map.transform.bearing}deg)` - }, this._setButtonTitle = (e, n) => { - const s = this._map._getUIString(`NavigationControl.${n}`); - e.title = s, e.setAttribute("aria-label", s) - }, this.options = o.e({}, bp, h), this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._container.addEventListener("contextmenu", (e => e.preventDefault())), this.options.showZoom && (this._zoomInButton = this._createButton("maplibregl-ctrl-zoom-in", (e => this._map.zoomIn({}, { - originalEvent: e - }))), X.create("span", "maplibregl-ctrl-icon", this._zoomInButton).setAttribute("aria-hidden", "true"), this._zoomOutButton = this._createButton("maplibregl-ctrl-zoom-out", (e => this._map.zoomOut({}, { - originalEvent: e - }))), X.create("span", "maplibregl-ctrl-icon", this._zoomOutButton).setAttribute("aria-hidden", "true")), this.options.showCompass && (this._compass = this._createButton("maplibregl-ctrl-compass", (e => { - this.options.visualizePitch ? this._map.resetNorthPitch({}, { - originalEvent: e - }) : this._map.resetNorth({}, { - originalEvent: e - }) - })), this._compassIcon = X.create("span", "maplibregl-ctrl-icon", this._compass), this._compassIcon.setAttribute("aria-hidden", "true")) - } - onAdd(h) { - return this._map = h, 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.options.visualizeRoll && this._map.on("roll", this._rotateCompassArrow), this._map.on("rotate", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new Lo(this._map, this._compass, this.options.visualizePitch)), this._container - } - onRemove() { - X.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.options.visualizeRoll && this._map.off("roll", this._rotateCompassArrow), this._map.off("rotate", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map - } - _createButton(h, e) { - const n = X.create("button", h, this._container); - return n.type = "button", n.addEventListener("click", e), n - } - }, T.Popup = class extends o.E { - constructor(h) { - super(), this._updateOpacity = () => { - this.options.locationOccludedOpacity !== void 0 && (this._container.style.opacity = this._map.transform.isLocationOccluded(this.getLngLat()) ? `${this.options.locationOccludedOpacity}` : "") - }, this.remove = () => (this._content && X.remove(this._content), this._container && (X.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 o.l("close"))), this), this._onMouseUp = e => { - this._update(e.point) - }, this._onMouseMove = e => { - this._update(e.point) - }, this._onDrag = e => { - this._update(e.point) - }, this._update = e => { - if (!this._map || !this._lngLat && !this._trackPointer || !this._content) return; - if (!this._container) { - if (this._container = X.create("div", "maplibregl-popup", this._map.getContainer()), this._tip = X.create("div", "maplibregl-popup-tip", this._container), this._container.appendChild(this._content), this.options.className) - for (const m of this.options.className.split(" ")) this._container.classList.add(m); - this._closeButton && this._closeButton.setAttribute("aria-label", this._map._getUIString("Popup.Close")), 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 = Hi(this._lngLat, this._flatPos, this._map.transform, this._trackPointer), this._trackPointer && !e) return; - const n = this._flatPos = this._pos = this._trackPointer && e ? e : this._map.project(this._lngLat); - this._map.terrain && (this._flatPos = this._trackPointer && e ? e : this._map.transform.locationToScreenPoint(this._lngLat)); - let s = this.options.anchor; - const u = Al(this.options.offset); - if (!s) { - const m = this._container.offsetWidth, - y = this._container.offsetHeight; - let w; - w = n.y + u.bottom.y < y ? ["top"] : n.y > this._map.transform.height - y ? ["bottom"] : [], n.x < m / 2 ? w.push("left") : n.x > this._map.transform.width - m / 2 && w.push("right"), s = w.length === 0 ? "bottom" : w.join("-") - } - let d = n.add(u[s]); - this.options.subpixelPositioning || (d = d.round()), X.setTransform(this._container, `${Il[s]} translate(${d.x}px,${d.y}px)`), Ws(this._container, s, "popup"), this._updateOpacity() - }, this._onClose = () => { - this.remove() - }, this.options = o.e(Object.create(Jc), h) - } - addTo(h) { - return this._map && this.remove(), this._map = h, 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 o.l("open")), this - } - isOpen() { - return !!this._map - } - getLngLat() { - return this._lngLat - } - setLngLat(h) { - return this._lngLat = o.S.convert(h), 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(h) { - return this.setDOMContent(document.createTextNode(h)) - } - setHTML(h) { - const e = document.createDocumentFragment(), - n = document.createElement("body"); - let s; - for (n.innerHTML = h; s = n.firstChild, s;) e.appendChild(s); - return this.setDOMContent(e) - } - getMaxWidth() { - var h; - return (h = this._container) === null || h === void 0 ? void 0 : h.style.maxWidth - } - setMaxWidth(h) { - return this.options.maxWidth = h, this._update(), this - } - setDOMContent(h) { - if (this._content) - for (; this._content.hasChildNodes();) this._content.firstChild && this._content.removeChild(this._content.firstChild); - else this._content = X.create("div", "maplibregl-popup-content", this._container); - return this._content.appendChild(h), this._createCloseButton(), this._update(), this._focusFirstElement(), this - } - addClassName(h) { - return this._container && this._container.classList.add(h), this - } - removeClassName(h) { - return this._container && this._container.classList.remove(h), this - } - setOffset(h) { - return this.options.offset = h, this._update(), this - } - toggleClassName(h) { - if (this._container) return this._container.classList.toggle(h) - } - setSubpixelPositioning(h) { - this.options.subpixelPositioning = h - } - _createCloseButton() { - this.options.closeButton && (this._closeButton = X.create("button", "maplibregl-popup-close-button", this._content), this._closeButton.type = "button", this._closeButton.innerHTML = "×", this._closeButton.addEventListener("click", this._onClose)) - } - _focusFirstElement() { - if (!this.options.focusAfterOpen || !this._container) return; - const h = this._container.querySelector(Qc); - h && h.focus() - } - }, T.RasterDEMTileSource = nr, T.RasterTileSource = Yt, T.ScaleControl = class { - constructor(h) { - this._onMove = () => { - Ml(this._map, this._container, this.options) - }, this.setUnit = e => { - this.options.unit = e, Ml(this._map, this._container, this.options) - }, this.options = Object.assign(Object.assign({}, Do), h) - } - getDefaultPosition() { - return "bottom-left" - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-scale", h.getContainer()), this._map.on("move", this._onMove), this._onMove(), this._container - } - onRemove() { - X.remove(this._container), this._map.off("move", this._onMove), this._map = void 0 - } - }, T.ScrollZoomHandler = Xh, T.Style = gc, T.TerrainControl = class { - constructor(h) { - 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 = h - } - onAdd(h) { - return this._map = h, this._container = X.create("div", "maplibregl-ctrl maplibregl-ctrl-group"), this._terrainButton = X.create("button", "maplibregl-ctrl-terrain", this._container), X.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() { - X.remove(this._container), this._map.off("terrain", this._updateTerrainIcon), this._map = void 0 - } - }, T.TwoFingersTouchPitchHandler = bl, T.TwoFingersTouchRotateHandler = Gs, T.TwoFingersTouchZoomHandler = xl, T.TwoFingersTouchZoomRotateHandler = Jh, T.VectorTileSource = Xt, T.VideoSource = dr, T.addSourceType = (h, e) => o._(void 0, void 0, void 0, (function*() { - if (jr(h)) throw new Error(`A source type called "${h}" already exists.`); - ((n, s) => { - Ir[n] = s - })(h, e) - })), T.clearPrewarmedResources = function() { - const h = We; - h && (h.isPreloaded() && h.numActive() === 1 ? (h.release(Pe), We = 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()")) - }, T.createTileMesh = mc, T.getMaxParallelImageRequests = function() { - return o.a.MAX_PARALLEL_IMAGE_REQUESTS - }, T.getRTLTextPluginStatus = function() { - return kr().getRTLTextPluginStatus() - }, T.getVersion = function() { - return eu - }, T.getWorkerCount = function() { - return Me.workerCount - }, T.getWorkerUrl = function() { - return o.a.WORKER_URL - }, T.importScriptInWorkers = function(h) { - return tt().broadcast("IS", h) - }, T.prewarm = function() { - _t().acquire(Pe) - }, T.setMaxParallelImageRequests = function(h) { - o.a.MAX_PARALLEL_IMAGE_REQUESTS = h - }, T.setRTLTextPlugin = function(h, e) { - return kr().setRTLTextPlugin(h, e) - }, T.setWorkerCount = function(h) { - Me.workerCount = h - }, T.setWorkerUrl = function(h) { - o.a.WORKER_URL = h - } - })); - var F = _; - return F - })) - })(Pd)), Pd.exports -} -var DP = LP(); -const bd = nm(DP); -class fg { - constructor(l) { - lr(this, "gm"); - lr(this, "markers", new Map); - lr(this, "canvases", new Map); - lr(this, "canvasSize"); - lr(this, "canvasOpacity", .8); - this.input = l, this.gm = new hc(this.input.tileSize); - const _ = rv(l.img); - this.canvasSize = Math.ceil(2e3 / _) - } - place([l, _]) { - const C = this.gm.latLonToPixelsFloor(l, _, this.input.zoom), - L = this.getMarkerId(C), - F = this.gm.latLonToPixelBoundsLatLon(l, _, this.input.zoom), - T = this.input.map; - if (this.input.markerFn && !this.markers.has(L)) { - const pe = this.input.markerFn(); - pe.setLngLat({ - lat: F.min[0], - lng: (F.max[1] + F.min[1]) / 2 - }).addTo(T), this.markers.set(L, pe) - } - const { - key: o, - pos: $, - innerPos: W - } = this.getCanvasPos(C); - let ie = this.canvases.get(o); - if (!ie) { - const pe = this.canvasSize, - ye = $.x * pe, - X = $.y * pe, - Se = ye + pe - 1, - we = X + pe - 1, - Re = this.gm.pixelsToLatLon(ye, we + 1, this.input.zoom), - Ae = this.gm.pixelsToLatLon(Se + 1, X, this.input.zoom); - ie = new RP({ - id: `${this.input.id}-${o}`, - img: this.input.img, - canvasSize: this.canvasSize, - coordinates: rm({ - min: Re, - max: Ae - }), - layerPaint: { - "raster-resampling": "nearest", - "raster-opacity": this.canvasOpacity - } - }), ie.addTo(this.input.map), this.canvases.set(o, ie) - } - ie.place(W.x, W.y) - } - clear() { - const l = this.input.map; - for (const _ of this.canvases.values()) _.removeFrom(l), _.removeDOM(); - this.canvases.clear(); - for (const _ of this.markers.values()) _.remove(); - this.markers.clear() - } - clearAndPlace(l) { - this.clear(), this.place(l) - } - remove([l, _]) { - let C = !1; - const L = this.gm.latLonToPixelsFloor(l, _, this.input.zoom), - { - key: F, - innerPos: T - } = this.getCanvasPos(L), - o = this.canvases.get(F); - o && (C = o.remove(T.x, T.y), o.annotationsCount() === 0 && (this.canvases.delete(F), o.removeFrom(this.input.map), o.removeDOM())); - const $ = this.getMarkerId(L), - W = this.markers.get($); - return W == null || W.remove(), this.markers.delete($), C - } - setCanvasOpacity(l) { - this.canvasOpacity = l; - for (const _ of this.canvases.values()) _.setOpacity(l) - } - getMarkerId([l, _]) { - return `${this.input.id}:${l},${_}` - } - getCanvasPos([l, _]) { - const C = { - x: Math.floor(l / this.canvasSize), - y: Math.floor(_ / this.canvasSize) - }, - L = { - x: l % this.canvasSize, - y: _ % this.canvasSize - }, - F = `${C.x},${C.y}`; - return { - pos: C, - innerPos: L, - key: F - } - } -} -class RP { - constructor(l) { - lr(this, "annotations", new Set); - lr(this, "canvas"); - lr(this, "imgSize"); - lr(this, "maps", new Set); - this.input = l, this.imgSize = rv(l.img), this.canvas = document.createElement("canvas"), this.canvas.width = this.input.canvasSize * this.imgSize, this.canvas.height = this.input.canvasSize * this.imgSize - } - place(l, _) { - const C = this.getPixelKey(l, _); - if (this.annotations.has(C)) return !1; - const L = this.canvas.getContext("2d"); - if (L) { - const F = l * this.imgSize, - T = _ * this.imgSize; - L.drawImage(this.input.img, F, T) - } - return this.annotations.add(C), !0 - } - remove(l, _) { - const C = this.getPixelKey(l, _); - if (!this.annotations.has(C)) return !1; - const L = this.canvas.getContext("2d"); - if (L) { - const F = l * this.imgSize, - T = _ * this.imgSize; - L.clearRect(F, T, this.imgSize, this.imgSize) - } - return this.annotations.delete(C), !0 - } - addTo(l) { - const _ = this.input.id; - l.getSource(_) || l.addSource(_, { - type: "canvas", - canvas: this.canvas, - coordinates: this.input.coordinates - }), l.getLayer(_) || l.addLayer({ - id: _, - type: "raster", - source: _, - paint: this.input.layerPaint - }), this.maps.add(l) - } - removeFrom(l) { - const { - id: _ - } = this.input; - l.getLayer(_) && l.removeLayer(_), l.getSource(_) && l.removeSource(_), this.maps.delete(l) - } - removeDOM() { - this.canvas.remove() - } - annotationsCount() { - return this.annotations.size - } - setOpacity(l) { - for (const _ of this.maps.values()) _.setPaintProperty(this.input.id, "raster-opacity", l) - } - getPixelKey(l, _) { - return `${l},${_}` - } -} - -function rv(b) { - return Math.max(b.naturalWidth, b.naturalHeight) -} - -function BP() { - return window.matchMedia("(display-mode: standalone)").matches || "standalone" in window.navigator && window.navigator.standalone === !0 -} - -function Cu(b, l) { - return l.includes(b) -} - -function FP(b) { - const l = { - opaque: !0 - }, - _ = b.searchParams.get("lat"), - C = b.searchParams.get("lng"); - _ && C && (l.pos = { - lat: parseFloat(_), - lng: parseFloat(C) - }); - const L = b.searchParams.get("zoom"); - L && (l.zoom = parseFloat(L)); - const F = b.searchParams.get("season"); - F && (l.season = parseInt(F)); - const T = b.searchParams.get("opaque"); - return T && (l.opaque = T !== "0"), b.searchParams.get("select") && (l.select = !0), l.newUser = !!b.searchParams.get("new-user"), l.alliance = !!b.searchParams.get("alliance"), l -} - -function OP(b, l) { - return b = new URL(b), l.pos !== void 0 && (b.searchParams.set("lat", l.pos.lat.toString()), b.searchParams.set("lng", l.pos.lng.toString())), l.zoom !== void 0 && b.searchParams.set("zoom", l.zoom.toString()), l.season !== void 0 && b.searchParams.set("season", l.season.toString()), l.opaque !== void 0 && b.searchParams.set("opaque", l.opaque ? "1" : "0"), l.newUser !== void 0 && b.searchParams.set("new-user", l.newUser ? "1" : "0"), l.alliance !== void 0 && b.searchParams.set("alliance", l.alliance ? "1" : "0"), l.select && b.searchParams.set("alliance", "1"), b -} -const Id = zn({ - shouldReload: !0 -}); -var NP = Ie(' '), - jP = Ie(' '), - qP = Ie('
              '); - -function iv(b, l) { - Sr(l, !0); - let _ = Et(l, "value", 15), - C = Et(l, "validate", 15), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "label", "placeholder", "value", "max", "min", "validate"]), - F = nt(""); - const T = lt(() => { - var Ae; - return ((Ae = _()) == null ? void 0 : Ae.length) ?? 0 - }); - C(o); - - function o() { - return l.min !== void 0 && x(T) < l.min ? (oe(F, l.min === 1 ? _P() : yP({ - min: l.min - }), !0), !1) : l.max !== void 0 && x(T) > l.max ? (oe(F, wP({ - max: l.max - }), !0), !1) : !0 - } - Zr(() => { - var Ae; - l.max !== void 0 && x(T) > l.max && _((Ae = _()) == null ? void 0 : Ae.substring(0, l.max)) - }); - var $ = qP(), - W = k($); - { - var ie = Ae => { - var Oe = NP(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.label)), H(Ae, Oe) - }; - Ue(W, Ae => { - l.label && Ae(ie) - }) - } - var pe = V(W, 2); - Oy(pe), er(pe, Ae => ({ - ...L, - class: `textarea w-full ${l.class??""}`, - placeholder: l.placeholder, - [Uy]: Ae - }), [() => ({ - "textarea-error": !!x(F) - })]); - var ye = V(pe, 2), - X = k(ye), - Se = k(X, !0); - A(X); - var we = V(X, 2); - { - var Re = Ae => { - var Oe = jP(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.max - x(T))), H(Ae, Oe) - }; - Ue(we, Ae => { - l.max !== void 0 && Ae(Re) - }) - } - A(ye), A($), Ge(() => fe(Se, x(F))), jd(pe, _), H(b, $), Pr() -} -var VP = (b, l) => { - var _; - (_ = l()) == null || _.close() - }, - UP = Ie(' '); - -function ZP(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15), - C = nt(!1), - L = nt(zn(l.description)), - F = nt(void 0); - Ii(() => { - const Oe = Ee => { - var Ne; - Ee.key === "Escape" && ((Ne = _()) == null || Ne.close()) - }; - return document.addEventListener("keydown", Oe), () => document.removeEventListener("keydown", Oe) - }); - var T = UP(), - o = k(T), - $ = k(o), - W = k($, !0); - A($); - var ie = V($, 2), - pe = k(ie), - ye = k(pe); - { - let Oe = lt(() => Hg()); - iv(ye, { - class: "h-24 rounded-lg", - get placeholder() { - return x(Oe) - }, - max: 512, - get value() { - return x(L) - }, - set value(Ee) { - oe(L, Ee, !0) - }, - get validate() { - return x(F) - }, - set validate(Ee) { - oe(F, Ee, !0) - } - }) - } - A(pe); - var X = V(pe, 2), - Se = k(X); - Se.__click = [VP, _]; - var we = k(Se, !0); - A(Se); - var Re = V(Se, 2), - Ae = k(Re, !0); - A(Re), A(X), A(ie), A(o), fi(2), A(T), ps(T, Oe => _(Oe), () => _()), Ge((Oe, Ee, Ne) => { - fe(W, Oe), Se.disabled = x(C), fe(we, Ee), Re.disabled = x(C), fe(Ae, Ne) - }, [() => Zy(), () => qd(), () => ET()]), an("submit", ie, async () => { - var Oe, Ee, Ne; - try { - if (!((Oe = x(F)) != null && Oe())) return; - oe(C, !0), l.description !== x(L) && await ni.updateAllianceDescription(x(L)), await ((Ee = l.onsuccess) == null ? void 0 : Ee.call(l, x(L))), (Ne = _()) == null || Ne.close() - } catch (ft) { - qr.error(ft.message) - } finally { - oe(C, !1) - } - }), H(b, T), Pr() -} -Wi(["click"]); -var $P = (b, l, _) => { - navigator.clipboard.writeText(x(l).toString()), oe(_, !0), setTimeout(() => { - oe(_, !1) - }, 1e3) - }, - GP = Ie(''), - HP = Ie(' '); - -function WP(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(""), - L = nt(!1); - const F = lt(() => La.url.origin + `/join?id=${x(C)}`); - Zr(() => { - _() && ni.getAllianceInvites().then(ht => { - oe(C, ht[0], !0) - }).catch(ht => { - qr.error(ht.message) - }) - }), Ii(() => { - const ht = Xe => { - Xe.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", ht), () => document.removeEventListener("keydown", ht) - }); - var T = HP(), - o = k(T), - $ = V(k(o), 2), - W = k($, !0); - A($); - var ie = V($, 2), - pe = k(ie, !0); - A(ie); - var ye = V(ie, 2), - X = k(ye); - let Se; - var we = k(X); - ea(we); - var Re = V(we, 2), - Ae = k(Re); - let Oe; - Ae.__click = [$P, F, L]; - var Ee = k(Ae, !0); - A(Ae), A(Re), A(X); - var Ne = V(X, 2); - { - var ft = ht => { - var Xe = GP(); - H(ht, Xe) - }; - Ue(Ne, ht => { - x(C) || ht(ft) - }) - } - A(ye), A(o), fi(2), A(T), On(T, () => ht => { - Zr(() => { - _() ? ht.show() : ht.close() - }) - }), Ge((ht, Xe, ct, Je, Be, st) => { - fe(W, ht), fe(pe, Xe), Se = Or(X, 1, "border-base-content/20 rounded-field relative flex w-full items-center gap-1 border-2 py-1.5 pl-4 pr-2.5", null, Se, ct), Jl(we, Je), Oe = Or(Ae, 1, "btn btn-primary", null, Oe, Be), fe(Ee, st) - }, [() => S5(), () => M5(), () => ({ - invisible: !x(C) - }), () => x(F).toString(), () => ({ - "btn-success": x(L) - }), () => x(L) ? Gg() : bf()]), an("close", T, () => _(!1)), H(b, T), Pr() -} -Wi(["click"]); -var XP = Tr(''); - -function am(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = XP(); - er(C, () => ({ - viewBox: "0 0 256 199", - width: "256", - height: "199", - xmlns: "http://www.w3.org/2000/svg", - preserveAspectRatio: "xMidYMid", - ..._ - })), H(b, C) -} -var KP = async (b, l) => { - await navigator.clipboard.writeText(l.username), qr.info(V3()) -}, YP = Ie(''); - -function ph(b, l) { - Sr(l, !0); - var _ = YP(), - C = k(_); - C.__click = [KP, l]; - var L = k(C); - am(L, { - class: "size-4 opacity-70" - }), A(C), A(_), Ge(() => zr(_, "data-tip", `Discord: ${l.username}`)), H(b, _), Pr() -} -Wi(["click"]); -var JP = Ie(''), - QP = Ie('
              '); - -function sm(b, l) { - Sr(l, !0); - const _ = []; - let C = Et(l, "value", 15, "today"), - L = [{ - value: "today", - label: Wd() - }, { - value: "week", - label: Z5() - }, { - value: "month", - label: H5() - }, { - value: "all-time", - label: K5() - }]; - var F = QP(); - nn(F, 21, () => L, T => T.value, (T, o) => { - var $ = JP(); - ea($); - var W; - Ge(() => { - zr($, "aria-label", x(o).label), W !== (W = x(o).value) && ($.value = ($.__value = x(o).value) ?? "") - }), Vd(_, [], $, () => (x(o).value, C()), C), H(T, $) - }), A(F), H(b, F), Pr() -} -const eI = typeof window < "u" ? window : void 0; - -function tI(b) { - let l = b.activeElement; - for (; l != null && l.shadowRoot;) { - const _ = l.shadowRoot.activeElement; - if (_ === l) break; - l = _ - } - return l -} -var rc, zu, Ig; -let rI = (Ig = class { - constructor(l = {}) { - br(this, rc); - br(this, zu); - const { - window: _ = eI, - document: C = _ == null ? void 0 : _.document - } = l; - _ !== void 0 && (Jn(this, rc, C), Jn(this, zu, zg(L => { - const F = Su(_, "focusin", L), - T = Su(_, "focusout", L); - return () => { - F(), T() - } - }))) - } - get current() { - var l; - return (l = et(this, zu)) == null || l.call(this), et(this, rc) ? tI(et(this, rc)) : null - } -}, rc = new WeakMap, zu = new WeakMap, Ig); -new rI; - -function iI(b, l) { - switch (b) { - case "post": - Zr(l); - break; - case "pre": - Hf(l); - break - } -} - -function nv(b, l, _, C = {}) { - const { - lazy: L = !1 - } = C; - let F = !L, - T = Array.isArray(b) ? [] : void 0; - iI(l, () => { - const o = Array.isArray(b) ? b.map(W => W()) : b(); - if (!F) { - F = !0, T = o; - return - } - const $ = Go(() => _(o, T)); - return T = o, $ - }) -} - -function dc(b, l, _) { - nv(b, "post", l, _) -} - -function nI(b, l, _) { - nv(b, "pre", l, _) -} -dc.pre = nI; -var aI = Ie(''), - sI = Ie('
              '), - oI = Ie(' '), - lI = (b, l, _) => { - l.onlastpixelclick({ - lat: x(_).lastLatitude ?? 0, - lng: x(_).lastLongitude ?? 0 - }) - }, - cI = Ie(""), - uI = Ie('
              '), - hI = Ie('
              '), - dI = Ie('
              '); - -function pI(b, l) { - Sr(l, !0); - let _ = Et(l, "reload", 15), - C = nt(!0), - L = nt([]), - F = nt(0), - T = nt("today"), - o = {}; - _($); - - function $() { - const we = x(T); - ni.allianceLeaderboard(we).then(Re => { - oe(L, Re), o = { - [we]: Re - }, oe(C, !1) - }).catch(Re => { - qr.error(Re.message) - }) - } - dc(() => [x(T)], () => { - const we = x(T), - Re = o[we]; - if (Re) { - oe(L, Re), oe(C, !1); - return - } - oe(C, !0), ni.allianceLeaderboard(we).then(Ae => { - oe(L, Ae), o[we] = Ae, oe(C, !1) - }).catch(Ae => { - qr.error(Ae.message) - }) - }); - var W = dI(), - ie = k(W); - sm(ie, { - get value() { - return x(T) - }, - set value(we) { - oe(T, we, !0) - } - }); - var pe = V(ie, 2), - ye = k(pe); - { - var X = we => { - var Re = aI(); - H(we, Re) - }, - Se = we => { - var Re = Jt(), - Ae = zt(Re); - { - var Oe = Ne => { - var ft = sI(), - ht = k(ft), - Xe = V(ht); - { - var ct = Be => { - var st = Fn(); - Ge(it => fe(st, it), [() => Wd().toLowerCase()]), H(Be, st) - }, - Je = Be => { - var st = Jt(), - it = zt(st); - { - var Qe = vt => { - var Q = Fn(); - Ge(te => fe(Q, te), [() => Qf()]), H(vt, Q) - }, - ke = vt => { - var Q = Jt(), - te = zt(Q); - { - var _e = ne => { - var Pe = Fn(); - Ge(Me => fe(Pe, Me), [() => em()]), H(ne, Pe) - }; - Ue(te, ne => { - x(T) === "month" && ne(_e) - }, !0) - } - H(vt, Q) - }; - Ue(it, vt => { - x(T) === "week" ? vt(Qe) : vt(ke, !1) - }, !0) - } - H(Be, st) - }; - Ue(Xe, Be => { - x(T) === "today" ? Be(ct) : Be(Je, !1) - }) - } - A(ft), Ge(Be => fe(ht, `${Be??""} `), [() => Jf()]), H(Ne, ft) - }, - Ee = Ne => { - var ft = hI(), - ht = k(ft), - Xe = k(ht), - ct = V(k(Xe)), - Je = k(ct, !0); - A(ct); - var Be = V(ct), - st = k(Be, !0); - A(Be), A(Xe), A(ht); - var it = V(ht); - nn(it, 31, () => x(L), Qe => Qe.userId, (Qe, ke, vt) => { - const Q = lt(() => { - var Yt; - return ((Yt = Dt.data) == null ? void 0 : Yt.id) === x(ke).userId - }); - var te = uI(); - let _e; - var ne = k(te), - Pe = k(ne, !0); - A(ne); - var Me = V(ne), - at = k(Me), - We = k(at); - es(We, { - class: "size-10 border", - get userId() { - return x(ke).userId - }, - get pictureUrl() { - return x(ke).picture - } - }); - var Ct = V(We, 2), - _t = k(Ct), - xt = V(_t), - tt = k(xt); - A(xt), A(Ct); - var pt = V(Ct, 2); - { - var It = Yt => { - const nr = lt(() => ds(x(ke).equippedFlag)); - var ar = oI(), - Ft = k(ar, !0); - A(ar), Ge(() => { - zr(ar, "data-tip", x(nr).name), fe(Ft, x(nr).flag) - }), H(Yt, ar) - }; - Ue(pt, Yt => { - x(ke).equippedFlag && Yt(It) - }) - } - var ut = V(pt, 2); - { - var bt = Yt => { - ph(Yt, { - get username() { - return x(ke).discord - } - }) - }; - Ue(ut, Yt => { - x(ke).discord && Yt(bt) - }) - } - A(at), A(Me); - var wt = V(Me), - dt = k(wt), - Lt = V(dt); - { - var Xt = Yt => { - var nr = cI(); - let ar; - nr.__click = [lI, l, ke]; - var Ft = k(nr); - Wf(Ft, { - class: "size-4" - }), A(nr), Ge((dr, _r) => { - ar = Or(nr, 1, "btn btn-sm btn-ghost absolute -right-2 top-1/2 !-translate-y-1/2 sm:right-4", null, ar, dr), zr(nr, "data-tip", _r) - }, [() => ({ - tooltip: x(F) > 640 - }), () => aT()]), H(Yt, nr) - }; - Ue(Lt, Yt => { - x(ke).lastLatitude && x(ke).lastLongitude && Yt(Xt) - }) - } - A(wt), A(te), Ge((Yt, nr, ar) => { - var Ft; - _e = Or(te, 1, "", null, _e, Yt), fe(Pe, x(vt) + 1), Or(Ct, 1, `font-semibold ${nr??""} flex gap-1`), fe(_t, `${(x(Q)?((Ft=Dt.data)==null?void 0:Ft.name)??x(ke).name:x(ke).name)??""} `), fe(tt, `#${x(ke).userId??""}`), fe(dt, `${ar??""} `) - }, [() => ({ - "bg-base-200": x(Q) - }), () => Zn(x(ke).userId), () => x(ke).pixelsPainted.toLocaleString("en-US")]), Zo(te, () => $o, () => ({ - duration: 200 - })), H(Qe, te) - }), A(it), A(ft), Ge((Qe, ke) => { - fe(Je, Qe), fe(st, ke) - }, [() => tm(), () => Xf()]), H(Ne, ft) - }; - Ue(Ae, Ne => { - x(L).length === 0 ? Ne(Oe) : Ne(Ee, !1) - }, !0) - } - H(we, Re) - }; - Ue(ye, we => { - x(C) ? we(X) : we(Se, !1) - }) - } - A(pe), A(W), $d("innerWidth", we => oe(F, we, !0)), H(b, W), Pr() -} -Wi(["click"]); -var fI = Tr(''); - -function om(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = fI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var mI = (b, l) => l.onclickback(), - _I = Ie('
              ADMIN
              '), - gI = async (b, l) => { - try { - x(l).loading = !0, await ni.giveAllianceAdmin(x(l).id), x(l).role = "admin" - } catch { - qr.error(dC()) - } finally { - x(l).loading = !1 - } - }, vI = async (b, l, _) => { - try { - x(l).loading = !0, await ni.banAllianceUser(x(l).id), _.data = _.data.filter(C => C.id !== x(l).id) - } catch { - qr.error(DT()) - } finally { - x(l).loading = !1 - } - }, yI = Ie('
            1. ', 1), xI = Ie('
            2. '), bI = Ie('
              '), wI = Ie('
              '), TI = (b, l, _) => { - ni.unbanAllianceUser(x(l).id).then(() => { - _.data = _.data.filter(C => C.id !== x(l).id) - }).catch(C => qr.error(C.message)).finally(() => { - x(l).loading = !1 - }) - }, CI = Ie('
              '), SI = Ie('
              '), PI = Ie('
              '), II = Ie('

              '); - -function MI(b, l) { - Sr(l, !0); - let _ = zn({ - data: [], - page: 0, - hasNextPage: !0, - loading: !1 - }), - C = zn({ - data: [], - page: 0, - hasNextPage: !0, - loading: !1 - }); - var L = II(), - F = k(L), - T = k(F); - T.__click = [mI, l]; - var o = k(T); - gx(o, { - class: "size-5" - }), A(T); - var $ = V(T, 2), - W = k($, !0); - A($), A(F); - var ie = V(F, 2), - pe = k(ie); - ea(pe); - var ye = V(pe, 2), - X = k(ye), - Se = k(X); - nn(Se, 21, () => _.data, Je => Je.id, (Je, Be, st) => { - const it = lt(() => { - var It; - return ((It = Dt.data) == null ? void 0 : It.id) === x(Be).id - }); - var Qe = bI(), - ke = k(Qe), - vt = k(ke), - Q = k(vt); - es(Q, { - class: "size-10 border", - get userId() { - return x(Be).id - }, - get pictureUrl() { - return x(Be).picture - } - }); - var te = V(Q, 2), - _e = k(te); - A(te); - var ne = V(te, 2); - { - var Pe = It => { - var ut = _I(); - H(It, ut) - }; - Ue(ne, It => { - x(Be).role === "admin" && It(Pe) - }) - } - A(vt), A(ke); - var Me = V(ke), - at = k(Me), - We = k(at), - Ct = k(We); - om(Ct, { - class: "size-4" - }), A(We); - var _t = V(We, 2), - xt = k(_t); - { - var tt = It => { - var ut = yI(), - bt = zt(ut), - wt = k(bt); - wt.__click = [gI, Be]; - var dt = k(wt, !0); - A(wt), A(bt); - var Lt = V(bt, 2), - Xt = k(Lt); - Xt.__click = [vI, Be, _]; - var Yt = k(Xt, !0); - A(Xt), A(Lt), Ge((nr, ar) => { - wt.disabled = x(Be).loading, fe(dt, nr), Xt.disabled = x(Be).loading, fe(Yt, ar) - }, [() => gT(), () => Wg()]), H(It, ut) - }, - pt = It => { - var ut = xI(), - bt = k(ut); - bt.disabled = !0; - var wt = k(bt, !0); - A(bt), A(ut), Ge(dt => fe(wt, dt), [() => wT()]), H(It, ut) - }; - Ue(xt, It => { - x(Be).role === "member" ? It(tt) : It(pt, !1) - }) - } - A(_t), A(at), A(Me), A(Qe), Ge(It => { - var ut; - Or(te, 1, `font-semibold ${It??""}`), fe(_e, `${(x(it)?((ut=Dt.data)==null?void 0:ut.name)??x(Be).name:x(Be).name)??""} #${x(Be).id??""}`) - }, [() => Zn(x(Be).id)]), H(Je, Qe) - }), A(Se), A(X); - var we = V(X, 2); - { - var Re = Je => { - var Be = Jt(), - st = zt(Be); - Pu(st, () => _.page, it => { - var Qe = wI(); - On(Qe, () => ke => { - const vt = new IntersectionObserver(Q => { - Q[0].isIntersecting && !_.loading && (_.loading = !0, ni.getAllianceMembers(_.page).then(te => { - _.data = [..._.data, ...te.data], _.hasNextPage = te.hasNext, _.page++ - }).catch(te => { - qr.error(te.message) - }).finally(() => { - _.loading = !1 - })) - }); - return vt.observe(ke), () => { - vt.disconnect() - } - }), H(it, Qe) - }), H(Je, Be) - }; - Ue(we, Je => { - _.hasNextPage && Je(Re) - }) - } - A(ye); - var Ae = V(ye, 2), - Oe = V(Ae, 2), - Ee = k(Oe), - Ne = k(Ee); - nn(Ne, 21, () => C.data, Je => Je.id, (Je, Be, st) => { - var it = CI(), - Qe = k(it), - ke = k(Qe), - vt = k(ke); - es(vt, { - class: "size-10 border", - get userId() { - return x(Be).id - }, - get pictureUrl() { - return x(Be).picture - } - }); - var Q = V(vt, 2), - te = k(Q); - A(Q), A(ke), A(Qe); - var _e = V(Qe), - ne = k(_e); - ne.__click = [TI, Be, C]; - var Pe = k(ne, !0); - A(ne), A(_e), A(it), Ge((Me, at) => { - Or(Q, 1, `font-semibold ${Me??""}`), fe(te, `${x(Be).name??""} #${x(Be).id??""}`), ne.disabled = x(Be).loading, fe(Pe, at) - }, [() => Zn(x(Be).id), () => ST()]), H(Je, it) - }), A(Ne), A(Ee); - var ft = V(Ee, 2); - { - var ht = Je => { - var Be = SI(), - st = k(Be, !0); - A(Be), Ge(it => fe(st, it), [() => MT()]), H(Je, Be) - }; - Ue(ft, Je => { - !C.hasNextPage && C.data.length === 0 && Je(ht) - }) - } - var Xe = V(ft, 2); - { - var ct = Je => { - var Be = Jt(), - st = zt(Be); - Pu(st, () => C.page, it => { - var Qe = PI(); - On(Qe, () => ke => { - const vt = new IntersectionObserver(Q => { - Q[0].isIntersecting && !C.loading && (C.loading = !0, ni.getAllianceBannedMembers(C.page).then(te => { - C.data = [...C.data, ...te.data], C.hasNextPage = te.hasNext, C.page++ - }).catch(te => { - qr.error(te.message) - }).finally(() => { - C.loading = !1 - })) - }); - return vt.observe(ke), () => { - vt.disconnect() - } - }), H(it, Qe) - }), H(Je, Be) - }; - Ue(Xe, Je => { - C.hasNextPage && Je(ct) - }) - } - A(Oe), A(ie), A(L), Ge((Je, Be, st) => { - fe(W, Je), zr(pe, "aria-label", Be), zr(Ae, "aria-label", st) - }, [() => $g(), () => FT(), () => jT()]), H(b, L), Pr() -} -Wi(["click"]); -var AI = Ie(' '), - kI = Ie(''), - EI = Ie('

              '), - zI = Ie('
              '); - -function Tf(b, l) { - Sr(l, !0); - let _ = Et(l, "value", 15), - C = Et(l, "validate", 15), - L = nt(""); - const F = lt(() => { - var Ae; - return ((Ae = _()) == null ? void 0 : Ae.length) ?? 0 - }); - C(T); - - function T() { - return l.min !== void 0 && x(F) < l.min ? (oe(L, x(F) === 0 ? "Required" : `Min. characters: ${l.min}`, !0), !1) : l.max !== void 0 && x(F) > l.max ? (oe(L, `Max. characters: ${l.max}`), !1) : !0 - } - Zr(() => { - var Ae; - l.max !== void 0 && x(F) > l.max && _((Ae = _()) == null ? void 0 : Ae.substring(0, l.max)) - }); - var o = zI(), - $ = k(o); - let W; - var ie = k($); - { - var pe = Ae => { - var Oe = AI(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.label)), H(Ae, Oe) - }; - Ue(ie, Ae => { - l.label && Ae(pe) - }) - } - var ye = V(ie, 2); - ea(ye); - var X = V(ye, 2); - { - var Se = Ae => { - var Oe = kI(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, l.max - x(F))), H(Ae, Oe) - }; - Ue(X, Ae => { - l.max !== void 0 && Ae(Se) - }) - } - A($); - var we = V($, 2); - { - var Re = Ae => { - var Oe = EI(), - Ee = k(Oe, !0); - A(Oe), Ge(() => fe(Ee, x(L))), H(Ae, Oe) - }; - Ue(we, Ae => { - x(L) && Ae(Re) - }) - } - A(o), Ge(Ae => { - W = Or($, 1, "input w-full", null, W, Ae), zr(ye, "placeholder", l.placeholder), zr(ye, "maxlength", l.max) - }, [() => ({ - "input-error": !!x(L) - })]), jd(ye, _), H(b, o), Pr() -} -var LI = (b, l) => { - var _; - (_ = l()) == null || _.close() - }, - DI = Ie(' '); - -function RI(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15), - C = nt(!1), - L = nt(""), - F = nt(void 0); - Ii(() => { - const Oe = Ee => { - var Ne; - Ee.key === "Escape" && ((Ne = _()) == null || Ne.close()) - }; - return document.addEventListener("keydown", Oe), () => document.removeEventListener("keydown", Oe) - }); - var T = DI(), - o = k(T), - $ = k(o), - W = k($, !0); - A($); - var ie = V($, 2), - pe = k(ie), - ye = k(pe); - { - let Oe = lt(() => xf()), - Ee = lt(() => hT()); - Tf(ye, { - get label() { - return x(Oe) - }, - get placeholder() { - return x(Ee) - }, - min: 1, - max: 16, - get value() { - return x(L) - }, - set value(Ne) { - oe(L, Ne, !0) - }, - get validate() { - return x(F) - }, - set validate(Ne) { - oe(F, Ne, !0) - } - }) - } - A(pe); - var X = V(pe, 2), - Se = k(X); - Se.__click = [LI, _]; - var we = k(Se, !0); - A(Se); - var Re = V(Se, 2), - Ae = k(Re, !0); - A(Re), A(X), A(ie), A(o), fi(2), A(T), ps(T, Oe => _(Oe), () => _()), Ge((Oe, Ee, Ne) => { - fe(W, Oe), Se.disabled = x(C), fe(we, Ee), Re.disabled = x(C), fe(Ae, Ne) - }, [() => lT(), () => qd(), () => fT()]), an("submit", ie, async () => { - var Oe, Ee; - try { - if (!((Oe = x(F)) != null && Oe())) return; - oe(C, !0); - const { - id: Ne - } = await ni.createAlliance(x(L)); - await l.onsuccess(Ne), (Ee = _()) == null || Ee.close() - } catch (Ne) { - qr.error(Ne.message) - } finally { - oe(C, !1) - } - }), H(b, T), Pr() -} -Wi(["click"]); -var BI = Tr(''); - -function fh(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = BI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var FI = Tr(''), - OI = Tr(''); - -function Cf(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = FI(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = OI(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var NI = Tr(''); - -function jI(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = NI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var qI = Tr(''); - -function VI(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = qI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var UI = Tr(''); - -function ZI(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = UI(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var $I = Tr(''); - -function Xd(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = $I(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} - -function GI(b, l = "_blank") { - return b.replaceAll(/https?:\/\/[^\s]+/g, _ => `${_}`) -} -var HI = Ie('
              '), - WI = async (b, l, _, C) => { - try { - oe(l, !0), await ni.leaveAlliance(), oe(_, !0), await C() - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } - }, XI = (b, l) => { - oe(l, !0) - }, KI = Ie('
              '), YI = (b, l) => { - var _; - (_ = x(l)) == null || _.show() - }, JI = Ie(''), QI = Ie(''), eM = Ie(' '), tM = (b, l) => oe(l, !0), rM = Ie(''), iM = (b, l, _) => { - var C; - (C = x(l)) != null && C.hq ? _.onhqclick({ - lat: x(l).hq.latitude, - lng: x(l).hq.longitude - }) : _.onhqchange() - }, nM = Ie(' '), aM = Ie(' '), sM = Ie(''), oM = Ie('
              '), lM = Ie('

              ', 1), cM = (b, l) => { - var _; - (_ = x(l)) == null || _.show() - }, uM = Ie('
              ', 1), hM = Ie('
              '); - -function dM(b, l) { - Sr(l, !0); - let _ = nt(void 0), - C = nt(!0), - L = nt(void 0), - F = nt(!1), - T = nt(void 0), - o = nt(!1), - $ = nt(!1), - W = nt(() => {}); - dc(() => l.open, () => { - l.open && Id.shouldReload && ie() - }), Ii(() => { - const we = setInterval(() => { - Id.shouldReload = !0 - }, 1e4); - return () => { - clearTimeout(we) - } - }); - async function ie() { - try { - oe(_, await ni.getAlliance(), !0), x(_) && x(W)(), oe(C, !1), Id.shouldReload = !1 - } catch (we) { - qr.error(we.message) - } - } - var pe = hM(), - ye = k(pe); - { - var X = we => { - var Re = HI(); - H(we, Re) - }, - Se = we => { - var Re = Jt(), - Ae = zt(Re); - { - var Oe = Ne => { - MI(Ne, { - onclickback: () => oe($, !1) - }) - }, - Ee = Ne => { - var ft = Jt(), - ht = zt(ft); - { - var Xe = Je => { - var Be = lM(), - st = zt(Be), - it = k(st), - Qe = k(it, !0); - A(it); - var ke = V(it, 2), - vt = k(ke), - Q = k(vt), - te = k(Q); - om(te, { - class: "size-4" - }), A(Q); - var _e = V(Q, 2), - ne = k(_e), - Pe = k(ne); - Pe.__click = [WI, F, C, ie]; - var Me = k(Pe, !0); - A(Pe), A(ne), A(_e), A(vt); - var at = V(vt, 2); - { - var We = ce => { - var O = KI(), - q = k(O); - q.__click = [XI, o]; - var G = k(q); - ZI(G, { - class: "size-4" - }), A(q), A(O), Ge(K => zr(O, "data-tip", K), [() => F5()]), H(ce, O) - }; - Ue(at, ce => { - x(_).role == "admin" && ce(We) - }) - } - A(ke), A(st); - var Ct = V(st, 2); - { - var _t = ce => { - var O = QI(), - q = k(O); - cx(q, () => GI(x(_).description || Hg())); - var G = V(q, 2); - { - var K = le => { - var ve = JI(); - ve.__click = [YI, T]; - var Le = k(ve); - Cf(Le, { - class: "size-4" - }), A(ve), H(le, ve) - }; - Ue(G, le => { - x(_).role === "admin" && le(K) - }) - } - A(O), H(ce, O) - }; - Ue(Ct, ce => { - (x(_).description || x(_).role === "admin") && ce(_t) - }) - } - var xt = V(Ct, 2), - tt = k(xt), - pt = k(tt); - fh(pt, { - class: "inline size-4" - }); - var It = V(pt, 2), - ut = k(It), - bt = V(ut), - wt = k(bt, !0); - A(bt), A(It), A(tt); - var dt = V(tt, 2), - Lt = k(dt); - Xd(Lt, { - class: "inline size-4" - }); - var Xt = V(Lt, 2), - Yt = k(Xt), - nr = V(Yt); - { - var ar = ce => { - var O = eM(), - q = k(O, !0); - A(O), Ge(G => fe(q, G), [() => x(_).members.toLocaleString("en-US")]), H(ce, O) - }, - Ft = ce => { - var O = rM(); - O.__click = [tM, $]; - var q = k(O, !0); - A(O), Ge(G => fe(q, G), [() => x(_).members.toLocaleString("en-US")]), H(ce, O) - }; - Ue(nr, ce => { - x(_).role === "member" ? ce(ar) : ce(Ft, !1) - }) - } - A(Xt), A(dt); - var dr = V(dt, 2); - { - var _r = ce => { - var O = oM(), - q = k(O); - jI(q, { - class: "inline size-4" - }); - var G = V(q, 2), - K = k(G), - le = V(K); - le.__click = [iM, _, l]; - var ve = k(le); - { - var Le = Ye => { - var Ot = nM(), - xe = k(Ot); - A(Ot), Ge((At, Pt) => fe(xe, `${At??""}, ${Pt??""}`), [() => x(_).hq.latitude.toFixed(3), () => x(_).hq.longitude.toFixed(3)]), H(Ye, Ot) - }, - Ce = Ye => { - var Ot = aM(), - xe = k(Ot, !0); - A(Ot), Ge(At => fe(xe, At), [() => u5()]), H(Ye, Ot) - }; - Ue(ve, Ye => { - x(_).hq ? Ye(Le) : Ye(Ce, !1) - }) - } - A(le), A(G); - var Ze = V(G, 2); - { - var ot = Ye => { - var Ot = sM(); - Ot.__click = function(...At) { - var Pt; - (Pt = l.onhqchange) == null || Pt.apply(this, At) - }; - var xe = k(Ot); - Cf(xe, { - class: "text-base-content/50 size-4" - }), A(Ot), H(Ye, Ot) - }; - Ue(Ze, Ye => { - x(_).role === "admin" && Ye(ot) - }) - } - A(O), Ge(Ye => fe(K, `${Ye??""}: `), [() => o5()]), H(ce, O) - }; - Ue(dr, ce => { - (x(_).hq || x(_).role === "admin") && ce(_r) - }) - } - A(xt); - var Ir = V(xt, 2), - jr = k(Ir), - ur = k(jr, !0); - A(jr); - var Mr = V(jr, 2), - Ar = k(Mr); - pI(Ar, { - get allianceId() { - return x(_).id - }, - get onlastpixelclick() { - return l.onlastpixelclick - }, - get reload() { - return x(W) - }, - set reload(ce) { - oe(W, ce, !0) - } - }), A(Mr), A(Ir); - var kr = V(Ir, 2); - ZP(kr, { - get description() { - return x(_).description - }, - onsuccess: async ce => { - x(_) && (x(_).description = ce) - }, - get ref() { - return x(T) - }, - set ref(ce) { - oe(T, ce, !0) - } - }); - var Nr = V(kr, 2); - WP(Nr, { - get open() { - return x(o) - }, - set open(ce) { - oe(o, ce, !0) - } - }), Ge((ce, O, q, G, K) => { - fe(Qe, x(_).name), Pe.disabled = x(F), fe(Me, ce), fe(ut, `${O??""}: `), fe(wt, q), fe(Yt, `${G??""}: `), fe(ur, K) - }, [() => r5(), () => Xf(), () => x(_).pixelsPainted.toLocaleString("en-US"), () => $g(), () => Yf()]), H(Je, Be) - }, - ct = Je => { - var Be = uM(), - st = zt(Be), - it = k(st), - Qe = k(it); - A(it); - var ke = V(it, 2), - vt = k(ke); - VI(vt, { - class: "size-5" - }); - var Q = V(vt, 1, !0); - A(ke); - var te = V(ke, 2), - _e = k(te), - ne = k(_e, !0); - A(_e), A(te); - var Pe = V(te, 2); - Pe.__click = [cM, L]; - var Me = k(Pe); - Dg(Me, { - class: "size-6" - }); - var at = V(Me); - A(Pe), A(st); - var We = V(st, 2); - RI(We, { - onsuccess: ie, - get ref() { - return x(L) - }, - set ref(Ct) { - oe(L, Ct, !0) - } - }), Ge((Ct, _t, xt, tt) => { - fe(Qe, `${Ct??""}:`), fe(Q, _t), fe(ne, xt), fe(at, ` ${tt??""}`) - }, [() => p5(), () => _5(), () => y5(), () => w5()]), H(Je, Be) - }; - Ue(ht, Je => { - x(_) ? Je(Xe) : Je(ct, !1) - }, !0) - } - H(Ne, ft) - }; - Ue(Ae, Ne => { - x($) ? Ne(Oe) : Ne(Ee, !1) - }, !0) - } - H(we, Re) - }; - Ue(ye, we => { - x(C) ? we(X) : we(Se, !1) - }) - } - A(pe), H(b, pe), Pr() -} -Wi(["click"]); -var pM = Tr(''); - -function Kd(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = pM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -const fM = b => b; - -function mM(b) { - const l = b - 1; - return l * l * l + 1 -} - -function Qn(b, { - delay: l = 0, - duration: _ = 400, - easing: C = fM -} = {}) { - const L = +getComputedStyle(b).opacity; - return { - delay: l, - duration: _, - easing: C, - css: F => `opacity: ${F*L}` - } -} - -function uf(b, { - delay: l = 0, - duration: _ = 400, - easing: C = mM, - axis: L = "y" -} = {}) { - const F = getComputedStyle(b), - T = +F.opacity, - o = L === "y" ? "height" : "width", - $ = parseFloat(F[o]), - W = L === "y" ? ["top", "bottom"] : ["left", "right"], - ie = W.map(Ae => `${Ae[0].toUpperCase()}${Ae.slice(1)}`), - pe = parseFloat(F[`padding${ie[0]}`]), - ye = parseFloat(F[`padding${ie[1]}`]), - X = parseFloat(F[`margin${ie[0]}`]), - Se = parseFloat(F[`margin${ie[1]}`]), - we = parseFloat(F[`border${ie[0]}Width`]), - Re = parseFloat(F[`border${ie[1]}Width`]); - return { - delay: l, - duration: _, - easing: C, - css: Ae => `overflow: hidden;opacity: ${Math.min(Ae*20,1)*T};${o}: ${Ae*$}px;padding-${W[0]}: ${Ae*pe}px;padding-${W[1]}: ${Ae*ye}px;margin-${W[0]}: ${Ae*X}px;margin-${W[1]}: ${Ae*Se}px;border-${W[0]}-width: ${Ae*we}px;border-${W[1]}-width: ${Ae*Re}px;min-${o}: 0` - } -} -var _M = Ie(' '); - -function gM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const pe = ye => { - ye.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", pe), () => document.removeEventListener("keydown", pe) - }); - var C = _M(), - L = k(C), - F = V(k(L), 2), - T = k(F); - Kd(T, { - class: "size-5 max-sm:size-6" - }); - var o = V(T, 2), - $ = k(o, !0); - A(o), A(F); - var W = V(F, 2), - ie = k(W); - dM(ie, { - get open() { - return _() - }, - get onhqchange() { - return l.onhqchange - }, - get onhqclick() { - return l.onhqclick - }, - get onlastpixelclick() { - return l.onlastpixelclick - } - }), A(W), A(L), fi(2), A(C), On(C, () => pe => { - Zr(() => { - _() ? (pe.show(), La.url.searchParams.get("alliance") && (La.url.searchParams.delete("alliance"), Lg(La.url.toString()))) : pe.close() - }) - }), Ge(pe => fe($, pe), [() => Gd()]), an("close", C, () => _(!1)), En(2, W, () => Qn, () => ({ - duration: 300 - })), H(b, C), Pr() -} -var vM = Ie(''), - yM = (b, l) => { - l(!1) - }, - xM = Ie(' '); - -function bM(b, l) { - Sr(l, !0); - const _ = []; - let C = Et(l, "open", 15), - L = nt(!1), - F = nt(""), - T = nt(""), - o = nt(null), - $ = nt(null); - const W = [{ - value: "inappropriate-content", - label: Wy(), - description: Hy() - }, { - value: "hate-speech", - label: Ky(), - description: Xy() - }, { - value: "doxxing", - label: Jy(), - description: Yy() - }, { - value: "bot", - label: ex(), - description: Qy() - }, { - value: "griefing", - label: rx(), - description: tx() - }, { - value: "other", - label: ES(), - description: DS() - }]; - Ii(() => { - const _t = xt => { - xt.key === "Escape" && C(!1) - }; - return document.addEventListener("keydown", _t), () => document.removeEventListener("keydown", _t) - }), Zr(() => { - C() || (oe(F, ""), oe(T, "")) - }); - const ie = { - "report-user": `${Cd}/report-user`, - timeout: `${Cd}/moderator/timeout-user`, - ban: `${Cd}/admin/ban-user` - }; - var pe = xM(), - ye = k(pe), - X = V(k(ye), 2), - Se = k(X); - ea(Se); - var we = V(Se, 2); - ea(we); - var Re = V(we, 2); - ea(Re); - var Ae = V(Re, 2); - ea(Ae); - var Oe = V(Ae, 2), - Ee = k(Oe); - es(Ee, { - get userId() { - return l.paintedBy.id - }, - get pictureUrl() { - return l.paintedBy.picture - }, - class: "size-14" - }); - var Ne = V(Ee, 2), - ft = k(Ne), - ht = k(ft); - { - var Xe = _t => { - var xt = Fn(); - Ge(tt => fe(xt, tt), [() => Yg()]), H(_t, xt) - }, - ct = _t => { - var xt = Jt(), - tt = zt(xt); - { - var pt = ut => { - var bt = Fn(); - Ge(wt => fe(bt, wt), [() => Qg()]), H(ut, bt) - }, - It = ut => { - var bt = Jt(), - wt = zt(bt); - { - var dt = Lt => { - var Xt = Fn(); - Ge(Yt => fe(Xt, Yt), [() => Jg()]), H(Lt, Xt) - }; - Ue(wt, Lt => { - l.action === "ban" && Lt(dt) - }, !0) - } - H(ut, bt) - }; - Ue(tt, ut => { - l.action === "timeout" ? ut(pt) : ut(It, !1) - }, !0) - } - H(_t, xt) - }; - Ue(ht, _t => { - l.action === "report-user" ? _t(Xe) : _t(ct, !1) - }) - } - A(ft); - var Je = V(ft, 2), - Be = k(Je), - st = k(Be, !0); - A(Be); - var it = V(Be, 2), - Qe = k(it); - A(it), A(Je), A(Ne), A(Oe); - var ke = V(Oe, 2), - vt = k(ke), - Q = k(vt); - A(vt); - var te = V(vt, 2); - nn(te, 21, () => W, _t => _t.value, (_t, xt) => { - var tt = vM(), - pt = k(tt); - ea(pt); - var It, ut = V(pt, 2), - bt = k(ut), - wt = k(bt, !0); - A(bt); - var dt = V(bt, 2), - Lt = k(dt, !0); - A(dt), A(ut), A(tt), Ge(() => { - zr(pt, "aria-label", x(xt).label), It !== (It = x(xt).value) && (pt.value = (pt.__value = x(xt).value) ?? ""), fe(wt, x(xt).label), fe(Lt, x(xt).description) - }), Vd(_, [], pt, () => (x(xt).value, x(F)), Xt => oe(F, Xt)), H(_t, tt) - }), A(te), A(ke); - var _e = V(ke, 2), - ne = k(_e); - { - let _t = lt(() => FS()); - iv(ne, { - class: "h-20 rounded-lg", - name: "notes", - get placeholder() { - return x(_t) - }, - max: 2056, - min: 5, - get value() { - return x(T) - }, - set value(xt) { - oe(T, xt, !0) - }, - get validate() { - return x($) - }, - set validate(xt) { - oe($, xt, !0) - } - }) - } - A(_e); - var Pe = V(_e, 2), - Me = k(Pe); - Me.__click = [yM, C]; - var at = k(Me, !0); - A(Me); - var We = V(Me, 2), - Ct = k(We, !0); - A(We), A(Pe), A(X), ps(X, _t => oe(o, _t), () => x(o)), A(ye), fi(2), A(pe), On(pe, () => _t => { - Zr(() => { - C() ? _t.show() : _t.close() - }) - }), Ge((_t, xt, tt, pt) => { - zr(X, "action", ie[l.action]), Jl(Se, l.paintedBy.id), Jl(we, l.latLon[0]), Jl(Re, l.latLon[1]), Jl(Ae, l.zoom), Or(Je, 1, `font-medium ${_t??""} flex gap-1.5`), fe(st, l.paintedBy.name), fe(Qe, `#${l.paintedBy.id??""}`), fe(Q, `${xt??""}:`), fe(at, tt), We.disabled = x(L), fe(Ct, pt) - }, [() => Zn(l.paintedBy.id), () => MS(), () => qd(), () => jS()]), an("close", pe, () => C(!1)), an("submit", X, async _t => { - if (_t.preventDefault(), !x(L) && x($)()) try { - oe(L, !0); - const xt = new FormData(x(o)); - if (!xt.get("reason")) { - qr.error(GS()); - return - } - const tt = await l.image; - xt.append("image", tt, `report-${Date.now()}.jpeg`); - const pt = await fetch(x(o).action, { - method: "POST", - body: xt, - credentials: "include" - }); - pt.status === 200 || pt.status === 409 ? (qr.info(US()), C(!1)) : qr.error(XS()) - } finally { - oe(L, !1) - } - }), H(b, pe), Pr() -} -Wi(["click"]); - -function wM(b, l, _) { - return new Promise((C, L) => { - b.once("render", () => { - const F = b.getCanvas().toDataURL(), - T = document.createElement("img"); - T.src = F, T.onload = () => { - const o = document.createElement("canvas"); - o.width = T.width, o.height = T.height; - const $ = o.getContext("2d"); - if ($) { - $.drawImage(T, 0, 0); - const [W, ie, pe, ye] = $.getImageData(l, _, 1, 1).data; - C([W, ie, pe, ye]) - } else L(new Error("Could not get 2d context from canvas")); - T.remove(), o.remove() - } - }), b.triggerRepaint() - }) -} - -function av(b, l) { - return new Promise((_, C) => { - b.once("render", () => { - const L = b.getCanvas(); - let F = L; - if (l != null && l.maxWidth || l != null && l.maxHeight) { - const T = L.width, - o = L.height, - $ = (l == null ? void 0 : l.maxWidth) ?? T, - W = (l == null ? void 0 : l.maxHeight) ?? o; - F = document.createElement("canvas"); - const ie = Math.min($ / T, W / o); - F.width = Math.floor(T * ie), F.height = Math.floor(o * ie); - const pe = F.getContext("2d"); - pe && pe.drawImage(L, 0, 0, F.width, F.height) - } - try { - F.toBlob(T => { - T && _(T) - }, (l == null ? void 0 : l.type) ?? "image/png", (l == null ? void 0 : l.quality) ?? 1) - } catch (T) { - C(T) - } finally { - F !== L && F.remove() - } - }) - }) -} -var TM = Tr(''); - -function sv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = TM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var CM = Tr(''); - -function SM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = CM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var PM = Tr(''); - -function ov(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = PM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -const Yl = { - hour: 3600 * 1e3, - min: 60 * 1e3, - sec: 1e3 -}; - -function zd(b) { - const l = Math.floor(b / Yl.hour); - b -= l * Yl.hour; - const _ = Math.floor(b / Yl.min); - b -= _ * Yl.min; - const L = Math.floor(b / Yl.sec).toString().padStart(2, "0"); - return l > 0 ? `${l}:${_.toString().padStart(2,"0")}:${L}` : `${_}:${L}` -} - -function IM(b) { - const l = new Date, - _ = l.getFullYear(), - C = String(l.getMonth() + 1).padStart(2, "0"), - L = String(l.getDate()).padStart(2, "0"), - F = String(l.getHours()).padStart(2, "0"), - T = String(l.getMinutes()).padStart(2, "0"), - o = String(l.getSeconds()).padStart(2, "0"); - return `${_}-${C}-${L} ${F}:${T}:${o}` -} -var MM = (b, l, _) => { - navigator.clipboard.writeText(l.url.toString()), oe(_, !0), setTimeout(() => { - oe(_, !1) - }, 1e3) - }, - AM = Ie('Screenshot'), - kM = Ie('
              '), - EM = async (b, l) => { - x(l) && (await navigator.clipboard.write([new ClipboardItem({ - "image/png": x(l) - })]), qr.info(sS())) - }, zM = Ie(''), LM = Ie(' '); - -function DM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(!1); - Ii(() => { - const Ee = Ne => { - Ne.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", Ee), () => document.removeEventListener("keydown", Ee) - }); - let L = nt(null), - F = nt(""); - Zr(() => { - _() ? (l.hideHover(), setTimeout(async () => { - av(l.map).then(Ee => { - oe(L, Ee, !0), oe(F, URL.createObjectURL(x(L)), !0) - }).finally(() => { - l.showHover() - }) - }, 500)) : x(F) && (URL.revokeObjectURL(x(F)), oe(L, null), oe(F, "")) - }); - var T = LM(), - o = k(T), - $ = V(k(o), 2), - W = k($); - ov(W, { - class: "size-5" - }); - var ie = V(W); - A($); - var pe = V($, 2), - ye = k(pe); - ea(ye); - var X = V(ye, 2), - Se = k(X); - let we; - Se.__click = [MM, l, C]; - var Re = k(Se, !0); - A(Se), A(X), A(pe); - var Ae = V(pe, 2); - { - var Oe = Ee => { - const Ne = lt(() => { - var ne; - return (ne = l.map) == null ? void 0 : ne.getCanvas() - }); - var ft = zM(), - ht = k(ft), - Xe = k(ht); - SM(Xe, { - class: "inline size-5" - }); - var ct = V(Xe); - A(ht); - var Je = V(ht, 2); - { - var Be = ne => { - var Pe = AM(); - Ge(() => { - zr(Pe, "src", x(F)), zr(Pe, "width", x(Ne).width), zr(Pe, "height", x(Ne).height) - }), H(ne, Pe) - }, - st = ne => { - var Pe = kM(); - Ge(() => uc(Pe, `aspect-ratio: ${x(Ne).width/x(Ne).height}`)), H(ne, Pe) - }; - Ue(Je, ne => { - x(F) ? ne(Be) : ne(st, !1) - }) - } - var it = V(Je, 2), - Qe = k(it); - Qe.__click = [EM, L]; - var ke = k(Qe); - $y(ke, { - class: "size-5" - }); - var vt = V(ke); - A(Qe); - var Q = V(Qe, 2), - te = k(Q); - sv(te, { - class: "size-5" - }); - var _e = V(te); - A(Q), A(it), A(ft), Ge((ne, Pe, Me, at) => { - fe(ct, ` ${ne??""}`), fe(vt, ` ${Pe??""}`), zr(Q, "href", x(F)), zr(Q, "download", `wplace_${Me??""}.png`), fe(_e, ` ${at??""}`) - }, [() => eS(), () => bf(), () => IM().replaceAll(" ", "_").replaceAll(":", "-"), () => iS()]), En(2, ft, () => Qn, () => ({ - duration: 300 - })), H(Ee, ft) - }; - Ue(Ae, Ee => { - _() && Ee(Oe) - }) - } - A(o), fi(2), A(T), On(T, () => Ee => { - Zr(() => { - _() ? Ee.show() : Ee.close() - }) - }), Ge((Ee, Ne, ft, ht) => { - fe(ie, ` ${Ee??""}`), Jl(ye, Ne), we = Or(Se, 1, "btn btn-primary", null, we, ft), fe(Re, ht) - }, [() => I3(), () => l.url.toString(), () => ({ - "btn-success": x(C) - }), () => x(C) ? Gg() : bf()]), an("close", T, () => _(!1)), H(b, T), Pr() -} -Wi(["click"]); -var RM = Tr(''); - -function BM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = RM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var FM = Ie('
            3. '), - OM = Ie('

                '); - -function lm(b, l) { - Sr(l, !1); - const _ = ["📜 All users are responsible for the content they post. The platform reserves the right of final interpretation.", "🛑 Any violation may result in immediate removal of content and permanent ban of the account", "😈 Do not paint over other artworks using random colors or patterns just to mess things up", "🙅 Disclosing other's personal information is not allowed"]; - Og(); - var C = OM(), - L = k(C), - F = k(L); - BM(F, { - class: "size-5" - }); - var T = V(F, 2), - o = k(T), - $ = V(o), - W = k($, !0); - A($), A(T), A(L); - var ie = V(L, 2), - pe = k(ie); - nn(pe, 5, () => _, Zd, (Se, we) => { - var Re = FM(), - Ae = k(Re, !0); - A(Re), Ge(() => fe(Ae, x(we))), H(Se, Re) - }), A(pe); - var ye = V(pe, 2), - X = k(ye, !0); - A(ye), A(ie), A(C), Ge((Se, we, Re) => { - fe(o, `${Se??""} `), fe(W, we), fe(X, Re) - }, [() => I2(), () => k2(), () => ew()]), H(b, C), Pr() -} -var NM = (b, l) => { - l(!1) - }, - jM = Ie(' '); - -function qM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const W = ie => { - ie.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", W), () => document.removeEventListener("keydown", W) - }); - var C = jM(), - L = k(C), - F = V(k(L), 2), - T = V(k(F), 2), - o = k(T); - lm(o, {}), A(T); - var $ = V(T, 2); - $.__click = [NM, _], A(F), A(L), fi(2), A(C), On(C, () => W => { - Zr(() => { - _() ? W.show() : W.close() - }) - }), an("close", C, () => _(!1)), H(b, C), Pr() -} -Wi(["click"]); -var VM = () => { - La.url.searchParams.delete("new-user"), Lg(La.url.toString()) - }, - UM = Ie(''); - -function ZM(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const we = Re => { - Re.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", we), () => document.removeEventListener("keydown", we) - }); - var C = UM(), - L = k(C), - F = k(L), - T = k(F), - o = k(T), - $ = k(o, !0); - A(o); - var W = V(o, 2); - Ng(W, { - hasText: !0, - size: "medium" - }), A(T), A(F); - var ie = V(F, 2), - pe = k(ie); - lm(pe, {}), A(ie); - var ye = V(ie, 2), - X = k(ye); - X.__click = [VM]; - var Se = k(X, !0); - A(X), A(ye), A(L), A(C), On(C, () => we => { - Zr(() => { - _() ? we.show() : we.close() - }) - }), Ge((we, Re) => { - fe($, we), fe(Se, Re) - }, [() => C2(), () => iw()]), an("close", C, () => _(!1)), H(b, C), Pr() -} -Wi(["click"]); - -function $M() { - const b = navigator.userAgent, - l = navigator.vendor; - return /Chrome/.test(b) && /Google Inc/.test(l) ? "Chrome" : /Safari/.test(b) && /Apple Computer/.test(l) ? "Safari" : /Firefox/.test(b) ? "Firefox" : /Edge/.test(b) ? "Edge" : /Opera|OPR/.test(b) ? "Opera" : "Unknown" -} -var GM = Tr(''); - -function HM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = GM(); -} -var WM = Tr(''); - -function XM(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = WM(); -} -var KM = Tr(''); - -function Ld(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = KM(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var YM = Ie(' link', 1), - JM = Ie('chrome://settings/system.', 1), - QM = Ie('edge://settings/system/manageSystem.', 1), - e4 = Ie(' ', 1), - t4 = Ie(''), - r4 = Ie(' '); - -function i4(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const pe = ye => { - ye.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", pe), () => document.removeEventListener("keydown", pe) - }); - const C = $M(); - var L = r4(), - F = k(L), - T = V(k(F), 2); - { - var o = pe => { - var ye = t4(), - X = k(ye), - Se = k(X); - Ng(Se, { - hasText: !0, - size: "medium" - }); - var we = V(Se, 2), - Re = k(we), - Ae = V(Re, 4); - fi(), A(we); - var Oe = V(we, 2), - Ee = k(Oe), - Ne = k(Ee), - ft = k(Ne, !0); - A(Ne); - var ht = V(Ne, 4), - Xe = k(ht); - am(Xe, { - class: "mr-0.5 inline size-4" - }), fi(2), A(ht); - var ct = V(ht, 4), - Je = k(ct); - HM(Je, { - class: "mr-0.5 inline size-4" - }), fi(2), A(ct); - var Be = V(ct, 4), - st = k(Be); - XM(st, { - class: "mr-0.5 inline size-4" - }), fi(2), A(Be), A(Ee), A(Oe), A(X); - var it = V(X, 2), - Qe = k(it), - ke = k(Qe, !0); - A(Qe); - var vt = V(Qe, 2); - A(it); - var Q = V(it, 2), - te = k(Q), - _e = k(te, !0); - A(te); - var ne = V(te, 2), - Pe = k(ne), - Me = V(Pe), - at = k(Me); - Ld(at, { - class: "size-5" - }), A(Me); - var We = V(Me); - A(ne); - var Ct = V(ne, 2), - _t = k(Ct), - xt = V(_t), - tt = k(xt, !0); - A(xt); - var pt = V(xt); - A(Ct), A(Q); - var It = V(Q, 2), - ut = k(It), - bt = k(ut, !0); - A(ut); - var wt = V(ut, 2), - dt = k(wt); - { - var Lt = jr => { - var ur = YM(), - Mr = zt(ur); - fi(), Ge(Ar => fe(Mr, `${Ar??""}: `), [() => bS()]), H(jr, ur) - }, - Xt = jr => { - var ur = e4(), - Mr = zt(ur), - Ar = V(Mr), - kr = k(Ar, !0); - A(Ar); - var Nr = V(Ar), - ce = V(Nr); - { - var O = G => { - var K = JM(); - fi(), H(G, K) - }, - q = G => { - var K = Jt(), - le = zt(K); - { - var ve = Le => { - var Ce = QM(); - fi(), H(Le, Ce) - }; - Ue(le, Le => { - C === "Edge" && Le(ve) - }, !0) - } - H(G, K) - }; - Ue(ce, G => { - C === "Chrome" ? G(O) : G(q, !1) - }) - } - Ge((G, K, le) => { - fe(Mr, `${G??""} `), fe(kr, K), fe(Nr, ` ${le??""} `) - }, [() => dS(), () => mS(), () => vS()]), H(jr, ur) - }; - Ue(dt, jr => { - C !== "Chrome" && C !== "Edge" ? jr(Lt) : jr(Xt, !1) - }) - } - A(wt), A(It); - var Yt = V(It, 2), - nr = k(Yt); - lm(nr, {}), A(Yt); - var ar = V(Yt, 4), - Ft = V(k(ar), 2), - dr = k(Ft, !0); - A(Ft); - var _r = V(Ft, 2), - Ir = k(_r, !0); - A(_r), A(ar), A(ye), Ge((jr, ur, Mr, Ar, kr, Nr, ce, O, q, G, K, le, ve) => { - fe(Re, `${jr??""} `), fe(Ae, ` © - ${ur??""} `), fe(ft, Mr), fe(ke, Ar), zr(vt, "src", oa.language === "pt" ? "https://www.youtube.com/embed/AcE85QM4iPQ?si=wbeZD8vxOzvlB_Z9" : "https://www.youtube.com/embed/xOXtd-WzRxA?si=fHz8Z6ecXGYrDhkN"), fe(_e, kr), fe(Pe, `${Nr??""} `), fe(We, ` ${ce??""}`), fe(_t, `${O??""} `), fe(tt, q), fe(pt, ` ${G??""}`), fe(bt, K), fe(dr, le), fe(Ir, ve) - }, [() => v1(), () => b1(), () => C1(), () => I1(), () => k1(), () => L1(), () => B1(), () => N1(), () => V1(), () => $1(), () => cS(), () => tP(), () => nP()]), En(2, ye, () => Qn, () => ({ - duration: 300 - })), H(pe, ye) - }; - Ue(T, pe => { - _() && pe(o) - }) - } - A(F); - var $ = V(F, 2), - W = k($), - ie = k(W, !0); - A(W), A($), A(L), On(L, () => pe => { - Zr(() => { - _() ? pe.show() : pe.close() - }) - }), Ge(pe => fe(ie, pe), [() => tc()]), an("close", L, () => _(!1)), H(b, L), Pr() -} - -function n4(b) { - return typeof b == "function" -} - -function mh(b) { - return b !== null && typeof b == "object" -} -const a4 = ["string", "number", "bigint", "boolean"]; - -function Sf(b) { - return b == null || a4.includes(typeof b) ? !0 : Array.isArray(b) ? b.every(l => Sf(l)) : typeof b == "object" ? Object.getPrototypeOf(b) === Object.prototype : !1 -} -const Iu = Symbol("box"), - cm = Symbol("is-writable"); - -function s4(b) { - return mh(b) && Iu in b -} - -function o4(b) { - return cr.isBox(b) && cm in b -} - -function cr(b) { - let l = nt(zn(b)); - return { - [Iu]: !0, - [cm]: !0, - get current() { - return x(l) - }, - set current(_) { - oe(l, _, !0) - } - } -} - -function l4(b, l) { - const _ = lt(b); - return l ? { - [Iu]: !0, - [cm]: !0, - get current() { - return x(_) - }, - set current(C) { - l(C) - } - } : { - [Iu]: !0, - get current() { - return b() - } - } -} - -function c4(b) { - return cr.isBox(b) ? b : n4(b) ? cr.with(b) : cr(b) -} - -function u4(b) { - return Object.entries(b).reduce((l, [_, C]) => cr.isBox(C) ? (cr.isWritableBox(C) ? Object.defineProperty(l, _, { - get() { - return C.current - }, - set(L) { - C.current = L - } - }) : Object.defineProperty(l, _, { - get() { - return C.current - } - }), l) : Object.assign(l, { - [_]: C - }), {}) -} - -function h4(b) { - return cr.isWritableBox(b) ? { - [Iu]: !0, - get current() { - return b.current - } - } : b -} -cr.from = c4; -cr.with = l4; -cr.flatten = u4; -cr.readonly = h4; -cr.isBox = s4; -cr.isWritableBox = o4; - -function d4(...b) { - return function(l) { - var _; - for (const C of b) - if (C) { - if (l.defaultPrevented) return; - typeof C == "function" ? C.call(this, l) : (_ = C.current) == null || _.call(this, l) - } - } -} -var Hl = {}, - hf, mg; - -function p4() { - if (mg) return hf; - mg = 1; - var b = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g, - l = /\n/g, - _ = /^\s*/, - C = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/, - L = /^:\s*/, - F = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/, - T = /^[;\s]*/, - o = /^\s+|\s+$/g, - $ = ` -`, - W = "/", - ie = "*", - pe = "", - ye = "comment", - X = "declaration"; - hf = function(we, Re) { - if (typeof we != "string") throw new TypeError("First argument must be a string"); - if (!we) return []; - Re = Re || {}; - var Ae = 1, - Oe = 1; - - function Ee(Qe) { - var ke = Qe.match(l); - ke && (Ae += ke.length); - var vt = Qe.lastIndexOf($); - Oe = ~vt ? Qe.length - vt : Oe + Qe.length - } - - function Ne() { - var Qe = { - line: Ae, - column: Oe - }; - return function(ke) { - return ke.position = new ft(Qe), ct(), ke - } - } - - function ft(Qe) { - this.start = Qe, this.end = { - line: Ae, - column: Oe - }, this.source = Re.source - } - ft.prototype.content = we; - - function ht(Qe) { - var ke = new Error(Re.source + ":" + Ae + ":" + Oe + ": " + Qe); - if (ke.reason = Qe, ke.filename = Re.source, ke.line = Ae, ke.column = Oe, ke.source = we, !Re.silent) throw ke - } - - function Xe(Qe) { - var ke = Qe.exec(we); - if (ke) { - var vt = ke[0]; - return Ee(vt), we = we.slice(vt.length), ke - } - } - - function ct() { - Xe(_) - } - - function Je(Qe) { - var ke; - for (Qe = Qe || []; ke = Be();) ke !== !1 && Qe.push(ke); - return Qe - } - - function Be() { - var Qe = Ne(); - if (!(W != we.charAt(0) || ie != we.charAt(1))) { - for (var ke = 2; pe != we.charAt(ke) && (ie != we.charAt(ke) || W != we.charAt(ke + 1));) ++ke; - if (ke += 2, pe === we.charAt(ke - 1)) return ht("End of comment missing"); - var vt = we.slice(2, ke - 2); - return Oe += 2, Ee(vt), we = we.slice(ke), Oe += 2, Qe({ - type: ye, - comment: vt - }) - } - } - - function st() { - var Qe = Ne(), - ke = Xe(C); - if (ke) { - if (Be(), !Xe(L)) return ht("property missing ':'"); - var vt = Xe(F), - Q = Qe({ - type: X, - property: Se(ke[0].replace(b, pe)), - value: vt ? Se(vt[0].replace(b, pe)) : pe - }); - return Xe(T), Q - } - } - - function it() { - var Qe = []; - Je(Qe); - for (var ke; ke = st();) ke !== !1 && (Qe.push(ke), Je(Qe)); - return Qe - } - return ct(), it() - }; - - function Se(we) { - return we ? we.replace(o, pe) : pe - } - return hf -} -var _g; - -function f4() { - if (_g) return Hl; - _g = 1; - var b = Hl && Hl.__importDefault || function(C) { - return C && C.__esModule ? C : { - default: C - } - }; - Object.defineProperty(Hl, "__esModule", { - value: !0 - }), Hl.default = _; - var l = b(p4()); - - function _(C, L) { - var F = null; - if (!C || typeof C != "string") return F; - var T = (0, l.default)(C), - o = typeof L == "function"; - return T.forEach(function($) { - if ($.type === "declaration") { - var W = $.property, - ie = $.value; - o ? L(W, ie, $) : ie && (F = F || {}, F[W] = ie) - } - }), F - } - return Hl -} -var m4 = f4(); -const gg = nm(m4), - _4 = gg.default || gg, - g4 = /\d/, - v4 = ["-", "_", "/", "."]; - -function y4(b = "") { - if (!g4.test(b)) return b !== b.toLowerCase() -} - -function x4(b) { - const l = []; - let _ = "", - C, L; - for (const F of b) { - const T = v4.includes(F); - if (T === !0) { - l.push(_), _ = "", C = void 0; - continue - } - const o = y4(F); - if (L === !1) { - if (C === !1 && o === !0) { - l.push(_), _ = F, C = o; - continue - } - if (C === !0 && o === !1 && _.length > 1) { - const $ = _.at(-1); - l.push(_.slice(0, Math.max(0, _.length - 1))), _ = $ + F, C = o; - continue - } - } - _ += F, C = o, L = T - } - return l.push(_), l -} - -function lv(b) { - return b ? x4(b).map(l => w4(l)).join("") : "" -} - -function b4(b) { - return T4(lv(b || "")) -} - -function w4(b) { - return b ? b[0].toUpperCase() + b.slice(1) : "" -} - -function T4(b) { - return b ? b[0].toLowerCase() + b.slice(1) : "" -} - -function wd(b) { - if (!b) return {}; - const l = {}; - - function _(C, L) { - if (C.startsWith("-moz-") || C.startsWith("-webkit-") || C.startsWith("-ms-") || C.startsWith("-o-")) { - l[lv(C)] = L; - return - } - if (C.startsWith("--")) { - l[C] = L; - return - } - l[b4(C)] = L - } - return _4(b, _), l -} - -function C4(...b) { - return (...l) => { - for (const _ of b) typeof _ == "function" && _(...l) - } -} - -function S4(b, l) { - const _ = RegExp(b, "g"); - return C => { - if (typeof C != "string") throw new TypeError(`expected an argument of type string, but got ${typeof C}`); - return C.match(_) ? C.replace(_, l) : C - } -} -const P4 = S4(/[A-Z]/, b => `-${b.toLowerCase()}`); - -function I4(b) { - if (!b || typeof b != "object" || Array.isArray(b)) throw new TypeError(`expected an argument of type object, but got ${typeof b}`); - return Object.keys(b).map(l => `${P4(l)}: ${b[l]};`).join(` -`) -} - -function cv(b = {}) { - return I4(b).replace(` -`, " ") -} -const uv = { - position: "absolute", - width: "1px", - height: "1px", - padding: "0", - margin: "-1px", - overflow: "hidden", - clip: "rect(0, 0, 0, 0)", - whiteSpace: "nowrap", - borderWidth: "0", - transform: "translateX(-100%)" -}; -cv(uv); -const M4 = ["onabort", "onanimationcancel", "onanimationend", "onanimationiteration", "onanimationstart", "onauxclick", "onbeforeinput", "onbeforetoggle", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncompositionend", "oncompositionstart", "oncompositionupdate", "oncontextlost", "oncontextmenu", "oncontextrestored", "oncopy", "oncuechange", "oncut", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onfocusin", "onfocusout", "onformdata", "ongotpointercapture", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onlostpointercapture", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onpaste", "onpause", "onplay", "onplaying", "onpointercancel", "onpointerdown", "onpointerenter", "onpointerleave", "onpointermove", "onpointerout", "onpointerover", "onpointerup", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onscrollend", "onsecuritypolicyviolation", "onseeked", "onseeking", "onselect", "onselectionchange", "onselectstart", "onslotchange", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "ontouchcancel", "ontouchend", "ontouchmove", "ontouchstart", "ontransitioncancel", "ontransitionend", "ontransitionrun", "ontransitionstart", "onvolumechange", "onwaiting", "onwebkitanimationend", "onwebkitanimationiteration", "onwebkitanimationstart", "onwebkittransitionend", "onwheel"], - A4 = new Set(M4); - -function k4(b) { - return A4.has(b) -} - -function Da(...b) { - const l = { - ...b[0] - }; - for (let _ = 1; _ < b.length; _++) { - const C = b[_]; - if (C) { - for (const L of Object.keys(C)) { - const F = l[L], - T = C[L], - o = typeof F == "function", - $ = typeof T == "function"; - if (o && k4(L)) { - const W = F, - ie = T; - l[L] = d4(W, ie) - } else if (o && $) l[L] = C4(F, T); - else if (L === "class") { - const W = Sf(F), - ie = Sf(T); - W && ie ? l[L] = Tu(F, T) : W ? l[L] = Tu(F) : ie && (l[L] = Tu(T)) - } else if (L === "style") { - const W = typeof F == "object", - ie = typeof T == "object", - pe = typeof F == "string", - ye = typeof T == "string"; - if (W && ie) l[L] = { - ...F, - ...T - }; - else if (W && ye) { - const X = wd(T); - l[L] = { - ...F, - ...X - } - } else if (pe && ie) { - const X = wd(F); - l[L] = { - ...X, - ...T - } - } else if (pe && ye) { - const X = wd(F), - Se = wd(T); - l[L] = { - ...X, - ...Se - } - } else W ? l[L] = F : ie ? l[L] = T : pe ? l[L] = F : ye && (l[L] = T) - } else l[L] = T !== void 0 ? T : F - } - for (const L of Object.getOwnPropertySymbols(C)) { - const F = l[L], - T = C[L]; - l[L] = T !== void 0 ? T : F - } - } - } - return typeof l.style == "object" && (l.style = cv(l.style).replaceAll(` -`, " ")), l.hidden !== !0 && (l.hidden = void 0, delete l.hidden), l.disabled !== !0 && (l.disabled = void 0, delete l.disabled), l -} -const E4 = typeof window < "u" ? window : void 0; - -function z4(b) { - let l = b.activeElement; - for (; l != null && l.shadowRoot;) { - const _ = l.shadowRoot.activeElement; - if (_ === l) break; - l = _ - } - return l -} -var ic, Lu; -class L4 { - constructor(l = {}) { - br(this, ic); - br(this, Lu); - const { - window: _ = E4, - document: C = _ == null ? void 0 : _.document - } = l; - _ !== void 0 && (Jn(this, ic, C), Jn(this, Lu, zg(L => { - const F = Su(_, "focusin", L), - T = Su(_, "focusout", L); - return () => { - F(), T() - } - }))) - } - get current() { - var l; - return (l = et(this, Lu)) == null || l.call(this), et(this, ic) ? z4(et(this, ic)) : null - } -} -ic = new WeakMap, Lu = new WeakMap; -new L4; -var Du, zs; -class um { - constructor(l) { - br(this, Du); - br(this, zs); - Jn(this, Du, l), Jn(this, zs, Symbol(l)) - } - get key() { - return et(this, zs) - } - exists() { - return Ny(et(this, zs)) - } - get() { - const l = ag(et(this, zs)); - if (l === void 0) throw new Error(`Context "${et(this,Du)}" not found`); - return l - } - getOr(l) { - const _ = ag(et(this, zs)); - return _ === void 0 ? l : _ - } - set(l) { - return jy(et(this, zs), l) - } -} -Du = new WeakMap, zs = new WeakMap; - -function D4(b, l) { - switch (b) { - case "post": - Zr(l); - break; - case "pre": - Hf(l); - break - } -} - -function hv(b, l, _, C = {}) { - const { - lazy: L = !1 - } = C; - let F = !L, - T = Array.isArray(b) ? [] : void 0; - D4(l, () => { - const o = Array.isArray(b) ? b.map(W => W()) : b(); - if (!F) { - F = !0, T = o; - return - } - const $ = Go(() => _(o, T)); - return T = o, $ - }) -} - -function oo(b, l, _) { - hv(b, "post", l, _) -} - -function R4(b, l, _) { - hv(b, "pre", l, _) -} -oo.pre = R4; -var nc; -class B4 { - constructor(l, _) { - br(this, nc, nt(void 0)); - _ !== void 0 && oe(et(this, nc), _, !0), oo(() => l(), (C, L) => { - oe(et(this, nc), L, !0) - }) - } - get current() { - return x(et(this, nc)) - } -} -nc = new WeakMap; - -function F4(b, l) { - return setTimeout(l, b) -} - -function Wl(b) { - Mg().then(b) -} -const O4 = 1, - N4 = 9, - j4 = 11; - -function q4(b) { - return mh(b) && b.nodeType === O4 && typeof b.nodeName == "string" -} - -function dv(b) { - return mh(b) && b.nodeType === N4 -} - -function V4(b) { - var l; - return mh(b) && ((l = b.constructor) == null ? void 0 : l.name) === "VisualViewport" -} - -function U4(b) { - return mh(b) && b.nodeType !== void 0 -} - -function Z4(b) { - return U4(b) && b.nodeType === j4 && "host" in b -} - -function $4(b) { - return dv(b) ? b : V4(b) ? b.document : (b == null ? void 0 : b.ownerDocument) ?? document -} - -function pv(b) { - var l; - return Z4(b) ? pv(b.host) : dv(b) ? b.defaultView ?? window : q4(b) ? ((l = b.ownerDocument) == null ? void 0 : l.defaultView) ?? window : window -} - -function G4(b) { - let l = b.activeElement; - for (; l != null && l.shadowRoot;) { - const _ = l.shadowRoot.activeElement; - if (_ === l) break; - l = _ - } - return l -} -var Ru; -class H4 { - constructor(l) { - lr(this, "element"); - br(this, Ru, lt(() => this.element.current ? this.element.current.getRootNode() ?? document : document)); - lr(this, "getDocument", () => $4(this.root)); - lr(this, "getWindow", () => this.getDocument().defaultView ?? window); - lr(this, "getActiveElement", () => G4(this.root)); - lr(this, "isActiveElement", l => l === this.getActiveElement()); - lr(this, "querySelector", l => this.root ? this.root.querySelector(l) : null); - lr(this, "querySelectorAll", l => this.root ? this.root.querySelectorAll(l) : []); - lr(this, "setTimeout", (l, _) => this.getWindow().setTimeout(l, _)); - lr(this, "clearTimeout", l => this.getWindow().clearTimeout(l)); - typeof l == "function" ? this.element = cr.with(l) : this.element = l - } - get root() { - return x(et(this, Ru)) - } - set root(l) { - oe(et(this, Ru), l) - } - getElementById(l) { - return this.root.getElementById(l) - } -} -Ru = new WeakMap; - -function Va(b, l) { - return { - [Mx()]: _ => cr.isBox(b) ? (b.current = _, Go(() => l == null ? void 0 : l(_)), () => { - "isConnected" in _ && _.isConnected || (b.current = null, l == null || l(null)) - }) : (b(_), Go(() => l == null ? void 0 : l(_)), () => { - "isConnected" in _ && _.isConnected || (b(null), l == null || l(null)) - }) - } -} - -function W4(b) { - return b ? "true" : "false" -} - -function X4(b) { - return b ? "true" : "false" -} - -function K4(b) { - return b ? "" : void 0 -} - -function Y4(b) { - return b ? "true" : "false" -} - -function J4(b) { - return b ? "" : void 0 -} - -function Q4(b) { - return b ? !0 : void 0 -} -var ac, Bu; -class e6 { - constructor(l) { - br(this, ac); - br(this, Bu); - lr(this, "attrs"); - Jn(this, ac, l.getVariant ? l.getVariant() : null), Jn(this, Bu, et(this, ac) ? `data-${et(this,ac)}-` : `data-${l.component}-`), this.getAttr = this.getAttr.bind(this), this.selector = this.selector.bind(this), this.attrs = Object.fromEntries(l.parts.map(_ => [_, this.getAttr(_)])) - } - getAttr(l, _) { - return _ ? `data-${_}-${l}` : `${et(this,Bu)}${l}` - } - selector(l, _) { - return `[${this.getAttr(l,_)}]` - } -} -ac = new WeakMap, Bu = new WeakMap; - -function fv(b) { - const l = new e6(b); - return { - ...l.attrs, - selector: l.selector, - getAttr: l.getAttr - } -} -const t6 = "ArrowDown", - r6 = "ArrowLeft", - i6 = "ArrowRight", - n6 = "ArrowUp", - a6 = "End", - s6 = "Enter", - o6 = "Home", - l6 = "p", - c6 = "n", - u6 = "j", - h6 = "k", - d6 = "h", - p6 = "l"; - -function Mu() {} - -function Ua(b, l) { - return `bits-${b}` -} - -function f6(b) { - if (!b) return null; - for (const l of b.childNodes) - if (l.nodeType !== Node.COMMENT_NODE) return l; - return null -} -globalThis.bitsIdCounter ?? (globalThis.bitsIdCounter = { - current: 0 -}); - -function m6(b = "bits") { - return globalThis.bitsIdCounter.current++, `${b}-${globalThis.bitsIdCounter.current}` -} - -function _6(b, l) { - let _ = b.nextElementSibling; - for (; _;) { - if (_.matches(l)) return _; - _ = _.nextElementSibling - } -} - -function g6(b, l) { - let _ = b.previousElementSibling; - for (; _;) { - if (_.matches(l)) return _; - _ = _.previousElementSibling - } -} - -function mv(b) { - if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(b); - const l = b.length; - let _ = -1, - C, L = ""; - const F = b.charCodeAt(0); - if (l === 1 && F === 45) return "\\" + b; - for (; ++_ < l;) { - if (C = b.charCodeAt(_), C === 0) { - L += "�"; - continue - } - if (C >= 1 && C <= 31 || C === 127 || _ === 0 && C >= 48 && C <= 57 || _ === 1 && C >= 48 && C <= 57 && F === 45) { - L += "\\" + C.toString(16) + " "; - continue - } - if (C >= 128 || C === 45 || C === 95 || C >= 48 && C <= 57 || C >= 65 && C <= 90 || C >= 97 && C <= 122) { - L += b.charAt(_); - continue - } - L += "\\" + b.charAt(_) - } - return L -} -const Uo = "data-value", - ma = fv({ - component: "command", - parts: ["root", "list", "input", "separator", "loading", "empty", "group", "group-items", "group-heading", "item", "viewport", "input-label"] - }), - Xl = ma.selector("group"), - df = ma.selector("group-items"), - vg = ma.selector("group-heading"), - _v = ma.selector("item"), - pf = `${ma.selector("item")}:not([aria-disabled="true"])`, - Xo = new um("Command.Root"), - v6 = new um("Command.List"), - Au = new um("Command.Group"), - yg = { - search: "", - value: "", - filtered: { - count: 0, - items: new Map, - groups: new Set - } - }; -var sc, Fu, Ou, Nu, ju, qu, Vu, Uu, ir, gv, Md, If, Ad, kd, Ed, no, vv, yv, Mf, yu, Af, kf, xv, xu, Ef, zf, bv, bu, wu, Zu; -const pm = class pm { - constructor(l) { - br(this, ir); - lr(this, "opts"); - lr(this, "attachment"); - br(this, sc, !1); - br(this, Fu, !0); - lr(this, "sortAfterTick", !1); - lr(this, "sortAndFilterAfterTick", !1); - lr(this, "allItems", new Set); - lr(this, "allGroups", new Map); - lr(this, "allIds", new Map); - br(this, Ou, nt(0)); - br(this, Nu, nt(null)); - br(this, ju, nt(null)); - br(this, qu, nt(null)); - br(this, Vu, nt(yg)); - br(this, Uu, nt(zn(yg))); - br(this, Zu, lt(() => ({ - id: this.opts.id.current, - role: "application", - [ma.root]: "", - tabindex: -1, - onkeydown: this.onkeydown, - ...this.attachment - }))); - this.opts = l, this.attachment = Va(this.opts.ref); - const _ = { - ...this._commandState, - value: this.opts.value.current ?? "" - }; - this._commandState = _, this.commandState = _, this.onkeydown = this.onkeydown.bind(this) - } - static create(l) { - return Xo.set(new pm(l)) - } - get key() { - return x(et(this, Ou)) - } - set key(l) { - oe(et(this, Ou), l, !0) - } - get viewportNode() { - return x(et(this, Nu)) - } - set viewportNode(l) { - oe(et(this, Nu), l, !0) - } - get inputNode() { - return x(et(this, ju)) - } - set inputNode(l) { - oe(et(this, ju), l, !0) - } - get labelNode() { - return x(et(this, qu)) - } - set labelNode(l) { - oe(et(this, qu), l, !0) - } - get commandState() { - return x(et(this, Vu)) - } - set commandState(l) { - oe(et(this, Vu), l) - } - get _commandState() { - return x(et(this, Uu)) - } - set _commandState(l) { - oe(et(this, Uu), l, !0) - } - setState(l, _, C) { - Object.is(this._commandState[l], _) || (this._commandState[l] = _, l === "search" ? (Fr(this, ir, Ed).call(this), Fr(this, ir, Ad).call(this)) : l === "value" && (C || Fr(this, ir, vv).call(this)), Fr(this, ir, Md).call(this)) - } - setValue(l, _) { - l !== this.opts.value.current && l === "" && Wl(() => { - this.key++ - }), this.setState("value", l, _), this.opts.value.current = l - } - getValidItems() { - const l = this.opts.ref.current; - return l ? Array.from(l.querySelectorAll(pf)).filter(C => !!C) : [] - } - getVisibleItems() { - const l = this.opts.ref.current; - return l ? Array.from(l.querySelectorAll(_v)).filter(C => !!C) : [] - } - get itemsGrid() { - var o, $, W, ie; - if (!this.isGrid) return []; - const l = this.opts.columns.current ?? 1, - _ = this.getVisibleItems(), - C = [ - [] - ]; - let L = (o = _[0]) == null ? void 0 : o.getAttribute("data-group"), - F = 0, - T = 0; - for (let pe = 0; pe < _.length; pe++) { - const ye = _[pe], - X = ye == null ? void 0 : ye.getAttribute("data-group"); - L !== X ? (L = X, F = 1, T++, C.push([{ - index: pe, - firstRowOfGroup: !0, - ref: ye - }])) : (F++, F > l && (T++, F = 1, C.push([])), (ie = C[T]) == null || ie.push({ - index: pe, - firstRowOfGroup: ((W = ($ = C[T]) == null ? void 0 : $[0]) == null ? void 0 : W.firstRowOfGroup) ?? pe === 0, - ref: ye - })) - } - return C - } - updateSelectedToIndex(l) { - const _ = this.getValidItems()[l]; - _ && this.setValue(_.getAttribute(Uo) ?? "") - } - updateSelectedByItem(l) { - const _ = Fr(this, ir, no).call(this), - C = this.getValidItems(), - L = C.findIndex(T => T === _); - let F = C[L + l]; - this.opts.loop.current && (F = L + l < 0 ? C[C.length - 1] : L + l === C.length ? C[0] : C[L + l]), F && this.setValue(F.getAttribute(Uo) ?? "") - } - updateSelectedByGroup(l) { - const _ = Fr(this, ir, no).call(this); - let C = _ == null ? void 0 : _.closest(Xl), - L; - for (; C && !L;) C = l > 0 ? _6(C, Xl) : g6(C, Xl), L = C == null ? void 0 : C.querySelector(pf); - L ? this.setValue(L.getAttribute(Uo) ?? "") : this.updateSelectedByItem(l) - } - registerValue(l, _) { - var C; - return l && l === ((C = this.allIds.get(l)) == null ? void 0 : C.value) || this.allIds.set(l, { - value: l, - keywords: _ - }), this._commandState.filtered.items.set(l, Fr(this, ir, If).call(this, l, _)), this.sortAfterTick || (this.sortAfterTick = !0, Wl(() => { - Fr(this, ir, Ad).call(this), this.sortAfterTick = !1 - })), () => { - this.allIds.delete(l) - } - } - registerItem(l, _) { - return this.allItems.add(l), _ && (this.allGroups.has(_) ? this.allGroups.get(_).add(l) : this.allGroups.set(_, new Set([l]))), this.sortAndFilterAfterTick || (this.sortAndFilterAfterTick = !0, Wl(() => { - Fr(this, ir, Ed).call(this), Fr(this, ir, Ad).call(this), this.sortAndFilterAfterTick = !1 - })), Fr(this, ir, Md).call(this), () => { - const C = Fr(this, ir, no).call(this); - this.allIds.delete(l), this.allItems.delete(l), this.commandState.filtered.items.delete(l), Fr(this, ir, Ed).call(this), (C == null ? void 0 : C.getAttribute("id")) === l && Fr(this, ir, kd).call(this), Fr(this, ir, Md).call(this) - } - } - registerGroup(l) { - return this.allGroups.has(l) || this.allGroups.set(l, new Set), () => { - this.allIds.delete(l), this.allGroups.delete(l) - } - } - get isGrid() { - return this.opts.columns.current !== null - } - onkeydown(l) { - const _ = this.opts.vimBindings.current && l.ctrlKey; - switch (l.key) { - case c6: - case u6: { - _ && (this.isGrid ? Fr(this, ir, Af).call(this, l) : Fr(this, ir, yu).call(this, l)); - break - } - case p6: { - _ && this.isGrid && Fr(this, ir, yu).call(this, l); - break - } - case t6: - this.isGrid ? Fr(this, ir, Af).call(this, l) : Fr(this, ir, yu).call(this, l); - break; - case i6: - if (!this.isGrid) break; - Fr(this, ir, yu).call(this, l); - break; - case l6: - case h6: { - _ && (this.isGrid ? Fr(this, ir, zf).call(this, l) : Fr(this, ir, wu).call(this, l)); - break - } - case d6: { - _ && this.isGrid && Fr(this, ir, wu).call(this, l); - break - } - case n6: - this.isGrid ? Fr(this, ir, zf).call(this, l) : Fr(this, ir, wu).call(this, l); - break; - case r6: - if (!this.isGrid) break; - Fr(this, ir, wu).call(this, l); - break; - case o6: - l.preventDefault(), this.updateSelectedToIndex(0); - break; - case a6: - l.preventDefault(), Fr(this, ir, Mf).call(this); - break; - case s6: - if (!l.isComposing && l.keyCode !== 229) { - l.preventDefault(); - const C = Fr(this, ir, no).call(this); - C && (C == null || C.click()) - } - } - } - get props() { - return x(et(this, Zu)) - } - set props(l) { - oe(et(this, Zu), l) - } -}; -sc = new WeakMap, Fu = new WeakMap, Ou = new WeakMap, Nu = new WeakMap, ju = new WeakMap, qu = new WeakMap, Vu = new WeakMap, Uu = new WeakMap, ir = new WeakSet, gv = function() { - return Ix(this._commandState) -}, Md = function() { - et(this, sc) || (Jn(this, sc, !0), Wl(() => { - var C, L; - Jn(this, sc, !1); - const l = Fr(this, ir, gv).call(this); - !Object.is(this.commandState, l) && (this.commandState = l, (L = (C = this.opts.onStateChange) == null ? void 0 : C.current) == null || L.call(C, l)) - })) -}, If = function(l, _) { - const C = this.opts.filter.current ?? Cv; - return l ? C(l, this._commandState.search, _) : 0 -}, Ad = function() { - var T; - if (!this._commandState.search || this.opts.shouldFilter.current === !1) { - Fr(this, ir, kd).call(this); - return - } - const l = this._commandState.filtered.items, - _ = []; - for (const o of this._commandState.filtered.groups) { - const $ = this.allGroups.get(o); - let W = 0; - if (!$) { - _.push([o, W]); - continue - } - for (const ie of $) { - const pe = l.get(ie); - W = Math.max(pe ?? 0, W) - } - _.push([o, W]) - } - const C = this.viewportNode, - L = this.getValidItems().sort((o, $) => { - const W = o.getAttribute("data-value"), - ie = $.getAttribute("data-value"), - pe = l.get(W) ?? 0; - return (l.get(ie) ?? 0) - pe - }); - for (const o of L) { - const $ = o.closest(df); - if ($) { - const W = o.parentElement === $ ? o : o.closest(`${df} > *`); - W && $.appendChild(W) - } else { - const W = o.parentElement === C ? o : o.closest(`${df} > *`); - W && (C == null || C.appendChild(W)) - } - } - const F = _.sort((o, $) => $[1] - o[1]); - for (const o of F) { - const $ = C == null ? void 0 : C.querySelector(`${Xl}[${Uo}="${mv(o[0])}"]`); - (T = $ == null ? void 0 : $.parentElement) == null || T.appendChild($) - } - Fr(this, ir, kd).call(this) -}, kd = function() { - Wl(() => { - const l = this.getValidItems().find(L => L.getAttribute("aria-disabled") !== "true"), - _ = l == null ? void 0 : l.getAttribute(Uo), - C = et(this, Fu) && this.opts.disableInitialScroll.current; - this.setValue(_ ?? "", C), Jn(this, Fu, !1) - }) -}, Ed = function() { - var _, C; - if (!this._commandState.search || this.opts.shouldFilter.current === !1) { - this._commandState.filtered.count = this.allItems.size; - return - } - this._commandState.filtered.groups = new Set; - let l = 0; - for (const L of this.allItems) { - const F = ((_ = this.allIds.get(L)) == null ? void 0 : _.value) ?? "", - T = ((C = this.allIds.get(L)) == null ? void 0 : C.keywords) ?? [], - o = Fr(this, ir, If).call(this, F, T); - this._commandState.filtered.items.set(L, o), o > 0 && l++ - } - for (const [L, F] of this.allGroups) - for (const T of F) { - const o = this._commandState.filtered.items.get(T); - if (o && o > 0) { - this._commandState.filtered.groups.add(L); - break - } - } - this._commandState.filtered.count = l -}, no = function() { - const l = this.opts.ref.current; - if (!l) return; - const _ = l.querySelector(`${pf}[data-selected]`); - if (_) return _ -}, vv = function() { - Wl(() => { - var C, L, F, T, o; - const l = Fr(this, ir, no).call(this); - if (!l) return; - const _ = (C = l.parentElement) == null ? void 0 : C.parentElement; - if (_) { - if (this.isGrid) { - const $ = Fr(this, ir, yv).call(this, l); - if (l.scrollIntoView({ - block: "nearest" - }), $) { - const W = (L = l == null ? void 0 : l.closest(Xl)) == null ? void 0 : L.querySelector(vg); - W == null || W.scrollIntoView({ - block: "nearest" - }); - return - } - } else { - const $ = f6(_); - if ($ && ((F = $.dataset) == null ? void 0 : F.value) === ((T = l.dataset) == null ? void 0 : T.value)) { - const W = (o = l == null ? void 0 : l.closest(Xl)) == null ? void 0 : o.querySelector(vg); - W == null || W.scrollIntoView({ - block: "nearest" - }); - return - } - } - l.scrollIntoView({ - block: "nearest" - }) - } - }) -}, yv = function(l) { - const _ = this.itemsGrid; - if (_.length === 0) return !1; - for (let C = 0; C < _.length; C++) { - const L = _[C]; - if (L !== void 0) - for (let F = 0; F < L.length; F++) { - const T = L[F]; - if (!(T === void 0 || T.ref !== l)) return T.firstRowOfGroup - } - } - return !1 -}, Mf = function() { - return this.updateSelectedToIndex(this.getValidItems().length - 1) -}, yu = function(l) { - l.preventDefault(), l.metaKey ? Fr(this, ir, Mf).call(this) : l.altKey ? this.updateSelectedByGroup(1) : this.updateSelectedByItem(1) -}, Af = function(l) { - this.opts.columns.current !== null && (l.preventDefault(), l.metaKey ? this.updateSelectedByGroup(1) : this.updateSelectedByItem(Fr(this, ir, xv).call(this, l))) -}, kf = function(l, _) { - if (_.length === 0) return null; - for (let C = 0; C < _.length; C++) { - const L = _[C]; - if (L !== void 0) - for (let F = 0; F < L.length; F++) { - const T = L[F]; - if (!(T === void 0 || T.ref !== l)) return { - columnIndex: F, - rowIndex: C - } - } - } - return null -}, xv = function(l) { - const _ = this.itemsGrid, - C = Fr(this, ir, no).call(this); - if (!C) return 0; - const L = Fr(this, ir, kf).call(this, C, _); - if (!L) return 0; - let F = null; - const T = l.altKey ? 1 : 0; - if (l.altKey && L.rowIndex === _.length - 2 && !this.opts.loop.current) F = Fr(this, ir, xu).call(this, { - start: _.length - 1, - end: _.length, - expectedColumnIndex: L.columnIndex, - grid: _ - }); - else if (L.rowIndex === _.length - 1) { - if (!this.opts.loop.current) return 0; - F = Fr(this, ir, xu).call(this, { - start: 0 + T, - end: L.rowIndex, - expectedColumnIndex: L.columnIndex, - grid: _ - }) - } else F = Fr(this, ir, xu).call(this, { - start: L.rowIndex + 1 + T, - end: _.length, - expectedColumnIndex: L.columnIndex, - grid: _ - }), F === null && this.opts.loop.current && (F = Fr(this, ir, xu).call(this, { - start: 0, - end: L.rowIndex, - expectedColumnIndex: L.columnIndex, - grid: _ - })); - return Fr(this, ir, Ef).call(this, C, F) -}, xu = function({ - start: l, - end: _, - grid: C, - expectedColumnIndex: L -}) { - var T; - let F = null; - for (let o = l; o < _; o++) { - const $ = C[o]; - if (F = ((T = $[L]) == null ? void 0 : T.ref) ?? null, F !== null && Td(F)) { - F = null; - continue - } - if (F === null) - for (let W = $.length - 1; W >= 0; W--) { - const ie = $[$.length - 1]; - if (!(ie === void 0 || Td(ie.ref))) { - F = ie.ref; - break - } - } - break - } - return F -}, Ef = function(l, _) { - if (_ === null) return 0; - const C = this.getValidItems(), - L = C.findIndex(T => T === l); - return C.findIndex(T => T === _) - L -}, zf = function(l) { - this.opts.columns.current !== null && (l.preventDefault(), l.metaKey ? this.updateSelectedByGroup(-1) : this.updateSelectedByItem(Fr(this, ir, bv).call(this, l))) -}, bv = function(l) { - const _ = this.itemsGrid, - C = Fr(this, ir, no).call(this); - if (C === void 0) return 0; - const L = Fr(this, ir, kf).call(this, C, _); - if (L === null) return 0; - let F = null; - const T = l.altKey ? 1 : 0; - if (l.altKey && L.rowIndex === 1 && this.opts.loop.current === !1) F = Fr(this, ir, bu).call(this, { - start: 0, - end: 0, - expectedColumnIndex: L.columnIndex, - grid: _ - }); - else if (L.rowIndex === 0) { - if (this.opts.loop.current === !1) return 0; - F = Fr(this, ir, bu).call(this, { - start: _.length - 1 - T, - end: L.rowIndex + 1, - expectedColumnIndex: L.columnIndex, - grid: _ - }) - } else F = Fr(this, ir, bu).call(this, { - start: L.rowIndex - 1 - T, - end: 0, - expectedColumnIndex: L.columnIndex, - grid: _ - }), F === null && this.opts.loop.current && (F = Fr(this, ir, bu).call(this, { - start: _.length - 1, - end: L.rowIndex + 1, - expectedColumnIndex: L.columnIndex, - grid: _ - })); - return Fr(this, ir, Ef).call(this, C, F) -}, bu = function({ - start: l, - end: _, - grid: C, - expectedColumnIndex: L -}) { - var T; - let F = null; - for (let o = l; o >= _; o--) { - const $ = C[o]; - if ($ !== void 0) { - if (F = ((T = $[L]) == null ? void 0 : T.ref) ?? null, F !== null && Td(F)) { - F = null; - continue - } - if (F === null) - for (let W = $.length - 1; W >= 0; W--) { - const ie = $[$.length - 1]; - if (!(ie === void 0 || Td(ie.ref))) { - F = ie.ref; - break - } - } - break - } - } - return F -}, wu = function(l) { - l.preventDefault(), l.metaKey ? this.updateSelectedToIndex(0) : l.altKey ? this.updateSelectedByGroup(-1) : this.updateSelectedByItem(-1) -}, Zu = new WeakMap; -let Pf = pm; - -function Td(b) { - return b.getAttribute("aria-disabled") === "true" -} -var $u, Gu, Hu; -const fm = class fm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, $u, lt(() => this.root._commandState.filtered.count === 0 && et(this, Gu) === !1 || this.opts.forceMount.current)); - br(this, Gu, !0); - br(this, Hu, lt(() => ({ - id: this.opts.id.current, - role: "presentation", - [ma.empty]: "", - ...this.attachment - }))); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref), Hf(() => { - Jn(this, Gu, !1) - }) - } - static create(l) { - return new fm(l, Xo.get()) - } - get shouldRender() { - return x(et(this, $u)) - } - set shouldRender(l) { - oe(et(this, $u), l) - } - get props() { - return x(et(this, Hu)) - } - set props(l) { - oe(et(this, Hu), l) - } -}; -$u = new WeakMap, Gu = new WeakMap, Hu = new WeakMap; -let Lf = fm; -var Wu, Xu, Ku, Yu; -const mm = class mm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, Wu, lt(() => this.opts.forceMount.current || this.root.opts.shouldFilter.current === !1 || !this.root.commandState.search ? !0 : this.root._commandState.filtered.groups.has(this.trueValue))); - br(this, Xu, nt(null)); - br(this, Ku, nt("")); - br(this, Yu, lt(() => ({ - id: this.opts.id.current, - role: "presentation", - hidden: this.shouldRender ? void 0 : !0, - "data-value": this.trueValue, - [ma.group]: "", - ...this.attachment - }))); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref), this.trueValue = l.value.current ?? l.id.current, oo(() => this.trueValue, () => this.root.registerGroup(this.trueValue)), Zr(() => this.opts.value.current ? (this.trueValue = this.opts.value.current, this.root.registerValue(this.opts.value.current)) : this.headingNode && this.headingNode.textContent ? (this.trueValue = this.headingNode.textContent.trim().toLowerCase(), this.root.registerValue(this.trueValue)) : (this.trueValue = `-----${this.opts.id.current}`, this.root.registerValue(this.trueValue))) - } - static create(l) { - return Au.set(new mm(l, Xo.get())) - } - get shouldRender() { - return x(et(this, Wu)) - } - set shouldRender(l) { - oe(et(this, Wu), l) - } - get headingNode() { - return x(et(this, Xu)) - } - set headingNode(l) { - oe(et(this, Xu), l, !0) - } - get trueValue() { - return x(et(this, Ku)) - } - set trueValue(l) { - oe(et(this, Ku), l, !0) - } - get props() { - return x(et(this, Yu)) - } - set props(l) { - oe(et(this, Yu), l) - } -}; -Wu = new WeakMap, Xu = new WeakMap, Ku = new WeakMap, Yu = new WeakMap; -let Df = mm; -var Ju; -const _m = class _m { - constructor(l, _) { - lr(this, "opts"); - lr(this, "group"); - lr(this, "attachment"); - br(this, Ju, lt(() => ({ - id: this.opts.id.current, - [ma["group-heading"]]: "", - ...this.attachment - }))); - this.opts = l, this.group = _, this.attachment = Va(this.opts.ref, C => this.group.headingNode = C) - } - static create(l) { - return new _m(l, Au.get()) - } - get props() { - return x(et(this, Ju)) - } - set props(l) { - oe(et(this, Ju), l) - } -}; -Ju = new WeakMap; -let Rf = _m; -var Qu; -const gm = class gm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "group"); - lr(this, "attachment"); - br(this, Qu, lt(() => { - var l; - return { - id: this.opts.id.current, - role: "group", - [ma["group-items"]]: "", - "aria-labelledby": ((l = this.group.headingNode) == null ? void 0 : l.id) ?? void 0, - ...this.attachment - } - })); - this.opts = l, this.group = _, this.attachment = Va(this.opts.ref) - } - static create(l) { - return new gm(l, Au.get()) - } - get props() { - return x(et(this, Qu)) - } - set props(l) { - oe(et(this, Qu), l) - } -}; -Qu = new WeakMap; -let Bf = gm; -var Dd, eh; -const vm = class vm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, Dd, lt(() => { - var _; - const l = (_ = this.root.viewportNode) == null ? void 0 : _.querySelector(`${_v}[${Uo}="${mv(this.root.opts.value.current)}"]`); - if (l != null) return l.getAttribute("id") ?? void 0 - })); - br(this, eh, lt(() => { - var l, _; - return { - id: this.opts.id.current, - type: "text", - [ma.input]: "", - autocomplete: "off", - autocorrect: "off", - spellcheck: !1, - "aria-autocomplete": "list", - role: "combobox", - "aria-expanded": X4(!0), - "aria-controls": ((l = this.root.viewportNode) == null ? void 0 : l.id) ?? void 0, - "aria-labelledby": ((_ = this.root.labelNode) == null ? void 0 : _.id) ?? void 0, - "aria-activedescendant": x(et(this, Dd)), - ...this.attachment - } - })); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref, C => this.root.inputNode = C), oo(() => this.opts.ref.current, () => { - const C = this.opts.ref.current; - C && this.opts.autofocus.current && F4(10, () => C.focus()) - }), oo(() => this.opts.value.current, () => { - this.root.commandState.search !== this.opts.value.current && this.root.setState("search", this.opts.value.current) - }) - } - static create(l) { - return new vm(l, Xo.get()) - } - get props() { - return x(et(this, eh)) - } - set props(l) { - oe(et(this, eh), l) - } -}; -Dd = new WeakMap, eh = new WeakMap; -let Ff = vm; -var ao, Rd, th, rh, ih, Wo, wv, Nf, nh; -const ym = class ym { - constructor(l, _) { - br(this, Wo); - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, ao, null); - br(this, Rd, lt(() => { - var l; - return this.opts.forceMount.current || ((l = et(this, ao)) == null ? void 0 : l.opts.forceMount.current) === !0 - })); - br(this, th, lt(() => { - if (this.opts.ref.current, x(et(this, Rd)) || this.root.opts.shouldFilter.current === !1 || !this.root.commandState.search) return !0; - const l = this.root.commandState.filtered.items.get(this.trueValue); - return l === void 0 ? !1 : l > 0 - })); - br(this, rh, lt(() => this.root.opts.value.current === this.trueValue && this.trueValue !== "")); - br(this, ih, nt("")); - br(this, nh, lt(() => { - var l; - return { - id: this.opts.id.current, - "aria-disabled": W4(this.opts.disabled.current), - "aria-selected": Y4(this.isSelected), - "data-disabled": K4(this.opts.disabled.current), - "data-selected": J4(this.isSelected), - "data-value": this.trueValue, - "data-group": (l = et(this, ao)) == null ? void 0 : l.trueValue, - [ma.item]: "", - role: "option", - onpointermove: this.onpointermove, - onclick: this.onclick, - ...this.attachment - } - })); - this.opts = l, this.root = _, Jn(this, ao, Au.getOr(null)), this.trueValue = l.value.current, this.attachment = Va(this.opts.ref), oo([() => this.trueValue, () => { - var C; - return (C = et(this, ao)) == null ? void 0 : C.trueValue - }, () => this.opts.forceMount.current], () => { - var C; - if (!this.opts.forceMount.current) return this.root.registerItem(this.trueValue, (C = et(this, ao)) == null ? void 0 : C.trueValue) - }), oo([() => this.opts.value.current, () => this.opts.ref.current], () => { - var C, L; - !this.opts.value.current && ((C = this.opts.ref.current) != null && C.textContent) && (this.trueValue = this.opts.ref.current.textContent.trim()), this.root.registerValue(this.trueValue, l.keywords.current.map(F => F.trim())), (L = this.opts.ref.current) == null || L.setAttribute(Uo, this.trueValue) - }), this.onclick = this.onclick.bind(this), this.onpointermove = this.onpointermove.bind(this) - } - static create(l) { - const _ = Au.getOr(null); - return new ym({ - ...l, - group: _ - }, Xo.get()) - } - get shouldRender() { - return x(et(this, th)) - } - set shouldRender(l) { - oe(et(this, th), l) - } - get isSelected() { - return x(et(this, rh)) - } - set isSelected(l) { - oe(et(this, rh), l) - } - get trueValue() { - return x(et(this, ih)) - } - set trueValue(l) { - oe(et(this, ih), l, !0) - } - onpointermove(l) { - this.opts.disabled.current || this.root.opts.disablePointerSelection.current || Fr(this, Wo, Nf).call(this) - } - onclick(l) { - this.opts.disabled.current || Fr(this, Wo, wv).call(this) - } - get props() { - return x(et(this, nh)) - } - set props(l) { - oe(et(this, nh), l) - } -}; -ao = new WeakMap, Rd = new WeakMap, th = new WeakMap, rh = new WeakMap, ih = new WeakMap, Wo = new WeakSet, wv = function() { - var l; - this.opts.disabled.current || (Fr(this, Wo, Nf).call(this), (l = this.opts.onSelect) == null || l.current()) -}, Nf = function() { - this.opts.disabled.current || this.root.setValue(this.trueValue, !0) -}, nh = new WeakMap; -let Of = ym; -var ah; -const xm = class xm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, ah, lt(() => ({ - id: this.opts.id.current, - role: "listbox", - "aria-label": this.opts.ariaLabel.current, - [ma.list]: "", - ...this.attachment - }))); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref) - } - static create(l) { - return v6.set(new xm(l, Xo.get())) - } - get props() { - return x(et(this, ah)) - } - set props(l) { - oe(et(this, ah), l) - } -}; -ah = new WeakMap; -let jf = xm; -var sh; -const bm = class bm { - constructor(l, _) { - lr(this, "opts"); - lr(this, "root"); - lr(this, "attachment"); - br(this, sh, lt(() => { - var l; - return { - id: this.opts.id.current, - [ma["input-label"]]: "", - for: (l = this.opts.for) == null ? void 0 : l.current, - style: uv, - ...this.attachment - } - })); - this.opts = l, this.root = _, this.attachment = Va(this.opts.ref, C => this.root.labelNode = C) - } - static create(l) { - return new bm(l, Xo.get()) - } - get props() { - return x(et(this, sh)) - } - set props(l) { - oe(et(this, sh), l) - } -}; -sh = new WeakMap; -let qf = bm; -var y6 = Ie(""); - -function x6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children"]); - const T = qf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ie => L(ie)) - }), - o = lt(() => Da(F, T.props)); - var $ = y6(); - er($, () => ({ - ...x(o) - })); - var W = k($); - Ji(W, () => l.children ?? fa), A($), H(b, $), Pr() -} -var b6 = Ie(" ", 1), - w6 = Ie("
                "); - -function T6(b, l) { - const _ = ts(); - Sr(l, !0); - const C = it => { - x6(it, { - children: (Qe, ke) => { - fi(); - var vt = Fn(); - Ge(() => fe(vt, ye())), H(Qe, vt) - }, - $$slots: { - default: !0 - } - }) - }; - let L = Et(l, "id", 19, () => Ua(_)), - F = Et(l, "ref", 15, null), - T = Et(l, "value", 15, ""), - o = Et(l, "onValueChange", 3, Mu), - $ = Et(l, "onStateChange", 3, Mu), - W = Et(l, "loop", 3, !1), - ie = Et(l, "shouldFilter", 3, !0), - pe = Et(l, "filter", 3, Cv), - ye = Et(l, "label", 3, ""), - X = Et(l, "vimBindings", 3, !0), - Se = Et(l, "disablePointerSelection", 3, !1), - we = Et(l, "disableInitialScroll", 3, !1), - Re = Et(l, "columns", 3, null), - Ae = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "value", "onValueChange", "onStateChange", "loop", "shouldFilter", "filter", "label", "vimBindings", "disablePointerSelection", "disableInitialScroll", "columns", "children", "child"]); - const Oe = Pf.create({ - id: cr.with(() => L()), - ref: cr.with(() => F(), it => F(it)), - filter: cr.with(() => pe()), - shouldFilter: cr.with(() => ie()), - loop: cr.with(() => W()), - value: cr.with(() => T(), it => { - T() !== it && (T(it), o()(it)) - }), - vimBindings: cr.with(() => X()), - disablePointerSelection: cr.with(() => Se()), - disableInitialScroll: cr.with(() => we()), - onStateChange: cr.with(() => $()), - columns: cr.with(() => Re()) - }), - Ee = it => Oe.updateSelectedToIndex(it), - Ne = it => Oe.updateSelectedByGroup(it), - ft = it => Oe.updateSelectedByItem(it), - ht = () => Oe.getValidItems(), - Xe = lt(() => Da(Ae, Oe.props)); - var ct = Jt(), - Je = zt(ct); - { - var Be = it => { - var Qe = b6(), - ke = zt(Qe); - C(ke); - var vt = V(ke, 2); - Ji(vt, () => l.child, () => ({ - props: x(Xe) - })), H(it, Qe) - }, - st = it => { - var Qe = w6(); - er(Qe, () => ({ - ...x(Xe) - })); - var ke = k(Qe); - C(ke); - var vt = V(ke, 2); - Ji(vt, () => l.children ?? fa), A(Qe), H(it, Qe) - }; - Ue(Je, it => { - l.child ? it(Be) : it(st, !1) - }) - } - return H(b, ct), Pr({ - updateSelectedToIndex: Ee, - updateSelectedByGroup: Ne, - updateSelectedByItem: ft, - getValidItems: ht - }) -} -var C6 = Ie("
                "); - -function S6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Et(l, "forceMount", 3, !1), - T = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children", "child", "forceMount"]); - const o = Lf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)), - forceMount: cr.with(() => F()) - }), - $ = lt(() => Da(o.props, T)); - var W = Jt(), - ie = zt(W); - { - var pe = ye => { - var X = Jt(), - Se = zt(X); - { - var we = Ae => { - var Oe = Jt(), - Ee = zt(Oe); - Ji(Ee, () => l.child, () => ({ - props: x($) - })), H(Ae, Oe) - }, - Re = Ae => { - var Oe = C6(); - er(Oe, () => ({ - ...x($) - })); - var Ee = k(Oe); - Ji(Ee, () => l.children ?? fa), A(Oe), H(Ae, Oe) - }; - Ue(Se, Ae => { - l.child ? Ae(we) : Ae(Re, !1) - }) - } - H(ye, X) - }; - Ue(ie, ye => { - o.shouldRender && ye(pe) - }) - } - H(b, W), Pr() -} -var P6 = Ie("
                "); - -function I6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Et(l, "value", 3, ""), - T = Et(l, "forceMount", 3, !1), - o = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "value", "forceMount", "children", "child"]); - const $ = Df.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), Se => L(Se)), - forceMount: cr.with(() => T()), - value: cr.with(() => F()) - }), - W = lt(() => Da(o, $.props)); - var ie = Jt(), - pe = zt(ie); - { - var ye = Se => { - var we = Jt(), - Re = zt(we); - Ji(Re, () => l.child, () => ({ - props: x(W) - })), H(Se, we) - }, - X = Se => { - var we = P6(); - er(we, () => ({ - ...x(W) - })); - var Re = k(we); - Ji(Re, () => l.children ?? fa), A(we), H(Se, we) - }; - Ue(pe, Se => { - l.child ? Se(ye) : Se(X, !1) - }) - } - H(b, ie), Pr() -} -var M6 = Ie("
                "); - -function A6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children", "child"]); - const T = Rf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)) - }), - o = lt(() => Da(F, T.props)); - var $ = Jt(), - W = zt($); - { - var ie = ye => { - var X = Jt(), - Se = zt(X); - Ji(Se, () => l.child, () => ({ - props: x(o) - })), H(ye, X) - }, - pe = ye => { - var X = M6(); - er(X, () => ({ - ...x(o) - })); - var Se = k(X); - Ji(Se, () => l.children ?? fa), A(X), H(ye, X) - }; - Ue(W, ye => { - l.child ? ye(ie) : ye(pe, !1) - }) - } - H(b, $), Pr() -} -var k6 = Ie("
                "), - E6 = Ie('
                '); - -function z6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "children", "child"]); - const T = Bf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)) - }), - o = lt(() => Da(F, T.props)); - var $ = E6(), - W = k($); - { - var ie = ye => { - var X = Jt(), - Se = zt(X); - Ji(Se, () => l.child, () => ({ - props: x(o) - })), H(ye, X) - }, - pe = ye => { - var X = k6(); - er(X, () => ({ - ...x(o) - })); - var Se = k(X); - Ji(Se, () => l.children ?? fa), A(X), H(ye, X) - }; - Ue(W, ye => { - l.child ? ye(ie) : ye(pe, !1) - }) - } - A($), H(b, $), Pr() -} -var L6 = Ie(""); - -function D6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "value", 15, ""), - L = Et(l, "autofocus", 3, !1), - F = Et(l, "id", 19, () => Ua(_)), - T = Et(l, "ref", 15, null), - o = Qt(l, ["$$slots", "$$events", "$$legacy", "value", "autofocus", "id", "ref", "child"]); - const $ = Ff.create({ - id: cr.with(() => F()), - ref: cr.with(() => T(), Se => T(Se)), - value: cr.with(() => C(), Se => { - C(Se) - }), - autofocus: cr.with(() => L() ?? !1) - }), - W = lt(() => Da(o, $.props)); - var ie = Jt(), - pe = zt(ie); - { - var ye = Se => { - var we = Jt(), - Re = zt(we); - Ji(Re, () => l.child, () => ({ - props: x(W) - })), H(Se, we) - }, - X = Se => { - var we = L6(); - ea(we), er(we, () => ({ - ...x(W) - })), jd(we, C), H(Se, we) - }; - Ue(pe, Se => { - l.child ? Se(ye) : Se(X, !1) - }) - } - H(b, ie), Pr() -} -var R6 = Ie("
                "), - B6 = Ie('
                '); - -function F6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Et(l, "value", 3, ""), - T = Et(l, "disabled", 3, !1), - o = Et(l, "onSelect", 3, Mu), - $ = Et(l, "forceMount", 3, !1), - W = Et(l, "keywords", 19, () => []), - ie = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "value", "disabled", "children", "child", "onSelect", "forceMount", "keywords"]); - const pe = Of.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), we => L(we)), - value: cr.with(() => F()), - disabled: cr.with(() => T()), - onSelect: cr.with(() => o()), - forceMount: cr.with(() => $()), - keywords: cr.with(() => W()) - }), - ye = lt(() => Da(ie, pe.props)); - var X = Jt(), - Se = zt(X); - Pu(Se, () => pe.root.key, we => { - var Re = B6(), - Ae = k(Re); - { - var Oe = Ee => { - var Ne = Jt(), - ft = zt(Ne); - { - var ht = ct => { - var Je = Jt(), - Be = zt(Je); - Ji(Be, () => l.child, () => ({ - props: x(ye) - })), H(ct, Je) - }, - Xe = ct => { - var Je = R6(); - er(Je, () => ({ - ...x(ye) - })); - var Be = k(Je); - Ji(Be, () => l.children ?? fa), A(Je), H(ct, Je) - }; - Ue(ft, ct => { - l.child ? ct(ht) : ct(Xe, !1) - }) - } - H(Ee, Ne) - }; - Ue(Ae, Ee => { - pe.shouldRender && Ee(Oe) - }) - } - A(Re), Ge(() => zr(Re, "data-value", pe.trueValue)), H(we, Re) - }), H(b, X), Pr() -} -var O6 = Ie("
                "); - -function N6(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "child", "children", "aria-label"]); - const T = jf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ie => L(ie)), - ariaLabel: cr.with(() => l["aria-label"] ?? "Suggestions...") - }), - o = lt(() => Da(F, T.props)); - var $ = Jt(), - W = zt($); - Pu(W, () => T.root._commandState.search === "", ie => { - var pe = Jt(), - ye = zt(pe); - { - var X = we => { - var Re = Jt(), - Ae = zt(Re); - Ji(Ae, () => l.child, () => ({ - props: x(o) - })), H(we, Re) - }, - Se = we => { - var Re = O6(); - er(Re, () => ({ - ...x(o) - })); - var Ae = k(Re); - Ji(Ae, () => l.children ?? fa), A(Re), H(we, Re) - }; - Ue(ye, we => { - l.child ? we(X) : we(Se, !1) - }) - } - H(ie, pe) - }), H(b, $), Pr() -} -const xg = 1, - j6 = .9, - q6 = .8, - V6 = .17, - ff = .1, - mf = .999, - U6 = .9999, - Z6 = .99, - $6 = /[\\/_+.#"@[({&]/, - G6 = /[\\/_+.#"@[({&]/g, - H6 = /[\s-]/, - Tv = /[\s-]/g; - -function Vf(b, l, _, C, L, F, T) { - if (F === l.length) return L === b.length ? xg : Z6; - const o = `${L},${F}`; - if (T[o] !== void 0) return T[o]; - const $ = C.charAt(F); - let W = _.indexOf($, L), - ie = 0, - pe, ye, X, Se; - for (; W >= 0;) pe = Vf(b, l, _, C, W + 1, F + 1, T), pe > ie && (W === L ? pe *= xg : $6.test(b.charAt(W - 1)) ? (pe *= q6, X = b.slice(L, W - 1).match(G6), X && L > 0 && (pe *= mf ** X.length)) : H6.test(b.charAt(W - 1)) ? (pe *= j6, Se = b.slice(L, W - 1).match(Tv), Se && L > 0 && (pe *= mf ** Se.length)) : (pe *= V6, L > 0 && (pe *= mf ** (W - L))), b.charAt(W) !== l.charAt(F) && (pe *= U6)), (pe < ff && _.charAt(W - 1) === C.charAt(F + 1) || C.charAt(F + 1) === C.charAt(F) && _.charAt(W - 1) !== C.charAt(F)) && (ye = Vf(b, l, _, C, W + 1, F + 2, T), ye * ff > pe && (pe = ye * ff)), pe > ie && (ie = pe), W = _.indexOf($, W + 1); - return T[o] = ie, ie -} - -function bg(b) { - return b.toLowerCase().replace(Tv, " ") -} - -function Cv(b, l, _) { - return b = _ && _.length > 0 ? `${`${b} ${_==null?void 0:_.join(" ")}`}` : b, Vf(b, l, bg(b), bg(l), 0, 0, {}) -} -const W6 = 18, - Sv = 40, - X6 = `${Sv}px`, - K6 = ["[data-lastpass-icon-root]", "com-1password-button", "[data-dashlanecreated]", '[style$="2147483647 !important;"]'].join(","); - -function Y6({ - containerRef: b, - inputRef: l, - pushPasswordManagerStrategy: _, - isFocused: C, - domContext: L -}) { - let F = nt(!1), - T = nt(!1), - o = nt(!1); - - function $() { - const ie = _.current; - return ie === "none" ? !1 : ie === "increase-width" && x(F) && x(T) - } - - function W() { - const ie = b.current, - pe = l.current; - if (!ie || !pe || x(o) || _.current === "none") return; - const ye = ie, - X = ye.getBoundingClientRect().left + ye.offsetWidth, - Se = ye.getBoundingClientRect().top + ye.offsetHeight / 2, - we = X - W6, - Re = Se; - L.querySelectorAll(K6).length === 0 && L.getDocument().elementFromPoint(we, Re) === ie || (oe(F, !0), oe(o, !0)) - } - return Zr(() => { - const ie = b.current; - if (!ie || _.current === "none") return; - - function pe() { - const Se = pv(ie).innerWidth - ie.getBoundingClientRect().right; - oe(T, Se >= Sv) - } - pe(); - const ye = setInterval(pe, 1e3); - return () => { - clearInterval(ye) - } - }), Zr(() => { - const ie = C.current || L.getActiveElement() === l.current; - if (_.current === "none" || !ie) return; - const pe = setTimeout(W, 0), - ye = setTimeout(W, 2e3), - X = setTimeout(W, 5e3), - Se = setTimeout(() => { - oe(o, !0) - }, 6e3); - return () => { - clearTimeout(pe), clearTimeout(ye), clearTimeout(X), clearTimeout(Se) - } - }), { - get hasPwmBadge() { - return x(F) - }, - get willPushPwmBadge() { - return $() - }, - PWM_BADGE_SPACE_WIDTH: X6 - } -} -const Pv = fv({ - component: "pin-input", - parts: ["root", "cell"] - }), - J6 = ["Backspace", "Delete", "ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End", "Escape", "Enter", "Tab", "Shift", "Control", "Meta"]; -var ja, oc, Ls, za, qa, lc, hs, Ds, so, cc, Bd, oh, lh, Fd, Od, Iv, ch, uh, Nd, hh; -const wm = class wm { - constructor(l) { - br(this, Od); - lr(this, "opts"); - lr(this, "attachment"); - br(this, ja, cr(null)); - br(this, oc, nt(!1)); - lr(this, "inputAttachment", Va(et(this, ja))); - br(this, Ls, cr(!1)); - br(this, za, nt(null)); - br(this, qa, nt(null)); - br(this, lc, new B4(() => this.opts.value.current ?? "")); - br(this, hs, lt(() => typeof this.opts.pattern.current == "string" ? new RegExp(this.opts.pattern.current) : this.opts.pattern.current)); - br(this, Ds, nt(zn({ - prev: [null, null, "none"], - willSyntheticBlur: !1 - }))); - br(this, so); - br(this, cc); - lr(this, "domContext"); - lr(this, "onkeydown", l => { - const _ = l.key; - J6.includes(_) || l.ctrlKey || l.metaKey || _ && x(et(this, hs)) && !x(et(this, hs)).test(_) && l.preventDefault() - }); - br(this, Bd, lt(() => ({ - position: "relative", - cursor: this.opts.disabled.current ? "default" : "text", - userSelect: "none", - WebkitUserSelect: "none", - pointerEvents: "none" - }))); - br(this, oh, lt(() => ({ - id: this.opts.id.current, - [Pv.root]: "", - style: x(et(this, Bd)), - ...this.attachment - }))); - br(this, lh, lt(() => ({ - style: { - position: "absolute", - inset: 0, - pointerEvents: "none" - } - }))); - br(this, Fd, lt(() => ({ - position: "absolute", - inset: 0, - width: et(this, so).willPushPwmBadge ? `calc(100% + ${et(this,so).PWM_BADGE_SPACE_WIDTH})` : "100%", - clipPath: et(this, so).willPushPwmBadge ? `inset(0 ${et(this,so).PWM_BADGE_SPACE_WIDTH} 0 0)` : void 0, - height: "100%", - display: "flex", - textAlign: this.opts.textAlign.current, - opacity: "1", - color: "transparent", - pointerEvents: "all", - background: "transparent", - caretColor: "transparent", - border: "0 solid transparent", - outline: "0 solid transparent", - boxShadow: "none", - lineHeight: "1", - letterSpacing: "-.5em", - fontSize: "var(--bits-pin-input-root-height)", - fontFamily: "monospace", - fontVariantNumeric: "tabular-nums" - }))); - br(this, ch, () => { - var we; - const l = et(this, ja).current, - _ = this.opts.ref.current; - if (!l || !_) return; - if (this.domContext.getActiveElement() !== l) { - oe(et(this, za), null), oe(et(this, qa), null); - return - } - const C = l.selectionStart, - L = l.selectionEnd, - F = l.selectionDirection ?? "none", - T = l.maxLength, - o = l.value, - $ = x(et(this, Ds)).prev; - let W = -1, - ie = -1, - pe; - if (o.length !== 0 && C !== null && L !== null) { - const Re = C === L, - Ae = C === o.length && o.length < T; - if (Re && !Ae) { - const Oe = C; - if (Oe === 0) W = 0, ie = 1, pe = "forward"; - else if (Oe === T) W = Oe - 1, ie = Oe, pe = "backward"; - else if (T > 1 && o.length > 1) { - let Ee = 0; - if ($[0] !== null && $[1] !== null) { - pe = Oe < $[0] ? "backward" : "forward"; - const Ne = $[0] === $[1] && $[0] < T; - pe === "backward" && !Ne && (Ee = -1) - } - W = Ee - Oe, ie = Ee + Oe + 1 - } - } - W !== -1 && ie !== -1 && W !== ie && ((we = et(this, ja).current) == null || we.setSelectionRange(W, ie, pe)) - } - const ye = W !== -1 ? W : C, - X = ie !== -1 ? ie : L, - Se = pe ?? F; - oe(et(this, za), ye, !0), oe(et(this, qa), X, !0), x(et(this, Ds)).prev = [ye, X, Se] - }); - lr(this, "oninput", l => { - const _ = l.currentTarget.value.slice(0, this.opts.maxLength.current); - if (_.length > 0 && x(et(this, hs)) && !x(et(this, hs)).test(_)) { - l.preventDefault(); - return - } - typeof et(this, lc).current == "string" && _.length < et(this, lc).current.length && this.domContext.getDocument().dispatchEvent(new Event("selectionchange")), this.opts.value.current = _ - }); - lr(this, "onfocus", l => { - const _ = et(this, ja).current; - if (_) { - const C = Math.min(_.value.length, this.opts.maxLength.current - 1), - L = _.value.length; - _.setSelectionRange(C, L), oe(et(this, za), C, !0), oe(et(this, qa), L, !0) - } - et(this, Ls).current = !0 - }); - lr(this, "onpaste", l => { - var ie, pe, ye, X; - const _ = et(this, ja).current; - if (!_) return; - const C = Se => { - const we = _.selectionStart === null ? void 0 : _.selectionStart, - Re = _.selectionEnd === null ? void 0 : _.selectionEnd, - Ae = we !== Re, - Oe = this.opts.value.current; - return (Ae ? Oe.slice(0, we) + Se + Oe.slice(Re) : Oe.slice(0, we) + Se + Oe.slice(we)).slice(0, this.opts.maxLength.current) - }, - L = Se => Se.length > 0 && x(et(this, hs)) && !x(et(this, hs)).test(Se); - if (!((ie = this.opts.pasteTransformer) != null && ie.current) && (!et(this, cc).isIOS || !l.clipboardData || !_)) { - const Se = C((pe = l.clipboardData) == null ? void 0 : pe.getData("text/plain")); - L(Se) && l.preventDefault(); - return - } - const F = ((ye = l.clipboardData) == null ? void 0 : ye.getData("text/plain")) ?? "", - T = (X = this.opts.pasteTransformer) != null && X.current ? this.opts.pasteTransformer.current(F) : F; - l.preventDefault(); - const o = C(T); - if (L(o)) return; - _.value = o, this.opts.value.current = o; - const $ = Math.min(o.length, this.opts.maxLength.current - 1), - W = o.length; - _.setSelectionRange($, W), oe(et(this, za), $, !0), oe(et(this, qa), W, !0) - }); - lr(this, "onmouseover", l => { - oe(et(this, oc), !0) - }); - lr(this, "onmouseleave", l => { - oe(et(this, oc), !1) - }); - lr(this, "onblur", l => { - if (x(et(this, Ds)).willSyntheticBlur) { - x(et(this, Ds)).willSyntheticBlur = !1; - return - } - et(this, Ls).current = !1 - }); - br(this, uh, lt(() => { - var l; - return { - id: this.opts.inputId.current, - style: x(et(this, Fd)), - autocomplete: this.opts.autocomplete.current || "one-time-code", - "data-pin-input-input": "", - "data-pin-input-input-mss": x(et(this, za)), - "data-pin-input-input-mse": x(et(this, qa)), - inputmode: this.opts.inputmode.current, - pattern: (l = x(et(this, hs))) == null ? void 0 : l.source, - maxlength: this.opts.maxLength.current, - value: this.opts.value.current, - disabled: Q4(this.opts.disabled.current), - onpaste: this.onpaste, - oninput: this.oninput, - onkeydown: this.onkeydown, - onmouseover: this.onmouseover, - onmouseleave: this.onmouseleave, - onfocus: this.onfocus, - onblur: this.onblur, - ...this.inputAttachment - } - })); - br(this, Nd, lt(() => Array.from({ - length: this.opts.maxLength.current - }).map((l, _) => { - const C = et(this, Ls).current && x(et(this, za)) !== null && x(et(this, qa)) !== null && (x(et(this, za)) === x(et(this, qa)) && _ === x(et(this, za)) || _ >= x(et(this, za)) && _ < x(et(this, qa))), - L = this.opts.value.current[_] !== void 0 ? this.opts.value.current[_] : null; - return { - char: L, - isActive: C, - hasFakeCaret: C && L === null - } - }))); - br(this, hh, lt(() => ({ - cells: x(et(this, Nd)), - isFocused: et(this, Ls).current, - isHovering: x(et(this, oc)) - }))); - var _; - this.opts = l, this.attachment = Va(this.opts.ref), this.domContext = new H4(l.ref), Jn(this, cc, { - value: this.opts.value, - isIOS: typeof window < "u" && ((_ = window == null ? void 0 : window.CSS) == null ? void 0 : _.supports("-webkit-touch-callout", "none")) - }), Jn(this, so, Y6({ - containerRef: this.opts.ref, - inputRef: et(this, ja), - isFocused: et(this, Ls), - pushPasswordManagerStrategy: this.opts.pushPasswordManagerStrategy, - domContext: this.domContext - })), Ii(() => { - const C = et(this, ja).current, - L = this.opts.ref.current; - if (!C || !L) return; - et(this, cc).value.current !== C.value && (this.opts.value.current = C.value), x(et(this, Ds)).prev = [C.selectionStart, C.selectionEnd, C.selectionDirection ?? "none"]; - const F = Su(this.domContext.getDocument(), "selectionchange", et(this, ch), { - capture: !0 - }); - et(this, ch).call(this), this.domContext.getActiveElement() === C && (et(this, Ls).current = !0), this.domContext.getElementById("pin-input-style") || Fr(this, Od, Iv).call(this); - const T = () => { - L && L.style.setProperty("--bits-pin-input-root-height", `${C.clientHeight}px`) - }; - T(); - const o = new ResizeObserver(T); - return o.observe(C), () => { - F(), o.disconnect() - } - }), oo([() => this.opts.value.current, () => et(this, ja).current], () => { - Q6(() => { - const C = et(this, ja).current; - if (!C) return; - C.dispatchEvent(new Event("input")); - const L = C.selectionStart, - F = C.selectionEnd, - T = C.selectionDirection ?? "none"; - L !== null && F !== null && (oe(et(this, za), L, !0), oe(et(this, qa), F, !0), x(et(this, Ds)).prev = [L, F, T]) - }, this.domContext) - }), Zr(() => { - const C = this.opts.value.current, - L = et(this, lc).current, - F = this.opts.maxLength.current, - T = this.opts.onComplete.current; - L !== void 0 && C !== L && L.length < F && C.length === F && T(C) - }) - } - static create(l) { - return new wm(l) - } - get rootProps() { - return x(et(this, oh)) - } - set rootProps(l) { - oe(et(this, oh), l) - } - get inputWrapperProps() { - return x(et(this, lh)) - } - set inputWrapperProps(l) { - oe(et(this, lh), l) - } - get inputProps() { - return x(et(this, uh)) - } - set inputProps(l) { - oe(et(this, uh), l) - } - get snippetProps() { - return x(et(this, hh)) - } - set snippetProps(l) { - oe(et(this, hh), l) - } -}; -ja = new WeakMap, oc = new WeakMap, Ls = new WeakMap, za = new WeakMap, qa = new WeakMap, lc = new WeakMap, hs = new WeakMap, Ds = new WeakMap, so = new WeakMap, cc = new WeakMap, Bd = new WeakMap, oh = new WeakMap, lh = new WeakMap, Fd = new WeakMap, Od = new WeakSet, Iv = function() { - const l = this.domContext.getDocument(), - _ = l.createElement("style"); - if (_.id = "pin-input-style", l.head.appendChild(_), _.sheet) { - const C = "background: transparent !important; color: transparent !important; border-color: transparent !important; opacity: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; -webkit-text-fill-color: transparent !important;"; - vu(_.sheet, "[data-pin-input-input]::selection { background: transparent !important; color: transparent !important; }"), vu(_.sheet, `[data-pin-input-input]:autofill { ${C} }`), vu(_.sheet, `[data-pin-input-input]:-webkit-autofill { ${C} }`), vu(_.sheet, "@supports (-webkit-touch-callout: none) { [data-pin-input-input] { letter-spacing: -.6em !important; font-weight: 100 !important; font-stretch: ultra-condensed; font-optical-sizing: none !important; left: -1px !important; right: 1px !important; } }"), vu(_.sheet, "[data-pin-input-input] + * { pointer-events: all !important; }") - } -}, ch = new WeakMap, uh = new WeakMap, Nd = new WeakMap, hh = new WeakMap; -let Uf = wm; -var dh; -const Tm = class Tm { - constructor(l) { - lr(this, "opts"); - lr(this, "attachment"); - br(this, dh, lt(() => ({ - id: this.opts.id.current, - [Pv.cell]: "", - "data-active": this.opts.cell.current.isActive ? "" : void 0, - "data-inactive": this.opts.cell.current.isActive ? void 0 : "", - ...this.attachment - }))); - this.opts = l, this.attachment = Va(this.opts.ref) - } - static create(l) { - return new Tm(l) - } - get props() { - return x(et(this, dh)) - } - set props(l) { - oe(et(this, dh), l) - } -}; -dh = new WeakMap; -let Zf = Tm; - -function Q6(b, l) { - const _ = l.setTimeout(b, 0), - C = l.setTimeout(b, 10), - L = l.setTimeout(b, 50); - return [_, C, L] -} - -function vu(b, l) { - try { - b.insertRule(l) - } catch { - console.error("pin input could not insert CSS rule:", l) - } -} -var eA = Ie("
                "); - -function tA(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "inputId", 19, () => `${Ua(_)}-input`), - F = Et(l, "ref", 15, null), - T = Et(l, "maxlength", 3, 6), - o = Et(l, "textalign", 3, "left"), - $ = Et(l, "inputmode", 3, "numeric"), - W = Et(l, "onComplete", 3, Mu), - ie = Et(l, "pushPasswordManagerStrategy", 3, "increase-width"), - pe = Et(l, "class", 3, ""), - ye = Et(l, "autocomplete", 3, "one-time-code"), - X = Et(l, "disabled", 3, !1), - Se = Et(l, "value", 15, ""), - we = Et(l, "onValueChange", 3, Mu), - Re = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "inputId", "ref", "maxlength", "textalign", "pattern", "inputmode", "onComplete", "pushPasswordManagerStrategy", "class", "children", "autocomplete", "disabled", "value", "onValueChange", "pasteTransformer"]); - const Ae = Uf.create({ - id: cr.with(() => C()), - ref: cr.with(() => F(), Je => F(Je)), - inputId: cr.with(() => L()), - autocomplete: cr.with(() => ye()), - maxLength: cr.with(() => T()), - textAlign: cr.with(() => o()), - disabled: cr.with(() => X()), - inputmode: cr.with(() => $()), - pattern: cr.with(() => l.pattern), - onComplete: cr.with(() => W()), - value: cr.with(() => Se(), Je => { - Se(Je), we()(Je) - }), - pushPasswordManagerStrategy: cr.with(() => ie()), - pasteTransformer: cr.with(() => l.pasteTransformer) - }), - Oe = lt(() => Da(Re, Ae.inputProps)), - Ee = lt(() => Da(Ae.rootProps, { - class: pe() - })), - Ne = lt(() => Da(Ae.inputWrapperProps, {})); - var ft = eA(); - er(ft, () => ({ - ...x(Ee) - })); - var ht = k(ft); - Ji(ht, () => l.children ?? fa, () => Ae.snippetProps); - var Xe = V(ht, 2); - er(Xe, () => ({ - ...x(Ne) - })); - var ct = k(Xe); - ea(ct), er(ct, () => ({ - ...x(Oe) - })), A(Xe), A(ft), H(b, ft), Pr() -} -var rA = Ie("
                "); - -function iA(b, l) { - const _ = ts(); - Sr(l, !0); - let C = Et(l, "id", 19, () => Ua(_)), - L = Et(l, "ref", 15, null), - F = Qt(l, ["$$slots", "$$events", "$$legacy", "id", "ref", "cell", "child", "children"]); - const T = Zf.create({ - id: cr.with(() => C()), - ref: cr.with(() => L(), ye => L(ye)), - cell: cr.with(() => l.cell) - }), - o = lt(() => Da(F, T.props)); - var $ = Jt(), - W = zt($); - { - var ie = ye => { - var X = Jt(), - Se = zt(X); - Ji(Se, () => l.child, () => ({ - props: x(o) - })), H(ye, X) - }, - pe = ye => { - var X = rA(); - er(X, () => ({ - ...x(o) - })); - var Se = k(X); - Ji(Se, () => l.children ?? fa), A(X), H(ye, X) - }; - Ue(W, ye => { - l.child ? ye(ie) : ye(pe, !1) - }) - } - H(b, $), Pr() -} - -function pc(...b) { - return Fg(Tu(b)) -} - -function nA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Et(l, "value", 15, ""), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "value", "class"]); - var F = Jt(), - T = zt(F); - { - let o = lt(() => pc("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", l.class)); - _n(T, () => T6, ($, W) => { - W($, lo({ - "data-slot": "command", - get class() { - return x(o) - } - }, () => L, { - get value() { - return C() - }, - set value(ie) { - C(ie) - }, - get ref() { - return _() - }, - set ref(ie) { - _(ie) - } - })) - }) - } - H(b, F), Pr() -} -var aA = Tr(''); - -function fc(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = aA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} - -function sA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("py-6 text-center text-sm", l.class)); - _n(F, () => S6, (o, $) => { - $(o, lo({ - "data-slot": "command-empty", - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - } - })) - }) - } - H(b, L), Pr() -} -var oA = Ie(" ", 1); - -function lA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "children", "heading", "value"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("text-foreground overflow-hidden p-1", l.class)), - o = lt(() => l.value ?? l.heading ?? `----${m6()}`); - _n(F, () => I6, ($, W) => { - W($, lo({ - "data-slot": "command-group", - get class() { - return x(T) - }, - get value() { - return x(o) - } - }, () => C, { - get ref() { - return _() - }, - set ref(ie) { - _(ie) - }, - children: (ie, pe) => { - var ye = oA(), - X = zt(ye); - { - var Se = Re => { - var Ae = Jt(), - Oe = zt(Ae); - _n(Oe, () => A6, (Ee, Ne) => { - Ne(Ee, { - class: "text-muted-foreground px-2 py-1.5 text-xs font-medium", - children: (ft, ht) => { - fi(); - var Xe = Fn(); - Ge(() => fe(Xe, l.heading)), H(ft, Xe) - }, - $$slots: { - default: !0 - } - }) - }), H(Re, Ae) - }; - Ue(X, Re => { - l.heading && Re(Se) - }) - } - var we = V(X, 2); - _n(we, () => z6, (Re, Ae) => { - Ae(Re, { - get children() { - return l.children - } - }) - }), H(ie, ye) - }, - $$slots: { - default: !0 - } - })) - }) - } - H(b, L), Pr() -} - -function cA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("aria-selected:bg-base-300 aria-selected:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", l.class)); - _n(F, () => F6, (o, $) => { - $(o, lo({ - "data-slot": "command-item", - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - } - })) - }) - } - H(b, L), Pr() -} -var uA = Tr(''); - -function hA(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = uA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var dA = Ie('
                '); - -function pA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Et(l, "value", 15, ""), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "value"]); - var F = dA(), - T = k(F); - hA(T, { - class: "size-5 opacity-50" - }); - var o = V(T, 2); - { - let $ = lt(() => pc("placeholder:text-muted-foreground outline-hidden flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50", l.class)); - _n(o, () => D6, (W, ie) => { - ie(W, lo({ - "data-slot": "command-input", - get class() { - return x($) - } - }, () => L, { - get ref() { - return _() - }, - set ref(pe) { - _(pe) - }, - get value() { - return C() - }, - set value(pe) { - C(pe) - } - })) - }) - } - A(F), H(b, F), Pr() -} - -function fA(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => pc("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden", l.class)); - _n(F, () => N6, (o, $) => { - $(o, lo({ - "data-slot": "command-list", - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - } - })) - }) - } - H(b, L), Pr() -} -var mA = Tr(''); - -function _A(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = mA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var gA = Ie(" ", 1), - vA = Ie(' ', 1), - yA = Ie(' '), - xA = Ie(" ", 1), - bA = Ie(" ", 1), - wA = (b, l) => { - l(0) - }, - TA = Ie(''), - CA = Ie('
                '); - -function wg(b, l) { - Sr(l, !0); - let _ = Et(l, "countryId", 15, 0), - C = Et(l, "dropdownDirection", 3, "right"), - L = nt(null), - F = nt(null), - T = nt(""); - - function o() { - Mg().then(() => { - var Ee; - (Ee = document.activeElement) == null || Ee.blur(), oe(T, "") - }) - } - var $ = CA(), - W = k($), - ie = k(W), - pe = k(ie); - { - var ye = Ee => { - var Ne = gA(), - ft = zt(Ne), - ht = k(ft, !0); - A(ft); - var Xe = V(ft, 2); - _A(Xe, { - class: "size-3.5" - }), Ge(ct => fe(ht, ct), [() => Vg()]), H(Ee, Ne) - }, - X = Ee => { - const Ne = lt(() => ds(_())); - var ft = vA(), - ht = zt(ft), - Xe = k(ht, !0); - A(ht); - var ct = V(ht); - Ge(() => { - fe(Xe, x(Ne).flag), fe(ct, ` ${x(Ne).name??""}`) - }), H(Ee, ft) - }; - Ue(pe, Ee => { - _() === 0 ? Ee(ye) : Ee(X, !1) - }) - } - A(ie); - var Se = V(ie, 2); - let we; - var Re = k(Se); - _n(Re, () => nA, (Ee, Ne) => { - Ne(Ee, { - children: (ft, ht) => { - var Xe = bA(), - ct = zt(Xe); - _n(ct, () => pA, (Be, st) => { - st(Be, { - placeholder: "Country", - get ref() { - return x(L) - }, - set ref(it) { - oe(L, it) - }, - get value() { - return x(T) - }, - set value(it) { - oe(T, it, !0) - } - }) - }); - var Je = V(ct, 2); - _n(Je, () => fA, (Be, st) => { - st(Be, { - children: (it, Qe) => { - var ke = xA(), - vt = zt(ke); - _n(vt, () => sA, (te, _e) => { - _e(te, { - children: (ne, Pe) => { - fi(); - var Me = Fn(); - Ge(at => fe(Me, at), [() => b2()]), H(ne, Me) - }, - $$slots: { - default: !0 - } - }) - }); - var Q = V(vt, 2); - _n(Q, () => lA, (te, _e) => { - _e(te, { - children: (ne, Pe) => { - var Me = Jt(), - at = zt(Me); - nn(at, 17, () => $n.countries, We => We.id, (We, Ct) => { - var _t = Jt(), - xt = zt(_t); - _n(xt, () => cA, (tt, pt) => { - pt(tt, { - get value() { - return x(Ct).name - }, - onSelect: () => { - _(x(Ct).id), o() - }, - children: (It, ut) => { - var bt = yA(), - wt = k(bt), - dt = k(wt, !0); - A(wt); - var Lt = V(wt); - A(bt), Ge(() => { - fe(dt, x(Ct).flag), fe(Lt, ` ${x(Ct).name??""}`) - }), H(It, bt) - }, - $$slots: { - default: !0 - } - }) - }), H(We, _t) - }), H(ne, Me) - }, - $$slots: { - default: !0 - } - }) - }), H(it, ke) - }, - $$slots: { - default: !0 - } - }) - }), H(ft, Xe) - }, - $$slots: { - default: !0 - } - }) - }), A(Se), A(W); - var Ae = V(W, 2); - { - var Oe = Ee => { - var Ne = TA(); - Ne.__click = [wA, _]; - var ft = k(Ne); - fc(ft, { - class: "size-3.5" - }), A(Ne), H(Ee, Ne) - }; - Ue(Ae, Ee => { - _() != 0 && Ee(Oe) - }) - } - A($), ps($, Ee => oe(F, Ee), () => x(F)), Ge(Ee => we = Or(Se, 1, "dropdown-content menu bg-base-100 rounded-box z-1 border-base-content/10 w-52 rounded-lg border py-1 shadow-sm", null, we, Ee), [() => ({ - "right-1": C() === "left" - })]), an("focus", ie, () => { - x(L).focus() - }), H(b, $), Pr() -} -Wi(["click"]); -var SA = Tr(''); - -function PA(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = SA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var IA = Tr(''), - MA = Tr(''); - -function $f(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = IA(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = MA(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var AA = Ie(''), - kA = Ie('
                '), - EA = Ie('
                '), - zA = (b, l, _) => { - l.onvisitclick({ - lat: x(_).lastLatitude, - lng: x(_).lastLongitude - }) - }, - LA = Ie(' '), - DA = Ie('

                '), - RA = Ie(' '), - BA = Ie('

                '), - FA = Ie(' '), - OA = Ie(" "), - NA = Ie('
                '), - jA = Ie('

                '), - qA = Ie(' '), - VA = Ie('

                '), - UA = Ie('
                '), - ZA = Ie('
                ', 1); - -function $A(b, l) { - Sr(l, !0); - const _ = []; - let C = nt(1e3); - const L = lt(() => x(C) <= 640); - let F = nt("today"), - T = { - regions: { - label: UT(), - icon: Wf - }, - countries: { - label: GT(), - icon: PA - }, - players: { - label: Xg(), - icon: Xd - }, - alliances: { - label: Kg(), - icon: Kd - } - }, - o = nt("regions"), - $ = nt(0), - W = zn({ - players: {}, - alliances: {}, - regions: {}, - countries: {} - }), - ie = lt(() => { - var Xe, ct, Je; - return x(o) === "regions" ? (ct = (Xe = W[x(o)][x($)]) == null ? void 0 : Xe[x(F)]) == null ? void 0 : ct.entries : (Je = W[x(o)][x(F)]) == null ? void 0 : Je.entries - }); - const pe = 5 * 1e3; - Zr(() => { - var Be; - if (!l.open) return; - const Xe = x(F), - ct = x(o), - Je = x($); - ct === "players" && (!W[ct][Xe] || Date.now() - W[ct][Xe].time > pe) ? ni.leaderboardPlayers(Xe).then(st => { - W[ct][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) : ct === "alliances" && (!W[ct][Xe] || Date.now() - W[ct][Xe].time > pe) ? ni.leaderboardAlliances(Xe).then(st => { - W[ct][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) : ct === "countries" && (!W[ct][Xe] || Date.now() - W[ct][Xe].time > pe) ? ni.leaderboardCountries(Xe).then(st => { - W[ct][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) : ct === "regions" && (!((Be = W[ct][Je]) != null && Be[Xe]) || Date.now() - W[ct][Je][Xe].time > pe) && ni.leaderboardRegions(Xe, Je).then(st => { - W[ct][Je] || (W[ct][Je] = {}), W[ct][Je][Xe] = { - time: Date.now(), - entries: st - } - }).catch(st => qr.error(st.message)) - }); - var ye = ZA(), - X = zt(ye); - nn(X, 21, () => Object.entries(T), ([Xe, { - label: ct, - icon: Je - }]) => Xe, (Xe, ct) => { - var Je = lt(() => Ag(x(ct), 2)); - let Be = () => x(Je)[0], - st = () => x(Je)[1].label, - it = () => x(Je)[1].icon; - const Qe = lt(it); - var ke = AA(), - vt = k(ke); - ea(vt); - var Q, te = V(vt, 2); - _n(te, () => x(Qe), (ne, Pe) => { - Pe(ne, { - get this() { - return it() - }, - class: "mr-1 size-5 max-sm:hidden" - }) - }); - var _e = V(te); - A(ke), Ge(() => { - zr(vt, "aria-label", st()), Q !== (Q = Be()) && (vt.value = (vt.__value = Be()) ?? ""), fe(_e, ` ${st()??""}`) - }), Vd(_, [], vt, () => (Be(), x(o)), ne => oe(o, ne)), H(Xe, ke) - }), A(X); - var Se = V(X, 2), - we = k(Se); - sm(we, { - get value() { - return x(F) - }, - set value(Xe) { - oe(F, Xe, !0) - } - }); - var Re = V(we, 2); - { - var Ae = Xe => { - wg(Xe, { - dropdownDirection: "left", - get countryId() { - return x($) - }, - set countryId(ct) { - oe($, ct, !0) - } - }) - }; - Ue(Re, Xe => { - x(o) === "regions" && !x(L) && Xe(Ae) - }) - } - A(Se); - var Oe = V(Se, 2); - { - var Ee = Xe => { - var ct = kA(), - Je = k(ct); - wg(Je, { - get countryId() { - return x($) - }, - set countryId(Be) { - oe($, Be, !0) - } - }), A(ct), H(Xe, ct) - }; - Ue(Oe, Xe => { - x(o) === "regions" && x(L) && Xe(Ee) - }) - } - var Ne = V(Oe, 2); - { - var ft = Xe => { - var ct = EA(), - Je = k(ct), - Be = V(Je); - { - var st = Qe => { - var ke = Fn(); - Ge(vt => fe(ke, vt), [() => Wd().toLowerCase()]), H(Qe, ke) - }, - it = Qe => { - var ke = Jt(), - vt = zt(ke); - { - var Q = _e => { - var ne = Fn(); - Ge(Pe => fe(ne, Pe), [() => Qf()]), H(_e, ne) - }, - te = _e => { - var ne = Jt(), - Pe = zt(ne); - { - var Me = at => { - var We = Fn(); - Ge(Ct => fe(We, Ct), [() => em()]), H(at, We) - }; - Ue(Pe, at => { - x(F) === "month" && at(Me) - }, !0) - } - H(_e, ne) - }; - Ue(vt, _e => { - x(F) === "week" ? _e(Q) : _e(te, !1) - }, !0) - } - H(Qe, ke) - }; - Ue(Be, Qe => { - x(F) === "today" ? Qe(st) : Qe(it, !1) - }) - } - A(ct), Ge(Qe => fe(Je, `${Qe??""} `), [() => Jf()]), H(Xe, ct) - }, - ht = Xe => { - var ct = Jt(), - Je = zt(ct); - { - var Be = it => { - var Qe = Jt(), - ke = zt(Qe); - { - var vt = te => { - const _e = lt(() => x(ie)); - var ne = DA(), - Pe = k(ne), - Me = k(Pe), - at = V(k(Me)), - We = k(at, !0); - A(at); - var Ct = V(at), - _t = k(Ct), - xt = V(_t, 2), - tt = V(xt), - pt = k(tt); - $f(pt, { - class: "text-base-content/50 mb-0.5 ml-1 inline size-4" - }), A(tt), A(Ct), fi(), A(Me), A(Pe); - var It = V(Pe); - nn(It, 31, () => x(_e), ut => ut.id, (ut, bt, wt) => { - const dt = lt(() => ds(x(bt).countryId)); - var Lt = LA(), - Xt = k(Lt), - Yt = k(Xt, !0); - A(Xt); - var nr = V(Xt), - ar = k(nr), - Ft = k(ar, !0); - A(ar); - var dr = V(ar, 2), - _r = k(dr), - Ir = V(_r), - jr = k(Ir); - A(Ir), A(dr), A(nr); - var ur = V(nr), - Mr = k(ur, !0); - A(ur); - var Ar = V(ur), - kr = k(Ar); - kr.__click = [zA, l, bt]; - var Nr = k(kr, !0); - A(kr), A(Ar), A(Lt), Ge((ce, O, q) => { - fe(Yt, x(wt) + 1), zr(ar, "data-tip", x(dt).name), fe(Ft, x(dt).flag), Or(dr, 1, `font-semibold ${ce??""}`), fe(_r, `${x(bt).name??""} `), fe(jr, ``), fe(Mr, O), fe(Nr, q) - }, [() => Zn(x(bt).cityId), () => x(bt).pixelsPainted.toLocaleString("en-US"), () => c3()]), Zo(Lt, () => $o, () => ({ - duration: 200 - })), H(ut, Lt) - }), A(It), A(ne), Ge((ut, bt, wt, dt) => { - fe(We, ut), fe(_t, `${bt??""} `), fe(xt, `${wt??""} `), zr(tt, "data-tip", dt) - }, [() => QT(), () => Ql(), () => ec().toLowerCase(), () => s3()]), H(te, ne) - }, - Q = te => { - var _e = Jt(), - ne = zt(_e); - { - var Pe = at => { - var We = BA(), - Ct = k(We), - _t = k(Ct), - xt = V(k(_t)), - tt = k(xt, !0); - A(xt); - var pt = V(xt), - It = k(pt), - ut = V(It, 2), - bt = V(ut), - wt = k(bt); - $f(wt, { - class: "text-base-content/50 mb-0.5 ml-1 inline size-4" - }), A(bt), A(pt), A(_t), A(Ct); - var dt = V(Ct); - nn(dt, 31, () => x(ie), Lt => Lt.id, (Lt, Xt, Yt) => { - const nr = lt(() => ds(x(Xt).id)); - var ar = RA(), - Ft = k(ar), - dr = k(Ft, !0); - A(Ft); - var _r = V(Ft), - Ir = k(_r), - jr = k(Ir, !0); - A(Ir); - var ur = V(Ir, 2), - Mr = k(ur, !0); - A(ur), A(_r); - var Ar = V(_r), - kr = k(Ar, !0); - A(Ar), A(ar), Ge((Nr, ce) => { - fe(dr, x(Yt) + 1), zr(Ir, "data-tip", x(nr).name), fe(jr, x(nr).flag), Or(ur, 1, `font-semibold ${Nr??""}`), fe(Mr, x(nr).name), fe(kr, ce) - }, [() => Zn(x(Xt).id), () => x(Xt).pixelsPainted.toLocaleString("en-US")]), Zo(ar, () => $o, () => ({ - duration: 200 - })), H(Lt, ar) - }), A(dt), A(We), Ge((Lt, Xt, Yt, nr) => { - fe(tt, Lt), fe(It, `${Xt??""} `), fe(ut, `${Yt??""} `), zr(bt, "data-tip", nr) - }, [() => Vg(), () => Ql(), () => ec().toLowerCase(), () => N3()]), H(at, We) - }, - Me = at => { - var We = Jt(), - Ct = zt(We); - { - var _t = tt => { - const pt = lt(() => x(ie)); - var It = jA(), - ut = k(It), - bt = k(ut), - wt = V(k(bt)), - dt = k(wt, !0); - A(wt); - var Lt = V(wt), - Xt = k(Lt), - Yt = V(Xt, 2, !0); - A(Lt), A(bt), A(ut); - var nr = V(ut); - nn(nr, 31, () => x(pt), ar => ar.id, (ar, Ft, dr) => { - const _r = lt(() => { - var xe; - return ((xe = Dt.data) == null ? void 0 : xe.id) === x(Ft).id - }); - var Ir = NA(); - let jr; - var ur = k(Ir), - Mr = k(ur, !0); - A(ur); - var Ar = V(ur), - kr = k(Ar), - Nr = k(kr); - es(Nr, { - class: "size-8 border sm:size-10", - get userId() { - return x(Ft).id - }, - get pictureUrl() { - return x(Ft).picture - } - }); - var ce = V(Nr, 2), - O = k(ce), - q = k(O), - G = V(q), - K = k(G); - A(G), A(O); - var le = V(O, 2); - { - var ve = xe => { - const At = lt(() => ds(x(Ft).equippedFlag)); - var Pt = FA(), - kt = k(Pt, !0); - A(Pt), Ge(() => { - zr(Pt, "data-tip", x(At).name), fe(kt, x(At).flag) - }), H(xe, Pt) - }; - Ue(le, xe => { - x(Ft).equippedFlag && xe(ve) - }) - } - var Le = V(le, 2); - { - var Ce = xe => { - ph(xe, { - get username() { - return x(Ft).discord - } - }) - }; - Ue(Le, xe => { - x(Ft).discord && xe(Ce) - }) - } - var Ze = V(Le, 2); - { - var ot = xe => { - var At = OA(), - Pt = k(At, !0); - A(At), Ge((kt, Wt) => { - Or(At, 1, `badge badge-sm ml-0.5 border-0 ${kt??""} ${Wt??""}`), fe(Pt, x(Ft).allianceName) - }, [() => Kf(x(Ft).allianceId), () => Zn(x(Ft).allianceId)]), H(xe, At) - }; - Ue(Ze, xe => { - "allianceName" in x(Ft) && x(Ft).allianceName && xe(ot) - }) - } - A(ce), A(kr), A(Ar); - var Ye = V(Ar), - Ot = k(Ye, !0); - A(Ye), A(Ir), Ge((xe, At, Pt) => { - jr = Or(Ir, 1, "", null, jr, xe), fe(Mr, x(dr) + 1), Or(O, 1, `font-semibold max-sm:ml-2 ${At??""} flex gap-1`), fe(q, `${x(Ft).name??""} `), fe(K, `#${x(Ft).id??""}`), fe(Ot, Pt) - }, [() => ({ - "bg-base-200": x(_r) - }), () => Zn(x(Ft).id), () => x(Ft).pixelsPainted.toLocaleString("en-US")]), Zo(Ir, () => $o, () => ({ - duration: 200 - })), H(ar, Ir) - }), A(nr), A(It), Ge((ar, Ft, dr) => { - fe(dt, ar), fe(Xt, `${Ft??""} `), fe(Yt, dr) - }, [() => tm(), () => Ql(), () => ec().toLowerCase()]), H(tt, It) - }, - xt = tt => { - var pt = Jt(), - It = zt(pt); - { - var ut = bt => { - var wt = VA(), - dt = k(wt), - Lt = k(dt), - Xt = V(k(Lt)), - Yt = k(Xt, !0); - A(Xt); - var nr = V(Xt), - ar = k(nr), - Ft = V(ar, 2, !0); - A(nr), A(Lt), A(dt); - var dr = V(dt); - nn(dr, 31, () => x(ie), _r => _r.id, (_r, Ir, jr) => { - const ur = lt(() => { - var le; - return ((le = Dt.data) == null ? void 0 : le.allianceId) === x(Ir).id - }); - var Mr = qA(); - let Ar; - var kr = k(Mr), - Nr = k(kr, !0); - A(kr); - var ce = V(kr), - O = k(ce), - q = k(O, !0); - A(O), A(ce); - var G = V(ce), - K = k(G, !0); - A(G), A(Mr), Ge((le, ve, Le) => { - Ar = Or(Mr, 1, "", null, Ar, le), fe(Nr, x(jr) + 1), Or(O, 1, `font-semibold ${ve??""}`), fe(q, x(Ir).name), fe(K, Le) - }, [() => ({ - "bg-base-200": x(ur) - }), () => Zn(x(Ir).id), () => x(Ir).pixelsPainted.toLocaleString("en-US")]), Zo(Mr, () => $o, () => ({ - duration: 200 - })), H(_r, Mr) - }), A(dr), A(wt), Ge((_r, Ir, jr) => { - fe(Yt, _r), fe(ar, `${Ir??""} `), fe(Ft, jr) - }, [() => Gd(), () => Ql(), () => ec().toLowerCase()]), H(bt, wt) - }; - Ue(It, bt => { - x(o) === "alliances" && bt(ut) - }, !0) - } - H(tt, pt) - }; - Ue(Ct, tt => { - x(o) === "players" ? tt(_t) : tt(xt, !1) - }, !0) - } - H(at, We) - }; - Ue(ne, at => { - x(o) === "countries" ? at(Pe) : at(Me, !1) - }, !0) - } - H(te, _e) - }; - Ue(ke, te => { - x(o) === "regions" ? te(vt) : te(Q, !1) - }) - } - H(it, Qe) - }, - st = it => { - var Qe = UA(); - H(it, Qe) - }; - Ue(Je, it => { - x(ie) ? it(Be) : it(st, !1) - }, !0) - } - H(Xe, ct) - }; - Ue(Ne, Xe => { - x(ie) && x(ie).length === 0 ? Xe(ft) : Xe(ht, !1) - }) - } - $d("innerWidth", Xe => oe(C, Xe, !0)), H(b, ye), Pr() -} -Wi(["click"]); -var GA = Tr(''); - -function Mv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = GA(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var HA = Ie(' '); - -function WA(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const pe = ye => { - ye.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", pe), () => document.removeEventListener("keydown", pe) - }); - var C = HA(), - L = k(C), - F = V(k(L), 2), - T = k(F); - Mv(T, { - class: "size-6" - }); - var o = V(T, 2), - $ = k(o, !0); - A(o), A(F); - var W = V(F, 2), - ie = k(W); - $A(ie, { - get onvisitclick() { - return l.onvisitclick - }, - get open() { - return _() - } - }), A(W), A(L), fi(2), A(C), On(C, () => pe => { - Zr(() => { - _() ? pe.show() : pe.close() - }) - }), Ge(pe => fe($, pe), [() => Yf()]), an("close", C, () => _(!1)), H(b, C), Pr() -} -var XA = Ie("
                "), - KA = Ie(' '); - -function YA(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - Ii(() => { - const o = $ => { - $.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o) - }); - var C = KA(), - L = k(C), - F = V(k(L), 2); - { - var T = o => { - var $ = XA(), - W = k($); - xx(W, {}), A($), En(2, $, () => Qn, () => ({ - duration: 300 - })), H(o, $) - }; - Ue(F, o => { - _() && o(T) - }) - } - A(L), fi(2), A(C), On(C, () => o => { - Zr(() => { - _() ? o.show() : o.close() - }) - }), an("close", C, () => _(!1)), H(b, C), Pr() -} -var JA = (b, l, _) => { - localStorage.setItem(x(l), "true"), oe(_, !1) - }, - QA = Ie('new'), - ek = Ie("
                "); - -function _f(b, l) { - Sr(l, !0); - let _ = nt(!1); - const C = lt(() => "showed:" + l.key); - Ii(() => { - oe(_, !localStorage.getItem(x(C))) - }); - var L = ek(); - L.__click = [JA, C, _]; - var F = k(L); - { - var T = $ => { - var W = QA(); - En(3, W, () => Qn, () => ({ - duration: 200 - })), H($, W) - }; - Ue(F, $ => { - x(_) && $(T) - }) - } - var o = V(F, 2); - Ji(o, () => l.children), A(L), Ge(() => Or(L, 1, `indicator ${l.class??""}`)), H(b, L), Pr() -} -Wi(["click"]); -// -var tk = Ie("

                " + Text1() + "

                "); - -function rk(b, l) { - Sr(l, !1), Og(); - var _ = tk(), - C = V(k(_), 2); - A(_), Ge(L => fe(C, ` `+Text2()+` ${L??""}`), [() => zd(Dt.cooldown ?? 0)]), H(b, _), Pr() -} -var ik = Ie(""); - -function Av(b, l) { - Sr(l, !0); - let _ = Et(l, "width", 15, 0), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "value", "fontSize", "color", "weight", "mono", "width"]), - L = lt(() => Math.ceil(l.fontSize)), - F = nt(null); - const T = window.devicePixelRatio ?? 1, - o = '"Geist", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"', - $ = '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'; - Zr(() => { - const ie = x(F).getContext("2d"); - ie.textBaseline = "top", ie.font = `${l.weight??"normal"} ${l.fontSize}px ${l.mono?$:o}`, ie.fillStyle = l.color ?? "#394e6a", ie.setTransform(T, 0, 0, T, 0, 0), ie.clearRect(0, 0, _(), x(L)), ie.fillText(l.value, 0, 0); - const pe = ie.measureText(l.value); - _(Math.ceil(pe.actualBoundingBoxRight)), oe(L, pe.actualBoundingBoxDescent) - }); - var W = ik(); - er(W, () => ({ - width: _() * T, - height: x(L) * T, - style: `width: ${_()??""}px; height: ${x(L)??""}px`, - ...C - })), ps(W, ie => oe(F, ie), () => x(F)), H(b, W), Pr() -} -var nk = Ie(' '), - ak = Ie(' '), - sk = Ie(''), - ok = Ie(''); - -function kv(b, l) { - Sr(l, !0); - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "loading", "charges"]), - C = nt(0); - var L = ok(); - er(L, () => ({ - ..._, - class: `btn btn-primary btn-lg sm:btn-xl relative ${l.class??""}` - })); - var F = k(L); - fh(F, { - class: "size-6" - }); - var T = V(F, 2), - o = k(T), - $ = V(o); - { - var W = ye => { - const X = lt(() => `${Math.floor(l.charges)}/${Dt.data.charges.max}`); - var Se = ak(), - we = k(Se), - Re = k(we); - { - let Ee = lt(() => l.disabled ? "#394e6a33" : "#ffffff"); - Av(Re, { - weight: 600, - fontSize: 16, - get value() { - return x(X) - }, - get color() { - return x(Ee) - }, - get width() { - return x(C) - }, - set width(Ne) { - oe(C, Ne, !0) - } - }) - } - A(we); - var Ae = V(we, 2); - { - var Oe = Ee => { - var Ne = nk(), - ft = k(Ne); - A(Ne), Ge(ht => fe(ft, `(${ht??""})`), [() => zd(Dt.cooldown)]), H(Ee, Ne) - }; - Ue(Ae, Ee => { - l.charges < Dt.data.charges.max && Dt.cooldown !== void 0 && Ee(Oe) - }) - } - A(Se), Ge(Ee => uc(we, `width: ${Ee??""}px`), [() => (Math.floor(x(C) / 5) + 1) * 5]), H(ye, Se) - }; - Ue($, ye => { - l.charges !== void 0 && Dt.data && ye(W) - }) - } - A(T); - var ie = V(T, 2); - { - var pe = ye => { - var X = sk(); - H(ye, X) - }; - Ue(ie, ye => { - l.loading && ye(pe) - }) - } - A(L), Ge(ye => fe(o, `${ye??""} `), [() => Zg()]), H(b, L), Pr() -} -const lk = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABVQTFRFAAAASkKEenHEta7xWmmLi5y0v8vc+SuCVQAAAAF0Uk5TAEDm2GYAAAA/SURBVHjaXcjBDcAwDMNAUW28/8hF0MCIzN9RV7aVfuxp+IGPe+AdPQRpFaRrgcNrn/Bb4LAE4W5aNb3TXUofoSgBYpzN5I4AAAAASUVORK5CYII=", - ck = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC", - uk = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC", - hk = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAABVJREFUeNpjYGA48x8DYwoB1Q0RlQDDCVmniJ241gAAAABJRU5ErkJggg=="; -class dk { - constructor(l) { - lr(this, "gm"); - lr(this, "opacity", 1); - lr(this, "id", `paint-preview-${Math.random()}`); - lr(this, "tiles", new Map); - this.input = l, this.gm = new hc(this.input.tileSize) - } - place([l, _], C) { - const { - tile: L, - pixel: F - } = this.gm.latLonToTileAndPixel(l, _, this.input.tileZoom), T = this.getTileKey(L[0], L[1]); - let o = this.tiles.get(T); - if (!o) { - const $ = this.gm.tileBoundsLatLon(L[0], L[1], this.input.tileZoom), - W = rm($, !0), - ie = new pk({ - coordinates: W, - id: `${this.id}-${T}`, - layerPaint: { - "raster-opacity": this.opacity, - "raster-resampling": "nearest" - }, - tileSize: this.input.tileSize, - beforeLayerId: this.input.beforeLayerId - }); - ie.addTo(this.input.map), this.tiles.set(T, ie), o = ie - } - o.place(F[0], this.input.tileSize - F[1] - 1, C) - } - clear() { - const l = this.input.map; - for (const _ of this.tiles.values()) _.removeFrom(l), _.removeDOM(); - this.tiles.clear() - } - clearAndPlace(l, _) { - this.clear(), this.place(l, _) - } - remove([l, _]) { - const { - tile: C, - pixel: L - } = this.gm.latLonToTileAndPixel(l, _, this.input.tileZoom), F = this.getTileKey(C[0], C[1]), T = this.tiles.get(F); - T && T.remove(L[0], this.input.tileSize - L[1] - 1) - } - setCanvasOpacity(l) { - this.opacity = l; - for (const _ of this.tiles.values()) _.setOpacity(l) - } - getTileKey(l, _) { - return `${l},${_}` - } -} -class pk { - constructor(l) { - lr(this, "canvas"); - lr(this, "maps", new Set); - this.input = l; - const _ = this.input.tileSize; - this.canvas = document.createElement("canvas"), this.canvas.width = _, this.canvas.height = _ - } - place(l, _, C) { - var T; - const L = ((T = $n.colors) == null ? void 0 : T[C]) ?? $n.colors[0], - F = this.canvas.getContext("2d"); - if (F) { - const o = F.createImageData(1, 1), - [$, W, ie] = L.rgb, - pe = C === 0 ? 0 : 255; - o.data[0] = $, o.data[1] = W, o.data[2] = ie, o.data[3] = pe, F.putImageData(o, l, _) - } - } - remove(l, _) { - const C = this.canvas.getContext("2d"); - C && C.clearRect(l, _, 1, 1) - } - addTo(l) { - const _ = this.input.id; - l.getSource(_) || l.addSource(_, { - type: "canvas", - canvas: this.canvas, - coordinates: this.input.coordinates - }), l.getLayer(_) || (l.addLayer({ - id: _, - type: "raster", - source: _, - paint: this.input.layerPaint - }), this.input.beforeLayerId && l.moveLayer(_, this.input.beforeLayerId)), this.maps.add(l) - } - removeFrom(l) { - const { - id: _ - } = this.input; - l.getLayer(_) && l.removeLayer(_), l.getSource(_) && l.removeSource(_), this.maps.delete(l) - } - removeDOM() { - this.canvas.remove() - } - setOpacity(l) { - for (const _ of this.maps.values()) _.setPaintProperty(this.input.id, "raster-opacity", l) - } -} -var fk = Tr(''); - -function mk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = fk(); - er(C, () => ({ - viewBox: "0 0 24 24", - fill: "currentColor", - xmlns: "http://www.w3.org/2000/svg", - ..._ - })), H(b, C) -} -var _k = Tr(''); - -function gk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = _k(); - er(C, () => ({ - viewBox: "0 0 24 24", - fill: "currentColor", - xmlns: "http://www.w3.org/2000/svg", - ..._ - })), H(b, C) -} -var vk = Ie("
                "); - -function Kl(b, l) { - Sr(l, !0); - var _ = vk(), - C = k(_); - Ji(C, () => l.children ?? fa), A(_), Ge(() => Or(_, 1, `bg-base-100/60 border-base-content/20 -top-15 pointer-events-none absolute left-1/2 line-clamp-1 flex w-max -translate-x-1/2 select-none items-center gap-1 rounded-full border-2 px-3 py-1.5 ${l.class??""}`)), H(b, _), Pr() -} -var yk = Ie('
                '), - xk = Ie("
                "); - -function hm(b, l) { - Sr(l, !0); - const _ = Et(l, "size", 3, 10), - C = Et(l, "x", 19, () => [-.5, .5]), - L = Et(l, "y", 19, () => [.25, 1]), - F = Et(l, "duration", 3, 2e3), - T = Et(l, "infinite", 3, !1), - o = Et(l, "delay", 19, () => [0, 50]), - $ = Et(l, "colorRange", 19, () => [0, 360]), - W = Et(l, "colorArray", 19, () => []), - ie = Et(l, "amount", 3, 50), - pe = Et(l, "iterationCount", 3, 1), - ye = Et(l, "fallDistance", 3, "100px"), - X = Et(l, "rounded", 3, !1), - Se = Et(l, "cone", 3, !1), - we = Et(l, "noGravity", 3, !1), - Re = Et(l, "xSpread", 3, .15), - Ae = Et(l, "destroyOnComplete", 3, !0), - Oe = Et(l, "disableForReducedMotion", 3, !1); - let Ee = nt(!1); - Ii(() => { - !Ae() || T() || typeof pe() == "string" || setTimeout(() => oe(Ee, !0), (F() + o()[1]) * pe()) - }); - - function Ne(Je, Be) { - return Math.random() * (Be - Je) + Je - } - - function ft() { - return W().length ? W()[Math.round(Math.random() * (W().length - 1))] : `hsl(${Math.round(Ne($()[0],$()[1]))}, 75%, 50%)` - } - var ht = Jt(), - Xe = zt(ht); - { - var ct = Je => { - var Be = xk(); - let st; - nn(Be, 21, () => ({ - length: ie() - }), Zd, (it, Qe) => { - var ke = yk(); - Ge((vt, Q, te, _e, ne, Pe, Me, at, We, Ct, _t) => uc(ke, ` - --color: ${vt??""}; - --skew: ${Q??""}deg,${te??""}deg; - --rotation-xyz: ${_e??""}, ${ne??""}, ${Pe??""}; - --rotation-deg: ${Me??""}deg; - --translate-y-multiplier: ${at??""}; - --translate-x-multiplier: ${We??""}; - --scale: ${Ct??""}; - --transition-delay: ${_t??""}ms; - --transition-duration: ${T()?`calc(${F()}ms * var(--scale))`:`${F()}ms`};`), [ft, () => Ne(-45, 45), () => Ne(-45, 45), () => Ne(-10, 10), () => Ne(-10, 10), () => Ne(-10, 10), () => Ne(0, 360), () => Ne(L()[0], L()[1]), () => Ne(C()[0], C()[1]), () => .1 * Ne(2, 10), () => Ne(o()[0], o()[1])]), H(it, ke) - }), A(Be), Ge(it => { - st = Or(Be, 1, "confetti-holder svelte-15ksp55", null, st, it), uc(Be, ` - --fall-distance: ${ye()??""}; - --size: ${_()??""}px; - --x-spread: ${1-Re()}; - --transition-iteration-count: ${(T()?"infinite":pe())??""};`) - }, [() => ({ - rounded: X(), - cone: Se(), - "no-gravity": we(), - "reduced-motion": Oe() - })]), H(Je, Be) - }; - Ue(Xe, Je => { - x(Ee) || Je(ct) - }) - } - H(b, ht), Pr() -} -var bk = async (b, l, _, C) => { - try { - oe(l, !0), await ni.purchase({ - id: _, - amount: 1, - variant: C.colorIdx - }), await Dt.refresh(), pa.notification1.play() - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } -}, wk = Ie(''), Tk = Ie(' '+Text3()+'', 1), Ck = Ie(' Unlocked ', 1), Sk = (b, l) => l(!1), Pk = Ie('

                '+Text5()+'

                '+Text6()+'

                '), Ik = Ie(' '); - -function Mk(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - const C = lt(() => $n.colors[l.colorIdx]), - L = lt(() => { - var X; - return ((X = Dt.data) == null ? void 0 : X.droplets) ?? 0 - }); - let F = nt(!1); - const T = lt(() => (x(F), Dt.hasColor(l.colorIdx))); - Ii(() => { - const X = Se => { - Se.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", X), () => document.removeEventListener("keydown", X) - }); - const o = 100, - $ = $n.products[o]; - var W = Ik(), - ie = k(W), - pe = V(k(ie), 2); - { - var ye = X => { - var Se = Pk(), - we = k(Se), - Re = k(we), - Ae = k(Re); - Ld(Ae, { - class: "size-6" - }); - var Oe = V(Ae, 4), - Ee = k(Oe); - Rg(Ee, { - get value() { - return x(L) - } - }), A(Oe), A(Re), fi(2), A(we); - var Ne = V(we, 2), - ft = k(Ne), - ht = k(ft); - A(ft); - var Xe = V(ft, 2), - ct = k(Xe, !0); - A(Xe); - var Je = V(Xe, 2), - Be = k(Je); - let st; - var it = k(Be); - it.__click = [bk, F, o, l]; - var Qe = k(it); - { - var ke = ne => { - var Pe = wk(); - H(ne, Pe) - }; - Ue(Qe, ne => { - x(F) && ne(ke) - }) - } - var vt = V(Qe, 2); - { - var Q = ne => { - var Pe = Tk(), - Me = zt(Pe); - Ud(Me, { - class: "size-5" - }); - var at = V(Me); - fi(), Ge(We => fe(at, ` ${We??""} `), [() => $.price.toLocaleString("en-US")]), H(ne, Pe) - }, - te = ne => { - var Pe = Ck(), - Me = zt(Pe); - Ld(Me, { - class: "size-5" - }); - var at = V(Me, 2), - We = k(at); - hm(We, {}), A(at), H(ne, Pe) - }; - Ue(vt, ne => { - x(T) ? ne(te, !1) : ne(Q) - }) - } - A(it), A(Be); - var _e = V(Be, 2); - _e.__click = [Sk, _], A(Je), A(Ne), A(Se), Ge((ne, Pe) => { - uc(ht, `background: rgb(${x(C).rgb[0]} ${x(C).rgb[1]} ${x(C).rgb[2]})`), zr(ht, "aria-label", x(C).name), fe(ct, x(C).name), zr(Be, "data-tip", ne), st = Or(Be, 1, "", null, st, Pe), it.disabled = x(L) < $.price || x(F) || x(T) - }, [() => Hd(), () => ({ - tooltip: !x(T) && x(L) < $.price - })]), H(X, Se) - }; - Ue(pe, X => { - Dt.data && X(ye) - }) - } - A(ie), fi(2), A(W), On(W, () => X => { - Zr(() => { - _() ? X.show() : X.close() - }) - }), an("close", W, () => _(!1)), H(b, W), Pr() -} -Wi(["click"]); -var Ak = Tr(''); - -function Tg(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ak(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var kk = Tr(''); - -function Cg(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = kk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Ek = Tr(''); - -function Ev(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ek(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var zk = Tr(''), - Lk = Tr(''); - -function zv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = zk(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = Lk(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var Dk = Tr(''); - -function Gf(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Dk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Rk = Tr(''); - -function Lv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Rk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Bk = Tr(''); - -function Fk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Bk(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Ok = Tr(''); - -function Nk(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ok(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var jk = Ie(" ", 1), - qk = Ie(" ", 1), - Vk = Ie(" ", 1), - Uk = Ie(' ', 1), - Zk = Ie(" ", 1), - $k = Ie(" ", 1), - Gk = (b, l) => oe(l, !x(l)), - Hk = (b, l) => { - oe(l, "colorpicker") - }, - Wk = (b, l) => { - l(!l()) - }, - Xk = (b, l) => { - oe(l, "cleararea") - }, - Kk = Ie('
                C
                '), - Yk = (b, l) => { - pa.smallPlop.play(), l() - }, - Jk = (b, l, _) => { - l(x(_).idx) - }, - Qk = Ie(' ', 1), - eE = Ie("
                "), - tE = (b, l) => { - oe(l, !x(l)) - }, - rE = (b, l) => { - oe(l, x(l) === "eraser" ? "pencil" : "eraser", !0) - }, - iE = Ie('

                I
                E
                ', 1); - -function nE(b, l) { - Sr(l, !0); - let _ = Et(l, "screenLocked", 15), - C = Et(l, "opaquePixelArt", 15); - const L = lt(() => new hc(l.tileSize)); - let F = nt(1), - T = nt("pencil"); - const o = new Map, - $ = new Map; - let W = nt(0), - ie = nt(!1), - pe = nt(!0), - ye = lt(() => Dt.charges ?? 0), - X = lt(() => x(ye) - x(W)), - Se = nt(!1), - we = !1, - Re = nt(!1), - Ae = nt(zn([])); - const Oe = lt(() => x(T) === "pencil"), - Ee = lt(() => x(T) === "eraser"), - Ne = lt(() => x(T) === "colorpicker"), - ft = lt(() => x(T) === "cleararea"), - ht = lt(() => { - var Mt, Ke; - return Cu((Ke = (Mt = Dt) == null ? void 0 : Mt.data) == null ? void 0 : Ke.role, ["admin", "global_moderator"]) - }); - let Xe = nt(!1), - ct = nt(0), - Je = nt(void 0), - Be = nt(void 0); - const st = [1, 2, 3, 32, 4, 5, 6, 33, 7, 34, 35, 8, 9, 10, 11, 37, 38, 39, 40, 41, 42, 12, 13, 14, 15, 16, 17, 43, 20, 44, 18, 19, 45, 46, 21, 22, 47, 48, 49, 23, 24, 25, 26, 27, 28, 53, 54, 55, 29, 30, 50, 56, 57, 36, 51, 31, 52, 61, 62, 63, 58, 59, 60, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 ,78, 79 ,80 ,81, 82, 83, 84, 85, 86 ,87 ,88 ,89 ,90 ,91 ,92 ,93 ,94, 95, 0].map(Mt => ({ - ...$n.colors[Mt], - idx: Mt - })), - it = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0].map(Mt => ({ - ...$n.colors[Mt], - idx: Mt - })); - let Qe = nt(!1); - const ke = lt(() => x(Qe) ? st : it), - vt = "show-all-colors"; - Ii(() => { - oe(Qe, localStorage.getItem(vt) === "true") - }), Zr(() => { - localStorage.setItem(vt, x(Qe) ? "true" : "false") - }); - const Q = "selected-color"; - Ii(() => { - const Mt = Number(localStorage.getItem(Q)); - !isNaN(Mt) && Mt < $n.colors.length && Mt > 0 && oe(F, Mt, !0) - }), Zr(() => { - localStorage.setItem(Q, x(F).toString()) - }); - const te = new dk({ - map: l.map, - tileSize: l.tileSize, - tileZoom: l.tileZoom, - beforeLayerId: l.hoverLayerId - }); - Zr(() => { - const Mt = C() ? 1 : 0; - te.setCanvasOpacity(Mt) - }), Zr(() => { - C() ? yf() : Ct([...o.values()]) - }); - let _e = !1; - Ii(() => { - Qa(l.map.getCenter(), l.map.getZoom()); - const Mt = l.map.on("click", rr => { - var Qr; - l.zoom < l.tileZoom + 2 && ((Qr = Dt.data) == null ? void 0 : Qr.role) === "user" && l.map.easeTo({ - center: rr.lngLat, - zoom: 17 - }); - const yi = [rr.lngLat.lat, rr.lngLat.lng]; - if (x(Oe)) Pe([yi], x(F)); - else if (x(Ee)) Me([yi]); - else if (x(Ne)) at(yi, rr.point); - else if (x(ft) && (x(Ae).push(yi), Pe([yi], 0), x(Ae).length >= 2)) { - const [Yr, la] = x(Ae), [sn, ta] = x(L).latLonToPixelsFloor(Yr[0], Yr[1], l.tileZoom), [Fi, Xi] = x(L).latLonToPixelsFloor(la[0], la[1], l.tileZoom), Gn = Math.min(sn, Fi), Hn = Math.max(sn, Fi), Ln = Math.min(ta, Xi), gt = Math.max(ta, Xi), qt = []; - for (let vr = Ln; vr <= gt; vr++) { - const _i = x(L).pixelsToLatLon(Gn + .5, vr + .5, l.tileZoom), - Di = x(L).pixelsToLatLon(Hn + .5, vr + .5, l.tileZoom), - $i = Ke({ - lat: _i[0], - lng: _i[1] - }, { - lat: Di[0], - lng: Di[1] - }).slice(0, x(X) - qt.length); - if (qt.push(...$i), qt.length >= x(X)) break - } - Pe(qt, 0), oe(Ae, [], !0), oe(T, "pencil") - } - oe(Se, !0) - }); - - function Ke(rr, yi) { - const Qr = x(L).latLonToPixels(rr.lat, rr.lng, l.tileZoom), - Yr = yi ? x(L).latLonToPixels(yi.lat, yi.lng, l.tileZoom) : Qr; - return ux(Qr, Yr).map(sn => x(L).pixelsToLatLon(sn[0] + .5, sn[1] + .5, l.tileZoom)) - } - - function jt(rr, yi) { - const Qr = Ke(rr, yi); - x(Oe) ? Pe(Qr, x(F)) : x(Ee) && Me(Qr), oe(Se, !0) - } - let Gt; - - function Dr(rr) { - const yi = l.map.unproject([rr.clientX, rr.clientY]); - if (x(Re)) { - const Qr = Ke(yi, Gt); - Me(Qr) - }(_e || we) && jt(yi, Gt), Gt = yi - } - window.addEventListener("mousemove", Dr); - let Gr = !1; - const li = l.map.on("touchstart", rr => { - if (rr.points.length == 2) { - _(!1), pt(), Gr = !0, setTimeout(() => Gr = !1, 150); - return - } - _() && setTimeout(() => { - !Gr && jt(rr.lngLat) - }, 150), Gt = rr.lngLat - }), - fr = l.map.on("touchmove", rr => { - _() && jt(rr.lngLat, Gt), Gt = rr.lngLat - }), - bi = rr => { - rr.code === "Space" && (_e || Gt && jt(Gt), _e = !0, rr.preventDefault()) - }; - document.addEventListener("keydown", bi); - const Si = rr => { - rr.code === "Space" && (_e = !1, ne = !1, x(W) === 0 && x(Ee) && oe(T, "pencil")) - }; - document.addEventListener("keyup", Si); - - function zi(rr) { - if (rr.button === 2) { - oe(Re, !0); - const Qr = l.map.unproject([rr.clientX, rr.clientY]); - Me([ - [Qr.lat, Qr.lng] - ]) - } - } - document.addEventListener("mousedown", zi); - - function mi(rr) { - rr.button === 2 && oe(Re, !1) - } - document.addEventListener("mouseup", mi); - const Li = rr => { - switch (rr.code) { - case "KeyE": - x(W) > 0 && (x(Ee) ? oe(T, "pencil") : oe(T, "eraser")); - return; - case "KeyI": - oe(T, "colorpicker"); - return; - case "KeyC": - x(ht) && oe(T, "cleararea"); - return - } - }; - return document.addEventListener("keypress", Li), () => { - fr.unsubscribe(), li.unsubscribe(), Mt.unsubscribe(), document.removeEventListener("mousemove", Dr), document.removeEventListener("keydown", bi), document.removeEventListener("keyup", Si), document.removeEventListener("keypress", Li), document.removeEventListener("mousedown", zi), document.removeEventListener("mouseup", mi), _t() - } - }); - let ne = !1; - - function Pe(Mt, Ke) { - let jt = !1; - const Gt = Ke === 0; - for (let Dr of Mt) { - const [Gr, li] = Dr, fr = vx(Ke), { - tile: bi, - pixel: Si - } = x(L).latLonToTileAndPixel(Gr, li, l.tileZoom), zi = { - color: fr, - tile: bi, - pixel: Si, - season: l.season, - colorIdx: Ke - }, mi = cf(zi), Li = o.get(mi), rr = x(ye) - o.size; - if (!Li && rr < 1) { - if (ne && (_e || _())) continue; - ne = !0, qr.info($3()); - continue - } - Li && Li.colorIdx === Ke || (pa.plop.play(), jt || l.hidePixelHover(), o.set(mi, zi), te.place(Dr, Ke), l.crosshair.place(Dr), jt = !0, Gt && $.set(mi, zi)) - } - oe(W, o.size, !0), jt && !C() ? Ct([...o.values()]) : jt && C() && Gt && Ct([...$.values()]) - } - - function Me(Mt) { - let Ke = !1, - jt = !1; - for (let Gt of Mt) { - const [Dr, Gr] = Gt, { - tile: li, - pixel: fr - } = x(L).latLonToTileAndPixel(Dr, Gr, l.tileZoom), bi = cf({ - tile: li, - pixel: fr, - season: l.season - }), Si = o.get(bi); - Si && (pa.plop.play(), l.hidePixelHover(), o.delete(bi), $.delete(bi), te.remove([Dr, Gr]), l.crosshair.remove(Gt), Ke = !0, Si.colorIdx === 0 && (jt = !0)), o.size === 0 && !(_e || we || _()) && oe(T, "pencil") - } - oe(W, o.size, !0), Ke && !C() ? Ct([...o.values()]) : Ke && C() && jt && Ct([...$.values()]) - } - - function at(Mt, Ke) { - const { - tile: jt, - pixel: Gt - } = x(L).latLonToTileAndPixel(Mt[0], Mt[1], l.tileZoom), Dr = cf({ - tile: jt, - pixel: Gt, - season: l.season - }), Gr = o.get(Dr); - if (Gr) { - It(Gr.colorIdx), requestAnimationFrame(() => { - var Si; - (Si = document.getElementById(`color-${Gr.colorIdx}`)) == null || Si.focus() - }); - return - } - const li = window.devicePixelRatio, - fr = Math.floor(Ke.x * li), - bi = Math.floor(Ke.y * li); - l.hidePixelHover(), wM(l.map, fr, bi).then(([Si, zi, mi]) => { - const Li = yx({ - r: Si, - g: zi, - b: mi - }); - It(Li), requestAnimationFrame(() => { - var rr; - (rr = document.getElementById(`color-${Li}`)) == null || rr.focus() - }) - }) - } - dc(() => x(F), () => { - l.clickedLatLon && !x(Se) && (x(F) === void 0 && oe(F, 1), Pe([l.clickedLatLon], x(F))) - }), Zr(() => { - const Mt = x(pe) ? .8 : 0; - l.crosshair.setCanvasOpacity(Mt) - }); - let We = nt(16.5); - Zr(() => { - if (x(Je) && x(Be) && l.clickedLatLon) { - const Mt = l.map.getZoom(); - if (Mt < x(We)) { - const [Ke, jt] = l.clickedLatLon, Gt = x(L).latLonToPixelBoundsLatLon(Ke, jt, l.tileZoom), Dr = im(Gt), Gr = x(Je) - x(Be).clientHeight, li = x(Je) / 2 - Gr / 2; - l.map.flyTo({ - center: { - lat: Dr[0], - lng: Dr[1] - }, - zoom: 17.5, - offset: Mt > 11 ? [0, -li] : [0, 0] - }) - } - oe(We, l.tileZoom, !0) - } - }), Ii(() => { - const Mt = () => { - !document.hidden && (console.log("Tab visible again"), C() ? Ct([...$.values()]) : Ct([...o.values()])) - }; - return document.addEventListener("visibilitychange", Mt), () => document.removeEventListener("visibilitychange", Mt) - }), Zr(() => { - switch (x(T)) { - case "pencil": - l.map.getCanvas().style.cursor = `url('${uk}') 8 8, default`, l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", .4); - return; - case "colorpicker": - l.map.getCanvas().style.cursor = `url('${lk}') 0 16, default`, l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", 0); - return; - case "eraser": - l.map.getCanvas().style.cursor = `url('${ck}') 2 14, default`, l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", .4); - return - } - }), Zr(() => { - _() ? tt() : pt() - }); - async function Ct(Mt) { - await sx(Mt), l.refreshPixelArt() - } - async function _t() { - await yf(), te.clear(), l.refreshPixelArt(), l.crosshair.clear() - } - async function xt() { - await _t(), pt(), l.map.getCanvas().style.cursor = "default", l.map.setPaintProperty(l.hoverLayerId, "raster-opacity", .4), l.onclose() - } - - function tt() { - l.map.dragPan.disable(), l.map.touchZoomRotate.disable(), document.body.style.overscrollBehavior = "none" - } - - function pt() { - l.map.dragPan.enable(), l.map.touchZoomRotate.enable(), document.body.style.overscrollBehavior = "" - } - - function It(Mt) { - return Mt >= 32 && oe(Qe, !0), Dt.hasColor(Mt) ? (pa.smallDropplet.play(), oe(F, Mt, !0), oe(T, "pencil"), !0) : (pa.smallDropplet.play(), oe(Xe, !0), oe(ct, Mt, !0), !1) - } - lx(Mt => { - Mt.type === "leave" && x(W) > 0 && Mt.cancel() - }); - const ut = "show-paint-more-than-one-pixel-msg"; - let bt = nt(!1); - Ii(() => { - var Mt; - oe(bt, !localStorage.getItem(ut) && (((Mt = Dt.data) == null ? void 0 : Mt.pixelsPainted) ?? 0) < 100, !0) - }), Zr(() => { - x(W) > 1 && (oe(bt, !1), localStorage.setItem(ut, "false")) - }); - const wt = "lp"; - Ii(() => { - var Ke; - const Mt = localStorage.getItem(wt); - if (Mt) try { - const jt = JSON.parse(atob(Mt)), - Gt = (jt == null ? void 0 : jt.time) ?? 0, - Dr = 60 * 1e3; - (jt == null ? void 0 : jt.userId) !== ((Ke = Dt.data) == null ? void 0 : Ke.id) && Date.now() - Gt < 30 * Dr && !hx && (qr.error(W3()), xt()) - } catch (jt) { - console.error(jt) - } - }); - - function dt() { - var Ke; - const Mt = btoa(JSON.stringify({ - userId: (Ke = Dt.data) == null ? void 0 : Ke.id, - time: Date.now() - })); - localStorage.setItem(wt, Mt) - } - var Lt = iE(), - Xt = zt(Lt), - Yt = k(Xt); - { - var nr = Mt => { - Kl(Mt, { - children: (Ke, jt) => { - var Gt = jk(), - Dr = zt(Gt); - Ev(Dr, { - class: "inline size-5" - }); - var Gr = V(Dr); - Ge(li => fe(Gr, ` ${li??""}`), [() => uw()]), H(Ke, Gt) - }, - $$slots: { - default: !0 - } - }) - }, - ar = Mt => { - var Ke = Jt(), - jt = zt(Ke); - { - var Gt = Gr => { - Kl(Gr, { - class: "not-touchscreen:hidden", - children: (li, fr) => { - var bi = qk(), - Si = zt(bi); - lg(Si, { - class: "inline size-5" - }); - var zi = V(Si); - Ge(mi => fe(zi, ` ${mi??""}`), [() => pw()]), H(li, bi) - }, - $$slots: { - default: !0 - } - }) - }, - Dr = Gr => { - var li = Jt(), - fr = zt(li); - { - var bi = zi => { - Kl(zi, { - class: "not-touchscreen:hidden", - children: (mi, Li) => { - var rr = Vk(), - yi = zt(rr); - Cg(yi, { - class: "inline size-5" - }); - var Qr = V(yi, 1, !0); - Ge(Yr => fe(Qr, Yr), [() => _w()]), H(mi, rr) - }, - $$slots: { - default: !0 - } - }) - }, - Si = zi => { - var mi = Jt(), - Li = zt(mi); - { - var rr = Qr => { - Kl(Qr, { - class: "touchscreen:hidden", - children: (Yr, la) => { - var sn = Uk(), - ta = zt(sn); - Lv(ta, { - class: "inline size-5" - }); - var Fi = V(ta), - Xi = k(Fi, !0); - A(Fi); - var Gn = V(Fi, 2), - Hn = k(Gn), - Ln = V(Hn), - gt = k(Ln, !0); - A(Ln), A(Gn); - var qt = V(Gn); - Ge((vr, _i, Di, $i) => { - fe(Xi, vr), fe(Hn, `${_i??""} `), fe(gt, Di), fe(qt, ` ${$i??""}`) - }, [() => yw(), () => Sw(), () => ww(), () => Mw()]), H(Yr, sn) - }, - $$slots: { - default: !0 - } - }) - }, - yi = Qr => { - var Yr = Jt(), - la = zt(Yr); - { - var sn = Fi => { - Kl(Fi, { - class: "bg-warning text-warning-content animate-bounce", - children: (Xi, Gn) => { - var Hn = Zk(), - Ln = zt(Hn); - fh(Ln, { - class: "inline size-5" - }); - var gt = V(Ln); - Ge(qt => fe(gt, ` ${qt??""}`), [() => Ew()]), H(Xi, Hn) - }, - $$slots: { - default: !0 - } - }) - }, - ta = Fi => { - var Xi = Jt(), - Gn = zt(Xi); - { - var Hn = Ln => { - Kl(Ln, { - class: "bg-warning text-warning-content animate-bounce", - children: (gt, qt) => { - var vr = $k(), - _i = zt(vr); - Tg(_i, { - class: "inline size-5" - }); - var Di = V(_i, 2); - { - var $i = Cr => { - var gn = Fn(); - Ge(tr => fe(gn, tr), [() => uP()]), H(Cr, gn) - }, - Mi = Cr => { - var gn = Jt(), - tr = zt(gn); - { - var Ht = ei => { - var ri = Fn(); - Ge(gi => fe(ri, gi), [() => pP()]), H(ei, ri) - }; - Ue(tr, ei => { - x(Ae).length === 1 && ei(Ht) - }, !0) - } - H(Cr, gn) - }; - Ue(Di, Cr => { - x(Ae).length === 0 ? Cr($i) : Cr(Mi, !1) - }) - } - H(gt, vr) - }, - $$slots: { - default: !0 - } - }) - }; - Ue(Gn, Ln => { - x(ft) && Ln(Hn) - }, !0) - } - H(Fi, Xi) - }; - Ue(la, Fi => { - x(bt) ? Fi(sn) : Fi(ta, !1) - }, !0) - } - H(Qr, Yr) - }; - Ue(Li, Qr => { - x(Oe) && x(W) === 0 ? Qr(rr) : Qr(yi, !1) - }, !0) - } - H(zi, mi) - }; - Ue(fr, zi => { - x(Ne) ? zi(bi) : zi(Si, !1) - }, !0) - } - H(Gr, li) - }; - Ue(jt, Gr => { - x(Ee) ? Gr(Gt) : Gr(Dr, !1) - }, !0) - } - H(Mt, Ke) - }; - Ue(Yt, Mt => { - x(Ee) && x(W) === 0 ? Mt(nr) : Mt(ar, !1) - }) - } - var Ft = V(Yt, 2), - dr = k(Ft); - dr.__click = [Gk, pe]; - var _r = k(dr); - { - var Ir = Mt => { - mk(Mt, { - class: "size-4" - }) - }, - jr = Mt => { - gk(Mt, { - class: "size-4" - }) - }; - Ue(_r, Mt => { - x(pe) ? Mt(Ir) : Mt(jr, !1) - }) - } - A(dr); - var ur = V(dr, 2), - Mr = k(ur), - Ar = k(Mr), - kr = V(Ar); - Av(kr, { - class: "inline", - fontSize: 14, - get value() { - return `(${x(W)??""})` - }, - mono: !0 - }), A(Mr); - var Nr = V(Mr, 2), - ce = k(Nr), - O = k(ce); - fi(), A(ce); - var q = V(ce, 2); - q.__click = [Hk, T]; - var G = k(q); - Cg(G, { - class: "size-4.5" - }), A(q), A(Nr); - var K = V(Nr, 2), - le = k(K); - let ve; - le.__click = [Wk, C]; - var Le = k(le); - { - let Mt = lt(() => !C()); - zv(Le, { - class: "size-4.5", - get filled() { - return x(Mt) - } - }) - } - A(le), A(K); - var Ce = V(K, 2); - { - var Ze = Mt => { - var Ke = Kk(), - jt = k(Ke), - Gt = k(jt); - fi(), A(jt); - var Dr = V(jt, 2); - Dr.__click = [Xk, T]; - var Gr = k(Dr); - Tg(Gr, { - class: "size-4.5" - }), A(Dr), A(Ke), Ge(li => { - fe(Gt, `${li??""} `), Or(Dr, 1, Vo({ - "btn btn-circle btn-sm": !0, - "btn-ghost": !x(ft), - "btn-primary": x(ft) - })) - }, [() => oP()]), H(Mt, Ke) - }; - Ue(Ce, Mt => { - x(ht) && Mt(Ze) - }) - } - A(ur); - var ot = V(ur, 2); - ot.__click = [Yk, xt]; - var Ye = k(ot); - fc(Ye, { - class: "size-4" - }), A(ot), A(Ft); - var Ot = V(Ft, 2), - xe = k(Ot); - nn(xe, 23, () => x(ke), Mt => Mt.idx, (Mt, Ke, jt) => { - const Gt = lt(() => { - const [mi, Li, rr] = x(Ke).rgb; - return { - r: mi, - g: Li, - b: rr - } - }), - Dr = lt(() => x(F) === x(Ke).idx && x(Oe)), - Gr = lt(() => x(Ke).idx === 0), - li = lt(() => Dt.hasColor(x(Ke).idx)); - var fr = eE(), - bi = k(fr); - bi.__click = [Jk, It, Ke]; - var Si = k(bi); - { - var zi = mi => { - var Li = Qk(), - rr = zt(Li); - Gf(rr, { - class: "center-absolute absolute size-4 opacity-30 sm:hidden sm:size-6" - }); - var yi = V(rr, 2), - Qr = k(yi); - Gf(Qr, { - class: "text-base-content/80 size-4" - }), A(yi), H(mi, Li) - }; - Ue(Si, mi => { - x(li) || mi(zi) - }) - } - A(bi), A(fr), Ge(() => { - Or(fr, 1, Vo({ - tooltip: !0, - "max-sm:h-6": x(Qe), - "max-sm:before:translate-x-1/4": x(jt) % 8 === 0 && x(Ke).name.length > 7, - "max-sm:before:-translate-x-1/4": (x(jt) - 7) % 8 === 0 && x(Ke).name.length > 7, - "max-xl:before:translate-x-1/4": x(jt) % 16 === 0 && x(Ke).name.length > 7, - "max-xl:before:-translate-x-1/4": (x(jt) - 15) % 16 === 0 && x(Ke).name.length > 7, - "xl:before:translate-x-1/4": x(Qe) && x(jt) % 32 === 0 && x(Ke).name.length > 7, - "xl:before:-translate-x-1/4": x(Qe) && (x(jt) - 31) % 32 === 0 && x(Ke).name.length > 7 - })), zr(fr, "data-tip", x(Ke).name), Or(bi, 1, Vo({ - "btn relative aspect-square w-full rounded-xl": !0, - "border-primary ring-primary ring-2": x(Dr), - "border-base-300": !x(Dr) && x(Gr), - "border-base-content/20": !x(Dr) && !x(Gr), - "max-sm:h-6 max-sm:rounded-md": x(Qe) - })), uc(bi, x(Gr) ? `background-image: url(${hk}); background-size: cover; image-rendering: pixelated;` : `background: rgb(${x(Gt).r} ${x(Gt).g} ${x(Gt).b})`), zr(bi, "aria-label", x(Ke).name), zr(bi, "id", `color-${x(Ke).idx??""}`) - }), an("focus", bi, () => { - x(li) && (oe(F, x(Ke).idx, !0), oe(T, "pencil")) - }), H(Mt, fr) - }), A(xe), A(Ot); - var At = V(Ot, 2), - Pt = k(At); - Pt.__click = [tE, Qe]; - var kt = k(Pt); - { - var Wt = Mt => { - Fk(Mt, { - class: "size-5" - }) - }, - Lr = Mt => { - Nk(Mt, { - class: "size-5" - }) - }; - Ue(kt, Mt => { - x(Qe) ? Mt(Wt) : Mt(Lr, !1) - }) - } - A(Pt); - var Kr = V(Pt, 2), - Hr = k(Kr); - { - let Mt = lt(() => x(W) > 100 ? "animate-pulse" : ""), - Ke = lt(() => x(W) === 0 || x(ie) || x(X) < 0 || !oa.captcha), - jt = lt(() => x(ie) || !oa.captcha); - kv(Hr, { - get class() { - return x(Mt) - }, - get charges() { - return x(X) - }, - get disabled() { - return x(Ke) - }, - get loading() { - return x(jt) - }, - onclick: async () => { - var Gr; - const Gt = (Gr = oa.captcha) == null ? void 0 : Gr.token; - if (!Gt) return; - pa.droppletAndPlop.play(); - const Dr = [...o.values()]; - oe(ie, !0); - try { - await ni.paint(Dr, Gt), await ox(Dr), dt(), Dt.refresh(), Id.shouldReload = !0, await xt() - } catch (li) { - qr.error(`${li.message}`, { - duration: 7e3 - }) - } finally { - oe(ie, !1) - } - } - }) - } - A(Kr); - var $r = V(Kr, 2), - mr = k($r), - gr = k(mr), - ai = k(gr); - fi(), A(gr); - var Tt = V(gr, 2); - let Ci; - Tt.__click = [rE, T]; - var di = k(Tt); - lg(di, { - class: "size-5", - get filled() { - return x(Ee) - } - }), A(Tt), A(mr), A($r), A(At), A(Xt), ps(Xt, Mt => oe(Be, Mt), () => x(Be)); - var Pn = V(Xt, 2); - Mk(Pn, { - get colorIdx() { - return x(ct) - }, - get open() { - return x(Xe) - }, - set open(Mt) { - oe(Xe, Mt, !0) - } - }), Ge((Mt, Ke, jt, Gt, Dr, Gr) => { - fe(Ar, `${Mt??""} `), fe(O, `${Ke??""} `), Or(q, 1, Vo({ - "btn btn-circle btn-sm": !0, - "btn-ghost": !x(Ne), - "btn-primary": x(Ne) - })), zr(K, "data-tip", jt), ve = Or(le, 1, "btn btn-sm btn-circle btn-ghost text-base-content/80", null, ve, Gt), Or(xe, 1, Vo({ - "md:grid-cols-16 min-[100rem]:grid-cols-32 grid grid-cols-8": !0, - "xl:grid-cols-32 sm:grid-cols-16 gap-0.5 sm:gap-1": x(Qe), - "gap-1": !x(Qe) - })), fe(ai, `${Dr??""} `), Ci = Or(Tt, 1, "btn btn-lg btn-square sm:btn-xl shadow-md", null, Ci, Gr), Tt.disabled = x(W) === 0 - }, [() => Dw(), () => Fw(), () => Ug(), () => ({ - "text-primary": !C() - }), () => dx(), () => ({ - "btn-primary": x(Ee) - })]), $d("innerHeight", Mt => oe(Je, Mt, !0)), H(b, Lt), Pr() -} -Wi(["click"]); - -function dm(...b) { - return Fg(Tu(b)) -} -var aE = Ie("
                "); - -function sE(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "children"]); - var L = aE(); - er(L, T => ({ - class: T, - ...C - }), [() => dm("flex items-center", l.class)]); - var F = k(L); - Ji(F, () => l.children ?? fa), A(L), ps(L, T => _(T), () => _()), H(b, L), Pr() -} -var oE = Ie('
                '), - lE = Ie(" ", 1); - -function cE(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "cell", "class"]); - var L = Jt(), - F = zt(L); - { - let T = lt(() => dm("border-input relative flex size-12 items-center justify-center border-y border-r text-xl transition-all first:rounded-l-md first:border-l last:rounded-r-md", l.cell.isActive && "ring-base-content/40 z-10 ring-2", l.class)); - _n(F, () => iA, (o, $) => { - $(o, lo({ - get cell() { - return l.cell - }, - get class() { - return x(T) - } - }, () => C, { - get ref() { - return _() - }, - set ref(W) { - _(W) - }, - children: (W, ie) => { - fi(); - var pe = lE(), - ye = zt(pe), - X = V(ye); - { - var Se = we => { - var Re = oE(); - H(we, Re) - }; - Ue(X, we => { - l.cell.hasFakeCaret && we(Se) - }) - } - Ge(() => fe(ye, `${l.cell.char??""} `)), H(W, pe) - }, - $$slots: { - default: !0 - } - })) - }) - } - H(b, L), Pr() -} - -function uE(b, l) { - Sr(l, !0); - let _ = Et(l, "ref", 15, null), - C = Et(l, "value", 15, ""), - L = Qt(l, ["$$slots", "$$events", "$$legacy", "ref", "class", "value"]); - var F = Jt(), - T = zt(F); - { - let o = lt(() => dm("flex items-center gap-2 has-[:disabled]:opacity-50 [&_input]:disabled:cursor-not-allowed", l.class)); - _n(T, () => tA, ($, W) => { - W($, lo({ - get class() { - return x(o) - } - }, () => L, { - get ref() { - return _() - }, - set ref(ie) { - _(ie) - }, - get value() { - return C() - }, - set value(ie) { - C(ie) - } - })) - }) - } - H(b, F), Pr() -} -var gf = { - exports: {} - }, - Sg; - -function hE() { - return Sg || (Sg = 1, (function(b) { - (function(l) { - b.exports ? b.exports = l() : window.intlTelInput = l() - })(() => { - var l = (() => { - var _ = Object.defineProperty, - C = Object.getOwnPropertyDescriptor, - L = Object.getOwnPropertyNames, - F = Object.prototype.hasOwnProperty, - T = (Q, te) => { - for (var _e in te) _(Q, _e, { - get: te[_e], - enumerable: !0 - }) - }, - o = (Q, te, _e, ne) => { - if (te && typeof te == "object" || typeof te == "function") - for (let Pe of L(te)) !F.call(Q, Pe) && Pe !== _e && _(Q, Pe, { - get: () => te[Pe], - enumerable: !(ne = C(te, Pe)) || ne.enumerable - }); - return Q - }, - $ = Q => o(_({}, "__esModule", { - value: !0 - }), Q), - W = {}; - T(W, { - Iti: () => it, - default: () => vt - }); - var ie = [ - ["af", "93"], - ["ax", "358", 1], - ["al", "355"], - ["dz", "213"], - ["as", "1", 5, ["684"]], - ["ad", "376"], - ["ao", "244"], - ["ai", "1", 6, ["264"]], - ["ag", "1", 7, ["268"]], - ["ar", "54"], - ["am", "374"], - ["aw", "297"], - ["ac", "247"], - ["au", "61", 0, null, "0"], - ["at", "43"], - ["az", "994"], - ["bs", "1", 8, ["242"]], - ["bh", "973"], - ["bd", "880"], - ["bb", "1", 9, ["246"]], - ["by", "375"], - ["be", "32"], - ["bz", "501"], - ["bj", "229"], - ["bm", "1", 10, ["441"]], - ["bt", "975"], - ["bo", "591"], - ["ba", "387"], - ["bw", "267"], - ["br", "55"], - ["io", "246"], - ["vg", "1", 11, ["284"]], - ["bn", "673"], - ["bg", "359"], - ["bf", "226"], - ["bi", "257"], - ["kh", "855"], - ["cm", "237"], - ["ca", "1", 1, ["204", "226", "236", "249", "250", "263", "289", "306", "343", "354", "365", "367", "368", "382", "387", "403", "416", "418", "428", "431", "437", "438", "450", "584", "468", "474", "506", "514", "519", "548", "579", "581", "584", "587", "604", "613", "639", "647", "672", "683", "705", "709", "742", "753", "778", "780", "782", "807", "819", "825", "867", "873", "879", "902", "905"]], - ["cv", "238"], - ["bq", "599", 1, ["3", "4", "7"]], - ["ky", "1", 12, ["345"]], - ["cf", "236"], - ["td", "235"], - ["cl", "56"], - ["cn", "86"], - ["cx", "61", 2, ["89164"], "0"], - ["cc", "61", 1, ["89162"], "0"], - ["co", "57"], - ["km", "269"], - ["cg", "242"], - ["cd", "243"], - ["ck", "682"], - ["cr", "506"], - ["ci", "225"], - ["hr", "385"], - ["cu", "53"], - ["cw", "599", 0], - ["cy", "357"], - ["cz", "420"], - ["dk", "45"], - ["dj", "253"], - ["dm", "1", 13, ["767"]], - ["do", "1", 2, ["809", "829", "849"]], - ["ec", "593"], - ["eg", "20"], - ["sv", "503"], - ["gq", "240"], - ["er", "291"], - ["ee", "372"], - ["sz", "268"], - ["et", "251"], - ["fk", "500"], - ["fo", "298"], - ["fj", "679"], - ["fi", "358", 0], - ["fr", "33"], - ["gf", "594"], - ["pf", "689"], - ["ga", "241"], - ["gm", "220"], - ["ge", "995"], - ["de", "49"], - ["gh", "233"], - ["gi", "350"], - ["gr", "30"], - ["gl", "299"], - ["gd", "1", 14, ["473"]], - ["gp", "590", 0], - ["gu", "1", 15, ["671"]], - ["gt", "502"], - ["gg", "44", 1, ["1481", "7781", "7839", "7911"], "0"], - ["gn", "224"], - ["gw", "245"], - ["gy", "592"], - ["ht", "509"], - ["hn", "504"], - ["hk", "852"], - ["hu", "36"], - ["is", "354"], - ["in", "91"], - ["id", "62"], - ["ir", "98"], - ["iq", "964"], - ["ie", "353"], - ["im", "44", 2, ["1624", "74576", "7524", "7924", "7624"], "0"], - ["il", "972"], - ["it", "39", 0], - ["jm", "1", 4, ["876", "658"]], - ["jp", "81"], - ["je", "44", 3, ["1534", "7509", "7700", "7797", "7829", "7937"], "0"], - ["jo", "962"], - ["kz", "7", 1, ["33", "7"], "8"], - ["ke", "254"], - ["ki", "686"], - ["xk", "383"], - ["kw", "965"], - ["kg", "996"], - ["la", "856"], - ["lv", "371"], - ["lb", "961"], - ["ls", "266"], - ["lr", "231"], - ["ly", "218"], - ["li", "423"], - ["lt", "370"], - ["lu", "352"], - ["mo", "853"], - ["mg", "261"], - ["mw", "265"], - ["my", "60"], - ["mv", "960"], - ["ml", "223"], - ["mt", "356"], - ["mh", "692"], - ["mq", "596"], - ["mr", "222"], - ["mu", "230"], - ["yt", "262", 1, ["269", "639"], "0"], - ["mx", "52"], - ["fm", "691"], - ["md", "373"], - ["mc", "377"], - ["mn", "976"], - ["me", "382"], - ["ms", "1", 16, ["664"]], - ["ma", "212", 0, null, "0"], - ["mz", "258"], - ["mm", "95"], - ["na", "264"], - ["nr", "674"], - ["np", "977"], - ["nl", "31"], - ["nc", "687"], - ["nz", "64"], - ["ni", "505"], - ["ne", "227"], - ["ng", "234"], - ["nu", "683"], - ["nf", "672"], - ["kp", "850"], - ["mk", "389"], - ["mp", "1", 17, ["670"]], - ["no", "47", 0], - ["om", "968"], - ["pk", "92"], - ["pw", "680"], - ["ps", "970"], - ["pa", "507"], - ["pg", "675"], - ["py", "595"], - ["pe", "51"], - ["ph", "63"], - ["pl", "48"], - ["pt", "351"], - ["pr", "1", 3, ["787", "939"]], - ["qa", "974"], - ["re", "262", 0, null, "0"], - ["ro", "40"], - ["ru", "7", 0, null, "8"], - ["rw", "250"], - ["ws", "685"], - ["sm", "378"], - ["st", "239"], - ["sa", "966"], - ["sn", "221"], - ["rs", "381"], - ["sc", "248"], - ["sl", "232"], - ["sg", "65"], - ["sx", "1", 21, ["721"]], - ["sk", "421"], - ["si", "386"], - ["sb", "677"], - ["so", "252"], - ["za", "27"], - ["kr", "82"], - ["ss", "211"], - ["es", "34"], - ["lk", "94"], - ["bl", "590", 1], - ["sh", "290"], - ["kn", "1", 18, ["869"]], - ["lc", "1", 19, ["758"]], - ["mf", "590", 2], - ["pm", "508"], - ["vc", "1", 20, ["784"]], - ["sd", "249"], - ["sr", "597"], - ["sj", "47", 1, ["79"]], - ["se", "46"], - ["ch", "41"], - ["sy", "963"], - ["tw", "886"], - ["tj", "992"], - ["tz", "255"], - ["th", "66"], - ["tl", "670"], - ["tg", "228"], - ["tk", "690"], - ["to", "676"], - ["tt", "1", 22, ["868"]], - ["tn", "216"], - ["tr", "90"], - ["tm", "993"], - ["tc", "1", 23, ["649"]], - ["tv", "688"], - ["ug", "256"], - ["ua", "380"], - ["ae", "971"], - ["gb", "44", 0, null, "0"], - ["us", "1", 0], - ["uy", "598"], - ["vi", "1", 24, ["340"]], - ["uz", "998"], - ["vu", "678"], - ["va", "39", 1, ["06698"]], - ["ve", "58"], - ["vn", "84"], - ["wf", "681"], - ["eh", "212", 1, ["5288", "5289"], "0"], - ["ye", "967"], - ["zm", "260"], - ["zw", "263"] - ], - pe = []; - for (let Q = 0; Q < ie.length; Q++) { - const te = ie[Q]; - pe[Q] = { - name: "", - iso2: te[0], - dialCode: te[1], - priority: te[2] || 0, - areaCodes: te[3] || null, - nodeById: {}, - nationalPrefix: te[4] || null - } - } - var ye = pe, - X = { - ad: "Andorra", - ae: "United Arab Emirates", - af: "Afghanistan", - ag: "Antigua & Barbuda", - ai: "Anguilla", - al: "Albania", - am: "Armenia", - ao: "Angola", - ar: "Argentina", - as: "American Samoa", - at: "Austria", - au: "Australia", - aw: "Aruba", - ax: "Åland Islands", - az: "Azerbaijan", - ba: "Bosnia & Herzegovina", - bb: "Barbados", - bd: "Bangladesh", - be: "Belgium", - bf: "Burkina Faso", - bg: "Bulgaria", - bh: "Bahrain", - bi: "Burundi", - bj: "Benin", - bl: "St. Barthélemy", - bm: "Bermuda", - bn: "Brunei", - bo: "Bolivia", - bq: "Caribbean Netherlands", - br: "Brazil", - bs: "Bahamas", - bt: "Bhutan", - bw: "Botswana", - by: "Belarus", - bz: "Belize", - ca: "Canada", - cc: "Cocos (Keeling) Islands", - cd: "Congo - Kinshasa", - cf: "Central African Republic", - cg: "Congo - Brazzaville", - ch: "Switzerland", - ci: "Côte d’Ivoire", - ck: "Cook Islands", - cl: "Chile", - cm: "Cameroon", - cn: "China", - co: "Colombia", - cr: "Costa Rica", - cu: "Cuba", - cv: "Cape Verde", - cw: "Curaçao", - cx: "Christmas Island", - cy: "Cyprus", - cz: "Czechia", - de: "Germany", - dj: "Djibouti", - dk: "Denmark", - dm: "Dominica", - do: "Dominican Republic", - dz: "Algeria", - ec: "Ecuador", - ee: "Estonia", - eg: "Egypt", - eh: "Western Sahara", - er: "Eritrea", - es: "Spain", - et: "Ethiopia", - fi: "Finland", - fj: "Fiji", - fk: "Falkland Islands", - fm: "Micronesia", - fo: "Faroe Islands", - fr: "France", - ga: "Gabon", - gb: "United Kingdom", - gd: "Grenada", - ge: "Georgia", - gf: "French Guiana", - gg: "Guernsey", - gh: "Ghana", - gi: "Gibraltar", - gl: "Greenland", - gm: "Gambia", - gn: "Guinea", - gp: "Guadeloupe", - gq: "Equatorial Guinea", - gr: "Greece", - gt: "Guatemala", - gu: "Guam", - gw: "Guinea-Bissau", - gy: "Guyana", - hk: "Hong Kong SAR China", - hn: "Honduras", - hr: "Croatia", - ht: "Haiti", - hu: "Hungary", - id: "Indonesia", - ie: "Ireland", - il: "Israel", - im: "Isle of Man", - in: "India", - io: "British Indian Ocean Territory", - iq: "Iraq", - ir: "Iran", - is: "Iceland", - it: "Italy", - je: "Jersey", - jm: "Jamaica", - jo: "Jordan", - jp: "Japan", - ke: "Kenya", - kg: "Kyrgyzstan", - kh: "Cambodia", - ki: "Kiribati", - km: "Comoros", - kn: "St. Kitts & Nevis", - kp: "North Korea", - kr: "South Korea", - kw: "Kuwait", - ky: "Cayman Islands", - kz: "Kazakhstan", - la: "Laos", - lb: "Lebanon", - lc: "St. Lucia", - li: "Liechtenstein", - lk: "Sri Lanka", - lr: "Liberia", - ls: "Lesotho", - lt: "Lithuania", - lu: "Luxembourg", - lv: "Latvia", - ly: "Libya", - ma: "Morocco", - mc: "Monaco", - md: "Moldova", - me: "Montenegro", - mf: "St. Martin", - mg: "Madagascar", - mh: "Marshall Islands", - mk: "North Macedonia", - ml: "Mali", - mm: "Myanmar (Burma)", - mn: "Mongolia", - mo: "Macao SAR China", - mp: "Northern Mariana Islands", - mq: "Martinique", - mr: "Mauritania", - ms: "Montserrat", - mt: "Malta", - mu: "Mauritius", - mv: "Maldives", - mw: "Malawi", - mx: "Mexico", - my: "Malaysia", - mz: "Mozambique", - na: "Namibia", - nc: "New Caledonia", - ne: "Niger", - nf: "Norfolk Island", - ng: "Nigeria", - ni: "Nicaragua", - nl: "Netherlands", - no: "Norway", - np: "Nepal", - nr: "Nauru", - nu: "Niue", - nz: "New Zealand", - om: "Oman", - pa: "Panama", - pe: "Peru", - pf: "French Polynesia", - pg: "Papua New Guinea", - ph: "Philippines", - pk: "Pakistan", - pl: "Poland", - pm: "St. Pierre & Miquelon", - pr: "Puerto Rico", - ps: "Palestinian Territories", - pt: "Portugal", - pw: "Palau", - py: "Paraguay", - qa: "Qatar", - re: "Réunion", - ro: "Romania", - rs: "Serbia", - ru: "Russia", - rw: "Rwanda", - sa: "Saudi Arabia", - sb: "Solomon Islands", - sc: "Seychelles", - sd: "Sudan", - se: "Sweden", - sg: "Singapore", - sh: "St. Helena", - si: "Slovenia", - sj: "Svalbard & Jan Mayen", - sk: "Slovakia", - sl: "Sierra Leone", - sm: "San Marino", - sn: "Senegal", - so: "Somalia", - sr: "Suriname", - ss: "South Sudan", - st: "São Tomé & Príncipe", - sv: "El Salvador", - sx: "Sint Maarten", - sy: "Syria", - sz: "Eswatini", - tc: "Turks & Caicos Islands", - td: "Chad", - tg: "Togo", - th: "Thailand", - tj: "Tajikistan", - tk: "Tokelau", - tl: "Timor-Leste", - tm: "Turkmenistan", - tn: "Tunisia", - to: "Tonga", - tr: "Turkey", - tt: "Trinidad & Tobago", - tv: "Tuvalu", - tw: "Taiwan Province of China", - tz: "Tanzania", - ua: "Ukraine", - ug: "Uganda", - us: "United States", - uy: "Uruguay", - uz: "Uzbekistan", - va: "Vatican City", - vc: "St. Vincent & Grenadines", - ve: "Venezuela", - vg: "British Virgin Islands", - vi: "U.S. Virgin Islands", - vn: "Vietnam", - vu: "Vanuatu", - wf: "Wallis & Futuna", - ws: "Samoa", - ye: "Yemen", - yt: "Mayotte", - za: "South Africa", - zm: "Zambia", - zw: "Zimbabwe" - }, - Se = X, - we = { - selectedCountryAriaLabel: "Selected country", - noCountrySelected: "No country selected", - countryListAriaLabel: "List of countries", - searchPlaceholder: "Search", - zeroSearchResults: "No results found", - oneSearchResult: "1 result found", - multipleSearchResults: "${count} results found", - ac: "Ascension Island", - xk: "Kosovo" - }, - Re = we, - Ae = { - ...Se, - ...Re - }, - Oe = Ae; - for (let Q = 0; Q < ye.length; Q++) ye[Q].name = Oe[ye[Q].iso2]; - var Ee = 0, - Ne = { - allowDropdown: !0, - autoPlaceholder: "polite", - containerClass: "", - countryOrder: null, - countrySearch: !0, - customPlaceholder: null, - dropdownContainer: null, - excludeCountries: [], - fixDropdownWidth: !0, - formatAsYouType: !0, - formatOnDisplay: !0, - geoIpLookup: null, - hiddenInput: null, - i18n: {}, - initialCountry: "", - loadUtils: null, - nationalMode: !0, - onlyCountries: [], - placeholderNumberType: "MOBILE", - showFlags: !0, - separateDialCode: !1, - strictMode: !1, - useFullscreenPopup: typeof navigator < "u" && typeof window < "u" ? /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth <= 500 : !1, - validationNumberTypes: ["MOBILE"] - }, - ft = ["800", "822", "833", "844", "855", "866", "877", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889"], - ht = Q => Q.replace(/\D/g, ""), - Xe = (Q = "") => Q.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase(), - ct = Q => { - const te = ht(Q); - if (te.charAt(0) === "1") { - const _e = te.substr(1, 3); - return ft.includes(_e) - } - return !1 - }, - Je = (Q, te, _e, ne) => { - if (_e === 0 && !ne) return 0; - let Pe = 0; - for (let Me = 0; Me < te.length; Me++) { - if (/[+0-9]/.test(te[Me]) && Pe++, Pe === Q && !ne) return Me + 1; - if (ne && Pe === Q + 1) return Me - } - return te.length - }, - Be = (Q, te, _e) => { - const ne = document.createElement(Q); - return te && Object.entries(te).forEach(([Pe, Me]) => ne.setAttribute(Pe, Me)), _e && _e.appendChild(ne), ne - }, - st = (Q, ...te) => { - const { - instances: _e - } = ke; - Object.values(_e).forEach(ne => ne[Q](...te)) - }, - it = class { - constructor(Q, te = {}) { - this.id = Ee++, this.telInput = Q, this.highlightedItem = null, this.options = Object.assign({}, Ne, te), this.hadInitialPlaceholder = !!Q.getAttribute("placeholder") - } - _init() { - this.options.useFullscreenPopup && (this.options.fixDropdownWidth = !1), this.options.onlyCountries.length === 1 && (this.options.initialCountry = this.options.onlyCountries[0]), this.options.separateDialCode && (this.options.nationalMode = !1), this.options.allowDropdown && !this.options.showFlags && !this.options.separateDialCode && (this.options.nationalMode = !1), this.options.useFullscreenPopup && !this.options.dropdownContainer && (this.options.dropdownContainer = document.body), this.isAndroid = typeof navigator < "u" ? /Android/i.test(navigator.userAgent) : !1, this.isRTL = !!this.telInput.closest("[dir=rtl]"); - const Q = this.options.allowDropdown || this.options.separateDialCode; - this.showSelectedCountryOnLeft = this.isRTL ? !Q : Q, this.options.separateDialCode && (this.isRTL ? this.originalPaddingRight = this.telInput.style.paddingRight : this.originalPaddingLeft = this.telInput.style.paddingLeft), this.options.i18n = { - ...Oe, - ...this.options.i18n - }; - const te = new Promise((ne, Pe) => { - this.resolveAutoCountryPromise = ne, this.rejectAutoCountryPromise = Pe - }), - _e = new Promise((ne, Pe) => { - this.resolveUtilsScriptPromise = ne, this.rejectUtilsScriptPromise = Pe - }); - this.promise = Promise.all([te, _e]), this.selectedCountryData = {}, this._processCountryData(), this._generateMarkup(), this._setInitialState(), this._initListeners(), this._initRequests() - } - _processCountryData() { - this._processAllCountries(), this._processDialCodes(), this._translateCountryNames(), this._sortCountries() - } - _sortCountries() { - this.options.countryOrder && (this.options.countryOrder = this.options.countryOrder.map(Q => Q.toLowerCase())), this.countries.sort((Q, te) => { - const { - countryOrder: _e - } = this.options; - if (_e) { - const ne = _e.indexOf(Q.iso2), - Pe = _e.indexOf(te.iso2), - Me = ne > -1, - at = Pe > -1; - if (Me || at) return Me && at ? ne - Pe : Me ? -1 : 1 - } - return Q.name.localeCompare(te.name) - }) - } - _addToDialCodeMap(Q, te, _e) { - te.length > this.dialCodeMaxLen && (this.dialCodeMaxLen = te.length), this.dialCodeToIso2Map.hasOwnProperty(te) || (this.dialCodeToIso2Map[te] = []); - for (let Pe = 0; Pe < this.dialCodeToIso2Map[te].length; Pe++) - if (this.dialCodeToIso2Map[te][Pe] === Q) return; - const ne = _e !== void 0 ? _e : this.dialCodeToIso2Map[te].length; - this.dialCodeToIso2Map[te][ne] = Q - } - _processAllCountries() { - const { - onlyCountries: Q, - excludeCountries: te - } = this.options; - if (Q.length) { - const _e = Q.map(ne => ne.toLowerCase()); - this.countries = ye.filter(ne => _e.includes(ne.iso2)) - } else if (te.length) { - const _e = te.map(ne => ne.toLowerCase()); - this.countries = ye.filter(ne => !_e.includes(ne.iso2)) - } else this.countries = ye - } - _translateCountryNames() { - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q].iso2.toLowerCase(); - this.options.i18n.hasOwnProperty(te) && (this.countries[Q].name = this.options.i18n[te]) - } - } - _processDialCodes() { - this.dialCodes = {}, this.dialCodeMaxLen = 0, this.dialCodeToIso2Map = {}; - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q]; - this.dialCodes[te.dialCode] || (this.dialCodes[te.dialCode] = !0), this._addToDialCodeMap(te.iso2, te.dialCode, te.priority) - } - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q]; - if (te.areaCodes) { - const _e = this.dialCodeToIso2Map[te.dialCode][0]; - for (let ne = 0; ne < te.areaCodes.length; ne++) { - const Pe = te.areaCodes[ne]; - for (let Me = 1; Me < Pe.length; Me++) { - const at = Pe.substr(0, Me), - We = te.dialCode + at; - this._addToDialCodeMap(_e, We), this._addToDialCodeMap(te.iso2, We) - } - this._addToDialCodeMap(te.iso2, te.dialCode + Pe) - } - } - } - } - _generateMarkup() { - var pt, It, ut; - this.telInput.classList.add("iti__tel-input"), !this.telInput.hasAttribute("autocomplete") && !(this.telInput.form && this.telInput.form.hasAttribute("autocomplete")) && this.telInput.setAttribute("autocomplete", "off"); - const { - allowDropdown: Q, - separateDialCode: te, - showFlags: _e, - containerClass: ne, - hiddenInput: Pe, - dropdownContainer: Me, - fixDropdownWidth: at, - useFullscreenPopup: We, - countrySearch: Ct, - i18n: _t - } = this.options; - let xt = "iti"; - Q && (xt += " iti--allow-dropdown"), _e && (xt += " iti--show-flags"), ne && (xt += ` ${ne}`), We || (xt += " iti--inline-dropdown"); - const tt = Be("div", { - class: xt - }); - if ((pt = this.telInput.parentNode) == null || pt.insertBefore(tt, this.telInput), Q || _e || te) { - this.countryContainer = Be("div", { - class: "iti__country-container" - }, tt), this.showSelectedCountryOnLeft ? this.countryContainer.style.left = "0px" : this.countryContainer.style.right = "0px", Q ? (this.selectedCountry = Be("button", { - type: "button", - class: "iti__selected-country", - "aria-expanded": "false", - "aria-label": this.options.i18n.selectedCountryAriaLabel, - "aria-haspopup": "true", - "aria-controls": `iti-${this.id}__dropdown-content`, - role: "combobox" - }, this.countryContainer), this.telInput.disabled && this.selectedCountry.setAttribute("disabled", "true")) : this.selectedCountry = Be("div", { - class: "iti__selected-country" - }, this.countryContainer); - const bt = Be("div", { - class: "iti__selected-country-primary" - }, this.selectedCountry); - if (this.selectedCountryInner = Be("div", { - class: "iti__flag" - }, bt), this.selectedCountryA11yText = Be("span", { - class: "iti__a11y-text" - }, this.selectedCountryInner), Q && (this.dropdownArrow = Be("div", { - class: "iti__arrow", - "aria-hidden": "true" - }, bt)), te && (this.selectedDialCode = Be("div", { - class: "iti__selected-dial-code" - }, this.selectedCountry)), Q) { - const wt = at ? "" : "iti--flexible-dropdown-width"; - if (this.dropdownContent = Be("div", { - id: `iti-${this.id}__dropdown-content`, - class: `iti__dropdown-content iti__hide ${wt}` - }), Ct && (this.searchInput = Be("input", { - type: "text", - class: "iti__search-input", - placeholder: _t.searchPlaceholder, - role: "combobox", - "aria-expanded": "true", - "aria-label": _t.searchPlaceholder, - "aria-controls": `iti-${this.id}__country-listbox`, - "aria-autocomplete": "list", - autocomplete: "off" - }, this.dropdownContent), this.searchResultsA11yText = Be("span", { - class: "iti__a11y-text" - }, this.dropdownContent)), this.countryList = Be("ul", { - class: "iti__country-list", - id: `iti-${this.id}__country-listbox`, - role: "listbox", - "aria-label": _t.countryListAriaLabel - }, this.dropdownContent), this._appendListItems(), Ct && this._updateSearchResultsText(), Me) { - let dt = "iti iti--container"; - We ? dt += " iti--fullscreen-popup" : dt += " iti--inline-dropdown", this.dropdown = Be("div", { - class: dt - }), this.dropdown.appendChild(this.dropdownContent) - } else this.countryContainer.appendChild(this.dropdownContent) - } - } - if (tt.appendChild(this.telInput), this._updateInputPadding(), Pe) { - const bt = this.telInput.getAttribute("name") || "", - wt = Pe(bt); - if (wt.phone) { - const dt = (It = this.telInput.form) == null ? void 0 : It.querySelector(`input[name="${wt.phone}"]`); - dt ? this.hiddenInput = dt : (this.hiddenInput = Be("input", { - type: "hidden", - name: wt.phone - }), tt.appendChild(this.hiddenInput)) - } - if (wt.country) { - const dt = (ut = this.telInput.form) == null ? void 0 : ut.querySelector(`input[name="${wt.country}"]`); - dt ? this.hiddenInputCountry = dt : (this.hiddenInputCountry = Be("input", { - type: "hidden", - name: wt.country - }), tt.appendChild(this.hiddenInputCountry)) - } - } - } - _appendListItems() { - for (let Q = 0; Q < this.countries.length; Q++) { - const te = this.countries[Q], - _e = Q === 0 ? "iti__highlight" : "", - ne = Be("li", { - id: `iti-${this.id}__item-${te.iso2}`, - class: `iti__country ${_e}`, - tabindex: "-1", - role: "option", - "data-dial-code": te.dialCode, - "data-country-code": te.iso2, - "aria-selected": "false" - }, this.countryList); - te.nodeById[this.id] = ne; - let Pe = ""; - this.options.showFlags && (Pe += `
                `), Pe += `${te.name}`, Pe += `+${te.dialCode}`, ne.insertAdjacentHTML("beforeend", Pe) - } - } - _setInitialState(Q = !1) { - const te = this.telInput.getAttribute("value"), - _e = this.telInput.value, - Pe = te && te.charAt(0) === "+" && (!_e || _e.charAt(0) !== "+") ? te : _e, - Me = this._getDialCode(Pe), - at = ct(Pe), - { - initialCountry: We, - geoIpLookup: Ct - } = this.options, - _t = We === "auto" && Ct; - if (Me && !at) this._updateCountryFromNumber(Pe); - else if (!_t || Q) { - const xt = We ? We.toLowerCase() : ""; - xt && this._getCountryData(xt, !0) ? this._setCountry(xt) : Me && at ? this._setCountry("us") : this._setCountry() - } - Pe && this._updateValFromNumber(Pe) - } - _initListeners() { - this._initTelInputListeners(), this.options.allowDropdown && this._initDropdownListeners(), (this.hiddenInput || this.hiddenInputCountry) && this.telInput.form && this._initHiddenInputListener() - } - _initHiddenInputListener() { - var Q; - this._handleHiddenInputSubmit = () => { - this.hiddenInput && (this.hiddenInput.value = this.getNumber()), this.hiddenInputCountry && (this.hiddenInputCountry.value = this.getSelectedCountryData().iso2 || "") - }, (Q = this.telInput.form) == null || Q.addEventListener("submit", this._handleHiddenInputSubmit) - } - _initDropdownListeners() { - this._handleLabelClick = te => { - this.dropdownContent.classList.contains("iti__hide") ? this.telInput.focus() : te.preventDefault() - }; - const Q = this.telInput.closest("label"); - Q && Q.addEventListener("click", this._handleLabelClick), this._handleClickSelectedCountry = () => { - this.dropdownContent.classList.contains("iti__hide") && !this.telInput.disabled && !this.telInput.readOnly && this._openDropdown() - }, this.selectedCountry.addEventListener("click", this._handleClickSelectedCountry), this._handleCountryContainerKeydown = te => { - this.dropdownContent.classList.contains("iti__hide") && ["ArrowUp", "ArrowDown", " ", "Enter"].includes(te.key) && (te.preventDefault(), te.stopPropagation(), this._openDropdown()), te.key === "Tab" && this._closeDropdown() - }, this.countryContainer.addEventListener("keydown", this._handleCountryContainerKeydown) - } - _initRequests() { - let { - loadUtils: Q, - initialCountry: te, - geoIpLookup: _e - } = this.options; - Q && !ke.utils ? (this._handlePageLoad = () => { - var Pe; - window.removeEventListener("load", this._handlePageLoad), (Pe = ke.attachUtils(Q)) == null || Pe.catch(() => {}) - }, ke.documentReady() ? this._handlePageLoad() : window.addEventListener("load", this._handlePageLoad)) : this.resolveUtilsScriptPromise(), te === "auto" && _e && !this.selectedCountryData.iso2 ? this._loadAutoCountry() : this.resolveAutoCountryPromise() - } - _loadAutoCountry() { - ke.autoCountry ? this.handleAutoCountry() : ke.startedLoadingAutoCountry || (ke.startedLoadingAutoCountry = !0, typeof this.options.geoIpLookup == "function" && this.options.geoIpLookup((Q = "") => { - const te = Q.toLowerCase(); - te && this._getCountryData(te, !0) ? (ke.autoCountry = te, setTimeout(() => st("handleAutoCountry"))) : (this._setInitialState(!0), st("rejectAutoCountryPromise")) - }, () => { - this._setInitialState(!0), st("rejectAutoCountryPromise") - })) - } - _openDropdownWithPlus() { - this._openDropdown(), this.searchInput.value = "+", this._filterCountries("", !0) - } - _initTelInputListeners() { - const { - strictMode: Q, - formatAsYouType: te, - separateDialCode: _e, - formatOnDisplay: ne, - allowDropdown: Pe, - countrySearch: Me - } = this.options; - let at = !1; - new RegExp("\\p{L}", "u").test(this.telInput.value) && (at = !0), this._handleInputEvent = We => { - if (this.isAndroid && (We == null ? void 0 : We.data) === "+" && _e && Pe && Me) { - const tt = this.telInput.selectionStart || 0, - pt = this.telInput.value.substring(0, tt - 1), - It = this.telInput.value.substring(tt); - this.telInput.value = pt + It, this._openDropdownWithPlus(); - return - } - this._updateCountryFromNumber(this.telInput.value) && this._triggerCountryChange(); - const Ct = (We == null ? void 0 : We.data) && /[^+0-9]/.test(We.data), - _t = (We == null ? void 0 : We.inputType) === "insertFromPaste" && this.telInput.value; - Ct || _t && !Q ? at = !0 : /[^+0-9]/.test(this.telInput.value) || (at = !1); - const xt = (We == null ? void 0 : We.detail) && We.detail.isSetNumber && !ne; - if (te && !at && !xt) { - const tt = this.telInput.selectionStart || 0, - It = this.telInput.value.substring(0, tt).replace(/[^+0-9]/g, "").length, - ut = (We == null ? void 0 : We.inputType) === "deleteContentForward", - bt = this._formatNumberAsYouType(), - wt = Je(It, bt, tt, ut); - this.telInput.value = bt, this.telInput.setSelectionRange(wt, wt) - } - }, this.telInput.addEventListener("input", this._handleInputEvent), (Q || _e) && (this._handleKeydownEvent = We => { - if (We.key && We.key.length === 1 && !We.altKey && !We.ctrlKey && !We.metaKey) { - if (_e && Pe && Me && We.key === "+") { - We.preventDefault(), this._openDropdownWithPlus(); - return - } - if (Q) { - const Ct = this.telInput.value, - _t = Ct.charAt(0) === "+", - xt = !_t && this.telInput.selectionStart === 0 && We.key === "+", - tt = /^[0-9]$/.test(We.key), - pt = _e ? tt : xt || tt, - It = Ct.slice(0, this.telInput.selectionStart) + We.key + Ct.slice(this.telInput.selectionEnd), - ut = this._getFullNumber(It), - bt = ke.utils.getCoreNumber(ut, this.selectedCountryData.iso2), - wt = this.maxCoreNumberLength && bt.length > this.maxCoreNumberLength; - let dt = !1; - if (_t) { - const Lt = this.selectedCountryData.iso2; - dt = this._getCountryFromNumber(ut) !== Lt - }(!pt || wt && !dt && !xt) && We.preventDefault() - } - } - }, this.telInput.addEventListener("keydown", this._handleKeydownEvent)) - } - _cap(Q) { - const te = parseInt(this.telInput.getAttribute("maxlength") || "", 10); - return te && Q.length > te ? Q.substr(0, te) : Q - } - _trigger(Q, te = {}) { - const _e = new CustomEvent(Q, { - bubbles: !0, - cancelable: !0, - detail: te - }); - this.telInput.dispatchEvent(_e) - } - _openDropdown() { - const { - fixDropdownWidth: Q, - countrySearch: te - } = this.options; - if (Q && (this.dropdownContent.style.width = `${this.telInput.offsetWidth}px`), this.dropdownContent.classList.remove("iti__hide"), this.selectedCountry.setAttribute("aria-expanded", "true"), this._setDropdownPosition(), te) { - const _e = this.countryList.firstElementChild; - _e && (this._highlightListItem(_e, !1), this.countryList.scrollTop = 0), this.searchInput.focus() - } - this._bindDropdownListeners(), this.dropdownArrow.classList.add("iti__arrow--up"), this._trigger("open:countrydropdown") - } - _setDropdownPosition() { - if (this.options.dropdownContainer && this.options.dropdownContainer.appendChild(this.dropdown), !this.options.useFullscreenPopup) { - const Q = this.telInput.getBoundingClientRect(), - te = this.telInput.offsetHeight; - this.options.dropdownContainer && (this.dropdown.style.top = `${Q.top+te}px`, this.dropdown.style.left = `${Q.left}px`, this._handleWindowScroll = () => this._closeDropdown(), window.addEventListener("scroll", this._handleWindowScroll)) - } - } - _bindDropdownListeners() { - this._handleMouseoverCountryList = ne => { - var Me; - const Pe = (Me = ne.target) == null ? void 0 : Me.closest(".iti__country"); - Pe && this._highlightListItem(Pe, !1) - }, this.countryList.addEventListener("mouseover", this._handleMouseoverCountryList), this._handleClickCountryList = ne => { - var Me; - const Pe = (Me = ne.target) == null ? void 0 : Me.closest(".iti__country"); - Pe && this._selectListItem(Pe) - }, this.countryList.addEventListener("click", this._handleClickCountryList); - let Q = !0; - this._handleClickOffToClose = () => { - Q || this._closeDropdown(), Q = !1 - }, document.documentElement.addEventListener("click", this._handleClickOffToClose); - let te = "", - _e = null; - if (this._handleKeydownOnDropdown = ne => { - ["ArrowUp", "ArrowDown", "Enter", "Escape"].includes(ne.key) && (ne.preventDefault(), ne.stopPropagation(), ne.key === "ArrowUp" || ne.key === "ArrowDown" ? this._handleUpDownKey(ne.key) : ne.key === "Enter" ? this._handleEnterKey() : ne.key === "Escape" && this._closeDropdown()), !this.options.countrySearch && /^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(ne.key) && (ne.stopPropagation(), _e && clearTimeout(_e), te += ne.key.toLowerCase(), this._searchForCountry(te), _e = setTimeout(() => { - te = "" - }, 1e3)) - }, document.addEventListener("keydown", this._handleKeydownOnDropdown), this.options.countrySearch) { - const ne = () => { - const Me = this.searchInput.value.trim(); - Me ? this._filterCountries(Me) : this._filterCountries("", !0) - }; - let Pe = null; - this._handleSearchChange = () => { - Pe && clearTimeout(Pe), Pe = setTimeout(() => { - ne(), Pe = null - }, 100) - }, this.searchInput.addEventListener("input", this._handleSearchChange), this.searchInput.addEventListener("click", Me => Me.stopPropagation()) - } - } - _searchForCountry(Q) { - for (let te = 0; te < this.countries.length; te++) { - const _e = this.countries[te]; - if (_e.name.substr(0, Q.length).toLowerCase() === Q) { - const Pe = _e.nodeById[this.id]; - this._highlightListItem(Pe, !1), this._scrollTo(Pe); - break - } - } - } - _filterCountries(Q, te = !1) { - let _e = !0; - this.countryList.innerHTML = ""; - const ne = Xe(Q); - for (let Pe = 0; Pe < this.countries.length; Pe++) { - const Me = this.countries[Pe], - at = Xe(Me.name), - We = Me.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map(_t => _t[0]).join("").toLowerCase(), - Ct = `+${Me.dialCode}`; - if (te || at.includes(ne) || Ct.includes(ne) || Me.iso2.includes(ne) || We.includes(ne)) { - const _t = Me.nodeById[this.id]; - _t && this.countryList.appendChild(_t), _e && (this._highlightListItem(_t, !1), _e = !1) - } - } - _e && this._highlightListItem(null, !1), this.countryList.scrollTop = 0, this._updateSearchResultsText() - } - _updateSearchResultsText() { - const { - i18n: Q - } = this.options, te = this.countryList.childElementCount; - let _e; - te === 0 ? _e = Q.zeroSearchResults : te === 1 ? _e = Q.oneSearchResult : _e = Q.multipleSearchResults.replace("${count}", te.toString()), this.searchResultsA11yText.textContent = _e - } - _handleUpDownKey(Q) { - var _e, ne; - let te = Q === "ArrowUp" ? (_e = this.highlightedItem) == null ? void 0 : _e.previousElementSibling : (ne = this.highlightedItem) == null ? void 0 : ne.nextElementSibling; - !te && this.countryList.childElementCount > 1 && (te = Q === "ArrowUp" ? this.countryList.lastElementChild : this.countryList.firstElementChild), te && (this._scrollTo(te), this._highlightListItem(te, !1)) - } - _handleEnterKey() { - this.highlightedItem && this._selectListItem(this.highlightedItem) - } - _updateValFromNumber(Q) { - let te = Q; - if (this.options.formatOnDisplay && ke.utils && this.selectedCountryData) { - const _e = this.options.nationalMode || te.charAt(0) !== "+" && !this.options.separateDialCode, - { - NATIONAL: ne, - INTERNATIONAL: Pe - } = ke.utils.numberFormat, - Me = _e ? ne : Pe; - te = ke.utils.formatNumber(te, this.selectedCountryData.iso2, Me) - } - te = this._beforeSetNumber(te), this.telInput.value = te - } - _updateCountryFromNumber(Q) { - const te = this._getCountryFromNumber(Q); - return te !== null ? this._setCountry(te) : !1 - } - _ensureHasDialCode(Q) { - const { - dialCode: te, - nationalPrefix: _e - } = this.selectedCountryData; - if (Q.charAt(0) === "+" || !te) return Q; - const Me = _e && Q.charAt(0) === _e && !this.options.separateDialCode ? Q.substring(1) : Q; - return `+${te}${Me}` - } - _getCountryFromNumber(Q) { - const te = Q.indexOf("+"); - let _e = te ? Q.substring(te) : Q; - const ne = this.selectedCountryData.iso2, - Pe = this.selectedCountryData.dialCode; - _e = this._ensureHasDialCode(_e); - const Me = this._getDialCode(_e, !0), - at = ht(_e); - if (Me) { - const We = ht(Me), - Ct = this.dialCodeToIso2Map[We]; - if (!ne && this.defaultCountry && Ct.includes(this.defaultCountry)) return this.defaultCountry; - const _t = ne && Ct.includes(ne) && (at.length === We.length || !this.selectedCountryData.areaCodes); - if (!(Pe === "1" && ct(at)) && !_t) { - for (let tt = 0; tt < Ct.length; tt++) - if (Ct[tt]) return Ct[tt] - } - } else { - if (_e.charAt(0) === "+" && at.length) return ""; - if ((!_e || _e === "+") && !this.selectedCountryData.iso2) return this.defaultCountry - } - return null - } - _highlightListItem(Q, te) { - const _e = this.highlightedItem; - if (_e && (_e.classList.remove("iti__highlight"), _e.setAttribute("aria-selected", "false")), this.highlightedItem = Q, this.highlightedItem) { - this.highlightedItem.classList.add("iti__highlight"), this.highlightedItem.setAttribute("aria-selected", "true"); - const ne = this.highlightedItem.getAttribute("id") || ""; - this.selectedCountry.setAttribute("aria-activedescendant", ne), this.options.countrySearch && this.searchInput.setAttribute("aria-activedescendant", ne) - } - te && this.highlightedItem.focus() - } - _getCountryData(Q, te) { - for (let _e = 0; _e < this.countries.length; _e++) - if (this.countries[_e].iso2 === Q) return this.countries[_e]; - if (te) return null; - throw new Error(`No country data for '${Q}'`) - } - _setCountry(Q) { - const { - separateDialCode: te, - showFlags: _e, - i18n: ne - } = this.options, Pe = this.selectedCountryData.iso2 ? this.selectedCountryData : {}; - if (this.selectedCountryData = Q ? this._getCountryData(Q, !1) || {} : {}, this.selectedCountryData.iso2 && (this.defaultCountry = this.selectedCountryData.iso2), this.selectedCountryInner) { - let Me = "", - at = ""; - Q && _e ? (Me = `iti__flag iti__${Q}`, at = `${this.selectedCountryData.name} +${this.selectedCountryData.dialCode}`) : (Me = "iti__flag iti__globe", at = ne.noCountrySelected), this.selectedCountryInner.className = Me, this.selectedCountryA11yText.textContent = at - } - if (this._setSelectedCountryTitleAttribute(Q, te), te) { - const Me = this.selectedCountryData.dialCode ? `+${this.selectedCountryData.dialCode}` : ""; - this.selectedDialCode.innerHTML = Me, this._updateInputPadding() - } - return this._updatePlaceholder(), this._updateMaxLength(), Pe.iso2 !== Q - } - _updateInputPadding() { - if (this.selectedCountry) { - const te = (this.selectedCountry.offsetWidth || this._getHiddenSelectedCountryWidth()) + 6; - this.showSelectedCountryOnLeft ? this.telInput.style.paddingLeft = `${te}px` : this.telInput.style.paddingRight = `${te}px` - } - } - _updateMaxLength() { - const { - strictMode: Q, - placeholderNumberType: te, - validationNumberTypes: _e - } = this.options, { - iso2: ne - } = this.selectedCountryData; - if (Q && ke.utils) - if (ne) { - const Pe = ke.utils.numberType[te]; - let Me = ke.utils.getExampleNumber(ne, !1, Pe, !0), - at = Me; - for (; ke.utils.isPossibleNumber(Me, ne, _e);) at = Me, Me += "0"; - const We = ke.utils.getCoreNumber(at, ne); - this.maxCoreNumberLength = We.length, ne === "by" && (this.maxCoreNumberLength = We.length + 1) - } else this.maxCoreNumberLength = null - } - _setSelectedCountryTitleAttribute(Q = null, te) { - if (!this.selectedCountry) return; - let _e; - Q && !te ? _e = `${this.selectedCountryData.name}: +${this.selectedCountryData.dialCode}` : Q ? _e = this.selectedCountryData.name : _e = "Unknown", this.selectedCountry.setAttribute("title", _e) - } - _getHiddenSelectedCountryWidth() { - if (this.telInput.parentNode) { - const Q = this.telInput.parentNode.cloneNode(!1); - Q.style.visibility = "hidden", document.body.appendChild(Q); - const te = this.countryContainer.cloneNode(); - Q.appendChild(te); - const _e = this.selectedCountry.cloneNode(!0); - te.appendChild(_e); - const ne = _e.offsetWidth; - return document.body.removeChild(Q), ne - } - return 0 - } - _updatePlaceholder() { - const { - autoPlaceholder: Q, - placeholderNumberType: te, - nationalMode: _e, - customPlaceholder: ne - } = this.options, Pe = Q === "aggressive" || !this.hadInitialPlaceholder && Q === "polite"; - if (ke.utils && Pe) { - const Me = ke.utils.numberType[te]; - let at = this.selectedCountryData.iso2 ? ke.utils.getExampleNumber(this.selectedCountryData.iso2, _e, Me) : ""; - at = this._beforeSetNumber(at), typeof ne == "function" && (at = ne(at, this.selectedCountryData)), this.telInput.setAttribute("placeholder", at) - } - } - _selectListItem(Q) { - const te = this._setCountry(Q.getAttribute("data-country-code")); - this._closeDropdown(), this._updateDialCode(Q.getAttribute("data-dial-code")), this.telInput.focus(), te && this._triggerCountryChange() - } - _closeDropdown() { - this.dropdownContent.classList.add("iti__hide"), this.selectedCountry.setAttribute("aria-expanded", "false"), this.selectedCountry.removeAttribute("aria-activedescendant"), this.highlightedItem && this.highlightedItem.setAttribute("aria-selected", "false"), this.options.countrySearch && this.searchInput.removeAttribute("aria-activedescendant"), this.dropdownArrow.classList.remove("iti__arrow--up"), document.removeEventListener("keydown", this._handleKeydownOnDropdown), this.options.countrySearch && this.searchInput.removeEventListener("input", this._handleSearchChange), document.documentElement.removeEventListener("click", this._handleClickOffToClose), this.countryList.removeEventListener("mouseover", this._handleMouseoverCountryList), this.countryList.removeEventListener("click", this._handleClickCountryList), this.options.dropdownContainer && (this.options.useFullscreenPopup || window.removeEventListener("scroll", this._handleWindowScroll), this.dropdown.parentNode && this.dropdown.parentNode.removeChild(this.dropdown)), this._handlePageLoad && window.removeEventListener("load", this._handlePageLoad), this._trigger("close:countrydropdown") - } - _scrollTo(Q) { - const te = this.countryList, - _e = document.documentElement.scrollTop, - ne = te.offsetHeight, - Pe = te.getBoundingClientRect().top + _e, - Me = Pe + ne, - at = Q.offsetHeight, - We = Q.getBoundingClientRect().top + _e, - Ct = We + at, - _t = We - Pe + te.scrollTop; - if (We < Pe) te.scrollTop = _t; - else if (Ct > Me) { - const xt = ne - at; - te.scrollTop = _t - xt - } - } - _updateDialCode(Q) { - const te = this.telInput.value, - _e = `+${Q}`; - let ne; - if (te.charAt(0) === "+") { - const Pe = this._getDialCode(te); - Pe ? ne = te.replace(Pe, _e) : ne = _e, this.telInput.value = ne - } - } - _getDialCode(Q, te) { - let _e = ""; - if (Q.charAt(0) === "+") { - let ne = ""; - for (let Pe = 0; Pe < Q.length; Pe++) { - const Me = Q.charAt(Pe); - if (!isNaN(parseInt(Me, 10))) { - if (ne += Me, te) this.dialCodeToIso2Map[ne] && (_e = Q.substr(0, Pe + 1)); - else if (this.dialCodes[ne]) { - _e = Q.substr(0, Pe + 1); - break - } - if (ne.length === this.dialCodeMaxLen) break - } - } - } - return _e - } - _getFullNumber(Q) { - const te = Q || this.telInput.value.trim(), - { - dialCode: _e - } = this.selectedCountryData; - let ne; - const Pe = ht(te); - return this.options.separateDialCode && te.charAt(0) !== "+" && _e && Pe ? ne = `+${_e}` : ne = "", ne + te - } - _beforeSetNumber(Q) { - let te = Q; - if (this.options.separateDialCode) { - let _e = this._getDialCode(te); - if (_e) { - _e = `+${this.selectedCountryData.dialCode}`; - const ne = te[_e.length] === " " || te[_e.length] === "-" ? _e.length + 1 : _e.length; - te = te.substr(ne) - } - } - return this._cap(te) - } - _triggerCountryChange() { - this._trigger("countrychange") - } - _formatNumberAsYouType() { - const Q = this._getFullNumber(), - te = ke.utils ? ke.utils.formatNumberAsYouType(Q, this.selectedCountryData.iso2) : Q, - { - dialCode: _e - } = this.selectedCountryData; - return this.options.separateDialCode && this.telInput.value.charAt(0) !== "+" && te.includes(`+${_e}`) ? (te.split(`+${_e}`)[1] || "").trim() : te - } - handleAutoCountry() { - this.options.initialCountry === "auto" && ke.autoCountry && (this.defaultCountry = ke.autoCountry, this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe") || this.setCountry(this.defaultCountry), this.resolveAutoCountryPromise()) - } - handleUtils() { - ke.utils && (this.telInput.value && this._updateValFromNumber(this.telInput.value), this.selectedCountryData.iso2 && (this._updatePlaceholder(), this._updateMaxLength())), this.resolveUtilsScriptPromise() - } - destroy() { - var Pe, Me; - const { - allowDropdown: Q, - separateDialCode: te - } = this.options; - if (Q) { - this._closeDropdown(), this.selectedCountry.removeEventListener("click", this._handleClickSelectedCountry), this.countryContainer.removeEventListener("keydown", this._handleCountryContainerKeydown); - const at = this.telInput.closest("label"); - at && at.removeEventListener("click", this._handleLabelClick) - } - const { - form: _e - } = this.telInput; - this._handleHiddenInputSubmit && _e && _e.removeEventListener("submit", this._handleHiddenInputSubmit), this.telInput.removeEventListener("input", this._handleInputEvent), this._handleKeydownEvent && this.telInput.removeEventListener("keydown", this._handleKeydownEvent), this.telInput.removeAttribute("data-intl-tel-input-id"), te && (this.isRTL ? this.telInput.style.paddingRight = this.originalPaddingRight : this.telInput.style.paddingLeft = this.originalPaddingLeft); - const ne = this.telInput.parentNode; - (Pe = ne == null ? void 0 : ne.parentNode) == null || Pe.insertBefore(this.telInput, ne), (Me = ne == null ? void 0 : ne.parentNode) == null || Me.removeChild(ne), delete ke.instances[this.id] - } - getExtension() { - return ke.utils ? ke.utils.getExtension(this._getFullNumber(), this.selectedCountryData.iso2) : "" - } - getNumber(Q) { - if (ke.utils) { - const { - iso2: te - } = this.selectedCountryData; - return ke.utils.formatNumber(this._getFullNumber(), te, Q) - } - return "" - } - getNumberType() { - return ke.utils ? ke.utils.getNumberType(this._getFullNumber(), this.selectedCountryData.iso2) : -99 - } - getSelectedCountryData() { - return this.selectedCountryData - } - getValidationError() { - if (ke.utils) { - const { - iso2: Q - } = this.selectedCountryData; - return ke.utils.getValidationError(this._getFullNumber(), Q) - } - return -99 - } - isValidNumber() { - if (!this.selectedCountryData.iso2) return !1; - const Q = this._getFullNumber(), - te = Q.search(new RegExp("\\p{L}", "u")); - if (te > -1) { - const _e = Q.substring(0, te), - ne = this._utilsIsPossibleNumber(_e), - Pe = this._utilsIsPossibleNumber(Q); - return ne && Pe - } - return this._utilsIsPossibleNumber(Q) - } - _utilsIsPossibleNumber(Q) { - return ke.utils ? ke.utils.isPossibleNumber(Q, this.selectedCountryData.iso2, this.options.validationNumberTypes) : null - } - isValidNumberPrecise() { - if (!this.selectedCountryData.iso2) return !1; - const Q = this._getFullNumber(), - te = Q.search(new RegExp("\\p{L}", "u")); - if (te > -1) { - const _e = Q.substring(0, te), - ne = this._utilsIsValidNumber(_e), - Pe = this._utilsIsValidNumber(Q); - return ne && Pe - } - return this._utilsIsValidNumber(Q) - } - _utilsIsValidNumber(Q) { - return ke.utils ? ke.utils.isValidNumber(Q, this.selectedCountryData.iso2, this.options.validationNumberTypes) : null - } - setCountry(Q) { - const te = Q == null ? void 0 : Q.toLowerCase(), - _e = this.selectedCountryData.iso2; - (Q && te !== _e || !Q && _e) && (this._setCountry(te), this._updateDialCode(this.selectedCountryData.dialCode), this._triggerCountryChange()) - } - setNumber(Q) { - const te = this._updateCountryFromNumber(Q); - this._updateValFromNumber(Q), te && this._triggerCountryChange(), this._trigger("input", { - isSetNumber: !0 - }) - } - setPlaceholderNumberType(Q) { - this.options.placeholderNumberType = Q, this._updatePlaceholder() - } - setDisabled(Q) { - this.telInput.disabled = Q, Q ? this.selectedCountry.setAttribute("disabled", "true") : this.selectedCountry.removeAttribute("disabled") - } - }, - Qe = Q => { - if (!ke.utils && !ke.startedLoadingUtilsScript) { - let te; - if (typeof Q == "function") try { - te = Promise.resolve(Q()) - } catch (_e) { - return Promise.reject(_e) - } else return Promise.reject(new TypeError(`The argument passed to attachUtils must be a function that returns a promise for the utilities module, not ${typeof Q}`)); - return ke.startedLoadingUtilsScript = !0, te.then(_e => { - const ne = _e == null ? void 0 : _e.default; - if (!ne || typeof ne != "object") throw new TypeError("The loader function passed to attachUtils did not resolve to a module object with utils as its default export."); - return ke.utils = ne, st("handleUtils"), !0 - }).catch(_e => { - throw st("rejectUtilsScriptPromise", _e), _e - }) - } - return null - }, - ke = Object.assign((Q, te) => { - const _e = new it(Q, te); - return _e._init(), Q.setAttribute("data-intl-tel-input-id", _e.id.toString()), ke.instances[_e.id] = _e, _e - }, { - defaults: Ne, - documentReady: () => document.readyState === "complete", - getCountryData: () => ye, - getInstance: Q => { - const te = Q.getAttribute("data-intl-tel-input-id"); - return te ? ke.instances[te] : null - }, - instances: {}, - attachUtils: Qe, - startedLoadingUtilsScript: !1, - startedLoadingAutoCountry: !1, - version: "25.3.2" - }), - vt = ke; - return $(W) - })(); - return l.default - }) - })(gf)), gf.exports -} -var dE = hE(); -const pE = nm(dE); -var fE = Ie('
                '), - mE = Ie(' '), - _E = Ie('

                ', 1), - gE = async (b, l, _) => { - await l(x(_)) - }, vE = Ie(' '), yE = (b, l) => { - oe(l, "") - }, xE = Ie('

                ', 1), bE = Ie('
                '); - -function wE(b, l) { - Sr(l, !0); - let _ = nt(!0), - C = nt(""), - L = nt(0), - F = nt(!1); - const T = lt(() => x(L) > 0 || x(F)); - let o = nt(!1), - $ = nt(""), - W = nt(void 0); - const ie = lt(() => { - var Re; - return `phone:${(Re=Dt.data)==null?void 0:Re.id}` - }); - Zr(() => { - const Re = localStorage.getItem(x(ie)); - Re && oe(C, Re, !0) - }), Ii(() => { - ni.getOtpCooldown().then(Oe => { - oe(L, Oe.cooldownMs, !0) - }).catch(Oe => { - qr.error(Oe.message) - }).finally(() => { - oe(_, !1) - }); - const Re = 1e3, - Ae = setInterval(() => { - oe(L, Math.max(0, x(L) - Re), !0) - }, Re); - return () => { - clearInterval(Ae) - } - }); - async function pe(Re) { - try { - oe(F, !0); - const Ae = await ni.sendOtp(Re); - qr.info(`${Y3()} ${Ae.phone}`), oe(C, Ae.phone, !0), oe(L, Ae.cooldownMs, !0), localStorage.setItem(x(ie), x(C)) - } catch (Ae) { - qr.error(Ae.message) - } finally { - oe(F, !1) - } - } - Zr(() => { - x($).length === 6 && (oe(o, !0), (async () => { - try { - await ni.verifyOtp(x($)), await Dt.refresh(), qr.success(eC()), localStorage.removeItem(x(ie)), l.onsuccess(x(C)) - } catch (Re) { - qr.error(Re.message) - } finally { - oe($, ""), oe(o, !1) - } - })()) - }); - var ye = bE(), - X = k(ye); - { - var Se = Re => { - var Ae = fE(); - H(Re, Ae) - }, - we = Re => { - var Ae = Jt(), - Oe = zt(Ae); - { - var Ee = ft => { - var ht = _E(), - Xe = zt(ht), - ct = k(Xe), - Je = k(ct, !0); - A(ct); - var Be = V(ct, 2), - st = k(Be, !0); - A(Be), A(Xe); - var it = V(Xe, 2), - Qe = k(it); - On(Qe, () => _e => (oe(W, pE(_e, { - strictMode: !0, - initialCountry: "br", - loadUtils: () => wx(() => import("../chunks/1FgtjJRR.js"), [], import.meta.url), - containerClass: "w-full", - dropdownContainer: document.body - })), () => { - var ne; - (ne = x(W)) == null || ne.destroy() - })); - var ke = V(Qe, 2), - vt = k(ke), - Q = V(vt); - { - var te = _e => { - var ne = mE(), - Pe = k(ne); - A(ne), Ge(Me => fe(Pe, `(${Me??""})`), [() => zd(x(L))]), H(_e, ne) - }; - Ue(Q, _e => { - x(L) > 0 && _e(te) - }) - } - A(ke), A(it), Ge((_e, ne, Pe) => { - fe(Je, _e), fe(st, ne), ke.disabled = x(T), fe(vt, `${Pe??""} `) - }, [() => kC(), () => LC(), () => BC()]), an("submit", it, async () => { - var ne; - if (x(T)) return; - if (!((ne = x(W)) != null && ne.isValidNumber())) { - qr.error(iC()); - return - } - const _e = x(W).getNumber(); - await pe(_e) - }), H(ft, ht) - }, - Ne = ft => { - var ht = xE(), - Xe = zt(ht), - ct = k(Xe), - Je = k(ct, !0); - A(ct); - var Be = V(ct, 2), - st = k(Be); - A(Be), A(Xe); - var it = V(Xe, 2), - Qe = k(it); - { - const Me = (at, We) => { - let Ct = () => We == null ? void 0 : We().cells; - var _t = Jt(), - xt = zt(_t); - _n(xt, () => sE, (tt, pt) => { - pt(tt, { - class: "border-primary", - children: (It, ut) => { - var bt = Jt(), - wt = zt(bt); - nn(wt, 16, Ct, dt => dt, (dt, Lt) => { - var Xt = Jt(), - Yt = zt(Xt); - _n(Yt, () => cE, (nr, ar) => { - ar(nr, { - get cell() { - return Lt - }, - class: "border-base-content/20 size-11 sm:size-12" - }) - }), H(dt, Xt) - }), H(It, bt) - }, - $$slots: { - default: !0 - } - }) - }), H(at, _t) - }; - _n(Qe, () => uE, (at, We) => { - We(at, { - maxlength: 6, - class: "mx-auto w-max", - get disabled() { - return x(o) - }, - get value() { - return x($) - }, - set value(Ct) { - oe($, Ct, !0) - }, - children: Me, - $$slots: { - default: !0 - } - }) - }) - } - A(it); - var ke = V(it, 2), - vt = k(ke); - vt.__click = [gE, pe, C]; - var Q = k(vt), - te = V(Q); - { - var _e = Me => { - var at = vE(), - We = k(at); - A(at), Ge(Ct => fe(We, `(${Ct??""})`), [() => zd(x(L))]), H(Me, at) - }; - Ue(te, Me => { - x(L) > 0 && Me(_e) - }) - } - A(vt); - var ne = V(vt, 2); - ne.__click = [yE, C]; - var Pe = k(ne, !0); - A(ne), A(ke), Ge((Me, at, We, Ct) => { - fe(Je, Me), fe(st, `${at??""} ${x(C)??""}`), vt.disabled = x(T), fe(Q, `${We??""} `), fe(Pe, Ct) - }, [() => NC(), () => VC(), () => $C(), () => WC()]), H(ft, ht) - }; - Ue(Oe, ft => { - x(C) ? ft(Ne, !1) : ft(Ee) - }, !0) - } - H(Re, Ae) - }; - Ue(X, Re => { - x(_) ? Re(Se) : Re(we, !1) - }) - } - A(ye), H(b, ye), Pr() -} -Wi(["click"]); -var TE = Ie(''); - -function CE(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - var C = TE(), - L = k(C), - F = V(k(L), 2); - { - var T = o => { - wE(o, { - onsuccess: () => _(!1) - }) - }; - Ue(F, o => { - _() && o(T) - }) - } - A(L), A(C), On(C, () => o => { - Zr(() => { - _() ? o.show() : o.close() - }) - }), an("close", C, () => _(!1)), H(b, C), Pr() -} -var SE = (b, l) => { - l() - }, - PE = Ie(''), - IE = Ie(''), - ME = (b, l, _) => { - l(x(_).id) - }, - AE = Ie(''), - kE = Ie(''), - EE = Ie('
                '), - zE = (b, l) => { - var _; - (_ = x(l)) == null || _.show() - }, - LE = (b, l) => { - l(!1) - }, - DE = (b, l) => { - var _; - (_ = x(l)) == null || _.close() - }, - RE = async (b, l) => { - try { - oe(l, !0), await ni.deleteMe(), qr.warning(vC()), await Dt.logout() - } catch (_) { - qr.error(_.message) - } finally { - oe(l, !1) - } - }, BE = Ie(' ', 1); - -function FE(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(zn(l.userData.name)), - L = nt(zn(l.userData.discord)), - F = nt(zn(l.userData.showLastPixel)), - T = nt(!1), - o = nt(void 0), - $ = nt(void 0); - Ii(() => { - const Ft = dr => { - dr.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", Ft), () => document.removeEventListener("keydown", Ft) - }); - let W = nt(void 0), - ie = nt(void 0); - Zr(() => { - oe(C, l.userData.name, !0), oe(F, l.userData.showLastPixel, !0) - }), Zr(() => { - _() && !x($) && ni.getMyProfilePictures().then(Ft => { - oe($, Ft, !0) - }).catch(Ft => { - qr.error(Ft.message) - }) - }); - let pe = nt(!1); - async function ye(Ft) { - try { - oe(pe, !0), await ni.changeProfilePicture(Ft), await Dt.refresh() - } finally { - oe(pe, !1) - } - } - var X = BE(), - Se = zt(X), - we = k(Se), - Re = V(k(we), 2), - Ae = k(Re, !0); - A(Re); - var Oe = V(Re, 2), - Ee = k(Oe), - Ne = k(Ee), - ft = k(Ne), - ht = k(ft); - es(ht, { - class: "size-30", - get userId() { - return l.userData.id - }, - get pictureUrl() { - return l.userData.picture - } - }); - var Xe = V(ht, 2), - ct = k(Xe); - Dg(ct, { - class: "size-5" - }), A(Xe), A(ft); - var Je = V(ft, 2); - { - var Be = Ft => { - var dr = EE(), - _r = k(dr), - Ir = k(_r, !0); - A(_r); - var jr = V(_r, 2), - ur = k(jr); - { - var Mr = kr => { - var Nr = IE(); - Nr.__click = [SE, ye]; - var ce = k(Nr); - es(ce, { - class: "size-10 border", - get userId() { - return l.userData.id - } - }); - var O = V(ce, 2); - { - var q = G => { - var K = PE(); - H(G, K) - }; - Ue(O, G => { - x(pe) && G(q) - }) - } - A(Nr), Ge(() => Nr.disabled = x(pe)), H(kr, Nr) - }; - Ue(ur, kr => { - l.userData.picture && kr(Mr) - }) - } - var Ar = V(ur, 2); - nn(Ar, 17, () => x($), kr => kr.id, (kr, Nr) => { - var ce = Jt(), - O = zt(ce); - { - var q = G => { - var K = kE(); - K.__click = [ME, ye, Nr]; - var le = k(K); - es(le, { - class: "size-10 border", - get userId() { - return l.userData.id - }, - get pictureUrl() { - return x(Nr).url - } - }); - var ve = V(le, 2); - { - var Le = Ce => { - var Ze = AE(); - H(Ce, Ze) - }; - Ue(ve, Ce => { - x(pe) && Ce(Le) - }) - } - A(K), Ge(() => K.disabled = x(pe)), H(G, K) - }; - Ue(O, G => { - l.userData.picture !== x(Nr).url && G(q) - }) - } - H(kr, ce) - }), A(jr), A(dr), Ge(kr => fe(Ir, kr), [() => qb()]), H(Ft, dr) - }; - Ue(Je, Ft => { - var dr; - (dr = x($)) != null && dr.length && Ft(Be) - }) - } - A(Ne); - var st = V(Ne, 2), - it = k(st); - { - let Ft = lt(() => xf()), - dr = lt(() => xf()); - Tf(it, { - get label() { - return x(Ft) - }, - get placeholder() { - return x(dr) - }, - min: 1, - max: 16, - get value() { - return x(C) - }, - set value(_r) { - oe(C, _r, !0) - }, - get validate() { - return x(W) - }, - set validate(_r) { - oe(W, _r, !0) - } - }) - } - var Qe = V(it, 2); - { - let Ft = lt(() => $w()); - Tf(Qe, { - label: "Discord", - get placeholder() { - return x(Ft) - }, - max: 32, - get value() { - return x(L) - }, - set value(dr) { - oe(L, dr, !0) - }, - get validate() { - return x(ie) - }, - set validate(dr) { - oe(ie, dr, !0) - } - }) - } - var ke = V(Qe, 2), - vt = k(ke); - ea(vt); - var Q = V(vt); - A(ke), A(st), A(Ee); - var te = V(Ee, 2), - _e = k(te); - _e.__click = [zE, o]; - var ne = k(_e, !0); - A(_e); - var Pe = V(_e, 2), - Me = k(Pe); - Me.__click = [LE, _]; - var at = k(Me, !0); - A(Me); - var We = V(Me, 2), - Ct = k(We, !0); - A(We), A(Pe), A(te), A(Oe), A(we), A(Se), On(Se, () => Ft => { - Zr(() => { - _() ? Ft.show() : Ft.close() - }) - }); - var _t = V(Se, 2), - xt = k(_t), - tt = V(k(xt), 2), - pt = k(tt, !0); - A(tt); - var It = V(tt, 2), - ut = k(It, !0); - A(It); - var bt = V(It, 2), - wt = k(bt); - wt.__click = [DE, o]; - var dt = k(wt, !0); - A(wt); - var Lt = V(wt, 2); - Lt.__click = [RE, T]; - var Xt = k(Lt, !0); - A(Lt), A(bt), A(xt); - var Yt = V(xt, 2), - nr = k(Yt), - ar = k(nr, !0); - A(nr), A(Yt), A(_t), ps(_t, Ft => oe(o, Ft), () => x(o)), Ge((Ft, dr, _r, Ir, jr, ur, Mr, Ar, kr, Nr, ce) => { - fe(Ae, Ft), zr(Xe, "data-tip", dr), fe(Q, ` ${_r??""}`), fe(ne, Ir), Me.disabled = x(T), fe(at, jr), We.disabled = x(T), fe(Ct, ur), fe(pt, Mr), fe(ut, Ar), fe(dt, kr), Lt.disabled = x(T), fe(Xt, Nr), fe(ar, ce) - }, [() => YC(), () => px(), () => Zb(), () => ug(), () => tc(), () => Xb(), () => Jb(), () => t2(), () => qd(), () => ug(), () => tc()]), an("close", Se, () => _(!1)), an("submit", Oe, async () => { - var Ft, dr; - try { - if (!((Ft = x(W)) != null && Ft()) || !((dr = x(ie)) != null && dr())) return; - oe(T, !0), await ni.updateMe({ - name: x(C), - showLastPixel: x(F), - discord: x(L) - }), Dt.refresh(), qr.success(mC()), _(!1) - } catch (_r) { - qr.error(_r.message) - } finally { - oe(T, !1) - } - }), fx(vt, () => x(F), Ft => oe(F, Ft)), H(b, X), Pr() -} -Wi(["click"]); -var OE = Tr(''); - -function NE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = OE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var jE = Tr(''); - -function Dv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = jE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var qE = Tr(''); - -function VE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = qE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var UE = Tr(''); - -function ZE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = UE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - "xmlns:xlink": "http://www.w3.org/1999/xlink", - viewBox: "0 0 216 216", - ..._ - }), void 0, void 0, "svelte-1977t4s"), H(b, C) -} -var $E = Tr(''); - -function GE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = $E(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var HE = Tr(''); - -function WE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = HE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var XE = Tr(''); - -function KE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = XE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var YE = Tr(''); - -function JE(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = YE(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var QE = (b, l) => { - oe(l, !0) - }, - e8 = Ie(' '), - t8 = Ie('
                '), - r8 = (b, l, _) => { - localStorage.setItem(_x, x(l).key), oe(_, x(l).key, !0), location.reload() - }, - i8 = Ie(''), - n8 = Ie("
              • "), - a8 = async (b, l) => { - var _; - try { - const C = await ((_ = x(l)) == null ? void 0 : _.prompt()); - (C == null ? void 0 : C.outcome) === "accepted" && oe(l, void 0) - } catch (C) { - qr.error(Pb({ - error: C.message - })) - } - }, s8 = Ie(''), o8 = Ie(' '), l8 = Ie('
                '), c8 = async (b, l, _, C) => { - var L; - try { - oe(l, !0), await _.user.logout(), C(), qr.warning(bC(), { - icon: Dv - }), (L = _.onlogout) == null || L.call(_) - } catch { - qr.error(CC()) - } finally { - oe(l, !1) - } - }, u8 = Ie(' ', 1); - -function h8(b, l) { - Sr(l, !0); - let _ = nt(!1), - C = nt(!1); - - function L() { - var pe; - (pe = document.activeElement) == null || pe.blur() - } - const F = [{ - label: "🇺🇸 English", - key: "en" - }, { - label: "🇨🇳 中文", - key: "zh" - }]; - let T = nt(""), - o = nt(void 0); - var $ = Jt(), - W = zt($); - { - var ie = pe => { - var ye = u8(), - X = zt(ye), - Se = k(X), - we = k(Se); - Bg(we, { - get userId() { - return l.user.data.id - }, - get level() { - return l.user.data.level - }, - get pictureUrl() { - return l.user.data.picture - } - }), A(Se); - var Re = V(Se, 2), - Ae = k(Re); - Ae.__click = L; - var Oe = k(Ae); - fc(Oe, { - class: "size-5" - }), A(Ae); - var Ee = V(Ae, 2), - Ne = k(Ee), - ft = k(Ne); - es(ft, { - get userId() { - return l.user.data.id - }, - get pictureUrl() { - return l.user.data.picture - } - }); - var ht = V(ft, 2); - ht.__click = [QE, _]; - var Xe = k(ht); - Cf(Xe, { - class: "size-4" - }), A(ht), A(Ne); - var ct = V(Ne, 2), - Je = k(ct), - Be = k(Je), - st = k(Be, !0); - A(Be); - var it = V(Be, 2), - Qe = k(it); - A(it); - var ke = V(it, 2); - { - var vt = At => { - const Pt = lt(() => ds(l.user.data.equippedFlag)); - var kt = e8(), - Wt = k(kt, !0); - A(kt), Ge(() => { - zr(kt, "data-tip", x(Pt).name), fe(Wt, x(Pt).flag) - }), H(At, kt) - }; - Ue(ke, At => { - l.user.data.equippedFlag && At(vt) - }) - } - var Q = V(ke, 2); - { - var te = At => { - var Pt = t8(), - kt = k(Pt); - ph(kt, { - get username() { - return l.user.data.discord - } - }), A(Pt), H(At, Pt) - }; - Ue(Q, At => { - l.user.data.discord && At(te) - }) - } - A(Je); - var _e = V(Je, 2), - ne = k(_e); - fh(ne, { - class: "inline size-4" - }); - var Pe = V(ne, 2), - Me = k(Pe), - at = V(Me), - We = k(at, !0); - A(at), A(Pe), A(_e); - var Ct = V(_e, 2), - _t = k(Ct); - NE(_t, { - class: "inline size-4" - }); - var xt = V(_t, 2), - tt = k(xt), - pt = k(tt); - A(tt); - var It = V(tt), - ut = V(It), - bt = k(ut); - $f(bt, { - class: "mb-0.5 inline size-4 opacity-50" - }), A(ut), A(xt), A(Ct), A(ct), A(Ee); - var wt = V(Ee, 2), - dt = k(wt), - Lt = k(dt), - Xt = k(Lt, !0); - A(Lt); - var Yt = V(Lt, 2), - nr = k(Yt), - ar = k(nr), - Ft = k(ar); - WE(Ft, { - class: "size-4" - }), A(ar); - var dr = V(ar, 2); - nn(dr, 21, () => F, Zd, (At, Pt) => { - const kt = lt(() => x(T) === x(Pt).key); - var Wt = n8(), - Lr = k(Wt); - let Kr; - Lr.__click = [r8, Pt, T]; - var Hr = k(Lr); - { - var $r = gr => { - var ai = i8(); - H(gr, ai) - }; - Ue(Hr, gr => { - x(kt) && gr($r) - }) - } - var mr = V(Hr); - A(Lr), A(Wt), Ge(gr => { - Kr = Or(Lr, 1, "font-flag relative font-medium", null, Kr, gr), fe(mr, ` ${x(Pt).label??""}`) - }, [() => ({ - "bg-base-200": x(kt) - })]), H(At, Wt) - }), A(dr), A(nr); - var _r = V(nr, 2), - Ir = k(_r); - Ir.__click = () => { - oa.muted = !oa.muted - }; - var jr = k(Ir); - { - var ur = At => { - KE(At, { - class: "size-4" - }) - }, - Mr = At => { - JE(At, { - class: "size-4" - }) - }; - Ue(jr, At => { - oa.muted ? At(ur) : At(Mr, !1) - }) - } - A(Ir), A(_r), A(Yt), A(dt); - var Ar = V(dt, 2); - { - var kr = At => { - var Pt = s8(); - Pt.__click = [a8, o]; - var kt = k(Pt); - sv(kt, { - class: "size-5" - }); - var Wt = V(kt); - A(Pt), Ge(Lr => fe(Wt, ` ${Lr??""}`), [() => Ab()]), H(At, Pt) - }; - Ue(Ar, At => { - x(o) && At(kr) - }) - } - var Nr = V(Ar, 2); - { - var ce = At => { - var Pt = o8(), - kt = k(Pt); - GE(kt, { - class: "size-5" - }); - var Wt = V(kt); - A(Pt), Ge(Lr => { - zr(Pt, "href", `${La.url.origin??""}/admin`), fe(Wt, ` ${Lr??""}`) - }, [() => JS()]), H(At, Pt) - }; - Ue(Nr, At => { - var Pt; - (Pt = l.user.data) != null && Pt.role && l.user.data.role !== "user" && At(ce) - }) - } - var O = V(Nr, 2), - q = k(O); - jg(q, { - class: "size-5" - }); - var G = V(q); - A(O); - var K = V(O, 2), - le = k(K); - am(le, { - class: "size-5" - }), fi(), A(K); - var ve = V(K, 2), - Le = k(ve); - ZE(Le, { - class: "size-5" - }), fi(), A(ve); - var Ce = V(ve, 2); - { - var Ze = At => { - var Pt = l8(), - kt = k(Pt), - Wt = k(kt); - VE(Wt, { - class: "size-5" - }), fi(), A(kt), A(Pt), Ge(() => zr(Pt, "action", `${Cd}/payment/create-portal-session`)), H(At, Pt) - }; - Ue(Ce, At => { - var Pt; - (Pt = l.user.data) != null && Pt.isCustomer && At(Ze) - }) - } - var ot = V(Ce, 2); - ot.__click = [c8, C, l, L]; - var Ye = k(ot); - Dv(Ye, { - class: "size-5" - }); - var Ot = V(Ye); - A(ot), A(wt), A(Re), A(X); - var xe = V(X, 2); - FE(xe, { - get userData() { - return l.user.data - }, - get open() { - return x(_) - }, - set open(At) { - oe(_, At, !0) - } - }), Ge((At, Pt, kt, Wt, Lr, Kr, Hr, $r, mr, gr, ai) => { - zr(Se, "title", At), zr(Be, "title", l.user.data.name), fe(st, l.user.data.name), Or(it, 1, Pt), fe(Qe, `#${l.user.data.id??""}`), fe(Me, `${kt??""}: `), fe(We, Wt), fe(pt, Text9() + ` ${Lr??""}`), fe(It, ` (${Kr??""}%) `), zr(ut, "data-tip", Hr), fe(Xt, $r), zr(_r, "data-tip", mr), fe(G, ` ${gr??""}`), ot.disabled = x(C), fe(Ot, ` ${ai??""}`) - }, [() => xb(), () => Vo(Zn(l.user.data.id)), () => Xf(), () => l.user.data.pixelsPainted.toLocaleString("en-US"), () => Math.floor(l.user.data.level), () => Math.floor(l.user.data.level % 1 * 100), () => jw(), () => Tb(), () => oa.muted ? L3() : k3(), () => zb(), () => Rb()]), an("focus", Se, () => { - oe(o, window.pwaInstallPrompt, !0) - }), H(pe, ye) - }; - Ue(W, pe => { - l.user.data && l.user.charges !== void 0 && pe(ie) - }) - } - H(b, $), Pr() -} -Wi(["click"]); -var d8 = Tr(''); - -function p8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = d8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var f8 = Tr(''); - -function m8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = f8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var _8 = async (b, l, _, C, L, F) => { - if (x(l)) { - _.map.easeTo(x(l)), oe(l, void 0); - return - } - oe(C, !0); - try { - Qa(_.map.getCenter(), _.map.getZoom()); - const T = new hc(x(L)), - { - tile: o, - pixel: $ - } = await ni.getRandomTile(_.season), - W = o.x * x(L) + $.x, - ie = o.y * x(L) + $.y, - [pe, ye] = T.pixelsToLatLon(W, ie, x(F)), - X = { - lat: pe, - lng: ye - }, - Se = x(F) + 2; - oe(l, { - zoom: Se, - center: X - }, !0), _.map.flyTo(x(l)), Ho.isEmpty() && Ho.push({ - pos: _.map.getCenter(), - zoom: _.map.getZoom() - }), setTimeout(() => { - oe(l, void 0) - }, 2500), Ho.push({ - pos: X, - zoom: Se - }) - } catch (T) { - qr.error(T.message) - } finally { - oe(C, !1) - } -}, g8 = Ie(''); - -function v8(b, l) { - Sr(l, !0); - const _ = lt(() => $n.seasons[l.season].tileSize), - C = lt(() => $n.seasons[l.season].zoom); - let L = nt(!1), - F = nt(void 0); - var T = g8(); - T.__click = [_8, F, l, L, _, C]; - var o = k(T); - { - var $ = ie => { - m8(ie, { - class: "size-5" - }) - }, - W = ie => { - p8(ie, { - class: "size-5" - }) - }; - Ue(o, ie => { - x(F) ? ie(W, !1) : ie($) - }) - } - A(T), Ge(ie => { - zr(T, "title", ie), T.disabled = x(L) - }, [() => W1()]), H(b, T), Pr() -} -Wi(["click"]); -var y8 = Ie(''), - x8 = Ie('
                '), - b8 = Ie(' '), - w8 = Ie(" "), - T8 = Ie('
                '), - C8 = Ie('

                '), - S8 = Ie(' '), - P8 = Ie('

                '), - I8 = Ie('
                '), - M8 = Ie('
                ', 1); - -function A8(b, l) { - Sr(l, !0); - const _ = []; - let C = nt("today"), - L = { - players: { - label: Xg(), - icon: Xd - }, - alliances: { - label: Kg(), - icon: Kd - } - }, - F = nt("players"), - T = zn({ - players: {}, - alliances: {} - }); - const o = lt(() => T[x(F)][x(C)]); - Zr(() => { - if (x(o)) return; - const we = x(C), - Re = x(F); - Re === "players" ? ni.leaderboardRegionPlayers(l.regionId, we).then(Ae => { - T[Re][we] = Ae - }).catch(Ae => { - qr.error(Ae.message) - }) : Re === "alliances" && ni.leaderboardRegionAlliances(l.regionId, we).then(Ae => { - T[Re][we] = Ae - }).catch(Ae => { - qr.error(Ae.message) - }) - }); - var $ = M8(), - W = zt($); - nn(W, 21, () => Object.entries(L), ([we, { - label: Re, - icon: Ae - }]) => we, (we, Re) => { - var Ae = lt(() => Ag(x(Re), 2)); - let Oe = () => x(Ae)[0], - Ee = () => x(Ae)[1].label, - Ne = () => x(Ae)[1].icon; - const ft = lt(Ne); - var ht = y8(), - Xe = k(ht); - ea(Xe); - var ct, Je = V(Xe, 2); - _n(Je, () => x(ft), (st, it) => { - it(st, { - get this() { - return Ne() - }, - class: "mr-1 size-5 max-sm:hidden" - }) - }); - var Be = V(Je); - A(ht), Ge(() => { - zr(Xe, "aria-label", Ee()), ct !== (ct = Oe()) && (Xe.value = (Xe.__value = Oe()) ?? ""), fe(Be, ` ${Ee()??""}`) - }), Vd(_, [], Xe, () => (Oe(), x(F)), st => oe(F, st)), H(we, ht) - }), A(W); - var ie = V(W, 2), - pe = k(ie); - sm(pe, { - get value() { - return x(C) - }, - set value(we) { - oe(C, we, !0) - } - }), A(ie); - var ye = V(ie, 2); - { - var X = we => { - var Re = x8(), - Ae = k(Re), - Oe = V(Ae); - { - var Ee = ft => { - var ht = Fn(); - Ge(Xe => fe(ht, Xe), [() => Wd().toLowerCase()]), H(ft, ht) - }, - Ne = ft => { - var ht = Jt(), - Xe = zt(ht); - { - var ct = Be => { - var st = Fn(); - Ge(it => fe(st, it), [() => Qf()]), H(Be, st) - }, - Je = Be => { - var st = Jt(), - it = zt(st); - { - var Qe = ke => { - var vt = Fn(); - Ge(Q => fe(vt, Q), [() => em()]), H(ke, vt) - }; - Ue(it, ke => { - x(C) === "month" && ke(Qe) - }, !0) - } - H(Be, st) - }; - Ue(Xe, Be => { - x(C) === "week" ? Be(ct) : Be(Je, !1) - }, !0) - } - H(ft, ht) - }; - Ue(Oe, ft => { - x(C) === "today" ? ft(Ee) : ft(Ne, !1) - }) - } - A(Re), Ge(ft => fe(Ae, `${ft??""} `), [() => Jf()]), H(we, Re) - }, - Se = we => { - var Re = Jt(), - Ae = zt(Re); - { - var Oe = Ne => { - var ft = Jt(), - ht = zt(ft); - { - var Xe = Je => { - const Be = lt(() => x(o)); - var st = C8(), - it = k(st), - Qe = k(it), - ke = V(k(Qe)), - vt = k(ke, !0); - A(ke); - var Q = V(ke), - te = k(Q), - _e = V(te, 2, !0); - A(Q), A(Qe), A(it); - var ne = V(it); - nn(ne, 31, () => x(Be), Pe => Pe.id, (Pe, Me, at) => { - const We = lt(() => { - var ur; - return ((ur = Dt.data) == null ? void 0 : ur.id) === x(Me).id - }); - var Ct = T8(); - let _t; - var xt = k(Ct), - tt = k(xt, !0); - A(xt); - var pt = V(xt), - It = k(pt), - ut = k(It); - es(ut, { - class: "size-10 border", - get userId() { - return x(Me).id - }, - get pictureUrl() { - return x(Me).picture - } - }); - var bt = V(ut, 2), - wt = k(bt), - dt = k(wt), - Lt = V(dt), - Xt = k(Lt); - A(Lt), A(wt); - var Yt = V(wt, 2); - { - var nr = ur => { - const Mr = lt(() => ds(x(Me).equippedFlag)); - var Ar = b8(), - kr = k(Ar, !0); - A(Ar), Ge(() => { - zr(Ar, "data-tip", x(Mr).name), fe(kr, x(Mr).flag) - }), H(ur, Ar) - }; - Ue(Yt, ur => { - "equippedFlag" in x(Me) && x(Me).equippedFlag && ur(nr) - }) - } - var ar = V(Yt, 2); - { - var Ft = ur => { - ph(ur, { - get username() { - return x(Me).discord - } - }) - }; - Ue(ar, ur => { - x(Me).discord && ur(Ft) - }) - } - var dr = V(ar, 2); - { - var _r = ur => { - var Mr = w8(), - Ar = k(Mr, !0); - A(Mr), Ge((kr, Nr) => { - Or(Mr, 1, `badge badge-sm ml-0.5 border-0 ${kr??""} ${Nr??""}`), fe(Ar, x(Me).allianceName) - }, [() => Kf(x(Me).allianceId), () => Zn(x(Me).allianceId)]), H(ur, Mr) - }; - Ue(dr, ur => { - "allianceName" in x(Me) && x(Me).allianceName && ur(_r) - }) - } - A(bt), A(It), A(pt); - var Ir = V(pt), - jr = k(Ir, !0); - A(Ir), A(Ct), Ge((ur, Mr, Ar) => { - _t = Or(Ct, 1, "", null, _t, ur), fe(tt, x(at) + 1), Or(wt, 1, `font-semibold max-sm:ml-2 ${Mr??""} flex gap-1`), fe(dt, `${x(Me).name??""} `), fe(Xt, `#${x(Me).id??""}`), fe(jr, Ar) - }, [() => ({ - "bg-base-200": x(We) - }), () => Zn(x(Me).id), () => x(Me).pixelsPainted.toLocaleString("en-US")]), Zo(Ct, () => $o, () => ({ - duration: 200 - })), H(Pe, Ct) - }), A(ne), A(st), Ge((Pe, Me, at) => { - fe(vt, Pe), fe(te, `${Me??""} `), fe(_e, at) - }, [() => tm(), () => Ql(), () => ec().toLowerCase()]), H(Je, st) - }, - ct = Je => { - var Be = Jt(), - st = zt(Be); - { - var it = Qe => { - var ke = P8(), - vt = k(ke), - Q = k(vt), - te = V(k(Q)), - _e = k(te, !0); - A(te); - var ne = V(te), - Pe = k(ne), - Me = V(Pe, 2, !0); - A(ne), A(Q), A(vt); - var at = V(vt); - nn(at, 31, () => x(o), We => We.id, (We, Ct, _t) => { - const xt = lt(() => { - var Yt; - return ((Yt = Dt.data) == null ? void 0 : Yt.allianceId) === x(Ct).id - }); - var tt = S8(); - let pt; - var It = k(tt), - ut = k(It, !0); - A(It); - var bt = V(It), - wt = k(bt), - dt = k(wt, !0); - A(wt), A(bt); - var Lt = V(bt), - Xt = k(Lt, !0); - A(Lt), A(tt), Ge((Yt, nr, ar) => { - pt = Or(tt, 1, "", null, pt, Yt), fe(ut, x(_t) + 1), Or(wt, 1, `font-semibold ${nr??""}`), fe(dt, x(Ct).name), fe(Xt, ar) - }, [() => ({ - "bg-base-200": x(xt) - }), () => Zn(x(Ct).id), () => x(Ct).pixelsPainted.toLocaleString("en-US")]), Zo(tt, () => $o, () => ({ - duration: 200 - })), H(We, tt) - }), A(at), A(ke), Ge((We, Ct, _t) => { - fe(_e, We), fe(Pe, `${Ct??""} `), fe(Me, _t) - }, [() => Gd(), () => Ql(), () => ec().toLowerCase()]), H(Qe, ke) - }; - Ue(st, Qe => { - x(F) === "alliances" && Qe(it) - }, !0) - } - H(Je, Be) - }; - Ue(ht, Je => { - x(F) === "players" ? Je(Xe) : Je(ct, !1) - }) - } - H(Ne, ft) - }, - Ee = Ne => { - var ft = I8(); - H(Ne, ft) - }; - Ue(Ae, Ne => { - x(o) ? Ne(Oe) : Ne(Ee, !1) - }, !0) - } - H(we, Re) - }; - Ue(ye, we => { - x(o) && x(o).length === 0 ? we(X) : we(Se, !1) - }) - } - H(b, $), Pr() -} -var k8 = Ie('
                '), - E8 = Ie(' '); - -function z8(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15); - const C = lt(() => ds(l.region.countryId)); - Ii(() => { - const we = Re => { - Re.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", we), () => document.removeEventListener("keydown", we) - }); - var L = E8(), - F = k(L), - T = V(k(F), 2), - o = k(T), - $ = k(o, !0); - A(o); - var W = V(o, 2), - ie = k(W, !0); - A(W); - var pe = V(W, 2), - ye = k(pe); - A(pe), A(T); - var X = V(T, 2); - { - var Se = we => { - var Re = k8(), - Ae = k(Re); - A8(Ae, { - get regionId() { - return l.region.id - } - }), A(Re), En(2, Re, () => Qn, () => ({ - duration: 300 - })), H(we, Re) - }; - Ue(X, we => { - _() && we(Se) - }) - } - A(F), fi(2), A(L), On(L, () => we => { - Zr(() => { - _() ? we.show() : we.close() - }) - }), Ge(we => { - Or(T, 1, `flex gap-2 text-xl font-bold sm:text-2xl ${we??""}`), zr(o, "data-tip", x(C).name), fe($, x(C).flag), fe(ie, l.region.name), fe(ye, ``) - }, [() => Zn(l.region.cityId)]), an("close", L, () => _(!1)), H(b, L), Pr() -} -var L8 = Tr(''); - -function D8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = L8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - height: "24px", - viewBox: "0 -960 960 960", - width: "24px", - fill: "currentColor", - ..._ - })), H(b, C) -} -var R8 = Tr(''); - -function B8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = R8(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var F8 = Tr(''), - O8 = Tr(''); - -function N8(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = F8(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = O8(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var j8 = (b, l, _, C, L) => { - if (x(l) && x(_)) { - const F = x(l) - x(_).clientHeight, - T = x(l) / 2 - F / 2; - C.map.flyTo({ - center: { - lat: x(L).center[0], - lng: x(L).center[1] - }, - zoom: 17.5, - offset: [0, -T] - }) - } - }, - q8 = (b, l, _) => l.onclickregion(x(_)), - V8 = Ie(''), - U8 = Ie('
                '), - Z8 = Ie('
                '), - $8 = Ie(' '), - G8 = Ie(" "), - H8 = (b, l) => { - l("report-user") - }, - W8 = Ie("
              • "), - X8 = (b, l) => { - l("timeout") - }, - K8 = Ie("
              • "), - Y8 = (b, l) => { - l("ban") - }, - J8 = Ie("
              • "), - Q8 = async (b, l, _, C, L, F) => { - oe(l, !0); - try { - await ni.banAllianceUser(x(_).id), await C({ - ...x(L), - season: F.season - }) - } catch (T) { - qr.error(T.message) - } finally { - oe(l, !1) - } - }, ez = Ie('
              • '), tz = Ie(''), rz = Ie('
                '), iz = (b, l) => l.onclickpaint(l.latLon), nz = async (b, l, _, C) => { - try { - oe(l, !0), x(_) ? (await ni.deleteFavoriteLocation(x(_).id), qr.warning(sC())) : (await ni.favoriteLocation(x(C).center), qr.success(cC())), pa.smallPlop.play(), Dt.refresh() - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } - }, az = Ie(""), sz = (b, l, _) => l.onclickshare(OP(La.url, { - pos: { - lat: x(_).center[0], - lng: x(_).center[1] - }, - zoom: l.zoom - })), oz = Ie('

                '); - -function lz(b, l) { - Sr(l, !0); - let _ = nt(void 0); - const C = lt(() => new hc(l.tileSize)); - let L = nt(void 0), - F = nt(void 0), - T = nt(!1), - o = nt(!1); - const $ = lt(() => { - var tt, pt, It; - return !!((pt = (tt = x(_)) == null ? void 0 : tt.paintedBy) != null && pt.id) && ((It = Dt.data) == null ? void 0 : It.id) === x(_).paintedBy.id - }), - W = lt(() => { - const [tt, pt] = l.latLon ?? [0, 0], It = x(C).latLonToPixelBoundsLatLon(tt, pt, l.pixelArtZoom), ut = im(It), { - tile: bt, - pixel: wt - } = x(C).latLonToTileAndPixel(tt, pt, l.pixelArtZoom), dt = x(C).latLonToRegionAndPixel(tt, pt, l.pixelArtZoom); - return { - bounds: It, - center: ut, - tile: bt, - pixel: wt, - regionPixel: dt.pixel - } - }); - Zr(() => { - pa.plop.play(), l.crosshair.clearAndPlace(l.latLon) - }); - let ie = 0; - const pe = ({ - pixel: tt, - tile: pt, - season: It - }) => `s${It}:p(${tt[0]},${tt[1]}):t(${pt[0]},${pt[1]})`; - let ye; - dc(() => [x(W), l.season], () => { - const tt = { - ...x(W), - season: l.season - }, - pt = pe(tt); - if (oe(_, l.pixelInfoCache.get(pt), !0), x(_) !== void 0) return; - l.pixelInfoCache.size === 0 && (ie = 0), ie++, ie > 6 ? (clearTimeout(ye), ye = setTimeout(async () => X(tt), 500)) : X(tt) - }); - async function X(tt) { - const pt = await ni.getPixelInfo(tt); - if (pt.paintedBy !== void 0) { - const ut = pe(tt); - l.pixelInfoCache.set(ut, pt) - } - const It = pe({ - ...x(W), - season: l.season - }); - return oe(_, l.pixelInfoCache.get(It), !0), pt - } - - function Se() { - l.crosshair.clear(), pa.smallPlop.play(), l.onclose() - } - Ii(() => { - const tt = pt => { - pt.key === "Escape" && Se() - }; - return document.addEventListener("keydown", tt), () => document.removeEventListener("keydown", tt) - }); - const we = lt(() => { - var bt, wt, dt, Lt, Xt, Yt, nr; - const tt = [], - pt = (wt = (bt = Dt) == null ? void 0 : bt.data) == null ? void 0 : wt.role; - Cu(pt, ["admin"]) && !x($) && tt.push("ban-user"), Cu(pt, ["admin", "global_moderator", "moderator"]) && !x($) && tt.push("timeout-user"), ((((Lt = (dt = Dt) == null ? void 0 : dt.data) == null ? void 0 : Lt.id) ?? Number.MAX_SAFE_INTEGER) <= 3e6 || Cu(pt, ["admin", "moderator", "global_moderator"])) && !x($) && tt.push("report-user"); - const ut = (Xt = x(_)) == null ? void 0 : Xt.paintedBy; - return (ut == null ? void 0 : ut.allianceId) === ((Yt = Dt.data) == null ? void 0 : Yt.allianceId) && ((nr = Dt.data) == null ? void 0 : nr.allianceRole) === "admin" && Dt.data.id !== (ut == null ? void 0 : ut.id) && !x($) && tt.push("ban-alliance"), tt - }); - - function Re(tt) { - const pt = (async () => await av(l.map, { - maxHeight: 1080, - maxWidth: 1080, - quality: .8, - type: "image/jpeg" - }))(); - l.onclickmodaction(x(_), pt, l.latLon, tt) - } - var Ae = oz(), - Oe = k(Ae), - Ee = k(Oe), - Ne = k(Ee); - Ne.__click = [j8, L, F, l, W]; - var ft = k(Ne); - Wf(ft, { - class: "fill-primary size-5" - }), A(Ne); - var ht = V(Ne, 2), - Xe = k(ht), - ct = k(Xe); - A(Xe); - var Je = V(Xe, 2); - { - var Be = tt => { - const pt = lt(() => x(_).region), - It = lt(() => ds(x(pt).countryId)); - var ut = V8(); - ut.__click = [q8, l, pt]; - var bt = k(ut), - wt = k(bt, !0); - A(bt); - var dt = V(bt, 2), - Lt = k(dt, !0); - A(dt); - var Xt = V(dt, 2), - Yt = k(Xt); - A(Xt), A(ut), Ge(nr => { - Or(ut, 1, `btn btn-xs flex gap-1 py-3 text-sm max-sm:max-w-32 ${nr??""}`), zr(bt, "data-tip", x(It).name), fe(wt, x(It).flag), fe(Lt, x(pt).name), fe(Yt, ``) - }, [() => Zn(x(pt).cityId)]), H(tt, ut) - }, - st = tt => { - var pt = U8(); - H(tt, pt) - }; - Ue(Je, tt => { - var pt; - (pt = x(_)) != null && pt.region ? tt(Be) : tt(st, !1) - }) - } - A(ht), A(Ee); - var it = V(Ee, 2); - it.__click = Se; - var Qe = k(it); - fc(Qe, { - class: "size-4" - }), A(it), A(Oe); - var ke = V(Oe, 2), - vt = k(ke); - { - var Q = tt => { - var pt = Z8(); - H(tt, pt) - }, - te = tt => { - var pt = Jt(), - It = zt(pt); - { - var ut = wt => { - var dt = Fn(); - Ge(Lt => fe(dt, Lt), [() => d3()]), H(wt, dt) - }, - bt = wt => { - const dt = lt(() => x(_).paintedBy); - var Lt = rz(), - Xt = k(Lt), - Yt = k(Xt); - A(Xt); - var nr = V(Xt, 2), - ar = k(nr); - es(ar, { - class: "size-5 border-0", - get userId() { - return x(dt).id - }, - get pictureUrl() { - return x(dt).picture - } - }), A(nr); - var Ft = V(nr, 2), - dr = k(Ft), - _r = k(dr), - Ir = k(_r, !0); - A(_r); - var jr = V(_r, 2), - ur = k(jr); - A(jr), A(dr); - var Mr = V(dr, 2); - { - var Ar = K => { - const le = lt(() => ds(x(dt).equippedFlag)); - var ve = $8(), - Le = k(ve, !0); - A(ve), Ge(() => { - zr(ve, "data-tip", x(le).name), fe(Le, x(le).flag) - }), H(K, ve) - }; - Ue(Mr, K => { - x(dt).equippedFlag && K(Ar) - }) - } - var kr = V(Mr, 2); - { - var Nr = K => { - ph(K, { - get username() { - return x(dt).discord - } - }) - }; - Ue(kr, K => { - x(dt).discord && K(Nr) - }) - } - var ce = V(kr, 2); - { - var O = K => { - var le = G8(), - ve = k(le, !0); - A(le), Ge((Le, Ce) => { - Or(le, 1, `badge badge-sm ml-0.5 border-0 ${Le??""} ${Ce??""}`), fe(ve, x(dt).allianceName) - }, [() => Kf(x(dt).allianceId), () => Zn(x(dt).allianceId)]), H(K, le) - }; - Ue(ce, K => { - x(dt).allianceId && K(O) - }) - } - A(Ft); - var q = V(Ft, 2); - { - var G = K => { - var le = tz(), - ve = k(le), - Le = k(ve); - om(Le, { - class: "size-4" - }), A(ve); - var Ce = V(ve, 2); - nn(Ce, 21, () => x(we), Zd, (Ze, ot) => { - var Ye = Jt(), - Ot = zt(Ye); - { - var xe = Pt => { - var kt = W8(), - Wt = k(kt); - let Lr; - Wt.__click = [H8, Re]; - var Kr = k(Wt); - B8(Kr, { - class: "size-5" - }); - var Hr = V(Kr); - A(Wt), A(kt), Ge(($r, mr) => { - Lr = Or(Wt, 1, "text-error py-2 font-medium", null, Lr, $r), fe(Hr, ` ${mr??""}`) - }, [() => ({ - "cursor-not-allowed": x($) - }), () => Yg()]), H(Pt, kt) - }, - At = Pt => { - var kt = Jt(), - Wt = zt(kt); - { - var Lr = Hr => { - var $r = K8(), - mr = k($r); - let gr; - mr.__click = [X8, Re]; - var ai = k(mr); - Eg(ai, { - class: "size-5" - }); - var Tt = V(ai); - A(mr), A($r), Ge((Ci, di) => { - gr = Or(mr, 1, "text-error font-medium", null, gr, Ci), fe(Tt, ` ${di??""}`) - }, [() => ({ - "cursor-not-allowed": x($) - }), () => Qg()]), H(Hr, $r) - }, - Kr = Hr => { - var $r = Jt(), - mr = zt($r); - { - var gr = Tt => { - var Ci = J8(), - di = k(Ci); - let Pn; - di.__click = [Y8, Re]; - var Mt = k(di); - Gy(Mt, { - class: "size-5" - }); - var Ke = V(Mt); - A(di), A(Ci), Ge((jt, Gt) => { - Pn = Or(di, 1, "text-error font-medium", null, Pn, jt), fe(Ke, ` ${Gt??""}`) - }, [() => ({ - "cursor-not-allowed": x($) - }), () => Jg()]), H(Tt, Ci) - }, - ai = Tt => { - var Ci = Jt(), - di = zt(Ci); - { - var Pn = Mt => { - var Ke = ez(), - jt = k(Ke); - jt.__click = [Q8, o, dt, X, W, l]; - var Gt = k(jt); - D8(Gt, { - class: "size-5" - }); - var Dr = V(Gt); - A(jt), A(Ke), Ge(Gr => fe(Dr, ` ${Gr??""}`), [() => Wg()]), H(Mt, Ke) - }; - Ue(di, Mt => { - x(ot) === "ban-alliance" && Mt(Pn) - }, !0) - } - H(Tt, Ci) - }; - Ue(mr, Tt => { - x(ot) === "ban-user" ? Tt(gr) : Tt(ai, !1) - }, !0) - } - H(Hr, $r) - }; - Ue(Wt, Hr => { - x(ot) === "timeout-user" ? Hr(Lr) : Hr(Kr, !1) - }, !0) - } - H(Pt, kt) - }; - Ue(Ot, Pt => { - x(ot) === "report-user" ? Pt(xe) : Pt(At, !1) - }) - } - H(Ze, Ye) - }), A(Ce), A(le), H(K, le) - }; - Ue(q, K => { - x(we).length > 0 && K(G) - }) - } - A(Lt), Ge((K, le) => { - var ve; - fe(Yt, `${K??""}:`), Or(dr, 1, `font-medium ${le??""} flex gap-1.5`), fe(Ir, ((ve = Dt.data) == null ? void 0 : ve.id) === x(dt).id ? Dt.data.name : x(dt).name), fe(ur, `#${x(dt).id??""}`) - }, [() => m3(), () => Zn(x(dt).id)]), H(wt, Lt) - }; - Ue(It, wt => { - x(_).paintedBy.id === 0 ? wt(ut) : wt(bt, !1) - }, !0) - } - H(tt, pt) - }; - Ue(vt, tt => { - x(_) === void 0 ? tt(Q) : tt(te, !1) - }) - } - A(ke); - var _e = V(ke, 2), - ne = k(_e); - ne.__click = [iz, l]; - var Pe = k(ne); - fh(Pe, { - class: "size-4.5" - }); - var Me = V(Pe); - A(ne); - var at = V(ne, 2); - { - var We = tt => { - const pt = lt(() => Dt.data.favoriteLocations.find(Lt => Math.abs(Lt.latitude - x(W).center[0]) < 5e-5 && Math.abs(Lt.longitude - x(W).center[1]) < 5e-5)), - It = lt(() => !x(pt) && Dt.data.favoriteLocations.length >= Dt.data.maxFavoriteLocations); - var ut = az(); - let bt; - ut.__click = [nz, T, pt, W]; - var wt = k(ut); - { - let Lt = lt(() => !!x(pt)); - N8(wt, { - class: "size-4.5", - get filled() { - return x(Lt) - } - }) - } - var dt = V(wt); - A(ut), Ge((Lt, Xt) => { - bt = Or(ut, 1, "btn btn-primary btn-soft", null, bt, Lt), ut.disabled = x(T) || x(It), fe(dt, ` ${Xt??""}`) - }, [() => ({ - "text-yellow-400": !!x(pt) - }), () => x(It) ? v3() : b3()]), H(tt, ut) - }; - Ue(at, tt => { - Dt.data && tt(We) - }) - } - var Ct = V(at, 2); - Ct.__click = [sz, l, W]; - var _t = k(Ct); - ov(_t, { - class: "size-4.5" - }); - var xt = V(_t); - A(Ct), A(_e), A(Ae), ps(Ae, tt => oe(F, tt), () => x(F)), Ge((tt, pt) => { - fe(ct, `Pixel: ${x(W).regionPixel[0]??""}, ${x(W).regionPixel[1]??""}`), ne.disabled = Dt.loading, fe(Me, ` ${tt??""}`), fe(xt, ` ${pt??""}`) - }, [() => Zg(), () => C3()]), $d("innerHeight", tt => oe(L, tt, !0)), H(b, Ae), Pr() -} -Wi(["click"]); - -function cz(b) { - var C; - const l = document.createElement("div"); - (C = b.parentElement) == null || C.insertBefore(l, b.nextSibling); - const _ = new IntersectionObserver(L => { - L[0].isIntersecting ? b.classList.remove("stuck") : b.classList.add("stuck") - }, { - threshold: 0, - rootMargin: "0px" - }); - return _.observe(l), () => { - l.remove(), _.disconnect() - } -} -var uz = Tr(''), - hz = Tr(''); - -function dz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy", "filled"]); - var C = Jt(), - L = zt(C); - { - var F = o => { - var $ = uz(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }, - T = o => { - var $ = hz(); - er($, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(o, $) - }; - Ue(L, o => { - l.filled ? o(F) : o(T, !1) - }) - } - H(b, C) -} -var pz = Ie(''), - fz = Ie(''), - mz = Ie(''), - _z = Ie(' ', 1), - gz = Ie(' '), - vz = Ie(''), - yz = Ie('

                '), - xz = (b, l) => { - oe(l, !x(l)) - }, - bz = Ie('

                '+Text8()+'

                '); - -function wz(b, l) { - Sr(l, !0); - const _ = (Ee, Ne = fa) => { - const ft = lt(() => { - var ne; - return (((ne = Dt.data) == null ? void 0 : ne.droplets) ?? 0) >= T.price - }), - ht = lt(() => x($) === Ne().id); - var Xe = yz(), - ct = k(Xe), - Je = k(ct, !0); - A(ct); - var Be = V(ct, 2), - st = k(Be, !0); - A(Be); - var it = V(Be, 2); - { - var Qe = ne => { - hm(ne, {}) - }; - Ue(it, ne => { - Ne().id === x(W) && ne(Qe) - }) - } - var ke = V(it, 2); - let vt; - var Q = k(ke); - { - var te = ne => { - var Pe = fz(); - Pe.__click = async () => { - try { - const _t = Ne().id; - oe($, _t, !0), await ni.purchase({ - id: F, - amount: 1, - variant: _t - }), Dt.refresh(), pa.notification1.play(); - const xt = L.find(tt => tt.id === _t); - xt && (xt.owned = !0), oe(W, _t, !0) - } catch (_t) { - qr.error(_t.message) - } finally { - oe($, void 0) - } - }; - var Me = k(Pe); - { - var at = _t => { - var xt = pz(); - H(_t, xt) - }; - Ue(Me, _t => { - x(ht) && _t(at) - }) - } - var We = V(Me, 2); - Ud(We, { - class: "size-4" - }); - var Ct = V(We); - fi(), A(Pe), Ge(_t => { - Pe.disabled = !x(ft) || x(ht), fe(Ct, ` ${_t??""} `) - }, [() => T.price.toLocaleString("en-US")]), H(ne, Pe) - }, - _e = ne => { - const Pe = lt(() => { - var ut; - return ((ut = Dt.data) == null ? void 0 : ut.equippedFlag) === Ne().id - }); - var Me = vz(); - let at; - Me.__click = async () => { - try { - oe($, Ne().id, !0); - const ut = x(Pe) ? 0 : Ne().id; - await ni.equipFlag(ut), Dt.data && (Dt.data.equippedFlag = ut), Dt.refresh() - } catch (ut) { - qr.error(ut.message) - } finally { - oe($, void 0) - } - }; - var We = k(Me), - Ct = k(We, !0); - A(We); - var _t = V(We, 2); - { - var xt = ut => { - var bt = mz(); - H(ut, bt) - }; - Ue(_t, ut => { - x(ht) && ut(xt) - }) - } - var tt = V(_t, 2); - { - var pt = ut => { - var bt = _z(), - wt = zt(bt); - fc(wt, { - class: "size-4" - }); - var dt = V(wt, 2), - Lt = k(dt, !0); - A(dt), Ge(Xt => fe(Lt, Xt), [() => p2()]), H(ut, bt) - }, - It = ut => { - var bt = gz(), - wt = k(bt, !0); - A(bt), Ge(dt => fe(wt, dt), [() => _2()]), H(ut, bt) - }; - Ue(tt, ut => { - x(Pe) ? ut(pt) : ut(It, !1) - }) - } - A(Me), Ge((ut, bt) => { - at = Or(Me, 1, "btn btn-lg sm:btn-md tooltip tooltip-bottom relative h-10", null, at, ut), Me.disabled = x(ht), fe(Ct, bt) - }, [() => ({ - "btn-warning": x(Pe) - }), () => u2()]), H(ne, Me) - }; - Ue(Q, ne => { - Ne().owned ? ne(_e, !1) : ne(te) - }) - } - A(ke), A(Xe), Ge((ne, Pe) => { - fe(Je, Ne().flag), fe(st, Ne().name), vt = Or(ke, 1, "mt-3", null, vt, ne), zr(ke, "data-tip", Pe) - }, [() => ({ - tooltip: !x(ft) - }), () => Hd()]), H(Ee, Xe) - }, - C = $n.countries.map(Ee => ({ - ...Ee, - owned: Dt.flagsBitmap.get(Ee.id) - })); - C.sort((Ee, Ne) => Number(Ne.owned) - Number(Ee.owned)); - const L = zn(C), - F = 110, - T = $n.products[F]; - let o = nt(!1), - $ = nt(void 0), - W = nt(void 0); - var ie = bz(), - pe = k(ie), - ye = k(pe); - dz(ye, { - class: "size-5.5", - filled: !0 - }), fi(2), A(pe); - var X = V(pe, 2), - Se = k(X, !0); - A(X); - var we = V(X, 2); - nn(we, 23, () => L, Ee => Ee.id, (Ee, Ne, ft) => { - var ht = Jt(), - Xe = zt(ht); - { - var ct = Je => { - _(Je, () => x(Ne)) - }; - Ue(Xe, Je => { - (x(ft) < 8 || x(o)) && Je(ct) - }) - } - H(Ee, ht) - }), A(we); - var Re = V(we, 2), - Ae = k(Re); - Ae.__click = [xz, o]; - var Oe = k(Ae, !0); - A(Ae), A(Re), A(ie), Ge(Ee => { - fe(Se, Ee), fe(Oe, x(o) ? "Show less" : "Show more") - }, [() => o2()]), H(b, ie), Pr() -} -Wi(["click"]); -var Tz = Ie('

                '), - Cz = (b, l) => { - kg(l, -1) - }, - Sz = (b, l) => { - kg(l) - }, - Pz = (b, l, _) => { - l(x(_)) - }, - Iz = Ie(''), - Mz = async (b, l, _, C) => { - try { - oe(l, !0), await ni.purchase({ - id: _.productId, - amount: C() - }), pa.notification1.play(), _.onpurchasecompleted(C()) - } catch (L) { - qr.error(L.message) - } finally { - oe(l, !1) - } - }, Az = Ie(''), kz = Ie('

                '); - -function Pg(b, l) { - Sr(l, !0); - let _ = Et(l, "amount", 15, 1); - const C = lt(() => _() * l.unitPrice), - L = lt(() => Math.floor(l.userDroplets / l.unitPrice)); - let F = nt(!1); - Zr(() => { - _() < 0 && _(0) - }); - var T = kz(), - o = k(T), - $ = k(o); - Ji($, () => l.icon ?? fa), A(o); - var W = V(o, 2), - ie = k(W, !0); - A(W); - var pe = V(W, 2); - { - var ye = Be => { - var st = Tz(), - it = k(st, !0); - A(st), Ge(() => fe(it, l.subtitle)), H(Be, st) - }; - Ue(pe, Be => { - l.subtitle && Be(ye) - }) - } - var X = V(pe, 2), - Se = k(X); - Se.__click = [Cz, _]; - var we = V(Se, 2); - ea(we); - var Re = V(we, 2); - Re.__click = [Sz, _]; - var Ae = V(Re, 2); - { - var Oe = Be => { - var st = Iz(); - st.__click = [Pz, _, L], H(Be, st) - }; - Ue(Ae, Be => { - _() < x(L) && Be(Oe) - }) - } - A(X); - var Ee = V(X, 2); - let Ne; - var ft = k(Ee); - ft.__click = [Mz, F, l, _]; - var ht = k(ft); - { - var Xe = Be => { - var st = Az(); - H(Be, st) - }; - Ue(ht, Be => { - x(F) && Be(Xe) - }) - } - var ct = V(ht, 2); - Ud(ct, { - class: "size-4" - }); - var Je = V(ct); - fi(), A(ft), A(Ee), A(T), Ge((Be, st, it, Qe) => { - fe(ie, Be), Re.disabled = _() >= x(L), zr(Ee, "data-tip", st), Ne = Or(Ee, 1, "", null, Ne, it), ft.disabled = l.userDroplets < x(C) || x(F) || !_(), fe(Je, ` ${Qe??""} `) - }, [() => l.title(_()), () => Hd(), () => ({ - tooltip: l.userDroplets < x(C) - }), () => x(C).toLocaleString("en-US")]), jd(we, _), H(b, T), Pr() -} -Wi(["click"]); -var Ez = Tr(''); - -function zz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Ez(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Lz = Tr(''); - -function Rv(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Lz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Dz = Tr(''); - -function Rz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Dz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Bz = Tr(''); - -function Fz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Bz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Oz = Ie(''), - Nz = Ie(''), - jz = Ie(' ', 1); - -function qz(b, l) { - Sr(l, !0); - let _ = Et(l, "open", 15), - C = nt(void 0), - L = nt(zn({ - name: hg(), - prev: 1e3, - new: 1e5 - })); - Ii(() => { - const Me = at => { - at.key === "Escape" && _(!1) - }; - return document.addEventListener("keydown", Me), () => document.removeEventListener("keydown", Me) - }); - const F = { - id: 70, - product: $n.products[70] - }, - T = { - id: 80, - product: $n.products[80] - }, - o = { - product: $n.products[120] - }; - var $ = jz(), - W = zt($), - ie = k(W), - pe = k(ie); - { - var ye = Me => { - var at = Oz(), - We = k(at), - Ct = k(We), - _t = k(Ct); - Rv(_t, { - class: "size-8" - }); - var xt = V(_t, 2), - tt = k(xt, !0); - A(xt); - var pt = V(xt, 2), - It = k(pt); - { - let Pt = lt(() => { - var kt; - return ((kt = Dt.data) == null ? void 0 : kt.droplets) ?? 0 - }); - Rg(It, { - get value() { - return x(Pt) - } - }) - } - A(pt), fi(2), A(Ct), A(We), On(We, () => cz); - var ut = V(We, 2), - bt = k(ut), - wt = k(bt), - dt = k(wt); - zz(dt, { - class: "size-5.5", - filled: !0 - }); - var Lt = V(dt, 2), - Xt = k(Lt, !0); - A(Lt), A(wt); - var Yt = V(wt, 2), - nr = k(Yt, !0); - A(Yt); - var ar = V(Yt, 2), - Ft = k(ar); - { - const Pt = Wt => { - Fz(Wt, { - class: "text-primary size-26" - }) - }; - let kt = lt(() => cb()); - Pg(Ft, { - get productId() { - return F.id - }, - title: Wt => sb({ - amount: F.product.items[0].amount * Wt - }), - get subtitle() { - return x(kt) - }, - get unitPrice() { - return F.product.price - }, - get userDroplets() { - return Dt.data.droplets - }, - onpurchasecompleted: async Wt => { - var Hr, $r, mr, gr, ai; - const Lr = ($r = (Hr = Dt.data) == null ? void 0 : Hr.charges) == null ? void 0 : $r.max; - await Dt.refresh(); - const Kr = (gr = (mr = Dt.data) == null ? void 0 : mr.charges) == null ? void 0 : gr.max; - Lr !== void 0 && Kr !== void 0 && (oe(L, { - name: hg(), - prev: Lr, - new: Kr - }, !0), (ai = x(C)) == null || ai.show()) - }, - icon: Pt, - $$slots: { - icon: !0 - } - }) - } - var dr = V(Ft, 2); - { - const Pt = Wt => { - Ev(Wt, { - class: "text-primary my-3 size-20" - }) - }; - let kt = lt(() => Y1()); - Pg(dr, { - get productId() { - return T.id - }, - title: Wt => Qw({ - amount: T.product.items[0].amount * Wt - }), - get subtitle() { - return x(kt) - }, - get unitPrice() { - return T.product.price - }, - get userDroplets() { - return Dt.data.droplets - }, - onpurchasecompleted: async Wt => { - var Kr, Hr, $r; - const Lr = (Hr = (Kr = Dt.data) == null ? void 0 : Kr.charges) == null ? void 0 : Hr.count; - await Dt.refresh(), Lr !== void 0 && (oe(L, { - name: Kw(), - prev: Math.floor(Lr), - new: Math.floor(Lr + T.product.items[0].amount * Wt) - }, !0), ($r = x(C)) == null || $r.show()) - }, - icon: Pt, - $$slots: { - icon: !0 - } - }) - } - A(ar), A(bt); - var _r = V(bt, 2), - Ir = k(_r), - jr = k(Ir); - Xd(jr, { - class: "size-5.5", - filled: !0 - }); - var ur = V(jr, 2), - Mr = k(ur, !0); - A(ur), A(Ir); - var Ar = V(Ir, 2), - kr = k(Ar), - Nr = k(kr), - ce = k(Nr), - O = k(ce), - q = k(O); - Bg(q, { - get userId() { - return Dt.data.id - }, - get level() { - return Dt.data.level - }, - get pictureUrl() { - return Dt.data.picture - } - }), A(O), A(ce), A(Nr); - var G = V(Nr, 2), - K = k(G, !0); - A(G); - var le = V(G, 2), - ve = k(le, !0); - A(le); - var Le = V(le, 2); - let Ce; - var Ze = k(Le), - ot = k(Ze), - Ye = k(ot); - Ud(Ye, { - class: "size-4" - }); - var Ot = V(Ye); - fi(), A(ot), A(Ze), A(Le), A(kr), A(Ar), A(_r); - var xe = V(_r, 2), - At = k(xe); - wz(At, {}), A(xe), A(ut), A(at), Ge((Pt, kt, Wt, Lr, Kr, Hr, $r, mr, gr) => { - fe(tt, Pt), fe(Xt, kt), fe(nr, Wt), fe(Mr, Lr), fe(K, Kr), fe(ve, Hr), zr(Le, "data-tip", $r), Ce = Or(Le, 1, "", null, Ce, mr), ot.disabled = Dt.data.droplets < o.product.price, fe(Ot, ` ${gr??""} `) - }, [() => qg(), () => eb(), () => ib(), () => n2(), () => db(), () => mb(), () => Hd(), () => ({ - tooltip: Dt.data.droplets < o.product.price - }), () => o.product.price.toLocaleString("en-US")]), En(2, at, () => Qn), H(Me, at) - }; - Ue(pe, Me => { - Dt.data && _() && Me(ye) - }) - } - A(ie); - var X = V(ie, 2), - Se = k(X), - we = k(Se, !0); - A(Se), A(X), A(W), On(W, () => Me => { - Zr(() => { - _() ? Me.show() : Me.close() - }) - }); - var Re = V(W, 2), - Ae = k(Re), - Oe = k(Ae), - Ee = k(Oe), - Ne = k(Ee, !0); - A(Ee); - var ft = V(Ee, 2), - ht = k(ft), - Xe = k(ht), - ct = V(Xe), - Je = k(ct); - A(ct), A(ht); - var Be = V(ht, 2), - st = k(Be); - Rz(st, { - class: "size-5" - }), A(Be); - var it = V(Be, 2), - Qe = k(it, !0); - A(it), A(ft); - var ke = V(ft, 2), - vt = k(ke), - Q = k(vt), - te = V(Q); - Pu(te, () => x(L).new, Me => { - var at = Nz(), - We = k(at); - hm(We, {}), A(at), H(Me, at) - }), A(vt), A(ke), A(Oe), A(Ae); - var _e = V(Ae, 2), - ne = k(_e), - Pe = k(ne, !0); - A(ne), A(_e), A(Re), ps(Re, Me => oe(C, Me), () => x(C)), Ge((Me, at, We) => { - fe(we, Me), fe(Ne, x(L).name), fe(Xe, `${x(L).prev??""} `), fe(Je, `(+${x(L).new-x(L).prev})`), fe(Qe, x(L).new), fe(Q, `${at??""} `), fe(Pe, We) - }, [() => tc(), () => tc(), () => tc()]), an("close", W, () => _(!1)), H(b, $), Pr() -} -var Vz = Tr(''); - -function Uz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Vz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Zz = Tr(''); - -function $z(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Zz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Gz = Tr(''); - -function Hz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Gz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Wz = Tr(''); - -function Xz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Wz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Kz = Tr(''); - -function Yz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Kz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var Jz = Tr(''); - -function Qz(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = Jz(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} -var eL = Tr(''); - -function tL(b, l) { - let _ = Qt(l, ["$$slots", "$$events", "$$legacy"]); - var C = eL(); - er(C, () => ({ - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 -960 960 960", - fill: "currentColor", - ..._ - })), H(b, C) -} - -function vf(b) { - const l = document.createElement("img"); - return l.src = b, new Promise((_, C) => { - l.addEventListener("load", () => { - _(l) - }), l.addEventListener("error", L => { - C(L) - }) - }) -} - -function rL(b) { - const l = document.createElement("canvas"); - l.width = b.naturalWidth, l.height = b.naturalHeight; - const _ = l.getContext("2d"); - return _ == null || _.drawImage(b, 0, 0), l -} - -function iL(b, l, _) { - return b < l ? l : b > _ ? _ : b -} - -function nL(b, l) { - const _ = 10 ** l; - return Math.round(b * _) / _ -} -var aL = Ie(' ', 1), - sL = (b, l) => { - oe(l, !x(l)) - }, - oL = Ie(""), - lL = async (b, l, _, C) => { - var L; - x(l) || oe(l, await new Promise((F, T) => { - navigator.geolocation.getCurrentPosition(o => { - F(o) - }, o => { - T(o) - }) - })), x(l) && (Qa({ - lat: x(l).coords.latitude, - lng: x(l).coords.longitude - }, x(_)), (L = x(C)) == null || L.flyTo({ - center: { - lat: x(l).coords.latitude, - lng: x(l).coords.longitude - }, - zoom: 16.5 - })) - }, cL = Ie('
                ?
                '), uL = Ie(''), hL = (b, l, _, C) => { - var L; - oe(l, !0), x(_) && Qa((L = x(_)) == null ? void 0 : L.getCenter(), x(C)) - }, dL = Ie(''), pL = Ie(' '), fL = Ie('
                '), mL = (b, l, _, C) => { - var F; - oe(l, !0); - const L = (F = x(_)) == null ? void 0 : F.getCenter(); - L && Qa(L, x(C)) - }, _L = Ie(''), gL = (b, l) => { - oe(l, !0) - }, vL = Ie(''), yL = (b, l) => { - oe(l, !0) - }, xL = Ie(''), bL = Ie('
                '), wL = (b, l) => { - oe(l, !x(l)) - }, TL = Ie('
                '), CL = Ie('
                '), SL = (b, l) => { - oe(l, !0) - }, PL = Ie(''), IL = (b, l) => { - var _; - (_ = x(l)) == null || _.zoomIn() - }, ML = (b, l) => { - var _; - (_ = x(l)) == null || _.zoomOut() - }, AL = Ie(''), kL = () => { - window.location.replace(La.url.origin) - }, EL = Ie(''), zL = (b, l) => { - x(l) && Ho.goToPrev(x(l)) - }, LL = Ie(''), DL = Ie('
                '), RL = (b, l, _) => { - var C; - (C = x(l)) == null || C.flyTo({ - center: x(l).getCenter(), - zoom: _ - }) - }, BL = Ie(''), FL = Ie(""), OL = Ie('
                '), NL = Ie('
                '), jL = (b, l) => { - oe(l, { - name: "mainMenu" - }, !0) - }, qL = Ie('
                '), VL = Ie('
                ', 1); - -function gD(b, l) { - Sr(l, !0); - const _ = og, - C = ix, - L = new hc(C), - F = _ - .4, - T = FP(La.url), - o = T.season ?? sg, - $ = new Map; - let W = nt(void 0), - ie = nt(14.5), - pe = nt(!1); - const ye = lt(() => { - var gt; - return ((gt = Dt.data) == null ? void 0 : gt.id) === 401 - }); - let X = nt(!1), - Se = nt(zn(T.select && T.pos ? { - name: "pixelSelected", - latLon: [T.pos.lat, T.pos.lng] - } : { - name: "mainMenu" - })); - Ii(() => { - Re().then(vr => oe(W, vr)); - let gt = [0, 0]; - - function qt(vr) { - var _i; - if (x(W) && x(ie) > _ + 1) { - const { - lat: Di, - lng: $i - } = x(W).unproject([vr.clientX, vr.clientY]), Mi = L.latLonToPixels(Di, $i, _), Cr = Math.floor(Mi[0]), gn = Math.floor(Mi[1]); - if (gt[0] !== Cr || gt[1] !== gn) { - const tr = L.latLonToPixelBoundsLatLon(Di, $i, _), - Ht = rm(tr, !0); - (_i = x(W).getSource(Ee)) == null || _i.setCoordinates(Ht), gt = [Cr, gn] - } - } - } - return window.addEventListener("mousemove", qt), () => { - var vr; - (vr = x(W)) == null || vr.remove(), window.removeEventListener("mousemove", qt), we && clearInterval(we), yf() - } - }); - let we; - async function Re() { - const gt = T.pos ? { - ...T.pos, - zoom: x(ie) - } : await IP(); - T.zoom !== void 0 && (gt.zoom = T.zoom); - const qt = await new Promise(Mi => { - const Cr = new bd.Map({ - style: "maps/styles/liberty", - center: gt, - zoom: gt.zoom, - container: "map", - dragRotate: !1, - doubleClickZoom: !1, - pitch: 0, - maxPitch: 0, - attributionControl: !1 - }); - Cr.touchZoomRotate.disableRotation(), Cr.on("style.load", () => { - Cr == null || Cr.setLayoutProperty("poi_transit", "visibility", "none"), Cr == null || Cr.setLayoutProperty("poi_r20", "visibility", "none"), Cr == null || Cr.setLayoutProperty("poi_r7", "visibility", "none"), Cr == null || Cr.setLayoutProperty("poi_r1", "visibility", "none"), Cr == null || Cr.setLayoutProperty("building", "visibility", "none"), Cr == null || Cr.setLayoutProperty("building-3d", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_pitch", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_hospital", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_school", "visibility", "none"), Cr == null || Cr.setLayoutProperty("landuse_residential", "visibility", "none"), Cr == null || Cr.setLayoutProperty("waterway_tunnel", "visibility", "none"), Cr == null || Cr.setFilter("water", ["all", ["!=", "brunnel", "tunnel"], - ["!=", "class", "swimming_pool"] - ]), Mi(Cr) - }) - }); - Oe(qt), Xe(); - const vr = $n.refreshIntervalMs; - - function _i() { - let Mi = x(ie) > _ + 1.5 ? vr : 2.5 * vr; - try { - document.visibilityState === "visible" && Oe(qt) - } finally { - setTimeout(_i, Mi) - } - } - we = setTimeout(_i, vr); - let Di = x(ie); - qt.on("zoom", () => { - oe(ie, qt.getZoom(), !0); - const Mi = nL(x(ie), 1); - Mi != Di && (x(ke) && x(ke).setOpacity(vt(Di)), Di = Mi) - }); - let $i = "default"; - return qt.on("dragstart", () => { - const Mi = qt.getCanvas(); - $i = Mi.style.cursor, Mi.style.cursor = "move" - }), qt.on("dragend", () => { - qt.getCanvas().style.cursor = $i - }), qt.on("mouseout", () => { - ct() - }), qt.on("click", async Mi => { - var ei; - const Cr = Mi.lngLat.lat, - gn = Mi.lngLat.lng, - tr = [Cr, gn]; - if (x(Se).name === "paintingPixel") return; - if (x(Se).name === "selectHq") { - x(Se).hq = tr, (ei = x(Q)) == null || ei.clearAndPlace(tr); - return - } - const Ht = qt.getZoom(); - if (Ht < F) { - qr.info(IC()); - return - } - Qa({ - lat: Cr, - lng: gn - }, Ht), oe(Se, { - name: "pixelSelected", - latLon: tr - }, !0) - }), qt - } - const Ae = "pixel-art-layer"; - - function Oe(gt) { - const qt = window.innerWidth, - vr = `${nx}/s${sg}/tiles/{x}/{y}.png`; - if ($.clear(), !gt.style) return; - gt.getSource(Ae) ? gt.refreshTiles(Ae) : gt.addSource(Ae, { - type: "raster", - tiles: [vr], - minzoom: _, - maxzoom: _, - tileSize: qt > 640 ? 550 : 400 - }), gt.getLayer(Ae) || gt.addLayer({ - id: Ae, - type: "raster", - source: Ae, - paint: { - "raster-resampling": "nearest", - "raster-opacity": x(Be) - } - }) - } - const Ee = "pixel-hover", - Ne = 1e-5, - ft = [ - [0, 0], - [Ne, 0], - [Ne, -Ne], - [0, -Ne] - ], - ht = .4; - async function Xe() { - var gt, qt, vr, _i; - if (!((gt = x(W)) != null && gt.getSource(Ee))) { - const Di = rL(await vf(SP)); - (qt = x(W)) == null || qt.addSource(Ee, { - type: "canvas", - canvas: Di, - coordinates: ft - }) - }(vr = x(W)) != null && vr.getLayer(Ee) || (_i = x(W)) == null || _i.addLayer({ - id: Ee, - type: "raster", - source: Ee, - paint: { - "raster-resampling": "nearest", - "raster-opacity": ht - } - }) - } - - function ct() { - var gt, qt; - (qt = (gt = x(W)) == null ? void 0 : gt.getSource(Ee)) == null || qt.setCoordinates(ft) - } - let Je = nt(zn(T.opaque ?? !0)), - Be = lt(() => x(Je) ? 1 : .1); - Zr(() => { - var gt; - (gt = x(W)) != null && gt.getLayer(Ae) && x(W).setPaintProperty(Ae, "raster-opacity", x(Be)) - }); - let st = nt(void 0), - it = nt(void 0), - Qe = nt(void 0); - Ii(() => (navigator.permissions.query({ - name: "geolocation" - }).then(gt => { - gt.state === "granted" && oe(Qe, navigator.geolocation.watchPosition(qt => { - oe(st, qt) - }, qt => { - oe(it, qt) - }, { - enableHighAccuracy: !1, - maximumAge: 1e3, - timeout: 6e3 - }), !0) - }), () => { - x(Qe) && navigator.geolocation.clearWatch(x(Qe)) - })); - let ke = nt(void 0); - dc(() => [x(st), x(W)], () => { - var gt, qt; - if (x(st) && x(W)) { - const vr = { - lat: x(st).coords.latitude, - lng: x(st).coords.longitude - }, - _i = vt(x(ie)); - if (!x(ke)) { - const Di = document.createElement("div"); - Di.classList.add("maplibregl-user-location-dot"), Di.classList.add("cursor-auto"), oe(ke, new bd.Marker({ - element: Di, - opacity: _i - }).setLngLat(vr).addTo(x(W))) - }(qt = (gt = x(ke)) == null ? void 0 : gt.setLngLat(vr)) == null || qt.setOpacity(_i) - } - }); - - function vt(gt) { - return gt < _ ? "1.0" : iL((gt - _) * .2, .5, 1).toFixed(2) - } - let Q = nt(void 0); - Zr(() => { - var gt; - x(W) && ((gt = Go(() => x(Q))) == null || gt.clear(), vf(dg).then(qt => { - oe(Q, new fg({ - id: "select-crosshair", - map: x(W), - tileSize: C, - zoom: _, - img: qt, - markerFn: () => { - const vr = new bd.Marker({ - color: "#0069ff" - }); - return vr.addClassName("z-20"), vr - } - })) - })) - }); - let te = nt(void 0); - Zr(() => { - var gt; - x(W) && ((gt = Go(() => x(Q))) == null || gt.clear(), vf(dg).then(qt => { - oe(te, new fg({ - id: "paint-crosshair", - map: x(W), - tileSize: C, - zoom: _, - img: qt - })) - })) - }); - let _e = nt(!1), - ne = nt(!1), - Pe = nt(!1), - Me = nt(!!T.newUser), - at = nt(!1), - We = nt(!!T.alliance), - Ct = nt(!1); - const _t = "void-message-2"; - let xt = nt(!1); - Zr(() => { - const gt = localStorage.getItem(_t); - Dt.data && !gt && (oe(xt, !0), localStorage.setItem(_t, "true")) - }); - let tt = nt(!1), - pt = nt(zn(La.url)), - It = nt(zn({ - cityId: 0, - countryId: 1, - id: 0, - name: "None", - number: 1 - })), - ut = nt(!1); - const bt = "view-rules"; - let wt = !1; - Zr(() => { - Dt.data && (!wt && Dt.data.pixelsPainted > 1 && (localStorage.getItem(bt) || (oe(ut, !0), localStorage.setItem(bt, "true"))), wt = !0) - }); - let dt = nt(!1); - Zr(() => { - var gt; - oe(dt, !!((gt = Dt.data) != null && gt.needsPhoneVerification)) - }); - let Lt = nt([]), - Xt = lt(() => x(ie) < F ? "1.0" : x(ie) < F + 2 ? "0.5" : "0.3"); - Zr(() => { - var qt; - const gt = (qt = Dt.data) == null ? void 0 : qt.favoriteLocations; - if (gt && x(W)) { - for (const vr of Go(() => x(Lt))) vr.remove(); - oe(Lt, gt.map(vr => { - const _i = document.createElement("div"); - _i.classList.add("text-yellow-400"), _i.classList.add("cursor-pointer"), _i.classList.add("z-10"), _i.innerHTML = ` - - - `; - const Di = { - lat: vr.latitude, - lng: vr.longitude - }; - return _i.addEventListener("click", Mi => { - Mi.stopPropagation(), Yt([vr.latitude, vr.longitude]) - }), new bd.Marker({ - element: _i, - opacity: x(Xt) - }).setLngLat(Di).addTo(x(W)) - })) - } - }); - - function Yt(gt) { - var vr; - const qt = { - lat: gt[0], - lng: gt[1] - }; - (vr = x(W)) == null || vr.flyTo({ - center: qt, - zoom: Math.max(x(ie), 15) - }), Qa(qt, x(ie)), oe(Se, { - name: "pixelSelected", - latLon: [qt.lat, qt.lng] - }, !0) - } - Zr(() => { - if (x(Se).name === "paintingPixel") - for (const gt of x(Lt)) gt.addClassName("hidden"); - else - for (const gt of x(Lt)) gt.removeClassName("hidden"), gt.setOpacity(x(Xt)) - }); - let nr = Number.MAX_VALUE; - Zr(() => { - if (Dt.charges !== void 0 && Dt.data) { - const gt = Dt.data.charges.max, - qt = Dt.charges; - nr < gt && qt >= gt && pa.notification1.play(), nr = Dt.charges - } - }); - let ar = nt(!1), - Ft = Date.now(); - Ii(() => { - const gt = BP(), - qt = () => { - var _i; - if (!document.hidden && Date.now() - Ft > 30 * Yl.min) { - if (gt) { - const $i = (_i = x(W)) == null ? void 0 : _i.getCenter(); - $i && Qa($i, x(ie)), window.location.replace(La.url.origin) - } else Dt.refresh(); - Ft = Date.now() - } - }; - return document.addEventListener("visibilitychange", qt), () => document.removeEventListener("visibilitychange", qt) - }), Ii(() => { - function gt() { - ni.online = !0 - } - window.addEventListener("online", gt); - - function qt() { - ni.online = !1 - } - return window.addEventListener("offline", qt), () => { - window.removeEventListener("online", gt), window.removeEventListener("offline", qt) - } - }), Zr(() => { - if (!ni.online) { - const gt = setInterval(() => { - ni.health().then(() => { - ni.online = !0, !Dt.data && !Dt.loading && Dt.refresh() - }) - }, 5e3); - return () => { - clearInterval(gt) - } - } - }), Ii(() => { - function gt(qt) { - qt.data.type && x(W) && Oe(x(W)) - } - return navigator.serviceWorker.addEventListener("message", gt), () => { - navigator.serviceWorker.removeEventListener("message", gt) - } - }); - let dr = nt(!1), - _r = nt("report-user"), - Ir = nt(void 0), - jr = nt(void 0), - ur = nt(void 0), - Mr = nt(0); - var Ar = VL(); - Vy(gt => { - var qt = aL(); - qy.title = "openplace - Paint the world", fi(6), H(gt, qt) - }); - var kr = zt(Ar); - { - const gt = tr => { - var Ht = oL(); - Ht.__click = [sL, Je]; - var ei = k(Ht); - { - let ri = lt(() => !x(Je)); - zv(ei, { - class: "size-5", - get filled() { - return x(ri) - } - }) - } - A(Ht), Ge(ri => { - zr(Ht, "title", ri), Or(Ht, 1, Vo({ - "btn btn-lg btn-square sm:btn-xl z-30 shadow-md": !0, - "text-base-content/80": x(Je), - "btn-primary btn-soft": !x(Je) - })) - }, [() => Ug()]), H(tr, Ht) - }, - qt = tr => { - var Ht = uL(); - Ht.__click = [lL, st, ie, W]; - var ei = k(Ht); - { - var ri = ci => { - Xz(ci, { - class: "size-5.5 fill-blue-800" - }) - }, - gi = ci => { - var pi = cL(), - Er = k(pi); - Hz(Er, { - class: "size-5.5 fill-red-400" - }), fi(2), A(pi), H(ci, pi) - }; - Ue(ei, ci => { - x(st) ? ci(ri) : ci(gi, !1) - }) - } - A(Ht), Ge(ci => zr(Ht, "title", ci), [() => d1()]), H(tr, Ht) - }; - var Nr = V(k(kr), 2); - let vr; - var ce = k(Nr); - let _i; - var O = k(ce); - { - var q = tr => { - var Ht = dL(); - Ht.__click = [hL, _e, W, ie]; - var ei = k(Ht, !0); - A(Ht), Ge(ri => fe(ei, ri), [() => Ex()]), H(tr, Ht) - }, - G = tr => { - var Ht = Jt(), - ei = zt(Ht); - { - var ri = gi => { - var ci = fL(), - pi = k(ci); - { - var Er = ui => { - var Jr = pL(), - ti = k(Jr, !0); - A(Jr), Ge(() => { - var yr; - zr(Jr, "href", `${La.url.origin??""}/admin`), fe(ti, ((yr = Dt.data) == null ? void 0 : yr.role) === "admin" ? "ADMIN" : "MOD") - }), H(ui, Jr) - }; - Ue(pi, ui => { - var Jr; - Cu((Jr = Dt.data) == null ? void 0 : Jr.role, ["admin", "moderator", "global_moderator"]) && ui(Er) - }) - } - var Ri = V(pi, 2); - h8(Ri, { - get user() { - return Dt - }, - onlogout: () => { - oe(Se, { - name: "mainMenu" - }, !0) - }, - onclickleaderboard: () => { - oe(Pe, !0) - }, - onclickshop: () => { - var Jr; - oe(ne, !0); - const ui = (Jr = x(W)) == null ? void 0 : Jr.getCenter(); - ui && Qa(ui, x(ie)) - } - }), A(ci), En(3, ci, () => Qn, () => ({ - duration: 150 - })), H(gi, ci) - }; - Ue(ei, gi => { - Dt.data && x(W) && x(Se).name !== "paintingPixel" && gi(ri) - }, !0) - } - H(tr, Ht) - }; - Ue(O, tr => { - !Dt.loading && !Dt.data ? tr(q) : tr(G, !1) - }) - } - var K = V(O, 2); - { - var le = tr => { - var Ht = bL(), - ei = k(Ht); - { - var ri = Ri => { - _f(Ri, { - key: "shop-profile-picture", - children: (ui, Jr) => { - var ti = _L(); - ti.__click = [mL, ne, W, ie]; - var yr = k(ti); - Rv(yr, { - class: "size-5" - }), A(ti), Ge(on => zr(ti, "title", on), [() => qg()]), H(ui, ti) - }, - $$slots: { - default: !0 - } - }) - }; - Ue(ei, Ri => { - Dt.data && Ri(ri) - }) - } - var gi = V(ei, 2); - { - var ci = Ri => { - var ui = vL(); - ui.__click = [gL, We]; - var Jr = k(ui); - Kd(Jr, { - class: "size-5" - }), A(ui), Ge(ti => zr(ui, "title", ti), [() => Gd()]), H(Ri, ui) - }; - Ue(gi, Ri => { - Dt.data && Ri(ci) - }) - } - var pi = V(gi, 2); - v8(pi, { - get map() { - return x(W) - }, - get season() { - return o - } - }); - var Er = V(pi, 2); - _f(Er, { - key: "region-leaderboard", - children: (Ri, ui) => { - var Jr = xL(); - Jr.__click = [yL, Pe]; - var ti = k(Jr); - Mv(ti, { - class: "size-5" - }), A(Jr), Ge(yr => zr(Jr, "title", yr), [() => Yf()]), H(Ri, Jr) - }, - $$slots: { - default: !0 - } - }), A(Ht), En(3, Ht, () => Qn, () => ({ - duration: 150 - })), H(tr, Ht) - }, - ve = tr => { - var Ht = Jt(), - ei = zt(Ht); - { - var ri = gi => { - var ci = TL(), - pi = k(ci); - let Er; - pi.__click = [wL, pe]; - var Ri = k(pi); - { - var ui = ti => { - Gf(ti, { - class: "size-5" - }) - }, - Jr = ti => { - Ld(ti, { - class: "size-5" - }) - }; - Ue(Ri, ti => { - x(pe) ? ti(ui) : ti(Jr, !1) - }) - } - A(pi), A(ci), Ge((ti, yr) => { - zr(pi, "title", ti), Er = Or(pi, 1, "btn btn-square not-touchscreen:hidden shadow-md", null, Er, yr) - }, [() => x(pe) ? jx() : Ux(), () => ({ - "btn-primary": x(pe) - })]), En(1, ci, () => Qn, () => ({ - delay: 150, - duration: 150 - })), H(gi, ci) - }; - Ue(ei, gi => { - x(W) && x(Se).name === "paintingPixel" && gi(ri) - }, !0) - } - H(tr, Ht) - }; - Ue(K, tr => { - x(W) && x(Se).name !== "paintingPixel" ? tr(le) : tr(ve, !1) - }) - } - A(ce), A(Nr); - var Le = V(Nr, 2); - { - var Ce = tr => { - var Ht = CL(), - ei = k(Ht); - { - oa.captcha = { token: "skip", time: Date.now() }; - } - A(Ht), En(2, Ht, () => Qn, () => ({ - duration: 300 - })), H(tr, Ht) - }; - Ue(Le, tr => { - (!oa.captcha || oa.now - oa.captcha.time > 180 * 1e3) && tr(Ce) - }) - } - var Ze = V(Le, 2); - let Di; - var ot = k(Ze); - { - var Ye = tr => { - _f(tr, { - key: "info", - children: (Ht, ei) => { - var ri = PL(); - ri.__click = [SL, at]; - var gi = k(ri); - $z(gi, { - class: "size-3.5" - }), A(ri), Ge(ci => zr(ri, "title", ci), [() => Gx()]), H(Ht, ri) - }, - $$slots: { - default: !0 - } - }) - }; - Ue(ot, tr => { - x(Se).name !== "paintingPixel" && tr(Ye) - }) - } - var Ot = V(ot, 2), - xe = k(Ot); - xe.__click = [IL, W]; - var At = V(xe, 2); - At.__click = [ML, W], A(Ot); - var Pt = V(Ot, 2), - kt = k(Pt), - Wt = k(kt); - jg(Wt, { - class: "size-4" - }), A(kt), A(Pt); - var Lr = V(Pt, 2); - { - var Kr = tr => { - var Ht = AL(), - ei = k(Ht); - tL(ei, { - class: "size-4", - onclick: () => { - oe(X, !x(X)) - } - }), A(Ht), Ge(ri => zr(Ht, "title", ri), [() => Ob()]), H(tr, Ht) - }; - Ue(Lr, tr => { - x(ye) && tr(Kr) - }) - } - var Hr = V(Lr, 2); - { - var $r = tr => { - var Ht = EL(); - Ht.__click = [kL]; - var ei = k(Ht); - Tx(ei, { - class: "size-3" - }), A(Ht), Ge(ri => zr(Ht, "title", ri), [() => Cx()]), H(tr, Ht) - }; - Ue(Hr, tr => { - x(Se).name !== "paintingPixel" && tr($r) - }) - } - var mr = V(Hr, 2); - { - var gr = tr => { - var Ht = LL(); - Ht.__click = [zL, W]; - var ei = k(Ht); - Qz(ei, { - class: "size-3" - }), A(Ht), Ge((ri, gi) => { - zr(Ht, "title", ri), Ht.disabled = gi - }, [() => t1(), () => !Ho.hasPrev()]), En(1, Ht, () => Qn, () => ({ - delay: 1e3, - duration: 300 - })), En(2, Ht, () => Qn, () => ({ - duration: 300 - })), H(tr, Ht) - }; - Ue(mr, tr => { - Ho.hasPrev() && x(Se).name !== "paintingPixel" && tr(gr) - }) - } - A(Ze); - var ai = V(Ze, 2); - let $i; - var Tt = k(ai); - { - var Ci = tr => { - var Ht = DL(), - ei = k(Ht); - Sx(ei, { - class: "size-5" - }); - var ri = V(ei); - A(Ht), Ge(gi => fe(ri, ` ${gi??""}`), [() => n1()]), En(1, Ht, () => Qn, () => ({ - duration: 1e3 - })), En(2, Ht, () => Qn), H(tr, Ht) - }; - Ue(Tt, tr => { - ni.online || tr(Ci) - }) - } - var di = V(Tt, 2); - { - var Pn = tr => { - var Ht = BL(); - Ht.__click = [RL, W, _]; - var ei = k(Ht); - Yz(ei, { - class: "size-5" - }); - var ri = V(ei); - A(Ht), Ge(gi => fe(ri, ` ${gi??""}`), [() => o1()]), En(3, Ht, () => Qn, () => ({ - duration: 300 - })), H(tr, Ht) - }; - Ue(di, tr => { - x(ie) < F && tr(Pn) - }) - } - A(ai); - var Mt = V(ai, 2); - let Mi; - var Ke = k(Mt); - gt(Ke), A(Mt); - var jt = V(Mt, 2); - let Cr; - var Gt = k(jt); - { - var Dr = tr => { - kv(tr, { - class: "z-30", - onclick: () => { - var Ht; - (Ht = Dt.data) != null && Ht.needsPhoneVerification ? (oe(dt, !0), qr.warning(cg())) : Dt.charges !== void 0 && Dt.charges < 1 ? qr.warning(rk, { - icon: Eg - }) : x(W) && Dt.data ? (pa.smallDropplet.play(), oe(Se, { - name: "paintingPixel" - }, !0)) : (oe(_e, !0), x(W) && Qa(x(W).getCenter(), x(ie))) - }, - get disabled() { - return Dt.loading - }, - get loading() { - return Dt.loading - }, - get charges() { - return Dt.charges - } - }) - }, - Gr = tr => { - var Ht = FL(); - H(tr, Ht) - }; - Ue(Gt, tr => { - x(Se).name === "mainMenu" ? tr(Dr) : tr(Gr, !1) - }) - } - A(jt); - var li = V(jt, 2); - let gn; - var fr = k(li); - qt(fr), A(li); - var bi = V(li, 2); - { - var Si = tr => { - var Ht = Jt(), - ei = zt(Ht); - { - var ri = ci => { - var pi = OL(), - Er = k(pi), - Ri = k(Er); - lz(Ri, { - get latLon() { - return x(Se).latLon - }, - get map() { - return x(W) - }, - get crosshair() { - return x(Q) - }, - get pixelInfoCache() { - return $ - }, - get season() { - return o - }, - get tileSize() { - return C - }, - get pixelArtZoom() { - return _ - }, - get zoom() { - return x(ie) - }, - get opaquePixelArt() { - return x(Je) - }, - onclose: () => oe(Se, { - name: "mainMenu" - }, !0), - onclickshare: ui => { - oe(pt, ui, !0), oe(tt, !0) - }, - onclickpaint: ([ui, Jr]) => { - var yr, on, vn; - if (!Dt.data) { - oe(_e, !0); - return - } - if ((yr = Dt.data) != null && yr.needsPhoneVerification) { - oe(dt, !0), qr.warning(cg()); - return - } - if (Dt.charges !== void 0 && Dt.charges < 1) { - qr.warning(m1()); - return - } - const ti = im(L.latLonToPixelBoundsLatLon(ui, Jr, _)); - (on = x(W)) == null || on.flyTo({ - center: { - lat: ti[0], - lon: ti[1] - } - }), oe(Se, { - name: "paintingPixel", - clickedLatLon: [ui, Jr] - }, !0), (vn = x(Q)) == null || vn.clear() - }, - onclickregion: ui => { - oe(It, ui, !0), oe(Ct, !0) - }, - onclickmodaction: (ui, Jr, ti, yr) => { - var on, vn, _a; - (on = x(W)) == null || on.setZoom(Math.max(x(ie), _ + 2)), (vn = x(W)) == null || vn.setCenter({ - lat: ti[0], - lng: ti[1] - }), oe(Ir, Jr, !0), oe(jr, ui, !0), oe(ur, ti, !0), oe(Mr, ((_a = x(W)) == null ? void 0 : _a.getZoom()) ?? 0, !0), oe(_r, yr, !0), oe(dr, !0) - } - }), A(Er), A(pi), En(3, Er, () => uf, () => ({ - duration: 100 - })), H(ci, pi) - }, - gi = ci => { - var pi = Jt(), - Er = zt(pi); - { - var Ri = Jr => { - var ti = NL(), - yr = k(ti), - on = k(yr); - nE(on, { - get map() { - return x(W) - }, - get clickedLatLon() { - return x(Se).clickedLatLon - }, - get tileSize() { - return C - }, - get tileZoom() { - return _ - }, - get season() { - return o - }, - get zoom() { - return x(ie) - }, - get crosshair() { - return x(te) - }, - refreshPixelArt: () => x(W) && Oe(x(W)), - hidePixelHover: ct, - hoverLayerId: Ee, - onclose: () => { - oe(Se, { - name: "mainMenu" - }, !0), ct() - }, - get screenLocked() { - return x(pe) - }, - set screenLocked(vn) { - oe(pe, vn, !0) - }, - get opaquePixelArt() { - return x(Je) - }, - set opaquePixelArt(vn) { - oe(Je, vn, !0) - } - }), A(yr), A(ti), En(3, yr, () => uf, () => ({ - duration: 100 - })), H(Jr, ti) - }, - ui = Jr => { - var ti = Jt(), - yr = zt(ti); - { - var on = vn => { - var _a = qL(), - ln = k(_a), - Ki = k(ln), - cn = k(Ki), - Ni = k(cn), - wi = k(Ni); - Lv(wi, { - class: "inline size-4" - }); - var Ko = V(wi); - A(Ni); - var un = V(Ni, 2); - un.__click = [jL, Se]; - var Nn = k(un); - fc(Nn, { - class: "size-4" - }), A(un), A(cn); - var hn = V(cn, 2), - Ti = k(hn); - Ti.__click = async () => { - var wr; - if (x(Se).name === "selectHq") { - const Vr = x(Se).hq; - if (Vr) try { - oe(ar, !0), await ni.updateAllianceHeadquarters(Vr[0], Vr[1]), (wr = x(Q)) == null || wr.clear(), oe(We, !0), oe(Se, { - name: "mainMenu" - }, !0) - } catch (ga) { - qr.error(ga.message) - } finally { - oe(ar, !1) - } - } - }; - var Za = k(Ti); - Uz(Za, { - class: "size-6" - }), A(Ti), A(hn), A(Ki), A(ln), A(_a), Ge(wr => { - fe(Ko, ` ${wr??""}`), Ti.disabled = x(Se).hq === void 0 || x(ar) - }, [() => B3()]), En(3, ln, () => uf, () => ({ - duration: 100 - })), H(vn, _a) - }; - Ue(yr, vn => { - x(Se).name === "selectHq" && vn(on) - }, !0) - } - H(Jr, ti) - }; - Ue(Er, Jr => { - x(Se).name === "paintingPixel" && x(te) ? Jr(Ri) : Jr(ui, !1) - }, !0) - } - H(ci, pi) - }; - Ue(ei, ci => { - x(Se).name === "pixelSelected" && x(Q) ? ci(ri) : ci(gi, !1) - }) - } - H(tr, Ht) - }; - Ue(bi, tr => { - x(W) && tr(Si) - }) - } - A(kr), Ge((tr, Ht, ei, ri, gi, ci, pi, Er, Ri) => { - vr = Or(Nr, 1, "absolute right-2 top-2 z-30", null, vr, tr), _i = Or(ce, 1, "flex flex-col gap-4", null, _i, Ht), Di = Or(Ze, 1, "absolute left-2 top-2 z-30 flex flex-col gap-3", null, Di, ei), zr(xe, "title", ri), zr(At, "title", gi), $i = Or(ai, 1, "absolute left-1/2 top-2 z-30 flex -translate-x-1/2 flex-col items-center justify-center gap-2", null, $i, ci), Mi = Or(Mt, 1, "absolute bottom-3 left-3 z-30", null, Mi, pi), Cr = Or(jt, 1, "absolute bottom-3 left-1/2 z-30 -translate-x-1/2", null, Cr, Er), gn = Or(li, 1, "absolute bottom-3 right-3 z-30", null, gn, Ri) - }, [() => ({ - hidden: x(X) - }), () => ({ - "items-end": !Dt.data, - "items-center": Dt.data - }), () => ({ - hidden: x(X) - }), () => Xx(), () => Jx(), () => ({ - hidden: x(X) - }), () => ({ - hidden: x(X) - }), () => ({ - hidden: x(X) - }), () => ({ - hidden: x(X) - })]) - } - var zi = V(kr, 2); - YA(zi, { - get open() { - return x(_e) - }, - set open(gt) { - oe(_e, gt, !0) - } - }); - var mi = V(zi, 2); - qz(mi, { - get open() { - return x(ne) - }, - set open(gt) { - oe(ne, gt, !0) - } - }); - var Li = V(mi, 2); - ZM(Li, { - get open() { - return x(Me) - }, - set open(gt) { - oe(Me, gt, !0) - } - }); - var rr = V(Li, 2); - i4(rr, { - get open() { - return x(at) - }, - set open(gt) { - oe(at, gt, !0) - } - }); - var yi = V(rr, 2); - qM(yi, { - get open() { - return x(ut) - }, - set open(gt) { - oe(ut, gt, !0) - } - }); - var Qr = V(yi, 2); - WA(Qr, { - onvisitclick: gt => { - var qt; - (qt = x(W)) == null || qt.flyTo({ - center: gt, - zoom: og + 1 - }), Qa(gt, x(ie)), Ho.push({ - pos: gt, - zoom: x(ie) - }), oe(Pe, !1) - }, - get open() { - return x(Pe) - }, - set open(gt) { - oe(Pe, gt, !0) - } - }); - var Yr = V(Qr, 2); - z8(Yr, { - get region() { - return x(It) - }, - get open() { - return x(Ct) - }, - set open(gt) { - oe(Ct, gt, !0) - } - }); - var la = V(Yr, 2); - mx(la, { - get open() { - return oa.dropletsDialogOpen - }, - set open(gt) { - oa.dropletsDialogOpen = gt - } - }); - var sn = V(la, 2); - { - var ta = gt => { - gM(gt, { - onhqchange: () => { - oe(Se, { - name: "selectHq" - }, !0), oe(We, !1) - }, - onhqclick: qt => { - var vr; - (vr = x(W)) == null || vr.flyTo({ - center: qt, - zoom: Math.max(x(ie), 15) - }), oe(Se, { - name: "pixelSelected", - latLon: [qt.lat, qt.lng] - }, !0), oe(We, !1) - }, - onlastpixelclick: qt => { - var vr; - (vr = x(W)) == null || vr.flyTo({ - center: qt, - zoom: Math.max(x(ie), 15) - }), oe(Se, { - name: "pixelSelected", - latLon: [qt.lat, qt.lng] - }, !0), oe(We, !1) - }, - get open() { - return x(We) - }, - set open(qt) { - oe(We, qt, !0) - } - }) - }; - Ue(sn, gt => { - x(W) && gt(ta) - }) - } - var Fi = V(sn, 2); - CE(Fi, { - get open() { - return x(dt) - }, - set open(gt) { - oe(dt, gt, !0) - } - }); - var Xi = V(Fi, 2); - { - var Gn = gt => { - DM(gt, { - get url() { - return x(pt) - }, - get map() { - return x(W) - }, - hideHover: () => { - var qt, vr; - (qt = x(W)) == null || qt.setPaintProperty(Ee, "raster-opacity", 0), (vr = x(Q)) == null || vr.setCanvasOpacity(0) - }, - showHover: () => { - var qt, vr; - (qt = x(W)) == null || qt.setPaintProperty(Ee, "raster-opacity", ht), (vr = x(Q)) == null || vr.setCanvasOpacity(1) - }, - get open() { - return x(tt) - }, - set open(qt) { - oe(tt, qt, !0) - } - }) - }; - Ue(Xi, gt => { - x(W) && gt(Gn) - }) - } - var Hn = V(Xi, 2); - { - var Ln = gt => { - bM(gt, { - get image() { - return x(Ir) - }, - get paintedBy() { - return x(jr).paintedBy - }, - get latLon() { - return x(ur) - }, - get zoom() { - return x(Mr) - }, - get action() { - return x(_r) - }, - get open() { - return x(dr) - }, - set open(qt) { - oe(dr, qt, !0) - } - }) - }; - Ue(Hn, gt => { - x(jr) && x(Ir) && x(ur) && gt(Ln) - }) - } - H(b, Ar), Pr() -} -Wi(["click"]); -export { - gD as component -}; \ No newline at end of file diff --git a/frontend-backup/_app/immutable/nodes/2.DTTH4yjc.js b/frontend-backup/_app/immutable/nodes/2.DTTH4yjc.js deleted file mode 100644 index 63f3aad..0000000 --- a/frontend-backup/_app/immutable/nodes/2.DTTH4yjc.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{p as L,f as b,b as c,c as R,$ as S,d as t,n as y,r as s,s as x,t as W,g as n,u as $}from"../chunks/BDALf20I.js";import{s as j}from"../chunks/4k6DpCgf.js";import{s as z}from"../chunks/4WsUhDWi.js";import{k as M,t as g}from"../chunks/BCONGQnO.js";import{e as N,i as P}from"../chunks/CZW2bcQi.js";import{h as U}from"../chunks/BUhRjcOt.js";import{c as Y,s as q,a as B}from"../chunks/BNZUboE0.js";import{p as _}from"../chunks/C-Y7nmnD.js";import{L as C}from"../chunks/CYItkO2S.js";import{f as w}from"../chunks/DnhglgUZ.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new e.Error().stack;i&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[i]="b13ebcf7-0e8c-49ec-bc33-0015c8d1ee6b",e._sentryDebugIdIdentifier="sentry-dbid-b13ebcf7-0e8c-49ec-bc33-0015c8d1ee6b")})()}catch{}var F=b(' '),G=b("
                "),H=b('');function re(e,i){L(i,!0);const m=$(()=>_.url.pathname),k=[{label:"Dashboard",href:"/admin/dashboard",key:"dashboard"},{label:"Mods",href:"/admin/mods/leaderboard",key:"mods"},{label:"Users",href:"/admin/users",key:"users"},{label:"Alliances",href:"/admin/alliances",key:"alliances"}];function A(r){return n(m)===r||n(m).startsWith(r+"/")}var d=H();U(r=>{S.title="Wplace - Admin"});var l=t(d),f=t(l),p=t(f),D=t(p);C(D,{class:"h-7 w-auto"}),y(2),s(p),y(2),s(f);var u=x(f,2),v=t(u);N(v,21,()=>k,P,(r,a)=>{var o=F(),I=t(o,!0);s(o),W(T=>{q(o,"href",n(a).href),B(o,1,T),j(I,n(a).label)},[()=>Y({tab:!0,"font-semibold":!0,"tab-active":A(n(a).href)})]),c(r,o)}),s(v),s(u),s(l);var h=x(l,2),E=t(h);M(E,()=>_.url.pathname,r=>{var a=G(),o=t(a);z(o,()=>i.children),s(a),g(1,a,()=>w,()=>({duration:120})),g(2,a,()=>w,()=>({duration:80})),c(r,a)}),s(h),s(d),c(e,d),R()}export{re as component}; diff --git a/frontend-backup/_app/immutable/nodes/20.LCTNv26D.js b/frontend-backup/_app/immutable/nodes/20.LCTNv26D.js new file mode 100644 index 0000000..d053325 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/20.LCTNv26D.js @@ -0,0 +1,59 @@ +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { f as d, b as l, $ as t, d as s, r, n } from "../chunks/CMvZtFtm.js"; +import { h as c } from "../chunks/P77cUGnY.js"; +import { L as m } from "../chunks/D3yDgRbd.js"; +(function () { + try { + var o = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + o.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var o = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + e = new o.Error().stack; + e && + ((o._sentryDebugIds = o._sentryDebugIds || {}), + (o._sentryDebugIds[e] = "82b5f9ec-cd5e-4d29-a95b-a5ca1216383a"), + (o._sentryDebugIdIdentifier = + "sentry-dbid-82b5f9ec-cd5e-4d29-a95b-a5ca1216383a")); + })(); +} catch {} +var u = + d(`

                Política de Reembolso

                Última atualização: 17 de setembro de 2025

                Como solicitar um reembolso?

                • Entre em contato com nosso suporte através do email refund@wplace.live
                • Forneça seu ID de usuário, email da conta do Wplace, comprovante de pagamento e motivo da + solicitação.

                Você pode solicitar um reembolso quando:

                • Você for cobrado duas vezes pelo mesmo serviço.
                • Você não conseguir usar o serviço devido a problemas técnicos com o Wplace que durem mais de + 24 horas.
                • Você não utilizou os serviços dentro de 7 dias corridos após a compra.

                Reembolsos não serão concedidos quando:

                • Se passaram mais de 7 dias após a compra.
                • O cancelamento ocorrer depois que os serviços tiverem sido usados.
                • Houver violação dos termos de uso, especialmente em casos de banimento de conta.
                • Houver problemas relacionados ao uso do cartão, como:
                  • Perda, furto ou roubo do cartão;
                  • Uso não autorizado por terceiros;
                  • Contestações sobre compras feitas por usuários não autorizados, quando não for possível + provar uma falha do sistema.
                • Nesses casos, o portador do cartão deve entrar em contato diretamente com a instituição + financeira para tomar as ações apropriadas, como bloquear o cartão, contestar cobranças e + solicitar um estorno, de acordo com as regras do banco ou operadora do cartão.
                • Reembolsos só serão considerados em situações onde for comprovada uma falha técnica do sistema + da plataforma.

                Prazos:

                • O Wplace responderá dentro de 10 dias úteis.
                • O reembolso será processado usando o mesmo método de pagamento e ocorrerá dentro de 7 a 30 + dias.
                `); +function y(o) { + var e = u(); + c((p) => { + t.title = "FurryPlace - Política de Reembolso"; + }); + var a = s(e), + i = s(a); + m(i, { size: "lg", class: "mb-4", hasText: !0 }), r(a), n(20), r(e), l(o, e); +} +export { y as component }; diff --git a/frontend-backup/_app/immutable/nodes/20.ppFj_8Kx.js b/frontend-backup/_app/immutable/nodes/20.ppFj_8Kx.js deleted file mode 100644 index 498730b..0000000 --- a/frontend-backup/_app/immutable/nodes/20.ppFj_8Kx.js +++ /dev/null @@ -1,8 +0,0 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{f as d,b as l,$ as t,d as s,r,n}from"../chunks/BDALf20I.js";import{h as c}from"../chunks/BUhRjcOt.js";import{L as m}from"../chunks/CYItkO2S.js";(function(){try{var o=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};o.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var o=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new o.Error().stack;e&&(o._sentryDebugIds=o._sentryDebugIds||{},o._sentryDebugIds[e]="82b5f9ec-cd5e-4d29-a95b-a5ca1216383a",o._sentryDebugIdIdentifier="sentry-dbid-82b5f9ec-cd5e-4d29-a95b-a5ca1216383a")})()}catch{}var u=d(`

                Política de Reembolso

                Última atualização: 17 de setembro de 2025

                Como solicitar um reembolso?

                • Entre em contato com nosso suporte através do email refund@wplace.live
                • Forneça seu ID de usuário, email da conta do Wplace, comprovante de pagamento e motivo da - solicitação.

                Você pode solicitar um reembolso quando:

                • Você for cobrado duas vezes pelo mesmo serviço.
                • Você não conseguir usar o serviço devido a problemas técnicos com o Wplace que durem mais de - 24 horas.
                • Você não utilizou os serviços dentro de 7 dias corridos após a compra.

                Reembolsos não serão concedidos quando:

                • Se passaram mais de 7 dias após a compra.
                • O cancelamento ocorrer depois que os serviços tiverem sido usados.
                • Houver violação dos termos de uso, especialmente em casos de banimento de conta.
                • Houver problemas relacionados ao uso do cartão, como:
                  • Perda, furto ou roubo do cartão;
                  • Uso não autorizado por terceiros;
                  • Contestações sobre compras feitas por usuários não autorizados, quando não for possível - provar uma falha do sistema.
                • Nesses casos, o portador do cartão deve entrar em contato diretamente com a instituição - financeira para tomar as ações apropriadas, como bloquear o cartão, contestar cobranças e - solicitar um estorno, de acordo com as regras do banco ou operadora do cartão.
                • Reembolsos só serão considerados em situações onde for comprovada uma falha técnica do sistema - da plataforma.

                Prazos:

                • O Wplace responderá dentro de 10 dias úteis.
                • O reembolso será processado usando o mesmo método de pagamento e ocorrerá dentro de 7 a 30 - dias.
                `);function y(o){var e=u();c(p=>{t.title="Wplace - Política de Reembolso"});var a=s(e),i=s(a);m(i,{size:"lg",class:"mb-4",hasText:!0}),r(a),n(20),r(e),l(o,e)}export{y as component}; diff --git a/frontend-backup/_app/immutable/nodes/21.PUjACzZY.js b/frontend-backup/_app/immutable/nodes/21.zScYLJw9.js similarity index 98% rename from frontend-backup/_app/immutable/nodes/21.PUjACzZY.js rename to frontend-backup/_app/immutable/nodes/21.zScYLJw9.js index c33d030..5462d0f 100644 --- a/frontend-backup/_app/immutable/nodes/21.PUjACzZY.js +++ b/frontend-backup/_app/immutable/nodes/21.zScYLJw9.js @@ -1,4 +1,52 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{f as n,b as i,$ as r,d as l,r as a,n as c}from"../chunks/BDALf20I.js";import{h as v}from"../chunks/BUhRjcOt.js";import{L as d}from"../chunks/CYItkO2S.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="5f562edb-cbd5-40ec-9749-754fa5b546c1",t._sentryDebugIdIdentifier="sentry-dbid-5f562edb-cbd5-40ec-9749-754fa5b546c1")})()}catch{}var p=n(`

                TERMS OF SERVICE

                Last updated June 08, 2025


                AGREEMENT TO OUR LEGAL TERMS

                TERMS OF SERVICE

                Last updated June 08, 2025


                AGREEMENT TO OUR LEGAL TERMS

                We are Wplace ("Company," "we," "us," "our")
                Wplace
                wplacelive@gmail.com
                `);function u(t){var e=p();v(b=>{r.title="Wplace - Terms of Service"});var s=l(e),o=l(s);d(o,{class:"mb-4",hasText:!0}),a(s),c(2),a(e),i(t,e)}export{u as component}; +Calibri;color:#595959;mso-themecolor:text1;mso-themetint:166;" class="svelte-11vl9q8">wplacelive@gmail.com
                `); +function u(t) { + var e = p(); + v((b) => { + r.title = "FurryPlace - Terms of Service"; + }); + var s = l(e), + o = l(s); + d(o, { class: "mb-4", hasText: !0 }), a(s), c(2), a(e), i(t, e); +} +export { u as component }; diff --git a/frontend-backup/_app/immutable/nodes/3.BjOx-5ND.js b/frontend-backup/_app/immutable/nodes/3.BjOx-5ND.js deleted file mode 100644 index 58b9c0e..0000000 --- a/frontend-backup/_app/immutable/nodes/3.BjOx-5ND.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{p as E,f as b,b as f,c as I,$ as D,d,s as v,r as s,t as A,g as i,u as L}from"../chunks/BDALf20I.js";import{s as R}from"../chunks/4k6DpCgf.js";import{s as M}from"../chunks/4WsUhDWi.js";import{k as S,t as h}from"../chunks/BCONGQnO.js";import{e as W,i as $}from"../chunks/CZW2bcQi.js";import{h as j}from"../chunks/BUhRjcOt.js";import{c as z,s as N,a as P}from"../chunks/BNZUboE0.js";import{p as x}from"../chunks/C-Y7nmnD.js";import{f as y}from"../chunks/DnhglgUZ.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="5182694d-9a71-4d57-8522-89f3ef7ecde6",e._sentryDebugIdIdentifier="sentry-dbid-5182694d-9a71-4d57-8522-89f3ef7ecde6")})()}catch{}var Y=b(' '),q=b("
                "),B=b('');function X(e,o){E(o,!0);const c=L(()=>x.url.pathname),g=[{label:"Leaderboard (Tickets)",href:"/admin/mods/leaderboard",key:"leaderboard"},{label:"Leaderboard (Reports)",href:"/admin/mods/leaderboard-reports",key:"leaderboard-reports"}];function _(t){return i(c)===t||i(c).startsWith(t+"/")}var n=B();j(t=>{D.title="Wplace - Admin - Mods"});var l=d(n),m=v(d(l),2),p=d(m);W(p,21,()=>g,$,(t,a)=>{var r=Y(),k=d(r,!0);s(r),A(T=>{N(r,"href",i(a).href),P(r,1,T),R(k,i(a).label)},[()=>z({tab:!0,"font-semibold":!0,"tab-active":_(i(a).href)})]),f(t,r)}),s(p),s(m),s(l);var u=v(l,2),w=d(u);S(w,()=>x.url.pathname,t=>{var a=q(),r=d(a);M(r,()=>o.children),s(a),h(1,a,()=>y,()=>({duration:120})),h(2,a,()=>y,()=>({duration:80})),f(t,a)}),s(u),s(n),f(e,n),I()}export{X as component}; diff --git a/frontend-backup/_app/immutable/nodes/3.DOMAwJeg.js b/frontend-backup/_app/immutable/nodes/3.DOMAwJeg.js new file mode 100644 index 0000000..b457a78 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/3.DOMAwJeg.js @@ -0,0 +1,142 @@ +import "../chunks/Ch2Ub8FX.js"; +import { + p as E, + f as b, + b as f, + c as I, + $ as D, + d as o, + s as v, + r as s, + t as A, + g as i, + u as L, +} from "../chunks/CMvZtFtm.js"; +import { s as R } from "../chunks/DVA6u9-7.js"; +import { s as M } from "../chunks/DoL3ojdE.js"; +import { k as S, t as h } from "../chunks/BBgyHb-Z.js"; +import { e as W, i as $ } from "../chunks/CXkjfmFU.js"; +import { h as j } from "../chunks/P77cUGnY.js"; +import { c as z, s as N, a as P } from "../chunks/C5yqZvKC.js"; +import { p as x } from "../chunks/B6ZK_HZO.js"; +import { f as y } from "../chunks/wZ7b5CwQ.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "5182694d-9a71-4d57-8522-89f3ef7ecde6"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-5182694d-9a71-4d57-8522-89f3ef7ecde6")); + })(); +} catch {} +var Y = b(' '), + q = b("
                "), + B = b( + '' + ); +function X(e, d) { + E(d, !0); + const c = L(() => x.url.pathname), + g = [ + { + label: "Leaderboard (Tickets)", + href: "/admin/mods/leaderboard", + key: "leaderboard", + }, + { + label: "Leaderboard (Reports)", + href: "/admin/mods/leaderboard-reports", + key: "leaderboard-reports", + }, + ]; + function _(t) { + return i(c) === t || i(c).startsWith(t + "/"); + } + var n = B(); + j((t) => { + D.title = "FurryPlace - Admin - Mods"; + }); + var l = o(n), + m = v(o(l), 2), + p = o(m); + W( + p, + 21, + () => g, + $, + (t, a) => { + var r = Y(), + k = o(r, !0); + s(r), + A( + (T) => { + N(r, "href", i(a).href), P(r, 1, T), R(k, i(a).label); + }, + [ + () => + z({ tab: !0, "font-semibold": !0, "tab-active": _(i(a).href) }), + ] + ), + f(t, r); + } + ), + s(p), + s(m), + s(l); + var u = v(l, 2), + w = o(u); + S( + w, + () => x.url.pathname, + (t) => { + var a = q(), + r = o(a); + M(r, () => d.children), + s(a), + h( + 1, + a, + () => y, + () => ({ duration: 120 }) + ), + h( + 2, + a, + () => y, + () => ({ duration: 80 }) + ), + f(t, a); + } + ), + s(u), + s(n), + f(e, n), + I(); +} +export { X as component }; diff --git a/frontend-backup/_app/immutable/nodes/4.CrDfIbdR.js b/frontend-backup/_app/immutable/nodes/4.CrDfIbdR.js new file mode 100644 index 0000000..bd52856 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/4.CrDfIbdR.js @@ -0,0 +1,71782 @@ +var $1 = Object.defineProperty; +var $g = (m) => { + throw TypeError(m); +}; +var G1 = (m, a, p) => + a in m + ? $1(m, a, { enumerable: !0, configurable: !0, writable: !0, value: p }) + : (m[a] = p); +var xr = (m, a, p) => G1(m, typeof a != "symbol" ? a + "" : a, p), + zf = (m, a, p) => a.has(m) || $g("Cannot " + p); +var ot = (m, a, p) => ( + zf(m, a, "read from private field"), p ? p.call(m) : a.get(m) + ), + Ar = (m, a, p) => + a.has(m) + ? $g("Cannot add the same private member more than once") + : a instanceof WeakSet + ? a.add(m) + : a.set(m, p), + na = (m, a, p, y) => ( + zf(m, a, "write to private field"), y ? y.call(m, p) : a.set(m, p), p + ), + jr = (m, a, p) => (zf(m, a, "access private method"), p); +import "../chunks/Ch2Ub8FX.js"; +import { o as Fn, s as oi } from "../chunks/DoL3ojdE.js"; +import { + a1 as H1, + b8 as W1, + bp as X1, + ba as Y1, + bq as K1, + b3 as J1, + br as Q1, + au as st, + g as x, + aw as se, + av as bi, + at as $n, + p as Lr, + f as Te, + d as A, + r as k, + s as j, + u as ft, + n as yn, + t as We, + ax as di, + b as $, + c as Dr, + y as Wr, + v as Pr, + bn as Nu, + x as Mm, + z as ul, + ay as er, + a as Ct, + b4 as wi, + aI as ex, + aH as Gg, + aJ as tx, + aL as Iv, + bs as uo, + az as pa, + bt as Mv, + $ as rx, +} from "../chunks/CMvZtFtm.js"; +import { s as de } from "../chunks/DVA6u9-7.js"; +import { + p as zt, + i as Oe, + r as nr, + s as Is, + u as kv, +} from "../chunks/BF50aS-j.js"; +import { h as nx } from "../chunks/P77cUGnY.js"; +import { + r as Ka, + f as Ni, + a as zr, + g as Av, + b as ar, + s as Tr, + e as kc, + h as Ou, + c as Yo, +} from "../chunks/C5yqZvKC.js"; +import { a as ll, k as ju, t as Ai } from "../chunks/BBgyHb-Z.js"; +import { g as km, b as ix } from "../chunks/CyB--sFG.js"; +import { p as yi } from "../chunks/B6ZK_HZO.js"; +import { + S as Wi, + a as Qr, + t as Fr, + u as Mt, + v as So, + g as ai, + w as ax, + x as ox, + y as sx, + P as lx, + z as cx, + A as ux, + j as hx, + B as dx, + C as Hg, + D as Lf, + E as px, + F as fx, + d as mx, + G as _x, +} from "../chunks/BRM3t761.js"; +import { + c as Ev, + A as aa, + a as Hf, + g as Df, + p as gx, + b as vx, +} from "../chunks/C0GlPMrk.js"; +import { h as Am } from "../chunks/DueIxFLX.js"; +import { b as Ko } from "../chunks/0wx1llIh.js"; +import { L as yx } from "../chunks/CgCA7Awo.js"; +import { g as Ne, l as xx } from "../chunks/CV9xcpLq.js"; +import { c as Ah } from "../chunks/CHGjpGz-.js"; +import { d as bx, L as Em, p as zm } from "../chunks/BKioTOWR.js"; +import { + c as Wf, + D as zv, + p as wx, + r as Tx, + t as Cx, + b as Sx, + R as Px, +} from "../chunks/Cqwd83E5.js"; +import { e as hi, i as hp } from "../chunks/CXkjfmFU.js"; +import { c as Lm, b as dp, a as Ix } from "../chunks/Dpga8uG-.js"; +import { P as co, t as Lv } from "../chunks/D3yaN7Zl.js"; +import { + l as Mx, + p as Dm, + m as Dv, + v as kx, + s as Ax, +} from "../chunks/BsOIMr0T.js"; +import { g as Oi, a as pp, c as Ex, b as zx } from "../chunks/lE0oaQc5.js"; +import { f as cl, t as Lx } from "../chunks/DBSOMMI_.js"; +import { A as Dx, c as Ss } from "../chunks/Dt3xBOvm.js"; +import { + A as Rv, + d as Bv, + D as Fv, + a as fp, + r as Rx, + I as Wg, + e as Bx, + c as Fx, + P as Ov, + b as Ox, +} from "../chunks/BA2Qx8r3.js"; +import { f as ia, s as Hd } from "../chunks/wZ7b5CwQ.js"; +import { C as Rm, G as Xg, c as Nx, T as Xf } from "../chunks/DLfdYhzo.js"; +import "../chunks/BOREeBzQ.js"; +import { i as Nv } from "../chunks/Z_72d8Vp.js"; +import { L as jv } from "../chunks/D3yDgRbd.js"; +import { c as xi } from "../chunks/CdTXrPIO.js"; +import { L as jx, T as Vv, a as Vx } from "../chunks/Bn0Xcwmn.js"; +import { _ as qx } from "../chunks/BI7eddl7.js"; +import { c as qv } from "../chunks/C4yB2Gnm.js"; +import { R as Zx } from "../chunks/m3o6lEf1.js"; +import { W as Ux } from "../chunks/DCynssDD.js"; +import { r as $x } from "../chunks/C3E1P42D.js"; +(function () { + try { + var m = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + m.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var m = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + a = new m.Error().stack; + a && + ((m._sentryDebugIds = m._sentryDebugIds || {}), + (m._sentryDebugIds[a] = "adf93bd4-0a14-4f4e-9af7-5f1b369a26cd"), + (m._sentryDebugIdIdentifier = + "sentry-dbid-adf93bd4-0a14-4f4e-9af7-5f1b369a26cd")); + })(); +} catch {} +const Gx = []; +function Hx(m, a = !1, p = !1) { + return Wd(m, new Map(), "", Gx, null, p); +} +function Wd(m, a, p, y, M = null, z = !1) { + if (typeof m == "object" && m !== null) { + var T = a.get(m); + if (T !== void 0) return T; + if (m instanceof Map) return new Map(m); + if (m instanceof Set) return new Set(m); + if (H1(m)) { + var s = Array(m.length); + a.set(m, s), M !== null && a.set(M, s); + for (var B = 0; B < m.length; B += 1) { + var O = m[B]; + B in m && (s[B] = Wd(O, a, p, y, null, z)); + } + return s; + } + if (W1(m) === X1) { + (s = {}), a.set(m, s), M !== null && a.set(M, s); + for (var X in m) s[X] = Wd(m[X], a, p, y, null, z); + return s; + } + if (m instanceof Date) return structuredClone(m); + if (typeof m.toJSON == "function" && !z) return Wd(m.toJSON(), a, p, y, m); + } + if (m instanceof EventTarget) return m; + try { + return structuredClone(m); + } catch { + return m; + } +} +function Wx() { + return Symbol(Y1); +} +function mp(m, a) { + K1(window, ["resize"], () => J1(() => a(window[m]))); +} +const Xx = Q1, + Yx = () => "Log in", + Kx = () => "Entrar", + Jx = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Yx() : Kx()), + Qx = () => "Store", + eb = () => "Loja", + Zv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Qx() : eb()), + tb = () => "Alliance", + rb = () => "Aliança", + _p = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? tb() : rb()), + nb = () => "Leaderboard", + ib = () => "Ranking", + Bm = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? nb() : ib()), + ab = () => "Unlock", + ob = () => "Destravar", + sb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? ab() : ob()), + lb = () => "Lock", + cb = () => "Travar", + ub = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? lb() : cb()), + hb = () => "Info", + db = () => "Informações", + pb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? hb() : db()), + fb = () => "Zoom in", + mb = () => "Aumentar zoom", + _b = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? fb() : mb()), + gb = () => "Zoom out", + vb = () => "Diminuir zoom", + yb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? gb() : vb()), + xb = () => "Previous location", + bb = () => "Localização anterior", + wb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? xb() : bb()), + Tb = () => "Offline", + Cb = () => "Offline", + Sb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Tb() : Cb()), + Pb = () => "Zoom in to see the pixels", + Ib = () => "Amplie para ver os pixels", + Mb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Pb() : Ib()), + kb = () => "Phone verification required", + Ab = () => "Verificação de telefone necessária", + Yg = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? kb() : Ab()), + Eb = () => "My location", + zb = () => "Minha localização", + Lb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Eb() : zb()), + Db = () => "You don't have charges to paint. Wait to recharge.", + Rb = () => "Você não possui tinta para pintar. Aguarde para carrega-las.", + Bb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Db() : Rb()), + Fb = () => "Map powered by:", + Ob = () => "Mapa fornecido por:", + Nb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Fb() : Ob()), + jb = () => "OpenMapTiles Data from", + Vb = () => "OpenMapTiles com dados do", + qb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? jb() : Vb()), + Zb = () => "Overview", + Ub = () => "Visão Geral", + $b = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Zb() : Ub()), + Gb = () => "How to paint faster", + Hb = () => "Como pintar mais rápido", + Wb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Gb() : Hb()), + Xb = () => "When painting, click on the button", + Yb = () => "Quando pintar clique no botão", + Kb = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Xb() : Yb()), + Jb = () => + "on the top right corner of the screen. This will lock the screen but it'll also enable painting by moving your finger over the map.", + Qb = () => + "no canto superior direito da tela. Isso bloqueará a tela, mas também permitirá pintar movendo o dedo sobre o mapa.", + e2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Jb() : Qb()), + t2 = () => "Hold", + r2 = () => "Segure", + n2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? t2() : r2()), + i2 = () => "SPACE", + a2 = () => "Espaço", + o2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? i2() : a2()), + s2 = () => "and move your cursor over the map.", + l2 = () => "e mova seu cursor sobre o mapa.", + c2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? s2() : l2()), + u2 = () => "Explore", + h2 = () => "Explorar", + d2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? u2() : h2()), + p2 = () => "Recharge paint charges", + f2 = () => "Recarga de tinta", + m2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? p2() : f2()), + _2 = () => "Items", + g2 = () => "Itens", + v2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? _2() : g2()), + y2 = () => "Get more charges", + x2 = () => "Recarregue tinta para pintar", + b2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? y2() : x2()), + w2 = (m) => `+${m.amount} Max. Charges`, + T2 = (m) => `+${m.amount} Tinta máxima`, + C2 = (m, a = {}) => ((a.locale ?? Ne()) === "en" ? w2(m) : T2(m)), + S2 = () => "Increase your maximum paint charges capacity", + P2 = () => "Aumente sua capacidade máxima de tinta", + I2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? S2() : P2()), + M2 = () => "Profile picture", + k2 = () => "Imagem de perfil", + A2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? M2() : k2()), + E2 = () => "Add a new 16x16 profile picture", + z2 = () => "Adicionar uma nova imagem de perfil 16x16", + L2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? E2() : z2()), + D2 = () => "Not enough droplets", + R2 = () => "Droplets insuficientes", + gp = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? D2() : R2()), + B2 = () => "Show profile", + F2 = () => "Exibir perfil", + O2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? B2() : F2()), + N2 = () => "Menu", + j2 = () => "Menu", + V2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? N2() : j2()), + q2 = (m) => `Could not install the app: ${m.error}`, + Z2 = (m) => `Não pode instalar o app: ${m.error}`, + U2 = (m, a = {}) => ((a.locale ?? Ne()) === "en" ? q2(m) : Z2(m)), + $2 = () => "Install App", + G2 = () => "Instalar App", + H2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? $2() : G2()), + W2 = () => "Livestreams", + X2 = () => "Livestreams", + Y2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? W2() : X2()), + K2 = () => "Log Out", + J2 = () => "Log Out", + Q2 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? K2() : J2()), + ew = () => "Hide UI", + tw = () => "Esconder UI", + rw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? ew() : tw()), + nw = () => "Change picture:", + iw = () => "Change picture:", + aw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? nw() : iw()), + ow = () => "Show last painted pixel on alliance", + sw = () => "Mostrar último pixel pintado na aliança", + lw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? ow() : sw()), + cw = () => "Delete Account", + uw = () => "Deletar Conta", + Yf = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? cw() : uw()), + hw = () => "Are you absolutely sure?", + dw = () => "Você tem certeza absoluta?", + pw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? hw() : dw()), + fw = () => + "This will permanently delete your account and all associated data. This action cannot be undone.", + mw = () => + "Isso excluirá permanentemente sua conta e todos os dados associados. Esta ação não pode ser desfeita.", + _w = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? fw() : mw()), + gw = () => "Profile", + vw = () => "Perfil", + yw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? gw() : vw()), + xw = () => + "Display your country’s flag next to your username. Plus, when painting in regions where you own the corresponding flag, you recover 10% of the charges spent.", + bw = () => + "Exiba a bandeira do seu país ao lado do seu nome de usuário. Além disso, ao pintar em regiões onde você possui a bandeira correspondente, você recupera 10% das tintas gastas.", + ww = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? xw() : bw()), + Tw = () => "Does not need to be equipped to provide the bonus", + Cw = () => "Não precisa estar equipada para obter o bônus", + Sw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Tw() : Cw()), + Pw = () => "Equipped", + Iw = () => "Equipado", + Mw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Pw() : Iw()), + kw = () => "Equip", + Aw = () => "Equipar", + Ew = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? kw() : Aw()), + zw = () => "Country", + Lw = () => "País", + Uv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? zw() : Lw()), + Dw = () => "No country found.", + Rw = () => "País não encontrado.", + Bw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Dw() : Rw()), + Fw = () => "Welcome to", + Ow = () => "Bem vindo ao", + Nw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Fw() : Ow()), + jw = () => "Rules", + Vw = () => "Regras", + qw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? jw() : Vw()), + Zw = () => "Important", + Uw = () => "Importante", + $w = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Zw() : Uw()), + Gw = () => + "🚫 No inappropriate content (+18, hate speech, inappropriate links, highly suggestive material, ...)", + Hw = () => + "🚫 Conteúdo inapropriado não permitido (+18, discurso de ódio, links inapropriados, conteúdo altamente sugestivo, ...)", + Ww = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Gw() : Hw()), + Xw = () => + "😈 Do not paint over other artworks using random colors or patterns just to mess things up", + Yw = () => + "😈 Não desenhe por cima de outras artes usando cores ou padrões aleatórios só para bagunçar", + Kw = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Xw() : Yw()), + Jw = () => "🧑‍🤝‍🧑 Do not paint with more than one account", + Qw = () => "🧑‍🤝‍🧑 Não desenhe com mais de uma conta", + e5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Jw() : Qw()), + t5 = () => "🤖 Use of bots is not allowed", + r5 = () => "🤖 Usar bots não é permitido", + n5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? t5() : r5()), + i5 = () => "🙅 Disclosing other's personal information is not allowed", + a5 = () => "🙅 Divulgar informações pessoais dos outros não é permitido", + o5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? i5() : a5()), + s5 = () => + "✅ Painting over other artworks to complement them or create a new drawing is allowed", + l5 = () => + "✅ Desenhar sobre outras artes para complementar ou criar novas artes é permitido", + c5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? s5() : l5()), + u5 = () => + "✅ Griefing political party flags or portraits of politicians is allowed", + h5 = () => + "✅ Desenhar sobre bandeiras de partidos e retratos de políticos é permitido", + d5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? u5() : h5()), + p5 = () => + "Violations of these rules may lead to suspension of your account or removal of drawings.", + f5 = () => + "A violação destas regras pode levar à suspensão da conta ou à remoção de desenhos.", + m5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? p5() : f5()), + _5 = () => "Understood", + g5 = () => "Entendido", + v5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? _5() : g5()), + y5 = () => "Toggle art opacity", + x5 = () => "Alterar opacidade", + $v = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? y5() : x5()), + b5 = () => "Paint", + w5 = () => "Pintar", + Gv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? b5() : w5()), + T5 = () => "Select a color", + C5 = () => "Selecione uma color", + S5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? T5() : C5()), + P5 = () => "Select a pixel to erase", + I5 = () => "Selecione um pixel para apagar", + M5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? P5() : I5()), + k5 = () => "Pick a color from the map", + A5 = () => "Escolha uma cor do mapa", + E5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? k5() : A5()), + z5 = () => "Click", + L5 = () => "Clique", + D5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? z5() : L5()), + R5 = () => "SPACE", + B5 = () => "ESPAÇO", + F5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? R5() : B5()), + O5 = () => "or hold", + N5 = () => "ou segure", + j5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? O5() : N5()), + V5 = () => "to paint,", + q5 = () => "para pintar", + Z5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? V5() : q5()), + U5 = () => "You can paint more than 1 pixel", + $5 = () => "Você pode pintar mais de 1 pixel", + G5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? U5() : $5()), + H5 = () => "Paint pixel", + W5 = () => "Pintar pixel", + X5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? H5() : W5()), + Y5 = () => "Color Picker", + K5 = () => "Conta Gotas", + J5 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Y5() : K5()), + Q5 = () => "+2 max. charge/level", + e3 = () => "+2 tinta máxima/level", + t3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Q5() : e3()), + r3 = () => "Name", + n3 = () => "Nome", + Kf = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? r3() : n3()), + i3 = () => "Discord Username", + a3 = () => "Usuário do Discord", + o3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? i3() : a3()), + s3 = () => "Max. Charges", + l3 = () => "Tinta máxima", + Kg = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? s3() : l3()), + c3 = () => "Paint Charges", + u3 = () => "Tintas", + h3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? c3() : u3()), + d3 = (m) => `+${m.amount} Paint Charges`, + p3 = (m) => `+${m.amount} Tintas`, + f3 = (m, a = {}) => ((a.locale ?? Ne()) === "en" ? d3(m) : p3(m)), + m3 = () => "Leave alliance", + _3 = () => "Sair da aliança", + g3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? m3() : _3()), + v3 = () => "Headquarters", + y3 = () => "Quartel General", + x3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? v3() : y3()), + b3 = () => "Not set", + w3 = () => "Não configurado", + T3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? b3() : w3()), + C3 = () => "You are not in an alliance", + S3 = () => "Você não está em uma aliança", + P3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? C3() : S3()), + I3 = () => "Get invited to an alliance", + M3 = () => "Seja convidado para uma aliança", + k3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? I3() : M3()), + A3 = () => "OR", + E3 = () => "OU", + z3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? A3() : E3()), + L3 = () => "Create an alliance", + D3 = () => "Crie uma aliança", + R3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? L3() : D3()), + B3 = () => "Invite link", + F3 = () => "Link de convite", + O3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? B3() : F3()), + N3 = () => + "Send the link below to everybody you want to invite to the alliance", + j3 = () => + "Envie o link abaixo para quem você deseja convidar para a aliança", + V3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? N3() : j3()), + q3 = () => "Copied", + Z3 = () => "Copiado", + Fm = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? q3() : Z3()), + U3 = () => "No description", + $3 = () => "Sem descrição", + Hv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? U3() : $3()), + G3 = () => "Invite", + H3 = () => "Convite", + W3 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? G3() : H3()), + X3 = () => "No pixels painted", + Y3 = () => "Nenhum pixel pintado", + Om = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? X3() : Y3()), + K3 = () => "Today", + J3 = () => "Hoje", + vp = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? K3() : J3()), + Q3 = () => "Week", + eT = () => "Semana", + tT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? Q3() : eT()), + rT = () => "Month", + nT = () => "Mês", + iT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? rT() : nT()), + aT = () => "All time", + oT = () => "Geral", + sT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? aT() : oT()), + lT = () => "this week", + cT = () => "nesta semana", + Nm = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? lT() : cT()), + uT = () => "this month", + hT = () => "neste mês", + jm = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? uT() : hT()), + dT = () => "Create alliance", + pT = () => "Criar aliança", + fT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? dT() : pT()), + mT = () => "Alliance Name", + _T = () => "Nome da aliança", + gT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? mT() : _T()), + vT = () => "Create", + yT = () => "Criar", + xT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? vT() : yT()), + bT = () => "Give admin", + wT = () => "Tornar admin", + TT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? bT() : wT()), + CT = () => "Ban from alliance", + ST = () => "Banir da aliança", + Wv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? CT() : ST()), + PT = () => "No action", + IT = () => "Sem opção", + MT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? PT() : IT()), + kT = () => "Unban", + AT = () => "Desbanir", + ET = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? kT() : AT()), + zT = () => "No banned users", + LT = () => "Sem usuários banidos", + DT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? zT() : LT()), + RT = () => "Update", + BT = () => "Atualizar", + FT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? RT() : BT()), + OT = () => "Error giving admin to user", + NT = () => "Erro ao tornar usuário admin", + jT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? OT() : NT()), + VT = () => "Users", + qT = () => "Usuários", + ZT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? VT() : qT()), + UT = () => "Banned", + $T = () => "Banido", + Xv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? UT() : $T()), + GT = () => "Regions", + HT = () => "Regiões", + WT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? GT() : HT()), + XT = () => "Countries", + YT = () => "Países", + KT = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? XT() : YT()), + JT = () => "Players", + QT = () => "Jogadores", + Yv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? JT() : QT()), + eC = () => "Alliances", + tC = () => "Alianças", + Kv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? eC() : tC()), + rC = () => "Region", + nC = () => "Região", + iC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? rC() : nC()), + aC = () => "Pixels", + oC = () => "Pixels", + vc = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? aC() : oC()), + sC = () => "Painted", + lC = () => "Pintados", + yc = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? sC() : lC()), + cC = () => "Pixels painted inside the region", + uC = () => "Pixels pintados dentro da região", + hC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? cC() : uC()), + dC = () => "Not painted", + pC = () => "Não pintado", + fC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? dC() : pC()), + mC = () => "Painted by", + _C = () => "Pintado por", + gC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? mC() : _C()), + vC = () => "Limit reached", + yC = () => "Limite atingido", + xC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? vC() : yC()), + bC = () => "Favorite", + wC = () => "Favoritar", + TC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? bC() : wC()), + CC = () => "Share", + SC = () => "Compartilhar", + PC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? CC() : SC()), + IC = () => "Share place", + MC = () => "Compartilhar local", + kC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? IC() : MC()), + AC = () => "Mute", + EC = () => "Mutar", + zC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? AC() : EC()), + LC = () => "Unmute", + DC = () => "Desmutar", + RC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? LC() : DC()), + BC = () => "Select the headquarters location", + FC = () => "Selecione a localização do quartel general", + OC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? BC() : FC()), + NC = () => "Pixels painted inside the country", + jC = () => "Pixels pintados dentro do país", + VC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? NC() : jC()), + qC = () => "Username copied to clipboard", + ZC = () => "Usuário copiado", + UC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? qC() : ZC()), + $C = () => "No more charges", + GC = () => "Acabou a tinta", + HC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? $C() : GC()), + WC = () => + "You are not allowed to use multiple accounts. Use your main account to paint.", + XC = () => + "Não é permitido usar várias contas. Use sua conta principal para pintar.", + YC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? WC() : XC()), + KC = () => "SMS sent to", + JC = () => "SMS enviado para", + QC = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? KC() : JC()), + eS = () => "Phone successfully verified", + tS = () => "Telefone verificado com sucesso", + rS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? eS() : tS()), + nS = () => "Not a valid phone number", + iS = () => "Não é um número válido", + aS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? nS() : iS()), + oS = () => "Location unfavorited", + sS = () => "Localização desfavoritada", + lS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? oS() : sS()), + cS = () => "Location favorited", + uS = () => "Localização favoritada", + hS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? cS() : uS()), + dS = () => "Giving admin to user", + pS = () => "Tornar usuário um admin", + fS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? dS() : pS()), + mS = () => "Profile updated", + _S = () => "Perfil atualizado", + gS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? mS() : _S()), + vS = () => "Successfully linked your Discord account.", + yS = () => "A sua conta Discord foi conectada com sucesso.", + xS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? vS() : yS()), + bS = () => "Discord unlinked", + wS = () => "Discord desconectado", + TS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? bS() : wS()), + CS = () => "Link your Discord", + SS = () => "Conectar Discord", + PS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? CS() : SS()), + IS = (m) => `Unlink Discord (${m.username})`, + MS = (m) => `Desconectar Discord (${m.username})`, + kS = (m, a = {}) => ((a.locale ?? Ne()) === "en" ? IS(m) : MS(m)), + AS = () => "Account successfully deleted", + ES = () => "Conta deletada com sucesso", + zS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? AS() : ES()), + LS = () => "Logged out", + DS = () => "Logout feito", + RS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? LS() : DS()), + BS = () => "Could not logout. Try refreshing the page.", + FS = () => "Não foi possível sair da conta. Tente recarregar a página.", + OS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? BS() : FS()), + NS = () => "You need to zoom in to select a pixel", + jS = () => "Dê zoom para selecionar um pixel", + VS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? NS() : jS()), + qS = () => "Phone verification", + ZS = () => "Verificação de telefone", + US = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? qS() : ZS()), + $S = () => + "Please verify your phone number to continue playing. This helps us keep bots out and ensure a safe, creative experience for everyone.", + GS = () => + "Por favor, verifique com seu telefone para continuar jogando. Isso nos ajuda a filtrar bots e manter um experiência segura e criativa para todos.", + HS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? $S() : GS()), + WS = () => "Send Code", + XS = () => "Enviar o código", + YS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? WS() : XS()), + KS = () => "Input the code", + JS = () => "Insira o código", + QS = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? KS() : JS()), + eP = () => "Sent to", + tP = () => "Enviar para", + rP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? eP() : tP()), + nP = () => "Resend Code", + iP = () => "Reenviar Código", + aP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? nP() : iP()), + oP = () => "Try another number", + sP = () => "Tentar outro número", + lP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? oP() : sP()), + cP = () => "Edit profile", + uP = () => "Editar perfil", + hP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? cP() : uP()), + dP = () => "Image", + pP = () => "Imagem", + fP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? dP() : pP()), + mP = () => "Download", + _P = () => "Download", + gP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? mP() : _P()), + vP = () => "Image copied to clipboard", + yP = () => "Imagem copiada para a área de transferência", + xP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? vP() : yP()), + bP = () => "My map is lagging", + wP = () => "Meu mapa está travando", + TP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? bP() : wP()), + CP = () => "Verify if", + SP = () => "Verifique se", + PP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? CP() : SP()), + IP = () => "Use hardware acceleration when available", + MP = () => "Usar aceleração gráfica quando disponível", + kP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? IP() : MP()), + AP = () => "is enabled on", + EP = () => "está habilitado em", + zP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? AP() : EP()), + LP = () => "Follow the instructions to enable hardware acceleration", + DP = () => "Siga a instrução para habilitar a aceleração de hardware", + RP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? LP() : DP()), + BP = () => "Moderation", + FP = () => "Moderação", + OP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? BP() : FP()), + NP = () => "Terms", + jP = () => "Termos", + VP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? NP() : jP()), + qP = () => "Privacy", + ZP = () => "Privacidade", + UP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? qP() : ZP()), + $P = () => "Refund", + GP = () => "Reembolso", + Jv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? $P() : GP()), + HP = () => "Clear area", + WP = () => "Limpar área", + XP = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? HP() : WP()), + YP = () => "Select the area's first corner", + KP = () => "Selecione o primeiro canto da área", + Qv = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? YP() : KP()), + JP = () => "Select the area's opposite corner", + QP = () => "Selecione o canto oposto da área", + e0 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? JP() : QP()), + eI = () => "Admin", + tI = () => "Administração", + rI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? eI() : tI()), + nI = (m) => `Reason: ${m.reason}`, + iI = (m) => `Motivo: ${m.reason}`, + aI = (m, a = {}) => ((a.locale ?? Ne()) === "en" ? nI(m) : iI(m)), + oI = () => "No corresponding region on the map (cosmetic effect only)", + sI = () => "Não possui região no mapa (apenas efeito cosmético)", + lI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? oI() : sI()), + cI = () => "Flag without region on the map", + uI = () => "Bandeira sem região no mapa", + hI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? cI() : uI()), + dI = (m) => + `The flag of ${m.country} does not have corresponding areas on the map and will only have cosmetic effects.`, + pI = (m) => + `A bandeira ${m.country} não possui regiões correspondente no mapa e só terá efeito cosmético.`, + fI = (m, a = {}) => ((a.locale ?? Ne()) === "en" ? dI(m) : pI(m)), + mI = () => "Dark mode", + _I = () => "Modo escuro", + gI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? mI() : _I()), + vI = () => "Light mode", + yI = () => "Modo claro", + xI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? vI() : yI()), + bI = () => "Log out from all devices", + wI = () => "Sair de todos os dispositivos", + TI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? bI() : wI()), + CI = () => "Log out from all devices", + SI = () => "Sair de todos os dispositivos", + PI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? CI() : SI()), + II = () => "This action will log your account out from all devices.", + MI = () => "Essa ação ira desconectar sua conta de todos os dispositivos.", + kI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? II() : MI()), + AI = () => "Sessions successfully revoked", + EI = () => "Sessões encerradas com sucesso", + zI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? AI() : EI()), + LI = () => "Error revoking sessions. Try again later.", + DI = () => "Erro ao encerrar sessões. Tente novamente mais tarde.", + RI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? LI() : DI()), + BI = () => "More", + FI = () => "Mais", + OI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? BI() : FI()), + NI = () => "This action is irreversible, do you want to proceed?", + jI = () => "Esta ação é irreversível,você quer prosseguir?", + VI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? NI() : jI()), + qI = () => "Please confirm by entering your username:", + ZI = () => "Por favor, confirme digitando seu nome de usuário:", + UI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? qI() : ZI()), + $I = () => "Type your username", + GI = () => "Digite seu nome de usuário", + HI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? $I() : GI()), + WI = () => "This action may take some time to be completed.", + XI = () => "Essa ação pode levar algum tempo para ser realizada.", + YI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? WI() : XI()), + KI = () => "Ban appeal", + JI = () => "Revisão de banimento", + QI = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? KI() : JI()), + e4 = () => "Suggestions", + t4 = () => "Sugestões", + r4 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? e4() : t4()), + n4 = () => "Bug report", + i4 = () => "Reportar bug", + a4 = (m = {}, a = {}) => ((a.locale ?? Ne()) === "en" ? n4() : i4()), + $o = (2 * Math.PI * 6378137) / 2; +class fl { + constructor(a = 256) { + xr(this, "initialResolution"); + (this.tileSize = a), (this.initialResolution = (2 * $o) / this.tileSize); + } + latLonToMeters(a, p) { + const y = (p / 180) * $o, + M = + ((Math.log(Math.tan(((90 + a) * Math.PI) / 360)) / (Math.PI / 180)) * + $o) / + 180; + return [y, M]; + } + metersToLatLon(a, p) { + const y = (a / $o) * 180; + let M = (p / $o) * 180; + return ( + (M = + (180 / Math.PI) * + (2 * Math.atan(Math.exp((M * Math.PI) / 180)) - Math.PI / 2)), + [M, y] + ); + } + pixelsToMeters(a, p, y) { + const M = this.resolution(y), + z = a * M - $o, + T = $o - p * M; + return [z, T]; + } + pixelsToLatLon(a, p, y) { + const [M, z] = this.pixelsToMeters(a, p, y); + return this.metersToLatLon(M, z); + } + latLonToPixels(a, p, y) { + const [M, z] = this.latLonToMeters(a, p); + return this.metersToPixels(M, z, y); + } + latLonToPixelsFloor(a, p, y) { + const [M, z] = this.latLonToPixels(a, p, y); + return [Math.floor(M), Math.floor(z)]; + } + metersToPixels(a, p, y) { + const M = this.resolution(y), + z = (a + $o) / M, + T = ($o - p) / M; + return [z, T]; + } + latLonToTile(a, p, y) { + const [M, z] = this.latLonToMeters(a, p); + return this.metersToTile(M, z, y); + } + metersToTile(a, p, y) { + const [M, z] = this.metersToPixels(a, p, y); + return this.pixelsToTile(M, z); + } + pixelsToTile(a, p) { + const y = Math.ceil(a / this.tileSize) - 1, + M = Math.ceil(p / this.tileSize) - 1; + return [y, M]; + } + pixelsToTileLocal(a, p) { + return { + tile: this.pixelsToTile(a, p), + pixel: [Math.floor(a) % this.tileSize, Math.floor(p) % this.tileSize], + }; + } + tileBounds(a, p, y) { + const [M, z] = this.pixelsToMeters(a * this.tileSize, p * this.tileSize, y), + [T, s] = this.pixelsToMeters( + (a + 1) * this.tileSize, + (p + 1) * this.tileSize, + y + ); + return { min: [M, z], max: [T, s] }; + } + tileBoundsLatLon(a, p, y) { + const M = this.tileBounds(a, p, y); + return { + min: this.metersToLatLon(M.min[0], M.min[1]), + max: this.metersToLatLon(M.max[0], M.max[1]), + }; + } + resolution(a) { + return this.initialResolution / 2 ** a; + } + latLonToTileAndPixel(a, p, y) { + const [M, z] = this.latLonToMeters(a, p), + [T, s] = this.metersToTile(M, z, y), + [B, O] = this.metersToPixels(M, z, y); + return { + tile: [T, s], + pixel: [Math.floor(B) % this.tileSize, Math.floor(O) % this.tileSize], + }; + } + pixelBounds(a, p, y) { + return { + min: this.pixelsToMeters(a, p, y), + max: this.pixelsToMeters(a + 1, p + 1, y), + }; + } + pixelToBoundsLatLon(a, p, y) { + const M = this.pixelBounds(a, p, y), + z = 0.001885, + T = (M.max[0] - M.min[0]) * z, + s = (M.max[1] - M.min[1]) * z; + return ( + (M.min[0] -= T), + (M.max[0] -= T), + (M.min[1] -= s), + (M.max[1] -= s), + { + min: this.metersToLatLon(M.min[0], M.min[1]), + max: this.metersToLatLon(M.max[0], M.max[1]), + } + ); + } + latLonToTileBoundsLatLon(a, p, y) { + const [M, z] = this.latLonToMeters(a, p), + [T, s] = this.metersToTile(M, z, y); + return this.tileBoundsLatLon(T, s, y); + } + latLonToPixelBoundsLatLon(a, p, y) { + const [M, z] = this.latLonToMeters(a, p), + [T, s] = this.metersToPixels(M, z, y); + return this.pixelToBoundsLatLon(Math.floor(T), Math.floor(s), y); + } + latLonToRegionAndPixel(a, p, y, M = Wi.regionSize) { + const [z, T] = this.latLonToPixelsFloor(a, p, y), + s = this.tileSize * M; + return { + region: [Math.floor(z / s), Math.floor(T / s)], + pixel: [z % s, T % s], + }; + } +} +function Vm(m, a = !0) { + const { min: p, max: y } = m; + return a + ? [ + [p[1], y[0]], + [y[1], y[0]], + [y[1], p[0]], + [p[1], p[0]], + ] + : [ + [p[0], y[1]], + [y[0], y[1]], + [y[0], p[1]], + [p[0], p[1]], + ]; +} +function qm(m) { + return [(m.min[0] + m.max[0]) / 2, (m.min[1] + m.max[1]) / 2]; +} +const o4 = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAAXNSR0IArs4c6QAAACpJREFUeNpj+AsEZ86ASIa/DAwMZ84ACRDzDBigMs/AARITq1oUwxBWAADaREUdDMswKwAAAABJRU5ErkJggg==", + Jg = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAACVJREFUeNpj+A8FDEAAZwMRBAIBmIYLIgHcgkQDIs3E6SRsjgcABYFLtfTgakEAAAAASUVORK5CYII="; +function s4(m) { + return Math.floor(Math.random() * m); +} +const Jf = 14.5; +async function l4() { + const m = h4(); + if (m) return m; + try { + if ( + (await navigator.permissions.query({ name: "geolocation" })).state === + "granted" + ) { + const p = await new Promise((y, M) => + navigator.geolocation.getCurrentPosition( + (z) => y(z), + (z) => M(z) + ) + ); + return { lat: p.coords.latitude, lng: p.coords.longitude, zoom: Jf }; + } + } catch (a) { + console.error(a); + } + return { ...c4().pos, zoom: Jf }; +} +function c4() { + const m = Object.entries(u4), + a = s4(m.length), + [p, y] = m[a]; + return { city: p, pos: y }; +} +const u4 = { + tokyo: { lat: 35.677545560719665, lng: 139.76394445809638 }, + paris: { lat: 48.8537151734952, lng: 2.3484026030630787 }, + newYork: { lat: 40.71283173786517, lng: -74.00599771376795 }, + saoPaulo: { lat: -23.550584064565356, lng: -46.63339720713918 }, + sydney: { lat: -33.86943325619071, lng: 151.2083447239608 }, + }, + t0 = "location"; +function Co(m, a) { + localStorage.setItem(t0, JSON.stringify({ ...m, zoom: a })); +} +function h4() { + const m = localStorage.getItem(t0); + if (!m) return; + const a = JSON.parse(m); + return a.zoom ?? (a.zoom = Jf), a; +} +var Hu, Wu; +class d4 { + constructor() { + Ar(this, Hu, st(-1)); + Ar(this, Wu, st([])); + } + get idx() { + return x(ot(this, Hu)); + } + set idx(a) { + se(ot(this, Hu), a, !0); + } + get entries() { + return x(ot(this, Wu)); + } + set entries(a) { + se(ot(this, Wu), a); + } + hasNext() { + return this.idx < this.entries.length - 1; + } + goToNext(a) { + const p = this.idx + 1, + y = this.entries[p]; + y && ((this.idx = p), a.flyTo({ center: y.pos, zoom: y.zoom })); + } + hasPrev() { + return this.idx > 0; + } + goToPrev(a) { + const p = this.idx - 1, + y = this.entries[p]; + y && ((this.idx = p), a.flyTo({ center: y.pos, zoom: y.zoom })); + } + isEmpty() { + return this.entries.length === 0; + } + push(a) { + (this.idx = this.idx + 1), + (this.entries = [...this.entries.slice(0, this.idx), a]); + } +} +(Hu = new WeakMap()), (Wu = new WeakMap()); +const hl = new d4(); +function Zm(m) { + return m && m.__esModule && Object.prototype.hasOwnProperty.call(m, "default") + ? m.default + : m; +} +var Xd = { exports: {} }; +/** + * MapLibre GL JS + * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.6.2/LICENSE.txt + */ var p4 = Xd.exports, + Qg; +function f4() { + return ( + Qg || + ((Qg = 1), + (function (m, a) { + (function (p, y) { + m.exports = y(); + })(p4, function () { + var p = {}, + y = {}; + function M(T, s, B) { + if (((y[T] = B), T === "index")) { + var O = + "var sharedModule = {}; (" + + y.shared + + ")(sharedModule); (" + + y.worker + + ")(sharedModule);", + X = {}; + return ( + y.shared(X), + y.index(p, X), + typeof window < "u" && + p.setWorkerUrl( + window.URL.createObjectURL( + new Blob([O], { type: "text/javascript" }) + ) + ), + p + ); + } + } + M("shared", ["exports"], function (T) { + function s(n, t, r, o) { + return new (r || (r = Promise))(function (c, f) { + function _(S) { + try { + b(o.next(S)); + } catch (I) { + f(I); + } + } + function v(S) { + try { + b(o.throw(S)); + } catch (I) { + f(I); + } + } + function b(S) { + var I; + S.done + ? c(S.value) + : ((I = S.value), + I instanceof r + ? I + : new r(function (L) { + L(I); + })).then(_, v); + } + b((o = o.apply(n, t || [])).next()); + }); + } + function B(n, t) { + (this.x = n), (this.y = t); + } + function O(n) { + return n && + n.__esModule && + Object.prototype.hasOwnProperty.call(n, "default") + ? n.default + : n; + } + var X, K; + typeof SuppressedError == "function" && SuppressedError, + (B.prototype = { + clone() { + return new B(this.x, this.y); + }, + add(n) { + return this.clone()._add(n); + }, + sub(n) { + return this.clone()._sub(n); + }, + multByPoint(n) { + return this.clone()._multByPoint(n); + }, + divByPoint(n) { + return this.clone()._divByPoint(n); + }, + mult(n) { + return this.clone()._mult(n); + }, + div(n) { + return this.clone()._div(n); + }, + rotate(n) { + return this.clone()._rotate(n); + }, + rotateAround(n, t) { + return this.clone()._rotateAround(n, t); + }, + matMult(n) { + return this.clone()._matMult(n); + }, + unit() { + return this.clone()._unit(); + }, + perp() { + return this.clone()._perp(); + }, + round() { + return this.clone()._round(); + }, + mag() { + return Math.sqrt(this.x * this.x + this.y * this.y); + }, + equals(n) { + return this.x === n.x && this.y === n.y; + }, + dist(n) { + return Math.sqrt(this.distSqr(n)); + }, + distSqr(n) { + const t = n.x - this.x, + r = n.y - this.y; + return t * t + r * r; + }, + angle() { + return Math.atan2(this.y, this.x); + }, + angleTo(n) { + return Math.atan2(this.y - n.y, this.x - n.x); + }, + angleWith(n) { + return this.angleWithSep(n.x, n.y); + }, + angleWithSep(n, t) { + return Math.atan2( + this.x * t - this.y * n, + this.x * n + this.y * t + ); + }, + _matMult(n) { + const t = n[2] * this.x + n[3] * this.y; + return ( + (this.x = n[0] * this.x + n[1] * this.y), (this.y = t), this + ); + }, + _add(n) { + return (this.x += n.x), (this.y += n.y), this; + }, + _sub(n) { + return (this.x -= n.x), (this.y -= n.y), this; + }, + _mult(n) { + return (this.x *= n), (this.y *= n), this; + }, + _div(n) { + return (this.x /= n), (this.y /= n), this; + }, + _multByPoint(n) { + return (this.x *= n.x), (this.y *= n.y), this; + }, + _divByPoint(n) { + return (this.x /= n.x), (this.y /= n.y), this; + }, + _unit() { + return this._div(this.mag()), this; + }, + _perp() { + const n = this.y; + return (this.y = this.x), (this.x = -n), this; + }, + _rotate(n) { + const t = Math.cos(n), + r = Math.sin(n), + o = r * this.x + t * this.y; + return (this.x = t * this.x - r * this.y), (this.y = o), this; + }, + _rotateAround(n, t) { + const r = Math.cos(n), + o = Math.sin(n), + c = t.y + o * (this.x - t.x) + r * (this.y - t.y); + return ( + (this.x = t.x + r * (this.x - t.x) - o * (this.y - t.y)), + (this.y = c), + this + ); + }, + _round() { + return ( + (this.x = Math.round(this.x)), + (this.y = Math.round(this.y)), + this + ); + }, + constructor: B, + }), + (B.convert = function (n) { + if (n instanceof B) return n; + if (Array.isArray(n)) return new B(+n[0], +n[1]); + if (n.x !== void 0 && n.y !== void 0) return new B(+n.x, +n.y); + throw new Error("Expected [x, y] or {x, y} point format"); + }); + var ne = (function () { + if (K) return X; + function n(t, r, o, c) { + (this.cx = 3 * t), + (this.bx = 3 * (o - t) - this.cx), + (this.ax = 1 - this.cx - this.bx), + (this.cy = 3 * r), + (this.by = 3 * (c - r) - this.cy), + (this.ay = 1 - this.cy - this.by), + (this.p1x = t), + (this.p1y = r), + (this.p2x = o), + (this.p2y = c); + } + return ( + (K = 1), + (X = n), + (n.prototype = { + sampleCurveX: function (t) { + return ((this.ax * t + this.bx) * t + this.cx) * t; + }, + sampleCurveY: function (t) { + return ((this.ay * t + this.by) * t + this.cy) * t; + }, + sampleCurveDerivativeX: function (t) { + return (3 * this.ax * t + 2 * this.bx) * t + this.cx; + }, + solveCurveX: function (t, r) { + if ((r === void 0 && (r = 1e-6), t < 0)) return 0; + if (t > 1) return 1; + for (var o = t, c = 0; c < 8; c++) { + var f = this.sampleCurveX(o) - t; + if (Math.abs(f) < r) return o; + var _ = this.sampleCurveDerivativeX(o); + if (Math.abs(_) < 1e-6) break; + o -= f / _; + } + var v = 0, + b = 1; + for ( + o = t, c = 0; + c < 20 && + ((f = this.sampleCurveX(o)), !(Math.abs(f - t) < r)); + c++ + ) + t > f ? (v = o) : (b = o), (o = 0.5 * (b - v) + v); + return o; + }, + solve: function (t, r) { + return this.sampleCurveY(this.solveCurveX(t, r)); + }, + }), + X + ); + })(), + H = O(ne); + let fe, ge; + function Ie() { + return ( + fe == null && + (fe = + typeof OffscreenCanvas < "u" && + new OffscreenCanvas(1, 1).getContext("2d") && + typeof createImageBitmap == "function"), + fe + ); + } + function Ae() { + if (ge == null && ((ge = !1), Ie())) { + const t = new OffscreenCanvas(5, 5).getContext("2d", { + willReadFrequently: !0, + }); + if (t) { + for (let o = 0; o < 25; o++) { + const c = 4 * o; + (t.fillStyle = `rgb(${c},${c + 1},${c + 2})`), + t.fillRect(o % 5, Math.floor(o / 5), 1, 1); + } + const r = t.getImageData(0, 0, 5, 5).data; + for (let o = 0; o < 100; o++) + if (o % 4 != 3 && r[o] !== o) { + ge = !0; + break; + } + } + } + return ge || !1; + } + var De = 1e-6, + Ee = typeof Float32Array < "u" ? Float32Array : Array; + function Fe() { + var n = new Ee(9); + return ( + Ee != Float32Array && + ((n[1] = 0), + (n[2] = 0), + (n[3] = 0), + (n[5] = 0), + (n[6] = 0), + (n[7] = 0)), + (n[0] = 1), + (n[4] = 1), + (n[8] = 1), + n + ); + } + function $e(n) { + return ( + (n[0] = 1), + (n[1] = 0), + (n[2] = 0), + (n[3] = 0), + (n[4] = 0), + (n[5] = 1), + (n[6] = 0), + (n[7] = 0), + (n[8] = 0), + (n[9] = 0), + (n[10] = 1), + (n[11] = 0), + (n[12] = 0), + (n[13] = 0), + (n[14] = 0), + (n[15] = 1), + n + ); + } + function Je() { + var n = new Ee(3); + return ( + Ee != Float32Array && ((n[0] = 0), (n[1] = 0), (n[2] = 0)), n + ); + } + function qe(n) { + return Math.hypot(n[0], n[1], n[2]); + } + function Ze(n, t, r) { + var o = new Ee(3); + return (o[0] = n), (o[1] = t), (o[2] = r), o; + } + function Qe(n, t, r) { + return ( + (n[0] = t[0] + r[0]), + (n[1] = t[1] + r[1]), + (n[2] = t[2] + r[2]), + n + ); + } + function Le(n, t, r) { + return (n[0] = t[0] * r), (n[1] = t[1] * r), (n[2] = t[2] * r), n; + } + function et(n, t, r) { + var o = t[0], + c = t[1], + f = t[2], + _ = r[0], + v = r[1], + b = r[2]; + return ( + (n[0] = c * b - f * v), + (n[1] = f * _ - o * b), + (n[2] = o * v - c * _), + n + ); + } + Math.hypot || + (Math.hypot = function () { + for (var n = 0, t = arguments.length; t--; ) + n += arguments[t] * arguments[t]; + return Math.sqrt(n); + }); + var nt, + Ue = qe; + function ke(n, t, r) { + var o = t[0], + c = t[1], + f = t[2], + _ = t[3]; + return ( + (n[0] = r[0] * o + r[4] * c + r[8] * f + r[12] * _), + (n[1] = r[1] * o + r[5] * c + r[9] * f + r[13] * _), + (n[2] = r[2] * o + r[6] * c + r[10] * f + r[14] * _), + (n[3] = r[3] * o + r[7] * c + r[11] * f + r[15] * _), + n + ); + } + function vt() { + var n = new Ee(4); + return ( + Ee != Float32Array && ((n[0] = 0), (n[1] = 0), (n[2] = 0)), + (n[3] = 1), + n + ); + } + function ee(n, t, r, o) { + var c = (0.5 * Math.PI) / 180; + (t *= c), (r *= c), (o *= c); + var f = Math.sin(t), + _ = Math.cos(t), + v = Math.sin(r), + b = Math.cos(r), + S = Math.sin(o), + I = Math.cos(o); + return ( + (n[0] = f * b * I - _ * v * S), + (n[1] = _ * v * I + f * b * S), + (n[2] = _ * b * S - f * v * I), + (n[3] = _ * b * I + f * v * S), + n + ); + } + function re() { + var n = new Ee(2); + return Ee != Float32Array && ((n[0] = 0), (n[1] = 0)), n; + } + function he(n, t) { + var r = new Ee(2); + return (r[0] = n), (r[1] = t), r; + } + Je(), + (nt = new Ee(4)), + Ee != Float32Array && + ((nt[0] = 0), (nt[1] = 0), (nt[2] = 0), (nt[3] = 0)), + Je(), + Ze(1, 0, 0), + Ze(0, 1, 0), + vt(), + vt(), + Fe(), + re(); + const oe = 8192; + function ze(n, t, r) { + return ( + t * (oe / (n.tileSize * Math.pow(2, r - n.tileID.overscaledZ))) + ); + } + function je(n, t) { + return ((n % t) + t) % t; + } + function pt(n, t, r) { + return n * (1 - r) + t * r; + } + function it(n) { + if (n <= 0) return 0; + if (n >= 1) return 1; + const t = n * n, + r = t * n; + return 4 * (n < 0.5 ? r : 3 * (n - t) + r - 0.75); + } + function ct(n, t, r, o) { + const c = new H(n, t, r, o); + return (f) => c.solve(f); + } + const It = ct(0.25, 0.1, 0.25, 1); + function Dt(n, t, r) { + return Math.min(r, Math.max(t, n)); + } + function at(n, t, r) { + const o = r - t, + c = ((((n - t) % o) + o) % o) + t; + return c === t ? r : c; + } + function dt(n, ...t) { + for (const r of t) for (const o in r) n[o] = r[o]; + return n; + } + let yt = 1; + function xt(n, t, r) { + const o = {}; + for (const c in n) o[c] = t.call(this, n[c], c, n); + return o; + } + function St(n, t, r) { + const o = {}; + for (const c in n) t.call(this, n[c], c, n) && (o[c] = n[c]); + return o; + } + function wt(n) { + return Array.isArray(n) + ? n.map(wt) + : typeof n == "object" && n + ? xt(n, wt) + : n; + } + const _t = {}; + function Lt(n) { + _t[n] || (typeof console < "u" && console.warn(n), (_t[n] = !0)); + } + function Rt(n, t, r) { + return (r.y - n.y) * (t.x - n.x) > (t.y - n.y) * (r.x - n.x); + } + function $t(n) { + return ( + typeof WorkerGlobalScope < "u" && + n !== void 0 && + n instanceof WorkerGlobalScope + ); + } + let tr = null; + function Qt(n) { + return typeof ImageBitmap < "u" && n instanceof ImageBitmap; + } + const Ot = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="; + function Nt(n, t, r, o, c) { + return s(this, void 0, void 0, function* () { + if (typeof VideoFrame > "u") + throw new Error("VideoFrame not supported"); + const f = new VideoFrame(n, { timestamp: 0 }); + try { + const _ = f == null ? void 0 : f.format; + if (!_ || (!_.startsWith("BGR") && !_.startsWith("RGB"))) + throw new Error(`Unrecognized format ${_}`); + const v = _.startsWith("BGR"), + b = new Uint8ClampedArray(o * c * 4); + if ( + (yield f.copyTo( + b, + (function (S, I, L, F, q) { + const Z = 4 * Math.max(-I, 0), + W = (Math.max(0, L) - L) * F * 4 + Z, + J = 4 * F, + le = Math.max(0, I), + Re = Math.max(0, L); + return { + rect: { + x: le, + y: Re, + width: Math.min(S.width, I + F) - le, + height: Math.min(S.height, L + q) - Re, + }, + layout: [{ offset: W, stride: J }], + }; + })(n, t, r, o, c) + ), + v) + ) + for (let S = 0; S < b.length; S += 4) { + const I = b[S]; + (b[S] = b[S + 2]), (b[S + 2] = I); + } + return b; + } finally { + f.close(); + } + }); + } + let or, cr; + function Vr(n, t, r, o) { + return ( + n.addEventListener(t, r, o), + { + unsubscribe: () => { + n.removeEventListener(t, r, o); + }, + } + ); + } + function mr(n) { + return (n * Math.PI) / 180; + } + function hr(n) { + return (n / Math.PI) * 180; + } + const _r = { + touchstart: !0, + touchmove: !0, + touchmoveWindow: !0, + touchend: !0, + touchcancel: !0, + }, + Ir = { + dblclick: !0, + click: !0, + mouseover: !0, + mouseout: !0, + mousedown: !0, + mousemove: !0, + mousemoveWindow: !0, + mouseup: !0, + mouseupWindow: !0, + contextmenu: !0, + wheel: !0, + }, + qr = "AbortError"; + function ue() { + return new Error(qr); + } + const V = { + MAX_PARALLEL_IMAGE_REQUESTS: 16, + MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8, + MAX_TILE_CACHE_ZOOM_LEVELS: 5, + REGISTERED_PROTOCOLS: {}, + WORKER_URL: "", + }; + function U(n) { + return V.REGISTERED_PROTOCOLS[n.substring(0, n.indexOf("://"))]; + } + const Y = "global-dispatcher"; + class ie extends Error { + constructor(t, r, o, c) { + super(`AJAXError: ${r} (${t}): ${o}`), + (this.status = t), + (this.statusText = r), + (this.url = o), + (this.body = c); + } + } + const pe = () => + $t(self) + ? self.worker && self.worker.referrer + : (window.location.protocol === "blob:" + ? window.parent + : window + ).location.href, + Se = function (n, t) { + if (/:\/\//.test(n.url) && !/^https?:|^file:/.test(n.url)) { + const o = U(n.url); + if (o) return o(n, t); + if ($t(self) && self.worker && self.worker.actor) + return self.worker.actor.sendAsync( + { type: "GR", data: n, targetMapId: Y }, + t + ); + } + if ( + !( + /^file:/.test((r = n.url)) || + (/^file:/.test(pe()) && !/^\w+:/.test(r)) + ) + ) { + if ( + fetch && + Request && + AbortController && + Object.prototype.hasOwnProperty.call( + Request.prototype, + "signal" + ) + ) + return (function (o, c) { + return s(this, void 0, void 0, function* () { + const f = new Request(o.url, { + method: o.method || "GET", + body: o.body, + credentials: o.credentials, + headers: o.headers, + cache: o.cache, + referrer: pe(), + signal: c.signal, + }); + let _, v; + o.type !== "json" || + f.headers.has("Accept") || + f.headers.set("Accept", "application/json"); + try { + _ = yield fetch(f); + } catch (S) { + throw new ie(0, S.message, o.url, new Blob()); + } + if (!_.ok) { + const S = yield _.blob(); + throw new ie(_.status, _.statusText, o.url, S); + } + v = + o.type === "arrayBuffer" || o.type === "image" + ? _.arrayBuffer() + : o.type === "json" + ? _.json() + : _.text(); + const b = yield v; + if (c.signal.aborted) throw ue(); + return { + data: b, + cacheControl: _.headers.get("Cache-Control"), + expires: _.headers.get("Expires"), + }; + }); + })(n, t); + if ($t(self) && self.worker && self.worker.actor) + return self.worker.actor.sendAsync( + { type: "GR", data: n, mustQueue: !0, targetMapId: Y }, + t + ); + } + var r; + return (function (o, c) { + return new Promise((f, _) => { + var v; + const b = new XMLHttpRequest(); + b.open(o.method || "GET", o.url, !0), + (o.type !== "arrayBuffer" && o.type !== "image") || + (b.responseType = "arraybuffer"); + for (const S in o.headers) + b.setRequestHeader(S, o.headers[S]); + o.type === "json" && + ((b.responseType = "text"), + (!((v = o.headers) === null || v === void 0) && + v.Accept) || + b.setRequestHeader("Accept", "application/json")), + (b.withCredentials = o.credentials === "include"), + (b.onerror = () => { + _(new Error(b.statusText)); + }), + (b.onload = () => { + if (!c.signal.aborted) + if ( + ((b.status >= 200 && b.status < 300) || + b.status === 0) && + b.response !== null + ) { + let S = b.response; + if (o.type === "json") + try { + S = JSON.parse(b.response); + } catch (I) { + return void _(I); + } + f({ + data: S, + cacheControl: + b.getResponseHeader("Cache-Control"), + expires: b.getResponseHeader("Expires"), + }); + } else { + const S = new Blob([b.response], { + type: b.getResponseHeader("Content-Type"), + }); + _(new ie(b.status, b.statusText, o.url, S)); + } + }), + c.signal.addEventListener("abort", () => { + b.abort(), _(ue()); + }), + b.send(o.body); + }); + })(n, t); + }; + function Me(n) { + if ( + !n || + n.indexOf("://") <= 0 || + n.indexOf("data:image/") === 0 || + n.indexOf("blob:") === 0 + ) + return !0; + const t = new URL(n), + r = window.location; + return t.protocol === r.protocol && t.host === r.host; + } + function we(n, t, r) { + (r[n] && r[n].indexOf(t) !== -1) || + ((r[n] = r[n] || []), r[n].push(t)); + } + function Ve(n, t, r) { + if (r && r[n]) { + const o = r[n].indexOf(t); + o !== -1 && r[n].splice(o, 1); + } + } + class ut { + constructor(t, r = {}) { + dt(this, r), (this.type = t); + } + } + class Ke extends ut { + constructor(t, r = {}) { + super("error", dt({ error: t }, r)); + } + } + class kt { + on(t, r) { + return ( + (this._listeners = this._listeners || {}), + we(t, r, this._listeners), + { + unsubscribe: () => { + this.off(t, r); + }, + } + ); + } + off(t, r) { + return ( + Ve(t, r, this._listeners), + Ve(t, r, this._oneTimeListeners), + this + ); + } + once(t, r) { + return r + ? ((this._oneTimeListeners = this._oneTimeListeners || {}), + we(t, r, this._oneTimeListeners), + this) + : new Promise((o) => this.once(t, o)); + } + fire(t, r) { + typeof t == "string" && (t = new ut(t, r || {})); + const o = t.type; + if (this.listens(o)) { + t.target = this; + const c = + this._listeners && this._listeners[o] + ? this._listeners[o].slice() + : []; + for (const v of c) v.call(this, t); + const f = + this._oneTimeListeners && this._oneTimeListeners[o] + ? this._oneTimeListeners[o].slice() + : []; + for (const v of f) + Ve(o, v, this._oneTimeListeners), v.call(this, t); + const _ = this._eventedParent; + _ && + (dt( + t, + typeof this._eventedParentData == "function" + ? this._eventedParentData() + : this._eventedParentData + ), + _.fire(t)); + } else t instanceof Ke && console.error(t.error); + return this; + } + listens(t) { + return ( + (this._listeners && + this._listeners[t] && + this._listeners[t].length > 0) || + (this._oneTimeListeners && + this._oneTimeListeners[t] && + this._oneTimeListeners[t].length > 0) || + (this._eventedParent && this._eventedParent.listens(t)) + ); + } + setEventedParent(t, r) { + return ( + (this._eventedParent = t), (this._eventedParentData = r), this + ); + } + } + var ye = { + $version: 8, + $root: { + version: { required: !0, type: "enum", values: [8] }, + name: { type: "string" }, + metadata: { type: "*" }, + center: { type: "array", value: "number" }, + centerAltitude: { type: "number" }, + zoom: { type: "number" }, + bearing: { + type: "number", + default: 0, + period: 360, + units: "degrees", + }, + pitch: { type: "number", default: 0, units: "degrees" }, + roll: { type: "number", default: 0, units: "degrees" }, + state: { type: "state", default: {} }, + light: { type: "light" }, + sky: { type: "sky" }, + projection: { type: "projection" }, + terrain: { type: "terrain" }, + sources: { required: !0, type: "sources" }, + sprite: { type: "sprite" }, + glyphs: { type: "string" }, + 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: 0.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: {}, + "color-relief": {}, + background: {}, + }, + required: !0, + }, + metadata: { type: "*" }, + source: { type: "string" }, + "source-layer": { type: "string" }, + minzoom: { type: "number", minimum: 0, maximum: 24 }, + maxzoom: { type: "number", minimum: 0, maximum: 24 }, + filter: { type: "filter" }, + layout: { type: "layout" }, + paint: { type: "paint" }, + }, + layout: [ + "layout_fill", + "layout_line", + "layout_circle", + "layout_heatmap", + "layout_fill-extrusion", + "layout_symbol", + "layout_raster", + "layout_hillshade", + "layout_color-relief", + "layout_background", + ], + layout_background: { + visibility: { + type: "enum", + values: { visible: {}, none: {} }, + default: "visible", + "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", + }, + }, + "layout_color-relief": { + 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": {}, + }, + }, + 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: 0.5, + minimum: 0, + maximum: 1, + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + }, + sky: { + "sky-color": { + type: "color", + "property-type": "data-constant", + default: "#88C6FC", + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + "horizon-color": { + type: "color", + "property-type": "data-constant", + default: "#ffffff", + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + "fog-color": { + type: "color", + "property-type": "data-constant", + default: "#ffffff", + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + "fog-ground-blend": { + type: "number", + "property-type": "data-constant", + default: 0.5, + minimum: 0, + maximum: 1, + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + "horizon-fog-blend": { + type: "number", + "property-type": "data-constant", + default: 0.8, + minimum: 0, + maximum: 1, + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + "sky-horizon-blend": { + type: "number", + "property-type": "data-constant", + default: 0.8, + minimum: 0, + maximum: 1, + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + "atmosphere-blend": { + type: "number", + "property-type": "data-constant", + default: 0.8, + minimum: 0, + maximum: 1, + expression: { interpolated: !0, parameters: ["zoom"] }, + transition: !0, + }, + }, + terrain: { + source: { type: "string", required: !0 }, + exaggeration: { type: "number", minimum: 0, default: 1 }, + }, + projection: { + type: { + type: "projectionDefinition", + default: "mercator", + "property-type": "data-constant", + transition: !1, + expression: { interpolated: !0, parameters: ["zoom"] }, + }, + }, + paint: [ + "paint_fill", + "paint_line", + "paint_circle", + "paint_heatmap", + "paint_fill-extrusion", + "paint_symbol", + "paint_raster", + "paint_hillshade", + "paint_color-relief", + "paint_background", + ], + paint_fill: { + "fill-antialias": { + type: "boolean", + default: !0, + expression: { interpolated: !1, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "fill-opacity": { + type: "number", + default: 1, + minimum: 0, + maximum: 1, + transition: !0, + expression: { + interpolated: !0, + parameters: ["zoom", "feature", "feature-state"], + }, + "property-type": "data-driven", + }, + "fill-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)", + 0.1, + "royalblue", + 0.3, + "cyan", + 0.5, + "lime", + 0.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: "numberArray", + default: 335, + minimum: 0, + maximum: 359, + transition: !1, + expression: { interpolated: !0, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "hillshade-illumination-altitude": { + type: "numberArray", + default: 45, + minimum: 0, + maximum: 90, + transition: !1, + expression: { interpolated: !0, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "hillshade-illumination-anchor": { + type: "enum", + values: { map: {}, viewport: {} }, + default: "viewport", + expression: { interpolated: !1, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "hillshade-exaggeration": { + type: "number", + default: 0.5, + minimum: 0, + maximum: 1, + transition: !0, + expression: { interpolated: !0, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "hillshade-shadow-color": { + type: "colorArray", + default: "#000000", + transition: !0, + expression: { interpolated: !0, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "hillshade-highlight-color": { + type: "colorArray", + default: "#FFFFFF", + transition: !0, + expression: { interpolated: !0, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "hillshade-accent-color": { + type: "color", + default: "#000000", + transition: !0, + expression: { interpolated: !0, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "hillshade-method": { + type: "enum", + values: { + standard: {}, + basic: {}, + combined: {}, + igor: {}, + multidirectional: {}, + }, + default: "standard", + expression: { interpolated: !1, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + }, + "paint_color-relief": { + "color-relief-opacity": { + type: "number", + default: 1, + minimum: 0, + maximum: 1, + transition: !0, + expression: { interpolated: !0, parameters: ["zoom"] }, + "property-type": "data-constant", + }, + "color-relief-color": { + type: "color", + transition: !1, + expression: { interpolated: !0, parameters: ["elevation"] }, + "property-type": "color-ramp", + }, + }, + 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 Bt = [ + "type", + "source", + "source-layer", + "minzoom", + "maxzoom", + "filter", + "layout", + ]; + function rr(n, t) { + const r = {}; + for (const o in n) o !== "ref" && (r[o] = n[o]); + return ( + Bt.forEach((o) => { + o in t && (r[o] = t[o]); + }), + r + ); + } + function Kt(n, t) { + if (Array.isArray(n)) { + if (!Array.isArray(t) || n.length !== t.length) return !1; + for (let r = 0; r < n.length; r++) + if (!Kt(n[r], t[r])) return !1; + return !0; + } + if (typeof n == "object" && n !== null && t !== null) { + if ( + typeof t != "object" || + Object.keys(n).length !== Object.keys(t).length + ) + return !1; + for (const r in n) if (!Kt(n[r], t[r])) return !1; + return !0; + } + return n === t; + } + function gr(n, t) { + n.push(t); + } + function Ur(n, t, r) { + gr(r, { command: "addSource", args: [n, t[n]] }); + } + function nn(n, t, r) { + gr(t, { command: "removeSource", args: [n] }), (r[n] = !0); + } + function mn(n, t, r, o) { + nn(n, r, o), Ur(n, t, r); + } + function _n(n, t, r) { + let o; + for (o in n[r]) + if ( + Object.prototype.hasOwnProperty.call(n[r], o) && + o !== "data" && + !Kt(n[r][o], t[r][o]) + ) + return !1; + for (o in t[r]) + if ( + Object.prototype.hasOwnProperty.call(t[r], o) && + o !== "data" && + !Kt(n[r][o], t[r][o]) + ) + return !1; + return !0; + } + function Vt(n, t, r, o, c, f) { + (n = n || {}), (t = t || {}); + for (const _ in n) + Object.prototype.hasOwnProperty.call(n, _) && + (Kt(n[_], t[_]) || + r.push({ command: f, args: [o, _, t[_], c] })); + for (const _ in t) + Object.prototype.hasOwnProperty.call(t, _) && + !Object.prototype.hasOwnProperty.call(n, _) && + (Kt(n[_], t[_]) || + r.push({ command: f, args: [o, _, t[_], c] })); + } + function Et(n) { + return n.id; + } + function dr(n, t) { + return (n[t.id] = t), n; + } + class ht { + constructor(t, r, o, c) { + (this.message = (t ? `${t}: ` : "") + o), + c && (this.identifier = c), + r != null && r.__line__ && (this.line = r.__line__); + } + } + function Xr(n, ...t) { + for (const r of t) for (const o in r) n[o] = r[o]; + return n; + } + class Yr extends Error { + constructor(t, r) { + super(r), (this.message = r), (this.key = t); + } + } + class Zr { + constructor(t, r = []) { + (this.parent = t), (this.bindings = {}); + for (const [o, c] of r) this.bindings[o] = c; + } + concat(t) { + return new Zr(this, t); + } + get(t) { + if (this.bindings[t]) return this.bindings[t]; + if (this.parent) return this.parent.get(t); + throw new Error(`${t} not found in scope.`); + } + has(t) { + return ( + !!this.bindings[t] || (!!this.parent && this.parent.has(t)) + ); + } + } + const mt = { kind: "null" }, + He = { kind: "number" }, + At = { kind: "string" }, + Ft = { kind: "boolean" }, + Jt = { kind: "color" }, + Cr = { kind: "projectionDefinition" }, + Er = { kind: "object" }, + ur = { kind: "value" }, + rn = { kind: "collator" }, + pn = { kind: "formatted" }, + gn = { kind: "padding" }, + ln = { kind: "colorArray" }, + En = { kind: "numberArray" }, + pr = { kind: "resolvedImage" }, + In = { kind: "variableAnchorOffsetCollection" }; + function tn(n, t) { + return { kind: "array", itemType: n, N: t }; + } + function en(n) { + if (n.kind === "array") { + const t = en(n.itemType); + return typeof n.N == "number" + ? `array<${t}, ${n.N}>` + : n.itemType.kind === "value" + ? "array" + : `array<${t}>`; + } + return n.kind; + } + const ma = [ + mt, + He, + At, + Ft, + Jt, + Cr, + pn, + Er, + tn(ur), + gn, + En, + ln, + pr, + In, + ]; + function pi(n, t) { + if (t.kind === "error") return null; + if (n.kind === "array") { + if ( + t.kind === "array" && + ((t.N === 0 && t.itemType.kind === "value") || + !pi(n.itemType, t.itemType)) && + (typeof n.N != "number" || n.N === t.N) + ) + return null; + } else { + if (n.kind === t.kind) return null; + if (n.kind === "value") { + for (const r of ma) if (!pi(r, t)) return null; + } + } + return `Expected ${en(n)} but found ${en(t)} instead.`; + } + function Xi(n, t) { + return t.some((r) => r.kind === n.kind); + } + function Zn(n, t) { + return t.some((r) => + r === "null" + ? n === null + : r === "array" + ? Array.isArray(n) + : r === "object" + ? n && !Array.isArray(n) && typeof n == "object" + : r === typeof n + ); + } + function ni(n, t) { + return n.kind === "array" && t.kind === "array" + ? n.itemType.kind === t.itemType.kind && typeof n.N == "number" + : n.kind === t.kind; + } + const Zi = 0.96422, + Yi = 0.82521, + Ei = 4 / 29, + zi = 6 / 29, + Ki = 3 * zi * zi, + oa = zi * zi * zi, + Ta = Math.PI / 180, + bt = 180 / Math.PI; + function Xt(n) { + return (n %= 360) < 0 && (n += 360), n; + } + function Br([n, t, r, o]) { + let c, f; + const _ = On( + (0.2225045 * (n = xn(n)) + + 0.7168786 * (t = xn(t)) + + 0.0606169 * (r = xn(r))) / + 1 + ); + n === t && t === r + ? (c = f = _) + : ((c = On( + (0.4360747 * n + 0.3850649 * t + 0.1430804 * r) / Zi + )), + (f = On( + (0.0139322 * n + 0.0971045 * t + 0.7141733 * r) / Yi + ))); + const v = 116 * _ - 16; + return [v < 0 ? 0 : v, 500 * (c - _), 200 * (_ - f), o]; + } + function xn(n) { + return n <= 0.04045 + ? n / 12.92 + : Math.pow((n + 0.055) / 1.055, 2.4); + } + function On(n) { + return n > oa ? Math.pow(n, 1 / 3) : n / Ki + Ei; + } + function Yn([n, t, r, o]) { + let c = (n + 16) / 116, + f = isNaN(t) ? c : c + t / 500, + _ = isNaN(r) ? c : c - r / 200; + return ( + (c = 1 * wn(c)), + (f = Zi * wn(f)), + (_ = Yi * wn(_)), + [ + Vn(3.1338561 * f - 1.6168667 * c - 0.4906146 * _), + Vn(-0.9787684 * f + 1.9161415 * c + 0.033454 * _), + Vn(0.0719453 * f - 0.2289914 * c + 1.4052427 * _), + o, + ] + ); + } + function Vn(n) { + return (n = + n <= 0.00304 + ? 12.92 * n + : 1.055 * Math.pow(n, 1 / 2.4) - 0.055) < 0 + ? 0 + : n > 1 + ? 1 + : n; + } + function wn(n) { + return n > zi ? n * n * n : Ki * (n - Ei); + } + const Ji = + Object.hasOwn || + function (n, t) { + return Object.prototype.hasOwnProperty.call(n, t); + }; + function sr(n, t) { + return Ji(n, t) ? n[t] : void 0; + } + function Ut(n) { + return parseInt(n.padEnd(2, n), 16) / 255; + } + function $r(n, t) { + return lr(t ? n / 100 : n, 0, 1); + } + function lr(n, t, r) { + return Math.min(Math.max(t, n), r); + } + function Tn(n) { + return !n.some(Number.isNaN); + } + const an = { + aliceblue: [240, 248, 255], + antiquewhite: [250, 235, 215], + aqua: [0, 255, 255], + aquamarine: [127, 255, 212], + azure: [240, 255, 255], + beige: [245, 245, 220], + bisque: [255, 228, 196], + black: [0, 0, 0], + blanchedalmond: [255, 235, 205], + blue: [0, 0, 255], + blueviolet: [138, 43, 226], + brown: [165, 42, 42], + burlywood: [222, 184, 135], + cadetblue: [95, 158, 160], + chartreuse: [127, 255, 0], + chocolate: [210, 105, 30], + coral: [255, 127, 80], + cornflowerblue: [100, 149, 237], + cornsilk: [255, 248, 220], + crimson: [220, 20, 60], + cyan: [0, 255, 255], + darkblue: [0, 0, 139], + darkcyan: [0, 139, 139], + darkgoldenrod: [184, 134, 11], + darkgray: [169, 169, 169], + darkgreen: [0, 100, 0], + darkgrey: [169, 169, 169], + darkkhaki: [189, 183, 107], + darkmagenta: [139, 0, 139], + darkolivegreen: [85, 107, 47], + darkorange: [255, 140, 0], + darkorchid: [153, 50, 204], + darkred: [139, 0, 0], + darksalmon: [233, 150, 122], + darkseagreen: [143, 188, 143], + darkslateblue: [72, 61, 139], + darkslategray: [47, 79, 79], + darkslategrey: [47, 79, 79], + darkturquoise: [0, 206, 209], + darkviolet: [148, 0, 211], + deeppink: [255, 20, 147], + deepskyblue: [0, 191, 255], + dimgray: [105, 105, 105], + dimgrey: [105, 105, 105], + dodgerblue: [30, 144, 255], + firebrick: [178, 34, 34], + floralwhite: [255, 250, 240], + forestgreen: [34, 139, 34], + fuchsia: [255, 0, 255], + gainsboro: [220, 220, 220], + ghostwhite: [248, 248, 255], + gold: [255, 215, 0], + goldenrod: [218, 165, 32], + gray: [128, 128, 128], + green: [0, 128, 0], + greenyellow: [173, 255, 47], + grey: [128, 128, 128], + honeydew: [240, 255, 240], + hotpink: [255, 105, 180], + indianred: [205, 92, 92], + indigo: [75, 0, 130], + ivory: [255, 255, 240], + khaki: [240, 230, 140], + lavender: [230, 230, 250], + lavenderblush: [255, 240, 245], + lawngreen: [124, 252, 0], + lemonchiffon: [255, 250, 205], + lightblue: [173, 216, 230], + lightcoral: [240, 128, 128], + lightcyan: [224, 255, 255], + lightgoldenrodyellow: [250, 250, 210], + lightgray: [211, 211, 211], + lightgreen: [144, 238, 144], + lightgrey: [211, 211, 211], + lightpink: [255, 182, 193], + lightsalmon: [255, 160, 122], + lightseagreen: [32, 178, 170], + lightskyblue: [135, 206, 250], + lightslategray: [119, 136, 153], + lightslategrey: [119, 136, 153], + lightsteelblue: [176, 196, 222], + lightyellow: [255, 255, 224], + lime: [0, 255, 0], + limegreen: [50, 205, 50], + linen: [250, 240, 230], + magenta: [255, 0, 255], + maroon: [128, 0, 0], + mediumaquamarine: [102, 205, 170], + mediumblue: [0, 0, 205], + mediumorchid: [186, 85, 211], + mediumpurple: [147, 112, 219], + mediumseagreen: [60, 179, 113], + mediumslateblue: [123, 104, 238], + mediumspringgreen: [0, 250, 154], + mediumturquoise: [72, 209, 204], + mediumvioletred: [199, 21, 133], + midnightblue: [25, 25, 112], + mintcream: [245, 255, 250], + mistyrose: [255, 228, 225], + moccasin: [255, 228, 181], + navajowhite: [255, 222, 173], + navy: [0, 0, 128], + oldlace: [253, 245, 230], + olive: [128, 128, 0], + olivedrab: [107, 142, 35], + orange: [255, 165, 0], + orangered: [255, 69, 0], + orchid: [218, 112, 214], + palegoldenrod: [238, 232, 170], + palegreen: [152, 251, 152], + paleturquoise: [175, 238, 238], + palevioletred: [219, 112, 147], + papayawhip: [255, 239, 213], + peachpuff: [255, 218, 185], + peru: [205, 133, 63], + pink: [255, 192, 203], + plum: [221, 160, 221], + powderblue: [176, 224, 230], + purple: [128, 0, 128], + rebeccapurple: [102, 51, 153], + red: [255, 0, 0], + rosybrown: [188, 143, 143], + royalblue: [65, 105, 225], + saddlebrown: [139, 69, 19], + salmon: [250, 128, 114], + sandybrown: [244, 164, 96], + seagreen: [46, 139, 87], + seashell: [255, 245, 238], + sienna: [160, 82, 45], + silver: [192, 192, 192], + skyblue: [135, 206, 235], + slateblue: [106, 90, 205], + slategray: [112, 128, 144], + slategrey: [112, 128, 144], + snow: [255, 250, 250], + springgreen: [0, 255, 127], + steelblue: [70, 130, 180], + tan: [210, 180, 140], + teal: [0, 128, 128], + thistle: [216, 191, 216], + tomato: [255, 99, 71], + turquoise: [64, 224, 208], + violet: [238, 130, 238], + wheat: [245, 222, 179], + white: [255, 255, 255], + whitesmoke: [245, 245, 245], + yellow: [255, 255, 0], + yellowgreen: [154, 205, 50], + }; + function Cn(n, t, r) { + return n + r * (t - n); + } + function Gn(n, t, r) { + return n.map((o, c) => Cn(o, t[c], r)); + } + class Mr { + constructor(t, r, o, c = 1, f = !0) { + (this.r = t), + (this.g = r), + (this.b = o), + (this.a = c), + f || + ((this.r *= c), + (this.g *= c), + (this.b *= c), + c || this.overwriteGetter("rgb", [t, r, o, c])); + } + static parse(t) { + if (t instanceof Mr) return t; + if (typeof t != "string") return; + const r = (function (o) { + if ((o = o.toLowerCase().trim()) === "transparent") + return [0, 0, 0, 0]; + const c = sr(an, o); + if (c) { + const [_, v, b] = c; + return [_ / 255, v / 255, b / 255, 1]; + } + if ( + o.startsWith("#") && + /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(o) + ) { + const _ = o.length < 6 ? 1 : 2; + let v = 1; + return [ + Ut(o.slice(v, (v += _))), + Ut(o.slice(v, (v += _))), + Ut(o.slice(v, (v += _))), + Ut(o.slice(v, v + _) || "ff"), + ]; + } + if (o.startsWith("rgb")) { + const _ = o.match( + /^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/ + ); + if (_) { + const [v, b, S, I, L, F, q, Z, W, J, le, Re] = _, + xe = [I || " ", q || " ", J].join(""); + if ( + xe === " " || + xe === " /" || + xe === ",," || + xe === ",,," + ) { + const Ce = [S, F, W].join(""), + Ye = Ce === "%%%" ? 100 : Ce === "" ? 255 : 0; + if (Ye) { + const lt = [ + lr(+b / Ye, 0, 1), + lr(+L / Ye, 0, 1), + lr(+Z / Ye, 0, 1), + le ? $r(+le, Re) : 1, + ]; + if (Tn(lt)) return lt; + } + } + return; + } + } + const f = o.match( + /^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/ + ); + if (f) { + const [_, v, b, S, I, L, F, q, Z] = f, + W = [b || " ", I || " ", F].join(""); + if ( + W === " " || + W === " /" || + W === ",," || + W === ",,," + ) { + const J = [ + +v, + lr(+S, 0, 100), + lr(+L, 0, 100), + q ? $r(+q, Z) : 1, + ]; + if (Tn(J)) + return (function ([le, Re, xe, Ce]) { + function Ye(lt) { + const Pt = (lt + le / 30) % 12, + Yt = Re * Math.min(xe, 1 - xe); + return ( + xe - + Yt * Math.max(-1, Math.min(Pt - 3, 9 - Pt, 1)) + ); + } + return ( + (le = Xt(le)), + (Re /= 100), + (xe /= 100), + [Ye(0), Ye(8), Ye(4), Ce] + ); + })(J); + } + } + })(t); + return r ? new Mr(...r, !1) : void 0; + } + get rgb() { + const { r: t, g: r, b: o, a: c } = this, + f = c || 1 / 0; + return this.overwriteGetter("rgb", [t / f, r / f, o / f, c]); + } + get hcl() { + return this.overwriteGetter( + "hcl", + (function (t) { + const [r, o, c, f] = Br(t), + _ = Math.sqrt(o * o + c * c); + return [ + Math.round(1e4 * _) ? Xt(Math.atan2(c, o) * bt) : NaN, + _, + r, + f, + ]; + })(this.rgb) + ); + } + get lab() { + return this.overwriteGetter("lab", Br(this.rgb)); + } + overwriteGetter(t, r) { + return Object.defineProperty(this, t, { value: r }), r; + } + toString() { + const [t, r, o, c] = this.rgb; + return `rgba(${[t, r, o] + .map((f) => Math.round(255 * f)) + .join(",")},${c})`; + } + static interpolate(t, r, o, c = "rgb") { + switch (c) { + case "rgb": { + const [f, _, v, b] = Gn(t.rgb, r.rgb, o); + return new Mr(f, _, v, b, !1); + } + case "hcl": { + const [f, _, v, b] = t.hcl, + [S, I, L, F] = r.hcl; + let q, Z; + if (isNaN(f) || isNaN(S)) + isNaN(f) + ? isNaN(S) + ? (q = NaN) + : ((q = S), (v !== 1 && v !== 0) || (Z = I)) + : ((q = f), (L !== 1 && L !== 0) || (Z = _)); + else { + let xe = S - f; + S > f && xe > 180 + ? (xe -= 360) + : S < f && f - S > 180 && (xe += 360), + (q = f + o * xe); + } + const [W, J, le, Re] = (function ([xe, Ce, Ye, lt]) { + return ( + (xe = isNaN(xe) ? 0 : xe * Ta), + Yn([Ye, Math.cos(xe) * Ce, Math.sin(xe) * Ce, lt]) + ); + })([q, Z ?? Cn(_, I, o), Cn(v, L, o), Cn(b, F, o)]); + return new Mr(W, J, le, Re, !1); + } + case "lab": { + const [f, _, v, b] = Yn(Gn(t.lab, r.lab, o)); + return new Mr(f, _, v, b, !1); + } + } + } + } + (Mr.black = new Mr(0, 0, 0, 1)), + (Mr.white = new Mr(1, 1, 1, 1)), + (Mr.transparent = new Mr(0, 0, 0, 0)), + (Mr.red = new Mr(1, 0, 0, 1)); + class Mn { + constructor(t, r, o) { + (this.sensitivity = t + ? r + ? "variant" + : "case" + : r + ? "accent" + : "base"), + (this.locale = o), + (this.collator = new Intl.Collator( + this.locale ? this.locale : [], + { sensitivity: this.sensitivity, usage: "search" } + )); + } + compare(t, r) { + return this.collator.compare(t, r); + } + resolvedLocale() { + return new Intl.Collator( + this.locale ? this.locale : [] + ).resolvedOptions().locale; + } + } + const bn = ["bottom", "center", "top"]; + class cn { + constructor(t, r, o, c, f, _) { + (this.text = t), + (this.image = r), + (this.scale = o), + (this.fontStack = c), + (this.textColor = f), + (this.verticalAlign = _); + } + } + class Sn { + constructor(t) { + this.sections = t; + } + static fromString(t) { + return new Sn([new cn(t, null, null, null, null, null)]); + } + isEmpty() { + return ( + this.sections.length === 0 || + !this.sections.some( + (t) => + t.text.length !== 0 || + (t.image && t.image.name.length !== 0) + ) + ); + } + static factory(t) { + return t instanceof Sn ? t : Sn.fromString(t); + } + toString() { + return this.sections.length === 0 + ? "" + : this.sections.map((t) => t.text).join(""); + } + } + class kn { + constructor(t) { + this.values = t.slice(); + } + static parse(t) { + if (t instanceof kn) return t; + if (typeof t == "number") return new kn([t, t, t, t]); + if (Array.isArray(t) && !(t.length < 1 || t.length > 4)) { + for (const r of t) if (typeof r != "number") return; + switch (t.length) { + case 1: + t = [t[0], t[0], t[0], t[0]]; + break; + case 2: + t = [t[0], t[1], t[0], t[1]]; + break; + case 3: + t = [t[0], t[1], t[2], t[1]]; + } + return new kn(t); + } + } + toString() { + return JSON.stringify(this.values); + } + static interpolate(t, r, o) { + return new kn(Gn(t.values, r.values, o)); + } + } + class vn { + constructor(t) { + this.values = t.slice(); + } + static parse(t) { + if (t instanceof vn) return t; + if (typeof t == "number") return new vn([t]); + if (Array.isArray(t)) { + for (const r of t) if (typeof r != "number") return; + return new vn(t); + } + } + toString() { + return JSON.stringify(this.values); + } + static interpolate(t, r, o) { + return new vn(Gn(t.values, r.values, o)); + } + } + class fn { + constructor(t) { + this.values = t.slice(); + } + static parse(t) { + if (t instanceof fn) return t; + if (typeof t == "string") { + const o = Mr.parse(t); + return o ? new fn([o]) : void 0; + } + if (!Array.isArray(t)) return; + const r = []; + for (const o of t) { + if (typeof o != "string") return; + const c = Mr.parse(o); + if (!c) return; + r.push(c); + } + return new fn(r); + } + toString() { + return JSON.stringify(this.values); + } + static interpolate(t, r, o, c = "rgb") { + const f = []; + if (t.values.length != r.values.length) + throw new Error( + `colorArray: Arrays have mismatched length (${t.values.length} vs. ${r.values.length}), cannot interpolate.` + ); + for (let _ = 0; _ < t.values.length; _++) + f.push(Mr.interpolate(t.values[_], r.values[_], o, c)); + return new fn(f); + } + } + class on extends Error { + constructor(t) { + super(t), (this.name = "RuntimeError"); + } + toJSON() { + return this.message; + } + } + const po = new Set([ + "center", + "left", + "right", + "top", + "bottom", + "top-left", + "top-right", + "bottom-left", + "bottom-right", + ]); + class fi { + constructor(t) { + this.values = t.slice(); + } + static parse(t) { + if (t instanceof fi) return t; + if (Array.isArray(t) && !(t.length < 1) && t.length % 2 == 0) { + for (let r = 0; r < t.length; r += 2) { + const o = t[r], + c = t[r + 1]; + if ( + typeof o != "string" || + !po.has(o) || + !Array.isArray(c) || + c.length !== 2 || + typeof c[0] != "number" || + typeof c[1] != "number" + ) + return; + } + return new fi(t); + } + } + toString() { + return JSON.stringify(this.values); + } + static interpolate(t, r, o) { + const c = t.values, + f = r.values; + if (c.length !== f.length) + throw new on( + `Cannot interpolate values of different length. from: ${t.toString()}, to: ${r.toString()}` + ); + const _ = []; + for (let v = 0; v < c.length; v += 2) { + if (c[v] !== f[v]) + throw new on( + `Cannot interpolate values containing mismatched anchors. from[${v}]: ${c[v]}, to[${v}]: ${f[v]}` + ); + _.push(c[v]); + const [b, S] = c[v + 1], + [I, L] = f[v + 1]; + _.push([Cn(b, I, o), Cn(S, L, o)]); + } + return new fi(_); + } + } + class Hn { + constructor(t) { + (this.name = t.name), (this.available = t.available); + } + toString() { + return this.name; + } + static fromString(t) { + return t ? new Hn({ name: t, available: !1 }) : null; + } + } + class jn { + constructor(t, r, o) { + (this.from = t), (this.to = r), (this.transition = o); + } + static interpolate(t, r, o) { + return new jn(t, r, o); + } + static parse(t) { + return t instanceof jn + ? t + : Array.isArray(t) && + t.length === 3 && + typeof t[0] == "string" && + typeof t[1] == "string" && + typeof t[2] == "number" + ? new jn(t[0], t[1], t[2]) + : typeof t == "object" && + typeof t.from == "string" && + typeof t.to == "string" && + typeof t.transition == "number" + ? new jn(t.from, t.to, t.transition) + : typeof t == "string" + ? new jn(t, t, 1) + : void 0; + } + } + function zn(n, t, r, o) { + return typeof n == "number" && + n >= 0 && + n <= 255 && + typeof t == "number" && + t >= 0 && + t <= 255 && + typeof r == "number" && + r >= 0 && + r <= 255 + ? o === void 0 || (typeof o == "number" && o >= 0 && o <= 1) + ? null + : `Invalid rgba value [${[n, t, r, o].join( + ", " + )}]: 'a' must be between 0 and 1.` + : `Invalid rgba value [${(typeof o == "number" + ? [n, t, r, o] + : [n, t, r] + ).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`; + } + function qa(n) { + if ( + n === null || + typeof n == "string" || + typeof n == "boolean" || + typeof n == "number" || + n instanceof jn || + n instanceof Mr || + n instanceof Mn || + n instanceof Sn || + n instanceof kn || + n instanceof vn || + n instanceof fn || + n instanceof fi || + n instanceof Hn + ) + return !0; + if (Array.isArray(n)) { + for (const t of n) if (!qa(t)) return !1; + return !0; + } + if (typeof n == "object") { + for (const t in n) if (!qa(n[t])) return !1; + return !0; + } + return !1; + } + function Rr(n) { + if (n === null) return mt; + if (typeof n == "string") return At; + if (typeof n == "boolean") return Ft; + if (typeof n == "number") return He; + if (n instanceof Mr) return Jt; + if (n instanceof jn) return Cr; + if (n instanceof Mn) return rn; + if (n instanceof Sn) return pn; + if (n instanceof kn) return gn; + if (n instanceof vn) return En; + if (n instanceof fn) return ln; + if (n instanceof fi) return In; + if (n instanceof Hn) return pr; + if (Array.isArray(n)) { + const t = n.length; + let r; + for (const o of n) { + const c = Rr(o); + if (r) { + if (r === c) continue; + r = ur; + break; + } + r = c; + } + return tn(r || ur, t); + } + return Er; + } + function Gr(n) { + const t = typeof n; + return n === null + ? "" + : t === "string" || t === "number" || t === "boolean" + ? String(n) + : n instanceof Mr || + n instanceof jn || + n instanceof Sn || + n instanceof kn || + n instanceof vn || + n instanceof fn || + n instanceof fi || + n instanceof Hn + ? n.toString() + : JSON.stringify(n); + } + class _a { + constructor(t, r) { + (this.type = t), (this.value = r); + } + static parse(t, r) { + if (t.length !== 2) + return r.error( + `'literal' expression requires exactly one argument, but found ${ + t.length - 1 + } instead.` + ); + if (!qa(t[1])) return r.error("invalid value"); + const o = t[1]; + let c = Rr(o); + const f = r.expectedType; + return ( + c.kind !== "array" || + c.N !== 0 || + !f || + f.kind !== "array" || + (typeof f.N == "number" && f.N !== 0) || + (c = f), + new _a(c, o) + ); + } + evaluate() { + return this.value; + } + eachChild() {} + outputDefined() { + return !0; + } + } + const un = { string: At, number: He, boolean: Ft, object: Er }; + class Li { + constructor(t, r) { + (this.type = t), (this.args = r); + } + static parse(t, r) { + if (t.length < 2) + return r.error("Expected at least one argument."); + let o, + c = 1; + const f = t[0]; + if (f === "array") { + let v, b; + if (t.length > 2) { + const S = t[1]; + if (typeof S != "string" || !(S in un) || S === "object") + return r.error( + 'The item type argument of "array" must be one of string, number, boolean', + 1 + ); + (v = un[S]), c++; + } else v = ur; + if (t.length > 3) { + if ( + t[2] !== null && + (typeof t[2] != "number" || + t[2] < 0 || + t[2] !== Math.floor(t[2])) + ) + return r.error( + 'The length argument to "array" must be a positive integer literal', + 2 + ); + (b = t[2]), c++; + } + o = tn(v, b); + } else { + if (!un[f]) + throw new Error(`Types doesn't contain name = ${f}`); + o = un[f]; + } + const _ = []; + for (; c < t.length; c++) { + const v = r.parse(t[c], c, ur); + if (!v) return null; + _.push(v); + } + return new Li(o, _); + } + evaluate(t) { + for (let r = 0; r < this.args.length; r++) { + const o = this.args[r].evaluate(t); + if (!pi(this.type, Rr(o))) return o; + if (r === this.args.length - 1) + throw new on( + `Expected value to be of type ${en( + this.type + )}, but found ${en(Rr(o))} instead.` + ); + } + throw new Error(); + } + eachChild(t) { + this.args.forEach(t); + } + outputDefined() { + return this.args.every((t) => t.outputDefined()); + } + } + const ga = { + "to-boolean": Ft, + "to-color": Jt, + "to-number": He, + "to-string": At, + }; + class sa { + constructor(t, r) { + (this.type = t), (this.args = r); + } + static parse(t, r) { + if (t.length < 2) + return r.error("Expected at least one argument."); + const o = t[0]; + if (!ga[o]) + throw new Error( + `Can't parse ${o} as it is not part of the known types` + ); + if ((o === "to-boolean" || o === "to-string") && t.length !== 2) + return r.error("Expected one argument."); + const c = ga[o], + f = []; + for (let _ = 1; _ < t.length; _++) { + const v = r.parse(t[_], _, ur); + if (!v) return null; + f.push(v); + } + return new sa(c, f); + } + evaluate(t) { + switch (this.type.kind) { + case "boolean": + return !!this.args[0].evaluate(t); + case "color": { + let r, o; + for (const c of this.args) { + if (((r = c.evaluate(t)), (o = null), r instanceof Mr)) + return r; + if (typeof r == "string") { + const f = t.parseColor(r); + if (f) return f; + } else if ( + Array.isArray(r) && + ((o = + r.length < 3 || r.length > 4 + ? `Invalid rgba value ${JSON.stringify( + r + )}: expected an array containing either three or four numeric values.` + : zn(r[0], r[1], r[2], r[3])), + !o) + ) + return new Mr(r[0] / 255, r[1] / 255, r[2] / 255, r[3]); + } + throw new on( + o || + `Could not parse color from value '${ + typeof r == "string" ? r : JSON.stringify(r) + }'` + ); + } + case "padding": { + let r; + for (const o of this.args) { + r = o.evaluate(t); + const c = kn.parse(r); + if (c) return c; + } + throw new on( + `Could not parse padding from value '${ + typeof r == "string" ? r : JSON.stringify(r) + }'` + ); + } + case "numberArray": { + let r; + for (const o of this.args) { + r = o.evaluate(t); + const c = vn.parse(r); + if (c) return c; + } + throw new on( + `Could not parse numberArray from value '${ + typeof r == "string" ? r : JSON.stringify(r) + }'` + ); + } + case "colorArray": { + let r; + for (const o of this.args) { + r = o.evaluate(t); + const c = fn.parse(r); + if (c) return c; + } + throw new on( + `Could not parse colorArray from value '${ + typeof r == "string" ? r : JSON.stringify(r) + }'` + ); + } + case "variableAnchorOffsetCollection": { + let r; + for (const o of this.args) { + r = o.evaluate(t); + const c = fi.parse(r); + if (c) return c; + } + throw new on( + `Could not parse variableAnchorOffsetCollection from value '${ + typeof r == "string" ? r : JSON.stringify(r) + }'` + ); + } + case "number": { + let r = null; + for (const o of this.args) { + if (((r = o.evaluate(t)), r === null)) return 0; + const c = Number(r); + if (!isNaN(c)) return c; + } + throw new on( + `Could not convert ${JSON.stringify(r)} to number.` + ); + } + case "formatted": + return Sn.fromString(Gr(this.args[0].evaluate(t))); + case "resolvedImage": + return Hn.fromString(Gr(this.args[0].evaluate(t))); + case "projectionDefinition": + return this.args[0].evaluate(t); + default: + return Gr(this.args[0].evaluate(t)); + } + } + eachChild(t) { + this.args.forEach(t); + } + outputDefined() { + return this.args.every((t) => t.outputDefined()); + } + } + const Ja = ["Unknown", "Point", "LineString", "Polygon"]; + class Ms { + constructor() { + (this.globals = null), + (this.feature = null), + (this.featureState = null), + (this.formattedSection = null), + (this._parseColorCache = new Map()), + (this.availableImages = null), + (this.canonical = null); + } + id() { + return this.feature && "id" in this.feature + ? this.feature.id + : null; + } + geometryType() { + return this.feature + ? typeof this.feature.type == "number" + ? Ja[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(t) { + let r = this._parseColorCache.get(t); + return ( + r || ((r = Mr.parse(t)), this._parseColorCache.set(t, r)), r + ); + } + } + class Ca { + constructor(t, r, o = [], c, f = new Zr(), _ = []) { + (this.registry = t), + (this.path = o), + (this.key = o.map((v) => `[${v}]`).join("")), + (this.scope = f), + (this.errors = _), + (this.expectedType = c), + (this._isConstant = r); + } + parse(t, r, o, c, f = {}) { + return r + ? this.concat(r, o, c)._parse(t, f) + : this._parse(t, f); + } + _parse(t, r) { + function o(c, f, _) { + return _ === "assert" + ? new Li(f, [c]) + : _ === "coerce" + ? new sa(f, [c]) + : c; + } + if ( + ((t !== null && + typeof t != "string" && + typeof t != "boolean" && + typeof t != "number") || + (t = ["literal", t]), + Array.isArray(t)) + ) { + if (t.length === 0) + return this.error( + 'Expected an array with at least one element. If you wanted a literal array, use ["literal", []].' + ); + const c = t[0]; + if (typeof c != "string") + return ( + this.error( + `Expression name must be a string, but found ${typeof c} instead. If you wanted a literal array, use ["literal", [...]].`, + 0 + ), + null + ); + const f = this.registry[c]; + if (f) { + let _ = f.parse(t, this); + if (!_) return null; + if (this.expectedType) { + const v = this.expectedType, + b = _.type; + if ( + (v.kind !== "string" && + v.kind !== "number" && + v.kind !== "boolean" && + v.kind !== "object" && + v.kind !== "array") || + b.kind !== "value" + ) { + if ( + (v.kind === "projectionDefinition" && + ["string", "array"].includes(b.kind)) || + (["color", "formatted", "resolvedImage"].includes( + v.kind + ) && + ["value", "string"].includes(b.kind)) || + (["padding", "numberArray"].includes(v.kind) && + ["value", "number", "array"].includes(b.kind)) || + (v.kind === "colorArray" && + ["value", "string", "array"].includes(b.kind)) || + (v.kind === "variableAnchorOffsetCollection" && + ["value", "array"].includes(b.kind)) + ) + _ = o(_, v, r.typeAnnotation || "coerce"); + else if (this.checkSubtype(v, b)) return null; + } else _ = o(_, v, r.typeAnnotation || "assert"); + } + if ( + !(_ instanceof _a) && + _.type.kind !== "resolvedImage" && + this._isConstant(_) + ) { + const v = new Ms(); + try { + _ = new _a(_.type, _.evaluate(v)); + } catch (b) { + return this.error(b.message), null; + } + } + return _; + } + return this.error( + `Unknown expression "${c}". If you wanted a literal array, use ["literal", [...]].`, + 0 + ); + } + return this.error( + t === void 0 + ? "'undefined' value invalid. Use null instead." + : typeof t == "object" + ? 'Bare objects invalid. Use ["literal", {...}] instead.' + : `Expected an array, but found ${typeof t} instead.` + ); + } + concat(t, r, o) { + const c = + typeof t == "number" ? this.path.concat(t) : this.path, + f = o ? this.scope.concat(o) : this.scope; + return new Ca( + this.registry, + this._isConstant, + c, + r || null, + f, + this.errors + ); + } + error(t, ...r) { + const o = `${this.key}${r.map((c) => `[${c}]`).join("")}`; + this.errors.push(new Yr(o, t)); + } + checkSubtype(t, r) { + const o = pi(t, r); + return o && this.error(o), o; + } + } + class Qa { + constructor(t, r) { + (this.type = r.type), + (this.bindings = [].concat(t)), + (this.result = r); + } + evaluate(t) { + return this.result.evaluate(t); + } + eachChild(t) { + for (const r of this.bindings) t(r[1]); + t(this.result); + } + static parse(t, r) { + if (t.length < 4) + return r.error( + `Expected at least 3 arguments, but found ${ + t.length - 1 + } instead.` + ); + const o = []; + for (let f = 1; f < t.length - 1; f += 2) { + const _ = t[f]; + if (typeof _ != "string") + return r.error( + `Expected string, but found ${typeof _} instead.`, + f + ); + if (/[^a-zA-Z0-9_]/.test(_)) + return r.error( + "Variable names must contain only alphanumeric characters or '_'.", + f + ); + const v = r.parse(t[f + 1], f + 1); + if (!v) return null; + o.push([_, v]); + } + const c = r.parse( + t[t.length - 1], + t.length - 1, + r.expectedType, + o + ); + return c ? new Qa(o, c) : null; + } + outputDefined() { + return this.result.outputDefined(); + } + } + class Jo { + constructor(t, r) { + (this.type = r.type), + (this.name = t), + (this.boundExpression = r); + } + static parse(t, r) { + if (t.length !== 2 || typeof t[1] != "string") + return r.error( + "'var' expression requires exactly one string literal argument." + ); + const o = t[1]; + return r.scope.has(o) + ? new Jo(o, r.scope.get(o)) + : r.error( + `Unknown variable "${o}". Make sure "${o}" has been bound in an enclosing "let" expression before using it.`, + 1 + ); + } + evaluate(t) { + return this.boundExpression.evaluate(t); + } + eachChild() {} + outputDefined() { + return !1; + } + } + class gl { + constructor(t, r, o) { + (this.type = t), (this.index = r), (this.input = o); + } + static parse(t, r) { + if (t.length !== 3) + return r.error( + `Expected 2 arguments, but found ${t.length - 1} instead.` + ); + const o = r.parse(t[1], 1, He), + c = r.parse(t[2], 2, tn(r.expectedType || ur)); + return o && c ? new gl(c.type.itemType, o, c) : null; + } + evaluate(t) { + const r = this.index.evaluate(t), + o = this.input.evaluate(t); + if (r < 0) throw new on(`Array index out of bounds: ${r} < 0.`); + if (r >= o.length) + throw new on( + `Array index out of bounds: ${r} > ${o.length - 1}.` + ); + if (r !== Math.floor(r)) + throw new on( + `Array index must be an integer, but found ${r} instead.` + ); + return o[r]; + } + eachChild(t) { + t(this.index), t(this.input); + } + outputDefined() { + return !1; + } + } + class vl { + constructor(t, r) { + (this.type = Ft), (this.needle = t), (this.haystack = r); + } + static parse(t, r) { + if (t.length !== 3) + return r.error( + `Expected 2 arguments, but found ${t.length - 1} instead.` + ); + const o = r.parse(t[1], 1, ur), + c = r.parse(t[2], 2, ur); + return o && c + ? Xi(o.type, [Ft, At, He, mt, ur]) + ? new vl(o, c) + : r.error( + `Expected first argument to be of type boolean, string, number or null, but found ${en( + o.type + )} instead` + ) + : null; + } + evaluate(t) { + const r = this.needle.evaluate(t), + o = this.haystack.evaluate(t); + if (!o) return !1; + if (!Zn(r, ["boolean", "string", "number", "null"])) + throw new on( + `Expected first argument to be of type boolean, string, number or null, but found ${en( + Rr(r) + )} instead.` + ); + if (!Zn(o, ["string", "array"])) + throw new on( + `Expected second argument to be of type array or string, but found ${en( + Rr(o) + )} instead.` + ); + return o.indexOf(r) >= 0; + } + eachChild(t) { + t(this.needle), t(this.haystack); + } + outputDefined() { + return !0; + } + } + class Sa { + constructor(t, r, o) { + (this.type = He), + (this.needle = t), + (this.haystack = r), + (this.fromIndex = o); + } + static parse(t, r) { + if (t.length <= 2 || t.length >= 5) + return r.error( + `Expected 3 or 4 arguments, but found ${ + t.length - 1 + } instead.` + ); + const o = r.parse(t[1], 1, ur), + c = r.parse(t[2], 2, ur); + if (!o || !c) return null; + if (!Xi(o.type, [Ft, At, He, mt, ur])) + return r.error( + `Expected first argument to be of type boolean, string, number or null, but found ${en( + o.type + )} instead` + ); + if (t.length === 4) { + const f = r.parse(t[3], 3, He); + return f ? new Sa(o, c, f) : null; + } + return new Sa(o, c); + } + evaluate(t) { + const r = this.needle.evaluate(t), + o = this.haystack.evaluate(t); + if (!Zn(r, ["boolean", "string", "number", "null"])) + throw new on( + `Expected first argument to be of type boolean, string, number or null, but found ${en( + Rr(r) + )} instead.` + ); + let c; + if ( + (this.fromIndex && (c = this.fromIndex.evaluate(t)), + Zn(o, ["string"])) + ) { + const f = o.indexOf(r, c); + return f === -1 ? -1 : [...o.slice(0, f)].length; + } + if (Zn(o, ["array"])) return o.indexOf(r, c); + throw new on( + `Expected second argument to be of type array or string, but found ${en( + Rr(o) + )} instead.` + ); + } + eachChild(t) { + t(this.needle), + t(this.haystack), + this.fromIndex && t(this.fromIndex); + } + outputDefined() { + return !1; + } + } + class Ti { + constructor(t, r, o, c, f, _) { + (this.inputType = t), + (this.type = r), + (this.input = o), + (this.cases = c), + (this.outputs = f), + (this.otherwise = _); + } + static parse(t, r) { + if (t.length < 5) + return r.error( + `Expected at least 4 arguments, but found only ${ + t.length - 1 + }.` + ); + if (t.length % 2 != 1) + return r.error("Expected an even number of arguments."); + let o, c; + r.expectedType && + r.expectedType.kind !== "value" && + (c = r.expectedType); + const f = {}, + _ = []; + for (let S = 2; S < t.length - 1; S += 2) { + let I = t[S]; + const L = t[S + 1]; + Array.isArray(I) || (I = [I]); + const F = r.concat(S); + if (I.length === 0) + return F.error("Expected at least one branch label."); + for (const Z of I) { + if (typeof Z != "number" && typeof Z != "string") + return F.error( + "Branch labels must be numbers or strings." + ); + if ( + typeof Z == "number" && + Math.abs(Z) > Number.MAX_SAFE_INTEGER + ) + return F.error( + `Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.` + ); + if (typeof Z == "number" && Math.floor(Z) !== Z) + return F.error( + "Numeric branch labels must be integer values." + ); + if (o) { + if (F.checkSubtype(o, Rr(Z))) return null; + } else o = Rr(Z); + if (f[String(Z)] !== void 0) + return F.error("Branch labels must be unique."); + f[String(Z)] = _.length; + } + const q = r.parse(L, S, c); + if (!q) return null; + (c = c || q.type), _.push(q); + } + const v = r.parse(t[1], 1, ur); + if (!v) return null; + const b = r.parse(t[t.length - 1], t.length - 1, c); + return b + ? v.type.kind !== "value" && + r.concat(1).checkSubtype(o, v.type) + ? null + : new Ti(o, c, v, f, _, b) + : null; + } + evaluate(t) { + const r = this.input.evaluate(t); + return ( + (Rr(r) === this.inputType && this.outputs[this.cases[r]]) || + this.otherwise + ).evaluate(t); + } + eachChild(t) { + t(this.input), this.outputs.forEach(t), t(this.otherwise); + } + outputDefined() { + return ( + this.outputs.every((t) => t.outputDefined()) && + this.otherwise.outputDefined() + ); + } + } + class Qo { + constructor(t, r, o) { + (this.type = t), (this.branches = r), (this.otherwise = o); + } + static parse(t, r) { + if (t.length < 4) + return r.error( + `Expected at least 3 arguments, but found only ${ + t.length - 1 + }.` + ); + if (t.length % 2 != 0) + return r.error("Expected an odd number of arguments."); + let o; + r.expectedType && + r.expectedType.kind !== "value" && + (o = r.expectedType); + const c = []; + for (let _ = 1; _ < t.length - 1; _ += 2) { + const v = r.parse(t[_], _, Ft); + if (!v) return null; + const b = r.parse(t[_ + 1], _ + 1, o); + if (!b) return null; + c.push([v, b]), (o = o || b.type); + } + const f = r.parse(t[t.length - 1], t.length - 1, o); + if (!f) return null; + if (!o) throw new Error("Can't infer output type"); + return new Qo(o, c, f); + } + evaluate(t) { + for (const [r, o] of this.branches) + if (r.evaluate(t)) return o.evaluate(t); + return this.otherwise.evaluate(t); + } + eachChild(t) { + for (const [r, o] of this.branches) t(r), t(o); + t(this.otherwise); + } + outputDefined() { + return ( + this.branches.every(([t, r]) => r.outputDefined()) && + this.otherwise.outputDefined() + ); + } + } + class ks { + constructor(t, r, o, c) { + (this.type = t), + (this.input = r), + (this.beginIndex = o), + (this.endIndex = c); + } + static parse(t, r) { + if (t.length <= 2 || t.length >= 5) + return r.error( + `Expected 3 or 4 arguments, but found ${ + t.length - 1 + } instead.` + ); + const o = r.parse(t[1], 1, ur), + c = r.parse(t[2], 2, He); + if (!o || !c) return null; + if (!Xi(o.type, [tn(ur), At, ur])) + return r.error( + `Expected first argument to be of type array or string, but found ${en( + o.type + )} instead` + ); + if (t.length === 4) { + const f = r.parse(t[3], 3, He); + return f ? new ks(o.type, o, c, f) : null; + } + return new ks(o.type, o, c); + } + evaluate(t) { + const r = this.input.evaluate(t), + o = this.beginIndex.evaluate(t); + let c; + if ( + (this.endIndex && (c = this.endIndex.evaluate(t)), + Zn(r, ["string"])) + ) + return [...r].slice(o, c).join(""); + if (Zn(r, ["array"])) return r.slice(o, c); + throw new on( + `Expected first argument to be of type array or string, but found ${en( + Rr(r) + )} instead.` + ); + } + eachChild(t) { + t(this.input), + t(this.beginIndex), + this.endIndex && t(this.endIndex); + } + outputDefined() { + return !1; + } + } + function Mo(n, t) { + const r = n.length - 1; + let o, + c, + f = 0, + _ = r, + v = 0; + for (; f <= _; ) + if ( + ((v = Math.floor((f + _) / 2)), + (o = n[v]), + (c = n[v + 1]), + o <= t) + ) { + if (v === r || t < c) return v; + f = v + 1; + } else { + if (!(o > t)) throw new on("Input is not a number."); + _ = v - 1; + } + return 0; + } + class ei { + constructor(t, r, o) { + (this.type = t), + (this.input = r), + (this.labels = []), + (this.outputs = []); + for (const [c, f] of o) + this.labels.push(c), this.outputs.push(f); + } + static parse(t, r) { + if (t.length - 1 < 4) + return r.error( + `Expected at least 4 arguments, but found only ${ + t.length - 1 + }.` + ); + if ((t.length - 1) % 2 != 0) + return r.error("Expected an even number of arguments."); + const o = r.parse(t[1], 1, He); + if (!o) return null; + const c = []; + let f = null; + r.expectedType && + r.expectedType.kind !== "value" && + (f = r.expectedType); + for (let _ = 1; _ < t.length; _ += 2) { + const v = _ === 1 ? -1 / 0 : t[_], + b = t[_ + 1], + S = _, + I = _ + 1; + if (typeof v != "number") + return r.error( + 'Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', + S + ); + if (c.length && c[c.length - 1][0] >= v) + return r.error( + 'Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', + S + ); + const L = r.parse(b, I, f); + if (!L) return null; + (f = f || L.type), c.push([v, L]); + } + return new ei(f, o, c); + } + evaluate(t) { + const r = this.labels, + o = this.outputs; + if (r.length === 1) return o[0].evaluate(t); + const c = this.input.evaluate(t); + if (c <= r[0]) return o[0].evaluate(t); + const f = r.length; + return c >= r[f - 1] + ? o[f - 1].evaluate(t) + : o[Mo(r, c)].evaluate(t); + } + eachChild(t) { + t(this.input); + for (const r of this.outputs) t(r); + } + outputDefined() { + return this.outputs.every((t) => t.outputDefined()); + } + } + function Fh(n) { + return n && + n.__esModule && + Object.prototype.hasOwnProperty.call(n, "default") + ? n.default + : n; + } + var As, + Ec, + bp = (function () { + if (Ec) return As; + function n(t, r, o, c) { + (this.cx = 3 * t), + (this.bx = 3 * (o - t) - this.cx), + (this.ax = 1 - this.cx - this.bx), + (this.cy = 3 * r), + (this.by = 3 * (c - r) - this.cy), + (this.ay = 1 - this.cy - this.by), + (this.p1x = t), + (this.p1y = r), + (this.p2x = o), + (this.p2y = c); + } + return ( + (Ec = 1), + (As = n), + (n.prototype = { + sampleCurveX: function (t) { + return ((this.ax * t + this.bx) * t + this.cx) * t; + }, + sampleCurveY: function (t) { + return ((this.ay * t + this.by) * t + this.cy) * t; + }, + sampleCurveDerivativeX: function (t) { + return (3 * this.ax * t + 2 * this.bx) * t + this.cx; + }, + solveCurveX: function (t, r) { + if ((r === void 0 && (r = 1e-6), t < 0)) return 0; + if (t > 1) return 1; + for (var o = t, c = 0; c < 8; c++) { + var f = this.sampleCurveX(o) - t; + if (Math.abs(f) < r) return o; + var _ = this.sampleCurveDerivativeX(o); + if (Math.abs(_) < 1e-6) break; + o -= f / _; + } + var v = 0, + b = 1; + for ( + o = t, c = 0; + c < 20 && + ((f = this.sampleCurveX(o)), !(Math.abs(f - t) < r)); + c++ + ) + t > f ? (v = o) : (b = o), (o = 0.5 * (b - v) + v); + return o; + }, + solve: function (t, r) { + return this.sampleCurveY(this.solveCurveX(t, r)); + }, + }), + As + ); + })(), + es = Fh(bp); + class Di { + constructor(t, r, o, c, f) { + (this.type = t), + (this.operator = r), + (this.interpolation = o), + (this.input = c), + (this.labels = []), + (this.outputs = []); + for (const [_, v] of f) + this.labels.push(_), this.outputs.push(v); + } + static interpolationFactor(t, r, o, c) { + let f = 0; + if (t.name === "exponential") f = Es(r, t.base, o, c); + else if (t.name === "linear") f = Es(r, 1, o, c); + else if (t.name === "cubic-bezier") { + const _ = t.controlPoints; + f = new es(_[0], _[1], _[2], _[3]).solve(Es(r, 1, o, c)); + } + return f; + } + static parse(t, r) { + let [o, c, f, ..._] = t; + if (!Array.isArray(c) || c.length === 0) + return r.error( + "Expected an interpolation type expression.", + 1 + ); + if (c[0] === "linear") c = { name: "linear" }; + else if (c[0] === "exponential") { + const S = c[1]; + if (typeof S != "number") + return r.error( + "Exponential interpolation requires a numeric base.", + 1, + 1 + ); + c = { name: "exponential", base: S }; + } else { + if (c[0] !== "cubic-bezier") + return r.error( + `Unknown interpolation type ${String(c[0])}`, + 1, + 0 + ); + { + const S = c.slice(1); + if ( + S.length !== 4 || + S.some((I) => typeof I != "number" || I < 0 || I > 1) + ) + return r.error( + "Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", + 1 + ); + c = { name: "cubic-bezier", controlPoints: S }; + } + } + if (t.length - 1 < 4) + return r.error( + `Expected at least 4 arguments, but found only ${ + t.length - 1 + }.` + ); + if ((t.length - 1) % 2 != 0) + return r.error("Expected an even number of arguments."); + if (((f = r.parse(f, 2, He)), !f)) return null; + const v = []; + let b = null; + (o !== "interpolate-hcl" && o !== "interpolate-lab") || + r.expectedType == ln + ? r.expectedType && + r.expectedType.kind !== "value" && + (b = r.expectedType) + : (b = Jt); + for (let S = 0; S < _.length; S += 2) { + const I = _[S], + L = _[S + 1], + F = S + 3, + q = S + 4; + if (typeof I != "number") + return r.error( + 'Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', + F + ); + if (v.length && v[v.length - 1][0] >= I) + return r.error( + 'Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', + F + ); + const Z = r.parse(L, q, b); + if (!Z) return null; + (b = b || Z.type), v.push([I, Z]); + } + return ni(b, He) || + ni(b, Cr) || + ni(b, Jt) || + ni(b, gn) || + ni(b, En) || + ni(b, ln) || + ni(b, In) || + ni(b, tn(He)) + ? new Di(b, o, c, f, v) + : r.error(`Type ${en(b)} is not interpolatable.`); + } + evaluate(t) { + const r = this.labels, + o = this.outputs; + if (r.length === 1) return o[0].evaluate(t); + const c = this.input.evaluate(t); + if (c <= r[0]) return o[0].evaluate(t); + const f = r.length; + if (c >= r[f - 1]) return o[f - 1].evaluate(t); + const _ = Mo(r, c), + v = Di.interpolationFactor( + this.interpolation, + c, + r[_], + r[_ + 1] + ), + b = o[_].evaluate(t), + S = o[_ + 1].evaluate(t); + switch (this.operator) { + case "interpolate": + switch (this.type.kind) { + case "number": + return Cn(b, S, v); + case "color": + return Mr.interpolate(b, S, v); + case "padding": + return kn.interpolate(b, S, v); + case "colorArray": + return fn.interpolate(b, S, v); + case "numberArray": + return vn.interpolate(b, S, v); + case "variableAnchorOffsetCollection": + return fi.interpolate(b, S, v); + case "array": + return Gn(b, S, v); + case "projectionDefinition": + return jn.interpolate(b, S, v); + } + case "interpolate-hcl": + switch (this.type.kind) { + case "color": + return Mr.interpolate(b, S, v, "hcl"); + case "colorArray": + return fn.interpolate(b, S, v, "hcl"); + } + case "interpolate-lab": + switch (this.type.kind) { + case "color": + return Mr.interpolate(b, S, v, "lab"); + case "colorArray": + return fn.interpolate(b, S, v, "lab"); + } + } + } + eachChild(t) { + t(this.input); + for (const r of this.outputs) t(r); + } + outputDefined() { + return this.outputs.every((t) => t.outputDefined()); + } + } + function Es(n, t, r, o) { + const c = o - r, + f = n - r; + return c === 0 + ? 0 + : t === 1 + ? f / c + : (Math.pow(t, f) - 1) / (Math.pow(t, c) - 1); + } + const Za = { + color: Mr.interpolate, + number: Cn, + padding: kn.interpolate, + numberArray: vn.interpolate, + colorArray: fn.interpolate, + variableAnchorOffsetCollection: fi.interpolate, + array: Gn, + }; + class zs { + constructor(t, r) { + (this.type = t), (this.args = r); + } + static parse(t, r) { + if (t.length < 2) + return r.error("Expected at least one argument."); + let o = null; + const c = r.expectedType; + c && c.kind !== "value" && (o = c); + const f = []; + for (const v of t.slice(1)) { + const b = r.parse(v, 1 + f.length, o, void 0, { + typeAnnotation: "omit", + }); + if (!b) return null; + (o = o || b.type), f.push(b); + } + if (!o) throw new Error("No output type"); + const _ = c && f.some((v) => pi(c, v.type)); + return new zs(_ ? ur : o, f); + } + evaluate(t) { + let r, + o = null, + c = 0; + for (const f of this.args) + if ( + (c++, + (o = f.evaluate(t)), + o && + o instanceof Hn && + !o.available && + (r || (r = o.name), + (o = null), + c === this.args.length && (o = r)), + o !== null) + ) + break; + return o; + } + eachChild(t) { + this.args.forEach(t); + } + outputDefined() { + return this.args.every((t) => t.outputDefined()); + } + } + function Ls(n, t) { + return n === "==" || n === "!=" + ? t.kind === "boolean" || + t.kind === "string" || + t.kind === "number" || + t.kind === "null" || + t.kind === "value" + : t.kind === "string" || + t.kind === "number" || + t.kind === "value"; + } + function Ds(n, t, r, o) { + return o.compare(t, r) === 0; + } + function ji(n, t, r) { + const o = n !== "==" && n !== "!="; + return class r0 { + constructor(f, _, v) { + (this.type = Ft), + (this.lhs = f), + (this.rhs = _), + (this.collator = v), + (this.hasUntypedArgument = + f.type.kind === "value" || _.type.kind === "value"); + } + static parse(f, _) { + if (f.length !== 3 && f.length !== 4) + return _.error("Expected two or three arguments."); + const v = f[0]; + let b = _.parse(f[1], 1, ur); + if (!b) return null; + if (!Ls(v, b.type)) + return _.concat(1).error( + `"${v}" comparisons are not supported for type '${en( + b.type + )}'.` + ); + let S = _.parse(f[2], 2, ur); + if (!S) return null; + if (!Ls(v, S.type)) + return _.concat(2).error( + `"${v}" comparisons are not supported for type '${en( + S.type + )}'.` + ); + if ( + b.type.kind !== S.type.kind && + b.type.kind !== "value" && + S.type.kind !== "value" + ) + return _.error( + `Cannot compare types '${en(b.type)}' and '${en( + S.type + )}'.` + ); + o && + (b.type.kind === "value" && S.type.kind !== "value" + ? (b = new Li(S.type, [b])) + : b.type.kind !== "value" && + S.type.kind === "value" && + (S = new Li(b.type, [S]))); + let I = null; + if (f.length === 4) { + if ( + b.type.kind !== "string" && + S.type.kind !== "string" && + b.type.kind !== "value" && + S.type.kind !== "value" + ) + return _.error( + "Cannot use collator to compare non-string types." + ); + if (((I = _.parse(f[3], 3, rn)), !I)) return null; + } + return new r0(b, S, I); + } + evaluate(f) { + const _ = this.lhs.evaluate(f), + v = this.rhs.evaluate(f); + if (o && this.hasUntypedArgument) { + const b = Rr(_), + S = Rr(v); + if ( + b.kind !== S.kind || + (b.kind !== "string" && b.kind !== "number") + ) + throw new on( + `Expected arguments for "${n}" to be (string, string) or (number, number), but found (${b.kind}, ${S.kind}) instead.` + ); + } + if (this.collator && !o && this.hasUntypedArgument) { + const b = Rr(_), + S = Rr(v); + if (b.kind !== "string" || S.kind !== "string") + return t(f, _, v); + } + return this.collator + ? r(f, _, v, this.collator.evaluate(f)) + : t(f, _, v); + } + eachChild(f) { + f(this.lhs), f(this.rhs), this.collator && f(this.collator); + } + outputDefined() { + return !0; + } + }; + } + const Oh = ji( + "==", + function (n, t, r) { + return t === r; + }, + Ds + ), + yl = ji( + "!=", + function (n, t, r) { + return t !== r; + }, + function (n, t, r, o) { + return !Ds(0, t, r, o); + } + ), + wp = ji( + "<", + function (n, t, r) { + return t < r; + }, + function (n, t, r, o) { + return o.compare(t, r) < 0; + } + ), + zc = ji( + ">", + function (n, t, r) { + return t > r; + }, + function (n, t, r, o) { + return o.compare(t, r) > 0; + } + ), + Tp = ji( + "<=", + function (n, t, r) { + return t <= r; + }, + function (n, t, r, o) { + return o.compare(t, r) <= 0; + } + ), + Cp = ji( + ">=", + function (n, t, r) { + return t >= r; + }, + function (n, t, r, o) { + return o.compare(t, r) >= 0; + } + ); + class xl { + constructor(t, r, o) { + (this.type = rn), + (this.locale = o), + (this.caseSensitive = t), + (this.diacriticSensitive = r); + } + static parse(t, r) { + if (t.length !== 2) return r.error("Expected one argument."); + const o = t[1]; + if (typeof o != "object" || Array.isArray(o)) + return r.error( + "Collator options argument must be an object." + ); + const c = r.parse( + o["case-sensitive"] !== void 0 && o["case-sensitive"], + 1, + Ft + ); + if (!c) return null; + const f = r.parse( + o["diacritic-sensitive"] !== void 0 && + o["diacritic-sensitive"], + 1, + Ft + ); + if (!f) return null; + let _ = null; + return o.locale && ((_ = r.parse(o.locale, 1, At)), !_) + ? null + : new xl(c, f, _); + } + evaluate(t) { + return new Mn( + this.caseSensitive.evaluate(t), + this.diacriticSensitive.evaluate(t), + this.locale ? this.locale.evaluate(t) : null + ); + } + eachChild(t) { + t(this.caseSensitive), + t(this.diacriticSensitive), + this.locale && t(this.locale); + } + outputDefined() { + return !1; + } + } + class Lc { + constructor(t, r, o, c, f) { + (this.type = At), + (this.number = t), + (this.locale = r), + (this.currency = o), + (this.minFractionDigits = c), + (this.maxFractionDigits = f); + } + static parse(t, r) { + if (t.length !== 3) return r.error("Expected two arguments."); + const o = r.parse(t[1], 1, He); + if (!o) return null; + const c = t[2]; + if (typeof c != "object" || Array.isArray(c)) + return r.error( + "NumberFormat options argument must be an object." + ); + let f = null; + if (c.locale && ((f = r.parse(c.locale, 1, At)), !f)) + return null; + let _ = null; + if (c.currency && ((_ = r.parse(c.currency, 1, At)), !_)) + return null; + let v = null; + if ( + c["min-fraction-digits"] && + ((v = r.parse(c["min-fraction-digits"], 1, He)), !v) + ) + return null; + let b = null; + return c["max-fraction-digits"] && + ((b = r.parse(c["max-fraction-digits"], 1, He)), !b) + ? null + : new Lc(o, f, _, v, b); + } + evaluate(t) { + return new Intl.NumberFormat( + this.locale ? this.locale.evaluate(t) : [], + { + style: this.currency ? "currency" : "decimal", + currency: this.currency + ? this.currency.evaluate(t) + : void 0, + minimumFractionDigits: this.minFractionDigits + ? this.minFractionDigits.evaluate(t) + : void 0, + maximumFractionDigits: this.maxFractionDigits + ? this.maxFractionDigits.evaluate(t) + : void 0, + } + ).format(this.number.evaluate(t)); + } + eachChild(t) { + t(this.number), + this.locale && t(this.locale), + this.currency && t(this.currency), + this.minFractionDigits && t(this.minFractionDigits), + this.maxFractionDigits && t(this.maxFractionDigits); + } + outputDefined() { + return !1; + } + } + class ko { + constructor(t) { + (this.type = pn), (this.sections = t); + } + static parse(t, r) { + if (t.length < 2) + return r.error("Expected at least one argument."); + const o = t[1]; + if (!Array.isArray(o) && typeof o == "object") + return r.error( + "First argument must be an image or text section." + ); + const c = []; + let f = !1; + for (let _ = 1; _ <= t.length - 1; ++_) { + const v = t[_]; + if (f && typeof v == "object" && !Array.isArray(v)) { + f = !1; + let b = null; + if ( + v["font-scale"] && + ((b = r.parse(v["font-scale"], 1, He)), !b) + ) + return null; + let S = null; + if ( + v["text-font"] && + ((S = r.parse(v["text-font"], 1, tn(At))), !S) + ) + return null; + let I = null; + if ( + v["text-color"] && + ((I = r.parse(v["text-color"], 1, Jt)), !I) + ) + return null; + let L = null; + if (v["vertical-align"]) { + if ( + typeof v["vertical-align"] == "string" && + !bn.includes(v["vertical-align"]) + ) + return r.error( + `'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${v["vertical-align"]}' instead.` + ); + if (((L = r.parse(v["vertical-align"], 1, At)), !L)) + return null; + } + const F = c[c.length - 1]; + (F.scale = b), + (F.font = S), + (F.textColor = I), + (F.verticalAlign = L); + } else { + const b = r.parse(t[_], 1, ur); + if (!b) return null; + const S = b.type.kind; + if ( + S !== "string" && + S !== "value" && + S !== "null" && + S !== "resolvedImage" + ) + return r.error( + "Formatted text type must be 'string', 'value', 'image' or 'null'." + ); + (f = !0), + c.push({ + content: b, + scale: null, + font: null, + textColor: null, + verticalAlign: null, + }); + } + } + return new ko(c); + } + evaluate(t) { + return new Sn( + this.sections.map((r) => { + const o = r.content.evaluate(t); + return Rr(o) === pr + ? new cn( + "", + o, + null, + null, + null, + r.verticalAlign ? r.verticalAlign.evaluate(t) : null + ) + : new cn( + Gr(o), + null, + r.scale ? r.scale.evaluate(t) : null, + r.font ? r.font.evaluate(t).join(",") : null, + r.textColor ? r.textColor.evaluate(t) : null, + r.verticalAlign ? r.verticalAlign.evaluate(t) : null + ); + }) + ); + } + eachChild(t) { + for (const r of this.sections) + t(r.content), + r.scale && t(r.scale), + r.font && t(r.font), + r.textColor && t(r.textColor), + r.verticalAlign && t(r.verticalAlign); + } + outputDefined() { + return !1; + } + } + class Dc { + constructor(t) { + (this.type = pr), (this.input = t); + } + static parse(t, r) { + if (t.length !== 2) return r.error("Expected two arguments."); + const o = r.parse(t[1], 1, At); + return o ? new Dc(o) : r.error("No image name provided."); + } + evaluate(t) { + const r = this.input.evaluate(t), + o = Hn.fromString(r); + return ( + o && + t.availableImages && + (o.available = t.availableImages.indexOf(r) > -1), + o + ); + } + eachChild(t) { + t(this.input); + } + outputDefined() { + return !1; + } + } + class bl { + constructor(t) { + (this.type = He), (this.input = t); + } + static parse(t, r) { + if (t.length !== 2) + return r.error( + `Expected 1 argument, but found ${t.length - 1} instead.` + ); + const o = r.parse(t[1], 1); + return o + ? o.type.kind !== "array" && + o.type.kind !== "string" && + o.type.kind !== "value" + ? r.error( + `Expected argument of type string or array, but found ${en( + o.type + )} instead.` + ) + : new bl(o) + : null; + } + evaluate(t) { + const r = this.input.evaluate(t); + if (typeof r == "string") return [...r].length; + if (Array.isArray(r)) return r.length; + throw new on( + `Expected value to be of type string or array, but found ${en( + Rr(r) + )} instead.` + ); + } + eachChild(t) { + t(this.input); + } + outputDefined() { + return !1; + } + } + const Pa = 8192; + function Sp(n, t) { + const r = (180 + n[0]) / 360, + o = + (180 - + (180 / Math.PI) * + Math.log( + Math.tan(Math.PI / 4 + (n[1] * Math.PI) / 360) + )) / + 360, + c = Math.pow(2, t.z); + return [Math.round(r * c * Pa), Math.round(o * c * Pa)]; + } + function wl(n, t) { + const r = Math.pow(2, t.z); + return [ + ((c = (n[0] / Pa + t.x) / r), 360 * c - 180), + ((o = (n[1] / Pa + t.y) / r), + (360 / Math.PI) * + Math.atan(Math.exp(((180 - 360 * o) * Math.PI) / 180)) - + 90), + ]; + var o, c; + } + function Rs(n, t) { + (n[0] = Math.min(n[0], t[0])), + (n[1] = Math.min(n[1], t[1])), + (n[2] = Math.max(n[2], t[0])), + (n[3] = Math.max(n[3], t[1])); + } + function Bs(n, t) { + return !( + n[0] <= t[0] || + n[2] >= t[2] || + n[1] <= t[1] || + n[3] >= t[3] + ); + } + function Pp(n, t, r) { + const o = n[0] - t[0], + c = n[1] - t[1], + f = n[0] - r[0], + _ = n[1] - r[1]; + return o * _ - f * c == 0 && o * f <= 0 && c * _ <= 0; + } + function Tl(n, t, r, o) { + return ( + (c = [o[0] - r[0], o[1] - r[1]])[0] * + (f = [t[0] - n[0], t[1] - n[1]])[1] - + c[1] * f[0] != + 0 && !(!jh(n, t, r, o) || !jh(r, o, n, t)) + ); + var c, f; + } + function Ip(n, t, r) { + for (const o of r) + for (let c = 0; c < o.length - 1; ++c) + if (Tl(n, t, o[c], o[c + 1])) return !0; + return !1; + } + function Ao(n, t, r = !1) { + let o = !1; + for (const v of t) + for (let b = 0; b < v.length - 1; b++) { + if (Pp(n, v[b], v[b + 1])) return r; + (f = v[b])[1] > (c = n)[1] != (_ = v[b + 1])[1] > c[1] && + c[0] < + ((_[0] - f[0]) * (c[1] - f[1])) / (_[1] - f[1]) + f[0] && + (o = !o); + } + var c, f, _; + return o; + } + function Nh(n, t) { + for (const r of t) if (Ao(n, r)) return !0; + return !1; + } + function Rc(n, t) { + for (const r of n) if (!Ao(r, t)) return !1; + for (let r = 0; r < n.length - 1; ++r) + if (Ip(n[r], n[r + 1], t)) return !1; + return !0; + } + function Mp(n, t) { + for (const r of t) if (Rc(n, r)) return !0; + return !1; + } + function jh(n, t, r, o) { + const c = o[0] - r[0], + f = o[1] - r[1], + _ = (n[0] - r[0]) * f - c * (n[1] - r[1]), + v = (t[0] - r[0]) * f - c * (t[1] - r[1]); + return (_ > 0 && v < 0) || (_ < 0 && v > 0); + } + function Bc(n, t, r) { + const o = []; + for (let c = 0; c < n.length; c++) { + const f = []; + for (let _ = 0; _ < n[c].length; _++) { + const v = Sp(n[c][_], r); + Rs(t, v), f.push(v); + } + o.push(f); + } + return o; + } + function Vh(n, t, r) { + const o = []; + for (let c = 0; c < n.length; c++) { + const f = Bc(n[c], t, r); + o.push(f); + } + return o; + } + function Cl(n, t, r, o) { + if (n[0] < r[0] || n[0] > r[2]) { + const c = 0.5 * o; + let f = n[0] - r[0] > c ? -o : r[0] - n[0] > c ? o : 0; + f === 0 && (f = n[0] - r[2] > c ? -o : r[2] - n[0] > c ? o : 0), + (n[0] += f); + } + Rs(t, n); + } + function qh(n, t, r, o) { + const c = Math.pow(2, o.z) * Pa, + f = [o.x * Pa, o.y * Pa], + _ = []; + for (const v of n) + for (const b of v) { + const S = [b.x + f[0], b.y + f[1]]; + Cl(S, t, r, c), _.push(S); + } + return _; + } + function Zh(n, t, r, o) { + const c = Math.pow(2, o.z) * Pa, + f = [o.x * Pa, o.y * Pa], + _ = []; + for (const b of n) { + const S = []; + for (const I of b) { + const L = [I.x + f[0], I.y + f[1]]; + Rs(t, L), S.push(L); + } + _.push(S); + } + if (t[2] - t[0] <= c / 2) { + ((v = t)[0] = v[1] = 1 / 0), (v[2] = v[3] = -1 / 0); + for (const b of _) for (const S of b) Cl(S, t, r, c); + } + var v; + return _; + } + class Eo { + constructor(t, r) { + (this.type = Ft), (this.geojson = t), (this.geometries = r); + } + static parse(t, r) { + if (t.length !== 2) + return r.error( + `'within' expression requires exactly one argument, but found ${ + t.length - 1 + } instead.` + ); + if (qa(t[1])) { + const o = t[1]; + if (o.type === "FeatureCollection") { + const c = []; + for (const f of o.features) { + const { type: _, coordinates: v } = f.geometry; + _ === "Polygon" && c.push(v), + _ === "MultiPolygon" && c.push(...v); + } + if (c.length) + return new Eo(o, { + type: "MultiPolygon", + coordinates: c, + }); + } else if (o.type === "Feature") { + const c = o.geometry.type; + if (c === "Polygon" || c === "MultiPolygon") + return new Eo(o, o.geometry); + } else if (o.type === "Polygon" || o.type === "MultiPolygon") + return new Eo(o, o); + } + return r.error( + "'within' expression requires valid geojson object that contains polygon geometry type." + ); + } + evaluate(t) { + if (t.geometry() != null && t.canonicalID() != null) { + if (t.geometryType() === "Point") + return (function (r, o) { + const c = [1 / 0, 1 / 0, -1 / 0, -1 / 0], + f = [1 / 0, 1 / 0, -1 / 0, -1 / 0], + _ = r.canonicalID(); + if (o.type === "Polygon") { + const v = Bc(o.coordinates, f, _), + b = qh(r.geometry(), c, f, _); + if (!Bs(c, f)) return !1; + for (const S of b) if (!Ao(S, v)) return !1; + } + if (o.type === "MultiPolygon") { + const v = Vh(o.coordinates, f, _), + b = qh(r.geometry(), c, f, _); + if (!Bs(c, f)) return !1; + for (const S of b) if (!Nh(S, v)) return !1; + } + return !0; + })(t, this.geometries); + if (t.geometryType() === "LineString") + return (function (r, o) { + const c = [1 / 0, 1 / 0, -1 / 0, -1 / 0], + f = [1 / 0, 1 / 0, -1 / 0, -1 / 0], + _ = r.canonicalID(); + if (o.type === "Polygon") { + const v = Bc(o.coordinates, f, _), + b = Zh(r.geometry(), c, f, _); + if (!Bs(c, f)) return !1; + for (const S of b) if (!Rc(S, v)) return !1; + } + if (o.type === "MultiPolygon") { + const v = Vh(o.coordinates, f, _), + b = Zh(r.geometry(), c, f, _); + if (!Bs(c, f)) return !1; + for (const S of b) if (!Mp(S, v)) return !1; + } + return !0; + })(t, this.geometries); + } + return !1; + } + eachChild() {} + outputDefined() { + return !0; + } + } + let Fc = class { + constructor(n = [], t = (r, o) => (r < o ? -1 : r > o ? 1 : 0)) { + if ( + ((this.data = n), + (this.length = this.data.length), + (this.compare = t), + this.length > 0) + ) + for (let r = (this.length >> 1) - 1; r >= 0; r--) + this._down(r); + } + push(n) { + this.data.push(n), this._up(this.length++); + } + pop() { + if (this.length === 0) return; + const n = this.data[0], + t = this.data.pop(); + return ( + --this.length > 0 && ((this.data[0] = t), this._down(0)), n + ); + } + peek() { + return this.data[0]; + } + _up(n) { + const { data: t, compare: r } = this, + o = t[n]; + for (; n > 0; ) { + const c = (n - 1) >> 1, + f = t[c]; + if (r(o, f) >= 0) break; + (t[n] = f), (n = c); + } + t[n] = o; + } + _down(n) { + const { data: t, compare: r } = this, + o = this.length >> 1, + c = t[n]; + for (; n < o; ) { + let f = 1 + (n << 1); + const _ = f + 1; + if ( + (_ < this.length && r(t[_], t[f]) < 0 && (f = _), + r(t[f], c) >= 0) + ) + break; + (t[n] = t[f]), (n = f); + } + t[n] = c; + } + }; + function Oc(n, t, r = 0, o = n.length - 1, c = kp) { + for (; o > r; ) { + if (o - r > 600) { + const b = o - r + 1, + S = t - r + 1, + I = Math.log(b), + L = 0.5 * Math.exp((2 * I) / 3), + F = + 0.5 * + Math.sqrt((I * L * (b - L)) / b) * + (S - b / 2 < 0 ? -1 : 1); + Oc( + n, + t, + Math.max(r, Math.floor(t - (S * L) / b + F)), + Math.min(o, Math.floor(t + ((b - S) * L) / b + F)), + c + ); + } + const f = n[t]; + let _ = r, + v = o; + for (Fs(n, r, t), c(n[o], f) > 0 && Fs(n, r, o); _ < v; ) { + for (Fs(n, _, v), _++, v--; c(n[_], f) < 0; ) _++; + for (; c(n[v], f) > 0; ) v--; + } + c(n[r], f) === 0 ? Fs(n, r, v) : (v++, Fs(n, v, o)), + v <= t && (r = v + 1), + t <= v && (o = v - 1); + } + } + function Fs(n, t, r) { + const o = n[t]; + (n[t] = n[r]), (n[r] = o); + } + function kp(n, t) { + return n < t ? -1 : n > t ? 1 : 0; + } + function Os(n, t) { + if (n.length <= 1) return [n]; + const r = []; + let o, c; + for (const f of n) { + const _ = Ap(f); + _ !== 0 && + ((f.area = Math.abs(_)), + c === void 0 && (c = _ < 0), + c === _ < 0 ? (o && r.push(o), (o = [f])) : o.push(f)); + } + if ((o && r.push(o), t > 1)) + for (let f = 0; f < r.length; f++) + r[f].length <= t || + (Oc(r[f], t, 1, r[f].length - 1, Uh), + (r[f] = r[f].slice(0, t))); + return r; + } + function Uh(n, t) { + return t.area - n.area; + } + function Ap(n) { + let t = 0; + for (let r, o, c = 0, f = n.length, _ = f - 1; c < f; _ = c++) + (r = n[c]), (o = n[_]), (t += (o.x - r.x) * (r.y + o.y)); + return t; + } + const $h = 1 / 298.257223563, + Gh = $h * (2 - $h), + Nc = Math.PI / 180; + class jc { + constructor(t) { + const r = 6378.137 * Nc * 1e3, + o = Math.cos(t * Nc), + c = 1 / (1 - Gh * (1 - o * o)), + f = Math.sqrt(c); + (this.kx = r * f * o), (this.ky = r * f * c * (1 - Gh)); + } + distance(t, r) { + const o = this.wrap(t[0] - r[0]) * this.kx, + c = (t[1] - r[1]) * this.ky; + return Math.sqrt(o * o + c * c); + } + pointOnLine(t, r) { + let o, + c, + f, + _, + v = 1 / 0; + for (let b = 0; b < t.length - 1; b++) { + let S = t[b][0], + I = t[b][1], + L = this.wrap(t[b + 1][0] - S) * this.kx, + F = (t[b + 1][1] - I) * this.ky, + q = 0; + (L === 0 && F === 0) || + ((q = + (this.wrap(r[0] - S) * this.kx * L + + (r[1] - I) * this.ky * F) / + (L * L + F * F)), + q > 1 + ? ((S = t[b + 1][0]), (I = t[b + 1][1])) + : q > 0 && + ((S += (L / this.kx) * q), (I += (F / this.ky) * q))), + (L = this.wrap(r[0] - S) * this.kx), + (F = (r[1] - I) * this.ky); + const Z = L * L + F * F; + Z < v && ((v = Z), (o = S), (c = I), (f = b), (_ = q)); + } + return { + point: [o, c], + index: f, + t: Math.max(0, Math.min(1, _)), + }; + } + wrap(t) { + for (; t < -180; ) t += 360; + for (; t > 180; ) t -= 360; + return t; + } + } + function Hh(n, t) { + return t[0] - n[0]; + } + function Sl(n) { + return n[1] - n[0] + 1; + } + function eo(n, t) { + return n[1] >= n[0] && n[1] < t; + } + function Pn(n, t) { + if (n[0] > n[1]) return [null, null]; + const r = Sl(n); + if (t) { + if (r === 2) return [n, null]; + const c = Math.floor(r / 2); + return [ + [n[0], n[0] + c], + [n[0] + c, n[1]], + ]; + } + if (r === 1) return [n, null]; + const o = Math.floor(r / 2) - 1; + return [ + [n[0], n[0] + o], + [n[0] + o + 1, n[1]], + ]; + } + function Vc(n, t) { + if (!eo(t, n.length)) return [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + const r = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + for (let o = t[0]; o <= t[1]; ++o) Rs(r, n[o]); + return r; + } + function qc(n) { + const t = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + for (const r of n) for (const o of r) Rs(t, o); + return t; + } + function Wh(n) { + return ( + n[0] !== -1 / 0 && + n[1] !== -1 / 0 && + n[2] !== 1 / 0 && + n[3] !== 1 / 0 + ); + } + function Zc(n, t, r) { + if (!Wh(n) || !Wh(t)) return NaN; + let o = 0, + c = 0; + return ( + n[2] < t[0] && (o = t[0] - n[2]), + n[0] > t[2] && (o = n[0] - t[2]), + n[1] > t[3] && (c = n[1] - t[3]), + n[3] < t[1] && (c = t[1] - n[3]), + r.distance([0, 0], [o, c]) + ); + } + function zo(n, t, r) { + const o = r.pointOnLine(t, n); + return r.distance(n, o.point); + } + function Uc(n, t, r, o, c) { + const f = Math.min(zo(n, [r, o], c), zo(t, [r, o], c)), + _ = Math.min(zo(r, [n, t], c), zo(o, [n, t], c)); + return Math.min(f, _); + } + function Ep(n, t, r, o, c) { + if (!eo(t, n.length) || !eo(o, r.length)) return 1 / 0; + let f = 1 / 0; + for (let _ = t[0]; _ < t[1]; ++_) { + const v = n[_], + b = n[_ + 1]; + for (let S = o[0]; S < o[1]; ++S) { + const I = r[S], + L = r[S + 1]; + if (Tl(v, b, I, L)) return 0; + f = Math.min(f, Uc(v, b, I, L, c)); + } + } + return f; + } + function zp(n, t, r, o, c) { + if (!eo(t, n.length) || !eo(o, r.length)) return NaN; + let f = 1 / 0; + for (let _ = t[0]; _ <= t[1]; ++_) + for (let v = o[0]; v <= o[1]; ++v) + if (((f = Math.min(f, c.distance(n[_], r[v]))), f === 0)) + return f; + return f; + } + function Lp(n, t, r) { + if (Ao(n, t, !0)) return 0; + let o = 1 / 0; + for (const c of t) { + const f = c[0], + _ = c[c.length - 1]; + if (f !== _ && ((o = Math.min(o, zo(n, [_, f], r))), o === 0)) + return o; + const v = r.pointOnLine(c, n); + if (((o = Math.min(o, r.distance(n, v.point))), o === 0)) + return o; + } + return o; + } + function Dp(n, t, r, o) { + if (!eo(t, n.length)) return NaN; + for (let f = t[0]; f <= t[1]; ++f) if (Ao(n[f], r, !0)) return 0; + let c = 1 / 0; + for (let f = t[0]; f < t[1]; ++f) { + const _ = n[f], + v = n[f + 1]; + for (const b of r) + for (let S = 0, I = b.length, L = I - 1; S < I; L = S++) { + const F = b[L], + q = b[S]; + if (Tl(_, v, F, q)) return 0; + c = Math.min(c, Uc(_, v, F, q, o)); + } + } + return c; + } + function Xh(n, t) { + for (const r of n) for (const o of r) if (Ao(o, t, !0)) return !0; + return !1; + } + function Rp(n, t, r, o = 1 / 0) { + const c = qc(n), + f = qc(t); + if (o !== 1 / 0 && Zc(c, f, r) >= o) return o; + if (Bs(c, f)) { + if (Xh(n, t)) return 0; + } else if (Xh(t, n)) return 0; + let _ = 1 / 0; + for (const v of n) + for (let b = 0, S = v.length, I = S - 1; b < S; I = b++) { + const L = v[I], + F = v[b]; + for (const q of t) + for (let Z = 0, W = q.length, J = W - 1; Z < W; J = Z++) { + const le = q[J], + Re = q[Z]; + if (Tl(L, F, le, Re)) return 0; + _ = Math.min(_, Uc(L, F, le, Re, r)); + } + } + return _; + } + function Yh(n, t, r, o, c, f) { + if (!f) return; + const _ = Zc(Vc(o, f), c, r); + _ < t && n.push([_, f, [0, 0]]); + } + function Pl(n, t, r, o, c, f, _) { + if (!f || !_) return; + const v = Zc(Vc(o, f), Vc(c, _), r); + v < t && n.push([v, f, _]); + } + function Il(n, t, r, o, c = 1 / 0) { + let f = Math.min(o.distance(n[0], r[0][0]), c); + if (f === 0) return f; + const _ = new Fc([[0, [0, n.length - 1], [0, 0]]], Hh), + v = qc(r); + for (; _.length > 0; ) { + const b = _.pop(); + if (b[0] >= f) continue; + const S = b[1], + I = t ? 50 : 100; + if (Sl(S) <= I) { + if (!eo(S, n.length)) return NaN; + if (t) { + const L = Dp(n, S, r, o); + if (isNaN(L) || L === 0) return L; + f = Math.min(f, L); + } else + for (let L = S[0]; L <= S[1]; ++L) { + const F = Lp(n[L], r, o); + if (((f = Math.min(f, F)), f === 0)) return 0; + } + } else { + const L = Pn(S, t); + Yh(_, f, o, n, v, L[0]), Yh(_, f, o, n, v, L[1]); + } + } + return f; + } + function Ml(n, t, r, o, c, f = 1 / 0) { + let _ = Math.min(f, c.distance(n[0], r[0])); + if (_ === 0) return _; + const v = new Fc([[0, [0, n.length - 1], [0, r.length - 1]]], Hh); + for (; v.length > 0; ) { + const b = v.pop(); + if (b[0] >= _) continue; + const S = b[1], + I = b[2], + L = t ? 50 : 100, + F = o ? 50 : 100; + if (Sl(S) <= L && Sl(I) <= F) { + if (!eo(S, n.length) && eo(I, r.length)) return NaN; + let q; + if (t && o) (q = Ep(n, S, r, I, c)), (_ = Math.min(_, q)); + else if (t && !o) { + const Z = n.slice(S[0], S[1] + 1); + for (let W = I[0]; W <= I[1]; ++W) + if (((q = zo(r[W], Z, c)), (_ = Math.min(_, q)), _ === 0)) + return _; + } else if (!t && o) { + const Z = r.slice(I[0], I[1] + 1); + for (let W = S[0]; W <= S[1]; ++W) + if (((q = zo(n[W], Z, c)), (_ = Math.min(_, q)), _ === 0)) + return _; + } else (q = zp(n, S, r, I, c)), (_ = Math.min(_, q)); + } else { + const q = Pn(S, t), + Z = Pn(I, o); + Pl(v, _, c, n, r, q[0], Z[0]), + Pl(v, _, c, n, r, q[0], Z[1]), + Pl(v, _, c, n, r, q[1], Z[0]), + Pl(v, _, c, n, r, q[1], Z[1]); + } + } + return _; + } + function $c(n) { + return n.type === "MultiPolygon" + ? n.coordinates.map((t) => ({ + type: "Polygon", + coordinates: t, + })) + : n.type === "MultiLineString" + ? n.coordinates.map((t) => ({ + type: "LineString", + coordinates: t, + })) + : n.type === "MultiPoint" + ? n.coordinates.map((t) => ({ type: "Point", coordinates: t })) + : [n]; + } + class Lo { + constructor(t, r) { + (this.type = He), (this.geojson = t), (this.geometries = r); + } + static parse(t, r) { + if (t.length !== 2) + return r.error( + `'distance' expression requires exactly one argument, but found ${ + t.length - 1 + } instead.` + ); + if (qa(t[1])) { + const o = t[1]; + if (o.type === "FeatureCollection") + return new Lo( + o, + o.features.map((c) => $c(c.geometry)).flat() + ); + if (o.type === "Feature") return new Lo(o, $c(o.geometry)); + if ("type" in o && "coordinates" in o) + return new Lo(o, $c(o)); + } + return r.error( + "'distance' expression requires valid geojson object that contains polygon geometry type." + ); + } + evaluate(t) { + if (t.geometry() != null && t.canonicalID() != null) { + if (t.geometryType() === "Point") + return (function (r, o) { + const c = r.geometry(), + f = c.flat().map((b) => wl([b.x, b.y], r.canonical)); + if (c.length === 0) return NaN; + const _ = new jc(f[0][1]); + let v = 1 / 0; + for (const b of o) { + switch (b.type) { + case "Point": + v = Math.min( + v, + Ml(f, !1, [b.coordinates], !1, _, v) + ); + break; + case "LineString": + v = Math.min(v, Ml(f, !1, b.coordinates, !0, _, v)); + break; + case "Polygon": + v = Math.min(v, Il(f, !1, b.coordinates, _, v)); + } + if (v === 0) return v; + } + return v; + })(t, this.geometries); + if (t.geometryType() === "LineString") + return (function (r, o) { + const c = r.geometry(), + f = c.flat().map((b) => wl([b.x, b.y], r.canonical)); + if (c.length === 0) return NaN; + const _ = new jc(f[0][1]); + let v = 1 / 0; + for (const b of o) { + switch (b.type) { + case "Point": + v = Math.min( + v, + Ml(f, !0, [b.coordinates], !1, _, v) + ); + break; + case "LineString": + v = Math.min(v, Ml(f, !0, b.coordinates, !0, _, v)); + break; + case "Polygon": + v = Math.min(v, Il(f, !0, b.coordinates, _, v)); + } + if (v === 0) return v; + } + return v; + })(t, this.geometries); + if (t.geometryType() === "Polygon") + return (function (r, o) { + const c = r.geometry(); + if (c.length === 0 || c[0].length === 0) return NaN; + const f = Os(c, 0).map((b) => + b.map((S) => + S.map((I) => wl([I.x, I.y], r.canonical)) + ) + ), + _ = new jc(f[0][0][0][1]); + let v = 1 / 0; + for (const b of o) + for (const S of f) { + switch (b.type) { + case "Point": + v = Math.min(v, Il([b.coordinates], !1, S, _, v)); + break; + case "LineString": + v = Math.min(v, Il(b.coordinates, !0, S, _, v)); + break; + case "Polygon": + v = Math.min(v, Rp(S, b.coordinates, _, v)); + } + if (v === 0) return v; + } + return v; + })(t, this.geometries); + } + return NaN; + } + eachChild() {} + outputDefined() { + return !0; + } + } + class Ns { + constructor(t) { + (this.type = ur), (this.key = t); + } + static parse(t, r) { + if (t.length !== 2) + return r.error( + `Expected 1 argument, but found ${t.length - 1} instead.` + ); + const o = t[1]; + return o == null + ? r.error("Global state property must be defined.") + : typeof o != "string" + ? r.error( + `Global state property must be string, but found ${typeof t[1]} instead.` + ) + : new Ns(o); + } + evaluate(t) { + var r; + const o = + (r = t.globals) === null || r === void 0 + ? void 0 + : r.globalState; + return o && Object.keys(o).length !== 0 + ? sr(o, this.key) + : null; + } + eachChild() {} + outputDefined() { + return !1; + } + } + const ts = { + "==": Oh, + "!=": yl, + ">": zc, + "<": wp, + ">=": Cp, + "<=": Tp, + array: Li, + at: gl, + boolean: Li, + case: Qo, + coalesce: zs, + collator: xl, + format: ko, + image: Dc, + in: vl, + "index-of": Sa, + interpolate: Di, + "interpolate-hcl": Di, + "interpolate-lab": Di, + length: bl, + let: Qa, + literal: _a, + match: Ti, + number: Li, + "number-format": Lc, + object: Li, + slice: ks, + step: ei, + string: Li, + "to-boolean": sa, + "to-color": sa, + "to-number": sa, + "to-string": sa, + var: Jo, + within: Eo, + distance: Lo, + "global-state": Ns, + }; + class va { + constructor(t, r, o, c) { + (this.name = t), + (this.type = r), + (this._evaluate = o), + (this.args = c); + } + evaluate(t) { + return this._evaluate(t, this.args); + } + eachChild(t) { + this.args.forEach(t); + } + outputDefined() { + return !1; + } + static parse(t, r) { + const o = t[0], + c = va.definitions[o]; + if (!c) + return r.error( + `Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`, + 0 + ); + const f = Array.isArray(c) ? c[0] : c.type, + _ = Array.isArray(c) ? [[c[1], c[2]]] : c.overloads, + v = _.filter( + ([S]) => !Array.isArray(S) || S.length === t.length - 1 + ); + let b = null; + for (const [S, I] of v) { + b = new Ca(r.registry, kl, r.path, null, r.scope); + const L = []; + let F = !1; + for (let q = 1; q < t.length; q++) { + const Z = t[q], + W = Array.isArray(S) ? S[q - 1] : S.type, + J = b.parse(Z, 1 + L.length, W); + if (!J) { + F = !0; + break; + } + L.push(J); + } + if (!F) + if (Array.isArray(S) && S.length !== L.length) + b.error( + `Expected ${S.length} arguments, but found ${L.length} instead.` + ); + else { + for (let q = 0; q < L.length; q++) { + const Z = Array.isArray(S) ? S[q] : S.type, + W = L[q]; + b.concat(q + 1).checkSubtype(Z, W.type); + } + if (b.errors.length === 0) return new va(o, f, I, L); + } + } + if (v.length === 1) r.errors.push(...b.errors); + else { + const S = (v.length ? v : _) + .map(([L]) => { + return ( + (F = L), + Array.isArray(F) + ? `(${F.map(en).join(", ")})` + : `(${en(F.type)}...)` + ); + var F; + }) + .join(" | "), + I = []; + for (let L = 1; L < t.length; L++) { + const F = r.parse(t[L], 1 + I.length); + if (!F) return null; + I.push(en(F.type)); + } + r.error( + `Expected arguments of type ${S}, but found (${I.join( + ", " + )}) instead.` + ); + } + return null; + } + static register(t, r) { + va.definitions = r; + for (const o in r) t[o] = va; + } + } + function Kh(n, [t, r, o, c]) { + (t = t.evaluate(n)), (r = r.evaluate(n)), (o = o.evaluate(n)); + const f = c ? c.evaluate(n) : 1, + _ = zn(t, r, o, f); + if (_) throw new on(_); + return new Mr(t / 255, r / 255, o / 255, f, !1); + } + function Jh(n, t) { + return n in t; + } + function Gc(n, t) { + const r = t[n]; + return r === void 0 ? null : r; + } + function Do(n) { + return { type: n }; + } + function kl(n) { + if (n instanceof Jo) return kl(n.boundExpression); + if ( + (n instanceof va && n.name === "error") || + n instanceof xl || + n instanceof Eo || + n instanceof Lo || + n instanceof Ns + ) + return !1; + const t = n instanceof sa || n instanceof Li; + let r = !0; + return ( + n.eachChild((o) => { + r = t ? r && kl(o) : r && o instanceof _a; + }), + !!r && + Al(n) && + El(n, [ + "zoom", + "heatmap-density", + "elevation", + "line-progress", + "accumulated", + "is-supported-script", + ]) + ); + } + function Al(n) { + if ( + (n instanceof va && + ((n.name === "get" && n.args.length === 1) || + n.name === "feature-state" || + (n.name === "has" && n.args.length === 1) || + n.name === "properties" || + n.name === "geometry-type" || + n.name === "id" || + /^filter-/.test(n.name))) || + n instanceof Eo || + n instanceof Lo + ) + return !1; + let t = !0; + return ( + n.eachChild((r) => { + t && !Al(r) && (t = !1); + }), + t + ); + } + function js(n) { + if (n instanceof va && n.name === "feature-state") return !1; + let t = !0; + return ( + n.eachChild((r) => { + t && !js(r) && (t = !1); + }), + t + ); + } + function El(n, t) { + if (n instanceof va && t.indexOf(n.name) >= 0) return !1; + let r = !0; + return ( + n.eachChild((o) => { + r && !El(o, t) && (r = !1); + }), + r + ); + } + function Qh(n) { + return { result: "success", value: n }; + } + function rs(n) { + return { result: "error", value: n }; + } + function fo(n) { + return ( + n["property-type"] === "data-driven" || + n["property-type"] === "cross-faded-data-driven" + ); + } + function ed(n) { + return ( + !!n.expression && n.expression.parameters.indexOf("zoom") > -1 + ); + } + function Hc(n) { + return !!n.expression && n.expression.interpolated; + } + function sn(n) { + return n instanceof Number + ? "number" + : n instanceof String + ? "string" + : n instanceof Boolean + ? "boolean" + : Array.isArray(n) + ? "array" + : n === null + ? "null" + : typeof n; + } + function Vs(n) { + return ( + typeof n == "object" && + n !== null && + !Array.isArray(n) && + Rr(n) === Er + ); + } + function Bp(n) { + return n; + } + function td(n, t) { + const r = n.stops && typeof n.stops[0][0] == "object", + o = r || !(r || n.property !== void 0), + c = n.type || (Hc(t) ? "exponential" : "interval"), + f = (function (I) { + switch (I.type) { + case "color": + return Mr.parse; + case "padding": + return kn.parse; + case "numberArray": + return vn.parse; + case "colorArray": + return fn.parse; + default: + return null; + } + })(t); + if ( + (f && + ((n = Xr({}, n)).stops && + (n.stops = n.stops.map((I) => [I[0], f(I[1])])), + (n.default = f(n.default ? n.default : t.default))), + n.colorSpace && + (_ = n.colorSpace) !== "rgb" && + _ !== "hcl" && + _ !== "lab") + ) + throw new Error(`Unknown color space: "${n.colorSpace}"`); + var _; + const v = (function (I) { + switch (I) { + case "exponential": + return nd; + case "interval": + return Fp; + case "categorical": + return rd; + case "identity": + return Op; + default: + throw new Error(`Unknown function type "${I}"`); + } + })(c); + let b, S; + if (c === "categorical") { + b = Object.create(null); + for (const I of n.stops) b[I[0]] = I[1]; + S = typeof n.stops[0][0]; + } + if (r) { + const I = {}, + L = []; + for (let Z = 0; Z < n.stops.length; Z++) { + const W = n.stops[Z], + J = W[0].zoom; + I[J] === void 0 && + ((I[J] = { + zoom: J, + type: n.type, + property: n.property, + default: n.default, + stops: [], + }), + L.push(J)), + I[J].stops.push([W[0].value, W[1]]); + } + const F = []; + for (const Z of L) F.push([I[Z].zoom, td(I[Z], t)]); + const q = { name: "linear" }; + return { + kind: "composite", + interpolationType: q, + interpolationFactor: Di.interpolationFactor.bind(void 0, q), + zoomStops: F.map((Z) => Z[0]), + evaluate: ({ zoom: Z }, W) => + nd({ stops: F, base: n.base }, t, Z).evaluate(Z, W), + }; + } + if (o) { + const I = + c === "exponential" + ? { + name: "exponential", + base: n.base !== void 0 ? n.base : 1, + } + : null; + return { + kind: "camera", + interpolationType: I, + interpolationFactor: Di.interpolationFactor.bind(void 0, I), + zoomStops: n.stops.map((L) => L[0]), + evaluate: ({ zoom: L }) => v(n, t, L, b, S), + }; + } + return { + kind: "source", + evaluate(I, L) { + const F = + L && L.properties ? L.properties[n.property] : void 0; + return F === void 0 + ? mo(n.default, t.default) + : v(n, t, F, b, S); + }, + }; + } + function mo(n, t, r) { + return n !== void 0 + ? n + : t !== void 0 + ? t + : r !== void 0 + ? r + : void 0; + } + function rd(n, t, r, o, c) { + return mo(typeof r === c ? o[r] : void 0, n.default, t.default); + } + function Fp(n, t, r) { + if (sn(r) !== "number") return mo(n.default, t.default); + const o = n.stops.length; + if (o === 1 || r <= n.stops[0][0]) return n.stops[0][1]; + if (r >= n.stops[o - 1][0]) return n.stops[o - 1][1]; + const c = Mo( + n.stops.map((f) => f[0]), + r + ); + return n.stops[c][1]; + } + function nd(n, t, r) { + const o = n.base !== void 0 ? n.base : 1; + if (sn(r) !== "number") return mo(n.default, t.default); + const c = n.stops.length; + if (c === 1 || r <= n.stops[0][0]) return n.stops[0][1]; + if (r >= n.stops[c - 1][0]) return n.stops[c - 1][1]; + const f = Mo( + n.stops.map((I) => I[0]), + r + ), + _ = (function (I, L, F, q) { + const Z = q - F, + W = I - F; + return Z === 0 + ? 0 + : L === 1 + ? W / Z + : (Math.pow(L, W) - 1) / (Math.pow(L, Z) - 1); + })(r, o, n.stops[f][0], n.stops[f + 1][0]), + v = n.stops[f][1], + b = n.stops[f + 1][1], + S = Za[t.type] || Bp; + return typeof v.evaluate == "function" + ? { + evaluate(...I) { + const L = v.evaluate.apply(void 0, I), + F = b.evaluate.apply(void 0, I); + if (L !== void 0 && F !== void 0) + return S(L, F, _, n.colorSpace); + }, + } + : S(v, b, _, n.colorSpace); + } + function Op(n, t, r) { + switch (t.type) { + case "color": + r = Mr.parse(r); + break; + case "formatted": + r = Sn.fromString(r.toString()); + break; + case "resolvedImage": + r = Hn.fromString(r.toString()); + break; + case "padding": + r = kn.parse(r); + break; + case "colorArray": + r = fn.parse(r); + break; + case "numberArray": + r = vn.parse(r); + break; + default: + sn(r) === t.type || + (t.type === "enum" && t.values[r]) || + (r = void 0); + } + return mo(r, n.default, t.default); + } + va.register(ts, { + error: [ + { kind: "error" }, + [At], + (n, [t]) => { + throw new on(t.evaluate(n)); + }, + ], + typeof: [At, [ur], (n, [t]) => en(Rr(t.evaluate(n)))], + "to-rgba": [ + tn(He, 4), + [Jt], + (n, [t]) => { + const [r, o, c, f] = t.evaluate(n).rgb; + return [255 * r, 255 * o, 255 * c, f]; + }, + ], + rgb: [Jt, [He, He, He], Kh], + rgba: [Jt, [He, He, He, He], Kh], + has: { + type: Ft, + overloads: [ + [[At], (n, [t]) => Jh(t.evaluate(n), n.properties())], + [[At, Er], (n, [t, r]) => Jh(t.evaluate(n), r.evaluate(n))], + ], + }, + get: { + type: ur, + overloads: [ + [[At], (n, [t]) => Gc(t.evaluate(n), n.properties())], + [[At, Er], (n, [t, r]) => Gc(t.evaluate(n), r.evaluate(n))], + ], + }, + "feature-state": [ + ur, + [At], + (n, [t]) => Gc(t.evaluate(n), n.featureState || {}), + ], + properties: [Er, [], (n) => n.properties()], + "geometry-type": [At, [], (n) => n.geometryType()], + id: [ur, [], (n) => n.id()], + zoom: [He, [], (n) => n.globals.zoom], + "heatmap-density": [He, [], (n) => n.globals.heatmapDensity || 0], + elevation: [He, [], (n) => n.globals.elevation || 0], + "line-progress": [He, [], (n) => n.globals.lineProgress || 0], + accumulated: [ + ur, + [], + (n) => + n.globals.accumulated === void 0 + ? null + : n.globals.accumulated, + ], + "+": [ + He, + Do(He), + (n, t) => { + let r = 0; + for (const o of t) r += o.evaluate(n); + return r; + }, + ], + "*": [ + He, + Do(He), + (n, t) => { + let r = 1; + for (const o of t) r *= o.evaluate(n); + return r; + }, + ], + "-": { + type: He, + overloads: [ + [[He, He], (n, [t, r]) => t.evaluate(n) - r.evaluate(n)], + [[He], (n, [t]) => -t.evaluate(n)], + ], + }, + "/": [He, [He, He], (n, [t, r]) => t.evaluate(n) / r.evaluate(n)], + "%": [He, [He, He], (n, [t, r]) => t.evaluate(n) % r.evaluate(n)], + ln2: [He, [], () => Math.LN2], + pi: [He, [], () => Math.PI], + e: [He, [], () => Math.E], + "^": [ + He, + [He, He], + (n, [t, r]) => Math.pow(t.evaluate(n), r.evaluate(n)), + ], + sqrt: [He, [He], (n, [t]) => Math.sqrt(t.evaluate(n))], + log10: [ + He, + [He], + (n, [t]) => Math.log(t.evaluate(n)) / Math.LN10, + ], + ln: [He, [He], (n, [t]) => Math.log(t.evaluate(n))], + log2: [He, [He], (n, [t]) => Math.log(t.evaluate(n)) / Math.LN2], + sin: [He, [He], (n, [t]) => Math.sin(t.evaluate(n))], + cos: [He, [He], (n, [t]) => Math.cos(t.evaluate(n))], + tan: [He, [He], (n, [t]) => Math.tan(t.evaluate(n))], + asin: [He, [He], (n, [t]) => Math.asin(t.evaluate(n))], + acos: [He, [He], (n, [t]) => Math.acos(t.evaluate(n))], + atan: [He, [He], (n, [t]) => Math.atan(t.evaluate(n))], + min: [ + He, + Do(He), + (n, t) => Math.min(...t.map((r) => r.evaluate(n))), + ], + max: [ + He, + Do(He), + (n, t) => Math.max(...t.map((r) => r.evaluate(n))), + ], + abs: [He, [He], (n, [t]) => Math.abs(t.evaluate(n))], + round: [ + He, + [He], + (n, [t]) => { + const r = t.evaluate(n); + return r < 0 ? -Math.round(-r) : Math.round(r); + }, + ], + floor: [He, [He], (n, [t]) => Math.floor(t.evaluate(n))], + ceil: [He, [He], (n, [t]) => Math.ceil(t.evaluate(n))], + "filter-==": [ + Ft, + [At, ur], + (n, [t, r]) => n.properties()[t.value] === r.value, + ], + "filter-id-==": [Ft, [ur], (n, [t]) => n.id() === t.value], + "filter-type-==": [ + Ft, + [At], + (n, [t]) => n.geometryType() === t.value, + ], + "filter-<": [ + Ft, + [At, ur], + (n, [t, r]) => { + const o = n.properties()[t.value], + c = r.value; + return typeof o == typeof c && o < c; + }, + ], + "filter-id-<": [ + Ft, + [ur], + (n, [t]) => { + const r = n.id(), + o = t.value; + return typeof r == typeof o && r < o; + }, + ], + "filter->": [ + Ft, + [At, ur], + (n, [t, r]) => { + const o = n.properties()[t.value], + c = r.value; + return typeof o == typeof c && o > c; + }, + ], + "filter-id->": [ + Ft, + [ur], + (n, [t]) => { + const r = n.id(), + o = t.value; + return typeof r == typeof o && r > o; + }, + ], + "filter-<=": [ + Ft, + [At, ur], + (n, [t, r]) => { + const o = n.properties()[t.value], + c = r.value; + return typeof o == typeof c && o <= c; + }, + ], + "filter-id-<=": [ + Ft, + [ur], + (n, [t]) => { + const r = n.id(), + o = t.value; + return typeof r == typeof o && r <= o; + }, + ], + "filter->=": [ + Ft, + [At, ur], + (n, [t, r]) => { + const o = n.properties()[t.value], + c = r.value; + return typeof o == typeof c && o >= c; + }, + ], + "filter-id->=": [ + Ft, + [ur], + (n, [t]) => { + const r = n.id(), + o = t.value; + return typeof r == typeof o && r >= o; + }, + ], + "filter-has": [Ft, [ur], (n, [t]) => t.value in n.properties()], + "filter-has-id": [ + Ft, + [], + (n) => n.id() !== null && n.id() !== void 0, + ], + "filter-type-in": [ + Ft, + [tn(At)], + (n, [t]) => t.value.indexOf(n.geometryType()) >= 0, + ], + "filter-id-in": [ + Ft, + [tn(ur)], + (n, [t]) => t.value.indexOf(n.id()) >= 0, + ], + "filter-in-small": [ + Ft, + [At, tn(ur)], + (n, [t, r]) => r.value.indexOf(n.properties()[t.value]) >= 0, + ], + "filter-in-large": [ + Ft, + [At, tn(ur)], + (n, [t, r]) => + (function (o, c, f, _) { + for (; f <= _; ) { + const v = (f + _) >> 1; + if (c[v] === o) return !0; + c[v] > o ? (_ = v - 1) : (f = v + 1); + } + return !1; + })(n.properties()[t.value], r.value, 0, r.value.length - 1), + ], + all: { + type: Ft, + overloads: [ + [[Ft, Ft], (n, [t, r]) => t.evaluate(n) && r.evaluate(n)], + [ + Do(Ft), + (n, t) => { + for (const r of t) if (!r.evaluate(n)) return !1; + return !0; + }, + ], + ], + }, + any: { + type: Ft, + overloads: [ + [[Ft, Ft], (n, [t, r]) => t.evaluate(n) || r.evaluate(n)], + [ + Do(Ft), + (n, t) => { + for (const r of t) if (r.evaluate(n)) return !0; + return !1; + }, + ], + ], + }, + "!": [Ft, [Ft], (n, [t]) => !t.evaluate(n)], + "is-supported-script": [ + Ft, + [At], + (n, [t]) => { + const r = n.globals && n.globals.isSupportedScript; + return !r || r(t.evaluate(n)); + }, + ], + upcase: [At, [At], (n, [t]) => t.evaluate(n).toUpperCase()], + downcase: [At, [At], (n, [t]) => t.evaluate(n).toLowerCase()], + concat: [ + At, + Do(ur), + (n, t) => t.map((r) => Gr(r.evaluate(n))).join(""), + ], + "resolved-locale": [ + At, + [rn], + (n, [t]) => t.evaluate(n).resolvedLocale(), + ], + }); + class Wc { + constructor(t, r) { + (this.expression = t), + (this._warningHistory = {}), + (this._evaluator = new Ms()), + (this._defaultValue = r + ? (function (o) { + if (o.type === "color" && Vs(o.default)) + return new Mr(0, 0, 0, 0); + switch (o.type) { + case "color": + return Mr.parse(o.default) || null; + case "padding": + return kn.parse(o.default) || null; + case "numberArray": + return vn.parse(o.default) || null; + case "colorArray": + return fn.parse(o.default) || null; + case "variableAnchorOffsetCollection": + return fi.parse(o.default) || null; + case "projectionDefinition": + return jn.parse(o.default) || null; + default: + return o.default === void 0 ? null : o.default; + } + })(r) + : null), + (this._enumValues = r && r.type === "enum" ? r.values : null); + } + evaluateWithoutErrorHandling(t, r, o, c, f, _) { + return ( + (this._evaluator.globals = t), + (this._evaluator.feature = r), + (this._evaluator.featureState = o), + (this._evaluator.canonical = c), + (this._evaluator.availableImages = f || null), + (this._evaluator.formattedSection = _), + this.expression.evaluate(this._evaluator) + ); + } + evaluate(t, r, o, c, f, _) { + (this._evaluator.globals = t), + (this._evaluator.feature = r || null), + (this._evaluator.featureState = o || null), + (this._evaluator.canonical = c), + (this._evaluator.availableImages = f || null), + (this._evaluator.formattedSection = _ || null); + try { + const v = this.expression.evaluate(this._evaluator); + if (v == null || (typeof v == "number" && v != v)) + return this._defaultValue; + if (this._enumValues && !(v in this._enumValues)) + throw new on( + `Expected value to be one of ${Object.keys( + this._enumValues + ) + .map((b) => JSON.stringify(b)) + .join(", ")}, but found ${JSON.stringify(v)} instead.` + ); + return v; + } catch (v) { + return ( + this._warningHistory[v.message] || + ((this._warningHistory[v.message] = !0), + typeof console < "u" && console.warn(v.message)), + this._defaultValue + ); + } + } + } + function zl(n) { + return ( + Array.isArray(n) && + n.length > 0 && + typeof n[0] == "string" && + n[0] in ts + ); + } + function qs(n, t) { + const r = new Ca( + ts, + kl, + [], + t + ? (function (c) { + const f = { + color: Jt, + string: At, + number: He, + enum: At, + boolean: Ft, + formatted: pn, + padding: gn, + numberArray: En, + colorArray: ln, + projectionDefinition: Cr, + resolvedImage: pr, + variableAnchorOffsetCollection: In, + }; + return c.type === "array" + ? tn(f[c.value] || ur, c.length) + : f[c.type]; + })(t) + : void 0 + ), + o = r.parse( + n, + void 0, + void 0, + void 0, + t && t.type === "string" + ? { typeAnnotation: "coerce" } + : void 0 + ); + return o ? Qh(new Wc(o, t)) : rs(r.errors); + } + class Zs { + constructor(t, r) { + (this.kind = t), + (this._styleExpression = r), + (this.isStateDependent = + t !== "constant" && !js(r.expression)), + (this.globalStateRefs = Gs(r.expression)); + } + evaluateWithoutErrorHandling(t, r, o, c, f, _) { + return this._styleExpression.evaluateWithoutErrorHandling( + t, + r, + o, + c, + f, + _ + ); + } + evaluate(t, r, o, c, f, _) { + return this._styleExpression.evaluate(t, r, o, c, f, _); + } + } + class Xc { + constructor(t, r, o, c) { + (this.kind = t), + (this.zoomStops = o), + (this._styleExpression = r), + (this.isStateDependent = t !== "camera" && !js(r.expression)), + (this.globalStateRefs = Gs(r.expression)), + (this.interpolationType = c); + } + evaluateWithoutErrorHandling(t, r, o, c, f, _) { + return this._styleExpression.evaluateWithoutErrorHandling( + t, + r, + o, + c, + f, + _ + ); + } + evaluate(t, r, o, c, f, _) { + return this._styleExpression.evaluate(t, r, o, c, f, _); + } + interpolationFactor(t, r, o) { + return this.interpolationType + ? Di.interpolationFactor(this.interpolationType, t, r, o) + : 0; + } + } + function id(n, t) { + const r = qs(n, t); + if (r.result === "error") return r; + const o = r.value.expression, + c = Al(o); + if (!c && !fo(t)) + return rs([new Yr("", "data expressions not supported")]); + const f = El(o, ["zoom"]); + if (!f && !ed(t)) + return rs([new Yr("", "zoom expressions not supported")]); + const _ = $s(o); + return _ || f + ? _ instanceof Yr + ? rs([_]) + : _ instanceof Di && !Hc(t) + ? rs([ + new Yr( + "", + '"interpolate" expressions cannot be used with this property' + ), + ]) + : Qh( + _ + ? new Xc( + c ? "camera" : "composite", + r.value, + _.labels, + _ instanceof Di ? _.interpolation : void 0 + ) + : new Zs(c ? "constant" : "source", r.value) + ) + : rs([ + new Yr( + "", + '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.' + ), + ]); + } + class Us { + constructor(t, r) { + (this._parameters = t), + (this._specification = r), + Xr(this, td(this._parameters, this._specification)); + } + static deserialize(t) { + return new Us(t._parameters, t._specification); + } + static serialize(t) { + return { + _parameters: t._parameters, + _specification: t._specification, + }; + } + } + function $s(n) { + let t = null; + if (n instanceof Qa) t = $s(n.result); + else if (n instanceof zs) { + for (const r of n.args) if (((t = $s(r)), t)) break; + } else + (n instanceof ei || n instanceof Di) && + n.input instanceof va && + n.input.name === "zoom" && + (t = n); + return ( + t instanceof Yr || + n.eachChild((r) => { + const o = $s(r); + o instanceof Yr + ? (t = o) + : !t && o + ? (t = new Yr( + "", + '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.' + )) + : t && + o && + t !== o && + (t = new Yr( + "", + 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.' + )); + }), + t + ); + } + function Gs(n, t = new Set()) { + return ( + n instanceof Ns && t.add(n.key), + n.eachChild((r) => { + Gs(r, t); + }), + t + ); + } + function Ll(n) { + if (n === !0 || n === !1) return !0; + if (!Array.isArray(n) || n.length === 0) return !1; + switch (n[0]) { + case "has": + return n.length >= 2 && n[1] !== "$id" && n[1] !== "$type"; + case "in": + return ( + n.length >= 3 && + (typeof n[1] != "string" || Array.isArray(n[2])) + ); + case "!in": + case "!has": + case "none": + return !1; + case "==": + case "!=": + case ">": + case ">=": + case "<": + case "<=": + return ( + n.length !== 3 || Array.isArray(n[1]) || Array.isArray(n[2]) + ); + case "any": + case "all": + for (const t of n.slice(1)) + if (!Ll(t) && typeof t != "boolean") return !1; + return !0; + default: + return !0; + } + } + const Yc = { + type: "boolean", + default: !1, + transition: !1, + "property-type": "data-driven", + expression: { interpolated: !1, parameters: ["zoom", "feature"] }, + }; + function Ro(n) { + if (n == null) + return { + filter: () => !0, + needGeometry: !1, + getGlobalStateRefs: () => new Set(), + }; + Ll(n) || (n = Bo(n)); + const t = qs(n, Yc); + if (t.result === "error") + throw new Error( + t.value.map((r) => `${r.key}: ${r.message}`).join(", ") + ); + return { + filter: (r, o, c) => t.value.evaluate(r, o, {}, c), + needGeometry: Dl(n), + getGlobalStateRefs: () => Gs(t.value.expression), + }; + } + function Kc(n, t) { + return n < t ? -1 : n > t ? 1 : 0; + } + function Dl(n) { + if (!Array.isArray(n)) return !1; + if (n[0] === "within" || n[0] === "distance") return !0; + for (let t = 1; t < n.length; t++) if (Dl(n[t])) return !0; + return !1; + } + function Bo(n) { + if (!n) return !0; + const t = n[0]; + return n.length <= 1 + ? t !== "any" + : t === "==" + ? Jc(n[1], n[2], "==") + : t === "!=" + ? Rl(Jc(n[1], n[2], "==")) + : t === "<" || t === ">" || t === "<=" || t === ">=" + ? Jc(n[1], n[2], t) + : t === "any" + ? ((r = n.slice(1)), ["any"].concat(r.map(Bo))) + : t === "all" + ? ["all"].concat(n.slice(1).map(Bo)) + : t === "none" + ? ["all"].concat(n.slice(1).map(Bo).map(Rl)) + : t === "in" + ? ad(n[1], n.slice(2)) + : t === "!in" + ? Rl(ad(n[1], n.slice(2))) + : t === "has" + ? od(n[1]) + : t !== "!has" || Rl(od(n[1])); + var r; + } + function Jc(n, t, r) { + switch (n) { + case "$type": + return [`filter-type-${r}`, t]; + case "$id": + return [`filter-id-${r}`, t]; + default: + return [`filter-${r}`, n, t]; + } + } + function ad(n, t) { + if (t.length === 0) return !1; + switch (n) { + case "$type": + return ["filter-type-in", ["literal", t]]; + case "$id": + return ["filter-id-in", ["literal", t]]; + default: + return t.length > 200 && + !t.some((r) => typeof r != typeof t[0]) + ? ["filter-in-large", n, ["literal", t.sort(Kc)]] + : ["filter-in-small", n, ["literal", t]]; + } + } + function od(n) { + switch (n) { + case "$type": + return !0; + case "$id": + return ["filter-has-id"]; + default: + return ["filter-has", n]; + } + } + function Rl(n) { + return ["!", n]; + } + function Qc(n) { + const t = typeof n; + if ( + t === "number" || + t === "boolean" || + t === "string" || + n == null + ) + return JSON.stringify(n); + if (Array.isArray(n)) { + let c = "["; + for (const f of n) c += `${Qc(f)},`; + return `${c}]`; + } + const r = Object.keys(n).sort(); + let o = "{"; + for (let c = 0; c < r.length; c++) + o += `${JSON.stringify(r[c])}:${Qc(n[r[c]])},`; + return `${o}}`; + } + function Np(n) { + let t = ""; + for (const r of Bt) t += `/${Qc(n[r])}`; + return t; + } + function eu(n) { + const t = n.value; + return t + ? [new ht(n.key, t, "constants have been deprecated as of v8")] + : []; + } + function Kn(n) { + return n instanceof Number || + n instanceof String || + n instanceof Boolean + ? n.valueOf() + : n; + } + function Ua(n) { + if (Array.isArray(n)) return n.map(Ua); + if ( + n instanceof Object && + !( + n instanceof Number || + n instanceof String || + n instanceof Boolean + ) + ) { + const t = {}; + for (const r in n) t[r] = Ua(n[r]); + return t; + } + return Kn(n); + } + function ya(n) { + const t = n.key, + r = n.value, + o = n.valueSpec || {}, + c = n.objectElementValidators || {}, + f = n.style, + _ = n.styleSpec, + v = n.validateSpec; + let b = []; + const S = sn(r); + if (S !== "object") + return [new ht(t, r, `object expected, ${S} found`)]; + for (const I in r) { + const L = I.split(".")[0], + F = sr(o, L) || o["*"]; + let q; + if (sr(c, L)) q = c[L]; + else if (sr(o, L)) q = v; + else if (c["*"]) q = c["*"]; + else { + if (!o["*"]) { + b.push(new ht(t, r[I], `unknown property "${I}"`)); + continue; + } + q = v; + } + b = b.concat( + q( + { + key: (t && `${t}.`) + I, + value: r[I], + valueSpec: F, + style: f, + styleSpec: _, + object: r, + objectKey: I, + validateSpec: v, + }, + r + ) + ); + } + for (const I in o) + c[I] || + (o[I].required && + o[I].default === void 0 && + r[I] === void 0 && + b.push(new ht(t, r, `missing required property "${I}"`))); + return b; + } + function Bl(n) { + const t = n.value, + r = n.valueSpec, + o = n.style, + c = n.styleSpec, + f = n.key, + _ = n.arrayElementValidator || n.validateSpec; + if (sn(t) !== "array") + return [new ht(f, t, `array expected, ${sn(t)} found`)]; + if (r.length && t.length !== r.length) + return [ + new ht( + f, + t, + `array length ${r.length} expected, length ${t.length} found` + ), + ]; + if (r["min-length"] && t.length < r["min-length"]) + return [ + new ht( + f, + t, + `array length at least ${r["min-length"]} expected, length ${t.length} found` + ), + ]; + let v = { type: r.value, values: r.values }; + c.$version < 7 && (v.function = r.function), + sn(r.value) === "object" && (v = r.value); + let b = []; + for (let S = 0; S < t.length; S++) + b = b.concat( + _({ + array: t, + arrayIndex: S, + value: t[S], + valueSpec: v, + validateSpec: n.validateSpec, + style: o, + styleSpec: c, + key: `${f}[${S}]`, + }) + ); + return b; + } + function Hs(n) { + const t = n.key, + r = n.value, + o = n.valueSpec; + let c = sn(r); + return ( + c === "number" && r != r && (c = "NaN"), + c !== "number" + ? [new ht(t, r, `number expected, ${c} found`)] + : "minimum" in o && r < o.minimum + ? [ + new ht( + t, + r, + `${r} is less than the minimum value ${o.minimum}` + ), + ] + : "maximum" in o && r > o.maximum + ? [ + new ht( + t, + r, + `${r} is greater than the maximum value ${o.maximum}` + ), + ] + : [] + ); + } + function sd(n) { + const t = n.valueSpec, + r = Kn(n.value.type); + let o, + c, + f, + _ = {}; + const v = r !== "categorical" && n.value.property === void 0, + b = !v, + S = + sn(n.value.stops) === "array" && + sn(n.value.stops[0]) === "array" && + sn(n.value.stops[0][0]) === "object", + I = ya({ + key: n.key, + value: n.value, + valueSpec: n.styleSpec.function, + validateSpec: n.validateSpec, + style: n.style, + styleSpec: n.styleSpec, + objectElementValidators: { + stops: function (q) { + if (r === "identity") + return [ + new ht( + q.key, + q.value, + 'identity function may not have a "stops" property' + ), + ]; + let Z = []; + const W = q.value; + return ( + (Z = Z.concat( + Bl({ + key: q.key, + value: W, + valueSpec: q.valueSpec, + validateSpec: q.validateSpec, + style: q.style, + styleSpec: q.styleSpec, + arrayElementValidator: L, + }) + )), + sn(W) === "array" && + W.length === 0 && + Z.push( + new ht( + q.key, + W, + "array must have at least one stop" + ) + ), + Z + ); + }, + default: function (q) { + return q.validateSpec({ + key: q.key, + value: q.value, + valueSpec: t, + validateSpec: q.validateSpec, + style: q.style, + styleSpec: q.styleSpec, + }); + }, + }, + }); + return ( + r === "identity" && + v && + I.push( + new ht( + n.key, + n.value, + 'missing required property "property"' + ) + ), + r === "identity" || + n.value.stops || + I.push( + new ht(n.key, n.value, 'missing required property "stops"') + ), + r === "exponential" && + n.valueSpec.expression && + !Hc(n.valueSpec) && + I.push( + new ht( + n.key, + n.value, + "exponential functions not supported" + ) + ), + n.styleSpec.$version >= 8 && + (b && !fo(n.valueSpec) + ? I.push( + new ht( + n.key, + n.value, + "property functions not supported" + ) + ) + : v && + !ed(n.valueSpec) && + I.push( + new ht(n.key, n.value, "zoom functions not supported") + )), + (r !== "categorical" && !S) || + n.value.property !== void 0 || + I.push( + new ht(n.key, n.value, '"property" property is required') + ), + I + ); + function L(q) { + let Z = []; + const W = q.value, + J = q.key; + if (sn(W) !== "array") + return [new ht(J, W, `array expected, ${sn(W)} found`)]; + if (W.length !== 2) + return [ + new ht( + J, + W, + `array length 2 expected, length ${W.length} found` + ), + ]; + if (S) { + if (sn(W[0]) !== "object") + return [new ht(J, W, `object expected, ${sn(W[0])} found`)]; + if (W[0].zoom === void 0) + return [new ht(J, W, "object stop key must have zoom")]; + if (W[0].value === void 0) + return [new ht(J, W, "object stop key must have value")]; + if (f && f > Kn(W[0].zoom)) + return [ + new ht( + J, + W[0].zoom, + "stop zoom values must appear in ascending order" + ), + ]; + Kn(W[0].zoom) !== f && + ((f = Kn(W[0].zoom)), (c = void 0), (_ = {})), + (Z = Z.concat( + ya({ + key: `${J}[0]`, + value: W[0], + valueSpec: { zoom: {} }, + validateSpec: q.validateSpec, + style: q.style, + styleSpec: q.styleSpec, + objectElementValidators: { zoom: Hs, value: F }, + }) + )); + } else Z = Z.concat(F({ key: `${J}[0]`, value: W[0], validateSpec: q.validateSpec, style: q.style, styleSpec: q.styleSpec }, W)); + return zl(Ua(W[1])) + ? Z.concat([ + new ht( + `${J}[1]`, + W[1], + "expressions are not allowed in function stops." + ), + ]) + : Z.concat( + q.validateSpec({ + key: `${J}[1]`, + value: W[1], + valueSpec: t, + validateSpec: q.validateSpec, + style: q.style, + styleSpec: q.styleSpec, + }) + ); + } + function F(q, Z) { + const W = sn(q.value), + J = Kn(q.value), + le = q.value !== null ? q.value : Z; + if (o) { + if (W !== o) + return [ + new ht( + q.key, + le, + `${W} stop domain type must match previous stop domain type ${o}` + ), + ]; + } else o = W; + if (W !== "number" && W !== "string" && W !== "boolean") + return [ + new ht( + q.key, + le, + "stop domain value must be a number, string, or boolean" + ), + ]; + if (W !== "number" && r !== "categorical") { + let Re = `number expected, ${W} found`; + return ( + fo(t) && + r === void 0 && + (Re += + '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), + [new ht(q.key, le, Re)] + ); + } + return r !== "categorical" || + W !== "number" || + (isFinite(J) && Math.floor(J) === J) + ? r !== "categorical" && + W === "number" && + c !== void 0 && + J < c + ? [ + new ht( + q.key, + le, + "stop domain values must appear in ascending order" + ), + ] + : ((c = J), + r === "categorical" && J in _ + ? [ + new ht( + q.key, + le, + "stop domain values must be unique" + ), + ] + : ((_[J] = !0), [])) + : [new ht(q.key, le, `integer expected, found ${J}`)]; + } + } + function Fo(n) { + const t = (n.expressionContext === "property" ? id : qs)( + Ua(n.value), + n.valueSpec + ); + if (t.result === "error") + return t.value.map( + (o) => new ht(`${n.key}${o.key}`, n.value, o.message) + ); + const r = + t.value.expression || t.value._styleExpression.expression; + if ( + n.expressionContext === "property" && + n.propertyKey === "text-font" && + !r.outputDefined() + ) + return [ + new ht( + n.key, + n.value, + `Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.` + ), + ]; + if ( + n.expressionContext === "property" && + n.propertyType === "layout" && + !js(r) + ) + return [ + new ht( + n.key, + n.value, + '"feature-state" data expressions are not supported with layout properties.' + ), + ]; + if (n.expressionContext === "filter" && !js(r)) + return [ + new ht( + n.key, + n.value, + '"feature-state" data expressions are not supported with filters.' + ), + ]; + if ( + n.expressionContext && + n.expressionContext.indexOf("cluster") === 0 + ) { + if (!El(r, ["zoom", "feature-state"])) + return [ + new ht( + n.key, + n.value, + '"zoom" and "feature-state" expressions are not supported with cluster properties.' + ), + ]; + if (n.expressionContext === "cluster-initial" && !Al(r)) + return [ + new ht( + n.key, + n.value, + "Feature data expressions are not supported with initial expression part of cluster properties." + ), + ]; + } + return []; + } + function Fl(n) { + const t = n.key, + r = n.value, + o = sn(r); + return o !== "string" + ? [new ht(t, r, `color expected, ${o} found`)] + : Mr.parse(String(r)) + ? [] + : [new ht(t, r, `color expected, "${r}" found`)]; + } + function to(n) { + const t = n.key, + r = n.value, + o = n.valueSpec, + c = []; + return ( + Array.isArray(o.values) + ? o.values.indexOf(Kn(r)) === -1 && + c.push( + new ht( + t, + r, + `expected one of [${o.values.join( + ", " + )}], ${JSON.stringify(r)} found` + ) + ) + : Object.keys(o.values).indexOf(Kn(r)) === -1 && + c.push( + new ht( + t, + r, + `expected one of [${Object.keys(o.values).join( + ", " + )}], ${JSON.stringify(r)} found` + ) + ), + c + ); + } + function tu(n) { + return Ll(Ua(n.value)) + ? Fo( + Xr({}, n, { + expressionContext: "filter", + valueSpec: { value: "boolean" }, + }) + ) + : ld(n); + } + function ld(n) { + const t = n.value, + r = n.key; + if (sn(t) !== "array") + return [new ht(r, t, `array expected, ${sn(t)} found`)]; + const o = n.styleSpec; + let c, + f = []; + if (t.length < 1) + return [ + new ht(r, t, "filter array must have at least 1 element"), + ]; + switch ( + ((f = f.concat( + to({ + key: `${r}[0]`, + value: t[0], + valueSpec: o.filter_operator, + style: n.style, + styleSpec: n.styleSpec, + }) + )), + Kn(t[0])) + ) { + case "<": + case "<=": + case ">": + case ">=": + t.length >= 2 && + Kn(t[1]) === "$type" && + f.push( + new ht( + r, + t, + `"$type" cannot be use with operator "${t[0]}"` + ) + ); + case "==": + case "!=": + t.length !== 3 && + f.push( + new ht( + r, + t, + `filter array for operator "${t[0]}" must have 3 elements` + ) + ); + case "in": + case "!in": + t.length >= 2 && + ((c = sn(t[1])), + c !== "string" && + f.push( + new ht(`${r}[1]`, t[1], `string expected, ${c} found`) + )); + for (let _ = 2; _ < t.length; _++) + (c = sn(t[_])), + Kn(t[1]) === "$type" + ? (f = f.concat( + to({ + key: `${r}[${_}]`, + value: t[_], + valueSpec: o.geometry_type, + style: n.style, + styleSpec: n.styleSpec, + }) + )) + : c !== "string" && + c !== "number" && + c !== "boolean" && + f.push( + new ht( + `${r}[${_}]`, + t[_], + `string, number, or boolean expected, ${c} found` + ) + ); + break; + case "any": + case "all": + case "none": + for (let _ = 1; _ < t.length; _++) + f = f.concat( + ld({ + key: `${r}[${_}]`, + value: t[_], + style: n.style, + styleSpec: n.styleSpec, + }) + ); + break; + case "has": + case "!has": + (c = sn(t[1])), + t.length !== 2 + ? f.push( + new ht( + r, + t, + `filter array for "${t[0]}" operator must have 2 elements` + ) + ) + : c !== "string" && + f.push( + new ht(`${r}[1]`, t[1], `string expected, ${c} found`) + ); + } + return f; + } + function cd(n, t) { + const r = n.key, + o = n.validateSpec, + c = n.style, + f = n.styleSpec, + _ = n.value, + v = n.objectKey, + b = f[`${t}_${n.layerType}`]; + if (!b) return []; + const S = v.match(/^(.*)-transition$/); + if (t === "paint" && S && b[S[1]] && b[S[1]].transition) + return o({ + key: r, + value: _, + valueSpec: f.transition, + style: c, + styleSpec: f, + }); + const I = n.valueSpec || b[v]; + if (!I) return [new ht(r, _, `unknown property "${v}"`)]; + let L; + if ( + sn(_) === "string" && + fo(I) && + !I.tokens && + (L = /^{([^}]+)}$/.exec(_)) + ) + return [ + new ht( + r, + _, + `"${v}" does not support interpolation syntax +Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify( + L[1] + )} }\`.` + ), + ]; + const F = []; + return ( + n.layerType === "symbol" && + (v === "text-field" && + c && + !c.glyphs && + F.push( + new ht( + r, + _, + 'use of "text-field" requires a style "glyphs" property' + ) + ), + v === "text-font" && + Vs(Ua(_)) && + Kn(_.type) === "identity" && + F.push( + new ht( + r, + _, + '"text-font" does not support identity functions' + ) + )), + F.concat( + o({ + key: n.key, + value: _, + valueSpec: I, + style: c, + styleSpec: f, + expressionContext: "property", + propertyType: t, + propertyKey: v, + }) + ) + ); + } + function ud(n) { + return cd(n, "paint"); + } + function hd(n) { + return cd(n, "layout"); + } + function dd(n) { + let t = []; + const r = n.value, + o = n.key, + c = n.style, + f = n.styleSpec; + if (sn(r) !== "object") + return [new ht(o, r, `object expected, ${sn(r)} found`)]; + r.type || + r.ref || + t.push(new ht(o, r, 'either "type" or "ref" is required')); + let _ = Kn(r.type); + const v = Kn(r.ref); + if (r.id) { + const b = Kn(r.id); + for (let S = 0; S < n.arrayIndex; S++) { + const I = c.layers[S]; + Kn(I.id) === b && + t.push( + new ht( + o, + r.id, + `duplicate layer id "${r.id}", previously used at line ${I.id.__line__}` + ) + ); + } + } + if ("ref" in r) { + let b; + ["type", "source", "source-layer", "filter", "layout"].forEach( + (S) => { + S in r && + t.push( + new ht(o, r[S], `"${S}" is prohibited for ref layers`) + ); + } + ), + c.layers.forEach((S) => { + Kn(S.id) === v && (b = S); + }), + b + ? b.ref + ? t.push( + new ht( + o, + r.ref, + "ref cannot reference another ref layer" + ) + ) + : (_ = Kn(b.type)) + : t.push(new ht(o, r.ref, `ref layer "${v}" not found`)); + } else if (_ !== "background") + if (r.source) { + const b = c.sources && c.sources[r.source], + S = b && Kn(b.type); + b + ? S === "vector" && _ === "raster" + ? t.push( + new ht( + o, + r.source, + `layer "${r.id}" requires a raster source` + ) + ) + : (S !== "raster-dem" && _ === "hillshade") || + (S !== "raster-dem" && _ === "color-relief") + ? t.push( + new ht( + o, + r.source, + `layer "${r.id}" requires a raster-dem source` + ) + ) + : S === "raster" && _ !== "raster" + ? t.push( + new ht( + o, + r.source, + `layer "${r.id}" requires a vector source` + ) + ) + : S !== "vector" || r["source-layer"] + ? S === "raster-dem" && + _ !== "hillshade" && + _ !== "color-relief" + ? t.push( + new ht( + o, + r.source, + "raster-dem source can only be used with layer type 'hillshade' or 'color-relief'." + ) + ) + : _ !== "line" || + !r.paint || + !r.paint["line-gradient"] || + (S === "geojson" && b.lineMetrics) || + t.push( + new ht( + o, + r, + `layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.` + ) + ) + : t.push( + new ht( + o, + r, + `layer "${r.id}" must specify a "source-layer"` + ) + ) + : t.push( + new ht(o, r.source, `source "${r.source}" not found`) + ); + } else + t.push(new ht(o, r, 'missing required property "source"')); + return ( + (t = t.concat( + ya({ + key: o, + value: r, + valueSpec: f.layer, + style: n.style, + styleSpec: n.styleSpec, + validateSpec: n.validateSpec, + objectElementValidators: { + "*": () => [], + type: () => + n.validateSpec({ + key: `${o}.type`, + value: r.type, + valueSpec: f.layer.type, + style: n.style, + styleSpec: n.styleSpec, + validateSpec: n.validateSpec, + object: r, + objectKey: "type", + }), + filter: tu, + layout: (b) => + ya({ + layer: r, + key: b.key, + value: b.value, + style: b.style, + styleSpec: b.styleSpec, + validateSpec: b.validateSpec, + objectElementValidators: { + "*": (S) => hd(Xr({ layerType: _ }, S)), + }, + }), + paint: (b) => + ya({ + layer: r, + key: b.key, + value: b.value, + style: b.style, + styleSpec: b.styleSpec, + validateSpec: b.validateSpec, + objectElementValidators: { + "*": (S) => ud(Xr({ layerType: _ }, S)), + }, + }), + }, + }) + )), + t + ); + } + function Ia(n) { + const t = n.value, + r = n.key, + o = sn(t); + return o !== "string" + ? [new ht(r, t, `string expected, ${o} found`)] + : []; + } + const ns = { + promoteId: function ({ key: n, value: t }) { + if (sn(t) === "string") return Ia({ key: n, value: t }); + { + const r = []; + for (const o in t) + r.push(...Ia({ key: `${n}.${o}`, value: t[o] })); + return r; + } + }, + }; + function Qi(n) { + const t = n.value, + r = n.key, + o = n.styleSpec, + c = n.style, + f = n.validateSpec; + if (!t.type) return [new ht(r, t, '"type" is required')]; + const _ = Kn(t.type); + let v; + switch (_) { + case "vector": + case "raster": + return ( + (v = ya({ + key: r, + value: t, + valueSpec: o[`source_${_.replace("-", "_")}`], + style: n.style, + styleSpec: o, + objectElementValidators: ns, + validateSpec: f, + })), + v + ); + case "raster-dem": + return ( + (v = (function (b) { + var S; + const I = + (S = b.sourceName) !== null && S !== void 0 ? S : "", + L = b.value, + F = b.styleSpec, + q = F.source_raster_dem, + Z = b.style; + let W = []; + const J = sn(L); + if (L === void 0) return W; + if (J !== "object") + return ( + W.push( + new ht( + "source_raster_dem", + L, + `object expected, ${J} found` + ) + ), + W + ); + const le = Kn(L.encoding) === "custom", + Re = [ + "redFactor", + "greenFactor", + "blueFactor", + "baseShift", + ], + xe = b.value.encoding + ? `"${b.value.encoding}"` + : "Default"; + for (const Ce in L) + !le && Re.includes(Ce) + ? W.push( + new ht( + Ce, + L[Ce], + `In "${I}": "${Ce}" is only valid when "encoding" is set to "custom". ${xe} encoding found` + ) + ) + : q[Ce] + ? (W = W.concat( + b.validateSpec({ + key: Ce, + value: L[Ce], + valueSpec: q[Ce], + validateSpec: b.validateSpec, + style: Z, + styleSpec: F, + }) + )) + : W.push( + new ht(Ce, L[Ce], `unknown property "${Ce}"`) + ); + return W; + })({ + sourceName: r, + value: t, + style: n.style, + styleSpec: o, + validateSpec: f, + })), + v + ); + case "geojson": + if ( + ((v = ya({ + key: r, + value: t, + valueSpec: o.source_geojson, + style: c, + styleSpec: o, + validateSpec: f, + objectElementValidators: ns, + })), + t.cluster) + ) + for (const b in t.clusterProperties) { + const [S, I] = t.clusterProperties[b], + L = + typeof S == "string" + ? [S, ["accumulated"], ["get", b]] + : S; + v.push( + ...Fo({ + key: `${r}.${b}.map`, + value: I, + expressionContext: "cluster-map", + }) + ), + v.push( + ...Fo({ + key: `${r}.${b}.reduce`, + value: L, + expressionContext: "cluster-reduce", + }) + ); + } + return v; + case "video": + return ya({ + key: r, + value: t, + valueSpec: o.source_video, + style: c, + validateSpec: f, + styleSpec: o, + }); + case "image": + return ya({ + key: r, + value: t, + valueSpec: o.source_image, + style: c, + validateSpec: f, + styleSpec: o, + }); + case "canvas": + return [ + new ht( + r, + null, + "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", + "source.canvas" + ), + ]; + default: + return to({ + key: `${r}.type`, + value: t.type, + valueSpec: { + values: [ + "vector", + "raster", + "raster-dem", + "geojson", + "video", + "image", + ], + }, + }); + } + } + function is(n) { + const t = n.value, + r = n.styleSpec, + o = r.light, + c = n.style; + let f = []; + const _ = sn(t); + if (t === void 0) return f; + if (_ !== "object") + return ( + (f = f.concat([ + new ht("light", t, `object expected, ${_} found`), + ])), + f + ); + for (const v in t) { + const b = v.match(/^(.*)-transition$/); + f = f.concat( + b && o[b[1]] && o[b[1]].transition + ? n.validateSpec({ + key: v, + value: t[v], + valueSpec: r.transition, + validateSpec: n.validateSpec, + style: c, + styleSpec: r, + }) + : o[v] + ? n.validateSpec({ + key: v, + value: t[v], + valueSpec: o[v], + validateSpec: n.validateSpec, + style: c, + styleSpec: r, + }) + : [new ht(v, t[v], `unknown property "${v}"`)] + ); + } + return f; + } + function ru(n) { + const t = n.value, + r = n.styleSpec, + o = r.sky, + c = n.style, + f = sn(t); + if (t === void 0) return []; + if (f !== "object") + return [new ht("sky", t, `object expected, ${f} found`)]; + let _ = []; + for (const v in t) + _ = _.concat( + o[v] + ? n.validateSpec({ + key: v, + value: t[v], + valueSpec: o[v], + style: c, + styleSpec: r, + }) + : [new ht(v, t[v], `unknown property "${v}"`)] + ); + return _; + } + function pd(n) { + const t = n.value, + r = n.styleSpec, + o = r.terrain, + c = n.style; + let f = []; + const _ = sn(t); + if (t === void 0) return f; + if (_ !== "object") + return ( + (f = f.concat([ + new ht("terrain", t, `object expected, ${_} found`), + ])), + f + ); + for (const v in t) + f = f.concat( + o[v] + ? n.validateSpec({ + key: v, + value: t[v], + valueSpec: o[v], + validateSpec: n.validateSpec, + style: c, + styleSpec: r, + }) + : [new ht(v, t[v], `unknown property "${v}"`)] + ); + return f; + } + function fd(n) { + let t = []; + const r = n.value, + o = n.key; + if (Array.isArray(r)) { + const c = [], + f = []; + for (const _ in r) + r[_].id && + c.includes(r[_].id) && + t.push( + new ht( + o, + r, + `all the sprites' ids must be unique, but ${r[_].id} is duplicated` + ) + ), + c.push(r[_].id), + r[_].url && + f.includes(r[_].url) && + t.push( + new ht( + o, + r, + `all the sprites' URLs must be unique, but ${r[_].url} is duplicated` + ) + ), + f.push(r[_].url), + (t = t.concat( + ya({ + key: `${o}[${_}]`, + value: r[_], + valueSpec: { + id: { type: "string", required: !0 }, + url: { type: "string", required: !0 }, + }, + validateSpec: n.validateSpec, + }) + )); + return t; + } + return Ia({ key: o, value: r }); + } + function as(n) { + return ( + (t = n.value), + t && t.constructor === Object + ? [] + : [ + new ht( + n.key, + n.value, + `object expected, ${sn(n.value)} found` + ), + ] + ); + var t; + } + const nu = { + "*": () => [], + array: Bl, + boolean: function (n) { + const t = n.value, + r = n.key, + o = sn(t); + return o !== "boolean" + ? [new ht(r, t, `boolean expected, ${o} found`)] + : []; + }, + number: Hs, + color: Fl, + constants: eu, + enum: to, + filter: tu, + function: sd, + layer: dd, + object: ya, + source: Qi, + light: is, + sky: ru, + terrain: pd, + projection: function (n) { + const t = n.value, + r = n.styleSpec, + o = r.projection, + c = n.style, + f = sn(t); + if (t === void 0) return []; + if (f !== "object") + return [ + new ht("projection", t, `object expected, ${f} found`), + ]; + let _ = []; + for (const v in t) + _ = _.concat( + o[v] + ? n.validateSpec({ + key: v, + value: t[v], + valueSpec: o[v], + style: c, + styleSpec: r, + }) + : [new ht(v, t[v], `unknown property "${v}"`)] + ); + return _; + }, + projectionDefinition: function (n) { + const t = n.key; + let r = n.value; + r = r instanceof String ? r.valueOf() : r; + const o = sn(r); + return o !== "array" || + (function (c) { + return ( + Array.isArray(c) && + c.length === 3 && + typeof c[0] == "string" && + typeof c[1] == "string" && + typeof c[2] == "number" + ); + })(r) || + (function (c) { + return !!["interpolate", "step", "literal"].includes(c[0]); + })(r) + ? ["array", "string"].includes(o) + ? [] + : [ + new ht( + t, + r, + `projection expected, invalid type "${o}" found` + ), + ] + : [ + new ht( + t, + r, + `projection expected, invalid array ${JSON.stringify( + r + )} found` + ), + ]; + }, + string: Ia, + formatted: function (n) { + return Ia(n).length === 0 ? [] : Fo(n); + }, + resolvedImage: function (n) { + return Ia(n).length === 0 ? [] : Fo(n); + }, + padding: function (n) { + const t = n.key, + r = n.value; + if (sn(r) === "array") { + if (r.length < 1 || r.length > 4) + return [ + new ht( + t, + r, + `padding requires 1 to 4 values; ${r.length} values found` + ), + ]; + const o = { type: "number" }; + let c = []; + for (let f = 0; f < r.length; f++) + c = c.concat( + n.validateSpec({ + key: `${t}[${f}]`, + value: r[f], + validateSpec: n.validateSpec, + valueSpec: o, + }) + ); + return c; + } + return Hs({ key: t, value: r, valueSpec: {} }); + }, + numberArray: function (n) { + const t = n.key, + r = n.value; + if (sn(r) === "array") { + const o = { type: "number" }; + if (r.length < 1) + return [ + new ht( + t, + r, + "array length at least 1 expected, length 0 found" + ), + ]; + let c = []; + for (let f = 0; f < r.length; f++) + c = c.concat( + n.validateSpec({ + key: `${t}[${f}]`, + value: r[f], + validateSpec: n.validateSpec, + valueSpec: o, + }) + ); + return c; + } + return Hs({ key: t, value: r, valueSpec: {} }); + }, + colorArray: function (n) { + const t = n.key, + r = n.value; + if (sn(r) === "array") { + if (r.length < 1) + return [ + new ht( + t, + r, + "array length at least 1 expected, length 0 found" + ), + ]; + let o = []; + for (let c = 0; c < r.length; c++) + o = o.concat(Fl({ key: `${t}[${c}]`, value: r[c] })); + return o; + } + return Fl({ key: t, value: r }); + }, + variableAnchorOffsetCollection: function (n) { + const t = n.key, + r = n.value, + o = sn(r), + c = n.styleSpec; + if (o !== "array" || r.length < 1 || r.length % 2 != 0) + return [ + new ht( + t, + r, + "variableAnchorOffsetCollection requires a non-empty array of even length" + ), + ]; + let f = []; + for (let _ = 0; _ < r.length; _ += 2) + (f = f.concat( + to({ + key: `${t}[${_}]`, + value: r[_], + valueSpec: c.layout_symbol["text-anchor"], + }) + )), + (f = f.concat( + Bl({ + key: `${t}[${_ + 1}]`, + value: r[_ + 1], + valueSpec: { length: 2, value: "number" }, + validateSpec: n.validateSpec, + style: n.style, + styleSpec: c, + }) + )); + return f; + }, + sprite: fd, + state: as, + }; + function os(n) { + const t = n.value, + r = n.valueSpec, + o = n.styleSpec; + return ( + (n.validateSpec = os), + r.expression && Vs(Kn(t)) + ? sd(n) + : r.expression && zl(Ua(t)) + ? Fo(n) + : r.type && nu[r.type] + ? nu[r.type](n) + : ya(Xr({}, n, { valueSpec: r.type ? o[r.type] : r })) + ); + } + function md(n) { + const t = n.value, + r = n.key, + o = Ia(n); + return ( + o.length || + (t.indexOf("{fontstack}") === -1 && + o.push( + new ht( + r, + t, + '"glyphs" url must include a "{fontstack}" token' + ) + ), + t.indexOf("{range}") === -1 && + o.push( + new ht( + r, + t, + '"glyphs" url must include a "{range}" token' + ) + )), + o + ); + } + function ea(n, t = ye) { + let r = []; + return ( + (r = r.concat( + os({ + key: "", + value: n, + valueSpec: t.$root, + styleSpec: t, + style: n, + validateSpec: os, + objectElementValidators: { glyphs: md, "*": () => [] }, + }) + )), + n.constants && + (r = r.concat(eu({ key: "constants", value: n.constants }))), + ss(r) + ); + } + function Ma(n) { + return function (t) { + return n({ ...t, validateSpec: os }); + }; + } + function ss(n) { + return [].concat(n).sort((t, r) => t.line - r.line); + } + function ka(n) { + return function (...t) { + return ss(n.apply(this, t)); + }; + } + (ea.source = ka(Ma(Qi))), + (ea.sprite = ka(Ma(fd))), + (ea.glyphs = ka(Ma(md))), + (ea.light = ka(Ma(is))), + (ea.sky = ka(Ma(ru))), + (ea.terrain = ka(Ma(pd))), + (ea.state = ka(Ma(as))), + (ea.layer = ka(Ma(dd))), + (ea.filter = ka(Ma(tu))), + (ea.paintProperty = ka(Ma(ud))), + (ea.layoutProperty = ka(Ma(hd))); + const ls = ea, + jp = ls.light, + Ws = ls.sky, + Vp = ls.paintProperty, + qp = ls.layoutProperty; + function Xs(n, t) { + let r = !1; + if (t && t.length) + for (const o of t) + n.fire(new Ke(new Error(o.message))), (r = !0); + return r; + } + class Ys { + constructor(t, r, o) { + const c = (this.cells = []); + if (t instanceof ArrayBuffer) { + this.arrayBuffer = t; + const _ = new Int32Array(this.arrayBuffer); + (t = _[0]), (this.d = (r = _[1]) + 2 * (o = _[2])); + for (let b = 0; b < this.d * this.d; b++) { + const S = _[3 + b], + I = _[3 + b + 1]; + c.push(S === I ? null : _.subarray(S, I)); + } + const v = _[3 + c.length + 1]; + (this.keys = _.subarray(_[3 + c.length], v)), + (this.bboxes = _.subarray(v)), + (this.insert = this._insertReadonly); + } else { + this.d = r + 2 * o; + for (let _ = 0; _ < this.d * this.d; _++) c.push([]); + (this.keys = []), (this.bboxes = []); + } + (this.n = r), + (this.extent = t), + (this.padding = o), + (this.scale = r / t), + (this.uid = 0); + const f = (o / r) * t; + (this.min = -f), (this.max = t + f); + } + insert(t, r, o, c, f) { + this._forEachCell( + r, + o, + c, + f, + this._insertCell, + this.uid++, + void 0, + void 0 + ), + this.keys.push(t), + this.bboxes.push(r), + this.bboxes.push(o), + this.bboxes.push(c), + this.bboxes.push(f); + } + _insertReadonly() { + throw new Error( + "Cannot insert into a GridIndex created from an ArrayBuffer." + ); + } + _insertCell(t, r, o, c, f, _) { + this.cells[f].push(_); + } + query(t, r, o, c, f) { + const _ = this.min, + v = this.max; + if (t <= _ && r <= _ && v <= o && v <= c && !f) + return Array.prototype.slice.call(this.keys); + { + const b = []; + return ( + this._forEachCell(t, r, o, c, this._queryCell, b, {}, f), b + ); + } + } + _queryCell(t, r, o, c, f, _, v, b) { + const S = this.cells[f]; + if (S !== null) { + const I = this.keys, + L = this.bboxes; + for (let F = 0; F < S.length; F++) { + const q = S[F]; + if (v[q] === void 0) { + const Z = 4 * q; + ( + b + ? b(L[Z + 0], L[Z + 1], L[Z + 2], L[Z + 3]) + : t <= L[Z + 2] && + r <= L[Z + 3] && + o >= L[Z + 0] && + c >= L[Z + 1] + ) + ? ((v[q] = !0), _.push(I[q])) + : (v[q] = !1); + } + } + } + } + _forEachCell(t, r, o, c, f, _, v, b) { + const S = this._convertToCellCoord(t), + I = this._convertToCellCoord(r), + L = this._convertToCellCoord(o), + F = this._convertToCellCoord(c); + for (let q = S; q <= L; q++) + for (let Z = I; Z <= F; Z++) { + const W = this.d * Z + q; + if ( + (!b || + b( + this._convertFromCellCoord(q), + this._convertFromCellCoord(Z), + this._convertFromCellCoord(q + 1), + this._convertFromCellCoord(Z + 1) + )) && + f.call(this, t, r, o, c, W, _, v, b) + ) + return; + } + } + _convertFromCellCoord(t) { + return (t - this.padding) / this.scale; + } + _convertToCellCoord(t) { + return Math.max( + 0, + Math.min( + this.d - 1, + Math.floor(t * this.scale) + this.padding + ) + ); + } + toArrayBuffer() { + if (this.arrayBuffer) return this.arrayBuffer; + const t = this.cells, + r = 3 + this.cells.length + 1 + 1; + let o = 0; + for (let _ = 0; _ < this.cells.length; _++) + o += this.cells[_].length; + const c = new Int32Array( + r + o + this.keys.length + this.bboxes.length + ); + (c[0] = this.extent), (c[1] = this.n), (c[2] = this.padding); + let f = r; + for (let _ = 0; _ < t.length; _++) { + const v = t[_]; + (c[3 + _] = f), c.set(v, f), (f += v.length); + } + return ( + (c[3 + t.length] = f), + c.set(this.keys, f), + (f += this.keys.length), + (c[3 + t.length + 1] = f), + c.set(this.bboxes, f), + (f += this.bboxes.length), + c.buffer + ); + } + static serialize(t, r) { + const o = t.toArrayBuffer(); + return r && r.push(o), { buffer: o }; + } + static deserialize(t) { + return new Ys(t.buffer); + } + } + const Aa = {}; + function ir(n, t, r = {}) { + if (Aa[n]) throw new Error(`${n} is already registered.`); + Object.defineProperty(t, "_classRegistryKey", { + value: n, + writeable: !1, + }), + (Aa[n] = { + klass: t, + omit: r.omit || [], + shallow: r.shallow || [], + }); + } + ir("Object", Object), + ir("Set", Set), + ir("TransferableGridIndex", Ys), + ir("Color", Mr), + ir("Error", Error), + ir("AJAXError", ie), + ir("ResolvedImage", Hn), + ir("StylePropertyFunction", Us), + ir("StyleExpression", Wc, { omit: ["_evaluator"] }), + ir("ZoomDependentExpression", Xc), + ir("ZoomConstantExpression", Zs), + ir("CompoundExpression", va, { omit: ["_evaluate"] }); + for (const n in ts) + ts[n]._classRegistryKey || ir(`Expression_${n}`, ts[n]); + function iu(n) { + return ( + n && + typeof ArrayBuffer < "u" && + (n instanceof ArrayBuffer || + (n.constructor && n.constructor.name === "ArrayBuffer")) + ); + } + function Ol(n) { + return n.$name || n.constructor._classRegistryKey; + } + function au(n) { + return ( + !(function (t) { + if (t === null || typeof t != "object") return !1; + const r = Ol(t); + return !(!r || r === "Object"); + })(n) && + (n == null || + typeof n == "boolean" || + typeof n == "number" || + typeof n == "string" || + n instanceof Boolean || + n instanceof Number || + n instanceof String || + n instanceof Date || + n instanceof RegExp || + n instanceof Blob || + n instanceof Error || + iu(n) || + Qt(n) || + ArrayBuffer.isView(n) || + n instanceof ImageData) + ); + } + function cs(n, t) { + if (au(n)) + return ( + (iu(n) || Qt(n)) && t && t.push(n), + ArrayBuffer.isView(n) && t && t.push(n.buffer), + n instanceof ImageData && t && t.push(n.data.buffer), + n + ); + if (Array.isArray(n)) { + const f = []; + for (const _ of n) f.push(cs(_, t)); + return f; + } + if (typeof n != "object") + throw new Error("can't serialize object of type " + typeof n); + const r = Ol(n); + if (!r) + throw new Error( + `can't serialize object of unregistered class ${n.constructor.name}` + ); + if (!Aa[r]) throw new Error(`${r} is not registered.`); + const { klass: o } = Aa[r], + c = o.serialize ? o.serialize(n, t) : {}; + if (o.serialize) { + if (t && c === t[t.length - 1]) + throw new Error( + "statically serialized object won't survive transfer of $name property" + ); + } else { + for (const f in n) { + if (!n.hasOwnProperty(f) || Aa[r].omit.indexOf(f) >= 0) + continue; + const _ = n[f]; + c[f] = Aa[r].shallow.indexOf(f) >= 0 ? _ : cs(_, t); + } + n instanceof Error && (c.message = n.message); + } + if (c.$name) + throw new Error( + "$name property is reserved for worker serialization logic." + ); + return r !== "Object" && (c.$name = r), c; + } + function Oo(n) { + if (au(n)) return n; + if (Array.isArray(n)) return n.map(Oo); + if (typeof n != "object") + throw new Error("can't deserialize object of type " + typeof n); + const t = Ol(n) || "Object"; + if (!Aa[t]) + throw new Error(`can't deserialize unregistered class ${t}`); + const { klass: r } = Aa[t]; + if (!r) + throw new Error(`can't deserialize unregistered class ${t}`); + if (r.deserialize) return r.deserialize(n); + const o = Object.create(r.prototype); + for (const c of Object.keys(n)) { + if (c === "$name") continue; + const f = n[c]; + o[c] = Aa[t].shallow.indexOf(c) >= 0 ? f : Oo(f); + } + return o; + } + class Nl { + constructor() { + this.first = !0; + } + update(t, r) { + const o = Math.floor(t); + return this.first + ? ((this.first = !1), + (this.lastIntegerZoom = o), + (this.lastIntegerZoomTime = 0), + (this.lastZoom = t), + (this.lastFloorZoom = o), + !0) + : (this.lastFloorZoom > o + ? ((this.lastIntegerZoom = o + 1), + (this.lastIntegerZoomTime = r)) + : this.lastFloorZoom < o && + ((this.lastIntegerZoom = o), + (this.lastIntegerZoomTime = r)), + t !== this.lastZoom && + ((this.lastZoom = t), (this.lastFloorZoom = o), !0)); + } + } + const hn = { + "Latin-1 Supplement": (n) => n >= 128 && n <= 255, + "Hangul Jamo": (n) => n >= 4352 && n <= 4607, + Khmer: (n) => n >= 6016 && n <= 6143, + "General Punctuation": (n) => n >= 8192 && n <= 8303, + "Letterlike Symbols": (n) => n >= 8448 && n <= 8527, + "Number Forms": (n) => n >= 8528 && n <= 8591, + "Miscellaneous Technical": (n) => n >= 8960 && n <= 9215, + "Control Pictures": (n) => n >= 9216 && n <= 9279, + "Optical Character Recognition": (n) => n >= 9280 && n <= 9311, + "Enclosed Alphanumerics": (n) => n >= 9312 && n <= 9471, + "Geometric Shapes": (n) => n >= 9632 && n <= 9727, + "Miscellaneous Symbols": (n) => n >= 9728 && n <= 9983, + "Miscellaneous Symbols and Arrows": (n) => + n >= 11008 && n <= 11263, + "Ideographic Description Characters": (n) => + n >= 12272 && n <= 12287, + "CJK Symbols and Punctuation": (n) => n >= 12288 && n <= 12351, + Hiragana: (n) => n >= 12352 && n <= 12447, + Katakana: (n) => n >= 12448 && n <= 12543, + Kanbun: (n) => n >= 12688 && n <= 12703, + "CJK Strokes": (n) => n >= 12736 && n <= 12783, + "Enclosed CJK Letters and Months": (n) => + n >= 12800 && n <= 13055, + "CJK Compatibility": (n) => n >= 13056 && n <= 13311, + "Yijing Hexagram Symbols": (n) => n >= 19904 && n <= 19967, + "CJK Unified Ideographs": (n) => n >= 19968 && n <= 40959, + "Hangul Syllables": (n) => n >= 44032 && n <= 55215, + "Private Use Area": (n) => n >= 57344 && n <= 63743, + "Vertical Forms": (n) => n >= 65040 && n <= 65055, + "CJK Compatibility Forms": (n) => n >= 65072 && n <= 65103, + "Small Form Variants": (n) => n >= 65104 && n <= 65135, + "Halfwidth and Fullwidth Forms": (n) => n >= 65280 && n <= 65519, + }; + function jl(n) { + for (const t of n) if (su(t.charCodeAt(0))) return !0; + return !1; + } + function Zp(n) { + for (const t of n) if (!_d(t.charCodeAt(0))) return !1; + return !0; + } + function Vl(n) { + const t = n + .map((r) => { + try { + return new RegExp(`\\p{sc=${r}}`, "u").source; + } catch { + return null; + } + }) + .filter((r) => r); + return new RegExp(t.join("|"), "u"); + } + const Up = Vl(["Arab", "Dupl", "Mong", "Ougr", "Syrc"]); + function _d(n) { + return !Up.test(String.fromCodePoint(n)); + } + const ou = Vl([ + "Bopo", + "Hani", + "Hira", + "Kana", + "Kits", + "Nshu", + "Tang", + "Yiii", + ]); + function su(n) { + return !( + n !== 746 && + n !== 747 && + (n < 4352 || + !( + (hn["CJK Compatibility Forms"](n) && + !(n >= 65097 && n <= 65103)) || + hn["CJK Compatibility"](n) || + hn["CJK Strokes"](n) || + !( + !hn["CJK Symbols and Punctuation"](n) || + (n >= 12296 && n <= 12305) || + (n >= 12308 && n <= 12319) || + n === 12336 + ) || + hn["Enclosed CJK Letters and Months"](n) || + hn["Ideographic Description Characters"](n) || + hn.Kanbun(n) || + (hn.Katakana(n) && n !== 12540) || + !( + !hn["Halfwidth and Fullwidth Forms"](n) || + n === 65288 || + n === 65289 || + n === 65293 || + (n >= 65306 && n <= 65310) || + n === 65339 || + n === 65341 || + n === 65343 || + (n >= 65371 && n <= 65503) || + n === 65507 || + (n >= 65512 && n <= 65519) + ) || + !( + !hn["Small Form Variants"](n) || + (n >= 65112 && n <= 65118) || + (n >= 65123 && n <= 65126) + ) || + hn["Vertical Forms"](n) || + hn["Yijing Hexagram Symbols"](n) || + new RegExp("\\p{sc=Cans}", "u").test( + String.fromCodePoint(n) + ) || + new RegExp("\\p{sc=Hang}", "u").test( + String.fromCodePoint(n) + ) || + ou.test(String.fromCodePoint(n)) + )) + ); + } + function gd(n) { + return !( + su(n) || + (function (t) { + return !!( + (hn["Latin-1 Supplement"](t) && + (t === 167 || + t === 169 || + t === 174 || + t === 177 || + t === 188 || + t === 189 || + t === 190 || + t === 215 || + t === 247)) || + (hn["General Punctuation"](t) && + (t === 8214 || + t === 8224 || + t === 8225 || + t === 8240 || + t === 8241 || + t === 8251 || + t === 8252 || + t === 8258 || + t === 8263 || + t === 8264 || + t === 8265 || + t === 8273)) || + hn["Letterlike Symbols"](t) || + hn["Number Forms"](t) || + (hn["Miscellaneous Technical"](t) && + ((t >= 8960 && t <= 8967) || + (t >= 8972 && t <= 8991) || + (t >= 8996 && t <= 9e3) || + t === 9003 || + (t >= 9085 && t <= 9114) || + (t >= 9150 && t <= 9165) || + t === 9167 || + (t >= 9169 && t <= 9179) || + (t >= 9186 && t <= 9215))) || + (hn["Control Pictures"](t) && t !== 9251) || + hn["Optical Character Recognition"](t) || + hn["Enclosed Alphanumerics"](t) || + hn["Geometric Shapes"](t) || + (hn["Miscellaneous Symbols"](t) && + !(t >= 9754 && t <= 9759)) || + (hn["Miscellaneous Symbols and Arrows"](t) && + ((t >= 11026 && t <= 11055) || + (t >= 11088 && t <= 11097) || + (t >= 11192 && t <= 11243))) || + hn["CJK Symbols and Punctuation"](t) || + hn.Katakana(t) || + hn["Private Use Area"](t) || + hn["CJK Compatibility Forms"](t) || + hn["Small Form Variants"](t) || + hn["Halfwidth and Fullwidth Forms"](t) || + t === 8734 || + t === 8756 || + t === 8757 || + (t >= 9984 && t <= 10087) || + (t >= 10102 && t <= 10131) || + t === 65532 || + t === 65533 + ); + })(n) + ); + } + const vd = Vl([ + "Adlm", + "Arab", + "Armi", + "Avst", + "Chrs", + "Cprt", + "Egyp", + "Elym", + "Gara", + "Hatr", + "Hebr", + "Hung", + "Khar", + "Lydi", + "Mand", + "Mani", + "Mend", + "Merc", + "Mero", + "Narb", + "Nbat", + "Nkoo", + "Orkh", + "Palm", + "Phli", + "Phlp", + "Phnx", + "Prti", + "Rohg", + "Samr", + "Sarb", + "Sogo", + "Syrc", + "Thaa", + "Todr", + "Yezi", + ]); + function lu(n) { + return vd.test(String.fromCodePoint(n)); + } + function yd(n, t) { + return !( + (!t && lu(n)) || + (n >= 2304 && n <= 3583) || + (n >= 3840 && n <= 4255) || + hn.Khmer(n) + ); + } + function xd(n) { + for (const t of n) if (lu(t.charCodeAt(0))) return !0; + return !1; + } + const Ea = new (class { + constructor() { + (this.TIMEOUT = 5e3), + (this.applyArabicShaping = null), + (this.processBidirectionalText = null), + (this.processStyledBidirectionalText = null), + (this.pluginStatus = "unavailable"), + (this.pluginURL = null), + (this.loadScriptResolve = () => {}); + } + setState(n) { + (this.pluginStatus = n.pluginStatus), + (this.pluginURL = n.pluginURL); + } + getState() { + return { + pluginStatus: this.pluginStatus, + pluginURL: this.pluginURL, + }; + } + setMethods(n) { + if (Ea.isParsed()) + throw new Error("RTL text plugin already registered."); + (this.applyArabicShaping = n.applyArabicShaping), + (this.processBidirectionalText = n.processBidirectionalText), + (this.processStyledBidirectionalText = + n.processStyledBidirectionalText), + this.loadScriptResolve(); + } + isParsed() { + return ( + this.applyArabicShaping != null && + this.processBidirectionalText != null && + this.processStyledBidirectionalText != null + ); + } + getRTLTextPluginStatus() { + return this.pluginStatus; + } + syncState(n, t) { + return s(this, void 0, void 0, function* () { + if (this.isParsed()) return this.getState(); + if (n.pluginStatus !== "loading") return this.setState(n), n; + const r = n.pluginURL, + o = new Promise((f) => { + this.loadScriptResolve = f; + }); + t(r); + const c = new Promise((f) => + setTimeout(() => f(), this.TIMEOUT) + ); + if ((yield Promise.race([o, c]), this.isParsed())) { + const f = { pluginStatus: "loaded", pluginURL: r }; + return this.setState(f), f; + } + throw ( + (this.setState({ pluginStatus: "error", pluginURL: "" }), + new Error( + `RTL Text Plugin failed to import scripts from ${r}` + )) + ); + }); + } + })(); + class Un { + constructor(t, r) { + (this.zoom = t), + r + ? ((this.now = r.now || 0), + (this.fadeDuration = r.fadeDuration || 0), + (this.zoomHistory = r.zoomHistory || new Nl()), + (this.transition = r.transition || {}), + (this.globalState = r.globalState || {})) + : ((this.now = 0), + (this.fadeDuration = 0), + (this.zoomHistory = new Nl()), + (this.transition = {}), + (this.globalState = {})); + } + isSupportedScript(t) { + return (function (r, o) { + for (const c of r) if (!yd(c.charCodeAt(0), o)) return !1; + return !0; + })(t, Ea.getRTLTextPluginStatus() === "loaded"); + } + crossFadingFactor() { + return this.fadeDuration === 0 + ? 1 + : Math.min( + (this.now - this.zoomHistory.lastIntegerZoomTime) / + this.fadeDuration, + 1 + ); + } + getCrossfadeParameters() { + const t = this.zoom, + r = t - Math.floor(t), + o = this.crossFadingFactor(); + return t > this.zoomHistory.lastIntegerZoom + ? { fromScale: 2, toScale: 1, t: r + (1 - r) * o } + : { fromScale: 0.5, toScale: 1, t: 1 - (1 - o) * r }; + } + } + class us { + constructor(t, r) { + (this.property = t), + (this.value = r), + (this.expression = (function (o, c) { + if (Vs(o)) return new Us(o, c); + if (zl(o)) { + const f = id(o, c); + if (f.result === "error") + throw new Error( + f.value + .map((_) => `${_.key}: ${_.message}`) + .join(", ") + ); + return f.value; + } + { + let f = o; + return ( + c.type === "color" && typeof o == "string" + ? (f = Mr.parse(o)) + : c.type !== "padding" || + (typeof o != "number" && !Array.isArray(o)) + ? c.type !== "numberArray" || + (typeof o != "number" && !Array.isArray(o)) + ? c.type !== "colorArray" || + (typeof o != "string" && !Array.isArray(o)) + ? c.type === "variableAnchorOffsetCollection" && + Array.isArray(o) + ? (f = fi.parse(o)) + : c.type === "projectionDefinition" && + typeof o == "string" && + (f = jn.parse(o)) + : (f = fn.parse(o)) + : (f = vn.parse(o)) + : (f = kn.parse(o)), + { + globalStateRefs: new Set(), + kind: "constant", + evaluate: () => f, + } + ); + } + })( + r === void 0 ? t.specification.default : r, + t.specification + )); + } + isDataDriven() { + return ( + this.expression.kind === "source" || + this.expression.kind === "composite" + ); + } + getGlobalStateRefs() { + return this.expression.globalStateRefs || new Set(); + } + possiblyEvaluate(t, r, o) { + return this.property.possiblyEvaluate(this, t, r, o); + } + } + class cu { + constructor(t) { + (this.property = t), (this.value = new us(t, void 0)); + } + transitioned(t, r) { + return new uu( + this.property, + this.value, + r, + dt({}, t.transition, this.transition), + t.now + ); + } + untransitioned() { + return new uu(this.property, this.value, null, {}, 0); + } + } + class bd { + constructor(t) { + (this._properties = t), + (this._values = Object.create( + t.defaultTransitionablePropertyValues + )); + } + getValue(t) { + return wt(this._values[t].value.value); + } + setValue(t, r) { + Object.prototype.hasOwnProperty.call(this._values, t) || + (this._values[t] = new cu(this._values[t].property)), + (this._values[t].value = new us( + this._values[t].property, + r === null ? void 0 : wt(r) + )); + } + getTransition(t) { + return wt(this._values[t].transition); + } + setTransition(t, r) { + Object.prototype.hasOwnProperty.call(this._values, t) || + (this._values[t] = new cu(this._values[t].property)), + (this._values[t].transition = wt(r) || void 0); + } + serialize() { + const t = {}; + for (const r of Object.keys(this._values)) { + const o = this.getValue(r); + o !== void 0 && (t[r] = o); + const c = this.getTransition(r); + c !== void 0 && (t[`${r}-transition`] = c); + } + return t; + } + transitioned(t, r) { + const o = new hu(this._properties); + for (const c of Object.keys(this._values)) + o._values[c] = this._values[c].transitioned(t, r._values[c]); + return o; + } + untransitioned() { + const t = new hu(this._properties); + for (const r of Object.keys(this._values)) + t._values[r] = this._values[r].untransitioned(); + return t; + } + } + class uu { + constructor(t, r, o, c, f) { + (this.property = t), + (this.value = r), + (this.begin = f + c.delay || 0), + (this.end = this.begin + c.duration || 0), + t.specification.transition && + (c.delay || c.duration) && + (this.prior = o); + } + possiblyEvaluate(t, r, o) { + const c = t.now || 0, + f = this.value.possiblyEvaluate(t, r, o), + _ = this.prior; + if (_) { + if (c > this.end) return (this.prior = null), f; + if (this.value.isDataDriven()) return (this.prior = null), f; + if (c < this.begin) return _.possiblyEvaluate(t, r, o); + { + const v = (c - this.begin) / (this.end - this.begin); + return this.property.interpolate( + _.possiblyEvaluate(t, r, o), + f, + it(v) + ); + } + } + return f; + } + } + class hu { + constructor(t) { + (this._properties = t), + (this._values = Object.create( + t.defaultTransitioningPropertyValues + )); + } + possiblyEvaluate(t, r, o) { + const c = new ql(this._properties); + for (const f of Object.keys(this._values)) + c._values[f] = this._values[f].possiblyEvaluate(t, r, o); + return c; + } + hasTransition() { + for (const t of Object.keys(this._values)) + if (this._values[t].prior) return !0; + return !1; + } + } + class wd { + constructor(t) { + (this._properties = t), + (this._values = Object.create(t.defaultPropertyValues)); + } + hasValue(t) { + return this._values[t].value !== void 0; + } + getValue(t) { + return wt(this._values[t].value); + } + setValue(t, r) { + this._values[t] = new us( + this._values[t].property, + r === null ? void 0 : wt(r) + ); + } + serialize() { + const t = {}; + for (const r of Object.keys(this._values)) { + const o = this.getValue(r); + o !== void 0 && (t[r] = o); + } + return t; + } + possiblyEvaluate(t, r, o) { + const c = new ql(this._properties); + for (const f of Object.keys(this._values)) + c._values[f] = this._values[f].possiblyEvaluate(t, r, o); + return c; + } + } + class $a { + constructor(t, r, o) { + (this.property = t), (this.value = r), (this.parameters = o); + } + isConstant() { + return this.value.kind === "constant"; + } + constantOr(t) { + return this.value.kind === "constant" ? this.value.value : t; + } + evaluate(t, r, o, c) { + return this.property.evaluate( + this.value, + this.parameters, + t, + r, + o, + c + ); + } + } + class ql { + constructor(t) { + (this._properties = t), + (this._values = Object.create( + t.defaultPossiblyEvaluatedValues + )); + } + get(t) { + return this._values[t]; + } + } + class wr { + constructor(t) { + this.specification = t; + } + possiblyEvaluate(t, r) { + if (t.isDataDriven()) + throw new Error("Value should not be data driven"); + return t.expression.evaluate(r); + } + interpolate(t, r, o) { + const c = Za[this.specification.type]; + return c ? c(t, r, o) : t; + } + } + class Or { + constructor(t, r) { + (this.specification = t), (this.overrides = r); + } + possiblyEvaluate(t, r, o, c) { + return new $a( + this, + t.expression.kind === "constant" || + t.expression.kind === "camera" + ? { + kind: "constant", + value: t.expression.evaluate(r, null, {}, o, c), + } + : t.expression, + r + ); + } + interpolate(t, r, o) { + if (t.value.kind !== "constant" || r.value.kind !== "constant") + return t; + if (t.value.value === void 0 || r.value.value === void 0) + return new $a( + this, + { kind: "constant", value: void 0 }, + t.parameters + ); + const c = Za[this.specification.type]; + if (c) { + const f = c(t.value.value, r.value.value, o); + return new $a( + this, + { kind: "constant", value: f }, + t.parameters + ); + } + return t; + } + evaluate(t, r, o, c, f, _) { + return t.kind === "constant" + ? t.value + : t.evaluate(r, o, c, f, _); + } + } + class Zl extends Or { + possiblyEvaluate(t, r, o, c) { + if (t.value === void 0) + return new $a(this, { kind: "constant", value: void 0 }, r); + if (t.expression.kind === "constant") { + const f = t.expression.evaluate(r, null, {}, o, c), + _ = + t.property.specification.type === "resolvedImage" && + typeof f != "string" + ? f.name + : f, + v = this._calculate(_, _, _, r); + return new $a(this, { kind: "constant", value: v }, r); + } + if (t.expression.kind === "camera") { + const f = this._calculate( + t.expression.evaluate({ zoom: r.zoom - 1 }), + t.expression.evaluate({ zoom: r.zoom }), + t.expression.evaluate({ zoom: r.zoom + 1 }), + r + ); + return new $a(this, { kind: "constant", value: f }, r); + } + return new $a(this, t.expression, r); + } + evaluate(t, r, o, c, f, _) { + if (t.kind === "source") { + const v = t.evaluate(r, o, c, f, _); + return this._calculate(v, v, v, r); + } + return t.kind === "composite" + ? this._calculate( + t.evaluate({ zoom: Math.floor(r.zoom) - 1 }, o, c), + t.evaluate({ zoom: Math.floor(r.zoom) }, o, c), + t.evaluate({ zoom: Math.floor(r.zoom) + 1 }, o, c), + r + ) + : t.value; + } + _calculate(t, r, o, c) { + return c.zoom > c.zoomHistory.lastIntegerZoom + ? { from: t, to: r } + : { from: o, to: r }; + } + interpolate(t) { + return t; + } + } + class _o { + constructor(t) { + this.specification = t; + } + possiblyEvaluate(t, r, o, c) { + if (t.value !== void 0) { + if (t.expression.kind === "constant") { + const f = t.expression.evaluate(r, null, {}, o, c); + return this._calculate(f, f, f, r); + } + return this._calculate( + t.expression.evaluate(new Un(Math.floor(r.zoom - 1), r)), + t.expression.evaluate(new Un(Math.floor(r.zoom), r)), + t.expression.evaluate(new Un(Math.floor(r.zoom + 1), r)), + r + ); + } + } + _calculate(t, r, o, c) { + return c.zoom > c.zoomHistory.lastIntegerZoom + ? { from: t, to: r } + : { from: o, to: r }; + } + interpolate(t) { + return t; + } + } + class Ul { + constructor(t) { + this.specification = t; + } + possiblyEvaluate(t, r, o, c) { + return !!t.expression.evaluate(r, null, {}, o, c); + } + interpolate() { + return !1; + } + } + class Ui { + constructor(t) { + (this.properties = t), + (this.defaultPropertyValues = {}), + (this.defaultTransitionablePropertyValues = {}), + (this.defaultTransitioningPropertyValues = {}), + (this.defaultPossiblyEvaluatedValues = {}), + (this.overridableProperties = []); + for (const r in t) { + const o = t[r]; + o.specification.overridable && + this.overridableProperties.push(r); + const c = (this.defaultPropertyValues[r] = new us(o, void 0)), + f = (this.defaultTransitionablePropertyValues[r] = new cu( + o + )); + (this.defaultTransitioningPropertyValues[r] = + f.untransitioned()), + (this.defaultPossiblyEvaluatedValues[r] = + c.possiblyEvaluate({})); + } + } + } + ir("DataDrivenProperty", Or), + ir("DataConstantProperty", wr), + ir("CrossFadedDataDrivenProperty", Zl), + ir("CrossFadedProperty", _o), + ir("ColorRampProperty", Ul); + const Td = "-transition"; + class xa extends kt { + constructor(t, r) { + if ( + (super(), + (this.id = t.id), + (this.type = t.type), + (this._featureFilter = { + filter: () => !0, + needGeometry: !1, + getGlobalStateRefs: () => new Set(), + }), + t.type !== "custom" && + ((this.metadata = t.metadata), + (this.minzoom = t.minzoom), + (this.maxzoom = t.maxzoom), + t.type !== "background" && + ((this.source = t.source), + (this.sourceLayer = t["source-layer"]), + (this.filter = t.filter), + (this._featureFilter = Ro(t.filter))), + r.layout && (this._unevaluatedLayout = new wd(r.layout)), + r.paint)) + ) { + this._transitionablePaint = new bd(r.paint); + for (const o in t.paint) + this.setPaintProperty(o, t.paint[o], { validate: !1 }); + for (const o in t.layout) + this.setLayoutProperty(o, t.layout[o], { validate: !1 }); + (this._transitioningPaint = + this._transitionablePaint.untransitioned()), + (this.paint = new ql(r.paint)); + } + } + setFilter(t) { + (this.filter = t), (this._featureFilter = Ro(t)); + } + getCrossfadeParameters() { + return this._crossfadeParameters; + } + getLayoutProperty(t) { + return t === "visibility" + ? this.visibility + : this._unevaluatedLayout.getValue(t); + } + getLayoutAffectingGlobalStateRefs() { + const t = new Set(); + if (this._unevaluatedLayout) + for (const r in this._unevaluatedLayout._values) { + const o = this._unevaluatedLayout._values[r]; + for (const c of o.getGlobalStateRefs()) t.add(c); + } + for (const r of this._featureFilter.getGlobalStateRefs()) + t.add(r); + return t; + } + setLayoutProperty(t, r, o = {}) { + (r != null && + this._validate( + qp, + `layers.${this.id}.layout.${t}`, + t, + r, + o + )) || + (t !== "visibility" + ? this._unevaluatedLayout.setValue(t, r) + : (this.visibility = r)); + } + getPaintProperty(t) { + return t.endsWith(Td) + ? this._transitionablePaint.getTransition(t.slice(0, -11)) + : this._transitionablePaint.getValue(t); + } + setPaintProperty(t, r, o = {}) { + if ( + r != null && + this._validate(Vp, `layers.${this.id}.paint.${t}`, t, r, o) + ) + return !1; + if (t.endsWith(Td)) + return ( + this._transitionablePaint.setTransition( + t.slice(0, -11), + r || void 0 + ), + !1 + ); + { + const c = this._transitionablePaint._values[t], + f = + c.property.specification["property-type"] === + "cross-faded-data-driven", + _ = c.value.isDataDriven(), + v = c.value; + this._transitionablePaint.setValue(t, r), + this._handleSpecialPaintPropertyUpdate(t); + const b = this._transitionablePaint._values[t].value; + return ( + b.isDataDriven() || + _ || + f || + this._handleOverridablePaintPropertyUpdate(t, v, b) + ); + } + } + _handleSpecialPaintPropertyUpdate(t) {} + _handleOverridablePaintPropertyUpdate(t, r, o) { + return !1; + } + isHidden(t) { + return ( + !!(this.minzoom && t < this.minzoom) || + !!(this.maxzoom && t >= this.maxzoom) || + this.visibility === "none" + ); + } + updateTransitions(t) { + this._transitioningPaint = + this._transitionablePaint.transitioned( + t, + this._transitioningPaint + ); + } + hasTransition() { + return this._transitioningPaint.hasTransition(); + } + recalculate(t, r) { + t.getCrossfadeParameters && + (this._crossfadeParameters = t.getCrossfadeParameters()), + this._unevaluatedLayout && + (this.layout = this._unevaluatedLayout.possiblyEvaluate( + t, + void 0, + r + )), + (this.paint = this._transitioningPaint.possiblyEvaluate( + t, + void 0, + r + )); + } + serialize() { + const t = { + id: this.id, + type: this.type, + source: this.source, + "source-layer": this.sourceLayer, + metadata: this.metadata, + minzoom: this.minzoom, + maxzoom: this.maxzoom, + filter: this.filter, + layout: + this._unevaluatedLayout && + this._unevaluatedLayout.serialize(), + paint: + this._transitionablePaint && + this._transitionablePaint.serialize(), + }; + return ( + this.visibility && + ((t.layout = t.layout || {}), + (t.layout.visibility = this.visibility)), + St( + t, + (r, o) => + !( + r === void 0 || + (o === "layout" && !Object.keys(r).length) || + (o === "paint" && !Object.keys(r).length) + ) + ) + ); + } + _validate(t, r, o, c, f = {}) { + return ( + (!f || f.validate !== !1) && + Xs( + this, + t.call(ls, { + key: r, + layerType: this.type, + objectKey: o, + value: c, + styleSpec: ye, + style: { glyphs: !0, sprite: !0 }, + }) + ) + ); + } + is3D() { + return !1; + } + isTileClipped() { + return !1; + } + hasOffscreenPass() { + return !1; + } + resize() {} + isStateDependent() { + for (const t in this.paint._values) { + const r = this.paint.get(t); + if ( + r instanceof $a && + fo(r.property.specification) && + (r.value.kind === "source" || + r.value.kind === "composite") && + r.value.isStateDependent + ) + return !0; + } + return !1; + } + } + const $p = { + Int8: Int8Array, + Uint8: Uint8Array, + Int16: Int16Array, + Uint16: Uint16Array, + Int32: Int32Array, + Uint32: Uint32Array, + Float32: Float32Array, + }; + class Ks { + constructor(t, r) { + (this._structArray = t), + (this._pos1 = r * this.size), + (this._pos2 = this._pos1 / 2), + (this._pos4 = this._pos1 / 4), + (this._pos8 = this._pos1 / 8); + } + } + class Dn { + constructor() { + (this.isTransferred = !1), (this.capacity = -1), this.resize(0); + } + static serialize(t, r) { + return ( + t._trim(), + r && ((t.isTransferred = !0), r.push(t.arrayBuffer)), + { length: t.length, arrayBuffer: t.arrayBuffer } + ); + } + static deserialize(t) { + const r = Object.create(this.prototype); + return ( + (r.arrayBuffer = t.arrayBuffer), + (r.length = t.length), + (r.capacity = t.arrayBuffer.byteLength / r.bytesPerElement), + r._refreshViews(), + r + ); + } + _trim() { + this.length !== this.capacity && + ((this.capacity = this.length), + (this.arrayBuffer = this.arrayBuffer.slice( + 0, + this.length * this.bytesPerElement + )), + this._refreshViews()); + } + clear() { + this.length = 0; + } + resize(t) { + this.reserve(t), (this.length = t); + } + reserve(t) { + if (t > this.capacity) { + (this.capacity = Math.max( + t, + Math.floor(5 * this.capacity), + 128 + )), + (this.arrayBuffer = new ArrayBuffer( + this.capacity * this.bytesPerElement + )); + const r = this.uint8; + this._refreshViews(), r && this.uint8.set(r); + } + } + _refreshViews() { + throw new Error( + "_refreshViews() must be implemented by each concrete StructArray layout" + ); + } + } + function ti(n, t = 1) { + let r = 0, + o = 0; + return { + members: n.map((c) => { + const f = $p[c.type].BYTES_PER_ELEMENT, + _ = (r = $l(r, Math.max(t, f))), + v = c.components || 1; + return ( + (o = Math.max(o, f)), + (r += f * v), + { name: c.name, type: c.type, components: v, offset: _ } + ); + }), + size: $l(r, Math.max(o, t)), + alignment: t, + }; + } + function $l(n, t) { + return Math.ceil(n / t) * t; + } + class hs extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r) { + const o = this.length; + return this.resize(o + 1), this.emplace(o, t, r); + } + emplace(t, r, o) { + const c = 2 * t; + return (this.int16[c + 0] = r), (this.int16[c + 1] = o), t; + } + } + (hs.prototype.bytesPerElement = 4), ir("StructArrayLayout2i4", hs); + class ds extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o) { + const c = this.length; + return this.resize(c + 1), this.emplace(c, t, r, o); + } + emplace(t, r, o, c) { + const f = 3 * t; + return ( + (this.int16[f + 0] = r), + (this.int16[f + 1] = o), + (this.int16[f + 2] = c), + t + ); + } + } + (ds.prototype.bytesPerElement = 6), ir("StructArrayLayout3i6", ds); + class du extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c) { + const f = this.length; + return this.resize(f + 1), this.emplace(f, t, r, o, c); + } + emplace(t, r, o, c, f) { + const _ = 4 * t; + return ( + (this.int16[_ + 0] = r), + (this.int16[_ + 1] = o), + (this.int16[_ + 2] = c), + (this.int16[_ + 3] = f), + t + ); + } + } + (du.prototype.bytesPerElement = 8), ir("StructArrayLayout4i8", du); + class ps extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c, f, _) { + const v = this.length; + return this.resize(v + 1), this.emplace(v, t, r, o, c, f, _); + } + emplace(t, r, o, c, f, _, v) { + const b = 6 * t; + return ( + (this.int16[b + 0] = r), + (this.int16[b + 1] = o), + (this.int16[b + 2] = c), + (this.int16[b + 3] = f), + (this.int16[b + 4] = _), + (this.int16[b + 5] = v), + t + ); + } + } + (ps.prototype.bytesPerElement = 12), + ir("StructArrayLayout2i4i12", ps); + class No extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c, f, _) { + const v = this.length; + return this.resize(v + 1), this.emplace(v, t, r, o, c, f, _); + } + emplace(t, r, o, c, f, _, v) { + const b = 4 * t, + S = 8 * t; + return ( + (this.int16[b + 0] = r), + (this.int16[b + 1] = o), + (this.uint8[S + 4] = c), + (this.uint8[S + 5] = f), + (this.uint8[S + 6] = _), + (this.uint8[S + 7] = v), + t + ); + } + } + (No.prototype.bytesPerElement = 8), + ir("StructArrayLayout2i4ub8", No); + class Js extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.float32 = new Float32Array(this.arrayBuffer)); + } + emplaceBack(t, r) { + const o = this.length; + return this.resize(o + 1), this.emplace(o, t, r); + } + emplace(t, r, o) { + const c = 2 * t; + return (this.float32[c + 0] = r), (this.float32[c + 1] = o), t; + } + } + (Js.prototype.bytesPerElement = 8), ir("StructArrayLayout2f8", Js); + class Gl extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.uint16 = new Uint16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c, f, _, v, b, S, I) { + const L = this.length; + return ( + this.resize(L + 1), + this.emplace(L, t, r, o, c, f, _, v, b, S, I) + ); + } + emplace(t, r, o, c, f, _, v, b, S, I, L) { + const F = 10 * t; + return ( + (this.uint16[F + 0] = r), + (this.uint16[F + 1] = o), + (this.uint16[F + 2] = c), + (this.uint16[F + 3] = f), + (this.uint16[F + 4] = _), + (this.uint16[F + 5] = v), + (this.uint16[F + 6] = b), + (this.uint16[F + 7] = S), + (this.uint16[F + 8] = I), + (this.uint16[F + 9] = L), + t + ); + } + } + (Gl.prototype.bytesPerElement = 20), + ir("StructArrayLayout10ui20", Gl); + class jo extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)), + (this.uint16 = new Uint16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c, f, _, v, b, S, I, L, F) { + const q = this.length; + return ( + this.resize(q + 1), + this.emplace(q, t, r, o, c, f, _, v, b, S, I, L, F) + ); + } + emplace(t, r, o, c, f, _, v, b, S, I, L, F, q) { + const Z = 12 * t; + return ( + (this.int16[Z + 0] = r), + (this.int16[Z + 1] = o), + (this.int16[Z + 2] = c), + (this.int16[Z + 3] = f), + (this.uint16[Z + 4] = _), + (this.uint16[Z + 5] = v), + (this.uint16[Z + 6] = b), + (this.uint16[Z + 7] = S), + (this.int16[Z + 8] = I), + (this.int16[Z + 9] = L), + (this.int16[Z + 10] = F), + (this.int16[Z + 11] = q), + t + ); + } + } + (jo.prototype.bytesPerElement = 24), + ir("StructArrayLayout4i4ui4i24", jo); + class pu extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.float32 = new Float32Array(this.arrayBuffer)); + } + emplaceBack(t, r, o) { + const c = this.length; + return this.resize(c + 1), this.emplace(c, t, r, o); + } + emplace(t, r, o, c) { + const f = 3 * t; + return ( + (this.float32[f + 0] = r), + (this.float32[f + 1] = o), + (this.float32[f + 2] = c), + t + ); + } + } + (pu.prototype.bytesPerElement = 12), + ir("StructArrayLayout3f12", pu); + class fu extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.uint32 = new Uint32Array(this.arrayBuffer)); + } + emplaceBack(t) { + const r = this.length; + return this.resize(r + 1), this.emplace(r, t); + } + emplace(t, r) { + return (this.uint32[1 * t + 0] = r), t; + } + } + (fu.prototype.bytesPerElement = 4), ir("StructArrayLayout1ul4", fu); + class Hl extends Dn { + _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(t, r, o, c, f, _, v, b, S) { + const I = this.length; + return ( + this.resize(I + 1), this.emplace(I, t, r, o, c, f, _, v, b, S) + ); + } + emplace(t, r, o, c, f, _, v, b, S, I) { + const L = 10 * t, + F = 5 * t; + return ( + (this.int16[L + 0] = r), + (this.int16[L + 1] = o), + (this.int16[L + 2] = c), + (this.int16[L + 3] = f), + (this.int16[L + 4] = _), + (this.int16[L + 5] = v), + (this.uint32[F + 3] = b), + (this.uint16[L + 8] = S), + (this.uint16[L + 9] = I), + t + ); + } + } + (Hl.prototype.bytesPerElement = 20), + ir("StructArrayLayout6i1ul2ui20", Hl); + class mu extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c, f, _) { + const v = this.length; + return this.resize(v + 1), this.emplace(v, t, r, o, c, f, _); + } + emplace(t, r, o, c, f, _, v) { + const b = 6 * t; + return ( + (this.int16[b + 0] = r), + (this.int16[b + 1] = o), + (this.int16[b + 2] = c), + (this.int16[b + 3] = f), + (this.int16[b + 4] = _), + (this.int16[b + 5] = v), + t + ); + } + } + (mu.prototype.bytesPerElement = 12), + ir("StructArrayLayout2i2i2i12", mu); + class h extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.float32 = new Float32Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c, f) { + const _ = this.length; + return this.resize(_ + 1), this.emplace(_, t, r, o, c, f); + } + emplace(t, r, o, c, f, _) { + const v = 4 * t, + b = 8 * t; + return ( + (this.float32[v + 0] = r), + (this.float32[v + 1] = o), + (this.float32[v + 2] = c), + (this.int16[b + 6] = f), + (this.int16[b + 7] = _), + t + ); + } + } + (h.prototype.bytesPerElement = 16), + ir("StructArrayLayout2f1f2i16", h); + class e extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.float32 = new Float32Array(this.arrayBuffer)), + (this.int16 = new Int16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c, f, _) { + const v = this.length; + return this.resize(v + 1), this.emplace(v, t, r, o, c, f, _); + } + emplace(t, r, o, c, f, _, v) { + const b = 16 * t, + S = 4 * t, + I = 8 * t; + return ( + (this.uint8[b + 0] = r), + (this.uint8[b + 1] = o), + (this.float32[S + 1] = c), + (this.float32[S + 2] = f), + (this.int16[I + 6] = _), + (this.int16[I + 7] = v), + t + ); + } + } + (e.prototype.bytesPerElement = 16), + ir("StructArrayLayout2ub2f2i16", e); + class i extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.uint16 = new Uint16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o) { + const c = this.length; + return this.resize(c + 1), this.emplace(c, t, r, o); + } + emplace(t, r, o, c) { + const f = 3 * t; + return ( + (this.uint16[f + 0] = r), + (this.uint16[f + 1] = o), + (this.uint16[f + 2] = c), + t + ); + } + } + (i.prototype.bytesPerElement = 6), ir("StructArrayLayout3ui6", i); + class l extends Dn { + _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(t, r, o, c, f, _, v, b, S, I, L, F, q, Z, W, J, le) { + const Re = this.length; + return ( + this.resize(Re + 1), + this.emplace( + Re, + t, + r, + o, + c, + f, + _, + v, + b, + S, + I, + L, + F, + q, + Z, + W, + J, + le + ) + ); + } + emplace(t, r, o, c, f, _, v, b, S, I, L, F, q, Z, W, J, le, Re) { + const xe = 24 * t, + Ce = 12 * t, + Ye = 48 * t; + return ( + (this.int16[xe + 0] = r), + (this.int16[xe + 1] = o), + (this.uint16[xe + 2] = c), + (this.uint16[xe + 3] = f), + (this.uint32[Ce + 2] = _), + (this.uint32[Ce + 3] = v), + (this.uint32[Ce + 4] = b), + (this.uint16[xe + 10] = S), + (this.uint16[xe + 11] = I), + (this.uint16[xe + 12] = L), + (this.float32[Ce + 7] = F), + (this.float32[Ce + 8] = q), + (this.uint8[Ye + 36] = Z), + (this.uint8[Ye + 37] = W), + (this.uint8[Ye + 38] = J), + (this.uint32[Ce + 10] = le), + (this.int16[xe + 22] = Re), + t + ); + } + } + (l.prototype.bytesPerElement = 48), + ir("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48", l); + class u extends Dn { + _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( + t, + r, + o, + c, + f, + _, + v, + b, + S, + I, + L, + F, + q, + Z, + W, + J, + le, + Re, + xe, + Ce, + Ye, + lt, + Pt, + Yt, + qt, + Ht, + Sr, + Gt + ) { + const Wt = this.length; + return ( + this.resize(Wt + 1), + this.emplace( + Wt, + t, + r, + o, + c, + f, + _, + v, + b, + S, + I, + L, + F, + q, + Z, + W, + J, + le, + Re, + xe, + Ce, + Ye, + lt, + Pt, + Yt, + qt, + Ht, + Sr, + Gt + ) + ); + } + emplace( + t, + r, + o, + c, + f, + _, + v, + b, + S, + I, + L, + F, + q, + Z, + W, + J, + le, + Re, + xe, + Ce, + Ye, + lt, + Pt, + Yt, + qt, + Ht, + Sr, + Gt, + Wt + ) { + const gt = 32 * t, + Nr = 16 * t; + return ( + (this.int16[gt + 0] = r), + (this.int16[gt + 1] = o), + (this.int16[gt + 2] = c), + (this.int16[gt + 3] = f), + (this.int16[gt + 4] = _), + (this.int16[gt + 5] = v), + (this.int16[gt + 6] = b), + (this.int16[gt + 7] = S), + (this.uint16[gt + 8] = I), + (this.uint16[gt + 9] = L), + (this.uint16[gt + 10] = F), + (this.uint16[gt + 11] = q), + (this.uint16[gt + 12] = Z), + (this.uint16[gt + 13] = W), + (this.uint16[gt + 14] = J), + (this.uint16[gt + 15] = le), + (this.uint16[gt + 16] = Re), + (this.uint16[gt + 17] = xe), + (this.uint16[gt + 18] = Ce), + (this.uint16[gt + 19] = Ye), + (this.uint16[gt + 20] = lt), + (this.uint16[gt + 21] = Pt), + (this.uint16[gt + 22] = Yt), + (this.uint32[Nr + 12] = qt), + (this.float32[Nr + 13] = Ht), + (this.float32[Nr + 14] = Sr), + (this.uint16[gt + 30] = Gt), + (this.uint16[gt + 31] = Wt), + t + ); + } + } + (u.prototype.bytesPerElement = 64), + ir("StructArrayLayout8i15ui1ul2f2ui64", u); + class d extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.float32 = new Float32Array(this.arrayBuffer)); + } + emplaceBack(t) { + const r = this.length; + return this.resize(r + 1), this.emplace(r, t); + } + emplace(t, r) { + return (this.float32[1 * t + 0] = r), t; + } + } + (d.prototype.bytesPerElement = 4), ir("StructArrayLayout1f4", d); + class g extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.uint16 = new Uint16Array(this.arrayBuffer)), + (this.float32 = new Float32Array(this.arrayBuffer)); + } + emplaceBack(t, r, o) { + const c = this.length; + return this.resize(c + 1), this.emplace(c, t, r, o); + } + emplace(t, r, o, c) { + const f = 3 * t; + return ( + (this.uint16[6 * t + 0] = r), + (this.float32[f + 1] = o), + (this.float32[f + 2] = c), + t + ); + } + } + (g.prototype.bytesPerElement = 12), + ir("StructArrayLayout1ui2f12", g); + class w extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.uint32 = new Uint32Array(this.arrayBuffer)), + (this.uint16 = new Uint16Array(this.arrayBuffer)); + } + emplaceBack(t, r, o) { + const c = this.length; + return this.resize(c + 1), this.emplace(c, t, r, o); + } + emplace(t, r, o, c) { + const f = 4 * t; + return ( + (this.uint32[2 * t + 0] = r), + (this.uint16[f + 2] = o), + (this.uint16[f + 3] = c), + t + ); + } + } + (w.prototype.bytesPerElement = 8), + ir("StructArrayLayout1ul2ui8", w); + class C extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.uint16 = new Uint16Array(this.arrayBuffer)); + } + emplaceBack(t, r) { + const o = this.length; + return this.resize(o + 1), this.emplace(o, t, r); + } + emplace(t, r, o) { + const c = 2 * t; + return (this.uint16[c + 0] = r), (this.uint16[c + 1] = o), t; + } + } + (C.prototype.bytesPerElement = 4), ir("StructArrayLayout2ui4", C); + class P extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.uint16 = new Uint16Array(this.arrayBuffer)); + } + emplaceBack(t) { + const r = this.length; + return this.resize(r + 1), this.emplace(r, t); + } + emplace(t, r) { + return (this.uint16[1 * t + 0] = r), t; + } + } + (P.prototype.bytesPerElement = 2), ir("StructArrayLayout1ui2", P); + class E extends Dn { + _refreshViews() { + (this.uint8 = new Uint8Array(this.arrayBuffer)), + (this.float32 = new Float32Array(this.arrayBuffer)); + } + emplaceBack(t, r, o, c) { + const f = this.length; + return this.resize(f + 1), this.emplace(f, t, r, o, c); + } + emplace(t, r, o, c, f) { + const _ = 4 * t; + return ( + (this.float32[_ + 0] = r), + (this.float32[_ + 1] = o), + (this.float32[_ + 2] = c), + (this.float32[_ + 3] = f), + t + ); + } + } + (E.prototype.bytesPerElement = 16), ir("StructArrayLayout4f16", E); + class R extends Ks { + get anchorPointX() { + return this._structArray.int16[this._pos2 + 0]; + } + get anchorPointY() { + return this._structArray.int16[this._pos2 + 1]; + } + get x1() { + return this._structArray.int16[this._pos2 + 2]; + } + get y1() { + return this._structArray.int16[this._pos2 + 3]; + } + get x2() { + return this._structArray.int16[this._pos2 + 4]; + } + get y2() { + return this._structArray.int16[this._pos2 + 5]; + } + get featureIndex() { + return this._structArray.uint32[this._pos4 + 3]; + } + get sourceLayerIndex() { + return this._structArray.uint16[this._pos2 + 8]; + } + get bucketIndex() { + return this._structArray.uint16[this._pos2 + 9]; + } + get anchorPoint() { + return new B(this.anchorPointX, this.anchorPointY); + } + } + R.prototype.size = 20; + class D extends Hl { + get(t) { + return new R(this, t); + } + } + ir("CollisionBoxArray", D); + class N extends Ks { + 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(t) { + this._structArray.uint8[this._pos1 + 37] = t; + } + get hidden() { + return this._structArray.uint8[this._pos1 + 38]; + } + set hidden(t) { + this._structArray.uint8[this._pos1 + 38] = t; + } + get crossTileID() { + return this._structArray.uint32[this._pos4 + 10]; + } + set crossTileID(t) { + this._structArray.uint32[this._pos4 + 10] = t; + } + get associatedIconIndex() { + return this._structArray.int16[this._pos2 + 22]; + } + } + N.prototype.size = 48; + class G extends l { + get(t) { + return new N(this, t); + } + } + ir("PlacedSymbolArray", G); + class te extends Ks { + 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(t) { + this._structArray.uint32[this._pos4 + 12] = t; + } + 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]; + } + } + te.prototype.size = 64; + class Q extends u { + get(t) { + return new te(this, t); + } + } + ir("SymbolInstanceArray", Q); + class ae extends d { + getoffsetX(t) { + return this.float32[1 * t + 0]; + } + } + ir("GlyphOffsetArray", ae); + class ce extends ds { + getx(t) { + return this.int16[3 * t + 0]; + } + gety(t) { + return this.int16[3 * t + 1]; + } + gettileUnitDistanceFromAnchor(t) { + return this.int16[3 * t + 2]; + } + } + ir("SymbolLineVertexArray", ce); + class ve extends Ks { + 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]; + } + } + ve.prototype.size = 12; + class me extends g { + get(t) { + return new ve(this, t); + } + } + ir("TextAnchorOffsetArray", me); + class be extends Ks { + 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]; + } + } + be.prototype.size = 8; + class Pe extends w { + get(t) { + return new be(this, t); + } + } + ir("FeatureIndexArray", Pe); + class _e extends hs {} + class Be extends hs {} + class rt extends hs {} + class Ge extends ps {} + class Xe extends No {} + class tt extends Js {} + class jt extends Gl {} + class Zt extends jo {} + class Tt extends pu {} + class vr extends fu {} + class Jr extends mu {} + class An extends e {} + class Rn extends i {} + class Ln extends C {} + const Wn = ti([{ name: "a_pos", components: 2, type: "Int16" }], 4), + { members: Jn } = Wn; + class Kr { + constructor(t = []) { + (this._forceNewSegmentOnNextPrepare = !1), (this.segments = t); + } + prepareSegment(t, r, o, c) { + const f = this.segments[this.segments.length - 1]; + return ( + t > Kr.MAX_VERTEX_ARRAY_LENGTH && + Lt( + `Max vertices per segment is ${Kr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${Kr.MAX_VERTEX_ARRAY_LENGTH} vertices.` + ), + this._forceNewSegmentOnNextPrepare || + !f || + f.vertexLength + t > Kr.MAX_VERTEX_ARRAY_LENGTH || + f.sortKey !== c + ? this.createNewSegment(r, o, c) + : f + ); + } + createNewSegment(t, r, o) { + const c = { + vertexOffset: t.length, + primitiveOffset: r.length, + vertexLength: 0, + primitiveLength: 0, + vaos: {}, + }; + return ( + o !== void 0 && (c.sortKey = o), + (this._forceNewSegmentOnNextPrepare = !1), + this.segments.push(c), + c + ); + } + getOrCreateLatestSegment(t, r, o) { + return this.prepareSegment(0, t, r, o); + } + forceNewSegmentOnNextPrepare() { + this._forceNewSegmentOnNextPrepare = !0; + } + get() { + return this.segments; + } + destroy() { + for (const t of this.segments) + for (const r in t.vaos) t.vaos[r].destroy(); + } + static simpleSegment(t, r, o, c) { + return new Kr([ + { + vertexOffset: t, + primitiveOffset: r, + vertexLength: o, + primitiveLength: c, + vaos: {}, + sortKey: 0, + }, + ]); + } + } + function Bn(n, t) { + return ( + 256 * (n = Dt(Math.floor(n), 0, 255)) + + Dt(Math.floor(t), 0, 255) + ); + } + (Kr.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1), + ir("SegmentVector", Kr); + const si = ti([ + { 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 mi, + Ci, + $i, + za = { exports: {} }, + go = { exports: {} }, + vo = { exports: {} }, + fs = (function () { + if ($i) return za.exports; + $i = 1; + var n = + (mi || + ((mi = 1), + (go.exports = function (r, o) { + var c, f, _, v, b, S, I, L; + for ( + f = r.length - (c = 3 & r.length), + _ = o, + b = 3432918353, + S = 461845907, + L = 0; + L < f; + + ) + (I = + (255 & r.charCodeAt(L)) | + ((255 & r.charCodeAt(++L)) << 8) | + ((255 & r.charCodeAt(++L)) << 16) | + ((255 & r.charCodeAt(++L)) << 24)), + ++L, + (_ = + 27492 + + (65535 & + (v = + (5 * + (65535 & + (_ = + ((_ ^= I = + ((65535 & + (I = + ((I = + ((65535 & I) * b + + ((((I >>> 16) * b) & 65535) << + 16)) & + 4294967295) << + 15) | + (I >>> 17))) * + S + + ((((I >>> 16) * S) & 65535) << + 16)) & + 4294967295) << + 13) | + (_ >>> 19))) + + (((5 * (_ >>> 16)) & 65535) << 16)) & + 4294967295)) + + (((58964 + (v >>> 16)) & 65535) << 16)); + switch (((I = 0), c)) { + case 3: + I ^= (255 & r.charCodeAt(L + 2)) << 16; + case 2: + I ^= (255 & r.charCodeAt(L + 1)) << 8; + case 1: + _ ^= I = + ((65535 & + (I = + ((I = + ((65535 & (I ^= 255 & r.charCodeAt(L))) * + b + + ((((I >>> 16) * b) & 65535) << 16)) & + 4294967295) << + 15) | + (I >>> 17))) * + S + + ((((I >>> 16) * S) & 65535) << 16)) & + 4294967295; + } + return ( + (_ ^= r.length), + (_ = + (2246822507 * (65535 & (_ ^= _ >>> 16)) + + (((2246822507 * (_ >>> 16)) & 65535) << 16)) & + 4294967295), + (_ = + (3266489909 * (65535 & (_ ^= _ >>> 13)) + + (((3266489909 * (_ >>> 16)) & 65535) << 16)) & + 4294967295), + (_ ^= _ >>> 16) >>> 0 + ); + })), + go.exports), + t = + (Ci || + ((Ci = 1), + (vo.exports = function (r, o) { + for (var c, f = r.length, _ = o ^ f, v = 0; f >= 4; ) + (c = + 1540483477 * + (65535 & + (c = + (255 & r.charCodeAt(v)) | + ((255 & r.charCodeAt(++v)) << 8) | + ((255 & r.charCodeAt(++v)) << 16) | + ((255 & r.charCodeAt(++v)) << 24))) + + (((1540483477 * (c >>> 16)) & 65535) << 16)), + (_ = + (1540483477 * (65535 & _) + + (((1540483477 * (_ >>> 16)) & 65535) << 16)) ^ + (c = + 1540483477 * (65535 & (c ^= c >>> 24)) + + (((1540483477 * (c >>> 16)) & 65535) << 16))), + (f -= 4), + ++v; + switch (f) { + case 3: + _ ^= (255 & r.charCodeAt(v + 2)) << 16; + case 2: + _ ^= (255 & r.charCodeAt(v + 1)) << 8; + case 1: + _ = + 1540483477 * + (65535 & (_ ^= 255 & r.charCodeAt(v))) + + (((1540483477 * (_ >>> 16)) & 65535) << 16); + } + return ( + (_ = + 1540483477 * (65535 & (_ ^= _ >>> 13)) + + (((1540483477 * (_ >>> 16)) & 65535) << 16)), + (_ ^= _ >>> 15) >>> 0 + ); + })), + vo.exports); + return ( + (za.exports = n), + (za.exports.murmur3 = n), + (za.exports.murmur2 = t), + za.exports + ); + })(), + ms = O(fs); + class Vo { + constructor() { + (this.ids = []), (this.positions = []), (this.indexed = !1); + } + add(t, r, o, c) { + this.ids.push(qo(t)), this.positions.push(r, o, c); + } + getPositions(t) { + if (!this.indexed) + throw new Error( + "Trying to get index, but feature positions are not indexed" + ); + const r = qo(t); + let o = 0, + c = this.ids.length - 1; + for (; o < c; ) { + const _ = (o + c) >> 1; + this.ids[_] >= r ? (c = _) : (o = _ + 1); + } + const f = []; + for (; this.ids[o] === r; ) + f.push({ + index: this.positions[3 * o], + start: this.positions[3 * o + 1], + end: this.positions[3 * o + 2], + }), + o++; + return f; + } + static serialize(t, r) { + const o = new Float64Array(t.ids), + c = new Uint32Array(t.positions); + return ( + ta(o, c, 0, o.length - 1), + r && r.push(o.buffer, c.buffer), + { ids: o, positions: c } + ); + } + static deserialize(t) { + const r = new Vo(); + return ( + (r.ids = t.ids), + (r.positions = t.positions), + (r.indexed = !0), + r + ); + } + } + function qo(n) { + const t = +n; + return !isNaN(t) && t <= Number.MAX_SAFE_INTEGER + ? t + : ms(String(n)); + } + function ta(n, t, r, o) { + for (; r < o; ) { + const c = n[(r + o) >> 1]; + let f = r - 1, + _ = o + 1; + for (;;) { + do f++; + while (n[f] < c); + do _--; + while (n[_] > c); + if (f >= _) break; + La(n, f, _), + La(t, 3 * f, 3 * _), + La(t, 3 * f + 1, 3 * _ + 1), + La(t, 3 * f + 2, 3 * _ + 2); + } + _ - r < o - _ + ? (ta(n, t, r, _), (r = _ + 1)) + : (ta(n, t, _ + 1, o), (o = _)); + } + } + function La(n, t, r) { + const o = n[t]; + (n[t] = n[r]), (n[r] = o); + } + ir("FeaturePositionMap", Vo); + class Gi { + constructor(t, r) { + (this.gl = t.gl), (this.location = r); + } + } + class yo extends Gi { + constructor(t, r) { + super(t, r), (this.current = 0); + } + set(t) { + this.current !== t && + ((this.current = t), this.gl.uniform1f(this.location, t)); + } + } + class li extends Gi { + constructor(t, r) { + super(t, r), (this.current = [0, 0, 0, 0]); + } + set(t) { + (t[0] === this.current[0] && + t[1] === this.current[1] && + t[2] === this.current[2] && + t[3] === this.current[3]) || + ((this.current = t), + this.gl.uniform4f(this.location, t[0], t[1], t[2], t[3])); + } + } + class _i extends Gi { + constructor(t, r) { + super(t, r), (this.current = Mr.transparent); + } + set(t) { + (t.r === this.current.r && + t.g === this.current.g && + t.b === this.current.b && + t.a === this.current.a) || + ((this.current = t), + this.gl.uniform4f(this.location, t.r, t.g, t.b, t.a)); + } + } + const ba = new Float32Array(16); + function ci(n) { + return [Bn(255 * n.r, 255 * n.g), Bn(255 * n.b, 255 * n.a)]; + } + class Qs { + constructor(t, r, o) { + (this.value = t), + (this.uniformNames = r.map((c) => `u_${c}`)), + (this.type = o); + } + setUniform(t, r, o) { + t.set(o.constantOr(this.value)); + } + getBinding(t, r, o) { + return this.type === "color" ? new _i(t, r) : new yo(t, r); + } + } + class _s { + constructor(t, r) { + (this.uniformNames = r.map((o) => `u_${o}`)), + (this.patternFrom = null), + (this.patternTo = null), + (this.pixelRatioFrom = 1), + (this.pixelRatioTo = 1); + } + setConstantPatternPositions(t, r) { + (this.pixelRatioFrom = r.pixelRatio), + (this.pixelRatioTo = t.pixelRatio), + (this.patternFrom = r.tlbr), + (this.patternTo = t.tlbr); + } + setUniform(t, r, o, c) { + const f = + c === "u_pattern_to" + ? this.patternTo + : c === "u_pattern_from" + ? this.patternFrom + : c === "u_pixel_ratio_to" + ? this.pixelRatioTo + : c === "u_pixel_ratio_from" + ? this.pixelRatioFrom + : null; + f && t.set(f); + } + getBinding(t, r, o) { + return o.substr(0, 9) === "u_pattern" + ? new li(t, r) + : new yo(t, r); + } + } + class ro { + constructor(t, r, o, c) { + (this.expression = t), + (this.type = o), + (this.maxValue = 0), + (this.paintVertexAttributes = r.map((f) => ({ + name: `a_${f}`, + type: "Float32", + components: o === "color" ? 2 : 1, + offset: 0, + }))), + (this.paintVertexArray = new c()); + } + populatePaintArray(t, r, o, c, f) { + const _ = this.paintVertexArray.length, + v = this.expression.evaluate(new Un(0), r, {}, c, [], f); + this.paintVertexArray.resize(t), this._setPaintValue(_, t, v); + } + updatePaintArray(t, r, o, c) { + const f = this.expression.evaluate({ zoom: 0 }, o, c); + this._setPaintValue(t, r, f); + } + _setPaintValue(t, r, o) { + if (this.type === "color") { + const c = ci(o); + for (let f = t; f < r; f++) + this.paintVertexArray.emplace(f, c[0], c[1]); + } else { + for (let c = t; c < r; c++) + this.paintVertexArray.emplace(c, o); + this.maxValue = Math.max(this.maxValue, Math.abs(o)); + } + } + upload(t) { + this.paintVertexArray && + this.paintVertexArray.arrayBuffer && + (this.paintVertexBuffer && this.paintVertexBuffer.buffer + ? this.paintVertexBuffer.updateData(this.paintVertexArray) + : (this.paintVertexBuffer = t.createVertexBuffer( + this.paintVertexArray, + this.paintVertexAttributes, + this.expression.isStateDependent + ))); + } + destroy() { + this.paintVertexBuffer && this.paintVertexBuffer.destroy(); + } + } + class Da { + constructor(t, r, o, c, f, _) { + (this.expression = t), + (this.uniformNames = r.map((v) => `u_${v}_t`)), + (this.type = o), + (this.useIntegerZoom = c), + (this.zoom = f), + (this.maxValue = 0), + (this.paintVertexAttributes = r.map((v) => ({ + name: `a_${v}`, + type: "Float32", + components: o === "color" ? 4 : 2, + offset: 0, + }))), + (this.paintVertexArray = new _()); + } + populatePaintArray(t, r, o, c, f) { + const _ = this.expression.evaluate( + new Un(this.zoom), + r, + {}, + c, + [], + f + ), + v = this.expression.evaluate( + new Un(this.zoom + 1), + r, + {}, + c, + [], + f + ), + b = this.paintVertexArray.length; + this.paintVertexArray.resize(t), + this._setPaintValue(b, t, _, v); + } + updatePaintArray(t, r, o, c) { + const f = this.expression.evaluate({ zoom: this.zoom }, o, c), + _ = this.expression.evaluate({ zoom: this.zoom + 1 }, o, c); + this._setPaintValue(t, r, f, _); + } + _setPaintValue(t, r, o, c) { + if (this.type === "color") { + const f = ci(o), + _ = ci(c); + for (let v = t; v < r; v++) + this.paintVertexArray.emplace(v, f[0], f[1], _[0], _[1]); + } else { + for (let f = t; f < r; f++) + this.paintVertexArray.emplace(f, o, c); + this.maxValue = Math.max( + this.maxValue, + Math.abs(o), + Math.abs(c) + ); + } + } + upload(t) { + this.paintVertexArray && + this.paintVertexArray.arrayBuffer && + (this.paintVertexBuffer && this.paintVertexBuffer.buffer + ? this.paintVertexBuffer.updateData(this.paintVertexArray) + : (this.paintVertexBuffer = t.createVertexBuffer( + this.paintVertexArray, + this.paintVertexAttributes, + this.expression.isStateDependent + ))); + } + destroy() { + this.paintVertexBuffer && this.paintVertexBuffer.destroy(); + } + setUniform(t, r) { + const o = this.useIntegerZoom ? Math.floor(r.zoom) : r.zoom, + c = Dt( + this.expression.interpolationFactor( + o, + this.zoom, + this.zoom + 1 + ), + 0, + 1 + ); + t.set(c); + } + getBinding(t, r, o) { + return new yo(t, r); + } + } + class xo { + constructor(t, r, o, c, f, _) { + (this.expression = t), + (this.type = r), + (this.useIntegerZoom = o), + (this.zoom = c), + (this.layerId = _), + (this.zoomInPaintVertexArray = new f()), + (this.zoomOutPaintVertexArray = new f()); + } + populatePaintArray(t, r, o) { + const c = this.zoomInPaintVertexArray.length; + this.zoomInPaintVertexArray.resize(t), + this.zoomOutPaintVertexArray.resize(t), + this._setPaintValues( + c, + t, + r.patterns && r.patterns[this.layerId], + o + ); + } + updatePaintArray(t, r, o, c, f) { + this._setPaintValues( + t, + r, + o.patterns && o.patterns[this.layerId], + f + ); + } + _setPaintValues(t, r, o, c) { + if (!c || !o) return; + const { min: f, mid: _, max: v } = o, + b = c[f], + S = c[_], + I = c[v]; + if (b && S && I) + for (let L = t; L < r; L++) + this.zoomInPaintVertexArray.emplace( + L, + S.tl[0], + S.tl[1], + S.br[0], + S.br[1], + b.tl[0], + b.tl[1], + b.br[0], + b.br[1], + S.pixelRatio, + b.pixelRatio + ), + this.zoomOutPaintVertexArray.emplace( + L, + S.tl[0], + S.tl[1], + S.br[0], + S.br[1], + I.tl[0], + I.tl[1], + I.br[0], + I.br[1], + S.pixelRatio, + I.pixelRatio + ); + } + upload(t) { + this.zoomInPaintVertexArray && + this.zoomInPaintVertexArray.arrayBuffer && + this.zoomOutPaintVertexArray && + this.zoomOutPaintVertexArray.arrayBuffer && + ((this.zoomInPaintVertexBuffer = t.createVertexBuffer( + this.zoomInPaintVertexArray, + si.members, + this.expression.isStateDependent + )), + (this.zoomOutPaintVertexBuffer = t.createVertexBuffer( + this.zoomOutPaintVertexArray, + si.members, + this.expression.isStateDependent + ))); + } + destroy() { + this.zoomOutPaintVertexBuffer && + this.zoomOutPaintVertexBuffer.destroy(), + this.zoomInPaintVertexBuffer && + this.zoomInPaintVertexBuffer.destroy(); + } + } + class Cd { + constructor(t, r, o) { + (this.binders = {}), (this._buffers = []); + const c = []; + for (const f in t.paint._values) { + if (!o(f)) continue; + const _ = t.paint.get(f); + if (!(_ instanceof $a && fo(_.property.specification))) + continue; + const v = Sd(f, t.type), + b = _.value, + S = _.property.specification.type, + I = _.property.useIntegerZoom, + L = _.property.specification["property-type"], + F = L === "cross-faded" || L === "cross-faded-data-driven"; + if (b.kind === "constant") + (this.binders[f] = F + ? new _s(b.value, v) + : new Qs(b.value, v, S)), + c.push(`/u_${f}`); + else if (b.kind === "source" || F) { + const q = _u(f, S, "source"); + (this.binders[f] = F + ? new xo(b, S, I, r, q, t.id) + : new ro(b, v, S, q)), + c.push(`/a_${f}`); + } else { + const q = _u(f, S, "composite"); + (this.binders[f] = new Da(b, v, S, I, r, q)), + c.push(`/z_${f}`); + } + } + this.cacheKey = c.sort().join(""); + } + getMaxValue(t) { + const r = this.binders[t]; + return r instanceof ro || r instanceof Da ? r.maxValue : 0; + } + populatePaintArrays(t, r, o, c, f) { + for (const _ in this.binders) { + const v = this.binders[_]; + (v instanceof ro || v instanceof Da || v instanceof xo) && + v.populatePaintArray(t, r, o, c, f); + } + } + setConstantPatternPositions(t, r) { + for (const o in this.binders) { + const c = this.binders[o]; + c instanceof _s && c.setConstantPatternPositions(t, r); + } + } + updatePaintArrays(t, r, o, c, f) { + let _ = !1; + for (const v in t) { + const b = r.getPositions(v); + for (const S of b) { + const I = o.feature(S.index); + for (const L in this.binders) { + const F = this.binders[L]; + if ( + (F instanceof ro || + F instanceof Da || + F instanceof xo) && + F.expression.isStateDependent === !0 + ) { + const q = c.paint.get(L); + (F.expression = q.value), + F.updatePaintArray(S.start, S.end, I, t[v], f), + (_ = !0); + } + } + } + } + return _; + } + defines() { + const t = []; + for (const r in this.binders) { + const o = this.binders[r]; + (o instanceof Qs || o instanceof _s) && + t.push( + ...o.uniformNames.map((c) => `#define HAS_UNIFORM_${c}`) + ); + } + return t; + } + getBinderAttributes() { + const t = []; + for (const r in this.binders) { + const o = this.binders[r]; + if (o instanceof ro || o instanceof Da) + for (let c = 0; c < o.paintVertexAttributes.length; c++) + t.push(o.paintVertexAttributes[c].name); + else if (o instanceof xo) + for (let c = 0; c < si.members.length; c++) + t.push(si.members[c].name); + } + return t; + } + getBinderUniforms() { + const t = []; + for (const r in this.binders) { + const o = this.binders[r]; + if (o instanceof Qs || o instanceof _s || o instanceof Da) + for (const c of o.uniformNames) t.push(c); + } + return t; + } + getPaintVertexBuffers() { + return this._buffers; + } + getUniforms(t, r) { + const o = []; + for (const c in this.binders) { + const f = this.binders[c]; + if (f instanceof Qs || f instanceof _s || f instanceof Da) { + for (const _ of f.uniformNames) + if (r[_]) { + const v = f.getBinding(t, r[_], _); + o.push({ name: _, property: c, binding: v }); + } + } + } + return o; + } + setUniforms(t, r, o, c) { + for (const { name: f, property: _, binding: v } of r) + this.binders[_].setUniform(v, c, o.get(_), f); + } + updatePaintBuffers(t) { + this._buffers = []; + for (const r in this.binders) { + const o = this.binders[r]; + if (t && o instanceof xo) { + const c = + t.fromScale === 2 + ? o.zoomInPaintVertexBuffer + : o.zoomOutPaintVertexBuffer; + c && this._buffers.push(c); + } else + (o instanceof ro || o instanceof Da) && + o.paintVertexBuffer && + this._buffers.push(o.paintVertexBuffer); + } + } + upload(t) { + for (const r in this.binders) { + const o = this.binders[r]; + (o instanceof ro || o instanceof Da || o instanceof xo) && + o.upload(t); + } + this.updatePaintBuffers(); + } + destroy() { + for (const t in this.binders) { + const r = this.binders[t]; + (r instanceof ro || r instanceof Da || r instanceof xo) && + r.destroy(); + } + } + } + class la { + constructor(t, r, o = () => !0) { + this.programConfigurations = {}; + for (const c of t) + this.programConfigurations[c.id] = new Cd(c, r, o); + (this.needsUpload = !1), + (this._featureMap = new Vo()), + (this._bufferOffset = 0); + } + populatePaintArrays(t, r, o, c, f, _) { + for (const v in this.programConfigurations) + this.programConfigurations[v].populatePaintArrays( + t, + r, + c, + f, + _ + ); + r.id !== void 0 && + this._featureMap.add(r.id, o, this._bufferOffset, t), + (this._bufferOffset = t), + (this.needsUpload = !0); + } + updatePaintArrays(t, r, o, c) { + for (const f of o) + this.needsUpload = + this.programConfigurations[f.id].updatePaintArrays( + t, + this._featureMap, + r, + f, + c + ) || this.needsUpload; + } + get(t) { + return this.programConfigurations[t]; + } + upload(t) { + if (this.needsUpload) { + for (const r in this.programConfigurations) + this.programConfigurations[r].upload(t); + this.needsUpload = !1; + } + } + destroy() { + for (const t in this.programConfigurations) + this.programConfigurations[t].destroy(); + } + } + function Sd(n, t) { + return ( + { + "text-opacity": ["opacity"], + "icon-opacity": ["opacity"], + "text-color": ["fill_color"], + "icon-color": ["fill_color"], + "text-halo-color": ["halo_color"], + "icon-halo-color": ["halo_color"], + "text-halo-blur": ["halo_blur"], + "icon-halo-blur": ["halo_blur"], + "text-halo-width": ["halo_width"], + "icon-halo-width": ["halo_width"], + "line-gap-width": ["gapwidth"], + "line-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", + ], + }[n] || [n.replace(`${t}-`, "").replace(/-/g, "_")] + ); + } + function _u(n, t, r) { + const o = { + color: { source: Js, composite: E }, + number: { source: d, composite: Js }, + }, + c = (function (f) { + return { + "line-pattern": { source: jt, composite: jt }, + "fill-pattern": { source: jt, composite: jt }, + "fill-extrusion-pattern": { source: jt, composite: jt }, + }[f]; + })(n); + return (c && c[r]) || o[t][r]; + } + ir("ConstantBinder", Qs), + ir("CrossFadedConstantBinder", _s), + ir("SourceExpressionBinder", ro), + ir("CrossFadedCompositeBinder", xo), + ir("CompositeExpressionBinder", Da), + ir("ProgramConfiguration", Cd, { omit: ["_buffers"] }), + ir("ProgramConfigurationSet", la); + const Wl = Math.pow(2, 14) - 1, + Xl = -Wl - 1; + function bo(n) { + const t = oe / n.extent, + r = n.loadGeometry(); + for (let o = 0; o < r.length; o++) { + const c = r[o]; + for (let f = 0; f < c.length; f++) { + const _ = c[f], + v = Math.round(_.x * t), + b = Math.round(_.y * t); + (_.x = Dt(v, Xl, Wl)), + (_.y = Dt(b, Xl, Wl)), + (v < _.x || v > _.x + 1 || b < _.y || b > _.y + 1) && + Lt( + "Geometry exceeds allowed extent, reduce your vector tile buffer size" + ); + } + } + return r; + } + function no(n, t) { + return { + type: n.type, + id: n.id, + properties: n.properties, + geometry: t ? bo(n) : [], + }; + } + const h_ = -32768; + function K0(n, t, r, o, c) { + n.emplaceBack(h_ + 8 * t + o, h_ + 8 * r + c); + } + class Gp { + constructor(t) { + (this.zoom = t.zoom), + (this.globalState = t.globalState), + (this.overscaling = t.overscaling), + (this.layers = t.layers), + (this.layerIds = this.layers.map((r) => r.id)), + (this.index = t.index), + (this.hasPattern = !1), + (this.layoutVertexArray = new Be()), + (this.indexArray = new Rn()), + (this.segments = new Kr()), + (this.programConfigurations = new la(t.layers, t.zoom)), + (this.stateDependentLayerIds = this.layers + .filter((r) => r.isStateDependent()) + .map((r) => r.id)); + } + populate(t, r, o) { + const c = this.layers[0], + f = []; + let _ = null, + v = !1, + b = c.type === "heatmap"; + if (c.type === "circle") { + const I = c; + (_ = I.layout.get("circle-sort-key")), + (v = !_.isConstant()), + (b = b || I.paint.get("circle-pitch-alignment") === "map"); + } + const S = b ? r.subdivisionGranularity.circle : 1; + for (const { + feature: I, + id: L, + index: F, + sourceLayerIndex: q, + } of t) { + const Z = this.layers[0]._featureFilter.needGeometry, + W = no(I, Z); + if ( + !this.layers[0]._featureFilter.filter( + new Un(this.zoom, { globalState: this.globalState }), + W, + o + ) + ) + continue; + const J = v ? _.evaluate(W, {}, o) : void 0, + le = { + id: L, + properties: I.properties, + type: I.type, + sourceLayerIndex: q, + index: F, + geometry: Z ? W.geometry : bo(I), + patterns: {}, + sortKey: J, + }; + f.push(le); + } + v && f.sort((I, L) => I.sortKey - L.sortKey); + for (const I of f) { + const { geometry: L, index: F, sourceLayerIndex: q } = I, + Z = t[F].feature; + this.addFeature(I, L, F, o, S), + r.featureIndex.insert(Z, L, F, q, this.index); + } + } + update(t, r, o) { + this.stateDependentLayers.length && + this.programConfigurations.updatePaintArrays( + t, + r, + this.stateDependentLayers, + o + ); + } + isEmpty() { + return this.layoutVertexArray.length === 0; + } + uploadPending() { + return !this.uploaded || this.programConfigurations.needsUpload; + } + upload(t) { + this.uploaded || + ((this.layoutVertexBuffer = t.createVertexBuffer( + this.layoutVertexArray, + Jn + )), + (this.indexBuffer = t.createIndexBuffer(this.indexArray))), + this.programConfigurations.upload(t), + (this.uploaded = !0); + } + destroy() { + this.layoutVertexBuffer && + (this.layoutVertexBuffer.destroy(), + this.indexBuffer.destroy(), + this.programConfigurations.destroy(), + this.segments.destroy()); + } + addFeature(t, r, o, c, f = 1) { + let _; + switch (f) { + case 1: + _ = [0, 7]; + break; + case 3: + _ = [0, 2, 5, 7]; + break; + case 5: + _ = [0, 1, 3, 4, 6, 7]; + break; + case 7: + _ = [0, 1, 2, 3, 4, 5, 6, 7]; + break; + default: + throw new Error( + `Invalid circle bucket granularity: ${f}; valid values are 1, 3, 5, 7.` + ); + } + const v = _.length; + for (const b of r) + for (const S of b) { + const I = S.x, + L = S.y; + if (I < 0 || I >= oe || L < 0 || L >= oe) continue; + const F = this.segments.prepareSegment( + v * v, + this.layoutVertexArray, + this.indexArray, + t.sortKey + ), + q = F.vertexLength; + for (let Z = 0; Z < v; Z++) + for (let W = 0; W < v; W++) + K0(this.layoutVertexArray, I, L, _[W], _[Z]); + for (let Z = 0; Z < v - 1; Z++) + for (let W = 0; W < v - 1; W++) { + const J = q + Z * v + W, + le = q + (Z + 1) * v + W; + this.indexArray.emplaceBack(J, le + 1, J + 1), + this.indexArray.emplaceBack(J, le, le + 1); + } + (F.vertexLength += v * v), + (F.primitiveLength += (v - 1) * (v - 1) * 2); + } + this.programConfigurations.populatePaintArrays( + this.layoutVertexArray.length, + t, + o, + {}, + c + ); + } + } + function d_(n, t) { + for (let r = 0; r < n.length; r++) if (Yl(t, n[r])) return !0; + for (let r = 0; r < t.length; r++) if (Yl(n, t[r])) return !0; + return !!Hp(n, t); + } + function J0(n, t, r) { + return !!Yl(n, t) || !!Wp(t, n, r); + } + function p_(n, t) { + if (n.length === 1) return m_(t, n[0]); + for (let r = 0; r < t.length; r++) { + const o = t[r]; + for (let c = 0; c < o.length; c++) if (Yl(n, o[c])) return !0; + } + for (let r = 0; r < n.length; r++) if (m_(t, n[r])) return !0; + for (let r = 0; r < t.length; r++) if (Hp(n, t[r])) return !0; + return !1; + } + function Q0(n, t, r) { + if (n.length > 1) { + if (Hp(n, t)) return !0; + for (let o = 0; o < t.length; o++) + if (Wp(t[o], n, r)) return !0; + } + for (let o = 0; o < n.length; o++) if (Wp(n[o], t, r)) return !0; + return !1; + } + function Hp(n, t) { + if (n.length === 0 || t.length === 0) return !1; + for (let r = 0; r < n.length - 1; r++) { + const o = n[r], + c = n[r + 1]; + for (let f = 0; f < t.length - 1; f++) + if (ey(o, c, t[f], t[f + 1])) return !0; + } + return !1; + } + function ey(n, t, r, o) { + return Rt(n, r, o) !== Rt(t, r, o) && Rt(n, t, r) !== Rt(n, t, o); + } + function Wp(n, t, r) { + const o = r * r; + if (t.length === 1) return n.distSqr(t[0]) < o; + for (let c = 1; c < t.length; c++) + if (f_(n, t[c - 1], t[c]) < o) return !0; + return !1; + } + function f_(n, t, r) { + const o = t.distSqr(r); + if (o === 0) return n.distSqr(t); + const c = + ((n.x - t.x) * (r.x - t.x) + (n.y - t.y) * (r.y - t.y)) / o; + return n.distSqr( + c < 0 ? t : c > 1 ? r : r.sub(t)._mult(c)._add(t) + ); + } + function m_(n, t) { + let r, + o, + c, + f = !1; + for (let _ = 0; _ < n.length; _++) { + r = n[_]; + for (let v = 0, b = r.length - 1; v < r.length; b = v++) + (o = r[v]), + (c = r[b]), + o.y > t.y != c.y > t.y && + t.x < ((c.x - o.x) * (t.y - o.y)) / (c.y - o.y) + o.x && + (f = !f); + } + return f; + } + function Yl(n, t) { + let r = !1; + for (let o = 0, c = n.length - 1; o < n.length; c = o++) { + const f = n[o], + _ = n[c]; + f.y > t.y != _.y > t.y && + t.x < ((_.x - f.x) * (t.y - f.y)) / (_.y - f.y) + f.x && + (r = !r); + } + return r; + } + function ty(n, t, r) { + const o = r[0], + c = r[2]; + if ( + (n.x < o.x && t.x < o.x) || + (n.x > c.x && t.x > c.x) || + (n.y < o.y && t.y < o.y) || + (n.y > c.y && t.y > c.y) + ) + return !1; + const f = Rt(n, t, r[0]); + return ( + f !== Rt(n, t, r[1]) || + f !== Rt(n, t, r[2]) || + f !== Rt(n, t, r[3]) + ); + } + function gu(n, t, r) { + const o = t.paint.get(n).value; + return o.kind === "constant" + ? o.value + : r.programConfigurations.get(t.id).getMaxValue(n); + } + function Pd(n) { + return Math.sqrt(n[0] * n[0] + n[1] * n[1]); + } + function Id(n, t, r, o, c) { + if (!t[0] && !t[1]) return n; + const f = B.convert(t)._mult(c); + r === "viewport" && f._rotate(-o); + const _ = []; + for (let v = 0; v < n.length; v++) _.push(n[v].sub(f)); + return _; + } + let __, g_; + ir("CircleBucket", Gp, { omit: ["layers"] }); + var ry = { + get paint() { + return (g_ = + g_ || + new Ui({ + "circle-radius": new Or(ye.paint_circle["circle-radius"]), + "circle-color": new Or(ye.paint_circle["circle-color"]), + "circle-blur": new Or(ye.paint_circle["circle-blur"]), + "circle-opacity": new Or(ye.paint_circle["circle-opacity"]), + "circle-translate": new wr( + ye.paint_circle["circle-translate"] + ), + "circle-translate-anchor": new wr( + ye.paint_circle["circle-translate-anchor"] + ), + "circle-pitch-scale": new wr( + ye.paint_circle["circle-pitch-scale"] + ), + "circle-pitch-alignment": new wr( + ye.paint_circle["circle-pitch-alignment"] + ), + "circle-stroke-width": new Or( + ye.paint_circle["circle-stroke-width"] + ), + "circle-stroke-color": new Or( + ye.paint_circle["circle-stroke-color"] + ), + "circle-stroke-opacity": new Or( + ye.paint_circle["circle-stroke-opacity"] + ), + })); + }, + get layout() { + return (__ = + __ || + new Ui({ + "circle-sort-key": new Or( + ye.layout_circle["circle-sort-key"] + ), + })); + }, + }; + class ny extends xa { + constructor(t) { + super(t, ry); + } + createBucket(t) { + return new Gp(t); + } + queryRadius(t) { + const r = t; + return ( + gu("circle-radius", this, r) + + gu("circle-stroke-width", this, r) + + Pd(this.paint.get("circle-translate")) + ); + } + queryIntersectsFeature({ + queryGeometry: t, + feature: r, + featureState: o, + geometry: c, + transform: f, + pixelsToTileUnits: _, + unwrappedTileID: v, + getElevation: b, + }) { + const S = Id( + t, + this.paint.get("circle-translate"), + this.paint.get("circle-translate-anchor"), + -f.bearingInRadians, + _ + ), + I = + this.paint.get("circle-radius").evaluate(r, o) + + this.paint.get("circle-stroke-width").evaluate(r, o), + L = this.paint.get("circle-pitch-alignment") === "map", + F = L + ? S + : (function (Z, W, J, le) { + return Z.map((Re) => v_(Re, W, J, le)); + })(S, f, v, b), + q = L ? I * _ : I; + for (const Z of c) + for (const W of Z) { + const J = L ? W : v_(W, f, v, b); + let le = q; + const Re = f.projectTileCoordinates( + W.x, + W.y, + v, + b + ).signedDistanceFromCamera; + if ( + (this.paint.get("circle-pitch-scale") === "viewport" && + this.paint.get("circle-pitch-alignment") === "map" + ? (le *= Re / f.cameraToCenterDistance) + : this.paint.get("circle-pitch-scale") === "map" && + this.paint.get("circle-pitch-alignment") === + "viewport" && + (le *= f.cameraToCenterDistance / Re), + J0(F, J, le)) + ) + return !0; + } + return !1; + } + } + function v_(n, t, r, o) { + const c = t.projectTileCoordinates(n.x, n.y, r, o).point; + return new B( + (0.5 * c.x + 0.5) * t.width, + (0.5 * -c.y + 0.5) * t.height + ); + } + class y_ extends Gp {} + let x_; + ir("HeatmapBucket", y_, { omit: ["layers"] }); + var iy = { + get paint() { + return (x_ = + x_ || + new Ui({ + "heatmap-radius": new Or( + ye.paint_heatmap["heatmap-radius"] + ), + "heatmap-weight": new Or( + ye.paint_heatmap["heatmap-weight"] + ), + "heatmap-intensity": new wr( + ye.paint_heatmap["heatmap-intensity"] + ), + "heatmap-color": new Ul(ye.paint_heatmap["heatmap-color"]), + "heatmap-opacity": new wr( + ye.paint_heatmap["heatmap-opacity"] + ), + })); + }, + }; + function Xp(n, { width: t, height: r }, o, c) { + if (c) { + if (c instanceof Uint8ClampedArray) + c = new Uint8Array(c.buffer); + else if (c.length !== t * r * o) + throw new RangeError( + `mismatched image size. expected: ${c.length} but got: ${ + t * r * o + }` + ); + } else c = new Uint8Array(t * r * o); + return (n.width = t), (n.height = r), (n.data = c), n; + } + function b_(n, { width: t, height: r }, o) { + if (t === n.width && r === n.height) return; + const c = Xp({}, { width: t, height: r }, o); + Yp( + n, + c, + { x: 0, y: 0 }, + { x: 0, y: 0 }, + { width: Math.min(n.width, t), height: Math.min(n.height, r) }, + o + ), + (n.width = t), + (n.height = r), + (n.data = c.data); + } + function Yp(n, t, r, o, c, f) { + if (c.width === 0 || c.height === 0) return t; + if ( + c.width > n.width || + c.height > n.height || + r.x > n.width - c.width || + r.y > n.height - c.height + ) + throw new RangeError( + "out of range source coordinates for image copy" + ); + if ( + c.width > t.width || + c.height > t.height || + o.x > t.width - c.width || + o.y > t.height - c.height + ) + throw new RangeError( + "out of range destination coordinates for image copy" + ); + const _ = n.data, + v = t.data; + if (_ === v) + throw new Error( + "srcData equals dstData, so image is already copied" + ); + for (let b = 0; b < c.height; b++) { + const S = ((r.y + b) * n.width + r.x) * f, + I = ((o.y + b) * t.width + o.x) * f; + for (let L = 0; L < c.width * f; L++) v[I + L] = _[S + L]; + } + return t; + } + class vu { + constructor(t, r) { + Xp(this, t, 1, r); + } + resize(t) { + b_(this, t, 1); + } + clone() { + return new vu( + { width: this.width, height: this.height }, + new Uint8Array(this.data) + ); + } + static copy(t, r, o, c, f) { + Yp(t, r, o, c, f, 1); + } + } + class ca { + constructor(t, r) { + Xp(this, t, 4, r); + } + resize(t) { + b_(this, t, 4); + } + replace(t, r) { + r + ? this.data.set(t) + : (this.data = + t instanceof Uint8ClampedArray + ? new Uint8Array(t.buffer) + : t); + } + clone() { + return new ca( + { width: this.width, height: this.height }, + new Uint8Array(this.data) + ); + } + static copy(t, r, o, c, f) { + Yp(t, r, o, c, f, 4); + } + setPixel(t, r, o) { + const c = 4 * (t * this.width + r); + (this.data[c + 0] = Math.round((255 * o.r) / o.a)), + (this.data[c + 1] = Math.round((255 * o.g) / o.a)), + (this.data[c + 2] = Math.round((255 * o.b) / o.a)), + (this.data[c + 3] = Math.round(255 * o.a)); + } + } + function w_(n) { + const t = {}, + r = n.resolution || 256, + o = n.clips ? n.clips.length : 1, + c = n.image || new ca({ width: r, height: o }); + if ((Math.log(r) / Math.LN2) % 1 != 0) + throw new Error(`width is not a power of 2 - ${r}`); + const f = (_, v, b) => { + t[n.evaluationKey] = b; + const S = n.expression.evaluate(t); + c.setPixel(_ / 4 / r, v / 4, S); + }; + if (n.clips) + for (let _ = 0, v = 0; _ < o; ++_, v += 4 * r) + for (let b = 0, S = 0; b < r; b++, S += 4) { + const I = b / (r - 1), + { start: L, end: F } = n.clips[_]; + f(v, S, L * (1 - I) + F * I); + } + else + for (let _ = 0, v = 0; _ < r; _++, v += 4) f(0, v, _ / (r - 1)); + return c; + } + ir("AlphaImage", vu), ir("RGBAImage", ca); + const Kp = "big-fb"; + class ay extends xa { + createBucket(t) { + return new y_(t); + } + constructor(t) { + super(t, iy), + (this.heatmapFbos = new Map()), + this._updateColorRamp(); + } + _handleSpecialPaintPropertyUpdate(t) { + t === "heatmap-color" && this._updateColorRamp(); + } + _updateColorRamp() { + (this.colorRamp = w_({ + expression: + this._transitionablePaint._values["heatmap-color"].value + .expression, + evaluationKey: "heatmapDensity", + image: this.colorRamp, + })), + (this.colorRampTexture = null); + } + resize() { + this.heatmapFbos.has(Kp) && this.heatmapFbos.delete(Kp); + } + queryRadius() { + return 0; + } + queryIntersectsFeature() { + return !1; + } + hasOffscreenPass() { + return ( + this.paint.get("heatmap-opacity") !== 0 && + this.visibility !== "none" + ); + } + } + let T_; + var oy = { + get paint() { + return (T_ = + T_ || + new Ui({ + "hillshade-illumination-direction": new wr( + ye.paint_hillshade["hillshade-illumination-direction"] + ), + "hillshade-illumination-altitude": new wr( + ye.paint_hillshade["hillshade-illumination-altitude"] + ), + "hillshade-illumination-anchor": new wr( + ye.paint_hillshade["hillshade-illumination-anchor"] + ), + "hillshade-exaggeration": new wr( + ye.paint_hillshade["hillshade-exaggeration"] + ), + "hillshade-shadow-color": new wr( + ye.paint_hillshade["hillshade-shadow-color"] + ), + "hillshade-highlight-color": new wr( + ye.paint_hillshade["hillshade-highlight-color"] + ), + "hillshade-accent-color": new wr( + ye.paint_hillshade["hillshade-accent-color"] + ), + "hillshade-method": new wr( + ye.paint_hillshade["hillshade-method"] + ), + })); + }, + }; + class sy extends xa { + constructor(t) { + super(t, oy), + this.recalculate({ zoom: 0, zoomHistory: {} }, void 0); + } + getIlluminationProperties() { + let t = this.paint.get( + "hillshade-illumination-direction" + ).values, + r = this.paint.get("hillshade-illumination-altitude").values, + o = this.paint.get("hillshade-highlight-color").values, + c = this.paint.get("hillshade-shadow-color").values; + const f = Math.max(t.length, r.length, o.length, c.length); + (t = t.concat(Array(f - t.length).fill(t.at(-1)))), + (r = r.concat(Array(f - r.length).fill(r.at(-1)))), + (o = o.concat(Array(f - o.length).fill(o.at(-1)))), + (c = c.concat(Array(f - c.length).fill(c.at(-1)))); + const _ = r.map(mr); + return { + directionRadians: t.map(mr), + altitudeRadians: _, + shadowColor: c, + highlightColor: o, + }; + } + hasOffscreenPass() { + return ( + this.paint.get("hillshade-exaggeration") !== 0 && + this.visibility !== "none" + ); + } + } + let C_; + var ly = { + get paint() { + return (C_ = + C_ || + new Ui({ + "color-relief-opacity": new wr( + ye["paint_color-relief"]["color-relief-opacity"] + ), + "color-relief-color": new Ul( + ye["paint_color-relief"]["color-relief-color"] + ), + })); + }, + }; + class Jp { + constructor(t, r, o, c) { + (this.context = t), + (this.format = o), + (this.texture = t.gl.createTexture()), + this.update(r, c); + } + update(t, r, o) { + const { width: c, height: f } = t, + _ = !( + (this.size && this.size[0] === c && this.size[1] === f) || + o + ), + { context: v } = this, + { gl: b } = v; + if ( + ((this.useMipmap = !!(r && r.useMipmap)), + b.bindTexture(b.TEXTURE_2D, this.texture), + v.pixelStoreUnpackFlipY.set(!1), + v.pixelStoreUnpack.set(1), + v.pixelStoreUnpackPremultiplyAlpha.set( + this.format === b.RGBA && (!r || r.premultiply !== !1) + ), + _) + ) + (this.size = [c, f]), + t instanceof HTMLImageElement || + t instanceof HTMLCanvasElement || + t instanceof HTMLVideoElement || + t instanceof ImageData || + Qt(t) + ? b.texImage2D( + b.TEXTURE_2D, + 0, + this.format, + this.format, + b.UNSIGNED_BYTE, + t + ) + : b.texImage2D( + b.TEXTURE_2D, + 0, + this.format, + c, + f, + 0, + this.format, + b.UNSIGNED_BYTE, + t.data + ); + else { + const { x: S, y: I } = o || { x: 0, y: 0 }; + t instanceof HTMLImageElement || + t instanceof HTMLCanvasElement || + t instanceof HTMLVideoElement || + t instanceof ImageData || + Qt(t) + ? b.texSubImage2D( + b.TEXTURE_2D, + 0, + S, + I, + b.RGBA, + b.UNSIGNED_BYTE, + t + ) + : b.texSubImage2D( + b.TEXTURE_2D, + 0, + S, + I, + c, + f, + b.RGBA, + b.UNSIGNED_BYTE, + t.data + ); + } + this.useMipmap && + this.isSizePowerOfTwo() && + b.generateMipmap(b.TEXTURE_2D), + v.pixelStoreUnpackFlipY.setDefault(), + v.pixelStoreUnpack.setDefault(), + v.pixelStoreUnpackPremultiplyAlpha.setDefault(); + } + bind(t, r, o) { + const { context: c } = this, + { gl: f } = c; + f.bindTexture(f.TEXTURE_2D, this.texture), + o !== f.LINEAR_MIPMAP_NEAREST || + this.isSizePowerOfTwo() || + (o = f.LINEAR), + t !== this.filter && + (f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MAG_FILTER, t), + f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MIN_FILTER, o || t), + (this.filter = t)), + r !== this.wrap && + (f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_S, r), + f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_T, r), + (this.wrap = r)); + } + isSizePowerOfTwo() { + return ( + this.size[0] === this.size[1] && + (Math.log(this.size[0]) / Math.LN2) % 1 == 0 + ); + } + destroy() { + const { gl: t } = this.context; + t.deleteTexture(this.texture), (this.texture = null); + } + } + class S_ { + constructor(t, r, o, c = 1, f = 1, _ = 1, v = 0) { + if (((this.uid = t), r.height !== r.width)) + throw new RangeError("DEM tiles must be square"); + if (o && !["mapbox", "terrarium", "custom"].includes(o)) + return void Lt( + `"${o}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".` + ); + this.stride = r.height; + const b = (this.dim = r.height - 2); + switch (((this.data = new Uint32Array(r.data.buffer)), o)) { + case "terrarium": + (this.redFactor = 256), + (this.greenFactor = 1), + (this.blueFactor = 1 / 256), + (this.baseShift = 32768); + break; + case "custom": + (this.redFactor = c), + (this.greenFactor = f), + (this.blueFactor = _), + (this.baseShift = v); + break; + default: + (this.redFactor = 6553.6), + (this.greenFactor = 25.6), + (this.blueFactor = 0.1), + (this.baseShift = 1e4); + } + for (let S = 0; S < b; S++) + (this.data[this._idx(-1, S)] = this.data[this._idx(0, S)]), + (this.data[this._idx(b, S)] = + this.data[this._idx(b - 1, S)]), + (this.data[this._idx(S, -1)] = this.data[this._idx(S, 0)]), + (this.data[this._idx(S, b)] = + this.data[this._idx(S, b - 1)]); + (this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)]), + (this.data[this._idx(b, -1)] = + this.data[this._idx(b - 1, 0)]), + (this.data[this._idx(-1, b)] = + this.data[this._idx(0, b - 1)]), + (this.data[this._idx(b, b)] = + this.data[this._idx(b - 1, b - 1)]), + (this.min = Number.MAX_SAFE_INTEGER), + (this.max = Number.MIN_SAFE_INTEGER); + for (let S = 0; S < b; S++) + for (let I = 0; I < b; I++) { + const L = this.get(S, I); + L > this.max && (this.max = L), + L < this.min && (this.min = L); + } + } + get(t, r) { + const o = new Uint8Array(this.data.buffer), + c = 4 * this._idx(t, r); + return this.unpack(o[c], o[c + 1], o[c + 2]); + } + getUnpackVector() { + return [ + this.redFactor, + this.greenFactor, + this.blueFactor, + this.baseShift, + ]; + } + _idx(t, r) { + if (t < -1 || t >= this.dim + 1 || r < -1 || r >= this.dim + 1) + throw new RangeError( + "out of range source coordinates for DEM data" + ); + return (r + 1) * this.stride + (t + 1); + } + unpack(t, r, o) { + return ( + t * this.redFactor + + r * this.greenFactor + + o * this.blueFactor - + this.baseShift + ); + } + pack(t) { + return P_(t, this.getUnpackVector()); + } + getPixels() { + return new ca( + { width: this.stride, height: this.stride }, + new Uint8Array(this.data.buffer) + ); + } + backfillBorder(t, r, o) { + if (this.dim !== t.dim) + throw new Error("dem dimension mismatch"); + let c = r * this.dim, + f = r * this.dim + this.dim, + _ = o * this.dim, + v = o * this.dim + this.dim; + switch (r) { + case -1: + c = f - 1; + break; + case 1: + f = c + 1; + } + switch (o) { + case -1: + _ = v - 1; + break; + case 1: + v = _ + 1; + } + const b = -r * this.dim, + S = -o * this.dim; + for (let I = _; I < v; I++) + for (let L = c; L < f; L++) + this.data[this._idx(L, I)] = + t.data[this._idx(L + b, I + S)]; + } + } + function P_(n, t) { + const r = t[0], + o = t[1], + c = t[2], + f = t[3], + _ = Math.min(r, o, c), + v = Math.round((n + f) / _); + return { + r: Math.floor((v * _) / r) % 256, + g: Math.floor((v * _) / o) % 256, + b: Math.floor((v * _) / c) % 256, + }; + } + ir("DEMData", S_); + class cy extends xa { + constructor(t) { + super(t, ly); + } + _createColorRamp(t) { + const r = { elevationStops: [], colorStops: [] }, + o = + this._transitionablePaint._values["color-relief-color"] + .value.expression; + if ( + o instanceof Zs && + o._styleExpression.expression instanceof Di + ) { + this.colorRampExpression = o; + const _ = o._styleExpression.expression; + (r.elevationStops = _.labels), (r.colorStops = []); + for (const v of r.elevationStops) + r.colorStops.push( + _.evaluate({ globals: { elevation: v } }) + ); + } + if ( + (r.elevationStops.length < 1 && + ((r.elevationStops = [0]), + (r.colorStops = [Mr.transparent])), + r.elevationStops.length < 2 && + (r.elevationStops.push(r.elevationStops[0] + 1), + r.colorStops.push(r.colorStops[0])), + r.elevationStops.length <= t) + ) + return r; + const c = { elevationStops: [], colorStops: [] }, + f = (r.elevationStops.length - 1) / (t - 1); + for (let _ = 0; _ < r.elevationStops.length - 0.5; _ += f) + c.elevationStops.push(r.elevationStops[Math.round(_)]), + c.colorStops.push(r.colorStops[Math.round(_)]); + return ( + Lt( + `Too many colors in specification of ${this.id} color-relief layer, may not render properly.` + ), + c + ); + } + _colorRampChanged() { + return ( + this.colorRampExpression != + this._transitionablePaint._values["color-relief-color"].value + .expression + ); + } + getColorRampTextures(t, r, o) { + if (this.colorRampTextures && !this._colorRampChanged()) + return this.colorRampTextures; + const c = this._createColorRamp(r), + f = new ca({ width: c.colorStops.length, height: 1 }), + _ = new ca({ width: c.colorStops.length, height: 1 }); + for (let v = 0; v < c.elevationStops.length; v++) { + const b = P_(c.elevationStops[v], o); + _.setPixel(0, v, new Mr(b.r / 255, b.g / 255, b.b / 255, 1)), + f.setPixel(0, v, c.colorStops[v]); + } + return ( + (this.colorRampTextures = { + elevationTexture: new Jp(t, _, t.gl.RGBA), + colorTexture: new Jp(t, f, t.gl.RGBA), + }), + this.colorRampTextures + ); + } + hasOffscreenPass() { + return this.visibility !== "none" && !!this.colorRampTextures; + } + } + const uy = ti([{ name: "a_pos", components: 2, type: "Int16" }], 4), + { members: hy } = uy; + function Qp(n, t, r) { + const o = r.patternDependencies; + let c = !1; + for (const f of t) { + const _ = f.paint.get(`${n}-pattern`); + _.isConstant() || (c = !0); + const v = _.constantOr(null); + v && ((c = !0), (o[v.to] = !0), (o[v.from] = !0)); + } + return c; + } + function ef(n, t, r, o, c) { + const f = c.patternDependencies; + for (const _ of t) { + const v = _.paint.get(`${n}-pattern`).value; + if (v.kind !== "constant") { + let b = v.evaluate({ zoom: o - 1 }, r, {}, c.availableImages), + S = v.evaluate({ zoom: o }, r, {}, c.availableImages), + I = v.evaluate({ zoom: o + 1 }, r, {}, c.availableImages); + (b = b && b.name ? b.name : b), + (S = S && S.name ? S.name : S), + (I = I && I.name ? I.name : I), + (f[b] = !0), + (f[S] = !0), + (f[I] = !0), + (r.patterns[_.id] = { min: b, mid: S, max: I }); + } + } + return r; + } + function I_(n, t, r, o, c) { + let f; + if ( + c === + (function (_, v, b, S) { + let I = 0; + for (let L = v, F = b - S; L < b; L += S) + (I += (_[F] - _[L]) * (_[L + 1] + _[F + 1])), (F = L); + return I; + })(n, t, r, o) > + 0 + ) + for (let _ = t; _ < r; _ += o) + f = E_((_ / o) | 0, n[_], n[_ + 1], f); + else + for (let _ = r - o; _ >= t; _ -= o) + f = E_((_ / o) | 0, n[_], n[_ + 1], f); + return f && Kl(f, f.next) && (wu(f), (f = f.next)), f; + } + function el(n, t) { + if (!n) return n; + t || (t = n); + let r, + o = n; + do + if ( + ((r = !1), + o.steiner || (!Kl(o, o.next) && ii(o.prev, o, o.next) !== 0)) + ) + o = o.next; + else { + if ((wu(o), (o = t = o.prev), o === o.next)) break; + r = !0; + } + while (r || o !== t); + return t; + } + function yu(n, t, r, o, c, f, _) { + if (!n) return; + !_ && + f && + (function (b, S, I, L) { + let F = b; + do + F.z === 0 && (F.z = tf(F.x, F.y, S, I, L)), + (F.prevZ = F.prev), + (F.nextZ = F.next), + (F = F.next); + while (F !== b); + (F.prevZ.nextZ = null), + (F.prevZ = null), + (function (q) { + let Z, + W = 1; + do { + let J, + le = q; + q = null; + let Re = null; + for (Z = 0; le; ) { + Z++; + let xe = le, + Ce = 0; + for ( + let lt = 0; + lt < W && (Ce++, (xe = xe.nextZ), xe); + lt++ + ); + let Ye = W; + for (; Ce > 0 || (Ye > 0 && xe); ) + Ce !== 0 && (Ye === 0 || !xe || le.z <= xe.z) + ? ((J = le), (le = le.nextZ), Ce--) + : ((J = xe), (xe = xe.nextZ), Ye--), + Re ? (Re.nextZ = J) : (q = J), + (J.prevZ = Re), + (Re = J); + le = xe; + } + (Re.nextZ = null), (W *= 2); + } while (Z > 1); + })(F); + })(n, o, c, f); + let v = n; + for (; n.prev !== n.next; ) { + const b = n.prev, + S = n.next; + if (f ? py(n, o, c, f) : dy(n)) + t.push(b.i, n.i, S.i), wu(n), (n = S.next), (v = S.next); + else if ((n = S) === v) { + _ + ? _ === 1 + ? yu((n = fy(el(n), t)), t, r, o, c, f, 2) + : _ === 2 && my(n, t, r, o, c, f) + : yu(el(n), t, r, o, c, f, 1); + break; + } + } + } + function dy(n) { + const t = n.prev, + r = n, + o = n.next; + if (ii(t, r, o) >= 0) return !1; + const c = t.x, + f = r.x, + _ = o.x, + v = t.y, + b = r.y, + S = o.y, + I = Math.min(c, f, _), + L = Math.min(v, b, S), + F = Math.max(c, f, _), + q = Math.max(v, b, S); + let Z = o.next; + for (; Z !== t; ) { + if ( + Z.x >= I && + Z.x <= F && + Z.y >= L && + Z.y <= q && + xu(c, v, f, b, _, S, Z.x, Z.y) && + ii(Z.prev, Z, Z.next) >= 0 + ) + return !1; + Z = Z.next; + } + return !0; + } + function py(n, t, r, o) { + const c = n.prev, + f = n, + _ = n.next; + if (ii(c, f, _) >= 0) return !1; + const v = c.x, + b = f.x, + S = _.x, + I = c.y, + L = f.y, + F = _.y, + q = Math.min(v, b, S), + Z = Math.min(I, L, F), + W = Math.max(v, b, S), + J = Math.max(I, L, F), + le = tf(q, Z, t, r, o), + Re = tf(W, J, t, r, o); + let xe = n.prevZ, + Ce = n.nextZ; + for (; xe && xe.z >= le && Ce && Ce.z <= Re; ) { + if ( + (xe.x >= q && + xe.x <= W && + xe.y >= Z && + xe.y <= J && + xe !== c && + xe !== _ && + xu(v, I, b, L, S, F, xe.x, xe.y) && + ii(xe.prev, xe, xe.next) >= 0) || + ((xe = xe.prevZ), + Ce.x >= q && + Ce.x <= W && + Ce.y >= Z && + Ce.y <= J && + Ce !== c && + Ce !== _ && + xu(v, I, b, L, S, F, Ce.x, Ce.y) && + ii(Ce.prev, Ce, Ce.next) >= 0) + ) + return !1; + Ce = Ce.nextZ; + } + for (; xe && xe.z >= le; ) { + if ( + xe.x >= q && + xe.x <= W && + xe.y >= Z && + xe.y <= J && + xe !== c && + xe !== _ && + xu(v, I, b, L, S, F, xe.x, xe.y) && + ii(xe.prev, xe, xe.next) >= 0 + ) + return !1; + xe = xe.prevZ; + } + for (; Ce && Ce.z <= Re; ) { + if ( + Ce.x >= q && + Ce.x <= W && + Ce.y >= Z && + Ce.y <= J && + Ce !== c && + Ce !== _ && + xu(v, I, b, L, S, F, Ce.x, Ce.y) && + ii(Ce.prev, Ce, Ce.next) >= 0 + ) + return !1; + Ce = Ce.nextZ; + } + return !0; + } + function fy(n, t) { + let r = n; + do { + const o = r.prev, + c = r.next.next; + !Kl(o, c) && + k_(o, r, r.next, c) && + bu(o, c) && + bu(c, o) && + (t.push(o.i, r.i, c.i), wu(r), wu(r.next), (r = n = c)), + (r = r.next); + } while (r !== n); + return el(r); + } + function my(n, t, r, o, c, f) { + let _ = n; + do { + let v = _.next.next; + for (; v !== _.prev; ) { + if (_.i !== v.i && xy(_, v)) { + let b = A_(_, v); + return ( + (_ = el(_, _.next)), + (b = el(b, b.next)), + yu(_, t, r, o, c, f, 0), + void yu(b, t, r, o, c, f, 0) + ); + } + v = v.next; + } + _ = _.next; + } while (_ !== n); + } + function _y(n, t) { + let r = n.x - t.x; + return ( + r === 0 && + ((r = n.y - t.y), r === 0) && + (r = + (n.next.y - n.y) / (n.next.x - n.x) - + (t.next.y - t.y) / (t.next.x - t.x)), + r + ); + } + function gy(n, t) { + const r = (function (c, f) { + let _ = f; + const v = c.x, + b = c.y; + let S, + I = -1 / 0; + if (Kl(c, _)) return _; + do { + if (Kl(c, _.next)) return _.next; + if (b <= _.y && b >= _.next.y && _.next.y !== _.y) { + const W = + _.x + ((b - _.y) * (_.next.x - _.x)) / (_.next.y - _.y); + if ( + W <= v && + W > I && + ((I = W), (S = _.x < _.next.x ? _ : _.next), W === v) + ) + return S; + } + _ = _.next; + } while (_ !== f); + if (!S) return null; + const L = S, + F = S.x, + q = S.y; + let Z = 1 / 0; + _ = S; + do { + if ( + v >= _.x && + _.x >= F && + v !== _.x && + M_(b < q ? v : I, b, F, q, b < q ? I : v, b, _.x, _.y) + ) { + const W = Math.abs(b - _.y) / (v - _.x); + bu(_, c) && + (W < Z || + (W === Z && + (_.x > S.x || (_.x === S.x && vy(S, _))))) && + ((S = _), (Z = W)); + } + _ = _.next; + } while (_ !== L); + return S; + })(n, t); + if (!r) return t; + const o = A_(r, n); + return el(o, o.next), el(r, r.next); + } + function vy(n, t) { + return ii(n.prev, n, t.prev) < 0 && ii(t.next, n, n.next) < 0; + } + function tf(n, t, r, o, c) { + return ( + (n = + 1431655765 & + ((n = + 858993459 & + ((n = + 252645135 & + ((n = 16711935 & ((n = ((n - r) * c) | 0) | (n << 8))) | + (n << 4))) | + (n << 2))) | + (n << 1))) | + ((t = + 1431655765 & + ((t = + 858993459 & + ((t = + 252645135 & + ((t = 16711935 & ((t = ((t - o) * c) | 0) | (t << 8))) | + (t << 4))) | + (t << 2))) | + (t << 1))) << + 1) + ); + } + function yy(n) { + let t = n, + r = n; + do + (t.x < r.x || (t.x === r.x && t.y < r.y)) && (r = t), + (t = t.next); + while (t !== n); + return r; + } + function M_(n, t, r, o, c, f, _, v) { + return ( + (c - _) * (t - v) >= (n - _) * (f - v) && + (n - _) * (o - v) >= (r - _) * (t - v) && + (r - _) * (f - v) >= (c - _) * (o - v) + ); + } + function xu(n, t, r, o, c, f, _, v) { + return !(n === _ && t === v) && M_(n, t, r, o, c, f, _, v); + } + function xy(n, t) { + return ( + n.next.i !== t.i && + n.prev.i !== t.i && + !(function (r, o) { + let c = r; + do { + if ( + c.i !== r.i && + c.next.i !== r.i && + c.i !== o.i && + c.next.i !== o.i && + k_(c, c.next, r, o) + ) + return !0; + c = c.next; + } while (c !== r); + return !1; + })(n, t) && + ((bu(n, t) && + bu(t, n) && + (function (r, o) { + let c = r, + f = !1; + const _ = (r.x + o.x) / 2, + v = (r.y + o.y) / 2; + do + c.y > v != c.next.y > v && + c.next.y !== c.y && + _ < + ((c.next.x - c.x) * (v - c.y)) / (c.next.y - c.y) + + c.x && + (f = !f), + (c = c.next); + while (c !== r); + return f; + })(n, t) && + (ii(n.prev, n, t.prev) || ii(n, t.prev, t))) || + (Kl(n, t) && + ii(n.prev, n, n.next) > 0 && + ii(t.prev, t, t.next) > 0)) + ); + } + function ii(n, t, r) { + return (t.y - n.y) * (r.x - t.x) - (t.x - n.x) * (r.y - t.y); + } + function Kl(n, t) { + return n.x === t.x && n.y === t.y; + } + function k_(n, t, r, o) { + const c = kd(ii(n, t, r)), + f = kd(ii(n, t, o)), + _ = kd(ii(r, o, n)), + v = kd(ii(r, o, t)); + return ( + (c !== f && _ !== v) || + !(c !== 0 || !Md(n, r, t)) || + !(f !== 0 || !Md(n, o, t)) || + !(_ !== 0 || !Md(r, n, o)) || + !(v !== 0 || !Md(r, t, o)) + ); + } + function Md(n, t, r) { + return ( + t.x <= Math.max(n.x, r.x) && + t.x >= Math.min(n.x, r.x) && + t.y <= Math.max(n.y, r.y) && + t.y >= Math.min(n.y, r.y) + ); + } + function kd(n) { + return n > 0 ? 1 : n < 0 ? -1 : 0; + } + function bu(n, t) { + return ii(n.prev, n, n.next) < 0 + ? ii(n, t, n.next) >= 0 && ii(n, n.prev, t) >= 0 + : ii(n, t, n.prev) < 0 || ii(n, n.next, t) < 0; + } + function A_(n, t) { + const r = rf(n.i, n.x, n.y), + o = rf(t.i, t.x, t.y), + c = n.next, + f = t.prev; + return ( + (n.next = t), + (t.prev = n), + (r.next = c), + (c.prev = r), + (o.next = r), + (r.prev = o), + (f.next = o), + (o.prev = f), + o + ); + } + function E_(n, t, r, o) { + const c = rf(n, t, r); + return ( + o + ? ((c.next = o.next), + (c.prev = o), + (o.next.prev = c), + (o.next = c)) + : ((c.prev = c), (c.next = c)), + c + ); + } + function wu(n) { + (n.next.prev = n.prev), + (n.prev.next = n.next), + n.prevZ && (n.prevZ.nextZ = n.nextZ), + n.nextZ && (n.nextZ.prevZ = n.prevZ); + } + function rf(n, t, r) { + return { + i: n, + x: t, + y: r, + prev: null, + next: null, + z: 0, + prevZ: null, + nextZ: null, + steiner: !1, + }; + } + class Jl { + constructor(t, r) { + if (r > t) + throw new Error( + "Min granularity must not be greater than base granularity." + ); + (this._baseZoomGranularity = t), (this._minGranularity = r); + } + getGranularityForZoomLevel(t) { + return Math.max( + Math.floor(this._baseZoomGranularity / (1 << t)), + this._minGranularity, + 1 + ); + } + } + class Ad { + constructor(t) { + (this.fill = t.fill), + (this.line = t.line), + (this.tile = t.tile), + (this.stencil = t.stencil), + (this.circle = t.circle); + } + } + (Ad.noSubdivision = new Ad({ + fill: new Jl(0, 0), + line: new Jl(0, 0), + tile: new Jl(0, 0), + stencil: new Jl(0, 0), + circle: 1, + })), + ir("SubdivisionGranularityExpression", Jl), + ir("SubdivisionGranularitySetting", Ad); + const Ql = -32768, + Tu = 32767; + class by { + constructor(t, r) { + (this._vertexBuffer = []), + (this._vertexDictionary = new Map()), + (this._used = !1), + (this._granularity = t), + (this._granularityCellSize = oe / t), + (this._canonical = r); + } + _getKey(t, r) { + return ((t += 32768) << 16) | (r + 32768); + } + _vertexToIndex(t, r) { + if (t < -32768 || r < -32768 || t > 32767 || r > 32767) + throw new Error( + "Vertex coordinates are out of signed 16 bit integer range." + ); + const o = 0 | Math.round(t), + c = 0 | Math.round(r), + f = this._getKey(o, c); + if (this._vertexDictionary.has(f)) + return this._vertexDictionary.get(f); + const _ = this._vertexBuffer.length / 2; + return ( + this._vertexDictionary.set(f, _), + this._vertexBuffer.push(o, c), + _ + ); + } + _subdivideTrianglesScanline(t) { + if (this._granularity < 2) + return (function (c, f) { + const _ = []; + for (let v = 0; v < f.length; v += 3) { + const b = f[v], + S = f[v + 1], + I = f[v + 2], + L = c[2 * b], + F = c[2 * b + 1]; + (c[2 * S] - L) * (c[2 * I + 1] - F) - + (c[2 * S + 1] - F) * (c[2 * I] - L) > + 0 + ? (_.push(b), _.push(I), _.push(S)) + : (_.push(b), _.push(S), _.push(I)); + } + return _; + })(this._vertexBuffer, t); + const r = [], + o = t.length; + for (let c = 0; c < o; c += 3) { + const f = [t[c + 0], t[c + 1], t[c + 2]], + _ = [ + this._vertexBuffer[2 * t[c + 0] + 0], + this._vertexBuffer[2 * t[c + 0] + 1], + this._vertexBuffer[2 * t[c + 1] + 0], + this._vertexBuffer[2 * t[c + 1] + 1], + this._vertexBuffer[2 * t[c + 2] + 0], + this._vertexBuffer[2 * t[c + 2] + 1], + ]; + let v = 1 / 0, + b = 1 / 0, + S = -1 / 0, + I = -1 / 0; + for (let W = 0; W < 3; W++) { + const J = _[2 * W], + le = _[2 * W + 1]; + (v = Math.min(v, J)), + (S = Math.max(S, J)), + (b = Math.min(b, le)), + (I = Math.max(I, le)); + } + if (v === S || b === I) continue; + const L = Math.floor(v / this._granularityCellSize), + F = Math.ceil(S / this._granularityCellSize), + q = Math.floor(b / this._granularityCellSize), + Z = Math.ceil(I / this._granularityCellSize); + if (L !== F || q !== Z) + for (let W = q; W < Z; W++) { + const J = this._scanlineGenerateVertexRingForCellRow( + W, + _, + f + ); + wy(this._vertexBuffer, J, r); + } + else r.push(...f); + } + return r; + } + _scanlineGenerateVertexRingForCellRow(t, r, o) { + const c = t * this._granularityCellSize, + f = c + this._granularityCellSize, + _ = []; + for (let v = 0; v < 3; v++) { + const b = r[2 * v], + S = r[2 * v + 1], + I = r[(2 * (v + 1)) % 6], + L = r[(2 * (v + 1) + 1) % 6], + F = r[(2 * (v + 2)) % 6], + q = r[(2 * (v + 2) + 1) % 6], + Z = I - b, + W = L - S, + J = Z === 0, + le = W === 0, + Re = (c - S) / W, + xe = (f - S) / W, + Ce = Math.min(Re, xe), + Ye = Math.max(Re, xe); + if ( + (!le && (Ce >= 1 || Ye <= 0)) || + (le && (S < c || S > f)) + ) { + L >= c && L <= f && _.push(o[(v + 1) % 3]); + continue; + } + !le && + Ce > 0 && + _.push(this._vertexToIndex(b + Z * Ce, S + W * Ce)); + const lt = b + Z * Math.max(Ce, 0), + Pt = b + Z * Math.min(Ye, 1); + J || this._generateIntraEdgeVertices(_, b, S, I, L, lt, Pt), + !le && + Ye < 1 && + _.push(this._vertexToIndex(b + Z * Ye, S + W * Ye)), + (le || (L >= c && L <= f)) && _.push(o[(v + 1) % 3]), + !le && + (L <= c || L >= f) && + this._generateInterEdgeVertices( + _, + b, + S, + I, + L, + F, + q, + Pt, + c, + f + ); + } + return _; + } + _generateIntraEdgeVertices(t, r, o, c, f, _, v) { + const b = c - r, + S = f - o, + I = S === 0, + L = I ? Math.min(r, c) : Math.min(_, v), + F = I ? Math.max(r, c) : Math.max(_, v), + q = Math.floor(L / this._granularityCellSize) + 1, + Z = Math.ceil(F / this._granularityCellSize) - 1; + if (I ? r < c : _ < v) + for (let W = q; W <= Z; W++) { + const J = W * this._granularityCellSize; + t.push(this._vertexToIndex(J, o + (S * (J - r)) / b)); + } + else + for (let W = Z; W >= q; W--) { + const J = W * this._granularityCellSize; + t.push(this._vertexToIndex(J, o + (S * (J - r)) / b)); + } + } + _generateInterEdgeVertices(t, r, o, c, f, _, v, b, S, I) { + const L = f - o, + F = _ - c, + q = v - f, + Z = (S - f) / q, + W = (I - f) / q, + J = Math.min(Z, W), + le = Math.max(Z, W), + Re = c + F * J; + let xe = + Math.floor(Math.min(Re, b) / this._granularityCellSize) + 1, + Ce = + Math.ceil(Math.max(Re, b) / this._granularityCellSize) - 1, + Ye = b < Re; + const lt = q === 0; + if (lt && (v === S || v === I)) return; + if (lt || J >= 1 || le <= 0) { + const Yt = o - v, + qt = _ + (r - _) * Math.min((S - v) / Yt, (I - v) / Yt); + (xe = + Math.floor(Math.min(qt, b) / this._granularityCellSize) + + 1), + (Ce = + Math.ceil(Math.max(qt, b) / this._granularityCellSize) - + 1), + (Ye = b < qt); + } + const Pt = L > 0 ? I : S; + if (Ye) + for (let Yt = xe; Yt <= Ce; Yt++) + t.push( + this._vertexToIndex(Yt * this._granularityCellSize, Pt) + ); + else + for (let Yt = Ce; Yt >= xe; Yt--) + t.push( + this._vertexToIndex(Yt * this._granularityCellSize, Pt) + ); + } + _generateOutline(t) { + const r = []; + for (const o of t) { + const c = tl(o, this._granularity, !0), + f = this._pointArrayToIndices(c), + _ = []; + for (let v = 1; v < f.length; v++) + _.push(f[v - 1]), _.push(f[v]); + r.push(_); + } + return r; + } + _handlePoles(t) { + let r = !1, + o = !1; + this._canonical && + (this._canonical.y === 0 && (r = !0), + this._canonical.y === (1 << this._canonical.z) - 1 && + (o = !0)), + (r || o) && this._fillPoles(t, r, o); + } + _ensureNoPoleVertices() { + const t = this._vertexBuffer; + for (let r = 0; r < t.length; r += 2) { + const o = t[r + 1]; + o === Ql && (t[r + 1] = -32767), + o === Tu && (t[r + 1] = 32766); + } + } + _generatePoleQuad(t, r, o, c, f, _) { + c > f != (_ === Ql) + ? (t.push(r), + t.push(o), + t.push(this._vertexToIndex(c, _)), + t.push(o), + t.push(this._vertexToIndex(f, _)), + t.push(this._vertexToIndex(c, _))) + : (t.push(o), + t.push(r), + t.push(this._vertexToIndex(c, _)), + t.push(this._vertexToIndex(f, _)), + t.push(o), + t.push(this._vertexToIndex(c, _))); + } + _fillPoles(t, r, o) { + const c = this._vertexBuffer, + f = oe, + _ = t.length; + for (let v = 2; v < _; v += 3) { + const b = t[v - 2], + S = t[v - 1], + I = t[v], + L = c[2 * b], + F = c[2 * b + 1], + q = c[2 * S], + Z = c[2 * S + 1], + W = c[2 * I], + J = c[2 * I + 1]; + r && + (F === 0 && + Z === 0 && + this._generatePoleQuad(t, b, S, L, q, Ql), + Z === 0 && + J === 0 && + this._generatePoleQuad(t, S, I, q, W, Ql), + J === 0 && + F === 0 && + this._generatePoleQuad(t, I, b, W, L, Ql)), + o && + (F === f && + Z === f && + this._generatePoleQuad(t, b, S, L, q, Tu), + Z === f && + J === f && + this._generatePoleQuad(t, S, I, q, W, Tu), + J === f && + F === f && + this._generatePoleQuad(t, I, b, W, L, Tu)); + } + } + _initializeVertices(t) { + for (let r = 0; r < t.length; r += 2) + this._vertexToIndex(t[r], t[r + 1]); + } + subdividePolygonInternal(t, r) { + if (this._used) + throw new Error("Subdivision: multiple use not allowed."); + this._used = !0; + const { flattened: o, holeIndices: c } = (function (v) { + const b = [], + S = []; + for (const I of v) + if (I.length !== 0) { + I !== v[0] && b.push(S.length / 2); + for (let L = 0; L < I.length; L++) + S.push(I[L].x), S.push(I[L].y); + } + return { flattened: S, holeIndices: b }; + })(t); + let f; + this._initializeVertices(o); + try { + const v = (function (S, I, L = 2) { + const F = I && I.length, + q = F ? I[0] * L : S.length; + let Z = I_(S, 0, q, L, !0); + const W = []; + if (!Z || Z.next === Z.prev) return W; + let J, le, Re; + if ( + (F && + (Z = (function (xe, Ce, Ye, lt) { + const Pt = []; + for (let Yt = 0, qt = Ce.length; Yt < qt; Yt++) { + const Ht = I_( + xe, + Ce[Yt] * lt, + Yt < qt - 1 ? Ce[Yt + 1] * lt : xe.length, + lt, + !1 + ); + Ht === Ht.next && (Ht.steiner = !0), + Pt.push(yy(Ht)); + } + Pt.sort(_y); + for (let Yt = 0; Yt < Pt.length; Yt++) + Ye = gy(Pt[Yt], Ye); + return Ye; + })(S, I, Z, L)), + S.length > 80 * L) + ) { + (J = S[0]), (le = S[1]); + let xe = J, + Ce = le; + for (let Ye = L; Ye < q; Ye += L) { + const lt = S[Ye], + Pt = S[Ye + 1]; + lt < J && (J = lt), + Pt < le && (le = Pt), + lt > xe && (xe = lt), + Pt > Ce && (Ce = Pt); + } + (Re = Math.max(xe - J, Ce - le)), + (Re = Re !== 0 ? 32767 / Re : 0); + } + return yu(Z, W, L, J, le, Re, 0), W; + })(o, c), + b = this._convertIndices(o, v); + f = this._subdivideTrianglesScanline(b); + } catch (v) { + console.error(v); + } + let _ = []; + return ( + r && (_ = this._generateOutline(t)), + this._ensureNoPoleVertices(), + this._handlePoles(f), + { + verticesFlattened: this._vertexBuffer, + indicesTriangles: f, + indicesLineList: _, + } + ); + } + _convertIndices(t, r) { + const o = []; + for (let c = 0; c < r.length; c++) + o.push(this._vertexToIndex(t[2 * r[c]], t[2 * r[c] + 1])); + return o; + } + _pointArrayToIndices(t) { + const r = []; + for (let o = 0; o < t.length; o++) { + const c = t[o]; + r.push(this._vertexToIndex(c.x, c.y)); + } + return r; + } + } + function z_(n, t, r, o = !0) { + return new by(r, t).subdividePolygonInternal(n, o); + } + function tl(n, t, r = !1) { + if (!n || n.length < 1) return []; + if (n.length < 2) return []; + const o = n[0], + c = n[n.length - 1], + f = r && (o.x !== c.x || o.y !== c.y); + if (t < 2) return f ? [...n, n[0]] : [...n]; + const _ = Math.floor(oe / t), + v = []; + v.push(new B(n[0].x, n[0].y)); + const b = n.length, + S = f ? b : b - 1; + for (let I = 0; I < S; I++) { + const L = n[I], + F = I < b - 1 ? n[I + 1] : n[0], + q = L.x, + Z = L.y, + W = F.x, + J = F.y, + le = q !== W, + Re = Z !== J; + if (!le && !Re) continue; + const xe = W - q, + Ce = J - Z, + Ye = Math.abs(xe), + lt = Math.abs(Ce); + let Pt = q, + Yt = Z; + for (;;) { + const Ht = + xe > 0 + ? (Math.floor(Pt / _) + 1) * _ + : (Math.ceil(Pt / _) - 1) * _, + Sr = + Ce > 0 + ? (Math.floor(Yt / _) + 1) * _ + : (Math.ceil(Yt / _) - 1) * _, + Gt = Math.abs(Pt - Ht), + Wt = Math.abs(Yt - Sr), + gt = Math.abs(Pt - W), + Nr = Math.abs(Yt - J), + Hr = le ? Gt / Ye : Number.POSITIVE_INFINITY, + kr = Re ? Wt / lt : Number.POSITIVE_INFINITY; + if ((gt <= Gt || !le) && (Nr <= Wt || !Re)) break; + if ((Hr < kr && le) || !Re) { + (Pt = Ht), (Yt += Ce * Hr); + const yr = new B(Pt, Math.round(Yt)); + (v[v.length - 1].x === yr.x && + v[v.length - 1].y === yr.y) || + v.push(yr); + } else { + (Pt += xe * kr), (Yt = Sr); + const yr = new B(Math.round(Pt), Yt); + (v[v.length - 1].x === yr.x && + v[v.length - 1].y === yr.y) || + v.push(yr); + } + } + const qt = new B(W, J); + (v[v.length - 1].x === qt.x && v[v.length - 1].y === qt.y) || + v.push(qt); + } + return v; + } + function wy(n, t, r) { + if (t.length === 0) + throw new Error("Subdivision vertex ring is empty."); + let o = 0, + c = n[2 * t[0]]; + for (let b = 1; b < t.length; b++) { + const S = n[2 * t[b]]; + S < c && ((c = S), (o = b)); + } + const f = t.length; + let _ = o, + v = (_ + 1) % f; + for (;;) { + const b = _ - 1 >= 0 ? _ - 1 : f - 1, + S = (v + 1) % f, + I = n[2 * t[b]], + L = n[2 * t[S]], + F = n[2 * t[_]], + q = n[2 * t[_] + 1], + Z = n[2 * t[v] + 1]; + let W = !1; + if (I < L) W = !0; + else if (I > L) W = !1; + else { + const J = Z - q, + le = -(n[2 * t[v]] - F), + Re = q < Z ? 1 : -1; + ((I - F) * J + (n[2 * t[b] + 1] - q) * le) * Re > + ((L - F) * J + (n[2 * t[S] + 1] - q) * le) * Re && (W = !0); + } + if (W) { + const J = t[b], + le = t[_], + Re = t[v]; + J !== le && J !== Re && le !== Re && r.push(Re, le, J), + _--, + _ < 0 && (_ = f - 1); + } else { + const J = t[S], + le = t[_], + Re = t[v]; + J !== le && J !== Re && le !== Re && r.push(Re, le, J), + v++, + v >= f && (v = 0); + } + if (b === S) break; + } + } + function L_(n, t, r, o, c, f, _, v, b) { + const S = c.length / 2, + I = _ && v && b; + if (S < Kr.MAX_VERTEX_ARRAY_LENGTH) { + const L = t.prepareSegment(S, r, o), + F = L.vertexLength; + for (let W = 0; W < f.length; W += 3) + o.emplaceBack(F + f[W], F + f[W + 1], F + f[W + 2]); + let q, Z; + (L.vertexLength += S), + (L.primitiveLength += f.length / 3), + I && + ((Z = _.prepareSegment(S, r, v)), + (q = Z.vertexLength), + (Z.vertexLength += S)); + for (let W = 0; W < c.length; W += 2) n(c[W], c[W + 1]); + if (I) + for (let W = 0; W < b.length; W++) { + const J = b[W]; + for (let le = 1; le < J.length; le += 2) + v.emplaceBack(q + J[le - 1], q + J[le]); + Z.primitiveLength += J.length / 2; + } + } else + (function (L, F, q, Z, W, J) { + const le = []; + for (let lt = 0; lt < Z.length / 2; lt++) le.push(-1); + const Re = { count: 0 }; + let xe = 0, + Ce = L.getOrCreateLatestSegment(F, q), + Ye = Ce.vertexLength; + for (let lt = 2; lt < W.length; lt += 3) { + const Pt = W[lt - 2], + Yt = W[lt - 1], + qt = W[lt]; + let Ht = le[Pt] < xe, + Sr = le[Yt] < xe, + Gt = le[qt] < xe; + Ce.vertexLength + + ((Ht ? 1 : 0) + (Sr ? 1 : 0) + (Gt ? 1 : 0)) > + Kr.MAX_VERTEX_ARRAY_LENGTH && + ((Ce = L.createNewSegment(F, q)), + (xe = Re.count), + (Ht = !0), + (Sr = !0), + (Gt = !0), + (Ye = 0)); + const Wt = Cu(le, Z, J, Re, Pt, Ht, Ce), + gt = Cu(le, Z, J, Re, Yt, Sr, Ce), + Nr = Cu(le, Z, J, Re, qt, Gt, Ce); + q.emplaceBack(Ye + Wt - xe, Ye + gt - xe, Ye + Nr - xe), + Ce.primitiveLength++; + } + })(t, r, o, c, f, n), + I && + (function (L, F, q, Z, W, J) { + const le = []; + for (let lt = 0; lt < Z.length / 2; lt++) le.push(-1); + const Re = { count: 0 }; + let xe = 0, + Ce = L.getOrCreateLatestSegment(F, q), + Ye = Ce.vertexLength; + for (let lt = 0; lt < W.length; lt++) { + const Pt = W[lt]; + for (let Yt = 1; Yt < W[lt].length; Yt += 2) { + const qt = Pt[Yt - 1], + Ht = Pt[Yt]; + let Sr = le[qt] < xe, + Gt = le[Ht] < xe; + Ce.vertexLength + ((Sr ? 1 : 0) + (Gt ? 1 : 0)) > + Kr.MAX_VERTEX_ARRAY_LENGTH && + ((Ce = L.createNewSegment(F, q)), + (xe = Re.count), + (Sr = !0), + (Gt = !0), + (Ye = 0)); + const Wt = Cu(le, Z, J, Re, qt, Sr, Ce), + gt = Cu(le, Z, J, Re, Ht, Gt, Ce); + q.emplaceBack(Ye + Wt - xe, Ye + gt - xe), + Ce.primitiveLength++; + } + } + })(_, r, v, c, b, n), + t.forceNewSegmentOnNextPrepare(), + _ == null || _.forceNewSegmentOnNextPrepare(); + } + function Cu(n, t, r, o, c, f, _) { + if (f) { + const v = o.count; + return ( + r(t[2 * c], t[2 * c + 1]), + (n[c] = o.count), + o.count++, + _.vertexLength++, + v + ); + } + return n[c]; + } + class nf { + constructor(t) { + (this.zoom = t.zoom), + (this.globalState = t.globalState), + (this.overscaling = t.overscaling), + (this.layers = t.layers), + (this.layerIds = this.layers.map((r) => r.id)), + (this.index = t.index), + (this.hasPattern = !1), + (this.patternFeatures = []), + (this.layoutVertexArray = new rt()), + (this.indexArray = new Rn()), + (this.indexArray2 = new Ln()), + (this.programConfigurations = new la(t.layers, t.zoom)), + (this.segments = new Kr()), + (this.segments2 = new Kr()), + (this.stateDependentLayerIds = this.layers + .filter((r) => r.isStateDependent()) + .map((r) => r.id)); + } + populate(t, r, o) { + this.hasPattern = Qp("fill", this.layers, r); + const c = this.layers[0].layout.get("fill-sort-key"), + f = !c.isConstant(), + _ = []; + for (const { + feature: v, + id: b, + index: S, + sourceLayerIndex: I, + } of t) { + const L = this.layers[0]._featureFilter.needGeometry, + F = no(v, L); + if ( + !this.layers[0]._featureFilter.filter( + new Un(this.zoom, { globalState: this.globalState }), + F, + o + ) + ) + continue; + const q = f + ? c.evaluate(F, {}, o, r.availableImages) + : void 0, + Z = { + id: b, + properties: v.properties, + type: v.type, + sourceLayerIndex: I, + index: S, + geometry: L ? F.geometry : bo(v), + patterns: {}, + sortKey: q, + }; + _.push(Z); + } + f && _.sort((v, b) => v.sortKey - b.sortKey); + for (const v of _) { + const { geometry: b, index: S, sourceLayerIndex: I } = v; + if (this.hasPattern) { + const L = ef("fill", this.layers, v, this.zoom, r); + this.patternFeatures.push(L); + } else + this.addFeature(v, b, S, o, {}, r.subdivisionGranularity); + r.featureIndex.insert(t[S].feature, b, S, I, this.index); + } + } + update(t, r, o) { + this.stateDependentLayers.length && + this.programConfigurations.updatePaintArrays( + t, + r, + this.stateDependentLayers, + o + ); + } + addFeatures(t, r, o) { + for (const c of this.patternFeatures) + this.addFeature( + c, + c.geometry, + c.index, + r, + o, + t.subdivisionGranularity + ); + } + isEmpty() { + return this.layoutVertexArray.length === 0; + } + uploadPending() { + return !this.uploaded || this.programConfigurations.needsUpload; + } + upload(t) { + this.uploaded || + ((this.layoutVertexBuffer = t.createVertexBuffer( + this.layoutVertexArray, + hy + )), + (this.indexBuffer = t.createIndexBuffer(this.indexArray)), + (this.indexBuffer2 = t.createIndexBuffer(this.indexArray2))), + this.programConfigurations.upload(t), + (this.uploaded = !0); + } + destroy() { + this.layoutVertexBuffer && + (this.layoutVertexBuffer.destroy(), + this.indexBuffer.destroy(), + this.indexBuffer2.destroy(), + this.programConfigurations.destroy(), + this.segments.destroy(), + this.segments2.destroy()); + } + addFeature(t, r, o, c, f, _) { + for (const v of Os(r, 500)) { + const b = z_(v, c, _.fill.getGranularityForZoomLevel(c.z)), + S = this.layoutVertexArray; + L_( + (I, L) => { + S.emplaceBack(I, L); + }, + this.segments, + this.layoutVertexArray, + this.indexArray, + b.verticesFlattened, + b.indicesTriangles, + this.segments2, + this.indexArray2, + b.indicesLineList + ); + } + this.programConfigurations.populatePaintArrays( + this.layoutVertexArray.length, + t, + o, + f, + c + ); + } + } + let D_, R_; + ir("FillBucket", nf, { omit: ["layers", "patternFeatures"] }); + var Ty = { + get paint() { + return (R_ = + R_ || + new Ui({ + "fill-antialias": new wr(ye.paint_fill["fill-antialias"]), + "fill-opacity": new Or(ye.paint_fill["fill-opacity"]), + "fill-color": new Or(ye.paint_fill["fill-color"]), + "fill-outline-color": new Or( + ye.paint_fill["fill-outline-color"] + ), + "fill-translate": new wr(ye.paint_fill["fill-translate"]), + "fill-translate-anchor": new wr( + ye.paint_fill["fill-translate-anchor"] + ), + "fill-pattern": new Zl(ye.paint_fill["fill-pattern"]), + })); + }, + get layout() { + return (D_ = + D_ || + new Ui({ + "fill-sort-key": new Or(ye.layout_fill["fill-sort-key"]), + })); + }, + }; + class Cy extends xa { + constructor(t) { + super(t, Ty); + } + recalculate(t, r) { + super.recalculate(t, r); + const o = this.paint._values["fill-outline-color"]; + o.value.kind === "constant" && + o.value.value === void 0 && + (this.paint._values["fill-outline-color"] = + this.paint._values["fill-color"]); + } + createBucket(t) { + return new nf(t); + } + queryRadius() { + return Pd(this.paint.get("fill-translate")); + } + queryIntersectsFeature({ + queryGeometry: t, + geometry: r, + transform: o, + pixelsToTileUnits: c, + }) { + return p_( + Id( + t, + this.paint.get("fill-translate"), + this.paint.get("fill-translate-anchor"), + -o.bearingInRadians, + c + ), + r + ); + } + isTileClipped() { + return !0; + } + } + const Sy = ti( + [ + { name: "a_pos", components: 2, type: "Int16" }, + { name: "a_normal_ed", components: 4, type: "Int16" }, + ], + 4 + ), + Py = ti( + [{ name: "a_centroid", components: 2, type: "Int16" }], + 4 + ), + { members: Iy } = Sy; + class ec { + constructor(t, r, o, c, f) { + (this.properties = {}), + (this.extent = o), + (this.type = 0), + (this.id = void 0), + (this._pbf = t), + (this._geometry = -1), + (this._keys = c), + (this._values = f), + t.readFields(My, this, r); + } + loadGeometry() { + const t = this._pbf; + t.pos = this._geometry; + const r = t.readVarint() + t.pos, + o = []; + let c, + f = 1, + _ = 0, + v = 0, + b = 0; + for (; t.pos < r; ) { + if (_ <= 0) { + const S = t.readVarint(); + (f = 7 & S), (_ = S >> 3); + } + if ((_--, f === 1 || f === 2)) + (v += t.readSVarint()), + (b += t.readSVarint()), + f === 1 && (c && o.push(c), (c = [])), + c && c.push(new B(v, b)); + else { + if (f !== 7) throw new Error(`unknown command ${f}`); + c && c.push(c[0].clone()); + } + } + return c && o.push(c), o; + } + bbox() { + const t = this._pbf; + t.pos = this._geometry; + const r = t.readVarint() + t.pos; + let o = 1, + c = 0, + f = 0, + _ = 0, + v = 1 / 0, + b = -1 / 0, + S = 1 / 0, + I = -1 / 0; + for (; t.pos < r; ) { + if (c <= 0) { + const L = t.readVarint(); + (o = 7 & L), (c = L >> 3); + } + if ((c--, o === 1 || o === 2)) + (f += t.readSVarint()), + (_ += t.readSVarint()), + f < v && (v = f), + f > b && (b = f), + _ < S && (S = _), + _ > I && (I = _); + else if (o !== 7) throw new Error(`unknown command ${o}`); + } + return [v, S, b, I]; + } + toGeoJSON(t, r, o) { + const c = this.extent * Math.pow(2, o), + f = this.extent * t, + _ = this.extent * r, + v = this.loadGeometry(); + function b(F) { + return [ + (360 * (F.x + f)) / c - 180, + (360 / Math.PI) * + Math.atan(Math.exp((1 - (2 * (F.y + _)) / c) * Math.PI)) - + 90, + ]; + } + function S(F) { + return F.map(b); + } + let I; + if (this.type === 1) { + const F = []; + for (const Z of v) F.push(Z[0]); + const q = S(F); + I = + F.length === 1 + ? { type: "Point", coordinates: q[0] } + : { type: "MultiPoint", coordinates: q }; + } else if (this.type === 2) { + const F = v.map(S); + I = + F.length === 1 + ? { type: "LineString", coordinates: F[0] } + : { type: "MultiLineString", coordinates: F }; + } else { + if (this.type !== 3) throw new Error("unknown feature type"); + { + const F = (function (Z) { + const W = Z.length; + if (W <= 1) return [Z]; + const J = []; + let le, Re; + for (let xe = 0; xe < W; xe++) { + const Ce = ky(Z[xe]); + Ce !== 0 && + (Re === void 0 && (Re = Ce < 0), + Re === Ce < 0 + ? (le && J.push(le), (le = [Z[xe]])) + : le && le.push(Z[xe])); + } + return le && J.push(le), J; + })(v), + q = []; + for (const Z of F) q.push(Z.map(S)); + I = + q.length === 1 + ? { type: "Polygon", coordinates: q[0] } + : { type: "MultiPolygon", coordinates: q }; + } + } + const L = { + type: "Feature", + geometry: I, + properties: this.properties, + }; + return this.id != null && (L.id = this.id), L; + } + } + function My(n, t, r) { + n === 1 + ? (t.id = r.readVarint()) + : n === 2 + ? (function (o, c) { + const f = o.readVarint() + o.pos; + for (; o.pos < f; ) { + const _ = c._keys[o.readVarint()], + v = c._values[o.readVarint()]; + c.properties[_] = v; + } + })(r, t) + : n === 3 + ? (t.type = r.readVarint()) + : n === 4 && (t._geometry = r.pos); + } + function ky(n) { + let t = 0; + for (let r, o, c = 0, f = n.length, _ = f - 1; c < f; _ = c++) + (r = n[c]), (o = n[_]), (t += (o.x - r.x) * (r.y + o.y)); + return t; + } + ec.types = ["Unknown", "Point", "LineString", "Polygon"]; + class B_ { + constructor(t, r) { + (this.version = 1), + (this.name = ""), + (this.extent = 4096), + (this.length = 0), + (this._pbf = t), + (this._keys = []), + (this._values = []), + (this._features = []), + t.readFields(Ay, this, r), + (this.length = this._features.length); + } + feature(t) { + if (t < 0 || t >= this._features.length) + throw new Error("feature index out of bounds"); + this._pbf.pos = this._features[t]; + const r = this._pbf.readVarint() + this._pbf.pos; + return new ec( + this._pbf, + r, + this.extent, + this._keys, + this._values + ); + } + } + function Ay(n, t, r) { + n === 15 + ? (t.version = r.readVarint()) + : n === 1 + ? (t.name = r.readString()) + : n === 5 + ? (t.extent = r.readVarint()) + : n === 2 + ? t._features.push(r.pos) + : n === 3 + ? t._keys.push(r.readString()) + : n === 4 && + t._values.push( + (function (o) { + let c = null; + const f = o.readVarint() + o.pos; + for (; o.pos < f; ) { + const _ = o.readVarint() >> 3; + c = + _ === 1 + ? o.readString() + : _ === 2 + ? o.readFloat() + : _ === 3 + ? o.readDouble() + : _ === 4 + ? o.readVarint64() + : _ === 5 + ? o.readVarint() + : _ === 6 + ? o.readSVarint() + : _ === 7 + ? o.readBoolean() + : null; + } + if (c == null) throw new Error("unknown feature value"); + return c; + })(r) + ); + } + class F_ { + constructor(t, r) { + this.layers = t.readFields(Ey, {}, r); + } + } + function Ey(n, t, r) { + if (n === 3) { + const o = new B_(r, r.readVarint() + r.pos); + o.length && (t[o.name] = o); + } + } + const af = Math.pow(2, 13); + function Su(n, t, r, o, c, f, _, v) { + n.emplaceBack( + t, + r, + 2 * Math.floor(o * af) + _, + c * af * 2, + f * af * 2, + Math.round(v) + ); + } + class of { + constructor(t) { + (this.zoom = t.zoom), + (this.globalState = t.globalState), + (this.overscaling = t.overscaling), + (this.layers = t.layers), + (this.layerIds = this.layers.map((r) => r.id)), + (this.index = t.index), + (this.hasPattern = !1), + (this.layoutVertexArray = new Ge()), + (this.centroidVertexArray = new _e()), + (this.indexArray = new Rn()), + (this.programConfigurations = new la(t.layers, t.zoom)), + (this.segments = new Kr()), + (this.stateDependentLayerIds = this.layers + .filter((r) => r.isStateDependent()) + .map((r) => r.id)); + } + populate(t, r, o) { + (this.features = []), + (this.hasPattern = Qp("fill-extrusion", this.layers, r)); + for (const { + feature: c, + id: f, + index: _, + sourceLayerIndex: v, + } of t) { + const b = this.layers[0]._featureFilter.needGeometry, + S = no(c, b); + if ( + !this.layers[0]._featureFilter.filter( + new Un(this.zoom, { globalState: this.globalState }), + S, + o + ) + ) + continue; + const I = { + id: f, + sourceLayerIndex: v, + index: _, + geometry: b ? S.geometry : bo(c), + properties: c.properties, + type: c.type, + patterns: {}, + }; + this.hasPattern + ? this.features.push( + ef("fill-extrusion", this.layers, I, this.zoom, r) + ) + : this.addFeature( + I, + I.geometry, + _, + o, + {}, + r.subdivisionGranularity + ), + r.featureIndex.insert(c, I.geometry, _, v, this.index, !0); + } + } + addFeatures(t, r, o) { + for (const c of this.features) { + const { geometry: f } = c; + this.addFeature( + c, + f, + c.index, + r, + o, + t.subdivisionGranularity + ); + } + } + update(t, r, o) { + this.stateDependentLayers.length && + this.programConfigurations.updatePaintArrays( + t, + r, + this.stateDependentLayers, + o + ); + } + isEmpty() { + return ( + this.layoutVertexArray.length === 0 && + this.centroidVertexArray.length === 0 + ); + } + uploadPending() { + return !this.uploaded || this.programConfigurations.needsUpload; + } + upload(t) { + this.uploaded || + ((this.layoutVertexBuffer = t.createVertexBuffer( + this.layoutVertexArray, + Iy + )), + (this.centroidVertexBuffer = t.createVertexBuffer( + this.centroidVertexArray, + Py.members, + !0 + )), + (this.indexBuffer = t.createIndexBuffer(this.indexArray))), + this.programConfigurations.upload(t), + (this.uploaded = !0); + } + destroy() { + this.layoutVertexBuffer && + (this.layoutVertexBuffer.destroy(), + this.indexBuffer.destroy(), + this.programConfigurations.destroy(), + this.segments.destroy(), + this.centroidVertexBuffer.destroy()); + } + addFeature(t, r, o, c, f, _) { + for (const v of Os(r, 500)) { + const b = { x: 0, y: 0, sampleCount: 0 }, + S = this.layoutVertexArray.length; + this.processPolygon(b, c, t, v, _); + const I = this.layoutVertexArray.length - S, + L = Math.floor(b.x / b.sampleCount), + F = Math.floor(b.y / b.sampleCount); + for (let q = 0; q < I; q++) + this.centroidVertexArray.emplaceBack(L, F); + } + this.programConfigurations.populatePaintArrays( + this.layoutVertexArray.length, + t, + o, + f, + c + ); + } + processPolygon(t, r, o, c, f) { + if (c.length < 1 || O_(c[0])) return; + for (const L of c) L.length !== 0 && zy(t, L); + const _ = { + segment: this.segments.prepareSegment( + 4, + this.layoutVertexArray, + this.indexArray + ), + }, + v = f.fill.getGranularityForZoomLevel(r.z), + b = ec.types[o.type] === "Polygon"; + for (const L of c) { + if (L.length === 0 || O_(L)) continue; + const F = tl(L, v, b); + this._generateSideFaces(F, _); + } + if (!b) return; + const S = z_(c, r, v, !1), + I = this.layoutVertexArray; + L_( + (L, F) => { + Su(I, L, F, 0, 0, 1, 1, 0); + }, + this.segments, + this.layoutVertexArray, + this.indexArray, + S.verticesFlattened, + S.indicesTriangles + ); + } + _generateSideFaces(t, r) { + let o = 0; + for (let c = 1; c < t.length; c++) { + const f = t[c], + _ = t[c - 1]; + if (Ly(f, _)) continue; + r.segment.vertexLength + 4 > Kr.MAX_VERTEX_ARRAY_LENGTH && + (r.segment = this.segments.prepareSegment( + 4, + this.layoutVertexArray, + this.indexArray + )); + const v = f.sub(_)._perp()._unit(), + b = _.dist(f); + o + b > 32768 && (o = 0), + Su(this.layoutVertexArray, f.x, f.y, v.x, v.y, 0, 0, o), + Su(this.layoutVertexArray, f.x, f.y, v.x, v.y, 0, 1, o), + (o += b), + Su(this.layoutVertexArray, _.x, _.y, v.x, v.y, 0, 0, o), + Su(this.layoutVertexArray, _.x, _.y, v.x, v.y, 0, 1, o); + const S = r.segment.vertexLength; + this.indexArray.emplaceBack(S, S + 2, S + 1), + this.indexArray.emplaceBack(S + 1, S + 2, S + 3), + (r.segment.vertexLength += 4), + (r.segment.primitiveLength += 2); + } + } + } + function zy(n, t) { + for (let r = 0; r < t.length; r++) { + const o = t[r]; + (r === t.length - 1 && t[0].x === o.x && t[0].y === o.y) || + ((n.x += o.x), (n.y += o.y), n.sampleCount++); + } + } + function Ly(n, t) { + return ( + (n.x === t.x && (n.x < 0 || n.x > oe)) || + (n.y === t.y && (n.y < 0 || n.y > oe)) + ); + } + function O_(n) { + return ( + n.every((t) => t.x < 0) || + n.every((t) => t.x > oe) || + n.every((t) => t.y < 0) || + n.every((t) => t.y > oe) + ); + } + let N_; + ir("FillExtrusionBucket", of, { omit: ["layers", "features"] }); + var Dy = { + get paint() { + return (N_ = + N_ || + new Ui({ + "fill-extrusion-opacity": new wr( + ye["paint_fill-extrusion"]["fill-extrusion-opacity"] + ), + "fill-extrusion-color": new Or( + ye["paint_fill-extrusion"]["fill-extrusion-color"] + ), + "fill-extrusion-translate": new wr( + ye["paint_fill-extrusion"]["fill-extrusion-translate"] + ), + "fill-extrusion-translate-anchor": new wr( + ye["paint_fill-extrusion"][ + "fill-extrusion-translate-anchor" + ] + ), + "fill-extrusion-pattern": new Zl( + ye["paint_fill-extrusion"]["fill-extrusion-pattern"] + ), + "fill-extrusion-height": new Or( + ye["paint_fill-extrusion"]["fill-extrusion-height"] + ), + "fill-extrusion-base": new Or( + ye["paint_fill-extrusion"]["fill-extrusion-base"] + ), + "fill-extrusion-vertical-gradient": new wr( + ye["paint_fill-extrusion"][ + "fill-extrusion-vertical-gradient" + ] + ), + })); + }, + }; + class Ry extends xa { + constructor(t) { + super(t, Dy); + } + createBucket(t) { + return new of(t); + } + queryRadius() { + return Pd(this.paint.get("fill-extrusion-translate")); + } + is3D() { + return !0; + } + queryIntersectsFeature({ + queryGeometry: t, + feature: r, + featureState: o, + geometry: c, + transform: f, + pixelsToTileUnits: _, + pixelPosMatrix: v, + }) { + const b = Id( + t, + this.paint.get("fill-extrusion-translate"), + this.paint.get("fill-extrusion-translate-anchor"), + -f.bearingInRadians, + _ + ), + S = this.paint.get("fill-extrusion-height").evaluate(r, o), + I = this.paint.get("fill-extrusion-base").evaluate(r, o), + L = (function (q, Z) { + const W = []; + for (const J of q) { + const le = [J.x, J.y, 0, 1]; + ke(le, le, Z), + W.push(new B(le[0] / le[3], le[1] / le[3])); + } + return W; + })(b, v), + F = (function (q, Z, W, J) { + const le = [], + Re = [], + xe = J[8] * Z, + Ce = J[9] * Z, + Ye = J[10] * Z, + lt = J[11] * Z, + Pt = J[8] * W, + Yt = J[9] * W, + qt = J[10] * W, + Ht = J[11] * W; + for (const Sr of q) { + const Gt = [], + Wt = []; + for (const gt of Sr) { + const Nr = gt.x, + Hr = gt.y, + kr = J[0] * Nr + J[4] * Hr + J[12], + yr = J[1] * Nr + J[5] * Hr + J[13], + dn = J[2] * Nr + J[6] * Hr + J[14], + Qn = J[3] * Nr + J[7] * Hr + J[15], + gi = dn + Ye, + qi = Qn + lt, + Ba = kr + Pt, + ua = yr + Yt, + Ri = dn + qt, + Xn = Qn + Ht, + Pi = new B((kr + xe) / qi, (yr + Ce) / qi); + (Pi.z = gi / qi), Gt.push(Pi); + const Bi = new B(Ba / Xn, ua / Xn); + (Bi.z = Ri / Xn), Wt.push(Bi); + } + le.push(Gt), Re.push(Wt); + } + return [le, Re]; + })(c, I, S, v); + return (function (q, Z, W) { + let J = 1 / 0; + p_(W, Z) && (J = j_(W, Z[0])); + for (let le = 0; le < Z.length; le++) { + const Re = Z[le], + xe = q[le]; + for (let Ce = 0; Ce < Re.length - 1; Ce++) { + const Ye = Re[Ce], + lt = [Ye, Re[Ce + 1], xe[Ce + 1], xe[Ce], Ye]; + d_(W, lt) && (J = Math.min(J, j_(W, lt))); + } + } + return J !== 1 / 0 && J; + })(F[0], F[1], L); + } + } + function Pu(n, t) { + return n.x * t.x + n.y * t.y; + } + function j_(n, t) { + if (n.length === 1) { + let r = 0; + const o = t[r++]; + let c; + for (; !c || o.equals(c); ) + if (((c = t[r++]), !c)) return 1 / 0; + for (; r < t.length; r++) { + const f = t[r], + _ = n[0], + v = c.sub(o), + b = f.sub(o), + S = _.sub(o), + I = Pu(v, v), + L = Pu(v, b), + F = Pu(b, b), + q = Pu(S, v), + Z = Pu(S, b), + W = I * F - L * L, + J = (F * q - L * Z) / W, + le = (I * Z - L * q) / W, + Re = o.z * (1 - J - le) + c.z * J + f.z * le; + if (isFinite(Re)) return Re; + } + return 1 / 0; + } + { + let r = 1 / 0; + for (const o of t) r = Math.min(r, o.z); + return r; + } + } + const By = ti( + [ + { name: "a_pos_normal", components: 2, type: "Int16" }, + { name: "a_data", components: 4, type: "Uint8" }, + ], + 4 + ), + { members: Fy } = By, + Oy = ti([ + { name: "a_uv_x", components: 1, type: "Float32" }, + { name: "a_split_index", components: 1, type: "Float32" }, + ]), + { members: Ny } = Oy, + jy = Math.cos((Math.PI / 180) * 37.5), + V_ = Math.pow(2, 14) / 0.5; + class sf { + constructor(t) { + (this.zoom = t.zoom), + (this.globalState = t.globalState), + (this.overscaling = t.overscaling), + (this.layers = t.layers), + (this.layerIds = this.layers.map((r) => r.id)), + (this.index = t.index), + (this.hasPattern = !1), + (this.patternFeatures = []), + (this.lineClipsArray = []), + (this.gradients = {}), + this.layers.forEach((r) => { + this.gradients[r.id] = {}; + }), + (this.layoutVertexArray = new Xe()), + (this.layoutVertexArray2 = new tt()), + (this.indexArray = new Rn()), + (this.programConfigurations = new la(t.layers, t.zoom)), + (this.segments = new Kr()), + (this.maxLineLength = 0), + (this.stateDependentLayerIds = this.layers + .filter((r) => r.isStateDependent()) + .map((r) => r.id)); + } + populate(t, r, o) { + this.hasPattern = Qp("line", this.layers, r); + const c = this.layers[0].layout.get("line-sort-key"), + f = !c.isConstant(), + _ = []; + for (const { + feature: v, + id: b, + index: S, + sourceLayerIndex: I, + } of t) { + const L = this.layers[0]._featureFilter.needGeometry, + F = no(v, L); + if ( + !this.layers[0]._featureFilter.filter( + new Un(this.zoom, { globalState: this.globalState }), + F, + o + ) + ) + continue; + const q = f ? c.evaluate(F, {}, o) : void 0, + Z = { + id: b, + properties: v.properties, + type: v.type, + sourceLayerIndex: I, + index: S, + geometry: L ? F.geometry : bo(v), + patterns: {}, + sortKey: q, + }; + _.push(Z); + } + f && _.sort((v, b) => v.sortKey - b.sortKey); + for (const v of _) { + const { geometry: b, index: S, sourceLayerIndex: I } = v; + if (this.hasPattern) { + const L = ef("line", this.layers, v, this.zoom, r); + this.patternFeatures.push(L); + } else + this.addFeature(v, b, S, o, {}, r.subdivisionGranularity); + r.featureIndex.insert(t[S].feature, b, S, I, this.index); + } + } + update(t, r, o) { + this.stateDependentLayers.length && + this.programConfigurations.updatePaintArrays( + t, + r, + this.stateDependentLayers, + o + ); + } + addFeatures(t, r, o) { + for (const c of this.patternFeatures) + this.addFeature( + c, + c.geometry, + c.index, + r, + o, + t.subdivisionGranularity + ); + } + isEmpty() { + return this.layoutVertexArray.length === 0; + } + uploadPending() { + return !this.uploaded || this.programConfigurations.needsUpload; + } + upload(t) { + this.uploaded || + (this.layoutVertexArray2.length !== 0 && + (this.layoutVertexBuffer2 = t.createVertexBuffer( + this.layoutVertexArray2, + Ny + )), + (this.layoutVertexBuffer = t.createVertexBuffer( + this.layoutVertexArray, + Fy + )), + (this.indexBuffer = t.createIndexBuffer(this.indexArray))), + this.programConfigurations.upload(t), + (this.uploaded = !0); + } + destroy() { + this.layoutVertexBuffer && + (this.layoutVertexBuffer.destroy(), + this.indexBuffer.destroy(), + this.programConfigurations.destroy(), + this.segments.destroy()); + } + lineFeatureClips(t) { + if ( + t.properties && + Object.prototype.hasOwnProperty.call( + t.properties, + "mapbox_clip_start" + ) && + Object.prototype.hasOwnProperty.call( + t.properties, + "mapbox_clip_end" + ) + ) + return { + start: +t.properties.mapbox_clip_start, + end: +t.properties.mapbox_clip_end, + }; + } + addFeature(t, r, o, c, f, _) { + const v = this.layers[0].layout, + b = v.get("line-join").evaluate(t, {}), + S = v.get("line-cap"), + I = v.get("line-miter-limit"), + L = v.get("line-round-limit"); + this.lineClips = this.lineFeatureClips(t); + for (const F of r) this.addLine(F, t, b, S, I, L, c, _); + this.programConfigurations.populatePaintArrays( + this.layoutVertexArray.length, + t, + o, + f, + c + ); + } + addLine(t, r, o, c, f, _, v, b) { + if ( + ((this.distance = 0), + (this.scaledDistance = 0), + (this.totalDistance = 0), + (t = tl(t, v ? b.line.getGranularityForZoomLevel(v.z) : 1)), + this.lineClips) + ) { + this.lineClipsArray.push(this.lineClips); + for (let xe = 0; xe < t.length - 1; xe++) + this.totalDistance += t[xe].dist(t[xe + 1]); + this.updateScaledDistance(), + (this.maxLineLength = Math.max( + this.maxLineLength, + this.totalDistance + )); + } + const S = ec.types[r.type] === "Polygon"; + let I = t.length; + for (; I >= 2 && t[I - 1].equals(t[I - 2]); ) I--; + let L = 0; + for (; L < I - 1 && t[L].equals(t[L + 1]); ) L++; + if (I < (S ? 3 : 2)) return; + o === "bevel" && (f = 1.05); + const F = + this.overscaling <= 16 + ? 122880 / (512 * this.overscaling) + : 0, + q = this.segments.prepareSegment( + 10 * I, + this.layoutVertexArray, + this.indexArray + ); + let Z, W, J, le, Re; + (this.e1 = this.e2 = -1), + S && ((Z = t[I - 2]), (Re = t[L].sub(Z)._unit()._perp())); + for (let xe = L; xe < I; xe++) { + if ( + ((J = xe === I - 1 ? (S ? t[L + 1] : void 0) : t[xe + 1]), + J && t[xe].equals(J)) + ) + continue; + Re && (le = Re), + Z && (W = Z), + (Z = t[xe]), + (Re = J ? J.sub(Z)._unit()._perp() : le), + (le = le || Re); + let Ce = le.add(Re); + (Ce.x === 0 && Ce.y === 0) || Ce._unit(); + const Ye = le.x * Re.x + le.y * Re.y, + lt = Ce.x * Re.x + Ce.y * Re.y, + Pt = lt !== 0 ? 1 / lt : 1 / 0, + Yt = 2 * Math.sqrt(2 - 2 * lt), + qt = lt < jy && W && J, + Ht = le.x * Re.y - le.y * Re.x > 0; + if (qt && xe > L) { + const Wt = Z.dist(W); + if (Wt > 2 * F) { + const gt = Z.sub( + Z.sub(W) + ._mult(F / Wt) + ._round() + ); + this.updateDistance(W, gt), + this.addCurrentVertex(gt, le, 0, 0, q), + (W = gt); + } + } + const Sr = W && J; + let Gt = Sr ? o : S ? "butt" : c; + if ( + (Sr && + Gt === "round" && + (Pt < _ ? (Gt = "miter") : Pt <= 2 && (Gt = "fakeround")), + Gt === "miter" && Pt > f && (Gt = "bevel"), + Gt === "bevel" && + (Pt > 2 && (Gt = "flipbevel"), Pt < f && (Gt = "miter")), + W && this.updateDistance(W, Z), + Gt === "miter") + ) + Ce._mult(Pt), this.addCurrentVertex(Z, Ce, 0, 0, q); + else if (Gt === "flipbevel") { + if (Pt > 100) Ce = Re.mult(-1); + else { + const Wt = (Pt * le.add(Re).mag()) / le.sub(Re).mag(); + Ce._perp()._mult(Wt * (Ht ? -1 : 1)); + } + this.addCurrentVertex(Z, Ce, 0, 0, q), + this.addCurrentVertex(Z, Ce.mult(-1), 0, 0, q); + } else if (Gt === "bevel" || Gt === "fakeround") { + const Wt = -Math.sqrt(Pt * Pt - 1), + gt = Ht ? Wt : 0, + Nr = Ht ? 0 : Wt; + if ( + (W && this.addCurrentVertex(Z, le, gt, Nr, q), + Gt === "fakeround") + ) { + const Hr = Math.round((180 * Yt) / Math.PI / 20); + for (let kr = 1; kr < Hr; kr++) { + let yr = kr / Hr; + if (yr !== 0.5) { + const Qn = yr - 0.5; + yr += + yr * + Qn * + (yr - 1) * + ((1.0904 + + Ye * (Ye * (3.55645 - 1.43519 * Ye) - 3.2452)) * + Qn * + Qn + + (0.848013 + Ye * (0.215638 * Ye - 1.06021))); + } + const dn = Re.sub(le) + ._mult(yr) + ._add(le) + ._unit() + ._mult(Ht ? -1 : 1); + this.addHalfVertex(Z, dn.x, dn.y, !1, Ht, 0, q); + } + } + J && this.addCurrentVertex(Z, Re, -gt, -Nr, q); + } else if (Gt === "butt") + this.addCurrentVertex(Z, Ce, 0, 0, q); + else if (Gt === "square") { + const Wt = W ? 1 : -1; + this.addCurrentVertex(Z, Ce, Wt, Wt, q); + } else + Gt === "round" && + (W && + (this.addCurrentVertex(Z, le, 0, 0, q), + this.addCurrentVertex(Z, le, 1, 1, q, !0)), + J && + (this.addCurrentVertex(Z, Re, -1, -1, q, !0), + this.addCurrentVertex(Z, Re, 0, 0, q))); + if (qt && xe < I - 1) { + const Wt = Z.dist(J); + if (Wt > 2 * F) { + const gt = Z.add( + J.sub(Z) + ._mult(F / Wt) + ._round() + ); + this.updateDistance(Z, gt), + this.addCurrentVertex(gt, Re, 0, 0, q), + (Z = gt); + } + } + } + } + addCurrentVertex(t, r, o, c, f, _ = !1) { + const v = r.y * c - r.x, + b = -r.y - r.x * c; + this.addHalfVertex( + t, + r.x + r.y * o, + r.y - r.x * o, + _, + !1, + o, + f + ), + this.addHalfVertex(t, v, b, _, !0, -c, f), + this.distance > V_ / 2 && + this.totalDistance === 0 && + ((this.distance = 0), + this.updateScaledDistance(), + this.addCurrentVertex(t, r, o, c, f, _)); + } + addHalfVertex({ x: t, y: r }, o, c, f, _, v, b) { + const S = + 0.5 * + (this.lineClips + ? this.scaledDistance * (V_ - 1) + : this.scaledDistance); + this.layoutVertexArray.emplaceBack( + (t << 1) + (f ? 1 : 0), + (r << 1) + (_ ? 1 : 0), + Math.round(63 * o) + 128, + Math.round(63 * c) + 128, + (1 + (v === 0 ? 0 : v < 0 ? -1 : 1)) | ((63 & S) << 2), + S >> 6 + ), + this.lineClips && + this.layoutVertexArray2.emplaceBack( + (this.scaledDistance - this.lineClips.start) / + (this.lineClips.end - this.lineClips.start), + this.lineClipsArray.length + ); + const I = b.vertexLength++; + this.e1 >= 0 && + this.e2 >= 0 && + (this.indexArray.emplaceBack(this.e1, I, this.e2), + b.primitiveLength++), + _ ? (this.e2 = I) : (this.e1 = I); + } + updateScaledDistance() { + this.scaledDistance = this.lineClips + ? this.lineClips.start + + ((this.lineClips.end - this.lineClips.start) * + this.distance) / + this.totalDistance + : this.distance; + } + updateDistance(t, r) { + (this.distance += t.dist(r)), this.updateScaledDistance(); + } + } + let q_, Z_; + ir("LineBucket", sf, { omit: ["layers", "patternFeatures"] }); + var U_ = { + get paint() { + return (Z_ = + Z_ || + new Ui({ + "line-opacity": new Or(ye.paint_line["line-opacity"]), + "line-color": new Or(ye.paint_line["line-color"]), + "line-translate": new wr(ye.paint_line["line-translate"]), + "line-translate-anchor": new wr( + ye.paint_line["line-translate-anchor"] + ), + "line-width": new Or(ye.paint_line["line-width"]), + "line-gap-width": new Or(ye.paint_line["line-gap-width"]), + "line-offset": new Or(ye.paint_line["line-offset"]), + "line-blur": new Or(ye.paint_line["line-blur"]), + "line-dasharray": new _o(ye.paint_line["line-dasharray"]), + "line-pattern": new Zl(ye.paint_line["line-pattern"]), + "line-gradient": new Ul(ye.paint_line["line-gradient"]), + })); + }, + get layout() { + return (q_ = + q_ || + new Ui({ + "line-cap": new wr(ye.layout_line["line-cap"]), + "line-join": new Or(ye.layout_line["line-join"]), + "line-miter-limit": new wr( + ye.layout_line["line-miter-limit"] + ), + "line-round-limit": new wr( + ye.layout_line["line-round-limit"] + ), + "line-sort-key": new Or(ye.layout_line["line-sort-key"]), + })); + }, + }; + class Vy extends Or { + possiblyEvaluate(t, r) { + return ( + (r = new Un(Math.floor(r.zoom), { + now: r.now, + fadeDuration: r.fadeDuration, + zoomHistory: r.zoomHistory, + transition: r.transition, + })), + super.possiblyEvaluate(t, r) + ); + } + evaluate(t, r, o, c) { + return ( + (r = dt({}, r, { zoom: Math.floor(r.zoom) })), + super.evaluate(t, r, o, c) + ); + } + } + let Ed; + class qy extends xa { + constructor(t) { + super(t, U_), + (this.gradientVersion = 0), + Ed || + ((Ed = new Vy( + U_.paint.properties["line-width"].specification + )), + (Ed.useIntegerZoom = !0)); + } + _handleSpecialPaintPropertyUpdate(t) { + if (t === "line-gradient") { + const r = this.gradientExpression(); + (this.stepInterpolant = + !!(function (o) { + return o._styleExpression !== void 0; + })(r) && r._styleExpression.expression instanceof ei), + (this.gradientVersion = + (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER); + } + } + gradientExpression() { + return this + ._transitionablePaint._values["line-gradient"].value.expression; + } + recalculate(t, r) { + super.recalculate(t, r), + (this.paint._values["line-floorwidth"] = Ed.possiblyEvaluate( + this._transitioningPaint._values["line-width"].value, + t + )); + } + createBucket(t) { + return new sf(t); + } + queryRadius(t) { + const r = t, + o = $_( + gu("line-width", this, r), + gu("line-gap-width", this, r) + ), + c = gu("line-offset", this, r); + return ( + o / 2 + Math.abs(c) + Pd(this.paint.get("line-translate")) + ); + } + queryIntersectsFeature({ + queryGeometry: t, + feature: r, + featureState: o, + geometry: c, + transform: f, + pixelsToTileUnits: _, + }) { + const v = Id( + t, + this.paint.get("line-translate"), + this.paint.get("line-translate-anchor"), + -f.bearingInRadians, + _ + ), + b = + (_ / 2) * + $_( + this.paint.get("line-width").evaluate(r, o), + this.paint.get("line-gap-width").evaluate(r, o) + ), + S = this.paint.get("line-offset").evaluate(r, o); + return ( + S && + (c = (function (I, L) { + const F = []; + for (let q = 0; q < I.length; q++) { + const Z = I[q], + W = []; + for (let J = 0; J < Z.length; J++) { + const le = Z[J - 1], + Re = Z[J], + xe = Z[J + 1], + Ce = + J === 0 + ? new B(0, 0) + : Re.sub(le)._unit()._perp(), + Ye = + J === Z.length - 1 + ? new B(0, 0) + : xe.sub(Re)._unit()._perp(), + lt = Ce._add(Ye)._unit(), + Pt = lt.x * Ye.x + lt.y * Ye.y; + Pt !== 0 && lt._mult(1 / Pt), + W.push(lt._mult(L)._add(Re)); + } + F.push(W); + } + return F; + })(c, S * _)), + (function (I, L, F) { + for (let q = 0; q < L.length; q++) { + const Z = L[q]; + if (I.length >= 3) { + for (let W = 0; W < Z.length; W++) + if (Yl(I, Z[W])) return !0; + } + if (Q0(I, Z, F)) return !0; + } + return !1; + })(v, c, b) + ); + } + isTileClipped() { + return !0; + } + } + function $_(n, t) { + return t > 0 ? t + 2 * n : n; + } + const Zy = ti( + [ + { name: "a_pos_offset", components: 4, type: "Int16" }, + { name: "a_data", components: 4, type: "Uint16" }, + { name: "a_pixeloffset", components: 4, type: "Int16" }, + ], + 4 + ), + Uy = ti( + [{ name: "a_projected_pos", components: 3, type: "Float32" }], + 4 + ); + ti([{ name: "a_fade_opacity", components: 1, type: "Uint32" }], 4); + const $y = ti([ + { name: "a_placed", components: 2, type: "Uint8" }, + { name: "a_shift", components: 2, type: "Float32" }, + { name: "a_box_real", components: 2, type: "Int16" }, + ]); + ti([ + { 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 G_ = ti( + [ + { name: "a_pos", components: 2, type: "Int16" }, + { name: "a_anchor_pos", components: 2, type: "Int16" }, + { name: "a_extrude", components: 2, type: "Int16" }, + ], + 4 + ), + Gy = ti( + [ + { name: "a_pos", components: 2, type: "Float32" }, + { name: "a_radius", components: 1, type: "Float32" }, + { name: "a_flags", components: 2, type: "Int16" }, + ], + 4 + ); + function Hy(n, t, r) { + return ( + n.sections.forEach((o) => { + o.text = (function (c, f, _) { + const v = f.layout.get("text-transform").evaluate(_, {}); + return ( + v === "uppercase" + ? (c = c.toLocaleUpperCase()) + : v === "lowercase" && (c = c.toLocaleLowerCase()), + Ea.applyArabicShaping && (c = Ea.applyArabicShaping(c)), + c + ); + })(o.text, t, r); + }), + n + ); + } + ti([{ name: "triangle", components: 3, type: "Uint16" }]), + ti([ + { 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" }, + ]), + ti([ + { 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" }, + ]), + ti([{ type: "Float32", name: "offsetX" }]), + ti([ + { type: "Int16", name: "x" }, + { type: "Int16", name: "y" }, + { type: "Int16", name: "tileUnitDistanceFromAnchor" }, + ]), + ti([ + { type: "Uint16", name: "textAnchor" }, + { type: "Float32", components: 2, name: "textOffset" }, + ]); + const Iu = { + "!": "︕", + "#": "#", + $: "$", + "%": "%", + "&": "&", + "(": "︵", + ")": "︶", + "*": "*", + "+": "+", + ",": "︐", + "-": "︲", + ".": "・", + "/": "/", + ":": "︓", + ";": "︔", + "<": "︿", + "=": "=", + ">": "﹀", + "?": "︖", + "@": "@", + "[": "﹇", + "\\": "\", + "]": "﹈", + "^": "^", + _: "︳", + "`": "`", + "{": "︷", + "|": "―", + "}": "︸", + "~": "~", + "¢": "¢", + "£": "£", + "¥": "¥", + "¦": "¦", + "¬": "¬", + "¯": " ̄", + "–": "︲", + "—": "︱", + "‘": "﹃", + "’": "﹄", + "“": "﹁", + "”": "﹂", + "…": "︙", + "‧": "・", + "₩": "₩", + "、": "︑", + "。": "︒", + "〈": "︿", + "〉": "﹀", + "《": "︽", + "》": "︾", + "「": "﹁", + "」": "﹂", + "『": "﹃", + "』": "﹄", + "【": "︻", + "】": "︼", + "〔": "︹", + "〕": "︺", + "〖": "︗", + "〗": "︘", + "!": "︕", + "(": "︵", + ")": "︶", + ",": "︐", + "-": "︲", + ".": "・", + ":": "︓", + ";": "︔", + "<": "︿", + ">": "﹀", + "?": "︖", + "[": "﹇", + "]": "﹈", + "_": "︳", + "{": "︷", + "|": "―", + "}": "︸", + "⦅": "︵", + "⦆": "︶", + "。": "︒", + "「": "﹁", + "」": "﹂", + }; + var Si = 24; + const lf = 4294967296, + H_ = 1 / lf, + W_ = typeof TextDecoder > "u" ? null : new TextDecoder("utf-8"); + class cf { + constructor(t = new Uint8Array(16)) { + (this.buf = ArrayBuffer.isView(t) ? t : new Uint8Array(t)), + (this.dataView = new DataView(this.buf.buffer)), + (this.pos = 0), + (this.type = 0), + (this.length = this.buf.length); + } + readFields(t, r, o = this.length) { + for (; this.pos < o; ) { + const c = this.readVarint(), + f = c >> 3, + _ = this.pos; + (this.type = 7 & c), + t(f, r, this), + this.pos === _ && this.skip(c); + } + return r; + } + readMessage(t, r) { + return this.readFields(t, r, this.readVarint() + this.pos); + } + readFixed32() { + const t = this.dataView.getUint32(this.pos, !0); + return (this.pos += 4), t; + } + readSFixed32() { + const t = this.dataView.getInt32(this.pos, !0); + return (this.pos += 4), t; + } + readFixed64() { + const t = + this.dataView.getUint32(this.pos, !0) + + this.dataView.getUint32(this.pos + 4, !0) * lf; + return (this.pos += 8), t; + } + readSFixed64() { + const t = + this.dataView.getUint32(this.pos, !0) + + this.dataView.getInt32(this.pos + 4, !0) * lf; + return (this.pos += 8), t; + } + readFloat() { + const t = this.dataView.getFloat32(this.pos, !0); + return (this.pos += 4), t; + } + readDouble() { + const t = this.dataView.getFloat64(this.pos, !0); + return (this.pos += 8), t; + } + readVarint(t) { + const r = this.buf; + let o, c; + return ( + (c = r[this.pos++]), + (o = 127 & c), + c < 128 + ? o + : ((c = r[this.pos++]), + (o |= (127 & c) << 7), + c < 128 + ? o + : ((c = r[this.pos++]), + (o |= (127 & c) << 14), + c < 128 + ? o + : ((c = r[this.pos++]), + (o |= (127 & c) << 21), + c < 128 + ? o + : ((c = r[this.pos]), + (o |= (15 & c) << 28), + (function (f, _, v) { + const b = v.buf; + let S, I; + if ( + ((I = b[v.pos++]), + (S = (112 & I) >> 4), + I < 128 || + ((I = b[v.pos++]), + (S |= (127 & I) << 3), + I < 128) || + ((I = b[v.pos++]), + (S |= (127 & I) << 10), + I < 128) || + ((I = b[v.pos++]), + (S |= (127 & I) << 17), + I < 128) || + ((I = b[v.pos++]), + (S |= (127 & I) << 24), + I < 128) || + ((I = b[v.pos++]), + (S |= (1 & I) << 31), + I < 128)) + ) + return tc(f, S, _); + throw new Error( + "Expected varint not more than 10 bytes" + ); + })(o, t, this))))) + ); + } + readVarint64() { + return this.readVarint(!0); + } + readSVarint() { + const t = this.readVarint(); + return t % 2 == 1 ? (t + 1) / -2 : t / 2; + } + readBoolean() { + return !!this.readVarint(); + } + readString() { + const t = this.readVarint() + this.pos, + r = this.pos; + return ( + (this.pos = t), + t - r >= 12 && W_ + ? W_.decode(this.buf.subarray(r, t)) + : (function (o, c, f) { + let _ = "", + v = c; + for (; v < f; ) { + const b = o[v]; + let S, + I, + L, + F = null, + q = b > 239 ? 4 : b > 223 ? 3 : b > 191 ? 2 : 1; + if (v + q > f) break; + q === 1 + ? b < 128 && (F = b) + : q === 2 + ? ((S = o[v + 1]), + (192 & S) == 128 && + ((F = ((31 & b) << 6) | (63 & S)), + F <= 127 && (F = null))) + : q === 3 + ? ((S = o[v + 1]), + (I = o[v + 2]), + (192 & S) == 128 && + (192 & I) == 128 && + ((F = + ((15 & b) << 12) | + ((63 & S) << 6) | + (63 & I)), + (F <= 2047 || (F >= 55296 && F <= 57343)) && + (F = null))) + : q === 4 && + ((S = o[v + 1]), + (I = o[v + 2]), + (L = o[v + 3]), + (192 & S) == 128 && + (192 & I) == 128 && + (192 & L) == 128 && + ((F = + ((15 & b) << 18) | + ((63 & S) << 12) | + ((63 & I) << 6) | + (63 & L)), + (F <= 65535 || F >= 1114112) && (F = null))), + F === null + ? ((F = 65533), (q = 1)) + : F > 65535 && + ((F -= 65536), + (_ += String.fromCharCode( + ((F >>> 10) & 1023) | 55296 + )), + (F = 56320 | (1023 & F))), + (_ += String.fromCharCode(F)), + (v += q); + } + return _; + })(this.buf, r, t) + ); + } + readBytes() { + const t = this.readVarint() + this.pos, + r = this.buf.subarray(this.pos, t); + return (this.pos = t), r; + } + readPackedVarint(t = [], r) { + const o = this.readPackedEnd(); + for (; this.pos < o; ) t.push(this.readVarint(r)); + return t; + } + readPackedSVarint(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readSVarint()); + return t; + } + readPackedBoolean(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readBoolean()); + return t; + } + readPackedFloat(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readFloat()); + return t; + } + readPackedDouble(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readDouble()); + return t; + } + readPackedFixed32(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readFixed32()); + return t; + } + readPackedSFixed32(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readSFixed32()); + return t; + } + readPackedFixed64(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readFixed64()); + return t; + } + readPackedSFixed64(t = []) { + const r = this.readPackedEnd(); + for (; this.pos < r; ) t.push(this.readSFixed64()); + return t; + } + readPackedEnd() { + return this.type === 2 + ? this.readVarint() + this.pos + : this.pos + 1; + } + skip(t) { + const r = 7 & t; + if (r === 0) for (; this.buf[this.pos++] > 127; ); + else if (r === 2) this.pos = this.readVarint() + this.pos; + else if (r === 5) this.pos += 4; + else { + if (r !== 1) throw new Error(`Unimplemented type: ${r}`); + this.pos += 8; + } + } + writeTag(t, r) { + this.writeVarint((t << 3) | r); + } + realloc(t) { + let r = this.length || 16; + for (; r < this.pos + t; ) r *= 2; + if (r !== this.length) { + const o = new Uint8Array(r); + o.set(this.buf), + (this.buf = o), + (this.dataView = new DataView(o.buffer)), + (this.length = r); + } + } + finish() { + return ( + (this.length = this.pos), + (this.pos = 0), + this.buf.subarray(0, this.length) + ); + } + writeFixed32(t) { + this.realloc(4), + this.dataView.setInt32(this.pos, t, !0), + (this.pos += 4); + } + writeSFixed32(t) { + this.realloc(4), + this.dataView.setInt32(this.pos, t, !0), + (this.pos += 4); + } + writeFixed64(t) { + this.realloc(8), + this.dataView.setInt32(this.pos, -1 & t, !0), + this.dataView.setInt32(this.pos + 4, Math.floor(t * H_), !0), + (this.pos += 8); + } + writeSFixed64(t) { + this.realloc(8), + this.dataView.setInt32(this.pos, -1 & t, !0), + this.dataView.setInt32(this.pos + 4, Math.floor(t * H_), !0), + (this.pos += 8); + } + writeVarint(t) { + (t = +t || 0) > 268435455 || t < 0 + ? (function (r, o) { + let c, f; + if ( + (r >= 0 + ? ((c = r % 4294967296 | 0), + (f = (r / 4294967296) | 0)) + : ((c = ~(-r % 4294967296)), + (f = ~(-r / 4294967296)), + 4294967295 ^ c + ? (c = (c + 1) | 0) + : ((c = 0), (f = (f + 1) | 0))), + r >= 18446744073709552e3 || r < -18446744073709552e3) + ) + throw new Error( + "Given varint doesn't fit into 10 bytes" + ); + o.realloc(10), + (function (_, v, b) { + (b.buf[b.pos++] = (127 & _) | 128), + (_ >>>= 7), + (b.buf[b.pos++] = (127 & _) | 128), + (_ >>>= 7), + (b.buf[b.pos++] = (127 & _) | 128), + (_ >>>= 7), + (b.buf[b.pos++] = (127 & _) | 128), + (b.buf[b.pos] = 127 & (_ >>>= 7)); + })(c, 0, o), + (function (_, v) { + const b = (7 & _) << 4; + (v.buf[v.pos++] |= b | ((_ >>>= 3) ? 128 : 0)), + _ && + ((v.buf[v.pos++] = + (127 & _) | ((_ >>>= 7) ? 128 : 0)), + _ && + ((v.buf[v.pos++] = + (127 & _) | ((_ >>>= 7) ? 128 : 0)), + _ && + ((v.buf[v.pos++] = + (127 & _) | ((_ >>>= 7) ? 128 : 0)), + _ && + ((v.buf[v.pos++] = + (127 & _) | ((_ >>>= 7) ? 128 : 0)), + _ && (v.buf[v.pos++] = 127 & _))))); + })(f, o); + })(t, this) + : (this.realloc(4), + (this.buf[this.pos++] = (127 & t) | (t > 127 ? 128 : 0)), + t <= 127 || + ((this.buf[this.pos++] = + (127 & (t >>>= 7)) | (t > 127 ? 128 : 0)), + t <= 127 || + ((this.buf[this.pos++] = + (127 & (t >>>= 7)) | (t > 127 ? 128 : 0)), + t <= 127 || (this.buf[this.pos++] = (t >>> 7) & 127)))); + } + writeSVarint(t) { + this.writeVarint(t < 0 ? 2 * -t - 1 : 2 * t); + } + writeBoolean(t) { + this.writeVarint(+t); + } + writeString(t) { + (t = String(t)), this.realloc(4 * t.length), this.pos++; + const r = this.pos; + this.pos = (function (c, f, _) { + for (let v, b, S = 0; S < f.length; S++) { + if (((v = f.charCodeAt(S)), v > 55295 && v < 57344)) { + if (!b) { + v > 56319 || S + 1 === f.length + ? ((c[_++] = 239), (c[_++] = 191), (c[_++] = 189)) + : (b = v); + continue; + } + if (v < 56320) { + (c[_++] = 239), (c[_++] = 191), (c[_++] = 189), (b = v); + continue; + } + (v = ((b - 55296) << 10) | (v - 56320) | 65536), + (b = null); + } else + b && + ((c[_++] = 239), + (c[_++] = 191), + (c[_++] = 189), + (b = null)); + v < 128 + ? (c[_++] = v) + : (v < 2048 + ? (c[_++] = (v >> 6) | 192) + : (v < 65536 + ? (c[_++] = (v >> 12) | 224) + : ((c[_++] = (v >> 18) | 240), + (c[_++] = ((v >> 12) & 63) | 128)), + (c[_++] = ((v >> 6) & 63) | 128)), + (c[_++] = (63 & v) | 128)); + } + return _; + })(this.buf, t, this.pos); + const o = this.pos - r; + o >= 128 && X_(r, o, this), + (this.pos = r - 1), + this.writeVarint(o), + (this.pos += o); + } + writeFloat(t) { + this.realloc(4), + this.dataView.setFloat32(this.pos, t, !0), + (this.pos += 4); + } + writeDouble(t) { + this.realloc(8), + this.dataView.setFloat64(this.pos, t, !0), + (this.pos += 8); + } + writeBytes(t) { + const r = t.length; + this.writeVarint(r), this.realloc(r); + for (let o = 0; o < r; o++) this.buf[this.pos++] = t[o]; + } + writeRawMessage(t, r) { + this.pos++; + const o = this.pos; + t(r, this); + const c = this.pos - o; + c >= 128 && X_(o, c, this), + (this.pos = o - 1), + this.writeVarint(c), + (this.pos += c); + } + writeMessage(t, r, o) { + this.writeTag(t, 2), this.writeRawMessage(r, o); + } + writePackedVarint(t, r) { + r.length && this.writeMessage(t, Wy, r); + } + writePackedSVarint(t, r) { + r.length && this.writeMessage(t, Xy, r); + } + writePackedBoolean(t, r) { + r.length && this.writeMessage(t, Jy, r); + } + writePackedFloat(t, r) { + r.length && this.writeMessage(t, Yy, r); + } + writePackedDouble(t, r) { + r.length && this.writeMessage(t, Ky, r); + } + writePackedFixed32(t, r) { + r.length && this.writeMessage(t, Qy, r); + } + writePackedSFixed32(t, r) { + r.length && this.writeMessage(t, e1, r); + } + writePackedFixed64(t, r) { + r.length && this.writeMessage(t, t1, r); + } + writePackedSFixed64(t, r) { + r.length && this.writeMessage(t, r1, r); + } + writeBytesField(t, r) { + this.writeTag(t, 2), this.writeBytes(r); + } + writeFixed32Field(t, r) { + this.writeTag(t, 5), this.writeFixed32(r); + } + writeSFixed32Field(t, r) { + this.writeTag(t, 5), this.writeSFixed32(r); + } + writeFixed64Field(t, r) { + this.writeTag(t, 1), this.writeFixed64(r); + } + writeSFixed64Field(t, r) { + this.writeTag(t, 1), this.writeSFixed64(r); + } + writeVarintField(t, r) { + this.writeTag(t, 0), this.writeVarint(r); + } + writeSVarintField(t, r) { + this.writeTag(t, 0), this.writeSVarint(r); + } + writeStringField(t, r) { + this.writeTag(t, 2), this.writeString(r); + } + writeFloatField(t, r) { + this.writeTag(t, 5), this.writeFloat(r); + } + writeDoubleField(t, r) { + this.writeTag(t, 1), this.writeDouble(r); + } + writeBooleanField(t, r) { + this.writeVarintField(t, +r); + } + } + function tc(n, t, r) { + return r + ? 4294967296 * t + (n >>> 0) + : 4294967296 * (t >>> 0) + (n >>> 0); + } + function X_(n, t, r) { + const o = + t <= 16383 + ? 1 + : t <= 2097151 + ? 2 + : t <= 268435455 + ? 3 + : Math.floor(Math.log(t) / (7 * Math.LN2)); + r.realloc(o); + for (let c = r.pos - 1; c >= n; c--) r.buf[c + o] = r.buf[c]; + } + function Wy(n, t) { + for (let r = 0; r < n.length; r++) t.writeVarint(n[r]); + } + function Xy(n, t) { + for (let r = 0; r < n.length; r++) t.writeSVarint(n[r]); + } + function Yy(n, t) { + for (let r = 0; r < n.length; r++) t.writeFloat(n[r]); + } + function Ky(n, t) { + for (let r = 0; r < n.length; r++) t.writeDouble(n[r]); + } + function Jy(n, t) { + for (let r = 0; r < n.length; r++) t.writeBoolean(n[r]); + } + function Qy(n, t) { + for (let r = 0; r < n.length; r++) t.writeFixed32(n[r]); + } + function e1(n, t) { + for (let r = 0; r < n.length; r++) t.writeSFixed32(n[r]); + } + function t1(n, t) { + for (let r = 0; r < n.length; r++) t.writeFixed64(n[r]); + } + function r1(n, t) { + for (let r = 0; r < n.length; r++) t.writeSFixed64(n[r]); + } + function n1(n, t, r) { + n === 1 && r.readMessage(i1, t); + } + function i1(n, t, r) { + if (n === 3) { + const { + id: o, + bitmap: c, + width: f, + height: _, + left: v, + top: b, + advance: S, + } = r.readMessage(a1, {}); + t.push({ + id: o, + bitmap: new vu({ width: f + 6, height: _ + 6 }, c), + metrics: { width: f, height: _, left: v, top: b, advance: S }, + }); + } + } + function a1(n, t, r) { + n === 1 + ? (t.id = r.readVarint()) + : n === 2 + ? (t.bitmap = r.readBytes()) + : n === 3 + ? (t.width = r.readVarint()) + : n === 4 + ? (t.height = r.readVarint()) + : n === 5 + ? (t.left = r.readSVarint()) + : n === 6 + ? (t.top = r.readSVarint()) + : n === 7 && (t.advance = r.readVarint()); + } + function Y_(n) { + let t = 0, + r = 0; + for (const _ of n) (t += _.w * _.h), (r = Math.max(r, _.w)); + n.sort((_, v) => v.h - _.h); + const o = [ + { + x: 0, + y: 0, + w: Math.max(Math.ceil(Math.sqrt(t / 0.95)), r), + h: 1 / 0, + }, + ]; + let c = 0, + f = 0; + for (const _ of n) + for (let v = o.length - 1; v >= 0; v--) { + const b = o[v]; + if (!(_.w > b.w || _.h > b.h)) { + if ( + ((_.x = b.x), + (_.y = b.y), + (f = Math.max(f, _.y + _.h)), + (c = Math.max(c, _.x + _.w)), + _.w === b.w && _.h === b.h) + ) { + const S = o.pop(); + S && v < o.length && (o[v] = S); + } else + _.h === b.h + ? ((b.x += _.w), (b.w -= _.w)) + : _.w === b.w + ? ((b.y += _.h), (b.h -= _.h)) + : (o.push({ + x: b.x + _.w, + y: b.y, + w: b.w - _.w, + h: _.h, + }), + (b.y += _.h), + (b.h -= _.h)); + break; + } + } + return { w: c, h: f, fill: t / (c * f) || 0 }; + } + class uf { + constructor( + t, + { + pixelRatio: r, + version: o, + stretchX: c, + stretchY: f, + content: _, + textFitWidth: v, + textFitHeight: b, + } + ) { + (this.paddedRect = t), + (this.pixelRatio = r), + (this.stretchX = c), + (this.stretchY = f), + (this.content = _), + (this.version = o), + (this.textFitWidth = v), + (this.textFitHeight = b); + } + get tl() { + return [this.paddedRect.x + 1, this.paddedRect.y + 1]; + } + get br() { + return [ + this.paddedRect.x + this.paddedRect.w - 1, + this.paddedRect.y + this.paddedRect.h - 1, + ]; + } + get tlbr() { + return this.tl.concat(this.br); + } + get displaySize() { + return [ + (this.paddedRect.w - 2) / this.pixelRatio, + (this.paddedRect.h - 2) / this.pixelRatio, + ]; + } + } + class K_ { + constructor(t, r) { + const o = {}, + c = {}; + this.haveRenderCallbacks = []; + const f = []; + this.addImages(t, o, f), this.addImages(r, c, f); + const { w: _, h: v } = Y_(f), + b = new ca({ width: _ || 1, height: v || 1 }); + for (const S in t) { + const I = t[S], + L = o[S].paddedRect; + ca.copy( + I.data, + b, + { x: 0, y: 0 }, + { x: L.x + 1, y: L.y + 1 }, + I.data + ); + } + for (const S in r) { + const I = r[S], + L = c[S].paddedRect, + F = L.x + 1, + q = L.y + 1, + Z = I.data.width, + W = I.data.height; + ca.copy(I.data, b, { x: 0, y: 0 }, { x: F, y: q }, I.data), + ca.copy( + I.data, + b, + { x: 0, y: W - 1 }, + { x: F, y: q - 1 }, + { width: Z, height: 1 } + ), + ca.copy( + I.data, + b, + { x: 0, y: 0 }, + { x: F, y: q + W }, + { width: Z, height: 1 } + ), + ca.copy( + I.data, + b, + { x: Z - 1, y: 0 }, + { x: F - 1, y: q }, + { width: 1, height: W } + ), + ca.copy( + I.data, + b, + { x: 0, y: 0 }, + { x: F + Z, y: q }, + { width: 1, height: W } + ); + } + (this.image = b), + (this.iconPositions = o), + (this.patternPositions = c); + } + addImages(t, r, o) { + for (const c in t) { + const f = t[c], + _ = { + x: 0, + y: 0, + w: f.data.width + 2, + h: f.data.height + 2, + }; + o.push(_), + (r[c] = new uf(_, f)), + f.hasRenderCallback && this.haveRenderCallbacks.push(c); + } + } + patchUpdatedImages(t, r) { + t.dispatchRenderCallbacks(this.haveRenderCallbacks); + for (const o in t.updatedImages) + this.patchUpdatedImage( + this.iconPositions[o], + t.getImage(o), + r + ), + this.patchUpdatedImage( + this.patternPositions[o], + t.getImage(o), + r + ); + } + patchUpdatedImage(t, r, o) { + if (!t || !r || t.version === r.version) return; + t.version = r.version; + const [c, f] = t.tl; + o.update(r.data, void 0, { x: c, y: f }); + } + } + var gs; + ir("ImagePosition", uf), + ir("ImageAtlas", K_), + (T.ao = void 0), + ((gs = T.ao || (T.ao = {}))[(gs.none = 0)] = "none"), + (gs[(gs.horizontal = 1)] = "horizontal"), + (gs[(gs.vertical = 2)] = "vertical"), + (gs[(gs.horizontalOnly = 3)] = "horizontalOnly"); + class Mu { + constructor() { + (this.scale = 1), + (this.fontStack = ""), + (this.imageName = null), + (this.verticalAlign = "bottom"); + } + static forText(t, r, o) { + const c = new Mu(); + return ( + (c.scale = t || 1), + (c.fontStack = r), + (c.verticalAlign = o || "bottom"), + c + ); + } + static forImage(t, r) { + const o = new Mu(); + return (o.imageName = t), (o.verticalAlign = r || "bottom"), o; + } + } + class rc { + constructor() { + (this.text = ""), + (this.sectionIndex = []), + (this.sections = []), + (this.imageSectionID = null); + } + static fromFeature(t, r) { + const o = new rc(); + for (let c = 0; c < t.sections.length; c++) { + const f = t.sections[c]; + f.image ? o.addImageSection(f) : o.addTextSection(f, r); + } + return o; + } + length() { + return this.text.length; + } + getSection(t) { + return this.sections[this.sectionIndex[t]]; + } + getSectionIndex(t) { + return this.sectionIndex[t]; + } + getCharCode(t) { + return this.text.charCodeAt(t); + } + verticalizePunctuation() { + this.text = (function (t) { + let r = ""; + for (let o = 0; o < t.length; o++) { + const c = t.charCodeAt(o + 1) || null, + f = t.charCodeAt(o - 1) || null; + r += + (c && gd(c) && !Iu[t[o + 1]]) || + (f && gd(f) && !Iu[t[o - 1]]) || + !Iu[t[o]] + ? t[o] + : Iu[t[o]]; + } + return r; + })(this.text); + } + trim() { + let t = 0; + for ( + let o = 0; + o < this.text.length && Ld[this.text.charCodeAt(o)]; + o++ + ) + t++; + let r = this.text.length; + for ( + let o = this.text.length - 1; + o >= 0 && o >= t && Ld[this.text.charCodeAt(o)]; + o-- + ) + r--; + (this.text = this.text.substring(t, r)), + (this.sectionIndex = this.sectionIndex.slice(t, r)); + } + substring(t, r) { + const o = new rc(); + return ( + (o.text = this.text.substring(t, r)), + (o.sectionIndex = this.sectionIndex.slice(t, r)), + (o.sections = this.sections), + o + ); + } + toString() { + return this.text; + } + getMaxScale() { + return this.sectionIndex.reduce( + (t, r) => Math.max(t, this.sections[r].scale), + 0 + ); + } + getMaxImageSize(t) { + let r = 0, + o = 0; + for (let c = 0; c < this.length(); c++) { + const f = this.getSection(c); + if (f.imageName) { + const _ = t[f.imageName]; + if (!_) continue; + const v = _.displaySize; + (r = Math.max(r, v[0])), (o = Math.max(o, v[1])); + } + } + return { maxImageWidth: r, maxImageHeight: o }; + } + addTextSection(t, r) { + (this.text += t.text), + this.sections.push( + Mu.forText(t.scale, t.fontStack || r, t.verticalAlign) + ); + const o = this.sections.length - 1; + for (let c = 0; c < t.text.length; ++c) + this.sectionIndex.push(o); + } + addImageSection(t) { + const r = t.image ? t.image.name : ""; + if (r.length === 0) + return void Lt( + "Can't add FormattedSection with an empty image." + ); + const o = this.getNextImageSectionCharCode(); + o + ? ((this.text += String.fromCharCode(o)), + this.sections.push(Mu.forImage(r, t.verticalAlign)), + this.sectionIndex.push(this.sections.length - 1)) + : Lt("Reached maximum number of images 6401"); + } + getNextImageSectionCharCode() { + return this.imageSectionID + ? this.imageSectionID >= 63743 + ? null + : ++this.imageSectionID + : ((this.imageSectionID = 57344), this.imageSectionID); + } + } + function zd(n, t, r, o, c, f, _, v, b, S, I, L, F, q, Z) { + const W = rc.fromFeature(n, c); + let J; + L === T.ao.vertical && W.verticalizePunctuation(); + const { + processBidirectionalText: le, + processStyledBidirectionalText: Re, + } = Ea; + if (le && W.sections.length === 1) { + J = []; + const Ye = le(W.toString(), hf(W, S, f, t, o, q)); + for (const lt of Ye) { + const Pt = new rc(); + (Pt.text = lt), (Pt.sections = W.sections); + for (let Yt = 0; Yt < lt.length; Yt++) + Pt.sectionIndex.push(0); + J.push(Pt); + } + } else if (Re) { + J = []; + const Ye = Re(W.text, W.sectionIndex, hf(W, S, f, t, o, q)); + for (const lt of Ye) { + const Pt = new rc(); + (Pt.text = lt[0]), + (Pt.sectionIndex = lt[1]), + (Pt.sections = W.sections), + J.push(Pt); + } + } else + J = (function (Ye, lt) { + const Pt = [], + Yt = Ye.text; + let qt = 0; + for (const Ht of lt) Pt.push(Ye.substring(qt, Ht)), (qt = Ht); + return ( + qt < Yt.length && Pt.push(Ye.substring(qt, Yt.length)), Pt + ); + })(W, hf(W, S, f, t, o, q)); + const xe = [], + Ce = { + positionedLines: xe, + text: W.toString(), + top: I[1], + bottom: I[1], + left: I[0], + right: I[0], + writingMode: L, + iconsInText: !1, + verticalizable: !1, + }; + return ( + (function (Ye, lt, Pt, Yt, qt, Ht, Sr, Gt, Wt, gt, Nr, Hr) { + let kr = 0, + yr = 0, + dn = 0, + Qn = 0; + const gi = Gt === "right" ? 1 : Gt === "left" ? 0 : 0.5, + qi = Si / Hr; + let Ba = 0; + for (const Xn of qt) { + Xn.trim(); + const Pi = Xn.getMaxScale(), + Bi = { positionedGlyphs: [], lineOffset: 0 }; + Ye.positionedLines[Ba] = Bi; + const Fi = Bi.positionedGlyphs; + let ra = 0; + if (!Xn.length()) { + (yr += Ht), ++Ba; + continue; + } + const Fa = c1(Yt, Xn, qi); + for (let ha = 0; ha < Xn.length(); ha++) { + const vi = Xn.getSection(ha), + Mi = Xn.getSectionIndex(ha), + ki = Xn.getCharCode(ha), + ui = u1(Wt, Nr, ki); + let qn; + if (vi.imageName) { + if ( + ((Ye.iconsInText = !0), + (vi.scale = vi.scale * qi), + (qn = d1(vi, ui, Pi, Fa, Yt)), + !qn) + ) + continue; + ra = Math.max(ra, qn.imageOffset); + } else if (((qn = h1(vi, ki, ui, Fa, lt, Pt)), !qn)) + continue; + const { rect: io, metrics: oc, baselineOffset: ao } = qn; + Fi.push({ + glyph: ki, + imageName: vi.imageName, + x: kr, + y: yr + ao + -17, + vertical: ui, + scale: vi.scale, + fontStack: vi.fontStack, + sectionIndex: Mi, + metrics: oc, + rect: io, + }), + ui + ? ((Ye.verticalizable = !0), + (kr += + (vi.imageName ? oc.advance : Si) * vi.scale + gt)) + : (kr += oc.advance * vi.scale + gt); + } + Fi.length !== 0 && + ((dn = Math.max(kr - gt, dn)), + p1(Fi, 0, Fi.length - 1, gi)), + (kr = 0), + (Bi.lineOffset = Math.max(ra, (Pi - 1) * Si)); + const Ii = Ht * Pi + ra; + (yr += Ii), (Qn = Math.max(Ii, Qn)), ++Ba; + } + const { horizontalAlign: ua, verticalAlign: Ri } = df(Sr); + (function (Xn, Pi, Bi, Fi, ra, Fa, Ii, ha, vi) { + const Mi = (Pi - Bi) * ra; + let ki = 0; + ki = Fa !== Ii ? -ha * Fi - -17 : -Fi * vi * Ii + 0.5 * Ii; + for (const ui of Xn) + for (const qn of ui.positionedGlyphs) + (qn.x += Mi), (qn.y += ki); + })(Ye.positionedLines, gi, ua, Ri, dn, Qn, Ht, yr, qt.length), + (Ye.top += -Ri * yr), + (Ye.bottom = Ye.top + yr), + (Ye.left += -ua * dn), + (Ye.right = Ye.left + dn); + })(Ce, t, r, o, J, _, v, b, L, S, F, Z), + !(function (Ye) { + for (const lt of Ye) + if (lt.positionedGlyphs.length !== 0) return !1; + return !0; + })(xe) && Ce + ); + } + const Ld = { 9: !0, 10: !0, 11: !0, 12: !0, 13: !0, 32: !0 }, + o1 = { + 10: !0, + 32: !0, + 38: !0, + 41: !0, + 43: !0, + 45: !0, + 47: !0, + 173: !0, + 183: !0, + 8203: !0, + 8208: !0, + 8211: !0, + 8231: !0, + }, + s1 = { 40: !0 }; + function J_(n, t, r, o, c, f) { + if (t.imageName) { + const _ = o[t.imageName]; + return _ ? (_.displaySize[0] * t.scale * Si) / f + c : 0; + } + { + const _ = r[t.fontStack], + v = _ && _[n]; + return v ? v.metrics.advance * t.scale + c : 0; + } + } + function Q_(n, t, r, o) { + const c = Math.pow(n - t, 2); + return o ? (n < t ? c / 2 : 2 * c) : c + Math.abs(r) * r; + } + function l1(n, t, r) { + let o = 0; + return ( + n === 10 && (o -= 1e4), + r && (o += 150), + (n !== 40 && n !== 65288) || (o += 50), + (t !== 41 && t !== 65289) || (o += 50), + o + ); + } + function eg(n, t, r, o, c, f) { + let _ = null, + v = Q_(t, r, c, f); + for (const b of o) { + const S = Q_(t - b.x, r, c, f) + b.badness; + S <= v && ((_ = b), (v = S)); + } + return { index: n, x: t, priorBreak: _, badness: v }; + } + function tg(n) { + return n ? tg(n.priorBreak).concat(n.index) : []; + } + function hf(n, t, r, o, c, f) { + if (!n) return []; + const _ = [], + v = (function (L, F, q, Z, W, J) { + let le = 0; + for (let Re = 0; Re < L.length(); Re++) { + const xe = L.getSection(Re); + le += J_(L.getCharCode(Re), xe, Z, W, F, J); + } + return le / Math.max(1, Math.ceil(le / q)); + })(n, t, r, o, c, f), + b = n.text.indexOf("​") >= 0; + let S = 0; + for (let L = 0; L < n.length(); L++) { + const F = n.getSection(L), + q = n.getCharCode(L); + if ( + (Ld[q] || (S += J_(q, F, o, c, t, f)), L < n.length() - 1) + ) { + const Z = + !((I = q) < 11904) && + (!!hn["CJK Compatibility Forms"](I) || + !!hn["CJK Compatibility"](I) || + !!hn["CJK Strokes"](I) || + !!hn["CJK Symbols and Punctuation"](I) || + !!hn["Enclosed CJK Letters and Months"](I) || + !!hn["Halfwidth and Fullwidth Forms"](I) || + !!hn["Ideographic Description Characters"](I) || + !!hn["Vertical Forms"](I) || + ou.test(String.fromCodePoint(I))); + (o1[q] || + Z || + F.imageName || + (L !== n.length() - 2 && s1[n.getCharCode(L + 1)])) && + _.push( + eg( + L + 1, + S, + v, + _, + l1(q, n.getCharCode(L + 1), Z && b), + !1 + ) + ); + } + } + var I; + return tg(eg(n.length(), S, v, _, 0, !0)); + } + function df(n) { + let t = 0.5, + r = 0.5; + switch (n) { + case "right": + case "top-right": + case "bottom-right": + t = 1; + break; + case "left": + case "top-left": + case "bottom-left": + t = 0; + } + switch (n) { + case "bottom": + case "bottom-right": + case "bottom-left": + r = 1; + break; + case "top": + case "top-right": + case "top-left": + r = 0; + } + return { horizontalAlign: t, verticalAlign: r }; + } + function c1(n, t, r) { + const o = t.getMaxScale() * Si, + { maxImageWidth: c, maxImageHeight: f } = t.getMaxImageSize(n), + _ = Math.max(o, f * r); + return { + verticalLineContentWidth: Math.max(o, c * r), + horizontalLineContentHeight: _, + }; + } + function rg(n) { + switch (n) { + case "top": + return 0; + case "center": + return 0.5; + default: + return 1; + } + } + function u1(n, t, r) { + return !( + n === T.ao.horizontal || + (!t && !su(r)) || + (t && + (Ld[r] || + ((o = r), + new RegExp("\\p{sc=Arab}", "u").test( + String.fromCodePoint(o) + )))) + ); + var o; + } + function h1(n, t, r, o, c, f) { + const _ = f[n.fontStack], + v = (function (S, I, L, F) { + if (S && S.rect) return S; + const q = I[L.fontStack], + Z = q && q[F]; + return Z ? { rect: null, metrics: Z.metrics } : null; + })(_ && _[t], c, n, t); + if (v === null) return null; + let b; + if (r) b = o.verticalLineContentWidth - n.scale * Si; + else { + const S = rg(n.verticalAlign); + b = (o.horizontalLineContentHeight - n.scale * Si) * S; + } + return { rect: v.rect, metrics: v.metrics, baselineOffset: b }; + } + function d1(n, t, r, o, c) { + const f = c[n.imageName]; + if (!f) return null; + const _ = f.paddedRect, + v = f.displaySize, + b = { + width: v[0], + height: v[1], + left: 1, + top: -3, + advance: t ? v[1] : v[0], + }; + let S; + if (t) S = o.verticalLineContentWidth - v[1] * n.scale; + else { + const I = rg(n.verticalAlign); + S = (o.horizontalLineContentHeight - v[1] * n.scale) * I; + } + return { + rect: _, + metrics: b, + baselineOffset: S, + imageOffset: (t ? v[0] : v[1]) * n.scale - Si * r, + }; + } + function p1(n, t, r, o) { + if (o === 0) return; + const c = n[r], + f = (n[r].x + c.metrics.advance * c.scale) * o; + for (let _ = t; _ <= r; _++) n[_].x -= f; + } + function f1(n, t, r) { + const { horizontalAlign: o, verticalAlign: c } = df(r), + f = t[0] - n.displaySize[0] * o, + _ = t[1] - n.displaySize[1] * c; + return { + image: n, + top: _, + bottom: _ + n.displaySize[1], + left: f, + right: f + n.displaySize[0], + }; + } + function ng(n) { + var t, r; + let o = n.left, + c = n.top, + f = n.right - o, + _ = n.bottom - c; + const v = + (t = n.image.textFitWidth) !== null && t !== void 0 + ? t + : "stretchOrShrink", + b = + (r = n.image.textFitHeight) !== null && r !== void 0 + ? r + : "stretchOrShrink", + S = + (n.image.content[2] - n.image.content[0]) / + (n.image.content[3] - n.image.content[1]); + if (b === "proportional") { + if ( + (v === "stretchOnly" && f / _ < S) || + v === "proportional" + ) { + const I = Math.ceil(_ * S); + (o *= I / f), (f = I); + } + } else if ( + v === "proportional" && + b === "stretchOnly" && + S !== 0 && + f / _ > S + ) { + const I = Math.ceil(f / S); + (c *= I / _), (_ = I); + } + return { x1: o, y1: c, x2: o + f, y2: c + _ }; + } + function ig(n, t, r, o, c, f) { + const _ = n.image; + let v; + if (_.content) { + const J = _.content, + le = _.pixelRatio || 1; + v = [ + J[0] / le, + J[1] / le, + _.displaySize[0] - J[2] / le, + _.displaySize[1] - J[3] / le, + ]; + } + const b = t.left * f, + S = t.right * f; + let I, L, F, q; + r === "width" || r === "both" + ? ((q = c[0] + b - o[3]), (L = c[0] + S + o[1])) + : ((q = c[0] + (b + S - _.displaySize[0]) / 2), + (L = q + _.displaySize[0])); + const Z = t.top * f, + W = t.bottom * f; + return ( + r === "height" || r === "both" + ? ((I = c[1] + Z - o[0]), (F = c[1] + W + o[2])) + : ((I = c[1] + (Z + W - _.displaySize[1]) / 2), + (F = I + _.displaySize[1])), + { + image: _, + top: I, + right: L, + bottom: F, + left: q, + collisionPadding: v, + } + ); + } + const Zo = 128, + vs = 32640; + function ag(n, t) { + const { expression: r } = t; + if (r.kind === "constant") + return { + kind: "constant", + layoutSize: r.evaluate(new Un(n + 1)), + }; + if (r.kind === "source") return { kind: "source" }; + { + const { zoomStops: o, interpolationType: c } = r; + let f = 0; + for (; f < o.length && o[f] <= n; ) f++; + f = Math.max(0, f - 1); + let _ = f; + for (; _ < o.length && o[_] < n + 1; ) _++; + _ = Math.min(o.length - 1, _); + const v = o[f], + b = o[_]; + return r.kind === "composite" + ? { + kind: "composite", + minZoom: v, + maxZoom: b, + interpolationType: c, + } + : { + kind: "camera", + minZoom: v, + maxZoom: b, + minSize: r.evaluate(new Un(v)), + maxSize: r.evaluate(new Un(b)), + interpolationType: c, + }; + } + } + function pf(n, t, r) { + let o = "never"; + const c = n.get(t); + return c ? (o = c) : n.get(r) && (o = "always"), o; + } + const m1 = [ + { + name: "a_fade_opacity", + components: 1, + type: "Uint8", + offset: 0, + }, + ]; + function Dd(n, t, r, o, c, f, _, v, b, S, I, L, F) { + const q = v ? Math.min(vs, Math.round(v[0])) : 0, + Z = v ? Math.min(vs, Math.round(v[1])) : 0; + n.emplaceBack( + t, + r, + Math.round(32 * o), + Math.round(32 * c), + f, + _, + (q << 1) + (b ? 1 : 0), + Z, + 16 * S, + 16 * I, + 256 * L, + 256 * F + ); + } + function ff(n, t, r) { + n.emplaceBack(t.x, t.y, r), + n.emplaceBack(t.x, t.y, r), + n.emplaceBack(t.x, t.y, r), + n.emplaceBack(t.x, t.y, r); + } + function _1(n) { + for (const t of n.sections) if (xd(t.text)) return !0; + return !1; + } + class mf { + constructor(t) { + (this.layoutVertexArray = new Zt()), + (this.indexArray = new Rn()), + (this.programConfigurations = t), + (this.segments = new Kr()), + (this.dynamicLayoutVertexArray = new Tt()), + (this.opacityVertexArray = new vr()), + (this.hasVisibleVertices = !1), + (this.placedSymbolArray = new G()); + } + isEmpty() { + return ( + this.layoutVertexArray.length === 0 && + this.indexArray.length === 0 && + this.dynamicLayoutVertexArray.length === 0 && + this.opacityVertexArray.length === 0 + ); + } + upload(t, r, o, c) { + this.isEmpty() || + (o && + ((this.layoutVertexBuffer = t.createVertexBuffer( + this.layoutVertexArray, + Zy.members + )), + (this.indexBuffer = t.createIndexBuffer( + this.indexArray, + r + )), + (this.dynamicLayoutVertexBuffer = t.createVertexBuffer( + this.dynamicLayoutVertexArray, + Uy.members, + !0 + )), + (this.opacityVertexBuffer = t.createVertexBuffer( + this.opacityVertexArray, + m1, + !0 + )), + (this.opacityVertexBuffer.itemSize = 1)), + (o || c) && this.programConfigurations.upload(t)); + } + destroy() { + this.layoutVertexBuffer && + (this.layoutVertexBuffer.destroy(), + this.indexBuffer.destroy(), + this.programConfigurations.destroy(), + this.segments.destroy(), + this.dynamicLayoutVertexBuffer.destroy(), + this.opacityVertexBuffer.destroy()); + } + } + ir("SymbolBuffers", mf); + class _f { + constructor(t, r, o) { + (this.layoutVertexArray = new t()), + (this.layoutAttributes = r), + (this.indexArray = new o()), + (this.segments = new Kr()), + (this.collisionVertexArray = new An()); + } + upload(t) { + (this.layoutVertexBuffer = t.createVertexBuffer( + this.layoutVertexArray, + this.layoutAttributes + )), + (this.indexBuffer = t.createIndexBuffer(this.indexArray)), + (this.collisionVertexBuffer = t.createVertexBuffer( + this.collisionVertexArray, + $y.members, + !0 + )); + } + destroy() { + this.layoutVertexBuffer && + (this.layoutVertexBuffer.destroy(), + this.indexBuffer.destroy(), + this.segments.destroy(), + this.collisionVertexBuffer.destroy()); + } + } + ir("CollisionBuffers", _f); + class nc { + constructor(t) { + (this.collisionBoxArray = t.collisionBoxArray), + (this.zoom = t.zoom), + (this.globalState = t.globalState), + (this.overscaling = t.overscaling), + (this.layers = t.layers), + (this.layerIds = this.layers.map((_) => _.id)), + (this.index = t.index), + (this.pixelRatio = t.pixelRatio), + (this.sourceLayerIndex = t.sourceLayerIndex), + (this.hasPattern = !1), + (this.hasRTLText = !1), + (this.sortKeyRanges = []), + (this.collisionCircleArray = []); + const r = this.layers[0]._unevaluatedLayout._values; + (this.textSizeData = ag(this.zoom, r["text-size"])), + (this.iconSizeData = ag(this.zoom, r["icon-size"])); + const o = this.layers[0].layout, + c = o.get("symbol-sort-key"), + f = o.get("symbol-z-order"); + (this.canOverlap = + pf(o, "text-overlap", "text-allow-overlap") !== "never" || + pf(o, "icon-overlap", "icon-allow-overlap") !== "never" || + o.get("text-ignore-placement") || + o.get("icon-ignore-placement")), + (this.sortFeaturesByKey = + f !== "viewport-y" && !c.isConstant()), + (this.sortFeaturesByY = + (f === "viewport-y" || + (f === "auto" && !this.sortFeaturesByKey)) && + this.canOverlap), + o.get("symbol-placement") === "point" && + (this.writingModes = o + .get("text-writing-mode") + .map((_) => T.ao[_])), + (this.stateDependentLayerIds = this.layers + .filter((_) => _.isStateDependent()) + .map((_) => _.id)), + (this.sourceID = t.sourceID); + } + createArrays() { + (this.text = new mf( + new la(this.layers, this.zoom, (t) => /^text/.test(t)) + )), + (this.icon = new mf( + new la(this.layers, this.zoom, (t) => /^icon/.test(t)) + )), + (this.glyphOffsetArray = new ae()), + (this.lineVertexArray = new ce()), + (this.symbolInstances = new Q()), + (this.textAnchorOffsets = new me()); + } + calculateGlyphDependencies(t, r, o, c, f) { + for (let _ = 0; _ < t.length; _++) + if (((r[t.charCodeAt(_)] = !0), (o || c) && f)) { + const v = Iu[t.charAt(_)]; + v && (r[v.charCodeAt(0)] = !0); + } + } + populate(t, r, o) { + const c = this.layers[0], + f = c.layout, + _ = f.get("text-font"), + v = f.get("text-field"), + b = f.get("icon-image"), + S = + (v.value.kind !== "constant" || + (v.value.value instanceof Sn && + !v.value.value.isEmpty()) || + v.value.value.toString().length > 0) && + (_.value.kind !== "constant" || _.value.value.length > 0), + I = + b.value.kind !== "constant" || + !!b.value.value || + Object.keys(b.parameters).length > 0, + L = f.get("symbol-sort-key"); + if (((this.features = []), !S && !I)) return; + const F = r.iconDependencies, + q = r.glyphDependencies, + Z = r.availableImages, + W = new Un(this.zoom, { globalState: this.globalState }); + for (const { + feature: J, + id: le, + index: Re, + sourceLayerIndex: xe, + } of t) { + const Ce = c._featureFilter.needGeometry, + Ye = no(J, Ce); + if (!c._featureFilter.filter(W, Ye, o)) continue; + let lt, Pt; + if ((Ce || (Ye.geometry = bo(J)), S)) { + const qt = c.getValueAndResolveTokens( + "text-field", + Ye, + o, + Z + ), + Ht = Sn.factory(qt), + Sr = (this.hasRTLText = this.hasRTLText || _1(Ht)); + (!Sr || + Ea.getRTLTextPluginStatus() === "unavailable" || + (Sr && Ea.isParsed())) && + (lt = Hy(Ht, c, Ye)); + } + if (I) { + const qt = c.getValueAndResolveTokens( + "icon-image", + Ye, + o, + Z + ); + Pt = qt instanceof Hn ? qt : Hn.fromString(qt); + } + if (!lt && !Pt) continue; + const Yt = this.sortFeaturesByKey + ? L.evaluate(Ye, {}, o) + : void 0; + if ( + (this.features.push({ + id: le, + text: lt, + icon: Pt, + index: Re, + sourceLayerIndex: xe, + geometry: Ye.geometry, + properties: J.properties, + type: ec.types[J.type], + sortKey: Yt, + }), + Pt && (F[Pt.name] = !0), + lt) + ) { + const qt = _.evaluate(Ye, {}, o).join(","), + Ht = + f.get("text-rotation-alignment") !== "viewport" && + f.get("symbol-placement") !== "point"; + this.allowVerticalPlacement = + this.writingModes && + this.writingModes.indexOf(T.ao.vertical) >= 0; + for (const Sr of lt.sections) + if (Sr.image) F[Sr.image.name] = !0; + else { + const Gt = jl(lt.toString()), + Wt = Sr.fontStack || qt, + gt = (q[Wt] = q[Wt] || {}); + this.calculateGlyphDependencies( + Sr.text, + gt, + Ht, + this.allowVerticalPlacement, + Gt + ); + } + } + } + f.get("symbol-placement") === "line" && + (this.features = (function (J) { + const le = {}, + Re = {}, + xe = []; + let Ce = 0; + function Ye(qt) { + xe.push(J[qt]), Ce++; + } + function lt(qt, Ht, Sr) { + const Gt = Re[qt]; + return ( + delete Re[qt], + (Re[Ht] = Gt), + xe[Gt].geometry[0].pop(), + (xe[Gt].geometry[0] = xe[Gt].geometry[0].concat(Sr[0])), + Gt + ); + } + function Pt(qt, Ht, Sr) { + const Gt = le[Ht]; + return ( + delete le[Ht], + (le[qt] = Gt), + xe[Gt].geometry[0].shift(), + (xe[Gt].geometry[0] = Sr[0].concat(xe[Gt].geometry[0])), + Gt + ); + } + function Yt(qt, Ht, Sr) { + const Gt = Sr ? Ht[0][Ht[0].length - 1] : Ht[0][0]; + return `${qt}:${Gt.x}:${Gt.y}`; + } + for (let qt = 0; qt < J.length; qt++) { + const Ht = J[qt], + Sr = Ht.geometry, + Gt = Ht.text ? Ht.text.toString() : null; + if (!Gt) { + Ye(qt); + continue; + } + const Wt = Yt(Gt, Sr), + gt = Yt(Gt, Sr, !0); + if (Wt in Re && gt in le && Re[Wt] !== le[gt]) { + const Nr = Pt(Wt, gt, Sr), + Hr = lt(Wt, gt, xe[Nr].geometry); + delete le[Wt], + delete Re[gt], + (Re[Yt(Gt, xe[Hr].geometry, !0)] = Hr), + (xe[Nr].geometry = null); + } else + Wt in Re + ? lt(Wt, gt, Sr) + : gt in le + ? Pt(Wt, gt, Sr) + : (Ye(qt), (le[Wt] = Ce - 1), (Re[gt] = Ce - 1)); + } + return xe.filter((qt) => qt.geometry); + })(this.features)), + this.sortFeaturesByKey && + this.features.sort((J, le) => J.sortKey - le.sortKey); + } + update(t, r, o) { + this.stateDependentLayers.length && + (this.text.programConfigurations.updatePaintArrays( + t, + r, + this.layers, + o + ), + this.icon.programConfigurations.updatePaintArrays( + t, + r, + this.layers, + o + )); + } + isEmpty() { + return this.symbolInstances.length === 0 && !this.hasRTLText; + } + uploadPending() { + return ( + !this.uploaded || + this.text.programConfigurations.needsUpload || + this.icon.programConfigurations.needsUpload + ); + } + upload(t) { + !this.uploaded && + this.hasDebugData() && + (this.textCollisionBox.upload(t), + this.iconCollisionBox.upload(t)), + this.text.upload( + t, + this.sortFeaturesByY, + !this.uploaded, + this.text.programConfigurations.needsUpload + ), + this.icon.upload( + t, + this.sortFeaturesByY, + !this.uploaded, + this.icon.programConfigurations.needsUpload + ), + (this.uploaded = !0); + } + destroyDebugData() { + this.textCollisionBox.destroy(), + this.iconCollisionBox.destroy(); + } + destroy() { + this.text.destroy(), + this.icon.destroy(), + this.hasDebugData() && this.destroyDebugData(); + } + addToLineVertexArray(t, r) { + const o = this.lineVertexArray.length; + if (t.segment !== void 0) { + let c = t.dist(r[t.segment + 1]), + f = t.dist(r[t.segment]); + const _ = {}; + for (let v = t.segment + 1; v < r.length; v++) + (_[v] = { + x: r[v].x, + y: r[v].y, + tileUnitDistanceFromAnchor: c, + }), + v < r.length - 1 && (c += r[v + 1].dist(r[v])); + for (let v = t.segment || 0; v >= 0; v--) + (_[v] = { + x: r[v].x, + y: r[v].y, + tileUnitDistanceFromAnchor: f, + }), + v > 0 && (f += r[v - 1].dist(r[v])); + for (let v = 0; v < r.length; v++) { + const b = _[v]; + this.lineVertexArray.emplaceBack( + b.x, + b.y, + b.tileUnitDistanceFromAnchor + ); + } + } + return { + lineStartIndex: o, + lineLength: this.lineVertexArray.length - o, + }; + } + addSymbols(t, r, o, c, f, _, v, b, S, I, L, F) { + const q = t.indexArray, + Z = t.layoutVertexArray, + W = t.segments.prepareSegment( + 4 * r.length, + Z, + q, + this.canOverlap ? _.sortKey : void 0 + ), + J = this.glyphOffsetArray.length, + le = W.vertexLength, + Re = + this.allowVerticalPlacement && v === T.ao.vertical + ? Math.PI / 2 + : 0, + xe = _.text && _.text.sections; + for (let Ce = 0; Ce < r.length; Ce++) { + const { + tl: Ye, + tr: lt, + bl: Pt, + br: Yt, + tex: qt, + pixelOffsetTL: Ht, + pixelOffsetBR: Sr, + minFontScaleX: Gt, + minFontScaleY: Wt, + glyphOffset: gt, + isSDF: Nr, + sectionIndex: Hr, + } = r[Ce], + kr = W.vertexLength, + yr = gt[1]; + Dd( + Z, + b.x, + b.y, + Ye.x, + yr + Ye.y, + qt.x, + qt.y, + o, + Nr, + Ht.x, + Ht.y, + Gt, + Wt + ), + Dd( + Z, + b.x, + b.y, + lt.x, + yr + lt.y, + qt.x + qt.w, + qt.y, + o, + Nr, + Sr.x, + Ht.y, + Gt, + Wt + ), + Dd( + Z, + b.x, + b.y, + Pt.x, + yr + Pt.y, + qt.x, + qt.y + qt.h, + o, + Nr, + Ht.x, + Sr.y, + Gt, + Wt + ), + Dd( + Z, + b.x, + b.y, + Yt.x, + yr + Yt.y, + qt.x + qt.w, + qt.y + qt.h, + o, + Nr, + Sr.x, + Sr.y, + Gt, + Wt + ), + ff(t.dynamicLayoutVertexArray, b, Re), + q.emplaceBack(kr, kr + 2, kr + 1), + q.emplaceBack(kr + 1, kr + 2, kr + 3), + (W.vertexLength += 4), + (W.primitiveLength += 2), + this.glyphOffsetArray.emplaceBack(gt[0]), + (Ce !== r.length - 1 && Hr === r[Ce + 1].sectionIndex) || + t.programConfigurations.populatePaintArrays( + Z.length, + _, + _.index, + {}, + F, + xe && xe[Hr] + ); + } + t.placedSymbolArray.emplaceBack( + b.x, + b.y, + J, + this.glyphOffsetArray.length - J, + le, + S, + I, + b.segment, + o ? o[0] : 0, + o ? o[1] : 0, + c[0], + c[1], + v, + 0, + !1, + 0, + L + ); + } + _addCollisionDebugVertex(t, r, o, c, f, _) { + return ( + r.emplaceBack(0, 0), + t.emplaceBack( + o.x, + o.y, + c, + f, + Math.round(_.x), + Math.round(_.y) + ) + ); + } + addCollisionDebugVertices(t, r, o, c, f, _, v) { + const b = f.segments.prepareSegment( + 4, + f.layoutVertexArray, + f.indexArray + ), + S = b.vertexLength, + I = f.layoutVertexArray, + L = f.collisionVertexArray, + F = v.anchorX, + q = v.anchorY; + this._addCollisionDebugVertex(I, L, _, F, q, new B(t, r)), + this._addCollisionDebugVertex(I, L, _, F, q, new B(o, r)), + this._addCollisionDebugVertex(I, L, _, F, q, new B(o, c)), + this._addCollisionDebugVertex(I, L, _, F, q, new B(t, c)), + (b.vertexLength += 4); + const Z = f.indexArray; + Z.emplaceBack(S, S + 1), + Z.emplaceBack(S + 1, S + 2), + Z.emplaceBack(S + 2, S + 3), + Z.emplaceBack(S + 3, S), + (b.primitiveLength += 4); + } + addDebugCollisionBoxes(t, r, o, c) { + for (let f = t; f < r; f++) { + const _ = this.collisionBoxArray.get(f); + this.addCollisionDebugVertices( + _.x1, + _.y1, + _.x2, + _.y2, + c ? this.textCollisionBox : this.iconCollisionBox, + _.anchorPoint, + o + ); + } + } + generateCollisionDebugBuffers() { + this.hasDebugData() && this.destroyDebugData(), + (this.textCollisionBox = new _f(Jr, G_.members, Ln)), + (this.iconCollisionBox = new _f(Jr, G_.members, Ln)); + for (let t = 0; t < this.symbolInstances.length; t++) { + const r = this.symbolInstances.get(t); + this.addDebugCollisionBoxes( + r.textBoxStartIndex, + r.textBoxEndIndex, + r, + !0 + ), + this.addDebugCollisionBoxes( + r.verticalTextBoxStartIndex, + r.verticalTextBoxEndIndex, + r, + !0 + ), + this.addDebugCollisionBoxes( + r.iconBoxStartIndex, + r.iconBoxEndIndex, + r, + !1 + ), + this.addDebugCollisionBoxes( + r.verticalIconBoxStartIndex, + r.verticalIconBoxEndIndex, + r, + !1 + ); + } + } + _deserializeCollisionBoxesForSymbol(t, r, o, c, f, _, v, b, S) { + const I = {}; + for (let L = r; L < o; L++) { + const F = t.get(L); + (I.textBox = { + x1: F.x1, + y1: F.y1, + x2: F.x2, + y2: F.y2, + anchorPointX: F.anchorPointX, + anchorPointY: F.anchorPointY, + }), + (I.textFeatureIndex = F.featureIndex); + break; + } + for (let L = c; L < f; L++) { + const F = t.get(L); + (I.verticalTextBox = { + x1: F.x1, + y1: F.y1, + x2: F.x2, + y2: F.y2, + anchorPointX: F.anchorPointX, + anchorPointY: F.anchorPointY, + }), + (I.verticalTextFeatureIndex = F.featureIndex); + break; + } + for (let L = _; L < v; L++) { + const F = t.get(L); + (I.iconBox = { + x1: F.x1, + y1: F.y1, + x2: F.x2, + y2: F.y2, + anchorPointX: F.anchorPointX, + anchorPointY: F.anchorPointY, + }), + (I.iconFeatureIndex = F.featureIndex); + break; + } + for (let L = b; L < S; L++) { + const F = t.get(L); + (I.verticalIconBox = { + x1: F.x1, + y1: F.y1, + x2: F.x2, + y2: F.y2, + anchorPointX: F.anchorPointX, + anchorPointY: F.anchorPointY, + }), + (I.verticalIconFeatureIndex = F.featureIndex); + break; + } + return I; + } + deserializeCollisionBoxes(t) { + this.collisionArrays = []; + for (let r = 0; r < this.symbolInstances.length; r++) { + const o = this.symbolInstances.get(r); + this.collisionArrays.push( + this._deserializeCollisionBoxesForSymbol( + t, + o.textBoxStartIndex, + o.textBoxEndIndex, + o.verticalTextBoxStartIndex, + o.verticalTextBoxEndIndex, + o.iconBoxStartIndex, + o.iconBoxEndIndex, + o.verticalIconBoxStartIndex, + o.verticalIconBoxEndIndex + ) + ); + } + } + hasTextData() { + return this.text.segments.get().length > 0; + } + hasIconData() { + return this.icon.segments.get().length > 0; + } + hasDebugData() { + return this.textCollisionBox && this.iconCollisionBox; + } + hasTextCollisionBoxData() { + return ( + this.hasDebugData() && + this.textCollisionBox.segments.get().length > 0 + ); + } + hasIconCollisionBoxData() { + return ( + this.hasDebugData() && + this.iconCollisionBox.segments.get().length > 0 + ); + } + addIndicesForPlacedSymbol(t, r) { + const o = t.placedSymbolArray.get(r), + c = o.vertexStartIndex + 4 * o.numGlyphs; + for (let f = o.vertexStartIndex; f < c; f += 4) + t.indexArray.emplaceBack(f, f + 2, f + 1), + t.indexArray.emplaceBack(f + 1, f + 2, f + 3); + } + getSortedSymbolIndexes(t) { + if ( + this.sortedAngle === t && + this.symbolInstanceIndexes !== void 0 + ) + return this.symbolInstanceIndexes; + const r = Math.sin(t), + o = Math.cos(t), + c = [], + f = [], + _ = []; + for (let v = 0; v < this.symbolInstances.length; ++v) { + _.push(v); + const b = this.symbolInstances.get(v); + c.push(0 | Math.round(r * b.anchorX + o * b.anchorY)), + f.push(b.featureIndex); + } + return _.sort((v, b) => c[v] - c[b] || f[b] - f[v]), _; + } + addToSortKeyRanges(t, r) { + const o = this.sortKeyRanges[this.sortKeyRanges.length - 1]; + o && o.sortKey === r + ? (o.symbolInstanceEnd = t + 1) + : this.sortKeyRanges.push({ + sortKey: r, + symbolInstanceStart: t, + symbolInstanceEnd: t + 1, + }); + } + sortFeatures(t) { + if ( + this.sortFeaturesByY && + this.sortedAngle !== t && + !( + this.text.segments.get().length > 1 || + this.icon.segments.get().length > 1 + ) + ) { + (this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t)), + (this.sortedAngle = t), + this.text.indexArray.clear(), + this.icon.indexArray.clear(), + (this.featureSortOrder = []); + for (const r of this.symbolInstanceIndexes) { + const o = this.symbolInstances.get(r); + this.featureSortOrder.push(o.featureIndex), + [ + o.rightJustifiedTextSymbolIndex, + o.centerJustifiedTextSymbolIndex, + o.leftJustifiedTextSymbolIndex, + ].forEach((c, f, _) => { + c >= 0 && + _.indexOf(c) === f && + this.addIndicesForPlacedSymbol(this.text, c); + }), + o.verticalPlacedTextSymbolIndex >= 0 && + this.addIndicesForPlacedSymbol( + this.text, + o.verticalPlacedTextSymbolIndex + ), + o.placedIconSymbolIndex >= 0 && + this.addIndicesForPlacedSymbol( + this.icon, + o.placedIconSymbolIndex + ), + o.verticalPlacedIconSymbolIndex >= 0 && + this.addIndicesForPlacedSymbol( + this.icon, + o.verticalPlacedIconSymbolIndex + ); + } + this.text.indexBuffer && + this.text.indexBuffer.updateData(this.text.indexArray), + this.icon.indexBuffer && + this.icon.indexBuffer.updateData(this.icon.indexArray); + } + } + } + let og, sg; + ir("SymbolBucket", nc, { + omit: ["layers", "collisionBoxArray", "features", "compareText"], + }), + (nc.MAX_GLYPHS = 65535), + (nc.addDynamicAttributes = ff); + var gf = { + get paint() { + return (sg = + sg || + new Ui({ + "icon-opacity": new Or(ye.paint_symbol["icon-opacity"]), + "icon-color": new Or(ye.paint_symbol["icon-color"]), + "icon-halo-color": new Or( + ye.paint_symbol["icon-halo-color"] + ), + "icon-halo-width": new Or( + ye.paint_symbol["icon-halo-width"] + ), + "icon-halo-blur": new Or(ye.paint_symbol["icon-halo-blur"]), + "icon-translate": new wr(ye.paint_symbol["icon-translate"]), + "icon-translate-anchor": new wr( + ye.paint_symbol["icon-translate-anchor"] + ), + "text-opacity": new Or(ye.paint_symbol["text-opacity"]), + "text-color": new Or(ye.paint_symbol["text-color"], { + runtimeType: Jt, + getOverride: (n) => n.textColor, + hasOverride: (n) => !!n.textColor, + }), + "text-halo-color": new Or( + ye.paint_symbol["text-halo-color"] + ), + "text-halo-width": new Or( + ye.paint_symbol["text-halo-width"] + ), + "text-halo-blur": new Or(ye.paint_symbol["text-halo-blur"]), + "text-translate": new wr(ye.paint_symbol["text-translate"]), + "text-translate-anchor": new wr( + ye.paint_symbol["text-translate-anchor"] + ), + })); + }, + get layout() { + return (og = + og || + new Ui({ + "symbol-placement": new wr( + ye.layout_symbol["symbol-placement"] + ), + "symbol-spacing": new wr( + ye.layout_symbol["symbol-spacing"] + ), + "symbol-avoid-edges": new wr( + ye.layout_symbol["symbol-avoid-edges"] + ), + "symbol-sort-key": new Or( + ye.layout_symbol["symbol-sort-key"] + ), + "symbol-z-order": new wr( + ye.layout_symbol["symbol-z-order"] + ), + "icon-allow-overlap": new wr( + ye.layout_symbol["icon-allow-overlap"] + ), + "icon-overlap": new wr(ye.layout_symbol["icon-overlap"]), + "icon-ignore-placement": new wr( + ye.layout_symbol["icon-ignore-placement"] + ), + "icon-optional": new wr(ye.layout_symbol["icon-optional"]), + "icon-rotation-alignment": new wr( + ye.layout_symbol["icon-rotation-alignment"] + ), + "icon-size": new Or(ye.layout_symbol["icon-size"]), + "icon-text-fit": new wr(ye.layout_symbol["icon-text-fit"]), + "icon-text-fit-padding": new wr( + ye.layout_symbol["icon-text-fit-padding"] + ), + "icon-image": new Or(ye.layout_symbol["icon-image"]), + "icon-rotate": new Or(ye.layout_symbol["icon-rotate"]), + "icon-padding": new Or(ye.layout_symbol["icon-padding"]), + "icon-keep-upright": new wr( + ye.layout_symbol["icon-keep-upright"] + ), + "icon-offset": new Or(ye.layout_symbol["icon-offset"]), + "icon-anchor": new Or(ye.layout_symbol["icon-anchor"]), + "icon-pitch-alignment": new wr( + ye.layout_symbol["icon-pitch-alignment"] + ), + "text-pitch-alignment": new wr( + ye.layout_symbol["text-pitch-alignment"] + ), + "text-rotation-alignment": new wr( + ye.layout_symbol["text-rotation-alignment"] + ), + "text-field": new Or(ye.layout_symbol["text-field"]), + "text-font": new Or(ye.layout_symbol["text-font"]), + "text-size": new Or(ye.layout_symbol["text-size"]), + "text-max-width": new Or( + ye.layout_symbol["text-max-width"] + ), + "text-line-height": new wr( + ye.layout_symbol["text-line-height"] + ), + "text-letter-spacing": new Or( + ye.layout_symbol["text-letter-spacing"] + ), + "text-justify": new Or(ye.layout_symbol["text-justify"]), + "text-radial-offset": new Or( + ye.layout_symbol["text-radial-offset"] + ), + "text-variable-anchor": new wr( + ye.layout_symbol["text-variable-anchor"] + ), + "text-variable-anchor-offset": new Or( + ye.layout_symbol["text-variable-anchor-offset"] + ), + "text-anchor": new Or(ye.layout_symbol["text-anchor"]), + "text-max-angle": new wr( + ye.layout_symbol["text-max-angle"] + ), + "text-writing-mode": new wr( + ye.layout_symbol["text-writing-mode"] + ), + "text-rotate": new Or(ye.layout_symbol["text-rotate"]), + "text-padding": new wr(ye.layout_symbol["text-padding"]), + "text-keep-upright": new wr( + ye.layout_symbol["text-keep-upright"] + ), + "text-transform": new Or( + ye.layout_symbol["text-transform"] + ), + "text-offset": new Or(ye.layout_symbol["text-offset"]), + "text-allow-overlap": new wr( + ye.layout_symbol["text-allow-overlap"] + ), + "text-overlap": new wr(ye.layout_symbol["text-overlap"]), + "text-ignore-placement": new wr( + ye.layout_symbol["text-ignore-placement"] + ), + "text-optional": new wr(ye.layout_symbol["text-optional"]), + })); + }, + }; + class lg { + constructor(t) { + if (t.property.overrides === void 0) + throw new Error( + "overrides must be provided to instantiate FormatSectionOverride class" + ); + (this.type = t.property.overrides + ? t.property.overrides.runtimeType + : mt), + (this.defaultValue = t); + } + evaluate(t) { + if (t.formattedSection) { + const r = this.defaultValue.property.overrides; + if (r && r.hasOverride(t.formattedSection)) + return r.getOverride(t.formattedSection); + } + return t.feature && t.featureState + ? this.defaultValue.evaluate(t.feature, t.featureState) + : this.defaultValue.property.specification.default; + } + eachChild(t) { + this.defaultValue.isConstant() || + t(this.defaultValue.value._styleExpression.expression); + } + outputDefined() { + return !1; + } + serialize() { + return null; + } + } + ir("FormatSectionOverride", lg, { omit: ["defaultValue"] }); + class Rd extends xa { + constructor(t) { + super(t, gf); + } + recalculate(t, r) { + if ( + (super.recalculate(t, r), + this.layout.get("icon-rotation-alignment") === "auto" && + (this.layout._values["icon-rotation-alignment"] = + this.layout.get("symbol-placement") !== "point" + ? "map" + : "viewport"), + this.layout.get("text-rotation-alignment") === "auto" && + (this.layout._values["text-rotation-alignment"] = + this.layout.get("symbol-placement") !== "point" + ? "map" + : "viewport"), + this.layout.get("text-pitch-alignment") === "auto" && + (this.layout._values["text-pitch-alignment"] = + this.layout.get("text-rotation-alignment") === "map" + ? "map" + : "viewport"), + this.layout.get("icon-pitch-alignment") === "auto" && + (this.layout._values["icon-pitch-alignment"] = + this.layout.get("icon-rotation-alignment")), + this.layout.get("symbol-placement") === "point") + ) { + const o = this.layout.get("text-writing-mode"); + if (o) { + const c = []; + for (const f of o) c.indexOf(f) < 0 && c.push(f); + this.layout._values["text-writing-mode"] = c; + } else + this.layout._values["text-writing-mode"] = ["horizontal"]; + } + this._setPaintOverrides(); + } + getValueAndResolveTokens(t, r, o, c) { + const f = this.layout.get(t).evaluate(r, {}, o, c), + _ = this._unevaluatedLayout._values[t]; + return _.isDataDriven() || zl(_.value) || !f + ? f + : (function (v, b) { + return b.replace(/{([^{}]+)}/g, (S, I) => + v && I in v ? String(v[I]) : "" + ); + })(r.properties, f); + } + createBucket(t) { + return new nc(t); + } + queryRadius() { + return 0; + } + queryIntersectsFeature() { + throw new Error("Should take a different path in FeatureIndex"); + } + _setPaintOverrides() { + for (const t of gf.paint.overridableProperties) { + if (!Rd.hasPaintOverride(this.layout, t)) continue; + const r = this.paint.get(t), + o = new lg(r), + c = new Wc(o, r.property.specification); + let f = null; + (f = + r.value.kind === "constant" || r.value.kind === "source" + ? new Zs("source", c) + : new Xc("composite", c, r.value.zoomStops)), + (this.paint._values[t] = new $a( + r.property, + f, + r.parameters + )); + } + } + _handleOverridablePaintPropertyUpdate(t, r, o) { + return ( + !(!this.layout || r.isDataDriven() || o.isDataDriven()) && + Rd.hasPaintOverride(this.layout, t) + ); + } + static hasPaintOverride(t, r) { + const o = t.get("text-field"), + c = gf.paint.properties[r]; + let f = !1; + const _ = (v) => { + for (const b of v) + if (c.overrides && c.overrides.hasOverride(b)) + return void (f = !0); + }; + if (o.value.kind === "constant" && o.value.value instanceof Sn) + _(o.value.value.sections); + else if (o.value.kind === "source") { + const v = (S) => { + f || + (S instanceof _a && Rr(S.value) === pn + ? _(S.value.sections) + : S instanceof ko + ? _(S.sections) + : S.eachChild(v)); + }, + b = o.value; + b._styleExpression && v(b._styleExpression.expression); + } + return f; + } + } + let cg; + var g1 = { + get paint() { + return (cg = + cg || + new Ui({ + "background-color": new wr( + ye.paint_background["background-color"] + ), + "background-pattern": new _o( + ye.paint_background["background-pattern"] + ), + "background-opacity": new wr( + ye.paint_background["background-opacity"] + ), + })); + }, + }; + class v1 extends xa { + constructor(t) { + super(t, g1); + } + } + let ug; + var y1 = { + get paint() { + return (ug = + ug || + new Ui({ + "raster-opacity": new wr(ye.paint_raster["raster-opacity"]), + "raster-hue-rotate": new wr( + ye.paint_raster["raster-hue-rotate"] + ), + "raster-brightness-min": new wr( + ye.paint_raster["raster-brightness-min"] + ), + "raster-brightness-max": new wr( + ye.paint_raster["raster-brightness-max"] + ), + "raster-saturation": new wr( + ye.paint_raster["raster-saturation"] + ), + "raster-contrast": new wr( + ye.paint_raster["raster-contrast"] + ), + "raster-resampling": new wr( + ye.paint_raster["raster-resampling"] + ), + "raster-fade-duration": new wr( + ye.paint_raster["raster-fade-duration"] + ), + })); + }, + }; + class x1 extends xa { + constructor(t) { + super(t, y1); + } + } + class b1 extends xa { + constructor(t) { + super(t, {}), + (this.onAdd = (r) => { + this.implementation.onAdd && + this.implementation.onAdd(r, r.painter.context.gl); + }), + (this.onRemove = (r) => { + this.implementation.onRemove && + this.implementation.onRemove(r, r.painter.context.gl); + }), + (this.implementation = t); + } + 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 w1 { + constructor(t) { + (this._methodToThrottle = t), + (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 T1 = { once: !0 }, + vf = 63710088e-1; + class ys { + constructor(t, r) { + if (isNaN(t) || isNaN(r)) + throw new Error(`Invalid LngLat object: (${t}, ${r})`); + if ( + ((this.lng = +t), + (this.lat = +r), + this.lat > 90 || this.lat < -90) + ) + throw new Error( + "Invalid LngLat latitude value: must be between -90 and 90" + ); + } + wrap() { + return new ys(at(this.lng, -180, 180), this.lat); + } + toArray() { + return [this.lng, this.lat]; + } + toString() { + return `LngLat(${this.lng}, ${this.lat})`; + } + distanceTo(t) { + const r = Math.PI / 180, + o = this.lat * r, + c = t.lat * r, + f = + Math.sin(o) * Math.sin(c) + + Math.cos(o) * + Math.cos(c) * + Math.cos((t.lng - this.lng) * r); + return vf * Math.acos(Math.min(f, 1)); + } + static convert(t) { + if (t instanceof ys) return t; + if (Array.isArray(t) && (t.length === 2 || t.length === 3)) + return new ys(Number(t[0]), Number(t[1])); + if (!Array.isArray(t) && typeof t == "object" && t !== null) + return new ys( + Number("lng" in t ? t.lng : t.lon), + Number(t.lat) + ); + throw new Error( + "`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]" + ); + } + } + const hg = 2 * Math.PI * vf; + function dg(n) { + return hg * Math.cos((n * Math.PI) / 180); + } + function pg(n) { + return (180 + n) / 360; + } + function fg(n) { + return ( + (180 - + (180 / Math.PI) * + Math.log(Math.tan(Math.PI / 4 + (n * Math.PI) / 360))) / + 360 + ); + } + function mg(n, t) { + return n / dg(t); + } + function yf(n) { + return ( + (360 / Math.PI) * + Math.atan(Math.exp(((180 - 360 * n) * Math.PI) / 180)) - + 90 + ); + } + function _g(n, t) { + return n * dg(yf(t)); + } + class ku { + constructor(t, r, o = 0) { + (this.x = +t), (this.y = +r), (this.z = +o); + } + static fromLngLat(t, r = 0) { + const o = ys.convert(t); + return new ku(pg(o.lng), fg(o.lat), mg(r, o.lat)); + } + toLngLat() { + return new ys(360 * this.x - 180, yf(this.y)); + } + toAltitude() { + return _g(this.z, this.y); + } + meterInMercatorCoordinateUnits() { + return ( + (1 / hg) * + ((t = yf(this.y)), 1 / Math.cos((t * Math.PI) / 180)) + ); + var t; + } + } + function gg(n, t, r) { + var o = (2 * Math.PI * 6378137) / 256 / Math.pow(2, r); + return [ + n * o - (2 * Math.PI * 6378137) / 2, + t * o - (2 * Math.PI * 6378137) / 2, + ]; + } + class xf { + constructor(t, r, o) { + if ( + !(function (c, f, _) { + return !( + c < 0 || + c > 25 || + _ < 0 || + _ >= Math.pow(2, c) || + f < 0 || + f >= Math.pow(2, c) + ); + })(t, r, o) + ) + throw new Error( + `x=${r}, y=${o}, z=${t} outside of bounds. 0<=x<${Math.pow( + 2, + t + )}, 0<=y<${Math.pow(2, t)} 0<=z<=25 ` + ); + (this.z = t), + (this.x = r), + (this.y = o), + (this.key = ic(0, t, t, r, o)); + } + equals(t) { + return this.z === t.z && this.x === t.x && this.y === t.y; + } + url(t, r, o) { + const c = + ((_ = this.y), + (v = this.z), + (b = gg( + 256 * (f = this.x), + 256 * (_ = Math.pow(2, v) - _ - 1), + v + )), + (S = gg(256 * (f + 1), 256 * (_ + 1), v)), + b[0] + "," + b[1] + "," + S[0] + "," + S[1]); + var f, _, v, b, S; + const I = (function (L, F, q) { + let Z, + W = ""; + for (let J = L; J > 0; J--) + (Z = 1 << (J - 1)), + (W += (F & Z ? 1 : 0) + (q & Z ? 2 : 0)); + return W; + })(this.z, this.x, this.y); + return t[(this.x + this.y) % t.length] + .replace( + /{prefix}/g, + (this.x % 16).toString(16) + (this.y % 16).toString(16) + ) + .replace(/{z}/g, String(this.z)) + .replace(/{x}/g, String(this.x)) + .replace( + /{y}/g, + String( + o === "tms" ? Math.pow(2, this.z) - this.y - 1 : this.y + ) + ) + .replace(/{ratio}/g, r > 1 ? "@2x" : "") + .replace(/{quadkey}/g, I) + .replace(/{bbox-epsg-3857}/g, c); + } + isChildOf(t) { + const r = this.z - t.z; + return r > 0 && t.x === this.x >> r && t.y === this.y >> r; + } + getTilePoint(t) { + const r = Math.pow(2, this.z); + return new B((t.x * r - this.x) * oe, (t.y * r - this.y) * oe); + } + toString() { + return `${this.z}/${this.x}/${this.y}`; + } + } + class vg { + constructor(t, r) { + (this.wrap = t), + (this.canonical = r), + (this.key = ic(t, r.z, r.z, r.x, r.y)); + } + } + class Ra { + constructor(t, r, o, c, f) { + if (((this.terrainRttPosMatrix32f = null), t < o)) + throw new Error( + `overscaledZ should be >= z; overscaledZ = ${t}; z = ${o}` + ); + (this.overscaledZ = t), + (this.wrap = r), + (this.canonical = new xf(o, +c, +f)), + (this.key = ic(r, t, o, c, f)); + } + clone() { + return new Ra( + this.overscaledZ, + this.wrap, + this.canonical.z, + this.canonical.x, + this.canonical.y + ); + } + equals(t) { + return ( + this.overscaledZ === t.overscaledZ && + this.wrap === t.wrap && + this.canonical.equals(t.canonical) + ); + } + scaledTo(t) { + if (t > this.overscaledZ) + throw new Error( + `targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}` + ); + const r = this.canonical.z - t; + return t > this.canonical.z + ? new Ra( + t, + this.wrap, + this.canonical.z, + this.canonical.x, + this.canonical.y + ) + : new Ra( + t, + this.wrap, + t, + this.canonical.x >> r, + this.canonical.y >> r + ); + } + calculateScaledKey(t, r) { + if (t > this.overscaledZ) + throw new Error( + `targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}` + ); + const o = this.canonical.z - t; + return t > this.canonical.z + ? ic( + this.wrap * +r, + t, + this.canonical.z, + this.canonical.x, + this.canonical.y + ) + : ic( + this.wrap * +r, + t, + t, + this.canonical.x >> o, + this.canonical.y >> o + ); + } + isChildOf(t) { + if (t.wrap !== this.wrap) return !1; + const r = this.canonical.z - t.canonical.z; + return ( + t.overscaledZ === 0 || + (t.overscaledZ < this.overscaledZ && + t.canonical.x === this.canonical.x >> r && + t.canonical.y === this.canonical.y >> r) + ); + } + children(t) { + if (this.overscaledZ >= t) + return [ + new Ra( + this.overscaledZ + 1, + this.wrap, + this.canonical.z, + this.canonical.x, + this.canonical.y + ), + ]; + const r = this.canonical.z + 1, + o = 2 * this.canonical.x, + c = 2 * this.canonical.y; + return [ + new Ra(r, this.wrap, r, o, c), + new Ra(r, this.wrap, r, o + 1, c), + new Ra(r, this.wrap, r, o, c + 1), + new Ra(r, this.wrap, r, o + 1, c + 1), + ]; + } + isLessThan(t) { + return ( + this.wrap < t.wrap || + (!(this.wrap > t.wrap) && + (this.overscaledZ < t.overscaledZ || + (!(this.overscaledZ > t.overscaledZ) && + (this.canonical.x < t.canonical.x || + (!(this.canonical.x > t.canonical.x) && + this.canonical.y < t.canonical.y))))) + ); + } + wrapped() { + return new Ra( + this.overscaledZ, + 0, + this.canonical.z, + this.canonical.x, + this.canonical.y + ); + } + unwrapTo(t) { + return new Ra( + this.overscaledZ, + t, + this.canonical.z, + this.canonical.x, + this.canonical.y + ); + } + overscaleFactor() { + return Math.pow(2, this.overscaledZ - this.canonical.z); + } + toUnwrapped() { + return new vg(this.wrap, this.canonical); + } + toString() { + return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`; + } + getTilePoint(t) { + return this.canonical.getTilePoint( + new ku(t.x - this.wrap, t.y) + ); + } + } + function ic(n, t, r, o, c) { + (n *= 2) < 0 && (n = -1 * n - 1); + const f = 1 << r; + return ( + (f * f * n + f * c + o).toString(36) + + r.toString(36) + + t.toString(36) + ); + } + function Au(n, t) { + return t ? n.properties[t] : n.id; + } + ir("CanonicalTileID", xf), + ir("OverscaledTileID", Ra, { omit: ["terrainRttPosMatrix32f"] }); + class rl { + constructor() { + (this.minX = 1 / 0), + (this.maxX = -1 / 0), + (this.minY = 1 / 0), + (this.maxY = -1 / 0); + } + extend(t) { + return ( + (this.minX = Math.min(this.minX, t.x)), + (this.minY = Math.min(this.minY, t.y)), + (this.maxX = Math.max(this.maxX, t.x)), + (this.maxY = Math.max(this.maxY, t.y)), + this + ); + } + expandBy(t) { + return ( + (this.minX -= t), + (this.minY -= t), + (this.maxX += t), + (this.maxY += t), + (this.minX > this.maxX || this.minY > this.maxY) && + ((this.minX = 1 / 0), + (this.maxX = -1 / 0), + (this.minY = 1 / 0), + (this.maxY = -1 / 0)), + this + ); + } + shrinkBy(t) { + return this.expandBy(-t); + } + map(t) { + const r = new rl(); + return ( + r.extend(t(new B(this.minX, this.minY))), + r.extend(t(new B(this.maxX, this.minY))), + r.extend(t(new B(this.minX, this.maxY))), + r.extend(t(new B(this.maxX, this.maxY))), + r + ); + } + static fromPoints(t) { + const r = new rl(); + for (const o of t) r.extend(o); + return r; + } + contains(t) { + return ( + t.x >= this.minX && + t.x <= this.maxX && + t.y >= this.minY && + t.y <= this.maxY + ); + } + empty() { + return this.minX > this.maxX; + } + width() { + return this.maxX - this.minX; + } + height() { + return this.maxY - this.minY; + } + covers(t) { + return ( + !this.empty() && + !t.empty() && + t.minX >= this.minX && + t.maxX <= this.maxX && + t.minY >= this.minY && + t.maxY <= this.maxY + ); + } + intersects(t) { + return ( + !this.empty() && + !t.empty() && + t.minX <= this.maxX && + t.maxX >= this.minX && + t.minY <= this.maxY && + t.maxY >= this.minY + ); + } + } + class yg { + constructor(t) { + (this._stringToNumber = {}), (this._numberToString = []); + for (let r = 0; r < t.length; r++) { + const o = t[r]; + (this._stringToNumber[o] = r), (this._numberToString[r] = o); + } + } + encode(t) { + return this._stringToNumber[t]; + } + decode(t) { + if (t >= this._numberToString.length) + throw new Error( + `Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}` + ); + return this._numberToString[t]; + } + } + class xg { + constructor(t, r, o, c, f) { + (this.type = "Feature"), + (this._vectorTileFeature = t), + (t._z = r), + (t._x = o), + (t._y = c), + (this.properties = t.properties), + (this.id = f); + } + 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(t) { + this._geometry = t; + } + toJSON() { + const t = { geometry: this.geometry }; + for (const r in this) + r !== "_geometry" && + r !== "_vectorTileFeature" && + (t[r] = this[r]); + return t; + } + } + class bg { + constructor(t, r) { + (this.tileID = t), + (this.x = t.canonical.x), + (this.y = t.canonical.y), + (this.z = t.canonical.z), + (this.grid = new Ys(oe, 16, 0)), + (this.grid3D = new Ys(oe, 16, 0)), + (this.featureIndexArray = new Pe()), + (this.promoteId = r); + } + insert(t, r, o, c, f, _) { + const v = this.featureIndexArray.length; + this.featureIndexArray.emplaceBack(o, c, f); + const b = _ ? this.grid3D : this.grid; + for (let S = 0; S < r.length; S++) { + const I = r[S], + L = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + for (let F = 0; F < I.length; F++) { + const q = I[F]; + (L[0] = Math.min(L[0], q.x)), + (L[1] = Math.min(L[1], q.y)), + (L[2] = Math.max(L[2], q.x)), + (L[3] = Math.max(L[3], q.y)); + } + L[0] < oe && + L[1] < oe && + L[2] >= 0 && + L[3] >= 0 && + b.insert(v, L[0], L[1], L[2], L[3]); + } + } + loadVTLayers() { + return ( + this.vtLayers || + ((this.vtLayers = new F_(new cf(this.rawTileData)).layers), + (this.sourceLayerCoder = new yg( + this.vtLayers + ? Object.keys(this.vtLayers).sort() + : ["_geojsonTileLayer"] + ))), + this.vtLayers + ); + } + query(t, r, o, c) { + this.loadVTLayers(); + const f = t.params, + _ = oe / t.tileSize / t.scale, + v = Ro(f.filter), + b = t.queryGeometry, + S = t.queryPadding * _, + I = rl.fromPoints(b), + L = this.grid.query( + I.minX - S, + I.minY - S, + I.maxX + S, + I.maxY + S + ), + F = rl.fromPoints(t.cameraQueryGeometry).expandBy(S), + q = this.grid3D.query( + F.minX, + F.minY, + F.maxX, + F.maxY, + (J, le, Re, xe) => + (function (Ce, Ye, lt, Pt, Yt) { + for (const Ht of Ce) + if ( + Ye <= Ht.x && + lt <= Ht.y && + Pt >= Ht.x && + Yt >= Ht.y + ) + return !0; + const qt = [ + new B(Ye, lt), + new B(Ye, Yt), + new B(Pt, Yt), + new B(Pt, lt), + ]; + if (Ce.length > 2) { + for (const Ht of qt) if (Yl(Ce, Ht)) return !0; + } + for (let Ht = 0; Ht < Ce.length - 1; Ht++) + if (ty(Ce[Ht], Ce[Ht + 1], qt)) return !0; + return !1; + })(t.cameraQueryGeometry, J - S, le - S, Re + S, xe + S) + ); + for (const J of q) L.push(J); + L.sort(C1); + const Z = {}; + let W; + for (let J = 0; J < L.length; J++) { + const le = L[J]; + if (le === W) continue; + W = le; + const Re = this.featureIndexArray.get(le); + let xe = null; + this.loadMatchingFeature( + Z, + Re.bucketIndex, + Re.sourceLayerIndex, + Re.featureIndex, + v, + f.layers, + f.availableImages, + r, + o, + c, + (Ce, Ye, lt) => ( + xe || (xe = bo(Ce)), + Ye.queryIntersectsFeature({ + queryGeometry: b, + feature: Ce, + featureState: lt, + geometry: xe, + zoom: this.z, + transform: t.transform, + pixelsToTileUnits: _, + pixelPosMatrix: t.pixelPosMatrix, + unwrappedTileID: this.tileID.toUnwrapped(), + getElevation: t.getElevation, + }) + ) + ); + } + return Z; + } + loadMatchingFeature(t, r, o, c, f, _, v, b, S, I, L) { + const F = this.bucketLayerIDs[r]; + if (_ && !F.some((J) => _.has(J))) return; + const q = this.sourceLayerCoder.decode(o), + Z = this.vtLayers[q].feature(c); + if (f.needGeometry) { + const J = no(Z, !0); + if ( + !f.filter( + new Un(this.tileID.overscaledZ), + J, + this.tileID.canonical + ) + ) + return; + } else if (!f.filter(new Un(this.tileID.overscaledZ), Z)) return; + const W = this.getId(Z, q); + for (let J = 0; J < F.length; J++) { + const le = F[J]; + if (_ && !_.has(le)) continue; + const Re = b[le]; + if (!Re) continue; + let xe = {}; + W && + I && + (xe = I.getState(Re.sourceLayer || "_geojsonTileLayer", W)); + const Ce = dt({}, S[le]); + (Ce.paint = wg(Ce.paint, Re.paint, Z, xe, v)), + (Ce.layout = wg(Ce.layout, Re.layout, Z, xe, v)); + const Ye = !L || L(Z, Re, xe); + if (!Ye) continue; + const lt = new xg(Z, this.z, this.x, this.y, W); + lt.layer = Ce; + let Pt = t[le]; + Pt === void 0 && (Pt = t[le] = []), + Pt.push({ + featureIndex: c, + feature: lt, + intersectionZ: Ye, + }); + } + } + lookupSymbolFeatures(t, r, o, c, f, _, v, b) { + const S = {}; + this.loadVTLayers(); + const I = Ro(f); + for (const L of t) + this.loadMatchingFeature(S, o, c, L, I, _, v, b, r); + return S; + } + hasLayer(t) { + for (const r of this.bucketLayerIDs) + for (const o of r) if (t === o) return !0; + return !1; + } + getId(t, r) { + var o; + let c = t.id; + return ( + this.promoteId && + ((c = + t.properties[ + typeof this.promoteId == "string" + ? this.promoteId + : this.promoteId[r] + ]), + typeof c == "boolean" && (c = Number(c)), + c === void 0 && + !((o = t.properties) === null || o === void 0) && + o.cluster && + this.promoteId && + (c = Number(t.properties.cluster_id))), + c + ); + } + } + function wg(n, t, r, o, c) { + return xt(n, (f, _) => { + const v = t instanceof ql ? t.get(_) : null; + return v && v.evaluate ? v.evaluate(r, o, c) : v; + }); + } + function C1(n, t) { + return t - n; + } + function Tg(n, t, r, o, c) { + const f = []; + for (let _ = 0; _ < n.length; _++) { + const v = n[_]; + let b; + for (let S = 0; S < v.length - 1; S++) { + let I = v[S], + L = v[S + 1]; + (I.x < t && L.x < t) || + (I.x < t + ? (I = new B( + t, + I.y + ((t - I.x) / (L.x - I.x)) * (L.y - I.y) + )._round()) + : L.x < t && + (L = new B( + t, + I.y + ((t - I.x) / (L.x - I.x)) * (L.y - I.y) + )._round()), + (I.y < r && L.y < r) || + (I.y < r + ? (I = new B( + I.x + ((r - I.y) / (L.y - I.y)) * (L.x - I.x), + r + )._round()) + : L.y < r && + (L = new B( + I.x + ((r - I.y) / (L.y - I.y)) * (L.x - I.x), + r + )._round()), + (I.x >= o && L.x >= o) || + (I.x >= o + ? (I = new B( + o, + I.y + ((o - I.x) / (L.x - I.x)) * (L.y - I.y) + )._round()) + : L.x >= o && + (L = new B( + o, + I.y + ((o - I.x) / (L.x - I.x)) * (L.y - I.y) + )._round()), + (I.y >= c && L.y >= c) || + (I.y >= c + ? (I = new B( + I.x + ((c - I.y) / (L.y - I.y)) * (L.x - I.x), + c + )._round()) + : L.y >= c && + (L = new B( + I.x + ((c - I.y) / (L.y - I.y)) * (L.x - I.x), + c + )._round()), + (b && I.equals(b[b.length - 1])) || + ((b = [I]), f.push(b)), + b.push(L))))); + } + } + return f; + } + ir("FeatureIndex", bg, { + omit: ["rawTileData", "sourceLayerCoder"], + }); + class xs extends B { + constructor(t, r, o, c) { + super(t, r), + (this.angle = o), + c !== void 0 && (this.segment = c); + } + clone() { + return new xs(this.x, this.y, this.angle, this.segment); + } + } + function Cg(n, t, r, o, c) { + if (t.segment === void 0 || r === 0) return !0; + let f = t, + _ = t.segment + 1, + v = 0; + for (; v > -r / 2; ) { + if ((_--, _ < 0)) return !1; + (v -= n[_].dist(f)), (f = n[_]); + } + (v += n[_].dist(n[_ + 1])), _++; + const b = []; + let S = 0; + for (; v < r / 2; ) { + const I = n[_], + L = n[_ + 1]; + if (!L) return !1; + let F = n[_ - 1].angleTo(I) - I.angleTo(L); + for ( + F = Math.abs(((F + 3 * Math.PI) % (2 * Math.PI)) - Math.PI), + b.push({ distance: v, angleDelta: F }), + S += F; + v - b[0].distance > o; + + ) + S -= b.shift().angleDelta; + if (S > c) return !1; + _++, (v += I.dist(L)); + } + return !0; + } + function Sg(n) { + let t = 0; + for (let r = 0; r < n.length - 1; r++) t += n[r].dist(n[r + 1]); + return t; + } + function Pg(n, t, r) { + return n ? 0.6 * t * r : 0; + } + function Ig(n, t) { + return Math.max( + n ? n.right - n.left : 0, + t ? t.right - t.left : 0 + ); + } + function S1(n, t, r, o, c, f) { + const _ = Pg(r, c, f), + v = Ig(r, o) * f; + let b = 0; + const S = Sg(n) / 2; + for (let I = 0; I < n.length - 1; I++) { + const L = n[I], + F = n[I + 1], + q = L.dist(F); + if (b + q > S) { + const Z = (S - b) / q, + W = Za.number(L.x, F.x, Z), + J = Za.number(L.y, F.y, Z), + le = new xs(W, J, F.angleTo(L), I); + return le._round(), !_ || Cg(n, le, v, _, t) ? le : void 0; + } + b += q; + } + } + function P1(n, t, r, o, c, f, _, v, b) { + const S = Pg(o, f, _), + I = Ig(o, c), + L = I * _, + F = + n[0].x === 0 || n[0].x === b || n[0].y === 0 || n[0].y === b; + return ( + t - L < t / 4 && (t = L + t / 4), + Mg( + n, + F ? ((t / 2) * v) % t : ((I / 2 + 2 * f) * _ * v) % t, + t, + S, + r, + L, + F, + !1, + b + ) + ); + } + function Mg(n, t, r, o, c, f, _, v, b) { + const S = f / 2, + I = Sg(n); + let L = 0, + F = t - r, + q = []; + for (let Z = 0; Z < n.length - 1; Z++) { + const W = n[Z], + J = n[Z + 1], + le = W.dist(J), + Re = J.angleTo(W); + for (; F + r < L + le; ) { + F += r; + const xe = (F - L) / le, + Ce = Za.number(W.x, J.x, xe), + Ye = Za.number(W.y, J.y, xe); + if ( + Ce >= 0 && + Ce < b && + Ye >= 0 && + Ye < b && + F - S >= 0 && + F + S <= I + ) { + const lt = new xs(Ce, Ye, Re, Z); + lt._round(), (o && !Cg(n, lt, f, o, c)) || q.push(lt); + } + } + L += le; + } + return ( + v || q.length || _ || (q = Mg(n, L / 2, r, o, c, f, _, !0, b)), + q + ); + } + function kg(n, t, r, o) { + const c = [], + f = n.image, + _ = f.pixelRatio, + v = f.paddedRect.w - 2, + b = f.paddedRect.h - 2; + let S = { x1: n.left, y1: n.top, x2: n.right, y2: n.bottom }; + const I = f.stretchX || [[0, v]], + L = f.stretchY || [[0, b]], + F = (gt, Nr) => gt + Nr[1] - Nr[0], + q = I.reduce(F, 0), + Z = L.reduce(F, 0), + W = v - q, + J = b - Z; + let le = 0, + Re = q, + xe = 0, + Ce = Z, + Ye = 0, + lt = W, + Pt = 0, + Yt = J; + if (f.content && o) { + const gt = f.content, + Nr = gt[2] - gt[0], + Hr = gt[3] - gt[1]; + (f.textFitWidth || f.textFitHeight) && (S = ng(n)), + (le = Bd(I, 0, gt[0])), + (xe = Bd(L, 0, gt[1])), + (Re = Bd(I, gt[0], gt[2])), + (Ce = Bd(L, gt[1], gt[3])), + (Ye = gt[0] - le), + (Pt = gt[1] - xe), + (lt = Nr - Re), + (Yt = Hr - Ce); + } + const qt = S.x1, + Ht = S.y1, + Sr = S.x2 - qt, + Gt = S.y2 - Ht, + Wt = (gt, Nr, Hr, kr) => { + const yr = Fd(gt.stretch - le, Re, Sr, qt), + dn = Od(gt.fixed - Ye, lt, gt.stretch, q), + Qn = Fd(Nr.stretch - xe, Ce, Gt, Ht), + gi = Od(Nr.fixed - Pt, Yt, Nr.stretch, Z), + qi = Fd(Hr.stretch - le, Re, Sr, qt), + Ba = Od(Hr.fixed - Ye, lt, Hr.stretch, q), + ua = Fd(kr.stretch - xe, Ce, Gt, Ht), + Ri = Od(kr.fixed - Pt, Yt, kr.stretch, Z), + Xn = new B(yr, Qn), + Pi = new B(qi, Qn), + Bi = new B(qi, ua), + Fi = new B(yr, ua), + ra = new B(dn / _, gi / _), + Fa = new B(Ba / _, Ri / _), + Ii = (t * Math.PI) / 180; + if (Ii) { + const Mi = Math.sin(Ii), + ki = Math.cos(Ii), + ui = [ki, -Mi, Mi, ki]; + Xn._matMult(ui), + Pi._matMult(ui), + Fi._matMult(ui), + Bi._matMult(ui); + } + const ha = gt.stretch + gt.fixed, + vi = Nr.stretch + Nr.fixed; + return { + tl: Xn, + tr: Pi, + bl: Fi, + br: Bi, + tex: { + x: f.paddedRect.x + 1 + ha, + y: f.paddedRect.y + 1 + vi, + w: Hr.stretch + Hr.fixed - ha, + h: kr.stretch + kr.fixed - vi, + }, + writingMode: void 0, + glyphOffset: [0, 0], + sectionIndex: 0, + pixelOffsetTL: ra, + pixelOffsetBR: Fa, + minFontScaleX: lt / _ / Sr, + minFontScaleY: Yt / _ / Gt, + isSDF: r, + }; + }; + if (o && (f.stretchX || f.stretchY)) { + const gt = Ag(I, W, q), + Nr = Ag(L, J, Z); + for (let Hr = 0; Hr < gt.length - 1; Hr++) { + const kr = gt[Hr], + yr = gt[Hr + 1]; + for (let dn = 0; dn < Nr.length - 1; dn++) + c.push(Wt(kr, Nr[dn], yr, Nr[dn + 1])); + } + } else c.push(Wt({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: v + 1 }, { fixed: 0, stretch: b + 1 })); + return c; + } + function Bd(n, t, r) { + let o = 0; + for (const c of n) + o += + Math.max(t, Math.min(r, c[1])) - + Math.max(t, Math.min(r, c[0])); + return o; + } + function Ag(n, t, r) { + const o = [{ fixed: -1, stretch: 0 }]; + for (const [c, f] of n) { + const _ = o[o.length - 1]; + o.push({ fixed: c - _.stretch, stretch: _.stretch }), + o.push({ + fixed: c - _.stretch, + stretch: _.stretch + (f - c), + }); + } + return o.push({ fixed: t + 1, stretch: r }), o; + } + function Fd(n, t, r, o) { + return (n / t) * r + o; + } + function Od(n, t, r, o) { + return n - (t * r) / o; + } + ir("Anchor", xs); + class Nd { + constructor(t, r, o, c, f, _, v, b, S, I) { + var L; + if (((this.boxStartIndex = t.length), S)) { + let F = _.top, + q = _.bottom; + const Z = _.collisionPadding; + Z && ((F -= Z[1]), (q += Z[3])); + let W = q - F; + W > 0 && ((W = Math.max(10, W)), (this.circleDiameter = W)); + } else { + const F = + !((L = _.image) === null || L === void 0) && + L.content && + (_.image.textFitWidth || _.image.textFitHeight) + ? ng(_) + : { x1: _.left, y1: _.top, x2: _.right, y2: _.bottom }; + (F.y1 = F.y1 * v - b[0]), + (F.y2 = F.y2 * v + b[2]), + (F.x1 = F.x1 * v - b[3]), + (F.x2 = F.x2 * v + b[1]); + const q = _.collisionPadding; + if ( + (q && + ((F.x1 -= q[0] * v), + (F.y1 -= q[1] * v), + (F.x2 += q[2] * v), + (F.y2 += q[3] * v)), + I) + ) { + const Z = new B(F.x1, F.y1), + W = new B(F.x2, F.y1), + J = new B(F.x1, F.y2), + le = new B(F.x2, F.y2), + Re = (I * Math.PI) / 180; + Z._rotate(Re), + W._rotate(Re), + J._rotate(Re), + le._rotate(Re), + (F.x1 = Math.min(Z.x, W.x, J.x, le.x)), + (F.x2 = Math.max(Z.x, W.x, J.x, le.x)), + (F.y1 = Math.min(Z.y, W.y, J.y, le.y)), + (F.y2 = Math.max(Z.y, W.y, J.y, le.y)); + } + t.emplaceBack(r.x, r.y, F.x1, F.y1, F.x2, F.y2, o, c, f); + } + this.boxEndIndex = t.length; + } + } + class I1 { + constructor(t = [], r = (o, c) => (o < c ? -1 : o > c ? 1 : 0)) { + if ( + ((this.data = t), + (this.length = this.data.length), + (this.compare = r), + this.length > 0) + ) + for (let o = (this.length >> 1) - 1; o >= 0; o--) + this._down(o); + } + push(t) { + this.data.push(t), this._up(this.length++); + } + pop() { + if (this.length === 0) return; + const t = this.data[0], + r = this.data.pop(); + return ( + --this.length > 0 && ((this.data[0] = r), this._down(0)), t + ); + } + peek() { + return this.data[0]; + } + _up(t) { + const { data: r, compare: o } = this, + c = r[t]; + for (; t > 0; ) { + const f = (t - 1) >> 1, + _ = r[f]; + if (o(c, _) >= 0) break; + (r[t] = _), (t = f); + } + r[t] = c; + } + _down(t) { + const { data: r, compare: o } = this, + c = this.length >> 1, + f = r[t]; + for (; t < c; ) { + let _ = 1 + (t << 1); + const v = _ + 1; + if ( + (v < this.length && o(r[v], r[_]) < 0 && (_ = v), + o(r[_], f) >= 0) + ) + break; + (r[t] = r[_]), (t = _); + } + r[t] = f; + } + } + function M1(n, t = 1, r = !1) { + const o = rl.fromPoints(n[0]), + c = Math.min(o.width(), o.height()); + let f = c / 2; + const _ = new I1([], k1), + { minX: v, minY: b, maxX: S, maxY: I } = o; + if (c === 0) return new B(v, b); + for (let q = v; q < S; q += c) + for (let Z = b; Z < I; Z += c) + _.push(new ac(q + f, Z + f, f, n)); + let L = (function (q) { + let Z = 0, + W = 0, + J = 0; + const le = q[0]; + for ( + let Re = 0, xe = le.length, Ce = xe - 1; + Re < xe; + Ce = Re++ + ) { + const Ye = le[Re], + lt = le[Ce], + Pt = Ye.x * lt.y - lt.x * Ye.y; + (W += (Ye.x + lt.x) * Pt), + (J += (Ye.y + lt.y) * Pt), + (Z += 3 * Pt); + } + return new ac(W / Z, J / Z, 0, q); + })(n), + F = _.length; + for (; _.length; ) { + const q = _.pop(); + (q.d > L.d || !L.d) && + ((L = q), + r && + console.log( + "found best %d after %d probes", + Math.round(1e4 * q.d) / 1e4, + F + )), + q.max - L.d <= t || + ((f = q.h / 2), + _.push(new ac(q.p.x - f, q.p.y - f, f, n)), + _.push(new ac(q.p.x + f, q.p.y - f, f, n)), + _.push(new ac(q.p.x - f, q.p.y + f, f, n)), + _.push(new ac(q.p.x + f, q.p.y + f, f, n)), + (F += 4)); + } + return ( + r && + (console.log(`num probes: ${F}`), + console.log(`best distance: ${L.d}`)), + L.p + ); + } + function k1(n, t) { + return t.max - n.max; + } + function ac(n, t, r, o) { + (this.p = new B(n, t)), + (this.h = r), + (this.d = (function (c, f) { + let _ = !1, + v = 1 / 0; + for (let b = 0; b < f.length; b++) { + const S = f[b]; + for (let I = 0, L = S.length, F = L - 1; I < L; F = I++) { + const q = S[I], + Z = S[F]; + q.y > c.y != Z.y > c.y && + c.x < ((Z.x - q.x) * (c.y - q.y)) / (Z.y - q.y) + q.x && + (_ = !_), + (v = Math.min(v, f_(c, q, Z))); + } + } + return (_ ? 1 : -1) * Math.sqrt(v); + })(this.p, o)), + (this.max = this.d + this.h * Math.SQRT2); + } + var Vi; + (T.aE = void 0), + ((Vi = T.aE || (T.aE = {}))[(Vi.center = 1)] = "center"), + (Vi[(Vi.left = 2)] = "left"), + (Vi[(Vi.right = 3)] = "right"), + (Vi[(Vi.top = 4)] = "top"), + (Vi[(Vi.bottom = 5)] = "bottom"), + (Vi[(Vi["top-left"] = 6)] = "top-left"), + (Vi[(Vi["top-right"] = 7)] = "top-right"), + (Vi[(Vi["bottom-left"] = 8)] = "bottom-left"), + (Vi[(Vi["bottom-right"] = 9)] = "bottom-right"); + const bf = Number.POSITIVE_INFINITY; + function Eg(n, t) { + return t[1] !== bf + ? (function (r, o, c) { + let f = 0, + _ = 0; + switch (((o = Math.abs(o)), (c = Math.abs(c)), r)) { + case "top-right": + case "top-left": + case "top": + _ = c - 7; + break; + case "bottom-right": + case "bottom-left": + case "bottom": + _ = 7 - c; + } + switch (r) { + case "top-right": + case "bottom-right": + case "right": + f = -o; + break; + case "top-left": + case "bottom-left": + case "left": + f = o; + } + return [f, _]; + })(n, t[0], t[1]) + : (function (r, o) { + let c = 0, + f = 0; + o < 0 && (o = 0); + const _ = o / Math.SQRT2; + switch (r) { + case "top-right": + case "top-left": + f = _ - 7; + break; + case "bottom-right": + case "bottom-left": + f = 7 - _; + break; + case "bottom": + f = 7 - o; + break; + case "top": + f = o - 7; + } + switch (r) { + case "top-right": + case "bottom-right": + c = -_; + break; + case "top-left": + case "bottom-left": + c = _; + break; + case "left": + c = o; + break; + case "right": + c = -o; + } + return [c, f]; + })(n, t[0]); + } + function zg(n, t, r) { + var o; + const c = n.layout, + f = + (o = c.get("text-variable-anchor-offset")) === null || + o === void 0 + ? void 0 + : o.evaluate(t, {}, r); + if (f) { + const v = f.values, + b = []; + for (let S = 0; S < v.length; S += 2) { + const I = (b[S] = v[S]), + L = v[S + 1].map((F) => F * Si); + I.startsWith("top") + ? (L[1] -= 7) + : I.startsWith("bottom") && (L[1] += 7), + (b[S + 1] = L); + } + return new fi(b); + } + const _ = c.get("text-variable-anchor"); + if (_) { + let v; + v = + n._unevaluatedLayout.getValue("text-radial-offset") !== void 0 + ? [c.get("text-radial-offset").evaluate(t, {}, r) * Si, bf] + : c + .get("text-offset") + .evaluate(t, {}, r) + .map((S) => S * Si); + const b = []; + for (const S of _) b.push(S, Eg(S, v)); + return new fi(b); + } + return null; + } + function wf(n) { + switch (n) { + case "right": + case "top-right": + case "bottom-right": + return "right"; + case "left": + case "top-left": + case "bottom-left": + return "left"; + } + return "center"; + } + function A1(n, t, r, o, c, f, _, v, b, S, I, L) { + let F = f.textMaxSize.evaluate(t, {}); + F === void 0 && (F = _); + const q = n.layers[0].layout, + Z = q.get("icon-offset").evaluate(t, {}, I), + W = Dg(r.horizontal), + J = _ / 24, + le = n.tilePixelRatio * J, + Re = (n.tilePixelRatio * F) / 24, + xe = n.tilePixelRatio * v, + Ce = n.tilePixelRatio * q.get("symbol-spacing"), + Ye = q.get("text-padding") * n.tilePixelRatio, + lt = (function (Hr, kr, yr, dn = 1) { + const Qn = Hr.get("icon-padding").evaluate(kr, {}, yr), + gi = Qn && Qn.values; + return [gi[0] * dn, gi[1] * dn, gi[2] * dn, gi[3] * dn]; + })(q, t, I, n.tilePixelRatio), + Pt = (q.get("text-max-angle") / 180) * Math.PI, + Yt = + q.get("text-rotation-alignment") !== "viewport" && + q.get("symbol-placement") !== "point", + qt = + q.get("icon-rotation-alignment") === "map" && + q.get("symbol-placement") !== "point", + Ht = q.get("symbol-placement"), + Sr = Ce / 2, + Gt = q.get("icon-text-fit"); + let Wt; + o && + Gt !== "none" && + (n.allowVerticalPlacement && + r.vertical && + (Wt = ig( + o, + r.vertical, + Gt, + q.get("icon-text-fit-padding"), + Z, + J + )), + W && (o = ig(o, W, Gt, q.get("icon-text-fit-padding"), Z, J))); + const gt = I ? L.line.getGranularityForZoomLevel(I.z) : 1, + Nr = (Hr, kr) => { + kr.x < 0 || + kr.x >= oe || + kr.y < 0 || + kr.y >= oe || + (function ( + yr, + dn, + Qn, + gi, + qi, + Ba, + ua, + Ri, + Xn, + Pi, + Bi, + Fi, + ra, + Fa, + Ii, + ha, + vi, + Mi, + ki, + ui, + qn, + io, + oc, + ao, + L1 + ) { + const sc = yr.addToLineVertexArray(dn, Qn); + let nl, + lc, + cc, + uc, + Og = 0, + Ng = 0, + jg = 0, + Vg = 0, + Af = -1, + Ef = -1; + const Uo = {}; + let qg = ms(""); + if (yr.allowVerticalPlacement && gi.vertical) { + const Hi = + Ri.layout.get("text-rotate").evaluate(qn, {}, ao) + + 90; + (cc = new Nd( + Xn, + dn, + Pi, + Bi, + Fi, + gi.vertical, + ra, + Fa, + Ii, + Hi + )), + ua && + (uc = new Nd( + Xn, + dn, + Pi, + Bi, + Fi, + ua, + vi, + Mi, + Ii, + Hi + )); + } + if (qi) { + const Hi = Ri.layout + .get("icon-rotate") + .evaluate(qn, {}), + Oa = Ri.layout.get("icon-text-fit") !== "none", + il = kg(qi, Hi, oc, Oa), + so = ua ? kg(ua, Hi, oc, Oa) : void 0; + (lc = new Nd(Xn, dn, Pi, Bi, Fi, qi, vi, Mi, !1, Hi)), + (Og = 4 * il.length); + const al = yr.iconSizeData; + let wo = null; + al.kind === "source" + ? ((wo = [ + Zo * Ri.layout.get("icon-size").evaluate(qn, {}), + ]), + wo[0] > vs && + Lt( + `${yr.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".` + )) + : al.kind === "composite" && + ((wo = [ + Zo * + io.compositeIconSizes[0].evaluate(qn, {}, ao), + Zo * + io.compositeIconSizes[1].evaluate(qn, {}, ao), + ]), + (wo[0] > vs || wo[1] > vs) && + Lt( + `${yr.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".` + )), + yr.addSymbols( + yr.icon, + il, + wo, + ui, + ki, + qn, + T.ao.none, + dn, + sc.lineStartIndex, + sc.lineLength, + -1, + ao + ), + (Af = yr.icon.placedSymbolArray.length - 1), + so && + ((Ng = 4 * so.length), + yr.addSymbols( + yr.icon, + so, + wo, + ui, + ki, + qn, + T.ao.vertical, + dn, + sc.lineStartIndex, + sc.lineLength, + -1, + ao + ), + (Ef = yr.icon.placedSymbolArray.length - 1)); + } + const Zg = Object.keys(gi.horizontal); + for (const Hi of Zg) { + const Oa = gi.horizontal[Hi]; + if (!nl) { + qg = ms(Oa.text); + const so = Ri.layout + .get("text-rotate") + .evaluate(qn, {}, ao); + nl = new Nd(Xn, dn, Pi, Bi, Fi, Oa, ra, Fa, Ii, so); + } + const il = Oa.positionedLines.length === 1; + if ( + ((jg += Lg( + yr, + dn, + Oa, + Ba, + Ri, + Ii, + qn, + ha, + sc, + gi.vertical ? T.ao.horizontal : T.ao.horizontalOnly, + il ? Zg : [Hi], + Uo, + Af, + io, + ao + )), + il) + ) + break; + } + gi.vertical && + (Vg += Lg( + yr, + dn, + gi.vertical, + Ba, + Ri, + Ii, + qn, + ha, + sc, + T.ao.vertical, + ["vertical"], + Uo, + Ef, + io, + ao + )); + const D1 = nl + ? nl.boxStartIndex + : yr.collisionBoxArray.length, + R1 = nl ? nl.boxEndIndex : yr.collisionBoxArray.length, + B1 = cc + ? cc.boxStartIndex + : yr.collisionBoxArray.length, + F1 = cc ? cc.boxEndIndex : yr.collisionBoxArray.length, + O1 = lc + ? lc.boxStartIndex + : yr.collisionBoxArray.length, + N1 = lc ? lc.boxEndIndex : yr.collisionBoxArray.length, + j1 = uc + ? uc.boxStartIndex + : yr.collisionBoxArray.length, + V1 = uc ? uc.boxEndIndex : yr.collisionBoxArray.length; + let oo = -1; + const Vd = (Hi, Oa) => + Hi && Hi.circleDiameter + ? Math.max(Hi.circleDiameter, Oa) + : Oa; + (oo = Vd(nl, oo)), + (oo = Vd(cc, oo)), + (oo = Vd(lc, oo)), + (oo = Vd(uc, oo)); + const Ug = oo > -1 ? 1 : 0; + Ug && (oo *= L1 / Si), + yr.glyphOffsetArray.length >= nc.MAX_GLYPHS && + Lt( + "Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907" + ), + qn.sortKey !== void 0 && + yr.addToSortKeyRanges( + yr.symbolInstances.length, + qn.sortKey + ); + const q1 = zg(Ri, qn, ao), + [Z1, U1] = (function (Hi, Oa) { + const il = Hi.length, + so = Oa == null ? void 0 : Oa.values; + if ((so == null ? void 0 : so.length) > 0) + for (let al = 0; al < so.length; al += 2) { + const wo = so[al + 1]; + Hi.emplaceBack(T.aE[so[al]], wo[0], wo[1]); + } + return [il, Hi.length]; + })(yr.textAnchorOffsets, q1); + yr.symbolInstances.emplaceBack( + dn.x, + dn.y, + Uo.right >= 0 ? Uo.right : -1, + Uo.center >= 0 ? Uo.center : -1, + Uo.left >= 0 ? Uo.left : -1, + Uo.vertical || -1, + Af, + Ef, + qg, + D1, + R1, + B1, + F1, + O1, + N1, + j1, + V1, + Pi, + jg, + Vg, + Og, + Ng, + Ug, + 0, + ra, + oo, + Z1, + U1 + ); + })( + n, + kr, + Hr, + r, + o, + c, + Wt, + n.layers[0], + n.collisionBoxArray, + t.index, + t.sourceLayerIndex, + n.index, + le, + [Ye, Ye, Ye, Ye], + Yt, + b, + xe, + lt, + qt, + Z, + t, + f, + S, + I, + _ + ); + }; + if (Ht === "line") + for (const Hr of Tg(t.geometry, 0, 0, oe, oe)) { + const kr = tl(Hr, gt), + yr = P1( + kr, + Ce, + Pt, + r.vertical || W, + o, + 24, + Re, + n.overscaling, + oe + ); + for (const dn of yr) + (W && E1(n, W.text, Sr, dn)) || Nr(kr, dn); + } + else if (Ht === "line-center") { + for (const Hr of t.geometry) + if (Hr.length > 1) { + const kr = tl(Hr, gt), + yr = S1(kr, Pt, r.vertical || W, o, 24, Re); + yr && Nr(kr, yr); + } + } else if (t.type === "Polygon") + for (const Hr of Os(t.geometry, 0)) { + const kr = M1(Hr, 16); + Nr(tl(Hr[0], gt, !0), new xs(kr.x, kr.y, 0)); + } + else if (t.type === "LineString") + for (const Hr of t.geometry) { + const kr = tl(Hr, gt); + Nr(kr, new xs(kr[0].x, kr[0].y, 0)); + } + else if (t.type === "Point") + for (const Hr of t.geometry) + for (const kr of Hr) Nr([kr], new xs(kr.x, kr.y, 0)); + } + function Lg(n, t, r, o, c, f, _, v, b, S, I, L, F, q, Z) { + const W = (function (Re, xe, Ce, Ye, lt, Pt, Yt, qt) { + const Ht = + (Ye.layout.get("text-rotate").evaluate(Pt, {}) * + Math.PI) / + 180, + Sr = []; + for (const Gt of xe.positionedLines) + for (const Wt of Gt.positionedGlyphs) { + if (!Wt.rect) continue; + const gt = Wt.rect || {}; + let Nr = 4, + Hr = !0, + kr = 1, + yr = 0; + const dn = (lt || qt) && Wt.vertical, + Qn = (Wt.metrics.advance * Wt.scale) / 2; + if ( + (qt && + xe.verticalizable && + (yr = + Gt.lineOffset / 2 - + (Wt.imageName + ? -(Si - Wt.metrics.width * Wt.scale) / 2 + : (Wt.scale - 1) * Si)), + Wt.imageName) + ) { + const Mi = Yt[Wt.imageName]; + (Hr = Mi.sdf), (kr = Mi.pixelRatio), (Nr = 1 / kr); + } + const gi = lt ? [Wt.x + Qn, Wt.y] : [0, 0]; + let qi = lt + ? [0, 0] + : [Wt.x + Qn + Ce[0], Wt.y + Ce[1] - yr], + Ba = [0, 0]; + dn && ((Ba = qi), (qi = [0, 0])); + const ua = Wt.metrics.isDoubleResolution ? 2 : 1, + Ri = (Wt.metrics.left - Nr) * Wt.scale - Qn + qi[0], + Xn = (-Wt.metrics.top - Nr) * Wt.scale + qi[1], + Pi = Ri + ((gt.w / ua) * Wt.scale) / kr, + Bi = Xn + ((gt.h / ua) * Wt.scale) / kr, + Fi = new B(Ri, Xn), + ra = new B(Pi, Xn), + Fa = new B(Ri, Bi), + Ii = new B(Pi, Bi); + if (dn) { + const Mi = new B(-Qn, Qn - -17), + ki = -Math.PI / 2, + ui = 12 - Qn, + qn = new B(22 - ui, -(Wt.imageName ? ui : 0)), + io = new B(...Ba); + Fi._rotateAround(ki, Mi)._add(qn)._add(io), + ra._rotateAround(ki, Mi)._add(qn)._add(io), + Fa._rotateAround(ki, Mi)._add(qn)._add(io), + Ii._rotateAround(ki, Mi)._add(qn)._add(io); + } + if (Ht) { + const Mi = Math.sin(Ht), + ki = Math.cos(Ht), + ui = [ki, -Mi, Mi, ki]; + Fi._matMult(ui), + ra._matMult(ui), + Fa._matMult(ui), + Ii._matMult(ui); + } + const ha = new B(0, 0), + vi = new B(0, 0); + Sr.push({ + tl: Fi, + tr: ra, + bl: Fa, + br: Ii, + tex: gt, + writingMode: xe.writingMode, + glyphOffset: gi, + sectionIndex: Wt.sectionIndex, + isSDF: Hr, + pixelOffsetTL: ha, + pixelOffsetBR: vi, + minFontScaleX: 0, + minFontScaleY: 0, + }); + } + return Sr; + })(0, r, v, c, f, _, o, n.allowVerticalPlacement), + J = n.textSizeData; + let le = null; + J.kind === "source" + ? ((le = [Zo * c.layout.get("text-size").evaluate(_, {})]), + le[0] > vs && + Lt( + `${n.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".` + )) + : J.kind === "composite" && + ((le = [ + Zo * q.compositeTextSizes[0].evaluate(_, {}, Z), + Zo * q.compositeTextSizes[1].evaluate(_, {}, Z), + ]), + (le[0] > vs || le[1] > vs) && + Lt( + `${n.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".` + )), + n.addSymbols( + n.text, + W, + le, + v, + f, + _, + S, + t, + b.lineStartIndex, + b.lineLength, + F, + Z + ); + for (const Re of I) L[Re] = n.text.placedSymbolArray.length - 1; + return 4 * W.length; + } + function Dg(n) { + for (const t in n) return n[t]; + return null; + } + function E1(n, t, r, o) { + const c = n.compareText; + if (t in c) { + const f = c[t]; + for (let _ = f.length - 1; _ >= 0; _--) + if (o.dist(f[_]) < r) return !0; + } else c[t] = []; + return c[t].push(o), !1; + } + const Rg = [ + Int8Array, + Uint8Array, + Uint8ClampedArray, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array, + ]; + class Tf { + static from(t) { + if (!(t instanceof ArrayBuffer)) + throw new Error("Data must be an instance of ArrayBuffer."); + const [r, o] = new Uint8Array(t, 0, 2); + if (r !== 219) + throw new Error( + "Data does not appear to be in a KDBush format." + ); + const c = o >> 4; + if (c !== 1) + throw new Error(`Got v${c} data when expected v1.`); + const f = Rg[15 & o]; + if (!f) throw new Error("Unrecognized array type."); + const [_] = new Uint16Array(t, 2, 1), + [v] = new Uint32Array(t, 4, 1); + return new Tf(v, _, f, t); + } + constructor(t, r = 64, o = Float64Array, c) { + if (isNaN(t) || t < 0) + throw new Error(`Unpexpected numItems value: ${t}.`); + (this.numItems = +t), + (this.nodeSize = Math.min(Math.max(+r, 2), 65535)), + (this.ArrayType = o), + (this.IndexArrayType = t < 65536 ? Uint16Array : Uint32Array); + const f = Rg.indexOf(this.ArrayType), + _ = 2 * t * this.ArrayType.BYTES_PER_ELEMENT, + v = t * this.IndexArrayType.BYTES_PER_ELEMENT, + b = (8 - (v % 8)) % 8; + if (f < 0) + throw new Error(`Unexpected typed array class: ${o}.`); + c && c instanceof ArrayBuffer + ? ((this.data = c), + (this.ids = new this.IndexArrayType(this.data, 8, t)), + (this.coords = new this.ArrayType( + this.data, + 8 + v + b, + 2 * t + )), + (this._pos = 2 * t), + (this._finished = !0)) + : ((this.data = new ArrayBuffer(8 + _ + v + b)), + (this.ids = new this.IndexArrayType(this.data, 8, t)), + (this.coords = new this.ArrayType( + this.data, + 8 + v + b, + 2 * t + )), + (this._pos = 0), + (this._finished = !1), + new Uint8Array(this.data, 0, 2).set([219, 16 + f]), + (new Uint16Array(this.data, 2, 1)[0] = r), + (new Uint32Array(this.data, 4, 1)[0] = t)); + } + add(t, r) { + const o = this._pos >> 1; + return ( + (this.ids[o] = o), + (this.coords[this._pos++] = t), + (this.coords[this._pos++] = r), + o + ); + } + finish() { + const t = this._pos >> 1; + if (t !== this.numItems) + throw new Error( + `Added ${t} items when expected ${this.numItems}.` + ); + return ( + Cf( + this.ids, + this.coords, + this.nodeSize, + 0, + this.numItems - 1, + 0 + ), + (this._finished = !0), + this + ); + } + range(t, r, o, c) { + if (!this._finished) + throw new Error( + "Data not yet indexed - call index.finish()." + ); + const { ids: f, coords: _, nodeSize: v } = this, + b = [0, f.length - 1, 0], + S = []; + for (; b.length; ) { + const I = b.pop() || 0, + L = b.pop() || 0, + F = b.pop() || 0; + if (L - F <= v) { + for (let J = F; J <= L; J++) { + const le = _[2 * J], + Re = _[2 * J + 1]; + le >= t && le <= o && Re >= r && Re <= c && S.push(f[J]); + } + continue; + } + const q = (F + L) >> 1, + Z = _[2 * q], + W = _[2 * q + 1]; + Z >= t && Z <= o && W >= r && W <= c && S.push(f[q]), + (I === 0 ? t <= Z : r <= W) && + (b.push(F), b.push(q - 1), b.push(1 - I)), + (I === 0 ? o >= Z : c >= W) && + (b.push(q + 1), b.push(L), b.push(1 - I)); + } + return S; + } + within(t, r, o) { + if (!this._finished) + throw new Error( + "Data not yet indexed - call index.finish()." + ); + const { ids: c, coords: f, nodeSize: _ } = this, + v = [0, c.length - 1, 0], + b = [], + S = o * o; + for (; v.length; ) { + const I = v.pop() || 0, + L = v.pop() || 0, + F = v.pop() || 0; + if (L - F <= _) { + for (let J = F; J <= L; J++) + Fg(f[2 * J], f[2 * J + 1], t, r) <= S && b.push(c[J]); + continue; + } + const q = (F + L) >> 1, + Z = f[2 * q], + W = f[2 * q + 1]; + Fg(Z, W, t, r) <= S && b.push(c[q]), + (I === 0 ? t - o <= Z : r - o <= W) && + (v.push(F), v.push(q - 1), v.push(1 - I)), + (I === 0 ? t + o >= Z : r + o >= W) && + (v.push(q + 1), v.push(L), v.push(1 - I)); + } + return b; + } + } + function Cf(n, t, r, o, c, f) { + if (c - o <= r) return; + const _ = (o + c) >> 1; + Bg(n, t, _, o, c, f), + Cf(n, t, r, o, _ - 1, 1 - f), + Cf(n, t, r, _ + 1, c, 1 - f); + } + function Bg(n, t, r, o, c, f) { + for (; c > o; ) { + if (c - o > 600) { + const S = c - o + 1, + I = r - o + 1, + L = Math.log(S), + F = 0.5 * Math.exp((2 * L) / 3), + q = + 0.5 * + Math.sqrt((L * F * (S - F)) / S) * + (I - S / 2 < 0 ? -1 : 1); + Bg( + n, + t, + r, + Math.max(o, Math.floor(r - (I * F) / S + q)), + Math.min(c, Math.floor(r + ((S - I) * F) / S + q)), + f + ); + } + const _ = t[2 * r + f]; + let v = o, + b = c; + for ( + Eu(n, t, o, r), t[2 * c + f] > _ && Eu(n, t, o, c); + v < b; + + ) { + for (Eu(n, t, v, b), v++, b--; t[2 * v + f] < _; ) v++; + for (; t[2 * b + f] > _; ) b--; + } + t[2 * o + f] === _ ? Eu(n, t, o, b) : (b++, Eu(n, t, b, c)), + b <= r && (o = b + 1), + r <= b && (c = b - 1); + } + } + function Eu(n, t, r, o) { + Sf(n, r, o), Sf(t, 2 * r, 2 * o), Sf(t, 2 * r + 1, 2 * o + 1); + } + function Sf(n, t, r) { + const o = n[t]; + (n[t] = n[r]), (n[r] = o); + } + function Fg(n, t, r, o) { + const c = n - r, + f = t - o; + return c * c + f * f; + } + var Pf; + (T.cx = void 0), + ((Pf = T.cx || (T.cx = {})).create = "create"), + (Pf.load = "load"), + (Pf.fullLoad = "fullLoad"); + let jd = null, + zu = []; + const If = 1e3 / 60, + Mf = "loadTime", + kf = "fullLoadTime", + z1 = { + mark(n) { + performance.mark(n); + }, + frame(n) { + const t = n; + jd != null && zu.push(t - jd), (jd = t); + }, + clearMetrics() { + (jd = null), + (zu = []), + performance.clearMeasures(Mf), + performance.clearMeasures(kf); + for (const n in T.cx) performance.clearMarks(T.cx[n]); + }, + getPerformanceMetrics() { + performance.measure(Mf, T.cx.create, T.cx.load), + performance.measure(kf, T.cx.create, T.cx.fullLoad); + const n = performance.getEntriesByName(Mf)[0].duration, + t = performance.getEntriesByName(kf)[0].duration, + r = zu.length, + o = 1 / (zu.reduce((f, _) => f + _, 0) / r / 1e3), + c = zu + .filter((f) => f > If) + .reduce((f, _) => f + (_ - If) / If, 0); + return { + loadTime: n, + fullLoadTime: t, + fps: o, + percentDroppedFrames: (c / (r + c)) * 100, + totalFrames: r, + }; + }, + }; + (T.$ = oe), + (T.A = Ee), + (T.B = function ([n, t, r]) { + return ( + (t += 90), + (t *= Math.PI / 180), + (r *= Math.PI / 180), + { + x: n * Math.cos(t) * Math.sin(r), + y: n * Math.sin(t) * Math.sin(r), + z: n * Math.cos(r), + } + ); + }), + (T.C = Za), + (T.D = wr), + (T.E = kt), + (T.F = Un), + (T.G = Ws), + (T.H = function (n) { + if (tr == null) { + const t = n.navigator ? n.navigator.userAgent : null; + tr = + !!n.safari || + !( + !t || + !( + /\b(iPad|iPhone|iPod)\b/.test(t) || + (t.match("Safari") && !t.match("Chrome")) + ) + ); + } + return tr; + }), + (T.I = uf), + (T.J = class { + constructor(n, t) { + (this.target = n), + (this.mapId = t), + (this.resolveRejects = {}), + (this.tasks = {}), + (this.taskQueue = []), + (this.abortControllers = {}), + (this.messageHandlers = {}), + (this.invoker = new w1(() => this.process())), + (this.subscription = Vr( + this.target, + "message", + (r) => this.receive(r), + !1 + )), + (this.globalScope = $t(self) ? n : window); + } + registerMessageHandler(n, t) { + this.messageHandlers[n] = t; + } + sendAsync(n, t) { + return new Promise((r, o) => { + const c = Math.round(1e18 * Math.random()) + .toString(36) + .substring(0, 10), + f = t + ? Vr( + t.signal, + "abort", + () => { + f == null || f.unsubscribe(), + delete this.resolveRejects[c]; + const b = { + id: c, + type: "", + origin: location.origin, + targetMapId: n.targetMapId, + sourceMapId: this.mapId, + }; + this.target.postMessage(b); + }, + T1 + ) + : null; + this.resolveRejects[c] = { + resolve: (b) => { + f == null || f.unsubscribe(), r(b); + }, + reject: (b) => { + f == null || f.unsubscribe(), o(b); + }, + }; + const _ = [], + v = Object.assign(Object.assign({}, n), { + id: c, + sourceMapId: this.mapId, + origin: location.origin, + data: cs(n.data, _), + }); + this.target.postMessage(v, { transfer: _ }); + }); + } + receive(n) { + const t = n.data, + r = t.id; + if ( + !( + (t.origin !== "file://" && + location.origin !== "file://" && + t.origin !== "resource://android" && + location.origin !== "resource://android" && + t.origin !== location.origin) || + (t.targetMapId && this.mapId !== t.targetMapId) + ) + ) { + if (t.type === "") { + delete this.tasks[r]; + const o = this.abortControllers[r]; + return ( + delete this.abortControllers[r], void (o && o.abort()) + ); + } + if ($t(self) || t.mustQueue) + return ( + (this.tasks[r] = t), + this.taskQueue.push(r), + void this.invoker.trigger() + ); + this.processTask(r, t); + } + } + process() { + if (this.taskQueue.length === 0) return; + const n = this.taskQueue.shift(), + t = this.tasks[n]; + delete this.tasks[n], + this.taskQueue.length > 0 && this.invoker.trigger(), + t && this.processTask(n, t); + } + processTask(n, t) { + return s(this, void 0, void 0, function* () { + if (t.type === "") { + const c = this.resolveRejects[n]; + return ( + delete this.resolveRejects[n], + c + ? void (t.error + ? c.reject(Oo(t.error)) + : c.resolve(Oo(t.data))) + : void 0 + ); + } + if (!this.messageHandlers[t.type]) + return void this.completeTask( + n, + new Error( + `Could not find a registered handler for ${ + t.type + }, map ID: ${ + this.mapId + }, available handlers: ${Object.keys( + this.messageHandlers + ).join(", ")}` + ) + ); + const r = Oo(t.data), + o = new AbortController(); + this.abortControllers[n] = o; + try { + const c = yield this.messageHandlers[t.type]( + t.sourceMapId, + r, + o + ); + this.completeTask(n, null, c); + } catch (c) { + this.completeTask(n, c); + } + }); + } + completeTask(n, t, r) { + const o = []; + delete this.abortControllers[n]; + const c = { + id: n, + type: "", + sourceMapId: this.mapId, + origin: location.origin, + error: t ? cs(t) : null, + data: cs(r, o), + }; + this.target.postMessage(c, { transfer: o }); + } + remove() { + this.invoker.remove(), this.subscription.unsubscribe(); + } + }), + (T.K = Y), + (T.L = function () { + var n = new Ee(16); + return ( + Ee != Float32Array && + ((n[1] = 0), + (n[2] = 0), + (n[3] = 0), + (n[4] = 0), + (n[6] = 0), + (n[7] = 0), + (n[8] = 0), + (n[9] = 0), + (n[11] = 0), + (n[12] = 0), + (n[13] = 0), + (n[14] = 0)), + (n[0] = 1), + (n[5] = 1), + (n[10] = 1), + (n[15] = 1), + n + ); + }), + (T.M = function (n, t, r) { + var o, + c, + f, + _, + v, + b, + S, + I, + L, + F, + q, + Z, + W = r[0], + J = r[1], + le = r[2]; + return ( + t === n + ? ((n[12] = t[0] * W + t[4] * J + t[8] * le + t[12]), + (n[13] = t[1] * W + t[5] * J + t[9] * le + t[13]), + (n[14] = t[2] * W + t[6] * J + t[10] * le + t[14]), + (n[15] = t[3] * W + t[7] * J + t[11] * le + t[15])) + : ((c = t[1]), + (f = t[2]), + (_ = t[3]), + (v = t[4]), + (b = t[5]), + (S = t[6]), + (I = t[7]), + (L = t[8]), + (F = t[9]), + (q = t[10]), + (Z = t[11]), + (n[0] = o = t[0]), + (n[1] = c), + (n[2] = f), + (n[3] = _), + (n[4] = v), + (n[5] = b), + (n[6] = S), + (n[7] = I), + (n[8] = L), + (n[9] = F), + (n[10] = q), + (n[11] = Z), + (n[12] = o * W + v * J + L * le + t[12]), + (n[13] = c * W + b * J + F * le + t[13]), + (n[14] = f * W + S * J + q * le + t[14]), + (n[15] = _ * W + I * J + Z * le + t[15])), + n + ); + }), + (T.N = function (n, t, r) { + var o = r[0], + c = r[1], + f = r[2]; + return ( + (n[0] = t[0] * o), + (n[1] = t[1] * o), + (n[2] = t[2] * o), + (n[3] = t[3] * o), + (n[4] = t[4] * c), + (n[5] = t[5] * c), + (n[6] = t[6] * c), + (n[7] = t[7] * c), + (n[8] = t[8] * f), + (n[9] = t[9] * f), + (n[10] = t[10] * f), + (n[11] = t[11] * f), + (n[12] = t[12]), + (n[13] = t[13]), + (n[14] = t[14]), + (n[15] = t[15]), + n + ); + }), + (T.O = function (n, t, r) { + var o = t[0], + c = t[1], + f = t[2], + _ = t[3], + v = t[4], + b = t[5], + S = t[6], + I = t[7], + L = t[8], + F = t[9], + q = t[10], + Z = t[11], + W = t[12], + J = t[13], + le = t[14], + Re = t[15], + xe = r[0], + Ce = r[1], + Ye = r[2], + lt = r[3]; + return ( + (n[0] = xe * o + Ce * v + Ye * L + lt * W), + (n[1] = xe * c + Ce * b + Ye * F + lt * J), + (n[2] = xe * f + Ce * S + Ye * q + lt * le), + (n[3] = xe * _ + Ce * I + Ye * Z + lt * Re), + (n[4] = + (xe = r[4]) * o + + (Ce = r[5]) * v + + (Ye = r[6]) * L + + (lt = r[7]) * W), + (n[5] = xe * c + Ce * b + Ye * F + lt * J), + (n[6] = xe * f + Ce * S + Ye * q + lt * le), + (n[7] = xe * _ + Ce * I + Ye * Z + lt * Re), + (n[8] = + (xe = r[8]) * o + + (Ce = r[9]) * v + + (Ye = r[10]) * L + + (lt = r[11]) * W), + (n[9] = xe * c + Ce * b + Ye * F + lt * J), + (n[10] = xe * f + Ce * S + Ye * q + lt * le), + (n[11] = xe * _ + Ce * I + Ye * Z + lt * Re), + (n[12] = + (xe = r[12]) * o + + (Ce = r[13]) * v + + (Ye = r[14]) * L + + (lt = r[15]) * W), + (n[13] = xe * c + Ce * b + Ye * F + lt * J), + (n[14] = xe * f + Ce * S + Ye * q + lt * le), + (n[15] = xe * _ + Ce * I + Ye * Z + lt * Re), + n + ); + }), + (T.P = B), + (T.Q = function (n, t) { + const r = {}; + for (let o = 0; o < t.length; o++) { + const c = t[o]; + c in n && (r[c] = n[c]); + } + return r; + }), + (T.R = ca), + (T.S = ys), + (T.T = Jp), + (T.U = fg), + (T.V = pg), + (T.W = Ie), + (T.X = Ae), + (T.Y = Nt), + (T.Z = Ra), + (T._ = s), + (T.a = V), + (T.a$ = Ue), + (T.a0 = function (n, t) { + var r, o, c, f; + if (!n) return t ?? {}; + if (!t) return n; + const _ = Object.assign({}, n); + if ((t.removeAll && (_.removeAll = !0), t.remove)) { + const v = new Set( + _.remove ? _.remove.concat(t.remove) : t.remove + ); + _.remove = Array.from(v.values()); + } + if (t.add) { + const v = _.add ? _.add.concat(t.add) : t.add, + b = new Map(v.map((S) => [S.id, S])); + _.add = Array.from(b.values()); + } + if (t.update) { + const v = new Map( + (r = _.update) === null || r === void 0 + ? void 0 + : r.map((b) => [b.id, b]) + ); + for (const b of t.update) { + const S = + (o = v.get(b.id)) !== null && o !== void 0 + ? o + : { id: b.id }; + b.newGeometry && (S.newGeometry = b.newGeometry), + b.addOrUpdateProperties && + (S.addOrUpdateProperties = ( + (c = S.addOrUpdateProperties) !== null && c !== void 0 + ? c + : [] + ).concat(b.addOrUpdateProperties)), + b.removeProperties && + (S.removeProperties = ( + (f = S.removeProperties) !== null && f !== void 0 + ? f + : [] + ).concat(b.removeProperties)), + b.removeAllProperties && (S.removeAllProperties = !0), + v.set(b.id, S); + } + _.update = Array.from(v.values()); + } + return _; + }), + (T.a1 = ku), + (T.a2 = rl), + (T.a3 = 25), + (T.a4 = xf), + (T.a5 = (n) => { + const t = window.document.createElement("video"); + return ( + (t.muted = !0), + new Promise((r) => { + t.onloadstart = () => { + r(t); + }; + for (const o of n) { + const c = window.document.createElement("source"); + Me(o) || (t.crossOrigin = "Anonymous"), + (c.src = o), + t.appendChild(c); + } + }) + ); + }), + (T.a6 = ht), + (T.a7 = function () { + return yt++; + }), + (T.a8 = D), + (T.a9 = nc), + (T.aA = function (n) { + let t = 1 / 0, + r = 1 / 0, + o = -1 / 0, + c = -1 / 0; + for (const f of n) + (t = Math.min(t, f.x)), + (r = Math.min(r, f.y)), + (o = Math.max(o, f.x)), + (c = Math.max(c, f.y)); + return [t, r, o, c]; + }), + (T.aB = Si), + (T.aC = ze), + (T.aD = function (n, t, r, o, c = !1) { + if (!r[0] && !r[1]) return [0, 0]; + const f = c + ? o === "map" + ? -n.bearingInRadians + : 0 + : o === "viewport" + ? n.bearingInRadians + : 0; + if (f) { + const _ = Math.sin(f), + v = Math.cos(f); + r = [r[0] * v - r[1] * _, r[0] * _ + r[1] * v]; + } + return [ + c ? r[0] : ze(t, r[0], n.zoom), + c ? r[1] : ze(t, r[1], n.zoom), + ]; + }), + (T.aF = pf), + (T.aG = wf), + (T.aH = df), + (T.aI = Tf), + (T.aJ = ti), + (T.aK = Ad), + (T.aL = _e), + (T.aM = Kr), + (T.aN = Rn), + (T.aO = at), + (T.aP = hr), + (T.aQ = _g), + (T.aR = Le), + (T.aS = Qe), + (T.aT = function (n) { + var t = new Ee(3); + return (t[0] = n[0]), (t[1] = n[1]), (t[2] = n[2]), t; + }), + (T.aU = function (n, t, r) { + return ( + (n[0] = t[0] - r[0]), + (n[1] = t[1] - r[1]), + (n[2] = t[2] - r[2]), + n + ); + }), + (T.aV = function (n, t) { + var r = t[0], + o = t[1], + c = t[2], + f = r * r + o * o + c * c; + return ( + f > 0 && (f = 1 / Math.sqrt(f)), + (n[0] = t[0] * f), + (n[1] = t[1] * f), + (n[2] = t[2] * f), + n + ); + }), + (T.aW = et), + (T.aX = function (n, t) { + return n[0] * t[0] + n[1] * t[1] + n[2] * t[2]; + }), + (T.aY = function (n, t, r) { + return ( + (n[0] = t[0] * r[0]), + (n[1] = t[1] * r[1]), + (n[2] = t[2] * r[2]), + (n[3] = t[3] * r[3]), + n + ); + }), + (T.aZ = qe), + (T.a_ = function (n, t, r) { + const o = t[0] * r[0] + t[1] * r[1] + t[2] * r[2]; + return o === 0 + ? null + : (-(n[0] * r[0] + n[1] * r[1] + n[2] * r[2]) - r[3]) / o; + }), + (T.aa = Ro), + (T.ab = no), + (T.ac = xg), + (T.ad = function (n) { + const t = {}; + if ( + (n.replace( + /(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g, + (r, o, c, f) => { + const _ = c || f; + return (t[o] = !_ || _.toLowerCase()), ""; + } + ), + t["max-age"]) + ) { + const r = parseInt(t["max-age"], 10); + isNaN(r) ? delete t["max-age"] : (t["max-age"] = r); + } + return t; + }), + (T.ae = mr), + (T.af = function (n) { + return Math.pow(2, n); + }), + (T.ag = $e), + (T.ah = Dt), + (T.ai = 85.051129), + (T.aj = mg), + (T.ak = function (n) { + return Math.log(n) / Math.LN2; + }), + (T.al = function (n) { + var t = n[0], + r = n[1]; + return t * t + r * r; + }), + (T.am = function (n, t) { + const r = []; + for (const o in n) o in t || r.push(o); + return r; + }), + (T.an = function (n, t) { + let r = 0, + o = 0; + if (n.kind === "constant") o = n.layoutSize; + else if (n.kind !== "source") { + const { interpolationType: c, minZoom: f, maxZoom: _ } = n, + v = c ? Dt(Di.interpolationFactor(c, t, f, _), 0, 1) : 0; + n.kind === "camera" + ? (o = Za.number(n.minSize, n.maxSize, v)) + : (r = v); + } + return { uSizeT: r, uSize: o }; + }), + (T.ap = function ( + n, + { uSize: t, uSizeT: r }, + { lowerSize: o, upperSize: c } + ) { + return n.kind === "source" + ? o / Zo + : n.kind === "composite" + ? Za.number(o / Zo, c / Zo, r) + : t; + }), + (T.aq = function (n, t) { + var r = t[0], + o = t[1], + c = t[2], + f = t[3], + _ = t[4], + v = t[5], + b = t[6], + S = t[7], + I = t[8], + L = t[9], + F = t[10], + q = t[11], + Z = t[12], + W = t[13], + J = t[14], + le = t[15], + Re = r * v - o * _, + xe = r * b - c * _, + Ce = r * S - f * _, + Ye = o * b - c * v, + lt = o * S - f * v, + Pt = c * S - f * b, + Yt = I * W - L * Z, + qt = I * J - F * Z, + Ht = I * le - q * Z, + Sr = L * J - F * W, + Gt = L * le - q * W, + Wt = F * le - q * J, + gt = + Re * Wt - xe * Gt + Ce * Sr + Ye * Ht - lt * qt + Pt * Yt; + return gt + ? ((n[0] = (v * Wt - b * Gt + S * Sr) * (gt = 1 / gt)), + (n[1] = (c * Gt - o * Wt - f * Sr) * gt), + (n[2] = (W * Pt - J * lt + le * Ye) * gt), + (n[3] = (F * lt - L * Pt - q * Ye) * gt), + (n[4] = (b * Ht - _ * Wt - S * qt) * gt), + (n[5] = (r * Wt - c * Ht + f * qt) * gt), + (n[6] = (J * Ce - Z * Pt - le * xe) * gt), + (n[7] = (I * Pt - F * Ce + q * xe) * gt), + (n[8] = (_ * Gt - v * Ht + S * Yt) * gt), + (n[9] = (o * Ht - r * Gt - f * Yt) * gt), + (n[10] = (Z * lt - W * Ce + le * Re) * gt), + (n[11] = (L * Ce - I * lt - q * Re) * gt), + (n[12] = (v * qt - _ * Sr - b * Yt) * gt), + (n[13] = (r * Sr - o * qt + c * Yt) * gt), + (n[14] = (W * xe - Z * Ye - J * Re) * gt), + (n[15] = (I * Ye - L * xe + F * Re) * gt), + n) + : null; + }), + (T.ar = re), + (T.as = function (n) { + return Math.hypot(n[0], n[1]); + }), + (T.at = function (n) { + return (n[0] = 0), (n[1] = 0), n; + }), + (T.au = function (n, t, r) { + return (n[0] = t[0] * r), (n[1] = t[1] * r), n; + }), + (T.av = ff), + (T.aw = ke), + (T.ax = function (n, t, r, o) { + const c = t.y - n.y, + f = t.x - n.x, + _ = o.y - r.y, + v = o.x - r.x, + b = _ * f - v * c; + if (b === 0) return null; + const S = (v * (n.y - r.y) - _ * (n.x - r.x)) / b; + return new B(n.x + S * f, n.y + S * c); + }), + (T.ay = Tg), + (T.az = d_), + (T.b = Qt), + (T.b$ = class extends h {}), + (T.b0 = function (n, t, r) { + return ( + (n[0] = t[0] * r), + (n[1] = t[1] * r), + (n[2] = t[2] * r), + (n[3] = t[3] * r), + n + ); + }), + (T.b1 = function (n, t) { + return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3]; + }), + (T.b2 = vg), + (T.b3 = ic), + (T.b4 = function (n, t, r, o, c) { + var f, + _ = 1 / Math.tan(t / 2); + return ( + (n[0] = _ / r), + (n[1] = 0), + (n[2] = 0), + (n[3] = 0), + (n[4] = 0), + (n[5] = _), + (n[6] = 0), + (n[7] = 0), + (n[8] = 0), + (n[9] = 0), + (n[11] = -1), + (n[12] = 0), + (n[13] = 0), + (n[15] = 0), + c != null && c !== 1 / 0 + ? ((n[10] = (c + o) * (f = 1 / (o - c))), + (n[14] = 2 * c * o * f)) + : ((n[10] = -1), (n[14] = -2 * o)), + n + ); + }), + (T.b5 = function (n) { + var t = new Ee(16); + return ( + (t[0] = n[0]), + (t[1] = n[1]), + (t[2] = n[2]), + (t[3] = n[3]), + (t[4] = n[4]), + (t[5] = n[5]), + (t[6] = n[6]), + (t[7] = n[7]), + (t[8] = n[8]), + (t[9] = n[9]), + (t[10] = n[10]), + (t[11] = n[11]), + (t[12] = n[12]), + (t[13] = n[13]), + (t[14] = n[14]), + (t[15] = n[15]), + t + ); + }), + (T.b6 = function (n, t, r) { + var o = Math.sin(r), + c = Math.cos(r), + f = t[0], + _ = t[1], + v = t[2], + b = t[3], + S = t[4], + I = t[5], + L = t[6], + F = t[7]; + return ( + t !== n && + ((n[8] = t[8]), + (n[9] = t[9]), + (n[10] = t[10]), + (n[11] = t[11]), + (n[12] = t[12]), + (n[13] = t[13]), + (n[14] = t[14]), + (n[15] = t[15])), + (n[0] = f * c + S * o), + (n[1] = _ * c + I * o), + (n[2] = v * c + L * o), + (n[3] = b * c + F * o), + (n[4] = S * c - f * o), + (n[5] = I * c - _ * o), + (n[6] = L * c - v * o), + (n[7] = F * c - b * o), + n + ); + }), + (T.b7 = function (n, t, r) { + var o = Math.sin(r), + c = Math.cos(r), + f = t[4], + _ = t[5], + v = t[6], + b = t[7], + S = t[8], + I = t[9], + L = t[10], + F = t[11]; + return ( + t !== n && + ((n[0] = t[0]), + (n[1] = t[1]), + (n[2] = t[2]), + (n[3] = t[3]), + (n[12] = t[12]), + (n[13] = t[13]), + (n[14] = t[14]), + (n[15] = t[15])), + (n[4] = f * c + S * o), + (n[5] = _ * c + I * o), + (n[6] = v * c + L * o), + (n[7] = b * c + F * o), + (n[8] = S * c - f * o), + (n[9] = I * c - _ * o), + (n[10] = L * c - v * o), + (n[11] = F * c - b * o), + n + ); + }), + (T.b8 = function () { + const n = new Float32Array(16); + return $e(n), n; + }), + (T.b9 = function () { + const n = new Float64Array(16); + return $e(n), n; + }), + (T.bA = function (n, t) { + const r = je(n, 360), + o = je(t, 360), + c = o - r, + f = o > r ? c - 360 : c + 360; + return Math.abs(c) < Math.abs(f) ? c : f; + }), + (T.bB = function (n) { + return (n[0] = 0), (n[1] = 0), (n[2] = 0), n; + }), + (T.bC = function (n, t, r, o) { + const c = Math.sqrt(n * n + t * t), + f = Math.sqrt(r * r + o * o); + (n /= c), (t /= c), (r /= f), (o /= f); + const _ = Math.acos(n * r + t * o); + return -t * r + n * o > 0 ? _ : -_; + }), + (T.bD = function (n, t) { + const r = je(n, 2 * Math.PI), + o = je(t, 2 * Math.PI); + return Math.min( + Math.abs(r - o), + Math.abs(r - o + 2 * Math.PI), + Math.abs(r - o - 2 * Math.PI) + ); + }), + (T.bE = function () { + const n = {}, + t = ye.$version; + for (const r in ye.$root) { + const o = ye.$root[r]; + if (o.required) { + let c = null; + (c = r === "version" ? t : o.type === "array" ? [] : {}), + c != null && (n[r] = c); + } + } + return n; + }), + (T.bF = Nl), + (T.bG = pe), + (T.bH = function n(t, r) { + if (Array.isArray(t)) { + if (!Array.isArray(r) || t.length !== r.length) return !1; + for (let o = 0; o < t.length; o++) + if (!n(t[o], r[o])) return !1; + return !0; + } + if (typeof t == "object" && t !== null && r !== null) { + if ( + typeof r != "object" || + Object.keys(t).length !== Object.keys(r).length + ) + return !1; + for (const o in t) if (!n(t[o], r[o])) return !1; + return !0; + } + return t === r; + }), + (T.bI = function (n) { + n = n.slice(); + const t = Object.create(null); + for (let r = 0; r < n.length; r++) t[n[r].id] = n[r]; + for (let r = 0; r < n.length; r++) + "ref" in n[r] && (n[r] = rr(n[r], t[n[r].ref])); + return n; + }), + (T.bJ = function (n) { + if (n.type === "custom") return new b1(n); + switch (n.type) { + case "background": + return new v1(n); + case "circle": + return new ny(n); + case "color-relief": + return new cy(n); + case "fill": + return new Cy(n); + case "fill-extrusion": + return new Ry(n); + case "heatmap": + return new ay(n); + case "hillshade": + return new sy(n); + case "line": + return new qy(n); + case "raster": + return new x1(n); + case "symbol": + return new Rd(n); + } + }), + (T.bK = wt), + (T.bL = function (n, t) { + if (!n) return [{ command: "setStyle", args: [t] }]; + let r = []; + try { + if (!Kt(n.version, t.version)) + return [{ command: "setStyle", args: [t] }]; + Kt(n.center, t.center) || + r.push({ command: "setCenter", args: [t.center] }), + Kt(n.state, t.state) || + r.push({ command: "setGlobalState", args: [t.state] }), + Kt(n.centerAltitude, t.centerAltitude) || + r.push({ + command: "setCenterAltitude", + args: [t.centerAltitude], + }), + Kt(n.zoom, t.zoom) || + r.push({ command: "setZoom", args: [t.zoom] }), + Kt(n.bearing, t.bearing) || + r.push({ command: "setBearing", args: [t.bearing] }), + Kt(n.pitch, t.pitch) || + r.push({ command: "setPitch", args: [t.pitch] }), + Kt(n.roll, t.roll) || + r.push({ command: "setRoll", args: [t.roll] }), + Kt(n.sprite, t.sprite) || + r.push({ command: "setSprite", args: [t.sprite] }), + Kt(n.glyphs, t.glyphs) || + r.push({ command: "setGlyphs", args: [t.glyphs] }), + Kt(n.transition, t.transition) || + r.push({ + command: "setTransition", + args: [t.transition], + }), + Kt(n.light, t.light) || + r.push({ command: "setLight", args: [t.light] }), + Kt(n.terrain, t.terrain) || + r.push({ command: "setTerrain", args: [t.terrain] }), + Kt(n.sky, t.sky) || + r.push({ command: "setSky", args: [t.sky] }), + Kt(n.projection, t.projection) || + r.push({ + command: "setProjection", + args: [t.projection], + }); + const o = {}, + c = []; + (function (_, v, b, S) { + let I; + for (I in ((v = v || {}), (_ = _ || {}))) + Object.prototype.hasOwnProperty.call(_, I) && + (Object.prototype.hasOwnProperty.call(v, I) || + nn(I, b, S)); + for (I in v) + Object.prototype.hasOwnProperty.call(v, I) && + (Object.prototype.hasOwnProperty.call(_, I) + ? Kt(_[I], v[I]) || + (_[I].type === "geojson" && + v[I].type === "geojson" && + _n(_, v, I) + ? gr(b, { + command: "setGeoJSONSourceData", + args: [I, v[I].data], + }) + : mn(I, v, b, S)) + : Ur(I, v, b)); + })(n.sources, t.sources, c, o); + const f = []; + n.layers && + n.layers.forEach((_) => { + "source" in _ && o[_.source] + ? r.push({ command: "removeLayer", args: [_.id] }) + : f.push(_); + }), + (r = r.concat(c)), + (function (_, v, b) { + v = v || []; + const S = (_ = _ || []).map(Et), + I = v.map(Et), + L = _.reduce(dr, {}), + F = v.reduce(dr, {}), + q = S.slice(), + Z = Object.create(null); + let W, J, le, Re, xe; + for (let Ce = 0, Ye = 0; Ce < S.length; Ce++) + (W = S[Ce]), + Object.prototype.hasOwnProperty.call(F, W) + ? Ye++ + : (gr(b, { command: "removeLayer", args: [W] }), + q.splice(q.indexOf(W, Ye), 1)); + for (let Ce = 0, Ye = 0; Ce < I.length; Ce++) + (W = I[I.length - 1 - Ce]), + q[q.length - 1 - Ce] !== W && + (Object.prototype.hasOwnProperty.call(L, W) + ? (gr(b, { command: "removeLayer", args: [W] }), + q.splice(q.lastIndexOf(W, q.length - Ye), 1)) + : Ye++, + (Re = q[q.length - Ce]), + gr(b, { command: "addLayer", args: [F[W], Re] }), + q.splice(q.length - Ce, 0, W), + (Z[W] = !0)); + for (let Ce = 0; Ce < I.length; Ce++) + if ( + ((W = I[Ce]), + (J = L[W]), + (le = F[W]), + !Z[W] && !Kt(J, le)) + ) + if ( + Kt(J.source, le.source) && + Kt(J["source-layer"], le["source-layer"]) && + Kt(J.type, le.type) + ) { + for (xe in (Vt( + J.layout, + le.layout, + b, + W, + null, + "setLayoutProperty" + ), + Vt( + J.paint, + le.paint, + b, + W, + null, + "setPaintProperty" + ), + Kt(J.filter, le.filter) || + gr(b, { + command: "setFilter", + args: [W, le.filter], + }), + (Kt(J.minzoom, le.minzoom) && + Kt(J.maxzoom, le.maxzoom)) || + gr(b, { + command: "setLayerZoomRange", + args: [W, le.minzoom, le.maxzoom], + }), + J)) + Object.prototype.hasOwnProperty.call(J, xe) && + xe !== "layout" && + xe !== "paint" && + xe !== "filter" && + xe !== "metadata" && + xe !== "minzoom" && + xe !== "maxzoom" && + (xe.indexOf("paint.") === 0 + ? Vt( + J[xe], + le[xe], + b, + W, + xe.slice(6), + "setPaintProperty" + ) + : Kt(J[xe], le[xe]) || + gr(b, { + command: "setLayerProperty", + args: [W, xe, le[xe]], + })); + for (xe in le) + Object.prototype.hasOwnProperty.call(le, xe) && + !Object.prototype.hasOwnProperty.call(J, xe) && + xe !== "layout" && + xe !== "paint" && + xe !== "filter" && + xe !== "metadata" && + xe !== "minzoom" && + xe !== "maxzoom" && + (xe.indexOf("paint.") === 0 + ? Vt( + J[xe], + le[xe], + b, + W, + xe.slice(6), + "setPaintProperty" + ) + : Kt(J[xe], le[xe]) || + gr(b, { + command: "setLayerProperty", + args: [W, xe, le[xe]], + })); + } else + gr(b, { command: "removeLayer", args: [W] }), + (Re = q[q.lastIndexOf(W) + 1]), + gr(b, { command: "addLayer", args: [le, Re] }); + })(f, t.layers, r); + } catch (o) { + console.warn("Unable to compute style diff:", o), + (r = [{ command: "setStyle", args: [t] }]); + } + return r; + }), + (T.bM = function (n) { + const t = [], + r = n.id; + return ( + r === void 0 && + t.push({ + message: `layers.${r}: missing required property "id"`, + }), + n.render === void 0 && + t.push({ + message: `layers.${r}: missing required method "render"`, + }), + n.renderingMode && + n.renderingMode !== "2d" && + n.renderingMode !== "3d" && + t.push({ + message: `layers.${r}: property "renderingMode" must be either "2d" or "3d"`, + }), + t + ); + }), + (T.bN = xt), + (T.bO = St), + (T.bP = class extends Gi { + constructor(n, t) { + super(n, t), (this.current = 0); + } + set(n) { + this.current !== n && + ((this.current = n), this.gl.uniform1i(this.location, n)); + } + }), + (T.bQ = _i), + (T.bR = class extends Gi { + constructor(n, t) { + super(n, t), (this.current = ba); + } + set(n) { + if (n[12] !== this.current[12] || n[0] !== this.current[0]) + return ( + (this.current = n), + void this.gl.uniformMatrix4fv(this.location, !1, n) + ); + for (let t = 1; t < 16; t++) + if (n[t] !== this.current[t]) { + (this.current = n), + this.gl.uniformMatrix4fv(this.location, !1, n); + break; + } + } + }), + (T.bS = li), + (T.bT = class extends Gi { + constructor(n, t) { + super(n, t), (this.current = [0, 0, 0]); + } + set(n) { + (n[0] === this.current[0] && + n[1] === this.current[1] && + n[2] === this.current[2]) || + ((this.current = n), + this.gl.uniform3f(this.location, n[0], n[1], n[2])); + } + }), + (T.bU = class extends Gi { + constructor(n, t) { + super(n, t), (this.current = [0, 0]); + } + set(n) { + (n[0] === this.current[0] && n[1] === this.current[1]) || + ((this.current = n), + this.gl.uniform2f(this.location, n[0], n[1])); + } + }), + (T.bV = Fe), + (T.bW = function (n, t) { + var r = Math.sin(t), + o = Math.cos(t); + return ( + (n[0] = o), + (n[1] = r), + (n[2] = 0), + (n[3] = -r), + (n[4] = o), + (n[5] = 0), + (n[6] = 0), + (n[7] = 0), + (n[8] = 1), + n + ); + }), + (T.bX = function (n, t, r) { + var o = t[0], + c = t[1], + f = t[2]; + return ( + (n[0] = o * r[0] + c * r[3] + f * r[6]), + (n[1] = o * r[1] + c * r[4] + f * r[7]), + (n[2] = o * r[2] + c * r[5] + f * r[8]), + n + ); + }), + (T.bY = function (n, t, r, o, c, f, _) { + var v = 1 / (t - r), + b = 1 / (o - c), + S = 1 / (f - _); + return ( + (n[0] = -2 * v), + (n[1] = 0), + (n[2] = 0), + (n[3] = 0), + (n[4] = 0), + (n[5] = -2 * b), + (n[6] = 0), + (n[7] = 0), + (n[8] = 0), + (n[9] = 0), + (n[10] = 2 * S), + (n[11] = 0), + (n[12] = (t + r) * v), + (n[13] = (c + o) * b), + (n[14] = (_ + f) * S), + (n[15] = 1), + n + ); + }), + (T.bZ = class extends Gi { + constructor(n, t) { + super(n, t), (this.current = new Array()); + } + set(n) { + if (n != this.current) { + this.current = n; + const t = new Float32Array(4 * n.length); + for (let r = 0; r < n.length; r++) + (t[4 * r] = n[r].r), + (t[4 * r + 1] = n[r].g), + (t[4 * r + 2] = n[r].b), + (t[4 * r + 3] = n[r].a); + this.gl.uniform4fv(this.location, t); + } + } + }), + (T.b_ = class extends Gi { + constructor(n, t) { + super(n, t), (this.current = new Array()); + } + set(n) { + if (n != this.current) { + this.current = n; + const t = new Float32Array(n); + this.gl.uniform1fv(this.location, t); + } + } + }), + (T.ba = function () { + return new Float64Array(16); + }), + (T.bb = function (n, t, r) { + const o = new Float64Array(4); + return ee(o, n, t - 90, r), o; + }), + (T.bc = function (n, t, r, o) { + var c, + f, + _, + v, + b, + S = t[0], + I = t[1], + L = t[2], + F = t[3], + q = r[0], + Z = r[1], + W = r[2], + J = r[3]; + return ( + (f = S * q + I * Z + L * W + F * J) < 0 && + ((f = -f), (q = -q), (Z = -Z), (W = -W), (J = -J)), + 1 - f > De + ? ((c = Math.acos(f)), + (_ = Math.sin(c)), + (v = Math.sin((1 - o) * c) / _), + (b = Math.sin(o * c) / _)) + : ((v = 1 - o), (b = o)), + (n[0] = v * S + b * q), + (n[1] = v * I + b * Z), + (n[2] = v * L + b * W), + (n[3] = v * F + b * J), + n + ); + }), + (T.bd = function (n) { + const t = new Float64Array(9); + var r, o, c, f, _, v, b, S, I, L, F, q, Z, W, J, le, Re, xe; + (L = (c = (o = n)[0]) * (b = c + c)), + (F = (f = o[1]) * b), + (Z = (_ = o[2]) * b), + (W = _ * (S = f + f)), + (le = (v = o[3]) * b), + (Re = v * S), + (xe = v * (I = _ + _)), + ((r = t)[0] = 1 - (q = f * S) - (J = _ * I)), + (r[3] = F - xe), + (r[6] = Z + Re), + (r[1] = F + xe), + (r[4] = 1 - L - J), + (r[7] = W - le), + (r[2] = Z - Re), + (r[5] = W + le), + (r[8] = 1 - L - q); + const Ce = hr(-Math.asin(Dt(t[2], -1, 1))); + let Ye, lt; + return ( + Math.hypot(t[5], t[8]) < 0.001 + ? ((Ye = 0), (lt = -hr(Math.atan2(t[3], t[4])))) + : ((Ye = hr( + t[5] === 0 && t[8] === 0 ? 0 : Math.atan2(t[5], t[8]) + )), + (lt = hr( + t[1] === 0 && t[0] === 0 ? 0 : Math.atan2(t[1], t[0]) + ))), + { roll: Ye, pitch: Ce + 90, bearing: lt } + ); + }), + (T.be = function (n, t) { + return ( + n.roll == t.roll && + n.pitch == t.pitch && + n.bearing == t.bearing + ); + }), + (T.bf = Mr), + (T.bg = yo), + (T.bh = Ql), + (T.bi = Tu), + (T.bj = Jl), + (T.bk = pt), + (T.bl = it), + (T.bm = jn), + (T.bn = function (n, t, r, o, c) { + return pt(o, c, Dt((n - t) / (r - t), 0, 1)); + }), + (T.bo = je), + (T.bp = function () { + return new Float64Array(3); + }), + (T.bq = function (n, t, r, o) { + return ( + (n[0] = t[0] + r[0] * o), + (n[1] = t[1] + r[1] * o), + (n[2] = t[2] + r[2] * o), + n + ); + }), + (T.br = ee), + (T.bs = function (n, t, r) { + var o = r[0], + c = r[1], + f = r[2], + _ = t[0], + v = t[1], + b = t[2], + S = c * b - f * v, + I = f * _ - o * b, + L = o * v - c * _, + F = c * L - f * I, + q = f * S - o * L, + Z = o * I - c * S, + W = 2 * r[3]; + return ( + (I *= W), + (L *= W), + (q *= 2), + (Z *= 2), + (n[0] = _ + (S *= W) + (F *= 2)), + (n[1] = v + I + q), + (n[2] = b + L + Z), + n + ); + }), + (T.bt = function (n, t, r) { + const o = + (c = [ + n[0], + n[1], + n[2], + t[0], + t[1], + t[2], + r[0], + r[1], + r[2], + ])[0] * + ((I = c[8]) * (_ = c[4]) - (v = c[5]) * (S = c[7])) + + c[1] * (-I * (f = c[3]) + v * (b = c[6])) + + c[2] * (S * f - _ * b); + var c, f, _, v, b, S, I; + if (o === 0) return null; + const L = et([], [t[0], t[1], t[2]], [r[0], r[1], r[2]]), + F = et([], [r[0], r[1], r[2]], [n[0], n[1], n[2]]), + q = et([], [n[0], n[1], n[2]], [t[0], t[1], t[2]]), + Z = Le([], L, -n[3]); + return ( + Qe(Z, Z, Le([], F, -t[3])), + Qe(Z, Z, Le([], q, -r[3])), + Le(Z, Z, 1 / o), + Z + ); + }), + (T.bu = vf), + (T.bv = function () { + return new Float64Array(4); + }), + (T.bw = function (n, t, r, o) { + var c = [], + f = []; + return ( + (c[0] = t[0] - r[0]), + (c[1] = t[1] - r[1]), + (c[2] = t[2] - r[2]), + (f[0] = c[0] * Math.cos(o) - c[1] * Math.sin(o)), + (f[1] = c[0] * Math.sin(o) + c[1] * Math.cos(o)), + (f[2] = c[2]), + (n[0] = f[0] + r[0]), + (n[1] = f[1] + r[1]), + (n[2] = f[2] + r[2]), + n + ); + }), + (T.bx = function (n, t, r, o) { + var c = [], + f = []; + return ( + (c[0] = t[0] - r[0]), + (c[1] = t[1] - r[1]), + (c[2] = t[2] - r[2]), + (f[0] = c[0]), + (f[1] = c[1] * Math.cos(o) - c[2] * Math.sin(o)), + (f[2] = c[1] * Math.sin(o) + c[2] * Math.cos(o)), + (n[0] = f[0] + r[0]), + (n[1] = f[1] + r[1]), + (n[2] = f[2] + r[2]), + n + ); + }), + (T.by = function (n, t, r, o) { + var c = [], + f = []; + return ( + (c[0] = t[0] - r[0]), + (c[1] = t[1] - r[1]), + (c[2] = t[2] - r[2]), + (f[0] = c[2] * Math.sin(o) + c[0] * Math.cos(o)), + (f[1] = c[1]), + (f[2] = c[2] * Math.cos(o) - c[0] * Math.sin(o)), + (n[0] = f[0] + r[0]), + (n[1] = f[1] + r[1]), + (n[2] = f[2] + r[2]), + n + ); + }), + (T.bz = function (n, t, r) { + var o = Math.sin(r), + c = Math.cos(r), + f = t[0], + _ = t[1], + v = t[2], + b = t[3], + S = t[8], + I = t[9], + L = t[10], + F = t[11]; + return ( + t !== n && + ((n[4] = t[4]), + (n[5] = t[5]), + (n[6] = t[6]), + (n[7] = t[7]), + (n[12] = t[12]), + (n[13] = t[13]), + (n[14] = t[14]), + (n[15] = t[15])), + (n[0] = f * c - S * o), + (n[1] = _ * c - I * o), + (n[2] = v * c - L * o), + (n[3] = b * c - F * o), + (n[8] = f * o + S * c), + (n[9] = _ * o + I * c), + (n[10] = v * o + L * c), + (n[11] = b * o + F * c), + n + ); + }), + (T.c = ue), + (T.c0 = Gy), + (T.c1 = class extends i {}), + (T.c2 = Kp), + (T.c3 = function (n) { + return n <= 1 + ? 1 + : Math.pow(2, Math.ceil(Math.log(n) / Math.LN2)); + }), + (T.c4 = w_), + (T.c5 = function (n, t, r) { + var o = t[0], + c = t[1], + f = t[2], + _ = r[3] * o + r[7] * c + r[11] * f + r[15]; + return ( + (n[0] = + (r[0] * o + r[4] * c + r[8] * f + r[12]) / (_ = _ || 1)), + (n[1] = (r[1] * o + r[5] * c + r[9] * f + r[13]) / _), + (n[2] = (r[2] * o + r[6] * c + r[10] * f + r[14]) / _), + n + ); + }), + (T.c6 = class extends du {}), + (T.c7 = class extends P {}), + (T.c8 = function (n, t) { + return ( + n[0] === t[0] && + n[1] === t[1] && + n[2] === t[2] && + n[3] === t[3] && + n[4] === t[4] && + n[5] === t[5] && + n[6] === t[6] && + n[7] === t[7] && + n[8] === t[8] && + n[9] === t[9] && + n[10] === t[10] && + n[11] === t[11] && + n[12] === t[12] && + n[13] === t[13] && + n[14] === t[14] && + n[15] === t[15] + ); + }), + (T.c9 = function (n, t) { + var r = n[0], + o = n[1], + c = n[2], + f = n[3], + _ = n[4], + v = n[5], + b = n[6], + S = n[7], + I = n[8], + L = n[9], + F = n[10], + q = n[11], + Z = n[12], + W = n[13], + J = n[14], + le = n[15], + Re = t[0], + xe = t[1], + Ce = t[2], + Ye = t[3], + lt = t[4], + Pt = t[5], + Yt = t[6], + qt = t[7], + Ht = t[8], + Sr = t[9], + Gt = t[10], + Wt = t[11], + gt = t[12], + Nr = t[13], + Hr = t[14], + kr = t[15]; + return ( + Math.abs(r - Re) <= + De * Math.max(1, Math.abs(r), Math.abs(Re)) && + Math.abs(o - xe) <= + De * Math.max(1, Math.abs(o), Math.abs(xe)) && + Math.abs(c - Ce) <= + De * Math.max(1, Math.abs(c), Math.abs(Ce)) && + Math.abs(f - Ye) <= + De * Math.max(1, Math.abs(f), Math.abs(Ye)) && + Math.abs(_ - lt) <= + De * Math.max(1, Math.abs(_), Math.abs(lt)) && + Math.abs(v - Pt) <= + De * Math.max(1, Math.abs(v), Math.abs(Pt)) && + Math.abs(b - Yt) <= + De * Math.max(1, Math.abs(b), Math.abs(Yt)) && + Math.abs(S - qt) <= + De * Math.max(1, Math.abs(S), Math.abs(qt)) && + Math.abs(I - Ht) <= + De * Math.max(1, Math.abs(I), Math.abs(Ht)) && + Math.abs(L - Sr) <= + De * Math.max(1, Math.abs(L), Math.abs(Sr)) && + Math.abs(F - Gt) <= + De * Math.max(1, Math.abs(F), Math.abs(Gt)) && + Math.abs(q - Wt) <= + De * Math.max(1, Math.abs(q), Math.abs(Wt)) && + Math.abs(Z - gt) <= + De * Math.max(1, Math.abs(Z), Math.abs(gt)) && + Math.abs(W - Nr) <= + De * Math.max(1, Math.abs(W), Math.abs(Nr)) && + Math.abs(J - Hr) <= + De * Math.max(1, Math.abs(J), Math.abs(Hr)) && + Math.abs(le - kr) <= + De * Math.max(1, Math.abs(le), Math.abs(kr)) + ); + }), + (T.cA = function (n, t) { + V.REGISTERED_PROTOCOLS[n] = t; + }), + (T.cB = function (n) { + delete V.REGISTERED_PROTOCOLS[n]; + }), + (T.cC = function (n, t) { + const r = {}; + for (let c = 0; c < n.length; c++) { + const f = (t && t[n[c].id]) || Np(n[c]); + t && (t[n[c].id] = f); + let _ = r[f]; + _ || (_ = r[f] = []), _.push(n[c]); + } + const o = []; + for (const c in r) o.push(r[c]); + return o; + }), + (T.cD = ir), + (T.cE = yg), + (T.cF = bg), + (T.cG = K_), + (T.cH = function (n) { + n.bucket.createArrays(), + (n.bucket.tilePixelRatio = oe / (512 * n.bucket.overscaling)), + (n.bucket.compareText = {}), + (n.bucket.iconsNeedLinear = !1); + const t = n.bucket.layers[0], + r = t.layout, + o = t._unevaluatedLayout._values, + c = { + layoutIconSize: o["icon-size"].possiblyEvaluate( + new Un(n.bucket.zoom + 1), + n.canonical + ), + layoutTextSize: o["text-size"].possiblyEvaluate( + new Un(n.bucket.zoom + 1), + n.canonical + ), + textMaxSize: o["text-size"].possiblyEvaluate(new Un(18)), + }; + if (n.bucket.textSizeData.kind === "composite") { + const { minZoom: S, maxZoom: I } = n.bucket.textSizeData; + c.compositeTextSizes = [ + o["text-size"].possiblyEvaluate(new Un(S), n.canonical), + o["text-size"].possiblyEvaluate(new Un(I), n.canonical), + ]; + } + if (n.bucket.iconSizeData.kind === "composite") { + const { minZoom: S, maxZoom: I } = n.bucket.iconSizeData; + c.compositeIconSizes = [ + o["icon-size"].possiblyEvaluate(new Un(S), n.canonical), + o["icon-size"].possiblyEvaluate(new Un(I), n.canonical), + ]; + } + const f = r.get("text-line-height") * Si, + _ = + r.get("text-rotation-alignment") !== "viewport" && + r.get("symbol-placement") !== "point", + v = r.get("text-keep-upright"), + b = r.get("text-size"); + for (const S of n.bucket.features) { + const I = r + .get("text-font") + .evaluate(S, {}, n.canonical) + .join(","), + L = b.evaluate(S, {}, n.canonical), + F = c.layoutTextSize.evaluate(S, {}, n.canonical), + q = c.layoutIconSize.evaluate(S, {}, n.canonical), + Z = { horizontal: {}, vertical: void 0 }, + W = S.text; + let J, + le = [0, 0]; + if (W) { + const Ce = W.toString(), + Ye = + r + .get("text-letter-spacing") + .evaluate(S, {}, n.canonical) * Si, + lt = Zp(Ce) ? Ye : 0, + Pt = r.get("text-anchor").evaluate(S, {}, n.canonical), + Yt = zg(t, S, n.canonical); + if (!Yt) { + const Gt = r + .get("text-radial-offset") + .evaluate(S, {}, n.canonical); + le = Gt + ? Eg(Pt, [Gt * Si, bf]) + : r + .get("text-offset") + .evaluate(S, {}, n.canonical) + .map((Wt) => Wt * Si); + } + let qt = _ + ? "center" + : r.get("text-justify").evaluate(S, {}, n.canonical); + const Ht = + r.get("symbol-placement") === "point" + ? r + .get("text-max-width") + .evaluate(S, {}, n.canonical) * Si + : 1 / 0, + Sr = () => { + n.bucket.allowVerticalPlacement && + jl(Ce) && + (Z.vertical = zd( + W, + n.glyphMap, + n.glyphPositions, + n.imagePositions, + I, + Ht, + f, + Pt, + "left", + lt, + le, + T.ao.vertical, + !0, + F, + L + )); + }; + if (!_ && Yt) { + const Gt = new Set(); + if (qt === "auto") + for (let gt = 0; gt < Yt.values.length; gt += 2) + Gt.add(wf(Yt.values[gt])); + else Gt.add(qt); + let Wt = !1; + for (const gt of Gt) + if (!Z.horizontal[gt]) + if (Wt) Z.horizontal[gt] = Z.horizontal[0]; + else { + const Nr = zd( + W, + n.glyphMap, + n.glyphPositions, + n.imagePositions, + I, + Ht, + f, + "center", + gt, + lt, + le, + T.ao.horizontal, + !1, + F, + L + ); + Nr && + ((Z.horizontal[gt] = Nr), + (Wt = Nr.positionedLines.length === 1)); + } + Sr(); + } else { + qt === "auto" && (qt = wf(Pt)); + const Gt = zd( + W, + n.glyphMap, + n.glyphPositions, + n.imagePositions, + I, + Ht, + f, + Pt, + qt, + lt, + le, + T.ao.horizontal, + !1, + F, + L + ); + Gt && (Z.horizontal[qt] = Gt), + Sr(), + jl(Ce) && + _ && + v && + (Z.vertical = zd( + W, + n.glyphMap, + n.glyphPositions, + n.imagePositions, + I, + Ht, + f, + Pt, + qt, + lt, + le, + T.ao.vertical, + !1, + F, + L + )); + } + } + let Re = !1; + if (S.icon && S.icon.name) { + const Ce = n.imageMap[S.icon.name]; + Ce && + ((J = f1( + n.imagePositions[S.icon.name], + r.get("icon-offset").evaluate(S, {}, n.canonical), + r.get("icon-anchor").evaluate(S, {}, n.canonical) + )), + (Re = !!Ce.sdf), + n.bucket.sdfIcons === void 0 + ? (n.bucket.sdfIcons = Re) + : n.bucket.sdfIcons !== Re && + Lt( + "Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer" + ), + (Ce.pixelRatio !== n.bucket.pixelRatio || + r.get("icon-rotate").constantOr(1) !== 0) && + (n.bucket.iconsNeedLinear = !0)); + } + const xe = Dg(Z.horizontal) || Z.vertical; + (n.bucket.iconsInText = !!xe && xe.iconsInText), + (xe || J) && + A1( + n.bucket, + S, + Z, + J, + n.imageMap, + c, + F, + q, + le, + Re, + n.canonical, + n.subdivisionGranularity + ); + } + n.showCollisionBoxes && + n.bucket.generateCollisionDebugBuffers(); + }), + (T.cI = sf), + (T.cJ = nf), + (T.cK = of), + (T.cL = F_), + (T.cM = cf), + (T.cN = class { + constructor(n) { + (this._marks = { + start: [n.url, "start"].join("#"), + end: [n.url, "end"].join("#"), + measure: n.url.toString(), + }), + performance.mark(this._marks.start); + } + finish() { + performance.mark(this._marks.end); + let n = performance.getEntriesByName(this._marks.measure); + return ( + n.length === 0 && + (performance.measure( + this._marks.measure, + this._marks.start, + this._marks.end + ), + (n = performance.getEntriesByName(this._marks.measure)), + performance.clearMarks(this._marks.start), + performance.clearMarks(this._marks.end), + performance.clearMeasures(this._marks.measure)), + n + ); + } + }), + (T.cO = function (n, t, r, o, c) { + return s(this, void 0, void 0, function* () { + if (Ae()) + try { + return yield Nt(n, t, r, o, c); + } catch {} + return (function (f, _, v, b, S) { + const I = f.width, + L = f.height; + (or && cr) || + ((or = new OffscreenCanvas(I, L)), + (cr = or.getContext("2d", { willReadFrequently: !0 }))), + (or.width = I), + (or.height = L), + cr.drawImage(f, 0, 0, I, L); + const F = cr.getImageData(_, v, b, S); + return cr.clearRect(0, 0, I, L), F.data; + })(n, t, r, o, c); + }); + }), + (T.cP = S_), + (T.cQ = O), + (T.cR = B_), + (T.cS = ec), + (T.cT = qs), + (T.cU = function (n, t) { + const r = new Map(); + if (n != null) + if (n.type === "Feature") r.set(Au(n, t), n); + else for (const o of n.features) r.set(Au(o, t), o); + return r; + }), + (T.cV = function (n, t) { + if (n == null) return !0; + if (n.type === "Feature") return Au(n, t) != null; + if (n.type === "FeatureCollection") { + const r = new Set(); + for (const o of n.features) { + const c = Au(o, t); + if (c == null || r.has(c)) return !1; + r.add(c); + } + return !0; + } + return !1; + }), + (T.cW = function (n, t, r) { + var o, c, f, _; + if ((t.removeAll && n.clear(), t.remove)) + for (const v of t.remove) n.delete(v); + if (t.add) + for (const v of t.add) { + const b = Au(v, r); + b != null && n.set(b, v); + } + if (t.update) + for (const v of t.update) { + let b = n.get(v.id); + if (b == null) continue; + const S = + !v.removeAllProperties && + (((o = v.removeProperties) === null || o === void 0 + ? void 0 + : o.length) > 0 || + ((c = v.addOrUpdateProperties) === null || c === void 0 + ? void 0 + : c.length) > 0); + if ( + ((v.newGeometry || v.removeAllProperties || S) && + ((b = Object.assign({}, b)), + n.set(v.id, b), + S && (b.properties = Object.assign({}, b.properties))), + v.newGeometry && (b.geometry = v.newGeometry), + v.removeAllProperties) + ) + b.properties = {}; + else if ( + ((f = v.removeProperties) === null || f === void 0 + ? void 0 + : f.length) > 0 + ) + for (const I of v.removeProperties) + Object.prototype.hasOwnProperty.call(b.properties, I) && + delete b.properties[I]; + if ( + ((_ = v.addOrUpdateProperties) === null || _ === void 0 + ? void 0 + : _.length) > 0 + ) + for (const { + key: I, + value: L, + } of v.addOrUpdateProperties) + b.properties[I] = L; + } + }), + (T.cX = Ea), + (T.ca = function (n, t) { + return ( + (n[0] = t[0]), + (n[1] = t[1]), + (n[2] = t[2]), + (n[3] = t[3]), + (n[4] = t[4]), + (n[5] = t[5]), + (n[6] = t[6]), + (n[7] = t[7]), + (n[8] = t[8]), + (n[9] = t[9]), + (n[10] = t[10]), + (n[11] = t[11]), + (n[12] = t[12]), + (n[13] = t[13]), + (n[14] = t[14]), + (n[15] = t[15]), + n + ); + }), + (T.cb = (n) => n.type === "symbol"), + (T.cc = (n) => n.type === "circle"), + (T.cd = (n) => n.type === "heatmap"), + (T.ce = (n) => n.type === "line"), + (T.cf = (n) => n.type === "fill"), + (T.cg = (n) => n.type === "fill-extrusion"), + (T.ch = (n) => n.type === "hillshade"), + (T.ci = (n) => n.type === "color-relief"), + (T.cj = (n) => n.type === "raster"), + (T.ck = (n) => n.type === "background"), + (T.cl = (n) => n.type === "custom"), + (T.cm = ct), + (T.cn = function (n, t, r) { + const o = he(t.x - r.x, t.y - r.y), + c = he(n.x - r.x, n.y - r.y); + var f, _; + return hr( + Math.atan2( + o[0] * c[1] - o[1] * c[0], + (f = o)[0] * (_ = c)[0] + f[1] * _[1] + ) + ); + }), + (T.co = It), + (T.cp = function (n, t) { + return ( + Ir[t] && (n instanceof MouseEvent || n instanceof WheelEvent) + ); + }), + (T.cq = function (n, t) { + return _r[t] && "touches" in n; + }), + (T.cr = function (n) { + return _r[n] || Ir[n]; + }), + (T.cs = function (n, t, r) { + var o = t[0], + c = t[1]; + return ( + (n[0] = r[0] * o + r[4] * c + r[12]), + (n[1] = r[1] * o + r[5] * c + r[13]), + n + ); + }), + (T.ct = function (n, t) { + const { x: r, y: o } = ku.fromLngLat(t); + return !(n < 0 || n > 25 || o < 0 || o >= 1 || r < 0 || r >= 1); + }), + (T.cu = function (n, t) { + return ( + (n[0] = t[0]), + (n[1] = 0), + (n[2] = 0), + (n[3] = 0), + (n[4] = 0), + (n[5] = t[1]), + (n[6] = 0), + (n[7] = 0), + (n[8] = 0), + (n[9] = 0), + (n[10] = t[2]), + (n[11] = 0), + (n[12] = 0), + (n[13] = 0), + (n[14] = 0), + (n[15] = 1), + n + ); + }), + (T.cv = class extends ds {}), + (T.cw = z1), + (T.cy = function (n) { + return n.message === qr; + }), + (T.cz = ie), + (T.d = Me), + (T.e = dt), + (T.f = (n) => + s(void 0, void 0, void 0, function* () { + if (n.byteLength === 0) + return createImageBitmap(new ImageData(1, 1)); + const t = new Blob([new Uint8Array(n)], { + type: "image/png", + }); + try { + return createImageBitmap(t); + } catch (r) { + throw new Error( + `Could not load image because of ${r.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.` + ); + } + })), + (T.g = U), + (T.h = (n) => + new Promise((t, r) => { + const o = new Image(); + (o.onload = () => { + t(o), + URL.revokeObjectURL(o.src), + (o.onload = null), + window.requestAnimationFrame(() => { + o.src = Ot; + }); + }), + (o.onerror = () => + r( + 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 c = new Blob([new Uint8Array(n)], { + type: "image/png", + }); + o.src = n.byteLength ? URL.createObjectURL(c) : Ot; + })), + (T.i = $t), + (T.j = (n, t) => Se(dt(n, { type: "json" }), t)), + (T.k = Ke), + (T.l = ut), + (T.m = Se), + (T.n = (n, t) => Se(dt(n, { type: "arrayBuffer" }), t)), + (T.o = function (n) { + return new cf(n).readFields(n1, []); + }), + (T.p = Y_), + (T.q = vu), + (T.r = Ui), + (T.s = Vr), + (T.t = bd), + (T.u = hn), + (T.v = ye), + (T.w = Lt), + (T.x = jp), + (T.y = Xs), + (T.z = ls); + }), + M("worker", ["./shared"], function (T) { + class s { + constructor(V) { + (this.keyCache = {}), V && this.replace(V); + } + replace(V) { + (this._layerConfigs = {}), + (this._layers = {}), + this.update(V, []); + } + update(V, U) { + for (const ie of V) { + this._layerConfigs[ie.id] = ie; + const pe = (this._layers[ie.id] = T.bJ(ie)); + (pe._featureFilter = T.aa(pe.filter)), + this.keyCache[ie.id] && delete this.keyCache[ie.id]; + } + for (const ie of U) + delete this.keyCache[ie], + delete this._layerConfigs[ie], + delete this._layers[ie]; + this.familiesBySource = {}; + const Y = T.cC( + Object.values(this._layerConfigs), + this.keyCache + ); + for (const ie of Y) { + const pe = ie.map((Ke) => this._layers[Ke.id]), + Se = pe[0]; + if (Se.visibility === "none") continue; + const Me = Se.source || ""; + let we = this.familiesBySource[Me]; + we || (we = this.familiesBySource[Me] = {}); + const Ve = Se.sourceLayer || "_geojsonTileLayer"; + let ut = we[Ve]; + ut || (ut = we[Ve] = []), ut.push(pe); + } + } + } + class B { + constructor(V) { + const U = {}, + Y = []; + for (const Me in V) { + const we = V[Me], + Ve = (U[Me] = {}); + for (const ut in we) { + const Ke = we[+ut]; + if ( + !Ke || + Ke.bitmap.width === 0 || + Ke.bitmap.height === 0 + ) + continue; + const kt = { + x: 0, + y: 0, + w: Ke.bitmap.width + 2, + h: Ke.bitmap.height + 2, + }; + Y.push(kt), (Ve[ut] = { rect: kt, metrics: Ke.metrics }); + } + } + const { w: ie, h: pe } = T.p(Y), + Se = new T.q({ width: ie || 1, height: pe || 1 }); + for (const Me in V) { + const we = V[Me]; + for (const Ve in we) { + const ut = we[+Ve]; + if ( + !ut || + ut.bitmap.width === 0 || + ut.bitmap.height === 0 + ) + continue; + const Ke = U[Me][Ve].rect; + T.q.copy( + ut.bitmap, + Se, + { x: 0, y: 0 }, + { x: Ke.x + 1, y: Ke.y + 1 }, + ut.bitmap + ); + } + } + (this.image = Se), (this.positions = U); + } + } + T.cD("GlyphAtlas", B); + class O { + constructor(V) { + (this.tileID = new T.Z( + V.tileID.overscaledZ, + V.tileID.wrap, + V.tileID.canonical.z, + V.tileID.canonical.x, + V.tileID.canonical.y + )), + (this.uid = V.uid), + (this.zoom = V.zoom), + (this.pixelRatio = V.pixelRatio), + (this.tileSize = V.tileSize), + (this.source = V.source), + (this.overscaling = this.tileID.overscaleFactor()), + (this.showCollisionBoxes = V.showCollisionBoxes), + (this.collectResourceTiming = !!V.collectResourceTiming), + (this.returnDependencies = !!V.returnDependencies), + (this.promoteId = V.promoteId), + (this.inFlightDependencies = []), + (this.globalState = V.globalState); + } + parse(V, U, Y, ie, pe) { + return T._(this, void 0, void 0, function* () { + (this.status = "parsing"), + (this.data = V), + (this.collisionBoxArray = new T.a8()); + const Se = new T.cE(Object.keys(V.layers).sort()), + Me = new T.cF(this.tileID, this.promoteId); + Me.bucketLayerIDs = []; + const we = {}, + Ve = { + featureIndex: Me, + iconDependencies: {}, + patternDependencies: {}, + glyphDependencies: {}, + availableImages: Y, + subdivisionGranularity: pe, + }, + ut = U.familiesBySource[this.source]; + for (const Vt in ut) { + const Et = V.layers[Vt]; + if (!Et) continue; + Et.version === 1 && + T.w( + `Vector tile source "${this.source}" layer "${Vt}" does not use vector tile spec v2 and therefore may have some rendering errors.` + ); + const dr = Se.encode(Vt), + ht = []; + for (let Xr = 0; Xr < Et.length; Xr++) { + const Yr = Et.feature(Xr), + Zr = Me.getId(Yr, Vt); + ht.push({ + feature: Yr, + id: Zr, + index: Xr, + sourceLayerIndex: dr, + }); + } + for (const Xr of ut[Vt]) { + const Yr = Xr[0]; + Yr.source !== this.source && + T.w( + `layer.source = ${Yr.source} does not equal this.source = ${this.source}` + ), + (Yr.minzoom && this.zoom < Math.floor(Yr.minzoom)) || + (Yr.maxzoom && this.zoom >= Yr.maxzoom) || + (Yr.visibility !== "none" && + (X(Xr, this.zoom, Y), + (we[Yr.id] = Yr.createBucket({ + index: Me.bucketLayerIDs.length, + layers: Xr, + zoom: this.zoom, + pixelRatio: this.pixelRatio, + overscaling: this.overscaling, + collisionBoxArray: this.collisionBoxArray, + sourceLayerIndex: dr, + sourceID: this.source, + globalState: this.globalState, + })).populate(ht, Ve, this.tileID.canonical), + Me.bucketLayerIDs.push(Xr.map((Zr) => Zr.id)))); + } + } + const Ke = T.bN(Ve.glyphDependencies, (Vt) => + Object.keys(Vt).map(Number) + ); + this.inFlightDependencies.forEach((Vt) => + Vt == null ? void 0 : Vt.abort() + ), + (this.inFlightDependencies = []); + let kt = Promise.resolve({}); + if (Object.keys(Ke).length) { + const Vt = new AbortController(); + this.inFlightDependencies.push(Vt), + (kt = ie.sendAsync( + { + type: "GG", + data: { + stacks: Ke, + source: this.source, + tileID: this.tileID, + type: "glyphs", + }, + }, + Vt + )); + } + const ye = Object.keys(Ve.iconDependencies); + let Bt = Promise.resolve({}); + if (ye.length) { + const Vt = new AbortController(); + this.inFlightDependencies.push(Vt), + (Bt = ie.sendAsync( + { + type: "GI", + data: { + icons: ye, + source: this.source, + tileID: this.tileID, + type: "icons", + }, + }, + Vt + )); + } + const rr = Object.keys(Ve.patternDependencies); + let Kt = Promise.resolve({}); + if (rr.length) { + const Vt = new AbortController(); + this.inFlightDependencies.push(Vt), + (Kt = ie.sendAsync( + { + type: "GI", + data: { + icons: rr, + source: this.source, + tileID: this.tileID, + type: "patterns", + }, + }, + Vt + )); + } + const [gr, Ur, nn] = yield Promise.all([kt, Bt, Kt]), + mn = new B(gr), + _n = new T.cG(Ur, nn); + for (const Vt in we) { + const Et = we[Vt]; + Et instanceof T.a9 + ? (X(Et.layers, this.zoom, Y), + T.cH({ + bucket: Et, + glyphMap: gr, + glyphPositions: mn.positions, + imageMap: Ur, + imagePositions: _n.iconPositions, + showCollisionBoxes: this.showCollisionBoxes, + canonical: this.tileID.canonical, + subdivisionGranularity: Ve.subdivisionGranularity, + })) + : Et.hasPattern && + (Et instanceof T.cI || + Et instanceof T.cJ || + Et instanceof T.cK) && + (X(Et.layers, this.zoom, Y), + Et.addFeatures( + Ve, + this.tileID.canonical, + _n.patternPositions + )); + } + return ( + (this.status = "done"), + { + buckets: Object.values(we).filter( + (Vt) => !Vt.isEmpty() + ), + featureIndex: Me, + collisionBoxArray: this.collisionBoxArray, + glyphAtlasImage: mn.image, + imageAtlas: _n, + glyphMap: this.returnDependencies ? gr : null, + iconMap: this.returnDependencies ? Ur : null, + glyphPositions: this.returnDependencies + ? mn.positions + : null, + } + ); + }); + } + } + function X(ue, V, U) { + const Y = new T.F(V); + for (const ie of ue) ie.recalculate(Y, U); + } + class K { + constructor(V, U, Y) { + (this.actor = V), + (this.layerIndex = U), + (this.availableImages = Y), + (this.fetching = {}), + (this.loading = {}), + (this.loaded = {}); + } + loadVectorTile(V, U) { + return T._(this, void 0, void 0, function* () { + const Y = yield T.n(V.request, U); + try { + return { + vectorTile: new T.cL(new T.cM(Y.data)), + rawData: Y.data, + cacheControl: Y.cacheControl, + expires: Y.expires, + }; + } catch (ie) { + const pe = new Uint8Array(Y.data); + let Se = `Unable to parse the tile at ${V.request.url}, `; + throw ( + ((Se += + pe[0] === 31 && pe[1] === 139 + ? "please make sure the data is not gzipped and that you have configured the relevant header in the server" + : `got error: ${ie.message}`), + new Error(Se)) + ); + } + }); + } + loadTile(V) { + return T._(this, void 0, void 0, function* () { + const U = V.uid, + Y = + !!(V && V.request && V.request.collectResourceTiming) && + new T.cN(V.request), + ie = new O(V); + this.loading[U] = ie; + const pe = new AbortController(); + ie.abort = pe; + try { + const Se = yield this.loadVectorTile(V, pe); + if ((delete this.loading[U], !Se)) return null; + const Me = Se.rawData, + we = {}; + Se.expires && (we.expires = Se.expires), + Se.cacheControl && (we.cacheControl = Se.cacheControl); + const Ve = {}; + if (Y) { + const Ke = Y.finish(); + Ke && + (Ve.resourceTiming = JSON.parse(JSON.stringify(Ke))); + } + ie.vectorTile = Se.vectorTile; + const ut = ie.parse( + Se.vectorTile, + this.layerIndex, + this.availableImages, + this.actor, + V.subdivisionGranularity + ); + (this.loaded[U] = ie), + (this.fetching[U] = { + rawTileData: Me, + cacheControl: we, + resourceTiming: Ve, + }); + try { + const Ke = yield ut; + return T.e({ rawTileData: Me.slice(0) }, Ke, we, Ve); + } finally { + delete this.fetching[U]; + } + } catch (Se) { + throw ( + (delete this.loading[U], + (ie.status = "done"), + (this.loaded[U] = ie), + Se) + ); + } + }); + } + reloadTile(V) { + return T._(this, void 0, void 0, function* () { + const U = V.uid; + if (!this.loaded || !this.loaded[U]) + throw new Error( + "Should not be trying to reload a tile that was never loaded or has been removed" + ); + const Y = this.loaded[U]; + if ( + ((Y.showCollisionBoxes = V.showCollisionBoxes), + (Y.globalState = V.globalState), + Y.status === "parsing") + ) { + const ie = yield Y.parse( + Y.vectorTile, + this.layerIndex, + this.availableImages, + this.actor, + V.subdivisionGranularity + ); + let pe; + if (this.fetching[U]) { + const { + rawTileData: Se, + cacheControl: Me, + resourceTiming: we, + } = this.fetching[U]; + delete this.fetching[U], + (pe = T.e({ rawTileData: Se.slice(0) }, ie, Me, we)); + } else pe = ie; + return pe; + } + if (Y.status === "done" && Y.vectorTile) + return Y.parse( + Y.vectorTile, + this.layerIndex, + this.availableImages, + this.actor, + V.subdivisionGranularity + ); + }); + } + abortTile(V) { + return T._(this, void 0, void 0, function* () { + const U = this.loading, + Y = V.uid; + U && + U[Y] && + U[Y].abort && + (U[Y].abort.abort(), delete U[Y]); + }); + } + removeTile(V) { + return T._(this, void 0, void 0, function* () { + this.loaded && + this.loaded[V.uid] && + delete this.loaded[V.uid]; + }); + } + } + class ne { + constructor() { + this.loaded = {}; + } + loadTile(V) { + return T._(this, void 0, void 0, function* () { + const { + uid: U, + encoding: Y, + rawImageData: ie, + redFactor: pe, + greenFactor: Se, + blueFactor: Me, + baseShift: we, + } = V, + Ve = ie.width + 2, + ut = ie.height + 2, + Ke = T.b(ie) + ? new T.R( + { width: Ve, height: ut }, + yield T.cO(ie, -1, -1, Ve, ut) + ) + : ie, + kt = new T.cP(U, Ke, Y, pe, Se, Me, we); + return ( + (this.loaded = this.loaded || {}), + (this.loaded[U] = kt), + kt + ); + }); + } + removeTile(V) { + const U = this.loaded, + Y = V.uid; + U && U[Y] && delete U[Y]; + } + } + var H, + fe, + ge = (function () { + if (fe) return H; + function ue(U, Y) { + if (U.length !== 0) { + V(U[0], Y); + for (var ie = 1; ie < U.length; ie++) V(U[ie], !Y); + } + } + function V(U, Y) { + for ( + var ie = 0, pe = 0, Se = 0, Me = U.length, we = Me - 1; + Se < Me; + we = Se++ + ) { + var Ve = (U[Se][0] - U[we][0]) * (U[we][1] + U[Se][1]), + ut = ie + Ve; + (pe += + Math.abs(ie) >= Math.abs(Ve) + ? ie - ut + Ve + : Ve - ut + ie), + (ie = ut); + } + ie + pe >= 0 != !!Y && U.reverse(); + } + return ( + (fe = 1), + (H = function U(Y, ie) { + var pe, + Se = Y && Y.type; + if (Se === "FeatureCollection") + for (pe = 0; pe < Y.features.length; pe++) + U(Y.features[pe], ie); + else if (Se === "GeometryCollection") + for (pe = 0; pe < Y.geometries.length; pe++) + U(Y.geometries[pe], ie); + else if (Se === "Feature") U(Y.geometry, ie); + else if (Se === "Polygon") ue(Y.coordinates, ie); + else if (Se === "MultiPolygon") + for (pe = 0; pe < Y.coordinates.length; pe++) + ue(Y.coordinates[pe], ie); + return Y; + }) + ); + })(), + Ie = T.cQ(ge); + class Ae extends T.cS { + constructor(V, U) { + super(new T.cM(), 0, U, [], []), + (this.feature = V), + (this.type = V.type), + (this.properties = V.tags ? V.tags : {}), + "id" in V && + (typeof V.id == "string" + ? (this.id = parseInt(V.id, 10)) + : typeof V.id != "number" || + isNaN(V.id) || + (this.id = V.id)); + } + loadGeometry() { + const V = [], + U = + this.feature.type === 1 + ? [this.feature.geometry] + : this.feature.geometry; + for (const Y of U) { + const ie = []; + for (const pe of Y) ie.push(new T.P(pe[0], pe[1])); + V.push(ie); + } + return V; + } + } + class De extends T.cR { + constructor(V, U) { + super(new T.cM()), + (this.layers = { _geojsonTileLayer: this }), + (this.name = "_geojsonTileLayer"), + (this.version = U ? U.version : 1), + (this.extent = U ? U.extent : 4096), + (this.length = V.length), + (this.features = V); + } + feature(V) { + return new Ae(this.features[V], this.extent); + } + } + function Ee(ue, V) { + V.writeVarintField(15, ue.version || 1), + V.writeStringField(1, ue.name || ""), + V.writeVarintField(5, ue.extent || 4096); + const U = { + keys: [], + values: [], + keycache: {}, + valuecache: {}, + }; + for (let pe = 0; pe < ue.length; pe++) + (U.feature = ue.feature(pe)), V.writeMessage(2, Fe, U); + const Y = U.keys; + for (const pe of Y) V.writeStringField(3, pe); + const ie = U.values; + for (const pe of ie) V.writeMessage(4, Qe, pe); + } + function Fe(ue, V) { + if (!ue.feature) return; + const U = ue.feature; + U.id !== void 0 && V.writeVarintField(1, U.id), + V.writeMessage(2, $e, ue), + V.writeVarintField(3, U.type), + V.writeMessage(4, Ze, U); + } + function $e(ue, V) { + var U; + for (const Y in (U = ue.feature) == null + ? void 0 + : U.properties) { + let ie = ue.feature.properties[Y], + pe = ue.keycache[Y]; + if (ie === null) continue; + pe === void 0 && + (ue.keys.push(Y), + (pe = ue.keys.length - 1), + (ue.keycache[Y] = pe)), + V.writeVarint(pe), + typeof ie != "string" && + typeof ie != "boolean" && + typeof ie != "number" && + (ie = JSON.stringify(ie)); + const Se = typeof ie + ":" + ie; + let Me = ue.valuecache[Se]; + Me === void 0 && + (ue.values.push(ie), + (Me = ue.values.length - 1), + (ue.valuecache[Se] = Me)), + V.writeVarint(Me); + } + } + function Je(ue, V) { + return (V << 3) + (7 & ue); + } + function qe(ue) { + return (ue << 1) ^ (ue >> 31); + } + function Ze(ue, V) { + const U = ue.loadGeometry(), + Y = ue.type; + let ie = 0, + pe = 0; + for (const Se of U) { + let Me = 1; + Y === 1 && (Me = Se.length), V.writeVarint(Je(1, Me)); + const we = Y === 3 ? Se.length - 1 : Se.length; + for (let Ve = 0; Ve < we; Ve++) { + Ve === 1 && Y !== 1 && V.writeVarint(Je(2, we - 1)); + const ut = Se[Ve].x - ie, + Ke = Se[Ve].y - pe; + V.writeVarint(qe(ut)), + V.writeVarint(qe(Ke)), + (ie += ut), + (pe += Ke); + } + ue.type === 3 && V.writeVarint(Je(7, 1)); + } + } + function Qe(ue, V) { + const U = typeof ue; + U === "string" + ? V.writeStringField(1, ue) + : U === "boolean" + ? V.writeBooleanField(7, ue) + : U === "number" && + (ue % 1 != 0 + ? V.writeDoubleField(3, ue) + : ue < 0 + ? V.writeSVarintField(6, ue) + : V.writeVarintField(5, ue)); + } + const Le = { + minZoom: 0, + maxZoom: 16, + minPoints: 2, + radius: 40, + extent: 512, + nodeSize: 64, + log: !1, + generateId: !1, + reduce: null, + map: (ue) => ue, + }, + et = + Math.fround || + ((nt = new Float32Array(1)), (ue) => ((nt[0] = +ue), nt[0])); + var nt; + class Ue { + constructor(V) { + (this.options = Object.assign(Object.create(Le), V)), + (this.trees = new Array(this.options.maxZoom + 1)), + (this.stride = this.options.reduce ? 7 : 6), + (this.clusterProps = []); + } + load(V) { + const { log: U, minZoom: Y, maxZoom: ie } = this.options; + U && console.time("total time"); + const pe = `prepare ${V.length} points`; + U && console.time(pe), (this.points = V); + const Se = []; + for (let we = 0; we < V.length; we++) { + const Ve = V[we]; + if (!Ve.geometry) continue; + const [ut, Ke] = Ve.geometry.coordinates, + kt = et(ee(ut)), + ye = et(re(Ke)); + Se.push(kt, ye, 1 / 0, we, -1, 1), + this.options.reduce && Se.push(0); + } + let Me = (this.trees[ie + 1] = this._createTree(Se)); + U && console.timeEnd(pe); + for (let we = ie; we >= Y; we--) { + const Ve = +Date.now(); + (Me = this.trees[we] = + this._createTree(this._cluster(Me, we))), + U && + console.log( + "z%d: %d clusters in %dms", + we, + Me.numItems, + +Date.now() - Ve + ); + } + return U && console.timeEnd("total time"), this; + } + getClusters(V, U) { + let Y = ((((V[0] + 180) % 360) + 360) % 360) - 180; + const ie = Math.max(-90, Math.min(90, V[1])); + let pe = + V[2] === 180 + ? 180 + : ((((V[2] + 180) % 360) + 360) % 360) - 180; + const Se = Math.max(-90, Math.min(90, V[3])); + if (V[2] - V[0] >= 360) (Y = -180), (pe = 180); + else if (Y > pe) { + const Ke = this.getClusters([Y, ie, 180, Se], U), + kt = this.getClusters([-180, ie, pe, Se], U); + return Ke.concat(kt); + } + const Me = this.trees[this._limitZoom(U)], + we = Me.range(ee(Y), re(Se), ee(pe), re(ie)), + Ve = Me.data, + ut = []; + for (const Ke of we) { + const kt = this.stride * Ke; + ut.push( + Ve[kt + 5] > 1 + ? ke(Ve, kt, this.clusterProps) + : this.points[Ve[kt + 3]] + ); + } + return ut; + } + getChildren(V) { + const U = this._getOriginId(V), + Y = this._getOriginZoom(V), + ie = "No cluster with the specified id.", + pe = this.trees[Y]; + if (!pe) throw new Error(ie); + const Se = pe.data; + if (U * this.stride >= Se.length) throw new Error(ie); + const Me = + this.options.radius / + (this.options.extent * Math.pow(2, Y - 1)), + we = pe.within( + Se[U * this.stride], + Se[U * this.stride + 1], + Me + ), + Ve = []; + for (const ut of we) { + const Ke = ut * this.stride; + Se[Ke + 4] === V && + Ve.push( + Se[Ke + 5] > 1 + ? ke(Se, Ke, this.clusterProps) + : this.points[Se[Ke + 3]] + ); + } + if (Ve.length === 0) throw new Error(ie); + return Ve; + } + getLeaves(V, U, Y) { + const ie = []; + return ( + this._appendLeaves(ie, V, (U = U || 10), (Y = Y || 0), 0), + ie + ); + } + getTile(V, U, Y) { + const ie = this.trees[this._limitZoom(V)], + pe = Math.pow(2, V), + { extent: Se, radius: Me } = this.options, + we = Me / Se, + Ve = (Y - we) / pe, + ut = (Y + 1 + we) / pe, + Ke = { features: [] }; + return ( + this._addTileFeatures( + ie.range((U - we) / pe, Ve, (U + 1 + we) / pe, ut), + ie.data, + U, + Y, + pe, + Ke + ), + U === 0 && + this._addTileFeatures( + ie.range(1 - we / pe, Ve, 1, ut), + ie.data, + pe, + Y, + pe, + Ke + ), + U === pe - 1 && + this._addTileFeatures( + ie.range(0, Ve, we / pe, ut), + ie.data, + -1, + Y, + pe, + Ke + ), + Ke.features.length ? Ke : null + ); + } + getClusterExpansionZoom(V) { + let U = this._getOriginZoom(V) - 1; + for (; U <= this.options.maxZoom; ) { + const Y = this.getChildren(V); + if ((U++, Y.length !== 1)) break; + V = Y[0].properties.cluster_id; + } + return U; + } + _appendLeaves(V, U, Y, ie, pe) { + const Se = this.getChildren(U); + for (const Me of Se) { + const we = Me.properties; + if ( + (we && we.cluster + ? pe + we.point_count <= ie + ? (pe += we.point_count) + : (pe = this._appendLeaves( + V, + we.cluster_id, + Y, + ie, + pe + )) + : pe < ie + ? pe++ + : V.push(Me), + V.length === Y) + ) + break; + } + return pe; + } + _createTree(V) { + const U = new T.aI( + (V.length / this.stride) | 0, + this.options.nodeSize, + Float32Array + ); + for (let Y = 0; Y < V.length; Y += this.stride) + U.add(V[Y], V[Y + 1]); + return U.finish(), (U.data = V), U; + } + _addTileFeatures(V, U, Y, ie, pe, Se) { + for (const Me of V) { + const we = Me * this.stride, + Ve = U[we + 5] > 1; + let ut, Ke, kt; + if (Ve) + (ut = vt(U, we, this.clusterProps)), + (Ke = U[we]), + (kt = U[we + 1]); + else { + const rr = this.points[U[we + 3]]; + ut = rr.properties; + const [Kt, gr] = rr.geometry.coordinates; + (Ke = ee(Kt)), (kt = re(gr)); + } + const ye = { + type: 1, + geometry: [ + [ + Math.round(this.options.extent * (Ke * pe - Y)), + Math.round(this.options.extent * (kt * pe - ie)), + ], + ], + tags: ut, + }; + let Bt; + (Bt = + Ve || this.options.generateId + ? U[we + 3] + : this.points[U[we + 3]].id), + Bt !== void 0 && (ye.id = Bt), + Se.features.push(ye); + } + } + _limitZoom(V) { + return Math.max( + this.options.minZoom, + Math.min(Math.floor(+V), this.options.maxZoom + 1) + ); + } + _cluster(V, U) { + const { + radius: Y, + extent: ie, + reduce: pe, + minPoints: Se, + } = this.options, + Me = Y / (ie * Math.pow(2, U)), + we = V.data, + Ve = [], + ut = this.stride; + for (let Ke = 0; Ke < we.length; Ke += ut) { + if (we[Ke + 2] <= U) continue; + we[Ke + 2] = U; + const kt = we[Ke], + ye = we[Ke + 1], + Bt = V.within(we[Ke], we[Ke + 1], Me), + rr = we[Ke + 5]; + let Kt = rr; + for (const gr of Bt) { + const Ur = gr * ut; + we[Ur + 2] > U && (Kt += we[Ur + 5]); + } + if (Kt > rr && Kt >= Se) { + let gr, + Ur = kt * rr, + nn = ye * rr, + mn = -1; + const _n = + ((Ke / ut) << 5) + (U + 1) + this.points.length; + for (const Vt of Bt) { + const Et = Vt * ut; + if (we[Et + 2] <= U) continue; + we[Et + 2] = U; + const dr = we[Et + 5]; + (Ur += we[Et] * dr), + (nn += we[Et + 1] * dr), + (we[Et + 4] = _n), + pe && + (gr || + ((gr = this._map(we, Ke, !0)), + (mn = this.clusterProps.length), + this.clusterProps.push(gr)), + pe(gr, this._map(we, Et))); + } + (we[Ke + 4] = _n), + Ve.push(Ur / Kt, nn / Kt, 1 / 0, _n, -1, Kt), + pe && Ve.push(mn); + } else { + for (let gr = 0; gr < ut; gr++) Ve.push(we[Ke + gr]); + if (Kt > 1) + for (const gr of Bt) { + const Ur = gr * ut; + if (!(we[Ur + 2] <= U)) { + we[Ur + 2] = U; + for (let nn = 0; nn < ut; nn++) + Ve.push(we[Ur + nn]); + } + } + } + } + return Ve; + } + _getOriginId(V) { + return (V - this.points.length) >> 5; + } + _getOriginZoom(V) { + return (V - this.points.length) % 32; + } + _map(V, U, Y) { + if (V[U + 5] > 1) { + const Se = this.clusterProps[V[U + 6]]; + return Y ? Object.assign({}, Se) : Se; + } + const ie = this.points[V[U + 3]].properties, + pe = this.options.map(ie); + return Y && pe === ie ? Object.assign({}, pe) : pe; + } + } + function ke(ue, V, U) { + return { + type: "Feature", + id: ue[V + 3], + properties: vt(ue, V, U), + geometry: { + type: "Point", + coordinates: [ + ((Y = ue[V]), 360 * (Y - 0.5)), + he(ue[V + 1]), + ], + }, + }; + var Y; + } + function vt(ue, V, U) { + const Y = ue[V + 5], + ie = + Y >= 1e4 + ? `${Math.round(Y / 1e3)}k` + : Y >= 1e3 + ? Math.round(Y / 100) / 10 + "k" + : Y, + pe = ue[V + 6], + Se = pe === -1 ? {} : Object.assign({}, U[pe]); + return Object.assign(Se, { + cluster: !0, + cluster_id: ue[V + 3], + point_count: Y, + point_count_abbreviated: ie, + }); + } + function ee(ue) { + return ue / 360 + 0.5; + } + function re(ue) { + const V = Math.sin((ue * Math.PI) / 180), + U = 0.5 - (0.25 * Math.log((1 + V) / (1 - V))) / Math.PI; + return U < 0 ? 0 : U > 1 ? 1 : U; + } + function he(ue) { + const V = ((180 - 360 * ue) * Math.PI) / 180; + return (360 * Math.atan(Math.exp(V))) / Math.PI - 90; + } + function oe(ue, V, U, Y) { + let ie = Y; + const pe = V + ((U - V) >> 1); + let Se, + Me = U - V; + const we = ue[V], + Ve = ue[V + 1], + ut = ue[U], + Ke = ue[U + 1]; + for (let kt = V + 3; kt < U; kt += 3) { + const ye = ze(ue[kt], ue[kt + 1], we, Ve, ut, Ke); + if (ye > ie) (Se = kt), (ie = ye); + else if (ye === ie) { + const Bt = Math.abs(kt - pe); + Bt < Me && ((Se = kt), (Me = Bt)); + } + } + ie > Y && + (Se - V > 3 && oe(ue, V, Se, Y), + (ue[Se + 2] = ie), + U - Se > 3 && oe(ue, Se, U, Y)); + } + function ze(ue, V, U, Y, ie, pe) { + let Se = ie - U, + Me = pe - Y; + if (Se !== 0 || Me !== 0) { + const we = + ((ue - U) * Se + (V - Y) * Me) / (Se * Se + Me * Me); + we > 1 + ? ((U = ie), (Y = pe)) + : we > 0 && ((U += Se * we), (Y += Me * we)); + } + return (Se = ue - U), (Me = V - Y), Se * Se + Me * Me; + } + function je(ue, V, U, Y) { + const ie = { + id: ue ?? null, + type: V, + geometry: U, + tags: Y, + minX: 1 / 0, + minY: 1 / 0, + maxX: -1 / 0, + maxY: -1 / 0, + }; + if (V === "Point" || V === "MultiPoint" || V === "LineString") + pt(ie, U); + else if (V === "Polygon") pt(ie, U[0]); + else if (V === "MultiLineString") + for (const pe of U) pt(ie, pe); + else if (V === "MultiPolygon") + for (const pe of U) pt(ie, pe[0]); + return ie; + } + function pt(ue, V) { + for (let U = 0; U < V.length; U += 3) + (ue.minX = Math.min(ue.minX, V[U])), + (ue.minY = Math.min(ue.minY, V[U + 1])), + (ue.maxX = Math.max(ue.maxX, V[U])), + (ue.maxY = Math.max(ue.maxY, V[U + 1])); + } + function it(ue, V, U, Y) { + if (!V.geometry) return; + const ie = V.geometry.coordinates; + if (ie && ie.length === 0) return; + const pe = V.geometry.type, + Se = Math.pow(U.tolerance / ((1 << U.maxZoom) * U.extent), 2); + let Me = [], + we = V.id; + if ( + (U.promoteId + ? (we = V.properties[U.promoteId]) + : U.generateId && (we = Y || 0), + pe === "Point") + ) + ct(ie, Me); + else if (pe === "MultiPoint") for (const Ve of ie) ct(Ve, Me); + else if (pe === "LineString") It(ie, Me, Se, !1); + else if (pe === "MultiLineString") { + if (U.lineMetrics) { + for (const Ve of ie) + (Me = []), + It(Ve, Me, Se, !1), + ue.push(je(we, "LineString", Me, V.properties)); + return; + } + Dt(ie, Me, Se, !1); + } else if (pe === "Polygon") Dt(ie, Me, Se, !0); + else { + if (pe !== "MultiPolygon") { + if (pe === "GeometryCollection") { + for (const Ve of V.geometry.geometries) + it( + ue, + { id: we, geometry: Ve, properties: V.properties }, + U, + Y + ); + return; + } + throw new Error( + "Input data is not a valid GeoJSON object." + ); + } + for (const Ve of ie) { + const ut = []; + Dt(Ve, ut, Se, !0), Me.push(ut); + } + } + ue.push(je(we, pe, Me, V.properties)); + } + function ct(ue, V) { + V.push(at(ue[0]), dt(ue[1]), 0); + } + function It(ue, V, U, Y) { + let ie, + pe, + Se = 0; + for (let we = 0; we < ue.length; we++) { + const Ve = at(ue[we][0]), + ut = dt(ue[we][1]); + V.push(Ve, ut, 0), + we > 0 && + (Se += Y + ? (ie * ut - Ve * pe) / 2 + : Math.sqrt( + Math.pow(Ve - ie, 2) + Math.pow(ut - pe, 2) + )), + (ie = Ve), + (pe = ut); + } + const Me = V.length - 3; + (V[2] = 1), + oe(V, 0, Me, U), + (V[Me + 2] = 1), + (V.size = Math.abs(Se)), + (V.start = 0), + (V.end = V.size); + } + function Dt(ue, V, U, Y) { + for (let ie = 0; ie < ue.length; ie++) { + const pe = []; + It(ue[ie], pe, U, Y), V.push(pe); + } + } + function at(ue) { + return ue / 360 + 0.5; + } + function dt(ue) { + const V = Math.sin((ue * Math.PI) / 180), + U = 0.5 - (0.25 * Math.log((1 + V) / (1 - V))) / Math.PI; + return U < 0 ? 0 : U > 1 ? 1 : U; + } + function yt(ue, V, U, Y, ie, pe, Se, Me) { + if (((Y /= V), pe >= (U /= V) && Se < Y)) return ue; + if (Se < U || pe >= Y) return null; + const we = []; + for (const Ve of ue) { + const ut = Ve.geometry; + let Ke = Ve.type; + const kt = ie === 0 ? Ve.minX : Ve.minY, + ye = ie === 0 ? Ve.maxX : Ve.maxY; + if (kt >= U && ye < Y) { + we.push(Ve); + continue; + } + if (ye < U || kt >= Y) continue; + let Bt = []; + if (Ke === "Point" || Ke === "MultiPoint") + xt(ut, Bt, U, Y, ie); + else if (Ke === "LineString") + St(ut, Bt, U, Y, ie, !1, Me.lineMetrics); + else if (Ke === "MultiLineString") _t(ut, Bt, U, Y, ie, !1); + else if (Ke === "Polygon") _t(ut, Bt, U, Y, ie, !0); + else if (Ke === "MultiPolygon") + for (const rr of ut) { + const Kt = []; + _t(rr, Kt, U, Y, ie, !0), Kt.length && Bt.push(Kt); + } + if (Bt.length) { + if (Me.lineMetrics && Ke === "LineString") { + for (const rr of Bt) we.push(je(Ve.id, Ke, rr, Ve.tags)); + continue; + } + (Ke !== "LineString" && Ke !== "MultiLineString") || + (Bt.length === 1 + ? ((Ke = "LineString"), (Bt = Bt[0])) + : (Ke = "MultiLineString")), + (Ke !== "Point" && Ke !== "MultiPoint") || + (Ke = Bt.length === 3 ? "Point" : "MultiPoint"), + we.push(je(Ve.id, Ke, Bt, Ve.tags)); + } + } + return we.length ? we : null; + } + function xt(ue, V, U, Y, ie) { + for (let pe = 0; pe < ue.length; pe += 3) { + const Se = ue[pe + ie]; + Se >= U && Se <= Y && Lt(V, ue[pe], ue[pe + 1], ue[pe + 2]); + } + } + function St(ue, V, U, Y, ie, pe, Se) { + let Me = wt(ue); + const we = ie === 0 ? Rt : $t; + let Ve, + ut, + Ke = ue.start; + for (let Kt = 0; Kt < ue.length - 3; Kt += 3) { + const gr = ue[Kt], + Ur = ue[Kt + 1], + nn = ue[Kt + 2], + mn = ue[Kt + 3], + _n = ue[Kt + 4], + Vt = ie === 0 ? gr : Ur, + Et = ie === 0 ? mn : _n; + let dr = !1; + Se && + (Ve = Math.sqrt( + Math.pow(gr - mn, 2) + Math.pow(Ur - _n, 2) + )), + Vt < U + ? Et > U && + ((ut = we(Me, gr, Ur, mn, _n, U)), + Se && (Me.start = Ke + Ve * ut)) + : Vt > Y + ? Et < Y && + ((ut = we(Me, gr, Ur, mn, _n, Y)), + Se && (Me.start = Ke + Ve * ut)) + : Lt(Me, gr, Ur, nn), + Et < U && + Vt >= U && + ((ut = we(Me, gr, Ur, mn, _n, U)), (dr = !0)), + Et > Y && + Vt <= Y && + ((ut = we(Me, gr, Ur, mn, _n, Y)), (dr = !0)), + !pe && + dr && + (Se && (Me.end = Ke + Ve * ut), + V.push(Me), + (Me = wt(ue))), + Se && (Ke += Ve); + } + let kt = ue.length - 3; + const ye = ue[kt], + Bt = ue[kt + 1], + rr = ie === 0 ? ye : Bt; + rr >= U && rr <= Y && Lt(Me, ye, Bt, ue[kt + 2]), + (kt = Me.length - 3), + pe && + kt >= 3 && + (Me[kt] !== Me[0] || Me[kt + 1] !== Me[1]) && + Lt(Me, Me[0], Me[1], Me[2]), + Me.length && V.push(Me); + } + function wt(ue) { + const V = []; + return ( + (V.size = ue.size), (V.start = ue.start), (V.end = ue.end), V + ); + } + function _t(ue, V, U, Y, ie, pe) { + for (const Se of ue) St(Se, V, U, Y, ie, pe, !1); + } + function Lt(ue, V, U, Y) { + ue.push(V, U, Y); + } + function Rt(ue, V, U, Y, ie, pe) { + const Se = (pe - V) / (Y - V); + return Lt(ue, pe, U + (ie - U) * Se, 1), Se; + } + function $t(ue, V, U, Y, ie, pe) { + const Se = (pe - U) / (ie - U); + return Lt(ue, V + (Y - V) * Se, pe, 1), Se; + } + function tr(ue, V) { + const U = []; + for (let Y = 0; Y < ue.length; Y++) { + const ie = ue[Y], + pe = ie.type; + let Se; + if ( + pe === "Point" || + pe === "MultiPoint" || + pe === "LineString" + ) + Se = Qt(ie.geometry, V); + else if (pe === "MultiLineString" || pe === "Polygon") { + Se = []; + for (const Me of ie.geometry) Se.push(Qt(Me, V)); + } else if (pe === "MultiPolygon") { + Se = []; + for (const Me of ie.geometry) { + const we = []; + for (const Ve of Me) we.push(Qt(Ve, V)); + Se.push(we); + } + } + U.push(je(ie.id, pe, Se, ie.tags)); + } + return U; + } + function Qt(ue, V) { + const U = []; + (U.size = ue.size), + ue.start !== void 0 && + ((U.start = ue.start), (U.end = ue.end)); + for (let Y = 0; Y < ue.length; Y += 3) + U.push(ue[Y] + V, ue[Y + 1], ue[Y + 2]); + return U; + } + function Ot(ue, V) { + if (ue.transformed) return ue; + const U = 1 << ue.z, + Y = ue.x, + ie = ue.y; + for (const pe of ue.features) { + const Se = pe.geometry, + Me = pe.type; + if (((pe.geometry = []), Me === 1)) + for (let we = 0; we < Se.length; we += 2) + pe.geometry.push(Nt(Se[we], Se[we + 1], V, U, Y, ie)); + else + for (let we = 0; we < Se.length; we++) { + const Ve = []; + for (let ut = 0; ut < Se[we].length; ut += 2) + Ve.push(Nt(Se[we][ut], Se[we][ut + 1], V, U, Y, ie)); + pe.geometry.push(Ve); + } + } + return (ue.transformed = !0), ue; + } + function Nt(ue, V, U, Y, ie, pe) { + return [ + Math.round(U * (ue * Y - ie)), + Math.round(U * (V * Y - pe)), + ]; + } + function or(ue, V, U, Y, ie) { + const pe = + V === ie.maxZoom + ? 0 + : ie.tolerance / ((1 << V) * ie.extent), + Se = { + features: [], + numPoints: 0, + numSimplified: 0, + numFeatures: ue.length, + source: null, + x: U, + y: Y, + z: V, + transformed: !1, + minX: 2, + minY: 1, + maxX: -1, + maxY: 0, + }; + for (const Me of ue) cr(Se, Me, pe, ie); + return Se; + } + function cr(ue, V, U, Y) { + const ie = V.geometry, + pe = V.type, + Se = []; + if ( + ((ue.minX = Math.min(ue.minX, V.minX)), + (ue.minY = Math.min(ue.minY, V.minY)), + (ue.maxX = Math.max(ue.maxX, V.maxX)), + (ue.maxY = Math.max(ue.maxY, V.maxY)), + pe === "Point" || pe === "MultiPoint") + ) + for (let Me = 0; Me < ie.length; Me += 3) + Se.push(ie[Me], ie[Me + 1]), + ue.numPoints++, + ue.numSimplified++; + else if (pe === "LineString") Vr(Se, ie, ue, U, !1, !1); + else if (pe === "MultiLineString" || pe === "Polygon") + for (let Me = 0; Me < ie.length; Me++) + Vr(Se, ie[Me], ue, U, pe === "Polygon", Me === 0); + else if (pe === "MultiPolygon") + for (let Me = 0; Me < ie.length; Me++) { + const we = ie[Me]; + for (let Ve = 0; Ve < we.length; Ve++) + Vr(Se, we[Ve], ue, U, !0, Ve === 0); + } + if (Se.length) { + let Me = V.tags || null; + if (pe === "LineString" && Y.lineMetrics) { + Me = {}; + for (const Ve in V.tags) Me[Ve] = V.tags[Ve]; + (Me.mapbox_clip_start = ie.start / ie.size), + (Me.mapbox_clip_end = ie.end / ie.size); + } + const we = { + geometry: Se, + type: + pe === "Polygon" || pe === "MultiPolygon" + ? 3 + : pe === "LineString" || pe === "MultiLineString" + ? 2 + : 1, + tags: Me, + }; + V.id !== null && (we.id = V.id), ue.features.push(we); + } + } + function Vr(ue, V, U, Y, ie, pe) { + const Se = Y * Y; + if (Y > 0 && V.size < (ie ? Se : Y)) + return void (U.numPoints += V.length / 3); + const Me = []; + for (let we = 0; we < V.length; we += 3) + (Y === 0 || V[we + 2] > Se) && + (U.numSimplified++, Me.push(V[we], V[we + 1])), + U.numPoints++; + ie && + (function (we, Ve) { + let ut = 0; + for ( + let Ke = 0, kt = we.length, ye = kt - 2; + Ke < kt; + ye = Ke, Ke += 2 + ) + ut += (we[Ke] - we[ye]) * (we[Ke + 1] + we[ye + 1]); + if (ut > 0 === Ve) + for (let Ke = 0, kt = we.length; Ke < kt / 2; Ke += 2) { + const ye = we[Ke], + Bt = we[Ke + 1]; + (we[Ke] = we[kt - 2 - Ke]), + (we[Ke + 1] = we[kt - 1 - Ke]), + (we[kt - 2 - Ke] = ye), + (we[kt - 1 - Ke] = Bt); + } + })(Me, pe), + ue.push(Me); + } + const mr = { + maxZoom: 14, + indexMaxZoom: 5, + indexMaxPoints: 1e5, + tolerance: 3, + extent: 4096, + buffer: 64, + lineMetrics: !1, + promoteId: null, + generateId: !1, + debug: 0, + }; + class hr { + constructor(V, U) { + const Y = (U = this.options = + (function (pe, Se) { + for (const Me in Se) pe[Me] = Se[Me]; + return pe; + })(Object.create(mr), U)).debug; + if ( + (Y && console.time("preprocess data"), + U.maxZoom < 0 || U.maxZoom > 24) + ) + throw new Error("maxZoom should be in the 0-24 range"); + if (U.promoteId && U.generateId) + throw new Error( + "promoteId and generateId cannot be used together." + ); + let ie = (function (pe, Se) { + const Me = []; + if (pe.type === "FeatureCollection") + for (let we = 0; we < pe.features.length; we++) + it(Me, pe.features[we], Se, we); + else + it(Me, pe.type === "Feature" ? pe : { geometry: pe }, Se); + return Me; + })(V, U); + (this.tiles = {}), + (this.tileCoords = []), + Y && + (console.timeEnd("preprocess data"), + console.log( + "index: maxZoom: %d, maxPoints: %d", + U.indexMaxZoom, + U.indexMaxPoints + ), + console.time("generate tiles"), + (this.stats = {}), + (this.total = 0)), + (ie = (function (pe, Se) { + const Me = Se.buffer / Se.extent; + let we = pe; + const Ve = yt(pe, 1, -1 - Me, Me, 0, -1, 2, Se), + ut = yt(pe, 1, 1 - Me, 2 + Me, 0, -1, 2, Se); + return ( + (Ve || ut) && + ((we = yt(pe, 1, -Me, 1 + Me, 0, -1, 2, Se) || []), + Ve && (we = tr(Ve, 1).concat(we)), + ut && (we = we.concat(tr(ut, -1)))), + we + ); + })(ie, U)), + ie.length && this.splitTile(ie, 0, 0, 0), + Y && + (ie.length && + console.log( + "features: %d, points: %d", + this.tiles[0].numFeatures, + this.tiles[0].numPoints + ), + console.timeEnd("generate tiles"), + console.log( + "tiles generated:", + this.total, + JSON.stringify(this.stats) + )); + } + splitTile(V, U, Y, ie, pe, Se, Me) { + const we = [V, U, Y, ie], + Ve = this.options, + ut = Ve.debug; + for (; we.length; ) { + (ie = we.pop()), + (Y = we.pop()), + (U = we.pop()), + (V = we.pop()); + const Ke = 1 << U, + kt = _r(U, Y, ie); + let ye = this.tiles[kt]; + if ( + !ye && + (ut > 1 && console.time("creation"), + (ye = this.tiles[kt] = or(V, U, Y, ie, Ve)), + this.tileCoords.push({ z: U, x: Y, y: ie }), + ut) + ) { + ut > 1 && + (console.log( + "tile z%d-%d-%d (features: %d, points: %d, simplified: %d)", + U, + Y, + ie, + ye.numFeatures, + ye.numPoints, + ye.numSimplified + ), + console.timeEnd("creation")); + const dr = `z${U}`; + (this.stats[dr] = (this.stats[dr] || 0) + 1), + this.total++; + } + if (((ye.source = V), pe == null)) { + if ( + U === Ve.indexMaxZoom || + ye.numPoints <= Ve.indexMaxPoints + ) + continue; + } else { + if (U === Ve.maxZoom || U === pe) continue; + if (pe != null) { + const dr = pe - U; + if (Y !== Se >> dr || ie !== Me >> dr) continue; + } + } + if (((ye.source = null), V.length === 0)) continue; + ut > 1 && console.time("clipping"); + const Bt = (0.5 * Ve.buffer) / Ve.extent, + rr = 0.5 - Bt, + Kt = 0.5 + Bt, + gr = 1 + Bt; + let Ur = null, + nn = null, + mn = null, + _n = null, + Vt = yt(V, Ke, Y - Bt, Y + Kt, 0, ye.minX, ye.maxX, Ve), + Et = yt(V, Ke, Y + rr, Y + gr, 0, ye.minX, ye.maxX, Ve); + (V = null), + Vt && + ((Ur = yt( + Vt, + Ke, + ie - Bt, + ie + Kt, + 1, + ye.minY, + ye.maxY, + Ve + )), + (nn = yt( + Vt, + Ke, + ie + rr, + ie + gr, + 1, + ye.minY, + ye.maxY, + Ve + )), + (Vt = null)), + Et && + ((mn = yt( + Et, + Ke, + ie - Bt, + ie + Kt, + 1, + ye.minY, + ye.maxY, + Ve + )), + (_n = yt( + Et, + Ke, + ie + rr, + ie + gr, + 1, + ye.minY, + ye.maxY, + Ve + )), + (Et = null)), + ut > 1 && console.timeEnd("clipping"), + we.push(Ur || [], U + 1, 2 * Y, 2 * ie), + we.push(nn || [], U + 1, 2 * Y, 2 * ie + 1), + we.push(mn || [], U + 1, 2 * Y + 1, 2 * ie), + we.push(_n || [], U + 1, 2 * Y + 1, 2 * ie + 1); + } + } + getTile(V, U, Y) { + (V = +V), (U = +U), (Y = +Y); + const ie = this.options, + { extent: pe, debug: Se } = ie; + if (V < 0 || V > 24) return null; + const Me = 1 << V, + we = _r(V, (U = (U + Me) & (Me - 1)), Y); + if (this.tiles[we]) return Ot(this.tiles[we], pe); + Se > 1 && console.log("drilling down to z%d-%d-%d", V, U, Y); + let Ve, + ut = V, + Ke = U, + kt = Y; + for (; !Ve && ut > 0; ) + ut--, + (Ke >>= 1), + (kt >>= 1), + (Ve = this.tiles[_r(ut, Ke, kt)]); + return Ve && Ve.source + ? (Se > 1 && + (console.log("found parent tile z%d-%d-%d", ut, Ke, kt), + console.time("drilling down")), + this.splitTile(Ve.source, ut, Ke, kt, V, U, Y), + Se > 1 && console.timeEnd("drilling down"), + this.tiles[we] ? Ot(this.tiles[we], pe) : null) + : null; + } + } + function _r(ue, V, U) { + return 32 * ((1 << ue) * U + V) + ue; + } + class Ir extends K { + constructor() { + super(...arguments), (this._dataUpdateable = new Map()); + } + loadVectorTile(V, U) { + return T._(this, void 0, void 0, function* () { + const Y = V.tileID.canonical; + if (!this._geoJSONIndex) + throw new Error( + "Unable to parse the data into a cluster or geojson" + ); + const ie = this._geoJSONIndex.getTile(Y.z, Y.x, Y.y); + if (!ie) return null; + const pe = new De(ie.features, { version: 2, extent: T.$ }); + let Se = (function (Me) { + const we = new T.cM(); + return ( + (function (Ve, ut) { + for (const Ke in Ve.layers) + ut.writeMessage(3, Ee, Ve.layers[Ke]); + })(Me, we), + we.finish() + ); + })(pe); + return ( + (Se.byteOffset === 0 && + Se.byteLength === Se.buffer.byteLength) || + (Se = new Uint8Array(Se)), + { vectorTile: pe, rawData: Se.buffer } + ); + }); + } + loadData(V) { + return T._(this, void 0, void 0, function* () { + var U; + (U = this._pendingRequest) === null || + U === void 0 || + U.abort(); + const Y = + !!(V && V.request && V.request.collectResourceTiming) && + new T.cN(V.request); + this._pendingRequest = new AbortController(); + try { + this._pendingData = this.loadAndProcessGeoJSON( + V, + this._pendingRequest + ); + const ie = yield this._pendingData; + (this._geoJSONIndex = V.cluster + ? new Ue( + (function ({ + superclusterOptions: Se, + clusterProperties: Me, + }) { + if (!Me || !Se) return Se; + const we = {}, + Ve = {}, + ut = { accumulated: null, zoom: 0 }, + Ke = { properties: null }, + kt = Object.keys(Me); + for (const ye of kt) { + const [Bt, rr] = Me[ye], + Kt = T.cT(rr), + gr = T.cT( + typeof Bt == "string" + ? [Bt, ["accumulated"], ["get", ye]] + : Bt + ); + (we[ye] = Kt.value), (Ve[ye] = gr.value); + } + return ( + (Se.map = (ye) => { + Ke.properties = ye; + const Bt = {}; + for (const rr of kt) + Bt[rr] = we[rr].evaluate(ut, Ke); + return Bt; + }), + (Se.reduce = (ye, Bt) => { + Ke.properties = Bt; + for (const rr of kt) + (ut.accumulated = ye[rr]), + (ye[rr] = Ve[rr].evaluate(ut, Ke)); + }), + Se + ); + })(V) + ).load(ie.features) + : (function (Se, Me) { + return new hr(Se, Me); + })(ie, V.geojsonVtOptions)), + (this.loaded = {}); + const pe = { data: ie }; + if (Y) { + const Se = Y.finish(); + Se && + ((pe.resourceTiming = {}), + (pe.resourceTiming[V.source] = JSON.parse( + JSON.stringify(Se) + ))); + } + return pe; + } catch (ie) { + if ((delete this._pendingRequest, T.cy(ie))) + return { abandoned: !0 }; + throw ie; + } + }); + } + getData() { + return T._(this, void 0, void 0, function* () { + return this._pendingData; + }); + } + reloadTile(V) { + const U = this.loaded; + return U && U[V.uid] ? super.reloadTile(V) : this.loadTile(V); + } + loadAndProcessGeoJSON(V, U) { + return T._(this, void 0, void 0, function* () { + let Y = yield this.loadGeoJSON(V, U); + if ((delete this._pendingRequest, typeof Y != "object")) + throw new Error( + `Input data given to '${V.source}' is not a valid GeoJSON object.` + ); + if ((Ie(Y, !0), V.filter)) { + const ie = T.cT(V.filter, { + type: "boolean", + "property-type": "data-driven", + overridable: !1, + transition: !1, + }); + if (ie.result === "error") + throw new Error( + ie.value + .map((Se) => `${Se.key}: ${Se.message}`) + .join(", ") + ); + Y = { + type: "FeatureCollection", + features: Y.features.filter((Se) => + ie.value.evaluate({ zoom: 0 }, Se) + ), + }; + } + return Y; + }); + } + loadGeoJSON(V, U) { + return T._(this, void 0, void 0, function* () { + const { promoteId: Y } = V; + if (V.request) { + const ie = yield T.j(V.request, U); + return ( + (this._dataUpdateable = T.cV(ie.data, Y) + ? T.cU(ie.data, Y) + : void 0), + ie.data + ); + } + if (typeof V.data == "string") + try { + const ie = JSON.parse(V.data); + return ( + (this._dataUpdateable = T.cV(ie, Y) + ? T.cU(ie, Y) + : void 0), + ie + ); + } catch { + throw new Error( + `Input data given to '${V.source}' is not a valid GeoJSON object.` + ); + } + if (!V.dataDiff) + throw new Error( + `Input data given to '${V.source}' is not a valid GeoJSON object.` + ); + if (!this._dataUpdateable) + throw new Error( + `Cannot update existing geojson data in ${V.source}` + ); + return ( + T.cW(this._dataUpdateable, V.dataDiff, Y), + { + type: "FeatureCollection", + features: Array.from(this._dataUpdateable.values()), + } + ); + }); + } + removeSource(V) { + return T._(this, void 0, void 0, function* () { + this._pendingRequest && this._pendingRequest.abort(); + }); + } + getClusterExpansionZoom(V) { + return this._geoJSONIndex.getClusterExpansionZoom( + V.clusterId + ); + } + getClusterChildren(V) { + return this._geoJSONIndex.getChildren(V.clusterId); + } + getClusterLeaves(V) { + return this._geoJSONIndex.getLeaves( + V.clusterId, + V.limit, + V.offset + ); + } + } + class qr { + constructor(V) { + (this.self = V), + (this.actor = new T.J(V)), + (this.layerIndexes = {}), + (this.availableImages = {}), + (this.workerSources = {}), + (this.demWorkerSources = {}), + (this.externalWorkerSourceTypes = {}), + (this.self.registerWorkerSource = (U, Y) => { + if (this.externalWorkerSourceTypes[U]) + throw new Error( + `Worker source with name "${U}" already registered.` + ); + this.externalWorkerSourceTypes[U] = Y; + }), + (this.self.addProtocol = T.cA), + (this.self.removeProtocol = T.cB), + (this.self.registerRTLTextPlugin = (U) => { + T.cX.setMethods(U); + }), + this.actor.registerMessageHandler("LDT", (U, Y) => + this._getDEMWorkerSource(U, Y.source).loadTile(Y) + ), + this.actor.registerMessageHandler("RDT", (U, Y) => + T._(this, void 0, void 0, function* () { + this._getDEMWorkerSource(U, Y.source).removeTile(Y); + }) + ), + this.actor.registerMessageHandler("GCEZ", (U, Y) => + T._(this, void 0, void 0, function* () { + return this._getWorkerSource( + U, + Y.type, + Y.source + ).getClusterExpansionZoom(Y); + }) + ), + this.actor.registerMessageHandler("GCC", (U, Y) => + T._(this, void 0, void 0, function* () { + return this._getWorkerSource( + U, + Y.type, + Y.source + ).getClusterChildren(Y); + }) + ), + this.actor.registerMessageHandler("GCL", (U, Y) => + T._(this, void 0, void 0, function* () { + return this._getWorkerSource( + U, + Y.type, + Y.source + ).getClusterLeaves(Y); + }) + ), + this.actor.registerMessageHandler("LD", (U, Y) => + this._getWorkerSource(U, Y.type, Y.source).loadData(Y) + ), + this.actor.registerMessageHandler("GD", (U, Y) => + this._getWorkerSource(U, Y.type, Y.source).getData() + ), + this.actor.registerMessageHandler("LT", (U, Y) => + this._getWorkerSource(U, Y.type, Y.source).loadTile(Y) + ), + this.actor.registerMessageHandler("RT", (U, Y) => + this._getWorkerSource(U, Y.type, Y.source).reloadTile(Y) + ), + this.actor.registerMessageHandler("AT", (U, Y) => + this._getWorkerSource(U, Y.type, Y.source).abortTile(Y) + ), + this.actor.registerMessageHandler("RMT", (U, Y) => + this._getWorkerSource(U, Y.type, Y.source).removeTile(Y) + ), + this.actor.registerMessageHandler("RS", (U, Y) => + T._(this, void 0, void 0, function* () { + if ( + !this.workerSources[U] || + !this.workerSources[U][Y.type] || + !this.workerSources[U][Y.type][Y.source] + ) + return; + const ie = this.workerSources[U][Y.type][Y.source]; + delete this.workerSources[U][Y.type][Y.source], + ie.removeSource !== void 0 && ie.removeSource(Y); + }) + ), + this.actor.registerMessageHandler("RM", (U) => + T._(this, void 0, void 0, function* () { + delete this.layerIndexes[U], + delete this.availableImages[U], + delete this.workerSources[U], + delete this.demWorkerSources[U]; + }) + ), + this.actor.registerMessageHandler("SR", (U, Y) => + T._(this, void 0, void 0, function* () { + this.referrer = Y; + }) + ), + this.actor.registerMessageHandler("SRPS", (U, Y) => + this._syncRTLPluginState(U, Y) + ), + this.actor.registerMessageHandler("IS", (U, Y) => + T._(this, void 0, void 0, function* () { + this.self.importScripts(Y); + }) + ), + this.actor.registerMessageHandler("SI", (U, Y) => + this._setImages(U, Y) + ), + this.actor.registerMessageHandler("UL", (U, Y) => + T._(this, void 0, void 0, function* () { + this._getLayerIndex(U).update(Y.layers, Y.removedIds); + }) + ), + this.actor.registerMessageHandler("SL", (U, Y) => + T._(this, void 0, void 0, function* () { + this._getLayerIndex(U).replace(Y); + }) + ); + } + _setImages(V, U) { + return T._(this, void 0, void 0, function* () { + this.availableImages[V] = U; + for (const Y in this.workerSources[V]) { + const ie = this.workerSources[V][Y]; + for (const pe in ie) ie[pe].availableImages = U; + } + }); + } + _syncRTLPluginState(V, U) { + return T._(this, void 0, void 0, function* () { + return yield T.cX.syncState(U, this.self.importScripts); + }); + } + _getAvailableImages(V) { + let U = this.availableImages[V]; + return U || (U = []), U; + } + _getLayerIndex(V) { + let U = this.layerIndexes[V]; + return U || (U = this.layerIndexes[V] = new s()), U; + } + _getWorkerSource(V, U, Y) { + if ( + (this.workerSources[V] || (this.workerSources[V] = {}), + this.workerSources[V][U] || (this.workerSources[V][U] = {}), + !this.workerSources[V][U][Y]) + ) { + const ie = { + sendAsync: (pe, Se) => ( + (pe.targetMapId = V), this.actor.sendAsync(pe, Se) + ), + }; + switch (U) { + case "vector": + this.workerSources[V][U][Y] = new K( + ie, + this._getLayerIndex(V), + this._getAvailableImages(V) + ); + break; + case "geojson": + this.workerSources[V][U][Y] = new Ir( + ie, + this._getLayerIndex(V), + this._getAvailableImages(V) + ); + break; + default: + this.workerSources[V][U][Y] = + new this.externalWorkerSourceTypes[U]( + ie, + this._getLayerIndex(V), + this._getAvailableImages(V) + ); + } + } + return this.workerSources[V][U][Y]; + } + _getDEMWorkerSource(V, U) { + return ( + this.demWorkerSources[V] || (this.demWorkerSources[V] = {}), + this.demWorkerSources[V][U] || + (this.demWorkerSources[V][U] = new ne()), + this.demWorkerSources[V][U] + ); + } + } + return T.i(self) && (self.worker = new qr(self)), qr; + }), + M("index", ["exports", "./shared"], function (T, s) { + var B = "5.6.2"; + function O() { + var h = new s.A(4); + return ( + s.A != Float32Array && ((h[1] = 0), (h[2] = 0)), + (h[0] = 1), + (h[3] = 1), + h + ); + } + let X, K; + const ne = { + now: + typeof performance < "u" && performance && performance.now + ? performance.now.bind(performance) + : Date.now.bind(Date), + frame(h, e, i) { + const l = requestAnimationFrame((d) => { + u(), e(d); + }), + { unsubscribe: u } = s.s( + h.signal, + "abort", + () => { + u(), cancelAnimationFrame(l), i(s.c()); + }, + !1 + ); + }, + frameAsync(h) { + return new Promise((e, i) => { + this.frame(h, e, i); + }); + }, + getImageData(h, e = 0) { + return this.getImageCanvasContext(h).getImageData( + -e, + -e, + h.width + 2 * e, + h.height + 2 * e + ); + }, + getImageCanvasContext(h) { + const e = window.document.createElement("canvas"), + i = e.getContext("2d", { willReadFrequently: !0 }); + if (!i) throw new Error("failed to create canvas 2d context"); + return ( + (e.width = h.width), + (e.height = h.height), + i.drawImage(h, 0, 0, h.width, h.height), + i + ); + }, + resolveURL: (h) => ( + X || (X = document.createElement("a")), (X.href = h), X.href + ), + hardwareConcurrency: + (typeof navigator < "u" && navigator.hardwareConcurrency) || + 4, + get prefersReducedMotion() { + return ( + !!matchMedia && + (K == null && + (K = matchMedia("(prefers-reduced-motion: reduce)")), + K.matches) + ); + }, + }; + class H { + static testProp(e) { + if (!H.docStyle) return e[0]; + for (let i = 0; i < e.length; i++) + if (e[i] in H.docStyle) return e[i]; + return e[0]; + } + static create(e, i, l) { + const u = window.document.createElement(e); + return ( + i !== void 0 && (u.className = i), l && l.appendChild(u), u + ); + } + static createNS(e, i) { + return window.document.createElementNS(e, i); + } + static disableDrag() { + H.docStyle && + H.selectProp && + ((H.userSelect = H.docStyle[H.selectProp]), + (H.docStyle[H.selectProp] = "none")); + } + static enableDrag() { + H.docStyle && + H.selectProp && + (H.docStyle[H.selectProp] = H.userSelect); + } + static setTransform(e, i) { + e.style[H.transformProp] = i; + } + static addEventListener(e, i, l, u = {}) { + e.addEventListener(i, l, "passive" in u ? u : u.capture); + } + static removeEventListener(e, i, l, u = {}) { + e.removeEventListener(i, l, "passive" in u ? u : u.capture); + } + static suppressClickInternal(e) { + e.preventDefault(), + e.stopPropagation(), + window.removeEventListener( + "click", + H.suppressClickInternal, + !0 + ); + } + static suppressClick() { + window.addEventListener("click", H.suppressClickInternal, !0), + window.setTimeout(() => { + window.removeEventListener( + "click", + H.suppressClickInternal, + !0 + ); + }, 0); + } + static getScale(e) { + const i = e.getBoundingClientRect(); + return { + x: i.width / e.offsetWidth || 1, + y: i.height / e.offsetHeight || 1, + boundingClientRect: i, + }; + } + static getPoint(e, i, l) { + const u = i.boundingClientRect; + return new s.P( + (l.clientX - u.left) / i.x - e.clientLeft, + (l.clientY - u.top) / i.y - e.clientTop + ); + } + static mousePos(e, i) { + const l = H.getScale(e); + return H.getPoint(e, l, i); + } + static touchPos(e, i) { + const l = [], + u = H.getScale(e); + for (let d = 0; d < i.length; d++) + l.push(H.getPoint(e, u, i[d])); + return l; + } + static mouseButton(e) { + return e.button; + } + static remove(e) { + e.parentNode && e.parentNode.removeChild(e); + } + static sanitize(e) { + const i = + new DOMParser().parseFromString(e, "text/html").body || + document.createElement("body"), + l = i.querySelectorAll("script"); + for (const u of l) u.remove(); + return H.clean(i), i.innerHTML; + } + static isPossiblyDangerous(e, i) { + const l = i.replace(/\s+/g, "").toLowerCase(); + return ( + !( + !["src", "href", "xlink:href"].includes(e) || + (!l.includes("javascript:") && !l.includes("data:")) + ) || + !!e.startsWith("on") || + void 0 + ); + } + static clean(e) { + const i = e.children; + for (const l of i) H.removeAttributes(l), H.clean(l); + } + static removeAttributes(e) { + for (const { name: i, value: l } of e.attributes) + H.isPossiblyDangerous(i, l) && e.removeAttribute(i); + } + } + (H.docStyle = + typeof window < "u" && + window.document && + window.document.documentElement.style), + (H.selectProp = H.testProp([ + "userSelect", + "MozUserSelect", + "WebkitUserSelect", + "msUserSelect", + ])), + (H.transformProp = H.testProp([ + "transform", + "WebkitTransform", + ])); + const fe = { + supported: !1, + testSupport: function (h) { + !Ae && Ie && (De ? Ee(h) : (ge = h)); + }, + }; + let ge, + Ie, + Ae = !1, + De = !1; + function Ee(h) { + const e = h.createTexture(); + h.bindTexture(h.TEXTURE_2D, e); + try { + if ( + (h.texImage2D( + h.TEXTURE_2D, + 0, + h.RGBA, + h.RGBA, + h.UNSIGNED_BYTE, + Ie + ), + h.isContextLost()) + ) + return; + fe.supported = !0; + } catch {} + h.deleteTexture(e), (Ae = !0); + } + var Fe; + typeof document < "u" && + ((Ie = document.createElement("img")), + (Ie.onload = () => { + ge && Ee(ge), (ge = null), (De = !0); + }), + (Ie.onerror = () => { + (Ae = !0), (ge = null); + }), + (Ie.src = + "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=")), + (function (h) { + let e, i, l, u; + (h.resetRequestQueue = () => { + (e = []), (i = 0), (l = 0), (u = {}); + }), + (h.addThrottleControl = (C) => { + const P = l++; + return (u[P] = C), P; + }), + (h.removeThrottleControl = (C) => { + delete u[C], g(); + }), + (h.getImage = (C, P, E = !0) => + new Promise((R, D) => { + fe.supported && + (C.headers || (C.headers = {}), + (C.headers.accept = "image/webp,*/*")), + s.e(C, { type: "image" }), + e.push({ + abortController: P, + requestParameters: C, + supportImageRefresh: E, + state: "queued", + onError: (N) => { + D(N); + }, + onSuccess: (N) => { + R(N); + }, + }), + g(); + })); + const d = (C) => + s._(this, void 0, void 0, function* () { + C.state = "running"; + const { + requestParameters: P, + supportImageRefresh: E, + onError: R, + onSuccess: D, + abortController: N, + } = C, + G = + E === !1 && + !s.i(self) && + !s.g(P.url) && + (!P.headers || + Object.keys(P.headers).reduce( + (ae, ce) => ae && ce === "accept", + !0 + )); + i++; + const te = G ? w(P, N) : s.m(P, N); + try { + const ae = yield te; + delete C.abortController, + (C.state = "completed"), + ae.data instanceof HTMLImageElement || s.b(ae.data) + ? D(ae) + : ae.data && + D({ + data: yield ((Q = ae.data), + typeof createImageBitmap == "function" + ? s.f(Q) + : s.h(Q)), + cacheControl: ae.cacheControl, + expires: ae.expires, + }); + } catch (ae) { + delete C.abortController, R(ae); + } finally { + i--, g(); + } + var Q; + }), + g = () => { + const C = (() => { + for (const P of Object.keys(u)) if (u[P]()) return !0; + return !1; + })() + ? s.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME + : s.a.MAX_PARALLEL_IMAGE_REQUESTS; + for (let P = i; P < C && e.length > 0; P++) { + const E = e.shift(); + E.abortController.signal.aborted ? P-- : d(E); + } + }, + w = (C, P) => + new Promise((E, R) => { + const D = new Image(), + N = C.url, + G = C.credentials; + G && G === "include" + ? (D.crossOrigin = "use-credentials") + : ((G && G === "same-origin") || !s.d(N)) && + (D.crossOrigin = "anonymous"), + P.signal.addEventListener("abort", () => { + (D.src = ""), R(s.c()); + }), + (D.fetchPriority = "high"), + (D.onload = () => { + (D.onerror = D.onload = null), E({ data: D }); + }), + (D.onerror = () => { + (D.onerror = D.onload = null), + P.signal.aborted || + R( + 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." + ) + ); + }), + (D.src = N); + }); + })(Fe || (Fe = {})), + Fe.resetRequestQueue(); + class $e { + constructor(e) { + this._transformRequestFn = e ?? null; + } + transformRequest(e, i) { + return ( + (this._transformRequestFn && + this._transformRequestFn(e, i)) || { url: e } + ); + } + setTransformRequest(e) { + this._transformRequestFn = e; + } + } + function Je(h) { + const e = []; + if (typeof h == "string") e.push({ id: "default", url: h }); + else if (h && h.length > 0) { + const i = []; + for (const { id: l, url: u } of h) { + const d = `${l}${u}`; + i.indexOf(d) === -1 && + (i.push(d), e.push({ id: l, url: u })); + } + } + return e; + } + function qe(h, e, i) { + try { + const l = new URL(h); + return (l.pathname += `${e}${i}`), l.toString(); + } catch { + throw new Error( + `Invalid sprite URL "${h}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically` + ); + } + } + function Ze(h) { + const { userImage: e } = h; + return ( + !!(e && e.render && e.render()) && + (h.data.replace(new Uint8Array(e.data.buffer)), !0) + ); + } + class Qe extends s.E { + constructor() { + super(), + (this.images = {}), + (this.updatedImages = {}), + (this.callbackDispatchedThisFrame = {}), + (this.loaded = !1), + (this.requestors = []), + (this.patterns = {}), + (this.atlasImage = new s.R({ width: 1, height: 1 })), + (this.dirty = !0); + } + isLoaded() { + return this.loaded; + } + setLoaded(e) { + if (this.loaded !== e && ((this.loaded = e), e)) { + for (const { ids: i, promiseResolve: l } of this.requestors) + l(this._getImagesForIds(i)); + this.requestors = []; + } + } + getImage(e) { + const i = this.images[e]; + if (i && !i.data && i.spriteData) { + const l = i.spriteData; + (i.data = new s.R( + { width: l.width, height: l.height }, + l.context.getImageData(l.x, l.y, l.width, l.height).data + )), + (i.spriteData = null); + } + return i; + } + addImage(e, i) { + if (this.images[e]) + throw new Error( + `Image id ${e} already exist, use updateImage instead` + ); + this._validate(e, i) && (this.images[e] = i); + } + _validate(e, i) { + let l = !0; + const u = i.data || i.spriteData; + return ( + this._validateStretch(i.stretchX, u && u.width) || + (this.fire( + new s.k( + new Error(`Image "${e}" has invalid "stretchX" value`) + ) + ), + (l = !1)), + this._validateStretch(i.stretchY, u && u.height) || + (this.fire( + new s.k( + new Error(`Image "${e}" has invalid "stretchY" value`) + ) + ), + (l = !1)), + this._validateContent(i.content, i) || + (this.fire( + new s.k( + new Error(`Image "${e}" has invalid "content" value`) + ) + ), + (l = !1)), + l + ); + } + _validateStretch(e, i) { + if (!e) return !0; + let l = 0; + for (const u of e) { + if (u[0] < l || u[1] < u[0] || i < u[1]) return !1; + l = u[1]; + } + return !0; + } + _validateContent(e, i) { + if (!e) return !0; + if (e.length !== 4) return !1; + const l = i.spriteData, + u = (l && l.width) || i.data.width, + d = (l && l.height) || i.data.height; + return !( + e[0] < 0 || + u < e[0] || + e[1] < 0 || + d < e[1] || + e[2] < 0 || + u < e[2] || + e[3] < 0 || + d < e[3] || + e[2] < e[0] || + e[3] < e[1] + ); + } + updateImage(e, i, l = !0) { + const u = this.getImage(e); + if ( + l && + (u.data.width !== i.data.width || + u.data.height !== i.data.height) + ) + throw new Error( + `size mismatch between old image (${u.data.width}x${u.data.height}) and new image (${i.data.width}x${i.data.height}).` + ); + (i.version = u.version + 1), + (this.images[e] = i), + (this.updatedImages[e] = !0); + } + removeImage(e) { + const i = this.images[e]; + delete this.images[e], + delete this.patterns[e], + i.userImage && + i.userImage.onRemove && + i.userImage.onRemove(); + } + listImages() { + return Object.keys(this.images); + } + getImages(e) { + return new Promise((i, l) => { + let u = !0; + if (!this.isLoaded()) + for (const d of e) this.images[d] || (u = !1); + this.isLoaded() || u + ? i(this._getImagesForIds(e)) + : this.requestors.push({ ids: e, promiseResolve: i }); + }); + } + _getImagesForIds(e) { + const i = {}; + for (const l of e) { + let u = this.getImage(l); + u || + (this.fire(new s.l("styleimagemissing", { id: l })), + (u = this.getImage(l))), + u + ? (i[l] = { + data: u.data.clone(), + pixelRatio: u.pixelRatio, + sdf: u.sdf, + version: u.version, + stretchX: u.stretchX, + stretchY: u.stretchY, + content: u.content, + textFitWidth: u.textFitWidth, + textFitHeight: u.textFitHeight, + hasRenderCallback: !!( + u.userImage && u.userImage.render + ), + }) + : s.w( + `Image "${l}" 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 i; + } + getPixelSize() { + const { width: e, height: i } = this.atlasImage; + return { width: e, height: i }; + } + getPattern(e) { + const i = this.patterns[e], + l = this.getImage(e); + if (!l) return null; + if (i && i.position.version === l.version) return i.position; + if (i) i.position.version = l.version; + else { + const u = { + w: l.data.width + 2, + h: l.data.height + 2, + x: 0, + y: 0, + }, + d = new s.I(u, l); + this.patterns[e] = { bin: u, position: d }; + } + return this._updatePatternAtlas(), this.patterns[e].position; + } + bind(e) { + const i = e.gl; + this.atlasTexture + ? this.dirty && + (this.atlasTexture.update(this.atlasImage), + (this.dirty = !1)) + : (this.atlasTexture = new s.T(e, this.atlasImage, i.RGBA)), + this.atlasTexture.bind(i.LINEAR, i.CLAMP_TO_EDGE); + } + _updatePatternAtlas() { + const e = []; + for (const d in this.patterns) e.push(this.patterns[d].bin); + const { w: i, h: l } = s.p(e), + u = this.atlasImage; + u.resize({ width: i || 1, height: l || 1 }); + for (const d in this.patterns) { + const { bin: g } = this.patterns[d], + w = g.x + 1, + C = g.y + 1, + P = this.getImage(d).data, + E = P.width, + R = P.height; + s.R.copy( + P, + u, + { x: 0, y: 0 }, + { x: w, y: C }, + { width: E, height: R } + ), + s.R.copy( + P, + u, + { x: 0, y: R - 1 }, + { x: w, y: C - 1 }, + { width: E, height: 1 } + ), + s.R.copy( + P, + u, + { x: 0, y: 0 }, + { x: w, y: C + R }, + { width: E, height: 1 } + ), + s.R.copy( + P, + u, + { x: E - 1, y: 0 }, + { x: w - 1, y: C }, + { width: 1, height: R } + ), + s.R.copy( + P, + u, + { x: 0, y: 0 }, + { x: w + E, y: C }, + { width: 1, height: R } + ); + } + this.dirty = !0; + } + beginFrame() { + this.callbackDispatchedThisFrame = {}; + } + dispatchRenderCallbacks(e) { + for (const i of e) { + if (this.callbackDispatchedThisFrame[i]) continue; + this.callbackDispatchedThisFrame[i] = !0; + const l = this.getImage(i); + l || s.w(`Image with ID: "${i}" was not found`), + Ze(l) && this.updateImage(i, l); + } + } + } + const Le = 1e20; + function et(h, e, i, l, u, d, g, w, C) { + for (let P = e; P < e + l; P++) nt(h, i * d + P, d, u, g, w, C); + for (let P = i; P < i + u; P++) nt(h, P * d + e, 1, l, g, w, C); + } + function nt(h, e, i, l, u, d, g) { + (d[0] = 0), (g[0] = -Le), (g[1] = Le), (u[0] = h[e]); + for (let w = 1, C = 0, P = 0; w < l; w++) { + u[w] = h[e + w * i]; + const E = w * w; + do { + const R = d[C]; + P = (u[w] - u[R] + E - R * R) / (w - R) / 2; + } while (P <= g[C] && --C > -1); + C++, (d[C] = w), (g[C] = P), (g[C + 1] = Le); + } + for (let w = 0, C = 0; w < l; w++) { + for (; g[C + 1] < w; ) C++; + const P = d[C], + E = w - P; + h[e + w * i] = u[P] + E * E; + } + } + class Ue { + constructor(e, i) { + (this.requestManager = e), + (this.localIdeographFontFamily = i), + (this.entries = {}); + } + setURL(e) { + this.url = e; + } + getGlyphs(e) { + return s._(this, void 0, void 0, function* () { + const i = []; + for (const d in e) + for (const g of e[d]) + i.push(this._getAndCacheGlyphsPromise(d, g)); + const l = yield Promise.all(i), + u = {}; + for (const { stack: d, id: g, glyph: w } of l) + u[d] || (u[d] = {}), + (u[d][g] = w && { + id: w.id, + bitmap: w.bitmap.clone(), + metrics: w.metrics, + }); + return u; + }); + } + _getAndCacheGlyphsPromise(e, i) { + return s._(this, void 0, void 0, function* () { + let l = this.entries[e]; + l || + (l = this.entries[e] = + { glyphs: {}, requests: {}, ranges: {} }); + let u = l.glyphs[i]; + if (u !== void 0) return { stack: e, id: i, glyph: u }; + if (((u = this._tinySDF(l, e, i)), u)) + return (l.glyphs[i] = u), { stack: e, id: i, glyph: u }; + const d = Math.floor(i / 256); + if (256 * d > 65535) + throw new Error("glyphs > 65535 not supported"); + if (l.ranges[d]) return { stack: e, id: i, glyph: u }; + if (!this.url) throw new Error("glyphsUrl is not set"); + if (!l.requests[d]) { + const w = Ue.loadGlyphRange( + e, + d, + this.url, + this.requestManager + ); + l.requests[d] = w; + } + const g = yield l.requests[d]; + for (const w in g) + this._doesCharSupportLocalGlyph(+w) || + (l.glyphs[+w] = g[+w]); + return ( + (l.ranges[d] = !0), + { stack: e, id: i, glyph: g[i] || null } + ); + }); + } + _doesCharSupportLocalGlyph(e) { + return ( + !!this.localIdeographFontFamily && + (new RegExp( + "\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}", + "u" + ).test(String.fromCodePoint(e)) || + s.u["CJK Unified Ideographs"](e) || + s.u["Hangul Syllables"](e) || + s.u.Hiragana(e) || + s.u.Katakana(e) || + s.u["CJK Symbols and Punctuation"](e) || + s.u["Halfwidth and Fullwidth Forms"](e)) + ); + } + _tinySDF(e, i, l) { + const u = this.localIdeographFontFamily; + if (!u || !this._doesCharSupportLocalGlyph(l)) return; + let d = e.tinySDF; + if (!d) { + let w = "400"; + /bold/i.test(i) + ? (w = "900") + : /medium/i.test(i) + ? (w = "500") + : /light/i.test(i) && (w = "200"), + (d = e.tinySDF = + new Ue.TinySDF({ + fontSize: 48, + buffer: 6, + radius: 16, + cutoff: 0.25, + fontFamily: u, + fontWeight: w, + })); + } + const g = d.draw(String.fromCharCode(l)); + return { + id: l, + bitmap: new s.q( + { width: g.width || 60, height: g.height || 60 }, + g.data + ), + metrics: { + width: g.glyphWidth / 2 || 24, + height: g.glyphHeight / 2 || 24, + left: g.glyphLeft / 2 + 0.5 || 0, + top: g.glyphTop / 2 - 27.5 || -8, + advance: g.glyphAdvance / 2 || 24, + isDoubleResolution: !0, + }, + }; + } + } + (Ue.loadGlyphRange = function (h, e, i, l) { + return s._(this, void 0, void 0, function* () { + const u = 256 * e, + d = u + 255, + g = l.transformRequest( + i + .replace("{fontstack}", h) + .replace("{range}", `${u}-${d}`), + "Glyphs" + ), + w = yield s.n(g, new AbortController()); + if (!w || !w.data) + throw new Error( + `Could not load glyph range. range: ${e}, ${u}-${d}` + ); + const C = {}; + for (const P of s.o(w.data)) C[P.id] = P; + return C; + }); + }), + (Ue.TinySDF = class { + constructor({ + fontSize: h = 24, + buffer: e = 3, + radius: i = 8, + cutoff: l = 0.25, + fontFamily: u = "sans-serif", + fontWeight: d = "normal", + fontStyle: g = "normal", + lang: w = null, + } = {}) { + (this.buffer = e), + (this.cutoff = l), + (this.radius = i), + (this.lang = w); + const C = (this.size = h + 4 * e), + P = this._createCanvas(C), + E = (this.ctx = P.getContext("2d", { + willReadFrequently: !0, + })); + (E.font = `${g} ${d} ${h}px ${u}`), + (E.textBaseline = "alphabetic"), + (E.textAlign = "left"), + (E.fillStyle = "black"), + (this.gridOuter = new Float64Array(C * C)), + (this.gridInner = new Float64Array(C * C)), + (this.f = new Float64Array(C)), + (this.z = new Float64Array(C + 1)), + (this.v = new Uint16Array(C)); + } + _createCanvas(h) { + const e = document.createElement("canvas"); + return (e.width = e.height = h), e; + } + draw(h) { + const { + width: e, + actualBoundingBoxAscent: i, + actualBoundingBoxDescent: l, + actualBoundingBoxLeft: u, + actualBoundingBoxRight: d, + } = this.ctx.measureText(h), + g = Math.ceil(i), + w = Math.max( + 0, + Math.min(this.size - this.buffer, Math.ceil(d - u)) + ), + C = Math.min(this.size - this.buffer, g + Math.ceil(l)), + P = w + 2 * this.buffer, + E = C + 2 * this.buffer, + R = Math.max(P * E, 0), + D = new Uint8ClampedArray(R), + N = { + data: D, + width: P, + height: E, + glyphWidth: w, + glyphHeight: C, + glyphTop: g, + glyphLeft: 0, + glyphAdvance: e, + }; + if (w === 0 || C === 0) return N; + const { + ctx: G, + buffer: te, + gridInner: Q, + gridOuter: ae, + } = this; + this.lang && (G.lang = this.lang), + G.clearRect(te, te, w, C), + G.fillText(h, te, te + g); + const ce = G.getImageData(te, te, w, C); + ae.fill(Le, 0, R), Q.fill(0, 0, R); + for (let ve = 0; ve < C; ve++) + for (let me = 0; me < w; me++) { + const be = ce.data[4 * (ve * w + me) + 3] / 255; + if (be === 0) continue; + const Pe = (ve + te) * P + me + te; + if (be === 1) (ae[Pe] = 0), (Q[Pe] = Le); + else { + const _e = 0.5 - be; + (ae[Pe] = _e > 0 ? _e * _e : 0), + (Q[Pe] = _e < 0 ? _e * _e : 0); + } + } + et(ae, 0, 0, P, E, P, this.f, this.v, this.z), + et(Q, te, te, w, C, P, this.f, this.v, this.z); + for (let ve = 0; ve < R; ve++) { + const me = Math.sqrt(ae[ve]) - Math.sqrt(Q[ve]); + D[ve] = Math.round( + 255 - 255 * (me / this.radius + this.cutoff) + ); + } + return N; + } + }); + class ke { + constructor() { + this.specification = s.v.light.position; + } + possiblyEvaluate(e, i) { + return s.B(e.expression.evaluate(i)); + } + interpolate(e, i, l) { + return { + x: s.C.number(e.x, i.x, l), + y: s.C.number(e.y, i.y, l), + z: s.C.number(e.z, i.z, l), + }; + } + } + let vt; + class ee extends s.E { + constructor(e) { + super(), + (vt = + vt || + new s.r({ + anchor: new s.D(s.v.light.anchor), + position: new ke(), + color: new s.D(s.v.light.color), + intensity: new s.D(s.v.light.intensity), + })), + (this._transitionable = new s.t(vt)), + this.setLight(e), + (this._transitioning = + this._transitionable.untransitioned()); + } + getLight() { + return this._transitionable.serialize(); + } + setLight(e, i = {}) { + if (!this._validate(s.x, e, i)) + for (const l in e) { + const u = e[l]; + l.endsWith("-transition") + ? this._transitionable.setTransition(l.slice(0, -11), u) + : this._transitionable.setValue(l, u); + } + } + updateTransitions(e) { + this._transitioning = this._transitionable.transitioned( + e, + this._transitioning + ); + } + hasTransition() { + return this._transitioning.hasTransition(); + } + recalculate(e) { + this.properties = this._transitioning.possiblyEvaluate(e); + } + _validate(e, i, l) { + return ( + (!l || l.validate !== !1) && + s.y( + this, + e.call(s.z, { + value: i, + style: { glyphs: !0, sprite: !0 }, + styleSpec: s.v, + }) + ) + ); + } + } + const re = new s.r({ + "sky-color": new s.D(s.v.sky["sky-color"]), + "horizon-color": new s.D(s.v.sky["horizon-color"]), + "fog-color": new s.D(s.v.sky["fog-color"]), + "fog-ground-blend": new s.D(s.v.sky["fog-ground-blend"]), + "horizon-fog-blend": new s.D(s.v.sky["horizon-fog-blend"]), + "sky-horizon-blend": new s.D(s.v.sky["sky-horizon-blend"]), + "atmosphere-blend": new s.D(s.v.sky["atmosphere-blend"]), + }); + class he extends s.E { + constructor(e) { + super(), + (this._transitionable = new s.t(re)), + this.setSky(e), + (this._transitioning = + this._transitionable.untransitioned()), + this.recalculate(new s.F(0)); + } + setSky(e, i = {}) { + if (!this._validate(s.G, e, i)) { + e || + (e = { + "sky-color": "transparent", + "horizon-color": "transparent", + "fog-color": "transparent", + "fog-ground-blend": 1, + "atmosphere-blend": 0, + }); + for (const l in e) { + const u = e[l]; + l.endsWith("-transition") + ? this._transitionable.setTransition(l.slice(0, -11), u) + : this._transitionable.setValue(l, u); + } + } + } + getSky() { + return this._transitionable.serialize(); + } + updateTransitions(e) { + this._transitioning = this._transitionable.transitioned( + e, + this._transitioning + ); + } + hasTransition() { + return this._transitioning.hasTransition(); + } + recalculate(e) { + this.properties = this._transitioning.possiblyEvaluate(e); + } + _validate(e, i, l = {}) { + return ( + (l == null ? void 0 : l.validate) !== !1 && + s.y( + this, + e.call( + s.z, + s.e({ + value: i, + style: { glyphs: !0, sprite: !0 }, + styleSpec: s.v, + }) + ) + ) + ); + } + calculateFogBlendOpacity(e) { + return e < 60 ? 0 : e < 70 ? (e - 60) / 10 : 1; + } + } + class oe { + constructor(e, i) { + (this.width = e), + (this.height = i), + (this.nextRow = 0), + (this.data = new Uint8Array(this.width * this.height)), + (this.dashEntry = {}); + } + getDash(e, i) { + const l = e.join(",") + String(i); + return ( + this.dashEntry[l] || + (this.dashEntry[l] = this.addDash(e, i)), + this.dashEntry[l] + ); + } + getDashRanges(e, i, l) { + const u = []; + let d = e.length % 2 == 1 ? -e[e.length - 1] * l : 0, + g = e[0] * l, + w = !0; + u.push({ + left: d, + right: g, + isDash: w, + zeroLength: e[0] === 0, + }); + let C = e[0]; + for (let P = 1; P < e.length; P++) { + w = !w; + const E = e[P]; + (d = C * l), + (C += E), + (g = C * l), + u.push({ + left: d, + right: g, + isDash: w, + zeroLength: E === 0, + }); + } + return u; + } + addRoundDash(e, i, l) { + const u = i / 2; + for (let d = -l; d <= l; d++) { + const g = this.width * (this.nextRow + l + d); + let w = 0, + C = e[w]; + for (let P = 0; P < this.width; P++) { + P / C.right > 1 && (C = e[++w]); + const E = Math.abs(P - C.left), + R = Math.abs(P - C.right), + D = Math.min(E, R); + let N; + const G = (d / l) * (u + 1); + if (C.isDash) { + const te = u - Math.abs(G); + N = Math.sqrt(D * D + te * te); + } else N = u - Math.sqrt(D * D + G * G); + this.data[g + P] = Math.max(0, Math.min(255, N + 128)); + } + } + } + addRegularDash(e) { + for (let w = e.length - 1; w >= 0; --w) { + const C = e[w], + P = e[w + 1]; + C.zeroLength + ? e.splice(w, 1) + : P && + P.isDash === C.isDash && + ((P.left = C.left), e.splice(w, 1)); + } + const i = e[0], + l = e[e.length - 1]; + i.isDash === l.isDash && + ((i.left = l.left - this.width), + (l.right = i.right + this.width)); + const u = this.width * this.nextRow; + let d = 0, + g = e[d]; + for (let w = 0; w < this.width; w++) { + w / g.right > 1 && (g = e[++d]); + const C = Math.abs(w - g.left), + P = Math.abs(w - g.right), + E = Math.min(C, P); + this.data[u + w] = Math.max( + 0, + Math.min(255, (g.isDash ? E : -E) + 128) + ); + } + } + addDash(e, i) { + const l = i ? 7 : 0, + u = 2 * l + 1; + if (this.nextRow + u > this.height) + return s.w("LineAtlas out of space"), null; + let d = 0; + for (let w = 0; w < e.length; w++) d += e[w]; + if (d !== 0) { + const w = this.width / d, + C = this.getDashRanges(e, this.width, w); + i ? this.addRoundDash(C, w, l) : this.addRegularDash(C); + } + const g = { + y: (this.nextRow + l + 0.5) / this.height, + height: (2 * l) / this.height, + width: d, + }; + return (this.nextRow += u), (this.dirty = !0), g; + } + bind(e) { + const i = e.gl; + this.texture + ? (i.bindTexture(i.TEXTURE_2D, this.texture), + this.dirty && + ((this.dirty = !1), + i.texSubImage2D( + i.TEXTURE_2D, + 0, + 0, + 0, + this.width, + this.height, + i.ALPHA, + i.UNSIGNED_BYTE, + this.data + ))) + : ((this.texture = i.createTexture()), + i.bindTexture(i.TEXTURE_2D, this.texture), + i.texParameteri(i.TEXTURE_2D, i.TEXTURE_WRAP_S, i.REPEAT), + i.texParameteri(i.TEXTURE_2D, i.TEXTURE_WRAP_T, i.REPEAT), + i.texParameteri( + i.TEXTURE_2D, + i.TEXTURE_MIN_FILTER, + i.LINEAR + ), + i.texParameteri( + i.TEXTURE_2D, + i.TEXTURE_MAG_FILTER, + i.LINEAR + ), + i.texImage2D( + i.TEXTURE_2D, + 0, + i.ALPHA, + this.width, + this.height, + 0, + i.ALPHA, + i.UNSIGNED_BYTE, + this.data + )); + } + } + const ze = "maplibre_preloaded_worker_pool"; + class je { + constructor() { + this.active = {}; + } + acquire(e) { + if (!this.workers) + for ( + this.workers = []; + this.workers.length < je.workerCount; + + ) + this.workers.push(new Worker(s.a.WORKER_URL)); + return (this.active[e] = !0), this.workers.slice(); + } + release(e) { + delete this.active[e], + this.numActive() === 0 && + (this.workers.forEach((i) => { + i.terminate(); + }), + (this.workers = null)); + } + isPreloaded() { + return !!this.active[ze]; + } + numActive() { + return Object.keys(this.active).length; + } + } + const pt = Math.floor(ne.hardwareConcurrency / 2); + let it, ct; + function It() { + return it || (it = new je()), it; + } + je.workerCount = s.H(globalThis) + ? Math.max(Math.min(pt, 3), 1) + : 1; + class Dt { + constructor(e, i) { + (this.workerPool = e), + (this.actors = []), + (this.currentActor = 0), + (this.id = i); + const l = this.workerPool.acquire(i); + for (let u = 0; u < l.length; u++) { + const d = new s.J(l[u], i); + (d.name = `Worker ${u}`), this.actors.push(d); + } + if (!this.actors.length) throw new Error("No actors found"); + } + broadcast(e, i) { + const l = []; + for (const u of this.actors) + l.push(u.sendAsync({ type: e, data: i })); + return Promise.all(l); + } + getActor() { + return ( + (this.currentActor = + (this.currentActor + 1) % this.actors.length), + this.actors[this.currentActor] + ); + } + remove(e = !0) { + this.actors.forEach((i) => { + i.remove(); + }), + (this.actors = []), + e && this.workerPool.release(this.id); + } + registerMessageHandler(e, i) { + for (const l of this.actors) l.registerMessageHandler(e, i); + } + } + function at() { + return ( + ct || + ((ct = new Dt(It(), s.K)), + ct.registerMessageHandler("GR", (h, e, i) => s.m(e, i))), + ct + ); + } + function dt(h, e) { + const i = s.L(); + return ( + s.M(i, i, [1, 1, 0]), + s.N(i, i, [0.5 * h.width, 0.5 * h.height, 1]), + h.calculatePosMatrix + ? s.O(i, i, h.calculatePosMatrix(e.toUnwrapped())) + : i + ); + } + function yt(h, e, i, l, u, d, g) { + var w; + const C = (function (D, N, G) { + if (D) + for (const te of D) { + const Q = N[te]; + if (Q && Q.source === G && Q.type === "fill-extrusion") + return !0; + } + else + for (const te in N) { + const Q = N[te]; + if (Q.source === G && Q.type === "fill-extrusion") + return !0; + } + return !1; + })( + (w = u == null ? void 0 : u.layers) !== null && w !== void 0 + ? w + : null, + e, + h.id + ), + P = d.maxPitchScaleFactor(), + E = h.tilesIn(l, P, C); + E.sort(xt); + const R = []; + for (const D of E) + R.push({ + wrappedTileID: D.tileID.wrapped().key, + queryResults: D.tile.queryRenderedFeatures( + e, + i, + h._state, + D.queryGeometry, + D.cameraQueryGeometry, + D.scale, + u, + d, + P, + dt(h.transform, D.tileID), + g ? (N, G) => g(D.tileID, N, G) : void 0 + ), + }); + return (function (D, N) { + for (const G in D) for (const te of D[G]) St(te, N); + return D; + })( + (function (D) { + const N = {}, + G = {}; + for (const te of D) { + const Q = te.queryResults, + ae = te.wrappedTileID, + ce = (G[ae] = G[ae] || {}); + for (const ve in Q) { + const me = Q[ve], + be = (ce[ve] = ce[ve] || {}), + Pe = (N[ve] = N[ve] || []); + for (const _e of me) + be[_e.featureIndex] || + ((be[_e.featureIndex] = !0), Pe.push(_e)); + } + } + return N; + })(R), + h + ); + } + function xt(h, e) { + const i = h.tileID, + l = e.tileID; + return ( + i.overscaledZ - l.overscaledZ || + i.canonical.y - l.canonical.y || + i.wrap - l.wrap || + i.canonical.x - l.canonical.x + ); + } + function St(h, e) { + const i = h.feature, + l = e.getFeatureState(i.layer["source-layer"], i.id); + (i.source = i.layer.source), + i.layer["source-layer"] && + (i.sourceLayer = i.layer["source-layer"]), + (i.state = l); + } + function wt(h, e, i) { + return s._(this, void 0, void 0, function* () { + let l = h; + if ( + (h.url + ? (l = (yield s.j(e.transformRequest(h.url, "Source"), i)) + .data) + : yield ne.frameAsync(i), + !l) + ) + return null; + const u = s.Q(s.e(l, h), [ + "tiles", + "minzoom", + "maxzoom", + "attribution", + "bounds", + "scheme", + "tileSize", + "encoding", + ]); + return ( + "vector_layers" in l && + l.vector_layers && + (u.vectorLayerIds = l.vector_layers.map((d) => d.id)), + u + ); + }); + } + class _t { + constructor(e, i) { + e && + (i + ? this.setSouthWest(e).setNorthEast(i) + : Array.isArray(e) && + (e.length === 4 + ? this.setSouthWest([e[0], e[1]]).setNorthEast([ + e[2], + e[3], + ]) + : this.setSouthWest(e[0]).setNorthEast(e[1]))); + } + setNorthEast(e) { + return ( + (this._ne = + e instanceof s.S + ? new s.S(e.lng, e.lat) + : s.S.convert(e)), + this + ); + } + setSouthWest(e) { + return ( + (this._sw = + e instanceof s.S + ? new s.S(e.lng, e.lat) + : s.S.convert(e)), + this + ); + } + extend(e) { + const i = this._sw, + l = this._ne; + let u, d; + if (e instanceof s.S) (u = e), (d = e); + else { + if (!(e instanceof _t)) + return Array.isArray(e) + ? e.length === 4 || e.every(Array.isArray) + ? this.extend(_t.convert(e)) + : this.extend(s.S.convert(e)) + : e && ("lng" in e || "lon" in e) && "lat" in e + ? this.extend(s.S.convert(e)) + : this; + if (((u = e._sw), (d = e._ne), !u || !d)) return this; + } + return ( + i || l + ? ((i.lng = Math.min(u.lng, i.lng)), + (i.lat = Math.min(u.lat, i.lat)), + (l.lng = Math.max(d.lng, l.lng)), + (l.lat = Math.max(d.lat, l.lat))) + : ((this._sw = new s.S(u.lng, u.lat)), + (this._ne = new s.S(d.lng, d.lat))), + this + ); + } + getCenter() { + return new s.S( + (this._sw.lng + this._ne.lng) / 2, + (this._sw.lat + this._ne.lat) / 2 + ); + } + getSouthWest() { + return this._sw; + } + getNorthEast() { + return this._ne; + } + getNorthWest() { + return new s.S(this.getWest(), this.getNorth()); + } + getSouthEast() { + return new s.S(this.getEast(), this.getSouth()); + } + getWest() { + return this._sw.lng; + } + getSouth() { + return this._sw.lat; + } + getEast() { + return this._ne.lng; + } + getNorth() { + return this._ne.lat; + } + toArray() { + return [this._sw.toArray(), this._ne.toArray()]; + } + toString() { + return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`; + } + isEmpty() { + return !(this._sw && this._ne); + } + contains(e) { + const { lng: i, lat: l } = s.S.convert(e); + let u = this._sw.lng <= i && i <= this._ne.lng; + return ( + this._sw.lng > this._ne.lng && + (u = this._sw.lng >= i && i >= this._ne.lng), + this._sw.lat <= l && l <= this._ne.lat && u + ); + } + static convert(e) { + return e instanceof _t ? e : e && new _t(e); + } + static fromLngLat(e, i = 0) { + const l = (360 * i) / 40075017, + u = l / Math.cos((Math.PI / 180) * e.lat); + return new _t( + new s.S(e.lng - u, e.lat - l), + new s.S(e.lng + u, e.lat + l) + ); + } + adjustAntiMeridian() { + const e = new s.S(this._sw.lng, this._sw.lat), + i = new s.S(this._ne.lng, this._ne.lat); + return new _t( + e, + e.lng > i.lng ? new s.S(i.lng + 360, i.lat) : i + ); + } + } + class Lt { + constructor(e, i, l) { + (this.bounds = _t.convert(this.validateBounds(e))), + (this.minzoom = i || 0), + (this.maxzoom = l || 24); + } + validateBounds(e) { + return Array.isArray(e) && e.length === 4 + ? [ + Math.max(-180, e[0]), + Math.max(-90, e[1]), + Math.min(180, e[2]), + Math.min(90, e[3]), + ] + : [-180, -90, 180, 90]; + } + contains(e) { + const i = Math.pow(2, e.z), + l = Math.floor(s.V(this.bounds.getWest()) * i), + u = Math.floor(s.U(this.bounds.getNorth()) * i), + d = Math.ceil(s.V(this.bounds.getEast()) * i), + g = Math.ceil(s.U(this.bounds.getSouth()) * i); + return e.x >= l && e.x < d && e.y >= u && e.y < g; + } + } + class Rt extends s.E { + constructor(e, i, l, u) { + if ( + (super(), + (this.id = e), + (this.dispatcher = l), + (this.type = "vector"), + (this.minzoom = 0), + (this.maxzoom = 22), + (this.scheme = "xyz"), + (this.tileSize = 512), + (this.reparseOverscaled = !0), + (this.isTileClipped = !0), + (this._loaded = !1), + s.e( + this, + s.Q(i, ["url", "scheme", "tileSize", "promoteId"]) + ), + (this._options = s.e({ type: "vector" }, i)), + (this._collectResourceTiming = i.collectResourceTiming), + this.tileSize !== 512) + ) + throw new Error( + "vector tile sources must have a tileSize of 512" + ); + this.setEventedParent(u); + } + load() { + return s._(this, void 0, void 0, function* () { + (this._loaded = !1), + this.fire(new s.l("dataloading", { dataType: "source" })), + (this._tileJSONRequest = new AbortController()); + try { + const e = yield wt( + this._options, + this.map._requestManager, + this._tileJSONRequest + ); + (this._tileJSONRequest = null), + (this._loaded = !0), + this.map.style.sourceCaches[this.id].clearTiles(), + e && + (s.e(this, e), + e.bounds && + (this.tileBounds = new Lt( + e.bounds, + this.minzoom, + this.maxzoom + )), + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "metadata", + }) + ), + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "content", + }) + )); + } catch (e) { + (this._tileJSONRequest = null), this.fire(new s.k(e)); + } + }); + } + loaded() { + return this._loaded; + } + hasTile(e) { + return ( + !this.tileBounds || this.tileBounds.contains(e.canonical) + ); + } + onAdd(e) { + (this.map = e), this.load(); + } + setSourceProperty(e) { + this._tileJSONRequest && this._tileJSONRequest.abort(), + e(), + this.load(); + } + setTiles(e) { + return ( + this.setSourceProperty(() => { + this._options.tiles = e; + }), + this + ); + } + setUrl(e) { + return ( + this.setSourceProperty(() => { + (this.url = e), (this._options.url = e); + }), + this + ); + } + onRemove() { + this._tileJSONRequest && + (this._tileJSONRequest.abort(), + (this._tileJSONRequest = null)); + } + serialize() { + return s.e({}, this._options); + } + loadTile(e) { + return s._(this, void 0, void 0, function* () { + const i = e.tileID.canonical.url( + this.tiles, + this.map.getPixelRatio(), + this.scheme + ), + l = { + request: this.map._requestManager.transformRequest( + i, + "Tile" + ), + uid: e.uid, + tileID: e.tileID, + zoom: e.tileID.overscaledZ, + tileSize: this.tileSize * e.tileID.overscaleFactor(), + type: this.type, + source: this.id, + pixelRatio: this.map.getPixelRatio(), + showCollisionBoxes: this.map.showCollisionBoxes, + promoteId: this.promoteId, + subdivisionGranularity: + this.map.style.projection.subdivisionGranularity, + globalState: this.map.getGlobalState(), + }; + l.request.collectResourceTiming = + this._collectResourceTiming; + let u = "RT"; + if (e.actor && e.state !== "expired") { + if (e.state === "loading") + return new Promise((d, g) => { + e.reloadPromise = { resolve: d, reject: g }; + }); + } else (e.actor = this.dispatcher.getActor()), (u = "LT"); + e.abortController = new AbortController(); + try { + const d = yield e.actor.sendAsync( + { type: u, data: l }, + e.abortController + ); + if ((delete e.abortController, e.aborted)) return; + this._afterTileLoadWorkerResponse(e, d); + } catch (d) { + if ((delete e.abortController, e.aborted)) return; + if (d && d.status !== 404) throw d; + this._afterTileLoadWorkerResponse(e, null); + } + }); + } + _afterTileLoadWorkerResponse(e, i) { + if ( + (i && + i.resourceTiming && + (e.resourceTiming = i.resourceTiming), + i && this.map._refreshExpiredTiles && e.setExpiryData(i), + e.loadVectorData(i, this.map.painter), + e.reloadPromise) + ) { + const l = e.reloadPromise; + (e.reloadPromise = null), + this.loadTile(e).then(l.resolve).catch(l.reject); + } + } + abortTile(e) { + return s._(this, void 0, void 0, function* () { + e.abortController && + (e.abortController.abort(), delete e.abortController), + e.actor && + (yield e.actor.sendAsync({ + type: "AT", + data: { + uid: e.uid, + type: this.type, + source: this.id, + }, + })); + }); + } + unloadTile(e) { + return s._(this, void 0, void 0, function* () { + e.unloadVectorData(), + e.actor && + (yield e.actor.sendAsync({ + type: "RMT", + data: { + uid: e.uid, + type: this.type, + source: this.id, + }, + })); + }); + } + hasTransition() { + return !1; + } + } + class $t extends s.E { + constructor(e, i, l, u) { + super(), + (this.id = e), + (this.dispatcher = l), + this.setEventedParent(u), + (this.type = "raster"), + (this.minzoom = 0), + (this.maxzoom = 22), + (this.roundZoom = !0), + (this.scheme = "xyz"), + (this.tileSize = 512), + (this._loaded = !1), + (this._options = s.e({ type: "raster" }, i)), + s.e(this, s.Q(i, ["url", "scheme", "tileSize"])); + } + load() { + return s._(this, arguments, void 0, function* (e = !1) { + (this._loaded = !1), + this.fire(new s.l("dataloading", { dataType: "source" })), + (this._tileJSONRequest = new AbortController()); + try { + const i = yield wt( + this._options, + this.map._requestManager, + this._tileJSONRequest + ); + (this._tileJSONRequest = null), + (this._loaded = !0), + i && + (s.e(this, i), + i.bounds && + (this.tileBounds = new Lt( + i.bounds, + this.minzoom, + this.maxzoom + )), + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "metadata", + }) + ), + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "content", + sourceDataChanged: e, + }) + )); + } catch (i) { + (this._tileJSONRequest = null), this.fire(new s.k(i)); + } + }); + } + loaded() { + return this._loaded; + } + onAdd(e) { + (this.map = e), this.load(); + } + onRemove() { + this._tileJSONRequest && + (this._tileJSONRequest.abort(), + (this._tileJSONRequest = null)); + } + setSourceProperty(e) { + this._tileJSONRequest && + (this._tileJSONRequest.abort(), + (this._tileJSONRequest = null)), + e(), + this.load(!0); + } + setTiles(e) { + return ( + this.setSourceProperty(() => { + this._options.tiles = e; + }), + this + ); + } + setUrl(e) { + return ( + this.setSourceProperty(() => { + (this.url = e), (this._options.url = e); + }), + this + ); + } + serialize() { + return s.e({}, this._options); + } + hasTile(e) { + return ( + !this.tileBounds || this.tileBounds.contains(e.canonical) + ); + } + loadTile(e) { + return s._(this, void 0, void 0, function* () { + const i = e.tileID.canonical.url( + this.tiles, + this.map.getPixelRatio(), + this.scheme + ); + e.abortController = new AbortController(); + try { + const l = yield Fe.getImage( + this.map._requestManager.transformRequest(i, "Tile"), + e.abortController, + this.map._refreshExpiredTiles + ); + if ((delete e.abortController, e.aborted)) + return void (e.state = "unloaded"); + if (l && l.data) { + this.map._refreshExpiredTiles && + (l.cacheControl || l.expires) && + e.setExpiryData({ + cacheControl: l.cacheControl, + expires: l.expires, + }); + const u = this.map.painter.context, + d = u.gl, + g = l.data; + (e.texture = this.map.painter.getTileTexture(g.width)), + e.texture + ? e.texture.update(g, { useMipmap: !0 }) + : ((e.texture = new s.T(u, g, d.RGBA, { + useMipmap: !0, + })), + e.texture.bind( + d.LINEAR, + d.CLAMP_TO_EDGE, + d.LINEAR_MIPMAP_NEAREST + )), + (e.state = "loaded"); + } + } catch (l) { + if ((delete e.abortController, e.aborted)) + e.state = "unloaded"; + else if (l) throw ((e.state = "errored"), l); + } + }); + } + abortTile(e) { + return s._(this, void 0, void 0, function* () { + e.abortController && + (e.abortController.abort(), delete e.abortController); + }); + } + unloadTile(e) { + return s._(this, void 0, void 0, function* () { + e.texture && this.map.painter.saveTileTexture(e.texture); + }); + } + hasTransition() { + return !1; + } + } + class tr extends $t { + constructor(e, i, l, u) { + super(e, i, l, u), + (this.type = "raster-dem"), + (this.maxzoom = 22), + (this._options = s.e({ type: "raster-dem" }, i)), + (this.encoding = i.encoding || "mapbox"), + (this.redFactor = i.redFactor), + (this.greenFactor = i.greenFactor), + (this.blueFactor = i.blueFactor), + (this.baseShift = i.baseShift); + } + loadTile(e) { + return s._(this, void 0, void 0, function* () { + const i = e.tileID.canonical.url( + this.tiles, + this.map.getPixelRatio(), + this.scheme + ), + l = this.map._requestManager.transformRequest(i, "Tile"); + (e.neighboringTiles = this._getNeighboringTiles(e.tileID)), + (e.abortController = new AbortController()); + try { + const u = yield Fe.getImage( + l, + e.abortController, + this.map._refreshExpiredTiles + ); + if ((delete e.abortController, e.aborted)) + return void (e.state = "unloaded"); + if (u && u.data) { + const d = u.data; + this.map._refreshExpiredTiles && + (u.cacheControl || u.expires) && + e.setExpiryData({ + cacheControl: u.cacheControl, + expires: u.expires, + }); + const g = + s.b(d) && s.W() ? d : yield this.readImageNow(d), + w = { + type: this.type, + uid: e.uid, + source: this.id, + rawImageData: g, + encoding: this.encoding, + redFactor: this.redFactor, + greenFactor: this.greenFactor, + blueFactor: this.blueFactor, + baseShift: this.baseShift, + }; + if (!e.actor || e.state === "expired") { + e.actor = this.dispatcher.getActor(); + const C = yield e.actor.sendAsync({ + type: "LDT", + data: w, + }); + (e.dem = C), + (e.needsHillshadePrepare = !0), + (e.needsTerrainPrepare = !0), + (e.state = "loaded"); + } + } + } catch (u) { + if ((delete e.abortController, e.aborted)) + e.state = "unloaded"; + else if (u) throw ((e.state = "errored"), u); + } + }); + } + readImageNow(e) { + return s._(this, void 0, void 0, function* () { + if (typeof VideoFrame < "u" && s.X()) { + const i = e.width + 2, + l = e.height + 2; + try { + return new s.R( + { width: i, height: l }, + yield s.Y(e, -1, -1, i, l) + ); + } catch {} + } + return ne.getImageData(e, 1); + }); + } + _getNeighboringTiles(e) { + const i = e.canonical, + l = Math.pow(2, i.z), + u = (i.x - 1 + l) % l, + d = i.x === 0 ? e.wrap - 1 : e.wrap, + g = (i.x + 1 + l) % l, + w = i.x + 1 === l ? e.wrap + 1 : e.wrap, + C = {}; + return ( + (C[new s.Z(e.overscaledZ, d, i.z, u, i.y).key] = { + backfilled: !1, + }), + (C[new s.Z(e.overscaledZ, w, i.z, g, i.y).key] = { + backfilled: !1, + }), + i.y > 0 && + ((C[new s.Z(e.overscaledZ, d, i.z, u, i.y - 1).key] = { + backfilled: !1, + }), + (C[ + new s.Z(e.overscaledZ, e.wrap, i.z, i.x, i.y - 1).key + ] = { backfilled: !1 }), + (C[new s.Z(e.overscaledZ, w, i.z, g, i.y - 1).key] = { + backfilled: !1, + })), + i.y + 1 < l && + ((C[new s.Z(e.overscaledZ, d, i.z, u, i.y + 1).key] = { + backfilled: !1, + }), + (C[ + new s.Z(e.overscaledZ, e.wrap, i.z, i.x, i.y + 1).key + ] = { backfilled: !1 }), + (C[new s.Z(e.overscaledZ, w, i.z, g, i.y + 1).key] = { + backfilled: !1, + })), + C + ); + } + unloadTile(e) { + return s._(this, void 0, void 0, function* () { + e.demTexture && + this.map.painter.saveTileTexture(e.demTexture), + e.fbo && (e.fbo.destroy(), delete e.fbo), + e.dem && delete e.dem, + delete e.neighboringTiles, + (e.state = "unloaded"), + e.actor && + (yield e.actor.sendAsync({ + type: "RDT", + data: { + type: this.type, + uid: e.uid, + source: this.id, + }, + })); + }); + } + } + class Qt extends s.E { + constructor(e, i, l, u) { + super(), + (this.id = e), + (this.type = "geojson"), + (this.minzoom = 0), + (this.maxzoom = 18), + (this.tileSize = 512), + (this.isTileClipped = !0), + (this.reparseOverscaled = !0), + (this._removed = !1), + (this._isUpdatingWorker = !1), + (this._pendingWorkerUpdate = { data: i.data }), + (this.actor = l.getActor()), + this.setEventedParent(u), + (this._data = i.data), + (this._options = s.e({}, i)), + (this._collectResourceTiming = i.collectResourceTiming), + i.maxzoom !== void 0 && (this.maxzoom = i.maxzoom), + i.type && (this.type = i.type), + i.attribution && (this.attribution = i.attribution), + (this.promoteId = i.promoteId), + i.clusterMaxZoom !== void 0 && + this.maxzoom <= i.clusterMaxZoom && + s.w( + `The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${i.clusterMaxZoom}".` + ), + (this.workerOptions = s.e( + { + source: this.id, + cluster: i.cluster || !1, + geojsonVtOptions: { + buffer: this._pixelsToTileUnits( + i.buffer !== void 0 ? i.buffer : 128 + ), + tolerance: this._pixelsToTileUnits( + i.tolerance !== void 0 ? i.tolerance : 0.375 + ), + extent: s.$, + maxZoom: this.maxzoom, + lineMetrics: i.lineMetrics || !1, + generateId: i.generateId || !1, + }, + superclusterOptions: { + maxZoom: this._getClusterMaxZoom(i.clusterMaxZoom), + minPoints: Math.max(2, i.clusterMinPoints || 2), + extent: s.$, + radius: this._pixelsToTileUnits( + i.clusterRadius || 50 + ), + log: !1, + generateId: i.generateId || !1, + }, + clusterProperties: i.clusterProperties, + filter: i.filter, + }, + i.workerOptions + )), + typeof this.promoteId == "string" && + (this.workerOptions.promoteId = this.promoteId); + } + _pixelsToTileUnits(e) { + return e * (s.$ / this.tileSize); + } + _getClusterMaxZoom(e) { + const i = e ? Math.round(e) : this.maxzoom - 1; + return ( + Number.isInteger(e) || + e === void 0 || + s.w( + `Integer expected for option 'clusterMaxZoom': provided value "${e}" rounded to "${i}"` + ), + i + ); + } + load() { + return s._(this, void 0, void 0, function* () { + yield this._updateWorkerData(); + }); + } + onAdd(e) { + (this.map = e), this.load(); + } + setData(e) { + return ( + (this._data = e), + (this._pendingWorkerUpdate = { data: e }), + this._updateWorkerData(), + this + ); + } + updateData(e) { + return ( + (this._pendingWorkerUpdate.diff = s.a0( + this._pendingWorkerUpdate.diff, + e + )), + this._updateWorkerData(), + this + ); + } + getData() { + return s._(this, void 0, void 0, function* () { + const e = s.e({ type: this.type }, this.workerOptions); + return this.actor.sendAsync({ type: "GD", data: e }); + }); + } + getCoordinatesFromGeometry(e) { + return e.type === "GeometryCollection" + ? e.geometries.map((i) => i.coordinates).flat(1 / 0) + : e.coordinates.flat(1 / 0); + } + getBounds() { + return s._(this, void 0, void 0, function* () { + const e = new _t(), + i = yield this.getData(); + let l; + switch (i.type) { + case "FeatureCollection": + l = i.features + .map((u) => + this.getCoordinatesFromGeometry(u.geometry) + ) + .flat(1 / 0); + break; + case "Feature": + l = this.getCoordinatesFromGeometry(i.geometry); + break; + default: + l = this.getCoordinatesFromGeometry(i); + } + if (l.length == 0) return e; + for (let u = 0; u < l.length - 1; u += 2) + e.extend([l[u], l[u + 1]]); + return e; + }); + } + setClusterOptions(e) { + return ( + (this.workerOptions.cluster = e.cluster), + e && + (e.clusterRadius !== void 0 && + (this.workerOptions.superclusterOptions.radius = + this._pixelsToTileUnits(e.clusterRadius)), + e.clusterMaxZoom !== void 0 && + (this.workerOptions.superclusterOptions.maxZoom = + this._getClusterMaxZoom(e.clusterMaxZoom))), + this._updateWorkerData(), + this + ); + } + getClusterExpansionZoom(e) { + return this.actor.sendAsync({ + type: "GCEZ", + data: { type: this.type, clusterId: e, source: this.id }, + }); + } + getClusterChildren(e) { + return this.actor.sendAsync({ + type: "GCC", + data: { type: this.type, clusterId: e, source: this.id }, + }); + } + getClusterLeaves(e, i, l) { + return this.actor.sendAsync({ + type: "GCL", + data: { + type: this.type, + source: this.id, + clusterId: e, + limit: i, + offset: l, + }, + }); + } + _updateWorkerData() { + return s._(this, void 0, void 0, function* () { + if (this._isUpdatingWorker) return; + const { data: e, diff: i } = this._pendingWorkerUpdate; + if (!e && !i) + return void s.w( + `No data or diff provided to GeoJSONSource ${this.id}.` + ); + const l = s.e({ type: this.type }, this.workerOptions); + e + ? (typeof e == "string" + ? ((l.request = + this.map._requestManager.transformRequest( + ne.resolveURL(e), + "Source" + )), + (l.request.collectResourceTiming = + this._collectResourceTiming)) + : (l.data = JSON.stringify(e)), + (this._pendingWorkerUpdate.data = void 0)) + : i && + ((l.dataDiff = i), + (this._pendingWorkerUpdate.diff = void 0)), + (this._isUpdatingWorker = !0), + this.fire(new s.l("dataloading", { dataType: "source" })); + try { + const u = yield this.actor.sendAsync({ + type: "LD", + data: l, + }); + if ( + ((this._isUpdatingWorker = !1), + this._removed || u.abandoned) + ) + return void this.fire( + new s.l("dataabort", { dataType: "source" }) + ); + this._data = u.data; + let d = null; + u.resourceTiming && + u.resourceTiming[this.id] && + (d = u.resourceTiming[this.id].slice(0)); + const g = { dataType: "source" }; + this._collectResourceTiming && + d && + d.length > 0 && + s.e(g, { resourceTiming: d }), + this.fire( + new s.l( + "data", + Object.assign(Object.assign({}, g), { + sourceDataType: "metadata", + }) + ) + ), + this.fire( + new s.l( + "data", + Object.assign(Object.assign({}, g), { + sourceDataType: "content", + }) + ) + ); + } catch (u) { + if (((this._isUpdatingWorker = !1), this._removed)) + return void this.fire( + new s.l("dataabort", { dataType: "source" }) + ); + this.fire(new s.k(u)); + } finally { + (this._pendingWorkerUpdate.data || + this._pendingWorkerUpdate.diff) && + this._updateWorkerData(); + } + }); + } + loaded() { + return ( + !this._isUpdatingWorker && + this._pendingWorkerUpdate.data === void 0 && + this._pendingWorkerUpdate.diff === void 0 + ); + } + loadTile(e) { + return s._(this, void 0, void 0, function* () { + const i = e.actor ? "RT" : "LT"; + e.actor = this.actor; + const l = { + type: this.type, + uid: e.uid, + tileID: e.tileID, + zoom: e.tileID.overscaledZ, + maxZoom: this.maxzoom, + tileSize: this.tileSize, + source: this.id, + pixelRatio: this.map.getPixelRatio(), + showCollisionBoxes: this.map.showCollisionBoxes, + promoteId: this.promoteId, + subdivisionGranularity: + this.map.style.projection.subdivisionGranularity, + globalState: this.map.getGlobalState(), + }; + e.abortController = new AbortController(); + const u = yield this.actor.sendAsync( + { type: i, data: l }, + e.abortController + ); + delete e.abortController, + e.unloadVectorData(), + e.aborted || + e.loadVectorData(u, this.map.painter, i === "RT"); + }); + } + abortTile(e) { + return s._(this, void 0, void 0, function* () { + e.abortController && + (e.abortController.abort(), delete e.abortController), + (e.aborted = !0); + }); + } + unloadTile(e) { + return s._(this, void 0, void 0, function* () { + e.unloadVectorData(), + yield this.actor.sendAsync({ + type: "RMT", + data: { uid: e.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 s.e({}, this._options, { + type: this.type, + data: this._data, + }); + } + hasTransition() { + return !1; + } + } + class Ot extends s.E { + constructor(e, i, l, u) { + super(), + (this.flippedWindingOrder = !1), + (this.id = e), + (this.dispatcher = l), + (this.coordinates = i.coordinates), + (this.type = "image"), + (this.minzoom = 0), + (this.maxzoom = 22), + (this.tileSize = 512), + (this.tiles = {}), + (this._loaded = !1), + this.setEventedParent(u), + (this.options = i); + } + load(e) { + return s._(this, void 0, void 0, function* () { + (this._loaded = !1), + this.fire(new s.l("dataloading", { dataType: "source" })), + (this.url = this.options.url), + (this._request = new AbortController()); + try { + const i = yield Fe.getImage( + this.map._requestManager.transformRequest( + this.url, + "Image" + ), + this._request + ); + (this._request = null), + (this._loaded = !0), + i && + i.data && + ((this.image = i.data), + e && (this.coordinates = e), + this._finishLoading()); + } catch (i) { + (this._request = null), + (this._loaded = !0), + this.fire(new s.k(i)); + } + }); + } + loaded() { + return this._loaded; + } + updateImage(e) { + return e.url + ? (this._request && + (this._request.abort(), (this._request = null)), + (this.options.url = e.url), + this.load(e.coordinates).finally(() => { + this.texture = null; + }), + this) + : this; + } + _finishLoading() { + this.map && + (this.setCoordinates(this.coordinates), + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "metadata", + }) + )); + } + onAdd(e) { + (this.map = e), this.load(); + } + onRemove() { + this._request && + (this._request.abort(), (this._request = null)); + } + setCoordinates(e) { + this.coordinates = e; + const i = e.map(s.a1.fromLngLat); + var l; + return ( + (this.tileID = (function (u) { + const d = s.a2.fromPoints(u), + g = d.width(), + w = d.height(), + C = Math.max(g, w), + P = Math.max(0, Math.floor(-Math.log(C) / Math.LN2)), + E = Math.pow(2, P); + return new s.a4( + P, + Math.floor(((d.minX + d.maxX) / 2) * E), + Math.floor(((d.minY + d.maxY) / 2) * E) + ); + })(i)), + (this.terrainTileRanges = + this._getOverlappingTileRanges(i)), + (this.minzoom = this.maxzoom = this.tileID.z), + (this.tileCoords = i.map((u) => + this.tileID.getTilePoint(u)._round() + )), + (this.flippedWindingOrder = + ((l = this.tileCoords)[1].x - l[0].x) * + (l[2].y - l[0].y) - + (l[1].y - l[0].y) * (l[2].x - l[0].x) < + 0), + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "content", + }) + ), + this + ); + } + prepare() { + if (Object.keys(this.tiles).length === 0 || !this.image) + return; + const e = this.map.painter.context, + i = e.gl; + this.texture || + ((this.texture = new s.T(e, this.image, i.RGBA)), + this.texture.bind(i.LINEAR, i.CLAMP_TO_EDGE)); + let l = !1; + for (const u in this.tiles) { + const d = this.tiles[u]; + d.state !== "loaded" && + ((d.state = "loaded"), + (d.texture = this.texture), + (l = !0)); + } + l && + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "idle", + sourceId: this.id, + }) + ); + } + loadTile(e) { + return s._(this, void 0, void 0, function* () { + this.tileID && this.tileID.equals(e.tileID.canonical) + ? ((this.tiles[String(e.tileID.wrap)] = e), + (e.buckets = {})) + : (e.state = "errored"); + }); + } + serialize() { + return { + type: "image", + url: this.options.url, + coordinates: this.coordinates, + }; + } + hasTransition() { + return !1; + } + _getOverlappingTileRanges(e) { + const { + minX: i, + minY: l, + maxX: u, + maxY: d, + } = s.a2.fromPoints(e), + g = {}; + for (let w = 0; w <= s.a3; w++) { + const C = Math.pow(2, w), + P = Math.floor(i * C), + E = Math.floor(l * C), + R = Math.floor(u * C), + D = Math.floor(d * C); + g[w] = { + minTileX: P, + minTileY: E, + maxTileX: R, + maxTileY: D, + }; + } + return g; + } + } + class Nt extends Ot { + constructor(e, i, l, u) { + super(e, i, l, u), + (this.roundZoom = !0), + (this.type = "video"), + (this.options = i); + } + load() { + return s._(this, void 0, void 0, function* () { + this._loaded = !1; + const e = this.options; + this.urls = []; + for (const i of e.urls) + this.urls.push( + this.map._requestManager.transformRequest(i, "Source") + .url + ); + try { + const i = yield s.a5(this.urls); + if (((this._loaded = !0), !i)) return; + (this.video = i), + (this.video.loop = !0), + this.video.addEventListener("playing", () => { + this.map.triggerRepaint(); + }), + this.map && this.video.play(), + this._finishLoading(); + } catch (i) { + this.fire(new s.k(i)); + } + }); + } + pause() { + this.video && this.video.pause(); + } + play() { + this.video && this.video.play(); + } + seek(e) { + if (this.video) { + const i = this.video.seekable; + e < i.start(0) || e > i.end(0) + ? this.fire( + new s.k( + new s.a6( + `sources.${this.id}`, + null, + `Playback for this video can be set only between the ${i.start( + 0 + )} and ${i.end(0)}-second mark.` + ) + ) + ) + : (this.video.currentTime = e); + } + } + getVideo() { + return this.video; + } + onAdd(e) { + this.map || + ((this.map = e), + this.load(), + this.video && + (this.video.play(), + this.setCoordinates(this.coordinates))); + } + prepare() { + if ( + Object.keys(this.tiles).length === 0 || + this.video.readyState < 2 + ) + return; + const e = this.map.painter.context, + i = e.gl; + this.texture + ? this.video.paused || + (this.texture.bind(i.LINEAR, i.CLAMP_TO_EDGE), + i.texSubImage2D( + i.TEXTURE_2D, + 0, + 0, + 0, + i.RGBA, + i.UNSIGNED_BYTE, + this.video + )) + : ((this.texture = new s.T(e, this.video, i.RGBA)), + this.texture.bind(i.LINEAR, i.CLAMP_TO_EDGE)); + let l = !1; + for (const u in this.tiles) { + const d = this.tiles[u]; + d.state !== "loaded" && + ((d.state = "loaded"), + (d.texture = this.texture), + (l = !0)); + } + l && + this.fire( + new s.l("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 or extends Ot { + constructor(e, i, l, u) { + super(e, i, l, u), + i.coordinates + ? (Array.isArray(i.coordinates) && + i.coordinates.length === 4 && + !i.coordinates.some( + (d) => + !Array.isArray(d) || + d.length !== 2 || + d.some((g) => typeof g != "number") + )) || + this.fire( + new s.k( + new s.a6( + `sources.${e}`, + null, + '"coordinates" property must be an array of 4 longitude/latitude array pairs' + ) + ) + ) + : this.fire( + new s.k( + new s.a6( + `sources.${e}`, + null, + 'missing required property "coordinates"' + ) + ) + ), + i.animate && + typeof i.animate != "boolean" && + this.fire( + new s.k( + new s.a6( + `sources.${e}`, + null, + 'optional "animate" property must be a boolean value' + ) + ) + ), + i.canvas + ? typeof i.canvas == "string" || + i.canvas instanceof HTMLCanvasElement || + this.fire( + new s.k( + new s.a6( + `sources.${e}`, + null, + '"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance' + ) + ) + ) + : this.fire( + new s.k( + new s.a6( + `sources.${e}`, + null, + 'missing required property "canvas"' + ) + ) + ), + (this.options = i), + (this.animate = i.animate === void 0 || i.animate); + } + load() { + return s._(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 s.k( + 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(e) { + (this.map = e), + this.load(), + this.canvas && this.animate && this.play(); + } + onRemove() { + this.pause(); + } + prepare() { + let e = !1; + if ( + (this.canvas.width !== this.width && + ((this.width = this.canvas.width), (e = !0)), + this.canvas.height !== this.height && + ((this.height = this.canvas.height), (e = !0)), + this._hasInvalidDimensions() || + Object.keys(this.tiles).length === 0) + ) + return; + const i = this.map.painter.context, + l = i.gl; + this.texture + ? (e || this._playing) && + this.texture.update(this.canvas, { premultiply: !0 }) + : (this.texture = new s.T(i, this.canvas, l.RGBA, { + premultiply: !0, + })); + let u = !1; + for (const d in this.tiles) { + const g = this.tiles[d]; + g.state !== "loaded" && + ((g.state = "loaded"), + (g.texture = this.texture), + (u = !0)); + } + u && + this.fire( + new s.l("data", { + dataType: "source", + sourceDataType: "idle", + sourceId: this.id, + }) + ); + } + serialize() { + return { type: "canvas", coordinates: this.coordinates }; + } + hasTransition() { + return this._playing; + } + _hasInvalidDimensions() { + for (const e of [this.canvas.width, this.canvas.height]) + if (isNaN(e) || e <= 0) return !0; + return !1; + } + } + const cr = {}, + Vr = (h) => { + switch (h) { + case "geojson": + return Qt; + case "image": + return Ot; + case "raster": + return $t; + case "raster-dem": + return tr; + case "vector": + return Rt; + case "video": + return Nt; + case "canvas": + return or; + } + return cr[h]; + }, + mr = "RTLPluginLoaded"; + class hr extends s.E { + constructor() { + super(...arguments), + (this.status = "unavailable"), + (this.url = null), + (this.dispatcher = at()); + } + _syncState(e) { + return ( + (this.status = e), + this.dispatcher + .broadcast("SRPS", { + pluginStatus: e, + pluginURL: this.url, + }) + .catch((i) => { + throw ((this.status = "error"), i); + }) + ); + } + getRTLTextPluginStatus() { + return this.status; + } + clearRTLTextPlugin() { + (this.status = "unavailable"), (this.url = null); + } + setRTLTextPlugin(e) { + return s._(this, arguments, void 0, function* (i, l = !1) { + if (this.url) + throw new Error( + "setRTLTextPlugin cannot be called multiple times." + ); + if (((this.url = ne.resolveURL(i)), !this.url)) + throw new Error(`requested url ${i} is invalid`); + if (this.status === "unavailable") { + if (!l) return this._requestImport(); + (this.status = "deferred"), this._syncState(this.status); + } else if (this.status === "requested") return this._requestImport(); + }); + } + _requestImport() { + return s._(this, void 0, void 0, function* () { + yield this._syncState("loading"), + (this.status = "loaded"), + this.fire(new s.l(mr)); + }); + } + lazyLoad() { + this.status === "unavailable" + ? (this.status = "requested") + : this.status === "deferred" && this._requestImport(); + } + } + let _r = null; + function Ir() { + return _r || (_r = new hr()), _r; + } + class qr { + constructor(e, i) { + (this.timeAdded = 0), + (this.fadeEndTime = 0), + (this.tileID = e), + (this.uid = s.a7()), + (this.uses = 0), + (this.tileSize = i), + (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(e) { + const i = e + this.timeAdded; + i < this.fadeEndTime || (this.fadeEndTime = i); + } + wasRequested() { + return ( + this.state === "errored" || + this.state === "loaded" || + this.state === "reloading" + ); + } + clearTextures(e) { + this.demTexture && e.saveTileTexture(this.demTexture), + (this.demTexture = null); + } + loadVectorData(e, i, l) { + if ( + (this.hasData() && this.unloadVectorData(), + (this.state = "loaded"), + e) + ) { + e.featureIndex && + ((this.latestFeatureIndex = e.featureIndex), + e.rawTileData + ? ((this.latestRawTileData = e.rawTileData), + (this.latestFeatureIndex.rawTileData = e.rawTileData)) + : this.latestRawTileData && + (this.latestFeatureIndex.rawTileData = + this.latestRawTileData)), + (this.collisionBoxArray = e.collisionBoxArray), + (this.buckets = (function (u, d) { + const g = {}; + if (!d) return g; + for (const w of u) { + const C = w.layerIds + .map((P) => d.getLayer(P)) + .filter(Boolean); + if (C.length !== 0) { + (w.layers = C), + w.stateDependentLayerIds && + (w.stateDependentLayers = + w.stateDependentLayerIds.map( + (P) => C.filter((E) => E.id === P)[0] + )); + for (const P of C) g[P.id] = w; + } + } + return g; + })(e.buckets, i == null ? void 0 : i.style)), + (this.hasSymbolBuckets = !1); + for (const u in this.buckets) { + const d = this.buckets[u]; + if (d instanceof s.a9) { + if (((this.hasSymbolBuckets = !0), !l)) break; + d.justReloaded = !0; + } + } + if (((this.hasRTLText = !1), this.hasSymbolBuckets)) + for (const u in this.buckets) { + const d = this.buckets[u]; + if (d instanceof s.a9 && d.hasRTLText) { + (this.hasRTLText = !0), Ir().lazyLoad(); + break; + } + } + this.queryPadding = 0; + for (const u in this.buckets) { + const d = this.buckets[u]; + this.queryPadding = Math.max( + this.queryPadding, + i.style.getLayer(u).queryRadius(d) + ); + } + e.imageAtlas && (this.imageAtlas = e.imageAtlas), + e.glyphAtlasImage && + (this.glyphAtlasImage = e.glyphAtlasImage); + } else this.collisionBoxArray = new s.a8(); + } + unloadVectorData() { + for (const e in this.buckets) this.buckets[e].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(e) { + return this.buckets[e.id]; + } + upload(e) { + for (const l in this.buckets) { + const u = this.buckets[l]; + u.uploadPending() && u.upload(e); + } + const i = e.gl; + this.imageAtlas && + !this.imageAtlas.uploaded && + ((this.imageAtlasTexture = new s.T( + e, + this.imageAtlas.image, + i.RGBA + )), + (this.imageAtlas.uploaded = !0)), + this.glyphAtlasImage && + ((this.glyphAtlasTexture = new s.T( + e, + this.glyphAtlasImage, + i.ALPHA + )), + (this.glyphAtlasImage = null)); + } + prepare(e) { + this.imageAtlas && + this.imageAtlas.patchUpdatedImages( + e, + this.imageAtlasTexture + ); + } + queryRenderedFeatures(e, i, l, u, d, g, w, C, P, E, R) { + return this.latestFeatureIndex && + this.latestFeatureIndex.rawTileData + ? this.latestFeatureIndex.query( + { + queryGeometry: u, + cameraQueryGeometry: d, + scale: g, + tileSize: this.tileSize, + pixelPosMatrix: E, + transform: C, + params: w, + queryPadding: this.queryPadding * P, + getElevation: R, + }, + e, + i, + l + ) + : {}; + } + querySourceFeatures(e, i) { + const l = this.latestFeatureIndex; + if (!l || !l.rawTileData) return; + const u = l.loadVTLayers(), + d = i && i.sourceLayer ? i.sourceLayer : "", + g = u._geojsonTileLayer || u[d]; + if (!g) return; + const w = s.aa(i && i.filter), + { z: C, x: P, y: E } = this.tileID.canonical, + R = { z: C, x: P, y: E }; + for (let D = 0; D < g.length; D++) { + const N = g.feature(D); + if (w.needGeometry) { + const Q = s.ab(N, !0); + if ( + !w.filter( + new s.F(this.tileID.overscaledZ), + Q, + this.tileID.canonical + ) + ) + continue; + } else if (!w.filter(new s.F(this.tileID.overscaledZ), N)) + continue; + const G = l.getId(N, d), + te = new s.ac(N, C, P, E, G); + (te.tile = R), e.push(te); + } + } + hasData() { + return ( + this.state === "loaded" || + this.state === "reloading" || + this.state === "expired" + ); + } + patternsLoaded() { + return ( + this.imageAtlas && + !!Object.keys(this.imageAtlas.patternPositions).length + ); + } + setExpiryData(e) { + const i = this.expirationTime; + if (e.cacheControl) { + const l = s.ad(e.cacheControl); + l["max-age"] && + (this.expirationTime = Date.now() + 1e3 * l["max-age"]); + } else e.expires && (this.expirationTime = new Date(e.expires).getTime()); + if (this.expirationTime) { + const l = Date.now(); + let u = !1; + if (this.expirationTime > l) u = !1; + else if (i) + if (this.expirationTime < i) u = !0; + else { + const d = this.expirationTime - i; + d + ? (this.expirationTime = l + Math.max(d, 3e4)) + : (u = !0); + } + else u = !0; + u + ? (this.expiredRequestCount++, (this.state = "expired")) + : (this.expiredRequestCount = 0); + } + } + getExpiryTimeout() { + if (this.expirationTime) + return this.expiredRequestCount + ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) + : Math.min( + this.expirationTime - new Date().getTime(), + Math.pow(2, 31) - 1 + ); + } + setFeatureState(e, i) { + if ( + !this.latestFeatureIndex || + !this.latestFeatureIndex.rawTileData || + Object.keys(e).length === 0 + ) + return; + const l = this.latestFeatureIndex.loadVTLayers(); + for (const u in this.buckets) { + if (!i.style.hasLayer(u)) continue; + const d = this.buckets[u], + g = d.layers[0].sourceLayer || "_geojsonTileLayer", + w = l[g], + C = e[g]; + if (!w || !C || Object.keys(C).length === 0) continue; + d.update( + C, + w, + (this.imageAtlas && this.imageAtlas.patternPositions) || + {} + ); + const P = i && i.style && i.style.getLayer(u); + P && + (this.queryPadding = Math.max( + this.queryPadding, + P.queryRadius(d) + )); + } + } + holdingForFade() { + return this.symbolFadeHoldUntil !== void 0; + } + symbolFadeFinished() { + return ( + !this.symbolFadeHoldUntil || + this.symbolFadeHoldUntil < ne.now() + ); + } + clearFadeHold() { + this.symbolFadeHoldUntil = void 0; + } + setHoldDuration(e) { + this.symbolFadeHoldUntil = ne.now() + e; + } + setDependencies(e, i) { + const l = {}; + for (const u of i) l[u] = !0; + this.dependencies[e] = l; + } + hasDependency(e, i) { + for (const l of e) { + const u = this.dependencies[l]; + if (u) { + for (const d of i) if (u[d]) return !0; + } + } + return !1; + } + } + class ue { + constructor(e, i) { + (this.max = e), (this.onRemove = i), this.reset(); + } + reset() { + for (const e in this.data) + for (const i of this.data[e]) + i.timeout && clearTimeout(i.timeout), + this.onRemove(i.value); + return (this.data = {}), (this.order = []), this; + } + add(e, i, l) { + const u = e.wrapped().key; + this.data[u] === void 0 && (this.data[u] = []); + const d = { value: i, timeout: void 0 }; + if ( + (l !== void 0 && + (d.timeout = setTimeout(() => { + this.remove(e, d); + }, l)), + this.data[u].push(d), + this.order.push(u), + this.order.length > this.max) + ) { + const g = this._getAndRemoveByKey(this.order[0]); + g && this.onRemove(g); + } + return this; + } + has(e) { + return e.wrapped().key in this.data; + } + getAndRemove(e) { + return this.has(e) + ? this._getAndRemoveByKey(e.wrapped().key) + : null; + } + _getAndRemoveByKey(e) { + const i = this.data[e].shift(); + return ( + i.timeout && clearTimeout(i.timeout), + this.data[e].length === 0 && delete this.data[e], + this.order.splice(this.order.indexOf(e), 1), + i.value + ); + } + getByKey(e) { + const i = this.data[e]; + return i ? i[0].value : null; + } + get(e) { + return this.has(e) + ? this.data[e.wrapped().key][0].value + : null; + } + remove(e, i) { + if (!this.has(e)) return this; + const l = e.wrapped().key, + u = i === void 0 ? 0 : this.data[l].indexOf(i), + d = this.data[l][u]; + return ( + this.data[l].splice(u, 1), + d.timeout && clearTimeout(d.timeout), + this.data[l].length === 0 && delete this.data[l], + this.onRemove(d.value), + this.order.splice(this.order.indexOf(l), 1), + this + ); + } + setMaxSize(e) { + for (this.max = e; this.order.length > this.max; ) { + const i = this._getAndRemoveByKey(this.order[0]); + i && this.onRemove(i); + } + return this; + } + filter(e) { + const i = []; + for (const l in this.data) + for (const u of this.data[l]) e(u.value) || i.push(u); + for (const l of i) this.remove(l.value.tileID, l); + } + } + class V { + constructor() { + (this.state = {}), + (this.stateChanges = {}), + (this.deletedStates = {}); + } + updateState(e, i, l) { + const u = String(i); + if ( + ((this.stateChanges[e] = this.stateChanges[e] || {}), + (this.stateChanges[e][u] = this.stateChanges[e][u] || {}), + s.e(this.stateChanges[e][u], l), + this.deletedStates[e] === null) + ) { + this.deletedStates[e] = {}; + for (const d in this.state[e]) + d !== u && (this.deletedStates[e][d] = null); + } else if ( + this.deletedStates[e] && + this.deletedStates[e][u] === null + ) { + this.deletedStates[e][u] = {}; + for (const d in this.state[e][u]) + l[d] || (this.deletedStates[e][u][d] = null); + } else + for (const d in l) + this.deletedStates[e] && + this.deletedStates[e][u] && + this.deletedStates[e][u][d] === null && + delete this.deletedStates[e][u][d]; + } + removeFeatureState(e, i, l) { + if (this.deletedStates[e] === null) return; + const u = String(i); + if ( + ((this.deletedStates[e] = this.deletedStates[e] || {}), + l && i !== void 0) + ) + this.deletedStates[e][u] !== null && + ((this.deletedStates[e][u] = + this.deletedStates[e][u] || {}), + (this.deletedStates[e][u][l] = null)); + else if (i !== void 0) + if (this.stateChanges[e] && this.stateChanges[e][u]) + for (l in ((this.deletedStates[e][u] = {}), + this.stateChanges[e][u])) + this.deletedStates[e][u][l] = null; + else this.deletedStates[e][u] = null; + else this.deletedStates[e] = null; + } + getState(e, i) { + const l = String(i), + u = s.e( + {}, + (this.state[e] || {})[l], + (this.stateChanges[e] || {})[l] + ); + if (this.deletedStates[e] === null) return {}; + if (this.deletedStates[e]) { + const d = this.deletedStates[e][i]; + if (d === null) return {}; + for (const g in d) delete u[g]; + } + return u; + } + initializeTileState(e, i) { + e.setFeatureState(this.state, i); + } + coalesceChanges(e, i) { + const l = {}; + for (const u in this.stateChanges) { + this.state[u] = this.state[u] || {}; + const d = {}; + for (const g in this.stateChanges[u]) + this.state[u][g] || (this.state[u][g] = {}), + s.e(this.state[u][g], this.stateChanges[u][g]), + (d[g] = this.state[u][g]); + l[u] = d; + } + for (const u in this.deletedStates) { + this.state[u] = this.state[u] || {}; + const d = {}; + if (this.deletedStates[u] === null) + for (const g in this.state[u]) + (d[g] = {}), (this.state[u][g] = {}); + else + for (const g in this.deletedStates[u]) { + if (this.deletedStates[u][g] === null) + this.state[u][g] = {}; + else + for (const w of Object.keys(this.deletedStates[u][g])) + delete this.state[u][g][w]; + d[g] = this.state[u][g]; + } + (l[u] = l[u] || {}), s.e(l[u], d); + } + if ( + ((this.stateChanges = {}), + (this.deletedStates = {}), + Object.keys(l).length !== 0) + ) + for (const u in e) e[u].setFeatureState(l, i); + } + } + const U = 89.25; + function Y(h, e) { + const i = s.ah(e.lat, -s.ai, s.ai); + return new s.P(s.V(e.lng) * h, s.U(i) * h); + } + function ie(h, e) { + return new s.a1(e.x / h, e.y / h).toLngLat(); + } + function pe(h) { + return ( + h.cameraToCenterDistance * + Math.min( + 0.85 * Math.tan(s.ae(90 - h.pitch)), + Math.tan(s.ae(U - h.pitch)) + ) + ); + } + function Se(h, e) { + const i = h.canonical, + l = e / s.af(i.z), + u = i.x + Math.pow(2, i.z) * h.wrap, + d = s.ag(new Float64Array(16)); + return ( + s.M(d, d, [u * l, i.y * l, 0]), + s.N(d, d, [l / s.$, l / s.$, 1]), + d + ); + } + function Me(h, e, i, l, u) { + const d = s.a1.fromLngLat(h, e), + g = u * s.aj(1, h.lat), + w = g * Math.cos(s.ae(i)), + C = Math.sqrt(g * g - w * w), + P = C * Math.sin(s.ae(-l)), + E = C * Math.cos(s.ae(-l)); + return new s.a1(d.x + P, d.y + E, d.z + w); + } + function we(h, e, i) { + const l = e.intersectsFrustum(h); + if (!i || l === 0) return l; + const u = e.intersectsPlane(i); + return u === 0 ? 0 : l === 2 && u === 2 ? 2 : 1; + } + function Ve(h, e, i) { + let l = 0; + const u = (i - e) / 10; + for (let d = 0; d < 10; d++) + l += + u * Math.pow(Math.cos(e + ((d + 0.5) / 10) * (i - e)), h); + return l; + } + function ut(h, e) { + return function (i, l, u, d, g) { + const w = + 2 * + ((h - 1) / + s.ak(Math.cos(s.ae(U - g)) / Math.cos(s.ae(U))) - + 1), + C = Math.acos(u / d), + P = 2 * Ve(w - 1, 0, s.ae(g / 2)), + E = Math.min(s.ae(U), C + s.ae(g / 2)), + R = Ve(w - 1, Math.min(E, C - s.ae(g / 2)), E), + D = Math.atan(l / u), + N = Math.hypot(l, u); + let G = i; + return ( + (G += s.ak(d / N / Math.max(0.5, Math.cos(s.ae(g / 2))))), + (G += (w * s.ak(Math.cos(D))) / 2), + (G -= s.ak(Math.max(1, R / P / e)) / 2), + G + ); + }; + } + const Ke = ut(9.314, 3); + function kt(h, e) { + const i = (e.roundZoom ? Math.round : Math.floor)( + h.zoom + s.ak(h.tileSize / e.tileSize) + ); + return Math.max(0, i); + } + function ye(h, e) { + const i = h.getCameraFrustum(), + l = h.getClippingPlane(), + u = h.screenPointToMercatorCoordinate(h.getCameraPoint()), + d = s.a1.fromLngLat(h.center, h.elevation); + u.z = + d.z + + (Math.cos(h.pitchInRadians) * h.cameraToCenterDistance) / + h.worldSize; + const g = h.getCoveringTilesDetailsProvider(), + w = g.allowVariableZoom(h, e), + C = kt(h, e), + P = e.minzoom || 0, + E = e.maxzoom !== void 0 ? e.maxzoom : h.maxZoom, + R = Math.min(Math.max(0, C), E), + D = Math.pow(2, R), + N = [D * u.x, D * u.y, 0], + G = [D * d.x, D * d.y, 0], + te = Math.hypot(d.x - u.x, d.y - u.y), + Q = Math.abs(d.z - u.z), + ae = Math.hypot(te, Q), + ce = (be) => ({ + zoom: 0, + x: 0, + y: 0, + wrap: be, + fullyVisible: !1, + }), + ve = [], + me = []; + if (h.renderWorldCopies && g.allowWorldCopies()) + for (let be = 1; be <= 3; be++) + ve.push(ce(-be)), ve.push(ce(be)); + for (ve.push(ce(0)); ve.length > 0; ) { + const be = ve.pop(), + Pe = be.x, + _e = be.y; + let Be = be.fullyVisible; + const rt = { x: Pe, y: _e, z: be.zoom }, + Ge = g.getTileBoundingVolume(rt, be.wrap, h.elevation, e); + if (!Be) { + const Zt = we(i, Ge, l); + if (Zt === 0) continue; + Be = Zt === 2; + } + const Xe = g.distanceToTile2d(u.x, u.y, rt, Ge); + let tt = C; + w && + (tt = (e.calculateTileZoom || Ke)( + h.zoom + s.ak(h.tileSize / e.tileSize), + Xe, + Q, + ae, + h.fov + )), + (tt = (e.roundZoom ? Math.round : Math.floor)(tt)), + (tt = Math.max(0, tt)); + const jt = Math.min(tt, E); + if (((be.wrap = g.getWrap(d, rt, be.wrap)), be.zoom >= jt)) { + if (be.zoom < P) continue; + const Zt = R - be.zoom, + Tt = N[0] - 0.5 - (Pe << Zt), + vr = N[1] - 0.5 - (_e << Zt), + Jr = e.reparseOverscaled + ? Math.max(be.zoom, tt) + : be.zoom; + me.push({ + tileID: new s.Z( + be.zoom === E ? Jr : be.zoom, + be.wrap, + be.zoom, + Pe, + _e + ), + distanceSq: s.al([G[0] - 0.5 - Pe, G[1] - 0.5 - _e]), + tileDistanceToCamera: Math.sqrt(Tt * Tt + vr * vr), + }); + } else + for (let Zt = 0; Zt < 4; Zt++) + ve.push({ + zoom: be.zoom + 1, + x: (Pe << 1) + (Zt % 2), + y: (_e << 1) + (Zt >> 1), + wrap: be.wrap, + fullyVisible: Be, + }); + } + return me + .sort((be, Pe) => be.distanceSq - Pe.distanceSq) + .map((be) => be.tileID); + } + const Bt = s.a2.fromPoints([new s.P(0, 0), new s.P(s.$, s.$)]); + class rr extends s.E { + constructor(e, i, l) { + super(), + (this.id = e), + (this.dispatcher = l), + this.on("data", (u) => this._dataHandler(u)), + this.on("dataloading", () => { + this._sourceErrored = !1; + }), + this.on("error", () => { + this._sourceErrored = this._source.loaded(); + }), + (this._source = ((u, d, g, w) => { + const C = new (Vr(d.type))(u, d, g, w); + if (C.id !== u) + throw new Error( + `Expected Source id to be ${u} instead of ${C.id}` + ); + return C; + })(e, i, l, this)), + (this._tiles = {}), + (this._cache = new ue(0, (u) => this._unloadTile(u))), + (this._timers = {}), + (this._cacheTimers = {}), + (this._maxTileCacheSize = null), + (this._maxTileCacheZoomLevels = null), + (this._loadedParentTiles = {}), + (this._coveredTiles = {}), + (this._state = new V()), + (this._didEmitContent = !1), + (this._updated = !1); + } + onAdd(e) { + (this.map = e), + (this._maxTileCacheSize = e ? e._maxTileCacheSize : null), + (this._maxTileCacheZoomLevels = e + ? e._maxTileCacheZoomLevels + : null), + this._source && this._source.onAdd && this._source.onAdd(e); + } + onRemove(e) { + this.clearTiles(), + this._source && + this._source.onRemove && + this._source.onRemove(e); + } + 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 e in this._tiles) { + const i = this._tiles[e]; + if (i.state !== "loaded" && i.state !== "errored") + return !1; + } + return !0; + } + getSource() { + return this._source; + } + pause() { + this._paused = !0; + } + resume() { + if (!this._paused) return; + const e = this._shouldReloadOnResume; + (this._paused = !1), + (this._shouldReloadOnResume = !1), + e && this.reload(), + this.transform && this.update(this.transform, this.terrain); + } + _loadTile(e, i, l) { + return s._(this, void 0, void 0, function* () { + try { + yield this._source.loadTile(e), this._tileLoaded(e, i, l); + } catch (u) { + (e.state = "errored"), + u.status !== 404 + ? this._source.fire(new s.k(u, { tile: e })) + : this.update(this.transform, this.terrain); + } + }); + } + _unloadTile(e) { + this._source.unloadTile && this._source.unloadTile(e); + } + _abortTile(e) { + this._source.abortTile && this._source.abortTile(e), + this._source.fire( + new s.l("dataabort", { + tile: e, + coord: e.tileID, + dataType: "source", + }) + ); + } + serialize() { + return this._source.serialize(); + } + prepare(e) { + this._source.prepare && this._source.prepare(), + this._state.coalesceChanges( + this._tiles, + this.map ? this.map.painter : null + ); + for (const i in this._tiles) { + const l = this._tiles[i]; + l.upload(e), l.prepare(this.map.style.imageManager); + } + } + getIds() { + return Object.values(this._tiles) + .map((e) => e.tileID) + .sort(Kt) + .map((e) => e.key); + } + getRenderableIds(e) { + const i = []; + for (const l in this._tiles) + this._isIdRenderable(l, e) && i.push(this._tiles[l]); + return e + ? i + .sort((l, u) => { + const d = l.tileID, + g = u.tileID, + w = new s.P(d.canonical.x, d.canonical.y)._rotate( + -this.transform.bearingInRadians + ), + C = new s.P(g.canonical.x, g.canonical.y)._rotate( + -this.transform.bearingInRadians + ); + return ( + d.overscaledZ - g.overscaledZ || + C.y - w.y || + C.x - w.x + ); + }) + .map((l) => l.tileID.key) + : i + .map((l) => l.tileID) + .sort(Kt) + .map((l) => l.key); + } + hasRenderableParent(e) { + const i = this.findLoadedParent(e, 0); + return !!i && this._isIdRenderable(i.tileID.key); + } + _isIdRenderable(e, i) { + return ( + this._tiles[e] && + this._tiles[e].hasData() && + !this._coveredTiles[e] && + (i || !this._tiles[e].holdingForFade()) + ); + } + reload(e) { + if (this._paused) this._shouldReloadOnResume = !0; + else { + this._cache.reset(); + for (const i in this._tiles) + e + ? this._reloadTile(i, "expired") + : this._tiles[i].state !== "errored" && + this._reloadTile(i, "reloading"); + } + } + _reloadTile(e, i) { + return s._(this, void 0, void 0, function* () { + const l = this._tiles[e]; + l && + (l.state !== "loading" && (l.state = i), + yield this._loadTile(l, e, i)); + }); + } + _tileLoaded(e, i, l) { + (e.timeAdded = ne.now()), + l === "expired" && (e.refreshedUponExpiration = !0), + this._setTileReloadTimer(i, e), + this.getSource().type === "raster-dem" && + e.dem && + this._backfillDEM(e), + this._state.initializeTileState( + e, + this.map ? this.map.painter : null + ), + e.aborted || + this._source.fire( + new s.l("data", { + dataType: "source", + tile: e, + coord: e.tileID, + }) + ); + } + _backfillDEM(e) { + const i = this.getRenderableIds(); + for (let u = 0; u < i.length; u++) { + const d = i[u]; + if (e.neighboringTiles && e.neighboringTiles[d]) { + const g = this.getTileByID(d); + l(e, g), l(g, e); + } + } + function l(u, d) { + (u.needsHillshadePrepare = !0), + (u.needsTerrainPrepare = !0); + let g = d.tileID.canonical.x - u.tileID.canonical.x; + const w = d.tileID.canonical.y - u.tileID.canonical.y, + C = Math.pow(2, u.tileID.canonical.z), + P = d.tileID.key; + (g === 0 && w === 0) || + Math.abs(w) > 1 || + (Math.abs(g) > 1 && + (Math.abs(g + C) === 1 + ? (g += C) + : Math.abs(g - C) === 1 && (g -= C)), + d.dem && + u.dem && + (u.dem.backfillBorder(d.dem, g, w), + u.neighboringTiles && + u.neighboringTiles[P] && + (u.neighboringTiles[P].backfilled = !0))); + } + } + getTile(e) { + return this.getTileByID(e.key); + } + getTileByID(e) { + return this._tiles[e]; + } + _retainLoadedChildren(e, i, l, u) { + for (const d in this._tiles) { + let g = this._tiles[d]; + if ( + u[d] || + !g.hasData() || + g.tileID.overscaledZ <= i || + g.tileID.overscaledZ > l + ) + continue; + let w = g.tileID; + for (; g && g.tileID.overscaledZ > i + 1; ) { + const P = g.tileID.scaledTo(g.tileID.overscaledZ - 1); + (g = this._tiles[P.key]), g && g.hasData() && (w = P); + } + let C = w; + for (; C.overscaledZ > i; ) + if ( + ((C = C.scaledTo(C.overscaledZ - 1)), + e[C.key] || e[C.canonical.key]) + ) { + u[w.key] = w; + break; + } + } + } + findLoadedParent(e, i) { + if (e.key in this._loadedParentTiles) { + const l = this._loadedParentTiles[e.key]; + return l && l.tileID.overscaledZ >= i ? l : null; + } + for (let l = e.overscaledZ - 1; l >= i; l--) { + const u = e.scaledTo(l), + d = this._getLoadedTile(u); + if (d) return d; + } + } + findLoadedSibling(e) { + return this._getLoadedTile(e); + } + _getLoadedTile(e) { + const i = this._tiles[e.key]; + return i && i.hasData() + ? i + : this._cache.getByKey(e.wrapped().key); + } + updateCacheSize(e) { + const i = Math.ceil(e.width / this._source.tileSize) + 1, + l = Math.ceil(e.height / this._source.tileSize) + 1, + u = Math.floor( + i * + l * + (this._maxTileCacheZoomLevels === null + ? s.a.MAX_TILE_CACHE_ZOOM_LEVELS + : this._maxTileCacheZoomLevels) + ), + d = + typeof this._maxTileCacheSize == "number" + ? Math.min(this._maxTileCacheSize, u) + : u; + this._cache.setMaxSize(d); + } + handleWrapJump(e) { + const i = Math.round( + (e - (this._prevLng === void 0 ? e : this._prevLng)) / 360 + ); + if (((this._prevLng = e), i)) { + const l = {}; + for (const u in this._tiles) { + const d = this._tiles[u]; + (d.tileID = d.tileID.unwrapTo(d.tileID.wrap + i)), + (l[d.tileID.key] = d); + } + this._tiles = l; + for (const u in this._timers) + clearTimeout(this._timers[u]), delete this._timers[u]; + for (const u in this._tiles) + this._setTileReloadTimer(u, this._tiles[u]); + } + } + _updateCoveredAndRetainedTiles(e, i, l, u, d, g) { + const w = {}, + C = {}, + P = Object.keys(e), + E = ne.now(); + for (const R of P) { + const D = e[R], + N = this._tiles[R]; + if (!N || (N.fadeEndTime !== 0 && N.fadeEndTime <= E)) + continue; + const G = this.findLoadedParent(D, i), + te = this.findLoadedSibling(D), + Q = G || te || null; + Q && + (this._addTile(Q.tileID), (w[Q.tileID.key] = Q.tileID)), + (C[R] = D); + } + this._retainLoadedChildren(C, u, l, e); + for (const R in w) + e[R] || ((this._coveredTiles[R] = !0), (e[R] = w[R])); + if (g) { + const R = {}, + D = {}; + for (const N of d) + this._tiles[N.key].hasData() + ? (R[N.key] = N) + : (D[N.key] = N); + for (const N in D) { + const G = D[N].children(this._source.maxzoom); + this._tiles[G[0].key] && + this._tiles[G[1].key] && + this._tiles[G[2].key] && + this._tiles[G[3].key] && + ((R[G[0].key] = e[G[0].key] = G[0]), + (R[G[1].key] = e[G[1].key] = G[1]), + (R[G[2].key] = e[G[2].key] = G[2]), + (R[G[3].key] = e[G[3].key] = G[3]), + delete D[N]); + } + for (const N in D) { + const G = D[N], + te = this.findLoadedParent(G, this._source.minzoom), + Q = this.findLoadedSibling(G), + ae = te || Q || null; + if (ae) { + R[ae.tileID.key] = e[ae.tileID.key] = ae.tileID; + for (const ce in R) + R[ce].isChildOf(ae.tileID) && delete R[ce]; + } + } + for (const N in this._tiles) + R[N] || (this._coveredTiles[N] = !0); + } + } + update(e, i) { + if (!this._sourceLoaded || this._paused) return; + let l; + (this.transform = e), + (this.terrain = i), + this.updateCacheSize(e), + this.handleWrapJump(this.transform.center.lng), + (this._coveredTiles = {}), + this.used || this.usedForTerrain + ? this._source.tileID + ? (l = e + .getVisibleUnwrappedCoordinates(this._source.tileID) + .map( + (E) => + new s.Z( + E.canonical.z, + E.wrap, + E.canonical.z, + E.canonical.x, + E.canonical.y + ) + )) + : ((l = ye(e, { + 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: i, + calculateTileZoom: this._source.calculateTileZoom, + })), + this._source.hasTile && + (l = l.filter((E) => this._source.hasTile(E)))) + : (l = []); + const u = kt(e, this._source), + d = Math.max(u - rr.maxOverzooming, this._source.minzoom), + g = Math.max(u + rr.maxUnderzooming, this._source.minzoom); + if (this.usedForTerrain) { + const E = {}; + for (const R of l) + if (R.canonical.z > this._source.minzoom) { + const D = R.scaledTo(R.canonical.z - 1); + E[D.key] = D; + const N = R.scaledTo( + Math.max( + this._source.minzoom, + Math.min(R.canonical.z, 5) + ) + ); + E[N.key] = N; + } + l = l.concat(Object.values(E)); + } + const w = + l.length === 0 && !this._updated && this._didEmitContent; + (this._updated = !0), + w && + this.fire( + new s.l("data", { + sourceDataType: "idle", + dataType: "source", + sourceId: this.id, + }) + ); + const C = this._updateRetainedTiles(l, u); + gr(this._source.type) && + this._updateCoveredAndRetainedTiles(C, d, g, u, l, i); + for (const E in C) this._tiles[E].clearFadeHold(); + const P = s.am(this._tiles, C); + for (const E of P) { + const R = this._tiles[E]; + R.hasSymbolBuckets && !R.holdingForFade() + ? R.setHoldDuration(this.map._fadeDuration) + : (R.hasSymbolBuckets && !R.symbolFadeFinished()) || + this._removeTile(E); + } + this._updateLoadedParentTileCache(), + this._updateLoadedSiblingTileCache(); + } + releaseSymbolFadeTiles() { + for (const e in this._tiles) + this._tiles[e].holdingForFade() && this._removeTile(e); + } + _updateRetainedTiles(e, i) { + var l; + const u = {}, + d = {}, + g = Math.max(i - rr.maxOverzooming, this._source.minzoom), + w = Math.max(i + rr.maxUnderzooming, this._source.minzoom), + C = {}; + for (const P of e) { + const E = this._addTile(P); + (u[P.key] = P), + E.hasData() || + (i < this._source.maxzoom && (C[P.key] = P)); + } + this._retainLoadedChildren(C, i, w, u); + for (const P of e) { + let E = this._tiles[P.key]; + if (E.hasData()) continue; + if (i + 1 > this._source.maxzoom) { + const D = P.children(this._source.maxzoom)[0], + N = this.getTile(D); + if (N && N.hasData()) { + u[D.key] = D; + continue; + } + } else { + const D = P.children(this._source.maxzoom); + if ( + u[D[0].key] && + u[D[1].key] && + u[D[2].key] && + u[D[3].key] + ) + continue; + } + let R = E.wasRequested(); + for (let D = P.overscaledZ - 1; D >= g; --D) { + const N = P.scaledTo(D); + if (d[N.key]) break; + if ( + ((d[N.key] = !0), + (E = this.getTile(N)), + !E && R && (E = this._addTile(N)), + E) + ) { + const G = E.hasData(); + if ( + ((G || + !( + !((l = this.map) === null || l === void 0) && + l.cancelPendingTileRequestsWhileZooming + ) || + R) && + (u[N.key] = N), + (R = E.wasRequested()), + G) + ) + break; + } + } + } + return u; + } + _updateLoadedParentTileCache() { + this._loadedParentTiles = {}; + for (const e in this._tiles) { + const i = []; + let l, + u = this._tiles[e].tileID; + for (; u.overscaledZ > 0; ) { + if (u.key in this._loadedParentTiles) { + l = this._loadedParentTiles[u.key]; + break; + } + i.push(u.key); + const d = u.scaledTo(u.overscaledZ - 1); + if (((l = this._getLoadedTile(d)), l)) break; + u = d; + } + for (const d of i) this._loadedParentTiles[d] = l; + } + } + _updateLoadedSiblingTileCache() { + this._loadedSiblingTiles = {}; + for (const e in this._tiles) { + const i = this._tiles[e].tileID, + l = this._getLoadedTile(i); + this._loadedSiblingTiles[i.key] = l; + } + } + _addTile(e) { + let i = this._tiles[e.key]; + if (i) return i; + (i = this._cache.getAndRemove(e)), + i && + (this._setTileReloadTimer(e.key, i), + (i.tileID = e), + this._state.initializeTileState( + i, + this.map ? this.map.painter : null + ), + this._cacheTimers[e.key] && + (clearTimeout(this._cacheTimers[e.key]), + delete this._cacheTimers[e.key], + this._setTileReloadTimer(e.key, i))); + const l = i; + return ( + i || + ((i = new qr( + e, + this._source.tileSize * e.overscaleFactor() + )), + this._loadTile(i, e.key, i.state)), + i.uses++, + (this._tiles[e.key] = i), + l || + this._source.fire( + new s.l("dataloading", { + tile: i, + coord: i.tileID, + dataType: "source", + }) + ), + i + ); + } + _setTileReloadTimer(e, i) { + e in this._timers && + (clearTimeout(this._timers[e]), delete this._timers[e]); + const l = i.getExpiryTimeout(); + l && + (this._timers[e] = setTimeout(() => { + this._reloadTile(e, "expired"), delete this._timers[e]; + }, l)); + } + refreshTiles(e) { + for (const i in this._tiles) + (this._isIdRenderable(i) || + this._tiles[i].state == "errored") && + e.some((l) => + l.equals(this._tiles[i].tileID.canonical) + ) && + this._reloadTile(i, "expired"); + } + _removeTile(e) { + const i = this._tiles[e]; + i && + (i.uses--, + delete this._tiles[e], + this._timers[e] && + (clearTimeout(this._timers[e]), delete this._timers[e]), + i.uses > 0 || + (i.hasData() && i.state !== "reloading" + ? this._cache.add(i.tileID, i, i.getExpiryTimeout()) + : ((i.aborted = !0), + this._abortTile(i), + this._unloadTile(i)))); + } + _dataHandler(e) { + const i = e.sourceDataType; + e.dataType === "source" && + i === "metadata" && + (this._sourceLoaded = !0), + this._sourceLoaded && + !this._paused && + e.dataType === "source" && + i === "content" && + (this.reload(e.sourceDataChanged), + this.transform && + this.update(this.transform, this.terrain), + (this._didEmitContent = !0)); + } + clearTiles() { + (this._shouldReloadOnResume = !1), (this._paused = !1); + for (const e in this._tiles) this._removeTile(e); + this._cache.reset(); + } + tilesIn(e, i, l) { + const u = [], + d = this.transform; + if (!d) return u; + const g = d + .getCoveringTilesDetailsProvider() + .allowWorldCopies(), + w = l ? d.getCameraQueryGeometry(e) : e, + C = (N) => + d.screenPointToMercatorCoordinate(N, this.terrain), + P = this.transformBbox(e, C, !g), + E = this.transformBbox(w, C, !g), + R = this.getIds(), + D = s.a2.fromPoints(E); + for (let N = 0; N < R.length; N++) { + const G = this._tiles[R[N]]; + if (G.holdingForFade()) continue; + const te = g + ? [G.tileID] + : [G.tileID.unwrapTo(-1), G.tileID.unwrapTo(0)], + Q = Math.pow(2, d.zoom - G.tileID.overscaledZ), + ae = (i * G.queryPadding * s.$) / G.tileSize / Q; + for (const ce of te) { + const ve = D.map((me) => + ce.getTilePoint(new s.a1(me.x, me.y)) + ); + if ((ve.expandBy(ae), ve.intersects(Bt))) { + const me = P.map((Pe) => ce.getTilePoint(Pe)), + be = E.map((Pe) => ce.getTilePoint(Pe)); + u.push({ + tile: G, + tileID: g ? ce : ce.unwrapTo(0), + queryGeometry: me, + cameraQueryGeometry: be, + scale: Q, + }); + } + } + } + return u; + } + transformBbox(e, i, l) { + let u = e.map(i); + if (l) { + const d = s.a2.fromPoints(e); + d.shrinkBy(0.001 * Math.min(d.width(), d.height())); + const g = d.map(i); + s.a2.fromPoints(u).covers(g) || + (u = u.map((w) => + w.x > 0.5 ? new s.a1(w.x - 1, w.y, w.z) : w + )); + } + return u; + } + getVisibleCoordinates(e) { + const i = this.getRenderableIds(e).map( + (l) => this._tiles[l].tileID + ); + return this.transform && this.transform.populateCache(i), i; + } + hasTransition() { + if (this._source.hasTransition()) return !0; + if (gr(this._source.type)) { + const e = ne.now(); + for (const i in this._tiles) + if (this._tiles[i].fadeEndTime >= e) return !0; + } + return !1; + } + setFeatureState(e, i, l) { + this._state.updateState((e = e || "_geojsonTileLayer"), i, l); + } + removeFeatureState(e, i, l) { + this._state.removeFeatureState( + (e = e || "_geojsonTileLayer"), + i, + l + ); + } + getFeatureState(e, i) { + return this._state.getState( + (e = e || "_geojsonTileLayer"), + i + ); + } + setDependencies(e, i, l) { + const u = this._tiles[e]; + u && u.setDependencies(i, l); + } + reloadTilesForDependencies(e, i) { + for (const l in this._tiles) + this._tiles[l].hasDependency(e, i) && + this._reloadTile(l, "reloading"); + this._cache.filter((l) => !l.hasDependency(e, i)); + } + } + function Kt(h, e) { + const i = Math.abs(2 * h.wrap) - +(h.wrap < 0), + l = Math.abs(2 * e.wrap) - +(e.wrap < 0); + return ( + h.overscaledZ - e.overscaledZ || + l - i || + e.canonical.y - h.canonical.y || + e.canonical.x - h.canonical.x + ); + } + function gr(h) { + return h === "raster" || h === "image" || h === "video"; + } + (rr.maxOverzooming = 10), (rr.maxUnderzooming = 3); + class Ur { + constructor(e, i) { + this.reset(e, i); + } + reset(e, i) { + (this.points = e || []), (this._distances = [0]); + for (let l = 1; l < this.points.length; l++) + this._distances[l] = + this._distances[l - 1] + + this.points[l].dist(this.points[l - 1]); + (this.length = this._distances[this._distances.length - 1]), + (this.padding = Math.min(i || 0, 0.5 * this.length)), + (this.paddedLength = this.length - 2 * this.padding); + } + lerp(e) { + if (this.points.length === 1) return this.points[0]; + e = s.ah(e, 0, 1); + let i = 1, + l = this._distances[i]; + const u = e * this.paddedLength + this.padding; + for (; l < u && i < this._distances.length; ) + l = this._distances[++i]; + const d = i - 1, + g = this._distances[d], + w = l - g, + C = w > 0 ? (u - g) / w : 0; + return this.points[d].mult(1 - C).add(this.points[i].mult(C)); + } + } + function nn(h, e) { + let i = !0; + return ( + h === "always" || + (h !== "never" && e !== "never") || + (i = !1), + i + ); + } + class mn { + constructor(e, i, l) { + const u = (this.boxCells = []), + d = (this.circleCells = []); + (this.xCellCount = Math.ceil(e / l)), + (this.yCellCount = Math.ceil(i / l)); + for (let g = 0; g < this.xCellCount * this.yCellCount; g++) + u.push([]), d.push([]); + (this.circleKeys = []), + (this.boxKeys = []), + (this.bboxes = []), + (this.circles = []), + (this.width = e), + (this.height = i), + (this.xScale = this.xCellCount / e), + (this.yScale = this.yCellCount / i), + (this.boxUid = 0), + (this.circleUid = 0); + } + keysLength() { + return this.boxKeys.length + this.circleKeys.length; + } + insert(e, i, l, u, d) { + this._forEachCell( + i, + l, + u, + d, + this._insertBoxCell, + this.boxUid++ + ), + this.boxKeys.push(e), + this.bboxes.push(i), + this.bboxes.push(l), + this.bboxes.push(u), + this.bboxes.push(d); + } + insertCircle(e, i, l, u) { + this._forEachCell( + i - u, + l - u, + i + u, + l + u, + this._insertCircleCell, + this.circleUid++ + ), + this.circleKeys.push(e), + this.circles.push(i), + this.circles.push(l), + this.circles.push(u); + } + _insertBoxCell(e, i, l, u, d, g) { + this.boxCells[d].push(g); + } + _insertCircleCell(e, i, l, u, d, g) { + this.circleCells[d].push(g); + } + _query(e, i, l, u, d, g, w) { + if (l < 0 || e > this.width || u < 0 || i > this.height) + return []; + const C = []; + if (e <= 0 && i <= 0 && this.width <= l && this.height <= u) { + if (d) return [{ key: null, x1: e, y1: i, x2: l, y2: u }]; + for (let P = 0; P < this.boxKeys.length; P++) + C.push({ + key: this.boxKeys[P], + x1: this.bboxes[4 * P], + y1: this.bboxes[4 * P + 1], + x2: this.bboxes[4 * P + 2], + y2: this.bboxes[4 * P + 3], + }); + for (let P = 0; P < this.circleKeys.length; P++) { + const E = this.circles[3 * P], + R = this.circles[3 * P + 1], + D = this.circles[3 * P + 2]; + C.push({ + key: this.circleKeys[P], + x1: E - D, + y1: R - D, + x2: E + D, + y2: R + D, + }); + } + } else this._forEachCell(e, i, l, u, this._queryCell, C, { hitTest: d, overlapMode: g, seenUids: { box: {}, circle: {} } }, w); + return C; + } + query(e, i, l, u) { + return this._query(e, i, l, u, !1, null); + } + hitTest(e, i, l, u, d, g) { + return this._query(e, i, l, u, !0, d, g).length > 0; + } + hitTestCircle(e, i, l, u, d) { + const g = e - l, + w = e + l, + C = i - l, + P = i + l; + if (w < 0 || g > this.width || P < 0 || C > this.height) + return !1; + const E = []; + return ( + this._forEachCell( + g, + C, + w, + P, + this._queryCellCircle, + E, + { + hitTest: !0, + overlapMode: u, + circle: { x: e, y: i, radius: l }, + seenUids: { box: {}, circle: {} }, + }, + d + ), + E.length > 0 + ); + } + _queryCell(e, i, l, u, d, g, w, C) { + const { seenUids: P, hitTest: E, overlapMode: R } = w, + D = this.boxCells[d]; + if (D !== null) { + const G = this.bboxes; + for (const te of D) + if (!P.box[te]) { + P.box[te] = !0; + const Q = 4 * te, + ae = this.boxKeys[te]; + if ( + e <= G[Q + 2] && + i <= G[Q + 3] && + l >= G[Q + 0] && + u >= G[Q + 1] && + (!C || C(ae)) && + (!E || !nn(R, ae.overlapMode)) && + (g.push({ + key: ae, + x1: G[Q], + y1: G[Q + 1], + x2: G[Q + 2], + y2: G[Q + 3], + }), + E) + ) + return !0; + } + } + const N = this.circleCells[d]; + if (N !== null) { + const G = this.circles; + for (const te of N) + if (!P.circle[te]) { + P.circle[te] = !0; + const Q = 3 * te, + ae = this.circleKeys[te]; + if ( + this._circleAndRectCollide( + G[Q], + G[Q + 1], + G[Q + 2], + e, + i, + l, + u + ) && + (!C || C(ae)) && + (!E || !nn(R, ae.overlapMode)) + ) { + const ce = G[Q], + ve = G[Q + 1], + me = G[Q + 2]; + if ( + (g.push({ + key: ae, + x1: ce - me, + y1: ve - me, + x2: ce + me, + y2: ve + me, + }), + E) + ) + return !0; + } + } + } + return !1; + } + _queryCellCircle(e, i, l, u, d, g, w, C) { + const { circle: P, seenUids: E, overlapMode: R } = w, + D = this.boxCells[d]; + if (D !== null) { + const G = this.bboxes; + for (const te of D) + if (!E.box[te]) { + E.box[te] = !0; + const Q = 4 * te, + ae = this.boxKeys[te]; + if ( + this._circleAndRectCollide( + P.x, + P.y, + P.radius, + G[Q + 0], + G[Q + 1], + G[Q + 2], + G[Q + 3] + ) && + (!C || C(ae)) && + !nn(R, ae.overlapMode) + ) + return g.push(!0), !0; + } + } + const N = this.circleCells[d]; + if (N !== null) { + const G = this.circles; + for (const te of N) + if (!E.circle[te]) { + E.circle[te] = !0; + const Q = 3 * te, + ae = this.circleKeys[te]; + if ( + this._circlesCollide( + G[Q], + G[Q + 1], + G[Q + 2], + P.x, + P.y, + P.radius + ) && + (!C || C(ae)) && + !nn(R, ae.overlapMode) + ) + return g.push(!0), !0; + } + } + } + _forEachCell(e, i, l, u, d, g, w, C) { + const P = this._convertToXCellCoord(e), + E = this._convertToYCellCoord(i), + R = this._convertToXCellCoord(l), + D = this._convertToYCellCoord(u); + for (let N = P; N <= R; N++) + for (let G = E; G <= D; G++) + if ( + d.call( + this, + e, + i, + l, + u, + this.xCellCount * G + N, + g, + w, + C + ) + ) + return; + } + _convertToXCellCoord(e) { + return Math.max( + 0, + Math.min(this.xCellCount - 1, Math.floor(e * this.xScale)) + ); + } + _convertToYCellCoord(e) { + return Math.max( + 0, + Math.min(this.yCellCount - 1, Math.floor(e * this.yScale)) + ); + } + _circlesCollide(e, i, l, u, d, g) { + const w = u - e, + C = d - i, + P = l + g; + return P * P > w * w + C * C; + } + _circleAndRectCollide(e, i, l, u, d, g, w) { + const C = (g - u) / 2, + P = Math.abs(e - (u + C)); + if (P > C + l) return !1; + const E = (w - d) / 2, + R = Math.abs(i - (d + E)); + if (R > E + l) return !1; + if (P <= C || R <= E) return !0; + const D = P - C, + N = R - E; + return D * D + N * N <= l * l; + } + } + function _n(h, e, i) { + const l = s.L(); + if (!h) { + const { vecSouth: R, vecEast: D } = Et(e), + N = O(); + (N[0] = D[0]), + (N[1] = D[1]), + (N[2] = R[0]), + (N[3] = R[1]), + (u = N), + (E = + (g = (d = N)[0]) * (P = d[3]) - + (C = d[2]) * (w = d[1])) && + ((u[0] = P * (E = 1 / E)), + (u[1] = -w * E), + (u[2] = -C * E), + (u[3] = g * E)), + (l[0] = N[0]), + (l[1] = N[1]), + (l[4] = N[2]), + (l[5] = N[3]); + } + var u, d, g, w, C, P, E; + return s.N(l, l, [1 / i, 1 / i, 1]), l; + } + function Vt(h, e, i, l) { + if (h) { + const u = s.L(); + if (!e) { + const { vecSouth: d, vecEast: g } = Et(i); + (u[0] = g[0]), (u[1] = g[1]), (u[4] = d[0]), (u[5] = d[1]); + } + return s.N(u, u, [l, l, 1]), u; + } + return i.pixelsToClipSpaceMatrix; + } + function Et(h) { + const e = Math.cos(h.rollInRadians), + i = Math.sin(h.rollInRadians), + l = Math.cos(h.pitchInRadians), + u = Math.cos(h.bearingInRadians), + d = Math.sin(h.bearingInRadians), + g = s.ar(); + (g[0] = -u * l * i - d * e), (g[1] = -d * l * i + u * e); + const w = s.as(g); + w < 1e-9 ? s.at(g) : s.au(g, g, 1 / w); + const C = s.ar(); + (C[0] = u * l * e - d * i), (C[1] = d * l * e + u * i); + const P = s.as(C); + return ( + P < 1e-9 ? s.at(C) : s.au(C, C, 1 / P), + { vecEast: C, vecSouth: g } + ); + } + function dr(h, e, i, l) { + let u; + l + ? ((u = [h, e, l(h, e), 1]), s.aw(u, u, i)) + : ((u = [h, e, 0, 1]), En(u, u, i)); + const d = u[3]; + return { + point: new s.P(u[0] / d, u[1] / d), + signedDistanceFromCamera: d, + isOccluded: !1, + }; + } + function ht(h, e) { + return 0.5 + (h / e) * 0.5; + } + function Xr(h, e) { + return ( + h.x >= -e[0] && h.x <= e[0] && h.y >= -e[1] && h.y <= e[1] + ); + } + function Yr(h, e, i, l, u, d, g, w, C, P, E, R, D) { + const N = i ? h.textSizeData : h.iconSizeData, + G = s.an(N, e.transform.zoom), + te = [(256 / e.width) * 2 + 1, (256 / e.height) * 2 + 1], + Q = i + ? h.text.dynamicLayoutVertexArray + : h.icon.dynamicLayoutVertexArray; + Q.clear(); + const ae = h.lineVertexArray, + ce = i ? h.text.placedSymbolArray : h.icon.placedSymbolArray, + ve = e.transform.width / e.transform.height; + let me = !1; + for (let be = 0; be < ce.length; be++) { + const Pe = ce.get(be); + if (Pe.hidden || (Pe.writingMode === s.ao.vertical && !me)) { + ln(Pe.numGlyphs, Q); + continue; + } + me = !1; + const _e = new s.P(Pe.anchorX, Pe.anchorY), + Be = { + getElevation: D, + pitchedLabelPlaneMatrix: l, + lineVertexArray: ae, + pitchWithMap: d, + projectionCache: { + projections: {}, + offsets: {}, + cachedAnchorPoint: void 0, + anyProjectionOccluded: !1, + }, + transform: e.transform, + tileAnchorPoint: _e, + unwrappedTileID: C, + width: P, + height: E, + translation: R, + }, + rt = Er(Pe.anchorX, Pe.anchorY, Be); + if (!Xr(rt.point, te)) { + ln(Pe.numGlyphs, Q); + continue; + } + const Ge = ht( + e.transform.cameraToCenterDistance, + rt.signedDistanceFromCamera + ), + Xe = s.ap(N, G, Pe), + tt = d + ? (Xe * + e.transform.getPitchedTextCorrection( + Pe.anchorX, + Pe.anchorY, + C + )) / + Ge + : Xe * Ge, + jt = He({ + projectionContext: Be, + pitchedLabelPlaneMatrixInverse: u, + symbol: Pe, + fontSize: tt, + flip: !1, + keepUpright: g, + glyphOffsetArray: h.glyphOffsetArray, + dynamicLayoutVertexArray: Q, + aspectRatio: ve, + rotateToLine: w, + }); + (me = jt.useVertical), + (jt.notEnoughRoom || + me || + (jt.needsFlipping && + He({ + projectionContext: Be, + pitchedLabelPlaneMatrixInverse: u, + symbol: Pe, + fontSize: tt, + flip: !0, + keepUpright: g, + glyphOffsetArray: h.glyphOffsetArray, + dynamicLayoutVertexArray: Q, + aspectRatio: ve, + rotateToLine: w, + }).notEnoughRoom)) && + ln(Pe.numGlyphs, Q); + } + i + ? h.text.dynamicLayoutVertexBuffer.updateData(Q) + : h.icon.dynamicLayoutVertexBuffer.updateData(Q); + } + function Zr(h, e, i, l, u, d, g, w) { + const C = d.glyphStartIndex + d.numGlyphs, + P = d.lineStartIndex, + E = d.lineStartIndex + d.lineLength, + R = e.getoffsetX(d.glyphStartIndex), + D = e.getoffsetX(C - 1), + N = pn(h * R, i, l, u, d.segment, P, E, w, g); + if (!N) return null; + const G = pn(h * D, i, l, u, d.segment, P, E, w, g); + return G + ? w.projectionCache.anyProjectionOccluded + ? null + : { first: N, last: G } + : null; + } + function mt(h, e, i, l) { + return h === s.ao.horizontal && + Math.abs(i.y - e.y) > Math.abs(i.x - e.x) * l + ? { useVertical: !0 } + : (h === s.ao.vertical ? e.y < i.y : e.x > i.x) + ? { needsFlipping: !0 } + : null; + } + function He(h) { + const { + projectionContext: e, + pitchedLabelPlaneMatrixInverse: i, + symbol: l, + fontSize: u, + flip: d, + keepUpright: g, + glyphOffsetArray: w, + dynamicLayoutVertexArray: C, + aspectRatio: P, + rotateToLine: E, + } = h, + R = u / 24, + D = l.lineOffsetX * R, + N = l.lineOffsetY * R; + let G; + if (l.numGlyphs > 1) { + const te = l.glyphStartIndex + l.numGlyphs, + Q = l.lineStartIndex, + ae = l.lineStartIndex + l.lineLength, + ce = Zr(R, w, D, N, d, l, E, e); + if (!ce) return { notEnoughRoom: !0 }; + const ve = Cr(ce.first.point.x, ce.first.point.y, e, i), + me = Cr(ce.last.point.x, ce.last.point.y, e, i); + if (g && !d) { + const be = mt(l.writingMode, ve, me, P); + if (be) return be; + } + G = [ce.first]; + for (let be = l.glyphStartIndex + 1; be < te - 1; be++) { + const Pe = pn( + R * w.getoffsetX(be), + D, + N, + d, + l.segment, + Q, + ae, + e, + E + ); + if (!Pe) return { notEnoughRoom: !0 }; + G.push(Pe); + } + G.push(ce.last); + } else { + if (g && !d) { + const Q = Jt( + e.tileAnchorPoint.x, + e.tileAnchorPoint.y, + e + ).point, + ae = l.lineStartIndex + l.segment + 1, + ce = new s.P( + e.lineVertexArray.getx(ae), + e.lineVertexArray.gety(ae) + ), + ve = Jt(ce.x, ce.y, e), + me = + ve.signedDistanceFromCamera > 0 + ? ve.point + : At(e.tileAnchorPoint, ce, Q, 1, e), + be = Cr(Q.x, Q.y, e, i), + Pe = Cr(me.x, me.y, e, i), + _e = mt(l.writingMode, be, Pe, P); + if (_e) return _e; + } + const te = pn( + R * w.getoffsetX(l.glyphStartIndex), + D, + N, + d, + l.segment, + l.lineStartIndex, + l.lineStartIndex + l.lineLength, + e, + E + ); + if (!te || e.projectionCache.anyProjectionOccluded) + return { notEnoughRoom: !0 }; + G = [te]; + } + for (const te of G) s.av(C, te.point, te.angle); + return {}; + } + function At(h, e, i, l, u) { + const d = h.add(h.sub(e)._unit()), + g = Jt(d.x, d.y, u).point, + w = i.sub(g); + return i.add(w._mult(l / w.mag())); + } + function Ft(h, e, i) { + const l = e.projectionCache; + if (l.projections[h]) return l.projections[h]; + const u = new s.P( + e.lineVertexArray.getx(h), + e.lineVertexArray.gety(h) + ), + d = Jt(u.x, u.y, e); + if (d.signedDistanceFromCamera > 0) + return ( + (l.projections[h] = d.point), + (l.anyProjectionOccluded = + l.anyProjectionOccluded || d.isOccluded), + d.point + ); + const g = h - i.direction; + return At( + i.distanceFromAnchor === 0 + ? e.tileAnchorPoint + : new s.P( + e.lineVertexArray.getx(g), + e.lineVertexArray.gety(g) + ), + u, + i.previousVertex, + i.absOffsetX - i.distanceFromAnchor + 1, + e + ); + } + function Jt(h, e, i) { + const l = h + i.translation[0], + u = e + i.translation[1]; + let d; + return ( + i.pitchWithMap + ? ((d = dr( + l, + u, + i.pitchedLabelPlaneMatrix, + i.getElevation + )), + (d.isOccluded = !1)) + : ((d = i.transform.projectTileCoordinates( + l, + u, + i.unwrappedTileID, + i.getElevation + )), + (d.point.x = (0.5 * d.point.x + 0.5) * i.width), + (d.point.y = (0.5 * -d.point.y + 0.5) * i.height)), + d + ); + } + function Cr(h, e, i, l) { + if (i.pitchWithMap) { + const u = [h, e, 0, 1]; + return ( + s.aw(u, u, l), + i.transform.projectTileCoordinates( + u[0] / u[3], + u[1] / u[3], + i.unwrappedTileID, + i.getElevation + ).point + ); + } + return { x: (h / i.width) * 2 - 1, y: 1 - (e / i.height) * 2 }; + } + function Er(h, e, i) { + return i.transform.projectTileCoordinates( + h, + e, + i.unwrappedTileID, + i.getElevation + ); + } + function ur(h, e, i) { + return h + ._unit() + ._perp() + ._mult(e * i); + } + function rn(h, e, i, l, u, d, g, w, C) { + if (w.projectionCache.offsets[h]) + return w.projectionCache.offsets[h]; + const P = i.add(e); + if (h + C.direction < l || h + C.direction >= u) + return (w.projectionCache.offsets[h] = P), P; + const E = Ft(h + C.direction, w, C), + R = ur(E.sub(i), g, C.direction), + D = i.add(R), + N = E.add(R); + return ( + (w.projectionCache.offsets[h] = s.ax(d, P, D, N) || P), + w.projectionCache.offsets[h] + ); + } + function pn(h, e, i, l, u, d, g, w, C) { + const P = l ? h - e : h + e; + let E = P > 0 ? 1 : -1, + R = 0; + l && ((E *= -1), (R = Math.PI)), E < 0 && (R += Math.PI); + let D, + N = E > 0 ? d + u : d + u + 1; + w.projectionCache.cachedAnchorPoint + ? (D = w.projectionCache.cachedAnchorPoint) + : ((D = Jt( + w.tileAnchorPoint.x, + w.tileAnchorPoint.y, + w + ).point), + (w.projectionCache.cachedAnchorPoint = D)); + let G, + te, + Q = D, + ae = D, + ce = 0, + ve = 0; + const me = Math.abs(P), + be = []; + let Pe; + for (; ce + ve <= me; ) { + if (((N += E), N < d || N >= g)) return null; + (ce += ve), (ae = Q), (te = G); + const rt = { + absOffsetX: me, + direction: E, + distanceFromAnchor: ce, + previousVertex: ae, + }; + if (((Q = Ft(N, w, rt)), i === 0)) + be.push(ae), (Pe = Q.sub(ae)); + else { + let Ge; + const Xe = Q.sub(ae); + (Ge = + Xe.mag() === 0 + ? ur(Ft(N + E, w, rt).sub(Q), i, E) + : ur(Xe, i, E)), + te || (te = ae.add(Ge)), + (G = rn(N, Ge, Q, d, g, te, i, w, rt)), + be.push(te), + (Pe = G.sub(te)); + } + ve = Pe.mag(); + } + const _e = Pe._mult((me - ce) / ve)._add(te || ae), + Be = R + Math.atan2(Q.y - ae.y, Q.x - ae.x); + return be.push(_e), { point: _e, angle: C ? Be : 0, path: be }; + } + const gn = new Float32Array([ + -1 / 0, + -1 / 0, + 0, + -1 / 0, + -1 / 0, + 0, + -1 / 0, + -1 / 0, + 0, + -1 / 0, + -1 / 0, + 0, + ]); + function ln(h, e) { + for (let i = 0; i < h; i++) { + const l = e.length; + e.resize(l + 4), e.float32.set(gn, 3 * l); + } + } + function En(h, e, i) { + const l = e[0], + u = e[1]; + return ( + (h[0] = i[0] * l + i[4] * u + i[12]), + (h[1] = i[1] * l + i[5] * u + i[13]), + (h[3] = i[3] * l + i[7] * u + i[15]), + h + ); + } + const pr = 100; + class In { + constructor( + e, + i = new mn(e.width + 200, e.height + 200, 25), + l = new mn(e.width + 200, e.height + 200, 25) + ) { + (this.transform = e), + (this.grid = i), + (this.ignoredGrid = l), + (this.pitchFactor = + Math.cos((e.pitch * Math.PI) / 180) * + e.cameraToCenterDistance), + (this.screenRightBoundary = e.width + pr), + (this.screenBottomBoundary = e.height + pr), + (this.gridRightBoundary = e.width + 200), + (this.gridBottomBoundary = e.height + 200), + (this.perspectiveRatioCutoff = 0.6); + } + placeCollisionBox(e, i, l, u, d, g, w, C, P, E, R, D) { + const N = this.projectAndGetPerspectiveRatio( + e.anchorPointX + C[0], + e.anchorPointY + C[1], + d, + E, + D + ), + G = l * N.perspectiveRatio; + let te; + if (g || w) + te = this._projectCollisionBox( + e, + G, + u, + d, + g, + w, + C, + N, + E, + R, + D + ); + else { + const Pe = N.x + (R ? R.x * G : 0), + _e = N.y + (R ? R.y * G : 0); + te = { + allPointsOccluded: !1, + box: [ + Pe + e.x1 * G, + _e + e.y1 * G, + Pe + e.x2 * G, + _e + e.y2 * G, + ], + }; + } + const [Q, ae, ce, ve] = te.box, + me = g ? te.allPointsOccluded : N.isOccluded; + let be = me; + return ( + be || + (be = N.perspectiveRatio < this.perspectiveRatioCutoff), + be || (be = !this.isInsideGrid(Q, ae, ce, ve)), + be || + (i !== "always" && this.grid.hitTest(Q, ae, ce, ve, i, P)) + ? { + box: [Q, ae, ce, ve], + placeable: !1, + offscreen: !1, + occluded: me, + } + : { + box: [Q, ae, ce, ve], + placeable: !0, + offscreen: this.isOffscreen(Q, ae, ce, ve), + occluded: me, + } + ); + } + placeCollisionCircles( + e, + i, + l, + u, + d, + g, + w, + C, + P, + E, + R, + D, + N, + G + ) { + const te = [], + Q = new s.P(i.anchorX, i.anchorY), + ae = this.getPerspectiveRatio(Q.x, Q.y, g, G), + ce = + (P + ? (d * + this.transform.getPitchedTextCorrection( + i.anchorX, + i.anchorY, + g + )) / + ae + : d * ae) / s.aB, + ve = { + getElevation: G, + pitchedLabelPlaneMatrix: w, + lineVertexArray: l, + pitchWithMap: P, + projectionCache: { + projections: {}, + offsets: {}, + cachedAnchorPoint: void 0, + anyProjectionOccluded: !1, + }, + transform: this.transform, + tileAnchorPoint: Q, + unwrappedTileID: g, + width: this.transform.width, + height: this.transform.height, + translation: N, + }, + me = Zr( + ce, + u, + i.lineOffsetX * ce, + i.lineOffsetY * ce, + !1, + i, + !1, + ve + ); + let be = !1, + Pe = !1, + _e = !0; + if (me) { + const Be = 0.5 * R * ae + D, + rt = new s.P(-100, -100), + Ge = new s.P( + this.screenRightBoundary, + this.screenBottomBoundary + ), + Xe = new Ur(), + tt = me.first, + jt = me.last; + let Zt = []; + for (let Jr = tt.path.length - 1; Jr >= 1; Jr--) + Zt.push(tt.path[Jr]); + for (let Jr = 1; Jr < jt.path.length; Jr++) + Zt.push(jt.path[Jr]); + const Tt = 2.5 * Be; + if (P) { + const Jr = this.projectPathToScreenSpace(Zt, ve); + Zt = Jr.some((An) => An.signedDistanceFromCamera <= 0) + ? [] + : Jr.map((An) => An.point); + } + let vr = []; + if (Zt.length > 0) { + const Jr = Zt[0].clone(), + An = Zt[0].clone(); + for (let Rn = 1; Rn < Zt.length; Rn++) + (Jr.x = Math.min(Jr.x, Zt[Rn].x)), + (Jr.y = Math.min(Jr.y, Zt[Rn].y)), + (An.x = Math.max(An.x, Zt[Rn].x)), + (An.y = Math.max(An.y, Zt[Rn].y)); + vr = + Jr.x >= rt.x && + An.x <= Ge.x && + Jr.y >= rt.y && + An.y <= Ge.y + ? [Zt] + : An.x < rt.x || + Jr.x > Ge.x || + An.y < rt.y || + Jr.y > Ge.y + ? [] + : s.ay([Zt], rt.x, rt.y, Ge.x, Ge.y); + } + for (const Jr of vr) { + Xe.reset(Jr, 0.25 * Be); + let An = 0; + An = + Xe.length <= 0.5 * Be + ? 1 + : Math.ceil(Xe.paddedLength / Tt) + 1; + for (let Rn = 0; Rn < An; Rn++) { + const Ln = Rn / Math.max(An - 1, 1), + Wn = Xe.lerp(Ln), + Jn = Wn.x + pr, + Kr = Wn.y + pr; + te.push(Jn, Kr, Be, 0); + const Bn = Jn - Be, + si = Kr - Be, + mi = Jn + Be, + Ci = Kr + Be; + if ( + ((_e = _e && this.isOffscreen(Bn, si, mi, Ci)), + (Pe = Pe || this.isInsideGrid(Bn, si, mi, Ci)), + e !== "always" && + this.grid.hitTestCircle(Jn, Kr, Be, e, E) && + ((be = !0), !C)) + ) + return { + circles: [], + offscreen: !1, + collisionDetected: be, + }; + } + } + } + return { + circles: + (!C && be) || !Pe || ae < this.perspectiveRatioCutoff + ? [] + : te, + offscreen: _e, + collisionDetected: be, + }; + } + projectPathToScreenSpace(e, i) { + const l = (function (u, d) { + const g = s.L(); + return ( + s.aq(g, d.pitchedLabelPlaneMatrix), + u.map((w) => { + const C = dr(w.x, w.y, g, d.getElevation), + P = d.transform.projectTileCoordinates( + C.point.x, + C.point.y, + d.unwrappedTileID, + d.getElevation + ); + return ( + (P.point.x = (0.5 * P.point.x + 0.5) * d.width), + (P.point.y = (0.5 * -P.point.y + 0.5) * d.height), + P + ); + }) + ); + })(e, i); + return (function (u) { + let d = 0, + g = 0, + w = 0, + C = 0; + for (let P = 0; P < u.length; P++) + u[P].isOccluded + ? ((w = P + 1), (C = 0)) + : (C++, C > g && ((g = C), (d = w))); + return u.slice(d, d + g); + })(l); + } + queryRenderedSymbols(e) { + if ( + e.length === 0 || + (this.grid.keysLength() === 0 && + this.ignoredGrid.keysLength() === 0) + ) + return {}; + const i = [], + l = new s.a2(); + for (const R of e) { + const D = new s.P(R.x + pr, R.y + pr); + l.extend(D), i.push(D); + } + const { minX: u, minY: d, maxX: g, maxY: w } = l, + C = this.grid + .query(u, d, g, w) + .concat(this.ignoredGrid.query(u, d, g, w)), + P = {}, + E = {}; + for (const R of C) { + const D = R.key; + if ( + (P[D.bucketInstanceId] === void 0 && + (P[D.bucketInstanceId] = {}), + P[D.bucketInstanceId][D.featureIndex]) + ) + continue; + const N = [ + new s.P(R.x1, R.y1), + new s.P(R.x2, R.y1), + new s.P(R.x2, R.y2), + new s.P(R.x1, R.y2), + ]; + s.az(i, N) && + ((P[D.bucketInstanceId][D.featureIndex] = !0), + E[D.bucketInstanceId] === void 0 && + (E[D.bucketInstanceId] = []), + E[D.bucketInstanceId].push(D.featureIndex)); + } + return E; + } + insertCollisionBox(e, i, l, u, d, g) { + (l ? this.ignoredGrid : this.grid).insert( + { + bucketInstanceId: u, + featureIndex: d, + collisionGroupID: g, + overlapMode: i, + }, + e[0], + e[1], + e[2], + e[3] + ); + } + insertCollisionCircles(e, i, l, u, d, g) { + const w = l ? this.ignoredGrid : this.grid, + C = { + bucketInstanceId: u, + featureIndex: d, + collisionGroupID: g, + overlapMode: i, + }; + for (let P = 0; P < e.length; P += 4) + w.insertCircle(C, e[P], e[P + 1], e[P + 2]); + } + projectAndGetPerspectiveRatio(e, i, l, u, d) { + if (d) { + let g; + u + ? ((g = [e, i, u(e, i), 1]), s.aw(g, g, d)) + : ((g = [e, i, 0, 1]), En(g, g, d)); + const w = g[3]; + return { + x: ((g[0] / w + 1) / 2) * this.transform.width + pr, + y: ((-g[1] / w + 1) / 2) * this.transform.height + pr, + perspectiveRatio: + 0.5 + (this.transform.cameraToCenterDistance / w) * 0.5, + isOccluded: !1, + signedDistanceFromCamera: w, + }; + } + { + const g = this.transform.projectTileCoordinates(e, i, l, u); + return { + x: ((g.point.x + 1) / 2) * this.transform.width + pr, + y: ((1 - g.point.y) / 2) * this.transform.height + pr, + perspectiveRatio: + 0.5 + + (this.transform.cameraToCenterDistance / + g.signedDistanceFromCamera) * + 0.5, + isOccluded: g.isOccluded, + signedDistanceFromCamera: g.signedDistanceFromCamera, + }; + } + } + getPerspectiveRatio(e, i, l, u) { + const d = this.transform.projectTileCoordinates(e, i, l, u); + return ( + 0.5 + + (this.transform.cameraToCenterDistance / + d.signedDistanceFromCamera) * + 0.5 + ); + } + isOffscreen(e, i, l, u) { + return ( + l < pr || + e >= this.screenRightBoundary || + u < pr || + i > this.screenBottomBoundary + ); + } + isInsideGrid(e, i, l, u) { + return ( + l >= 0 && + e < this.gridRightBoundary && + u >= 0 && + i < this.gridBottomBoundary + ); + } + getViewportMatrix() { + const e = s.ag([]); + return s.M(e, e, [-100, -100, 0]), e; + } + _projectCollisionBox(e, i, l, u, d, g, w, C, P, E, R) { + let D = 1, + N = 0, + G = 0, + te = 1; + const Q = e.anchorPointX + w[0], + ae = e.anchorPointY + w[1]; + if (g && !d) { + const Zt = this.projectAndGetPerspectiveRatio( + Q + 1, + ae, + u, + P, + R + ), + Tt = Zt.x - C.x, + vr = + Math.atan((Zt.y - C.y) / Tt) + (Tt < 0 ? Math.PI : 0), + Jr = Math.sin(vr), + An = Math.cos(vr); + (D = An), (N = Jr), (G = -Jr), (te = An); + } else if (!g && d) { + const Zt = Et(this.transform); + (D = Zt.vecEast[0]), + (N = Zt.vecEast[1]), + (G = Zt.vecSouth[0]), + (te = Zt.vecSouth[1]); + } + let ce = C.x, + ve = C.y, + me = i; + d && + ((ce = Q), + (ve = ae), + (me = Math.pow(2, -(this.transform.zoom - l.overscaledZ))), + (me *= this.transform.getPitchedTextCorrection(Q, ae, u)), + E || + (me *= s.ah( + 0.5 + + (C.signedDistanceFromCamera / + this.transform.cameraToCenterDistance) * + 0.5, + 0, + 4 + ))), + E && + ((ce += D * E.x * me + G * E.y * me), + (ve += N * E.x * me + te * E.y * me)); + const be = e.x1 * me, + Pe = e.x2 * me, + _e = (be + Pe) / 2, + Be = e.y1 * me, + rt = e.y2 * me, + Ge = (Be + rt) / 2, + Xe = [ + { offsetX: be, offsetY: Be }, + { offsetX: _e, offsetY: Be }, + { offsetX: Pe, offsetY: Be }, + { offsetX: Pe, offsetY: Ge }, + { offsetX: Pe, offsetY: rt }, + { offsetX: _e, offsetY: rt }, + { offsetX: be, offsetY: rt }, + { offsetX: be, offsetY: Ge }, + ]; + let tt = []; + for (const { offsetX: Zt, offsetY: Tt } of Xe) + tt.push( + new s.P(ce + D * Zt + G * Tt, ve + N * Zt + te * Tt) + ); + let jt = !1; + if (d) { + const Zt = tt.map((Tt) => + this.projectAndGetPerspectiveRatio(Tt.x, Tt.y, u, P, R) + ); + (jt = Zt.some((Tt) => !Tt.isOccluded)), + (tt = Zt.map((Tt) => new s.P(Tt.x, Tt.y))); + } else jt = !0; + return { box: s.aA(tt), allPointsOccluded: !jt }; + } + } + class tn { + constructor(e, i, l, u) { + (this.opacity = e + ? Math.max(0, Math.min(1, e.opacity + (e.placed ? i : -i))) + : u && l + ? 1 + : 0), + (this.placed = l); + } + isHidden() { + return this.opacity === 0 && !this.placed; + } + } + class en { + constructor(e, i, l, u, d) { + (this.text = new tn(e ? e.text : null, i, l, d)), + (this.icon = new tn(e ? e.icon : null, i, u, d)); + } + isHidden() { + return this.text.isHidden() && this.icon.isHidden(); + } + } + class ma { + constructor(e, i, l) { + (this.text = e), (this.icon = i), (this.skipFade = l); + } + } + class pi { + constructor(e, i, l, u, d) { + (this.bucketInstanceId = e), + (this.featureIndex = i), + (this.sourceLayerIndex = l), + (this.bucketIndex = u), + (this.tileID = d); + } + } + class Xi { + constructor(e) { + (this.crossSourceCollisions = e), + (this.maxGroupID = 0), + (this.collisionGroups = {}); + } + get(e) { + if (this.crossSourceCollisions) + return { ID: 0, predicate: null }; + if (!this.collisionGroups[e]) { + const i = ++this.maxGroupID; + this.collisionGroups[e] = { + ID: i, + predicate: (l) => l.collisionGroupID === i, + }; + } + return this.collisionGroups[e]; + } + } + function Zn(h, e, i, l, u) { + const { horizontalAlign: d, verticalAlign: g } = s.aH(h); + return new s.P( + -(d - 0.5) * e + l[0] * u, + -(g - 0.5) * i + l[1] * u + ); + } + class ni { + constructor(e, i, l, u, d) { + (this.transform = e.clone()), + (this.terrain = i), + (this.collisionIndex = new In(this.transform)), + (this.placements = {}), + (this.opacities = {}), + (this.variableOffsets = {}), + (this.stale = !1), + (this.commitTime = 0), + (this.fadeDuration = l), + (this.retainedQueryData = {}), + (this.collisionGroups = new Xi(u)), + (this.collisionCircleArrays = {}), + (this.collisionBoxArrays = new Map()), + (this.prevPlacement = d), + d && (d.prevPlacement = void 0), + (this.placedOrientations = {}); + } + _getTerrainElevationFunc(e) { + const i = this.terrain; + return i ? (l, u) => i.getElevation(e, l, u) : null; + } + getBucketParts(e, i, l, u) { + const d = l.getBucket(i), + g = l.latestFeatureIndex; + if (!d || !g || i.id !== d.layerIds[0]) return; + const w = l.collisionBoxArray, + C = d.layers[0].layout, + P = d.layers[0].paint, + E = Math.pow(2, this.transform.zoom - l.tileID.overscaledZ), + R = l.tileSize / s.$, + D = l.tileID.toUnwrapped(), + N = C.get("text-rotation-alignment") === "map", + G = s.aC(l, 1, this.transform.zoom), + te = s.aD( + this.collisionIndex.transform, + l, + P.get("text-translate"), + P.get("text-translate-anchor") + ), + Q = s.aD( + this.collisionIndex.transform, + l, + P.get("icon-translate"), + P.get("icon-translate-anchor") + ), + ae = _n(N, this.transform, G); + this.retainedQueryData[d.bucketInstanceId] = new pi( + d.bucketInstanceId, + g, + d.sourceLayerIndex, + d.index, + l.tileID + ); + const ce = { + bucket: d, + layout: C, + translationText: te, + translationIcon: Q, + unwrappedTileID: D, + pitchedLabelPlaneMatrix: ae, + scale: E, + textPixelRatio: R, + holdingForFade: l.holdingForFade(), + collisionBoxArray: w, + partiallyEvaluatedTextSize: s.an( + d.textSizeData, + this.transform.zoom + ), + collisionGroup: this.collisionGroups.get(d.sourceID), + }; + if (u) + for (const ve of d.sortKeyRanges) { + const { + sortKey: me, + symbolInstanceStart: be, + symbolInstanceEnd: Pe, + } = ve; + e.push({ + sortKey: me, + symbolInstanceStart: be, + symbolInstanceEnd: Pe, + parameters: ce, + }); + } + else + e.push({ + symbolInstanceStart: 0, + symbolInstanceEnd: d.symbolInstances.length, + parameters: ce, + }); + } + attemptAnchorPlacement( + e, + i, + l, + u, + d, + g, + w, + C, + P, + E, + R, + D, + N, + G, + te, + Q, + ae, + ce, + ve, + me + ) { + const be = s.aE[e.textAnchor], + Pe = [e.textOffset0, e.textOffset1], + _e = Zn(be, l, u, Pe, d), + Be = this.collisionIndex.placeCollisionBox( + i, + D, + C, + P, + E, + w, + g, + Q, + R.predicate, + ve, + _e, + me + ); + if ( + (!ce || + this.collisionIndex.placeCollisionBox( + ce, + D, + C, + P, + E, + w, + g, + ae, + R.predicate, + ve, + _e, + me + ).placeable) && + Be.placeable + ) { + let rt; + if ( + (this.prevPlacement && + this.prevPlacement.variableOffsets[N.crossTileID] && + this.prevPlacement.placements[N.crossTileID] && + this.prevPlacement.placements[N.crossTileID].text && + (rt = + this.prevPlacement.variableOffsets[N.crossTileID] + .anchor), + N.crossTileID === 0) + ) + throw new Error("symbolInstance.crossTileID can't be 0"); + return ( + (this.variableOffsets[N.crossTileID] = { + textOffset: Pe, + width: l, + height: u, + anchor: be, + textBoxScale: d, + prevAnchor: rt, + }), + this.markUsedJustification(G, be, N, te), + G.allowVerticalPlacement && + (this.markUsedOrientation(G, te, N), + (this.placedOrientations[N.crossTileID] = te)), + { shift: _e, placedGlyphBoxes: Be } + ); + } + } + placeLayerBucketPart(e, i, l) { + const { + bucket: u, + layout: d, + translationText: g, + translationIcon: w, + unwrappedTileID: C, + pitchedLabelPlaneMatrix: P, + textPixelRatio: E, + holdingForFade: R, + collisionBoxArray: D, + partiallyEvaluatedTextSize: N, + collisionGroup: G, + } = e.parameters, + te = d.get("text-optional"), + Q = d.get("icon-optional"), + ae = s.aF(d, "text-overlap", "text-allow-overlap"), + ce = ae === "always", + ve = s.aF(d, "icon-overlap", "icon-allow-overlap"), + me = ve === "always", + be = d.get("text-rotation-alignment") === "map", + Pe = d.get("text-pitch-alignment") === "map", + _e = d.get("icon-text-fit") !== "none", + Be = d.get("symbol-z-order") === "viewport-y", + rt = ce && (me || !u.hasIconData() || Q), + Ge = me && (ce || !u.hasTextData() || te); + !u.collisionArrays && D && u.deserializeCollisionBoxes(D); + const Xe = this.retainedQueryData[u.bucketInstanceId].tileID, + tt = this._getTerrainElevationFunc(Xe), + jt = this.transform.getFastPathSimpleProjectionMatrix(Xe), + Zt = (Tt, vr, Jr) => { + var An, Rn; + if (i[Tt.crossTileID]) return; + if (R) + return void (this.placements[Tt.crossTileID] = new ma( + !1, + !1, + !1 + )); + let Ln = !1, + Wn = !1, + Jn = !0, + Kr = null, + Bn = { + box: null, + placeable: !1, + offscreen: null, + occluded: !1, + }, + si = { placeable: !1 }, + mi = null, + Ci = null, + $i = null, + za = 0, + go = 0, + vo = 0; + vr.textFeatureIndex + ? (za = vr.textFeatureIndex) + : Tt.useRuntimeCollisionCircles && + (za = Tt.featureIndex), + vr.verticalTextFeatureIndex && + (go = vr.verticalTextFeatureIndex); + const fs = vr.textBox; + if (fs) { + const ta = (li) => { + let _i = s.ao.horizontal; + if ( + u.allowVerticalPlacement && + !li && + this.prevPlacement + ) { + const ba = + this.prevPlacement.placedOrientations[ + Tt.crossTileID + ]; + ba && + ((this.placedOrientations[Tt.crossTileID] = ba), + (_i = ba), + this.markUsedOrientation(u, _i, Tt)); + } + return _i; + }, + La = (li, _i) => { + if ( + u.allowVerticalPlacement && + Tt.numVerticalGlyphVertices > 0 && + vr.verticalTextBox + ) { + for (const ba of u.writingModes) + if ( + (ba === s.ao.vertical + ? ((Bn = _i()), (si = Bn)) + : (Bn = li()), + Bn && Bn.placeable) + ) + break; + } else Bn = li(); + }, + Gi = Tt.textAnchorOffsetStartIndex, + yo = Tt.textAnchorOffsetEndIndex; + if (yo === Gi) { + const li = (_i, ba) => { + const ci = this.collisionIndex.placeCollisionBox( + _i, + ae, + E, + Xe, + C, + Pe, + be, + g, + G.predicate, + tt, + void 0, + jt + ); + return ( + ci && + ci.placeable && + (this.markUsedOrientation(u, ba, Tt), + (this.placedOrientations[Tt.crossTileID] = ba)), + ci + ); + }; + La( + () => li(fs, s.ao.horizontal), + () => { + const _i = vr.verticalTextBox; + return u.allowVerticalPlacement && + Tt.numVerticalGlyphVertices > 0 && + _i + ? li(_i, s.ao.vertical) + : { box: null, offscreen: null }; + } + ), + ta(Bn && Bn.placeable); + } else { + let li = + s.aE[ + (Rn = + (An = this.prevPlacement) === null || + An === void 0 + ? void 0 + : An.variableOffsets[Tt.crossTileID]) === + null || Rn === void 0 + ? void 0 + : Rn.anchor + ]; + const _i = (ci, Qs, _s) => { + const ro = ci.x2 - ci.x1, + Da = ci.y2 - ci.y1, + xo = Tt.textBoxScale, + Cd = _e && ve === "never" ? Qs : null; + let la = null, + Sd = ae === "never" ? 1 : 2, + _u = "never"; + li && Sd++; + for (let Wl = 0; Wl < Sd; Wl++) { + for (let Xl = Gi; Xl < yo; Xl++) { + const bo = u.textAnchorOffsets.get(Xl); + if (li && bo.textAnchor !== li) continue; + const no = this.attemptAnchorPlacement( + bo, + ci, + ro, + Da, + xo, + be, + Pe, + E, + Xe, + C, + G, + _u, + Tt, + u, + _s, + g, + w, + Cd, + tt + ); + if ( + no && + ((la = no.placedGlyphBoxes), + la && la.placeable) + ) + return (Ln = !0), (Kr = no.shift), la; + } + li ? (li = null) : (_u = ae); + } + return ( + l && + !la && + (la = { + box: this.collisionIndex.placeCollisionBox( + fs, + "always", + E, + Xe, + C, + Pe, + be, + g, + G.predicate, + tt, + void 0, + jt + ).box, + offscreen: !1, + placeable: !1, + occluded: !1, + }), + la + ); + }; + La( + () => _i(fs, vr.iconBox, s.ao.horizontal), + () => { + const ci = vr.verticalTextBox; + return u.allowVerticalPlacement && + (!Bn || !Bn.placeable) && + Tt.numVerticalGlyphVertices > 0 && + ci + ? _i(ci, vr.verticalIconBox, s.ao.vertical) + : { box: null, occluded: !0, offscreen: null }; + } + ), + Bn && ((Ln = Bn.placeable), (Jn = Bn.offscreen)); + const ba = ta(Bn && Bn.placeable); + if (!Ln && this.prevPlacement) { + const ci = + this.prevPlacement.variableOffsets[ + Tt.crossTileID + ]; + ci && + ((this.variableOffsets[Tt.crossTileID] = ci), + this.markUsedJustification(u, ci.anchor, Tt, ba)); + } + } + } + if ( + ((mi = Bn), + (Ln = mi && mi.placeable), + (Jn = mi && mi.offscreen), + Tt.useRuntimeCollisionCircles) + ) { + const ta = u.text.placedSymbolArray.get( + Tt.centerJustifiedTextSymbolIndex + ), + La = s.ap(u.textSizeData, N, ta), + Gi = d.get("text-padding"); + (Ci = this.collisionIndex.placeCollisionCircles( + ae, + ta, + u.lineVertexArray, + u.glyphOffsetArray, + La, + C, + P, + l, + Pe, + G.predicate, + Tt.collisionCircleDiameter, + Gi, + g, + tt + )), + Ci.circles.length && + Ci.collisionDetected && + !l && + s.w( + "Collisions detected, but collision boxes are not shown" + ), + (Ln = + ce || + (Ci.circles.length > 0 && !Ci.collisionDetected)), + (Jn = Jn && Ci.offscreen); + } + if ( + (vr.iconFeatureIndex && (vo = vr.iconFeatureIndex), + vr.iconBox) + ) { + const ta = (La) => + this.collisionIndex.placeCollisionBox( + La, + ve, + E, + Xe, + C, + Pe, + be, + w, + G.predicate, + tt, + _e && Kr ? Kr : void 0, + jt + ); + si && si.placeable && vr.verticalIconBox + ? (($i = ta(vr.verticalIconBox)), (Wn = $i.placeable)) + : (($i = ta(vr.iconBox)), (Wn = $i.placeable)), + (Jn = Jn && $i.offscreen); + } + const ms = + te || + (Tt.numHorizontalGlyphVertices === 0 && + Tt.numVerticalGlyphVertices === 0), + Vo = Q || Tt.numIconVertices === 0; + ms || Vo + ? Vo + ? ms || (Wn = Wn && Ln) + : (Ln = Wn && Ln) + : (Wn = Ln = Wn && Ln); + const qo = Wn && $i.placeable; + if ( + (Ln && + mi.placeable && + this.collisionIndex.insertCollisionBox( + mi.box, + ae, + d.get("text-ignore-placement"), + u.bucketInstanceId, + si && si.placeable && go ? go : za, + G.ID + ), + qo && + this.collisionIndex.insertCollisionBox( + $i.box, + ve, + d.get("icon-ignore-placement"), + u.bucketInstanceId, + vo, + G.ID + ), + Ci && + Ln && + this.collisionIndex.insertCollisionCircles( + Ci.circles, + ae, + d.get("text-ignore-placement"), + u.bucketInstanceId, + za, + G.ID + ), + l && + this.storeCollisionData( + u.bucketInstanceId, + Jr, + vr, + mi, + $i, + Ci + ), + Tt.crossTileID === 0) + ) + throw new Error( + "symbolInstance.crossTileID can't be 0" + ); + if (u.bucketInstanceId === 0) + throw new Error("bucket.bucketInstanceId can't be 0"); + (this.placements[Tt.crossTileID] = new ma( + (Ln || rt) && !(mi != null && mi.occluded), + (Wn || Ge) && !($i != null && $i.occluded), + Jn || u.justReloaded + )), + (i[Tt.crossTileID] = !0); + }; + if (Be) { + if (e.symbolInstanceStart !== 0) + throw new Error("bucket.bucketInstanceId should be 0"); + const Tt = u.getSortedSymbolIndexes( + -this.transform.bearingInRadians + ); + for (let vr = Tt.length - 1; vr >= 0; --vr) { + const Jr = Tt[vr]; + Zt(u.symbolInstances.get(Jr), u.collisionArrays[Jr], Jr); + } + } else for (let Tt = e.symbolInstanceStart; Tt < e.symbolInstanceEnd; Tt++) Zt(u.symbolInstances.get(Tt), u.collisionArrays[Tt], Tt); + u.justReloaded = !1; + } + storeCollisionData(e, i, l, u, d, g) { + if (l.textBox || l.iconBox) { + let w, C; + this.collisionBoxArrays.has(e) + ? (w = this.collisionBoxArrays.get(e)) + : ((w = new Map()), this.collisionBoxArrays.set(e, w)), + w.has(i) + ? (C = w.get(i)) + : ((C = { text: null, icon: null }), w.set(i, C)), + l.textBox && (C.text = u.box), + l.iconBox && (C.icon = d.box); + } + if (g) { + let w = this.collisionCircleArrays[e]; + w === void 0 && (w = this.collisionCircleArrays[e] = []); + for (let C = 0; C < g.circles.length; C += 4) + w.push(g.circles[C + 0] - pr), + w.push(g.circles[C + 1] - pr), + w.push(g.circles[C + 2]), + w.push(g.collisionDetected ? 1 : 0); + } + } + markUsedJustification(e, i, l, u) { + let d; + d = + u === s.ao.vertical + ? l.verticalPlacedTextSymbolIndex + : { + left: l.leftJustifiedTextSymbolIndex, + center: l.centerJustifiedTextSymbolIndex, + right: l.rightJustifiedTextSymbolIndex, + }[s.aG(i)]; + const g = [ + l.leftJustifiedTextSymbolIndex, + l.centerJustifiedTextSymbolIndex, + l.rightJustifiedTextSymbolIndex, + l.verticalPlacedTextSymbolIndex, + ]; + for (const w of g) + w >= 0 && + (e.text.placedSymbolArray.get(w).crossTileID = + d >= 0 && w !== d ? 0 : l.crossTileID); + } + markUsedOrientation(e, i, l) { + const u = + i === s.ao.horizontal || i === s.ao.horizontalOnly + ? i + : 0, + d = i === s.ao.vertical ? i : 0, + g = [ + l.leftJustifiedTextSymbolIndex, + l.centerJustifiedTextSymbolIndex, + l.rightJustifiedTextSymbolIndex, + ]; + for (const w of g) + e.text.placedSymbolArray.get(w).placedOrientation = u; + l.verticalPlacedTextSymbolIndex && + (e.text.placedSymbolArray.get( + l.verticalPlacedTextSymbolIndex + ).placedOrientation = d); + } + commit(e) { + (this.commitTime = e), + (this.zoomAtLastRecencyCheck = this.transform.zoom); + const i = this.prevPlacement; + let l = !1; + this.prevZoomAdjustment = i + ? i.zoomAdjustment(this.transform.zoom) + : 0; + const u = i ? i.symbolFadeChange(e) : 1, + d = i ? i.opacities : {}, + g = i ? i.variableOffsets : {}, + w = i ? i.placedOrientations : {}; + for (const C in this.placements) { + const P = this.placements[C], + E = d[C]; + E + ? ((this.opacities[C] = new en(E, u, P.text, P.icon)), + (l = + l || + P.text !== E.text.placed || + P.icon !== E.icon.placed)) + : ((this.opacities[C] = new en( + null, + u, + P.text, + P.icon, + P.skipFade + )), + (l = l || P.text || P.icon)); + } + for (const C in d) { + const P = d[C]; + if (!this.opacities[C]) { + const E = new en(P, u, !1, !1); + E.isHidden() || + ((this.opacities[C] = E), + (l = l || P.text.placed || P.icon.placed)); + } + } + for (const C in g) + this.variableOffsets[C] || + !this.opacities[C] || + this.opacities[C].isHidden() || + (this.variableOffsets[C] = g[C]); + for (const C in w) + this.placedOrientations[C] || + !this.opacities[C] || + this.opacities[C].isHidden() || + (this.placedOrientations[C] = w[C]); + if (i && i.lastPlacementChangeTime === void 0) + throw new Error( + "Last placement time for previous placement is not defined" + ); + l + ? (this.lastPlacementChangeTime = e) + : typeof this.lastPlacementChangeTime != "number" && + (this.lastPlacementChangeTime = i + ? i.lastPlacementChangeTime + : e); + } + updateLayerOpacities(e, i) { + const l = {}; + for (const u of i) { + const d = u.getBucket(e); + d && + u.latestFeatureIndex && + e.id === d.layerIds[0] && + this.updateBucketOpacities( + d, + u.tileID, + l, + u.collisionBoxArray + ); + } + } + updateBucketOpacities(e, i, l, u) { + e.hasTextData() && + (e.text.opacityVertexArray.clear(), + (e.text.hasVisibleVertices = !1)), + e.hasIconData() && + (e.icon.opacityVertexArray.clear(), + (e.icon.hasVisibleVertices = !1)), + e.hasIconCollisionBoxData() && + e.iconCollisionBox.collisionVertexArray.clear(), + e.hasTextCollisionBoxData() && + e.textCollisionBox.collisionVertexArray.clear(); + const d = e.layers[0], + g = d.layout, + w = new en(null, 0, !1, !1, !0), + C = g.get("text-allow-overlap"), + P = g.get("icon-allow-overlap"), + E = + d._unevaluatedLayout.hasValue("text-variable-anchor") || + d._unevaluatedLayout.hasValue( + "text-variable-anchor-offset" + ), + R = g.get("text-rotation-alignment") === "map", + D = g.get("text-pitch-alignment") === "map", + N = g.get("icon-text-fit") !== "none", + G = new en( + null, + 0, + C && (P || !e.hasIconData() || g.get("icon-optional")), + P && (C || !e.hasTextData() || g.get("text-optional")), + !0 + ); + !e.collisionArrays && + u && + (e.hasIconCollisionBoxData() || + e.hasTextCollisionBoxData()) && + e.deserializeCollisionBoxes(u); + const te = (ae, ce, ve) => { + for (let me = 0; me < ce / 4; me++) + ae.opacityVertexArray.emplaceBack(ve); + ae.hasVisibleVertices = + ae.hasVisibleVertices || ve !== Br; + }, + Q = this.collisionBoxArrays.get(e.bucketInstanceId); + for (let ae = 0; ae < e.symbolInstances.length; ae++) { + const ce = e.symbolInstances.get(ae), + { + numHorizontalGlyphVertices: ve, + numVerticalGlyphVertices: me, + crossTileID: be, + } = ce; + let Pe = this.opacities[be]; + l[be] + ? (Pe = w) + : Pe || ((Pe = G), (this.opacities[be] = Pe)), + (l[be] = !0); + const _e = ce.numIconVertices > 0, + Be = this.placedOrientations[ce.crossTileID], + rt = Be === s.ao.vertical, + Ge = Be === s.ao.horizontal || Be === s.ao.horizontalOnly; + if (ve > 0 || me > 0) { + const tt = Xt(Pe.text); + te(e.text, ve, rt ? Br : tt), + te(e.text, me, Ge ? Br : tt); + const jt = Pe.text.isHidden(); + [ + ce.rightJustifiedTextSymbolIndex, + ce.centerJustifiedTextSymbolIndex, + ce.leftJustifiedTextSymbolIndex, + ].forEach((vr) => { + vr >= 0 && + (e.text.placedSymbolArray.get(vr).hidden = + jt || rt ? 1 : 0); + }), + ce.verticalPlacedTextSymbolIndex >= 0 && + (e.text.placedSymbolArray.get( + ce.verticalPlacedTextSymbolIndex + ).hidden = jt || Ge ? 1 : 0); + const Zt = this.variableOffsets[ce.crossTileID]; + Zt && this.markUsedJustification(e, Zt.anchor, ce, Be); + const Tt = this.placedOrientations[ce.crossTileID]; + Tt && + (this.markUsedJustification(e, "left", ce, Tt), + this.markUsedOrientation(e, Tt, ce)); + } + if (_e) { + const tt = Xt(Pe.icon), + jt = !(N && ce.verticalPlacedIconSymbolIndex && rt); + ce.placedIconSymbolIndex >= 0 && + (te(e.icon, ce.numIconVertices, jt ? tt : Br), + (e.icon.placedSymbolArray.get( + ce.placedIconSymbolIndex + ).hidden = Pe.icon.isHidden())), + ce.verticalPlacedIconSymbolIndex >= 0 && + (te(e.icon, ce.numVerticalIconVertices, jt ? Br : tt), + (e.icon.placedSymbolArray.get( + ce.verticalPlacedIconSymbolIndex + ).hidden = Pe.icon.isHidden())); + } + const Xe = + Q && Q.has(ae) ? Q.get(ae) : { text: null, icon: null }; + if ( + e.hasIconCollisionBoxData() || + e.hasTextCollisionBoxData() + ) { + const tt = e.collisionArrays[ae]; + if (tt) { + let jt = new s.P(0, 0); + if (tt.textBox || tt.verticalTextBox) { + let Zt = !0; + if (E) { + const Tt = this.variableOffsets[be]; + Tt + ? ((jt = Zn( + Tt.anchor, + Tt.width, + Tt.height, + Tt.textOffset, + Tt.textBoxScale + )), + R && + jt._rotate( + D + ? -this.transform.bearingInRadians + : this.transform.bearingInRadians + )) + : (Zt = !1); + } + if (tt.textBox || tt.verticalTextBox) { + let Tt; + tt.textBox && (Tt = rt), + tt.verticalTextBox && (Tt = Ge), + Zi( + e.textCollisionBox.collisionVertexArray, + Pe.text.placed, + !Zt || Tt, + Xe.text, + jt.x, + jt.y + ); + } + } + if (tt.iconBox || tt.verticalIconBox) { + const Zt = !!(!Ge && tt.verticalIconBox); + let Tt; + tt.iconBox && (Tt = Zt), + tt.verticalIconBox && (Tt = !Zt), + Zi( + e.iconCollisionBox.collisionVertexArray, + Pe.icon.placed, + Tt, + Xe.icon, + N ? jt.x : 0, + N ? jt.y : 0 + ); + } + } + } + } + if ( + (e.sortFeatures(-this.transform.bearingInRadians), + this.retainedQueryData[e.bucketInstanceId] && + (this.retainedQueryData[ + e.bucketInstanceId + ].featureSortOrder = e.featureSortOrder), + e.hasTextData() && + e.text.opacityVertexBuffer && + e.text.opacityVertexBuffer.updateData( + e.text.opacityVertexArray + ), + e.hasIconData() && + e.icon.opacityVertexBuffer && + e.icon.opacityVertexBuffer.updateData( + e.icon.opacityVertexArray + ), + e.hasIconCollisionBoxData() && + e.iconCollisionBox.collisionVertexBuffer && + e.iconCollisionBox.collisionVertexBuffer.updateData( + e.iconCollisionBox.collisionVertexArray + ), + e.hasTextCollisionBoxData() && + e.textCollisionBox.collisionVertexBuffer && + e.textCollisionBox.collisionVertexBuffer.updateData( + e.textCollisionBox.collisionVertexArray + ), + e.text.opacityVertexArray.length !== + e.text.layoutVertexArray.length / 4) + ) + throw new Error( + `bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4` + ); + if ( + e.icon.opacityVertexArray.length !== + e.icon.layoutVertexArray.length / 4 + ) + throw new Error( + `bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4` + ); + e.bucketInstanceId in this.collisionCircleArrays && + ((e.collisionCircleArray = + this.collisionCircleArrays[e.bucketInstanceId]), + delete this.collisionCircleArrays[e.bucketInstanceId]); + } + symbolFadeChange(e) { + return this.fadeDuration === 0 + ? 1 + : (e - this.commitTime) / this.fadeDuration + + this.prevZoomAdjustment; + } + zoomAdjustment(e) { + return Math.max(0, (this.transform.zoom - e) / 1.5); + } + hasTransitions(e) { + return ( + this.stale || + e - this.lastPlacementChangeTime < this.fadeDuration + ); + } + stillRecent(e, i) { + const l = + this.zoomAtLastRecencyCheck === i + ? 1 - this.zoomAdjustment(i) + : 1; + return ( + (this.zoomAtLastRecencyCheck = i), + this.commitTime + this.fadeDuration * l > e + ); + } + setStale() { + this.stale = !0; + } + } + function Zi(h, e, i, l, u, d) { + (l && l.length !== 0) || (l = [0, 0, 0, 0]); + const g = l[0] - pr, + w = l[1] - pr, + C = l[2] - pr, + P = l[3] - pr; + h.emplaceBack(e ? 1 : 0, i ? 1 : 0, u || 0, d || 0, g, w), + h.emplaceBack(e ? 1 : 0, i ? 1 : 0, u || 0, d || 0, C, w), + h.emplaceBack(e ? 1 : 0, i ? 1 : 0, u || 0, d || 0, C, P), + h.emplaceBack(e ? 1 : 0, i ? 1 : 0, u || 0, d || 0, g, P); + } + const Yi = Math.pow(2, 25), + Ei = Math.pow(2, 24), + zi = Math.pow(2, 17), + Ki = Math.pow(2, 16), + oa = Math.pow(2, 9), + Ta = Math.pow(2, 8), + bt = Math.pow(2, 1); + function Xt(h) { + if (h.opacity === 0 && !h.placed) return 0; + if (h.opacity === 1 && h.placed) return 4294967295; + const e = h.placed ? 1 : 0, + i = Math.floor(127 * h.opacity); + return ( + i * Yi + + e * Ei + + i * zi + + e * Ki + + i * oa + + e * Ta + + i * bt + + e + ); + } + const Br = 0; + class xn { + constructor(e) { + (this._sortAcrossTiles = + e.layout.get("symbol-z-order") !== "viewport-y" && + !e.layout.get("symbol-sort-key").isConstant()), + (this._currentTileIndex = 0), + (this._currentPartIndex = 0), + (this._seenCrossTileIDs = {}), + (this._bucketParts = []); + } + continuePlacement(e, i, l, u, d) { + const g = this._bucketParts; + for (; this._currentTileIndex < e.length; ) + if ( + (i.getBucketParts( + g, + u, + e[this._currentTileIndex], + this._sortAcrossTiles + ), + this._currentTileIndex++, + d()) + ) + return !0; + for ( + this._sortAcrossTiles && + ((this._sortAcrossTiles = !1), + g.sort((w, C) => w.sortKey - C.sortKey)); + this._currentPartIndex < g.length; + + ) + if ( + (i.placeLayerBucketPart( + g[this._currentPartIndex], + this._seenCrossTileIDs, + l + ), + this._currentPartIndex++, + d()) + ) + return !0; + return !1; + } + } + class On { + constructor(e, i, l, u, d, g, w, C) { + (this.placement = new ni(e, i, g, w, C)), + (this._currentPlacementIndex = l.length - 1), + (this._forceFullPlacement = u), + (this._showCollisionBoxes = d), + (this._done = !1); + } + isDone() { + return this._done; + } + continuePlacement(e, i, l) { + const u = ne.now(), + d = () => !this._forceFullPlacement && ne.now() - u > 2; + for (; this._currentPlacementIndex >= 0; ) { + const g = i[e[this._currentPlacementIndex]], + w = this.placement.collisionIndex.transform.zoom; + if ( + g.type === "symbol" && + (!g.minzoom || g.minzoom <= w) && + (!g.maxzoom || g.maxzoom > w) + ) { + if ( + (this._inProgressLayer || + (this._inProgressLayer = new xn(g)), + this._inProgressLayer.continuePlacement( + l[g.source], + this.placement, + this._showCollisionBoxes, + g, + d + )) + ) + return; + delete this._inProgressLayer; + } + this._currentPlacementIndex--; + } + this._done = !0; + } + commit(e) { + return this.placement.commit(e), this.placement; + } + } + const Yn = 512 / s.$ / 2; + class Vn { + constructor(e, i, l) { + (this.tileID = e), + (this.bucketInstanceId = l), + (this._symbolsByKey = {}); + const u = new Map(); + for (let d = 0; d < i.length; d++) { + const g = i.get(d), + w = g.key, + C = u.get(w); + C ? C.push(g) : u.set(w, [g]); + } + for (const [d, g] of u) { + const w = { + positions: g.map((C) => ({ + x: Math.floor(C.anchorX * Yn), + y: Math.floor(C.anchorY * Yn), + })), + crossTileIDs: g.map((C) => C.crossTileID), + }; + if (w.positions.length > 128) { + const C = new s.aI(w.positions.length, 16, Uint16Array); + for (const { x: P, y: E } of w.positions) C.add(P, E); + C.finish(), delete w.positions, (w.index = C); + } + this._symbolsByKey[d] = w; + } + } + getScaledCoordinates(e, i) { + const { x: l, y: u, z: d } = this.tileID.canonical, + { x: g, y: w, z: C } = i.canonical, + P = Yn / Math.pow(2, C - d), + E = (w * s.$ + e.anchorY) * P, + R = u * s.$ * Yn; + return { + x: Math.floor((g * s.$ + e.anchorX) * P - l * s.$ * Yn), + y: Math.floor(E - R), + }; + } + findMatches(e, i, l) { + const u = + this.tileID.canonical.z < i.canonical.z + ? 1 + : Math.pow(2, this.tileID.canonical.z - i.canonical.z); + for (let d = 0; d < e.length; d++) { + const g = e.get(d); + if (g.crossTileID) continue; + const w = this._symbolsByKey[g.key]; + if (!w) continue; + const C = this.getScaledCoordinates(g, i); + if (w.index) { + const P = w.index + .range(C.x - u, C.y - u, C.x + u, C.y + u) + .sort(); + for (const E of P) { + const R = w.crossTileIDs[E]; + if (!l[R]) { + (l[R] = !0), (g.crossTileID = R); + break; + } + } + } else if (w.positions) + for (let P = 0; P < w.positions.length; P++) { + const E = w.positions[P], + R = w.crossTileIDs[P]; + if ( + Math.abs(E.x - C.x) <= u && + Math.abs(E.y - C.y) <= u && + !l[R] + ) { + (l[R] = !0), (g.crossTileID = R); + break; + } + } + } + } + getCrossTileIDsLists() { + return Object.values(this._symbolsByKey).map( + ({ crossTileIDs: e }) => e + ); + } + } + class wn { + constructor() { + this.maxCrossTileID = 0; + } + generate() { + return ++this.maxCrossTileID; + } + } + class Ji { + constructor() { + (this.indexes = {}), + (this.usedCrossTileIDs = {}), + (this.lng = 0); + } + handleWrapJump(e) { + const i = Math.round((e - this.lng) / 360); + if (i !== 0) + for (const l in this.indexes) { + const u = this.indexes[l], + d = {}; + for (const g in u) { + const w = u[g]; + (w.tileID = w.tileID.unwrapTo(w.tileID.wrap + i)), + (d[w.tileID.key] = w); + } + this.indexes[l] = d; + } + this.lng = e; + } + addBucket(e, i, l) { + if ( + this.indexes[e.overscaledZ] && + this.indexes[e.overscaledZ][e.key] + ) { + if ( + this.indexes[e.overscaledZ][e.key].bucketInstanceId === + i.bucketInstanceId + ) + return !1; + this.removeBucketCrossTileIDs( + e.overscaledZ, + this.indexes[e.overscaledZ][e.key] + ); + } + for (let d = 0; d < i.symbolInstances.length; d++) + i.symbolInstances.get(d).crossTileID = 0; + this.usedCrossTileIDs[e.overscaledZ] || + (this.usedCrossTileIDs[e.overscaledZ] = {}); + const u = this.usedCrossTileIDs[e.overscaledZ]; + for (const d in this.indexes) { + const g = this.indexes[d]; + if (Number(d) > e.overscaledZ) + for (const w in g) { + const C = g[w]; + C.tileID.isChildOf(e) && + C.findMatches(i.symbolInstances, e, u); + } + else { + const w = g[e.scaledTo(Number(d)).key]; + w && w.findMatches(i.symbolInstances, e, u); + } + } + for (let d = 0; d < i.symbolInstances.length; d++) { + const g = i.symbolInstances.get(d); + g.crossTileID || + ((g.crossTileID = l.generate()), (u[g.crossTileID] = !0)); + } + return ( + this.indexes[e.overscaledZ] === void 0 && + (this.indexes[e.overscaledZ] = {}), + (this.indexes[e.overscaledZ][e.key] = new Vn( + e, + i.symbolInstances, + i.bucketInstanceId + )), + !0 + ); + } + removeBucketCrossTileIDs(e, i) { + for (const l of i.getCrossTileIDsLists()) + for (const u of l) delete this.usedCrossTileIDs[e][u]; + } + removeStaleBuckets(e) { + let i = !1; + for (const l in this.indexes) { + const u = this.indexes[l]; + for (const d in u) + e[u[d].bucketInstanceId] || + (this.removeBucketCrossTileIDs(l, u[d]), + delete u[d], + (i = !0)); + } + return i; + } + } + class sr { + constructor() { + (this.layerIndexes = {}), + (this.crossTileIDs = new wn()), + (this.maxBucketInstanceId = 0), + (this.bucketsInCurrentPlacement = {}); + } + addLayer(e, i, l) { + let u = this.layerIndexes[e.id]; + u === void 0 && (u = this.layerIndexes[e.id] = new Ji()); + let d = !1; + const g = {}; + u.handleWrapJump(l); + for (const w of i) { + const C = w.getBucket(e); + C && + e.id === C.layerIds[0] && + (C.bucketInstanceId || + (C.bucketInstanceId = ++this.maxBucketInstanceId), + u.addBucket(w.tileID, C, this.crossTileIDs) && (d = !0), + (g[C.bucketInstanceId] = !0)); + } + return u.removeStaleBuckets(g) && (d = !0), d; + } + pruneUnusedLayers(e) { + const i = {}; + e.forEach((l) => { + i[l] = !0; + }); + for (const l in this.layerIndexes) + i[l] || delete this.layerIndexes[l]; + } + } + var Ut = "void main() {fragColor=vec4(1.0);}"; + const $r = { + prelude: lr( + `#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 +out highp vec4 fragColor;`, + `#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;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c +);} +#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(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); +#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=(texture(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 +#ifdef GLOBE +if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;} +#endif +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 +}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;` + ), + projectionMercator: lr( + "", + "float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}" + ), + projectionGlobe: lr( + "", + `#define GLOBE_RADIUS 6371008.8 +uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos +);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY); +if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len +);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}` + ), + background: lr( + `uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + "in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}" + ), + backgroundPattern: lr( + `uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + "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;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}" + ), + circle: lr( + `in vec3 v_data;in 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);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;} +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out 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 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) { +#ifdef GLOBE +vec3 center_vector=projectToSphere(circle_center); +#endif +float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else { +#ifdef GLOBE +vec4 projected_center=interpolateProjection(circle_center,center_vector,ele); +#else +vec4 projected_center=projectTileWithElevation(circle_center,ele); +#endif +corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);} +#ifdef GLOBE +vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele); +#else +gl_Position=projectTileWithElevation(corner_position,ele); +#endif +} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}` + ), + clippingMask: lr( + Ut, + "in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}" + ), + heatmap: lr( + `uniform highp float u_intensity;in 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);fragColor=vec4(val,1.0,1.0,1.0); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out 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 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0); +#ifdef GLOBE +vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0); +#else +gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center)); +#endif +}` + ), + heatmapTexture: lr( + `uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(0.0); +#endif +}`, + "uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out 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: lr( + "in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}", + "in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}" + ), + collisionCircle: lr( + "in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}", + "in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}" + ), + colorRelief: lr( + `#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else +{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0)); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + "uniform vec2 u_dimension;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}" + ), + debug: lr( + "uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}", + "in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}" + ), + depth: lr( + Ut, + `in vec2 a_pos;void main() { +#ifdef GLOBE +gl_Position=projectTileFor3D(a_pos,0.0); +#else +gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0); +#endif +}` + ), + fill: lr( + `#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 +fragColor=color*opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform vec2 u_fill_translate;in vec2 a_pos; +#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=projectTile(a_pos+u_fill_translate,a_pos);}` + ), + fillOutline: lr( + `in vec2 v_pos; +#ifdef GLOBE +in float v_depth; +#endif +#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);fragColor=outline_color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos; +#ifdef GLOBE +out float v_depth; +#endif +#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=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +}` + ), + fillOutlinePattern: lr( + `uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos; +#ifdef GLOBE +in float v_depth; +#endif +#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity; +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos; +#ifdef GLOBE +out float v_depth; +#endif +#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=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +}` + ), + fillPattern: lr( + `#ifdef GL_ES +precision highp float; +#endif +uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in 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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out 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=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}` + ), + fillExtrusion: lr( + `in vec4 v_color;void main() {fragColor=v_color; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed; +#ifdef TERRAIN3D +in vec2 a_centroid; +#endif +out 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);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; +#ifdef GLOBE +vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); +#else +gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); +#endif +float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0); +#ifdef GLOBE +mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition); +#endif +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: lr( + `uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting; +#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed; +#ifdef TERRAIN3D +in vec2 a_centroid; +#endif +#ifdef GLOBE +out vec3 v_sphere_pos; +#endif +out vec2 v_pos_a;out vec2 v_pos_b;out 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 elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; +#ifdef GLOBE +vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); +#else +gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); +#endif +vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 +? a_pos +: vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.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: lr( + `#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;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))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + "uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}" + ), + hillshade: lr( + `uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES]; +#define PI 3.141592653589793 +#define STANDARD 0 +#define COMBINED 1 +#define IGOR 2 +#define MULTIDIRECTIONAL 3 +#define BASIC 4 +float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else +{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else +{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);} +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + "uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}" + ), + line: lr( + `uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale; +#ifdef GLOBE +in float v_depth; +#endif +#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);fragColor=color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + ` +#define scale 0.015873016 +in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}` + ), + lineGradient: lr( + `uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv; +#ifdef GLOBE +in float v_depth; +#endif +#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=texture(u_image,v_uv);fragColor=color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + ` +#define scale 0.015873016 +in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}` + ), + linePattern: lr( + `#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;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width; +#ifdef GLOBE +in float v_depth; +#endif +#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(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity; +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + ` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}` + ), + lineSDF: lr( + `uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale; +#ifdef GLOBE +in float v_depth; +#endif +#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=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + ` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;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;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#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: lr( + `uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in 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=texture(u_image0,v_pos0);vec4 color1=texture(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);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5; +#ifdef GLOBE +if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;} +#endif +v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}` + ), + symbolIcon: lr( + `uniform sampler2D u_texture;in vec2 v_tex;in 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;fragColor=texture(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; +#ifdef GLOBE +if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} +#endif +vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;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: lr( + `#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;in vec2 v_data0;in 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=texture(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);}fragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform 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_translation;uniform float u_pitched_scale;out vec2 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; +#ifdef GLOBE +if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} +#endif +vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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: lr( + `#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;in vec4 v_data0;in 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;fragColor=texture(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +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=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`, + `in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in 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_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;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; +#ifdef GLOBE +if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} +#endif +vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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: lr( + "uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}", + "in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}" + ), + terrainDepth: lr( + "in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}", + "in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}" + ), + terrainCoords: lr( + "precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}", + "in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}" + ), + projectionErrorMeasurement: lr( + "in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}", + "in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}" + ), + atmosphere: lr( + `in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758 +);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`, + "in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}" + ), + sky: lr( + "uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}", + "in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}" + ), + }; + function lr(h, e) { + const i = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g, + l = e.match(/in ([\w]+) ([\w]+)/g), + u = h.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), + d = e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g), + g = d ? d.concat(u) : u, + w = {}; + return { + fragmentSource: (h = h.replace( + i, + (C, P, E, R, D) => ( + (w[D] = !0), + P === "define" + ? ` +#ifndef HAS_UNIFORM_u_${D} +in ${E} ${R} ${D}; +#else +uniform ${E} ${R} u_${D}; +#endif +` + : ` +#ifdef HAS_UNIFORM_u_${D} + ${E} ${R} ${D} = u_${D}; +#endif +` + ) + )), + vertexSource: (e = e.replace(i, (C, P, E, R, D) => { + const N = R === "float" ? "vec2" : "vec4", + G = D.match(/color/) ? "color" : N; + return w[D] + ? P === "define" + ? ` +#ifndef HAS_UNIFORM_u_${D} +uniform lowp float u_${D}_t; +in ${E} ${N} a_${D}; +out ${E} ${R} ${D}; +#else +uniform ${E} ${R} u_${D}; +#endif +` + : G === "vec4" + ? ` +#ifndef HAS_UNIFORM_u_${D} + ${D} = a_${D}; +#else + ${E} ${R} ${D} = u_${D}; +#endif +` + : ` +#ifndef HAS_UNIFORM_u_${D} + ${D} = unpack_mix_${G}(a_${D}, u_${D}_t); +#else + ${E} ${R} ${D} = u_${D}; +#endif +` + : P === "define" + ? ` +#ifndef HAS_UNIFORM_u_${D} +uniform lowp float u_${D}_t; +in ${E} ${N} a_${D}; +#else +uniform ${E} ${R} u_${D}; +#endif +` + : G === "vec4" + ? ` +#ifndef HAS_UNIFORM_u_${D} + ${E} ${R} ${D} = a_${D}; +#else + ${E} ${R} ${D} = u_${D}; +#endif +` + : ` +#ifndef HAS_UNIFORM_u_${D} + ${E} ${R} ${D} = unpack_mix_${G}(a_${D}, u_${D}_t); +#else + ${E} ${R} ${D} = u_${D}; +#endif +`; + })), + staticAttributes: l, + staticUniforms: g, + }; + } + class Tn { + constructor(e, i, l) { + (this.vertexBuffer = e), + (this.indexBuffer = i), + (this.segments = l); + } + destroy() { + this.vertexBuffer.destroy(), + this.indexBuffer.destroy(), + this.segments.destroy(), + (this.vertexBuffer = null), + (this.indexBuffer = null), + (this.segments = null); + } + } + var an = s.aJ([{ name: "a_pos", type: "Int16", components: 2 }]); + const Cn = "#define PROJECTION_MERCATOR", + Gn = "mercator"; + class Mr { + constructor() { + this._cachedMesh = null; + } + get name() { + return "mercator"; + } + get useSubdivision() { + return !1; + } + get shaderVariantName() { + return Gn; + } + get shaderDefine() { + return Cn; + } + get shaderPreludeCode() { + return $r.projectionMercator; + } + get vertexShaderPreludeCode() { + return $r.projectionMercator.vertexSource; + } + get subdivisionGranularity() { + return s.aK.noSubdivision; + } + get useGlobeControls() { + return !1; + } + get transitionState() { + return 0; + } + get latitudeErrorCorrectionRadians() { + return 0; + } + destroy() {} + updateGPUdependent(e) {} + getMeshFromTileID(e, i, l, u, d) { + if (this._cachedMesh) return this._cachedMesh; + const g = new s.aL(); + g.emplaceBack(0, 0), + g.emplaceBack(s.$, 0), + g.emplaceBack(0, s.$), + g.emplaceBack(s.$, s.$); + const w = e.createVertexBuffer(g, an.members), + C = s.aM.simpleSegment(0, 0, 4, 2), + P = new s.aN(); + P.emplaceBack(1, 0, 2), P.emplaceBack(1, 2, 3); + const E = e.createIndexBuffer(P); + return (this._cachedMesh = new Tn(w, E, C)), this._cachedMesh; + } + recalculate() {} + hasTransition() { + return !1; + } + setErrorQueryLatitudeDegrees(e) {} + } + class Mn { + constructor(e = 0, i = 0, l = 0, u = 0) { + if ( + isNaN(e) || + e < 0 || + isNaN(i) || + i < 0 || + isNaN(l) || + l < 0 || + isNaN(u) || + u < 0 + ) + throw new Error( + "Invalid value for edge-insets, top, bottom, left and right must all be numbers" + ); + (this.top = e), + (this.bottom = i), + (this.left = l), + (this.right = u); + } + interpolate(e, i, l) { + return ( + i.top != null && + e.top != null && + (this.top = s.C.number(e.top, i.top, l)), + i.bottom != null && + e.bottom != null && + (this.bottom = s.C.number(e.bottom, i.bottom, l)), + i.left != null && + e.left != null && + (this.left = s.C.number(e.left, i.left, l)), + i.right != null && + e.right != null && + (this.right = s.C.number(e.right, i.right, l)), + this + ); + } + getCenter(e, i) { + const l = s.ah((this.left + e - this.right) / 2, 0, e), + u = s.ah((this.top + i - this.bottom) / 2, 0, i); + return new s.P(l, u); + } + equals(e) { + return ( + this.top === e.top && + this.bottom === e.bottom && + this.left === e.left && + this.right === e.right + ); + } + clone() { + return new Mn(this.top, this.bottom, this.left, this.right); + } + toJSON() { + return { + top: this.top, + bottom: this.bottom, + left: this.left, + right: this.right, + }; + } + } + function bn(h, e) { + if (!h.renderWorldCopies || h.lngRange) return; + const i = e.lng - h.center.lng; + e.lng += i > 180 ? -360 : i < -180 ? 360 : 0; + } + function cn(h) { + return Math.max(0, Math.floor(h)); + } + class Sn { + constructor(e, i, l, u, d, g) { + (this._callbacks = e), + (this._tileSize = 512), + (this._renderWorldCopies = g === void 0 || !!g), + (this._minZoom = i || 0), + (this._maxZoom = l || 22), + (this._minPitch = u ?? 0), + (this._maxPitch = d ?? 60), + this.setMaxBounds(), + (this._width = 0), + (this._height = 0), + (this._center = new s.S(0, 0)), + (this._elevation = 0), + (this._zoom = 0), + (this._tileZoom = cn(this._zoom)), + (this._scale = s.af(this._zoom)), + (this._bearingInRadians = 0), + (this._fovInRadians = 0.6435011087932844), + (this._pitchInRadians = 0), + (this._rollInRadians = 0), + (this._unmodified = !0), + (this._edgeInsets = new Mn()), + (this._minElevationForCurrentTile = 0), + (this._autoCalculateNearFarZ = !0); + } + apply(e, i, l) { + (this._latRange = e.latRange), + (this._lngRange = e.lngRange), + (this._width = e.width), + (this._height = e.height), + (this._center = e.center), + (this._elevation = e.elevation), + (this._minElevationForCurrentTile = + e.minElevationForCurrentTile), + (this._zoom = e.zoom), + (this._tileZoom = cn(this._zoom)), + (this._scale = s.af(this._zoom)), + (this._bearingInRadians = e.bearingInRadians), + (this._fovInRadians = e.fovInRadians), + (this._pitchInRadians = e.pitchInRadians), + (this._rollInRadians = e.rollInRadians), + (this._unmodified = e.unmodified), + (this._edgeInsets = new Mn( + e.padding.top, + e.padding.bottom, + e.padding.left, + e.padding.right + )), + (this._minZoom = e.minZoom), + (this._maxZoom = e.maxZoom), + (this._minPitch = e.minPitch), + (this._maxPitch = e.maxPitch), + (this._renderWorldCopies = e.renderWorldCopies), + (this._cameraToCenterDistance = e.cameraToCenterDistance), + (this._nearZ = e.nearZ), + (this._farZ = e.farZ), + (this._autoCalculateNearFarZ = + !l && e.autoCalculateNearFarZ), + i && this._constrain(), + this._calcMatrices(); + } + get pixelsToClipSpaceMatrix() { + return this._pixelsToClipSpaceMatrix; + } + get clipSpaceToPixelsMatrix() { + return this._clipSpaceToPixelsMatrix; + } + get minElevationForCurrentTile() { + return this._minElevationForCurrentTile; + } + setMinElevationForCurrentTile(e) { + this._minElevationForCurrentTile = e; + } + get tileSize() { + return this._tileSize; + } + get tileZoom() { + return this._tileZoom; + } + get scale() { + return this._scale; + } + get width() { + return this._width; + } + get height() { + return this._height; + } + get bearingInRadians() { + return this._bearingInRadians; + } + get lngRange() { + return this._lngRange; + } + get latRange() { + return this._latRange; + } + get pixelsToGLUnits() { + return this._pixelsToGLUnits; + } + get minZoom() { + return this._minZoom; + } + setMinZoom(e) { + this._minZoom !== e && + ((this._minZoom = e), + this.setZoom( + this.getConstrained(this._center, this.zoom).zoom + )); + } + get maxZoom() { + return this._maxZoom; + } + setMaxZoom(e) { + this._maxZoom !== e && + ((this._maxZoom = e), + this.setZoom( + this.getConstrained(this._center, this.zoom).zoom + )); + } + get minPitch() { + return this._minPitch; + } + setMinPitch(e) { + this._minPitch !== e && + ((this._minPitch = e), + this.setPitch(Math.max(this.pitch, e))); + } + get maxPitch() { + return this._maxPitch; + } + setMaxPitch(e) { + this._maxPitch !== e && + ((this._maxPitch = e), + this.setPitch(Math.min(this.pitch, e))); + } + get renderWorldCopies() { + return this._renderWorldCopies; + } + setRenderWorldCopies(e) { + e === void 0 ? (e = !0) : e === null && (e = !1), + (this._renderWorldCopies = e); + } + get worldSize() { + return this._tileSize * this._scale; + } + get centerOffset() { + return this.centerPoint._sub(this.size._div(2)); + } + get size() { + return new s.P(this._width, this._height); + } + get bearing() { + return (this._bearingInRadians / Math.PI) * 180; + } + setBearing(e) { + const i = (s.aO(e, -180, 180) * Math.PI) / 180; + var l, u, d, g, w, C, P, E, R; + this._bearingInRadians !== i && + ((this._unmodified = !1), + (this._bearingInRadians = i), + this._calcMatrices(), + (this._rotationMatrix = O()), + (l = this._rotationMatrix), + (d = -this._bearingInRadians), + (g = (u = this._rotationMatrix)[0]), + (w = u[1]), + (C = u[2]), + (P = u[3]), + (E = Math.sin(d)), + (R = Math.cos(d)), + (l[0] = g * R + C * E), + (l[1] = w * R + P * E), + (l[2] = g * -E + C * R), + (l[3] = w * -E + P * R)); + } + get rotationMatrix() { + return this._rotationMatrix; + } + get pitchInRadians() { + return this._pitchInRadians; + } + get pitch() { + return (this._pitchInRadians / Math.PI) * 180; + } + setPitch(e) { + const i = + (s.ah(e, this.minPitch, this.maxPitch) / 180) * Math.PI; + this._pitchInRadians !== i && + ((this._unmodified = !1), + (this._pitchInRadians = i), + this._calcMatrices()); + } + get rollInRadians() { + return this._rollInRadians; + } + get roll() { + return (this._rollInRadians / Math.PI) * 180; + } + setRoll(e) { + const i = (e / 180) * Math.PI; + this._rollInRadians !== i && + ((this._unmodified = !1), + (this._rollInRadians = i), + this._calcMatrices()); + } + get fovInRadians() { + return this._fovInRadians; + } + get fov() { + return s.aP(this._fovInRadians); + } + setFov(e) { + (e = s.ah(e, 0.1, 150)), + this.fov !== e && + ((this._unmodified = !1), + (this._fovInRadians = s.ae(e)), + this._calcMatrices()); + } + get zoom() { + return this._zoom; + } + setZoom(e) { + const i = this.getConstrained(this._center, e).zoom; + this._zoom !== i && + ((this._unmodified = !1), + (this._zoom = i), + (this._tileZoom = Math.max(0, Math.floor(i))), + (this._scale = s.af(i)), + this._constrain(), + this._calcMatrices()); + } + get center() { + return this._center; + } + setCenter(e) { + (e.lat === this._center.lat && e.lng === this._center.lng) || + ((this._unmodified = !1), + (this._center = e), + this._constrain(), + this._calcMatrices()); + } + get elevation() { + return this._elevation; + } + setElevation(e) { + e !== this._elevation && + ((this._elevation = e), + this._constrain(), + this._calcMatrices()); + } + get padding() { + return this._edgeInsets.toJSON(); + } + setPadding(e) { + this._edgeInsets.equals(e) || + ((this._unmodified = !1), + this._edgeInsets.interpolate(this._edgeInsets, e, 1), + this._calcMatrices()); + } + get centerPoint() { + return this._edgeInsets.getCenter(this._width, this._height); + } + get pixelsPerMeter() { + return this._pixelPerMeter; + } + get unmodified() { + return this._unmodified; + } + get cameraToCenterDistance() { + return this._cameraToCenterDistance; + } + get nearZ() { + return this._nearZ; + } + get farZ() { + return this._farZ; + } + get autoCalculateNearFarZ() { + return this._autoCalculateNearFarZ; + } + overrideNearFarZ(e, i) { + (this._autoCalculateNearFarZ = !1), + (this._nearZ = e), + (this._farZ = i), + this._calcMatrices(); + } + clearNearFarZOverride() { + (this._autoCalculateNearFarZ = !0), this._calcMatrices(); + } + isPaddingEqual(e) { + return this._edgeInsets.equals(e); + } + interpolatePadding(e, i, l) { + (this._unmodified = !1), + this._edgeInsets.interpolate(e, i, l), + this._constrain(), + this._calcMatrices(); + } + resize(e, i, l = !0) { + (this._width = e), + (this._height = i), + l && this._constrain(), + this._calcMatrices(); + } + getMaxBounds() { + return this._latRange && + this._latRange.length === 2 && + this._lngRange && + this._lngRange.length === 2 + ? new _t( + [this._lngRange[0], this._latRange[0]], + [this._lngRange[1], this._latRange[1]] + ) + : null; + } + setMaxBounds(e) { + e + ? ((this._lngRange = [e.getWest(), e.getEast()]), + (this._latRange = [e.getSouth(), e.getNorth()]), + this._constrain()) + : ((this._lngRange = null), + (this._latRange = [-s.ai, s.ai])); + } + getConstrained(e, i) { + return this._callbacks.getConstrained(e, i); + } + getCameraQueryGeometry(e, i) { + if (i.length === 1) return [i[0], e]; + { + const { + minX: l, + minY: u, + maxX: d, + maxY: g, + } = s.a2.fromPoints(i).extend(e); + return [ + new s.P(l, u), + new s.P(d, u), + new s.P(d, g), + new s.P(l, g), + new s.P(l, u), + ]; + } + } + _constrain() { + if ( + !this.center || + !this._width || + !this._height || + this._constraining + ) + return; + this._constraining = !0; + const e = this._unmodified, + { center: i, zoom: l } = this.getConstrained( + this.center, + this.zoom + ); + this.setCenter(i), + this.setZoom(l), + (this._unmodified = e), + (this._constraining = !1); + } + _calcMatrices() { + if (this._width && this._height) { + this._pixelsToGLUnits = [ + 2 / this._width, + -2 / this._height, + ]; + let e = s.ag(new Float64Array(16)); + s.N(e, e, [this._width / 2, -this._height / 2, 1]), + s.M(e, e, [1, -1, 0]), + (this._clipSpaceToPixelsMatrix = e), + (e = s.ag(new Float64Array(16))), + s.N(e, e, [1, -1, 1]), + s.M(e, e, [-1, -1, 0]), + s.N(e, e, [2 / this._width, 2 / this._height, 1]), + (this._pixelsToClipSpaceMatrix = e), + (this._cameraToCenterDistance = + (0.5 / Math.tan(this.fovInRadians / 2)) * this._height); + } + this._callbacks.calcMatrices(); + } + calculateCenterFromCameraLngLatAlt(e, i, l, u) { + const d = l !== void 0 ? l : this.bearing, + g = (u = u !== void 0 ? u : this.pitch), + w = s.a1.fromLngLat(e, i), + C = -Math.cos(s.ae(g)), + P = Math.sin(s.ae(g)), + E = P * Math.sin(s.ae(d)), + R = -P * Math.cos(s.ae(d)); + let D = this.elevation; + const N = i - D; + let G; + C * N >= 0 || Math.abs(C) < 0.1 + ? ((G = 1e4), (D = i + G * C)) + : (G = -N / C); + let te, + Q, + ae = s.aQ(1, w.y), + ce = 0; + do { + if (((ce += 1), ce > 10)) break; + (Q = G / ae), + (te = new s.a1(w.x + E * Q, w.y + R * Q)), + (ae = 1 / te.meterInMercatorCoordinateUnits()); + } while (Math.abs(G - Q * ae) > 1e-12); + return { + center: te.toLngLat(), + elevation: D, + zoom: s.ak( + this.height / + 2 / + Math.tan(this.fovInRadians / 2) / + Q / + this.tileSize + ), + }; + } + recalculateZoomAndCenter(e) { + if (this.elevation - e == 0) return; + const i = s.aj(1, this.center.lat) * this.worldSize, + l = this.cameraToCenterDistance / i, + u = s.a1.fromLngLat(this.center, this.elevation), + d = Me( + this.center, + this.elevation, + this.pitch, + this.bearing, + l + ); + this._elevation = e; + const g = this.calculateCenterFromCameraLngLatAlt( + d.toLngLat(), + s.aQ(d.z, u.y), + this.bearing, + this.pitch + ); + (this._elevation = g.elevation), + (this._center = g.center), + this.setZoom(g.zoom); + } + getCameraPoint() { + const e = + Math.tan(this.pitchInRadians) * + (this.cameraToCenterDistance || 1); + return this.centerPoint.add( + new s.P( + e * Math.sin(this.rollInRadians), + e * Math.cos(this.rollInRadians) + ) + ); + } + getCameraAltitude() { + return ( + (Math.cos(this.pitchInRadians) * + this._cameraToCenterDistance) / + this._pixelPerMeter + + this.elevation + ); + } + getCameraLngLat() { + const e = s.aj(1, this.center.lat) * this.worldSize; + return Me( + this.center, + this.elevation, + this.pitch, + this.bearing, + this.cameraToCenterDistance / e + ).toLngLat(); + } + getMercatorTileCoordinates(e) { + if (!e) return [0, 0, 1, 1]; + const i = + e.canonical.z >= 0 + ? 1 << e.canonical.z + : Math.pow(2, e.canonical.z); + return [ + e.canonical.x / i, + e.canonical.y / i, + 1 / i / s.$, + 1 / i / s.$, + ]; + } + } + class kn { + constructor(e, i) { + (this.min = e), + (this.max = i), + (this.center = s.aR([], s.aS([], this.min, this.max), 0.5)); + } + quadrant(e) { + const i = [e % 2 == 0, e < 2], + l = s.aT(this.min), + u = s.aT(this.max); + for (let d = 0; d < i.length; d++) + (l[d] = i[d] ? this.min[d] : this.center[d]), + (u[d] = i[d] ? this.center[d] : this.max[d]); + return (u[2] = this.max[2]), new kn(l, u); + } + distanceX(e) { + return ( + Math.max(Math.min(this.max[0], e[0]), this.min[0]) - e[0] + ); + } + distanceY(e) { + return ( + Math.max(Math.min(this.max[1], e[1]), this.min[1]) - e[1] + ); + } + intersectsFrustum(e) { + let i = !0; + for (let l = 0; l < e.planes.length; l++) { + const u = this.intersectsPlane(e.planes[l]); + if (u === 0) return 0; + u === 1 && (i = !1); + } + return i + ? 2 + : e.aabb.min[0] > this.max[0] || + e.aabb.min[1] > this.max[1] || + e.aabb.min[2] > this.max[2] || + e.aabb.max[0] < this.min[0] || + e.aabb.max[1] < this.min[1] || + e.aabb.max[2] < this.min[2] + ? 0 + : 1; + } + intersectsPlane(e) { + let i = e[3], + l = e[3]; + for (let u = 0; u < 3; u++) + e[u] > 0 + ? ((i += e[u] * this.min[u]), (l += e[u] * this.max[u])) + : ((l += e[u] * this.min[u]), (i += e[u] * this.max[u])); + return i >= 0 ? 2 : l < 0 ? 0 : 1; + } + } + class vn { + distanceToTile2d(e, i, l, u) { + const d = u.distanceX([e, i]), + g = u.distanceY([e, i]); + return Math.hypot(d, g); + } + getWrap(e, i, l) { + return l; + } + getTileBoundingVolume(e, i, l, u) { + var d, g; + let w = 0, + C = 0; + if (u != null && u.terrain) { + const E = new s.Z(e.z, i, e.z, e.x, e.y), + R = u.terrain.getMinMaxElevation(E); + (w = + (d = R.minElevation) !== null && d !== void 0 + ? d + : Math.min(0, l)), + (C = + (g = R.maxElevation) !== null && g !== void 0 + ? g + : Math.max(0, l)); + } + const P = 1 << e.z; + return new kn( + [i + e.x / P, e.y / P, w], + [i + (e.x + 1) / P, (e.y + 1) / P, C] + ); + } + allowVariableZoom(e, i) { + const l = + (e.fov * + (Math.abs(Math.cos(e.rollInRadians)) * e.height + + Math.abs(Math.sin(e.rollInRadians)) * e.width)) / + e.height, + u = s.ah(78.5 - l / 2, 0, 60); + return !!i.terrain || e.pitch > u; + } + allowWorldCopies() { + return !0; + } + prepareNextFrame() {} + } + class fn { + constructor(e, i, l) { + (this.points = e), (this.planes = i), (this.aabb = l); + } + static fromInvProjectionMatrix(e, i = 1, l = 0, u, d) { + const g = d + ? [ + [6, 5, 4], + [0, 1, 2], + [0, 3, 7], + [2, 1, 5], + [3, 2, 6], + [0, 4, 5], + ] + : [ + [0, 1, 2], + [6, 5, 4], + [0, 3, 7], + [2, 1, 5], + [3, 2, 6], + [0, 4, 5], + ], + w = Math.pow(2, l), + C = [ + [-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((D) => + (function (N, G, te, Q) { + const ae = s.aw([], N, G), + ce = (1 / ae[3] / te) * Q; + return s.aY(ae, ae, [ce, ce, 1 / ae[3], ce]); + })(D, e, i, w) + ); + u && + (function (D, N, G, te) { + const Q = te ? 4 : 0, + ae = te ? 0 : 4; + let ce = 0; + const ve = [], + me = []; + for (let _e = 0; _e < 4; _e++) { + const Be = s.aU([], D[_e + ae], D[_e + Q]), + rt = s.aZ(Be); + s.aR(Be, Be, 1 / rt), ve.push(rt), me.push(Be); + } + for (let _e = 0; _e < 4; _e++) { + const Be = s.a_(D[_e + Q], me[_e], G); + ce = + Be !== null && Be >= 0 + ? Math.max(ce, Be) + : Math.max(ce, ve[_e]); + } + const be = (function (_e, Be) { + const rt = s.aU([], _e[Be[0]], _e[Be[1]]), + Ge = s.aU([], _e[Be[2]], _e[Be[1]]), + Xe = [0, 0, 0, 0]; + return ( + s.aV(Xe, s.aW([], rt, Ge)), + (Xe[3] = -s.aX(Xe, _e[Be[0]])), + Xe + ); + })(D, N), + Pe = (function (_e, Be) { + const rt = s.a$(_e), + Ge = s.b0([], _e, 1 / rt), + Xe = s.aU([], Be, s.aR([], Ge, s.aX(Be, Ge))), + tt = s.a$(Xe); + if (tt > 0) { + const jt = Math.sqrt(1 - Ge[3] * Ge[3]), + Zt = s.aR([], Ge, -Ge[3]), + Tt = s.aS([], Zt, s.aR([], Xe, jt / tt)); + return s.b1(Be, Tt); + } + return null; + })(G, be); + if (Pe !== null) { + const _e = Pe / s.aX(me[0], be); + ce = Math.min(ce, _e); + } + for (let _e = 0; _e < 4; _e++) { + const Be = Math.min(ce, ve[_e]); + D[_e + ae] = [ + D[_e + Q][0] + me[_e][0] * Be, + D[_e + Q][1] + me[_e][1] * Be, + D[_e + Q][2] + me[_e][2] * Be, + 1, + ]; + } + })(C, g[0], u, d); + const P = g.map((D) => { + const N = s.aU([], C[D[0]], C[D[1]]), + G = s.aU([], C[D[2]], C[D[1]]), + te = s.aV([], s.aW([], N, G)), + Q = -s.aX(te, C[D[1]]); + return te.concat(Q); + }), + E = [ + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY, + ], + R = [ + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY, + ]; + for (const D of C) + for (let N = 0; N < 3; N++) + (E[N] = Math.min(E[N], D[N])), + (R[N] = Math.max(R[N], D[N])); + return new fn(C, P, new kn(E, R)); + } + } + class on { + get pixelsToClipSpaceMatrix() { + return this._helper.pixelsToClipSpaceMatrix; + } + get clipSpaceToPixelsMatrix() { + return this._helper.clipSpaceToPixelsMatrix; + } + get pixelsToGLUnits() { + return this._helper.pixelsToGLUnits; + } + get centerOffset() { + return this._helper.centerOffset; + } + get size() { + return this._helper.size; + } + get rotationMatrix() { + return this._helper.rotationMatrix; + } + get centerPoint() { + return this._helper.centerPoint; + } + get pixelsPerMeter() { + return this._helper.pixelsPerMeter; + } + setMinZoom(e) { + this._helper.setMinZoom(e); + } + setMaxZoom(e) { + this._helper.setMaxZoom(e); + } + setMinPitch(e) { + this._helper.setMinPitch(e); + } + setMaxPitch(e) { + this._helper.setMaxPitch(e); + } + setRenderWorldCopies(e) { + this._helper.setRenderWorldCopies(e); + } + setBearing(e) { + this._helper.setBearing(e); + } + setPitch(e) { + this._helper.setPitch(e); + } + setRoll(e) { + this._helper.setRoll(e); + } + setFov(e) { + this._helper.setFov(e); + } + setZoom(e) { + this._helper.setZoom(e); + } + setCenter(e) { + this._helper.setCenter(e); + } + setElevation(e) { + this._helper.setElevation(e); + } + setMinElevationForCurrentTile(e) { + this._helper.setMinElevationForCurrentTile(e); + } + setPadding(e) { + this._helper.setPadding(e); + } + interpolatePadding(e, i, l) { + return this._helper.interpolatePadding(e, i, l); + } + isPaddingEqual(e) { + return this._helper.isPaddingEqual(e); + } + resize(e, i, l = !0) { + this._helper.resize(e, i, l); + } + getMaxBounds() { + return this._helper.getMaxBounds(); + } + setMaxBounds(e) { + this._helper.setMaxBounds(e); + } + overrideNearFarZ(e, i) { + this._helper.overrideNearFarZ(e, i); + } + clearNearFarZOverride() { + this._helper.clearNearFarZOverride(); + } + getCameraQueryGeometry(e) { + return this._helper.getCameraQueryGeometry( + this.getCameraPoint(), + e + ); + } + get tileSize() { + return this._helper.tileSize; + } + get tileZoom() { + return this._helper.tileZoom; + } + get scale() { + return this._helper.scale; + } + get worldSize() { + return this._helper.worldSize; + } + get width() { + return this._helper.width; + } + get height() { + return this._helper.height; + } + get lngRange() { + return this._helper.lngRange; + } + get latRange() { + return this._helper.latRange; + } + get minZoom() { + return this._helper.minZoom; + } + get maxZoom() { + return this._helper.maxZoom; + } + get zoom() { + return this._helper.zoom; + } + get center() { + return this._helper.center; + } + get minPitch() { + return this._helper.minPitch; + } + get maxPitch() { + return this._helper.maxPitch; + } + get pitch() { + return this._helper.pitch; + } + get pitchInRadians() { + return this._helper.pitchInRadians; + } + get roll() { + return this._helper.roll; + } + get rollInRadians() { + return this._helper.rollInRadians; + } + get bearing() { + return this._helper.bearing; + } + get bearingInRadians() { + return this._helper.bearingInRadians; + } + get fov() { + return this._helper.fov; + } + get fovInRadians() { + return this._helper.fovInRadians; + } + get elevation() { + return this._helper.elevation; + } + get minElevationForCurrentTile() { + return this._helper.minElevationForCurrentTile; + } + get padding() { + return this._helper.padding; + } + get unmodified() { + return this._helper.unmodified; + } + get renderWorldCopies() { + return this._helper.renderWorldCopies; + } + get cameraToCenterDistance() { + return this._helper.cameraToCenterDistance; + } + get nearZ() { + return this._helper.nearZ; + } + get farZ() { + return this._helper.farZ; + } + get autoCalculateNearFarZ() { + return this._helper.autoCalculateNearFarZ; + } + setTransitionState(e, i) {} + constructor(e, i, l, u, d) { + (this._posMatrixCache = new Map()), + (this._alignedPosMatrixCache = new Map()), + (this._fogMatrixCacheF32 = new Map()), + (this._helper = new Sn( + { + calcMatrices: () => { + this._calcMatrices(); + }, + getConstrained: (g, w) => this.getConstrained(g, w), + }, + e, + i, + l, + u, + d + )), + (this._coveringTilesDetailsProvider = new vn()); + } + clone() { + const e = new on(); + return e.apply(this), e; + } + apply(e, i, l) { + this._helper.apply(e, i, l); + } + get cameraPosition() { + return this._cameraPosition; + } + get projectionMatrix() { + return this._projectionMatrix; + } + get modelViewProjectionMatrix() { + return this._viewProjMatrix; + } + get inverseProjectionMatrix() { + return this._invProjMatrix; + } + get mercatorMatrix() { + return this._mercatorMatrix; + } + getVisibleUnwrappedCoordinates(e) { + const i = [new s.b2(0, e)]; + if (this._helper._renderWorldCopies) { + const l = this.screenPointToMercatorCoordinate( + new s.P(0, 0) + ), + u = this.screenPointToMercatorCoordinate( + new s.P(this._helper._width, 0) + ), + d = this.screenPointToMercatorCoordinate( + new s.P(this._helper._width, this._helper._height) + ), + g = this.screenPointToMercatorCoordinate( + new s.P(0, this._helper._height) + ), + w = Math.floor(Math.min(l.x, u.x, d.x, g.x)), + C = Math.floor(Math.max(l.x, u.x, d.x, g.x)), + P = 1; + for (let E = w - P; E <= C + P; E++) + E !== 0 && i.push(new s.b2(E, e)); + } + return i; + } + getCameraFrustum() { + return fn.fromInvProjectionMatrix( + this._invViewProjMatrix, + this.worldSize + ); + } + getClippingPlane() { + return null; + } + getCoveringTilesDetailsProvider() { + return this._coveringTilesDetailsProvider; + } + recalculateZoomAndCenter(e) { + const i = this.screenPointToLocation(this.centerPoint, e), + l = e + ? e.getElevationForLngLatZoom(i, this._helper._tileZoom) + : 0; + this._helper.recalculateZoomAndCenter(l); + } + setLocationAtPoint(e, i) { + const l = s.aj(this.elevation, this.center.lat), + u = this.screenPointToMercatorCoordinateAtZ(i, l), + d = this.screenPointToMercatorCoordinateAtZ( + this.centerPoint, + l + ), + g = s.a1.fromLngLat(e), + w = new s.a1(g.x - (u.x - d.x), g.y - (u.y - d.y)); + this.setCenter(w == null ? void 0 : w.toLngLat()), + this._helper._renderWorldCopies && + this.setCenter(this.center.wrap()); + } + locationToScreenPoint(e, i) { + return i + ? this.coordinatePoint( + s.a1.fromLngLat(e), + i.getElevationForLngLatZoom(e, this._helper._tileZoom), + this._pixelMatrix3D + ) + : this.coordinatePoint(s.a1.fromLngLat(e)); + } + screenPointToLocation(e, i) { + var l; + return (l = this.screenPointToMercatorCoordinate(e, i)) === + null || l === void 0 + ? void 0 + : l.toLngLat(); + } + screenPointToMercatorCoordinate(e, i) { + if (i) { + const l = i.pointCoordinate(e); + if (l != null) return l; + } + return this.screenPointToMercatorCoordinateAtZ(e); + } + screenPointToMercatorCoordinateAtZ(e, i) { + const l = i || 0, + u = [e.x, e.y, 0, 1], + d = [e.x, e.y, 1, 1]; + s.aw(u, u, this._pixelMatrixInverse), + s.aw(d, d, this._pixelMatrixInverse); + const g = u[3], + w = d[3], + C = u[1] / g, + P = d[1] / w, + E = u[2] / g, + R = d[2] / w, + D = E === R ? 0 : (l - E) / (R - E); + return new s.a1( + s.C.number(u[0] / g, d[0] / w, D) / this.worldSize, + s.C.number(C, P, D) / this.worldSize, + l + ); + } + coordinatePoint(e, i = 0, l = this._pixelMatrix) { + const u = [e.x * this.worldSize, e.y * this.worldSize, i, 1]; + return s.aw(u, u, l), new s.P(u[0] / u[3], u[1] / u[3]); + } + getBounds() { + const e = Math.max(0, this._helper._height / 2 - pe(this)); + return new _t() + .extend(this.screenPointToLocation(new s.P(0, e))) + .extend( + this.screenPointToLocation( + new s.P(this._helper._width, e) + ) + ) + .extend( + this.screenPointToLocation( + new s.P(this._helper._width, this._helper._height) + ) + ) + .extend( + this.screenPointToLocation( + new s.P(0, this._helper._height) + ) + ); + } + isPointOnMapSurface(e, i) { + return i + ? i.pointCoordinate(e) != null + : e.y > this.height / 2 - pe(this); + } + calculatePosMatrix(e, i = !1, l) { + var u; + const d = + (u = e.key) !== null && u !== void 0 + ? u + : s.b3( + e.wrap, + e.canonical.z, + e.canonical.z, + e.canonical.x, + e.canonical.y + ), + g = i ? this._alignedPosMatrixCache : this._posMatrixCache; + if (g.has(d)) { + const P = g.get(d); + return l ? P.f32 : P.f64; + } + const w = Se(e, this.worldSize); + s.O(w, i ? this._alignedProjMatrix : this._viewProjMatrix, w); + const C = { f64: w, f32: new Float32Array(w) }; + return g.set(d, C), l ? C.f32 : C.f64; + } + calculateFogMatrix(e) { + const i = e.key, + l = this._fogMatrixCacheF32; + if (l.has(i)) return l.get(i); + const u = Se(e, this.worldSize); + return ( + s.O(u, this._fogMatrix, u), + l.set(i, new Float32Array(u)), + l.get(i) + ); + } + getConstrained(e, i) { + i = s.ah(+i, this.minZoom, this.maxZoom); + const l = { center: new s.S(e.lng, e.lat), zoom: i }; + let u = this._helper._lngRange; + if (!this._helper._renderWorldCopies && u === null) { + const ve = 179.9999999999; + u = [-ve, ve]; + } + const d = this.tileSize * s.af(l.zoom); + let g = 0, + w = d, + C = 0, + P = d, + E = 0, + R = 0; + const { x: D, y: N } = this.size; + if (this._helper._latRange) { + const ve = this._helper._latRange; + (g = s.U(ve[1]) * d), + (w = s.U(ve[0]) * d), + w - g < N && (E = N / (w - g)); + } + u && + ((C = s.aO(s.V(u[0]) * d, 0, d)), + (P = s.aO(s.V(u[1]) * d, 0, d)), + P < C && (P += d), + P - C < D && (R = D / (P - C))); + const { x: G, y: te } = Y(d, e); + let Q, ae; + const ce = Math.max(R || 0, E || 0); + if (ce) { + const ve = new s.P( + R ? (P + C) / 2 : G, + E ? (w + g) / 2 : te + ); + return ( + (l.center = ie(d, ve).wrap()), (l.zoom += s.ak(ce)), l + ); + } + if (this._helper._latRange) { + const ve = N / 2; + te - ve < g && (ae = g + ve), te + ve > w && (ae = w - ve); + } + if (u) { + const ve = (C + P) / 2; + let me = G; + this._helper._renderWorldCopies && + (me = s.aO(G, ve - d / 2, ve + d / 2)); + const be = D / 2; + me - be < C && (Q = C + be), me + be > P && (Q = P - be); + } + if (Q !== void 0 || ae !== void 0) { + const ve = new s.P(Q ?? G, ae ?? te); + l.center = ie(d, ve).wrap(); + } + return l; + } + calculateCenterFromCameraLngLatAlt(e, i, l, u) { + return this._helper.calculateCenterFromCameraLngLatAlt( + e, + i, + l, + u + ); + } + _calculateNearFarZIfNeeded(e, i, l) { + if (!this._helper.autoCalculateNearFarZ) return; + const u = Math.min( + this.elevation, + this.minElevationForCurrentTile, + this.getCameraAltitude() - 100 + ), + d = e - (u * this._helper._pixelPerMeter) / Math.cos(i), + g = u < 0 ? d : e, + w = Math.PI / 2 + this.pitchInRadians, + C = + ((s.ae(this.fov) * + (Math.abs(Math.cos(s.ae(this.roll))) * this.height + + Math.abs(Math.sin(s.ae(this.roll))) * this.width)) / + this.height) * + (0.5 + l.y / this.height), + P = + (Math.sin(C) * g) / + Math.sin(s.ah(Math.PI - w - C, 0.01, Math.PI - 0.01)), + E = pe(this), + R = Math.atan(E / this._helper.cameraToCenterDistance), + D = s.ae(0.75), + N = R > D ? 2 * R * (0.5 + l.y / (2 * E)) : D, + G = + (Math.sin(N) * g) / + Math.sin(s.ah(Math.PI - w - N, 0.01, Math.PI - 0.01)), + te = Math.min(P, G); + (this._helper._farZ = + 1.01 * (Math.cos(Math.PI / 2 - i) * te + g)), + (this._helper._nearZ = this._helper._height / 50); + } + _calcMatrices() { + if (!this._helper._height) return; + const e = this.centerOffset, + i = Y(this.worldSize, this.center), + l = i.x, + u = i.y; + this._helper._pixelPerMeter = + s.aj(1, this.center.lat) * this.worldSize; + const d = s.ae(Math.min(this.pitch, U)), + g = Math.max( + this._helper.cameraToCenterDistance / 2, + this._helper.cameraToCenterDistance + + (this._helper._elevation * + this._helper._pixelPerMeter) / + Math.cos(d) + ); + let w; + this._calculateNearFarZIfNeeded(g, d, e), + (w = new Float64Array(16)), + s.b4( + w, + this.fovInRadians, + this._helper._width / this._helper._height, + this._helper._nearZ, + this._helper._farZ + ), + (this._invProjMatrix = new Float64Array(16)), + s.aq(this._invProjMatrix, w), + (w[8] = (2 * -e.x) / this._helper._width), + (w[9] = (2 * e.y) / this._helper._height), + (this._projectionMatrix = s.b5(w)), + s.N(w, w, [1, -1, 1]), + s.M(w, w, [0, 0, -this._helper.cameraToCenterDistance]), + s.b6(w, w, -this.rollInRadians), + s.b7(w, w, this.pitchInRadians), + s.b6(w, w, -this.bearingInRadians), + s.M(w, w, [-l, -u, 0]), + (this._mercatorMatrix = s.N([], w, [ + this.worldSize, + this.worldSize, + this.worldSize, + ])), + s.N(w, w, [1, 1, this._helper._pixelPerMeter]), + (this._pixelMatrix = s.O( + new Float64Array(16), + this.clipSpaceToPixelsMatrix, + w + )), + s.M(w, w, [0, 0, -this.elevation]), + (this._viewProjMatrix = w), + (this._invViewProjMatrix = s.aq([], w)); + const C = [0, 0, -1, 1]; + s.aw(C, C, this._invViewProjMatrix), + (this._cameraPosition = [ + C[0] / C[3], + C[1] / C[3], + C[2] / C[3], + ]), + (this._fogMatrix = new Float64Array(16)), + s.b4( + this._fogMatrix, + this.fovInRadians, + this.width / this.height, + g, + this._helper._farZ + ), + (this._fogMatrix[8] = (2 * -e.x) / this.width), + (this._fogMatrix[9] = (2 * e.y) / this.height), + s.N(this._fogMatrix, this._fogMatrix, [1, -1, 1]), + s.M(this._fogMatrix, this._fogMatrix, [ + 0, + 0, + -this.cameraToCenterDistance, + ]), + s.b6(this._fogMatrix, this._fogMatrix, -this.rollInRadians), + s.b7(this._fogMatrix, this._fogMatrix, this.pitchInRadians), + s.b6( + this._fogMatrix, + this._fogMatrix, + -this.bearingInRadians + ), + s.M(this._fogMatrix, this._fogMatrix, [-l, -u, 0]), + s.N(this._fogMatrix, this._fogMatrix, [ + 1, + 1, + this._helper._pixelPerMeter, + ]), + s.M(this._fogMatrix, this._fogMatrix, [ + 0, + 0, + -this.elevation, + ]), + (this._pixelMatrix3D = s.O( + new Float64Array(16), + this.clipSpaceToPixelsMatrix, + w + )); + const P = (this._helper._width % 2) / 2, + E = (this._helper._height % 2) / 2, + R = Math.cos(this.bearingInRadians), + D = Math.sin(-this.bearingInRadians), + N = l - Math.round(l) + R * P + D * E, + G = u - Math.round(u) + R * E + D * P, + te = new Float64Array(w); + if ( + (s.M(te, te, [N > 0.5 ? N - 1 : N, G > 0.5 ? G - 1 : G, 0]), + (this._alignedProjMatrix = te), + (w = s.aq(new Float64Array(16), this._pixelMatrix)), + !w) + ) + throw new Error("failed to invert matrix"); + (this._pixelMatrixInverse = w), this._clearMatrixCaches(); + } + _clearMatrixCaches() { + this._posMatrixCache.clear(), + this._alignedPosMatrixCache.clear(), + this._fogMatrixCacheF32.clear(); + } + maxPitchScaleFactor() { + if (!this._pixelMatrixInverse) return 1; + const e = this.screenPointToMercatorCoordinate(new s.P(0, 0)), + i = [e.x * this.worldSize, e.y * this.worldSize, 0, 1]; + return ( + s.aw(i, i, this._pixelMatrix)[3] / + this._helper.cameraToCenterDistance + ); + } + getCameraPoint() { + return this._helper.getCameraPoint(); + } + getCameraAltitude() { + return this._helper.getCameraAltitude(); + } + getCameraLngLat() { + const e = s.aj(1, this.center.lat) * this.worldSize; + return Me( + this.center, + this.elevation, + this.pitch, + this.bearing, + this._helper.cameraToCenterDistance / e + ).toLngLat(); + } + lngLatToCameraDepth(e, i) { + const l = s.a1.fromLngLat(e), + u = [l.x * this.worldSize, l.y * this.worldSize, i, 1]; + return s.aw(u, u, this._viewProjMatrix), u[2] / u[3]; + } + getProjectionData(e) { + const { + overscaledTileID: i, + aligned: l, + applyTerrainMatrix: u, + } = e, + d = this._helper.getMercatorTileCoordinates(i), + g = i ? this.calculatePosMatrix(i, l, !0) : null; + let w; + return ( + (w = + i && i.terrainRttPosMatrix32f && u + ? i.terrainRttPosMatrix32f + : g || s.b8()), + { + mainMatrix: w, + tileMercatorCoords: d, + clippingPlane: [0, 0, 0, 0], + projectionTransition: 0, + fallbackMatrix: w, + } + ); + } + isLocationOccluded(e) { + return !1; + } + getPixelScale() { + return 1; + } + getCircleRadiusCorrection() { + return 1; + } + getPitchedTextCorrection(e, i, l) { + return 1; + } + transformLightDirection(e) { + return s.aT(e); + } + getRayDirectionFromPixel(e) { + throw new Error("Not implemented."); + } + projectTileCoordinates(e, i, l, u) { + const d = this.calculatePosMatrix(l); + let g; + u + ? ((g = [e, i, u(e, i), 1]), s.aw(g, g, d)) + : ((g = [e, i, 0, 1]), En(g, g, d)); + const w = g[3]; + return { + point: new s.P(g[0] / w, g[1] / w), + signedDistanceFromCamera: w, + isOccluded: !1, + }; + } + populateCache(e) { + for (const i of e) this.calculatePosMatrix(i); + } + getMatrixForModel(e, i) { + const l = s.a1.fromLngLat(e, i), + u = l.meterInMercatorCoordinateUnits(), + d = s.b9(); + return ( + s.M(d, d, [l.x, l.y, l.z]), + s.b6(d, d, Math.PI), + s.b7(d, d, Math.PI / 2), + s.N(d, d, [-u, u, u]), + d + ); + } + getProjectionDataForCustomLayer(e = !0) { + const i = new s.Z(0, 0, 0, 0, 0), + l = this.getProjectionData({ + overscaledTileID: i, + applyGlobeMatrix: e, + }), + u = Se(i, this.worldSize); + s.O(u, this._viewProjMatrix, u), + (l.tileMercatorCoords = [0, 0, 1, 1]); + const d = [ + s.$, + s.$, + this.worldSize / this._helper.pixelsPerMeter, + ], + g = s.ba(); + return ( + s.N(g, u, d), (l.fallbackMatrix = g), (l.mainMatrix = g), l + ); + } + getFastPathSimpleProjectionMatrix(e) { + return this.calculatePosMatrix(e); + } + } + function po() { + s.w( + "Map cannot fit within canvas with the given bounds, padding, and/or offset." + ); + } + function fi(h) { + if (h.useSlerp) + if (h.k < 1) { + const e = s.bb( + h.startEulerAngles.roll, + h.startEulerAngles.pitch, + h.startEulerAngles.bearing + ), + i = s.bb( + h.endEulerAngles.roll, + h.endEulerAngles.pitch, + h.endEulerAngles.bearing + ), + l = new Float64Array(4); + s.bc(l, e, i, h.k); + const u = s.bd(l); + h.tr.setRoll(u.roll), + h.tr.setPitch(u.pitch), + h.tr.setBearing(u.bearing); + } else + h.tr.setRoll(h.endEulerAngles.roll), + h.tr.setPitch(h.endEulerAngles.pitch), + h.tr.setBearing(h.endEulerAngles.bearing); + else + h.tr.setRoll( + s.C.number( + h.startEulerAngles.roll, + h.endEulerAngles.roll, + h.k + ) + ), + h.tr.setPitch( + s.C.number( + h.startEulerAngles.pitch, + h.endEulerAngles.pitch, + h.k + ) + ), + h.tr.setBearing( + s.C.number( + h.startEulerAngles.bearing, + h.endEulerAngles.bearing, + h.k + ) + ); + } + function Hn(h, e, i, l, u) { + const d = u.padding, + g = Y(u.worldSize, i.getNorthWest()), + w = Y(u.worldSize, i.getNorthEast()), + C = Y(u.worldSize, i.getSouthEast()), + P = Y(u.worldSize, i.getSouthWest()), + E = s.ae(-l), + R = g.rotate(E), + D = w.rotate(E), + N = C.rotate(E), + G = P.rotate(E), + te = new s.P( + Math.max(R.x, D.x, G.x, N.x), + Math.max(R.y, D.y, G.y, N.y) + ), + Q = new s.P( + Math.min(R.x, D.x, G.x, N.x), + Math.min(R.y, D.y, G.y, N.y) + ), + ae = te.sub(Q), + ce = (u.width - (d.left + d.right + e.left + e.right)) / ae.x, + ve = + (u.height - (d.top + d.bottom + e.top + e.bottom)) / ae.y; + if (ve < 0 || ce < 0) return void po(); + const me = Math.min( + s.ak(u.scale * Math.min(ce, ve)), + h.maxZoom + ), + be = s.P.convert(h.offset), + Pe = new s.P( + (e.left - e.right) / 2, + (e.top - e.bottom) / 2 + ).rotate(s.ae(l)), + _e = be.add(Pe).mult(u.scale / s.af(me)); + return { + center: ie(u.worldSize, g.add(C).div(2).sub(_e)), + zoom: me, + bearing: l, + }; + } + class jn { + get useGlobeControls() { + return !1; + } + handlePanInertia(e, i) { + return { easingOffset: e, easingCenter: i.center }; + } + handleMapControlsRollPitchBearingZoom(e, i) { + e.bearingDelta && i.setBearing(i.bearing + e.bearingDelta), + e.pitchDelta && i.setPitch(i.pitch + e.pitchDelta), + e.rollDelta && i.setRoll(i.roll + e.rollDelta), + e.zoomDelta && i.setZoom(i.zoom + e.zoomDelta); + } + handleMapControlsPan(e, i, l) { + e.around.distSqr(i.centerPoint) < 0.01 || + i.setLocationAtPoint(l, e.around); + } + cameraForBoxAndBearing(e, i, l, u, d) { + return Hn(e, i, l, u, d); + } + handleJumpToCenterZoom(e, i) { + e.zoom !== (i.zoom !== void 0 ? +i.zoom : e.zoom) && + e.setZoom(+i.zoom), + i.center !== void 0 && e.setCenter(s.S.convert(i.center)); + } + handleEaseTo(e, i) { + const l = e.zoom, + u = e.padding, + d = { roll: e.roll, pitch: e.pitch, bearing: e.bearing }, + g = { + roll: i.roll === void 0 ? e.roll : i.roll, + pitch: i.pitch === void 0 ? e.pitch : i.pitch, + bearing: i.bearing === void 0 ? e.bearing : i.bearing, + }, + w = i.zoom !== void 0, + C = !e.isPaddingEqual(i.padding); + let P = !1; + const E = w ? +i.zoom : e.zoom; + let R = e.centerPoint.add(i.offsetAsPoint); + const D = e.screenPointToLocation(R), + { center: N, zoom: G } = e.getConstrained( + s.S.convert(i.center || D), + E ?? l + ); + bn(e, N); + const te = Y(e.worldSize, D), + Q = Y(e.worldSize, N).sub(te), + ae = s.af(G - l); + return ( + (P = G !== l), + { + easeFunc: (ce) => { + if ( + (P && e.setZoom(s.C.number(l, G, ce)), + s.be(d, g) || + fi({ + startEulerAngles: d, + endEulerAngles: g, + tr: e, + k: ce, + useSlerp: d.roll != g.roll, + }), + C && + (e.interpolatePadding(u, i.padding, ce), + (R = e.centerPoint.add(i.offsetAsPoint))), + i.around) + ) + e.setLocationAtPoint(i.around, i.aroundPoint); + else { + const ve = s.af(e.zoom - l), + me = G > l ? Math.min(2, ae) : Math.max(0.5, ae), + be = Math.pow(me, 1 - ce), + Pe = ie( + e.worldSize, + te.add(Q.mult(ce * be)).mult(ve) + ); + e.setLocationAtPoint( + e.renderWorldCopies ? Pe.wrap() : Pe, + R + ); + } + }, + isZooming: P, + elevationCenter: N, + } + ); + } + handleFlyTo(e, i) { + const l = i.zoom !== void 0, + u = e.zoom, + d = e.getConstrained( + s.S.convert(i.center || i.locationAtOffset), + l ? +i.zoom : u + ), + g = d.center, + w = d.zoom; + bn(e, g); + const C = Y(e.worldSize, i.locationAtOffset), + P = Y(e.worldSize, g).sub(C), + E = P.mag(), + R = s.af(w - u); + let D; + if (i.minZoom !== void 0) { + const N = Math.min(+i.minZoom, u, w), + G = e.getConstrained(g, N).zoom; + D = s.af(G - u); + } + return { + easeFunc: (N, G, te, Q) => { + e.setZoom(N === 1 ? w : u + s.ak(G)); + const ae = + N === 1 + ? g + : ie(e.worldSize, C.add(P.mult(te)).mult(G)); + e.setLocationAtPoint( + e.renderWorldCopies ? ae.wrap() : ae, + Q + ); + }, + scaleOfZoom: R, + targetCenter: g, + scaleOfMinZoom: D, + pixelPathLength: E, + }; + } + } + class zn { + constructor(e, i, l) { + (this.blendFunction = e), + (this.blendColor = i), + (this.mask = l); + } + } + (zn.Replace = [1, 0]), + (zn.disabled = new zn(zn.Replace, s.bf.transparent, [ + !1, + !1, + !1, + !1, + ])), + (zn.unblended = new zn(zn.Replace, s.bf.transparent, [ + !0, + !0, + !0, + !0, + ])), + (zn.alphaBlended = new zn([1, 771], s.bf.transparent, [ + !0, + !0, + !0, + !0, + ])); + const qa = 2305; + class Rr { + constructor(e, i, l) { + (this.enable = e), (this.mode = i), (this.frontFace = l); + } + } + (Rr.disabled = new Rr(!1, 1029, qa)), + (Rr.backCCW = new Rr(!0, 1029, qa)), + (Rr.frontCCW = new Rr(!0, 1028, qa)); + class Gr { + constructor(e, i, l) { + (this.func = e), (this.mask = i), (this.range = l); + } + } + (Gr.ReadOnly = !1), + (Gr.ReadWrite = !0), + (Gr.disabled = new Gr(519, Gr.ReadOnly, [0, 1])); + const _a = 7680; + class un { + constructor(e, i, l, u, d, g) { + (this.test = e), + (this.ref = i), + (this.mask = l), + (this.fail = u), + (this.depthFail = d), + (this.pass = g); + } + } + un.disabled = new un({ func: 519, mask: 0 }, 0, 0, _a, _a, _a); + const Li = new WeakMap(); + function ga(h) { + var e; + if (Li.has(h)) return Li.get(h); + { + const i = + (e = h.getParameter(h.VERSION)) === null || e === void 0 + ? void 0 + : e.startsWith("WebGL 2.0"); + return Li.set(h, i), i; + } + } + class sa { + get awaitingQuery() { + return !!this._readbackQueue; + } + constructor(e) { + (this._readbackWaitFrames = 4), + (this._measureWaitFrames = 6), + (this._texWidth = 1), + (this._texHeight = 1), + (this._measuredError = 0), + (this._updateCount = 0), + (this._lastReadbackFrame = -1e3), + (this._readbackQueue = null), + (this._cachedRenderContext = e); + const i = e.context, + l = i.gl; + (this._texFormat = l.RGBA), (this._texType = l.UNSIGNED_BYTE); + const u = new s.aL(); + u.emplaceBack(-1, -1), + u.emplaceBack(2, -1), + u.emplaceBack(-1, 2); + const d = new s.aN(); + d.emplaceBack(0, 1, 2), + (this._fullscreenTriangle = new Tn( + i.createVertexBuffer(u, an.members), + i.createIndexBuffer(d), + s.aM.simpleSegment(0, 0, u.length, d.length) + )), + (this._resultBuffer = new Uint8Array(4)), + i.activeTexture.set(l.TEXTURE1); + const g = l.createTexture(); + l.bindTexture(l.TEXTURE_2D, g), + l.texParameteri( + l.TEXTURE_2D, + l.TEXTURE_WRAP_S, + l.CLAMP_TO_EDGE + ), + l.texParameteri( + l.TEXTURE_2D, + l.TEXTURE_WRAP_T, + l.CLAMP_TO_EDGE + ), + l.texParameteri( + l.TEXTURE_2D, + l.TEXTURE_MIN_FILTER, + l.NEAREST + ), + l.texParameteri( + l.TEXTURE_2D, + l.TEXTURE_MAG_FILTER, + l.NEAREST + ), + l.texImage2D( + l.TEXTURE_2D, + 0, + this._texFormat, + this._texWidth, + this._texHeight, + 0, + this._texFormat, + this._texType, + null + ), + (this._fbo = i.createFramebuffer( + this._texWidth, + this._texHeight, + !1, + !1 + )), + this._fbo.colorAttachment.set(g), + ga(l) && + ((this._pbo = l.createBuffer()), + l.bindBuffer(l.PIXEL_PACK_BUFFER, this._pbo), + l.bufferData(l.PIXEL_PACK_BUFFER, 4, l.STREAM_READ), + l.bindBuffer(l.PIXEL_PACK_BUFFER, null)); + } + destroy() { + const e = this._cachedRenderContext.context.gl; + this._fullscreenTriangle.destroy(), + this._fbo.destroy(), + e.deleteBuffer(this._pbo), + (this._fullscreenTriangle = null), + (this._fbo = null), + (this._pbo = null), + (this._resultBuffer = null); + } + updateErrorLoop(e, i) { + const l = this._updateCount; + return ( + this._readbackQueue + ? l >= + this._readbackQueue.frameNumberIssued + + this._readbackWaitFrames && this._tryReadback() + : l >= + this._lastReadbackFrame + this._measureWaitFrames && + this._renderErrorTexture(e, i), + this._updateCount++, + this._measuredError + ); + } + _bindFramebuffer() { + const e = this._cachedRenderContext.context, + i = e.gl; + e.activeTexture.set(i.TEXTURE1), + i.bindTexture( + i.TEXTURE_2D, + this._fbo.colorAttachment.get() + ), + e.bindFramebuffer.set(this._fbo.framebuffer); + } + _renderErrorTexture(e, i) { + const l = this._cachedRenderContext.context, + u = l.gl; + if ( + (this._bindFramebuffer(), + l.viewport.set([0, 0, this._texWidth, this._texHeight]), + l.clear({ color: s.bf.transparent }), + this._cachedRenderContext + .useProgram("projectionErrorMeasurement") + .draw( + l, + u.TRIANGLES, + Gr.disabled, + un.disabled, + zn.unblended, + Rr.disabled, + ((d, g) => ({ u_input: d, u_output_expected: g }))( + e, + i + ), + null, + null, + "$clipping", + this._fullscreenTriangle.vertexBuffer, + this._fullscreenTriangle.indexBuffer, + this._fullscreenTriangle.segments + ), + this._pbo && ga(u)) + ) { + u.bindBuffer(u.PIXEL_PACK_BUFFER, this._pbo), + u.readBuffer(u.COLOR_ATTACHMENT0), + u.readPixels( + 0, + 0, + this._texWidth, + this._texHeight, + this._texFormat, + this._texType, + 0 + ), + u.bindBuffer(u.PIXEL_PACK_BUFFER, null); + const d = u.fenceSync(u.SYNC_GPU_COMMANDS_COMPLETE, 0); + u.flush(), + (this._readbackQueue = { + frameNumberIssued: this._updateCount, + sync: d, + }); + } else this._readbackQueue = { frameNumberIssued: this._updateCount, sync: null }; + } + _tryReadback() { + const e = this._cachedRenderContext.context.gl; + if (this._pbo && this._readbackQueue && ga(e)) { + const i = e.clientWaitSync(this._readbackQueue.sync, 0, 0); + if (i === e.WAIT_FAILED) + return ( + s.w("WebGL2 clientWaitSync failed."), + (this._readbackQueue = null), + void (this._lastReadbackFrame = this._updateCount) + ); + if (i === e.TIMEOUT_EXPIRED) return; + e.bindBuffer(e.PIXEL_PACK_BUFFER, this._pbo), + e.getBufferSubData( + e.PIXEL_PACK_BUFFER, + 0, + this._resultBuffer, + 0, + 4 + ), + e.bindBuffer(e.PIXEL_PACK_BUFFER, null); + } else this._bindFramebuffer(), e.readPixels(0, 0, this._texWidth, this._texHeight, this._texFormat, this._texType, this._resultBuffer); + (this._readbackQueue = null), + (this._measuredError = sa._parseRGBA8float( + this._resultBuffer + )), + (this._lastReadbackFrame = this._updateCount); + } + static _parseRGBA8float(e) { + let i = 0; + return ( + (i += e[0] / 256), + (i += e[1] / 65536), + (i += e[2] / 16777216), + e[3] < 127 && (i = -i), + i / 128 + ); + } + } + const Ja = s.$ / 128; + function Ms(h, e) { + const i = + h.granularity !== void 0 ? Math.max(h.granularity, 1) : 1, + l = i + (h.generateBorders ? 2 : 0), + u = + i + + (h.extendToNorthPole || h.generateBorders ? 1 : 0) + + (h.extendToSouthPole || h.generateBorders ? 1 : 0), + d = l + 1, + g = u + 1, + w = h.generateBorders ? -1 : 0, + C = h.generateBorders || h.extendToNorthPole ? -1 : 0, + P = i + (h.generateBorders ? 1 : 0), + E = i + (h.generateBorders || h.extendToSouthPole ? 1 : 0), + R = d * g, + D = l * u * 6, + N = d * g > 65536; + if (N && e === "16bit") + throw new Error( + "Granularity is too large and meshes would not fit inside 16 bit vertex indices." + ); + const G = N || e === "32bit", + te = new Int16Array(2 * R); + let Q = 0; + for (let ve = C; ve <= E; ve++) + for (let me = w; me <= P; me++) { + let be = (me / i) * s.$; + me === -1 && (be = -Ja), me === i + 1 && (be = s.$ + Ja); + let Pe = (ve / i) * s.$; + ve === -1 && (Pe = h.extendToNorthPole ? s.bh : -Ja), + ve === i + 1 && + (Pe = h.extendToSouthPole ? s.bi : s.$ + Ja), + (te[Q++] = be), + (te[Q++] = Pe); + } + const ae = G ? new Uint32Array(D) : new Uint16Array(D); + let ce = 0; + for (let ve = 0; ve < u; ve++) + for (let me = 0; me < l; me++) { + const be = me + 1 + ve * d, + Pe = me + (ve + 1) * d, + _e = me + 1 + (ve + 1) * d; + (ae[ce++] = me + ve * d), + (ae[ce++] = Pe), + (ae[ce++] = be), + (ae[ce++] = be), + (ae[ce++] = Pe), + (ae[ce++] = _e); + } + return { + vertices: te.buffer.slice(0), + indices: ae.buffer.slice(0), + uses32bitIndices: G, + }; + } + const Ca = new s.aK({ + fill: new s.bj(128, 2), + line: new s.bj(512, 0), + tile: new s.bj(128, 32), + stencil: new s.bj(128, 1), + circle: 3, + }); + class Qa { + constructor() { + (this._tileMeshCache = {}), + (this._errorCorrectionUsable = 0), + (this._errorMeasurementLastValue = 0), + (this._errorCorrectionPreviousValue = 0), + (this._errorMeasurementLastChangeTime = -1e3); + } + get name() { + return "vertical-perspective"; + } + get transitionState() { + return 1; + } + get useSubdivision() { + return !0; + } + get shaderVariantName() { + return "globe"; + } + get shaderDefine() { + return "#define GLOBE"; + } + get shaderPreludeCode() { + return $r.projectionGlobe; + } + get vertexShaderPreludeCode() { + return $r.projectionMercator.vertexSource; + } + get subdivisionGranularity() { + return Ca; + } + get useGlobeControls() { + return !0; + } + get latitudeErrorCorrectionRadians() { + return this._errorCorrectionUsable; + } + destroy() { + this._errorMeasurement && this._errorMeasurement.destroy(); + } + updateGPUdependent(e) { + this._errorMeasurement || + (this._errorMeasurement = new sa(e)); + const i = s.U(this._errorQueryLatitudeDegrees), + l = + 2 * Math.atan(Math.exp(Math.PI - i * Math.PI * 2)) - + 0.5 * Math.PI, + u = this._errorMeasurement.updateErrorLoop(i, l), + d = ne.now(); + u !== this._errorMeasurementLastValue && + ((this._errorCorrectionPreviousValue = + this._errorCorrectionUsable), + (this._errorMeasurementLastValue = u), + (this._errorMeasurementLastChangeTime = d)); + const g = Math.min( + Math.max( + (d - this._errorMeasurementLastChangeTime) / 1e3 / 0.5, + 0 + ), + 1 + ); + this._errorCorrectionUsable = s.bk( + this._errorCorrectionPreviousValue, + -this._errorMeasurementLastValue, + s.bl(g) + ); + } + _getMeshKey(e) { + return `${e.granularity.toString( + 36 + )}_${e.generateBorders ? "b" : ""}${e.extendToNorthPole ? "n" : ""}${e.extendToSouthPole ? "s" : ""}`; + } + getMeshFromTileID(e, i, l, u, d) { + const g = ( + d === "stencil" ? Ca.stencil : Ca.tile + ).getGranularityForZoomLevel(i.z); + return this._getMesh(e, { + granularity: g, + generateBorders: l, + extendToNorthPole: i.y === 0 && u, + extendToSouthPole: i.y === (1 << i.z) - 1 && u, + }); + } + _getMesh(e, i) { + const l = this._getMeshKey(i); + if (l in this._tileMeshCache) return this._tileMeshCache[l]; + const u = (function (d, g) { + const w = Ms(g, "16bit"), + C = s.aL.deserialize({ + arrayBuffer: w.vertices, + length: w.vertices.byteLength / 2 / 2, + }), + P = s.aN.deserialize({ + arrayBuffer: w.indices, + length: w.indices.byteLength / 2 / 3, + }); + return new Tn( + d.createVertexBuffer(C, an.members), + d.createIndexBuffer(P), + s.aM.simpleSegment(0, 0, C.length, P.length) + ); + })(e, i); + return (this._tileMeshCache[l] = u), u; + } + recalculate(e) {} + hasTransition() { + const e = ne.now(); + let i = !1; + return ( + (i = + i || + (e - this._errorMeasurementLastChangeTime) / 1e3 < 0.7), + (i = + i || + (this._errorMeasurement && + this._errorMeasurement.awaitingQuery)), + i + ); + } + setErrorQueryLatitudeDegrees(e) { + this._errorQueryLatitudeDegrees = e; + } + } + const Jo = new s.r({ type: new s.D(s.v.projection.type) }); + class gl extends s.E { + constructor(e) { + super(), + (this._transitionable = new s.t(Jo)), + this.setProjection(e), + (this._transitioning = + this._transitionable.untransitioned()), + this.recalculate(new s.F(0)), + (this._mercatorProjection = new Mr()), + (this._verticalPerspectiveProjection = new Qa()); + } + get transitionState() { + const e = this.properties.get("type"); + if (typeof e == "string" && e === "mercator") return 0; + if (typeof e == "string" && e === "vertical-perspective") + return 1; + if (e instanceof s.bm) { + if ( + e.from === "vertical-perspective" && + e.to === "mercator" + ) + return 1 - e.transition; + if ( + e.from === "mercator" && + e.to === "vertical-perspective" + ) + return e.transition; + } + return 1; + } + get useGlobeRendering() { + return this.transitionState > 0; + } + get latitudeErrorCorrectionRadians() { + return this + ._verticalPerspectiveProjection.latitudeErrorCorrectionRadians; + } + get currentProjection() { + return this.useGlobeRendering + ? this._verticalPerspectiveProjection + : this._mercatorProjection; + } + get name() { + return "globe"; + } + get useSubdivision() { + return this.currentProjection.useSubdivision; + } + get shaderVariantName() { + return this.currentProjection.shaderVariantName; + } + get shaderDefine() { + return this.currentProjection.shaderDefine; + } + get shaderPreludeCode() { + return this.currentProjection.shaderPreludeCode; + } + get vertexShaderPreludeCode() { + return this.currentProjection.vertexShaderPreludeCode; + } + get subdivisionGranularity() { + return this.currentProjection.subdivisionGranularity; + } + get useGlobeControls() { + return this.transitionState > 0; + } + destroy() { + this._mercatorProjection.destroy(), + this._verticalPerspectiveProjection.destroy(); + } + updateGPUdependent(e) { + this._mercatorProjection.updateGPUdependent(e), + this._verticalPerspectiveProjection.updateGPUdependent(e); + } + getMeshFromTileID(e, i, l, u, d) { + return this.currentProjection.getMeshFromTileID( + e, + i, + l, + u, + d + ); + } + setProjection(e) { + this._transitionable.setValue( + "type", + (e == null ? void 0 : e.type) || "mercator" + ); + } + updateTransitions(e) { + this._transitioning = this._transitionable.transitioned( + e, + this._transitioning + ); + } + hasTransition() { + return ( + this._transitioning.hasTransition() || + this.currentProjection.hasTransition() + ); + } + recalculate(e) { + this.properties = this._transitioning.possiblyEvaluate(e); + } + setErrorQueryLatitudeDegrees(e) { + this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees( + e + ), + this._mercatorProjection.setErrorQueryLatitudeDegrees(e); + } + } + function vl(h) { + const e = Qo(h.worldSize, h.center.lat); + return 2 * Math.PI * e; + } + function Sa(h, e, i, l, u) { + const d = 1 / (1 << u), + g = (e / s.$) * d + l * d, + w = s.bo( + ((h / s.$) * d + i * d) * Math.PI * 2 + Math.PI, + 2 * Math.PI + ), + C = + 2 * Math.atan(Math.exp(Math.PI - g * Math.PI * 2)) - + 0.5 * Math.PI, + P = Math.cos(C), + E = new Float64Array(3); + return ( + (E[0] = Math.sin(w) * P), + (E[1] = Math.sin(C)), + (E[2] = Math.cos(w) * P), + E + ); + } + function Ti(h) { + return (function (e, i) { + const l = Math.cos(i), + u = new Float64Array(3); + return ( + (u[0] = Math.sin(e) * l), + (u[1] = Math.sin(i)), + (u[2] = Math.cos(e) * l), + u + ); + })((h.lng * Math.PI) / 180, (h.lat * Math.PI) / 180); + } + function Qo(h, e) { + return h / (2 * Math.PI) / Math.cos((e * Math.PI) / 180); + } + function ks(h) { + const e = (Math.asin(h[1]) / Math.PI) * 180, + i = Math.sqrt(h[0] * h[0] + h[2] * h[2]); + if (i > 1e-6) { + const l = h[0] / i, + u = Math.acos(h[2] / i), + d = ((l > 0 ? u : -u) / Math.PI) * 180; + return new s.S(s.aO(d, -180, 180), e); + } + return new s.S(0, e); + } + function Mo(h) { + return Math.cos((h * Math.PI) / 180); + } + function ei(h, e) { + const i = Mo(h), + l = Mo(e); + return s.ak(l / i); + } + function Fh(h, e) { + const i = h.rotate(e.bearingInRadians), + l = e.zoom + ei(e.center.lat, 0), + u = s.bk( + 1 / Mo(e.center.lat), + 1 / Mo(Math.min(Math.abs(e.center.lat), 60)), + s.bn(l, 7, 3, 0, 1) + ), + d = + 360 / + vl({ + worldSize: e.worldSize, + center: { lat: e.center.lat }, + }); + return new s.S( + e.center.lng - i.x * d * u, + s.ah(e.center.lat + i.y * d, -s.ai, s.ai) + ); + } + function As(h) { + const e = 0.5 * h, + i = Math.sin(e), + l = Math.cos(e); + return Math.log(i + l) - Math.log(l - i); + } + function Ec(h, e, i, l) { + const u = h.lat + i * l; + if (Math.abs(i) > 1) { + const d = + ((Math.sign(h.lat + i) !== Math.sign(h.lat) + ? -Math.abs(h.lat) + : Math.abs(h.lat)) * + Math.PI) / + 180, + g = (Math.abs(h.lat + i) * Math.PI) / 180, + w = As(d + l * (g - d)), + C = As(d), + P = As(g); + return new s.S(h.lng + e * ((w - C) / (P - C)), u); + } + return new s.S(h.lng + e * l, u); + } + class bp { + constructor(e) { + (this._cachePrevious = new Map()), + (this._cache = new Map()), + (this._hadAnyChanges = !1), + (this._boundingVolumeFactory = e); + } + swapBuffers() { + if (!this._hadAnyChanges) return; + const e = this._cachePrevious; + (this._cachePrevious = this._cache), + (this._cache = e), + this._cache.clear(), + (this._hadAnyChanges = !1); + } + getTileBoundingVolume(e, i, l, u) { + const d = `${e.z}_${e.x}_${e.y}_${ + u != null && u.terrain ? "t" : "" + }`, + g = this._cache.get(d); + if (g) return g; + const w = this._cachePrevious.get(d); + if (w) return this._cache.set(d, w), w; + const C = this._boundingVolumeFactory(e, i, l, u); + return this._cache.set(d, C), (this._hadAnyChanges = !0), C; + } + } + class es { + constructor(e, i, l, u) { + (this.min = l), + (this.max = u), + (this.points = e), + (this.planes = i); + } + static fromAabb(e, i) { + const l = []; + for (let u = 0; u < 8; u++) + l.push([ + 1 & ~u ? e[0] : i[0], + ((u >> 1) & 1) == 1 ? i[1] : e[1], + ((u >> 2) & 1) == 1 ? i[2] : e[2], + ]); + return new es( + l, + [ + [-1, 0, 0, i[0]], + [1, 0, 0, -e[0]], + [0, -1, 0, i[1]], + [0, 1, 0, -e[1]], + [0, 0, -1, i[2]], + [0, 0, 1, -e[2]], + ], + e, + i + ); + } + static fromCenterSizeAngles(e, i, l) { + const u = s.br([], l[0], l[1], l[2]), + d = s.bs([], [i[0], 0, 0], u), + g = s.bs([], [0, i[1], 0], u), + w = s.bs([], [0, 0, i[2]], u), + C = [...e], + P = [...e]; + for (let R = 0; R < 8; R++) + for (let D = 0; D < 3; D++) { + const N = + e[D] + + d[D] * (1 & ~R ? -1 : 1) + + g[D] * (((R >> 1) & 1) == 1 ? 1 : -1) + + w[D] * (((R >> 2) & 1) == 1 ? 1 : -1); + (C[D] = Math.min(C[D], N)), (P[D] = Math.max(P[D], N)); + } + const E = []; + for (let R = 0; R < 8; R++) { + const D = [...e]; + s.aS(D, D, s.aR([], d, 1 & ~R ? -1 : 1)), + s.aS(D, D, s.aR([], g, ((R >> 1) & 1) == 1 ? 1 : -1)), + s.aS(D, D, s.aR([], w, ((R >> 2) & 1) == 1 ? 1 : -1)), + E.push(D); + } + return new es( + E, + [ + [...d, -s.aX(d, E[0])], + [...g, -s.aX(g, E[0])], + [...w, -s.aX(w, E[0])], + [-d[0], -d[1], -d[2], -s.aX(d, E[7])], + [-g[0], -g[1], -g[2], -s.aX(g, E[7])], + [-w[0], -w[1], -w[2], -s.aX(w, E[7])], + ], + C, + P + ); + } + intersectsFrustum(e) { + let i = !0; + const l = this.points.length, + u = this.planes.length, + d = e.planes.length, + g = e.points.length; + for (let w = 0; w < d; w++) { + const C = e.planes[w]; + let P = 0; + for (let E = 0; E < l; E++) { + const R = this.points[E]; + C[0] * R[0] + C[1] * R[1] + C[2] * R[2] + C[3] >= 0 && + P++; + } + if (P === 0) return 0; + P < l && (i = !1); + } + if (i) return 2; + for (let w = 0; w < u; w++) { + const C = this.planes[w]; + let P = 0; + for (let E = 0; E < g; E++) { + const R = e.points[E]; + C[0] * R[0] + C[1] * R[1] + C[2] * R[2] + C[3] >= 0 && + P++; + } + if (P === 0) return 0; + } + return 1; + } + intersectsPlane(e) { + const i = this.points.length; + let l = 0; + for (let u = 0; u < i; u++) { + const d = this.points[u]; + e[0] * d[0] + e[1] * d[1] + e[2] * d[2] + e[3] >= 0 && l++; + } + return l === i ? 2 : l === 0 ? 0 : 1; + } + } + function Di(h, e, i) { + const l = h - e; + return l < 0 ? -l : Math.max(0, l - i); + } + function Es(h, e, i, l, u) { + const d = h - i; + let g; + return ( + (g = + d < 0 + ? Math.min(-d, 1 + d - u) + : d > 1 + ? Math.min(Math.max(d - u, 0), 1 - d) + : 0), + Math.max(g, Di(e, l, u)) + ); + } + class Za { + constructor() { + this._boundingVolumeCache = new bp( + this._computeTileBoundingVolume + ); + } + prepareNextFrame() { + this._boundingVolumeCache.swapBuffers(); + } + distanceToTile2d(e, i, l, u) { + const d = 1 << l.z, + g = 1 / d, + w = l.x / d, + C = l.y / d; + let P = 2; + return ( + (P = Math.min(P, Es(e, i, w, C, g))), + (P = Math.min(P, Es(e, i, w + 0.5, -C - g, g))), + (P = Math.min(P, Es(e, i, w + 0.5, 2 - C - g, g))), + P + ); + } + getWrap(e, i, l) { + const u = 1 << i.z, + d = 1 / u, + g = i.x / u, + w = Di(e.x, g, d), + C = Di(e.x, g - 1, d), + P = Di(e.x, g + 1, d), + E = Math.min(w, C, P); + return E === P ? 1 : E === C ? -1 : 0; + } + allowVariableZoom(e, i) { + return kt(e, i) > 4; + } + allowWorldCopies() { + return !1; + } + getTileBoundingVolume(e, i, l, u) { + return this._boundingVolumeCache.getTileBoundingVolume( + e, + i, + l, + u + ); + } + _computeTileBoundingVolume(e, i, l, u) { + var d, g; + let w = 0, + C = 0; + if (u != null && u.terrain) { + const P = new s.Z(e.z, i, e.z, e.x, e.y), + E = u.terrain.getMinMaxElevation(P); + (w = + (d = E.minElevation) !== null && d !== void 0 + ? d + : Math.min(0, l)), + (C = + (g = E.maxElevation) !== null && g !== void 0 + ? g + : Math.max(0, l)); + } + if (((w /= s.bu), (C /= s.bu), (w += 1), (C += 1), e.z <= 0)) + return es.fromAabb([-C, -C, -C], [C, C, C]); + if (e.z === 1) + return es.fromAabb( + [e.x === 0 ? -C : 0, e.y === 0 ? 0 : -C, -C], + [e.x === 0 ? 0 : C, e.y === 0 ? C : 0, C] + ); + { + const P = [ + Sa(0, 0, e.x, e.y, e.z), + Sa(s.$, 0, e.x, e.y, e.z), + Sa(s.$, s.$, e.x, e.y, e.z), + Sa(0, s.$, e.x, e.y, e.z), + ], + E = []; + for (const Xe of P) E.push(s.aR([], Xe, C)); + if (C !== w) for (const Xe of P) E.push(s.aR([], Xe, w)); + e.y === 0 && E.push([0, 1, 0]), + e.y === (1 << e.z) - 1 && E.push([0, -1, 0]); + const R = [1, 1, 1], + D = [-1, -1, -1]; + for (const Xe of E) + for (let tt = 0; tt < 3; tt++) + (R[tt] = Math.min(R[tt], Xe[tt])), + (D[tt] = Math.max(D[tt], Xe[tt])); + const N = Sa(s.$ / 2, s.$ / 2, e.x, e.y, e.z), + G = s.aW([], [0, 1, 0], N); + s.aV(G, G); + const te = s.aW([], N, G); + s.aV(te, te); + const Q = s.aW([], P[2], P[1]); + s.aV(Q, Q); + const ae = s.aW([], P[0], P[3]); + s.aV(ae, ae), + E.push(s.aR([], N, C)), + e.y >= (1 << e.z) / 2 && + E.push(s.aR([], Sa(s.$ / 2, 0, e.x, e.y, e.z), C)), + e.y < (1 << e.z) / 2 && + E.push(s.aR([], Sa(s.$ / 2, s.$, e.x, e.y, e.z), C)); + const ce = zs(N, E), + ve = zs(te, E), + me = [-N[0], -N[1], -N[2], ce.max], + be = [N[0], N[1], N[2], -ce.min], + Pe = [-te[0], -te[1], -te[2], ve.max], + _e = [te[0], te[1], te[2], -ve.min], + Be = [...Q, 0], + rt = [...ae, 0], + Ge = []; + return ( + e.y === 0 + ? Ge.push(s.bt(rt, Be, me), s.bt(rt, Be, be)) + : Ge.push( + s.bt(Pe, Be, me), + s.bt(Pe, Be, be), + s.bt(Pe, rt, me), + s.bt(Pe, rt, be) + ), + e.y === (1 << e.z) - 1 + ? Ge.push(s.bt(rt, Be, me), s.bt(rt, Be, be)) + : Ge.push( + s.bt(_e, Be, me), + s.bt(_e, Be, be), + s.bt(_e, rt, me), + s.bt(_e, rt, be) + ), + new es(Ge, [me, be, Pe, _e, Be, rt], R, D) + ); + } + } + } + function zs(h, e) { + let i = 1 / 0, + l = -1 / 0; + for (const u of e) { + const d = s.aX(h, u); + (i = Math.min(i, d)), (l = Math.max(l, d)); + } + return { min: i, max: l }; + } + class Ls { + get pixelsToClipSpaceMatrix() { + return this._helper.pixelsToClipSpaceMatrix; + } + get clipSpaceToPixelsMatrix() { + return this._helper.clipSpaceToPixelsMatrix; + } + get pixelsToGLUnits() { + return this._helper.pixelsToGLUnits; + } + get centerOffset() { + return this._helper.centerOffset; + } + get size() { + return this._helper.size; + } + get rotationMatrix() { + return this._helper.rotationMatrix; + } + get centerPoint() { + return this._helper.centerPoint; + } + get pixelsPerMeter() { + return this._helper.pixelsPerMeter; + } + setMinZoom(e) { + this._helper.setMinZoom(e); + } + setMaxZoom(e) { + this._helper.setMaxZoom(e); + } + setMinPitch(e) { + this._helper.setMinPitch(e); + } + setMaxPitch(e) { + this._helper.setMaxPitch(e); + } + setRenderWorldCopies(e) { + this._helper.setRenderWorldCopies(e); + } + setBearing(e) { + this._helper.setBearing(e); + } + setPitch(e) { + this._helper.setPitch(e); + } + setRoll(e) { + this._helper.setRoll(e); + } + setFov(e) { + this._helper.setFov(e); + } + setZoom(e) { + this._helper.setZoom(e); + } + setCenter(e) { + this._helper.setCenter(e); + } + setElevation(e) { + this._helper.setElevation(e); + } + setMinElevationForCurrentTile(e) { + this._helper.setMinElevationForCurrentTile(e); + } + setPadding(e) { + this._helper.setPadding(e); + } + interpolatePadding(e, i, l) { + return this._helper.interpolatePadding(e, i, l); + } + isPaddingEqual(e) { + return this._helper.isPaddingEqual(e); + } + resize(e, i) { + this._helper.resize(e, i); + } + getMaxBounds() { + return this._helper.getMaxBounds(); + } + setMaxBounds(e) { + this._helper.setMaxBounds(e); + } + overrideNearFarZ(e, i) { + this._helper.overrideNearFarZ(e, i); + } + clearNearFarZOverride() { + this._helper.clearNearFarZOverride(); + } + getCameraQueryGeometry(e) { + return this._helper.getCameraQueryGeometry( + this.getCameraPoint(), + e + ); + } + get tileSize() { + return this._helper.tileSize; + } + get tileZoom() { + return this._helper.tileZoom; + } + get scale() { + return this._helper.scale; + } + get worldSize() { + return this._helper.worldSize; + } + get width() { + return this._helper.width; + } + get height() { + return this._helper.height; + } + get lngRange() { + return this._helper.lngRange; + } + get latRange() { + return this._helper.latRange; + } + get minZoom() { + return this._helper.minZoom; + } + get maxZoom() { + return this._helper.maxZoom; + } + get zoom() { + return this._helper.zoom; + } + get center() { + return this._helper.center; + } + get minPitch() { + return this._helper.minPitch; + } + get maxPitch() { + return this._helper.maxPitch; + } + get pitch() { + return this._helper.pitch; + } + get pitchInRadians() { + return this._helper.pitchInRadians; + } + get roll() { + return this._helper.roll; + } + get rollInRadians() { + return this._helper.rollInRadians; + } + get bearing() { + return this._helper.bearing; + } + get bearingInRadians() { + return this._helper.bearingInRadians; + } + get fov() { + return this._helper.fov; + } + get fovInRadians() { + return this._helper.fovInRadians; + } + get elevation() { + return this._helper.elevation; + } + get minElevationForCurrentTile() { + return this._helper.minElevationForCurrentTile; + } + get padding() { + return this._helper.padding; + } + get unmodified() { + return this._helper.unmodified; + } + get renderWorldCopies() { + return this._helper.renderWorldCopies; + } + get nearZ() { + return this._helper.nearZ; + } + get farZ() { + return this._helper.farZ; + } + get autoCalculateNearFarZ() { + return this._helper.autoCalculateNearFarZ; + } + setTransitionState(e) {} + constructor() { + (this._cachedClippingPlane = s.bv()), + (this._projectionMatrix = s.b9()), + (this._globeViewProjMatrix32f = s.b8()), + (this._globeViewProjMatrixNoCorrection = s.b9()), + (this._globeViewProjMatrixNoCorrectionInverted = s.b9()), + (this._globeProjMatrixInverted = s.b9()), + (this._cameraPosition = s.bp()), + (this._globeLatitudeErrorCorrectionRadians = 0), + (this._helper = new Sn({ + calcMatrices: () => { + this._calcMatrices(); + }, + getConstrained: (e, i) => this.getConstrained(e, i), + })), + (this._coveringTilesDetailsProvider = new Za()); + } + clone() { + const e = new Ls(); + return e.apply(this), e; + } + apply(e, i) { + (this._globeLatitudeErrorCorrectionRadians = i || 0), + this._helper.apply(e); + } + get projectionMatrix() { + return this._projectionMatrix; + } + get modelViewProjectionMatrix() { + return this._globeViewProjMatrixNoCorrection; + } + get inverseProjectionMatrix() { + return this._globeProjMatrixInverted; + } + get cameraPosition() { + const e = s.bp(); + return ( + (e[0] = this._cameraPosition[0]), + (e[1] = this._cameraPosition[1]), + (e[2] = this._cameraPosition[2]), + e + ); + } + get cameraToCenterDistance() { + return this._helper.cameraToCenterDistance; + } + getProjectionData(e) { + const { overscaledTileID: i, applyGlobeMatrix: l } = e, + u = this._helper.getMercatorTileCoordinates(i); + return { + mainMatrix: this._globeViewProjMatrix32f, + tileMercatorCoords: u, + clippingPlane: this._cachedClippingPlane, + projectionTransition: l ? 1 : 0, + fallbackMatrix: this._globeViewProjMatrix32f, + }; + } + _computeClippingPlane(e) { + const i = this.pitchInRadians, + l = this.cameraToCenterDistance / e, + u = Math.sin(i) * l, + d = Math.cos(i) * l + 1, + g = (1 / Math.sqrt(u * u + d * d)) * 1; + let w = -u, + C = d; + const P = Math.sqrt(w * w + C * C); + (w /= P), (C /= P); + const E = [0, w, C]; + s.bw(E, E, [0, 0, 0], -this.bearingInRadians), + s.bx( + E, + E, + [0, 0, 0], + (-1 * this.center.lat * Math.PI) / 180 + ), + s.by(E, E, [0, 0, 0], (this.center.lng * Math.PI) / 180); + const R = 1 / s.aZ(E); + return s.aR(E, E, R), [...E, -g * R]; + } + isLocationOccluded(e) { + return !this.isSurfacePointVisible(Ti(e)); + } + transformLightDirection(e) { + const i = (this._helper._center.lng * Math.PI) / 180, + l = (this._helper._center.lat * Math.PI) / 180, + u = Math.cos(l), + d = [Math.sin(i) * u, Math.sin(l), Math.cos(i) * u], + g = [d[2], 0, -d[0]], + w = [0, 0, 0]; + s.aW(w, g, d), s.aV(g, g), s.aV(w, w); + const C = [0, 0, 0]; + return ( + s.aV(C, [ + g[0] * e[0] + w[0] * e[1] + d[0] * e[2], + g[1] * e[0] + w[1] * e[1] + d[1] * e[2], + g[2] * e[0] + w[2] * e[1] + d[2] * e[2], + ]), + C + ); + } + getPixelScale() { + return ( + 1 / Math.cos((this._helper._center.lat * Math.PI) / 180) + ); + } + getCircleRadiusCorrection() { + return Math.cos((this._helper._center.lat * Math.PI) / 180); + } + getPitchedTextCorrection(e, i, l) { + const u = (function (w, C, P) { + const E = 1 / (1 << P.z); + return new s.a1( + (w / s.$) * E + P.x * E, + (C / s.$) * E + P.y * E + ); + })(e, i, l.canonical), + d = + ((g = u.y), + [ + s.bo(u.x * Math.PI * 2 + Math.PI, 2 * Math.PI), + 2 * Math.atan(Math.exp(Math.PI - g * Math.PI * 2)) - + 0.5 * Math.PI, + ]); + var g; + return this.getCircleRadiusCorrection() / Math.cos(d[1]); + } + projectTileCoordinates(e, i, l, u) { + const d = l.canonical, + g = Sa(e, i, d.x, d.y, d.z), + w = 1 + (u ? u(e, i) : 0) / s.bu, + C = [g[0] * w, g[1] * w, g[2] * w, 1]; + s.aw(C, C, this._globeViewProjMatrixNoCorrection); + const P = this._cachedClippingPlane, + E = P[0] * g[0] + P[1] * g[1] + P[2] * g[2] + P[3] < 0; + return { + point: new s.P(C[0] / C[3], C[1] / C[3]), + signedDistanceFromCamera: C[3], + isOccluded: E, + }; + } + _calcMatrices() { + if (!this._helper._width || !this._helper._height) return; + const e = Qo(this.worldSize, this.center.lat), + i = s.ba(), + l = s.ba(); + this._helper.autoCalculateNearFarZ && + ((this._helper._nearZ = 0.5), + (this._helper._farZ = this.cameraToCenterDistance + 2 * e)), + s.b4( + i, + this.fovInRadians, + this.width / this.height, + this._helper._nearZ, + this._helper._farZ + ); + const u = this.centerOffset; + (i[8] = (2 * -u.x) / this._helper._width), + (i[9] = (2 * u.y) / this._helper._height), + (this._projectionMatrix = s.b5(i)), + (this._globeProjMatrixInverted = s.ba()), + s.aq(this._globeProjMatrixInverted, i), + s.M(i, i, [0, 0, -this.cameraToCenterDistance]), + s.b6(i, i, this.rollInRadians), + s.b7(i, i, -this.pitchInRadians), + s.b6(i, i, this.bearingInRadians), + s.M(i, i, [0, 0, -e]); + const d = s.bp(); + (d[0] = e), + (d[1] = e), + (d[2] = e), + s.b7(l, i, (this.center.lat * Math.PI) / 180), + s.bz(l, l, (-this.center.lng * Math.PI) / 180), + s.N(l, l, d), + (this._globeViewProjMatrixNoCorrection = l), + s.b7( + i, + i, + (this.center.lat * Math.PI) / 180 - + this._globeLatitudeErrorCorrectionRadians + ), + s.bz(i, i, (-this.center.lng * Math.PI) / 180), + s.N(i, i, d), + (this._globeViewProjMatrix32f = new Float32Array(i)), + (this._globeViewProjMatrixNoCorrectionInverted = s.ba()), + s.aq(this._globeViewProjMatrixNoCorrectionInverted, l); + const g = s.bp(); + (this._cameraPosition = s.bp()), + (this._cameraPosition[2] = this.cameraToCenterDistance / e), + s.bw( + this._cameraPosition, + this._cameraPosition, + g, + -this.rollInRadians + ), + s.bx( + this._cameraPosition, + this._cameraPosition, + g, + this.pitchInRadians + ), + s.bw( + this._cameraPosition, + this._cameraPosition, + g, + -this.bearingInRadians + ), + s.aS(this._cameraPosition, this._cameraPosition, [0, 0, 1]), + s.bx( + this._cameraPosition, + this._cameraPosition, + g, + (-this.center.lat * Math.PI) / 180 + ), + s.by( + this._cameraPosition, + this._cameraPosition, + g, + (this.center.lng * Math.PI) / 180 + ), + (this._cachedClippingPlane = this._computeClippingPlane(e)); + const w = s.b5(this._globeViewProjMatrixNoCorrectionInverted); + s.N(w, w, [1, 1, -1]), + (this._cachedFrustum = fn.fromInvProjectionMatrix( + w, + 1, + 0, + this._cachedClippingPlane, + !0 + )); + } + calculateFogMatrix(e) { + s.w( + "calculateFogMatrix is not supported on globe projection." + ); + const i = s.ba(); + return s.ag(i), i; + } + getVisibleUnwrappedCoordinates(e) { + return [new s.b2(0, e)]; + } + getCameraFrustum() { + return this._cachedFrustum; + } + getClippingPlane() { + return this._cachedClippingPlane; + } + getCoveringTilesDetailsProvider() { + return this._coveringTilesDetailsProvider; + } + recalculateZoomAndCenter(e) { + e && + s.w( + "terrain is not fully supported on vertical perspective projection." + ), + this._helper.recalculateZoomAndCenter(0); + } + maxPitchScaleFactor() { + return 1; + } + getCameraPoint() { + return this._helper.getCameraPoint(); + } + getCameraAltitude() { + return this._helper.getCameraAltitude(); + } + getCameraLngLat() { + return this._helper.getCameraLngLat(); + } + lngLatToCameraDepth(e, i) { + if (!this._globeViewProjMatrixNoCorrection) return 1; + const l = Ti(e); + s.aR(l, l, 1 + i / s.bu); + const u = s.bv(); + return ( + s.aw( + u, + [l[0], l[1], l[2], 1], + this._globeViewProjMatrixNoCorrection + ), + u[2] / u[3] + ); + } + populateCache(e) {} + getBounds() { + const e = 0.5 * this.width, + i = 0.5 * this.height, + l = [ + new s.P(0, 0), + new s.P(e, 0), + new s.P(this.width, 0), + new s.P(this.width, i), + new s.P(this.width, this.height), + new s.P(e, this.height), + new s.P(0, this.height), + new s.P(0, i), + ], + u = []; + for (const R of l) u.push(this.unprojectScreenPoint(R)); + let d = 0, + g = 0, + w = 0, + C = 0; + const P = this.center; + for (const R of u) { + const D = s.bA(P.lng, R.lng), + N = s.bA(P.lat, R.lat); + D < g && (g = D), + D > d && (d = D), + N < C && (C = N), + N > w && (w = N); + } + const E = [P.lng + g, P.lat + C, P.lng + d, P.lat + w]; + return ( + this.isSurfacePointOnScreen([0, 1, 0]) && + ((E[3] = 90), (E[0] = -180), (E[2] = 180)), + this.isSurfacePointOnScreen([0, -1, 0]) && + ((E[1] = -90), (E[0] = -180), (E[2] = 180)), + new _t(E) + ); + } + getConstrained(e, i) { + const l = s.ah(e.lat, -s.ai, s.ai), + u = s.ah(+i, this.minZoom + ei(0, l), this.maxZoom); + return { center: new s.S(e.lng, l), zoom: u }; + } + calculateCenterFromCameraLngLatAlt(e, i, l, u) { + return this._helper.calculateCenterFromCameraLngLatAlt( + e, + i, + l, + u + ); + } + setLocationAtPoint(e, i) { + const l = Ti(this.unprojectScreenPoint(i)), + u = Ti(e), + d = s.bp(); + s.bB(d); + const g = s.bp(); + s.by(g, l, d, (-this.center.lng * Math.PI) / 180), + s.bx(g, g, d, (this.center.lat * Math.PI) / 180); + const w = u[0] * u[0] + u[2] * u[2], + C = g[0] * g[0]; + if (w < C) return; + const P = Math.sqrt(w - C), + E = -P, + R = s.bC(u[0], u[2], g[0], P), + D = s.bC(u[0], u[2], g[0], E), + N = s.bp(); + s.by(N, u, d, -R); + const G = s.bC(N[1], N[2], g[1], g[2]), + te = s.bp(); + s.by(te, u, d, -D); + const Q = s.bC(te[1], te[2], g[1], g[2]), + ae = 0.5 * Math.PI, + ce = G >= -ae && G <= ae, + ve = Q >= -ae && Q <= ae; + let me, be; + if (ce && ve) { + const rt = (this.center.lng * Math.PI) / 180, + Ge = (this.center.lat * Math.PI) / 180; + s.bD(R, rt) + s.bD(G, Ge) < s.bD(D, rt) + s.bD(Q, Ge) + ? ((me = R), (be = G)) + : ((me = D), (be = Q)); + } else if (ce) (me = R), (be = G); + else { + if (!ve) return; + (me = D), (be = Q); + } + const Pe = (me / Math.PI) * 180, + _e = (be / Math.PI) * 180, + Be = this.center.lat; + this.setCenter(new s.S(Pe, s.ah(_e, -90, 90))), + this.setZoom(this.zoom + ei(Be, this.center.lat)); + } + locationToScreenPoint(e, i) { + const l = Ti(e); + if (i) { + const u = i.getElevationForLngLatZoom( + e, + this._helper._tileZoom + ); + s.aR(l, l, 1 + u / s.bu); + } + return this._projectSurfacePointToScreen(l); + } + _projectSurfacePointToScreen(e) { + const i = s.bv(); + return ( + s.aw(i, [...e, 1], this._globeViewProjMatrixNoCorrection), + (i[0] /= i[3]), + (i[1] /= i[3]), + new s.P( + (0.5 * i[0] + 0.5) * this.width, + (0.5 * -i[1] + 0.5) * this.height + ) + ); + } + screenPointToMercatorCoordinate(e, i) { + if (i) { + const l = i.pointCoordinate(e); + if (l) return l; + } + return s.a1.fromLngLat(this.unprojectScreenPoint(e)); + } + screenPointToLocation(e, i) { + var l; + return (l = this.screenPointToMercatorCoordinate(e, i)) === + null || l === void 0 + ? void 0 + : l.toLngLat(); + } + isPointOnMapSurface(e, i) { + const l = this._cameraPosition, + u = this.getRayDirectionFromPixel(e); + return !!this.rayPlanetIntersection(l, u); + } + getRayDirectionFromPixel(e) { + const i = s.bv(); + (i[0] = (e.x / this.width) * 2 - 1), + (i[1] = -1 * ((e.y / this.height) * 2 - 1)), + (i[2] = 1), + (i[3] = 1), + s.aw(i, i, this._globeViewProjMatrixNoCorrectionInverted), + (i[0] /= i[3]), + (i[1] /= i[3]), + (i[2] /= i[3]); + const l = s.bp(); + (l[0] = i[0] - this._cameraPosition[0]), + (l[1] = i[1] - this._cameraPosition[1]), + (l[2] = i[2] - this._cameraPosition[2]); + const u = s.bp(); + return s.aV(u, l), u; + } + isSurfacePointVisible(e) { + const i = this._cachedClippingPlane; + return i[0] * e[0] + i[1] * e[1] + i[2] * e[2] + i[3] >= 0; + } + isSurfacePointOnScreen(e) { + if (!this.isSurfacePointVisible(e)) return !1; + const i = s.bv(); + return ( + s.aw(i, [...e, 1], this._globeViewProjMatrixNoCorrection), + (i[0] /= i[3]), + (i[1] /= i[3]), + (i[2] /= i[3]), + i[0] > -1 && + i[0] < 1 && + i[1] > -1 && + i[1] < 1 && + i[2] > -1 && + i[2] < 1 + ); + } + rayPlanetIntersection(e, i) { + const l = s.aX(e, i), + u = s.bp(), + d = s.bp(); + s.aR(d, i, l), s.aU(u, e, d); + const g = 1 - s.aX(u, u); + if (g < 0) return null; + const w = s.aX(e, e) - 1, + C = -l + (l < 0 ? 1 : -1) * Math.sqrt(g), + P = w / C, + E = C; + return { tMin: Math.min(P, E), tMax: Math.max(P, E) }; + } + unprojectScreenPoint(e) { + const i = this._cameraPosition, + l = this.getRayDirectionFromPixel(e), + u = this.rayPlanetIntersection(i, l); + if (u) { + const E = s.bp(); + s.aS(E, i, [l[0] * u.tMin, l[1] * u.tMin, l[2] * u.tMin]); + const R = s.bp(); + return s.aV(R, E), ks(R); + } + const d = this._cachedClippingPlane, + g = d[0] * l[0] + d[1] * l[1] + d[2] * l[2], + w = -s.b1(d, i) / g, + C = s.bp(); + if (w > 0) s.aS(C, i, [l[0] * w, l[1] * w, l[2] * w]); + else { + const E = s.bp(); + s.aS(E, i, [2 * l[0], 2 * l[1], 2 * l[2]]); + const R = s.b1(this._cachedClippingPlane, E); + s.aU(C, E, [ + this._cachedClippingPlane[0] * R, + this._cachedClippingPlane[1] * R, + this._cachedClippingPlane[2] * R, + ]); + } + const P = (function (E) { + const R = s.bp(); + return ( + (R[0] = E[0] * -E[3]), + (R[1] = E[1] * -E[3]), + (R[2] = E[2] * -E[3]), + { center: R, radius: Math.sqrt(1 - E[3] * E[3]) } + ); + })(d); + return ks( + (function (E, R, D) { + const N = s.bp(); + s.aU(N, D, E); + const G = s.bp(); + return s.bq(G, E, N, R / s.a$(N)), G; + })(P.center, P.radius, C) + ); + } + getMatrixForModel(e, i) { + const l = s.S.convert(e), + u = 1 / s.bu, + d = s.b9(); + return ( + s.bz(d, d, (l.lng / 180) * Math.PI), + s.b7(d, d, (-l.lat / 180) * Math.PI), + s.M(d, d, [0, 0, 1 + i / s.bu]), + s.b7(d, d, 0.5 * Math.PI), + s.N(d, d, [u, u, u]), + d + ); + } + getProjectionDataForCustomLayer(e = !0) { + const i = this.getProjectionData({ + overscaledTileID: new s.Z(0, 0, 0, 0, 0), + applyGlobeMatrix: e, + }); + return (i.tileMercatorCoords = [0, 0, 1, 1]), i; + } + getFastPathSimpleProjectionMatrix(e) {} + } + class Ds { + get pixelsToClipSpaceMatrix() { + return this._helper.pixelsToClipSpaceMatrix; + } + get clipSpaceToPixelsMatrix() { + return this._helper.clipSpaceToPixelsMatrix; + } + get pixelsToGLUnits() { + return this._helper.pixelsToGLUnits; + } + get centerOffset() { + return this._helper.centerOffset; + } + get size() { + return this._helper.size; + } + get rotationMatrix() { + return this._helper.rotationMatrix; + } + get centerPoint() { + return this._helper.centerPoint; + } + get pixelsPerMeter() { + return this._helper.pixelsPerMeter; + } + setMinZoom(e) { + this._helper.setMinZoom(e); + } + setMaxZoom(e) { + this._helper.setMaxZoom(e); + } + setMinPitch(e) { + this._helper.setMinPitch(e); + } + setMaxPitch(e) { + this._helper.setMaxPitch(e); + } + setRenderWorldCopies(e) { + this._helper.setRenderWorldCopies(e); + } + setBearing(e) { + this._helper.setBearing(e); + } + setPitch(e) { + this._helper.setPitch(e); + } + setRoll(e) { + this._helper.setRoll(e); + } + setFov(e) { + this._helper.setFov(e); + } + setZoom(e) { + this._helper.setZoom(e); + } + setCenter(e) { + this._helper.setCenter(e); + } + setElevation(e) { + this._helper.setElevation(e); + } + setMinElevationForCurrentTile(e) { + this._helper.setMinElevationForCurrentTile(e); + } + setPadding(e) { + this._helper.setPadding(e); + } + interpolatePadding(e, i, l) { + return this._helper.interpolatePadding(e, i, l); + } + isPaddingEqual(e) { + return this._helper.isPaddingEqual(e); + } + resize(e, i, l = !0) { + this._helper.resize(e, i, l); + } + getMaxBounds() { + return this._helper.getMaxBounds(); + } + setMaxBounds(e) { + this._helper.setMaxBounds(e); + } + overrideNearFarZ(e, i) { + this._helper.overrideNearFarZ(e, i); + } + clearNearFarZOverride() { + this._helper.clearNearFarZOverride(); + } + getCameraQueryGeometry(e) { + return this._helper.getCameraQueryGeometry( + this.getCameraPoint(), + e + ); + } + get tileSize() { + return this._helper.tileSize; + } + get tileZoom() { + return this._helper.tileZoom; + } + get scale() { + return this._helper.scale; + } + get worldSize() { + return this._helper.worldSize; + } + get width() { + return this._helper.width; + } + get height() { + return this._helper.height; + } + get lngRange() { + return this._helper.lngRange; + } + get latRange() { + return this._helper.latRange; + } + get minZoom() { + return this._helper.minZoom; + } + get maxZoom() { + return this._helper.maxZoom; + } + get zoom() { + return this._helper.zoom; + } + get center() { + return this._helper.center; + } + get minPitch() { + return this._helper.minPitch; + } + get maxPitch() { + return this._helper.maxPitch; + } + get pitch() { + return this._helper.pitch; + } + get pitchInRadians() { + return this._helper.pitchInRadians; + } + get roll() { + return this._helper.roll; + } + get rollInRadians() { + return this._helper.rollInRadians; + } + get bearing() { + return this._helper.bearing; + } + get bearingInRadians() { + return this._helper.bearingInRadians; + } + get fov() { + return this._helper.fov; + } + get fovInRadians() { + return this._helper.fovInRadians; + } + get elevation() { + return this._helper.elevation; + } + get minElevationForCurrentTile() { + return this._helper.minElevationForCurrentTile; + } + get padding() { + return this._helper.padding; + } + get unmodified() { + return this._helper.unmodified; + } + get renderWorldCopies() { + return this._helper.renderWorldCopies; + } + get cameraToCenterDistance() { + return this._helper.cameraToCenterDistance; + } + get nearZ() { + return this._helper.nearZ; + } + get farZ() { + return this._helper.farZ; + } + get autoCalculateNearFarZ() { + return this._helper.autoCalculateNearFarZ; + } + get isGlobeRendering() { + return this._globeness > 0; + } + setTransitionState(e, i) { + (this._globeness = e), + (this._globeLatitudeErrorCorrectionRadians = i), + this._calcMatrices(), + this._verticalPerspectiveTransform + .getCoveringTilesDetailsProvider() + .prepareNextFrame(), + this._mercatorTransform + .getCoveringTilesDetailsProvider() + .prepareNextFrame(); + } + get currentTransform() { + return this.isGlobeRendering + ? this._verticalPerspectiveTransform + : this._mercatorTransform; + } + constructor() { + (this._globeLatitudeErrorCorrectionRadians = 0), + (this._globeness = 1), + (this._helper = new Sn({ + calcMatrices: () => { + this._calcMatrices(); + }, + getConstrained: (e, i) => this.getConstrained(e, i), + })), + (this._globeness = 1), + (this._mercatorTransform = new on()), + (this._verticalPerspectiveTransform = new Ls()); + } + clone() { + const e = new Ds(); + return ( + (e._globeness = this._globeness), + (e._globeLatitudeErrorCorrectionRadians = + this._globeLatitudeErrorCorrectionRadians), + e.apply(this), + e + ); + } + apply(e) { + this._helper.apply(e), + this._mercatorTransform.apply(this), + this._verticalPerspectiveTransform.apply( + this, + this._globeLatitudeErrorCorrectionRadians + ); + } + get projectionMatrix() { + return this.currentTransform.projectionMatrix; + } + get modelViewProjectionMatrix() { + return this.currentTransform.modelViewProjectionMatrix; + } + get inverseProjectionMatrix() { + return this.currentTransform.inverseProjectionMatrix; + } + get cameraPosition() { + return this.currentTransform.cameraPosition; + } + getProjectionData(e) { + const i = this._mercatorTransform.getProjectionData(e), + l = this._verticalPerspectiveTransform.getProjectionData(e); + return { + mainMatrix: this.isGlobeRendering + ? l.mainMatrix + : i.mainMatrix, + clippingPlane: l.clippingPlane, + tileMercatorCoords: l.tileMercatorCoords, + projectionTransition: e.applyGlobeMatrix + ? this._globeness + : 0, + fallbackMatrix: i.fallbackMatrix, + }; + } + isLocationOccluded(e) { + return this.currentTransform.isLocationOccluded(e); + } + transformLightDirection(e) { + return this.currentTransform.transformLightDirection(e); + } + getPixelScale() { + return s.bk( + this._mercatorTransform.getPixelScale(), + this._verticalPerspectiveTransform.getPixelScale(), + this._globeness + ); + } + getCircleRadiusCorrection() { + return s.bk( + this._mercatorTransform.getCircleRadiusCorrection(), + this._verticalPerspectiveTransform.getCircleRadiusCorrection(), + this._globeness + ); + } + getPitchedTextCorrection(e, i, l) { + const u = this._mercatorTransform.getPitchedTextCorrection( + e, + i, + l + ), + d = + this._verticalPerspectiveTransform.getPitchedTextCorrection( + e, + i, + l + ); + return s.bk(u, d, this._globeness); + } + projectTileCoordinates(e, i, l, u) { + return this.currentTransform.projectTileCoordinates( + e, + i, + l, + u + ); + } + _calcMatrices() { + this._helper._width && + this._helper._height && + (this._verticalPerspectiveTransform.apply( + this, + this._globeLatitudeErrorCorrectionRadians + ), + (this._helper._nearZ = + this._verticalPerspectiveTransform.nearZ), + (this._helper._farZ = + this._verticalPerspectiveTransform.farZ), + this._mercatorTransform.apply( + this, + !0, + this.isGlobeRendering + ), + (this._helper._nearZ = this._mercatorTransform.nearZ), + (this._helper._farZ = this._mercatorTransform.farZ)); + } + calculateFogMatrix(e) { + return this.currentTransform.calculateFogMatrix(e); + } + getVisibleUnwrappedCoordinates(e) { + return this.currentTransform.getVisibleUnwrappedCoordinates( + e + ); + } + getCameraFrustum() { + return this.currentTransform.getCameraFrustum(); + } + getClippingPlane() { + return this.currentTransform.getClippingPlane(); + } + getCoveringTilesDetailsProvider() { + return this.currentTransform.getCoveringTilesDetailsProvider(); + } + recalculateZoomAndCenter(e) { + this._mercatorTransform.recalculateZoomAndCenter(e), + this._verticalPerspectiveTransform.recalculateZoomAndCenter( + e + ); + } + maxPitchScaleFactor() { + return this._mercatorTransform.maxPitchScaleFactor(); + } + getCameraPoint() { + return this._helper.getCameraPoint(); + } + getCameraAltitude() { + return this._helper.getCameraAltitude(); + } + getCameraLngLat() { + return this._helper.getCameraLngLat(); + } + lngLatToCameraDepth(e, i) { + return this.currentTransform.lngLatToCameraDepth(e, i); + } + populateCache(e) { + this._mercatorTransform.populateCache(e), + this._verticalPerspectiveTransform.populateCache(e); + } + getBounds() { + return this.currentTransform.getBounds(); + } + getConstrained(e, i) { + return this.currentTransform.getConstrained(e, i); + } + calculateCenterFromCameraLngLatAlt(e, i, l, u) { + return this._helper.calculateCenterFromCameraLngLatAlt( + e, + i, + l, + u + ); + } + setLocationAtPoint(e, i) { + if (!this.isGlobeRendering) + return ( + this._mercatorTransform.setLocationAtPoint(e, i), + void this.apply(this._mercatorTransform) + ); + this._verticalPerspectiveTransform.setLocationAtPoint(e, i), + this.apply(this._verticalPerspectiveTransform); + } + locationToScreenPoint(e, i) { + return this.currentTransform.locationToScreenPoint(e, i); + } + screenPointToMercatorCoordinate(e, i) { + return this.currentTransform.screenPointToMercatorCoordinate( + e, + i + ); + } + screenPointToLocation(e, i) { + return this.currentTransform.screenPointToLocation(e, i); + } + isPointOnMapSurface(e, i) { + return this.currentTransform.isPointOnMapSurface(e, i); + } + getRayDirectionFromPixel(e) { + return this._verticalPerspectiveTransform.getRayDirectionFromPixel( + e + ); + } + getMatrixForModel(e, i) { + return this.currentTransform.getMatrixForModel(e, i); + } + getProjectionDataForCustomLayer(e = !0) { + const i = + this._mercatorTransform.getProjectionDataForCustomLayer(e); + if (!this.isGlobeRendering) return i; + const l = + this._verticalPerspectiveTransform.getProjectionDataForCustomLayer( + e + ); + return (l.fallbackMatrix = i.mainMatrix), l; + } + getFastPathSimpleProjectionMatrix(e) { + return this.currentTransform.getFastPathSimpleProjectionMatrix( + e + ); + } + } + class ji { + get useGlobeControls() { + return !0; + } + handlePanInertia(e, i) { + const l = Fh(e, i); + return ( + Math.abs(l.lng - i.center.lng) > 180 && + (l.lng = + i.center.lng + 179.5 * Math.sign(l.lng - i.center.lng)), + { easingCenter: l, easingOffset: new s.P(0, 0) } + ); + } + handleMapControlsRollPitchBearingZoom(e, i) { + const l = e.around, + u = i.screenPointToLocation(l); + e.bearingDelta && i.setBearing(i.bearing + e.bearingDelta), + e.pitchDelta && i.setPitch(i.pitch + e.pitchDelta), + e.rollDelta && i.setRoll(i.roll + e.rollDelta); + const d = i.zoom; + e.zoomDelta && i.setZoom(i.zoom + e.zoomDelta); + const g = i.zoom - d; + if (g === 0) return; + const w = s.bA(i.center.lng, u.lng), + C = w / (Math.abs(w / 180) + 1), + P = s.bA(i.center.lat, u.lat), + E = i.getRayDirectionFromPixel(l), + R = i.cameraPosition, + D = -1 * s.aX(R, E), + N = s.bp(); + s.aS(N, R, [E[0] * D, E[1] * D, E[2] * D]); + const G = s.aZ(N) - 1, + te = Math.exp(0.5 * -Math.max(G - 0.3, 0)), + Q = + Qo(i.worldSize, i.center.lat) / + Math.min(i.width, i.height), + ae = s.bn(Q, 0.9, 0.5, 1, 0.25), + ce = (1 - s.af(-g)) * Math.min(te, ae), + ve = i.center.lat, + me = i.zoom, + be = new s.S( + i.center.lng + C * ce, + s.ah(i.center.lat + P * ce, -s.ai, s.ai) + ); + i.setLocationAtPoint(u, l); + const Pe = i.center, + _e = s.bn(Math.abs(w), 45, 85, 0, 1), + Be = s.bn(Q, 0.75, 0.35, 0, 1), + rt = Math.pow(Math.max(_e, Be), 0.25), + Ge = s.bA(Pe.lng, be.lng), + Xe = s.bA(Pe.lat, be.lat); + i.setCenter( + new s.S(Pe.lng + Ge * rt, Pe.lat + Xe * rt).wrap() + ), + i.setZoom(me + ei(ve, i.center.lat)); + } + handleMapControlsPan(e, i, l) { + if (!e.panDelta) return; + const u = i.center.lat, + d = i.zoom; + i.setCenter(Fh(e.panDelta, i).wrap()), + i.setZoom(d + ei(u, i.center.lat)); + } + cameraForBoxAndBearing(e, i, l, u, d) { + const g = Hn(e, i, l, u, d), + w = (i.left / d.width) * 2 - 1, + C = ((d.width - i.right) / d.width) * 2 - 1, + P = (i.top / d.height) * -2 + 1, + E = ((d.height - i.bottom) / d.height) * -2 + 1, + R = s.bA(l.getWest(), l.getEast()) < 0, + D = R ? l.getEast() : l.getWest(), + N = R ? l.getWest() : l.getEast(), + G = Math.max(l.getNorth(), l.getSouth()), + te = Math.min(l.getNorth(), l.getSouth()), + Q = D + 0.5 * s.bA(D, N), + ae = G + 0.5 * s.bA(G, te), + ce = d.clone(); + ce.setCenter(g.center), + ce.setBearing(g.bearing), + ce.setPitch(0), + ce.setRoll(0), + ce.setZoom(g.zoom); + const ve = ce.modelViewProjectionMatrix, + me = [ + Ti(l.getNorthWest()), + Ti(l.getNorthEast()), + Ti(l.getSouthWest()), + Ti(l.getSouthEast()), + Ti(new s.S(N, ae)), + Ti(new s.S(D, ae)), + Ti(new s.S(Q, G)), + Ti(new s.S(Q, te)), + ], + be = Ti(g.center); + let Pe = Number.POSITIVE_INFINITY; + for (const _e of me) + w < 0 && + (Pe = ji.getLesserNonNegativeNonNull( + Pe, + ji.solveVectorScale(_e, be, ve, "x", w) + )), + C > 0 && + (Pe = ji.getLesserNonNegativeNonNull( + Pe, + ji.solveVectorScale(_e, be, ve, "x", C) + )), + P > 0 && + (Pe = ji.getLesserNonNegativeNonNull( + Pe, + ji.solveVectorScale(_e, be, ve, "y", P) + )), + E < 0 && + (Pe = ji.getLesserNonNegativeNonNull( + Pe, + ji.solveVectorScale(_e, be, ve, "y", E) + )); + if (Number.isFinite(Pe) && Pe !== 0) + return (g.zoom = ce.zoom + s.ak(Pe)), g; + po(); + } + handleJumpToCenterZoom(e, i) { + const l = e.center.lat, + u = e.getConstrained( + i.center ? s.S.convert(i.center) : e.center, + e.zoom + ).center; + e.setCenter(u.wrap()); + const d = i.zoom !== void 0 ? +i.zoom : e.zoom + ei(l, u.lat); + e.zoom !== d && e.setZoom(d); + } + handleEaseTo(e, i) { + const l = e.zoom, + u = e.center, + d = e.padding, + g = { roll: e.roll, pitch: e.pitch, bearing: e.bearing }, + w = { + roll: i.roll === void 0 ? e.roll : i.roll, + pitch: i.pitch === void 0 ? e.pitch : i.pitch, + bearing: i.bearing === void 0 ? e.bearing : i.bearing, + }, + C = i.zoom !== void 0, + P = !e.isPaddingEqual(i.padding); + let E = !1; + const R = i.center ? s.S.convert(i.center) : u, + D = e.getConstrained(R, l).center; + bn(e, D); + const N = e.clone(); + N.setCenter(D), + N.setZoom(C ? +i.zoom : l + ei(u.lat, R.lat)), + N.setBearing(i.bearing); + const G = new s.P( + s.ah(e.centerPoint.x + i.offsetAsPoint.x, 0, e.width), + s.ah(e.centerPoint.y + i.offsetAsPoint.y, 0, e.height) + ); + N.setLocationAtPoint(D, G); + const te = + (i.offset && i.offsetAsPoint.mag()) > 0 ? N.center : D, + Q = C ? +i.zoom : l + ei(u.lat, te.lat), + ae = l + ei(u.lat, 0), + ce = Q + ei(te.lat, 0), + ve = s.bA(u.lng, te.lng), + me = s.bA(u.lat, te.lat), + be = s.af(ce - ae); + return ( + (E = Q !== l), + { + easeFunc: (Pe) => { + if ( + (s.be(g, w) || + fi({ + startEulerAngles: g, + endEulerAngles: w, + tr: e, + k: Pe, + useSlerp: g.roll != w.roll, + }), + P && e.interpolatePadding(d, i.padding, Pe), + i.around) + ) + s.w( + "Easing around a point is not supported under globe projection." + ), + e.setLocationAtPoint(i.around, i.aroundPoint); + else { + const _e = + ce > ae ? Math.min(2, be) : Math.max(0.5, be), + Be = Math.pow(_e, 1 - Pe), + rt = Ec(u, ve, me, Pe * Be); + e.setCenter(rt.wrap()); + } + if (E) { + const _e = + s.C.number(ae, ce, Pe) + ei(0, e.center.lat); + e.setZoom(_e); + } + }, + isZooming: E, + elevationCenter: te, + } + ); + } + handleFlyTo(e, i) { + const l = i.zoom !== void 0, + u = e.center, + d = e.zoom, + g = e.padding, + w = !e.isPaddingEqual(i.padding), + C = e.getConstrained( + s.S.convert(i.center || i.locationAtOffset), + d + ).center, + P = l ? +i.zoom : e.zoom + ei(e.center.lat, C.lat), + E = e.clone(); + E.setCenter(C), E.setZoom(P), E.setBearing(i.bearing); + const R = new s.P( + s.ah(e.centerPoint.x + i.offsetAsPoint.x, 0, e.width), + s.ah(e.centerPoint.y + i.offsetAsPoint.y, 0, e.height) + ); + E.setLocationAtPoint(C, R); + const D = E.center; + bn(e, D); + const N = (function (me, be, Pe) { + const _e = Ti(be), + Be = Ti(Pe), + rt = s.aX(_e, Be), + Ge = Math.acos(rt), + Xe = vl(me); + return (Ge / (2 * Math.PI)) * Xe; + })(e, u, D), + G = d + ei(u.lat, 0), + te = P + ei(D.lat, 0), + Q = s.af(te - G); + let ae; + if (typeof i.minZoom == "number") { + const me = +i.minZoom + ei(D.lat, 0), + be = Math.min(me, G, te) + ei(0, D.lat), + Pe = e.getConstrained(D, be).zoom + ei(D.lat, 0); + ae = s.af(Pe - G); + } + const ce = s.bA(u.lng, D.lng), + ve = s.bA(u.lat, D.lat); + return { + easeFunc: (me, be, Pe, _e) => { + const Be = Ec(u, ce, ve, Pe); + w && e.interpolatePadding(g, i.padding, me); + const rt = me === 1 ? D : Be; + e.setCenter(rt.wrap()); + const Ge = G + s.ak(be); + e.setZoom(me === 1 ? P : Ge + ei(0, rt.lat)); + }, + scaleOfZoom: Q, + targetCenter: D, + scaleOfMinZoom: ae, + pixelPathLength: N, + }; + } + static solveVectorScale(e, i, l, u, d) { + const g = + u === "x" + ? [l[0], l[4], l[8], l[12]] + : [l[1], l[5], l[9], l[13]], + w = [l[3], l[7], l[11], l[15]], + C = e[0] * g[0] + e[1] * g[1] + e[2] * g[2], + P = e[0] * w[0] + e[1] * w[1] + e[2] * w[2], + E = i[0] * g[0] + i[1] * g[1] + i[2] * g[2], + R = i[0] * w[0] + i[1] * w[1] + i[2] * w[2]; + return E + d * P === C + d * R || + w[3] * (C - E) + g[3] * (R - P) + C * R == E * P + ? null + : (E + g[3] - d * R - d * w[3]) / (E - C - d * R + d * P); + } + static getLesserNonNegativeNonNull(e, i) { + return i !== null && i >= 0 && i < e ? i : e; + } + } + class Oh { + constructor(e) { + (this._globe = e), + (this._mercatorCameraHelper = new jn()), + (this._verticalPerspectiveCameraHelper = new ji()); + } + get useGlobeControls() { + return this._globe.useGlobeRendering; + } + get currentHelper() { + return this.useGlobeControls + ? this._verticalPerspectiveCameraHelper + : this._mercatorCameraHelper; + } + handlePanInertia(e, i) { + return this.currentHelper.handlePanInertia(e, i); + } + handleMapControlsRollPitchBearingZoom(e, i) { + return this.currentHelper.handleMapControlsRollPitchBearingZoom( + e, + i + ); + } + handleMapControlsPan(e, i, l) { + this.currentHelper.handleMapControlsPan(e, i, l); + } + cameraForBoxAndBearing(e, i, l, u, d) { + return this.currentHelper.cameraForBoxAndBearing( + e, + i, + l, + u, + d + ); + } + handleJumpToCenterZoom(e, i) { + this.currentHelper.handleJumpToCenterZoom(e, i); + } + handleEaseTo(e, i) { + return this.currentHelper.handleEaseTo(e, i); + } + handleFlyTo(e, i) { + return this.currentHelper.handleFlyTo(e, i); + } + } + const yl = (h, e) => + s.y( + h, + e && e.filter((i) => i.identifier !== "source.canvas") + ), + wp = s.bE(); + class zc extends s.E { + constructor(e, i = {}) { + super(), + (this._rtlPluginLoaded = () => { + for (const l in this.sourceCaches) { + const u = this.sourceCaches[l].getSource().type; + (u !== "vector" && u !== "geojson") || + this.sourceCaches[l].reload(); + } + }), + (this.map = e), + (this.dispatcher = new Dt(It(), e._getMapId())), + this.dispatcher.registerMessageHandler("GG", (l, u) => + this.getGlyphs(l, u) + ), + this.dispatcher.registerMessageHandler("GI", (l, u) => + this.getImages(l, u) + ), + (this.imageManager = new Qe()), + this.imageManager.setEventedParent(this), + (this.glyphManager = new Ue( + e._requestManager, + i.localIdeographFontFamily + )), + (this.lineAtlas = new oe(256, 512)), + (this.crossTileSymbolIndex = new sr()), + (this._spritesImagesIds = {}), + (this._layers = {}), + (this._order = []), + (this.sourceCaches = {}), + (this.zoomHistory = new s.bF()), + (this._loaded = !1), + (this._availableImages = []), + (this._globalState = {}), + this._resetUpdates(), + this.dispatcher.broadcast("SR", s.bG()), + Ir().on(mr, this._rtlPluginLoaded), + this.on("data", (l) => { + if ( + l.dataType !== "source" || + l.sourceDataType !== "metadata" + ) + return; + const u = this.sourceCaches[l.sourceId]; + if (!u) return; + const d = u.getSource(); + if (d && d.vectorLayerIds) + for (const g in this._layers) { + const w = this._layers[g]; + w.source === d.id && this._validateLayer(w); + } + }); + } + setGlobalStateProperty(e, i) { + var l, u, d; + this._checkLoaded(); + const g = + i === null + ? (d = + (u = + (l = this.stylesheet.state) === null || l === void 0 + ? void 0 + : l[e]) === null || u === void 0 + ? void 0 + : u.default) !== null && d !== void 0 + ? d + : null + : i; + if (s.bH(g, this._globalState[e])) return this; + this._globalState[e] = g; + const w = this._findGlobalStateAffectedSources([e]); + for (const C in this.sourceCaches) + w.has(C) && (this._reloadSource(C), (this._changed = !0)); + } + getGlobalState() { + return this._globalState; + } + setGlobalState(e) { + this._checkLoaded(); + const i = []; + for (const u in e) + !s.bH(this._globalState[u], e[u].default) && + (i.push(u), (this._globalState[u] = e[u].default)); + const l = this._findGlobalStateAffectedSources(i); + for (const u in this.sourceCaches) + l.has(u) && (this._reloadSource(u), (this._changed = !0)); + } + _findGlobalStateAffectedSources(e) { + if (e.length === 0) return new Set(); + const i = new Set(); + for (const l in this._layers) { + const u = this._layers[l], + d = u.getLayoutAffectingGlobalStateRefs(); + for (const g of e) d.has(g) && i.add(u.source); + } + return i; + } + loadURL(e, i = {}, l) { + this.fire(new s.l("dataloading", { dataType: "style" })), + (i.validate = typeof i.validate != "boolean" || i.validate); + const u = this.map._requestManager.transformRequest( + e, + "Style" + ); + this._loadStyleRequest = new AbortController(); + const d = this._loadStyleRequest; + s.j(u, this._loadStyleRequest) + .then((g) => { + (this._loadStyleRequest = null), this._load(g.data, i, l); + }) + .catch((g) => { + (this._loadStyleRequest = null), + g && !d.signal.aborted && this.fire(new s.k(g)); + }); + } + loadJSON(e, i = {}, l) { + this.fire(new s.l("dataloading", { dataType: "style" })), + (this._frameRequest = new AbortController()), + ne + .frameAsync(this._frameRequest) + .then(() => { + (this._frameRequest = null), + (i.validate = i.validate !== !1), + this._load(e, i, l); + }) + .catch(() => {}); + } + loadEmpty() { + this.fire(new s.l("dataloading", { dataType: "style" })), + this._load(wp, { validate: !1 }); + } + _load(e, i, l) { + var u, d, g; + const w = i.transformStyle ? i.transformStyle(l, e) : e; + if (!i.validate || !yl(this, s.z(w))) { + (this._loaded = !0), (this.stylesheet = w); + for (const C in w.sources) + this.addSource(C, w.sources[C], { validate: !1 }); + w.sprite + ? this._loadSprite(w.sprite) + : this.imageManager.setLoaded(!0), + this.glyphManager.setURL(w.glyphs), + this._createLayers(), + (this.light = new ee(this.stylesheet.light)), + this._setProjectionInternal( + ((u = this.stylesheet.projection) === null || + u === void 0 + ? void 0 + : u.type) || "mercator" + ), + (this.sky = new he(this.stylesheet.sky)), + this.map.setTerrain( + (d = this.stylesheet.terrain) !== null && d !== void 0 + ? d + : null + ), + this.setGlobalState( + (g = this.stylesheet.state) !== null && g !== void 0 + ? g + : null + ), + this.fire(new s.l("data", { dataType: "style" })), + this.fire(new s.l("style.load")); + } + } + _createLayers() { + const e = s.bI(this.stylesheet.layers); + this.dispatcher.broadcast("SL", e), + (this._order = e.map((i) => i.id)), + (this._layers = {}), + (this._serializedLayers = null); + for (const i of e) { + const l = s.bJ(i); + l.setEventedParent(this, { layer: { id: i.id } }), + (this._layers[i.id] = l); + } + } + _loadSprite(e, i = !1, l = void 0) { + let u; + this.imageManager.setLoaded(!1), + (this._spriteRequest = new AbortController()), + (function (d, g, w, C) { + return s._(this, void 0, void 0, function* () { + const P = Je(d), + E = w > 1 ? "@2x" : "", + R = {}, + D = {}; + for (const { id: N, url: G } of P) { + const te = g.transformRequest( + qe(G, E, ".json"), + "SpriteJSON" + ); + R[N] = s.j(te, C); + const Q = g.transformRequest( + qe(G, E, ".png"), + "SpriteImage" + ); + D[N] = Fe.getImage(Q, C); + } + return ( + yield Promise.all([ + ...Object.values(R), + ...Object.values(D), + ]), + (function (N, G) { + return s._(this, void 0, void 0, function* () { + const te = {}; + for (const Q in N) { + te[Q] = {}; + const ae = ne.getImageCanvasContext( + (yield G[Q]).data + ), + ce = (yield N[Q]).data; + for (const ve in ce) { + const { + width: me, + height: be, + x: Pe, + y: _e, + sdf: Be, + pixelRatio: rt, + stretchX: Ge, + stretchY: Xe, + content: tt, + textFitWidth: jt, + textFitHeight: Zt, + } = ce[ve]; + te[Q][ve] = { + data: null, + pixelRatio: rt, + sdf: Be, + stretchX: Ge, + stretchY: Xe, + content: tt, + textFitWidth: jt, + textFitHeight: Zt, + spriteData: { + width: me, + height: be, + x: Pe, + y: _e, + context: ae, + }, + }; + } + } + return te; + }); + })(R, D) + ); + }); + })( + e, + this.map._requestManager, + this.map.getPixelRatio(), + this._spriteRequest + ) + .then((d) => { + if (((this._spriteRequest = null), d)) + for (const g in d) { + this._spritesImagesIds[g] = []; + const w = this._spritesImagesIds[g] + ? this._spritesImagesIds[g].filter( + (C) => !(C in d) + ) + : []; + for (const C of w) + this.imageManager.removeImage(C), + (this._changedImages[C] = !0); + for (const C in d[g]) { + const P = g === "default" ? C : `${g}:${C}`; + this._spritesImagesIds[g].push(P), + P in this.imageManager.images + ? this.imageManager.updateImage( + P, + d[g][C], + !1 + ) + : this.imageManager.addImage(P, d[g][C]), + i && (this._changedImages[P] = !0); + } + } + }) + .catch((d) => { + (this._spriteRequest = null), + (u = d), + this.fire(new s.k(u)); + }) + .finally(() => { + this.imageManager.setLoaded(!0), + (this._availableImages = + this.imageManager.listImages()), + i && (this._changed = !0), + this.dispatcher.broadcast( + "SI", + this._availableImages + ), + this.fire(new s.l("data", { dataType: "style" })), + l && l(u); + }); + } + _unloadSprite() { + for (const e of Object.values(this._spritesImagesIds).flat()) + this.imageManager.removeImage(e), + (this._changedImages[e] = !0); + (this._spritesImagesIds = {}), + (this._availableImages = this.imageManager.listImages()), + (this._changed = !0), + this.dispatcher.broadcast("SI", this._availableImages), + this.fire(new s.l("data", { dataType: "style" })); + } + _validateLayer(e) { + const i = this.sourceCaches[e.source]; + if (!i) return; + const l = e.sourceLayer; + if (!l) return; + const u = i.getSource(); + (u.type === "geojson" || + (u.vectorLayerIds && u.vectorLayerIds.indexOf(l) === -1)) && + this.fire( + new s.k( + new Error( + `Source layer "${l}" does not exist on source "${u.id}" as specified by style layer "${e.id}".` + ) + ) + ); + } + loaded() { + if (!this._loaded || Object.keys(this._updatedSources).length) + return !1; + for (const e in this.sourceCaches) + if (!this.sourceCaches[e].loaded()) return !1; + return !!this.imageManager.isLoaded(); + } + _serializeByIds(e, i = !1) { + const l = this._serializedAllLayers(); + if (!e || e.length === 0) + return Object.values(i ? s.bK(l) : l); + const u = []; + for (const d of e) + if (l[d]) { + const g = i ? s.bK(l[d]) : l[d]; + u.push(g); + } + return u; + } + _serializedAllLayers() { + let e = this._serializedLayers; + if (e) return e; + e = this._serializedLayers = {}; + const i = Object.keys(this._layers); + for (const l of i) { + const u = this._layers[l]; + u.type !== "custom" && (e[l] = u.serialize()); + } + return e; + } + hasTransitions() { + var e, i, l; + if ( + (!((e = this.light) === null || e === void 0) && + e.hasTransition()) || + (!((i = this.sky) === null || i === void 0) && + i.hasTransition()) || + (!((l = this.projection) === null || l === void 0) && + l.hasTransition()) + ) + return !0; + for (const u in this.sourceCaches) + if (this.sourceCaches[u].hasTransition()) return !0; + for (const u in this._layers) + if (this._layers[u].hasTransition()) return !0; + return !1; + } + _checkLoaded() { + if (!this._loaded) + throw new Error("Style is not done loading."); + } + update(e) { + if (!this._loaded) return; + const i = this._changed; + if (i) { + const u = Object.keys(this._updatedLayers), + d = Object.keys(this._removedLayers); + (u.length || d.length) && this._updateWorkerLayers(u, d); + for (const g in this._updatedSources) { + const w = this._updatedSources[g]; + if (w === "reload") this._reloadSource(g); + else { + if (w !== "clear") + throw new Error(`Invalid action ${w}`); + this._clearSource(g); + } + } + this._updateTilesForChangedImages(), + this._updateTilesForChangedGlyphs(); + for (const g in this._updatedPaintProps) + this._layers[g].updateTransitions(e); + this.light.updateTransitions(e), + this.sky.updateTransitions(e), + this._resetUpdates(); + } + const l = {}; + for (const u in this.sourceCaches) { + const d = this.sourceCaches[u]; + (l[u] = d.used), (d.used = !1); + } + for (const u of this._order) { + const d = this._layers[u]; + d.recalculate(e, this._availableImages), + !d.isHidden(e.zoom) && + d.source && + (this.sourceCaches[d.source].used = !0); + } + for (const u in l) { + const d = this.sourceCaches[u]; + !!l[u] != !!d.used && + d.fire( + new s.l("data", { + sourceDataType: "visibility", + dataType: "source", + sourceId: u, + }) + ); + } + this.light.recalculate(e), + this.sky.recalculate(e), + this.projection.recalculate(e), + (this.z = e.zoom), + i && this.fire(new s.l("data", { dataType: "style" })); + } + _updateTilesForChangedImages() { + const e = Object.keys(this._changedImages); + if (e.length) { + for (const i in this.sourceCaches) + this.sourceCaches[i].reloadTilesForDependencies( + ["icons", "patterns"], + e + ); + this._changedImages = {}; + } + } + _updateTilesForChangedGlyphs() { + if (this._glyphsDidChange) { + for (const e in this.sourceCaches) + this.sourceCaches[e].reloadTilesForDependencies( + ["glyphs"], + [""] + ); + this._glyphsDidChange = !1; + } + } + _updateWorkerLayers(e, i) { + this.dispatcher.broadcast("UL", { + layers: this._serializeByIds(e, !1), + removedIds: i, + }); + } + _resetUpdates() { + (this._changed = !1), + (this._updatedLayers = {}), + (this._removedLayers = {}), + (this._updatedSources = {}), + (this._updatedPaintProps = {}), + (this._changedImages = {}), + (this._glyphsDidChange = !1); + } + setState(e, i = {}) { + var l; + this._checkLoaded(); + const u = this.serialize(); + if ( + ((e = i.transformStyle ? i.transformStyle(u, e) : e), + ((l = i.validate) === null || l === void 0 || l) && + yl(this, s.z(e))) + ) + return !1; + (e = s.bK(e)).layers = s.bI(e.layers); + const d = s.bL(u, e), + g = this._getOperationsToPerform(d); + if (g.unimplemented.length > 0) + throw new Error( + `Unimplemented: ${g.unimplemented.join(", ")}.` + ); + if (g.operations.length === 0) return !1; + for (const w of g.operations) w(); + return ( + (this.stylesheet = e), (this._serializedLayers = null), !0 + ); + } + _getOperationsToPerform(e) { + const i = [], + l = []; + for (const u of e) + switch (u.command) { + case "setCenter": + case "setZoom": + case "setBearing": + case "setPitch": + case "setRoll": + continue; + case "addLayer": + i.push(() => this.addLayer.apply(this, u.args)); + break; + case "removeLayer": + i.push(() => this.removeLayer.apply(this, u.args)); + break; + case "setPaintProperty": + i.push(() => this.setPaintProperty.apply(this, u.args)); + break; + case "setLayoutProperty": + i.push(() => + this.setLayoutProperty.apply(this, u.args) + ); + break; + case "setFilter": + i.push(() => this.setFilter.apply(this, u.args)); + break; + case "addSource": + i.push(() => this.addSource.apply(this, u.args)); + break; + case "removeSource": + i.push(() => this.removeSource.apply(this, u.args)); + break; + case "setLayerZoomRange": + i.push(() => + this.setLayerZoomRange.apply(this, u.args) + ); + break; + case "setLight": + i.push(() => this.setLight.apply(this, u.args)); + break; + case "setGeoJSONSourceData": + i.push(() => + this.setGeoJSONSourceData.apply(this, u.args) + ); + break; + case "setGlyphs": + i.push(() => this.setGlyphs.apply(this, u.args)); + break; + case "setSprite": + i.push(() => this.setSprite.apply(this, u.args)); + break; + case "setTerrain": + i.push(() => this.map.setTerrain.apply(this, u.args)); + break; + case "setSky": + i.push(() => this.setSky.apply(this, u.args)); + break; + case "setProjection": + this.setProjection.apply(this, u.args); + break; + case "setGlobalState": + i.push(() => this.setGlobalState.apply(this, u.args)); + break; + case "setTransition": + i.push(() => {}); + break; + default: + l.push(u.command); + } + return { operations: i, unimplemented: l }; + } + addImage(e, i) { + if (this.getImage(e)) + return this.fire( + new s.k( + new Error(`An image named "${e}" already exists.`) + ) + ); + this.imageManager.addImage(e, i), this._afterImageUpdated(e); + } + updateImage(e, i) { + this.imageManager.updateImage(e, i); + } + getImage(e) { + return this.imageManager.getImage(e); + } + removeImage(e) { + if (!this.getImage(e)) + return this.fire( + new s.k( + new Error(`An image named "${e}" does not exist.`) + ) + ); + this.imageManager.removeImage(e), this._afterImageUpdated(e); + } + _afterImageUpdated(e) { + (this._availableImages = this.imageManager.listImages()), + (this._changedImages[e] = !0), + (this._changed = !0), + this.dispatcher.broadcast("SI", this._availableImages), + this.fire(new s.l("data", { dataType: "style" })); + } + listImages() { + return this._checkLoaded(), this.imageManager.listImages(); + } + addSource(e, i, l = {}) { + if ((this._checkLoaded(), this.sourceCaches[e] !== void 0)) + throw new Error(`Source "${e}" already exists.`); + if (!i.type) + throw new Error( + `The type property must be defined, but only the following properties were given: ${Object.keys( + i + ).join(", ")}.` + ); + if ( + ["vector", "raster", "geojson", "video", "image"].indexOf( + i.type + ) >= 0 && + this._validate(s.z.source, `sources.${e}`, i, null, l) + ) + return; + this.map && + this.map._collectResourceTiming && + (i.collectResourceTiming = !0); + const u = (this.sourceCaches[e] = new rr( + e, + i, + this.dispatcher + )); + (u.style = this), + u.setEventedParent(this, () => ({ + isSourceLoaded: u.loaded(), + source: u.serialize(), + sourceId: e, + })), + u.onAdd(this.map), + (this._changed = !0); + } + removeSource(e) { + if ((this._checkLoaded(), this.sourceCaches[e] === void 0)) + throw new Error("There is no source with this ID"); + for (const l in this._layers) + if (this._layers[l].source === e) + return this.fire( + new s.k( + new Error( + `Source "${e}" cannot be removed while layer "${l}" is using it.` + ) + ) + ); + const i = this.sourceCaches[e]; + delete this.sourceCaches[e], + delete this._updatedSources[e], + i.fire( + new s.l("data", { + sourceDataType: "metadata", + dataType: "source", + sourceId: e, + }) + ), + i.setEventedParent(null), + i.onRemove(this.map), + (this._changed = !0); + } + setGeoJSONSourceData(e, i) { + if ((this._checkLoaded(), this.sourceCaches[e] === void 0)) + throw new Error(`There is no source with this ID=${e}`); + const l = this.sourceCaches[e].getSource(); + if (l.type !== "geojson") + throw new Error( + `geojsonSource.type is ${l.type}, which is !== 'geojson` + ); + l.setData(i), (this._changed = !0); + } + getSource(e) { + return ( + this.sourceCaches[e] && this.sourceCaches[e].getSource() + ); + } + addLayer(e, i, l = {}) { + this._checkLoaded(); + const u = e.id; + if (this.getLayer(u)) + return void this.fire( + new s.k( + new Error(`Layer "${u}" already exists on this map.`) + ) + ); + let d; + if (e.type === "custom") { + if (yl(this, s.bM(e))) return; + d = s.bJ(e); + } else { + if ( + ("source" in e && + typeof e.source == "object" && + (this.addSource(u, e.source), + (e = s.bK(e)), + (e = s.e(e, { source: u }))), + this._validate( + s.z.layer, + `layers.${u}`, + e, + { arrayIndex: -1 }, + l + )) + ) + return; + (d = s.bJ(e)), + this._validateLayer(d), + d.setEventedParent(this, { layer: { id: u } }); + } + const g = i ? this._order.indexOf(i) : this._order.length; + if (i && g === -1) + this.fire( + new s.k( + new Error( + `Cannot add layer "${u}" before non-existing layer "${i}".` + ) + ) + ); + else { + if ( + (this._order.splice(g, 0, u), + (this._layerOrderChanged = !0), + (this._layers[u] = d), + this._removedLayers[u] && d.source && d.type !== "custom") + ) { + const w = this._removedLayers[u]; + delete this._removedLayers[u], + w.type !== d.type + ? (this._updatedSources[d.source] = "clear") + : ((this._updatedSources[d.source] = "reload"), + this.sourceCaches[d.source].pause()); + } + this._updateLayer(d), d.onAdd && d.onAdd(this.map); + } + } + moveLayer(e, i) { + if ( + (this._checkLoaded(), + (this._changed = !0), + !this._layers[e]) + ) + return void this.fire( + new s.k( + new Error( + `The layer '${e}' does not exist in the map's style and cannot be moved.` + ) + ) + ); + if (e === i) return; + const l = this._order.indexOf(e); + this._order.splice(l, 1); + const u = i ? this._order.indexOf(i) : this._order.length; + i && u === -1 + ? this.fire( + new s.k( + new Error( + `Cannot move layer "${e}" before non-existing layer "${i}".` + ) + ) + ) + : (this._order.splice(u, 0, e), + (this._layerOrderChanged = !0)); + } + removeLayer(e) { + this._checkLoaded(); + const i = this._layers[e]; + if (!i) + return void this.fire( + new s.k( + new Error(`Cannot remove non-existing layer "${e}".`) + ) + ); + i.setEventedParent(null); + const l = this._order.indexOf(e); + this._order.splice(l, 1), + (this._layerOrderChanged = !0), + (this._changed = !0), + (this._removedLayers[e] = i), + delete this._layers[e], + this._serializedLayers && delete this._serializedLayers[e], + delete this._updatedLayers[e], + delete this._updatedPaintProps[e], + i.onRemove && i.onRemove(this.map); + } + getLayer(e) { + return this._layers[e]; + } + getLayersOrder() { + return [...this._order]; + } + hasLayer(e) { + return e in this._layers; + } + setLayerZoomRange(e, i, l) { + this._checkLoaded(); + const u = this.getLayer(e); + u + ? (u.minzoom === i && u.maxzoom === l) || + (i != null && (u.minzoom = i), + l != null && (u.maxzoom = l), + this._updateLayer(u)) + : this.fire( + new s.k( + new Error( + `Cannot set the zoom range of non-existing layer "${e}".` + ) + ) + ); + } + setFilter(e, i, l = {}) { + this._checkLoaded(); + const u = this.getLayer(e); + if (u) { + if (!s.bH(u.filter, i)) + return i == null + ? (u.setFilter(void 0), void this._updateLayer(u)) + : void ( + this._validate( + s.z.filter, + `layers.${u.id}.filter`, + i, + null, + l + ) || (u.setFilter(s.bK(i)), this._updateLayer(u)) + ); + } else this.fire(new s.k(new Error(`Cannot filter non-existing layer "${e}".`))); + } + getFilter(e) { + return s.bK(this.getLayer(e).filter); + } + setLayoutProperty(e, i, l, u = {}) { + this._checkLoaded(); + const d = this.getLayer(e); + d + ? s.bH(d.getLayoutProperty(i), l) || + (d.setLayoutProperty(i, l, u), this._updateLayer(d)) + : this.fire( + new s.k( + new Error(`Cannot style non-existing layer "${e}".`) + ) + ); + } + getLayoutProperty(e, i) { + const l = this.getLayer(e); + if (l) return l.getLayoutProperty(i); + this.fire( + new s.k( + new Error( + `Cannot get style of non-existing layer "${e}".` + ) + ) + ); + } + setPaintProperty(e, i, l, u = {}) { + this._checkLoaded(); + const d = this.getLayer(e); + d + ? s.bH(d.getPaintProperty(i), l) || + (d.setPaintProperty(i, l, u) && this._updateLayer(d), + (this._changed = !0), + (this._updatedPaintProps[e] = !0), + (this._serializedLayers = null)) + : this.fire( + new s.k( + new Error(`Cannot style non-existing layer "${e}".`) + ) + ); + } + getPaintProperty(e, i) { + return this.getLayer(e).getPaintProperty(i); + } + setFeatureState(e, i) { + this._checkLoaded(); + const l = e.source, + u = e.sourceLayer, + d = this.sourceCaches[l]; + if (d === void 0) + return void this.fire( + new s.k( + new Error( + `The source '${l}' does not exist in the map's style.` + ) + ) + ); + const g = d.getSource().type; + g === "geojson" && u + ? this.fire( + new s.k( + new Error( + "GeoJSON sources cannot have a sourceLayer parameter." + ) + ) + ) + : g !== "vector" || u + ? (e.id === void 0 && + this.fire( + new s.k( + new Error( + "The feature id parameter must be provided." + ) + ) + ), + d.setFeatureState(u, e.id, i)) + : this.fire( + new s.k( + new Error( + "The sourceLayer parameter must be provided for vector source types." + ) + ) + ); + } + removeFeatureState(e, i) { + this._checkLoaded(); + const l = e.source, + u = this.sourceCaches[l]; + if (u === void 0) + return void this.fire( + new s.k( + new Error( + `The source '${l}' does not exist in the map's style.` + ) + ) + ); + const d = u.getSource().type, + g = d === "vector" ? e.sourceLayer : void 0; + d !== "vector" || g + ? i && typeof e.id != "string" && typeof e.id != "number" + ? this.fire( + new s.k( + new Error( + "A feature id is required to remove its specific state property." + ) + ) + ) + : u.removeFeatureState(g, e.id, i) + : this.fire( + new s.k( + new Error( + "The sourceLayer parameter must be provided for vector source types." + ) + ) + ); + } + getFeatureState(e) { + this._checkLoaded(); + const i = e.source, + l = e.sourceLayer, + u = this.sourceCaches[i]; + if (u !== void 0) + return u.getSource().type !== "vector" || l + ? (e.id === void 0 && + this.fire( + new s.k( + new Error( + "The feature id parameter must be provided." + ) + ) + ), + u.getFeatureState(l, e.id)) + : void this.fire( + new s.k( + new Error( + "The sourceLayer parameter must be provided for vector source types." + ) + ) + ); + this.fire( + new s.k( + new Error( + `The source '${i}' does not exist in the map's style.` + ) + ) + ); + } + getTransition() { + return s.e( + { duration: 300, delay: 0 }, + this.stylesheet && this.stylesheet.transition + ); + } + serialize() { + if (!this._loaded) return; + const e = s.bN(this.sourceCaches, (d) => d.serialize()), + i = this._serializeByIds(this._order, !0), + l = this.map.getTerrain() || void 0, + u = this.stylesheet; + return s.bO( + { + version: u.version, + name: u.name, + metadata: u.metadata, + light: u.light, + sky: u.sky, + center: u.center, + zoom: u.zoom, + bearing: u.bearing, + pitch: u.pitch, + sprite: u.sprite, + glyphs: u.glyphs, + transition: u.transition, + projection: u.projection, + sources: e, + layers: i, + terrain: l, + }, + (d) => d !== void 0 + ); + } + _updateLayer(e) { + (this._updatedLayers[e.id] = !0), + e.source && + !this._updatedSources[e.source] && + this.sourceCaches[e.source].getSource().type !== + "raster" && + ((this._updatedSources[e.source] = "reload"), + this.sourceCaches[e.source].pause()), + (this._serializedLayers = null), + (this._changed = !0); + } + _flattenAndSortRenderedFeatures(e) { + const i = (g) => this._layers[g].type === "fill-extrusion", + l = {}, + u = []; + for (let g = this._order.length - 1; g >= 0; g--) { + const w = this._order[g]; + if (i(w)) { + l[w] = g; + for (const C of e) { + const P = C[w]; + if (P) for (const E of P) u.push(E); + } + } + } + u.sort((g, w) => w.intersectionZ - g.intersectionZ); + const d = []; + for (let g = this._order.length - 1; g >= 0; g--) { + const w = this._order[g]; + if (i(w)) + for (let C = u.length - 1; C >= 0; C--) { + const P = u[C].feature; + if (l[P.layer.id] < g) break; + d.push(P), u.pop(); + } + else + for (const C of e) { + const P = C[w]; + if (P) for (const E of P) d.push(E.feature); + } + } + return d; + } + queryRenderedFeatures(e, i, l) { + i && + i.filter && + this._validate( + s.z.filter, + "queryRenderedFeatures.filter", + i.filter, + null, + i + ); + const u = {}; + if (i && i.layers) { + if (!(Array.isArray(i.layers) || i.layers instanceof Set)) + return ( + this.fire( + new s.k( + new Error( + "parameters.layers must be an Array or a Set of strings" + ) + ) + ), + [] + ); + for (const P of i.layers) { + const E = this._layers[P]; + if (!E) + return ( + this.fire( + new s.k( + new Error( + `The layer '${P}' does not exist in the map's style and cannot be queried for features.` + ) + ) + ), + [] + ); + u[E.source] = !0; + } + } + const d = []; + i.availableImages = this._availableImages; + const g = this._serializedAllLayers(), + w = + i.layers instanceof Set + ? i.layers + : Array.isArray(i.layers) + ? new Set(i.layers) + : null, + C = Object.assign(Object.assign({}, i), { layers: w }); + for (const P in this.sourceCaches) + (i.layers && !u[P]) || + d.push( + yt( + this.sourceCaches[P], + this._layers, + g, + e, + C, + l, + this.map.terrain + ? (E, R, D) => + this.map.terrain.getElevation(E, R, D) + : void 0 + ) + ); + return ( + this.placement && + d.push( + (function (P, E, R, D, N, G, te) { + const Q = {}, + ae = G.queryRenderedSymbols(D), + ce = []; + for (const ve of Object.keys(ae).map(Number)) + ce.push(te[ve]); + ce.sort(xt); + for (const ve of ce) { + const me = ve.featureIndex.lookupSymbolFeatures( + ae[ve.bucketInstanceId], + E, + ve.bucketIndex, + ve.sourceLayerIndex, + N.filter, + N.layers, + N.availableImages, + P + ); + for (const be in me) { + const Pe = (Q[be] = Q[be] || []), + _e = me[be]; + _e.sort((Be, rt) => { + const Ge = ve.featureSortOrder; + if (Ge) { + const Xe = Ge.indexOf(Be.featureIndex); + return Ge.indexOf(rt.featureIndex) - Xe; + } + return rt.featureIndex - Be.featureIndex; + }); + for (const Be of _e) Pe.push(Be); + } + } + return (function (ve, me, be) { + for (const Pe in ve) + for (const _e of ve[Pe]) + St(_e, be[me[Pe].source]); + return ve; + })(Q, P, R); + })( + this._layers, + g, + this.sourceCaches, + e, + C, + this.placement.collisionIndex, + this.placement.retainedQueryData + ) + ), + this._flattenAndSortRenderedFeatures(d) + ); + } + querySourceFeatures(e, i) { + i && + i.filter && + this._validate( + s.z.filter, + "querySourceFeatures.filter", + i.filter, + null, + i + ); + const l = this.sourceCaches[e]; + return l + ? (function (u, d) { + const g = u + .getRenderableIds() + .map((P) => u.getTileByID(P)), + w = [], + C = {}; + for (let P = 0; P < g.length; P++) { + const E = g[P], + R = E.tileID.canonical.key; + C[R] || ((C[R] = !0), E.querySourceFeatures(w, d)); + } + return w; + })(l, i) + : []; + } + getLight() { + return this.light.getLight(); + } + setLight(e, i = {}) { + this._checkLoaded(); + const l = this.light.getLight(); + let u = !1; + for (const g in e) + if (!s.bH(e[g], l[g])) { + u = !0; + break; + } + if (!u) return; + const d = { + now: ne.now(), + transition: s.e( + { duration: 300, delay: 0 }, + this.stylesheet.transition + ), + }; + this.light.setLight(e, i), this.light.updateTransitions(d); + } + getProjection() { + var e; + return (e = this.stylesheet) === null || e === void 0 + ? void 0 + : e.projection; + } + setProjection(e) { + if ((this._checkLoaded(), this.projection)) { + if (this.projection.name === e.type) return; + this.projection.destroy(), delete this.projection; + } + (this.stylesheet.projection = e), + this._setProjectionInternal(e.type); + } + getSky() { + var e; + return (e = this.stylesheet) === null || e === void 0 + ? void 0 + : e.sky; + } + setSky(e, i = {}) { + this._checkLoaded(); + const l = this.getSky(); + let u = !1; + if (!e && !l) return; + if (e && !l) u = !0; + else if (!e && l) u = !0; + else + for (const g in e) + if (!s.bH(e[g], l[g])) { + u = !0; + break; + } + if (!u) return; + const d = { + now: ne.now(), + transition: s.e( + { duration: 300, delay: 0 }, + this.stylesheet.transition + ), + }; + (this.stylesheet.sky = e), + this.sky.setSky(e, i), + this.sky.updateTransitions(d); + } + _setProjectionInternal(e) { + const i = (function (l) { + if (Array.isArray(l)) { + const u = new gl({ type: l }); + return { + projection: u, + transform: new Ds(), + cameraHelper: new Oh(u), + }; + } + switch (l) { + case "mercator": + return { + projection: new Mr(), + transform: new on(), + cameraHelper: new jn(), + }; + case "globe": { + const u = new gl({ + type: [ + "interpolate", + ["linear"], + ["zoom"], + 11, + "vertical-perspective", + 12, + "mercator", + ], + }); + return { + projection: u, + transform: new Ds(), + cameraHelper: new Oh(u), + }; + } + case "vertical-perspective": + return { + projection: new Qa(), + transform: new Ls(), + cameraHelper: new ji(), + }; + default: + return ( + s.w( + `Unknown projection name: ${l}. Falling back to mercator projection.` + ), + { + projection: new Mr(), + transform: new on(), + cameraHelper: new jn(), + } + ); + } + })(e); + (this.projection = i.projection), + this.map.migrateProjection(i.transform, i.cameraHelper); + for (const l in this.sourceCaches) + this.sourceCaches[l].reload(); + } + _validate(e, i, l, u, d = {}) { + return ( + (!d || d.validate !== !1) && + yl( + this, + e.call( + s.z, + s.e( + { + key: i, + style: this.serialize(), + value: l, + styleSpec: s.v, + }, + u + ) + ) + ) + ); + } + _remove(e = !0) { + this._frameRequest && + (this._frameRequest.abort(), (this._frameRequest = null)), + this._loadStyleRequest && + (this._loadStyleRequest.abort(), + (this._loadStyleRequest = null)), + this._spriteRequest && + (this._spriteRequest.abort(), + (this._spriteRequest = null)), + Ir().off(mr, this._rtlPluginLoaded); + for (const i in this._layers) + this._layers[i].setEventedParent(null); + for (const i in this.sourceCaches) { + const l = this.sourceCaches[i]; + l.setEventedParent(null), l.onRemove(this.map); + } + this.imageManager.setEventedParent(null), + this.setEventedParent(null), + e && this.dispatcher.broadcast("RM", void 0), + this.dispatcher.remove(e); + } + _clearSource(e) { + this.sourceCaches[e].clearTiles(); + } + _reloadSource(e) { + this.sourceCaches[e].resume(), this.sourceCaches[e].reload(); + } + _updateSources(e) { + for (const i in this.sourceCaches) + this.sourceCaches[i].update(e, this.map.terrain); + } + _generateCollisionBoxes() { + for (const e in this.sourceCaches) this._reloadSource(e); + } + _updatePlacement(e, i, l, u, d = !1) { + let g = !1, + w = !1; + const C = {}; + for (const P of this._order) { + const E = this._layers[P]; + if (E.type !== "symbol") continue; + if (!C[E.source]) { + const D = this.sourceCaches[E.source]; + C[E.source] = D.getRenderableIds(!0) + .map((N) => D.getTileByID(N)) + .sort( + (N, G) => + G.tileID.overscaledZ - N.tileID.overscaledZ || + (N.tileID.isLessThan(G.tileID) ? -1 : 1) + ); + } + const R = this.crossTileSymbolIndex.addLayer( + E, + C[E.source], + e.center.lng + ); + g = g || R; + } + if ( + (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), + ((d = d || this._layerOrderChanged || l === 0) || + !this.pauseablePlacement || + (this.pauseablePlacement.isDone() && + !this.placement.stillRecent(ne.now(), e.zoom))) && + ((this.pauseablePlacement = new On( + e, + this.map.terrain, + this._order, + d, + i, + l, + u, + this.placement + )), + (this._layerOrderChanged = !1)), + this.pauseablePlacement.isDone() + ? this.placement.setStale() + : (this.pauseablePlacement.continuePlacement( + this._order, + this._layers, + C + ), + this.pauseablePlacement.isDone() && + ((this.placement = this.pauseablePlacement.commit( + ne.now() + )), + (w = !0)), + g && this.pauseablePlacement.placement.setStale()), + w || g) + ) + for (const P of this._order) { + const E = this._layers[P]; + E.type === "symbol" && + this.placement.updateLayerOpacities(E, C[E.source]); + } + return ( + !this.pauseablePlacement.isDone() || + this.placement.hasTransitions(ne.now()) + ); + } + _releaseSymbolFadeTiles() { + for (const e in this.sourceCaches) + this.sourceCaches[e].releaseSymbolFadeTiles(); + } + getImages(e, i) { + return s._(this, void 0, void 0, function* () { + const l = yield this.imageManager.getImages(i.icons); + this._updateTilesForChangedImages(); + const u = this.sourceCaches[i.source]; + return ( + u && u.setDependencies(i.tileID.key, i.type, i.icons), l + ); + }); + } + getGlyphs(e, i) { + return s._(this, void 0, void 0, function* () { + const l = yield this.glyphManager.getGlyphs(i.stacks), + u = this.sourceCaches[i.source]; + return ( + u && u.setDependencies(i.tileID.key, i.type, [""]), l + ); + }); + } + getGlyphsUrl() { + return this.stylesheet.glyphs || null; + } + setGlyphs(e, i = {}) { + this._checkLoaded(), + (e && this._validate(s.z.glyphs, "glyphs", e, null, i)) || + ((this._glyphsDidChange = !0), + (this.stylesheet.glyphs = e), + (this.glyphManager.entries = {}), + this.glyphManager.setURL(e)); + } + addSprite(e, i, l = {}, u) { + this._checkLoaded(); + const d = [{ id: e, url: i }], + g = [...Je(this.stylesheet.sprite), ...d]; + this._validate(s.z.sprite, "sprite", g, null, l) || + ((this.stylesheet.sprite = g), this._loadSprite(d, !0, u)); + } + removeSprite(e) { + this._checkLoaded(); + const i = Je(this.stylesheet.sprite); + if (i.find((l) => l.id === e)) { + if (this._spritesImagesIds[e]) + for (const l of this._spritesImagesIds[e]) + this.imageManager.removeImage(l), + (this._changedImages[l] = !0); + i.splice( + i.findIndex((l) => l.id === e), + 1 + ), + (this.stylesheet.sprite = i.length > 0 ? i : void 0), + delete this._spritesImagesIds[e], + (this._availableImages = this.imageManager.listImages()), + (this._changed = !0), + this.dispatcher.broadcast("SI", this._availableImages), + this.fire(new s.l("data", { dataType: "style" })); + } else this.fire(new s.k(new Error(`Sprite "${e}" doesn't exists on this map.`))); + } + getSprite() { + return Je(this.stylesheet.sprite); + } + setSprite(e, i = {}, l) { + this._checkLoaded(), + (e && this._validate(s.z.sprite, "sprite", e, null, i)) || + ((this.stylesheet.sprite = e), + e + ? this._loadSprite(e, !0, l) + : (this._unloadSprite(), l && l(null))); + } + } + var Tp = s.aJ([ + { name: "a_pos", type: "Int16", components: 2 }, + { name: "a_texture_pos", type: "Int16", components: 2 }, + ]); + class Cp { + constructor() { + (this.boundProgram = null), + (this.boundLayoutVertexBuffer = null), + (this.boundPaintVertexBuffers = []), + (this.boundIndexBuffer = null), + (this.boundVertexOffset = null), + (this.boundDynamicVertexBuffer = null), + (this.vao = null); + } + bind(e, i, l, u, d, g, w, C, P) { + this.context = e; + let E = this.boundPaintVertexBuffers.length !== u.length; + for (let R = 0; !E && R < u.length; R++) + this.boundPaintVertexBuffers[R] !== u[R] && (E = !0); + !this.vao || + this.boundProgram !== i || + this.boundLayoutVertexBuffer !== l || + E || + this.boundIndexBuffer !== d || + this.boundVertexOffset !== g || + this.boundDynamicVertexBuffer !== w || + this.boundDynamicVertexBuffer2 !== C || + this.boundDynamicVertexBuffer3 !== P + ? this.freshBind(i, l, u, d, g, w, C, P) + : (e.bindVertexArray.set(this.vao), + w && w.bind(), + d && d.dynamicDraw && d.bind(), + C && C.bind(), + P && P.bind()); + } + freshBind(e, i, l, u, d, g, w, C) { + const P = e.numAttributes, + E = this.context, + R = E.gl; + this.vao && this.destroy(), + (this.vao = E.createVertexArray()), + E.bindVertexArray.set(this.vao), + (this.boundProgram = e), + (this.boundLayoutVertexBuffer = i), + (this.boundPaintVertexBuffers = l), + (this.boundIndexBuffer = u), + (this.boundVertexOffset = d), + (this.boundDynamicVertexBuffer = g), + (this.boundDynamicVertexBuffer2 = w), + (this.boundDynamicVertexBuffer3 = C), + i.enableAttributes(R, e); + for (const D of l) D.enableAttributes(R, e); + g && g.enableAttributes(R, e), + w && w.enableAttributes(R, e), + C && C.enableAttributes(R, e), + i.bind(), + i.setVertexAttribPointers(R, e, d); + for (const D of l) + D.bind(), D.setVertexAttribPointers(R, e, d); + g && (g.bind(), g.setVertexAttribPointers(R, e, d)), + u && u.bind(), + w && (w.bind(), w.setVertexAttribPointers(R, e, d)), + C && (C.bind(), C.setVertexAttribPointers(R, e, d)), + (E.currentNumAttributes = P); + } + destroy() { + this.vao && + (this.context.deleteVertexArray(this.vao), + (this.vao = null)); + } + } + const xl = (h, e, i, l, u) => ({ + u_texture: 0, + u_ele_delta: h, + u_fog_matrix: e, + u_fog_color: i ? i.properties.get("fog-color") : s.bf.white, + u_fog_ground_blend: i + ? i.properties.get("fog-ground-blend") + : 1, + u_fog_ground_blend_opacity: u + ? 0 + : i + ? i.calculateFogBlendOpacity(l) + : 0, + u_horizon_color: i + ? i.properties.get("horizon-color") + : s.bf.white, + u_horizon_fog_blend: i + ? i.properties.get("horizon-fog-blend") + : 1, + u_is_globe_mode: u ? 1 : 0, + }), + Lc = { + mainMatrix: "u_projection_matrix", + tileMercatorCoords: "u_projection_tile_mercator_coords", + clippingPlane: "u_projection_clipping_plane", + projectionTransition: "u_projection_transition", + fallbackMatrix: "u_projection_fallback_matrix", + }; + function ko(h) { + const e = []; + for (let i = 0; i < h.length; i++) { + if (h[i] === null) continue; + const l = h[i].split(" "); + e.push(l.pop()); + } + return e; + } + class Dc { + constructor(e, i, l, u, d, g, w, C, P = []) { + const E = e.gl; + this.program = E.createProgram(); + const R = ko(i.staticAttributes), + D = l ? l.getBinderAttributes() : [], + N = R.concat(D), + G = $r.prelude.staticUniforms + ? ko($r.prelude.staticUniforms) + : [], + te = w.staticUniforms ? ko(w.staticUniforms) : [], + Q = i.staticUniforms ? ko(i.staticUniforms) : [], + ae = l ? l.getBinderUniforms() : [], + ce = G.concat(te).concat(Q).concat(ae), + ve = []; + for (const Ge of ce) ve.indexOf(Ge) < 0 && ve.push(Ge); + const me = l ? l.defines() : []; + ga(E) && me.unshift("#version 300 es"), + d && me.push("#define OVERDRAW_INSPECTOR;"), + g && me.push("#define TERRAIN3D;"), + C && me.push(C), + P && me.push(...P); + let be = me.concat( + $r.prelude.fragmentSource, + w.fragmentSource, + i.fragmentSource + ).join(` +`), + Pe = me.concat( + $r.prelude.vertexSource, + w.vertexSource, + i.vertexSource + ).join(` +`); + ga(E) || + ((be = (function (Ge) { + return Ge.replace(/\bin\s/g, "varying ") + .replace("out highp vec4 fragColor;", "") + .replace(/fragColor/g, "gl_FragColor") + .replace(/texture\(/g, "texture2D("); + })(be)), + (Pe = (function (Ge) { + return Ge.replace(/\bin\s/g, "attribute ") + .replace(/\bout\s/g, "varying ") + .replace(/texture\(/g, "texture2D("); + })(Pe))); + const _e = E.createShader(E.FRAGMENT_SHADER); + if (E.isContextLost()) return void (this.failedToCreate = !0); + if ( + (E.shaderSource(_e, be), + E.compileShader(_e), + !E.getShaderParameter(_e, E.COMPILE_STATUS)) + ) + throw new Error( + `Could not compile fragment shader: ${E.getShaderInfoLog( + _e + )}` + ); + E.attachShader(this.program, _e); + const Be = E.createShader(E.VERTEX_SHADER); + if (E.isContextLost()) return void (this.failedToCreate = !0); + if ( + (E.shaderSource(Be, Pe), + E.compileShader(Be), + !E.getShaderParameter(Be, E.COMPILE_STATUS)) + ) + throw new Error( + `Could not compile vertex shader: ${E.getShaderInfoLog( + Be + )}` + ); + E.attachShader(this.program, Be), (this.attributes = {}); + const rt = {}; + this.numAttributes = N.length; + for (let Ge = 0; Ge < this.numAttributes; Ge++) + N[Ge] && + (E.bindAttribLocation(this.program, Ge, N[Ge]), + (this.attributes[N[Ge]] = Ge)); + if ( + (E.linkProgram(this.program), + !E.getProgramParameter(this.program, E.LINK_STATUS)) + ) + throw new Error( + `Program failed to link: ${E.getProgramInfoLog( + this.program + )}` + ); + E.deleteShader(Be), E.deleteShader(_e); + for (let Ge = 0; Ge < ve.length; Ge++) { + const Xe = ve[Ge]; + if (Xe && !rt[Xe]) { + const tt = E.getUniformLocation(this.program, Xe); + tt && (rt[Xe] = tt); + } + } + (this.fixedUniforms = u(e, rt)), + (this.terrainUniforms = ((Ge, Xe) => ({ + u_depth: new s.bP(Ge, Xe.u_depth), + u_terrain: new s.bP(Ge, Xe.u_terrain), + u_terrain_dim: new s.bg(Ge, Xe.u_terrain_dim), + u_terrain_matrix: new s.bR(Ge, Xe.u_terrain_matrix), + u_terrain_unpack: new s.bS(Ge, Xe.u_terrain_unpack), + u_terrain_exaggeration: new s.bg( + Ge, + Xe.u_terrain_exaggeration + ), + }))(e, rt)), + (this.projectionUniforms = ((Ge, Xe) => ({ + u_projection_matrix: new s.bR(Ge, Xe.u_projection_matrix), + u_projection_tile_mercator_coords: new s.bS( + Ge, + Xe.u_projection_tile_mercator_coords + ), + u_projection_clipping_plane: new s.bS( + Ge, + Xe.u_projection_clipping_plane + ), + u_projection_transition: new s.bg( + Ge, + Xe.u_projection_transition + ), + u_projection_fallback_matrix: new s.bR( + Ge, + Xe.u_projection_fallback_matrix + ), + }))(e, rt)), + (this.binderUniforms = l ? l.getUniforms(e, rt) : []); + } + draw( + e, + i, + l, + u, + d, + g, + w, + C, + P, + E, + R, + D, + N, + G, + te, + Q, + ae, + ce, + ve + ) { + const me = e.gl; + if (this.failedToCreate) return; + if ( + (e.program.set(this.program), + e.setDepthMode(l), + e.setStencilMode(u), + e.setColorMode(d), + e.setCullFace(g), + C) + ) { + e.activeTexture.set(me.TEXTURE2), + me.bindTexture(me.TEXTURE_2D, C.depthTexture), + e.activeTexture.set(me.TEXTURE3), + me.bindTexture(me.TEXTURE_2D, C.texture); + for (const Pe in this.terrainUniforms) + this.terrainUniforms[Pe].set(C[Pe]); + } + if (P) + for (const Pe in P) + this.projectionUniforms[Lc[Pe]].set(P[Pe]); + if (w) + for (const Pe in this.fixedUniforms) + this.fixedUniforms[Pe].set(w[Pe]); + Q && Q.setUniforms(e, this.binderUniforms, G, { zoom: te }); + let be = 0; + switch (i) { + case me.LINES: + be = 2; + break; + case me.TRIANGLES: + be = 3; + break; + case me.LINE_STRIP: + be = 1; + } + for (const Pe of N.get()) { + const _e = Pe.vaos || (Pe.vaos = {}); + (_e[E] || (_e[E] = new Cp())).bind( + e, + this, + R, + Q ? Q.getPaintVertexBuffers() : [], + D, + Pe.vertexOffset, + ae, + ce, + ve + ), + me.drawElements( + i, + Pe.primitiveLength * be, + me.UNSIGNED_SHORT, + Pe.primitiveOffset * be * 2 + ); + } + } + } + function bl(h, e, i) { + const l = 1 / s.aC(i, 1, e.transform.tileZoom), + u = Math.pow(2, i.tileID.overscaledZ), + d = (i.tileSize * Math.pow(2, e.transform.tileZoom)) / u, + g = d * (i.tileID.canonical.x + i.tileID.wrap * u), + w = d * i.tileID.canonical.y; + return { + u_image: 0, + u_texsize: i.imageAtlasTexture.size, + u_scale: [l, h.fromScale, h.toScale], + u_fade: h.t, + u_pixel_coord_upper: [g >> 16, w >> 16], + u_pixel_coord_lower: [65535 & g, 65535 & w], + }; + } + const Pa = (h, e, i, l) => { + const u = h.style.light, + d = u.properties.get("position"), + g = [d.x, d.y, d.z], + w = s.bV(); + u.properties.get("anchor") === "viewport" && + s.bW(w, h.transform.bearingInRadians), + s.bX(g, g, w); + const C = h.transform.transformLightDirection(g), + P = u.properties.get("color"); + return { + u_lightpos: g, + u_lightpos_globe: C, + u_lightintensity: u.properties.get("intensity"), + u_lightcolor: [P.r, P.g, P.b], + u_vertical_gradient: +e, + u_opacity: i, + u_fill_translate: l, + }; + }, + Sp = (h, e, i, l, u, d, g) => + s.e(Pa(h, e, i, l), bl(d, h, g), { + u_height_factor: + -Math.pow(2, u.overscaledZ) / g.tileSize / 8, + }), + wl = (h, e, i, l) => s.e(bl(e, h, i), { u_fill_translate: l }), + Rs = (h, e) => ({ u_world: h, u_fill_translate: e }), + Bs = (h, e, i, l, u) => s.e(wl(h, e, i, u), { u_world: l }), + Pp = (h, e, i, l, u) => { + const d = h.transform; + let g, + w, + C = 0; + if (i.paint.get("circle-pitch-alignment") === "map") { + const P = s.aC(e, 1, d.zoom); + (g = !0), + (w = [P, P]), + (C = + (P / (s.$ * Math.pow(2, e.tileID.overscaledZ))) * + 2 * + Math.PI * + u); + } else (g = !1), (w = d.pixelsToGLUnits); + return { + u_camera_to_center_distance: d.cameraToCenterDistance, + u_scale_with_map: +( + i.paint.get("circle-pitch-scale") === "map" + ), + u_pitch_with_map: +g, + u_device_pixel_ratio: h.pixelRatio, + u_extrude_scale: w, + u_globe_extrude_scale: C, + u_translate: l, + }; + }, + Tl = (h) => ({ + u_pixel_extrude_scale: [1 / h.width, 1 / h.height], + }), + Ip = (h) => ({ u_viewport_size: [h.width, h.height] }), + Ao = (h, e = 1) => ({ + u_color: h, + u_overlay: 0, + u_overlay_scale: e, + }), + Nh = (h, e, i, l) => { + const u = + (s.aC(h, 1, e) / + (s.$ * Math.pow(2, h.tileID.overscaledZ))) * + 2 * + Math.PI * + l; + return { + u_extrude_scale: s.aC(h, 1, e), + u_intensity: i, + u_globe_extrude_scale: u, + }; + }, + Rc = (h, e, i, l) => { + const u = s.L(); + s.bY(u, 0, h.width, h.height, 0, 0, 1); + const d = h.context.gl; + return { + u_matrix: u, + u_world: [d.drawingBufferWidth, d.drawingBufferHeight], + u_image: i, + u_color_ramp: l, + u_opacity: e.paint.get("heatmap-opacity"), + }; + }, + Mp = (h, e, i) => { + const l = i.paint.get("hillshade-accent-color"); + let u; + switch (i.paint.get("hillshade-method")) { + case "basic": + u = 4; + break; + case "combined": + u = 1; + break; + case "igor": + u = 2; + break; + case "multidirectional": + u = 3; + break; + default: + u = 0; + } + const d = i.getIlluminationProperties(); + for (let g = 0; g < d.directionRadians.length; g++) + i.paint.get("hillshade-illumination-anchor") === + "viewport" && + (d.directionRadians[g] += h.transform.bearingInRadians); + return { + u_image: 0, + u_latrange: Bc(0, e.tileID), + u_exaggeration: i.paint.get("hillshade-exaggeration"), + u_altitudes: d.altitudeRadians, + u_azimuths: d.directionRadians, + u_accent: l, + u_method: u, + u_highlights: d.highlightColor, + u_shadows: d.shadowColor, + }; + }, + jh = (h, e) => { + const i = e.stride, + l = s.L(); + return ( + s.bY(l, 0, s.$, -s.$, 0, 0, 1), + s.M(l, l, [0, -s.$, 0]), + { + u_matrix: l, + u_image: 1, + u_dimension: [i, i], + u_zoom: h.overscaledZ, + u_unpack: e.getUnpackVector(), + } + ); + }; + function Bc(h, e) { + const i = Math.pow(2, e.canonical.z), + l = e.canonical.y; + return [ + new s.a1(0, l / i).toLngLat().lat, + new s.a1(0, (l + 1) / i).toLngLat().lat, + ]; + } + const Vh = (h, e, i = 0) => ({ + u_image: 0, + u_unpack: e.getUnpackVector(), + u_dimension: [e.stride, e.stride], + u_elevation_stops: 1, + u_color_stops: 4, + u_color_ramp_size: i, + u_opacity: h.paint.get("color-relief-opacity"), + }), + Cl = (h, e, i, l) => { + const u = h.transform; + return { + u_translation: Oc(h, e, i), + u_ratio: l / s.aC(e, 1, u.zoom), + u_device_pixel_ratio: h.pixelRatio, + u_units_to_pixels: [ + 1 / u.pixelsToGLUnits[0], + 1 / u.pixelsToGLUnits[1], + ], + }; + }, + qh = (h, e, i, l, u) => + s.e(Cl(h, e, i, l), { u_image: 0, u_image_height: u }), + Zh = (h, e, i, l, u) => { + const d = h.transform, + g = Fc(e, d); + return { + u_translation: Oc(h, e, i), + u_texsize: e.imageAtlasTexture.size, + u_ratio: l / s.aC(e, 1, d.zoom), + u_device_pixel_ratio: h.pixelRatio, + u_image: 0, + u_scale: [g, u.fromScale, u.toScale], + u_fade: u.t, + u_units_to_pixels: [ + 1 / d.pixelsToGLUnits[0], + 1 / d.pixelsToGLUnits[1], + ], + }; + }, + Eo = (h, e, i, l, u, d) => { + const g = h.lineAtlas, + w = Fc(e, h.transform), + C = i.layout.get("line-cap") === "round", + P = g.getDash(u.from, C), + E = g.getDash(u.to, C), + R = P.width * d.fromScale, + D = E.width * d.toScale; + return s.e(Cl(h, e, i, l), { + u_patternscale_a: [w / R, -P.height / 2], + u_patternscale_b: [w / D, -E.height / 2], + u_sdfgamma: + g.width / (256 * Math.min(R, D) * h.pixelRatio) / 2, + u_image: 0, + u_tex_y_a: P.y, + u_tex_y_b: E.y, + u_mix: d.t, + }); + }; + function Fc(h, e) { + return 1 / s.aC(h, 1, e.tileZoom); + } + function Oc(h, e, i) { + return s.aD( + h.transform, + e, + i.paint.get("line-translate"), + i.paint.get("line-translate-anchor") + ); + } + const Fs = (h, e, i, l, u) => { + return { + u_tl_parent: h, + u_scale_parent: e, + u_buffer_scale: 1, + u_fade_t: i.mix, + u_opacity: i.opacity * l.paint.get("raster-opacity"), + u_image0: 0, + u_image1: 1, + u_brightness_low: l.paint.get("raster-brightness-min"), + u_brightness_high: l.paint.get("raster-brightness-max"), + u_saturation_factor: + ((g = l.paint.get("raster-saturation")), + g > 0 ? 1 - 1 / (1.001 - g) : -g), + u_contrast_factor: + ((d = l.paint.get("raster-contrast")), + d > 0 ? 1 / (1 - d) : 1 + d), + u_spin_weights: kp(l.paint.get("raster-hue-rotate")), + u_coords_top: [u[0].x, u[0].y, u[1].x, u[1].y], + u_coords_bottom: [u[3].x, u[3].y, u[2].x, u[2].y], + }; + var d, g; + }; + function kp(h) { + h *= Math.PI / 180; + const e = Math.sin(h), + i = Math.cos(h); + return [ + (2 * i + 1) / 3, + (-Math.sqrt(3) * e - i + 1) / 3, + (Math.sqrt(3) * e - i + 1) / 3, + ]; + } + const Os = (h, e, i, l, u, d, g, w, C, P, E, R, D) => { + const N = g.transform; + return { + u_is_size_zoom_constant: +( + h === "constant" || h === "source" + ), + u_is_size_feature_constant: +( + h === "constant" || h === "camera" + ), + u_size_t: e ? e.uSizeT : 0, + u_size: e ? e.uSize : 0, + u_camera_to_center_distance: N.cameraToCenterDistance, + u_pitch: (N.pitch / 360) * 2 * Math.PI, + u_rotate_symbol: +i, + u_aspect_ratio: N.width / N.height, + u_fade_change: g.options.fadeDuration + ? g.symbolFadeChange + : 1, + u_label_plane_matrix: w, + u_coord_matrix: C, + u_is_text: +E, + u_pitch_with_map: +l, + u_is_along_line: u, + u_is_variable_anchor: d, + u_texsize: R, + u_texture: 0, + u_translation: P, + u_pitched_scale: D, + }; + }, + Uh = (h, e, i, l, u, d, g, w, C, P, E, R, D, N) => { + const G = g.transform; + return s.e(Os(h, e, i, l, u, d, g, w, C, P, E, R, N), { + u_gamma_scale: l + ? Math.cos((G.pitch * Math.PI) / 180) * + G.cameraToCenterDistance + : 1, + u_device_pixel_ratio: g.pixelRatio, + u_is_halo: 1, + }); + }, + Ap = (h, e, i, l, u, d, g, w, C, P, E, R, D) => + s.e(Uh(h, e, i, l, u, d, g, w, C, P, !0, E, 0, D), { + u_texsize_icon: R, + u_texture_icon: 1, + }), + $h = (h, e) => ({ u_opacity: h, u_color: e }), + Gh = (h, e, i, l, u) => + s.e( + (function (d, g, w, C) { + const P = w.imageManager.getPattern(d.from.toString()), + E = w.imageManager.getPattern(d.to.toString()), + { width: R, height: D } = w.imageManager.getPixelSize(), + N = Math.pow(2, C.tileID.overscaledZ), + G = + (C.tileSize * Math.pow(2, w.transform.tileZoom)) / N, + te = G * (C.tileID.canonical.x + C.tileID.wrap * N), + Q = G * C.tileID.canonical.y; + return { + u_image: 0, + u_pattern_tl_a: P.tl, + u_pattern_br_a: P.br, + u_pattern_tl_b: E.tl, + u_pattern_br_b: E.br, + u_texsize: [R, D], + u_mix: g.t, + u_pattern_size_a: P.displaySize, + u_pattern_size_b: E.displaySize, + u_scale_a: g.fromScale, + u_scale_b: g.toScale, + u_tile_units_to_pixels: + 1 / s.aC(C, 1, w.transform.tileZoom), + u_pixel_coord_upper: [te >> 16, Q >> 16], + u_pixel_coord_lower: [65535 & te, 65535 & Q], + }; + })(i, u, e, l), + { u_opacity: h } + ), + Nc = (h, e) => {}, + jc = { + fillExtrusion: (h, e) => ({ + u_lightpos: new s.bT(h, e.u_lightpos), + u_lightpos_globe: new s.bT(h, e.u_lightpos_globe), + u_lightintensity: new s.bg(h, e.u_lightintensity), + u_lightcolor: new s.bT(h, e.u_lightcolor), + u_vertical_gradient: new s.bg(h, e.u_vertical_gradient), + u_opacity: new s.bg(h, e.u_opacity), + u_fill_translate: new s.bU(h, e.u_fill_translate), + }), + fillExtrusionPattern: (h, e) => ({ + u_lightpos: new s.bT(h, e.u_lightpos), + u_lightpos_globe: new s.bT(h, e.u_lightpos_globe), + u_lightintensity: new s.bg(h, e.u_lightintensity), + u_lightcolor: new s.bT(h, e.u_lightcolor), + u_vertical_gradient: new s.bg(h, e.u_vertical_gradient), + u_height_factor: new s.bg(h, e.u_height_factor), + u_opacity: new s.bg(h, e.u_opacity), + u_fill_translate: new s.bU(h, e.u_fill_translate), + u_image: new s.bP(h, e.u_image), + u_texsize: new s.bU(h, e.u_texsize), + u_pixel_coord_upper: new s.bU(h, e.u_pixel_coord_upper), + u_pixel_coord_lower: new s.bU(h, e.u_pixel_coord_lower), + u_scale: new s.bT(h, e.u_scale), + u_fade: new s.bg(h, e.u_fade), + }), + fill: (h, e) => ({ + u_fill_translate: new s.bU(h, e.u_fill_translate), + }), + fillPattern: (h, e) => ({ + u_image: new s.bP(h, e.u_image), + u_texsize: new s.bU(h, e.u_texsize), + u_pixel_coord_upper: new s.bU(h, e.u_pixel_coord_upper), + u_pixel_coord_lower: new s.bU(h, e.u_pixel_coord_lower), + u_scale: new s.bT(h, e.u_scale), + u_fade: new s.bg(h, e.u_fade), + u_fill_translate: new s.bU(h, e.u_fill_translate), + }), + fillOutline: (h, e) => ({ + u_world: new s.bU(h, e.u_world), + u_fill_translate: new s.bU(h, e.u_fill_translate), + }), + fillOutlinePattern: (h, e) => ({ + u_world: new s.bU(h, e.u_world), + u_image: new s.bP(h, e.u_image), + u_texsize: new s.bU(h, e.u_texsize), + u_pixel_coord_upper: new s.bU(h, e.u_pixel_coord_upper), + u_pixel_coord_lower: new s.bU(h, e.u_pixel_coord_lower), + u_scale: new s.bT(h, e.u_scale), + u_fade: new s.bg(h, e.u_fade), + u_fill_translate: new s.bU(h, e.u_fill_translate), + }), + circle: (h, e) => ({ + u_camera_to_center_distance: new s.bg( + h, + e.u_camera_to_center_distance + ), + u_scale_with_map: new s.bP(h, e.u_scale_with_map), + u_pitch_with_map: new s.bP(h, e.u_pitch_with_map), + u_extrude_scale: new s.bU(h, e.u_extrude_scale), + u_device_pixel_ratio: new s.bg(h, e.u_device_pixel_ratio), + u_globe_extrude_scale: new s.bg(h, e.u_globe_extrude_scale), + u_translate: new s.bU(h, e.u_translate), + }), + collisionBox: (h, e) => ({ + u_pixel_extrude_scale: new s.bU(h, e.u_pixel_extrude_scale), + }), + collisionCircle: (h, e) => ({ + u_viewport_size: new s.bU(h, e.u_viewport_size), + }), + debug: (h, e) => ({ + u_color: new s.bQ(h, e.u_color), + u_overlay: new s.bP(h, e.u_overlay), + u_overlay_scale: new s.bg(h, e.u_overlay_scale), + }), + depth: Nc, + clippingMask: Nc, + heatmap: (h, e) => ({ + u_extrude_scale: new s.bg(h, e.u_extrude_scale), + u_intensity: new s.bg(h, e.u_intensity), + u_globe_extrude_scale: new s.bg(h, e.u_globe_extrude_scale), + }), + heatmapTexture: (h, e) => ({ + u_matrix: new s.bR(h, e.u_matrix), + u_world: new s.bU(h, e.u_world), + u_image: new s.bP(h, e.u_image), + u_color_ramp: new s.bP(h, e.u_color_ramp), + u_opacity: new s.bg(h, e.u_opacity), + }), + hillshade: (h, e) => ({ + u_image: new s.bP(h, e.u_image), + u_latrange: new s.bU(h, e.u_latrange), + u_exaggeration: new s.bg(h, e.u_exaggeration), + u_altitudes: new s.b_(h, e.u_altitudes), + u_azimuths: new s.b_(h, e.u_azimuths), + u_accent: new s.bQ(h, e.u_accent), + u_method: new s.bP(h, e.u_method), + u_shadows: new s.bZ(h, e.u_shadows), + u_highlights: new s.bZ(h, e.u_highlights), + }), + hillshadePrepare: (h, e) => ({ + u_matrix: new s.bR(h, e.u_matrix), + u_image: new s.bP(h, e.u_image), + u_dimension: new s.bU(h, e.u_dimension), + u_zoom: new s.bg(h, e.u_zoom), + u_unpack: new s.bS(h, e.u_unpack), + }), + colorRelief: (h, e) => ({ + u_image: new s.bP(h, e.u_image), + u_unpack: new s.bS(h, e.u_unpack), + u_dimension: new s.bU(h, e.u_dimension), + u_elevation_stops: new s.bP(h, e.u_elevation_stops), + u_color_stops: new s.bP(h, e.u_color_stops), + u_color_ramp_size: new s.bP(h, e.u_color_ramp_size), + u_opacity: new s.bg(h, e.u_opacity), + }), + line: (h, e) => ({ + u_translation: new s.bU(h, e.u_translation), + u_ratio: new s.bg(h, e.u_ratio), + u_device_pixel_ratio: new s.bg(h, e.u_device_pixel_ratio), + u_units_to_pixels: new s.bU(h, e.u_units_to_pixels), + }), + lineGradient: (h, e) => ({ + u_translation: new s.bU(h, e.u_translation), + u_ratio: new s.bg(h, e.u_ratio), + u_device_pixel_ratio: new s.bg(h, e.u_device_pixel_ratio), + u_units_to_pixels: new s.bU(h, e.u_units_to_pixels), + u_image: new s.bP(h, e.u_image), + u_image_height: new s.bg(h, e.u_image_height), + }), + linePattern: (h, e) => ({ + u_translation: new s.bU(h, e.u_translation), + u_texsize: new s.bU(h, e.u_texsize), + u_ratio: new s.bg(h, e.u_ratio), + u_device_pixel_ratio: new s.bg(h, e.u_device_pixel_ratio), + u_image: new s.bP(h, e.u_image), + u_units_to_pixels: new s.bU(h, e.u_units_to_pixels), + u_scale: new s.bT(h, e.u_scale), + u_fade: new s.bg(h, e.u_fade), + }), + lineSDF: (h, e) => ({ + u_translation: new s.bU(h, e.u_translation), + u_ratio: new s.bg(h, e.u_ratio), + u_device_pixel_ratio: new s.bg(h, e.u_device_pixel_ratio), + u_units_to_pixels: new s.bU(h, e.u_units_to_pixels), + u_patternscale_a: new s.bU(h, e.u_patternscale_a), + u_patternscale_b: new s.bU(h, e.u_patternscale_b), + u_sdfgamma: new s.bg(h, e.u_sdfgamma), + u_image: new s.bP(h, e.u_image), + u_tex_y_a: new s.bg(h, e.u_tex_y_a), + u_tex_y_b: new s.bg(h, e.u_tex_y_b), + u_mix: new s.bg(h, e.u_mix), + }), + raster: (h, e) => ({ + u_tl_parent: new s.bU(h, e.u_tl_parent), + u_scale_parent: new s.bg(h, e.u_scale_parent), + u_buffer_scale: new s.bg(h, e.u_buffer_scale), + u_fade_t: new s.bg(h, e.u_fade_t), + u_opacity: new s.bg(h, e.u_opacity), + u_image0: new s.bP(h, e.u_image0), + u_image1: new s.bP(h, e.u_image1), + u_brightness_low: new s.bg(h, e.u_brightness_low), + u_brightness_high: new s.bg(h, e.u_brightness_high), + u_saturation_factor: new s.bg(h, e.u_saturation_factor), + u_contrast_factor: new s.bg(h, e.u_contrast_factor), + u_spin_weights: new s.bT(h, e.u_spin_weights), + u_coords_top: new s.bS(h, e.u_coords_top), + u_coords_bottom: new s.bS(h, e.u_coords_bottom), + }), + symbolIcon: (h, e) => ({ + u_is_size_zoom_constant: new s.bP( + h, + e.u_is_size_zoom_constant + ), + u_is_size_feature_constant: new s.bP( + h, + e.u_is_size_feature_constant + ), + u_size_t: new s.bg(h, e.u_size_t), + u_size: new s.bg(h, e.u_size), + u_camera_to_center_distance: new s.bg( + h, + e.u_camera_to_center_distance + ), + u_pitch: new s.bg(h, e.u_pitch), + u_rotate_symbol: new s.bP(h, e.u_rotate_symbol), + u_aspect_ratio: new s.bg(h, e.u_aspect_ratio), + u_fade_change: new s.bg(h, e.u_fade_change), + u_label_plane_matrix: new s.bR(h, e.u_label_plane_matrix), + u_coord_matrix: new s.bR(h, e.u_coord_matrix), + u_is_text: new s.bP(h, e.u_is_text), + u_pitch_with_map: new s.bP(h, e.u_pitch_with_map), + u_is_along_line: new s.bP(h, e.u_is_along_line), + u_is_variable_anchor: new s.bP(h, e.u_is_variable_anchor), + u_texsize: new s.bU(h, e.u_texsize), + u_texture: new s.bP(h, e.u_texture), + u_translation: new s.bU(h, e.u_translation), + u_pitched_scale: new s.bg(h, e.u_pitched_scale), + }), + symbolSDF: (h, e) => ({ + u_is_size_zoom_constant: new s.bP( + h, + e.u_is_size_zoom_constant + ), + u_is_size_feature_constant: new s.bP( + h, + e.u_is_size_feature_constant + ), + u_size_t: new s.bg(h, e.u_size_t), + u_size: new s.bg(h, e.u_size), + u_camera_to_center_distance: new s.bg( + h, + e.u_camera_to_center_distance + ), + u_pitch: new s.bg(h, e.u_pitch), + u_rotate_symbol: new s.bP(h, e.u_rotate_symbol), + u_aspect_ratio: new s.bg(h, e.u_aspect_ratio), + u_fade_change: new s.bg(h, e.u_fade_change), + u_label_plane_matrix: new s.bR(h, e.u_label_plane_matrix), + u_coord_matrix: new s.bR(h, e.u_coord_matrix), + u_is_text: new s.bP(h, e.u_is_text), + u_pitch_with_map: new s.bP(h, e.u_pitch_with_map), + u_is_along_line: new s.bP(h, e.u_is_along_line), + u_is_variable_anchor: new s.bP(h, e.u_is_variable_anchor), + u_texsize: new s.bU(h, e.u_texsize), + u_texture: new s.bP(h, e.u_texture), + u_gamma_scale: new s.bg(h, e.u_gamma_scale), + u_device_pixel_ratio: new s.bg(h, e.u_device_pixel_ratio), + u_is_halo: new s.bP(h, e.u_is_halo), + u_translation: new s.bU(h, e.u_translation), + u_pitched_scale: new s.bg(h, e.u_pitched_scale), + }), + symbolTextAndIcon: (h, e) => ({ + u_is_size_zoom_constant: new s.bP( + h, + e.u_is_size_zoom_constant + ), + u_is_size_feature_constant: new s.bP( + h, + e.u_is_size_feature_constant + ), + u_size_t: new s.bg(h, e.u_size_t), + u_size: new s.bg(h, e.u_size), + u_camera_to_center_distance: new s.bg( + h, + e.u_camera_to_center_distance + ), + u_pitch: new s.bg(h, e.u_pitch), + u_rotate_symbol: new s.bP(h, e.u_rotate_symbol), + u_aspect_ratio: new s.bg(h, e.u_aspect_ratio), + u_fade_change: new s.bg(h, e.u_fade_change), + u_label_plane_matrix: new s.bR(h, e.u_label_plane_matrix), + u_coord_matrix: new s.bR(h, e.u_coord_matrix), + u_is_text: new s.bP(h, e.u_is_text), + u_pitch_with_map: new s.bP(h, e.u_pitch_with_map), + u_is_along_line: new s.bP(h, e.u_is_along_line), + u_is_variable_anchor: new s.bP(h, e.u_is_variable_anchor), + u_texsize: new s.bU(h, e.u_texsize), + u_texsize_icon: new s.bU(h, e.u_texsize_icon), + u_texture: new s.bP(h, e.u_texture), + u_texture_icon: new s.bP(h, e.u_texture_icon), + u_gamma_scale: new s.bg(h, e.u_gamma_scale), + u_device_pixel_ratio: new s.bg(h, e.u_device_pixel_ratio), + u_is_halo: new s.bP(h, e.u_is_halo), + u_translation: new s.bU(h, e.u_translation), + u_pitched_scale: new s.bg(h, e.u_pitched_scale), + }), + background: (h, e) => ({ + u_opacity: new s.bg(h, e.u_opacity), + u_color: new s.bQ(h, e.u_color), + }), + backgroundPattern: (h, e) => ({ + u_opacity: new s.bg(h, e.u_opacity), + u_image: new s.bP(h, e.u_image), + u_pattern_tl_a: new s.bU(h, e.u_pattern_tl_a), + u_pattern_br_a: new s.bU(h, e.u_pattern_br_a), + u_pattern_tl_b: new s.bU(h, e.u_pattern_tl_b), + u_pattern_br_b: new s.bU(h, e.u_pattern_br_b), + u_texsize: new s.bU(h, e.u_texsize), + u_mix: new s.bg(h, e.u_mix), + u_pattern_size_a: new s.bU(h, e.u_pattern_size_a), + u_pattern_size_b: new s.bU(h, e.u_pattern_size_b), + u_scale_a: new s.bg(h, e.u_scale_a), + u_scale_b: new s.bg(h, e.u_scale_b), + u_pixel_coord_upper: new s.bU(h, e.u_pixel_coord_upper), + u_pixel_coord_lower: new s.bU(h, e.u_pixel_coord_lower), + u_tile_units_to_pixels: new s.bg( + h, + e.u_tile_units_to_pixels + ), + }), + terrain: (h, e) => ({ + u_texture: new s.bP(h, e.u_texture), + u_ele_delta: new s.bg(h, e.u_ele_delta), + u_fog_matrix: new s.bR(h, e.u_fog_matrix), + u_fog_color: new s.bQ(h, e.u_fog_color), + u_fog_ground_blend: new s.bg(h, e.u_fog_ground_blend), + u_fog_ground_blend_opacity: new s.bg( + h, + e.u_fog_ground_blend_opacity + ), + u_horizon_color: new s.bQ(h, e.u_horizon_color), + u_horizon_fog_blend: new s.bg(h, e.u_horizon_fog_blend), + u_is_globe_mode: new s.bg(h, e.u_is_globe_mode), + }), + terrainDepth: (h, e) => ({ + u_ele_delta: new s.bg(h, e.u_ele_delta), + }), + terrainCoords: (h, e) => ({ + u_texture: new s.bP(h, e.u_texture), + u_terrain_coords_id: new s.bg(h, e.u_terrain_coords_id), + u_ele_delta: new s.bg(h, e.u_ele_delta), + }), + projectionErrorMeasurement: (h, e) => ({ + u_input: new s.bg(h, e.u_input), + u_output_expected: new s.bg(h, e.u_output_expected), + }), + atmosphere: (h, e) => ({ + u_sun_pos: new s.bT(h, e.u_sun_pos), + u_atmosphere_blend: new s.bg(h, e.u_atmosphere_blend), + u_globe_position: new s.bT(h, e.u_globe_position), + u_globe_radius: new s.bg(h, e.u_globe_radius), + u_inv_proj_matrix: new s.bR(h, e.u_inv_proj_matrix), + }), + sky: (h, e) => ({ + u_sky_color: new s.bQ(h, e.u_sky_color), + u_horizon_color: new s.bQ(h, e.u_horizon_color), + u_horizon: new s.bU(h, e.u_horizon), + u_horizon_normal: new s.bU(h, e.u_horizon_normal), + u_sky_horizon_blend: new s.bg(h, e.u_sky_horizon_blend), + u_sky_blend: new s.bg(h, e.u_sky_blend), + }), + }; + class Hh { + constructor(e, i, l) { + this.context = e; + const u = e.gl; + (this.buffer = u.createBuffer()), + (this.dynamicDraw = !!l), + this.context.unbindVAO(), + e.bindElementBuffer.set(this.buffer), + u.bufferData( + u.ELEMENT_ARRAY_BUFFER, + i.arrayBuffer, + this.dynamicDraw ? u.DYNAMIC_DRAW : u.STATIC_DRAW + ), + this.dynamicDraw || delete i.arrayBuffer; + } + bind() { + this.context.bindElementBuffer.set(this.buffer); + } + updateData(e) { + const i = this.context.gl; + if (!this.dynamicDraw) + throw new Error( + "Attempted to update data while not in dynamic mode." + ); + this.context.unbindVAO(), + this.bind(), + i.bufferSubData(i.ELEMENT_ARRAY_BUFFER, 0, e.arrayBuffer); + } + destroy() { + this.buffer && + (this.context.gl.deleteBuffer(this.buffer), + delete this.buffer); + } + } + const Sl = { + Int8: "BYTE", + Uint8: "UNSIGNED_BYTE", + Int16: "SHORT", + Uint16: "UNSIGNED_SHORT", + Int32: "INT", + Uint32: "UNSIGNED_INT", + Float32: "FLOAT", + }; + class eo { + constructor(e, i, l, u) { + (this.length = i.length), + (this.attributes = l), + (this.itemSize = i.bytesPerElement), + (this.dynamicDraw = u), + (this.context = e); + const d = e.gl; + (this.buffer = d.createBuffer()), + e.bindVertexBuffer.set(this.buffer), + d.bufferData( + d.ARRAY_BUFFER, + i.arrayBuffer, + this.dynamicDraw ? d.DYNAMIC_DRAW : d.STATIC_DRAW + ), + this.dynamicDraw || delete i.arrayBuffer; + } + bind() { + this.context.bindVertexBuffer.set(this.buffer); + } + updateData(e) { + if (e.length !== this.length) + throw new Error( + `Length of new data is ${e.length}, which doesn't match current length of ${this.length}` + ); + const i = this.context.gl; + this.bind(), + i.bufferSubData(i.ARRAY_BUFFER, 0, e.arrayBuffer); + } + enableAttributes(e, i) { + for (let l = 0; l < this.attributes.length; l++) { + const u = i.attributes[this.attributes[l].name]; + u !== void 0 && e.enableVertexAttribArray(u); + } + } + setVertexAttribPointers(e, i, l) { + for (let u = 0; u < this.attributes.length; u++) { + const d = this.attributes[u], + g = i.attributes[d.name]; + g !== void 0 && + e.vertexAttribPointer( + g, + d.components, + e[Sl[d.type]], + !1, + this.itemSize, + d.offset + this.itemSize * (l || 0) + ); + } + } + destroy() { + this.buffer && + (this.context.gl.deleteBuffer(this.buffer), + delete this.buffer); + } + } + class Pn { + constructor(e) { + (this.gl = e.gl), + (this.default = this.getDefault()), + (this.current = this.default), + (this.dirty = !1); + } + get() { + return this.current; + } + set(e) {} + getDefault() { + return this.default; + } + setDefault() { + this.set(this.default); + } + } + class Vc extends Pn { + getDefault() { + return s.bf.transparent; + } + set(e) { + const i = this.current; + (e.r !== i.r || + e.g !== i.g || + e.b !== i.b || + e.a !== i.a || + this.dirty) && + (this.gl.clearColor(e.r, e.g, e.b, e.a), + (this.current = e), + (this.dirty = !1)); + } + } + class qc extends Pn { + getDefault() { + return 1; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.clearDepth(e), + (this.current = e), + (this.dirty = !1)); + } + } + class Wh extends Pn { + getDefault() { + return 0; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.clearStencil(e), + (this.current = e), + (this.dirty = !1)); + } + } + class Zc extends Pn { + getDefault() { + return [!0, !0, !0, !0]; + } + set(e) { + const i = this.current; + (e[0] !== i[0] || + e[1] !== i[1] || + e[2] !== i[2] || + e[3] !== i[3] || + this.dirty) && + (this.gl.colorMask(e[0], e[1], e[2], e[3]), + (this.current = e), + (this.dirty = !1)); + } + } + class zo extends Pn { + getDefault() { + return !0; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.depthMask(e), + (this.current = e), + (this.dirty = !1)); + } + } + class Uc extends Pn { + getDefault() { + return 255; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.stencilMask(e), + (this.current = e), + (this.dirty = !1)); + } + } + class Ep extends Pn { + getDefault() { + return { func: this.gl.ALWAYS, ref: 0, mask: 255 }; + } + set(e) { + const i = this.current; + (e.func !== i.func || + e.ref !== i.ref || + e.mask !== i.mask || + this.dirty) && + (this.gl.stencilFunc(e.func, e.ref, e.mask), + (this.current = e), + (this.dirty = !1)); + } + } + class zp extends Pn { + getDefault() { + const e = this.gl; + return [e.KEEP, e.KEEP, e.KEEP]; + } + set(e) { + const i = this.current; + (e[0] !== i[0] || + e[1] !== i[1] || + e[2] !== i[2] || + this.dirty) && + (this.gl.stencilOp(e[0], e[1], e[2]), + (this.current = e), + (this.dirty = !1)); + } + } + class Lp extends Pn { + getDefault() { + return !1; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + e ? i.enable(i.STENCIL_TEST) : i.disable(i.STENCIL_TEST), + (this.current = e), + (this.dirty = !1); + } + } + class Dp extends Pn { + getDefault() { + return [0, 1]; + } + set(e) { + const i = this.current; + (e[0] !== i[0] || e[1] !== i[1] || this.dirty) && + (this.gl.depthRange(e[0], e[1]), + (this.current = e), + (this.dirty = !1)); + } + } + class Xh extends Pn { + getDefault() { + return !1; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + e ? i.enable(i.DEPTH_TEST) : i.disable(i.DEPTH_TEST), + (this.current = e), + (this.dirty = !1); + } + } + class Rp extends Pn { + getDefault() { + return this.gl.LESS; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.depthFunc(e), + (this.current = e), + (this.dirty = !1)); + } + } + class Yh extends Pn { + getDefault() { + return !1; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + e ? i.enable(i.BLEND) : i.disable(i.BLEND), + (this.current = e), + (this.dirty = !1); + } + } + class Pl extends Pn { + getDefault() { + const e = this.gl; + return [e.ONE, e.ZERO]; + } + set(e) { + const i = this.current; + (e[0] !== i[0] || e[1] !== i[1] || this.dirty) && + (this.gl.blendFunc(e[0], e[1]), + (this.current = e), + (this.dirty = !1)); + } + } + class Il extends Pn { + getDefault() { + return s.bf.transparent; + } + set(e) { + const i = this.current; + (e.r !== i.r || + e.g !== i.g || + e.b !== i.b || + e.a !== i.a || + this.dirty) && + (this.gl.blendColor(e.r, e.g, e.b, e.a), + (this.current = e), + (this.dirty = !1)); + } + } + class Ml extends Pn { + getDefault() { + return this.gl.FUNC_ADD; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.blendEquation(e), + (this.current = e), + (this.dirty = !1)); + } + } + class $c extends Pn { + getDefault() { + return !1; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + e ? i.enable(i.CULL_FACE) : i.disable(i.CULL_FACE), + (this.current = e), + (this.dirty = !1); + } + } + class Lo extends Pn { + getDefault() { + return this.gl.BACK; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.cullFace(e), + (this.current = e), + (this.dirty = !1)); + } + } + class Ns extends Pn { + getDefault() { + return this.gl.CCW; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.frontFace(e), + (this.current = e), + (this.dirty = !1)); + } + } + class ts extends Pn { + getDefault() { + return null; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.useProgram(e), + (this.current = e), + (this.dirty = !1)); + } + } + class va extends Pn { + getDefault() { + return this.gl.TEXTURE0; + } + set(e) { + (e !== this.current || this.dirty) && + (this.gl.activeTexture(e), + (this.current = e), + (this.dirty = !1)); + } + } + class Kh extends Pn { + getDefault() { + const e = this.gl; + return [0, 0, e.drawingBufferWidth, e.drawingBufferHeight]; + } + set(e) { + const i = this.current; + (e[0] !== i[0] || + e[1] !== i[1] || + e[2] !== i[2] || + e[3] !== i[3] || + this.dirty) && + (this.gl.viewport(e[0], e[1], e[2], e[3]), + (this.current = e), + (this.dirty = !1)); + } + } + class Jh extends Pn { + getDefault() { + return null; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + i.bindFramebuffer(i.FRAMEBUFFER, e), + (this.current = e), + (this.dirty = !1); + } + } + class Gc extends Pn { + getDefault() { + return null; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + i.bindRenderbuffer(i.RENDERBUFFER, e), + (this.current = e), + (this.dirty = !1); + } + } + class Do extends Pn { + getDefault() { + return null; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + i.bindTexture(i.TEXTURE_2D, e), + (this.current = e), + (this.dirty = !1); + } + } + class kl extends Pn { + getDefault() { + return null; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + i.bindBuffer(i.ARRAY_BUFFER, e), + (this.current = e), + (this.dirty = !1); + } + } + class Al extends Pn { + getDefault() { + return null; + } + set(e) { + const i = this.gl; + i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, e), + (this.current = e), + (this.dirty = !1); + } + } + class js extends Pn { + getDefault() { + return null; + } + set(e) { + var i; + if (e === this.current && !this.dirty) return; + const l = this.gl; + ga(l) + ? l.bindVertexArray(e) + : (i = l.getExtension("OES_vertex_array_object")) === + null || + i === void 0 || + i.bindVertexArrayOES(e), + (this.current = e), + (this.dirty = !1); + } + } + class El extends Pn { + getDefault() { + return 4; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + i.pixelStorei(i.UNPACK_ALIGNMENT, e), + (this.current = e), + (this.dirty = !1); + } + } + class Qh extends Pn { + getDefault() { + return !1; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e), + (this.current = e), + (this.dirty = !1); + } + } + class rs extends Pn { + getDefault() { + return !1; + } + set(e) { + if (e === this.current && !this.dirty) return; + const i = this.gl; + i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, e), + (this.current = e), + (this.dirty = !1); + } + } + class fo extends Pn { + constructor(e, i) { + super(e), (this.context = e), (this.parent = i); + } + getDefault() { + return null; + } + } + class ed extends fo { + setDirty() { + this.dirty = !0; + } + set(e) { + if (e === this.current && !this.dirty) return; + this.context.bindFramebuffer.set(this.parent); + const i = this.gl; + i.framebufferTexture2D( + i.FRAMEBUFFER, + i.COLOR_ATTACHMENT0, + i.TEXTURE_2D, + e, + 0 + ), + (this.current = e), + (this.dirty = !1); + } + } + class Hc extends fo { + set(e) { + if (e === this.current && !this.dirty) return; + this.context.bindFramebuffer.set(this.parent); + const i = this.gl; + i.framebufferRenderbuffer( + i.FRAMEBUFFER, + i.DEPTH_ATTACHMENT, + i.RENDERBUFFER, + e + ), + (this.current = e), + (this.dirty = !1); + } + } + class sn extends fo { + set(e) { + if (e === this.current && !this.dirty) return; + this.context.bindFramebuffer.set(this.parent); + const i = this.gl; + i.framebufferRenderbuffer( + i.FRAMEBUFFER, + i.DEPTH_STENCIL_ATTACHMENT, + i.RENDERBUFFER, + e + ), + (this.current = e), + (this.dirty = !1); + } + } + const Vs = "Framebuffer is not complete"; + class Bp { + constructor(e, i, l, u, d) { + (this.context = e), (this.width = i), (this.height = l); + const g = e.gl, + w = (this.framebuffer = g.createFramebuffer()); + if (((this.colorAttachment = new ed(e, w)), u)) + this.depthAttachment = d ? new sn(e, w) : new Hc(e, w); + else if (d) + throw new Error("Stencil cannot be set without depth"); + if ( + g.checkFramebufferStatus(g.FRAMEBUFFER) !== + g.FRAMEBUFFER_COMPLETE + ) + throw new Error(Vs); + } + destroy() { + const e = this.context.gl, + i = this.colorAttachment.get(); + if ((i && e.deleteTexture(i), this.depthAttachment)) { + const l = this.depthAttachment.get(); + l && e.deleteRenderbuffer(l); + } + e.deleteFramebuffer(this.framebuffer); + } + } + class td { + constructor(e) { + var i, l; + if ( + ((this.gl = e), + (this.clearColor = new Vc(this)), + (this.clearDepth = new qc(this)), + (this.clearStencil = new Wh(this)), + (this.colorMask = new Zc(this)), + (this.depthMask = new zo(this)), + (this.stencilMask = new Uc(this)), + (this.stencilFunc = new Ep(this)), + (this.stencilOp = new zp(this)), + (this.stencilTest = new Lp(this)), + (this.depthRange = new Dp(this)), + (this.depthTest = new Xh(this)), + (this.depthFunc = new Rp(this)), + (this.blend = new Yh(this)), + (this.blendFunc = new Pl(this)), + (this.blendColor = new Il(this)), + (this.blendEquation = new Ml(this)), + (this.cullFace = new $c(this)), + (this.cullFaceSide = new Lo(this)), + (this.frontFace = new Ns(this)), + (this.program = new ts(this)), + (this.activeTexture = new va(this)), + (this.viewport = new Kh(this)), + (this.bindFramebuffer = new Jh(this)), + (this.bindRenderbuffer = new Gc(this)), + (this.bindTexture = new Do(this)), + (this.bindVertexBuffer = new kl(this)), + (this.bindElementBuffer = new Al(this)), + (this.bindVertexArray = new js(this)), + (this.pixelStoreUnpack = new El(this)), + (this.pixelStoreUnpackPremultiplyAlpha = new Qh(this)), + (this.pixelStoreUnpackFlipY = new rs(this)), + (this.extTextureFilterAnisotropic = + e.getExtension("EXT_texture_filter_anisotropic") || + e.getExtension("MOZ_EXT_texture_filter_anisotropic") || + e.getExtension("WEBKIT_EXT_texture_filter_anisotropic")), + this.extTextureFilterAnisotropic && + (this.extTextureFilterAnisotropicMax = e.getParameter( + this.extTextureFilterAnisotropic + .MAX_TEXTURE_MAX_ANISOTROPY_EXT + )), + (this.maxTextureSize = e.getParameter(e.MAX_TEXTURE_SIZE)), + ga(e)) + ) { + this.HALF_FLOAT = e.HALF_FLOAT; + const u = e.getExtension("EXT_color_buffer_half_float"); + (this.RGBA16F = + (i = e.RGBA16F) !== null && i !== void 0 + ? i + : u == null + ? void 0 + : u.RGBA16F_EXT), + (this.RGB16F = + (l = e.RGB16F) !== null && l !== void 0 + ? l + : u == null + ? void 0 + : u.RGB16F_EXT), + e.getExtension("EXT_color_buffer_float"); + } else { + e.getExtension("EXT_color_buffer_half_float"), + e.getExtension("OES_texture_half_float_linear"); + const u = e.getExtension("OES_texture_half_float"); + this.HALF_FLOAT = u == null ? void 0 : u.HALF_FLOAT_OES; + } + } + setDefault() { + this.unbindVAO(), + this.clearColor.setDefault(), + this.clearDepth.setDefault(), + this.clearStencil.setDefault(), + this.colorMask.setDefault(), + this.depthMask.setDefault(), + this.stencilMask.setDefault(), + this.stencilFunc.setDefault(), + this.stencilOp.setDefault(), + this.stencilTest.setDefault(), + this.depthRange.setDefault(), + this.depthTest.setDefault(), + this.depthFunc.setDefault(), + this.blend.setDefault(), + this.blendFunc.setDefault(), + this.blendColor.setDefault(), + this.blendEquation.setDefault(), + this.cullFace.setDefault(), + this.cullFaceSide.setDefault(), + this.frontFace.setDefault(), + this.program.setDefault(), + this.activeTexture.setDefault(), + this.bindFramebuffer.setDefault(), + this.pixelStoreUnpack.setDefault(), + this.pixelStoreUnpackPremultiplyAlpha.setDefault(), + this.pixelStoreUnpackFlipY.setDefault(); + } + setDirty() { + (this.clearColor.dirty = !0), + (this.clearDepth.dirty = !0), + (this.clearStencil.dirty = !0), + (this.colorMask.dirty = !0), + (this.depthMask.dirty = !0), + (this.stencilMask.dirty = !0), + (this.stencilFunc.dirty = !0), + (this.stencilOp.dirty = !0), + (this.stencilTest.dirty = !0), + (this.depthRange.dirty = !0), + (this.depthTest.dirty = !0), + (this.depthFunc.dirty = !0), + (this.blend.dirty = !0), + (this.blendFunc.dirty = !0), + (this.blendColor.dirty = !0), + (this.blendEquation.dirty = !0), + (this.cullFace.dirty = !0), + (this.cullFaceSide.dirty = !0), + (this.frontFace.dirty = !0), + (this.program.dirty = !0), + (this.activeTexture.dirty = !0), + (this.viewport.dirty = !0), + (this.bindFramebuffer.dirty = !0), + (this.bindRenderbuffer.dirty = !0), + (this.bindTexture.dirty = !0), + (this.bindVertexBuffer.dirty = !0), + (this.bindElementBuffer.dirty = !0), + (this.bindVertexArray.dirty = !0), + (this.pixelStoreUnpack.dirty = !0), + (this.pixelStoreUnpackPremultiplyAlpha.dirty = !0), + (this.pixelStoreUnpackFlipY.dirty = !0); + } + createIndexBuffer(e, i) { + return new Hh(this, e, i); + } + createVertexBuffer(e, i, l) { + return new eo(this, e, i, l); + } + createRenderbuffer(e, i, l) { + const u = this.gl, + d = u.createRenderbuffer(); + return ( + this.bindRenderbuffer.set(d), + u.renderbufferStorage(u.RENDERBUFFER, e, i, l), + this.bindRenderbuffer.set(null), + d + ); + } + createFramebuffer(e, i, l, u) { + return new Bp(this, e, i, l, u); + } + clear({ color: e, depth: i, stencil: l }) { + const u = this.gl; + let d = 0; + e && + ((d |= u.COLOR_BUFFER_BIT), + this.clearColor.set(e), + this.colorMask.set([!0, !0, !0, !0])), + i !== void 0 && + ((d |= u.DEPTH_BUFFER_BIT), + this.depthRange.set([0, 1]), + this.clearDepth.set(i), + this.depthMask.set(!0)), + l !== void 0 && + ((d |= u.STENCIL_BUFFER_BIT), + this.clearStencil.set(l), + this.stencilMask.set(255)), + u.clear(d); + } + setCullFace(e) { + e.enable === !1 + ? this.cullFace.set(!1) + : (this.cullFace.set(!0), + this.cullFaceSide.set(e.mode), + this.frontFace.set(e.frontFace)); + } + setDepthMode(e) { + e.func !== this.gl.ALWAYS || e.mask + ? (this.depthTest.set(!0), + this.depthFunc.set(e.func), + this.depthMask.set(e.mask), + this.depthRange.set(e.range)) + : this.depthTest.set(!1); + } + setStencilMode(e) { + e.test.func !== this.gl.ALWAYS || e.mask + ? (this.stencilTest.set(!0), + this.stencilMask.set(e.mask), + this.stencilOp.set([e.fail, e.depthFail, e.pass]), + this.stencilFunc.set({ + func: e.test.func, + ref: e.ref, + mask: e.test.mask, + })) + : this.stencilTest.set(!1); + } + setColorMode(e) { + s.bH(e.blendFunction, zn.Replace) + ? this.blend.set(!1) + : (this.blend.set(!0), + this.blendFunc.set(e.blendFunction), + this.blendColor.set(e.blendColor)), + this.colorMask.set(e.mask); + } + createVertexArray() { + var e; + return ga(this.gl) + ? this.gl.createVertexArray() + : (e = this.gl.getExtension("OES_vertex_array_object")) === + null || e === void 0 + ? void 0 + : e.createVertexArrayOES(); + } + deleteVertexArray(e) { + var i; + return ga(this.gl) + ? this.gl.deleteVertexArray(e) + : (i = this.gl.getExtension("OES_vertex_array_object")) === + null || i === void 0 + ? void 0 + : i.deleteVertexArrayOES(e); + } + unbindVAO() { + this.bindVertexArray.set(null); + } + } + let mo; + function rd(h, e, i, l, u) { + const d = h.context, + g = h.transform, + w = d.gl, + C = h.useProgram("collisionBox"), + P = []; + let E = 0, + R = 0; + for (let ae = 0; ae < l.length; ae++) { + const ce = l[ae], + ve = e.getTile(ce).getBucket(i); + if (!ve) continue; + const me = u ? ve.textCollisionBox : ve.iconCollisionBox, + be = ve.collisionCircleArray; + be.length > 0 && + (P.push({ circleArray: be, circleOffset: R, coord: ce }), + (E += be.length / 4), + (R = E)), + me && + C.draw( + d, + w.LINES, + Gr.disabled, + un.disabled, + h.colorModeForRenderPass(), + Rr.disabled, + Tl(h.transform), + h.style.map.terrain && + h.style.map.terrain.getTerrainData(ce), + g.getProjectionData({ + overscaledTileID: ce, + applyGlobeMatrix: !0, + applyTerrainMatrix: !0, + }), + i.id, + me.layoutVertexBuffer, + me.indexBuffer, + me.segments, + null, + h.transform.zoom, + null, + null, + me.collisionVertexBuffer + ); + } + if (!u || !P.length) return; + const D = h.useProgram("collisionCircle"), + N = new s.b$(); + N.resize(4 * E), N._trim(); + let G = 0; + for (const ae of P) + for (let ce = 0; ce < ae.circleArray.length / 4; ce++) { + const ve = 4 * ce, + me = ae.circleArray[ve + 0], + be = ae.circleArray[ve + 1], + Pe = ae.circleArray[ve + 2], + _e = ae.circleArray[ve + 3]; + N.emplace(G++, me, be, Pe, _e, 0), + N.emplace(G++, me, be, Pe, _e, 1), + N.emplace(G++, me, be, Pe, _e, 2), + N.emplace(G++, me, be, Pe, _e, 3); + } + (!mo || mo.length < 2 * E) && + (mo = (function (ae) { + const ce = 2 * ae, + ve = new s.c1(); + ve.resize(ce), ve._trim(); + for (let me = 0; me < ce; me++) { + const be = 6 * me; + (ve.uint16[be + 0] = 4 * me + 0), + (ve.uint16[be + 1] = 4 * me + 1), + (ve.uint16[be + 2] = 4 * me + 2), + (ve.uint16[be + 3] = 4 * me + 2), + (ve.uint16[be + 4] = 4 * me + 3), + (ve.uint16[be + 5] = 4 * me + 0); + } + return ve; + })(E)); + const te = d.createIndexBuffer(mo, !0), + Q = d.createVertexBuffer(N, s.c0.members, !0); + for (const ae of P) { + const ce = Ip(h.transform); + D.draw( + d, + w.TRIANGLES, + Gr.disabled, + un.disabled, + h.colorModeForRenderPass(), + Rr.disabled, + ce, + h.style.map.terrain && + h.style.map.terrain.getTerrainData(ae.coord), + null, + i.id, + Q, + te, + s.aM.simpleSegment( + 0, + 2 * ae.circleOffset, + ae.circleArray.length, + ae.circleArray.length / 2 + ), + null, + h.transform.zoom, + null, + null, + null + ); + } + Q.destroy(), te.destroy(); + } + const Fp = s.ag(new Float32Array(16)); + function nd(h, e, i, l, u, d) { + const { horizontalAlign: g, verticalAlign: w } = s.aH(h); + return new s.P( + ((-(g - 0.5) * e) / u + l[0]) * d, + ((-(w - 0.5) * i) / u + l[1]) * d + ); + } + function Op(h, e, i, l, u, d) { + const g = e.tileAnchorPoint.add( + new s.P(e.translation[0], e.translation[1]) + ); + if (e.pitchWithMap) { + let w = l.mult(d); + i || (w = w.rotate(-u)); + const C = g.add(w); + return dr(C.x, C.y, e.pitchedLabelPlaneMatrix, e.getElevation) + .point; + } + if (i) { + const w = Jt( + e.tileAnchorPoint.x + 1, + e.tileAnchorPoint.y, + e + ).point.sub(h), + C = Math.atan(w.y / w.x) + (w.x < 0 ? Math.PI : 0); + return h.add(l.rotate(C)); + } + return h.add(l); + } + function Wc(h, e, i, l, u, d, g, w, C, P, E, R) { + const D = h.text.placedSymbolArray, + N = h.text.dynamicLayoutVertexArray, + G = h.icon.dynamicLayoutVertexArray, + te = {}; + N.clear(); + for (let Q = 0; Q < D.length; Q++) { + const ae = D.get(Q), + ce = + ae.hidden || + !ae.crossTileID || + (h.allowVerticalPlacement && !ae.placedOrientation) + ? null + : l[ae.crossTileID]; + if (ce) { + const ve = new s.P(ae.anchorX, ae.anchorY), + me = { + getElevation: R, + width: u.width, + height: u.height, + pitchedLabelPlaneMatrix: d, + pitchWithMap: i, + transform: u, + tileAnchorPoint: ve, + translation: P, + unwrappedTileID: E, + }, + be = i ? Er(ve.x, ve.y, me) : Jt(ve.x, ve.y, me), + Pe = ht( + u.cameraToCenterDistance, + be.signedDistanceFromCamera + ); + let _e = (s.ap(h.textSizeData, w, ae) * Pe) / s.aB; + i && (_e *= h.tilePixelRatio / g); + const { + width: Be, + height: rt, + anchor: Ge, + textOffset: Xe, + textBoxScale: tt, + } = ce, + jt = nd(Ge, Be, rt, Xe, tt, _e), + Zt = u.getPitchedTextCorrection( + ve.x + P[0], + ve.y + P[1], + E + ), + Tt = Op(be.point, me, e, jt, -u.bearingInRadians, Zt), + vr = + h.allowVerticalPlacement && + ae.placedOrientation === s.ao.vertical + ? Math.PI / 2 + : 0; + for (let Jr = 0; Jr < ae.numGlyphs; Jr++) s.av(N, Tt, vr); + C && + ae.associatedIconIndex >= 0 && + (te[ae.associatedIconIndex] = { + shiftedAnchor: Tt, + angle: vr, + }); + } else ln(ae.numGlyphs, N); + } + if (C) { + G.clear(); + const Q = h.icon.placedSymbolArray; + for (let ae = 0; ae < Q.length; ae++) { + const ce = Q.get(ae); + if (ce.hidden) ln(ce.numGlyphs, G); + else { + const ve = te[ae]; + if (ve) + for (let me = 0; me < ce.numGlyphs; me++) + s.av(G, ve.shiftedAnchor, ve.angle); + else ln(ce.numGlyphs, G); + } + } + h.icon.dynamicLayoutVertexBuffer.updateData(G); + } + h.text.dynamicLayoutVertexBuffer.updateData(N); + } + function zl(h, e, i) { + return i.iconsInText && e + ? "symbolTextAndIcon" + : h + ? "symbolSDF" + : "symbolIcon"; + } + function qs(h, e, i, l, u, d, g, w, C, P, E, R, D) { + const N = h.context, + G = N.gl, + te = h.transform, + Q = w === "map", + ae = C === "map", + ce = + w !== "viewport" && + i.layout.get("symbol-placement") !== "point", + ve = Q && !ae && !ce, + me = !i.layout.get("symbol-sort-key").isConstant(); + let be = !1; + const Pe = h.getDepthModeForSublayer(0, Gr.ReadOnly), + _e = + i._unevaluatedLayout.hasValue("text-variable-anchor") || + i._unevaluatedLayout.hasValue( + "text-variable-anchor-offset" + ), + Be = [], + rt = te.getCircleRadiusCorrection(); + for (const Ge of l) { + const Xe = e.getTile(Ge), + tt = Xe.getBucket(i); + if (!tt) continue; + const jt = u ? tt.text : tt.icon; + if ( + !jt || + !jt.segments.get().length || + !jt.hasVisibleVertices + ) + continue; + const Zt = jt.programConfigurations.get(i.id), + Tt = u || tt.sdfIcons, + vr = u ? tt.textSizeData : tt.iconSizeData, + Jr = ae || te.pitch !== 0, + An = h.useProgram(zl(Tt, u, tt), Zt), + Rn = s.an(vr, te.zoom), + Ln = + h.style.map.terrain && + h.style.map.terrain.getTerrainData(Ge); + let Wn, + Jn, + Kr, + Bn, + si = [0, 0], + mi = null; + if (u) + (Jn = Xe.glyphAtlasTexture), + (Kr = G.LINEAR), + (Wn = Xe.glyphAtlasTexture.size), + tt.iconsInText && + ((si = Xe.imageAtlasTexture.size), + (mi = Xe.imageAtlasTexture), + (Bn = + Jr || + h.options.rotating || + h.options.zooming || + vr.kind === "composite" || + vr.kind === "camera" + ? G.LINEAR + : G.NEAREST)); + else { + const li = + i.layout.get("icon-size").constantOr(0) !== 1 || + tt.iconsNeedLinear; + (Jn = Xe.imageAtlasTexture), + (Kr = + Tt || + h.options.rotating || + h.options.zooming || + li || + Jr + ? G.LINEAR + : G.NEAREST), + (Wn = Xe.imageAtlasTexture.size); + } + const Ci = s.aC(Xe, 1, h.transform.zoom), + $i = _n(Q, h.transform, Ci), + za = s.L(); + s.aq(za, $i); + const go = Vt(ae, Q, h.transform, Ci), + vo = s.aD(te, Xe, d, g), + fs = te.getProjectionData({ + overscaledTileID: Ge, + applyGlobeMatrix: !D, + applyTerrainMatrix: !0, + }), + ms = _e && tt.hasTextData(), + Vo = + i.layout.get("icon-text-fit") !== "none" && + ms && + tt.hasIconData(); + if (ce) { + const li = h.style.map.terrain + ? (ba, ci) => + h.style.map.terrain.getElevation(Ge, ba, ci) + : null, + _i = i.layout.get("text-rotation-alignment") === "map"; + Yr( + tt, + h, + u, + $i, + za, + ae, + P, + _i, + Ge.toUnwrapped(), + te.width, + te.height, + vo, + li + ); + } + const qo = (u && _e) || Vo, + ta = + ce || qo + ? Fp + : ae + ? $i + : h.transform.clipSpaceToPixelsMatrix, + La = + Tt && + i.paint + .get(u ? "text-halo-width" : "icon-halo-width") + .constantOr(1) !== 0; + let Gi; + Gi = Tt + ? tt.iconsInText + ? Ap( + vr.kind, + Rn, + ve, + ae, + ce, + qo, + h, + ta, + go, + vo, + Wn, + si, + rt + ) + : Uh( + vr.kind, + Rn, + ve, + ae, + ce, + qo, + h, + ta, + go, + vo, + u, + Wn, + 0, + rt + ) + : Os(vr.kind, Rn, ve, ae, ce, qo, h, ta, go, vo, u, Wn, rt); + const yo = { + program: An, + buffers: jt, + uniformValues: Gi, + projectionData: fs, + atlasTexture: Jn, + atlasTextureIcon: mi, + atlasInterpolation: Kr, + atlasInterpolationIcon: Bn, + isSDF: Tt, + hasHalo: La, + }; + if (me && tt.canOverlap) { + be = !0; + const li = jt.segments.get(); + for (const _i of li) + Be.push({ + segments: new s.aM([_i]), + sortKey: _i.sortKey, + state: yo, + terrainData: Ln, + }); + } else + Be.push({ + segments: jt.segments, + sortKey: 0, + state: yo, + terrainData: Ln, + }); + } + be && Be.sort((Ge, Xe) => Ge.sortKey - Xe.sortKey); + for (const Ge of Be) { + const Xe = Ge.state; + if ( + (N.activeTexture.set(G.TEXTURE0), + Xe.atlasTexture.bind( + Xe.atlasInterpolation, + G.CLAMP_TO_EDGE + ), + Xe.atlasTextureIcon && + (N.activeTexture.set(G.TEXTURE1), + Xe.atlasTextureIcon && + Xe.atlasTextureIcon.bind( + Xe.atlasInterpolationIcon, + G.CLAMP_TO_EDGE + )), + Xe.isSDF) + ) { + const tt = Xe.uniformValues; + Xe.hasHalo && + ((tt.u_is_halo = 1), + Zs( + Xe.buffers, + Ge.segments, + i, + h, + Xe.program, + Pe, + E, + R, + tt, + Xe.projectionData, + Ge.terrainData + )), + (tt.u_is_halo = 0); + } + Zs( + Xe.buffers, + Ge.segments, + i, + h, + Xe.program, + Pe, + E, + R, + Xe.uniformValues, + Xe.projectionData, + Ge.terrainData + ); + } + } + function Zs(h, e, i, l, u, d, g, w, C, P, E) { + const R = l.context; + u.draw( + R, + R.gl.TRIANGLES, + d, + g, + w, + Rr.backCCW, + C, + E, + P, + i.id, + h.layoutVertexBuffer, + h.indexBuffer, + e, + i.paint, + l.transform.zoom, + h.programConfigurations.get(i.id), + h.dynamicLayoutVertexBuffer, + h.opacityVertexBuffer + ); + } + function Xc(h, e, i, l, u) { + const d = h.context, + g = d.gl, + w = un.disabled, + C = new zn([g.ONE, g.ONE], s.bf.transparent, [ + !0, + !0, + !0, + !0, + ]), + P = e.getBucket(i); + if (!P) return; + const E = l.key; + let R = i.heatmapFbos.get(E); + R || + ((R = Us(d, e.tileSize, e.tileSize)), + i.heatmapFbos.set(E, R)), + d.bindFramebuffer.set(R.framebuffer), + d.viewport.set([0, 0, e.tileSize, e.tileSize]), + d.clear({ color: s.bf.transparent }); + const D = P.programConfigurations.get(i.id), + N = h.useProgram("heatmap", D, !u), + G = h.transform.getProjectionData({ + overscaledTileID: e.tileID, + applyGlobeMatrix: !0, + applyTerrainMatrix: !0, + }), + te = h.style.map.terrain.getTerrainData(l); + N.draw( + d, + g.TRIANGLES, + Gr.disabled, + w, + C, + Rr.disabled, + Nh(e, h.transform.zoom, i.paint.get("heatmap-intensity"), 1), + te, + G, + i.id, + P.layoutVertexBuffer, + P.indexBuffer, + P.segments, + i.paint, + h.transform.zoom, + D + ); + } + function id(h, e, i, l, u) { + const d = h.context, + g = d.gl, + w = h.transform; + d.setColorMode(h.colorModeForRenderPass()); + const C = $s(d, e), + P = i.key, + E = e.heatmapFbos.get(P); + if (!E) return; + d.activeTexture.set(g.TEXTURE0), + g.bindTexture(g.TEXTURE_2D, E.colorAttachment.get()), + d.activeTexture.set(g.TEXTURE1), + C.bind(g.LINEAR, g.CLAMP_TO_EDGE); + const R = w.getProjectionData({ + overscaledTileID: i, + applyTerrainMatrix: u, + applyGlobeMatrix: !l, + }); + h + .useProgram("heatmapTexture") + .draw( + d, + g.TRIANGLES, + Gr.disabled, + un.disabled, + h.colorModeForRenderPass(), + Rr.disabled, + Rc(h, e, 0, 1), + null, + R, + e.id, + h.rasterBoundsBuffer, + h.quadTriangleIndexBuffer, + h.rasterBoundsSegments, + e.paint, + w.zoom + ), + E.destroy(), + e.heatmapFbos.delete(P); + } + function Us(h, e, i) { + var l, u; + const d = h.gl, + g = d.createTexture(); + d.bindTexture(d.TEXTURE_2D, g), + d.texParameteri( + d.TEXTURE_2D, + d.TEXTURE_WRAP_S, + d.CLAMP_TO_EDGE + ), + d.texParameteri( + d.TEXTURE_2D, + d.TEXTURE_WRAP_T, + d.CLAMP_TO_EDGE + ), + d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MIN_FILTER, d.LINEAR), + d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER, d.LINEAR); + const w = + (l = h.HALF_FLOAT) !== null && l !== void 0 + ? l + : d.UNSIGNED_BYTE, + C = (u = h.RGBA16F) !== null && u !== void 0 ? u : d.RGBA; + d.texImage2D(d.TEXTURE_2D, 0, C, e, i, 0, d.RGBA, w, null); + const P = h.createFramebuffer(e, i, !1, !1); + return P.colorAttachment.set(g), P; + } + function $s(h, e) { + return ( + e.colorRampTexture || + (e.colorRampTexture = new s.T(h, e.colorRamp, h.gl.RGBA)), + e.colorRampTexture + ); + } + function Gs(h, e, i, l, u) { + if (!i || !l || !l.imageAtlas) return; + const d = l.imageAtlas.patternPositions; + let g = d[i.to.toString()], + w = d[i.from.toString()]; + if ((!g && w && (g = w), !w && g && (w = g), !g || !w)) { + const C = u.getPaintProperty(e); + (g = d[C]), (w = d[C]); + } + g && w && h.setConstantPatternPositions(g, w); + } + function Ll(h, e, i, l, u, d, g, w) { + const C = h.context.gl, + P = "fill-pattern", + E = i.paint.get(P), + R = E && E.constantOr(1), + D = i.getCrossfadeParameters(); + let N, G, te, Q, ae; + const ce = h.transform, + ve = i.paint.get("fill-translate"), + me = i.paint.get("fill-translate-anchor"); + g + ? ((G = + R && !i.getPaintProperty("fill-outline-color") + ? "fillOutlinePattern" + : "fillOutline"), + (N = C.LINES)) + : ((G = R ? "fillPattern" : "fill"), (N = C.TRIANGLES)); + const be = E.constantOr(null); + for (const Pe of l) { + const _e = e.getTile(Pe); + if (R && !_e.patternsLoaded()) continue; + const Be = _e.getBucket(i); + if (!Be) continue; + const rt = Be.programConfigurations.get(i.id), + Ge = h.useProgram(G, rt), + Xe = + h.style.map.terrain && + h.style.map.terrain.getTerrainData(Pe); + R && + (h.context.activeTexture.set(C.TEXTURE0), + _e.imageAtlasTexture.bind(C.LINEAR, C.CLAMP_TO_EDGE), + rt.updatePaintBuffers(D)), + Gs(rt, P, be, _e, i); + const tt = ce.getProjectionData({ + overscaledTileID: Pe, + applyGlobeMatrix: !w, + applyTerrainMatrix: !0, + }), + jt = s.aD(ce, _e, ve, me); + if (g) { + (Q = Be.indexBuffer2), (ae = Be.segments2); + const Tt = [C.drawingBufferWidth, C.drawingBufferHeight]; + te = + G === "fillOutlinePattern" && R + ? Bs(h, D, _e, Tt, jt) + : Rs(Tt, jt); + } else + (Q = Be.indexBuffer), + (ae = Be.segments), + (te = R ? wl(h, D, _e, jt) : { u_fill_translate: jt }); + const Zt = h.stencilModeForClipping(Pe); + Ge.draw( + h.context, + N, + u, + Zt, + d, + Rr.backCCW, + te, + Xe, + tt, + i.id, + Be.layoutVertexBuffer, + Q, + ae, + i.paint, + h.transform.zoom, + rt + ); + } + } + function Yc(h, e, i, l, u, d, g, w) { + const C = h.context, + P = C.gl, + E = "fill-extrusion-pattern", + R = i.paint.get(E), + D = R.constantOr(1), + N = i.getCrossfadeParameters(), + G = i.paint.get("fill-extrusion-opacity"), + te = R.constantOr(null), + Q = h.transform; + for (const ae of l) { + const ce = e.getTile(ae), + ve = ce.getBucket(i); + if (!ve) continue; + const me = + h.style.map.terrain && + h.style.map.terrain.getTerrainData(ae), + be = ve.programConfigurations.get(i.id), + Pe = h.useProgram( + D ? "fillExtrusionPattern" : "fillExtrusion", + be + ); + D && + (h.context.activeTexture.set(P.TEXTURE0), + ce.imageAtlasTexture.bind(P.LINEAR, P.CLAMP_TO_EDGE), + be.updatePaintBuffers(N)); + const _e = Q.getProjectionData({ + overscaledTileID: ae, + applyGlobeMatrix: !w, + applyTerrainMatrix: !0, + }); + Gs(be, E, te, ce, i); + const Be = s.aD( + Q, + ce, + i.paint.get("fill-extrusion-translate"), + i.paint.get("fill-extrusion-translate-anchor") + ), + rt = i.paint.get("fill-extrusion-vertical-gradient"), + Ge = D ? Sp(h, rt, G, Be, ae, N, ce) : Pa(h, rt, G, Be); + Pe.draw( + C, + C.gl.TRIANGLES, + u, + d, + g, + Rr.backCCW, + Ge, + me, + _e, + i.id, + ve.layoutVertexBuffer, + ve.indexBuffer, + ve.segments, + i.paint, + h.transform.zoom, + be, + h.style.map.terrain && ve.centroidVertexBuffer + ); + } + } + function Ro(h, e, i, l, u, d, g, w, C) { + var P; + const E = h.style.projection, + R = h.context, + D = h.transform, + N = R.gl, + G = [ + `#define NUM_ILLUMINATION_SOURCES ${ + i.paint.get("hillshade-highlight-color").values.length + }`, + ], + te = h.useProgram("hillshade", null, !1, G), + Q = !h.options.moving; + for (const ae of l) { + const ce = e.getTile(ae), + ve = ce.fbo; + if (!ve) continue; + const me = E.getMeshFromTileID( + R, + ae.canonical, + w, + !0, + "raster" + ), + be = + (P = h.style.map.terrain) === null || P === void 0 + ? void 0 + : P.getTerrainData(ae); + R.activeTexture.set(N.TEXTURE0), + N.bindTexture(N.TEXTURE_2D, ve.colorAttachment.get()); + const Pe = D.getProjectionData({ + overscaledTileID: ae, + aligned: Q, + applyGlobeMatrix: !C, + applyTerrainMatrix: !0, + }); + te.draw( + R, + N.TRIANGLES, + d, + u[ae.overscaledZ], + g, + Rr.backCCW, + Mp(h, ce, i), + be, + Pe, + i.id, + me.vertexBuffer, + me.indexBuffer, + me.segments + ); + } + } + function Kc(h, e, i, l, u, d, g, w, C) { + var P; + const E = h.style.projection, + R = h.context, + D = h.transform, + N = R.gl, + G = h.useProgram("colorRelief"), + te = !h.options.moving; + let Q = !0, + ae = 0; + for (const ce of l) { + const ve = e.getTile(ce), + me = ve.dem; + if (Q) { + const Ge = N.getParameter(N.MAX_TEXTURE_SIZE), + { elevationTexture: Xe, colorTexture: tt } = + i.getColorRampTextures(R, Ge, me.getUnpackVector()); + R.activeTexture.set(N.TEXTURE1), + Xe.bind(N.NEAREST, N.CLAMP_TO_EDGE), + R.activeTexture.set(N.TEXTURE4), + tt.bind(N.LINEAR, N.CLAMP_TO_EDGE), + (Q = !1), + (ae = Xe.size[0]); + } + if (!me || !me.data) continue; + const be = me.stride, + Pe = me.getPixels(); + if ( + (R.activeTexture.set(N.TEXTURE0), + R.pixelStoreUnpackPremultiplyAlpha.set(!1), + (ve.demTexture = ve.demTexture || h.getTileTexture(be)), + ve.demTexture) + ) { + const Ge = ve.demTexture; + Ge.update(Pe, { premultiply: !1 }), + Ge.bind(N.LINEAR, N.CLAMP_TO_EDGE); + } else + (ve.demTexture = new s.T(R, Pe, N.RGBA, { + premultiply: !1, + })), + ve.demTexture.bind(N.LINEAR, N.CLAMP_TO_EDGE); + const _e = E.getMeshFromTileID( + R, + ce.canonical, + w, + !0, + "raster" + ), + Be = + (P = h.style.map.terrain) === null || P === void 0 + ? void 0 + : P.getTerrainData(ce), + rt = D.getProjectionData({ + overscaledTileID: ce, + aligned: te, + applyGlobeMatrix: !C, + applyTerrainMatrix: !0, + }); + G.draw( + R, + N.TRIANGLES, + d, + u[ce.overscaledZ], + g, + Rr.backCCW, + Vh(i, ve.dem, ae), + Be, + rt, + i.id, + _e.vertexBuffer, + _e.indexBuffer, + _e.segments + ); + } + } + const Dl = [ + new s.P(0, 0), + new s.P(s.$, 0), + new s.P(s.$, s.$), + new s.P(0, s.$), + ]; + function Bo(h, e, i, l, u, d, g, w, C = !1, P = !1) { + const E = l[l.length - 1].overscaledZ, + R = h.context, + D = R.gl, + N = h.useProgram("raster"), + G = h.transform, + te = h.style.projection, + Q = h.colorModeForRenderPass(), + ae = !h.options.moving; + for (const ce of l) { + const ve = h.getDepthModeForSublayer( + ce.overscaledZ - E, + i.paint.get("raster-opacity") === 1 + ? Gr.ReadWrite + : Gr.ReadOnly, + D.LESS + ), + me = e.getTile(ce); + me.registerFadeDuration(i.paint.get("raster-fade-duration")); + const be = e.findLoadedParent(ce, 0), + Pe = e.findLoadedSibling(ce), + _e = Jc( + me, + be || Pe || null, + e, + i, + h.transform, + h.style.map.terrain + ); + let Be, rt; + const Ge = + i.paint.get("raster-resampling") === "nearest" + ? D.NEAREST + : D.LINEAR; + R.activeTexture.set(D.TEXTURE0), + me.texture.bind( + Ge, + D.CLAMP_TO_EDGE, + D.LINEAR_MIPMAP_NEAREST + ), + R.activeTexture.set(D.TEXTURE1), + be + ? (be.texture.bind( + Ge, + D.CLAMP_TO_EDGE, + D.LINEAR_MIPMAP_NEAREST + ), + (Be = Math.pow( + 2, + be.tileID.overscaledZ - me.tileID.overscaledZ + )), + (rt = [ + (me.tileID.canonical.x * Be) % 1, + (me.tileID.canonical.y * Be) % 1, + ])) + : me.texture.bind( + Ge, + D.CLAMP_TO_EDGE, + D.LINEAR_MIPMAP_NEAREST + ), + me.texture.useMipmap && + R.extTextureFilterAnisotropic && + h.transform.pitch > 20 && + D.texParameterf( + D.TEXTURE_2D, + R.extTextureFilterAnisotropic + .TEXTURE_MAX_ANISOTROPY_EXT, + R.extTextureFilterAnisotropicMax + ); + const Xe = + h.style.map.terrain && + h.style.map.terrain.getTerrainData(ce), + tt = G.getProjectionData({ + overscaledTileID: ce, + aligned: ae, + applyGlobeMatrix: !P, + applyTerrainMatrix: !0, + }), + jt = Fs(rt || [0, 0], Be || 1, _e, i, w), + Zt = te.getMeshFromTileID(R, ce.canonical, d, g, "raster"); + N.draw( + R, + D.TRIANGLES, + ve, + u ? u[ce.overscaledZ] : un.disabled, + Q, + C ? Rr.frontCCW : Rr.backCCW, + jt, + Xe, + tt, + i.id, + Zt.vertexBuffer, + Zt.indexBuffer, + Zt.segments + ); + } + } + function Jc(h, e, i, l, u, d) { + const g = l.paint.get("raster-fade-duration"); + if (!d && g > 0) { + const w = ne.now(), + C = (w - h.timeAdded) / g, + P = e ? (w - e.timeAdded) / g : -1, + E = i.getSource(), + R = kt(u, { tileSize: E.tileSize, roundZoom: E.roundZoom }), + D = + !e || + Math.abs(e.tileID.overscaledZ - R) > + Math.abs(h.tileID.overscaledZ - R), + N = + D && h.refreshedUponExpiration + ? 1 + : s.ah(D ? C : 1 - P, 0, 1); + return ( + h.refreshedUponExpiration && + C >= 1 && + (h.refreshedUponExpiration = !1), + e ? { opacity: 1, mix: 1 - N } : { opacity: N, mix: 0 } + ); + } + return { opacity: 1, mix: 0 }; + } + const ad = new s.bf(1, 0, 0, 1), + od = new s.bf(0, 1, 0, 1), + Rl = new s.bf(0, 0, 1, 1), + Qc = new s.bf(1, 0, 1, 1), + Np = new s.bf(0, 1, 1, 1); + function eu(h, e, i, l) { + Ua(h, 0, e + i / 2, h.transform.width, i, l); + } + function Kn(h, e, i, l) { + Ua(h, e - i / 2, 0, i, h.transform.height, l); + } + function Ua(h, e, i, l, u, d) { + const g = h.context, + w = g.gl; + w.enable(w.SCISSOR_TEST), + w.scissor( + e * h.pixelRatio, + i * h.pixelRatio, + l * h.pixelRatio, + u * h.pixelRatio + ), + g.clear({ color: d }), + w.disable(w.SCISSOR_TEST); + } + function ya(h, e, i) { + const l = h.context, + u = l.gl, + d = h.useProgram("debug"), + g = Gr.disabled, + w = un.disabled, + C = h.colorModeForRenderPass(), + P = "$debug", + E = + h.style.map.terrain && + h.style.map.terrain.getTerrainData(i); + l.activeTexture.set(u.TEXTURE0); + const R = e.getTileByID(i.key).latestRawTileData, + D = Math.floor(((R && R.byteLength) || 0) / 1024), + N = e.getTile(i).tileSize, + G = + (512 / Math.min(N, 512)) * + (i.overscaledZ / h.transform.zoom) * + 0.5; + let te = i.canonical.toString(); + i.overscaledZ !== i.canonical.z && + (te += ` => ${i.overscaledZ}`), + (function (ae, ce) { + ae.initDebugOverlayCanvas(); + const ve = ae.debugOverlayCanvas, + me = ae.context.gl, + be = ae.debugOverlayCanvas.getContext("2d"); + be.clearRect(0, 0, ve.width, ve.height), + (be.shadowColor = "white"), + (be.shadowBlur = 2), + (be.lineWidth = 1.5), + (be.strokeStyle = "white"), + (be.textBaseline = "top"), + (be.font = "bold 36px Open Sans, sans-serif"), + be.fillText(ce, 5, 5), + be.strokeText(ce, 5, 5), + ae.debugOverlayTexture.update(ve), + ae.debugOverlayTexture.bind(me.LINEAR, me.CLAMP_TO_EDGE); + })(h, `${te} ${D}kB`); + const Q = h.transform.getProjectionData({ + overscaledTileID: i, + applyGlobeMatrix: !0, + applyTerrainMatrix: !0, + }); + d.draw( + l, + u.TRIANGLES, + g, + w, + zn.alphaBlended, + Rr.disabled, + Ao(s.bf.transparent, G), + null, + Q, + P, + h.debugBuffer, + h.quadTriangleIndexBuffer, + h.debugSegments + ), + d.draw( + l, + u.LINE_STRIP, + g, + w, + C, + Rr.disabled, + Ao(s.bf.red), + E, + Q, + P, + h.debugBuffer, + h.tileBorderIndexBuffer, + h.debugSegments + ); + } + function Bl(h, e, i, l) { + const { isRenderingGlobe: u } = l, + d = h.context, + g = d.gl, + w = h.transform, + C = h.colorModeForRenderPass(), + P = h.getDepthModeFor3D(), + E = h.useProgram("terrain"); + d.bindFramebuffer.set(null), + d.viewport.set([0, 0, h.width, h.height]); + for (const R of i) { + const D = e.getTerrainMesh(R.tileID), + N = h.renderToTexture.getTexture(R), + G = e.getTerrainData(R.tileID); + d.activeTexture.set(g.TEXTURE0), + g.bindTexture(g.TEXTURE_2D, N.texture); + const te = e.getMeshFrameDelta(w.zoom), + Q = w.calculateFogMatrix(R.tileID.toUnwrapped()), + ae = xl(te, Q, h.style.sky, w.pitch, u), + ce = w.getProjectionData({ + overscaledTileID: R.tileID, + applyTerrainMatrix: !1, + applyGlobeMatrix: !0, + }); + E.draw( + d, + g.TRIANGLES, + P, + un.disabled, + C, + Rr.backCCW, + ae, + G, + ce, + "terrain", + D.vertexBuffer, + D.indexBuffer, + D.segments + ); + } + } + function Hs(h, e) { + if (!e.mesh) { + const i = new s.aL(); + i.emplaceBack(-1, -1), + i.emplaceBack(1, -1), + i.emplaceBack(1, 1), + i.emplaceBack(-1, 1); + const l = new s.aN(); + l.emplaceBack(0, 1, 2), + l.emplaceBack(0, 2, 3), + (e.mesh = new Tn( + h.createVertexBuffer(i, an.members), + h.createIndexBuffer(l), + s.aM.simpleSegment(0, 0, i.length, l.length) + )); + } + return e.mesh; + } + class sd { + constructor(e, i) { + (this.context = new td(e)), + (this.transform = i), + (this._tileTextures = {}), + (this.terrainFacilitator = { + dirty: !0, + matrix: s.ag(new Float64Array(16)), + renderTime: 0, + }), + this.setup(), + (this.numSublayers = + rr.maxUnderzooming + rr.maxOverzooming + 1), + (this.depthEpsilon = 1 / Math.pow(2, 16)), + (this.crossTileSymbolIndex = new sr()); + } + resize(e, i, l) { + if ( + ((this.width = Math.floor(e * l)), + (this.height = Math.floor(i * l)), + (this.pixelRatio = l), + this.context.viewport.set([0, 0, this.width, this.height]), + this.style) + ) + for (const u of this.style._order) + this.style._layers[u].resize(); + } + setup() { + const e = this.context, + i = new s.aL(); + i.emplaceBack(0, 0), + i.emplaceBack(s.$, 0), + i.emplaceBack(0, s.$), + i.emplaceBack(s.$, s.$), + (this.tileExtentBuffer = e.createVertexBuffer( + i, + an.members + )), + (this.tileExtentSegments = s.aM.simpleSegment(0, 0, 4, 2)); + const l = new s.aL(); + l.emplaceBack(0, 0), + l.emplaceBack(s.$, 0), + l.emplaceBack(0, s.$), + l.emplaceBack(s.$, s.$), + (this.debugBuffer = e.createVertexBuffer(l, an.members)), + (this.debugSegments = s.aM.simpleSegment(0, 0, 4, 5)); + const u = new s.c6(); + u.emplaceBack(0, 0, 0, 0), + u.emplaceBack(s.$, 0, s.$, 0), + u.emplaceBack(0, s.$, 0, s.$), + u.emplaceBack(s.$, s.$, s.$, s.$), + (this.rasterBoundsBuffer = e.createVertexBuffer( + u, + Tp.members + )), + (this.rasterBoundsSegments = s.aM.simpleSegment( + 0, + 0, + 4, + 2 + )); + const d = new s.aL(); + d.emplaceBack(0, 0), + d.emplaceBack(s.$, 0), + d.emplaceBack(0, s.$), + d.emplaceBack(s.$, s.$), + (this.rasterBoundsBufferPosOnly = e.createVertexBuffer( + d, + an.members + )), + (this.rasterBoundsSegmentsPosOnly = s.aM.simpleSegment( + 0, + 0, + 4, + 5 + )); + const g = new s.aL(); + g.emplaceBack(0, 0), + g.emplaceBack(1, 0), + g.emplaceBack(0, 1), + g.emplaceBack(1, 1), + (this.viewportBuffer = e.createVertexBuffer(g, an.members)), + (this.viewportSegments = s.aM.simpleSegment(0, 0, 4, 2)); + const w = new s.c7(); + w.emplaceBack(0), + w.emplaceBack(1), + w.emplaceBack(3), + w.emplaceBack(2), + w.emplaceBack(0), + (this.tileBorderIndexBuffer = e.createIndexBuffer(w)); + const C = new s.aN(); + C.emplaceBack(1, 0, 2), + C.emplaceBack(1, 2, 3), + (this.quadTriangleIndexBuffer = e.createIndexBuffer(C)); + const P = this.context.gl; + (this.stencilClearMode = new un( + { func: P.ALWAYS, mask: 0 }, + 0, + 255, + P.ZERO, + P.ZERO, + P.ZERO + )), + (this.tileExtentMesh = new Tn( + this.tileExtentBuffer, + this.quadTriangleIndexBuffer, + this.tileExtentSegments + )); + } + clearStencil() { + const e = this.context, + i = e.gl; + (this.nextStencilID = 1), + (this.currentStencilSource = void 0); + const l = s.L(); + s.bY(l, 0, this.width, this.height, 0, 0, 1), + s.N(l, l, [i.drawingBufferWidth, i.drawingBufferHeight, 0]); + const u = { + mainMatrix: l, + tileMercatorCoords: [0, 0, 1, 1], + clippingPlane: [0, 0, 0, 0], + projectionTransition: 0, + fallbackMatrix: l, + }; + this.useProgram("clippingMask", null, !0).draw( + e, + i.TRIANGLES, + Gr.disabled, + this.stencilClearMode, + zn.disabled, + Rr.disabled, + null, + null, + u, + "$clipping", + this.viewportBuffer, + this.quadTriangleIndexBuffer, + this.viewportSegments + ); + } + _renderTileClippingMasks(e, i, l) { + if ( + this.currentStencilSource === e.source || + !e.isTileClipped() || + !i || + !i.length + ) + return; + (this.currentStencilSource = e.source), + this.nextStencilID + i.length > 256 && this.clearStencil(); + const u = this.context; + u.setColorMode(zn.disabled), u.setDepthMode(Gr.disabled); + const d = {}; + for (const g of i) d[g.key] = this.nextStencilID++; + this._renderTileMasks(d, i, l, !0), + this._renderTileMasks(d, i, l, !1), + (this._tileClippingMaskIDs = d); + } + _renderTileMasks(e, i, l, u) { + const d = this.context, + g = d.gl, + w = this.style.projection, + C = this.transform, + P = this.useProgram("clippingMask"); + for (const E of i) { + const R = e[E.key], + D = + this.style.map.terrain && + this.style.map.terrain.getTerrainData(E), + N = w.getMeshFromTileID( + this.context, + E.canonical, + u, + !0, + "stencil" + ), + G = C.getProjectionData({ + overscaledTileID: E, + applyGlobeMatrix: !l, + applyTerrainMatrix: !0, + }); + P.draw( + d, + g.TRIANGLES, + Gr.disabled, + new un( + { func: g.ALWAYS, mask: 0 }, + R, + 255, + g.KEEP, + g.KEEP, + g.REPLACE + ), + zn.disabled, + l ? Rr.disabled : Rr.backCCW, + null, + D, + G, + "$clipping", + N.vertexBuffer, + N.indexBuffer, + N.segments + ); + } + } + _renderTilesDepthBuffer() { + const e = this.context, + i = e.gl, + l = this.style.projection, + u = this.transform, + d = this.useProgram("depth"), + g = this.getDepthModeFor3D(), + w = ye(u, { tileSize: u.tileSize }); + for (const C of w) { + const P = + this.style.map.terrain && + this.style.map.terrain.getTerrainData(C), + E = l.getMeshFromTileID( + this.context, + C.canonical, + !0, + !0, + "raster" + ), + R = u.getProjectionData({ + overscaledTileID: C, + applyGlobeMatrix: !0, + applyTerrainMatrix: !0, + }); + d.draw( + e, + i.TRIANGLES, + g, + un.disabled, + zn.disabled, + Rr.backCCW, + null, + P, + R, + "$clipping", + E.vertexBuffer, + E.indexBuffer, + E.segments + ); + } + } + stencilModeFor3D() { + (this.currentStencilSource = void 0), + this.nextStencilID + 1 > 256 && this.clearStencil(); + const e = this.nextStencilID++, + i = this.context.gl; + return new un( + { func: i.NOTEQUAL, mask: 255 }, + e, + 255, + i.KEEP, + i.KEEP, + i.REPLACE + ); + } + stencilModeForClipping(e) { + const i = this.context.gl; + return new un( + { func: i.EQUAL, mask: 255 }, + this._tileClippingMaskIDs[e.key], + 0, + i.KEEP, + i.KEEP, + i.REPLACE + ); + } + getStencilConfigForOverlapAndUpdateStencilID(e) { + const i = this.context.gl, + l = e.sort((g, w) => w.overscaledZ - g.overscaledZ), + u = l[l.length - 1].overscaledZ, + d = l[0].overscaledZ - u + 1; + if (d > 1) { + (this.currentStencilSource = void 0), + this.nextStencilID + d > 256 && this.clearStencil(); + const g = {}; + for (let w = 0; w < d; w++) + g[w + u] = new un( + { func: i.GEQUAL, mask: 255 }, + w + this.nextStencilID, + 255, + i.KEEP, + i.KEEP, + i.REPLACE + ); + return (this.nextStencilID += d), [g, l]; + } + return [{ [u]: un.disabled }, l]; + } + stencilConfigForOverlapTwoPass(e) { + const i = this.context.gl, + l = e.sort((g, w) => w.overscaledZ - g.overscaledZ), + u = l[l.length - 1].overscaledZ, + d = l[0].overscaledZ - u + 1; + if ((this.clearStencil(), d > 1)) { + const g = {}, + w = {}; + for (let C = 0; C < d; C++) + (g[C + u] = new un( + { func: i.GREATER, mask: 255 }, + d + 1 + C, + 255, + i.KEEP, + i.KEEP, + i.REPLACE + )), + (w[C + u] = new un( + { func: i.GREATER, mask: 255 }, + 1 + C, + 255, + i.KEEP, + i.KEEP, + i.REPLACE + )); + return (this.nextStencilID = 2 * d + 1), [g, w, l]; + } + return ( + (this.nextStencilID = 3), + [ + { + [u]: new un( + { func: i.GREATER, mask: 255 }, + 2, + 255, + i.KEEP, + i.KEEP, + i.REPLACE + ), + }, + { + [u]: new un( + { func: i.GREATER, mask: 255 }, + 1, + 255, + i.KEEP, + i.KEEP, + i.REPLACE + ), + }, + l, + ] + ); + } + colorModeForRenderPass() { + const e = this.context.gl; + return this._showOverdrawInspector + ? new zn( + [e.CONSTANT_COLOR, e.ONE], + new s.bf(0.125, 0.125, 0.125, 0), + [!0, !0, !0, !0] + ) + : this.renderPass === "opaque" + ? zn.unblended + : zn.alphaBlended; + } + getDepthModeForSublayer(e, i, l) { + if (!this.opaquePassEnabledForLayer()) return Gr.disabled; + const u = + 1 - + ((1 + this.currentLayer) * this.numSublayers + e) * + this.depthEpsilon; + return new Gr(l || this.context.gl.LEQUAL, i, [u, u]); + } + getDepthModeFor3D() { + return new Gr( + this.context.gl.LEQUAL, + Gr.ReadWrite, + this.depthRangeFor3D + ); + } + opaquePassEnabledForLayer() { + return this.currentLayer < this.opaquePassCutoff; + } + render(e, i) { + var l, u; + (this.style = e), + (this.options = i), + (this.lineAtlas = e.lineAtlas), + (this.imageManager = e.imageManager), + (this.glyphManager = e.glyphManager), + (this.symbolFadeChange = e.placement.symbolFadeChange( + ne.now() + )), + this.imageManager.beginFrame(); + const d = this.style._order, + g = this.style.sourceCaches, + w = {}, + C = {}, + P = {}, + E = { + isRenderingToTexture: !1, + isRenderingGlobe: + ((l = e.projection) === null || l === void 0 + ? void 0 + : l.transitionState) > 0, + }; + for (const D in g) { + const N = g[D]; + N.used && N.prepare(this.context), + (w[D] = N.getVisibleCoordinates(!1)), + (C[D] = w[D].slice().reverse()), + (P[D] = N.getVisibleCoordinates(!0).reverse()); + } + this.opaquePassCutoff = 1 / 0; + for (let D = 0; D < d.length; D++) + if (this.style._layers[d[D]].is3D()) { + this.opaquePassCutoff = D; + break; + } + this.maybeDrawDepthAndCoords(!1), + this.renderToTexture && + (this.renderToTexture.prepareForRender( + this.style, + this.transform.zoom + ), + (this.opaquePassCutoff = 0)), + (this.renderPass = "offscreen"); + for (const D of d) { + const N = this.style._layers[D]; + if ( + !N.hasOffscreenPass() || + N.isHidden(this.transform.zoom) + ) + continue; + const G = C[N.source]; + (N.type === "custom" || G.length) && + this.renderLayer(this, g[N.source], N, G, E); + } + if ( + ((u = this.style.projection) === null || + u === void 0 || + u.updateGPUdependent({ + context: this.context, + useProgram: (D) => this.useProgram(D), + }), + this.context.viewport.set([0, 0, this.width, this.height]), + this.context.bindFramebuffer.set(null), + this.context.clear({ + color: i.showOverdrawInspector + ? s.bf.black + : s.bf.transparent, + depth: 1, + }), + this.clearStencil(), + this.style.sky && + (function (D, N) { + const G = D.context, + te = G.gl, + Q = ((Pe, _e, Be) => { + const rt = Math.cos(_e.rollInRadians), + Ge = Math.sin(_e.rollInRadians), + Xe = pe(_e), + tt = _e.getProjectionData({ + overscaledTileID: null, + applyGlobeMatrix: !0, + applyTerrainMatrix: !0, + }).projectionTransition; + return { + u_sky_color: Pe.properties.get("sky-color"), + u_horizon_color: + Pe.properties.get("horizon-color"), + u_horizon: [ + (_e.width / 2 - Xe * Ge) * Be, + (_e.height / 2 + Xe * rt) * Be, + ], + u_horizon_normal: [-Ge, rt], + u_sky_horizon_blend: + ((Pe.properties.get("sky-horizon-blend") * + _e.height) / + 2) * + Be, + u_sky_blend: tt, + }; + })(N, D.style.map.transform, D.pixelRatio), + ae = new Gr(te.LEQUAL, Gr.ReadWrite, [0, 1]), + ce = un.disabled, + ve = D.colorModeForRenderPass(), + me = D.useProgram("sky"), + be = Hs(G, N); + me.draw( + G, + te.TRIANGLES, + ae, + ce, + ve, + Rr.disabled, + Q, + null, + void 0, + "sky", + be.vertexBuffer, + be.indexBuffer, + be.segments + ); + })(this, this.style.sky), + (this._showOverdrawInspector = i.showOverdrawInspector), + (this.depthRangeFor3D = [ + 0, + 1 - + (e._order.length + 2) * + this.numSublayers * + this.depthEpsilon, + ]), + !this.renderToTexture) + ) + for ( + this.renderPass = "opaque", + this.currentLayer = d.length - 1; + this.currentLayer >= 0; + this.currentLayer-- + ) { + const D = this.style._layers[d[this.currentLayer]], + N = g[D.source], + G = w[D.source]; + this._renderTileClippingMasks(D, G, !1), + this.renderLayer(this, N, D, G, E); + } + this.renderPass = "translucent"; + let R = !1; + for ( + this.currentLayer = 0; + this.currentLayer < d.length; + this.currentLayer++ + ) { + const D = this.style._layers[d[this.currentLayer]], + N = g[D.source]; + if ( + this.renderToTexture && + this.renderToTexture.renderLayer(D, E) + ) + continue; + this.opaquePassEnabledForLayer() || + R || + ((R = !0), + E.isRenderingGlobe && + !this.style.map.terrain && + this._renderTilesDepthBuffer()); + const G = (D.type === "symbol" ? P : C)[D.source]; + this._renderTileClippingMasks( + D, + w[D.source], + !!this.renderToTexture + ), + this.renderLayer(this, N, D, G, E); + } + if ( + (E.isRenderingGlobe && + (function (D, N, G) { + const te = D.context, + Q = te.gl, + ae = D.useProgram("atmosphere"), + ce = new Gr(Q.LEQUAL, Gr.ReadOnly, [0, 1]), + ve = D.transform, + me = (function (tt, jt) { + const Zt = tt.properties.get("position"), + Tt = [-Zt.x, -Zt.y, -Zt.z], + vr = s.ag(new Float64Array(16)); + return ( + tt.properties.get("anchor") === "map" && + (s.b6(vr, vr, jt.rollInRadians), + s.b7(vr, vr, -jt.pitchInRadians), + s.b6(vr, vr, jt.bearingInRadians), + s.b7(vr, vr, (jt.center.lat * Math.PI) / 180), + s.bz(vr, vr, (-jt.center.lng * Math.PI) / 180)), + s.c5(Tt, Tt, vr), + Tt + ); + })(G, D.transform), + be = ve.getProjectionData({ + overscaledTileID: null, + applyGlobeMatrix: !0, + applyTerrainMatrix: !0, + }), + Pe = + N.properties.get("atmosphere-blend") * + be.projectionTransition; + if (Pe === 0) return; + const _e = Qo(ve.worldSize, ve.center.lat), + Be = ve.inverseProjectionMatrix, + rt = new Float64Array(4); + (rt[3] = 1), + s.aw(rt, rt, ve.modelViewProjectionMatrix), + (rt[0] /= rt[3]), + (rt[1] /= rt[3]), + (rt[2] /= rt[3]), + (rt[3] = 1), + s.aw(rt, rt, Be), + (rt[0] /= rt[3]), + (rt[1] /= rt[3]), + (rt[2] /= rt[3]), + (rt[3] = 1); + const Ge = ((tt, jt, Zt, Tt, vr) => ({ + u_sun_pos: tt, + u_atmosphere_blend: jt, + u_globe_position: Zt, + u_globe_radius: Tt, + u_inv_proj_matrix: vr, + }))(me, Pe, [rt[0], rt[1], rt[2]], _e, Be), + Xe = Hs(te, N); + ae.draw( + te, + Q.TRIANGLES, + ce, + un.disabled, + zn.alphaBlended, + Rr.disabled, + Ge, + null, + null, + "atmosphere", + Xe.vertexBuffer, + Xe.indexBuffer, + Xe.segments + ); + })(this, this.style.sky, this.style.light), + this.options.showTileBoundaries) + ) { + const D = (function (N, G) { + let te = null; + const Q = Object.values(N._layers).flatMap((me) => + me.source && !me.isHidden(G) + ? [N.sourceCaches[me.source]] + : [] + ), + ae = Q.filter((me) => me.getSource().type === "vector"), + ce = Q.filter((me) => me.getSource().type !== "vector"), + ve = (me) => { + (!te || + te.getSource().maxzoom < me.getSource().maxzoom) && + (te = me); + }; + return ( + ae.forEach((me) => ve(me)), + te || ce.forEach((me) => ve(me)), + te + ); + })(this.style, this.transform.zoom); + D && + (function (N, G, te) { + for (let Q = 0; Q < te.length; Q++) ya(N, G, te[Q]); + })(this, D, D.getVisibleCoordinates()); + } + this.options.showPadding && + (function (D) { + const N = D.transform.padding; + eu(D, D.transform.height - (N.top || 0), 3, ad), + eu(D, N.bottom || 0, 3, od), + Kn(D, N.left || 0, 3, Rl), + Kn(D, D.transform.width - (N.right || 0), 3, Qc); + const G = D.transform.centerPoint; + (function (te, Q, ae, ce) { + Ua(te, Q - 1, ae - 10, 2, 20, ce), + Ua(te, Q - 10, ae - 1, 20, 2, ce); + })(D, G.x, D.transform.height - G.y, Np); + })(this), + this.context.setDefault(); + } + maybeDrawDepthAndCoords(e) { + if (!this.style || !this.style.map || !this.style.map.terrain) + return; + const i = this.terrainFacilitator.matrix, + l = this.transform.modelViewProjectionMatrix; + let u = this.terrainFacilitator.dirty; + u || (u = e ? !s.c8(i, l) : !s.c9(i, l)), + u || + (u = this.style.map.terrain.sourceCache.anyTilesAfterTime( + this.terrainFacilitator.renderTime + )), + u && + (s.ca(i, l), + (this.terrainFacilitator.renderTime = Date.now()), + (this.terrainFacilitator.dirty = !1), + (function (d, g) { + const w = d.context, + C = w.gl, + P = d.transform, + E = zn.unblended, + R = new Gr(C.LEQUAL, Gr.ReadWrite, [0, 1]), + D = g.sourceCache.getRenderableTiles(), + N = d.useProgram("terrainDepth"); + w.bindFramebuffer.set( + g.getFramebuffer("depth").framebuffer + ), + w.viewport.set([ + 0, + 0, + d.width / devicePixelRatio, + d.height / devicePixelRatio, + ]), + w.clear({ color: s.bf.transparent, depth: 1 }); + for (const G of D) { + const te = g.getTerrainMesh(G.tileID), + Q = g.getTerrainData(G.tileID), + ae = P.getProjectionData({ + overscaledTileID: G.tileID, + applyTerrainMatrix: !1, + applyGlobeMatrix: !0, + }), + ce = { u_ele_delta: g.getMeshFrameDelta(P.zoom) }; + N.draw( + w, + C.TRIANGLES, + R, + un.disabled, + E, + Rr.backCCW, + ce, + Q, + ae, + "terrain", + te.vertexBuffer, + te.indexBuffer, + te.segments + ); + } + w.bindFramebuffer.set(null), + w.viewport.set([0, 0, d.width, d.height]); + })(this, this.style.map.terrain), + (function (d, g) { + const w = d.context, + C = w.gl, + P = d.transform, + E = zn.unblended, + R = new Gr(C.LEQUAL, Gr.ReadWrite, [0, 1]), + D = g.getCoordsTexture(), + N = g.sourceCache.getRenderableTiles(), + G = d.useProgram("terrainCoords"); + w.bindFramebuffer.set( + g.getFramebuffer("coords").framebuffer + ), + w.viewport.set([ + 0, + 0, + d.width / devicePixelRatio, + d.height / devicePixelRatio, + ]), + w.clear({ color: s.bf.transparent, depth: 1 }), + (g.coordsIndex = []); + for (const te of N) { + const Q = g.getTerrainMesh(te.tileID), + ae = g.getTerrainData(te.tileID); + w.activeTexture.set(C.TEXTURE0), + C.bindTexture(C.TEXTURE_2D, D.texture); + const ce = { + u_terrain_coords_id: + (255 - g.coordsIndex.length) / 255, + u_texture: 0, + u_ele_delta: g.getMeshFrameDelta(P.zoom), + }, + ve = P.getProjectionData({ + overscaledTileID: te.tileID, + applyTerrainMatrix: !1, + applyGlobeMatrix: !0, + }); + G.draw( + w, + C.TRIANGLES, + R, + un.disabled, + E, + Rr.backCCW, + ce, + ae, + ve, + "terrain", + Q.vertexBuffer, + Q.indexBuffer, + Q.segments + ), + g.coordsIndex.push(te.tileID.key); + } + w.bindFramebuffer.set(null), + w.viewport.set([0, 0, d.width, d.height]); + })(this, this.style.map.terrain)); + } + renderLayer(e, i, l, u, d) { + l.isHidden(this.transform.zoom) || + ((l.type === "background" || + l.type === "custom" || + (u || []).length) && + ((this.id = l.id), + s.cb(l) + ? (function (g, w, C, P, E, R) { + if (g.renderPass !== "translucent") return; + const { isRenderingToTexture: D } = R, + N = un.disabled, + G = g.colorModeForRenderPass(); + (C._unevaluatedLayout.hasValue( + "text-variable-anchor" + ) || + C._unevaluatedLayout.hasValue( + "text-variable-anchor-offset" + )) && + (function (te, Q, ae, ce, ve, me, be, Pe, _e) { + const Be = Q.transform, + rt = Q.style.map.terrain, + Ge = ve === "map", + Xe = me === "map"; + for (const tt of te) { + const jt = ce.getTile(tt), + Zt = jt.getBucket(ae); + if ( + !Zt || + !Zt.text || + !Zt.text.segments.get().length + ) + continue; + const Tt = s.an(Zt.textSizeData, Be.zoom), + vr = s.aC(jt, 1, Q.transform.zoom), + Jr = _n(Ge, Q.transform, vr), + An = + ae.layout.get("icon-text-fit") !== + "none" && Zt.hasIconData(); + if (Tt) { + const Rn = Math.pow( + 2, + Be.zoom - jt.tileID.overscaledZ + ), + Ln = rt + ? (Wn, Jn) => + rt.getElevation(tt, Wn, Jn) + : null; + Wc( + Zt, + Ge, + Xe, + _e, + Be, + Jr, + Rn, + Tt, + An, + s.aD(Be, jt, be, Pe), + tt.toUnwrapped(), + Ln + ); + } + } + })( + P, + g, + C, + w, + C.layout.get("text-rotation-alignment"), + C.layout.get("text-pitch-alignment"), + C.paint.get("text-translate"), + C.paint.get("text-translate-anchor"), + E + ), + C.paint.get("icon-opacity").constantOr(1) !== 0 && + qs( + g, + w, + C, + P, + !1, + C.paint.get("icon-translate"), + C.paint.get("icon-translate-anchor"), + C.layout.get("icon-rotation-alignment"), + C.layout.get("icon-pitch-alignment"), + C.layout.get("icon-keep-upright"), + N, + G, + D + ), + C.paint.get("text-opacity").constantOr(1) !== 0 && + qs( + g, + w, + C, + P, + !0, + C.paint.get("text-translate"), + C.paint.get("text-translate-anchor"), + C.layout.get("text-rotation-alignment"), + C.layout.get("text-pitch-alignment"), + C.layout.get("text-keep-upright"), + N, + G, + D + ), + w.map.showCollisionBoxes && + (rd(g, w, C, P, !0), rd(g, w, C, P, !1)); + })( + e, + i, + l, + u, + this.style.placement.variableOffsets, + d + ) + : s.cc(l) + ? (function (g, w, C, P, E) { + if (g.renderPass !== "translucent") return; + const { isRenderingToTexture: R } = E, + D = C.paint.get("circle-opacity"), + N = C.paint.get("circle-stroke-width"), + G = C.paint.get("circle-stroke-opacity"), + te = !C.layout + .get("circle-sort-key") + .isConstant(); + if ( + D.constantOr(1) === 0 && + (N.constantOr(1) === 0 || G.constantOr(1) === 0) + ) + return; + const Q = g.context, + ae = Q.gl, + ce = g.transform, + ve = g.getDepthModeForSublayer(0, Gr.ReadOnly), + me = un.disabled, + be = g.colorModeForRenderPass(), + Pe = [], + _e = ce.getCircleRadiusCorrection(); + for (let Be = 0; Be < P.length; Be++) { + const rt = P[Be], + Ge = w.getTile(rt), + Xe = Ge.getBucket(C); + if (!Xe) continue; + const tt = C.paint.get("circle-translate"), + jt = C.paint.get("circle-translate-anchor"), + Zt = s.aD(ce, Ge, tt, jt), + Tt = Xe.programConfigurations.get(C.id), + vr = g.useProgram("circle", Tt), + Jr = Xe.layoutVertexBuffer, + An = Xe.indexBuffer, + Rn = + g.style.map.terrain && + g.style.map.terrain.getTerrainData(rt), + Ln = { + programConfiguration: Tt, + program: vr, + layoutVertexBuffer: Jr, + indexBuffer: An, + uniformValues: Pp(g, Ge, C, Zt, _e), + terrainData: Rn, + projectionData: ce.getProjectionData({ + overscaledTileID: rt, + applyGlobeMatrix: !R, + applyTerrainMatrix: !0, + }), + }; + if (te) { + const Wn = Xe.segments.get(); + for (const Jn of Wn) + Pe.push({ + segments: new s.aM([Jn]), + sortKey: Jn.sortKey, + state: Ln, + }); + } else + Pe.push({ + segments: Xe.segments, + sortKey: 0, + state: Ln, + }); + } + te && Pe.sort((Be, rt) => Be.sortKey - rt.sortKey); + for (const Be of Pe) { + const { + programConfiguration: rt, + program: Ge, + layoutVertexBuffer: Xe, + indexBuffer: tt, + uniformValues: jt, + terrainData: Zt, + projectionData: Tt, + } = Be.state; + Ge.draw( + Q, + ae.TRIANGLES, + ve, + me, + be, + Rr.backCCW, + jt, + Zt, + Tt, + C.id, + Xe, + tt, + Be.segments, + C.paint, + g.transform.zoom, + rt + ); + } + })(e, i, l, u, d) + : s.cd(l) + ? (function (g, w, C, P, E) { + if (C.paint.get("heatmap-opacity") === 0) return; + const R = g.context, + { isRenderingToTexture: D, isRenderingGlobe: N } = + E; + if (g.style.map.terrain) { + for (const G of P) { + const te = w.getTile(G); + w.hasRenderableParent(G) || + (g.renderPass === "offscreen" + ? Xc(g, te, C, G, N) + : g.renderPass === "translucent" && + id(g, C, G, D, N)); + } + R.viewport.set([0, 0, g.width, g.height]); + } else + g.renderPass === "offscreen" + ? (function (G, te, Q, ae) { + const ce = G.context, + ve = ce.gl, + me = G.transform, + be = un.disabled, + Pe = new zn( + [ve.ONE, ve.ONE], + s.bf.transparent, + [!0, !0, !0, !0] + ); + (function (_e, Be, rt) { + const Ge = _e.gl; + _e.activeTexture.set(Ge.TEXTURE1), + _e.viewport.set([ + 0, + 0, + Be.width / 4, + Be.height / 4, + ]); + let Xe = rt.heatmapFbos.get(s.c2); + Xe + ? (Ge.bindTexture( + Ge.TEXTURE_2D, + Xe.colorAttachment.get() + ), + _e.bindFramebuffer.set( + Xe.framebuffer + )) + : ((Xe = Us( + _e, + Be.width / 4, + Be.height / 4 + )), + rt.heatmapFbos.set(s.c2, Xe)); + })(ce, G, Q), + ce.clear({ color: s.bf.transparent }); + for (let _e = 0; _e < ae.length; _e++) { + const Be = ae[_e]; + if (te.hasRenderableParent(Be)) continue; + const rt = te.getTile(Be), + Ge = rt.getBucket(Q); + if (!Ge) continue; + const Xe = Ge.programConfigurations.get( + Q.id + ), + tt = G.useProgram("heatmap", Xe), + jt = me.getProjectionData({ + overscaledTileID: Be, + applyGlobeMatrix: !0, + applyTerrainMatrix: !1, + }), + Zt = me.getCircleRadiusCorrection(); + tt.draw( + ce, + ve.TRIANGLES, + Gr.disabled, + be, + Pe, + Rr.backCCW, + Nh( + rt, + me.zoom, + Q.paint.get("heatmap-intensity"), + Zt + ), + null, + jt, + Q.id, + Ge.layoutVertexBuffer, + Ge.indexBuffer, + Ge.segments, + Q.paint, + me.zoom, + Xe + ); + } + ce.viewport.set([0, 0, G.width, G.height]); + })(g, w, C, P) + : g.renderPass === "translucent" && + (function (G, te) { + const Q = G.context, + ae = Q.gl; + Q.setColorMode(G.colorModeForRenderPass()); + const ce = te.heatmapFbos.get(s.c2); + ce && + (Q.activeTexture.set(ae.TEXTURE0), + ae.bindTexture( + ae.TEXTURE_2D, + ce.colorAttachment.get() + ), + Q.activeTexture.set(ae.TEXTURE1), + $s(Q, te).bind( + ae.LINEAR, + ae.CLAMP_TO_EDGE + ), + G.useProgram("heatmapTexture").draw( + Q, + ae.TRIANGLES, + Gr.disabled, + un.disabled, + G.colorModeForRenderPass(), + Rr.disabled, + Rc(G, te, 0, 1), + null, + null, + te.id, + G.viewportBuffer, + G.quadTriangleIndexBuffer, + G.viewportSegments, + te.paint, + G.transform.zoom + )); + })(g, C); + })(e, i, l, u, d) + : s.ce(l) + ? (function (g, w, C, P, E) { + if (g.renderPass !== "translucent") return; + const { isRenderingToTexture: R } = E, + D = C.paint.get("line-opacity"), + N = C.paint.get("line-width"); + if (D.constantOr(1) === 0 || N.constantOr(1) === 0) + return; + const G = g.getDepthModeForSublayer(0, Gr.ReadOnly), + te = g.colorModeForRenderPass(), + Q = C.paint.get("line-dasharray"), + ae = C.paint.get("line-pattern"), + ce = ae.constantOr(1), + ve = C.paint.get("line-gradient"), + me = C.getCrossfadeParameters(), + be = ce + ? "linePattern" + : Q + ? "lineSDF" + : ve + ? "lineGradient" + : "line", + Pe = g.context, + _e = Pe.gl, + Be = g.transform; + let rt = !0; + for (const Ge of P) { + const Xe = w.getTile(Ge); + if (ce && !Xe.patternsLoaded()) continue; + const tt = Xe.getBucket(C); + if (!tt) continue; + const jt = tt.programConfigurations.get(C.id), + Zt = g.context.program.get(), + Tt = g.useProgram(be, jt), + vr = rt || Tt.program !== Zt, + Jr = + g.style.map.terrain && + g.style.map.terrain.getTerrainData(Ge), + An = ae.constantOr(null); + if (An && Xe.imageAtlas) { + const Kr = Xe.imageAtlas, + Bn = Kr.patternPositions[An.to.toString()], + si = Kr.patternPositions[An.from.toString()]; + Bn && + si && + jt.setConstantPatternPositions(Bn, si); + } + const Rn = Be.getProjectionData({ + overscaledTileID: Ge, + applyGlobeMatrix: !R, + applyTerrainMatrix: !0, + }), + Ln = Be.getPixelScale(), + Wn = ce + ? Zh(g, Xe, C, Ln, me) + : Q + ? Eo(g, Xe, C, Ln, Q, me) + : ve + ? qh(g, Xe, C, Ln, tt.lineClipsArray.length) + : Cl(g, Xe, C, Ln); + if (ce) + Pe.activeTexture.set(_e.TEXTURE0), + Xe.imageAtlasTexture.bind( + _e.LINEAR, + _e.CLAMP_TO_EDGE + ), + jt.updatePaintBuffers(me); + else if (Q && (vr || g.lineAtlas.dirty)) + Pe.activeTexture.set(_e.TEXTURE0), + g.lineAtlas.bind(Pe); + else if (ve) { + const Kr = tt.gradients[C.id]; + let Bn = Kr.texture; + if (C.gradientVersion !== Kr.version) { + let si = 256; + if (C.stepInterpolant) { + const mi = w.getSource().maxzoom, + Ci = + Ge.canonical.z === mi + ? Math.ceil( + 1 << + (g.transform.maxZoom - + Ge.canonical.z) + ) + : 1; + si = s.ah( + s.c3( + (tt.maxLineLength / s.$) * 1024 * Ci + ), + 256, + Pe.maxTextureSize + ); + } + (Kr.gradient = s.c4({ + expression: C.gradientExpression(), + evaluationKey: "lineProgress", + resolution: si, + image: Kr.gradient || void 0, + clips: tt.lineClipsArray, + })), + Kr.texture + ? Kr.texture.update(Kr.gradient) + : (Kr.texture = new s.T( + Pe, + Kr.gradient, + _e.RGBA + )), + (Kr.version = C.gradientVersion), + (Bn = Kr.texture); + } + Pe.activeTexture.set(_e.TEXTURE0), + Bn.bind( + C.stepInterpolant ? _e.NEAREST : _e.LINEAR, + _e.CLAMP_TO_EDGE + ); + } + const Jn = g.stencilModeForClipping(Ge); + Tt.draw( + Pe, + _e.TRIANGLES, + G, + Jn, + te, + Rr.disabled, + Wn, + Jr, + Rn, + C.id, + tt.layoutVertexBuffer, + tt.indexBuffer, + tt.segments, + C.paint, + g.transform.zoom, + jt, + tt.layoutVertexBuffer2 + ), + (rt = !1); + } + })(e, i, l, u, d) + : s.cf(l) + ? (function (g, w, C, P, E) { + const R = C.paint.get("fill-color"), + D = C.paint.get("fill-opacity"); + if (D.constantOr(1) === 0) return; + const { isRenderingToTexture: N } = E, + G = g.colorModeForRenderPass(), + te = C.paint.get("fill-pattern"), + Q = + g.opaquePassEnabledForLayer() && + !te.constantOr(1) && + R.constantOr(s.bf.transparent).a === 1 && + D.constantOr(0) === 1 + ? "opaque" + : "translucent"; + if (g.renderPass === Q) { + const ae = g.getDepthModeForSublayer( + 1, + g.renderPass === "opaque" + ? Gr.ReadWrite + : Gr.ReadOnly + ); + Ll(g, w, C, P, ae, G, !1, N); + } + if ( + g.renderPass === "translucent" && + C.paint.get("fill-antialias") + ) { + const ae = g.getDepthModeForSublayer( + C.getPaintProperty("fill-outline-color") + ? 2 + : 0, + Gr.ReadOnly + ); + Ll(g, w, C, P, ae, G, !0, N); + } + })(e, i, l, u, d) + : s.cg(l) + ? (function (g, w, C, P, E) { + const R = C.paint.get("fill-extrusion-opacity"); + if (R === 0) return; + const { isRenderingToTexture: D } = E; + if (g.renderPass === "translucent") { + const N = new Gr( + g.context.gl.LEQUAL, + Gr.ReadWrite, + g.depthRangeFor3D + ); + if ( + R !== 1 || + C.paint + .get("fill-extrusion-pattern") + .constantOr(1) + ) + Yc(g, w, C, P, N, un.disabled, zn.disabled, D), + Yc( + g, + w, + C, + P, + N, + g.stencilModeFor3D(), + g.colorModeForRenderPass(), + D + ); + else { + const G = g.colorModeForRenderPass(); + Yc(g, w, C, P, N, un.disabled, G, D); + } + } + })(e, i, l, u, d) + : s.ch(l) + ? (function (g, w, C, P, E) { + if ( + g.renderPass !== "offscreen" && + g.renderPass !== "translucent" + ) + return; + const { isRenderingToTexture: R } = E, + D = g.context, + N = g.style.projection.useSubdivision, + G = g.getDepthModeForSublayer(0, Gr.ReadOnly), + te = g.colorModeForRenderPass(); + if (g.renderPass === "offscreen") + (function (Q, ae, ce, ve, me, be, Pe) { + const _e = Q.context, + Be = _e.gl; + for (const rt of ce) { + const Ge = ae.getTile(rt), + Xe = Ge.dem; + if ( + !Xe || + !Xe.data || + !Ge.needsHillshadePrepare + ) + continue; + const tt = Xe.dim, + jt = Xe.stride, + Zt = Xe.getPixels(); + if ( + (_e.activeTexture.set(Be.TEXTURE1), + _e.pixelStoreUnpackPremultiplyAlpha.set(!1), + (Ge.demTexture = + Ge.demTexture || Q.getTileTexture(jt)), + Ge.demTexture) + ) { + const vr = Ge.demTexture; + vr.update(Zt, { premultiply: !1 }), + vr.bind(Be.NEAREST, Be.CLAMP_TO_EDGE); + } else + (Ge.demTexture = new s.T(_e, Zt, Be.RGBA, { + premultiply: !1, + })), + Ge.demTexture.bind( + Be.NEAREST, + Be.CLAMP_TO_EDGE + ); + _e.activeTexture.set(Be.TEXTURE0); + let Tt = Ge.fbo; + if (!Tt) { + const vr = new s.T( + _e, + { width: tt, height: tt, data: null }, + Be.RGBA + ); + vr.bind(Be.LINEAR, Be.CLAMP_TO_EDGE), + (Tt = Ge.fbo = + _e.createFramebuffer(tt, tt, !0, !1)), + Tt.colorAttachment.set(vr.texture); + } + _e.bindFramebuffer.set(Tt.framebuffer), + _e.viewport.set([0, 0, tt, tt]), + Q.useProgram("hillshadePrepare").draw( + _e, + Be.TRIANGLES, + me, + be, + Pe, + Rr.disabled, + jh(Ge.tileID, Xe), + null, + null, + ve.id, + Q.rasterBoundsBuffer, + Q.quadTriangleIndexBuffer, + Q.rasterBoundsSegments + ), + (Ge.needsHillshadePrepare = !1); + } + })(g, w, P, C, G, un.disabled, te), + D.viewport.set([0, 0, g.width, g.height]); + else if (g.renderPass === "translucent") + if (N) { + const [Q, ae, ce] = + g.stencilConfigForOverlapTwoPass(P); + Ro(g, w, C, ce, Q, G, te, !1, R), + Ro(g, w, C, ce, ae, G, te, !0, R); + } else { + const [Q, ae] = + g.getStencilConfigForOverlapAndUpdateStencilID( + P + ); + Ro(g, w, C, ae, Q, G, te, !1, R); + } + })(e, i, l, u, d) + : s.ci(l) + ? (function (g, w, C, P, E) { + if (g.renderPass !== "translucent" || !P.length) + return; + const { isRenderingToTexture: R } = E, + D = g.style.projection.useSubdivision, + N = g.getDepthModeForSublayer(0, Gr.ReadOnly), + G = g.colorModeForRenderPass(); + if (D) { + const [te, Q, ae] = + g.stencilConfigForOverlapTwoPass(P); + Kc(g, w, C, ae, te, N, G, !1, R), + Kc(g, w, C, ae, Q, N, G, !0, R); + } else { + const [te, Q] = + g.getStencilConfigForOverlapAndUpdateStencilID( + P + ); + Kc(g, w, C, Q, te, N, G, !1, R); + } + })(e, i, l, u, d) + : s.cj(l) + ? (function (g, w, C, P, E) { + if ( + g.renderPass !== "translucent" || + C.paint.get("raster-opacity") === 0 || + !P.length + ) + return; + const { isRenderingToTexture: R } = E, + D = w.getSource(), + N = g.style.projection.useSubdivision; + if (D instanceof Ot) + Bo( + g, + w, + C, + P, + null, + !1, + !1, + D.tileCoords, + D.flippedWindingOrder, + R + ); + else if (N) { + const [G, te, Q] = + g.stencilConfigForOverlapTwoPass(P); + Bo(g, w, C, Q, G, !1, !0, Dl, !1, R), + Bo(g, w, C, Q, te, !0, !0, Dl, !1, R); + } else { + const [G, te] = + g.getStencilConfigForOverlapAndUpdateStencilID( + P + ); + Bo(g, w, C, te, G, !1, !0, Dl, !1, R); + } + })(e, i, l, u, d) + : s.ck(l) + ? (function (g, w, C, P, E) { + const R = C.paint.get("background-color"), + D = C.paint.get("background-opacity"); + if (D === 0) return; + const { isRenderingToTexture: N } = E, + G = g.context, + te = G.gl, + Q = g.style.projection, + ae = g.transform, + ce = ae.tileSize, + ve = C.paint.get("background-pattern"); + if (g.isPatternMissing(ve)) return; + const me = + !ve && + R.a === 1 && + D === 1 && + g.opaquePassEnabledForLayer() + ? "opaque" + : "translucent"; + if (g.renderPass !== me) return; + const be = un.disabled, + Pe = g.getDepthModeForSublayer( + 0, + me === "opaque" ? Gr.ReadWrite : Gr.ReadOnly + ), + _e = g.colorModeForRenderPass(), + Be = g.useProgram( + ve ? "backgroundPattern" : "background" + ), + rt = + P || + ye(ae, { + tileSize: ce, + terrain: g.style.map.terrain, + }); + ve && + (G.activeTexture.set(te.TEXTURE0), + g.imageManager.bind(g.context)); + const Ge = C.getCrossfadeParameters(); + for (const Xe of rt) { + const tt = ae.getProjectionData({ + overscaledTileID: Xe, + applyGlobeMatrix: !N, + applyTerrainMatrix: !0, + }), + jt = ve + ? Gh( + D, + g, + ve, + { tileID: Xe, tileSize: ce }, + Ge + ) + : $h(D, R), + Zt = + g.style.map.terrain && + g.style.map.terrain.getTerrainData(Xe), + Tt = Q.getMeshFromTileID( + G, + Xe.canonical, + !1, + !0, + "raster" + ); + Be.draw( + G, + te.TRIANGLES, + Pe, + be, + _e, + Rr.backCCW, + jt, + Zt, + tt, + C.id, + Tt.vertexBuffer, + Tt.indexBuffer, + Tt.segments + ); + } + })(e, 0, l, u, d) + : s.cl(l) && + (function (g, w, C, P) { + const { isRenderingGlobe: E } = P, + R = g.context, + D = C.implementation, + N = g.style.projection, + G = g.transform, + te = G.getProjectionDataForCustomLayer(E), + Q = { + farZ: G.farZ, + nearZ: G.nearZ, + fov: (G.fov * Math.PI) / 180, + modelViewProjectionMatrix: + G.modelViewProjectionMatrix, + projectionMatrix: G.projectionMatrix, + shaderData: { + variantName: N.shaderVariantName, + vertexShaderPrelude: `const float PI = 3.141592653589793; +uniform mat4 u_projection_matrix; +${N.shaderPreludeCode.vertexSource}`, + define: N.shaderDefine, + }, + defaultProjectionData: te, + }, + ae = D.renderingMode ? D.renderingMode : "2d"; + if (g.renderPass === "offscreen") { + const ce = D.prerender; + ce && + (g.setCustomLayerDefaults(), + R.setColorMode(g.colorModeForRenderPass()), + ce.call(D, R.gl, Q), + R.setDirty(), + g.setBaseState()); + } else if (g.renderPass === "translucent") { + g.setCustomLayerDefaults(), + R.setColorMode(g.colorModeForRenderPass()), + R.setStencilMode(un.disabled); + const ce = + ae === "3d" + ? g.getDepthModeFor3D() + : g.getDepthModeForSublayer(0, Gr.ReadOnly); + R.setDepthMode(ce), + D.render(R.gl, Q), + R.setDirty(), + g.setBaseState(), + R.bindFramebuffer.set(null); + } + })(e, 0, l, d))); + } + saveTileTexture(e) { + const i = this._tileTextures[e.size[0]]; + i ? i.push(e) : (this._tileTextures[e.size[0]] = [e]); + } + getTileTexture(e) { + const i = this._tileTextures[e]; + return i && i.length > 0 ? i.pop() : null; + } + isPatternMissing(e) { + if (!e) return !1; + if (!e.from || !e.to) return !0; + const i = this.imageManager.getPattern(e.from.toString()), + l = this.imageManager.getPattern(e.to.toString()); + return !i || !l; + } + useProgram(e, i, l = !1, u = []) { + this.cache = this.cache || {}; + const d = !!this.style.map.terrain, + g = this.style.projection, + w = l ? $r.projectionMercator : g.shaderPreludeCode, + C = l ? Cn : g.shaderDefine, + P = + e + + (i ? i.cacheKey : "") + + `/${l ? Gn : g.shaderVariantName}` + + (this._showOverdrawInspector ? "/overdraw" : "") + + (d ? "/terrain" : "") + + (u ? `/${u.join("/")}` : ""); + return ( + this.cache[P] || + (this.cache[P] = new Dc( + this.context, + $r[e], + i, + jc[e], + this._showOverdrawInspector, + d, + w, + C, + u + )), + this.cache[P] + ); + } + 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 e = this.context.gl; + this.context.cullFace.set(!1), + this.context.viewport.set([0, 0, this.width, this.height]), + this.context.blendEquation.set(e.FUNC_ADD); + } + initDebugOverlayCanvas() { + this.debugOverlayCanvas == null && + ((this.debugOverlayCanvas = + document.createElement("canvas")), + (this.debugOverlayCanvas.width = 512), + (this.debugOverlayCanvas.height = 512), + (this.debugOverlayTexture = new s.T( + this.context, + this.debugOverlayCanvas, + this.context.gl.RGBA + ))); + } + destroy() { + this.debugOverlayTexture && + this.debugOverlayTexture.destroy(); + } + overLimit() { + const { drawingBufferWidth: e, drawingBufferHeight: i } = + this.context.gl; + return this.width !== e || this.height !== i; + } + } + function Fo(h, e) { + let i, + l = !1, + u = null, + d = null; + const g = () => { + (u = null), + l && (h.apply(d, i), (u = setTimeout(g, e)), (l = !1)); + }; + return (...w) => ((l = !0), (d = this), (i = w), u || g(), u); + } + class Fl { + constructor(e) { + (this._getCurrentHash = () => { + const i = window.location.hash.replace("#", ""); + if (this._hashName) { + let l; + return ( + i + .split("&") + .map((u) => u.split("=")) + .forEach((u) => { + u[0] === this._hashName && (l = u); + }), + ((l && l[1]) || "").split("/") + ); + } + return i.split("/"); + }), + (this._onHashChange = () => { + const i = this._getCurrentHash(); + if (!this._isValidHash(i)) return !1; + const l = + this._map.dragRotate.isEnabled() && + this._map.touchZoomRotate.isEnabled() + ? +(i[3] || 0) + : this._map.getBearing(); + return ( + this._map.jumpTo({ + center: [+i[2], +i[1]], + zoom: +i[0], + bearing: l, + pitch: +(i[4] || 0), + }), + !0 + ); + }), + (this._updateHashUnthrottled = () => { + const i = window.location.href.replace( + /(#.*)?$/, + this.getHashString() + ); + window.history.replaceState( + window.history.state, + null, + i + ); + }), + (this._removeHash = () => { + const i = this._getCurrentHash(); + if (i.length === 0) return; + const l = i.join("/"); + let u = l; + u.split("&").length > 0 && (u = u.split("&")[0]), + this._hashName && (u = `${this._hashName}=${l}`); + let d = window.location.hash.replace(u, ""); + d.startsWith("#&") + ? (d = d.slice(0, 1) + d.slice(2)) + : d === "#" && (d = ""); + let g = window.location.href.replace(/(#.+)?$/, d); + (g = g.replace("&&", "&")), + window.history.replaceState( + window.history.state, + null, + g + ); + }), + (this._updateHash = Fo(this._updateHashUnthrottled, 300)), + (this._hashName = e && encodeURIComponent(e)); + } + addTo(e) { + return ( + (this._map = e), + addEventListener("hashchange", this._onHashChange, !1), + this._map.on("moveend", this._updateHash), + this + ); + } + remove() { + return ( + removeEventListener("hashchange", this._onHashChange, !1), + this._map.off("moveend", this._updateHash), + clearTimeout(this._updateHash()), + this._removeHash(), + delete this._map, + this + ); + } + getHashString(e) { + const i = this._map.getCenter(), + l = Math.round(100 * this._map.getZoom()) / 100, + u = Math.ceil( + (l * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10 + ), + d = Math.pow(10, u), + g = Math.round(i.lng * d) / d, + w = Math.round(i.lat * d) / d, + C = this._map.getBearing(), + P = this._map.getPitch(); + let E = ""; + if ( + ((E += e ? `/${g}/${w}/${l}` : `${l}/${w}/${g}`), + (C || P) && (E += "/" + Math.round(10 * C) / 10), + P && (E += `/${Math.round(P)}`), + this._hashName) + ) { + const R = this._hashName; + let D = !1; + const N = window.location.hash + .slice(1) + .split("&") + .map((G) => { + const te = G.split("=")[0]; + return te === R ? ((D = !0), `${te}=${E}`) : G; + }) + .filter((G) => G); + return D || N.push(`${R}=${E}`), `#${N.join("&")}`; + } + return `#${E}`; + } + _isValidHash(e) { + if (e.length < 3 || e.some(isNaN)) return !1; + try { + new s.S(+e[2], +e[1]); + } catch { + return !1; + } + const i = +e[0], + l = +(e[3] || 0), + u = +(e[4] || 0); + return ( + i >= this._map.getMinZoom() && + i <= this._map.getMaxZoom() && + l >= -180 && + l <= 180 && + u >= this._map.getMinPitch() && + u <= this._map.getMaxPitch() + ); + } + } + const to = { linearity: 0.3, easing: s.cm(0, 0, 0.3, 1) }, + tu = s.e({ deceleration: 2500, maxSpeed: 1400 }, to), + ld = s.e({ deceleration: 20, maxSpeed: 1400 }, to), + cd = s.e({ deceleration: 1e3, maxSpeed: 360 }, to), + ud = s.e({ deceleration: 1e3, maxSpeed: 90 }, to), + hd = s.e({ deceleration: 1e3, maxSpeed: 360 }, to); + class dd { + constructor(e) { + (this._map = e), this.clear(); + } + clear() { + this._inertiaBuffer = []; + } + record(e) { + this._drainInertiaBuffer(), + this._inertiaBuffer.push({ time: ne.now(), settings: e }); + } + _drainInertiaBuffer() { + const e = this._inertiaBuffer, + i = ne.now(); + for (; e.length > 0 && i - e[0].time > 160; ) e.shift(); + } + _onMoveEnd(e) { + if ( + (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) + ) + return; + const i = { + zoom: 0, + bearing: 0, + pitch: 0, + roll: 0, + pan: new s.P(0, 0), + pinchAround: void 0, + around: void 0, + }; + for (const { settings: d } of this._inertiaBuffer) + (i.zoom += d.zoomDelta || 0), + (i.bearing += d.bearingDelta || 0), + (i.pitch += d.pitchDelta || 0), + (i.roll += d.rollDelta || 0), + d.panDelta && i.pan._add(d.panDelta), + d.around && (i.around = d.around), + d.pinchAround && (i.pinchAround = d.pinchAround); + const l = + this._inertiaBuffer[this._inertiaBuffer.length - 1].time - + this._inertiaBuffer[0].time, + u = {}; + if (i.pan.mag()) { + const d = ns(i.pan.mag(), l, s.e({}, tu, e || {})), + g = i.pan.mult(d.amount / i.pan.mag()), + w = this._map.cameraHelper.handlePanInertia( + g, + this._map.transform + ); + (u.center = w.easingCenter), + (u.offset = w.easingOffset), + Ia(u, d); + } + if (i.zoom) { + const d = ns(i.zoom, l, ld); + (u.zoom = this._map.transform.zoom + d.amount), Ia(u, d); + } + if (i.bearing) { + const d = ns(i.bearing, l, cd); + (u.bearing = + this._map.transform.bearing + s.ah(d.amount, -179, 179)), + Ia(u, d); + } + if (i.pitch) { + const d = ns(i.pitch, l, ud); + (u.pitch = this._map.transform.pitch + d.amount), Ia(u, d); + } + if (i.roll) { + const d = ns(i.roll, l, hd); + (u.roll = + this._map.transform.roll + s.ah(d.amount, -179, 179)), + Ia(u, d); + } + if (u.zoom || u.bearing) { + const d = + i.pinchAround === void 0 ? i.around : i.pinchAround; + u.around = d + ? this._map.unproject(d) + : this._map.getCenter(); + } + return this.clear(), s.e(u, { noMoveStart: !0 }); + } + } + function Ia(h, e) { + (!h.duration || h.duration < e.duration) && + ((h.duration = e.duration), (h.easing = e.easing)); + } + function ns(h, e, i) { + const { maxSpeed: l, linearity: u, deceleration: d } = i, + g = s.ah((h * u) / (e / 1e3), -l, l), + w = Math.abs(g) / (d * u); + return { + easing: i.easing, + duration: 1e3 * w, + amount: g * (w / 2), + }; + } + class Qi extends s.l { + preventDefault() { + this._defaultPrevented = !0; + } + get defaultPrevented() { + return this._defaultPrevented; + } + constructor(e, i, l, u = {}) { + l = l instanceof MouseEvent ? l : new MouseEvent(e, l); + const d = H.mousePos(i.getCanvas(), l), + g = i.unproject(d); + super(e, s.e({ point: d, lngLat: g, originalEvent: l }, u)), + (this._defaultPrevented = !1), + (this.target = i); + } + } + class is extends s.l { + preventDefault() { + this._defaultPrevented = !0; + } + get defaultPrevented() { + return this._defaultPrevented; + } + constructor(e, i, l) { + const u = e === "touchend" ? l.changedTouches : l.touches, + d = H.touchPos(i.getCanvasContainer(), u), + g = d.map((C) => i.unproject(C)), + w = d.reduce( + (C, P, E, R) => C.add(P.div(R.length)), + new s.P(0, 0) + ); + super(e, { + points: d, + point: w, + lngLats: g, + lngLat: i.unproject(w), + originalEvent: l, + }), + (this._defaultPrevented = !1); + } + } + class ru extends s.l { + preventDefault() { + this._defaultPrevented = !0; + } + get defaultPrevented() { + return this._defaultPrevented; + } + constructor(e, i, l) { + super(e, { originalEvent: l }), (this._defaultPrevented = !1); + } + } + class pd { + constructor(e, i) { + (this._map = e), (this._clickTolerance = i.clickTolerance); + } + reset() { + delete this._mousedownPos; + } + wheel(e) { + return this._firePreventable(new ru(e.type, this._map, e)); + } + mousedown(e, i) { + return ( + (this._mousedownPos = i), + this._firePreventable(new Qi(e.type, this._map, e)) + ); + } + mouseup(e) { + this._map.fire(new Qi(e.type, this._map, e)); + } + click(e, i) { + (this._mousedownPos && + this._mousedownPos.dist(i) >= this._clickTolerance) || + this._map.fire(new Qi(e.type, this._map, e)); + } + dblclick(e) { + return this._firePreventable(new Qi(e.type, this._map, e)); + } + mouseover(e) { + this._map.fire(new Qi(e.type, this._map, e)); + } + mouseout(e) { + this._map.fire(new Qi(e.type, this._map, e)); + } + touchstart(e) { + return this._firePreventable(new is(e.type, this._map, e)); + } + touchmove(e) { + this._map.fire(new is(e.type, this._map, e)); + } + touchend(e) { + this._map.fire(new is(e.type, this._map, e)); + } + touchcancel(e) { + this._map.fire(new is(e.type, this._map, e)); + } + _firePreventable(e) { + if ((this._map.fire(e), e.defaultPrevented)) return {}; + } + isEnabled() { + return !0; + } + isActive() { + return !1; + } + enable() {} + disable() {} + } + class fd { + constructor(e) { + this._map = e; + } + reset() { + (this._delayContextMenu = !1), + (this._ignoreContextMenu = !0), + delete this._contextMenuEvent; + } + mousemove(e) { + this._map.fire(new Qi(e.type, this._map, e)); + } + mousedown() { + (this._delayContextMenu = !0), (this._ignoreContextMenu = !1); + } + mouseup() { + (this._delayContextMenu = !1), + this._contextMenuEvent && + (this._map.fire( + new Qi("contextmenu", this._map, this._contextMenuEvent) + ), + delete this._contextMenuEvent); + } + contextmenu(e) { + this._delayContextMenu + ? (this._contextMenuEvent = e) + : this._ignoreContextMenu || + this._map.fire(new Qi(e.type, this._map, e)), + this._map.listens("contextmenu") && e.preventDefault(); + } + isEnabled() { + return !0; + } + isActive() { + return !1; + } + enable() {} + disable() {} + } + class as { + constructor(e) { + this._map = e; + } + 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(e) { + return this.transform.screenPointToLocation( + s.P.convert(e), + this._map.terrain + ); + } + } + class nu { + constructor(e, i) { + (this._map = e), + (this._tr = new as(e)), + (this._el = e.getCanvasContainer()), + (this._container = e.getContainer()), + (this._clickTolerance = i.clickTolerance || 1); + } + isEnabled() { + return !!this._enabled; + } + isActive() { + return !!this._active; + } + enable() { + this.isEnabled() || (this._enabled = !0); + } + disable() { + this.isEnabled() && (this._enabled = !1); + } + mousedown(e, i) { + this.isEnabled() && + e.shiftKey && + e.button === 0 && + (H.disableDrag(), + (this._startPos = this._lastPos = i), + (this._active = !0)); + } + mousemoveWindow(e, i) { + if (!this._active) return; + const l = i; + if ( + this._lastPos.equals(l) || + (!this._box && + l.dist(this._startPos) < this._clickTolerance) + ) + return; + const u = this._startPos; + (this._lastPos = l), + this._box || + ((this._box = H.create( + "div", + "maplibregl-boxzoom", + this._container + )), + this._container.classList.add("maplibregl-crosshair"), + this._fireEvent("boxzoomstart", e)); + const d = Math.min(u.x, l.x), + g = Math.max(u.x, l.x), + w = Math.min(u.y, l.y), + C = Math.max(u.y, l.y); + H.setTransform(this._box, `translate(${d}px,${w}px)`), + (this._box.style.width = g - d + "px"), + (this._box.style.height = C - w + "px"); + } + mouseupWindow(e, i) { + if (!this._active || e.button !== 0) return; + const l = this._startPos, + u = i; + if ( + (this.reset(), + H.suppressClick(), + l.x !== u.x || l.y !== u.y) + ) + return ( + this._map.fire( + new s.l("boxzoomend", { originalEvent: e }) + ), + { + cameraAnimation: (d) => + d.fitScreenCoordinates(l, u, this._tr.bearing, { + linear: !0, + }), + } + ); + this._fireEvent("boxzoomcancel", e); + } + keydown(e) { + this._active && + e.keyCode === 27 && + (this.reset(), this._fireEvent("boxzoomcancel", e)); + } + reset() { + (this._active = !1), + this._container.classList.remove("maplibregl-crosshair"), + this._box && (H.remove(this._box), (this._box = null)), + H.enableDrag(), + delete this._startPos, + delete this._lastPos; + } + _fireEvent(e, i) { + return this._map.fire(new s.l(e, { originalEvent: i })); + } + } + function os(h, e) { + if (h.length !== e.length) + throw new Error( + `The number of touches and points are not equal - touches ${h.length}, points ${e.length}` + ); + const i = {}; + for (let l = 0; l < h.length; l++) i[h[l].identifier] = e[l]; + return i; + } + class md { + constructor(e) { + this.reset(), (this.numTouches = e.numTouches); + } + reset() { + delete this.centroid, + delete this.startTime, + delete this.touches, + (this.aborted = !1); + } + touchstart(e, i, l) { + (this.centroid || l.length > this.numTouches) && + (this.aborted = !0), + this.aborted || + (this.startTime === void 0 && + (this.startTime = e.timeStamp), + l.length === this.numTouches && + ((this.centroid = (function (u) { + const d = new s.P(0, 0); + for (const g of u) d._add(g); + return d.div(u.length); + })(i)), + (this.touches = os(l, i)))); + } + touchmove(e, i, l) { + if (this.aborted || !this.centroid) return; + const u = os(l, i); + for (const d in this.touches) { + const g = u[d]; + (!g || g.dist(this.touches[d]) > 30) && (this.aborted = !0); + } + } + touchend(e, i, l) { + if ( + ((!this.centroid || e.timeStamp - this.startTime > 500) && + (this.aborted = !0), + l.length === 0) + ) { + const u = !this.aborted && this.centroid; + if ((this.reset(), u)) return u; + } + } + } + class ea { + constructor(e) { + (this.singleTap = new md(e)), + (this.numTaps = e.numTaps), + this.reset(); + } + reset() { + (this.lastTime = 1 / 0), + delete this.lastTap, + (this.count = 0), + this.singleTap.reset(); + } + touchstart(e, i, l) { + this.singleTap.touchstart(e, i, l); + } + touchmove(e, i, l) { + this.singleTap.touchmove(e, i, l); + } + touchend(e, i, l) { + const u = this.singleTap.touchend(e, i, l); + if (u) { + const d = e.timeStamp - this.lastTime < 500, + g = !this.lastTap || this.lastTap.dist(u) < 30; + if ( + ((d && g) || this.reset(), + this.count++, + (this.lastTime = e.timeStamp), + (this.lastTap = u), + this.count === this.numTaps) + ) + return this.reset(), u; + } + } + } + class Ma { + constructor(e) { + (this._tr = new as(e)), + (this._zoomIn = new ea({ numTouches: 1, numTaps: 2 })), + (this._zoomOut = new ea({ numTouches: 2, numTaps: 1 })), + this.reset(); + } + reset() { + (this._active = !1), + this._zoomIn.reset(), + this._zoomOut.reset(); + } + touchstart(e, i, l) { + this._zoomIn.touchstart(e, i, l), + this._zoomOut.touchstart(e, i, l); + } + touchmove(e, i, l) { + this._zoomIn.touchmove(e, i, l), + this._zoomOut.touchmove(e, i, l); + } + touchend(e, i, l) { + const u = this._zoomIn.touchend(e, i, l), + d = this._zoomOut.touchend(e, i, l), + g = this._tr; + return u + ? ((this._active = !0), + e.preventDefault(), + setTimeout(() => this.reset(), 0), + { + cameraAnimation: (w) => + w.easeTo( + { + duration: 300, + zoom: g.zoom + 1, + around: g.unproject(u), + }, + { originalEvent: e } + ), + }) + : d + ? ((this._active = !0), + e.preventDefault(), + setTimeout(() => this.reset(), 0), + { + cameraAnimation: (w) => + w.easeTo( + { + duration: 300, + zoom: g.zoom - 1, + around: g.unproject(d), + }, + { originalEvent: e } + ), + }) + : void 0; + } + touchcancel() { + this.reset(); + } + enable() { + this._enabled = !0; + } + disable() { + (this._enabled = !1), this.reset(); + } + isEnabled() { + return this._enabled; + } + isActive() { + return this._active; + } + } + class ss { + constructor(e) { + (this._enabled = !!e.enable), + (this._moveStateManager = e.moveStateManager), + (this._clickTolerance = e.clickTolerance || 1), + (this._moveFunction = e.move), + (this._activateOnStart = !!e.activateOnStart), + e.assignEvents(this), + this.reset(); + } + reset(e) { + (this._active = !1), + (this._moved = !1), + delete this._lastPoint, + this._moveStateManager.endMove(e); + } + _move(...e) { + const i = this._moveFunction(...e); + if ( + i.bearingDelta || + i.pitchDelta || + i.rollDelta || + i.around || + i.panDelta + ) + return (this._active = !0), i; + } + dragStart(e, i) { + this.isEnabled() && + !this._lastPoint && + this._moveStateManager.isValidStartEvent(e) && + (this._moveStateManager.startMove(e), + (this._lastPoint = Array.isArray(i) ? i[0] : i), + this._activateOnStart && + this._lastPoint && + (this._active = !0)); + } + dragMove(e, i) { + if (!this.isEnabled()) return; + const l = this._lastPoint; + if (!l) return; + if ( + (e.preventDefault(), + !this._moveStateManager.isValidMoveEvent(e)) + ) + return void this.reset(e); + const u = Array.isArray(i) ? i[0] : i; + return !this._moved && u.dist(l) < this._clickTolerance + ? void 0 + : ((this._moved = !0), + (this._lastPoint = u), + this._move(l, u)); + } + dragEnd(e) { + this.isEnabled() && + this._lastPoint && + this._moveStateManager.isValidEndEvent(e) && + (this._moved && H.suppressClick(), this.reset(e)); + } + enable() { + this._enabled = !0; + } + disable() { + (this._enabled = !1), this.reset(); + } + isEnabled() { + return this._enabled; + } + isActive() { + return this._active; + } + getClickTolerance() { + return this._clickTolerance; + } + } + const ka = 0, + ls = 2, + jp = { [ka]: 1, [ls]: 2 }; + class Ws { + constructor(e) { + this._correctEvent = e.checkCorrectEvent; + } + startMove(e) { + const i = H.mouseButton(e); + this._eventButton = i; + } + endMove(e) { + delete this._eventButton; + } + isValidStartEvent(e) { + return this._correctEvent(e); + } + isValidMoveEvent(e) { + return !(function (i, l) { + const u = jp[l]; + return i.buttons === void 0 || (i.buttons & u) !== u; + })(e, this._eventButton); + } + isValidEndEvent(e) { + return H.mouseButton(e) === this._eventButton; + } + } + class Vp { + constructor() { + this._firstTouch = void 0; + } + _isOneFingerTouch(e) { + return e.targetTouches.length === 1; + } + _isSameTouchEvent(e) { + return e.targetTouches[0].identifier === this._firstTouch; + } + startMove(e) { + this._firstTouch = e.targetTouches[0].identifier; + } + endMove(e) { + delete this._firstTouch; + } + isValidStartEvent(e) { + return this._isOneFingerTouch(e); + } + isValidMoveEvent(e) { + return this._isOneFingerTouch(e) && this._isSameTouchEvent(e); + } + isValidEndEvent(e) { + return this._isOneFingerTouch(e) && this._isSameTouchEvent(e); + } + } + class qp { + constructor( + e = new Ws({ checkCorrectEvent: () => !0 }), + i = new Vp() + ) { + (this.mouseMoveStateManager = e), + (this.oneFingerTouchMoveStateManager = i); + } + _executeRelevantHandler(e, i, l) { + return e instanceof MouseEvent + ? i(e) + : typeof TouchEvent < "u" && e instanceof TouchEvent + ? l(e) + : void 0; + } + startMove(e) { + this._executeRelevantHandler( + e, + (i) => this.mouseMoveStateManager.startMove(i), + (i) => this.oneFingerTouchMoveStateManager.startMove(i) + ); + } + endMove(e) { + this._executeRelevantHandler( + e, + (i) => this.mouseMoveStateManager.endMove(i), + (i) => this.oneFingerTouchMoveStateManager.endMove(i) + ); + } + isValidStartEvent(e) { + return this._executeRelevantHandler( + e, + (i) => this.mouseMoveStateManager.isValidStartEvent(i), + (i) => + this.oneFingerTouchMoveStateManager.isValidStartEvent(i) + ); + } + isValidMoveEvent(e) { + return this._executeRelevantHandler( + e, + (i) => this.mouseMoveStateManager.isValidMoveEvent(i), + (i) => + this.oneFingerTouchMoveStateManager.isValidMoveEvent(i) + ); + } + isValidEndEvent(e) { + return this._executeRelevantHandler( + e, + (i) => this.mouseMoveStateManager.isValidEndEvent(i), + (i) => + this.oneFingerTouchMoveStateManager.isValidEndEvent(i) + ); + } + } + const Xs = (h) => { + (h.mousedown = h.dragStart), + (h.mousemoveWindow = h.dragMove), + (h.mouseup = h.dragEnd), + (h.contextmenu = (e) => { + e.preventDefault(); + }); + }; + class Ys { + constructor(e, i) { + (this._clickTolerance = e.clickTolerance || 1), + (this._map = i), + this.reset(); + } + reset() { + (this._active = !1), + (this._touches = {}), + (this._sum = new s.P(0, 0)); + } + _shouldBePrevented(e) { + return ( + e < (this._map.cooperativeGestures.isEnabled() ? 2 : 1) + ); + } + touchstart(e, i, l) { + return this._calculateTransform(e, i, l); + } + touchmove(e, i, l) { + if (this._active) { + if (!this._shouldBePrevented(l.length)) + return ( + e.preventDefault(), this._calculateTransform(e, i, l) + ); + this._map.cooperativeGestures.notifyGestureBlocked( + "touch_pan", + e + ); + } + } + touchend(e, i, l) { + this._calculateTransform(e, i, l), + this._active && + this._shouldBePrevented(l.length) && + this.reset(); + } + touchcancel() { + this.reset(); + } + _calculateTransform(e, i, l) { + l.length > 0 && (this._active = !0); + const u = os(l, i), + d = new s.P(0, 0), + g = new s.P(0, 0); + let w = 0; + for (const P in u) { + const E = u[P], + R = this._touches[P]; + R && (d._add(E), g._add(E.sub(R)), w++, (u[P] = E)); + } + if ( + ((this._touches = u), + this._shouldBePrevented(w) || !g.mag()) + ) + return; + const C = g.div(w); + return ( + this._sum._add(C), + this._sum.mag() < this._clickTolerance + ? void 0 + : { around: d.div(w), panDelta: C } + ); + } + enable() { + this._enabled = !0; + } + disable() { + (this._enabled = !1), this.reset(); + } + isEnabled() { + return this._enabled; + } + isActive() { + return this._active; + } + } + class Aa { + constructor() { + this.reset(); + } + reset() { + (this._active = !1), delete this._firstTwoTouches; + } + touchstart(e, i, l) { + this._firstTwoTouches || + l.length < 2 || + ((this._firstTwoTouches = [ + l[0].identifier, + l[1].identifier, + ]), + this._start([i[0], i[1]])); + } + touchmove(e, i, l) { + if (!this._firstTwoTouches) return; + e.preventDefault(); + const [u, d] = this._firstTwoTouches, + g = ir(l, i, u), + w = ir(l, i, d); + if (!g || !w) return; + const C = this._aroundCenter ? null : g.add(w).div(2); + return this._move([g, w], C, e); + } + touchend(e, i, l) { + if (!this._firstTwoTouches) return; + const [u, d] = this._firstTwoTouches, + g = ir(l, i, u), + w = ir(l, i, d); + (g && w) || (this._active && H.suppressClick(), this.reset()); + } + touchcancel() { + this.reset(); + } + enable(e) { + (this._enabled = !0), + (this._aroundCenter = !!e && e.around === "center"); + } + disable() { + (this._enabled = !1), this.reset(); + } + isEnabled() { + return !!this._enabled; + } + isActive() { + return !!this._active; + } + } + function ir(h, e, i) { + for (let l = 0; l < h.length; l++) + if (h[l].identifier === i) return e[l]; + } + function iu(h, e) { + return Math.log(h / e) / Math.LN2; + } + class Ol extends Aa { + reset() { + super.reset(), + delete this._distance, + delete this._startDistance; + } + _start(e) { + this._startDistance = this._distance = e[0].dist(e[1]); + } + _move(e, i) { + const l = this._distance; + if ( + ((this._distance = e[0].dist(e[1])), + this._active || + !( + Math.abs(iu(this._distance, this._startDistance)) < 0.1 + )) + ) + return ( + (this._active = !0), + { zoomDelta: iu(this._distance, l), pinchAround: i } + ); + } + } + function au(h, e) { + return (180 * h.angleWith(e)) / Math.PI; + } + class cs extends Aa { + reset() { + super.reset(), + delete this._minDiameter, + delete this._startVector, + delete this._vector; + } + _start(e) { + (this._startVector = this._vector = e[0].sub(e[1])), + (this._minDiameter = e[0].dist(e[1])); + } + _move(e, i, l) { + const u = this._vector; + if ( + ((this._vector = e[0].sub(e[1])), + this._active || !this._isBelowThreshold(this._vector)) + ) + return ( + (this._active = !0), + { bearingDelta: au(this._vector, u), pinchAround: i } + ); + } + _isBelowThreshold(e) { + this._minDiameter = Math.min(this._minDiameter, e.mag()); + const i = (25 / (Math.PI * this._minDiameter)) * 360, + l = au(e, this._startVector); + return Math.abs(l) < i; + } + } + function Oo(h) { + return Math.abs(h.y) > Math.abs(h.x); + } + class Nl extends Aa { + constructor(e) { + super(), (this._currentTouchCount = 0), (this._map = e); + } + reset() { + super.reset(), + (this._valid = void 0), + delete this._firstMove, + delete this._lastPoints; + } + touchstart(e, i, l) { + super.touchstart(e, i, l), + (this._currentTouchCount = l.length); + } + _start(e) { + (this._lastPoints = e), + Oo(e[0].sub(e[1])) && (this._valid = !1); + } + _move(e, i, l) { + if ( + this._map.cooperativeGestures.isEnabled() && + this._currentTouchCount < 3 + ) + return; + const u = e[0].sub(this._lastPoints[0]), + d = e[1].sub(this._lastPoints[1]); + return ( + (this._valid = this.gestureBeginsVertically( + u, + d, + l.timeStamp + )), + this._valid + ? ((this._lastPoints = e), + (this._active = !0), + { pitchDelta: ((u.y + d.y) / 2) * -0.5 }) + : void 0 + ); + } + gestureBeginsVertically(e, i, l) { + if (this._valid !== void 0) return this._valid; + const u = e.mag() >= 2, + d = i.mag() >= 2; + if (!u && !d) return; + if (!u || !d) + return ( + this._firstMove === void 0 && (this._firstMove = l), + l - this._firstMove < 100 && void 0 + ); + const g = e.y > 0 == i.y > 0; + return Oo(e) && Oo(i) && g; + } + } + const hn = { panStep: 100, bearingStep: 15, pitchStep: 10 }; + class jl { + constructor(e) { + this._tr = new as(e); + const i = hn; + (this._panStep = i.panStep), + (this._bearingStep = i.bearingStep), + (this._pitchStep = i.pitchStep), + (this._rotationDisabled = !1); + } + reset() { + this._active = !1; + } + keydown(e) { + if (e.altKey || e.ctrlKey || e.metaKey) return; + let i = 0, + l = 0, + u = 0, + d = 0, + g = 0; + switch (e.keyCode) { + case 61: + case 107: + case 171: + case 187: + i = 1; + break; + case 189: + case 109: + case 173: + i = -1; + break; + case 37: + e.shiftKey ? (l = -1) : (e.preventDefault(), (d = -1)); + break; + case 39: + e.shiftKey ? (l = 1) : (e.preventDefault(), (d = 1)); + break; + case 38: + e.shiftKey ? (u = 1) : (e.preventDefault(), (g = -1)); + break; + case 40: + e.shiftKey ? (u = -1) : (e.preventDefault(), (g = 1)); + break; + default: + return; + } + return ( + this._rotationDisabled && ((l = 0), (u = 0)), + { + cameraAnimation: (w) => { + const C = this._tr; + w.easeTo( + { + duration: 300, + easeId: "keyboardHandler", + easing: Zp, + zoom: i + ? Math.round(C.zoom) + i * (e.shiftKey ? 2 : 1) + : C.zoom, + bearing: C.bearing + l * this._bearingStep, + pitch: C.pitch + u * this._pitchStep, + offset: [-d * this._panStep, -g * this._panStep], + center: C.center, + }, + { originalEvent: e } + ); + }, + } + ); + } + enable() { + this._enabled = !0; + } + disable() { + (this._enabled = !1), this.reset(); + } + isEnabled() { + return this._enabled; + } + isActive() { + return this._active; + } + disableRotation() { + this._rotationDisabled = !0; + } + enableRotation() { + this._rotationDisabled = !1; + } + } + function Zp(h) { + return h * (2 - h); + } + const Vl = 4.000244140625, + Up = 1 / 450; + class _d { + constructor(e, i) { + (this._onTimeout = (l) => { + (this._type = "wheel"), + (this._delta -= this._lastValue), + this._active || this._start(l); + }), + (this._map = e), + (this._tr = new as(e)), + (this._triggerRenderFrame = i), + (this._delta = 0), + (this._defaultZoomRate = 0.01), + (this._wheelZoomRate = Up); + } + setZoomRate(e) { + this._defaultZoomRate = e; + } + setWheelZoomRate(e) { + this._wheelZoomRate = e; + } + isEnabled() { + return !!this._enabled; + } + isActive() { + return !!this._active || this._finishTimeout !== void 0; + } + isZooming() { + return !!this._zooming; + } + enable(e) { + this.isEnabled() || + ((this._enabled = !0), + (this._aroundCenter = !!e && e.around === "center")); + } + disable() { + this.isEnabled() && (this._enabled = !1); + } + _shouldBePrevented(e) { + return ( + !!this._map.cooperativeGestures.isEnabled() && + !(e.ctrlKey || this._map.cooperativeGestures.isBypassed(e)) + ); + } + wheel(e) { + if (!this.isEnabled()) return; + if (this._shouldBePrevented(e)) + return void this._map.cooperativeGestures.notifyGestureBlocked( + "wheel_zoom", + e + ); + let i = + e.deltaMode === WheelEvent.DOM_DELTA_LINE + ? 40 * e.deltaY + : e.deltaY; + const l = ne.now(), + u = l - (this._lastWheelEventTime || 0); + (this._lastWheelEventTime = l), + i !== 0 && i % Vl == 0 + ? (this._type = "wheel") + : i !== 0 && Math.abs(i) < 4 + ? (this._type = "trackpad") + : u > 400 + ? ((this._type = null), + (this._lastValue = i), + (this._timeout = setTimeout(this._onTimeout, 40, e))) + : this._type || + ((this._type = + Math.abs(u * i) < 200 ? "trackpad" : "wheel"), + this._timeout && + (clearTimeout(this._timeout), + (this._timeout = null), + (i += this._lastValue))), + e.shiftKey && i && (i /= 4), + this._type && + ((this._lastWheelEvent = e), + (this._delta -= i), + this._active || this._start(e)), + e.preventDefault(); + } + _start(e) { + 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 i = H.mousePos(this._map.getCanvas(), e), + l = this._tr; + (this._aroundPoint = this._aroundCenter + ? l.transform.locationToScreenPoint(s.S.convert(l.center)) + : i), + this._frameId || + ((this._frameId = !0), this._triggerRenderFrame()); + } + renderFrame() { + if ( + !this._frameId || + ((this._frameId = null), !this.isActive()) + ) + return; + const e = this._tr.transform; + if (typeof this._lastExpectedZoom == "number") { + const w = e.zoom - this._lastExpectedZoom; + typeof this._startZoom == "number" && + (this._startZoom += w), + typeof this._targetZoom == "number" && + (this._targetZoom += w); + } + if (this._delta !== 0) { + const w = + this._type === "wheel" && Math.abs(this._delta) > Vl + ? this._wheelZoomRate + : this._defaultZoomRate; + let C = 2 / (1 + Math.exp(-Math.abs(this._delta * w))); + this._delta < 0 && C !== 0 && (C = 1 / C); + const P = + typeof this._targetZoom != "number" + ? e.scale + : s.af(this._targetZoom); + (this._targetZoom = e.getConstrained( + e.getCameraLngLat(), + s.ak(P * C) + ).zoom), + this._type === "wheel" && + ((this._startZoom = e.zoom), + (this._easing = this._smoothOutEasing(200))), + (this._delta = 0); + } + const i = + typeof this._targetZoom != "number" + ? e.zoom + : this._targetZoom, + l = this._startZoom, + u = this._easing; + let d, + g = !1; + if (this._type === "wheel" && l && u) { + const w = ne.now() - this._lastWheelEventTime, + C = Math.min((w + 5) / 200, 1), + P = u(C); + (d = s.C.number(l, i, P)), + C < 1 ? this._frameId || (this._frameId = !0) : (g = !0); + } else (d = i), (g = !0); + return ( + (this._active = !0), + g && + ((this._active = !1), + (this._finishTimeout = setTimeout(() => { + (this._zooming = !1), + this._triggerRenderFrame(), + delete this._targetZoom, + delete this._lastExpectedZoom, + delete this._finishTimeout; + }, 200))), + (this._lastExpectedZoom = d), + { + noInertia: !0, + needsRenderFrame: !g, + zoomDelta: d - e.zoom, + around: this._aroundPoint, + originalEvent: this._lastWheelEvent, + } + ); + } + _smoothOutEasing(e) { + let i = s.co; + if (this._prevEase) { + const l = this._prevEase, + u = (ne.now() - l.start) / l.duration, + d = l.easing(u + 0.01) - l.easing(u), + g = (0.27 / Math.sqrt(d * d + 1e-4)) * 0.01, + w = Math.sqrt(0.0729 - g * g); + i = s.cm(g, w, 0.25, 1); + } + return ( + (this._prevEase = { + start: ne.now(), + duration: e, + easing: i, + }), + i + ); + } + reset() { + (this._active = !1), + (this._zooming = !1), + delete this._targetZoom, + delete this._lastExpectedZoom, + this._finishTimeout && + (clearTimeout(this._finishTimeout), + delete this._finishTimeout); + } + } + class ou { + constructor(e, i) { + (this._clickZoom = e), (this._tapZoom = i); + } + 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 su { + constructor(e) { + (this._tr = new as(e)), this.reset(); + } + reset() { + this._active = !1; + } + dblclick(e, i) { + return ( + e.preventDefault(), + { + cameraAnimation: (l) => { + l.easeTo( + { + duration: 300, + zoom: this._tr.zoom + (e.shiftKey ? -1 : 1), + around: this._tr.unproject(i), + }, + { originalEvent: e } + ); + }, + } + ); + } + enable() { + this._enabled = !0; + } + disable() { + (this._enabled = !1), this.reset(); + } + isEnabled() { + return this._enabled; + } + isActive() { + return this._active; + } + } + class gd { + constructor() { + (this._tap = new ea({ 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(e, i, l) { + if (!this._swipePoint) + if (this._tapTime) { + const u = i[0], + d = e.timeStamp - this._tapTime < 500, + g = this._tapPoint.dist(u) < 30; + d && g + ? l.length > 0 && + ((this._swipePoint = u), + (this._swipeTouch = l[0].identifier)) + : this.reset(); + } else this._tap.touchstart(e, i, l); + } + touchmove(e, i, l) { + if (this._tapTime) { + if (this._swipePoint) { + if (l[0].identifier !== this._swipeTouch) return; + const u = i[0], + d = u.y - this._swipePoint.y; + return ( + (this._swipePoint = u), + e.preventDefault(), + (this._active = !0), + { zoomDelta: d / 128 } + ); + } + } else this._tap.touchmove(e, i, l); + } + touchend(e, i, l) { + if (this._tapTime) + this._swipePoint && l.length === 0 && this.reset(); + else { + const u = this._tap.touchend(e, i, l); + u && ((this._tapTime = e.timeStamp), (this._tapPoint = u)); + } + } + touchcancel() { + this.reset(); + } + enable() { + this._enabled = !0; + } + disable() { + (this._enabled = !1), this.reset(); + } + isEnabled() { + return this._enabled; + } + isActive() { + return this._active; + } + } + class vd { + constructor(e, i, l) { + (this._el = e), (this._mousePan = i), (this._touchPan = l); + } + enable(e) { + (this._inertiaOptions = e || {}), + this._mousePan.enable(), + this._touchPan.enable(), + this._el.classList.add("maplibregl-touch-drag-pan"); + } + disable() { + this._mousePan.disable(), + this._touchPan.disable(), + this._el.classList.remove("maplibregl-touch-drag-pan"); + } + isEnabled() { + return ( + this._mousePan.isEnabled() && this._touchPan.isEnabled() + ); + } + isActive() { + return this._mousePan.isActive() || this._touchPan.isActive(); + } + } + class lu { + constructor(e, i, l, u) { + (this._pitchWithRotate = e.pitchWithRotate), + (this._rollEnabled = e.rollEnabled), + (this._mouseRotate = i), + (this._mousePitch = l), + (this._mouseRoll = u); + } + enable() { + this._mouseRotate.enable(), + this._pitchWithRotate && this._mousePitch.enable(), + this._rollEnabled && this._mouseRoll.enable(); + } + disable() { + this._mouseRotate.disable(), + this._mousePitch.disable(), + this._mouseRoll.disable(); + } + isEnabled() { + return ( + this._mouseRotate.isEnabled() && + (!this._pitchWithRotate || this._mousePitch.isEnabled()) && + (!this._rollEnabled || this._mouseRoll.isEnabled()) + ); + } + isActive() { + return ( + this._mouseRotate.isActive() || + this._mousePitch.isActive() || + this._mouseRoll.isActive() + ); + } + } + class yd { + constructor(e, i, l, u) { + (this._el = e), + (this._touchZoom = i), + (this._touchRotate = l), + (this._tapDragZoom = u), + (this._rotationDisabled = !1), + (this._enabled = !0); + } + enable(e) { + this._touchZoom.enable(e), + this._rotationDisabled || this._touchRotate.enable(e), + this._tapDragZoom.enable(), + this._el.classList.add("maplibregl-touch-zoom-rotate"); + } + disable() { + this._touchZoom.disable(), + this._touchRotate.disable(), + this._tapDragZoom.disable(), + this._el.classList.remove("maplibregl-touch-zoom-rotate"); + } + isEnabled() { + return ( + this._touchZoom.isEnabled() && + (this._rotationDisabled || this._touchRotate.isEnabled()) && + this._tapDragZoom.isEnabled() + ); + } + isActive() { + return ( + this._touchZoom.isActive() || + this._touchRotate.isActive() || + this._tapDragZoom.isActive() + ); + } + disableRotation() { + (this._rotationDisabled = !0), this._touchRotate.disable(); + } + enableRotation() { + (this._rotationDisabled = !1), + this._touchZoom.isEnabled() && this._touchRotate.enable(); + } + } + class xd { + constructor(e, i) { + (this._bypassKey = + navigator.userAgent.indexOf("Mac") !== -1 + ? "metaKey" + : "ctrlKey"), + (this._map = e), + (this._options = i), + (this._enabled = !1); + } + isActive() { + return !1; + } + reset() {} + _setupUI() { + if (this._container) return; + const e = this._map.getCanvasContainer(); + e.classList.add("maplibregl-cooperative-gestures"), + (this._container = H.create( + "div", + "maplibregl-cooperative-gesture-screen", + e + )); + let i = this._map._getUIString( + "CooperativeGesturesHandler.WindowsHelpText" + ); + this._bypassKey === "metaKey" && + (i = this._map._getUIString( + "CooperativeGesturesHandler.MacHelpText" + )); + const l = this._map._getUIString( + "CooperativeGesturesHandler.MobileHelpText" + ), + u = document.createElement("div"); + (u.className = "maplibregl-desktop-message"), + (u.textContent = i), + this._container.appendChild(u); + const d = document.createElement("div"); + (d.className = "maplibregl-mobile-message"), + (d.textContent = l), + this._container.appendChild(d), + this._container.setAttribute("aria-hidden", "true"); + } + _destroyUI() { + this._container && + (H.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._destroyUI(); + } + isEnabled() { + return this._enabled; + } + isBypassed(e) { + return e[this._bypassKey]; + } + notifyGestureBlocked(e, i) { + this._enabled && + (this._map.fire( + new s.l("cooperativegestureprevented", { + gestureType: e, + originalEvent: i, + }) + ), + this._container.classList.add("maplibregl-show"), + setTimeout(() => { + this._container.classList.remove("maplibregl-show"); + }, 100)); + } + } + const Ea = (h) => + h.zoom || h.drag || h.roll || h.pitch || h.rotate; + class Un extends s.l {} + function us(h) { + return ( + (h.panDelta && h.panDelta.mag()) || + h.zoomDelta || + h.bearingDelta || + h.pitchDelta || + h.rollDelta + ); + } + class cu { + constructor(e, i) { + (this.handleWindowEvent = (u) => { + this.handleEvent(u, `${u.type}Window`); + }), + (this.handleEvent = (u, d) => { + if (u.type === "blur") return void this.stop(!0); + this._updatingCamera = !0; + const g = u.type === "renderFrame" ? void 0 : u, + w = { needsRenderFrame: !1 }, + C = {}, + P = {}; + for (const { + handlerName: D, + handler: N, + allowed: G, + } of this._handlers) { + if (!N.isEnabled()) continue; + let te; + if (this._blockedByActive(P, G, D)) N.reset(); + else if (N[d || u.type]) { + if (s.cp(u, d || u.type)) { + const Q = H.mousePos(this._map.getCanvas(), u); + te = N[d || u.type](u, Q); + } else if (s.cq(u, d || u.type)) { + const Q = this._getMapTouches(u.touches), + ae = H.touchPos(this._map.getCanvas(), Q); + te = N[d || u.type](u, ae, Q); + } else s.cr(d || u.type) || (te = N[d || u.type](u)); + this.mergeHandlerResult(w, C, te, D, g), + te && + te.needsRenderFrame && + this._triggerRenderFrame(); + } + (te || N.isActive()) && (P[D] = N); + } + const E = {}; + for (const D in this._previousActiveHandlers) + P[D] || (E[D] = g); + (this._previousActiveHandlers = P), + (Object.keys(E).length || us(w)) && + (this._changes.push([w, C, E]), + this._triggerRenderFrame()), + (Object.keys(P).length || us(w)) && this._map._stop(!0), + (this._updatingCamera = !1); + const { cameraAnimation: R } = w; + R && + (this._inertia.clear(), + this._fireEvents({}, {}, !0), + (this._changes = []), + R(this._map)); + }), + (this._map = e), + (this._el = this._map.getCanvasContainer()), + (this._handlers = []), + (this._handlersById = {}), + (this._changes = []), + (this._inertia = new dd(e)), + (this._bearingSnap = i.bearingSnap), + (this._previousActiveHandlers = {}), + (this._eventsInProgress = {}), + this._addDefaultHandlers(i); + const l = this._el; + this._listeners = [ + [l, "touchstart", { passive: !0 }], + [l, "touchmove", { passive: !1 }], + [l, "touchend", void 0], + [l, "touchcancel", void 0], + [l, "mousedown", void 0], + [l, "mousemove", void 0], + [l, "mouseup", void 0], + [document, "mousemove", { capture: !0 }], + [document, "mouseup", void 0], + [l, "mouseover", void 0], + [l, "mouseout", void 0], + [l, "dblclick", void 0], + [l, "click", void 0], + [l, "keydown", { capture: !1 }], + [l, "keyup", void 0], + [l, "wheel", { passive: !1 }], + [l, "contextmenu", void 0], + [window, "blur", void 0], + ]; + for (const [u, d, g] of this._listeners) + H.addEventListener( + u, + d, + u === document + ? this.handleWindowEvent + : this.handleEvent, + g + ); + } + destroy() { + for (const [e, i, l] of this._listeners) + H.removeEventListener( + e, + i, + e === document + ? this.handleWindowEvent + : this.handleEvent, + l + ); + } + _addDefaultHandlers(e) { + const i = this._map, + l = i.getCanvasContainer(); + this._add("mapEvent", new pd(i, e)); + const u = (i.boxZoom = new nu(i, e)); + this._add("boxZoom", u), + e.interactive && e.boxZoom && u.enable(); + const d = (i.cooperativeGestures = new xd( + i, + e.cooperativeGestures + )); + this._add("cooperativeGestures", d), + e.cooperativeGestures && d.enable(); + const g = new Ma(i), + w = new su(i); + (i.doubleClickZoom = new ou(w, g)), + this._add("tapZoom", g), + this._add("clickZoom", w), + e.interactive && + e.doubleClickZoom && + i.doubleClickZoom.enable(); + const C = new gd(); + this._add("tapDragZoom", C); + const P = (i.touchPitch = new Nl(i)); + this._add("touchPitch", P), + e.interactive && + e.touchPitch && + i.touchPitch.enable(e.touchPitch); + const E = () => i.project(i.getCenter()), + R = (function ( + { + enable: me, + clickTolerance: be, + aroundCenter: Pe = !0, + minPixelCenterThreshold: _e = 100, + rotateDegreesPerPixelMoved: Be = 0.8, + }, + rt + ) { + const Ge = new Ws({ + checkCorrectEvent: (Xe) => + (H.mouseButton(Xe) === 0 && Xe.ctrlKey) || + (H.mouseButton(Xe) === 2 && !Xe.ctrlKey), + }); + return new ss({ + clickTolerance: be, + move: (Xe, tt) => { + const jt = rt(); + if (Pe && Math.abs(jt.y - Xe.y) > _e) + return { + bearingDelta: s.cn(new s.P(Xe.x, tt.y), tt, jt), + }; + let Zt = (tt.x - Xe.x) * Be; + return ( + Pe && tt.y < jt.y && (Zt = -Zt), + { bearingDelta: Zt } + ); + }, + moveStateManager: Ge, + enable: me, + assignEvents: Xs, + }); + })(e, E), + D = (function ({ + enable: me, + clickTolerance: be, + pitchDegreesPerPixelMoved: Pe = -0.5, + }) { + const _e = new Ws({ + checkCorrectEvent: (Be) => + (H.mouseButton(Be) === 0 && Be.ctrlKey) || + H.mouseButton(Be) === 2, + }); + return new ss({ + clickTolerance: be, + move: (Be, rt) => ({ pitchDelta: (rt.y - Be.y) * Pe }), + moveStateManager: _e, + enable: me, + assignEvents: Xs, + }); + })(e), + N = (function ( + { + enable: me, + clickTolerance: be, + rollDegreesPerPixelMoved: Pe = 0.3, + }, + _e + ) { + const Be = new Ws({ + checkCorrectEvent: (rt) => + H.mouseButton(rt) === 2 && rt.ctrlKey, + }); + return new ss({ + clickTolerance: be, + move: (rt, Ge) => { + const Xe = _e(); + let tt = (Ge.x - rt.x) * Pe; + return Ge.y < Xe.y && (tt = -tt), { rollDelta: tt }; + }, + moveStateManager: Be, + enable: me, + assignEvents: Xs, + }); + })(e, E); + (i.dragRotate = new lu(e, R, D, N)), + this._add("mouseRotate", R, ["mousePitch"]), + this._add("mousePitch", D, ["mouseRotate", "mouseRoll"]), + this._add("mouseRoll", N, ["mousePitch"]), + e.interactive && e.dragRotate && i.dragRotate.enable(); + const G = (function ({ enable: me, clickTolerance: be }) { + const Pe = new Ws({ + checkCorrectEvent: (_e) => + H.mouseButton(_e) === 0 && !_e.ctrlKey, + }); + return new ss({ + clickTolerance: be, + move: (_e, Be) => ({ + around: Be, + panDelta: Be.sub(_e), + }), + activateOnStart: !0, + moveStateManager: Pe, + enable: me, + assignEvents: Xs, + }); + })(e), + te = new Ys(e, i); + (i.dragPan = new vd(l, G, te)), + this._add("mousePan", G), + this._add("touchPan", te, ["touchZoom", "touchRotate"]), + e.interactive && e.dragPan && i.dragPan.enable(e.dragPan); + const Q = new cs(), + ae = new Ol(); + (i.touchZoomRotate = new yd(l, ae, Q, C)), + this._add("touchRotate", Q, ["touchPan", "touchZoom"]), + this._add("touchZoom", ae, ["touchPan", "touchRotate"]), + e.interactive && + e.touchZoomRotate && + i.touchZoomRotate.enable(e.touchZoomRotate); + const ce = (i.scrollZoom = new _d(i, () => + this._triggerRenderFrame() + )); + this._add("scrollZoom", ce, ["mousePan"]), + e.interactive && + e.scrollZoom && + i.scrollZoom.enable(e.scrollZoom); + const ve = (i.keyboard = new jl(i)); + this._add("keyboard", ve), + e.interactive && e.keyboard && i.keyboard.enable(), + this._add("blockableMapEvent", new fd(i)); + } + _add(e, i, l) { + this._handlers.push({ + handlerName: e, + handler: i, + allowed: l, + }), + (this._handlersById[e] = i); + } + stop(e) { + if (!this._updatingCamera) { + for (const { handler: i } of this._handlers) i.reset(); + this._inertia.clear(), + this._fireEvents({}, {}, e), + (this._changes = []); + } + } + isActive() { + for (const { handler: e } of this._handlers) + if (e.isActive()) return !0; + return !1; + } + isZooming() { + return ( + !!this._eventsInProgress.zoom || + this._map.scrollZoom.isZooming() + ); + } + isRotating() { + return !!this._eventsInProgress.rotate; + } + isMoving() { + return !!Ea(this._eventsInProgress) || this.isZooming(); + } + _blockedByActive(e, i, l) { + for (const u in e) + if (u !== l && (!i || i.indexOf(u) < 0)) return !0; + return !1; + } + _getMapTouches(e) { + const i = []; + for (const l of e) this._el.contains(l.target) && i.push(l); + return i; + } + mergeHandlerResult(e, i, l, u, d) { + if (!l) return; + s.e(e, l); + const g = { + handlerName: u, + originalEvent: l.originalEvent || d, + }; + l.zoomDelta !== void 0 && (i.zoom = g), + l.panDelta !== void 0 && (i.drag = g), + l.rollDelta !== void 0 && (i.roll = g), + l.pitchDelta !== void 0 && (i.pitch = g), + l.bearingDelta !== void 0 && (i.rotate = g); + } + _applyChanges() { + const e = {}, + i = {}, + l = {}; + for (const [u, d, g] of this._changes) + u.panDelta && + (e.panDelta = (e.panDelta || new s.P(0, 0))._add( + u.panDelta + )), + u.zoomDelta && + (e.zoomDelta = (e.zoomDelta || 0) + u.zoomDelta), + u.bearingDelta && + (e.bearingDelta = + (e.bearingDelta || 0) + u.bearingDelta), + u.pitchDelta && + (e.pitchDelta = (e.pitchDelta || 0) + u.pitchDelta), + u.rollDelta && + (e.rollDelta = (e.rollDelta || 0) + u.rollDelta), + u.around !== void 0 && (e.around = u.around), + u.pinchAround !== void 0 && + (e.pinchAround = u.pinchAround), + u.noInertia && (e.noInertia = u.noInertia), + s.e(i, d), + s.e(l, g); + this._updateMapTransform(e, i, l), (this._changes = []); + } + _updateMapTransform(e, i, l) { + const u = this._map, + d = u._getTransformForUpdate(), + g = u.terrain; + if (!(us(e) || (g && this._terrainMovement))) + return this._fireEvents(i, l, !0); + u._stop(!0); + let { + panDelta: w, + zoomDelta: C, + bearingDelta: P, + pitchDelta: E, + rollDelta: R, + around: D, + pinchAround: N, + } = e; + N !== void 0 && (D = N), + (D = D || u.transform.centerPoint), + g && !d.isPointOnMapSurface(D) && (D = d.centerPoint); + const G = { + panDelta: w, + zoomDelta: C, + rollDelta: R, + pitchDelta: E, + bearingDelta: P, + around: D, + }; + this._map.cameraHelper.useGlobeControls && + !d.isPointOnMapSurface(D) && + (D = d.centerPoint); + const te = + D.distSqr(d.centerPoint) < 0.01 + ? d.center + : d.screenPointToLocation(w ? D.sub(w) : D); + g + ? (this._map.cameraHelper.handleMapControlsRollPitchBearingZoom( + G, + d + ), + this._terrainMovement || (!i.drag && !i.zoom) + ? i.drag && this._terrainMovement + ? d.setCenter( + d.screenPointToLocation(d.centerPoint.sub(w)) + ) + : this._map.cameraHelper.handleMapControlsPan( + G, + d, + te + ) + : ((this._terrainMovement = !0), + (this._map._elevationFreeze = !0), + this._map.cameraHelper.handleMapControlsPan( + G, + d, + te + ))) + : (this._map.cameraHelper.handleMapControlsRollPitchBearingZoom( + G, + d + ), + this._map.cameraHelper.handleMapControlsPan(G, d, te)), + u._applyUpdatedTransform(d), + this._map._update(), + e.noInertia || this._inertia.record(e), + this._fireEvents(i, l, !0); + } + _fireEvents(e, i, l) { + const u = Ea(this._eventsInProgress), + d = Ea(e), + g = {}; + for (const R in e) { + const { originalEvent: D } = e[R]; + this._eventsInProgress[R] || (g[`${R}start`] = D), + (this._eventsInProgress[R] = e[R]); + } + !u && d && this._fireEvent("movestart", d.originalEvent); + for (const R in g) this._fireEvent(R, g[R]); + d && this._fireEvent("move", d.originalEvent); + for (const R in e) { + const { originalEvent: D } = e[R]; + this._fireEvent(R, D); + } + const w = {}; + let C; + for (const R in this._eventsInProgress) { + const { handlerName: D, originalEvent: N } = + this._eventsInProgress[R]; + this._handlersById[D].isActive() || + (delete this._eventsInProgress[R], + (C = i[D] || N), + (w[`${R}end`] = C)); + } + for (const R in w) this._fireEvent(R, w[R]); + const P = Ea(this._eventsInProgress), + E = (u || d) && !P; + if (E && this._terrainMovement) { + (this._map._elevationFreeze = !1), + (this._terrainMovement = !1); + const R = this._map._getTransformForUpdate(); + this._map.getCenterClampedToGround() && + R.recalculateZoomAndCenter(this._map.terrain), + this._map._applyUpdatedTransform(R); + } + if (l && E) { + this._updatingCamera = !0; + const R = this._inertia._onMoveEnd( + this._map.dragPan._inertiaOptions + ), + D = (N) => + N !== 0 && + -this._bearingSnap < N && + N < this._bearingSnap; + !R || (!R.essential && ne.prefersReducedMotion) + ? (this._map.fire( + new s.l("moveend", { originalEvent: C }) + ), + D(this._map.getBearing()) && this._map.resetNorth()) + : (D(R.bearing || this._map.getBearing()) && + (R.bearing = 0), + (R.freezeElevation = !0), + this._map.easeTo(R, { originalEvent: C })), + (this._updatingCamera = !1); + } + } + _fireEvent(e, i) { + this._map.fire(new s.l(e, i ? { originalEvent: i } : {})); + } + _requestFrame() { + return ( + this._map.triggerRepaint(), + this._map._renderTaskQueue.add((e) => { + delete this._frameId, + this.handleEvent( + new Un("renderFrame", { timeStamp: e }) + ), + this._applyChanges(); + }) + ); + } + _triggerRenderFrame() { + this._frameId === void 0 && + (this._frameId = this._requestFrame()); + } + } + class bd extends s.E { + constructor(e, i, l) { + super(), + (this._renderFrameCallback = () => { + const u = Math.min( + (ne.now() - this._easeStart) / + this._easeOptions.duration, + 1 + ); + this._onEaseFrame(this._easeOptions.easing(u)), + u < 1 && this._easeFrameId + ? (this._easeFrameId = this._requestRenderFrame( + this._renderFrameCallback + )) + : this.stop(); + }), + (this._moving = !1), + (this._zooming = !1), + (this.transform = e), + (this._bearingSnap = l.bearingSnap), + (this.cameraHelper = i), + this.on("moveend", () => { + delete this._requestedCameraState; + }); + } + migrateProjection(e, i) { + e.apply(this.transform), + (this.transform = e), + (this.cameraHelper = i); + } + getCenter() { + return new s.S( + this.transform.center.lng, + this.transform.center.lat + ); + } + setCenter(e, i) { + return this.jumpTo({ center: e }, i); + } + getCenterElevation() { + return this.transform.elevation; + } + setCenterElevation(e, i) { + return this.jumpTo({ elevation: e }, i), this; + } + getCenterClampedToGround() { + return this._centerClampedToGround; + } + setCenterClampedToGround(e) { + this._centerClampedToGround = e; + } + panBy(e, i, l) { + return ( + (e = s.P.convert(e).mult(-1)), + this.panTo(this.transform.center, s.e({ offset: e }, i), l) + ); + } + panTo(e, i, l) { + return this.easeTo(s.e({ center: e }, i), l); + } + getZoom() { + return this.transform.zoom; + } + setZoom(e, i) { + return this.jumpTo({ zoom: e }, i), this; + } + zoomTo(e, i, l) { + return this.easeTo(s.e({ zoom: e }, i), l); + } + zoomIn(e, i) { + return this.zoomTo(this.getZoom() + 1, e, i), this; + } + zoomOut(e, i) { + return this.zoomTo(this.getZoom() - 1, e, i), this; + } + getVerticalFieldOfView() { + return this.transform.fov; + } + setVerticalFieldOfView(e, i) { + return ( + e != this.transform.fov && + (this.transform.setFov(e), + this.fire(new s.l("movestart", i)) + .fire(new s.l("move", i)) + .fire(new s.l("moveend", i))), + this + ); + } + getBearing() { + return this.transform.bearing; + } + setBearing(e, i) { + return this.jumpTo({ bearing: e }, i), this; + } + getPadding() { + return this.transform.padding; + } + setPadding(e, i) { + return this.jumpTo({ padding: e }, i), this; + } + rotateTo(e, i, l) { + return this.easeTo(s.e({ bearing: e }, i), l); + } + resetNorth(e, i) { + return this.rotateTo(0, s.e({ duration: 1e3 }, e), i), this; + } + resetNorthPitch(e, i) { + return ( + this.easeTo( + s.e({ bearing: 0, pitch: 0, roll: 0, duration: 1e3 }, e), + i + ), + this + ); + } + snapToNorth(e, i) { + return Math.abs(this.getBearing()) < this._bearingSnap + ? this.resetNorth(e, i) + : this; + } + getPitch() { + return this.transform.pitch; + } + setPitch(e, i) { + return this.jumpTo({ pitch: e }, i), this; + } + getRoll() { + return this.transform.roll; + } + setRoll(e, i) { + return this.jumpTo({ roll: e }, i), this; + } + cameraForBounds(e, i) { + e = _t.convert(e).adjustAntiMeridian(); + const l = (i && i.bearing) || 0; + return this._cameraForBoxAndBearing( + e.getNorthWest(), + e.getSouthEast(), + l, + i + ); + } + _cameraForBoxAndBearing(e, i, l, u) { + const d = { top: 0, bottom: 0, right: 0, left: 0 }; + if ( + typeof (u = s.e( + { + padding: d, + offset: [0, 0], + maxZoom: this.transform.maxZoom, + }, + u + )).padding == "number" + ) { + const P = u.padding; + u.padding = { top: P, bottom: P, right: P, left: P }; + } + const g = s.e(d, u.padding); + u.padding = g; + const w = this.transform, + C = new _t(e, i); + return this.cameraHelper.cameraForBoxAndBearing( + u, + g, + C, + l, + w + ); + } + fitBounds(e, i, l) { + return this._fitInternal(this.cameraForBounds(e, i), i, l); + } + fitScreenCoordinates(e, i, l, u, d) { + return this._fitInternal( + this._cameraForBoxAndBearing( + this.transform.screenPointToLocation(s.P.convert(e)), + this.transform.screenPointToLocation(s.P.convert(i)), + l, + u + ), + u, + d + ); + } + _fitInternal(e, i, l) { + return e + ? (delete (i = s.e(e, i)).padding, + i.linear ? this.easeTo(i, l) : this.flyTo(i, l)) + : this; + } + jumpTo(e, i) { + this.stop(); + const l = this._getTransformForUpdate(); + let u = !1, + d = !1, + g = !1; + const w = l.zoom; + this.cameraHelper.handleJumpToCenterZoom(l, e); + const C = l.zoom !== w; + return ( + "elevation" in e && + l.elevation !== +e.elevation && + l.setElevation(+e.elevation), + "bearing" in e && + l.bearing !== +e.bearing && + ((u = !0), l.setBearing(+e.bearing)), + "pitch" in e && + l.pitch !== +e.pitch && + ((d = !0), l.setPitch(+e.pitch)), + "roll" in e && + l.roll !== +e.roll && + ((g = !0), l.setRoll(+e.roll)), + e.padding == null || + l.isPaddingEqual(e.padding) || + l.setPadding(e.padding), + this._applyUpdatedTransform(l), + this.fire(new s.l("movestart", i)).fire(new s.l("move", i)), + C && + this.fire(new s.l("zoomstart", i)) + .fire(new s.l("zoom", i)) + .fire(new s.l("zoomend", i)), + u && + this.fire(new s.l("rotatestart", i)) + .fire(new s.l("rotate", i)) + .fire(new s.l("rotateend", i)), + d && + this.fire(new s.l("pitchstart", i)) + .fire(new s.l("pitch", i)) + .fire(new s.l("pitchend", i)), + g && + this.fire(new s.l("rollstart", i)) + .fire(new s.l("roll", i)) + .fire(new s.l("rollend", i)), + this.fire(new s.l("moveend", i)) + ); + } + calculateCameraOptionsFromTo(e, i, l, u = 0) { + const d = s.a1.fromLngLat(e, i), + g = s.a1.fromLngLat(l, u), + w = g.x - d.x, + C = g.y - d.y, + P = g.z - d.z, + E = Math.hypot(w, C, P); + if (E === 0) + throw new Error( + "Can't calculate camera options with same From and To" + ); + const R = Math.hypot(w, C), + D = s.ak( + this.transform.cameraToCenterDistance / + E / + this.transform.tileSize + ), + N = (180 * Math.atan2(w, -C)) / Math.PI; + let G = (180 * Math.acos(R / E)) / Math.PI; + return ( + (G = P < 0 ? 90 - G : 90 + G), + { + center: g.toLngLat(), + elevation: u, + zoom: D, + pitch: G, + bearing: N, + } + ); + } + calculateCameraOptionsFromCameraLngLatAltRotation( + e, + i, + l, + u, + d + ) { + const g = this.transform.calculateCenterFromCameraLngLatAlt( + e, + i, + l, + u + ); + return { + center: g.center, + elevation: g.elevation, + zoom: g.zoom, + bearing: l, + pitch: u, + roll: d, + }; + } + easeTo(e, i) { + this._stop(!1, e.easeId), + ((e = s.e( + { offset: [0, 0], duration: 500, easing: s.co }, + e + )).animate === !1 || + (!e.essential && ne.prefersReducedMotion)) && + (e.duration = 0); + const l = this._getTransformForUpdate(), + u = this.getBearing(), + d = l.pitch, + g = l.roll, + w = + "bearing" in e ? this._normalizeBearing(e.bearing, u) : u, + C = "pitch" in e ? +e.pitch : d, + P = "roll" in e ? this._normalizeBearing(e.roll, g) : g, + E = "padding" in e ? e.padding : l.padding, + R = s.P.convert(e.offset); + let D, N; + e.around && + ((D = s.S.convert(e.around)), + (N = l.locationToScreenPoint(D))); + const G = { + moving: this._moving, + zooming: this._zooming, + rotating: this._rotating, + pitching: this._pitching, + rolling: this._rolling, + }, + te = this.cameraHelper.handleEaseTo(l, { + bearing: w, + pitch: C, + roll: P, + padding: E, + around: D, + aroundPoint: N, + offsetAsPoint: R, + offset: e.offset, + zoom: e.zoom, + center: e.center, + }); + return ( + (this._rotating = this._rotating || u !== w), + (this._pitching = this._pitching || C !== d), + (this._rolling = this._rolling || P !== g), + (this._padding = !l.isPaddingEqual(E)), + (this._zooming = this._zooming || te.isZooming), + (this._easeId = e.easeId), + this._prepareEase(i, e.noMoveStart, G), + this.terrain && this._prepareElevation(te.elevationCenter), + this._ease( + (Q) => { + te.easeFunc(Q), + this.terrain && + !e.freezeElevation && + this._updateElevation(Q), + this._applyUpdatedTransform(l), + this._fireMoveEvents(i); + }, + (Q) => { + this.terrain && + e.freezeElevation && + this._finalizeElevation(), + this._afterEase(i, Q); + }, + e + ), + this + ); + } + _prepareEase(e, i, l = {}) { + (this._moving = !0), + i || l.moving || this.fire(new s.l("movestart", e)), + this._zooming && + !l.zooming && + this.fire(new s.l("zoomstart", e)), + this._rotating && + !l.rotating && + this.fire(new s.l("rotatestart", e)), + this._pitching && + !l.pitching && + this.fire(new s.l("pitchstart", e)), + this._rolling && + !l.rolling && + this.fire(new s.l("rollstart", e)); + } + _prepareElevation(e) { + (this._elevationCenter = e), + (this._elevationStart = this.transform.elevation), + (this._elevationTarget = + this.terrain.getElevationForLngLatZoom( + e, + this.transform.tileZoom + )), + (this._elevationFreeze = !0); + } + _updateElevation(e) { + this.transform.setMinElevationForCurrentTile( + this.terrain.getMinTileElevationForLngLatZoom( + this._elevationCenter, + this.transform.tileZoom + ) + ); + const i = this.terrain.getElevationForLngLatZoom( + this._elevationCenter, + this.transform.tileZoom + ); + if (e < 1 && i !== this._elevationTarget) { + const l = this._elevationTarget - this._elevationStart; + (this._elevationStart += + e * (l - (i - (l * e + this._elevationStart)) / (1 - e))), + (this._elevationTarget = i); + } + this.transform.setElevation( + s.C.number(this._elevationStart, this._elevationTarget, e) + ); + } + _finalizeElevation() { + (this._elevationFreeze = !1), + this.getCenterClampedToGround() && + this.transform.recalculateZoomAndCenter(this.terrain); + } + _getTransformForUpdate() { + return this.transformCameraUpdate || this.terrain + ? (this._requestedCameraState || + (this._requestedCameraState = this.transform.clone()), + this._requestedCameraState) + : this.transform; + } + _elevateCameraIfInsideTerrain(e) { + if (!this.terrain && e.elevation >= 0 && e.pitch <= 90) + return {}; + const i = e.getCameraLngLat(), + l = e.getCameraAltitude(), + u = this.terrain + ? this.terrain.getElevationForLngLatZoom(i, e.zoom) + : 0; + if (l < u) { + const d = this.calculateCameraOptionsFromTo( + i, + u, + e.center, + e.elevation + ); + return { pitch: d.pitch, zoom: d.zoom }; + } + return {}; + } + _applyUpdatedTransform(e) { + const i = []; + if ( + (i.push((u) => this._elevateCameraIfInsideTerrain(u)), + this.transformCameraUpdate && + i.push((u) => this.transformCameraUpdate(u)), + !i.length) + ) + return; + const l = e.clone(); + for (const u of i) { + const d = l.clone(), + { + center: g, + zoom: w, + roll: C, + pitch: P, + bearing: E, + elevation: R, + } = u(d); + g && d.setCenter(g), + R !== void 0 && d.setElevation(R), + w !== void 0 && d.setZoom(w), + C !== void 0 && d.setRoll(C), + P !== void 0 && d.setPitch(P), + E !== void 0 && d.setBearing(E), + l.apply(d); + } + this.transform.apply(l); + } + _fireMoveEvents(e) { + this.fire(new s.l("move", e)), + this._zooming && this.fire(new s.l("zoom", e)), + this._rotating && this.fire(new s.l("rotate", e)), + this._pitching && this.fire(new s.l("pitch", e)), + this._rolling && this.fire(new s.l("roll", e)); + } + _afterEase(e, i) { + if (this._easeId && i && this._easeId === i) return; + delete this._easeId; + const l = this._zooming, + u = this._rotating, + d = this._pitching, + g = this._rolling; + (this._moving = !1), + (this._zooming = !1), + (this._rotating = !1), + (this._pitching = !1), + (this._rolling = !1), + (this._padding = !1), + l && this.fire(new s.l("zoomend", e)), + u && this.fire(new s.l("rotateend", e)), + d && this.fire(new s.l("pitchend", e)), + g && this.fire(new s.l("rollend", e)), + this.fire(new s.l("moveend", e)); + } + flyTo(e, i) { + if (!e.essential && ne.prefersReducedMotion) { + const tt = s.Q(e, [ + "center", + "zoom", + "bearing", + "pitch", + "roll", + "elevation", + ]); + return this.jumpTo(tt, i); + } + this.stop(), + (e = s.e( + { offset: [0, 0], speed: 1.2, curve: 1.42, easing: s.co }, + e + )); + const l = this._getTransformForUpdate(), + u = l.bearing, + d = l.pitch, + g = l.roll, + w = l.padding, + C = + "bearing" in e ? this._normalizeBearing(e.bearing, u) : u, + P = "pitch" in e ? +e.pitch : d, + E = "roll" in e ? this._normalizeBearing(e.roll, g) : g, + R = "padding" in e ? e.padding : l.padding, + D = s.P.convert(e.offset); + let N = l.centerPoint.add(D); + const G = l.screenPointToLocation(N), + te = this.cameraHelper.handleFlyTo(l, { + bearing: C, + pitch: P, + roll: E, + padding: R, + locationAtOffset: G, + offsetAsPoint: D, + center: e.center, + minZoom: e.minZoom, + zoom: e.zoom, + }); + let Q = e.curve; + const ae = Math.max(l.width, l.height), + ce = ae / te.scaleOfZoom, + ve = te.pixelPathLength; + typeof te.scaleOfMinZoom == "number" && + (Q = Math.sqrt((ae / te.scaleOfMinZoom / ve) * 2)); + const me = Q * Q; + function be(tt) { + const jt = + (ce * ce - ae * ae + (tt ? -1 : 1) * me * me * ve * ve) / + (2 * (tt ? ce : ae) * me * ve); + return Math.log(Math.sqrt(jt * jt + 1) - jt); + } + function Pe(tt) { + return (Math.exp(tt) - Math.exp(-tt)) / 2; + } + function _e(tt) { + return (Math.exp(tt) + Math.exp(-tt)) / 2; + } + const Be = be(!1); + let rt = function (tt) { + return _e(Be) / _e(Be + Q * tt); + }, + Ge = function (tt) { + return ( + (ae * + ((_e(Be) * (Pe((jt = Be + Q * tt)) / _e(jt)) - + Pe(Be)) / + me)) / + ve + ); + var jt; + }, + Xe = (be(!0) - Be) / Q; + if (Math.abs(ve) < 2e-6 || !isFinite(Xe)) { + if (Math.abs(ae - ce) < 1e-6) return this.easeTo(e, i); + const tt = ce < ae ? -1 : 1; + (Xe = Math.abs(Math.log(ce / ae)) / Q), + (Ge = () => 0), + (rt = (jt) => Math.exp(tt * Q * jt)); + } + return ( + (e.duration = + "duration" in e + ? +e.duration + : (1e3 * Xe) / + ("screenSpeed" in e ? +e.screenSpeed / Q : +e.speed)), + e.maxDuration && + e.duration > e.maxDuration && + (e.duration = 0), + (this._zooming = !0), + (this._rotating = u !== C), + (this._pitching = P !== d), + (this._rolling = E !== g), + (this._padding = !l.isPaddingEqual(R)), + this._prepareEase(i, !1), + this.terrain && this._prepareElevation(te.targetCenter), + this._ease( + (tt) => { + const jt = tt * Xe, + Zt = 1 / rt(jt), + Tt = Ge(jt); + this._rotating && l.setBearing(s.C.number(u, C, tt)), + this._pitching && l.setPitch(s.C.number(d, P, tt)), + this._rolling && l.setRoll(s.C.number(g, E, tt)), + this._padding && + (l.interpolatePadding(w, R, tt), + (N = l.centerPoint.add(D))), + te.easeFunc(tt, Zt, Tt, N), + this.terrain && + !e.freezeElevation && + this._updateElevation(tt), + this._applyUpdatedTransform(l), + this._fireMoveEvents(i); + }, + () => { + this.terrain && + e.freezeElevation && + this._finalizeElevation(), + this._afterEase(i); + }, + e + ), + this + ); + } + isEasing() { + return !!this._easeFrameId; + } + stop() { + return this._stop(); + } + _stop(e, i) { + var l; + if ( + (this._easeFrameId && + (this._cancelRenderFrame(this._easeFrameId), + delete this._easeFrameId, + delete this._onEaseFrame), + this._onEaseEnd) + ) { + const u = this._onEaseEnd; + delete this._onEaseEnd, u.call(this, i); + } + return ( + e || + (l = this.handlers) === null || + l === void 0 || + l.stop(!1), + this + ); + } + _ease(e, i, l) { + l.animate === !1 || l.duration === 0 + ? (e(1), i()) + : ((this._easeStart = ne.now()), + (this._easeOptions = l), + (this._onEaseFrame = e), + (this._onEaseEnd = i), + (this._easeFrameId = this._requestRenderFrame( + this._renderFrameCallback + ))); + } + _normalizeBearing(e, i) { + e = s.aO(e, -180, 180); + const l = Math.abs(e - i); + return ( + Math.abs(e - 360 - i) < l && (e -= 360), + Math.abs(e + 360 - i) < l && (e += 360), + e + ); + } + queryTerrainElevation(e) { + return this.terrain + ? this.terrain.getElevationForLngLatZoom( + s.S.convert(e), + this.transform.tileZoom + ) + : null; + } + } + const uu = { + compact: !0, + customAttribution: + 'MapLibre', + }; + class hu { + constructor(e = uu) { + (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 = (i) => { + !i || + (i.sourceDataType !== "metadata" && + i.sourceDataType !== "visibility" && + i.dataType !== "style" && + i.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 = e); + } + getDefaultPosition() { + return "bottom-right"; + } + onAdd(e) { + return ( + (this._map = e), + (this._compact = this.options.compact), + (this._container = H.create( + "details", + "maplibregl-ctrl maplibregl-ctrl-attrib" + )), + (this._compactButton = H.create( + "summary", + "maplibregl-ctrl-attrib-button", + this._container + )), + this._compactButton.addEventListener( + "click", + this._toggleAttribution + ), + this._setElementTitle( + this._compactButton, + "ToggleAttribution" + ), + (this._innerContainer = H.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() { + H.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(e, i) { + const l = this._map._getUIString(`AttributionControl.${i}`); + (e.title = l), e.setAttribute("aria-label", l); + } + _updateAttributions() { + if (!this._map.style) return; + let e = []; + if ( + (this.options.customAttribution && + (Array.isArray(this.options.customAttribution) + ? (e = e.concat( + this.options.customAttribution.map((u) => + typeof u != "string" ? "" : u + ) + )) + : typeof this.options.customAttribution == "string" && + e.push(this.options.customAttribution)), + this._map.style.stylesheet) + ) { + const u = this._map.style.stylesheet; + (this.styleOwner = u.owner), (this.styleId = u.id); + } + const i = this._map.style.sourceCaches; + for (const u in i) { + const d = i[u]; + if (d.used || d.usedForTerrain) { + const g = d.getSource(); + g.attribution && + e.indexOf(g.attribution) < 0 && + e.push(g.attribution); + } + } + (e = e.filter((u) => String(u).trim())), + e.sort((u, d) => u.length - d.length), + (e = e.filter((u, d) => { + for (let g = d + 1; g < e.length; g++) + if (e[g].indexOf(u) >= 0) return !1; + return !0; + })); + const l = e.join(" | "); + l !== this._attribHTML && + ((this._attribHTML = l), + e.length + ? ((this._innerContainer.innerHTML = H.sanitize(l)), + this._container.classList.remove( + "maplibregl-attrib-empty" + )) + : this._container.classList.add( + "maplibregl-attrib-empty" + ), + this._updateCompact(), + (this._editLink = null)); + } + } + class wd { + constructor(e = {}) { + (this._updateCompact = () => { + const i = this._container.children; + if (i.length) { + const l = i[0]; + this._map.getCanvasContainer().offsetWidth <= 640 || + this._compact + ? this._compact !== !1 && + l.classList.add("maplibregl-compact") + : l.classList.remove("maplibregl-compact"); + } + }), + (this.options = e); + } + getDefaultPosition() { + return "bottom-left"; + } + onAdd(e) { + (this._map = e), + (this._compact = this.options && this.options.compact), + (this._container = H.create("div", "maplibregl-ctrl")); + const i = H.create("a", "maplibregl-ctrl-logo"); + return ( + (i.target = "_blank"), + (i.rel = "noopener nofollow"), + (i.href = "https://maplibre.org/"), + i.setAttribute( + "aria-label", + this._map._getUIString("LogoControl.Title") + ), + i.setAttribute("rel", "noopener nofollow"), + this._container.appendChild(i), + (this._container.style.display = "block"), + this._map.on("resize", this._updateCompact), + this._updateCompact(), + this._container + ); + } + onRemove() { + H.remove(this._container), + this._map.off("resize", this._updateCompact), + (this._map = void 0), + (this._compact = void 0); + } + } + class $a { + constructor() { + (this._queue = []), + (this._id = 0), + (this._cleared = !1), + (this._currentlyRunning = !1); + } + add(e) { + const i = ++this._id; + return ( + this._queue.push({ callback: e, id: i, cancelled: !1 }), i + ); + } + remove(e) { + const i = this._currentlyRunning, + l = i ? this._queue.concat(i) : this._queue; + for (const u of l) + if (u.id === e) return void (u.cancelled = !0); + } + run(e = 0) { + if (this._currentlyRunning) + throw new Error( + "Attempting to run(), but is already running." + ); + const i = (this._currentlyRunning = this._queue); + this._queue = []; + for (const l of i) + if (!l.cancelled && (l.callback(e), this._cleared)) break; + (this._cleared = !1), (this._currentlyRunning = !1); + } + clear() { + this._currentlyRunning && (this._cleared = !0), + (this._queue = []); + } + } + var ql = s.aJ([ + { name: "a_pos3d", type: "Int16", components: 3 }, + ]); + class wr extends s.E { + constructor(e) { + super(), + (this._lastTilesetChange = ne.now()), + (this.sourceCache = e), + (this._tiles = {}), + (this._renderableTilesKeys = []), + (this._sourceTileCache = {}), + (this.minzoom = 0), + (this.maxzoom = 22), + (this.deltaZoom = 1), + (this.tileSize = e._source.tileSize * 2 ** this.deltaZoom), + (e.usedForTerrain = !0), + (e.tileSize = this.tileSize); + } + destruct() { + (this.sourceCache.usedForTerrain = !1), + (this.sourceCache.tileSize = null); + } + update(e, i) { + this.sourceCache.update(e, i), + (this._renderableTilesKeys = []); + const l = {}; + for (const u of ye(e, { + tileSize: this.tileSize, + minzoom: this.minzoom, + maxzoom: this.maxzoom, + reparseOverscaled: !1, + terrain: i, + calculateTileZoom: + this.sourceCache._source.calculateTileZoom, + })) + (l[u.key] = !0), + this._renderableTilesKeys.push(u.key), + this._tiles[u.key] || + ((u.terrainRttPosMatrix32f = new Float64Array(16)), + s.bY(u.terrainRttPosMatrix32f, 0, s.$, s.$, 0, 0, 1), + (this._tiles[u.key] = new qr(u, this.tileSize)), + (this._lastTilesetChange = ne.now())); + for (const u in this._tiles) l[u] || delete this._tiles[u]; + } + freeRtt(e) { + for (const i in this._tiles) { + const l = this._tiles[i]; + (!e || + l.tileID.equals(e) || + l.tileID.isChildOf(e) || + e.isChildOf(l.tileID)) && + (l.rtt = []); + } + } + getRenderableTiles() { + return this._renderableTilesKeys.map((e) => + this.getTileByID(e) + ); + } + getTileByID(e) { + return this._tiles[e]; + } + getTerrainCoords(e, i) { + return i + ? this._getTerrainCoordsForTileRanges(e, i) + : this._getTerrainCoordsForRegularTile(e); + } + _getTerrainCoordsForRegularTile(e) { + const i = {}; + for (const l of this._renderableTilesKeys) { + const u = this._tiles[l].tileID, + d = e.clone(), + g = s.ba(); + if (u.canonical.equals(e.canonical)) + s.bY(g, 0, s.$, s.$, 0, 0, 1); + else if (u.canonical.isChildOf(e.canonical)) { + const w = u.canonical.z - e.canonical.z, + C = u.canonical.x - ((u.canonical.x >> w) << w), + P = u.canonical.y - ((u.canonical.y >> w) << w), + E = s.$ >> w; + s.bY(g, 0, E, E, 0, 0, 1), s.M(g, g, [-C * E, -P * E, 0]); + } else { + if (!e.canonical.isChildOf(u.canonical)) continue; + { + const w = e.canonical.z - u.canonical.z, + C = e.canonical.x - ((e.canonical.x >> w) << w), + P = e.canonical.y - ((e.canonical.y >> w) << w), + E = s.$ >> w; + s.bY(g, 0, s.$, s.$, 0, 0, 1), + s.M(g, g, [C * E, P * E, 0]), + s.N(g, g, [1 / 2 ** w, 1 / 2 ** w, 0]); + } + } + (d.terrainRttPosMatrix32f = new Float32Array(g)), + (i[l] = d); + } + return i; + } + _getTerrainCoordsForTileRanges(e, i) { + const l = {}; + for (const u of this._renderableTilesKeys) { + const d = this._tiles[u].tileID; + if (!this._isWithinTileRanges(d, i)) continue; + const g = e.clone(), + w = s.ba(); + if (d.canonical.z === e.canonical.z) { + const C = e.canonical.x - d.canonical.x, + P = e.canonical.y - d.canonical.y; + s.bY(w, 0, s.$, s.$, 0, 0, 1), + s.M(w, w, [C * s.$, P * s.$, 0]); + } else if (d.canonical.z > e.canonical.z) { + const C = d.canonical.z - e.canonical.z, + P = d.canonical.x - ((d.canonical.x >> C) << C), + E = d.canonical.y - ((d.canonical.y >> C) << C), + R = e.canonical.x - (d.canonical.x >> C), + D = e.canonical.y - (d.canonical.y >> C), + N = s.$ >> C; + s.bY(w, 0, N, N, 0, 0, 1), + s.M(w, w, [-P * N + R * s.$, -E * N + D * s.$, 0]); + } else { + const C = e.canonical.z - d.canonical.z, + P = e.canonical.x - ((e.canonical.x >> C) << C), + E = e.canonical.y - ((e.canonical.y >> C) << C), + R = (e.canonical.x >> C) - d.canonical.x, + D = (e.canonical.y >> C) - d.canonical.y, + N = s.$ << C; + s.bY(w, 0, N, N, 0, 0, 1), + s.M(w, w, [P * s.$ + R * N, E * s.$ + D * N, 0]); + } + (g.terrainRttPosMatrix32f = new Float32Array(w)), + (l[u] = g); + } + return l; + } + getSourceTile(e, i) { + const l = this.sourceCache._source; + let u = e.overscaledZ - this.deltaZoom; + if ((u > l.maxzoom && (u = l.maxzoom), u < l.minzoom)) + return null; + this._sourceTileCache[e.key] || + (this._sourceTileCache[e.key] = e.scaledTo(u).key); + let d = this.sourceCache.getTileByID( + this._sourceTileCache[e.key] + ); + if ((!d || !d.dem) && i) + for (; u >= l.minzoom && (!d || !d.dem); ) + d = this.sourceCache.getTileByID(e.scaledTo(u--).key); + return d; + } + anyTilesAfterTime(e = Date.now()) { + return this._lastTilesetChange >= e; + } + _isWithinTileRanges(e, i) { + return ( + i[e.canonical.z] && + e.canonical.x >= i[e.canonical.z].minTileX && + e.canonical.x <= i[e.canonical.z].maxTileX && + e.canonical.y >= i[e.canonical.z].minTileY && + e.canonical.y <= i[e.canonical.z].maxTileY + ); + } + } + class Or { + constructor(e, i, l) { + (this._meshCache = {}), + (this.painter = e), + (this.sourceCache = new wr(i)), + (this.options = l), + (this.exaggeration = + typeof l.exaggeration == "number" ? l.exaggeration : 1), + (this.qualityFactor = 2), + (this.meshSize = 128), + (this._demMatrixCache = {}), + (this.coordsIndex = []), + (this._coordsTextureSize = 1024); + } + getDEMElevation(e, i, l, u = s.$) { + var d; + if (!(i >= 0 && i < u && l >= 0 && l < u)) return 0; + const g = this.getTerrainData(e), + w = (d = g.tile) === null || d === void 0 ? void 0 : d.dem; + if (!w) return 0; + const C = s.cs( + [], + [(i / u) * s.$, (l / u) * s.$], + g.u_terrain_matrix + ), + P = [C[0] * w.dim, C[1] * w.dim], + E = Math.floor(P[0]), + R = Math.floor(P[1]), + D = P[0] - E, + N = P[1] - R; + return ( + w.get(E, R) * (1 - D) * (1 - N) + + w.get(E + 1, R) * D * (1 - N) + + w.get(E, R + 1) * (1 - D) * N + + w.get(E + 1, R + 1) * D * N + ); + } + getElevationForLngLatZoom(e, i) { + if (!s.ct(i, e.wrap())) return 0; + const { + tileID: l, + mercatorX: u, + mercatorY: d, + } = this._getOverscaledTileIDFromLngLatZoom(e, i); + return this.getElevation(l, u % s.$, d % s.$, s.$); + } + getElevation(e, i, l, u = s.$) { + return this.getDEMElevation(e, i, l, u) * this.exaggeration; + } + getTerrainData(e) { + if (!this._emptyDemTexture) { + const u = this.painter.context, + d = new s.R({ width: 1, height: 1 }, new Uint8Array(4)); + (this._emptyDepthTexture = new s.T(u, d, u.gl.RGBA, { + premultiply: !1, + })), + (this._emptyDemUnpack = [0, 0, 0, 0]), + (this._emptyDemTexture = new s.T( + u, + new s.R({ width: 1, height: 1 }), + u.gl.RGBA, + { premultiply: !1 } + )), + this._emptyDemTexture.bind( + u.gl.NEAREST, + u.gl.CLAMP_TO_EDGE + ), + (this._emptyDemMatrix = s.ag([])); + } + const i = this.sourceCache.getSourceTile(e, !0); + if (i && i.dem && (!i.demTexture || i.needsTerrainPrepare)) { + const u = this.painter.context; + (i.demTexture = this.painter.getTileTexture(i.dem.stride)), + i.demTexture + ? i.demTexture.update(i.dem.getPixels(), { + premultiply: !1, + }) + : (i.demTexture = new s.T( + u, + i.dem.getPixels(), + u.gl.RGBA, + { premultiply: !1 } + )), + i.demTexture.bind(u.gl.NEAREST, u.gl.CLAMP_TO_EDGE), + (i.needsTerrainPrepare = !1); + } + const l = i && i + i.tileID.key + e.key; + if (l && !this._demMatrixCache[l]) { + const u = this.sourceCache.sourceCache._source.maxzoom; + let d = e.canonical.z - i.tileID.canonical.z; + e.overscaledZ > e.canonical.z && + (e.canonical.z >= u + ? (d = e.canonical.z - u) + : s.w( + "cannot calculate elevation if elevation maxzoom > source.maxzoom" + )); + const g = e.canonical.x - ((e.canonical.x >> d) << d), + w = e.canonical.y - ((e.canonical.y >> d) << d), + C = s.cu(new Float64Array(16), [ + 1 / (s.$ << d), + 1 / (s.$ << d), + 0, + ]); + s.M(C, C, [g * s.$, w * s.$, 0]), + (this._demMatrixCache[e.key] = { matrix: C, coord: e }); + } + return { + u_depth: 2, + u_terrain: 3, + u_terrain_dim: (i && i.dem && i.dem.dim) || 1, + u_terrain_matrix: l + ? this._demMatrixCache[e.key].matrix + : this._emptyDemMatrix, + u_terrain_unpack: + (i && i.dem && i.dem.getUnpackVector()) || + this._emptyDemUnpack, + u_terrain_exaggeration: this.exaggeration, + texture: ((i && i.demTexture) || this._emptyDemTexture) + .texture, + depthTexture: ( + this._fboDepthTexture || this._emptyDepthTexture + ).texture, + tile: i, + }; + } + getFramebuffer(e) { + const i = this.painter, + l = i.width / devicePixelRatio, + u = i.height / devicePixelRatio; + return ( + !this._fbo || + (this._fbo.width === l && this._fbo.height === u) || + (this._fbo.destroy(), + this._fboCoordsTexture.destroy(), + this._fboDepthTexture.destroy(), + delete this._fbo, + delete this._fboDepthTexture, + delete this._fboCoordsTexture), + this._fboCoordsTexture || + ((this._fboCoordsTexture = new s.T( + i.context, + { width: l, height: u, data: null }, + i.context.gl.RGBA, + { premultiply: !1 } + )), + this._fboCoordsTexture.bind( + i.context.gl.NEAREST, + i.context.gl.CLAMP_TO_EDGE + )), + this._fboDepthTexture || + ((this._fboDepthTexture = new s.T( + i.context, + { width: l, height: u, data: null }, + i.context.gl.RGBA, + { premultiply: !1 } + )), + this._fboDepthTexture.bind( + i.context.gl.NEAREST, + i.context.gl.CLAMP_TO_EDGE + )), + this._fbo || + ((this._fbo = i.context.createFramebuffer(l, u, !0, !1)), + this._fbo.depthAttachment.set( + i.context.createRenderbuffer( + i.context.gl.DEPTH_COMPONENT16, + l, + u + ) + )), + this._fbo.colorAttachment.set( + e === "coords" + ? this._fboCoordsTexture.texture + : this._fboDepthTexture.texture + ), + this._fbo + ); + } + getCoordsTexture() { + const e = this.painter.context; + if (this._coordsTexture) return this._coordsTexture; + const i = new Uint8Array( + this._coordsTextureSize * this._coordsTextureSize * 4 + ); + for (let d = 0, g = 0; d < this._coordsTextureSize; d++) + for (let w = 0; w < this._coordsTextureSize; w++, g += 4) + (i[g + 0] = 255 & w), + (i[g + 1] = 255 & d), + (i[g + 2] = ((w >> 8) << 4) | (d >> 8)), + (i[g + 3] = 0); + const l = new s.R( + { + width: this._coordsTextureSize, + height: this._coordsTextureSize, + }, + new Uint8Array(i.buffer) + ), + u = new s.T(e, l, e.gl.RGBA, { premultiply: !1 }); + return ( + u.bind(e.gl.NEAREST, e.gl.CLAMP_TO_EDGE), + (this._coordsTexture = u), + u + ); + } + pointCoordinate(e) { + this.painter.maybeDrawDepthAndCoords(!0); + const i = new Uint8Array(4), + l = this.painter.context, + u = l.gl, + d = Math.round( + (e.x * this.painter.pixelRatio) / devicePixelRatio + ), + g = Math.round( + (e.y * this.painter.pixelRatio) / devicePixelRatio + ), + w = Math.round(this.painter.height / devicePixelRatio); + l.bindFramebuffer.set( + this.getFramebuffer("coords").framebuffer + ), + u.readPixels( + d, + w - g - 1, + 1, + 1, + u.RGBA, + u.UNSIGNED_BYTE, + i + ), + l.bindFramebuffer.set(null); + const C = i[0] + ((i[2] >> 4) << 8), + P = i[1] + ((15 & i[2]) << 8), + E = this.coordsIndex[255 - i[3]], + R = E && this.sourceCache.getTileByID(E); + if (!R) return null; + const D = this._coordsTextureSize, + N = (1 << R.tileID.canonical.z) * D; + return new s.a1( + (R.tileID.canonical.x * D + C) / N + R.tileID.wrap, + (R.tileID.canonical.y * D + P) / N, + this.getElevation(R.tileID, C, P, D) + ); + } + depthAtPoint(e) { + const i = new Uint8Array(4), + l = this.painter.context, + u = l.gl; + return ( + l.bindFramebuffer.set( + this.getFramebuffer("depth").framebuffer + ), + u.readPixels( + e.x, + this.painter.height / devicePixelRatio - e.y - 1, + 1, + 1, + u.RGBA, + u.UNSIGNED_BYTE, + i + ), + l.bindFramebuffer.set(null), + (i[0] / 16777216 + i[1] / 65536 + i[2] / 256 + i[3]) / 256 + ); + } + getTerrainMesh(e) { + var i; + const l = + ((i = this.painter.style.projection) === null || + i === void 0 + ? void 0 + : i.transitionState) > 0, + u = l && e.canonical.y === 0, + d = l && e.canonical.y === (1 << e.canonical.z) - 1, + g = `m_${u ? "n" : ""}_${d ? "s" : ""}`; + if (this._meshCache[g]) return this._meshCache[g]; + const w = this.painter.context, + C = new s.cv(), + P = new s.aN(), + E = this.meshSize, + R = s.$ / E, + D = E * E; + for (let _e = 0; _e <= E; _e++) + for (let Be = 0; Be <= E; Be++) + C.emplaceBack(Be * R, _e * R, 0); + for (let _e = 0; _e < D; _e += E + 1) + for (let Be = 0; Be < E; Be++) + P.emplaceBack(Be + _e, E + Be + _e + 1, E + Be + _e + 2), + P.emplaceBack(Be + _e, E + Be + _e + 2, Be + _e + 1); + const N = C.length, + G = N + (E + 1), + te = (E + 1) * E, + Q = u ? s.bh : 0, + ae = u ? 0 : 1, + ce = d ? s.bi : s.$, + ve = d ? 0 : 1; + for (let _e = 0; _e <= E; _e++) C.emplaceBack(_e * R, Q, ae); + for (let _e = 0; _e <= E; _e++) C.emplaceBack(_e * R, ce, ve); + for (let _e = 0; _e < E; _e++) + P.emplaceBack(te + _e, G + _e, G + _e + 1), + P.emplaceBack(te + _e, G + _e + 1, te + _e + 1), + P.emplaceBack(0 + _e, N + _e + 1, N + _e), + P.emplaceBack(0 + _e, 0 + _e + 1, N + _e + 1); + const me = C.length, + be = me + 2 * (E + 1); + for (const _e of [0, 1]) + for (let Be = 0; Be <= E; Be++) + for (const rt of [0, 1]) + C.emplaceBack(_e * s.$, Be * R, rt); + for (let _e = 0; _e < 2 * E; _e += 2) + P.emplaceBack(me + _e, me + _e + 1, me + _e + 3), + P.emplaceBack(me + _e, me + _e + 3, me + _e + 2), + P.emplaceBack(be + _e, be + _e + 3, be + _e + 1), + P.emplaceBack(be + _e, be + _e + 2, be + _e + 3); + const Pe = new Tn( + w.createVertexBuffer(C, ql.members), + w.createIndexBuffer(P), + s.aM.simpleSegment(0, 0, C.length, P.length) + ); + return (this._meshCache[g] = Pe), Pe; + } + getMeshFrameDelta(e) { + return (2 * Math.PI * s.bu) / Math.pow(2, Math.max(e, 0)) / 5; + } + getMinTileElevationForLngLatZoom(e, i) { + var l; + const { tileID: u } = this._getOverscaledTileIDFromLngLatZoom( + e, + i + ); + return (l = this.getMinMaxElevation(u).minElevation) !== + null && l !== void 0 + ? l + : 0; + } + getMinMaxElevation(e) { + const i = this.getTerrainData(e).tile, + l = { minElevation: null, maxElevation: null }; + return ( + i && + i.dem && + ((l.minElevation = i.dem.min * this.exaggeration), + (l.maxElevation = i.dem.max * this.exaggeration)), + l + ); + } + _getOverscaledTileIDFromLngLatZoom(e, i) { + const l = s.a1.fromLngLat(e.wrap()), + u = (1 << i) * s.$, + d = l.x * u, + g = l.y * u, + w = Math.floor(d / s.$), + C = Math.floor(g / s.$); + return { + tileID: new s.Z(i, 0, i, w, C), + mercatorX: d, + mercatorY: g, + }; + } + } + class Zl { + constructor(e, i, l) { + (this._context = e), + (this._size = i), + (this._tileSize = l), + (this._objects = []), + (this._recentlyUsed = []), + (this._stamp = 0); + } + destruct() { + for (const e of this._objects) + e.texture.destroy(), e.fbo.destroy(); + } + _createObject(e) { + const i = this._context.createFramebuffer( + this._tileSize, + this._tileSize, + !0, + !0 + ), + l = new s.T( + this._context, + { + width: this._tileSize, + height: this._tileSize, + data: null, + }, + this._context.gl.RGBA + ); + return ( + l.bind( + this._context.gl.LINEAR, + this._context.gl.CLAMP_TO_EDGE + ), + this._context.extTextureFilterAnisotropic && + this._context.gl.texParameterf( + this._context.gl.TEXTURE_2D, + this._context.extTextureFilterAnisotropic + .TEXTURE_MAX_ANISOTROPY_EXT, + this._context.extTextureFilterAnisotropicMax + ), + i.depthAttachment.set( + this._context.createRenderbuffer( + this._context.gl.DEPTH_STENCIL, + this._tileSize, + this._tileSize + ) + ), + i.colorAttachment.set(l.texture), + { id: e, fbo: i, texture: l, stamp: -1, inUse: !1 } + ); + } + getObjectForId(e) { + return this._objects[e]; + } + useObject(e) { + (e.inUse = !0), + (this._recentlyUsed = this._recentlyUsed.filter( + (i) => e.id !== i + )), + this._recentlyUsed.push(e.id); + } + stampObject(e) { + e.stamp = ++this._stamp; + } + getOrCreateFreeObject() { + for (const i of this._recentlyUsed) + if (!this._objects[i].inUse) return this._objects[i]; + if (this._objects.length >= this._size) + throw new Error( + "No free RenderPool available, call freeAllObjects() required!" + ); + const e = this._createObject(this._objects.length); + return this._objects.push(e), e; + } + freeObject(e) { + e.inUse = !1; + } + freeAllObjects() { + for (const e of this._objects) this.freeObject(e); + } + isFull() { + return ( + !(this._objects.length < this._size) && + this._objects.some((e) => !e.inUse) === !1 + ); + } + } + const _o = { + background: !0, + fill: !0, + line: !0, + raster: !0, + hillshade: !0, + "color-relief": !0, + }; + class Ul { + constructor(e, i) { + (this.painter = e), + (this.terrain = i), + (this.pool = new Zl( + e.context, + 30, + i.sourceCache.tileSize * i.qualityFactor + )); + } + destruct() { + this.pool.destruct(); + } + getTexture(e) { + return this.pool.getObjectForId( + e.rtt[this._stacks.length - 1].id + ).texture; + } + prepareForRender(e, i) { + (this._stacks = []), + (this._prevType = null), + (this._rttTiles = []), + (this._renderableTiles = + this.terrain.sourceCache.getRenderableTiles()), + (this._renderableLayerIds = e._order.filter( + (l) => !e._layers[l].isHidden(i) + )), + (this._coordsAscending = {}); + for (const l in e.sourceCaches) { + this._coordsAscending[l] = {}; + const u = e.sourceCaches[l].getVisibleCoordinates(), + d = e.sourceCaches[l].getSource(), + g = d instanceof Ot ? d.terrainTileRanges : null; + for (const w of u) { + const C = this.terrain.sourceCache.getTerrainCoords(w, g); + for (const P in C) + this._coordsAscending[l][P] || + (this._coordsAscending[l][P] = []), + this._coordsAscending[l][P].push(C[P]); + } + } + this._coordsAscendingStr = {}; + for (const l of e._order) { + const u = e._layers[l], + d = u.source; + if (_o[u.type] && !this._coordsAscendingStr[d]) { + this._coordsAscendingStr[d] = {}; + for (const g in this._coordsAscending[d]) + this._coordsAscendingStr[d][g] = this._coordsAscending[ + d + ][g] + .map((w) => w.key) + .sort() + .join(); + } + } + for (const l of this._renderableTiles) + for (const u in this._coordsAscendingStr) { + const d = this._coordsAscendingStr[u][l.tileID.key]; + d && d !== l.rttCoords[u] && (l.rtt = []); + } + } + renderLayer(e, i) { + if (e.isHidden(this.painter.transform.zoom)) return !1; + const l = Object.assign(Object.assign({}, i), { + isRenderingToTexture: !0, + }), + u = e.type, + d = this.painter, + g = + this._renderableLayerIds[ + this._renderableLayerIds.length - 1 + ] === e.id; + if ( + _o[u] && + ((this._prevType && _o[this._prevType]) || + this._stacks.push([]), + (this._prevType = u), + this._stacks[this._stacks.length - 1].push(e.id), + !g) + ) + return !0; + if (_o[this._prevType] || (_o[u] && g)) { + this._prevType = u; + const w = this._stacks.length - 1, + C = this._stacks[w] || []; + for (const P of this._renderableTiles) { + if ( + (this.pool.isFull() && + (Bl(this.painter, this.terrain, this._rttTiles, l), + (this._rttTiles = []), + this.pool.freeAllObjects()), + this._rttTiles.push(P), + P.rtt[w]) + ) { + const R = this.pool.getObjectForId(P.rtt[w].id); + if (R.stamp === P.rtt[w].stamp) { + this.pool.useObject(R); + continue; + } + } + const E = this.pool.getOrCreateFreeObject(); + this.pool.useObject(E), + this.pool.stampObject(E), + (P.rtt[w] = { id: E.id, stamp: E.stamp }), + d.context.bindFramebuffer.set(E.fbo.framebuffer), + d.context.clear({ + color: s.bf.transparent, + stencil: 0, + }), + (d.currentStencilSource = void 0); + for (let R = 0; R < C.length; R++) { + const D = d.style._layers[C[R]], + N = D.source + ? this._coordsAscending[D.source][P.tileID.key] + : [P.tileID]; + d.context.viewport.set([ + 0, + 0, + E.fbo.width, + E.fbo.height, + ]), + d._renderTileClippingMasks(D, N, !0), + d.renderLayer( + d, + d.style.sourceCaches[D.source], + D, + N, + l + ), + D.source && + (P.rttCoords[D.source] = + this._coordsAscendingStr[D.source][P.tileID.key]); + } + } + return ( + Bl(this.painter, this.terrain, this._rttTiles, l), + (this._rttTiles = []), + this.pool.freeAllObjects(), + _o[u] + ); + } + return !1; + } + } + const Ui = { + "AttributionControl.ToggleAttribution": "Toggle attribution", + "AttributionControl.MapFeedback": "Map feedback", + "FullscreenControl.Enter": "Enter fullscreen", + "FullscreenControl.Exit": "Exit fullscreen", + "GeolocateControl.FindMyLocation": "Find my location", + "GeolocateControl.LocationNotAvailable": + "Location not available", + "LogoControl.Title": "MapLibre logo", + "Map.Title": "Map", + "Marker.Title": "Map marker", + "NavigationControl.ResetBearing": "Reset bearing to north", + "NavigationControl.ZoomIn": "Zoom in", + "NavigationControl.ZoomOut": "Zoom out", + "Popup.Close": "Close popup", + "ScaleControl.Feet": "ft", + "ScaleControl.Meters": "m", + "ScaleControl.Kilometers": "km", + "ScaleControl.Miles": "mi", + "ScaleControl.NauticalMiles": "nm", + "GlobeControl.Enable": "Enable globe", + "GlobeControl.Disable": "Disable globe", + "TerrainControl.Enable": "Enable terrain", + "TerrainControl.Disable": "Disable terrain", + "CooperativeGesturesHandler.WindowsHelpText": + "Use Ctrl + scroll to zoom the map", + "CooperativeGesturesHandler.MacHelpText": + "Use ⌘ + scroll to zoom the map", + "CooperativeGesturesHandler.MobileHelpText": + "Use two fingers to move the map", + }, + Td = B, + xa = { + hash: !1, + interactive: !0, + bearingSnap: 7, + attributionControl: uu, + maplibreLogo: !1, + refreshExpiredTiles: !0, + canvasContextAttributes: { + antialias: !1, + preserveDrawingBuffer: !1, + powerPreference: "high-performance", + failIfMajorPerformanceCaveat: !1, + desynchronized: !1, + contextType: void 0, + }, + scrollZoom: !0, + minZoom: -2, + maxZoom: 22, + minPitch: 0, + maxPitch: 60, + boxZoom: !0, + dragRotate: !0, + dragPan: !0, + keyboard: !0, + doubleClickZoom: !0, + touchZoomRotate: !0, + touchPitch: !0, + cooperativeGestures: !1, + trackResize: !0, + center: [0, 0], + elevation: 0, + zoom: 0, + bearing: 0, + pitch: 0, + roll: 0, + renderWorldCopies: !0, + maxTileCacheSize: null, + maxTileCacheZoomLevels: s.a.MAX_TILE_CACHE_ZOOM_LEVELS, + transformRequest: null, + transformCameraUpdate: null, + fadeDuration: 300, + crossSourceCollisions: !0, + clickTolerance: 3, + localIdeographFontFamily: "sans-serif", + pitchWithRotate: !0, + rollEnabled: !1, + validateStyle: !0, + maxCanvasSize: [4096, 4096], + cancelPendingTileRequestsWhileZooming: !0, + centerClampedToGround: !0, + }, + $p = { + showCompass: !0, + showZoom: !0, + visualizePitch: !1, + visualizeRoll: !0, + }; + class Ks { + constructor(e, i, l = !1) { + (this.mousedown = (d) => { + this.startMove(d, H.mousePos(this.element, d)), + H.addEventListener(window, "mousemove", this.mousemove), + H.addEventListener(window, "mouseup", this.mouseup); + }), + (this.mousemove = (d) => { + this.move(d, H.mousePos(this.element, d)); + }), + (this.mouseup = (d) => { + this._rotatePitchHandler.dragEnd(d), this.offTemp(); + }), + (this.touchstart = (d) => { + d.targetTouches.length !== 1 + ? this.reset() + : ((this._startPos = this._lastPos = + H.touchPos(this.element, d.targetTouches)[0]), + this.startMove(d, this._startPos), + H.addEventListener( + window, + "touchmove", + this.touchmove, + { passive: !1 } + ), + H.addEventListener( + window, + "touchend", + this.touchend + )); + }), + (this.touchmove = (d) => { + d.targetTouches.length !== 1 + ? this.reset() + : ((this._lastPos = H.touchPos( + this.element, + d.targetTouches + )[0]), + this.move(d, this._lastPos)); + }), + (this.touchend = (d) => { + d.targetTouches.length === 0 && + this._startPos && + this._lastPos && + this._startPos.dist(this._lastPos) < + this._clickTolerance && + this.element.click(), + delete this._startPos, + delete this._lastPos, + this.offTemp(); + }), + (this.reset = () => { + this._rotatePitchHandler.reset(), + delete this._startPos, + delete this._lastPos, + this.offTemp(); + }), + (this._clickTolerance = 10), + (this.element = i); + const u = new qp(); + (this._rotatePitchHandler = new ss({ + clickTolerance: 3, + move: (d, g) => { + const w = i.getBoundingClientRect(), + C = new s.P( + (w.bottom - w.top) / 2, + (w.right - w.left) / 2 + ); + return { + bearingDelta: s.cn(new s.P(d.x, g.y), g, C), + pitchDelta: l ? -0.5 * (g.y - d.y) : void 0, + }; + }, + moveStateManager: u, + enable: !0, + assignEvents: () => {}, + })), + (this.map = e), + H.addEventListener(i, "mousedown", this.mousedown), + H.addEventListener(i, "touchstart", this.touchstart, { + passive: !1, + }), + H.addEventListener(i, "touchcancel", this.reset); + } + startMove(e, i) { + this._rotatePitchHandler.dragStart(e, i), H.disableDrag(); + } + move(e, i) { + const l = this.map, + { bearingDelta: u, pitchDelta: d } = + this._rotatePitchHandler.dragMove(e, i) || {}; + u && l.setBearing(l.getBearing() + u), + d && l.setPitch(l.getPitch() + d); + } + off() { + const e = this.element; + H.removeEventListener(e, "mousedown", this.mousedown), + H.removeEventListener(e, "touchstart", this.touchstart, { + passive: !1, + }), + H.removeEventListener(window, "touchmove", this.touchmove, { + passive: !1, + }), + H.removeEventListener(window, "touchend", this.touchend), + H.removeEventListener(e, "touchcancel", this.reset), + this.offTemp(); + } + offTemp() { + H.enableDrag(), + H.removeEventListener(window, "mousemove", this.mousemove), + H.removeEventListener(window, "mouseup", this.mouseup), + H.removeEventListener(window, "touchmove", this.touchmove, { + passive: !1, + }), + H.removeEventListener(window, "touchend", this.touchend); + } + } + let Dn; + function ti(h, e, i, l = !1) { + if ( + l || + !i.getCoveringTilesDetailsProvider().allowWorldCopies() + ) + return h == null ? void 0 : h.wrap(); + const u = new s.S(h.lng, h.lat); + if (((h = new s.S(h.lng, h.lat)), e)) { + const d = new s.S(h.lng - 360, h.lat), + g = new s.S(h.lng + 360, h.lat), + w = i.locationToScreenPoint(h).distSqr(e); + i.locationToScreenPoint(d).distSqr(e) < w + ? (h = d) + : i.locationToScreenPoint(g).distSqr(e) < w && (h = g); + } + for (; Math.abs(h.lng - i.center.lng) > 180; ) { + const d = i.locationToScreenPoint(h); + if (d.x >= 0 && d.y >= 0 && d.x <= i.width && d.y <= i.height) + break; + h.lng > i.center.lng ? (h.lng -= 360) : (h.lng += 360); + } + return h.lng !== u.lng && + i.isPointOnMapSurface(i.locationToScreenPoint(h)) + ? h + : u; + } + const $l = { + 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 hs(h, e, i) { + const l = h.classList; + for (const u in $l) l.remove(`maplibregl-${i}-anchor-${u}`); + l.add(`maplibregl-${i}-anchor-${e}`); + } + class ds extends s.E { + constructor(e) { + if ( + (super(), + (this._onKeyPress = (i) => { + const l = i.code, + u = i.charCode || i.keyCode; + (l !== "Space" && + l !== "Enter" && + u !== 32 && + u !== 13) || + this.togglePopup(); + }), + (this._onMapClick = (i) => { + const l = i.originalEvent.target, + u = this._element; + this._popup && + (l === u || u.contains(l)) && + this.togglePopup(); + }), + (this._update = (i) => { + if (!this._map) return; + const l = this._map.loaded() && !this._map.isMoving(); + ((i == null ? void 0 : i.type) === "terrain" || + ((i == null ? void 0 : i.type) === "render" && !l)) && + this._map.once("render", this._update), + (this._lngLat = ti( + this._lngLat, + this._flatPos, + this._map.transform + )), + (this._flatPos = this._pos = + this._map.project(this._lngLat)._add(this._offset)), + this._map.terrain && + (this._flatPos = this._map.transform + .locationToScreenPoint(this._lngLat) + ._add(this._offset)); + let u = ""; + this._rotationAlignment === "viewport" || + this._rotationAlignment === "auto" + ? (u = `rotateZ(${this._rotation}deg)`) + : this._rotationAlignment === "map" && + (u = `rotateZ(${ + this._rotation - this._map.getBearing() + }deg)`); + let d = ""; + this._pitchAlignment === "viewport" || + this._pitchAlignment === "auto" + ? (d = "rotateX(0deg)") + : this._pitchAlignment === "map" && + (d = `rotateX(${this._map.getPitch()}deg)`), + this._subpixelPositioning || + (i && i.type !== "moveend") || + (this._pos = this._pos.round()), + H.setTransform( + this._element, + `${$l[this._anchor]} translate(${this._pos.x}px, ${ + this._pos.y + }px) ${d} ${u}` + ), + ne + .frameAsync(new AbortController()) + .then(() => { + this._updateOpacity(i && i.type === "moveend"); + }) + .catch(() => {}); + }), + (this._onMove = (i) => { + if (!this._isDragging) { + const l = + this._clickTolerance || this._map._clickTolerance; + this._isDragging = + i.point.dist(this._pointerdownPos) >= l; + } + this._isDragging && + ((this._pos = i.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 s.l("dragstart"))), + this.fire(new s.l("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 s.l("dragend")), + (this._state = "inactive"); + }), + (this._addDragHandler = (i) => { + this._element.contains(i.originalEvent.target) && + (i.preventDefault(), + (this._positionDelta = i.point + .sub(this._pos) + .add(this._offset)), + (this._pointerdownPos = i.point), + (this._state = "pending"), + this._map.on("mousemove", this._onMove), + this._map.on("touchmove", this._onMove), + this._map.once("mouseup", this._onUp), + this._map.once("touchend", this._onUp)); + }), + (this._anchor = (e && e.anchor) || "center"), + (this._color = (e && e.color) || "#3FB1CE"), + (this._scale = (e && e.scale) || 1), + (this._draggable = (e && e.draggable) || !1), + (this._clickTolerance = (e && e.clickTolerance) || 0), + (this._subpixelPositioning = + (e && e.subpixelPositioning) || !1), + (this._isDragging = !1), + (this._state = "inactive"), + (this._rotation = (e && e.rotation) || 0), + (this._rotationAlignment = + (e && e.rotationAlignment) || "auto"), + (this._pitchAlignment = + e && e.pitchAlignment && e.pitchAlignment !== "auto" + ? e.pitchAlignment + : this._rotationAlignment), + this.setOpacity( + e == null ? void 0 : e.opacity, + e == null ? void 0 : e.opacityWhenCovered + ), + e && e.element) + ) + (this._element = e.element), + (this._offset = s.P.convert((e && e.offset) || [0, 0])); + else { + (this._defaultMarker = !0), + (this._element = H.create("div")); + const i = H.createNS("http://www.w3.org/2000/svg", "svg"), + l = 41, + u = 27; + i.setAttributeNS(null, "display", "block"), + i.setAttributeNS(null, "height", `${l}px`), + i.setAttributeNS(null, "width", `${u}px`), + i.setAttributeNS(null, "viewBox", `0 0 ${u} ${l}`); + const d = H.createNS("http://www.w3.org/2000/svg", "g"); + d.setAttributeNS(null, "stroke", "none"), + d.setAttributeNS(null, "stroke-width", "1"), + d.setAttributeNS(null, "fill", "none"), + d.setAttributeNS(null, "fill-rule", "evenodd"); + const g = H.createNS("http://www.w3.org/2000/svg", "g"); + g.setAttributeNS(null, "fill-rule", "nonzero"); + const w = H.createNS("http://www.w3.org/2000/svg", "g"); + w.setAttributeNS(null, "transform", "translate(3.0, 29.0)"), + w.setAttributeNS(null, "fill", "#000000"); + const C = [ + { 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 ae of C) { + const ce = H.createNS( + "http://www.w3.org/2000/svg", + "ellipse" + ); + ce.setAttributeNS(null, "opacity", "0.04"), + ce.setAttributeNS(null, "cx", "10.5"), + ce.setAttributeNS(null, "cy", "5.80029008"), + ce.setAttributeNS(null, "rx", ae.rx), + ce.setAttributeNS(null, "ry", ae.ry), + w.appendChild(ce); + } + const P = H.createNS("http://www.w3.org/2000/svg", "g"); + P.setAttributeNS(null, "fill", this._color); + const E = H.createNS("http://www.w3.org/2000/svg", "path"); + E.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" + ), + P.appendChild(E); + const R = H.createNS("http://www.w3.org/2000/svg", "g"); + R.setAttributeNS(null, "opacity", "0.25"), + R.setAttributeNS(null, "fill", "#000000"); + const D = H.createNS("http://www.w3.org/2000/svg", "path"); + D.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" + ), + R.appendChild(D); + const N = H.createNS("http://www.w3.org/2000/svg", "g"); + N.setAttributeNS(null, "transform", "translate(6.0, 7.0)"), + N.setAttributeNS(null, "fill", "#FFFFFF"); + const G = H.createNS("http://www.w3.org/2000/svg", "g"); + G.setAttributeNS(null, "transform", "translate(8.0, 8.0)"); + const te = H.createNS( + "http://www.w3.org/2000/svg", + "circle" + ); + te.setAttributeNS(null, "fill", "#000000"), + te.setAttributeNS(null, "opacity", "0.25"), + te.setAttributeNS(null, "cx", "5.5"), + te.setAttributeNS(null, "cy", "5.5"), + te.setAttributeNS(null, "r", "5.4999962"); + const Q = H.createNS( + "http://www.w3.org/2000/svg", + "circle" + ); + Q.setAttributeNS(null, "fill", "#FFFFFF"), + Q.setAttributeNS(null, "cx", "5.5"), + Q.setAttributeNS(null, "cy", "5.5"), + Q.setAttributeNS(null, "r", "5.4999962"), + G.appendChild(te), + G.appendChild(Q), + g.appendChild(w), + g.appendChild(P), + g.appendChild(R), + g.appendChild(N), + g.appendChild(G), + i.appendChild(g), + i.setAttributeNS(null, "height", l * this._scale + "px"), + i.setAttributeNS(null, "width", u * this._scale + "px"), + this._element.appendChild(i), + (this._offset = s.P.convert((e && e.offset) || [0, -14])); + } + if ( + (this._element.classList.add("maplibregl-marker"), + this._element.addEventListener("dragstart", (i) => { + i.preventDefault(); + }), + this._element.addEventListener("mousedown", (i) => { + i.preventDefault(); + }), + hs(this._element, this._anchor, "marker"), + e && e.className) + ) + for (const i of e.className.split(" ")) + this._element.classList.add(i); + this._popup = null; + } + addTo(e) { + return ( + this.remove(), + (this._map = e), + this._element.hasAttribute("aria-label") || + this._element.setAttribute( + "aria-label", + e._getUIString("Marker.Title") + ), + e.getCanvasContainer().appendChild(this._element), + e.on("move", this._update), + e.on("moveend", this._update), + e.on("terrain", this._update), + e.on("projectiontransition", this._update), + 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("terrain", this._update), + this._map.off("projectiontransition", 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), + H.remove(this._element), + this._popup && this._popup.remove(), + this + ); + } + getLngLat() { + return this._lngLat; + } + setLngLat(e) { + return ( + (this._lngLat = s.S.convert(e)), + (this._pos = null), + this._popup && this._popup.setLngLat(this._lngLat), + this._update(), + this + ); + } + getElement() { + return this._element; + } + setPopup(e) { + if ( + (this._popup && + (this._popup.remove(), + (this._popup = null), + this._element.removeEventListener( + "keypress", + this._onKeyPress + ), + this._originalTabIndex || + this._element.removeAttribute("tabindex")), + e) + ) { + if (!("offset" in e.options)) { + const u = Math.abs(13.5) / Math.SQRT2; + e.options.offset = this._defaultMarker + ? { + top: [0, 0], + "top-left": [0, 0], + "top-right": [0, 0], + bottom: [0, -38.1], + "bottom-left": [u, -1 * (38.1 - 13.5 + u)], + "bottom-right": [-u, -1 * (38.1 - 13.5 + u)], + left: [13.5, -1 * (38.1 - 13.5)], + right: [-13.5, -1 * (38.1 - 13.5)], + } + : this._offset; + } + (this._popup = e), + (this._originalTabIndex = + this._element.getAttribute("tabindex")), + this._originalTabIndex || + this._element.setAttribute("tabindex", "0"), + this._element.addEventListener( + "keypress", + this._onKeyPress + ); + } + return this; + } + setSubpixelPositioning(e) { + return (this._subpixelPositioning = e), this; + } + getPopup() { + return this._popup; + } + togglePopup() { + const e = this._popup; + return this._element.style.opacity === + this._opacityWhenCovered + ? this + : e + ? (e.isOpen() + ? e.remove() + : (e.setLngLat(this._lngLat), e.addTo(this._map)), + this) + : this; + } + _updateOpacity(e = !1) { + var i, l; + const u = + (i = this._map) === null || i === void 0 + ? void 0 + : i.terrain, + d = this._map.transform.isLocationOccluded(this._lngLat); + if (!u || d) { + const N = d ? this._opacityWhenCovered : this._opacity; + return void ( + this._element.style.opacity !== N && + (this._element.style.opacity = N) + ); + } + if (e) this._opacityTimeout = null; + else { + if (this._opacityTimeout) return; + this._opacityTimeout = setTimeout(() => { + this._opacityTimeout = null; + }, 100); + } + const g = this._map, + w = g.terrain.depthAtPoint(this._pos), + C = g.terrain.getElevationForLngLatZoom( + this._lngLat, + g.transform.tileZoom + ); + if ( + g.transform.lngLatToCameraDepth(this._lngLat, C) - w < + 0.006 + ) + return void (this._element.style.opacity = this._opacity); + const P = -this._offset.y / g.transform.pixelsPerMeter, + E = Math.sin((g.getPitch() * Math.PI) / 180) * P, + R = g.terrain.depthAtPoint( + new s.P(this._pos.x, this._pos.y - this._offset.y) + ), + D = + g.transform.lngLatToCameraDepth(this._lngLat, C + E) - R > + 0.006; + !((l = this._popup) === null || l === void 0) && + l.isOpen() && + D && + this._popup.remove(), + (this._element.style.opacity = D + ? this._opacityWhenCovered + : this._opacity); + } + getOffset() { + return this._offset; + } + setOffset(e) { + return (this._offset = s.P.convert(e)), this._update(), this; + } + addClassName(e) { + this._element.classList.add(e); + } + removeClassName(e) { + this._element.classList.remove(e); + } + toggleClassName(e) { + return this._element.classList.toggle(e); + } + setDraggable(e) { + return ( + (this._draggable = !!e), + this._map && + (e + ? (this._map.on("mousedown", this._addDragHandler), + this._map.on("touchstart", this._addDragHandler)) + : (this._map.off("mousedown", this._addDragHandler), + this._map.off("touchstart", this._addDragHandler))), + this + ); + } + isDraggable() { + return this._draggable; + } + setRotation(e) { + return (this._rotation = e || 0), this._update(), this; + } + getRotation() { + return this._rotation; + } + setRotationAlignment(e) { + return ( + (this._rotationAlignment = e || "auto"), + this._update(), + this + ); + } + getRotationAlignment() { + return this._rotationAlignment; + } + setPitchAlignment(e) { + return ( + (this._pitchAlignment = + e && e !== "auto" ? e : this._rotationAlignment), + this._update(), + this + ); + } + getPitchAlignment() { + return this._pitchAlignment; + } + setOpacity(e, i) { + return ( + (this._opacity === void 0 || + (e === void 0 && i === void 0)) && + ((this._opacity = "1"), + (this._opacityWhenCovered = "0.2")), + e !== void 0 && (this._opacity = e), + i !== void 0 && (this._opacityWhenCovered = i), + this._map && this._updateOpacity(!0), + this + ); + } + } + const du = { + positionOptions: { + enableHighAccuracy: !1, + maximumAge: 0, + timeout: 6e3, + }, + fitBoundsOptions: { maxZoom: 15 }, + trackUserLocation: !1, + showAccuracyCircle: !0, + showUserLocation: !0, + }; + let ps = 0, + No = !1; + const Js = { maxWidth: 100, unit: "metric" }; + function Gl(h, e, i) { + const l = (i && i.maxWidth) || 100, + u = h._container.clientHeight / 2, + d = h._container.clientWidth / 2, + g = h.unproject([d - l / 2, u]), + w = h.unproject([d + l / 2, u]), + C = Math.round(h.project(w).x - h.project(g).x), + P = Math.min(l, C, h._container.clientWidth), + E = g.distanceTo(w); + if (i && i.unit === "imperial") { + const R = 3.2808 * E; + R > 5280 + ? jo(e, P, R / 5280, h._getUIString("ScaleControl.Miles")) + : jo(e, P, R, h._getUIString("ScaleControl.Feet")); + } else i && i.unit === "nautical" ? jo(e, P, E / 1852, h._getUIString("ScaleControl.NauticalMiles")) : E >= 1e3 ? jo(e, P, E / 1e3, h._getUIString("ScaleControl.Kilometers")) : jo(e, P, E, h._getUIString("ScaleControl.Meters")); + } + function jo(h, e, i, l) { + const u = (function (d) { + const g = Math.pow(10, `${Math.floor(d)}`.length - 1); + let w = d / g; + return ( + (w = + w >= 10 + ? 10 + : w >= 5 + ? 5 + : w >= 3 + ? 3 + : w >= 2 + ? 2 + : w >= 1 + ? 1 + : (function (C) { + const P = Math.pow( + 10, + Math.ceil(-Math.log(C) / Math.LN10) + ); + return Math.round(C * P) / P; + })(w)), + g * w + ); + })(i); + (h.style.width = e * (u / i) + "px"), + (h.innerHTML = `${u} ${l}`); + } + const pu = { + closeButton: !0, + closeOnClick: !0, + focusAfterOpen: !0, + className: "", + maxWidth: "240px", + subpixelPositioning: !1, + locationOccludedOpacity: void 0, + }, + fu = [ + "a[href]", + "[tabindex]:not([tabindex='-1'])", + "[contenteditable]:not([contenteditable='false'])", + "button:not([disabled])", + "input:not([disabled])", + "select:not([disabled])", + "textarea:not([disabled])", + ].join(", "); + function Hl(h) { + if (h) { + if (typeof h == "number") { + const e = Math.round(Math.abs(h) / Math.SQRT2); + return { + center: new s.P(0, 0), + top: new s.P(0, h), + "top-left": new s.P(e, e), + "top-right": new s.P(-e, e), + bottom: new s.P(0, -h), + "bottom-left": new s.P(e, -e), + "bottom-right": new s.P(-e, -e), + left: new s.P(h, 0), + right: new s.P(-h, 0), + }; + } + if (h instanceof s.P || Array.isArray(h)) { + const e = s.P.convert(h); + return { + center: e, + top: e, + "top-left": e, + "top-right": e, + bottom: e, + "bottom-left": e, + "bottom-right": e, + left: e, + right: e, + }; + } + return { + center: s.P.convert(h.center || [0, 0]), + top: s.P.convert(h.top || [0, 0]), + "top-left": s.P.convert(h["top-left"] || [0, 0]), + "top-right": s.P.convert(h["top-right"] || [0, 0]), + bottom: s.P.convert(h.bottom || [0, 0]), + "bottom-left": s.P.convert(h["bottom-left"] || [0, 0]), + "bottom-right": s.P.convert(h["bottom-right"] || [0, 0]), + left: s.P.convert(h.left || [0, 0]), + right: s.P.convert(h.right || [0, 0]), + }; + } + return Hl(new s.P(0, 0)); + } + const mu = B; + (T.AJAXError = s.cz), + (T.Event = s.l), + (T.Evented = s.E), + (T.LngLat = s.S), + (T.MercatorCoordinate = s.a1), + (T.Point = s.P), + (T.addProtocol = s.cA), + (T.config = s.a), + (T.removeProtocol = s.cB), + (T.AttributionControl = hu), + (T.BoxZoomHandler = nu), + (T.CanvasSource = or), + (T.CooperativeGesturesHandler = xd), + (T.DoubleClickZoomHandler = ou), + (T.DragPanHandler = vd), + (T.DragRotateHandler = lu), + (T.EdgeInsets = Mn), + (T.FullscreenControl = class extends s.E { + constructor(h = {}) { + super(), + (this._onFullscreenChange = () => { + var e; + let i = + window.document.fullscreenElement || + window.document.mozFullScreenElement || + window.document.webkitFullscreenElement || + window.document.msFullscreenElement; + for ( + ; + !( + (e = i == null ? void 0 : i.shadowRoot) === null || + e === void 0 + ) && e.fullscreenElement; + + ) + i = i.shadowRoot.fullscreenElement; + (i === this._container) !== this._fullscreen && + this._handleFullscreenChange(); + }), + (this._onClickFullscreen = () => { + this._isFullscreen() + ? this._exitFullscreen() + : this._requestFullscreen(); + }), + (this._fullscreen = !1), + h && + h.container && + (h.container instanceof HTMLElement + ? (this._container = h.container) + : s.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(h) { + return ( + (this._map = h), + this._container || + (this._container = this._map.getContainer()), + (this._controlContainer = H.create( + "div", + "maplibregl-ctrl maplibregl-ctrl-group" + )), + this._setupUI(), + this._controlContainer + ); + } + onRemove() { + H.remove(this._controlContainer), + (this._map = null), + window.document.removeEventListener( + this._fullscreenchange, + this._onFullscreenChange + ); + } + _setupUI() { + const h = (this._fullscreenButton = H.create( + "button", + "maplibregl-ctrl-fullscreen", + this._controlContainer + )); + H.create("span", "maplibregl-ctrl-icon", h).setAttribute( + "aria-hidden", + "true" + ), + (h.type = "button"), + this._updateTitle(), + this._fullscreenButton.addEventListener( + "click", + this._onClickFullscreen + ), + window.document.addEventListener( + this._fullscreenchange, + this._onFullscreenChange + ); + } + _updateTitle() { + const h = this._getTitle(); + this._fullscreenButton.setAttribute("aria-label", h), + (this._fullscreenButton.title = h); + } + _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 s.l("fullscreenstart")), + (this._prevCooperativeGesturesEnabled = + this._map.cooperativeGestures.isEnabled()), + this._map.cooperativeGestures.disable()) + : (this.fire(new s.l("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(); + } + }), + (T.GeoJSONSource = Qt), + (T.GeolocateControl = class extends s.E { + constructor(h) { + super(), + (this._onSuccess = (e) => { + if (this._map) { + if (this._isOutOfMapMaxBounds(e)) + return ( + this._setErrorState(), + this.fire(new s.l("outofmaxbounds", e)), + this._updateMarker(), + void this._finish() + ); + if (this.options.trackUserLocation) + switch ( + ((this._lastKnownPosition = e), this._watchState) + ) { + case "WAITING_ACTIVE": + case "ACTIVE_LOCK": + case "ACTIVE_ERROR": + (this._watchState = "ACTIVE_LOCK"), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-waiting" + ), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-active-error" + ), + this._geolocateButton.classList.add( + "maplibregl-ctrl-geolocate-active" + ); + break; + case "BACKGROUND": + case "BACKGROUND_ERROR": + (this._watchState = "BACKGROUND"), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-waiting" + ), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-background-error" + ), + this._geolocateButton.classList.add( + "maplibregl-ctrl-geolocate-background" + ); + break; + default: + throw new Error( + `Unexpected watchState ${this._watchState}` + ); + } + this.options.showUserLocation && + this._watchState !== "OFF" && + this._updateMarker(e), + (this.options.trackUserLocation && + this._watchState !== "ACTIVE_LOCK") || + this._updateCamera(e), + this.options.showUserLocation && + this._dotElement.classList.remove( + "maplibregl-user-location-dot-stale" + ), + this.fire(new s.l("geolocate", e)), + this._finish(); + } + }), + (this._updateCamera = (e) => { + const i = new s.S( + e.coords.longitude, + e.coords.latitude + ), + l = e.coords.accuracy, + u = this._map.getBearing(), + d = s.e( + { bearing: u }, + this.options.fitBoundsOptions + ), + g = _t.fromLngLat(i, l); + this._map.fitBounds(g, d, { geolocateSource: !0 }); + }), + (this._updateMarker = (e) => { + if (e) { + const i = new s.S( + e.coords.longitude, + e.coords.latitude + ); + this._accuracyCircleMarker + .setLngLat(i) + .addTo(this._map), + this._userLocationDotMarker + .setLngLat(i) + .addTo(this._map), + (this._accuracy = e.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 = (e) => { + if (this._map) { + if (e.code === 1) { + (this._watchState = "OFF"), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-waiting" + ), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-active" + ), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-active-error" + ), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-background" + ), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-background-error" + ), + (this._geolocateButton.disabled = !0); + const i = this._map._getUIString( + "GeolocateControl.LocationNotAvailable" + ); + (this._geolocateButton.title = i), + this._geolocateButton.setAttribute( + "aria-label", + i + ), + this._geolocationWatchID !== void 0 && + this._clearWatch(); + } else { + if (e.code === 3 && No) return; + this.options.trackUserLocation && + this._setErrorState(); + } + this._watchState !== "OFF" && + this.options.showUserLocation && + this._dotElement.classList.add( + "maplibregl-user-location-dot-stale" + ), + this.fire(new s.l("error", e)), + this._finish(); + } + }), + (this._finish = () => { + this._timeoutId && clearTimeout(this._timeoutId), + (this._timeoutId = void 0); + }), + (this._setupUI = () => { + this._map && + (this._container.addEventListener( + "contextmenu", + (e) => e.preventDefault() + ), + (this._geolocateButton = H.create( + "button", + "maplibregl-ctrl-geolocate", + this._container + )), + H.create( + "span", + "maplibregl-ctrl-icon", + this._geolocateButton + ).setAttribute("aria-hidden", "true"), + (this._geolocateButton.type = "button"), + (this._geolocateButton.disabled = !0)); + }), + (this._finishSetupUI = (e) => { + if (this._map) { + if (e === !1) { + s.w( + "Geolocation support is not available so the GeolocateControl will be disabled." + ); + const i = this._map._getUIString( + "GeolocateControl.LocationNotAvailable" + ); + (this._geolocateButton.disabled = !0), + (this._geolocateButton.title = i), + this._geolocateButton.setAttribute( + "aria-label", + i + ); + } else { + const i = this._map._getUIString( + "GeolocateControl.FindMyLocation" + ); + (this._geolocateButton.disabled = !1), + (this._geolocateButton.title = i), + this._geolocateButton.setAttribute( + "aria-label", + i + ); + } + this.options.trackUserLocation && + (this._geolocateButton.setAttribute( + "aria-pressed", + "false" + ), + (this._watchState = "OFF")), + this.options.showUserLocation && + ((this._dotElement = H.create( + "div", + "maplibregl-user-location-dot" + )), + (this._userLocationDotMarker = new ds({ + element: this._dotElement, + })), + (this._circleElement = H.create( + "div", + "maplibregl-user-location-accuracy-circle" + )), + (this._accuracyCircleMarker = new ds({ + 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", (i) => { + const l = + (i == null ? void 0 : i[0]) instanceof + ResizeObserverEntry; + i.geolocateSource || + this._watchState !== "ACTIVE_LOCK" || + l || + this._map.isZooming() || + ((this._watchState = "BACKGROUND"), + this._geolocateButton.classList.add( + "maplibregl-ctrl-geolocate-background" + ), + this._geolocateButton.classList.remove( + "maplibregl-ctrl-geolocate-active" + ), + this.fire(new s.l("trackuserlocationend")), + this.fire(new s.l("userlocationlostfocus"))); + }); + } + }), + (this.options = s.e({}, du, h)); + } + onAdd(h) { + return ( + (this._map = h), + (this._container = H.create( + "div", + "maplibregl-ctrl maplibregl-ctrl-group" + )), + this._setupUI(), + (function () { + return s._(this, arguments, void 0, function* (e = !1) { + if (Dn !== void 0 && !e) return Dn; + if (window.navigator.permissions === void 0) + return (Dn = !!window.navigator.geolocation), Dn; + try { + Dn = + (yield window.navigator.permissions.query({ + name: "geolocation", + })).state !== "denied"; + } catch { + Dn = !!window.navigator.geolocation; + } + return Dn; + }); + })().then((e) => this._finishSetupUI(e)), + this._container + ); + } + onRemove() { + this._geolocationWatchID !== void 0 && + (window.navigator.geolocation.clearWatch( + this._geolocationWatchID + ), + (this._geolocationWatchID = void 0)), + this.options.showUserLocation && + this._userLocationDotMarker && + this._userLocationDotMarker.remove(), + this.options.showAccuracyCircle && + this._accuracyCircleMarker && + this._accuracyCircleMarker.remove(), + H.remove(this._container), + this._map.off("zoom", this._onZoom), + (this._map = void 0), + (ps = 0), + (No = !1); + } + _isOutOfMapMaxBounds(h) { + const e = this._map.getMaxBounds(), + i = h.coords; + return ( + e && + (i.longitude < e.getWest() || + i.longitude > e.getEast() || + i.latitude < e.getSouth() || + i.latitude > e.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 h = this._map.getBounds(), + e = h.getSouthEast(), + i = h.getNorthEast(), + l = e.distanceTo(i), + u = Math.ceil( + (this._accuracy / + (l / this._map._container.clientHeight)) * + 2 + ); + (this._circleElement.style.width = `${u}px`), + (this._circleElement.style.height = `${u}px`); + } + trigger() { + if (!this._setup) + return ( + s.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 s.l("trackuserlocationstart")); + break; + case "WAITING_ACTIVE": + case "ACTIVE_LOCK": + case "ACTIVE_ERROR": + case "BACKGROUND_ERROR": + ps--, + (No = !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 s.l("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 s.l("trackuserlocationstart")), + this.fire(new s.l("userlocationfocus")); + 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 h; + this._geolocateButton.classList.add( + "maplibregl-ctrl-geolocate-waiting" + ), + this._geolocateButton.setAttribute( + "aria-pressed", + "true" + ), + ps++, + ps > 1 + ? ((h = { maximumAge: 6e5, timeout: 0 }), (No = !0)) + : ((h = this.options.positionOptions), (No = !1)), + (this._geolocationWatchID = + window.navigator.geolocation.watchPosition( + this._onSuccess, + this._onError, + h + )); + } + } 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); + } + }), + (T.GlobeControl = class { + constructor() { + (this._toggleProjection = () => { + var h; + const e = + (h = this._map.getProjection()) === null || h === void 0 + ? void 0 + : h.type; + this._map.setProjection( + e !== "mercator" && e + ? { type: "mercator" } + : { type: "globe" } + ), + this._updateGlobeIcon(); + }), + (this._updateGlobeIcon = () => { + var h; + this._globeButton.classList.remove( + "maplibregl-ctrl-globe" + ), + this._globeButton.classList.remove( + "maplibregl-ctrl-globe-enabled" + ), + ((h = this._map.getProjection()) === null || + h === void 0 + ? void 0 + : h.type) === "globe" + ? (this._globeButton.classList.add( + "maplibregl-ctrl-globe-enabled" + ), + (this._globeButton.title = this._map._getUIString( + "GlobeControl.Disable" + ))) + : (this._globeButton.classList.add( + "maplibregl-ctrl-globe" + ), + (this._globeButton.title = this._map._getUIString( + "GlobeControl.Enable" + ))); + }); + } + onAdd(h) { + return ( + (this._map = h), + (this._container = H.create( + "div", + "maplibregl-ctrl maplibregl-ctrl-group" + )), + (this._globeButton = H.create( + "button", + "maplibregl-ctrl-globe", + this._container + )), + H.create( + "span", + "maplibregl-ctrl-icon", + this._globeButton + ).setAttribute("aria-hidden", "true"), + (this._globeButton.type = "button"), + this._globeButton.addEventListener( + "click", + this._toggleProjection + ), + this._updateGlobeIcon(), + this._map.on("styledata", this._updateGlobeIcon), + this._container + ); + } + onRemove() { + H.remove(this._container), + this._map.off("styledata", this._updateGlobeIcon), + this._globeButton.removeEventListener( + "click", + this._toggleProjection + ), + (this._map = void 0); + } + }), + (T.Hash = Fl), + (T.ImageSource = Ot), + (T.KeyboardHandler = jl), + (T.LngLatBounds = _t), + (T.LogoControl = wd), + (T.Map = class extends bd { + constructor(h) { + var e, i; + s.cw.mark(s.cx.create); + const l = Object.assign( + Object.assign(Object.assign({}, xa), h), + { + canvasContextAttributes: Object.assign( + Object.assign({}, xa.canvasContextAttributes), + h.canvasContextAttributes + ), + } + ); + if ( + l.minZoom != null && + l.maxZoom != null && + l.minZoom > l.maxZoom + ) + throw new Error( + "maxZoom must be greater than or equal to minZoom" + ); + if ( + l.minPitch != null && + l.maxPitch != null && + l.minPitch > l.maxPitch + ) + throw new Error( + "maxPitch must be greater than or equal to minPitch" + ); + if (l.minPitch != null && l.minPitch < 0) + throw new Error( + "minPitch must be greater than or equal to 0" + ); + if (l.maxPitch != null && l.maxPitch > 180) + throw new Error( + "maxPitch must be less than or equal to 180" + ); + const u = new on(), + d = new jn(); + if ( + (l.minZoom !== void 0 && u.setMinZoom(l.minZoom), + l.maxZoom !== void 0 && u.setMaxZoom(l.maxZoom), + l.minPitch !== void 0 && u.setMinPitch(l.minPitch), + l.maxPitch !== void 0 && u.setMaxPitch(l.maxPitch), + l.renderWorldCopies !== void 0 && + u.setRenderWorldCopies(l.renderWorldCopies), + super(u, d, { bearingSnap: l.bearingSnap }), + (this._idleTriggered = !1), + (this._crossFadingFactor = 1), + (this._renderTaskQueue = new $a()), + (this._controls = []), + (this._mapId = s.a7()), + (this._contextLost = (w) => { + w.preventDefault(), + this._frameRequest && + (this._frameRequest.abort(), + (this._frameRequest = null)), + this.fire( + new s.l("webglcontextlost", { originalEvent: w }) + ); + }), + (this._contextRestored = (w) => { + this._setupPainter(), + this.resize(), + this._update(), + this.fire( + new s.l("webglcontextrestored", { + originalEvent: w, + }) + ); + }), + (this._onMapScroll = (w) => { + if (w.target === this._container) + return ( + (this._container.scrollTop = 0), + (this._container.scrollLeft = 0), + !1 + ); + }), + (this._onWindowOnline = () => { + this._update(); + }), + (this._interactive = l.interactive), + (this._maxTileCacheSize = l.maxTileCacheSize), + (this._maxTileCacheZoomLevels = l.maxTileCacheZoomLevels), + (this._canvasContextAttributes = Object.assign( + {}, + l.canvasContextAttributes + )), + (this._trackResize = l.trackResize === !0), + (this._bearingSnap = l.bearingSnap), + (this._centerClampedToGround = l.centerClampedToGround), + (this._refreshExpiredTiles = + l.refreshExpiredTiles === !0), + (this._fadeDuration = l.fadeDuration), + (this._crossSourceCollisions = + l.crossSourceCollisions === !0), + (this._collectResourceTiming = + l.collectResourceTiming === !0), + (this._locale = Object.assign( + Object.assign({}, Ui), + l.locale + )), + (this._clickTolerance = l.clickTolerance), + (this._overridePixelRatio = l.pixelRatio), + (this._maxCanvasSize = l.maxCanvasSize), + (this.transformCameraUpdate = l.transformCameraUpdate), + (this.cancelPendingTileRequestsWhileZooming = + l.cancelPendingTileRequestsWhileZooming === !0), + (this._imageQueueHandle = Fe.addThrottleControl(() => + this.isMoving() + )), + (this._requestManager = new $e(l.transformRequest)), + typeof l.container == "string") + ) { + if ( + ((this._container = document.getElementById( + l.container + )), + !this._container) + ) + throw new Error( + `Container '${l.container}' not found.` + ); + } else { + if (!(l.container instanceof HTMLElement)) + throw new Error( + "Invalid type: 'container' must be a String or HTMLElement." + ); + this._container = l.container; + } + if ( + (l.maxBounds && this.setMaxBounds(l.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 w = !1; + const C = Fo((P) => { + this._trackResize && + !this._removed && + (this.resize(P), this.redraw()); + }, 50); + (this._resizeObserver = new ResizeObserver((P) => { + w ? C(P) : (w = !0); + })), + this._resizeObserver.observe(this._container); + } + (this.handlers = new cu(this, l)), + (this._hash = + l.hash && + new Fl( + (typeof l.hash == "string" && l.hash) || void 0 + ).addTo(this)), + (this._hash && this._hash._onHashChange()) || + (this.jumpTo({ + center: l.center, + elevation: l.elevation, + zoom: l.zoom, + bearing: l.bearing, + pitch: l.pitch, + roll: l.roll, + }), + l.bounds && + (this.resize(), + this.fitBounds( + l.bounds, + s.e({}, l.fitBoundsOptions, { duration: 0 }) + ))); + const g = + typeof l.style == "string" || + ((i = + (e = l.style) === null || e === void 0 + ? void 0 + : e.projection) === null || i === void 0 + ? void 0 + : i.type) !== "globe"; + this.resize(null, g), + (this._localIdeographFontFamily = + l.localIdeographFontFamily), + (this._validateStyle = l.validateStyle), + l.style && + this.setStyle(l.style, { + localIdeographFontFamily: l.localIdeographFontFamily, + }), + l.attributionControl && + this.addControl( + new hu( + typeof l.attributionControl == "boolean" + ? void 0 + : l.attributionControl + ) + ), + l.maplibreLogo && + this.addControl(new wd(), l.logoPosition), + this.on("style.load", () => { + if ( + (g || this._resizeTransform(), + this.transform.unmodified) + ) { + const w = s.Q(this.style.stylesheet, [ + "center", + "zoom", + "bearing", + "pitch", + "roll", + ]); + this.jumpTo(w); + } + }), + this.on("data", (w) => { + this._update(w.dataType === "style"), + this.fire(new s.l(`${w.dataType}data`, w)); + }), + this.on("dataloading", (w) => { + this.fire(new s.l(`${w.dataType}dataloading`, w)); + }), + this.on("dataabort", (w) => { + this.fire(new s.l("sourcedataabort", w)); + }); + } + _getMapId() { + return this._mapId; + } + setGlobalStateProperty(h, e) { + return ( + this.style.setGlobalStateProperty(h, e), this._update(!0) + ); + } + getGlobalState() { + return this.style.getGlobalState(); + } + addControl(h, e) { + if ( + (e === void 0 && + (e = h.getDefaultPosition + ? h.getDefaultPosition() + : "top-right"), + !h || !h.onAdd) + ) + return this.fire( + new s.k( + new Error( + "Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods." + ) + ) + ); + const i = h.onAdd(this); + this._controls.push(h); + const l = this._controlPositions[e]; + return ( + e.indexOf("bottom") !== -1 + ? l.insertBefore(i, l.firstChild) + : l.appendChild(i), + this + ); + } + removeControl(h) { + if (!h || !h.onRemove) + return this.fire( + new s.k( + new Error( + "Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods." + ) + ) + ); + const e = this._controls.indexOf(h); + return ( + e > -1 && this._controls.splice(e, 1), + h.onRemove(this), + this + ); + } + hasControl(h) { + return this._controls.indexOf(h) > -1; + } + calculateCameraOptionsFromTo(h, e, i, l) { + return ( + l == null && + this.terrain && + (l = this.terrain.getElevationForLngLatZoom( + i, + this.transform.tileZoom + )), + super.calculateCameraOptionsFromTo(h, e, i, l) + ); + } + resize(h, e = !0) { + const [i, l] = this._containerDimensions(), + u = this._getClampedPixelRatio(i, l); + if ( + (this._resizeCanvas(i, l, u), + this.painter.resize(i, l, u), + this.painter.overLimit()) + ) { + const g = this.painter.context.gl; + this._maxCanvasSize = [ + g.drawingBufferWidth, + g.drawingBufferHeight, + ]; + const w = this._getClampedPixelRatio(i, l); + this._resizeCanvas(i, l, w), this.painter.resize(i, l, w); + } + this._resizeTransform(e); + const d = !this._moving; + return ( + d && + (this.stop(), + this.fire(new s.l("movestart", h)).fire( + new s.l("move", h) + )), + this.fire(new s.l("resize", h)), + d && this.fire(new s.l("moveend", h)), + this + ); + } + _resizeTransform(h = !0) { + var e; + const [i, l] = this._containerDimensions(); + this.transform.resize(i, l, h), + (e = this._requestedCameraState) === null || + e === void 0 || + e.resize(i, l, h); + } + _getClampedPixelRatio(h, e) { + const { 0: i, 1: l } = this._maxCanvasSize, + u = this.getPixelRatio(), + d = h * u, + g = e * u; + return Math.min(d > i ? i / d : 1, g > l ? l / g : 1) * u; + } + getPixelRatio() { + var h; + return (h = this._overridePixelRatio) !== null && + h !== void 0 + ? h + : devicePixelRatio; + } + setPixelRatio(h) { + (this._overridePixelRatio = h), this.resize(); + } + getBounds() { + return this.transform.getBounds(); + } + getMaxBounds() { + return this.transform.getMaxBounds(); + } + setMaxBounds(h) { + return ( + this.transform.setMaxBounds(_t.convert(h)), this._update() + ); + } + setMinZoom(h) { + if ((h = h ?? -2) >= -2 && h <= this.transform.maxZoom) + return ( + this.transform.setMinZoom(h), + this._update(), + this.getZoom() < h && this.setZoom(h), + this + ); + throw new Error( + "minZoom must be between -2 and the current maxZoom, inclusive" + ); + } + getMinZoom() { + return this.transform.minZoom; + } + setMaxZoom(h) { + if ((h = h ?? 22) >= this.transform.minZoom) + return ( + this.transform.setMaxZoom(h), + this._update(), + this.getZoom() > h && this.setZoom(h), + this + ); + throw new Error( + "maxZoom must be greater than the current minZoom" + ); + } + getMaxZoom() { + return this.transform.maxZoom; + } + setMinPitch(h) { + if ((h = h ?? 0) < 0) + throw new Error( + "minPitch must be greater than or equal to 0" + ); + if (h >= 0 && h <= this.transform.maxPitch) + return ( + this.transform.setMinPitch(h), + this._update(), + this.getPitch() < h && this.setPitch(h), + this + ); + throw new Error( + "minPitch must be between 0 and the current maxPitch, inclusive" + ); + } + getMinPitch() { + return this.transform.minPitch; + } + setMaxPitch(h) { + if ((h = h ?? 60) > 180) + throw new Error( + "maxPitch must be less than or equal to 180" + ); + if (h >= this.transform.minPitch) + return ( + this.transform.setMaxPitch(h), + this._update(), + this.getPitch() > h && this.setPitch(h), + this + ); + throw new Error( + "maxPitch must be greater than the current minPitch" + ); + } + getMaxPitch() { + return this.transform.maxPitch; + } + getRenderWorldCopies() { + return this.transform.renderWorldCopies; + } + setRenderWorldCopies(h) { + return ( + this.transform.setRenderWorldCopies(h), this._update() + ); + } + project(h) { + return this.transform.locationToScreenPoint( + s.S.convert(h), + this.style && this.terrain + ); + } + unproject(h) { + return this.transform.screenPointToLocation( + s.P.convert(h), + this.terrain + ); + } + isMoving() { + var h; + return ( + this._moving || + ((h = this.handlers) === null || h === void 0 + ? void 0 + : h.isMoving()) + ); + } + isZooming() { + var h; + return ( + this._zooming || + ((h = this.handlers) === null || h === void 0 + ? void 0 + : h.isZooming()) + ); + } + isRotating() { + var h; + return ( + this._rotating || + ((h = this.handlers) === null || h === void 0 + ? void 0 + : h.isRotating()) + ); + } + _createDelegatedListener(h, e, i) { + if (h === "mouseenter" || h === "mouseover") { + let l = !1; + return { + layers: e, + listener: i, + delegates: { + mousemove: (d) => { + const g = e.filter((C) => this.getLayer(C)), + w = + g.length !== 0 + ? this.queryRenderedFeatures(d.point, { + layers: g, + }) + : []; + w.length + ? l || + ((l = !0), + i.call( + this, + new Qi(h, this, d.originalEvent, { + features: w, + }) + )) + : (l = !1); + }, + mouseout: () => { + l = !1; + }, + }, + }; + } + if (h === "mouseleave" || h === "mouseout") { + let l = !1; + return { + layers: e, + listener: i, + delegates: { + mousemove: (g) => { + const w = e.filter((C) => this.getLayer(C)); + (w.length !== 0 + ? this.queryRenderedFeatures(g.point, { + layers: w, + }) + : [] + ).length + ? (l = !0) + : l && + ((l = !1), + i.call(this, new Qi(h, this, g.originalEvent))); + }, + mouseout: (g) => { + l && + ((l = !1), + i.call(this, new Qi(h, this, g.originalEvent))); + }, + }, + }; + } + { + const l = (u) => { + const d = e.filter((w) => this.getLayer(w)), + g = + d.length !== 0 + ? this.queryRenderedFeatures(u.point, { + layers: d, + }) + : []; + g.length && + ((u.features = g), + i.call(this, u), + delete u.features); + }; + return { layers: e, listener: i, delegates: { [h]: l } }; + } + } + _saveDelegatedListener(h, e) { + (this._delegatedListeners = this._delegatedListeners || {}), + (this._delegatedListeners[h] = + this._delegatedListeners[h] || []), + this._delegatedListeners[h].push(e); + } + _removeDelegatedListener(h, e, i) { + if ( + !this._delegatedListeners || + !this._delegatedListeners[h] + ) + return; + const l = this._delegatedListeners[h]; + for (let u = 0; u < l.length; u++) { + const d = l[u]; + if ( + d.listener === i && + d.layers.length === e.length && + d.layers.every((g) => e.includes(g)) + ) { + for (const g in d.delegates) + this.off(g, d.delegates[g]); + return void l.splice(u, 1); + } + } + } + on(h, e, i) { + if (i === void 0) return super.on(h, e); + const l = typeof e == "string" ? [e] : e, + u = this._createDelegatedListener(h, l, i); + this._saveDelegatedListener(h, u); + for (const d in u.delegates) this.on(d, u.delegates[d]); + return { + unsubscribe: () => { + this._removeDelegatedListener(h, l, i); + }, + }; + } + once(h, e, i) { + if (i === void 0) return super.once(h, e); + const l = typeof e == "string" ? [e] : e, + u = this._createDelegatedListener(h, l, i); + for (const d in u.delegates) { + const g = u.delegates[d]; + u.delegates[d] = (...w) => { + this._removeDelegatedListener(h, l, i), g(...w); + }; + } + this._saveDelegatedListener(h, u); + for (const d in u.delegates) this.once(d, u.delegates[d]); + return this; + } + off(h, e, i) { + return i === void 0 + ? super.off(h, e) + : (this._removeDelegatedListener( + h, + typeof e == "string" ? [e] : e, + i + ), + this); + } + queryRenderedFeatures(h, e) { + if (!this.style) return []; + let i; + const l = h instanceof s.P || Array.isArray(h), + u = l + ? h + : [ + [0, 0], + [this.transform.width, this.transform.height], + ]; + if ( + ((e = e || (l ? {} : h) || {}), + u instanceof s.P || typeof u[0] == "number") + ) + i = [s.P.convert(u)]; + else { + const d = s.P.convert(u[0]), + g = s.P.convert(u[1]); + i = [d, new s.P(g.x, d.y), g, new s.P(d.x, g.y), d]; + } + return this.style.queryRenderedFeatures( + i, + e, + this.transform + ); + } + querySourceFeatures(h, e) { + return this.style.querySourceFeatures(h, e); + } + setStyle(h, e) { + return (e = s.e( + {}, + { + localIdeographFontFamily: + this._localIdeographFontFamily, + validate: this._validateStyle, + }, + e + )).diff !== !1 && + e.localIdeographFontFamily === + this._localIdeographFontFamily && + this.style && + h + ? (this._diffStyle(h, e), this) + : ((this._localIdeographFontFamily = + e.localIdeographFontFamily), + this._updateStyle(h, e)); + } + setTransformRequest(h) { + return this._requestManager.setTransformRequest(h), this; + } + _getUIString(h) { + const e = this._locale[h]; + if (e == null) throw new Error(`Missing UI string '${h}'`); + return e; + } + _updateStyle(h, e) { + var i, l; + if (e.transformStyle && this.style && !this.style._loaded) + return void this.style.once("style.load", () => + this._updateStyle(h, e) + ); + const u = + this.style && e.transformStyle + ? this.style.serialize() + : void 0; + return ( + this.style && + (this.style.setEventedParent(null), + this.style._remove(!h)), + h + ? ((this.style = new zc(this, e || {})), + this.style.setEventedParent(this, { + style: this.style, + }), + typeof h == "string" + ? this.style.loadURL(h, e, u) + : this.style.loadJSON(h, e, u), + this) + : ((l = + (i = this.style) === null || i === void 0 + ? void 0 + : i.projection) === null || + l === void 0 || + l.destroy(), + delete this.style, + this) + ); + } + _lazyInitEmptyStyle() { + this.style || + ((this.style = new zc(this, {})), + this.style.setEventedParent(this, { style: this.style }), + this.style.loadEmpty()); + } + _diffStyle(h, e) { + if (typeof h == "string") { + const i = this._requestManager.transformRequest( + h, + "Style" + ); + s.j(i, new AbortController()) + .then((l) => { + this._updateDiff(l.data, e); + }) + .catch((l) => { + l && this.fire(new s.k(l)); + }); + } else typeof h == "object" && this._updateDiff(h, e); + } + _updateDiff(h, e) { + try { + this.style.setState(h, e) && this._update(!0); + } catch (i) { + s.w( + `Unable to perform style diff: ${ + i.message || i.error || i + }. Rebuilding the style from scratch.` + ), + this._updateStyle(h, e); + } + } + getStyle() { + if (this.style) return this.style.serialize(); + } + isStyleLoaded() { + return this.style + ? this.style.loaded() + : s.w("There is no style added to the map."); + } + addSource(h, e) { + return ( + this._lazyInitEmptyStyle(), + this.style.addSource(h, e), + this._update(!0) + ); + } + isSourceLoaded(h) { + const e = this.style && this.style.sourceCaches[h]; + if (e !== void 0) return e.loaded(); + this.fire( + new s.k(new Error(`There is no source with ID '${h}'`)) + ); + } + setTerrain(h) { + if ( + (this.style._checkLoaded(), + this._terrainDataCallback && + this.style.off("data", this._terrainDataCallback), + h) + ) { + const e = this.style.sourceCaches[h.source]; + if (!e) + throw new Error( + `cannot load terrain, because there exists no source with ID: ${h.source}` + ); + this.terrain === null && e.reload(); + for (const i in this.style._layers) { + const l = this.style._layers[i]; + l.type === "hillshade" && + l.source === h.source && + s.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." + ), + l.type === "color-relief" && + l.source === h.source && + s.w( + "You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality." + ); + } + (this.terrain = new Or(this.painter, e, h)), + (this.painter.renderToTexture = new Ul( + this.painter, + this.terrain + )), + this.transform.setMinElevationForCurrentTile( + this.terrain.getMinTileElevationForLngLatZoom( + this.transform.center, + this.transform.tileZoom + ) + ), + this.transform.setElevation( + this.terrain.getElevationForLngLatZoom( + this.transform.center, + this.transform.tileZoom + ) + ), + (this._terrainDataCallback = (i) => { + var l; + i.dataType === "style" + ? this.terrain.sourceCache.freeRtt() + : i.dataType === "source" && + i.tile && + (i.sourceId !== h.source || + this._elevationFreeze || + (this.transform.setMinElevationForCurrentTile( + this.terrain.getMinTileElevationForLngLatZoom( + this.transform.center, + this.transform.tileZoom + ) + ), + this._centerClampedToGround && + this.transform.setElevation( + this.terrain.getElevationForLngLatZoom( + this.transform.center, + this.transform.tileZoom + ) + )), + ((l = i.source) === null || l === void 0 + ? void 0 + : l.type) === "image" + ? this.terrain.sourceCache.freeRtt() + : this.terrain.sourceCache.freeRtt( + i.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.setMinElevationForCurrentTile(0), + this._centerClampedToGround && + this.transform.setElevation(0); + return this.fire(new s.l("terrain", { terrain: h })), this; + } + getTerrain() { + var h, e; + return (e = + (h = this.terrain) === null || h === void 0 + ? void 0 + : h.options) !== null && e !== void 0 + ? e + : null; + } + areTilesLoaded() { + const h = this.style && this.style.sourceCaches; + for (const e in h) { + const i = h[e]._tiles; + for (const l in i) { + const u = i[l]; + if (u.state !== "loaded" && u.state !== "errored") + return !1; + } + } + return !0; + } + removeSource(h) { + return this.style.removeSource(h), this._update(!0); + } + getSource(h) { + return this.style.getSource(h); + } + setSourceTileLodParams(h, e, i) { + if (i) { + const l = this.getSource(i); + if (!l) + throw new Error( + `There is no source with ID "${i}", cannot set LOD parameters` + ); + l.calculateTileZoom = ut(Math.max(1, h), Math.max(1, e)); + } else + for (const l in this.style.sourceCaches) + this.style.sourceCaches[ + l + ].getSource().calculateTileZoom = ut( + Math.max(1, h), + Math.max(1, e) + ); + return this._update(!0), this; + } + refreshTiles(h, e) { + const i = this.style.sourceCaches[h]; + if (!i) + throw new Error( + `There is no source cache with ID "${h}", cannot refresh tile` + ); + e === void 0 + ? i.reload(!0) + : i.refreshTiles(e.map((l) => new s.a4(l.z, l.x, l.y))); + } + addImage(h, e, i = {}) { + const { + pixelRatio: l = 1, + sdf: u = !1, + stretchX: d, + stretchY: g, + content: w, + textFitWidth: C, + textFitHeight: P, + } = i; + if ( + (this._lazyInitEmptyStyle(), + !(e instanceof HTMLImageElement || s.b(e))) + ) { + if (e.width === void 0 || e.height === void 0) + return this.fire( + new s.k( + 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: E, height: R, data: D } = e, + N = e; + return ( + this.style.addImage(h, { + data: new s.R( + { width: E, height: R }, + new Uint8Array(D) + ), + pixelRatio: l, + stretchX: d, + stretchY: g, + content: w, + textFitWidth: C, + textFitHeight: P, + sdf: u, + version: 0, + userImage: N, + }), + N.onAdd && N.onAdd(this, h), + this + ); + } + } + { + const { + width: E, + height: R, + data: D, + } = ne.getImageData(e); + this.style.addImage(h, { + data: new s.R({ width: E, height: R }, D), + pixelRatio: l, + stretchX: d, + stretchY: g, + content: w, + textFitWidth: C, + textFitHeight: P, + sdf: u, + version: 0, + }); + } + } + updateImage(h, e) { + const i = this.style.getImage(h); + if (!i) + return this.fire( + new s.k( + new Error( + "The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead." + ) + ) + ); + const l = + e instanceof HTMLImageElement || s.b(e) + ? ne.getImageData(e) + : e, + { width: u, height: d, data: g } = l; + if (u === void 0 || d === void 0) + return this.fire( + new s.k( + 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 (u !== i.data.width || d !== i.data.height) + return this.fire( + new s.k( + new Error( + "The width and height of the updated image must be that same as the previous version of the image" + ) + ) + ); + const w = !(e instanceof HTMLImageElement || s.b(e)); + return ( + i.data.replace(g, w), this.style.updateImage(h, i), this + ); + } + getImage(h) { + return this.style.getImage(h); + } + hasImage(h) { + return h + ? !!this.style.getImage(h) + : (this.fire( + new s.k(new Error("Missing required image id")) + ), + !1); + } + removeImage(h) { + this.style.removeImage(h); + } + loadImage(h) { + return Fe.getImage( + this._requestManager.transformRequest(h, "Image"), + new AbortController() + ); + } + listImages() { + return this.style.listImages(); + } + addLayer(h, e) { + return ( + this._lazyInitEmptyStyle(), + this.style.addLayer(h, e), + this._update(!0) + ); + } + moveLayer(h, e) { + return this.style.moveLayer(h, e), this._update(!0); + } + removeLayer(h) { + return this.style.removeLayer(h), this._update(!0); + } + getLayer(h) { + return this.style.getLayer(h); + } + getLayersOrder() { + return this.style.getLayersOrder(); + } + setLayerZoomRange(h, e, i) { + return ( + this.style.setLayerZoomRange(h, e, i), this._update(!0) + ); + } + setFilter(h, e, i = {}) { + return this.style.setFilter(h, e, i), this._update(!0); + } + getFilter(h) { + return this.style.getFilter(h); + } + setPaintProperty(h, e, i, l = {}) { + return ( + this.style.setPaintProperty(h, e, i, l), this._update(!0) + ); + } + getPaintProperty(h, e) { + return this.style.getPaintProperty(h, e); + } + setLayoutProperty(h, e, i, l = {}) { + return ( + this.style.setLayoutProperty(h, e, i, l), this._update(!0) + ); + } + getLayoutProperty(h, e) { + return this.style.getLayoutProperty(h, e); + } + setGlyphs(h, e = {}) { + return ( + this._lazyInitEmptyStyle(), + this.style.setGlyphs(h, e), + this._update(!0) + ); + } + getGlyphs() { + return this.style.getGlyphsUrl(); + } + addSprite(h, e, i = {}) { + return ( + this._lazyInitEmptyStyle(), + this.style.addSprite(h, e, i, (l) => { + l || this._update(!0); + }), + this + ); + } + removeSprite(h) { + return ( + this._lazyInitEmptyStyle(), + this.style.removeSprite(h), + this._update(!0) + ); + } + getSprite() { + return this.style.getSprite(); + } + setSprite(h, e = {}) { + return ( + this._lazyInitEmptyStyle(), + this.style.setSprite(h, e, (i) => { + i || this._update(!0); + }), + this + ); + } + setLight(h, e = {}) { + return ( + this._lazyInitEmptyStyle(), + this.style.setLight(h, e), + this._update(!0) + ); + } + getLight() { + return this.style.getLight(); + } + setSky(h, e = {}) { + return ( + this._lazyInitEmptyStyle(), + this.style.setSky(h, e), + this._update(!0) + ); + } + getSky() { + return this.style.getSky(); + } + setFeatureState(h, e) { + return this.style.setFeatureState(h, e), this._update(); + } + removeFeatureState(h, e) { + return this.style.removeFeatureState(h, e), this._update(); + } + getFeatureState(h) { + return this.style.getFeatureState(h); + } + getContainer() { + return this._container; + } + getCanvasContainer() { + return this._canvasContainer; + } + getCanvas() { + return this._canvas; + } + _containerDimensions() { + let h = 0, + e = 0; + return ( + this._container && + ((h = this._container.clientWidth || 400), + (e = this._container.clientHeight || 300)), + [h, e] + ); + } + _setupContainer() { + const h = this._container; + h.classList.add("maplibregl-map"); + const e = (this._canvasContainer = H.create( + "div", + "maplibregl-canvas-container", + h + )); + this._interactive && + e.classList.add("maplibregl-interactive"), + (this._canvas = H.create( + "canvas", + "maplibregl-canvas", + e + )), + this._canvas.addEventListener( + "webglcontextlost", + this._contextLost, + !1 + ), + this._canvas.addEventListener( + "webglcontextrestored", + this._contextRestored, + !1 + ), + this._canvas.setAttribute( + "tabindex", + this._interactive ? "0" : "-1" + ), + this._canvas.setAttribute( + "aria-label", + this._getUIString("Map.Title") + ), + this._canvas.setAttribute("role", "region"); + const i = this._containerDimensions(), + l = this._getClampedPixelRatio(i[0], i[1]); + this._resizeCanvas(i[0], i[1], l); + const u = (this._controlContainer = H.create( + "div", + "maplibregl-control-container", + h + )), + d = (this._controlPositions = {}); + [ + "top-left", + "top-right", + "bottom-left", + "bottom-right", + ].forEach((g) => { + d[g] = H.create("div", `maplibregl-ctrl-${g} `, u); + }), + this._container.addEventListener( + "scroll", + this._onMapScroll, + !1 + ); + } + _resizeCanvas(h, e, i) { + (this._canvas.width = Math.floor(i * h)), + (this._canvas.height = Math.floor(i * e)), + (this._canvas.style.width = `${h}px`), + (this._canvas.style.height = `${e}px`); + } + _setupPainter() { + const h = Object.assign( + Object.assign({}, this._canvasContextAttributes), + { + alpha: !0, + depth: !0, + stencil: !0, + premultipliedAlpha: !0, + } + ); + let e = null; + this._canvas.addEventListener( + "webglcontextcreationerror", + (l) => { + (e = { requestedAttributes: h }), + l && + ((e.statusMessage = l.statusMessage), + (e.type = l.type)); + }, + { once: !0 } + ); + let i = null; + if ( + ((i = this._canvasContextAttributes.contextType + ? this._canvas.getContext( + this._canvasContextAttributes.contextType, + h + ) + : this._canvas.getContext("webgl2", h) || + this._canvas.getContext("webgl", h)), + !i) + ) { + const l = "Failed to initialize WebGL"; + throw e + ? ((e.message = l), new Error(JSON.stringify(e))) + : new Error(l); + } + (this.painter = new sd(i, this.transform)), + fe.testSupport(i); + } + migrateProjection(h, e) { + super.migrateProjection(h, e), + (this.painter.transform = h), + this.fire( + new s.l("projectiontransition", { + newProjection: this.style.projection.name, + }) + ); + } + loaded() { + return ( + !this._styleDirty && + !this._sourcesDirty && + !!this.style && + this.style.loaded() + ); + } + _update(h) { + return this.style && this.style._loaded + ? ((this._styleDirty = this._styleDirty || h), + (this._sourcesDirty = !0), + this.triggerRepaint(), + this) + : this; + } + _requestRenderFrame(h) { + return this._update(), this._renderTaskQueue.add(h); + } + _cancelRenderFrame(h) { + this._renderTaskQueue.remove(h); + } + _render(h) { + var e, i, l, u, d; + const g = this._idleTriggered ? this._fadeDuration : 0, + w = + ((e = this.style.projection) === null || e === void 0 + ? void 0 + : e.transitionState) > 0; + if ( + (this.painter.context.setDirty(), + this.painter.setBaseState(), + this._renderTaskQueue.run(h), + this._removed) + ) + return; + let C = !1; + if (this.style && this._styleDirty) { + this._styleDirty = !1; + const R = this.transform.zoom, + D = ne.now(); + this.style.zoomHistory.update(R, D); + const N = new s.F(R, { + now: D, + fadeDuration: g, + zoomHistory: this.style.zoomHistory, + transition: this.style.getTransition(), + globalState: this.style.getGlobalState(), + }), + G = N.crossFadingFactor(); + (G === 1 && G === this._crossFadingFactor) || + ((C = !0), (this._crossFadingFactor = G)), + this.style.update(N); + } + const P = + ((i = this.style.projection) === null || i === void 0 + ? void 0 + : i.transitionState) > + 0 !== + w; + (l = this.style.projection) === null || + l === void 0 || + l.setErrorQueryLatitudeDegrees(this.transform.center.lat), + this.transform.setTransitionState( + (u = this.style.projection) === null || u === void 0 + ? void 0 + : u.transitionState, + (d = this.style.projection) === null || d === void 0 + ? void 0 + : d.latitudeErrorCorrectionRadians + ), + this.style && + (this._sourcesDirty || P) && + ((this._sourcesDirty = !1), + this.style._updateSources(this.transform)), + this.terrain + ? (this.terrain.sourceCache.update( + this.transform, + this.terrain + ), + this.transform.setMinElevationForCurrentTile( + this.terrain.getMinTileElevationForLngLatZoom( + this.transform.center, + this.transform.tileZoom + ) + ), + !this._elevationFreeze && + this._centerClampedToGround && + this.transform.setElevation( + this.terrain.getElevationForLngLatZoom( + this.transform.center, + this.transform.tileZoom + ) + )) + : (this.transform.setMinElevationForCurrentTile(0), + this._centerClampedToGround && + this.transform.setElevation(0)), + (this._placementDirty = + this.style && + this.style._updatePlacement( + this.transform, + this.showCollisionBoxes, + g, + this._crossSourceCollisions, + P + )), + this.painter.render(this.style, { + showTileBoundaries: this.showTileBoundaries, + showOverdrawInspector: this._showOverdrawInspector, + rotating: this.isRotating(), + zooming: this.isZooming(), + moving: this.isMoving(), + fadeDuration: g, + showPadding: this.showPadding, + }), + this.fire(new s.l("render")), + this.loaded() && + !this._loaded && + ((this._loaded = !0), + s.cw.mark(s.cx.load), + this.fire(new s.l("load"))), + this.style && + (this.style.hasTransitions() || C) && + (this._styleDirty = !0), + this.style && + !this._placementDirty && + this.style._releaseSymbolFadeTiles(); + const E = + this._sourcesDirty || + this._styleDirty || + this._placementDirty; + return ( + E || this._repaint + ? this.triggerRepaint() + : !this.isMoving() && + this.loaded() && + this.fire(new s.l("idle")), + !this._loaded || + this._fullyLoaded || + E || + ((this._fullyLoaded = !0), s.cw.mark(s.cx.fullLoad)), + this + ); + } + redraw() { + return ( + this.style && + (this._frameRequest && + (this._frameRequest.abort(), + (this._frameRequest = null)), + this._render(0)), + this + ); + } + remove() { + var h; + this._hash && this._hash.remove(); + for (const i of this._controls) i.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), + Fe.removeThrottleControl(this._imageQueueHandle), + (h = this._resizeObserver) === null || + h === void 0 || + h.disconnect(); + const e = + this.painter.context.gl.getExtension( + "WEBGL_lose_context" + ); + e != null && e.loseContext && e.loseContext(), + this._canvas.removeEventListener( + "webglcontextrestored", + this._contextRestored, + !1 + ), + this._canvas.removeEventListener( + "webglcontextlost", + this._contextLost, + !1 + ), + H.remove(this._canvasContainer), + H.remove(this._controlContainer), + this._container.removeEventListener( + "scroll", + this._onMapScroll, + !1 + ), + this._container.classList.remove("maplibregl-map"), + s.cw.clearMetrics(), + (this._removed = !0), + this.fire(new s.l("remove")); + } + triggerRepaint() { + this.style && + !this._frameRequest && + ((this._frameRequest = new AbortController()), + ne.frame( + this._frameRequest, + (h) => { + s.cw.frame(h), (this._frameRequest = null); + try { + this._render(h); + } catch (e) { + if ( + !s.cy(e) && + !(function (i) { + return i.message === Vs; + })(e) + ) + throw e; + } + }, + () => {} + )); + } + get showTileBoundaries() { + return !!this._showTileBoundaries; + } + set showTileBoundaries(h) { + this._showTileBoundaries !== h && + ((this._showTileBoundaries = h), this._update()); + } + get showPadding() { + return !!this._showPadding; + } + set showPadding(h) { + this._showPadding !== h && + ((this._showPadding = h), this._update()); + } + get showCollisionBoxes() { + return !!this._showCollisionBoxes; + } + set showCollisionBoxes(h) { + this._showCollisionBoxes !== h && + ((this._showCollisionBoxes = h), + h + ? this.style._generateCollisionBoxes() + : this._update()); + } + get showOverdrawInspector() { + return !!this._showOverdrawInspector; + } + set showOverdrawInspector(h) { + this._showOverdrawInspector !== h && + ((this._showOverdrawInspector = h), this._update()); + } + get repaint() { + return !!this._repaint; + } + set repaint(h) { + this._repaint !== h && + ((this._repaint = h), this.triggerRepaint()); + } + get vertices() { + return !!this._vertices; + } + set vertices(h) { + (this._vertices = h), this._update(); + } + get version() { + return Td; + } + getCameraTargetElevation() { + return this.transform.elevation; + } + getProjection() { + return this.style.getProjection(); + } + setProjection(h) { + return ( + this._lazyInitEmptyStyle(), + this.style.setProjection(h), + this._update(!0) + ); + } + }), + (T.MapMouseEvent = Qi), + (T.MapTouchEvent = is), + (T.MapWheelEvent = ru), + (T.Marker = ds), + (T.NavigationControl = class { + constructor(h) { + (this._updateZoomButtons = () => { + const e = this._map.getZoom(), + i = e === this._map.getMaxZoom(), + l = e === this._map.getMinZoom(); + (this._zoomInButton.disabled = i), + (this._zoomOutButton.disabled = l), + this._zoomInButton.setAttribute( + "aria-disabled", + i.toString() + ), + this._zoomOutButton.setAttribute( + "aria-disabled", + l.toString() + ); + }), + (this._rotateCompassArrow = () => { + this._compassIcon.style.transform = + this.options.visualizePitch && + this.options.visualizeRoll + ? `scale(${ + 1 / + Math.pow( + Math.cos(this._map.transform.pitchInRadians), + 0.5 + ) + }) rotateZ(${-this._map.transform + .roll}deg) rotateX(${ + this._map.transform.pitch + }deg) rotateZ(${-this._map.transform.bearing}deg)` + : this.options.visualizePitch + ? `scale(${ + 1 / + Math.pow( + Math.cos(this._map.transform.pitchInRadians), + 0.5 + ) + }) rotateX(${ + this._map.transform.pitch + }deg) rotateZ(${-this._map.transform.bearing}deg)` + : this.options.visualizeRoll + ? `rotate(${ + -this._map.transform.bearing - + this._map.transform.roll + }deg)` + : `rotate(${-this._map.transform.bearing}deg)`; + }), + (this._setButtonTitle = (e, i) => { + const l = this._map._getUIString( + `NavigationControl.${i}` + ); + (e.title = l), e.setAttribute("aria-label", l); + }), + (this.options = s.e({}, $p, h)), + (this._container = H.create( + "div", + "maplibregl-ctrl maplibregl-ctrl-group" + )), + this._container.addEventListener("contextmenu", (e) => + e.preventDefault() + ), + this.options.showZoom && + ((this._zoomInButton = this._createButton( + "maplibregl-ctrl-zoom-in", + (e) => this._map.zoomIn({}, { originalEvent: e }) + )), + H.create( + "span", + "maplibregl-ctrl-icon", + this._zoomInButton + ).setAttribute("aria-hidden", "true"), + (this._zoomOutButton = this._createButton( + "maplibregl-ctrl-zoom-out", + (e) => this._map.zoomOut({}, { originalEvent: e }) + )), + H.create( + "span", + "maplibregl-ctrl-icon", + this._zoomOutButton + ).setAttribute("aria-hidden", "true")), + this.options.showCompass && + ((this._compass = this._createButton( + "maplibregl-ctrl-compass", + (e) => { + this.options.visualizePitch + ? this._map.resetNorthPitch( + {}, + { originalEvent: e } + ) + : this._map.resetNorth({}, { originalEvent: e }); + } + )), + (this._compassIcon = H.create( + "span", + "maplibregl-ctrl-icon", + this._compass + )), + this._compassIcon.setAttribute("aria-hidden", "true")); + } + onAdd(h) { + return ( + (this._map = h), + 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.options.visualizeRoll && + this._map.on("roll", this._rotateCompassArrow), + this._map.on("rotate", this._rotateCompassArrow), + this._rotateCompassArrow(), + (this._handler = new Ks( + this._map, + this._compass, + this.options.visualizePitch + ))), + this._container + ); + } + onRemove() { + H.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.options.visualizeRoll && + this._map.off("roll", this._rotateCompassArrow), + this._map.off("rotate", this._rotateCompassArrow), + this._handler.off(), + delete this._handler), + delete this._map; + } + _createButton(h, e) { + const i = H.create("button", h, this._container); + return ( + (i.type = "button"), i.addEventListener("click", e), i + ); + } + }), + (T.Popup = class extends s.E { + constructor(h) { + super(), + (this._updateOpacity = () => { + this.options.locationOccludedOpacity !== void 0 && + (this._container.style.opacity = + this._map.transform.isLocationOccluded( + this.getLngLat() + ) + ? `${this.options.locationOccludedOpacity}` + : ""); + }), + (this.remove = () => ( + this._content && H.remove(this._content), + this._container && + (H.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 s.l("close"))), + this + )), + (this._onMouseUp = (e) => { + this._update(e.point); + }), + (this._onMouseMove = (e) => { + this._update(e.point); + }), + (this._onDrag = (e) => { + this._update(e.point); + }), + (this._update = (e) => { + if ( + !this._map || + (!this._lngLat && !this._trackPointer) || + !this._content + ) + return; + if (!this._container) { + if ( + ((this._container = H.create( + "div", + "maplibregl-popup", + this._map.getContainer() + )), + (this._tip = H.create( + "div", + "maplibregl-popup-tip", + this._container + )), + this._container.appendChild(this._content), + this.options.className) + ) + for (const g of this.options.className.split(" ")) + this._container.classList.add(g); + this._closeButton && + this._closeButton.setAttribute( + "aria-label", + this._map._getUIString("Popup.Close") + ), + 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 = ti( + this._lngLat, + this._flatPos, + this._map.transform, + this._trackPointer + )), + this._trackPointer && !e) + ) + return; + const i = + (this._flatPos = + this._pos = + this._trackPointer && e + ? e + : this._map.project(this._lngLat)); + this._map.terrain && + (this._flatPos = + this._trackPointer && e + ? e + : this._map.transform.locationToScreenPoint( + this._lngLat + )); + let l = this.options.anchor; + const u = Hl(this.options.offset); + if (!l) { + const g = this._container.offsetWidth, + w = this._container.offsetHeight; + let C; + (C = + i.y + u.bottom.y < w + ? ["top"] + : i.y > this._map.transform.height - w + ? ["bottom"] + : []), + i.x < g / 2 + ? C.push("left") + : i.x > this._map.transform.width - g / 2 && + C.push("right"), + (l = C.length === 0 ? "bottom" : C.join("-")); + } + let d = i.add(u[l]); + this.options.subpixelPositioning || (d = d.round()), + H.setTransform( + this._container, + `${$l[l]} translate(${d.x}px,${d.y}px)` + ), + hs(this._container, l, "popup"), + this._updateOpacity(); + }), + (this._onClose = () => { + this.remove(); + }), + (this.options = s.e(Object.create(pu), h)); + } + addTo(h) { + return ( + this._map && this.remove(), + (this._map = h), + 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 s.l("open")), + this + ); + } + isOpen() { + return !!this._map; + } + getLngLat() { + return this._lngLat; + } + setLngLat(h) { + return ( + (this._lngLat = s.S.convert(h)), + (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(h) { + return this.setDOMContent(document.createTextNode(h)); + } + setHTML(h) { + const e = document.createDocumentFragment(), + i = document.createElement("body"); + let l; + for (i.innerHTML = h; (l = i.firstChild), l; ) + e.appendChild(l); + return this.setDOMContent(e); + } + getMaxWidth() { + var h; + return (h = this._container) === null || h === void 0 + ? void 0 + : h.style.maxWidth; + } + setMaxWidth(h) { + return (this.options.maxWidth = h), this._update(), this; + } + setDOMContent(h) { + if (this._content) + for (; this._content.hasChildNodes(); ) + this._content.firstChild && + this._content.removeChild(this._content.firstChild); + else + this._content = H.create( + "div", + "maplibregl-popup-content", + this._container + ); + return ( + this._content.appendChild(h), + this._createCloseButton(), + this._update(), + this._focusFirstElement(), + this + ); + } + addClassName(h) { + return ( + this._container && this._container.classList.add(h), this + ); + } + removeClassName(h) { + return ( + this._container && this._container.classList.remove(h), + this + ); + } + setOffset(h) { + return (this.options.offset = h), this._update(), this; + } + toggleClassName(h) { + if (this._container) + return this._container.classList.toggle(h); + } + setSubpixelPositioning(h) { + this.options.subpixelPositioning = h; + } + _createCloseButton() { + this.options.closeButton && + ((this._closeButton = H.create( + "button", + "maplibregl-popup-close-button", + this._content + )), + (this._closeButton.type = "button"), + (this._closeButton.innerHTML = "×"), + this._closeButton.addEventListener( + "click", + this._onClose + )); + } + _focusFirstElement() { + if (!this.options.focusAfterOpen || !this._container) + return; + const h = this._container.querySelector(fu); + h && h.focus(); + } + }), + (T.RasterDEMTileSource = tr), + (T.RasterTileSource = $t), + (T.ScaleControl = class { + constructor(h) { + (this._onMove = () => { + Gl(this._map, this._container, this.options); + }), + (this.setUnit = (e) => { + (this.options.unit = e), + Gl(this._map, this._container, this.options); + }), + (this.options = Object.assign(Object.assign({}, Js), h)); + } + getDefaultPosition() { + return "bottom-left"; + } + onAdd(h) { + return ( + (this._map = h), + (this._container = H.create( + "div", + "maplibregl-ctrl maplibregl-ctrl-scale", + h.getContainer() + )), + this._map.on("move", this._onMove), + this._onMove(), + this._container + ); + } + onRemove() { + H.remove(this._container), + this._map.off("move", this._onMove), + (this._map = void 0); + } + }), + (T.ScrollZoomHandler = _d), + (T.Style = zc), + (T.TerrainControl = class { + constructor(h) { + (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 = h); + } + onAdd(h) { + return ( + (this._map = h), + (this._container = H.create( + "div", + "maplibregl-ctrl maplibregl-ctrl-group" + )), + (this._terrainButton = H.create( + "button", + "maplibregl-ctrl-terrain", + this._container + )), + H.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() { + H.remove(this._container), + this._map.off("terrain", this._updateTerrainIcon), + (this._map = void 0); + } + }), + (T.TwoFingersTouchPitchHandler = Nl), + (T.TwoFingersTouchRotateHandler = cs), + (T.TwoFingersTouchZoomHandler = Ol), + (T.TwoFingersTouchZoomRotateHandler = yd), + (T.VectorTileSource = Rt), + (T.VideoSource = Nt), + (T.addSourceType = (h, e) => + s._(void 0, void 0, void 0, function* () { + if (Vr(h)) + throw new Error( + `A source type called "${h}" already exists.` + ); + ((i, l) => { + cr[i] = l; + })(h, e); + })), + (T.clearPrewarmedResources = function () { + const h = it; + h && + (h.isPreloaded() && h.numActive() === 1 + ? (h.release(ze), (it = 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()" + )); + }), + (T.createTileMesh = Ms), + (T.getMaxParallelImageRequests = function () { + return s.a.MAX_PARALLEL_IMAGE_REQUESTS; + }), + (T.getRTLTextPluginStatus = function () { + return Ir().getRTLTextPluginStatus(); + }), + (T.getVersion = function () { + return mu; + }), + (T.getWorkerCount = function () { + return je.workerCount; + }), + (T.getWorkerUrl = function () { + return s.a.WORKER_URL; + }), + (T.importScriptInWorkers = function (h) { + return at().broadcast("IS", h); + }), + (T.prewarm = function () { + It().acquire(ze); + }), + (T.setMaxParallelImageRequests = function (h) { + s.a.MAX_PARALLEL_IMAGE_REQUESTS = h; + }), + (T.setRTLTextPlugin = function (h, e) { + return Ir().setRTLTextPlugin(h, e); + }), + (T.setWorkerCount = function (h) { + je.workerCount = h; + }), + (T.setWorkerUrl = function (h) { + s.a.WORKER_URL = h; + }); + }); + var z = p; + return z; + }); + })(Xd)), + Xd.exports + ); +} +var m4 = f4(); +const qd = Zm(m4); +class ev { + constructor(a) { + xr(this, "gm"); + xr(this, "markers", new Map()); + xr(this, "canvases", new Map()); + xr(this, "canvasSize"); + xr(this, "canvasOpacity", 0.8); + (this.input = a), (this.gm = new fl(this.input.tileSize)); + const p = n0(a.img); + this.canvasSize = Math.ceil(2e3 / p); + } + place([a, p]) { + const y = this.gm.latLonToPixelsFloor(a, p, this.input.zoom), + M = this.getMarkerId(y), + z = this.gm.latLonToPixelBoundsLatLon(a, p, this.input.zoom), + T = this.input.map; + if (this.input.markerFn && !this.markers.has(M)) { + const K = this.input.markerFn(); + K.setLngLat({ lat: z.min[0], lng: (z.max[1] + z.min[1]) / 2 }).addTo(T), + this.markers.set(M, K); + } + const { key: s, pos: B, innerPos: O } = this.getCanvasPos(y); + let X = this.canvases.get(s); + if (!X) { + const K = this.canvasSize, + ne = B.x * K, + H = B.y * K, + fe = ne + K - 1, + ge = H + K - 1, + Ie = this.gm.pixelsToLatLon(ne, ge + 1, this.input.zoom), + Ae = this.gm.pixelsToLatLon(fe + 1, H, this.input.zoom); + (X = new _4({ + id: `${this.input.id}-${s}`, + img: this.input.img, + canvasSize: this.canvasSize, + coordinates: Vm({ min: Ie, max: Ae }), + layerPaint: { + "raster-resampling": "nearest", + "raster-opacity": this.canvasOpacity, + }, + })), + X.addTo(this.input.map), + this.canvases.set(s, X); + } + X.place(O.x, O.y); + } + clear() { + const a = this.input.map; + for (const p of this.canvases.values()) p.removeFrom(a), p.removeDOM(); + this.canvases.clear(); + for (const p of this.markers.values()) p.remove(); + this.markers.clear(); + } + clearAndPlace(a) { + this.clear(), this.place(a); + } + remove([a, p]) { + let y = !1; + const M = this.gm.latLonToPixelsFloor(a, p, this.input.zoom), + { key: z, innerPos: T } = this.getCanvasPos(M), + s = this.canvases.get(z); + s && + ((y = s.remove(T.x, T.y)), + s.annotationsCount() === 0 && + (this.canvases.delete(z), s.removeFrom(this.input.map), s.removeDOM())); + const B = this.getMarkerId(M), + O = this.markers.get(B); + return O == null || O.remove(), this.markers.delete(B), y; + } + setCanvasOpacity(a) { + this.canvasOpacity = a; + for (const p of this.canvases.values()) p.setOpacity(a); + } + getMarkerId([a, p]) { + return `${this.input.id}:${a},${p}`; + } + getCanvasPos([a, p]) { + const y = { + x: Math.floor(a / this.canvasSize), + y: Math.floor(p / this.canvasSize), + }, + M = { x: a % this.canvasSize, y: p % this.canvasSize }, + z = `${y.x},${y.y}`; + return { pos: y, innerPos: M, key: z }; + } +} +class _4 { + constructor(a) { + xr(this, "annotations", new Set()); + xr(this, "canvas"); + xr(this, "imgSize"); + xr(this, "maps", new Set()); + (this.input = a), + (this.imgSize = n0(a.img)), + (this.canvas = document.createElement("canvas")), + (this.canvas.width = this.input.canvasSize * this.imgSize), + (this.canvas.height = this.input.canvasSize * this.imgSize); + } + place(a, p) { + const y = this.getPixelKey(a, p); + if (this.annotations.has(y)) return !1; + const M = this.canvas.getContext("2d"); + if (M) { + const z = a * this.imgSize, + T = p * this.imgSize; + M.drawImage(this.input.img, z, T); + } + return this.annotations.add(y), !0; + } + remove(a, p) { + const y = this.getPixelKey(a, p); + if (!this.annotations.has(y)) return !1; + const M = this.canvas.getContext("2d"); + if (M) { + const z = a * this.imgSize, + T = p * this.imgSize; + M.clearRect(z, T, this.imgSize, this.imgSize); + } + return this.annotations.delete(y), !0; + } + addTo(a) { + const p = this.input.id; + a.getSource(p) || + a.addSource(p, { + type: "canvas", + canvas: this.canvas, + coordinates: this.input.coordinates, + }), + a.getLayer(p) || + a.addLayer({ + id: p, + type: "raster", + source: p, + paint: this.input.layerPaint, + }), + this.maps.add(a); + } + removeFrom(a) { + const { id: p } = this.input; + a.getLayer(p) && a.removeLayer(p), + a.getSource(p) && a.removeSource(p), + this.maps.delete(a); + } + removeDOM() { + this.canvas.remove(); + } + annotationsCount() { + return this.annotations.size; + } + setOpacity(a) { + for (const p of this.maps.values()) + p.setPaintProperty(this.input.id, "raster-opacity", a); + } + getPixelKey(a, p) { + return `${a},${p}`; + } +} +function n0(m) { + return Math.max(m.naturalWidth, m.naturalHeight); +} +function g4() { + return ( + window.matchMedia("(display-mode: standalone)").matches || + ("standalone" in window.navigator && window.navigator.standalone === !0) + ); +} +function xc(m, a) { + return a.includes(m); +} +function v4(m) { + const a = { opaque: !0 }, + p = m.searchParams.get("lat"), + y = m.searchParams.get("lng"); + p && y && (a.pos = { lat: parseFloat(p), lng: parseFloat(y) }); + const M = m.searchParams.get("zoom"); + M && (a.zoom = parseFloat(M)); + const z = m.searchParams.get("season"); + z && (a.season = parseInt(z)); + const T = m.searchParams.get("opaque"); + return ( + T && (a.opaque = T !== "0"), + m.searchParams.get("select") && (a.select = !0), + (a.newUser = !!m.searchParams.get("new-user")), + (a.discordLinked = !!m.searchParams.get("discord-linked")), + (a.alliance = !!m.searchParams.get("alliance")), + a + ); +} +function y4(m, a) { + return ( + (m = new URL(m)), + a.pos !== void 0 && + (m.searchParams.set("lat", a.pos.lat.toString()), + m.searchParams.set("lng", a.pos.lng.toString())), + a.zoom !== void 0 && m.searchParams.set("zoom", a.zoom.toString()), + a.season !== void 0 && m.searchParams.set("season", a.season.toString()), + a.opaque !== void 0 && m.searchParams.set("opaque", a.opaque ? "1" : "0"), + a.newUser !== void 0 && + m.searchParams.set("new-user", a.newUser ? "1" : "0"), + a.alliance !== void 0 && + m.searchParams.set("alliance", a.alliance ? "1" : "0"), + a.select && m.searchParams.set("alliance", "1"), + m + ); +} +const Yd = bi({ shouldReload: !0 }); +var x4 = (m, a) => { + var p; + (p = a()) == null || p.close(); + }, + b4 = Te( + ' ' + ); +function w4(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15), + y = st(!1), + M = st(bi(a.description)), + z = st(void 0); + Fn(() => { + const De = (Ee) => { + var Fe; + Ee.key === "Escape" && ((Fe = p()) == null || Fe.close()); + }; + return ( + document.addEventListener("keydown", De), + () => document.removeEventListener("keydown", De) + ); + }); + var T = b4(), + s = A(T), + B = A(s), + O = A(B, !0); + k(B); + var X = j(B, 2), + K = A(X), + ne = A(K); + { + let De = ft(() => Hv()); + yx(ne, { + class: "h-24 rounded-lg", + get placeholder() { + return x(De); + }, + max: 512, + get value() { + return x(M); + }, + set value(Ee) { + se(M, Ee, !0); + }, + get validate() { + return x(z); + }, + set validate(Ee) { + se(z, Ee, !0); + }, + }); + } + k(K); + var H = j(K, 2), + fe = A(H); + fe.__click = [x4, p]; + var ge = A(fe, !0); + k(fe); + var Ie = j(fe, 2), + Ae = A(Ie, !0); + k(Ie), + k(H), + k(X), + k(s), + yn(2), + k(T), + Ko( + T, + (De) => p(De), + () => p() + ), + We( + (De, Ee, Fe) => { + de(O, De), + (fe.disabled = x(y)), + de(ge, Ee), + (Ie.disabled = x(y)), + de(Ae, Fe); + }, + [() => bx(), () => Ah(), () => FT()] + ), + di("submit", X, async () => { + var De, Ee, Fe; + try { + if (!((De = x(z)) != null && De())) return; + se(y, !0), + a.description !== x(M) && (await Qr.updateAllianceDescription(x(M))), + await ((Ee = a.onsuccess) == null ? void 0 : Ee.call(a, x(M))), + (Fe = p()) == null || Fe.close(); + } catch ($e) { + Fr.error($e.message); + } finally { + se(y, !1); + } + }), + $(m, T), + Dr(); +} +$n(["click"]); +var T4 = (m, a, p) => { + navigator.clipboard.writeText(x(a).toString()), + se(p, !0), + setTimeout(() => { + se(p, !1); + }, 1e3); + }, + C4 = Te( + '' + ), + S4 = Te( + ' ' + ); +function P4(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15), + y = st(""), + M = st(!1); + const z = ft(() => yi.url.origin + `/join?id=${x(y)}`); + Wr(() => { + p() && + Qr.getAllianceInvites() + .then((Je) => { + se(y, Je[0], !0); + }) + .catch((Je) => { + Fr.error(Je.message); + }); + }), + Fn(() => { + const Je = (qe) => { + qe.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", Je), + () => document.removeEventListener("keydown", Je) + ); + }); + var T = S4(), + s = A(T), + B = j(A(s), 2), + O = A(B, !0); + k(B); + var X = j(B, 2), + K = A(X, !0); + k(X); + var ne = j(X, 2), + H = A(ne); + let fe; + var ge = A(H); + Ka(ge); + var Ie = j(ge, 2), + Ae = A(Ie); + let De; + Ae.__click = [T4, z, M]; + var Ee = A(Ae, !0); + k(Ae), k(Ie), k(H); + var Fe = j(H, 2); + { + var $e = (Je) => { + var qe = C4(); + $(Je, qe); + }; + Oe(Fe, (Je) => { + x(y) || Je($e); + }); + } + k(ne), + k(s), + yn(2), + k(T), + Ni(T, () => (Je) => { + Wr(() => { + p() ? Je.show() : Je.close(); + }); + }), + We( + (Je, qe, Ze, Qe, Le, et) => { + de(O, Je), + de(K, qe), + (fe = zr( + H, + 1, + "border-base-content/20 rounded-field relative flex w-full items-center gap-1 border-2 py-1.5 pl-4 pr-2.5", + null, + fe, + Ze + )), + Av(ge, Qe), + (De = zr(Ae, 1, "btn btn-primary", null, De, Le)), + de(Ee, et); + }, + [ + () => O3(), + () => V3(), + () => ({ invisible: !x(y) }), + () => x(z).toString(), + () => ({ "btn-success": x(M) }), + () => (x(M) ? Fm() : Wf()), + ] + ), + di("close", T, () => p(!1)), + $(m, T), + Dr(); +} +$n(["click"]); +var I4 = Pr( + '' +); +function Qf(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = I4(); + ar(y, () => ({ + viewBox: "0 0 256 199", + width: "256", + height: "199", + xmlns: "http://www.w3.org/2000/svg", + preserveAspectRatio: "xMidYMid", + ...p, + })), + $(m, y); +} +var M4 = Te('(Verified)'), + k4 = Te(''), + A4 = async (m, a) => { + await navigator.clipboard.writeText(a.username), Fr.info(UC()); + }, + E4 = Te(""), + z4 = Te( + '
                ' + ); +function Eh(m, a) { + Lr(a, !0); + const p = !!a.id; + var y = z4(), + M = A(y), + z = A(M), + T = A(z); + k(z); + var s = j(z, 2); + { + var B = (ne) => { + var H = M4(); + $(ne, H); + }; + Oe(s, (ne) => { + p && ne(B); + }); + } + k(M); + var O = j(M, 2); + { + var X = (ne) => { + var H = k4(), + fe = A(H); + Qf(fe, { class: "size-4 opacity-70" }), + k(H), + We( + (ge) => Tr(H, "href", ge), + [() => `https://discord.com/users/${encodeURIComponent(a.id)}`] + ), + $(ne, H); + }, + K = (ne) => { + var H = E4(); + H.__click = [A4, a]; + var fe = A(H); + Qf(fe, { class: "size-4 opacity-70" }), k(H), $(ne, H); + }; + Oe(O, (ne) => { + p ? ne(X) : ne(K, !1); + }); + } + k(y), We(() => de(T, `Discord: ${a.username ?? ""}`)), $(m, y), Dr(); +} +$n(["click"]); +var L4 = Te(''), + D4 = Te('
                '); +function Um(m, a) { + Lr(a, !0); + const p = []; + let y = zt(a, "value", 15, "today"), + M = [ + { value: "today", label: vp() }, + { value: "week", label: tT() }, + { value: "month", label: iT() }, + { value: "all-time", label: sT() }, + ]; + var z = D4(); + hi( + z, + 21, + () => M, + (T) => T.value, + (T, s) => { + var B = L4(); + Ka(B); + var O; + We(() => { + Tr(B, "aria-label", x(s).label), + O !== (O = x(s).value) && (B.value = (B.__value = x(s).value) ?? ""); + }), + Lm(p, [], B, () => (x(s).value, y()), y), + $(T, B); + } + ), + k(z), + $(m, z), + Dr(); +} +const R4 = typeof window < "u" ? window : void 0; +function B4(m) { + let a = m.activeElement; + for (; a != null && a.shadowRoot; ) { + const p = a.shadowRoot.activeElement; + if (p === a) break; + a = p; + } + return a; +} +var bc, Xu, Pv; +let F4 = + ((Pv = class { + constructor(a = {}) { + Ar(this, bc); + Ar(this, Xu); + const { window: p = R4, document: y = p == null ? void 0 : p.document } = + a; + p !== void 0 && + (na(this, bc, y), + na( + this, + Xu, + Ev((M) => { + const z = Nu(p, "focusin", M), + T = Nu(p, "focusout", M); + return () => { + z(), T(); + }; + }) + )); + } + get current() { + var a; + return ( + (a = ot(this, Xu)) == null || a.call(this), + ot(this, bc) ? B4(ot(this, bc)) : null + ); + } + }), + (bc = new WeakMap()), + (Xu = new WeakMap()), + Pv); +new F4(); +function O4(m, a) { + switch (m) { + case "post": + Wr(a); + break; + case "pre": + Mm(a); + break; + } +} +function i0(m, a, p, y = {}) { + const { lazy: M = !1 } = y; + let z = !M, + T = Array.isArray(m) ? [] : void 0; + O4(a, () => { + const s = Array.isArray(m) ? m.map((O) => O()) : m(); + if (!z) { + (z = !0), (T = s); + return; + } + const B = ul(() => p(s, T)); + return (T = s), B; + }); +} +function dl(m, a, p) { + i0(m, "post", a, p); +} +function N4(m, a, p) { + i0(m, "pre", a, p); +} +dl.pre = N4; +var j4 = Te( + '' + ), + V4 = Te( + '
                ' + ), + q4 = Te(' '), + Z4 = (m, a, p) => { + a.onlastpixelclick({ + lat: x(p).lastLatitude ?? 0, + lng: x(p).lastLongitude ?? 0, + }); + }, + U4 = Te(""), + $4 = Te( + '
                ' + ), + G4 = Te( + '
                ' + ), + H4 = Te('
                '); +function W4(m, a) { + Lr(a, !0); + let p = zt(a, "reload", 15), + y = st(!0), + M = st([]), + z = st(0), + T = st("today"), + s = {}; + p(B); + function B() { + const ge = x(T); + Qr.allianceLeaderboard(ge) + .then((Ie) => { + se(M, Ie), (s = { [ge]: Ie }), se(y, !1); + }) + .catch((Ie) => { + Fr.error(Ie.message); + }); + } + dl( + () => [x(T)], + () => { + const ge = x(T), + Ie = s[ge]; + if (Ie) { + se(M, Ie), se(y, !1); + return; + } + se(y, !0), + Qr.allianceLeaderboard(ge) + .then((Ae) => { + se(M, Ae), (s[ge] = Ae), se(y, !1); + }) + .catch((Ae) => { + Fr.error(Ae.message); + }); + } + ); + var O = H4(), + X = A(O); + Um(X, { + get value() { + return x(T); + }, + set value(ge) { + se(T, ge, !0); + }, + }); + var K = j(X, 2), + ne = A(K); + { + var H = (ge) => { + var Ie = j4(); + $(ge, Ie); + }, + fe = (ge) => { + var Ie = er(), + Ae = Ct(Ie); + { + var De = (Fe) => { + var $e = V4(), + Je = A($e), + qe = j(Je); + { + var Ze = (Le) => { + var et = wi(); + We((nt) => de(et, nt), [() => vp().toLowerCase()]), + $(Le, et); + }, + Qe = (Le) => { + var et = er(), + nt = Ct(et); + { + var Ue = (vt) => { + var ee = wi(); + We((re) => de(ee, re), [() => Nm()]), $(vt, ee); + }, + ke = (vt) => { + var ee = er(), + re = Ct(ee); + { + var he = (oe) => { + var ze = wi(); + We((je) => de(ze, je), [() => jm()]), $(oe, ze); + }; + Oe( + re, + (oe) => { + x(T) === "month" && oe(he); + }, + !0 + ); + } + $(vt, ee); + }; + Oe( + nt, + (vt) => { + x(T) === "week" ? vt(Ue) : vt(ke, !1); + }, + !0 + ); + } + $(Le, et); + }; + Oe(qe, (Le) => { + x(T) === "today" ? Le(Ze) : Le(Qe, !1); + }); + } + k($e), + We((Le) => de(Je, `${Le ?? ""} `), [() => Om()]), + $(Fe, $e); + }, + Ee = (Fe) => { + var $e = G4(), + Je = A($e), + qe = A(Je), + Ze = j(A(qe)), + Qe = A(Ze, !0); + k(Ze); + var Le = j(Ze), + et = A(Le, !0); + k(Le), k(qe), k(Je); + var nt = j(Je); + hi( + nt, + 31, + () => x(M), + (Ue) => Ue.userId, + (Ue, ke, vt) => { + const ee = ft(() => { + var $t; + return ( + (($t = Mt.data) == null ? void 0 : $t.id) === x(ke).userId + ); + }); + var re = $4(); + let he; + var oe = A(re), + ze = A(oe, !0); + k(oe); + var je = j(oe), + pt = A(je), + it = A(pt); + co(it, { + class: "size-10 border", + get userId() { + return x(ke).userId; + }, + get pictureUrl() { + return x(ke).picture; + }, + }); + var ct = j(it, 2), + It = A(ct), + Dt = j(It), + at = A(Dt); + k(Dt), k(ct); + var dt = j(ct, 2); + { + var yt = ($t) => { + const tr = ft(() => So(x(ke).equippedFlag)); + var Qt = q4(), + Ot = A(Qt, !0); + k(Qt), + We(() => { + Tr(Qt, "data-tip", x(tr).name), de(Ot, x(tr).flag); + }), + $($t, Qt); + }; + Oe(dt, ($t) => { + x(ke).equippedFlag && $t(yt); + }); + } + var xt = j(dt, 2); + { + var St = ($t) => { + Eh($t, { + get username() { + return x(ke).discord; + }, + get id() { + return x(ke).discordId; + }, + }); + }; + Oe(xt, ($t) => { + x(ke).discord && $t(St); + }); + } + k(pt), k(je); + var wt = j(je), + _t = A(wt), + Lt = j(_t); + { + var Rt = ($t) => { + var tr = U4(); + let Qt; + tr.__click = [Z4, a, ke]; + var Ot = A(tr); + Em(Ot, { class: "size-4" }), + k(tr), + We( + (Nt, or) => { + (Qt = zr( + tr, + 1, + "btn btn-sm btn-ghost absolute -right-2 top-1/2 !-translate-y-1/2 sm:right-4", + null, + Qt, + Nt + )), + Tr(tr, "data-tip", or); + }, + [() => ({ tooltip: x(z) > 640 }), () => Mx()] + ), + $($t, tr); + }; + Oe(Lt, ($t) => { + x(ke).lastLatitude && x(ke).lastLongitude && $t(Rt); + }); + } + k(wt), + k(re), + We( + ($t, tr, Qt) => { + var Ot; + (he = zr(re, 1, "", null, he, $t)), + de(ze, x(vt) + 1), + zr(ct, 1, `font-semibold ${tr ?? ""} flex gap-1`), + de( + It, + `${ + (x(ee) + ? ((Ot = Mt.data) == null ? void 0 : Ot.name) ?? + x(ke).name + : x(ke).name) ?? "" + } ` + ), + de(at, `#${x(ke).userId ?? ""}`), + de(_t, `${Qt ?? ""} `); + }, + [ + () => ({ "bg-base-200": x(ee) }), + () => Oi(x(ke).userId), + () => x(ke).pixelsPainted.toLocaleString("en-US"), + ] + ), + ll( + re, + () => cl, + () => ({ duration: 200 }) + ), + $(Ue, re); + } + ), + k(nt), + k($e), + We( + (Ue, ke) => { + de(Qe, Ue), de(et, ke); + }, + [() => Dm(), () => zm()] + ), + $(Fe, $e); + }; + Oe( + Ae, + (Fe) => { + x(M).length === 0 ? Fe(De) : Fe(Ee, !1); + }, + !0 + ); + } + $(ge, Ie); + }; + Oe(ne, (ge) => { + x(y) ? ge(H) : ge(fe, !1); + }); + } + k(K), k(O), mp("innerWidth", (ge) => se(z, ge, !0)), $(m, O), Dr(); +} +$n(["click"]); +var X4 = Pr( + '' +); +function $m(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = X4(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var Y4 = (m, a) => a.onclickback(), + K4 = Te('
                ADMIN
                '), + J4 = async (m, a) => { + try { + (x(a).loading = !0), + await Qr.giveAllianceAdmin(x(a).id), + (x(a).role = "admin"); + } catch { + Fr.error(fS()); + } finally { + x(a).loading = !1; + } + }, + Q4 = async (m, a, p) => { + try { + (x(a).loading = !0), + await Qr.banAllianceUser(x(a).id), + (p.data = p.data.filter((y) => y.id !== x(a).id)); + } catch { + Fr.error(jT()); + } finally { + x(a).loading = !1; + } + }, + eM = Te( + '
              • ', + 1 + ), + tM = Te( + '
              • ' + ), + rM = Te( + '
                ' + ), + nM = Te( + '
                ' + ), + iM = (m, a, p) => { + Qr.unbanAllianceUser(x(a).id) + .then(() => { + p.data = p.data.filter((y) => y.id !== x(a).id); + }) + .catch((y) => Fr.error(y.message)) + .finally(() => { + x(a).loading = !1; + }); + }, + aM = Te( + '
                ' + ), + oM = Te('
                '), + sM = Te( + '
                ' + ), + lM = Te( + '

                ' + ); +function cM(m, a) { + Lr(a, !0); + let p = bi({ data: [], page: 0, hasNextPage: !0, loading: !1 }), + y = bi({ data: [], page: 0, hasNextPage: !0, loading: !1 }); + var M = lM(), + z = A(M), + T = A(z); + T.__click = [Y4, a]; + var s = A(T); + Dx(s, { class: "size-5" }), k(T); + var B = j(T, 2), + O = A(B, !0); + k(B), k(z); + var X = j(z, 2), + K = A(X); + Ka(K); + var ne = j(K, 2), + H = A(ne), + fe = A(H); + hi( + fe, + 21, + () => p.data, + (Qe) => Qe.id, + (Qe, Le, et) => { + const nt = ft(() => { + var yt; + return ((yt = Mt.data) == null ? void 0 : yt.id) === x(Le).id; + }); + var Ue = rM(), + ke = A(Ue), + vt = A(ke), + ee = A(vt); + co(ee, { + class: "size-10 border", + get userId() { + return x(Le).id; + }, + get pictureUrl() { + return x(Le).picture; + }, + }); + var re = j(ee, 2), + he = A(re); + k(re); + var oe = j(re, 2); + { + var ze = (yt) => { + var xt = K4(); + $(yt, xt); + }; + Oe(oe, (yt) => { + x(Le).role === "admin" && yt(ze); + }); + } + k(vt), k(ke); + var je = j(ke), + pt = A(je), + it = A(pt), + ct = A(it); + $m(ct, { class: "size-4" }), k(it); + var It = j(it, 2), + Dt = A(It); + { + var at = (yt) => { + var xt = eM(), + St = Ct(xt), + wt = A(St); + wt.__click = [J4, Le]; + var _t = A(wt, !0); + k(wt), k(St); + var Lt = j(St, 2), + Rt = A(Lt); + Rt.__click = [Q4, Le, p]; + var $t = A(Rt, !0); + k(Rt), + k(Lt), + We( + (tr, Qt) => { + (wt.disabled = x(Le).loading), + de(_t, tr), + (Rt.disabled = x(Le).loading), + de($t, Qt); + }, + [() => TT(), () => Wv()] + ), + $(yt, xt); + }, + dt = (yt) => { + var xt = tM(), + St = A(xt); + St.disabled = !0; + var wt = A(St, !0); + k(St), k(xt), We((_t) => de(wt, _t), [() => MT()]), $(yt, xt); + }; + Oe(Dt, (yt) => { + x(Le).role === "member" ? yt(at) : yt(dt, !1); + }); + } + k(It), + k(pt), + k(je), + k(Ue), + We( + (yt) => { + var xt; + zr(re, 1, `font-semibold ${yt ?? ""}`), + de( + he, + `${ + (x(nt) + ? ((xt = Mt.data) == null ? void 0 : xt.name) ?? x(Le).name + : x(Le).name) ?? "" + } #${x(Le).id ?? ""}` + ); + }, + [() => Oi(x(Le).id)] + ), + $(Qe, Ue); + } + ), + k(fe), + k(H); + var ge = j(H, 2); + { + var Ie = (Qe) => { + var Le = er(), + et = Ct(Le); + ju( + et, + () => p.page, + (nt) => { + var Ue = nM(); + Ni(Ue, () => (ke) => { + const vt = new IntersectionObserver((ee) => { + ee[0].isIntersecting && + !p.loading && + ((p.loading = !0), + Qr.getAllianceMembers(p.page) + .then((re) => { + (p.data = [...p.data, ...re.data]), + (p.hasNextPage = re.hasNext), + p.page++; + }) + .catch((re) => { + Fr.error(re.message); + }) + .finally(() => { + p.loading = !1; + })); + }); + return ( + vt.observe(ke), + () => { + vt.disconnect(); + } + ); + }), + $(nt, Ue); + } + ), + $(Qe, Le); + }; + Oe(ge, (Qe) => { + p.hasNextPage && Qe(Ie); + }); + } + k(ne); + var Ae = j(ne, 2), + De = j(Ae, 2), + Ee = A(De), + Fe = A(Ee); + hi( + Fe, + 21, + () => y.data, + (Qe) => Qe.id, + (Qe, Le, et) => { + var nt = aM(), + Ue = A(nt), + ke = A(Ue), + vt = A(ke); + co(vt, { + class: "size-10 border", + get userId() { + return x(Le).id; + }, + get pictureUrl() { + return x(Le).picture; + }, + }); + var ee = j(vt, 2), + re = A(ee); + k(ee), k(ke), k(Ue); + var he = j(Ue), + oe = A(he); + oe.__click = [iM, Le, y]; + var ze = A(oe, !0); + k(oe), + k(he), + k(nt), + We( + (je, pt) => { + zr(ee, 1, `font-semibold ${je ?? ""}`), + de(re, `${x(Le).name ?? ""} #${x(Le).id ?? ""}`), + (oe.disabled = x(Le).loading), + de(ze, pt); + }, + [() => Oi(x(Le).id), () => ET()] + ), + $(Qe, nt); + } + ), + k(Fe), + k(Ee); + var $e = j(Ee, 2); + { + var Je = (Qe) => { + var Le = oM(), + et = A(Le, !0); + k(Le), We((nt) => de(et, nt), [() => DT()]), $(Qe, Le); + }; + Oe($e, (Qe) => { + !y.hasNextPage && y.data.length === 0 && Qe(Je); + }); + } + var qe = j($e, 2); + { + var Ze = (Qe) => { + var Le = er(), + et = Ct(Le); + ju( + et, + () => y.page, + (nt) => { + var Ue = sM(); + Ni(Ue, () => (ke) => { + const vt = new IntersectionObserver((ee) => { + ee[0].isIntersecting && + !y.loading && + ((y.loading = !0), + Qr.getAllianceBannedMembers(y.page) + .then((re) => { + (y.data = [...y.data, ...re.data]), + (y.hasNextPage = re.hasNext), + y.page++; + }) + .catch((re) => { + Fr.error(re.message); + }) + .finally(() => { + y.loading = !1; + })); + }); + return ( + vt.observe(ke), + () => { + vt.disconnect(); + } + ); + }), + $(nt, Ue); + } + ), + $(Qe, Le); + }; + Oe(qe, (Qe) => { + y.hasNextPage && Qe(Ze); + }); + } + k(De), + k(X), + k(M), + We( + (Qe, Le, et) => { + de(O, Qe), Tr(K, "aria-label", Le), Tr(Ae, "aria-label", et); + }, + [() => Dv(), () => ZT(), () => Xv()] + ), + $(m, M), + Dr(); +} +$n(["click"]); +var uM = Te(' '), + hM = Te(''), + dM = Te('

                '), + pM = Te( + '
                ' + ); +function em(m, a) { + Lr(a, !0); + let p = zt(a, "value", 15), + y = zt(a, "validate", 15), + M = st(""); + const z = ft(() => { + var Ae; + return ((Ae = p()) == null ? void 0 : Ae.length) ?? 0; + }); + y(T); + function T() { + return a.min !== void 0 && x(z) < a.min + ? (se(M, x(z) === 0 ? "Required" : `Min. characters: ${a.min}`, !0), !1) + : a.max !== void 0 && x(z) > a.max + ? (se(M, `Max. characters: ${a.max}`), !1) + : !0; + } + Wr(() => { + var Ae; + a.max !== void 0 && + x(z) > a.max && + p((Ae = p()) == null ? void 0 : Ae.substring(0, a.max)); + }); + var s = pM(), + B = A(s); + let O; + var X = A(B); + { + var K = (Ae) => { + var De = uM(), + Ee = A(De, !0); + k(De), We(() => de(Ee, a.label)), $(Ae, De); + }; + Oe(X, (Ae) => { + a.label && Ae(K); + }); + } + var ne = j(X, 2); + Ka(ne); + var H = j(ne, 2); + { + var fe = (Ae) => { + var De = hM(), + Ee = A(De, !0); + k(De), We(() => de(Ee, a.max - x(z))), $(Ae, De); + }; + Oe(H, (Ae) => { + a.max !== void 0 && Ae(fe); + }); + } + k(B); + var ge = j(B, 2); + { + var Ie = (Ae) => { + var De = dM(), + Ee = A(De, !0); + k(De), We(() => de(Ee, x(M))), $(Ae, De); + }; + Oe(ge, (Ae) => { + x(M) && Ae(Ie); + }); + } + k(s), + We( + (Ae) => { + (O = zr(B, 1, "input w-full", null, O, Ae)), + Tr(ne, "placeholder", a.placeholder), + Tr(ne, "maxlength", a.max); + }, + [() => ({ "input-error": !!x(M) })] + ), + dp(ne, p), + $(m, s), + Dr(); +} +var fM = (m, a) => { + var p; + (p = a()) == null || p.close(); + }, + mM = Te( + ' ' + ); +function _M(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15), + y = st(!1), + M = st(""), + z = st(void 0); + Fn(() => { + const De = (Ee) => { + var Fe; + Ee.key === "Escape" && ((Fe = p()) == null || Fe.close()); + }; + return ( + document.addEventListener("keydown", De), + () => document.removeEventListener("keydown", De) + ); + }); + var T = mM(), + s = A(T), + B = A(s), + O = A(B, !0); + k(B); + var X = j(B, 2), + K = A(X), + ne = A(K); + { + let De = ft(() => Kf()), + Ee = ft(() => gT()); + em(ne, { + get label() { + return x(De); + }, + get placeholder() { + return x(Ee); + }, + min: 1, + max: 16, + get value() { + return x(M); + }, + set value(Fe) { + se(M, Fe, !0); + }, + get validate() { + return x(z); + }, + set validate(Fe) { + se(z, Fe, !0); + }, + }); + } + k(K); + var H = j(K, 2), + fe = A(H); + fe.__click = [fM, p]; + var ge = A(fe, !0); + k(fe); + var Ie = j(fe, 2), + Ae = A(Ie, !0); + k(Ie), + k(H), + k(X), + k(s), + yn(2), + k(T), + Ko( + T, + (De) => p(De), + () => p() + ), + We( + (De, Ee, Fe) => { + de(O, De), + (fe.disabled = x(y)), + de(ge, Ee), + (Ie.disabled = x(y)), + de(Ae, Fe); + }, + [() => fT(), () => Ah(), () => xT()] + ), + di("submit", X, async () => { + var De, Ee; + try { + if (!((De = x(z)) != null && De())) return; + se(y, !0); + const { id: Fe } = await Qr.createAlliance(x(M)); + await a.onsuccess(Fe), (Ee = p()) == null || Ee.close(); + } catch (Fe) { + Fr.error(Fe.message); + } finally { + se(y, !1); + } + }), + $(m, T), + Dr(); +} +$n(["click"]); +var gM = Pr( + '' +); +function zh(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = gM(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var vM = Pr( + '' + ), + yM = Pr( + '' + ); +function tm(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy", "filled"]); + var y = er(), + M = Ct(y); + { + var z = (s) => { + var B = vM(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }, + T = (s) => { + var B = yM(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }; + Oe(M, (s) => { + a.filled ? s(z) : s(T, !1); + }); + } + $(m, y); +} +var xM = Pr( + '' +); +function bM(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = xM(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var wM = Pr( + '' +); +function TM(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = wM(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var CM = Pr( + '' +); +function SM(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = CM(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var PM = Pr( + '' +); +function yp(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = PM(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +function IM(m, a = "_blank") { + return m.replaceAll( + /https?:\/\/[^\s]+/g, + (p) => `${p}` + ); +} +var MM = Te( + '
                ' + ), + kM = async (m, a, p, y) => { + try { + se(a, !0), await Qr.leaveAlliance(), se(p, !0), await y(); + } catch (M) { + Fr.error(M.message); + } finally { + se(a, !1); + } + }, + AM = (m, a) => { + se(a, !0); + }, + EM = Te('
                '), + zM = (m, a) => { + var p; + (p = x(a)) == null || p.show(); + }, + LM = Te( + '' + ), + DM = Te( + '' + ), + RM = Te(' '), + BM = (m, a) => se(a, !0), + FM = Te(''), + OM = (m, a, p) => { + var y; + (y = x(a)) != null && y.hq + ? p.onhqclick({ lat: x(a).hq.latitude, lng: x(a).hq.longitude }) + : p.onhqchange(); + }, + NM = Te(' '), + jM = Te(' '), + VM = Te(''), + qM = Te( + '
                ' + ), + ZM = Te( + '

                ', + 1 + ), + UM = (m, a) => { + var p; + (p = x(a)) == null || p.show(); + }, + $M = Te( + '
                ', + 1 + ), + GM = Te('
                '); +function HM(m, a) { + Lr(a, !0); + let p = st(void 0), + y = st(!0), + M = st(void 0), + z = st(!1), + T = st(void 0), + s = st(!1), + B = st(!1), + O = st(() => {}); + dl( + () => a.open, + () => { + a.open && Yd.shouldReload && X(); + } + ), + Fn(() => { + const ge = setInterval(() => { + Yd.shouldReload = !0; + }, 1e4); + return () => { + clearTimeout(ge); + }; + }); + async function X() { + try { + se(p, await Qr.getAlliance(), !0), + x(p) && x(O)(), + se(y, !1), + (Yd.shouldReload = !1); + } catch (ge) { + Fr.error(ge.message); + } + } + var K = GM(), + ne = A(K); + { + var H = (ge) => { + var Ie = MM(); + $(ge, Ie); + }, + fe = (ge) => { + var Ie = er(), + Ae = Ct(Ie); + { + var De = (Fe) => { + cM(Fe, { onclickback: () => se(B, !1) }); + }, + Ee = (Fe) => { + var $e = er(), + Je = Ct($e); + { + var qe = (Qe) => { + var Le = ZM(), + et = Ct(Le), + nt = A(et), + Ue = A(nt, !0); + k(nt); + var ke = j(nt, 2), + vt = A(ke), + ee = A(vt), + re = A(ee); + $m(re, { class: "size-4" }), k(ee); + var he = j(ee, 2), + oe = A(he), + ze = A(oe); + ze.__click = [kM, z, y, X]; + var je = A(ze, !0); + k(ze), k(oe), k(he), k(vt); + var pt = j(vt, 2); + { + var it = (ue) => { + var V = EM(), + U = A(V); + U.__click = [AM, s]; + var Y = A(U); + SM(Y, { class: "size-4" }), + k(U), + k(V), + We((ie) => Tr(V, "data-tip", ie), [() => W3()]), + $(ue, V); + }; + Oe(pt, (ue) => { + x(p).role == "admin" && ue(it); + }); + } + k(ke), k(et); + var ct = j(et, 2); + { + var It = (ue) => { + var V = DM(), + U = A(V); + Am(U, () => IM(x(p).description || Hv())); + var Y = j(U, 2); + { + var ie = (pe) => { + var Se = LM(); + Se.__click = [zM, T]; + var Me = A(Se); + tm(Me, { class: "size-4" }), k(Se), $(pe, Se); + }; + Oe(Y, (pe) => { + x(p).role === "admin" && pe(ie); + }); + } + k(V), $(ue, V); + }; + Oe(ct, (ue) => { + (x(p).description || x(p).role === "admin") && ue(It); + }); + } + var Dt = j(ct, 2), + at = A(Dt), + dt = A(at); + zh(dt, { class: "inline size-4" }); + var yt = j(dt, 2), + xt = A(yt), + St = j(xt), + wt = A(St, !0); + k(St), k(yt), k(at); + var _t = j(at, 2), + Lt = A(_t); + yp(Lt, { class: "inline size-4" }); + var Rt = j(Lt, 2), + $t = A(Rt), + tr = j($t); + { + var Qt = (ue) => { + var V = RM(), + U = A(V, !0); + k(V), + We( + (Y) => de(U, Y), + [() => x(p).members.toLocaleString("en-US")] + ), + $(ue, V); + }, + Ot = (ue) => { + var V = FM(); + V.__click = [BM, B]; + var U = A(V, !0); + k(V), + We( + (Y) => de(U, Y), + [() => x(p).members.toLocaleString("en-US")] + ), + $(ue, V); + }; + Oe(tr, (ue) => { + x(p).role === "member" ? ue(Qt) : ue(Ot, !1); + }); + } + k(Rt), k(_t); + var Nt = j(_t, 2); + { + var or = (ue) => { + var V = qM(), + U = A(V); + bM(U, { class: "inline size-4" }); + var Y = j(U, 2), + ie = A(Y), + pe = j(ie); + pe.__click = [OM, p, a]; + var Se = A(pe); + { + var Me = (Ke) => { + var kt = NM(), + ye = A(kt); + k(kt), + We( + (Bt, rr) => + de(ye, `${Bt ?? ""}, ${rr ?? ""}`), + [ + () => x(p).hq.latitude.toFixed(3), + () => x(p).hq.longitude.toFixed(3), + ] + ), + $(Ke, kt); + }, + we = (Ke) => { + var kt = jM(), + ye = A(kt, !0); + k(kt), + We((Bt) => de(ye, Bt), [() => T3()]), + $(Ke, kt); + }; + Oe(Se, (Ke) => { + x(p).hq ? Ke(Me) : Ke(we, !1); + }); + } + k(pe), k(Y); + var Ve = j(Y, 2); + { + var ut = (Ke) => { + var kt = VM(); + kt.__click = function (...Bt) { + var rr; + (rr = a.onhqchange) == null || rr.apply(this, Bt); + }; + var ye = A(kt); + tm(ye, { class: "text-base-content/50 size-4" }), + k(kt), + $(Ke, kt); + }; + Oe(Ve, (Ke) => { + x(p).role === "admin" && Ke(ut); + }); + } + k(V), + We((Ke) => de(ie, `${Ke ?? ""}: `), [() => x3()]), + $(ue, V); + }; + Oe(Nt, (ue) => { + (x(p).hq || x(p).role === "admin") && ue(or); + }); + } + k(Dt); + var cr = j(Dt, 2), + Vr = A(cr), + mr = A(Vr, !0); + k(Vr); + var hr = j(Vr, 2), + _r = A(hr); + W4(_r, { + get allianceId() { + return x(p).id; + }, + get onlastpixelclick() { + return a.onlastpixelclick; + }, + get reload() { + return x(O); + }, + set reload(ue) { + se(O, ue, !0); + }, + }), + k(hr), + k(cr); + var Ir = j(cr, 2); + w4(Ir, { + get description() { + return x(p).description; + }, + onsuccess: async (ue) => { + x(p) && (x(p).description = ue); + }, + get ref() { + return x(T); + }, + set ref(ue) { + se(T, ue, !0); + }, + }); + var qr = j(Ir, 2); + P4(qr, { + get open() { + return x(s); + }, + set open(ue) { + se(s, ue, !0); + }, + }), + We( + (ue, V, U, Y, ie) => { + de(Ue, x(p).name), + (ze.disabled = x(z)), + de(je, ue), + de(xt, `${V ?? ""}: `), + de(wt, U), + de($t, `${Y ?? ""}: `), + de(mr, ie); + }, + [ + () => g3(), + () => zm(), + () => x(p).pixelsPainted.toLocaleString("en-US"), + () => Dv(), + () => Bm(), + ] + ), + $(Qe, Le); + }, + Ze = (Qe) => { + var Le = $M(), + et = Ct(Le), + nt = A(et), + Ue = A(nt); + k(nt); + var ke = j(nt, 2), + vt = A(ke); + TM(vt, { class: "size-5" }); + var ee = j(vt, 1, !0); + k(ke); + var re = j(ke, 2), + he = A(re), + oe = A(he, !0); + k(he), k(re); + var ze = j(re, 2); + ze.__click = [UM, M]; + var je = A(ze); + Rv(je, { class: "size-6" }); + var pt = j(je); + k(ze), k(et); + var it = j(et, 2); + _M(it, { + onsuccess: X, + get ref() { + return x(M); + }, + set ref(ct) { + se(M, ct, !0); + }, + }), + We( + (ct, It, Dt, at) => { + de(Ue, `${ct ?? ""}:`), + de(ee, It), + de(oe, Dt), + de(pt, ` ${at ?? ""}`); + }, + [() => P3(), () => k3(), () => z3(), () => R3()] + ), + $(Qe, Le); + }; + Oe( + Je, + (Qe) => { + x(p) ? Qe(qe) : Qe(Ze, !1); + }, + !0 + ); + } + $(Fe, $e); + }; + Oe( + Ae, + (Fe) => { + x(B) ? Fe(De) : Fe(Ee, !1); + }, + !0 + ); + } + $(ge, Ie); + }; + Oe(ne, (ge) => { + x(y) ? ge(H) : ge(fe, !1); + }); + } + k(K), $(m, K), Dr(); +} +$n(["click"]); +var WM = Pr( + '' +); +function xp(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = WM(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var XM = Te( + ' ' +); +function YM(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + Fn(() => { + const K = (ne) => { + ne.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", K), + () => document.removeEventListener("keydown", K) + ); + }); + var y = XM(), + M = A(y), + z = j(A(M), 2), + T = A(z); + xp(T, { class: "size-5 max-sm:size-6" }); + var s = j(T, 2), + B = A(s, !0); + k(s), k(z); + var O = j(z, 2), + X = A(O); + HM(X, { + get open() { + return p(); + }, + get onhqchange() { + return a.onhqchange; + }, + get onhqclick() { + return a.onhqclick; + }, + get onlastpixelclick() { + return a.onlastpixelclick; + }, + }), + k(O), + k(M), + yn(2), + k(y), + Ni(y, () => (K) => { + Wr(() => { + p() + ? (K.show(), + yi.url.searchParams.get("alliance") && + (yi.url.searchParams.delete("alliance"), km(yi.url.toString()))) + : K.close(); + }); + }), + We((K) => de(B, K), [() => _p()]), + di("close", y, () => p(!1)), + Ai( + 2, + O, + () => ia, + () => ({ duration: 300 }) + ), + $(m, y), + Dr(); +} +function KM(m, a, p) { + return new Promise((y, M) => { + m.once("render", () => { + const z = m.getCanvas().toDataURL(), + T = document.createElement("img"); + (T.src = z), + (T.onload = () => { + const s = document.createElement("canvas"); + (s.width = T.width), (s.height = T.height); + const B = s.getContext("2d"); + if (B) { + B.drawImage(T, 0, 0); + const [O, X, K, ne] = B.getImageData(a, p, 1, 1).data; + y([O, X, K, ne]); + } else M(new Error("Could not get 2d context from canvas")); + T.remove(), s.remove(); + }); + }), + m.triggerRepaint(); + }); +} +function a0(m, a) { + return new Promise((p, y) => { + m.once("render", () => { + const M = m.getCanvas(); + let z = M; + if ((a != null && a.maxWidth) || (a != null && a.maxHeight)) { + const T = M.width, + s = M.height, + B = (a == null ? void 0 : a.maxWidth) ?? T, + O = (a == null ? void 0 : a.maxHeight) ?? s; + z = document.createElement("canvas"); + const X = Math.min(B / T, O / s); + (z.width = Math.floor(T * X)), (z.height = Math.floor(s * X)); + const K = z.getContext("2d"); + K && K.drawImage(M, 0, 0, z.width, z.height); + } + try { + z.toBlob( + (T) => { + T && p(T); + }, + (a == null ? void 0 : a.type) ?? "image/png", + (a == null ? void 0 : a.quality) ?? 1 + ); + } catch (T) { + y(T); + } finally { + z !== M && z.remove(); + } + }); + }); +} +var JM = Pr( + '' +); +function QM(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = JM(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + height: "24px", + viewBox: "0 -960 960 960", + width: "24px", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var e6 = Pr( + '' +); +function o0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = e6(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +const gc = { hour: 3600 * 1e3, min: 60 * 1e3, sec: 1e3 }; +function rp(m) { + const a = Math.floor(m / gc.hour); + m -= a * gc.hour; + const p = Math.floor(m / gc.min); + m -= p * gc.min; + const M = Math.floor(m / gc.sec) + .toString() + .padStart(2, "0"); + return a > 0 ? `${a}:${p.toString().padStart(2, "0")}:${M}` : `${p}:${M}`; +} +function t6(m) { + const a = new Date(), + p = a.getFullYear(), + y = String(a.getMonth() + 1).padStart(2, "0"), + M = String(a.getDate()).padStart(2, "0"), + z = String(a.getHours()).padStart(2, "0"), + T = String(a.getMinutes()).padStart(2, "0"), + s = String(a.getSeconds()).padStart(2, "0"); + return `${p}-${y}-${M} ${z}:${T}:${s}`; +} +var r6 = (m, a, p) => { + navigator.clipboard.writeText(a.url.toString()), + se(p, !0), + setTimeout(() => { + se(p, !1); + }, 1e3); + }, + n6 = Te('Screenshot'), + i6 = Te( + '
                ' + ), + a6 = async (m, a) => { + x(a) && + (await navigator.clipboard.write([ + new ClipboardItem({ "image/png": x(a) }), + ]), + Fr.info(xP())); + }, + o6 = Te( + '' + ), + s6 = Te( + ' ' + ); +function l6(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15), + y = st(!1); + Fn(() => { + const Ee = (Fe) => { + Fe.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", Ee), + () => document.removeEventListener("keydown", Ee) + ); + }); + let M = st(null), + z = st(""); + Wr(() => { + p() + ? (a.hideHover(), + setTimeout(async () => { + a0(a.map) + .then((Ee) => { + se(M, Ee, !0), se(z, URL.createObjectURL(x(M)), !0); + }) + .finally(() => { + a.showHover(); + }); + }, 500)) + : x(z) && (URL.revokeObjectURL(x(z)), se(M, null), se(z, "")); + }); + var T = s6(), + s = A(T), + B = j(A(s), 2), + O = A(B); + o0(O, { class: "size-5" }); + var X = j(O); + k(B); + var K = j(B, 2), + ne = A(K); + Ka(ne); + var H = j(ne, 2), + fe = A(H); + let ge; + fe.__click = [r6, a, y]; + var Ie = A(fe, !0); + k(fe), k(H), k(K); + var Ae = j(K, 2); + { + var De = (Ee) => { + const Fe = ft(() => { + var oe; + return (oe = a.map) == null ? void 0 : oe.getCanvas(); + }); + var $e = o6(), + Je = A($e), + qe = A(Je); + QM(qe, { class: "inline size-5" }); + var Ze = j(qe); + k(Je); + var Qe = j(Je, 2); + { + var Le = (oe) => { + var ze = n6(); + We(() => { + Tr(ze, "src", x(z)), + Tr(ze, "width", x(Fe).width), + Tr(ze, "height", x(Fe).height); + }), + $(oe, ze); + }, + et = (oe) => { + var ze = i6(); + We(() => kc(ze, `aspect-ratio: ${x(Fe).width / x(Fe).height}`)), + $(oe, ze); + }; + Oe(Qe, (oe) => { + x(z) ? oe(Le) : oe(et, !1); + }); + } + var nt = j(Qe, 2), + Ue = A(nt); + Ue.__click = [a6, M]; + var ke = A(Ue); + Rm(ke, { class: "size-5" }); + var vt = j(ke); + k(Ue); + var ee = j(Ue, 2), + re = A(ee); + zv(re, { class: "size-5" }); + var he = j(re); + k(ee), + k(nt), + k($e), + We( + (oe, ze, je, pt) => { + de(Ze, ` ${oe ?? ""}`), + de(vt, ` ${ze ?? ""}`), + Tr(ee, "href", x(z)), + Tr(ee, "download", `wplace_${je ?? ""}.png`), + de(he, ` ${pt ?? ""}`); + }, + [ + () => fP(), + () => Wf(), + () => t6().replaceAll(" ", "_").replaceAll(":", "-"), + () => gP(), + ] + ), + Ai( + 2, + $e, + () => ia, + () => ({ duration: 300 }) + ), + $(Ee, $e); + }; + Oe(Ae, (Ee) => { + p() && Ee(De); + }); + } + k(s), + yn(2), + k(T), + Ni(T, () => (Ee) => { + Wr(() => { + p() ? Ee.show() : Ee.close(); + }); + }), + We( + (Ee, Fe, $e, Je) => { + de(X, ` ${Ee ?? ""}`), + Av(ne, Fe), + (ge = zr(fe, 1, "btn btn-primary", null, ge, $e)), + de(Ie, Je); + }, + [ + () => kC(), + () => a.url.toString(), + () => ({ "btn-success": x(y) }), + () => (x(y) ? Fm() : Wf()), + ] + ), + di("close", T, () => p(!1)), + $(m, T), + Dr(); +} +$n(["click"]); +var c6 = Pr( + '' +); +function u6(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = c6(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var h6 = Te( + '
              • ' + ), + d6 = Te( + '

                  ' + ); +function Gm(m, a) { + Lr(a, !1); + const p = [Kw(), Ww(), e5(), n5(), o5(), c5(), d5()]; + Nv(); + var y = d6(), + M = A(y), + z = A(M); + u6(z, { class: "size-5" }); + var T = j(z, 2), + s = A(T), + B = j(s), + O = A(B, !0); + k(B), k(T), k(M); + var X = j(M, 2), + K = A(X); + hi( + K, + 5, + () => p, + hp, + (fe, ge) => { + var Ie = h6(), + Ae = A(Ie, !0); + k(Ie), We(() => de(Ae, x(ge))), $(fe, Ie); + } + ), + k(K); + var ne = j(K, 2), + H = A(ne, !0); + k(ne), + k(X), + k(y), + We( + (fe, ge, Ie) => { + de(s, `${fe ?? ""} `), de(O, ge), de(H, Ie); + }, + [() => qw(), () => $w(), () => m5()] + ), + $(m, y), + Dr(); +} +var p6 = (m, a) => { + a(!1); + }, + f6 = Te( + ' ' + ); +function m6(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + Fn(() => { + const O = (X) => { + X.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", O), + () => document.removeEventListener("keydown", O) + ); + }); + var y = f6(), + M = A(y), + z = j(A(M), 2), + T = j(A(z), 2), + s = A(T); + Gm(s, {}), k(T); + var B = j(T, 2); + (B.__click = [p6, p]), + k(z), + k(M), + yn(2), + k(y), + Ni(y, () => (O) => { + Wr(() => { + p() ? O.show() : O.close(); + }); + }), + di("close", y, () => p(!1)), + $(m, y), + Dr(); +} +$n(["click"]); +var _6 = () => { + yi.url.searchParams.delete("new-user"), km(yi.url.toString()); + }, + g6 = Te( + '' + ); +function v6(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + Fn(() => { + const ge = (Ie) => { + Ie.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", ge), + () => document.removeEventListener("keydown", ge) + ); + }); + var y = g6(), + M = A(y), + z = A(M), + T = A(z), + s = A(T), + B = A(s, !0); + k(s); + var O = j(s, 2); + jv(O, { hasText: !0, size: "medium" }), k(T), k(z); + var X = j(z, 2), + K = A(X); + Gm(K, {}), k(X); + var ne = j(X, 2), + H = A(ne); + H.__click = [_6]; + var fe = A(H, !0); + k(H), + k(ne), + k(M), + k(y), + Ni(y, () => (ge) => { + Wr(() => { + p() ? ge.show() : ge.close(); + }); + }), + We( + (ge, Ie) => { + de(B, ge), de(fe, Ie); + }, + [() => Nw(), () => v5()] + ), + di("close", y, () => p(!1)), + $(m, y), + Dr(); +} +$n(["click"]); +function y6() { + const m = navigator.userAgent, + a = navigator.vendor; + return /Chrome/.test(m) && /Google Inc/.test(a) + ? "Chrome" + : /Safari/.test(m) && /Apple Computer/.test(a) + ? "Safari" + : /Firefox/.test(m) + ? "Firefox" + : /Edge/.test(m) + ? "Edge" + : /Opera|OPR/.test(m) + ? "Opera" + : "Unknown"; +} +var x6 = Pr( + '' +); +function b6(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = x6(); + ar(y, () => ({ + viewBox: "0 0 512 512", + fill: "currentColor", + xmlns: "http://www.w3.org/2000/svg", + ...p, + })), + $(m, y); +} +var w6 = Pr( + '' +); +function rm(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = w6(); + ar(y, () => ({ + viewBox: "0 0 256 199", + width: "256", + height: "199", + xmlns: "http://www.w3.org/2000/svg", + preserveAspectRatio: "xMidYMid", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var T6 = Pr( + '' +); +function C6(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = T6(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + preserveAspectRatio: "xMidYMid", + viewBox: "0 0 260 260", + ...p, + })), + $(m, y); +} +var S6 = Pr( + '' +); +function np(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = S6(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var P6 = Pr(``); +function I6(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = P6(); + ar(y, () => ({ + viewBox: "0 0 24 24", + fill: "currentColor", + xmlns: "http://www.w3.org/2000/svg", + "aria-label": "Tiktok", + ...p, + })), + $(m, y); +} +var M6 = Pr(``); +function k6(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = M6(); + ar(y, () => ({ + viewBox: "0 0 24 24", + fill: "currentColor", + xmlns: "http://www.w3.org/2000/svg", + "aria-label": "YouTube", + ...p, + })), + $(m, y); +} +var A6 = Te( + ' link', + 1 + ), + E6 = Te('chrome://settings/system.', 1), + z6 = Te( + 'edge://settings/system/manageSystem.', + 1 + ), + L6 = Te(' ', 1), + D6 = Te( + '' + ), + R6 = Te( + ' ' + ); +function B6(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + Fn(() => { + const K = (ne) => { + ne.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", K), + () => document.removeEventListener("keydown", K) + ); + }); + const y = y6(); + var M = R6(), + z = A(M), + T = j(A(z), 2); + { + var s = (K) => { + var ne = D6(), + H = A(ne), + fe = A(H); + jv(fe, { hasText: !0, size: "medium" }); + var ge = j(fe, 2), + Ie = A(ge), + Ae = j(Ie, 4); + yn(), k(ge); + var De = j(ge, 2), + Ee = A(De), + Fe = A(Ee), + $e = A(Fe); + rm($e, { class: "text-base-content mr-0.5 inline size-4" }), yn(2), k(Fe); + var Je = j(Fe, 4), + qe = A(Je); + b6(qe, { class: "size-4.5 mr-0.5 inline" }), yn(2), k(Je); + var Ze = j(Je, 4), + Qe = A(Ze); + C6(Qe, { class: "mr-0.5 inline size-3.5" }), yn(2), k(Ze); + var Le = j(Ze, 4), + et = A(Le); + k6(et, { class: "mr-0.5 inline size-3.5" }), yn(2), k(Le); + var nt = j(Le, 4), + Ue = A(nt); + I6(Ue, { class: "mr-0.5 inline size-3.5" }), + yn(2), + k(nt), + k(Ee), + k(De), + k(H); + var ke = j(H, 2), + vt = A(ke), + ee = A(vt, !0); + k(vt); + var re = j(vt, 2); + k(ke); + var he = j(ke, 2), + oe = A(he), + ze = A(oe, !0); + k(oe); + var je = j(oe, 2), + pt = A(je), + it = j(pt), + ct = A(it); + np(ct, { class: "size-5" }), k(it); + var It = j(it); + k(je); + var Dt = j(je, 2), + at = A(Dt), + dt = j(at), + yt = A(dt, !0); + k(dt); + var xt = j(dt); + k(Dt), k(he); + var St = j(he, 2), + wt = A(St), + _t = A(wt, !0); + k(wt); + var Lt = j(wt, 2), + Rt = A(Lt); + { + var $t = (ie) => { + var pe = A6(), + Se = Ct(pe); + yn(), We((Me) => de(Se, `${Me ?? ""}: `), [() => RP()]), $(ie, pe); + }, + tr = (ie) => { + var pe = L6(), + Se = Ct(pe), + Me = j(Se), + we = A(Me, !0); + k(Me); + var Ve = j(Me), + ut = j(Ve); + { + var Ke = (ye) => { + var Bt = E6(); + yn(), $(ye, Bt); + }, + kt = (ye) => { + var Bt = er(), + rr = Ct(Bt); + { + var Kt = (gr) => { + var Ur = z6(); + yn(), $(gr, Ur); + }; + Oe( + rr, + (gr) => { + y === "Edge" && gr(Kt); + }, + !0 + ); + } + $(ye, Bt); + }; + Oe(ut, (ye) => { + y === "Chrome" ? ye(Ke) : ye(kt, !1); + }); + } + We( + (ye, Bt, rr) => { + de(Se, `${ye ?? ""} `), de(we, Bt), de(Ve, ` ${rr ?? ""} `); + }, + [() => PP(), () => kP(), () => zP()] + ), + $(ie, pe); + }; + Oe(Rt, (ie) => { + y !== "Chrome" && y !== "Edge" ? ie($t) : ie(tr, !1); + }); + } + k(Lt), k(St); + var Qt = j(St, 2), + Ot = A(Qt); + Gm(Ot, {}), k(Qt); + var Nt = j(Qt, 4), + or = j(A(Nt), 2), + cr = A(or, !0); + k(or); + var Vr = j(or, 2), + mr = A(Vr, !0); + k(Vr); + var hr = j(Vr, 2), + _r = A(hr, !0); + k(hr); + var Ir = j(hr, 2), + qr = A(Ir, !0); + k(Ir); + var ue = j(Ir, 2), + V = A(ue, !0); + k(ue); + var U = j(ue, 2), + Y = A(U, !0); + k(U), + k(Nt), + k(ne), + We( + ( + ie, + pe, + Se, + Me, + we, + Ve, + ut, + Ke, + kt, + ye, + Bt, + rr, + Kt, + gr, + Ur, + nn, + mn + ) => { + de(Ie, `${ie ?? ""} `), + de( + Ae, + ` © + ${pe ?? ""} ` + ), + de(ee, Se), + Tr( + re, + "src", + ai.language === "pt" + ? "https://www.youtube.com/embed/AcE85QM4iPQ?si=wbeZD8vxOzvlB_Z9" + : "https://www.youtube.com/embed/xOXtd-WzRxA?si=fHz8Z6ecXGYrDhkN" + ), + de(ze, Me), + de(pt, `${we ?? ""} `), + de(It, ` ${Ve ?? ""}`), + de(at, `${ut ?? ""} `), + de(yt, Ke), + de(xt, ` ${kt ?? ""}`), + de(_t, ye), + Tr(or, "href", `${yi.url.origin ?? ""}/terms/terms-of-service`), + de(cr, Bt), + Tr(Vr, "href", `${yi.url.origin ?? ""}/terms/privacy`), + de(mr, rr), + Tr(hr, "href", Kt), + de(_r, gr), + de(qr, Ur), + de(V, nn), + de(Y, mn); + }, + [ + () => Nb(), + () => qb(), + () => $b(), + () => Wb(), + () => Kb(), + () => e2(), + () => n2(), + () => o2(), + () => c2(), + () => TP(), + () => VP(), + () => UP(), + () => Bv(yi.url.origin), + () => Jv(), + () => QI(), + () => r4(), + () => a4(), + ] + ), + Ai( + 2, + ne, + () => ia, + () => ({ duration: 300 }) + ), + $(K, ne); + }; + Oe(T, (K) => { + p() && K(s); + }); + } + k(z); + var B = j(z, 2), + O = A(B), + X = A(O, !0); + k(O), + k(B), + k(M), + Ni(M, () => (K) => { + Wr(() => { + p() ? K.show() : K.close(); + }); + }), + We((K) => de(X, K), [() => Ss()]), + di("close", M, () => p(!1)), + $(m, M), + Dr(); +} +function F6(m) { + return typeof m == "function"; +} +function Lh(m) { + return m !== null && typeof m == "object"; +} +const O6 = ["string", "number", "bigint", "boolean"]; +function nm(m) { + return m == null || O6.includes(typeof m) + ? !0 + : Array.isArray(m) + ? m.every((a) => nm(a)) + : typeof m == "object" + ? Object.getPrototypeOf(m) === Object.prototype + : !1; +} +const Vu = Symbol("box"), + Hm = Symbol("is-writable"); +function N6(m) { + return Lh(m) && Vu in m; +} +function j6(m) { + return br.isBox(m) && Hm in m; +} +function br(m) { + let a = st(bi(m)); + return { + [Vu]: !0, + [Hm]: !0, + get current() { + return x(a); + }, + set current(p) { + se(a, p, !0); + }, + }; +} +function V6(m, a) { + const p = ft(m); + return a + ? { + [Vu]: !0, + [Hm]: !0, + get current() { + return x(p); + }, + set current(y) { + a(y); + }, + } + : { + [Vu]: !0, + get current() { + return m(); + }, + }; +} +function q6(m) { + return br.isBox(m) ? m : F6(m) ? br.with(m) : br(m); +} +function Z6(m) { + return Object.entries(m).reduce( + (a, [p, y]) => + br.isBox(y) + ? (br.isWritableBox(y) + ? Object.defineProperty(a, p, { + get() { + return y.current; + }, + set(M) { + y.current = M; + }, + }) + : Object.defineProperty(a, p, { + get() { + return y.current; + }, + }), + a) + : Object.assign(a, { [p]: y }), + {} + ); +} +function U6(m) { + return br.isWritableBox(m) + ? { + [Vu]: !0, + get current() { + return m.current; + }, + } + : m; +} +br.from = q6; +br.with = V6; +br.flatten = Z6; +br.readonly = U6; +br.isBox = N6; +br.isWritableBox = j6; +function $6(...m) { + return function (a) { + var p; + for (const y of m) + if (y) { + if (a.defaultPrevented) return; + typeof y == "function" + ? y.call(this, a) + : (p = y.current) == null || p.call(this, a); + } + }; +} +var hc = {}, + Rf, + tv; +function G6() { + if (tv) return Rf; + tv = 1; + var m = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g, + a = /\n/g, + p = /^\s*/, + y = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/, + M = /^:\s*/, + z = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/, + T = /^[;\s]*/, + s = /^\s+|\s+$/g, + B = ` +`, + O = "/", + X = "*", + K = "", + ne = "comment", + H = "declaration"; + Rf = function (ge, Ie) { + if (typeof ge != "string") + throw new TypeError("First argument must be a string"); + if (!ge) return []; + Ie = Ie || {}; + var Ae = 1, + De = 1; + function Ee(Ue) { + var ke = Ue.match(a); + ke && (Ae += ke.length); + var vt = Ue.lastIndexOf(B); + De = ~vt ? Ue.length - vt : De + Ue.length; + } + function Fe() { + var Ue = { line: Ae, column: De }; + return function (ke) { + return (ke.position = new $e(Ue)), Ze(), ke; + }; + } + function $e(Ue) { + (this.start = Ue), + (this.end = { line: Ae, column: De }), + (this.source = Ie.source); + } + $e.prototype.content = ge; + function Je(Ue) { + var ke = new Error(Ie.source + ":" + Ae + ":" + De + ": " + Ue); + if ( + ((ke.reason = Ue), + (ke.filename = Ie.source), + (ke.line = Ae), + (ke.column = De), + (ke.source = ge), + !Ie.silent) + ) + throw ke; + } + function qe(Ue) { + var ke = Ue.exec(ge); + if (ke) { + var vt = ke[0]; + return Ee(vt), (ge = ge.slice(vt.length)), ke; + } + } + function Ze() { + qe(p); + } + function Qe(Ue) { + var ke; + for (Ue = Ue || []; (ke = Le()); ) ke !== !1 && Ue.push(ke); + return Ue; + } + function Le() { + var Ue = Fe(); + if (!(O != ge.charAt(0) || X != ge.charAt(1))) { + for ( + var ke = 2; + K != ge.charAt(ke) && (X != ge.charAt(ke) || O != ge.charAt(ke + 1)); + + ) + ++ke; + if (((ke += 2), K === ge.charAt(ke - 1))) + return Je("End of comment missing"); + var vt = ge.slice(2, ke - 2); + return ( + (De += 2), + Ee(vt), + (ge = ge.slice(ke)), + (De += 2), + Ue({ type: ne, comment: vt }) + ); + } + } + function et() { + var Ue = Fe(), + ke = qe(y); + if (ke) { + if ((Le(), !qe(M))) return Je("property missing ':'"); + var vt = qe(z), + ee = Ue({ + type: H, + property: fe(ke[0].replace(m, K)), + value: vt ? fe(vt[0].replace(m, K)) : K, + }); + return qe(T), ee; + } + } + function nt() { + var Ue = []; + Qe(Ue); + for (var ke; (ke = et()); ) ke !== !1 && (Ue.push(ke), Qe(Ue)); + return Ue; + } + return Ze(), nt(); + }; + function fe(ge) { + return ge ? ge.replace(s, K) : K; + } + return Rf; +} +var rv; +function H6() { + if (rv) return hc; + rv = 1; + var m = + (hc && hc.__importDefault) || + function (y) { + return y && y.__esModule ? y : { default: y }; + }; + Object.defineProperty(hc, "__esModule", { value: !0 }), (hc.default = p); + var a = m(G6()); + function p(y, M) { + var z = null; + if (!y || typeof y != "string") return z; + var T = (0, a.default)(y), + s = typeof M == "function"; + return ( + T.forEach(function (B) { + if (B.type === "declaration") { + var O = B.property, + X = B.value; + s ? M(O, X, B) : X && ((z = z || {}), (z[O] = X)); + } + }), + z + ); + } + return hc; +} +var W6 = H6(); +const nv = Zm(W6), + X6 = nv.default || nv, + Y6 = /\d/, + K6 = ["-", "_", "/", "."]; +function J6(m = "") { + if (!Y6.test(m)) return m !== m.toLowerCase(); +} +function Q6(m) { + const a = []; + let p = "", + y, + M; + for (const z of m) { + const T = K6.includes(z); + if (T === !0) { + a.push(p), (p = ""), (y = void 0); + continue; + } + const s = J6(z); + if (M === !1) { + if (y === !1 && s === !0) { + a.push(p), (p = z), (y = s); + continue; + } + if (y === !0 && s === !1 && p.length > 1) { + const B = p.at(-1); + a.push(p.slice(0, Math.max(0, p.length - 1))), (p = B + z), (y = s); + continue; + } + } + (p += z), (y = s), (M = T); + } + return a.push(p), a; +} +function s0(m) { + return m + ? Q6(m) + .map((a) => tk(a)) + .join("") + : ""; +} +function ek(m) { + return rk(s0(m || "")); +} +function tk(m) { + return m ? m[0].toUpperCase() + m.slice(1) : ""; +} +function rk(m) { + return m ? m[0].toLowerCase() + m.slice(1) : ""; +} +function Zd(m) { + if (!m) return {}; + const a = {}; + function p(y, M) { + if ( + y.startsWith("-moz-") || + y.startsWith("-webkit-") || + y.startsWith("-ms-") || + y.startsWith("-o-") + ) { + a[s0(y)] = M; + return; + } + if (y.startsWith("--")) { + a[y] = M; + return; + } + a[ek(y)] = M; + } + return X6(m, p), a; +} +function nk(...m) { + return (...a) => { + for (const p of m) typeof p == "function" && p(...a); + }; +} +function ik(m, a) { + const p = RegExp(m, "g"); + return (y) => { + if (typeof y != "string") + throw new TypeError( + `expected an argument of type string, but got ${typeof y}` + ); + return y.match(p) ? y.replace(p, a) : y; + }; +} +const ak = ik(/[A-Z]/, (m) => `-${m.toLowerCase()}`); +function ok(m) { + if (!m || typeof m != "object" || Array.isArray(m)) + throw new TypeError( + `expected an argument of type object, but got ${typeof m}` + ); + return Object.keys(m).map((a) => `${ak(a)}: ${m[a]};`).join(` +`); +} +function l0(m = {}) { + return ok(m).replace( + ` +`, + " " + ); +} +const c0 = { + position: "absolute", + width: "1px", + height: "1px", + padding: "0", + margin: "-1px", + overflow: "hidden", + clip: "rect(0, 0, 0, 0)", + whiteSpace: "nowrap", + borderWidth: "0", + transform: "translateX(-100%)", +}; +l0(c0); +const sk = [ + "onabort", + "onanimationcancel", + "onanimationend", + "onanimationiteration", + "onanimationstart", + "onauxclick", + "onbeforeinput", + "onbeforetoggle", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncompositionend", + "oncompositionstart", + "oncompositionupdate", + "oncontextlost", + "oncontextmenu", + "oncontextrestored", + "oncopy", + "oncuechange", + "oncut", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "onfocusin", + "onfocusout", + "onformdata", + "ongotpointercapture", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onlostpointercapture", + "onmousedown", + "onmouseenter", + "onmouseleave", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onpaste", + "onpause", + "onplay", + "onplaying", + "onpointercancel", + "onpointerdown", + "onpointerenter", + "onpointerleave", + "onpointermove", + "onpointerout", + "onpointerover", + "onpointerup", + "onprogress", + "onratechange", + "onreset", + "onresize", + "onscroll", + "onscrollend", + "onsecuritypolicyviolation", + "onseeked", + "onseeking", + "onselect", + "onselectionchange", + "onselectstart", + "onslotchange", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "ontoggle", + "ontouchcancel", + "ontouchend", + "ontouchmove", + "ontouchstart", + "ontransitioncancel", + "ontransitionend", + "ontransitionrun", + "ontransitionstart", + "onvolumechange", + "onwaiting", + "onwebkitanimationend", + "onwebkitanimationiteration", + "onwebkitanimationstart", + "onwebkittransitionend", + "onwheel", + ], + lk = new Set(sk); +function ck(m) { + return lk.has(m); +} +function Va(...m) { + const a = { ...m[0] }; + for (let p = 1; p < m.length; p++) { + const y = m[p]; + if (y) { + for (const M of Object.keys(y)) { + const z = a[M], + T = y[M], + s = typeof z == "function", + B = typeof T == "function"; + if (s && ck(M)) { + const O = z, + X = T; + a[M] = $6(O, X); + } else if (s && B) a[M] = nk(z, T); + else if (M === "class") { + const O = nm(z), + X = nm(T); + O && X ? (a[M] = Ou(z, T)) : O ? (a[M] = Ou(z)) : X && (a[M] = Ou(T)); + } else if (M === "style") { + const O = typeof z == "object", + X = typeof T == "object", + K = typeof z == "string", + ne = typeof T == "string"; + if (O && X) a[M] = { ...z, ...T }; + else if (O && ne) { + const H = Zd(T); + a[M] = { ...z, ...H }; + } else if (K && X) { + const H = Zd(z); + a[M] = { ...H, ...T }; + } else if (K && ne) { + const H = Zd(z), + fe = Zd(T); + a[M] = { ...H, ...fe }; + } else + O ? (a[M] = z) : X ? (a[M] = T) : K ? (a[M] = z) : ne && (a[M] = T); + } else a[M] = T !== void 0 ? T : z; + } + for (const M of Object.getOwnPropertySymbols(y)) { + const z = a[M], + T = y[M]; + a[M] = T !== void 0 ? T : z; + } + } + } + return ( + typeof a.style == "object" && + (a.style = l0(a.style).replaceAll( + ` +`, + " " + )), + a.hidden !== !0 && ((a.hidden = void 0), delete a.hidden), + a.disabled !== !0 && ((a.disabled = void 0), delete a.disabled), + a + ); +} +const uk = typeof window < "u" ? window : void 0; +function hk(m) { + let a = m.activeElement; + for (; a != null && a.shadowRoot; ) { + const p = a.shadowRoot.activeElement; + if (p === a) break; + a = p; + } + return a; +} +var wc, Yu; +class dk { + constructor(a = {}) { + Ar(this, wc); + Ar(this, Yu); + const { window: p = uk, document: y = p == null ? void 0 : p.document } = a; + p !== void 0 && + (na(this, wc, y), + na( + this, + Yu, + Ev((M) => { + const z = Nu(p, "focusin", M), + T = Nu(p, "focusout", M); + return () => { + z(), T(); + }; + }) + )); + } + get current() { + var a; + return ( + (a = ot(this, Yu)) == null || a.call(this), + ot(this, wc) ? hk(ot(this, wc)) : null + ); + } +} +(wc = new WeakMap()), (Yu = new WeakMap()); +new dk(); +var Ku, Ho; +class Wm { + constructor(a) { + Ar(this, Ku); + Ar(this, Ho); + na(this, Ku, a), na(this, Ho, Symbol(a)); + } + get key() { + return ot(this, Ho); + } + exists() { + return ex(ot(this, Ho)); + } + get() { + const a = Gg(ot(this, Ho)); + if (a === void 0) throw new Error(`Context "${ot(this, Ku)}" not found`); + return a; + } + getOr(a) { + const p = Gg(ot(this, Ho)); + return p === void 0 ? a : p; + } + set(a) { + return tx(ot(this, Ho), a); + } +} +(Ku = new WeakMap()), (Ho = new WeakMap()); +function pk(m, a) { + switch (m) { + case "post": + Wr(a); + break; + case "pre": + Mm(a); + break; + } +} +function u0(m, a, p, y = {}) { + const { lazy: M = !1 } = y; + let z = !M, + T = Array.isArray(m) ? [] : void 0; + pk(a, () => { + const s = Array.isArray(m) ? m.map((O) => O()) : m(); + if (!z) { + (z = !0), (T = s); + return; + } + const B = ul(() => p(s, T)); + return (T = s), B; + }); +} +function Ps(m, a, p) { + u0(m, "post", a, p); +} +function fk(m, a, p) { + u0(m, "pre", a, p); +} +Ps.pre = fk; +var Tc; +class mk { + constructor(a, p) { + Ar(this, Tc, st(void 0)); + p !== void 0 && se(ot(this, Tc), p, !0), + Ps( + () => a(), + (y, M) => { + se(ot(this, Tc), M, !0); + } + ); + } + get current() { + return x(ot(this, Tc)); + } +} +Tc = new WeakMap(); +function _k(m, a) { + return setTimeout(a, m); +} +function dc(m) { + Iv().then(m); +} +const gk = 1, + vk = 9, + yk = 11; +function xk(m) { + return Lh(m) && m.nodeType === gk && typeof m.nodeName == "string"; +} +function h0(m) { + return Lh(m) && m.nodeType === vk; +} +function bk(m) { + var a; + return ( + Lh(m) && + ((a = m.constructor) == null ? void 0 : a.name) === "VisualViewport" + ); +} +function wk(m) { + return Lh(m) && m.nodeType !== void 0; +} +function Tk(m) { + return wk(m) && m.nodeType === yk && "host" in m; +} +function Ck(m) { + return h0(m) + ? m + : bk(m) + ? m.document + : (m == null ? void 0 : m.ownerDocument) ?? document; +} +function d0(m) { + var a; + return Tk(m) + ? d0(m.host) + : h0(m) + ? m.defaultView ?? window + : xk(m) + ? ((a = m.ownerDocument) == null ? void 0 : a.defaultView) ?? window + : window; +} +function Sk(m) { + let a = m.activeElement; + for (; a != null && a.shadowRoot; ) { + const p = a.shadowRoot.activeElement; + if (p === a) break; + a = p; + } + return a; +} +var Ju; +class Pk { + constructor(a) { + xr(this, "element"); + Ar( + this, + Ju, + ft(() => + this.element.current + ? this.element.current.getRootNode() ?? document + : document + ) + ); + xr(this, "getDocument", () => Ck(this.root)); + xr(this, "getWindow", () => this.getDocument().defaultView ?? window); + xr(this, "getActiveElement", () => Sk(this.root)); + xr(this, "isActiveElement", (a) => a === this.getActiveElement()); + xr(this, "querySelector", (a) => + this.root ? this.root.querySelector(a) : null + ); + xr(this, "querySelectorAll", (a) => + this.root ? this.root.querySelectorAll(a) : [] + ); + xr(this, "setTimeout", (a, p) => this.getWindow().setTimeout(a, p)); + xr(this, "clearTimeout", (a) => this.getWindow().clearTimeout(a)); + typeof a == "function" ? (this.element = br.with(a)) : (this.element = a); + } + get root() { + return x(ot(this, Ju)); + } + set root(a) { + se(ot(this, Ju), a); + } + getElementById(a) { + return this.root.getElementById(a); + } +} +Ju = new WeakMap(); +function Xa(m, a) { + return { + [Wx()]: (p) => + br.isBox(m) + ? ((m.current = p), + ul(() => (a == null ? void 0 : a(p))), + () => { + ("isConnected" in p && p.isConnected) || + ((m.current = null), a == null || a(null)); + }) + : (m(p), + ul(() => (a == null ? void 0 : a(p))), + () => { + ("isConnected" in p && p.isConnected) || + (m(null), a == null || a(null)); + }), + }; +} +function Ik(m) { + return m ? "true" : "false"; +} +function Mk(m) { + return m ? "true" : "false"; +} +function kk(m) { + return m ? "" : void 0; +} +function Ak(m) { + return m ? "true" : "false"; +} +function Ek(m) { + return m ? "" : void 0; +} +function zk(m) { + return m ? !0 : void 0; +} +var Cc, Qu; +class Lk { + constructor(a) { + Ar(this, Cc); + Ar(this, Qu); + xr(this, "attrs"); + na(this, Cc, a.getVariant ? a.getVariant() : null), + na( + this, + Qu, + ot(this, Cc) ? `data-${ot(this, Cc)}-` : `data-${a.component}-` + ), + (this.getAttr = this.getAttr.bind(this)), + (this.selector = this.selector.bind(this)), + (this.attrs = Object.fromEntries( + a.parts.map((p) => [p, this.getAttr(p)]) + )); + } + getAttr(a, p) { + return p ? `data-${p}-${a}` : `${ot(this, Qu)}${a}`; + } + selector(a, p) { + return `[${this.getAttr(a, p)}]`; + } +} +(Cc = new WeakMap()), (Qu = new WeakMap()); +function p0(m) { + const a = new Lk(m); + return { ...a.attrs, selector: a.selector, getAttr: a.getAttr }; +} +const Dk = "ArrowDown", + Rk = "ArrowLeft", + Bk = "ArrowRight", + Fk = "ArrowUp", + Ok = "End", + Nk = "Enter", + jk = "Home", + Vk = "p", + qk = "n", + Zk = "j", + Uk = "k", + $k = "h", + Gk = "l"; +function qu() {} +function Ya(m, a) { + return `bits-${m}`; +} +function Hk(m) { + if (!m) return null; + for (const a of m.childNodes) if (a.nodeType !== Node.COMMENT_NODE) return a; + return null; +} +globalThis.bitsIdCounter ?? (globalThis.bitsIdCounter = { current: 0 }); +function Wk(m = "bits") { + return ( + globalThis.bitsIdCounter.current++, + `${m}-${globalThis.bitsIdCounter.current}` + ); +} +function Xk(m, a) { + let p = m.nextElementSibling; + for (; p; ) { + if (p.matches(a)) return p; + p = p.nextElementSibling; + } +} +function Yk(m, a) { + let p = m.previousElementSibling; + for (; p; ) { + if (p.matches(a)) return p; + p = p.previousElementSibling; + } +} +function f0(m) { + if (typeof CSS < "u" && typeof CSS.escape == "function") return CSS.escape(m); + const a = m.length; + let p = -1, + y, + M = ""; + const z = m.charCodeAt(0); + if (a === 1 && z === 45) return "\\" + m; + for (; ++p < a; ) { + if (((y = m.charCodeAt(p)), y === 0)) { + M += "�"; + continue; + } + if ( + (y >= 1 && y <= 31) || + y === 127 || + (p === 0 && y >= 48 && y <= 57) || + (p === 1 && y >= 48 && y <= 57 && z === 45) + ) { + M += "\\" + y.toString(16) + " "; + continue; + } + if ( + y >= 128 || + y === 45 || + y === 95 || + (y >= 48 && y <= 57) || + (y >= 65 && y <= 90) || + (y >= 97 && y <= 122) + ) { + M += m.charAt(p); + continue; + } + M += "\\" + m.charAt(p); + } + return M; +} +const sl = "data-value", + wa = p0({ + component: "command", + parts: [ + "root", + "list", + "input", + "separator", + "loading", + "empty", + "group", + "group-items", + "group-heading", + "item", + "viewport", + "input-label", + ], + }), + pc = wa.selector("group"), + Bf = wa.selector("group-items"), + iv = wa.selector("group-heading"), + m0 = wa.selector("item"), + Ff = `${wa.selector("item")}:not([aria-disabled="true"])`, + ml = new Wm("Command.Root"), + Kk = new Wm("Command.List"), + Zu = new Wm("Command.Group"), + av = { + search: "", + value: "", + filtered: { count: 0, items: new Map(), groups: new Set() }, + }; +var Sc, + eh, + th, + rh, + nh, + ih, + ah, + oh, + fr, + _0, + Kd, + am, + Jd, + Qd, + ep, + ws, + g0, + v0, + om, + Du, + sm, + lm, + y0, + Ru, + cm, + um, + x0, + Bu, + Fu, + sh; +const e_ = class e_ { + constructor(a) { + Ar(this, fr); + xr(this, "opts"); + xr(this, "attachment"); + Ar(this, Sc, !1); + Ar(this, eh, !0); + xr(this, "sortAfterTick", !1); + xr(this, "sortAndFilterAfterTick", !1); + xr(this, "allItems", new Set()); + xr(this, "allGroups", new Map()); + xr(this, "allIds", new Map()); + Ar(this, th, st(0)); + Ar(this, rh, st(null)); + Ar(this, nh, st(null)); + Ar(this, ih, st(null)); + Ar(this, ah, st(av)); + Ar(this, oh, st(bi(av))); + Ar( + this, + sh, + ft(() => ({ + id: this.opts.id.current, + role: "application", + [wa.root]: "", + tabindex: -1, + onkeydown: this.onkeydown, + ...this.attachment, + })) + ); + (this.opts = a), (this.attachment = Xa(this.opts.ref)); + const p = { ...this._commandState, value: this.opts.value.current ?? "" }; + (this._commandState = p), + (this.commandState = p), + (this.onkeydown = this.onkeydown.bind(this)); + } + static create(a) { + return ml.set(new e_(a)); + } + get key() { + return x(ot(this, th)); + } + set key(a) { + se(ot(this, th), a, !0); + } + get viewportNode() { + return x(ot(this, rh)); + } + set viewportNode(a) { + se(ot(this, rh), a, !0); + } + get inputNode() { + return x(ot(this, nh)); + } + set inputNode(a) { + se(ot(this, nh), a, !0); + } + get labelNode() { + return x(ot(this, ih)); + } + set labelNode(a) { + se(ot(this, ih), a, !0); + } + get commandState() { + return x(ot(this, ah)); + } + set commandState(a) { + se(ot(this, ah), a); + } + get _commandState() { + return x(ot(this, oh)); + } + set _commandState(a) { + se(ot(this, oh), a, !0); + } + setState(a, p, y) { + Object.is(this._commandState[a], p) || + ((this._commandState[a] = p), + a === "search" + ? (jr(this, fr, ep).call(this), jr(this, fr, Jd).call(this)) + : a === "value" && (y || jr(this, fr, g0).call(this)), + jr(this, fr, Kd).call(this)); + } + setValue(a, p) { + a !== this.opts.value.current && + a === "" && + dc(() => { + this.key++; + }), + this.setState("value", a, p), + (this.opts.value.current = a); + } + getValidItems() { + const a = this.opts.ref.current; + return a ? Array.from(a.querySelectorAll(Ff)).filter((y) => !!y) : []; + } + getVisibleItems() { + const a = this.opts.ref.current; + return a ? Array.from(a.querySelectorAll(m0)).filter((y) => !!y) : []; + } + get itemsGrid() { + var s, B, O, X; + if (!this.isGrid) return []; + const a = this.opts.columns.current ?? 1, + p = this.getVisibleItems(), + y = [[]]; + let M = (s = p[0]) == null ? void 0 : s.getAttribute("data-group"), + z = 0, + T = 0; + for (let K = 0; K < p.length; K++) { + const ne = p[K], + H = ne == null ? void 0 : ne.getAttribute("data-group"); + M !== H + ? ((M = H), + (z = 1), + T++, + y.push([{ index: K, firstRowOfGroup: !0, ref: ne }])) + : (z++, + z > a && (T++, (z = 1), y.push([])), + (X = y[T]) == null || + X.push({ + index: K, + firstRowOfGroup: + ((O = (B = y[T]) == null ? void 0 : B[0]) == null + ? void 0 + : O.firstRowOfGroup) ?? K === 0, + ref: ne, + })); + } + return y; + } + updateSelectedToIndex(a) { + const p = this.getValidItems()[a]; + p && this.setValue(p.getAttribute(sl) ?? ""); + } + updateSelectedByItem(a) { + const p = jr(this, fr, ws).call(this), + y = this.getValidItems(), + M = y.findIndex((T) => T === p); + let z = y[M + a]; + this.opts.loop.current && + (z = M + a < 0 ? y[y.length - 1] : M + a === y.length ? y[0] : y[M + a]), + z && this.setValue(z.getAttribute(sl) ?? ""); + } + updateSelectedByGroup(a) { + const p = jr(this, fr, ws).call(this); + let y = p == null ? void 0 : p.closest(pc), + M; + for (; y && !M; ) + (y = a > 0 ? Xk(y, pc) : Yk(y, pc)), + (M = y == null ? void 0 : y.querySelector(Ff)); + M ? this.setValue(M.getAttribute(sl) ?? "") : this.updateSelectedByItem(a); + } + registerValue(a, p) { + var y; + return ( + (a && a === ((y = this.allIds.get(a)) == null ? void 0 : y.value)) || + this.allIds.set(a, { value: a, keywords: p }), + this._commandState.filtered.items.set( + a, + jr(this, fr, am).call(this, a, p) + ), + this.sortAfterTick || + ((this.sortAfterTick = !0), + dc(() => { + jr(this, fr, Jd).call(this), (this.sortAfterTick = !1); + })), + () => { + this.allIds.delete(a); + } + ); + } + registerItem(a, p) { + return ( + this.allItems.add(a), + p && + (this.allGroups.has(p) + ? this.allGroups.get(p).add(a) + : this.allGroups.set(p, new Set([a]))), + this.sortAndFilterAfterTick || + ((this.sortAndFilterAfterTick = !0), + dc(() => { + jr(this, fr, ep).call(this), + jr(this, fr, Jd).call(this), + (this.sortAndFilterAfterTick = !1); + })), + jr(this, fr, Kd).call(this), + () => { + const y = jr(this, fr, ws).call(this); + this.allIds.delete(a), + this.allItems.delete(a), + this.commandState.filtered.items.delete(a), + jr(this, fr, ep).call(this), + (y == null ? void 0 : y.getAttribute("id")) === a && + jr(this, fr, Qd).call(this), + jr(this, fr, Kd).call(this); + } + ); + } + registerGroup(a) { + return ( + this.allGroups.has(a) || this.allGroups.set(a, new Set()), + () => { + this.allIds.delete(a), this.allGroups.delete(a); + } + ); + } + get isGrid() { + return this.opts.columns.current !== null; + } + onkeydown(a) { + const p = this.opts.vimBindings.current && a.ctrlKey; + switch (a.key) { + case qk: + case Zk: { + p && + (this.isGrid + ? jr(this, fr, sm).call(this, a) + : jr(this, fr, Du).call(this, a)); + break; + } + case Gk: { + p && this.isGrid && jr(this, fr, Du).call(this, a); + break; + } + case Dk: + this.isGrid + ? jr(this, fr, sm).call(this, a) + : jr(this, fr, Du).call(this, a); + break; + case Bk: + if (!this.isGrid) break; + jr(this, fr, Du).call(this, a); + break; + case Vk: + case Uk: { + p && + (this.isGrid + ? jr(this, fr, um).call(this, a) + : jr(this, fr, Fu).call(this, a)); + break; + } + case $k: { + p && this.isGrid && jr(this, fr, Fu).call(this, a); + break; + } + case Fk: + this.isGrid + ? jr(this, fr, um).call(this, a) + : jr(this, fr, Fu).call(this, a); + break; + case Rk: + if (!this.isGrid) break; + jr(this, fr, Fu).call(this, a); + break; + case jk: + a.preventDefault(), this.updateSelectedToIndex(0); + break; + case Ok: + a.preventDefault(), jr(this, fr, om).call(this); + break; + case Nk: + if (!a.isComposing && a.keyCode !== 229) { + a.preventDefault(); + const y = jr(this, fr, ws).call(this); + y && (y == null || y.click()); + } + } + } + get props() { + return x(ot(this, sh)); + } + set props(a) { + se(ot(this, sh), a); + } +}; +(Sc = new WeakMap()), + (eh = new WeakMap()), + (th = new WeakMap()), + (rh = new WeakMap()), + (nh = new WeakMap()), + (ih = new WeakMap()), + (ah = new WeakMap()), + (oh = new WeakMap()), + (fr = new WeakSet()), + (_0 = function () { + return Hx(this._commandState); + }), + (Kd = function () { + ot(this, Sc) || + (na(this, Sc, !0), + dc(() => { + var y, M; + na(this, Sc, !1); + const a = jr(this, fr, _0).call(this); + !Object.is(this.commandState, a) && + ((this.commandState = a), + (M = (y = this.opts.onStateChange) == null ? void 0 : y.current) == + null || M.call(y, a)); + })); + }), + (am = function (a, p) { + const y = this.opts.filter.current ?? T0; + return a ? y(a, this._commandState.search, p) : 0; + }), + (Jd = function () { + var T; + if (!this._commandState.search || this.opts.shouldFilter.current === !1) { + jr(this, fr, Qd).call(this); + return; + } + const a = this._commandState.filtered.items, + p = []; + for (const s of this._commandState.filtered.groups) { + const B = this.allGroups.get(s); + let O = 0; + if (!B) { + p.push([s, O]); + continue; + } + for (const X of B) { + const K = a.get(X); + O = Math.max(K ?? 0, O); + } + p.push([s, O]); + } + const y = this.viewportNode, + M = this.getValidItems().sort((s, B) => { + const O = s.getAttribute("data-value"), + X = B.getAttribute("data-value"), + K = a.get(O) ?? 0; + return (a.get(X) ?? 0) - K; + }); + for (const s of M) { + const B = s.closest(Bf); + if (B) { + const O = s.parentElement === B ? s : s.closest(`${Bf} > *`); + O && B.appendChild(O); + } else { + const O = s.parentElement === y ? s : s.closest(`${Bf} > *`); + O && (y == null || y.appendChild(O)); + } + } + const z = p.sort((s, B) => B[1] - s[1]); + for (const s of z) { + const B = + y == null ? void 0 : y.querySelector(`${pc}[${sl}="${f0(s[0])}"]`); + (T = B == null ? void 0 : B.parentElement) == null || T.appendChild(B); + } + jr(this, fr, Qd).call(this); + }), + (Qd = function () { + dc(() => { + const a = this.getValidItems().find( + (M) => M.getAttribute("aria-disabled") !== "true" + ), + p = a == null ? void 0 : a.getAttribute(sl), + y = ot(this, eh) && this.opts.disableInitialScroll.current; + this.setValue(p ?? "", y), na(this, eh, !1); + }); + }), + (ep = function () { + var p, y; + if (!this._commandState.search || this.opts.shouldFilter.current === !1) { + this._commandState.filtered.count = this.allItems.size; + return; + } + this._commandState.filtered.groups = new Set(); + let a = 0; + for (const M of this.allItems) { + const z = ((p = this.allIds.get(M)) == null ? void 0 : p.value) ?? "", + T = ((y = this.allIds.get(M)) == null ? void 0 : y.keywords) ?? [], + s = jr(this, fr, am).call(this, z, T); + this._commandState.filtered.items.set(M, s), s > 0 && a++; + } + for (const [M, z] of this.allGroups) + for (const T of z) { + const s = this._commandState.filtered.items.get(T); + if (s && s > 0) { + this._commandState.filtered.groups.add(M); + break; + } + } + this._commandState.filtered.count = a; + }), + (ws = function () { + const a = this.opts.ref.current; + if (!a) return; + const p = a.querySelector(`${Ff}[data-selected]`); + if (p) return p; + }), + (g0 = function () { + dc(() => { + var y, M, z, T, s; + const a = jr(this, fr, ws).call(this); + if (!a) return; + const p = (y = a.parentElement) == null ? void 0 : y.parentElement; + if (p) { + if (this.isGrid) { + const B = jr(this, fr, v0).call(this, a); + if ((a.scrollIntoView({ block: "nearest" }), B)) { + const O = + (M = a == null ? void 0 : a.closest(pc)) == null + ? void 0 + : M.querySelector(iv); + O == null || O.scrollIntoView({ block: "nearest" }); + return; + } + } else { + const B = Hk(p); + if ( + B && + ((z = B.dataset) == null ? void 0 : z.value) === + ((T = a.dataset) == null ? void 0 : T.value) + ) { + const O = + (s = a == null ? void 0 : a.closest(pc)) == null + ? void 0 + : s.querySelector(iv); + O == null || O.scrollIntoView({ block: "nearest" }); + return; + } + } + a.scrollIntoView({ block: "nearest" }); + } + }); + }), + (v0 = function (a) { + const p = this.itemsGrid; + if (p.length === 0) return !1; + for (let y = 0; y < p.length; y++) { + const M = p[y]; + if (M !== void 0) + for (let z = 0; z < M.length; z++) { + const T = M[z]; + if (!(T === void 0 || T.ref !== a)) return T.firstRowOfGroup; + } + } + return !1; + }), + (om = function () { + return this.updateSelectedToIndex(this.getValidItems().length - 1); + }), + (Du = function (a) { + a.preventDefault(), + a.metaKey + ? jr(this, fr, om).call(this) + : a.altKey + ? this.updateSelectedByGroup(1) + : this.updateSelectedByItem(1); + }), + (sm = function (a) { + this.opts.columns.current !== null && + (a.preventDefault(), + a.metaKey + ? this.updateSelectedByGroup(1) + : this.updateSelectedByItem(jr(this, fr, y0).call(this, a))); + }), + (lm = function (a, p) { + if (p.length === 0) return null; + for (let y = 0; y < p.length; y++) { + const M = p[y]; + if (M !== void 0) + for (let z = 0; z < M.length; z++) { + const T = M[z]; + if (!(T === void 0 || T.ref !== a)) + return { columnIndex: z, rowIndex: y }; + } + } + return null; + }), + (y0 = function (a) { + const p = this.itemsGrid, + y = jr(this, fr, ws).call(this); + if (!y) return 0; + const M = jr(this, fr, lm).call(this, y, p); + if (!M) return 0; + let z = null; + const T = a.altKey ? 1 : 0; + if (a.altKey && M.rowIndex === p.length - 2 && !this.opts.loop.current) + z = jr(this, fr, Ru).call(this, { + start: p.length - 1, + end: p.length, + expectedColumnIndex: M.columnIndex, + grid: p, + }); + else if (M.rowIndex === p.length - 1) { + if (!this.opts.loop.current) return 0; + z = jr(this, fr, Ru).call(this, { + start: 0 + T, + end: M.rowIndex, + expectedColumnIndex: M.columnIndex, + grid: p, + }); + } else + (z = jr(this, fr, Ru).call(this, { + start: M.rowIndex + 1 + T, + end: p.length, + expectedColumnIndex: M.columnIndex, + grid: p, + })), + z === null && + this.opts.loop.current && + (z = jr(this, fr, Ru).call(this, { + start: 0, + end: M.rowIndex, + expectedColumnIndex: M.columnIndex, + grid: p, + })); + return jr(this, fr, cm).call(this, y, z); + }), + (Ru = function ({ start: a, end: p, grid: y, expectedColumnIndex: M }) { + var T; + let z = null; + for (let s = a; s < p; s++) { + const B = y[s]; + if ( + ((z = ((T = B[M]) == null ? void 0 : T.ref) ?? null), + z !== null && Ud(z)) + ) { + z = null; + continue; + } + if (z === null) + for (let O = B.length - 1; O >= 0; O--) { + const X = B[B.length - 1]; + if (!(X === void 0 || Ud(X.ref))) { + z = X.ref; + break; + } + } + break; + } + return z; + }), + (cm = function (a, p) { + if (p === null) return 0; + const y = this.getValidItems(), + M = y.findIndex((T) => T === a); + return y.findIndex((T) => T === p) - M; + }), + (um = function (a) { + this.opts.columns.current !== null && + (a.preventDefault(), + a.metaKey + ? this.updateSelectedByGroup(-1) + : this.updateSelectedByItem(jr(this, fr, x0).call(this, a))); + }), + (x0 = function (a) { + const p = this.itemsGrid, + y = jr(this, fr, ws).call(this); + if (y === void 0) return 0; + const M = jr(this, fr, lm).call(this, y, p); + if (M === null) return 0; + let z = null; + const T = a.altKey ? 1 : 0; + if (a.altKey && M.rowIndex === 1 && this.opts.loop.current === !1) + z = jr(this, fr, Bu).call(this, { + start: 0, + end: 0, + expectedColumnIndex: M.columnIndex, + grid: p, + }); + else if (M.rowIndex === 0) { + if (this.opts.loop.current === !1) return 0; + z = jr(this, fr, Bu).call(this, { + start: p.length - 1 - T, + end: M.rowIndex + 1, + expectedColumnIndex: M.columnIndex, + grid: p, + }); + } else + (z = jr(this, fr, Bu).call(this, { + start: M.rowIndex - 1 - T, + end: 0, + expectedColumnIndex: M.columnIndex, + grid: p, + })), + z === null && + this.opts.loop.current && + (z = jr(this, fr, Bu).call(this, { + start: p.length - 1, + end: M.rowIndex + 1, + expectedColumnIndex: M.columnIndex, + grid: p, + })); + return jr(this, fr, cm).call(this, y, z); + }), + (Bu = function ({ start: a, end: p, grid: y, expectedColumnIndex: M }) { + var T; + let z = null; + for (let s = a; s >= p; s--) { + const B = y[s]; + if (B !== void 0) { + if ( + ((z = ((T = B[M]) == null ? void 0 : T.ref) ?? null), + z !== null && Ud(z)) + ) { + z = null; + continue; + } + if (z === null) + for (let O = B.length - 1; O >= 0; O--) { + const X = B[B.length - 1]; + if (!(X === void 0 || Ud(X.ref))) { + z = X.ref; + break; + } + } + break; + } + } + return z; + }), + (Fu = function (a) { + a.preventDefault(), + a.metaKey + ? this.updateSelectedToIndex(0) + : a.altKey + ? this.updateSelectedByGroup(-1) + : this.updateSelectedByItem(-1); + }), + (sh = new WeakMap()); +let im = e_; +function Ud(m) { + return m.getAttribute("aria-disabled") === "true"; +} +var lh, ch, uh; +const t_ = class t_ { + constructor(a, p) { + xr(this, "opts"); + xr(this, "root"); + xr(this, "attachment"); + Ar( + this, + lh, + ft( + () => + (this.root._commandState.filtered.count === 0 && + ot(this, ch) === !1) || + this.opts.forceMount.current + ) + ); + Ar(this, ch, !0); + Ar( + this, + uh, + ft(() => ({ + id: this.opts.id.current, + role: "presentation", + [wa.empty]: "", + ...this.attachment, + })) + ); + (this.opts = a), + (this.root = p), + (this.attachment = Xa(this.opts.ref)), + Mm(() => { + na(this, ch, !1); + }); + } + static create(a) { + return new t_(a, ml.get()); + } + get shouldRender() { + return x(ot(this, lh)); + } + set shouldRender(a) { + se(ot(this, lh), a); + } + get props() { + return x(ot(this, uh)); + } + set props(a) { + se(ot(this, uh), a); + } +}; +(lh = new WeakMap()), (ch = new WeakMap()), (uh = new WeakMap()); +let hm = t_; +var hh, dh, ph, fh; +const r_ = class r_ { + constructor(a, p) { + xr(this, "opts"); + xr(this, "root"); + xr(this, "attachment"); + Ar( + this, + hh, + ft(() => + this.opts.forceMount.current || + this.root.opts.shouldFilter.current === !1 || + !this.root.commandState.search + ? !0 + : this.root._commandState.filtered.groups.has(this.trueValue) + ) + ); + Ar(this, dh, st(null)); + Ar(this, ph, st("")); + Ar( + this, + fh, + ft(() => ({ + id: this.opts.id.current, + role: "presentation", + hidden: this.shouldRender ? void 0 : !0, + "data-value": this.trueValue, + [wa.group]: "", + ...this.attachment, + })) + ); + (this.opts = a), + (this.root = p), + (this.attachment = Xa(this.opts.ref)), + (this.trueValue = a.value.current ?? a.id.current), + Ps( + () => this.trueValue, + () => this.root.registerGroup(this.trueValue) + ), + Wr(() => + this.opts.value.current + ? ((this.trueValue = this.opts.value.current), + this.root.registerValue(this.opts.value.current)) + : this.headingNode && this.headingNode.textContent + ? ((this.trueValue = this.headingNode.textContent + .trim() + .toLowerCase()), + this.root.registerValue(this.trueValue)) + : ((this.trueValue = `-----${this.opts.id.current}`), + this.root.registerValue(this.trueValue)) + ); + } + static create(a) { + return Zu.set(new r_(a, ml.get())); + } + get shouldRender() { + return x(ot(this, hh)); + } + set shouldRender(a) { + se(ot(this, hh), a); + } + get headingNode() { + return x(ot(this, dh)); + } + set headingNode(a) { + se(ot(this, dh), a, !0); + } + get trueValue() { + return x(ot(this, ph)); + } + set trueValue(a) { + se(ot(this, ph), a, !0); + } + get props() { + return x(ot(this, fh)); + } + set props(a) { + se(ot(this, fh), a); + } +}; +(hh = new WeakMap()), + (dh = new WeakMap()), + (ph = new WeakMap()), + (fh = new WeakMap()); +let dm = r_; +var mh; +const n_ = class n_ { + constructor(a, p) { + xr(this, "opts"); + xr(this, "group"); + xr(this, "attachment"); + Ar( + this, + mh, + ft(() => ({ + id: this.opts.id.current, + [wa["group-heading"]]: "", + ...this.attachment, + })) + ); + (this.opts = a), + (this.group = p), + (this.attachment = Xa( + this.opts.ref, + (y) => (this.group.headingNode = y) + )); + } + static create(a) { + return new n_(a, Zu.get()); + } + get props() { + return x(ot(this, mh)); + } + set props(a) { + se(ot(this, mh), a); + } +}; +mh = new WeakMap(); +let pm = n_; +var _h; +const i_ = class i_ { + constructor(a, p) { + xr(this, "opts"); + xr(this, "group"); + xr(this, "attachment"); + Ar( + this, + _h, + ft(() => { + var a; + return { + id: this.opts.id.current, + role: "group", + [wa["group-items"]]: "", + "aria-labelledby": + ((a = this.group.headingNode) == null ? void 0 : a.id) ?? void 0, + ...this.attachment, + }; + }) + ); + (this.opts = a), (this.group = p), (this.attachment = Xa(this.opts.ref)); + } + static create(a) { + return new i_(a, Zu.get()); + } + get props() { + return x(ot(this, _h)); + } + set props(a) { + se(ot(this, _h), a); + } +}; +_h = new WeakMap(); +let fm = i_; +var ap, gh; +const a_ = class a_ { + constructor(a, p) { + xr(this, "opts"); + xr(this, "root"); + xr(this, "attachment"); + Ar( + this, + ap, + ft(() => { + var p; + const a = + (p = this.root.viewportNode) == null + ? void 0 + : p.querySelector( + `${m0}[${sl}="${f0(this.root.opts.value.current)}"]` + ); + if (a != null) return a.getAttribute("id") ?? void 0; + }) + ); + Ar( + this, + gh, + ft(() => { + var a, p; + return { + id: this.opts.id.current, + type: "text", + [wa.input]: "", + autocomplete: "off", + autocorrect: "off", + spellcheck: !1, + "aria-autocomplete": "list", + role: "combobox", + "aria-expanded": Mk(!0), + "aria-controls": + ((a = this.root.viewportNode) == null ? void 0 : a.id) ?? void 0, + "aria-labelledby": + ((p = this.root.labelNode) == null ? void 0 : p.id) ?? void 0, + "aria-activedescendant": x(ot(this, ap)), + ...this.attachment, + }; + }) + ); + (this.opts = a), + (this.root = p), + (this.attachment = Xa(this.opts.ref, (y) => (this.root.inputNode = y))), + Ps( + () => this.opts.ref.current, + () => { + const y = this.opts.ref.current; + y && this.opts.autofocus.current && _k(10, () => y.focus()); + } + ), + Ps( + () => this.opts.value.current, + () => { + this.root.commandState.search !== this.opts.value.current && + this.root.setState("search", this.opts.value.current); + } + ); + } + static create(a) { + return new a_(a, ml.get()); + } + get props() { + return x(ot(this, gh)); + } + set props(a) { + se(ot(this, gh), a); + } +}; +(ap = new WeakMap()), (gh = new WeakMap()); +let mm = a_; +var Ts, op, vh, yh, xh, pl, b0, gm, bh; +const o_ = class o_ { + constructor(a, p) { + Ar(this, pl); + xr(this, "opts"); + xr(this, "root"); + xr(this, "attachment"); + Ar(this, Ts, null); + Ar( + this, + op, + ft(() => { + var a; + return ( + this.opts.forceMount.current || + ((a = ot(this, Ts)) == null ? void 0 : a.opts.forceMount.current) === + !0 + ); + }) + ); + Ar( + this, + vh, + ft(() => { + if ( + (this.opts.ref.current, + x(ot(this, op)) || + this.root.opts.shouldFilter.current === !1 || + !this.root.commandState.search) + ) + return !0; + const a = this.root.commandState.filtered.items.get(this.trueValue); + return a === void 0 ? !1 : a > 0; + }) + ); + Ar( + this, + yh, + ft( + () => + this.root.opts.value.current === this.trueValue && + this.trueValue !== "" + ) + ); + Ar(this, xh, st("")); + Ar( + this, + bh, + ft(() => { + var a; + return { + id: this.opts.id.current, + "aria-disabled": Ik(this.opts.disabled.current), + "aria-selected": Ak(this.isSelected), + "data-disabled": kk(this.opts.disabled.current), + "data-selected": Ek(this.isSelected), + "data-value": this.trueValue, + "data-group": (a = ot(this, Ts)) == null ? void 0 : a.trueValue, + [wa.item]: "", + role: "option", + onpointermove: this.onpointermove, + onclick: this.onclick, + ...this.attachment, + }; + }) + ); + (this.opts = a), + (this.root = p), + na(this, Ts, Zu.getOr(null)), + (this.trueValue = a.value.current), + (this.attachment = Xa(this.opts.ref)), + Ps( + [ + () => this.trueValue, + () => { + var y; + return (y = ot(this, Ts)) == null ? void 0 : y.trueValue; + }, + () => this.opts.forceMount.current, + ], + () => { + var y; + if (!this.opts.forceMount.current) + return this.root.registerItem( + this.trueValue, + (y = ot(this, Ts)) == null ? void 0 : y.trueValue + ); + } + ), + Ps([() => this.opts.value.current, () => this.opts.ref.current], () => { + var y, M; + !this.opts.value.current && + (y = this.opts.ref.current) != null && + y.textContent && + (this.trueValue = this.opts.ref.current.textContent.trim()), + this.root.registerValue( + this.trueValue, + a.keywords.current.map((z) => z.trim()) + ), + (M = this.opts.ref.current) == null || + M.setAttribute(sl, this.trueValue); + }), + (this.onclick = this.onclick.bind(this)), + (this.onpointermove = this.onpointermove.bind(this)); + } + static create(a) { + const p = Zu.getOr(null); + return new o_({ ...a, group: p }, ml.get()); + } + get shouldRender() { + return x(ot(this, vh)); + } + set shouldRender(a) { + se(ot(this, vh), a); + } + get isSelected() { + return x(ot(this, yh)); + } + set isSelected(a) { + se(ot(this, yh), a); + } + get trueValue() { + return x(ot(this, xh)); + } + set trueValue(a) { + se(ot(this, xh), a, !0); + } + onpointermove(a) { + this.opts.disabled.current || + this.root.opts.disablePointerSelection.current || + jr(this, pl, gm).call(this); + } + onclick(a) { + this.opts.disabled.current || jr(this, pl, b0).call(this); + } + get props() { + return x(ot(this, bh)); + } + set props(a) { + se(ot(this, bh), a); + } +}; +(Ts = new WeakMap()), + (op = new WeakMap()), + (vh = new WeakMap()), + (yh = new WeakMap()), + (xh = new WeakMap()), + (pl = new WeakSet()), + (b0 = function () { + var a; + this.opts.disabled.current || + (jr(this, pl, gm).call(this), + (a = this.opts.onSelect) == null || a.current()); + }), + (gm = function () { + this.opts.disabled.current || this.root.setValue(this.trueValue, !0); + }), + (bh = new WeakMap()); +let _m = o_; +var wh; +const s_ = class s_ { + constructor(a, p) { + xr(this, "opts"); + xr(this, "root"); + xr(this, "attachment"); + Ar( + this, + wh, + ft(() => ({ + id: this.opts.id.current, + role: "listbox", + "aria-label": this.opts.ariaLabel.current, + [wa.list]: "", + ...this.attachment, + })) + ); + (this.opts = a), (this.root = p), (this.attachment = Xa(this.opts.ref)); + } + static create(a) { + return Kk.set(new s_(a, ml.get())); + } + get props() { + return x(ot(this, wh)); + } + set props(a) { + se(ot(this, wh), a); + } +}; +wh = new WeakMap(); +let vm = s_; +var Th; +const l_ = class l_ { + constructor(a, p) { + xr(this, "opts"); + xr(this, "root"); + xr(this, "attachment"); + Ar( + this, + Th, + ft(() => { + var a; + return { + id: this.opts.id.current, + [wa["input-label"]]: "", + for: (a = this.opts.for) == null ? void 0 : a.current, + style: c0, + ...this.attachment, + }; + }) + ); + (this.opts = a), + (this.root = p), + (this.attachment = Xa(this.opts.ref, (y) => (this.root.labelNode = y))); + } + static create(a) { + return new l_(a, ml.get()); + } + get props() { + return x(ot(this, Th)); + } + set props(a) { + se(ot(this, Th), a); + } +}; +Th = new WeakMap(); +let ym = l_; +var Jk = Te(""); +function Qk(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = nr(a, ["$$slots", "$$events", "$$legacy", "id", "ref", "children"]); + const T = ym.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (X) => M(X) + ), + }), + s = ft(() => Va(z, T.props)); + var B = Jk(); + ar(B, () => ({ ...x(s) })); + var O = A(B); + oi(O, () => a.children ?? pa), k(B), $(m, B), Dr(); +} +var eA = Te(" ", 1), + tA = Te("
                  "); +function rA(m, a) { + const p = uo(); + Lr(a, !0); + const y = (nt) => { + Qk(nt, { + children: (Ue, ke) => { + yn(); + var vt = wi(); + We(() => de(vt, ne())), $(Ue, vt); + }, + $$slots: { default: !0 }, + }); + }; + let M = zt(a, "id", 19, () => Ya(p)), + z = zt(a, "ref", 15, null), + T = zt(a, "value", 15, ""), + s = zt(a, "onValueChange", 3, qu), + B = zt(a, "onStateChange", 3, qu), + O = zt(a, "loop", 3, !1), + X = zt(a, "shouldFilter", 3, !0), + K = zt(a, "filter", 3, T0), + ne = zt(a, "label", 3, ""), + H = zt(a, "vimBindings", 3, !0), + fe = zt(a, "disablePointerSelection", 3, !1), + ge = zt(a, "disableInitialScroll", 3, !1), + Ie = zt(a, "columns", 3, null), + Ae = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "value", + "onValueChange", + "onStateChange", + "loop", + "shouldFilter", + "filter", + "label", + "vimBindings", + "disablePointerSelection", + "disableInitialScroll", + "columns", + "children", + "child", + ]); + const De = im.create({ + id: br.with(() => M()), + ref: br.with( + () => z(), + (nt) => z(nt) + ), + filter: br.with(() => K()), + shouldFilter: br.with(() => X()), + loop: br.with(() => O()), + value: br.with( + () => T(), + (nt) => { + T() !== nt && (T(nt), s()(nt)); + } + ), + vimBindings: br.with(() => H()), + disablePointerSelection: br.with(() => fe()), + disableInitialScroll: br.with(() => ge()), + onStateChange: br.with(() => B()), + columns: br.with(() => Ie()), + }), + Ee = (nt) => De.updateSelectedToIndex(nt), + Fe = (nt) => De.updateSelectedByGroup(nt), + $e = (nt) => De.updateSelectedByItem(nt), + Je = () => De.getValidItems(), + qe = ft(() => Va(Ae, De.props)); + var Ze = er(), + Qe = Ct(Ze); + { + var Le = (nt) => { + var Ue = eA(), + ke = Ct(Ue); + y(ke); + var vt = j(ke, 2); + oi( + vt, + () => a.child, + () => ({ props: x(qe) }) + ), + $(nt, Ue); + }, + et = (nt) => { + var Ue = tA(); + ar(Ue, () => ({ ...x(qe) })); + var ke = A(Ue); + y(ke); + var vt = j(ke, 2); + oi(vt, () => a.children ?? pa), k(Ue), $(nt, Ue); + }; + Oe(Qe, (nt) => { + a.child ? nt(Le) : nt(et, !1); + }); + } + return ( + $(m, Ze), + Dr({ + updateSelectedToIndex: Ee, + updateSelectedByGroup: Fe, + updateSelectedByItem: $e, + getValidItems: Je, + }) + ); +} +var nA = Te("
                  "); +function iA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = zt(a, "forceMount", 3, !1), + T = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "children", + "child", + "forceMount", + ]); + const s = hm.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (ne) => M(ne) + ), + forceMount: br.with(() => z()), + }), + B = ft(() => Va(s.props, T)); + var O = er(), + X = Ct(O); + { + var K = (ne) => { + var H = er(), + fe = Ct(H); + { + var ge = (Ae) => { + var De = er(), + Ee = Ct(De); + oi( + Ee, + () => a.child, + () => ({ props: x(B) }) + ), + $(Ae, De); + }, + Ie = (Ae) => { + var De = nA(); + ar(De, () => ({ ...x(B) })); + var Ee = A(De); + oi(Ee, () => a.children ?? pa), k(De), $(Ae, De); + }; + Oe(fe, (Ae) => { + a.child ? Ae(ge) : Ae(Ie, !1); + }); + } + $(ne, H); + }; + Oe(X, (ne) => { + s.shouldRender && ne(K); + }); + } + $(m, O), Dr(); +} +var aA = Te("
                  "); +function oA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = zt(a, "value", 3, ""), + T = zt(a, "forceMount", 3, !1), + s = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "value", + "forceMount", + "children", + "child", + ]); + const B = dm.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (fe) => M(fe) + ), + forceMount: br.with(() => T()), + value: br.with(() => z()), + }), + O = ft(() => Va(s, B.props)); + var X = er(), + K = Ct(X); + { + var ne = (fe) => { + var ge = er(), + Ie = Ct(ge); + oi( + Ie, + () => a.child, + () => ({ props: x(O) }) + ), + $(fe, ge); + }, + H = (fe) => { + var ge = aA(); + ar(ge, () => ({ ...x(O) })); + var Ie = A(ge); + oi(Ie, () => a.children ?? pa), k(ge), $(fe, ge); + }; + Oe(K, (fe) => { + a.child ? fe(ne) : fe(H, !1); + }); + } + $(m, X), Dr(); +} +var sA = Te("
                  "); +function lA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "children", + "child", + ]); + const T = pm.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (ne) => M(ne) + ), + }), + s = ft(() => Va(z, T.props)); + var B = er(), + O = Ct(B); + { + var X = (ne) => { + var H = er(), + fe = Ct(H); + oi( + fe, + () => a.child, + () => ({ props: x(s) }) + ), + $(ne, H); + }, + K = (ne) => { + var H = sA(); + ar(H, () => ({ ...x(s) })); + var fe = A(H); + oi(fe, () => a.children ?? pa), k(H), $(ne, H); + }; + Oe(O, (ne) => { + a.child ? ne(X) : ne(K, !1); + }); + } + $(m, B), Dr(); +} +var cA = Te("
                  "), + uA = Te('
                  '); +function hA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "children", + "child", + ]); + const T = fm.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (ne) => M(ne) + ), + }), + s = ft(() => Va(z, T.props)); + var B = uA(), + O = A(B); + { + var X = (ne) => { + var H = er(), + fe = Ct(H); + oi( + fe, + () => a.child, + () => ({ props: x(s) }) + ), + $(ne, H); + }, + K = (ne) => { + var H = cA(); + ar(H, () => ({ ...x(s) })); + var fe = A(H); + oi(fe, () => a.children ?? pa), k(H), $(ne, H); + }; + Oe(O, (ne) => { + a.child ? ne(X) : ne(K, !1); + }); + } + k(B), $(m, B), Dr(); +} +var dA = Te(""); +function pA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "value", 15, ""), + M = zt(a, "autofocus", 3, !1), + z = zt(a, "id", 19, () => Ya(p)), + T = zt(a, "ref", 15, null), + s = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "value", + "autofocus", + "id", + "ref", + "child", + ]); + const B = mm.create({ + id: br.with(() => z()), + ref: br.with( + () => T(), + (fe) => T(fe) + ), + value: br.with( + () => y(), + (fe) => { + y(fe); + } + ), + autofocus: br.with(() => M() ?? !1), + }), + O = ft(() => Va(s, B.props)); + var X = er(), + K = Ct(X); + { + var ne = (fe) => { + var ge = er(), + Ie = Ct(ge); + oi( + Ie, + () => a.child, + () => ({ props: x(O) }) + ), + $(fe, ge); + }, + H = (fe) => { + var ge = dA(); + Ka(ge), ar(ge, () => ({ ...x(O) })), dp(ge, y), $(fe, ge); + }; + Oe(K, (fe) => { + a.child ? fe(ne) : fe(H, !1); + }); + } + $(m, X), Dr(); +} +var fA = Te("
                  "), + mA = Te('
                  '); +function _A(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = zt(a, "value", 3, ""), + T = zt(a, "disabled", 3, !1), + s = zt(a, "onSelect", 3, qu), + B = zt(a, "forceMount", 3, !1), + O = zt(a, "keywords", 19, () => []), + X = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "value", + "disabled", + "children", + "child", + "onSelect", + "forceMount", + "keywords", + ]); + const K = _m.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (ge) => M(ge) + ), + value: br.with(() => z()), + disabled: br.with(() => T()), + onSelect: br.with(() => s()), + forceMount: br.with(() => B()), + keywords: br.with(() => O()), + }), + ne = ft(() => Va(X, K.props)); + var H = er(), + fe = Ct(H); + ju( + fe, + () => K.root.key, + (ge) => { + var Ie = mA(), + Ae = A(Ie); + { + var De = (Ee) => { + var Fe = er(), + $e = Ct(Fe); + { + var Je = (Ze) => { + var Qe = er(), + Le = Ct(Qe); + oi( + Le, + () => a.child, + () => ({ props: x(ne) }) + ), + $(Ze, Qe); + }, + qe = (Ze) => { + var Qe = fA(); + ar(Qe, () => ({ ...x(ne) })); + var Le = A(Qe); + oi(Le, () => a.children ?? pa), k(Qe), $(Ze, Qe); + }; + Oe($e, (Ze) => { + a.child ? Ze(Je) : Ze(qe, !1); + }); + } + $(Ee, Fe); + }; + Oe(Ae, (Ee) => { + K.shouldRender && Ee(De); + }); + } + k(Ie), We(() => Tr(Ie, "data-value", K.trueValue)), $(ge, Ie); + } + ), + $(m, H), + Dr(); +} +var gA = Te("
                  "); +function vA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "child", + "children", + "aria-label", + ]); + const T = vm.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (X) => M(X) + ), + ariaLabel: br.with(() => a["aria-label"] ?? "Suggestions..."), + }), + s = ft(() => Va(z, T.props)); + var B = er(), + O = Ct(B); + ju( + O, + () => T.root._commandState.search === "", + (X) => { + var K = er(), + ne = Ct(K); + { + var H = (ge) => { + var Ie = er(), + Ae = Ct(Ie); + oi( + Ae, + () => a.child, + () => ({ props: x(s) }) + ), + $(ge, Ie); + }, + fe = (ge) => { + var Ie = gA(); + ar(Ie, () => ({ ...x(s) })); + var Ae = A(Ie); + oi(Ae, () => a.children ?? pa), k(Ie), $(ge, Ie); + }; + Oe(ne, (ge) => { + a.child ? ge(H) : ge(fe, !1); + }); + } + $(X, K); + } + ), + $(m, B), + Dr(); +} +const ov = 1, + yA = 0.9, + xA = 0.8, + bA = 0.17, + Of = 0.1, + Nf = 0.999, + wA = 0.9999, + TA = 0.99, + CA = /[\\/_+.#"@[({&]/, + SA = /[\\/_+.#"@[({&]/g, + PA = /[\s-]/, + w0 = /[\s-]/g; +function xm(m, a, p, y, M, z, T) { + if (z === a.length) return M === m.length ? ov : TA; + const s = `${M},${z}`; + if (T[s] !== void 0) return T[s]; + const B = y.charAt(z); + let O = p.indexOf(B, M), + X = 0, + K, + ne, + H, + fe; + for (; O >= 0; ) + (K = xm(m, a, p, y, O + 1, z + 1, T)), + K > X && + (O === M + ? (K *= ov) + : CA.test(m.charAt(O - 1)) + ? ((K *= xA), + (H = m.slice(M, O - 1).match(SA)), + H && M > 0 && (K *= Nf ** H.length)) + : PA.test(m.charAt(O - 1)) + ? ((K *= yA), + (fe = m.slice(M, O - 1).match(w0)), + fe && M > 0 && (K *= Nf ** fe.length)) + : ((K *= bA), M > 0 && (K *= Nf ** (O - M))), + m.charAt(O) !== a.charAt(z) && (K *= wA)), + ((K < Of && p.charAt(O - 1) === y.charAt(z + 1)) || + (y.charAt(z + 1) === y.charAt(z) && p.charAt(O - 1) !== y.charAt(z))) && + ((ne = xm(m, a, p, y, O + 1, z + 2, T)), ne * Of > K && (K = ne * Of)), + K > X && (X = K), + (O = p.indexOf(B, O + 1)); + return (T[s] = X), X; +} +function sv(m) { + return m.toLowerCase().replace(w0, " "); +} +function T0(m, a, p) { + return ( + (m = + p && p.length > 0 ? `${`${m} ${p == null ? void 0 : p.join(" ")}`}` : m), + xm(m, a, sv(m), sv(a), 0, 0, {}) + ); +} +const IA = 18, + C0 = 40, + MA = `${C0}px`, + kA = [ + "[data-lastpass-icon-root]", + "com-1password-button", + "[data-dashlanecreated]", + '[style$="2147483647 !important;"]', + ].join(","); +function AA({ + containerRef: m, + inputRef: a, + pushPasswordManagerStrategy: p, + isFocused: y, + domContext: M, +}) { + let z = st(!1), + T = st(!1), + s = st(!1); + function B() { + const X = p.current; + return X === "none" ? !1 : X === "increase-width" && x(z) && x(T); + } + function O() { + const X = m.current, + K = a.current; + if (!X || !K || x(s) || p.current === "none") return; + const ne = X, + H = ne.getBoundingClientRect().left + ne.offsetWidth, + fe = ne.getBoundingClientRect().top + ne.offsetHeight / 2, + ge = H - IA, + Ie = fe; + (M.querySelectorAll(kA).length === 0 && + M.getDocument().elementFromPoint(ge, Ie) === X) || + (se(z, !0), se(s, !0)); + } + return ( + Wr(() => { + const X = m.current; + if (!X || p.current === "none") return; + function K() { + const fe = d0(X).innerWidth - X.getBoundingClientRect().right; + se(T, fe >= C0); + } + K(); + const ne = setInterval(K, 1e3); + return () => { + clearInterval(ne); + }; + }), + Wr(() => { + const X = y.current || M.getActiveElement() === a.current; + if (p.current === "none" || !X) return; + const K = setTimeout(O, 0), + ne = setTimeout(O, 2e3), + H = setTimeout(O, 5e3), + fe = setTimeout(() => { + se(s, !0); + }, 6e3); + return () => { + clearTimeout(K), clearTimeout(ne), clearTimeout(H), clearTimeout(fe); + }; + }), + { + get hasPwmBadge() { + return x(z); + }, + get willPushPwmBadge() { + return B(); + }, + PWM_BADGE_SPACE_WIDTH: MA, + } + ); +} +const S0 = p0({ component: "pin-input", parts: ["root", "cell"] }), + EA = [ + "Backspace", + "Delete", + "ArrowLeft", + "ArrowRight", + "ArrowUp", + "ArrowDown", + "Home", + "End", + "Escape", + "Enter", + "Tab", + "Shift", + "Control", + "Meta", + ]; +var Ha, + Pc, + Wo, + ja, + Wa, + Ic, + To, + Xo, + Cs, + Mc, + sp, + Ch, + Sh, + lp, + cp, + P0, + Ph, + Ih, + up, + Mh; +const c_ = class c_ { + constructor(a) { + Ar(this, cp); + xr(this, "opts"); + xr(this, "attachment"); + Ar(this, Ha, br(null)); + Ar(this, Pc, st(!1)); + xr(this, "inputAttachment", Xa(ot(this, Ha))); + Ar(this, Wo, br(!1)); + Ar(this, ja, st(null)); + Ar(this, Wa, st(null)); + Ar(this, Ic, new mk(() => this.opts.value.current ?? "")); + Ar( + this, + To, + ft(() => + typeof this.opts.pattern.current == "string" + ? new RegExp(this.opts.pattern.current) + : this.opts.pattern.current + ) + ); + Ar(this, Xo, st(bi({ prev: [null, null, "none"], willSyntheticBlur: !1 }))); + Ar(this, Cs); + Ar(this, Mc); + xr(this, "domContext"); + xr(this, "onkeydown", (a) => { + const p = a.key; + EA.includes(p) || + a.ctrlKey || + a.metaKey || + (p && + x(ot(this, To)) && + !x(ot(this, To)).test(p) && + a.preventDefault()); + }); + Ar( + this, + sp, + ft(() => ({ + position: "relative", + cursor: this.opts.disabled.current ? "default" : "text", + userSelect: "none", + WebkitUserSelect: "none", + pointerEvents: "none", + })) + ); + Ar( + this, + Ch, + ft(() => ({ + id: this.opts.id.current, + [S0.root]: "", + style: x(ot(this, sp)), + ...this.attachment, + })) + ); + Ar( + this, + Sh, + ft(() => ({ + style: { position: "absolute", inset: 0, pointerEvents: "none" }, + })) + ); + Ar( + this, + lp, + ft(() => ({ + position: "absolute", + inset: 0, + width: ot(this, Cs).willPushPwmBadge + ? `calc(100% + ${ot(this, Cs).PWM_BADGE_SPACE_WIDTH})` + : "100%", + clipPath: ot(this, Cs).willPushPwmBadge + ? `inset(0 ${ot(this, Cs).PWM_BADGE_SPACE_WIDTH} 0 0)` + : void 0, + height: "100%", + display: "flex", + textAlign: this.opts.textAlign.current, + opacity: "1", + color: "transparent", + pointerEvents: "all", + background: "transparent", + caretColor: "transparent", + border: "0 solid transparent", + outline: "0 solid transparent", + boxShadow: "none", + lineHeight: "1", + letterSpacing: "-.5em", + fontSize: "var(--bits-pin-input-root-height)", + fontFamily: "monospace", + fontVariantNumeric: "tabular-nums", + })) + ); + Ar(this, Ph, () => { + var ge; + const a = ot(this, Ha).current, + p = this.opts.ref.current; + if (!a || !p) return; + if (this.domContext.getActiveElement() !== a) { + se(ot(this, ja), null), se(ot(this, Wa), null); + return; + } + const y = a.selectionStart, + M = a.selectionEnd, + z = a.selectionDirection ?? "none", + T = a.maxLength, + s = a.value, + B = x(ot(this, Xo)).prev; + let O = -1, + X = -1, + K; + if (s.length !== 0 && y !== null && M !== null) { + const Ie = y === M, + Ae = y === s.length && s.length < T; + if (Ie && !Ae) { + const De = y; + if (De === 0) (O = 0), (X = 1), (K = "forward"); + else if (De === T) (O = De - 1), (X = De), (K = "backward"); + else if (T > 1 && s.length > 1) { + let Ee = 0; + if (B[0] !== null && B[1] !== null) { + K = De < B[0] ? "backward" : "forward"; + const Fe = B[0] === B[1] && B[0] < T; + K === "backward" && !Fe && (Ee = -1); + } + (O = Ee - De), (X = Ee + De + 1); + } + } + O !== -1 && + X !== -1 && + O !== X && + ((ge = ot(this, Ha).current) == null || + ge.setSelectionRange(O, X, K)); + } + const ne = O !== -1 ? O : y, + H = X !== -1 ? X : M, + fe = K ?? z; + se(ot(this, ja), ne, !0), + se(ot(this, Wa), H, !0), + (x(ot(this, Xo)).prev = [ne, H, fe]); + }); + xr(this, "oninput", (a) => { + const p = a.currentTarget.value.slice(0, this.opts.maxLength.current); + if (p.length > 0 && x(ot(this, To)) && !x(ot(this, To)).test(p)) { + a.preventDefault(); + return; + } + typeof ot(this, Ic).current == "string" && + p.length < ot(this, Ic).current.length && + this.domContext + .getDocument() + .dispatchEvent(new Event("selectionchange")), + (this.opts.value.current = p); + }); + xr(this, "onfocus", (a) => { + const p = ot(this, Ha).current; + if (p) { + const y = Math.min(p.value.length, this.opts.maxLength.current - 1), + M = p.value.length; + p.setSelectionRange(y, M), + se(ot(this, ja), y, !0), + se(ot(this, Wa), M, !0); + } + ot(this, Wo).current = !0; + }); + xr(this, "onpaste", (a) => { + var X, K, ne, H; + const p = ot(this, Ha).current; + if (!p) return; + const y = (fe) => { + const ge = p.selectionStart === null ? void 0 : p.selectionStart, + Ie = p.selectionEnd === null ? void 0 : p.selectionEnd, + Ae = ge !== Ie, + De = this.opts.value.current; + return ( + Ae + ? De.slice(0, ge) + fe + De.slice(Ie) + : De.slice(0, ge) + fe + De.slice(ge) + ).slice(0, this.opts.maxLength.current); + }, + M = (fe) => + fe.length > 0 && x(ot(this, To)) && !x(ot(this, To)).test(fe); + if ( + !((X = this.opts.pasteTransformer) != null && X.current) && + (!ot(this, Mc).isIOS || !a.clipboardData || !p) + ) { + const fe = y( + (K = a.clipboardData) == null ? void 0 : K.getData("text/plain") + ); + M(fe) && a.preventDefault(); + return; + } + const z = + ((ne = a.clipboardData) == null + ? void 0 + : ne.getData("text/plain")) ?? "", + T = + (H = this.opts.pasteTransformer) != null && H.current + ? this.opts.pasteTransformer.current(z) + : z; + a.preventDefault(); + const s = y(T); + if (M(s)) return; + (p.value = s), (this.opts.value.current = s); + const B = Math.min(s.length, this.opts.maxLength.current - 1), + O = s.length; + p.setSelectionRange(B, O), + se(ot(this, ja), B, !0), + se(ot(this, Wa), O, !0); + }); + xr(this, "onmouseover", (a) => { + se(ot(this, Pc), !0); + }); + xr(this, "onmouseleave", (a) => { + se(ot(this, Pc), !1); + }); + xr(this, "onblur", (a) => { + if (x(ot(this, Xo)).willSyntheticBlur) { + x(ot(this, Xo)).willSyntheticBlur = !1; + return; + } + ot(this, Wo).current = !1; + }); + Ar( + this, + Ih, + ft(() => { + var a; + return { + id: this.opts.inputId.current, + style: x(ot(this, lp)), + autocomplete: this.opts.autocomplete.current || "one-time-code", + "data-pin-input-input": "", + "data-pin-input-input-mss": x(ot(this, ja)), + "data-pin-input-input-mse": x(ot(this, Wa)), + inputmode: this.opts.inputmode.current, + pattern: (a = x(ot(this, To))) == null ? void 0 : a.source, + maxlength: this.opts.maxLength.current, + value: this.opts.value.current, + disabled: zk(this.opts.disabled.current), + onpaste: this.onpaste, + oninput: this.oninput, + onkeydown: this.onkeydown, + onmouseover: this.onmouseover, + onmouseleave: this.onmouseleave, + onfocus: this.onfocus, + onblur: this.onblur, + ...this.inputAttachment, + }; + }) + ); + Ar( + this, + up, + ft(() => + Array.from({ length: this.opts.maxLength.current }).map((a, p) => { + const y = + ot(this, Wo).current && + x(ot(this, ja)) !== null && + x(ot(this, Wa)) !== null && + ((x(ot(this, ja)) === x(ot(this, Wa)) && p === x(ot(this, ja))) || + (p >= x(ot(this, ja)) && p < x(ot(this, Wa)))), + M = + this.opts.value.current[p] !== void 0 + ? this.opts.value.current[p] + : null; + return { char: M, isActive: y, hasFakeCaret: y && M === null }; + }) + ) + ); + Ar( + this, + Mh, + ft(() => ({ + cells: x(ot(this, up)), + isFocused: ot(this, Wo).current, + isHovering: x(ot(this, Pc)), + })) + ); + var p; + (this.opts = a), + (this.attachment = Xa(this.opts.ref)), + (this.domContext = new Pk(a.ref)), + na(this, Mc, { + value: this.opts.value, + isIOS: + typeof window < "u" && + ((p = window == null ? void 0 : window.CSS) == null + ? void 0 + : p.supports("-webkit-touch-callout", "none")), + }), + na( + this, + Cs, + AA({ + containerRef: this.opts.ref, + inputRef: ot(this, Ha), + isFocused: ot(this, Wo), + pushPasswordManagerStrategy: this.opts.pushPasswordManagerStrategy, + domContext: this.domContext, + }) + ), + Fn(() => { + const y = ot(this, Ha).current, + M = this.opts.ref.current; + if (!y || !M) return; + ot(this, Mc).value.current !== y.value && + (this.opts.value.current = y.value), + (x(ot(this, Xo)).prev = [ + y.selectionStart, + y.selectionEnd, + y.selectionDirection ?? "none", + ]); + const z = Nu( + this.domContext.getDocument(), + "selectionchange", + ot(this, Ph), + { capture: !0 } + ); + ot(this, Ph).call(this), + this.domContext.getActiveElement() === y && + (ot(this, Wo).current = !0), + this.domContext.getElementById("pin-input-style") || + jr(this, cp, P0).call(this); + const T = () => { + M && + M.style.setProperty( + "--bits-pin-input-root-height", + `${y.clientHeight}px` + ); + }; + T(); + const s = new ResizeObserver(T); + return ( + s.observe(y), + () => { + z(), s.disconnect(); + } + ); + }), + Ps([() => this.opts.value.current, () => ot(this, Ha).current], () => { + zA(() => { + const y = ot(this, Ha).current; + if (!y) return; + y.dispatchEvent(new Event("input")); + const M = y.selectionStart, + z = y.selectionEnd, + T = y.selectionDirection ?? "none"; + M !== null && + z !== null && + (se(ot(this, ja), M, !0), + se(ot(this, Wa), z, !0), + (x(ot(this, Xo)).prev = [M, z, T])); + }, this.domContext); + }), + Wr(() => { + const y = this.opts.value.current, + M = ot(this, Ic).current, + z = this.opts.maxLength.current, + T = this.opts.onComplete.current; + M !== void 0 && y !== M && M.length < z && y.length === z && T(y); + }); + } + static create(a) { + return new c_(a); + } + get rootProps() { + return x(ot(this, Ch)); + } + set rootProps(a) { + se(ot(this, Ch), a); + } + get inputWrapperProps() { + return x(ot(this, Sh)); + } + set inputWrapperProps(a) { + se(ot(this, Sh), a); + } + get inputProps() { + return x(ot(this, Ih)); + } + set inputProps(a) { + se(ot(this, Ih), a); + } + get snippetProps() { + return x(ot(this, Mh)); + } + set snippetProps(a) { + se(ot(this, Mh), a); + } +}; +(Ha = new WeakMap()), + (Pc = new WeakMap()), + (Wo = new WeakMap()), + (ja = new WeakMap()), + (Wa = new WeakMap()), + (Ic = new WeakMap()), + (To = new WeakMap()), + (Xo = new WeakMap()), + (Cs = new WeakMap()), + (Mc = new WeakMap()), + (sp = new WeakMap()), + (Ch = new WeakMap()), + (Sh = new WeakMap()), + (lp = new WeakMap()), + (cp = new WeakSet()), + (P0 = function () { + const a = this.domContext.getDocument(), + p = a.createElement("style"); + if (((p.id = "pin-input-style"), a.head.appendChild(p), p.sheet)) { + const y = + "background: transparent !important; color: transparent !important; border-color: transparent !important; opacity: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; -webkit-text-fill-color: transparent !important;"; + Lu( + p.sheet, + "[data-pin-input-input]::selection { background: transparent !important; color: transparent !important; }" + ), + Lu(p.sheet, `[data-pin-input-input]:autofill { ${y} }`), + Lu(p.sheet, `[data-pin-input-input]:-webkit-autofill { ${y} }`), + Lu( + p.sheet, + "@supports (-webkit-touch-callout: none) { [data-pin-input-input] { letter-spacing: -.6em !important; font-weight: 100 !important; font-stretch: ultra-condensed; font-optical-sizing: none !important; left: -1px !important; right: 1px !important; } }" + ), + Lu( + p.sheet, + "[data-pin-input-input] + * { pointer-events: all !important; }" + ); + } + }), + (Ph = new WeakMap()), + (Ih = new WeakMap()), + (up = new WeakMap()), + (Mh = new WeakMap()); +let bm = c_; +var kh; +const u_ = class u_ { + constructor(a) { + xr(this, "opts"); + xr(this, "attachment"); + Ar( + this, + kh, + ft(() => ({ + id: this.opts.id.current, + [S0.cell]: "", + "data-active": this.opts.cell.current.isActive ? "" : void 0, + "data-inactive": this.opts.cell.current.isActive ? void 0 : "", + ...this.attachment, + })) + ); + (this.opts = a), (this.attachment = Xa(this.opts.ref)); + } + static create(a) { + return new u_(a); + } + get props() { + return x(ot(this, kh)); + } + set props(a) { + se(ot(this, kh), a); + } +}; +kh = new WeakMap(); +let wm = u_; +function zA(m, a) { + const p = a.setTimeout(m, 0), + y = a.setTimeout(m, 10), + M = a.setTimeout(m, 50); + return [p, y, M]; +} +function Lu(m, a) { + try { + m.insertRule(a); + } catch { + console.error("pin input could not insert CSS rule:", a); + } +} +var LA = Te("
                  "); +function DA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "inputId", 19, () => `${Ya(p)}-input`), + z = zt(a, "ref", 15, null), + T = zt(a, "maxlength", 3, 6), + s = zt(a, "textalign", 3, "left"), + B = zt(a, "inputmode", 3, "numeric"), + O = zt(a, "onComplete", 3, qu), + X = zt(a, "pushPasswordManagerStrategy", 3, "increase-width"), + K = zt(a, "class", 3, ""), + ne = zt(a, "autocomplete", 3, "one-time-code"), + H = zt(a, "disabled", 3, !1), + fe = zt(a, "value", 15, ""), + ge = zt(a, "onValueChange", 3, qu), + Ie = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "inputId", + "ref", + "maxlength", + "textalign", + "pattern", + "inputmode", + "onComplete", + "pushPasswordManagerStrategy", + "class", + "children", + "autocomplete", + "disabled", + "value", + "onValueChange", + "pasteTransformer", + ]); + const Ae = bm.create({ + id: br.with(() => y()), + ref: br.with( + () => z(), + (Qe) => z(Qe) + ), + inputId: br.with(() => M()), + autocomplete: br.with(() => ne()), + maxLength: br.with(() => T()), + textAlign: br.with(() => s()), + disabled: br.with(() => H()), + inputmode: br.with(() => B()), + pattern: br.with(() => a.pattern), + onComplete: br.with(() => O()), + value: br.with( + () => fe(), + (Qe) => { + fe(Qe), ge()(Qe); + } + ), + pushPasswordManagerStrategy: br.with(() => X()), + pasteTransformer: br.with(() => a.pasteTransformer), + }), + De = ft(() => Va(Ie, Ae.inputProps)), + Ee = ft(() => Va(Ae.rootProps, { class: K() })), + Fe = ft(() => Va(Ae.inputWrapperProps, {})); + var $e = LA(); + ar($e, () => ({ ...x(Ee) })); + var Je = A($e); + oi( + Je, + () => a.children ?? pa, + () => Ae.snippetProps + ); + var qe = j(Je, 2); + ar(qe, () => ({ ...x(Fe) })); + var Ze = A(qe); + Ka(Ze), ar(Ze, () => ({ ...x(De) })), k(qe), k($e), $(m, $e), Dr(); +} +var RA = Te("
                  "); +function BA(m, a) { + const p = uo(); + Lr(a, !0); + let y = zt(a, "id", 19, () => Ya(p)), + M = zt(a, "ref", 15, null), + z = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "id", + "ref", + "cell", + "child", + "children", + ]); + const T = wm.create({ + id: br.with(() => y()), + ref: br.with( + () => M(), + (ne) => M(ne) + ), + cell: br.with(() => a.cell), + }), + s = ft(() => Va(z, T.props)); + var B = er(), + O = Ct(B); + { + var X = (ne) => { + var H = er(), + fe = Ct(H); + oi( + fe, + () => a.child, + () => ({ props: x(s) }) + ), + $(ne, H); + }, + K = (ne) => { + var H = RA(); + ar(H, () => ({ ...x(s) })); + var fe = A(H); + oi(fe, () => a.children ?? pa), k(H), $(ne, H); + }; + Oe(O, (ne) => { + a.child ? ne(X) : ne(K, !1); + }); + } + $(m, B), Dr(); +} +function Ac(...m) { + return Lv(Ou(m)); +} +function FA(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = zt(a, "value", 15, ""), + M = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "value", "class"]); + var z = er(), + T = Ct(z); + { + let s = ft(() => + Ac( + "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", + a.class + ) + ); + xi( + T, + () => rA, + (B, O) => { + O( + B, + Is( + { + "data-slot": "command", + get class() { + return x(s); + }, + }, + () => M, + { + get value() { + return y(); + }, + set value(X) { + y(X); + }, + get ref() { + return p(); + }, + set ref(X) { + p(X); + }, + } + ) + ); + } + ); + } + $(m, z), Dr(); +} +var OA = Pr( + '' +); +function _l(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = OA(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +function NA(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "class"]); + var M = er(), + z = Ct(M); + { + let T = ft(() => Ac("py-6 text-center text-sm", a.class)); + xi( + z, + () => iA, + (s, B) => { + B( + s, + Is( + { + "data-slot": "command-empty", + get class() { + return x(T); + }, + }, + () => y, + { + get ref() { + return p(); + }, + set ref(O) { + p(O); + }, + } + ) + ); + } + ); + } + $(m, M), Dr(); +} +var jA = Te(" ", 1); +function VA(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "ref", + "class", + "children", + "heading", + "value", + ]); + var M = er(), + z = Ct(M); + { + let T = ft(() => Ac("text-foreground overflow-hidden p-1", a.class)), + s = ft(() => a.value ?? a.heading ?? `----${Wk()}`); + xi( + z, + () => oA, + (B, O) => { + O( + B, + Is( + { + "data-slot": "command-group", + get class() { + return x(T); + }, + get value() { + return x(s); + }, + }, + () => y, + { + get ref() { + return p(); + }, + set ref(X) { + p(X); + }, + children: (X, K) => { + var ne = jA(), + H = Ct(ne); + { + var fe = (Ie) => { + var Ae = er(), + De = Ct(Ae); + xi( + De, + () => lA, + (Ee, Fe) => { + Fe(Ee, { + class: + "text-muted-foreground px-2 py-1.5 text-xs font-medium", + children: ($e, Je) => { + yn(); + var qe = wi(); + We(() => de(qe, a.heading)), $($e, qe); + }, + $$slots: { default: !0 }, + }); + } + ), + $(Ie, Ae); + }; + Oe(H, (Ie) => { + a.heading && Ie(fe); + }); + } + var ge = j(H, 2); + xi( + ge, + () => hA, + (Ie, Ae) => { + Ae(Ie, { + get children() { + return a.children; + }, + }); + } + ), + $(X, ne); + }, + $$slots: { default: !0 }, + } + ) + ); + } + ); + } + $(m, M), Dr(); +} +function qA(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "class"]); + var M = er(), + z = Ct(M); + { + let T = ft(() => + Ac( + "aria-selected:bg-base-300 aria-selected:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", + a.class + ) + ); + xi( + z, + () => _A, + (s, B) => { + B( + s, + Is( + { + "data-slot": "command-item", + get class() { + return x(T); + }, + }, + () => y, + { + get ref() { + return p(); + }, + set ref(O) { + p(O); + }, + } + ) + ); + } + ); + } + $(m, M), Dr(); +} +var ZA = Pr( + '' +); +function UA(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = ZA(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var $A = Te( + '
                  ' +); +function GA(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = zt(a, "value", 15, ""), + M = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "class", "value"]); + var z = $A(), + T = A(z); + UA(T, { class: "size-5 opacity-50" }); + var s = j(T, 2); + { + let B = ft(() => + Ac( + "placeholder:text-muted-foreground outline-hidden flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50", + a.class + ) + ); + xi( + s, + () => pA, + (O, X) => { + X( + O, + Is( + { + "data-slot": "command-input", + get class() { + return x(B); + }, + }, + () => M, + { + get ref() { + return p(); + }, + set ref(K) { + p(K); + }, + get value() { + return y(); + }, + set value(K) { + y(K); + }, + } + ) + ); + } + ); + } + k(z), $(m, z), Dr(); +} +function HA(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "class"]); + var M = er(), + z = Ct(M); + { + let T = ft(() => + Ac("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden", a.class) + ); + xi( + z, + () => vA, + (s, B) => { + B( + s, + Is( + { + "data-slot": "command-list", + get class() { + return x(T); + }, + }, + () => y, + { + get ref() { + return p(); + }, + set ref(O) { + p(O); + }, + } + ) + ); + } + ); + } + $(m, M), Dr(); +} +var WA = Pr( + '' +); +function XA(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = WA(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var YA = Te(" ", 1), + KA = Te(' ', 1), + JA = Te( + ' ' + ), + QA = Te(" ", 1), + eE = Te(" ", 1), + tE = (m, a) => { + a(0); + }, + rE = Te(''), + nE = Te( + '
                  ' + ); +function lv(m, a) { + Lr(a, !0); + let p = zt(a, "countryId", 15, 0), + y = zt(a, "dropdownDirection", 3, "right"), + M = st(null), + z = st(null), + T = st(""); + function s() { + Iv().then(() => { + var Ee; + (Ee = document.activeElement) == null || Ee.blur(), se(T, ""); + }); + } + var B = nE(), + O = A(B), + X = A(O), + K = A(X); + { + var ne = (Ee) => { + var Fe = YA(), + $e = Ct(Fe), + Je = A($e, !0); + k($e); + var qe = j($e, 2); + XA(qe, { class: "size-3.5" }), + We((Ze) => de(Je, Ze), [() => Uv()]), + $(Ee, Fe); + }, + H = (Ee) => { + const Fe = ft(() => So(p())); + var $e = KA(), + Je = Ct($e), + qe = A(Je, !0); + k(Je); + var Ze = j(Je); + We(() => { + de(qe, x(Fe).flag), de(Ze, ` ${x(Fe).name ?? ""}`); + }), + $(Ee, $e); + }; + Oe(K, (Ee) => { + p() === 0 ? Ee(ne) : Ee(H, !1); + }); + } + k(X); + var fe = j(X, 2); + let ge; + var Ie = A(fe); + xi( + Ie, + () => FA, + (Ee, Fe) => { + Fe(Ee, { + children: ($e, Je) => { + var qe = eE(), + Ze = Ct(qe); + xi( + Ze, + () => GA, + (Le, et) => { + et(Le, { + placeholder: "Country", + get ref() { + return x(M); + }, + set ref(nt) { + se(M, nt); + }, + get value() { + return x(T); + }, + set value(nt) { + se(T, nt, !0); + }, + }); + } + ); + var Qe = j(Ze, 2); + xi( + Qe, + () => HA, + (Le, et) => { + et(Le, { + children: (nt, Ue) => { + var ke = QA(), + vt = Ct(ke); + xi( + vt, + () => NA, + (re, he) => { + he(re, { + children: (oe, ze) => { + yn(); + var je = wi(); + We((pt) => de(je, pt), [() => Bw()]), $(oe, je); + }, + $$slots: { default: !0 }, + }); + } + ); + var ee = j(vt, 2); + xi( + ee, + () => VA, + (re, he) => { + he(re, { + children: (oe, ze) => { + var je = er(), + pt = Ct(je); + hi( + pt, + 17, + () => Wi.countries, + (it) => it.id, + (it, ct) => { + var It = er(), + Dt = Ct(It); + xi( + Dt, + () => qA, + (at, dt) => { + dt(at, { + get value() { + return x(ct).name; + }, + onSelect: () => { + p(x(ct).id), s(); + }, + children: (yt, xt) => { + var St = JA(), + wt = A(St), + _t = A(wt, !0); + k(wt); + var Lt = j(wt); + k(St), + We(() => { + de(_t, x(ct).flag), + de(Lt, ` ${x(ct).name ?? ""}`); + }), + $(yt, St); + }, + $$slots: { default: !0 }, + }); + } + ), + $(it, It); + } + ), + $(oe, je); + }, + $$slots: { default: !0 }, + }); + } + ), + $(nt, ke); + }, + $$slots: { default: !0 }, + }); + } + ), + $($e, qe); + }, + $$slots: { default: !0 }, + }); + } + ), + k(fe), + k(O); + var Ae = j(O, 2); + { + var De = (Ee) => { + var Fe = rE(); + Fe.__click = [tE, p]; + var $e = A(Fe); + _l($e, { class: "size-3.5" }), k(Fe), $(Ee, Fe); + }; + Oe(Ae, (Ee) => { + p() != 0 && Ee(De); + }); + } + k(B), + Ko( + B, + (Ee) => se(z, Ee), + () => x(z) + ), + We( + (Ee) => + (ge = zr( + fe, + 1, + "dropdown-content menu bg-base-100 rounded-box z-1 border-base-content/10 w-52 rounded-lg border py-1 shadow-sm", + null, + ge, + Ee + )), + [() => ({ "right-1": y() === "left" })] + ), + di("focus", X, () => { + x(M).focus(); + }), + $(m, B), + Dr(); +} +$n(["click"]); +var iE = Pr( + '' +); +function aE(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = iE(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var oE = Pr( + '' + ), + sE = Pr( + '' + ); +function Uu(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy", "filled"]); + var y = er(), + M = Ct(y); + { + var z = (s) => { + var B = oE(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }, + T = (s) => { + var B = sE(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }; + Oe(M, (s) => { + a.filled ? s(z) : s(T, !1); + }); + } + $(m, y); +} +var lE = Te( + '' + ), + cE = Te('
                  '), + uE = Te( + '
                  ' + ), + hE = (m, a, p) => { + a.onvisitclick({ lat: x(p).lastLatitude, lng: x(p).lastLongitude }); + }, + dE = Te( + ' ' + ), + pE = Te( + '

                  ' + ), + fE = Te( + ' ' + ), + mE = Te( + '

                  ' + ), + _E = Te(' '), + gE = Te(" "), + vE = Te( + '
                  ' + ), + yE = Te( + '

                  ' + ), + xE = Te( + ' ' + ), + bE = Te( + '

                  ' + ), + wE = Te( + '
                  ' + ), + TE = Te( + '
                  ', + 1 + ); +function CE(m, a) { + Lr(a, !0); + const p = []; + let y = st(1e3); + const M = ft(() => x(y) <= 640); + let z = st("today"), + T = { + regions: { label: WT(), icon: Em }, + countries: { label: KT(), icon: aE }, + players: { label: Yv(), icon: yp }, + alliances: { label: Kv(), icon: xp }, + }, + s = st("regions"), + B = st(0), + O = bi({ players: {}, alliances: {}, regions: {}, countries: {} }), + X = ft(() => { + var qe, Ze, Qe; + return x(s) === "regions" + ? (Ze = (qe = O[x(s)][x(B)]) == null ? void 0 : qe[x(z)]) == null + ? void 0 + : Ze.entries + : (Qe = O[x(s)][x(z)]) == null + ? void 0 + : Qe.entries; + }); + const K = 5 * 1e3; + Wr(() => { + var Le; + if (!a.open) return; + const qe = x(z), + Ze = x(s), + Qe = x(B); + Ze === "players" && (!O[Ze][qe] || Date.now() - O[Ze][qe].time > K) + ? Qr.leaderboardPlayers(qe) + .then((et) => { + O[Ze][qe] = { time: Date.now(), entries: et }; + }) + .catch((et) => Fr.error(et.message)) + : Ze === "alliances" && (!O[Ze][qe] || Date.now() - O[Ze][qe].time > K) + ? Qr.leaderboardAlliances(qe) + .then((et) => { + O[Ze][qe] = { time: Date.now(), entries: et }; + }) + .catch((et) => Fr.error(et.message)) + : Ze === "countries" && (!O[Ze][qe] || Date.now() - O[Ze][qe].time > K) + ? Qr.leaderboardCountries(qe) + .then((et) => { + O[Ze][qe] = { time: Date.now(), entries: et }; + }) + .catch((et) => Fr.error(et.message)) + : Ze === "regions" && + (!((Le = O[Ze][Qe]) != null && Le[qe]) || + Date.now() - O[Ze][Qe][qe].time > K) && + Qr.leaderboardRegions(qe, Qe) + .then((et) => { + O[Ze][Qe] || (O[Ze][Qe] = {}), + (O[Ze][Qe][qe] = { time: Date.now(), entries: et }); + }) + .catch((et) => Fr.error(et.message)); + }); + var ne = TE(), + H = Ct(ne); + hi( + H, + 21, + () => Object.entries(T), + ([qe, { label: Ze, icon: Qe }]) => qe, + (qe, Ze) => { + var Qe = ft(() => Mv(x(Ze), 2)); + let Le = () => x(Qe)[0], + et = () => x(Qe)[1].label, + nt = () => x(Qe)[1].icon; + const Ue = ft(nt); + var ke = lE(), + vt = A(ke); + Ka(vt); + var ee, + re = j(vt, 2); + xi( + re, + () => x(Ue), + (oe, ze) => { + ze(oe, { + get this() { + return nt(); + }, + class: "mr-1 size-5 max-sm:hidden", + }); + } + ); + var he = j(re); + k(ke), + We(() => { + Tr(vt, "aria-label", et()), + ee !== (ee = Le()) && (vt.value = (vt.__value = Le()) ?? ""), + de(he, ` ${et() ?? ""}`); + }), + Lm( + p, + [], + vt, + () => (Le(), x(s)), + (oe) => se(s, oe) + ), + $(qe, ke); + } + ), + k(H); + var fe = j(H, 2), + ge = A(fe); + Um(ge, { + get value() { + return x(z); + }, + set value(qe) { + se(z, qe, !0); + }, + }); + var Ie = j(ge, 2); + { + var Ae = (qe) => { + lv(qe, { + dropdownDirection: "left", + get countryId() { + return x(B); + }, + set countryId(Ze) { + se(B, Ze, !0); + }, + }); + }; + Oe(Ie, (qe) => { + x(s) === "regions" && !x(M) && qe(Ae); + }); + } + k(fe); + var De = j(fe, 2); + { + var Ee = (qe) => { + var Ze = cE(), + Qe = A(Ze); + lv(Qe, { + get countryId() { + return x(B); + }, + set countryId(Le) { + se(B, Le, !0); + }, + }), + k(Ze), + $(qe, Ze); + }; + Oe(De, (qe) => { + x(s) === "regions" && x(M) && qe(Ee); + }); + } + var Fe = j(De, 2); + { + var $e = (qe) => { + var Ze = uE(), + Qe = A(Ze), + Le = j(Qe); + { + var et = (Ue) => { + var ke = wi(); + We((vt) => de(ke, vt), [() => vp().toLowerCase()]), $(Ue, ke); + }, + nt = (Ue) => { + var ke = er(), + vt = Ct(ke); + { + var ee = (he) => { + var oe = wi(); + We((ze) => de(oe, ze), [() => Nm()]), $(he, oe); + }, + re = (he) => { + var oe = er(), + ze = Ct(oe); + { + var je = (pt) => { + var it = wi(); + We((ct) => de(it, ct), [() => jm()]), $(pt, it); + }; + Oe( + ze, + (pt) => { + x(z) === "month" && pt(je); + }, + !0 + ); + } + $(he, oe); + }; + Oe( + vt, + (he) => { + x(z) === "week" ? he(ee) : he(re, !1); + }, + !0 + ); + } + $(Ue, ke); + }; + Oe(Le, (Ue) => { + x(z) === "today" ? Ue(et) : Ue(nt, !1); + }); + } + k(Ze), We((Ue) => de(Qe, `${Ue ?? ""} `), [() => Om()]), $(qe, Ze); + }, + Je = (qe) => { + var Ze = er(), + Qe = Ct(Ze); + { + var Le = (nt) => { + var Ue = er(), + ke = Ct(Ue); + { + var vt = (re) => { + const he = ft(() => x(X)); + var oe = pE(), + ze = A(oe), + je = A(ze), + pt = j(A(je)), + it = A(pt, !0); + k(pt); + var ct = j(pt), + It = A(ct), + Dt = j(It, 2), + at = j(Dt), + dt = A(at); + Uu(dt, { + class: "text-base-content/50 mb-0.5 ml-1 inline size-4", + }), + k(at), + k(ct), + yn(), + k(je), + k(ze); + var yt = j(ze); + hi( + yt, + 31, + () => x(he), + (xt) => xt.id, + (xt, St, wt) => { + const _t = ft(() => So(x(St).countryId)); + var Lt = dE(), + Rt = A(Lt), + $t = A(Rt, !0); + k(Rt); + var tr = j(Rt), + Qt = A(tr), + Ot = A(Qt, !0); + k(Qt); + var Nt = j(Qt, 2), + or = A(Nt), + cr = j(or), + Vr = A(cr); + k(cr), k(Nt), k(tr); + var mr = j(tr), + hr = A(mr, !0); + k(mr); + var _r = j(mr), + Ir = A(_r); + Ir.__click = [hE, a, St]; + var qr = A(Ir, !0); + k(Ir), + k(_r), + k(Lt), + We( + (ue, V, U) => { + de($t, x(wt) + 1), + Tr(Qt, "data-tip", x(_t).name), + de(Ot, x(_t).flag), + zr(Nt, 1, `font-semibold ${ue ?? ""}`), + de(or, `${x(St).name ?? ""} `), + de(Vr, `#${x(St).number ?? ""}`), + de(hr, V), + de(qr, U); + }, + [ + () => Oi(x(St).cityId), + () => x(St).pixelsPainted.toLocaleString("en-US"), + () => kx(), + ] + ), + ll( + Lt, + () => cl, + () => ({ duration: 200 }) + ), + $(xt, Lt); + } + ), + k(yt), + k(oe), + We( + (xt, St, wt, _t) => { + de(it, xt), + de(It, `${St ?? ""} `), + de(Dt, `${wt ?? ""} `), + Tr(at, "data-tip", _t); + }, + [ + () => iC(), + () => vc(), + () => yc().toLowerCase(), + () => hC(), + ] + ), + $(re, oe); + }, + ee = (re) => { + var he = er(), + oe = Ct(he); + { + var ze = (pt) => { + var it = mE(), + ct = A(it), + It = A(ct), + Dt = j(A(It)), + at = A(Dt, !0); + k(Dt); + var dt = j(Dt), + yt = A(dt), + xt = j(yt, 2), + St = j(xt), + wt = A(St); + Uu(wt, { + class: + "text-base-content/50 mb-0.5 ml-1 inline size-4", + }), + k(St), + k(dt), + k(It), + k(ct); + var _t = j(ct); + hi( + _t, + 31, + () => x(X), + (Lt) => Lt.id, + (Lt, Rt, $t) => { + const tr = ft(() => So(x(Rt).id)); + var Qt = fE(), + Ot = A(Qt), + Nt = A(Ot, !0); + k(Ot); + var or = j(Ot), + cr = A(or), + Vr = A(cr, !0); + k(cr); + var mr = j(cr, 2), + hr = A(mr, !0); + k(mr), k(or); + var _r = j(or), + Ir = A(_r, !0); + k(_r), + k(Qt), + We( + (qr, ue) => { + de(Nt, x($t) + 1), + Tr(cr, "data-tip", x(tr).name), + de(Vr, x(tr).flag), + zr(mr, 1, `font-semibold ${qr ?? ""}`), + de(hr, x(tr).name), + de(Ir, ue); + }, + [ + () => Oi(x(Rt).id), + () => + x(Rt).pixelsPainted.toLocaleString( + "en-US" + ), + ] + ), + ll( + Qt, + () => cl, + () => ({ duration: 200 }) + ), + $(Lt, Qt); + } + ), + k(_t), + k(it), + We( + (Lt, Rt, $t, tr) => { + de(at, Lt), + de(yt, `${Rt ?? ""} `), + de(xt, `${$t ?? ""} `), + Tr(St, "data-tip", tr); + }, + [ + () => Uv(), + () => vc(), + () => yc().toLowerCase(), + () => VC(), + ] + ), + $(pt, it); + }, + je = (pt) => { + var it = er(), + ct = Ct(it); + { + var It = (at) => { + const dt = ft(() => x(X)); + var yt = yE(), + xt = A(yt), + St = A(xt), + wt = j(A(St)), + _t = A(wt, !0); + k(wt); + var Lt = j(wt), + Rt = A(Lt), + $t = j(Rt, 2, !0); + k(Lt), k(St), k(xt); + var tr = j(xt); + hi( + tr, + 31, + () => x(dt), + (Qt) => Qt.id, + (Qt, Ot, Nt) => { + const or = ft(() => { + var ye; + return ( + ((ye = Mt.data) == null + ? void 0 + : ye.id) === x(Ot).id + ); + }); + var cr = vE(); + let Vr; + var mr = A(cr), + hr = A(mr, !0); + k(mr); + var _r = j(mr), + Ir = A(_r), + qr = A(Ir); + co(qr, { + class: "size-8 border sm:size-10", + get userId() { + return x(Ot).id; + }, + get pictureUrl() { + return x(Ot).picture; + }, + }); + var ue = j(qr, 2), + V = A(ue), + U = A(V), + Y = j(U), + ie = A(Y); + k(Y), k(V); + var pe = j(V, 2); + { + var Se = (ye) => { + const Bt = ft(() => + So(x(Ot).equippedFlag) + ); + var rr = _E(), + Kt = A(rr, !0); + k(rr), + We(() => { + Tr(rr, "data-tip", x(Bt).name), + de(Kt, x(Bt).flag); + }), + $(ye, rr); + }; + Oe(pe, (ye) => { + x(Ot).equippedFlag && ye(Se); + }); + } + var Me = j(pe, 2); + { + var we = (ye) => { + Eh(ye, { + get username() { + return x(Ot).discord; + }, + get id() { + return x(Ot).discordId; + }, + }); + }; + Oe(Me, (ye) => { + x(Ot).discord && ye(we); + }); + } + var Ve = j(Me, 2); + { + var ut = (ye) => { + var Bt = gE(), + rr = A(Bt, !0); + k(Bt), + We( + (Kt, gr) => { + zr( + Bt, + 1, + `badge badge-sm ml-0.5 border-0 ${ + Kt ?? "" + } ${gr ?? ""}` + ), + de(rr, x(Ot).allianceName); + }, + [ + () => pp(x(Ot).allianceId), + () => Oi(x(Ot).allianceId), + ] + ), + $(ye, Bt); + }; + Oe(Ve, (ye) => { + "allianceName" in x(Ot) && + x(Ot).allianceName && + ye(ut); + }); + } + k(ue), k(Ir), k(_r); + var Ke = j(_r), + kt = A(Ke, !0); + k(Ke), + k(cr), + We( + (ye, Bt, rr) => { + (Vr = zr(cr, 1, "", null, Vr, ye)), + de(hr, x(Nt) + 1), + zr( + V, + 1, + `font-semibold max-sm:ml-2 ${ + Bt ?? "" + } flex gap-1` + ), + de(U, `${x(Ot).name ?? ""} `), + de(ie, `#${x(Ot).id ?? ""}`), + de(kt, rr); + }, + [ + () => ({ "bg-base-200": x(or) }), + () => Oi(x(Ot).id), + () => + x(Ot).pixelsPainted.toLocaleString( + "en-US" + ), + ] + ), + ll( + cr, + () => cl, + () => ({ duration: 200 }) + ), + $(Qt, cr); + } + ), + k(tr), + k(yt), + We( + (Qt, Ot, Nt) => { + de(_t, Qt), + de(Rt, `${Ot ?? ""} `), + de($t, Nt); + }, + [ + () => Dm(), + () => vc(), + () => yc().toLowerCase(), + ] + ), + $(at, yt); + }, + Dt = (at) => { + var dt = er(), + yt = Ct(dt); + { + var xt = (St) => { + var wt = bE(), + _t = A(wt), + Lt = A(_t), + Rt = j(A(Lt)), + $t = A(Rt, !0); + k(Rt); + var tr = j(Rt), + Qt = A(tr), + Ot = j(Qt, 2, !0); + k(tr), k(Lt), k(_t); + var Nt = j(_t); + hi( + Nt, + 31, + () => x(X), + (or) => or.id, + (or, cr, Vr) => { + const mr = ft(() => { + var pe; + return ( + ((pe = Mt.data) == null + ? void 0 + : pe.allianceId) === x(cr).id + ); + }); + var hr = xE(); + let _r; + var Ir = A(hr), + qr = A(Ir, !0); + k(Ir); + var ue = j(Ir), + V = A(ue), + U = A(V, !0); + k(V), k(ue); + var Y = j(ue), + ie = A(Y, !0); + k(Y), + k(hr), + We( + (pe, Se, Me) => { + (_r = zr( + hr, + 1, + "", + null, + _r, + pe + )), + de(qr, x(Vr) + 1), + zr( + V, + 1, + `font-semibold ${Se ?? ""}` + ), + de(U, x(cr).name), + de(ie, Me); + }, + [ + () => ({ "bg-base-200": x(mr) }), + () => Oi(x(cr).id), + () => + x( + cr + ).pixelsPainted.toLocaleString( + "en-US" + ), + ] + ), + ll( + hr, + () => cl, + () => ({ duration: 200 }) + ), + $(or, hr); + } + ), + k(Nt), + k(wt), + We( + (or, cr, Vr) => { + de($t, or), + de(Qt, `${cr ?? ""} `), + de(Ot, Vr); + }, + [ + () => _p(), + () => vc(), + () => yc().toLowerCase(), + ] + ), + $(St, wt); + }; + Oe( + yt, + (St) => { + x(s) === "alliances" && St(xt); + }, + !0 + ); + } + $(at, dt); + }; + Oe( + ct, + (at) => { + x(s) === "players" ? at(It) : at(Dt, !1); + }, + !0 + ); + } + $(pt, it); + }; + Oe( + oe, + (pt) => { + x(s) === "countries" ? pt(ze) : pt(je, !1); + }, + !0 + ); + } + $(re, he); + }; + Oe(ke, (re) => { + x(s) === "regions" ? re(vt) : re(ee, !1); + }); + } + $(nt, Ue); + }, + et = (nt) => { + var Ue = wE(); + $(nt, Ue); + }; + Oe( + Qe, + (nt) => { + x(X) ? nt(Le) : nt(et, !1); + }, + !0 + ); + } + $(qe, Ze); + }; + Oe(Fe, (qe) => { + x(X) && x(X).length === 0 ? qe($e) : qe(Je, !1); + }); + } + mp("innerWidth", (qe) => se(y, qe, !0)), $(m, ne), Dr(); +} +$n(["click"]); +var SE = Pr( + '' +); +function I0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = SE(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var PE = Te( + ' ' +); +function IE(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + Fn(() => { + const K = (ne) => { + ne.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", K), + () => document.removeEventListener("keydown", K) + ); + }); + var y = PE(), + M = A(y), + z = j(A(M), 2), + T = A(z); + I0(T, { class: "size-6" }); + var s = j(T, 2), + B = A(s, !0); + k(s), k(z); + var O = j(z, 2), + X = A(O); + CE(X, { + get onvisitclick() { + return a.onvisitclick; + }, + get open() { + return p(); + }, + }), + k(O), + k(M), + yn(2), + k(y), + Ni(y, () => (K) => { + Wr(() => { + p() ? K.show() : K.close(); + }); + }), + We((K) => de(B, K), [() => Bm()]), + di("close", y, () => p(!1)), + $(m, y), + Dr(); +} +var ME = Te("
                  "), + kE = Te( + ' ' + ); +function AE(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + Fn(() => { + const s = (B) => { + B.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", s), + () => document.removeEventListener("keydown", s) + ); + }); + var y = kE(), + M = A(y), + z = j(A(M), 2); + { + var T = (s) => { + var B = ME(), + O = A(B); + jx(O, {}), + k(B), + Ai( + 2, + B, + () => ia, + () => ({ duration: 300 }) + ), + $(s, B); + }; + Oe(z, (s) => { + p() && s(T); + }); + } + k(M), + yn(2), + k(y), + Ni(y, () => (s) => { + Wr(() => { + p() ? s.show() : s.close(); + }); + }), + di("close", y, () => p(!1)), + $(m, y), + Dr(); +} +var EE = (m, a, p) => { + localStorage.setItem(x(a), "true"), se(p, !1); + }, + zE = Te( + 'new' + ), + LE = Te("
                  "); +function jf(m, a) { + Lr(a, !0); + let p = st(!1); + const y = ft(() => "showed:" + a.key); + Fn(() => { + se(p, !localStorage.getItem(x(y))); + }); + var M = LE(); + M.__click = [EE, y, p]; + var z = A(M); + { + var T = (B) => { + var O = zE(); + Ai( + 3, + O, + () => ia, + () => ({ duration: 200 }) + ), + $(B, O); + }; + Oe(z, (B) => { + x(p) && B(T); + }); + } + var s = j(z, 2); + oi(s, () => a.children), + k(M), + We(() => zr(M, 1, `indicator ${a.class ?? ""}`)), + $(m, M), + Dr(); +} +$n(["click"]); +var DE = Te("

                  You don't have charges to paint.

                  "); +function RE(m, a) { + Lr(a, !1), Nv(); + var p = DE(), + y = j(A(p), 2); + k(p), + We( + (M) => de(y, ` Next charge in ${M ?? ""}`), + [() => rp(Mt.cooldown ?? 0)] + ), + $(m, p), + Dr(); +} +var BE = Te(""); +function M0(m, a) { + Lr(a, !0); + let p = zt(a, "width", 15, 0), + y = nr(a, [ + "$$slots", + "$$events", + "$$legacy", + "value", + "fontSize", + "color", + "weight", + "mono", + "width", + ]), + M = ft(() => Math.ceil(a.fontSize)), + z = st(null); + const T = window.devicePixelRatio ?? 1, + s = + '"Geist", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"', + B = + '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'; + Wr(() => { + const X = x(z).getContext("2d"); + (X.textBaseline = "top"), + (X.font = `${a.weight ?? "normal"} ${a.fontSize}px ${a.mono ? B : s}`), + (X.fillStyle = a.color ?? "#394e6a"), + X.setTransform(T, 0, 0, T, 0, 0), + X.clearRect(0, 0, p(), x(M)), + X.fillText(a.value, 0, 0); + const K = X.measureText(a.value); + p(Math.ceil(K.actualBoundingBoxRight)), se(M, K.actualBoundingBoxDescent); + }); + var O = BE(); + ar(O, () => ({ + width: p() * T, + height: x(M) * T, + style: `width: ${p() ?? ""}px; height: ${x(M) ?? ""}px`, + ...y, + })), + Ko( + O, + (X) => se(z, X), + () => x(z) + ), + $(m, O), + Dr(); +} +var FE = Te(' '), + OE = Te( + ' ' + ), + NE = Te( + '' + ), + jE = Te( + '' + ); +function k0(m, a) { + Lr(a, !0); + let p = nr(a, ["$$slots", "$$events", "$$legacy", "loading", "charges"]), + y = st(0); + var M = jE(); + ar(M, () => ({ + ...p, + class: `btn btn-primary btn-lg sm:btn-xl relative ${a.class ?? ""}`, + })); + var z = A(M); + zh(z, { class: "size-6" }); + var T = j(z, 2), + s = A(T), + B = j(s); + { + var O = (ne) => { + const H = ft(() => `${Math.floor(a.charges)}/${Mt.data.charges.max}`); + var fe = OE(), + ge = A(fe), + Ie = A(ge); + { + let Ee = ft(() => (a.disabled ? "#394e6a33" : "#ffffff")); + M0(Ie, { + weight: 600, + fontSize: 16, + get value() { + return x(H); + }, + get color() { + return x(Ee); + }, + get width() { + return x(y); + }, + set width(Fe) { + se(y, Fe, !0); + }, + }); + } + k(ge); + var Ae = j(ge, 2); + { + var De = (Ee) => { + var Fe = FE(), + $e = A(Fe); + k(Fe), + We((Je) => de($e, `(${Je ?? ""})`), [() => rp(Mt.cooldown)]), + $(Ee, Fe); + }; + Oe(Ae, (Ee) => { + a.charges < Mt.data.charges.max && Mt.cooldown !== void 0 && Ee(De); + }); + } + k(fe), + We( + (Ee) => kc(ge, `width: ${Ee ?? ""}px`), + [() => (Math.floor(x(y) / 5) + 1) * 5] + ), + $(ne, fe); + }; + Oe(B, (ne) => { + a.charges !== void 0 && Mt.data && ne(O); + }); + } + k(T); + var X = j(T, 2); + { + var K = (ne) => { + var H = NE(); + $(ne, H); + }; + Oe(X, (ne) => { + a.loading && ne(K); + }); + } + k(M), We((ne) => de(s, `${ne ?? ""} `), [() => Gv()]), $(m, M), Dr(); +} +const VE = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABVQTFRFAAAASkKEenHEta7xWmmLi5y0v8vc+SuCVQAAAAF0Uk5TAEDm2GYAAAA/SURBVHjaXcjBDcAwDMNAUW28/8hF0MCIzN9RV7aVfuxp+IGPe+AdPQRpFaRrgcNrn/Bb4LAE4W5aNb3TXUofoSgBYpzN5I4AAAAASUVORK5CYII=", + qE = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC", + ZE = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC", + UE = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAABVJREFUeNpjYGA48x8DYwoB1Q0RlQDDCVmniJ241gAAAABJRU5ErkJggg=="; +class $E { + constructor(a) { + xr(this, "gm"); + xr(this, "opacity", 1); + xr(this, "id", `paint-preview-${Math.random()}`); + xr(this, "tiles", new Map()); + (this.input = a), (this.gm = new fl(this.input.tileSize)); + } + place([a, p], y) { + const { tile: M, pixel: z } = this.gm.latLonToTileAndPixel( + a, + p, + this.input.tileZoom + ), + T = this.getTileKey(M[0], M[1]); + let s = this.tiles.get(T); + if (!s) { + const B = this.gm.tileBoundsLatLon(M[0], M[1], this.input.tileZoom), + O = Vm(B, !0), + X = new GE({ + coordinates: O, + id: `${this.id}-${T}`, + layerPaint: { + "raster-opacity": this.opacity, + "raster-resampling": "nearest", + }, + tileSize: this.input.tileSize, + beforeLayerId: this.input.beforeLayerId, + }); + X.addTo(this.input.map), this.tiles.set(T, X), (s = X); + } + s.place(z[0], this.input.tileSize - z[1] - 1, y); + } + clear() { + const a = this.input.map; + for (const p of this.tiles.values()) p.removeFrom(a), p.removeDOM(); + this.tiles.clear(); + } + clearAndPlace(a, p) { + this.clear(), this.place(a, p); + } + remove([a, p]) { + const { tile: y, pixel: M } = this.gm.latLonToTileAndPixel( + a, + p, + this.input.tileZoom + ), + z = this.getTileKey(y[0], y[1]), + T = this.tiles.get(z); + T && T.remove(M[0], this.input.tileSize - M[1] - 1); + } + setCanvasOpacity(a) { + this.opacity = a; + for (const p of this.tiles.values()) p.setOpacity(a); + } + getTileKey(a, p) { + return `${a},${p}`; + } +} +class GE { + constructor(a) { + xr(this, "canvas"); + xr(this, "maps", new Set()); + this.input = a; + const p = this.input.tileSize; + (this.canvas = document.createElement("canvas")), + (this.canvas.width = p), + (this.canvas.height = p); + } + place(a, p, y) { + var T; + const M = ((T = Wi.colors) == null ? void 0 : T[y]) ?? Wi.colors[0], + z = this.canvas.getContext("2d"); + if (z) { + const s = z.createImageData(1, 1), + [B, O, X] = M.rgb, + K = y === 0 ? 0 : 255; + (s.data[0] = B), + (s.data[1] = O), + (s.data[2] = X), + (s.data[3] = K), + z.putImageData(s, a, p); + } + } + remove(a, p) { + const y = this.canvas.getContext("2d"); + y && y.clearRect(a, p, 1, 1); + } + addTo(a) { + const p = this.input.id; + a.getSource(p) || + a.addSource(p, { + type: "canvas", + canvas: this.canvas, + coordinates: this.input.coordinates, + }), + a.getLayer(p) || + (a.addLayer({ + id: p, + type: "raster", + source: p, + paint: this.input.layerPaint, + }), + this.input.beforeLayerId && a.moveLayer(p, this.input.beforeLayerId)), + this.maps.add(a); + } + removeFrom(a) { + const { id: p } = this.input; + a.getLayer(p) && a.removeLayer(p), + a.getSource(p) && a.removeSource(p), + this.maps.delete(a); + } + removeDOM() { + this.canvas.remove(); + } + setOpacity(a) { + for (const p of this.maps.values()) + p.setPaintProperty(this.input.id, "raster-opacity", a); + } +} +var HE = Pr( + '' +); +function WE(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = HE(); + ar(y, () => ({ + viewBox: "0 0 24 24", + fill: "currentColor", + xmlns: "http://www.w3.org/2000/svg", + ...p, + })), + $(m, y); +} +var XE = Pr( + '' +); +function YE(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = XE(); + ar(y, () => ({ + viewBox: "0 0 24 24", + fill: "currentColor", + xmlns: "http://www.w3.org/2000/svg", + ...p, + })), + $(m, y); +} +var KE = Te("
                  "); +function ol(m, a) { + Lr(a, !0); + var p = KE(), + y = A(p); + oi(y, () => a.children ?? pa), + k(p), + We(() => + zr( + p, + 1, + `bg-base-100/60 border-base-content/20 -top-15 pointer-events-none absolute left-1/2 line-clamp-1 flex w-max -translate-x-1/2 select-none items-center gap-1 rounded-full border-2 px-3 py-1.5 ${ + a.class ?? "" + }` + ) + ), + $(m, p), + Dr(); +} +var JE = Te('
                  '), + QE = Te("
                  "); +function Xm(m, a) { + Lr(a, !0); + const p = zt(a, "size", 3, 10), + y = zt(a, "x", 19, () => [-0.5, 0.5]), + M = zt(a, "y", 19, () => [0.25, 1]), + z = zt(a, "duration", 3, 2e3), + T = zt(a, "infinite", 3, !1), + s = zt(a, "delay", 19, () => [0, 50]), + B = zt(a, "colorRange", 19, () => [0, 360]), + O = zt(a, "colorArray", 19, () => []), + X = zt(a, "amount", 3, 50), + K = zt(a, "iterationCount", 3, 1), + ne = zt(a, "fallDistance", 3, "100px"), + H = zt(a, "rounded", 3, !1), + fe = zt(a, "cone", 3, !1), + ge = zt(a, "noGravity", 3, !1), + Ie = zt(a, "xSpread", 3, 0.15), + Ae = zt(a, "destroyOnComplete", 3, !0), + De = zt(a, "disableForReducedMotion", 3, !1); + let Ee = st(!1); + Fn(() => { + !Ae() || + T() || + typeof K() == "string" || + setTimeout(() => se(Ee, !0), (z() + s()[1]) * K()); + }); + function Fe(Qe, Le) { + return Math.random() * (Le - Qe) + Qe; + } + function $e() { + return O().length + ? O()[Math.round(Math.random() * (O().length - 1))] + : `hsl(${Math.round(Fe(B()[0], B()[1]))}, 75%, 50%)`; + } + var Je = er(), + qe = Ct(Je); + { + var Ze = (Qe) => { + var Le = QE(); + let et; + hi( + Le, + 21, + () => ({ length: X() }), + hp, + (nt, Ue) => { + var ke = JE(); + We( + (vt, ee, re, he, oe, ze, je, pt, it, ct, It) => + kc( + ke, + ` + --color: ${vt ?? ""}; + --skew: ${ee ?? ""}deg,${re ?? ""}deg; + --rotation-xyz: ${he ?? ""}, ${oe ?? ""}, ${ze ?? ""}; + --rotation-deg: ${je ?? ""}deg; + --translate-y-multiplier: ${pt ?? ""}; + --translate-x-multiplier: ${it ?? ""}; + --scale: ${ct ?? ""}; + --transition-delay: ${It ?? ""}ms; + --transition-duration: ${ + T() ? `calc(${z()}ms * var(--scale))` : `${z()}ms` + };` + ), + [ + $e, + () => Fe(-45, 45), + () => Fe(-45, 45), + () => Fe(-10, 10), + () => Fe(-10, 10), + () => Fe(-10, 10), + () => Fe(0, 360), + () => Fe(M()[0], M()[1]), + () => Fe(y()[0], y()[1]), + () => 0.1 * Fe(2, 10), + () => Fe(s()[0], s()[1]), + ] + ), + $(nt, ke); + } + ), + k(Le), + We( + (nt) => { + (et = zr(Le, 1, "confetti-holder svelte-15ksp55", null, et, nt)), + kc( + Le, + ` + --fall-distance: ${ne() ?? ""}; + --size: ${p() ?? ""}px; + --x-spread: ${1 - Ie()}; + --transition-iteration-count: ${(T() ? "infinite" : K()) ?? ""};` + ); + }, + [ + () => ({ + rounded: H(), + cone: fe(), + "no-gravity": ge(), + "reduced-motion": De(), + }), + ] + ), + $(Qe, Le); + }; + Oe(qe, (Qe) => { + x(Ee) || Qe(Ze); + }); + } + $(m, Je), Dr(); +} +var e8 = async (m, a, p, y) => { + try { + se(a, !0), + await Qr.purchase({ id: p, amount: 1, variant: y.colorIdx }), + await Mt.refresh(), + aa.notification1.play(); + } catch (M) { + Fr.error(M.message); + } finally { + se(a, !1); + } + }, + t8 = Te( + '' + ), + r8 = Te(' Droplets', 1), + n8 = Te(' Unlocked ', 1), + i8 = (m, a) => a(!1), + a8 = Te( + '

                  Unlock

                  Permanently unlock the color

                  ' + ), + o8 = Te( + ' ' + ); +function s8(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + const y = ft(() => Wi.colors[a.colorIdx]), + M = ft(() => { + var H; + return ((H = Mt.data) == null ? void 0 : H.droplets) ?? 0; + }); + let z = st(!1); + const T = ft(() => (x(z), Mt.hasColor(a.colorIdx))); + Fn(() => { + const H = (fe) => { + fe.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", H), + () => document.removeEventListener("keydown", H) + ); + }); + const s = 100, + B = Wi.products[s]; + var O = o8(), + X = A(O), + K = j(A(X), 2); + { + var ne = (H) => { + var fe = a8(), + ge = A(fe), + Ie = A(ge), + Ae = A(Ie); + np(Ae, { class: "size-6" }); + var De = j(Ae, 4), + Ee = A(De); + Fv(Ee, { + get value() { + return x(M); + }, + }), + k(De), + k(Ie), + yn(2), + k(ge); + var Fe = j(ge, 2), + $e = A(Fe), + Je = A($e); + k($e); + var qe = j($e, 2), + Ze = A(qe, !0); + k(qe); + var Qe = j(qe, 2), + Le = A(Qe); + let et; + var nt = A(Le); + nt.__click = [e8, z, s, a]; + var Ue = A(nt); + { + var ke = (oe) => { + var ze = t8(); + $(oe, ze); + }; + Oe(Ue, (oe) => { + x(z) && oe(ke); + }); + } + var vt = j(Ue, 2); + { + var ee = (oe) => { + var ze = r8(), + je = Ct(ze); + fp(je, { class: "size-5" }); + var pt = j(je); + yn(), + We( + (it) => de(pt, ` ${it ?? ""} `), + [() => B.price.toLocaleString("en-US")] + ), + $(oe, ze); + }, + re = (oe) => { + var ze = n8(), + je = Ct(ze); + np(je, { class: "size-5" }); + var pt = j(je, 2), + it = A(pt); + Xm(it, {}), k(pt), $(oe, ze); + }; + Oe(vt, (oe) => { + x(T) ? oe(re, !1) : oe(ee); + }); + } + k(nt), k(Le); + var he = j(Le, 2); + (he.__click = [i8, p]), + k(Qe), + k(Fe), + k(fe), + We( + (oe, ze) => { + kc( + Je, + `background: rgb(${x(y).rgb[0]} ${x(y).rgb[1]} ${x(y).rgb[2]})` + ), + Tr(Je, "aria-label", x(y).name), + de(Ze, x(y).name), + Tr(Le, "data-tip", oe), + (et = zr(Le, 1, "", null, et, ze)), + (nt.disabled = x(M) < B.price || x(z) || x(T)); + }, + [() => gp(), () => ({ tooltip: !x(T) && x(M) < B.price })] + ), + $(H, fe); + }; + Oe(K, (H) => { + Mt.data && H(ne); + }); + } + k(X), + yn(2), + k(O), + Ni(O, () => (H) => { + Wr(() => { + p() ? H.show() : H.close(); + }); + }), + di("close", O, () => p(!1)), + $(m, O), + Dr(); +} +$n(["click"]); +var Tm = function () { + return ( + (Tm = + Object.assign || + function (a) { + for (var p, y = 1, M = arguments.length; y < M; y++) { + p = arguments[y]; + for (var z in p) + Object.prototype.hasOwnProperty.call(p, z) && (a[z] = p[z]); + } + return a; + }), + Tm.apply(this, arguments) + ); +}; +function Po(m, a, p, y) { + function M(z) { + return z instanceof p + ? z + : new p(function (T) { + T(z); + }); + } + return new (p || (p = Promise))(function (z, T) { + function s(X) { + try { + O(y.next(X)); + } catch (K) { + T(K); + } + } + function B(X) { + try { + O(y.throw(X)); + } catch (K) { + T(K); + } + } + function O(X) { + X.done ? z(X.value) : M(X.value).then(s, B); + } + O((y = y.apply(m, a || [])).next()); + }); +} +function Io(m, a) { + var p = { + label: 0, + sent: function () { + if (z[0] & 1) throw z[1]; + return z[1]; + }, + trys: [], + ops: [], + }, + y, + M, + z, + T = Object.create( + (typeof Iterator == "function" ? Iterator : Object).prototype + ); + return ( + (T.next = s(0)), + (T.throw = s(1)), + (T.return = s(2)), + typeof Symbol == "function" && + (T[Symbol.iterator] = function () { + return this; + }), + T + ); + function s(O) { + return function (X) { + return B([O, X]); + }; + } + function B(O) { + if (y) throw new TypeError("Generator is already executing."); + for (; T && ((T = 0), O[0] && (p = 0)), p; ) + try { + if ( + ((y = 1), + M && + (z = + O[0] & 2 + ? M.return + : O[0] + ? M.throw || ((z = M.return) && z.call(M), 0) + : M.next) && + !(z = z.call(M, O[1])).done) + ) + return z; + switch (((M = 0), z && (O = [O[0] & 2, z.value]), O[0])) { + case 0: + case 1: + z = O; + break; + case 4: + return p.label++, { value: O[1], done: !1 }; + case 5: + p.label++, (M = O[1]), (O = [0]); + continue; + case 7: + (O = p.ops.pop()), p.trys.pop(); + continue; + default: + if ( + ((z = p.trys), + !(z = z.length > 0 && z[z.length - 1]) && + (O[0] === 6 || O[0] === 2)) + ) { + p = 0; + continue; + } + if (O[0] === 3 && (!z || (O[1] > z[0] && O[1] < z[3]))) { + p.label = O[1]; + break; + } + if (O[0] === 6 && p.label < z[1]) { + (p.label = z[1]), (z = O); + break; + } + if (z && p.label < z[2]) { + (p.label = z[2]), p.ops.push(O); + break; + } + z[2] && p.ops.pop(), p.trys.pop(); + continue; + } + O = a.call(m, p); + } catch (X) { + (O = [6, X]), (M = 0); + } finally { + y = z = 0; + } + if (O[0] & 5) throw O[1]; + return { value: O[0] ? O[1] : void 0, done: !0 }; + } +} +function A0(m, a, p) { + if (p || arguments.length === 2) + for (var y = 0, M = a.length, z; y < M; y++) + (z || !(y in a)) && + (z || (z = Array.prototype.slice.call(a, 0, y)), (z[y] = a[y])); + return m.concat(z || Array.prototype.slice.call(a)); +} +var E0 = "4.6.2"; +function ip(m, a) { + return new Promise(function (p) { + return setTimeout(p, m, a); + }); +} +function l8() { + return new Promise(function (m) { + var a = new MessageChannel(); + (a.port1.onmessage = function () { + return m(); + }), + a.port2.postMessage(null); + }); +} +function c8(m, a) { + a === void 0 && (a = 1 / 0); + var p = window.requestIdleCallback; + return p + ? new Promise(function (y) { + return p.call( + window, + function () { + return y(); + }, + { timeout: a } + ); + }) + : ip(Math.min(m, a)); +} +function z0(m) { + return !!m && typeof m.then == "function"; +} +function cv(m, a) { + try { + var p = m(); + z0(p) + ? p.then( + function (y) { + return a(!0, y); + }, + function (y) { + return a(!1, y); + } + ) + : a(!0, p); + } catch (y) { + a(!1, y); + } +} +function uv(m, a, p) { + return ( + p === void 0 && (p = 16), + Po(this, void 0, void 0, function () { + var y, M, z, T; + return Io(this, function (s) { + switch (s.label) { + case 0: + (y = Array(m.length)), (M = Date.now()), (z = 0), (s.label = 1); + case 1: + return z < m.length + ? ((y[z] = a(m[z], z)), + (T = Date.now()), + T >= M + p ? ((M = T), [4, l8()]) : [3, 3]) + : [3, 4]; + case 2: + s.sent(), (s.label = 3); + case 3: + return ++z, [3, 1]; + case 4: + return [2, y]; + } + }); + }) + ); +} +function $u(m) { + return m.then(void 0, function () {}), m; +} +function u8(m, a) { + for (var p = 0, y = m.length; p < y; ++p) if (m[p] === a) return !0; + return !1; +} +function h8(m, a) { + return !u8(m, a); +} +function Ym(m) { + return parseInt(m); +} +function lo(m) { + return parseFloat(m); +} +function Go(m, a) { + return typeof m == "number" && isNaN(m) ? a : m; +} +function fa(m) { + return m.reduce(function (a, p) { + return a + (p ? 1 : 0); + }, 0); +} +function L0(m, a) { + if ((a === void 0 && (a = 1), Math.abs(a) >= 1)) return Math.round(m / a) * a; + var p = 1 / a; + return Math.round(m * p) / p; +} +function d8(m) { + for ( + var a, + p, + y = "Unexpected syntax '".concat(m, "'"), + M = /^\s*([a-z-]*)(.*)$/i.exec(m), + z = M[1] || void 0, + T = {}, + s = /([.:#][\w-]+|\[.+?\])/gi, + B = function (ne, H) { + (T[ne] = T[ne] || []), T[ne].push(H); + }; + ; + + ) { + var O = s.exec(M[2]); + if (!O) break; + var X = O[0]; + switch (X[0]) { + case ".": + B("class", X.slice(1)); + break; + case "#": + B("id", X.slice(1)); + break; + case "[": { + var K = /^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec( + X + ); + if (K) + B( + K[1], + (p = (a = K[4]) !== null && a !== void 0 ? a : K[5]) !== null && + p !== void 0 + ? p + : "" + ); + else throw new Error(y); + break; + } + default: + throw new Error(y); + } + } + return [z, T]; +} +function p8(m) { + for (var a = new Uint8Array(m.length), p = 0; p < m.length; p++) { + var y = m.charCodeAt(p); + if (y > 127) return new TextEncoder().encode(m); + a[p] = y; + } + return a; +} +function bs(m, a) { + var p = m[0] >>> 16, + y = m[0] & 65535, + M = m[1] >>> 16, + z = m[1] & 65535, + T = a[0] >>> 16, + s = a[0] & 65535, + B = a[1] >>> 16, + O = a[1] & 65535, + X = 0, + K = 0, + ne = 0, + H = 0; + (H += z + O), + (ne += H >>> 16), + (H &= 65535), + (ne += M + B), + (K += ne >>> 16), + (ne &= 65535), + (K += y + s), + (X += K >>> 16), + (K &= 65535), + (X += p + T), + (X &= 65535), + (m[0] = (X << 16) | K), + (m[1] = (ne << 16) | H); +} +function Ga(m, a) { + var p = m[0] >>> 16, + y = m[0] & 65535, + M = m[1] >>> 16, + z = m[1] & 65535, + T = a[0] >>> 16, + s = a[0] & 65535, + B = a[1] >>> 16, + O = a[1] & 65535, + X = 0, + K = 0, + ne = 0, + H = 0; + (H += z * O), + (ne += H >>> 16), + (H &= 65535), + (ne += M * O), + (K += ne >>> 16), + (ne &= 65535), + (ne += z * B), + (K += ne >>> 16), + (ne &= 65535), + (K += y * O), + (X += K >>> 16), + (K &= 65535), + (K += M * B), + (X += K >>> 16), + (K &= 65535), + (K += z * s), + (X += K >>> 16), + (K &= 65535), + (X += p * O + y * B + M * s + z * T), + (X &= 65535), + (m[0] = (X << 16) | K), + (m[1] = (ne << 16) | H); +} +function fc(m, a) { + var p = m[0]; + (a %= 64), + a === 32 + ? ((m[0] = m[1]), (m[1] = p)) + : a < 32 + ? ((m[0] = (p << a) | (m[1] >>> (32 - a))), + (m[1] = (m[1] << a) | (p >>> (32 - a)))) + : ((a -= 32), + (m[0] = (m[1] << a) | (p >>> (32 - a))), + (m[1] = (p << a) | (m[1] >>> (32 - a)))); +} +function Na(m, a) { + (a %= 64), + a !== 0 && + (a < 32 + ? ((m[0] = m[1] >>> (32 - a)), (m[1] = m[1] << a)) + : ((m[0] = m[1] << (a - 32)), (m[1] = 0))); +} +function ri(m, a) { + (m[0] ^= a[0]), (m[1] ^= a[1]); +} +var f8 = [4283543511, 3981806797], + m8 = [3301882366, 444984403]; +function hv(m) { + var a = [0, m[0] >>> 1]; + ri(m, a), + Ga(m, f8), + (a[1] = m[0] >>> 1), + ri(m, a), + Ga(m, m8), + (a[1] = m[0] >>> 1), + ri(m, a); +} +var $d = [2277735313, 289559509], + Gd = [1291169091, 658871167], + dv = [0, 5], + _8 = [0, 1390208809], + g8 = [0, 944331445]; +function v8(m, a) { + var p = p8(m); + a = a || 0; + var y = [0, p.length], + M = y[1] % 16, + z = y[1] - M, + T = [0, a], + s = [0, a], + B = [0, 0], + O = [0, 0], + X; + for (X = 0; X < z; X = X + 16) + (B[0] = p[X + 4] | (p[X + 5] << 8) | (p[X + 6] << 16) | (p[X + 7] << 24)), + (B[1] = p[X] | (p[X + 1] << 8) | (p[X + 2] << 16) | (p[X + 3] << 24)), + (O[0] = + p[X + 12] | (p[X + 13] << 8) | (p[X + 14] << 16) | (p[X + 15] << 24)), + (O[1] = + p[X + 8] | (p[X + 9] << 8) | (p[X + 10] << 16) | (p[X + 11] << 24)), + Ga(B, $d), + fc(B, 31), + Ga(B, Gd), + ri(T, B), + fc(T, 27), + bs(T, s), + Ga(T, dv), + bs(T, _8), + Ga(O, Gd), + fc(O, 33), + Ga(O, $d), + ri(s, O), + fc(s, 31), + bs(s, T), + Ga(s, dv), + bs(s, g8); + (B[0] = 0), (B[1] = 0), (O[0] = 0), (O[1] = 0); + var K = [0, 0]; + switch (M) { + case 15: + (K[1] = p[X + 14]), Na(K, 48), ri(O, K); + case 14: + (K[1] = p[X + 13]), Na(K, 40), ri(O, K); + case 13: + (K[1] = p[X + 12]), Na(K, 32), ri(O, K); + case 12: + (K[1] = p[X + 11]), Na(K, 24), ri(O, K); + case 11: + (K[1] = p[X + 10]), Na(K, 16), ri(O, K); + case 10: + (K[1] = p[X + 9]), Na(K, 8), ri(O, K); + case 9: + (K[1] = p[X + 8]), ri(O, K), Ga(O, Gd), fc(O, 33), Ga(O, $d), ri(s, O); + case 8: + (K[1] = p[X + 7]), Na(K, 56), ri(B, K); + case 7: + (K[1] = p[X + 6]), Na(K, 48), ri(B, K); + case 6: + (K[1] = p[X + 5]), Na(K, 40), ri(B, K); + case 5: + (K[1] = p[X + 4]), Na(K, 32), ri(B, K); + case 4: + (K[1] = p[X + 3]), Na(K, 24), ri(B, K); + case 3: + (K[1] = p[X + 2]), Na(K, 16), ri(B, K); + case 2: + (K[1] = p[X + 1]), Na(K, 8), ri(B, K); + case 1: + (K[1] = p[X]), ri(B, K), Ga(B, $d), fc(B, 31), Ga(B, Gd), ri(T, B); + } + return ( + ri(T, y), + ri(s, y), + bs(T, s), + bs(s, T), + hv(T), + hv(s), + bs(T, s), + bs(s, T), + ("00000000" + (T[0] >>> 0).toString(16)).slice(-8) + + ("00000000" + (T[1] >>> 0).toString(16)).slice(-8) + + ("00000000" + (s[0] >>> 0).toString(16)).slice(-8) + + ("00000000" + (s[1] >>> 0).toString(16)).slice(-8) + ); +} +function y8(m) { + var a; + return Tm( + { + name: m.name, + message: m.message, + stack: + (a = m.stack) === null || a === void 0 + ? void 0 + : a.split(` +`), + }, + m + ); +} +function x8(m) { + return /^function\s.*?\{\s*\[native code]\s*}$/.test(String(m)); +} +function b8(m) { + return typeof m != "function"; +} +function w8(m, a) { + var p = $u( + new Promise(function (y) { + var M = Date.now(); + cv(m.bind(null, a), function () { + for (var z = [], T = 0; T < arguments.length; T++) z[T] = arguments[T]; + var s = Date.now() - M; + if (!z[0]) + return y(function () { + return { error: z[1], duration: s }; + }); + var B = z[1]; + if (b8(B)) + return y(function () { + return { value: B, duration: s }; + }); + y(function () { + return new Promise(function (O) { + var X = Date.now(); + cv(B, function () { + for (var K = [], ne = 0; ne < arguments.length; ne++) + K[ne] = arguments[ne]; + var H = s + Date.now() - X; + if (!K[0]) return O({ error: K[1], duration: H }); + O({ value: K[1], duration: H }); + }); + }); + }); + }); + }) + ); + return function () { + return p.then(function (M) { + return M(); + }); + }; +} +function T8(m, a, p, y) { + var M = Object.keys(m).filter(function (T) { + return h8(p, T); + }), + z = $u( + uv( + M, + function (T) { + return w8(m[T], a); + }, + y + ) + ); + return function () { + return Po(this, void 0, void 0, function () { + var s, B, O, X, K; + return Io(this, function (ne) { + switch (ne.label) { + case 0: + return [4, z]; + case 1: + return ( + (s = ne.sent()), + [ + 4, + uv( + s, + function (H) { + return $u(H()); + }, + y + ), + ] + ); + case 2: + return (B = ne.sent()), [4, Promise.all(B)]; + case 3: + for (O = ne.sent(), X = {}, K = 0; K < M.length; ++K) + X[M[K]] = O[K]; + return [2, X]; + } + }); + }); + }; +} +function D0() { + var m = window, + a = navigator; + return ( + fa([ + "MSCSSMatrix" in m, + "msSetImmediate" in m, + "msIndexedDB" in m, + "msMaxTouchPoints" in a, + "msPointerEnabled" in a, + ]) >= 4 + ); +} +function C8() { + var m = window, + a = navigator; + return ( + fa([ + "msWriteProfilerMark" in m, + "MSStream" in m, + "msLaunchUri" in a, + "msSaveBlob" in a, + ]) >= 3 && !D0() + ); +} +function Dh() { + var m = window, + a = navigator; + return ( + fa([ + "webkitPersistentStorage" in a, + "webkitTemporaryStorage" in a, + (a.vendor || "").indexOf("Google") === 0, + "webkitResolveLocalFileSystemURL" in m, + "BatteryManager" in m, + "webkitMediaStream" in m, + "webkitSpeechGrammar" in m, + ]) >= 5 + ); +} +function ho() { + var m = window, + a = navigator; + return ( + fa([ + "ApplePayError" in m, + "CSSPrimitiveValue" in m, + "Counter" in m, + a.vendor.indexOf("Apple") === 0, + "RGBColor" in m, + "WebKitMediaKeys" in m, + ]) >= 4 + ); +} +function Km() { + var m = window, + a = m.HTMLElement, + p = m.Document; + return ( + fa([ + "safari" in m, + !("ongestureend" in m), + !("TouchEvent" in m), + !("orientation" in m), + a && !("autocapitalize" in a.prototype), + p && "pointerLockElement" in p.prototype, + ]) >= 4 + ); +} +function Rh() { + var m = window; + return x8(m.print) && String(m.browser) === "[object WebPageNamespace]"; +} +function R0() { + var m, + a, + p = window; + return ( + fa([ + "buildID" in navigator, + "MozAppearance" in + ((a = + (m = document.documentElement) === null || m === void 0 + ? void 0 + : m.style) !== null && a !== void 0 + ? a + : {}), + "onmozfullscreenchange" in p, + "mozInnerScreenX" in p, + "CSSMozDocumentRule" in p, + "CanvasCaptureMediaStream" in p, + ]) >= 4 + ); +} +function S8() { + var m = window; + return ( + fa([ + !("MediaSettingsRange" in m), + "RTCEncodedAudioFrame" in m, + "" + m.Intl == "[object Intl]", + "" + m.Reflect == "[object Reflect]", + ]) >= 3 + ); +} +function P8() { + var m = window, + a = m.URLPattern; + return ( + fa([ + "union" in Set.prototype, + "Iterator" in m, + a && "hasRegExpGroups" in a.prototype, + "RGB8" in WebGLRenderingContext.prototype, + ]) >= 3 + ); +} +function I8() { + var m = window; + return ( + fa([ + "DOMRectList" in m, + "RTCPeerConnectionIceEvent" in m, + "SVGGeometryElement" in m, + "ontransitioncancel" in m, + ]) >= 3 + ); +} +function Bh() { + var m = window, + a = navigator, + p = m.CSS, + y = m.HTMLButtonElement; + return ( + fa([ + !("getStorageUpdates" in a), + y && "popover" in y.prototype, + "CSSCounterStyleRule" in m, + p.supports("font-size-adjust: ex-height 0.5"), + p.supports("text-transform: full-width"), + ]) >= 4 + ); +} +function M8() { + if (navigator.platform === "iPad") return !0; + var m = screen, + a = m.width / m.height; + return ( + fa([ + "MediaSource" in window, + !!Element.prototype.webkitRequestFullscreen, + a > 0.65 && a < 1.53, + ]) >= 2 + ); +} +function k8() { + var m = document; + return ( + m.fullscreenElement || + m.msFullscreenElement || + m.mozFullScreenElement || + m.webkitFullscreenElement || + null + ); +} +function A8() { + var m = document; + return ( + m.exitFullscreen || + m.msExitFullscreen || + m.mozCancelFullScreen || + m.webkitExitFullscreen + ).call(m); +} +function Jm() { + var m = Dh(), + a = R0(), + p = window, + y = navigator, + M = "connection"; + return m + ? fa([ + !("SharedWorker" in p), + y[M] && "ontypechange" in y[M], + !("sinkId" in new Audio()), + ]) >= 2 + : a + ? fa([ + "onorientationchange" in p, + "orientation" in p, + /android/i.test(y.appVersion), + ]) >= 2 + : !1; +} +function E8() { + var m = navigator, + a = window, + p = Audio.prototype, + y = a.visualViewport; + return ( + fa([ + "srLatency" in p, + "srChannelCount" in p, + "devicePosture" in m, + y && "segments" in y, + "getTextInformation" in Image.prototype, + ]) >= 3 + ); +} +function z8() { + return R8() ? -4 : L8(); +} +function L8() { + var m = window, + a = m.OfflineAudioContext || m.webkitOfflineAudioContext; + if (!a) return -2; + if (D8()) return -1; + var p = 4500, + y = 5e3, + M = new a(1, y, 44100), + z = M.createOscillator(); + (z.type = "triangle"), (z.frequency.value = 1e4); + var T = M.createDynamicsCompressor(); + (T.threshold.value = -50), + (T.knee.value = 40), + (T.ratio.value = 12), + (T.attack.value = 0), + (T.release.value = 0.25), + z.connect(T), + T.connect(M.destination), + z.start(0); + var s = B8(M), + B = s[0], + O = s[1], + X = $u( + B.then( + function (K) { + return F8(K.getChannelData(0).subarray(p)); + }, + function (K) { + if (K.name === "timeout" || K.name === "suspended") return -3; + throw K; + } + ) + ); + return function () { + return O(), X; + }; +} +function D8() { + return ho() && !Km() && !I8(); +} +function R8() { + return (ho() && Bh() && Rh()) || (Dh() && E8() && P8()); +} +function B8(m) { + var a = 3, + p = 500, + y = 500, + M = 5e3, + z = function () {}, + T = new Promise(function (s, B) { + var O = !1, + X = 0, + K = 0; + m.oncomplete = function (fe) { + return s(fe.renderedBuffer); + }; + var ne = function () { + setTimeout(function () { + return B(pv("timeout")); + }, Math.min(y, K + M - Date.now())); + }, + H = function () { + try { + var fe = m.startRendering(); + switch ((z0(fe) && $u(fe), m.state)) { + case "running": + (K = Date.now()), O && ne(); + break; + case "suspended": + document.hidden || X++, + O && X >= a ? B(pv("suspended")) : setTimeout(H, p); + break; + } + } catch (ge) { + B(ge); + } + }; + H(), + (z = function () { + O || ((O = !0), K > 0 && ne()); + }); + }); + return [T, z]; +} +function F8(m) { + for (var a = 0, p = 0; p < m.length; ++p) a += Math.abs(m[p]); + return a; +} +function pv(m) { + var a = new Error(m); + return (a.name = m), a; +} +function B0(m, a, p) { + var y, M, z; + return ( + p === void 0 && (p = 50), + Po(this, void 0, void 0, function () { + var T, s; + return Io(this, function (B) { + switch (B.label) { + case 0: + (T = document), (B.label = 1); + case 1: + return T.body ? [3, 3] : [4, ip(p)]; + case 2: + return B.sent(), [3, 1]; + case 3: + (s = T.createElement("iframe")), (B.label = 4); + case 4: + return ( + B.trys.push([4, , 10, 11]), + [ + 4, + new Promise(function (O, X) { + var K = !1, + ne = function () { + (K = !0), O(); + }, + H = function (Ie) { + (K = !0), X(Ie); + }; + (s.onload = ne), (s.onerror = H); + var fe = s.style; + fe.setProperty("display", "block", "important"), + (fe.position = "absolute"), + (fe.top = "0"), + (fe.left = "0"), + (fe.visibility = "hidden"), + a && "srcdoc" in s + ? (s.srcdoc = a) + : (s.src = "about:blank"), + T.body.appendChild(s); + var ge = function () { + var Ie, Ae; + K || + (((Ae = + (Ie = s.contentWindow) === null || Ie === void 0 + ? void 0 + : Ie.document) === null || Ae === void 0 + ? void 0 + : Ae.readyState) === "complete" + ? ne() + : setTimeout(ge, 10)); + }; + ge(); + }), + ] + ); + case 5: + B.sent(), (B.label = 6); + case 6: + return !( + (M = + (y = s.contentWindow) === null || y === void 0 + ? void 0 + : y.document) === null || M === void 0 + ) && M.body + ? [3, 8] + : [4, ip(p)]; + case 7: + return B.sent(), [3, 6]; + case 8: + return [4, m(s, s.contentWindow)]; + case 9: + return [2, B.sent()]; + case 10: + return ( + (z = s.parentNode) === null || z === void 0 || z.removeChild(s), + [7] + ); + case 11: + return [2]; + } + }); + }) + ); +} +function O8(m) { + for ( + var a = d8(m), + p = a[0], + y = a[1], + M = document.createElement(p ?? "div"), + z = 0, + T = Object.keys(y); + z < T.length; + z++ + ) { + var s = T[z], + B = y[s].join(" "); + s === "style" ? N8(M.style, B) : M.setAttribute(s, B); + } + return M; +} +function N8(m, a) { + for (var p = 0, y = a.split(";"); p < y.length; p++) { + var M = y[p], + z = /^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(M); + if (z) { + var T = z[1], + s = z[2], + B = z[4]; + m.setProperty(T, s, B || ""); + } + } +} +function j8() { + for (var m = window; ; ) { + var a = m.parent; + if (!a || a === m) return !1; + try { + if (a.location.origin !== m.location.origin) return !0; + } catch (p) { + if (p instanceof Error && p.name === "SecurityError") return !0; + throw p; + } + m = a; + } +} +var V8 = "mmMwWLliI0O&1", + q8 = "48px", + mc = ["monospace", "sans-serif", "serif"], + fv = [ + "sans-serif-thin", + "ARNO PRO", + "Agency FB", + "Arabic Typesetting", + "Arial Unicode MS", + "AvantGarde Bk BT", + "BankGothic Md BT", + "Batang", + "Bitstream Vera Sans Mono", + "Calibri", + "Century", + "Century Gothic", + "Clarendon", + "EUROSTILE", + "Franklin Gothic", + "Futura Bk BT", + "Futura Md BT", + "GOTHAM", + "Gill Sans", + "HELV", + "Haettenschweiler", + "Helvetica Neue", + "Humanst521 BT", + "Leelawadee", + "Letter Gothic", + "Levenim MT", + "Lucida Bright", + "Lucida Sans", + "Menlo", + "MS Mincho", + "MS Outlook", + "MS Reference Specialty", + "MS UI Gothic", + "MT Extra", + "MYRIAD PRO", + "Marlett", + "Meiryo UI", + "Microsoft Uighur", + "Minion Pro", + "Monotype Corsiva", + "PMingLiU", + "Pristina", + "SCRIPTINA", + "Segoe UI Light", + "Serifa", + "SimHei", + "Small Fonts", + "Staccato222 BT", + "TRAJAN PRO", + "Univers CE 55 Medium", + "Vrinda", + "ZWAdobeF", + ]; +function Z8() { + var m = this; + return B0(function (a, p) { + var y = p.document; + return Po(m, void 0, void 0, function () { + var M, z, T, s, B, O, X, K, ne, H, fe, ge; + return Io(this, function (Ie) { + for ( + M = y.body, + M.style.fontSize = q8, + z = y.createElement("div"), + z.style.setProperty("visibility", "hidden", "important"), + T = {}, + s = {}, + B = function (Ae) { + var De = y.createElement("span"), + Ee = De.style; + return ( + (Ee.position = "absolute"), + (Ee.top = "0"), + (Ee.left = "0"), + (Ee.fontFamily = Ae), + (De.textContent = V8), + z.appendChild(De), + De + ); + }, + O = function (Ae, De) { + return B("'".concat(Ae, "',").concat(De)); + }, + X = function () { + return mc.map(B); + }, + K = function () { + for ( + var Ae = {}, + De = function (Je) { + Ae[Je] = mc.map(function (qe) { + return O(Je, qe); + }); + }, + Ee = 0, + Fe = fv; + Ee < Fe.length; + Ee++ + ) { + var $e = Fe[Ee]; + De($e); + } + return Ae; + }, + ne = function (Ae) { + return mc.some(function (De, Ee) { + return ( + Ae[Ee].offsetWidth !== T[De] || Ae[Ee].offsetHeight !== s[De] + ); + }); + }, + H = X(), + fe = K(), + M.appendChild(z), + ge = 0; + ge < mc.length; + ge++ + ) + (T[mc[ge]] = H[ge].offsetWidth), (s[mc[ge]] = H[ge].offsetHeight); + return [ + 2, + fv.filter(function (Ae) { + return ne(fe[Ae]); + }), + ]; + }); + }); + }); +} +function U8() { + var m = navigator.plugins; + if (m) { + for (var a = [], p = 0; p < m.length; ++p) { + var y = m[p]; + if (y) { + for (var M = [], z = 0; z < y.length; ++z) { + var T = y[z]; + M.push({ type: T.type, suffixes: T.suffixes }); + } + a.push({ name: y.name, description: y.description, mimeTypes: M }); + } + } + return a; + } +} +function $8() { + return G8(Q8()); +} +function G8(m) { + var a, + p = !1, + y, + M, + z = H8(), + T = z[0], + s = z[1]; + return ( + W8(T, s) + ? ((p = X8(s)), + m ? (y = M = "skipped") : ((a = Y8(T, s)), (y = a[0]), (M = a[1]))) + : (y = M = "unsupported"), + { winding: p, geometry: y, text: M } + ); +} +function H8() { + var m = document.createElement("canvas"); + return (m.width = 1), (m.height = 1), [m, m.getContext("2d")]; +} +function W8(m, a) { + return !!(a && m.toDataURL); +} +function X8(m) { + return ( + m.rect(0, 0, 10, 10), m.rect(2, 2, 6, 6), !m.isPointInPath(5, 5, "evenodd") + ); +} +function Y8(m, a) { + K8(m, a); + var p = Vf(m), + y = Vf(m); + if (p !== y) return ["unstable", "unstable"]; + J8(m, a); + var M = Vf(m); + return [M, p]; +} +function K8(m, a) { + (m.width = 240), + (m.height = 60), + (a.textBaseline = "alphabetic"), + (a.fillStyle = "#f60"), + a.fillRect(100, 1, 62, 20), + (a.fillStyle = "#069"), + (a.font = '11pt "Times New Roman"'); + var p = "Cwm fjordbank gly ".concat("😃"); + a.fillText(p, 2, 15), + (a.fillStyle = "rgba(102, 204, 0, 0.2)"), + (a.font = "18pt Arial"), + a.fillText(p, 4, 45); +} +function J8(m, a) { + (m.width = 122), (m.height = 110), (a.globalCompositeOperation = "multiply"); + for ( + var p = 0, + y = [ + ["#f2f", 40, 40], + ["#2ff", 80, 40], + ["#ff2", 60, 80], + ]; + p < y.length; + p++ + ) { + var M = y[p], + z = M[0], + T = M[1], + s = M[2]; + (a.fillStyle = z), + a.beginPath(), + a.arc(T, s, 40, 0, Math.PI * 2, !0), + a.closePath(), + a.fill(); + } + (a.fillStyle = "#f9c"), + a.arc(60, 60, 60, 0, Math.PI * 2, !0), + a.arc(60, 60, 20, 0, Math.PI * 2, !0), + a.fill("evenodd"); +} +function Vf(m) { + return m.toDataURL(); +} +function Q8() { + return ho() && Bh() && Rh(); +} +function ez() { + var m = navigator, + a = 0, + p; + m.maxTouchPoints !== void 0 + ? (a = Ym(m.maxTouchPoints)) + : m.msMaxTouchPoints !== void 0 && (a = m.msMaxTouchPoints); + try { + document.createEvent("TouchEvent"), (p = !0); + } catch { + p = !1; + } + var y = "ontouchstart" in window; + return { maxTouchPoints: a, touchEvent: p, touchStart: y }; +} +function tz() { + return navigator.oscpu; +} +function rz() { + var m = navigator, + a = [], + p = m.language || m.userLanguage || m.browserLanguage || m.systemLanguage; + if ((p !== void 0 && a.push([p]), Array.isArray(m.languages))) + (Dh() && S8()) || a.push(m.languages); + else if (typeof m.languages == "string") { + var y = m.languages; + y && a.push(y.split(",")); + } + return a; +} +function nz() { + return window.screen.colorDepth; +} +function iz() { + return Go(lo(navigator.deviceMemory), void 0); +} +function az() { + if (!(ho() && Bh() && Rh())) return oz(); +} +function oz() { + var m = screen, + a = function (y) { + return Go(Ym(y), null); + }, + p = [a(m.width), a(m.height)]; + return p.sort().reverse(), p; +} +var sz = 2500, + lz = 10, + tp, + qf; +function cz() { + if (qf === void 0) { + var m = function () { + var a = Cm(); + Sm(a) ? (qf = setTimeout(m, sz)) : ((tp = a), (qf = void 0)); + }; + m(); + } +} +function uz() { + var m = this; + return ( + cz(), + function () { + return Po(m, void 0, void 0, function () { + var a; + return Io(this, function (p) { + switch (p.label) { + case 0: + return ( + (a = Cm()), + Sm(a) + ? tp + ? [2, A0([], tp, !0)] + : k8() + ? [4, A8()] + : [3, 2] + : [3, 2] + ); + case 1: + p.sent(), (a = Cm()), (p.label = 2); + case 2: + return Sm(a) || (tp = a), [2, a]; + } + }); + }); + } + ); +} +function hz() { + var m = this; + if (ho() && Bh() && Rh()) + return function () { + return Promise.resolve(void 0); + }; + var a = uz(); + return function () { + return Po(m, void 0, void 0, function () { + var p, y; + return Io(this, function (M) { + switch (M.label) { + case 0: + return [4, a()]; + case 1: + return ( + (p = M.sent()), + (y = function (z) { + return z === null ? null : L0(z, lz); + }), + [2, [y(p[0]), y(p[1]), y(p[2]), y(p[3])]] + ); + } + }); + }); + }; +} +function Cm() { + var m = screen; + return [ + Go(lo(m.availTop), null), + Go(lo(m.width) - lo(m.availWidth) - Go(lo(m.availLeft), 0), null), + Go(lo(m.height) - lo(m.availHeight) - Go(lo(m.availTop), 0), null), + Go(lo(m.availLeft), null), + ]; +} +function Sm(m) { + for (var a = 0; a < 4; ++a) if (m[a]) return !1; + return !0; +} +function dz() { + return Go(Ym(navigator.hardwareConcurrency), void 0); +} +function pz() { + var m, + a = (m = window.Intl) === null || m === void 0 ? void 0 : m.DateTimeFormat; + if (a) { + var p = new a().resolvedOptions().timeZone; + if (p) return p; + } + var y = -fz(); + return "UTC".concat(y >= 0 ? "+" : "").concat(y); +} +function fz() { + var m = new Date().getFullYear(); + return Math.max( + lo(new Date(m, 0, 1).getTimezoneOffset()), + lo(new Date(m, 6, 1).getTimezoneOffset()) + ); +} +function mz() { + try { + return !!window.sessionStorage; + } catch { + return !0; + } +} +function _z() { + try { + return !!window.localStorage; + } catch { + return !0; + } +} +function gz() { + if (!(D0() || C8())) + try { + return !!window.indexedDB; + } catch { + return !0; + } +} +function vz() { + return !!window.openDatabase; +} +function yz() { + return navigator.cpuClass; +} +function xz() { + var m = navigator.platform; + return m === "MacIntel" && ho() && !Km() ? (M8() ? "iPad" : "iPhone") : m; +} +function bz() { + return navigator.vendor || ""; +} +function wz() { + for ( + var m = [], + a = 0, + p = [ + "chrome", + "safari", + "__crWeb", + "__gCrWeb", + "yandex", + "__yb", + "__ybro", + "__firefox__", + "__edgeTrackingPreventionStatistics", + "webkit", + "oprt", + "samsungAr", + "ucweb", + "UCShellJava", + "puffinDevice", + ]; + a < p.length; + a++ + ) { + var y = p[a], + M = window[y]; + M && typeof M == "object" && m.push(y); + } + return m.sort(); +} +function Tz() { + var m = document; + try { + m.cookie = "cookietest=1; SameSite=Strict;"; + var a = m.cookie.indexOf("cookietest=") !== -1; + return ( + (m.cookie = + "cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT"), + a + ); + } catch { + return !1; + } +} +function Cz() { + var m = atob; + return { + abpIndo: [ + "#Iklan-Melayang", + "#Kolom-Iklan-728", + "#SidebarIklan-wrapper", + '[title="ALIENBOLA" i]', + m("I0JveC1CYW5uZXItYWRz"), + ], + abpvn: [ + ".quangcao", + "#mobileCatfish", + m("LmNsb3NlLWFkcw=="), + '[id^="bn_bottom_fixed_"]', + "#pmadv", + ], + adBlockFinland: [ + ".mainostila", + m("LnNwb25zb3JpdA=="), + ".ylamainos", + m("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"), + m("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd"), + ], + adBlockPersian: [ + "#navbar_notice_50", + ".kadr", + 'TABLE[width="140px"]', + "#divAgahi", + m("YVtocmVmXj0iaHR0cDovL2cxLnYuZndtcm0ubmV0L2FkLyJd"), + ], + adBlockWarningRemoval: [ + "#adblock-honeypot", + ".adblocker-root", + ".wp_adblock_detect", + m("LmhlYWRlci1ibG9ja2VkLWFk"), + m("I2FkX2Jsb2NrZXI="), + ], + adGuardAnnoyances: [ + ".hs-sosyal", + "#cookieconsentdiv", + 'div[class^="app_gdpr"]', + ".as-oil", + '[data-cypress="soft-push-notification-modal"]', + ], + adGuardBase: [ + ".BetterJsPopOverlay", + m("I2FkXzMwMFgyNTA="), + m("I2Jhbm5lcmZsb2F0MjI="), + m("I2NhbXBhaWduLWJhbm5lcg=="), + m("I0FkLUNvbnRlbnQ="), + ], + adGuardChinese: [ + m("LlppX2FkX2FfSA=="), + m("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"), + "#widget-quan", + m("YVtocmVmKj0iLzg0OTkyMDIwLnh5eiJd"), + m("YVtocmVmKj0iLjE5NTZobC5jb20vIl0="), + ], + adGuardFrench: [ + "#pavePub", + m("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"), + ".mobile_adhesion", + ".widgetadv", + m("LmFkc19iYW4="), + ], + adGuardGerman: ['aside[data-portal-id="leaderboard"]'], + adGuardJapanese: [ + "#kauli_yad_1", + m("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="), + m("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="), + m("LmFkZ29vZ2xl"), + m("Ll9faXNib29zdFJldHVybkFk"), + ], + adGuardMobile: [ + m("YW1wLWF1dG8tYWRz"), + m("LmFtcF9hZA=="), + 'amp-embed[type="24smi"]', + "#mgid_iframe1", + m("I2FkX2ludmlld19hcmVh"), + ], + adGuardRussian: [ + m("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="), + m("LnJlY2xhbWE="), + 'div[id^="smi2adblock"]', + m("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"), + "#psyduckpockeball", + ], + adGuardSocial: [ + m("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="), + m("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="), + ".etsy-tweet", + "#inlineShare", + ".popup-social", + ], + adGuardSpanishPortuguese: [ + "#barraPublicidade", + "#Publicidade", + "#publiEspecial", + "#queTooltip", + ".cnt-publi", + ], + adGuardTrackingProtection: [ + "#qoo-counter", + m("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="), + m("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="), + m("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="), + "#top100counter", + ], + adGuardTurkish: [ + "#backkapat", + m("I3Jla2xhbWk="), + m("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="), + m("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"), + m("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ=="), + ], + bulgarian: [ + m("dGQjZnJlZW5ldF90YWJsZV9hZHM="), + "#ea_intext_div", + ".lapni-pop-over", + "#xenium_hot_offers", + ], + easyList: [ + ".yb-floorad", + m("LndpZGdldF9wb19hZHNfd2lkZ2V0"), + m("LnRyYWZmaWNqdW5reS1hZA=="), + ".textad_headline", + m("LnNwb25zb3JlZC10ZXh0LWxpbmtz"), + ], + easyListChina: [ + m("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="), + m("LmZyb250cGFnZUFkdk0="), + "#taotaole", + "#aafoot.top_box", + ".cfa_popup", + ], + easyListCookie: [ + ".ezmob-footer", + ".cc-CookieWarning", + "[data-cookie-number]", + m("LmF3LWNvb2tpZS1iYW5uZXI="), + ".sygnal24-gdpr-modal-wrap", + ], + easyListCzechSlovak: [ + "#onlajny-stickers", + m("I3Jla2xhbW5pLWJveA=="), + m("LnJla2xhbWEtbWVnYWJvYXJk"), + ".sklik", + m("W2lkXj0ic2tsaWtSZWtsYW1hIl0="), + ], + easyListDutch: [ + m("I2FkdmVydGVudGll"), + m("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="), + ".adstekst", + m("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="), + "#semilo-lrectangle", + ], + easyListGermany: [ + "#SSpotIMPopSlider", + m("LnNwb25zb3JsaW5rZ3J1ZW4="), + m("I3dlcmJ1bmdza3k="), + m("I3Jla2xhbWUtcmVjaHRzLW1pdHRl"), + m("YVtocmVmXj0iaHR0cHM6Ly9iZDc0Mi5jb20vIl0="), + ], + easyListItaly: [ + m("LmJveF9hZHZfYW5udW5jaQ=="), + ".sb-box-pubbliredazionale", + m("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"), + m("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"), + m("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ=="), + ], + easyListLithuania: [ + m("LnJla2xhbW9zX3RhcnBhcw=="), + m("LnJla2xhbW9zX251b3JvZG9z"), + m("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"), + m("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"), + m("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd"), + ], + estonian: [m("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")], + fanboyAnnoyances: [ + "#ac-lre-player", + ".navigate-to-top", + "#subscribe_popup", + ".newsletter_holder", + "#back-top", + ], + fanboyAntiFacebook: [".util-bar-module-firefly-visible"], + fanboyEnhancedTrackers: [ + ".open.pushModal", + "#issuem-leaky-paywall-articles-zero-remaining-nag", + "#sovrn_container", + 'div[class$="-hide"][zoompage-fontsize][style="display: block;"]', + ".BlockNag__Card", + ], + fanboySocial: [ + "#FollowUs", + "#meteored_share", + "#social_follow", + ".article-sharer", + ".community__social-desc", + ], + frellwitSwedish: [ + m("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="), + m("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="), + "article.category-samarbete", + m("ZGl2LmhvbGlkQWRz"), + "ul.adsmodern", + ], + greekAdBlock: [ + m("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"), + m("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="), + m("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"), + "DIV.agores300", + "TABLE.advright", + ], + hungarian: [ + "#cemp_doboz", + ".optimonk-iframe-container", + m("LmFkX19tYWlu"), + m("W2NsYXNzKj0iR29vZ2xlQWRzIl0="), + "#hirdetesek_box", + ], + iDontCareAboutCookies: [ + '.alert-info[data-block-track*="CookieNotice"]', + ".ModuleTemplateCookieIndicator", + ".o--cookies--container", + "#cookies-policy-sticky", + "#stickyCookieBar", + ], + icelandicAbp: [ + m("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ=="), + ], + latvian: [ + m( + "YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0=" + ), + m( + "YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==" + ), + ], + listKr: [ + m("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="), + m("I2xpdmVyZUFkV3JhcHBlcg=="), + m("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="), + m("aW5zLmZhc3R2aWV3LWFk"), + ".revenue_unit_item.dable", + ], + listeAr: [ + m("LmdlbWluaUxCMUFk"), + ".right-and-left-sponsers", + m("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="), + m("YVtocmVmKj0iYm9vcmFxLm9yZyJd"), + m("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd"), + ], + listeFr: [ + m("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="), + m("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="), + m("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="), + ".site-pub-interstitiel", + 'div[id^="crt-"][data-criteo-id]', + ], + officialPolish: [ + "#ceneo-placeholder-ceneo-12", + m("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"), + m("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="), + m("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="), + m("ZGl2I3NrYXBpZWNfYWQ="), + ], + ro: [ + m("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"), + m("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"), + m( + "YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0=" + ), + m("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd"), + 'a[href^="/url/"]', + ], + ruAd: [ + m("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"), + m("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="), + m("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="), + "#pgeldiz", + ".yandex-rtb-block", + ], + thaiAds: [ + "a[href*=macau-uta-popup]", + m("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="), + m("LmFkczMwMHM="), + ".bumq", + ".img-kosana", + ], + webAnnoyancesUltralist: [ + "#mod-social-share-2", + "#social-tools", + m("LmN0cGwtZnVsbGJhbm5lcg=="), + ".zergnet-recommend", + ".yt.btn-link.btn-md.btn", + ], + }; +} +function Sz(m) { + var a = m === void 0 ? {} : m, + p = a.debug; + return Po(this, void 0, void 0, function () { + var y, M, z, T, s, B; + return Io(this, function (O) { + switch (O.label) { + case 0: + return Pz() + ? ((y = Cz()), + (M = Object.keys(y)), + (z = (B = []).concat.apply( + B, + M.map(function (X) { + return y[X]; + }) + )), + [4, Iz(z)]) + : [2, void 0]; + case 1: + return ( + (T = O.sent()), + p && Mz(y, T), + (s = M.filter(function (X) { + var K = y[X], + ne = fa( + K.map(function (H) { + return T[H]; + }) + ); + return ne > K.length * 0.6; + })), + s.sort(), + [2, s] + ); + } + }); + }); +} +function Pz() { + return ho() || Jm(); +} +function Iz(m) { + var a; + return Po(this, void 0, void 0, function () { + var p, y, M, z, B, T, s, B; + return Io(this, function (O) { + switch (O.label) { + case 0: + for ( + p = document, + y = p.createElement("div"), + M = new Array(m.length), + z = {}, + mv(y), + B = 0; + B < m.length; + ++B + ) + (T = O8(m[B])), + T.tagName === "DIALOG" && T.show(), + (s = p.createElement("div")), + mv(s), + s.appendChild(T), + y.appendChild(s), + (M[B] = T); + O.label = 1; + case 1: + return p.body ? [3, 3] : [4, ip(50)]; + case 2: + return O.sent(), [3, 1]; + case 3: + p.body.appendChild(y); + try { + for (B = 0; B < m.length; ++B) M[B].offsetParent || (z[m[B]] = !0); + } finally { + (a = y.parentNode) === null || a === void 0 || a.removeChild(y); + } + return [2, z]; + } + }); + }); +} +function mv(m) { + m.style.setProperty("visibility", "hidden", "important"), + m.style.setProperty("display", "block", "important"); +} +function Mz(m, a) { + for ( + var p = "DOM blockers debug:\n```", y = 0, M = Object.keys(m); + y < M.length; + y++ + ) { + var z = M[y]; + p += ` +`.concat(z, ":"); + for (var T = 0, s = m[z]; T < s.length; T++) { + var B = s[T]; + p += ` + ` + .concat(a[B] ? "🚫" : "➡️", " ") + .concat(B); + } + } + console.log("".concat(p, "\n```")); +} +function kz() { + for (var m = 0, a = ["rec2020", "p3", "srgb"]; m < a.length; m++) { + var p = a[m]; + if (matchMedia("(color-gamut: ".concat(p, ")")).matches) return p; + } +} +function Az() { + if (_v("inverted")) return !0; + if (_v("none")) return !1; +} +function _v(m) { + return matchMedia("(inverted-colors: ".concat(m, ")")).matches; +} +function Ez() { + if (gv("active")) return !0; + if (gv("none")) return !1; +} +function gv(m) { + return matchMedia("(forced-colors: ".concat(m, ")")).matches; +} +var zz = 100; +function Lz() { + if (matchMedia("(min-monochrome: 0)").matches) { + for (var m = 0; m <= zz; ++m) + if (matchMedia("(max-monochrome: ".concat(m, ")")).matches) return m; + throw new Error("Too high value"); + } +} +function Dz() { + if (_c("no-preference")) return 0; + if (_c("high") || _c("more")) return 1; + if (_c("low") || _c("less")) return -1; + if (_c("forced")) return 10; +} +function _c(m) { + return matchMedia("(prefers-contrast: ".concat(m, ")")).matches; +} +function Rz() { + if (vv("reduce")) return !0; + if (vv("no-preference")) return !1; +} +function vv(m) { + return matchMedia("(prefers-reduced-motion: ".concat(m, ")")).matches; +} +function Bz() { + if (yv("reduce")) return !0; + if (yv("no-preference")) return !1; +} +function yv(m) { + return matchMedia("(prefers-reduced-transparency: ".concat(m, ")")).matches; +} +function Fz() { + if (xv("high")) return !0; + if (xv("standard")) return !1; +} +function xv(m) { + return matchMedia("(dynamic-range: ".concat(m, ")")).matches; +} +var Nn = Math, + da = function () { + return 0; + }; +function Oz() { + var m = Nn.acos || da, + a = Nn.acosh || da, + p = Nn.asin || da, + y = Nn.asinh || da, + M = Nn.atanh || da, + z = Nn.atan || da, + T = Nn.sin || da, + s = Nn.sinh || da, + B = Nn.cos || da, + O = Nn.cosh || da, + X = Nn.tan || da, + K = Nn.tanh || da, + ne = Nn.exp || da, + H = Nn.expm1 || da, + fe = Nn.log1p || da, + ge = function (Ze) { + return Nn.pow(Nn.PI, Ze); + }, + Ie = function (Ze) { + return Nn.log(Ze + Nn.sqrt(Ze * Ze - 1)); + }, + Ae = function (Ze) { + return Nn.log(Ze + Nn.sqrt(Ze * Ze + 1)); + }, + De = function (Ze) { + return Nn.log((1 + Ze) / (1 - Ze)) / 2; + }, + Ee = function (Ze) { + return Nn.exp(Ze) - 1 / Nn.exp(Ze) / 2; + }, + Fe = function (Ze) { + return (Nn.exp(Ze) + 1 / Nn.exp(Ze)) / 2; + }, + $e = function (Ze) { + return Nn.exp(Ze) - 1; + }, + Je = function (Ze) { + return (Nn.exp(2 * Ze) - 1) / (Nn.exp(2 * Ze) + 1); + }, + qe = function (Ze) { + return Nn.log(1 + Ze); + }; + return { + acos: m(0.12312423423423424), + acosh: a(1e308), + acoshPf: Ie(1e154), + asin: p(0.12312423423423424), + asinh: y(1), + asinhPf: Ae(1), + atanh: M(0.5), + atanhPf: De(0.5), + atan: z(0.5), + sin: T(-1e300), + sinh: s(1), + sinhPf: Ee(1), + cos: B(10.000000000123), + cosh: O(1), + coshPf: Fe(1), + tan: X(-1e300), + tanh: K(1), + tanhPf: Je(1), + exp: ne(1), + expm1: H(1), + expm1Pf: $e(1), + log1p: fe(10), + log1pPf: qe(10), + powPI: ge(-100), + }; +} +var Nz = "mmMwWLliI0fiflO&1", + Zf = { + default: [], + apple: [{ font: "-apple-system-body" }], + serif: [{ fontFamily: "serif" }], + sans: [{ fontFamily: "sans-serif" }], + mono: [{ fontFamily: "monospace" }], + min: [{ fontSize: "1px" }], + system: [{ fontFamily: "system-ui" }], + }; +function jz() { + return Vz(function (m, a) { + for (var p = {}, y = {}, M = 0, z = Object.keys(Zf); M < z.length; M++) { + var T = z[M], + s = Zf[T], + B = s[0], + O = B === void 0 ? {} : B, + X = s[1], + K = X === void 0 ? Nz : X, + ne = m.createElement("span"); + (ne.textContent = K), (ne.style.whiteSpace = "nowrap"); + for (var H = 0, fe = Object.keys(O); H < fe.length; H++) { + var ge = fe[H], + Ie = O[ge]; + Ie !== void 0 && (ne.style[ge] = Ie); + } + (p[T] = ne), a.append(m.createElement("br"), ne); + } + for (var Ae = 0, De = Object.keys(Zf); Ae < De.length; Ae++) { + var T = De[Ae]; + y[T] = p[T].getBoundingClientRect().width; + } + return y; + }); +} +function Vz(m, a) { + return ( + a === void 0 && (a = 4e3), + B0(function (p, y) { + var M = y.document, + z = M.body, + T = z.style; + (T.width = "".concat(a, "px")), + (T.webkitTextSizeAdjust = T.textSizeAdjust = "none"), + Dh() + ? (z.style.zoom = "".concat(1 / y.devicePixelRatio)) + : ho() && (z.style.zoom = "reset"); + var s = M.createElement("div"); + return ( + (s.textContent = A0([], Array((a / 20) << 0), !0) + .map(function () { + return "word"; + }) + .join(" ")), + z.appendChild(s), + m(M, z) + ); + }, '') + ); +} +function qz() { + return navigator.pdfViewerEnabled; +} +function Zz() { + var m = new Float32Array(1), + a = new Uint8Array(m.buffer); + return (m[0] = 1 / 0), (m[0] = m[0] - m[0]), a[3]; +} +function Uz() { + var m = window.ApplePaySession; + if (typeof (m == null ? void 0 : m.canMakePayments) != "function") return -1; + if ($z()) return -3; + try { + return m.canMakePayments() ? 1 : 0; + } catch (a) { + return Gz(a); + } +} +var $z = j8; +function Gz(m) { + if ( + m instanceof Error && + m.name === "InvalidAccessError" && + /\bfrom\b.*\binsecure\b/i.test(m.message) + ) + return -2; + throw m; +} +function Hz() { + var m, + a = document.createElement("a"), + p = + (m = a.attributionSourceId) !== null && m !== void 0 + ? m + : a.attributionsourceid; + return p === void 0 ? void 0 : String(p); +} +var F0 = -1, + O0 = -2, + Wz = new Set([ + 10752, 2849, 2884, 2885, 2886, 2928, 2929, 2930, 2931, 2932, 2960, 2961, + 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2978, 3024, 3042, 3088, 3089, + 3106, 3107, 32773, 32777, 32777, 32823, 32824, 32936, 32937, 32938, 32939, + 32968, 32969, 32970, 32971, 3317, 33170, 3333, 3379, 3386, 33901, 33902, + 34016, 34024, 34076, 3408, 3410, 3411, 3412, 3413, 3414, 3415, 34467, 34816, + 34817, 34818, 34819, 34877, 34921, 34930, 35660, 35661, 35724, 35738, 35739, + 36003, 36004, 36005, 36347, 36348, 36349, 37440, 37441, 37443, 7936, 7937, + 7938, + ]), + Xz = new Set([ + 34047, 35723, 36063, 34852, 34853, 34854, 34229, 36392, 36795, 38449, + ]), + Yz = ["FRAGMENT_SHADER", "VERTEX_SHADER"], + Kz = [ + "LOW_FLOAT", + "MEDIUM_FLOAT", + "HIGH_FLOAT", + "LOW_INT", + "MEDIUM_INT", + "HIGH_INT", + ], + N0 = "WEBGL_debug_renderer_info", + Jz = "WEBGL_polygon_mode"; +function Qz(m) { + var a, + p, + y, + M, + z, + T, + s = m.cache, + B = j0(s); + if (!B) return F0; + if (!q0(B)) return O0; + var O = V0() ? null : B.getExtension(N0); + return { + version: + ((a = B.getParameter(B.VERSION)) === null || a === void 0 + ? void 0 + : a.toString()) || "", + vendor: + ((p = B.getParameter(B.VENDOR)) === null || p === void 0 + ? void 0 + : p.toString()) || "", + vendorUnmasked: O + ? (y = B.getParameter(O.UNMASKED_VENDOR_WEBGL)) === null || y === void 0 + ? void 0 + : y.toString() + : "", + renderer: + ((M = B.getParameter(B.RENDERER)) === null || M === void 0 + ? void 0 + : M.toString()) || "", + rendererUnmasked: O + ? (z = B.getParameter(O.UNMASKED_RENDERER_WEBGL)) === null || z === void 0 + ? void 0 + : z.toString() + : "", + shadingLanguageVersion: + ((T = B.getParameter(B.SHADING_LANGUAGE_VERSION)) === null || T === void 0 + ? void 0 + : T.toString()) || "", + }; +} +function eL(m) { + var a = m.cache, + p = j0(a); + if (!p) return F0; + if (!q0(p)) return O0; + var y = p.getSupportedExtensions(), + M = p.getContextAttributes(), + z = [], + T = [], + s = [], + B = [], + O = []; + if (M) + for (var X = 0, K = Object.keys(M); X < K.length; X++) { + var ne = K[X]; + T.push("".concat(ne, "=").concat(M[ne])); + } + for (var H = bv(p), fe = 0, ge = H; fe < ge.length; fe++) { + var Ie = ge[fe], + Ae = p[Ie]; + s.push( + "" + .concat(Ie, "=") + .concat(Ae) + .concat(Wz.has(Ae) ? "=".concat(p.getParameter(Ae)) : "") + ); + } + if (y) + for (var De = 0, Ee = y; De < Ee.length; De++) { + var Fe = Ee[De]; + if (!((Fe === N0 && V0()) || (Fe === Jz && nL()))) { + var $e = p.getExtension(Fe); + if (!$e) { + z.push(Fe); + continue; + } + for (var Je = 0, qe = bv($e); Je < qe.length; Je++) { + var Ie = qe[Je], + Ae = $e[Ie]; + B.push( + "" + .concat(Ie, "=") + .concat(Ae) + .concat(Xz.has(Ae) ? "=".concat(p.getParameter(Ae)) : "") + ); + } + } + } + for (var Ze = 0, Qe = Yz; Ze < Qe.length; Ze++) + for (var Le = Qe[Ze], et = 0, nt = Kz; et < nt.length; et++) { + var Ue = nt[et], + ke = tL(p, Le, Ue); + O.push("".concat(Le, ".").concat(Ue, "=").concat(ke.join(","))); + } + return ( + B.sort(), + s.sort(), + { + contextAttributes: T, + parameters: s, + shaderPrecisions: O, + extensions: y, + extensionParameters: B, + unsupportedExtensions: z, + } + ); +} +function j0(m) { + if (m.webgl) return m.webgl.context; + var a = document.createElement("canvas"), + p; + a.addEventListener("webglCreateContextError", function () { + return (p = void 0); + }); + for (var y = 0, M = ["webgl", "experimental-webgl"]; y < M.length; y++) { + var z = M[y]; + try { + p = a.getContext(z); + } catch {} + if (p) break; + } + return (m.webgl = { context: p }), p; +} +function tL(m, a, p) { + var y = m.getShaderPrecisionFormat(m[a], m[p]); + return y ? [y.rangeMin, y.rangeMax, y.precision] : []; +} +function bv(m) { + var a = Object.keys(m.__proto__); + return a.filter(rL); +} +function rL(m) { + return typeof m == "string" && !m.match(/[^A-Z0-9_x]/); +} +function V0() { + return R0(); +} +function nL() { + return Dh() || ho(); +} +function q0(m) { + return typeof m.getParameter == "function"; +} +function iL() { + var m = Jm() || ho(); + if (!m) return -2; + if (!window.AudioContext) return -1; + var a = new AudioContext().baseLatency; + return a == null ? -1 : isFinite(a) ? a : -3; +} +function aL() { + if (!window.Intl) return -1; + var m = window.Intl.DateTimeFormat; + if (!m) return -2; + var a = m().resolvedOptions().locale; + return !a && a !== "" ? -3 : a; +} +var oL = { + fonts: Z8, + domBlockers: Sz, + fontPreferences: jz, + audio: z8, + screenFrame: hz, + canvas: $8, + osCpu: tz, + languages: rz, + colorDepth: nz, + deviceMemory: iz, + screenResolution: az, + hardwareConcurrency: dz, + timezone: pz, + sessionStorage: mz, + localStorage: _z, + indexedDB: gz, + openDatabase: vz, + cpuClass: yz, + platform: xz, + plugins: U8, + touchSupport: ez, + vendor: bz, + vendorFlavors: wz, + cookiesEnabled: Tz, + colorGamut: kz, + invertedColors: Az, + forcedColors: Ez, + monochrome: Lz, + contrast: Dz, + reducedMotion: Rz, + reducedTransparency: Bz, + hdr: Fz, + math: Oz, + pdfViewerEnabled: qz, + architecture: Zz, + applePay: Uz, + privateClickMeasurement: Hz, + audioBaseLatency: iL, + dateTimeLocale: aL, + webGlBasics: Qz, + webGlExtensions: eL, +}; +function sL(m) { + return T8(oL, m, []); +} +var lL = "$ if upgrade to Pro: https://fpjs.dev/pro"; +function cL(m) { + var a = uL(m), + p = hL(a); + return { score: a, comment: lL.replace(/\$/g, "".concat(p)) }; +} +function uL(m) { + if (Jm()) return 0.4; + if (ho()) return Km() && !(Bh() && Rh()) ? 0.5 : 0.3; + var a = "value" in m.platform ? m.platform.value : ""; + return /^Win/.test(a) ? 0.6 : /^Mac/.test(a) ? 0.5 : 0.7; +} +function hL(m) { + return L0(0.99 + 0.01 * m, 1e-4); +} +function dL(m) { + for (var a = "", p = 0, y = Object.keys(m).sort(); p < y.length; p++) { + var M = y[p], + z = m[M], + T = "error" in z ? "error" : JSON.stringify(z.value); + a += "" + .concat(a ? "|" : "") + .concat(M.replace(/([:|\\])/g, "\\$1"), ":") + .concat(T); + } + return a; +} +function Z0(m) { + return JSON.stringify( + m, + function (a, p) { + return p instanceof Error ? y8(p) : p; + }, + 2 + ); +} +function U0(m) { + return v8(dL(m)); +} +function pL(m) { + var a, + p = cL(m); + return { + get visitorId() { + return a === void 0 && (a = U0(this.components)), a; + }, + set visitorId(y) { + a = y; + }, + confidence: p, + components: m, + version: E0, + }; +} +function fL(m) { + return m === void 0 && (m = 50), c8(m, m * 2); +} +function mL(m, a) { + var p = Date.now(); + return { + get: function (y) { + return Po(this, void 0, void 0, function () { + var M, z, T; + return Io(this, function (s) { + switch (s.label) { + case 0: + return (M = Date.now()), [4, m()]; + case 1: + return ( + (z = s.sent()), + (T = pL(z)), + (a || (y != null && y.debug)) && + console.log( + "Copy the text below to get the debug data:\n\n```\nversion: " + .concat( + T.version, + ` +userAgent: ` + ) + .concat( + navigator.userAgent, + ` +timeBetweenLoadAndGet: ` + ) + .concat( + M - p, + ` +visitorId: ` + ) + .concat( + T.visitorId, + ` +components: ` + ) + .concat(Z0(z), "\n```") + ), + [2, T] + ); + } + }); + }); + }, + }; +} +function _L() { + if (!(window.__fpjs_d_m || Math.random() >= 0.001)) + try { + var m = new XMLHttpRequest(); + m.open( + "get", + "https://m1.openfpcdn.io/fingerprintjs/v".concat(E0, "/npm-monitoring"), + !0 + ), + m.send(); + } catch (a) { + console.error(a); + } +} +function gL(m) { + var a; + return ( + m === void 0 && (m = {}), + Po(this, void 0, void 0, function () { + var p, y, M; + return Io(this, function (z) { + switch (z.label) { + case 0: + return ( + (!((a = m.monitoring) !== null && a !== void 0) || a) && _L(), + (p = m.delayFallback), + (y = m.debug), + [4, fL(p)] + ); + case 1: + return z.sent(), (M = sL({ cache: {}, debug: y })), [2, mL(M, y)]; + } + }); + }) + ); +} +var vL = { load: gL, hashComponents: U0, componentsToDebugString: Z0 }; +let Uf = null; +async function yL() { + return Uf || (Uf = vL.load()), Uf; +} +async function xL() { + return (await (await yL()).get()).visitorId; +} +var bL = Pr( + '' +); +function Gu(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = bL(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var wL = Pr( + '' +); +function wv(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = wL(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var TL = Pr( + '' +); +function $0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = TL(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var CL = Pr( + '' + ), + SL = Pr( + '' + ); +function G0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy", "filled"]); + var y = er(), + M = Ct(y); + { + var z = (s) => { + var B = CL(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }, + T = (s) => { + var B = SL(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }; + Oe(M, (s) => { + a.filled ? s(z) : s(T, !1); + }); + } + $(m, y); +} +var PL = Pr( + '' +); +function Pm(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = PL(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var IL = Pr( + '' +); +function H0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = IL(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var ML = Pr( + '' +); +function kL(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = ML(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var AL = Pr( + '' +); +function EL(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = AL(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var zL = Te(" ", 1), + LL = Te(" ", 1), + DL = Te(" ", 1), + RL = Te( + ' ', + 1 + ), + BL = Te(" ", 1), + FL = Te(" ", 1), + OL = (m, a) => se(a, !x(a)), + NL = (m, a) => { + se(a, "colorpicker"); + }, + jL = (m, a) => { + a(!a()); + }, + VL = (m, a) => { + se(a, "cleararea"); + }, + qL = Te( + '
                  C
                  ' + ), + ZL = (m, a) => { + aa.smallPlop.play(), a(); + }, + UL = (m, a, p) => { + a(x(p).idx); + }, + $L = Te( + ' ', + 1 + ), + GL = Te("
                  "), + HL = (m, a) => { + se(a, !x(a)); + }, + WL = (m, a) => { + se(a, x(a) === "eraser" ? "pencil" : "eraser", !0); + }, + XL = Te( + '

                  I
                  E
                  ', + 1 + ); +function YL(m, a) { + Lr(a, !0); + let p = zt(a, "screenLocked", 15), + y = zt(a, "opaquePixelArt", 15); + const M = ft(() => new fl(a.tileSize)); + let z = st(1), + T = st("pencil"); + const s = new Map(), + B = new Map(); + let O = st(0), + X = st(!1), + K = st(!0), + ne = ft(() => Mt.charges ?? 0), + H = ft(() => x(ne) - x(O)), + fe = st(!1), + ge = !1, + Ie = st(!1), + Ae = st(bi([])); + const De = ft(() => x(T) === "pencil"), + Ee = ft(() => x(T) === "eraser"), + Fe = ft(() => x(T) === "colorpicker"), + $e = ft(() => x(T) === "cleararea"), + Je = ft(() => { + var mt, He; + return xc( + (He = (mt = Mt) == null ? void 0 : mt.data) == null ? void 0 : He.role, + ["admin", "global_moderator"] + ); + }); + let qe = st(!1), + Ze = st(0), + Qe = st(void 0), + Le = st(void 0); + const et = [ + 1, 2, 3, 32, 4, 5, 6, 33, 7, 34, 35, 8, 9, 10, 11, 37, 38, 39, 40, 41, 42, + 12, 13, 14, 15, 16, 17, 43, 20, 44, 18, 19, 45, 46, 21, 22, 47, 48, 49, + 23, 24, 25, 26, 27, 28, 53, 54, 55, 29, 30, 50, 56, 57, 36, 51, 31, 52, + 61, 62, 63, 58, 59, 60, 0, + ].map((mt) => ({ ...Wi.colors[mt], idx: mt })), + nt = [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, + ].map((mt) => ({ ...Wi.colors[mt], idx: mt })); + let Ue = st(!1); + const ke = ft(() => (x(Ue) ? et : nt)), + vt = "show-all-colors"; + Fn(() => { + se(Ue, localStorage.getItem(vt) === "true"); + }), + Wr(() => { + localStorage.setItem(vt, x(Ue) ? "true" : "false"); + }); + const ee = "selected-color"; + Fn(() => { + const mt = Number(localStorage.getItem(ee)); + !isNaN(mt) && mt < Wi.colors.length && mt > 0 && se(z, mt, !0); + }), + Wr(() => { + localStorage.setItem(ee, x(z).toString()); + }); + const re = new $E({ + map: a.map, + tileSize: a.tileSize, + tileZoom: a.tileZoom, + beforeLayerId: a.hoverLayerId, + }); + Wr(() => { + const mt = y() ? 1 : 0; + re.setCanvasOpacity(mt); + }), + Wr(() => { + y() ? Hf() : ct([...s.values()]); + }); + let he = !1; + Fn(() => { + Co(a.map.getCenter(), a.map.getZoom()); + const mt = a.map.on("click", (pr) => { + var tn; + a.zoom < a.tileZoom + 2 && + ((tn = Mt.data) == null ? void 0 : tn.role) === "user" && + a.map.easeTo({ center: pr.lngLat, zoom: 17 }); + const In = [pr.lngLat.lat, pr.lngLat.lng]; + if (x(De)) ze([In], x(z)); + else if (x(Ee)) je([In]); + else if (x(Fe)) pt(In, pr.point); + else if (x($e) && (x(Ae).push(In), ze([In], 0), x(Ae).length >= 2)) { + const [en, ma] = x(Ae), + [pi, Xi] = x(M).latLonToPixelsFloor(en[0], en[1], a.tileZoom), + [Zn, ni] = x(M).latLonToPixelsFloor(ma[0], ma[1], a.tileZoom), + Zi = Math.min(pi, Zn), + Yi = Math.max(pi, Zn), + Ei = Math.min(Xi, ni), + zi = Math.max(Xi, ni), + Ki = []; + for (let oa = Ei; oa <= zi; oa++) { + const Ta = x(M).pixelsToLatLon(Zi + 0.5, oa + 0.5, a.tileZoom), + bt = x(M).pixelsToLatLon(Yi + 0.5, oa + 0.5, a.tileZoom), + Xt = He( + { lat: Ta[0], lng: Ta[1] }, + { lat: bt[0], lng: bt[1] } + ).slice(0, x(H) - Ki.length); + if ((Ki.push(...Xt), Ki.length >= x(H))) break; + } + ze(Ki, 0), se(Ae, [], !0), se(T, "pencil"); + } + se(fe, !0); + }); + function He(pr, In) { + const tn = x(M).latLonToPixels(pr.lat, pr.lng, a.tileZoom), + en = In ? x(M).latLonToPixels(In.lat, In.lng, a.tileZoom) : tn; + return Rx(tn, en).map((pi) => + x(M).pixelsToLatLon(pi[0] + 0.5, pi[1] + 0.5, a.tileZoom) + ); + } + function At(pr, In) { + const tn = He(pr, In); + x(De) ? ze(tn, x(z)) : x(Ee) && je(tn), se(fe, !0); + } + let Ft; + function Jt(pr) { + const In = a.map.unproject([pr.clientX, pr.clientY]); + if (x(Ie)) { + const tn = He(In, Ft); + je(tn); + } + (he || ge) && At(In, Ft), (Ft = In); + } + window.addEventListener("mousemove", Jt); + let Cr = !1; + const Er = a.map.on("touchstart", (pr) => { + if (pr.points.length == 2) { + p(!1), dt(), (Cr = !0), setTimeout(() => (Cr = !1), 150); + return; + } + p() && + setTimeout(() => { + !Cr && At(pr.lngLat); + }, 150), + (Ft = pr.lngLat); + }), + ur = a.map.on("touchmove", (pr) => { + p() && At(pr.lngLat, Ft), (Ft = pr.lngLat); + }), + rn = (pr) => { + pr.code === "Space" && + (he || (Ft && At(Ft)), (he = !0), pr.preventDefault()); + }; + document.addEventListener("keydown", rn); + const pn = (pr) => { + pr.code === "Space" && + ((he = !1), (oe = !1), x(O) === 0 && x(Ee) && se(T, "pencil")); + }; + document.addEventListener("keyup", pn); + function gn(pr) { + if (pr.button === 2) { + se(Ie, !0); + const tn = a.map.unproject([pr.clientX, pr.clientY]); + je([[tn.lat, tn.lng]]); + } + } + document.addEventListener("mousedown", gn); + function ln(pr) { + pr.button === 2 && se(Ie, !1); + } + document.addEventListener("mouseup", ln); + const En = (pr) => { + switch (pr.code) { + case "KeyE": + x(O) > 0 && (x(Ee) ? se(T, "pencil") : se(T, "eraser")); + return; + case "KeyI": + se(T, "colorpicker"); + return; + case "KeyC": + x(Je) && se(T, "cleararea"); + return; + } + }; + return ( + document.addEventListener("keypress", En), + () => { + ur.unsubscribe(), + Er.unsubscribe(), + mt.unsubscribe(), + document.removeEventListener("mousemove", Jt), + document.removeEventListener("keydown", rn), + document.removeEventListener("keyup", pn), + document.removeEventListener("keypress", En), + document.removeEventListener("mousedown", gn), + document.removeEventListener("mouseup", ln), + It(); + } + ); + }); + let oe = !1; + function ze(mt, He) { + let At = !1; + const Ft = He === 0; + for (let Jt of mt) { + const [Cr, Er] = Jt, + ur = Ex(He), + { tile: rn, pixel: pn } = x(M).latLonToTileAndPixel(Cr, Er, a.tileZoom), + gn = { color: ur, tile: rn, pixel: pn, season: a.season, colorIdx: He }, + ln = Df(gn), + En = s.get(ln), + pr = x(ne) - s.size; + if (!En && pr < 1) { + if (oe && (he || p())) continue; + (oe = !0), Fr.info(HC()); + continue; + } + (En && En.colorIdx === He) || + (aa.plop.play(), + At || a.hidePixelHover(), + s.set(ln, gn), + re.place(Jt, He), + a.crosshair.place(Jt), + (At = !0), + Ft && B.set(ln, gn)); + } + se(O, s.size, !0), + At && !y() ? ct([...s.values()]) : At && y() && Ft && ct([...B.values()]); + } + function je(mt) { + let He = !1, + At = !1; + for (let Ft of mt) { + const [Jt, Cr] = Ft, + { tile: Er, pixel: ur } = x(M).latLonToTileAndPixel(Jt, Cr, a.tileZoom), + rn = Df({ tile: Er, pixel: ur, season: a.season }), + pn = s.get(rn); + pn && + (aa.plop.play(), + a.hidePixelHover(), + s.delete(rn), + B.delete(rn), + re.remove([Jt, Cr]), + a.crosshair.remove(Ft), + (He = !0), + pn.colorIdx === 0 && (At = !0)), + s.size === 0 && !(he || ge || p()) && se(T, "pencil"); + } + se(O, s.size, !0), + He && !y() ? ct([...s.values()]) : He && y() && At && ct([...B.values()]); + } + function pt(mt, He) { + const { tile: At, pixel: Ft } = x(M).latLonToTileAndPixel( + mt[0], + mt[1], + a.tileZoom + ), + Jt = Df({ tile: At, pixel: Ft, season: a.season }), + Cr = s.get(Jt); + if (Cr) { + yt(Cr.colorIdx), + requestAnimationFrame(() => { + var pn; + (pn = document.getElementById(`color-${Cr.colorIdx}`)) == null || + pn.focus(); + }); + return; + } + const Er = window.devicePixelRatio, + ur = Math.floor(He.x * Er), + rn = Math.floor(He.y * Er); + a.hidePixelHover(), + KM(a.map, ur, rn).then(([pn, gn, ln]) => { + const En = zx({ r: pn, g: gn, b: ln }); + yt(En), + requestAnimationFrame(() => { + var pr; + (pr = document.getElementById(`color-${En}`)) == null || pr.focus(); + }); + }); + } + dl( + () => x(z), + () => { + a.clickedLatLon && + !x(fe) && + (x(z) === void 0 && se(z, 1), ze([a.clickedLatLon], x(z))); + } + ), + Wr(() => { + const mt = x(K) ? 0.8 : 0; + a.crosshair.setCanvasOpacity(mt); + }); + let it = st(16.5); + Wr(() => { + if (x(Qe) && x(Le) && a.clickedLatLon) { + const mt = a.map.getZoom(); + if (mt < x(it)) { + const [He, At] = a.clickedLatLon, + Ft = x(M).latLonToPixelBoundsLatLon(He, At, a.tileZoom), + Jt = qm(Ft), + Cr = x(Qe) - x(Le).clientHeight, + Er = x(Qe) / 2 - Cr / 2; + a.map.flyTo({ + center: { lat: Jt[0], lng: Jt[1] }, + zoom: 17.5, + offset: mt > 11 ? [0, -Er] : [0, 0], + }); + } + se(it, a.tileZoom, !0); + } + }), + Fn(() => { + const mt = () => { + !document.hidden && + (console.log("Tab visible again"), + y() ? ct([...B.values()]) : ct([...s.values()])); + }; + return ( + document.addEventListener("visibilitychange", mt), + () => document.removeEventListener("visibilitychange", mt) + ); + }), + Wr(() => { + switch (x(T)) { + case "pencil": + (a.map.getCanvas().style.cursor = `url('${ZE}') 8 8, default`), + a.map.setPaintProperty(a.hoverLayerId, "raster-opacity", 0.4); + return; + case "colorpicker": + (a.map.getCanvas().style.cursor = `url('${VE}') 0 16, default`), + a.map.setPaintProperty(a.hoverLayerId, "raster-opacity", 0); + return; + case "eraser": + (a.map.getCanvas().style.cursor = `url('${qE}') 2 14, default`), + a.map.setPaintProperty(a.hoverLayerId, "raster-opacity", 0.4); + return; + } + }), + Wr(() => { + p() ? at() : dt(); + }); + async function ct(mt) { + await gx(mt), a.refreshPixelArt(); + } + async function It() { + await Hf(), re.clear(), a.refreshPixelArt(), a.crosshair.clear(); + } + async function Dt() { + await It(), + dt(), + (a.map.getCanvas().style.cursor = "default"), + a.map.setPaintProperty(a.hoverLayerId, "raster-opacity", 0.4), + a.onclose(); + } + function at() { + a.map.dragPan.disable(), + a.map.touchZoomRotate.disable(), + (document.body.style.overscrollBehavior = "none"); + } + function dt() { + a.map.dragPan.enable(), + a.map.touchZoomRotate.enable(), + (document.body.style.overscrollBehavior = ""); + } + function yt(mt) { + return ( + mt >= 32 && se(Ue, !0), + Mt.hasColor(mt) + ? (aa.smallDropplet.play(), se(z, mt, !0), se(T, "pencil"), !0) + : (aa.smallDropplet.play(), se(qe, !0), se(Ze, mt, !0), !1) + ); + } + ix((mt) => { + mt.type === "leave" && x(O) > 0 && mt.cancel(); + }); + const xt = "show-paint-more-than-one-pixel-msg"; + let St = st(!1); + Fn(() => { + var mt; + se( + St, + !localStorage.getItem(xt) && + (((mt = Mt.data) == null ? void 0 : mt.pixelsPainted) ?? 0) < 100, + !0 + ); + }), + Wr(() => { + x(O) > 1 && (se(St, !1), localStorage.setItem(xt, "false")); + }); + const wt = "lp"; + Fn(() => { + var He; + const mt = localStorage.getItem(wt); + if (mt) + try { + const At = JSON.parse(atob(mt)), + Ft = (At == null ? void 0 : At.time) ?? 0, + Jt = 60 * 1e3; + (At == null ? void 0 : At.userId) !== + ((He = Mt.data) == null ? void 0 : He.id) && + Date.now() - Ft < 30 * Jt && + !Xx && + (Fr.error(YC()), Dt()); + } catch (At) { + console.error(At); + } + }); + function _t() { + var He; + const mt = btoa( + JSON.stringify({ + userId: (He = Mt.data) == null ? void 0 : He.id, + time: Date.now(), + }) + ); + localStorage.setItem(wt, mt); + } + var Lt = XL(), + Rt = Ct(Lt), + $t = A(Rt); + { + var tr = (mt) => { + ol(mt, { + children: (He, At) => { + var Ft = zL(), + Jt = Ct(Ft); + $0(Jt, { class: "inline size-5" }); + var Cr = j(Jt); + We((Er) => de(Cr, ` ${Er ?? ""}`), [() => S5()]), $(He, Ft); + }, + $$slots: { default: !0 }, + }); + }, + Qt = (mt) => { + var He = er(), + At = Ct(He); + { + var Ft = (Cr) => { + ol(Cr, { + class: "not-touchscreen:hidden", + children: (Er, ur) => { + var rn = LL(), + pn = Ct(rn); + Wg(pn, { class: "inline size-5" }); + var gn = j(pn); + We((ln) => de(gn, ` ${ln ?? ""}`), [() => M5()]), $(Er, rn); + }, + $$slots: { default: !0 }, + }); + }, + Jt = (Cr) => { + var Er = er(), + ur = Ct(Er); + { + var rn = (gn) => { + ol(gn, { + class: "not-touchscreen:hidden", + children: (ln, En) => { + var pr = DL(), + In = Ct(pr); + wv(In, { class: "inline size-5" }); + var tn = j(In, 1, !0); + We((en) => de(tn, en), [() => E5()]), $(ln, pr); + }, + $$slots: { default: !0 }, + }); + }, + pn = (gn) => { + var ln = er(), + En = Ct(ln); + { + var pr = (tn) => { + ol(tn, { + class: "touchscreen:hidden", + children: (en, ma) => { + var pi = RL(), + Xi = Ct(pi); + H0(Xi, { class: "inline size-5" }); + var Zn = j(Xi), + ni = A(Zn, !0); + k(Zn); + var Zi = j(Zn, 2), + Yi = A(Zi), + Ei = j(Yi), + zi = A(Ei, !0); + k(Ei), k(Zi); + var Ki = j(Zi); + We( + (oa, Ta, bt, Xt) => { + de(ni, oa), + de(Yi, `${Ta ?? ""} `), + de(zi, bt), + de(Ki, ` ${Xt ?? ""}`); + }, + [() => D5(), () => j5(), () => F5(), () => Z5()] + ), + $(en, pi); + }, + $$slots: { default: !0 }, + }); + }, + In = (tn) => { + var en = er(), + ma = Ct(en); + { + var pi = (Zn) => { + ol(Zn, { + class: + "bg-warning text-warning-content animate-bounce", + children: (ni, Zi) => { + var Yi = BL(), + Ei = Ct(Yi); + zh(Ei, { class: "inline size-5" }); + var zi = j(Ei); + We( + (Ki) => de(zi, ` ${Ki ?? ""}`), + [() => G5()] + ), + $(ni, Yi); + }, + $$slots: { default: !0 }, + }); + }, + Xi = (Zn) => { + var ni = er(), + Zi = Ct(ni); + { + var Yi = (Ei) => { + ol(Ei, { + class: + "bg-warning text-warning-content animate-bounce", + children: (zi, Ki) => { + var oa = FL(), + Ta = Ct(oa); + Gu(Ta, { class: "inline size-5" }); + var bt = j(Ta, 2); + { + var Xt = (xn) => { + var On = wi(); + We( + (Yn) => de(On, Yn), + [() => Qv()] + ), + $(xn, On); + }, + Br = (xn) => { + var On = er(), + Yn = Ct(On); + { + var Vn = (wn) => { + var Ji = wi(); + We( + (sr) => de(Ji, sr), + [() => e0()] + ), + $(wn, Ji); + }; + Oe( + Yn, + (wn) => { + x(Ae).length === 1 && + wn(Vn); + }, + !0 + ); + } + $(xn, On); + }; + Oe(bt, (xn) => { + x(Ae).length === 0 + ? xn(Xt) + : xn(Br, !1); + }); + } + $(zi, oa); + }, + $$slots: { default: !0 }, + }); + }; + Oe( + Zi, + (Ei) => { + x($e) && Ei(Yi); + }, + !0 + ); + } + $(Zn, ni); + }; + Oe( + ma, + (Zn) => { + x(St) ? Zn(pi) : Zn(Xi, !1); + }, + !0 + ); + } + $(tn, en); + }; + Oe( + En, + (tn) => { + x(De) && x(O) === 0 ? tn(pr) : tn(In, !1); + }, + !0 + ); + } + $(gn, ln); + }; + Oe( + ur, + (gn) => { + x(Fe) ? gn(rn) : gn(pn, !1); + }, + !0 + ); + } + $(Cr, Er); + }; + Oe( + At, + (Cr) => { + x(Ee) ? Cr(Ft) : Cr(Jt, !1); + }, + !0 + ); + } + $(mt, He); + }; + Oe($t, (mt) => { + x(Ee) && x(O) === 0 ? mt(tr) : mt(Qt, !1); + }); + } + var Ot = j($t, 2), + Nt = A(Ot); + Nt.__click = [OL, K]; + var or = A(Nt); + { + var cr = (mt) => { + WE(mt, { class: "size-4" }); + }, + Vr = (mt) => { + YE(mt, { class: "size-4" }); + }; + Oe(or, (mt) => { + x(K) ? mt(cr) : mt(Vr, !1); + }); + } + k(Nt); + var mr = j(Nt, 2), + hr = A(mr), + _r = A(hr), + Ir = j(_r); + M0(Ir, { + class: "inline", + fontSize: 14, + get value() { + return `(${x(O) ?? ""})`; + }, + mono: !0, + }), + k(hr); + var qr = j(hr, 2), + ue = A(qr), + V = A(ue); + yn(), k(ue); + var U = j(ue, 2); + U.__click = [NL, T]; + var Y = A(U); + wv(Y, { class: "size-4.5" }), k(U), k(qr); + var ie = j(qr, 2), + pe = A(ie); + let Se; + pe.__click = [jL, y]; + var Me = A(pe); + { + let mt = ft(() => !y()); + G0(Me, { + class: "size-4.5", + get filled() { + return x(mt); + }, + }); + } + k(pe), k(ie); + var we = j(ie, 2); + { + var Ve = (mt) => { + var He = qL(), + At = A(He), + Ft = A(At); + yn(), k(At); + var Jt = j(At, 2); + Jt.__click = [VL, T]; + var Cr = A(Jt); + Gu(Cr, { class: "size-4.5" }), + k(Jt), + k(He), + We( + (Er) => { + de(Ft, `${Er ?? ""} `), + zr( + Jt, + 1, + Yo({ + "btn btn-circle btn-sm": !0, + "btn-ghost": !x($e), + "btn-primary": x($e), + }) + ); + }, + [() => XP()] + ), + $(mt, He); + }; + Oe(we, (mt) => { + x(Je) && mt(Ve); + }); + } + k(mr); + var ut = j(mr, 2); + ut.__click = [ZL, Dt]; + var Ke = A(ut); + _l(Ke, { class: "size-4" }), k(ut), k(Ot); + var kt = j(Ot, 2), + ye = A(kt); + hi( + ye, + 23, + () => x(ke), + (mt) => mt.idx, + (mt, He, At) => { + const Ft = ft(() => { + const [ln, En, pr] = x(He).rgb; + return { r: ln, g: En, b: pr }; + }), + Jt = ft(() => x(z) === x(He).idx && x(De)), + Cr = ft(() => x(He).idx === 0), + Er = ft(() => Mt.hasColor(x(He).idx)); + var ur = GL(), + rn = A(ur); + rn.__click = [UL, yt, He]; + var pn = A(rn); + { + var gn = (ln) => { + var En = $L(), + pr = Ct(En); + Pm(pr, { + class: + "center-absolute absolute size-4 opacity-30 sm:hidden sm:size-6", + }); + var In = j(pr, 2), + tn = A(In); + Pm(tn, { class: "text-base-content/80 size-4" }), k(In), $(ln, En); + }; + Oe(pn, (ln) => { + x(Er) || ln(gn); + }); + } + k(rn), + k(ur), + We(() => { + zr( + ur, + 1, + Yo({ + tooltip: !0, + "max-sm:h-6": x(Ue), + "max-sm:before:translate-x-1/4": + x(At) % 8 === 0 && x(He).name.length > 7, + "max-sm:before:-translate-x-1/4": + (x(At) - 7) % 8 === 0 && x(He).name.length > 7, + "max-xl:before:translate-x-1/4": + x(At) % 16 === 0 && x(He).name.length > 7, + "max-xl:before:-translate-x-1/4": + (x(At) - 15) % 16 === 0 && x(He).name.length > 7, + "xl:before:translate-x-1/4": + x(Ue) && x(At) % 32 === 0 && x(He).name.length > 7, + "xl:before:-translate-x-1/4": + x(Ue) && (x(At) - 31) % 32 === 0 && x(He).name.length > 7, + }) + ), + Tr(ur, "data-tip", x(He).name), + zr( + rn, + 1, + Yo({ + "btn relative aspect-square w-full rounded-xl": !0, + "border-primary ring-primary ring-2": x(Jt), + "border-base-300": !x(Jt) && x(Cr), + "border-base-content/20": !x(Jt) && !x(Cr), + "max-sm:h-6 max-sm:rounded-md": x(Ue), + }) + ), + kc( + rn, + x(Cr) + ? `background-image: url(${UE}); background-size: cover; image-rendering: pixelated;` + : `background: rgb(${x(Ft).r} ${x(Ft).g} ${x(Ft).b})` + ), + Tr(rn, "aria-label", x(He).name), + Tr(rn, "id", `color-${x(He).idx ?? ""}`); + }), + di("focus", rn, () => { + x(Er) && (se(z, x(He).idx, !0), se(T, "pencil")); + }), + $(mt, ur); + } + ), + k(ye), + k(kt); + var Bt = j(kt, 2), + rr = A(Bt); + rr.__click = [HL, Ue]; + var Kt = A(rr); + { + var gr = (mt) => { + kL(mt, { class: "size-5" }); + }, + Ur = (mt) => { + EL(mt, { class: "size-5" }); + }; + Oe(Kt, (mt) => { + x(Ue) ? mt(gr) : mt(Ur, !1); + }); + } + k(rr); + var nn = j(rr, 2), + mn = A(nn); + { + let mt = ft(() => (x(O) > 100 ? "animate-pulse" : "")), + He = ft(() => x(O) === 0 || x(X) || x(H) < 0 || !ai.captcha), + At = ft(() => x(X) || !ai.captcha); + k0(mn, { + get class() { + return x(mt); + }, + get charges() { + return x(H); + }, + get disabled() { + return x(He); + }, + get loading() { + return x(At); + }, + onclick: async () => { + var Cr; + const Ft = (Cr = ai.captcha) == null ? void 0 : Cr.token; + if (!Ft) return; + aa.droppletAndPlop.play(); + const Jt = [...s.values()]; + se(X, !0); + try { + const Er = await xL(); + await Qr.paint(Jt, Ft, Er), + await vx(Jt), + _t(), + Mt.refresh(), + (Yd.shouldReload = !0), + await Dt(); + } catch (Er) { + Fr.error(`${Er.message}`, { duration: 7e3 }); + } finally { + se(X, !1), (ai.captcha = void 0); + } + }, + }); + } + k(nn); + var _n = j(nn, 2), + Vt = A(_n), + Et = A(Vt), + dr = A(Et); + yn(), k(Et); + var ht = j(Et, 2); + let Xr; + ht.__click = [WL, T]; + var Yr = A(ht); + Wg(Yr, { + class: "size-5", + get filled() { + return x(Ee); + }, + }), + k(ht), + k(Vt), + k(_n), + k(Bt), + k(Rt), + Ko( + Rt, + (mt) => se(Le, mt), + () => x(Le) + ); + var Zr = j(Rt, 2); + s8(Zr, { + get colorIdx() { + return x(Ze); + }, + get open() { + return x(qe); + }, + set open(mt) { + se(qe, mt, !0); + }, + }), + We( + (mt, He, At, Ft, Jt, Cr) => { + de(_r, `${mt ?? ""} `), + de(V, `${He ?? ""} `), + zr( + U, + 1, + Yo({ + "btn btn-circle btn-sm": !0, + "btn-ghost": !x(Fe), + "btn-primary": x(Fe), + }) + ), + Tr(ie, "data-tip", At), + (Se = zr( + pe, + 1, + "btn btn-sm btn-circle btn-ghost text-base-content/80", + null, + Se, + Ft + )), + zr( + ye, + 1, + Yo({ + "md:grid-cols-16 min-[100rem]:grid-cols-32 grid grid-cols-8": !0, + "xl:grid-cols-32 sm:grid-cols-16 gap-0.5 sm:gap-1": x(Ue), + "gap-1": !x(Ue), + }) + ), + de(dr, `${Jt ?? ""} `), + (Xr = zr( + ht, + 1, + "btn btn-lg btn-square sm:btn-xl shadow-md", + null, + Xr, + Cr + )), + (ht.disabled = x(O) === 0); + }, + [ + () => X5(), + () => J5(), + () => $v(), + () => ({ "text-primary": !y() }), + () => Bx(), + () => ({ "btn-primary": x(Ee) }), + ] + ), + mp("innerHeight", (mt) => se(Qe, mt, !0)), + $(m, Lt), + Dr(); +} +$n(["click"]); +function Qm(...m) { + return Lv(Ou(m)); +} +var KL = Te("
                  "); +function JL(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "class", "children"]); + var M = KL(); + ar(M, (T) => ({ class: T, ...y }), [() => Qm("flex items-center", a.class)]); + var z = A(M); + oi(z, () => a.children ?? pa), + k(M), + Ko( + M, + (T) => p(T), + () => p() + ), + $(m, M), + Dr(); +} +var QL = Te( + '
                  ' + ), + eD = Te(" ", 1); +function tD(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "cell", "class"]); + var M = er(), + z = Ct(M); + { + let T = ft(() => + Qm( + "border-input relative flex size-12 items-center justify-center border-y border-r text-xl transition-all first:rounded-l-md first:border-l last:rounded-r-md", + a.cell.isActive && "ring-base-content/40 z-10 ring-2", + a.class + ) + ); + xi( + z, + () => BA, + (s, B) => { + B( + s, + Is( + { + get cell() { + return a.cell; + }, + get class() { + return x(T); + }, + }, + () => y, + { + get ref() { + return p(); + }, + set ref(O) { + p(O); + }, + children: (O, X) => { + yn(); + var K = eD(), + ne = Ct(K), + H = j(ne); + { + var fe = (ge) => { + var Ie = QL(); + $(ge, Ie); + }; + Oe(H, (ge) => { + a.cell.hasFakeCaret && ge(fe); + }); + } + We(() => de(ne, `${a.cell.char ?? ""} `)), $(O, K); + }, + $$slots: { default: !0 }, + } + ) + ); + } + ); + } + $(m, M), Dr(); +} +function rD(m, a) { + Lr(a, !0); + let p = zt(a, "ref", 15, null), + y = zt(a, "value", 15, ""), + M = nr(a, ["$$slots", "$$events", "$$legacy", "ref", "class", "value"]); + var z = er(), + T = Ct(z); + { + let s = ft(() => + Qm( + "flex items-center gap-2 has-[:disabled]:opacity-50 [&_input]:disabled:cursor-not-allowed", + a.class + ) + ); + xi( + T, + () => DA, + (B, O) => { + O( + B, + Is( + { + get class() { + return x(s); + }, + }, + () => M, + { + get ref() { + return p(); + }, + set ref(X) { + p(X); + }, + get value() { + return y(); + }, + set value(X) { + y(X); + }, + } + ) + ); + } + ); + } + $(m, z), Dr(); +} +var $f = { exports: {} }, + Tv; +function nD() { + return ( + Tv || + ((Tv = 1), + (function (m) { + (function (a) { + m.exports ? (m.exports = a()) : (window.intlTelInput = a()); + })(() => { + var a = (() => { + var p = Object.defineProperty, + y = Object.getOwnPropertyDescriptor, + M = Object.getOwnPropertyNames, + z = Object.prototype.hasOwnProperty, + T = (ee, re) => { + for (var he in re) p(ee, he, { get: re[he], enumerable: !0 }); + }, + s = (ee, re, he, oe) => { + if ((re && typeof re == "object") || typeof re == "function") + for (let ze of M(re)) + !z.call(ee, ze) && + ze !== he && + p(ee, ze, { + get: () => re[ze], + enumerable: !(oe = y(re, ze)) || oe.enumerable, + }); + return ee; + }, + B = (ee) => s(p({}, "__esModule", { value: !0 }), ee), + O = {}; + T(O, { Iti: () => nt, default: () => vt }); + var X = [ + ["af", "93"], + ["ax", "358", 1], + ["al", "355"], + ["dz", "213"], + ["as", "1", 5, ["684"]], + ["ad", "376"], + ["ao", "244"], + ["ai", "1", 6, ["264"]], + ["ag", "1", 7, ["268"]], + ["ar", "54"], + ["am", "374"], + ["aw", "297"], + ["ac", "247"], + ["au", "61", 0, null, "0"], + ["at", "43"], + ["az", "994"], + ["bs", "1", 8, ["242"]], + ["bh", "973"], + ["bd", "880"], + ["bb", "1", 9, ["246"]], + ["by", "375"], + ["be", "32"], + ["bz", "501"], + ["bj", "229"], + ["bm", "1", 10, ["441"]], + ["bt", "975"], + ["bo", "591"], + ["ba", "387"], + ["bw", "267"], + ["br", "55"], + ["io", "246"], + ["vg", "1", 11, ["284"]], + ["bn", "673"], + ["bg", "359"], + ["bf", "226"], + ["bi", "257"], + ["kh", "855"], + ["cm", "237"], + [ + "ca", + "1", + 1, + [ + "204", + "226", + "236", + "249", + "250", + "263", + "289", + "306", + "343", + "354", + "365", + "367", + "368", + "382", + "387", + "403", + "416", + "418", + "428", + "431", + "437", + "438", + "450", + "584", + "468", + "474", + "506", + "514", + "519", + "548", + "579", + "581", + "584", + "587", + "604", + "613", + "639", + "647", + "672", + "683", + "705", + "709", + "742", + "753", + "778", + "780", + "782", + "807", + "819", + "825", + "867", + "873", + "879", + "902", + "905", + ], + ], + ["cv", "238"], + ["bq", "599", 1, ["3", "4", "7"]], + ["ky", "1", 12, ["345"]], + ["cf", "236"], + ["td", "235"], + ["cl", "56"], + ["cn", "86"], + ["cx", "61", 2, ["89164"], "0"], + ["cc", "61", 1, ["89162"], "0"], + ["co", "57"], + ["km", "269"], + ["cg", "242"], + ["cd", "243"], + ["ck", "682"], + ["cr", "506"], + ["ci", "225"], + ["hr", "385"], + ["cu", "53"], + ["cw", "599", 0], + ["cy", "357"], + ["cz", "420"], + ["dk", "45"], + ["dj", "253"], + ["dm", "1", 13, ["767"]], + ["do", "1", 2, ["809", "829", "849"]], + ["ec", "593"], + ["eg", "20"], + ["sv", "503"], + ["gq", "240"], + ["er", "291"], + ["ee", "372"], + ["sz", "268"], + ["et", "251"], + ["fk", "500"], + ["fo", "298"], + ["fj", "679"], + ["fi", "358", 0], + ["fr", "33"], + ["gf", "594"], + ["pf", "689"], + ["ga", "241"], + ["gm", "220"], + ["ge", "995"], + ["de", "49"], + ["gh", "233"], + ["gi", "350"], + ["gr", "30"], + ["gl", "299"], + ["gd", "1", 14, ["473"]], + ["gp", "590", 0], + ["gu", "1", 15, ["671"]], + ["gt", "502"], + ["gg", "44", 1, ["1481", "7781", "7839", "7911"], "0"], + ["gn", "224"], + ["gw", "245"], + ["gy", "592"], + ["ht", "509"], + ["hn", "504"], + ["hk", "852"], + ["hu", "36"], + ["is", "354"], + ["in", "91"], + ["id", "62"], + ["ir", "98"], + ["iq", "964"], + ["ie", "353"], + ["im", "44", 2, ["1624", "74576", "7524", "7924", "7624"], "0"], + ["il", "972"], + ["it", "39", 0], + ["jm", "1", 4, ["876", "658"]], + ["jp", "81"], + [ + "je", + "44", + 3, + ["1534", "7509", "7700", "7797", "7829", "7937"], + "0", + ], + ["jo", "962"], + ["kz", "7", 1, ["33", "7"], "8"], + ["ke", "254"], + ["ki", "686"], + ["xk", "383"], + ["kw", "965"], + ["kg", "996"], + ["la", "856"], + ["lv", "371"], + ["lb", "961"], + ["ls", "266"], + ["lr", "231"], + ["ly", "218"], + ["li", "423"], + ["lt", "370"], + ["lu", "352"], + ["mo", "853"], + ["mg", "261"], + ["mw", "265"], + ["my", "60"], + ["mv", "960"], + ["ml", "223"], + ["mt", "356"], + ["mh", "692"], + ["mq", "596"], + ["mr", "222"], + ["mu", "230"], + ["yt", "262", 1, ["269", "639"], "0"], + ["mx", "52"], + ["fm", "691"], + ["md", "373"], + ["mc", "377"], + ["mn", "976"], + ["me", "382"], + ["ms", "1", 16, ["664"]], + ["ma", "212", 0, null, "0"], + ["mz", "258"], + ["mm", "95"], + ["na", "264"], + ["nr", "674"], + ["np", "977"], + ["nl", "31"], + ["nc", "687"], + ["nz", "64"], + ["ni", "505"], + ["ne", "227"], + ["ng", "234"], + ["nu", "683"], + ["nf", "672"], + ["kp", "850"], + ["mk", "389"], + ["mp", "1", 17, ["670"]], + ["no", "47", 0], + ["om", "968"], + ["pk", "92"], + ["pw", "680"], + ["ps", "970"], + ["pa", "507"], + ["pg", "675"], + ["py", "595"], + ["pe", "51"], + ["ph", "63"], + ["pl", "48"], + ["pt", "351"], + ["pr", "1", 3, ["787", "939"]], + ["qa", "974"], + ["re", "262", 0, null, "0"], + ["ro", "40"], + ["ru", "7", 0, null, "8"], + ["rw", "250"], + ["ws", "685"], + ["sm", "378"], + ["st", "239"], + ["sa", "966"], + ["sn", "221"], + ["rs", "381"], + ["sc", "248"], + ["sl", "232"], + ["sg", "65"], + ["sx", "1", 21, ["721"]], + ["sk", "421"], + ["si", "386"], + ["sb", "677"], + ["so", "252"], + ["za", "27"], + ["kr", "82"], + ["ss", "211"], + ["es", "34"], + ["lk", "94"], + ["bl", "590", 1], + ["sh", "290"], + ["kn", "1", 18, ["869"]], + ["lc", "1", 19, ["758"]], + ["mf", "590", 2], + ["pm", "508"], + ["vc", "1", 20, ["784"]], + ["sd", "249"], + ["sr", "597"], + ["sj", "47", 1, ["79"]], + ["se", "46"], + ["ch", "41"], + ["sy", "963"], + ["tw", "886"], + ["tj", "992"], + ["tz", "255"], + ["th", "66"], + ["tl", "670"], + ["tg", "228"], + ["tk", "690"], + ["to", "676"], + ["tt", "1", 22, ["868"]], + ["tn", "216"], + ["tr", "90"], + ["tm", "993"], + ["tc", "1", 23, ["649"]], + ["tv", "688"], + ["ug", "256"], + ["ua", "380"], + ["ae", "971"], + ["gb", "44", 0, null, "0"], + ["us", "1", 0], + ["uy", "598"], + ["vi", "1", 24, ["340"]], + ["uz", "998"], + ["vu", "678"], + ["va", "39", 1, ["06698"]], + ["ve", "58"], + ["vn", "84"], + ["wf", "681"], + ["eh", "212", 1, ["5288", "5289"], "0"], + ["ye", "967"], + ["zm", "260"], + ["zw", "263"], + ], + K = []; + for (let ee = 0; ee < X.length; ee++) { + const re = X[ee]; + K[ee] = { + name: "", + iso2: re[0], + dialCode: re[1], + priority: re[2] || 0, + areaCodes: re[3] || null, + nodeById: {}, + nationalPrefix: re[4] || null, + }; + } + var ne = K, + H = { + ad: "Andorra", + ae: "United Arab Emirates", + af: "Afghanistan", + ag: "Antigua & Barbuda", + ai: "Anguilla", + al: "Albania", + am: "Armenia", + ao: "Angola", + ar: "Argentina", + as: "American Samoa", + at: "Austria", + au: "Australia", + aw: "Aruba", + ax: "Åland Islands", + az: "Azerbaijan", + ba: "Bosnia & Herzegovina", + bb: "Barbados", + bd: "Bangladesh", + be: "Belgium", + bf: "Burkina Faso", + bg: "Bulgaria", + bh: "Bahrain", + bi: "Burundi", + bj: "Benin", + bl: "St. Barthélemy", + bm: "Bermuda", + bn: "Brunei", + bo: "Bolivia", + bq: "Caribbean Netherlands", + br: "Brazil", + bs: "Bahamas", + bt: "Bhutan", + bw: "Botswana", + by: "Belarus", + bz: "Belize", + ca: "Canada", + cc: "Cocos (Keeling) Islands", + cd: "Congo - Kinshasa", + cf: "Central African Republic", + cg: "Congo - Brazzaville", + ch: "Switzerland", + ci: "Côte d’Ivoire", + ck: "Cook Islands", + cl: "Chile", + cm: "Cameroon", + cn: "China", + co: "Colombia", + cr: "Costa Rica", + cu: "Cuba", + cv: "Cape Verde", + cw: "Curaçao", + cx: "Christmas Island", + cy: "Cyprus", + cz: "Czechia", + de: "Germany", + dj: "Djibouti", + dk: "Denmark", + dm: "Dominica", + do: "Dominican Republic", + dz: "Algeria", + ec: "Ecuador", + ee: "Estonia", + eg: "Egypt", + eh: "Western Sahara", + er: "Eritrea", + es: "Spain", + et: "Ethiopia", + fi: "Finland", + fj: "Fiji", + fk: "Falkland Islands", + fm: "Micronesia", + fo: "Faroe Islands", + fr: "France", + ga: "Gabon", + gb: "United Kingdom", + gd: "Grenada", + ge: "Georgia", + gf: "French Guiana", + gg: "Guernsey", + gh: "Ghana", + gi: "Gibraltar", + gl: "Greenland", + gm: "Gambia", + gn: "Guinea", + gp: "Guadeloupe", + gq: "Equatorial Guinea", + gr: "Greece", + gt: "Guatemala", + gu: "Guam", + gw: "Guinea-Bissau", + gy: "Guyana", + hk: "Hong Kong SAR China", + hn: "Honduras", + hr: "Croatia", + ht: "Haiti", + hu: "Hungary", + id: "Indonesia", + ie: "Ireland", + il: "Israel", + im: "Isle of Man", + in: "India", + io: "British Indian Ocean Territory", + iq: "Iraq", + ir: "Iran", + is: "Iceland", + it: "Italy", + je: "Jersey", + jm: "Jamaica", + jo: "Jordan", + jp: "Japan", + ke: "Kenya", + kg: "Kyrgyzstan", + kh: "Cambodia", + ki: "Kiribati", + km: "Comoros", + kn: "St. Kitts & Nevis", + kp: "North Korea", + kr: "South Korea", + kw: "Kuwait", + ky: "Cayman Islands", + kz: "Kazakhstan", + la: "Laos", + lb: "Lebanon", + lc: "St. Lucia", + li: "Liechtenstein", + lk: "Sri Lanka", + lr: "Liberia", + ls: "Lesotho", + lt: "Lithuania", + lu: "Luxembourg", + lv: "Latvia", + ly: "Libya", + ma: "Morocco", + mc: "Monaco", + md: "Moldova", + me: "Montenegro", + mf: "St. Martin", + mg: "Madagascar", + mh: "Marshall Islands", + mk: "North Macedonia", + ml: "Mali", + mm: "Myanmar (Burma)", + mn: "Mongolia", + mo: "Macao SAR China", + mp: "Northern Mariana Islands", + mq: "Martinique", + mr: "Mauritania", + ms: "Montserrat", + mt: "Malta", + mu: "Mauritius", + mv: "Maldives", + mw: "Malawi", + mx: "Mexico", + my: "Malaysia", + mz: "Mozambique", + na: "Namibia", + nc: "New Caledonia", + ne: "Niger", + nf: "Norfolk Island", + ng: "Nigeria", + ni: "Nicaragua", + nl: "Netherlands", + no: "Norway", + np: "Nepal", + nr: "Nauru", + nu: "Niue", + nz: "New Zealand", + om: "Oman", + pa: "Panama", + pe: "Peru", + pf: "French Polynesia", + pg: "Papua New Guinea", + ph: "Philippines", + pk: "Pakistan", + pl: "Poland", + pm: "St. Pierre & Miquelon", + pr: "Puerto Rico", + ps: "Palestinian Territories", + pt: "Portugal", + pw: "Palau", + py: "Paraguay", + qa: "Qatar", + re: "Réunion", + ro: "Romania", + rs: "Serbia", + ru: "Russia", + rw: "Rwanda", + sa: "Saudi Arabia", + sb: "Solomon Islands", + sc: "Seychelles", + sd: "Sudan", + se: "Sweden", + sg: "Singapore", + sh: "St. Helena", + si: "Slovenia", + sj: "Svalbard & Jan Mayen", + sk: "Slovakia", + sl: "Sierra Leone", + sm: "San Marino", + sn: "Senegal", + so: "Somalia", + sr: "Suriname", + ss: "South Sudan", + st: "São Tomé & Príncipe", + sv: "El Salvador", + sx: "Sint Maarten", + sy: "Syria", + sz: "Eswatini", + tc: "Turks & Caicos Islands", + td: "Chad", + tg: "Togo", + th: "Thailand", + tj: "Tajikistan", + tk: "Tokelau", + tl: "Timor-Leste", + tm: "Turkmenistan", + tn: "Tunisia", + to: "Tonga", + tr: "Turkey", + tt: "Trinidad & Tobago", + tv: "Tuvalu", + tw: "Taiwan", + tz: "Tanzania", + ua: "Ukraine", + ug: "Uganda", + us: "United States", + uy: "Uruguay", + uz: "Uzbekistan", + va: "Vatican City", + vc: "St. Vincent & Grenadines", + ve: "Venezuela", + vg: "British Virgin Islands", + vi: "U.S. Virgin Islands", + vn: "Vietnam", + vu: "Vanuatu", + wf: "Wallis & Futuna", + ws: "Samoa", + ye: "Yemen", + yt: "Mayotte", + za: "South Africa", + zm: "Zambia", + zw: "Zimbabwe", + }, + fe = H, + ge = { + selectedCountryAriaLabel: "Selected country", + noCountrySelected: "No country selected", + countryListAriaLabel: "List of countries", + searchPlaceholder: "Search", + zeroSearchResults: "No results found", + oneSearchResult: "1 result found", + multipleSearchResults: "${count} results found", + ac: "Ascension Island", + xk: "Kosovo", + }, + Ie = ge, + Ae = { ...fe, ...Ie }, + De = Ae; + for (let ee = 0; ee < ne.length; ee++) + ne[ee].name = De[ne[ee].iso2]; + var Ee = 0, + Fe = { + allowDropdown: !0, + autoPlaceholder: "polite", + containerClass: "", + countryOrder: null, + countrySearch: !0, + customPlaceholder: null, + dropdownContainer: null, + excludeCountries: [], + fixDropdownWidth: !0, + formatAsYouType: !0, + formatOnDisplay: !0, + geoIpLookup: null, + hiddenInput: null, + i18n: {}, + initialCountry: "", + loadUtils: null, + nationalMode: !0, + onlyCountries: [], + placeholderNumberType: "MOBILE", + showFlags: !0, + separateDialCode: !1, + strictMode: !1, + useFullscreenPopup: + typeof navigator < "u" && typeof window < "u" + ? /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + navigator.userAgent + ) || window.innerWidth <= 500 + : !1, + validationNumberTypes: ["MOBILE"], + }, + $e = [ + "800", + "822", + "833", + "844", + "855", + "866", + "877", + "880", + "881", + "882", + "883", + "884", + "885", + "886", + "887", + "888", + "889", + ], + Je = (ee) => ee.replace(/\D/g, ""), + qe = (ee = "") => + ee + .normalize("NFD") + .replace(/[\u0300-\u036f]/g, "") + .toLowerCase(), + Ze = (ee) => { + const re = Je(ee); + if (re.charAt(0) === "1") { + const he = re.substr(1, 3); + return $e.includes(he); + } + return !1; + }, + Qe = (ee, re, he, oe) => { + if (he === 0 && !oe) return 0; + let ze = 0; + for (let je = 0; je < re.length; je++) { + if ((/[+0-9]/.test(re[je]) && ze++, ze === ee && !oe)) + return je + 1; + if (oe && ze === ee + 1) return je; + } + return re.length; + }, + Le = (ee, re, he) => { + const oe = document.createElement(ee); + return ( + re && + Object.entries(re).forEach(([ze, je]) => + oe.setAttribute(ze, je) + ), + he && he.appendChild(oe), + oe + ); + }, + et = (ee, ...re) => { + const { instances: he } = ke; + Object.values(he).forEach((oe) => oe[ee](...re)); + }, + nt = class { + constructor(ee, re = {}) { + (this.id = Ee++), + (this.telInput = ee), + (this.highlightedItem = null), + (this.options = Object.assign({}, Fe, re)), + (this.hadInitialPlaceholder = + !!ee.getAttribute("placeholder")); + } + _init() { + this.options.useFullscreenPopup && + (this.options.fixDropdownWidth = !1), + this.options.onlyCountries.length === 1 && + (this.options.initialCountry = + this.options.onlyCountries[0]), + this.options.separateDialCode && + (this.options.nationalMode = !1), + this.options.allowDropdown && + !this.options.showFlags && + !this.options.separateDialCode && + (this.options.nationalMode = !1), + this.options.useFullscreenPopup && + !this.options.dropdownContainer && + (this.options.dropdownContainer = document.body), + (this.isAndroid = + typeof navigator < "u" + ? /Android/i.test(navigator.userAgent) + : !1), + (this.isRTL = !!this.telInput.closest("[dir=rtl]")); + const ee = + this.options.allowDropdown || this.options.separateDialCode; + (this.showSelectedCountryOnLeft = this.isRTL ? !ee : ee), + this.options.separateDialCode && + (this.isRTL + ? (this.originalPaddingRight = + this.telInput.style.paddingRight) + : (this.originalPaddingLeft = + this.telInput.style.paddingLeft)), + (this.options.i18n = { ...De, ...this.options.i18n }); + const re = new Promise((oe, ze) => { + (this.resolveAutoCountryPromise = oe), + (this.rejectAutoCountryPromise = ze); + }), + he = new Promise((oe, ze) => { + (this.resolveUtilsScriptPromise = oe), + (this.rejectUtilsScriptPromise = ze); + }); + (this.promise = Promise.all([re, he])), + (this.selectedCountryData = {}), + this._processCountryData(), + this._generateMarkup(), + this._setInitialState(), + this._initListeners(), + this._initRequests(); + } + _processCountryData() { + this._processAllCountries(), + this._processDialCodes(), + this._translateCountryNames(), + this._sortCountries(); + } + _sortCountries() { + this.options.countryOrder && + (this.options.countryOrder = this.options.countryOrder.map( + (ee) => ee.toLowerCase() + )), + this.countries.sort((ee, re) => { + const { countryOrder: he } = this.options; + if (he) { + const oe = he.indexOf(ee.iso2), + ze = he.indexOf(re.iso2), + je = oe > -1, + pt = ze > -1; + if (je || pt) return je && pt ? oe - ze : je ? -1 : 1; + } + return ee.name.localeCompare(re.name); + }); + } + _addToDialCodeMap(ee, re, he) { + re.length > this.dialCodeMaxLen && + (this.dialCodeMaxLen = re.length), + this.dialCodeToIso2Map.hasOwnProperty(re) || + (this.dialCodeToIso2Map[re] = []); + for (let ze = 0; ze < this.dialCodeToIso2Map[re].length; ze++) + if (this.dialCodeToIso2Map[re][ze] === ee) return; + const oe = + he !== void 0 ? he : this.dialCodeToIso2Map[re].length; + this.dialCodeToIso2Map[re][oe] = ee; + } + _processAllCountries() { + const { onlyCountries: ee, excludeCountries: re } = + this.options; + if (ee.length) { + const he = ee.map((oe) => oe.toLowerCase()); + this.countries = ne.filter((oe) => he.includes(oe.iso2)); + } else if (re.length) { + const he = re.map((oe) => oe.toLowerCase()); + this.countries = ne.filter((oe) => !he.includes(oe.iso2)); + } else this.countries = ne; + } + _translateCountryNames() { + for (let ee = 0; ee < this.countries.length; ee++) { + const re = this.countries[ee].iso2.toLowerCase(); + this.options.i18n.hasOwnProperty(re) && + (this.countries[ee].name = this.options.i18n[re]); + } + } + _processDialCodes() { + (this.dialCodes = {}), + (this.dialCodeMaxLen = 0), + (this.dialCodeToIso2Map = {}); + for (let ee = 0; ee < this.countries.length; ee++) { + const re = this.countries[ee]; + this.dialCodes[re.dialCode] || + (this.dialCodes[re.dialCode] = !0), + this._addToDialCodeMap(re.iso2, re.dialCode, re.priority); + } + for (let ee = 0; ee < this.countries.length; ee++) { + const re = this.countries[ee]; + if (re.areaCodes) { + const he = this.dialCodeToIso2Map[re.dialCode][0]; + for (let oe = 0; oe < re.areaCodes.length; oe++) { + const ze = re.areaCodes[oe]; + for (let je = 1; je < ze.length; je++) { + const pt = ze.substr(0, je), + it = re.dialCode + pt; + this._addToDialCodeMap(he, it), + this._addToDialCodeMap(re.iso2, it); + } + this._addToDialCodeMap(re.iso2, re.dialCode + ze); + } + } + } + } + _generateMarkup() { + var dt, yt, xt; + this.telInput.classList.add("iti__tel-input"), + !this.telInput.hasAttribute("autocomplete") && + !( + this.telInput.form && + this.telInput.form.hasAttribute("autocomplete") + ) && + this.telInput.setAttribute("autocomplete", "off"); + const { + allowDropdown: ee, + separateDialCode: re, + showFlags: he, + containerClass: oe, + hiddenInput: ze, + dropdownContainer: je, + fixDropdownWidth: pt, + useFullscreenPopup: it, + countrySearch: ct, + i18n: It, + } = this.options; + let Dt = "iti"; + ee && (Dt += " iti--allow-dropdown"), + he && (Dt += " iti--show-flags"), + oe && (Dt += ` ${oe}`), + it || (Dt += " iti--inline-dropdown"); + const at = Le("div", { class: Dt }); + if ( + ((dt = this.telInput.parentNode) == null || + dt.insertBefore(at, this.telInput), + ee || he || re) + ) { + (this.countryContainer = Le( + "div", + { class: "iti__country-container" }, + at + )), + this.showSelectedCountryOnLeft + ? (this.countryContainer.style.left = "0px") + : (this.countryContainer.style.right = "0px"), + ee + ? ((this.selectedCountry = Le( + "button", + { + type: "button", + class: "iti__selected-country", + "aria-expanded": "false", + "aria-label": + this.options.i18n.selectedCountryAriaLabel, + "aria-haspopup": "true", + "aria-controls": `iti-${this.id}__dropdown-content`, + role: "combobox", + }, + this.countryContainer + )), + this.telInput.disabled && + this.selectedCountry.setAttribute( + "disabled", + "true" + )) + : (this.selectedCountry = Le( + "div", + { class: "iti__selected-country" }, + this.countryContainer + )); + const St = Le( + "div", + { class: "iti__selected-country-primary" }, + this.selectedCountry + ); + if ( + ((this.selectedCountryInner = Le( + "div", + { class: "iti__flag" }, + St + )), + (this.selectedCountryA11yText = Le( + "span", + { class: "iti__a11y-text" }, + this.selectedCountryInner + )), + ee && + (this.dropdownArrow = Le( + "div", + { class: "iti__arrow", "aria-hidden": "true" }, + St + )), + re && + (this.selectedDialCode = Le( + "div", + { class: "iti__selected-dial-code" }, + this.selectedCountry + )), + ee) + ) { + const wt = pt ? "" : "iti--flexible-dropdown-width"; + if ( + ((this.dropdownContent = Le("div", { + id: `iti-${this.id}__dropdown-content`, + class: `iti__dropdown-content iti__hide ${wt}`, + })), + ct && + ((this.searchInput = Le( + "input", + { + type: "text", + class: "iti__search-input", + placeholder: It.searchPlaceholder, + role: "combobox", + "aria-expanded": "true", + "aria-label": It.searchPlaceholder, + "aria-controls": `iti-${this.id}__country-listbox`, + "aria-autocomplete": "list", + autocomplete: "off", + }, + this.dropdownContent + )), + (this.searchResultsA11yText = Le( + "span", + { class: "iti__a11y-text" }, + this.dropdownContent + ))), + (this.countryList = Le( + "ul", + { + class: "iti__country-list", + id: `iti-${this.id}__country-listbox`, + role: "listbox", + "aria-label": It.countryListAriaLabel, + }, + this.dropdownContent + )), + this._appendListItems(), + ct && this._updateSearchResultsText(), + je) + ) { + let _t = "iti iti--container"; + it + ? (_t += " iti--fullscreen-popup") + : (_t += " iti--inline-dropdown"), + (this.dropdown = Le("div", { class: _t })), + this.dropdown.appendChild(this.dropdownContent); + } else + this.countryContainer.appendChild(this.dropdownContent); + } + } + if ( + (at.appendChild(this.telInput), + this._updateInputPadding(), + ze) + ) { + const St = this.telInput.getAttribute("name") || "", + wt = ze(St); + if (wt.phone) { + const _t = + (yt = this.telInput.form) == null + ? void 0 + : yt.querySelector(`input[name="${wt.phone}"]`); + _t + ? (this.hiddenInput = _t) + : ((this.hiddenInput = Le("input", { + type: "hidden", + name: wt.phone, + })), + at.appendChild(this.hiddenInput)); + } + if (wt.country) { + const _t = + (xt = this.telInput.form) == null + ? void 0 + : xt.querySelector(`input[name="${wt.country}"]`); + _t + ? (this.hiddenInputCountry = _t) + : ((this.hiddenInputCountry = Le("input", { + type: "hidden", + name: wt.country, + })), + at.appendChild(this.hiddenInputCountry)); + } + } + } + _appendListItems() { + for (let ee = 0; ee < this.countries.length; ee++) { + const re = this.countries[ee], + he = ee === 0 ? "iti__highlight" : "", + oe = Le( + "li", + { + id: `iti-${this.id}__item-${re.iso2}`, + class: `iti__country ${he}`, + tabindex: "-1", + role: "option", + "data-dial-code": re.dialCode, + "data-country-code": re.iso2, + "aria-selected": "false", + }, + this.countryList + ); + re.nodeById[this.id] = oe; + let ze = ""; + this.options.showFlags && + (ze += `
                  `), + (ze += `${re.name}`), + (ze += `+${re.dialCode}`), + oe.insertAdjacentHTML("beforeend", ze); + } + } + _setInitialState(ee = !1) { + const re = this.telInput.getAttribute("value"), + he = this.telInput.value, + ze = + re && + re.charAt(0) === "+" && + (!he || he.charAt(0) !== "+") + ? re + : he, + je = this._getDialCode(ze), + pt = Ze(ze), + { initialCountry: it, geoIpLookup: ct } = this.options, + It = it === "auto" && ct; + if (je && !pt) this._updateCountryFromNumber(ze); + else if (!It || ee) { + const Dt = it ? it.toLowerCase() : ""; + Dt && this._getCountryData(Dt, !0) + ? this._setCountry(Dt) + : je && pt + ? this._setCountry("us") + : this._setCountry(); + } + ze && this._updateValFromNumber(ze); + } + _initListeners() { + this._initTelInputListeners(), + this.options.allowDropdown && this._initDropdownListeners(), + (this.hiddenInput || this.hiddenInputCountry) && + this.telInput.form && + this._initHiddenInputListener(); + } + _initHiddenInputListener() { + var ee; + (this._handleHiddenInputSubmit = () => { + this.hiddenInput && + (this.hiddenInput.value = this.getNumber()), + this.hiddenInputCountry && + (this.hiddenInputCountry.value = + this.getSelectedCountryData().iso2 || ""); + }), + (ee = this.telInput.form) == null || + ee.addEventListener( + "submit", + this._handleHiddenInputSubmit + ); + } + _initDropdownListeners() { + this._handleLabelClick = (re) => { + this.dropdownContent.classList.contains("iti__hide") + ? this.telInput.focus() + : re.preventDefault(); + }; + const ee = this.telInput.closest("label"); + ee && ee.addEventListener("click", this._handleLabelClick), + (this._handleClickSelectedCountry = () => { + this.dropdownContent.classList.contains("iti__hide") && + !this.telInput.disabled && + !this.telInput.readOnly && + this._openDropdown(); + }), + this.selectedCountry.addEventListener( + "click", + this._handleClickSelectedCountry + ), + (this._handleCountryContainerKeydown = (re) => { + this.dropdownContent.classList.contains("iti__hide") && + ["ArrowUp", "ArrowDown", " ", "Enter"].includes( + re.key + ) && + (re.preventDefault(), + re.stopPropagation(), + this._openDropdown()), + re.key === "Tab" && this._closeDropdown(); + }), + this.countryContainer.addEventListener( + "keydown", + this._handleCountryContainerKeydown + ); + } + _initRequests() { + let { + loadUtils: ee, + initialCountry: re, + geoIpLookup: he, + } = this.options; + ee && !ke.utils + ? ((this._handlePageLoad = () => { + var ze; + window.removeEventListener( + "load", + this._handlePageLoad + ), + (ze = ke.attachUtils(ee)) == null || + ze.catch(() => {}); + }), + ke.documentReady() + ? this._handlePageLoad() + : window.addEventListener("load", this._handlePageLoad)) + : this.resolveUtilsScriptPromise(), + re === "auto" && he && !this.selectedCountryData.iso2 + ? this._loadAutoCountry() + : this.resolveAutoCountryPromise(); + } + _loadAutoCountry() { + ke.autoCountry + ? this.handleAutoCountry() + : ke.startedLoadingAutoCountry || + ((ke.startedLoadingAutoCountry = !0), + typeof this.options.geoIpLookup == "function" && + this.options.geoIpLookup( + (ee = "") => { + const re = ee.toLowerCase(); + re && this._getCountryData(re, !0) + ? ((ke.autoCountry = re), + setTimeout(() => et("handleAutoCountry"))) + : (this._setInitialState(!0), + et("rejectAutoCountryPromise")); + }, + () => { + this._setInitialState(!0), + et("rejectAutoCountryPromise"); + } + )); + } + _openDropdownWithPlus() { + this._openDropdown(), + (this.searchInput.value = "+"), + this._filterCountries("", !0); + } + _initTelInputListeners() { + const { + strictMode: ee, + formatAsYouType: re, + separateDialCode: he, + formatOnDisplay: oe, + allowDropdown: ze, + countrySearch: je, + } = this.options; + let pt = !1; + new RegExp("\\p{L}", "u").test(this.telInput.value) && + (pt = !0), + (this._handleInputEvent = (it) => { + if ( + this.isAndroid && + (it == null ? void 0 : it.data) === "+" && + he && + ze && + je + ) { + const at = this.telInput.selectionStart || 0, + dt = this.telInput.value.substring(0, at - 1), + yt = this.telInput.value.substring(at); + (this.telInput.value = dt + yt), + this._openDropdownWithPlus(); + return; + } + this._updateCountryFromNumber(this.telInput.value) && + this._triggerCountryChange(); + const ct = + (it == null ? void 0 : it.data) && + /[^+0-9]/.test(it.data), + It = + (it == null ? void 0 : it.inputType) === + "insertFromPaste" && this.telInput.value; + ct || (It && !ee) + ? (pt = !0) + : /[^+0-9]/.test(this.telInput.value) || (pt = !1); + const Dt = + (it == null ? void 0 : it.detail) && + it.detail.isSetNumber && + !oe; + if (re && !pt && !Dt) { + const at = this.telInput.selectionStart || 0, + yt = this.telInput.value + .substring(0, at) + .replace(/[^+0-9]/g, "").length, + xt = + (it == null ? void 0 : it.inputType) === + "deleteContentForward", + St = this._formatNumberAsYouType(), + wt = Qe(yt, St, at, xt); + (this.telInput.value = St), + this.telInput.setSelectionRange(wt, wt); + } + }), + this.telInput.addEventListener( + "input", + this._handleInputEvent + ), + (ee || he) && + ((this._handleKeydownEvent = (it) => { + if ( + it.key && + it.key.length === 1 && + !it.altKey && + !it.ctrlKey && + !it.metaKey + ) { + if (he && ze && je && it.key === "+") { + it.preventDefault(), this._openDropdownWithPlus(); + return; + } + if (ee) { + const ct = this.telInput.value, + It = ct.charAt(0) === "+", + Dt = + !It && + this.telInput.selectionStart === 0 && + it.key === "+", + at = /^[0-9]$/.test(it.key), + dt = he ? at : Dt || at, + yt = + ct.slice(0, this.telInput.selectionStart) + + it.key + + ct.slice(this.telInput.selectionEnd), + xt = this._getFullNumber(yt), + St = ke.utils.getCoreNumber( + xt, + this.selectedCountryData.iso2 + ), + wt = + this.maxCoreNumberLength && + St.length > this.maxCoreNumberLength; + let _t = !1; + if (It) { + const Lt = this.selectedCountryData.iso2; + _t = this._getCountryFromNumber(xt) !== Lt; + } + (!dt || (wt && !_t && !Dt)) && it.preventDefault(); + } + } + }), + this.telInput.addEventListener( + "keydown", + this._handleKeydownEvent + )); + } + _cap(ee) { + const re = parseInt( + this.telInput.getAttribute("maxlength") || "", + 10 + ); + return re && ee.length > re ? ee.substr(0, re) : ee; + } + _trigger(ee, re = {}) { + const he = new CustomEvent(ee, { + bubbles: !0, + cancelable: !0, + detail: re, + }); + this.telInput.dispatchEvent(he); + } + _openDropdown() { + const { fixDropdownWidth: ee, countrySearch: re } = + this.options; + if ( + (ee && + (this.dropdownContent.style.width = `${this.telInput.offsetWidth}px`), + this.dropdownContent.classList.remove("iti__hide"), + this.selectedCountry.setAttribute("aria-expanded", "true"), + this._setDropdownPosition(), + re) + ) { + const he = this.countryList.firstElementChild; + he && + (this._highlightListItem(he, !1), + (this.countryList.scrollTop = 0)), + this.searchInput.focus(); + } + this._bindDropdownListeners(), + this.dropdownArrow.classList.add("iti__arrow--up"), + this._trigger("open:countrydropdown"); + } + _setDropdownPosition() { + if ( + (this.options.dropdownContainer && + this.options.dropdownContainer.appendChild(this.dropdown), + !this.options.useFullscreenPopup) + ) { + const ee = this.telInput.getBoundingClientRect(), + re = this.telInput.offsetHeight; + this.options.dropdownContainer && + ((this.dropdown.style.top = `${ee.top + re}px`), + (this.dropdown.style.left = `${ee.left}px`), + (this._handleWindowScroll = () => this._closeDropdown()), + window.addEventListener( + "scroll", + this._handleWindowScroll + )); + } + } + _bindDropdownListeners() { + (this._handleMouseoverCountryList = (oe) => { + var je; + const ze = + (je = oe.target) == null + ? void 0 + : je.closest(".iti__country"); + ze && this._highlightListItem(ze, !1); + }), + this.countryList.addEventListener( + "mouseover", + this._handleMouseoverCountryList + ), + (this._handleClickCountryList = (oe) => { + var je; + const ze = + (je = oe.target) == null + ? void 0 + : je.closest(".iti__country"); + ze && this._selectListItem(ze); + }), + this.countryList.addEventListener( + "click", + this._handleClickCountryList + ); + let ee = !0; + (this._handleClickOffToClose = () => { + ee || this._closeDropdown(), (ee = !1); + }), + document.documentElement.addEventListener( + "click", + this._handleClickOffToClose + ); + let re = "", + he = null; + if ( + ((this._handleKeydownOnDropdown = (oe) => { + ["ArrowUp", "ArrowDown", "Enter", "Escape"].includes( + oe.key + ) && + (oe.preventDefault(), + oe.stopPropagation(), + oe.key === "ArrowUp" || oe.key === "ArrowDown" + ? this._handleUpDownKey(oe.key) + : oe.key === "Enter" + ? this._handleEnterKey() + : oe.key === "Escape" && this._closeDropdown()), + !this.options.countrySearch && + /^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(oe.key) && + (oe.stopPropagation(), + he && clearTimeout(he), + (re += oe.key.toLowerCase()), + this._searchForCountry(re), + (he = setTimeout(() => { + re = ""; + }, 1e3))); + }), + document.addEventListener( + "keydown", + this._handleKeydownOnDropdown + ), + this.options.countrySearch) + ) { + const oe = () => { + const je = this.searchInput.value.trim(); + je + ? this._filterCountries(je) + : this._filterCountries("", !0); + }; + let ze = null; + (this._handleSearchChange = () => { + ze && clearTimeout(ze), + (ze = setTimeout(() => { + oe(), (ze = null); + }, 100)); + }), + this.searchInput.addEventListener( + "input", + this._handleSearchChange + ), + this.searchInput.addEventListener("click", (je) => + je.stopPropagation() + ); + } + } + _searchForCountry(ee) { + for (let re = 0; re < this.countries.length; re++) { + const he = this.countries[re]; + if (he.name.substr(0, ee.length).toLowerCase() === ee) { + const ze = he.nodeById[this.id]; + this._highlightListItem(ze, !1), this._scrollTo(ze); + break; + } + } + } + _filterCountries(ee, re = !1) { + let he = !0; + this.countryList.innerHTML = ""; + const oe = qe(ee); + for (let ze = 0; ze < this.countries.length; ze++) { + const je = this.countries[ze], + pt = qe(je.name), + it = je.name + .split(/[^a-zA-ZÀ-ÿа-яА-Я]/) + .map((It) => It[0]) + .join("") + .toLowerCase(), + ct = `+${je.dialCode}`; + if ( + re || + pt.includes(oe) || + ct.includes(oe) || + je.iso2.includes(oe) || + it.includes(oe) + ) { + const It = je.nodeById[this.id]; + It && this.countryList.appendChild(It), + he && (this._highlightListItem(It, !1), (he = !1)); + } + } + he && this._highlightListItem(null, !1), + (this.countryList.scrollTop = 0), + this._updateSearchResultsText(); + } + _updateSearchResultsText() { + const { i18n: ee } = this.options, + re = this.countryList.childElementCount; + let he; + re === 0 + ? (he = ee.zeroSearchResults) + : re === 1 + ? (he = ee.oneSearchResult) + : (he = ee.multipleSearchResults.replace( + "${count}", + re.toString() + )), + (this.searchResultsA11yText.textContent = he); + } + _handleUpDownKey(ee) { + var he, oe; + let re = + ee === "ArrowUp" + ? (he = this.highlightedItem) == null + ? void 0 + : he.previousElementSibling + : (oe = this.highlightedItem) == null + ? void 0 + : oe.nextElementSibling; + !re && + this.countryList.childElementCount > 1 && + (re = + ee === "ArrowUp" + ? this.countryList.lastElementChild + : this.countryList.firstElementChild), + re && (this._scrollTo(re), this._highlightListItem(re, !1)); + } + _handleEnterKey() { + this.highlightedItem && + this._selectListItem(this.highlightedItem); + } + _updateValFromNumber(ee) { + let re = ee; + if ( + this.options.formatOnDisplay && + ke.utils && + this.selectedCountryData + ) { + const he = + this.options.nationalMode || + (re.charAt(0) !== "+" && + !this.options.separateDialCode), + { NATIONAL: oe, INTERNATIONAL: ze } = + ke.utils.numberFormat, + je = he ? oe : ze; + re = ke.utils.formatNumber( + re, + this.selectedCountryData.iso2, + je + ); + } + (re = this._beforeSetNumber(re)), (this.telInput.value = re); + } + _updateCountryFromNumber(ee) { + const re = this._getCountryFromNumber(ee); + return re !== null ? this._setCountry(re) : !1; + } + _ensureHasDialCode(ee) { + const { dialCode: re, nationalPrefix: he } = + this.selectedCountryData; + if (ee.charAt(0) === "+" || !re) return ee; + const je = + he && ee.charAt(0) === he && !this.options.separateDialCode + ? ee.substring(1) + : ee; + return `+${re}${je}`; + } + _getCountryFromNumber(ee) { + const re = ee.indexOf("+"); + let he = re ? ee.substring(re) : ee; + const oe = this.selectedCountryData.iso2, + ze = this.selectedCountryData.dialCode; + he = this._ensureHasDialCode(he); + const je = this._getDialCode(he, !0), + pt = Je(he); + if (je) { + const it = Je(je), + ct = this.dialCodeToIso2Map[it]; + if ( + !oe && + this.defaultCountry && + ct.includes(this.defaultCountry) + ) + return this.defaultCountry; + const It = + oe && + ct.includes(oe) && + (pt.length === it.length || + !this.selectedCountryData.areaCodes); + if (!(ze === "1" && Ze(pt)) && !It) { + for (let at = 0; at < ct.length; at++) + if (ct[at]) return ct[at]; + } + } else { + if (he.charAt(0) === "+" && pt.length) return ""; + if ((!he || he === "+") && !this.selectedCountryData.iso2) + return this.defaultCountry; + } + return null; + } + _highlightListItem(ee, re) { + const he = this.highlightedItem; + if ( + (he && + (he.classList.remove("iti__highlight"), + he.setAttribute("aria-selected", "false")), + (this.highlightedItem = ee), + this.highlightedItem) + ) { + this.highlightedItem.classList.add("iti__highlight"), + this.highlightedItem.setAttribute( + "aria-selected", + "true" + ); + const oe = this.highlightedItem.getAttribute("id") || ""; + this.selectedCountry.setAttribute( + "aria-activedescendant", + oe + ), + this.options.countrySearch && + this.searchInput.setAttribute( + "aria-activedescendant", + oe + ); + } + re && this.highlightedItem.focus(); + } + _getCountryData(ee, re) { + for (let he = 0; he < this.countries.length; he++) + if (this.countries[he].iso2 === ee) + return this.countries[he]; + if (re) return null; + throw new Error(`No country data for '${ee}'`); + } + _setCountry(ee) { + const { + separateDialCode: re, + showFlags: he, + i18n: oe, + } = this.options, + ze = this.selectedCountryData.iso2 + ? this.selectedCountryData + : {}; + if ( + ((this.selectedCountryData = ee + ? this._getCountryData(ee, !1) || {} + : {}), + this.selectedCountryData.iso2 && + (this.defaultCountry = this.selectedCountryData.iso2), + this.selectedCountryInner) + ) { + let je = "", + pt = ""; + ee && he + ? ((je = `iti__flag iti__${ee}`), + (pt = `${this.selectedCountryData.name} +${this.selectedCountryData.dialCode}`)) + : ((je = "iti__flag iti__globe"), + (pt = oe.noCountrySelected)), + (this.selectedCountryInner.className = je), + (this.selectedCountryA11yText.textContent = pt); + } + if ((this._setSelectedCountryTitleAttribute(ee, re), re)) { + const je = this.selectedCountryData.dialCode + ? `+${this.selectedCountryData.dialCode}` + : ""; + (this.selectedDialCode.innerHTML = je), + this._updateInputPadding(); + } + return ( + this._updatePlaceholder(), + this._updateMaxLength(), + ze.iso2 !== ee + ); + } + _updateInputPadding() { + if (this.selectedCountry) { + const re = + (this.selectedCountry.offsetWidth || + this._getHiddenSelectedCountryWidth()) + 6; + this.showSelectedCountryOnLeft + ? (this.telInput.style.paddingLeft = `${re}px`) + : (this.telInput.style.paddingRight = `${re}px`); + } + } + _updateMaxLength() { + const { + strictMode: ee, + placeholderNumberType: re, + validationNumberTypes: he, + } = this.options, + { iso2: oe } = this.selectedCountryData; + if (ee && ke.utils) + if (oe) { + const ze = ke.utils.numberType[re]; + let je = ke.utils.getExampleNumber(oe, !1, ze, !0), + pt = je; + for (; ke.utils.isPossibleNumber(je, oe, he); ) + (pt = je), (je += "0"); + const it = ke.utils.getCoreNumber(pt, oe); + (this.maxCoreNumberLength = it.length), + oe === "by" && + (this.maxCoreNumberLength = it.length + 1); + } else this.maxCoreNumberLength = null; + } + _setSelectedCountryTitleAttribute(ee = null, re) { + if (!this.selectedCountry) return; + let he; + ee && !re + ? (he = `${this.selectedCountryData.name}: +${this.selectedCountryData.dialCode}`) + : ee + ? (he = this.selectedCountryData.name) + : (he = "Unknown"), + this.selectedCountry.setAttribute("title", he); + } + _getHiddenSelectedCountryWidth() { + if (this.telInput.parentNode) { + const ee = this.telInput.parentNode.cloneNode(!1); + (ee.style.visibility = "hidden"), + document.body.appendChild(ee); + const re = this.countryContainer.cloneNode(); + ee.appendChild(re); + const he = this.selectedCountry.cloneNode(!0); + re.appendChild(he); + const oe = he.offsetWidth; + return document.body.removeChild(ee), oe; + } + return 0; + } + _updatePlaceholder() { + const { + autoPlaceholder: ee, + placeholderNumberType: re, + nationalMode: he, + customPlaceholder: oe, + } = this.options, + ze = + ee === "aggressive" || + (!this.hadInitialPlaceholder && ee === "polite"); + if (ke.utils && ze) { + const je = ke.utils.numberType[re]; + let pt = this.selectedCountryData.iso2 + ? ke.utils.getExampleNumber( + this.selectedCountryData.iso2, + he, + je + ) + : ""; + (pt = this._beforeSetNumber(pt)), + typeof oe == "function" && + (pt = oe(pt, this.selectedCountryData)), + this.telInput.setAttribute("placeholder", pt); + } + } + _selectListItem(ee) { + const re = this._setCountry( + ee.getAttribute("data-country-code") + ); + this._closeDropdown(), + this._updateDialCode(ee.getAttribute("data-dial-code")), + this.telInput.focus(), + re && this._triggerCountryChange(); + } + _closeDropdown() { + this.dropdownContent.classList.add("iti__hide"), + this.selectedCountry.setAttribute("aria-expanded", "false"), + this.selectedCountry.removeAttribute( + "aria-activedescendant" + ), + this.highlightedItem && + this.highlightedItem.setAttribute( + "aria-selected", + "false" + ), + this.options.countrySearch && + this.searchInput.removeAttribute("aria-activedescendant"), + this.dropdownArrow.classList.remove("iti__arrow--up"), + document.removeEventListener( + "keydown", + this._handleKeydownOnDropdown + ), + this.options.countrySearch && + this.searchInput.removeEventListener( + "input", + this._handleSearchChange + ), + document.documentElement.removeEventListener( + "click", + this._handleClickOffToClose + ), + this.countryList.removeEventListener( + "mouseover", + this._handleMouseoverCountryList + ), + this.countryList.removeEventListener( + "click", + this._handleClickCountryList + ), + this.options.dropdownContainer && + (this.options.useFullscreenPopup || + window.removeEventListener( + "scroll", + this._handleWindowScroll + ), + this.dropdown.parentNode && + this.dropdown.parentNode.removeChild(this.dropdown)), + this._handlePageLoad && + window.removeEventListener("load", this._handlePageLoad), + this._trigger("close:countrydropdown"); + } + _scrollTo(ee) { + const re = this.countryList, + he = document.documentElement.scrollTop, + oe = re.offsetHeight, + ze = re.getBoundingClientRect().top + he, + je = ze + oe, + pt = ee.offsetHeight, + it = ee.getBoundingClientRect().top + he, + ct = it + pt, + It = it - ze + re.scrollTop; + if (it < ze) re.scrollTop = It; + else if (ct > je) { + const Dt = oe - pt; + re.scrollTop = It - Dt; + } + } + _updateDialCode(ee) { + const re = this.telInput.value, + he = `+${ee}`; + let oe; + if (re.charAt(0) === "+") { + const ze = this._getDialCode(re); + ze ? (oe = re.replace(ze, he)) : (oe = he), + (this.telInput.value = oe); + } + } + _getDialCode(ee, re) { + let he = ""; + if (ee.charAt(0) === "+") { + let oe = ""; + for (let ze = 0; ze < ee.length; ze++) { + const je = ee.charAt(ze); + if (!isNaN(parseInt(je, 10))) { + if (((oe += je), re)) + this.dialCodeToIso2Map[oe] && + (he = ee.substr(0, ze + 1)); + else if (this.dialCodes[oe]) { + he = ee.substr(0, ze + 1); + break; + } + if (oe.length === this.dialCodeMaxLen) break; + } + } + } + return he; + } + _getFullNumber(ee) { + const re = ee || this.telInput.value.trim(), + { dialCode: he } = this.selectedCountryData; + let oe; + const ze = Je(re); + return ( + this.options.separateDialCode && + re.charAt(0) !== "+" && + he && + ze + ? (oe = `+${he}`) + : (oe = ""), + oe + re + ); + } + _beforeSetNumber(ee) { + let re = ee; + if (this.options.separateDialCode) { + let he = this._getDialCode(re); + if (he) { + he = `+${this.selectedCountryData.dialCode}`; + const oe = + re[he.length] === " " || re[he.length] === "-" + ? he.length + 1 + : he.length; + re = re.substr(oe); + } + } + return this._cap(re); + } + _triggerCountryChange() { + this._trigger("countrychange"); + } + _formatNumberAsYouType() { + const ee = this._getFullNumber(), + re = ke.utils + ? ke.utils.formatNumberAsYouType( + ee, + this.selectedCountryData.iso2 + ) + : ee, + { dialCode: he } = this.selectedCountryData; + return this.options.separateDialCode && + this.telInput.value.charAt(0) !== "+" && + re.includes(`+${he}`) + ? (re.split(`+${he}`)[1] || "").trim() + : re; + } + handleAutoCountry() { + this.options.initialCountry === "auto" && + ke.autoCountry && + ((this.defaultCountry = ke.autoCountry), + this.selectedCountryData.iso2 || + this.selectedCountryInner.classList.contains( + "iti__globe" + ) || + this.setCountry(this.defaultCountry), + this.resolveAutoCountryPromise()); + } + handleUtils() { + ke.utils && + (this.telInput.value && + this._updateValFromNumber(this.telInput.value), + this.selectedCountryData.iso2 && + (this._updatePlaceholder(), this._updateMaxLength())), + this.resolveUtilsScriptPromise(); + } + destroy() { + var ze, je; + const { allowDropdown: ee, separateDialCode: re } = + this.options; + if (ee) { + this._closeDropdown(), + this.selectedCountry.removeEventListener( + "click", + this._handleClickSelectedCountry + ), + this.countryContainer.removeEventListener( + "keydown", + this._handleCountryContainerKeydown + ); + const pt = this.telInput.closest("label"); + pt && + pt.removeEventListener("click", this._handleLabelClick); + } + const { form: he } = this.telInput; + this._handleHiddenInputSubmit && + he && + he.removeEventListener( + "submit", + this._handleHiddenInputSubmit + ), + this.telInput.removeEventListener( + "input", + this._handleInputEvent + ), + this._handleKeydownEvent && + this.telInput.removeEventListener( + "keydown", + this._handleKeydownEvent + ), + this.telInput.removeAttribute("data-intl-tel-input-id"), + re && + (this.isRTL + ? (this.telInput.style.paddingRight = + this.originalPaddingRight) + : (this.telInput.style.paddingLeft = + this.originalPaddingLeft)); + const oe = this.telInput.parentNode; + (ze = oe == null ? void 0 : oe.parentNode) == null || + ze.insertBefore(this.telInput, oe), + (je = oe == null ? void 0 : oe.parentNode) == null || + je.removeChild(oe), + delete ke.instances[this.id]; + } + getExtension() { + return ke.utils + ? ke.utils.getExtension( + this._getFullNumber(), + this.selectedCountryData.iso2 + ) + : ""; + } + getNumber(ee) { + if (ke.utils) { + const { iso2: re } = this.selectedCountryData; + return ke.utils.formatNumber(this._getFullNumber(), re, ee); + } + return ""; + } + getNumberType() { + return ke.utils + ? ke.utils.getNumberType( + this._getFullNumber(), + this.selectedCountryData.iso2 + ) + : -99; + } + getSelectedCountryData() { + return this.selectedCountryData; + } + getValidationError() { + if (ke.utils) { + const { iso2: ee } = this.selectedCountryData; + return ke.utils.getValidationError( + this._getFullNumber(), + ee + ); + } + return -99; + } + isValidNumber() { + if (!this.selectedCountryData.iso2) return !1; + const ee = this._getFullNumber(), + re = ee.search(new RegExp("\\p{L}", "u")); + if (re > -1) { + const he = ee.substring(0, re), + oe = this._utilsIsPossibleNumber(he), + ze = this._utilsIsPossibleNumber(ee); + return oe && ze; + } + return this._utilsIsPossibleNumber(ee); + } + _utilsIsPossibleNumber(ee) { + return ke.utils + ? ke.utils.isPossibleNumber( + ee, + this.selectedCountryData.iso2, + this.options.validationNumberTypes + ) + : null; + } + isValidNumberPrecise() { + if (!this.selectedCountryData.iso2) return !1; + const ee = this._getFullNumber(), + re = ee.search(new RegExp("\\p{L}", "u")); + if (re > -1) { + const he = ee.substring(0, re), + oe = this._utilsIsValidNumber(he), + ze = this._utilsIsValidNumber(ee); + return oe && ze; + } + return this._utilsIsValidNumber(ee); + } + _utilsIsValidNumber(ee) { + return ke.utils + ? ke.utils.isValidNumber( + ee, + this.selectedCountryData.iso2, + this.options.validationNumberTypes + ) + : null; + } + setCountry(ee) { + const re = ee == null ? void 0 : ee.toLowerCase(), + he = this.selectedCountryData.iso2; + ((ee && re !== he) || (!ee && he)) && + (this._setCountry(re), + this._updateDialCode(this.selectedCountryData.dialCode), + this._triggerCountryChange()); + } + setNumber(ee) { + const re = this._updateCountryFromNumber(ee); + this._updateValFromNumber(ee), + re && this._triggerCountryChange(), + this._trigger("input", { isSetNumber: !0 }); + } + setPlaceholderNumberType(ee) { + (this.options.placeholderNumberType = ee), + this._updatePlaceholder(); + } + setDisabled(ee) { + (this.telInput.disabled = ee), + ee + ? this.selectedCountry.setAttribute("disabled", "true") + : this.selectedCountry.removeAttribute("disabled"); + } + }, + Ue = (ee) => { + if (!ke.utils && !ke.startedLoadingUtilsScript) { + let re; + if (typeof ee == "function") + try { + re = Promise.resolve(ee()); + } catch (he) { + return Promise.reject(he); + } + else + return Promise.reject( + new TypeError( + `The argument passed to attachUtils must be a function that returns a promise for the utilities module, not ${typeof ee}` + ) + ); + return ( + (ke.startedLoadingUtilsScript = !0), + re + .then((he) => { + const oe = he == null ? void 0 : he.default; + if (!oe || typeof oe != "object") + throw new TypeError( + "The loader function passed to attachUtils did not resolve to a module object with utils as its default export." + ); + return (ke.utils = oe), et("handleUtils"), !0; + }) + .catch((he) => { + throw (et("rejectUtilsScriptPromise", he), he); + }) + ); + } + return null; + }, + ke = Object.assign( + (ee, re) => { + const he = new nt(ee, re); + return ( + he._init(), + ee.setAttribute("data-intl-tel-input-id", he.id.toString()), + (ke.instances[he.id] = he), + he + ); + }, + { + defaults: Fe, + documentReady: () => document.readyState === "complete", + getCountryData: () => ne, + getInstance: (ee) => { + const re = ee.getAttribute("data-intl-tel-input-id"); + return re ? ke.instances[re] : null; + }, + instances: {}, + attachUtils: Ue, + startedLoadingUtilsScript: !1, + startedLoadingAutoCountry: !1, + version: "25.3.2", + } + ), + vt = ke; + return B(O); + })(); + return a.default; + }); + })($f)), + $f.exports + ); +} +var iD = nD(); +const aD = Zm(iD); +var oD = Te( + '
                  ' + ), + sD = Te(' '), + lD = Te( + '

                  ', + 1 + ), + cD = async (m, a, p) => { + await a(x(p)); + }, + uD = Te(' '), + hD = (m, a) => { + se(a, ""); + }, + dD = Te( + '

                  ', + 1 + ), + pD = Te( + '
                  ' + ); +function fD(m, a) { + Lr(a, !0); + let p = st(!0), + y = st(""), + M = st(0), + z = st(!1); + const T = ft(() => x(M) > 0 || x(z)); + let s = st(!1), + B = st(""), + O = st(void 0); + const X = ft(() => { + var Ie; + return `phone:${(Ie = Mt.data) == null ? void 0 : Ie.id}`; + }); + Wr(() => { + const Ie = localStorage.getItem(x(X)); + Ie && se(y, Ie, !0); + }), + Fn(() => { + Qr.getOtpCooldown() + .then((De) => { + se(M, De.cooldownMs, !0); + }) + .catch((De) => { + Fr.error(De.message); + }) + .finally(() => { + se(p, !1); + }); + const Ie = 1e3, + Ae = setInterval(() => { + se(M, Math.max(0, x(M) - Ie), !0); + }, Ie); + return () => { + clearInterval(Ae); + }; + }); + async function K(Ie) { + try { + se(z, !0); + const Ae = await Qr.sendOtp(Ie); + Fr.info(`${QC()} ${Ae.phone}`), + se(y, Ae.phone, !0), + se(M, Ae.cooldownMs, !0), + localStorage.setItem(x(X), x(y)); + } catch (Ae) { + Fr.error(Ae.message); + } finally { + se(z, !1); + } + } + Wr(() => { + x(B).length === 6 && + (se(s, !0), + (async () => { + try { + await Qr.verifyOtp(x(B)), + await Mt.refresh(), + Fr.success(rS()), + localStorage.removeItem(x(X)), + a.onsuccess(x(y)); + } catch (Ie) { + Fr.error(Ie.message); + } finally { + se(B, ""), se(s, !1); + } + })()); + }); + var ne = pD(), + H = A(ne); + { + var fe = (Ie) => { + var Ae = oD(); + $(Ie, Ae); + }, + ge = (Ie) => { + var Ae = er(), + De = Ct(Ae); + { + var Ee = ($e) => { + var Je = lD(), + qe = Ct(Je), + Ze = A(qe), + Qe = A(Ze, !0); + k(Ze); + var Le = j(Ze, 2), + et = A(Le, !0); + k(Le), k(qe); + var nt = j(qe, 2), + Ue = A(nt); + Ni( + Ue, + () => (he) => ( + se( + O, + aD(he, { + strictMode: !0, + initialCountry: "br", + loadUtils: () => + qx( + () => import("../chunks/yW7U80iv.js"), + [], + import.meta.url + ), + containerClass: "w-full", + dropdownContainer: document.body, + }) + ), + () => { + var oe; + (oe = x(O)) == null || oe.destroy(); + } + ) + ); + var ke = j(Ue, 2), + vt = A(ke), + ee = j(vt); + { + var re = (he) => { + var oe = sD(), + ze = A(oe); + k(oe), + We((je) => de(ze, `(${je ?? ""})`), [() => rp(x(M))]), + $(he, oe); + }; + Oe(ee, (he) => { + x(M) > 0 && he(re); + }); + } + k(ke), + k(nt), + We( + (he, oe, ze) => { + de(Qe, he), + de(et, oe), + (ke.disabled = x(T)), + de(vt, `${ze ?? ""} `); + }, + [() => US(), () => HS(), () => YS()] + ), + di("submit", nt, async () => { + var oe; + if (x(T)) return; + if (!((oe = x(O)) != null && oe.isValidNumber())) { + Fr.error(aS()); + return; + } + const he = x(O).getNumber(); + await K(he); + }), + $($e, Je); + }, + Fe = ($e) => { + var Je = dD(), + qe = Ct(Je), + Ze = A(qe), + Qe = A(Ze, !0); + k(Ze); + var Le = j(Ze, 2), + et = A(Le); + k(Le), k(qe); + var nt = j(qe, 2), + Ue = A(nt); + { + const je = (pt, it) => { + let ct = () => (it == null ? void 0 : it().cells); + var It = er(), + Dt = Ct(It); + xi( + Dt, + () => JL, + (at, dt) => { + dt(at, { + class: "border-primary", + children: (yt, xt) => { + var St = er(), + wt = Ct(St); + hi( + wt, + 16, + ct, + (_t) => _t, + (_t, Lt) => { + var Rt = er(), + $t = Ct(Rt); + xi( + $t, + () => tD, + (tr, Qt) => { + Qt(tr, { + get cell() { + return Lt; + }, + class: + "border-base-content/20 size-11 sm:size-12", + }); + } + ), + $(_t, Rt); + } + ), + $(yt, St); + }, + $$slots: { default: !0 }, + }); + } + ), + $(pt, It); + }; + xi( + Ue, + () => rD, + (pt, it) => { + it(pt, { + maxlength: 6, + class: "mx-auto w-max", + get disabled() { + return x(s); + }, + get value() { + return x(B); + }, + set value(ct) { + se(B, ct, !0); + }, + children: je, + $$slots: { default: !0 }, + }); + } + ); + } + k(nt); + var ke = j(nt, 2), + vt = A(ke); + vt.__click = [cD, K, y]; + var ee = A(vt), + re = j(ee); + { + var he = (je) => { + var pt = uD(), + it = A(pt); + k(pt), + We((ct) => de(it, `(${ct ?? ""})`), [() => rp(x(M))]), + $(je, pt); + }; + Oe(re, (je) => { + x(M) > 0 && je(he); + }); + } + k(vt); + var oe = j(vt, 2); + oe.__click = [hD, y]; + var ze = A(oe, !0); + k(oe), + k(ke), + We( + (je, pt, it, ct) => { + de(Qe, je), + de(et, `${pt ?? ""} ${x(y) ?? ""}`), + (vt.disabled = x(T)), + de(ee, `${it ?? ""} `), + de(ze, ct); + }, + [() => QS(), () => rP(), () => aP(), () => lP()] + ), + $($e, Je); + }; + Oe( + De, + ($e) => { + x(y) ? $e(Fe, !1) : $e(Ee); + }, + !0 + ); + } + $(Ie, Ae); + }; + Oe(H, (Ie) => { + x(p) ? Ie(fe) : Ie(ge, !1); + }); + } + k(ne), $(m, ne), Dr(); +} +$n(["click"]); +var mD = Te( + '' +); +function _D(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + var y = mD(), + M = A(y), + z = j(A(M), 2); + { + var T = (s) => { + fD(s, { onsuccess: () => p(!1) }); + }; + Oe(z, (s) => { + p() && s(T); + }); + } + k(M), + k(y), + Ni(y, () => (s) => { + Wr(() => { + p() ? s.show() : s.close(); + }); + }), + di("close", y, () => p(!1)), + $(m, y), + Dr(); +} +var gD = Pr( + '' +); +function vD(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = gD(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var yD = Te('

                  '), + xD = (m, a) => { + a(!1); + }, + bD = async (m, a, p, y, M, z) => { + if (x(a) !== x(p)) { + se(y, ax(), !0); + return; + } + try { + se(M, !0), + await Qr.deleteMe(x(p)), + Fr.warning(zS()), + await Mt.logout(), + z(!1); + } catch (T) { + Fr.error(T.message); + } finally { + se(M, !1); + } + }, + wD = Te( + '' + ), + TD = Te( + ' ' + ); +function CD(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15), + y = st(""), + M = st(null), + z = st(!1), + T = ft(() => { + var he; + return ((he = Mt.data) == null ? void 0 : he.name) ?? ""; + }); + Wr(() => { + p() || (se(y, ""), se(M, null)); + }); + var s = TD(), + B = A(s), + O = j(A(B), 2), + X = A(O); + vD(X, { class: "text-error size-5" }); + var K = j(X, 2), + ne = A(K, !0); + k(K), k(O); + var H = j(O, 2), + fe = A(H), + ge = A(fe, !0); + k(fe); + var Ie = j(fe); + k(H); + var Ae = j(H, 2), + De = A(Ae); + k(Ae); + var Ee = j(Ae, 2), + Fe = A(Ee, !0); + k(Ee); + var $e = j(Ee, 2); + Ka($e); + var Je = j($e, 2); + { + var qe = (he) => { + var oe = yD(), + ze = A(oe, !0); + k(oe), We(() => de(ze, x(M))), $(he, oe); + }; + Oe(Je, (he) => { + x(M) && he(qe); + }); + } + var Ze = j(Je, 2), + Qe = A(Ze); + Qe.__click = [xD, p]; + var Le = A(Qe, !0); + k(Qe); + var et = j(Qe, 2); + et.__click = [bD, y, T, M, z, p]; + var nt = A(et), + Ue = j(nt); + { + var ke = (he) => { + var oe = wD(); + $(he, oe); + }; + Oe(Ue, (he) => { + x(z) && he(ke); + }); + } + k(et), k(Ze), k(B); + var vt = j(B, 2), + ee = A(vt), + re = A(ee, !0); + k(ee), + k(vt), + k(s), + Ni(s, () => (he) => { + Wr(() => { + p() ? he.show() : he.close(); + }); + }), + We( + (he, oe, ze, je, pt, it, ct, It, Dt) => { + de(ne, he), + de(ge, oe), + de(Ie, ` ${ze ?? ""}`), + de(De, `${je ?? ""} ${pt ?? ""}`), + de(Fe, x(T)), + Tr($e, "placeholder", it), + de(Le, ct), + (et.disabled = x(z)), + de(nt, `${It ?? ""} `), + de(re, Dt); + }, + [ + () => Yf(), + () => pw(), + () => _w(), + () => VI(), + () => UI(), + () => HI(), + () => Ah(), + () => Yf(), + () => Ss(), + ] + ), + di("close", s, () => p(!1)), + dp( + $e, + () => x(y), + (he) => se(y, he) + ), + $(m, s), + Dr(); +} +$n(["click"]); +var SD = async (m, a, p) => { + try { + se(a, !0), + await Qr.deleteSessions(), + Fr.success(zI()), + await Mt.logout(), + p(!1); + } catch { + Fr.error(RI()); + } finally { + se(a, !1); + } + }, + PD = Te( + '' + ), + ID = Te( + ' ' + ); +function MD(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15), + y = st(!1); + var M = ID(), + z = A(M), + T = j(A(z), 2), + s = A(T, !0); + k(T); + var B = j(T, 2), + O = A(B, !0); + k(B); + var X = j(B, 2), + K = A(X, !0); + k(X); + var ne = j(X, 2), + H = A(ne), + fe = A(H, !0); + k(H); + var ge = j(H, 2); + ge.__click = [SD, y, p]; + var Ie = A(ge), + Ae = j(Ie); + { + var De = (Je) => { + var qe = PD(); + $(Je, qe); + }; + Oe(Ae, (Je) => { + x(y) && Je(De); + }); + } + k(ge), k(ne), k(z); + var Ee = j(z, 2), + Fe = A(Ee), + $e = A(Fe, !0); + k(Fe), + k(Ee), + k(M), + Ni(M, () => (Je) => { + Wr(() => { + p() ? Je.show() : Je.close(); + }); + }), + We( + (Je, qe, Ze, Qe, Le, et) => { + de(s, Je), + de(O, qe), + de(K, Ze), + de(fe, Qe), + (ge.disabled = x(y)), + de(Ie, `${Le ?? ""} `), + de($e, et); + }, + [() => PI(), () => kI(), () => YI(), () => Ah(), () => qv(), () => Ss()] + ), + di("close", M, () => p(!1)), + $(m, M), + Dr(); +} +$n(["click"]); +var kD = (m, a) => { + a(); + }, + AD = Te( + '' + ), + ED = Te( + '' + ), + zD = (m, a, p) => { + a(x(p).id); + }, + LD = Te( + '' + ), + DD = Te( + '' + ), + RD = Te( + '
                  ' + ), + BD = Te(' '), + FD = async (m, a, p) => { + try { + se(a, !0), + await Qr.unlinkDiscord(), + Mt.refresh(), + Fr.success(TS()), + se(p, !1); + } catch (y) { + Fr.error(y.message, { duration: 5e3 }); + } finally { + se(a, !1); + } + }, + OD = Te(''), + ND = (m, a) => { + se(a, !0); + }, + jD = (m, a) => { + se(a, !0); + }, + VD = (m, a) => { + a(!1); + }, + qD = Te( + ' ', + 1 + ); +function ZD(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15), + y = st(bi(a.userData.name)), + M = st(bi(a.userData.discord)), + z = st(bi(a.userData.showLastPixel)), + T = st(!1), + s = st(void 0), + B = st(!1), + O = st(!1); + const X = ox("2025-09_discord_linking"); + let K = st(!!a.userData.discordId), + ne = st(void 0), + H = st(void 0); + Wr(() => { + se(y, a.userData.name, !0), se(z, a.userData.showLastPixel, !0); + }), + Wr(() => { + p() && + !x(s) && + Qr.getMyProfilePictures() + .then((Nt) => { + se(s, Nt, !0); + }) + .catch((Nt) => { + Fr.error(Nt.message); + }); + }); + let fe = st(!1); + async function ge(Nt) { + try { + se(fe, !0), await Qr.changeProfilePicture(Nt), await Mt.refresh(); + } finally { + se(fe, !1); + } + } + var Ie = qD(), + Ae = Ct(Ie), + De = A(Ae), + Ee = j(A(De), 2), + Fe = A(Ee, !0); + k(Ee); + var $e = j(Ee, 2), + Je = A($e), + qe = A(Je), + Ze = A(qe), + Qe = A(Ze); + co(Qe, { + class: "size-30", + get userId() { + return a.userData.id; + }, + get pictureUrl() { + return a.userData.picture; + }, + }); + var Le = j(Qe, 2), + et = A(Le); + Rv(et, { class: "size-5" }), k(Le), k(Ze); + var nt = j(Ze, 2); + { + var Ue = (Nt) => { + var or = RD(), + cr = A(or), + Vr = A(cr, !0); + k(cr); + var mr = j(cr, 2), + hr = A(mr); + { + var _r = (qr) => { + var ue = ED(); + ue.__click = [kD, ge]; + var V = A(ue); + co(V, { + class: "size-10 border", + get userId() { + return a.userData.id; + }, + }); + var U = j(V, 2); + { + var Y = (ie) => { + var pe = AD(); + $(ie, pe); + }; + Oe(U, (ie) => { + x(fe) && ie(Y); + }); + } + k(ue), We(() => (ue.disabled = x(fe))), $(qr, ue); + }; + Oe(hr, (qr) => { + a.userData.picture && qr(_r); + }); + } + var Ir = j(hr, 2); + hi( + Ir, + 17, + () => x(s), + (qr) => qr.id, + (qr, ue) => { + var V = er(), + U = Ct(V); + { + var Y = (ie) => { + var pe = DD(); + pe.__click = [zD, ge, ue]; + var Se = A(pe); + co(Se, { + class: "size-10 border", + get userId() { + return a.userData.id; + }, + get pictureUrl() { + return x(ue).url; + }, + }); + var Me = j(Se, 2); + { + var we = (Ve) => { + var ut = LD(); + $(Ve, ut); + }; + Oe(Me, (Ve) => { + x(fe) && Ve(we); + }); + } + k(pe), We(() => (pe.disabled = x(fe))), $(ie, pe); + }; + Oe(U, (ie) => { + a.userData.picture !== x(ue).url && ie(Y); + }); + } + $(qr, V); + } + ), + k(mr), + k(or), + We((qr) => de(Vr, qr), [() => aw()]), + $(Nt, or); + }; + Oe(nt, (Nt) => { + var or; + (or = x(s)) != null && or.length && Nt(Ue); + }); + } + k(qe); + var ke = j(qe, 2), + vt = A(ke); + { + let Nt = ft(() => Kf()), + or = ft(() => Kf()); + em(vt, { + get label() { + return x(Nt); + }, + get placeholder() { + return x(or); + }, + min: 1, + max: 16, + get value() { + return x(y); + }, + set value(cr) { + se(y, cr, !0); + }, + get validate() { + return x(ne); + }, + set validate(cr) { + se(ne, cr, !0); + }, + }); + } + var ee = j(vt, 2); + { + var re = (Nt) => { + var or = er(), + cr = Ct(or); + { + var Vr = (hr) => { + var _r = BD(), + Ir = A(_r); + rm(Ir, { class: "size-4.5" }); + var qr = j(Ir); + k(_r), + We( + (ue, V) => { + Tr(_r, "href", ue), de(qr, ` ${V ?? ""}`); + }, + [() => sx("/discord/authorize"), () => PS()] + ), + $(hr, _r); + }, + mr = (hr) => { + var _r = OD(); + _r.__click = [FD, T, K]; + var Ir = A(_r); + rm(Ir, { class: "size-4.5" }); + var qr = j(Ir); + k(_r), + We( + (ue) => { + (_r.disabled = x(T)), de(qr, ` ${ue ?? ""}`); + }, + [ + () => { + var ue; + return kS({ + username: + ((ue = a.userData) == null ? void 0 : ue.discord) ?? + "", + }); + }, + ] + ), + $(hr, _r); + }; + Oe(cr, (hr) => { + x(K) ? hr(mr, !1) : hr(Vr); + }); + } + $(Nt, or); + }, + he = (Nt) => { + { + let or = ft(() => o3()); + em(Nt, { + label: "Discord", + get placeholder() { + return x(or); + }, + max: 32, + get value() { + return x(M); + }, + set value(cr) { + se(M, cr, !0); + }, + get validate() { + return x(H); + }, + set validate(cr) { + se(H, cr, !0); + }, + }); + } + }; + Oe(ee, (Nt) => { + X ? Nt(re) : Nt(he, !1); + }); + } + var oe = j(ee, 2), + ze = A(oe); + Ka(ze); + var je = j(ze); + k(oe), k(ke), k(Je); + var pt = j(Je, 2), + it = A(pt), + ct = A(it), + It = A(ct, !0); + k(ct); + var Dt = j(ct, 2), + at = A(Dt), + dt = A(at); + dt.__click = [ND, O]; + var yt = A(dt, !0); + k(dt), k(at); + var xt = j(at, 2), + St = A(xt); + St.__click = [jD, B]; + var wt = A(St, !0); + k(St), k(xt), k(Dt), k(it); + var _t = j(it, 2), + Lt = A(_t); + Lt.__click = [VD, p]; + var Rt = A(Lt, !0); + k(Lt); + var $t = j(Lt, 2), + tr = A($t, !0); + k($t), + k(_t), + k(pt), + k($e), + k(De), + k(Ae), + Ni(Ae, () => (Nt) => { + Wr(() => { + p() ? Nt.show() : Nt.close(); + }); + }); + var Qt = j(Ae, 2); + CD(Qt, { + get open() { + return x(B); + }, + set open(Nt) { + se(B, Nt, !0); + }, + }); + var Ot = j(Qt, 2); + MD(Ot, { + get open() { + return x(O); + }, + set open(Nt) { + se(O, Nt, !0); + }, + }), + We( + (Nt, or, cr, Vr, mr, hr, _r, Ir) => { + de(Fe, Nt), + Tr(Le, "data-tip", or), + de(je, ` ${cr ?? ""}`), + de(It, Vr), + de(yt, mr), + de(wt, hr), + (Lt.disabled = x(T)), + de(Rt, _r), + ($t.disabled = x(T)), + de(tr, Ir); + }, + [ + () => hP(), + () => Fx(), + () => lw(), + () => OI(), + () => TI(), + () => Yf(), + () => Ss(), + () => Ax(), + ] + ), + di("close", Ae, () => p(!1)), + di("submit", $e, async () => { + var Nt, or; + try { + if (!((Nt = x(ne)) != null && Nt()) || !((or = x(H)) != null && or())) + return; + se(T, !0), + await Qr.updateMe({ name: x(y), showLastPixel: x(z), discord: x(M) }), + Mt.refresh(), + Fr.success(gS()), + p(!1); + } catch (cr) { + Fr.error(cr.message, { duration: 5e3 }); + } finally { + se(T, !1); + } + }), + Ix( + ze, + () => x(z), + (Nt) => se(z, Nt) + ), + $(m, Ie), + Dr(); +} +$n(["click"]); +var UD = Pr( + '' +); +function $D(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = UD(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var GD = Pr( + '' +); +function HD(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = GD(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var WD = Pr( + '' +); +function XD(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = WD(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var YD = Pr( + '' +); +function W0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = YD(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var KD = Pr( + '' +); +function JD(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = KD(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var QD = Pr( + '' +); +function eR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = QD(); + ar( + y, + () => ({ + xmlns: "http://www.w3.org/2000/svg", + "xmlns:xlink": "http://www.w3.org/1999/xlink", + viewBox: "0 0 216 216", + ...p, + }), + void 0, + void 0, + "svelte-1977t4s" + ), + $(m, y); +} +var tR = Pr( + '' +); +function X0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = tR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var rR = Pr( + '' +); +function Cv(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = rR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var nR = Pr( + '' +); +function iR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = nR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + height: "24px", + viewBox: "0 -960 960 960", + width: "24px", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var aR = Pr( + '' +); +function oR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = aR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var sR = Pr( + '' +); +function lR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = sR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var cR = (m, a) => { + se(a, !0); + }, + uR = Te(' '), + hR = Te('
                  '), + dR = Te('

                  '), + pR = Te('

                  '), + fR = Te('
                  '), + mR = (m, a, p) => { + localStorage.setItem(xx, x(a).key), se(p, x(a).key, !0), location.reload(); + }, + _R = Te( + '' + ), + gR = Te("
                • "), + vR = Te( + '
                  ' + ), + yR = async (m, a) => { + var p; + try { + const y = await ((p = x(a)) == null ? void 0 : p.prompt()); + (y == null ? void 0 : y.outcome) === "accepted" && se(a, void 0); + } catch (y) { + Fr.error(U2({ error: y.message })); + } + }, + xR = Te(''), + bR = Te(' '), + wR = Te(' '), + TR = Te( + '
                  ', + 1 + ), + CR = async (m, a, p, y) => { + var M; + try { + se(a, !0), + await p.user.logout(), + y(), + Fr.warning(RS(), { icon: W0 }), + (M = p.onlogout) == null || M.call(p); + } catch { + Fr.error(OS()); + } finally { + se(a, !1); + } + }, + SR = Te( + ' ', + 1 + ); +function PR(m, a) { + Lr(a, !0); + let p = st(!1), + y = st(!1); + function M() { + var ne; + (ne = document.activeElement) == null || ne.blur(); + } + const z = [ + { label: "🇺🇸 English", key: "en" }, + { label: "🇧🇷 Português", key: "pt" }, + ]; + let T = st(""), + s = st(void 0); + const B = ft(() => { + var ne; + return !!((ne = a.user.data) != null && ne.banned) || !!a.user.timeoutUntil; + }); + var O = er(), + X = Ct(O); + { + var K = (ne) => { + var H = SR(), + fe = Ct(H), + ge = A(fe); + let Ie; + var Ae = A(ge); + Ov(Ae, { + get userId() { + return a.user.data.id; + }, + get level() { + return a.user.data.level; + }, + get pictureUrl() { + return a.user.data.picture; + }, + }), + k(ge); + var De = j(ge, 2), + Ee = A(De); + Ee.__click = M; + var Fe = A(Ee); + _l(Fe, { class: "size-5" }), k(Ee); + var $e = j(Ee, 2), + Je = A($e), + qe = A(Je); + co(qe, { + get userId() { + return a.user.data.id; + }, + get pictureUrl() { + return a.user.data.picture; + }, + get isSuspended() { + return x(B); + }, + }); + var Ze = j(qe, 2); + Ze.__click = [cR, p]; + var Qe = A(Ze); + tm(Qe, { class: "size-4" }), k(Ze), k(Je); + var Le = j(Je, 2), + et = A(Le), + nt = A(et), + Ue = A(nt, !0); + k(nt); + var ke = j(nt, 2), + vt = A(ke); + k(ke); + var ee = j(ke, 2); + { + var re = (Vt) => { + const Et = ft(() => So(a.user.data.equippedFlag)); + var dr = uR(), + ht = A(dr, !0); + k(dr), + We(() => { + Tr(dr, "data-tip", x(Et).name), de(ht, x(Et).flag); + }), + $(Vt, dr); + }; + Oe(ee, (Vt) => { + a.user.data.equippedFlag && Vt(re); + }); + } + var he = j(ee, 2); + { + var oe = (Vt) => { + var Et = hR(), + dr = A(Et); + Eh(dr, { + get username() { + return a.user.data.discord; + }, + get id() { + return a.user.data.discordId; + }, + }), + k(Et), + $(Vt, Et); + }; + Oe(he, (Vt) => { + a.user.data.discord && Vt(oe); + }); + } + k(et); + var ze = j(et, 2), + je = A(ze); + zh(je, { class: "inline size-4" }); + var pt = j(je, 2), + it = A(pt), + ct = j(it), + It = A(ct, !0); + k(ct), k(pt), k(ze); + var Dt = j(ze, 2), + at = A(Dt); + $D(at, { class: "inline size-4" }); + var dt = j(at, 2), + yt = A(dt), + xt = A(yt); + k(yt); + var St = j(yt), + wt = j(St), + _t = A(wt); + Uu(_t, { class: "mb-0.5 inline size-4 opacity-50" }), + k(wt), + k(dt), + k(Dt), + k(Le), + k($e); + var Lt = j($e, 2), + Rt = A(Lt); + { + var $t = (Vt) => { + var Et = fR(), + dr = A(Et); + X0(dr, { class: "size-6 text-red-500" }); + var ht = j(dr, 2); + { + var Xr = (Zr) => { + var mt = dR(), + He = A(mt), + At = j(He); + { + var Ft = (Jt) => { + var Cr = wi(); + We( + (Er) => de(Cr, `(${Er ?? ""})`), + [() => aI({ reason: hx() })] + ), + $(Jt, Cr); + }; + Oe(At, (Jt) => { + a.user.data.suspensionReason === "bot" && Jt(Ft); + }); + } + k(mt), + We((Jt) => de(He, `${Jt ?? ""} `), [() => cx()]), + $(Zr, mt); + }, + Yr = (Zr) => { + var mt = er(), + He = Ct(mt); + { + var At = (Ft) => { + var Jt = pR(), + Cr = A(Jt); + Am(Cr, () => + ux({ + until: `${a.user.timeoutUntil.toLocaleString()}`, + }) + ), + k(Jt), + $(Ft, Jt); + }; + Oe( + He, + (Ft) => { + a.user.timeoutUntil && Ft(At); + }, + !0 + ); + } + $(Zr, mt); + }; + Oe(ht, (Zr) => { + var mt; + (mt = a.user.data) != null && mt.banned ? Zr(Xr) : Zr(Yr, !1); + }); + } + k(Et), $(Vt, Et); + }; + Oe(Rt, (Vt) => { + x(B) && Vt($t); + }); + } + var tr = j(Rt, 2), + Qt = A(tr), + Ot = A(Qt, !0); + k(Qt); + var Nt = j(Qt, 2), + or = A(Nt), + cr = A(or), + Vr = A(cr); + iR(Vr, { class: "size-4" }), k(cr); + var mr = j(cr, 2); + hi( + mr, + 21, + () => z, + hp, + (Vt, Et) => { + const dr = ft(() => x(T) === x(Et).key); + var ht = gR(), + Xr = A(ht); + let Yr; + Xr.__click = [mR, Et, T]; + var Zr = A(Xr); + { + var mt = (At) => { + var Ft = _R(); + $(At, Ft); + }; + Oe(Zr, (At) => { + x(dr) && At(mt); + }); + } + var He = j(Zr); + k(Xr), + k(ht), + We( + (At) => { + (Yr = zr( + Xr, + 1, + "font-flag relative font-medium", + null, + Yr, + At + )), + de(He, ` ${x(Et).label ?? ""}`); + }, + [() => ({ "bg-base-200": x(dr) })] + ), + $(Vt, ht); + } + ), + k(mr), + k(or); + var hr = j(or, 2), + _r = A(hr); + _r.__click = () => { + ai.muted = !ai.muted; + }; + var Ir = A(_r); + { + var qr = (Vt) => { + oR(Vt, { class: "size-4" }); + }, + ue = (Vt) => { + lR(Vt, { class: "size-4" }); + }; + Oe(Ir, (Vt) => { + ai.muted ? Vt(qr) : Vt(ue, !1); + }); + } + k(_r), k(hr); + var V = j(hr, 2); + { + var U = (Vt) => { + var Et = vR(), + dr = A(Et); + dr.__click = () => { + ai.theme = ai.theme === "dark" ? "custom-winter" : "dark"; + }; + var ht = A(dr); + { + var Xr = (Zr) => { + XD(Zr, { class: "size-4" }); + }, + Yr = (Zr) => { + HD(Zr, { class: "size-4" }); + }; + Oe(ht, (Zr) => { + ai.theme === "dark" ? Zr(Xr) : Zr(Yr, !1); + }); + } + k(dr), + k(Et), + We( + (Zr) => Tr(Et, "data-tip", Zr), + [() => (ai.theme === "dark" ? xI() : gI())] + ), + $(Vt, Et); + }; + Oe(V, (Vt) => { + var Et, dr; + xc( + (dr = (Et = a.user) == null ? void 0 : Et.data) == null + ? void 0 + : dr.role, + ["admin", "moderator", "global_moderator"] + ) && Vt(U); + }); + } + k(Nt), k(tr); + var Y = j(tr, 2); + { + var ie = (Vt) => { + var Et = xR(); + Et.__click = [yR, s]; + var dr = A(Et); + zv(dr, { class: "size-5" }); + var ht = j(dr); + k(Et), We((Xr) => de(ht, ` ${Xr ?? ""}`), [() => H2()]), $(Vt, Et); + }; + Oe(Y, (Vt) => { + x(s) && Vt(ie); + }); + } + var pe = j(Y, 2); + { + var Se = (Vt) => { + var Et = bR(), + dr = A(Et); + Cv(dr, { class: "size-5" }); + var ht = j(dr); + k(Et), + We( + (Xr) => { + Tr(Et, "href", `${yi.url.origin ?? ""}/admin`), + de(ht, ` ${Xr ?? ""}`); + }, + [() => rI()] + ), + $(Vt, Et); + }; + Oe(pe, (Vt) => { + var Et; + ((Et = a.user.data) == null ? void 0 : Et.role) === "admin" && Vt(Se); + }); + } + var Me = j(pe, 2); + { + var we = (Vt) => { + var Et = wR(), + dr = A(Et); + Cv(dr, { class: "size-5" }); + var ht = j(dr); + k(Et), + We( + (Xr) => { + Tr(Et, "href", `${yi.url.origin ?? ""}/moderation`), + de(ht, ` ${Xr ?? ""}`); + }, + [() => OP()] + ), + $(Vt, Et); + }; + Oe(Me, (Vt) => { + var Et; + (Et = a.user.data) != null && + Et.role && + a.user.data.role !== "user" && + Vt(we); + }); + } + var Ve = j(Me, 2), + ut = A(Ve); + Vv(ut, { class: "size-5" }); + var Ke = j(ut); + k(Ve); + var kt = j(Ve, 2), + ye = A(kt); + Qf(ye, { class: "size-5" }), yn(), k(kt); + var Bt = j(kt, 2), + rr = A(Bt); + eR(rr, { class: "size-5" }), yn(), k(Bt); + var Kt = j(Bt, 2); + { + var gr = (Vt) => { + var Et = TR(), + dr = Ct(Et), + ht = A(dr), + Xr = A(ht); + JD(Xr, { class: "size-5" }); + var Yr = j(Xr); + k(ht), k(dr); + var Zr = j(dr, 2), + mt = A(Zr); + Uu(mt, { class: "size-5" }); + var He = j(mt); + k(Zr), + We( + (At, Ft, Jt) => { + Tr(dr, "action", `${lx}/payment/create-portal-session`), + de(Yr, ` ${At ?? ""}`), + Tr(Zr, "href", Ft), + de(He, ` ${Jt ?? ""}`); + }, + [() => wx(), () => Bv(yi.url.origin), () => Jv()] + ), + $(Vt, Et); + }; + Oe(Kt, (Vt) => { + var Et; + (Et = a.user.data) != null && Et.isCustomer && Vt(gr); + }); + } + var Ur = j(Kt, 2); + Ur.__click = [CR, y, a, M]; + var nn = A(Ur); + W0(nn, { class: "size-5" }); + var mn = j(nn); + k(Ur), k(Lt), k(De), k(fe); + var _n = j(fe, 2); + ZD(_n, { + get userData() { + return a.user.data; + }, + get open() { + return x(p); + }, + set open(Vt) { + se(p, Vt, !0); + }, + }), + We( + (Vt, Et, dr, ht, Xr, Yr, Zr, mt, He, At, Ft, Jt) => { + (Ie = zr(ge, 1, "btn size-12 p-0 shadow-md", null, Ie, Vt)), + Tr(ge, "title", Et), + Tr(nt, "title", a.user.data.name), + de(Ue, a.user.data.name), + zr(ke, 1, dr), + de(vt, `#${a.user.data.id ?? ""}`), + de(it, `${ht ?? ""}: `), + de(It, Xr), + de(xt, `Level ${Yr ?? ""}`), + de(St, ` (${Zr ?? ""}%) `), + Tr(wt, "data-tip", mt), + de(Ot, He), + Tr(hr, "data-tip", At), + de(Ke, ` ${Ft ?? ""}`), + (Ur.disabled = x(y)), + de(mn, ` ${Jt ?? ""}`); + }, + [ + () => ({ "bg-red-500": x(B) }), + () => O2(), + () => Yo(Oi(a.user.data.id)), + () => zm(), + () => a.user.data.pixelsPainted.toLocaleString("en-US"), + () => Math.floor(a.user.data.level), + () => Math.floor((a.user.data.level % 1) * 100), + () => t3(), + () => V2(), + () => (ai.muted ? RC() : zC()), + () => Y2(), + () => Q2(), + ] + ), + di("focus", ge, () => { + se(s, window.pwaInstallPrompt, !0); + }), + $(ne, H); + }; + Oe(X, (ne) => { + a.user.data && a.user.charges !== void 0 && ne(K); + }); + } + $(m, O), Dr(); +} +$n(["click"]); +var IR = Pr( + '' +); +function MR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = IR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + height: "24px", + viewBox: "0 -960 960 960", + width: "24px", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var kR = Pr( + '' +); +function AR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = kR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var ER = async (m, a, p, y, M, z) => { + if (x(a)) { + p.map.easeTo(x(a)), se(a, void 0); + return; + } + se(y, !0); + try { + Co(p.map.getCenter(), p.map.getZoom()); + const T = new fl(x(M)), + { tile: s, pixel: B } = await Qr.getRandomTile(p.season), + O = s.x * x(M) + B.x, + X = s.y * x(M) + B.y, + [K, ne] = T.pixelsToLatLon(O, X, x(z)), + H = { lat: K, lng: ne }, + fe = x(z) + 2; + se(a, { zoom: fe, center: H }, !0), + p.map.flyTo(x(a)), + hl.isEmpty() && + hl.push({ pos: p.map.getCenter(), zoom: p.map.getZoom() }), + setTimeout(() => { + se(a, void 0); + }, 2500), + hl.push({ pos: H, zoom: fe }); + } catch (T) { + Fr.error(T.message); + } finally { + se(y, !1); + } + }, + zR = Te(''); +function LR(m, a) { + Lr(a, !0); + const p = ft(() => Wi.seasons[a.season].tileSize), + y = ft(() => Wi.seasons[a.season].zoom); + let M = st(!1), + z = st(void 0); + var T = zR(); + T.__click = [ER, z, a, M, p, y]; + var s = A(T); + { + var B = (X) => { + AR(X, { class: "size-5" }); + }, + O = (X) => { + MR(X, { class: "size-5" }); + }; + Oe(s, (X) => { + x(z) ? X(O, !1) : X(B); + }); + } + k(T), + We( + (X) => { + Tr(T, "title", X), (T.disabled = x(M)); + }, + [() => d2()] + ), + $(m, T), + Dr(); +} +$n(["click"]); +var DR = Te( + '' + ), + RR = Te( + '
                  ' + ), + BR = Te(' '), + FR = Te(" "), + OR = Te( + '
                  ' + ), + NR = Te( + '

                  ' + ), + jR = Te( + ' ' + ), + VR = Te( + '

                  ' + ), + qR = Te( + '
                  ' + ), + ZR = Te( + '
                  ', + 1 + ); +function UR(m, a) { + Lr(a, !0); + const p = []; + let y = st("today"), + M = { + players: { label: Yv(), icon: yp }, + alliances: { label: Kv(), icon: xp }, + }, + z = st("players"), + T = bi({ players: {}, alliances: {} }); + const s = ft(() => T[x(z)][x(y)]); + Wr(() => { + if (x(s)) return; + const ge = x(y), + Ie = x(z); + Ie === "players" + ? Qr.leaderboardRegionPlayers(a.regionId, ge) + .then((Ae) => { + T[Ie][ge] = Ae; + }) + .catch((Ae) => { + Fr.error(Ae.message); + }) + : Ie === "alliances" && + Qr.leaderboardRegionAlliances(a.regionId, ge) + .then((Ae) => { + T[Ie][ge] = Ae; + }) + .catch((Ae) => { + Fr.error(Ae.message); + }); + }); + var B = ZR(), + O = Ct(B); + hi( + O, + 21, + () => Object.entries(M), + ([ge, { label: Ie, icon: Ae }]) => ge, + (ge, Ie) => { + var Ae = ft(() => Mv(x(Ie), 2)); + let De = () => x(Ae)[0], + Ee = () => x(Ae)[1].label, + Fe = () => x(Ae)[1].icon; + const $e = ft(Fe); + var Je = DR(), + qe = A(Je); + Ka(qe); + var Ze, + Qe = j(qe, 2); + xi( + Qe, + () => x($e), + (et, nt) => { + nt(et, { + get this() { + return Fe(); + }, + class: "mr-1 size-5 max-sm:hidden", + }); + } + ); + var Le = j(Qe); + k(Je), + We(() => { + Tr(qe, "aria-label", Ee()), + Ze !== (Ze = De()) && (qe.value = (qe.__value = De()) ?? ""), + de(Le, ` ${Ee() ?? ""}`); + }), + Lm( + p, + [], + qe, + () => (De(), x(z)), + (et) => se(z, et) + ), + $(ge, Je); + } + ), + k(O); + var X = j(O, 2), + K = A(X); + Um(K, { + get value() { + return x(y); + }, + set value(ge) { + se(y, ge, !0); + }, + }), + k(X); + var ne = j(X, 2); + { + var H = (ge) => { + var Ie = RR(), + Ae = A(Ie), + De = j(Ae); + { + var Ee = ($e) => { + var Je = wi(); + We((qe) => de(Je, qe), [() => vp().toLowerCase()]), $($e, Je); + }, + Fe = ($e) => { + var Je = er(), + qe = Ct(Je); + { + var Ze = (Le) => { + var et = wi(); + We((nt) => de(et, nt), [() => Nm()]), $(Le, et); + }, + Qe = (Le) => { + var et = er(), + nt = Ct(et); + { + var Ue = (ke) => { + var vt = wi(); + We((ee) => de(vt, ee), [() => jm()]), $(ke, vt); + }; + Oe( + nt, + (ke) => { + x(y) === "month" && ke(Ue); + }, + !0 + ); + } + $(Le, et); + }; + Oe( + qe, + (Le) => { + x(y) === "week" ? Le(Ze) : Le(Qe, !1); + }, + !0 + ); + } + $($e, Je); + }; + Oe(De, ($e) => { + x(y) === "today" ? $e(Ee) : $e(Fe, !1); + }); + } + k(Ie), We(($e) => de(Ae, `${$e ?? ""} `), [() => Om()]), $(ge, Ie); + }, + fe = (ge) => { + var Ie = er(), + Ae = Ct(Ie); + { + var De = (Fe) => { + var $e = er(), + Je = Ct($e); + { + var qe = (Qe) => { + const Le = ft(() => x(s)); + var et = NR(), + nt = A(et), + Ue = A(nt), + ke = j(A(Ue)), + vt = A(ke, !0); + k(ke); + var ee = j(ke), + re = A(ee), + he = j(re, 2, !0); + k(ee), k(Ue), k(nt); + var oe = j(nt); + hi( + oe, + 31, + () => x(Le), + (ze) => ze.id, + (ze, je, pt) => { + const it = ft(() => { + var mr; + return ( + ((mr = Mt.data) == null ? void 0 : mr.id) === + x(je).id + ); + }); + var ct = OR(); + let It; + var Dt = A(ct), + at = A(Dt, !0); + k(Dt); + var dt = j(Dt), + yt = A(dt), + xt = A(yt); + co(xt, { + class: "size-10 border", + get userId() { + return x(je).id; + }, + get pictureUrl() { + return x(je).picture; + }, + }); + var St = j(xt, 2), + wt = A(St), + _t = A(wt), + Lt = j(_t), + Rt = A(Lt); + k(Lt), k(wt); + var $t = j(wt, 2); + { + var tr = (mr) => { + const hr = ft(() => So(x(je).equippedFlag)); + var _r = BR(), + Ir = A(_r, !0); + k(_r), + We(() => { + Tr(_r, "data-tip", x(hr).name), + de(Ir, x(hr).flag); + }), + $(mr, _r); + }; + Oe($t, (mr) => { + "equippedFlag" in x(je) && + x(je).equippedFlag && + mr(tr); + }); + } + var Qt = j($t, 2); + { + var Ot = (mr) => { + Eh(mr, { + get username() { + return x(je).discord; + }, + get id() { + return x(je).discordId; + }, + }); + }; + Oe(Qt, (mr) => { + x(je).discord && mr(Ot); + }); + } + var Nt = j(Qt, 2); + { + var or = (mr) => { + var hr = FR(), + _r = A(hr, !0); + k(hr), + We( + (Ir, qr) => { + zr( + hr, + 1, + `badge badge-sm ml-0.5 border-0 ${ + Ir ?? "" + } ${qr ?? ""}` + ), + de(_r, x(je).allianceName); + }, + [ + () => pp(x(je).allianceId), + () => Oi(x(je).allianceId), + ] + ), + $(mr, hr); + }; + Oe(Nt, (mr) => { + "allianceName" in x(je) && + x(je).allianceName && + mr(or); + }); + } + k(St), k(yt), k(dt); + var cr = j(dt), + Vr = A(cr, !0); + k(cr), + k(ct), + We( + (mr, hr, _r) => { + (It = zr(ct, 1, "", null, It, mr)), + de(at, x(pt) + 1), + zr( + wt, + 1, + `font-semibold max-sm:ml-2 ${ + hr ?? "" + } flex gap-1` + ), + de(_t, `${x(je).name ?? ""} `), + de(Rt, `#${x(je).id ?? ""}`), + de(Vr, _r); + }, + [ + () => ({ "bg-base-200": x(it) }), + () => Oi(x(je).id), + () => x(je).pixelsPainted.toLocaleString("en-US"), + ] + ), + ll( + ct, + () => cl, + () => ({ duration: 200 }) + ), + $(ze, ct); + } + ), + k(oe), + k(et), + We( + (ze, je, pt) => { + de(vt, ze), de(re, `${je ?? ""} `), de(he, pt); + }, + [() => Dm(), () => vc(), () => yc().toLowerCase()] + ), + $(Qe, et); + }, + Ze = (Qe) => { + var Le = er(), + et = Ct(Le); + { + var nt = (Ue) => { + var ke = VR(), + vt = A(ke), + ee = A(vt), + re = j(A(ee)), + he = A(re, !0); + k(re); + var oe = j(re), + ze = A(oe), + je = j(ze, 2, !0); + k(oe), k(ee), k(vt); + var pt = j(vt); + hi( + pt, + 31, + () => x(s), + (it) => it.id, + (it, ct, It) => { + const Dt = ft(() => { + var $t; + return ( + (($t = Mt.data) == null + ? void 0 + : $t.allianceId) === x(ct).id + ); + }); + var at = jR(); + let dt; + var yt = A(at), + xt = A(yt, !0); + k(yt); + var St = j(yt), + wt = A(St), + _t = A(wt, !0); + k(wt), k(St); + var Lt = j(St), + Rt = A(Lt, !0); + k(Lt), + k(at), + We( + ($t, tr, Qt) => { + (dt = zr(at, 1, "", null, dt, $t)), + de(xt, x(It) + 1), + zr(wt, 1, `font-semibold ${tr ?? ""}`), + de(_t, x(ct).name), + de(Rt, Qt); + }, + [ + () => ({ "bg-base-200": x(Dt) }), + () => Oi(x(ct).id), + () => + x(ct).pixelsPainted.toLocaleString("en-US"), + ] + ), + ll( + at, + () => cl, + () => ({ duration: 200 }) + ), + $(it, at); + } + ), + k(pt), + k(ke), + We( + (it, ct, It) => { + de(he, it), de(ze, `${ct ?? ""} `), de(je, It); + }, + [() => _p(), () => vc(), () => yc().toLowerCase()] + ), + $(Ue, ke); + }; + Oe( + et, + (Ue) => { + x(z) === "alliances" && Ue(nt); + }, + !0 + ); + } + $(Qe, Le); + }; + Oe(Je, (Qe) => { + x(z) === "players" ? Qe(qe) : Qe(Ze, !1); + }); + } + $(Fe, $e); + }, + Ee = (Fe) => { + var $e = qR(); + $(Fe, $e); + }; + Oe( + Ae, + (Fe) => { + x(s) ? Fe(De) : Fe(Ee, !1); + }, + !0 + ); + } + $(ge, Ie); + }; + Oe(ne, (ge) => { + x(s) && x(s).length === 0 ? ge(H) : ge(fe, !1); + }); + } + $(m, B), Dr(); +} +var $R = Te('
                  '), + GR = Te( + ' ' + ); +function HR(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15); + const y = ft(() => So(a.region.countryId)); + Fn(() => { + const ge = (Ie) => { + Ie.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", ge), + () => document.removeEventListener("keydown", ge) + ); + }); + var M = GR(), + z = A(M), + T = j(A(z), 2), + s = A(T), + B = A(s, !0); + k(s); + var O = j(s, 2), + X = A(O, !0); + k(O); + var K = j(O, 2), + ne = A(K); + k(K), k(T); + var H = j(T, 2); + { + var fe = (ge) => { + var Ie = $R(), + Ae = A(Ie); + UR(Ae, { + get regionId() { + return a.region.id; + }, + }), + k(Ie), + Ai( + 2, + Ie, + () => ia, + () => ({ duration: 300 }) + ), + $(ge, Ie); + }; + Oe(H, (ge) => { + p() && ge(fe); + }); + } + k(z), + yn(2), + k(M), + Ni(M, () => (ge) => { + Wr(() => { + p() ? ge.show() : ge.close(); + }); + }), + We( + (ge) => { + zr(T, 1, `flex gap-2 text-xl font-bold sm:text-2xl ${ge ?? ""}`), + Tr(s, "data-tip", x(y).name), + de(B, x(y).flag), + de(X, a.region.name), + de(ne, `#${a.region.number ?? ""}`); + }, + [() => Oi(a.region.cityId)] + ), + di("close", M, () => p(!1)), + $(m, M), + Dr(); +} +var WR = Pr( + '' +); +function XR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = WR(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + height: "24px", + viewBox: "0 -960 960 960", + width: "24px", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var YR = Pr( + '' + ), + KR = Pr( + '' + ); +function JR(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy", "filled"]); + var y = er(), + M = Ct(y); + { + var z = (s) => { + var B = YR(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }, + T = (s) => { + var B = KR(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }; + Oe(M, (s) => { + a.filled ? s(z) : s(T, !1); + }); + } + $(m, y); +} +var QR = (m, a, p, y, M) => { + if (x(a) && x(p)) { + const z = x(a) - x(p).clientHeight, + T = x(a) / 2 - z / 2; + y.map.flyTo({ + center: { lat: x(M).center[0], lng: x(M).center[1] }, + zoom: 17.5, + offset: [0, -T], + }); + } + }, + e7 = (m, a, p) => a.onclickregion(x(p)), + t7 = Te( + '' + ), + r7 = Te('
                  '), + n7 = Te('
                  '), + i7 = Te(' '), + a7 = (m, a) => { + navigator.clipboard.writeText(x(a).allianceId.toString()), Fr.success(Fm()); + }, + o7 = Te(""), + s7 = Te(" ", 1), + l7 = Te(''), + c7 = Te(''), + u7 = (m, a) => { + a("report-user"); + }, + h7 = Te("
                • "), + d7 = (m, a) => { + a("timeout"); + }, + p7 = Te("
                • "), + f7 = (m, a) => { + a("ban"); + }, + m7 = Te("
                • "), + _7 = async (m, a, p, y, M, z) => { + se(a, !0); + try { + await Qr.banAllianceUser(x(p).id), await y({ ...x(M), season: z.season }); + } catch (T) { + Fr.error(T.message); + } finally { + se(a, !1); + } + }, + g7 = Te('
                • '), + v7 = Te( + '' + ), + y7 = Te( + '
                  ' + ), + x7 = (m, a) => a.onclickpaint(a.latLon), + b7 = async (m, a, p, y) => { + try { + se(a, !0), + x(p) + ? (await Qr.deleteFavoriteLocation(x(p).id), Fr.warning(lS())) + : (await Qr.favoriteLocation(x(y).center), Fr.success(hS())), + aa.smallPlop.play(), + Mt.refresh(); + } catch (M) { + Fr.error(M.message); + } finally { + se(a, !1); + } + }, + w7 = Te(""), + T7 = (m, a, p) => + a.onclickshare( + y4(yi.url, { + pos: { lat: x(p).center[0], lng: x(p).center[1] }, + zoom: a.zoom, + }) + ), + C7 = Te( + '

                  ' + ); +function S7(m, a) { + Lr(a, !0); + let p = st(void 0); + const y = ft(() => new fl(a.tileSize)); + let M = st(void 0), + z = st(void 0), + T = st(!1), + s = st(!1); + const B = ft(() => { + var at, dt, yt; + return ( + !!( + (dt = (at = x(p)) == null ? void 0 : at.paintedBy) != null && dt.id + ) && ((yt = Mt.data) == null ? void 0 : yt.id) === x(p).paintedBy.id + ); + }), + O = ft(() => { + const [at, dt] = a.latLon ?? [0, 0], + yt = x(y).latLonToPixelBoundsLatLon(at, dt, a.pixelArtZoom), + xt = qm(yt), + { tile: St, pixel: wt } = x(y).latLonToTileAndPixel( + at, + dt, + a.pixelArtZoom + ), + _t = x(y).latLonToRegionAndPixel(at, dt, a.pixelArtZoom); + return { + bounds: yt, + center: xt, + tile: St, + pixel: wt, + regionPixel: _t.pixel, + }; + }); + Wr(() => { + aa.plop.play(), a.crosshair.clearAndPlace(a.latLon); + }); + let X = 0; + const K = ({ pixel: at, tile: dt, season: yt }) => + `s${yt}:p(${at[0]},${at[1]}):t(${dt[0]},${dt[1]})`; + let ne; + dl( + () => [x(O), a.season], + () => { + const at = { ...x(O), season: a.season }, + dt = K(at); + if ((se(p, a.pixelInfoCache.get(dt), !0), x(p) !== void 0)) return; + a.pixelInfoCache.size === 0 && (X = 0), + X++, + X > 6 + ? (clearTimeout(ne), (ne = setTimeout(async () => H(at), 500))) + : H(at); + } + ); + async function H(at) { + var xt; + const dt = await Qr.getPixelInfo({ + ...at, + isModerator: xc((xt = Mt.data) == null ? void 0 : xt.role, [ + "admin", + "global_moderator", + "moderator", + ]), + }); + if (dt.paintedBy !== void 0) { + const St = K(at); + a.pixelInfoCache.set(St, dt); + } + const yt = K({ ...x(O), season: a.season }); + return se(p, a.pixelInfoCache.get(yt), !0), dt; + } + function fe() { + a.crosshair.clear(), aa.smallPlop.play(), a.onclose(); + } + Fn(() => { + const at = (dt) => { + dt.key === "Escape" && fe(); + }; + return ( + document.addEventListener("keydown", at), + () => document.removeEventListener("keydown", at) + ); + }); + const ge = ft(() => { + var xt, St, wt, _t, Lt; + const at = [], + dt = + (St = (xt = Mt) == null ? void 0 : xt.data) == null ? void 0 : St.role; + xc(dt, ["admin"]) && !x(B) && at.push("ban-user"), + xc(dt, ["admin", "global_moderator", "moderator"]) && + !x(B) && + at.push("timeout-user"), + !x(B) && Mt.data && at.push("report-user"); + const yt = (wt = x(p)) == null ? void 0 : wt.paintedBy; + return ( + (yt == null ? void 0 : yt.allianceId) === + ((_t = Mt.data) == null ? void 0 : _t.allianceId) && + ((Lt = Mt.data) == null ? void 0 : Lt.allianceRole) === "admin" && + Mt.data.id !== (yt == null ? void 0 : yt.id) && + !x(B) && + at.push("ban-alliance"), + at + ); + }); + function Ie(at) { + const dt = (async () => + await a0(a.map, { + maxHeight: 1080, + maxWidth: 1080, + quality: 0.8, + type: "image/jpeg", + }))(); + a.onclickmodaction(x(p), dt, a.latLon, at); + } + var Ae = C7(), + De = A(Ae), + Ee = A(De), + Fe = A(Ee); + Fe.__click = [QR, M, z, a, O]; + var $e = A(Fe); + Em($e, { class: "fill-primary size-5" }), k(Fe); + var Je = j(Fe, 2), + qe = A(Je), + Ze = A(qe); + k(qe); + var Qe = j(qe, 2); + { + var Le = (at) => { + const dt = ft(() => x(p).region), + yt = ft(() => So(x(dt).countryId)); + var xt = t7(); + xt.__click = [e7, a, dt]; + var St = A(xt), + wt = A(St, !0); + k(St); + var _t = j(St, 2), + Lt = A(_t, !0); + k(_t); + var Rt = j(_t, 2), + $t = A(Rt); + k(Rt), + k(xt), + We( + (tr) => { + zr( + xt, + 1, + `btn btn-xs flex gap-1 py-3 text-sm max-sm:max-w-32 ${tr ?? ""}` + ), + Tr(St, "data-tip", x(yt).name), + de(wt, x(yt).flag), + de(Lt, x(dt).name), + de($t, `#${x(dt).number ?? ""}`); + }, + [() => Oi(x(dt).cityId)] + ), + $(at, xt); + }, + et = (at) => { + var dt = r7(); + $(at, dt); + }; + Oe(Qe, (at) => { + var dt; + (dt = x(p)) != null && dt.region ? at(Le) : at(et, !1); + }); + } + k(Je), k(Ee); + var nt = j(Ee, 2); + nt.__click = fe; + var Ue = A(nt); + _l(Ue, { class: "size-4" }), k(nt), k(De); + var ke = j(De, 2), + vt = A(ke); + { + var ee = (at) => { + var dt = n7(); + $(at, dt); + }, + re = (at) => { + var dt = er(), + yt = Ct(dt); + { + var xt = (wt) => { + var _t = wi(); + We((Lt) => de(_t, Lt), [() => fC()]), $(wt, _t); + }, + St = (wt) => { + const _t = ft(() => x(p).paintedBy); + var Lt = y7(), + Rt = A(Lt), + $t = A(Rt); + k(Rt); + var tr = j(Rt, 2), + Qt = A(tr); + co(Qt, { + class: "size-5 border-0", + get userId() { + return x(_t).id; + }, + get pictureUrl() { + return x(_t).picture; + }, + }), + k(tr); + var Ot = j(tr, 2), + Nt = A(Ot), + or = A(Nt), + cr = A(or, !0); + k(or); + var Vr = j(or, 2), + mr = A(Vr); + k(Vr), k(Nt); + var hr = j(Nt, 2); + { + var _r = (Me) => { + const we = ft(() => So(x(_t).equippedFlag)); + var Ve = i7(), + ut = A(Ve, !0); + k(Ve), + We(() => { + Tr(Ve, "data-tip", x(we).name), de(ut, x(we).flag); + }), + $(Me, Ve); + }; + Oe(hr, (Me) => { + x(_t).equippedFlag && Me(_r); + }); + } + var Ir = j(hr, 2); + { + var qr = (Me) => { + Eh(Me, { + get username() { + return x(_t).discord; + }, + get id() { + return x(_t).discordId; + }, + }); + }; + Oe(Ir, (Me) => { + x(_t).discord && Me(qr); + }); + } + var ue = j(Ir, 2); + { + var V = (Me) => { + var we = s7(), + Ve = Ct(we), + ut = A(Ve, !0); + k(Ve); + var Ke = j(Ve, 2); + { + var kt = (ye) => { + var Bt = o7(); + Bt.__click = [a7, _t]; + var rr = A(Bt); + Rm(rr, { class: "size-3" }), + k(Bt), + We( + (Kt, gr) => { + zr(Bt, 1, Kt), Tr(Bt, "title", gr); + }, + [ + () => Yo(Oi(x(_t).allianceId)), + () => Nx({ allianceId: x(_t).allianceId }), + ] + ), + $(ye, Bt); + }; + Oe(Ke, (ye) => { + var Bt, rr, Kt; + (((Bt = Mt.data) == null ? void 0 : Bt.role) === + "admin" || + ((rr = Mt.data) == null ? void 0 : rr.role) === + "moderator" || + ((Kt = Mt.data) == null ? void 0 : Kt.role) === + "global_moderator") && + ye(kt); + }); + } + We( + (ye, Bt) => { + zr( + Ve, + 1, + `badge badge-sm ml-0.5 border-0 ${ye ?? ""} ${Bt ?? ""}` + ), + de(ut, x(_t).allianceName); + }, + [() => pp(x(_t).allianceId), () => Oi(x(_t).allianceId)] + ), + $(Me, we); + }; + Oe(ue, (Me) => { + x(_t).allianceId && Me(V); + }); + } + var U = j(ue, 2); + { + var Y = (Me) => { + var we = l7(), + Ve = A(we); + Xg(Ve, { class: "text-error size-4" }), + k(we), + We((ut) => Tr(we, "data-tip", ut), [() => Xv()]), + $(Me, we); + }, + ie = (Me) => { + var we = er(), + Ve = Ct(we); + { + var ut = (Ke) => { + var kt = c7(), + ye = A(kt); + Xf(ye, { class: "text-error size-4" }), + k(kt), + We((Bt) => Tr(kt, "data-tip", Bt), [() => Lx()]), + $(Ke, kt); + }; + Oe( + Ve, + (Ke) => { + x(p).paintedBy.timedOut && Ke(ut); + }, + !0 + ); + } + $(Me, we); + }; + Oe(U, (Me) => { + x(p).paintedBy.banned ? Me(Y) : Me(ie, !1); + }); + } + k(Ot); + var pe = j(Ot, 2); + { + var Se = (Me) => { + var we = v7(), + Ve = A(we), + ut = A(Ve); + $m(ut, { class: "size-4" }), k(Ve); + var Ke = j(Ve, 2); + hi( + Ke, + 21, + () => x(ge), + hp, + (kt, ye) => { + var Bt = er(), + rr = Ct(Bt); + { + var Kt = (Ur) => { + var nn = h7(), + mn = A(nn); + let _n; + mn.__click = [u7, Ie]; + var Vt = A(mn); + X0(Vt, { class: "size-5" }); + var Et = j(Vt); + k(mn), + k(nn), + We( + (dr, ht) => { + (_n = zr( + mn, + 1, + "text-error py-2 font-medium", + null, + _n, + dr + )), + de(Et, ` ${ht ?? ""}`); + }, + [ + () => ({ "cursor-not-allowed": x(B) }), + () => Tx(), + ] + ), + $(Ur, nn); + }, + gr = (Ur) => { + var nn = er(), + mn = Ct(nn); + { + var _n = (Et) => { + var dr = p7(), + ht = A(dr); + let Xr; + ht.__click = [d7, Ie]; + var Yr = A(ht); + Xf(Yr, { class: "size-5" }); + var Zr = j(Yr); + k(ht), + k(dr), + We( + (mt, He) => { + (Xr = zr( + ht, + 1, + "text-error font-medium", + null, + Xr, + mt + )), + de(Zr, ` ${He ?? ""}`); + }, + [ + () => ({ "cursor-not-allowed": x(B) }), + () => Cx(), + ] + ), + $(Et, dr); + }, + Vt = (Et) => { + var dr = er(), + ht = Ct(dr); + { + var Xr = (Zr) => { + var mt = m7(), + He = A(mt); + let At; + He.__click = [f7, Ie]; + var Ft = A(He); + Xg(Ft, { class: "size-5" }); + var Jt = j(Ft); + k(He), + k(mt), + We( + (Cr, Er) => { + (At = zr( + He, + 1, + "text-error font-medium", + null, + At, + Cr + )), + de(Jt, ` ${Er ?? ""}`); + }, + [ + () => ({ + "cursor-not-allowed": x(B), + }), + () => Sx(), + ] + ), + $(Zr, mt); + }, + Yr = (Zr) => { + var mt = er(), + He = Ct(mt); + { + var At = (Ft) => { + var Jt = g7(), + Cr = A(Jt); + Cr.__click = [_7, s, _t, H, O, a]; + var Er = A(Cr); + XR(Er, { class: "size-5" }); + var ur = j(Er); + k(Cr), + k(Jt), + We( + (rn) => de(ur, ` ${rn ?? ""}`), + [() => Wv()] + ), + $(Ft, Jt); + }; + Oe( + He, + (Ft) => { + x(ye) === "ban-alliance" && + Ft(At); + }, + !0 + ); + } + $(Zr, mt); + }; + Oe( + ht, + (Zr) => { + x(ye) === "ban-user" + ? Zr(Xr) + : Zr(Yr, !1); + }, + !0 + ); + } + $(Et, dr); + }; + Oe( + mn, + (Et) => { + x(ye) === "timeout-user" + ? Et(_n) + : Et(Vt, !1); + }, + !0 + ); + } + $(Ur, nn); + }; + Oe(rr, (Ur) => { + x(ye) === "report-user" ? Ur(Kt) : Ur(gr, !1); + }); + } + $(kt, Bt); + } + ), + k(Ke), + k(we), + $(Me, we); + }; + Oe(pe, (Me) => { + x(ge).length > 0 && Me(Se); + }); + } + k(Lt), + We( + (Me, we) => { + var Ve; + de($t, `${Me ?? ""}:`), + zr(Nt, 1, `font-medium ${we ?? ""} flex gap-1.5`), + de( + cr, + ((Ve = Mt.data) == null ? void 0 : Ve.id) === x(_t).id + ? Mt.data.name + : x(_t).name + ), + de(mr, `#${x(_t).id ?? ""}`); + }, + [() => gC(), () => Oi(x(_t).id)] + ), + $(wt, Lt); + }; + Oe( + yt, + (wt) => { + x(p).paintedBy.id === 0 ? wt(xt) : wt(St, !1); + }, + !0 + ); + } + $(at, dt); + }; + Oe(vt, (at) => { + x(p) === void 0 ? at(ee) : at(re, !1); + }); + } + k(ke); + var he = j(ke, 2), + oe = A(he); + oe.__click = [x7, a]; + var ze = A(oe); + zh(ze, { class: "size-4.5" }); + var je = j(ze); + k(oe); + var pt = j(oe, 2); + { + var it = (at) => { + const dt = ft(() => + Mt.data.favoriteLocations.find( + (Lt) => + Math.abs(Lt.latitude - x(O).center[0]) < 5e-5 && + Math.abs(Lt.longitude - x(O).center[1]) < 5e-5 + ) + ), + yt = ft( + () => + !x(dt) && + Mt.data.favoriteLocations.length >= Mt.data.maxFavoriteLocations + ); + var xt = w7(); + let St; + xt.__click = [b7, T, dt, O]; + var wt = A(xt); + { + let Lt = ft(() => !!x(dt)); + JR(wt, { + class: "size-4.5", + get filled() { + return x(Lt); + }, + }); + } + var _t = j(wt); + k(xt), + We( + (Lt, Rt) => { + (St = zr(xt, 1, "btn btn-primary btn-soft", null, St, Lt)), + (xt.disabled = x(T) || x(yt)), + de(_t, ` ${Rt ?? ""}`); + }, + [() => ({ "text-yellow-400": !!x(dt) }), () => (x(yt) ? xC() : TC())] + ), + $(at, xt); + }; + Oe(pt, (at) => { + Mt.data && at(it); + }); + } + var ct = j(pt, 2); + ct.__click = [T7, a, O]; + var It = A(ct); + o0(It, { class: "size-4.5" }); + var Dt = j(It); + k(ct), + k(he), + k(Ae), + Ko( + Ae, + (at) => se(z, at), + () => x(z) + ), + We( + (at, dt) => { + de( + Ze, + `Pixel: ${x(O).regionPixel[0] ?? ""}, ${x(O).regionPixel[1] ?? ""}` + ), + (oe.disabled = Mt.loading), + de(je, ` ${at ?? ""}`), + de(Dt, ` ${dt ?? ""}`); + }, + [() => Gv(), () => PC()] + ), + mp("innerHeight", (at) => se(M, at, !0)), + $(m, Ae), + Dr(); +} +$n(["click"]); +var P7 = Te(" ", 1), + I7 = (m, a, p) => { + a(x(p)); + }, + M7 = Te( + '
                  ' + ), + k7 = Te( + '

                  No one has painted in this area yet.

                  ' + ), + A7 = (m, a) => { + navigator.clipboard.writeText( + x(a) + .map((p) => p.id) + .join(", ") + ), + Fr.success("Player IDs copied to clipboard"); + }, + E7 = (m, a, p, y, M) => { + a.crosshair.clear(), p(x(y).painted), se(M, x(y).id, !0); + }, + z7 = Te(" "), + L7 = Te( + '
                  ' + ), + D7 = Te( + '
                  Player Pixels Painted
                  ' + ), + R7 = Te( + '

                  Selected area

                  ' + ); +function B7(m, a) { + Lr(a, !0); + let p = bi([]), + y = st(bi([])), + M = st(!1), + z = st(void 0); + Fn(() => { + const H = a.map.on("click", async (fe) => { + if (p.length >= 2) { + a.onclose(); + return; + } + if ( + (p.push(fe.lngLat), + a.crosshair.place([fe.lngLat.lat, fe.lngLat.lng]), + aa.plop.play(), + p.length === 2) + ) + try { + se(M, !0), se(y, await T(p[0], p[1]), !0), s(x(y)); + } finally { + se(M, !1); + } + }); + return () => { + H.unsubscribe(), a.crosshair.clear(); + }; + }); + async function T(H, fe) { + const ge = new fl(a.tileSize), + [Ie, Ae] = ge.latLonToPixelsFloor(H.lat, H.lng, a.pixelArtZoom), + [De, Ee] = ge.latLonToPixelsFloor(fe.lat, fe.lng, a.pixelArtZoom), + [Fe, $e] = [Math.min(Ie, De), Math.min(Ae, Ee)], + [Je, qe] = [Math.max(Ie, De), Math.max(Ae, Ee)], + Ze = Je - Fe, + Qe = qe - $e; + if (Ze * Qe > 1e6) + return ( + Fr.error( + "The selected area is too big. Please select an area smaller than 1,000,000 pixels." + ), + [] + ); + const et = Math.floor(Fe / a.tileSize), + nt = Math.floor($e / a.tileSize), + Ue = Math.floor(Je / a.tileSize), + ke = Math.floor(qe / a.tileSize), + vt = Ue - et + 1, + ee = ke - nt + 1, + re = new Array(ee).fill(0).flatMap((it, ct) => + new Array(vt).fill(0).map(async (It, Dt) => { + const at = et + Dt, + dt = nt + ct; + let yt = 0, + xt = 0, + St = a.tileSize - 1, + wt = a.tileSize - 1; + dt === nt && (xt = $e % a.tileSize), + at === et && (yt = Fe % a.tileSize), + dt === ke && (wt = qe % a.tileSize), + at === Ue && (St = Je % a.tileSize); + const tr = [at, dt], + Qt = [yt, xt], + Ot = [St, wt]; + return { + response: await Qr.getPixelAreaInfo({ + season: a.season, + tile: tr, + p0: Qt, + p1: Ot, + }), + tile: tr, + p0: Qt, + p1: Ot, + }; + }) + ), + he = await Promise.all(re), + oe = new Map(); + for (const { response: it, p0: ct, p1: It, tile: Dt } of he) { + const [at, dt] = Dt, + [yt, xt] = ct, + [St, wt] = It, + _t = St - yt + 1, + Lt = wt - xt + 1; + for (let Rt = 0; Rt < Lt; Rt++) + for (let $t = 0; $t < _t; $t++) { + const tr = Rt * _t + $t, + Qt = it.paintedBy[tr]; + let Ot = oe.get(Qt); + Ot || ((Ot = { latitudes: [], longitudes: [] }), oe.set(Qt, Ot)); + const [Nt, or] = ge.pixelsToLatLon( + at * a.tileSize + (yt + $t + 0.5), + dt * a.tileSize + (xt + Rt + 0.5), + a.pixelArtZoom + ); + Ot.latitudes.push(Nt), Ot.longitudes.push(or); + } + } + const { users: ze } = await Qr.getMultipleUsersInfoById([...oe.keys()]), + je = dx(ze, (it) => it.id), + pt = [...oe.entries()].map(([it, ct]) => ({ + ...(je[it] ?? { id: it, name: "Player" }), + painted: ct, + })); + return ( + pt.sort( + (it, ct) => ct.painted.latitudes.length - it.painted.latitudes.length + ), + pt + ); + } + function s(H) { + for (const fe of H) B(fe.painted); + se(z, void 0); + } + function B(H) { + for (let fe = 0; fe < H.latitudes.length; fe++) + a.crosshair.place([H.latitudes[fe], H.longitudes[fe]]); + aa.plop.play(); + } + var O = er(), + X = Ct(O); + { + var K = (H) => { + ol(H, { + class: "bg-warning", + children: (fe, ge) => { + var Ie = P7(), + Ae = Ct(Ie); + Gu(Ae, { class: "inline size-5" }); + var De = j(Ae, 2); + { + var Ee = ($e) => { + var Je = wi(); + We((qe) => de(Je, qe), [() => Qv()]), $($e, Je); + }, + Fe = ($e) => { + var Je = er(), + qe = Ct(Je); + { + var Ze = (Qe) => { + var Le = wi(); + We((et) => de(Le, et), [() => e0()]), $(Qe, Le); + }; + Oe( + qe, + (Qe) => { + p.length === 1 && Qe(Ze); + }, + !0 + ); + } + $($e, Je); + }; + Oe(De, ($e) => { + p.length === 0 ? $e(Ee) : $e(Fe, !1); + }); + } + $(fe, Ie); + }, + $$slots: { default: !0 }, + }); + }, + ne = (H) => { + const fe = ft(() => x(y).filter((Ue) => Ue.id !== 0)); + var ge = R7(), + Ie = A(ge), + Ae = A(Ie), + De = A(Ae), + Ee = A(De); + Ee.__click = [I7, s, y]; + var Fe = A(Ee); + Gu(Fe, { class: "size-4" }), k(Ee); + var $e = j(Ee, 4), + Je = A($e); + k($e), k(De); + var qe = j(De, 2); + qe.__click = function (...Ue) { + var ke; + (ke = a.onclose) == null || ke.apply(this, Ue); + }; + var Ze = A(qe); + _l(Ze, { class: "size-4" }), k(qe), k(Ae); + var Qe = j(Ae, 2), + Le = A(Qe); + { + var et = (Ue) => { + var ke = M7(); + $(Ue, ke); + }, + nt = (Ue) => { + var ke = er(), + vt = Ct(ke); + { + var ee = (he) => { + var oe = k7(); + $(he, oe); + }, + re = (he) => { + var oe = D7(), + ze = A(oe), + je = A(ze), + pt = A(je), + it = j(A(pt)), + ct = j(A(it)); + ct.__click = [A7, fe]; + var It = A(ct); + Rm(It, { class: "size-3" }), + k(ct), + k(it), + yn(), + k(pt), + k(je); + var Dt = j(je); + hi( + Dt, + 23, + () => x(fe), + (at) => at.id, + (at, dt, yt) => { + var xt = L7(); + let St; + xt.__click = [E7, a, B, dt, z]; + var wt = A(xt), + _t = A(wt, !0); + k(wt); + var Lt = j(wt), + Rt = A(Lt); + co(Rt, { + class: "size-5 border-0", + get userId() { + return x(dt).id; + }, + get pictureUrl() { + return x(dt).picture; + }, + }); + var $t = j(Rt, 2), + tr = A($t), + Qt = A(tr), + Ot = A(Qt, !0); + k(Qt); + var Nt = j(Qt, 2), + or = A(Nt); + k(Nt), k(tr); + var cr = j(tr, 2); + { + var Vr = (_r) => { + var Ir = z7(), + qr = A(Ir, !0); + k(Ir), + We( + (ue, V) => { + zr( + Ir, + 1, + `badge badge-sm ml-0.5 border-0 ${ + ue ?? "" + } ${V ?? ""}` + ), + de(qr, x(dt).allianceName); + }, + [ + () => pp(x(dt).allianceId), + () => Oi(x(dt).allianceId), + ] + ), + $(_r, Ir); + }; + Oe(cr, (_r) => { + x(dt).allianceId && _r(Vr); + }); + } + k($t), k(Lt); + var mr = j(Lt), + hr = A(mr, !0); + k(mr), + k(xt), + We( + (_r, Ir, qr) => { + (St = zr( + xt, + 1, + "hover:bg-base-200 cursor-pointer", + null, + St, + _r + )), + de(_t, x(yt) + 1), + zr( + tr, + 1, + `font-medium ${Ir ?? ""} flex gap-1.5` + ), + de(Ot, x(dt).name), + de(or, `#${x(dt).id ?? ""}`), + de(hr, qr); + }, + [ + () => ({ "!bg-base-300": x(dt).id === x(z) }), + () => Oi(x(dt).id), + () => + x(dt).painted.latitudes.length.toLocaleString(), + ] + ), + $(at, xt); + } + ), + k(Dt), + k(ze), + k(oe), + $(he, oe); + }; + Oe( + vt, + (he) => { + x(fe).length === 0 ? he(ee) : he(re, !1); + }, + !0 + ); + } + $(Ue, ke); + }; + Oe(Le, (Ue) => { + x(M) ? Ue(et) : Ue(nt, !1); + }); + } + k(Qe), + k(Ie), + k(ge), + We( + (Ue) => de(Je, `(Pixels: ${Ue ?? ""})`), + [() => x(y).reduce((Ue, ke) => Ue + ke.painted.latitudes.length, 0)] + ), + Ai( + 3, + ge, + () => Hd, + () => ({ duration: 100 }) + ), + $(H, ge); + }; + Oe(X, (H) => { + p.length < 2 ? H(K) : H(ne, !1); + }); + } + $(m, O), Dr(); +} +$n(["click"]); +function F7(m) { + var y; + const a = document.createElement("div"); + (y = m.parentElement) == null || y.insertBefore(a, m.nextSibling); + const p = new IntersectionObserver( + (M) => { + M[0].isIntersecting + ? m.classList.remove("stuck") + : m.classList.add("stuck"); + }, + { threshold: 0, rootMargin: "0px" } + ); + return ( + p.observe(a), + () => { + a.remove(), p.disconnect(); + } + ); +} +var Im; +((m) => { + function a() { + let p, y; + return { + promise: new Promise((z, T) => { + (p = z), (y = T); + }), + resolve: p, + reject: y, + }; + } + m.withResolvers = a; +})(Im || (Im = {})); +var O7 = Pr( + '' + ), + N7 = Pr( + '' + ); +function j7(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy", "filled"]); + var y = er(), + M = Ct(y); + { + var z = (s) => { + var B = O7(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }, + T = (s) => { + var B = N7(); + ar(B, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(s, B); + }; + Oe(M, (s) => { + a.filled ? s(z) : s(T, !1); + }); + } + $(m, y); +} +var V7 = Te("

                  "), + q7 = Te( + '' + ), + Z7 = Te( + '' + ), + U7 = Te( + '' + ), + $7 = Te(' ', 1), + G7 = Te(' '), + H7 = Te( + '' + ), + W7 = Te( + '

                  ' + ), + X7 = (m, a) => { + se(a, !x(a)); + }, + Y7 = Te( + '

                  Flags

                  ' + ); +function K7(m, a) { + Lr(a, !0); + const p = (Fe, $e = pa, Je = pa) => { + const qe = ft(() => { + var ct; + return ( + (((ct = Mt.data) == null ? void 0 : ct.droplets) ?? 0) >= s.price + ); + }), + Ze = ft(() => x(O) === $e().id), + Qe = ft(() => y.has($e().id)); + var Le = W7(), + et = A(Le), + nt = A(et, !0); + k(et); + var Ue = j(et, 2), + ke = A(Ue), + vt = j(ke); + { + var ee = (ct) => { + var It = V7(), + Dt = A(It); + Uu(Dt, { class: "text-base-content/60 size-4.5 inline pb-0.5" }), + k(It), + We( + (at) => { + zr( + It, + 1, + Yo({ + "tooltip inline": !0, + "lg:before:-translate-x-1/3": (Je() + 1) % 4 === 0, + "lg:before:translate-x-1/3": Je() % 4 === 0, + "before:-translate-x-1/3": (Je() + 1) % 2 === 0, + "before:translate-x-1/3": Je() % 2 === 0, + }) + ), + Tr(It, "data-tip", at); + }, + [() => lI()] + ), + $(ct, It); + }; + Oe(vt, (ct) => { + x(Qe) && ct(ee); + }); + } + k(Ue); + var re = j(Ue, 2); + { + var he = (ct) => { + Xm(ct, {}); + }; + Oe(re, (ct) => { + $e().id === x(X) && ct(he); + }); + } + var oe = j(re, 2); + let ze; + var je = A(oe); + { + var pt = (ct) => { + var It = Z7(); + It.__click = async () => { + if (!(x(Qe) && !(await a.promptUserConfirmation($e().name)))) + try { + const xt = $e().id; + se(O, xt, !0), + await Qr.purchase({ id: T, amount: 1, variant: xt }), + Mt.refresh(), + aa.notification1.play(); + const St = z.find((wt) => wt.id === xt); + St && (St.owned = !0), se(X, xt, !0); + } catch (xt) { + Fr.error(xt.message); + } finally { + se(O, void 0); + } + }; + var Dt = A(It); + { + var at = (xt) => { + var St = q7(); + $(xt, St); + }; + Oe(Dt, (xt) => { + x(Ze) && xt(at); + }); + } + var dt = j(Dt, 2); + fp(dt, { class: "size-4" }); + var yt = j(dt); + yn(), + k(It), + We( + (xt) => { + (It.disabled = !x(qe) || x(Ze)), de(yt, ` ${xt ?? ""} `); + }, + [() => s.price.toLocaleString("en-US")] + ), + $(ct, It); + }, + it = (ct) => { + const It = ft(() => { + var Rt; + return ( + ((Rt = Mt.data) == null ? void 0 : Rt.equippedFlag) === $e().id + ); + }); + var Dt = H7(); + let at; + Dt.__click = async () => { + try { + se(O, $e().id, !0); + const Rt = x(It) ? 0 : $e().id; + await Qr.equipFlag(Rt), + Mt.data && (Mt.data.equippedFlag = Rt), + Mt.refresh(); + } catch (Rt) { + Fr.error(Rt.message); + } finally { + se(O, void 0); + } + }; + var dt = A(Dt), + yt = A(dt, !0); + k(dt); + var xt = j(dt, 2); + { + var St = (Rt) => { + var $t = U7(); + $(Rt, $t); + }; + Oe(xt, (Rt) => { + x(Ze) && Rt(St); + }); + } + var wt = j(xt, 2); + { + var _t = (Rt) => { + var $t = $7(), + tr = Ct($t); + _l(tr, { class: "size-4" }); + var Qt = j(tr, 2), + Ot = A(Qt, !0); + k(Qt), We((Nt) => de(Ot, Nt), [() => Mw()]), $(Rt, $t); + }, + Lt = (Rt) => { + var $t = G7(), + tr = A($t, !0); + k($t), We((Qt) => de(tr, Qt), [() => Ew()]), $(Rt, $t); + }; + Oe(wt, (Rt) => { + x(It) ? Rt(_t) : Rt(Lt, !1); + }); + } + k(Dt), + We( + (Rt, $t) => { + (at = zr( + Dt, + 1, + "btn btn-lg sm:btn-md tooltip tooltip-bottom relative h-10", + null, + at, + Rt + )), + (Dt.disabled = x(Ze)), + de(yt, $t); + }, + [() => ({ "btn-warning": x(It) }), () => Sw()] + ), + $(ct, Dt); + }; + Oe(je, (ct) => { + $e().owned ? ct(it, !1) : ct(pt); + }); + } + k(oe), + k(Le), + We( + (ct, It) => { + de(nt, $e().flag), + de(ke, `${$e().name ?? ""} `), + (ze = zr(oe, 1, "mt-3", null, ze, ct)), + Tr(oe, "data-tip", It); + }, + [() => ({ tooltip: !x(qe) }), () => gp()] + ), + $(Fe, Le); + }, + y = new Set([ + 8, 30, 32, 84, 96, 125, 143, 146, 150, 192, 200, 236, 240, 251, + ]), + M = Wi.countries.map((Fe) => ({ ...Fe, owned: Mt.flagsBitmap.get(Fe.id) })); + M.sort((Fe, $e) => Number($e.owned) - Number(Fe.owned)); + const z = bi(M), + T = 110, + s = Wi.products[T]; + let B = st(!1), + O = st(void 0), + X = st(void 0); + var K = Y7(), + ne = A(K), + H = A(ne); + j7(H, { class: "size-5.5", filled: !0 }), yn(2), k(ne); + var fe = j(ne, 2), + ge = A(fe, !0); + k(fe); + var Ie = j(fe, 2); + hi( + Ie, + 23, + () => z, + (Fe) => Fe.id, + (Fe, $e, Je) => { + var qe = er(), + Ze = Ct(qe); + { + var Qe = (Le) => { + p( + Le, + () => x($e), + () => x(Je) + ); + }; + Oe(Ze, (Le) => { + (x(Je) < 8 || x(B)) && Le(Qe); + }); + } + $(Fe, qe); + } + ), + k(Ie); + var Ae = j(Ie, 2), + De = A(Ae); + De.__click = [X7, B]; + var Ee = A(De, !0); + k(De), + k(Ae), + k(K), + We( + (Fe) => { + de(ge, Fe), de(Ee, x(B) ? "Show less" : "Show more"); + }, + [() => ww()] + ), + $(m, K), + Dr(); +} +$n(["click"]); +var J7 = Te('

                  '), + Q7 = (m, a) => { + kv(a, -1); + }, + e9 = (m, a) => { + kv(a); + }, + t9 = (m, a, p) => { + a(x(p)); + }, + r9 = Te( + '' + ), + n9 = async (m, a, p, y) => { + try { + se(a, !0), + await Qr.purchase({ id: p.productId, amount: y() }), + aa.notification1.play(), + p.onpurchasecompleted(y()); + } catch (M) { + Fr.error(M.message); + } finally { + se(a, !1); + } + }, + i9 = Te( + '' + ), + a9 = Te( + '

                  ' + ); +function Sv(m, a) { + Lr(a, !0); + let p = zt(a, "amount", 15, 1); + const y = ft(() => p() * a.unitPrice), + M = ft(() => Math.floor(a.userDroplets / a.unitPrice)); + let z = st(!1); + Wr(() => { + p() < 0 && p(0); + }); + var T = a9(), + s = A(T), + B = A(s); + oi(B, () => a.icon ?? pa), k(s); + var O = j(s, 2), + X = A(O, !0); + k(O); + var K = j(O, 2); + { + var ne = (Le) => { + var et = J7(), + nt = A(et, !0); + k(et), We(() => de(nt, a.subtitle)), $(Le, et); + }; + Oe(K, (Le) => { + a.subtitle && Le(ne); + }); + } + var H = j(K, 2), + fe = A(H); + fe.__click = [Q7, p]; + var ge = j(fe, 2); + Ka(ge); + var Ie = j(ge, 2); + Ie.__click = [e9, p]; + var Ae = j(Ie, 2); + { + var De = (Le) => { + var et = r9(); + (et.__click = [t9, p, M]), $(Le, et); + }; + Oe(Ae, (Le) => { + p() < x(M) && Le(De); + }); + } + k(H); + var Ee = j(H, 2); + let Fe; + var $e = A(Ee); + $e.__click = [n9, z, a, p]; + var Je = A($e); + { + var qe = (Le) => { + var et = i9(); + $(Le, et); + }; + Oe(Je, (Le) => { + x(z) && Le(qe); + }); + } + var Ze = j(Je, 2); + fp(Ze, { class: "size-4" }); + var Qe = j(Ze); + yn(), + k($e), + k(Ee), + k(T), + We( + (Le, et, nt, Ue) => { + de(X, Le), + (Ie.disabled = p() >= x(M)), + Tr(Ee, "data-tip", et), + (Fe = zr(Ee, 1, "", null, Fe, nt)), + ($e.disabled = a.userDroplets < x(y) || x(z) || !p()), + de(Qe, ` ${Ue ?? ""} `); + }, + [ + () => a.title(p()), + () => gp(), + () => ({ tooltip: a.userDroplets < x(y) }), + () => x(y).toLocaleString("en-US"), + ] + ), + dp(ge, p), + $(m, T), + Dr(); +} +$n(["click"]); +var o9 = Pr( + '' +); +function s9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = o9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var l9 = Pr( + '' +); +function Y0(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = l9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var c9 = Pr( + '' +); +function u9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = c9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var h9 = Pr( + '' +); +function d9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = h9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var p9 = Te( + '' + ), + f9 = Te(''), + m9 = (m, a, p) => { + var y; + (y = x(a)) == null || y.resolve(!1), x(p).close(); + }, + _9 = (m, a, p) => { + var y; + (y = x(a)) == null || y.resolve(!0), x(p).close(); + }, + g9 = Te( + ' ', + 1 + ); +function v9(m, a) { + Lr(a, !0); + let p = zt(a, "open", 15), + y = st(null), + M = st(bi({ name: Kg(), prev: 1e3, new: 1e5 })); + Fn(() => { + const Ot = (Nt) => { + Nt.key === "Escape" && p(!1); + }; + return ( + document.addEventListener("keydown", Ot), + () => document.removeEventListener("keydown", Ot) + ); + }); + const z = { id: 70, product: Wi.products[70] }, + T = { id: 80, product: Wi.products[80] }, + s = { product: Wi.products[120] }; + let B = st(null), + O = st(null), + X = st(""); + async function K(Ot) { + return ( + x(B).showModal(), + se(O, Im.withResolvers(), !0), + se(X, Ot, !0), + x(O).promise + ); + } + var ne = g9(), + H = Ct(ne), + fe = A(H), + ge = A(fe); + { + var Ie = (Ot) => { + var Nt = p9(), + or = A(Nt), + cr = A(or), + Vr = A(cr); + Y0(Vr, { class: "size-8" }); + var mr = j(Vr, 2), + hr = A(mr, !0); + k(mr); + var _r = j(mr, 2), + Ir = A(_r); + { + let Jt = ft(() => { + var Cr; + return ((Cr = Mt.data) == null ? void 0 : Cr.droplets) ?? 0; + }); + Fv(Ir, { + get value() { + return x(Jt); + }, + }); + } + k(_r), yn(2), k(cr), k(or), Ni(or, () => F7); + var qr = j(or, 2), + ue = A(qr), + V = A(ue), + U = A(V); + s9(U, { class: "size-5.5", filled: !0 }); + var Y = j(U, 2), + ie = A(Y, !0); + k(Y), k(V); + var pe = j(V, 2), + Se = A(pe, !0); + k(pe); + var Me = j(pe, 2), + we = A(Me); + { + const Jt = (Er) => { + d9(Er, { class: "text-primary size-26" }); + }; + let Cr = ft(() => I2()); + Sv(we, { + get productId() { + return z.id; + }, + title: (Er) => C2({ amount: z.product.items[0].amount * Er }), + get subtitle() { + return x(Cr); + }, + get unitPrice() { + return z.product.price; + }, + get userDroplets() { + return Mt.data.droplets; + }, + onpurchasecompleted: async (Er) => { + var pn, gn, ln, En; + const ur = + (gn = (pn = Mt.data) == null ? void 0 : pn.charges) == null + ? void 0 + : gn.max; + await Mt.refresh(); + const rn = + (En = (ln = Mt.data) == null ? void 0 : ln.charges) == null + ? void 0 + : En.max; + ur !== void 0 && + rn !== void 0 && + (se(M, { name: Kg(), prev: ur, new: rn }, !0), x(y).show()); + }, + icon: Jt, + $$slots: { icon: !0 }, + }); + } + var Ve = j(we, 2); + { + const Jt = (Er) => { + $0(Er, { class: "text-primary my-3 size-20" }); + }; + let Cr = ft(() => m2()); + Sv(Ve, { + get productId() { + return T.id; + }, + title: (Er) => f3({ amount: T.product.items[0].amount * Er }), + get subtitle() { + return x(Cr); + }, + get unitPrice() { + return T.product.price; + }, + get userDroplets() { + return Mt.data.droplets; + }, + onpurchasecompleted: async (Er) => { + var rn, pn, gn; + const ur = + (pn = (rn = Mt.data) == null ? void 0 : rn.charges) == null + ? void 0 + : pn.count; + await Mt.refresh(), + ur !== void 0 && + (se( + M, + { + name: h3(), + prev: Math.floor(ur), + new: Math.floor(ur + T.product.items[0].amount * Er), + }, + !0 + ), + (gn = x(y)) == null || gn.show()); + }, + icon: Jt, + $$slots: { icon: !0 }, + }); + } + k(Me), k(ue); + var ut = j(ue, 2), + Ke = A(ut), + kt = A(Ke); + yp(kt, { class: "size-5.5", filled: !0 }); + var ye = j(kt, 2), + Bt = A(ye, !0); + k(ye), k(Ke); + var rr = j(Ke, 2), + Kt = A(rr), + gr = A(Kt), + Ur = A(gr), + nn = A(Ur), + mn = A(nn); + Ov(mn, { + get userId() { + return Mt.data.id; + }, + get level() { + return Mt.data.level; + }, + get pictureUrl() { + return Mt.data.picture; + }, + }), + k(nn), + k(Ur), + k(gr); + var _n = j(gr, 2), + Vt = A(_n, !0); + k(_n); + var Et = j(_n, 2), + dr = A(Et, !0); + k(Et); + var ht = j(Et, 2); + let Xr; + var Yr = A(ht), + Zr = A(Yr), + mt = A(Zr); + fp(mt, { class: "size-4" }); + var He = j(mt); + yn(), k(Zr), k(Yr), k(ht), k(Kt), k(rr), k(ut); + var At = j(ut, 2), + Ft = A(At); + K7(Ft, { promptUserConfirmation: K }), + k(At), + k(qr), + k(Nt), + We( + (Jt, Cr, Er, ur, rn, pn, gn, ln, En) => { + de(hr, Jt), + de(ie, Cr), + de(Se, Er), + de(Bt, ur), + de(Vt, rn), + de(dr, pn), + Tr(ht, "data-tip", gn), + (Xr = zr(ht, 1, "", null, Xr, ln)), + (Zr.disabled = Mt.data.droplets < s.product.price), + de(He, ` ${En ?? ""} `); + }, + [ + () => Zv(), + () => v2(), + () => b2(), + () => yw(), + () => A2(), + () => L2(), + () => gp(), + () => ({ tooltip: Mt.data.droplets < s.product.price }), + () => s.product.price.toLocaleString("en-US"), + ] + ), + Ai(2, Nt, () => ia), + $(Ot, Nt); + }; + Oe(ge, (Ot) => { + Mt.data && p() && Ot(Ie); + }); + } + k(fe); + var Ae = j(fe, 2), + De = A(Ae), + Ee = A(De, !0); + k(De), + k(Ae), + k(H), + Ni(H, () => (Ot) => { + Wr(() => { + p() ? Ot.show() : Ot.close(); + }); + }); + var Fe = j(H, 2), + $e = A(Fe), + Je = A($e), + qe = A(Je), + Ze = A(qe, !0); + k(qe); + var Qe = j(qe, 2), + Le = A(Qe), + et = A(Le), + nt = j(et), + Ue = A(nt); + k(nt), k(Le); + var ke = j(Le, 2), + vt = A(ke); + u9(vt, { class: "size-5" }), k(ke); + var ee = j(ke, 2), + re = A(ee, !0); + k(ee), k(Qe); + var he = j(Qe, 2), + oe = A(he), + ze = A(oe), + je = j(ze); + ju( + je, + () => x(M).new, + (Ot) => { + var Nt = f9(), + or = A(Nt); + Xm(or, {}), k(Nt), $(Ot, Nt); + } + ), + k(oe), + k(he), + k(Je), + k($e); + var pt = j($e, 2), + it = A(pt), + ct = A(it, !0); + k(it), + k(pt), + k(Fe), + Ko( + Fe, + (Ot) => se(y, Ot), + () => x(y) + ); + var It = j(Fe, 2), + Dt = A(It), + at = A(Dt), + dt = A(at, !0); + k(at); + var yt = j(at, 2), + xt = A(yt); + Am(xt, () => fI({ country: x(X) })), k(yt); + var St = j(yt, 2), + wt = A(St); + wt.__click = [m9, O, B]; + var _t = A(wt, !0); + k(wt); + var Lt = j(wt, 2); + Lt.__click = [_9, O, B]; + var Rt = A(Lt, !0); + k(Lt), k(St), k(Dt); + var $t = j(Dt, 2), + tr = A($t), + Qt = A(tr, !0); + k(tr), + k($t), + k(It), + Ko( + It, + (Ot) => se(B, Ot), + () => x(B) + ), + We( + (Ot, Nt, or, cr, Vr, mr, hr) => { + de(Ee, Ot), + de(Ze, x(M).name), + de(et, `${x(M).prev ?? ""} `), + de(Ue, `(+${x(M).new - x(M).prev})`), + de(re, x(M).new), + de(ze, `${Nt ?? ""} `), + de(ct, or), + de(dt, cr), + de(_t, Vr), + de(Rt, mr), + de(Qt, hr); + }, + [ + () => Ss(), + () => Ss(), + () => Ss(), + () => hI(), + () => Ah(), + () => qv(), + () => Ss(), + ] + ), + di("close", H, () => p(!1)), + $(m, ne), + Dr(); +} +$n(["click"]); +var y9 = Pr( + '' +); +function x9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = y9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var b9 = Pr( + '' +); +function w9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = b9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var T9 = Pr( + '' +); +function C9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = T9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var S9 = Pr( + '' +); +function P9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = S9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var I9 = Pr( + '' +); +function M9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = I9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var k9 = Pr( + '' +); +function A9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = k9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +var E9 = Pr( + '' +); +function z9(m, a) { + let p = nr(a, ["$$slots", "$$events", "$$legacy"]); + var y = E9(); + ar(y, () => ({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 -960 960 960", + fill: "currentColor", + ...p, + })), + $(m, y); +} +function Gf(m) { + const a = document.createElement("img"); + return ( + (a.src = m), + new Promise((p, y) => { + a.addEventListener("load", () => { + p(a); + }), + a.addEventListener("error", (M) => { + y(M); + }); + }) + ); +} +function L9(m) { + const a = document.createElement("canvas"); + (a.width = m.naturalWidth), (a.height = m.naturalHeight); + const p = a.getContext("2d"); + return p == null || p.drawImage(m, 0, 0), a; +} +function D9(m, a, p) { + return m < a ? a : m > p ? p : m; +} +function R9(m, a) { + const p = 10 ** a; + return Math.round(m * p) / p; +} +var B9 = Te( + ' ', + 1 + ), + F9 = (m, a) => { + se(a, !x(a)); + }, + O9 = Te(""), + N9 = async (m, a, p, y) => { + var M; + x(a) || + se( + a, + await new Promise((z, T) => { + navigator.geolocation.getCurrentPosition( + (s) => { + z(s); + }, + (s) => { + T(s); + } + ); + }) + ), + x(a) && + (Co({ lat: x(a).coords.latitude, lng: x(a).coords.longitude }, x(p)), + (M = x(y)) == null || + M.flyTo({ + center: { lat: x(a).coords.latitude, lng: x(a).coords.longitude }, + zoom: 16.5, + })); + }, + j9 = Te( + '
                  ?
                  ' + ), + V9 = Te( + '' + ), + q9 = (m, a, p, y) => { + var M; + se(a, !0), x(p) && Co((M = x(p)) == null ? void 0 : M.getCenter(), x(y)); + }, + Z9 = Te(''), + U9 = Te( + '' + ), + $9 = Te('
                  '), + G9 = (m, a, p, y) => { + var z; + se(a, !0); + const M = (z = x(p)) == null ? void 0 : z.getCenter(); + M && Co(M, x(y)); + }, + H9 = Te(''), + W9 = (m, a) => { + se(a, !0); + }, + X9 = Te(''), + Y9 = (m, a) => { + se(a, !0); + }, + K9 = Te(''), + J9 = Te( + '
                  ' + ), + Q9 = (m, a) => { + se(a, !x(a)); + }, + eB = Te('
                  '), + tB = Te( + '
                  ' + ), + rB = (m, a) => { + se(a, !0); + }, + nB = Te(''), + iB = (m, a) => { + var p; + (p = x(a)) == null || p.zoomIn(); + }, + aB = (m, a) => { + var p; + (p = x(a)) == null || p.zoomOut(); + }, + oB = (m, a) => { + se(a, { name: "getPixelAreaInfo" }, !0); + }, + sB = Te( + '' + ), + lB = Te(''), + cB = () => { + window.location.replace(yi.url.origin); + }, + uB = Te(''), + hB = (m, a) => { + x(a) && hl.goToPrev(x(a)); + }, + dB = Te(''), + pB = Te( + '
                  ' + ), + fB = (m, a, p) => { + var y; + (y = x(a)) == null || y.flyTo({ center: x(a).getCenter(), zoom: p }); + }, + mB = Te( + '' + ), + _B = Te(""), + gB = Te( + '
                  ' + ), + vB = Te( + '
                  ' + ), + yB = Te( + '
                  ' + ), + xB = (m, a) => { + se(a, { name: "mainMenu" }, !0); + }, + bB = Te( + '
                  ' + ), + wB = Te( + '
                  ', + 1 + ); +function uF(m, a) { + Lr(a, !0); + const p = Lf, + y = px, + M = new fl(y), + z = p - 0.4, + T = v4(yi.url), + s = T.season ?? Hg, + B = new Map(); + let O = st(void 0), + X = st(14.5), + K = st(!1); + const ne = ft(() => { + var bt; + return ((bt = Mt.data) == null ? void 0 : bt.id) === 401; + }); + let H = st(!1), + fe = st( + bi( + T.select && T.pos + ? { name: "pixelSelected", latLon: [T.pos.lat, T.pos.lng] } + : { name: "mainMenu" } + ) + ); + Fn(() => { + De().then((Br) => se(O, Br)); + let bt = [0, 0]; + function Xt(Br) { + var xn; + if (x(O) && x(X) > p + 1) { + const { lat: On, lng: Yn } = x(O).unproject([Br.clientX, Br.clientY]), + Vn = M.latLonToPixels(On, Yn, p), + wn = Math.floor(Vn[0]), + Ji = Math.floor(Vn[1]); + if (bt[0] !== wn || bt[1] !== Ji) { + const sr = M.latLonToPixelBoundsLatLon(On, Yn, p), + Ut = Vm(sr, !0); + (xn = x(O).getSource($e)) == null || xn.setCoordinates(Ut), + (bt = [wn, Ji]); + } + } + } + return ( + window.addEventListener("mousemove", Xt), + () => { + var Br; + (Br = x(O)) == null || Br.remove(), + window.removeEventListener("mousemove", Xt), + Ae && clearInterval(Ae), + Hf(); + } + ); + }), + dl( + () => [ai.theme], + () => { + if (x(O)) { + Ie = !1; + const bt = ge(ai.theme); + x(O).setStyle(bt); + } + } + ); + function ge(bt) { + return `/maps/styles/${ + bt === "custom-winter" ? "liberty" : "fiord" + }`; + } + let Ie = !1, + Ae; + async function De() { + const bt = T.pos ? { ...T.pos, zoom: x(X) } : await l4(); + T.zoom !== void 0 && (bt.zoom = T.zoom); + const Xt = await new Promise((Vn) => { + const wn = new qd.Map({ + style: ge(ai.theme), + center: bt, + zoom: bt.zoom, + container: "map", + dragRotate: !1, + doubleClickZoom: !1, + pitch: 0, + maxPitch: 0, + attributionControl: !1, + }); + wn.touchZoomRotate.disableRotation(), + wn.on("styledata", (Ji) => { + Ie || + (ai.theme === "custom-winter" && + (wn.setLayoutProperty("poi_transit", "visibility", "none"), + wn.setLayoutProperty("poi_r20", "visibility", "none"), + wn.setLayoutProperty("poi_r7", "visibility", "none"), + wn.setLayoutProperty("poi_r1", "visibility", "none"), + wn.setLayoutProperty("building", "visibility", "none"), + wn.setLayoutProperty("building-3d", "visibility", "none"), + wn.setLayoutProperty("landuse_pitch", "visibility", "none"), + wn.setLayoutProperty("landuse_hospital", "visibility", "none"), + wn.setLayoutProperty("landuse_school", "visibility", "none"), + wn.setLayoutProperty( + "landuse_residential", + "visibility", + "none" + ), + wn.setLayoutProperty("waterway_tunnel", "visibility", "none"), + wn.setFilter("water", [ + "all", + ["!=", "brunnel", "tunnel"], + ["!=", "class", "swimming_pool"], + ])), + Fe(wn), + Qe(), + (Ie = !0)); + }), + wn.on("style.load", () => { + Vn(wn); + }); + }), + Br = Wi.refreshIntervalMs; + function xn() { + let Vn = x(X) > p + 1.5 ? Br : 2.5 * Br; + try { + document.visibilityState === "visible" && Fe(Xt); + } finally { + setTimeout(xn, Vn); + } + } + (Ae = setTimeout(xn, Br)), + Xt.on("load", () => { + T.discordLinked && + (Fr.success(xS()), + yi.url.searchParams.delete("discord-linked"), + km(yi.url.toString())); + }); + let On = x(X); + Xt.on("zoom", () => { + se(X, Xt.getZoom(), !0); + const Vn = R9(x(X), 1); + Vn != On && (x(ee) && x(ee).setOpacity(re(On)), (On = Vn)); + }); + let Yn = "default"; + return ( + Xt.on("dragstart", () => { + const Vn = Xt.getCanvas(); + (Yn = Vn.style.cursor), (Vn.style.cursor = "move"); + }), + Xt.on("dragend", () => { + Xt.getCanvas().style.cursor = Yn; + }), + Xt.on("mouseout", () => { + Le(); + }), + Xt.on("click", async (Vn) => { + var $r; + const wn = Vn.lngLat.lat, + Ji = Vn.lngLat.lng, + sr = [wn, Ji]; + if (x(fe).name === "paintingPixel" || x(fe).name === "getPixelAreaInfo") + return; + if (x(fe).name === "selectHq") { + (x(fe).hq = sr), ($r = x(he)) == null || $r.clearAndPlace(sr); + return; + } + const Ut = Xt.getZoom(); + if (Ut < z) { + Fr.info(VS()); + return; + } + Co({ lat: wn, lng: Ji }, Ut), + se(fe, { name: "pixelSelected", latLon: sr }, !0); + }), + Xt + ); + } + const Ee = "pixel-art-layer"; + function Fe(bt) { + const Xt = window.innerWidth, + Br = `${fx}/s${Hg}/tiles/{x}/{y}.png`; + if ((B.clear(), !bt.style)) return; + bt.getSource(Ee) + ? bt.refreshTiles(Ee) + : bt.addSource(Ee, { + type: "raster", + tiles: [Br], + minzoom: p, + maxzoom: p, + tileSize: Xt > 640 ? 550 : 400, + }), + bt.getLayer(Ee) || + bt.addLayer({ + id: Ee, + type: "raster", + source: Ee, + paint: { "raster-resampling": "nearest", "raster-opacity": x(nt) }, + }); + } + const $e = "pixel-hover", + Je = 1e-5, + qe = [ + [0, 0], + [Je, 0], + [Je, -Je], + [0, -Je], + ], + Ze = 0.4; + async function Qe() { + var bt, Xt, Br, xn; + if (!((bt = x(O)) != null && bt.getSource($e))) { + const On = L9(await Gf(o4)); + (Xt = x(O)) == null || + Xt.addSource($e, { type: "canvas", canvas: On, coordinates: qe }); + } + ((Br = x(O)) != null && Br.getLayer($e)) || + (xn = x(O)) == null || + xn.addLayer({ + id: $e, + type: "raster", + source: $e, + paint: { "raster-resampling": "nearest", "raster-opacity": Ze }, + }); + } + function Le() { + var bt, Xt; + (Xt = (bt = x(O)) == null ? void 0 : bt.getSource($e)) == null || + Xt.setCoordinates(qe); + } + let et = st(bi(T.opaque ?? !0)), + nt = ft(() => (x(et) ? 1 : 0.1)); + Wr(() => { + var bt; + (bt = x(O)) != null && + bt.getLayer(Ee) && + x(O).setPaintProperty(Ee, "raster-opacity", x(nt)); + }); + let Ue = st(void 0), + ke = st(void 0), + vt = st(void 0); + Fn( + () => ( + navigator.permissions.query({ name: "geolocation" }).then((bt) => { + bt.state === "granted" && + se( + vt, + navigator.geolocation.watchPosition( + (Xt) => { + se(Ue, Xt); + }, + (Xt) => { + se(ke, Xt); + }, + { enableHighAccuracy: !1, maximumAge: 1e3, timeout: 6e3 } + ), + !0 + ); + }), + () => { + x(vt) && navigator.geolocation.clearWatch(x(vt)); + } + ) + ); + let ee = st(void 0); + dl( + () => [x(Ue), x(O)], + () => { + var bt, Xt; + if (x(Ue) && x(O)) { + const Br = { lat: x(Ue).coords.latitude, lng: x(Ue).coords.longitude }, + xn = re(x(X)); + if (!x(ee)) { + const On = document.createElement("div"); + On.classList.add("maplibregl-user-location-dot"), + On.classList.add("cursor-auto"), + se( + ee, + new qd.Marker({ element: On, opacity: xn }) + .setLngLat(Br) + .addTo(x(O)) + ); + } + (Xt = (bt = x(ee)) == null ? void 0 : bt.setLngLat(Br)) == null || + Xt.setOpacity(xn); + } + } + ); + function re(bt) { + return bt < p ? "1.0" : D9((bt - p) * 0.2, 0.5, 1).toFixed(2); + } + let he = st(void 0); + Wr(() => { + var bt; + x(O) && + ((bt = ul(() => x(he))) == null || bt.clear(), + Gf(Jg).then((Xt) => { + se( + he, + new ev({ + id: "select-crosshair", + map: x(O), + tileSize: y, + zoom: p, + img: Xt, + markerFn: () => { + const Br = new qd.Marker({ color: "#0069ff" }); + return Br.addClassName("z-20"), Br; + }, + }) + ); + })); + }); + let oe = st(void 0); + Wr(() => { + var bt; + x(O) && + ((bt = ul(() => x(he))) == null || bt.clear(), + Gf(Jg).then((Xt) => { + se( + oe, + new ev({ + id: "paint-crosshair", + map: x(O), + tileSize: y, + zoom: p, + img: Xt, + }) + ); + })); + }); + let ze = st(!1), + je = st(!1), + pt = st(!1), + it = st(!!T.newUser), + ct = st(!1), + It = st(!!T.alliance), + Dt = st(!1); + const at = "void-message-2"; + let dt = st(!1); + Wr(() => { + const bt = localStorage.getItem(at); + Mt.data && !bt && (se(dt, !0), localStorage.setItem(at, "true")); + }); + let yt = st(!1), + xt = st(bi(yi.url)), + St = st(bi({ cityId: 0, countryId: 1, id: 0, name: "None", number: 1 })), + wt = st(!1); + const _t = "view-rules"; + let Lt = !1; + Wr(() => { + Mt.data && + (!Lt && + Mt.data.pixelsPainted > 1 && + (localStorage.getItem(_t) || + (se(wt, !0), localStorage.setItem(_t, "true"))), + (Lt = !0)); + }); + let Rt = st(!1); + Wr(() => { + var bt; + se(Rt, !!((bt = Mt.data) != null && bt.needsPhoneVerification)); + }); + let $t = st([]), + tr = ft(() => (x(X) < z ? "1.0" : x(X) < z + 2 ? "0.5" : "0.3")); + Wr(() => { + var Xt; + const bt = (Xt = Mt.data) == null ? void 0 : Xt.favoriteLocations; + if (bt && x(O)) { + for (const Br of ul(() => x($t))) Br.remove(); + se( + $t, + bt.map((Br) => { + const xn = document.createElement("div"); + xn.classList.add("text-yellow-400"), + xn.classList.add("cursor-pointer"), + xn.classList.add("z-10"), + (xn.innerHTML = ` + + + `); + const On = { lat: Br.latitude, lng: Br.longitude }; + return ( + xn.addEventListener("click", (Vn) => { + Vn.stopPropagation(), Qt([Br.latitude, Br.longitude]); + }), + new qd.Marker({ element: xn, opacity: x(tr) }) + .setLngLat(On) + .addTo(x(O)) + ); + }) + ); + } + }); + function Qt(bt) { + var Br; + const Xt = { lat: bt[0], lng: bt[1] }; + (Br = x(O)) == null || Br.flyTo({ center: Xt, zoom: Math.max(x(X), 15) }), + Co(Xt, x(X)), + se(fe, { name: "pixelSelected", latLon: [Xt.lat, Xt.lng] }, !0); + } + Wr(() => { + if (x(fe).name === "paintingPixel") + for (const bt of x($t)) bt.addClassName("hidden"); + else + for (const bt of x($t)) + bt.removeClassName("hidden"), bt.setOpacity(x(tr)); + }); + let Ot = Number.MAX_VALUE; + Wr(() => { + if (Mt.charges !== void 0 && Mt.data) { + const bt = Mt.data.charges.max, + Xt = Mt.charges; + Ot < bt && Xt >= bt && aa.notification1.play(), (Ot = Mt.charges); + } + }); + let Nt = st(!1), + or = Date.now(); + Fn(() => { + const bt = g4(), + Xt = () => { + var xn; + if (!document.hidden && Date.now() - or > 30 * gc.min) { + if (bt) { + const Yn = (xn = x(O)) == null ? void 0 : xn.getCenter(); + Yn && Co(Yn, x(X)), window.location.replace(yi.url.origin); + } else Mt.refresh(); + or = Date.now(); + } + }; + return ( + document.addEventListener("visibilitychange", Xt), + () => document.removeEventListener("visibilitychange", Xt) + ); + }), + Fn(() => { + function bt() { + Qr.online = !0; + } + window.addEventListener("online", bt); + function Xt() { + Qr.online = !1; + } + return ( + window.addEventListener("offline", Xt), + () => { + window.removeEventListener("online", bt), + window.removeEventListener("offline", Xt); + } + ); + }), + Wr(() => { + if (!Qr.online) { + const bt = setInterval(() => { + Qr.health().then(() => { + (Qr.online = !0), !Mt.data && !Mt.loading && Mt.refresh(); + }); + }, 5e3); + return () => { + clearInterval(bt); + }; + } + }), + Fn(() => { + function bt(Xt) { + Xt.data.type && x(O) && Fe(x(O)); + } + return ( + navigator.serviceWorker.addEventListener("message", bt), + () => { + navigator.serviceWorker.removeEventListener("message", bt); + } + ); + }); + let cr = st(!1), + Vr = st("report-user"), + mr = st(void 0), + hr = st(void 0), + _r = st(void 0), + Ir = st(0); + var qr = wB(); + nx((bt) => { + var Xt = B9(); + (rx.title = "FurryPlace - Paint the world"), yn(6), $(bt, Xt); + }); + var ue = Ct(qr); + { + const bt = (sr) => { + var Ut = O9(); + Ut.__click = [F9, et]; + var $r = A(Ut); + { + let lr = ft(() => !x(et)); + G0($r, { + class: "size-5", + get filled() { + return x(lr); + }, + }); + } + k(Ut), + We( + (lr) => { + Tr(Ut, "title", lr), + zr( + Ut, + 1, + Yo({ + "btn btn-lg btn-square sm:btn-xl z-30 shadow-md": !0, + "text-base-content/80": x(et), + "btn-primary btn-soft": !x(et), + }) + ); + }, + [() => $v()] + ), + $(sr, Ut); + }, + Xt = (sr) => { + var Ut = V9(); + Ut.__click = [N9, Ue, X, O]; + var $r = A(Ut); + { + var lr = (an) => { + P9(an, { class: "size-5.5 fill-blue-800" }); + }, + Tn = (an) => { + var Cn = j9(), + Gn = A(Cn); + C9(Gn, { class: "size-5.5 fill-red-400" }), + yn(2), + k(Cn), + $(an, Cn); + }; + Oe($r, (an) => { + x(Ue) ? an(lr) : an(Tn, !1); + }); + } + k(Ut), We((an) => Tr(Ut, "title", an), [() => Lb()]), $(sr, Ut); + }; + var V = j(A(ue), 2); + let Br; + var U = A(V); + let xn; + var Y = A(U); + { + var ie = (sr) => { + var Ut = Z9(); + Ut.__click = [q9, ze, O, X]; + var $r = A(Ut, !0); + k(Ut), We((lr) => de($r, lr), [() => Jx()]), $(sr, Ut); + }, + pe = (sr) => { + var Ut = er(), + $r = Ct(Ut); + { + var lr = (Tn) => { + var an = $9(), + Cn = A(an); + { + var Gn = (Mn) => { + var bn = U9(), + cn = A(bn); + { + var Sn = (vn) => { + var fn = wi("MOD"); + $(vn, fn); + }, + kn = (vn) => { + var fn = er(), + on = Ct(fn); + { + var po = (Hn) => { + var jn = wi("GM"); + $(Hn, jn); + }, + fi = (Hn) => { + var jn = wi("ADMIN"); + $(Hn, jn); + }; + Oe( + on, + (Hn) => { + var jn; + ((jn = Mt.data) == null ? void 0 : jn.role) === + "global_moderator" + ? Hn(po) + : Hn(fi, !1); + }, + !0 + ); + } + $(vn, fn); + }; + Oe(cn, (vn) => { + var fn; + ((fn = Mt.data) == null ? void 0 : fn.role) === + "moderator" + ? vn(Sn) + : vn(kn, !1); + }); + } + k(bn), + We(() => { + var vn; + return Tr( + bn, + "href", + ((vn = Mt.data) == null ? void 0 : vn.role) === "admin" + ? `${yi.url.origin}/admin` + : `${yi.url.origin}/moderation` + ); + }), + $(Mn, bn); + }; + Oe(Cn, (Mn) => { + var bn; + xc((bn = Mt.data) == null ? void 0 : bn.role, [ + "admin", + "moderator", + "global_moderator", + ]) && Mn(Gn); + }); + } + var Mr = j(Cn, 2); + PR(Mr, { + get user() { + return Mt; + }, + onlogout: () => { + se(fe, { name: "mainMenu" }, !0); + }, + }), + k(an), + Ai( + 3, + an, + () => ia, + () => ({ duration: 150 }) + ), + $(Tn, an); + }; + Oe( + $r, + (Tn) => { + Mt.data && x(O) && x(fe).name !== "paintingPixel" && Tn(lr); + }, + !0 + ); + } + $(sr, Ut); + }; + Oe(Y, (sr) => { + !Mt.loading && !Mt.data ? sr(ie) : sr(pe, !1); + }); + } + var Se = j(Y, 2); + { + var Me = (sr) => { + var Ut = J9(), + $r = A(Ut); + { + var lr = (Mr) => { + jf(Mr, { + key: "shop-profile-picture", + children: (Mn, bn) => { + var cn = H9(); + cn.__click = [G9, je, O, X]; + var Sn = A(cn); + Y0(Sn, { class: "size-5" }), + k(cn), + We((kn) => Tr(cn, "title", kn), [() => Zv()]), + $(Mn, cn); + }, + $$slots: { default: !0 }, + }); + }; + Oe($r, (Mr) => { + Mt.data && Mr(lr); + }); + } + var Tn = j($r, 2); + { + var an = (Mr) => { + var Mn = X9(); + Mn.__click = [W9, It]; + var bn = A(Mn); + xp(bn, { class: "size-5" }), + k(Mn), + We((cn) => Tr(Mn, "title", cn), [() => _p()]), + $(Mr, Mn); + }; + Oe(Tn, (Mr) => { + Mt.data && Mr(an); + }); + } + var Cn = j(Tn, 2); + LR(Cn, { + get map() { + return x(O); + }, + get season() { + return s; + }, + }); + var Gn = j(Cn, 2); + jf(Gn, { + key: "region-leaderboard", + children: (Mr, Mn) => { + var bn = K9(); + bn.__click = [Y9, pt]; + var cn = A(bn); + I0(cn, { class: "size-5" }), + k(bn), + We((Sn) => Tr(bn, "title", Sn), [() => Bm()]), + $(Mr, bn); + }, + $$slots: { default: !0 }, + }), + k(Ut), + Ai( + 3, + Ut, + () => ia, + () => ({ duration: 150 }) + ), + $(sr, Ut); + }, + we = (sr) => { + var Ut = er(), + $r = Ct(Ut); + { + var lr = (Tn) => { + var an = eB(), + Cn = A(an); + let Gn; + Cn.__click = [Q9, K]; + var Mr = A(Cn); + { + var Mn = (cn) => { + Pm(cn, { class: "size-5" }); + }, + bn = (cn) => { + np(cn, { class: "size-5" }); + }; + Oe(Mr, (cn) => { + x(K) ? cn(Mn) : cn(bn, !1); + }); + } + k(Cn), + k(an), + We( + (cn, Sn) => { + Tr(Cn, "title", cn), + (Gn = zr( + Cn, + 1, + "btn btn-square not-touchscreen:hidden shadow-md", + null, + Gn, + Sn + )); + }, + [() => (x(K) ? sb() : ub()), () => ({ "btn-primary": x(K) })] + ), + Ai( + 1, + an, + () => ia, + () => ({ delay: 150, duration: 150 }) + ), + $(Tn, an); + }; + Oe( + $r, + (Tn) => { + x(O) && x(fe).name === "paintingPixel" && Tn(lr); + }, + !0 + ); + } + $(sr, Ut); + }; + Oe(Se, (sr) => { + x(O) && x(fe).name !== "paintingPixel" ? sr(Me) : sr(we, !1); + }); + } + k(U), k(V); + var Ve = j(V, 2); + { + var ut = (sr) => { + var Ut = tB(), + $r = A(Ut); + { + let lr = ft(() => _x.trim()); + Vx($r, { + get siteKey() { + return x(lr); + }, + refreshExpired: "auto", + appearance: "interaction-only", + callback: (Tn) => { + ai.captcha = { token: Tn, time: Date.now() }; + }, + }); + } + k(Ut), + Ai( + 2, + Ut, + () => ia, + () => ({ duration: 300 }) + ), + $(sr, Ut); + }; + Oe(Ve, (sr) => { + mx && (!ai.captcha || ai.now - ai.captcha.time > 180 * 1e3) && sr(ut); + }); + } + var Ke = j(Ve, 2); + let On; + var kt = A(Ke); + { + var ye = (sr) => { + jf(sr, { + key: "info", + children: (Ut, $r) => { + var lr = nB(); + lr.__click = [rB, ct]; + var Tn = A(lr); + w9(Tn, { class: "size-3.5" }), + k(lr), + We((an) => Tr(lr, "title", an), [() => pb()]), + $(Ut, lr); + }, + $$slots: { default: !0 }, + }); + }; + Oe(kt, (sr) => { + x(fe).name !== "paintingPixel" && sr(ye); + }); + } + var Bt = j(kt, 2), + rr = A(Bt); + rr.__click = [iB, O]; + var Kt = j(rr, 2); + (Kt.__click = [aB, O]), k(Bt); + var gr = j(Bt, 2), + Ur = A(gr), + nn = A(Ur); + Vv(nn, { class: "size-4" }), k(Ur), k(gr); + var mn = j(gr, 2); + { + var _n = (sr) => { + var Ut = sB(); + Ut.__click = [oB, fe]; + var $r = A(Ut); + Gu($r, { class: "size-4" }), k(Ut), $(sr, Ut); + }; + Oe(mn, (sr) => { + var Ut, $r; + x(fe).name !== "paintingPixel" && + (((Ut = Mt.data) == null ? void 0 : Ut.role) === "admin" || + (($r = Mt.data) == null ? void 0 : $r.role) === + "global_moderator") && + sr(_n); + }); + } + var Vt = j(mn, 2); + { + var Et = (sr) => { + var Ut = lB(), + $r = A(Ut); + z9($r, { + class: "size-4", + onclick: () => { + se(H, !x(H)); + }, + }), + k(Ut), + We((lr) => Tr(Ut, "title", lr), [() => rw()]), + $(sr, Ut); + }; + Oe(Vt, (sr) => { + x(ne) && sr(Et); + }); + } + var dr = j(Vt, 2); + { + var ht = (sr) => { + var Ut = uB(); + Ut.__click = [cB]; + var $r = A(Ut); + Zx($r, { class: "size-3" }), + k(Ut), + We((lr) => Tr(Ut, "title", lr), [() => $x()]), + $(sr, Ut); + }; + Oe(dr, (sr) => { + x(fe).name !== "paintingPixel" && sr(ht); + }); + } + var Xr = j(dr, 2); + { + var Yr = (sr) => { + var Ut = dB(); + Ut.__click = [hB, O]; + var $r = A(Ut); + A9($r, { class: "size-3" }), + k(Ut), + We( + (lr, Tn) => { + Tr(Ut, "title", lr), (Ut.disabled = Tn); + }, + [() => wb(), () => !hl.hasPrev()] + ), + Ai( + 1, + Ut, + () => ia, + () => ({ delay: 1e3, duration: 300 }) + ), + Ai( + 2, + Ut, + () => ia, + () => ({ duration: 300 }) + ), + $(sr, Ut); + }; + Oe(Xr, (sr) => { + hl.hasPrev() && x(fe).name !== "paintingPixel" && sr(Yr); + }); + } + k(Ke); + var Zr = j(Ke, 2); + let Yn; + var mt = A(Zr); + { + var He = (sr) => { + var Ut = pB(), + $r = A(Ut); + Ux($r, { class: "size-5" }); + var lr = j($r); + k(Ut), + We((Tn) => de(lr, ` ${Tn ?? ""}`), [() => Sb()]), + Ai( + 1, + Ut, + () => ia, + () => ({ duration: 1e3 }) + ), + Ai(2, Ut, () => ia), + $(sr, Ut); + }; + Oe(mt, (sr) => { + Qr.online || sr(He); + }); + } + var At = j(mt, 2); + { + var Ft = (sr) => { + var Ut = mB(); + Ut.__click = [fB, O, p]; + var $r = A(Ut); + M9($r, { class: "size-5" }); + var lr = j($r); + k(Ut), + We((Tn) => de(lr, ` ${Tn ?? ""}`), [() => Mb()]), + Ai( + 3, + Ut, + () => ia, + () => ({ duration: 300 }) + ), + $(sr, Ut); + }; + Oe(At, (sr) => { + x(X) < z && sr(Ft); + }); + } + k(Zr); + var Jt = j(Zr, 2); + let Vn; + var Cr = A(Jt); + bt(Cr), k(Jt); + var Er = j(Jt, 2); + let wn; + var ur = A(Er); + { + var rn = (sr) => { + k0(sr, { + class: "z-30", + onclick: () => { + var Ut; + (Ut = Mt.data) != null && Ut.needsPhoneVerification + ? (se(Rt, !0), Fr.warning(Yg())) + : Mt.charges !== void 0 && Mt.charges < 1 + ? Fr.warning(RE, { icon: Xf }) + : x(O) && Mt.data + ? (aa.smallDropplet.play(), + se(fe, { name: "paintingPixel" }, !0)) + : (se(ze, !0), x(O) && Co(x(O).getCenter(), x(X))); + }, + get disabled() { + return Mt.loading; + }, + get loading() { + return Mt.loading; + }, + get charges() { + return Mt.charges; + }, + }); + }, + pn = (sr) => { + var Ut = _B(); + $(sr, Ut); + }; + Oe(ur, (sr) => { + x(fe).name === "mainMenu" ? sr(rn) : sr(pn, !1); + }); + } + k(Er); + var gn = j(Er, 2); + let Ji; + var ln = A(gn); + Xt(ln), k(gn); + var En = j(gn, 2); + { + var pr = (sr) => { + var Ut = er(), + $r = Ct(Ut); + { + var lr = (an) => { + var Cn = gB(), + Gn = A(Cn), + Mr = A(Gn); + S7(Mr, { + get latLon() { + return x(fe).latLon; + }, + get map() { + return x(O); + }, + get crosshair() { + return x(he); + }, + get pixelInfoCache() { + return B; + }, + get season() { + return s; + }, + get tileSize() { + return y; + }, + get pixelArtZoom() { + return p; + }, + get zoom() { + return x(X); + }, + get opaquePixelArt() { + return x(et); + }, + onclose: () => se(fe, { name: "mainMenu" }, !0), + onclickshare: (Mn) => { + se(xt, Mn, !0), se(yt, !0); + }, + onclickpaint: ([Mn, bn]) => { + var Sn, kn, vn; + if (!Mt.data) { + se(ze, !0); + return; + } + if ((Sn = Mt.data) != null && Sn.needsPhoneVerification) { + se(Rt, !0), Fr.warning(Yg()); + return; + } + if (Mt.charges !== void 0 && Mt.charges < 1) { + Fr.warning(Bb()); + return; + } + const cn = qm(M.latLonToPixelBoundsLatLon(Mn, bn, p)); + (kn = x(O)) == null || + kn.flyTo({ center: { lat: cn[0], lon: cn[1] } }), + se( + fe, + { name: "paintingPixel", clickedLatLon: [Mn, bn] }, + !0 + ), + (vn = x(he)) == null || vn.clear(); + }, + onclickregion: (Mn) => { + se(St, Mn, !0), se(Dt, !0); + }, + onclickmodaction: (Mn, bn, cn, Sn) => { + var vn, fn, on; + (vn = x(O)) == null || vn.setZoom(Math.max(x(X), p + 3.5)); + const kn = M.latLonToPixelBoundsLatLon(cn[0], cn[1], p); + (fn = x(O)) == null || + fn.setCenter({ + lat: kn.min[0], + lng: (kn.max[1] + kn.min[1]) / 2, + }), + se(mr, bn, !0), + se(hr, Mn, !0), + se(_r, cn, !0), + se( + Ir, + ((on = x(O)) == null ? void 0 : on.getZoom()) ?? 0, + !0 + ), + se(Vr, Sn, !0), + se(cr, !0); + }, + }), + k(Gn), + k(Cn), + Ai( + 3, + Gn, + () => Hd, + () => ({ duration: 100 }) + ), + $(an, Cn); + }, + Tn = (an) => { + var Cn = er(), + Gn = Ct(Cn); + { + var Mr = (bn) => { + var cn = vB(), + Sn = A(cn), + kn = A(Sn); + YL(kn, { + get map() { + return x(O); + }, + get clickedLatLon() { + return x(fe).clickedLatLon; + }, + get tileSize() { + return y; + }, + get tileZoom() { + return p; + }, + get season() { + return s; + }, + get zoom() { + return x(X); + }, + get crosshair() { + return x(oe); + }, + refreshPixelArt: () => x(O) && Fe(x(O)), + hidePixelHover: Le, + hoverLayerId: $e, + onclose: () => { + se(fe, { name: "mainMenu" }, !0), Le(); + }, + get screenLocked() { + return x(K); + }, + set screenLocked(vn) { + se(K, vn, !0); + }, + get opaquePixelArt() { + return x(et); + }, + set opaquePixelArt(vn) { + se(et, vn, !0); + }, + }), + k(Sn), + k(cn), + Ai( + 3, + Sn, + () => Hd, + () => ({ duration: 100 }) + ), + $(bn, cn); + }, + Mn = (bn) => { + var cn = er(), + Sn = Ct(cn); + { + var kn = (fn) => { + var on = yB(), + po = A(on); + B7(po, { + get map() { + return x(O); + }, + get tileSize() { + return y; + }, + get pixelArtZoom() { + return Lf; + }, + get season() { + return s; + }, + get crosshair() { + return x(oe); + }, + onclose: () => { + se(fe, { name: "mainMenu" }, !0), Le(); + }, + }), + k(on), + $(fn, on); + }, + vn = (fn) => { + var on = er(), + po = Ct(on); + { + var fi = (Hn) => { + var jn = bB(), + zn = A(jn), + qa = A(zn), + Rr = A(qa), + Gr = A(Rr), + _a = A(Gr); + H0(_a, { class: "inline size-4" }); + var un = j(_a); + k(Gr); + var Li = j(Gr, 2); + Li.__click = [xB, fe]; + var ga = A(Li); + _l(ga, { class: "size-4" }), k(Li), k(Rr); + var sa = j(Rr, 2), + Ja = A(sa); + Ja.__click = async () => { + var Ca; + if (x(fe).name === "selectHq") { + const Qa = x(fe).hq; + if (Qa) + try { + se(Nt, !0), + await Qr.updateAllianceHeadquarters( + Qa[0], + Qa[1] + ), + (Ca = x(he)) == null || Ca.clear(), + se(It, !0), + se(fe, { name: "mainMenu" }, !0); + } catch (Jo) { + Fr.error(Jo.message); + } finally { + se(Nt, !1); + } + } + }; + var Ms = A(Ja); + x9(Ms, { class: "size-6" }), + k(Ja), + k(sa), + k(qa), + k(zn), + k(jn), + We( + (Ca) => { + de(un, ` ${Ca ?? ""}`), + (Ja.disabled = + x(fe).hq === void 0 || x(Nt)); + }, + [() => OC()] + ), + Ai( + 3, + zn, + () => Hd, + () => ({ duration: 100 }) + ), + $(Hn, jn); + }; + Oe( + po, + (Hn) => { + x(fe).name === "selectHq" && Hn(fi); + }, + !0 + ); + } + $(fn, on); + }; + Oe( + Sn, + (fn) => { + x(fe).name === "getPixelAreaInfo" + ? fn(kn) + : fn(vn, !1); + }, + !0 + ); + } + $(bn, cn); + }; + Oe( + Gn, + (bn) => { + x(fe).name === "paintingPixel" && x(oe) + ? bn(Mr) + : bn(Mn, !1); + }, + !0 + ); + } + $(an, Cn); + }; + Oe($r, (an) => { + x(fe).name === "pixelSelected" && x(he) ? an(lr) : an(Tn, !1); + }); + } + $(sr, Ut); + }; + Oe(En, (sr) => { + x(O) && sr(pr); + }); + } + k(ue), + We( + (sr, Ut, $r, lr, Tn, an, Cn, Gn, Mr) => { + (Br = zr(V, 1, "absolute right-2 top-2 z-30", null, Br, sr)), + (xn = zr(U, 1, "flex flex-col gap-4", null, xn, Ut)), + (On = zr( + Ke, + 1, + "absolute left-2 top-2 z-30 flex flex-col gap-3", + null, + On, + $r + )), + Tr(rr, "title", lr), + Tr(Kt, "title", Tn), + (Yn = zr( + Zr, + 1, + "absolute left-1/2 top-2 z-30 flex -translate-x-1/2 flex-col items-center justify-center gap-2", + null, + Yn, + an + )), + (Vn = zr(Jt, 1, "absolute bottom-3 left-3 z-30", null, Vn, Cn)), + (wn = zr( + Er, + 1, + "absolute bottom-3 left-1/2 z-30 -translate-x-1/2", + null, + wn, + Gn + )), + (Ji = zr(gn, 1, "absolute bottom-3 right-3 z-30", null, Ji, Mr)); + }, + [ + () => ({ hidden: x(H) }), + () => ({ "items-end": !Mt.data, "items-center": Mt.data }), + () => ({ hidden: x(H) }), + () => _b(), + () => yb(), + () => ({ hidden: x(H) }), + () => ({ hidden: x(H) }), + () => ({ hidden: x(H) }), + () => ({ hidden: x(H) }), + ] + ); + } + var In = j(ue, 2); + AE(In, { + get open() { + return x(ze); + }, + set open(bt) { + se(ze, bt, !0); + }, + }); + var tn = j(In, 2); + v9(tn, { + get open() { + return x(je); + }, + set open(bt) { + se(je, bt, !0); + }, + }); + var en = j(tn, 2); + v6(en, { + get open() { + return x(it); + }, + set open(bt) { + se(it, bt, !0); + }, + }); + var ma = j(en, 2); + B6(ma, { + get open() { + return x(ct); + }, + set open(bt) { + se(ct, bt, !0); + }, + }); + var pi = j(ma, 2); + m6(pi, { + get open() { + return x(wt); + }, + set open(bt) { + se(wt, bt, !0); + }, + }); + var Xi = j(pi, 2); + IE(Xi, { + onvisitclick: (bt) => { + var Xt; + (Xt = x(O)) == null || Xt.flyTo({ center: bt, zoom: Lf + 1 }), + Co(bt, x(X)), + hl.push({ pos: bt, zoom: x(X) }), + se(pt, !1); + }, + get open() { + return x(pt); + }, + set open(bt) { + se(pt, bt, !0); + }, + }); + var Zn = j(Xi, 2); + HR(Zn, { + get region() { + return x(St); + }, + get open() { + return x(Dt); + }, + set open(bt) { + se(Dt, bt, !0); + }, + }); + var ni = j(Zn, 2); + Ox(ni, { + get open() { + return ai.dropletsDialogOpen; + }, + set open(bt) { + ai.dropletsDialogOpen = bt; + }, + }); + var Zi = j(ni, 2); + { + var Yi = (bt) => { + YM(bt, { + onhqchange: () => { + se(fe, { name: "selectHq" }, !0), se(It, !1); + }, + onhqclick: (Xt) => { + var Br; + (Br = x(O)) == null || + Br.flyTo({ center: Xt, zoom: Math.max(x(X), 15) }), + se(fe, { name: "pixelSelected", latLon: [Xt.lat, Xt.lng] }, !0), + se(It, !1); + }, + onlastpixelclick: (Xt) => { + var Br; + (Br = x(O)) == null || + Br.flyTo({ center: Xt, zoom: Math.max(x(X), 15) }), + se(fe, { name: "pixelSelected", latLon: [Xt.lat, Xt.lng] }, !0), + se(It, !1); + }, + get open() { + return x(It); + }, + set open(Xt) { + se(It, Xt, !0); + }, + }); + }; + Oe(Zi, (bt) => { + x(O) && bt(Yi); + }); + } + var Ei = j(Zi, 2); + _D(Ei, { + get open() { + return x(Rt); + }, + set open(bt) { + se(Rt, bt, !0); + }, + }); + var zi = j(Ei, 2); + { + var Ki = (bt) => { + l6(bt, { + get url() { + return x(xt); + }, + get map() { + return x(O); + }, + hideHover: () => { + var Xt, Br; + (Xt = x(O)) == null || Xt.setPaintProperty($e, "raster-opacity", 0), + (Br = x(he)) == null || Br.setCanvasOpacity(0); + }, + showHover: () => { + var Xt, Br; + (Xt = x(O)) == null || Xt.setPaintProperty($e, "raster-opacity", Ze), + (Br = x(he)) == null || Br.setCanvasOpacity(1); + }, + get open() { + return x(yt); + }, + set open(Xt) { + se(yt, Xt, !0); + }, + }); + }; + Oe(zi, (bt) => { + x(O) && bt(Ki); + }); + } + var oa = j(zi, 2); + { + var Ta = (bt) => { + Px(bt, { + get image() { + return x(mr); + }, + get paintedBy() { + return x(hr).paintedBy; + }, + get latLon() { + return x(_r); + }, + get zoom() { + return x(Ir); + }, + get action() { + return x(Vr); + }, + get open() { + return x(cr); + }, + set open(Xt) { + se(cr, Xt, !0); + }, + }); + }; + Oe(oa, (bt) => { + x(hr) && x(mr) && x(_r) && bt(Ta); + }); + } + $(m, qr), Dr(); +} +$n(["click"]); +export { uF as component }; diff --git a/frontend-backup/_app/immutable/nodes/4.DB4WphWP.js b/frontend-backup/_app/immutable/nodes/4.DB4WphWP.js new file mode 100644 index 0000000..ee450fd --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/4.DB4WphWP.js @@ -0,0 +1,781 @@ +var $1=Object.defineProperty;var $g=m=>{throw TypeError(m)};var G1=(m,a,p)=>a in m?$1(m,a,{enumerable:!0,configurable:!0,writable:!0,value:p}):m[a]=p;var yr=(m,a,p)=>G1(m,typeof a!="symbol"?a+"":a,p),zf=(m,a,p)=>a.has(m)||$g("Cannot "+p);var at=(m,a,p)=>(zf(m,a,"read from private field"),p?p.call(m):a.get(m)),Ar=(m,a,p)=>a.has(m)?$g("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(m):a.set(m,p),na=(m,a,p,y)=>(zf(m,a,"write to private field"),y?y.call(m,p):a.set(m,p),p),jr=(m,a,p)=>(zf(m,a,"access private method"),p);import"../chunks/eWGjsHWS.js";import{o as Fn,s as oi}from"../chunks/C7Eza_iV.js";import{a1 as H1,b8 as W1,bp as X1,ba as Y1,bq as K1,b3 as J1,br as Q1,au as st,g as x,aw as se,av as bi,at as $n,p as Lr,f as Te,d as A,r as k,s as V,u as pt,n as vn,t as We,ax as di,b as $,c as Dr,y as Hr,v as Sr,bn as Nu,x as Mm,z as ul,ay as Qt,a as Ct,b4 as wi,aI as ex,aH as Gg,aJ as tx,aL as Iv,bs as uo,az as pa,bt as Mv,$ as rx}from"../chunks/Cp2nYQu0.js";import{s as de}from"../chunks/BNRHrDsD.js";import{p as Lt,i as Ne,r as rr,s as Is,u as kv}from"../chunks/Cpqp1vmU.js";import{h as nx}from"../chunks/BwJYhDht.js";import{r as Ka,f as Ni,a as zr,g as Av,b as ir,s as wr,e as kc,h as Ou,c as Yo}from"../chunks/Ce8MKdB4.js";import{a as ll,k as ju,t as Ai}from"../chunks/uosWZzaS.js";import{g as km,b as ix}from"../chunks/DKHAn3wZ.js";import{p as yi}from"../chunks/DV9-nCbM.js";import{S as Wi,a as Qr,t as Fr,u as Mt,v as So,g as ai,w as ax,x as ox,y as sx,P as lx,z as cx,A as ux,j as hx,B as dx,C as Hg,D as Lf,E as px,F as fx,d as mx,G as _x}from"../chunks/CyIXPQQB.js";import{c as Ev,A as aa,a as Hf,g as Df,p as gx,b as vx}from"../chunks/Bkcd-b_t.js";import{h as Am}from"../chunks/BOGIWsTs.js";import{b as Ko}from"../chunks/C29uIekv.js";import{L as yx}from"../chunks/L8vjeDxW.js";import{g as Ve,l as xx}from"../chunks/DcZIlShl.js";import{c as Ah}from"../chunks/Cb0F7pe6.js";import{d as bx,L as Em,p as zm}from"../chunks/CpqkZ6zO.js";import{c as Wf,D as zv,p as wx,r as Tx,t as Cx,b as Sx,R as Px}from"../chunks/DeBW6Gbm.js";import{e as hi,i as hp}from"../chunks/re32H7hA.js";import{c as Lm,b as dp,a as Ix}from"../chunks/FmeLqAoX.js";import{P as co,t as Lv}from"../chunks/De3UNOhq.js";import{l as Mx,p as Dm,m as Dv,v as kx,s as Ax}from"../chunks/BQI8t4BB.js";import{g as Oi,a as pp,c as Ex,b as zx}from"../chunks/CBsBC6Ub.js";import{f as cl,t as Lx}from"../chunks/CcDxFfeM.js";import{A as Dx,c as Ss}from"../chunks/Cy3DZJWx.js";import{A as Rv,d as Bv,D as Fv,a as fp,r as Rx,I as Wg,e as Bx,c as Fx,P as Ov,b as Ox}from"../chunks/Bcqi99Xv.js";import{f as ia,s as Hd}from"../chunks/BHFxxBat.js";import{C as Rm,G as Xg,c as Nx,T as Xf}from"../chunks/CeZUIGlq.js";import"../chunks/CfFUN4Z3.js";import{i as Nv}from"../chunks/DZ6yarur.js";import{L as jv}from"../chunks/BD43Ca7B.js";import{c as xi}from"../chunks/CLi1yBm0.js";import{L as jx,T as Vv,a as Vx}from"../chunks/B_LoXNWD.js";import{_ as qx}from"../chunks/B6eLJOiY.js";import{c as qv}from"../chunks/BV74CxeL.js";import{R as Zx}from"../chunks/CWuH4SsR.js";import{W as Ux}from"../chunks/NOyaXYee.js";import{r as $x}from"../chunks/COhuejkh.js";(function(){try{var m=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};m.SENTRY_RELEASE={id:"fe77e0a32f22395333b3f54fb7a95ef6936c7140"}}catch{}})();try{(function(){var m=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new m.Error().stack;a&&(m._sentryDebugIds=m._sentryDebugIds||{},m._sentryDebugIds[a]="1d1052fa-3dff-44f8-a878-8349605644f4",m._sentryDebugIdIdentifier="sentry-dbid-1d1052fa-3dff-44f8-a878-8349605644f4")})()}catch{}const Gx=[];function Hx(m,a=!1,p=!1){return Wd(m,new Map,"",Gx,null,p)}function Wd(m,a,p,y,M=null,z=!1){if(typeof m=="object"&&m!==null){var T=a.get(m);if(T!==void 0)return T;if(m instanceof Map)return new Map(m);if(m instanceof Set)return new Set(m);if(H1(m)){var s=Array(m.length);a.set(m,s),M!==null&&a.set(M,s);for(var B=0;BJ1(()=>a(window[m])))}const Xx=Q1,Yx=()=>"Log in",Kx=()=>"Entrar",Jx=(m={},a={})=>(a.locale??Ve())==="en"?Yx():Kx(),Qx=()=>"Store",eb=()=>"Loja",Zv=(m={},a={})=>(a.locale??Ve())==="en"?Qx():eb(),tb=()=>"Alliance",rb=()=>"Aliança",_p=(m={},a={})=>(a.locale??Ve())==="en"?tb():rb(),nb=()=>"Leaderboard",ib=()=>"Ranking",Bm=(m={},a={})=>(a.locale??Ve())==="en"?nb():ib(),ab=()=>"Unlock",ob=()=>"Destravar",sb=(m={},a={})=>(a.locale??Ve())==="en"?ab():ob(),lb=()=>"Lock",cb=()=>"Travar",ub=(m={},a={})=>(a.locale??Ve())==="en"?lb():cb(),hb=()=>"Info",db=()=>"Informações",pb=(m={},a={})=>(a.locale??Ve())==="en"?hb():db(),fb=()=>"Zoom in",mb=()=>"Aumentar zoom",_b=(m={},a={})=>(a.locale??Ve())==="en"?fb():mb(),gb=()=>"Zoom out",vb=()=>"Diminuir zoom",yb=(m={},a={})=>(a.locale??Ve())==="en"?gb():vb(),xb=()=>"Previous location",bb=()=>"Localização anterior",wb=(m={},a={})=>(a.locale??Ve())==="en"?xb():bb(),Tb=()=>"Offline",Cb=()=>"Offline",Sb=(m={},a={})=>(a.locale??Ve())==="en"?Tb():Cb(),Pb=()=>"Zoom in to see the pixels",Ib=()=>"Amplie para ver os pixels",Mb=(m={},a={})=>(a.locale??Ve())==="en"?Pb():Ib(),kb=()=>"Phone verification required",Ab=()=>"Verificação de telefone necessária",Yg=(m={},a={})=>(a.locale??Ve())==="en"?kb():Ab(),Eb=()=>"My location",zb=()=>"Minha localização",Lb=(m={},a={})=>(a.locale??Ve())==="en"?Eb():zb(),Db=()=>"You don't have charges to paint. Wait to recharge.",Rb=()=>"Você não possui tinta para pintar. Aguarde para carrega-las.",Bb=(m={},a={})=>(a.locale??Ve())==="en"?Db():Rb(),Fb=()=>"Map powered by:",Ob=()=>"Mapa fornecido por:",Nb=(m={},a={})=>(a.locale??Ve())==="en"?Fb():Ob(),jb=()=>"OpenMapTiles Data from",Vb=()=>"OpenMapTiles com dados do",qb=(m={},a={})=>(a.locale??Ve())==="en"?jb():Vb(),Zb=()=>"Feedback and bugs",Ub=()=>"Feedback e bugs",$b=(m={},a={})=>(a.locale??Ve())==="en"?Zb():Ub(),Gb=()=>"Overview",Hb=()=>"Visão Geral",Wb=(m={},a={})=>(a.locale??Ve())==="en"?Gb():Hb(),Xb=()=>"How to paint faster",Yb=()=>"Como pintar mais rápido",Kb=(m={},a={})=>(a.locale??Ve())==="en"?Xb():Yb(),Jb=()=>"When painting, click on the button",Qb=()=>"Quando pintar clique no botão",e2=(m={},a={})=>(a.locale??Ve())==="en"?Jb():Qb(),t2=()=>"on the top right corner of the screen. This will lock the screen but it'll also enable painting by moving your finger over the map.",r2=()=>"no canto superior direito da tela. Isso bloqueará a tela, mas também permitirá pintar movendo o dedo sobre o mapa.",n2=(m={},a={})=>(a.locale??Ve())==="en"?t2():r2(),i2=()=>"Hold",a2=()=>"Segure",o2=(m={},a={})=>(a.locale??Ve())==="en"?i2():a2(),s2=()=>"SPACE",l2=()=>"Espaço",c2=(m={},a={})=>(a.locale??Ve())==="en"?s2():l2(),u2=()=>"and move your cursor over the map.",h2=()=>"e mova seu cursor sobre o mapa.",d2=(m={},a={})=>(a.locale??Ve())==="en"?u2():h2(),p2=()=>"Explore",f2=()=>"Explorar",m2=(m={},a={})=>(a.locale??Ve())==="en"?p2():f2(),_2=()=>"Recharge paint charges",g2=()=>"Recarga de tinta",v2=(m={},a={})=>(a.locale??Ve())==="en"?_2():g2(),y2=()=>"Items",x2=()=>"Itens",b2=(m={},a={})=>(a.locale??Ve())==="en"?y2():x2(),w2=()=>"Get more charges",T2=()=>"Recarregue tinta para pintar",C2=(m={},a={})=>(a.locale??Ve())==="en"?w2():T2(),S2=m=>`+${m.amount} Max. Charges`,P2=m=>`+${m.amount} Tinta máxima`,I2=(m,a={})=>(a.locale??Ve())==="en"?S2(m):P2(m),M2=()=>"Increase your maximum paint charges capacity",k2=()=>"Aumente sua capacidade máxima de tinta",A2=(m={},a={})=>(a.locale??Ve())==="en"?M2():k2(),E2=()=>"Profile picture",z2=()=>"Imagem de perfil",L2=(m={},a={})=>(a.locale??Ve())==="en"?E2():z2(),D2=()=>"Add a new 16x16 profile picture",R2=()=>"Adicionar uma nova imagem de perfil 16x16",B2=(m={},a={})=>(a.locale??Ve())==="en"?D2():R2(),F2=()=>"Not enough droplets",O2=()=>"Droplets insuficientes",gp=(m={},a={})=>(a.locale??Ve())==="en"?F2():O2(),N2=()=>"Show profile",j2=()=>"Exibir perfil",V2=(m={},a={})=>(a.locale??Ve())==="en"?N2():j2(),q2=()=>"Menu",Z2=()=>"Menu",U2=(m={},a={})=>(a.locale??Ve())==="en"?q2():Z2(),$2=m=>`Could not install the app: ${m.error}`,G2=m=>`Não pode instalar o app: ${m.error}`,H2=(m,a={})=>(a.locale??Ve())==="en"?$2(m):G2(m),W2=()=>"Install App",X2=()=>"Instalar App",Y2=(m={},a={})=>(a.locale??Ve())==="en"?W2():X2(),K2=()=>"Livestreams",J2=()=>"Livestreams",Q2=(m={},a={})=>(a.locale??Ve())==="en"?K2():J2(),ew=()=>"Log Out",tw=()=>"Log Out",rw=(m={},a={})=>(a.locale??Ve())==="en"?ew():tw(),nw=()=>"Hide UI",iw=()=>"Esconder UI",aw=(m={},a={})=>(a.locale??Ve())==="en"?nw():iw(),ow=()=>"Change picture:",sw=()=>"Change picture:",lw=(m={},a={})=>(a.locale??Ve())==="en"?ow():sw(),cw=()=>"Show last painted pixel on alliance",uw=()=>"Mostrar último pixel pintado na aliança",hw=(m={},a={})=>(a.locale??Ve())==="en"?cw():uw(),dw=()=>"Delete Account",pw=()=>"Deletar Conta",Yf=(m={},a={})=>(a.locale??Ve())==="en"?dw():pw(),fw=()=>"Are you absolutely sure?",mw=()=>"Você tem certeza absoluta?",_w=(m={},a={})=>(a.locale??Ve())==="en"?fw():mw(),gw=()=>"This will permanently delete your account and all associated data. This action cannot be undone.",vw=()=>"Isso excluirá permanentemente sua conta e todos os dados associados. Esta ação não pode ser desfeita.",yw=(m={},a={})=>(a.locale??Ve())==="en"?gw():vw(),xw=()=>"Profile",bw=()=>"Perfil",ww=(m={},a={})=>(a.locale??Ve())==="en"?xw():bw(),Tw=()=>"Display your country’s flag next to your username. Plus, when painting in regions where you own the corresponding flag, you recover 10% of the charges spent.",Cw=()=>"Exiba a bandeira do seu país ao lado do seu nome de usuário. Além disso, ao pintar em regiões onde você possui a bandeira correspondente, você recupera 10% das tintas gastas.",Sw=(m={},a={})=>(a.locale??Ve())==="en"?Tw():Cw(),Pw=()=>"Does not need to be equipped to provide the bonus",Iw=()=>"Não precisa estar equipada para obter o bônus",Mw=(m={},a={})=>(a.locale??Ve())==="en"?Pw():Iw(),kw=()=>"Equipped",Aw=()=>"Equipado",Ew=(m={},a={})=>(a.locale??Ve())==="en"?kw():Aw(),zw=()=>"Equip",Lw=()=>"Equipar",Dw=(m={},a={})=>(a.locale??Ve())==="en"?zw():Lw(),Rw=()=>"Country",Bw=()=>"País",Uv=(m={},a={})=>(a.locale??Ve())==="en"?Rw():Bw(),Fw=()=>"No country found.",Ow=()=>"País não encontrado.",Nw=(m={},a={})=>(a.locale??Ve())==="en"?Fw():Ow(),jw=()=>"Welcome to",Vw=()=>"Bem vindo ao",qw=(m={},a={})=>(a.locale??Ve())==="en"?jw():Vw(),Zw=()=>"Rules",Uw=()=>"Regras",$w=(m={},a={})=>(a.locale??Ve())==="en"?Zw():Uw(),Gw=()=>"Important",Hw=()=>"Importante",Ww=(m={},a={})=>(a.locale??Ve())==="en"?Gw():Hw(),Xw=()=>"🚫 No inappropriate content (+18, hate speech, inappropriate links, highly suggestive material, ...)",Yw=()=>"🚫 Conteúdo inapropriado não permitido (+18, discurso de ódio, links inapropriados, conteúdo altamente sugestivo, ...)",Kw=(m={},a={})=>(a.locale??Ve())==="en"?Xw():Yw(),Jw=()=>"😈 Do not paint over other artworks using random colors or patterns just to mess things up",Qw=()=>"😈 Não desenhe por cima de outras artes usando cores ou padrões aleatórios só para bagunçar",e5=(m={},a={})=>(a.locale??Ve())==="en"?Jw():Qw(),t5=()=>"🧑‍🤝‍🧑 Do not paint with more than one account",r5=()=>"🧑‍🤝‍🧑 Não desenhe com mais de uma conta",n5=(m={},a={})=>(a.locale??Ve())==="en"?t5():r5(),i5=()=>"🤖 Use of bots is not allowed",a5=()=>"🤖 Usar bots não é permitido",o5=(m={},a={})=>(a.locale??Ve())==="en"?i5():a5(),s5=()=>"🙅 Disclosing other's personal information is not allowed",l5=()=>"🙅 Divulgar informações pessoais dos outros não é permitido",c5=(m={},a={})=>(a.locale??Ve())==="en"?s5():l5(),u5=()=>"✅ Painting over other artworks to complement them or create a new drawing is allowed",h5=()=>"✅ Desenhar sobre outras artes para complementar ou criar novas artes é permitido",d5=(m={},a={})=>(a.locale??Ve())==="en"?u5():h5(),p5=()=>"✅ Griefing political party flags or portraits of politicians is allowed",f5=()=>"✅ Desenhar sobre bandeiras de partidos e retratos de políticos é permitido",m5=(m={},a={})=>(a.locale??Ve())==="en"?p5():f5(),_5=()=>"Violations of these rules may lead to suspension of your account or removal of drawings.",g5=()=>"A violação destas regras pode levar à suspensão da conta ou à remoção de desenhos.",v5=(m={},a={})=>(a.locale??Ve())==="en"?_5():g5(),y5=()=>"Understood",x5=()=>"Entendido",b5=(m={},a={})=>(a.locale??Ve())==="en"?y5():x5(),w5=()=>"Toggle art opacity",T5=()=>"Alterar opacidade",$v=(m={},a={})=>(a.locale??Ve())==="en"?w5():T5(),C5=()=>"Paint",S5=()=>"Pintar",Gv=(m={},a={})=>(a.locale??Ve())==="en"?C5():S5(),P5=()=>"Select a color",I5=()=>"Selecione uma color",M5=(m={},a={})=>(a.locale??Ve())==="en"?P5():I5(),k5=()=>"Select a pixel to erase",A5=()=>"Selecione um pixel para apagar",E5=(m={},a={})=>(a.locale??Ve())==="en"?k5():A5(),z5=()=>"Pick a color from the map",L5=()=>"Escolha uma cor do mapa",D5=(m={},a={})=>(a.locale??Ve())==="en"?z5():L5(),R5=()=>"Click",B5=()=>"Clique",F5=(m={},a={})=>(a.locale??Ve())==="en"?R5():B5(),O5=()=>"SPACE",N5=()=>"ESPAÇO",j5=(m={},a={})=>(a.locale??Ve())==="en"?O5():N5(),V5=()=>"or hold",q5=()=>"ou segure",Z5=(m={},a={})=>(a.locale??Ve())==="en"?V5():q5(),U5=()=>"to paint,",$5=()=>"para pintar",G5=(m={},a={})=>(a.locale??Ve())==="en"?U5():$5(),H5=()=>"You can paint more than 1 pixel",W5=()=>"Você pode pintar mais de 1 pixel",X5=(m={},a={})=>(a.locale??Ve())==="en"?H5():W5(),Y5=()=>"Paint pixel",K5=()=>"Pintar pixel",J5=(m={},a={})=>(a.locale??Ve())==="en"?Y5():K5(),Q5=()=>"Color Picker",e3=()=>"Conta Gotas",t3=(m={},a={})=>(a.locale??Ve())==="en"?Q5():e3(),r3=()=>"+2 max. charge/level",n3=()=>"+2 tinta máxima/level",i3=(m={},a={})=>(a.locale??Ve())==="en"?r3():n3(),a3=()=>"Name",o3=()=>"Nome",Kf=(m={},a={})=>(a.locale??Ve())==="en"?a3():o3(),s3=()=>"Discord Username",l3=()=>"Usuário do Discord",c3=(m={},a={})=>(a.locale??Ve())==="en"?s3():l3(),u3=()=>"Max. Charges",h3=()=>"Tinta máxima",Kg=(m={},a={})=>(a.locale??Ve())==="en"?u3():h3(),d3=()=>"Paint Charges",p3=()=>"Tintas",f3=(m={},a={})=>(a.locale??Ve())==="en"?d3():p3(),m3=m=>`+${m.amount} Paint Charges`,_3=m=>`+${m.amount} Tintas`,g3=(m,a={})=>(a.locale??Ve())==="en"?m3(m):_3(m),v3=()=>"Leave alliance",y3=()=>"Sair da aliança",x3=(m={},a={})=>(a.locale??Ve())==="en"?v3():y3(),b3=()=>"Headquarters",w3=()=>"Quartel General",T3=(m={},a={})=>(a.locale??Ve())==="en"?b3():w3(),C3=()=>"Not set",S3=()=>"Não configurado",P3=(m={},a={})=>(a.locale??Ve())==="en"?C3():S3(),I3=()=>"You are not in an alliance",M3=()=>"Você não está em uma aliança",k3=(m={},a={})=>(a.locale??Ve())==="en"?I3():M3(),A3=()=>"Get invited to an alliance",E3=()=>"Seja convidado para uma aliança",z3=(m={},a={})=>(a.locale??Ve())==="en"?A3():E3(),L3=()=>"OR",D3=()=>"OU",R3=(m={},a={})=>(a.locale??Ve())==="en"?L3():D3(),B3=()=>"Create an alliance",F3=()=>"Crie uma aliança",O3=(m={},a={})=>(a.locale??Ve())==="en"?B3():F3(),N3=()=>"Invite link",j3=()=>"Link de convite",V3=(m={},a={})=>(a.locale??Ve())==="en"?N3():j3(),q3=()=>"Send the link below to everybody you want to invite to the alliance",Z3=()=>"Envie o link abaixo para quem você deseja convidar para a aliança",U3=(m={},a={})=>(a.locale??Ve())==="en"?q3():Z3(),$3=()=>"Copied",G3=()=>"Copiado",Fm=(m={},a={})=>(a.locale??Ve())==="en"?$3():G3(),H3=()=>"No description",W3=()=>"Sem descrição",Hv=(m={},a={})=>(a.locale??Ve())==="en"?H3():W3(),X3=()=>"Invite",Y3=()=>"Convite",K3=(m={},a={})=>(a.locale??Ve())==="en"?X3():Y3(),J3=()=>"No pixels painted",Q3=()=>"Nenhum pixel pintado",Om=(m={},a={})=>(a.locale??Ve())==="en"?J3():Q3(),eT=()=>"Today",tT=()=>"Hoje",vp=(m={},a={})=>(a.locale??Ve())==="en"?eT():tT(),rT=()=>"Week",nT=()=>"Semana",iT=(m={},a={})=>(a.locale??Ve())==="en"?rT():nT(),aT=()=>"Month",oT=()=>"Mês",sT=(m={},a={})=>(a.locale??Ve())==="en"?aT():oT(),lT=()=>"All time",cT=()=>"Geral",uT=(m={},a={})=>(a.locale??Ve())==="en"?lT():cT(),hT=()=>"this week",dT=()=>"nesta semana",Nm=(m={},a={})=>(a.locale??Ve())==="en"?hT():dT(),pT=()=>"this month",fT=()=>"neste mês",jm=(m={},a={})=>(a.locale??Ve())==="en"?pT():fT(),mT=()=>"Create alliance",_T=()=>"Criar aliança",gT=(m={},a={})=>(a.locale??Ve())==="en"?mT():_T(),vT=()=>"Alliance Name",yT=()=>"Nome da aliança",xT=(m={},a={})=>(a.locale??Ve())==="en"?vT():yT(),bT=()=>"Create",wT=()=>"Criar",TT=(m={},a={})=>(a.locale??Ve())==="en"?bT():wT(),CT=()=>"Give admin",ST=()=>"Tornar admin",PT=(m={},a={})=>(a.locale??Ve())==="en"?CT():ST(),IT=()=>"Ban from alliance",MT=()=>"Banir da aliança",Wv=(m={},a={})=>(a.locale??Ve())==="en"?IT():MT(),kT=()=>"No action",AT=()=>"Sem opção",ET=(m={},a={})=>(a.locale??Ve())==="en"?kT():AT(),zT=()=>"Unban",LT=()=>"Desbanir",DT=(m={},a={})=>(a.locale??Ve())==="en"?zT():LT(),RT=()=>"No banned users",BT=()=>"Sem usuários banidos",FT=(m={},a={})=>(a.locale??Ve())==="en"?RT():BT(),OT=()=>"Update",NT=()=>"Atualizar",jT=(m={},a={})=>(a.locale??Ve())==="en"?OT():NT(),VT=()=>"Error giving admin to user",qT=()=>"Erro ao tornar usuário admin",ZT=(m={},a={})=>(a.locale??Ve())==="en"?VT():qT(),UT=()=>"Users",$T=()=>"Usuários",GT=(m={},a={})=>(a.locale??Ve())==="en"?UT():$T(),HT=()=>"Banned",WT=()=>"Banido",Xv=(m={},a={})=>(a.locale??Ve())==="en"?HT():WT(),XT=()=>"Regions",YT=()=>"Regiões",KT=(m={},a={})=>(a.locale??Ve())==="en"?XT():YT(),JT=()=>"Countries",QT=()=>"Países",eC=(m={},a={})=>(a.locale??Ve())==="en"?JT():QT(),tC=()=>"Players",rC=()=>"Jogadores",Yv=(m={},a={})=>(a.locale??Ve())==="en"?tC():rC(),nC=()=>"Alliances",iC=()=>"Alianças",Kv=(m={},a={})=>(a.locale??Ve())==="en"?nC():iC(),aC=()=>"Region",oC=()=>"Região",sC=(m={},a={})=>(a.locale??Ve())==="en"?aC():oC(),lC=()=>"Pixels",cC=()=>"Pixels",vc=(m={},a={})=>(a.locale??Ve())==="en"?lC():cC(),uC=()=>"Painted",hC=()=>"Pintados",yc=(m={},a={})=>(a.locale??Ve())==="en"?uC():hC(),dC=()=>"Pixels painted inside the region",pC=()=>"Pixels pintados dentro da região",fC=(m={},a={})=>(a.locale??Ve())==="en"?dC():pC(),mC=()=>"Not painted",_C=()=>"Não pintado",gC=(m={},a={})=>(a.locale??Ve())==="en"?mC():_C(),vC=()=>"Painted by",yC=()=>"Pintado por",xC=(m={},a={})=>(a.locale??Ve())==="en"?vC():yC(),bC=()=>"Limit reached",wC=()=>"Limite atingido",TC=(m={},a={})=>(a.locale??Ve())==="en"?bC():wC(),CC=()=>"Favorite",SC=()=>"Favoritar",PC=(m={},a={})=>(a.locale??Ve())==="en"?CC():SC(),IC=()=>"Share",MC=()=>"Compartilhar",kC=(m={},a={})=>(a.locale??Ve())==="en"?IC():MC(),AC=()=>"Share place",EC=()=>"Compartilhar local",zC=(m={},a={})=>(a.locale??Ve())==="en"?AC():EC(),LC=()=>"Mute",DC=()=>"Mutar",RC=(m={},a={})=>(a.locale??Ve())==="en"?LC():DC(),BC=()=>"Unmute",FC=()=>"Desmutar",OC=(m={},a={})=>(a.locale??Ve())==="en"?BC():FC(),NC=()=>"Select the headquarters location",jC=()=>"Selecione a localização do quartel general",VC=(m={},a={})=>(a.locale??Ve())==="en"?NC():jC(),qC=()=>"Pixels painted inside the country",ZC=()=>"Pixels pintados dentro do país",UC=(m={},a={})=>(a.locale??Ve())==="en"?qC():ZC(),$C=()=>"Username copied to clipboard",GC=()=>"Usuário copiado",HC=(m={},a={})=>(a.locale??Ve())==="en"?$C():GC(),WC=()=>"No more charges",XC=()=>"Acabou a tinta",YC=(m={},a={})=>(a.locale??Ve())==="en"?WC():XC(),KC=()=>"You are not allowed to use multiple accounts. Use your main account to paint.",JC=()=>"Não é permitido usar várias contas. Use sua conta principal para pintar.",QC=(m={},a={})=>(a.locale??Ve())==="en"?KC():JC(),eS=()=>"SMS sent to",tS=()=>"SMS enviado para",rS=(m={},a={})=>(a.locale??Ve())==="en"?eS():tS(),nS=()=>"Phone successfully verified",iS=()=>"Telefone verificado com sucesso",aS=(m={},a={})=>(a.locale??Ve())==="en"?nS():iS(),oS=()=>"Not a valid phone number",sS=()=>"Não é um número válido",lS=(m={},a={})=>(a.locale??Ve())==="en"?oS():sS(),cS=()=>"Location unfavorited",uS=()=>"Localização desfavoritada",hS=(m={},a={})=>(a.locale??Ve())==="en"?cS():uS(),dS=()=>"Location favorited",pS=()=>"Localização favoritada",fS=(m={},a={})=>(a.locale??Ve())==="en"?dS():pS(),mS=()=>"Giving admin to user",_S=()=>"Tornar usuário um admin",gS=(m={},a={})=>(a.locale??Ve())==="en"?mS():_S(),vS=()=>"Profile updated",yS=()=>"Perfil atualizado",xS=(m={},a={})=>(a.locale??Ve())==="en"?vS():yS(),bS=()=>"Successfully linked your Discord account.",wS=()=>"A sua conta Discord foi conectada com sucesso.",TS=(m={},a={})=>(a.locale??Ve())==="en"?bS():wS(),CS=()=>"Discord unlinked",SS=()=>"Discord desconectado",PS=(m={},a={})=>(a.locale??Ve())==="en"?CS():SS(),IS=()=>"Link your Discord",MS=()=>"Conectar Discord",kS=(m={},a={})=>(a.locale??Ve())==="en"?IS():MS(),AS=m=>`Unlink Discord (${m.username})`,ES=m=>`Desconectar Discord (${m.username})`,zS=(m,a={})=>(a.locale??Ve())==="en"?AS(m):ES(m),LS=()=>"Account successfully deleted",DS=()=>"Conta deletada com sucesso",RS=(m={},a={})=>(a.locale??Ve())==="en"?LS():DS(),BS=()=>"Logged out",FS=()=>"Logout feito",OS=(m={},a={})=>(a.locale??Ve())==="en"?BS():FS(),NS=()=>"Could not logout. Try refreshing the page.",jS=()=>"Não foi possível sair da conta. Tente recarregar a página.",VS=(m={},a={})=>(a.locale??Ve())==="en"?NS():jS(),qS=()=>"You need to zoom in to select a pixel",ZS=()=>"Dê zoom para selecionar um pixel",US=(m={},a={})=>(a.locale??Ve())==="en"?qS():ZS(),$S=()=>"Phone verification",GS=()=>"Verificação de telefone",HS=(m={},a={})=>(a.locale??Ve())==="en"?$S():GS(),WS=()=>"Please verify your phone number to continue playing. This helps us keep bots out and ensure a safe, creative experience for everyone.",XS=()=>"Por favor, verifique com seu telefone para continuar jogando. Isso nos ajuda a filtrar bots e manter um experiência segura e criativa para todos.",YS=(m={},a={})=>(a.locale??Ve())==="en"?WS():XS(),KS=()=>"Send Code",JS=()=>"Enviar o código",QS=(m={},a={})=>(a.locale??Ve())==="en"?KS():JS(),eP=()=>"Input the code",tP=()=>"Insira o código",rP=(m={},a={})=>(a.locale??Ve())==="en"?eP():tP(),nP=()=>"Sent to",iP=()=>"Enviar para",aP=(m={},a={})=>(a.locale??Ve())==="en"?nP():iP(),oP=()=>"Resend Code",sP=()=>"Reenviar Código",lP=(m={},a={})=>(a.locale??Ve())==="en"?oP():sP(),cP=()=>"Try another number",uP=()=>"Tentar outro número",hP=(m={},a={})=>(a.locale??Ve())==="en"?cP():uP(),dP=()=>"Edit profile",pP=()=>"Editar perfil",fP=(m={},a={})=>(a.locale??Ve())==="en"?dP():pP(),mP=()=>"Image",_P=()=>"Imagem",gP=(m={},a={})=>(a.locale??Ve())==="en"?mP():_P(),vP=()=>"Download",yP=()=>"Download",xP=(m={},a={})=>(a.locale??Ve())==="en"?vP():yP(),bP=()=>"Image copied to clipboard",wP=()=>"Imagem copiada para a área de transferência",TP=(m={},a={})=>(a.locale??Ve())==="en"?bP():wP(),CP=()=>"My map is lagging",SP=()=>"Meu mapa está travando",PP=(m={},a={})=>(a.locale??Ve())==="en"?CP():SP(),IP=()=>"Verify if",MP=()=>"Verifique se",kP=(m={},a={})=>(a.locale??Ve())==="en"?IP():MP(),AP=()=>"Use hardware acceleration when available",EP=()=>"Usar aceleração gráfica quando disponível",zP=(m={},a={})=>(a.locale??Ve())==="en"?AP():EP(),LP=()=>"is enabled on",DP=()=>"está habilitado em",RP=(m={},a={})=>(a.locale??Ve())==="en"?LP():DP(),BP=()=>"Follow the instructions to enable hardware acceleration",FP=()=>"Siga a instrução para habilitar a aceleração de hardware",OP=(m={},a={})=>(a.locale??Ve())==="en"?BP():FP(),NP=()=>"Moderation",jP=()=>"Moderação",VP=(m={},a={})=>(a.locale??Ve())==="en"?NP():jP(),qP=()=>"Terms",ZP=()=>"Termos",UP=(m={},a={})=>(a.locale??Ve())==="en"?qP():ZP(),$P=()=>"Privacy",GP=()=>"Privacidade",HP=(m={},a={})=>(a.locale??Ve())==="en"?$P():GP(),WP=()=>"Refund",XP=()=>"Reembolso",Jv=(m={},a={})=>(a.locale??Ve())==="en"?WP():XP(),YP=()=>"Clear area",KP=()=>"Limpar área",JP=(m={},a={})=>(a.locale??Ve())==="en"?YP():KP(),QP=()=>"Select the area's first corner",eI=()=>"Selecione o primeiro canto da área",Qv=(m={},a={})=>(a.locale??Ve())==="en"?QP():eI(),tI=()=>"Select the area's opposite corner",rI=()=>"Selecione o canto oposto da área",e0=(m={},a={})=>(a.locale??Ve())==="en"?tI():rI(),nI=()=>"Admin",iI=()=>"Administração",aI=(m={},a={})=>(a.locale??Ve())==="en"?nI():iI(),oI=m=>`Reason: ${m.reason}`,sI=m=>`Motivo: ${m.reason}`,lI=(m,a={})=>(a.locale??Ve())==="en"?oI(m):sI(m),cI=()=>"No corresponding region on the map (cosmetic effect only)",uI=()=>"Não possui região no mapa (apenas efeito cosmético)",hI=(m={},a={})=>(a.locale??Ve())==="en"?cI():uI(),dI=()=>"Flag without region on the map",pI=()=>"Bandeira sem região no mapa",fI=(m={},a={})=>(a.locale??Ve())==="en"?dI():pI(),mI=m=>`The flag of ${m.country} does not have corresponding areas on the map and will only have cosmetic effects.`,_I=m=>`A bandeira ${m.country} não possui regiões correspondente no mapa e só terá efeito cosmético.`,gI=(m,a={})=>(a.locale??Ve())==="en"?mI(m):_I(m),vI=()=>"Dark mode",yI=()=>"Modo escuro",xI=(m={},a={})=>(a.locale??Ve())==="en"?vI():yI(),bI=()=>"Light mode",wI=()=>"Modo claro",TI=(m={},a={})=>(a.locale??Ve())==="en"?bI():wI(),CI=()=>"Log out from all devices",SI=()=>"Sair de todos os dispositivos",PI=(m={},a={})=>(a.locale??Ve())==="en"?CI():SI(),II=()=>"Log out from all devices",MI=()=>"Sair de todos os dispositivos",kI=(m={},a={})=>(a.locale??Ve())==="en"?II():MI(),AI=()=>"This action will log your account out from all devices.",EI=()=>"Essa ação ira desconectar sua conta de todos os dispositivos.",zI=(m={},a={})=>(a.locale??Ve())==="en"?AI():EI(),LI=()=>"Sessions successfully revoked",DI=()=>"Sessões encerradas com sucesso",RI=(m={},a={})=>(a.locale??Ve())==="en"?LI():DI(),BI=()=>"Error revoking sessions. Try again later.",FI=()=>"Erro ao encerrar sessões. Tente novamente mais tarde.",OI=(m={},a={})=>(a.locale??Ve())==="en"?BI():FI(),NI=()=>"More",jI=()=>"Mais",VI=(m={},a={})=>(a.locale??Ve())==="en"?NI():jI(),qI=()=>"This action is irreversible, do you want to proceed?",ZI=()=>"Esta ação é irreversível,você quer prosseguir?",UI=(m={},a={})=>(a.locale??Ve())==="en"?qI():ZI(),$I=()=>"Please confirm by entering your username:",GI=()=>"Por favor, confirme digitando seu nome de usuário:",HI=(m={},a={})=>(a.locale??Ve())==="en"?$I():GI(),WI=()=>"Type your username",XI=()=>"Digite seu nome de usuário",YI=(m={},a={})=>(a.locale??Ve())==="en"?WI():XI(),KI=()=>"This action may take some time to be completed.",JI=()=>"Essa ação pode levar algum tempo para ser realizada.",QI=(m={},a={})=>(a.locale??Ve())==="en"?KI():JI(),$o=2*Math.PI*6378137/2;class fl{constructor(a=256){yr(this,"initialResolution");this.tileSize=a,this.initialResolution=2*$o/this.tileSize}latLonToMeters(a,p){const y=p/180*$o,M=Math.log(Math.tan((90+a)*Math.PI/360))/(Math.PI/180)*$o/180;return[y,M]}metersToLatLon(a,p){const y=a/$o*180;let M=p/$o*180;return M=180/Math.PI*(2*Math.atan(Math.exp(M*Math.PI/180))-Math.PI/2),[M,y]}pixelsToMeters(a,p,y){const M=this.resolution(y),z=a*M-$o,T=$o-p*M;return[z,T]}pixelsToLatLon(a,p,y){const[M,z]=this.pixelsToMeters(a,p,y);return this.metersToLatLon(M,z)}latLonToPixels(a,p,y){const[M,z]=this.latLonToMeters(a,p);return this.metersToPixels(M,z,y)}latLonToPixelsFloor(a,p,y){const[M,z]=this.latLonToPixels(a,p,y);return[Math.floor(M),Math.floor(z)]}metersToPixels(a,p,y){const M=this.resolution(y),z=(a+$o)/M,T=($o-p)/M;return[z,T]}latLonToTile(a,p,y){const[M,z]=this.latLonToMeters(a,p);return this.metersToTile(M,z,y)}metersToTile(a,p,y){const[M,z]=this.metersToPixels(a,p,y);return this.pixelsToTile(M,z)}pixelsToTile(a,p){const y=Math.ceil(a/this.tileSize)-1,M=Math.ceil(p/this.tileSize)-1;return[y,M]}pixelsToTileLocal(a,p){return{tile:this.pixelsToTile(a,p),pixel:[Math.floor(a)%this.tileSize,Math.floor(p)%this.tileSize]}}tileBounds(a,p,y){const[M,z]=this.pixelsToMeters(a*this.tileSize,p*this.tileSize,y),[T,s]=this.pixelsToMeters((a+1)*this.tileSize,(p+1)*this.tileSize,y);return{min:[M,z],max:[T,s]}}tileBoundsLatLon(a,p,y){const M=this.tileBounds(a,p,y);return{min:this.metersToLatLon(M.min[0],M.min[1]),max:this.metersToLatLon(M.max[0],M.max[1])}}resolution(a){return this.initialResolution/2**a}latLonToTileAndPixel(a,p,y){const[M,z]=this.latLonToMeters(a,p),[T,s]=this.metersToTile(M,z,y),[B,O]=this.metersToPixels(M,z,y);return{tile:[T,s],pixel:[Math.floor(B)%this.tileSize,Math.floor(O)%this.tileSize]}}pixelBounds(a,p,y){return{min:this.pixelsToMeters(a,p,y),max:this.pixelsToMeters(a+1,p+1,y)}}pixelToBoundsLatLon(a,p,y){const M=this.pixelBounds(a,p,y),z=.001885,T=(M.max[0]-M.min[0])*z,s=(M.max[1]-M.min[1])*z;return M.min[0]-=T,M.max[0]-=T,M.min[1]-=s,M.max[1]-=s,{min:this.metersToLatLon(M.min[0],M.min[1]),max:this.metersToLatLon(M.max[0],M.max[1])}}latLonToTileBoundsLatLon(a,p,y){const[M,z]=this.latLonToMeters(a,p),[T,s]=this.metersToTile(M,z,y);return this.tileBoundsLatLon(T,s,y)}latLonToPixelBoundsLatLon(a,p,y){const[M,z]=this.latLonToMeters(a,p),[T,s]=this.metersToPixels(M,z,y);return this.pixelToBoundsLatLon(Math.floor(T),Math.floor(s),y)}latLonToRegionAndPixel(a,p,y,M=Wi.regionSize){const[z,T]=this.latLonToPixelsFloor(a,p,y),s=this.tileSize*M;return{region:[Math.floor(z/s),Math.floor(T/s)],pixel:[z%s,T%s]}}}function Vm(m,a=!0){const{min:p,max:y}=m;return a?[[p[1],y[0]],[y[1],y[0]],[y[1],p[0]],[p[1],p[0]]]:[[p[0],y[1]],[y[0],y[1]],[y[0],p[1]],[p[0],p[1]]]}function qm(m){return[(m.min[0]+m.max[0])/2,(m.min[1]+m.max[1])/2]}const e4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAAXNSR0IArs4c6QAAACpJREFUeNpj+AsEZ86ASIa/DAwMZ84ACRDzDBigMs/AARITq1oUwxBWAADaREUdDMswKwAAAABJRU5ErkJggg==",Jg="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAACVJREFUeNpj+A8FDEAAZwMRBAIBmIYLIgHcgkQDIs3E6SRsjgcABYFLtfTgakEAAAAASUVORK5CYII=";function t4(m){return Math.floor(Math.random()*m)}const Jf=14.5;async function r4(){const m=a4();if(m)return m;try{if((await navigator.permissions.query({name:"geolocation"})).state==="granted"){const p=await new Promise((y,M)=>navigator.geolocation.getCurrentPosition(z=>y(z),z=>M(z)));return{lat:p.coords.latitude,lng:p.coords.longitude,zoom:Jf}}}catch(a){console.error(a)}return{...n4().pos,zoom:Jf}}function n4(){const m=Object.entries(i4),a=t4(m.length),[p,y]=m[a];return{city:p,pos:y}}const i4={tokyo:{lat:35.677545560719665,lng:139.76394445809638},paris:{lat:48.8537151734952,lng:2.3484026030630787},newYork:{lat:40.71283173786517,lng:-74.00599771376795},saoPaulo:{lat:-23.550584064565356,lng:-46.63339720713918},sydney:{lat:-33.86943325619071,lng:151.2083447239608}},t0="location";function Co(m,a){localStorage.setItem(t0,JSON.stringify({...m,zoom:a}))}function a4(){const m=localStorage.getItem(t0);if(!m)return;const a=JSON.parse(m);return a.zoom??(a.zoom=Jf),a}var Hu,Wu;class o4{constructor(){Ar(this,Hu,st(-1));Ar(this,Wu,st([]))}get idx(){return x(at(this,Hu))}set idx(a){se(at(this,Hu),a,!0)}get entries(){return x(at(this,Wu))}set entries(a){se(at(this,Wu),a)}hasNext(){return this.idx0}goToPrev(a){const p=this.idx-1,y=this.entries[p];y&&(this.idx=p,a.flyTo({center:y.pos,zoom:y.zoom}))}isEmpty(){return this.entries.length===0}push(a){this.idx=this.idx+1,this.entries=[...this.entries.slice(0,this.idx),a]}}Hu=new WeakMap,Wu=new WeakMap;const hl=new o4;function Zm(m){return m&&m.__esModule&&Object.prototype.hasOwnProperty.call(m,"default")?m.default:m}var Xd={exports:{}};/** + * MapLibre GL JS + * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.6.2/LICENSE.txt + */var s4=Xd.exports,Qg;function l4(){return Qg||(Qg=1,(function(m,a){(function(p,y){m.exports=y()})(s4,(function(){var p={},y={};function M(T,s,B){if(y[T]=B,T==="index"){var O="var sharedModule = {}; ("+y.shared+")(sharedModule); ("+y.worker+")(sharedModule);",X={};return y.shared(X),y.index(p,X),typeof window<"u"&&p.setWorkerUrl(window.URL.createObjectURL(new Blob([O],{type:"text/javascript"}))),p}}M("shared",["exports"],(function(T){function s(n,t,r,o){return new(r||(r=Promise))((function(c,f){function _(S){try{b(o.next(S))}catch(I){f(I)}}function v(S){try{b(o.throw(S))}catch(I){f(I)}}function b(S){var I;S.done?c(S.value):(I=S.value,I instanceof r?I:new r((function(L){L(I)}))).then(_,v)}b((o=o.apply(n,t||[])).next())}))}function B(n,t){this.x=n,this.y=t}function O(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var X,K;typeof SuppressedError=="function"&&SuppressedError,B.prototype={clone(){return new B(this.x,this.y)},add(n){return this.clone()._add(n)},sub(n){return this.clone()._sub(n)},multByPoint(n){return this.clone()._multByPoint(n)},divByPoint(n){return this.clone()._divByPoint(n)},mult(n){return this.clone()._mult(n)},div(n){return this.clone()._div(n)},rotate(n){return this.clone()._rotate(n)},rotateAround(n,t){return this.clone()._rotateAround(n,t)},matMult(n){return this.clone()._matMult(n)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(n){return this.x===n.x&&this.y===n.y},dist(n){return Math.sqrt(this.distSqr(n))},distSqr(n){const t=n.x-this.x,r=n.y-this.y;return t*t+r*r},angle(){return Math.atan2(this.y,this.x)},angleTo(n){return Math.atan2(this.y-n.y,this.x-n.x)},angleWith(n){return this.angleWithSep(n.x,n.y)},angleWithSep(n,t){return Math.atan2(this.x*t-this.y*n,this.x*n+this.y*t)},_matMult(n){const t=n[2]*this.x+n[3]*this.y;return this.x=n[0]*this.x+n[1]*this.y,this.y=t,this},_add(n){return this.x+=n.x,this.y+=n.y,this},_sub(n){return this.x-=n.x,this.y-=n.y,this},_mult(n){return this.x*=n,this.y*=n,this},_div(n){return this.x/=n,this.y/=n,this},_multByPoint(n){return this.x*=n.x,this.y*=n.y,this},_divByPoint(n){return this.x/=n.x,this.y/=n.y,this},_unit(){return this._div(this.mag()),this},_perp(){const n=this.y;return this.y=this.x,this.x=-n,this},_rotate(n){const t=Math.cos(n),r=Math.sin(n),o=r*this.x+t*this.y;return this.x=t*this.x-r*this.y,this.y=o,this},_rotateAround(n,t){const r=Math.cos(n),o=Math.sin(n),c=t.y+o*(this.x-t.x)+r*(this.y-t.y);return this.x=t.x+r*(this.x-t.x)-o*(this.y-t.y),this.y=c,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:B},B.convert=function(n){if(n instanceof B)return n;if(Array.isArray(n))return new B(+n[0],+n[1]);if(n.x!==void 0&&n.y!==void 0)return new B(+n.x,+n.y);throw new Error("Expected [x, y] or {x, y} point format")};var ne=(function(){if(K)return X;function n(t,r,o,c){this.cx=3*t,this.bx=3*(o-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*r,this.by=3*(c-r)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=o,this.p2y=c}return K=1,X=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,r){if(r===void 0&&(r=1e-6),t<0)return 0;if(t>1)return 1;for(var o=t,c=0;c<8;c++){var f=this.sampleCurveX(o)-t;if(Math.abs(f)f?v=o:b=o,o=.5*(b-v)+v;return o},solve:function(t,r){return this.sampleCurveY(this.solveCurveX(t,r))}},X})(),H=O(ne);let pe,ge;function Ie(){return pe==null&&(pe=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),pe}function Ee(){if(ge==null&&(ge=!1,Ie())){const t=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(t){for(let o=0;o<25;o++){const c=4*o;t.fillStyle=`rgb(${c},${c+1},${c+2})`,t.fillRect(o%5,Math.floor(o/5),1,1)}const r=t.getImageData(0,0,5,5).data;for(let o=0;o<100;o++)if(o%4!=3&&r[o]!==o){ge=!0;break}}}return ge||!1}var De=1e-6,ze=typeof Float32Array<"u"?Float32Array:Array;function Fe(){var n=new ze(9);return ze!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function $e(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function Je(){var n=new ze(3);return ze!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n}function qe(n){return Math.hypot(n[0],n[1],n[2])}function Ze(n,t,r){var o=new ze(3);return o[0]=n,o[1]=t,o[2]=r,o}function Qe(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n}function Le(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n}function et(n,t,r){var o=t[0],c=t[1],f=t[2],_=r[0],v=r[1],b=r[2];return n[0]=c*b-f*v,n[1]=f*_-o*b,n[2]=o*v-c*_,n}Math.hypot||(Math.hypot=function(){for(var n=0,t=arguments.length;t--;)n+=arguments[t]*arguments[t];return Math.sqrt(n)});var nt,Ue=qe;function Me(n,t,r){var o=t[0],c=t[1],f=t[2],_=t[3];return n[0]=r[0]*o+r[4]*c+r[8]*f+r[12]*_,n[1]=r[1]*o+r[5]*c+r[9]*f+r[13]*_,n[2]=r[2]*o+r[6]*c+r[10]*f+r[14]*_,n[3]=r[3]*o+r[7]*c+r[11]*f+r[15]*_,n}function yt(){var n=new ze(4);return ze!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function Q(n,t,r,o){var c=.5*Math.PI/180;t*=c,r*=c,o*=c;var f=Math.sin(t),_=Math.cos(t),v=Math.sin(r),b=Math.cos(r),S=Math.sin(o),I=Math.cos(o);return n[0]=f*b*I-_*v*S,n[1]=_*v*I+f*b*S,n[2]=_*b*S-f*v*I,n[3]=_*b*I+f*v*S,n}function re(){var n=new ze(2);return ze!=Float32Array&&(n[0]=0,n[1]=0),n}function he(n,t){var r=new ze(2);return r[0]=n,r[1]=t,r}Je(),nt=new ze(4),ze!=Float32Array&&(nt[0]=0,nt[1]=0,nt[2]=0,nt[3]=0),Je(),Ze(1,0,0),Ze(0,1,0),yt(),yt(),Fe(),re();const oe=8192;function Ae(n,t,r){return t*(oe/(n.tileSize*Math.pow(2,r-n.tileID.overscaledZ)))}function je(n,t){return(n%t+t)%t}function ft(n,t,r){return n*(1-r)+t*r}function it(n){if(n<=0)return 0;if(n>=1)return 1;const t=n*n,r=t*n;return 4*(n<.5?r:3*(n-t)+r-.75)}function ut(n,t,r,o){const c=new H(n,t,r,o);return f=>c.solve(f)}const Pt=ut(.25,.1,.25,1);function Dt(n,t,r){return Math.min(r,Math.max(t,n))}function ot(n,t,r){const o=r-t,c=((n-t)%o+o)%o+t;return c===t?r:c}function dt(n,...t){for(const r of t)for(const o in r)n[o]=r[o];return n}let vt=1;function xt(n,t,r){const o={};for(const c in n)o[c]=t.call(this,n[c],c,n);return o}function It(n,t,r){const o={};for(const c in n)t.call(this,n[c],c,n)&&(o[c]=n[c]);return o}function wt(n){return Array.isArray(n)?n.map(wt):typeof n=="object"&&n?xt(n,wt):n}const _t={};function Et(n){_t[n]||(typeof console<"u"&&console.warn(n),_t[n]=!0)}function Rt(n,t,r){return(r.y-n.y)*(t.x-n.x)>(t.y-n.y)*(r.x-n.x)}function Ut(n){return typeof WorkerGlobalScope<"u"&&n!==void 0&&n instanceof WorkerGlobalScope}let er=null;function tr(n){return typeof ImageBitmap<"u"&&n instanceof ImageBitmap}const Nt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Ft(n,t,r,o,c){return s(this,void 0,void 0,(function*(){if(typeof VideoFrame>"u")throw new Error("VideoFrame not supported");const f=new VideoFrame(n,{timestamp:0});try{const _=f==null?void 0:f.format;if(!_||!_.startsWith("BGR")&&!_.startsWith("RGB"))throw new Error(`Unrecognized format ${_}`);const v=_.startsWith("BGR"),b=new Uint8ClampedArray(o*c*4);if(yield f.copyTo(b,(function(S,I,L,F,q){const U=4*Math.max(-I,0),W=(Math.max(0,L)-L)*F*4+U,J=4*F,ce=Math.max(0,I),Re=Math.max(0,L);return{rect:{x:ce,y:Re,width:Math.min(S.width,I+F)-ce,height:Math.min(S.height,L+q)-Re},layout:[{offset:W,stride:J}]}})(n,t,r,o,c)),v)for(let S=0;S{n.removeEventListener(t,r,o)}}}function mr(n){return n*Math.PI/180}function hr(n){return n/Math.PI*180}const _r={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},Ir={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0},qr="AbortError";function le(){return new Error(qr)}const j={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};function Z(n){return j.REGISTERED_PROTOCOLS[n.substring(0,n.indexOf("://"))]}const Y="global-dispatcher";class ae extends Error{constructor(t,r,o,c){super(`AJAXError: ${r} (${t}): ${o}`),this.status=t,this.statusText=r,this.url=o,this.body=c}}const fe=()=>Ut(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,Se=function(n,t){if(/:\/\//.test(n.url)&&!/^https?:|^file:/.test(n.url)){const o=Z(n.url);if(o)return o(n,t);if(Ut(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,targetMapId:Y},t)}if(!(/^file:/.test(r=n.url)||/^file:/.test(fe())&&!/^\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return(function(o,c){return s(this,void 0,void 0,(function*(){const f=new Request(o.url,{method:o.method||"GET",body:o.body,credentials:o.credentials,headers:o.headers,cache:o.cache,referrer:fe(),signal:c.signal});let _,v;o.type!=="json"||f.headers.has("Accept")||f.headers.set("Accept","application/json");try{_=yield fetch(f)}catch(S){throw new ae(0,S.message,o.url,new Blob)}if(!_.ok){const S=yield _.blob();throw new ae(_.status,_.statusText,o.url,S)}v=o.type==="arrayBuffer"||o.type==="image"?_.arrayBuffer():o.type==="json"?_.json():_.text();const b=yield v;if(c.signal.aborted)throw le();return{data:b,cacheControl:_.headers.get("Cache-Control"),expires:_.headers.get("Expires")}}))})(n,t);if(Ut(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,mustQueue:!0,targetMapId:Y},t)}var r;return(function(o,c){return new Promise(((f,_)=>{var v;const b=new XMLHttpRequest;b.open(o.method||"GET",o.url,!0),o.type!=="arrayBuffer"&&o.type!=="image"||(b.responseType="arraybuffer");for(const S in o.headers)b.setRequestHeader(S,o.headers[S]);o.type==="json"&&(b.responseType="text",!((v=o.headers)===null||v===void 0)&&v.Accept||b.setRequestHeader("Accept","application/json")),b.withCredentials=o.credentials==="include",b.onerror=()=>{_(new Error(b.statusText))},b.onload=()=>{if(!c.signal.aborted)if((b.status>=200&&b.status<300||b.status===0)&&b.response!==null){let S=b.response;if(o.type==="json")try{S=JSON.parse(b.response)}catch(I){return void _(I)}f({data:S,cacheControl:b.getResponseHeader("Cache-Control"),expires:b.getResponseHeader("Expires")})}else{const S=new Blob([b.response],{type:b.getResponseHeader("Content-Type")});_(new ae(b.status,b.statusText,o.url,S))}},c.signal.addEventListener("abort",(()=>{b.abort(),_(le())})),b.send(o.body)}))})(n,t)};function ke(n){if(!n||n.indexOf("://")<=0||n.indexOf("data:image/")===0||n.indexOf("blob:")===0)return!0;const t=new URL(n),r=window.location;return t.protocol===r.protocol&&t.host===r.host}function we(n,t,r){r[n]&&r[n].indexOf(t)!==-1||(r[n]=r[n]||[],r[n].push(t))}function Oe(n,t,r){if(r&&r[n]){const o=r[n].indexOf(t);o!==-1&&r[n].splice(o,1)}}class lt{constructor(t,r={}){dt(this,r),this.type=t}}class Ye extends lt{constructor(t,r={}){super("error",dt({error:t},r))}}class kt{on(t,r){return this._listeners=this._listeners||{},we(t,r,this._listeners),{unsubscribe:()=>{this.off(t,r)}}}off(t,r){return Oe(t,r,this._listeners),Oe(t,r,this._oneTimeListeners),this}once(t,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},we(t,r,this._oneTimeListeners),this):new Promise((o=>this.once(t,o)))}fire(t,r){typeof t=="string"&&(t=new lt(t,r||{}));const o=t.type;if(this.listens(o)){t.target=this;const c=this._listeners&&this._listeners[o]?this._listeners[o].slice():[];for(const v of c)v.call(this,t);const f=this._oneTimeListeners&&this._oneTimeListeners[o]?this._oneTimeListeners[o].slice():[];for(const v of f)Oe(o,v,this._oneTimeListeners),v.call(this,t);const _=this._eventedParent;_&&(dt(t,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),_.fire(t))}else t instanceof Ye&&console.error(t.error);return this}listens(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)}setEventedParent(t,r){return this._eventedParent=t,this._eventedParentData=r,this}}var xe={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},centerAltitude:{type:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},roll:{type:"number",default:0,units:"degrees"},state:{type:"state",default:{}},light:{type:"light"},sky:{type:"sky"},projection:{type:"projection"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},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:{},"color-relief":{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_color-relief","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","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"}},"layout_color-relief":{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":{}}},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},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-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:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"}},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 Ot=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function cr(n,t){const r={};for(const o in n)o!=="ref"&&(r[o]=n[o]);return Ot.forEach((o=>{o in t&&(r[o]=t[o])})),r}function Jt(n,t){if(Array.isArray(n)){if(!Array.isArray(t)||n.length!==t.length)return!1;for(let r=0;r`:n.itemType.kind==="value"?"array":`array<${t}>`}return n.kind}const ma=[mt,He,At,Bt,Kt,Tr,pn,Er,tn(ur),_n,En,sn,pr,In];function pi(n,t){if(t.kind==="error")return null;if(n.kind==="array"){if(t.kind==="array"&&(t.N===0&&t.itemType.kind==="value"||!pi(n.itemType,t.itemType))&&(typeof n.N!="number"||n.N===t.N))return null}else{if(n.kind===t.kind)return null;if(n.kind==="value"){for(const r of ma)if(!pi(r,t))return null}}return`Expected ${en(n)} but found ${en(t)} instead.`}function Xi(n,t){return t.some((r=>r.kind===n.kind))}function Zn(n,t){return t.some((r=>r==="null"?n===null:r==="array"?Array.isArray(n):r==="object"?n&&!Array.isArray(n)&&typeof n=="object":r===typeof n))}function ni(n,t){return n.kind==="array"&&t.kind==="array"?n.itemType.kind===t.itemType.kind&&typeof n.N=="number":n.kind===t.kind}const Zi=.96422,Yi=.82521,Ei=4/29,zi=6/29,Ki=3*zi*zi,oa=zi*zi*zi,Ta=Math.PI/180,bt=180/Math.PI;function Xt(n){return(n%=360)<0&&(n+=360),n}function Br([n,t,r,o]){let c,f;const _=On((.2225045*(n=yn(n))+.7168786*(t=yn(t))+.0606169*(r=yn(r)))/1);n===t&&t===r?c=f=_:(c=On((.4360747*n+.3850649*t+.1430804*r)/Zi),f=On((.0139322*n+.0971045*t+.7141733*r)/Yi));const v=116*_-16;return[v<0?0:v,500*(c-_),200*(_-f),o]}function yn(n){return n<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function On(n){return n>oa?Math.pow(n,1/3):n/Ki+Ei}function Yn([n,t,r,o]){let c=(n+16)/116,f=isNaN(t)?c:c+t/500,_=isNaN(r)?c:c-r/200;return c=1*wn(c),f=Zi*wn(f),_=Yi*wn(_),[Vn(3.1338561*f-1.6168667*c-.4906146*_),Vn(-.9787684*f+1.9161415*c+.033454*_),Vn(.0719453*f-.2289914*c+1.4052427*_),o]}function Vn(n){return(n=n<=.00304?12.92*n:1.055*Math.pow(n,1/2.4)-.055)<0?0:n>1?1:n}function wn(n){return n>zi?n*n*n:Ki*(n-Ei)}const Ji=Object.hasOwn||function(n,t){return Object.prototype.hasOwnProperty.call(n,t)};function ar(n,t){return Ji(n,t)?n[t]:void 0}function $t(n){return parseInt(n.padEnd(2,n),16)/255}function Ur(n,t){return or(t?n/100:n,0,1)}function or(n,t,r){return Math.min(Math.max(t,n),r)}function Tn(n){return!n.some(Number.isNaN)}const nn={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function Cn(n,t,r){return n+r*(t-n)}function Gn(n,t,r){return n.map(((o,c)=>Cn(o,t[c],r)))}class Mr{constructor(t,r,o,c=1,f=!0){this.r=t,this.g=r,this.b=o,this.a=c,f||(this.r*=c,this.g*=c,this.b*=c,c||this.overwriteGetter("rgb",[t,r,o,c]))}static parse(t){if(t instanceof Mr)return t;if(typeof t!="string")return;const r=(function(o){if((o=o.toLowerCase().trim())==="transparent")return[0,0,0,0];const c=ar(nn,o);if(c){const[_,v,b]=c;return[_/255,v/255,b/255,1]}if(o.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(o)){const _=o.length<6?1:2;let v=1;return[$t(o.slice(v,v+=_)),$t(o.slice(v,v+=_)),$t(o.slice(v,v+=_)),$t(o.slice(v,v+_)||"ff")]}if(o.startsWith("rgb")){const _=o.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(_){const[v,b,S,I,L,F,q,U,W,J,ce,Re]=_,ye=[I||" ",q||" ",J].join("");if(ye===" "||ye===" /"||ye===",,"||ye===",,,"){const Ce=[S,F,W].join(""),Ke=Ce==="%%%"?100:Ce===""?255:0;if(Ke){const ct=[or(+b/Ke,0,1),or(+L/Ke,0,1),or(+U/Ke,0,1),ce?Ur(+ce,Re):1];if(Tn(ct))return ct}}return}}const f=o.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(f){const[_,v,b,S,I,L,F,q,U]=f,W=[b||" ",I||" ",F].join("");if(W===" "||W===" /"||W===",,"||W===",,,"){const J=[+v,or(+S,0,100),or(+L,0,100),q?Ur(+q,U):1];if(Tn(J))return(function([ce,Re,ye,Ce]){function Ke(ct){const St=(ct+ce/30)%12,Yt=Re*Math.min(ye,1-ye);return ye-Yt*Math.max(-1,Math.min(St-3,9-St,1))}return ce=Xt(ce),Re/=100,ye/=100,[Ke(0),Ke(8),Ke(4),Ce]})(J)}}})(t);return r?new Mr(...r,!1):void 0}get rgb(){const{r:t,g:r,b:o,a:c}=this,f=c||1/0;return this.overwriteGetter("rgb",[t/f,r/f,o/f,c])}get hcl(){return this.overwriteGetter("hcl",(function(t){const[r,o,c,f]=Br(t),_=Math.sqrt(o*o+c*c);return[Math.round(1e4*_)?Xt(Math.atan2(c,o)*bt):NaN,_,r,f]})(this.rgb))}get lab(){return this.overwriteGetter("lab",Br(this.rgb))}overwriteGetter(t,r){return Object.defineProperty(this,t,{value:r}),r}toString(){const[t,r,o,c]=this.rgb;return`rgba(${[t,r,o].map((f=>Math.round(255*f))).join(",")},${c})`}static interpolate(t,r,o,c="rgb"){switch(c){case"rgb":{const[f,_,v,b]=Gn(t.rgb,r.rgb,o);return new Mr(f,_,v,b,!1)}case"hcl":{const[f,_,v,b]=t.hcl,[S,I,L,F]=r.hcl;let q,U;if(isNaN(f)||isNaN(S))isNaN(f)?isNaN(S)?q=NaN:(q=S,v!==1&&v!==0||(U=I)):(q=f,L!==1&&L!==0||(U=_));else{let ye=S-f;S>f&&ye>180?ye-=360:S180&&(ye+=360),q=f+o*ye}const[W,J,ce,Re]=(function([ye,Ce,Ke,ct]){return ye=isNaN(ye)?0:ye*Ta,Yn([Ke,Math.cos(ye)*Ce,Math.sin(ye)*Ce,ct])})([q,U??Cn(_,I,o),Cn(v,L,o),Cn(b,F,o)]);return new Mr(W,J,ce,Re,!1)}case"lab":{const[f,_,v,b]=Yn(Gn(t.lab,r.lab,o));return new Mr(f,_,v,b,!1)}}}}Mr.black=new Mr(0,0,0,1),Mr.white=new Mr(1,1,1,1),Mr.transparent=new Mr(0,0,0,0),Mr.red=new Mr(1,0,0,1);class Mn{constructor(t,r,o){this.sensitivity=t?r?"variant":"case":r?"accent":"base",this.locale=o,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,r){return this.collator.compare(t,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}const bn=["bottom","center","top"];class ln{constructor(t,r,o,c,f,_){this.text=t,this.image=r,this.scale=o,this.fontStack=c,this.textColor=f,this.verticalAlign=_}}class Sn{constructor(t){this.sections=t}static fromString(t){return new Sn([new ln(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some((t=>t.text.length!==0||t.image&&t.image.name.length!==0))}static factory(t){return t instanceof Sn?t:Sn.fromString(t)}toString(){return this.sections.length===0?"":this.sections.map((t=>t.text)).join("")}}class kn{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof kn)return t;if(typeof t=="number")return new kn([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const r of t)if(typeof r!="number")return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]]}return new kn(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,r,o){return new kn(Gn(t.values,r.values,o))}}class gn{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof gn)return t;if(typeof t=="number")return new gn([t]);if(Array.isArray(t)){for(const r of t)if(typeof r!="number")return;return new gn(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,r,o){return new gn(Gn(t.values,r.values,o))}}class fn{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof fn)return t;if(typeof t=="string"){const o=Mr.parse(t);return o?new fn([o]):void 0}if(!Array.isArray(t))return;const r=[];for(const o of t){if(typeof o!="string")return;const c=Mr.parse(o);if(!c)return;r.push(c)}return new fn(r)}toString(){return JSON.stringify(this.values)}static interpolate(t,r,o,c="rgb"){const f=[];if(t.values.length!=r.values.length)throw new Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${r.values.length}), cannot interpolate.`);for(let _=0;_=0&&n<=255&&typeof t=="number"&&t>=0&&t<=255&&typeof r=="number"&&r>=0&&r<=255?o===void 0||typeof o=="number"&&o>=0&&o<=1?null:`Invalid rgba value [${[n,t,r,o].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof o=="number"?[n,t,r,o]:[n,t,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function qa(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"||n instanceof jn||n instanceof Mr||n instanceof Mn||n instanceof Sn||n instanceof kn||n instanceof gn||n instanceof fn||n instanceof fi||n instanceof Hn)return!0;if(Array.isArray(n)){for(const t of n)if(!qa(t))return!1;return!0}if(typeof n=="object"){for(const t in n)if(!qa(n[t]))return!1;return!0}return!1}function Rr(n){if(n===null)return mt;if(typeof n=="string")return At;if(typeof n=="boolean")return Bt;if(typeof n=="number")return He;if(n instanceof Mr)return Kt;if(n instanceof jn)return Tr;if(n instanceof Mn)return rn;if(n instanceof Sn)return pn;if(n instanceof kn)return _n;if(n instanceof gn)return En;if(n instanceof fn)return sn;if(n instanceof fi)return In;if(n instanceof Hn)return pr;if(Array.isArray(n)){const t=n.length;let r;for(const o of n){const c=Rr(o);if(r){if(r===c)continue;r=ur;break}r=c}return tn(r||ur,t)}return Er}function $r(n){const t=typeof n;return n===null?"":t==="string"||t==="number"||t==="boolean"?String(n):n instanceof Mr||n instanceof jn||n instanceof Sn||n instanceof kn||n instanceof gn||n instanceof fn||n instanceof fi||n instanceof Hn?n.toString():JSON.stringify(n)}class _a{constructor(t,r){this.type=t,this.value=r}static parse(t,r){if(t.length!==2)return r.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!qa(t[1]))return r.error("invalid value");const o=t[1];let c=Rr(o);const f=r.expectedType;return c.kind!=="array"||c.N!==0||!f||f.kind!=="array"||typeof f.N=="number"&&f.N!==0||(c=f),new _a(c,o)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const cn={string:At,number:He,boolean:Bt,object:Er};class Li{constructor(t,r){this.type=t,this.args=r}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");let o,c=1;const f=t[0];if(f==="array"){let v,b;if(t.length>2){const S=t[1];if(typeof S!="string"||!(S in cn)||S==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);v=cn[S],c++}else v=ur;if(t.length>3){if(t[2]!==null&&(typeof t[2]!="number"||t[2]<0||t[2]!==Math.floor(t[2])))return r.error('The length argument to "array" must be a positive integer literal',2);b=t[2],c++}o=tn(v,b)}else{if(!cn[f])throw new Error(`Types doesn't contain name = ${f}`);o=cn[f]}const _=[];for(;ct.outputDefined()))}}const ga={"to-boolean":Bt,"to-color":Kt,"to-number":He,"to-string":At};class sa{constructor(t,r){this.type=t,this.args=r}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");const o=t[0];if(!ga[o])throw new Error(`Can't parse ${o} as it is not part of the known types`);if((o==="to-boolean"||o==="to-string")&&t.length!==2)return r.error("Expected one argument.");const c=ga[o],f=[];for(let _=1;_4?`Invalid rgba value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:zn(r[0],r[1],r[2],r[3]),!o))return new Mr(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new an(o||`Could not parse color from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"padding":{let r;for(const o of this.args){r=o.evaluate(t);const c=kn.parse(r);if(c)return c}throw new an(`Could not parse padding from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"numberArray":{let r;for(const o of this.args){r=o.evaluate(t);const c=gn.parse(r);if(c)return c}throw new an(`Could not parse numberArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"colorArray":{let r;for(const o of this.args){r=o.evaluate(t);const c=fn.parse(r);if(c)return c}throw new an(`Could not parse colorArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"variableAnchorOffsetCollection":{let r;for(const o of this.args){r=o.evaluate(t);const c=fi.parse(r);if(c)return c}throw new an(`Could not parse variableAnchorOffsetCollection from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"number":{let r=null;for(const o of this.args){if(r=o.evaluate(t),r===null)return 0;const c=Number(r);if(!isNaN(c))return c}throw new an(`Could not convert ${JSON.stringify(r)} to number.`)}case"formatted":return Sn.fromString($r(this.args[0].evaluate(t)));case"resolvedImage":return Hn.fromString($r(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return $r(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every((t=>t.outputDefined()))}}const Ja=["Unknown","Point","LineString","Polygon"];class Ms{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?Ja[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(t){let r=this._parseColorCache.get(t);return r||(r=Mr.parse(t),this._parseColorCache.set(t,r)),r}}class Ca{constructor(t,r,o=[],c,f=new Zr,_=[]){this.registry=t,this.path=o,this.key=o.map((v=>`[${v}]`)).join(""),this.scope=f,this.errors=_,this.expectedType=c,this._isConstant=r}parse(t,r,o,c,f={}){return r?this.concat(r,o,c)._parse(t,f):this._parse(t,f)}_parse(t,r){function o(c,f,_){return _==="assert"?new Li(f,[c]):_==="coerce"?new sa(f,[c]):c}if(t!==null&&typeof t!="string"&&typeof t!="boolean"&&typeof t!="number"||(t=["literal",t]),Array.isArray(t)){if(t.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const c=t[0];if(typeof c!="string")return this.error(`Expression name must be a string, but found ${typeof c} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const f=this.registry[c];if(f){let _=f.parse(t,this);if(!_)return null;if(this.expectedType){const v=this.expectedType,b=_.type;if(v.kind!=="string"&&v.kind!=="number"&&v.kind!=="boolean"&&v.kind!=="object"&&v.kind!=="array"||b.kind!=="value"){if(v.kind==="projectionDefinition"&&["string","array"].includes(b.kind)||["color","formatted","resolvedImage"].includes(v.kind)&&["value","string"].includes(b.kind)||["padding","numberArray"].includes(v.kind)&&["value","number","array"].includes(b.kind)||v.kind==="colorArray"&&["value","string","array"].includes(b.kind)||v.kind==="variableAnchorOffsetCollection"&&["value","array"].includes(b.kind))_=o(_,v,r.typeAnnotation||"coerce");else if(this.checkSubtype(v,b))return null}else _=o(_,v,r.typeAnnotation||"assert")}if(!(_ instanceof _a)&&_.type.kind!=="resolvedImage"&&this._isConstant(_)){const v=new Ms;try{_=new _a(_.type,_.evaluate(v))}catch(b){return this.error(b.message),null}}return _}return this.error(`Unknown expression "${c}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(t===void 0?"'undefined' value invalid. Use null instead.":typeof t=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,r,o){const c=typeof t=="number"?this.path.concat(t):this.path,f=o?this.scope.concat(o):this.scope;return new Ca(this.registry,this._isConstant,c,r||null,f,this.errors)}error(t,...r){const o=`${this.key}${r.map((c=>`[${c}]`)).join("")}`;this.errors.push(new Yr(o,t))}checkSubtype(t,r){const o=pi(t,r);return o&&this.error(o),o}}class Qa{constructor(t,r){this.type=r.type,this.bindings=[].concat(t),this.result=r}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const r of this.bindings)t(r[1]);t(this.result)}static parse(t,r){if(t.length<4)return r.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const o=[];for(let f=1;f=o.length)throw new an(`Array index out of bounds: ${r} > ${o.length-1}.`);if(r!==Math.floor(r))throw new an(`Array index must be an integer, but found ${r} instead.`);return o[r]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}}class vl{constructor(t,r){this.type=Bt,this.needle=t,this.haystack=r}static parse(t,r){if(t.length!==3)return r.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const o=r.parse(t[1],1,ur),c=r.parse(t[2],2,ur);return o&&c?Xi(o.type,[Bt,At,He,mt,ur])?new vl(o,c):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${en(o.type)} instead`):null}evaluate(t){const r=this.needle.evaluate(t),o=this.haystack.evaluate(t);if(!o)return!1;if(!Zn(r,["boolean","string","number","null"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${en(Rr(r))} instead.`);if(!Zn(o,["string","array"]))throw new an(`Expected second argument to be of type array or string, but found ${en(Rr(o))} instead.`);return o.indexOf(r)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}}class Sa{constructor(t,r,o){this.type=He,this.needle=t,this.haystack=r,this.fromIndex=o}static parse(t,r){if(t.length<=2||t.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const o=r.parse(t[1],1,ur),c=r.parse(t[2],2,ur);if(!o||!c)return null;if(!Xi(o.type,[Bt,At,He,mt,ur]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${en(o.type)} instead`);if(t.length===4){const f=r.parse(t[3],3,He);return f?new Sa(o,c,f):null}return new Sa(o,c)}evaluate(t){const r=this.needle.evaluate(t),o=this.haystack.evaluate(t);if(!Zn(r,["boolean","string","number","null"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${en(Rr(r))} instead.`);let c;if(this.fromIndex&&(c=this.fromIndex.evaluate(t)),Zn(o,["string"])){const f=o.indexOf(r,c);return f===-1?-1:[...o.slice(0,f)].length}if(Zn(o,["array"]))return o.indexOf(r,c);throw new an(`Expected second argument to be of type array or string, but found ${en(Rr(o))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}}class Ti{constructor(t,r,o,c,f,_){this.inputType=t,this.type=r,this.input=o,this.cases=c,this.outputs=f,this.otherwise=_}static parse(t,r){if(t.length<5)return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return r.error("Expected an even number of arguments.");let o,c;r.expectedType&&r.expectedType.kind!=="value"&&(c=r.expectedType);const f={},_=[];for(let S=2;SNumber.MAX_SAFE_INTEGER)return F.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof U=="number"&&Math.floor(U)!==U)return F.error("Numeric branch labels must be integer values.");if(o){if(F.checkSubtype(o,Rr(U)))return null}else o=Rr(U);if(f[String(U)]!==void 0)return F.error("Branch labels must be unique.");f[String(U)]=_.length}const q=r.parse(L,S,c);if(!q)return null;c=c||q.type,_.push(q)}const v=r.parse(t[1],1,ur);if(!v)return null;const b=r.parse(t[t.length-1],t.length-1,c);return b?v.type.kind!=="value"&&r.concat(1).checkSubtype(o,v.type)?null:new Ti(o,c,v,f,_,b):null}evaluate(t){const r=this.input.evaluate(t);return(Rr(r)===this.inputType&&this.outputs[this.cases[r]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}}class Qo{constructor(t,r,o){this.type=t,this.branches=r,this.otherwise=o}static parse(t,r){if(t.length<4)return r.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return r.error("Expected an odd number of arguments.");let o;r.expectedType&&r.expectedType.kind!=="value"&&(o=r.expectedType);const c=[];for(let _=1;_r.outputDefined()))&&this.otherwise.outputDefined()}}class ks{constructor(t,r,o,c){this.type=t,this.input=r,this.beginIndex=o,this.endIndex=c}static parse(t,r){if(t.length<=2||t.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const o=r.parse(t[1],1,ur),c=r.parse(t[2],2,He);if(!o||!c)return null;if(!Xi(o.type,[tn(ur),At,ur]))return r.error(`Expected first argument to be of type array or string, but found ${en(o.type)} instead`);if(t.length===4){const f=r.parse(t[3],3,He);return f?new ks(o.type,o,c,f):null}return new ks(o.type,o,c)}evaluate(t){const r=this.input.evaluate(t),o=this.beginIndex.evaluate(t);let c;if(this.endIndex&&(c=this.endIndex.evaluate(t)),Zn(r,["string"]))return[...r].slice(o,c).join("");if(Zn(r,["array"]))return r.slice(o,c);throw new an(`Expected first argument to be of type array or string, but found ${en(Rr(r))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}}function Mo(n,t){const r=n.length-1;let o,c,f=0,_=r,v=0;for(;f<=_;)if(v=Math.floor((f+_)/2),o=n[v],c=n[v+1],o<=t){if(v===r||tt))throw new an("Input is not a number.");_=v-1}return 0}class ei{constructor(t,r,o){this.type=t,this.input=r,this.labels=[],this.outputs=[];for(const[c,f]of o)this.labels.push(c),this.outputs.push(f)}static parse(t,r){if(t.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return r.error("Expected an even number of arguments.");const o=r.parse(t[1],1,He);if(!o)return null;const c=[];let f=null;r.expectedType&&r.expectedType.kind!=="value"&&(f=r.expectedType);for(let _=1;_=v)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',S);const L=r.parse(b,I,f);if(!L)return null;f=f||L.type,c.push([v,L])}return new ei(f,o,c)}evaluate(t){const r=this.labels,o=this.outputs;if(r.length===1)return o[0].evaluate(t);const c=this.input.evaluate(t);if(c<=r[0])return o[0].evaluate(t);const f=r.length;return c>=r[f-1]?o[f-1].evaluate(t):o[Mo(r,c)].evaluate(t)}eachChild(t){t(this.input);for(const r of this.outputs)t(r)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Fh(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var As,Ec,bp=(function(){if(Ec)return As;function n(t,r,o,c){this.cx=3*t,this.bx=3*(o-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*r,this.by=3*(c-r)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=o,this.p2y=c}return Ec=1,As=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,r){if(r===void 0&&(r=1e-6),t<0)return 0;if(t>1)return 1;for(var o=t,c=0;c<8;c++){var f=this.sampleCurveX(o)-t;if(Math.abs(f)f?v=o:b=o,o=.5*(b-v)+v;return o},solve:function(t,r){return this.sampleCurveY(this.solveCurveX(t,r))}},As})(),es=Fh(bp);class Di{constructor(t,r,o,c,f){this.type=t,this.operator=r,this.interpolation=o,this.input=c,this.labels=[],this.outputs=[];for(const[_,v]of f)this.labels.push(_),this.outputs.push(v)}static interpolationFactor(t,r,o,c){let f=0;if(t.name==="exponential")f=Es(r,t.base,o,c);else if(t.name==="linear")f=Es(r,1,o,c);else if(t.name==="cubic-bezier"){const _=t.controlPoints;f=new es(_[0],_[1],_[2],_[3]).solve(Es(r,1,o,c))}return f}static parse(t,r){let[o,c,f,..._]=t;if(!Array.isArray(c)||c.length===0)return r.error("Expected an interpolation type expression.",1);if(c[0]==="linear")c={name:"linear"};else if(c[0]==="exponential"){const S=c[1];if(typeof S!="number")return r.error("Exponential interpolation requires a numeric base.",1,1);c={name:"exponential",base:S}}else{if(c[0]!=="cubic-bezier")return r.error(`Unknown interpolation type ${String(c[0])}`,1,0);{const S=c.slice(1);if(S.length!==4||S.some((I=>typeof I!="number"||I<0||I>1)))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);c={name:"cubic-bezier",controlPoints:S}}}if(t.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(f=r.parse(f,2,He),!f)return null;const v=[];let b=null;o!=="interpolate-hcl"&&o!=="interpolate-lab"||r.expectedType==sn?r.expectedType&&r.expectedType.kind!=="value"&&(b=r.expectedType):b=Kt;for(let S=0;S<_.length;S+=2){const I=_[S],L=_[S+1],F=S+3,q=S+4;if(typeof I!="number")return r.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',F);if(v.length&&v[v.length-1][0]>=I)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',F);const U=r.parse(L,q,b);if(!U)return null;b=b||U.type,v.push([I,U])}return ni(b,He)||ni(b,Tr)||ni(b,Kt)||ni(b,_n)||ni(b,En)||ni(b,sn)||ni(b,In)||ni(b,tn(He))?new Di(b,o,c,f,v):r.error(`Type ${en(b)} is not interpolatable.`)}evaluate(t){const r=this.labels,o=this.outputs;if(r.length===1)return o[0].evaluate(t);const c=this.input.evaluate(t);if(c<=r[0])return o[0].evaluate(t);const f=r.length;if(c>=r[f-1])return o[f-1].evaluate(t);const _=Mo(r,c),v=Di.interpolationFactor(this.interpolation,c,r[_],r[_+1]),b=o[_].evaluate(t),S=o[_+1].evaluate(t);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return Cn(b,S,v);case"color":return Mr.interpolate(b,S,v);case"padding":return kn.interpolate(b,S,v);case"colorArray":return fn.interpolate(b,S,v);case"numberArray":return gn.interpolate(b,S,v);case"variableAnchorOffsetCollection":return fi.interpolate(b,S,v);case"array":return Gn(b,S,v);case"projectionDefinition":return jn.interpolate(b,S,v)}case"interpolate-hcl":switch(this.type.kind){case"color":return Mr.interpolate(b,S,v,"hcl");case"colorArray":return fn.interpolate(b,S,v,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return Mr.interpolate(b,S,v,"lab");case"colorArray":return fn.interpolate(b,S,v,"lab")}}}eachChild(t){t(this.input);for(const r of this.outputs)t(r)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Es(n,t,r,o){const c=o-r,f=n-r;return c===0?0:t===1?f/c:(Math.pow(t,f)-1)/(Math.pow(t,c)-1)}const Za={color:Mr.interpolate,number:Cn,padding:kn.interpolate,numberArray:gn.interpolate,colorArray:fn.interpolate,variableAnchorOffsetCollection:fi.interpolate,array:Gn};class zs{constructor(t,r){this.type=t,this.args=r}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");let o=null;const c=r.expectedType;c&&c.kind!=="value"&&(o=c);const f=[];for(const v of t.slice(1)){const b=r.parse(v,1+f.length,o,void 0,{typeAnnotation:"omit"});if(!b)return null;o=o||b.type,f.push(b)}if(!o)throw new Error("No output type");const _=c&&f.some((v=>pi(c,v.type)));return new zs(_?ur:o,f)}evaluate(t){let r,o=null,c=0;for(const f of this.args)if(c++,o=f.evaluate(t),o&&o instanceof Hn&&!o.available&&(r||(r=o.name),o=null,c===this.args.length&&(o=r)),o!==null)break;return o}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every((t=>t.outputDefined()))}}function Ls(n,t){return n==="=="||n==="!="?t.kind==="boolean"||t.kind==="string"||t.kind==="number"||t.kind==="null"||t.kind==="value":t.kind==="string"||t.kind==="number"||t.kind==="value"}function Ds(n,t,r,o){return o.compare(t,r)===0}function ji(n,t,r){const o=n!=="=="&&n!=="!=";return class r0{constructor(f,_,v){this.type=Bt,this.lhs=f,this.rhs=_,this.collator=v,this.hasUntypedArgument=f.type.kind==="value"||_.type.kind==="value"}static parse(f,_){if(f.length!==3&&f.length!==4)return _.error("Expected two or three arguments.");const v=f[0];let b=_.parse(f[1],1,ur);if(!b)return null;if(!Ls(v,b.type))return _.concat(1).error(`"${v}" comparisons are not supported for type '${en(b.type)}'.`);let S=_.parse(f[2],2,ur);if(!S)return null;if(!Ls(v,S.type))return _.concat(2).error(`"${v}" comparisons are not supported for type '${en(S.type)}'.`);if(b.type.kind!==S.type.kind&&b.type.kind!=="value"&&S.type.kind!=="value")return _.error(`Cannot compare types '${en(b.type)}' and '${en(S.type)}'.`);o&&(b.type.kind==="value"&&S.type.kind!=="value"?b=new Li(S.type,[b]):b.type.kind!=="value"&&S.type.kind==="value"&&(S=new Li(b.type,[S])));let I=null;if(f.length===4){if(b.type.kind!=="string"&&S.type.kind!=="string"&&b.type.kind!=="value"&&S.type.kind!=="value")return _.error("Cannot use collator to compare non-string types.");if(I=_.parse(f[3],3,rn),!I)return null}return new r0(b,S,I)}evaluate(f){const _=this.lhs.evaluate(f),v=this.rhs.evaluate(f);if(o&&this.hasUntypedArgument){const b=Rr(_),S=Rr(v);if(b.kind!==S.kind||b.kind!=="string"&&b.kind!=="number")throw new an(`Expected arguments for "${n}" to be (string, string) or (number, number), but found (${b.kind}, ${S.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const b=Rr(_),S=Rr(v);if(b.kind!=="string"||S.kind!=="string")return t(f,_,v)}return this.collator?r(f,_,v,this.collator.evaluate(f)):t(f,_,v)}eachChild(f){f(this.lhs),f(this.rhs),this.collator&&f(this.collator)}outputDefined(){return!0}}}const Oh=ji("==",(function(n,t,r){return t===r}),Ds),yl=ji("!=",(function(n,t,r){return t!==r}),(function(n,t,r,o){return!Ds(0,t,r,o)})),wp=ji("<",(function(n,t,r){return t",(function(n,t,r){return t>r}),(function(n,t,r,o){return o.compare(t,r)>0})),Tp=ji("<=",(function(n,t,r){return t<=r}),(function(n,t,r,o){return o.compare(t,r)<=0})),Cp=ji(">=",(function(n,t,r){return t>=r}),(function(n,t,r,o){return o.compare(t,r)>=0}));class xl{constructor(t,r,o){this.type=rn,this.locale=o,this.caseSensitive=t,this.diacriticSensitive=r}static parse(t,r){if(t.length!==2)return r.error("Expected one argument.");const o=t[1];if(typeof o!="object"||Array.isArray(o))return r.error("Collator options argument must be an object.");const c=r.parse(o["case-sensitive"]!==void 0&&o["case-sensitive"],1,Bt);if(!c)return null;const f=r.parse(o["diacritic-sensitive"]!==void 0&&o["diacritic-sensitive"],1,Bt);if(!f)return null;let _=null;return o.locale&&(_=r.parse(o.locale,1,At),!_)?null:new xl(c,f,_)}evaluate(t){return new Mn(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}}class Lc{constructor(t,r,o,c,f){this.type=At,this.number=t,this.locale=r,this.currency=o,this.minFractionDigits=c,this.maxFractionDigits=f}static parse(t,r){if(t.length!==3)return r.error("Expected two arguments.");const o=r.parse(t[1],1,He);if(!o)return null;const c=t[2];if(typeof c!="object"||Array.isArray(c))return r.error("NumberFormat options argument must be an object.");let f=null;if(c.locale&&(f=r.parse(c.locale,1,At),!f))return null;let _=null;if(c.currency&&(_=r.parse(c.currency,1,At),!_))return null;let v=null;if(c["min-fraction-digits"]&&(v=r.parse(c["min-fraction-digits"],1,He),!v))return null;let b=null;return c["max-fraction-digits"]&&(b=r.parse(c["max-fraction-digits"],1,He),!b)?null:new Lc(o,f,_,v,b)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}}class ko{constructor(t){this.type=pn,this.sections=t}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");const o=t[1];if(!Array.isArray(o)&&typeof o=="object")return r.error("First argument must be an image or text section.");const c=[];let f=!1;for(let _=1;_<=t.length-1;++_){const v=t[_];if(f&&typeof v=="object"&&!Array.isArray(v)){f=!1;let b=null;if(v["font-scale"]&&(b=r.parse(v["font-scale"],1,He),!b))return null;let S=null;if(v["text-font"]&&(S=r.parse(v["text-font"],1,tn(At)),!S))return null;let I=null;if(v["text-color"]&&(I=r.parse(v["text-color"],1,Kt),!I))return null;let L=null;if(v["vertical-align"]){if(typeof v["vertical-align"]=="string"&&!bn.includes(v["vertical-align"]))return r.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${v["vertical-align"]}' instead.`);if(L=r.parse(v["vertical-align"],1,At),!L)return null}const F=c[c.length-1];F.scale=b,F.font=S,F.textColor=I,F.verticalAlign=L}else{const b=r.parse(t[_],1,ur);if(!b)return null;const S=b.type.kind;if(S!=="string"&&S!=="value"&&S!=="null"&&S!=="resolvedImage")return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");f=!0,c.push({content:b,scale:null,font:null,textColor:null,verticalAlign:null})}}return new ko(c)}evaluate(t){return new Sn(this.sections.map((r=>{const o=r.content.evaluate(t);return Rr(o)===pr?new ln("",o,null,null,null,r.verticalAlign?r.verticalAlign.evaluate(t):null):new ln($r(o),null,r.scale?r.scale.evaluate(t):null,r.font?r.font.evaluate(t).join(","):null,r.textColor?r.textColor.evaluate(t):null,r.verticalAlign?r.verticalAlign.evaluate(t):null)})))}eachChild(t){for(const r of this.sections)t(r.content),r.scale&&t(r.scale),r.font&&t(r.font),r.textColor&&t(r.textColor),r.verticalAlign&&t(r.verticalAlign)}outputDefined(){return!1}}class Dc{constructor(t){this.type=pr,this.input=t}static parse(t,r){if(t.length!==2)return r.error("Expected two arguments.");const o=r.parse(t[1],1,At);return o?new Dc(o):r.error("No image name provided.")}evaluate(t){const r=this.input.evaluate(t),o=Hn.fromString(r);return o&&t.availableImages&&(o.available=t.availableImages.indexOf(r)>-1),o}eachChild(t){t(this.input)}outputDefined(){return!1}}class bl{constructor(t){this.type=He,this.input=t}static parse(t,r){if(t.length!==2)return r.error(`Expected 1 argument, but found ${t.length-1} instead.`);const o=r.parse(t[1],1);return o?o.type.kind!=="array"&&o.type.kind!=="string"&&o.type.kind!=="value"?r.error(`Expected argument of type string or array, but found ${en(o.type)} instead.`):new bl(o):null}evaluate(t){const r=this.input.evaluate(t);if(typeof r=="string")return[...r].length;if(Array.isArray(r))return r.length;throw new an(`Expected value to be of type string or array, but found ${en(Rr(r))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}}const Pa=8192;function Sp(n,t){const r=(180+n[0])/360,o=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n[1]*Math.PI/360)))/360,c=Math.pow(2,t.z);return[Math.round(r*c*Pa),Math.round(o*c*Pa)]}function wl(n,t){const r=Math.pow(2,t.z);return[(c=(n[0]/Pa+t.x)/r,360*c-180),(o=(n[1]/Pa+t.y)/r,360/Math.PI*Math.atan(Math.exp((180-360*o)*Math.PI/180))-90)];var o,c}function Rs(n,t){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function Bs(n,t){return!(n[0]<=t[0]||n[2]>=t[2]||n[1]<=t[1]||n[3]>=t[3])}function Pp(n,t,r){const o=n[0]-t[0],c=n[1]-t[1],f=n[0]-r[0],_=n[1]-r[1];return o*_-f*c==0&&o*f<=0&&c*_<=0}function Tl(n,t,r,o){return(c=[o[0]-r[0],o[1]-r[1]])[0]*(f=[t[0]-n[0],t[1]-n[1]])[1]-c[1]*f[0]!=0&&!(!jh(n,t,r,o)||!jh(r,o,n,t));var c,f}function Ip(n,t,r){for(const o of r)for(let c=0;c(c=n)[1]!=(_=v[b+1])[1]>c[1]&&c[0]<(_[0]-f[0])*(c[1]-f[1])/(_[1]-f[1])+f[0]&&(o=!o)}var c,f,_;return o}function Nh(n,t){for(const r of t)if(Ao(n,r))return!0;return!1}function Rc(n,t){for(const r of n)if(!Ao(r,t))return!1;for(let r=0;r0&&v<0||_<0&&v>0}function Bc(n,t,r){const o=[];for(let c=0;cr[2]){const c=.5*o;let f=n[0]-r[0]>c?-o:r[0]-n[0]>c?o:0;f===0&&(f=n[0]-r[2]>c?-o:r[2]-n[0]>c?o:0),n[0]+=f}Rs(t,n)}function qh(n,t,r,o){const c=Math.pow(2,o.z)*Pa,f=[o.x*Pa,o.y*Pa],_=[];for(const v of n)for(const b of v){const S=[b.x+f[0],b.y+f[1]];Cl(S,t,r,c),_.push(S)}return _}function Zh(n,t,r,o){const c=Math.pow(2,o.z)*Pa,f=[o.x*Pa,o.y*Pa],_=[];for(const b of n){const S=[];for(const I of b){const L=[I.x+f[0],I.y+f[1]];Rs(t,L),S.push(L)}_.push(S)}if(t[2]-t[0]<=c/2){(v=t)[0]=v[1]=1/0,v[2]=v[3]=-1/0;for(const b of _)for(const S of b)Cl(S,t,r,c)}var v;return _}class Eo{constructor(t,r){this.type=Bt,this.geojson=t,this.geometries=r}static parse(t,r){if(t.length!==2)return r.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(qa(t[1])){const o=t[1];if(o.type==="FeatureCollection"){const c=[];for(const f of o.features){const{type:_,coordinates:v}=f.geometry;_==="Polygon"&&c.push(v),_==="MultiPolygon"&&c.push(...v)}if(c.length)return new Eo(o,{type:"MultiPolygon",coordinates:c})}else if(o.type==="Feature"){const c=o.geometry.type;if(c==="Polygon"||c==="MultiPolygon")return new Eo(o,o.geometry)}else if(o.type==="Polygon"||o.type==="MultiPolygon")return new Eo(o,o)}return r.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return(function(r,o){const c=[1/0,1/0,-1/0,-1/0],f=[1/0,1/0,-1/0,-1/0],_=r.canonicalID();if(o.type==="Polygon"){const v=Bc(o.coordinates,f,_),b=qh(r.geometry(),c,f,_);if(!Bs(c,f))return!1;for(const S of b)if(!Ao(S,v))return!1}if(o.type==="MultiPolygon"){const v=Vh(o.coordinates,f,_),b=qh(r.geometry(),c,f,_);if(!Bs(c,f))return!1;for(const S of b)if(!Nh(S,v))return!1}return!0})(t,this.geometries);if(t.geometryType()==="LineString")return(function(r,o){const c=[1/0,1/0,-1/0,-1/0],f=[1/0,1/0,-1/0,-1/0],_=r.canonicalID();if(o.type==="Polygon"){const v=Bc(o.coordinates,f,_),b=Zh(r.geometry(),c,f,_);if(!Bs(c,f))return!1;for(const S of b)if(!Rc(S,v))return!1}if(o.type==="MultiPolygon"){const v=Vh(o.coordinates,f,_),b=Zh(r.geometry(),c,f,_);if(!Bs(c,f))return!1;for(const S of b)if(!Mp(S,v))return!1}return!0})(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let Fc=class{constructor(n=[],t=(r,o)=>ro?1:0){if(this.data=n,this.length=this.data.length,this.compare=t,this.length>0)for(let r=(this.length>>1)-1;r>=0;r--)this._down(r)}push(n){this.data.push(n),this._up(this.length++)}pop(){if(this.length===0)return;const n=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),n}peek(){return this.data[0]}_up(n){const{data:t,compare:r}=this,o=t[n];for(;n>0;){const c=n-1>>1,f=t[c];if(r(o,f)>=0)break;t[n]=f,n=c}t[n]=o}_down(n){const{data:t,compare:r}=this,o=this.length>>1,c=t[n];for(;n=0)break;t[n]=t[f],n=f}t[n]=c}};function Oc(n,t,r=0,o=n.length-1,c=kp){for(;o>r;){if(o-r>600){const b=o-r+1,S=t-r+1,I=Math.log(b),L=.5*Math.exp(2*I/3),F=.5*Math.sqrt(I*L*(b-L)/b)*(S-b/2<0?-1:1);Oc(n,t,Math.max(r,Math.floor(t-S*L/b+F)),Math.min(o,Math.floor(t+(b-S)*L/b+F)),c)}const f=n[t];let _=r,v=o;for(Fs(n,r,t),c(n[o],f)>0&&Fs(n,r,o);_0;)v--}c(n[r],f)===0?Fs(n,r,v):(v++,Fs(n,v,o)),v<=t&&(r=v+1),t<=v&&(o=v-1)}}function Fs(n,t,r){const o=n[t];n[t]=n[r],n[r]=o}function kp(n,t){return nt?1:0}function Os(n,t){if(n.length<=1)return[n];const r=[];let o,c;for(const f of n){const _=Ap(f);_!==0&&(f.area=Math.abs(_),c===void 0&&(c=_<0),c===_<0?(o&&r.push(o),o=[f]):o.push(f))}if(o&&r.push(o),t>1)for(let f=0;f1?(S=t[b+1][0],I=t[b+1][1]):q>0&&(S+=L/this.kx*q,I+=F/this.ky*q)),L=this.wrap(r[0]-S)*this.kx,F=(r[1]-I)*this.ky;const U=L*L+F*F;U180;)t-=360;return t}}function Hh(n,t){return t[0]-n[0]}function Sl(n){return n[1]-n[0]+1}function eo(n,t){return n[1]>=n[0]&&n[1]n[1])return[null,null];const r=Sl(n);if(t){if(r===2)return[n,null];const c=Math.floor(r/2);return[[n[0],n[0]+c],[n[0]+c,n[1]]]}if(r===1)return[n,null];const o=Math.floor(r/2)-1;return[[n[0],n[0]+o],[n[0]+o+1,n[1]]]}function Vc(n,t){if(!eo(t,n.length))return[1/0,1/0,-1/0,-1/0];const r=[1/0,1/0,-1/0,-1/0];for(let o=t[0];o<=t[1];++o)Rs(r,n[o]);return r}function qc(n){const t=[1/0,1/0,-1/0,-1/0];for(const r of n)for(const o of r)Rs(t,o);return t}function Wh(n){return n[0]!==-1/0&&n[1]!==-1/0&&n[2]!==1/0&&n[3]!==1/0}function Zc(n,t,r){if(!Wh(n)||!Wh(t))return NaN;let o=0,c=0;return n[2]t[2]&&(o=n[0]-t[2]),n[1]>t[3]&&(c=n[1]-t[3]),n[3]=o)return o;if(Bs(c,f)){if(Xh(n,t))return 0}else if(Xh(t,n))return 0;let _=1/0;for(const v of n)for(let b=0,S=v.length,I=S-1;b0;){const b=_.pop();if(b[0]>=f)continue;const S=b[1],I=t?50:100;if(Sl(S)<=I){if(!eo(S,n.length))return NaN;if(t){const L=Dp(n,S,r,o);if(isNaN(L)||L===0)return L;f=Math.min(f,L)}else for(let L=S[0];L<=S[1];++L){const F=Lp(n[L],r,o);if(f=Math.min(f,F),f===0)return 0}}else{const L=Pn(S,t);Yh(_,f,o,n,v,L[0]),Yh(_,f,o,n,v,L[1])}}return f}function Ml(n,t,r,o,c,f=1/0){let _=Math.min(f,c.distance(n[0],r[0]));if(_===0)return _;const v=new Fc([[0,[0,n.length-1],[0,r.length-1]]],Hh);for(;v.length>0;){const b=v.pop();if(b[0]>=_)continue;const S=b[1],I=b[2],L=t?50:100,F=o?50:100;if(Sl(S)<=L&&Sl(I)<=F){if(!eo(S,n.length)&&eo(I,r.length))return NaN;let q;if(t&&o)q=Ep(n,S,r,I,c),_=Math.min(_,q);else if(t&&!o){const U=n.slice(S[0],S[1]+1);for(let W=I[0];W<=I[1];++W)if(q=zo(r[W],U,c),_=Math.min(_,q),_===0)return _}else if(!t&&o){const U=r.slice(I[0],I[1]+1);for(let W=S[0];W<=S[1];++W)if(q=zo(n[W],U,c),_=Math.min(_,q),_===0)return _}else q=zp(n,S,r,I,c),_=Math.min(_,q)}else{const q=Pn(S,t),U=Pn(I,o);Pl(v,_,c,n,r,q[0],U[0]),Pl(v,_,c,n,r,q[0],U[1]),Pl(v,_,c,n,r,q[1],U[0]),Pl(v,_,c,n,r,q[1],U[1])}}return _}function $c(n){return n.type==="MultiPolygon"?n.coordinates.map((t=>({type:"Polygon",coordinates:t}))):n.type==="MultiLineString"?n.coordinates.map((t=>({type:"LineString",coordinates:t}))):n.type==="MultiPoint"?n.coordinates.map((t=>({type:"Point",coordinates:t}))):[n]}class Lo{constructor(t,r){this.type=He,this.geojson=t,this.geometries=r}static parse(t,r){if(t.length!==2)return r.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(qa(t[1])){const o=t[1];if(o.type==="FeatureCollection")return new Lo(o,o.features.map((c=>$c(c.geometry))).flat());if(o.type==="Feature")return new Lo(o,$c(o.geometry));if("type"in o&&"coordinates"in o)return new Lo(o,$c(o))}return r.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return(function(r,o){const c=r.geometry(),f=c.flat().map((b=>wl([b.x,b.y],r.canonical)));if(c.length===0)return NaN;const _=new jc(f[0][1]);let v=1/0;for(const b of o){switch(b.type){case"Point":v=Math.min(v,Ml(f,!1,[b.coordinates],!1,_,v));break;case"LineString":v=Math.min(v,Ml(f,!1,b.coordinates,!0,_,v));break;case"Polygon":v=Math.min(v,Il(f,!1,b.coordinates,_,v))}if(v===0)return v}return v})(t,this.geometries);if(t.geometryType()==="LineString")return(function(r,o){const c=r.geometry(),f=c.flat().map((b=>wl([b.x,b.y],r.canonical)));if(c.length===0)return NaN;const _=new jc(f[0][1]);let v=1/0;for(const b of o){switch(b.type){case"Point":v=Math.min(v,Ml(f,!0,[b.coordinates],!1,_,v));break;case"LineString":v=Math.min(v,Ml(f,!0,b.coordinates,!0,_,v));break;case"Polygon":v=Math.min(v,Il(f,!0,b.coordinates,_,v))}if(v===0)return v}return v})(t,this.geometries);if(t.geometryType()==="Polygon")return(function(r,o){const c=r.geometry();if(c.length===0||c[0].length===0)return NaN;const f=Os(c,0).map((b=>b.map((S=>S.map((I=>wl([I.x,I.y],r.canonical))))))),_=new jc(f[0][0][0][1]);let v=1/0;for(const b of o)for(const S of f){switch(b.type){case"Point":v=Math.min(v,Il([b.coordinates],!1,S,_,v));break;case"LineString":v=Math.min(v,Il(b.coordinates,!0,S,_,v));break;case"Polygon":v=Math.min(v,Rp(S,b.coordinates,_,v))}if(v===0)return v}return v})(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}class Ns{constructor(t){this.type=ur,this.key=t}static parse(t,r){if(t.length!==2)return r.error(`Expected 1 argument, but found ${t.length-1} instead.`);const o=t[1];return o==null?r.error("Global state property must be defined."):typeof o!="string"?r.error(`Global state property must be string, but found ${typeof t[1]} instead.`):new Ns(o)}evaluate(t){var r;const o=(r=t.globals)===null||r===void 0?void 0:r.globalState;return o&&Object.keys(o).length!==0?ar(o,this.key):null}eachChild(){}outputDefined(){return!1}}const ts={"==":Oh,"!=":yl,">":zc,"<":wp,">=":Cp,"<=":Tp,array:Li,at:gl,boolean:Li,case:Qo,coalesce:zs,collator:xl,format:ko,image:Dc,in:vl,"index-of":Sa,interpolate:Di,"interpolate-hcl":Di,"interpolate-lab":Di,length:bl,let:Qa,literal:_a,match:Ti,number:Li,"number-format":Lc,object:Li,slice:ks,step:ei,string:Li,"to-boolean":sa,"to-color":sa,"to-number":sa,"to-string":sa,var:Jo,within:Eo,distance:Lo,"global-state":Ns};class va{constructor(t,r,o,c){this.name=t,this.type=r,this._evaluate=o,this.args=c}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(t,r){const o=t[0],c=va.definitions[o];if(!c)return r.error(`Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`,0);const f=Array.isArray(c)?c[0]:c.type,_=Array.isArray(c)?[[c[1],c[2]]]:c.overloads,v=_.filter((([S])=>!Array.isArray(S)||S.length===t.length-1));let b=null;for(const[S,I]of v){b=new Ca(r.registry,kl,r.path,null,r.scope);const L=[];let F=!1;for(let q=1;q{return F=L,Array.isArray(F)?`(${F.map(en).join(", ")})`:`(${en(F.type)}...)`;var F})).join(" | "),I=[];for(let L=1;L{r=t?r&&kl(o):r&&o instanceof _a})),!!r&&Al(n)&&El(n,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function Al(n){if(n instanceof va&&(n.name==="get"&&n.args.length===1||n.name==="feature-state"||n.name==="has"&&n.args.length===1||n.name==="properties"||n.name==="geometry-type"||n.name==="id"||/^filter-/.test(n.name))||n instanceof Eo||n instanceof Lo)return!1;let t=!0;return n.eachChild((r=>{t&&!Al(r)&&(t=!1)})),t}function js(n){if(n instanceof va&&n.name==="feature-state")return!1;let t=!0;return n.eachChild((r=>{t&&!js(r)&&(t=!1)})),t}function El(n,t){if(n instanceof va&&t.indexOf(n.name)>=0)return!1;let r=!0;return n.eachChild((o=>{r&&!El(o,t)&&(r=!1)})),r}function Qh(n){return{result:"success",value:n}}function rs(n){return{result:"error",value:n}}function fo(n){return n["property-type"]==="data-driven"||n["property-type"]==="cross-faded-data-driven"}function ed(n){return!!n.expression&&n.expression.parameters.indexOf("zoom")>-1}function Hc(n){return!!n.expression&&n.expression.interpolated}function on(n){return n instanceof Number?"number":n instanceof String?"string":n instanceof Boolean?"boolean":Array.isArray(n)?"array":n===null?"null":typeof n}function Vs(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&Rr(n)===Er}function Bp(n){return n}function td(n,t){const r=n.stops&&typeof n.stops[0][0]=="object",o=r||!(r||n.property!==void 0),c=n.type||(Hc(t)?"exponential":"interval"),f=(function(I){switch(I.type){case"color":return Mr.parse;case"padding":return kn.parse;case"numberArray":return gn.parse;case"colorArray":return fn.parse;default:return null}})(t);if(f&&((n=Wr({},n)).stops&&(n.stops=n.stops.map((I=>[I[0],f(I[1])]))),n.default=f(n.default?n.default:t.default)),n.colorSpace&&(_=n.colorSpace)!=="rgb"&&_!=="hcl"&&_!=="lab")throw new Error(`Unknown color space: "${n.colorSpace}"`);var _;const v=(function(I){switch(I){case"exponential":return nd;case"interval":return Fp;case"categorical":return rd;case"identity":return Op;default:throw new Error(`Unknown function type "${I}"`)}})(c);let b,S;if(c==="categorical"){b=Object.create(null);for(const I of n.stops)b[I[0]]=I[1];S=typeof n.stops[0][0]}if(r){const I={},L=[];for(let U=0;UU[0])),evaluate:({zoom:U},W)=>nd({stops:F,base:n.base},t,U).evaluate(U,W)}}if(o){const I=c==="exponential"?{name:"exponential",base:n.base!==void 0?n.base:1}:null;return{kind:"camera",interpolationType:I,interpolationFactor:Di.interpolationFactor.bind(void 0,I),zoomStops:n.stops.map((L=>L[0])),evaluate:({zoom:L})=>v(n,t,L,b,S)}}return{kind:"source",evaluate(I,L){const F=L&&L.properties?L.properties[n.property]:void 0;return F===void 0?mo(n.default,t.default):v(n,t,F,b,S)}}}function mo(n,t,r){return n!==void 0?n:t!==void 0?t:r!==void 0?r:void 0}function rd(n,t,r,o,c){return mo(typeof r===c?o[r]:void 0,n.default,t.default)}function Fp(n,t,r){if(on(r)!=="number")return mo(n.default,t.default);const o=n.stops.length;if(o===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[o-1][0])return n.stops[o-1][1];const c=Mo(n.stops.map((f=>f[0])),r);return n.stops[c][1]}function nd(n,t,r){const o=n.base!==void 0?n.base:1;if(on(r)!=="number")return mo(n.default,t.default);const c=n.stops.length;if(c===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[c-1][0])return n.stops[c-1][1];const f=Mo(n.stops.map((I=>I[0])),r),_=(function(I,L,F,q){const U=q-F,W=I-F;return U===0?0:L===1?W/U:(Math.pow(L,W)-1)/(Math.pow(L,U)-1)})(r,o,n.stops[f][0],n.stops[f+1][0]),v=n.stops[f][1],b=n.stops[f+1][1],S=Za[t.type]||Bp;return typeof v.evaluate=="function"?{evaluate(...I){const L=v.evaluate.apply(void 0,I),F=b.evaluate.apply(void 0,I);if(L!==void 0&&F!==void 0)return S(L,F,_,n.colorSpace)}}:S(v,b,_,n.colorSpace)}function Op(n,t,r){switch(t.type){case"color":r=Mr.parse(r);break;case"formatted":r=Sn.fromString(r.toString());break;case"resolvedImage":r=Hn.fromString(r.toString());break;case"padding":r=kn.parse(r);break;case"colorArray":r=fn.parse(r);break;case"numberArray":r=gn.parse(r);break;default:on(r)===t.type||t.type==="enum"&&t.values[r]||(r=void 0)}return mo(r,n.default,t.default)}va.register(ts,{error:[{kind:"error"},[At],(n,[t])=>{throw new an(t.evaluate(n))}],typeof:[At,[ur],(n,[t])=>en(Rr(t.evaluate(n)))],"to-rgba":[tn(He,4),[Kt],(n,[t])=>{const[r,o,c,f]=t.evaluate(n).rgb;return[255*r,255*o,255*c,f]}],rgb:[Kt,[He,He,He],Kh],rgba:[Kt,[He,He,He,He],Kh],has:{type:Bt,overloads:[[[At],(n,[t])=>Jh(t.evaluate(n),n.properties())],[[At,Er],(n,[t,r])=>Jh(t.evaluate(n),r.evaluate(n))]]},get:{type:ur,overloads:[[[At],(n,[t])=>Gc(t.evaluate(n),n.properties())],[[At,Er],(n,[t,r])=>Gc(t.evaluate(n),r.evaluate(n))]]},"feature-state":[ur,[At],(n,[t])=>Gc(t.evaluate(n),n.featureState||{})],properties:[Er,[],n=>n.properties()],"geometry-type":[At,[],n=>n.geometryType()],id:[ur,[],n=>n.id()],zoom:[He,[],n=>n.globals.zoom],"heatmap-density":[He,[],n=>n.globals.heatmapDensity||0],elevation:[He,[],n=>n.globals.elevation||0],"line-progress":[He,[],n=>n.globals.lineProgress||0],accumulated:[ur,[],n=>n.globals.accumulated===void 0?null:n.globals.accumulated],"+":[He,Do(He),(n,t)=>{let r=0;for(const o of t)r+=o.evaluate(n);return r}],"*":[He,Do(He),(n,t)=>{let r=1;for(const o of t)r*=o.evaluate(n);return r}],"-":{type:He,overloads:[[[He,He],(n,[t,r])=>t.evaluate(n)-r.evaluate(n)],[[He],(n,[t])=>-t.evaluate(n)]]},"/":[He,[He,He],(n,[t,r])=>t.evaluate(n)/r.evaluate(n)],"%":[He,[He,He],(n,[t,r])=>t.evaluate(n)%r.evaluate(n)],ln2:[He,[],()=>Math.LN2],pi:[He,[],()=>Math.PI],e:[He,[],()=>Math.E],"^":[He,[He,He],(n,[t,r])=>Math.pow(t.evaluate(n),r.evaluate(n))],sqrt:[He,[He],(n,[t])=>Math.sqrt(t.evaluate(n))],log10:[He,[He],(n,[t])=>Math.log(t.evaluate(n))/Math.LN10],ln:[He,[He],(n,[t])=>Math.log(t.evaluate(n))],log2:[He,[He],(n,[t])=>Math.log(t.evaluate(n))/Math.LN2],sin:[He,[He],(n,[t])=>Math.sin(t.evaluate(n))],cos:[He,[He],(n,[t])=>Math.cos(t.evaluate(n))],tan:[He,[He],(n,[t])=>Math.tan(t.evaluate(n))],asin:[He,[He],(n,[t])=>Math.asin(t.evaluate(n))],acos:[He,[He],(n,[t])=>Math.acos(t.evaluate(n))],atan:[He,[He],(n,[t])=>Math.atan(t.evaluate(n))],min:[He,Do(He),(n,t)=>Math.min(...t.map((r=>r.evaluate(n))))],max:[He,Do(He),(n,t)=>Math.max(...t.map((r=>r.evaluate(n))))],abs:[He,[He],(n,[t])=>Math.abs(t.evaluate(n))],round:[He,[He],(n,[t])=>{const r=t.evaluate(n);return r<0?-Math.round(-r):Math.round(r)}],floor:[He,[He],(n,[t])=>Math.floor(t.evaluate(n))],ceil:[He,[He],(n,[t])=>Math.ceil(t.evaluate(n))],"filter-==":[Bt,[At,ur],(n,[t,r])=>n.properties()[t.value]===r.value],"filter-id-==":[Bt,[ur],(n,[t])=>n.id()===t.value],"filter-type-==":[Bt,[At],(n,[t])=>n.geometryType()===t.value],"filter-<":[Bt,[At,ur],(n,[t,r])=>{const o=n.properties()[t.value],c=r.value;return typeof o==typeof c&&o{const r=n.id(),o=t.value;return typeof r==typeof o&&r":[Bt,[At,ur],(n,[t,r])=>{const o=n.properties()[t.value],c=r.value;return typeof o==typeof c&&o>c}],"filter-id->":[Bt,[ur],(n,[t])=>{const r=n.id(),o=t.value;return typeof r==typeof o&&r>o}],"filter-<=":[Bt,[At,ur],(n,[t,r])=>{const o=n.properties()[t.value],c=r.value;return typeof o==typeof c&&o<=c}],"filter-id-<=":[Bt,[ur],(n,[t])=>{const r=n.id(),o=t.value;return typeof r==typeof o&&r<=o}],"filter->=":[Bt,[At,ur],(n,[t,r])=>{const o=n.properties()[t.value],c=r.value;return typeof o==typeof c&&o>=c}],"filter-id->=":[Bt,[ur],(n,[t])=>{const r=n.id(),o=t.value;return typeof r==typeof o&&r>=o}],"filter-has":[Bt,[ur],(n,[t])=>t.value in n.properties()],"filter-has-id":[Bt,[],n=>n.id()!==null&&n.id()!==void 0],"filter-type-in":[Bt,[tn(At)],(n,[t])=>t.value.indexOf(n.geometryType())>=0],"filter-id-in":[Bt,[tn(ur)],(n,[t])=>t.value.indexOf(n.id())>=0],"filter-in-small":[Bt,[At,tn(ur)],(n,[t,r])=>r.value.indexOf(n.properties()[t.value])>=0],"filter-in-large":[Bt,[At,tn(ur)],(n,[t,r])=>(function(o,c,f,_){for(;f<=_;){const v=f+_>>1;if(c[v]===o)return!0;c[v]>o?_=v-1:f=v+1}return!1})(n.properties()[t.value],r.value,0,r.value.length-1)],all:{type:Bt,overloads:[[[Bt,Bt],(n,[t,r])=>t.evaluate(n)&&r.evaluate(n)],[Do(Bt),(n,t)=>{for(const r of t)if(!r.evaluate(n))return!1;return!0}]]},any:{type:Bt,overloads:[[[Bt,Bt],(n,[t,r])=>t.evaluate(n)||r.evaluate(n)],[Do(Bt),(n,t)=>{for(const r of t)if(r.evaluate(n))return!0;return!1}]]},"!":[Bt,[Bt],(n,[t])=>!t.evaluate(n)],"is-supported-script":[Bt,[At],(n,[t])=>{const r=n.globals&&n.globals.isSupportedScript;return!r||r(t.evaluate(n))}],upcase:[At,[At],(n,[t])=>t.evaluate(n).toUpperCase()],downcase:[At,[At],(n,[t])=>t.evaluate(n).toLowerCase()],concat:[At,Do(ur),(n,t)=>t.map((r=>$r(r.evaluate(n)))).join("")],"resolved-locale":[At,[rn],(n,[t])=>t.evaluate(n).resolvedLocale()]});class Wc{constructor(t,r){this.expression=t,this._warningHistory={},this._evaluator=new Ms,this._defaultValue=r?(function(o){if(o.type==="color"&&Vs(o.default))return new Mr(0,0,0,0);switch(o.type){case"color":return Mr.parse(o.default)||null;case"padding":return kn.parse(o.default)||null;case"numberArray":return gn.parse(o.default)||null;case"colorArray":return fn.parse(o.default)||null;case"variableAnchorOffsetCollection":return fi.parse(o.default)||null;case"projectionDefinition":return jn.parse(o.default)||null;default:return o.default===void 0?null:o.default}})(r):null,this._enumValues=r&&r.type==="enum"?r.values:null}evaluateWithoutErrorHandling(t,r,o,c,f,_){return this._evaluator.globals=t,this._evaluator.feature=r,this._evaluator.featureState=o,this._evaluator.canonical=c,this._evaluator.availableImages=f||null,this._evaluator.formattedSection=_,this.expression.evaluate(this._evaluator)}evaluate(t,r,o,c,f,_){this._evaluator.globals=t,this._evaluator.feature=r||null,this._evaluator.featureState=o||null,this._evaluator.canonical=c,this._evaluator.availableImages=f||null,this._evaluator.formattedSection=_||null;try{const v=this.expression.evaluate(this._evaluator);if(v==null||typeof v=="number"&&v!=v)return this._defaultValue;if(this._enumValues&&!(v in this._enumValues))throw new an(`Expected value to be one of ${Object.keys(this._enumValues).map((b=>JSON.stringify(b))).join(", ")}, but found ${JSON.stringify(v)} instead.`);return v}catch(v){return this._warningHistory[v.message]||(this._warningHistory[v.message]=!0,typeof console<"u"&&console.warn(v.message)),this._defaultValue}}}function zl(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="string"&&n[0]in ts}function qs(n,t){const r=new Ca(ts,kl,[],t?(function(c){const f={color:Kt,string:At,number:He,enum:At,boolean:Bt,formatted:pn,padding:_n,numberArray:En,colorArray:sn,projectionDefinition:Tr,resolvedImage:pr,variableAnchorOffsetCollection:In};return c.type==="array"?tn(f[c.value]||ur,c.length):f[c.type]})(t):void 0),o=r.parse(n,void 0,void 0,void 0,t&&t.type==="string"?{typeAnnotation:"coerce"}:void 0);return o?Qh(new Wc(o,t)):rs(r.errors)}class Zs{constructor(t,r){this.kind=t,this._styleExpression=r,this.isStateDependent=t!=="constant"&&!js(r.expression),this.globalStateRefs=Gs(r.expression)}evaluateWithoutErrorHandling(t,r,o,c,f,_){return this._styleExpression.evaluateWithoutErrorHandling(t,r,o,c,f,_)}evaluate(t,r,o,c,f,_){return this._styleExpression.evaluate(t,r,o,c,f,_)}}class Xc{constructor(t,r,o,c){this.kind=t,this.zoomStops=o,this._styleExpression=r,this.isStateDependent=t!=="camera"&&!js(r.expression),this.globalStateRefs=Gs(r.expression),this.interpolationType=c}evaluateWithoutErrorHandling(t,r,o,c,f,_){return this._styleExpression.evaluateWithoutErrorHandling(t,r,o,c,f,_)}evaluate(t,r,o,c,f,_){return this._styleExpression.evaluate(t,r,o,c,f,_)}interpolationFactor(t,r,o){return this.interpolationType?Di.interpolationFactor(this.interpolationType,t,r,o):0}}function id(n,t){const r=qs(n,t);if(r.result==="error")return r;const o=r.value.expression,c=Al(o);if(!c&&!fo(t))return rs([new Yr("","data expressions not supported")]);const f=El(o,["zoom"]);if(!f&&!ed(t))return rs([new Yr("","zoom expressions not supported")]);const _=$s(o);return _||f?_ instanceof Yr?rs([_]):_ instanceof Di&&!Hc(t)?rs([new Yr("",'"interpolate" expressions cannot be used with this property')]):Qh(_?new Xc(c?"camera":"composite",r.value,_.labels,_ instanceof Di?_.interpolation:void 0):new Zs(c?"constant":"source",r.value)):rs([new Yr("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Us{constructor(t,r){this._parameters=t,this._specification=r,Wr(this,td(this._parameters,this._specification))}static deserialize(t){return new Us(t._parameters,t._specification)}static serialize(t){return{_parameters:t._parameters,_specification:t._specification}}}function $s(n){let t=null;if(n instanceof Qa)t=$s(n.result);else if(n instanceof zs){for(const r of n.args)if(t=$s(r),t)break}else(n instanceof ei||n instanceof Di)&&n.input instanceof va&&n.input.name==="zoom"&&(t=n);return t instanceof Yr||n.eachChild((r=>{const o=$s(r);o instanceof Yr?t=o:!t&&o?t=new Yr("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):t&&o&&t!==o&&(t=new Yr("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))})),t}function Gs(n,t=new Set){return n instanceof Ns&&t.add(n.key),n.eachChild((r=>{Gs(r,t)})),t}function Ll(n){if(n===!0||n===!1)return!0;if(!Array.isArray(n)||n.length===0)return!1;switch(n[0]){case"has":return n.length>=2&&n[1]!=="$id"&&n[1]!=="$type";case"in":return n.length>=3&&(typeof n[1]!="string"||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return n.length!==3||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const t of n.slice(1))if(!Ll(t)&&typeof t!="boolean")return!1;return!0;default:return!0}}const Yc={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function Ro(n){if(n==null)return{filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};Ll(n)||(n=Bo(n));const t=qs(n,Yc);if(t.result==="error")throw new Error(t.value.map((r=>`${r.key}: ${r.message}`)).join(", "));return{filter:(r,o,c)=>t.value.evaluate(r,o,{},c),needGeometry:Dl(n),getGlobalStateRefs:()=>Gs(t.value.expression)}}function Kc(n,t){return nt?1:0}function Dl(n){if(!Array.isArray(n))return!1;if(n[0]==="within"||n[0]==="distance")return!0;for(let t=1;t"||t==="<="||t===">="?Jc(n[1],n[2],t):t==="any"?(r=n.slice(1),["any"].concat(r.map(Bo))):t==="all"?["all"].concat(n.slice(1).map(Bo)):t==="none"?["all"].concat(n.slice(1).map(Bo).map(Rl)):t==="in"?ad(n[1],n.slice(2)):t==="!in"?Rl(ad(n[1],n.slice(2))):t==="has"?od(n[1]):t!=="!has"||Rl(od(n[1]));var r}function Jc(n,t,r){switch(n){case"$type":return[`filter-type-${r}`,t];case"$id":return[`filter-id-${r}`,t];default:return[`filter-${r}`,n,t]}}function ad(n,t){if(t.length===0)return!1;switch(n){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some((r=>typeof r!=typeof t[0]))?["filter-in-large",n,["literal",t.sort(Kc)]]:["filter-in-small",n,["literal",t]]}}function od(n){switch(n){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",n]}}function Rl(n){return["!",n]}function Qc(n){const t=typeof n;if(t==="number"||t==="boolean"||t==="string"||n==null)return JSON.stringify(n);if(Array.isArray(n)){let c="[";for(const f of n)c+=`${Qc(f)},`;return`${c}]`}const r=Object.keys(n).sort();let o="{";for(let c=0;co.maximum?[new ht(t,r,`${r} is greater than the maximum value ${o.maximum}`)]:[]}function sd(n){const t=n.valueSpec,r=Kn(n.value.type);let o,c,f,_={};const v=r!=="categorical"&&n.value.property===void 0,b=!v,S=on(n.value.stops)==="array"&&on(n.value.stops[0])==="array"&&on(n.value.stops[0][0])==="object",I=ya({key:n.key,value:n.value,valueSpec:n.styleSpec.function,validateSpec:n.validateSpec,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{stops:function(q){if(r==="identity")return[new ht(q.key,q.value,'identity function may not have a "stops" property')];let U=[];const W=q.value;return U=U.concat(Bl({key:q.key,value:W,valueSpec:q.valueSpec,validateSpec:q.validateSpec,style:q.style,styleSpec:q.styleSpec,arrayElementValidator:L})),on(W)==="array"&&W.length===0&&U.push(new ht(q.key,W,"array must have at least one stop")),U},default:function(q){return q.validateSpec({key:q.key,value:q.value,valueSpec:t,validateSpec:q.validateSpec,style:q.style,styleSpec:q.styleSpec})}}});return r==="identity"&&v&&I.push(new ht(n.key,n.value,'missing required property "property"')),r==="identity"||n.value.stops||I.push(new ht(n.key,n.value,'missing required property "stops"')),r==="exponential"&&n.valueSpec.expression&&!Hc(n.valueSpec)&&I.push(new ht(n.key,n.value,"exponential functions not supported")),n.styleSpec.$version>=8&&(b&&!fo(n.valueSpec)?I.push(new ht(n.key,n.value,"property functions not supported")):v&&!ed(n.valueSpec)&&I.push(new ht(n.key,n.value,"zoom functions not supported"))),r!=="categorical"&&!S||n.value.property!==void 0||I.push(new ht(n.key,n.value,'"property" property is required')),I;function L(q){let U=[];const W=q.value,J=q.key;if(on(W)!=="array")return[new ht(J,W,`array expected, ${on(W)} found`)];if(W.length!==2)return[new ht(J,W,`array length 2 expected, length ${W.length} found`)];if(S){if(on(W[0])!=="object")return[new ht(J,W,`object expected, ${on(W[0])} found`)];if(W[0].zoom===void 0)return[new ht(J,W,"object stop key must have zoom")];if(W[0].value===void 0)return[new ht(J,W,"object stop key must have value")];if(f&&f>Kn(W[0].zoom))return[new ht(J,W[0].zoom,"stop zoom values must appear in ascending order")];Kn(W[0].zoom)!==f&&(f=Kn(W[0].zoom),c=void 0,_={}),U=U.concat(ya({key:`${J}[0]`,value:W[0],valueSpec:{zoom:{}},validateSpec:q.validateSpec,style:q.style,styleSpec:q.styleSpec,objectElementValidators:{zoom:Hs,value:F}}))}else U=U.concat(F({key:`${J}[0]`,value:W[0],validateSpec:q.validateSpec,style:q.style,styleSpec:q.styleSpec},W));return zl(Ua(W[1]))?U.concat([new ht(`${J}[1]`,W[1],"expressions are not allowed in function stops.")]):U.concat(q.validateSpec({key:`${J}[1]`,value:W[1],valueSpec:t,validateSpec:q.validateSpec,style:q.style,styleSpec:q.styleSpec}))}function F(q,U){const W=on(q.value),J=Kn(q.value),ce=q.value!==null?q.value:U;if(o){if(W!==o)return[new ht(q.key,ce,`${W} stop domain type must match previous stop domain type ${o}`)]}else o=W;if(W!=="number"&&W!=="string"&&W!=="boolean")return[new ht(q.key,ce,"stop domain value must be a number, string, or boolean")];if(W!=="number"&&r!=="categorical"){let Re=`number expected, ${W} found`;return fo(t)&&r===void 0&&(Re+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ht(q.key,ce,Re)]}return r!=="categorical"||W!=="number"||isFinite(J)&&Math.floor(J)===J?r!=="categorical"&&W==="number"&&c!==void 0&&Jnew ht(`${n.key}${o.key}`,n.value,o.message)));const r=t.value.expression||t.value._styleExpression.expression;if(n.expressionContext==="property"&&n.propertyKey==="text-font"&&!r.outputDefined())return[new ht(n.key,n.value,`Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.`)];if(n.expressionContext==="property"&&n.propertyType==="layout"&&!js(r))return[new ht(n.key,n.value,'"feature-state" data expressions are not supported with layout properties.')];if(n.expressionContext==="filter"&&!js(r))return[new ht(n.key,n.value,'"feature-state" data expressions are not supported with filters.')];if(n.expressionContext&&n.expressionContext.indexOf("cluster")===0){if(!El(r,["zoom","feature-state"]))return[new ht(n.key,n.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(n.expressionContext==="cluster-initial"&&!Al(r))return[new ht(n.key,n.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Fl(n){const t=n.key,r=n.value,o=on(r);return o!=="string"?[new ht(t,r,`color expected, ${o} found`)]:Mr.parse(String(r))?[]:[new ht(t,r,`color expected, "${r}" found`)]}function to(n){const t=n.key,r=n.value,o=n.valueSpec,c=[];return Array.isArray(o.values)?o.values.indexOf(Kn(r))===-1&&c.push(new ht(t,r,`expected one of [${o.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(o.values).indexOf(Kn(r))===-1&&c.push(new ht(t,r,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(r)} found`)),c}function tu(n){return Ll(Ua(n.value))?Fo(Wr({},n,{expressionContext:"filter",valueSpec:{value:"boolean"}})):ld(n)}function ld(n){const t=n.value,r=n.key;if(on(t)!=="array")return[new ht(r,t,`array expected, ${on(t)} found`)];const o=n.styleSpec;let c,f=[];if(t.length<1)return[new ht(r,t,"filter array must have at least 1 element")];switch(f=f.concat(to({key:`${r}[0]`,value:t[0],valueSpec:o.filter_operator,style:n.style,styleSpec:n.styleSpec})),Kn(t[0])){case"<":case"<=":case">":case">=":t.length>=2&&Kn(t[1])==="$type"&&f.push(new ht(r,t,`"$type" cannot be use with operator "${t[0]}"`));case"==":case"!=":t.length!==3&&f.push(new ht(r,t,`filter array for operator "${t[0]}" must have 3 elements`));case"in":case"!in":t.length>=2&&(c=on(t[1]),c!=="string"&&f.push(new ht(`${r}[1]`,t[1],`string expected, ${c} found`)));for(let _=2;_{S in r&&t.push(new ht(o,r[S],`"${S}" is prohibited for ref layers`))})),c.layers.forEach((S=>{Kn(S.id)===v&&(b=S)})),b?b.ref?t.push(new ht(o,r.ref,"ref cannot reference another ref layer")):_=Kn(b.type):t.push(new ht(o,r.ref,`ref layer "${v}" not found`))}else if(_!=="background")if(r.source){const b=c.sources&&c.sources[r.source],S=b&&Kn(b.type);b?S==="vector"&&_==="raster"?t.push(new ht(o,r.source,`layer "${r.id}" requires a raster source`)):S!=="raster-dem"&&_==="hillshade"||S!=="raster-dem"&&_==="color-relief"?t.push(new ht(o,r.source,`layer "${r.id}" requires a raster-dem source`)):S==="raster"&&_!=="raster"?t.push(new ht(o,r.source,`layer "${r.id}" requires a vector source`)):S!=="vector"||r["source-layer"]?S==="raster-dem"&&_!=="hillshade"&&_!=="color-relief"?t.push(new ht(o,r.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):_!=="line"||!r.paint||!r.paint["line-gradient"]||S==="geojson"&&b.lineMetrics||t.push(new ht(o,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new ht(o,r,`layer "${r.id}" must specify a "source-layer"`)):t.push(new ht(o,r.source,`source "${r.source}" not found`))}else t.push(new ht(o,r,'missing required property "source"'));return t=t.concat(ya({key:o,value:r,valueSpec:f.layer,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,objectElementValidators:{"*":()=>[],type:()=>n.validateSpec({key:`${o}.type`,value:r.type,valueSpec:f.layer.type,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,object:r,objectKey:"type"}),filter:tu,layout:b=>ya({layer:r,key:b.key,value:b.value,style:b.style,styleSpec:b.styleSpec,validateSpec:b.validateSpec,objectElementValidators:{"*":S=>hd(Wr({layerType:_},S))}}),paint:b=>ya({layer:r,key:b.key,value:b.value,style:b.style,styleSpec:b.styleSpec,validateSpec:b.validateSpec,objectElementValidators:{"*":S=>ud(Wr({layerType:_},S))}})}})),t}function Ia(n){const t=n.value,r=n.key,o=on(t);return o!=="string"?[new ht(r,t,`string expected, ${o} found`)]:[]}const ns={promoteId:function({key:n,value:t}){if(on(t)==="string")return Ia({key:n,value:t});{const r=[];for(const o in t)r.push(...Ia({key:`${n}.${o}`,value:t[o]}));return r}}};function Qi(n){const t=n.value,r=n.key,o=n.styleSpec,c=n.style,f=n.validateSpec;if(!t.type)return[new ht(r,t,'"type" is required')];const _=Kn(t.type);let v;switch(_){case"vector":case"raster":return v=ya({key:r,value:t,valueSpec:o[`source_${_.replace("-","_")}`],style:n.style,styleSpec:o,objectElementValidators:ns,validateSpec:f}),v;case"raster-dem":return v=(function(b){var S;const I=(S=b.sourceName)!==null&&S!==void 0?S:"",L=b.value,F=b.styleSpec,q=F.source_raster_dem,U=b.style;let W=[];const J=on(L);if(L===void 0)return W;if(J!=="object")return W.push(new ht("source_raster_dem",L,`object expected, ${J} found`)),W;const ce=Kn(L.encoding)==="custom",Re=["redFactor","greenFactor","blueFactor","baseShift"],ye=b.value.encoding?`"${b.value.encoding}"`:"Default";for(const Ce in L)!ce&&Re.includes(Ce)?W.push(new ht(Ce,L[Ce],`In "${I}": "${Ce}" is only valid when "encoding" is set to "custom". ${ye} encoding found`)):q[Ce]?W=W.concat(b.validateSpec({key:Ce,value:L[Ce],valueSpec:q[Ce],validateSpec:b.validateSpec,style:U,styleSpec:F})):W.push(new ht(Ce,L[Ce],`unknown property "${Ce}"`));return W})({sourceName:r,value:t,style:n.style,styleSpec:o,validateSpec:f}),v;case"geojson":if(v=ya({key:r,value:t,valueSpec:o.source_geojson,style:c,styleSpec:o,validateSpec:f,objectElementValidators:ns}),t.cluster)for(const b in t.clusterProperties){const[S,I]=t.clusterProperties[b],L=typeof S=="string"?[S,["accumulated"],["get",b]]:S;v.push(...Fo({key:`${r}.${b}.map`,value:I,expressionContext:"cluster-map"})),v.push(...Fo({key:`${r}.${b}.reduce`,value:L,expressionContext:"cluster-reduce"}))}return v;case"video":return ya({key:r,value:t,valueSpec:o.source_video,style:c,validateSpec:f,styleSpec:o});case"image":return ya({key:r,value:t,valueSpec:o.source_image,style:c,validateSpec:f,styleSpec:o});case"canvas":return[new ht(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return to({key:`${r}.type`,value:t.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function is(n){const t=n.value,r=n.styleSpec,o=r.light,c=n.style;let f=[];const _=on(t);if(t===void 0)return f;if(_!=="object")return f=f.concat([new ht("light",t,`object expected, ${_} found`)]),f;for(const v in t){const b=v.match(/^(.*)-transition$/);f=f.concat(b&&o[b[1]]&&o[b[1]].transition?n.validateSpec({key:v,value:t[v],valueSpec:r.transition,validateSpec:n.validateSpec,style:c,styleSpec:r}):o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],validateSpec:n.validateSpec,style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)])}return f}function ru(n){const t=n.value,r=n.styleSpec,o=r.sky,c=n.style,f=on(t);if(t===void 0)return[];if(f!=="object")return[new ht("sky",t,`object expected, ${f} found`)];let _=[];for(const v in t)_=_.concat(o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)]);return _}function pd(n){const t=n.value,r=n.styleSpec,o=r.terrain,c=n.style;let f=[];const _=on(t);if(t===void 0)return f;if(_!=="object")return f=f.concat([new ht("terrain",t,`object expected, ${_} found`)]),f;for(const v in t)f=f.concat(o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],validateSpec:n.validateSpec,style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)]);return f}function fd(n){let t=[];const r=n.value,o=n.key;if(Array.isArray(r)){const c=[],f=[];for(const _ in r)r[_].id&&c.includes(r[_].id)&&t.push(new ht(o,r,`all the sprites' ids must be unique, but ${r[_].id} is duplicated`)),c.push(r[_].id),r[_].url&&f.includes(r[_].url)&&t.push(new ht(o,r,`all the sprites' URLs must be unique, but ${r[_].url} is duplicated`)),f.push(r[_].url),t=t.concat(ya({key:`${o}[${_}]`,value:r[_],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:n.validateSpec}));return t}return Ia({key:o,value:r})}function as(n){return t=n.value,t&&t.constructor===Object?[]:[new ht(n.key,n.value,`object expected, ${on(n.value)} found`)];var t}const nu={"*":()=>[],array:Bl,boolean:function(n){const t=n.value,r=n.key,o=on(t);return o!=="boolean"?[new ht(r,t,`boolean expected, ${o} found`)]:[]},number:Hs,color:Fl,constants:eu,enum:to,filter:tu,function:sd,layer:dd,object:ya,source:Qi,light:is,sky:ru,terrain:pd,projection:function(n){const t=n.value,r=n.styleSpec,o=r.projection,c=n.style,f=on(t);if(t===void 0)return[];if(f!=="object")return[new ht("projection",t,`object expected, ${f} found`)];let _=[];for(const v in t)_=_.concat(o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)]);return _},projectionDefinition:function(n){const t=n.key;let r=n.value;r=r instanceof String?r.valueOf():r;const o=on(r);return o!=="array"||(function(c){return Array.isArray(c)&&c.length===3&&typeof c[0]=="string"&&typeof c[1]=="string"&&typeof c[2]=="number"})(r)||(function(c){return!!["interpolate","step","literal"].includes(c[0])})(r)?["array","string"].includes(o)?[]:[new ht(t,r,`projection expected, invalid type "${o}" found`)]:[new ht(t,r,`projection expected, invalid array ${JSON.stringify(r)} found`)]},string:Ia,formatted:function(n){return Ia(n).length===0?[]:Fo(n)},resolvedImage:function(n){return Ia(n).length===0?[]:Fo(n)},padding:function(n){const t=n.key,r=n.value;if(on(r)==="array"){if(r.length<1||r.length>4)return[new ht(t,r,`padding requires 1 to 4 values; ${r.length} values found`)];const o={type:"number"};let c=[];for(let f=0;f[]}})),n.constants&&(r=r.concat(eu({key:"constants",value:n.constants}))),ss(r)}function Ma(n){return function(t){return n({...t,validateSpec:os})}}function ss(n){return[].concat(n).sort(((t,r)=>t.line-r.line))}function ka(n){return function(...t){return ss(n.apply(this,t))}}ea.source=ka(Ma(Qi)),ea.sprite=ka(Ma(fd)),ea.glyphs=ka(Ma(md)),ea.light=ka(Ma(is)),ea.sky=ka(Ma(ru)),ea.terrain=ka(Ma(pd)),ea.state=ka(Ma(as)),ea.layer=ka(Ma(dd)),ea.filter=ka(Ma(tu)),ea.paintProperty=ka(Ma(ud)),ea.layoutProperty=ka(Ma(hd));const ls=ea,jp=ls.light,Ws=ls.sky,Vp=ls.paintProperty,qp=ls.layoutProperty;function Xs(n,t){let r=!1;if(t&&t.length)for(const o of t)n.fire(new Ye(new Error(o.message))),r=!0;return r}class Ys{constructor(t,r,o){const c=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;const _=new Int32Array(this.arrayBuffer);t=_[0],this.d=(r=_[1])+2*(o=_[2]);for(let b=0;b=L[U+0]&&c>=L[U+1])?(v[q]=!0,_.push(I[q])):v[q]=!1}}}}_forEachCell(t,r,o,c,f,_,v,b){const S=this._convertToCellCoord(t),I=this._convertToCellCoord(r),L=this._convertToCellCoord(o),F=this._convertToCellCoord(c);for(let q=S;q<=L;q++)for(let U=I;U<=F;U++){const W=this.d*U+q;if((!b||b(this._convertFromCellCoord(q),this._convertFromCellCoord(U),this._convertFromCellCoord(q+1),this._convertFromCellCoord(U+1)))&&f.call(this,t,r,o,c,W,_,v,b))return}}_convertFromCellCoord(t){return(t-this.padding)/this.scale}_convertToCellCoord(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const t=this.cells,r=3+this.cells.length+1+1;let o=0;for(let _=0;_=0)continue;const _=n[f];c[f]=Aa[r].shallow.indexOf(f)>=0?_:cs(_,t)}n instanceof Error&&(c.message=n.message)}if(c.$name)throw new Error("$name property is reserved for worker serialization logic.");return r!=="Object"&&(c.$name=r),c}function Oo(n){if(au(n))return n;if(Array.isArray(n))return n.map(Oo);if(typeof n!="object")throw new Error("can't deserialize object of type "+typeof n);const t=Ol(n)||"Object";if(!Aa[t])throw new Error(`can't deserialize unregistered class ${t}`);const{klass:r}=Aa[t];if(!r)throw new Error(`can't deserialize unregistered class ${t}`);if(r.deserialize)return r.deserialize(n);const o=Object.create(r.prototype);for(const c of Object.keys(n)){if(c==="$name")continue;const f=n[c];o[c]=Aa[t].shallow.indexOf(c)>=0?f:Oo(f)}return o}class Nl{constructor(){this.first=!0}update(t,r){const o=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=o,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=o,!0):(this.lastFloorZoom>o?(this.lastIntegerZoom=o+1,this.lastIntegerZoomTime=r):this.lastFloorZoomn>=128&&n<=255,"Hangul Jamo":n=>n>=4352&&n<=4607,Khmer:n=>n>=6016&&n<=6143,"General Punctuation":n=>n>=8192&&n<=8303,"Letterlike Symbols":n=>n>=8448&&n<=8527,"Number Forms":n=>n>=8528&&n<=8591,"Miscellaneous Technical":n=>n>=8960&&n<=9215,"Control Pictures":n=>n>=9216&&n<=9279,"Optical Character Recognition":n=>n>=9280&&n<=9311,"Enclosed Alphanumerics":n=>n>=9312&&n<=9471,"Geometric Shapes":n=>n>=9632&&n<=9727,"Miscellaneous Symbols":n=>n>=9728&&n<=9983,"Miscellaneous Symbols and Arrows":n=>n>=11008&&n<=11263,"Ideographic Description Characters":n=>n>=12272&&n<=12287,"CJK Symbols and Punctuation":n=>n>=12288&&n<=12351,Hiragana:n=>n>=12352&&n<=12447,Katakana:n=>n>=12448&&n<=12543,Kanbun:n=>n>=12688&&n<=12703,"CJK Strokes":n=>n>=12736&&n<=12783,"Enclosed CJK Letters and Months":n=>n>=12800&&n<=13055,"CJK Compatibility":n=>n>=13056&&n<=13311,"Yijing Hexagram Symbols":n=>n>=19904&&n<=19967,"CJK Unified Ideographs":n=>n>=19968&&n<=40959,"Hangul Syllables":n=>n>=44032&&n<=55215,"Private Use Area":n=>n>=57344&&n<=63743,"Vertical Forms":n=>n>=65040&&n<=65055,"CJK Compatibility Forms":n=>n>=65072&&n<=65103,"Small Form Variants":n=>n>=65104&&n<=65135,"Halfwidth and Fullwidth Forms":n=>n>=65280&&n<=65519};function jl(n){for(const t of n)if(su(t.charCodeAt(0)))return!0;return!1}function Zp(n){for(const t of n)if(!_d(t.charCodeAt(0)))return!1;return!0}function Vl(n){const t=n.map((r=>{try{return new RegExp(`\\p{sc=${r}}`,"u").source}catch{return null}})).filter((r=>r));return new RegExp(t.join("|"),"u")}const Up=Vl(["Arab","Dupl","Mong","Ougr","Syrc"]);function _d(n){return!Up.test(String.fromCodePoint(n))}const ou=Vl(["Bopo","Hani","Hira","Kana","Kits","Nshu","Tang","Yiii"]);function su(n){return!(n!==746&&n!==747&&(n<4352||!(un["CJK Compatibility Forms"](n)&&!(n>=65097&&n<=65103)||un["CJK Compatibility"](n)||un["CJK Strokes"](n)||!(!un["CJK Symbols and Punctuation"](n)||n>=12296&&n<=12305||n>=12308&&n<=12319||n===12336)||un["Enclosed CJK Letters and Months"](n)||un["Ideographic Description Characters"](n)||un.Kanbun(n)||un.Katakana(n)&&n!==12540||!(!un["Halfwidth and Fullwidth Forms"](n)||n===65288||n===65289||n===65293||n>=65306&&n<=65310||n===65339||n===65341||n===65343||n>=65371&&n<=65503||n===65507||n>=65512&&n<=65519)||!(!un["Small Form Variants"](n)||n>=65112&&n<=65118||n>=65123&&n<=65126)||un["Vertical Forms"](n)||un["Yijing Hexagram Symbols"](n)||new RegExp("\\p{sc=Cans}","u").test(String.fromCodePoint(n))||new RegExp("\\p{sc=Hang}","u").test(String.fromCodePoint(n))||ou.test(String.fromCodePoint(n)))))}function gd(n){return!(su(n)||(function(t){return!!(un["Latin-1 Supplement"](t)&&(t===167||t===169||t===174||t===177||t===188||t===189||t===190||t===215||t===247)||un["General Punctuation"](t)&&(t===8214||t===8224||t===8225||t===8240||t===8241||t===8251||t===8252||t===8258||t===8263||t===8264||t===8265||t===8273)||un["Letterlike Symbols"](t)||un["Number Forms"](t)||un["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||t===9003||t>=9085&&t<=9114||t>=9150&&t<=9165||t===9167||t>=9169&&t<=9179||t>=9186&&t<=9215)||un["Control Pictures"](t)&&t!==9251||un["Optical Character Recognition"](t)||un["Enclosed Alphanumerics"](t)||un["Geometric Shapes"](t)||un["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||un["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||un["CJK Symbols and Punctuation"](t)||un.Katakana(t)||un["Private Use Area"](t)||un["CJK Compatibility Forms"](t)||un["Small Form Variants"](t)||un["Halfwidth and Fullwidth Forms"](t)||t===8734||t===8756||t===8757||t>=9984&&t<=10087||t>=10102&&t<=10131||t===65532||t===65533)})(n))}const vd=Vl(["Adlm","Arab","Armi","Avst","Chrs","Cprt","Egyp","Elym","Gara","Hatr","Hebr","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogo","Syrc","Thaa","Todr","Yezi"]);function lu(n){return vd.test(String.fromCodePoint(n))}function yd(n,t){return!(!t&&lu(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||un.Khmer(n))}function xd(n){for(const t of n)if(lu(t.charCodeAt(0)))return!0;return!1}const Ea=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(n){this.pluginStatus=n.pluginStatus,this.pluginURL=n.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(n){if(Ea.isParsed())throw new Error("RTL text plugin already registered.");this.applyArabicShaping=n.applyArabicShaping,this.processBidirectionalText=n.processBidirectionalText,this.processStyledBidirectionalText=n.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}syncState(n,t){return s(this,void 0,void 0,(function*(){if(this.isParsed())return this.getState();if(n.pluginStatus!=="loading")return this.setState(n),n;const r=n.pluginURL,o=new Promise((f=>{this.loadScriptResolve=f}));t(r);const c=new Promise((f=>setTimeout((()=>f()),this.TIMEOUT)));if(yield Promise.race([o,c]),this.isParsed()){const f={pluginStatus:"loaded",pluginURL:r};return this.setState(f),f}throw this.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${r}`)}))}};class Un{constructor(t,r){this.zoom=t,r?(this.now=r.now||0,this.fadeDuration=r.fadeDuration||0,this.zoomHistory=r.zoomHistory||new Nl,this.transition=r.transition||{},this.globalState=r.globalState||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Nl,this.transition={},this.globalState={})}isSupportedScript(t){return(function(r,o){for(const c of r)if(!yd(c.charCodeAt(0),o))return!1;return!0})(t,Ea.getRTLTextPluginStatus()==="loaded")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,r=t-Math.floor(t),o=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:r+(1-r)*o}:{fromScale:.5,toScale:1,t:1-(1-o)*r}}}class us{constructor(t,r){this.property=t,this.value=r,this.expression=(function(o,c){if(Vs(o))return new Us(o,c);if(zl(o)){const f=id(o,c);if(f.result==="error")throw new Error(f.value.map((_=>`${_.key}: ${_.message}`)).join(", "));return f.value}{let f=o;return c.type==="color"&&typeof o=="string"?f=Mr.parse(o):c.type!=="padding"||typeof o!="number"&&!Array.isArray(o)?c.type!=="numberArray"||typeof o!="number"&&!Array.isArray(o)?c.type!=="colorArray"||typeof o!="string"&&!Array.isArray(o)?c.type==="variableAnchorOffsetCollection"&&Array.isArray(o)?f=fi.parse(o):c.type==="projectionDefinition"&&typeof o=="string"&&(f=jn.parse(o)):f=fn.parse(o):f=gn.parse(o):f=kn.parse(o),{globalStateRefs:new Set,kind:"constant",evaluate:()=>f}}})(r===void 0?t.specification.default:r,t.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}getGlobalStateRefs(){return this.expression.globalStateRefs||new Set}possiblyEvaluate(t,r,o){return this.property.possiblyEvaluate(this,t,r,o)}}class cu{constructor(t){this.property=t,this.value=new us(t,void 0)}transitioned(t,r){return new uu(this.property,this.value,r,dt({},t.transition,this.transition),t.now)}untransitioned(){return new uu(this.property,this.value,null,{},0)}}class bd{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)}getValue(t){return wt(this._values[t].value.value)}setValue(t,r){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new cu(this._values[t].property)),this._values[t].value=new us(this._values[t].property,r===null?void 0:wt(r))}getTransition(t){return wt(this._values[t].transition)}setTransition(t,r){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new cu(this._values[t].property)),this._values[t].transition=wt(r)||void 0}serialize(){const t={};for(const r of Object.keys(this._values)){const o=this.getValue(r);o!==void 0&&(t[r]=o);const c=this.getTransition(r);c!==void 0&&(t[`${r}-transition`]=c)}return t}transitioned(t,r){const o=new hu(this._properties);for(const c of Object.keys(this._values))o._values[c]=this._values[c].transitioned(t,r._values[c]);return o}untransitioned(){const t=new hu(this._properties);for(const r of Object.keys(this._values))t._values[r]=this._values[r].untransitioned();return t}}class uu{constructor(t,r,o,c,f){this.property=t,this.value=r,this.begin=f+c.delay||0,this.end=this.begin+c.duration||0,t.specification.transition&&(c.delay||c.duration)&&(this.prior=o)}possiblyEvaluate(t,r,o){const c=t.now||0,f=this.value.possiblyEvaluate(t,r,o),_=this.prior;if(_){if(c>this.end)return this.prior=null,f;if(this.value.isDataDriven())return this.prior=null,f;if(cc.zoomHistory.lastIntegerZoom?{from:t,to:r}:{from:o,to:r}}interpolate(t){return t}}class _o{constructor(t){this.specification=t}possiblyEvaluate(t,r,o,c){if(t.value!==void 0){if(t.expression.kind==="constant"){const f=t.expression.evaluate(r,null,{},o,c);return this._calculate(f,f,f,r)}return this._calculate(t.expression.evaluate(new Un(Math.floor(r.zoom-1),r)),t.expression.evaluate(new Un(Math.floor(r.zoom),r)),t.expression.evaluate(new Un(Math.floor(r.zoom+1),r)),r)}}_calculate(t,r,o,c){return c.zoom>c.zoomHistory.lastIntegerZoom?{from:t,to:r}:{from:o,to:r}}interpolate(t){return t}}class Ul{constructor(t){this.specification=t}possiblyEvaluate(t,r,o,c){return!!t.expression.evaluate(r,null,{},o,c)}interpolate(){return!1}}class Ui{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const r in t){const o=t[r];o.specification.overridable&&this.overridableProperties.push(r);const c=this.defaultPropertyValues[r]=new us(o,void 0),f=this.defaultTransitionablePropertyValues[r]=new cu(o);this.defaultTransitioningPropertyValues[r]=f.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=c.possiblyEvaluate({})}}}nr("DataDrivenProperty",Or),nr("DataConstantProperty",br),nr("CrossFadedDataDrivenProperty",Zl),nr("CrossFadedProperty",_o),nr("ColorRampProperty",Ul);const Td="-transition";class xa extends kt{constructor(t,r){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set},t.type!=="custom"&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,t.type!=="background"&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter,this._featureFilter=Ro(t.filter)),r.layout&&(this._unevaluatedLayout=new wd(r.layout)),r.paint)){this._transitionablePaint=new bd(r.paint);for(const o in t.paint)this.setPaintProperty(o,t.paint[o],{validate:!1});for(const o in t.layout)this.setLayoutProperty(o,t.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new ql(r.paint)}}setFilter(t){this.filter=t,this._featureFilter=Ro(t)}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return t==="visibility"?this.visibility:this._unevaluatedLayout.getValue(t)}getLayoutAffectingGlobalStateRefs(){const t=new Set;if(this._unevaluatedLayout)for(const r in this._unevaluatedLayout._values){const o=this._unevaluatedLayout._values[r];for(const c of o.getGlobalStateRefs())t.add(c)}for(const r of this._featureFilter.getGlobalStateRefs())t.add(r);return t}setLayoutProperty(t,r,o={}){r!=null&&this._validate(qp,`layers.${this.id}.layout.${t}`,t,r,o)||(t!=="visibility"?this._unevaluatedLayout.setValue(t,r):this.visibility=r)}getPaintProperty(t){return t.endsWith(Td)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,r,o={}){if(r!=null&&this._validate(Vp,`layers.${this.id}.paint.${t}`,t,r,o))return!1;if(t.endsWith(Td))return this._transitionablePaint.setTransition(t.slice(0,-11),r||void 0),!1;{const c=this._transitionablePaint._values[t],f=c.property.specification["property-type"]==="cross-faded-data-driven",_=c.value.isDataDriven(),v=c.value;this._transitionablePaint.setValue(t,r),this._handleSpecialPaintPropertyUpdate(t);const b=this._transitionablePaint._values[t].value;return b.isDataDriven()||_||f||this._handleOverridablePaintPropertyUpdate(t,v,b)}}_handleSpecialPaintPropertyUpdate(t){}_handleOverridablePaintPropertyUpdate(t,r,o){return!1}isHidden(t){return!!(this.minzoom&&t=this.maxzoom)||this.visibility==="none"}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,r){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,r)}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),It(t,((r,o)=>!(r===void 0||o==="layout"&&!Object.keys(r).length||o==="paint"&&!Object.keys(r).length)))}_validate(t,r,o,c,f={}){return(!f||f.validate!==!1)&&Xs(this,t.call(ls,{key:r,layerType:this.type,objectKey:o,value:c,styleSpec:xe,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const t in this.paint._values){const r=this.paint.get(t);if(r instanceof $a&&fo(r.property.specification)&&(r.value.kind==="source"||r.value.kind==="composite")&&r.value.isStateDependent)return!0}return!1}}const $p={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Ks{constructor(t,r){this._structArray=t,this._pos1=r*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Dn{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(t,r){return t._trim(),r&&(t.isTransferred=!0,r.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const r=Object.create(this.prototype);return r.arrayBuffer=t.arrayBuffer,r.length=t.length,r.capacity=t.arrayBuffer.byteLength/r.bytesPerElement,r._refreshViews(),r}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(t){this.reserve(t),this.length=t}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function ti(n,t=1){let r=0,o=0;return{members:n.map((c=>{const f=$p[c.type].BYTES_PER_ELEMENT,_=r=$l(r,Math.max(t,f)),v=c.components||1;return o=Math.max(o,f),r+=f*v,{name:c.name,type:c.type,components:v,offset:_}})),size:$l(r,Math.max(o,t)),alignment:t}}function $l(n,t){return Math.ceil(n/t)*t}class hs extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r){const o=this.length;return this.resize(o+1),this.emplace(o,t,r)}emplace(t,r,o){const c=2*t;return this.int16[c+0]=r,this.int16[c+1]=o,t}}hs.prototype.bytesPerElement=4,nr("StructArrayLayout2i4",hs);class ds extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,o)}emplace(t,r,o,c){const f=3*t;return this.int16[f+0]=r,this.int16[f+1]=o,this.int16[f+2]=c,t}}ds.prototype.bytesPerElement=6,nr("StructArrayLayout3i6",ds);class du extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,o,c){const f=this.length;return this.resize(f+1),this.emplace(f,t,r,o,c)}emplace(t,r,o,c,f){const _=4*t;return this.int16[_+0]=r,this.int16[_+1]=o,this.int16[_+2]=c,this.int16[_+3]=f,t}}du.prototype.bytesPerElement=8,nr("StructArrayLayout4i8",du);class ps extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,o,c,f,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,o,c,f,_)}emplace(t,r,o,c,f,_,v){const b=6*t;return this.int16[b+0]=r,this.int16[b+1]=o,this.int16[b+2]=c,this.int16[b+3]=f,this.int16[b+4]=_,this.int16[b+5]=v,t}}ps.prototype.bytesPerElement=12,nr("StructArrayLayout2i4i12",ps);class No extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,o,c,f,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,o,c,f,_)}emplace(t,r,o,c,f,_,v){const b=4*t,S=8*t;return this.int16[b+0]=r,this.int16[b+1]=o,this.uint8[S+4]=c,this.uint8[S+5]=f,this.uint8[S+6]=_,this.uint8[S+7]=v,t}}No.prototype.bytesPerElement=8,nr("StructArrayLayout2i4ub8",No);class Js extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r){const o=this.length;return this.resize(o+1),this.emplace(o,t,r)}emplace(t,r,o){const c=2*t;return this.float32[c+0]=r,this.float32[c+1]=o,t}}Js.prototype.bytesPerElement=8,nr("StructArrayLayout2f8",Js);class Gl extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,o,c,f,_,v,b,S,I){const L=this.length;return this.resize(L+1),this.emplace(L,t,r,o,c,f,_,v,b,S,I)}emplace(t,r,o,c,f,_,v,b,S,I,L){const F=10*t;return this.uint16[F+0]=r,this.uint16[F+1]=o,this.uint16[F+2]=c,this.uint16[F+3]=f,this.uint16[F+4]=_,this.uint16[F+5]=v,this.uint16[F+6]=b,this.uint16[F+7]=S,this.uint16[F+8]=I,this.uint16[F+9]=L,t}}Gl.prototype.bytesPerElement=20,nr("StructArrayLayout10ui20",Gl);class jo extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,o,c,f,_,v,b,S,I,L,F){const q=this.length;return this.resize(q+1),this.emplace(q,t,r,o,c,f,_,v,b,S,I,L,F)}emplace(t,r,o,c,f,_,v,b,S,I,L,F,q){const U=12*t;return this.int16[U+0]=r,this.int16[U+1]=o,this.int16[U+2]=c,this.int16[U+3]=f,this.uint16[U+4]=_,this.uint16[U+5]=v,this.uint16[U+6]=b,this.uint16[U+7]=S,this.int16[U+8]=I,this.int16[U+9]=L,this.int16[U+10]=F,this.int16[U+11]=q,t}}jo.prototype.bytesPerElement=24,nr("StructArrayLayout4i4ui4i24",jo);class pu extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,o)}emplace(t,r,o,c){const f=3*t;return this.float32[f+0]=r,this.float32[f+1]=o,this.float32[f+2]=c,t}}pu.prototype.bytesPerElement=12,nr("StructArrayLayout3f12",pu);class fu extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t){const r=this.length;return this.resize(r+1),this.emplace(r,t)}emplace(t,r){return this.uint32[1*t+0]=r,t}}fu.prototype.bytesPerElement=4,nr("StructArrayLayout1ul4",fu);class Hl extends Dn{_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(t,r,o,c,f,_,v,b,S){const I=this.length;return this.resize(I+1),this.emplace(I,t,r,o,c,f,_,v,b,S)}emplace(t,r,o,c,f,_,v,b,S,I){const L=10*t,F=5*t;return this.int16[L+0]=r,this.int16[L+1]=o,this.int16[L+2]=c,this.int16[L+3]=f,this.int16[L+4]=_,this.int16[L+5]=v,this.uint32[F+3]=b,this.uint16[L+8]=S,this.uint16[L+9]=I,t}}Hl.prototype.bytesPerElement=20,nr("StructArrayLayout6i1ul2ui20",Hl);class mu extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,o,c,f,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,o,c,f,_)}emplace(t,r,o,c,f,_,v){const b=6*t;return this.int16[b+0]=r,this.int16[b+1]=o,this.int16[b+2]=c,this.int16[b+3]=f,this.int16[b+4]=_,this.int16[b+5]=v,t}}mu.prototype.bytesPerElement=12,nr("StructArrayLayout2i2i2i12",mu);class h extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,o,c,f){const _=this.length;return this.resize(_+1),this.emplace(_,t,r,o,c,f)}emplace(t,r,o,c,f,_){const v=4*t,b=8*t;return this.float32[v+0]=r,this.float32[v+1]=o,this.float32[v+2]=c,this.int16[b+6]=f,this.int16[b+7]=_,t}}h.prototype.bytesPerElement=16,nr("StructArrayLayout2f1f2i16",h);class e extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,o,c,f,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,o,c,f,_)}emplace(t,r,o,c,f,_,v){const b=16*t,S=4*t,I=8*t;return this.uint8[b+0]=r,this.uint8[b+1]=o,this.float32[S+1]=c,this.float32[S+2]=f,this.int16[I+6]=_,this.int16[I+7]=v,t}}e.prototype.bytesPerElement=16,nr("StructArrayLayout2ub2f2i16",e);class i extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,o)}emplace(t,r,o,c){const f=3*t;return this.uint16[f+0]=r,this.uint16[f+1]=o,this.uint16[f+2]=c,t}}i.prototype.bytesPerElement=6,nr("StructArrayLayout3ui6",i);class l extends Dn{_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(t,r,o,c,f,_,v,b,S,I,L,F,q,U,W,J,ce){const Re=this.length;return this.resize(Re+1),this.emplace(Re,t,r,o,c,f,_,v,b,S,I,L,F,q,U,W,J,ce)}emplace(t,r,o,c,f,_,v,b,S,I,L,F,q,U,W,J,ce,Re){const ye=24*t,Ce=12*t,Ke=48*t;return this.int16[ye+0]=r,this.int16[ye+1]=o,this.uint16[ye+2]=c,this.uint16[ye+3]=f,this.uint32[Ce+2]=_,this.uint32[Ce+3]=v,this.uint32[Ce+4]=b,this.uint16[ye+10]=S,this.uint16[ye+11]=I,this.uint16[ye+12]=L,this.float32[Ce+7]=F,this.float32[Ce+8]=q,this.uint8[Ke+36]=U,this.uint8[Ke+37]=W,this.uint8[Ke+38]=J,this.uint32[Ce+10]=ce,this.int16[ye+22]=Re,t}}l.prototype.bytesPerElement=48,nr("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",l);class u extends Dn{_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(t,r,o,c,f,_,v,b,S,I,L,F,q,U,W,J,ce,Re,ye,Ce,Ke,ct,St,Yt,qt,Ht,Cr,Gt){const Wt=this.length;return this.resize(Wt+1),this.emplace(Wt,t,r,o,c,f,_,v,b,S,I,L,F,q,U,W,J,ce,Re,ye,Ce,Ke,ct,St,Yt,qt,Ht,Cr,Gt)}emplace(t,r,o,c,f,_,v,b,S,I,L,F,q,U,W,J,ce,Re,ye,Ce,Ke,ct,St,Yt,qt,Ht,Cr,Gt,Wt){const gt=32*t,Nr=16*t;return this.int16[gt+0]=r,this.int16[gt+1]=o,this.int16[gt+2]=c,this.int16[gt+3]=f,this.int16[gt+4]=_,this.int16[gt+5]=v,this.int16[gt+6]=b,this.int16[gt+7]=S,this.uint16[gt+8]=I,this.uint16[gt+9]=L,this.uint16[gt+10]=F,this.uint16[gt+11]=q,this.uint16[gt+12]=U,this.uint16[gt+13]=W,this.uint16[gt+14]=J,this.uint16[gt+15]=ce,this.uint16[gt+16]=Re,this.uint16[gt+17]=ye,this.uint16[gt+18]=Ce,this.uint16[gt+19]=Ke,this.uint16[gt+20]=ct,this.uint16[gt+21]=St,this.uint16[gt+22]=Yt,this.uint32[Nr+12]=qt,this.float32[Nr+13]=Ht,this.float32[Nr+14]=Cr,this.uint16[gt+30]=Gt,this.uint16[gt+31]=Wt,t}}u.prototype.bytesPerElement=64,nr("StructArrayLayout8i15ui1ul2f2ui64",u);class d extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t){const r=this.length;return this.resize(r+1),this.emplace(r,t)}emplace(t,r){return this.float32[1*t+0]=r,t}}d.prototype.bytesPerElement=4,nr("StructArrayLayout1f4",d);class g extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,o)}emplace(t,r,o,c){const f=3*t;return this.uint16[6*t+0]=r,this.float32[f+1]=o,this.float32[f+2]=c,t}}g.prototype.bytesPerElement=12,nr("StructArrayLayout1ui2f12",g);class w extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,o)}emplace(t,r,o,c){const f=4*t;return this.uint32[2*t+0]=r,this.uint16[f+2]=o,this.uint16[f+3]=c,t}}w.prototype.bytesPerElement=8,nr("StructArrayLayout1ul2ui8",w);class C extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r){const o=this.length;return this.resize(o+1),this.emplace(o,t,r)}emplace(t,r,o){const c=2*t;return this.uint16[c+0]=r,this.uint16[c+1]=o,t}}C.prototype.bytesPerElement=4,nr("StructArrayLayout2ui4",C);class P extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t){const r=this.length;return this.resize(r+1),this.emplace(r,t)}emplace(t,r){return this.uint16[1*t+0]=r,t}}P.prototype.bytesPerElement=2,nr("StructArrayLayout1ui2",P);class E extends Dn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r,o,c){const f=this.length;return this.resize(f+1),this.emplace(f,t,r,o,c)}emplace(t,r,o,c,f){const _=4*t;return this.float32[_+0]=r,this.float32[_+1]=o,this.float32[_+2]=c,this.float32[_+3]=f,t}}E.prototype.bytesPerElement=16,nr("StructArrayLayout4f16",E);class R extends Ks{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new B(this.anchorPointX,this.anchorPointY)}}R.prototype.size=20;class D extends Hl{get(t){return new R(this,t)}}nr("CollisionBoxArray",D);class N extends Ks{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(t){this._structArray.uint8[this._pos1+37]=t}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(t){this._structArray.uint8[this._pos1+38]=t}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(t){this._structArray.uint32[this._pos4+10]=t}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}N.prototype.size=48;class G extends l{get(t){return new N(this,t)}}nr("PlacedSymbolArray",G);class te extends Ks{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(t){this._structArray.uint32[this._pos4+12]=t}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]}}te.prototype.size=64;class ee extends u{get(t){return new te(this,t)}}nr("SymbolInstanceArray",ee);class ie extends d{getoffsetX(t){return this.float32[1*t+0]}}nr("GlyphOffsetArray",ie);class ue extends ds{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}nr("SymbolLineVertexArray",ue);class ve extends Ks{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]}}ve.prototype.size=12;class me extends g{get(t){return new ve(this,t)}}nr("TextAnchorOffsetArray",me);class be extends Ks{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]}}be.prototype.size=8;class Pe extends w{get(t){return new be(this,t)}}nr("FeatureIndexArray",Pe);class _e extends hs{}class Be extends hs{}class rt extends hs{}class Ge extends ps{}class Xe extends No{}class tt extends Js{}class jt extends Gl{}class Zt extends jo{}class Tt extends pu{}class gr extends fu{}class Jr extends mu{}class An extends e{}class Rn extends i{}class Ln extends C{}const Wn=ti([{name:"a_pos",components:2,type:"Int16"}],4),{members:Jn}=Wn;class Kr{constructor(t=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=t}prepareSegment(t,r,o,c){const f=this.segments[this.segments.length-1];return t>Kr.MAX_VERTEX_ARRAY_LENGTH&&Et(`Max vertices per segment is ${Kr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${Kr.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!f||f.vertexLength+t>Kr.MAX_VERTEX_ARRAY_LENGTH||f.sortKey!==c?this.createNewSegment(r,o,c):f}createNewSegment(t,r,o){const c={vertexOffset:t.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0,vaos:{}};return o!==void 0&&(c.sortKey=o),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(c),c}getOrCreateLatestSegment(t,r,o){return this.prepareSegment(0,t,r,o)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(const t of this.segments)for(const r in t.vaos)t.vaos[r].destroy()}static simpleSegment(t,r,o,c){return new Kr([{vertexOffset:t,primitiveOffset:r,vertexLength:o,primitiveLength:c,vaos:{},sortKey:0}])}}function Bn(n,t){return 256*(n=Dt(Math.floor(n),0,255))+Dt(Math.floor(t),0,255)}Kr.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,nr("SegmentVector",Kr);const si=ti([{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 mi,Ci,$i,za={exports:{}},go={exports:{}},vo={exports:{}},fs=(function(){if($i)return za.exports;$i=1;var n=(mi||(mi=1,go.exports=function(r,o){var c,f,_,v,b,S,I,L;for(f=r.length-(c=3&r.length),_=o,b=3432918353,S=461845907,L=0;L>>16)*b&65535)<<16)&4294967295)<<15|I>>>17))*S+(((I>>>16)*S&65535)<<16)&4294967295)<<13|_>>>19))+((5*(_>>>16)&65535)<<16)&4294967295))+((58964+(v>>>16)&65535)<<16);switch(I=0,c){case 3:I^=(255&r.charCodeAt(L+2))<<16;case 2:I^=(255&r.charCodeAt(L+1))<<8;case 1:_^=I=(65535&(I=(I=(65535&(I^=255&r.charCodeAt(L)))*b+(((I>>>16)*b&65535)<<16)&4294967295)<<15|I>>>17))*S+(((I>>>16)*S&65535)<<16)&4294967295}return _^=r.length,_=2246822507*(65535&(_^=_>>>16))+((2246822507*(_>>>16)&65535)<<16)&4294967295,_=3266489909*(65535&(_^=_>>>13))+((3266489909*(_>>>16)&65535)<<16)&4294967295,(_^=_>>>16)>>>0}),go.exports),t=(Ci||(Ci=1,vo.exports=function(r,o){for(var c,f=r.length,_=o^f,v=0;f>=4;)c=1540483477*(65535&(c=255&r.charCodeAt(v)|(255&r.charCodeAt(++v))<<8|(255&r.charCodeAt(++v))<<16|(255&r.charCodeAt(++v))<<24))+((1540483477*(c>>>16)&65535)<<16),_=1540483477*(65535&_)+((1540483477*(_>>>16)&65535)<<16)^(c=1540483477*(65535&(c^=c>>>24))+((1540483477*(c>>>16)&65535)<<16)),f-=4,++v;switch(f){case 3:_^=(255&r.charCodeAt(v+2))<<16;case 2:_^=(255&r.charCodeAt(v+1))<<8;case 1:_=1540483477*(65535&(_^=255&r.charCodeAt(v)))+((1540483477*(_>>>16)&65535)<<16)}return _=1540483477*(65535&(_^=_>>>13))+((1540483477*(_>>>16)&65535)<<16),(_^=_>>>15)>>>0}),vo.exports);return za.exports=n,za.exports.murmur3=n,za.exports.murmur2=t,za.exports})(),ms=O(fs);class Vo{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(t,r,o,c){this.ids.push(qo(t)),this.positions.push(r,o,c)}getPositions(t){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const r=qo(t);let o=0,c=this.ids.length-1;for(;o>1;this.ids[_]>=r?c=_:o=_+1}const f=[];for(;this.ids[o]===r;)f.push({index:this.positions[3*o],start:this.positions[3*o+1],end:this.positions[3*o+2]}),o++;return f}static serialize(t,r){const o=new Float64Array(t.ids),c=new Uint32Array(t.positions);return ta(o,c,0,o.length-1),r&&r.push(o.buffer,c.buffer),{ids:o,positions:c}}static deserialize(t){const r=new Vo;return r.ids=t.ids,r.positions=t.positions,r.indexed=!0,r}}function qo(n){const t=+n;return!isNaN(t)&&t<=Number.MAX_SAFE_INTEGER?t:ms(String(n))}function ta(n,t,r,o){for(;r>1];let f=r-1,_=o+1;for(;;){do f++;while(n[f]c);if(f>=_)break;La(n,f,_),La(t,3*f,3*_),La(t,3*f+1,3*_+1),La(t,3*f+2,3*_+2)}_-r`u_${c}`)),this.type=o}setUniform(t,r,o){t.set(o.constantOr(this.value))}getBinding(t,r,o){return this.type==="color"?new _i(t,r):new yo(t,r)}}class _s{constructor(t,r){this.uniformNames=r.map((o=>`u_${o}`)),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(t,r){this.pixelRatioFrom=r.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=r.tlbr,this.patternTo=t.tlbr}setUniform(t,r,o,c){const f=c==="u_pattern_to"?this.patternTo:c==="u_pattern_from"?this.patternFrom:c==="u_pixel_ratio_to"?this.pixelRatioTo:c==="u_pixel_ratio_from"?this.pixelRatioFrom:null;f&&t.set(f)}getBinding(t,r,o){return o.substr(0,9)==="u_pattern"?new li(t,r):new yo(t,r)}}class ro{constructor(t,r,o,c){this.expression=t,this.type=o,this.maxValue=0,this.paintVertexAttributes=r.map((f=>({name:`a_${f}`,type:"Float32",components:o==="color"?2:1,offset:0}))),this.paintVertexArray=new c}populatePaintArray(t,r,o,c,f){const _=this.paintVertexArray.length,v=this.expression.evaluate(new Un(0),r,{},c,[],f);this.paintVertexArray.resize(t),this._setPaintValue(_,t,v)}updatePaintArray(t,r,o,c){const f=this.expression.evaluate({zoom:0},o,c);this._setPaintValue(t,r,f)}_setPaintValue(t,r,o){if(this.type==="color"){const c=ci(o);for(let f=t;f`u_${v}_t`)),this.type=o,this.useIntegerZoom=c,this.zoom=f,this.maxValue=0,this.paintVertexAttributes=r.map((v=>({name:`a_${v}`,type:"Float32",components:o==="color"?4:2,offset:0}))),this.paintVertexArray=new _}populatePaintArray(t,r,o,c,f){const _=this.expression.evaluate(new Un(this.zoom),r,{},c,[],f),v=this.expression.evaluate(new Un(this.zoom+1),r,{},c,[],f),b=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(b,t,_,v)}updatePaintArray(t,r,o,c){const f=this.expression.evaluate({zoom:this.zoom},o,c),_=this.expression.evaluate({zoom:this.zoom+1},o,c);this._setPaintValue(t,r,f,_)}_setPaintValue(t,r,o,c){if(this.type==="color"){const f=ci(o),_=ci(c);for(let v=t;v`#define HAS_UNIFORM_${c}`)))}return t}getBinderAttributes(){const t=[];for(const r in this.binders){const o=this.binders[r];if(o instanceof ro||o instanceof Da)for(let c=0;c!0){this.programConfigurations={};for(const c of t)this.programConfigurations[c.id]=new Cd(c,r,o);this.needsUpload=!1,this._featureMap=new Vo,this._bufferOffset=0}populatePaintArrays(t,r,o,c,f,_){for(const v in this.programConfigurations)this.programConfigurations[v].populatePaintArrays(t,r,c,f,_);r.id!==void 0&&this._featureMap.add(r.id,o,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0}updatePaintArrays(t,r,o,c){for(const f of o)this.needsUpload=this.programConfigurations[f.id].updatePaintArrays(t,this._featureMap,r,f,c)||this.needsUpload}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(t);this.needsUpload=!1}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy()}}function Sd(n,t){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-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"]}[n]||[n.replace(`${t}-`,"").replace(/-/g,"_")]}function _u(n,t,r){const o={color:{source:Js,composite:E},number:{source:d,composite:Js}},c=(function(f){return{"line-pattern":{source:jt,composite:jt},"fill-pattern":{source:jt,composite:jt},"fill-extrusion-pattern":{source:jt,composite:jt}}[f]})(n);return c&&c[r]||o[t][r]}nr("ConstantBinder",Qs),nr("CrossFadedConstantBinder",_s),nr("SourceExpressionBinder",ro),nr("CrossFadedCompositeBinder",xo),nr("CompositeExpressionBinder",Da),nr("ProgramConfiguration",Cd,{omit:["_buffers"]}),nr("ProgramConfigurationSet",la);const Wl=Math.pow(2,14)-1,Xl=-Wl-1;function bo(n){const t=oe/n.extent,r=n.loadGeometry();for(let o=0;o_.x+1||b<_.y||b>_.y+1)&&Et("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return r}function no(n,t){return{type:n.type,id:n.id,properties:n.properties,geometry:t?bo(n):[]}}const h_=-32768;function K0(n,t,r,o,c){n.emplaceBack(h_+8*t+o,h_+8*r+c)}class Gp{constructor(t){this.zoom=t.zoom,this.globalState=t.globalState,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((r=>r.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Be,this.indexArray=new Rn,this.segments=new Kr,this.programConfigurations=new la(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,o){const c=this.layers[0],f=[];let _=null,v=!1,b=c.type==="heatmap";if(c.type==="circle"){const I=c;_=I.layout.get("circle-sort-key"),v=!_.isConstant(),b=b||I.paint.get("circle-pitch-alignment")==="map"}const S=b?r.subdivisionGranularity.circle:1;for(const{feature:I,id:L,index:F,sourceLayerIndex:q}of t){const U=this.layers[0]._featureFilter.needGeometry,W=no(I,U);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),W,o))continue;const J=v?_.evaluate(W,{},o):void 0,ce={id:L,properties:I.properties,type:I.type,sourceLayerIndex:q,index:F,geometry:U?W.geometry:bo(I),patterns:{},sortKey:J};f.push(ce)}v&&f.sort(((I,L)=>I.sortKey-L.sortKey));for(const I of f){const{geometry:L,index:F,sourceLayerIndex:q}=I,U=t[F].feature;this.addFeature(I,L,F,o,S),r.featureIndex.insert(U,L,F,q,this.index)}}update(t,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Jn),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(t,r,o,c,f=1){let _;switch(f){case 1:_=[0,7];break;case 3:_=[0,2,5,7];break;case 5:_=[0,1,3,4,6,7];break;case 7:_=[0,1,2,3,4,5,6,7];break;default:throw new Error(`Invalid circle bucket granularity: ${f}; valid values are 1, 3, 5, 7.`)}const v=_.length;for(const b of r)for(const S of b){const I=S.x,L=S.y;if(I<0||I>=oe||L<0||L>=oe)continue;const F=this.segments.prepareSegment(v*v,this.layoutVertexArray,this.indexArray,t.sortKey),q=F.vertexLength;for(let U=0;U1){if(Hp(n,t))return!0;for(let o=0;o1?r:r.sub(t)._mult(c)._add(t))}function m_(n,t){let r,o,c,f=!1;for(let _=0;_t.y!=c.y>t.y&&t.x<(c.x-o.x)*(t.y-o.y)/(c.y-o.y)+o.x&&(f=!f)}return f}function Yl(n,t){let r=!1;for(let o=0,c=n.length-1;ot.y!=_.y>t.y&&t.x<(_.x-f.x)*(t.y-f.y)/(_.y-f.y)+f.x&&(r=!r)}return r}function ty(n,t,r){const o=r[0],c=r[2];if(n.xc.x&&t.x>c.x||n.yc.y&&t.y>c.y)return!1;const f=Rt(n,t,r[0]);return f!==Rt(n,t,r[1])||f!==Rt(n,t,r[2])||f!==Rt(n,t,r[3])}function gu(n,t,r){const o=t.paint.get(n).value;return o.kind==="constant"?o.value:r.programConfigurations.get(t.id).getMaxValue(n)}function Pd(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function Id(n,t,r,o,c){if(!t[0]&&!t[1])return n;const f=B.convert(t)._mult(c);r==="viewport"&&f._rotate(-o);const _=[];for(let v=0;vv_(Re,W,J,ce)))})(S,f,v,b),q=L?I*_:I;for(const U of c)for(const W of U){const J=L?W:v_(W,f,v,b);let ce=q;const Re=f.projectTileCoordinates(W.x,W.y,v,b).signedDistanceFromCamera;if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?ce*=Re/f.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(ce*=f.cameraToCenterDistance/Re),J0(F,J,ce))return!0}return!1}}function v_(n,t,r,o){const c=t.projectTileCoordinates(n.x,n.y,r,o).point;return new B((.5*c.x+.5)*t.width,(.5*-c.y+.5)*t.height)}class y_ extends Gp{}let x_;nr("HeatmapBucket",y_,{omit:["layers"]});var iy={get paint(){return x_=x_||new Ui({"heatmap-radius":new Or(xe.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Or(xe.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new br(xe.paint_heatmap["heatmap-intensity"]),"heatmap-color":new Ul(xe.paint_heatmap["heatmap-color"]),"heatmap-opacity":new br(xe.paint_heatmap["heatmap-opacity"])})}};function Xp(n,{width:t,height:r},o,c){if(c){if(c instanceof Uint8ClampedArray)c=new Uint8Array(c.buffer);else if(c.length!==t*r*o)throw new RangeError(`mismatched image size. expected: ${c.length} but got: ${t*r*o}`)}else c=new Uint8Array(t*r*o);return n.width=t,n.height=r,n.data=c,n}function b_(n,{width:t,height:r},o){if(t===n.width&&r===n.height)return;const c=Xp({},{width:t,height:r},o);Yp(n,c,{x:0,y:0},{x:0,y:0},{width:Math.min(n.width,t),height:Math.min(n.height,r)},o),n.width=t,n.height=r,n.data=c.data}function Yp(n,t,r,o,c,f){if(c.width===0||c.height===0)return t;if(c.width>n.width||c.height>n.height||r.x>n.width-c.width||r.y>n.height-c.height)throw new RangeError("out of range source coordinates for image copy");if(c.width>t.width||c.height>t.height||o.x>t.width-c.width||o.y>t.height-c.height)throw new RangeError("out of range destination coordinates for image copy");const _=n.data,v=t.data;if(_===v)throw new Error("srcData equals dstData, so image is already copied");for(let b=0;b{t[n.evaluationKey]=b;const S=n.expression.evaluate(t);c.setPixel(_/4/r,v/4,S)};if(n.clips)for(let _=0,v=0;_this.max&&(this.max=L),L=this.dim+1||r<-1||r>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(t+1)}unpack(t,r,o){return t*this.redFactor+r*this.greenFactor+o*this.blueFactor-this.baseShift}pack(t){return P_(t,this.getUnpackVector())}getPixels(){return new ca({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(t,r,o){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let c=r*this.dim,f=r*this.dim+this.dim,_=o*this.dim,v=o*this.dim+this.dim;switch(r){case-1:c=f-1;break;case 1:f=c+1}switch(o){case-1:_=v-1;break;case 1:v=_+1}const b=-r*this.dim,S=-o*this.dim;for(let I=_;I0)for(let _=t;_=t;_-=o)f=E_(_/o|0,n[_],n[_+1],f);return f&&Kl(f,f.next)&&(wu(f),f=f.next),f}function el(n,t){if(!n)return n;t||(t=n);let r,o=n;do if(r=!1,o.steiner||!Kl(o,o.next)&&ii(o.prev,o,o.next)!==0)o=o.next;else{if(wu(o),o=t=o.prev,o===o.next)break;r=!0}while(r||o!==t);return t}function yu(n,t,r,o,c,f,_){if(!n)return;!_&&f&&(function(b,S,I,L){let F=b;do F.z===0&&(F.z=tf(F.x,F.y,S,I,L)),F.prevZ=F.prev,F.nextZ=F.next,F=F.next;while(F!==b);F.prevZ.nextZ=null,F.prevZ=null,(function(q){let U,W=1;do{let J,ce=q;q=null;let Re=null;for(U=0;ce;){U++;let ye=ce,Ce=0;for(let ct=0;ct0||Ke>0&&ye;)Ce!==0&&(Ke===0||!ye||ce.z<=ye.z)?(J=ce,ce=ce.nextZ,Ce--):(J=ye,ye=ye.nextZ,Ke--),Re?Re.nextZ=J:q=J,J.prevZ=Re,Re=J;ce=ye}Re.nextZ=null,W*=2}while(U>1)})(F)})(n,o,c,f);let v=n;for(;n.prev!==n.next;){const b=n.prev,S=n.next;if(f?py(n,o,c,f):dy(n))t.push(b.i,n.i,S.i),wu(n),n=S.next,v=S.next;else if((n=S)===v){_?_===1?yu(n=fy(el(n),t),t,r,o,c,f,2):_===2&&my(n,t,r,o,c,f):yu(el(n),t,r,o,c,f,1);break}}}function dy(n){const t=n.prev,r=n,o=n.next;if(ii(t,r,o)>=0)return!1;const c=t.x,f=r.x,_=o.x,v=t.y,b=r.y,S=o.y,I=Math.min(c,f,_),L=Math.min(v,b,S),F=Math.max(c,f,_),q=Math.max(v,b,S);let U=o.next;for(;U!==t;){if(U.x>=I&&U.x<=F&&U.y>=L&&U.y<=q&&xu(c,v,f,b,_,S,U.x,U.y)&&ii(U.prev,U,U.next)>=0)return!1;U=U.next}return!0}function py(n,t,r,o){const c=n.prev,f=n,_=n.next;if(ii(c,f,_)>=0)return!1;const v=c.x,b=f.x,S=_.x,I=c.y,L=f.y,F=_.y,q=Math.min(v,b,S),U=Math.min(I,L,F),W=Math.max(v,b,S),J=Math.max(I,L,F),ce=tf(q,U,t,r,o),Re=tf(W,J,t,r,o);let ye=n.prevZ,Ce=n.nextZ;for(;ye&&ye.z>=ce&&Ce&&Ce.z<=Re;){if(ye.x>=q&&ye.x<=W&&ye.y>=U&&ye.y<=J&&ye!==c&&ye!==_&&xu(v,I,b,L,S,F,ye.x,ye.y)&&ii(ye.prev,ye,ye.next)>=0||(ye=ye.prevZ,Ce.x>=q&&Ce.x<=W&&Ce.y>=U&&Ce.y<=J&&Ce!==c&&Ce!==_&&xu(v,I,b,L,S,F,Ce.x,Ce.y)&&ii(Ce.prev,Ce,Ce.next)>=0))return!1;Ce=Ce.nextZ}for(;ye&&ye.z>=ce;){if(ye.x>=q&&ye.x<=W&&ye.y>=U&&ye.y<=J&&ye!==c&&ye!==_&&xu(v,I,b,L,S,F,ye.x,ye.y)&&ii(ye.prev,ye,ye.next)>=0)return!1;ye=ye.prevZ}for(;Ce&&Ce.z<=Re;){if(Ce.x>=q&&Ce.x<=W&&Ce.y>=U&&Ce.y<=J&&Ce!==c&&Ce!==_&&xu(v,I,b,L,S,F,Ce.x,Ce.y)&&ii(Ce.prev,Ce,Ce.next)>=0)return!1;Ce=Ce.nextZ}return!0}function fy(n,t){let r=n;do{const o=r.prev,c=r.next.next;!Kl(o,c)&&k_(o,r,r.next,c)&&bu(o,c)&&bu(c,o)&&(t.push(o.i,r.i,c.i),wu(r),wu(r.next),r=n=c),r=r.next}while(r!==n);return el(r)}function my(n,t,r,o,c,f){let _=n;do{let v=_.next.next;for(;v!==_.prev;){if(_.i!==v.i&&xy(_,v)){let b=A_(_,v);return _=el(_,_.next),b=el(b,b.next),yu(_,t,r,o,c,f,0),void yu(b,t,r,o,c,f,0)}v=v.next}_=_.next}while(_!==n)}function _y(n,t){let r=n.x-t.x;return r===0&&(r=n.y-t.y,r===0)&&(r=(n.next.y-n.y)/(n.next.x-n.x)-(t.next.y-t.y)/(t.next.x-t.x)),r}function gy(n,t){const r=(function(c,f){let _=f;const v=c.x,b=c.y;let S,I=-1/0;if(Kl(c,_))return _;do{if(Kl(c,_.next))return _.next;if(b<=_.y&&b>=_.next.y&&_.next.y!==_.y){const W=_.x+(b-_.y)*(_.next.x-_.x)/(_.next.y-_.y);if(W<=v&&W>I&&(I=W,S=_.x<_.next.x?_:_.next,W===v))return S}_=_.next}while(_!==f);if(!S)return null;const L=S,F=S.x,q=S.y;let U=1/0;_=S;do{if(v>=_.x&&_.x>=F&&v!==_.x&&M_(bS.x||_.x===S.x&&vy(S,_)))&&(S=_,U=W)}_=_.next}while(_!==L);return S})(n,t);if(!r)return t;const o=A_(r,n);return el(o,o.next),el(r,r.next)}function vy(n,t){return ii(n.prev,n,t.prev)<0&&ii(t.next,n,n.next)<0}function tf(n,t,r,o,c){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*c|0)|n<<8))|n<<4))|n<<2))|n<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-o)*c|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function yy(n){let t=n,r=n;do(t.x=(n-_)*(f-v)&&(n-_)*(o-v)>=(r-_)*(t-v)&&(r-_)*(f-v)>=(c-_)*(o-v)}function xu(n,t,r,o,c,f,_,v){return!(n===_&&t===v)&&M_(n,t,r,o,c,f,_,v)}function xy(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!(function(r,o){let c=r;do{if(c.i!==r.i&&c.next.i!==r.i&&c.i!==o.i&&c.next.i!==o.i&&k_(c,c.next,r,o))return!0;c=c.next}while(c!==r);return!1})(n,t)&&(bu(n,t)&&bu(t,n)&&(function(r,o){let c=r,f=!1;const _=(r.x+o.x)/2,v=(r.y+o.y)/2;do c.y>v!=c.next.y>v&&c.next.y!==c.y&&_<(c.next.x-c.x)*(v-c.y)/(c.next.y-c.y)+c.x&&(f=!f),c=c.next;while(c!==r);return f})(n,t)&&(ii(n.prev,n,t.prev)||ii(n,t.prev,t))||Kl(n,t)&&ii(n.prev,n,n.next)>0&&ii(t.prev,t,t.next)>0)}function ii(n,t,r){return(t.y-n.y)*(r.x-t.x)-(t.x-n.x)*(r.y-t.y)}function Kl(n,t){return n.x===t.x&&n.y===t.y}function k_(n,t,r,o){const c=kd(ii(n,t,r)),f=kd(ii(n,t,o)),_=kd(ii(r,o,n)),v=kd(ii(r,o,t));return c!==f&&_!==v||!(c!==0||!Md(n,r,t))||!(f!==0||!Md(n,o,t))||!(_!==0||!Md(r,n,o))||!(v!==0||!Md(r,t,o))}function Md(n,t,r){return t.x<=Math.max(n.x,r.x)&&t.x>=Math.min(n.x,r.x)&&t.y<=Math.max(n.y,r.y)&&t.y>=Math.min(n.y,r.y)}function kd(n){return n>0?1:n<0?-1:0}function bu(n,t){return ii(n.prev,n,n.next)<0?ii(n,t,n.next)>=0&&ii(n,n.prev,t)>=0:ii(n,t,n.prev)<0||ii(n,n.next,t)<0}function A_(n,t){const r=rf(n.i,n.x,n.y),o=rf(t.i,t.x,t.y),c=n.next,f=t.prev;return n.next=t,t.prev=n,r.next=c,c.prev=r,o.next=r,r.prev=o,f.next=o,o.prev=f,o}function E_(n,t,r,o){const c=rf(n,t,r);return o?(c.next=o.next,c.prev=o,o.next.prev=c,o.next=c):(c.prev=c,c.next=c),c}function wu(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function rf(n,t,r){return{i:n,x:t,y:r,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}class Jl{constructor(t,r){if(r>t)throw new Error("Min granularity must not be greater than base granularity.");this._baseZoomGranularity=t,this._minGranularity=r}getGranularityForZoomLevel(t){return Math.max(Math.floor(this._baseZoomGranularity/(1<32767||r>32767)throw new Error("Vertex coordinates are out of signed 16 bit integer range.");const o=0|Math.round(t),c=0|Math.round(r),f=this._getKey(o,c);if(this._vertexDictionary.has(f))return this._vertexDictionary.get(f);const _=this._vertexBuffer.length/2;return this._vertexDictionary.set(f,_),this._vertexBuffer.push(o,c),_}_subdivideTrianglesScanline(t){if(this._granularity<2)return(function(c,f){const _=[];for(let v=0;v0?(_.push(b),_.push(I),_.push(S)):(_.push(b),_.push(S),_.push(I))}return _})(this._vertexBuffer,t);const r=[],o=t.length;for(let c=0;c=1||Ke<=0)||ce&&(Sf)){L>=c&&L<=f&&_.push(o[(v+1)%3]);continue}!ce&&Ce>0&&_.push(this._vertexToIndex(b+U*Ce,S+W*Ce));const ct=b+U*Math.max(Ce,0),St=b+U*Math.min(Ke,1);J||this._generateIntraEdgeVertices(_,b,S,I,L,ct,St),!ce&&Ke<1&&_.push(this._vertexToIndex(b+U*Ke,S+W*Ke)),(ce||L>=c&&L<=f)&&_.push(o[(v+1)%3]),!ce&&(L<=c||L>=f)&&this._generateInterEdgeVertices(_,b,S,I,L,F,q,St,c,f)}return _}_generateIntraEdgeVertices(t,r,o,c,f,_,v){const b=c-r,S=f-o,I=S===0,L=I?Math.min(r,c):Math.min(_,v),F=I?Math.max(r,c):Math.max(_,v),q=Math.floor(L/this._granularityCellSize)+1,U=Math.ceil(F/this._granularityCellSize)-1;if(I?r=q;W--){const J=W*this._granularityCellSize;t.push(this._vertexToIndex(J,o+S*(J-r)/b))}}_generateInterEdgeVertices(t,r,o,c,f,_,v,b,S,I){const L=f-o,F=_-c,q=v-f,U=(S-f)/q,W=(I-f)/q,J=Math.min(U,W),ce=Math.max(U,W),Re=c+F*J;let ye=Math.floor(Math.min(Re,b)/this._granularityCellSize)+1,Ce=Math.ceil(Math.max(Re,b)/this._granularityCellSize)-1,Ke=b=1||ce<=0){const Yt=o-v,qt=_+(r-_)*Math.min((S-v)/Yt,(I-v)/Yt);ye=Math.floor(Math.min(qt,b)/this._granularityCellSize)+1,Ce=Math.ceil(Math.max(qt,b)/this._granularityCellSize)-1,Ke=b0?I:S;if(Ke)for(let Yt=ye;Yt<=Ce;Yt++)t.push(this._vertexToIndex(Yt*this._granularityCellSize,St));else for(let Yt=Ce;Yt>=ye;Yt--)t.push(this._vertexToIndex(Yt*this._granularityCellSize,St))}_generateOutline(t){const r=[];for(const o of t){const c=tl(o,this._granularity,!0),f=this._pointArrayToIndices(c),_=[];for(let v=1;vf!=(_===Ql)?(t.push(r),t.push(o),t.push(this._vertexToIndex(c,_)),t.push(o),t.push(this._vertexToIndex(f,_)),t.push(this._vertexToIndex(c,_))):(t.push(o),t.push(r),t.push(this._vertexToIndex(c,_)),t.push(this._vertexToIndex(f,_)),t.push(o),t.push(this._vertexToIndex(c,_)))}_fillPoles(t,r,o){const c=this._vertexBuffer,f=oe,_=t.length;for(let v=2;v<_;v+=3){const b=t[v-2],S=t[v-1],I=t[v],L=c[2*b],F=c[2*b+1],q=c[2*S],U=c[2*S+1],W=c[2*I],J=c[2*I+1];r&&(F===0&&U===0&&this._generatePoleQuad(t,b,S,L,q,Ql),U===0&&J===0&&this._generatePoleQuad(t,S,I,q,W,Ql),J===0&&F===0&&this._generatePoleQuad(t,I,b,W,L,Ql)),o&&(F===f&&U===f&&this._generatePoleQuad(t,b,S,L,q,Tu),U===f&&J===f&&this._generatePoleQuad(t,S,I,q,W,Tu),J===f&&F===f&&this._generatePoleQuad(t,I,b,W,L,Tu))}}_initializeVertices(t){for(let r=0;r80*L){J=S[0],ce=S[1];let ye=J,Ce=ce;for(let Ke=L;Keye&&(ye=ct),St>Ce&&(Ce=St)}Re=Math.max(ye-J,Ce-ce),Re=Re!==0?32767/Re:0}return yu(U,W,L,J,ce,Re,0),W})(o,c),b=this._convertIndices(o,v);f=this._subdivideTrianglesScanline(b)}catch(v){console.error(v)}let _=[];return r&&(_=this._generateOutline(t)),this._ensureNoPoleVertices(),this._handlePoles(f),{verticesFlattened:this._vertexBuffer,indicesTriangles:f,indicesLineList:_}}_convertIndices(t,r){const o=[];for(let c=0;c0?(Math.floor(St/_)+1)*_:(Math.ceil(St/_)-1)*_,Cr=Ce>0?(Math.floor(Yt/_)+1)*_:(Math.ceil(Yt/_)-1)*_,Gt=Math.abs(St-Ht),Wt=Math.abs(Yt-Cr),gt=Math.abs(St-W),Nr=Math.abs(Yt-J),Gr=ce?Gt/Ke:Number.POSITIVE_INFINITY,kr=Re?Wt/ct:Number.POSITIVE_INFINITY;if((gt<=Gt||!ce)&&(Nr<=Wt||!Re))break;if(Gr=0?_-1:f-1,S=(v+1)%f,I=n[2*t[b]],L=n[2*t[S]],F=n[2*t[_]],q=n[2*t[_]+1],U=n[2*t[v]+1];let W=!1;if(IL)W=!1;else{const J=U-q,ce=-(n[2*t[v]]-F),Re=q((L-F)*J+(n[2*t[S]+1]-q)*ce)*Re&&(W=!0)}if(W){const J=t[b],ce=t[_],Re=t[v];J!==ce&&J!==Re&&ce!==Re&&r.push(Re,ce,J),_--,_<0&&(_=f-1)}else{const J=t[S],ce=t[_],Re=t[v];J!==ce&&J!==Re&&ce!==Re&&r.push(Re,ce,J),v++,v>=f&&(v=0)}if(b===S)break}}function L_(n,t,r,o,c,f,_,v,b){const S=c.length/2,I=_&&v&&b;if(SKr.MAX_VERTEX_ARRAY_LENGTH&&(Ce=L.createNewSegment(F,q),ye=Re.count,Ht=!0,Cr=!0,Gt=!0,Ke=0);const Wt=Cu(ce,U,J,Re,St,Ht,Ce),gt=Cu(ce,U,J,Re,Yt,Cr,Ce),Nr=Cu(ce,U,J,Re,qt,Gt,Ce);q.emplaceBack(Ke+Wt-ye,Ke+gt-ye,Ke+Nr-ye),Ce.primitiveLength++}})(t,r,o,c,f,n),I&&(function(L,F,q,U,W,J){const ce=[];for(let ct=0;ctKr.MAX_VERTEX_ARRAY_LENGTH&&(Ce=L.createNewSegment(F,q),ye=Re.count,Cr=!0,Gt=!0,Ke=0);const Wt=Cu(ce,U,J,Re,qt,Cr,Ce),gt=Cu(ce,U,J,Re,Ht,Gt,Ce);q.emplaceBack(Ke+Wt-ye,Ke+gt-ye),Ce.primitiveLength++}}})(_,r,v,c,b,n),t.forceNewSegmentOnNextPrepare(),_==null||_.forceNewSegmentOnNextPrepare()}function Cu(n,t,r,o,c,f,_){if(f){const v=o.count;return r(t[2*c],t[2*c+1]),n[c]=o.count,o.count++,_.vertexLength++,v}return n[c]}class nf{constructor(t){this.zoom=t.zoom,this.globalState=t.globalState,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((r=>r.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new rt,this.indexArray=new Rn,this.indexArray2=new Ln,this.programConfigurations=new la(t.layers,t.zoom),this.segments=new Kr,this.segments2=new Kr,this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,o){this.hasPattern=Qp("fill",this.layers,r);const c=this.layers[0].layout.get("fill-sort-key"),f=!c.isConstant(),_=[];for(const{feature:v,id:b,index:S,sourceLayerIndex:I}of t){const L=this.layers[0]._featureFilter.needGeometry,F=no(v,L);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),F,o))continue;const q=f?c.evaluate(F,{},o,r.availableImages):void 0,U={id:b,properties:v.properties,type:v.type,sourceLayerIndex:I,index:S,geometry:L?F.geometry:bo(v),patterns:{},sortKey:q};_.push(U)}f&&_.sort(((v,b)=>v.sortKey-b.sortKey));for(const v of _){const{geometry:b,index:S,sourceLayerIndex:I}=v;if(this.hasPattern){const L=ef("fill",this.layers,v,this.zoom,r);this.patternFeatures.push(L)}else this.addFeature(v,b,S,o,{},r.subdivisionGranularity);r.featureIndex.insert(t[S].feature,b,S,I,this.index)}}update(t,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,o)}addFeatures(t,r,o){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,r,o,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,hy),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(t,r,o,c,f,_){for(const v of Os(r,500)){const b=z_(v,c,_.fill.getGranularityForZoomLevel(c.z)),S=this.layoutVertexArray;L_(((I,L)=>{S.emplaceBack(I,L)}),this.segments,this.layoutVertexArray,this.indexArray,b.verticesFlattened,b.indicesTriangles,this.segments2,this.indexArray2,b.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,f,c)}}let D_,R_;nr("FillBucket",nf,{omit:["layers","patternFeatures"]});var Ty={get paint(){return R_=R_||new Ui({"fill-antialias":new br(xe.paint_fill["fill-antialias"]),"fill-opacity":new Or(xe.paint_fill["fill-opacity"]),"fill-color":new Or(xe.paint_fill["fill-color"]),"fill-outline-color":new Or(xe.paint_fill["fill-outline-color"]),"fill-translate":new br(xe.paint_fill["fill-translate"]),"fill-translate-anchor":new br(xe.paint_fill["fill-translate-anchor"]),"fill-pattern":new Zl(xe.paint_fill["fill-pattern"])})},get layout(){return D_=D_||new Ui({"fill-sort-key":new Or(xe.layout_fill["fill-sort-key"])})}};class Cy extends xa{constructor(t){super(t,Ty)}recalculate(t,r){super.recalculate(t,r);const o=this.paint._values["fill-outline-color"];o.value.kind==="constant"&&o.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(t){return new nf(t)}queryRadius(){return Pd(this.paint.get("fill-translate"))}queryIntersectsFeature({queryGeometry:t,geometry:r,transform:o,pixelsToTileUnits:c}){return p_(Id(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),-o.bearingInRadians,c),r)}isTileClipped(){return!0}}const Sy=ti([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4),Py=ti([{name:"a_centroid",components:2,type:"Int16"}],4),{members:Iy}=Sy;class ec{constructor(t,r,o,c,f){this.properties={},this.extent=o,this.type=0,this.id=void 0,this._pbf=t,this._geometry=-1,this._keys=c,this._values=f,t.readFields(My,this,r)}loadGeometry(){const t=this._pbf;t.pos=this._geometry;const r=t.readVarint()+t.pos,o=[];let c,f=1,_=0,v=0,b=0;for(;t.pos>3}if(_--,f===1||f===2)v+=t.readSVarint(),b+=t.readSVarint(),f===1&&(c&&o.push(c),c=[]),c&&c.push(new B(v,b));else{if(f!==7)throw new Error(`unknown command ${f}`);c&&c.push(c[0].clone())}}return c&&o.push(c),o}bbox(){const t=this._pbf;t.pos=this._geometry;const r=t.readVarint()+t.pos;let o=1,c=0,f=0,_=0,v=1/0,b=-1/0,S=1/0,I=-1/0;for(;t.pos>3}if(c--,o===1||o===2)f+=t.readSVarint(),_+=t.readSVarint(),fb&&(b=f),_I&&(I=_);else if(o!==7)throw new Error(`unknown command ${o}`)}return[v,S,b,I]}toGeoJSON(t,r,o){const c=this.extent*Math.pow(2,o),f=this.extent*t,_=this.extent*r,v=this.loadGeometry();function b(F){return[360*(F.x+f)/c-180,360/Math.PI*Math.atan(Math.exp((1-2*(F.y+_)/c)*Math.PI))-90]}function S(F){return F.map(b)}let I;if(this.type===1){const F=[];for(const U of v)F.push(U[0]);const q=S(F);I=F.length===1?{type:"Point",coordinates:q[0]}:{type:"MultiPoint",coordinates:q}}else if(this.type===2){const F=v.map(S);I=F.length===1?{type:"LineString",coordinates:F[0]}:{type:"MultiLineString",coordinates:F}}else{if(this.type!==3)throw new Error("unknown feature type");{const F=(function(U){const W=U.length;if(W<=1)return[U];const J=[];let ce,Re;for(let ye=0;ye=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];const r=this._pbf.readVarint()+this._pbf.pos;return new ec(this._pbf,r,this.extent,this._keys,this._values)}}function Ay(n,t,r){n===15?t.version=r.readVarint():n===1?t.name=r.readString():n===5?t.extent=r.readVarint():n===2?t._features.push(r.pos):n===3?t._keys.push(r.readString()):n===4&&t._values.push((function(o){let c=null;const f=o.readVarint()+o.pos;for(;o.pos>3;c=_===1?o.readString():_===2?o.readFloat():_===3?o.readDouble():_===4?o.readVarint64():_===5?o.readVarint():_===6?o.readSVarint():_===7?o.readBoolean():null}if(c==null)throw new Error("unknown feature value");return c})(r))}class F_{constructor(t,r){this.layers=t.readFields(Ey,{},r)}}function Ey(n,t,r){if(n===3){const o=new B_(r,r.readVarint()+r.pos);o.length&&(t[o.name]=o)}}const af=Math.pow(2,13);function Su(n,t,r,o,c,f,_,v){n.emplaceBack(t,r,2*Math.floor(o*af)+_,c*af*2,f*af*2,Math.round(v))}class of{constructor(t){this.zoom=t.zoom,this.globalState=t.globalState,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((r=>r.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Ge,this.centroidVertexArray=new _e,this.indexArray=new Rn,this.programConfigurations=new la(t.layers,t.zoom),this.segments=new Kr,this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,o){this.features=[],this.hasPattern=Qp("fill-extrusion",this.layers,r);for(const{feature:c,id:f,index:_,sourceLayerIndex:v}of t){const b=this.layers[0]._featureFilter.needGeometry,S=no(c,b);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),S,o))continue;const I={id:f,sourceLayerIndex:v,index:_,geometry:b?S.geometry:bo(c),properties:c.properties,type:c.type,patterns:{}};this.hasPattern?this.features.push(ef("fill-extrusion",this.layers,I,this.zoom,r)):this.addFeature(I,I.geometry,_,o,{},r.subdivisionGranularity),r.featureIndex.insert(c,I.geometry,_,v,this.index,!0)}}addFeatures(t,r,o){for(const c of this.features){const{geometry:f}=c;this.addFeature(c,f,c.index,r,o,t.subdivisionGranularity)}}update(t,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Iy),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,Py.members,!0),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(t,r,o,c,f,_){for(const v of Os(r,500)){const b={x:0,y:0,sampleCount:0},S=this.layoutVertexArray.length;this.processPolygon(b,c,t,v,_);const I=this.layoutVertexArray.length-S,L=Math.floor(b.x/b.sampleCount),F=Math.floor(b.y/b.sampleCount);for(let q=0;q{Su(I,L,F,0,0,1,1,0)}),this.segments,this.layoutVertexArray,this.indexArray,S.verticesFlattened,S.indicesTriangles)}_generateSideFaces(t,r){let o=0;for(let c=1;cKr.MAX_VERTEX_ARRAY_LENGTH&&(r.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const v=f.sub(_)._perp()._unit(),b=_.dist(f);o+b>32768&&(o=0),Su(this.layoutVertexArray,f.x,f.y,v.x,v.y,0,0,o),Su(this.layoutVertexArray,f.x,f.y,v.x,v.y,0,1,o),o+=b,Su(this.layoutVertexArray,_.x,_.y,v.x,v.y,0,0,o),Su(this.layoutVertexArray,_.x,_.y,v.x,v.y,0,1,o);const S=r.segment.vertexLength;this.indexArray.emplaceBack(S,S+2,S+1),this.indexArray.emplaceBack(S+1,S+2,S+3),r.segment.vertexLength+=4,r.segment.primitiveLength+=2}}}function zy(n,t){for(let r=0;roe)||n.y===t.y&&(n.y<0||n.y>oe)}function O_(n){return n.every((t=>t.x<0))||n.every((t=>t.x>oe))||n.every((t=>t.y<0))||n.every((t=>t.y>oe))}let N_;nr("FillExtrusionBucket",of,{omit:["layers","features"]});var Dy={get paint(){return N_=N_||new Ui({"fill-extrusion-opacity":new br(xe["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Or(xe["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new br(xe["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new br(xe["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Zl(xe["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Or(xe["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Or(xe["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new br(xe["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class Ry extends xa{constructor(t){super(t,Dy)}createBucket(t){return new of(t)}queryRadius(){return Pd(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature({queryGeometry:t,feature:r,featureState:o,geometry:c,transform:f,pixelsToTileUnits:_,pixelPosMatrix:v}){const b=Id(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),-f.bearingInRadians,_),S=this.paint.get("fill-extrusion-height").evaluate(r,o),I=this.paint.get("fill-extrusion-base").evaluate(r,o),L=(function(q,U){const W=[];for(const J of q){const ce=[J.x,J.y,0,1];Me(ce,ce,U),W.push(new B(ce[0]/ce[3],ce[1]/ce[3]))}return W})(b,v),F=(function(q,U,W,J){const ce=[],Re=[],ye=J[8]*U,Ce=J[9]*U,Ke=J[10]*U,ct=J[11]*U,St=J[8]*W,Yt=J[9]*W,qt=J[10]*W,Ht=J[11]*W;for(const Cr of q){const Gt=[],Wt=[];for(const gt of Cr){const Nr=gt.x,Gr=gt.y,kr=J[0]*Nr+J[4]*Gr+J[12],vr=J[1]*Nr+J[5]*Gr+J[13],hn=J[2]*Nr+J[6]*Gr+J[14],Qn=J[3]*Nr+J[7]*Gr+J[15],gi=hn+Ke,qi=Qn+ct,Ba=kr+St,ua=vr+Yt,Ri=hn+qt,Xn=Qn+Ht,Pi=new B((kr+ye)/qi,(vr+Ce)/qi);Pi.z=gi/qi,Gt.push(Pi);const Bi=new B(Ba/Xn,ua/Xn);Bi.z=Ri/Xn,Wt.push(Bi)}ce.push(Gt),Re.push(Wt)}return[ce,Re]})(c,I,S,v);return(function(q,U,W){let J=1/0;p_(W,U)&&(J=j_(W,U[0]));for(let ce=0;cer.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((r=>{this.gradients[r.id]={}})),this.layoutVertexArray=new Xe,this.layoutVertexArray2=new tt,this.indexArray=new Rn,this.programConfigurations=new la(t.layers,t.zoom),this.segments=new Kr,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,o){this.hasPattern=Qp("line",this.layers,r);const c=this.layers[0].layout.get("line-sort-key"),f=!c.isConstant(),_=[];for(const{feature:v,id:b,index:S,sourceLayerIndex:I}of t){const L=this.layers[0]._featureFilter.needGeometry,F=no(v,L);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),F,o))continue;const q=f?c.evaluate(F,{},o):void 0,U={id:b,properties:v.properties,type:v.type,sourceLayerIndex:I,index:S,geometry:L?F.geometry:bo(v),patterns:{},sortKey:q};_.push(U)}f&&_.sort(((v,b)=>v.sortKey-b.sortKey));for(const v of _){const{geometry:b,index:S,sourceLayerIndex:I}=v;if(this.hasPattern){const L=ef("line",this.layers,v,this.zoom,r);this.patternFeatures.push(L)}else this.addFeature(v,b,S,o,{},r.subdivisionGranularity);r.featureIndex.insert(t[S].feature,b,S,I,this.index)}}update(t,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,o)}addFeatures(t,r,o){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,r,o,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,Ny)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Fy),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(t){if(t.properties&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_end"))return{start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,r,o,c,f,_){const v=this.layers[0].layout,b=v.get("line-join").evaluate(t,{}),S=v.get("line-cap"),I=v.get("line-miter-limit"),L=v.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const F of r)this.addLine(F,t,b,S,I,L,c,_);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,f,c)}addLine(t,r,o,c,f,_,v,b){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,t=tl(t,v?b.line.getGranularityForZoomLevel(v.z):1),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let ye=0;ye=2&&t[I-1].equals(t[I-2]);)I--;let L=0;for(;L0;if(qt&&ye>L){const Wt=U.dist(W);if(Wt>2*F){const gt=U.sub(U.sub(W)._mult(F/Wt)._round());this.updateDistance(W,gt),this.addCurrentVertex(gt,ce,0,0,q),W=gt}}const Cr=W&&J;let Gt=Cr?o:S?"butt":c;if(Cr&&Gt==="round"&&(St<_?Gt="miter":St<=2&&(Gt="fakeround")),Gt==="miter"&&St>f&&(Gt="bevel"),Gt==="bevel"&&(St>2&&(Gt="flipbevel"),St100)Ce=Re.mult(-1);else{const Wt=St*ce.add(Re).mag()/ce.sub(Re).mag();Ce._perp()._mult(Wt*(Ht?-1:1))}this.addCurrentVertex(U,Ce,0,0,q),this.addCurrentVertex(U,Ce.mult(-1),0,0,q)}else if(Gt==="bevel"||Gt==="fakeround"){const Wt=-Math.sqrt(St*St-1),gt=Ht?Wt:0,Nr=Ht?0:Wt;if(W&&this.addCurrentVertex(U,ce,gt,Nr,q),Gt==="fakeround"){const Gr=Math.round(180*Yt/Math.PI/20);for(let kr=1;kr2*F){const gt=U.add(J.sub(U)._mult(F/Wt)._round());this.updateDistance(U,gt),this.addCurrentVertex(gt,Re,0,0,q),U=gt}}}}addCurrentVertex(t,r,o,c,f,_=!1){const v=r.y*c-r.x,b=-r.y-r.x*c;this.addHalfVertex(t,r.x+r.y*o,r.y-r.x*o,_,!1,o,f),this.addHalfVertex(t,v,b,_,!0,-c,f),this.distance>V_/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,r,o,c,f,_))}addHalfVertex({x:t,y:r},o,c,f,_,v,b){const S=.5*(this.lineClips?this.scaledDistance*(V_-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t<<1)+(f?1:0),(r<<1)+(_?1:0),Math.round(63*o)+128,Math.round(63*c)+128,1+(v===0?0:v<0?-1:1)|(63&S)<<2,S>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const I=b.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,I,this.e2),b.primitiveLength++),_?this.e2=I:this.e1=I}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(t,r){this.distance+=t.dist(r),this.updateScaledDistance()}}let q_,Z_;nr("LineBucket",sf,{omit:["layers","patternFeatures"]});var U_={get paint(){return Z_=Z_||new Ui({"line-opacity":new Or(xe.paint_line["line-opacity"]),"line-color":new Or(xe.paint_line["line-color"]),"line-translate":new br(xe.paint_line["line-translate"]),"line-translate-anchor":new br(xe.paint_line["line-translate-anchor"]),"line-width":new Or(xe.paint_line["line-width"]),"line-gap-width":new Or(xe.paint_line["line-gap-width"]),"line-offset":new Or(xe.paint_line["line-offset"]),"line-blur":new Or(xe.paint_line["line-blur"]),"line-dasharray":new _o(xe.paint_line["line-dasharray"]),"line-pattern":new Zl(xe.paint_line["line-pattern"]),"line-gradient":new Ul(xe.paint_line["line-gradient"])})},get layout(){return q_=q_||new Ui({"line-cap":new br(xe.layout_line["line-cap"]),"line-join":new Or(xe.layout_line["line-join"]),"line-miter-limit":new br(xe.layout_line["line-miter-limit"]),"line-round-limit":new br(xe.layout_line["line-round-limit"]),"line-sort-key":new Or(xe.layout_line["line-sort-key"])})}};class Vy extends Or{possiblyEvaluate(t,r){return r=new Un(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),super.possiblyEvaluate(t,r)}evaluate(t,r,o,c){return r=dt({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(t,r,o,c)}}let Ed;class qy extends xa{constructor(t){super(t,U_),this.gradientVersion=0,Ed||(Ed=new Vy(U_.paint.properties["line-width"].specification),Ed.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(t){if(t==="line-gradient"){const r=this.gradientExpression();this.stepInterpolant=!!(function(o){return o._styleExpression!==void 0})(r)&&r._styleExpression.expression instanceof ei,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(t,r){super.recalculate(t,r),this.paint._values["line-floorwidth"]=Ed.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,t)}createBucket(t){return new sf(t)}queryRadius(t){const r=t,o=$_(gu("line-width",this,r),gu("line-gap-width",this,r)),c=gu("line-offset",this,r);return o/2+Math.abs(c)+Pd(this.paint.get("line-translate"))}queryIntersectsFeature({queryGeometry:t,feature:r,featureState:o,geometry:c,transform:f,pixelsToTileUnits:_}){const v=Id(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),-f.bearingInRadians,_),b=_/2*$_(this.paint.get("line-width").evaluate(r,o),this.paint.get("line-gap-width").evaluate(r,o)),S=this.paint.get("line-offset").evaluate(r,o);return S&&(c=(function(I,L){const F=[];for(let q=0;q=3){for(let W=0;W0?t+2*n:n}const Zy=ti([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Uy=ti([{name:"a_projected_pos",components:3,type:"Float32"}],4);ti([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const $y=ti([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);ti([{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 G_=ti([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Gy=ti([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Hy(n,t,r){return n.sections.forEach((o=>{o.text=(function(c,f,_){const v=f.layout.get("text-transform").evaluate(_,{});return v==="uppercase"?c=c.toLocaleUpperCase():v==="lowercase"&&(c=c.toLocaleLowerCase()),Ea.applyArabicShaping&&(c=Ea.applyArabicShaping(c)),c})(o.text,t,r)})),n}ti([{name:"triangle",components:3,type:"Uint16"}]),ti([{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"}]),ti([{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"}]),ti([{type:"Float32",name:"offsetX"}]),ti([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),ti([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const Iu={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var Si=24;const lf=4294967296,H_=1/lf,W_=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");class cf{constructor(t=new Uint8Array(16)){this.buf=ArrayBuffer.isView(t)?t:new Uint8Array(t),this.dataView=new DataView(this.buf.buffer),this.pos=0,this.type=0,this.length=this.buf.length}readFields(t,r,o=this.length){for(;this.pos>3,_=this.pos;this.type=7&c,t(f,r,this),this.pos===_&&this.skip(c)}return r}readMessage(t,r){return this.readFields(t,r,this.readVarint()+this.pos)}readFixed32(){const t=this.dataView.getUint32(this.pos,!0);return this.pos+=4,t}readSFixed32(){const t=this.dataView.getInt32(this.pos,!0);return this.pos+=4,t}readFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*lf;return this.pos+=8,t}readSFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*lf;return this.pos+=8,t}readFloat(){const t=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,t}readDouble(){const t=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,t}readVarint(t){const r=this.buf;let o,c;return c=r[this.pos++],o=127&c,c<128?o:(c=r[this.pos++],o|=(127&c)<<7,c<128?o:(c=r[this.pos++],o|=(127&c)<<14,c<128?o:(c=r[this.pos++],o|=(127&c)<<21,c<128?o:(c=r[this.pos],o|=(15&c)<<28,(function(f,_,v){const b=v.buf;let S,I;if(I=b[v.pos++],S=(112&I)>>4,I<128||(I=b[v.pos++],S|=(127&I)<<3,I<128)||(I=b[v.pos++],S|=(127&I)<<10,I<128)||(I=b[v.pos++],S|=(127&I)<<17,I<128)||(I=b[v.pos++],S|=(127&I)<<24,I<128)||(I=b[v.pos++],S|=(1&I)<<31,I<128))return tc(f,S,_);throw new Error("Expected varint not more than 10 bytes")})(o,t,this)))))}readVarint64(){return this.readVarint(!0)}readSVarint(){const t=this.readVarint();return t%2==1?(t+1)/-2:t/2}readBoolean(){return!!this.readVarint()}readString(){const t=this.readVarint()+this.pos,r=this.pos;return this.pos=t,t-r>=12&&W_?W_.decode(this.buf.subarray(r,t)):(function(o,c,f){let _="",v=c;for(;v239?4:b>223?3:b>191?2:1;if(v+q>f)break;q===1?b<128&&(F=b):q===2?(S=o[v+1],(192&S)==128&&(F=(31&b)<<6|63&S,F<=127&&(F=null))):q===3?(S=o[v+1],I=o[v+2],(192&S)==128&&(192&I)==128&&(F=(15&b)<<12|(63&S)<<6|63&I,(F<=2047||F>=55296&&F<=57343)&&(F=null))):q===4&&(S=o[v+1],I=o[v+2],L=o[v+3],(192&S)==128&&(192&I)==128&&(192&L)==128&&(F=(15&b)<<18|(63&S)<<12|(63&I)<<6|63&L,(F<=65535||F>=1114112)&&(F=null))),F===null?(F=65533,q=1):F>65535&&(F-=65536,_+=String.fromCharCode(F>>>10&1023|55296),F=56320|1023&F),_+=String.fromCharCode(F),v+=q}return _})(this.buf,r,t)}readBytes(){const t=this.readVarint()+this.pos,r=this.buf.subarray(this.pos,t);return this.pos=t,r}readPackedVarint(t=[],r){const o=this.readPackedEnd();for(;this.pos127;);else if(r===2)this.pos=this.readVarint()+this.pos;else if(r===5)this.pos+=4;else{if(r!==1)throw new Error(`Unimplemented type: ${r}`);this.pos+=8}}writeTag(t,r){this.writeVarint(t<<3|r)}realloc(t){let r=this.length||16;for(;r268435455||t<0?(function(r,o){let c,f;if(r>=0?(c=r%4294967296|0,f=r/4294967296|0):(c=~(-r%4294967296),f=~(-r/4294967296),4294967295^c?c=c+1|0:(c=0,f=f+1|0)),r>=18446744073709552e3||r<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");o.realloc(10),(function(_,v,b){b.buf[b.pos++]=127&_|128,_>>>=7,b.buf[b.pos++]=127&_|128,_>>>=7,b.buf[b.pos++]=127&_|128,_>>>=7,b.buf[b.pos++]=127&_|128,b.buf[b.pos]=127&(_>>>=7)})(c,0,o),(function(_,v){const b=(7&_)<<4;v.buf[v.pos++]|=b|((_>>>=3)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_)))))})(f,o)})(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))}writeSVarint(t){this.writeVarint(t<0?2*-t-1:2*t)}writeBoolean(t){this.writeVarint(+t)}writeString(t){t=String(t),this.realloc(4*t.length),this.pos++;const r=this.pos;this.pos=(function(c,f,_){for(let v,b,S=0;S55295&&v<57344){if(!b){v>56319||S+1===f.length?(c[_++]=239,c[_++]=191,c[_++]=189):b=v;continue}if(v<56320){c[_++]=239,c[_++]=191,c[_++]=189,b=v;continue}v=b-55296<<10|v-56320|65536,b=null}else b&&(c[_++]=239,c[_++]=191,c[_++]=189,b=null);v<128?c[_++]=v:(v<2048?c[_++]=v>>6|192:(v<65536?c[_++]=v>>12|224:(c[_++]=v>>18|240,c[_++]=v>>12&63|128),c[_++]=v>>6&63|128),c[_++]=63&v|128)}return _})(this.buf,t,this.pos);const o=this.pos-r;o>=128&&X_(r,o,this),this.pos=r-1,this.writeVarint(o),this.pos+=o}writeFloat(t){this.realloc(4),this.dataView.setFloat32(this.pos,t,!0),this.pos+=4}writeDouble(t){this.realloc(8),this.dataView.setFloat64(this.pos,t,!0),this.pos+=8}writeBytes(t){const r=t.length;this.writeVarint(r),this.realloc(r);for(let o=0;o=128&&X_(o,c,this),this.pos=o-1,this.writeVarint(c),this.pos+=c}writeMessage(t,r,o){this.writeTag(t,2),this.writeRawMessage(r,o)}writePackedVarint(t,r){r.length&&this.writeMessage(t,Wy,r)}writePackedSVarint(t,r){r.length&&this.writeMessage(t,Xy,r)}writePackedBoolean(t,r){r.length&&this.writeMessage(t,Jy,r)}writePackedFloat(t,r){r.length&&this.writeMessage(t,Yy,r)}writePackedDouble(t,r){r.length&&this.writeMessage(t,Ky,r)}writePackedFixed32(t,r){r.length&&this.writeMessage(t,Qy,r)}writePackedSFixed32(t,r){r.length&&this.writeMessage(t,e1,r)}writePackedFixed64(t,r){r.length&&this.writeMessage(t,t1,r)}writePackedSFixed64(t,r){r.length&&this.writeMessage(t,r1,r)}writeBytesField(t,r){this.writeTag(t,2),this.writeBytes(r)}writeFixed32Field(t,r){this.writeTag(t,5),this.writeFixed32(r)}writeSFixed32Field(t,r){this.writeTag(t,5),this.writeSFixed32(r)}writeFixed64Field(t,r){this.writeTag(t,1),this.writeFixed64(r)}writeSFixed64Field(t,r){this.writeTag(t,1),this.writeSFixed64(r)}writeVarintField(t,r){this.writeTag(t,0),this.writeVarint(r)}writeSVarintField(t,r){this.writeTag(t,0),this.writeSVarint(r)}writeStringField(t,r){this.writeTag(t,2),this.writeString(r)}writeFloatField(t,r){this.writeTag(t,5),this.writeFloat(r)}writeDoubleField(t,r){this.writeTag(t,1),this.writeDouble(r)}writeBooleanField(t,r){this.writeVarintField(t,+r)}}function tc(n,t,r){return r?4294967296*t+(n>>>0):4294967296*(t>>>0)+(n>>>0)}function X_(n,t,r){const o=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(7*Math.LN2));r.realloc(o);for(let c=r.pos-1;c>=n;c--)r.buf[c+o]=r.buf[c]}function Wy(n,t){for(let r=0;rv.h-_.h));const o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),r),h:1/0}];let c=0,f=0;for(const _ of n)for(let v=o.length-1;v>=0;v--){const b=o[v];if(!(_.w>b.w||_.h>b.h)){if(_.x=b.x,_.y=b.y,f=Math.max(f,_.y+_.h),c=Math.max(c,_.x+_.w),_.w===b.w&&_.h===b.h){const S=o.pop();S&&v=0&&o>=t&&Ld[this.text.charCodeAt(o)];o--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)}substring(t,r){const o=new rc;return o.text=this.text.substring(t,r),o.sectionIndex=this.sectionIndex.slice(t,r),o.sections=this.sections,o}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,r)=>Math.max(t,this.sections[r].scale)),0)}getMaxImageSize(t){let r=0,o=0;for(let c=0;c=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function zd(n,t,r,o,c,f,_,v,b,S,I,L,F,q,U){const W=rc.fromFeature(n,c);let J;L===T.ao.vertical&&W.verticalizePunctuation();const{processBidirectionalText:ce,processStyledBidirectionalText:Re}=Ea;if(ce&&W.sections.length===1){J=[];const Ke=ce(W.toString(),hf(W,S,f,t,o,q));for(const ct of Ke){const St=new rc;St.text=ct,St.sections=W.sections;for(let Yt=0;Yt=0;let S=0;for(let L=0;LS){const I=Math.ceil(f/S);c*=I/_,_=I}return{x1:o,y1:c,x2:o+f,y2:c+_}}function ig(n,t,r,o,c,f){const _=n.image;let v;if(_.content){const J=_.content,ce=_.pixelRatio||1;v=[J[0]/ce,J[1]/ce,_.displaySize[0]-J[2]/ce,_.displaySize[1]-J[3]/ce]}const b=t.left*f,S=t.right*f;let I,L,F,q;r==="width"||r==="both"?(q=c[0]+b-o[3],L=c[0]+S+o[1]):(q=c[0]+(b+S-_.displaySize[0])/2,L=q+_.displaySize[0]);const U=t.top*f,W=t.bottom*f;return r==="height"||r==="both"?(I=c[1]+U-o[0],F=c[1]+W+o[2]):(I=c[1]+(U+W-_.displaySize[1])/2,F=I+_.displaySize[1]),{image:_,top:I,right:L,bottom:F,left:q,collisionPadding:v}}const Zo=128,vs=32640;function ag(n,t){const{expression:r}=t;if(r.kind==="constant")return{kind:"constant",layoutSize:r.evaluate(new Un(n+1))};if(r.kind==="source")return{kind:"source"};{const{zoomStops:o,interpolationType:c}=r;let f=0;for(;f_.id)),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[];const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=ag(this.zoom,r["text-size"]),this.iconSizeData=ag(this.zoom,r["icon-size"]);const o=this.layers[0].layout,c=o.get("symbol-sort-key"),f=o.get("symbol-z-order");this.canOverlap=pf(o,"text-overlap","text-allow-overlap")!=="never"||pf(o,"icon-overlap","icon-allow-overlap")!=="never"||o.get("text-ignore-placement")||o.get("icon-ignore-placement"),this.sortFeaturesByKey=f!=="viewport-y"&&!c.isConstant(),this.sortFeaturesByY=(f==="viewport-y"||f==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,o.get("symbol-placement")==="point"&&(this.writingModes=o.get("text-writing-mode").map((_=>T.ao[_]))),this.stateDependentLayerIds=this.layers.filter((_=>_.isStateDependent())).map((_=>_.id)),this.sourceID=t.sourceID}createArrays(){this.text=new mf(new la(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new mf(new la(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new ie,this.lineVertexArray=new ue,this.symbolInstances=new ee,this.textAnchorOffsets=new me}calculateGlyphDependencies(t,r,o,c,f){for(let _=0;_0)&&(_.value.kind!=="constant"||_.value.value.length>0),I=b.value.kind!=="constant"||!!b.value.value||Object.keys(b.parameters).length>0,L=f.get("symbol-sort-key");if(this.features=[],!S&&!I)return;const F=r.iconDependencies,q=r.glyphDependencies,U=r.availableImages,W=new Un(this.zoom,{globalState:this.globalState});for(const{feature:J,id:ce,index:Re,sourceLayerIndex:ye}of t){const Ce=c._featureFilter.needGeometry,Ke=no(J,Ce);if(!c._featureFilter.filter(W,Ke,o))continue;let ct,St;if(Ce||(Ke.geometry=bo(J)),S){const qt=c.getValueAndResolveTokens("text-field",Ke,o,U),Ht=Sn.factory(qt),Cr=this.hasRTLText=this.hasRTLText||_1(Ht);(!Cr||Ea.getRTLTextPluginStatus()==="unavailable"||Cr&&Ea.isParsed())&&(ct=Hy(Ht,c,Ke))}if(I){const qt=c.getValueAndResolveTokens("icon-image",Ke,o,U);St=qt instanceof Hn?qt:Hn.fromString(qt)}if(!ct&&!St)continue;const Yt=this.sortFeaturesByKey?L.evaluate(Ke,{},o):void 0;if(this.features.push({id:ce,text:ct,icon:St,index:Re,sourceLayerIndex:ye,geometry:Ke.geometry,properties:J.properties,type:ec.types[J.type],sortKey:Yt}),St&&(F[St.name]=!0),ct){const qt=_.evaluate(Ke,{},o).join(","),Ht=f.get("text-rotation-alignment")!=="viewport"&&f.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(T.ao.vertical)>=0;for(const Cr of ct.sections)if(Cr.image)F[Cr.image.name]=!0;else{const Gt=jl(ct.toString()),Wt=Cr.fontStack||qt,gt=q[Wt]=q[Wt]||{};this.calculateGlyphDependencies(Cr.text,gt,Ht,this.allowVerticalPlacement,Gt)}}}f.get("symbol-placement")==="line"&&(this.features=(function(J){const ce={},Re={},ye=[];let Ce=0;function Ke(qt){ye.push(J[qt]),Ce++}function ct(qt,Ht,Cr){const Gt=Re[qt];return delete Re[qt],Re[Ht]=Gt,ye[Gt].geometry[0].pop(),ye[Gt].geometry[0]=ye[Gt].geometry[0].concat(Cr[0]),Gt}function St(qt,Ht,Cr){const Gt=ce[Ht];return delete ce[Ht],ce[qt]=Gt,ye[Gt].geometry[0].shift(),ye[Gt].geometry[0]=Cr[0].concat(ye[Gt].geometry[0]),Gt}function Yt(qt,Ht,Cr){const Gt=Cr?Ht[0][Ht[0].length-1]:Ht[0][0];return`${qt}:${Gt.x}:${Gt.y}`}for(let qt=0;qtqt.geometry))})(this.features)),this.sortFeaturesByKey&&this.features.sort(((J,ce)=>J.sortKey-ce.sortKey))}update(t,r,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,r,this.layers,o),this.icon.programConfigurations.updatePaintArrays(t,r,this.layers,o))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(t,r){const o=this.lineVertexArray.length;if(t.segment!==void 0){let c=t.dist(r[t.segment+1]),f=t.dist(r[t.segment]);const _={};for(let v=t.segment+1;v=0;v--)_[v]={x:r[v].x,y:r[v].y,tileUnitDistanceFromAnchor:f},v>0&&(f+=r[v-1].dist(r[v]));for(let v=0;v0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,r){const o=t.placedSymbolArray.get(r),c=o.vertexStartIndex+4*o.numGlyphs;for(let f=o.vertexStartIndex;fc[v]-c[b]||f[b]-f[v])),_}addToSortKeyRanges(t,r){const o=this.sortKeyRanges[this.sortKeyRanges.length-1];o&&o.sortKey===r?o.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:r,symbolInstanceStart:t,symbolInstanceEnd:t+1})}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const r of this.symbolInstanceIndexes){const o=this.symbolInstances.get(r);this.featureSortOrder.push(o.featureIndex),[o.rightJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.leftJustifiedTextSymbolIndex].forEach(((c,f,_)=>{c>=0&&_.indexOf(c)===f&&this.addIndicesForPlacedSymbol(this.text,c)})),o.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,o.verticalPlacedTextSymbolIndex),o.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.placedIconSymbolIndex),o.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let og,sg;nr("SymbolBucket",nc,{omit:["layers","collisionBoxArray","features","compareText"]}),nc.MAX_GLYPHS=65535,nc.addDynamicAttributes=ff;var gf={get paint(){return sg=sg||new Ui({"icon-opacity":new Or(xe.paint_symbol["icon-opacity"]),"icon-color":new Or(xe.paint_symbol["icon-color"]),"icon-halo-color":new Or(xe.paint_symbol["icon-halo-color"]),"icon-halo-width":new Or(xe.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Or(xe.paint_symbol["icon-halo-blur"]),"icon-translate":new br(xe.paint_symbol["icon-translate"]),"icon-translate-anchor":new br(xe.paint_symbol["icon-translate-anchor"]),"text-opacity":new Or(xe.paint_symbol["text-opacity"]),"text-color":new Or(xe.paint_symbol["text-color"],{runtimeType:Kt,getOverride:n=>n.textColor,hasOverride:n=>!!n.textColor}),"text-halo-color":new Or(xe.paint_symbol["text-halo-color"]),"text-halo-width":new Or(xe.paint_symbol["text-halo-width"]),"text-halo-blur":new Or(xe.paint_symbol["text-halo-blur"]),"text-translate":new br(xe.paint_symbol["text-translate"]),"text-translate-anchor":new br(xe.paint_symbol["text-translate-anchor"])})},get layout(){return og=og||new Ui({"symbol-placement":new br(xe.layout_symbol["symbol-placement"]),"symbol-spacing":new br(xe.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new br(xe.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Or(xe.layout_symbol["symbol-sort-key"]),"symbol-z-order":new br(xe.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new br(xe.layout_symbol["icon-allow-overlap"]),"icon-overlap":new br(xe.layout_symbol["icon-overlap"]),"icon-ignore-placement":new br(xe.layout_symbol["icon-ignore-placement"]),"icon-optional":new br(xe.layout_symbol["icon-optional"]),"icon-rotation-alignment":new br(xe.layout_symbol["icon-rotation-alignment"]),"icon-size":new Or(xe.layout_symbol["icon-size"]),"icon-text-fit":new br(xe.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new br(xe.layout_symbol["icon-text-fit-padding"]),"icon-image":new Or(xe.layout_symbol["icon-image"]),"icon-rotate":new Or(xe.layout_symbol["icon-rotate"]),"icon-padding":new Or(xe.layout_symbol["icon-padding"]),"icon-keep-upright":new br(xe.layout_symbol["icon-keep-upright"]),"icon-offset":new Or(xe.layout_symbol["icon-offset"]),"icon-anchor":new Or(xe.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new br(xe.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new br(xe.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new br(xe.layout_symbol["text-rotation-alignment"]),"text-field":new Or(xe.layout_symbol["text-field"]),"text-font":new Or(xe.layout_symbol["text-font"]),"text-size":new Or(xe.layout_symbol["text-size"]),"text-max-width":new Or(xe.layout_symbol["text-max-width"]),"text-line-height":new br(xe.layout_symbol["text-line-height"]),"text-letter-spacing":new Or(xe.layout_symbol["text-letter-spacing"]),"text-justify":new Or(xe.layout_symbol["text-justify"]),"text-radial-offset":new Or(xe.layout_symbol["text-radial-offset"]),"text-variable-anchor":new br(xe.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new Or(xe.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new Or(xe.layout_symbol["text-anchor"]),"text-max-angle":new br(xe.layout_symbol["text-max-angle"]),"text-writing-mode":new br(xe.layout_symbol["text-writing-mode"]),"text-rotate":new Or(xe.layout_symbol["text-rotate"]),"text-padding":new br(xe.layout_symbol["text-padding"]),"text-keep-upright":new br(xe.layout_symbol["text-keep-upright"]),"text-transform":new Or(xe.layout_symbol["text-transform"]),"text-offset":new Or(xe.layout_symbol["text-offset"]),"text-allow-overlap":new br(xe.layout_symbol["text-allow-overlap"]),"text-overlap":new br(xe.layout_symbol["text-overlap"]),"text-ignore-placement":new br(xe.layout_symbol["text-ignore-placement"]),"text-optional":new br(xe.layout_symbol["text-optional"])})}};class lg{constructor(t){if(t.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=t.property.overrides?t.property.overrides.runtimeType:mt,this.defaultValue=t}evaluate(t){if(t.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(t.formattedSection))return r.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}nr("FormatSectionOverride",lg,{omit:["defaultValue"]});class Rd extends xa{constructor(t){super(t,gf)}recalculate(t,r){if(super.recalculate(t,r),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){const o=this.layout.get("text-writing-mode");if(o){const c=[];for(const f of o)c.indexOf(f)<0&&c.push(f);this.layout._values["text-writing-mode"]=c}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(t,r,o,c){const f=this.layout.get(t).evaluate(r,{},o,c),_=this._unevaluatedLayout._values[t];return _.isDataDriven()||zl(_.value)||!f?f:(function(v,b){return b.replace(/{([^{}]+)}/g,((S,I)=>v&&I in v?String(v[I]):""))})(r.properties,f)}createBucket(t){return new nc(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const t of gf.paint.overridableProperties){if(!Rd.hasPaintOverride(this.layout,t))continue;const r=this.paint.get(t),o=new lg(r),c=new Wc(o,r.property.specification);let f=null;f=r.value.kind==="constant"||r.value.kind==="source"?new Zs("source",c):new Xc("composite",c,r.value.zoomStops),this.paint._values[t]=new $a(r.property,f,r.parameters)}}_handleOverridablePaintPropertyUpdate(t,r,o){return!(!this.layout||r.isDataDriven()||o.isDataDriven())&&Rd.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,r){const o=t.get("text-field"),c=gf.paint.properties[r];let f=!1;const _=v=>{for(const b of v)if(c.overrides&&c.overrides.hasOverride(b))return void(f=!0)};if(o.value.kind==="constant"&&o.value.value instanceof Sn)_(o.value.value.sections);else if(o.value.kind==="source"){const v=S=>{f||(S instanceof _a&&Rr(S.value)===pn?_(S.value.sections):S instanceof ko?_(S.sections):S.eachChild(v))},b=o.value;b._styleExpression&&v(b._styleExpression.expression)}return f}}let cg;var g1={get paint(){return cg=cg||new Ui({"background-color":new br(xe.paint_background["background-color"]),"background-pattern":new _o(xe.paint_background["background-pattern"]),"background-opacity":new br(xe.paint_background["background-opacity"])})}};class v1 extends xa{constructor(t){super(t,g1)}}let ug;var y1={get paint(){return ug=ug||new Ui({"raster-opacity":new br(xe.paint_raster["raster-opacity"]),"raster-hue-rotate":new br(xe.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new br(xe.paint_raster["raster-brightness-min"]),"raster-brightness-max":new br(xe.paint_raster["raster-brightness-max"]),"raster-saturation":new br(xe.paint_raster["raster-saturation"]),"raster-contrast":new br(xe.paint_raster["raster-contrast"]),"raster-resampling":new br(xe.paint_raster["raster-resampling"]),"raster-fade-duration":new br(xe.paint_raster["raster-fade-duration"])})}};class x1 extends xa{constructor(t){super(t,y1)}}class b1 extends xa{constructor(t){super(t,{}),this.onAdd=r=>{this.implementation.onAdd&&this.implementation.onAdd(r,r.painter.context.gl)},this.onRemove=r=>{this.implementation.onRemove&&this.implementation.onRemove(r,r.painter.context.gl)},this.implementation=t}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 w1{constructor(t){this._methodToThrottle=t,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 T1={once:!0},vf=63710088e-1;class ys{constructor(t,r){if(isNaN(t)||isNaN(r))throw new Error(`Invalid LngLat object: (${t}, ${r})`);if(this.lng=+t,this.lat=+r,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new ys(ot(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const r=Math.PI/180,o=this.lat*r,c=t.lat*r,f=Math.sin(o)*Math.sin(c)+Math.cos(o)*Math.cos(c)*Math.cos((t.lng-this.lng)*r);return vf*Math.acos(Math.min(f,1))}static convert(t){if(t instanceof ys)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new ys(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t=="object"&&t!==null)return new ys(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const hg=2*Math.PI*vf;function dg(n){return hg*Math.cos(n*Math.PI/180)}function pg(n){return(180+n)/360}function fg(n){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n*Math.PI/360)))/360}function mg(n,t){return n/dg(t)}function yf(n){return 360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90}function _g(n,t){return n*dg(yf(t))}class ku{constructor(t,r,o=0){this.x=+t,this.y=+r,this.z=+o}static fromLngLat(t,r=0){const o=ys.convert(t);return new ku(pg(o.lng),fg(o.lat),mg(r,o.lat))}toLngLat(){return new ys(360*this.x-180,yf(this.y))}toAltitude(){return _g(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/hg*(t=yf(this.y),1/Math.cos(t*Math.PI/180));var t}}function gg(n,t,r){var o=2*Math.PI*6378137/256/Math.pow(2,r);return[n*o-2*Math.PI*6378137/2,t*o-2*Math.PI*6378137/2]}class xf{constructor(t,r,o){if(!(function(c,f,_){return!(c<0||c>25||_<0||_>=Math.pow(2,c)||f<0||f>=Math.pow(2,c))})(t,r,o))throw new Error(`x=${r}, y=${o}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `);this.z=t,this.x=r,this.y=o,this.key=ic(0,t,t,r,o)}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,r,o){const c=(_=this.y,v=this.z,b=gg(256*(f=this.x),256*(_=Math.pow(2,v)-_-1),v),S=gg(256*(f+1),256*(_+1),v),b[0]+","+b[1]+","+S[0]+","+S[1]);var f,_,v,b,S;const I=(function(L,F,q){let U,W="";for(let J=L;J>0;J--)U=1<1?"@2x":"").replace(/{quadkey}/g,I).replace(/{bbox-epsg-3857}/g,c)}isChildOf(t){const r=this.z-t.z;return r>0&&t.x===this.x>>r&&t.y===this.y>>r}getTilePoint(t){const r=Math.pow(2,this.z);return new B((t.x*r-this.x)*oe,(t.y*r-this.y)*oe)}toString(){return`${this.z}/${this.x}/${this.y}`}}class vg{constructor(t,r){this.wrap=t,this.canonical=r,this.key=ic(t,r.z,r.z,r.x,r.y)}}class Ra{constructor(t,r,o,c,f){if(this.terrainRttPosMatrix32f=null,t= z; overscaledZ = ${t}; z = ${o}`);this.overscaledZ=t,this.wrap=r,this.canonical=new xf(o,+c,+f),this.key=ic(r,t,o,c,f)}clone(){return new Ra(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const r=this.canonical.z-t;return t>this.canonical.z?new Ra(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Ra(t,this.wrap,t,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(t,r){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const o=this.canonical.z-t;return t>this.canonical.z?ic(this.wrap*+r,t,this.canonical.z,this.canonical.x,this.canonical.y):ic(this.wrap*+r,t,t,this.canonical.x>>o,this.canonical.y>>o)}isChildOf(t){if(t.wrap!==this.wrap)return!1;const r=this.canonical.z-t.canonical.z;return t.overscaledZ===0||t.overscaledZ>r&&t.canonical.y===this.canonical.y>>r}children(t){if(this.overscaledZ>=t)return[new Ra(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,o=2*this.canonical.x,c=2*this.canonical.y;return[new Ra(r,this.wrap,r,o,c),new Ra(r,this.wrap,r,o+1,c),new Ra(r,this.wrap,r,o,c+1),new Ra(r,this.wrap,r,o+1,c+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.ythis.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(t){return this.expandBy(-t)}map(t){const r=new rl;return r.extend(t(new B(this.minX,this.minY))),r.extend(t(new B(this.maxX,this.minY))),r.extend(t(new B(this.minX,this.maxY))),r.extend(t(new B(this.maxX,this.maxY))),r}static fromPoints(t){const r=new rl;for(const o of t)r.extend(o);return r}contains(t){return t.x>=this.minX&&t.x<=this.maxX&&t.y>=this.minY&&t.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(t){return!this.empty()&&!t.empty()&&t.minX>=this.minX&&t.maxX<=this.maxX&&t.minY>=this.minY&&t.maxY<=this.maxY}intersects(t){return!this.empty()&&!t.empty()&&t.minX<=this.maxX&&t.maxX>=this.minX&&t.minY<=this.maxY&&t.maxY>=this.minY}}class yg{constructor(t){this._stringToNumber={},this._numberToString=[];for(let r=0;r=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[t]}}class xg{constructor(t,r,o,c,f){this.type="Feature",this._vectorTileFeature=t,t._z=r,t._x=o,t._y=c,this.properties=t.properties,this.id=f}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(t){this._geometry=t}toJSON(){const t={geometry:this.geometry};for(const r in this)r!=="_geometry"&&r!=="_vectorTileFeature"&&(t[r]=this[r]);return t}}class bg{constructor(t,r){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Ys(oe,16,0),this.grid3D=new Ys(oe,16,0),this.featureIndexArray=new Pe,this.promoteId=r}insert(t,r,o,c,f,_){const v=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(o,c,f);const b=_?this.grid3D:this.grid;for(let S=0;S=0&&L[3]>=0&&b.insert(v,L[0],L[1],L[2],L[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new F_(new cf(this.rawTileData)).layers,this.sourceLayerCoder=new yg(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(t,r,o,c){this.loadVTLayers();const f=t.params,_=oe/t.tileSize/t.scale,v=Ro(f.filter),b=t.queryGeometry,S=t.queryPadding*_,I=rl.fromPoints(b),L=this.grid.query(I.minX-S,I.minY-S,I.maxX+S,I.maxY+S),F=rl.fromPoints(t.cameraQueryGeometry).expandBy(S),q=this.grid3D.query(F.minX,F.minY,F.maxX,F.maxY,((J,ce,Re,ye)=>(function(Ce,Ke,ct,St,Yt){for(const Ht of Ce)if(Ke<=Ht.x&&ct<=Ht.y&&St>=Ht.x&&Yt>=Ht.y)return!0;const qt=[new B(Ke,ct),new B(Ke,Yt),new B(St,Yt),new B(St,ct)];if(Ce.length>2){for(const Ht of qt)if(Yl(Ce,Ht))return!0}for(let Ht=0;Ht(ye||(ye=bo(Ce)),Ke.queryIntersectsFeature({queryGeometry:b,feature:Ce,featureState:ct,geometry:ye,zoom:this.z,transform:t.transform,pixelsToTileUnits:_,pixelPosMatrix:t.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:t.getElevation}))))}return U}loadMatchingFeature(t,r,o,c,f,_,v,b,S,I,L){const F=this.bucketLayerIDs[r];if(_&&!F.some((J=>_.has(J))))return;const q=this.sourceLayerCoder.decode(o),U=this.vtLayers[q].feature(c);if(f.needGeometry){const J=no(U,!0);if(!f.filter(new Un(this.tileID.overscaledZ),J,this.tileID.canonical))return}else if(!f.filter(new Un(this.tileID.overscaledZ),U))return;const W=this.getId(U,q);for(let J=0;J{const v=t instanceof ql?t.get(_):null;return v&&v.evaluate?v.evaluate(r,o,c):v}))}function C1(n,t){return t-n}function Tg(n,t,r,o,c){const f=[];for(let _=0;_=o&&L.x>=o||(I.x>=o?I=new B(o,I.y+(o-I.x)/(L.x-I.x)*(L.y-I.y))._round():L.x>=o&&(L=new B(o,I.y+(o-I.x)/(L.x-I.x)*(L.y-I.y))._round()),I.y>=c&&L.y>=c||(I.y>=c?I=new B(I.x+(c-I.y)/(L.y-I.y)*(L.x-I.x),c)._round():L.y>=c&&(L=new B(I.x+(c-I.y)/(L.y-I.y)*(L.x-I.x),c)._round()),b&&I.equals(b[b.length-1])||(b=[I],f.push(b)),b.push(L)))))}}return f}nr("FeatureIndex",bg,{omit:["rawTileData","sourceLayerCoder"]});class xs extends B{constructor(t,r,o,c){super(t,r),this.angle=o,c!==void 0&&(this.segment=c)}clone(){return new xs(this.x,this.y,this.angle,this.segment)}}function Cg(n,t,r,o,c){if(t.segment===void 0||r===0)return!0;let f=t,_=t.segment+1,v=0;for(;v>-r/2;){if(_--,_<0)return!1;v-=n[_].dist(f),f=n[_]}v+=n[_].dist(n[_+1]),_++;const b=[];let S=0;for(;vo;)S-=b.shift().angleDelta;if(S>c)return!1;_++,v+=I.dist(L)}return!0}function Sg(n){let t=0;for(let r=0;rS){const U=(S-b)/q,W=Za.number(L.x,F.x,U),J=Za.number(L.y,F.y,U),ce=new xs(W,J,F.angleTo(L),I);return ce._round(),!_||Cg(n,ce,v,_,t)?ce:void 0}b+=q}}function P1(n,t,r,o,c,f,_,v,b){const S=Pg(o,f,_),I=Ig(o,c),L=I*_,F=n[0].x===0||n[0].x===b||n[0].y===0||n[0].y===b;return t-L=0&&Ce=0&&Ke=0&&F+S<=I){const ct=new xs(Ce,Ke,Re,U);ct._round(),o&&!Cg(n,ct,f,o,c)||q.push(ct)}}L+=ce}return v||q.length||_||(q=Mg(n,L/2,r,o,c,f,_,!0,b)),q}function kg(n,t,r,o){const c=[],f=n.image,_=f.pixelRatio,v=f.paddedRect.w-2,b=f.paddedRect.h-2;let S={x1:n.left,y1:n.top,x2:n.right,y2:n.bottom};const I=f.stretchX||[[0,v]],L=f.stretchY||[[0,b]],F=(gt,Nr)=>gt+Nr[1]-Nr[0],q=I.reduce(F,0),U=L.reduce(F,0),W=v-q,J=b-U;let ce=0,Re=q,ye=0,Ce=U,Ke=0,ct=W,St=0,Yt=J;if(f.content&&o){const gt=f.content,Nr=gt[2]-gt[0],Gr=gt[3]-gt[1];(f.textFitWidth||f.textFitHeight)&&(S=ng(n)),ce=Bd(I,0,gt[0]),ye=Bd(L,0,gt[1]),Re=Bd(I,gt[0],gt[2]),Ce=Bd(L,gt[1],gt[3]),Ke=gt[0]-ce,St=gt[1]-ye,ct=Nr-Re,Yt=Gr-Ce}const qt=S.x1,Ht=S.y1,Cr=S.x2-qt,Gt=S.y2-Ht,Wt=(gt,Nr,Gr,kr)=>{const vr=Fd(gt.stretch-ce,Re,Cr,qt),hn=Od(gt.fixed-Ke,ct,gt.stretch,q),Qn=Fd(Nr.stretch-ye,Ce,Gt,Ht),gi=Od(Nr.fixed-St,Yt,Nr.stretch,U),qi=Fd(Gr.stretch-ce,Re,Cr,qt),Ba=Od(Gr.fixed-Ke,ct,Gr.stretch,q),ua=Fd(kr.stretch-ye,Ce,Gt,Ht),Ri=Od(kr.fixed-St,Yt,kr.stretch,U),Xn=new B(vr,Qn),Pi=new B(qi,Qn),Bi=new B(qi,ua),Fi=new B(vr,ua),ra=new B(hn/_,gi/_),Fa=new B(Ba/_,Ri/_),Ii=t*Math.PI/180;if(Ii){const Mi=Math.sin(Ii),ki=Math.cos(Ii),ui=[ki,-Mi,Mi,ki];Xn._matMult(ui),Pi._matMult(ui),Fi._matMult(ui),Bi._matMult(ui)}const ha=gt.stretch+gt.fixed,vi=Nr.stretch+Nr.fixed;return{tl:Xn,tr:Pi,bl:Fi,br:Bi,tex:{x:f.paddedRect.x+1+ha,y:f.paddedRect.y+1+vi,w:Gr.stretch+Gr.fixed-ha,h:kr.stretch+kr.fixed-vi},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:ra,pixelOffsetBR:Fa,minFontScaleX:ct/_/Cr,minFontScaleY:Yt/_/Gt,isSDF:r}};if(o&&(f.stretchX||f.stretchY)){const gt=Ag(I,W,q),Nr=Ag(L,J,U);for(let Gr=0;Gr0&&(W=Math.max(10,W),this.circleDiameter=W)}else{const F=!((L=_.image)===null||L===void 0)&&L.content&&(_.image.textFitWidth||_.image.textFitHeight)?ng(_):{x1:_.left,y1:_.top,x2:_.right,y2:_.bottom};F.y1=F.y1*v-b[0],F.y2=F.y2*v+b[2],F.x1=F.x1*v-b[3],F.x2=F.x2*v+b[1];const q=_.collisionPadding;if(q&&(F.x1-=q[0]*v,F.y1-=q[1]*v,F.x2+=q[2]*v,F.y2+=q[3]*v),I){const U=new B(F.x1,F.y1),W=new B(F.x2,F.y1),J=new B(F.x1,F.y2),ce=new B(F.x2,F.y2),Re=I*Math.PI/180;U._rotate(Re),W._rotate(Re),J._rotate(Re),ce._rotate(Re),F.x1=Math.min(U.x,W.x,J.x,ce.x),F.x2=Math.max(U.x,W.x,J.x,ce.x),F.y1=Math.min(U.y,W.y,J.y,ce.y),F.y2=Math.max(U.y,W.y,J.y,ce.y)}t.emplaceBack(r.x,r.y,F.x1,F.y1,F.x2,F.y2,o,c,f)}this.boxEndIndex=t.length}}class I1{constructor(t=[],r=(o,c)=>oc?1:0){if(this.data=t,this.length=this.data.length,this.compare=r,this.length>0)for(let o=(this.length>>1)-1;o>=0;o--)this._down(o)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(this.length===0)return;const t=this.data[0],r=this.data.pop();return--this.length>0&&(this.data[0]=r,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:r,compare:o}=this,c=r[t];for(;t>0;){const f=t-1>>1,_=r[f];if(o(c,_)>=0)break;r[t]=_,t=f}r[t]=c}_down(t){const{data:r,compare:o}=this,c=this.length>>1,f=r[t];for(;t=0)break;r[t]=r[_],t=_}r[t]=f}}function M1(n,t=1,r=!1){const o=rl.fromPoints(n[0]),c=Math.min(o.width(),o.height());let f=c/2;const _=new I1([],k1),{minX:v,minY:b,maxX:S,maxY:I}=o;if(c===0)return new B(v,b);for(let q=v;qL.d||!L.d)&&(L=q,r&&console.log("found best %d after %d probes",Math.round(1e4*q.d)/1e4,F)),q.max-L.d<=t||(f=q.h/2,_.push(new ac(q.p.x-f,q.p.y-f,f,n)),_.push(new ac(q.p.x+f,q.p.y-f,f,n)),_.push(new ac(q.p.x-f,q.p.y+f,f,n)),_.push(new ac(q.p.x+f,q.p.y+f,f,n)),F+=4)}return r&&(console.log(`num probes: ${F}`),console.log(`best distance: ${L.d}`)),L.p}function k1(n,t){return t.max-n.max}function ac(n,t,r,o){this.p=new B(n,t),this.h=r,this.d=(function(c,f){let _=!1,v=1/0;for(let b=0;bc.y!=U.y>c.y&&c.x<(U.x-q.x)*(c.y-q.y)/(U.y-q.y)+q.x&&(_=!_),v=Math.min(v,f_(c,q,U))}}return(_?1:-1)*Math.sqrt(v)})(this.p,o),this.max=this.d+this.h*Math.SQRT2}var Vi;T.aE=void 0,(Vi=T.aE||(T.aE={}))[Vi.center=1]="center",Vi[Vi.left=2]="left",Vi[Vi.right=3]="right",Vi[Vi.top=4]="top",Vi[Vi.bottom=5]="bottom",Vi[Vi["top-left"]=6]="top-left",Vi[Vi["top-right"]=7]="top-right",Vi[Vi["bottom-left"]=8]="bottom-left",Vi[Vi["bottom-right"]=9]="bottom-right";const bf=Number.POSITIVE_INFINITY;function Eg(n,t){return t[1]!==bf?(function(r,o,c){let f=0,_=0;switch(o=Math.abs(o),c=Math.abs(c),r){case"top-right":case"top-left":case"top":_=c-7;break;case"bottom-right":case"bottom-left":case"bottom":_=7-c}switch(r){case"top-right":case"bottom-right":case"right":f=-o;break;case"top-left":case"bottom-left":case"left":f=o}return[f,_]})(n,t[0],t[1]):(function(r,o){let c=0,f=0;o<0&&(o=0);const _=o/Math.SQRT2;switch(r){case"top-right":case"top-left":f=_-7;break;case"bottom-right":case"bottom-left":f=7-_;break;case"bottom":f=7-o;break;case"top":f=o-7}switch(r){case"top-right":case"bottom-right":c=-_;break;case"top-left":case"bottom-left":c=_;break;case"left":c=o;break;case"right":c=-o}return[c,f]})(n,t[0])}function zg(n,t,r){var o;const c=n.layout,f=(o=c.get("text-variable-anchor-offset"))===null||o===void 0?void 0:o.evaluate(t,{},r);if(f){const v=f.values,b=[];for(let S=0;SF*Si));I.startsWith("top")?L[1]-=7:I.startsWith("bottom")&&(L[1]+=7),b[S+1]=L}return new fi(b)}const _=c.get("text-variable-anchor");if(_){let v;v=n._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[c.get("text-radial-offset").evaluate(t,{},r)*Si,bf]:c.get("text-offset").evaluate(t,{},r).map((S=>S*Si));const b=[];for(const S of _)b.push(S,Eg(S,v));return new fi(b)}return null}function wf(n){switch(n){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function A1(n,t,r,o,c,f,_,v,b,S,I,L){let F=f.textMaxSize.evaluate(t,{});F===void 0&&(F=_);const q=n.layers[0].layout,U=q.get("icon-offset").evaluate(t,{},I),W=Dg(r.horizontal),J=_/24,ce=n.tilePixelRatio*J,Re=n.tilePixelRatio*F/24,ye=n.tilePixelRatio*v,Ce=n.tilePixelRatio*q.get("symbol-spacing"),Ke=q.get("text-padding")*n.tilePixelRatio,ct=(function(Gr,kr,vr,hn=1){const Qn=Gr.get("icon-padding").evaluate(kr,{},vr),gi=Qn&&Qn.values;return[gi[0]*hn,gi[1]*hn,gi[2]*hn,gi[3]*hn]})(q,t,I,n.tilePixelRatio),St=q.get("text-max-angle")/180*Math.PI,Yt=q.get("text-rotation-alignment")!=="viewport"&&q.get("symbol-placement")!=="point",qt=q.get("icon-rotation-alignment")==="map"&&q.get("symbol-placement")!=="point",Ht=q.get("symbol-placement"),Cr=Ce/2,Gt=q.get("icon-text-fit");let Wt;o&&Gt!=="none"&&(n.allowVerticalPlacement&&r.vertical&&(Wt=ig(o,r.vertical,Gt,q.get("icon-text-fit-padding"),U,J)),W&&(o=ig(o,W,Gt,q.get("icon-text-fit-padding"),U,J)));const gt=I?L.line.getGranularityForZoomLevel(I.z):1,Nr=(Gr,kr)=>{kr.x<0||kr.x>=oe||kr.y<0||kr.y>=oe||(function(vr,hn,Qn,gi,qi,Ba,ua,Ri,Xn,Pi,Bi,Fi,ra,Fa,Ii,ha,vi,Mi,ki,ui,qn,io,oc,ao,L1){const sc=vr.addToLineVertexArray(hn,Qn);let nl,lc,cc,uc,Og=0,Ng=0,jg=0,Vg=0,Af=-1,Ef=-1;const Uo={};let qg=ms("");if(vr.allowVerticalPlacement&&gi.vertical){const Hi=Ri.layout.get("text-rotate").evaluate(qn,{},ao)+90;cc=new Nd(Xn,hn,Pi,Bi,Fi,gi.vertical,ra,Fa,Ii,Hi),ua&&(uc=new Nd(Xn,hn,Pi,Bi,Fi,ua,vi,Mi,Ii,Hi))}if(qi){const Hi=Ri.layout.get("icon-rotate").evaluate(qn,{}),Oa=Ri.layout.get("icon-text-fit")!=="none",il=kg(qi,Hi,oc,Oa),so=ua?kg(ua,Hi,oc,Oa):void 0;lc=new Nd(Xn,hn,Pi,Bi,Fi,qi,vi,Mi,!1,Hi),Og=4*il.length;const al=vr.iconSizeData;let wo=null;al.kind==="source"?(wo=[Zo*Ri.layout.get("icon-size").evaluate(qn,{})],wo[0]>vs&&Et(`${vr.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):al.kind==="composite"&&(wo=[Zo*io.compositeIconSizes[0].evaluate(qn,{},ao),Zo*io.compositeIconSizes[1].evaluate(qn,{},ao)],(wo[0]>vs||wo[1]>vs)&&Et(`${vr.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),vr.addSymbols(vr.icon,il,wo,ui,ki,qn,T.ao.none,hn,sc.lineStartIndex,sc.lineLength,-1,ao),Af=vr.icon.placedSymbolArray.length-1,so&&(Ng=4*so.length,vr.addSymbols(vr.icon,so,wo,ui,ki,qn,T.ao.vertical,hn,sc.lineStartIndex,sc.lineLength,-1,ao),Ef=vr.icon.placedSymbolArray.length-1)}const Zg=Object.keys(gi.horizontal);for(const Hi of Zg){const Oa=gi.horizontal[Hi];if(!nl){qg=ms(Oa.text);const so=Ri.layout.get("text-rotate").evaluate(qn,{},ao);nl=new Nd(Xn,hn,Pi,Bi,Fi,Oa,ra,Fa,Ii,so)}const il=Oa.positionedLines.length===1;if(jg+=Lg(vr,hn,Oa,Ba,Ri,Ii,qn,ha,sc,gi.vertical?T.ao.horizontal:T.ao.horizontalOnly,il?Zg:[Hi],Uo,Af,io,ao),il)break}gi.vertical&&(Vg+=Lg(vr,hn,gi.vertical,Ba,Ri,Ii,qn,ha,sc,T.ao.vertical,["vertical"],Uo,Ef,io,ao));const D1=nl?nl.boxStartIndex:vr.collisionBoxArray.length,R1=nl?nl.boxEndIndex:vr.collisionBoxArray.length,B1=cc?cc.boxStartIndex:vr.collisionBoxArray.length,F1=cc?cc.boxEndIndex:vr.collisionBoxArray.length,O1=lc?lc.boxStartIndex:vr.collisionBoxArray.length,N1=lc?lc.boxEndIndex:vr.collisionBoxArray.length,j1=uc?uc.boxStartIndex:vr.collisionBoxArray.length,V1=uc?uc.boxEndIndex:vr.collisionBoxArray.length;let oo=-1;const Vd=(Hi,Oa)=>Hi&&Hi.circleDiameter?Math.max(Hi.circleDiameter,Oa):Oa;oo=Vd(nl,oo),oo=Vd(cc,oo),oo=Vd(lc,oo),oo=Vd(uc,oo);const Ug=oo>-1?1:0;Ug&&(oo*=L1/Si),vr.glyphOffsetArray.length>=nc.MAX_GLYPHS&&Et("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),qn.sortKey!==void 0&&vr.addToSortKeyRanges(vr.symbolInstances.length,qn.sortKey);const q1=zg(Ri,qn,ao),[Z1,U1]=(function(Hi,Oa){const il=Hi.length,so=Oa==null?void 0:Oa.values;if((so==null?void 0:so.length)>0)for(let al=0;al=0?Uo.right:-1,Uo.center>=0?Uo.center:-1,Uo.left>=0?Uo.left:-1,Uo.vertical||-1,Af,Ef,qg,D1,R1,B1,F1,O1,N1,j1,V1,Pi,jg,Vg,Og,Ng,Ug,0,ra,oo,Z1,U1)})(n,kr,Gr,r,o,c,Wt,n.layers[0],n.collisionBoxArray,t.index,t.sourceLayerIndex,n.index,ce,[Ke,Ke,Ke,Ke],Yt,b,ye,ct,qt,U,t,f,S,I,_)};if(Ht==="line")for(const Gr of Tg(t.geometry,0,0,oe,oe)){const kr=tl(Gr,gt),vr=P1(kr,Ce,St,r.vertical||W,o,24,Re,n.overscaling,oe);for(const hn of vr)W&&E1(n,W.text,Cr,hn)||Nr(kr,hn)}else if(Ht==="line-center"){for(const Gr of t.geometry)if(Gr.length>1){const kr=tl(Gr,gt),vr=S1(kr,St,r.vertical||W,o,24,Re);vr&&Nr(kr,vr)}}else if(t.type==="Polygon")for(const Gr of Os(t.geometry,0)){const kr=M1(Gr,16);Nr(tl(Gr[0],gt,!0),new xs(kr.x,kr.y,0))}else if(t.type==="LineString")for(const Gr of t.geometry){const kr=tl(Gr,gt);Nr(kr,new xs(kr[0].x,kr[0].y,0))}else if(t.type==="Point")for(const Gr of t.geometry)for(const kr of Gr)Nr([kr],new xs(kr.x,kr.y,0))}function Lg(n,t,r,o,c,f,_,v,b,S,I,L,F,q,U){const W=(function(Re,ye,Ce,Ke,ct,St,Yt,qt){const Ht=Ke.layout.get("text-rotate").evaluate(St,{})*Math.PI/180,Cr=[];for(const Gt of ye.positionedLines)for(const Wt of Gt.positionedGlyphs){if(!Wt.rect)continue;const gt=Wt.rect||{};let Nr=4,Gr=!0,kr=1,vr=0;const hn=(ct||qt)&&Wt.vertical,Qn=Wt.metrics.advance*Wt.scale/2;if(qt&&ye.verticalizable&&(vr=Gt.lineOffset/2-(Wt.imageName?-(Si-Wt.metrics.width*Wt.scale)/2:(Wt.scale-1)*Si)),Wt.imageName){const Mi=Yt[Wt.imageName];Gr=Mi.sdf,kr=Mi.pixelRatio,Nr=1/kr}const gi=ct?[Wt.x+Qn,Wt.y]:[0,0];let qi=ct?[0,0]:[Wt.x+Qn+Ce[0],Wt.y+Ce[1]-vr],Ba=[0,0];hn&&(Ba=qi,qi=[0,0]);const ua=Wt.metrics.isDoubleResolution?2:1,Ri=(Wt.metrics.left-Nr)*Wt.scale-Qn+qi[0],Xn=(-Wt.metrics.top-Nr)*Wt.scale+qi[1],Pi=Ri+gt.w/ua*Wt.scale/kr,Bi=Xn+gt.h/ua*Wt.scale/kr,Fi=new B(Ri,Xn),ra=new B(Pi,Xn),Fa=new B(Ri,Bi),Ii=new B(Pi,Bi);if(hn){const Mi=new B(-Qn,Qn- -17),ki=-Math.PI/2,ui=12-Qn,qn=new B(22-ui,-(Wt.imageName?ui:0)),io=new B(...Ba);Fi._rotateAround(ki,Mi)._add(qn)._add(io),ra._rotateAround(ki,Mi)._add(qn)._add(io),Fa._rotateAround(ki,Mi)._add(qn)._add(io),Ii._rotateAround(ki,Mi)._add(qn)._add(io)}if(Ht){const Mi=Math.sin(Ht),ki=Math.cos(Ht),ui=[ki,-Mi,Mi,ki];Fi._matMult(ui),ra._matMult(ui),Fa._matMult(ui),Ii._matMult(ui)}const ha=new B(0,0),vi=new B(0,0);Cr.push({tl:Fi,tr:ra,bl:Fa,br:Ii,tex:gt,writingMode:ye.writingMode,glyphOffset:gi,sectionIndex:Wt.sectionIndex,isSDF:Gr,pixelOffsetTL:ha,pixelOffsetBR:vi,minFontScaleX:0,minFontScaleY:0})}return Cr})(0,r,v,c,f,_,o,n.allowVerticalPlacement),J=n.textSizeData;let ce=null;J.kind==="source"?(ce=[Zo*c.layout.get("text-size").evaluate(_,{})],ce[0]>vs&&Et(`${n.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):J.kind==="composite"&&(ce=[Zo*q.compositeTextSizes[0].evaluate(_,{},U),Zo*q.compositeTextSizes[1].evaluate(_,{},U)],(ce[0]>vs||ce[1]>vs)&&Et(`${n.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),n.addSymbols(n.text,W,ce,v,f,_,S,t,b.lineStartIndex,b.lineLength,F,U);for(const Re of I)L[Re]=n.text.placedSymbolArray.length-1;return 4*W.length}function Dg(n){for(const t in n)return n[t];return null}function E1(n,t,r,o){const c=n.compareText;if(t in c){const f=c[t];for(let _=f.length-1;_>=0;_--)if(o.dist(f[_])>4;if(c!==1)throw new Error(`Got v${c} data when expected v1.`);const f=Rg[15&o];if(!f)throw new Error("Unrecognized array type.");const[_]=new Uint16Array(t,2,1),[v]=new Uint32Array(t,4,1);return new Tf(v,_,f,t)}constructor(t,r=64,o=Float64Array,c){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=o,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const f=Rg.indexOf(this.ArrayType),_=2*t*this.ArrayType.BYTES_PER_ELEMENT,v=t*this.IndexArrayType.BYTES_PER_ELEMENT,b=(8-v%8)%8;if(f<0)throw new Error(`Unexpected typed array class: ${o}.`);c&&c instanceof ArrayBuffer?(this.data=c,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+v+b,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+_+v+b),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+v+b,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+f]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=t)}add(t,r){const o=this._pos>>1;return this.ids[o]=o,this.coords[this._pos++]=t,this.coords[this._pos++]=r,o}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return Cf(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,r,o,c){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:f,coords:_,nodeSize:v}=this,b=[0,f.length-1,0],S=[];for(;b.length;){const I=b.pop()||0,L=b.pop()||0,F=b.pop()||0;if(L-F<=v){for(let J=F;J<=L;J++){const ce=_[2*J],Re=_[2*J+1];ce>=t&&ce<=o&&Re>=r&&Re<=c&&S.push(f[J])}continue}const q=F+L>>1,U=_[2*q],W=_[2*q+1];U>=t&&U<=o&&W>=r&&W<=c&&S.push(f[q]),(I===0?t<=U:r<=W)&&(b.push(F),b.push(q-1),b.push(1-I)),(I===0?o>=U:c>=W)&&(b.push(q+1),b.push(L),b.push(1-I))}return S}within(t,r,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:c,coords:f,nodeSize:_}=this,v=[0,c.length-1,0],b=[],S=o*o;for(;v.length;){const I=v.pop()||0,L=v.pop()||0,F=v.pop()||0;if(L-F<=_){for(let J=F;J<=L;J++)Fg(f[2*J],f[2*J+1],t,r)<=S&&b.push(c[J]);continue}const q=F+L>>1,U=f[2*q],W=f[2*q+1];Fg(U,W,t,r)<=S&&b.push(c[q]),(I===0?t-o<=U:r-o<=W)&&(v.push(F),v.push(q-1),v.push(1-I)),(I===0?t+o>=U:r+o>=W)&&(v.push(q+1),v.push(L),v.push(1-I))}return b}}function Cf(n,t,r,o,c,f){if(c-o<=r)return;const _=o+c>>1;Bg(n,t,_,o,c,f),Cf(n,t,r,o,_-1,1-f),Cf(n,t,r,_+1,c,1-f)}function Bg(n,t,r,o,c,f){for(;c>o;){if(c-o>600){const S=c-o+1,I=r-o+1,L=Math.log(S),F=.5*Math.exp(2*L/3),q=.5*Math.sqrt(L*F*(S-F)/S)*(I-S/2<0?-1:1);Bg(n,t,r,Math.max(o,Math.floor(r-I*F/S+q)),Math.min(c,Math.floor(r+(S-I)*F/S+q)),f)}const _=t[2*r+f];let v=o,b=c;for(Eu(n,t,o,r),t[2*c+f]>_&&Eu(n,t,o,c);v_;)b--}t[2*o+f]===_?Eu(n,t,o,b):(b++,Eu(n,t,b,c)),b<=r&&(o=b+1),r<=b&&(c=b-1)}}function Eu(n,t,r,o){Sf(n,r,o),Sf(t,2*r,2*o),Sf(t,2*r+1,2*o+1)}function Sf(n,t,r){const o=n[t];n[t]=n[r],n[r]=o}function Fg(n,t,r,o){const c=n-r,f=t-o;return c*c+f*f}var Pf;T.cx=void 0,(Pf=T.cx||(T.cx={})).create="create",Pf.load="load",Pf.fullLoad="fullLoad";let jd=null,zu=[];const If=1e3/60,Mf="loadTime",kf="fullLoadTime",z1={mark(n){performance.mark(n)},frame(n){const t=n;jd!=null&&zu.push(t-jd),jd=t},clearMetrics(){jd=null,zu=[],performance.clearMeasures(Mf),performance.clearMeasures(kf);for(const n in T.cx)performance.clearMarks(T.cx[n])},getPerformanceMetrics(){performance.measure(Mf,T.cx.create,T.cx.load),performance.measure(kf,T.cx.create,T.cx.fullLoad);const n=performance.getEntriesByName(Mf)[0].duration,t=performance.getEntriesByName(kf)[0].duration,r=zu.length,o=1/(zu.reduce(((f,_)=>f+_),0)/r/1e3),c=zu.filter((f=>f>If)).reduce(((f,_)=>f+(_-If)/If),0);return{loadTime:n,fullLoadTime:t,fps:o,percentDroppedFrames:c/(r+c)*100,totalFrames:r}}};T.$=oe,T.A=ze,T.B=function([n,t,r]){return t+=90,t*=Math.PI/180,r*=Math.PI/180,{x:n*Math.cos(t)*Math.sin(r),y:n*Math.sin(t)*Math.sin(r),z:n*Math.cos(r)}},T.C=Za,T.D=br,T.E=kt,T.F=Un,T.G=Ws,T.H=function(n){if(er==null){const t=n.navigator?n.navigator.userAgent:null;er=!!n.safari||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match("Safari")&&!t.match("Chrome")))}return er},T.I=uf,T.J=class{constructor(n,t){this.target=n,this.mapId=t,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new w1((()=>this.process())),this.subscription=Vr(this.target,"message",(r=>this.receive(r)),!1),this.globalScope=Ut(self)?n:window}registerMessageHandler(n,t){this.messageHandlers[n]=t}sendAsync(n,t){return new Promise(((r,o)=>{const c=Math.round(1e18*Math.random()).toString(36).substring(0,10),f=t?Vr(t.signal,"abort",(()=>{f==null||f.unsubscribe(),delete this.resolveRejects[c];const b={id:c,type:"",origin:location.origin,targetMapId:n.targetMapId,sourceMapId:this.mapId};this.target.postMessage(b)}),T1):null;this.resolveRejects[c]={resolve:b=>{f==null||f.unsubscribe(),r(b)},reject:b=>{f==null||f.unsubscribe(),o(b)}};const _=[],v=Object.assign(Object.assign({},n),{id:c,sourceMapId:this.mapId,origin:location.origin,data:cs(n.data,_)});this.target.postMessage(v,{transfer:_})}))}receive(n){const t=n.data,r=t.id;if(!(t.origin!=="file://"&&location.origin!=="file://"&&t.origin!=="resource://android"&&location.origin!=="resource://android"&&t.origin!==location.origin||t.targetMapId&&this.mapId!==t.targetMapId)){if(t.type===""){delete this.tasks[r];const o=this.abortControllers[r];return delete this.abortControllers[r],void(o&&o.abort())}if(Ut(self)||t.mustQueue)return this.tasks[r]=t,this.taskQueue.push(r),void this.invoker.trigger();this.processTask(r,t)}}process(){if(this.taskQueue.length===0)return;const n=this.taskQueue.shift(),t=this.tasks[n];delete this.tasks[n],this.taskQueue.length>0&&this.invoker.trigger(),t&&this.processTask(n,t)}processTask(n,t){return s(this,void 0,void 0,(function*(){if(t.type===""){const c=this.resolveRejects[n];return delete this.resolveRejects[n],c?void(t.error?c.reject(Oo(t.error)):c.resolve(Oo(t.data))):void 0}if(!this.messageHandlers[t.type])return void this.completeTask(n,new Error(`Could not find a registered handler for ${t.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const r=Oo(t.data),o=new AbortController;this.abortControllers[n]=o;try{const c=yield this.messageHandlers[t.type](t.sourceMapId,r,o);this.completeTask(n,null,c)}catch(c){this.completeTask(n,c)}}))}completeTask(n,t,r){const o=[];delete this.abortControllers[n];const c={id:n,type:"",sourceMapId:this.mapId,origin:location.origin,error:t?cs(t):null,data:cs(r,o)};this.target.postMessage(c,{transfer:o})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},T.K=Y,T.L=function(){var n=new ze(16);return ze!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n},T.M=function(n,t,r){var o,c,f,_,v,b,S,I,L,F,q,U,W=r[0],J=r[1],ce=r[2];return t===n?(n[12]=t[0]*W+t[4]*J+t[8]*ce+t[12],n[13]=t[1]*W+t[5]*J+t[9]*ce+t[13],n[14]=t[2]*W+t[6]*J+t[10]*ce+t[14],n[15]=t[3]*W+t[7]*J+t[11]*ce+t[15]):(c=t[1],f=t[2],_=t[3],v=t[4],b=t[5],S=t[6],I=t[7],L=t[8],F=t[9],q=t[10],U=t[11],n[0]=o=t[0],n[1]=c,n[2]=f,n[3]=_,n[4]=v,n[5]=b,n[6]=S,n[7]=I,n[8]=L,n[9]=F,n[10]=q,n[11]=U,n[12]=o*W+v*J+L*ce+t[12],n[13]=c*W+b*J+F*ce+t[13],n[14]=f*W+S*J+q*ce+t[14],n[15]=_*W+I*J+U*ce+t[15]),n},T.N=function(n,t,r){var o=r[0],c=r[1],f=r[2];return n[0]=t[0]*o,n[1]=t[1]*o,n[2]=t[2]*o,n[3]=t[3]*o,n[4]=t[4]*c,n[5]=t[5]*c,n[6]=t[6]*c,n[7]=t[7]*c,n[8]=t[8]*f,n[9]=t[9]*f,n[10]=t[10]*f,n[11]=t[11]*f,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},T.O=function(n,t,r){var o=t[0],c=t[1],f=t[2],_=t[3],v=t[4],b=t[5],S=t[6],I=t[7],L=t[8],F=t[9],q=t[10],U=t[11],W=t[12],J=t[13],ce=t[14],Re=t[15],ye=r[0],Ce=r[1],Ke=r[2],ct=r[3];return n[0]=ye*o+Ce*v+Ke*L+ct*W,n[1]=ye*c+Ce*b+Ke*F+ct*J,n[2]=ye*f+Ce*S+Ke*q+ct*ce,n[3]=ye*_+Ce*I+Ke*U+ct*Re,n[4]=(ye=r[4])*o+(Ce=r[5])*v+(Ke=r[6])*L+(ct=r[7])*W,n[5]=ye*c+Ce*b+Ke*F+ct*J,n[6]=ye*f+Ce*S+Ke*q+ct*ce,n[7]=ye*_+Ce*I+Ke*U+ct*Re,n[8]=(ye=r[8])*o+(Ce=r[9])*v+(Ke=r[10])*L+(ct=r[11])*W,n[9]=ye*c+Ce*b+Ke*F+ct*J,n[10]=ye*f+Ce*S+Ke*q+ct*ce,n[11]=ye*_+Ce*I+Ke*U+ct*Re,n[12]=(ye=r[12])*o+(Ce=r[13])*v+(Ke=r[14])*L+(ct=r[15])*W,n[13]=ye*c+Ce*b+Ke*F+ct*J,n[14]=ye*f+Ce*S+Ke*q+ct*ce,n[15]=ye*_+Ce*I+Ke*U+ct*Re,n},T.P=B,T.Q=function(n,t){const r={};for(let o=0;o[S.id,S])));_.add=Array.from(b.values())}if(t.update){const v=new Map((r=_.update)===null||r===void 0?void 0:r.map((b=>[b.id,b])));for(const b of t.update){const S=(o=v.get(b.id))!==null&&o!==void 0?o:{id:b.id};b.newGeometry&&(S.newGeometry=b.newGeometry),b.addOrUpdateProperties&&(S.addOrUpdateProperties=((c=S.addOrUpdateProperties)!==null&&c!==void 0?c:[]).concat(b.addOrUpdateProperties)),b.removeProperties&&(S.removeProperties=((f=S.removeProperties)!==null&&f!==void 0?f:[]).concat(b.removeProperties)),b.removeAllProperties&&(S.removeAllProperties=!0),v.set(b.id,S)}_.update=Array.from(v.values())}return _},T.a1=ku,T.a2=rl,T.a3=25,T.a4=xf,T.a5=n=>{const t=window.document.createElement("video");return t.muted=!0,new Promise((r=>{t.onloadstart=()=>{r(t)};for(const o of n){const c=window.document.createElement("source");ke(o)||(t.crossOrigin="Anonymous"),c.src=o,t.appendChild(c)}}))},T.a6=ht,T.a7=function(){return vt++},T.a8=D,T.a9=nc,T.aA=function(n){let t=1/0,r=1/0,o=-1/0,c=-1/0;for(const f of n)t=Math.min(t,f.x),r=Math.min(r,f.y),o=Math.max(o,f.x),c=Math.max(c,f.y);return[t,r,o,c]},T.aB=Si,T.aC=Ae,T.aD=function(n,t,r,o,c=!1){if(!r[0]&&!r[1])return[0,0];const f=c?o==="map"?-n.bearingInRadians:0:o==="viewport"?n.bearingInRadians:0;if(f){const _=Math.sin(f),v=Math.cos(f);r=[r[0]*v-r[1]*_,r[0]*_+r[1]*v]}return[c?r[0]:Ae(t,r[0],n.zoom),c?r[1]:Ae(t,r[1],n.zoom)]},T.aF=pf,T.aG=wf,T.aH=df,T.aI=Tf,T.aJ=ti,T.aK=Ad,T.aL=_e,T.aM=Kr,T.aN=Rn,T.aO=ot,T.aP=hr,T.aQ=_g,T.aR=Le,T.aS=Qe,T.aT=function(n){var t=new ze(3);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t},T.aU=function(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n},T.aV=function(n,t){var r=t[0],o=t[1],c=t[2],f=r*r+o*o+c*c;return f>0&&(f=1/Math.sqrt(f)),n[0]=t[0]*f,n[1]=t[1]*f,n[2]=t[2]*f,n},T.aW=et,T.aX=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]},T.aY=function(n,t,r){return n[0]=t[0]*r[0],n[1]=t[1]*r[1],n[2]=t[2]*r[2],n[3]=t[3]*r[3],n},T.aZ=qe,T.a_=function(n,t,r){const o=t[0]*r[0]+t[1]*r[1]+t[2]*r[2];return o===0?null:(-(n[0]*r[0]+n[1]*r[1]+n[2]*r[2])-r[3])/o},T.aa=Ro,T.ab=no,T.ac=xg,T.ad=function(n){const t={};if(n.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((r,o,c,f)=>{const _=c||f;return t[o]=!_||_.toLowerCase(),""})),t["max-age"]){const r=parseInt(t["max-age"],10);isNaN(r)?delete t["max-age"]:t["max-age"]=r}return t},T.ae=mr,T.af=function(n){return Math.pow(2,n)},T.ag=$e,T.ah=Dt,T.ai=85.051129,T.aj=mg,T.ak=function(n){return Math.log(n)/Math.LN2},T.al=function(n){var t=n[0],r=n[1];return t*t+r*r},T.am=function(n,t){const r=[];for(const o in n)o in t||r.push(o);return r},T.an=function(n,t){let r=0,o=0;if(n.kind==="constant")o=n.layoutSize;else if(n.kind!=="source"){const{interpolationType:c,minZoom:f,maxZoom:_}=n,v=c?Dt(Di.interpolationFactor(c,t,f,_),0,1):0;n.kind==="camera"?o=Za.number(n.minSize,n.maxSize,v):r=v}return{uSizeT:r,uSize:o}},T.ap=function(n,{uSize:t,uSizeT:r},{lowerSize:o,upperSize:c}){return n.kind==="source"?o/Zo:n.kind==="composite"?Za.number(o/Zo,c/Zo,r):t},T.aq=function(n,t){var r=t[0],o=t[1],c=t[2],f=t[3],_=t[4],v=t[5],b=t[6],S=t[7],I=t[8],L=t[9],F=t[10],q=t[11],U=t[12],W=t[13],J=t[14],ce=t[15],Re=r*v-o*_,ye=r*b-c*_,Ce=r*S-f*_,Ke=o*b-c*v,ct=o*S-f*v,St=c*S-f*b,Yt=I*W-L*U,qt=I*J-F*U,Ht=I*ce-q*U,Cr=L*J-F*W,Gt=L*ce-q*W,Wt=F*ce-q*J,gt=Re*Wt-ye*Gt+Ce*Cr+Ke*Ht-ct*qt+St*Yt;return gt?(n[0]=(v*Wt-b*Gt+S*Cr)*(gt=1/gt),n[1]=(c*Gt-o*Wt-f*Cr)*gt,n[2]=(W*St-J*ct+ce*Ke)*gt,n[3]=(F*ct-L*St-q*Ke)*gt,n[4]=(b*Ht-_*Wt-S*qt)*gt,n[5]=(r*Wt-c*Ht+f*qt)*gt,n[6]=(J*Ce-U*St-ce*ye)*gt,n[7]=(I*St-F*Ce+q*ye)*gt,n[8]=(_*Gt-v*Ht+S*Yt)*gt,n[9]=(o*Ht-r*Gt-f*Yt)*gt,n[10]=(U*ct-W*Ce+ce*Re)*gt,n[11]=(L*Ce-I*ct-q*Re)*gt,n[12]=(v*qt-_*Cr-b*Yt)*gt,n[13]=(r*Cr-o*qt+c*Yt)*gt,n[14]=(W*ye-U*Ke-J*Re)*gt,n[15]=(I*Ke-L*ye+F*Re)*gt,n):null},T.ar=re,T.as=function(n){return Math.hypot(n[0],n[1])},T.at=function(n){return n[0]=0,n[1]=0,n},T.au=function(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n},T.av=ff,T.aw=Me,T.ax=function(n,t,r,o){const c=t.y-n.y,f=t.x-n.x,_=o.y-r.y,v=o.x-r.x,b=_*f-v*c;if(b===0)return null;const S=(v*(n.y-r.y)-_*(n.x-r.x))/b;return new B(n.x+S*f,n.y+S*c)},T.ay=Tg,T.az=d_,T.b=tr,T.b$=class extends h{},T.b0=function(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n},T.b1=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]},T.b2=vg,T.b3=ic,T.b4=function(n,t,r,o,c){var f,_=1/Math.tan(t/2);return n[0]=_/r,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=_,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,c!=null&&c!==1/0?(n[10]=(c+o)*(f=1/(o-c)),n[14]=2*c*o*f):(n[10]=-1,n[14]=-2*o),n},T.b5=function(n){var t=new ze(16);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},T.b6=function(n,t,r){var o=Math.sin(r),c=Math.cos(r),f=t[0],_=t[1],v=t[2],b=t[3],S=t[4],I=t[5],L=t[6],F=t[7];return t!==n&&(n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=f*c+S*o,n[1]=_*c+I*o,n[2]=v*c+L*o,n[3]=b*c+F*o,n[4]=S*c-f*o,n[5]=I*c-_*o,n[6]=L*c-v*o,n[7]=F*c-b*o,n},T.b7=function(n,t,r){var o=Math.sin(r),c=Math.cos(r),f=t[4],_=t[5],v=t[6],b=t[7],S=t[8],I=t[9],L=t[10],F=t[11];return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[4]=f*c+S*o,n[5]=_*c+I*o,n[6]=v*c+L*o,n[7]=b*c+F*o,n[8]=S*c-f*o,n[9]=I*c-_*o,n[10]=L*c-v*o,n[11]=F*c-b*o,n},T.b8=function(){const n=new Float32Array(16);return $e(n),n},T.b9=function(){const n=new Float64Array(16);return $e(n),n},T.bA=function(n,t){const r=je(n,360),o=je(t,360),c=o-r,f=o>r?c-360:c+360;return Math.abs(c)0?_:-_},T.bD=function(n,t){const r=je(n,2*Math.PI),o=je(t,2*Math.PI);return Math.min(Math.abs(r-o),Math.abs(r-o+2*Math.PI),Math.abs(r-o-2*Math.PI))},T.bE=function(){const n={},t=xe.$version;for(const r in xe.$root){const o=xe.$root[r];if(o.required){let c=null;c=r==="version"?t:o.type==="array"?[]:{},c!=null&&(n[r]=c)}}return n},T.bF=Nl,T.bG=fe,T.bH=function n(t,r){if(Array.isArray(t)){if(!Array.isArray(r)||t.length!==r.length)return!1;for(let o=0;o{"source"in _&&o[_.source]?r.push({command:"removeLayer",args:[_.id]}):f.push(_)})),r=r.concat(c),(function(_,v,b){v=v||[];const S=(_=_||[]).map(zt),I=v.map(zt),L=_.reduce(dr,{}),F=v.reduce(dr,{}),q=S.slice(),U=Object.create(null);let W,J,ce,Re,ye;for(let Ce=0,Ke=0;CeDe?(c=Math.acos(f),_=Math.sin(c),v=Math.sin((1-o)*c)/_,b=Math.sin(o*c)/_):(v=1-o,b=o),n[0]=v*S+b*q,n[1]=v*I+b*U,n[2]=v*L+b*W,n[3]=v*F+b*J,n},T.bd=function(n){const t=new Float64Array(9);var r,o,c,f,_,v,b,S,I,L,F,q,U,W,J,ce,Re,ye;L=(c=(o=n)[0])*(b=c+c),F=(f=o[1])*b,U=(_=o[2])*b,W=_*(S=f+f),ce=(v=o[3])*b,Re=v*S,ye=v*(I=_+_),(r=t)[0]=1-(q=f*S)-(J=_*I),r[3]=F-ye,r[6]=U+Re,r[1]=F+ye,r[4]=1-L-J,r[7]=W-ce,r[2]=U-Re,r[5]=W+ce,r[8]=1-L-q;const Ce=hr(-Math.asin(Dt(t[2],-1,1)));let Ke,ct;return Math.hypot(t[5],t[8])<.001?(Ke=0,ct=-hr(Math.atan2(t[3],t[4]))):(Ke=hr(t[5]===0&&t[8]===0?0:Math.atan2(t[5],t[8])),ct=hr(t[1]===0&&t[0]===0?0:Math.atan2(t[1],t[0]))),{roll:Ke,pitch:Ce+90,bearing:ct}},T.be=function(n,t){return n.roll==t.roll&&n.pitch==t.pitch&&n.bearing==t.bearing},T.bf=Mr,T.bg=yo,T.bh=Ql,T.bi=Tu,T.bj=Jl,T.bk=ft,T.bl=it,T.bm=jn,T.bn=function(n,t,r,o,c){return ft(o,c,Dt((n-t)/(r-t),0,1))},T.bo=je,T.bp=function(){return new Float64Array(3)},T.bq=function(n,t,r,o){return n[0]=t[0]+r[0]*o,n[1]=t[1]+r[1]*o,n[2]=t[2]+r[2]*o,n},T.br=Q,T.bs=function(n,t,r){var o=r[0],c=r[1],f=r[2],_=t[0],v=t[1],b=t[2],S=c*b-f*v,I=f*_-o*b,L=o*v-c*_,F=c*L-f*I,q=f*S-o*L,U=o*I-c*S,W=2*r[3];return I*=W,L*=W,q*=2,U*=2,n[0]=_+(S*=W)+(F*=2),n[1]=v+I+q,n[2]=b+L+U,n},T.bt=function(n,t,r){const o=(c=[n[0],n[1],n[2],t[0],t[1],t[2],r[0],r[1],r[2]])[0]*((I=c[8])*(_=c[4])-(v=c[5])*(S=c[7]))+c[1]*(-I*(f=c[3])+v*(b=c[6]))+c[2]*(S*f-_*b);var c,f,_,v,b,S,I;if(o===0)return null;const L=et([],[t[0],t[1],t[2]],[r[0],r[1],r[2]]),F=et([],[r[0],r[1],r[2]],[n[0],n[1],n[2]]),q=et([],[n[0],n[1],n[2]],[t[0],t[1],t[2]]),U=Le([],L,-n[3]);return Qe(U,U,Le([],F,-t[3])),Qe(U,U,Le([],q,-r[3])),Le(U,U,1/o),U},T.bu=vf,T.bv=function(){return new Float64Array(4)},T.bw=function(n,t,r,o){var c=[],f=[];return c[0]=t[0]-r[0],c[1]=t[1]-r[1],c[2]=t[2]-r[2],f[0]=c[0]*Math.cos(o)-c[1]*Math.sin(o),f[1]=c[0]*Math.sin(o)+c[1]*Math.cos(o),f[2]=c[2],n[0]=f[0]+r[0],n[1]=f[1]+r[1],n[2]=f[2]+r[2],n},T.bx=function(n,t,r,o){var c=[],f=[];return c[0]=t[0]-r[0],c[1]=t[1]-r[1],c[2]=t[2]-r[2],f[0]=c[0],f[1]=c[1]*Math.cos(o)-c[2]*Math.sin(o),f[2]=c[1]*Math.sin(o)+c[2]*Math.cos(o),n[0]=f[0]+r[0],n[1]=f[1]+r[1],n[2]=f[2]+r[2],n},T.by=function(n,t,r,o){var c=[],f=[];return c[0]=t[0]-r[0],c[1]=t[1]-r[1],c[2]=t[2]-r[2],f[0]=c[2]*Math.sin(o)+c[0]*Math.cos(o),f[1]=c[1],f[2]=c[2]*Math.cos(o)-c[0]*Math.sin(o),n[0]=f[0]+r[0],n[1]=f[1]+r[1],n[2]=f[2]+r[2],n},T.bz=function(n,t,r){var o=Math.sin(r),c=Math.cos(r),f=t[0],_=t[1],v=t[2],b=t[3],S=t[8],I=t[9],L=t[10],F=t[11];return t!==n&&(n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=f*c-S*o,n[1]=_*c-I*o,n[2]=v*c-L*o,n[3]=b*c-F*o,n[8]=f*o+S*c,n[9]=_*o+I*c,n[10]=v*o+L*c,n[11]=b*o+F*c,n},T.c=le,T.c0=Gy,T.c1=class extends i{},T.c2=Kp,T.c3=function(n){return n<=1?1:Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))},T.c4=w_,T.c5=function(n,t,r){var o=t[0],c=t[1],f=t[2],_=r[3]*o+r[7]*c+r[11]*f+r[15];return n[0]=(r[0]*o+r[4]*c+r[8]*f+r[12])/(_=_||1),n[1]=(r[1]*o+r[5]*c+r[9]*f+r[13])/_,n[2]=(r[2]*o+r[6]*c+r[10]*f+r[14])/_,n},T.c6=class extends du{},T.c7=class extends P{},T.c8=function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]},T.c9=function(n,t){var r=n[0],o=n[1],c=n[2],f=n[3],_=n[4],v=n[5],b=n[6],S=n[7],I=n[8],L=n[9],F=n[10],q=n[11],U=n[12],W=n[13],J=n[14],ce=n[15],Re=t[0],ye=t[1],Ce=t[2],Ke=t[3],ct=t[4],St=t[5],Yt=t[6],qt=t[7],Ht=t[8],Cr=t[9],Gt=t[10],Wt=t[11],gt=t[12],Nr=t[13],Gr=t[14],kr=t[15];return Math.abs(r-Re)<=De*Math.max(1,Math.abs(r),Math.abs(Re))&&Math.abs(o-ye)<=De*Math.max(1,Math.abs(o),Math.abs(ye))&&Math.abs(c-Ce)<=De*Math.max(1,Math.abs(c),Math.abs(Ce))&&Math.abs(f-Ke)<=De*Math.max(1,Math.abs(f),Math.abs(Ke))&&Math.abs(_-ct)<=De*Math.max(1,Math.abs(_),Math.abs(ct))&&Math.abs(v-St)<=De*Math.max(1,Math.abs(v),Math.abs(St))&&Math.abs(b-Yt)<=De*Math.max(1,Math.abs(b),Math.abs(Yt))&&Math.abs(S-qt)<=De*Math.max(1,Math.abs(S),Math.abs(qt))&&Math.abs(I-Ht)<=De*Math.max(1,Math.abs(I),Math.abs(Ht))&&Math.abs(L-Cr)<=De*Math.max(1,Math.abs(L),Math.abs(Cr))&&Math.abs(F-Gt)<=De*Math.max(1,Math.abs(F),Math.abs(Gt))&&Math.abs(q-Wt)<=De*Math.max(1,Math.abs(q),Math.abs(Wt))&&Math.abs(U-gt)<=De*Math.max(1,Math.abs(U),Math.abs(gt))&&Math.abs(W-Nr)<=De*Math.max(1,Math.abs(W),Math.abs(Nr))&&Math.abs(J-Gr)<=De*Math.max(1,Math.abs(J),Math.abs(Gr))&&Math.abs(ce-kr)<=De*Math.max(1,Math.abs(ce),Math.abs(kr))},T.cA=function(n,t){j.REGISTERED_PROTOCOLS[n]=t},T.cB=function(n){delete j.REGISTERED_PROTOCOLS[n]},T.cC=function(n,t){const r={};for(let c=0;cWt*Si))}let qt=_?"center":r.get("text-justify").evaluate(S,{},n.canonical);const Ht=r.get("symbol-placement")==="point"?r.get("text-max-width").evaluate(S,{},n.canonical)*Si:1/0,Cr=()=>{n.bucket.allowVerticalPlacement&&jl(Ce)&&(U.vertical=zd(W,n.glyphMap,n.glyphPositions,n.imagePositions,I,Ht,f,St,"left",ct,ce,T.ao.vertical,!0,F,L))};if(!_&&Yt){const Gt=new Set;if(qt==="auto")for(let gt=0;gt0||((c=v.addOrUpdateProperties)===null||c===void 0?void 0:c.length)>0);if((v.newGeometry||v.removeAllProperties||S)&&(b=Object.assign({},b),n.set(v.id,b),S&&(b.properties=Object.assign({},b.properties))),v.newGeometry&&(b.geometry=v.newGeometry),v.removeAllProperties)b.properties={};else if(((f=v.removeProperties)===null||f===void 0?void 0:f.length)>0)for(const I of v.removeProperties)Object.prototype.hasOwnProperty.call(b.properties,I)&&delete b.properties[I];if(((_=v.addOrUpdateProperties)===null||_===void 0?void 0:_.length)>0)for(const{key:I,value:L}of v.addOrUpdateProperties)b.properties[I]=L}},T.cX=Ea,T.ca=function(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},T.cb=n=>n.type==="symbol",T.cc=n=>n.type==="circle",T.cd=n=>n.type==="heatmap",T.ce=n=>n.type==="line",T.cf=n=>n.type==="fill",T.cg=n=>n.type==="fill-extrusion",T.ch=n=>n.type==="hillshade",T.ci=n=>n.type==="color-relief",T.cj=n=>n.type==="raster",T.ck=n=>n.type==="background",T.cl=n=>n.type==="custom",T.cm=ut,T.cn=function(n,t,r){const o=he(t.x-r.x,t.y-r.y),c=he(n.x-r.x,n.y-r.y);var f,_;return hr(Math.atan2(o[0]*c[1]-o[1]*c[0],(f=o)[0]*(_=c)[0]+f[1]*_[1]))},T.co=Pt,T.cp=function(n,t){return Ir[t]&&(n instanceof MouseEvent||n instanceof WheelEvent)},T.cq=function(n,t){return _r[t]&&"touches"in n},T.cr=function(n){return _r[n]||Ir[n]},T.cs=function(n,t,r){var o=t[0],c=t[1];return n[0]=r[0]*o+r[4]*c+r[12],n[1]=r[1]*o+r[5]*c+r[13],n},T.ct=function(n,t){const{x:r,y:o}=ku.fromLngLat(t);return!(n<0||n>25||o<0||o>=1||r<0||r>=1)},T.cu=function(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=t[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},T.cv=class extends ds{},T.cw=z1,T.cy=function(n){return n.message===qr},T.cz=ae,T.d=ke,T.e=dt,T.f=n=>s(void 0,void 0,void 0,(function*(){if(n.byteLength===0)return createImageBitmap(new ImageData(1,1));const t=new Blob([new Uint8Array(n)],{type:"image/png"});try{return createImageBitmap(t)}catch(r){throw new Error(`Could not load image because of ${r.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}})),T.g=Z,T.h=n=>new Promise(((t,r)=>{const o=new Image;o.onload=()=>{t(o),URL.revokeObjectURL(o.src),o.onload=null,window.requestAnimationFrame((()=>{o.src=Nt}))},o.onerror=()=>r(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 c=new Blob([new Uint8Array(n)],{type:"image/png"});o.src=n.byteLength?URL.createObjectURL(c):Nt})),T.i=Ut,T.j=(n,t)=>Se(dt(n,{type:"json"}),t),T.k=Ye,T.l=lt,T.m=Se,T.n=(n,t)=>Se(dt(n,{type:"arrayBuffer"}),t),T.o=function(n){return new cf(n).readFields(n1,[])},T.p=Y_,T.q=vu,T.r=Ui,T.s=Vr,T.t=bd,T.u=un,T.v=xe,T.w=Et,T.x=jp,T.y=Xs,T.z=ls})),M("worker",["./shared"],(function(T){class s{constructor(j){this.keyCache={},j&&this.replace(j)}replace(j){this._layerConfigs={},this._layers={},this.update(j,[])}update(j,Z){for(const ae of j){this._layerConfigs[ae.id]=ae;const fe=this._layers[ae.id]=T.bJ(ae);fe._featureFilter=T.aa(fe.filter),this.keyCache[ae.id]&&delete this.keyCache[ae.id]}for(const ae of Z)delete this.keyCache[ae],delete this._layerConfigs[ae],delete this._layers[ae];this.familiesBySource={};const Y=T.cC(Object.values(this._layerConfigs),this.keyCache);for(const ae of Y){const fe=ae.map((Ye=>this._layers[Ye.id])),Se=fe[0];if(Se.visibility==="none")continue;const ke=Se.source||"";let we=this.familiesBySource[ke];we||(we=this.familiesBySource[ke]={});const Oe=Se.sourceLayer||"_geojsonTileLayer";let lt=we[Oe];lt||(lt=we[Oe]=[]),lt.push(fe)}}}class B{constructor(j){const Z={},Y=[];for(const ke in j){const we=j[ke],Oe=Z[ke]={};for(const lt in we){const Ye=we[+lt];if(!Ye||Ye.bitmap.width===0||Ye.bitmap.height===0)continue;const kt={x:0,y:0,w:Ye.bitmap.width+2,h:Ye.bitmap.height+2};Y.push(kt),Oe[lt]={rect:kt,metrics:Ye.metrics}}}const{w:ae,h:fe}=T.p(Y),Se=new T.q({width:ae||1,height:fe||1});for(const ke in j){const we=j[ke];for(const Oe in we){const lt=we[+Oe];if(!lt||lt.bitmap.width===0||lt.bitmap.height===0)continue;const Ye=Z[ke][Oe].rect;T.q.copy(lt.bitmap,Se,{x:0,y:0},{x:Ye.x+1,y:Ye.y+1},lt.bitmap)}}this.image=Se,this.positions=Z}}T.cD("GlyphAtlas",B);class O{constructor(j){this.tileID=new T.Z(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=[],this.globalState=j.globalState}parse(j,Z,Y,ae,fe){return T._(this,void 0,void 0,(function*(){this.status="parsing",this.data=j,this.collisionBoxArray=new T.a8;const Se=new T.cE(Object.keys(j.layers).sort()),ke=new T.cF(this.tileID,this.promoteId);ke.bucketLayerIDs=[];const we={},Oe={featureIndex:ke,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:Y,subdivisionGranularity:fe},lt=Z.familiesBySource[this.source];for(const Vt in lt){const zt=j.layers[Vt];if(!zt)continue;zt.version===1&&T.w(`Vector tile source "${this.source}" layer "${Vt}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const dr=Se.encode(Vt),ht=[];for(let Wr=0;Wr=Yr.maxzoom||Yr.visibility!=="none"&&(X(Wr,this.zoom,Y),(we[Yr.id]=Yr.createBucket({index:ke.bucketLayerIDs.length,layers:Wr,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:dr,sourceID:this.source,globalState:this.globalState})).populate(ht,Oe,this.tileID.canonical),ke.bucketLayerIDs.push(Wr.map((Zr=>Zr.id))))}}const Ye=T.bN(Oe.glyphDependencies,(Vt=>Object.keys(Vt).map(Number)));this.inFlightDependencies.forEach((Vt=>Vt==null?void 0:Vt.abort())),this.inFlightDependencies=[];let kt=Promise.resolve({});if(Object.keys(Ye).length){const Vt=new AbortController;this.inFlightDependencies.push(Vt),kt=ae.sendAsync({type:"GG",data:{stacks:Ye,source:this.source,tileID:this.tileID,type:"glyphs"}},Vt)}const xe=Object.keys(Oe.iconDependencies);let Ot=Promise.resolve({});if(xe.length){const Vt=new AbortController;this.inFlightDependencies.push(Vt),Ot=ae.sendAsync({type:"GI",data:{icons:xe,source:this.source,tileID:this.tileID,type:"icons"}},Vt)}const cr=Object.keys(Oe.patternDependencies);let Jt=Promise.resolve({});if(cr.length){const Vt=new AbortController;this.inFlightDependencies.push(Vt),Jt=ae.sendAsync({type:"GI",data:{icons:cr,source:this.source,tileID:this.tileID,type:"patterns"}},Vt)}const[Pr,Xr,dn]=yield Promise.all([kt,Ot,Jt]),xn=new B(Pr),mn=new T.cG(Xr,dn);for(const Vt in we){const zt=we[Vt];zt instanceof T.a9?(X(zt.layers,this.zoom,Y),T.cH({bucket:zt,glyphMap:Pr,glyphPositions:xn.positions,imageMap:Xr,imagePositions:mn.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical,subdivisionGranularity:Oe.subdivisionGranularity})):zt.hasPattern&&(zt instanceof T.cI||zt instanceof T.cJ||zt instanceof T.cK)&&(X(zt.layers,this.zoom,Y),zt.addFeatures(Oe,this.tileID.canonical,mn.patternPositions))}return this.status="done",{buckets:Object.values(we).filter((Vt=>!Vt.isEmpty())),featureIndex:ke,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:xn.image,imageAtlas:mn,glyphMap:this.returnDependencies?Pr:null,iconMap:this.returnDependencies?Xr:null,glyphPositions:this.returnDependencies?xn.positions:null}}))}}function X(le,j,Z){const Y=new T.F(j);for(const ae of le)ae.recalculate(Y,Z)}class K{constructor(j,Z,Y){this.actor=j,this.layerIndex=Z,this.availableImages=Y,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(j,Z){return T._(this,void 0,void 0,(function*(){const Y=yield T.n(j.request,Z);try{return{vectorTile:new T.cL(new T.cM(Y.data)),rawData:Y.data,cacheControl:Y.cacheControl,expires:Y.expires}}catch(ae){const fe=new Uint8Array(Y.data);let Se=`Unable to parse the tile at ${j.request.url}, `;throw Se+=fe[0]===31&&fe[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${ae.message}`,new Error(Se)}}))}loadTile(j){return T._(this,void 0,void 0,(function*(){const Z=j.uid,Y=!!(j&&j.request&&j.request.collectResourceTiming)&&new T.cN(j.request),ae=new O(j);this.loading[Z]=ae;const fe=new AbortController;ae.abort=fe;try{const Se=yield this.loadVectorTile(j,fe);if(delete this.loading[Z],!Se)return null;const ke=Se.rawData,we={};Se.expires&&(we.expires=Se.expires),Se.cacheControl&&(we.cacheControl=Se.cacheControl);const Oe={};if(Y){const Ye=Y.finish();Ye&&(Oe.resourceTiming=JSON.parse(JSON.stringify(Ye)))}ae.vectorTile=Se.vectorTile;const lt=ae.parse(Se.vectorTile,this.layerIndex,this.availableImages,this.actor,j.subdivisionGranularity);this.loaded[Z]=ae,this.fetching[Z]={rawTileData:ke,cacheControl:we,resourceTiming:Oe};try{const Ye=yield lt;return T.e({rawTileData:ke.slice(0)},Ye,we,Oe)}finally{delete this.fetching[Z]}}catch(Se){throw delete this.loading[Z],ae.status="done",this.loaded[Z]=ae,Se}}))}reloadTile(j){return T._(this,void 0,void 0,(function*(){const Z=j.uid;if(!this.loaded||!this.loaded[Z])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");const Y=this.loaded[Z];if(Y.showCollisionBoxes=j.showCollisionBoxes,Y.globalState=j.globalState,Y.status==="parsing"){const ae=yield Y.parse(Y.vectorTile,this.layerIndex,this.availableImages,this.actor,j.subdivisionGranularity);let fe;if(this.fetching[Z]){const{rawTileData:Se,cacheControl:ke,resourceTiming:we}=this.fetching[Z];delete this.fetching[Z],fe=T.e({rawTileData:Se.slice(0)},ae,ke,we)}else fe=ae;return fe}if(Y.status==="done"&&Y.vectorTile)return Y.parse(Y.vectorTile,this.layerIndex,this.availableImages,this.actor,j.subdivisionGranularity)}))}abortTile(j){return T._(this,void 0,void 0,(function*(){const Z=this.loading,Y=j.uid;Z&&Z[Y]&&Z[Y].abort&&(Z[Y].abort.abort(),delete Z[Y])}))}removeTile(j){return T._(this,void 0,void 0,(function*(){this.loaded&&this.loaded[j.uid]&&delete this.loaded[j.uid]}))}}class ne{constructor(){this.loaded={}}loadTile(j){return T._(this,void 0,void 0,(function*(){const{uid:Z,encoding:Y,rawImageData:ae,redFactor:fe,greenFactor:Se,blueFactor:ke,baseShift:we}=j,Oe=ae.width+2,lt=ae.height+2,Ye=T.b(ae)?new T.R({width:Oe,height:lt},yield T.cO(ae,-1,-1,Oe,lt)):ae,kt=new T.cP(Z,Ye,Y,fe,Se,ke,we);return this.loaded=this.loaded||{},this.loaded[Z]=kt,kt}))}removeTile(j){const Z=this.loaded,Y=j.uid;Z&&Z[Y]&&delete Z[Y]}}var H,pe,ge=(function(){if(pe)return H;function le(Z,Y){if(Z.length!==0){j(Z[0],Y);for(var ae=1;ae=Math.abs(Oe)?ae-lt+Oe:Oe-lt+ae,ae=lt}ae+fe>=0!=!!Y&&Z.reverse()}return pe=1,H=function Z(Y,ae){var fe,Se=Y&&Y.type;if(Se==="FeatureCollection")for(fe=0;fe>31}function Ze(le,j){const Z=le.loadGeometry(),Y=le.type;let ae=0,fe=0;for(const Se of Z){let ke=1;Y===1&&(ke=Se.length),j.writeVarint(Je(1,ke));const we=Y===3?Se.length-1:Se.length;for(let Oe=0;Oele},et=Math.fround||(nt=new Float32Array(1),le=>(nt[0]=+le,nt[0]));var nt;class Ue{constructor(j){this.options=Object.assign(Object.create(Le),j),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(j){const{log:Z,minZoom:Y,maxZoom:ae}=this.options;Z&&console.time("total time");const fe=`prepare ${j.length} points`;Z&&console.time(fe),this.points=j;const Se=[];for(let we=0;we=Y;we--){const Oe=+Date.now();ke=this.trees[we]=this._createTree(this._cluster(ke,we)),Z&&console.log("z%d: %d clusters in %dms",we,ke.numItems,+Date.now()-Oe)}return Z&&console.timeEnd("total time"),this}getClusters(j,Z){let Y=((j[0]+180)%360+360)%360-180;const ae=Math.max(-90,Math.min(90,j[1]));let fe=j[2]===180?180:((j[2]+180)%360+360)%360-180;const Se=Math.max(-90,Math.min(90,j[3]));if(j[2]-j[0]>=360)Y=-180,fe=180;else if(Y>fe){const Ye=this.getClusters([Y,ae,180,Se],Z),kt=this.getClusters([-180,ae,fe,Se],Z);return Ye.concat(kt)}const ke=this.trees[this._limitZoom(Z)],we=ke.range(Q(Y),re(Se),Q(fe),re(ae)),Oe=ke.data,lt=[];for(const Ye of we){const kt=this.stride*Ye;lt.push(Oe[kt+5]>1?Me(Oe,kt,this.clusterProps):this.points[Oe[kt+3]])}return lt}getChildren(j){const Z=this._getOriginId(j),Y=this._getOriginZoom(j),ae="No cluster with the specified id.",fe=this.trees[Y];if(!fe)throw new Error(ae);const Se=fe.data;if(Z*this.stride>=Se.length)throw new Error(ae);const ke=this.options.radius/(this.options.extent*Math.pow(2,Y-1)),we=fe.within(Se[Z*this.stride],Se[Z*this.stride+1],ke),Oe=[];for(const lt of we){const Ye=lt*this.stride;Se[Ye+4]===j&&Oe.push(Se[Ye+5]>1?Me(Se,Ye,this.clusterProps):this.points[Se[Ye+3]])}if(Oe.length===0)throw new Error(ae);return Oe}getLeaves(j,Z,Y){const ae=[];return this._appendLeaves(ae,j,Z=Z||10,Y=Y||0,0),ae}getTile(j,Z,Y){const ae=this.trees[this._limitZoom(j)],fe=Math.pow(2,j),{extent:Se,radius:ke}=this.options,we=ke/Se,Oe=(Y-we)/fe,lt=(Y+1+we)/fe,Ye={features:[]};return this._addTileFeatures(ae.range((Z-we)/fe,Oe,(Z+1+we)/fe,lt),ae.data,Z,Y,fe,Ye),Z===0&&this._addTileFeatures(ae.range(1-we/fe,Oe,1,lt),ae.data,fe,Y,fe,Ye),Z===fe-1&&this._addTileFeatures(ae.range(0,Oe,we/fe,lt),ae.data,-1,Y,fe,Ye),Ye.features.length?Ye:null}getClusterExpansionZoom(j){let Z=this._getOriginZoom(j)-1;for(;Z<=this.options.maxZoom;){const Y=this.getChildren(j);if(Z++,Y.length!==1)break;j=Y[0].properties.cluster_id}return Z}_appendLeaves(j,Z,Y,ae,fe){const Se=this.getChildren(Z);for(const ke of Se){const we=ke.properties;if(we&&we.cluster?fe+we.point_count<=ae?fe+=we.point_count:fe=this._appendLeaves(j,we.cluster_id,Y,ae,fe):fe1;let lt,Ye,kt;if(Oe)lt=yt(Z,we,this.clusterProps),Ye=Z[we],kt=Z[we+1];else{const cr=this.points[Z[we+3]];lt=cr.properties;const[Jt,Pr]=cr.geometry.coordinates;Ye=Q(Jt),kt=re(Pr)}const xe={type:1,geometry:[[Math.round(this.options.extent*(Ye*fe-Y)),Math.round(this.options.extent*(kt*fe-ae))]],tags:lt};let Ot;Ot=Oe||this.options.generateId?Z[we+3]:this.points[Z[we+3]].id,Ot!==void 0&&(xe.id=Ot),Se.features.push(xe)}}_limitZoom(j){return Math.max(this.options.minZoom,Math.min(Math.floor(+j),this.options.maxZoom+1))}_cluster(j,Z){const{radius:Y,extent:ae,reduce:fe,minPoints:Se}=this.options,ke=Y/(ae*Math.pow(2,Z)),we=j.data,Oe=[],lt=this.stride;for(let Ye=0;YeZ&&(Jt+=we[Xr+5])}if(Jt>cr&&Jt>=Se){let Pr,Xr=kt*cr,dn=xe*cr,xn=-1;const mn=(Ye/lt<<5)+(Z+1)+this.points.length;for(const Vt of Ot){const zt=Vt*lt;if(we[zt+2]<=Z)continue;we[zt+2]=Z;const dr=we[zt+5];Xr+=we[zt]*dr,dn+=we[zt+1]*dr,we[zt+4]=mn,fe&&(Pr||(Pr=this._map(we,Ye,!0),xn=this.clusterProps.length,this.clusterProps.push(Pr)),fe(Pr,this._map(we,zt)))}we[Ye+4]=mn,Oe.push(Xr/Jt,dn/Jt,1/0,mn,-1,Jt),fe&&Oe.push(xn)}else{for(let Pr=0;Pr1)for(const Pr of Ot){const Xr=Pr*lt;if(!(we[Xr+2]<=Z)){we[Xr+2]=Z;for(let dn=0;dn>5}_getOriginZoom(j){return(j-this.points.length)%32}_map(j,Z,Y){if(j[Z+5]>1){const Se=this.clusterProps[j[Z+6]];return Y?Object.assign({},Se):Se}const ae=this.points[j[Z+3]].properties,fe=this.options.map(ae);return Y&&fe===ae?Object.assign({},fe):fe}}function Me(le,j,Z){return{type:"Feature",id:le[j+3],properties:yt(le,j,Z),geometry:{type:"Point",coordinates:[(Y=le[j],360*(Y-.5)),he(le[j+1])]}};var Y}function yt(le,j,Z){const Y=le[j+5],ae=Y>=1e4?`${Math.round(Y/1e3)}k`:Y>=1e3?Math.round(Y/100)/10+"k":Y,fe=le[j+6],Se=fe===-1?{}:Object.assign({},Z[fe]);return Object.assign(Se,{cluster:!0,cluster_id:le[j+3],point_count:Y,point_count_abbreviated:ae})}function Q(le){return le/360+.5}function re(le){const j=Math.sin(le*Math.PI/180),Z=.5-.25*Math.log((1+j)/(1-j))/Math.PI;return Z<0?0:Z>1?1:Z}function he(le){const j=(180-360*le)*Math.PI/180;return 360*Math.atan(Math.exp(j))/Math.PI-90}function oe(le,j,Z,Y){let ae=Y;const fe=j+(Z-j>>1);let Se,ke=Z-j;const we=le[j],Oe=le[j+1],lt=le[Z],Ye=le[Z+1];for(let kt=j+3;ktae)Se=kt,ae=xe;else if(xe===ae){const Ot=Math.abs(kt-fe);OtY&&(Se-j>3&&oe(le,j,Se,Y),le[Se+2]=ae,Z-Se>3&&oe(le,Se,Z,Y))}function Ae(le,j,Z,Y,ae,fe){let Se=ae-Z,ke=fe-Y;if(Se!==0||ke!==0){const we=((le-Z)*Se+(j-Y)*ke)/(Se*Se+ke*ke);we>1?(Z=ae,Y=fe):we>0&&(Z+=Se*we,Y+=ke*we)}return Se=le-Z,ke=j-Y,Se*Se+ke*ke}function je(le,j,Z,Y){const ae={id:le??null,type:j,geometry:Z,tags:Y,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if(j==="Point"||j==="MultiPoint"||j==="LineString")ft(ae,Z);else if(j==="Polygon")ft(ae,Z[0]);else if(j==="MultiLineString")for(const fe of Z)ft(ae,fe);else if(j==="MultiPolygon")for(const fe of Z)ft(ae,fe[0]);return ae}function ft(le,j){for(let Z=0;Z0&&(Se+=Y?(ae*lt-Oe*fe)/2:Math.sqrt(Math.pow(Oe-ae,2)+Math.pow(lt-fe,2))),ae=Oe,fe=lt}const ke=j.length-3;j[2]=1,oe(j,0,ke,Z),j[ke+2]=1,j.size=Math.abs(Se),j.start=0,j.end=j.size}function Dt(le,j,Z,Y){for(let ae=0;ae1?1:Z}function vt(le,j,Z,Y,ae,fe,Se,ke){if(Y/=j,fe>=(Z/=j)&&Se=Y)return null;const we=[];for(const Oe of le){const lt=Oe.geometry;let Ye=Oe.type;const kt=ae===0?Oe.minX:Oe.minY,xe=ae===0?Oe.maxX:Oe.maxY;if(kt>=Z&&xe=Y)continue;let Ot=[];if(Ye==="Point"||Ye==="MultiPoint")xt(lt,Ot,Z,Y,ae);else if(Ye==="LineString")It(lt,Ot,Z,Y,ae,!1,ke.lineMetrics);else if(Ye==="MultiLineString")_t(lt,Ot,Z,Y,ae,!1);else if(Ye==="Polygon")_t(lt,Ot,Z,Y,ae,!0);else if(Ye==="MultiPolygon")for(const cr of lt){const Jt=[];_t(cr,Jt,Z,Y,ae,!0),Jt.length&&Ot.push(Jt)}if(Ot.length){if(ke.lineMetrics&&Ye==="LineString"){for(const cr of Ot)we.push(je(Oe.id,Ye,cr,Oe.tags));continue}Ye!=="LineString"&&Ye!=="MultiLineString"||(Ot.length===1?(Ye="LineString",Ot=Ot[0]):Ye="MultiLineString"),Ye!=="Point"&&Ye!=="MultiPoint"||(Ye=Ot.length===3?"Point":"MultiPoint"),we.push(je(Oe.id,Ye,Ot,Oe.tags))}}return we.length?we:null}function xt(le,j,Z,Y,ae){for(let fe=0;fe=Z&&Se<=Y&&Et(j,le[fe],le[fe+1],le[fe+2])}}function It(le,j,Z,Y,ae,fe,Se){let ke=wt(le);const we=ae===0?Rt:Ut;let Oe,lt,Ye=le.start;for(let Jt=0;JtZ&&(lt=we(ke,Pr,Xr,xn,mn,Z),Se&&(ke.start=Ye+Oe*lt)):Vt>Y?zt=Z&&(lt=we(ke,Pr,Xr,xn,mn,Z),dr=!0),zt>Y&&Vt<=Y&&(lt=we(ke,Pr,Xr,xn,mn,Y),dr=!0),!fe&&dr&&(Se&&(ke.end=Ye+Oe*lt),j.push(ke),ke=wt(le)),Se&&(Ye+=Oe)}let kt=le.length-3;const xe=le[kt],Ot=le[kt+1],cr=ae===0?xe:Ot;cr>=Z&&cr<=Y&&Et(ke,xe,Ot,le[kt+2]),kt=ke.length-3,fe&&kt>=3&&(ke[kt]!==ke[0]||ke[kt+1]!==ke[1])&&Et(ke,ke[0],ke[1],ke[2]),ke.length&&j.push(ke)}function wt(le){const j=[];return j.size=le.size,j.start=le.start,j.end=le.end,j}function _t(le,j,Z,Y,ae,fe){for(const Se of le)It(Se,j,Z,Y,ae,fe,!1)}function Et(le,j,Z,Y){le.push(j,Z,Y)}function Rt(le,j,Z,Y,ae,fe){const Se=(fe-j)/(Y-j);return Et(le,fe,Z+(ae-Z)*Se,1),Se}function Ut(le,j,Z,Y,ae,fe){const Se=(fe-Z)/(ae-Z);return Et(le,j+(Y-j)*Se,fe,1),Se}function er(le,j){const Z=[];for(let Y=0;Y0&&j.size<(ae?Se:Y))return void(Z.numPoints+=j.length/3);const ke=[];for(let we=0;weSe)&&(Z.numSimplified++,ke.push(j[we],j[we+1])),Z.numPoints++;ae&&(function(we,Oe){let lt=0;for(let Ye=0,kt=we.length,xe=kt-2;Ye0===Oe)for(let Ye=0,kt=we.length;Ye24)throw new Error("maxZoom should be in the 0-24 range");if(Z.promoteId&&Z.generateId)throw new Error("promoteId and generateId cannot be used together.");let ae=(function(fe,Se){const ke=[];if(fe.type==="FeatureCollection")for(let we=0;we1&&console.time("creation"),xe=this.tiles[kt]=sr(j,Z,Y,ae,Oe),this.tileCoords.push({z:Z,x:Y,y:ae}),lt)){lt>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",Z,Y,ae,xe.numFeatures,xe.numPoints,xe.numSimplified),console.timeEnd("creation"));const dr=`z${Z}`;this.stats[dr]=(this.stats[dr]||0)+1,this.total++}if(xe.source=j,fe==null){if(Z===Oe.indexMaxZoom||xe.numPoints<=Oe.indexMaxPoints)continue}else{if(Z===Oe.maxZoom||Z===fe)continue;if(fe!=null){const dr=fe-Z;if(Y!==Se>>dr||ae!==ke>>dr)continue}}if(xe.source=null,j.length===0)continue;lt>1&&console.time("clipping");const Ot=.5*Oe.buffer/Oe.extent,cr=.5-Ot,Jt=.5+Ot,Pr=1+Ot;let Xr=null,dn=null,xn=null,mn=null,Vt=vt(j,Ye,Y-Ot,Y+Jt,0,xe.minX,xe.maxX,Oe),zt=vt(j,Ye,Y+cr,Y+Pr,0,xe.minX,xe.maxX,Oe);j=null,Vt&&(Xr=vt(Vt,Ye,ae-Ot,ae+Jt,1,xe.minY,xe.maxY,Oe),dn=vt(Vt,Ye,ae+cr,ae+Pr,1,xe.minY,xe.maxY,Oe),Vt=null),zt&&(xn=vt(zt,Ye,ae-Ot,ae+Jt,1,xe.minY,xe.maxY,Oe),mn=vt(zt,Ye,ae+cr,ae+Pr,1,xe.minY,xe.maxY,Oe),zt=null),lt>1&&console.timeEnd("clipping"),we.push(Xr||[],Z+1,2*Y,2*ae),we.push(dn||[],Z+1,2*Y,2*ae+1),we.push(xn||[],Z+1,2*Y+1,2*ae),we.push(mn||[],Z+1,2*Y+1,2*ae+1)}}getTile(j,Z,Y){j=+j,Z=+Z,Y=+Y;const ae=this.options,{extent:fe,debug:Se}=ae;if(j<0||j>24)return null;const ke=1<1&&console.log("drilling down to z%d-%d-%d",j,Z,Y);let Oe,lt=j,Ye=Z,kt=Y;for(;!Oe&<>0;)lt--,Ye>>=1,kt>>=1,Oe=this.tiles[_r(lt,Ye,kt)];return Oe&&Oe.source?(Se>1&&(console.log("found parent tile z%d-%d-%d",lt,Ye,kt),console.time("drilling down")),this.splitTile(Oe.source,lt,Ye,kt,j,Z,Y),Se>1&&console.timeEnd("drilling down"),this.tiles[we]?Nt(this.tiles[we],fe):null):null}}function _r(le,j,Z){return 32*((1<{Ye.properties=xe;const Ot={};for(const cr of kt)Ot[cr]=we[cr].evaluate(lt,Ye);return Ot},Se.reduce=(xe,Ot)=>{Ye.properties=Ot;for(const cr of kt)lt.accumulated=xe[cr],xe[cr]=Oe[cr].evaluate(lt,Ye)},Se})(j)).load(ae.features):(function(Se,ke){return new hr(Se,ke)})(ae,j.geojsonVtOptions),this.loaded={};const fe={data:ae};if(Y){const Se=Y.finish();Se&&(fe.resourceTiming={},fe.resourceTiming[j.source]=JSON.parse(JSON.stringify(Se)))}return fe}catch(ae){if(delete this._pendingRequest,T.cy(ae))return{abandoned:!0};throw ae}}))}getData(){return T._(this,void 0,void 0,(function*(){return this._pendingData}))}reloadTile(j){const Z=this.loaded;return Z&&Z[j.uid]?super.reloadTile(j):this.loadTile(j)}loadAndProcessGeoJSON(j,Z){return T._(this,void 0,void 0,(function*(){let Y=yield this.loadGeoJSON(j,Z);if(delete this._pendingRequest,typeof Y!="object")throw new Error(`Input data given to '${j.source}' is not a valid GeoJSON object.`);if(Ie(Y,!0),j.filter){const ae=T.cT(j.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(ae.result==="error")throw new Error(ae.value.map((Se=>`${Se.key}: ${Se.message}`)).join(", "));Y={type:"FeatureCollection",features:Y.features.filter((Se=>ae.value.evaluate({zoom:0},Se)))}}return Y}))}loadGeoJSON(j,Z){return T._(this,void 0,void 0,(function*(){const{promoteId:Y}=j;if(j.request){const ae=yield T.j(j.request,Z);return this._dataUpdateable=T.cV(ae.data,Y)?T.cU(ae.data,Y):void 0,ae.data}if(typeof j.data=="string")try{const ae=JSON.parse(j.data);return this._dataUpdateable=T.cV(ae,Y)?T.cU(ae,Y):void 0,ae}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 T.cW(this._dataUpdateable,j.dataDiff,Y),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}}))}removeSource(j){return T._(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 qr{constructor(j){this.self=j,this.actor=new T.J(j),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(Z,Y)=>{if(this.externalWorkerSourceTypes[Z])throw new Error(`Worker source with name "${Z}" already registered.`);this.externalWorkerSourceTypes[Z]=Y},this.self.addProtocol=T.cA,this.self.removeProtocol=T.cB,this.self.registerRTLTextPlugin=Z=>{T.cX.setMethods(Z)},this.actor.registerMessageHandler("LDT",((Z,Y)=>this._getDEMWorkerSource(Z,Y.source).loadTile(Y))),this.actor.registerMessageHandler("RDT",((Z,Y)=>T._(this,void 0,void 0,(function*(){this._getDEMWorkerSource(Z,Y.source).removeTile(Y)})))),this.actor.registerMessageHandler("GCEZ",((Z,Y)=>T._(this,void 0,void 0,(function*(){return this._getWorkerSource(Z,Y.type,Y.source).getClusterExpansionZoom(Y)})))),this.actor.registerMessageHandler("GCC",((Z,Y)=>T._(this,void 0,void 0,(function*(){return this._getWorkerSource(Z,Y.type,Y.source).getClusterChildren(Y)})))),this.actor.registerMessageHandler("GCL",((Z,Y)=>T._(this,void 0,void 0,(function*(){return this._getWorkerSource(Z,Y.type,Y.source).getClusterLeaves(Y)})))),this.actor.registerMessageHandler("LD",((Z,Y)=>this._getWorkerSource(Z,Y.type,Y.source).loadData(Y))),this.actor.registerMessageHandler("GD",((Z,Y)=>this._getWorkerSource(Z,Y.type,Y.source).getData())),this.actor.registerMessageHandler("LT",((Z,Y)=>this._getWorkerSource(Z,Y.type,Y.source).loadTile(Y))),this.actor.registerMessageHandler("RT",((Z,Y)=>this._getWorkerSource(Z,Y.type,Y.source).reloadTile(Y))),this.actor.registerMessageHandler("AT",((Z,Y)=>this._getWorkerSource(Z,Y.type,Y.source).abortTile(Y))),this.actor.registerMessageHandler("RMT",((Z,Y)=>this._getWorkerSource(Z,Y.type,Y.source).removeTile(Y))),this.actor.registerMessageHandler("RS",((Z,Y)=>T._(this,void 0,void 0,(function*(){if(!this.workerSources[Z]||!this.workerSources[Z][Y.type]||!this.workerSources[Z][Y.type][Y.source])return;const ae=this.workerSources[Z][Y.type][Y.source];delete this.workerSources[Z][Y.type][Y.source],ae.removeSource!==void 0&&ae.removeSource(Y)})))),this.actor.registerMessageHandler("RM",(Z=>T._(this,void 0,void 0,(function*(){delete this.layerIndexes[Z],delete this.availableImages[Z],delete this.workerSources[Z],delete this.demWorkerSources[Z]})))),this.actor.registerMessageHandler("SR",((Z,Y)=>T._(this,void 0,void 0,(function*(){this.referrer=Y})))),this.actor.registerMessageHandler("SRPS",((Z,Y)=>this._syncRTLPluginState(Z,Y))),this.actor.registerMessageHandler("IS",((Z,Y)=>T._(this,void 0,void 0,(function*(){this.self.importScripts(Y)})))),this.actor.registerMessageHandler("SI",((Z,Y)=>this._setImages(Z,Y))),this.actor.registerMessageHandler("UL",((Z,Y)=>T._(this,void 0,void 0,(function*(){this._getLayerIndex(Z).update(Y.layers,Y.removedIds)})))),this.actor.registerMessageHandler("SL",((Z,Y)=>T._(this,void 0,void 0,(function*(){this._getLayerIndex(Z).replace(Y)}))))}_setImages(j,Z){return T._(this,void 0,void 0,(function*(){this.availableImages[j]=Z;for(const Y in this.workerSources[j]){const ae=this.workerSources[j][Y];for(const fe in ae)ae[fe].availableImages=Z}}))}_syncRTLPluginState(j,Z){return T._(this,void 0,void 0,(function*(){return yield T.cX.syncState(Z,this.self.importScripts)}))}_getAvailableImages(j){let Z=this.availableImages[j];return Z||(Z=[]),Z}_getLayerIndex(j){let Z=this.layerIndexes[j];return Z||(Z=this.layerIndexes[j]=new s),Z}_getWorkerSource(j,Z,Y){if(this.workerSources[j]||(this.workerSources[j]={}),this.workerSources[j][Z]||(this.workerSources[j][Z]={}),!this.workerSources[j][Z][Y]){const ae={sendAsync:(fe,Se)=>(fe.targetMapId=j,this.actor.sendAsync(fe,Se))};switch(Z){case"vector":this.workerSources[j][Z][Y]=new K(ae,this._getLayerIndex(j),this._getAvailableImages(j));break;case"geojson":this.workerSources[j][Z][Y]=new Ir(ae,this._getLayerIndex(j),this._getAvailableImages(j));break;default:this.workerSources[j][Z][Y]=new this.externalWorkerSourceTypes[Z](ae,this._getLayerIndex(j),this._getAvailableImages(j))}}return this.workerSources[j][Z][Y]}_getDEMWorkerSource(j,Z){return this.demWorkerSources[j]||(this.demWorkerSources[j]={}),this.demWorkerSources[j][Z]||(this.demWorkerSources[j][Z]=new ne),this.demWorkerSources[j][Z]}}return T.i(self)&&(self.worker=new qr(self)),qr})),M("index",["exports","./shared"],(function(T,s){var B="5.6.2";function O(){var h=new s.A(4);return s.A!=Float32Array&&(h[1]=0,h[2]=0),h[0]=1,h[3]=1,h}let X,K;const ne={now:typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frame(h,e,i){const l=requestAnimationFrame((d=>{u(),e(d)})),{unsubscribe:u}=s.s(h.signal,"abort",(()=>{u(),cancelAnimationFrame(l),i(s.c())}),!1)},frameAsync(h){return new Promise(((e,i)=>{this.frame(h,e,i)}))},getImageData(h,e=0){return this.getImageCanvasContext(h).getImageData(-e,-e,h.width+2*e,h.height+2*e)},getImageCanvasContext(h){const e=window.document.createElement("canvas"),i=e.getContext("2d",{willReadFrequently:!0});if(!i)throw new Error("failed to create canvas 2d context");return e.width=h.width,e.height=h.height,i.drawImage(h,0,0,h.width,h.height),i},resolveURL:h=>(X||(X=document.createElement("a")),X.href=h,X.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(K==null&&(K=matchMedia("(prefers-reduced-motion: reduce)")),K.matches)}};class H{static testProp(e){if(!H.docStyle)return e[0];for(let i=0;i{window.removeEventListener("click",H.suppressClickInternal,!0)}),0)}static getScale(e){const i=e.getBoundingClientRect();return{x:i.width/e.offsetWidth||1,y:i.height/e.offsetHeight||1,boundingClientRect:i}}static getPoint(e,i,l){const u=i.boundingClientRect;return new s.P((l.clientX-u.left)/i.x-e.clientLeft,(l.clientY-u.top)/i.y-e.clientTop)}static mousePos(e,i){const l=H.getScale(e);return H.getPoint(e,l,i)}static touchPos(e,i){const l=[],u=H.getScale(e);for(let d=0;d{ge&&ze(ge),ge=null,De=!0},Ie.onerror=()=>{Ee=!0,ge=null},Ie.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),(function(h){let e,i,l,u;h.resetRequestQueue=()=>{e=[],i=0,l=0,u={}},h.addThrottleControl=C=>{const P=l++;return u[P]=C,P},h.removeThrottleControl=C=>{delete u[C],g()},h.getImage=(C,P,E=!0)=>new Promise(((R,D)=>{pe.supported&&(C.headers||(C.headers={}),C.headers.accept="image/webp,*/*"),s.e(C,{type:"image"}),e.push({abortController:P,requestParameters:C,supportImageRefresh:E,state:"queued",onError:N=>{D(N)},onSuccess:N=>{R(N)}}),g()}));const d=C=>s._(this,void 0,void 0,(function*(){C.state="running";const{requestParameters:P,supportImageRefresh:E,onError:R,onSuccess:D,abortController:N}=C,G=E===!1&&!s.i(self)&&!s.g(P.url)&&(!P.headers||Object.keys(P.headers).reduce(((ie,ue)=>ie&&ue==="accept"),!0));i++;const te=G?w(P,N):s.m(P,N);try{const ie=yield te;delete C.abortController,C.state="completed",ie.data instanceof HTMLImageElement||s.b(ie.data)?D(ie):ie.data&&D({data:yield(ee=ie.data,typeof createImageBitmap=="function"?s.f(ee):s.h(ee)),cacheControl:ie.cacheControl,expires:ie.expires})}catch(ie){delete C.abortController,R(ie)}finally{i--,g()}var ee})),g=()=>{const C=(()=>{for(const P of Object.keys(u))if(u[P]())return!0;return!1})()?s.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:s.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let P=i;P0;P++){const E=e.shift();E.abortController.signal.aborted?P--:d(E)}},w=(C,P)=>new Promise(((E,R)=>{const D=new Image,N=C.url,G=C.credentials;G&&G==="include"?D.crossOrigin="use-credentials":(G&&G==="same-origin"||!s.d(N))&&(D.crossOrigin="anonymous"),P.signal.addEventListener("abort",(()=>{D.src="",R(s.c())})),D.fetchPriority="high",D.onload=()=>{D.onerror=D.onload=null,E({data:D})},D.onerror=()=>{D.onerror=D.onload=null,P.signal.aborted||R(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."))},D.src=N}))})(Fe||(Fe={})),Fe.resetRequestQueue();class $e{constructor(e){this._transformRequestFn=e??null}transformRequest(e,i){return this._transformRequestFn&&this._transformRequestFn(e,i)||{url:e}}setTransformRequest(e){this._transformRequestFn=e}}function Je(h){const e=[];if(typeof h=="string")e.push({id:"default",url:h});else if(h&&h.length>0){const i=[];for(const{id:l,url:u}of h){const d=`${l}${u}`;i.indexOf(d)===-1&&(i.push(d),e.push({id:l,url:u}))}}return e}function qe(h,e,i){try{const l=new URL(h);return l.pathname+=`${e}${i}`,l.toString()}catch{throw new Error(`Invalid sprite URL "${h}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}function Ze(h){const{userImage:e}=h;return!!(e&&e.render&&e.render())&&(h.data.replace(new Uint8Array(e.data.buffer)),!0)}class Qe extends s.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(const{ids:i,promiseResolve:l}of this.requestors)l(this._getImagesForIds(i));this.requestors=[]}}getImage(e){const i=this.images[e];if(i&&!i.data&&i.spriteData){const l=i.spriteData;i.data=new s.R({width:l.width,height:l.height},l.context.getImageData(l.x,l.y,l.width,l.height).data),i.spriteData=null}return i}addImage(e,i){if(this.images[e])throw new Error(`Image id ${e} already exist, use updateImage instead`);this._validate(e,i)&&(this.images[e]=i)}_validate(e,i){let l=!0;const u=i.data||i.spriteData;return this._validateStretch(i.stretchX,u&&u.width)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchX" value`))),l=!1),this._validateStretch(i.stretchY,u&&u.height)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchY" value`))),l=!1),this._validateContent(i.content,i)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "content" value`))),l=!1),l}_validateStretch(e,i){if(!e)return!0;let l=0;for(const u of e){if(u[0]{let u=!0;if(!this.isLoaded())for(const d of e)this.images[d]||(u=!1);this.isLoaded()||u?i(this._getImagesForIds(e)):this.requestors.push({ids:e,promiseResolve:i})}))}_getImagesForIds(e){const i={};for(const l of e){let u=this.getImage(l);u||(this.fire(new s.l("styleimagemissing",{id:l})),u=this.getImage(l)),u?i[l]={data:u.data.clone(),pixelRatio:u.pixelRatio,sdf:u.sdf,version:u.version,stretchX:u.stretchX,stretchY:u.stretchY,content:u.content,textFitWidth:u.textFitWidth,textFitHeight:u.textFitHeight,hasRenderCallback:!!(u.userImage&&u.userImage.render)}:s.w(`Image "${l}" 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 i}getPixelSize(){const{width:e,height:i}=this.atlasImage;return{width:e,height:i}}getPattern(e){const i=this.patterns[e],l=this.getImage(e);if(!l)return null;if(i&&i.position.version===l.version)return i.position;if(i)i.position.version=l.version;else{const u={w:l.data.width+2,h:l.data.height+2,x:0,y:0},d=new s.I(u,l);this.patterns[e]={bin:u,position:d}}return this._updatePatternAtlas(),this.patterns[e].position}bind(e){const i=e.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new s.T(e,this.atlasImage,i.RGBA),this.atlasTexture.bind(i.LINEAR,i.CLAMP_TO_EDGE)}_updatePatternAtlas(){const e=[];for(const d in this.patterns)e.push(this.patterns[d].bin);const{w:i,h:l}=s.p(e),u=this.atlasImage;u.resize({width:i||1,height:l||1});for(const d in this.patterns){const{bin:g}=this.patterns[d],w=g.x+1,C=g.y+1,P=this.getImage(d).data,E=P.width,R=P.height;s.R.copy(P,u,{x:0,y:0},{x:w,y:C},{width:E,height:R}),s.R.copy(P,u,{x:0,y:R-1},{x:w,y:C-1},{width:E,height:1}),s.R.copy(P,u,{x:0,y:0},{x:w,y:C+R},{width:E,height:1}),s.R.copy(P,u,{x:E-1,y:0},{x:w-1,y:C},{width:1,height:R}),s.R.copy(P,u,{x:0,y:0},{x:w+E,y:C},{width:1,height:R})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(e){for(const i of e){if(this.callbackDispatchedThisFrame[i])continue;this.callbackDispatchedThisFrame[i]=!0;const l=this.getImage(i);l||s.w(`Image with ID: "${i}" was not found`),Ze(l)&&this.updateImage(i,l)}}}const Le=1e20;function et(h,e,i,l,u,d,g,w,C){for(let P=e;P-1);C++,d[C]=w,g[C]=P,g[C+1]=Le}for(let w=0,C=0;w65535)throw new Error("glyphs > 65535 not supported");if(l.ranges[d])return{stack:e,id:i,glyph:u};if(!this.url)throw new Error("glyphsUrl is not set");if(!l.requests[d]){const w=Ue.loadGlyphRange(e,d,this.url,this.requestManager);l.requests[d]=w}const g=yield l.requests[d];for(const w in g)this._doesCharSupportLocalGlyph(+w)||(l.glyphs[+w]=g[+w]);return l.ranges[d]=!0,{stack:e,id:i,glyph:g[i]||null}}))}_doesCharSupportLocalGlyph(e){return!!this.localIdeographFontFamily&&(new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}","u").test(String.fromCodePoint(e))||s.u["CJK Unified Ideographs"](e)||s.u["Hangul Syllables"](e)||s.u.Hiragana(e)||s.u.Katakana(e)||s.u["CJK Symbols and Punctuation"](e)||s.u["Halfwidth and Fullwidth Forms"](e))}_tinySDF(e,i,l){const u=this.localIdeographFontFamily;if(!u||!this._doesCharSupportLocalGlyph(l))return;let d=e.tinySDF;if(!d){let w="400";/bold/i.test(i)?w="900":/medium/i.test(i)?w="500":/light/i.test(i)&&(w="200"),d=e.tinySDF=new Ue.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:u,fontWeight:w})}const g=d.draw(String.fromCharCode(l));return{id:l,bitmap:new s.q({width:g.width||60,height:g.height||60},g.data),metrics:{width:g.glyphWidth/2||24,height:g.glyphHeight/2||24,left:g.glyphLeft/2+.5||0,top:g.glyphTop/2-27.5||-8,advance:g.glyphAdvance/2||24,isDoubleResolution:!0}}}}Ue.loadGlyphRange=function(h,e,i,l){return s._(this,void 0,void 0,(function*(){const u=256*e,d=u+255,g=l.transformRequest(i.replace("{fontstack}",h).replace("{range}",`${u}-${d}`),"Glyphs"),w=yield s.n(g,new AbortController);if(!w||!w.data)throw new Error(`Could not load glyph range. range: ${e}, ${u}-${d}`);const C={};for(const P of s.o(w.data))C[P.id]=P;return C}))},Ue.TinySDF=class{constructor({fontSize:h=24,buffer:e=3,radius:i=8,cutoff:l=.25,fontFamily:u="sans-serif",fontWeight:d="normal",fontStyle:g="normal",lang:w=null}={}){this.buffer=e,this.cutoff=l,this.radius=i,this.lang=w;const C=this.size=h+4*e,P=this._createCanvas(C),E=this.ctx=P.getContext("2d",{willReadFrequently:!0});E.font=`${g} ${d} ${h}px ${u}`,E.textBaseline="alphabetic",E.textAlign="left",E.fillStyle="black",this.gridOuter=new Float64Array(C*C),this.gridInner=new Float64Array(C*C),this.f=new Float64Array(C),this.z=new Float64Array(C+1),this.v=new Uint16Array(C)}_createCanvas(h){const e=document.createElement("canvas");return e.width=e.height=h,e}draw(h){const{width:e,actualBoundingBoxAscent:i,actualBoundingBoxDescent:l,actualBoundingBoxLeft:u,actualBoundingBoxRight:d}=this.ctx.measureText(h),g=Math.ceil(i),w=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(d-u))),C=Math.min(this.size-this.buffer,g+Math.ceil(l)),P=w+2*this.buffer,E=C+2*this.buffer,R=Math.max(P*E,0),D=new Uint8ClampedArray(R),N={data:D,width:P,height:E,glyphWidth:w,glyphHeight:C,glyphTop:g,glyphLeft:0,glyphAdvance:e};if(w===0||C===0)return N;const{ctx:G,buffer:te,gridInner:ee,gridOuter:ie}=this;this.lang&&(G.lang=this.lang),G.clearRect(te,te,w,C),G.fillText(h,te,te+g);const ue=G.getImageData(te,te,w,C);ie.fill(Le,0,R),ee.fill(0,0,R);for(let ve=0;ve0?_e*_e:0,ee[Pe]=_e<0?_e*_e:0}}et(ie,0,0,P,E,P,this.f,this.v,this.z),et(ee,te,te,w,C,P,this.f,this.v,this.z);for(let ve=0;ve1&&(C=e[++w]);const E=Math.abs(P-C.left),R=Math.abs(P-C.right),D=Math.min(E,R);let N;const G=d/l*(u+1);if(C.isDash){const te=u-Math.abs(G);N=Math.sqrt(D*D+te*te)}else N=u-Math.sqrt(D*D+G*G);this.data[g+P]=Math.max(0,Math.min(255,N+128))}}}addRegularDash(e){for(let w=e.length-1;w>=0;--w){const C=e[w],P=e[w+1];C.zeroLength?e.splice(w,1):P&&P.isDash===C.isDash&&(P.left=C.left,e.splice(w,1))}const i=e[0],l=e[e.length-1];i.isDash===l.isDash&&(i.left=l.left-this.width,l.right=i.right+this.width);const u=this.width*this.nextRow;let d=0,g=e[d];for(let w=0;w1&&(g=e[++d]);const C=Math.abs(w-g.left),P=Math.abs(w-g.right),E=Math.min(C,P);this.data[u+w]=Math.max(0,Math.min(255,(g.isDash?E:-E)+128))}}addDash(e,i){const l=i?7:0,u=2*l+1;if(this.nextRow+u>this.height)return s.w("LineAtlas out of space"),null;let d=0;for(let w=0;w{i.terminate()})),this.workers=null)}isPreloaded(){return!!this.active[Ae]}numActive(){return Object.keys(this.active).length}}const ft=Math.floor(ne.hardwareConcurrency/2);let it,ut;function Pt(){return it||(it=new je),it}je.workerCount=s.H(globalThis)?Math.max(Math.min(ft,3),1):1;class Dt{constructor(e,i){this.workerPool=e,this.actors=[],this.currentActor=0,this.id=i;const l=this.workerPool.acquire(i);for(let u=0;u{i.remove()})),this.actors=[],e&&this.workerPool.release(this.id)}registerMessageHandler(e,i){for(const l of this.actors)l.registerMessageHandler(e,i)}}function ot(){return ut||(ut=new Dt(Pt(),s.K),ut.registerMessageHandler("GR",((h,e,i)=>s.m(e,i)))),ut}function dt(h,e){const i=s.L();return s.M(i,i,[1,1,0]),s.N(i,i,[.5*h.width,.5*h.height,1]),h.calculatePosMatrix?s.O(i,i,h.calculatePosMatrix(e.toUnwrapped())):i}function vt(h,e,i,l,u,d,g){var w;const C=(function(D,N,G){if(D)for(const te of D){const ee=N[te];if(ee&&ee.source===G&&ee.type==="fill-extrusion")return!0}else for(const te in N){const ee=N[te];if(ee.source===G&&ee.type==="fill-extrusion")return!0}return!1})((w=u==null?void 0:u.layers)!==null&&w!==void 0?w:null,e,h.id),P=d.maxPitchScaleFactor(),E=h.tilesIn(l,P,C);E.sort(xt);const R=[];for(const D of E)R.push({wrappedTileID:D.tileID.wrapped().key,queryResults:D.tile.queryRenderedFeatures(e,i,h._state,D.queryGeometry,D.cameraQueryGeometry,D.scale,u,d,P,dt(h.transform,D.tileID),g?(N,G)=>g(D.tileID,N,G):void 0)});return(function(D,N){for(const G in D)for(const te of D[G])It(te,N);return D})((function(D){const N={},G={};for(const te of D){const ee=te.queryResults,ie=te.wrappedTileID,ue=G[ie]=G[ie]||{};for(const ve in ee){const me=ee[ve],be=ue[ve]=ue[ve]||{},Pe=N[ve]=N[ve]||[];for(const _e of me)be[_e.featureIndex]||(be[_e.featureIndex]=!0,Pe.push(_e))}}return N})(R),h)}function xt(h,e){const i=h.tileID,l=e.tileID;return i.overscaledZ-l.overscaledZ||i.canonical.y-l.canonical.y||i.wrap-l.wrap||i.canonical.x-l.canonical.x}function It(h,e){const i=h.feature,l=e.getFeatureState(i.layer["source-layer"],i.id);i.source=i.layer.source,i.layer["source-layer"]&&(i.sourceLayer=i.layer["source-layer"]),i.state=l}function wt(h,e,i){return s._(this,void 0,void 0,(function*(){let l=h;if(h.url?l=(yield s.j(e.transformRequest(h.url,"Source"),i)).data:yield ne.frameAsync(i),!l)return null;const u=s.Q(s.e(l,h),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in l&&l.vector_layers&&(u.vectorLayerIds=l.vector_layers.map((d=>d.id))),u}))}class _t{constructor(e,i){e&&(i?this.setSouthWest(e).setNorthEast(i):Array.isArray(e)&&(e.length===4?this.setSouthWest([e[0],e[1]]).setNorthEast([e[2],e[3]]):this.setSouthWest(e[0]).setNorthEast(e[1])))}setNorthEast(e){return this._ne=e instanceof s.S?new s.S(e.lng,e.lat):s.S.convert(e),this}setSouthWest(e){return this._sw=e instanceof s.S?new s.S(e.lng,e.lat):s.S.convert(e),this}extend(e){const i=this._sw,l=this._ne;let u,d;if(e instanceof s.S)u=e,d=e;else{if(!(e instanceof _t))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(_t.convert(e)):this.extend(s.S.convert(e)):e&&("lng"in e||"lon"in e)&&"lat"in e?this.extend(s.S.convert(e)):this;if(u=e._sw,d=e._ne,!u||!d)return this}return i||l?(i.lng=Math.min(u.lng,i.lng),i.lat=Math.min(u.lat,i.lat),l.lng=Math.max(d.lng,l.lng),l.lat=Math.max(d.lat,l.lat)):(this._sw=new s.S(u.lng,u.lat),this._ne=new s.S(d.lng,d.lat)),this}getCenter(){return new s.S((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new s.S(this.getWest(),this.getNorth())}getSouthEast(){return new s.S(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(e){const{lng:i,lat:l}=s.S.convert(e);let u=this._sw.lng<=i&&i<=this._ne.lng;return this._sw.lng>this._ne.lng&&(u=this._sw.lng>=i&&i>=this._ne.lng),this._sw.lat<=l&&l<=this._ne.lat&&u}static convert(e){return e instanceof _t?e:e&&new _t(e)}static fromLngLat(e,i=0){const l=360*i/40075017,u=l/Math.cos(Math.PI/180*e.lat);return new _t(new s.S(e.lng-u,e.lat-l),new s.S(e.lng+u,e.lat+l))}adjustAntiMeridian(){const e=new s.S(this._sw.lng,this._sw.lat),i=new s.S(this._ne.lng,this._ne.lat);return new _t(e,e.lng>i.lng?new s.S(i.lng+360,i.lat):i)}}class Et{constructor(e,i,l){this.bounds=_t.convert(this.validateBounds(e)),this.minzoom=i||0,this.maxzoom=l||24}validateBounds(e){return Array.isArray(e)&&e.length===4?[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]:[-180,-90,180,90]}contains(e){const i=Math.pow(2,e.z),l=Math.floor(s.V(this.bounds.getWest())*i),u=Math.floor(s.U(this.bounds.getNorth())*i),d=Math.ceil(s.V(this.bounds.getEast())*i),g=Math.ceil(s.U(this.bounds.getSouth())*i);return e.x>=l&&e.x=u&&e.y{this._options.tiles=e})),this}setUrl(e){return this.setSourceProperty((()=>{this.url=e,this._options.url=e})),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return s.e({},this._options)}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),l={request:this.map._requestManager.transformRequest(i,"Tile"),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,globalState:this.map.getGlobalState()};l.request.collectResourceTiming=this._collectResourceTiming;let u="RT";if(e.actor&&e.state!=="expired"){if(e.state==="loading")return new Promise(((d,g)=>{e.reloadPromise={resolve:d,reject:g}}))}else e.actor=this.dispatcher.getActor(),u="LT";e.abortController=new AbortController;try{const d=yield e.actor.sendAsync({type:u,data:l},e.abortController);if(delete e.abortController,e.aborted)return;this._afterTileLoadWorkerResponse(e,d)}catch(d){if(delete e.abortController,e.aborted)return;if(d&&d.status!==404)throw d;this._afterTileLoadWorkerResponse(e,null)}}))}_afterTileLoadWorkerResponse(e,i){if(i&&i.resourceTiming&&(e.resourceTiming=i.resourceTiming),i&&this.map._refreshExpiredTiles&&e.setExpiryData(i),e.loadVectorData(i,this.map.painter),e.reloadPromise){const l=e.reloadPromise;e.reloadPromise=null,this.loadTile(e).then(l.resolve).catch(l.reject)}}abortTile(e){return s._(this,void 0,void 0,(function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.actor&&(yield e.actor.sendAsync({type:"AT",data:{uid:e.uid,type:this.type,source:this.id}}))}))}unloadTile(e){return s._(this,void 0,void 0,(function*(){e.unloadVectorData(),e.actor&&(yield e.actor.sendAsync({type:"RMT",data:{uid:e.uid,type:this.type,source:this.id}}))}))}hasTransition(){return!1}}class Ut extends s.E{constructor(e,i,l,u){super(),this.id=e,this.dispatcher=l,this.setEventedParent(u),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=s.e({type:"raster"},i),s.e(this,s.Q(i,["url","scheme","tileSize"]))}load(){return s._(this,arguments,void 0,(function*(e=!1){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const i=yield wt(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,i&&(s.e(this,i),i.bounds&&(this.tileBounds=new Et(i.bounds,this.minzoom,this.maxzoom)),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.l("data",{dataType:"source",sourceDataType:"content",sourceDataChanged:e})))}catch(i){this._tileJSONRequest=null,this.fire(new s.k(i))}}))}loaded(){return this._loaded}onAdd(e){this.map=e,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(e){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),e(),this.load(!0)}setTiles(e){return this.setSourceProperty((()=>{this._options.tiles=e})),this}setUrl(e){return this.setSourceProperty((()=>{this.url=e,this._options.url=e})),this}serialize(){return s.e({},this._options)}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);e.abortController=new AbortController;try{const l=yield Fe.getImage(this.map._requestManager.transformRequest(i,"Tile"),e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(l&&l.data){this.map._refreshExpiredTiles&&(l.cacheControl||l.expires)&&e.setExpiryData({cacheControl:l.cacheControl,expires:l.expires});const u=this.map.painter.context,d=u.gl,g=l.data;e.texture=this.map.painter.getTileTexture(g.width),e.texture?e.texture.update(g,{useMipmap:!0}):(e.texture=new s.T(u,g,d.RGBA,{useMipmap:!0}),e.texture.bind(d.LINEAR,d.CLAMP_TO_EDGE,d.LINEAR_MIPMAP_NEAREST)),e.state="loaded"}}catch(l){if(delete e.abortController,e.aborted)e.state="unloaded";else if(l)throw e.state="errored",l}}))}abortTile(e){return s._(this,void 0,void 0,(function*(){e.abortController&&(e.abortController.abort(),delete e.abortController)}))}unloadTile(e){return s._(this,void 0,void 0,(function*(){e.texture&&this.map.painter.saveTileTexture(e.texture)}))}hasTransition(){return!1}}class er extends Ut{constructor(e,i,l,u){super(e,i,l,u),this.type="raster-dem",this.maxzoom=22,this._options=s.e({type:"raster-dem"},i),this.encoding=i.encoding||"mapbox",this.redFactor=i.redFactor,this.greenFactor=i.greenFactor,this.blueFactor=i.blueFactor,this.baseShift=i.baseShift}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),l=this.map._requestManager.transformRequest(i,"Tile");e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.abortController=new AbortController;try{const u=yield Fe.getImage(l,e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(u&&u.data){const d=u.data;this.map._refreshExpiredTiles&&(u.cacheControl||u.expires)&&e.setExpiryData({cacheControl:u.cacheControl,expires:u.expires});const g=s.b(d)&&s.W()?d:yield this.readImageNow(d),w={type:this.type,uid:e.uid,source:this.id,rawImageData:g,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!e.actor||e.state==="expired"){e.actor=this.dispatcher.getActor();const C=yield e.actor.sendAsync({type:"LDT",data:w});e.dem=C,e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.state="loaded"}}}catch(u){if(delete e.abortController,e.aborted)e.state="unloaded";else if(u)throw e.state="errored",u}}))}readImageNow(e){return s._(this,void 0,void 0,(function*(){if(typeof VideoFrame<"u"&&s.X()){const i=e.width+2,l=e.height+2;try{return new s.R({width:i,height:l},yield s.Y(e,-1,-1,i,l))}catch{}}return ne.getImageData(e,1)}))}_getNeighboringTiles(e){const i=e.canonical,l=Math.pow(2,i.z),u=(i.x-1+l)%l,d=i.x===0?e.wrap-1:e.wrap,g=(i.x+1+l)%l,w=i.x+1===l?e.wrap+1:e.wrap,C={};return C[new s.Z(e.overscaledZ,d,i.z,u,i.y).key]={backfilled:!1},C[new s.Z(e.overscaledZ,w,i.z,g,i.y).key]={backfilled:!1},i.y>0&&(C[new s.Z(e.overscaledZ,d,i.z,u,i.y-1).key]={backfilled:!1},C[new s.Z(e.overscaledZ,e.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},C[new s.Z(e.overscaledZ,w,i.z,g,i.y-1).key]={backfilled:!1}),i.y+1i.coordinates)).flat(1/0):e.coordinates.flat(1/0)}getBounds(){return s._(this,void 0,void 0,(function*(){const e=new _t,i=yield this.getData();let l;switch(i.type){case"FeatureCollection":l=i.features.map((u=>this.getCoordinatesFromGeometry(u.geometry))).flat(1/0);break;case"Feature":l=this.getCoordinatesFromGeometry(i.geometry);break;default:l=this.getCoordinatesFromGeometry(i)}if(l.length==0)return e;for(let u=0;u0&&s.e(g,{resourceTiming:d}),this.fire(new s.l("data",Object.assign(Object.assign({},g),{sourceDataType:"metadata"}))),this.fire(new s.l("data",Object.assign(Object.assign({},g),{sourceDataType:"content"})))}catch(u){if(this._isUpdatingWorker=!1,this._removed)return void this.fire(new s.l("dataabort",{dataType:"source"}));this.fire(new s.k(u))}finally{(this._pendingWorkerUpdate.data||this._pendingWorkerUpdate.diff)&&this._updateWorkerData()}}))}loaded(){return!this._isUpdatingWorker&&this._pendingWorkerUpdate.data===void 0&&this._pendingWorkerUpdate.diff===void 0}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.actor?"RT":"LT";e.actor=this.actor;const l={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,globalState:this.map.getGlobalState()};e.abortController=new AbortController;const u=yield this.actor.sendAsync({type:i,data:l},e.abortController);delete e.abortController,e.unloadVectorData(),e.aborted||e.loadVectorData(u,this.map.painter,i==="RT")}))}abortTile(e){return s._(this,void 0,void 0,(function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.aborted=!0}))}unloadTile(e){return s._(this,void 0,void 0,(function*(){e.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:e.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 s.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}class Nt extends s.E{constructor(e,i,l,u){super(),this.flippedWindingOrder=!1,this.id=e,this.dispatcher=l,this.coordinates=i.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(u),this.options=i}load(e){return s._(this,void 0,void 0,(function*(){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const i=yield Fe.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,i&&i.data&&(this.image=i.data,e&&(this.coordinates=e),this._finishLoading())}catch(i){this._request=null,this._loaded=!0,this.fire(new s.k(i))}}))}loaded(){return this._loaded}updateImage(e){return e.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=e.url,this.load(e.coordinates).finally((()=>{this.texture=null})),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(e){this.map=e,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(e){this.coordinates=e;const i=e.map(s.a1.fromLngLat);var l;return this.tileID=(function(u){const d=s.a2.fromPoints(u),g=d.width(),w=d.height(),C=Math.max(g,w),P=Math.max(0,Math.floor(-Math.log(C)/Math.LN2)),E=Math.pow(2,P);return new s.a4(P,Math.floor((d.minX+d.maxX)/2*E),Math.floor((d.minY+d.maxY)/2*E))})(i),this.terrainTileRanges=this._getOverlappingTileRanges(i),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=i.map((u=>this.tileID.getTilePoint(u)._round())),this.flippedWindingOrder=((l=this.tileCoords)[1].x-l[0].x)*(l[2].y-l[0].y)-(l[1].y-l[0].y)*(l[2].x-l[0].x)<0,this.fire(new s.l("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const e=this.map.painter.context,i=e.gl;this.texture||(this.texture=new s.T(e,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let l=!1;for(const u in this.tiles){const d=this.tiles[u];d.state!=="loaded"&&(d.state="loaded",d.texture=this.texture,l=!0)}l&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(e){return s._(this,void 0,void 0,(function*(){this.tileID&&this.tileID.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={}):e.state="errored"}))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}_getOverlappingTileRanges(e){const{minX:i,minY:l,maxX:u,maxY:d}=s.a2.fromPoints(e),g={};for(let w=0;w<=s.a3;w++){const C=Math.pow(2,w),P=Math.floor(i*C),E=Math.floor(l*C),R=Math.floor(u*C),D=Math.floor(d*C);g[w]={minTileX:P,minTileY:E,maxTileX:R,maxTileY:D}}return g}}class Ft extends Nt{constructor(e,i,l,u){super(e,i,l,u),this.roundZoom=!0,this.type="video",this.options=i}load(){return s._(this,void 0,void 0,(function*(){this._loaded=!1;const e=this.options;this.urls=[];for(const i of e.urls)this.urls.push(this.map._requestManager.transformRequest(i,"Source").url);try{const i=yield s.a5(this.urls);if(this._loaded=!0,!i)return;this.video=i,this.video.loop=!0,this.video.addEventListener("playing",(()=>{this.map.triggerRepaint()})),this.map&&this.video.play(),this._finishLoading()}catch(i){this.fire(new s.k(i))}}))}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(e){if(this.video){const i=this.video.seekable;ei.end(0)?this.fire(new s.k(new s.a6(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=e}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const e=this.map.painter.context,i=e.gl;this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new s.T(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let l=!1;for(const u in this.tiles){const d=this.tiles[u];d.state!=="loaded"&&(d.state="loaded",d.texture=this.texture,l=!0)}l&&this.fire(new s.l("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 sr extends Nt{constructor(e,i,l,u){super(e,i,l,u),i.coordinates?Array.isArray(i.coordinates)&&i.coordinates.length===4&&!i.coordinates.some((d=>!Array.isArray(d)||d.length!==2||d.some((g=>typeof g!="number"))))||this.fire(new s.k(new s.a6(`sources.${e}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.k(new s.a6(`sources.${e}`,null,'missing required property "coordinates"'))),i.animate&&typeof i.animate!="boolean"&&this.fire(new s.k(new s.a6(`sources.${e}`,null,'optional "animate" property must be a boolean value'))),i.canvas?typeof i.canvas=="string"||i.canvas instanceof HTMLCanvasElement||this.fire(new s.k(new s.a6(`sources.${e}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new s.k(new s.a6(`sources.${e}`,null,'missing required property "canvas"'))),this.options=i,this.animate=i.animate===void 0||i.animate}load(){return s._(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 s.k(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(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const i=this.map.painter.context,l=i.gl;this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new s.T(i,this.canvas,l.RGBA,{premultiply:!0});let u=!1;for(const d in this.tiles){const g=this.tiles[d];g.state!=="loaded"&&(g.state="loaded",g.texture=this.texture,u=!0)}u&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const e of[this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return!0;return!1}}const lr={},Vr=h=>{switch(h){case"geojson":return tr;case"image":return Nt;case"raster":return Ut;case"raster-dem":return er;case"vector":return Rt;case"video":return Ft;case"canvas":return sr}return lr[h]},mr="RTLPluginLoaded";class hr extends s.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=ot()}_syncState(e){return this.status=e,this.dispatcher.broadcast("SRPS",{pluginStatus:e,pluginURL:this.url}).catch((i=>{throw this.status="error",i}))}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(e){return s._(this,arguments,void 0,(function*(i,l=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=ne.resolveURL(i),!this.url)throw new Error(`requested url ${i} is invalid`);if(this.status==="unavailable"){if(!l)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()}))}_requestImport(){return s._(this,void 0,void 0,(function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new s.l(mr))}))}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let _r=null;function Ir(){return _r||(_r=new hr),_r}class qr{constructor(e,i){this.timeAdded=0,this.fadeEndTime=0,this.tileID=e,this.uid=s.a7(),this.uses=0,this.tileSize=i,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(e){const i=e+this.timeAdded;id.getLayer(P))).filter(Boolean);if(C.length!==0){w.layers=C,w.stateDependentLayerIds&&(w.stateDependentLayers=w.stateDependentLayerIds.map((P=>C.filter((E=>E.id===P))[0])));for(const P of C)g[P.id]=w}}return g})(e.buckets,i==null?void 0:i.style),this.hasSymbolBuckets=!1;for(const u in this.buckets){const d=this.buckets[u];if(d instanceof s.a9){if(this.hasSymbolBuckets=!0,!l)break;d.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const u in this.buckets){const d=this.buckets[u];if(d instanceof s.a9&&d.hasRTLText){this.hasRTLText=!0,Ir().lazyLoad();break}}this.queryPadding=0;for(const u in this.buckets){const d=this.buckets[u];this.queryPadding=Math.max(this.queryPadding,i.style.getLayer(u).queryRadius(d))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage)}else this.collisionBoxArray=new s.a8}unloadVectorData(){for(const e in this.buckets)this.buckets[e].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(e){return this.buckets[e.id]}upload(e){for(const l in this.buckets){const u=this.buckets[l];u.uploadPending()&&u.upload(e)}const i=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new s.T(e,this.imageAtlas.image,i.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new s.T(e,this.glyphAtlasImage,i.ALPHA),this.glyphAtlasImage=null)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,i,l,u,d,g,w,C,P,E,R){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:u,cameraQueryGeometry:d,scale:g,tileSize:this.tileSize,pixelPosMatrix:E,transform:C,params:w,queryPadding:this.queryPadding*P,getElevation:R},e,i,l):{}}querySourceFeatures(e,i){const l=this.latestFeatureIndex;if(!l||!l.rawTileData)return;const u=l.loadVTLayers(),d=i&&i.sourceLayer?i.sourceLayer:"",g=u._geojsonTileLayer||u[d];if(!g)return;const w=s.aa(i&&i.filter),{z:C,x:P,y:E}=this.tileID.canonical,R={z:C,x:P,y:E};for(let D=0;Dl)u=!1;else if(i)if(this.expirationTime{this.remove(e,d)}),l)),this.data[u].push(d),this.order.push(u),this.order.length>this.max){const g=this._getAndRemoveByKey(this.order[0]);g&&this.onRemove(g)}return this}has(e){return e.wrapped().key in this.data}getAndRemove(e){return this.has(e)?this._getAndRemoveByKey(e.wrapped().key):null}_getAndRemoveByKey(e){const i=this.data[e].shift();return i.timeout&&clearTimeout(i.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),i.value}getByKey(e){const i=this.data[e];return i?i[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,i){if(!this.has(e))return this;const l=e.wrapped().key,u=i===void 0?0:this.data[l].indexOf(i),d=this.data[l][u];return this.data[l].splice(u,1),d.timeout&&clearTimeout(d.timeout),this.data[l].length===0&&delete this.data[l],this.onRemove(d.value),this.order.splice(this.order.indexOf(l),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const i=this._getAndRemoveByKey(this.order[0]);i&&this.onRemove(i)}return this}filter(e){const i=[];for(const l in this.data)for(const u of this.data[l])e(u.value)||i.push(u);for(const l of i)this.remove(l.value.tileID,l)}}class j{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(e,i,l){const u=String(i);if(this.stateChanges[e]=this.stateChanges[e]||{},this.stateChanges[e][u]=this.stateChanges[e][u]||{},s.e(this.stateChanges[e][u],l),this.deletedStates[e]===null){this.deletedStates[e]={};for(const d in this.state[e])d!==u&&(this.deletedStates[e][d]=null)}else if(this.deletedStates[e]&&this.deletedStates[e][u]===null){this.deletedStates[e][u]={};for(const d in this.state[e][u])l[d]||(this.deletedStates[e][u][d]=null)}else for(const d in l)this.deletedStates[e]&&this.deletedStates[e][u]&&this.deletedStates[e][u][d]===null&&delete this.deletedStates[e][u][d]}removeFeatureState(e,i,l){if(this.deletedStates[e]===null)return;const u=String(i);if(this.deletedStates[e]=this.deletedStates[e]||{},l&&i!==void 0)this.deletedStates[e][u]!==null&&(this.deletedStates[e][u]=this.deletedStates[e][u]||{},this.deletedStates[e][u][l]=null);else if(i!==void 0)if(this.stateChanges[e]&&this.stateChanges[e][u])for(l in this.deletedStates[e][u]={},this.stateChanges[e][u])this.deletedStates[e][u][l]=null;else this.deletedStates[e][u]=null;else this.deletedStates[e]=null}getState(e,i){const l=String(i),u=s.e({},(this.state[e]||{})[l],(this.stateChanges[e]||{})[l]);if(this.deletedStates[e]===null)return{};if(this.deletedStates[e]){const d=this.deletedStates[e][i];if(d===null)return{};for(const g in d)delete u[g]}return u}initializeTileState(e,i){e.setFeatureState(this.state,i)}coalesceChanges(e,i){const l={};for(const u in this.stateChanges){this.state[u]=this.state[u]||{};const d={};for(const g in this.stateChanges[u])this.state[u][g]||(this.state[u][g]={}),s.e(this.state[u][g],this.stateChanges[u][g]),d[g]=this.state[u][g];l[u]=d}for(const u in this.deletedStates){this.state[u]=this.state[u]||{};const d={};if(this.deletedStates[u]===null)for(const g in this.state[u])d[g]={},this.state[u][g]={};else for(const g in this.deletedStates[u]){if(this.deletedStates[u][g]===null)this.state[u][g]={};else for(const w of Object.keys(this.deletedStates[u][g]))delete this.state[u][g][w];d[g]=this.state[u][g]}l[u]=l[u]||{},s.e(l[u],d)}if(this.stateChanges={},this.deletedStates={},Object.keys(l).length!==0)for(const u in e)e[u].setFeatureState(l,i)}}const Z=89.25;function Y(h,e){const i=s.ah(e.lat,-s.ai,s.ai);return new s.P(s.V(e.lng)*h,s.U(i)*h)}function ae(h,e){return new s.a1(e.x/h,e.y/h).toLngLat()}function fe(h){return h.cameraToCenterDistance*Math.min(.85*Math.tan(s.ae(90-h.pitch)),Math.tan(s.ae(Z-h.pitch)))}function Se(h,e){const i=h.canonical,l=e/s.af(i.z),u=i.x+Math.pow(2,i.z)*h.wrap,d=s.ag(new Float64Array(16));return s.M(d,d,[u*l,i.y*l,0]),s.N(d,d,[l/s.$,l/s.$,1]),d}function ke(h,e,i,l,u){const d=s.a1.fromLngLat(h,e),g=u*s.aj(1,h.lat),w=g*Math.cos(s.ae(i)),C=Math.sqrt(g*g-w*w),P=C*Math.sin(s.ae(-l)),E=C*Math.cos(s.ae(-l));return new s.a1(d.x+P,d.y+E,d.z+w)}function we(h,e,i){const l=e.intersectsFrustum(h);if(!i||l===0)return l;const u=e.intersectsPlane(i);return u===0?0:l===2&&u===2?2:1}function Oe(h,e,i){let l=0;const u=(i-e)/10;for(let d=0;d<10;d++)l+=u*Math.pow(Math.cos(e+(d+.5)/10*(i-e)),h);return l}function lt(h,e){return function(i,l,u,d,g){const w=2*((h-1)/s.ak(Math.cos(s.ae(Z-g))/Math.cos(s.ae(Z)))-1),C=Math.acos(u/d),P=2*Oe(w-1,0,s.ae(g/2)),E=Math.min(s.ae(Z),C+s.ae(g/2)),R=Oe(w-1,Math.min(E,C-s.ae(g/2)),E),D=Math.atan(l/u),N=Math.hypot(l,u);let G=i;return G+=s.ak(d/N/Math.max(.5,Math.cos(s.ae(g/2)))),G+=w*s.ak(Math.cos(D))/2,G-=s.ak(Math.max(1,R/P/e))/2,G}}const Ye=lt(9.314,3);function kt(h,e){const i=(e.roundZoom?Math.round:Math.floor)(h.zoom+s.ak(h.tileSize/e.tileSize));return Math.max(0,i)}function xe(h,e){const i=h.getCameraFrustum(),l=h.getClippingPlane(),u=h.screenPointToMercatorCoordinate(h.getCameraPoint()),d=s.a1.fromLngLat(h.center,h.elevation);u.z=d.z+Math.cos(h.pitchInRadians)*h.cameraToCenterDistance/h.worldSize;const g=h.getCoveringTilesDetailsProvider(),w=g.allowVariableZoom(h,e),C=kt(h,e),P=e.minzoom||0,E=e.maxzoom!==void 0?e.maxzoom:h.maxZoom,R=Math.min(Math.max(0,C),E),D=Math.pow(2,R),N=[D*u.x,D*u.y,0],G=[D*d.x,D*d.y,0],te=Math.hypot(d.x-u.x,d.y-u.y),ee=Math.abs(d.z-u.z),ie=Math.hypot(te,ee),ue=be=>({zoom:0,x:0,y:0,wrap:be,fullyVisible:!1}),ve=[],me=[];if(h.renderWorldCopies&&g.allowWorldCopies())for(let be=1;be<=3;be++)ve.push(ue(-be)),ve.push(ue(be));for(ve.push(ue(0));ve.length>0;){const be=ve.pop(),Pe=be.x,_e=be.y;let Be=be.fullyVisible;const rt={x:Pe,y:_e,z:be.zoom},Ge=g.getTileBoundingVolume(rt,be.wrap,h.elevation,e);if(!Be){const Zt=we(i,Ge,l);if(Zt===0)continue;Be=Zt===2}const Xe=g.distanceToTile2d(u.x,u.y,rt,Ge);let tt=C;w&&(tt=(e.calculateTileZoom||Ye)(h.zoom+s.ak(h.tileSize/e.tileSize),Xe,ee,ie,h.fov)),tt=(e.roundZoom?Math.round:Math.floor)(tt),tt=Math.max(0,tt);const jt=Math.min(tt,E);if(be.wrap=g.getWrap(d,rt,be.wrap),be.zoom>=jt){if(be.zoom>1),wrap:be.wrap,fullyVisible:Be})}return me.sort(((be,Pe)=>be.distanceSq-Pe.distanceSq)).map((be=>be.tileID))}const Ot=s.a2.fromPoints([new s.P(0,0),new s.P(s.$,s.$)]);class cr extends s.E{constructor(e,i,l){super(),this.id=e,this.dispatcher=l,this.on("data",(u=>this._dataHandler(u))),this.on("dataloading",(()=>{this._sourceErrored=!1})),this.on("error",(()=>{this._sourceErrored=this._source.loaded()})),this._source=((u,d,g,w)=>{const C=new(Vr(d.type))(u,d,g,w);if(C.id!==u)throw new Error(`Expected Source id to be ${u} instead of ${C.id}`);return C})(e,i,l,this),this._tiles={},this._cache=new le(0,(u=>this._unloadTile(u))),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new j,this._didEmitContent=!1,this._updated=!1}onAdd(e){this.map=e,this._maxTileCacheSize=e?e._maxTileCacheSize:null,this._maxTileCacheZoomLevels=e?e._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(e)}onRemove(e){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(e)}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 e in this._tiles){const i=this._tiles[e];if(i.state!=="loaded"&&i.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(e,i,l){return s._(this,void 0,void 0,(function*(){try{yield this._source.loadTile(e),this._tileLoaded(e,i,l)}catch(u){e.state="errored",u.status!==404?this._source.fire(new s.k(u,{tile:e})):this.update(this.transform,this.terrain)}}))}_unloadTile(e){this._source.unloadTile&&this._source.unloadTile(e)}_abortTile(e){this._source.abortTile&&this._source.abortTile(e),this._source.fire(new s.l("dataabort",{tile:e,coord:e.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const i in this._tiles){const l=this._tiles[i];l.upload(e),l.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map((e=>e.tileID)).sort(Jt).map((e=>e.key))}getRenderableIds(e){const i=[];for(const l in this._tiles)this._isIdRenderable(l,e)&&i.push(this._tiles[l]);return e?i.sort(((l,u)=>{const d=l.tileID,g=u.tileID,w=new s.P(d.canonical.x,d.canonical.y)._rotate(-this.transform.bearingInRadians),C=new s.P(g.canonical.x,g.canonical.y)._rotate(-this.transform.bearingInRadians);return d.overscaledZ-g.overscaledZ||C.y-w.y||C.x-w.x})).map((l=>l.tileID.key)):i.map((l=>l.tileID)).sort(Jt).map((l=>l.key))}hasRenderableParent(e){const i=this.findLoadedParent(e,0);return!!i&&this._isIdRenderable(i.tileID.key)}_isIdRenderable(e,i){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(i||!this._tiles[e].holdingForFade())}reload(e){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const i in this._tiles)e?this._reloadTile(i,"expired"):this._tiles[i].state!=="errored"&&this._reloadTile(i,"reloading")}}_reloadTile(e,i){return s._(this,void 0,void 0,(function*(){const l=this._tiles[e];l&&(l.state!=="loading"&&(l.state=i),yield this._loadTile(l,e,i))}))}_tileLoaded(e,i,l){e.timeAdded=ne.now(),l==="expired"&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(i,e),this.getSource().type==="raster-dem"&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),e.aborted||this._source.fire(new s.l("data",{dataType:"source",tile:e,coord:e.tileID}))}_backfillDEM(e){const i=this.getRenderableIds();for(let u=0;u1||(Math.abs(g)>1&&(Math.abs(g+C)===1?g+=C:Math.abs(g-C)===1&&(g-=C)),d.dem&&u.dem&&(u.dem.backfillBorder(d.dem,g,w),u.neighboringTiles&&u.neighboringTiles[P]&&(u.neighboringTiles[P].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,i,l,u){for(const d in this._tiles){let g=this._tiles[d];if(u[d]||!g.hasData()||g.tileID.overscaledZ<=i||g.tileID.overscaledZ>l)continue;let w=g.tileID;for(;g&&g.tileID.overscaledZ>i+1;){const P=g.tileID.scaledTo(g.tileID.overscaledZ-1);g=this._tiles[P.key],g&&g.hasData()&&(w=P)}let C=w;for(;C.overscaledZ>i;)if(C=C.scaledTo(C.overscaledZ-1),e[C.key]||e[C.canonical.key]){u[w.key]=w;break}}}findLoadedParent(e,i){if(e.key in this._loadedParentTiles){const l=this._loadedParentTiles[e.key];return l&&l.tileID.overscaledZ>=i?l:null}for(let l=e.overscaledZ-1;l>=i;l--){const u=e.scaledTo(l),d=this._getLoadedTile(u);if(d)return d}}findLoadedSibling(e){return this._getLoadedTile(e)}_getLoadedTile(e){const i=this._tiles[e.key];return i&&i.hasData()?i:this._cache.getByKey(e.wrapped().key)}updateCacheSize(e){const i=Math.ceil(e.width/this._source.tileSize)+1,l=Math.ceil(e.height/this._source.tileSize)+1,u=Math.floor(i*l*(this._maxTileCacheZoomLevels===null?s.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),d=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,u):u;this._cache.setMaxSize(d)}handleWrapJump(e){const i=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,i){const l={};for(const u in this._tiles){const d=this._tiles[u];d.tileID=d.tileID.unwrapTo(d.tileID.wrap+i),l[d.tileID.key]=d}this._tiles=l;for(const u in this._timers)clearTimeout(this._timers[u]),delete this._timers[u];for(const u in this._tiles)this._setTileReloadTimer(u,this._tiles[u])}}_updateCoveredAndRetainedTiles(e,i,l,u,d,g){const w={},C={},P=Object.keys(e),E=ne.now();for(const R of P){const D=e[R],N=this._tiles[R];if(!N||N.fadeEndTime!==0&&N.fadeEndTime<=E)continue;const G=this.findLoadedParent(D,i),te=this.findLoadedSibling(D),ee=G||te||null;ee&&(this._addTile(ee.tileID),w[ee.tileID.key]=ee.tileID),C[R]=D}this._retainLoadedChildren(C,u,l,e);for(const R in w)e[R]||(this._coveredTiles[R]=!0,e[R]=w[R]);if(g){const R={},D={};for(const N of d)this._tiles[N.key].hasData()?R[N.key]=N:D[N.key]=N;for(const N in D){const G=D[N].children(this._source.maxzoom);this._tiles[G[0].key]&&this._tiles[G[1].key]&&this._tiles[G[2].key]&&this._tiles[G[3].key]&&(R[G[0].key]=e[G[0].key]=G[0],R[G[1].key]=e[G[1].key]=G[1],R[G[2].key]=e[G[2].key]=G[2],R[G[3].key]=e[G[3].key]=G[3],delete D[N])}for(const N in D){const G=D[N],te=this.findLoadedParent(G,this._source.minzoom),ee=this.findLoadedSibling(G),ie=te||ee||null;if(ie){R[ie.tileID.key]=e[ie.tileID.key]=ie.tileID;for(const ue in R)R[ue].isChildOf(ie.tileID)&&delete R[ue]}}for(const N in this._tiles)R[N]||(this._coveredTiles[N]=!0)}}update(e,i){if(!this._sourceLoaded||this._paused)return;let l;this.transform=e,this.terrain=i,this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?l=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((E=>new s.Z(E.canonical.z,E.wrap,E.canonical.z,E.canonical.x,E.canonical.y))):(l=xe(e,{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:i,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(l=l.filter((E=>this._source.hasTile(E))))):l=[];const u=kt(e,this._source),d=Math.max(u-cr.maxOverzooming,this._source.minzoom),g=Math.max(u+cr.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const E={};for(const R of l)if(R.canonical.z>this._source.minzoom){const D=R.scaledTo(R.canonical.z-1);E[D.key]=D;const N=R.scaledTo(Math.max(this._source.minzoom,Math.min(R.canonical.z,5)));E[N.key]=N}l=l.concat(Object.values(E))}const w=l.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,w&&this.fire(new s.l("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const C=this._updateRetainedTiles(l,u);Pr(this._source.type)&&this._updateCoveredAndRetainedTiles(C,d,g,u,l,i);for(const E in C)this._tiles[E].clearFadeHold();const P=s.am(this._tiles,C);for(const E of P){const R=this._tiles[E];R.hasSymbolBuckets&&!R.holdingForFade()?R.setHoldDuration(this.map._fadeDuration):R.hasSymbolBuckets&&!R.symbolFadeFinished()||this._removeTile(E)}this._updateLoadedParentTileCache(),this._updateLoadedSiblingTileCache()}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(e)}_updateRetainedTiles(e,i){var l;const u={},d={},g=Math.max(i-cr.maxOverzooming,this._source.minzoom),w=Math.max(i+cr.maxUnderzooming,this._source.minzoom),C={};for(const P of e){const E=this._addTile(P);u[P.key]=P,E.hasData()||ithis._source.maxzoom){const D=P.children(this._source.maxzoom)[0],N=this.getTile(D);if(N&&N.hasData()){u[D.key]=D;continue}}else{const D=P.children(this._source.maxzoom);if(u[D[0].key]&&u[D[1].key]&&u[D[2].key]&&u[D[3].key])continue}let R=E.wasRequested();for(let D=P.overscaledZ-1;D>=g;--D){const N=P.scaledTo(D);if(d[N.key])break;if(d[N.key]=!0,E=this.getTile(N),!E&&R&&(E=this._addTile(N)),E){const G=E.hasData();if((G||!(!((l=this.map)===null||l===void 0)&&l.cancelPendingTileRequestsWhileZooming)||R)&&(u[N.key]=N),R=E.wasRequested(),G)break}}}return u}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const i=[];let l,u=this._tiles[e].tileID;for(;u.overscaledZ>0;){if(u.key in this._loadedParentTiles){l=this._loadedParentTiles[u.key];break}i.push(u.key);const d=u.scaledTo(u.overscaledZ-1);if(l=this._getLoadedTile(d),l)break;u=d}for(const d of i)this._loadedParentTiles[d]=l}}_updateLoadedSiblingTileCache(){this._loadedSiblingTiles={};for(const e in this._tiles){const i=this._tiles[e].tileID,l=this._getLoadedTile(i);this._loadedSiblingTiles[i.key]=l}}_addTile(e){let i=this._tiles[e.key];if(i)return i;i=this._cache.getAndRemove(e),i&&(this._setTileReloadTimer(e.key,i),i.tileID=e,this._state.initializeTileState(i,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,i)));const l=i;return i||(i=new qr(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(i,e.key,i.state)),i.uses++,this._tiles[e.key]=i,l||this._source.fire(new s.l("dataloading",{tile:i,coord:i.tileID,dataType:"source"})),i}_setTileReloadTimer(e,i){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const l=i.getExpiryTimeout();l&&(this._timers[e]=setTimeout((()=>{this._reloadTile(e,"expired"),delete this._timers[e]}),l))}refreshTiles(e){for(const i in this._tiles)(this._isIdRenderable(i)||this._tiles[i].state=="errored")&&e.some((l=>l.equals(this._tiles[i].tileID.canonical)))&&this._reloadTile(i,"expired")}_removeTile(e){const i=this._tiles[e];i&&(i.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),i.uses>0||(i.hasData()&&i.state!=="reloading"?this._cache.add(i.tileID,i,i.getExpiryTimeout()):(i.aborted=!0,this._abortTile(i),this._unloadTile(i))))}_dataHandler(e){const i=e.sourceDataType;e.dataType==="source"&&i==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&e.dataType==="source"&&i==="content"&&(this.reload(e.sourceDataChanged),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(e);this._cache.reset()}tilesIn(e,i,l){const u=[],d=this.transform;if(!d)return u;const g=d.getCoveringTilesDetailsProvider().allowWorldCopies(),w=l?d.getCameraQueryGeometry(e):e,C=N=>d.screenPointToMercatorCoordinate(N,this.terrain),P=this.transformBbox(e,C,!g),E=this.transformBbox(w,C,!g),R=this.getIds(),D=s.a2.fromPoints(E);for(let N=0;Nue.getTilePoint(new s.a1(me.x,me.y))));if(ve.expandBy(ie),ve.intersects(Ot)){const me=P.map((Pe=>ue.getTilePoint(Pe))),be=E.map((Pe=>ue.getTilePoint(Pe)));u.push({tile:G,tileID:g?ue:ue.unwrapTo(0),queryGeometry:me,cameraQueryGeometry:be,scale:ee})}}}return u}transformBbox(e,i,l){let u=e.map(i);if(l){const d=s.a2.fromPoints(e);d.shrinkBy(.001*Math.min(d.width(),d.height()));const g=d.map(i);s.a2.fromPoints(u).covers(g)||(u=u.map((w=>w.x>.5?new s.a1(w.x-1,w.y,w.z):w)))}return u}getVisibleCoordinates(e){const i=this.getRenderableIds(e).map((l=>this._tiles[l].tileID));return this.transform&&this.transform.populateCache(i),i}hasTransition(){if(this._source.hasTransition())return!0;if(Pr(this._source.type)){const e=ne.now();for(const i in this._tiles)if(this._tiles[i].fadeEndTime>=e)return!0}return!1}setFeatureState(e,i,l){this._state.updateState(e=e||"_geojsonTileLayer",i,l)}removeFeatureState(e,i,l){this._state.removeFeatureState(e=e||"_geojsonTileLayer",i,l)}getFeatureState(e,i){return this._state.getState(e=e||"_geojsonTileLayer",i)}setDependencies(e,i,l){const u=this._tiles[e];u&&u.setDependencies(i,l)}reloadTilesForDependencies(e,i){for(const l in this._tiles)this._tiles[l].hasDependency(e,i)&&this._reloadTile(l,"reloading");this._cache.filter((l=>!l.hasDependency(e,i)))}}function Jt(h,e){const i=Math.abs(2*h.wrap)-+(h.wrap<0),l=Math.abs(2*e.wrap)-+(e.wrap<0);return h.overscaledZ-e.overscaledZ||l-i||e.canonical.y-h.canonical.y||e.canonical.x-h.canonical.x}function Pr(h){return h==="raster"||h==="image"||h==="video"}cr.maxOverzooming=10,cr.maxUnderzooming=3;class Xr{constructor(e,i){this.reset(e,i)}reset(e,i){this.points=e||[],this._distances=[0];for(let l=1;l0?(u-g)/w:0;return this.points[d].mult(1-C).add(this.points[i].mult(C))}}function dn(h,e){let i=!0;return h==="always"||h!=="never"&&e!=="never"||(i=!1),i}class xn{constructor(e,i,l){const u=this.boxCells=[],d=this.circleCells=[];this.xCellCount=Math.ceil(e/l),this.yCellCount=Math.ceil(i/l);for(let g=0;gthis.width||u<0||i>this.height)return[];const C=[];if(e<=0&&i<=0&&this.width<=l&&this.height<=u){if(d)return[{key:null,x1:e,y1:i,x2:l,y2:u}];for(let P=0;P0}hitTestCircle(e,i,l,u,d){const g=e-l,w=e+l,C=i-l,P=i+l;if(w<0||g>this.width||P<0||C>this.height)return!1;const E=[];return this._forEachCell(g,C,w,P,this._queryCellCircle,E,{hitTest:!0,overlapMode:u,circle:{x:e,y:i,radius:l},seenUids:{box:{},circle:{}}},d),E.length>0}_queryCell(e,i,l,u,d,g,w,C){const{seenUids:P,hitTest:E,overlapMode:R}=w,D=this.boxCells[d];if(D!==null){const G=this.bboxes;for(const te of D)if(!P.box[te]){P.box[te]=!0;const ee=4*te,ie=this.boxKeys[te];if(e<=G[ee+2]&&i<=G[ee+3]&&l>=G[ee+0]&&u>=G[ee+1]&&(!C||C(ie))&&(!E||!dn(R,ie.overlapMode))&&(g.push({key:ie,x1:G[ee],y1:G[ee+1],x2:G[ee+2],y2:G[ee+3]}),E))return!0}}const N=this.circleCells[d];if(N!==null){const G=this.circles;for(const te of N)if(!P.circle[te]){P.circle[te]=!0;const ee=3*te,ie=this.circleKeys[te];if(this._circleAndRectCollide(G[ee],G[ee+1],G[ee+2],e,i,l,u)&&(!C||C(ie))&&(!E||!dn(R,ie.overlapMode))){const ue=G[ee],ve=G[ee+1],me=G[ee+2];if(g.push({key:ie,x1:ue-me,y1:ve-me,x2:ue+me,y2:ve+me}),E)return!0}}}return!1}_queryCellCircle(e,i,l,u,d,g,w,C){const{circle:P,seenUids:E,overlapMode:R}=w,D=this.boxCells[d];if(D!==null){const G=this.bboxes;for(const te of D)if(!E.box[te]){E.box[te]=!0;const ee=4*te,ie=this.boxKeys[te];if(this._circleAndRectCollide(P.x,P.y,P.radius,G[ee+0],G[ee+1],G[ee+2],G[ee+3])&&(!C||C(ie))&&!dn(R,ie.overlapMode))return g.push(!0),!0}}const N=this.circleCells[d];if(N!==null){const G=this.circles;for(const te of N)if(!E.circle[te]){E.circle[te]=!0;const ee=3*te,ie=this.circleKeys[te];if(this._circlesCollide(G[ee],G[ee+1],G[ee+2],P.x,P.y,P.radius)&&(!C||C(ie))&&!dn(R,ie.overlapMode))return g.push(!0),!0}}}_forEachCell(e,i,l,u,d,g,w,C){const P=this._convertToXCellCoord(e),E=this._convertToYCellCoord(i),R=this._convertToXCellCoord(l),D=this._convertToYCellCoord(u);for(let N=P;N<=R;N++)for(let G=E;G<=D;G++)if(d.call(this,e,i,l,u,this.xCellCount*G+N,g,w,C))return}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,i,l,u,d,g){const w=u-e,C=d-i,P=l+g;return P*P>w*w+C*C}_circleAndRectCollide(e,i,l,u,d,g,w){const C=(g-u)/2,P=Math.abs(e-(u+C));if(P>C+l)return!1;const E=(w-d)/2,R=Math.abs(i-(d+E));if(R>E+l)return!1;if(P<=C||R<=E)return!0;const D=P-C,N=R-E;return D*D+N*N<=l*l}}function mn(h,e,i){const l=s.L();if(!h){const{vecSouth:R,vecEast:D}=zt(e),N=O();N[0]=D[0],N[1]=D[1],N[2]=R[0],N[3]=R[1],u=N,(E=(g=(d=N)[0])*(P=d[3])-(C=d[2])*(w=d[1]))&&(u[0]=P*(E=1/E),u[1]=-w*E,u[2]=-C*E,u[3]=g*E),l[0]=N[0],l[1]=N[1],l[4]=N[2],l[5]=N[3]}var u,d,g,w,C,P,E;return s.N(l,l,[1/i,1/i,1]),l}function Vt(h,e,i,l){if(h){const u=s.L();if(!e){const{vecSouth:d,vecEast:g}=zt(i);u[0]=g[0],u[1]=g[1],u[4]=d[0],u[5]=d[1]}return s.N(u,u,[l,l,1]),u}return i.pixelsToClipSpaceMatrix}function zt(h){const e=Math.cos(h.rollInRadians),i=Math.sin(h.rollInRadians),l=Math.cos(h.pitchInRadians),u=Math.cos(h.bearingInRadians),d=Math.sin(h.bearingInRadians),g=s.ar();g[0]=-u*l*i-d*e,g[1]=-d*l*i+u*e;const w=s.as(g);w<1e-9?s.at(g):s.au(g,g,1/w);const C=s.ar();C[0]=u*l*e-d*i,C[1]=d*l*e+u*i;const P=s.as(C);return P<1e-9?s.at(C):s.au(C,C,1/P),{vecEast:C,vecSouth:g}}function dr(h,e,i,l){let u;l?(u=[h,e,l(h,e),1],s.aw(u,u,i)):(u=[h,e,0,1],En(u,u,i));const d=u[3];return{point:new s.P(u[0]/d,u[1]/d),signedDistanceFromCamera:d,isOccluded:!1}}function ht(h,e){return .5+h/e*.5}function Wr(h,e){return h.x>=-e[0]&&h.x<=e[0]&&h.y>=-e[1]&&h.y<=e[1]}function Yr(h,e,i,l,u,d,g,w,C,P,E,R,D){const N=i?h.textSizeData:h.iconSizeData,G=s.an(N,e.transform.zoom),te=[256/e.width*2+1,256/e.height*2+1],ee=i?h.text.dynamicLayoutVertexArray:h.icon.dynamicLayoutVertexArray;ee.clear();const ie=h.lineVertexArray,ue=i?h.text.placedSymbolArray:h.icon.placedSymbolArray,ve=e.transform.width/e.transform.height;let me=!1;for(let be=0;beMath.abs(i.x-e.x)*l?{useVertical:!0}:(h===s.ao.vertical?e.yi.x)?{needsFlipping:!0}:null}function He(h){const{projectionContext:e,pitchedLabelPlaneMatrixInverse:i,symbol:l,fontSize:u,flip:d,keepUpright:g,glyphOffsetArray:w,dynamicLayoutVertexArray:C,aspectRatio:P,rotateToLine:E}=h,R=u/24,D=l.lineOffsetX*R,N=l.lineOffsetY*R;let G;if(l.numGlyphs>1){const te=l.glyphStartIndex+l.numGlyphs,ee=l.lineStartIndex,ie=l.lineStartIndex+l.lineLength,ue=Zr(R,w,D,N,d,l,E,e);if(!ue)return{notEnoughRoom:!0};const ve=Tr(ue.first.point.x,ue.first.point.y,e,i),me=Tr(ue.last.point.x,ue.last.point.y,e,i);if(g&&!d){const be=mt(l.writingMode,ve,me,P);if(be)return be}G=[ue.first];for(let be=l.glyphStartIndex+1;be0?ve.point:At(e.tileAnchorPoint,ue,ee,1,e),be=Tr(ee.x,ee.y,e,i),Pe=Tr(me.x,me.y,e,i),_e=mt(l.writingMode,be,Pe,P);if(_e)return _e}const te=pn(R*w.getoffsetX(l.glyphStartIndex),D,N,d,l.segment,l.lineStartIndex,l.lineStartIndex+l.lineLength,e,E);if(!te||e.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};G=[te]}for(const te of G)s.av(C,te.point,te.angle);return{}}function At(h,e,i,l,u){const d=h.add(h.sub(e)._unit()),g=Kt(d.x,d.y,u).point,w=i.sub(g);return i.add(w._mult(l/w.mag()))}function Bt(h,e,i){const l=e.projectionCache;if(l.projections[h])return l.projections[h];const u=new s.P(e.lineVertexArray.getx(h),e.lineVertexArray.gety(h)),d=Kt(u.x,u.y,e);if(d.signedDistanceFromCamera>0)return l.projections[h]=d.point,l.anyProjectionOccluded=l.anyProjectionOccluded||d.isOccluded,d.point;const g=h-i.direction;return At(i.distanceFromAnchor===0?e.tileAnchorPoint:new s.P(e.lineVertexArray.getx(g),e.lineVertexArray.gety(g)),u,i.previousVertex,i.absOffsetX-i.distanceFromAnchor+1,e)}function Kt(h,e,i){const l=h+i.translation[0],u=e+i.translation[1];let d;return i.pitchWithMap?(d=dr(l,u,i.pitchedLabelPlaneMatrix,i.getElevation),d.isOccluded=!1):(d=i.transform.projectTileCoordinates(l,u,i.unwrappedTileID,i.getElevation),d.point.x=(.5*d.point.x+.5)*i.width,d.point.y=(.5*-d.point.y+.5)*i.height),d}function Tr(h,e,i,l){if(i.pitchWithMap){const u=[h,e,0,1];return s.aw(u,u,l),i.transform.projectTileCoordinates(u[0]/u[3],u[1]/u[3],i.unwrappedTileID,i.getElevation).point}return{x:h/i.width*2-1,y:1-e/i.height*2}}function Er(h,e,i){return i.transform.projectTileCoordinates(h,e,i.unwrappedTileID,i.getElevation)}function ur(h,e,i){return h._unit()._perp()._mult(e*i)}function rn(h,e,i,l,u,d,g,w,C){if(w.projectionCache.offsets[h])return w.projectionCache.offsets[h];const P=i.add(e);if(h+C.direction=u)return w.projectionCache.offsets[h]=P,P;const E=Bt(h+C.direction,w,C),R=ur(E.sub(i),g,C.direction),D=i.add(R),N=E.add(R);return w.projectionCache.offsets[h]=s.ax(d,P,D,N)||P,w.projectionCache.offsets[h]}function pn(h,e,i,l,u,d,g,w,C){const P=l?h-e:h+e;let E=P>0?1:-1,R=0;l&&(E*=-1,R=Math.PI),E<0&&(R+=Math.PI);let D,N=E>0?d+u:d+u+1;w.projectionCache.cachedAnchorPoint?D=w.projectionCache.cachedAnchorPoint:(D=Kt(w.tileAnchorPoint.x,w.tileAnchorPoint.y,w).point,w.projectionCache.cachedAnchorPoint=D);let G,te,ee=D,ie=D,ue=0,ve=0;const me=Math.abs(P),be=[];let Pe;for(;ue+ve<=me;){if(N+=E,N=g)return null;ue+=ve,ie=ee,te=G;const rt={absOffsetX:me,direction:E,distanceFromAnchor:ue,previousVertex:ie};if(ee=Bt(N,w,rt),i===0)be.push(ie),Pe=ee.sub(ie);else{let Ge;const Xe=ee.sub(ie);Ge=Xe.mag()===0?ur(Bt(N+E,w,rt).sub(ee),i,E):ur(Xe,i,E),te||(te=ie.add(Ge)),G=rn(N,Ge,ee,d,g,te,i,w,rt),be.push(te),Pe=G.sub(te)}ve=Pe.mag()}const _e=Pe._mult((me-ue)/ve)._add(te||ie),Be=R+Math.atan2(ee.y-ie.y,ee.x-ie.x);return be.push(_e),{point:_e,angle:C?Be:0,path:be}}const _n=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function sn(h,e){for(let i=0;i=1;Jr--)Zt.push(tt.path[Jr]);for(let Jr=1;JrAn.signedDistanceFromCamera<=0))?[]:Jr.map((An=>An.point))}let gr=[];if(Zt.length>0){const Jr=Zt[0].clone(),An=Zt[0].clone();for(let Rn=1;Rn=rt.x&&An.x<=Ge.x&&Jr.y>=rt.y&&An.y<=Ge.y?[Zt]:An.xGe.x||An.yGe.y?[]:s.ay([Zt],rt.x,rt.y,Ge.x,Ge.y)}for(const Jr of gr){Xe.reset(Jr,.25*Be);let An=0;An=Xe.length<=.5*Be?1:Math.ceil(Xe.paddedLength/Tt)+1;for(let Rn=0;Rn{const C=dr(w.x,w.y,g,d.getElevation),P=d.transform.projectTileCoordinates(C.point.x,C.point.y,d.unwrappedTileID,d.getElevation);return P.point.x=(.5*P.point.x+.5)*d.width,P.point.y=(.5*-P.point.y+.5)*d.height,P}))})(e,i);return(function(u){let d=0,g=0,w=0,C=0;for(let P=0;Pg&&(g=C,d=w));return u.slice(d,d+g)})(l)}queryRenderedSymbols(e){if(e.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};const i=[],l=new s.a2;for(const R of e){const D=new s.P(R.x+pr,R.y+pr);l.extend(D),i.push(D)}const{minX:u,minY:d,maxX:g,maxY:w}=l,C=this.grid.query(u,d,g,w).concat(this.ignoredGrid.query(u,d,g,w)),P={},E={};for(const R of C){const D=R.key;if(P[D.bucketInstanceId]===void 0&&(P[D.bucketInstanceId]={}),P[D.bucketInstanceId][D.featureIndex])continue;const N=[new s.P(R.x1,R.y1),new s.P(R.x2,R.y1),new s.P(R.x2,R.y2),new s.P(R.x1,R.y2)];s.az(i,N)&&(P[D.bucketInstanceId][D.featureIndex]=!0,E[D.bucketInstanceId]===void 0&&(E[D.bucketInstanceId]=[]),E[D.bucketInstanceId].push(D.featureIndex))}return E}insertCollisionBox(e,i,l,u,d,g){(l?this.ignoredGrid:this.grid).insert({bucketInstanceId:u,featureIndex:d,collisionGroupID:g,overlapMode:i},e[0],e[1],e[2],e[3])}insertCollisionCircles(e,i,l,u,d,g){const w=l?this.ignoredGrid:this.grid,C={bucketInstanceId:u,featureIndex:d,collisionGroupID:g,overlapMode:i};for(let P=0;P=this.screenRightBoundary||uthis.screenBottomBoundary}isInsideGrid(e,i,l,u){return l>=0&&e=0&&ithis.projectAndGetPerspectiveRatio(Tt.x,Tt.y,u,P,R)));jt=Zt.some((Tt=>!Tt.isOccluded)),tt=Zt.map((Tt=>new s.P(Tt.x,Tt.y)))}else jt=!0;return{box:s.aA(tt),allPointsOccluded:!jt}}}class tn{constructor(e,i,l,u){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?i:-i))):u&&l?1:0,this.placed=l}isHidden(){return this.opacity===0&&!this.placed}}class en{constructor(e,i,l,u,d){this.text=new tn(e?e.text:null,i,l,d),this.icon=new tn(e?e.icon:null,i,u,d)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class ma{constructor(e,i,l){this.text=e,this.icon=i,this.skipFade=l}}class pi{constructor(e,i,l,u,d){this.bucketInstanceId=e,this.featureIndex=i,this.sourceLayerIndex=l,this.bucketIndex=u,this.tileID=d}}class Xi{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={}}get(e){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[e]){const i=++this.maxGroupID;this.collisionGroups[e]={ID:i,predicate:l=>l.collisionGroupID===i}}return this.collisionGroups[e]}}function Zn(h,e,i,l,u){const{horizontalAlign:d,verticalAlign:g}=s.aH(h);return new s.P(-(d-.5)*e+l[0]*u,-(g-.5)*i+l[1]*u)}class ni{constructor(e,i,l,u,d){this.transform=e.clone(),this.terrain=i,this.collisionIndex=new In(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=l,this.retainedQueryData={},this.collisionGroups=new Xi(u),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=d,d&&(d.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(e){const i=this.terrain;return i?(l,u)=>i.getElevation(e,l,u):null}getBucketParts(e,i,l,u){const d=l.getBucket(i),g=l.latestFeatureIndex;if(!d||!g||i.id!==d.layerIds[0])return;const w=l.collisionBoxArray,C=d.layers[0].layout,P=d.layers[0].paint,E=Math.pow(2,this.transform.zoom-l.tileID.overscaledZ),R=l.tileSize/s.$,D=l.tileID.toUnwrapped(),N=C.get("text-rotation-alignment")==="map",G=s.aC(l,1,this.transform.zoom),te=s.aD(this.collisionIndex.transform,l,P.get("text-translate"),P.get("text-translate-anchor")),ee=s.aD(this.collisionIndex.transform,l,P.get("icon-translate"),P.get("icon-translate-anchor")),ie=mn(N,this.transform,G);this.retainedQueryData[d.bucketInstanceId]=new pi(d.bucketInstanceId,g,d.sourceLayerIndex,d.index,l.tileID);const ue={bucket:d,layout:C,translationText:te,translationIcon:ee,unwrappedTileID:D,pitchedLabelPlaneMatrix:ie,scale:E,textPixelRatio:R,holdingForFade:l.holdingForFade(),collisionBoxArray:w,partiallyEvaluatedTextSize:s.an(d.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(d.sourceID)};if(u)for(const ve of d.sortKeyRanges){const{sortKey:me,symbolInstanceStart:be,symbolInstanceEnd:Pe}=ve;e.push({sortKey:me,symbolInstanceStart:be,symbolInstanceEnd:Pe,parameters:ue})}else e.push({symbolInstanceStart:0,symbolInstanceEnd:d.symbolInstances.length,parameters:ue})}attemptAnchorPlacement(e,i,l,u,d,g,w,C,P,E,R,D,N,G,te,ee,ie,ue,ve,me){const be=s.aE[e.textAnchor],Pe=[e.textOffset0,e.textOffset1],_e=Zn(be,l,u,Pe,d),Be=this.collisionIndex.placeCollisionBox(i,D,C,P,E,w,g,ee,R.predicate,ve,_e,me);if((!ue||this.collisionIndex.placeCollisionBox(ue,D,C,P,E,w,g,ie,R.predicate,ve,_e,me).placeable)&&Be.placeable){let rt;if(this.prevPlacement&&this.prevPlacement.variableOffsets[N.crossTileID]&&this.prevPlacement.placements[N.crossTileID]&&this.prevPlacement.placements[N.crossTileID].text&&(rt=this.prevPlacement.variableOffsets[N.crossTileID].anchor),N.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[N.crossTileID]={textOffset:Pe,width:l,height:u,anchor:be,textBoxScale:d,prevAnchor:rt},this.markUsedJustification(G,be,N,te),G.allowVerticalPlacement&&(this.markUsedOrientation(G,te,N),this.placedOrientations[N.crossTileID]=te),{shift:_e,placedGlyphBoxes:Be}}}placeLayerBucketPart(e,i,l){const{bucket:u,layout:d,translationText:g,translationIcon:w,unwrappedTileID:C,pitchedLabelPlaneMatrix:P,textPixelRatio:E,holdingForFade:R,collisionBoxArray:D,partiallyEvaluatedTextSize:N,collisionGroup:G}=e.parameters,te=d.get("text-optional"),ee=d.get("icon-optional"),ie=s.aF(d,"text-overlap","text-allow-overlap"),ue=ie==="always",ve=s.aF(d,"icon-overlap","icon-allow-overlap"),me=ve==="always",be=d.get("text-rotation-alignment")==="map",Pe=d.get("text-pitch-alignment")==="map",_e=d.get("icon-text-fit")!=="none",Be=d.get("symbol-z-order")==="viewport-y",rt=ue&&(me||!u.hasIconData()||ee),Ge=me&&(ue||!u.hasTextData()||te);!u.collisionArrays&&D&&u.deserializeCollisionBoxes(D);const Xe=this.retainedQueryData[u.bucketInstanceId].tileID,tt=this._getTerrainElevationFunc(Xe),jt=this.transform.getFastPathSimpleProjectionMatrix(Xe),Zt=(Tt,gr,Jr)=>{var An,Rn;if(i[Tt.crossTileID])return;if(R)return void(this.placements[Tt.crossTileID]=new ma(!1,!1,!1));let Ln=!1,Wn=!1,Jn=!0,Kr=null,Bn={box:null,placeable:!1,offscreen:null,occluded:!1},si={placeable:!1},mi=null,Ci=null,$i=null,za=0,go=0,vo=0;gr.textFeatureIndex?za=gr.textFeatureIndex:Tt.useRuntimeCollisionCircles&&(za=Tt.featureIndex),gr.verticalTextFeatureIndex&&(go=gr.verticalTextFeatureIndex);const fs=gr.textBox;if(fs){const ta=li=>{let _i=s.ao.horizontal;if(u.allowVerticalPlacement&&!li&&this.prevPlacement){const ba=this.prevPlacement.placedOrientations[Tt.crossTileID];ba&&(this.placedOrientations[Tt.crossTileID]=ba,_i=ba,this.markUsedOrientation(u,_i,Tt))}return _i},La=(li,_i)=>{if(u.allowVerticalPlacement&&Tt.numVerticalGlyphVertices>0&&gr.verticalTextBox){for(const ba of u.writingModes)if(ba===s.ao.vertical?(Bn=_i(),si=Bn):Bn=li(),Bn&&Bn.placeable)break}else Bn=li()},Gi=Tt.textAnchorOffsetStartIndex,yo=Tt.textAnchorOffsetEndIndex;if(yo===Gi){const li=(_i,ba)=>{const ci=this.collisionIndex.placeCollisionBox(_i,ie,E,Xe,C,Pe,be,g,G.predicate,tt,void 0,jt);return ci&&ci.placeable&&(this.markUsedOrientation(u,ba,Tt),this.placedOrientations[Tt.crossTileID]=ba),ci};La((()=>li(fs,s.ao.horizontal)),(()=>{const _i=gr.verticalTextBox;return u.allowVerticalPlacement&&Tt.numVerticalGlyphVertices>0&&_i?li(_i,s.ao.vertical):{box:null,offscreen:null}})),ta(Bn&&Bn.placeable)}else{let li=s.aE[(Rn=(An=this.prevPlacement)===null||An===void 0?void 0:An.variableOffsets[Tt.crossTileID])===null||Rn===void 0?void 0:Rn.anchor];const _i=(ci,Qs,_s)=>{const ro=ci.x2-ci.x1,Da=ci.y2-ci.y1,xo=Tt.textBoxScale,Cd=_e&&ve==="never"?Qs:null;let la=null,Sd=ie==="never"?1:2,_u="never";li&&Sd++;for(let Wl=0;Wl_i(fs,gr.iconBox,s.ao.horizontal)),(()=>{const ci=gr.verticalTextBox;return u.allowVerticalPlacement&&(!Bn||!Bn.placeable)&&Tt.numVerticalGlyphVertices>0&&ci?_i(ci,gr.verticalIconBox,s.ao.vertical):{box:null,occluded:!0,offscreen:null}})),Bn&&(Ln=Bn.placeable,Jn=Bn.offscreen);const ba=ta(Bn&&Bn.placeable);if(!Ln&&this.prevPlacement){const ci=this.prevPlacement.variableOffsets[Tt.crossTileID];ci&&(this.variableOffsets[Tt.crossTileID]=ci,this.markUsedJustification(u,ci.anchor,Tt,ba))}}}if(mi=Bn,Ln=mi&&mi.placeable,Jn=mi&&mi.offscreen,Tt.useRuntimeCollisionCircles){const ta=u.text.placedSymbolArray.get(Tt.centerJustifiedTextSymbolIndex),La=s.ap(u.textSizeData,N,ta),Gi=d.get("text-padding");Ci=this.collisionIndex.placeCollisionCircles(ie,ta,u.lineVertexArray,u.glyphOffsetArray,La,C,P,l,Pe,G.predicate,Tt.collisionCircleDiameter,Gi,g,tt),Ci.circles.length&&Ci.collisionDetected&&!l&&s.w("Collisions detected, but collision boxes are not shown"),Ln=ue||Ci.circles.length>0&&!Ci.collisionDetected,Jn=Jn&&Ci.offscreen}if(gr.iconFeatureIndex&&(vo=gr.iconFeatureIndex),gr.iconBox){const ta=La=>this.collisionIndex.placeCollisionBox(La,ve,E,Xe,C,Pe,be,w,G.predicate,tt,_e&&Kr?Kr:void 0,jt);si&&si.placeable&&gr.verticalIconBox?($i=ta(gr.verticalIconBox),Wn=$i.placeable):($i=ta(gr.iconBox),Wn=$i.placeable),Jn=Jn&&$i.offscreen}const ms=te||Tt.numHorizontalGlyphVertices===0&&Tt.numVerticalGlyphVertices===0,Vo=ee||Tt.numIconVertices===0;ms||Vo?Vo?ms||(Wn=Wn&&Ln):Ln=Wn&&Ln:Wn=Ln=Wn&&Ln;const qo=Wn&&$i.placeable;if(Ln&&mi.placeable&&this.collisionIndex.insertCollisionBox(mi.box,ie,d.get("text-ignore-placement"),u.bucketInstanceId,si&&si.placeable&&go?go:za,G.ID),qo&&this.collisionIndex.insertCollisionBox($i.box,ve,d.get("icon-ignore-placement"),u.bucketInstanceId,vo,G.ID),Ci&&Ln&&this.collisionIndex.insertCollisionCircles(Ci.circles,ie,d.get("text-ignore-placement"),u.bucketInstanceId,za,G.ID),l&&this.storeCollisionData(u.bucketInstanceId,Jr,gr,mi,$i,Ci),Tt.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");if(u.bucketInstanceId===0)throw new Error("bucket.bucketInstanceId can't be 0");this.placements[Tt.crossTileID]=new ma((Ln||rt)&&!(mi!=null&&mi.occluded),(Wn||Ge)&&!($i!=null&&$i.occluded),Jn||u.justReloaded),i[Tt.crossTileID]=!0};if(Be){if(e.symbolInstanceStart!==0)throw new Error("bucket.bucketInstanceId should be 0");const Tt=u.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let gr=Tt.length-1;gr>=0;--gr){const Jr=Tt[gr];Zt(u.symbolInstances.get(Jr),u.collisionArrays[Jr],Jr)}}else for(let Tt=e.symbolInstanceStart;Tt=0&&(e.text.placedSymbolArray.get(w).crossTileID=d>=0&&w!==d?0:l.crossTileID)}markUsedOrientation(e,i,l){const u=i===s.ao.horizontal||i===s.ao.horizontalOnly?i:0,d=i===s.ao.vertical?i:0,g=[l.leftJustifiedTextSymbolIndex,l.centerJustifiedTextSymbolIndex,l.rightJustifiedTextSymbolIndex];for(const w of g)e.text.placedSymbolArray.get(w).placedOrientation=u;l.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(l.verticalPlacedTextSymbolIndex).placedOrientation=d)}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;const i=this.prevPlacement;let l=!1;this.prevZoomAdjustment=i?i.zoomAdjustment(this.transform.zoom):0;const u=i?i.symbolFadeChange(e):1,d=i?i.opacities:{},g=i?i.variableOffsets:{},w=i?i.placedOrientations:{};for(const C in this.placements){const P=this.placements[C],E=d[C];E?(this.opacities[C]=new en(E,u,P.text,P.icon),l=l||P.text!==E.text.placed||P.icon!==E.icon.placed):(this.opacities[C]=new en(null,u,P.text,P.icon,P.skipFade),l=l||P.text||P.icon)}for(const C in d){const P=d[C];if(!this.opacities[C]){const E=new en(P,u,!1,!1);E.isHidden()||(this.opacities[C]=E,l=l||P.text.placed||P.icon.placed)}}for(const C in g)this.variableOffsets[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.variableOffsets[C]=g[C]);for(const C in w)this.placedOrientations[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.placedOrientations[C]=w[C]);if(i&&i.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");l?this.lastPlacementChangeTime=e:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=i?i.lastPlacementChangeTime:e)}updateLayerOpacities(e,i){const l={};for(const u of i){const d=u.getBucket(e);d&&u.latestFeatureIndex&&e.id===d.layerIds[0]&&this.updateBucketOpacities(d,u.tileID,l,u.collisionBoxArray)}}updateBucketOpacities(e,i,l,u){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=!1),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=!1),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();const d=e.layers[0],g=d.layout,w=new en(null,0,!1,!1,!0),C=g.get("text-allow-overlap"),P=g.get("icon-allow-overlap"),E=d._unevaluatedLayout.hasValue("text-variable-anchor")||d._unevaluatedLayout.hasValue("text-variable-anchor-offset"),R=g.get("text-rotation-alignment")==="map",D=g.get("text-pitch-alignment")==="map",N=g.get("icon-text-fit")!=="none",G=new en(null,0,C&&(P||!e.hasIconData()||g.get("icon-optional")),P&&(C||!e.hasTextData()||g.get("text-optional")),!0);!e.collisionArrays&&u&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(u);const te=(ie,ue,ve)=>{for(let me=0;me0,Be=this.placedOrientations[ue.crossTileID],rt=Be===s.ao.vertical,Ge=Be===s.ao.horizontal||Be===s.ao.horizontalOnly;if(ve>0||me>0){const tt=Xt(Pe.text);te(e.text,ve,rt?Br:tt),te(e.text,me,Ge?Br:tt);const jt=Pe.text.isHidden();[ue.rightJustifiedTextSymbolIndex,ue.centerJustifiedTextSymbolIndex,ue.leftJustifiedTextSymbolIndex].forEach((gr=>{gr>=0&&(e.text.placedSymbolArray.get(gr).hidden=jt||rt?1:0)})),ue.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(ue.verticalPlacedTextSymbolIndex).hidden=jt||Ge?1:0);const Zt=this.variableOffsets[ue.crossTileID];Zt&&this.markUsedJustification(e,Zt.anchor,ue,Be);const Tt=this.placedOrientations[ue.crossTileID];Tt&&(this.markUsedJustification(e,"left",ue,Tt),this.markUsedOrientation(e,Tt,ue))}if(_e){const tt=Xt(Pe.icon),jt=!(N&&ue.verticalPlacedIconSymbolIndex&&rt);ue.placedIconSymbolIndex>=0&&(te(e.icon,ue.numIconVertices,jt?tt:Br),e.icon.placedSymbolArray.get(ue.placedIconSymbolIndex).hidden=Pe.icon.isHidden()),ue.verticalPlacedIconSymbolIndex>=0&&(te(e.icon,ue.numVerticalIconVertices,jt?Br:tt),e.icon.placedSymbolArray.get(ue.verticalPlacedIconSymbolIndex).hidden=Pe.icon.isHidden())}const Xe=ee&&ee.has(ie)?ee.get(ie):{text:null,icon:null};if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){const tt=e.collisionArrays[ie];if(tt){let jt=new s.P(0,0);if(tt.textBox||tt.verticalTextBox){let Zt=!0;if(E){const Tt=this.variableOffsets[be];Tt?(jt=Zn(Tt.anchor,Tt.width,Tt.height,Tt.textOffset,Tt.textBoxScale),R&&jt._rotate(D?-this.transform.bearingInRadians:this.transform.bearingInRadians)):Zt=!1}if(tt.textBox||tt.verticalTextBox){let Tt;tt.textBox&&(Tt=rt),tt.verticalTextBox&&(Tt=Ge),Zi(e.textCollisionBox.collisionVertexArray,Pe.text.placed,!Zt||Tt,Xe.text,jt.x,jt.y)}}if(tt.iconBox||tt.verticalIconBox){const Zt=!!(!Ge&&tt.verticalIconBox);let Tt;tt.iconBox&&(Tt=Zt),tt.verticalIconBox&&(Tt=!Zt),Zi(e.iconCollisionBox.collisionVertexArray,Pe.icon.placed,Tt,Xe.icon,N?jt.x:0,N?jt.y:0)}}}}if(e.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);e.bucketInstanceId in this.collisionCircleArrays&&(e.collisionCircleArray=this.collisionCircleArrays[e.bucketInstanceId],delete this.collisionCircleArrays[e.bucketInstanceId])}symbolFadeChange(e){return this.fadeDuration===0?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTimee}setStale(){this.stale=!0}}function Zi(h,e,i,l,u,d){l&&l.length!==0||(l=[0,0,0,0]);const g=l[0]-pr,w=l[1]-pr,C=l[2]-pr,P=l[3]-pr;h.emplaceBack(e?1:0,i?1:0,u||0,d||0,g,w),h.emplaceBack(e?1:0,i?1:0,u||0,d||0,C,w),h.emplaceBack(e?1:0,i?1:0,u||0,d||0,C,P),h.emplaceBack(e?1:0,i?1:0,u||0,d||0,g,P)}const Yi=Math.pow(2,25),Ei=Math.pow(2,24),zi=Math.pow(2,17),Ki=Math.pow(2,16),oa=Math.pow(2,9),Ta=Math.pow(2,8),bt=Math.pow(2,1);function Xt(h){if(h.opacity===0&&!h.placed)return 0;if(h.opacity===1&&h.placed)return 4294967295;const e=h.placed?1:0,i=Math.floor(127*h.opacity);return i*Yi+e*Ei+i*zi+e*Ki+i*oa+e*Ta+i*bt+e}const Br=0;class yn{constructor(e){this._sortAcrossTiles=e.layout.get("symbol-z-order")!=="viewport-y"&&!e.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(e,i,l,u,d){const g=this._bucketParts;for(;this._currentTileIndexw.sortKey-C.sortKey)));this._currentPartIndex!this._forceFullPlacement&&ne.now()-u>2;for(;this._currentPlacementIndex>=0;){const g=i[e[this._currentPlacementIndex]],w=this.placement.collisionIndex.transform.zoom;if(g.type==="symbol"&&(!g.minzoom||g.minzoom<=w)&&(!g.maxzoom||g.maxzoom>w)){if(this._inProgressLayer||(this._inProgressLayer=new yn(g)),this._inProgressLayer.continuePlacement(l[g.source],this.placement,this._showCollisionBoxes,g,d))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(e){return this.placement.commit(e),this.placement}}const Yn=512/s.$/2;class Vn{constructor(e,i,l){this.tileID=e,this.bucketInstanceId=l,this._symbolsByKey={};const u=new Map;for(let d=0;d({x:Math.floor(C.anchorX*Yn),y:Math.floor(C.anchorY*Yn)}))),crossTileIDs:g.map((C=>C.crossTileID))};if(w.positions.length>128){const C=new s.aI(w.positions.length,16,Uint16Array);for(const{x:P,y:E}of w.positions)C.add(P,E);C.finish(),delete w.positions,w.index=C}this._symbolsByKey[d]=w}}getScaledCoordinates(e,i){const{x:l,y:u,z:d}=this.tileID.canonical,{x:g,y:w,z:C}=i.canonical,P=Yn/Math.pow(2,C-d),E=(w*s.$+e.anchorY)*P,R=u*s.$*Yn;return{x:Math.floor((g*s.$+e.anchorX)*P-l*s.$*Yn),y:Math.floor(E-R)}}findMatches(e,i,l){const u=this.tileID.canonical.ze))}}class wn{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Ji{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(e){const i=Math.round((e-this.lng)/360);if(i!==0)for(const l in this.indexes){const u=this.indexes[l],d={};for(const g in u){const w=u[g];w.tileID=w.tileID.unwrapTo(w.tileID.wrap+i),d[w.tileID.key]=w}this.indexes[l]=d}this.lng=e}addBucket(e,i,l){if(this.indexes[e.overscaledZ]&&this.indexes[e.overscaledZ][e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===i.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key])}for(let d=0;de.overscaledZ)for(const w in g){const C=g[w];C.tileID.isChildOf(e)&&C.findMatches(i.symbolInstances,e,u)}else{const w=g[e.scaledTo(Number(d)).key];w&&w.findMatches(i.symbolInstances,e,u)}}for(let d=0;d{i[l]=!0}));for(const l in this.layerIndexes)i[l]||delete this.layerIndexes[l]}}var $t="void main() {fragColor=vec4(1.0);}";const Ur={prelude:or(`#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 +out highp vec4 fragColor;`,`#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;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c +);} +#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(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); +#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=(texture(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 +#ifdef GLOBE +if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;} +#endif +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 +}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`),projectionMercator:or("","float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}"),projectionGlobe:or("",`#define GLOBE_RADIUS 6371008.8 +uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos +);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY); +if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len +);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:or(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),backgroundPattern:or(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,"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;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:or(`in vec3 v_data;in 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);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;} +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out 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 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) { +#ifdef GLOBE +vec3 center_vector=projectToSphere(circle_center); +#endif +float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else { +#ifdef GLOBE +vec4 projected_center=interpolateProjection(circle_center,center_vector,ele); +#else +vec4 projected_center=projectTileWithElevation(circle_center,ele); +#endif +corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);} +#ifdef GLOBE +vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele); +#else +gl_Position=projectTileWithElevation(corner_position,ele); +#endif +} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:or($t,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),heatmap:or(`uniform highp float u_intensity;in 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);fragColor=vec4(val,1.0,1.0,1.0); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out 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 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0); +#ifdef GLOBE +vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0); +#else +gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center)); +#endif +}`),heatmapTexture:or(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(0.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out 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:or("in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}","in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:or("in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}","in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),colorRelief:or(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else +{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0)); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,"uniform vec2 u_dimension;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),debug:or("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}","in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}"),depth:or($t,`in vec2 a_pos;void main() { +#ifdef GLOBE +gl_Position=projectTileFor3D(a_pos,0.0); +#else +gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0); +#endif +}`),fill:or(`#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 +fragColor=color*opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform vec2 u_fill_translate;in vec2 a_pos; +#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=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:or(`in vec2 v_pos; +#ifdef GLOBE +in float v_depth; +#endif +#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);fragColor=outline_color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos; +#ifdef GLOBE +out float v_depth; +#endif +#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=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +}`),fillOutlinePattern:or(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos; +#ifdef GLOBE +in float v_depth; +#endif +#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity; +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos; +#ifdef GLOBE +out float v_depth; +#endif +#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=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +}`),fillPattern:or(`#ifdef GL_ES +precision highp float; +#endif +uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in 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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out 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=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:or(`in vec4 v_color;void main() {fragColor=v_color; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed; +#ifdef TERRAIN3D +in vec2 a_centroid; +#endif +out 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);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; +#ifdef GLOBE +vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); +#else +gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); +#endif +float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0); +#ifdef GLOBE +mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition); +#endif +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:or(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting; +#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed; +#ifdef TERRAIN3D +in vec2 a_centroid; +#endif +#ifdef GLOBE +out vec3 v_sphere_pos; +#endif +out vec2 v_pos_a;out vec2 v_pos_b;out 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 elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; +#ifdef GLOBE +vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); +#else +gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); +#endif +vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 +? a_pos +: vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.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:or(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;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))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:or(`uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES]; +#define PI 3.141592653589793 +#define STANDARD 0 +#define COMBINED 1 +#define IGOR 2 +#define MULTIDIRECTIONAL 3 +#define BASIC 4 +float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else +{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else +{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);} +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),line:or(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale; +#ifdef GLOBE +in float v_depth; +#endif +#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);fragColor=color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}`),lineGradient:or(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv; +#ifdef GLOBE +in float v_depth; +#endif +#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=texture(u_image,v_uv);fragColor=color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}`),linePattern:or(`#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;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width; +#ifdef GLOBE +in float v_depth; +#endif +#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(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity; +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:or(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale; +#ifdef GLOBE +in float v_depth; +#endif +#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=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity); +#ifdef GLOBE +if (v_depth > 1.0) {discard;} +#endif +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;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;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale; +#ifdef GLOBE +out float v_depth; +#endif +#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; +#ifdef GLOBE +v_depth=gl_Position.z/gl_Position.w; +#endif +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#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:or(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in 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=texture(u_image0,v_pos0);vec4 color1=texture(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);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5; +#ifdef GLOBE +if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;} +#endif +v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),symbolIcon:or(`uniform sampler2D u_texture;in vec2 v_tex;in 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;fragColor=texture(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; +#ifdef GLOBE +if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} +#endif +vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;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:or(`#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;in vec2 v_data0;in 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=texture(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);}fragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform 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_translation;uniform float u_pitched_scale;out vec2 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; +#ifdef GLOBE +if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} +#endif +vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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:or(`#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;in vec4 v_data0;in 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;fragColor=texture(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +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=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +fragColor=vec4(1.0); +#endif +}`,`in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in 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_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;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; +#ifdef GLOBE +if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} +#endif +vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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:or("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}","in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"),terrainDepth:or("in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}","in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}"),terrainCoords:or("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}","in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}"),projectionErrorMeasurement:or("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}","in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"),atmosphere:or(`in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758 +);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,"in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}"),sky:or("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}","in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}")};function or(h,e){const i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,l=e.match(/in ([\w]+) ([\w]+)/g),u=h.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),d=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),g=d?d.concat(u):u,w={};return{fragmentSource:h=h.replace(i,((C,P,E,R,D)=>(w[D]=!0,P==="define"?` +#ifndef HAS_UNIFORM_u_${D} +in ${E} ${R} ${D}; +#else +uniform ${E} ${R} u_${D}; +#endif +`:` +#ifdef HAS_UNIFORM_u_${D} + ${E} ${R} ${D} = u_${D}; +#endif +`))),vertexSource:e=e.replace(i,((C,P,E,R,D)=>{const N=R==="float"?"vec2":"vec4",G=D.match(/color/)?"color":N;return w[D]?P==="define"?` +#ifndef HAS_UNIFORM_u_${D} +uniform lowp float u_${D}_t; +in ${E} ${N} a_${D}; +out ${E} ${R} ${D}; +#else +uniform ${E} ${R} u_${D}; +#endif +`:G==="vec4"?` +#ifndef HAS_UNIFORM_u_${D} + ${D} = a_${D}; +#else + ${E} ${R} ${D} = u_${D}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${D} + ${D} = unpack_mix_${G}(a_${D}, u_${D}_t); +#else + ${E} ${R} ${D} = u_${D}; +#endif +`:P==="define"?` +#ifndef HAS_UNIFORM_u_${D} +uniform lowp float u_${D}_t; +in ${E} ${N} a_${D}; +#else +uniform ${E} ${R} u_${D}; +#endif +`:G==="vec4"?` +#ifndef HAS_UNIFORM_u_${D} + ${E} ${R} ${D} = a_${D}; +#else + ${E} ${R} ${D} = u_${D}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${D} + ${E} ${R} ${D} = unpack_mix_${G}(a_${D}, u_${D}_t); +#else + ${E} ${R} ${D} = u_${D}; +#endif +`})),staticAttributes:l,staticUniforms:g}}class Tn{constructor(e,i,l){this.vertexBuffer=e,this.indexBuffer=i,this.segments=l}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}var nn=s.aJ([{name:"a_pos",type:"Int16",components:2}]);const Cn="#define PROJECTION_MERCATOR",Gn="mercator";class Mr{constructor(){this._cachedMesh=null}get name(){return"mercator"}get useSubdivision(){return!1}get shaderVariantName(){return Gn}get shaderDefine(){return Cn}get shaderPreludeCode(){return Ur.projectionMercator}get vertexShaderPreludeCode(){return Ur.projectionMercator.vertexSource}get subdivisionGranularity(){return s.aK.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}get latitudeErrorCorrectionRadians(){return 0}destroy(){}updateGPUdependent(e){}getMeshFromTileID(e,i,l,u,d){if(this._cachedMesh)return this._cachedMesh;const g=new s.aL;g.emplaceBack(0,0),g.emplaceBack(s.$,0),g.emplaceBack(0,s.$),g.emplaceBack(s.$,s.$);const w=e.createVertexBuffer(g,nn.members),C=s.aM.simpleSegment(0,0,4,2),P=new s.aN;P.emplaceBack(1,0,2),P.emplaceBack(1,2,3);const E=e.createIndexBuffer(P);return this._cachedMesh=new Tn(w,E,C),this._cachedMesh}recalculate(){}hasTransition(){return!1}setErrorQueryLatitudeDegrees(e){}}class Mn{constructor(e=0,i=0,l=0,u=0){if(isNaN(e)||e<0||isNaN(i)||i<0||isNaN(l)||l<0||isNaN(u)||u<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=e,this.bottom=i,this.left=l,this.right=u}interpolate(e,i,l){return i.top!=null&&e.top!=null&&(this.top=s.C.number(e.top,i.top,l)),i.bottom!=null&&e.bottom!=null&&(this.bottom=s.C.number(e.bottom,i.bottom,l)),i.left!=null&&e.left!=null&&(this.left=s.C.number(e.left,i.left,l)),i.right!=null&&e.right!=null&&(this.right=s.C.number(e.right,i.right,l)),this}getCenter(e,i){const l=s.ah((this.left+e-this.right)/2,0,e),u=s.ah((this.top+i-this.bottom)/2,0,i);return new s.P(l,u)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new Mn(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function bn(h,e){if(!h.renderWorldCopies||h.lngRange)return;const i=e.lng-h.center.lng;e.lng+=i>180?-360:i<-180?360:0}function ln(h){return Math.max(0,Math.floor(h))}class Sn{constructor(e,i,l,u,d,g){this._callbacks=e,this._tileSize=512,this._renderWorldCopies=g===void 0||!!g,this._minZoom=i||0,this._maxZoom=l||22,this._minPitch=u??0,this._maxPitch=d??60,this.setMaxBounds(),this._width=0,this._height=0,this._center=new s.S(0,0),this._elevation=0,this._zoom=0,this._tileZoom=ln(this._zoom),this._scale=s.af(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new Mn,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(e,i,l){this._latRange=e.latRange,this._lngRange=e.lngRange,this._width=e.width,this._height=e.height,this._center=e.center,this._elevation=e.elevation,this._minElevationForCurrentTile=e.minElevationForCurrentTile,this._zoom=e.zoom,this._tileZoom=ln(this._zoom),this._scale=s.af(this._zoom),this._bearingInRadians=e.bearingInRadians,this._fovInRadians=e.fovInRadians,this._pitchInRadians=e.pitchInRadians,this._rollInRadians=e.rollInRadians,this._unmodified=e.unmodified,this._edgeInsets=new Mn(e.padding.top,e.padding.bottom,e.padding.left,e.padding.right),this._minZoom=e.minZoom,this._maxZoom=e.maxZoom,this._minPitch=e.minPitch,this._maxPitch=e.maxPitch,this._renderWorldCopies=e.renderWorldCopies,this._cameraToCenterDistance=e.cameraToCenterDistance,this._nearZ=e.nearZ,this._farZ=e.farZ,this._autoCalculateNearFarZ=!l&&e.autoCalculateNearFarZ,i&&this._constrain(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(e){this._minElevationForCurrentTile=e}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(e){this._minZoom!==e&&(this._minZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get maxZoom(){return this._maxZoom}setMaxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get minPitch(){return this._minPitch}setMinPitch(e){this._minPitch!==e&&(this._minPitch=e,this.setPitch(Math.max(this.pitch,e)))}get maxPitch(){return this._maxPitch}setMaxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.setPitch(Math.min(this.pitch,e)))}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(e){e===void 0?e=!0:e===null&&(e=!1),this._renderWorldCopies=e}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.P(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(e){const i=s.aO(e,-180,180)*Math.PI/180;var l,u,d,g,w,C,P,E,R;this._bearingInRadians!==i&&(this._unmodified=!1,this._bearingInRadians=i,this._calcMatrices(),this._rotationMatrix=O(),l=this._rotationMatrix,d=-this._bearingInRadians,g=(u=this._rotationMatrix)[0],w=u[1],C=u[2],P=u[3],E=Math.sin(d),R=Math.cos(d),l[0]=g*R+C*E,l[1]=w*R+P*E,l[2]=g*-E+C*R,l[3]=w*-E+P*R)}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(e){const i=s.ah(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==i&&(this._unmodified=!1,this._pitchInRadians=i,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(e){const i=e/180*Math.PI;this._rollInRadians!==i&&(this._unmodified=!1,this._rollInRadians=i,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return s.aP(this._fovInRadians)}setFov(e){e=s.ah(e,.1,150),this.fov!==e&&(this._unmodified=!1,this._fovInRadians=s.ae(e),this._calcMatrices())}get zoom(){return this._zoom}setZoom(e){const i=this.getConstrained(this._center,e).zoom;this._zoom!==i&&(this._unmodified=!1,this._zoom=i,this._tileZoom=Math.max(0,Math.floor(i)),this._scale=s.af(i),this._constrain(),this._calcMatrices())}get center(){return this._center}setCenter(e){e.lat===this._center.lat&&e.lng===this._center.lng||(this._unmodified=!1,this._center=e,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(e){e!==this._elevation&&(this._elevation=e,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(e){this._edgeInsets.equals(e)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,e,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(e,i){this._autoCalculateNearFarZ=!1,this._nearZ=e,this._farZ=i,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,i,l){this._unmodified=!1,this._edgeInsets.interpolate(e,i,l),this._constrain(),this._calcMatrices()}resize(e,i,l=!0){this._width=e,this._height=i,l&&this._constrain(),this._calcMatrices()}getMaxBounds(){return this._latRange&&this._latRange.length===2&&this._lngRange&&this._lngRange.length===2?new _t([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]]):null}setMaxBounds(e){e?(this._lngRange=[e.getWest(),e.getEast()],this._latRange=[e.getSouth(),e.getNorth()],this._constrain()):(this._lngRange=null,this._latRange=[-s.ai,s.ai])}getConstrained(e,i){return this._callbacks.getConstrained(e,i)}getCameraQueryGeometry(e,i){if(i.length===1)return[i[0],e];{const{minX:l,minY:u,maxX:d,maxY:g}=s.a2.fromPoints(i).extend(e);return[new s.P(l,u),new s.P(d,u),new s.P(d,g),new s.P(l,g),new s.P(l,u)]}}_constrain(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;const e=this._unmodified,{center:i,zoom:l}=this.getConstrained(this.center,this.zoom);this.setCenter(i),this.setZoom(l),this._unmodified=e,this._constraining=!1}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let e=s.ag(new Float64Array(16));s.N(e,e,[this._width/2,-this._height/2,1]),s.M(e,e,[1,-1,0]),this._clipSpaceToPixelsMatrix=e,e=s.ag(new Float64Array(16)),s.N(e,e,[1,-1,1]),s.M(e,e,[-1,-1,0]),s.N(e,e,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=e,this._cameraToCenterDistance=.5/Math.tan(this.fovInRadians/2)*this._height}this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(e,i,l,u){const d=l!==void 0?l:this.bearing,g=u=u!==void 0?u:this.pitch,w=s.a1.fromLngLat(e,i),C=-Math.cos(s.ae(g)),P=Math.sin(s.ae(g)),E=P*Math.sin(s.ae(d)),R=-P*Math.cos(s.ae(d));let D=this.elevation;const N=i-D;let G;C*N>=0||Math.abs(C)<.1?(G=1e4,D=i+G*C):G=-N/C;let te,ee,ie=s.aQ(1,w.y),ue=0;do{if(ue+=1,ue>10)break;ee=G/ie,te=new s.a1(w.x+E*ee,w.y+R*ee),ie=1/te.meterInMercatorCoordinateUnits()}while(Math.abs(G-ee*ie)>1e-12);return{center:te.toLngLat(),elevation:D,zoom:s.ak(this.height/2/Math.tan(this.fovInRadians/2)/ee/this.tileSize)}}recalculateZoomAndCenter(e){if(this.elevation-e==0)return;const i=s.aj(1,this.center.lat)*this.worldSize,l=this.cameraToCenterDistance/i,u=s.a1.fromLngLat(this.center,this.elevation),d=ke(this.center,this.elevation,this.pitch,this.bearing,l);this._elevation=e;const g=this.calculateCenterFromCameraLngLatAlt(d.toLngLat(),s.aQ(d.z,u.y),this.bearing,this.pitch);this._elevation=g.elevation,this._center=g.center,this.setZoom(g.zoom)}getCameraPoint(){const e=Math.tan(this.pitchInRadians)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.P(e*Math.sin(this.rollInRadians),e*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){const e=s.aj(1,this.center.lat)*this.worldSize;return ke(this.center,this.elevation,this.pitch,this.bearing,this.cameraToCenterDistance/e).toLngLat()}getMercatorTileCoordinates(e){if(!e)return[0,0,1,1];const i=e.canonical.z>=0?1<this.max[0]||e.aabb.min[1]>this.max[1]||e.aabb.min[2]>this.max[2]||e.aabb.max[0]0?(i+=e[u]*this.min[u],l+=e[u]*this.max[u]):(l+=e[u]*this.min[u],i+=e[u]*this.max[u]);return i>=0?2:l<0?0:1}}class gn{distanceToTile2d(e,i,l,u){const d=u.distanceX([e,i]),g=u.distanceY([e,i]);return Math.hypot(d,g)}getWrap(e,i,l){return l}getTileBoundingVolume(e,i,l,u){var d,g;let w=0,C=0;if(u!=null&&u.terrain){const E=new s.Z(e.z,i,e.z,e.x,e.y),R=u.terrain.getMinMaxElevation(E);w=(d=R.minElevation)!==null&&d!==void 0?d:Math.min(0,l),C=(g=R.maxElevation)!==null&&g!==void 0?g:Math.max(0,l)}const P=1<u}allowWorldCopies(){return!0}prepareNextFrame(){}}class fn{constructor(e,i,l){this.points=e,this.planes=i,this.aabb=l}static fromInvProjectionMatrix(e,i=1,l=0,u,d){const g=d?[[6,5,4],[0,1,2],[0,3,7],[2,1,5],[3,2,6],[0,4,5]]:[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]],w=Math.pow(2,l),C=[[-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((D=>(function(N,G,te,ee){const ie=s.aw([],N,G),ue=1/ie[3]/te*ee;return s.aY(ie,ie,[ue,ue,1/ie[3],ue])})(D,e,i,w)));u&&(function(D,N,G,te){const ee=te?4:0,ie=te?0:4;let ue=0;const ve=[],me=[];for(let _e=0;_e<4;_e++){const Be=s.aU([],D[_e+ie],D[_e+ee]),rt=s.aZ(Be);s.aR(Be,Be,1/rt),ve.push(rt),me.push(Be)}for(let _e=0;_e<4;_e++){const Be=s.a_(D[_e+ee],me[_e],G);ue=Be!==null&&Be>=0?Math.max(ue,Be):Math.max(ue,ve[_e])}const be=(function(_e,Be){const rt=s.aU([],_e[Be[0]],_e[Be[1]]),Ge=s.aU([],_e[Be[2]],_e[Be[1]]),Xe=[0,0,0,0];return s.aV(Xe,s.aW([],rt,Ge)),Xe[3]=-s.aX(Xe,_e[Be[0]]),Xe})(D,N),Pe=(function(_e,Be){const rt=s.a$(_e),Ge=s.b0([],_e,1/rt),Xe=s.aU([],Be,s.aR([],Ge,s.aX(Be,Ge))),tt=s.a$(Xe);if(tt>0){const jt=Math.sqrt(1-Ge[3]*Ge[3]),Zt=s.aR([],Ge,-Ge[3]),Tt=s.aS([],Zt,s.aR([],Xe,jt/tt));return s.b1(Be,Tt)}return null})(G,be);if(Pe!==null){const _e=Pe/s.aX(me[0],be);ue=Math.min(ue,_e)}for(let _e=0;_e<4;_e++){const Be=Math.min(ue,ve[_e]);D[_e+ie]=[D[_e+ee][0]+me[_e][0]*Be,D[_e+ee][1]+me[_e][1]*Be,D[_e+ee][2]+me[_e][2]*Be,1]}})(C,g[0],u,d);const P=g.map((D=>{const N=s.aU([],C[D[0]],C[D[1]]),G=s.aU([],C[D[2]],C[D[1]]),te=s.aV([],s.aW([],N,G)),ee=-s.aX(te,C[D[1]]);return te.concat(ee)})),E=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY],R=[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];for(const D of C)for(let N=0;N<3;N++)E[N]=Math.min(E[N],D[N]),R[N]=Math.max(R[N],D[N]);return new fn(C,P,new kn(E,R))}}class an{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,i,l){return this._helper.interpolatePadding(e,i,l)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,i,l=!0){this._helper.resize(e,i,l)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,i){this._helper.overrideNearFarZ(e,i)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e,i){}constructor(e,i,l,u,d){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this._helper=new Sn({calcMatrices:()=>{this._calcMatrices()},getConstrained:(g,w)=>this.getConstrained(g,w)},e,i,l,u,d),this._coveringTilesDetailsProvider=new gn}clone(){const e=new an;return e.apply(this),e}apply(e,i,l){this._helper.apply(e,i,l)}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(e){const i=[new s.b2(0,e)];if(this._helper._renderWorldCopies){const l=this.screenPointToMercatorCoordinate(new s.P(0,0)),u=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,0)),d=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,this._helper._height)),g=this.screenPointToMercatorCoordinate(new s.P(0,this._helper._height)),w=Math.floor(Math.min(l.x,u.x,d.x,g.x)),C=Math.floor(Math.max(l.x,u.x,d.x,g.x)),P=1;for(let E=w-P;E<=C+P;E++)E!==0&&i.push(new s.b2(E,e))}return i}getCameraFrustum(){return fn.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){const i=this.screenPointToLocation(this.centerPoint,e),l=e?e.getElevationForLngLatZoom(i,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(l)}setLocationAtPoint(e,i){const l=s.aj(this.elevation,this.center.lat),u=this.screenPointToMercatorCoordinateAtZ(i,l),d=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,l),g=s.a1.fromLngLat(e),w=new s.a1(g.x-(u.x-d.x),g.y-(u.y-d.y));this.setCenter(w==null?void 0:w.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(e,i){return i?this.coordinatePoint(s.a1.fromLngLat(e),i.getElevationForLngLatZoom(e,this._helper._tileZoom),this._pixelMatrix3D):this.coordinatePoint(s.a1.fromLngLat(e))}screenPointToLocation(e,i){var l;return(l=this.screenPointToMercatorCoordinate(e,i))===null||l===void 0?void 0:l.toLngLat()}screenPointToMercatorCoordinate(e,i){if(i){const l=i.pointCoordinate(e);if(l!=null)return l}return this.screenPointToMercatorCoordinateAtZ(e)}screenPointToMercatorCoordinateAtZ(e,i){const l=i||0,u=[e.x,e.y,0,1],d=[e.x,e.y,1,1];s.aw(u,u,this._pixelMatrixInverse),s.aw(d,d,this._pixelMatrixInverse);const g=u[3],w=d[3],C=u[1]/g,P=d[1]/w,E=u[2]/g,R=d[2]/w,D=E===R?0:(l-E)/(R-E);return new s.a1(s.C.number(u[0]/g,d[0]/w,D)/this.worldSize,s.C.number(C,P,D)/this.worldSize,l)}coordinatePoint(e,i=0,l=this._pixelMatrix){const u=[e.x*this.worldSize,e.y*this.worldSize,i,1];return s.aw(u,u,l),new s.P(u[0]/u[3],u[1]/u[3])}getBounds(){const e=Math.max(0,this._helper._height/2-fe(this));return new _t().extend(this.screenPointToLocation(new s.P(0,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new s.P(0,this._helper._height)))}isPointOnMapSurface(e,i){return i?i.pointCoordinate(e)!=null:e.y>this.height/2-fe(this)}calculatePosMatrix(e,i=!1,l){var u;const d=(u=e.key)!==null&&u!==void 0?u:s.b3(e.wrap,e.canonical.z,e.canonical.z,e.canonical.x,e.canonical.y),g=i?this._alignedPosMatrixCache:this._posMatrixCache;if(g.has(d)){const P=g.get(d);return l?P.f32:P.f64}const w=Se(e,this.worldSize);s.O(w,i?this._alignedProjMatrix:this._viewProjMatrix,w);const C={f64:w,f32:new Float32Array(w)};return g.set(d,C),l?C.f32:C.f64}calculateFogMatrix(e){const i=e.key,l=this._fogMatrixCacheF32;if(l.has(i))return l.get(i);const u=Se(e,this.worldSize);return s.O(u,this._fogMatrix,u),l.set(i,new Float32Array(u)),l.get(i)}getConstrained(e,i){i=s.ah(+i,this.minZoom,this.maxZoom);const l={center:new s.S(e.lng,e.lat),zoom:i};let u=this._helper._lngRange;if(!this._helper._renderWorldCopies&&u===null){const ve=179.9999999999;u=[-ve,ve]}const d=this.tileSize*s.af(l.zoom);let g=0,w=d,C=0,P=d,E=0,R=0;const{x:D,y:N}=this.size;if(this._helper._latRange){const ve=this._helper._latRange;g=s.U(ve[1])*d,w=s.U(ve[0])*d,w-gw&&(ie=w-ve)}if(u){const ve=(C+P)/2;let me=G;this._helper._renderWorldCopies&&(me=s.aO(G,ve-d/2,ve+d/2));const be=D/2;me-beP&&(ee=P-be)}if(ee!==void 0||ie!==void 0){const ve=new s.P(ee??G,ie??te);l.center=ae(d,ve).wrap()}return l}calculateCenterFromCameraLngLatAlt(e,i,l,u){return this._helper.calculateCenterFromCameraLngLatAlt(e,i,l,u)}_calculateNearFarZIfNeeded(e,i,l){if(!this._helper.autoCalculateNearFarZ)return;const u=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),d=e-u*this._helper._pixelPerMeter/Math.cos(i),g=u<0?d:e,w=Math.PI/2+this.pitchInRadians,C=s.ae(this.fov)*(Math.abs(Math.cos(s.ae(this.roll)))*this.height+Math.abs(Math.sin(s.ae(this.roll)))*this.width)/this.height*(.5+l.y/this.height),P=Math.sin(C)*g/Math.sin(s.ah(Math.PI-w-C,.01,Math.PI-.01)),E=fe(this),R=Math.atan(E/this._helper.cameraToCenterDistance),D=s.ae(.75),N=R>D?2*R*(.5+l.y/(2*E)):D,G=Math.sin(N)*g/Math.sin(s.ah(Math.PI-w-N,.01,Math.PI-.01)),te=Math.min(P,G);this._helper._farZ=1.01*(Math.cos(Math.PI/2-i)*te+g),this._helper._nearZ=this._helper._height/50}_calcMatrices(){if(!this._helper._height)return;const e=this.centerOffset,i=Y(this.worldSize,this.center),l=i.x,u=i.y;this._helper._pixelPerMeter=s.aj(1,this.center.lat)*this.worldSize;const d=s.ae(Math.min(this.pitch,Z)),g=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(d));let w;this._calculateNearFarZIfNeeded(g,d,e),w=new Float64Array(16),s.b4(w,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),s.aq(this._invProjMatrix,w),w[8]=2*-e.x/this._helper._width,w[9]=2*e.y/this._helper._height,this._projectionMatrix=s.b5(w),s.N(w,w,[1,-1,1]),s.M(w,w,[0,0,-this._helper.cameraToCenterDistance]),s.b6(w,w,-this.rollInRadians),s.b7(w,w,this.pitchInRadians),s.b6(w,w,-this.bearingInRadians),s.M(w,w,[-l,-u,0]),this._mercatorMatrix=s.N([],w,[this.worldSize,this.worldSize,this.worldSize]),s.N(w,w,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=s.O(new Float64Array(16),this.clipSpaceToPixelsMatrix,w),s.M(w,w,[0,0,-this.elevation]),this._viewProjMatrix=w,this._invViewProjMatrix=s.aq([],w);const C=[0,0,-1,1];s.aw(C,C,this._invViewProjMatrix),this._cameraPosition=[C[0]/C[3],C[1]/C[3],C[2]/C[3]],this._fogMatrix=new Float64Array(16),s.b4(this._fogMatrix,this.fovInRadians,this.width/this.height,g,this._helper._farZ),this._fogMatrix[8]=2*-e.x/this.width,this._fogMatrix[9]=2*e.y/this.height,s.N(this._fogMatrix,this._fogMatrix,[1,-1,1]),s.M(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),s.b6(this._fogMatrix,this._fogMatrix,-this.rollInRadians),s.b7(this._fogMatrix,this._fogMatrix,this.pitchInRadians),s.b6(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),s.M(this._fogMatrix,this._fogMatrix,[-l,-u,0]),s.N(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),s.M(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=s.O(new Float64Array(16),this.clipSpaceToPixelsMatrix,w);const P=this._helper._width%2/2,E=this._helper._height%2/2,R=Math.cos(this.bearingInRadians),D=Math.sin(-this.bearingInRadians),N=l-Math.round(l)+R*P+D*E,G=u-Math.round(u)+R*E+D*P,te=new Float64Array(w);if(s.M(te,te,[N>.5?N-1:N,G>.5?G-1:G,0]),this._alignedProjMatrix=te,w=s.aq(new Float64Array(16),this._pixelMatrix),!w)throw new Error("failed to invert matrix");this._pixelMatrixInverse=w,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;const e=this.screenPointToMercatorCoordinate(new s.P(0,0)),i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return s.aw(i,i,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){const e=s.aj(1,this.center.lat)*this.worldSize;return ke(this.center,this.elevation,this.pitch,this.bearing,this._helper.cameraToCenterDistance/e).toLngLat()}lngLatToCameraDepth(e,i){const l=s.a1.fromLngLat(e),u=[l.x*this.worldSize,l.y*this.worldSize,i,1];return s.aw(u,u,this._viewProjMatrix),u[2]/u[3]}getProjectionData(e){const{overscaledTileID:i,aligned:l,applyTerrainMatrix:u}=e,d=this._helper.getMercatorTileCoordinates(i),g=i?this.calculatePosMatrix(i,l,!0):null;let w;return w=i&&i.terrainRttPosMatrix32f&&u?i.terrainRttPosMatrix32f:g||s.b8(),{mainMatrix:w,tileMercatorCoords:d,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:w}}isLocationOccluded(e){return!1}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(e,i,l){return 1}transformLightDirection(e){return s.aT(e)}getRayDirectionFromPixel(e){throw new Error("Not implemented.")}projectTileCoordinates(e,i,l,u){const d=this.calculatePosMatrix(l);let g;u?(g=[e,i,u(e,i),1],s.aw(g,g,d)):(g=[e,i,0,1],En(g,g,d));const w=g[3];return{point:new s.P(g[0]/w,g[1]/w),signedDistanceFromCamera:w,isOccluded:!1}}populateCache(e){for(const i of e)this.calculatePosMatrix(i)}getMatrixForModel(e,i){const l=s.a1.fromLngLat(e,i),u=l.meterInMercatorCoordinateUnits(),d=s.b9();return s.M(d,d,[l.x,l.y,l.z]),s.b6(d,d,Math.PI),s.b7(d,d,Math.PI/2),s.N(d,d,[-u,u,u]),d}getProjectionDataForCustomLayer(e=!0){const i=new s.Z(0,0,0,0,0),l=this.getProjectionData({overscaledTileID:i,applyGlobeMatrix:e}),u=Se(i,this.worldSize);s.O(u,this._viewProjMatrix,u),l.tileMercatorCoords=[0,0,1,1];const d=[s.$,s.$,this.worldSize/this._helper.pixelsPerMeter],g=s.ba();return s.N(g,u,d),l.fallbackMatrix=g,l.mainMatrix=g,l}getFastPathSimpleProjectionMatrix(e){return this.calculatePosMatrix(e)}}function po(){s.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.")}function fi(h){if(h.useSlerp)if(h.k<1){const e=s.bb(h.startEulerAngles.roll,h.startEulerAngles.pitch,h.startEulerAngles.bearing),i=s.bb(h.endEulerAngles.roll,h.endEulerAngles.pitch,h.endEulerAngles.bearing),l=new Float64Array(4);s.bc(l,e,i,h.k);const u=s.bd(l);h.tr.setRoll(u.roll),h.tr.setPitch(u.pitch),h.tr.setBearing(u.bearing)}else h.tr.setRoll(h.endEulerAngles.roll),h.tr.setPitch(h.endEulerAngles.pitch),h.tr.setBearing(h.endEulerAngles.bearing);else h.tr.setRoll(s.C.number(h.startEulerAngles.roll,h.endEulerAngles.roll,h.k)),h.tr.setPitch(s.C.number(h.startEulerAngles.pitch,h.endEulerAngles.pitch,h.k)),h.tr.setBearing(s.C.number(h.startEulerAngles.bearing,h.endEulerAngles.bearing,h.k))}function Hn(h,e,i,l,u){const d=u.padding,g=Y(u.worldSize,i.getNorthWest()),w=Y(u.worldSize,i.getNorthEast()),C=Y(u.worldSize,i.getSouthEast()),P=Y(u.worldSize,i.getSouthWest()),E=s.ae(-l),R=g.rotate(E),D=w.rotate(E),N=C.rotate(E),G=P.rotate(E),te=new s.P(Math.max(R.x,D.x,G.x,N.x),Math.max(R.y,D.y,G.y,N.y)),ee=new s.P(Math.min(R.x,D.x,G.x,N.x),Math.min(R.y,D.y,G.y,N.y)),ie=te.sub(ee),ue=(u.width-(d.left+d.right+e.left+e.right))/ie.x,ve=(u.height-(d.top+d.bottom+e.top+e.bottom))/ie.y;if(ve<0||ue<0)return void po();const me=Math.min(s.ak(u.scale*Math.min(ue,ve)),h.maxZoom),be=s.P.convert(h.offset),Pe=new s.P((e.left-e.right)/2,(e.top-e.bottom)/2).rotate(s.ae(l)),_e=be.add(Pe).mult(u.scale/s.af(me));return{center:ae(u.worldSize,g.add(C).div(2).sub(_e)),zoom:me,bearing:l}}class jn{get useGlobeControls(){return!1}handlePanInertia(e,i){return{easingOffset:e,easingCenter:i.center}}handleMapControlsRollPitchBearingZoom(e,i){e.bearingDelta&&i.setBearing(i.bearing+e.bearingDelta),e.pitchDelta&&i.setPitch(i.pitch+e.pitchDelta),e.rollDelta&&i.setRoll(i.roll+e.rollDelta),e.zoomDelta&&i.setZoom(i.zoom+e.zoomDelta)}handleMapControlsPan(e,i,l){e.around.distSqr(i.centerPoint)<.01||i.setLocationAtPoint(l,e.around)}cameraForBoxAndBearing(e,i,l,u,d){return Hn(e,i,l,u,d)}handleJumpToCenterZoom(e,i){e.zoom!==(i.zoom!==void 0?+i.zoom:e.zoom)&&e.setZoom(+i.zoom),i.center!==void 0&&e.setCenter(s.S.convert(i.center))}handleEaseTo(e,i){const l=e.zoom,u=e.padding,d={roll:e.roll,pitch:e.pitch,bearing:e.bearing},g={roll:i.roll===void 0?e.roll:i.roll,pitch:i.pitch===void 0?e.pitch:i.pitch,bearing:i.bearing===void 0?e.bearing:i.bearing},w=i.zoom!==void 0,C=!e.isPaddingEqual(i.padding);let P=!1;const E=w?+i.zoom:e.zoom;let R=e.centerPoint.add(i.offsetAsPoint);const D=e.screenPointToLocation(R),{center:N,zoom:G}=e.getConstrained(s.S.convert(i.center||D),E??l);bn(e,N);const te=Y(e.worldSize,D),ee=Y(e.worldSize,N).sub(te),ie=s.af(G-l);return P=G!==l,{easeFunc:ue=>{if(P&&e.setZoom(s.C.number(l,G,ue)),s.be(d,g)||fi({startEulerAngles:d,endEulerAngles:g,tr:e,k:ue,useSlerp:d.roll!=g.roll}),C&&(e.interpolatePadding(u,i.padding,ue),R=e.centerPoint.add(i.offsetAsPoint)),i.around)e.setLocationAtPoint(i.around,i.aroundPoint);else{const ve=s.af(e.zoom-l),me=G>l?Math.min(2,ie):Math.max(.5,ie),be=Math.pow(me,1-ue),Pe=ae(e.worldSize,te.add(ee.mult(ue*be)).mult(ve));e.setLocationAtPoint(e.renderWorldCopies?Pe.wrap():Pe,R)}},isZooming:P,elevationCenter:N}}handleFlyTo(e,i){const l=i.zoom!==void 0,u=e.zoom,d=e.getConstrained(s.S.convert(i.center||i.locationAtOffset),l?+i.zoom:u),g=d.center,w=d.zoom;bn(e,g);const C=Y(e.worldSize,i.locationAtOffset),P=Y(e.worldSize,g).sub(C),E=P.mag(),R=s.af(w-u);let D;if(i.minZoom!==void 0){const N=Math.min(+i.minZoom,u,w),G=e.getConstrained(g,N).zoom;D=s.af(G-u)}return{easeFunc:(N,G,te,ee)=>{e.setZoom(N===1?w:u+s.ak(G));const ie=N===1?g:ae(e.worldSize,C.add(P.mult(te)).mult(G));e.setLocationAtPoint(e.renderWorldCopies?ie.wrap():ie,ee)},scaleOfZoom:R,targetCenter:g,scaleOfMinZoom:D,pixelPathLength:E}}}class zn{constructor(e,i,l){this.blendFunction=e,this.blendColor=i,this.mask=l}}zn.Replace=[1,0],zn.disabled=new zn(zn.Replace,s.bf.transparent,[!1,!1,!1,!1]),zn.unblended=new zn(zn.Replace,s.bf.transparent,[!0,!0,!0,!0]),zn.alphaBlended=new zn([1,771],s.bf.transparent,[!0,!0,!0,!0]);const qa=2305;class Rr{constructor(e,i,l){this.enable=e,this.mode=i,this.frontFace=l}}Rr.disabled=new Rr(!1,1029,qa),Rr.backCCW=new Rr(!0,1029,qa),Rr.frontCCW=new Rr(!0,1028,qa);class $r{constructor(e,i,l){this.func=e,this.mask=i,this.range=l}}$r.ReadOnly=!1,$r.ReadWrite=!0,$r.disabled=new $r(519,$r.ReadOnly,[0,1]);const _a=7680;class cn{constructor(e,i,l,u,d,g){this.test=e,this.ref=i,this.mask=l,this.fail=u,this.depthFail=d,this.pass=g}}cn.disabled=new cn({func:519,mask:0},0,0,_a,_a,_a);const Li=new WeakMap;function ga(h){var e;if(Li.has(h))return Li.get(h);{const i=(e=h.getParameter(h.VERSION))===null||e===void 0?void 0:e.startsWith("WebGL 2.0");return Li.set(h,i),i}}class sa{get awaitingQuery(){return!!this._readbackQueue}constructor(e){this._readbackWaitFrames=4,this._measureWaitFrames=6,this._texWidth=1,this._texHeight=1,this._measuredError=0,this._updateCount=0,this._lastReadbackFrame=-1e3,this._readbackQueue=null,this._cachedRenderContext=e;const i=e.context,l=i.gl;this._texFormat=l.RGBA,this._texType=l.UNSIGNED_BYTE;const u=new s.aL;u.emplaceBack(-1,-1),u.emplaceBack(2,-1),u.emplaceBack(-1,2);const d=new s.aN;d.emplaceBack(0,1,2),this._fullscreenTriangle=new Tn(i.createVertexBuffer(u,nn.members),i.createIndexBuffer(d),s.aM.simpleSegment(0,0,u.length,d.length)),this._resultBuffer=new Uint8Array(4),i.activeTexture.set(l.TEXTURE1);const g=l.createTexture();l.bindTexture(l.TEXTURE_2D,g),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MIN_FILTER,l.NEAREST),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,l.NEAREST),l.texImage2D(l.TEXTURE_2D,0,this._texFormat,this._texWidth,this._texHeight,0,this._texFormat,this._texType,null),this._fbo=i.createFramebuffer(this._texWidth,this._texHeight,!1,!1),this._fbo.colorAttachment.set(g),ga(l)&&(this._pbo=l.createBuffer(),l.bindBuffer(l.PIXEL_PACK_BUFFER,this._pbo),l.bufferData(l.PIXEL_PACK_BUFFER,4,l.STREAM_READ),l.bindBuffer(l.PIXEL_PACK_BUFFER,null))}destroy(){const e=this._cachedRenderContext.context.gl;this._fullscreenTriangle.destroy(),this._fbo.destroy(),e.deleteBuffer(this._pbo),this._fullscreenTriangle=null,this._fbo=null,this._pbo=null,this._resultBuffer=null}updateErrorLoop(e,i){const l=this._updateCount;return this._readbackQueue?l>=this._readbackQueue.frameNumberIssued+this._readbackWaitFrames&&this._tryReadback():l>=this._lastReadbackFrame+this._measureWaitFrames&&this._renderErrorTexture(e,i),this._updateCount++,this._measuredError}_bindFramebuffer(){const e=this._cachedRenderContext.context,i=e.gl;e.activeTexture.set(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,this._fbo.colorAttachment.get()),e.bindFramebuffer.set(this._fbo.framebuffer)}_renderErrorTexture(e,i){const l=this._cachedRenderContext.context,u=l.gl;if(this._bindFramebuffer(),l.viewport.set([0,0,this._texWidth,this._texHeight]),l.clear({color:s.bf.transparent}),this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(l,u.TRIANGLES,$r.disabled,cn.disabled,zn.unblended,Rr.disabled,((d,g)=>({u_input:d,u_output_expected:g}))(e,i),null,null,"$clipping",this._fullscreenTriangle.vertexBuffer,this._fullscreenTriangle.indexBuffer,this._fullscreenTriangle.segments),this._pbo&&ga(u)){u.bindBuffer(u.PIXEL_PACK_BUFFER,this._pbo),u.readBuffer(u.COLOR_ATTACHMENT0),u.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,0),u.bindBuffer(u.PIXEL_PACK_BUFFER,null);const d=u.fenceSync(u.SYNC_GPU_COMMANDS_COMPLETE,0);u.flush(),this._readbackQueue={frameNumberIssued:this._updateCount,sync:d}}else this._readbackQueue={frameNumberIssued:this._updateCount,sync:null}}_tryReadback(){const e=this._cachedRenderContext.context.gl;if(this._pbo&&this._readbackQueue&&ga(e)){const i=e.clientWaitSync(this._readbackQueue.sync,0,0);if(i===e.WAIT_FAILED)return s.w("WebGL2 clientWaitSync failed."),this._readbackQueue=null,void(this._lastReadbackFrame=this._updateCount);if(i===e.TIMEOUT_EXPIRED)return;e.bindBuffer(e.PIXEL_PACK_BUFFER,this._pbo),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,this._resultBuffer,0,4),e.bindBuffer(e.PIXEL_PACK_BUFFER,null)}else this._bindFramebuffer(),e.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,this._resultBuffer);this._readbackQueue=null,this._measuredError=sa._parseRGBA8float(this._resultBuffer),this._lastReadbackFrame=this._updateCount}static _parseRGBA8float(e){let i=0;return i+=e[0]/256,i+=e[1]/65536,i+=e[2]/16777216,e[3]<127&&(i=-i),i/128}}const Ja=s.$/128;function Ms(h,e){const i=h.granularity!==void 0?Math.max(h.granularity,1):1,l=i+(h.generateBorders?2:0),u=i+(h.extendToNorthPole||h.generateBorders?1:0)+(h.extendToSouthPole||h.generateBorders?1:0),d=l+1,g=u+1,w=h.generateBorders?-1:0,C=h.generateBorders||h.extendToNorthPole?-1:0,P=i+(h.generateBorders?1:0),E=i+(h.generateBorders||h.extendToSouthPole?1:0),R=d*g,D=l*u*6,N=d*g>65536;if(N&&e==="16bit")throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices.");const G=N||e==="32bit",te=new Int16Array(2*R);let ee=0;for(let ve=C;ve<=E;ve++)for(let me=w;me<=P;me++){let be=me/i*s.$;me===-1&&(be=-Ja),me===i+1&&(be=s.$+Ja);let Pe=ve/i*s.$;ve===-1&&(Pe=h.extendToNorthPole?s.bh:-Ja),ve===i+1&&(Pe=h.extendToSouthPole?s.bi:s.$+Ja),te[ee++]=be,te[ee++]=Pe}const ie=G?new Uint32Array(D):new Uint16Array(D);let ue=0;for(let ve=0;ve0}get latitudeErrorCorrectionRadians(){return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return"globe"}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy()}updateGPUdependent(e){this._mercatorProjection.updateGPUdependent(e),this._verticalPerspectiveProjection.updateGPUdependent(e)}getMeshFromTileID(e,i,l,u,d){return this.currentProjection.getMeshFromTileID(e,i,l,u,d)}setProjection(e){this._transitionable.setValue("type",(e==null?void 0:e.type)||"mercator")}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}setErrorQueryLatitudeDegrees(e){this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(e),this._mercatorProjection.setErrorQueryLatitudeDegrees(e)}}function vl(h){const e=Qo(h.worldSize,h.center.lat);return 2*Math.PI*e}function Sa(h,e,i,l,u){const d=1/(1<1e-6){const l=h[0]/i,u=Math.acos(h[2]/i),d=(l>0?u:-u)/Math.PI*180;return new s.S(s.aO(d,-180,180),e)}return new s.S(0,e)}function Mo(h){return Math.cos(h*Math.PI/180)}function ei(h,e){const i=Mo(h),l=Mo(e);return s.ak(l/i)}function Fh(h,e){const i=h.rotate(e.bearingInRadians),l=e.zoom+ei(e.center.lat,0),u=s.bk(1/Mo(e.center.lat),1/Mo(Math.min(Math.abs(e.center.lat),60)),s.bn(l,7,3,0,1)),d=360/vl({worldSize:e.worldSize,center:{lat:e.center.lat}});return new s.S(e.center.lng-i.x*d*u,s.ah(e.center.lat+i.y*d,-s.ai,s.ai))}function As(h){const e=.5*h,i=Math.sin(e),l=Math.cos(e);return Math.log(i+l)-Math.log(l-i)}function Ec(h,e,i,l){const u=h.lat+i*l;if(Math.abs(i)>1){const d=(Math.sign(h.lat+i)!==Math.sign(h.lat)?-Math.abs(h.lat):Math.abs(h.lat))*Math.PI/180,g=Math.abs(h.lat+i)*Math.PI/180,w=As(d+l*(g-d)),C=As(d),P=As(g);return new s.S(h.lng+e*((w-C)/(P-C)),u)}return new s.S(h.lng+e*l,u)}class bp{constructor(e){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._boundingVolumeFactory=e}swapBuffers(){if(!this._hadAnyChanges)return;const e=this._cachePrevious;this._cachePrevious=this._cache,this._cache=e,this._cache.clear(),this._hadAnyChanges=!1}getTileBoundingVolume(e,i,l,u){const d=`${e.z}_${e.x}_${e.y}_${u!=null&&u.terrain?"t":""}`,g=this._cache.get(d);if(g)return g;const w=this._cachePrevious.get(d);if(w)return this._cache.set(d,w),w;const C=this._boundingVolumeFactory(e,i,l,u);return this._cache.set(d,C),this._hadAnyChanges=!0,C}}class es{constructor(e,i,l,u){this.min=l,this.max=u,this.points=e,this.planes=i}static fromAabb(e,i){const l=[];for(let u=0;u<8;u++)l.push([1&~u?e[0]:i[0],(u>>1&1)==1?i[1]:e[1],(u>>2&1)==1?i[2]:e[2]]);return new es(l,[[-1,0,0,i[0]],[1,0,0,-e[0]],[0,-1,0,i[1]],[0,1,0,-e[1]],[0,0,-1,i[2]],[0,0,1,-e[2]]],e,i)}static fromCenterSizeAngles(e,i,l){const u=s.br([],l[0],l[1],l[2]),d=s.bs([],[i[0],0,0],u),g=s.bs([],[0,i[1],0],u),w=s.bs([],[0,0,i[2]],u),C=[...e],P=[...e];for(let R=0;R<8;R++)for(let D=0;D<3;D++){const N=e[D]+d[D]*(1&~R?-1:1)+g[D]*((R>>1&1)==1?1:-1)+w[D]*((R>>2&1)==1?1:-1);C[D]=Math.min(C[D],N),P[D]=Math.max(P[D],N)}const E=[];for(let R=0;R<8;R++){const D=[...e];s.aS(D,D,s.aR([],d,1&~R?-1:1)),s.aS(D,D,s.aR([],g,(R>>1&1)==1?1:-1)),s.aS(D,D,s.aR([],w,(R>>2&1)==1?1:-1)),E.push(D)}return new es(E,[[...d,-s.aX(d,E[0])],[...g,-s.aX(g,E[0])],[...w,-s.aX(w,E[0])],[-d[0],-d[1],-d[2],-s.aX(d,E[7])],[-g[0],-g[1],-g[2],-s.aX(g,E[7])],[-w[0],-w[1],-w[2],-s.aX(w,E[7])]],C,P)}intersectsFrustum(e){let i=!0;const l=this.points.length,u=this.planes.length,d=e.planes.length,g=e.points.length;for(let w=0;w=0&&P++}if(P===0)return 0;P=0&&P++}if(P===0)return 0}return 1}intersectsPlane(e){const i=this.points.length;let l=0;for(let u=0;u=0&&l++}return l===i?2:l===0?0:1}}function Di(h,e,i){const l=h-e;return l<0?-l:Math.max(0,l-i)}function Es(h,e,i,l,u){const d=h-i;let g;return g=d<0?Math.min(-d,1+d-u):d>1?Math.min(Math.max(d-u,0),1-d):0,Math.max(g,Di(e,l,u))}class Za{constructor(){this._boundingVolumeCache=new bp(this._computeTileBoundingVolume)}prepareNextFrame(){this._boundingVolumeCache.swapBuffers()}distanceToTile2d(e,i,l,u){const d=1<4}allowWorldCopies(){return!1}getTileBoundingVolume(e,i,l,u){return this._boundingVolumeCache.getTileBoundingVolume(e,i,l,u)}_computeTileBoundingVolume(e,i,l,u){var d,g;let w=0,C=0;if(u!=null&&u.terrain){const P=new s.Z(e.z,i,e.z,e.x,e.y),E=u.terrain.getMinMaxElevation(P);w=(d=E.minElevation)!==null&&d!==void 0?d:Math.min(0,l),C=(g=E.maxElevation)!==null&&g!==void 0?g:Math.max(0,l)}if(w/=s.bu,C/=s.bu,w+=1,C+=1,e.z<=0)return es.fromAabb([-C,-C,-C],[C,C,C]);if(e.z===1)return es.fromAabb([e.x===0?-C:0,e.y===0?0:-C,-C],[e.x===0?0:C,e.y===0?C:0,C]);{const P=[Sa(0,0,e.x,e.y,e.z),Sa(s.$,0,e.x,e.y,e.z),Sa(s.$,s.$,e.x,e.y,e.z),Sa(0,s.$,e.x,e.y,e.z)],E=[];for(const Xe of P)E.push(s.aR([],Xe,C));if(C!==w)for(const Xe of P)E.push(s.aR([],Xe,w));e.y===0&&E.push([0,1,0]),e.y===(1<=(1<{this._calcMatrices()},getConstrained:(e,i)=>this.getConstrained(e,i)}),this._coveringTilesDetailsProvider=new Za}clone(){const e=new Ls;return e.apply(this),e}apply(e,i){this._globeLatitudeErrorCorrectionRadians=i||0,this._helper.apply(e)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixNoCorrection}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){const e=s.bp();return e[0]=this._cameraPosition[0],e[1]=this._cameraPosition[1],e[2]=this._cameraPosition[2],e}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(e){const{overscaledTileID:i,applyGlobeMatrix:l}=e,u=this._helper.getMercatorTileCoordinates(i);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:u,clippingPlane:this._cachedClippingPlane,projectionTransition:l?1:0,fallbackMatrix:this._globeViewProjMatrix32f}}_computeClippingPlane(e){const i=this.pitchInRadians,l=this.cameraToCenterDistance/e,u=Math.sin(i)*l,d=Math.cos(i)*l+1,g=1/Math.sqrt(u*u+d*d)*1;let w=-u,C=d;const P=Math.sqrt(w*w+C*C);w/=P,C/=P;const E=[0,w,C];s.bw(E,E,[0,0,0],-this.bearingInRadians),s.bx(E,E,[0,0,0],-1*this.center.lat*Math.PI/180),s.by(E,E,[0,0,0],this.center.lng*Math.PI/180);const R=1/s.aZ(E);return s.aR(E,E,R),[...E,-g*R]}isLocationOccluded(e){return!this.isSurfacePointVisible(Ti(e))}transformLightDirection(e){const i=this._helper._center.lng*Math.PI/180,l=this._helper._center.lat*Math.PI/180,u=Math.cos(l),d=[Math.sin(i)*u,Math.sin(l),Math.cos(i)*u],g=[d[2],0,-d[0]],w=[0,0,0];s.aW(w,g,d),s.aV(g,g),s.aV(w,w);const C=[0,0,0];return s.aV(C,[g[0]*e[0]+w[0]*e[1]+d[0]*e[2],g[1]*e[0]+w[1]*e[1]+d[1]*e[2],g[2]*e[0]+w[2]*e[1]+d[2]*e[2]]),C}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(e,i,l){const u=(function(w,C,P){const E=1/(1<d&&(d=D),Nw&&(w=N)}const E=[P.lng+g,P.lat+C,P.lng+d,P.lat+w];return this.isSurfacePointOnScreen([0,1,0])&&(E[3]=90,E[0]=-180,E[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(E[1]=-90,E[0]=-180,E[2]=180),new _t(E)}getConstrained(e,i){const l=s.ah(e.lat,-s.ai,s.ai),u=s.ah(+i,this.minZoom+ei(0,l),this.maxZoom);return{center:new s.S(e.lng,l),zoom:u}}calculateCenterFromCameraLngLatAlt(e,i,l,u){return this._helper.calculateCenterFromCameraLngLatAlt(e,i,l,u)}setLocationAtPoint(e,i){const l=Ti(this.unprojectScreenPoint(i)),u=Ti(e),d=s.bp();s.bB(d);const g=s.bp();s.by(g,l,d,-this.center.lng*Math.PI/180),s.bx(g,g,d,this.center.lat*Math.PI/180);const w=u[0]*u[0]+u[2]*u[2],C=g[0]*g[0];if(w=-ie&&G<=ie,ve=ee>=-ie&&ee<=ie;let me,be;if(ue&&ve){const rt=this.center.lng*Math.PI/180,Ge=this.center.lat*Math.PI/180;s.bD(R,rt)+s.bD(G,Ge)=0}isSurfacePointOnScreen(e){if(!this.isSurfacePointVisible(e))return!1;const i=s.bv();return s.aw(i,[...e,1],this._globeViewProjMatrixNoCorrection),i[0]/=i[3],i[1]/=i[3],i[2]/=i[3],i[0]>-1&&i[0]<1&&i[1]>-1&&i[1]<1&&i[2]>-1&&i[2]<1}rayPlanetIntersection(e,i){const l=s.aX(e,i),u=s.bp(),d=s.bp();s.aR(d,i,l),s.aU(u,e,d);const g=1-s.aX(u,u);if(g<0)return null;const w=s.aX(e,e)-1,C=-l+(l<0?1:-1)*Math.sqrt(g),P=w/C,E=C;return{tMin:Math.min(P,E),tMax:Math.max(P,E)}}unprojectScreenPoint(e){const i=this._cameraPosition,l=this.getRayDirectionFromPixel(e),u=this.rayPlanetIntersection(i,l);if(u){const E=s.bp();s.aS(E,i,[l[0]*u.tMin,l[1]*u.tMin,l[2]*u.tMin]);const R=s.bp();return s.aV(R,E),ks(R)}const d=this._cachedClippingPlane,g=d[0]*l[0]+d[1]*l[1]+d[2]*l[2],w=-s.b1(d,i)/g,C=s.bp();if(w>0)s.aS(C,i,[l[0]*w,l[1]*w,l[2]*w]);else{const E=s.bp();s.aS(E,i,[2*l[0],2*l[1],2*l[2]]);const R=s.b1(this._cachedClippingPlane,E);s.aU(C,E,[this._cachedClippingPlane[0]*R,this._cachedClippingPlane[1]*R,this._cachedClippingPlane[2]*R])}const P=(function(E){const R=s.bp();return R[0]=E[0]*-E[3],R[1]=E[1]*-E[3],R[2]=E[2]*-E[3],{center:R,radius:Math.sqrt(1-E[3]*E[3])}})(d);return ks((function(E,R,D){const N=s.bp();s.aU(N,D,E);const G=s.bp();return s.bq(G,E,N,R/s.a$(N)),G})(P.center,P.radius,C))}getMatrixForModel(e,i){const l=s.S.convert(e),u=1/s.bu,d=s.b9();return s.bz(d,d,l.lng/180*Math.PI),s.b7(d,d,-l.lat/180*Math.PI),s.M(d,d,[0,0,1+i/s.bu]),s.b7(d,d,.5*Math.PI),s.N(d,d,[u,u,u]),d}getProjectionDataForCustomLayer(e=!0){const i=this.getProjectionData({overscaledTileID:new s.Z(0,0,0,0,0),applyGlobeMatrix:e});return i.tileMercatorCoords=[0,0,1,1],i}getFastPathSimpleProjectionMatrix(e){}}class Ds{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,i,l){return this._helper.interpolatePadding(e,i,l)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,i,l=!0){this._helper.resize(e,i,l)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,i){this._helper.overrideNearFarZ(e,i)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(e,i){this._globeness=e,this._globeLatitudeErrorCorrectionRadians=i,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(),this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(){this._globeLatitudeErrorCorrectionRadians=0,this._globeness=1,this._helper=new Sn({calcMatrices:()=>{this._calcMatrices()},getConstrained:(e,i)=>this.getConstrained(e,i)}),this._globeness=1,this._mercatorTransform=new an,this._verticalPerspectiveTransform=new Ls}clone(){const e=new Ds;return e._globeness=this._globeness,e._globeLatitudeErrorCorrectionRadians=this._globeLatitudeErrorCorrectionRadians,e.apply(this),e}apply(e){this._helper.apply(e),this._mercatorTransform.apply(this),this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians)}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(e){const i=this._mercatorTransform.getProjectionData(e),l=this._verticalPerspectiveTransform.getProjectionData(e);return{mainMatrix:this.isGlobeRendering?l.mainMatrix:i.mainMatrix,clippingPlane:l.clippingPlane,tileMercatorCoords:l.tileMercatorCoords,projectionTransition:e.applyGlobeMatrix?this._globeness:0,fallbackMatrix:i.fallbackMatrix}}isLocationOccluded(e){return this.currentTransform.isLocationOccluded(e)}transformLightDirection(e){return this.currentTransform.transformLightDirection(e)}getPixelScale(){return s.bk(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return s.bk(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(e,i,l){const u=this._mercatorTransform.getPitchedTextCorrection(e,i,l),d=this._verticalPerspectiveTransform.getPitchedTextCorrection(e,i,l);return s.bk(u,d,this._globeness)}projectTileCoordinates(e,i,l,u){return this.currentTransform.projectTileCoordinates(e,i,l,u)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians),this._helper._nearZ=this._verticalPerspectiveTransform.nearZ,this._helper._farZ=this._verticalPerspectiveTransform.farZ,this._mercatorTransform.apply(this,!0,this.isGlobeRendering),this._helper._nearZ=this._mercatorTransform.nearZ,this._helper._farZ=this._mercatorTransform.farZ)}calculateFogMatrix(e){return this.currentTransform.calculateFogMatrix(e)}getVisibleUnwrappedCoordinates(e){return this.currentTransform.getVisibleUnwrappedCoordinates(e)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(e){this._mercatorTransform.recalculateZoomAndCenter(e),this._verticalPerspectiveTransform.recalculateZoomAndCenter(e)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(e,i){return this.currentTransform.lngLatToCameraDepth(e,i)}populateCache(e){this._mercatorTransform.populateCache(e),this._verticalPerspectiveTransform.populateCache(e)}getBounds(){return this.currentTransform.getBounds()}getConstrained(e,i){return this.currentTransform.getConstrained(e,i)}calculateCenterFromCameraLngLatAlt(e,i,l,u){return this._helper.calculateCenterFromCameraLngLatAlt(e,i,l,u)}setLocationAtPoint(e,i){if(!this.isGlobeRendering)return this._mercatorTransform.setLocationAtPoint(e,i),void this.apply(this._mercatorTransform);this._verticalPerspectiveTransform.setLocationAtPoint(e,i),this.apply(this._verticalPerspectiveTransform)}locationToScreenPoint(e,i){return this.currentTransform.locationToScreenPoint(e,i)}screenPointToMercatorCoordinate(e,i){return this.currentTransform.screenPointToMercatorCoordinate(e,i)}screenPointToLocation(e,i){return this.currentTransform.screenPointToLocation(e,i)}isPointOnMapSurface(e,i){return this.currentTransform.isPointOnMapSurface(e,i)}getRayDirectionFromPixel(e){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e)}getMatrixForModel(e,i){return this.currentTransform.getMatrixForModel(e,i)}getProjectionDataForCustomLayer(e=!0){const i=this._mercatorTransform.getProjectionDataForCustomLayer(e);if(!this.isGlobeRendering)return i;const l=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e);return l.fallbackMatrix=i.mainMatrix,l}getFastPathSimpleProjectionMatrix(e){return this.currentTransform.getFastPathSimpleProjectionMatrix(e)}}class ji{get useGlobeControls(){return!0}handlePanInertia(e,i){const l=Fh(e,i);return Math.abs(l.lng-i.center.lng)>180&&(l.lng=i.center.lng+179.5*Math.sign(l.lng-i.center.lng)),{easingCenter:l,easingOffset:new s.P(0,0)}}handleMapControlsRollPitchBearingZoom(e,i){const l=e.around,u=i.screenPointToLocation(l);e.bearingDelta&&i.setBearing(i.bearing+e.bearingDelta),e.pitchDelta&&i.setPitch(i.pitch+e.pitchDelta),e.rollDelta&&i.setRoll(i.roll+e.rollDelta);const d=i.zoom;e.zoomDelta&&i.setZoom(i.zoom+e.zoomDelta);const g=i.zoom-d;if(g===0)return;const w=s.bA(i.center.lng,u.lng),C=w/(Math.abs(w/180)+1),P=s.bA(i.center.lat,u.lat),E=i.getRayDirectionFromPixel(l),R=i.cameraPosition,D=-1*s.aX(R,E),N=s.bp();s.aS(N,R,[E[0]*D,E[1]*D,E[2]*D]);const G=s.aZ(N)-1,te=Math.exp(.5*-Math.max(G-.3,0)),ee=Qo(i.worldSize,i.center.lat)/Math.min(i.width,i.height),ie=s.bn(ee,.9,.5,1,.25),ue=(1-s.af(-g))*Math.min(te,ie),ve=i.center.lat,me=i.zoom,be=new s.S(i.center.lng+C*ue,s.ah(i.center.lat+P*ue,-s.ai,s.ai));i.setLocationAtPoint(u,l);const Pe=i.center,_e=s.bn(Math.abs(w),45,85,0,1),Be=s.bn(ee,.75,.35,0,1),rt=Math.pow(Math.max(_e,Be),.25),Ge=s.bA(Pe.lng,be.lng),Xe=s.bA(Pe.lat,be.lat);i.setCenter(new s.S(Pe.lng+Ge*rt,Pe.lat+Xe*rt).wrap()),i.setZoom(me+ei(ve,i.center.lat))}handleMapControlsPan(e,i,l){if(!e.panDelta)return;const u=i.center.lat,d=i.zoom;i.setCenter(Fh(e.panDelta,i).wrap()),i.setZoom(d+ei(u,i.center.lat))}cameraForBoxAndBearing(e,i,l,u,d){const g=Hn(e,i,l,u,d),w=i.left/d.width*2-1,C=(d.width-i.right)/d.width*2-1,P=i.top/d.height*-2+1,E=(d.height-i.bottom)/d.height*-2+1,R=s.bA(l.getWest(),l.getEast())<0,D=R?l.getEast():l.getWest(),N=R?l.getWest():l.getEast(),G=Math.max(l.getNorth(),l.getSouth()),te=Math.min(l.getNorth(),l.getSouth()),ee=D+.5*s.bA(D,N),ie=G+.5*s.bA(G,te),ue=d.clone();ue.setCenter(g.center),ue.setBearing(g.bearing),ue.setPitch(0),ue.setRoll(0),ue.setZoom(g.zoom);const ve=ue.modelViewProjectionMatrix,me=[Ti(l.getNorthWest()),Ti(l.getNorthEast()),Ti(l.getSouthWest()),Ti(l.getSouthEast()),Ti(new s.S(N,ie)),Ti(new s.S(D,ie)),Ti(new s.S(ee,G)),Ti(new s.S(ee,te))],be=Ti(g.center);let Pe=Number.POSITIVE_INFINITY;for(const _e of me)w<0&&(Pe=ji.getLesserNonNegativeNonNull(Pe,ji.solveVectorScale(_e,be,ve,"x",w))),C>0&&(Pe=ji.getLesserNonNegativeNonNull(Pe,ji.solveVectorScale(_e,be,ve,"x",C))),P>0&&(Pe=ji.getLesserNonNegativeNonNull(Pe,ji.solveVectorScale(_e,be,ve,"y",P))),E<0&&(Pe=ji.getLesserNonNegativeNonNull(Pe,ji.solveVectorScale(_e,be,ve,"y",E)));if(Number.isFinite(Pe)&&Pe!==0)return g.zoom=ue.zoom+s.ak(Pe),g;po()}handleJumpToCenterZoom(e,i){const l=e.center.lat,u=e.getConstrained(i.center?s.S.convert(i.center):e.center,e.zoom).center;e.setCenter(u.wrap());const d=i.zoom!==void 0?+i.zoom:e.zoom+ei(l,u.lat);e.zoom!==d&&e.setZoom(d)}handleEaseTo(e,i){const l=e.zoom,u=e.center,d=e.padding,g={roll:e.roll,pitch:e.pitch,bearing:e.bearing},w={roll:i.roll===void 0?e.roll:i.roll,pitch:i.pitch===void 0?e.pitch:i.pitch,bearing:i.bearing===void 0?e.bearing:i.bearing},C=i.zoom!==void 0,P=!e.isPaddingEqual(i.padding);let E=!1;const R=i.center?s.S.convert(i.center):u,D=e.getConstrained(R,l).center;bn(e,D);const N=e.clone();N.setCenter(D),N.setZoom(C?+i.zoom:l+ei(u.lat,R.lat)),N.setBearing(i.bearing);const G=new s.P(s.ah(e.centerPoint.x+i.offsetAsPoint.x,0,e.width),s.ah(e.centerPoint.y+i.offsetAsPoint.y,0,e.height));N.setLocationAtPoint(D,G);const te=(i.offset&&i.offsetAsPoint.mag())>0?N.center:D,ee=C?+i.zoom:l+ei(u.lat,te.lat),ie=l+ei(u.lat,0),ue=ee+ei(te.lat,0),ve=s.bA(u.lng,te.lng),me=s.bA(u.lat,te.lat),be=s.af(ue-ie);return E=ee!==l,{easeFunc:Pe=>{if(s.be(g,w)||fi({startEulerAngles:g,endEulerAngles:w,tr:e,k:Pe,useSlerp:g.roll!=w.roll}),P&&e.interpolatePadding(d,i.padding,Pe),i.around)s.w("Easing around a point is not supported under globe projection."),e.setLocationAtPoint(i.around,i.aroundPoint);else{const _e=ue>ie?Math.min(2,be):Math.max(.5,be),Be=Math.pow(_e,1-Pe),rt=Ec(u,ve,me,Pe*Be);e.setCenter(rt.wrap())}if(E){const _e=s.C.number(ie,ue,Pe)+ei(0,e.center.lat);e.setZoom(_e)}},isZooming:E,elevationCenter:te}}handleFlyTo(e,i){const l=i.zoom!==void 0,u=e.center,d=e.zoom,g=e.padding,w=!e.isPaddingEqual(i.padding),C=e.getConstrained(s.S.convert(i.center||i.locationAtOffset),d).center,P=l?+i.zoom:e.zoom+ei(e.center.lat,C.lat),E=e.clone();E.setCenter(C),E.setZoom(P),E.setBearing(i.bearing);const R=new s.P(s.ah(e.centerPoint.x+i.offsetAsPoint.x,0,e.width),s.ah(e.centerPoint.y+i.offsetAsPoint.y,0,e.height));E.setLocationAtPoint(C,R);const D=E.center;bn(e,D);const N=(function(me,be,Pe){const _e=Ti(be),Be=Ti(Pe),rt=s.aX(_e,Be),Ge=Math.acos(rt),Xe=vl(me);return Ge/(2*Math.PI)*Xe})(e,u,D),G=d+ei(u.lat,0),te=P+ei(D.lat,0),ee=s.af(te-G);let ie;if(typeof i.minZoom=="number"){const me=+i.minZoom+ei(D.lat,0),be=Math.min(me,G,te)+ei(0,D.lat),Pe=e.getConstrained(D,be).zoom+ei(D.lat,0);ie=s.af(Pe-G)}const ue=s.bA(u.lng,D.lng),ve=s.bA(u.lat,D.lat);return{easeFunc:(me,be,Pe,_e)=>{const Be=Ec(u,ue,ve,Pe);w&&e.interpolatePadding(g,i.padding,me);const rt=me===1?D:Be;e.setCenter(rt.wrap());const Ge=G+s.ak(be);e.setZoom(me===1?P:Ge+ei(0,rt.lat))},scaleOfZoom:ee,targetCenter:D,scaleOfMinZoom:ie,pixelPathLength:N}}static solveVectorScale(e,i,l,u,d){const g=u==="x"?[l[0],l[4],l[8],l[12]]:[l[1],l[5],l[9],l[13]],w=[l[3],l[7],l[11],l[15]],C=e[0]*g[0]+e[1]*g[1]+e[2]*g[2],P=e[0]*w[0]+e[1]*w[1]+e[2]*w[2],E=i[0]*g[0]+i[1]*g[1]+i[2]*g[2],R=i[0]*w[0]+i[1]*w[1]+i[2]*w[2];return E+d*P===C+d*R||w[3]*(C-E)+g[3]*(R-P)+C*R==E*P?null:(E+g[3]-d*R-d*w[3])/(E-C-d*R+d*P)}static getLesserNonNegativeNonNull(e,i){return i!==null&&i>=0&&is.y(h,e&&e.filter((i=>i.identifier!=="source.canvas"))),wp=s.bE();class zc extends s.E{constructor(e,i={}){super(),this._rtlPluginLoaded=()=>{for(const l in this.sourceCaches){const u=this.sourceCaches[l].getSource().type;u!=="vector"&&u!=="geojson"||this.sourceCaches[l].reload()}},this.map=e,this.dispatcher=new Dt(Pt(),e._getMapId()),this.dispatcher.registerMessageHandler("GG",((l,u)=>this.getGlyphs(l,u))),this.dispatcher.registerMessageHandler("GI",((l,u)=>this.getImages(l,u))),this.imageManager=new Qe,this.imageManager.setEventedParent(this),this.glyphManager=new Ue(e._requestManager,i.localIdeographFontFamily),this.lineAtlas=new oe(256,512),this.crossTileSymbolIndex=new ar,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new s.bF,this._loaded=!1,this._availableImages=[],this._globalState={},this._resetUpdates(),this.dispatcher.broadcast("SR",s.bG()),Ir().on(mr,this._rtlPluginLoaded),this.on("data",(l=>{if(l.dataType!=="source"||l.sourceDataType!=="metadata")return;const u=this.sourceCaches[l.sourceId];if(!u)return;const d=u.getSource();if(d&&d.vectorLayerIds)for(const g in this._layers){const w=this._layers[g];w.source===d.id&&this._validateLayer(w)}}))}setGlobalStateProperty(e,i){var l,u,d;this._checkLoaded();const g=i===null?(d=(u=(l=this.stylesheet.state)===null||l===void 0?void 0:l[e])===null||u===void 0?void 0:u.default)!==null&&d!==void 0?d:null:i;if(s.bH(g,this._globalState[e]))return this;this._globalState[e]=g;const w=this._findGlobalStateAffectedSources([e]);for(const C in this.sourceCaches)w.has(C)&&(this._reloadSource(C),this._changed=!0)}getGlobalState(){return this._globalState}setGlobalState(e){this._checkLoaded();const i=[];for(const u in e)!s.bH(this._globalState[u],e[u].default)&&(i.push(u),this._globalState[u]=e[u].default);const l=this._findGlobalStateAffectedSources(i);for(const u in this.sourceCaches)l.has(u)&&(this._reloadSource(u),this._changed=!0)}_findGlobalStateAffectedSources(e){if(e.length===0)return new Set;const i=new Set;for(const l in this._layers){const u=this._layers[l],d=u.getLayoutAffectingGlobalStateRefs();for(const g of e)d.has(g)&&i.add(u.source)}return i}loadURL(e,i={},l){this.fire(new s.l("dataloading",{dataType:"style"})),i.validate=typeof i.validate!="boolean"||i.validate;const u=this.map._requestManager.transformRequest(e,"Style");this._loadStyleRequest=new AbortController;const d=this._loadStyleRequest;s.j(u,this._loadStyleRequest).then((g=>{this._loadStyleRequest=null,this._load(g.data,i,l)})).catch((g=>{this._loadStyleRequest=null,g&&!d.signal.aborted&&this.fire(new s.k(g))}))}loadJSON(e,i={},l){this.fire(new s.l("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,ne.frameAsync(this._frameRequest).then((()=>{this._frameRequest=null,i.validate=i.validate!==!1,this._load(e,i,l)})).catch((()=>{}))}loadEmpty(){this.fire(new s.l("dataloading",{dataType:"style"})),this._load(wp,{validate:!1})}_load(e,i,l){var u,d,g;const w=i.transformStyle?i.transformStyle(l,e):e;if(!i.validate||!yl(this,s.z(w))){this._loaded=!0,this.stylesheet=w;for(const C in w.sources)this.addSource(C,w.sources[C],{validate:!1});w.sprite?this._loadSprite(w.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(w.glyphs),this._createLayers(),this.light=new Q(this.stylesheet.light),this._setProjectionInternal(((u=this.stylesheet.projection)===null||u===void 0?void 0:u.type)||"mercator"),this.sky=new he(this.stylesheet.sky),this.map.setTerrain((d=this.stylesheet.terrain)!==null&&d!==void 0?d:null),this.setGlobalState((g=this.stylesheet.state)!==null&&g!==void 0?g:null),this.fire(new s.l("data",{dataType:"style"})),this.fire(new s.l("style.load"))}}_createLayers(){const e=s.bI(this.stylesheet.layers);this.dispatcher.broadcast("SL",e),this._order=e.map((i=>i.id)),this._layers={},this._serializedLayers=null;for(const i of e){const l=s.bJ(i);l.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=l}}_loadSprite(e,i=!1,l=void 0){let u;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,(function(d,g,w,C){return s._(this,void 0,void 0,(function*(){const P=Je(d),E=w>1?"@2x":"",R={},D={};for(const{id:N,url:G}of P){const te=g.transformRequest(qe(G,E,".json"),"SpriteJSON");R[N]=s.j(te,C);const ee=g.transformRequest(qe(G,E,".png"),"SpriteImage");D[N]=Fe.getImage(ee,C)}return yield Promise.all([...Object.values(R),...Object.values(D)]),(function(N,G){return s._(this,void 0,void 0,(function*(){const te={};for(const ee in N){te[ee]={};const ie=ne.getImageCanvasContext((yield G[ee]).data),ue=(yield N[ee]).data;for(const ve in ue){const{width:me,height:be,x:Pe,y:_e,sdf:Be,pixelRatio:rt,stretchX:Ge,stretchY:Xe,content:tt,textFitWidth:jt,textFitHeight:Zt}=ue[ve];te[ee][ve]={data:null,pixelRatio:rt,sdf:Be,stretchX:Ge,stretchY:Xe,content:tt,textFitWidth:jt,textFitHeight:Zt,spriteData:{width:me,height:be,x:Pe,y:_e,context:ie}}}}return te}))})(R,D)}))})(e,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then((d=>{if(this._spriteRequest=null,d)for(const g in d){this._spritesImagesIds[g]=[];const w=this._spritesImagesIds[g]?this._spritesImagesIds[g].filter((C=>!(C in d))):[];for(const C of w)this.imageManager.removeImage(C),this._changedImages[C]=!0;for(const C in d[g]){const P=g==="default"?C:`${g}:${C}`;this._spritesImagesIds[g].push(P),P in this.imageManager.images?this.imageManager.updateImage(P,d[g][C],!1):this.imageManager.addImage(P,d[g][C]),i&&(this._changedImages[P]=!0)}}})).catch((d=>{this._spriteRequest=null,u=d,this.fire(new s.k(u))})).finally((()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),i&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"})),l&&l(u)}))}_unloadSprite(){for(const e of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(e),this._changedImages[e]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}_validateLayer(e){const i=this.sourceCaches[e.source];if(!i)return;const l=e.sourceLayer;if(!l)return;const u=i.getSource();(u.type==="geojson"||u.vectorLayerIds&&u.vectorLayerIds.indexOf(l)===-1)&&this.fire(new s.k(new Error(`Source layer "${l}" does not exist on source "${u.id}" as specified by style layer "${e.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const e in this.sourceCaches)if(!this.sourceCaches[e].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(e,i=!1){const l=this._serializedAllLayers();if(!e||e.length===0)return Object.values(i?s.bK(l):l);const u=[];for(const d of e)if(l[d]){const g=i?s.bK(l[d]):l[d];u.push(g)}return u}_serializedAllLayers(){let e=this._serializedLayers;if(e)return e;e=this._serializedLayers={};const i=Object.keys(this._layers);for(const l of i){const u=this._layers[l];u.type!=="custom"&&(e[l]=u.serialize())}return e}hasTransitions(){var e,i,l;if(!((e=this.light)===null||e===void 0)&&e.hasTransition()||!((i=this.sky)===null||i===void 0)&&i.hasTransition()||!((l=this.projection)===null||l===void 0)&&l.hasTransition())return!0;for(const u in this.sourceCaches)if(this.sourceCaches[u].hasTransition())return!0;for(const u in this._layers)if(this._layers[u].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(e){if(!this._loaded)return;const i=this._changed;if(i){const u=Object.keys(this._updatedLayers),d=Object.keys(this._removedLayers);(u.length||d.length)&&this._updateWorkerLayers(u,d);for(const g in this._updatedSources){const w=this._updatedSources[g];if(w==="reload")this._reloadSource(g);else{if(w!=="clear")throw new Error(`Invalid action ${w}`);this._clearSource(g)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const g in this._updatedPaintProps)this._layers[g].updateTransitions(e);this.light.updateTransitions(e),this.sky.updateTransitions(e),this._resetUpdates()}const l={};for(const u in this.sourceCaches){const d=this.sourceCaches[u];l[u]=d.used,d.used=!1}for(const u of this._order){const d=this._layers[u];d.recalculate(e,this._availableImages),!d.isHidden(e.zoom)&&d.source&&(this.sourceCaches[d.source].used=!0)}for(const u in l){const d=this.sourceCaches[u];!!l[u]!=!!d.used&&d.fire(new s.l("data",{sourceDataType:"visibility",dataType:"source",sourceId:u}))}this.light.recalculate(e),this.sky.recalculate(e),this.projection.recalculate(e),this.z=e.zoom,i&&this.fire(new s.l("data",{dataType:"style"}))}_updateTilesForChangedImages(){const e=Object.keys(this._changedImages);if(e.length){for(const i in this.sourceCaches)this.sourceCaches[i].reloadTilesForDependencies(["icons","patterns"],e);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(e,i){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(e,!1),removedIds:i})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(e,i={}){var l;this._checkLoaded();const u=this.serialize();if(e=i.transformStyle?i.transformStyle(u,e):e,((l=i.validate)===null||l===void 0||l)&&yl(this,s.z(e)))return!1;(e=s.bK(e)).layers=s.bI(e.layers);const d=s.bL(u,e),g=this._getOperationsToPerform(d);if(g.unimplemented.length>0)throw new Error(`Unimplemented: ${g.unimplemented.join(", ")}.`);if(g.operations.length===0)return!1;for(const w of g.operations)w();return this.stylesheet=e,this._serializedLayers=null,!0}_getOperationsToPerform(e){const i=[],l=[];for(const u of e)switch(u.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":case"setRoll":continue;case"addLayer":i.push((()=>this.addLayer.apply(this,u.args)));break;case"removeLayer":i.push((()=>this.removeLayer.apply(this,u.args)));break;case"setPaintProperty":i.push((()=>this.setPaintProperty.apply(this,u.args)));break;case"setLayoutProperty":i.push((()=>this.setLayoutProperty.apply(this,u.args)));break;case"setFilter":i.push((()=>this.setFilter.apply(this,u.args)));break;case"addSource":i.push((()=>this.addSource.apply(this,u.args)));break;case"removeSource":i.push((()=>this.removeSource.apply(this,u.args)));break;case"setLayerZoomRange":i.push((()=>this.setLayerZoomRange.apply(this,u.args)));break;case"setLight":i.push((()=>this.setLight.apply(this,u.args)));break;case"setGeoJSONSourceData":i.push((()=>this.setGeoJSONSourceData.apply(this,u.args)));break;case"setGlyphs":i.push((()=>this.setGlyphs.apply(this,u.args)));break;case"setSprite":i.push((()=>this.setSprite.apply(this,u.args)));break;case"setTerrain":i.push((()=>this.map.setTerrain.apply(this,u.args)));break;case"setSky":i.push((()=>this.setSky.apply(this,u.args)));break;case"setProjection":this.setProjection.apply(this,u.args);break;case"setGlobalState":i.push((()=>this.setGlobalState.apply(this,u.args)));break;case"setTransition":i.push((()=>{}));break;default:l.push(u.command)}return{operations:i,unimplemented:l}}addImage(e,i){if(this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" already exists.`)));this.imageManager.addImage(e,i),this._afterImageUpdated(e)}updateImage(e,i){this.imageManager.updateImage(e,i)}getImage(e){return this.imageManager.getImage(e)}removeImage(e){if(!this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" does not exist.`)));this.imageManager.removeImage(e),this._afterImageUpdated(e)}_afterImageUpdated(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,i,l={}){if(this._checkLoaded(),this.sourceCaches[e]!==void 0)throw new Error(`Source "${e}" already exists.`);if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(s.z.source,`sources.${e}`,i,null,l))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const u=this.sourceCaches[e]=new cr(e,i,this.dispatcher);u.style=this,u.setEventedParent(this,(()=>({isSourceLoaded:u.loaded(),source:u.serialize(),sourceId:e}))),u.onAdd(this.map),this._changed=!0}removeSource(e){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error("There is no source with this ID");for(const l in this._layers)if(this._layers[l].source===e)return this.fire(new s.k(new Error(`Source "${e}" cannot be removed while layer "${l}" is using it.`)));const i=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],i.fire(new s.l("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),i.setEventedParent(null),i.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(e,i){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error(`There is no source with this ID=${e}`);const l=this.sourceCaches[e].getSource();if(l.type!=="geojson")throw new Error(`geojsonSource.type is ${l.type}, which is !== 'geojson`);l.setData(i),this._changed=!0}getSource(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()}addLayer(e,i,l={}){this._checkLoaded();const u=e.id;if(this.getLayer(u))return void this.fire(new s.k(new Error(`Layer "${u}" already exists on this map.`)));let d;if(e.type==="custom"){if(yl(this,s.bM(e)))return;d=s.bJ(e)}else{if("source"in e&&typeof e.source=="object"&&(this.addSource(u,e.source),e=s.bK(e),e=s.e(e,{source:u})),this._validate(s.z.layer,`layers.${u}`,e,{arrayIndex:-1},l))return;d=s.bJ(e),this._validateLayer(d),d.setEventedParent(this,{layer:{id:u}})}const g=i?this._order.indexOf(i):this._order.length;if(i&&g===-1)this.fire(new s.k(new Error(`Cannot add layer "${u}" before non-existing layer "${i}".`)));else{if(this._order.splice(g,0,u),this._layerOrderChanged=!0,this._layers[u]=d,this._removedLayers[u]&&d.source&&d.type!=="custom"){const w=this._removedLayers[u];delete this._removedLayers[u],w.type!==d.type?this._updatedSources[d.source]="clear":(this._updatedSources[d.source]="reload",this.sourceCaches[d.source].pause())}this._updateLayer(d),d.onAdd&&d.onAdd(this.map)}}moveLayer(e,i){if(this._checkLoaded(),this._changed=!0,!this._layers[e])return void this.fire(new s.k(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));if(e===i)return;const l=this._order.indexOf(e);this._order.splice(l,1);const u=i?this._order.indexOf(i):this._order.length;i&&u===-1?this.fire(new s.k(new Error(`Cannot move layer "${e}" before non-existing layer "${i}".`))):(this._order.splice(u,0,e),this._layerOrderChanged=!0)}removeLayer(e){this._checkLoaded();const i=this._layers[e];if(!i)return void this.fire(new s.k(new Error(`Cannot remove non-existing layer "${e}".`)));i.setEventedParent(null);const l=this._order.indexOf(e);this._order.splice(l,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],this._serializedLayers&&delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],i.onRemove&&i.onRemove(this.map)}getLayer(e){return this._layers[e]}getLayersOrder(){return[...this._order]}hasLayer(e){return e in this._layers}setLayerZoomRange(e,i,l){this._checkLoaded();const u=this.getLayer(e);u?u.minzoom===i&&u.maxzoom===l||(i!=null&&(u.minzoom=i),l!=null&&(u.maxzoom=l),this._updateLayer(u)):this.fire(new s.k(new Error(`Cannot set the zoom range of non-existing layer "${e}".`)))}setFilter(e,i,l={}){this._checkLoaded();const u=this.getLayer(e);if(u){if(!s.bH(u.filter,i))return i==null?(u.setFilter(void 0),void this._updateLayer(u)):void(this._validate(s.z.filter,`layers.${u.id}.filter`,i,null,l)||(u.setFilter(s.bK(i)),this._updateLayer(u)))}else this.fire(new s.k(new Error(`Cannot filter non-existing layer "${e}".`)))}getFilter(e){return s.bK(this.getLayer(e).filter)}setLayoutProperty(e,i,l,u={}){this._checkLoaded();const d=this.getLayer(e);d?s.bH(d.getLayoutProperty(i),l)||(d.setLayoutProperty(i,l,u),this._updateLayer(d)):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getLayoutProperty(e,i){const l=this.getLayer(e);if(l)return l.getLayoutProperty(i);this.fire(new s.k(new Error(`Cannot get style of non-existing layer "${e}".`)))}setPaintProperty(e,i,l,u={}){this._checkLoaded();const d=this.getLayer(e);d?s.bH(d.getPaintProperty(i),l)||(d.setPaintProperty(i,l,u)&&this._updateLayer(d),this._changed=!0,this._updatedPaintProps[e]=!0,this._serializedLayers=null):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getPaintProperty(e,i){return this.getLayer(e).getPaintProperty(i)}setFeatureState(e,i){this._checkLoaded();const l=e.source,u=e.sourceLayer,d=this.sourceCaches[l];if(d===void 0)return void this.fire(new s.k(new Error(`The source '${l}' does not exist in the map's style.`)));const g=d.getSource().type;g==="geojson"&&u?this.fire(new s.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):g!=="vector"||u?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),d.setFeatureState(u,e.id,i)):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(e,i){this._checkLoaded();const l=e.source,u=this.sourceCaches[l];if(u===void 0)return void this.fire(new s.k(new Error(`The source '${l}' does not exist in the map's style.`)));const d=u.getSource().type,g=d==="vector"?e.sourceLayer:void 0;d!=="vector"||g?i&&typeof e.id!="string"&&typeof e.id!="number"?this.fire(new s.k(new Error("A feature id is required to remove its specific state property."))):u.removeFeatureState(g,e.id,i):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(e){this._checkLoaded();const i=e.source,l=e.sourceLayer,u=this.sourceCaches[i];if(u!==void 0)return u.getSource().type!=="vector"||l?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),u.getFeatureState(l,e.id)):void this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new s.k(new Error(`The source '${i}' does not exist in the map's style.`)))}getTransition(){return s.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const e=s.bN(this.sourceCaches,(d=>d.serialize())),i=this._serializeByIds(this._order,!0),l=this.map.getTerrain()||void 0,u=this.stylesheet;return s.bO({version:u.version,name:u.name,metadata:u.metadata,light:u.light,sky:u.sky,center:u.center,zoom:u.zoom,bearing:u.bearing,pitch:u.pitch,sprite:u.sprite,glyphs:u.glyphs,transition:u.transition,projection:u.projection,sources:e,layers:i,terrain:l},(d=>d!==void 0))}_updateLayer(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&this.sourceCaches[e.source].getSource().type!=="raster"&&(this._updatedSources[e.source]="reload",this.sourceCaches[e.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(e){const i=g=>this._layers[g].type==="fill-extrusion",l={},u=[];for(let g=this._order.length-1;g>=0;g--){const w=this._order[g];if(i(w)){l[w]=g;for(const C of e){const P=C[w];if(P)for(const E of P)u.push(E)}}}u.sort(((g,w)=>w.intersectionZ-g.intersectionZ));const d=[];for(let g=this._order.length-1;g>=0;g--){const w=this._order[g];if(i(w))for(let C=u.length-1;C>=0;C--){const P=u[C].feature;if(l[P.layer.id]this.map.terrain.getElevation(E,R,D):void 0));return this.placement&&d.push((function(P,E,R,D,N,G,te){const ee={},ie=G.queryRenderedSymbols(D),ue=[];for(const ve of Object.keys(ie).map(Number))ue.push(te[ve]);ue.sort(xt);for(const ve of ue){const me=ve.featureIndex.lookupSymbolFeatures(ie[ve.bucketInstanceId],E,ve.bucketIndex,ve.sourceLayerIndex,N.filter,N.layers,N.availableImages,P);for(const be in me){const Pe=ee[be]=ee[be]||[],_e=me[be];_e.sort(((Be,rt)=>{const Ge=ve.featureSortOrder;if(Ge){const Xe=Ge.indexOf(Be.featureIndex);return Ge.indexOf(rt.featureIndex)-Xe}return rt.featureIndex-Be.featureIndex}));for(const Be of _e)Pe.push(Be)}}return(function(ve,me,be){for(const Pe in ve)for(const _e of ve[Pe])It(_e,be[me[Pe].source]);return ve})(ee,P,R)})(this._layers,g,this.sourceCaches,e,C,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(d)}querySourceFeatures(e,i){i&&i.filter&&this._validate(s.z.filter,"querySourceFeatures.filter",i.filter,null,i);const l=this.sourceCaches[e];return l?(function(u,d){const g=u.getRenderableIds().map((P=>u.getTileByID(P))),w=[],C={};for(let P=0;PD.getTileByID(N))).sort(((N,G)=>G.tileID.overscaledZ-N.tileID.overscaledZ||(N.tileID.isLessThan(G.tileID)?-1:1)))}const R=this.crossTileSymbolIndex.addLayer(E,C[E.source],e.center.lng);g=g||R}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((d=d||this._layerOrderChanged||l===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(ne.now(),e.zoom))&&(this.pauseablePlacement=new On(e,this.map.terrain,this._order,d,i,l,u,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,C),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(ne.now()),w=!0),g&&this.pauseablePlacement.placement.setStale()),w||g)for(const P of this._order){const E=this._layers[P];E.type==="symbol"&&this.placement.updateLayerOpacities(E,C[E.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(ne.now())}_releaseSymbolFadeTiles(){for(const e in this.sourceCaches)this.sourceCaches[e].releaseSymbolFadeTiles()}getImages(e,i){return s._(this,void 0,void 0,(function*(){const l=yield this.imageManager.getImages(i.icons);this._updateTilesForChangedImages();const u=this.sourceCaches[i.source];return u&&u.setDependencies(i.tileID.key,i.type,i.icons),l}))}getGlyphs(e,i){return s._(this,void 0,void 0,(function*(){const l=yield this.glyphManager.getGlyphs(i.stacks),u=this.sourceCaches[i.source];return u&&u.setDependencies(i.tileID.key,i.type,[""]),l}))}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,i={}){this._checkLoaded(),e&&this._validate(s.z.glyphs,"glyphs",e,null,i)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e))}addSprite(e,i,l={},u){this._checkLoaded();const d=[{id:e,url:i}],g=[...Je(this.stylesheet.sprite),...d];this._validate(s.z.sprite,"sprite",g,null,l)||(this.stylesheet.sprite=g,this._loadSprite(d,!0,u))}removeSprite(e){this._checkLoaded();const i=Je(this.stylesheet.sprite);if(i.find((l=>l.id===e))){if(this._spritesImagesIds[e])for(const l of this._spritesImagesIds[e])this.imageManager.removeImage(l),this._changedImages[l]=!0;i.splice(i.findIndex((l=>l.id===e)),1),this.stylesheet.sprite=i.length>0?i:void 0,delete this._spritesImagesIds[e],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}else this.fire(new s.k(new Error(`Sprite "${e}" doesn't exists on this map.`)))}getSprite(){return Je(this.stylesheet.sprite)}setSprite(e,i={},l){this._checkLoaded(),e&&this._validate(s.z.sprite,"sprite",e,null,i)||(this.stylesheet.sprite=e,e?this._loadSprite(e,!0,l):(this._unloadSprite(),l&&l(null)))}}var Tp=s.aJ([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class Cp{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(e,i,l,u,d,g,w,C,P){this.context=e;let E=this.boundPaintVertexBuffers.length!==u.length;for(let R=0;!E&&R({u_texture:0,u_ele_delta:h,u_fog_matrix:e,u_fog_color:i?i.properties.get("fog-color"):s.bf.white,u_fog_ground_blend:i?i.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:u?0:i?i.calculateFogBlendOpacity(l):0,u_horizon_color:i?i.properties.get("horizon-color"):s.bf.white,u_horizon_fog_blend:i?i.properties.get("horizon-fog-blend"):1,u_is_globe_mode:u?1:0}),Lc={mainMatrix:"u_projection_matrix",tileMercatorCoords:"u_projection_tile_mercator_coords",clippingPlane:"u_projection_clipping_plane",projectionTransition:"u_projection_transition",fallbackMatrix:"u_projection_fallback_matrix"};function ko(h){const e=[];for(let i=0;i({u_depth:new s.bP(Ge,Xe.u_depth),u_terrain:new s.bP(Ge,Xe.u_terrain),u_terrain_dim:new s.bg(Ge,Xe.u_terrain_dim),u_terrain_matrix:new s.bR(Ge,Xe.u_terrain_matrix),u_terrain_unpack:new s.bS(Ge,Xe.u_terrain_unpack),u_terrain_exaggeration:new s.bg(Ge,Xe.u_terrain_exaggeration)}))(e,rt),this.projectionUniforms=((Ge,Xe)=>({u_projection_matrix:new s.bR(Ge,Xe.u_projection_matrix),u_projection_tile_mercator_coords:new s.bS(Ge,Xe.u_projection_tile_mercator_coords),u_projection_clipping_plane:new s.bS(Ge,Xe.u_projection_clipping_plane),u_projection_transition:new s.bg(Ge,Xe.u_projection_transition),u_projection_fallback_matrix:new s.bR(Ge,Xe.u_projection_fallback_matrix)}))(e,rt),this.binderUniforms=l?l.getUniforms(e,rt):[]}draw(e,i,l,u,d,g,w,C,P,E,R,D,N,G,te,ee,ie,ue,ve){const me=e.gl;if(this.failedToCreate)return;if(e.program.set(this.program),e.setDepthMode(l),e.setStencilMode(u),e.setColorMode(d),e.setCullFace(g),C){e.activeTexture.set(me.TEXTURE2),me.bindTexture(me.TEXTURE_2D,C.depthTexture),e.activeTexture.set(me.TEXTURE3),me.bindTexture(me.TEXTURE_2D,C.texture);for(const Pe in this.terrainUniforms)this.terrainUniforms[Pe].set(C[Pe])}if(P)for(const Pe in P)this.projectionUniforms[Lc[Pe]].set(P[Pe]);if(w)for(const Pe in this.fixedUniforms)this.fixedUniforms[Pe].set(w[Pe]);ee&&ee.setUniforms(e,this.binderUniforms,G,{zoom:te});let be=0;switch(i){case me.LINES:be=2;break;case me.TRIANGLES:be=3;break;case me.LINE_STRIP:be=1}for(const Pe of N.get()){const _e=Pe.vaos||(Pe.vaos={});(_e[E]||(_e[E]=new Cp)).bind(e,this,R,ee?ee.getPaintVertexBuffers():[],D,Pe.vertexOffset,ie,ue,ve),me.drawElements(i,Pe.primitiveLength*be,me.UNSIGNED_SHORT,Pe.primitiveOffset*be*2)}}}function bl(h,e,i){const l=1/s.aC(i,1,e.transform.tileZoom),u=Math.pow(2,i.tileID.overscaledZ),d=i.tileSize*Math.pow(2,e.transform.tileZoom)/u,g=d*(i.tileID.canonical.x+i.tileID.wrap*u),w=d*i.tileID.canonical.y;return{u_image:0,u_texsize:i.imageAtlasTexture.size,u_scale:[l,h.fromScale,h.toScale],u_fade:h.t,u_pixel_coord_upper:[g>>16,w>>16],u_pixel_coord_lower:[65535&g,65535&w]}}const Pa=(h,e,i,l)=>{const u=h.style.light,d=u.properties.get("position"),g=[d.x,d.y,d.z],w=s.bV();u.properties.get("anchor")==="viewport"&&s.bW(w,h.transform.bearingInRadians),s.bX(g,g,w);const C=h.transform.transformLightDirection(g),P=u.properties.get("color");return{u_lightpos:g,u_lightpos_globe:C,u_lightintensity:u.properties.get("intensity"),u_lightcolor:[P.r,P.g,P.b],u_vertical_gradient:+e,u_opacity:i,u_fill_translate:l}},Sp=(h,e,i,l,u,d,g)=>s.e(Pa(h,e,i,l),bl(d,h,g),{u_height_factor:-Math.pow(2,u.overscaledZ)/g.tileSize/8}),wl=(h,e,i,l)=>s.e(bl(e,h,i),{u_fill_translate:l}),Rs=(h,e)=>({u_world:h,u_fill_translate:e}),Bs=(h,e,i,l,u)=>s.e(wl(h,e,i,u),{u_world:l}),Pp=(h,e,i,l,u)=>{const d=h.transform;let g,w,C=0;if(i.paint.get("circle-pitch-alignment")==="map"){const P=s.aC(e,1,d.zoom);g=!0,w=[P,P],C=P/(s.$*Math.pow(2,e.tileID.overscaledZ))*2*Math.PI*u}else g=!1,w=d.pixelsToGLUnits;return{u_camera_to_center_distance:d.cameraToCenterDistance,u_scale_with_map:+(i.paint.get("circle-pitch-scale")==="map"),u_pitch_with_map:+g,u_device_pixel_ratio:h.pixelRatio,u_extrude_scale:w,u_globe_extrude_scale:C,u_translate:l}},Tl=h=>({u_pixel_extrude_scale:[1/h.width,1/h.height]}),Ip=h=>({u_viewport_size:[h.width,h.height]}),Ao=(h,e=1)=>({u_color:h,u_overlay:0,u_overlay_scale:e}),Nh=(h,e,i,l)=>{const u=s.aC(h,1,e)/(s.$*Math.pow(2,h.tileID.overscaledZ))*2*Math.PI*l;return{u_extrude_scale:s.aC(h,1,e),u_intensity:i,u_globe_extrude_scale:u}},Rc=(h,e,i,l)=>{const u=s.L();s.bY(u,0,h.width,h.height,0,0,1);const d=h.context.gl;return{u_matrix:u,u_world:[d.drawingBufferWidth,d.drawingBufferHeight],u_image:i,u_color_ramp:l,u_opacity:e.paint.get("heatmap-opacity")}},Mp=(h,e,i)=>{const l=i.paint.get("hillshade-accent-color");let u;switch(i.paint.get("hillshade-method")){case"basic":u=4;break;case"combined":u=1;break;case"igor":u=2;break;case"multidirectional":u=3;break;default:u=0}const d=i.getIlluminationProperties();for(let g=0;g{const i=e.stride,l=s.L();return s.bY(l,0,s.$,-s.$,0,0,1),s.M(l,l,[0,-s.$,0]),{u_matrix:l,u_image:1,u_dimension:[i,i],u_zoom:h.overscaledZ,u_unpack:e.getUnpackVector()}};function Bc(h,e){const i=Math.pow(2,e.canonical.z),l=e.canonical.y;return[new s.a1(0,l/i).toLngLat().lat,new s.a1(0,(l+1)/i).toLngLat().lat]}const Vh=(h,e,i=0)=>({u_image:0,u_unpack:e.getUnpackVector(),u_dimension:[e.stride,e.stride],u_elevation_stops:1,u_color_stops:4,u_color_ramp_size:i,u_opacity:h.paint.get("color-relief-opacity")}),Cl=(h,e,i,l)=>{const u=h.transform;return{u_translation:Oc(h,e,i),u_ratio:l/s.aC(e,1,u.zoom),u_device_pixel_ratio:h.pixelRatio,u_units_to_pixels:[1/u.pixelsToGLUnits[0],1/u.pixelsToGLUnits[1]]}},qh=(h,e,i,l,u)=>s.e(Cl(h,e,i,l),{u_image:0,u_image_height:u}),Zh=(h,e,i,l,u)=>{const d=h.transform,g=Fc(e,d);return{u_translation:Oc(h,e,i),u_texsize:e.imageAtlasTexture.size,u_ratio:l/s.aC(e,1,d.zoom),u_device_pixel_ratio:h.pixelRatio,u_image:0,u_scale:[g,u.fromScale,u.toScale],u_fade:u.t,u_units_to_pixels:[1/d.pixelsToGLUnits[0],1/d.pixelsToGLUnits[1]]}},Eo=(h,e,i,l,u,d)=>{const g=h.lineAtlas,w=Fc(e,h.transform),C=i.layout.get("line-cap")==="round",P=g.getDash(u.from,C),E=g.getDash(u.to,C),R=P.width*d.fromScale,D=E.width*d.toScale;return s.e(Cl(h,e,i,l),{u_patternscale_a:[w/R,-P.height/2],u_patternscale_b:[w/D,-E.height/2],u_sdfgamma:g.width/(256*Math.min(R,D)*h.pixelRatio)/2,u_image:0,u_tex_y_a:P.y,u_tex_y_b:E.y,u_mix:d.t})};function Fc(h,e){return 1/s.aC(h,1,e.tileZoom)}function Oc(h,e,i){return s.aD(h.transform,e,i.paint.get("line-translate"),i.paint.get("line-translate-anchor"))}const Fs=(h,e,i,l,u)=>{return{u_tl_parent:h,u_scale_parent:e,u_buffer_scale:1,u_fade_t:i.mix,u_opacity:i.opacity*l.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:l.paint.get("raster-brightness-min"),u_brightness_high:l.paint.get("raster-brightness-max"),u_saturation_factor:(g=l.paint.get("raster-saturation"),g>0?1-1/(1.001-g):-g),u_contrast_factor:(d=l.paint.get("raster-contrast"),d>0?1/(1-d):1+d),u_spin_weights:kp(l.paint.get("raster-hue-rotate")),u_coords_top:[u[0].x,u[0].y,u[1].x,u[1].y],u_coords_bottom:[u[3].x,u[3].y,u[2].x,u[2].y]};var d,g};function kp(h){h*=Math.PI/180;const e=Math.sin(h),i=Math.cos(h);return[(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}const Os=(h,e,i,l,u,d,g,w,C,P,E,R,D)=>{const N=g.transform;return{u_is_size_zoom_constant:+(h==="constant"||h==="source"),u_is_size_feature_constant:+(h==="constant"||h==="camera"),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:N.cameraToCenterDistance,u_pitch:N.pitch/360*2*Math.PI,u_rotate_symbol:+i,u_aspect_ratio:N.width/N.height,u_fade_change:g.options.fadeDuration?g.symbolFadeChange:1,u_label_plane_matrix:w,u_coord_matrix:C,u_is_text:+E,u_pitch_with_map:+l,u_is_along_line:u,u_is_variable_anchor:d,u_texsize:R,u_texture:0,u_translation:P,u_pitched_scale:D}},Uh=(h,e,i,l,u,d,g,w,C,P,E,R,D,N)=>{const G=g.transform;return s.e(Os(h,e,i,l,u,d,g,w,C,P,E,R,N),{u_gamma_scale:l?Math.cos(G.pitch*Math.PI/180)*G.cameraToCenterDistance:1,u_device_pixel_ratio:g.pixelRatio,u_is_halo:1})},Ap=(h,e,i,l,u,d,g,w,C,P,E,R,D)=>s.e(Uh(h,e,i,l,u,d,g,w,C,P,!0,E,0,D),{u_texsize_icon:R,u_texture_icon:1}),$h=(h,e)=>({u_opacity:h,u_color:e}),Gh=(h,e,i,l,u)=>s.e((function(d,g,w,C){const P=w.imageManager.getPattern(d.from.toString()),E=w.imageManager.getPattern(d.to.toString()),{width:R,height:D}=w.imageManager.getPixelSize(),N=Math.pow(2,C.tileID.overscaledZ),G=C.tileSize*Math.pow(2,w.transform.tileZoom)/N,te=G*(C.tileID.canonical.x+C.tileID.wrap*N),ee=G*C.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:P.tl,u_pattern_br_a:P.br,u_pattern_tl_b:E.tl,u_pattern_br_b:E.br,u_texsize:[R,D],u_mix:g.t,u_pattern_size_a:P.displaySize,u_pattern_size_b:E.displaySize,u_scale_a:g.fromScale,u_scale_b:g.toScale,u_tile_units_to_pixels:1/s.aC(C,1,w.transform.tileZoom),u_pixel_coord_upper:[te>>16,ee>>16],u_pixel_coord_lower:[65535&te,65535&ee]}})(i,u,e,l),{u_opacity:h}),Nc=(h,e)=>{},jc={fillExtrusion:(h,e)=>({u_lightpos:new s.bT(h,e.u_lightpos),u_lightpos_globe:new s.bT(h,e.u_lightpos_globe),u_lightintensity:new s.bg(h,e.u_lightintensity),u_lightcolor:new s.bT(h,e.u_lightcolor),u_vertical_gradient:new s.bg(h,e.u_vertical_gradient),u_opacity:new s.bg(h,e.u_opacity),u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillExtrusionPattern:(h,e)=>({u_lightpos:new s.bT(h,e.u_lightpos),u_lightpos_globe:new s.bT(h,e.u_lightpos_globe),u_lightintensity:new s.bg(h,e.u_lightintensity),u_lightcolor:new s.bT(h,e.u_lightcolor),u_vertical_gradient:new s.bg(h,e.u_vertical_gradient),u_height_factor:new s.bg(h,e.u_height_factor),u_opacity:new s.bg(h,e.u_opacity),u_fill_translate:new s.bU(h,e.u_fill_translate),u_image:new s.bP(h,e.u_image),u_texsize:new s.bU(h,e.u_texsize),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade)}),fill:(h,e)=>({u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillPattern:(h,e)=>({u_image:new s.bP(h,e.u_image),u_texsize:new s.bU(h,e.u_texsize),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade),u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillOutline:(h,e)=>({u_world:new s.bU(h,e.u_world),u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillOutlinePattern:(h,e)=>({u_world:new s.bU(h,e.u_world),u_image:new s.bP(h,e.u_image),u_texsize:new s.bU(h,e.u_texsize),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade),u_fill_translate:new s.bU(h,e.u_fill_translate)}),circle:(h,e)=>({u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_scale_with_map:new s.bP(h,e.u_scale_with_map),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_extrude_scale:new s.bU(h,e.u_extrude_scale),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_globe_extrude_scale:new s.bg(h,e.u_globe_extrude_scale),u_translate:new s.bU(h,e.u_translate)}),collisionBox:(h,e)=>({u_pixel_extrude_scale:new s.bU(h,e.u_pixel_extrude_scale)}),collisionCircle:(h,e)=>({u_viewport_size:new s.bU(h,e.u_viewport_size)}),debug:(h,e)=>({u_color:new s.bQ(h,e.u_color),u_overlay:new s.bP(h,e.u_overlay),u_overlay_scale:new s.bg(h,e.u_overlay_scale)}),depth:Nc,clippingMask:Nc,heatmap:(h,e)=>({u_extrude_scale:new s.bg(h,e.u_extrude_scale),u_intensity:new s.bg(h,e.u_intensity),u_globe_extrude_scale:new s.bg(h,e.u_globe_extrude_scale)}),heatmapTexture:(h,e)=>({u_matrix:new s.bR(h,e.u_matrix),u_world:new s.bU(h,e.u_world),u_image:new s.bP(h,e.u_image),u_color_ramp:new s.bP(h,e.u_color_ramp),u_opacity:new s.bg(h,e.u_opacity)}),hillshade:(h,e)=>({u_image:new s.bP(h,e.u_image),u_latrange:new s.bU(h,e.u_latrange),u_exaggeration:new s.bg(h,e.u_exaggeration),u_altitudes:new s.b_(h,e.u_altitudes),u_azimuths:new s.b_(h,e.u_azimuths),u_accent:new s.bQ(h,e.u_accent),u_method:new s.bP(h,e.u_method),u_shadows:new s.bZ(h,e.u_shadows),u_highlights:new s.bZ(h,e.u_highlights)}),hillshadePrepare:(h,e)=>({u_matrix:new s.bR(h,e.u_matrix),u_image:new s.bP(h,e.u_image),u_dimension:new s.bU(h,e.u_dimension),u_zoom:new s.bg(h,e.u_zoom),u_unpack:new s.bS(h,e.u_unpack)}),colorRelief:(h,e)=>({u_image:new s.bP(h,e.u_image),u_unpack:new s.bS(h,e.u_unpack),u_dimension:new s.bU(h,e.u_dimension),u_elevation_stops:new s.bP(h,e.u_elevation_stops),u_color_stops:new s.bP(h,e.u_color_stops),u_color_ramp_size:new s.bP(h,e.u_color_ramp_size),u_opacity:new s.bg(h,e.u_opacity)}),line:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels)}),lineGradient:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels),u_image:new s.bP(h,e.u_image),u_image_height:new s.bg(h,e.u_image_height)}),linePattern:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_texsize:new s.bU(h,e.u_texsize),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_image:new s.bP(h,e.u_image),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade)}),lineSDF:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels),u_patternscale_a:new s.bU(h,e.u_patternscale_a),u_patternscale_b:new s.bU(h,e.u_patternscale_b),u_sdfgamma:new s.bg(h,e.u_sdfgamma),u_image:new s.bP(h,e.u_image),u_tex_y_a:new s.bg(h,e.u_tex_y_a),u_tex_y_b:new s.bg(h,e.u_tex_y_b),u_mix:new s.bg(h,e.u_mix)}),raster:(h,e)=>({u_tl_parent:new s.bU(h,e.u_tl_parent),u_scale_parent:new s.bg(h,e.u_scale_parent),u_buffer_scale:new s.bg(h,e.u_buffer_scale),u_fade_t:new s.bg(h,e.u_fade_t),u_opacity:new s.bg(h,e.u_opacity),u_image0:new s.bP(h,e.u_image0),u_image1:new s.bP(h,e.u_image1),u_brightness_low:new s.bg(h,e.u_brightness_low),u_brightness_high:new s.bg(h,e.u_brightness_high),u_saturation_factor:new s.bg(h,e.u_saturation_factor),u_contrast_factor:new s.bg(h,e.u_contrast_factor),u_spin_weights:new s.bT(h,e.u_spin_weights),u_coords_top:new s.bS(h,e.u_coords_top),u_coords_bottom:new s.bS(h,e.u_coords_bottom)}),symbolIcon:(h,e)=>({u_is_size_zoom_constant:new s.bP(h,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bP(h,e.u_is_size_feature_constant),u_size_t:new s.bg(h,e.u_size_t),u_size:new s.bg(h,e.u_size),u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_pitch:new s.bg(h,e.u_pitch),u_rotate_symbol:new s.bP(h,e.u_rotate_symbol),u_aspect_ratio:new s.bg(h,e.u_aspect_ratio),u_fade_change:new s.bg(h,e.u_fade_change),u_label_plane_matrix:new s.bR(h,e.u_label_plane_matrix),u_coord_matrix:new s.bR(h,e.u_coord_matrix),u_is_text:new s.bP(h,e.u_is_text),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_is_along_line:new s.bP(h,e.u_is_along_line),u_is_variable_anchor:new s.bP(h,e.u_is_variable_anchor),u_texsize:new s.bU(h,e.u_texsize),u_texture:new s.bP(h,e.u_texture),u_translation:new s.bU(h,e.u_translation),u_pitched_scale:new s.bg(h,e.u_pitched_scale)}),symbolSDF:(h,e)=>({u_is_size_zoom_constant:new s.bP(h,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bP(h,e.u_is_size_feature_constant),u_size_t:new s.bg(h,e.u_size_t),u_size:new s.bg(h,e.u_size),u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_pitch:new s.bg(h,e.u_pitch),u_rotate_symbol:new s.bP(h,e.u_rotate_symbol),u_aspect_ratio:new s.bg(h,e.u_aspect_ratio),u_fade_change:new s.bg(h,e.u_fade_change),u_label_plane_matrix:new s.bR(h,e.u_label_plane_matrix),u_coord_matrix:new s.bR(h,e.u_coord_matrix),u_is_text:new s.bP(h,e.u_is_text),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_is_along_line:new s.bP(h,e.u_is_along_line),u_is_variable_anchor:new s.bP(h,e.u_is_variable_anchor),u_texsize:new s.bU(h,e.u_texsize),u_texture:new s.bP(h,e.u_texture),u_gamma_scale:new s.bg(h,e.u_gamma_scale),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_is_halo:new s.bP(h,e.u_is_halo),u_translation:new s.bU(h,e.u_translation),u_pitched_scale:new s.bg(h,e.u_pitched_scale)}),symbolTextAndIcon:(h,e)=>({u_is_size_zoom_constant:new s.bP(h,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bP(h,e.u_is_size_feature_constant),u_size_t:new s.bg(h,e.u_size_t),u_size:new s.bg(h,e.u_size),u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_pitch:new s.bg(h,e.u_pitch),u_rotate_symbol:new s.bP(h,e.u_rotate_symbol),u_aspect_ratio:new s.bg(h,e.u_aspect_ratio),u_fade_change:new s.bg(h,e.u_fade_change),u_label_plane_matrix:new s.bR(h,e.u_label_plane_matrix),u_coord_matrix:new s.bR(h,e.u_coord_matrix),u_is_text:new s.bP(h,e.u_is_text),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_is_along_line:new s.bP(h,e.u_is_along_line),u_is_variable_anchor:new s.bP(h,e.u_is_variable_anchor),u_texsize:new s.bU(h,e.u_texsize),u_texsize_icon:new s.bU(h,e.u_texsize_icon),u_texture:new s.bP(h,e.u_texture),u_texture_icon:new s.bP(h,e.u_texture_icon),u_gamma_scale:new s.bg(h,e.u_gamma_scale),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_is_halo:new s.bP(h,e.u_is_halo),u_translation:new s.bU(h,e.u_translation),u_pitched_scale:new s.bg(h,e.u_pitched_scale)}),background:(h,e)=>({u_opacity:new s.bg(h,e.u_opacity),u_color:new s.bQ(h,e.u_color)}),backgroundPattern:(h,e)=>({u_opacity:new s.bg(h,e.u_opacity),u_image:new s.bP(h,e.u_image),u_pattern_tl_a:new s.bU(h,e.u_pattern_tl_a),u_pattern_br_a:new s.bU(h,e.u_pattern_br_a),u_pattern_tl_b:new s.bU(h,e.u_pattern_tl_b),u_pattern_br_b:new s.bU(h,e.u_pattern_br_b),u_texsize:new s.bU(h,e.u_texsize),u_mix:new s.bg(h,e.u_mix),u_pattern_size_a:new s.bU(h,e.u_pattern_size_a),u_pattern_size_b:new s.bU(h,e.u_pattern_size_b),u_scale_a:new s.bg(h,e.u_scale_a),u_scale_b:new s.bg(h,e.u_scale_b),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_tile_units_to_pixels:new s.bg(h,e.u_tile_units_to_pixels)}),terrain:(h,e)=>({u_texture:new s.bP(h,e.u_texture),u_ele_delta:new s.bg(h,e.u_ele_delta),u_fog_matrix:new s.bR(h,e.u_fog_matrix),u_fog_color:new s.bQ(h,e.u_fog_color),u_fog_ground_blend:new s.bg(h,e.u_fog_ground_blend),u_fog_ground_blend_opacity:new s.bg(h,e.u_fog_ground_blend_opacity),u_horizon_color:new s.bQ(h,e.u_horizon_color),u_horizon_fog_blend:new s.bg(h,e.u_horizon_fog_blend),u_is_globe_mode:new s.bg(h,e.u_is_globe_mode)}),terrainDepth:(h,e)=>({u_ele_delta:new s.bg(h,e.u_ele_delta)}),terrainCoords:(h,e)=>({u_texture:new s.bP(h,e.u_texture),u_terrain_coords_id:new s.bg(h,e.u_terrain_coords_id),u_ele_delta:new s.bg(h,e.u_ele_delta)}),projectionErrorMeasurement:(h,e)=>({u_input:new s.bg(h,e.u_input),u_output_expected:new s.bg(h,e.u_output_expected)}),atmosphere:(h,e)=>({u_sun_pos:new s.bT(h,e.u_sun_pos),u_atmosphere_blend:new s.bg(h,e.u_atmosphere_blend),u_globe_position:new s.bT(h,e.u_globe_position),u_globe_radius:new s.bg(h,e.u_globe_radius),u_inv_proj_matrix:new s.bR(h,e.u_inv_proj_matrix)}),sky:(h,e)=>({u_sky_color:new s.bQ(h,e.u_sky_color),u_horizon_color:new s.bQ(h,e.u_horizon_color),u_horizon:new s.bU(h,e.u_horizon),u_horizon_normal:new s.bU(h,e.u_horizon_normal),u_sky_horizon_blend:new s.bg(h,e.u_sky_horizon_blend),u_sky_blend:new s.bg(h,e.u_sky_blend)})};class Hh{constructor(e,i,l){this.context=e;const u=e.gl;this.buffer=u.createBuffer(),this.dynamicDraw=!!l,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),u.bufferData(u.ELEMENT_ARRAY_BUFFER,i.arrayBuffer,this.dynamicDraw?u.DYNAMIC_DRAW:u.STATIC_DRAW),this.dynamicDraw||delete i.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(e){const i=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),i.bufferSubData(i.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const Sl={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class eo{constructor(e,i,l,u){this.length=i.length,this.attributes=l,this.itemSize=i.bytesPerElement,this.dynamicDraw=u,this.context=e;const d=e.gl;this.buffer=d.createBuffer(),e.bindVertexBuffer.set(this.buffer),d.bufferData(d.ARRAY_BUFFER,i.arrayBuffer,this.dynamicDraw?d.DYNAMIC_DRAW:d.STATIC_DRAW),this.dynamicDraw||delete i.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(e){if(e.length!==this.length)throw new Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`);const i=this.context.gl;this.bind(),i.bufferSubData(i.ARRAY_BUFFER,0,e.arrayBuffer)}enableAttributes(e,i){for(let l=0;l0&&(P.push({circleArray:be,circleOffset:R,coord:ue}),E+=be.length/4,R=E),me&&C.draw(d,w.LINES,$r.disabled,cn.disabled,h.colorModeForRenderPass(),Rr.disabled,Tl(h.transform),h.style.map.terrain&&h.style.map.terrain.getTerrainData(ue),g.getProjectionData({overscaledTileID:ue,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),i.id,me.layoutVertexBuffer,me.indexBuffer,me.segments,null,h.transform.zoom,null,null,me.collisionVertexBuffer)}if(!u||!P.length)return;const D=h.useProgram("collisionCircle"),N=new s.b$;N.resize(4*E),N._trim();let G=0;for(const ie of P)for(let ue=0;ue=0&&(te[ie.associatedIconIndex]={shiftedAnchor:Tt,angle:gr})}else sn(ie.numGlyphs,N)}if(C){G.clear();const ee=h.icon.placedSymbolArray;for(let ie=0;ieh.style.map.terrain.getElevation(Ge,ba,ci):null,_i=i.layout.get("text-rotation-alignment")==="map";Yr(tt,h,u,$i,za,ie,P,_i,Ge.toUnwrapped(),te.width,te.height,vo,li)}const qo=u&&_e||Vo,ta=ue||qo?Fp:ie?$i:h.transform.clipSpaceToPixelsMatrix,La=Tt&&i.paint.get(u?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let Gi;Gi=Tt?tt.iconsInText?Ap(gr.kind,Rn,ve,ie,ue,qo,h,ta,go,vo,Wn,si,rt):Uh(gr.kind,Rn,ve,ie,ue,qo,h,ta,go,vo,u,Wn,0,rt):Os(gr.kind,Rn,ve,ie,ue,qo,h,ta,go,vo,u,Wn,rt);const yo={program:An,buffers:jt,uniformValues:Gi,projectionData:fs,atlasTexture:Jn,atlasTextureIcon:mi,atlasInterpolation:Kr,atlasInterpolationIcon:Bn,isSDF:Tt,hasHalo:La};if(me&&tt.canOverlap){be=!0;const li=jt.segments.get();for(const _i of li)Be.push({segments:new s.aM([_i]),sortKey:_i.sortKey,state:yo,terrainData:Ln})}else Be.push({segments:jt.segments,sortKey:0,state:yo,terrainData:Ln})}be&&Be.sort(((Ge,Xe)=>Ge.sortKey-Xe.sortKey));for(const Ge of Be){const Xe=Ge.state;if(N.activeTexture.set(G.TEXTURE0),Xe.atlasTexture.bind(Xe.atlasInterpolation,G.CLAMP_TO_EDGE),Xe.atlasTextureIcon&&(N.activeTexture.set(G.TEXTURE1),Xe.atlasTextureIcon&&Xe.atlasTextureIcon.bind(Xe.atlasInterpolationIcon,G.CLAMP_TO_EDGE)),Xe.isSDF){const tt=Xe.uniformValues;Xe.hasHalo&&(tt.u_is_halo=1,Zs(Xe.buffers,Ge.segments,i,h,Xe.program,Pe,E,R,tt,Xe.projectionData,Ge.terrainData)),tt.u_is_halo=0}Zs(Xe.buffers,Ge.segments,i,h,Xe.program,Pe,E,R,Xe.uniformValues,Xe.projectionData,Ge.terrainData)}}function Zs(h,e,i,l,u,d,g,w,C,P,E){const R=l.context;u.draw(R,R.gl.TRIANGLES,d,g,w,Rr.backCCW,C,E,P,i.id,h.layoutVertexBuffer,h.indexBuffer,e,i.paint,l.transform.zoom,h.programConfigurations.get(i.id),h.dynamicLayoutVertexBuffer,h.opacityVertexBuffer)}function Xc(h,e,i,l,u){const d=h.context,g=d.gl,w=cn.disabled,C=new zn([g.ONE,g.ONE],s.bf.transparent,[!0,!0,!0,!0]),P=e.getBucket(i);if(!P)return;const E=l.key;let R=i.heatmapFbos.get(E);R||(R=Us(d,e.tileSize,e.tileSize),i.heatmapFbos.set(E,R)),d.bindFramebuffer.set(R.framebuffer),d.viewport.set([0,0,e.tileSize,e.tileSize]),d.clear({color:s.bf.transparent});const D=P.programConfigurations.get(i.id),N=h.useProgram("heatmap",D,!u),G=h.transform.getProjectionData({overscaledTileID:e.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),te=h.style.map.terrain.getTerrainData(l);N.draw(d,g.TRIANGLES,$r.disabled,w,C,Rr.disabled,Nh(e,h.transform.zoom,i.paint.get("heatmap-intensity"),1),te,G,i.id,P.layoutVertexBuffer,P.indexBuffer,P.segments,i.paint,h.transform.zoom,D)}function id(h,e,i,l,u){const d=h.context,g=d.gl,w=h.transform;d.setColorMode(h.colorModeForRenderPass());const C=$s(d,e),P=i.key,E=e.heatmapFbos.get(P);if(!E)return;d.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,E.colorAttachment.get()),d.activeTexture.set(g.TEXTURE1),C.bind(g.LINEAR,g.CLAMP_TO_EDGE);const R=w.getProjectionData({overscaledTileID:i,applyTerrainMatrix:u,applyGlobeMatrix:!l});h.useProgram("heatmapTexture").draw(d,g.TRIANGLES,$r.disabled,cn.disabled,h.colorModeForRenderPass(),Rr.disabled,Rc(h,e,0,1),null,R,e.id,h.rasterBoundsBuffer,h.quadTriangleIndexBuffer,h.rasterBoundsSegments,e.paint,w.zoom),E.destroy(),e.heatmapFbos.delete(P)}function Us(h,e,i){var l,u;const d=h.gl,g=d.createTexture();d.bindTexture(d.TEXTURE_2D,g),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.LINEAR);const w=(l=h.HALF_FLOAT)!==null&&l!==void 0?l:d.UNSIGNED_BYTE,C=(u=h.RGBA16F)!==null&&u!==void 0?u:d.RGBA;d.texImage2D(d.TEXTURE_2D,0,C,e,i,0,d.RGBA,w,null);const P=h.createFramebuffer(e,i,!1,!1);return P.colorAttachment.set(g),P}function $s(h,e){return e.colorRampTexture||(e.colorRampTexture=new s.T(h,e.colorRamp,h.gl.RGBA)),e.colorRampTexture}function Gs(h,e,i,l,u){if(!i||!l||!l.imageAtlas)return;const d=l.imageAtlas.patternPositions;let g=d[i.to.toString()],w=d[i.from.toString()];if(!g&&w&&(g=w),!w&&g&&(w=g),!g||!w){const C=u.getPaintProperty(e);g=d[C],w=d[C]}g&&w&&h.setConstantPatternPositions(g,w)}function Ll(h,e,i,l,u,d,g,w){const C=h.context.gl,P="fill-pattern",E=i.paint.get(P),R=E&&E.constantOr(1),D=i.getCrossfadeParameters();let N,G,te,ee,ie;const ue=h.transform,ve=i.paint.get("fill-translate"),me=i.paint.get("fill-translate-anchor");g?(G=R&&!i.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",N=C.LINES):(G=R?"fillPattern":"fill",N=C.TRIANGLES);const be=E.constantOr(null);for(const Pe of l){const _e=e.getTile(Pe);if(R&&!_e.patternsLoaded())continue;const Be=_e.getBucket(i);if(!Be)continue;const rt=Be.programConfigurations.get(i.id),Ge=h.useProgram(G,rt),Xe=h.style.map.terrain&&h.style.map.terrain.getTerrainData(Pe);R&&(h.context.activeTexture.set(C.TEXTURE0),_e.imageAtlasTexture.bind(C.LINEAR,C.CLAMP_TO_EDGE),rt.updatePaintBuffers(D)),Gs(rt,P,be,_e,i);const tt=ue.getProjectionData({overscaledTileID:Pe,applyGlobeMatrix:!w,applyTerrainMatrix:!0}),jt=s.aD(ue,_e,ve,me);if(g){ee=Be.indexBuffer2,ie=Be.segments2;const Tt=[C.drawingBufferWidth,C.drawingBufferHeight];te=G==="fillOutlinePattern"&&R?Bs(h,D,_e,Tt,jt):Rs(Tt,jt)}else ee=Be.indexBuffer,ie=Be.segments,te=R?wl(h,D,_e,jt):{u_fill_translate:jt};const Zt=h.stencilModeForClipping(Pe);Ge.draw(h.context,N,u,Zt,d,Rr.backCCW,te,Xe,tt,i.id,Be.layoutVertexBuffer,ee,ie,i.paint,h.transform.zoom,rt)}}function Yc(h,e,i,l,u,d,g,w){const C=h.context,P=C.gl,E="fill-extrusion-pattern",R=i.paint.get(E),D=R.constantOr(1),N=i.getCrossfadeParameters(),G=i.paint.get("fill-extrusion-opacity"),te=R.constantOr(null),ee=h.transform;for(const ie of l){const ue=e.getTile(ie),ve=ue.getBucket(i);if(!ve)continue;const me=h.style.map.terrain&&h.style.map.terrain.getTerrainData(ie),be=ve.programConfigurations.get(i.id),Pe=h.useProgram(D?"fillExtrusionPattern":"fillExtrusion",be);D&&(h.context.activeTexture.set(P.TEXTURE0),ue.imageAtlasTexture.bind(P.LINEAR,P.CLAMP_TO_EDGE),be.updatePaintBuffers(N));const _e=ee.getProjectionData({overscaledTileID:ie,applyGlobeMatrix:!w,applyTerrainMatrix:!0});Gs(be,E,te,ue,i);const Be=s.aD(ee,ue,i.paint.get("fill-extrusion-translate"),i.paint.get("fill-extrusion-translate-anchor")),rt=i.paint.get("fill-extrusion-vertical-gradient"),Ge=D?Sp(h,rt,G,Be,ie,N,ue):Pa(h,rt,G,Be);Pe.draw(C,C.gl.TRIANGLES,u,d,g,Rr.backCCW,Ge,me,_e,i.id,ve.layoutVertexBuffer,ve.indexBuffer,ve.segments,i.paint,h.transform.zoom,be,h.style.map.terrain&&ve.centroidVertexBuffer)}}function Ro(h,e,i,l,u,d,g,w,C){var P;const E=h.style.projection,R=h.context,D=h.transform,N=R.gl,G=[`#define NUM_ILLUMINATION_SOURCES ${i.paint.get("hillshade-highlight-color").values.length}`],te=h.useProgram("hillshade",null,!1,G),ee=!h.options.moving;for(const ie of l){const ue=e.getTile(ie),ve=ue.fbo;if(!ve)continue;const me=E.getMeshFromTileID(R,ie.canonical,w,!0,"raster"),be=(P=h.style.map.terrain)===null||P===void 0?void 0:P.getTerrainData(ie);R.activeTexture.set(N.TEXTURE0),N.bindTexture(N.TEXTURE_2D,ve.colorAttachment.get());const Pe=D.getProjectionData({overscaledTileID:ie,aligned:ee,applyGlobeMatrix:!C,applyTerrainMatrix:!0});te.draw(R,N.TRIANGLES,d,u[ie.overscaledZ],g,Rr.backCCW,Mp(h,ue,i),be,Pe,i.id,me.vertexBuffer,me.indexBuffer,me.segments)}}function Kc(h,e,i,l,u,d,g,w,C){var P;const E=h.style.projection,R=h.context,D=h.transform,N=R.gl,G=h.useProgram("colorRelief"),te=!h.options.moving;let ee=!0,ie=0;for(const ue of l){const ve=e.getTile(ue),me=ve.dem;if(ee){const Ge=N.getParameter(N.MAX_TEXTURE_SIZE),{elevationTexture:Xe,colorTexture:tt}=i.getColorRampTextures(R,Ge,me.getUnpackVector());R.activeTexture.set(N.TEXTURE1),Xe.bind(N.NEAREST,N.CLAMP_TO_EDGE),R.activeTexture.set(N.TEXTURE4),tt.bind(N.LINEAR,N.CLAMP_TO_EDGE),ee=!1,ie=Xe.size[0]}if(!me||!me.data)continue;const be=me.stride,Pe=me.getPixels();if(R.activeTexture.set(N.TEXTURE0),R.pixelStoreUnpackPremultiplyAlpha.set(!1),ve.demTexture=ve.demTexture||h.getTileTexture(be),ve.demTexture){const Ge=ve.demTexture;Ge.update(Pe,{premultiply:!1}),Ge.bind(N.LINEAR,N.CLAMP_TO_EDGE)}else ve.demTexture=new s.T(R,Pe,N.RGBA,{premultiply:!1}),ve.demTexture.bind(N.LINEAR,N.CLAMP_TO_EDGE);const _e=E.getMeshFromTileID(R,ue.canonical,w,!0,"raster"),Be=(P=h.style.map.terrain)===null||P===void 0?void 0:P.getTerrainData(ue),rt=D.getProjectionData({overscaledTileID:ue,aligned:te,applyGlobeMatrix:!C,applyTerrainMatrix:!0});G.draw(R,N.TRIANGLES,d,u[ue.overscaledZ],g,Rr.backCCW,Vh(i,ve.dem,ie),Be,rt,i.id,_e.vertexBuffer,_e.indexBuffer,_e.segments)}}const Dl=[new s.P(0,0),new s.P(s.$,0),new s.P(s.$,s.$),new s.P(0,s.$)];function Bo(h,e,i,l,u,d,g,w,C=!1,P=!1){const E=l[l.length-1].overscaledZ,R=h.context,D=R.gl,N=h.useProgram("raster"),G=h.transform,te=h.style.projection,ee=h.colorModeForRenderPass(),ie=!h.options.moving;for(const ue of l){const ve=h.getDepthModeForSublayer(ue.overscaledZ-E,i.paint.get("raster-opacity")===1?$r.ReadWrite:$r.ReadOnly,D.LESS),me=e.getTile(ue);me.registerFadeDuration(i.paint.get("raster-fade-duration"));const be=e.findLoadedParent(ue,0),Pe=e.findLoadedSibling(ue),_e=Jc(me,be||Pe||null,e,i,h.transform,h.style.map.terrain);let Be,rt;const Ge=i.paint.get("raster-resampling")==="nearest"?D.NEAREST:D.LINEAR;R.activeTexture.set(D.TEXTURE0),me.texture.bind(Ge,D.CLAMP_TO_EDGE,D.LINEAR_MIPMAP_NEAREST),R.activeTexture.set(D.TEXTURE1),be?(be.texture.bind(Ge,D.CLAMP_TO_EDGE,D.LINEAR_MIPMAP_NEAREST),Be=Math.pow(2,be.tileID.overscaledZ-me.tileID.overscaledZ),rt=[me.tileID.canonical.x*Be%1,me.tileID.canonical.y*Be%1]):me.texture.bind(Ge,D.CLAMP_TO_EDGE,D.LINEAR_MIPMAP_NEAREST),me.texture.useMipmap&&R.extTextureFilterAnisotropic&&h.transform.pitch>20&&D.texParameterf(D.TEXTURE_2D,R.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,R.extTextureFilterAnisotropicMax);const Xe=h.style.map.terrain&&h.style.map.terrain.getTerrainData(ue),tt=G.getProjectionData({overscaledTileID:ue,aligned:ie,applyGlobeMatrix:!P,applyTerrainMatrix:!0}),jt=Fs(rt||[0,0],Be||1,_e,i,w),Zt=te.getMeshFromTileID(R,ue.canonical,d,g,"raster");N.draw(R,D.TRIANGLES,ve,u?u[ue.overscaledZ]:cn.disabled,ee,C?Rr.frontCCW:Rr.backCCW,jt,Xe,tt,i.id,Zt.vertexBuffer,Zt.indexBuffer,Zt.segments)}}function Jc(h,e,i,l,u,d){const g=l.paint.get("raster-fade-duration");if(!d&&g>0){const w=ne.now(),C=(w-h.timeAdded)/g,P=e?(w-e.timeAdded)/g:-1,E=i.getSource(),R=kt(u,{tileSize:E.tileSize,roundZoom:E.roundZoom}),D=!e||Math.abs(e.tileID.overscaledZ-R)>Math.abs(h.tileID.overscaledZ-R),N=D&&h.refreshedUponExpiration?1:s.ah(D?C:1-P,0,1);return h.refreshedUponExpiration&&C>=1&&(h.refreshedUponExpiration=!1),e?{opacity:1,mix:1-N}:{opacity:N,mix:0}}return{opacity:1,mix:0}}const ad=new s.bf(1,0,0,1),od=new s.bf(0,1,0,1),Rl=new s.bf(0,0,1,1),Qc=new s.bf(1,0,1,1),Np=new s.bf(0,1,1,1);function eu(h,e,i,l){Ua(h,0,e+i/2,h.transform.width,i,l)}function Kn(h,e,i,l){Ua(h,e-i/2,0,i,h.transform.height,l)}function Ua(h,e,i,l,u,d){const g=h.context,w=g.gl;w.enable(w.SCISSOR_TEST),w.scissor(e*h.pixelRatio,i*h.pixelRatio,l*h.pixelRatio,u*h.pixelRatio),g.clear({color:d}),w.disable(w.SCISSOR_TEST)}function ya(h,e,i){const l=h.context,u=l.gl,d=h.useProgram("debug"),g=$r.disabled,w=cn.disabled,C=h.colorModeForRenderPass(),P="$debug",E=h.style.map.terrain&&h.style.map.terrain.getTerrainData(i);l.activeTexture.set(u.TEXTURE0);const R=e.getTileByID(i.key).latestRawTileData,D=Math.floor((R&&R.byteLength||0)/1024),N=e.getTile(i).tileSize,G=512/Math.min(N,512)*(i.overscaledZ/h.transform.zoom)*.5;let te=i.canonical.toString();i.overscaledZ!==i.canonical.z&&(te+=` => ${i.overscaledZ}`),(function(ie,ue){ie.initDebugOverlayCanvas();const ve=ie.debugOverlayCanvas,me=ie.context.gl,be=ie.debugOverlayCanvas.getContext("2d");be.clearRect(0,0,ve.width,ve.height),be.shadowColor="white",be.shadowBlur=2,be.lineWidth=1.5,be.strokeStyle="white",be.textBaseline="top",be.font="bold 36px Open Sans, sans-serif",be.fillText(ue,5,5),be.strokeText(ue,5,5),ie.debugOverlayTexture.update(ve),ie.debugOverlayTexture.bind(me.LINEAR,me.CLAMP_TO_EDGE)})(h,`${te} ${D}kB`);const ee=h.transform.getProjectionData({overscaledTileID:i,applyGlobeMatrix:!0,applyTerrainMatrix:!0});d.draw(l,u.TRIANGLES,g,w,zn.alphaBlended,Rr.disabled,Ao(s.bf.transparent,G),null,ee,P,h.debugBuffer,h.quadTriangleIndexBuffer,h.debugSegments),d.draw(l,u.LINE_STRIP,g,w,C,Rr.disabled,Ao(s.bf.red),E,ee,P,h.debugBuffer,h.tileBorderIndexBuffer,h.debugSegments)}function Bl(h,e,i,l){const{isRenderingGlobe:u}=l,d=h.context,g=d.gl,w=h.transform,C=h.colorModeForRenderPass(),P=h.getDepthModeFor3D(),E=h.useProgram("terrain");d.bindFramebuffer.set(null),d.viewport.set([0,0,h.width,h.height]);for(const R of i){const D=e.getTerrainMesh(R.tileID),N=h.renderToTexture.getTexture(R),G=e.getTerrainData(R.tileID);d.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,N.texture);const te=e.getMeshFrameDelta(w.zoom),ee=w.calculateFogMatrix(R.tileID.toUnwrapped()),ie=xl(te,ee,h.style.sky,w.pitch,u),ue=w.getProjectionData({overscaledTileID:R.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});E.draw(d,g.TRIANGLES,P,cn.disabled,C,Rr.backCCW,ie,G,ue,"terrain",D.vertexBuffer,D.indexBuffer,D.segments)}}function Hs(h,e){if(!e.mesh){const i=new s.aL;i.emplaceBack(-1,-1),i.emplaceBack(1,-1),i.emplaceBack(1,1),i.emplaceBack(-1,1);const l=new s.aN;l.emplaceBack(0,1,2),l.emplaceBack(0,2,3),e.mesh=new Tn(h.createVertexBuffer(i,nn.members),h.createIndexBuffer(l),s.aM.simpleSegment(0,0,i.length,l.length))}return e.mesh}class sd{constructor(e,i){this.context=new td(e),this.transform=i,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:s.ag(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=cr.maxUnderzooming+cr.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new ar}resize(e,i,l){if(this.width=Math.floor(e*l),this.height=Math.floor(i*l),this.pixelRatio=l,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const u of this.style._order)this.style._layers[u].resize()}setup(){const e=this.context,i=new s.aL;i.emplaceBack(0,0),i.emplaceBack(s.$,0),i.emplaceBack(0,s.$),i.emplaceBack(s.$,s.$),this.tileExtentBuffer=e.createVertexBuffer(i,nn.members),this.tileExtentSegments=s.aM.simpleSegment(0,0,4,2);const l=new s.aL;l.emplaceBack(0,0),l.emplaceBack(s.$,0),l.emplaceBack(0,s.$),l.emplaceBack(s.$,s.$),this.debugBuffer=e.createVertexBuffer(l,nn.members),this.debugSegments=s.aM.simpleSegment(0,0,4,5);const u=new s.c6;u.emplaceBack(0,0,0,0),u.emplaceBack(s.$,0,s.$,0),u.emplaceBack(0,s.$,0,s.$),u.emplaceBack(s.$,s.$,s.$,s.$),this.rasterBoundsBuffer=e.createVertexBuffer(u,Tp.members),this.rasterBoundsSegments=s.aM.simpleSegment(0,0,4,2);const d=new s.aL;d.emplaceBack(0,0),d.emplaceBack(s.$,0),d.emplaceBack(0,s.$),d.emplaceBack(s.$,s.$),this.rasterBoundsBufferPosOnly=e.createVertexBuffer(d,nn.members),this.rasterBoundsSegmentsPosOnly=s.aM.simpleSegment(0,0,4,5);const g=new s.aL;g.emplaceBack(0,0),g.emplaceBack(1,0),g.emplaceBack(0,1),g.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(g,nn.members),this.viewportSegments=s.aM.simpleSegment(0,0,4,2);const w=new s.c7;w.emplaceBack(0),w.emplaceBack(1),w.emplaceBack(3),w.emplaceBack(2),w.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(w);const C=new s.aN;C.emplaceBack(1,0,2),C.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(C);const P=this.context.gl;this.stencilClearMode=new cn({func:P.ALWAYS,mask:0},0,255,P.ZERO,P.ZERO,P.ZERO),this.tileExtentMesh=new Tn(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const e=this.context,i=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const l=s.L();s.bY(l,0,this.width,this.height,0,0,1),s.N(l,l,[i.drawingBufferWidth,i.drawingBufferHeight,0]);const u={mainMatrix:l,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:l};this.useProgram("clippingMask",null,!0).draw(e,i.TRIANGLES,$r.disabled,this.stencilClearMode,zn.disabled,Rr.disabled,null,null,u,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(e,i,l){if(this.currentStencilSource===e.source||!e.isTileClipped()||!i||!i.length)return;this.currentStencilSource=e.source,this.nextStencilID+i.length>256&&this.clearStencil();const u=this.context;u.setColorMode(zn.disabled),u.setDepthMode($r.disabled);const d={};for(const g of i)d[g.key]=this.nextStencilID++;this._renderTileMasks(d,i,l,!0),this._renderTileMasks(d,i,l,!1),this._tileClippingMaskIDs=d}_renderTileMasks(e,i,l,u){const d=this.context,g=d.gl,w=this.style.projection,C=this.transform,P=this.useProgram("clippingMask");for(const E of i){const R=e[E.key],D=this.style.map.terrain&&this.style.map.terrain.getTerrainData(E),N=w.getMeshFromTileID(this.context,E.canonical,u,!0,"stencil"),G=C.getProjectionData({overscaledTileID:E,applyGlobeMatrix:!l,applyTerrainMatrix:!0});P.draw(d,g.TRIANGLES,$r.disabled,new cn({func:g.ALWAYS,mask:0},R,255,g.KEEP,g.KEEP,g.REPLACE),zn.disabled,l?Rr.disabled:Rr.backCCW,null,D,G,"$clipping",N.vertexBuffer,N.indexBuffer,N.segments)}}_renderTilesDepthBuffer(){const e=this.context,i=e.gl,l=this.style.projection,u=this.transform,d=this.useProgram("depth"),g=this.getDepthModeFor3D(),w=xe(u,{tileSize:u.tileSize});for(const C of w){const P=this.style.map.terrain&&this.style.map.terrain.getTerrainData(C),E=l.getMeshFromTileID(this.context,C.canonical,!0,!0,"raster"),R=u.getProjectionData({overscaledTileID:C,applyGlobeMatrix:!0,applyTerrainMatrix:!0});d.draw(e,i.TRIANGLES,g,cn.disabled,zn.disabled,Rr.backCCW,null,P,R,"$clipping",E.vertexBuffer,E.indexBuffer,E.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const e=this.nextStencilID++,i=this.context.gl;return new cn({func:i.NOTEQUAL,mask:255},e,255,i.KEEP,i.KEEP,i.REPLACE)}stencilModeForClipping(e){const i=this.context.gl;return new cn({func:i.EQUAL,mask:255},this._tileClippingMaskIDs[e.key],0,i.KEEP,i.KEEP,i.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(e){const i=this.context.gl,l=e.sort(((g,w)=>w.overscaledZ-g.overscaledZ)),u=l[l.length-1].overscaledZ,d=l[0].overscaledZ-u+1;if(d>1){this.currentStencilSource=void 0,this.nextStencilID+d>256&&this.clearStencil();const g={};for(let w=0;ww.overscaledZ-g.overscaledZ)),u=l[l.length-1].overscaledZ,d=l[0].overscaledZ-u+1;if(this.clearStencil(),d>1){const g={},w={};for(let C=0;C0};for(const D in g){const N=g[D];N.used&&N.prepare(this.context),w[D]=N.getVisibleCoordinates(!1),C[D]=w[D].slice().reverse(),P[D]=N.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let D=0;Dthis.useProgram(D)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:i.showOverdrawInspector?s.bf.black:s.bf.transparent,depth:1}),this.clearStencil(),this.style.sky&&(function(D,N){const G=D.context,te=G.gl,ee=((Pe,_e,Be)=>{const rt=Math.cos(_e.rollInRadians),Ge=Math.sin(_e.rollInRadians),Xe=fe(_e),tt=_e.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:Pe.properties.get("sky-color"),u_horizon_color:Pe.properties.get("horizon-color"),u_horizon:[(_e.width/2-Xe*Ge)*Be,(_e.height/2+Xe*rt)*Be],u_horizon_normal:[-Ge,rt],u_sky_horizon_blend:Pe.properties.get("sky-horizon-blend")*_e.height/2*Be,u_sky_blend:tt}})(N,D.style.map.transform,D.pixelRatio),ie=new $r(te.LEQUAL,$r.ReadWrite,[0,1]),ue=cn.disabled,ve=D.colorModeForRenderPass(),me=D.useProgram("sky"),be=Hs(G,N);me.draw(G,te.TRIANGLES,ie,ue,ve,Rr.disabled,ee,null,void 0,"sky",be.vertexBuffer,be.indexBuffer,be.segments)})(this,this.style.sky),this._showOverdrawInspector=i.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=d.length-1;this.currentLayer>=0;this.currentLayer--){const D=this.style._layers[d[this.currentLayer]],N=g[D.source],G=w[D.source];this._renderTileClippingMasks(D,G,!1),this.renderLayer(this,N,D,G,E)}this.renderPass="translucent";let R=!1;for(this.currentLayer=0;this.currentLayer({u_sun_pos:tt,u_atmosphere_blend:jt,u_globe_position:Zt,u_globe_radius:Tt,u_inv_proj_matrix:gr}))(me,Pe,[rt[0],rt[1],rt[2]],_e,Be),Xe=Hs(te,N);ie.draw(te,ee.TRIANGLES,ue,cn.disabled,zn.alphaBlended,Rr.disabled,Ge,null,null,"atmosphere",Xe.vertexBuffer,Xe.indexBuffer,Xe.segments)})(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const D=(function(N,G){let te=null;const ee=Object.values(N._layers).flatMap((me=>me.source&&!me.isHidden(G)?[N.sourceCaches[me.source]]:[])),ie=ee.filter((me=>me.getSource().type==="vector")),ue=ee.filter((me=>me.getSource().type!=="vector")),ve=me=>{(!te||te.getSource().maxzoomve(me))),te||ue.forEach((me=>ve(me))),te})(this.style,this.transform.zoom);D&&(function(N,G,te){for(let ee=0;eert.getElevation(tt,Wn,Jn):null;Wc(Zt,Ge,Xe,_e,Be,Jr,Rn,Tt,An,s.aD(Be,jt,be,Pe),tt.toUnwrapped(),Ln)}}})(P,g,C,w,C.layout.get("text-rotation-alignment"),C.layout.get("text-pitch-alignment"),C.paint.get("text-translate"),C.paint.get("text-translate-anchor"),E),C.paint.get("icon-opacity").constantOr(1)!==0&&qs(g,w,C,P,!1,C.paint.get("icon-translate"),C.paint.get("icon-translate-anchor"),C.layout.get("icon-rotation-alignment"),C.layout.get("icon-pitch-alignment"),C.layout.get("icon-keep-upright"),N,G,D),C.paint.get("text-opacity").constantOr(1)!==0&&qs(g,w,C,P,!0,C.paint.get("text-translate"),C.paint.get("text-translate-anchor"),C.layout.get("text-rotation-alignment"),C.layout.get("text-pitch-alignment"),C.layout.get("text-keep-upright"),N,G,D),w.map.showCollisionBoxes&&(rd(g,w,C,P,!0),rd(g,w,C,P,!1))})(e,i,l,u,this.style.placement.variableOffsets,d):s.cc(l)?(function(g,w,C,P,E){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:R}=E,D=C.paint.get("circle-opacity"),N=C.paint.get("circle-stroke-width"),G=C.paint.get("circle-stroke-opacity"),te=!C.layout.get("circle-sort-key").isConstant();if(D.constantOr(1)===0&&(N.constantOr(1)===0||G.constantOr(1)===0))return;const ee=g.context,ie=ee.gl,ue=g.transform,ve=g.getDepthModeForSublayer(0,$r.ReadOnly),me=cn.disabled,be=g.colorModeForRenderPass(),Pe=[],_e=ue.getCircleRadiusCorrection();for(let Be=0;BeBe.sortKey-rt.sortKey));for(const Be of Pe){const{programConfiguration:rt,program:Ge,layoutVertexBuffer:Xe,indexBuffer:tt,uniformValues:jt,terrainData:Zt,projectionData:Tt}=Be.state;Ge.draw(ee,ie.TRIANGLES,ve,me,be,Rr.backCCW,jt,Zt,Tt,C.id,Xe,tt,Be.segments,C.paint,g.transform.zoom,rt)}})(e,i,l,u,d):s.cd(l)?(function(g,w,C,P,E){if(C.paint.get("heatmap-opacity")===0)return;const R=g.context,{isRenderingToTexture:D,isRenderingGlobe:N}=E;if(g.style.map.terrain){for(const G of P){const te=w.getTile(G);w.hasRenderableParent(G)||(g.renderPass==="offscreen"?Xc(g,te,C,G,N):g.renderPass==="translucent"&&id(g,C,G,D,N))}R.viewport.set([0,0,g.width,g.height])}else g.renderPass==="offscreen"?(function(G,te,ee,ie){const ue=G.context,ve=ue.gl,me=G.transform,be=cn.disabled,Pe=new zn([ve.ONE,ve.ONE],s.bf.transparent,[!0,!0,!0,!0]);(function(_e,Be,rt){const Ge=_e.gl;_e.activeTexture.set(Ge.TEXTURE1),_e.viewport.set([0,0,Be.width/4,Be.height/4]);let Xe=rt.heatmapFbos.get(s.c2);Xe?(Ge.bindTexture(Ge.TEXTURE_2D,Xe.colorAttachment.get()),_e.bindFramebuffer.set(Xe.framebuffer)):(Xe=Us(_e,Be.width/4,Be.height/4),rt.heatmapFbos.set(s.c2,Xe))})(ue,G,ee),ue.clear({color:s.bf.transparent});for(let _e=0;_e0?i.pop():null}isPatternMissing(e){if(!e)return!1;if(!e.from||!e.to)return!0;const i=this.imageManager.getPattern(e.from.toString()),l=this.imageManager.getPattern(e.to.toString());return!i||!l}useProgram(e,i,l=!1,u=[]){this.cache=this.cache||{};const d=!!this.style.map.terrain,g=this.style.projection,w=l?Ur.projectionMercator:g.shaderPreludeCode,C=l?Cn:g.shaderDefine,P=e+(i?i.cacheKey:"")+`/${l?Gn:g.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(d?"/terrain":"")+(u?`/${u.join("/")}`:"");return this.cache[P]||(this.cache[P]=new Dc(this.context,Ur[e],i,jc[e],this._showOverdrawInspector,d,w,C,u)),this.cache[P]}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 e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new s.T(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:e,drawingBufferHeight:i}=this.context.gl;return this.width!==e||this.height!==i}}function Fo(h,e){let i,l=!1,u=null,d=null;const g=()=>{u=null,l&&(h.apply(d,i),u=setTimeout(g,e),l=!1)};return(...w)=>(l=!0,d=this,i=w,u||g(),u)}class Fl{constructor(e){this._getCurrentHash=()=>{const i=window.location.hash.replace("#","");if(this._hashName){let l;return i.split("&").map((u=>u.split("="))).forEach((u=>{u[0]===this._hashName&&(l=u)})),(l&&l[1]||"").split("/")}return i.split("/")},this._onHashChange=()=>{const i=this._getCurrentHash();if(!this._isValidHash(i))return!1;const l=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(i[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+i[2],+i[1]],zoom:+i[0],bearing:l,pitch:+(i[4]||0)}),!0},this._updateHashUnthrottled=()=>{const i=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,i)},this._removeHash=()=>{const i=this._getCurrentHash();if(i.length===0)return;const l=i.join("/");let u=l;u.split("&").length>0&&(u=u.split("&")[0]),this._hashName&&(u=`${this._hashName}=${l}`);let d=window.location.hash.replace(u,"");d.startsWith("#&")?d=d.slice(0,1)+d.slice(2):d==="#"&&(d="");let g=window.location.href.replace(/(#.+)?$/,d);g=g.replace("&&","&"),window.history.replaceState(window.history.state,null,g)},this._updateHash=Fo(this._updateHashUnthrottled,300),this._hashName=e&&encodeURIComponent(e)}addTo(e){return this._map=e,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(e){const i=this._map.getCenter(),l=Math.round(100*this._map.getZoom())/100,u=Math.ceil((l*Math.LN2+Math.log(512/360/.5))/Math.LN10),d=Math.pow(10,u),g=Math.round(i.lng*d)/d,w=Math.round(i.lat*d)/d,C=this._map.getBearing(),P=this._map.getPitch();let E="";if(E+=e?`/${g}/${w}/${l}`:`${l}/${w}/${g}`,(C||P)&&(E+="/"+Math.round(10*C)/10),P&&(E+=`/${Math.round(P)}`),this._hashName){const R=this._hashName;let D=!1;const N=window.location.hash.slice(1).split("&").map((G=>{const te=G.split("=")[0];return te===R?(D=!0,`${te}=${E}`):G})).filter((G=>G));return D||N.push(`${R}=${E}`),`#${N.join("&")}`}return`#${E}`}_isValidHash(e){if(e.length<3||e.some(isNaN))return!1;try{new s.S(+e[2],+e[1])}catch{return!1}const i=+e[0],l=+(e[3]||0),u=+(e[4]||0);return i>=this._map.getMinZoom()&&i<=this._map.getMaxZoom()&&l>=-180&&l<=180&&u>=this._map.getMinPitch()&&u<=this._map.getMaxPitch()}}const to={linearity:.3,easing:s.cm(0,0,.3,1)},tu=s.e({deceleration:2500,maxSpeed:1400},to),ld=s.e({deceleration:20,maxSpeed:1400},to),cd=s.e({deceleration:1e3,maxSpeed:360},to),ud=s.e({deceleration:1e3,maxSpeed:90},to),hd=s.e({deceleration:1e3,maxSpeed:360},to);class dd{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:ne.now(),settings:e})}_drainInertiaBuffer(){const e=this._inertiaBuffer,i=ne.now();for(;e.length>0&&i-e[0].time>160;)e.shift()}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,roll:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:d}of this._inertiaBuffer)i.zoom+=d.zoomDelta||0,i.bearing+=d.bearingDelta||0,i.pitch+=d.pitchDelta||0,i.roll+=d.rollDelta||0,d.panDelta&&i.pan._add(d.panDelta),d.around&&(i.around=d.around),d.pinchAround&&(i.pinchAround=d.pinchAround);const l=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,u={};if(i.pan.mag()){const d=ns(i.pan.mag(),l,s.e({},tu,e||{})),g=i.pan.mult(d.amount/i.pan.mag()),w=this._map.cameraHelper.handlePanInertia(g,this._map.transform);u.center=w.easingCenter,u.offset=w.easingOffset,Ia(u,d)}if(i.zoom){const d=ns(i.zoom,l,ld);u.zoom=this._map.transform.zoom+d.amount,Ia(u,d)}if(i.bearing){const d=ns(i.bearing,l,cd);u.bearing=this._map.transform.bearing+s.ah(d.amount,-179,179),Ia(u,d)}if(i.pitch){const d=ns(i.pitch,l,ud);u.pitch=this._map.transform.pitch+d.amount,Ia(u,d)}if(i.roll){const d=ns(i.roll,l,hd);u.roll=this._map.transform.roll+s.ah(d.amount,-179,179),Ia(u,d)}if(u.zoom||u.bearing){const d=i.pinchAround===void 0?i.around:i.pinchAround;u.around=d?this._map.unproject(d):this._map.getCenter()}return this.clear(),s.e(u,{noMoveStart:!0})}}function Ia(h,e){(!h.duration||h.durationi.unproject(C))),w=d.reduce(((C,P,E,R)=>C.add(P.div(R.length))),new s.P(0,0));super(e,{points:d,point:w,lngLats:g,lngLat:i.unproject(w),originalEvent:l}),this._defaultPrevented=!1}}class ru extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,i,l){super(e,{originalEvent:l}),this._defaultPrevented=!1}}class pd{constructor(e,i){this._map=e,this._clickTolerance=i.clickTolerance}reset(){delete this._mousedownPos}wheel(e){return this._firePreventable(new ru(e.type,this._map,e))}mousedown(e,i){return this._mousedownPos=i,this._firePreventable(new Qi(e.type,this._map,e))}mouseup(e){this._map.fire(new Qi(e.type,this._map,e))}click(e,i){this._mousedownPos&&this._mousedownPos.dist(i)>=this._clickTolerance||this._map.fire(new Qi(e.type,this._map,e))}dblclick(e){return this._firePreventable(new Qi(e.type,this._map,e))}mouseover(e){this._map.fire(new Qi(e.type,this._map,e))}mouseout(e){this._map.fire(new Qi(e.type,this._map,e))}touchstart(e){return this._firePreventable(new is(e.type,this._map,e))}touchmove(e){this._map.fire(new is(e.type,this._map,e))}touchend(e){this._map.fire(new is(e.type,this._map,e))}touchcancel(e){this._map.fire(new is(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class fd{constructor(e){this._map=e}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(e){this._map.fire(new Qi(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Qi("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new Qi(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class as{constructor(e){this._map=e}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(e){return this.transform.screenPointToLocation(s.P.convert(e),this._map.terrain)}}class nu{constructor(e,i){this._map=e,this._tr=new as(e),this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=i.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,i){this.isEnabled()&&e.shiftKey&&e.button===0&&(H.disableDrag(),this._startPos=this._lastPos=i,this._active=!0)}mousemoveWindow(e,i){if(!this._active)return;const l=i;if(this._lastPos.equals(l)||!this._box&&l.dist(this._startPos)d.fitScreenCoordinates(l,u,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",e)}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",e))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(H.remove(this._box),this._box=null),H.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(e,i){return this._map.fire(new s.l(e,{originalEvent:i}))}}function os(h,e){if(h.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${h.length}, points ${e.length}`);const i={};for(let l=0;lthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=e.timeStamp),l.length===this.numTouches&&(this.centroid=(function(u){const d=new s.P(0,0);for(const g of u)d._add(g);return d.div(u.length)})(i),this.touches=os(l,i)))}touchmove(e,i,l){if(this.aborted||!this.centroid)return;const u=os(l,i);for(const d in this.touches){const g=u[d];(!g||g.dist(this.touches[d])>30)&&(this.aborted=!0)}}touchend(e,i,l){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),l.length===0){const u=!this.aborted&&this.centroid;if(this.reset(),u)return u}}}class ea{constructor(e){this.singleTap=new md(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(e,i,l){this.singleTap.touchstart(e,i,l)}touchmove(e,i,l){this.singleTap.touchmove(e,i,l)}touchend(e,i,l){const u=this.singleTap.touchend(e,i,l);if(u){const d=e.timeStamp-this.lastTime<500,g=!this.lastTap||this.lastTap.dist(u)<30;if(d&&g||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=u,this.count===this.numTaps)return this.reset(),u}}}class Ma{constructor(e){this._tr=new as(e),this._zoomIn=new ea({numTouches:1,numTaps:2}),this._zoomOut=new ea({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,i,l){this._zoomIn.touchstart(e,i,l),this._zoomOut.touchstart(e,i,l)}touchmove(e,i,l){this._zoomIn.touchmove(e,i,l),this._zoomOut.touchmove(e,i,l)}touchend(e,i,l){const u=this._zoomIn.touchend(e,i,l),d=this._zoomOut.touchend(e,i,l),g=this._tr;return u?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:w=>w.easeTo({duration:300,zoom:g.zoom+1,around:g.unproject(u)},{originalEvent:e})}):d?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:w=>w.easeTo({duration:300,zoom:g.zoom-1,around:g.unproject(d)},{originalEvent:e})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ss{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset()}reset(e){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(e)}_move(...e){const i=this._moveFunction(...e);if(i.bearingDelta||i.pitchDelta||i.rollDelta||i.around||i.panDelta)return this._active=!0,i}dragStart(e,i){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(i)?i[0]:i,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(e,i){if(!this.isEnabled())return;const l=this._lastPoint;if(!l)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e))return void this.reset(e);const u=Array.isArray(i)?i[0]:i;return!this._moved&&u.dist(l)!0}),i=new Vp){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=i}_executeRelevantHandler(e,i,l){return e instanceof MouseEvent?i(e):typeof TouchEvent<"u"&&e instanceof TouchEvent?l(e):void 0}startMove(e){this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.startMove(i)),(i=>this.oneFingerTouchMoveStateManager.startMove(i)))}endMove(e){this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.endMove(i)),(i=>this.oneFingerTouchMoveStateManager.endMove(i)))}isValidStartEvent(e){return this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.isValidStartEvent(i)),(i=>this.oneFingerTouchMoveStateManager.isValidStartEvent(i)))}isValidMoveEvent(e){return this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.isValidMoveEvent(i)),(i=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(i)))}isValidEndEvent(e){return this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.isValidEndEvent(i)),(i=>this.oneFingerTouchMoveStateManager.isValidEndEvent(i)))}}const Xs=h=>{h.mousedown=h.dragStart,h.mousemoveWindow=h.dragMove,h.mouseup=h.dragEnd,h.contextmenu=e=>{e.preventDefault()}};class Ys{constructor(e,i){this._clickTolerance=e.clickTolerance||1,this._map=i,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new s.P(0,0)}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,i,l){return this._calculateTransform(e,i,l)}touchmove(e,i,l){if(this._active){if(!this._shouldBePrevented(l.length))return e.preventDefault(),this._calculateTransform(e,i,l);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",e)}}touchend(e,i,l){this._calculateTransform(e,i,l),this._active&&this._shouldBePrevented(l.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(e,i,l){l.length>0&&(this._active=!0);const u=os(l,i),d=new s.P(0,0),g=new s.P(0,0);let w=0;for(const P in u){const E=u[P],R=this._touches[P];R&&(d._add(E),g._add(E.sub(R)),w++,u[P]=E)}if(this._touches=u,this._shouldBePrevented(w)||!g.mag())return;const C=g.div(w);return this._sum._add(C),this._sum.mag()Math.abs(h.x)}class Nl extends Aa{constructor(e){super(),this._currentTouchCount=0,this._map=e}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(e,i,l){super.touchstart(e,i,l),this._currentTouchCount=l.length}_start(e){this._lastPoints=e,Oo(e[0].sub(e[1]))&&(this._valid=!1)}_move(e,i,l){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const u=e[0].sub(this._lastPoints[0]),d=e[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(u,d,l.timeStamp),this._valid?(this._lastPoints=e,this._active=!0,{pitchDelta:(u.y+d.y)/2*-.5}):void 0}gestureBeginsVertically(e,i,l){if(this._valid!==void 0)return this._valid;const u=e.mag()>=2,d=i.mag()>=2;if(!u&&!d)return;if(!u||!d)return this._firstMove===void 0&&(this._firstMove=l),l-this._firstMove<100&&void 0;const g=e.y>0==i.y>0;return Oo(e)&&Oo(i)&&g}}const un={panStep:100,bearingStep:15,pitchStep:10};class jl{constructor(e){this._tr=new as(e);const i=un;this._panStep=i.panStep,this._bearingStep=i.bearingStep,this._pitchStep=i.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let i=0,l=0,u=0,d=0,g=0;switch(e.keyCode){case 61:case 107:case 171:case 187:i=1;break;case 189:case 109:case 173:i=-1;break;case 37:e.shiftKey?l=-1:(e.preventDefault(),d=-1);break;case 39:e.shiftKey?l=1:(e.preventDefault(),d=1);break;case 38:e.shiftKey?u=1:(e.preventDefault(),g=-1);break;case 40:e.shiftKey?u=-1:(e.preventDefault(),g=1);break;default:return}return this._rotationDisabled&&(l=0,u=0),{cameraAnimation:w=>{const C=this._tr;w.easeTo({duration:300,easeId:"keyboardHandler",easing:Zp,zoom:i?Math.round(C.zoom)+i*(e.shiftKey?2:1):C.zoom,bearing:C.bearing+l*this._bearingStep,pitch:C.pitch+u*this._pitchStep,offset:[-d*this._panStep,-g*this._panStep],center:C.center},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function Zp(h){return h*(2-h)}const Vl=4.000244140625,Up=1/450;class _d{constructor(e,i){this._onTimeout=l=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(l)},this._map=e,this._tr=new as(e),this._triggerRenderFrame=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=Up}setZoomRate(e){this._defaultZoomRate=e}setWheelZoomRate(e){this._wheelZoomRate=e}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&e.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(e){return!!this._map.cooperativeGestures.isEnabled()&&!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e))}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",e);let i=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const l=ne.now(),u=l-(this._lastWheelEventTime||0);this._lastWheelEventTime=l,i!==0&&i%Vl==0?this._type="wheel":i!==0&&Math.abs(i)<4?this._type="trackpad":u>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(u*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),e.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=e,this._delta-=i,this._active||this._start(e)),e.preventDefault()}_start(e){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 i=H.mousePos(this._map.getCanvas(),e),l=this._tr;this._aroundPoint=this._aroundCenter?l.transform.locationToScreenPoint(s.S.convert(l.center)):i,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const e=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const w=e.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=w),typeof this._targetZoom=="number"&&(this._targetZoom+=w)}if(this._delta!==0){const w=this._type==="wheel"&&Math.abs(this._delta)>Vl?this._wheelZoomRate:this._defaultZoomRate;let C=2/(1+Math.exp(-Math.abs(this._delta*w)));this._delta<0&&C!==0&&(C=1/C);const P=typeof this._targetZoom!="number"?e.scale:s.af(this._targetZoom);this._targetZoom=e.getConstrained(e.getCameraLngLat(),s.ak(P*C)).zoom,this._type==="wheel"&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const i=typeof this._targetZoom!="number"?e.zoom:this._targetZoom,l=this._startZoom,u=this._easing;let d,g=!1;if(this._type==="wheel"&&l&&u){const w=ne.now()-this._lastWheelEventTime,C=Math.min((w+5)/200,1),P=u(C);d=s.C.number(l,i,P),C<1?this._frameId||(this._frameId=!0):g=!0}else d=i,g=!0;return this._active=!0,g&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout}),200)),this._lastExpectedZoom=d,{noInertia:!0,needsRenderFrame:!g,zoomDelta:d-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let i=s.co;if(this._prevEase){const l=this._prevEase,u=(ne.now()-l.start)/l.duration,d=l.easing(u+.01)-l.easing(u),g=.27/Math.sqrt(d*d+1e-4)*.01,w=Math.sqrt(.0729-g*g);i=s.cm(g,w,.25,1)}return this._prevEase={start:ne.now(),duration:e,easing:i},i}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class ou{constructor(e,i){this._clickZoom=e,this._tapZoom=i}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 su{constructor(e){this._tr=new as(e),this.reset()}reset(){this._active=!1}dblclick(e,i){return e.preventDefault(),{cameraAnimation:l=>{l.easeTo({duration:300,zoom:this._tr.zoom+(e.shiftKey?-1:1),around:this._tr.unproject(i)},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class gd{constructor(){this._tap=new ea({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(e,i,l){if(!this._swipePoint)if(this._tapTime){const u=i[0],d=e.timeStamp-this._tapTime<500,g=this._tapPoint.dist(u)<30;d&&g?l.length>0&&(this._swipePoint=u,this._swipeTouch=l[0].identifier):this.reset()}else this._tap.touchstart(e,i,l)}touchmove(e,i,l){if(this._tapTime){if(this._swipePoint){if(l[0].identifier!==this._swipeTouch)return;const u=i[0],d=u.y-this._swipePoint.y;return this._swipePoint=u,e.preventDefault(),this._active=!0,{zoomDelta:d/128}}}else this._tap.touchmove(e,i,l)}touchend(e,i,l){if(this._tapTime)this._swipePoint&&l.length===0&&this.reset();else{const u=this._tap.touchend(e,i,l);u&&(this._tapTime=e.timeStamp,this._tapPoint=u)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class vd{constructor(e,i,l){this._el=e,this._mousePan=i,this._touchPan=l}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class lu{constructor(e,i,l,u){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=i,this._mousePitch=l,this._mouseRoll=u}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}}class yd{constructor(e,i,l,u){this._el=e,this._touchZoom=i,this._touchRotate=l,this._tapDragZoom=u,this._rotationDisabled=!1,this._enabled=!0}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class xd{constructor(e,i){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=e,this._options=i,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const e=this._map.getCanvasContainer();e.classList.add("maplibregl-cooperative-gestures"),this._container=H.create("div","maplibregl-cooperative-gesture-screen",e);let i=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(i=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const l=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),u=document.createElement("div");u.className="maplibregl-desktop-message",u.textContent=i,this._container.appendChild(u);const d=document.createElement("div");d.className="maplibregl-mobile-message",d.textContent=l,this._container.appendChild(d),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(H.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._destroyUI()}isEnabled(){return this._enabled}isBypassed(e){return e[this._bypassKey]}notifyGestureBlocked(e,i){this._enabled&&(this._map.fire(new s.l("cooperativegestureprevented",{gestureType:e,originalEvent:i})),this._container.classList.add("maplibregl-show"),setTimeout((()=>{this._container.classList.remove("maplibregl-show")}),100))}}const Ea=h=>h.zoom||h.drag||h.roll||h.pitch||h.rotate;class Un extends s.l{}function us(h){return h.panDelta&&h.panDelta.mag()||h.zoomDelta||h.bearingDelta||h.pitchDelta||h.rollDelta}class cu{constructor(e,i){this.handleWindowEvent=u=>{this.handleEvent(u,`${u.type}Window`)},this.handleEvent=(u,d)=>{if(u.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const g=u.type==="renderFrame"?void 0:u,w={needsRenderFrame:!1},C={},P={};for(const{handlerName:D,handler:N,allowed:G}of this._handlers){if(!N.isEnabled())continue;let te;if(this._blockedByActive(P,G,D))N.reset();else if(N[d||u.type]){if(s.cp(u,d||u.type)){const ee=H.mousePos(this._map.getCanvas(),u);te=N[d||u.type](u,ee)}else if(s.cq(u,d||u.type)){const ee=this._getMapTouches(u.touches),ie=H.touchPos(this._map.getCanvas(),ee);te=N[d||u.type](u,ie,ee)}else s.cr(d||u.type)||(te=N[d||u.type](u));this.mergeHandlerResult(w,C,te,D,g),te&&te.needsRenderFrame&&this._triggerRenderFrame()}(te||N.isActive())&&(P[D]=N)}const E={};for(const D in this._previousActiveHandlers)P[D]||(E[D]=g);this._previousActiveHandlers=P,(Object.keys(E).length||us(w))&&(this._changes.push([w,C,E]),this._triggerRenderFrame()),(Object.keys(P).length||us(w))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:R}=w;R&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],R(this._map))},this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new dd(e),this._bearingSnap=i.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(i);const l=this._el;this._listeners=[[l,"touchstart",{passive:!0}],[l,"touchmove",{passive:!1}],[l,"touchend",void 0],[l,"touchcancel",void 0],[l,"mousedown",void 0],[l,"mousemove",void 0],[l,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[l,"mouseover",void 0],[l,"mouseout",void 0],[l,"dblclick",void 0],[l,"click",void 0],[l,"keydown",{capture:!1}],[l,"keyup",void 0],[l,"wheel",{passive:!1}],[l,"contextmenu",void 0],[window,"blur",void 0]];for(const[u,d,g]of this._listeners)H.addEventListener(u,d,u===document?this.handleWindowEvent:this.handleEvent,g)}destroy(){for(const[e,i,l]of this._listeners)H.removeEventListener(e,i,e===document?this.handleWindowEvent:this.handleEvent,l)}_addDefaultHandlers(e){const i=this._map,l=i.getCanvasContainer();this._add("mapEvent",new pd(i,e));const u=i.boxZoom=new nu(i,e);this._add("boxZoom",u),e.interactive&&e.boxZoom&&u.enable();const d=i.cooperativeGestures=new xd(i,e.cooperativeGestures);this._add("cooperativeGestures",d),e.cooperativeGestures&&d.enable();const g=new Ma(i),w=new su(i);i.doubleClickZoom=new ou(w,g),this._add("tapZoom",g),this._add("clickZoom",w),e.interactive&&e.doubleClickZoom&&i.doubleClickZoom.enable();const C=new gd;this._add("tapDragZoom",C);const P=i.touchPitch=new Nl(i);this._add("touchPitch",P),e.interactive&&e.touchPitch&&i.touchPitch.enable(e.touchPitch);const E=()=>i.project(i.getCenter()),R=(function({enable:me,clickTolerance:be,aroundCenter:Pe=!0,minPixelCenterThreshold:_e=100,rotateDegreesPerPixelMoved:Be=.8},rt){const Ge=new Ws({checkCorrectEvent:Xe=>H.mouseButton(Xe)===0&&Xe.ctrlKey||H.mouseButton(Xe)===2&&!Xe.ctrlKey});return new ss({clickTolerance:be,move:(Xe,tt)=>{const jt=rt();if(Pe&&Math.abs(jt.y-Xe.y)>_e)return{bearingDelta:s.cn(new s.P(Xe.x,tt.y),tt,jt)};let Zt=(tt.x-Xe.x)*Be;return Pe&&tt.yH.mouseButton(Be)===0&&Be.ctrlKey||H.mouseButton(Be)===2});return new ss({clickTolerance:be,move:(Be,rt)=>({pitchDelta:(rt.y-Be.y)*Pe}),moveStateManager:_e,enable:me,assignEvents:Xs})})(e),N=(function({enable:me,clickTolerance:be,rollDegreesPerPixelMoved:Pe=.3},_e){const Be=new Ws({checkCorrectEvent:rt=>H.mouseButton(rt)===2&&rt.ctrlKey});return new ss({clickTolerance:be,move:(rt,Ge)=>{const Xe=_e();let tt=(Ge.x-rt.x)*Pe;return Ge.yH.mouseButton(_e)===0&&!_e.ctrlKey});return new ss({clickTolerance:be,move:(_e,Be)=>({around:Be,panDelta:Be.sub(_e)}),activateOnStart:!0,moveStateManager:Pe,enable:me,assignEvents:Xs})})(e),te=new Ys(e,i);i.dragPan=new vd(l,G,te),this._add("mousePan",G),this._add("touchPan",te,["touchZoom","touchRotate"]),e.interactive&&e.dragPan&&i.dragPan.enable(e.dragPan);const ee=new cs,ie=new Ol;i.touchZoomRotate=new yd(l,ie,ee,C),this._add("touchRotate",ee,["touchPan","touchZoom"]),this._add("touchZoom",ie,["touchPan","touchRotate"]),e.interactive&&e.touchZoomRotate&&i.touchZoomRotate.enable(e.touchZoomRotate);const ue=i.scrollZoom=new _d(i,(()=>this._triggerRenderFrame()));this._add("scrollZoom",ue,["mousePan"]),e.interactive&&e.scrollZoom&&i.scrollZoom.enable(e.scrollZoom);const ve=i.keyboard=new jl(i);this._add("keyboard",ve),e.interactive&&e.keyboard&&i.keyboard.enable(),this._add("blockableMapEvent",new fd(i))}_add(e,i,l){this._handlers.push({handlerName:e,handler:i,allowed:l}),this._handlersById[e]=i}stop(e){if(!this._updatingCamera){for(const{handler:i}of this._handlers)i.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Ea(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,i,l){for(const u in e)if(u!==l&&(!i||i.indexOf(u)<0))return!0;return!1}_getMapTouches(e){const i=[];for(const l of e)this._el.contains(l.target)&&i.push(l);return i}mergeHandlerResult(e,i,l,u,d){if(!l)return;s.e(e,l);const g={handlerName:u,originalEvent:l.originalEvent||d};l.zoomDelta!==void 0&&(i.zoom=g),l.panDelta!==void 0&&(i.drag=g),l.rollDelta!==void 0&&(i.roll=g),l.pitchDelta!==void 0&&(i.pitch=g),l.bearingDelta!==void 0&&(i.rotate=g)}_applyChanges(){const e={},i={},l={};for(const[u,d,g]of this._changes)u.panDelta&&(e.panDelta=(e.panDelta||new s.P(0,0))._add(u.panDelta)),u.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+u.zoomDelta),u.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+u.bearingDelta),u.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+u.pitchDelta),u.rollDelta&&(e.rollDelta=(e.rollDelta||0)+u.rollDelta),u.around!==void 0&&(e.around=u.around),u.pinchAround!==void 0&&(e.pinchAround=u.pinchAround),u.noInertia&&(e.noInertia=u.noInertia),s.e(i,d),s.e(l,g);this._updateMapTransform(e,i,l),this._changes=[]}_updateMapTransform(e,i,l){const u=this._map,d=u._getTransformForUpdate(),g=u.terrain;if(!(us(e)||g&&this._terrainMovement))return this._fireEvents(i,l,!0);u._stop(!0);let{panDelta:w,zoomDelta:C,bearingDelta:P,pitchDelta:E,rollDelta:R,around:D,pinchAround:N}=e;N!==void 0&&(D=N),D=D||u.transform.centerPoint,g&&!d.isPointOnMapSurface(D)&&(D=d.centerPoint);const G={panDelta:w,zoomDelta:C,rollDelta:R,pitchDelta:E,bearingDelta:P,around:D};this._map.cameraHelper.useGlobeControls&&!d.isPointOnMapSurface(D)&&(D=d.centerPoint);const te=D.distSqr(d.centerPoint)<.01?d.center:d.screenPointToLocation(w?D.sub(w):D);g?(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(G,d),this._terrainMovement||!i.drag&&!i.zoom?i.drag&&this._terrainMovement?d.setCenter(d.screenPointToLocation(d.centerPoint.sub(w))):this._map.cameraHelper.handleMapControlsPan(G,d,te):(this._terrainMovement=!0,this._map._elevationFreeze=!0,this._map.cameraHelper.handleMapControlsPan(G,d,te))):(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(G,d),this._map.cameraHelper.handleMapControlsPan(G,d,te)),u._applyUpdatedTransform(d),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(i,l,!0)}_fireEvents(e,i,l){const u=Ea(this._eventsInProgress),d=Ea(e),g={};for(const R in e){const{originalEvent:D}=e[R];this._eventsInProgress[R]||(g[`${R}start`]=D),this._eventsInProgress[R]=e[R]}!u&&d&&this._fireEvent("movestart",d.originalEvent);for(const R in g)this._fireEvent(R,g[R]);d&&this._fireEvent("move",d.originalEvent);for(const R in e){const{originalEvent:D}=e[R];this._fireEvent(R,D)}const w={};let C;for(const R in this._eventsInProgress){const{handlerName:D,originalEvent:N}=this._eventsInProgress[R];this._handlersById[D].isActive()||(delete this._eventsInProgress[R],C=i[D]||N,w[`${R}end`]=C)}for(const R in w)this._fireEvent(R,w[R]);const P=Ea(this._eventsInProgress),E=(u||d)&&!P;if(E&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const R=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&R.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(R)}if(l&&E){this._updatingCamera=!0;const R=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),D=N=>N!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Un("renderFrame",{timeStamp:e})),this._applyChanges()}))}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class bd extends s.E{constructor(e,i,l){super(),this._renderFrameCallback=()=>{const u=Math.min((ne.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(u)),u<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=l.bearingSnap,this.cameraHelper=i,this.on("moveend",(()=>{delete this._requestedCameraState}))}migrateProjection(e,i){e.apply(this.transform),this.transform=e,this.cameraHelper=i}getCenter(){return new s.S(this.transform.center.lng,this.transform.center.lat)}setCenter(e,i){return this.jumpTo({center:e},i)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,i){return this.jumpTo({elevation:e},i),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e}panBy(e,i,l){return e=s.P.convert(e).mult(-1),this.panTo(this.transform.center,s.e({offset:e},i),l)}panTo(e,i,l){return this.easeTo(s.e({center:e},i),l)}getZoom(){return this.transform.zoom}setZoom(e,i){return this.jumpTo({zoom:e},i),this}zoomTo(e,i,l){return this.easeTo(s.e({zoom:e},i),l)}zoomIn(e,i){return this.zoomTo(this.getZoom()+1,e,i),this}zoomOut(e,i){return this.zoomTo(this.getZoom()-1,e,i),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,i){return e!=this.transform.fov&&(this.transform.setFov(e),this.fire(new s.l("movestart",i)).fire(new s.l("move",i)).fire(new s.l("moveend",i))),this}getBearing(){return this.transform.bearing}setBearing(e,i){return this.jumpTo({bearing:e},i),this}getPadding(){return this.transform.padding}setPadding(e,i){return this.jumpTo({padding:e},i),this}rotateTo(e,i,l){return this.easeTo(s.e({bearing:e},i),l)}resetNorth(e,i){return this.rotateTo(0,s.e({duration:1e3},e),i),this}resetNorthPitch(e,i){return this.easeTo(s.e({bearing:0,pitch:0,roll:0,duration:1e3},e),i),this}snapToNorth(e,i){return Math.abs(this.getBearing()){te.easeFunc(ee),this.terrain&&!e.freezeElevation&&this._updateElevation(ee),this._applyUpdatedTransform(l),this._fireMoveEvents(i)}),(ee=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(i,ee)}),e),this}_prepareEase(e,i,l={}){this._moving=!0,i||l.moving||this.fire(new s.l("movestart",e)),this._zooming&&!l.zooming&&this.fire(new s.l("zoomstart",e)),this._rotating&&!l.rotating&&this.fire(new s.l("rotatestart",e)),this._pitching&&!l.pitching&&this.fire(new s.l("pitchstart",e)),this._rolling&&!l.rolling&&this.fire(new s.l("rollstart",e))}_prepareElevation(e){this._elevationCenter=e,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(e,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(e){this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const i=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&i!==this._elevationTarget){const l=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(l-(i-(l*e+this._elevationStart))/(1-e)),this._elevationTarget=i}this.transform.setElevation(s.C.number(this._elevationStart,this._elevationTarget,e))}_finalizeElevation(){this._elevationFreeze=!1,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90)return{};const i=e.getCameraLngLat(),l=e.getCameraAltitude(),u=this.terrain?this.terrain.getElevationForLngLatZoom(i,e.zoom):0;if(lthis._elevateCameraIfInsideTerrain(u))),this.transformCameraUpdate&&i.push((u=>this.transformCameraUpdate(u))),!i.length)return;const l=e.clone();for(const u of i){const d=l.clone(),{center:g,zoom:w,roll:C,pitch:P,bearing:E,elevation:R}=u(d);g&&d.setCenter(g),R!==void 0&&d.setElevation(R),w!==void 0&&d.setZoom(w),C!==void 0&&d.setRoll(C),P!==void 0&&d.setPitch(P),E!==void 0&&d.setBearing(E),l.apply(d)}this.transform.apply(l)}_fireMoveEvents(e){this.fire(new s.l("move",e)),this._zooming&&this.fire(new s.l("zoom",e)),this._rotating&&this.fire(new s.l("rotate",e)),this._pitching&&this.fire(new s.l("pitch",e)),this._rolling&&this.fire(new s.l("roll",e))}_afterEase(e,i){if(this._easeId&&i&&this._easeId===i)return;delete this._easeId;const l=this._zooming,u=this._rotating,d=this._pitching,g=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,l&&this.fire(new s.l("zoomend",e)),u&&this.fire(new s.l("rotateend",e)),d&&this.fire(new s.l("pitchend",e)),g&&this.fire(new s.l("rollend",e)),this.fire(new s.l("moveend",e))}flyTo(e,i){if(!e.essential&&ne.prefersReducedMotion){const tt=s.Q(e,["center","zoom","bearing","pitch","roll","elevation"]);return this.jumpTo(tt,i)}this.stop(),e=s.e({offset:[0,0],speed:1.2,curve:1.42,easing:s.co},e);const l=this._getTransformForUpdate(),u=l.bearing,d=l.pitch,g=l.roll,w=l.padding,C="bearing"in e?this._normalizeBearing(e.bearing,u):u,P="pitch"in e?+e.pitch:d,E="roll"in e?this._normalizeBearing(e.roll,g):g,R="padding"in e?e.padding:l.padding,D=s.P.convert(e.offset);let N=l.centerPoint.add(D);const G=l.screenPointToLocation(N),te=this.cameraHelper.handleFlyTo(l,{bearing:C,pitch:P,roll:E,padding:R,locationAtOffset:G,offsetAsPoint:D,center:e.center,minZoom:e.minZoom,zoom:e.zoom});let ee=e.curve;const ie=Math.max(l.width,l.height),ue=ie/te.scaleOfZoom,ve=te.pixelPathLength;typeof te.scaleOfMinZoom=="number"&&(ee=Math.sqrt(ie/te.scaleOfMinZoom/ve*2));const me=ee*ee;function be(tt){const jt=(ue*ue-ie*ie+(tt?-1:1)*me*me*ve*ve)/(2*(tt?ue:ie)*me*ve);return Math.log(Math.sqrt(jt*jt+1)-jt)}function Pe(tt){return(Math.exp(tt)-Math.exp(-tt))/2}function _e(tt){return(Math.exp(tt)+Math.exp(-tt))/2}const Be=be(!1);let rt=function(tt){return _e(Be)/_e(Be+ee*tt)},Ge=function(tt){return ie*((_e(Be)*(Pe(jt=Be+ee*tt)/_e(jt))-Pe(Be))/me)/ve;var jt},Xe=(be(!0)-Be)/ee;if(Math.abs(ve)<2e-6||!isFinite(Xe)){if(Math.abs(ie-ue)<1e-6)return this.easeTo(e,i);const tt=ue0,rt=jt=>Math.exp(tt*ee*jt)}return e.duration="duration"in e?+e.duration:1e3*Xe/("screenSpeed"in e?+e.screenSpeed/ee:+e.speed),e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=u!==C,this._pitching=P!==d,this._rolling=E!==g,this._padding=!l.isPaddingEqual(R),this._prepareEase(i,!1),this.terrain&&this._prepareElevation(te.targetCenter),this._ease((tt=>{const jt=tt*Xe,Zt=1/rt(jt),Tt=Ge(jt);this._rotating&&l.setBearing(s.C.number(u,C,tt)),this._pitching&&l.setPitch(s.C.number(d,P,tt)),this._rolling&&l.setRoll(s.C.number(g,E,tt)),this._padding&&(l.interpolatePadding(w,R,tt),N=l.centerPoint.add(D)),te.easeFunc(tt,Zt,Tt,N),this.terrain&&!e.freezeElevation&&this._updateElevation(tt),this._applyUpdatedTransform(l),this._fireMoveEvents(i)}),(()=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(i)}),e),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(e,i){var l;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const u=this._onEaseEnd;delete this._onEaseEnd,u.call(this,i)}return e||(l=this.handlers)===null||l===void 0||l.stop(!1),this}_ease(e,i,l){l.animate===!1||l.duration===0?(e(1),i()):(this._easeStart=ne.now(),this._easeOptions=l,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(e,i){e=s.aO(e,-180,180);const l=Math.abs(e-i);return Math.abs(e-360-i)MapLibre'};class hu{constructor(e=uu){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=i=>{!i||i.sourceDataType!=="metadata"&&i.sourceDataType!=="visibility"&&i.dataType!=="style"&&i.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=e}getDefaultPosition(){return"bottom-right"}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=H.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=H.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=H.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(){H.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(e,i){const l=this._map._getUIString(`AttributionControl.${i}`);e.title=l,e.setAttribute("aria-label",l)}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map((u=>typeof u!="string"?"":u))):typeof this.options.customAttribution=="string"&&e.push(this.options.customAttribution)),this._map.style.stylesheet){const u=this._map.style.stylesheet;this.styleOwner=u.owner,this.styleId=u.id}const i=this._map.style.sourceCaches;for(const u in i){const d=i[u];if(d.used||d.usedForTerrain){const g=d.getSource();g.attribution&&e.indexOf(g.attribution)<0&&e.push(g.attribution)}}e=e.filter((u=>String(u).trim())),e.sort(((u,d)=>u.length-d.length)),e=e.filter(((u,d)=>{for(let g=d+1;g=0)return!1;return!0}));const l=e.join(" | ");l!==this._attribHTML&&(this._attribHTML=l,e.length?(this._innerContainer.innerHTML=H.sanitize(l),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class wd{constructor(e={}){this._updateCompact=()=>{const i=this._container.children;if(i.length){const l=i[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&l.classList.add("maplibregl-compact"):l.classList.remove("maplibregl-compact")}},this.options=e}getDefaultPosition(){return"bottom-left"}onAdd(e){this._map=e,this._compact=this.options&&this.options.compact,this._container=H.create("div","maplibregl-ctrl");const i=H.create("a","maplibregl-ctrl-logo");return i.target="_blank",i.rel="noopener nofollow",i.href="https://maplibre.org/",i.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),i.setAttribute("rel","noopener nofollow"),this._container.appendChild(i),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){H.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class $a{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){const i=++this._id;return this._queue.push({callback:e,id:i,cancelled:!1}),i}remove(e){const i=this._currentlyRunning,l=i?this._queue.concat(i):this._queue;for(const u of l)if(u.id===e)return void(u.cancelled=!0)}run(e=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const i=this._currentlyRunning=this._queue;this._queue=[];for(const l of i)if(!l.cancelled&&(l.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var ql=s.aJ([{name:"a_pos3d",type:"Int16",components:3}]);class br extends s.E{constructor(e){super(),this._lastTilesetChange=ne.now(),this.sourceCache=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=!0,e.tileSize=this.tileSize}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(e,i){this.sourceCache.update(e,i),this._renderableTilesKeys=[];const l={};for(const u of xe(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:i,calculateTileZoom:this.sourceCache._source.calculateTileZoom}))l[u.key]=!0,this._renderableTilesKeys.push(u.key),this._tiles[u.key]||(u.terrainRttPosMatrix32f=new Float64Array(16),s.bY(u.terrainRttPosMatrix32f,0,s.$,s.$,0,0,1),this._tiles[u.key]=new qr(u,this.tileSize),this._lastTilesetChange=ne.now());for(const u in this._tiles)l[u]||delete this._tiles[u]}freeRtt(e){for(const i in this._tiles){const l=this._tiles[i];(!e||l.tileID.equals(e)||l.tileID.isChildOf(e)||e.isChildOf(l.tileID))&&(l.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map((e=>this.getTileByID(e)))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,i){return i?this._getTerrainCoordsForTileRanges(e,i):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){const i={};for(const l of this._renderableTilesKeys){const u=this._tiles[l].tileID,d=e.clone(),g=s.ba();if(u.canonical.equals(e.canonical))s.bY(g,0,s.$,s.$,0,0,1);else if(u.canonical.isChildOf(e.canonical)){const w=u.canonical.z-e.canonical.z,C=u.canonical.x-(u.canonical.x>>w<>w<>w;s.bY(g,0,E,E,0,0,1),s.M(g,g,[-C*E,-P*E,0])}else{if(!e.canonical.isChildOf(u.canonical))continue;{const w=e.canonical.z-u.canonical.z,C=e.canonical.x-(e.canonical.x>>w<>w<>w;s.bY(g,0,s.$,s.$,0,0,1),s.M(g,g,[C*E,P*E,0]),s.N(g,g,[1/2**w,1/2**w,0])}}d.terrainRttPosMatrix32f=new Float32Array(g),i[l]=d}return i}_getTerrainCoordsForTileRanges(e,i){const l={};for(const u of this._renderableTilesKeys){const d=this._tiles[u].tileID;if(!this._isWithinTileRanges(d,i))continue;const g=e.clone(),w=s.ba();if(d.canonical.z===e.canonical.z){const C=e.canonical.x-d.canonical.x,P=e.canonical.y-d.canonical.y;s.bY(w,0,s.$,s.$,0,0,1),s.M(w,w,[C*s.$,P*s.$,0])}else if(d.canonical.z>e.canonical.z){const C=d.canonical.z-e.canonical.z,P=d.canonical.x-(d.canonical.x>>C<>C<>C),D=e.canonical.y-(d.canonical.y>>C),N=s.$>>C;s.bY(w,0,N,N,0,0,1),s.M(w,w,[-P*N+R*s.$,-E*N+D*s.$,0])}else{const C=e.canonical.z-d.canonical.z,P=e.canonical.x-(e.canonical.x>>C<>C<>C)-d.canonical.x,D=(e.canonical.y>>C)-d.canonical.y,N=s.$<l.maxzoom&&(u=l.maxzoom),u=l.minzoom&&(!d||!d.dem);)d=this.sourceCache.getTileByID(e.scaledTo(u--).key);return d}anyTilesAfterTime(e=Date.now()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,i){return i[e.canonical.z]&&e.canonical.x>=i[e.canonical.z].minTileX&&e.canonical.x<=i[e.canonical.z].maxTileX&&e.canonical.y>=i[e.canonical.z].minTileY&&e.canonical.y<=i[e.canonical.z].maxTileY}}class Or{constructor(e,i,l){this._meshCache={},this.painter=e,this.sourceCache=new br(i),this.options=l,this.exaggeration=typeof l.exaggeration=="number"?l.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(e,i,l,u=s.$){var d;if(!(i>=0&&i=0&&le.canonical.z&&(e.canonical.z>=u?d=e.canonical.z-u:s.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const g=e.canonical.x-(e.canonical.x>>d<>d<>8<<4|d>>8,i[g+3]=0;const l=new s.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(i.buffer)),u=new s.T(e,l,e.gl.RGBA,{premultiply:!1});return u.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=u,u}pointCoordinate(e){this.painter.maybeDrawDepthAndCoords(!0);const i=new Uint8Array(4),l=this.painter.context,u=l.gl,d=Math.round(e.x*this.painter.pixelRatio/devicePixelRatio),g=Math.round(e.y*this.painter.pixelRatio/devicePixelRatio),w=Math.round(this.painter.height/devicePixelRatio);l.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),u.readPixels(d,w-g-1,1,1,u.RGBA,u.UNSIGNED_BYTE,i),l.bindFramebuffer.set(null);const C=i[0]+(i[2]>>4<<8),P=i[1]+((15&i[2])<<8),E=this.coordsIndex[255-i[3]],R=E&&this.sourceCache.getTileByID(E);if(!R)return null;const D=this._coordsTextureSize,N=(1<0,u=l&&e.canonical.y===0,d=l&&e.canonical.y===(1<e.id!==i)),this._recentlyUsed.push(e.id)}stampObject(e){e.stamp=++this._stamp}getOrCreateFreeObject(){for(const i of this._recentlyUsed)if(!this._objects[i].inUse)return this._objects[i];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const e=this._createObject(this._objects.length);return this._objects.push(e),e}freeObject(e){e.inUse=!1}freeAllObjects(){for(const e of this._objects)this.freeObject(e)}isFull(){return!(this._objects.length!e.inUse))===!1}}const _o={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0,"color-relief":!0};class Ul{constructor(e,i){this.painter=e,this.terrain=i,this.pool=new Zl(e.context,30,i.sourceCache.tileSize*i.qualityFactor)}destruct(){this.pool.destruct()}getTexture(e){return this.pool.getObjectForId(e.rtt[this._stacks.length-1].id).texture}prepareForRender(e,i){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=e._order.filter((l=>!e._layers[l].isHidden(i))),this._coordsAscending={};for(const l in e.sourceCaches){this._coordsAscending[l]={};const u=e.sourceCaches[l].getVisibleCoordinates(),d=e.sourceCaches[l].getSource(),g=d instanceof Nt?d.terrainTileRanges:null;for(const w of u){const C=this.terrain.sourceCache.getTerrainCoords(w,g);for(const P in C)this._coordsAscending[l][P]||(this._coordsAscending[l][P]=[]),this._coordsAscending[l][P].push(C[P])}}this._coordsAscendingStr={};for(const l of e._order){const u=e._layers[l],d=u.source;if(_o[u.type]&&!this._coordsAscendingStr[d]){this._coordsAscendingStr[d]={};for(const g in this._coordsAscending[d])this._coordsAscendingStr[d][g]=this._coordsAscending[d][g].map((w=>w.key)).sort().join()}}for(const l of this._renderableTiles)for(const u in this._coordsAscendingStr){const d=this._coordsAscendingStr[u][l.tileID.key];d&&d!==l.rttCoords[u]&&(l.rtt=[])}}renderLayer(e,i){if(e.isHidden(this.painter.transform.zoom))return!1;const l=Object.assign(Object.assign({},i),{isRenderingToTexture:!0}),u=e.type,d=this.painter,g=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(_o[u]&&(this._prevType&&_o[this._prevType]||this._stacks.push([]),this._prevType=u,this._stacks[this._stacks.length-1].push(e.id),!g))return!0;if(_o[this._prevType]||_o[u]&&g){this._prevType=u;const w=this._stacks.length-1,C=this._stacks[w]||[];for(const P of this._renderableTiles){if(this.pool.isFull()&&(Bl(this.painter,this.terrain,this._rttTiles,l),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(P),P.rtt[w]){const R=this.pool.getObjectForId(P.rtt[w].id);if(R.stamp===P.rtt[w].stamp){this.pool.useObject(R);continue}}const E=this.pool.getOrCreateFreeObject();this.pool.useObject(E),this.pool.stampObject(E),P.rtt[w]={id:E.id,stamp:E.stamp},d.context.bindFramebuffer.set(E.fbo.framebuffer),d.context.clear({color:s.bf.transparent,stencil:0}),d.currentStencilSource=void 0;for(let R=0;R{this.startMove(d,H.mousePos(this.element,d)),H.addEventListener(window,"mousemove",this.mousemove),H.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=d=>{this.move(d,H.mousePos(this.element,d))},this.mouseup=d=>{this._rotatePitchHandler.dragEnd(d),this.offTemp()},this.touchstart=d=>{d.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=H.touchPos(this.element,d.targetTouches)[0],this.startMove(d,this._startPos),H.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),H.addEventListener(window,"touchend",this.touchend))},this.touchmove=d=>{d.targetTouches.length!==1?this.reset():(this._lastPos=H.touchPos(this.element,d.targetTouches)[0],this.move(d,this._lastPos))},this.touchend=d=>{d.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this._rotatePitchHandler.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=i;const u=new qp;this._rotatePitchHandler=new ss({clickTolerance:3,move:(d,g)=>{const w=i.getBoundingClientRect(),C=new s.P((w.bottom-w.top)/2,(w.right-w.left)/2);return{bearingDelta:s.cn(new s.P(d.x,g.y),g,C),pitchDelta:l?-.5*(g.y-d.y):void 0}},moveStateManager:u,enable:!0,assignEvents:()=>{}}),this.map=e,H.addEventListener(i,"mousedown",this.mousedown),H.addEventListener(i,"touchstart",this.touchstart,{passive:!1}),H.addEventListener(i,"touchcancel",this.reset)}startMove(e,i){this._rotatePitchHandler.dragStart(e,i),H.disableDrag()}move(e,i){const l=this.map,{bearingDelta:u,pitchDelta:d}=this._rotatePitchHandler.dragMove(e,i)||{};u&&l.setBearing(l.getBearing()+u),d&&l.setPitch(l.getPitch()+d)}off(){const e=this.element;H.removeEventListener(e,"mousedown",this.mousedown),H.removeEventListener(e,"touchstart",this.touchstart,{passive:!1}),H.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),H.removeEventListener(window,"touchend",this.touchend),H.removeEventListener(e,"touchcancel",this.reset),this.offTemp()}offTemp(){H.enableDrag(),H.removeEventListener(window,"mousemove",this.mousemove),H.removeEventListener(window,"mouseup",this.mouseup),H.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),H.removeEventListener(window,"touchend",this.touchend)}}let Dn;function ti(h,e,i,l=!1){if(l||!i.getCoveringTilesDetailsProvider().allowWorldCopies())return h==null?void 0:h.wrap();const u=new s.S(h.lng,h.lat);if(h=new s.S(h.lng,h.lat),e){const d=new s.S(h.lng-360,h.lat),g=new s.S(h.lng+360,h.lat),w=i.locationToScreenPoint(h).distSqr(e);i.locationToScreenPoint(d).distSqr(e)180;){const d=i.locationToScreenPoint(h);if(d.x>=0&&d.y>=0&&d.x<=i.width&&d.y<=i.height)break;h.lng>i.center.lng?h.lng-=360:h.lng+=360}return h.lng!==u.lng&&i.isPointOnMapSurface(i.locationToScreenPoint(h))?h:u}const $l={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 hs(h,e,i){const l=h.classList;for(const u in $l)l.remove(`maplibregl-${i}-anchor-${u}`);l.add(`maplibregl-${i}-anchor-${e}`)}class ds extends s.E{constructor(e){if(super(),this._onKeyPress=i=>{const l=i.code,u=i.charCode||i.keyCode;l!=="Space"&&l!=="Enter"&&u!==32&&u!==13||this.togglePopup()},this._onMapClick=i=>{const l=i.originalEvent.target,u=this._element;this._popup&&(l===u||u.contains(l))&&this.togglePopup()},this._update=i=>{if(!this._map)return;const l=this._map.loaded()&&!this._map.isMoving();((i==null?void 0:i.type)==="terrain"||(i==null?void 0:i.type)==="render"&&!l)&&this._map.once("render",this._update),this._lngLat=ti(this._lngLat,this._flatPos,this._map.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let u="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?u=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(u=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let d="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?d="rotateX(0deg)":this._pitchAlignment==="map"&&(d=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||i&&i.type!=="moveend"||(this._pos=this._pos.round()),H.setTransform(this._element,`${$l[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${d} ${u}`),ne.frameAsync(new AbortController).then((()=>{this._updateOpacity(i&&i.type==="moveend")})).catch((()=>{}))},this._onMove=i=>{if(!this._isDragging){const l=this._clickTolerance||this._map._clickTolerance;this._isDragging=i.point.dist(this._pointerdownPos)>=l}this._isDragging&&(this._pos=i.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 s.l("dragstart"))),this.fire(new s.l("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 s.l("dragend")),this._state="inactive"},this._addDragHandler=i=>{this._element.contains(i.originalEvent.target)&&(i.preventDefault(),this._positionDelta=i.point.sub(this._pos).add(this._offset),this._pointerdownPos=i.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=e&&e.anchor||"center",this._color=e&&e.color||"#3FB1CE",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._subpixelPositioning=e&&e.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||"auto",this._pitchAlignment=e&&e.pitchAlignment&&e.pitchAlignment!=="auto"?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e==null?void 0:e.opacity,e==null?void 0:e.opacityWhenCovered),e&&e.element)this._element=e.element,this._offset=s.P.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=H.create("div");const i=H.createNS("http://www.w3.org/2000/svg","svg"),l=41,u=27;i.setAttributeNS(null,"display","block"),i.setAttributeNS(null,"height",`${l}px`),i.setAttributeNS(null,"width",`${u}px`),i.setAttributeNS(null,"viewBox",`0 0 ${u} ${l}`);const d=H.createNS("http://www.w3.org/2000/svg","g");d.setAttributeNS(null,"stroke","none"),d.setAttributeNS(null,"stroke-width","1"),d.setAttributeNS(null,"fill","none"),d.setAttributeNS(null,"fill-rule","evenodd");const g=H.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"fill-rule","nonzero");const w=H.createNS("http://www.w3.org/2000/svg","g");w.setAttributeNS(null,"transform","translate(3.0, 29.0)"),w.setAttributeNS(null,"fill","#000000");const C=[{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 ie of C){const ue=H.createNS("http://www.w3.org/2000/svg","ellipse");ue.setAttributeNS(null,"opacity","0.04"),ue.setAttributeNS(null,"cx","10.5"),ue.setAttributeNS(null,"cy","5.80029008"),ue.setAttributeNS(null,"rx",ie.rx),ue.setAttributeNS(null,"ry",ie.ry),w.appendChild(ue)}const P=H.createNS("http://www.w3.org/2000/svg","g");P.setAttributeNS(null,"fill",this._color);const E=H.createNS("http://www.w3.org/2000/svg","path");E.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"),P.appendChild(E);const R=H.createNS("http://www.w3.org/2000/svg","g");R.setAttributeNS(null,"opacity","0.25"),R.setAttributeNS(null,"fill","#000000");const D=H.createNS("http://www.w3.org/2000/svg","path");D.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"),R.appendChild(D);const N=H.createNS("http://www.w3.org/2000/svg","g");N.setAttributeNS(null,"transform","translate(6.0, 7.0)"),N.setAttributeNS(null,"fill","#FFFFFF");const G=H.createNS("http://www.w3.org/2000/svg","g");G.setAttributeNS(null,"transform","translate(8.0, 8.0)");const te=H.createNS("http://www.w3.org/2000/svg","circle");te.setAttributeNS(null,"fill","#000000"),te.setAttributeNS(null,"opacity","0.25"),te.setAttributeNS(null,"cx","5.5"),te.setAttributeNS(null,"cy","5.5"),te.setAttributeNS(null,"r","5.4999962");const ee=H.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"),G.appendChild(te),G.appendChild(ee),g.appendChild(w),g.appendChild(P),g.appendChild(R),g.appendChild(N),g.appendChild(G),i.appendChild(g),i.setAttributeNS(null,"height",l*this._scale+"px"),i.setAttributeNS(null,"width",u*this._scale+"px"),this._element.appendChild(i),this._offset=s.P.convert(e&&e.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",(i=>{i.preventDefault()})),this._element.addEventListener("mousedown",(i=>{i.preventDefault()})),hs(this._element,this._anchor,"marker"),e&&e.className)for(const i of e.className.split(" "))this._element.classList.add(i);this._popup=null}addTo(e){return this.remove(),this._map=e,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",e._getUIString("Marker.Title")),e.getCanvasContainer().appendChild(this._element),e.on("move",this._update),e.on("moveend",this._update),e.on("terrain",this._update),e.on("projectiontransition",this._update),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("terrain",this._update),this._map.off("projectiontransition",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),H.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=s.S.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const u=Math.abs(13.5)/Math.SQRT2;e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[u,-1*(38.1-13.5+u)],"bottom-right":[-u,-1*(38.1-13.5+u)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=e,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}getPopup(){return this._popup}togglePopup(){const e=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:e?(e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map)),this):this}_updateOpacity(e=!1){var i,l;const u=(i=this._map)===null||i===void 0?void 0:i.terrain,d=this._map.transform.isLocationOccluded(this._lngLat);if(!u||d){const N=d?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==N&&(this._element.style.opacity=N))}if(e)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout((()=>{this._opacityTimeout=null}),100)}const g=this._map,w=g.terrain.depthAtPoint(this._pos),C=g.terrain.getElevationForLngLatZoom(this._lngLat,g.transform.tileZoom);if(g.transform.lngLatToCameraDepth(this._lngLat,C)-w<.006)return void(this._element.style.opacity=this._opacity);const P=-this._offset.y/g.transform.pixelsPerMeter,E=Math.sin(g.getPitch()*Math.PI/180)*P,R=g.terrain.depthAtPoint(new s.P(this._pos.x,this._pos.y-this._offset.y)),D=g.transform.lngLatToCameraDepth(this._lngLat,C+E)-R>.006;!((l=this._popup)===null||l===void 0)&&l.isOpen()&&D&&this._popup.remove(),this._element.style.opacity=D?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(e){return this._offset=s.P.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e)}removeClassName(e){this._element.classList.remove(e)}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._map&&(e?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!=="auto"?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,i){return(this._opacity===void 0||e===void 0&&i===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),e!==void 0&&(this._opacity=e),i!==void 0&&(this._opacityWhenCovered=i),this._map&&this._updateOpacity(!0),this}}const du={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let ps=0,No=!1;const Js={maxWidth:100,unit:"metric"};function Gl(h,e,i){const l=i&&i.maxWidth||100,u=h._container.clientHeight/2,d=h._container.clientWidth/2,g=h.unproject([d-l/2,u]),w=h.unproject([d+l/2,u]),C=Math.round(h.project(w).x-h.project(g).x),P=Math.min(l,C,h._container.clientWidth),E=g.distanceTo(w);if(i&&i.unit==="imperial"){const R=3.2808*E;R>5280?jo(e,P,R/5280,h._getUIString("ScaleControl.Miles")):jo(e,P,R,h._getUIString("ScaleControl.Feet"))}else i&&i.unit==="nautical"?jo(e,P,E/1852,h._getUIString("ScaleControl.NauticalMiles")):E>=1e3?jo(e,P,E/1e3,h._getUIString("ScaleControl.Kilometers")):jo(e,P,E,h._getUIString("ScaleControl.Meters"))}function jo(h,e,i,l){const u=(function(d){const g=Math.pow(10,`${Math.floor(d)}`.length-1);let w=d/g;return w=w>=10?10:w>=5?5:w>=3?3:w>=2?2:w>=1?1:(function(C){const P=Math.pow(10,Math.ceil(-Math.log(C)/Math.LN10));return Math.round(C*P)/P})(w),g*w})(i);h.style.width=e*(u/i)+"px",h.innerHTML=`${u} ${l}`}const pu={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0},fu=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Hl(h){if(h){if(typeof h=="number"){const e=Math.round(Math.abs(h)/Math.SQRT2);return{center:new s.P(0,0),top:new s.P(0,h),"top-left":new s.P(e,e),"top-right":new s.P(-e,e),bottom:new s.P(0,-h),"bottom-left":new s.P(e,-e),"bottom-right":new s.P(-e,-e),left:new s.P(h,0),right:new s.P(-h,0)}}if(h instanceof s.P||Array.isArray(h)){const e=s.P.convert(h);return{center:e,top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{center:s.P.convert(h.center||[0,0]),top:s.P.convert(h.top||[0,0]),"top-left":s.P.convert(h["top-left"]||[0,0]),"top-right":s.P.convert(h["top-right"]||[0,0]),bottom:s.P.convert(h.bottom||[0,0]),"bottom-left":s.P.convert(h["bottom-left"]||[0,0]),"bottom-right":s.P.convert(h["bottom-right"]||[0,0]),left:s.P.convert(h.left||[0,0]),right:s.P.convert(h.right||[0,0])}}return Hl(new s.P(0,0))}const mu=B;T.AJAXError=s.cz,T.Event=s.l,T.Evented=s.E,T.LngLat=s.S,T.MercatorCoordinate=s.a1,T.Point=s.P,T.addProtocol=s.cA,T.config=s.a,T.removeProtocol=s.cB,T.AttributionControl=hu,T.BoxZoomHandler=nu,T.CanvasSource=sr,T.CooperativeGesturesHandler=xd,T.DoubleClickZoomHandler=ou,T.DragPanHandler=vd,T.DragRotateHandler=lu,T.EdgeInsets=Mn,T.FullscreenControl=class extends s.E{constructor(h={}){super(),this._onFullscreenChange=()=>{var e;let i=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((e=i==null?void 0:i.shadowRoot)===null||e===void 0)&&e.fullscreenElement;)i=i.shadowRoot.fullscreenElement;i===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,h&&h.container&&(h.container instanceof HTMLElement?this._container=h.container:s.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(h){return this._map=h,this._container||(this._container=this._map.getContainer()),this._controlContainer=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){H.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const h=this._fullscreenButton=H.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);H.create("span","maplibregl-ctrl-icon",h).setAttribute("aria-hidden","true"),h.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const h=this._getTitle();this._fullscreenButton.setAttribute("aria-label",h),this._fullscreenButton.title=h}_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 s.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new s.l("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()}},T.GeoJSONSource=tr,T.GeolocateControl=class extends s.E{constructor(h){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new s.l("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(e),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new s.l("geolocate",e)),this._finish()}},this._updateCamera=e=>{const i=new s.S(e.coords.longitude,e.coords.latitude),l=e.coords.accuracy,u=this._map.getBearing(),d=s.e({bearing:u},this.options.fitBoundsOptions),g=_t.fromLngLat(i,l);this._map.fitBounds(g,d,{geolocateSource:!0})},this._updateMarker=e=>{if(e){const i=new s.S(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=e.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=e=>{if(this._map){if(e.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(e.code===3&&No)return;this.options.trackUserLocation&&this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new s.l("error",e)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this._geolocateButton=H.create("button","maplibregl-ctrl-geolocate",this._container),H.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=e=>{if(this._map){if(e===!1){s.w("Geolocation support is not available so the GeolocateControl will be disabled.");const i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{const i=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=H.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new ds({element:this._dotElement}),this._circleElement=H.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new ds({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",(i=>{const l=(i==null?void 0:i[0])instanceof ResizeObserverEntry;i.geolocateSource||this._watchState!=="ACTIVE_LOCK"||l||this._map.isZooming()||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new s.l("trackuserlocationend")),this.fire(new s.l("userlocationlostfocus")))}))}},this.options=s.e({},du,h)}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),(function(){return s._(this,arguments,void 0,(function*(e=!1){if(Dn!==void 0&&!e)return Dn;if(window.navigator.permissions===void 0)return Dn=!!window.navigator.geolocation,Dn;try{Dn=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Dn=!!window.navigator.geolocation}return Dn}))})().then((e=>this._finishSetupUI(e))),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),H.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,ps=0,No=!1}_isOutOfMapMaxBounds(h){const e=this._map.getMaxBounds(),i=h.coords;return e&&(i.longitudee.getEast()||i.latitudee.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 h=this._map.getBounds(),e=h.getSouthEast(),i=h.getNorthEast(),l=e.distanceTo(i),u=Math.ceil(this._accuracy/(l/this._map._container.clientHeight)*2);this._circleElement.style.width=`${u}px`,this._circleElement.style.height=`${u}px`}trigger(){if(!this._setup)return s.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 s.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":ps--,No=!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 s.l("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 s.l("trackuserlocationstart")),this.fire(new s.l("userlocationfocus"));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 h;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),ps++,ps>1?(h={maximumAge:6e5,timeout:0},No=!0):(h=this.options.positionOptions,No=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,h)}}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)}},T.GlobeControl=class{constructor(){this._toggleProjection=()=>{var h;const e=(h=this._map.getProjection())===null||h===void 0?void 0:h.type;this._map.setProjection(e!=="mercator"&&e?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var h;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((h=this._map.getProjection())===null||h===void 0?void 0:h.type)==="globe"?(this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"),this._globeButton.title=this._map._getUIString("GlobeControl.Disable")):(this._globeButton.classList.add("maplibregl-ctrl-globe"),this._globeButton.title=this._map._getUIString("GlobeControl.Enable"))}}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=H.create("button","maplibregl-ctrl-globe",this._container),H.create("span","maplibregl-ctrl-icon",this._globeButton).setAttribute("aria-hidden","true"),this._globeButton.type="button",this._globeButton.addEventListener("click",this._toggleProjection),this._updateGlobeIcon(),this._map.on("styledata",this._updateGlobeIcon),this._container}onRemove(){H.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},T.Hash=Fl,T.ImageSource=Nt,T.KeyboardHandler=jl,T.LngLatBounds=_t,T.LogoControl=wd,T.Map=class extends bd{constructor(h){var e,i;s.cw.mark(s.cx.create);const l=Object.assign(Object.assign(Object.assign({},xa),h),{canvasContextAttributes:Object.assign(Object.assign({},xa.canvasContextAttributes),h.canvasContextAttributes)});if(l.minZoom!=null&&l.maxZoom!=null&&l.minZoom>l.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(l.minPitch!=null&&l.maxPitch!=null&&l.minPitch>l.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(l.minPitch!=null&&l.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(l.maxPitch!=null&&l.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const u=new an,d=new jn;if(l.minZoom!==void 0&&u.setMinZoom(l.minZoom),l.maxZoom!==void 0&&u.setMaxZoom(l.maxZoom),l.minPitch!==void 0&&u.setMinPitch(l.minPitch),l.maxPitch!==void 0&&u.setMaxPitch(l.maxPitch),l.renderWorldCopies!==void 0&&u.setRenderWorldCopies(l.renderWorldCopies),super(u,d,{bearingSnap:l.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new $a,this._controls=[],this._mapId=s.a7(),this._contextLost=w=>{w.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new s.l("webglcontextlost",{originalEvent:w}))},this._contextRestored=w=>{this._setupPainter(),this.resize(),this._update(),this.fire(new s.l("webglcontextrestored",{originalEvent:w}))},this._onMapScroll=w=>{if(w.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=l.interactive,this._maxTileCacheSize=l.maxTileCacheSize,this._maxTileCacheZoomLevels=l.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},l.canvasContextAttributes),this._trackResize=l.trackResize===!0,this._bearingSnap=l.bearingSnap,this._centerClampedToGround=l.centerClampedToGround,this._refreshExpiredTiles=l.refreshExpiredTiles===!0,this._fadeDuration=l.fadeDuration,this._crossSourceCollisions=l.crossSourceCollisions===!0,this._collectResourceTiming=l.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},Ui),l.locale),this._clickTolerance=l.clickTolerance,this._overridePixelRatio=l.pixelRatio,this._maxCanvasSize=l.maxCanvasSize,this.transformCameraUpdate=l.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=l.cancelPendingTileRequestsWhileZooming===!0,this._imageQueueHandle=Fe.addThrottleControl((()=>this.isMoving())),this._requestManager=new $e(l.transformRequest),typeof l.container=="string"){if(this._container=document.getElementById(l.container),!this._container)throw new Error(`Container '${l.container}' not found.`)}else{if(!(l.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=l.container}if(l.maxBounds&&this.setMaxBounds(l.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 w=!1;const C=Fo((P=>{this._trackResize&&!this._removed&&(this.resize(P),this.redraw())}),50);this._resizeObserver=new ResizeObserver((P=>{w?C(P):w=!0})),this._resizeObserver.observe(this._container)}this.handlers=new cu(this,l),this._hash=l.hash&&new Fl(typeof l.hash=="string"&&l.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:l.center,elevation:l.elevation,zoom:l.zoom,bearing:l.bearing,pitch:l.pitch,roll:l.roll}),l.bounds&&(this.resize(),this.fitBounds(l.bounds,s.e({},l.fitBoundsOptions,{duration:0}))));const g=typeof l.style=="string"||((i=(e=l.style)===null||e===void 0?void 0:e.projection)===null||i===void 0?void 0:i.type)!=="globe";this.resize(null,g),this._localIdeographFontFamily=l.localIdeographFontFamily,this._validateStyle=l.validateStyle,l.style&&this.setStyle(l.style,{localIdeographFontFamily:l.localIdeographFontFamily}),l.attributionControl&&this.addControl(new hu(typeof l.attributionControl=="boolean"?void 0:l.attributionControl)),l.maplibreLogo&&this.addControl(new wd,l.logoPosition),this.on("style.load",(()=>{if(g||this._resizeTransform(),this.transform.unmodified){const w=s.Q(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(w)}})),this.on("data",(w=>{this._update(w.dataType==="style"),this.fire(new s.l(`${w.dataType}data`,w))})),this.on("dataloading",(w=>{this.fire(new s.l(`${w.dataType}dataloading`,w))})),this.on("dataabort",(w=>{this.fire(new s.l("sourcedataabort",w))}))}_getMapId(){return this._mapId}setGlobalStateProperty(h,e){return this.style.setGlobalStateProperty(h,e),this._update(!0)}getGlobalState(){return this.style.getGlobalState()}addControl(h,e){if(e===void 0&&(e=h.getDefaultPosition?h.getDefaultPosition():"top-right"),!h||!h.onAdd)return this.fire(new s.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const i=h.onAdd(this);this._controls.push(h);const l=this._controlPositions[e];return e.indexOf("bottom")!==-1?l.insertBefore(i,l.firstChild):l.appendChild(i),this}removeControl(h){if(!h||!h.onRemove)return this.fire(new s.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const e=this._controls.indexOf(h);return e>-1&&this._controls.splice(e,1),h.onRemove(this),this}hasControl(h){return this._controls.indexOf(h)>-1}calculateCameraOptionsFromTo(h,e,i,l){return l==null&&this.terrain&&(l=this.terrain.getElevationForLngLatZoom(i,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(h,e,i,l)}resize(h,e=!0){const[i,l]=this._containerDimensions(),u=this._getClampedPixelRatio(i,l);if(this._resizeCanvas(i,l,u),this.painter.resize(i,l,u),this.painter.overLimit()){const g=this.painter.context.gl;this._maxCanvasSize=[g.drawingBufferWidth,g.drawingBufferHeight];const w=this._getClampedPixelRatio(i,l);this._resizeCanvas(i,l,w),this.painter.resize(i,l,w)}this._resizeTransform(e);const d=!this._moving;return d&&(this.stop(),this.fire(new s.l("movestart",h)).fire(new s.l("move",h))),this.fire(new s.l("resize",h)),d&&this.fire(new s.l("moveend",h)),this}_resizeTransform(h=!0){var e;const[i,l]=this._containerDimensions();this.transform.resize(i,l,h),(e=this._requestedCameraState)===null||e===void 0||e.resize(i,l,h)}_getClampedPixelRatio(h,e){const{0:i,1:l}=this._maxCanvasSize,u=this.getPixelRatio(),d=h*u,g=e*u;return Math.min(d>i?i/d:1,g>l?l/g:1)*u}getPixelRatio(){var h;return(h=this._overridePixelRatio)!==null&&h!==void 0?h:devicePixelRatio}setPixelRatio(h){this._overridePixelRatio=h,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(h){return this.transform.setMaxBounds(_t.convert(h)),this._update()}setMinZoom(h){if((h=h??-2)>=-2&&h<=this.transform.maxZoom)return this.transform.setMinZoom(h),this._update(),this.getZoom()=this.transform.minZoom)return this.transform.setMaxZoom(h),this._update(),this.getZoom()>h&&this.setZoom(h),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(h){if((h=h??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(h>=0&&h<=this.transform.maxPitch)return this.transform.setMinPitch(h),this._update(),this.getPitch()180)throw new Error("maxPitch must be less than or equal to 180");if(h>=this.transform.minPitch)return this.transform.setMaxPitch(h),this._update(),this.getPitch()>h&&this.setPitch(h),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(h){return this.transform.setRenderWorldCopies(h),this._update()}project(h){return this.transform.locationToScreenPoint(s.S.convert(h),this.style&&this.terrain)}unproject(h){return this.transform.screenPointToLocation(s.P.convert(h),this.terrain)}isMoving(){var h;return this._moving||((h=this.handlers)===null||h===void 0?void 0:h.isMoving())}isZooming(){var h;return this._zooming||((h=this.handlers)===null||h===void 0?void 0:h.isZooming())}isRotating(){var h;return this._rotating||((h=this.handlers)===null||h===void 0?void 0:h.isRotating())}_createDelegatedListener(h,e,i){if(h==="mouseenter"||h==="mouseover"){let l=!1;return{layers:e,listener:i,delegates:{mousemove:d=>{const g=e.filter((C=>this.getLayer(C))),w=g.length!==0?this.queryRenderedFeatures(d.point,{layers:g}):[];w.length?l||(l=!0,i.call(this,new Qi(h,this,d.originalEvent,{features:w}))):l=!1},mouseout:()=>{l=!1}}}}if(h==="mouseleave"||h==="mouseout"){let l=!1;return{layers:e,listener:i,delegates:{mousemove:g=>{const w=e.filter((C=>this.getLayer(C)));(w.length!==0?this.queryRenderedFeatures(g.point,{layers:w}):[]).length?l=!0:l&&(l=!1,i.call(this,new Qi(h,this,g.originalEvent)))},mouseout:g=>{l&&(l=!1,i.call(this,new Qi(h,this,g.originalEvent)))}}}}{const l=u=>{const d=e.filter((w=>this.getLayer(w))),g=d.length!==0?this.queryRenderedFeatures(u.point,{layers:d}):[];g.length&&(u.features=g,i.call(this,u),delete u.features)};return{layers:e,listener:i,delegates:{[h]:l}}}}_saveDelegatedListener(h,e){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[h]=this._delegatedListeners[h]||[],this._delegatedListeners[h].push(e)}_removeDelegatedListener(h,e,i){if(!this._delegatedListeners||!this._delegatedListeners[h])return;const l=this._delegatedListeners[h];for(let u=0;ue.includes(g)))){for(const g in d.delegates)this.off(g,d.delegates[g]);return void l.splice(u,1)}}}on(h,e,i){if(i===void 0)return super.on(h,e);const l=typeof e=="string"?[e]:e,u=this._createDelegatedListener(h,l,i);this._saveDelegatedListener(h,u);for(const d in u.delegates)this.on(d,u.delegates[d]);return{unsubscribe:()=>{this._removeDelegatedListener(h,l,i)}}}once(h,e,i){if(i===void 0)return super.once(h,e);const l=typeof e=="string"?[e]:e,u=this._createDelegatedListener(h,l,i);for(const d in u.delegates){const g=u.delegates[d];u.delegates[d]=(...w)=>{this._removeDelegatedListener(h,l,i),g(...w)}}this._saveDelegatedListener(h,u);for(const d in u.delegates)this.once(d,u.delegates[d]);return this}off(h,e,i){return i===void 0?super.off(h,e):(this._removeDelegatedListener(h,typeof e=="string"?[e]:e,i),this)}queryRenderedFeatures(h,e){if(!this.style)return[];let i;const l=h instanceof s.P||Array.isArray(h),u=l?h:[[0,0],[this.transform.width,this.transform.height]];if(e=e||(l?{}:h)||{},u instanceof s.P||typeof u[0]=="number")i=[s.P.convert(u)];else{const d=s.P.convert(u[0]),g=s.P.convert(u[1]);i=[d,new s.P(g.x,d.y),g,new s.P(d.x,g.y),d]}return this.style.queryRenderedFeatures(i,e,this.transform)}querySourceFeatures(h,e){return this.style.querySourceFeatures(h,e)}setStyle(h,e){return(e=s.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},e)).diff!==!1&&e.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&h?(this._diffStyle(h,e),this):(this._localIdeographFontFamily=e.localIdeographFontFamily,this._updateStyle(h,e))}setTransformRequest(h){return this._requestManager.setTransformRequest(h),this}_getUIString(h){const e=this._locale[h];if(e==null)throw new Error(`Missing UI string '${h}'`);return e}_updateStyle(h,e){var i,l;if(e.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",(()=>this._updateStyle(h,e)));const u=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!h)),h?(this.style=new zc(this,e||{}),this.style.setEventedParent(this,{style:this.style}),typeof h=="string"?this.style.loadURL(h,e,u):this.style.loadJSON(h,e,u),this):((l=(i=this.style)===null||i===void 0?void 0:i.projection)===null||l===void 0||l.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new zc(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(h,e){if(typeof h=="string"){const i=this._requestManager.transformRequest(h,"Style");s.j(i,new AbortController).then((l=>{this._updateDiff(l.data,e)})).catch((l=>{l&&this.fire(new s.k(l))}))}else typeof h=="object"&&this._updateDiff(h,e)}_updateDiff(h,e){try{this.style.setState(h,e)&&this._update(!0)}catch(i){s.w(`Unable to perform style diff: ${i.message||i.error||i}. Rebuilding the style from scratch.`),this._updateStyle(h,e)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():s.w("There is no style added to the map.")}addSource(h,e){return this._lazyInitEmptyStyle(),this.style.addSource(h,e),this._update(!0)}isSourceLoaded(h){const e=this.style&&this.style.sourceCaches[h];if(e!==void 0)return e.loaded();this.fire(new s.k(new Error(`There is no source with ID '${h}'`)))}setTerrain(h){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),h){const e=this.style.sourceCaches[h.source];if(!e)throw new Error(`cannot load terrain, because there exists no source with ID: ${h.source}`);this.terrain===null&&e.reload();for(const i in this.style._layers){const l=this.style._layers[i];l.type==="hillshade"&&l.source===h.source&&s.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."),l.type==="color-relief"&&l.source===h.source&&s.w("You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Or(this.painter,e,h),this.painter.renderToTexture=new Ul(this.painter,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._terrainDataCallback=i=>{var l;i.dataType==="style"?this.terrain.sourceCache.freeRtt():i.dataType==="source"&&i.tile&&(i.sourceId!==h.source||this._elevationFreeze||(this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))),((l=i.source)===null||l===void 0?void 0:l.type)==="image"?this.terrain.sourceCache.freeRtt():this.terrain.sourceCache.freeRtt(i.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.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0);return this.fire(new s.l("terrain",{terrain:h})),this}getTerrain(){var h,e;return(e=(h=this.terrain)===null||h===void 0?void 0:h.options)!==null&&e!==void 0?e:null}areTilesLoaded(){const h=this.style&&this.style.sourceCaches;for(const e in h){const i=h[e]._tiles;for(const l in i){const u=i[l];if(u.state!=="loaded"&&u.state!=="errored")return!1}}return!0}removeSource(h){return this.style.removeSource(h),this._update(!0)}getSource(h){return this.style.getSource(h)}setSourceTileLodParams(h,e,i){if(i){const l=this.getSource(i);if(!l)throw new Error(`There is no source with ID "${i}", cannot set LOD parameters`);l.calculateTileZoom=lt(Math.max(1,h),Math.max(1,e))}else for(const l in this.style.sourceCaches)this.style.sourceCaches[l].getSource().calculateTileZoom=lt(Math.max(1,h),Math.max(1,e));return this._update(!0),this}refreshTiles(h,e){const i=this.style.sourceCaches[h];if(!i)throw new Error(`There is no source cache with ID "${h}", cannot refresh tile`);e===void 0?i.reload(!0):i.refreshTiles(e.map((l=>new s.a4(l.z,l.x,l.y))))}addImage(h,e,i={}){const{pixelRatio:l=1,sdf:u=!1,stretchX:d,stretchY:g,content:w,textFitWidth:C,textFitHeight:P}=i;if(this._lazyInitEmptyStyle(),!(e instanceof HTMLImageElement||s.b(e))){if(e.width===void 0||e.height===void 0)return this.fire(new s.k(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:E,height:R,data:D}=e,N=e;return this.style.addImage(h,{data:new s.R({width:E,height:R},new Uint8Array(D)),pixelRatio:l,stretchX:d,stretchY:g,content:w,textFitWidth:C,textFitHeight:P,sdf:u,version:0,userImage:N}),N.onAdd&&N.onAdd(this,h),this}}{const{width:E,height:R,data:D}=ne.getImageData(e);this.style.addImage(h,{data:new s.R({width:E,height:R},D),pixelRatio:l,stretchX:d,stretchY:g,content:w,textFitWidth:C,textFitHeight:P,sdf:u,version:0})}}updateImage(h,e){const i=this.style.getImage(h);if(!i)return this.fire(new s.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const l=e instanceof HTMLImageElement||s.b(e)?ne.getImageData(e):e,{width:u,height:d,data:g}=l;if(u===void 0||d===void 0)return this.fire(new s.k(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(u!==i.data.width||d!==i.data.height)return this.fire(new s.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const w=!(e instanceof HTMLImageElement||s.b(e));return i.data.replace(g,w),this.style.updateImage(h,i),this}getImage(h){return this.style.getImage(h)}hasImage(h){return h?!!this.style.getImage(h):(this.fire(new s.k(new Error("Missing required image id"))),!1)}removeImage(h){this.style.removeImage(h)}loadImage(h){return Fe.getImage(this._requestManager.transformRequest(h,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(h,e){return this._lazyInitEmptyStyle(),this.style.addLayer(h,e),this._update(!0)}moveLayer(h,e){return this.style.moveLayer(h,e),this._update(!0)}removeLayer(h){return this.style.removeLayer(h),this._update(!0)}getLayer(h){return this.style.getLayer(h)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(h,e,i){return this.style.setLayerZoomRange(h,e,i),this._update(!0)}setFilter(h,e,i={}){return this.style.setFilter(h,e,i),this._update(!0)}getFilter(h){return this.style.getFilter(h)}setPaintProperty(h,e,i,l={}){return this.style.setPaintProperty(h,e,i,l),this._update(!0)}getPaintProperty(h,e){return this.style.getPaintProperty(h,e)}setLayoutProperty(h,e,i,l={}){return this.style.setLayoutProperty(h,e,i,l),this._update(!0)}getLayoutProperty(h,e){return this.style.getLayoutProperty(h,e)}setGlyphs(h,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(h,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(h,e,i={}){return this._lazyInitEmptyStyle(),this.style.addSprite(h,e,i,(l=>{l||this._update(!0)})),this}removeSprite(h){return this._lazyInitEmptyStyle(),this.style.removeSprite(h),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(h,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(h,e,(i=>{i||this._update(!0)})),this}setLight(h,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(h,e),this._update(!0)}getLight(){return this.style.getLight()}setSky(h,e={}){return this._lazyInitEmptyStyle(),this.style.setSky(h,e),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(h,e){return this.style.setFeatureState(h,e),this._update()}removeFeatureState(h,e){return this.style.removeFeatureState(h,e),this._update()}getFeatureState(h){return this.style.getFeatureState(h)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let h=0,e=0;return this._container&&(h=this._container.clientWidth||400,e=this._container.clientHeight||300),[h,e]}_setupContainer(){const h=this._container;h.classList.add("maplibregl-map");const e=this._canvasContainer=H.create("div","maplibregl-canvas-container",h);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=H.create("canvas","maplibregl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");const i=this._containerDimensions(),l=this._getClampedPixelRatio(i[0],i[1]);this._resizeCanvas(i[0],i[1],l);const u=this._controlContainer=H.create("div","maplibregl-control-container",h),d=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((g=>{d[g]=H.create("div",`maplibregl-ctrl-${g} `,u)})),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(h,e,i){this._canvas.width=Math.floor(i*h),this._canvas.height=Math.floor(i*e),this._canvas.style.width=`${h}px`,this._canvas.style.height=`${e}px`}_setupPainter(){const h=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let e=null;this._canvas.addEventListener("webglcontextcreationerror",(l=>{e={requestedAttributes:h},l&&(e.statusMessage=l.statusMessage,e.type=l.type)}),{once:!0});let i=null;if(i=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,h):this._canvas.getContext("webgl2",h)||this._canvas.getContext("webgl",h),!i){const l="Failed to initialize WebGL";throw e?(e.message=l,new Error(JSON.stringify(e))):new Error(l)}this.painter=new sd(i,this.transform),pe.testSupport(i)}migrateProjection(h,e){super.migrateProjection(h,e),this.painter.transform=h,this.fire(new s.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(h){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||h,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(h){return this._update(),this._renderTaskQueue.add(h)}_cancelRenderFrame(h){this._renderTaskQueue.remove(h)}_render(h){var e,i,l,u,d;const g=this._idleTriggered?this._fadeDuration:0,w=((e=this.style.projection)===null||e===void 0?void 0:e.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(h),this._removed)return;let C=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const R=this.transform.zoom,D=ne.now();this.style.zoomHistory.update(R,D);const N=new s.F(R,{now:D,fadeDuration:g,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition(),globalState:this.style.getGlobalState()}),G=N.crossFadingFactor();G===1&&G===this._crossFadingFactor||(C=!0,this._crossFadingFactor=G),this.style.update(N)}const P=((i=this.style.projection)===null||i===void 0?void 0:i.transitionState)>0!==w;(l=this.style.projection)===null||l===void 0||l.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState((u=this.style.projection)===null||u===void 0?void 0:u.transitionState,(d=this.style.projection)===null||d===void 0?void 0:d.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||P)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),!this._elevationFreeze&&this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0)),this._placementDirty=this.style&&this.style._updatePlacement(this.transform,this.showCollisionBoxes,g,this._crossSourceCollisions,P),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:g,showPadding:this.showPadding}),this.fire(new s.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,s.cw.mark(s.cx.load),this.fire(new s.l("load"))),this.style&&(this.style.hasTransitions()||C)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const E=this._sourcesDirty||this._styleDirty||this._placementDirty;return E||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new s.l("idle")),!this._loaded||this._fullyLoaded||E||(this._fullyLoaded=!0,s.cw.mark(s.cx.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var h;this._hash&&this._hash.remove();for(const i of this._controls)i.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),Fe.removeThrottleControl(this._imageQueueHandle),(h=this._resizeObserver)===null||h===void 0||h.disconnect();const e=this.painter.context.gl.getExtension("WEBGL_lose_context");e!=null&&e.loseContext&&e.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),H.remove(this._canvasContainer),H.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),s.cw.clearMetrics(),this._removed=!0,this.fire(new s.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,ne.frame(this._frameRequest,(h=>{s.cw.frame(h),this._frameRequest=null;try{this._render(h)}catch(e){if(!s.cy(e)&&!(function(i){return i.message===Vs})(e))throw e}}),(()=>{})))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(h){this._showTileBoundaries!==h&&(this._showTileBoundaries=h,this._update())}get showPadding(){return!!this._showPadding}set showPadding(h){this._showPadding!==h&&(this._showPadding=h,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(h){this._showCollisionBoxes!==h&&(this._showCollisionBoxes=h,h?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(h){this._showOverdrawInspector!==h&&(this._showOverdrawInspector=h,this._update())}get repaint(){return!!this._repaint}set repaint(h){this._repaint!==h&&(this._repaint=h,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(h){this._vertices=h,this._update()}get version(){return Td}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(h){return this._lazyInitEmptyStyle(),this.style.setProjection(h),this._update(!0)}},T.MapMouseEvent=Qi,T.MapTouchEvent=is,T.MapWheelEvent=ru,T.Marker=ds,T.NavigationControl=class{constructor(h){this._updateZoomButtons=()=>{const e=this._map.getZoom(),i=e===this._map.getMaxZoom(),l=e===this._map.getMinZoom();this._zoomInButton.disabled=i,this._zoomOutButton.disabled=l,this._zoomInButton.setAttribute("aria-disabled",i.toString()),this._zoomOutButton.setAttribute("aria-disabled",l.toString())},this._rotateCompassArrow=()=>{this._compassIcon.style.transform=this.options.visualizePitch&&this.options.visualizeRoll?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizeRoll?`rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)`:`rotate(${-this._map.transform.bearing}deg)`},this._setButtonTitle=(e,i)=>{const l=this._map._getUIString(`NavigationControl.${i}`);e.title=l,e.setAttribute("aria-label",l)},this.options=s.e({},$p,h),this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",(e=>this._map.zoomIn({},{originalEvent:e}))),H.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",(e=>this._map.zoomOut({},{originalEvent:e}))),H.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",(e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e})})),this._compassIcon=H.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(h){return this._map=h,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.options.visualizeRoll&&this._map.on("roll",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ks(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){H.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.options.visualizeRoll&&this._map.off("roll",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(h,e){const i=H.create("button",h,this._container);return i.type="button",i.addEventListener("click",e),i}},T.Popup=class extends s.E{constructor(h){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:"")},this.remove=()=>(this._content&&H.remove(this._content),this._container&&(H.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 s.l("close"))),this),this._onMouseUp=e=>{this._update(e.point)},this._onMouseMove=e=>{this._update(e.point)},this._onDrag=e=>{this._update(e.point)},this._update=e=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=H.create("div","maplibregl-popup",this._map.getContainer()),this._tip=H.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const g of this.options.className.split(" "))this._container.classList.add(g);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),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=ti(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!e)return;const i=this._flatPos=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&e?e:this._map.transform.locationToScreenPoint(this._lngLat));let l=this.options.anchor;const u=Hl(this.options.offset);if(!l){const g=this._container.offsetWidth,w=this._container.offsetHeight;let C;C=i.y+u.bottom.ythis._map.transform.height-w?["bottom"]:[],i.xthis._map.transform.width-g/2&&C.push("right"),l=C.length===0?"bottom":C.join("-")}let d=i.add(u[l]);this.options.subpixelPositioning||(d=d.round()),H.setTransform(this._container,`${$l[l]} translate(${d.x}px,${d.y}px)`),hs(this._container,l,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=s.e(Object.create(pu),h)}addTo(h){return this._map&&this.remove(),this._map=h,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 s.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(h){return this._lngLat=s.S.convert(h),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(h){return this.setDOMContent(document.createTextNode(h))}setHTML(h){const e=document.createDocumentFragment(),i=document.createElement("body");let l;for(i.innerHTML=h;l=i.firstChild,l;)e.appendChild(l);return this.setDOMContent(e)}getMaxWidth(){var h;return(h=this._container)===null||h===void 0?void 0:h.style.maxWidth}setMaxWidth(h){return this.options.maxWidth=h,this._update(),this}setDOMContent(h){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=H.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(h),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(h){return this._container&&this._container.classList.add(h),this}removeClassName(h){return this._container&&this._container.classList.remove(h),this}setOffset(h){return this.options.offset=h,this._update(),this}toggleClassName(h){if(this._container)return this._container.classList.toggle(h)}setSubpixelPositioning(h){this.options.subpixelPositioning=h}_createCloseButton(){this.options.closeButton&&(this._closeButton=H.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const h=this._container.querySelector(fu);h&&h.focus()}},T.RasterDEMTileSource=er,T.RasterTileSource=Ut,T.ScaleControl=class{constructor(h){this._onMove=()=>{Gl(this._map,this._container,this.options)},this.setUnit=e=>{this.options.unit=e,Gl(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},Js),h)}getDefaultPosition(){return"bottom-left"}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-scale",h.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){H.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},T.ScrollZoomHandler=_d,T.Style=zc,T.TerrainControl=class{constructor(h){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=h}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=H.create("button","maplibregl-ctrl-terrain",this._container),H.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(){H.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},T.TwoFingersTouchPitchHandler=Nl,T.TwoFingersTouchRotateHandler=cs,T.TwoFingersTouchZoomHandler=Ol,T.TwoFingersTouchZoomRotateHandler=yd,T.VectorTileSource=Rt,T.VideoSource=Ft,T.addSourceType=(h,e)=>s._(void 0,void 0,void 0,(function*(){if(Vr(h))throw new Error(`A source type called "${h}" already exists.`);((i,l)=>{lr[i]=l})(h,e)})),T.clearPrewarmedResources=function(){const h=it;h&&(h.isPreloaded()&&h.numActive()===1?(h.release(Ae),it=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()"))},T.createTileMesh=Ms,T.getMaxParallelImageRequests=function(){return s.a.MAX_PARALLEL_IMAGE_REQUESTS},T.getRTLTextPluginStatus=function(){return Ir().getRTLTextPluginStatus()},T.getVersion=function(){return mu},T.getWorkerCount=function(){return je.workerCount},T.getWorkerUrl=function(){return s.a.WORKER_URL},T.importScriptInWorkers=function(h){return ot().broadcast("IS",h)},T.prewarm=function(){Pt().acquire(Ae)},T.setMaxParallelImageRequests=function(h){s.a.MAX_PARALLEL_IMAGE_REQUESTS=h},T.setRTLTextPlugin=function(h,e){return Ir().setRTLTextPlugin(h,e)},T.setWorkerCount=function(h){je.workerCount=h},T.setWorkerUrl=function(h){s.a.WORKER_URL=h}}));var z=p;return z}))})(Xd)),Xd.exports}var c4=l4();const qd=Zm(c4);class ev{constructor(a){yr(this,"gm");yr(this,"markers",new Map);yr(this,"canvases",new Map);yr(this,"canvasSize");yr(this,"canvasOpacity",.8);this.input=a,this.gm=new fl(this.input.tileSize);const p=n0(a.img);this.canvasSize=Math.ceil(2e3/p)}place([a,p]){const y=this.gm.latLonToPixelsFloor(a,p,this.input.zoom),M=this.getMarkerId(y),z=this.gm.latLonToPixelBoundsLatLon(a,p,this.input.zoom),T=this.input.map;if(this.input.markerFn&&!this.markers.has(M)){const K=this.input.markerFn();K.setLngLat({lat:z.min[0],lng:(z.max[1]+z.min[1])/2}).addTo(T),this.markers.set(M,K)}const{key:s,pos:B,innerPos:O}=this.getCanvasPos(y);let X=this.canvases.get(s);if(!X){const K=this.canvasSize,ne=B.x*K,H=B.y*K,pe=ne+K-1,ge=H+K-1,Ie=this.gm.pixelsToLatLon(ne,ge+1,this.input.zoom),Ee=this.gm.pixelsToLatLon(pe+1,H,this.input.zoom);X=new u4({id:`${this.input.id}-${s}`,img:this.input.img,canvasSize:this.canvasSize,coordinates:Vm({min:Ie,max:Ee}),layerPaint:{"raster-resampling":"nearest","raster-opacity":this.canvasOpacity}}),X.addTo(this.input.map),this.canvases.set(s,X)}X.place(O.x,O.y)}clear(){const a=this.input.map;for(const p of this.canvases.values())p.removeFrom(a),p.removeDOM();this.canvases.clear();for(const p of this.markers.values())p.remove();this.markers.clear()}clearAndPlace(a){this.clear(),this.place(a)}remove([a,p]){let y=!1;const M=this.gm.latLonToPixelsFloor(a,p,this.input.zoom),{key:z,innerPos:T}=this.getCanvasPos(M),s=this.canvases.get(z);s&&(y=s.remove(T.x,T.y),s.annotationsCount()===0&&(this.canvases.delete(z),s.removeFrom(this.input.map),s.removeDOM()));const B=this.getMarkerId(M),O=this.markers.get(B);return O==null||O.remove(),this.markers.delete(B),y}setCanvasOpacity(a){this.canvasOpacity=a;for(const p of this.canvases.values())p.setOpacity(a)}getMarkerId([a,p]){return`${this.input.id}:${a},${p}`}getCanvasPos([a,p]){const y={x:Math.floor(a/this.canvasSize),y:Math.floor(p/this.canvasSize)},M={x:a%this.canvasSize,y:p%this.canvasSize},z=`${y.x},${y.y}`;return{pos:y,innerPos:M,key:z}}}class u4{constructor(a){yr(this,"annotations",new Set);yr(this,"canvas");yr(this,"imgSize");yr(this,"maps",new Set);this.input=a,this.imgSize=n0(a.img),this.canvas=document.createElement("canvas"),this.canvas.width=this.input.canvasSize*this.imgSize,this.canvas.height=this.input.canvasSize*this.imgSize}place(a,p){const y=this.getPixelKey(a,p);if(this.annotations.has(y))return!1;const M=this.canvas.getContext("2d");if(M){const z=a*this.imgSize,T=p*this.imgSize;M.drawImage(this.input.img,z,T)}return this.annotations.add(y),!0}remove(a,p){const y=this.getPixelKey(a,p);if(!this.annotations.has(y))return!1;const M=this.canvas.getContext("2d");if(M){const z=a*this.imgSize,T=p*this.imgSize;M.clearRect(z,T,this.imgSize,this.imgSize)}return this.annotations.delete(y),!0}addTo(a){const p=this.input.id;a.getSource(p)||a.addSource(p,{type:"canvas",canvas:this.canvas,coordinates:this.input.coordinates}),a.getLayer(p)||a.addLayer({id:p,type:"raster",source:p,paint:this.input.layerPaint}),this.maps.add(a)}removeFrom(a){const{id:p}=this.input;a.getLayer(p)&&a.removeLayer(p),a.getSource(p)&&a.removeSource(p),this.maps.delete(a)}removeDOM(){this.canvas.remove()}annotationsCount(){return this.annotations.size}setOpacity(a){for(const p of this.maps.values())p.setPaintProperty(this.input.id,"raster-opacity",a)}getPixelKey(a,p){return`${a},${p}`}}function n0(m){return Math.max(m.naturalWidth,m.naturalHeight)}function h4(){return window.matchMedia("(display-mode: standalone)").matches||"standalone"in window.navigator&&window.navigator.standalone===!0}function xc(m,a){return a.includes(m)}function d4(m){const a={opaque:!0},p=m.searchParams.get("lat"),y=m.searchParams.get("lng");p&&y&&(a.pos={lat:parseFloat(p),lng:parseFloat(y)});const M=m.searchParams.get("zoom");M&&(a.zoom=parseFloat(M));const z=m.searchParams.get("season");z&&(a.season=parseInt(z));const T=m.searchParams.get("opaque");return T&&(a.opaque=T!=="0"),m.searchParams.get("select")&&(a.select=!0),a.newUser=!!m.searchParams.get("new-user"),a.discordLinked=!!m.searchParams.get("discord-linked"),a.alliance=!!m.searchParams.get("alliance"),a}function p4(m,a){return m=new URL(m),a.pos!==void 0&&(m.searchParams.set("lat",a.pos.lat.toString()),m.searchParams.set("lng",a.pos.lng.toString())),a.zoom!==void 0&&m.searchParams.set("zoom",a.zoom.toString()),a.season!==void 0&&m.searchParams.set("season",a.season.toString()),a.opaque!==void 0&&m.searchParams.set("opaque",a.opaque?"1":"0"),a.newUser!==void 0&&m.searchParams.set("new-user",a.newUser?"1":"0"),a.alliance!==void 0&&m.searchParams.set("alliance",a.alliance?"1":"0"),a.select&&m.searchParams.set("alliance","1"),m}const Yd=bi({shouldReload:!0});var f4=(m,a)=>{var p;(p=a())==null||p.close()},m4=Te(' ');function _4(m,a){Lr(a,!0);let p=Lt(a,"ref",15),y=st(!1),M=st(bi(a.description)),z=st(void 0);Fn(()=>{const De=ze=>{var Fe;ze.key==="Escape"&&((Fe=p())==null||Fe.close())};return document.addEventListener("keydown",De),()=>document.removeEventListener("keydown",De)});var T=m4(),s=A(T),B=A(s),O=A(B,!0);k(B);var X=V(B,2),K=A(X),ne=A(K);{let De=pt(()=>Hv());yx(ne,{class:"h-24 rounded-lg",get placeholder(){return x(De)},max:512,get value(){return x(M)},set value(ze){se(M,ze,!0)},get validate(){return x(z)},set validate(ze){se(z,ze,!0)}})}k(K);var H=V(K,2),pe=A(H);pe.__click=[f4,p];var ge=A(pe,!0);k(pe);var Ie=V(pe,2),Ee=A(Ie,!0);k(Ie),k(H),k(X),k(s),vn(2),k(T),Ko(T,De=>p(De),()=>p()),We((De,ze,Fe)=>{de(O,De),pe.disabled=x(y),de(ge,ze),Ie.disabled=x(y),de(Ee,Fe)},[()=>bx(),()=>Ah(),()=>jT()]),di("submit",X,async()=>{var De,ze,Fe;try{if(!((De=x(z))!=null&&De()))return;se(y,!0),a.description!==x(M)&&await Qr.updateAllianceDescription(x(M)),await((ze=a.onsuccess)==null?void 0:ze.call(a,x(M))),(Fe=p())==null||Fe.close()}catch($e){Fr.error($e.message)}finally{se(y,!1)}}),$(m,T),Dr()}$n(["click"]);var g4=(m,a,p)=>{navigator.clipboard.writeText(x(a).toString()),se(p,!0),setTimeout(()=>{se(p,!1)},1e3)},v4=Te(''),y4=Te(' ');function x4(m,a){Lr(a,!0);let p=Lt(a,"open",15),y=st(""),M=st(!1);const z=pt(()=>yi.url.origin+`/join?id=${x(y)}`);Hr(()=>{p()&&Qr.getAllianceInvites().then(Je=>{se(y,Je[0],!0)}).catch(Je=>{Fr.error(Je.message)})}),Fn(()=>{const Je=qe=>{qe.key==="Escape"&&p(!1)};return document.addEventListener("keydown",Je),()=>document.removeEventListener("keydown",Je)});var T=y4(),s=A(T),B=V(A(s),2),O=A(B,!0);k(B);var X=V(B,2),K=A(X,!0);k(X);var ne=V(X,2),H=A(ne);let pe;var ge=A(H);Ka(ge);var Ie=V(ge,2),Ee=A(Ie);let De;Ee.__click=[g4,z,M];var ze=A(Ee,!0);k(Ee),k(Ie),k(H);var Fe=V(H,2);{var $e=Je=>{var qe=v4();$(Je,qe)};Ne(Fe,Je=>{x(y)||Je($e)})}k(ne),k(s),vn(2),k(T),Ni(T,()=>Je=>{Hr(()=>{p()?Je.show():Je.close()})}),We((Je,qe,Ze,Qe,Le,et)=>{de(O,Je),de(K,qe),pe=zr(H,1,"border-base-content/20 rounded-field relative flex w-full items-center gap-1 border-2 py-1.5 pl-4 pr-2.5",null,pe,Ze),Av(ge,Qe),De=zr(Ee,1,"btn btn-primary",null,De,Le),de(ze,et)},[()=>V3(),()=>U3(),()=>({invisible:!x(y)}),()=>x(z).toString(),()=>({"btn-success":x(M)}),()=>x(M)?Fm():Wf()]),di("close",T,()=>p(!1)),$(m,T),Dr()}$n(["click"]);var b4=Sr('');function Qf(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=b4();ir(y,()=>({viewBox:"0 0 256 199",width:"256",height:"199",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",...p})),$(m,y)}var w4=Te('(Verified)'),T4=Te(''),C4=async(m,a)=>{await navigator.clipboard.writeText(a.username),Fr.info(HC())},S4=Te(""),P4=Te('
                  ');function Eh(m,a){Lr(a,!0);const p=!!a.id;var y=P4(),M=A(y),z=A(M),T=A(z);k(z);var s=V(z,2);{var B=ne=>{var H=w4();$(ne,H)};Ne(s,ne=>{p&&ne(B)})}k(M);var O=V(M,2);{var X=ne=>{var H=T4(),pe=A(H);Qf(pe,{class:"size-4 opacity-70"}),k(H),We(ge=>wr(H,"href",ge),[()=>`https://discord.com/users/${encodeURIComponent(a.id)}`]),$(ne,H)},K=ne=>{var H=S4();H.__click=[C4,a];var pe=A(H);Qf(pe,{class:"size-4 opacity-70"}),k(H),$(ne,H)};Ne(O,ne=>{p?ne(X):ne(K,!1)})}k(y),We(()=>de(T,`Discord: ${a.username??""}`)),$(m,y),Dr()}$n(["click"]);var I4=Te(''),M4=Te('
                  ');function Um(m,a){Lr(a,!0);const p=[];let y=Lt(a,"value",15,"today"),M=[{value:"today",label:vp()},{value:"week",label:iT()},{value:"month",label:sT()},{value:"all-time",label:uT()}];var z=M4();hi(z,21,()=>M,T=>T.value,(T,s)=>{var B=I4();Ka(B);var O;We(()=>{wr(B,"aria-label",x(s).label),O!==(O=x(s).value)&&(B.value=(B.__value=x(s).value)??"")}),Lm(p,[],B,()=>(x(s).value,y()),y),$(T,B)}),k(z),$(m,z),Dr()}const k4=typeof window<"u"?window:void 0;function A4(m){let a=m.activeElement;for(;a!=null&&a.shadowRoot;){const p=a.shadowRoot.activeElement;if(p===a)break;a=p}return a}var bc,Xu,Pv;let E4=(Pv=class{constructor(a={}){Ar(this,bc);Ar(this,Xu);const{window:p=k4,document:y=p==null?void 0:p.document}=a;p!==void 0&&(na(this,bc,y),na(this,Xu,Ev(M=>{const z=Nu(p,"focusin",M),T=Nu(p,"focusout",M);return()=>{z(),T()}})))}get current(){var a;return(a=at(this,Xu))==null||a.call(this),at(this,bc)?A4(at(this,bc)):null}},bc=new WeakMap,Xu=new WeakMap,Pv);new E4;function z4(m,a){switch(m){case"post":Hr(a);break;case"pre":Mm(a);break}}function i0(m,a,p,y={}){const{lazy:M=!1}=y;let z=!M,T=Array.isArray(m)?[]:void 0;z4(a,()=>{const s=Array.isArray(m)?m.map(O=>O()):m();if(!z){z=!0,T=s;return}const B=ul(()=>p(s,T));return T=s,B})}function dl(m,a,p){i0(m,"post",a,p)}function L4(m,a,p){i0(m,"pre",a,p)}dl.pre=L4;var D4=Te(''),R4=Te('
                  '),B4=Te(' '),F4=(m,a,p)=>{a.onlastpixelclick({lat:x(p).lastLatitude??0,lng:x(p).lastLongitude??0})},O4=Te(""),N4=Te('
                  '),j4=Te('
                  '),V4=Te('
                  ');function q4(m,a){Lr(a,!0);let p=Lt(a,"reload",15),y=st(!0),M=st([]),z=st(0),T=st("today"),s={};p(B);function B(){const ge=x(T);Qr.allianceLeaderboard(ge).then(Ie=>{se(M,Ie),s={[ge]:Ie},se(y,!1)}).catch(Ie=>{Fr.error(Ie.message)})}dl(()=>[x(T)],()=>{const ge=x(T),Ie=s[ge];if(Ie){se(M,Ie),se(y,!1);return}se(y,!0),Qr.allianceLeaderboard(ge).then(Ee=>{se(M,Ee),s[ge]=Ee,se(y,!1)}).catch(Ee=>{Fr.error(Ee.message)})});var O=V4(),X=A(O);Um(X,{get value(){return x(T)},set value(ge){se(T,ge,!0)}});var K=V(X,2),ne=A(K);{var H=ge=>{var Ie=D4();$(ge,Ie)},pe=ge=>{var Ie=Qt(),Ee=Ct(Ie);{var De=Fe=>{var $e=R4(),Je=A($e),qe=V(Je);{var Ze=Le=>{var et=wi();We(nt=>de(et,nt),[()=>vp().toLowerCase()]),$(Le,et)},Qe=Le=>{var et=Qt(),nt=Ct(et);{var Ue=yt=>{var Q=wi();We(re=>de(Q,re),[()=>Nm()]),$(yt,Q)},Me=yt=>{var Q=Qt(),re=Ct(Q);{var he=oe=>{var Ae=wi();We(je=>de(Ae,je),[()=>jm()]),$(oe,Ae)};Ne(re,oe=>{x(T)==="month"&&oe(he)},!0)}$(yt,Q)};Ne(nt,yt=>{x(T)==="week"?yt(Ue):yt(Me,!1)},!0)}$(Le,et)};Ne(qe,Le=>{x(T)==="today"?Le(Ze):Le(Qe,!1)})}k($e),We(Le=>de(Je,`${Le??""} `),[()=>Om()]),$(Fe,$e)},ze=Fe=>{var $e=j4(),Je=A($e),qe=A(Je),Ze=V(A(qe)),Qe=A(Ze,!0);k(Ze);var Le=V(Ze),et=A(Le,!0);k(Le),k(qe),k(Je);var nt=V(Je);hi(nt,31,()=>x(M),Ue=>Ue.userId,(Ue,Me,yt)=>{const Q=pt(()=>{var Ut;return((Ut=Mt.data)==null?void 0:Ut.id)===x(Me).userId});var re=N4();let he;var oe=A(re),Ae=A(oe,!0);k(oe);var je=V(oe),ft=A(je),it=A(ft);co(it,{class:"size-10 border",get userId(){return x(Me).userId},get pictureUrl(){return x(Me).picture}});var ut=V(it,2),Pt=A(ut),Dt=V(Pt),ot=A(Dt);k(Dt),k(ut);var dt=V(ut,2);{var vt=Ut=>{const er=pt(()=>So(x(Me).equippedFlag));var tr=B4(),Nt=A(tr,!0);k(tr),We(()=>{wr(tr,"data-tip",x(er).name),de(Nt,x(er).flag)}),$(Ut,tr)};Ne(dt,Ut=>{x(Me).equippedFlag&&Ut(vt)})}var xt=V(dt,2);{var It=Ut=>{Eh(Ut,{get username(){return x(Me).discord},get id(){return x(Me).discordId}})};Ne(xt,Ut=>{x(Me).discord&&Ut(It)})}k(ft),k(je);var wt=V(je),_t=A(wt),Et=V(_t);{var Rt=Ut=>{var er=O4();let tr;er.__click=[F4,a,Me];var Nt=A(er);Em(Nt,{class:"size-4"}),k(er),We((Ft,sr)=>{tr=zr(er,1,"btn btn-sm btn-ghost absolute -right-2 top-1/2 !-translate-y-1/2 sm:right-4",null,tr,Ft),wr(er,"data-tip",sr)},[()=>({tooltip:x(z)>640}),()=>Mx()]),$(Ut,er)};Ne(Et,Ut=>{x(Me).lastLatitude&&x(Me).lastLongitude&&Ut(Rt)})}k(wt),k(re),We((Ut,er,tr)=>{var Nt;he=zr(re,1,"",null,he,Ut),de(Ae,x(yt)+1),zr(ut,1,`font-semibold ${er??""} flex gap-1`),de(Pt,`${(x(Q)?((Nt=Mt.data)==null?void 0:Nt.name)??x(Me).name:x(Me).name)??""} `),de(ot,`#${x(Me).userId??""}`),de(_t,`${tr??""} `)},[()=>({"bg-base-200":x(Q)}),()=>Oi(x(Me).userId),()=>x(Me).pixelsPainted.toLocaleString("en-US")]),ll(re,()=>cl,()=>({duration:200})),$(Ue,re)}),k(nt),k($e),We((Ue,Me)=>{de(Qe,Ue),de(et,Me)},[()=>Dm(),()=>zm()]),$(Fe,$e)};Ne(Ee,Fe=>{x(M).length===0?Fe(De):Fe(ze,!1)},!0)}$(ge,Ie)};Ne(ne,ge=>{x(y)?ge(H):ge(pe,!1)})}k(K),k(O),mp("innerWidth",ge=>se(z,ge,!0)),$(m,O),Dr()}$n(["click"]);var Z4=Sr('');function $m(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=Z4();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var U4=(m,a)=>a.onclickback(),$4=Te('
                  ADMIN
                  '),G4=async(m,a)=>{try{x(a).loading=!0,await Qr.giveAllianceAdmin(x(a).id),x(a).role="admin"}catch{Fr.error(gS())}finally{x(a).loading=!1}},H4=async(m,a,p)=>{try{x(a).loading=!0,await Qr.banAllianceUser(x(a).id),p.data=p.data.filter(y=>y.id!==x(a).id)}catch{Fr.error(ZT())}finally{x(a).loading=!1}},W4=Te('
                • ',1),X4=Te('
                • '),Y4=Te('
                  '),K4=Te('
                  '),J4=(m,a,p)=>{Qr.unbanAllianceUser(x(a).id).then(()=>{p.data=p.data.filter(y=>y.id!==x(a).id)}).catch(y=>Fr.error(y.message)).finally(()=>{x(a).loading=!1})},Q4=Te('
                  '),eM=Te('
                  '),tM=Te('
                  '),rM=Te('

                  ');function nM(m,a){Lr(a,!0);let p=bi({data:[],page:0,hasNextPage:!0,loading:!1}),y=bi({data:[],page:0,hasNextPage:!0,loading:!1});var M=rM(),z=A(M),T=A(z);T.__click=[U4,a];var s=A(T);Dx(s,{class:"size-5"}),k(T);var B=V(T,2),O=A(B,!0);k(B),k(z);var X=V(z,2),K=A(X);Ka(K);var ne=V(K,2),H=A(ne),pe=A(H);hi(pe,21,()=>p.data,Qe=>Qe.id,(Qe,Le,et)=>{const nt=pt(()=>{var vt;return((vt=Mt.data)==null?void 0:vt.id)===x(Le).id});var Ue=Y4(),Me=A(Ue),yt=A(Me),Q=A(yt);co(Q,{class:"size-10 border",get userId(){return x(Le).id},get pictureUrl(){return x(Le).picture}});var re=V(Q,2),he=A(re);k(re);var oe=V(re,2);{var Ae=vt=>{var xt=$4();$(vt,xt)};Ne(oe,vt=>{x(Le).role==="admin"&&vt(Ae)})}k(yt),k(Me);var je=V(Me),ft=A(je),it=A(ft),ut=A(it);$m(ut,{class:"size-4"}),k(it);var Pt=V(it,2),Dt=A(Pt);{var ot=vt=>{var xt=W4(),It=Ct(xt),wt=A(It);wt.__click=[G4,Le];var _t=A(wt,!0);k(wt),k(It);var Et=V(It,2),Rt=A(Et);Rt.__click=[H4,Le,p];var Ut=A(Rt,!0);k(Rt),k(Et),We((er,tr)=>{wt.disabled=x(Le).loading,de(_t,er),Rt.disabled=x(Le).loading,de(Ut,tr)},[()=>PT(),()=>Wv()]),$(vt,xt)},dt=vt=>{var xt=X4(),It=A(xt);It.disabled=!0;var wt=A(It,!0);k(It),k(xt),We(_t=>de(wt,_t),[()=>ET()]),$(vt,xt)};Ne(Dt,vt=>{x(Le).role==="member"?vt(ot):vt(dt,!1)})}k(Pt),k(ft),k(je),k(Ue),We(vt=>{var xt;zr(re,1,`font-semibold ${vt??""}`),de(he,`${(x(nt)?((xt=Mt.data)==null?void 0:xt.name)??x(Le).name:x(Le).name)??""} #${x(Le).id??""}`)},[()=>Oi(x(Le).id)]),$(Qe,Ue)}),k(pe),k(H);var ge=V(H,2);{var Ie=Qe=>{var Le=Qt(),et=Ct(Le);ju(et,()=>p.page,nt=>{var Ue=K4();Ni(Ue,()=>Me=>{const yt=new IntersectionObserver(Q=>{Q[0].isIntersecting&&!p.loading&&(p.loading=!0,Qr.getAllianceMembers(p.page).then(re=>{p.data=[...p.data,...re.data],p.hasNextPage=re.hasNext,p.page++}).catch(re=>{Fr.error(re.message)}).finally(()=>{p.loading=!1}))});return yt.observe(Me),()=>{yt.disconnect()}}),$(nt,Ue)}),$(Qe,Le)};Ne(ge,Qe=>{p.hasNextPage&&Qe(Ie)})}k(ne);var Ee=V(ne,2),De=V(Ee,2),ze=A(De),Fe=A(ze);hi(Fe,21,()=>y.data,Qe=>Qe.id,(Qe,Le,et)=>{var nt=Q4(),Ue=A(nt),Me=A(Ue),yt=A(Me);co(yt,{class:"size-10 border",get userId(){return x(Le).id},get pictureUrl(){return x(Le).picture}});var Q=V(yt,2),re=A(Q);k(Q),k(Me),k(Ue);var he=V(Ue),oe=A(he);oe.__click=[J4,Le,y];var Ae=A(oe,!0);k(oe),k(he),k(nt),We((je,ft)=>{zr(Q,1,`font-semibold ${je??""}`),de(re,`${x(Le).name??""} #${x(Le).id??""}`),oe.disabled=x(Le).loading,de(Ae,ft)},[()=>Oi(x(Le).id),()=>DT()]),$(Qe,nt)}),k(Fe),k(ze);var $e=V(ze,2);{var Je=Qe=>{var Le=eM(),et=A(Le,!0);k(Le),We(nt=>de(et,nt),[()=>FT()]),$(Qe,Le)};Ne($e,Qe=>{!y.hasNextPage&&y.data.length===0&&Qe(Je)})}var qe=V($e,2);{var Ze=Qe=>{var Le=Qt(),et=Ct(Le);ju(et,()=>y.page,nt=>{var Ue=tM();Ni(Ue,()=>Me=>{const yt=new IntersectionObserver(Q=>{Q[0].isIntersecting&&!y.loading&&(y.loading=!0,Qr.getAllianceBannedMembers(y.page).then(re=>{y.data=[...y.data,...re.data],y.hasNextPage=re.hasNext,y.page++}).catch(re=>{Fr.error(re.message)}).finally(()=>{y.loading=!1}))});return yt.observe(Me),()=>{yt.disconnect()}}),$(nt,Ue)}),$(Qe,Le)};Ne(qe,Qe=>{y.hasNextPage&&Qe(Ze)})}k(De),k(X),k(M),We((Qe,Le,et)=>{de(O,Qe),wr(K,"aria-label",Le),wr(Ee,"aria-label",et)},[()=>Dv(),()=>GT(),()=>Xv()]),$(m,M),Dr()}$n(["click"]);var iM=Te(' '),aM=Te(''),oM=Te('

                  '),sM=Te('
                  ');function em(m,a){Lr(a,!0);let p=Lt(a,"value",15),y=Lt(a,"validate",15),M=st("");const z=pt(()=>{var Ee;return((Ee=p())==null?void 0:Ee.length)??0});y(T);function T(){return a.min!==void 0&&x(z)a.max?(se(M,`Max. characters: ${a.max}`),!1):!0}Hr(()=>{var Ee;a.max!==void 0&&x(z)>a.max&&p((Ee=p())==null?void 0:Ee.substring(0,a.max))});var s=sM(),B=A(s);let O;var X=A(B);{var K=Ee=>{var De=iM(),ze=A(De,!0);k(De),We(()=>de(ze,a.label)),$(Ee,De)};Ne(X,Ee=>{a.label&&Ee(K)})}var ne=V(X,2);Ka(ne);var H=V(ne,2);{var pe=Ee=>{var De=aM(),ze=A(De,!0);k(De),We(()=>de(ze,a.max-x(z))),$(Ee,De)};Ne(H,Ee=>{a.max!==void 0&&Ee(pe)})}k(B);var ge=V(B,2);{var Ie=Ee=>{var De=oM(),ze=A(De,!0);k(De),We(()=>de(ze,x(M))),$(Ee,De)};Ne(ge,Ee=>{x(M)&&Ee(Ie)})}k(s),We(Ee=>{O=zr(B,1,"input w-full",null,O,Ee),wr(ne,"placeholder",a.placeholder),wr(ne,"maxlength",a.max)},[()=>({"input-error":!!x(M)})]),dp(ne,p),$(m,s),Dr()}var lM=(m,a)=>{var p;(p=a())==null||p.close()},cM=Te(' ');function uM(m,a){Lr(a,!0);let p=Lt(a,"ref",15),y=st(!1),M=st(""),z=st(void 0);Fn(()=>{const De=ze=>{var Fe;ze.key==="Escape"&&((Fe=p())==null||Fe.close())};return document.addEventListener("keydown",De),()=>document.removeEventListener("keydown",De)});var T=cM(),s=A(T),B=A(s),O=A(B,!0);k(B);var X=V(B,2),K=A(X),ne=A(K);{let De=pt(()=>Kf()),ze=pt(()=>xT());em(ne,{get label(){return x(De)},get placeholder(){return x(ze)},min:1,max:16,get value(){return x(M)},set value(Fe){se(M,Fe,!0)},get validate(){return x(z)},set validate(Fe){se(z,Fe,!0)}})}k(K);var H=V(K,2),pe=A(H);pe.__click=[lM,p];var ge=A(pe,!0);k(pe);var Ie=V(pe,2),Ee=A(Ie,!0);k(Ie),k(H),k(X),k(s),vn(2),k(T),Ko(T,De=>p(De),()=>p()),We((De,ze,Fe)=>{de(O,De),pe.disabled=x(y),de(ge,ze),Ie.disabled=x(y),de(Ee,Fe)},[()=>gT(),()=>Ah(),()=>TT()]),di("submit",X,async()=>{var De,ze;try{if(!((De=x(z))!=null&&De()))return;se(y,!0);const{id:Fe}=await Qr.createAlliance(x(M));await a.onsuccess(Fe),(ze=p())==null||ze.close()}catch(Fe){Fr.error(Fe.message)}finally{se(y,!1)}}),$(m,T),Dr()}$n(["click"]);var hM=Sr('');function zh(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=hM();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var dM=Sr(''),pM=Sr('');function tm(m,a){let p=rr(a,["$$slots","$$events","$$legacy","filled"]);var y=Qt(),M=Ct(y);{var z=s=>{var B=dM();ir(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(s,B)},T=s=>{var B=pM();ir(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(s,B)};Ne(M,s=>{a.filled?s(z):s(T,!1)})}$(m,y)}var fM=Sr('');function mM(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=fM();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var _M=Sr('');function gM(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=_M();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var vM=Sr('');function yM(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=vM();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var xM=Sr('');function yp(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=xM();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}function bM(m,a="_blank"){return m.replaceAll(/https?:\/\/[^\s]+/g,p=>`${p}`)}var wM=Te('
                  '),TM=async(m,a,p,y)=>{try{se(a,!0),await Qr.leaveAlliance(),se(p,!0),await y()}catch(M){Fr.error(M.message)}finally{se(a,!1)}},CM=(m,a)=>{se(a,!0)},SM=Te('
                  '),PM=(m,a)=>{var p;(p=x(a))==null||p.show()},IM=Te(''),MM=Te(''),kM=Te(' '),AM=(m,a)=>se(a,!0),EM=Te(''),zM=(m,a,p)=>{var y;(y=x(a))!=null&&y.hq?p.onhqclick({lat:x(a).hq.latitude,lng:x(a).hq.longitude}):p.onhqchange()},LM=Te(' '),DM=Te(' '),RM=Te(''),BM=Te('
                  '),FM=Te('

                  ',1),OM=(m,a)=>{var p;(p=x(a))==null||p.show()},NM=Te('
                  ',1),jM=Te('
                  ');function VM(m,a){Lr(a,!0);let p=st(void 0),y=st(!0),M=st(void 0),z=st(!1),T=st(void 0),s=st(!1),B=st(!1),O=st(()=>{});dl(()=>a.open,()=>{a.open&&Yd.shouldReload&&X()}),Fn(()=>{const ge=setInterval(()=>{Yd.shouldReload=!0},1e4);return()=>{clearTimeout(ge)}});async function X(){try{se(p,await Qr.getAlliance(),!0),x(p)&&x(O)(),se(y,!1),Yd.shouldReload=!1}catch(ge){Fr.error(ge.message)}}var K=jM(),ne=A(K);{var H=ge=>{var Ie=wM();$(ge,Ie)},pe=ge=>{var Ie=Qt(),Ee=Ct(Ie);{var De=Fe=>{nM(Fe,{onclickback:()=>se(B,!1)})},ze=Fe=>{var $e=Qt(),Je=Ct($e);{var qe=Qe=>{var Le=FM(),et=Ct(Le),nt=A(et),Ue=A(nt,!0);k(nt);var Me=V(nt,2),yt=A(Me),Q=A(yt),re=A(Q);$m(re,{class:"size-4"}),k(Q);var he=V(Q,2),oe=A(he),Ae=A(oe);Ae.__click=[TM,z,y,X];var je=A(Ae,!0);k(Ae),k(oe),k(he),k(yt);var ft=V(yt,2);{var it=le=>{var j=SM(),Z=A(j);Z.__click=[CM,s];var Y=A(Z);yM(Y,{class:"size-4"}),k(Z),k(j),We(ae=>wr(j,"data-tip",ae),[()=>K3()]),$(le,j)};Ne(ft,le=>{x(p).role=="admin"&&le(it)})}k(Me),k(et);var ut=V(et,2);{var Pt=le=>{var j=MM(),Z=A(j);Am(Z,()=>bM(x(p).description||Hv()));var Y=V(Z,2);{var ae=fe=>{var Se=IM();Se.__click=[PM,T];var ke=A(Se);tm(ke,{class:"size-4"}),k(Se),$(fe,Se)};Ne(Y,fe=>{x(p).role==="admin"&&fe(ae)})}k(j),$(le,j)};Ne(ut,le=>{(x(p).description||x(p).role==="admin")&&le(Pt)})}var Dt=V(ut,2),ot=A(Dt),dt=A(ot);zh(dt,{class:"inline size-4"});var vt=V(dt,2),xt=A(vt),It=V(xt),wt=A(It,!0);k(It),k(vt),k(ot);var _t=V(ot,2),Et=A(_t);yp(Et,{class:"inline size-4"});var Rt=V(Et,2),Ut=A(Rt),er=V(Ut);{var tr=le=>{var j=kM(),Z=A(j,!0);k(j),We(Y=>de(Z,Y),[()=>x(p).members.toLocaleString("en-US")]),$(le,j)},Nt=le=>{var j=EM();j.__click=[AM,B];var Z=A(j,!0);k(j),We(Y=>de(Z,Y),[()=>x(p).members.toLocaleString("en-US")]),$(le,j)};Ne(er,le=>{x(p).role==="member"?le(tr):le(Nt,!1)})}k(Rt),k(_t);var Ft=V(_t,2);{var sr=le=>{var j=BM(),Z=A(j);mM(Z,{class:"inline size-4"});var Y=V(Z,2),ae=A(Y),fe=V(ae);fe.__click=[zM,p,a];var Se=A(fe);{var ke=Ye=>{var kt=LM(),xe=A(kt);k(kt),We((Ot,cr)=>de(xe,`${Ot??""}, ${cr??""}`),[()=>x(p).hq.latitude.toFixed(3),()=>x(p).hq.longitude.toFixed(3)]),$(Ye,kt)},we=Ye=>{var kt=DM(),xe=A(kt,!0);k(kt),We(Ot=>de(xe,Ot),[()=>P3()]),$(Ye,kt)};Ne(Se,Ye=>{x(p).hq?Ye(ke):Ye(we,!1)})}k(fe),k(Y);var Oe=V(Y,2);{var lt=Ye=>{var kt=RM();kt.__click=function(...Ot){var cr;(cr=a.onhqchange)==null||cr.apply(this,Ot)};var xe=A(kt);tm(xe,{class:"text-base-content/50 size-4"}),k(kt),$(Ye,kt)};Ne(Oe,Ye=>{x(p).role==="admin"&&Ye(lt)})}k(j),We(Ye=>de(ae,`${Ye??""}: `),[()=>T3()]),$(le,j)};Ne(Ft,le=>{(x(p).hq||x(p).role==="admin")&&le(sr)})}k(Dt);var lr=V(Dt,2),Vr=A(lr),mr=A(Vr,!0);k(Vr);var hr=V(Vr,2),_r=A(hr);q4(_r,{get allianceId(){return x(p).id},get onlastpixelclick(){return a.onlastpixelclick},get reload(){return x(O)},set reload(le){se(O,le,!0)}}),k(hr),k(lr);var Ir=V(lr,2);_4(Ir,{get description(){return x(p).description},onsuccess:async le=>{x(p)&&(x(p).description=le)},get ref(){return x(T)},set ref(le){se(T,le,!0)}});var qr=V(Ir,2);x4(qr,{get open(){return x(s)},set open(le){se(s,le,!0)}}),We((le,j,Z,Y,ae)=>{de(Ue,x(p).name),Ae.disabled=x(z),de(je,le),de(xt,`${j??""}: `),de(wt,Z),de(Ut,`${Y??""}: `),de(mr,ae)},[()=>x3(),()=>zm(),()=>x(p).pixelsPainted.toLocaleString("en-US"),()=>Dv(),()=>Bm()]),$(Qe,Le)},Ze=Qe=>{var Le=NM(),et=Ct(Le),nt=A(et),Ue=A(nt);k(nt);var Me=V(nt,2),yt=A(Me);gM(yt,{class:"size-5"});var Q=V(yt,1,!0);k(Me);var re=V(Me,2),he=A(re),oe=A(he,!0);k(he),k(re);var Ae=V(re,2);Ae.__click=[OM,M];var je=A(Ae);Rv(je,{class:"size-6"});var ft=V(je);k(Ae),k(et);var it=V(et,2);uM(it,{onsuccess:X,get ref(){return x(M)},set ref(ut){se(M,ut,!0)}}),We((ut,Pt,Dt,ot)=>{de(Ue,`${ut??""}:`),de(Q,Pt),de(oe,Dt),de(ft,` ${ot??""}`)},[()=>k3(),()=>z3(),()=>R3(),()=>O3()]),$(Qe,Le)};Ne(Je,Qe=>{x(p)?Qe(qe):Qe(Ze,!1)},!0)}$(Fe,$e)};Ne(Ee,Fe=>{x(B)?Fe(De):Fe(ze,!1)},!0)}$(ge,Ie)};Ne(ne,ge=>{x(y)?ge(H):ge(pe,!1)})}k(K),$(m,K),Dr()}$n(["click"]);var qM=Sr('');function xp(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=qM();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var ZM=Te(' ');function UM(m,a){Lr(a,!0);let p=Lt(a,"open",15);Fn(()=>{const K=ne=>{ne.key==="Escape"&&p(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)});var y=ZM(),M=A(y),z=V(A(M),2),T=A(z);xp(T,{class:"size-5 max-sm:size-6"});var s=V(T,2),B=A(s,!0);k(s),k(z);var O=V(z,2),X=A(O);VM(X,{get open(){return p()},get onhqchange(){return a.onhqchange},get onhqclick(){return a.onhqclick},get onlastpixelclick(){return a.onlastpixelclick}}),k(O),k(M),vn(2),k(y),Ni(y,()=>K=>{Hr(()=>{p()?(K.show(),yi.url.searchParams.get("alliance")&&(yi.url.searchParams.delete("alliance"),km(yi.url.toString()))):K.close()})}),We(K=>de(B,K),[()=>_p()]),di("close",y,()=>p(!1)),Ai(2,O,()=>ia,()=>({duration:300})),$(m,y),Dr()}function $M(m,a,p){return new Promise((y,M)=>{m.once("render",()=>{const z=m.getCanvas().toDataURL(),T=document.createElement("img");T.src=z,T.onload=()=>{const s=document.createElement("canvas");s.width=T.width,s.height=T.height;const B=s.getContext("2d");if(B){B.drawImage(T,0,0);const[O,X,K,ne]=B.getImageData(a,p,1,1).data;y([O,X,K,ne])}else M(new Error("Could not get 2d context from canvas"));T.remove(),s.remove()}}),m.triggerRepaint()})}function a0(m,a){return new Promise((p,y)=>{m.once("render",()=>{const M=m.getCanvas();let z=M;if(a!=null&&a.maxWidth||a!=null&&a.maxHeight){const T=M.width,s=M.height,B=(a==null?void 0:a.maxWidth)??T,O=(a==null?void 0:a.maxHeight)??s;z=document.createElement("canvas");const X=Math.min(B/T,O/s);z.width=Math.floor(T*X),z.height=Math.floor(s*X);const K=z.getContext("2d");K&&K.drawImage(M,0,0,z.width,z.height)}try{z.toBlob(T=>{T&&p(T)},(a==null?void 0:a.type)??"image/png",(a==null?void 0:a.quality)??1)}catch(T){y(T)}finally{z!==M&&z.remove()}})})}var GM=Sr('');function HM(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=GM();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px",fill:"currentColor",...p})),$(m,y)}var WM=Sr('');function o0(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=WM();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}const gc={hour:3600*1e3,min:60*1e3,sec:1e3};function rp(m){const a=Math.floor(m/gc.hour);m-=a*gc.hour;const p=Math.floor(m/gc.min);m-=p*gc.min;const M=Math.floor(m/gc.sec).toString().padStart(2,"0");return a>0?`${a}:${p.toString().padStart(2,"0")}:${M}`:`${p}:${M}`}function XM(m){const a=new Date,p=a.getFullYear(),y=String(a.getMonth()+1).padStart(2,"0"),M=String(a.getDate()).padStart(2,"0"),z=String(a.getHours()).padStart(2,"0"),T=String(a.getMinutes()).padStart(2,"0"),s=String(a.getSeconds()).padStart(2,"0");return`${p}-${y}-${M} ${z}:${T}:${s}`}var YM=(m,a,p)=>{navigator.clipboard.writeText(a.url.toString()),se(p,!0),setTimeout(()=>{se(p,!1)},1e3)},KM=Te('Screenshot'),JM=Te('
                  '),QM=async(m,a)=>{x(a)&&(await navigator.clipboard.write([new ClipboardItem({"image/png":x(a)})]),Fr.info(TP()))},e6=Te(''),t6=Te(' ');function r6(m,a){Lr(a,!0);let p=Lt(a,"open",15),y=st(!1);Fn(()=>{const ze=Fe=>{Fe.key==="Escape"&&p(!1)};return document.addEventListener("keydown",ze),()=>document.removeEventListener("keydown",ze)});let M=st(null),z=st("");Hr(()=>{p()?(a.hideHover(),setTimeout(async()=>{a0(a.map).then(ze=>{se(M,ze,!0),se(z,URL.createObjectURL(x(M)),!0)}).finally(()=>{a.showHover()})},500)):x(z)&&(URL.revokeObjectURL(x(z)),se(M,null),se(z,""))});var T=t6(),s=A(T),B=V(A(s),2),O=A(B);o0(O,{class:"size-5"});var X=V(O);k(B);var K=V(B,2),ne=A(K);Ka(ne);var H=V(ne,2),pe=A(H);let ge;pe.__click=[YM,a,y];var Ie=A(pe,!0);k(pe),k(H),k(K);var Ee=V(K,2);{var De=ze=>{const Fe=pt(()=>{var oe;return(oe=a.map)==null?void 0:oe.getCanvas()});var $e=e6(),Je=A($e),qe=A(Je);HM(qe,{class:"inline size-5"});var Ze=V(qe);k(Je);var Qe=V(Je,2);{var Le=oe=>{var Ae=KM();We(()=>{wr(Ae,"src",x(z)),wr(Ae,"width",x(Fe).width),wr(Ae,"height",x(Fe).height)}),$(oe,Ae)},et=oe=>{var Ae=JM();We(()=>kc(Ae,`aspect-ratio: ${x(Fe).width/x(Fe).height}`)),$(oe,Ae)};Ne(Qe,oe=>{x(z)?oe(Le):oe(et,!1)})}var nt=V(Qe,2),Ue=A(nt);Ue.__click=[QM,M];var Me=A(Ue);Rm(Me,{class:"size-5"});var yt=V(Me);k(Ue);var Q=V(Ue,2),re=A(Q);zv(re,{class:"size-5"});var he=V(re);k(Q),k(nt),k($e),We((oe,Ae,je,ft)=>{de(Ze,` ${oe??""}`),de(yt,` ${Ae??""}`),wr(Q,"href",x(z)),wr(Q,"download",`wplace_${je??""}.png`),de(he,` ${ft??""}`)},[()=>gP(),()=>Wf(),()=>XM().replaceAll(" ","_").replaceAll(":","-"),()=>xP()]),Ai(2,$e,()=>ia,()=>({duration:300})),$(ze,$e)};Ne(Ee,ze=>{p()&&ze(De)})}k(s),vn(2),k(T),Ni(T,()=>ze=>{Hr(()=>{p()?ze.show():ze.close()})}),We((ze,Fe,$e,Je)=>{de(X,` ${ze??""}`),Av(ne,Fe),ge=zr(pe,1,"btn btn-primary",null,ge,$e),de(Ie,Je)},[()=>zC(),()=>a.url.toString(),()=>({"btn-success":x(y)}),()=>x(y)?Fm():Wf()]),di("close",T,()=>p(!1)),$(m,T),Dr()}$n(["click"]);var n6=Sr('');function i6(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=n6();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var a6=Te('
                • '),o6=Te('

                    ');function Gm(m,a){Lr(a,!1);const p=[e5(),Kw(),n5(),o5(),c5(),d5(),m5()];Nv();var y=o6(),M=A(y),z=A(M);i6(z,{class:"size-5"});var T=V(z,2),s=A(T),B=V(s),O=A(B,!0);k(B),k(T),k(M);var X=V(M,2),K=A(X);hi(K,5,()=>p,hp,(pe,ge)=>{var Ie=a6(),Ee=A(Ie,!0);k(Ie),We(()=>de(Ee,x(ge))),$(pe,Ie)}),k(K);var ne=V(K,2),H=A(ne,!0);k(ne),k(X),k(y),We((pe,ge,Ie)=>{de(s,`${pe??""} `),de(O,ge),de(H,Ie)},[()=>$w(),()=>Ww(),()=>v5()]),$(m,y),Dr()}var s6=(m,a)=>{a(!1)},l6=Te(' ');function c6(m,a){Lr(a,!0);let p=Lt(a,"open",15);Fn(()=>{const O=X=>{X.key==="Escape"&&p(!1)};return document.addEventListener("keydown",O),()=>document.removeEventListener("keydown",O)});var y=l6(),M=A(y),z=V(A(M),2),T=V(A(z),2),s=A(T);Gm(s,{}),k(T);var B=V(T,2);B.__click=[s6,p],k(z),k(M),vn(2),k(y),Ni(y,()=>O=>{Hr(()=>{p()?O.show():O.close()})}),di("close",y,()=>p(!1)),$(m,y),Dr()}$n(["click"]);var u6=()=>{yi.url.searchParams.delete("new-user"),km(yi.url.toString())},h6=Te('');function d6(m,a){Lr(a,!0);let p=Lt(a,"open",15);Fn(()=>{const ge=Ie=>{Ie.key==="Escape"&&p(!1)};return document.addEventListener("keydown",ge),()=>document.removeEventListener("keydown",ge)});var y=h6(),M=A(y),z=A(M),T=A(z),s=A(T),B=A(s,!0);k(s);var O=V(s,2);jv(O,{hasText:!0,size:"medium"}),k(T),k(z);var X=V(z,2),K=A(X);Gm(K,{}),k(X);var ne=V(X,2),H=A(ne);H.__click=[u6];var pe=A(H,!0);k(H),k(ne),k(M),k(y),Ni(y,()=>ge=>{Hr(()=>{p()?ge.show():ge.close()})}),We((ge,Ie)=>{de(B,ge),de(pe,Ie)},[()=>qw(),()=>b5()]),di("close",y,()=>p(!1)),$(m,y),Dr()}$n(["click"]);function p6(){const m=navigator.userAgent,a=navigator.vendor;return/Chrome/.test(m)&&/Google Inc/.test(a)?"Chrome":/Safari/.test(m)&&/Apple Computer/.test(a)?"Safari":/Firefox/.test(m)?"Firefox":/Edge/.test(m)?"Edge":/Opera|OPR/.test(m)?"Opera":"Unknown"}var f6=Sr('');function m6(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=f6();ir(y,()=>({viewBox:"0 0 512 512",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...p})),$(m,y)}var _6=Sr('');function rm(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=_6();ir(y,()=>({viewBox:"0 0 256 199",width:"256",height:"199",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",fill:"currentColor",...p})),$(m,y)}var g6=Sr('');function v6(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=g6();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 260 260",...p})),$(m,y)}var y6=Sr('');function np(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=y6();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var x6=Sr(``);function b6(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=x6();ir(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-label":"Tiktok",...p})),$(m,y)}var w6=Sr(``);function T6(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=w6();ir(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-label":"YouTube",...p})),$(m,y)}var C6=Te(' link',1),S6=Te('chrome://settings/system.',1),P6=Te('edge://settings/system/manageSystem.',1),I6=Te(' ',1),M6=Te(''),k6=Te(' ');function A6(m,a){Lr(a,!0);let p=Lt(a,"open",15);Fn(()=>{const K=ne=>{ne.key==="Escape"&&p(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)});const y=p6();var M=k6(),z=A(M),T=V(A(z),2);{var s=K=>{var ne=M6(),H=A(ne),pe=A(H);jv(pe,{hasText:!0,size:"medium"});var ge=V(pe,2),Ie=A(ge),Ee=V(Ie,4);vn(),k(ge);var De=V(ge,2),ze=A(De),Fe=A(ze),$e=A(Fe,!0);k(Fe);var Je=V(Fe,4),qe=A(Je);rm(qe,{class:"text-base-content mr-0.5 inline size-4"}),vn(2),k(Je);var Ze=V(Je,4),Qe=A(Ze);m6(Qe,{class:"size-4.5 mr-0.5 inline"}),vn(2),k(Ze);var Le=V(Ze,4),et=A(Le);v6(et,{class:"mr-0.5 inline size-3.5"}),vn(2),k(Le);var nt=V(Le,4),Ue=A(nt);T6(Ue,{class:"mr-0.5 inline size-3.5"}),vn(2),k(nt);var Me=V(nt,4),yt=A(Me);b6(yt,{class:"mr-0.5 inline size-3.5"}),vn(2),k(Me),k(ze),k(De),k(H);var Q=V(H,2),re=A(Q),he=A(re,!0);k(re);var oe=V(re,2);k(Q);var Ae=V(Q,2),je=A(Ae),ft=A(je,!0);k(je);var it=V(je,2),ut=A(it),Pt=V(ut),Dt=A(Pt);np(Dt,{class:"size-5"}),k(Pt);var ot=V(Pt);k(it);var dt=V(it,2),vt=A(dt),xt=V(vt),It=A(xt,!0);k(xt);var wt=V(xt);k(dt),k(Ae);var _t=V(Ae,2),Et=A(_t),Rt=A(Et,!0);k(Et);var Ut=V(Et,2),er=A(Ut);{var tr=le=>{var j=C6(),Z=Ct(j);vn(),We(Y=>de(Z,`${Y??""}: `),[()=>OP()]),$(le,j)},Nt=le=>{var j=I6(),Z=Ct(j),Y=V(Z),ae=A(Y,!0);k(Y);var fe=V(Y),Se=V(fe);{var ke=Oe=>{var lt=S6();vn(),$(Oe,lt)},we=Oe=>{var lt=Qt(),Ye=Ct(lt);{var kt=xe=>{var Ot=P6();vn(),$(xe,Ot)};Ne(Ye,xe=>{y==="Edge"&&xe(kt)},!0)}$(Oe,lt)};Ne(Se,Oe=>{y==="Chrome"?Oe(ke):Oe(we,!1)})}We((Oe,lt,Ye)=>{de(Z,`${Oe??""} `),de(ae,lt),de(fe,` ${Ye??""} `)},[()=>kP(),()=>zP(),()=>RP()]),$(le,j)};Ne(er,le=>{y!=="Chrome"&&y!=="Edge"?le(tr):le(Nt,!1)})}k(Ut),k(_t);var Ft=V(_t,2),sr=A(Ft);Gm(sr,{}),k(Ft);var lr=V(Ft,4),Vr=V(A(lr),2),mr=A(Vr,!0);k(Vr);var hr=V(Vr,2),_r=A(hr,!0);k(hr);var Ir=V(hr,2),qr=A(Ir,!0);k(Ir),k(lr),k(ne),We((le,j,Z,Y,ae,fe,Se,ke,we,Oe,lt,Ye,kt,xe,Ot)=>{de(Ie,`${le??""} `),de(Ee,` © + ${j??""} `),de($e,Z),de(he,Y),wr(oe,"src",ai.language==="pt"?"https://www.youtube.com/embed/AcE85QM4iPQ?si=wbeZD8vxOzvlB_Z9":"https://www.youtube.com/embed/xOXtd-WzRxA?si=fHz8Z6ecXGYrDhkN"),de(ft,ae),de(ut,`${fe??""} `),de(ot,` ${Se??""}`),de(vt,`${ke??""} `),de(It,we),de(wt,` ${Oe??""}`),de(Rt,lt),wr(Vr,"href",`${yi.url.origin??""}/terms/terms-of-service`),de(mr,Ye),wr(hr,"href",`${yi.url.origin??""}/terms/privacy`),de(_r,kt),wr(Ir,"href",xe),de(qr,Ot)},[()=>Nb(),()=>qb(),()=>$b(),()=>Wb(),()=>Kb(),()=>e2(),()=>n2(),()=>o2(),()=>c2(),()=>d2(),()=>PP(),()=>UP(),()=>HP(),()=>Bv(yi.url.origin),()=>Jv()]),Ai(2,ne,()=>ia,()=>({duration:300})),$(K,ne)};Ne(T,K=>{p()&&K(s)})}k(z);var B=V(z,2),O=A(B),X=A(O,!0);k(O),k(B),k(M),Ni(M,()=>K=>{Hr(()=>{p()?K.show():K.close()})}),We(K=>de(X,K),[()=>Ss()]),di("close",M,()=>p(!1)),$(m,M),Dr()}function E6(m){return typeof m=="function"}function Lh(m){return m!==null&&typeof m=="object"}const z6=["string","number","bigint","boolean"];function nm(m){return m==null||z6.includes(typeof m)?!0:Array.isArray(m)?m.every(a=>nm(a)):typeof m=="object"?Object.getPrototypeOf(m)===Object.prototype:!1}const Vu=Symbol("box"),Hm=Symbol("is-writable");function L6(m){return Lh(m)&&Vu in m}function D6(m){return xr.isBox(m)&&Hm in m}function xr(m){let a=st(bi(m));return{[Vu]:!0,[Hm]:!0,get current(){return x(a)},set current(p){se(a,p,!0)}}}function R6(m,a){const p=pt(m);return a?{[Vu]:!0,[Hm]:!0,get current(){return x(p)},set current(y){a(y)}}:{[Vu]:!0,get current(){return m()}}}function B6(m){return xr.isBox(m)?m:E6(m)?xr.with(m):xr(m)}function F6(m){return Object.entries(m).reduce((a,[p,y])=>xr.isBox(y)?(xr.isWritableBox(y)?Object.defineProperty(a,p,{get(){return y.current},set(M){y.current=M}}):Object.defineProperty(a,p,{get(){return y.current}}),a):Object.assign(a,{[p]:y}),{})}function O6(m){return xr.isWritableBox(m)?{[Vu]:!0,get current(){return m.current}}:m}xr.from=B6;xr.with=R6;xr.flatten=F6;xr.readonly=O6;xr.isBox=L6;xr.isWritableBox=D6;function N6(...m){return function(a){var p;for(const y of m)if(y){if(a.defaultPrevented)return;typeof y=="function"?y.call(this,a):(p=y.current)==null||p.call(this,a)}}}var hc={},Rf,tv;function j6(){if(tv)return Rf;tv=1;var m=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,a=/\n/g,p=/^\s*/,y=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,M=/^:\s*/,z=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,T=/^[;\s]*/,s=/^\s+|\s+$/g,B=` +`,O="/",X="*",K="",ne="comment",H="declaration";Rf=function(ge,Ie){if(typeof ge!="string")throw new TypeError("First argument must be a string");if(!ge)return[];Ie=Ie||{};var Ee=1,De=1;function ze(Ue){var Me=Ue.match(a);Me&&(Ee+=Me.length);var yt=Ue.lastIndexOf(B);De=~yt?Ue.length-yt:De+Ue.length}function Fe(){var Ue={line:Ee,column:De};return function(Me){return Me.position=new $e(Ue),Ze(),Me}}function $e(Ue){this.start=Ue,this.end={line:Ee,column:De},this.source=Ie.source}$e.prototype.content=ge;function Je(Ue){var Me=new Error(Ie.source+":"+Ee+":"+De+": "+Ue);if(Me.reason=Ue,Me.filename=Ie.source,Me.line=Ee,Me.column=De,Me.source=ge,!Ie.silent)throw Me}function qe(Ue){var Me=Ue.exec(ge);if(Me){var yt=Me[0];return ze(yt),ge=ge.slice(yt.length),Me}}function Ze(){qe(p)}function Qe(Ue){var Me;for(Ue=Ue||[];Me=Le();)Me!==!1&&Ue.push(Me);return Ue}function Le(){var Ue=Fe();if(!(O!=ge.charAt(0)||X!=ge.charAt(1))){for(var Me=2;K!=ge.charAt(Me)&&(X!=ge.charAt(Me)||O!=ge.charAt(Me+1));)++Me;if(Me+=2,K===ge.charAt(Me-1))return Je("End of comment missing");var yt=ge.slice(2,Me-2);return De+=2,ze(yt),ge=ge.slice(Me),De+=2,Ue({type:ne,comment:yt})}}function et(){var Ue=Fe(),Me=qe(y);if(Me){if(Le(),!qe(M))return Je("property missing ':'");var yt=qe(z),Q=Ue({type:H,property:pe(Me[0].replace(m,K)),value:yt?pe(yt[0].replace(m,K)):K});return qe(T),Q}}function nt(){var Ue=[];Qe(Ue);for(var Me;Me=et();)Me!==!1&&(Ue.push(Me),Qe(Ue));return Ue}return Ze(),nt()};function pe(ge){return ge?ge.replace(s,K):K}return Rf}var rv;function V6(){if(rv)return hc;rv=1;var m=hc&&hc.__importDefault||function(y){return y&&y.__esModule?y:{default:y}};Object.defineProperty(hc,"__esModule",{value:!0}),hc.default=p;var a=m(j6());function p(y,M){var z=null;if(!y||typeof y!="string")return z;var T=(0,a.default)(y),s=typeof M=="function";return T.forEach(function(B){if(B.type==="declaration"){var O=B.property,X=B.value;s?M(O,X,B):X&&(z=z||{},z[O]=X)}}),z}return hc}var q6=V6();const nv=Zm(q6),Z6=nv.default||nv,U6=/\d/,$6=["-","_","/","."];function G6(m=""){if(!U6.test(m))return m!==m.toLowerCase()}function H6(m){const a=[];let p="",y,M;for(const z of m){const T=$6.includes(z);if(T===!0){a.push(p),p="",y=void 0;continue}const s=G6(z);if(M===!1){if(y===!1&&s===!0){a.push(p),p=z,y=s;continue}if(y===!0&&s===!1&&p.length>1){const B=p.at(-1);a.push(p.slice(0,Math.max(0,p.length-1))),p=B+z,y=s;continue}}p+=z,y=s,M=T}return a.push(p),a}function s0(m){return m?H6(m).map(a=>X6(a)).join(""):""}function W6(m){return Y6(s0(m||""))}function X6(m){return m?m[0].toUpperCase()+m.slice(1):""}function Y6(m){return m?m[0].toLowerCase()+m.slice(1):""}function Zd(m){if(!m)return{};const a={};function p(y,M){if(y.startsWith("-moz-")||y.startsWith("-webkit-")||y.startsWith("-ms-")||y.startsWith("-o-")){a[s0(y)]=M;return}if(y.startsWith("--")){a[y]=M;return}a[W6(y)]=M}return Z6(m,p),a}function K6(...m){return(...a)=>{for(const p of m)typeof p=="function"&&p(...a)}}function J6(m,a){const p=RegExp(m,"g");return y=>{if(typeof y!="string")throw new TypeError(`expected an argument of type string, but got ${typeof y}`);return y.match(p)?y.replace(p,a):y}}const Q6=J6(/[A-Z]/,m=>`-${m.toLowerCase()}`);function ek(m){if(!m||typeof m!="object"||Array.isArray(m))throw new TypeError(`expected an argument of type object, but got ${typeof m}`);return Object.keys(m).map(a=>`${Q6(a)}: ${m[a]};`).join(` +`)}function l0(m={}){return ek(m).replace(` +`," ")}const c0={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",transform:"translateX(-100%)"};l0(c0);const tk=["onabort","onanimationcancel","onanimationend","onanimationiteration","onanimationstart","onauxclick","onbeforeinput","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncompositionend","oncompositionstart","oncompositionupdate","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onfocusin","onfocusout","onformdata","ongotpointercapture","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onlostpointercapture","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onpaste","onpause","onplay","onplaying","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointermove","onpointerout","onpointerover","onpointerup","onprogress","onratechange","onreset","onresize","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onselectionchange","onselectstart","onslotchange","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitioncancel","ontransitionend","ontransitionrun","ontransitionstart","onvolumechange","onwaiting","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkittransitionend","onwheel"],rk=new Set(tk);function nk(m){return rk.has(m)}function Va(...m){const a={...m[0]};for(let p=1;p{const z=Nu(p,"focusin",M),T=Nu(p,"focusout",M);return()=>{z(),T()}})))}get current(){var a;return(a=at(this,Yu))==null||a.call(this),at(this,wc)?ak(at(this,wc)):null}}wc=new WeakMap,Yu=new WeakMap;new ok;var Ku,Ho;class Wm{constructor(a){Ar(this,Ku);Ar(this,Ho);na(this,Ku,a),na(this,Ho,Symbol(a))}get key(){return at(this,Ho)}exists(){return ex(at(this,Ho))}get(){const a=Gg(at(this,Ho));if(a===void 0)throw new Error(`Context "${at(this,Ku)}" not found`);return a}getOr(a){const p=Gg(at(this,Ho));return p===void 0?a:p}set(a){return tx(at(this,Ho),a)}}Ku=new WeakMap,Ho=new WeakMap;function sk(m,a){switch(m){case"post":Hr(a);break;case"pre":Mm(a);break}}function u0(m,a,p,y={}){const{lazy:M=!1}=y;let z=!M,T=Array.isArray(m)?[]:void 0;sk(a,()=>{const s=Array.isArray(m)?m.map(O=>O()):m();if(!z){z=!0,T=s;return}const B=ul(()=>p(s,T));return T=s,B})}function Ps(m,a,p){u0(m,"post",a,p)}function lk(m,a,p){u0(m,"pre",a,p)}Ps.pre=lk;var Tc;class ck{constructor(a,p){Ar(this,Tc,st(void 0));p!==void 0&&se(at(this,Tc),p,!0),Ps(()=>a(),(y,M)=>{se(at(this,Tc),M,!0)})}get current(){return x(at(this,Tc))}}Tc=new WeakMap;function uk(m,a){return setTimeout(a,m)}function dc(m){Iv().then(m)}const hk=1,dk=9,pk=11;function fk(m){return Lh(m)&&m.nodeType===hk&&typeof m.nodeName=="string"}function h0(m){return Lh(m)&&m.nodeType===dk}function mk(m){var a;return Lh(m)&&((a=m.constructor)==null?void 0:a.name)==="VisualViewport"}function _k(m){return Lh(m)&&m.nodeType!==void 0}function gk(m){return _k(m)&&m.nodeType===pk&&"host"in m}function vk(m){return h0(m)?m:mk(m)?m.document:(m==null?void 0:m.ownerDocument)??document}function d0(m){var a;return gk(m)?d0(m.host):h0(m)?m.defaultView??window:fk(m)?((a=m.ownerDocument)==null?void 0:a.defaultView)??window:window}function yk(m){let a=m.activeElement;for(;a!=null&&a.shadowRoot;){const p=a.shadowRoot.activeElement;if(p===a)break;a=p}return a}var Ju;class xk{constructor(a){yr(this,"element");Ar(this,Ju,pt(()=>this.element.current?this.element.current.getRootNode()??document:document));yr(this,"getDocument",()=>vk(this.root));yr(this,"getWindow",()=>this.getDocument().defaultView??window);yr(this,"getActiveElement",()=>yk(this.root));yr(this,"isActiveElement",a=>a===this.getActiveElement());yr(this,"querySelector",a=>this.root?this.root.querySelector(a):null);yr(this,"querySelectorAll",a=>this.root?this.root.querySelectorAll(a):[]);yr(this,"setTimeout",(a,p)=>this.getWindow().setTimeout(a,p));yr(this,"clearTimeout",a=>this.getWindow().clearTimeout(a));typeof a=="function"?this.element=xr.with(a):this.element=a}get root(){return x(at(this,Ju))}set root(a){se(at(this,Ju),a)}getElementById(a){return this.root.getElementById(a)}}Ju=new WeakMap;function Xa(m,a){return{[Wx()]:p=>xr.isBox(m)?(m.current=p,ul(()=>a==null?void 0:a(p)),()=>{"isConnected"in p&&p.isConnected||(m.current=null,a==null||a(null))}):(m(p),ul(()=>a==null?void 0:a(p)),()=>{"isConnected"in p&&p.isConnected||(m(null),a==null||a(null))})}}function bk(m){return m?"true":"false"}function wk(m){return m?"true":"false"}function Tk(m){return m?"":void 0}function Ck(m){return m?"true":"false"}function Sk(m){return m?"":void 0}function Pk(m){return m?!0:void 0}var Cc,Qu;class Ik{constructor(a){Ar(this,Cc);Ar(this,Qu);yr(this,"attrs");na(this,Cc,a.getVariant?a.getVariant():null),na(this,Qu,at(this,Cc)?`data-${at(this,Cc)}-`:`data-${a.component}-`),this.getAttr=this.getAttr.bind(this),this.selector=this.selector.bind(this),this.attrs=Object.fromEntries(a.parts.map(p=>[p,this.getAttr(p)]))}getAttr(a,p){return p?`data-${p}-${a}`:`${at(this,Qu)}${a}`}selector(a,p){return`[${this.getAttr(a,p)}]`}}Cc=new WeakMap,Qu=new WeakMap;function p0(m){const a=new Ik(m);return{...a.attrs,selector:a.selector,getAttr:a.getAttr}}const Mk="ArrowDown",kk="ArrowLeft",Ak="ArrowRight",Ek="ArrowUp",zk="End",Lk="Enter",Dk="Home",Rk="p",Bk="n",Fk="j",Ok="k",Nk="h",jk="l";function qu(){}function Ya(m,a){return`bits-${m}`}function Vk(m){if(!m)return null;for(const a of m.childNodes)if(a.nodeType!==Node.COMMENT_NODE)return a;return null}globalThis.bitsIdCounter??(globalThis.bitsIdCounter={current:0});function qk(m="bits"){return globalThis.bitsIdCounter.current++,`${m}-${globalThis.bitsIdCounter.current}`}function Zk(m,a){let p=m.nextElementSibling;for(;p;){if(p.matches(a))return p;p=p.nextElementSibling}}function Uk(m,a){let p=m.previousElementSibling;for(;p;){if(p.matches(a))return p;p=p.previousElementSibling}}function f0(m){if(typeof CSS<"u"&&typeof CSS.escape=="function")return CSS.escape(m);const a=m.length;let p=-1,y,M="";const z=m.charCodeAt(0);if(a===1&&z===45)return"\\"+m;for(;++p=1&&y<=31||y===127||p===0&&y>=48&&y<=57||p===1&&y>=48&&y<=57&&z===45){M+="\\"+y.toString(16)+" ";continue}if(y>=128||y===45||y===95||y>=48&&y<=57||y>=65&&y<=90||y>=97&&y<=122){M+=m.charAt(p);continue}M+="\\"+m.charAt(p)}return M}const sl="data-value",wa=p0({component:"command",parts:["root","list","input","separator","loading","empty","group","group-items","group-heading","item","viewport","input-label"]}),pc=wa.selector("group"),Bf=wa.selector("group-items"),iv=wa.selector("group-heading"),m0=wa.selector("item"),Ff=`${wa.selector("item")}:not([aria-disabled="true"])`,ml=new Wm("Command.Root"),$k=new Wm("Command.List"),Zu=new Wm("Command.Group"),av={search:"",value:"",filtered:{count:0,items:new Map,groups:new Set}};var Sc,eh,th,rh,nh,ih,ah,oh,fr,_0,Kd,am,Jd,Qd,ep,ws,g0,v0,om,Du,sm,lm,y0,Ru,cm,um,x0,Bu,Fu,sh;const e_=class e_{constructor(a){Ar(this,fr);yr(this,"opts");yr(this,"attachment");Ar(this,Sc,!1);Ar(this,eh,!0);yr(this,"sortAfterTick",!1);yr(this,"sortAndFilterAfterTick",!1);yr(this,"allItems",new Set);yr(this,"allGroups",new Map);yr(this,"allIds",new Map);Ar(this,th,st(0));Ar(this,rh,st(null));Ar(this,nh,st(null));Ar(this,ih,st(null));Ar(this,ah,st(av));Ar(this,oh,st(bi(av)));Ar(this,sh,pt(()=>({id:this.opts.id.current,role:"application",[wa.root]:"",tabindex:-1,onkeydown:this.onkeydown,...this.attachment})));this.opts=a,this.attachment=Xa(this.opts.ref);const p={...this._commandState,value:this.opts.value.current??""};this._commandState=p,this.commandState=p,this.onkeydown=this.onkeydown.bind(this)}static create(a){return ml.set(new e_(a))}get key(){return x(at(this,th))}set key(a){se(at(this,th),a,!0)}get viewportNode(){return x(at(this,rh))}set viewportNode(a){se(at(this,rh),a,!0)}get inputNode(){return x(at(this,nh))}set inputNode(a){se(at(this,nh),a,!0)}get labelNode(){return x(at(this,ih))}set labelNode(a){se(at(this,ih),a,!0)}get commandState(){return x(at(this,ah))}set commandState(a){se(at(this,ah),a)}get _commandState(){return x(at(this,oh))}set _commandState(a){se(at(this,oh),a,!0)}setState(a,p,y){Object.is(this._commandState[a],p)||(this._commandState[a]=p,a==="search"?(jr(this,fr,ep).call(this),jr(this,fr,Jd).call(this)):a==="value"&&(y||jr(this,fr,g0).call(this)),jr(this,fr,Kd).call(this))}setValue(a,p){a!==this.opts.value.current&&a===""&&dc(()=>{this.key++}),this.setState("value",a,p),this.opts.value.current=a}getValidItems(){const a=this.opts.ref.current;return a?Array.from(a.querySelectorAll(Ff)).filter(y=>!!y):[]}getVisibleItems(){const a=this.opts.ref.current;return a?Array.from(a.querySelectorAll(m0)).filter(y=>!!y):[]}get itemsGrid(){var s,B,O,X;if(!this.isGrid)return[];const a=this.opts.columns.current??1,p=this.getVisibleItems(),y=[[]];let M=(s=p[0])==null?void 0:s.getAttribute("data-group"),z=0,T=0;for(let K=0;Ka&&(T++,z=1,y.push([])),(X=y[T])==null||X.push({index:K,firstRowOfGroup:((O=(B=y[T])==null?void 0:B[0])==null?void 0:O.firstRowOfGroup)??K===0,ref:ne}))}return y}updateSelectedToIndex(a){const p=this.getValidItems()[a];p&&this.setValue(p.getAttribute(sl)??"")}updateSelectedByItem(a){const p=jr(this,fr,ws).call(this),y=this.getValidItems(),M=y.findIndex(T=>T===p);let z=y[M+a];this.opts.loop.current&&(z=M+a<0?y[y.length-1]:M+a===y.length?y[0]:y[M+a]),z&&this.setValue(z.getAttribute(sl)??"")}updateSelectedByGroup(a){const p=jr(this,fr,ws).call(this);let y=p==null?void 0:p.closest(pc),M;for(;y&&!M;)y=a>0?Zk(y,pc):Uk(y,pc),M=y==null?void 0:y.querySelector(Ff);M?this.setValue(M.getAttribute(sl)??""):this.updateSelectedByItem(a)}registerValue(a,p){var y;return a&&a===((y=this.allIds.get(a))==null?void 0:y.value)||this.allIds.set(a,{value:a,keywords:p}),this._commandState.filtered.items.set(a,jr(this,fr,am).call(this,a,p)),this.sortAfterTick||(this.sortAfterTick=!0,dc(()=>{jr(this,fr,Jd).call(this),this.sortAfterTick=!1})),()=>{this.allIds.delete(a)}}registerItem(a,p){return this.allItems.add(a),p&&(this.allGroups.has(p)?this.allGroups.get(p).add(a):this.allGroups.set(p,new Set([a]))),this.sortAndFilterAfterTick||(this.sortAndFilterAfterTick=!0,dc(()=>{jr(this,fr,ep).call(this),jr(this,fr,Jd).call(this),this.sortAndFilterAfterTick=!1})),jr(this,fr,Kd).call(this),()=>{const y=jr(this,fr,ws).call(this);this.allIds.delete(a),this.allItems.delete(a),this.commandState.filtered.items.delete(a),jr(this,fr,ep).call(this),(y==null?void 0:y.getAttribute("id"))===a&&jr(this,fr,Qd).call(this),jr(this,fr,Kd).call(this)}}registerGroup(a){return this.allGroups.has(a)||this.allGroups.set(a,new Set),()=>{this.allIds.delete(a),this.allGroups.delete(a)}}get isGrid(){return this.opts.columns.current!==null}onkeydown(a){const p=this.opts.vimBindings.current&&a.ctrlKey;switch(a.key){case Bk:case Fk:{p&&(this.isGrid?jr(this,fr,sm).call(this,a):jr(this,fr,Du).call(this,a));break}case jk:{p&&this.isGrid&&jr(this,fr,Du).call(this,a);break}case Mk:this.isGrid?jr(this,fr,sm).call(this,a):jr(this,fr,Du).call(this,a);break;case Ak:if(!this.isGrid)break;jr(this,fr,Du).call(this,a);break;case Rk:case Ok:{p&&(this.isGrid?jr(this,fr,um).call(this,a):jr(this,fr,Fu).call(this,a));break}case Nk:{p&&this.isGrid&&jr(this,fr,Fu).call(this,a);break}case Ek:this.isGrid?jr(this,fr,um).call(this,a):jr(this,fr,Fu).call(this,a);break;case kk:if(!this.isGrid)break;jr(this,fr,Fu).call(this,a);break;case Dk:a.preventDefault(),this.updateSelectedToIndex(0);break;case zk:a.preventDefault(),jr(this,fr,om).call(this);break;case Lk:if(!a.isComposing&&a.keyCode!==229){a.preventDefault();const y=jr(this,fr,ws).call(this);y&&(y==null||y.click())}}}get props(){return x(at(this,sh))}set props(a){se(at(this,sh),a)}};Sc=new WeakMap,eh=new WeakMap,th=new WeakMap,rh=new WeakMap,nh=new WeakMap,ih=new WeakMap,ah=new WeakMap,oh=new WeakMap,fr=new WeakSet,_0=function(){return Hx(this._commandState)},Kd=function(){at(this,Sc)||(na(this,Sc,!0),dc(()=>{var y,M;na(this,Sc,!1);const a=jr(this,fr,_0).call(this);!Object.is(this.commandState,a)&&(this.commandState=a,(M=(y=this.opts.onStateChange)==null?void 0:y.current)==null||M.call(y,a))}))},am=function(a,p){const y=this.opts.filter.current??T0;return a?y(a,this._commandState.search,p):0},Jd=function(){var T;if(!this._commandState.search||this.opts.shouldFilter.current===!1){jr(this,fr,Qd).call(this);return}const a=this._commandState.filtered.items,p=[];for(const s of this._commandState.filtered.groups){const B=this.allGroups.get(s);let O=0;if(!B){p.push([s,O]);continue}for(const X of B){const K=a.get(X);O=Math.max(K??0,O)}p.push([s,O])}const y=this.viewportNode,M=this.getValidItems().sort((s,B)=>{const O=s.getAttribute("data-value"),X=B.getAttribute("data-value"),K=a.get(O)??0;return(a.get(X)??0)-K});for(const s of M){const B=s.closest(Bf);if(B){const O=s.parentElement===B?s:s.closest(`${Bf} > *`);O&&B.appendChild(O)}else{const O=s.parentElement===y?s:s.closest(`${Bf} > *`);O&&(y==null||y.appendChild(O))}}const z=p.sort((s,B)=>B[1]-s[1]);for(const s of z){const B=y==null?void 0:y.querySelector(`${pc}[${sl}="${f0(s[0])}"]`);(T=B==null?void 0:B.parentElement)==null||T.appendChild(B)}jr(this,fr,Qd).call(this)},Qd=function(){dc(()=>{const a=this.getValidItems().find(M=>M.getAttribute("aria-disabled")!=="true"),p=a==null?void 0:a.getAttribute(sl),y=at(this,eh)&&this.opts.disableInitialScroll.current;this.setValue(p??"",y),na(this,eh,!1)})},ep=function(){var p,y;if(!this._commandState.search||this.opts.shouldFilter.current===!1){this._commandState.filtered.count=this.allItems.size;return}this._commandState.filtered.groups=new Set;let a=0;for(const M of this.allItems){const z=((p=this.allIds.get(M))==null?void 0:p.value)??"",T=((y=this.allIds.get(M))==null?void 0:y.keywords)??[],s=jr(this,fr,am).call(this,z,T);this._commandState.filtered.items.set(M,s),s>0&&a++}for(const[M,z]of this.allGroups)for(const T of z){const s=this._commandState.filtered.items.get(T);if(s&&s>0){this._commandState.filtered.groups.add(M);break}}this._commandState.filtered.count=a},ws=function(){const a=this.opts.ref.current;if(!a)return;const p=a.querySelector(`${Ff}[data-selected]`);if(p)return p},g0=function(){dc(()=>{var y,M,z,T,s;const a=jr(this,fr,ws).call(this);if(!a)return;const p=(y=a.parentElement)==null?void 0:y.parentElement;if(p){if(this.isGrid){const B=jr(this,fr,v0).call(this,a);if(a.scrollIntoView({block:"nearest"}),B){const O=(M=a==null?void 0:a.closest(pc))==null?void 0:M.querySelector(iv);O==null||O.scrollIntoView({block:"nearest"});return}}else{const B=Vk(p);if(B&&((z=B.dataset)==null?void 0:z.value)===((T=a.dataset)==null?void 0:T.value)){const O=(s=a==null?void 0:a.closest(pc))==null?void 0:s.querySelector(iv);O==null||O.scrollIntoView({block:"nearest"});return}}a.scrollIntoView({block:"nearest"})}})},v0=function(a){const p=this.itemsGrid;if(p.length===0)return!1;for(let y=0;y=0;O--){const X=B[B.length-1];if(!(X===void 0||Ud(X.ref))){z=X.ref;break}}break}return z},cm=function(a,p){if(p===null)return 0;const y=this.getValidItems(),M=y.findIndex(T=>T===a);return y.findIndex(T=>T===p)-M},um=function(a){this.opts.columns.current!==null&&(a.preventDefault(),a.metaKey?this.updateSelectedByGroup(-1):this.updateSelectedByItem(jr(this,fr,x0).call(this,a)))},x0=function(a){const p=this.itemsGrid,y=jr(this,fr,ws).call(this);if(y===void 0)return 0;const M=jr(this,fr,lm).call(this,y,p);if(M===null)return 0;let z=null;const T=a.altKey?1:0;if(a.altKey&&M.rowIndex===1&&this.opts.loop.current===!1)z=jr(this,fr,Bu).call(this,{start:0,end:0,expectedColumnIndex:M.columnIndex,grid:p});else if(M.rowIndex===0){if(this.opts.loop.current===!1)return 0;z=jr(this,fr,Bu).call(this,{start:p.length-1-T,end:M.rowIndex+1,expectedColumnIndex:M.columnIndex,grid:p})}else z=jr(this,fr,Bu).call(this,{start:M.rowIndex-1-T,end:0,expectedColumnIndex:M.columnIndex,grid:p}),z===null&&this.opts.loop.current&&(z=jr(this,fr,Bu).call(this,{start:p.length-1,end:M.rowIndex+1,expectedColumnIndex:M.columnIndex,grid:p}));return jr(this,fr,cm).call(this,y,z)},Bu=function({start:a,end:p,grid:y,expectedColumnIndex:M}){var T;let z=null;for(let s=a;s>=p;s--){const B=y[s];if(B!==void 0){if(z=((T=B[M])==null?void 0:T.ref)??null,z!==null&&Ud(z)){z=null;continue}if(z===null)for(let O=B.length-1;O>=0;O--){const X=B[B.length-1];if(!(X===void 0||Ud(X.ref))){z=X.ref;break}}break}}return z},Fu=function(a){a.preventDefault(),a.metaKey?this.updateSelectedToIndex(0):a.altKey?this.updateSelectedByGroup(-1):this.updateSelectedByItem(-1)},sh=new WeakMap;let im=e_;function Ud(m){return m.getAttribute("aria-disabled")==="true"}var lh,ch,uh;const t_=class t_{constructor(a,p){yr(this,"opts");yr(this,"root");yr(this,"attachment");Ar(this,lh,pt(()=>this.root._commandState.filtered.count===0&&at(this,ch)===!1||this.opts.forceMount.current));Ar(this,ch,!0);Ar(this,uh,pt(()=>({id:this.opts.id.current,role:"presentation",[wa.empty]:"",...this.attachment})));this.opts=a,this.root=p,this.attachment=Xa(this.opts.ref),Mm(()=>{na(this,ch,!1)})}static create(a){return new t_(a,ml.get())}get shouldRender(){return x(at(this,lh))}set shouldRender(a){se(at(this,lh),a)}get props(){return x(at(this,uh))}set props(a){se(at(this,uh),a)}};lh=new WeakMap,ch=new WeakMap,uh=new WeakMap;let hm=t_;var hh,dh,ph,fh;const r_=class r_{constructor(a,p){yr(this,"opts");yr(this,"root");yr(this,"attachment");Ar(this,hh,pt(()=>this.opts.forceMount.current||this.root.opts.shouldFilter.current===!1||!this.root.commandState.search?!0:this.root._commandState.filtered.groups.has(this.trueValue)));Ar(this,dh,st(null));Ar(this,ph,st(""));Ar(this,fh,pt(()=>({id:this.opts.id.current,role:"presentation",hidden:this.shouldRender?void 0:!0,"data-value":this.trueValue,[wa.group]:"",...this.attachment})));this.opts=a,this.root=p,this.attachment=Xa(this.opts.ref),this.trueValue=a.value.current??a.id.current,Ps(()=>this.trueValue,()=>this.root.registerGroup(this.trueValue)),Hr(()=>this.opts.value.current?(this.trueValue=this.opts.value.current,this.root.registerValue(this.opts.value.current)):this.headingNode&&this.headingNode.textContent?(this.trueValue=this.headingNode.textContent.trim().toLowerCase(),this.root.registerValue(this.trueValue)):(this.trueValue=`-----${this.opts.id.current}`,this.root.registerValue(this.trueValue)))}static create(a){return Zu.set(new r_(a,ml.get()))}get shouldRender(){return x(at(this,hh))}set shouldRender(a){se(at(this,hh),a)}get headingNode(){return x(at(this,dh))}set headingNode(a){se(at(this,dh),a,!0)}get trueValue(){return x(at(this,ph))}set trueValue(a){se(at(this,ph),a,!0)}get props(){return x(at(this,fh))}set props(a){se(at(this,fh),a)}};hh=new WeakMap,dh=new WeakMap,ph=new WeakMap,fh=new WeakMap;let dm=r_;var mh;const n_=class n_{constructor(a,p){yr(this,"opts");yr(this,"group");yr(this,"attachment");Ar(this,mh,pt(()=>({id:this.opts.id.current,[wa["group-heading"]]:"",...this.attachment})));this.opts=a,this.group=p,this.attachment=Xa(this.opts.ref,y=>this.group.headingNode=y)}static create(a){return new n_(a,Zu.get())}get props(){return x(at(this,mh))}set props(a){se(at(this,mh),a)}};mh=new WeakMap;let pm=n_;var _h;const i_=class i_{constructor(a,p){yr(this,"opts");yr(this,"group");yr(this,"attachment");Ar(this,_h,pt(()=>{var a;return{id:this.opts.id.current,role:"group",[wa["group-items"]]:"","aria-labelledby":((a=this.group.headingNode)==null?void 0:a.id)??void 0,...this.attachment}}));this.opts=a,this.group=p,this.attachment=Xa(this.opts.ref)}static create(a){return new i_(a,Zu.get())}get props(){return x(at(this,_h))}set props(a){se(at(this,_h),a)}};_h=new WeakMap;let fm=i_;var ap,gh;const a_=class a_{constructor(a,p){yr(this,"opts");yr(this,"root");yr(this,"attachment");Ar(this,ap,pt(()=>{var p;const a=(p=this.root.viewportNode)==null?void 0:p.querySelector(`${m0}[${sl}="${f0(this.root.opts.value.current)}"]`);if(a!=null)return a.getAttribute("id")??void 0}));Ar(this,gh,pt(()=>{var a,p;return{id:this.opts.id.current,type:"text",[wa.input]:"",autocomplete:"off",autocorrect:"off",spellcheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":wk(!0),"aria-controls":((a=this.root.viewportNode)==null?void 0:a.id)??void 0,"aria-labelledby":((p=this.root.labelNode)==null?void 0:p.id)??void 0,"aria-activedescendant":x(at(this,ap)),...this.attachment}}));this.opts=a,this.root=p,this.attachment=Xa(this.opts.ref,y=>this.root.inputNode=y),Ps(()=>this.opts.ref.current,()=>{const y=this.opts.ref.current;y&&this.opts.autofocus.current&&uk(10,()=>y.focus())}),Ps(()=>this.opts.value.current,()=>{this.root.commandState.search!==this.opts.value.current&&this.root.setState("search",this.opts.value.current)})}static create(a){return new a_(a,ml.get())}get props(){return x(at(this,gh))}set props(a){se(at(this,gh),a)}};ap=new WeakMap,gh=new WeakMap;let mm=a_;var Ts,op,vh,yh,xh,pl,b0,gm,bh;const o_=class o_{constructor(a,p){Ar(this,pl);yr(this,"opts");yr(this,"root");yr(this,"attachment");Ar(this,Ts,null);Ar(this,op,pt(()=>{var a;return this.opts.forceMount.current||((a=at(this,Ts))==null?void 0:a.opts.forceMount.current)===!0}));Ar(this,vh,pt(()=>{if(this.opts.ref.current,x(at(this,op))||this.root.opts.shouldFilter.current===!1||!this.root.commandState.search)return!0;const a=this.root.commandState.filtered.items.get(this.trueValue);return a===void 0?!1:a>0}));Ar(this,yh,pt(()=>this.root.opts.value.current===this.trueValue&&this.trueValue!==""));Ar(this,xh,st(""));Ar(this,bh,pt(()=>{var a;return{id:this.opts.id.current,"aria-disabled":bk(this.opts.disabled.current),"aria-selected":Ck(this.isSelected),"data-disabled":Tk(this.opts.disabled.current),"data-selected":Sk(this.isSelected),"data-value":this.trueValue,"data-group":(a=at(this,Ts))==null?void 0:a.trueValue,[wa.item]:"",role:"option",onpointermove:this.onpointermove,onclick:this.onclick,...this.attachment}}));this.opts=a,this.root=p,na(this,Ts,Zu.getOr(null)),this.trueValue=a.value.current,this.attachment=Xa(this.opts.ref),Ps([()=>this.trueValue,()=>{var y;return(y=at(this,Ts))==null?void 0:y.trueValue},()=>this.opts.forceMount.current],()=>{var y;if(!this.opts.forceMount.current)return this.root.registerItem(this.trueValue,(y=at(this,Ts))==null?void 0:y.trueValue)}),Ps([()=>this.opts.value.current,()=>this.opts.ref.current],()=>{var y,M;!this.opts.value.current&&((y=this.opts.ref.current)!=null&&y.textContent)&&(this.trueValue=this.opts.ref.current.textContent.trim()),this.root.registerValue(this.trueValue,a.keywords.current.map(z=>z.trim())),(M=this.opts.ref.current)==null||M.setAttribute(sl,this.trueValue)}),this.onclick=this.onclick.bind(this),this.onpointermove=this.onpointermove.bind(this)}static create(a){const p=Zu.getOr(null);return new o_({...a,group:p},ml.get())}get shouldRender(){return x(at(this,vh))}set shouldRender(a){se(at(this,vh),a)}get isSelected(){return x(at(this,yh))}set isSelected(a){se(at(this,yh),a)}get trueValue(){return x(at(this,xh))}set trueValue(a){se(at(this,xh),a,!0)}onpointermove(a){this.opts.disabled.current||this.root.opts.disablePointerSelection.current||jr(this,pl,gm).call(this)}onclick(a){this.opts.disabled.current||jr(this,pl,b0).call(this)}get props(){return x(at(this,bh))}set props(a){se(at(this,bh),a)}};Ts=new WeakMap,op=new WeakMap,vh=new WeakMap,yh=new WeakMap,xh=new WeakMap,pl=new WeakSet,b0=function(){var a;this.opts.disabled.current||(jr(this,pl,gm).call(this),(a=this.opts.onSelect)==null||a.current())},gm=function(){this.opts.disabled.current||this.root.setValue(this.trueValue,!0)},bh=new WeakMap;let _m=o_;var wh;const s_=class s_{constructor(a,p){yr(this,"opts");yr(this,"root");yr(this,"attachment");Ar(this,wh,pt(()=>({id:this.opts.id.current,role:"listbox","aria-label":this.opts.ariaLabel.current,[wa.list]:"",...this.attachment})));this.opts=a,this.root=p,this.attachment=Xa(this.opts.ref)}static create(a){return $k.set(new s_(a,ml.get()))}get props(){return x(at(this,wh))}set props(a){se(at(this,wh),a)}};wh=new WeakMap;let vm=s_;var Th;const l_=class l_{constructor(a,p){yr(this,"opts");yr(this,"root");yr(this,"attachment");Ar(this,Th,pt(()=>{var a;return{id:this.opts.id.current,[wa["input-label"]]:"",for:(a=this.opts.for)==null?void 0:a.current,style:c0,...this.attachment}}));this.opts=a,this.root=p,this.attachment=Xa(this.opts.ref,y=>this.root.labelNode=y)}static create(a){return new l_(a,ml.get())}get props(){return x(at(this,Th))}set props(a){se(at(this,Th),a)}};Th=new WeakMap;let ym=l_;var Gk=Te("");function Hk(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=rr(a,["$$slots","$$events","$$legacy","id","ref","children"]);const T=ym.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),X=>M(X))}),s=pt(()=>Va(z,T.props));var B=Gk();ir(B,()=>({...x(s)}));var O=A(B);oi(O,()=>a.children??pa),k(B),$(m,B),Dr()}var Wk=Te(" ",1),Xk=Te("
                    ");function Yk(m,a){const p=uo();Lr(a,!0);const y=nt=>{Hk(nt,{children:(Ue,Me)=>{vn();var yt=wi();We(()=>de(yt,ne())),$(Ue,yt)},$$slots:{default:!0}})};let M=Lt(a,"id",19,()=>Ya(p)),z=Lt(a,"ref",15,null),T=Lt(a,"value",15,""),s=Lt(a,"onValueChange",3,qu),B=Lt(a,"onStateChange",3,qu),O=Lt(a,"loop",3,!1),X=Lt(a,"shouldFilter",3,!0),K=Lt(a,"filter",3,T0),ne=Lt(a,"label",3,""),H=Lt(a,"vimBindings",3,!0),pe=Lt(a,"disablePointerSelection",3,!1),ge=Lt(a,"disableInitialScroll",3,!1),Ie=Lt(a,"columns",3,null),Ee=rr(a,["$$slots","$$events","$$legacy","id","ref","value","onValueChange","onStateChange","loop","shouldFilter","filter","label","vimBindings","disablePointerSelection","disableInitialScroll","columns","children","child"]);const De=im.create({id:xr.with(()=>M()),ref:xr.with(()=>z(),nt=>z(nt)),filter:xr.with(()=>K()),shouldFilter:xr.with(()=>X()),loop:xr.with(()=>O()),value:xr.with(()=>T(),nt=>{T()!==nt&&(T(nt),s()(nt))}),vimBindings:xr.with(()=>H()),disablePointerSelection:xr.with(()=>pe()),disableInitialScroll:xr.with(()=>ge()),onStateChange:xr.with(()=>B()),columns:xr.with(()=>Ie())}),ze=nt=>De.updateSelectedToIndex(nt),Fe=nt=>De.updateSelectedByGroup(nt),$e=nt=>De.updateSelectedByItem(nt),Je=()=>De.getValidItems(),qe=pt(()=>Va(Ee,De.props));var Ze=Qt(),Qe=Ct(Ze);{var Le=nt=>{var Ue=Wk(),Me=Ct(Ue);y(Me);var yt=V(Me,2);oi(yt,()=>a.child,()=>({props:x(qe)})),$(nt,Ue)},et=nt=>{var Ue=Xk();ir(Ue,()=>({...x(qe)}));var Me=A(Ue);y(Me);var yt=V(Me,2);oi(yt,()=>a.children??pa),k(Ue),$(nt,Ue)};Ne(Qe,nt=>{a.child?nt(Le):nt(et,!1)})}return $(m,Ze),Dr({updateSelectedToIndex:ze,updateSelectedByGroup:Fe,updateSelectedByItem:$e,getValidItems:Je})}var Kk=Te("
                    ");function Jk(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=Lt(a,"forceMount",3,!1),T=rr(a,["$$slots","$$events","$$legacy","id","ref","children","child","forceMount"]);const s=hm.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),ne=>M(ne)),forceMount:xr.with(()=>z())}),B=pt(()=>Va(s.props,T));var O=Qt(),X=Ct(O);{var K=ne=>{var H=Qt(),pe=Ct(H);{var ge=Ee=>{var De=Qt(),ze=Ct(De);oi(ze,()=>a.child,()=>({props:x(B)})),$(Ee,De)},Ie=Ee=>{var De=Kk();ir(De,()=>({...x(B)}));var ze=A(De);oi(ze,()=>a.children??pa),k(De),$(Ee,De)};Ne(pe,Ee=>{a.child?Ee(ge):Ee(Ie,!1)})}$(ne,H)};Ne(X,ne=>{s.shouldRender&&ne(K)})}$(m,O),Dr()}var Qk=Te("
                    ");function eA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=Lt(a,"value",3,""),T=Lt(a,"forceMount",3,!1),s=rr(a,["$$slots","$$events","$$legacy","id","ref","value","forceMount","children","child"]);const B=dm.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),pe=>M(pe)),forceMount:xr.with(()=>T()),value:xr.with(()=>z())}),O=pt(()=>Va(s,B.props));var X=Qt(),K=Ct(X);{var ne=pe=>{var ge=Qt(),Ie=Ct(ge);oi(Ie,()=>a.child,()=>({props:x(O)})),$(pe,ge)},H=pe=>{var ge=Qk();ir(ge,()=>({...x(O)}));var Ie=A(ge);oi(Ie,()=>a.children??pa),k(ge),$(pe,ge)};Ne(K,pe=>{a.child?pe(ne):pe(H,!1)})}$(m,X),Dr()}var tA=Te("
                    ");function rA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=rr(a,["$$slots","$$events","$$legacy","id","ref","children","child"]);const T=pm.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),ne=>M(ne))}),s=pt(()=>Va(z,T.props));var B=Qt(),O=Ct(B);{var X=ne=>{var H=Qt(),pe=Ct(H);oi(pe,()=>a.child,()=>({props:x(s)})),$(ne,H)},K=ne=>{var H=tA();ir(H,()=>({...x(s)}));var pe=A(H);oi(pe,()=>a.children??pa),k(H),$(ne,H)};Ne(O,ne=>{a.child?ne(X):ne(K,!1)})}$(m,B),Dr()}var nA=Te("
                    "),iA=Te('
                    ');function aA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=rr(a,["$$slots","$$events","$$legacy","id","ref","children","child"]);const T=fm.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),ne=>M(ne))}),s=pt(()=>Va(z,T.props));var B=iA(),O=A(B);{var X=ne=>{var H=Qt(),pe=Ct(H);oi(pe,()=>a.child,()=>({props:x(s)})),$(ne,H)},K=ne=>{var H=nA();ir(H,()=>({...x(s)}));var pe=A(H);oi(pe,()=>a.children??pa),k(H),$(ne,H)};Ne(O,ne=>{a.child?ne(X):ne(K,!1)})}k(B),$(m,B),Dr()}var oA=Te("");function sA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"value",15,""),M=Lt(a,"autofocus",3,!1),z=Lt(a,"id",19,()=>Ya(p)),T=Lt(a,"ref",15,null),s=rr(a,["$$slots","$$events","$$legacy","value","autofocus","id","ref","child"]);const B=mm.create({id:xr.with(()=>z()),ref:xr.with(()=>T(),pe=>T(pe)),value:xr.with(()=>y(),pe=>{y(pe)}),autofocus:xr.with(()=>M()??!1)}),O=pt(()=>Va(s,B.props));var X=Qt(),K=Ct(X);{var ne=pe=>{var ge=Qt(),Ie=Ct(ge);oi(Ie,()=>a.child,()=>({props:x(O)})),$(pe,ge)},H=pe=>{var ge=oA();Ka(ge),ir(ge,()=>({...x(O)})),dp(ge,y),$(pe,ge)};Ne(K,pe=>{a.child?pe(ne):pe(H,!1)})}$(m,X),Dr()}var lA=Te("
                    "),cA=Te('
                    ');function uA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=Lt(a,"value",3,""),T=Lt(a,"disabled",3,!1),s=Lt(a,"onSelect",3,qu),B=Lt(a,"forceMount",3,!1),O=Lt(a,"keywords",19,()=>[]),X=rr(a,["$$slots","$$events","$$legacy","id","ref","value","disabled","children","child","onSelect","forceMount","keywords"]);const K=_m.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),ge=>M(ge)),value:xr.with(()=>z()),disabled:xr.with(()=>T()),onSelect:xr.with(()=>s()),forceMount:xr.with(()=>B()),keywords:xr.with(()=>O())}),ne=pt(()=>Va(X,K.props));var H=Qt(),pe=Ct(H);ju(pe,()=>K.root.key,ge=>{var Ie=cA(),Ee=A(Ie);{var De=ze=>{var Fe=Qt(),$e=Ct(Fe);{var Je=Ze=>{var Qe=Qt(),Le=Ct(Qe);oi(Le,()=>a.child,()=>({props:x(ne)})),$(Ze,Qe)},qe=Ze=>{var Qe=lA();ir(Qe,()=>({...x(ne)}));var Le=A(Qe);oi(Le,()=>a.children??pa),k(Qe),$(Ze,Qe)};Ne($e,Ze=>{a.child?Ze(Je):Ze(qe,!1)})}$(ze,Fe)};Ne(Ee,ze=>{K.shouldRender&&ze(De)})}k(Ie),We(()=>wr(Ie,"data-value",K.trueValue)),$(ge,Ie)}),$(m,H),Dr()}var hA=Te("
                    ");function dA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=rr(a,["$$slots","$$events","$$legacy","id","ref","child","children","aria-label"]);const T=vm.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),X=>M(X)),ariaLabel:xr.with(()=>a["aria-label"]??"Suggestions...")}),s=pt(()=>Va(z,T.props));var B=Qt(),O=Ct(B);ju(O,()=>T.root._commandState.search==="",X=>{var K=Qt(),ne=Ct(K);{var H=ge=>{var Ie=Qt(),Ee=Ct(Ie);oi(Ee,()=>a.child,()=>({props:x(s)})),$(ge,Ie)},pe=ge=>{var Ie=hA();ir(Ie,()=>({...x(s)}));var Ee=A(Ie);oi(Ee,()=>a.children??pa),k(Ie),$(ge,Ie)};Ne(ne,ge=>{a.child?ge(H):ge(pe,!1)})}$(X,K)}),$(m,B),Dr()}const ov=1,pA=.9,fA=.8,mA=.17,Of=.1,Nf=.999,_A=.9999,gA=.99,vA=/[\\/_+.#"@[({&]/,yA=/[\\/_+.#"@[({&]/g,xA=/[\s-]/,w0=/[\s-]/g;function xm(m,a,p,y,M,z,T){if(z===a.length)return M===m.length?ov:gA;const s=`${M},${z}`;if(T[s]!==void 0)return T[s];const B=y.charAt(z);let O=p.indexOf(B,M),X=0,K,ne,H,pe;for(;O>=0;)K=xm(m,a,p,y,O+1,z+1,T),K>X&&(O===M?K*=ov:vA.test(m.charAt(O-1))?(K*=fA,H=m.slice(M,O-1).match(yA),H&&M>0&&(K*=Nf**H.length)):xA.test(m.charAt(O-1))?(K*=pA,pe=m.slice(M,O-1).match(w0),pe&&M>0&&(K*=Nf**pe.length)):(K*=mA,M>0&&(K*=Nf**(O-M))),m.charAt(O)!==a.charAt(z)&&(K*=_A)),(KK&&(K=ne*Of)),K>X&&(X=K),O=p.indexOf(B,O+1);return T[s]=X,X}function sv(m){return m.toLowerCase().replace(w0," ")}function T0(m,a,p){return m=p&&p.length>0?`${`${m} ${p==null?void 0:p.join(" ")}`}`:m,xm(m,a,sv(m),sv(a),0,0,{})}const bA=18,C0=40,wA=`${C0}px`,TA=["[data-lastpass-icon-root]","com-1password-button","[data-dashlanecreated]",'[style$="2147483647 !important;"]'].join(",");function CA({containerRef:m,inputRef:a,pushPasswordManagerStrategy:p,isFocused:y,domContext:M}){let z=st(!1),T=st(!1),s=st(!1);function B(){const X=p.current;return X==="none"?!1:X==="increase-width"&&x(z)&&x(T)}function O(){const X=m.current,K=a.current;if(!X||!K||x(s)||p.current==="none")return;const ne=X,H=ne.getBoundingClientRect().left+ne.offsetWidth,pe=ne.getBoundingClientRect().top+ne.offsetHeight/2,ge=H-bA,Ie=pe;M.querySelectorAll(TA).length===0&&M.getDocument().elementFromPoint(ge,Ie)===X||(se(z,!0),se(s,!0))}return Hr(()=>{const X=m.current;if(!X||p.current==="none")return;function K(){const pe=d0(X).innerWidth-X.getBoundingClientRect().right;se(T,pe>=C0)}K();const ne=setInterval(K,1e3);return()=>{clearInterval(ne)}}),Hr(()=>{const X=y.current||M.getActiveElement()===a.current;if(p.current==="none"||!X)return;const K=setTimeout(O,0),ne=setTimeout(O,2e3),H=setTimeout(O,5e3),pe=setTimeout(()=>{se(s,!0)},6e3);return()=>{clearTimeout(K),clearTimeout(ne),clearTimeout(H),clearTimeout(pe)}}),{get hasPwmBadge(){return x(z)},get willPushPwmBadge(){return B()},PWM_BADGE_SPACE_WIDTH:wA}}const S0=p0({component:"pin-input",parts:["root","cell"]}),SA=["Backspace","Delete","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Escape","Enter","Tab","Shift","Control","Meta"];var Ha,Pc,Wo,ja,Wa,Ic,To,Xo,Cs,Mc,sp,Ch,Sh,lp,cp,P0,Ph,Ih,up,Mh;const c_=class c_{constructor(a){Ar(this,cp);yr(this,"opts");yr(this,"attachment");Ar(this,Ha,xr(null));Ar(this,Pc,st(!1));yr(this,"inputAttachment",Xa(at(this,Ha)));Ar(this,Wo,xr(!1));Ar(this,ja,st(null));Ar(this,Wa,st(null));Ar(this,Ic,new ck(()=>this.opts.value.current??""));Ar(this,To,pt(()=>typeof this.opts.pattern.current=="string"?new RegExp(this.opts.pattern.current):this.opts.pattern.current));Ar(this,Xo,st(bi({prev:[null,null,"none"],willSyntheticBlur:!1})));Ar(this,Cs);Ar(this,Mc);yr(this,"domContext");yr(this,"onkeydown",a=>{const p=a.key;SA.includes(p)||a.ctrlKey||a.metaKey||p&&x(at(this,To))&&!x(at(this,To)).test(p)&&a.preventDefault()});Ar(this,sp,pt(()=>({position:"relative",cursor:this.opts.disabled.current?"default":"text",userSelect:"none",WebkitUserSelect:"none",pointerEvents:"none"})));Ar(this,Ch,pt(()=>({id:this.opts.id.current,[S0.root]:"",style:x(at(this,sp)),...this.attachment})));Ar(this,Sh,pt(()=>({style:{position:"absolute",inset:0,pointerEvents:"none"}})));Ar(this,lp,pt(()=>({position:"absolute",inset:0,width:at(this,Cs).willPushPwmBadge?`calc(100% + ${at(this,Cs).PWM_BADGE_SPACE_WIDTH})`:"100%",clipPath:at(this,Cs).willPushPwmBadge?`inset(0 ${at(this,Cs).PWM_BADGE_SPACE_WIDTH} 0 0)`:void 0,height:"100%",display:"flex",textAlign:this.opts.textAlign.current,opacity:"1",color:"transparent",pointerEvents:"all",background:"transparent",caretColor:"transparent",border:"0 solid transparent",outline:"0 solid transparent",boxShadow:"none",lineHeight:"1",letterSpacing:"-.5em",fontSize:"var(--bits-pin-input-root-height)",fontFamily:"monospace",fontVariantNumeric:"tabular-nums"})));Ar(this,Ph,()=>{var ge;const a=at(this,Ha).current,p=this.opts.ref.current;if(!a||!p)return;if(this.domContext.getActiveElement()!==a){se(at(this,ja),null),se(at(this,Wa),null);return}const y=a.selectionStart,M=a.selectionEnd,z=a.selectionDirection??"none",T=a.maxLength,s=a.value,B=x(at(this,Xo)).prev;let O=-1,X=-1,K;if(s.length!==0&&y!==null&&M!==null){const Ie=y===M,Ee=y===s.length&&s.length1&&s.length>1){let ze=0;if(B[0]!==null&&B[1]!==null){K=De{const p=a.currentTarget.value.slice(0,this.opts.maxLength.current);if(p.length>0&&x(at(this,To))&&!x(at(this,To)).test(p)){a.preventDefault();return}typeof at(this,Ic).current=="string"&&p.length{const p=at(this,Ha).current;if(p){const y=Math.min(p.value.length,this.opts.maxLength.current-1),M=p.value.length;p.setSelectionRange(y,M),se(at(this,ja),y,!0),se(at(this,Wa),M,!0)}at(this,Wo).current=!0});yr(this,"onpaste",a=>{var X,K,ne,H;const p=at(this,Ha).current;if(!p)return;const y=pe=>{const ge=p.selectionStart===null?void 0:p.selectionStart,Ie=p.selectionEnd===null?void 0:p.selectionEnd,Ee=ge!==Ie,De=this.opts.value.current;return(Ee?De.slice(0,ge)+pe+De.slice(Ie):De.slice(0,ge)+pe+De.slice(ge)).slice(0,this.opts.maxLength.current)},M=pe=>pe.length>0&&x(at(this,To))&&!x(at(this,To)).test(pe);if(!((X=this.opts.pasteTransformer)!=null&&X.current)&&(!at(this,Mc).isIOS||!a.clipboardData||!p)){const pe=y((K=a.clipboardData)==null?void 0:K.getData("text/plain"));M(pe)&&a.preventDefault();return}const z=((ne=a.clipboardData)==null?void 0:ne.getData("text/plain"))??"",T=(H=this.opts.pasteTransformer)!=null&&H.current?this.opts.pasteTransformer.current(z):z;a.preventDefault();const s=y(T);if(M(s))return;p.value=s,this.opts.value.current=s;const B=Math.min(s.length,this.opts.maxLength.current-1),O=s.length;p.setSelectionRange(B,O),se(at(this,ja),B,!0),se(at(this,Wa),O,!0)});yr(this,"onmouseover",a=>{se(at(this,Pc),!0)});yr(this,"onmouseleave",a=>{se(at(this,Pc),!1)});yr(this,"onblur",a=>{if(x(at(this,Xo)).willSyntheticBlur){x(at(this,Xo)).willSyntheticBlur=!1;return}at(this,Wo).current=!1});Ar(this,Ih,pt(()=>{var a;return{id:this.opts.inputId.current,style:x(at(this,lp)),autocomplete:this.opts.autocomplete.current||"one-time-code","data-pin-input-input":"","data-pin-input-input-mss":x(at(this,ja)),"data-pin-input-input-mse":x(at(this,Wa)),inputmode:this.opts.inputmode.current,pattern:(a=x(at(this,To)))==null?void 0:a.source,maxlength:this.opts.maxLength.current,value:this.opts.value.current,disabled:Pk(this.opts.disabled.current),onpaste:this.onpaste,oninput:this.oninput,onkeydown:this.onkeydown,onmouseover:this.onmouseover,onmouseleave:this.onmouseleave,onfocus:this.onfocus,onblur:this.onblur,...this.inputAttachment}}));Ar(this,up,pt(()=>Array.from({length:this.opts.maxLength.current}).map((a,p)=>{const y=at(this,Wo).current&&x(at(this,ja))!==null&&x(at(this,Wa))!==null&&(x(at(this,ja))===x(at(this,Wa))&&p===x(at(this,ja))||p>=x(at(this,ja))&&p({cells:x(at(this,up)),isFocused:at(this,Wo).current,isHovering:x(at(this,Pc))})));var p;this.opts=a,this.attachment=Xa(this.opts.ref),this.domContext=new xk(a.ref),na(this,Mc,{value:this.opts.value,isIOS:typeof window<"u"&&((p=window==null?void 0:window.CSS)==null?void 0:p.supports("-webkit-touch-callout","none"))}),na(this,Cs,CA({containerRef:this.opts.ref,inputRef:at(this,Ha),isFocused:at(this,Wo),pushPasswordManagerStrategy:this.opts.pushPasswordManagerStrategy,domContext:this.domContext})),Fn(()=>{const y=at(this,Ha).current,M=this.opts.ref.current;if(!y||!M)return;at(this,Mc).value.current!==y.value&&(this.opts.value.current=y.value),x(at(this,Xo)).prev=[y.selectionStart,y.selectionEnd,y.selectionDirection??"none"];const z=Nu(this.domContext.getDocument(),"selectionchange",at(this,Ph),{capture:!0});at(this,Ph).call(this),this.domContext.getActiveElement()===y&&(at(this,Wo).current=!0),this.domContext.getElementById("pin-input-style")||jr(this,cp,P0).call(this);const T=()=>{M&&M.style.setProperty("--bits-pin-input-root-height",`${y.clientHeight}px`)};T();const s=new ResizeObserver(T);return s.observe(y),()=>{z(),s.disconnect()}}),Ps([()=>this.opts.value.current,()=>at(this,Ha).current],()=>{PA(()=>{const y=at(this,Ha).current;if(!y)return;y.dispatchEvent(new Event("input"));const M=y.selectionStart,z=y.selectionEnd,T=y.selectionDirection??"none";M!==null&&z!==null&&(se(at(this,ja),M,!0),se(at(this,Wa),z,!0),x(at(this,Xo)).prev=[M,z,T])},this.domContext)}),Hr(()=>{const y=this.opts.value.current,M=at(this,Ic).current,z=this.opts.maxLength.current,T=this.opts.onComplete.current;M!==void 0&&y!==M&&M.length({id:this.opts.id.current,[S0.cell]:"","data-active":this.opts.cell.current.isActive?"":void 0,"data-inactive":this.opts.cell.current.isActive?void 0:"",...this.attachment})));this.opts=a,this.attachment=Xa(this.opts.ref)}static create(a){return new u_(a)}get props(){return x(at(this,kh))}set props(a){se(at(this,kh),a)}};kh=new WeakMap;let wm=u_;function PA(m,a){const p=a.setTimeout(m,0),y=a.setTimeout(m,10),M=a.setTimeout(m,50);return[p,y,M]}function Lu(m,a){try{m.insertRule(a)}catch{console.error("pin input could not insert CSS rule:",a)}}var IA=Te("
                    ");function MA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"inputId",19,()=>`${Ya(p)}-input`),z=Lt(a,"ref",15,null),T=Lt(a,"maxlength",3,6),s=Lt(a,"textalign",3,"left"),B=Lt(a,"inputmode",3,"numeric"),O=Lt(a,"onComplete",3,qu),X=Lt(a,"pushPasswordManagerStrategy",3,"increase-width"),K=Lt(a,"class",3,""),ne=Lt(a,"autocomplete",3,"one-time-code"),H=Lt(a,"disabled",3,!1),pe=Lt(a,"value",15,""),ge=Lt(a,"onValueChange",3,qu),Ie=rr(a,["$$slots","$$events","$$legacy","id","inputId","ref","maxlength","textalign","pattern","inputmode","onComplete","pushPasswordManagerStrategy","class","children","autocomplete","disabled","value","onValueChange","pasteTransformer"]);const Ee=bm.create({id:xr.with(()=>y()),ref:xr.with(()=>z(),Qe=>z(Qe)),inputId:xr.with(()=>M()),autocomplete:xr.with(()=>ne()),maxLength:xr.with(()=>T()),textAlign:xr.with(()=>s()),disabled:xr.with(()=>H()),inputmode:xr.with(()=>B()),pattern:xr.with(()=>a.pattern),onComplete:xr.with(()=>O()),value:xr.with(()=>pe(),Qe=>{pe(Qe),ge()(Qe)}),pushPasswordManagerStrategy:xr.with(()=>X()),pasteTransformer:xr.with(()=>a.pasteTransformer)}),De=pt(()=>Va(Ie,Ee.inputProps)),ze=pt(()=>Va(Ee.rootProps,{class:K()})),Fe=pt(()=>Va(Ee.inputWrapperProps,{}));var $e=IA();ir($e,()=>({...x(ze)}));var Je=A($e);oi(Je,()=>a.children??pa,()=>Ee.snippetProps);var qe=V(Je,2);ir(qe,()=>({...x(Fe)}));var Ze=A(qe);Ka(Ze),ir(Ze,()=>({...x(De)})),k(qe),k($e),$(m,$e),Dr()}var kA=Te("
                    ");function AA(m,a){const p=uo();Lr(a,!0);let y=Lt(a,"id",19,()=>Ya(p)),M=Lt(a,"ref",15,null),z=rr(a,["$$slots","$$events","$$legacy","id","ref","cell","child","children"]);const T=wm.create({id:xr.with(()=>y()),ref:xr.with(()=>M(),ne=>M(ne)),cell:xr.with(()=>a.cell)}),s=pt(()=>Va(z,T.props));var B=Qt(),O=Ct(B);{var X=ne=>{var H=Qt(),pe=Ct(H);oi(pe,()=>a.child,()=>({props:x(s)})),$(ne,H)},K=ne=>{var H=kA();ir(H,()=>({...x(s)}));var pe=A(H);oi(pe,()=>a.children??pa),k(H),$(ne,H)};Ne(O,ne=>{a.child?ne(X):ne(K,!1)})}$(m,B),Dr()}function Ac(...m){return Lv(Ou(m))}function EA(m,a){Lr(a,!0);let p=Lt(a,"ref",15,null),y=Lt(a,"value",15,""),M=rr(a,["$$slots","$$events","$$legacy","ref","value","class"]);var z=Qt(),T=Ct(z);{let s=pt(()=>Ac("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",a.class));xi(T,()=>Yk,(B,O)=>{O(B,Is({"data-slot":"command",get class(){return x(s)}},()=>M,{get value(){return y()},set value(X){y(X)},get ref(){return p()},set ref(X){p(X)}}))})}$(m,z),Dr()}var zA=Sr('');function _l(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=zA();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}function LA(m,a){Lr(a,!0);let p=Lt(a,"ref",15,null),y=rr(a,["$$slots","$$events","$$legacy","ref","class"]);var M=Qt(),z=Ct(M);{let T=pt(()=>Ac("py-6 text-center text-sm",a.class));xi(z,()=>Jk,(s,B)=>{B(s,Is({"data-slot":"command-empty",get class(){return x(T)}},()=>y,{get ref(){return p()},set ref(O){p(O)}}))})}$(m,M),Dr()}var DA=Te(" ",1);function RA(m,a){Lr(a,!0);let p=Lt(a,"ref",15,null),y=rr(a,["$$slots","$$events","$$legacy","ref","class","children","heading","value"]);var M=Qt(),z=Ct(M);{let T=pt(()=>Ac("text-foreground overflow-hidden p-1",a.class)),s=pt(()=>a.value??a.heading??`----${qk()}`);xi(z,()=>eA,(B,O)=>{O(B,Is({"data-slot":"command-group",get class(){return x(T)},get value(){return x(s)}},()=>y,{get ref(){return p()},set ref(X){p(X)},children:(X,K)=>{var ne=DA(),H=Ct(ne);{var pe=Ie=>{var Ee=Qt(),De=Ct(Ee);xi(De,()=>rA,(ze,Fe)=>{Fe(ze,{class:"text-muted-foreground px-2 py-1.5 text-xs font-medium",children:($e,Je)=>{vn();var qe=wi();We(()=>de(qe,a.heading)),$($e,qe)},$$slots:{default:!0}})}),$(Ie,Ee)};Ne(H,Ie=>{a.heading&&Ie(pe)})}var ge=V(H,2);xi(ge,()=>aA,(Ie,Ee)=>{Ee(Ie,{get children(){return a.children}})}),$(X,ne)},$$slots:{default:!0}}))})}$(m,M),Dr()}function BA(m,a){Lr(a,!0);let p=Lt(a,"ref",15,null),y=rr(a,["$$slots","$$events","$$legacy","ref","class"]);var M=Qt(),z=Ct(M);{let T=pt(()=>Ac("aria-selected:bg-base-300 aria-selected:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",a.class));xi(z,()=>uA,(s,B)=>{B(s,Is({"data-slot":"command-item",get class(){return x(T)}},()=>y,{get ref(){return p()},set ref(O){p(O)}}))})}$(m,M),Dr()}var FA=Sr('');function OA(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=FA();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var NA=Te('
                    ');function jA(m,a){Lr(a,!0);let p=Lt(a,"ref",15,null),y=Lt(a,"value",15,""),M=rr(a,["$$slots","$$events","$$legacy","ref","class","value"]);var z=NA(),T=A(z);OA(T,{class:"size-5 opacity-50"});var s=V(T,2);{let B=pt(()=>Ac("placeholder:text-muted-foreground outline-hidden flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50",a.class));xi(s,()=>sA,(O,X)=>{X(O,Is({"data-slot":"command-input",get class(){return x(B)}},()=>M,{get ref(){return p()},set ref(K){p(K)},get value(){return y()},set value(K){y(K)}}))})}k(z),$(m,z),Dr()}function VA(m,a){Lr(a,!0);let p=Lt(a,"ref",15,null),y=rr(a,["$$slots","$$events","$$legacy","ref","class"]);var M=Qt(),z=Ct(M);{let T=pt(()=>Ac("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden",a.class));xi(z,()=>dA,(s,B)=>{B(s,Is({"data-slot":"command-list",get class(){return x(T)}},()=>y,{get ref(){return p()},set ref(O){p(O)}}))})}$(m,M),Dr()}var qA=Sr('');function ZA(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=qA();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var UA=Te(" ",1),$A=Te(' ',1),GA=Te(' '),HA=Te(" ",1),WA=Te(" ",1),XA=(m,a)=>{a(0)},YA=Te(''),KA=Te('
                    ');function lv(m,a){Lr(a,!0);let p=Lt(a,"countryId",15,0),y=Lt(a,"dropdownDirection",3,"right"),M=st(null),z=st(null),T=st("");function s(){Iv().then(()=>{var ze;(ze=document.activeElement)==null||ze.blur(),se(T,"")})}var B=KA(),O=A(B),X=A(O),K=A(X);{var ne=ze=>{var Fe=UA(),$e=Ct(Fe),Je=A($e,!0);k($e);var qe=V($e,2);ZA(qe,{class:"size-3.5"}),We(Ze=>de(Je,Ze),[()=>Uv()]),$(ze,Fe)},H=ze=>{const Fe=pt(()=>So(p()));var $e=$A(),Je=Ct($e),qe=A(Je,!0);k(Je);var Ze=V(Je);We(()=>{de(qe,x(Fe).flag),de(Ze,` ${x(Fe).name??""}`)}),$(ze,$e)};Ne(K,ze=>{p()===0?ze(ne):ze(H,!1)})}k(X);var pe=V(X,2);let ge;var Ie=A(pe);xi(Ie,()=>EA,(ze,Fe)=>{Fe(ze,{children:($e,Je)=>{var qe=WA(),Ze=Ct(qe);xi(Ze,()=>jA,(Le,et)=>{et(Le,{placeholder:"Country",get ref(){return x(M)},set ref(nt){se(M,nt)},get value(){return x(T)},set value(nt){se(T,nt,!0)}})});var Qe=V(Ze,2);xi(Qe,()=>VA,(Le,et)=>{et(Le,{children:(nt,Ue)=>{var Me=HA(),yt=Ct(Me);xi(yt,()=>LA,(re,he)=>{he(re,{children:(oe,Ae)=>{vn();var je=wi();We(ft=>de(je,ft),[()=>Nw()]),$(oe,je)},$$slots:{default:!0}})});var Q=V(yt,2);xi(Q,()=>RA,(re,he)=>{he(re,{children:(oe,Ae)=>{var je=Qt(),ft=Ct(je);hi(ft,17,()=>Wi.countries,it=>it.id,(it,ut)=>{var Pt=Qt(),Dt=Ct(Pt);xi(Dt,()=>BA,(ot,dt)=>{dt(ot,{get value(){return x(ut).name},onSelect:()=>{p(x(ut).id),s()},children:(vt,xt)=>{var It=GA(),wt=A(It),_t=A(wt,!0);k(wt);var Et=V(wt);k(It),We(()=>{de(_t,x(ut).flag),de(Et,` ${x(ut).name??""}`)}),$(vt,It)},$$slots:{default:!0}})}),$(it,Pt)}),$(oe,je)},$$slots:{default:!0}})}),$(nt,Me)},$$slots:{default:!0}})}),$($e,qe)},$$slots:{default:!0}})}),k(pe),k(O);var Ee=V(O,2);{var De=ze=>{var Fe=YA();Fe.__click=[XA,p];var $e=A(Fe);_l($e,{class:"size-3.5"}),k(Fe),$(ze,Fe)};Ne(Ee,ze=>{p()!=0&&ze(De)})}k(B),Ko(B,ze=>se(z,ze),()=>x(z)),We(ze=>ge=zr(pe,1,"dropdown-content menu bg-base-100 rounded-box z-1 border-base-content/10 w-52 rounded-lg border py-1 shadow-sm",null,ge,ze),[()=>({"right-1":y()==="left"})]),di("focus",X,()=>{x(M).focus()}),$(m,B),Dr()}$n(["click"]);var JA=Sr('');function QA(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=JA();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var e8=Sr(''),t8=Sr('');function Uu(m,a){let p=rr(a,["$$slots","$$events","$$legacy","filled"]);var y=Qt(),M=Ct(y);{var z=s=>{var B=e8();ir(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(s,B)},T=s=>{var B=t8();ir(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(s,B)};Ne(M,s=>{a.filled?s(z):s(T,!1)})}$(m,y)}var r8=Te(''),n8=Te('
                    '),i8=Te('
                    '),a8=(m,a,p)=>{a.onvisitclick({lat:x(p).lastLatitude,lng:x(p).lastLongitude})},o8=Te(' '),s8=Te('

                    '),l8=Te(' '),c8=Te('

                    '),u8=Te(' '),h8=Te(" "),d8=Te('
                    '),p8=Te('

                    '),f8=Te(' '),m8=Te('

                    '),_8=Te('
                    '),g8=Te('
                    ',1);function v8(m,a){Lr(a,!0);const p=[];let y=st(1e3);const M=pt(()=>x(y)<=640);let z=st("today"),T={regions:{label:KT(),icon:Em},countries:{label:eC(),icon:QA},players:{label:Yv(),icon:yp},alliances:{label:Kv(),icon:xp}},s=st("regions"),B=st(0),O=bi({players:{},alliances:{},regions:{},countries:{}}),X=pt(()=>{var qe,Ze,Qe;return x(s)==="regions"?(Ze=(qe=O[x(s)][x(B)])==null?void 0:qe[x(z)])==null?void 0:Ze.entries:(Qe=O[x(s)][x(z)])==null?void 0:Qe.entries});const K=5*1e3;Hr(()=>{var Le;if(!a.open)return;const qe=x(z),Ze=x(s),Qe=x(B);Ze==="players"&&(!O[Ze][qe]||Date.now()-O[Ze][qe].time>K)?Qr.leaderboardPlayers(qe).then(et=>{O[Ze][qe]={time:Date.now(),entries:et}}).catch(et=>Fr.error(et.message)):Ze==="alliances"&&(!O[Ze][qe]||Date.now()-O[Ze][qe].time>K)?Qr.leaderboardAlliances(qe).then(et=>{O[Ze][qe]={time:Date.now(),entries:et}}).catch(et=>Fr.error(et.message)):Ze==="countries"&&(!O[Ze][qe]||Date.now()-O[Ze][qe].time>K)?Qr.leaderboardCountries(qe).then(et=>{O[Ze][qe]={time:Date.now(),entries:et}}).catch(et=>Fr.error(et.message)):Ze==="regions"&&(!((Le=O[Ze][Qe])!=null&&Le[qe])||Date.now()-O[Ze][Qe][qe].time>K)&&Qr.leaderboardRegions(qe,Qe).then(et=>{O[Ze][Qe]||(O[Ze][Qe]={}),O[Ze][Qe][qe]={time:Date.now(),entries:et}}).catch(et=>Fr.error(et.message))});var ne=g8(),H=Ct(ne);hi(H,21,()=>Object.entries(T),([qe,{label:Ze,icon:Qe}])=>qe,(qe,Ze)=>{var Qe=pt(()=>Mv(x(Ze),2));let Le=()=>x(Qe)[0],et=()=>x(Qe)[1].label,nt=()=>x(Qe)[1].icon;const Ue=pt(nt);var Me=r8(),yt=A(Me);Ka(yt);var Q,re=V(yt,2);xi(re,()=>x(Ue),(oe,Ae)=>{Ae(oe,{get this(){return nt()},class:"mr-1 size-5 max-sm:hidden"})});var he=V(re);k(Me),We(()=>{wr(yt,"aria-label",et()),Q!==(Q=Le())&&(yt.value=(yt.__value=Le())??""),de(he,` ${et()??""}`)}),Lm(p,[],yt,()=>(Le(),x(s)),oe=>se(s,oe)),$(qe,Me)}),k(H);var pe=V(H,2),ge=A(pe);Um(ge,{get value(){return x(z)},set value(qe){se(z,qe,!0)}});var Ie=V(ge,2);{var Ee=qe=>{lv(qe,{dropdownDirection:"left",get countryId(){return x(B)},set countryId(Ze){se(B,Ze,!0)}})};Ne(Ie,qe=>{x(s)==="regions"&&!x(M)&&qe(Ee)})}k(pe);var De=V(pe,2);{var ze=qe=>{var Ze=n8(),Qe=A(Ze);lv(Qe,{get countryId(){return x(B)},set countryId(Le){se(B,Le,!0)}}),k(Ze),$(qe,Ze)};Ne(De,qe=>{x(s)==="regions"&&x(M)&&qe(ze)})}var Fe=V(De,2);{var $e=qe=>{var Ze=i8(),Qe=A(Ze),Le=V(Qe);{var et=Ue=>{var Me=wi();We(yt=>de(Me,yt),[()=>vp().toLowerCase()]),$(Ue,Me)},nt=Ue=>{var Me=Qt(),yt=Ct(Me);{var Q=he=>{var oe=wi();We(Ae=>de(oe,Ae),[()=>Nm()]),$(he,oe)},re=he=>{var oe=Qt(),Ae=Ct(oe);{var je=ft=>{var it=wi();We(ut=>de(it,ut),[()=>jm()]),$(ft,it)};Ne(Ae,ft=>{x(z)==="month"&&ft(je)},!0)}$(he,oe)};Ne(yt,he=>{x(z)==="week"?he(Q):he(re,!1)},!0)}$(Ue,Me)};Ne(Le,Ue=>{x(z)==="today"?Ue(et):Ue(nt,!1)})}k(Ze),We(Ue=>de(Qe,`${Ue??""} `),[()=>Om()]),$(qe,Ze)},Je=qe=>{var Ze=Qt(),Qe=Ct(Ze);{var Le=nt=>{var Ue=Qt(),Me=Ct(Ue);{var yt=re=>{const he=pt(()=>x(X));var oe=s8(),Ae=A(oe),je=A(Ae),ft=V(A(je)),it=A(ft,!0);k(ft);var ut=V(ft),Pt=A(ut),Dt=V(Pt,2),ot=V(Dt),dt=A(ot);Uu(dt,{class:"text-base-content/50 mb-0.5 ml-1 inline size-4"}),k(ot),k(ut),vn(),k(je),k(Ae);var vt=V(Ae);hi(vt,31,()=>x(he),xt=>xt.id,(xt,It,wt)=>{const _t=pt(()=>So(x(It).countryId));var Et=o8(),Rt=A(Et),Ut=A(Rt,!0);k(Rt);var er=V(Rt),tr=A(er),Nt=A(tr,!0);k(tr);var Ft=V(tr,2),sr=A(Ft),lr=V(sr),Vr=A(lr);k(lr),k(Ft),k(er);var mr=V(er),hr=A(mr,!0);k(mr);var _r=V(mr),Ir=A(_r);Ir.__click=[a8,a,It];var qr=A(Ir,!0);k(Ir),k(_r),k(Et),We((le,j,Z)=>{de(Ut,x(wt)+1),wr(tr,"data-tip",x(_t).name),de(Nt,x(_t).flag),zr(Ft,1,`font-semibold ${le??""}`),de(sr,`${x(It).name??""} `),de(Vr,`#${x(It).number??""}`),de(hr,j),de(qr,Z)},[()=>Oi(x(It).cityId),()=>x(It).pixelsPainted.toLocaleString("en-US"),()=>kx()]),ll(Et,()=>cl,()=>({duration:200})),$(xt,Et)}),k(vt),k(oe),We((xt,It,wt,_t)=>{de(it,xt),de(Pt,`${It??""} `),de(Dt,`${wt??""} `),wr(ot,"data-tip",_t)},[()=>sC(),()=>vc(),()=>yc().toLowerCase(),()=>fC()]),$(re,oe)},Q=re=>{var he=Qt(),oe=Ct(he);{var Ae=ft=>{var it=c8(),ut=A(it),Pt=A(ut),Dt=V(A(Pt)),ot=A(Dt,!0);k(Dt);var dt=V(Dt),vt=A(dt),xt=V(vt,2),It=V(xt),wt=A(It);Uu(wt,{class:"text-base-content/50 mb-0.5 ml-1 inline size-4"}),k(It),k(dt),k(Pt),k(ut);var _t=V(ut);hi(_t,31,()=>x(X),Et=>Et.id,(Et,Rt,Ut)=>{const er=pt(()=>So(x(Rt).id));var tr=l8(),Nt=A(tr),Ft=A(Nt,!0);k(Nt);var sr=V(Nt),lr=A(sr),Vr=A(lr,!0);k(lr);var mr=V(lr,2),hr=A(mr,!0);k(mr),k(sr);var _r=V(sr),Ir=A(_r,!0);k(_r),k(tr),We((qr,le)=>{de(Ft,x(Ut)+1),wr(lr,"data-tip",x(er).name),de(Vr,x(er).flag),zr(mr,1,`font-semibold ${qr??""}`),de(hr,x(er).name),de(Ir,le)},[()=>Oi(x(Rt).id),()=>x(Rt).pixelsPainted.toLocaleString("en-US")]),ll(tr,()=>cl,()=>({duration:200})),$(Et,tr)}),k(_t),k(it),We((Et,Rt,Ut,er)=>{de(ot,Et),de(vt,`${Rt??""} `),de(xt,`${Ut??""} `),wr(It,"data-tip",er)},[()=>Uv(),()=>vc(),()=>yc().toLowerCase(),()=>UC()]),$(ft,it)},je=ft=>{var it=Qt(),ut=Ct(it);{var Pt=ot=>{const dt=pt(()=>x(X));var vt=p8(),xt=A(vt),It=A(xt),wt=V(A(It)),_t=A(wt,!0);k(wt);var Et=V(wt),Rt=A(Et),Ut=V(Rt,2,!0);k(Et),k(It),k(xt);var er=V(xt);hi(er,31,()=>x(dt),tr=>tr.id,(tr,Nt,Ft)=>{const sr=pt(()=>{var xe;return((xe=Mt.data)==null?void 0:xe.id)===x(Nt).id});var lr=d8();let Vr;var mr=A(lr),hr=A(mr,!0);k(mr);var _r=V(mr),Ir=A(_r),qr=A(Ir);co(qr,{class:"size-8 border sm:size-10",get userId(){return x(Nt).id},get pictureUrl(){return x(Nt).picture}});var le=V(qr,2),j=A(le),Z=A(j),Y=V(Z),ae=A(Y);k(Y),k(j);var fe=V(j,2);{var Se=xe=>{const Ot=pt(()=>So(x(Nt).equippedFlag));var cr=u8(),Jt=A(cr,!0);k(cr),We(()=>{wr(cr,"data-tip",x(Ot).name),de(Jt,x(Ot).flag)}),$(xe,cr)};Ne(fe,xe=>{x(Nt).equippedFlag&&xe(Se)})}var ke=V(fe,2);{var we=xe=>{Eh(xe,{get username(){return x(Nt).discord},get id(){return x(Nt).discordId}})};Ne(ke,xe=>{x(Nt).discord&&xe(we)})}var Oe=V(ke,2);{var lt=xe=>{var Ot=h8(),cr=A(Ot,!0);k(Ot),We((Jt,Pr)=>{zr(Ot,1,`badge badge-sm ml-0.5 border-0 ${Jt??""} ${Pr??""}`),de(cr,x(Nt).allianceName)},[()=>pp(x(Nt).allianceId),()=>Oi(x(Nt).allianceId)]),$(xe,Ot)};Ne(Oe,xe=>{"allianceName"in x(Nt)&&x(Nt).allianceName&&xe(lt)})}k(le),k(Ir),k(_r);var Ye=V(_r),kt=A(Ye,!0);k(Ye),k(lr),We((xe,Ot,cr)=>{Vr=zr(lr,1,"",null,Vr,xe),de(hr,x(Ft)+1),zr(j,1,`font-semibold max-sm:ml-2 ${Ot??""} flex gap-1`),de(Z,`${x(Nt).name??""} `),de(ae,`#${x(Nt).id??""}`),de(kt,cr)},[()=>({"bg-base-200":x(sr)}),()=>Oi(x(Nt).id),()=>x(Nt).pixelsPainted.toLocaleString("en-US")]),ll(lr,()=>cl,()=>({duration:200})),$(tr,lr)}),k(er),k(vt),We((tr,Nt,Ft)=>{de(_t,tr),de(Rt,`${Nt??""} `),de(Ut,Ft)},[()=>Dm(),()=>vc(),()=>yc().toLowerCase()]),$(ot,vt)},Dt=ot=>{var dt=Qt(),vt=Ct(dt);{var xt=It=>{var wt=m8(),_t=A(wt),Et=A(_t),Rt=V(A(Et)),Ut=A(Rt,!0);k(Rt);var er=V(Rt),tr=A(er),Nt=V(tr,2,!0);k(er),k(Et),k(_t);var Ft=V(_t);hi(Ft,31,()=>x(X),sr=>sr.id,(sr,lr,Vr)=>{const mr=pt(()=>{var fe;return((fe=Mt.data)==null?void 0:fe.allianceId)===x(lr).id});var hr=f8();let _r;var Ir=A(hr),qr=A(Ir,!0);k(Ir);var le=V(Ir),j=A(le),Z=A(j,!0);k(j),k(le);var Y=V(le),ae=A(Y,!0);k(Y),k(hr),We((fe,Se,ke)=>{_r=zr(hr,1,"",null,_r,fe),de(qr,x(Vr)+1),zr(j,1,`font-semibold ${Se??""}`),de(Z,x(lr).name),de(ae,ke)},[()=>({"bg-base-200":x(mr)}),()=>Oi(x(lr).id),()=>x(lr).pixelsPainted.toLocaleString("en-US")]),ll(hr,()=>cl,()=>({duration:200})),$(sr,hr)}),k(Ft),k(wt),We((sr,lr,Vr)=>{de(Ut,sr),de(tr,`${lr??""} `),de(Nt,Vr)},[()=>_p(),()=>vc(),()=>yc().toLowerCase()]),$(It,wt)};Ne(vt,It=>{x(s)==="alliances"&&It(xt)},!0)}$(ot,dt)};Ne(ut,ot=>{x(s)==="players"?ot(Pt):ot(Dt,!1)},!0)}$(ft,it)};Ne(oe,ft=>{x(s)==="countries"?ft(Ae):ft(je,!1)},!0)}$(re,he)};Ne(Me,re=>{x(s)==="regions"?re(yt):re(Q,!1)})}$(nt,Ue)},et=nt=>{var Ue=_8();$(nt,Ue)};Ne(Qe,nt=>{x(X)?nt(Le):nt(et,!1)},!0)}$(qe,Ze)};Ne(Fe,qe=>{x(X)&&x(X).length===0?qe($e):qe(Je,!1)})}mp("innerWidth",qe=>se(y,qe,!0)),$(m,ne),Dr()}$n(["click"]);var y8=Sr('');function I0(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=y8();ir(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...p})),$(m,y)}var x8=Te(' ');function b8(m,a){Lr(a,!0);let p=Lt(a,"open",15);Fn(()=>{const K=ne=>{ne.key==="Escape"&&p(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)});var y=x8(),M=A(y),z=V(A(M),2),T=A(z);I0(T,{class:"size-6"});var s=V(T,2),B=A(s,!0);k(s),k(z);var O=V(z,2),X=A(O);v8(X,{get onvisitclick(){return a.onvisitclick},get open(){return p()}}),k(O),k(M),vn(2),k(y),Ni(y,()=>K=>{Hr(()=>{p()?K.show():K.close()})}),We(K=>de(B,K),[()=>Bm()]),di("close",y,()=>p(!1)),$(m,y),Dr()}var w8=Te("
                    "),T8=Te(' ');function C8(m,a){Lr(a,!0);let p=Lt(a,"open",15);Fn(()=>{const s=B=>{B.key==="Escape"&&p(!1)};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)});var y=T8(),M=A(y),z=V(A(M),2);{var T=s=>{var B=w8(),O=A(B);jx(O,{}),k(B),Ai(2,B,()=>ia,()=>({duration:300})),$(s,B)};Ne(z,s=>{p()&&s(T)})}k(M),vn(2),k(y),Ni(y,()=>s=>{Hr(()=>{p()?s.show():s.close()})}),di("close",y,()=>p(!1)),$(m,y),Dr()}var S8=(m,a,p)=>{localStorage.setItem(x(a),"true"),se(p,!1)},P8=Te('new'),I8=Te("
                    ");function jf(m,a){Lr(a,!0);let p=st(!1);const y=pt(()=>"showed:"+a.key);Fn(()=>{se(p,!localStorage.getItem(x(y)))});var M=I8();M.__click=[S8,y,p];var z=A(M);{var T=B=>{var O=P8();Ai(3,O,()=>ia,()=>({duration:200})),$(B,O)};Ne(z,B=>{x(p)&&B(T)})}var s=V(z,2);oi(s,()=>a.children),k(M),We(()=>zr(M,1,`indicator ${a.class??""}`)),$(m,M),Dr()}$n(["click"]);var M8=Te("

                    You don't have charges to paint.

                    ");function k8(m,a){Lr(a,!1),Nv();var p=M8(),y=V(A(p),2);k(p),We(M=>de(y,` Next charge in ${M??""}`),[()=>rp(Mt.cooldown??0)]),$(m,p),Dr()}var A8=Te("");function M0(m,a){Lr(a,!0);let p=Lt(a,"width",15,0),y=rr(a,["$$slots","$$events","$$legacy","value","fontSize","color","weight","mono","width"]),M=pt(()=>Math.ceil(a.fontSize)),z=st(null);const T=window.devicePixelRatio??1,s='"Geist", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',B='"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace';Hr(()=>{const X=x(z).getContext("2d");X.textBaseline="top",X.font=`${a.weight??"normal"} ${a.fontSize}px ${a.mono?B:s}`,X.fillStyle=a.color??"#394e6a",X.setTransform(T,0,0,T,0,0),X.clearRect(0,0,p(),x(M)),X.fillText(a.value,0,0);const K=X.measureText(a.value);p(Math.ceil(K.actualBoundingBoxRight)),se(M,K.actualBoundingBoxDescent)});var O=A8();ir(O,()=>({width:p()*T,height:x(M)*T,style:`width: ${p()??""}px; height: ${x(M)??""}px`,...y})),Ko(O,X=>se(z,X),()=>x(z)),$(m,O),Dr()}var E8=Te(' '),z8=Te(' '),L8=Te(''),D8=Te('');function k0(m,a){Lr(a,!0);let p=rr(a,["$$slots","$$events","$$legacy","loading","charges"]),y=st(0);var M=D8();ir(M,()=>({...p,class:`btn btn-primary btn-lg sm:btn-xl relative ${a.class??""}`}));var z=A(M);zh(z,{class:"size-6"});var T=V(z,2),s=A(T),B=V(s);{var O=ne=>{const H=pt(()=>`${Math.floor(a.charges)}/${Mt.data.charges.max}`);var pe=z8(),ge=A(pe),Ie=A(ge);{let ze=pt(()=>a.disabled?"#394e6a33":"#ffffff");M0(Ie,{weight:600,fontSize:16,get value(){return x(H)},get color(){return x(ze)},get width(){return x(y)},set width(Fe){se(y,Fe,!0)}})}k(ge);var Ee=V(ge,2);{var De=ze=>{var Fe=E8(),$e=A(Fe);k(Fe),We(Je=>de($e,`(${Je??""})`),[()=>rp(Mt.cooldown)]),$(ze,Fe)};Ne(Ee,ze=>{a.chargeskc(ge,`width: ${ze??""}px`),[()=>(Math.floor(x(y)/5)+1)*5]),$(ne,pe)};Ne(B,ne=>{a.charges!==void 0&&Mt.data&&ne(O)})}k(T);var X=V(T,2);{var K=ne=>{var H=L8();$(ne,H)};Ne(X,ne=>{a.loading&&ne(K)})}k(M),We(ne=>de(s,`${ne??""} `),[()=>Gv()]),$(m,M),Dr()}const R8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABVQTFRFAAAASkKEenHEta7xWmmLi5y0v8vc+SuCVQAAAAF0Uk5TAEDm2GYAAAA/SURBVHjaXcjBDcAwDMNAUW28/8hF0MCIzN9RV7aVfuxp+IGPe+AdPQRpFaRrgcNrn/Bb4LAE4W5aNb3TXUofoSgBYpzN5I4AAAAASUVORK5CYII=",B8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC",F8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC",O8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAABVJREFUeNpjYGA48x8DYwoB1Q0RlQDDCVmniJ241gAAAABJRU5ErkJggg==";class N8{constructor(a){yr(this,"gm");yr(this,"opacity",1);yr(this,"id",`paint-preview-${Math.random()}`);yr(this,"tiles",new Map);this.input=a,this.gm=new fl(this.input.tileSize)}place([a,p],y){const{tile:M,pixel:z}=this.gm.latLonToTileAndPixel(a,p,this.input.tileZoom),T=this.getTileKey(M[0],M[1]);let s=this.tiles.get(T);if(!s){const B=this.gm.tileBoundsLatLon(M[0],M[1],this.input.tileZoom),O=Vm(B,!0),X=new j8({coordinates:O,id:`${this.id}-${T}`,layerPaint:{"raster-opacity":this.opacity,"raster-resampling":"nearest"},tileSize:this.input.tileSize,beforeLayerId:this.input.beforeLayerId});X.addTo(this.input.map),this.tiles.set(T,X),s=X}s.place(z[0],this.input.tileSize-z[1]-1,y)}clear(){const a=this.input.map;for(const p of this.tiles.values())p.removeFrom(a),p.removeDOM();this.tiles.clear()}clearAndPlace(a,p){this.clear(),this.place(a,p)}remove([a,p]){const{tile:y,pixel:M}=this.gm.latLonToTileAndPixel(a,p,this.input.tileZoom),z=this.getTileKey(y[0],y[1]),T=this.tiles.get(z);T&&T.remove(M[0],this.input.tileSize-M[1]-1)}setCanvasOpacity(a){this.opacity=a;for(const p of this.tiles.values())p.setOpacity(a)}getTileKey(a,p){return`${a},${p}`}}class j8{constructor(a){yr(this,"canvas");yr(this,"maps",new Set);this.input=a;const p=this.input.tileSize;this.canvas=document.createElement("canvas"),this.canvas.width=p,this.canvas.height=p}place(a,p,y){var T;const M=((T=Wi.colors)==null?void 0:T[y])??Wi.colors[0],z=this.canvas.getContext("2d");if(z){const s=z.createImageData(1,1),[B,O,X]=M.rgb,K=y===0?0:255;s.data[0]=B,s.data[1]=O,s.data[2]=X,s.data[3]=K,z.putImageData(s,a,p)}}remove(a,p){const y=this.canvas.getContext("2d");y&&y.clearRect(a,p,1,1)}addTo(a){const p=this.input.id;a.getSource(p)||a.addSource(p,{type:"canvas",canvas:this.canvas,coordinates:this.input.coordinates}),a.getLayer(p)||(a.addLayer({id:p,type:"raster",source:p,paint:this.input.layerPaint}),this.input.beforeLayerId&&a.moveLayer(p,this.input.beforeLayerId)),this.maps.add(a)}removeFrom(a){const{id:p}=this.input;a.getLayer(p)&&a.removeLayer(p),a.getSource(p)&&a.removeSource(p),this.maps.delete(a)}removeDOM(){this.canvas.remove()}setOpacity(a){for(const p of this.maps.values())p.setPaintProperty(this.input.id,"raster-opacity",a)}}var V8=Sr('');function q8(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=V8();ir(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...p})),$(m,y)}var Z8=Sr('');function U8(m,a){let p=rr(a,["$$slots","$$events","$$legacy"]);var y=Z8();ir(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...p})),$(m,y)}var $8=Te("
                    ");function ol(m,a){Lr(a,!0);var p=$8(),y=A(p);oi(y,()=>a.children??pa),k(p),We(()=>zr(p,1,`bg-base-100/60 border-base-content/20 -top-15 pointer-events-none absolute left-1/2 line-clamp-1 flex w-max -translate-x-1/2 select-none items-center gap-1 rounded-full border-2 px-3 py-1.5 ${a.class??""}`)),$(m,p),Dr()}var G8=Te('
                    '),H8=Te("
                    ");function Xm(m,a){Lr(a,!0);const p=Lt(a,"size",3,10),y=Lt(a,"x",19,()=>[-.5,.5]),M=Lt(a,"y",19,()=>[.25,1]),z=Lt(a,"duration",3,2e3),T=Lt(a,"infinite",3,!1),s=Lt(a,"delay",19,()=>[0,50]),B=Lt(a,"colorRange",19,()=>[0,360]),O=Lt(a,"colorArray",19,()=>[]),X=Lt(a,"amount",3,50),K=Lt(a,"iterationCount",3,1),ne=Lt(a,"fallDistance",3,"100px"),H=Lt(a,"rounded",3,!1),pe=Lt(a,"cone",3,!1),ge=Lt(a,"noGravity",3,!1),Ie=Lt(a,"xSpread",3,.15),Ee=Lt(a,"destroyOnComplete",3,!0),De=Lt(a,"disableForReducedMotion",3,!1);let ze=st(!1);Fn(()=>{!Ee()||T()||typeof K()=="string"||setTimeout(()=>se(ze,!0),(z()+s()[1])*K())});function Fe(Qe,Le){return Math.random()*(Le-Qe)+Qe}function $e(){return O().length?O()[Math.round(Math.random()*(O().length-1))]:`hsl(${Math.round(Fe(B()[0],B()[1]))}, 75%, 50%)`}var Je=Qt(),qe=Ct(Je);{var Ze=Qe=>{var Le=H8();let et;hi(Le,21,()=>({length:X()}),hp,(nt,Ue)=>{var Me=G8();We((yt,Q,re,he,oe,Ae,je,ft,it,ut,Pt)=>kc(Me,` + --color: ${yt??""}; + --skew: ${Q??""}deg,${re??""}deg; + --rotation-xyz: ${he??""}, ${oe??""}, ${Ae??""}; + --rotation-deg: ${je??""}deg; + --translate-y-multiplier: ${ft??""}; + --translate-x-multiplier: ${it??""}; + --scale: ${ut??""}; + --transition-delay: ${Pt??""}ms; + --transition-duration: ${T()?`calc(${z()}ms * var(--scale))`:`${z()}ms`};`),[$e,()=>Fe(-45,45),()=>Fe(-45,45),()=>Fe(-10,10),()=>Fe(-10,10),()=>Fe(-10,10),()=>Fe(0,360),()=>Fe(M()[0],M()[1]),()=>Fe(y()[0],y()[1]),()=>.1*Fe(2,10),()=>Fe(s()[0],s()[1])]),$(nt,Me)}),k(Le),We(nt=>{et=zr(Le,1,"confetti-holder svelte-15ksp55",null,et,nt),kc(Le,` + --fall-distance: ${ne()??""}; + --size: ${p()??""}px; + --x-spread: ${1-Ie()}; + --transition-iteration-count: ${(T()?"infinite":K())??""};`)},[()=>({rounded:H(),cone:pe(),"no-gravity":ge(),"reduced-motion":De()})]),$(Qe,Le)};Ne(qe,Qe=>{x(ze)||Qe(Ze)})}$(m,Je),Dr()}var W8=async(m,a,p,y)=>{try{se(a,!0),await Qr.purchase({id:p,amount:1,variant:y.colorIdx}),await Mt.refresh(),aa.notification1.play()}catch(M){Fr.error(M.message)}finally{se(a,!1)}},X8=Te(''),Y8=Te(' Droplets',1),K8=Te(' Unlocked ',1),J8=(m,a)=>a(!1),Q8=Te('

                    Unlock

                    Permanently unlock the color

                    '),eE=Te(' ');function tE(m,a){Lr(a,!0);let p=Lt(a,"open",15);const y=pt(()=>Wi.colors[a.colorIdx]),M=pt(()=>{var H;return((H=Mt.data)==null?void 0:H.droplets)??0});let z=st(!1);const T=pt(()=>(x(z),Mt.hasColor(a.colorIdx)));Fn(()=>{const H=pe=>{pe.key==="Escape"&&p(!1)};return document.addEventListener("keydown",H),()=>document.removeEventListener("keydown",H)});const s=100,B=Wi.products[s];var O=eE(),X=A(O),K=V(A(X),2);{var ne=H=>{var pe=Q8(),ge=A(pe),Ie=A(ge),Ee=A(Ie);np(Ee,{class:"size-6"});var De=V(Ee,4),ze=A(De);Fv(ze,{get value(){return x(M)}}),k(De),k(Ie),vn(2),k(ge);var Fe=V(ge,2),$e=A(Fe),Je=A($e);k($e);var qe=V($e,2),Ze=A(qe,!0);k(qe);var Qe=V(qe,2),Le=A(Qe);let et;var nt=A(Le);nt.__click=[W8,z,s,a];var Ue=A(nt);{var Me=oe=>{var Ae=X8();$(oe,Ae)};Ne(Ue,oe=>{x(z)&&oe(Me)})}var yt=V(Ue,2);{var Q=oe=>{var Ae=Y8(),je=Ct(Ae);fp(je,{class:"size-5"});var ft=V(je);vn(),We(it=>de(ft,` ${it??""} `),[()=>B.price.toLocaleString("en-US")]),$(oe,Ae)},re=oe=>{var Ae=K8(),je=Ct(Ae);np(je,{class:"size-5"});var ft=V(je,2),it=A(ft);Xm(it,{}),k(ft),$(oe,Ae)};Ne(yt,oe=>{x(T)?oe(re,!1):oe(Q)})}k(nt),k(Le);var he=V(Le,2);he.__click=[J8,p],k(Qe),k(Fe),k(pe),We((oe,Ae)=>{kc(Je,`background: rgb(${x(y).rgb[0]} ${x(y).rgb[1]} ${x(y).rgb[2]})`),wr(Je,"aria-label",x(y).name),de(Ze,x(y).name),wr(Le,"data-tip",oe),et=zr(Le,1,"",null,et,Ae),nt.disabled=x(M)gp(),()=>({tooltip:!x(T)&&x(M){Mt.data&&H(ne)})}k(X),vn(2),k(O),Ni(O,()=>H=>{Hr(()=>{p()?H.show():H.close()})}),di("close",O,()=>p(!1)),$(m,O),Dr()}$n(["click"]);var Tm=function(){return Tm=Object.assign||function(a){for(var p,y=1,M=arguments.length;y0&&z[z.length-1])&&(O[0]===6||O[0]===2)){p=0;continue}if(O[0]===3&&(!z||O[1]>z[0]&&O[1]=M+p?(M=T,[4,rE()]):[3,3]):[3,4];case 2:s.sent(),s.label=3;case 3:return++z,[3,1];case 4:return[2,y]}})})}function $u(m){return m.then(void 0,function(){}),m}function iE(m,a){for(var p=0,y=m.length;p=1)return Math.round(m/a)*a;var p=1/a;return Math.round(m*p)/p}function oE(m){for(var a,p,y="Unexpected syntax '".concat(m,"'"),M=/^\s*([a-z-]*)(.*)$/i.exec(m),z=M[1]||void 0,T={},s=/([.:#][\w-]+|\[.+?\])/gi,B=function(ne,H){T[ne]=T[ne]||[],T[ne].push(H)};;){var O=s.exec(M[2]);if(!O)break;var X=O[0];switch(X[0]){case".":B("class",X.slice(1));break;case"#":B("id",X.slice(1));break;case"[":{var K=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(X);if(K)B(K[1],(p=(a=K[4])!==null&&a!==void 0?a:K[5])!==null&&p!==void 0?p:"");else throw new Error(y);break}default:throw new Error(y)}}return[z,T]}function sE(m){for(var a=new Uint8Array(m.length),p=0;p127)return new TextEncoder().encode(m);a[p]=y}return a}function bs(m,a){var p=m[0]>>>16,y=m[0]&65535,M=m[1]>>>16,z=m[1]&65535,T=a[0]>>>16,s=a[0]&65535,B=a[1]>>>16,O=a[1]&65535,X=0,K=0,ne=0,H=0;H+=z+O,ne+=H>>>16,H&=65535,ne+=M+B,K+=ne>>>16,ne&=65535,K+=y+s,X+=K>>>16,K&=65535,X+=p+T,X&=65535,m[0]=X<<16|K,m[1]=ne<<16|H}function Ga(m,a){var p=m[0]>>>16,y=m[0]&65535,M=m[1]>>>16,z=m[1]&65535,T=a[0]>>>16,s=a[0]&65535,B=a[1]>>>16,O=a[1]&65535,X=0,K=0,ne=0,H=0;H+=z*O,ne+=H>>>16,H&=65535,ne+=M*O,K+=ne>>>16,ne&=65535,ne+=z*B,K+=ne>>>16,ne&=65535,K+=y*O,X+=K>>>16,K&=65535,K+=M*B,X+=K>>>16,K&=65535,K+=z*s,X+=K>>>16,K&=65535,X+=p*O+y*B+M*s+z*T,X&=65535,m[0]=X<<16|K,m[1]=ne<<16|H}function fc(m,a){var p=m[0];a%=64,a===32?(m[0]=m[1],m[1]=p):a<32?(m[0]=p<>>32-a,m[1]=m[1]<>>32-a):(a-=32,m[0]=m[1]<>>32-a,m[1]=p<>>32-a)}function Na(m,a){a%=64,a!==0&&(a<32?(m[0]=m[1]>>>32-a,m[1]=m[1]<>>1];ri(m,a),Ga(m,lE),a[1]=m[0]>>>1,ri(m,a),Ga(m,cE),a[1]=m[0]>>>1,ri(m,a)}var $d=[2277735313,289559509],Gd=[1291169091,658871167],dv=[0,5],uE=[0,1390208809],hE=[0,944331445];function dE(m,a){var p=sE(m);a=a||0;var y=[0,p.length],M=y[1]%16,z=y[1]-M,T=[0,a],s=[0,a],B=[0,0],O=[0,0],X;for(X=0;X>>0).toString(16)).slice(-8)+("00000000"+(T[1]>>>0).toString(16)).slice(-8)+("00000000"+(s[0]>>>0).toString(16)).slice(-8)+("00000000"+(s[1]>>>0).toString(16)).slice(-8)}function pE(m){var a;return Tm({name:m.name,message:m.message,stack:(a=m.stack)===null||a===void 0?void 0:a.split(` +`)},m)}function fE(m){return/^function\s.*?\{\s*\[native code]\s*}$/.test(String(m))}function mE(m){return typeof m!="function"}function _E(m,a){var p=$u(new Promise(function(y){var M=Date.now();cv(m.bind(null,a),function(){for(var z=[],T=0;T=4}function vE(){var m=window,a=navigator;return fa(["msWriteProfilerMark"in m,"MSStream"in m,"msLaunchUri"in a,"msSaveBlob"in a])>=3&&!D0()}function Dh(){var m=window,a=navigator;return fa(["webkitPersistentStorage"in a,"webkitTemporaryStorage"in a,(a.vendor||"").indexOf("Google")===0,"webkitResolveLocalFileSystemURL"in m,"BatteryManager"in m,"webkitMediaStream"in m,"webkitSpeechGrammar"in m])>=5}function ho(){var m=window,a=navigator;return fa(["ApplePayError"in m,"CSSPrimitiveValue"in m,"Counter"in m,a.vendor.indexOf("Apple")===0,"RGBColor"in m,"WebKitMediaKeys"in m])>=4}function Km(){var m=window,a=m.HTMLElement,p=m.Document;return fa(["safari"in m,!("ongestureend"in m),!("TouchEvent"in m),!("orientation"in m),a&&!("autocapitalize"in a.prototype),p&&"pointerLockElement"in p.prototype])>=4}function Rh(){var m=window;return fE(m.print)&&String(m.browser)==="[object WebPageNamespace]"}function R0(){var m,a,p=window;return fa(["buildID"in navigator,"MozAppearance"in((a=(m=document.documentElement)===null||m===void 0?void 0:m.style)!==null&&a!==void 0?a:{}),"onmozfullscreenchange"in p,"mozInnerScreenX"in p,"CSSMozDocumentRule"in p,"CanvasCaptureMediaStream"in p])>=4}function yE(){var m=window;return fa([!("MediaSettingsRange"in m),"RTCEncodedAudioFrame"in m,""+m.Intl=="[object Intl]",""+m.Reflect=="[object Reflect]"])>=3}function xE(){var m=window,a=m.URLPattern;return fa(["union"in Set.prototype,"Iterator"in m,a&&"hasRegExpGroups"in a.prototype,"RGB8"in WebGLRenderingContext.prototype])>=3}function bE(){var m=window;return fa(["DOMRectList"in m,"RTCPeerConnectionIceEvent"in m,"SVGGeometryElement"in m,"ontransitioncancel"in m])>=3}function Bh(){var m=window,a=navigator,p=m.CSS,y=m.HTMLButtonElement;return fa([!("getStorageUpdates"in a),y&&"popover"in y.prototype,"CSSCounterStyleRule"in m,p.supports("font-size-adjust: ex-height 0.5"),p.supports("text-transform: full-width")])>=4}function wE(){if(navigator.platform==="iPad")return!0;var m=screen,a=m.width/m.height;return fa(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,a>.65&&a<1.53])>=2}function TE(){var m=document;return m.fullscreenElement||m.msFullscreenElement||m.mozFullScreenElement||m.webkitFullscreenElement||null}function CE(){var m=document;return(m.exitFullscreen||m.msExitFullscreen||m.mozCancelFullScreen||m.webkitExitFullscreen).call(m)}function Jm(){var m=Dh(),a=R0(),p=window,y=navigator,M="connection";return m?fa([!("SharedWorker"in p),y[M]&&"ontypechange"in y[M],!("sinkId"in new Audio)])>=2:a?fa(["onorientationchange"in p,"orientation"in p,/android/i.test(y.appVersion)])>=2:!1}function SE(){var m=navigator,a=window,p=Audio.prototype,y=a.visualViewport;return fa(["srLatency"in p,"srChannelCount"in p,"devicePosture"in m,y&&"segments"in y,"getTextInformation"in Image.prototype])>=3}function PE(){return kE()?-4:IE()}function IE(){var m=window,a=m.OfflineAudioContext||m.webkitOfflineAudioContext;if(!a)return-2;if(ME())return-1;var p=4500,y=5e3,M=new a(1,y,44100),z=M.createOscillator();z.type="triangle",z.frequency.value=1e4;var T=M.createDynamicsCompressor();T.threshold.value=-50,T.knee.value=40,T.ratio.value=12,T.attack.value=0,T.release.value=.25,z.connect(T),T.connect(M.destination),z.start(0);var s=AE(M),B=s[0],O=s[1],X=$u(B.then(function(K){return EE(K.getChannelData(0).subarray(p))},function(K){if(K.name==="timeout"||K.name==="suspended")return-3;throw K}));return function(){return O(),X}}function ME(){return ho()&&!Km()&&!bE()}function kE(){return ho()&&Bh()&&Rh()||Dh()&&SE()&&xE()}function AE(m){var a=3,p=500,y=500,M=5e3,z=function(){},T=new Promise(function(s,B){var O=!1,X=0,K=0;m.oncomplete=function(pe){return s(pe.renderedBuffer)};var ne=function(){setTimeout(function(){return B(pv("timeout"))},Math.min(y,K+M-Date.now()))},H=function(){try{var pe=m.startRendering();switch(z0(pe)&&$u(pe),m.state){case"running":K=Date.now(),O&&ne();break;case"suspended":document.hidden||X++,O&&X>=a?B(pv("suspended")):setTimeout(H,p);break}}catch(ge){B(ge)}};H(),z=function(){O||(O=!0,K>0&&ne())}});return[T,z]}function EE(m){for(var a=0,p=0;p=0?"+":"").concat(y)}function lz(){var m=new Date().getFullYear();return Math.max(lo(new Date(m,0,1).getTimezoneOffset()),lo(new Date(m,6,1).getTimezoneOffset()))}function cz(){try{return!!window.sessionStorage}catch{return!0}}function uz(){try{return!!window.localStorage}catch{return!0}}function hz(){if(!(D0()||vE()))try{return!!window.indexedDB}catch{return!0}}function dz(){return!!window.openDatabase}function pz(){return navigator.cpuClass}function fz(){var m=navigator.platform;return m==="MacIntel"&&ho()&&!Km()?wE()?"iPad":"iPhone":m}function mz(){return navigator.vendor||""}function _z(){for(var m=[],a=0,p=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];aK.length*.6}),s.sort(),[2,s]}})})}function xz(){return ho()||Jm()}function bz(m){var a;return Po(this,void 0,void 0,function(){var p,y,M,z,B,T,s,B;return Io(this,function(O){switch(O.label){case 0:for(p=document,y=p.createElement("div"),M=new Array(m.length),z={},mv(y),B=0;B')}function Bz(){return navigator.pdfViewerEnabled}function Fz(){var m=new Float32Array(1),a=new Uint8Array(m.buffer);return m[0]=1/0,m[0]=m[0]-m[0],a[3]}function Oz(){var m=window.ApplePaySession;if(typeof(m==null?void 0:m.canMakePayments)!="function")return-1;if(Nz())return-3;try{return m.canMakePayments()?1:0}catch(a){return jz(a)}}var Nz=DE;function jz(m){if(m instanceof Error&&m.name==="InvalidAccessError"&&/\bfrom\b.*\binsecure\b/i.test(m.message))return-2;throw m}function Vz(){var m,a=document.createElement("a"),p=(m=a.attributionSourceId)!==null&&m!==void 0?m:a.attributionsourceid;return p===void 0?void 0:String(p)}var F0=-1,O0=-2,qz=new Set([10752,2849,2884,2885,2886,2928,2929,2930,2931,2932,2960,2961,2962,2963,2964,2965,2966,2967,2968,2978,3024,3042,3088,3089,3106,3107,32773,32777,32777,32823,32824,32936,32937,32938,32939,32968,32969,32970,32971,3317,33170,3333,3379,3386,33901,33902,34016,34024,34076,3408,3410,3411,3412,3413,3414,3415,34467,34816,34817,34818,34819,34877,34921,34930,35660,35661,35724,35738,35739,36003,36004,36005,36347,36348,36349,37440,37441,37443,7936,7937,7938]),Zz=new Set([34047,35723,36063,34852,34853,34854,34229,36392,36795,38449]),Uz=["FRAGMENT_SHADER","VERTEX_SHADER"],$z=["LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT"],N0="WEBGL_debug_renderer_info",Gz="WEBGL_polygon_mode";function Hz(m){var a,p,y,M,z,T,s=m.cache,B=j0(s);if(!B)return F0;if(!q0(B))return O0;var O=V0()?null:B.getExtension(N0);return{version:((a=B.getParameter(B.VERSION))===null||a===void 0?void 0:a.toString())||"",vendor:((p=B.getParameter(B.VENDOR))===null||p===void 0?void 0:p.toString())||"",vendorUnmasked:O?(y=B.getParameter(O.UNMASKED_VENDOR_WEBGL))===null||y===void 0?void 0:y.toString():"",renderer:((M=B.getParameter(B.RENDERER))===null||M===void 0?void 0:M.toString())||"",rendererUnmasked:O?(z=B.getParameter(O.UNMASKED_RENDERER_WEBGL))===null||z===void 0?void 0:z.toString():"",shadingLanguageVersion:((T=B.getParameter(B.SHADING_LANGUAGE_VERSION))===null||T===void 0?void 0:T.toString())||""}}function Wz(m){var a=m.cache,p=j0(a);if(!p)return F0;if(!q0(p))return O0;var y=p.getSupportedExtensions(),M=p.getContextAttributes(),z=[],T=[],s=[],B=[],O=[];if(M)for(var X=0,K=Object.keys(M);X + + `;const On={lat:Br.latitude,lng:Br.longitude};return yn.addEventListener("click",Vn=>{Vn.stopPropagation(),tr([Br.latitude,Br.longitude])}),new qd.Marker({element:yn,opacity:x(er)}).setLngLat(On).addTo(x(O))}))}});function tr(bt){var Br;const Xt={lat:bt[0],lng:bt[1]};(Br=x(O))==null||Br.flyTo({center:Xt,zoom:Math.max(x(X),15)}),Co(Xt,x(X)),se(pe,{name:"pixelSelected",latLon:[Xt.lat,Xt.lng]},!0)}Hr(()=>{if(x(pe).name==="paintingPixel")for(const bt of x(Ut))bt.addClassName("hidden");else for(const bt of x(Ut))bt.removeClassName("hidden"),bt.setOpacity(x(er))});let Nt=Number.MAX_VALUE;Hr(()=>{if(Mt.charges!==void 0&&Mt.data){const bt=Mt.data.charges.max,Xt=Mt.charges;Nt=bt&&aa.notification1.play(),Nt=Mt.charges}});let Ft=st(!1),sr=Date.now();Fn(()=>{const bt=h4(),Xt=()=>{var yn;if(!document.hidden&&Date.now()-sr>30*gc.min){if(bt){const Yn=(yn=x(O))==null?void 0:yn.getCenter();Yn&&Co(Yn,x(X)),window.location.replace(yi.url.origin)}else Mt.refresh();sr=Date.now()}};return document.addEventListener("visibilitychange",Xt),()=>document.removeEventListener("visibilitychange",Xt)}),Fn(()=>{function bt(){Qr.online=!0}window.addEventListener("online",bt);function Xt(){Qr.online=!1}return window.addEventListener("offline",Xt),()=>{window.removeEventListener("online",bt),window.removeEventListener("offline",Xt)}}),Hr(()=>{if(!Qr.online){const bt=setInterval(()=>{Qr.health().then(()=>{Qr.online=!0,!Mt.data&&!Mt.loading&&Mt.refresh()})},5e3);return()=>{clearInterval(bt)}}}),Fn(()=>{function bt(Xt){Xt.data.type&&x(O)&&Fe(x(O))}return navigator.serviceWorker.addEventListener("message",bt),()=>{navigator.serviceWorker.removeEventListener("message",bt)}});let lr=st(!1),Vr=st("report-user"),mr=st(void 0),hr=st(void 0),_r=st(void 0),Ir=st(0);var qr=_B();nx(bt=>{var Xt=A9();rx.title="Wplace - Paint the world",vn(6),$(bt,Xt)});var le=Ct(qr);{const bt=ar=>{var $t=z9();$t.__click=[E9,et];var Ur=A($t);{let or=pt(()=>!x(et));G0(Ur,{class:"size-5",get filled(){return x(or)}})}k($t),We(or=>{wr($t,"title",or),zr($t,1,Yo({"btn btn-lg btn-square sm:btn-xl z-30 shadow-md":!0,"text-base-content/80":x(et),"btn-primary btn-soft":!x(et)}))},[()=>$v()]),$(ar,$t)},Xt=ar=>{var $t=R9();$t.__click=[L9,Ue,X,O];var Ur=A($t);{var or=nn=>{x9(nn,{class:"size-5.5 fill-blue-800"})},Tn=nn=>{var Cn=D9(),Gn=A(Cn);v9(Gn,{class:"size-5.5 fill-red-400"}),vn(2),k(Cn),$(nn,Cn)};Ne(Ur,nn=>{x(Ue)?nn(or):nn(Tn,!1)})}k($t),We(nn=>wr($t,"title",nn),[()=>Lb()]),$(ar,$t)};var j=V(A(le),2);let Br;var Z=A(j);let yn;var Y=A(Z);{var ae=ar=>{var $t=F9();$t.__click=[B9,Ae,O,X];var Ur=A($t,!0);k($t),We(or=>de(Ur,or),[()=>Jx()]),$(ar,$t)},fe=ar=>{var $t=Qt(),Ur=Ct($t);{var or=Tn=>{var nn=N9(),Cn=A(nn);{var Gn=Mn=>{var bn=O9(),ln=A(bn);{var Sn=gn=>{var fn=wi("MOD");$(gn,fn)},kn=gn=>{var fn=Qt(),an=Ct(fn);{var po=Hn=>{var jn=wi("GM");$(Hn,jn)},fi=Hn=>{var jn=wi("ADMIN");$(Hn,jn)};Ne(an,Hn=>{var jn;((jn=Mt.data)==null?void 0:jn.role)==="global_moderator"?Hn(po):Hn(fi,!1)},!0)}$(gn,fn)};Ne(ln,gn=>{var fn;((fn=Mt.data)==null?void 0:fn.role)==="moderator"?gn(Sn):gn(kn,!1)})}k(bn),We(()=>{var gn;return wr(bn,"href",((gn=Mt.data)==null?void 0:gn.role)==="admin"?`${yi.url.origin}/admin/dashboard`:`${yi.url.origin}/moderation`)}),$(Mn,bn)};Ne(Cn,Mn=>{var bn;xc((bn=Mt.data)==null?void 0:bn.role,["admin","moderator","global_moderator"])&&Mn(Gn)})}var Mr=V(Cn,2);xR(Mr,{get user(){return Mt},onlogout:()=>{se(pe,{name:"mainMenu"},!0)}}),k(nn),Ai(3,nn,()=>ia,()=>({duration:150})),$(Tn,nn)};Ne(Ur,Tn=>{Mt.data&&x(O)&&x(pe).name!=="paintingPixel"&&Tn(or)},!0)}$(ar,$t)};Ne(Y,ar=>{!Mt.loading&&!Mt.data?ar(ae):ar(fe,!1)})}var Se=V(Y,2);{var ke=ar=>{var $t=G9(),Ur=A($t);{var or=Mr=>{jf(Mr,{key:"shop-profile-picture",children:(Mn,bn)=>{var ln=V9();ln.__click=[j9,je,O,X];var Sn=A(ln);Y0(Sn,{class:"size-5"}),k(ln),We(kn=>wr(ln,"title",kn),[()=>Zv()]),$(Mn,ln)},$$slots:{default:!0}})};Ne(Ur,Mr=>{Mt.data&&Mr(or)})}var Tn=V(Ur,2);{var nn=Mr=>{var Mn=Z9();Mn.__click=[q9,Pt];var bn=A(Mn);xp(bn,{class:"size-5"}),k(Mn),We(ln=>wr(Mn,"title",ln),[()=>_p()]),$(Mr,Mn)};Ne(Tn,Mr=>{Mt.data&&Mr(nn)})}var Cn=V(Tn,2);IR(Cn,{get map(){return x(O)},get season(){return s}});var Gn=V(Cn,2);jf(Gn,{key:"region-leaderboard",children:(Mr,Mn)=>{var bn=$9();bn.__click=[U9,ft];var ln=A(bn);I0(ln,{class:"size-5"}),k(bn),We(Sn=>wr(bn,"title",Sn),[()=>Bm()]),$(Mr,bn)},$$slots:{default:!0}}),k($t),Ai(3,$t,()=>ia,()=>({duration:150})),$(ar,$t)},we=ar=>{var $t=Qt(),Ur=Ct($t);{var or=Tn=>{var nn=W9(),Cn=A(nn);let Gn;Cn.__click=[H9,K];var Mr=A(Cn);{var Mn=ln=>{Pm(ln,{class:"size-5"})},bn=ln=>{np(ln,{class:"size-5"})};Ne(Mr,ln=>{x(K)?ln(Mn):ln(bn,!1)})}k(Cn),k(nn),We((ln,Sn)=>{wr(Cn,"title",ln),Gn=zr(Cn,1,"btn btn-square not-touchscreen:hidden shadow-md",null,Gn,Sn)},[()=>x(K)?sb():ub(),()=>({"btn-primary":x(K)})]),Ai(1,nn,()=>ia,()=>({delay:150,duration:150})),$(Tn,nn)};Ne(Ur,Tn=>{x(O)&&x(pe).name==="paintingPixel"&&Tn(or)},!0)}$(ar,$t)};Ne(Se,ar=>{x(O)&&x(pe).name!=="paintingPixel"?ar(ke):ar(we,!1)})}k(Z),k(j);var Oe=V(j,2);{var lt=ar=>{var $t=X9(),Ur=A($t);{let or=pt(()=>_x.trim());Vx(Ur,{get siteKey(){return x(or)},refreshExpired:"auto",appearance:"interaction-only",callback:Tn=>{ai.captcha={token:Tn,time:Date.now()}}})}k($t),Ai(2,$t,()=>ia,()=>({duration:300})),$(ar,$t)};Ne(Oe,ar=>{mx&&(!ai.captcha||ai.now-ai.captcha.time>180*1e3)&&ar(lt)})}var Ye=V(Oe,2);let On;var kt=A(Ye);{var xe=ar=>{jf(ar,{key:"info",children:($t,Ur)=>{var or=K9();or.__click=[Y9,ut];var Tn=A(or);_9(Tn,{class:"size-3.5"}),k(or),We(nn=>wr(or,"title",nn),[()=>pb()]),$($t,or)},$$slots:{default:!0}})};Ne(kt,ar=>{x(pe).name!=="paintingPixel"&&ar(xe)})}var Ot=V(kt,2),cr=A(Ot);cr.__click=[J9,O];var Jt=V(cr,2);Jt.__click=[Q9,O],k(Ot);var Pr=V(Ot,2),Xr=A(Pr),dn=A(Xr);Vv(dn,{class:"size-4"}),k(Xr),k(Pr);var xn=V(Pr,2);{var mn=ar=>{var $t=tB();$t.__click=[eB,pe];var Ur=A($t);Gu(Ur,{class:"size-4"}),k($t),$(ar,$t)};Ne(xn,ar=>{var $t,Ur;x(pe).name!=="paintingPixel"&&((($t=Mt.data)==null?void 0:$t.role)==="admin"||((Ur=Mt.data)==null?void 0:Ur.role)==="global_moderator")&&ar(mn)})}var Vt=V(xn,2);{var zt=ar=>{var $t=rB(),Ur=A($t);P9(Ur,{class:"size-4",onclick:()=>{se(H,!x(H))}}),k($t),We(or=>wr($t,"title",or),[()=>aw()]),$(ar,$t)};Ne(Vt,ar=>{x(ne)&&ar(zt)})}var dr=V(Vt,2);{var ht=ar=>{var $t=iB();$t.__click=[nB];var Ur=A($t);Zx(Ur,{class:"size-3"}),k($t),We(or=>wr($t,"title",or),[()=>$x()]),$(ar,$t)};Ne(dr,ar=>{x(pe).name!=="paintingPixel"&&ar(ht)})}var Wr=V(dr,2);{var Yr=ar=>{var $t=oB();$t.__click=[aB,O];var Ur=A($t);C9(Ur,{class:"size-3"}),k($t),We((or,Tn)=>{wr($t,"title",or),$t.disabled=Tn},[()=>wb(),()=>!hl.hasPrev()]),Ai(1,$t,()=>ia,()=>({delay:1e3,duration:300})),Ai(2,$t,()=>ia,()=>({duration:300})),$(ar,$t)};Ne(Wr,ar=>{hl.hasPrev()&&x(pe).name!=="paintingPixel"&&ar(Yr)})}k(Ye);var Zr=V(Ye,2);let Yn;var mt=A(Zr);{var He=ar=>{var $t=sB(),Ur=A($t);Ux(Ur,{class:"size-5"});var or=V(Ur);k($t),We(Tn=>de(or,` ${Tn??""}`),[()=>Sb()]),Ai(1,$t,()=>ia,()=>({duration:1e3})),Ai(2,$t,()=>ia),$(ar,$t)};Ne(mt,ar=>{Qr.online||ar(He)})}var At=V(mt,2);{var Bt=ar=>{var $t=cB();$t.__click=[lB,O,p];var Ur=A($t);w9(Ur,{class:"size-5"});var or=V(Ur);k($t),We(Tn=>de(or,` ${Tn??""}`),[()=>Mb()]),Ai(3,$t,()=>ia,()=>({duration:300})),$(ar,$t)};Ne(At,ar=>{x(X){k0(ar,{class:"z-30",onclick:()=>{var $t;($t=Mt.data)!=null&&$t.needsPhoneVerification?(se(Rt,!0),Fr.warning(Yg())):Mt.charges!==void 0&&Mt.charges<1?Fr.warning(k8,{icon:Xf}):x(O)&&Mt.data?(aa.smallDropplet.play(),se(pe,{name:"paintingPixel"},!0)):(se(Ae,!0),x(O)&&Co(x(O).getCenter(),x(X)))},get disabled(){return Mt.loading},get loading(){return Mt.loading},get charges(){return Mt.charges}})},pn=ar=>{var $t=uB();$(ar,$t)};Ne(ur,ar=>{x(pe).name==="mainMenu"?ar(rn):ar(pn,!1)})}k(Er);var _n=V(Er,2);let Ji;var sn=A(_n);Xt(sn),k(_n);var En=V(_n,2);{var pr=ar=>{var $t=Qt(),Ur=Ct($t);{var or=nn=>{var Cn=hB(),Gn=A(Cn),Mr=A(Gn);y7(Mr,{get latLon(){return x(pe).latLon},get map(){return x(O)},get crosshair(){return x(he)},get pixelInfoCache(){return B},get season(){return s},get tileSize(){return y},get pixelArtZoom(){return p},get zoom(){return x(X)},get opaquePixelArt(){return x(et)},onclose:()=>se(pe,{name:"mainMenu"},!0),onclickshare:Mn=>{se(xt,Mn,!0),se(vt,!0)},onclickpaint:([Mn,bn])=>{var Sn,kn,gn;if(!Mt.data){se(Ae,!0);return}if((Sn=Mt.data)!=null&&Sn.needsPhoneVerification){se(Rt,!0),Fr.warning(Yg());return}if(Mt.charges!==void 0&&Mt.charges<1){Fr.warning(Bb());return}const ln=qm(M.latLonToPixelBoundsLatLon(Mn,bn,p));(kn=x(O))==null||kn.flyTo({center:{lat:ln[0],lon:ln[1]}}),se(pe,{name:"paintingPixel",clickedLatLon:[Mn,bn]},!0),(gn=x(he))==null||gn.clear()},onclickregion:Mn=>{se(It,Mn,!0),se(Dt,!0)},onclickmodaction:(Mn,bn,ln,Sn)=>{var gn,fn,an;(gn=x(O))==null||gn.setZoom(Math.max(x(X),p+3.5));const kn=M.latLonToPixelBoundsLatLon(ln[0],ln[1],p);(fn=x(O))==null||fn.setCenter({lat:kn.min[0],lng:(kn.max[1]+kn.min[1])/2}),se(mr,bn,!0),se(hr,Mn,!0),se(_r,ln,!0),se(Ir,((an=x(O))==null?void 0:an.getZoom())??0,!0),se(Vr,Sn,!0),se(lr,!0)}}),k(Gn),k(Cn),Ai(3,Gn,()=>Hd,()=>({duration:100})),$(nn,Cn)},Tn=nn=>{var Cn=Qt(),Gn=Ct(Cn);{var Mr=bn=>{var ln=dB(),Sn=A(ln),kn=A(Sn);UL(kn,{get map(){return x(O)},get clickedLatLon(){return x(pe).clickedLatLon},get tileSize(){return y},get tileZoom(){return p},get season(){return s},get zoom(){return x(X)},get crosshair(){return x(oe)},refreshPixelArt:()=>x(O)&&Fe(x(O)),hidePixelHover:Le,hoverLayerId:$e,onclose:()=>{se(pe,{name:"mainMenu"},!0),Le()},get screenLocked(){return x(K)},set screenLocked(gn){se(K,gn,!0)},get opaquePixelArt(){return x(et)},set opaquePixelArt(gn){se(et,gn,!0)}}),k(Sn),k(ln),Ai(3,Sn,()=>Hd,()=>({duration:100})),$(bn,ln)},Mn=bn=>{var ln=Qt(),Sn=Ct(ln);{var kn=fn=>{var an=pB(),po=A(an);A7(po,{get map(){return x(O)},get tileSize(){return y},get pixelArtZoom(){return Lf},get season(){return s},get crosshair(){return x(oe)},onclose:()=>{se(pe,{name:"mainMenu"},!0),Le()}}),k(an),$(fn,an)},gn=fn=>{var an=Qt(),po=Ct(an);{var fi=Hn=>{var jn=mB(),zn=A(jn),qa=A(zn),Rr=A(qa),$r=A(Rr),_a=A($r);H0(_a,{class:"inline size-4"});var cn=V(_a);k($r);var Li=V($r,2);Li.__click=[fB,pe];var ga=A(Li);_l(ga,{class:"size-4"}),k(Li),k(Rr);var sa=V(Rr,2),Ja=A(sa);Ja.__click=async()=>{var Ca;if(x(pe).name==="selectHq"){const Qa=x(pe).hq;if(Qa)try{se(Ft,!0),await Qr.updateAllianceHeadquarters(Qa[0],Qa[1]),(Ca=x(he))==null||Ca.clear(),se(Pt,!0),se(pe,{name:"mainMenu"},!0)}catch(Jo){Fr.error(Jo.message)}finally{se(Ft,!1)}}};var Ms=A(Ja);f9(Ms,{class:"size-6"}),k(Ja),k(sa),k(qa),k(zn),k(jn),We(Ca=>{de(cn,` ${Ca??""}`),Ja.disabled=x(pe).hq===void 0||x(Ft)},[()=>VC()]),Ai(3,zn,()=>Hd,()=>({duration:100})),$(Hn,jn)};Ne(po,Hn=>{x(pe).name==="selectHq"&&Hn(fi)},!0)}$(fn,an)};Ne(Sn,fn=>{x(pe).name==="getPixelAreaInfo"?fn(kn):fn(gn,!1)},!0)}$(bn,ln)};Ne(Gn,bn=>{x(pe).name==="paintingPixel"&&x(oe)?bn(Mr):bn(Mn,!1)},!0)}$(nn,Cn)};Ne(Ur,nn=>{x(pe).name==="pixelSelected"&&x(he)?nn(or):nn(Tn,!1)})}$(ar,$t)};Ne(En,ar=>{x(O)&&ar(pr)})}k(le),We((ar,$t,Ur,or,Tn,nn,Cn,Gn,Mr)=>{Br=zr(j,1,"absolute right-2 top-2 z-30",null,Br,ar),yn=zr(Z,1,"flex flex-col gap-4",null,yn,$t),On=zr(Ye,1,"absolute left-2 top-2 z-30 flex flex-col gap-3",null,On,Ur),wr(cr,"title",or),wr(Jt,"title",Tn),Yn=zr(Zr,1,"absolute left-1/2 top-2 z-30 flex -translate-x-1/2 flex-col items-center justify-center gap-2",null,Yn,nn),Vn=zr(Kt,1,"absolute bottom-3 left-3 z-30",null,Vn,Cn),wn=zr(Er,1,"absolute bottom-3 left-1/2 z-30 -translate-x-1/2",null,wn,Gn),Ji=zr(_n,1,"absolute bottom-3 right-3 z-30",null,Ji,Mr)},[()=>({hidden:x(H)}),()=>({"items-end":!Mt.data,"items-center":Mt.data}),()=>({hidden:x(H)}),()=>_b(),()=>yb(),()=>({hidden:x(H)}),()=>({hidden:x(H)}),()=>({hidden:x(H)}),()=>({hidden:x(H)})])}var In=V(le,2);C8(In,{get open(){return x(Ae)},set open(bt){se(Ae,bt,!0)}});var tn=V(In,2);d9(tn,{get open(){return x(je)},set open(bt){se(je,bt,!0)}});var en=V(tn,2);d6(en,{get open(){return x(it)},set open(bt){se(it,bt,!0)}});var ma=V(en,2);A6(ma,{get open(){return x(ut)},set open(bt){se(ut,bt,!0)}});var pi=V(ma,2);c6(pi,{get open(){return x(wt)},set open(bt){se(wt,bt,!0)}});var Xi=V(pi,2);b8(Xi,{onvisitclick:bt=>{var Xt;(Xt=x(O))==null||Xt.flyTo({center:bt,zoom:Lf+1}),Co(bt,x(X)),hl.push({pos:bt,zoom:x(X)}),se(ft,!1)},get open(){return x(ft)},set open(bt){se(ft,bt,!0)}});var Zn=V(Xi,2);VR(Zn,{get region(){return x(It)},get open(){return x(Dt)},set open(bt){se(Dt,bt,!0)}});var ni=V(Zn,2);Ox(ni,{get open(){return ai.dropletsDialogOpen},set open(bt){ai.dropletsDialogOpen=bt}});var Zi=V(ni,2);{var Yi=bt=>{UM(bt,{onhqchange:()=>{se(pe,{name:"selectHq"},!0),se(Pt,!1)},onhqclick:Xt=>{var Br;(Br=x(O))==null||Br.flyTo({center:Xt,zoom:Math.max(x(X),15)}),se(pe,{name:"pixelSelected",latLon:[Xt.lat,Xt.lng]},!0),se(Pt,!1)},onlastpixelclick:Xt=>{var Br;(Br=x(O))==null||Br.flyTo({center:Xt,zoom:Math.max(x(X),15)}),se(pe,{name:"pixelSelected",latLon:[Xt.lat,Xt.lng]},!0),se(Pt,!1)},get open(){return x(Pt)},set open(Xt){se(Pt,Xt,!0)}})};Ne(Zi,bt=>{x(O)&&bt(Yi)})}var Ei=V(Zi,2);uD(Ei,{get open(){return x(Rt)},set open(bt){se(Rt,bt,!0)}});var zi=V(Ei,2);{var Ki=bt=>{r6(bt,{get url(){return x(xt)},get map(){return x(O)},hideHover:()=>{var Xt,Br;(Xt=x(O))==null||Xt.setPaintProperty($e,"raster-opacity",0),(Br=x(he))==null||Br.setCanvasOpacity(0)},showHover:()=>{var Xt,Br;(Xt=x(O))==null||Xt.setPaintProperty($e,"raster-opacity",Ze),(Br=x(he))==null||Br.setCanvasOpacity(1)},get open(){return x(vt)},set open(Xt){se(vt,Xt,!0)}})};Ne(zi,bt=>{x(O)&&bt(Ki)})}var oa=V(zi,2);{var Ta=bt=>{Px(bt,{get image(){return x(mr)},get paintedBy(){return x(hr).paintedBy},get latLon(){return x(_r)},get zoom(){return x(Ir)},get action(){return x(Vr)},get open(){return x(lr)},set open(Xt){se(lr,Xt,!0)}})};Ne(oa,bt=>{x(hr)&&x(mr)&&x(_r)&&bt(Ta)})}$(m,qr),Dr()}$n(["click"]);export{iF as component}; diff --git a/frontend-backup/_app/immutable/nodes/4.DLrwqUeR.js b/frontend-backup/_app/immutable/nodes/4.DLrwqUeR.js deleted file mode 100644 index a7abea8..0000000 --- a/frontend-backup/_app/immutable/nodes/4.DLrwqUeR.js +++ /dev/null @@ -1,782 +0,0 @@ -var U1=Object.defineProperty;var Ug=m=>{throw TypeError(m)};var $1=(m,o,f)=>o in m?U1(m,o,{enumerable:!0,configurable:!0,writable:!0,value:f}):m[o]=f;var gr=(m,o,f)=>$1(m,typeof o!="symbol"?o+"":o,f),Ef=(m,o,f)=>o.has(m)||Ug("Cannot "+f);var it=(m,o,f)=>(Ef(m,o,"read from private field"),f?f.call(m):o.get(m)),Mr=(m,o,f)=>o.has(m)?Ug("Cannot add the same private member more than once"):o instanceof WeakSet?o.add(m):o.set(m,f),na=(m,o,f,y)=>(Ef(m,o,"write to private field"),y?y.call(m,f):o.set(m,f),f),Vr=(m,o,f)=>(Ef(m,o,"access private method"),f);import"../chunks/B2cHk4HI.js";import{o as Dn,s as oi}from"../chunks/4WsUhDWi.js";import{a3 as G1,b8 as H1,bp as W1,ba as X1,bq as Y1,b3 as K1,br as J1,au as ct,g as x,aw as ce,av as xi,at as Qn,p as Br,f as Te,d as E,r as k,s as q,u as ft,n as vn,t as Ye,ax as Ai,b as G,c as Fr,y as Wr,v as Cr,bn as Nu,x as Pm,z as ul,ay as er,a as Ct,b4 as bi,aI as Q1,aH as $g,aJ as ex,aL as Iv,bs as co,az as pa,bt as Mv,$ as tx}from"../chunks/BDALf20I.js";import{s as fe}from"../chunks/4k6DpCgf.js";import{p as Lt,i as je,r as ir,s as Ps,u as kv}from"../chunks/Bke_korE.js";import{h as rx}from"../chunks/BUhRjcOt.js";import{r as uo,f as Wi,a as zr,g as Av,b as ar,s as xr,e as kc,h as Ou,c as Ko}from"../chunks/BNZUboE0.js";import{a as sl,k as ju,t as ki}from"../chunks/BCONGQnO.js";import{g as Im,b as nx}from"../chunks/B4HM4TqG.js";import{p as vi}from"../chunks/C-Y7nmnD.js";import{S as Hi,a as en,t as Nr,u as kt,v as So,g as ai,w as ix,x as ax,P as ox,y as sx,z as lx,j as cx,A as ux,C as Gg,B as zf,D as hx,E as dx,d as px,F as fx}from"../chunks/DffDvEhl.js";import{c as Ev,A as aa,a as Gf,g as Lf,p as mx,b as _x}from"../chunks/BvbG2Lay.js";import{h as Mm}from"../chunks/DV6L2nvf.js";import{b as Po}from"../chunks/BrZ10JY-.js";import{L as gx}from"../chunks/CAQlJ3np.js";import{g as Ve,l as vx}from"../chunks/DklPLC_x.js";import{c as up}from"../chunks/CDZgL_Bh.js";import{d as yx,L as km,p as Am}from"../chunks/sZ1mzRzK.js";import{c as Hf,D as zv,p as xx,r as bx,t as wx,b as Tx,R as Cx}from"../chunks/fZ59cmjx.js";import{e as hi,i as hp}from"../chunks/CZW2bcQi.js";import{c as Em,b as zm,a as Sx}from"../chunks/DS58drb5.js";import{P as lo,t as Lv}from"../chunks/DCxPsWiR.js";import{l as Px,p as Lm,m as Dv,v as Ix,s as Mx}from"../chunks/DhR_xAc4.js";import{g as Oi,a as dp,c as kx,b as Ax}from"../chunks/ClOhzjRc.js";import{f as ll,t as Ex}from"../chunks/DS5O-Inb.js";import{A as zx}from"../chunks/CVCd3urP.js";import{A as Rv,d as cl,f as Bv,D as Fv,a as pp,r as Lx,I as Hg,e as Dx,c as Rx,P as Ov,b as Bx}from"../chunks/C2Ms0SfR.js";import{f as ia,s as Gd}from"../chunks/DnhglgUZ.js";import{C as Dm,G as Wg,c as Fx,T as Wf}from"../chunks/ZzI7cLBE.js";import"../chunks/cUtKXcx3.js";import{i as Nv}from"../chunks/BuTItAOu.js";import{L as jv}from"../chunks/CYItkO2S.js";import{c as yi}from"../chunks/ChY_8ULT.js";import{L as Ox,T as Vv,a as Nx}from"../chunks/BHr_eBwR.js";import{_ as jx}from"../chunks/x1RL6Wqy.js";import{c as Vx}from"../chunks/EXYzlOI1.js";import{R as qx}from"../chunks/rLj4C5Bn.js";import{W as Zx}from"../chunks/BtAj0icR.js";import{r as Ux}from"../chunks/Drv8f_fG.js";(function(){try{var m=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};m.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var m=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new m.Error().stack;o&&(m._sentryDebugIds=m._sentryDebugIds||{},m._sentryDebugIds[o]="6fef6fdc-a71e-45b5-84b2-c8bbb8d8e209",m._sentryDebugIdIdentifier="sentry-dbid-6fef6fdc-a71e-45b5-84b2-c8bbb8d8e209")})()}catch{}const $x=[];function Gx(m,o=!1,f=!1){return Hd(m,new Map,"",$x,null,f)}function Hd(m,o,f,y,M=null,z=!1){if(typeof m=="object"&&m!==null){var T=o.get(m);if(T!==void 0)return T;if(m instanceof Map)return new Map(m);if(m instanceof Set)return new Set(m);if(G1(m)){var s=Array(m.length);o.set(m,s),M!==null&&o.set(M,s);for(var B=0;BK1(()=>o(window[m])))}const Wx=J1,Xx=()=>"Log in",Yx=()=>"Entrar",Kx=(m={},o={})=>(o.locale??Ve())==="en"?Xx():Yx(),Jx=()=>"Store",Qx=()=>"Loja",qv=(m={},o={})=>(o.locale??Ve())==="en"?Jx():Qx(),eb=()=>"Alliance",tb=()=>"Aliança",mp=(m={},o={})=>(o.locale??Ve())==="en"?eb():tb(),rb=()=>"Leaderboard",nb=()=>"Ranking",Rm=(m={},o={})=>(o.locale??Ve())==="en"?rb():nb(),ib=()=>"Unlock",ab=()=>"Destravar",ob=(m={},o={})=>(o.locale??Ve())==="en"?ib():ab(),sb=()=>"Lock",lb=()=>"Travar",cb=(m={},o={})=>(o.locale??Ve())==="en"?sb():lb(),ub=()=>"Info",hb=()=>"Informações",db=(m={},o={})=>(o.locale??Ve())==="en"?ub():hb(),pb=()=>"Zoom in",fb=()=>"Aumentar zoom",mb=(m={},o={})=>(o.locale??Ve())==="en"?pb():fb(),_b=()=>"Zoom out",gb=()=>"Diminuir zoom",vb=(m={},o={})=>(o.locale??Ve())==="en"?_b():gb(),yb=()=>"Previous location",xb=()=>"Localização anterior",bb=(m={},o={})=>(o.locale??Ve())==="en"?yb():xb(),wb=()=>"Offline",Tb=()=>"Offline",Cb=(m={},o={})=>(o.locale??Ve())==="en"?wb():Tb(),Sb=()=>"Zoom in to see the pixels",Pb=()=>"Amplie para ver os pixels",Ib=(m={},o={})=>(o.locale??Ve())==="en"?Sb():Pb(),Mb=()=>"Phone verification required",kb=()=>"Verificação de telefone necessária",Xg=(m={},o={})=>(o.locale??Ve())==="en"?Mb():kb(),Ab=()=>"My location",Eb=()=>"Minha localização",zb=(m={},o={})=>(o.locale??Ve())==="en"?Ab():Eb(),Lb=()=>"You don't have charges to paint. Wait to recharge.",Db=()=>"Você não possui tinta para pintar. Aguarde para carrega-las.",Rb=(m={},o={})=>(o.locale??Ve())==="en"?Lb():Db(),Bb=()=>"Map powered by:",Fb=()=>"Mapa fornecido por:",Ob=(m={},o={})=>(o.locale??Ve())==="en"?Bb():Fb(),Nb=()=>"OpenMapTiles Data from",jb=()=>"OpenMapTiles com dados do",Vb=(m={},o={})=>(o.locale??Ve())==="en"?Nb():jb(),qb=()=>"Feedback and bugs",Zb=()=>"Feedback e bugs",Ub=(m={},o={})=>(o.locale??Ve())==="en"?qb():Zb(),$b=()=>"Overview",Gb=()=>"Visão Geral",Hb=(m={},o={})=>(o.locale??Ve())==="en"?$b():Gb(),Wb=()=>"How to paint faster",Xb=()=>"Como pintar mais rápido",Yb=(m={},o={})=>(o.locale??Ve())==="en"?Wb():Xb(),Kb=()=>"When painting, click on the button",Jb=()=>"Quando pintar clique no botão",Qb=(m={},o={})=>(o.locale??Ve())==="en"?Kb():Jb(),e2=()=>"on the top right corner of the screen. This will lock the screen but it'll also enable painting by moving your finger over the map.",t2=()=>"no canto superior direito da tela. Isso bloqueará a tela, mas também permitirá pintar movendo o dedo sobre o mapa.",r2=(m={},o={})=>(o.locale??Ve())==="en"?e2():t2(),n2=()=>"Hold",i2=()=>"Segure",a2=(m={},o={})=>(o.locale??Ve())==="en"?n2():i2(),o2=()=>"SPACE",s2=()=>"Espaço",l2=(m={},o={})=>(o.locale??Ve())==="en"?o2():s2(),c2=()=>"and move your cursor over the map.",u2=()=>"e mova seu cursor sobre o mapa.",h2=(m={},o={})=>(o.locale??Ve())==="en"?c2():u2(),d2=()=>"Explore",p2=()=>"Explorar",f2=(m={},o={})=>(o.locale??Ve())==="en"?d2():p2(),m2=()=>"Recharge paint charges",_2=()=>"Recarga de tinta",g2=(m={},o={})=>(o.locale??Ve())==="en"?m2():_2(),v2=()=>"Items",y2=()=>"Itens",x2=(m={},o={})=>(o.locale??Ve())==="en"?v2():y2(),b2=()=>"Get more charges",w2=()=>"Recarregue tinta para pintar",T2=(m={},o={})=>(o.locale??Ve())==="en"?b2():w2(),C2=m=>`+${m.amount} Max. Charges`,S2=m=>`+${m.amount} Tinta máxima`,P2=(m,o={})=>(o.locale??Ve())==="en"?C2(m):S2(m),I2=()=>"Increase your maximum paint charges capacity",M2=()=>"Aumente sua capacidade máxima de tinta",k2=(m={},o={})=>(o.locale??Ve())==="en"?I2():M2(),A2=()=>"Profile picture",E2=()=>"Imagem de perfil",z2=(m={},o={})=>(o.locale??Ve())==="en"?A2():E2(),L2=()=>"Add a new 16x16 profile picture",D2=()=>"Adicionar uma nova imagem de perfil 16x16",R2=(m={},o={})=>(o.locale??Ve())==="en"?L2():D2(),B2=()=>"Not enough droplets",F2=()=>"Droplets insuficientes",_p=(m={},o={})=>(o.locale??Ve())==="en"?B2():F2(),O2=()=>"Show profile",N2=()=>"Exibir perfil",j2=(m={},o={})=>(o.locale??Ve())==="en"?O2():N2(),V2=()=>"Menu",q2=()=>"Menu",Z2=(m={},o={})=>(o.locale??Ve())==="en"?V2():q2(),U2=m=>`Could not install the app: ${m.error}`,$2=m=>`Não pode instalar o app: ${m.error}`,G2=(m,o={})=>(o.locale??Ve())==="en"?U2(m):$2(m),H2=()=>"Install App",W2=()=>"Instalar App",X2=(m={},o={})=>(o.locale??Ve())==="en"?H2():W2(),Y2=()=>"Livestreams",K2=()=>"Livestreams",J2=(m={},o={})=>(o.locale??Ve())==="en"?Y2():K2(),Q2=()=>"Log Out",ew=()=>"Log Out",tw=(m={},o={})=>(o.locale??Ve())==="en"?Q2():ew(),rw=()=>"Hide UI",nw=()=>"Esconder UI",iw=(m={},o={})=>(o.locale??Ve())==="en"?rw():nw(),aw=()=>"Change picture:",ow=()=>"Change picture:",sw=(m={},o={})=>(o.locale??Ve())==="en"?aw():ow(),lw=()=>"Show last painted pixel on alliance",cw=()=>"Mostrar último pixel pintado na aliança",uw=(m={},o={})=>(o.locale??Ve())==="en"?lw():cw(),hw=()=>"Delete Account",dw=()=>"Deletar Conta",Yg=(m={},o={})=>(o.locale??Ve())==="en"?hw():dw(),pw=()=>"Are you absolutely sure?",fw=()=>"Você tem certeza absoluta?",mw=(m={},o={})=>(o.locale??Ve())==="en"?pw():fw(),_w=()=>"This will permanently delete your account and all associated data. This action cannot be undone.",gw=()=>"Isso excluirá permanentemente sua conta e todos os dados associados. Esta ação não pode ser desfeita.",vw=(m={},o={})=>(o.locale??Ve())==="en"?_w():gw(),yw=()=>"Profile",xw=()=>"Perfil",bw=(m={},o={})=>(o.locale??Ve())==="en"?yw():xw(),ww=()=>"Display your country’s flag next to your username. Plus, when painting in regions where you own the corresponding flag, you recover 10% of the charges spent.",Tw=()=>"Exiba a bandeira do seu país ao lado do seu nome de usuário. Além disso, ao pintar em regiões onde você possui a bandeira correspondente, você recupera 10% das tintas gastas.",Cw=(m={},o={})=>(o.locale??Ve())==="en"?ww():Tw(),Sw=()=>"Does not need to be equipped to provide the bonus",Pw=()=>"Não precisa estar equipada para obter o bônus",Iw=(m={},o={})=>(o.locale??Ve())==="en"?Sw():Pw(),Mw=()=>"Equipped",kw=()=>"Equipado",Aw=(m={},o={})=>(o.locale??Ve())==="en"?Mw():kw(),Ew=()=>"Equip",zw=()=>"Equipar",Lw=(m={},o={})=>(o.locale??Ve())==="en"?Ew():zw(),Dw=()=>"Country",Rw=()=>"País",Zv=(m={},o={})=>(o.locale??Ve())==="en"?Dw():Rw(),Bw=()=>"No country found.",Fw=()=>"País não encontrado.",Ow=(m={},o={})=>(o.locale??Ve())==="en"?Bw():Fw(),Nw=()=>"Welcome to",jw=()=>"Bem vindo ao",Vw=(m={},o={})=>(o.locale??Ve())==="en"?Nw():jw(),qw=()=>"Rules",Zw=()=>"Regras",Uw=(m={},o={})=>(o.locale??Ve())==="en"?qw():Zw(),$w=()=>"Important",Gw=()=>"Importante",Hw=(m={},o={})=>(o.locale??Ve())==="en"?$w():Gw(),Ww=()=>"🚫 No inappropriate content (+18, hate speech, inappropriate links, highly suggestive material, ...)",Xw=()=>"🚫 Conteúdo inapropriado não permitido (+18, discurso de ódio, links inapropriados, conteúdo altamente sugestivo, ...)",Yw=(m={},o={})=>(o.locale??Ve())==="en"?Ww():Xw(),Kw=()=>"😈 Do not paint over other artworks using random colors or patterns just to mess things up",Jw=()=>"😈 Não desenhe por cima de outras artes usando cores ou padrões aleatórios só para bagunçar",Qw=(m={},o={})=>(o.locale??Ve())==="en"?Kw():Jw(),e5=()=>"🧑‍🤝‍🧑 Do not paint with more than one account",t5=()=>"🧑‍🤝‍🧑 Não desenhe com mais de uma conta",r5=(m={},o={})=>(o.locale??Ve())==="en"?e5():t5(),n5=()=>"🤖 Use of bots is not allowed",i5=()=>"🤖 Usar bots não é permitido",a5=(m={},o={})=>(o.locale??Ve())==="en"?n5():i5(),o5=()=>"🙅 Disclosing other's personal information is not allowed",s5=()=>"🙅 Divulgar informações pessoais dos outros não é permitido",l5=(m={},o={})=>(o.locale??Ve())==="en"?o5():s5(),c5=()=>"✅ Painting over other artworks to complement them or create a new drawing is allowed",u5=()=>"✅ Desenhar sobre outras artes para complementar ou criar novas artes é permitido",h5=(m={},o={})=>(o.locale??Ve())==="en"?c5():u5(),d5=()=>"✅ Griefing political party flags or portraits of politicians is allowed",p5=()=>"✅ Desenhar sobre bandeiras de partidos e retratos de políticos é permitido",f5=(m={},o={})=>(o.locale??Ve())==="en"?d5():p5(),m5=()=>"Violations of these rules may lead to suspension of your account or removal of drawings.",_5=()=>"A violação destas regras pode levar à suspensão da conta ou à remoção de desenhos.",g5=(m={},o={})=>(o.locale??Ve())==="en"?m5():_5(),v5=()=>"Understood",y5=()=>"Entendido",x5=(m={},o={})=>(o.locale??Ve())==="en"?v5():y5(),b5=()=>"Toggle art opacity",w5=()=>"Alterar opacidade",Uv=(m={},o={})=>(o.locale??Ve())==="en"?b5():w5(),T5=()=>"Paint",C5=()=>"Pintar",$v=(m={},o={})=>(o.locale??Ve())==="en"?T5():C5(),S5=()=>"Select a color",P5=()=>"Selecione uma color",I5=(m={},o={})=>(o.locale??Ve())==="en"?S5():P5(),M5=()=>"Select a pixel to erase",k5=()=>"Selecione um pixel para apagar",A5=(m={},o={})=>(o.locale??Ve())==="en"?M5():k5(),E5=()=>"Pick a color from the map",z5=()=>"Escolha uma cor do mapa",L5=(m={},o={})=>(o.locale??Ve())==="en"?E5():z5(),D5=()=>"Click",R5=()=>"Clique",B5=(m={},o={})=>(o.locale??Ve())==="en"?D5():R5(),F5=()=>"SPACE",O5=()=>"ESPAÇO",N5=(m={},o={})=>(o.locale??Ve())==="en"?F5():O5(),j5=()=>"or hold",V5=()=>"ou segure",q5=(m={},o={})=>(o.locale??Ve())==="en"?j5():V5(),Z5=()=>"to paint,",U5=()=>"para pintar",$5=(m={},o={})=>(o.locale??Ve())==="en"?Z5():U5(),G5=()=>"You can paint more than 1 pixel",H5=()=>"Você pode pintar mais de 1 pixel",W5=(m={},o={})=>(o.locale??Ve())==="en"?G5():H5(),X5=()=>"Paint pixel",Y5=()=>"Pintar pixel",K5=(m={},o={})=>(o.locale??Ve())==="en"?X5():Y5(),J5=()=>"Color Picker",Q5=()=>"Conta Gotas",e3=(m={},o={})=>(o.locale??Ve())==="en"?J5():Q5(),t3=()=>"+2 max. charge/level",r3=()=>"+2 tinta máxima/level",n3=(m={},o={})=>(o.locale??Ve())==="en"?t3():r3(),i3=()=>"Name",a3=()=>"Nome",Xf=(m={},o={})=>(o.locale??Ve())==="en"?i3():a3(),o3=()=>"Discord Username",s3=()=>"Usuário do Discord",l3=(m={},o={})=>(o.locale??Ve())==="en"?o3():s3(),c3=()=>"Max. Charges",u3=()=>"Tinta máxima",Kg=(m={},o={})=>(o.locale??Ve())==="en"?c3():u3(),h3=()=>"Paint Charges",d3=()=>"Tintas",p3=(m={},o={})=>(o.locale??Ve())==="en"?h3():d3(),f3=m=>`+${m.amount} Paint Charges`,m3=m=>`+${m.amount} Tintas`,_3=(m,o={})=>(o.locale??Ve())==="en"?f3(m):m3(m),g3=()=>"Leave alliance",v3=()=>"Sair da aliança",y3=(m={},o={})=>(o.locale??Ve())==="en"?g3():v3(),x3=()=>"Headquarters",b3=()=>"Quartel General",w3=(m={},o={})=>(o.locale??Ve())==="en"?x3():b3(),T3=()=>"Not set",C3=()=>"Não configurado",S3=(m={},o={})=>(o.locale??Ve())==="en"?T3():C3(),P3=()=>"You are not in an alliance",I3=()=>"Você não está em uma aliança",M3=(m={},o={})=>(o.locale??Ve())==="en"?P3():I3(),k3=()=>"Get invited to an alliance",A3=()=>"Seja convidado para uma aliança",E3=(m={},o={})=>(o.locale??Ve())==="en"?k3():A3(),z3=()=>"OR",L3=()=>"OU",D3=(m={},o={})=>(o.locale??Ve())==="en"?z3():L3(),R3=()=>"Create an alliance",B3=()=>"Crie uma aliança",F3=(m={},o={})=>(o.locale??Ve())==="en"?R3():B3(),O3=()=>"Invite link",N3=()=>"Link de convite",j3=(m={},o={})=>(o.locale??Ve())==="en"?O3():N3(),V3=()=>"Send the link below to everybody you want to invite to the alliance",q3=()=>"Envie o link abaixo para quem você deseja convidar para a aliança",Z3=(m={},o={})=>(o.locale??Ve())==="en"?V3():q3(),U3=()=>"Copied",$3=()=>"Copiado",Bm=(m={},o={})=>(o.locale??Ve())==="en"?U3():$3(),G3=()=>"No description",H3=()=>"Sem descrição",Gv=(m={},o={})=>(o.locale??Ve())==="en"?G3():H3(),W3=()=>"Invite",X3=()=>"Convite",Y3=(m={},o={})=>(o.locale??Ve())==="en"?W3():X3(),K3=()=>"No pixels painted",J3=()=>"Nenhum pixel pintado",Fm=(m={},o={})=>(o.locale??Ve())==="en"?K3():J3(),Q3=()=>"Today",eT=()=>"Hoje",gp=(m={},o={})=>(o.locale??Ve())==="en"?Q3():eT(),tT=()=>"Week",rT=()=>"Semana",nT=(m={},o={})=>(o.locale??Ve())==="en"?tT():rT(),iT=()=>"Month",aT=()=>"Mês",oT=(m={},o={})=>(o.locale??Ve())==="en"?iT():aT(),sT=()=>"All time",lT=()=>"Geral",cT=(m={},o={})=>(o.locale??Ve())==="en"?sT():lT(),uT=()=>"this week",hT=()=>"nesta semana",Om=(m={},o={})=>(o.locale??Ve())==="en"?uT():hT(),dT=()=>"this month",pT=()=>"neste mês",Nm=(m={},o={})=>(o.locale??Ve())==="en"?dT():pT(),fT=()=>"Create alliance",mT=()=>"Criar aliança",_T=(m={},o={})=>(o.locale??Ve())==="en"?fT():mT(),gT=()=>"Alliance Name",vT=()=>"Nome da aliança",yT=(m={},o={})=>(o.locale??Ve())==="en"?gT():vT(),xT=()=>"Create",bT=()=>"Criar",wT=(m={},o={})=>(o.locale??Ve())==="en"?xT():bT(),TT=()=>"Give admin",CT=()=>"Tornar admin",ST=(m={},o={})=>(o.locale??Ve())==="en"?TT():CT(),PT=()=>"Ban from alliance",IT=()=>"Banir da aliança",Hv=(m={},o={})=>(o.locale??Ve())==="en"?PT():IT(),MT=()=>"No action",kT=()=>"Sem opção",AT=(m={},o={})=>(o.locale??Ve())==="en"?MT():kT(),ET=()=>"Unban",zT=()=>"Desbanir",LT=(m={},o={})=>(o.locale??Ve())==="en"?ET():zT(),DT=()=>"No banned users",RT=()=>"Sem usuários banidos",BT=(m={},o={})=>(o.locale??Ve())==="en"?DT():RT(),FT=()=>"Update",OT=()=>"Atualizar",NT=(m={},o={})=>(o.locale??Ve())==="en"?FT():OT(),jT=()=>"Error giving admin to user",VT=()=>"Erro ao tornar usuário admin",qT=(m={},o={})=>(o.locale??Ve())==="en"?jT():VT(),ZT=()=>"Users",UT=()=>"Usuários",$T=(m={},o={})=>(o.locale??Ve())==="en"?ZT():UT(),GT=()=>"Banned",HT=()=>"Banido",Wv=(m={},o={})=>(o.locale??Ve())==="en"?GT():HT(),WT=()=>"Regions",XT=()=>"Regiões",YT=(m={},o={})=>(o.locale??Ve())==="en"?WT():XT(),KT=()=>"Countries",JT=()=>"Países",QT=(m={},o={})=>(o.locale??Ve())==="en"?KT():JT(),eC=()=>"Players",tC=()=>"Jogadores",Xv=(m={},o={})=>(o.locale??Ve())==="en"?eC():tC(),rC=()=>"Alliances",nC=()=>"Alianças",Yv=(m={},o={})=>(o.locale??Ve())==="en"?rC():nC(),iC=()=>"Region",aC=()=>"Região",oC=(m={},o={})=>(o.locale??Ve())==="en"?iC():aC(),sC=()=>"Pixels",lC=()=>"Pixels",vc=(m={},o={})=>(o.locale??Ve())==="en"?sC():lC(),cC=()=>"Painted",uC=()=>"Pintados",yc=(m={},o={})=>(o.locale??Ve())==="en"?cC():uC(),hC=()=>"Pixels painted inside the region",dC=()=>"Pixels pintados dentro da região",pC=(m={},o={})=>(o.locale??Ve())==="en"?hC():dC(),fC=()=>"Not painted",mC=()=>"Não pintado",_C=(m={},o={})=>(o.locale??Ve())==="en"?fC():mC(),gC=()=>"Painted by",vC=()=>"Pintado por",yC=(m={},o={})=>(o.locale??Ve())==="en"?gC():vC(),xC=()=>"Limit reached",bC=()=>"Limite atingido",wC=(m={},o={})=>(o.locale??Ve())==="en"?xC():bC(),TC=()=>"Favorite",CC=()=>"Favoritar",SC=(m={},o={})=>(o.locale??Ve())==="en"?TC():CC(),PC=()=>"Share",IC=()=>"Compartilhar",MC=(m={},o={})=>(o.locale??Ve())==="en"?PC():IC(),kC=()=>"Share place",AC=()=>"Compartilhar local",EC=(m={},o={})=>(o.locale??Ve())==="en"?kC():AC(),zC=()=>"Mute",LC=()=>"Mutar",DC=(m={},o={})=>(o.locale??Ve())==="en"?zC():LC(),RC=()=>"Unmute",BC=()=>"Desmutar",FC=(m={},o={})=>(o.locale??Ve())==="en"?RC():BC(),OC=()=>"Select the headquarters location",NC=()=>"Selecione a localização do quartel general",jC=(m={},o={})=>(o.locale??Ve())==="en"?OC():NC(),VC=()=>"Pixels painted inside the country",qC=()=>"Pixels pintados dentro do país",ZC=(m={},o={})=>(o.locale??Ve())==="en"?VC():qC(),UC=()=>"Username copied to clipboard",$C=()=>"Usuário copiado",GC=(m={},o={})=>(o.locale??Ve())==="en"?UC():$C(),HC=()=>"No more charges",WC=()=>"Acabou a tinta",XC=(m={},o={})=>(o.locale??Ve())==="en"?HC():WC(),YC=()=>"You are not allowed to use multiple accounts. Use your main account to paint.",KC=()=>"Não é permitido usar várias contas. Use sua conta principal para pintar.",JC=(m={},o={})=>(o.locale??Ve())==="en"?YC():KC(),QC=()=>"SMS sent to",eS=()=>"SMS enviado para",tS=(m={},o={})=>(o.locale??Ve())==="en"?QC():eS(),rS=()=>"Phone successfully verified",nS=()=>"Telefone verificado com sucesso",iS=(m={},o={})=>(o.locale??Ve())==="en"?rS():nS(),aS=()=>"Not a valid phone number",oS=()=>"Não é um número válido",sS=(m={},o={})=>(o.locale??Ve())==="en"?aS():oS(),lS=()=>"Location unfavorited",cS=()=>"Localização desfavoritada",uS=(m={},o={})=>(o.locale??Ve())==="en"?lS():cS(),hS=()=>"Location favorited",dS=()=>"Localização favoritada",pS=(m={},o={})=>(o.locale??Ve())==="en"?hS():dS(),fS=()=>"Giving admin to user",mS=()=>"Tornar usuário um admin",_S=(m={},o={})=>(o.locale??Ve())==="en"?fS():mS(),gS=()=>"Profile updated",vS=()=>"Perfil atualizado",yS=(m={},o={})=>(o.locale??Ve())==="en"?gS():vS(),xS=()=>"Successfully linked your Discord account.",bS=()=>"A sua conta Discord foi conectada com sucesso.",wS=(m={},o={})=>(o.locale??Ve())==="en"?xS():bS(),TS=()=>"Discord unlinked",CS=()=>"Discord desconectado",SS=(m={},o={})=>(o.locale??Ve())==="en"?TS():CS(),PS=()=>"Link your Discord",IS=()=>"Conectar Discord",MS=(m={},o={})=>(o.locale??Ve())==="en"?PS():IS(),kS=m=>`Unlink Discord (${m.username})`,AS=m=>`Desconectar Discord (${m.username})`,ES=(m,o={})=>(o.locale??Ve())==="en"?kS(m):AS(m),zS=()=>"Account successfully deleted",LS=()=>"Conta deletada com sucesso",DS=(m={},o={})=>(o.locale??Ve())==="en"?zS():LS(),RS=()=>"Logged out",BS=()=>"Logout feito",FS=(m={},o={})=>(o.locale??Ve())==="en"?RS():BS(),OS=()=>"Could not logout. Try refreshing the page.",NS=()=>"Não foi possível sair da conta. Tente recarregar a página.",jS=(m={},o={})=>(o.locale??Ve())==="en"?OS():NS(),VS=()=>"You need to zoom in to select a pixel",qS=()=>"Dê zoom para selecionar um pixel",ZS=(m={},o={})=>(o.locale??Ve())==="en"?VS():qS(),US=()=>"Phone verification",$S=()=>"Verificação de telefone",GS=(m={},o={})=>(o.locale??Ve())==="en"?US():$S(),HS=()=>"Please verify your phone number to continue playing. This helps us keep bots out and ensure a safe, creative experience for everyone.",WS=()=>"Por favor, verifique com seu telefone para continuar jogando. Isso nos ajuda a filtrar bots e manter um experiência segura e criativa para todos.",XS=(m={},o={})=>(o.locale??Ve())==="en"?HS():WS(),YS=()=>"Send Code",KS=()=>"Enviar o código",JS=(m={},o={})=>(o.locale??Ve())==="en"?YS():KS(),QS=()=>"Input the code",eP=()=>"Insira o código",tP=(m={},o={})=>(o.locale??Ve())==="en"?QS():eP(),rP=()=>"Sent to",nP=()=>"Enviar para",iP=(m={},o={})=>(o.locale??Ve())==="en"?rP():nP(),aP=()=>"Resend Code",oP=()=>"Reenviar Código",sP=(m={},o={})=>(o.locale??Ve())==="en"?aP():oP(),lP=()=>"Try another number",cP=()=>"Tentar outro número",uP=(m={},o={})=>(o.locale??Ve())==="en"?lP():cP(),hP=()=>"Edit profile",dP=()=>"Editar perfil",pP=(m={},o={})=>(o.locale??Ve())==="en"?hP():dP(),fP=()=>"Image",mP=()=>"Imagem",_P=(m={},o={})=>(o.locale??Ve())==="en"?fP():mP(),gP=()=>"Download",vP=()=>"Download",yP=(m={},o={})=>(o.locale??Ve())==="en"?gP():vP(),xP=()=>"Image copied to clipboard",bP=()=>"Imagem copiada para a área de transferência",wP=(m={},o={})=>(o.locale??Ve())==="en"?xP():bP(),TP=()=>"My map is lagging",CP=()=>"Meu mapa está travando",SP=(m={},o={})=>(o.locale??Ve())==="en"?TP():CP(),PP=()=>"Verify if",IP=()=>"Verifique se",MP=(m={},o={})=>(o.locale??Ve())==="en"?PP():IP(),kP=()=>"Use hardware acceleration when available",AP=()=>"Usar aceleração gráfica quando disponível",EP=(m={},o={})=>(o.locale??Ve())==="en"?kP():AP(),zP=()=>"is enabled on",LP=()=>"está habilitado em",DP=(m={},o={})=>(o.locale??Ve())==="en"?zP():LP(),RP=()=>"Follow the instructions to enable hardware acceleration",BP=()=>"Siga a instrução para habilitar a aceleração de hardware",FP=(m={},o={})=>(o.locale??Ve())==="en"?RP():BP(),OP=()=>"Moderation",NP=()=>"Moderação",jP=(m={},o={})=>(o.locale??Ve())==="en"?OP():NP(),VP=()=>"Terms",qP=()=>"Termos",ZP=(m={},o={})=>(o.locale??Ve())==="en"?VP():qP(),UP=()=>"Privacy",$P=()=>"Privacidade",GP=(m={},o={})=>(o.locale??Ve())==="en"?UP():$P(),HP=()=>"Refund",WP=()=>"Reembolso",Kv=(m={},o={})=>(o.locale??Ve())==="en"?HP():WP(),XP=()=>"Clear area",YP=()=>"Limpar área",KP=(m={},o={})=>(o.locale??Ve())==="en"?XP():YP(),JP=()=>"Select the area's first corner",QP=()=>"Selecione o primeiro canto da área",Jv=(m={},o={})=>(o.locale??Ve())==="en"?JP():QP(),eI=()=>"Select the area's opposite corner",tI=()=>"Selecione o canto oposto da área",Qv=(m={},o={})=>(o.locale??Ve())==="en"?eI():tI(),rI=()=>"Admin",nI=()=>"Administração",iI=(m={},o={})=>(o.locale??Ve())==="en"?rI():nI(),aI=m=>`Reason: ${m.reason}`,oI=m=>`Motivo: ${m.reason}`,sI=(m,o={})=>(o.locale??Ve())==="en"?aI(m):oI(m),lI=()=>"No corresponding region on the map (cosmetic effect only)",cI=()=>"Não possui região no mapa (apenas efeito cosmético)",uI=(m={},o={})=>(o.locale??Ve())==="en"?lI():cI(),hI=()=>"Flag without region on the map",dI=()=>"Bandeira sem região no mapa",pI=(m={},o={})=>(o.locale??Ve())==="en"?hI():dI(),fI=m=>`The flag of ${m.country} does not have corresponding areas on the map and will only have cosmetic effects.`,mI=m=>`A bandeira ${m.country} não possui regiões correspondente no mapa e só terá efeito cosmético.`,_I=(m,o={})=>(o.locale??Ve())==="en"?fI(m):mI(m),gI=()=>"Dark mode",vI=()=>"Modo escuro",yI=(m={},o={})=>(o.locale??Ve())==="en"?gI():vI(),xI=()=>"Light mode",bI=()=>"Modo claro",wI=(m={},o={})=>(o.locale??Ve())==="en"?xI():bI(),Go=2*Math.PI*6378137/2;class fl{constructor(o=256){gr(this,"initialResolution");this.tileSize=o,this.initialResolution=2*Go/this.tileSize}latLonToMeters(o,f){const y=f/180*Go,M=Math.log(Math.tan((90+o)*Math.PI/360))/(Math.PI/180)*Go/180;return[y,M]}metersToLatLon(o,f){const y=o/Go*180;let M=f/Go*180;return M=180/Math.PI*(2*Math.atan(Math.exp(M*Math.PI/180))-Math.PI/2),[M,y]}pixelsToMeters(o,f,y){const M=this.resolution(y),z=o*M-Go,T=Go-f*M;return[z,T]}pixelsToLatLon(o,f,y){const[M,z]=this.pixelsToMeters(o,f,y);return this.metersToLatLon(M,z)}latLonToPixels(o,f,y){const[M,z]=this.latLonToMeters(o,f);return this.metersToPixels(M,z,y)}latLonToPixelsFloor(o,f,y){const[M,z]=this.latLonToPixels(o,f,y);return[Math.floor(M),Math.floor(z)]}metersToPixels(o,f,y){const M=this.resolution(y),z=(o+Go)/M,T=(Go-f)/M;return[z,T]}latLonToTile(o,f,y){const[M,z]=this.latLonToMeters(o,f);return this.metersToTile(M,z,y)}metersToTile(o,f,y){const[M,z]=this.metersToPixels(o,f,y);return this.pixelsToTile(M,z)}pixelsToTile(o,f){const y=Math.ceil(o/this.tileSize)-1,M=Math.ceil(f/this.tileSize)-1;return[y,M]}pixelsToTileLocal(o,f){return{tile:this.pixelsToTile(o,f),pixel:[Math.floor(o)%this.tileSize,Math.floor(f)%this.tileSize]}}tileBounds(o,f,y){const[M,z]=this.pixelsToMeters(o*this.tileSize,f*this.tileSize,y),[T,s]=this.pixelsToMeters((o+1)*this.tileSize,(f+1)*this.tileSize,y);return{min:[M,z],max:[T,s]}}tileBoundsLatLon(o,f,y){const M=this.tileBounds(o,f,y);return{min:this.metersToLatLon(M.min[0],M.min[1]),max:this.metersToLatLon(M.max[0],M.max[1])}}resolution(o){return this.initialResolution/2**o}latLonToTileAndPixel(o,f,y){const[M,z]=this.latLonToMeters(o,f),[T,s]=this.metersToTile(M,z,y),[B,N]=this.metersToPixels(M,z,y);return{tile:[T,s],pixel:[Math.floor(B)%this.tileSize,Math.floor(N)%this.tileSize]}}pixelBounds(o,f,y){return{min:this.pixelsToMeters(o,f,y),max:this.pixelsToMeters(o+1,f+1,y)}}pixelToBoundsLatLon(o,f,y){const M=this.pixelBounds(o,f,y),z=.001885,T=(M.max[0]-M.min[0])*z,s=(M.max[1]-M.min[1])*z;return M.min[0]-=T,M.max[0]-=T,M.min[1]-=s,M.max[1]-=s,{min:this.metersToLatLon(M.min[0],M.min[1]),max:this.metersToLatLon(M.max[0],M.max[1])}}latLonToTileBoundsLatLon(o,f,y){const[M,z]=this.latLonToMeters(o,f),[T,s]=this.metersToTile(M,z,y);return this.tileBoundsLatLon(T,s,y)}latLonToPixelBoundsLatLon(o,f,y){const[M,z]=this.latLonToMeters(o,f),[T,s]=this.metersToPixels(M,z,y);return this.pixelToBoundsLatLon(Math.floor(T),Math.floor(s),y)}latLonToRegionAndPixel(o,f,y,M=Hi.regionSize){const[z,T]=this.latLonToPixelsFloor(o,f,y),s=this.tileSize*M;return{region:[Math.floor(z/s),Math.floor(T/s)],pixel:[z%s,T%s]}}}function jm(m,o=!0){const{min:f,max:y}=m;return o?[[f[1],y[0]],[y[1],y[0]],[y[1],f[0]],[f[1],f[0]]]:[[f[0],y[1]],[y[0],y[1]],[y[0],f[1]],[f[0],f[1]]]}function Vm(m){return[(m.min[0]+m.max[0])/2,(m.min[1]+m.max[1])/2]}const TI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAAXNSR0IArs4c6QAAACpJREFUeNpj+AsEZ86ASIa/DAwMZ84ACRDzDBigMs/AARITq1oUwxBWAADaREUdDMswKwAAAABJRU5ErkJggg==",Jg="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAACVJREFUeNpj+A8FDEAAZwMRBAIBmIYLIgHcgkQDIs3E6SRsjgcABYFLtfTgakEAAAAASUVORK5CYII=";function CI(m){return Math.floor(Math.random()*m)}const Yf=14.5;async function SI(){const m=MI();if(m)return m;try{if((await navigator.permissions.query({name:"geolocation"})).state==="granted"){const f=await new Promise((y,M)=>navigator.geolocation.getCurrentPosition(z=>y(z),z=>M(z)));return{lat:f.coords.latitude,lng:f.coords.longitude,zoom:Yf}}}catch(o){console.error(o)}return{...PI().pos,zoom:Yf}}function PI(){const m=Object.entries(II),o=CI(m.length),[f,y]=m[o];return{city:f,pos:y}}const II={tokyo:{lat:35.677545560719665,lng:139.76394445809638},paris:{lat:48.8537151734952,lng:2.3484026030630787},newYork:{lat:40.71283173786517,lng:-74.00599771376795},saoPaulo:{lat:-23.550584064565356,lng:-46.63339720713918},sydney:{lat:-33.86943325619071,lng:151.2083447239608}},e0="location";function Co(m,o){localStorage.setItem(e0,JSON.stringify({...m,zoom:o}))}function MI(){const m=localStorage.getItem(e0);if(!m)return;const o=JSON.parse(m);return o.zoom??(o.zoom=Yf),o}var Hu,Wu;class kI{constructor(){Mr(this,Hu,ct(-1));Mr(this,Wu,ct([]))}get idx(){return x(it(this,Hu))}set idx(o){ce(it(this,Hu),o,!0)}get entries(){return x(it(this,Wu))}set entries(o){ce(it(this,Wu),o)}hasNext(){return this.idx0}goToPrev(o){const f=this.idx-1,y=this.entries[f];y&&(this.idx=f,o.flyTo({center:y.pos,zoom:y.zoom}))}isEmpty(){return this.entries.length===0}push(o){this.idx=this.idx+1,this.entries=[...this.entries.slice(0,this.idx),o]}}Hu=new WeakMap,Wu=new WeakMap;const hl=new kI;function qm(m){return m&&m.__esModule&&Object.prototype.hasOwnProperty.call(m,"default")?m.default:m}var Wd={exports:{}};/** - * MapLibre GL JS - * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.6.2/LICENSE.txt - */var AI=Wd.exports,Qg;function EI(){return Qg||(Qg=1,(function(m,o){(function(f,y){m.exports=y()})(AI,(function(){var f={},y={};function M(T,s,B){if(y[T]=B,T==="index"){var N="var sharedModule = {}; ("+y.shared+")(sharedModule); ("+y.worker+")(sharedModule);",Y={};return y.shared(Y),y.index(f,Y),typeof window<"u"&&f.setWorkerUrl(window.URL.createObjectURL(new Blob([N],{type:"text/javascript"}))),f}}M("shared",["exports"],(function(T){function s(n,t,r,a){return new(r||(r=Promise))((function(c,p){function _(S){try{b(a.next(S))}catch(I){p(I)}}function v(S){try{b(a.throw(S))}catch(I){p(I)}}function b(S){var I;S.done?c(S.value):(I=S.value,I instanceof r?I:new r((function(L){L(I)}))).then(_,v)}b((a=a.apply(n,t||[])).next())}))}function B(n,t){this.x=n,this.y=t}function N(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Y,K;typeof SuppressedError=="function"&&SuppressedError,B.prototype={clone(){return new B(this.x,this.y)},add(n){return this.clone()._add(n)},sub(n){return this.clone()._sub(n)},multByPoint(n){return this.clone()._multByPoint(n)},divByPoint(n){return this.clone()._divByPoint(n)},mult(n){return this.clone()._mult(n)},div(n){return this.clone()._div(n)},rotate(n){return this.clone()._rotate(n)},rotateAround(n,t){return this.clone()._rotateAround(n,t)},matMult(n){return this.clone()._matMult(n)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(n){return this.x===n.x&&this.y===n.y},dist(n){return Math.sqrt(this.distSqr(n))},distSqr(n){const t=n.x-this.x,r=n.y-this.y;return t*t+r*r},angle(){return Math.atan2(this.y,this.x)},angleTo(n){return Math.atan2(this.y-n.y,this.x-n.x)},angleWith(n){return this.angleWithSep(n.x,n.y)},angleWithSep(n,t){return Math.atan2(this.x*t-this.y*n,this.x*n+this.y*t)},_matMult(n){const t=n[2]*this.x+n[3]*this.y;return this.x=n[0]*this.x+n[1]*this.y,this.y=t,this},_add(n){return this.x+=n.x,this.y+=n.y,this},_sub(n){return this.x-=n.x,this.y-=n.y,this},_mult(n){return this.x*=n,this.y*=n,this},_div(n){return this.x/=n,this.y/=n,this},_multByPoint(n){return this.x*=n.x,this.y*=n.y,this},_divByPoint(n){return this.x/=n.x,this.y/=n.y,this},_unit(){return this._div(this.mag()),this},_perp(){const n=this.y;return this.y=this.x,this.x=-n,this},_rotate(n){const t=Math.cos(n),r=Math.sin(n),a=r*this.x+t*this.y;return this.x=t*this.x-r*this.y,this.y=a,this},_rotateAround(n,t){const r=Math.cos(n),a=Math.sin(n),c=t.y+a*(this.x-t.x)+r*(this.y-t.y);return this.x=t.x+r*(this.x-t.x)-a*(this.y-t.y),this.y=c,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:B},B.convert=function(n){if(n instanceof B)return n;if(Array.isArray(n))return new B(+n[0],+n[1]);if(n.x!==void 0&&n.y!==void 0)return new B(+n.x,+n.y);throw new Error("Expected [x, y] or {x, y} point format")};var ie=(function(){if(K)return Y;function n(t,r,a,c){this.cx=3*t,this.bx=3*(a-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*r,this.by=3*(c-r)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=a,this.p2y=c}return K=1,Y=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,r){if(r===void 0&&(r=1e-6),t<0)return 0;if(t>1)return 1;for(var a=t,c=0;c<8;c++){var p=this.sampleCurveX(a)-t;if(Math.abs(p)p?v=a:b=a,a=.5*(b-v)+v;return a},solve:function(t,r){return this.sampleCurveY(this.solveCurveX(t,r))}},Y})(),H=N(ie);let me,ve;function Me(){return me==null&&(me=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),me}function Ee(){if(ve==null&&(ve=!1,Me())){const t=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(t){for(let a=0;a<25;a++){const c=4*a;t.fillStyle=`rgb(${c},${c+1},${c+2})`,t.fillRect(a%5,Math.floor(a/5),1,1)}const r=t.getImageData(0,0,5,5).data;for(let a=0;a<100;a++)if(a%4!=3&&r[a]!==a){ve=!0;break}}}return ve||!1}var Re=1e-6,ze=typeof Float32Array<"u"?Float32Array:Array;function Fe(){var n=new ze(9);return ze!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function Ke(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function rt(){var n=new ze(3);return ze!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n}function qe(n){return Math.hypot(n[0],n[1],n[2])}function He(n,t,r){var a=new ze(3);return a[0]=n,a[1]=t,a[2]=r,a}function et(n,t,r){return n[0]=t[0]+r[0],n[1]=t[1]+r[1],n[2]=t[2]+r[2],n}function De(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n}function tt(n,t,r){var a=t[0],c=t[1],p=t[2],_=r[0],v=r[1],b=r[2];return n[0]=c*b-p*v,n[1]=p*_-a*b,n[2]=a*v-c*_,n}Math.hypot||(Math.hypot=function(){for(var n=0,t=arguments.length;t--;)n+=arguments[t]*arguments[t];return Math.sqrt(n)});var nt,Ze=qe;function ke(n,t,r){var a=t[0],c=t[1],p=t[2],_=t[3];return n[0]=r[0]*a+r[4]*c+r[8]*p+r[12]*_,n[1]=r[1]*a+r[5]*c+r[9]*p+r[13]*_,n[2]=r[2]*a+r[6]*c+r[10]*p+r[14]*_,n[3]=r[3]*a+r[7]*c+r[11]*p+r[15]*_,n}function bt(){var n=new ze(4);return ze!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function te(n,t,r,a){var c=.5*Math.PI/180;t*=c,r*=c,a*=c;var p=Math.sin(t),_=Math.cos(t),v=Math.sin(r),b=Math.cos(r),S=Math.sin(a),I=Math.cos(a);return n[0]=p*b*I-_*v*S,n[1]=_*v*I+p*b*S,n[2]=_*b*S-p*v*I,n[3]=_*b*I+p*v*S,n}function re(){var n=new ze(2);return ze!=Float32Array&&(n[0]=0,n[1]=0),n}function ge(n,t){var r=new ze(2);return r[0]=n,r[1]=t,r}rt(),nt=new ze(4),ze!=Float32Array&&(nt[0]=0,nt[1]=0,nt[2]=0,nt[3]=0),rt(),He(1,0,0),He(0,1,0),bt(),bt(),Fe(),re();const oe=8192;function Ae(n,t,r){return t*(oe/(n.tileSize*Math.pow(2,r-n.tileID.overscaledZ)))}function Ne(n,t){return(n%t+t)%t}function pt(n,t,r){return n*(1-r)+t*r}function ot(n){if(n<=0)return 0;if(n>=1)return 1;const t=n*n,r=t*n;return 4*(n<.5?r:3*(n-t)+r-.75)}function ut(n,t,r,a){const c=new H(n,t,r,a);return p=>c.solve(p)}const St=ut(.25,.1,.25,1);function Bt(n,t,r){return Math.min(r,Math.max(t,n))}function at(n,t,r){const a=r-t,c=((n-t)%a+a)%a+t;return c===t?r:c}function dt(n,...t){for(const r of t)for(const a in r)n[a]=r[a];return n}let vt=1;function yt(n,t,r){const a={};for(const c in n)a[c]=t.call(this,n[c],c,n);return a}function It(n,t,r){const a={};for(const c in n)t.call(this,n[c],c,n)&&(a[c]=n[c]);return a}function wt(n){return Array.isArray(n)?n.map(wt):typeof n=="object"&&n?yt(n,wt):n}const mt={};function Dt(n){mt[n]||(typeof console<"u"&&console.warn(n),mt[n]=!0)}function zt(n,t,r){return(r.y-n.y)*(t.x-n.x)>(t.y-n.y)*(r.x-n.x)}function qt(n){return typeof WorkerGlobalScope<"u"&&n!==void 0&&n instanceof WorkerGlobalScope}let tr=null;function Qt(n){return typeof ImageBitmap<"u"&&n instanceof ImageBitmap}const Ot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function fr(n,t,r,a,c){return s(this,void 0,void 0,(function*(){if(typeof VideoFrame>"u")throw new Error("VideoFrame not supported");const p=new VideoFrame(n,{timestamp:0});try{const _=p==null?void 0:p.format;if(!_||!_.startsWith("BGR")&&!_.startsWith("RGB"))throw new Error(`Unrecognized format ${_}`);const v=_.startsWith("BGR"),b=new Uint8ClampedArray(a*c*4);if(yield p.copyTo(b,(function(S,I,L,F,V){const U=4*Math.max(-I,0),W=(Math.max(0,L)-L)*F*4+U,J=4*F,le=Math.max(0,I),Le=Math.max(0,L);return{rect:{x:le,y:Le,width:Math.min(S.width,I+F)-le,height:Math.min(S.height,L+V)-Le},layout:[{offset:W,stride:J}]}})(n,t,r,a,c)),v)for(let S=0;S{n.removeEventListener(t,r,a)}}}function Kt(n){return n*Math.PI/180}function or(n){return n/Math.PI*180}const Sr={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},Dr={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0},Zr="AbortError";function se(){return new Error(Zr)}const j={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};function Z(n){return j.REGISTERED_PROTOCOLS[n.substring(0,n.indexOf("://"))]}const X="global-dispatcher";class ae extends Error{constructor(t,r,a,c){super(`AJAXError: ${r} (${t}): ${a}`),this.status=t,this.statusText=r,this.url=a,this.body=c}}const de=()=>qt(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,Se=function(n,t){if(/:\/\//.test(n.url)&&!/^https?:|^file:/.test(n.url)){const a=Z(n.url);if(a)return a(n,t);if(qt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,targetMapId:X},t)}if(!(/^file:/.test(r=n.url)||/^file:/.test(de())&&!/^\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return(function(a,c){return s(this,void 0,void 0,(function*(){const p=new Request(a.url,{method:a.method||"GET",body:a.body,credentials:a.credentials,headers:a.headers,cache:a.cache,referrer:de(),signal:c.signal});let _,v;a.type!=="json"||p.headers.has("Accept")||p.headers.set("Accept","application/json");try{_=yield fetch(p)}catch(S){throw new ae(0,S.message,a.url,new Blob)}if(!_.ok){const S=yield _.blob();throw new ae(_.status,_.statusText,a.url,S)}v=a.type==="arrayBuffer"||a.type==="image"?_.arrayBuffer():a.type==="json"?_.json():_.text();const b=yield v;if(c.signal.aborted)throw se();return{data:b,cacheControl:_.headers.get("Cache-Control"),expires:_.headers.get("Expires")}}))})(n,t);if(qt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,mustQueue:!0,targetMapId:X},t)}var r;return(function(a,c){return new Promise(((p,_)=>{var v;const b=new XMLHttpRequest;b.open(a.method||"GET",a.url,!0),a.type!=="arrayBuffer"&&a.type!=="image"||(b.responseType="arraybuffer");for(const S in a.headers)b.setRequestHeader(S,a.headers[S]);a.type==="json"&&(b.responseType="text",!((v=a.headers)===null||v===void 0)&&v.Accept||b.setRequestHeader("Accept","application/json")),b.withCredentials=a.credentials==="include",b.onerror=()=>{_(new Error(b.statusText))},b.onload=()=>{if(!c.signal.aborted)if((b.status>=200&&b.status<300||b.status===0)&&b.response!==null){let S=b.response;if(a.type==="json")try{S=JSON.parse(b.response)}catch(I){return void _(I)}p({data:S,cacheControl:b.getResponseHeader("Cache-Control"),expires:b.getResponseHeader("Expires")})}else{const S=new Blob([b.response],{type:b.getResponseHeader("Content-Type")});_(new ae(b.status,b.statusText,a.url,S))}},c.signal.addEventListener("abort",(()=>{b.abort(),_(se())})),b.send(a.body)}))})(n,t)};function Ie(n){if(!n||n.indexOf("://")<=0||n.indexOf("data:image/")===0||n.indexOf("blob:")===0)return!0;const t=new URL(n),r=window.location;return t.protocol===r.protocol&&t.host===r.host}function be(n,t,r){r[n]&&r[n].indexOf(t)!==-1||(r[n]=r[n]||[],r[n].push(t))}function Oe(n,t,r){if(r&&r[n]){const a=r[n].indexOf(t);a!==-1&&r[n].splice(a,1)}}class st{constructor(t,r={}){dt(this,r),this.type=t}}class $e extends st{constructor(t,r={}){super("error",dt({error:t},r))}}class Mt{on(t,r){return this._listeners=this._listeners||{},be(t,r,this._listeners),{unsubscribe:()=>{this.off(t,r)}}}off(t,r){return Oe(t,r,this._listeners),Oe(t,r,this._oneTimeListeners),this}once(t,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},be(t,r,this._oneTimeListeners),this):new Promise((a=>this.once(t,a)))}fire(t,r){typeof t=="string"&&(t=new st(t,r||{}));const a=t.type;if(this.listens(a)){t.target=this;const c=this._listeners&&this._listeners[a]?this._listeners[a].slice():[];for(const v of c)v.call(this,t);const p=this._oneTimeListeners&&this._oneTimeListeners[a]?this._oneTimeListeners[a].slice():[];for(const v of p)Oe(a,v,this._oneTimeListeners),v.call(this,t);const _=this._eventedParent;_&&(dt(t,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),_.fire(t))}else t instanceof $e&&console.error(t.error);return this}listens(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)}setEventedParent(t,r){return this._eventedParent=t,this._eventedParentData=r,this}}var xe={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},centerAltitude:{type:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},roll:{type:"number",default:0,units:"degrees"},state:{type:"state",default:{}},light:{type:"light"},sky:{type:"sky"},projection:{type:"projection"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},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:{},"color-relief":{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_color-relief","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","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"}},"layout_color-relief":{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":{}}},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},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-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:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"}},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 Ft=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function cr(n,t){const r={};for(const a in n)a!=="ref"&&(r[a]=n[a]);return Ft.forEach((a=>{a in t&&(r[a]=t[a])})),r}function Jt(n,t){if(Array.isArray(n)){if(!Array.isArray(t)||n.length!==t.length)return!1;for(let r=0;r`:n.itemType.kind==="value"?"array":`array<${t}>`}return n.kind}const ma=[_t,Ge,At,Rt,Yt,br,pn,Er,tn(ur),_n,En,sn,dr,In];function di(n,t){if(t.kind==="error")return null;if(n.kind==="array"){if(t.kind==="array"&&(t.N===0&&t.itemType.kind==="value"||!di(n.itemType,t.itemType))&&(typeof n.N!="number"||n.N===t.N))return null}else{if(n.kind===t.kind)return null;if(n.kind==="value"){for(const r of ma)if(!di(r,t))return null}}return`Expected ${Qr(n)} but found ${Qr(t)} instead.`}function Xi(n,t){return t.some((r=>r.kind===n.kind))}function Zn(n,t){return t.some((r=>r==="null"?n===null:r==="array"?Array.isArray(n):r==="object"?n&&!Array.isArray(n)&&typeof n=="object":r===typeof n))}function ni(n,t){return n.kind==="array"&&t.kind==="array"?n.itemType.kind===t.itemType.kind&&typeof n.N=="number":n.kind===t.kind}const qi=.96422,Yi=.82521,Ei=4/29,zi=6/29,Ki=3*zi*zi,oa=zi*zi*zi,Ta=Math.PI/180,xt=180/Math.PI;function Wt(n){return(n%=360)<0&&(n+=360),n}function Rr([n,t,r,a]){let c,p;const _=On((.2225045*(n=yn(n))+.7168786*(t=yn(t))+.0606169*(r=yn(r)))/1);n===t&&t===r?c=p=_:(c=On((.4360747*n+.3850649*t+.1430804*r)/qi),p=On((.0139322*n+.0971045*t+.7141733*r)/Yi));const v=116*_-16;return[v<0?0:v,500*(c-_),200*(_-p),a]}function yn(n){return n<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function On(n){return n>oa?Math.pow(n,1/3):n/Ki+Ei}function Xn([n,t,r,a]){let c=(n+16)/116,p=isNaN(t)?c:c+t/500,_=isNaN(r)?c:c-r/200;return c=1*wn(c),p=qi*wn(p),_=Yi*wn(_),[Vn(3.1338561*p-1.6168667*c-.4906146*_),Vn(-.9787684*p+1.9161415*c+.033454*_),Vn(.0719453*p-.2289914*c+1.4052427*_),a]}function Vn(n){return(n=n<=.00304?12.92*n:1.055*Math.pow(n,1/2.4)-.055)<0?0:n>1?1:n}function wn(n){return n>zi?n*n*n:Ki*(n-Ei)}const Ji=Object.hasOwn||function(n,t){return Object.prototype.hasOwnProperty.call(n,t)};function sr(n,t){return Ji(n,t)?n[t]:void 0}function Ut(n){return parseInt(n.padEnd(2,n),16)/255}function Ur(n,t){return lr(t?n/100:n,0,1)}function lr(n,t,r){return Math.min(Math.max(t,n),r)}function Tn(n){return!n.some(Number.isNaN)}const nn={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function Cn(n,t,r){return n+r*(t-n)}function $n(n,t,r){return n.map(((a,c)=>Cn(a,t[c],r)))}class Pr{constructor(t,r,a,c=1,p=!0){this.r=t,this.g=r,this.b=a,this.a=c,p||(this.r*=c,this.g*=c,this.b*=c,c||this.overwriteGetter("rgb",[t,r,a,c]))}static parse(t){if(t instanceof Pr)return t;if(typeof t!="string")return;const r=(function(a){if((a=a.toLowerCase().trim())==="transparent")return[0,0,0,0];const c=sr(nn,a);if(c){const[_,v,b]=c;return[_/255,v/255,b/255,1]}if(a.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(a)){const _=a.length<6?1:2;let v=1;return[Ut(a.slice(v,v+=_)),Ut(a.slice(v,v+=_)),Ut(a.slice(v,v+=_)),Ut(a.slice(v,v+_)||"ff")]}if(a.startsWith("rgb")){const _=a.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(_){const[v,b,S,I,L,F,V,U,W,J,le,Le]=_,ye=[I||" ",V||" ",J].join("");if(ye===" "||ye===" /"||ye===",,"||ye===",,,"){const Ce=[S,F,W].join(""),Xe=Ce==="%%%"?100:Ce===""?255:0;if(Xe){const lt=[lr(+b/Xe,0,1),lr(+L/Xe,0,1),lr(+U/Xe,0,1),le?Ur(+le,Le):1];if(Tn(lt))return lt}}return}}const p=a.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(p){const[_,v,b,S,I,L,F,V,U]=p,W=[b||" ",I||" ",F].join("");if(W===" "||W===" /"||W===",,"||W===",,,"){const J=[+v,lr(+S,0,100),lr(+L,0,100),V?Ur(+V,U):1];if(Tn(J))return(function([le,Le,ye,Ce]){function Xe(lt){const Pt=(lt+le/30)%12,Xt=Le*Math.min(ye,1-ye);return ye-Xt*Math.max(-1,Math.min(Pt-3,9-Pt,1))}return le=Wt(le),Le/=100,ye/=100,[Xe(0),Xe(8),Xe(4),Ce]})(J)}}})(t);return r?new Pr(...r,!1):void 0}get rgb(){const{r:t,g:r,b:a,a:c}=this,p=c||1/0;return this.overwriteGetter("rgb",[t/p,r/p,a/p,c])}get hcl(){return this.overwriteGetter("hcl",(function(t){const[r,a,c,p]=Rr(t),_=Math.sqrt(a*a+c*c);return[Math.round(1e4*_)?Wt(Math.atan2(c,a)*xt):NaN,_,r,p]})(this.rgb))}get lab(){return this.overwriteGetter("lab",Rr(this.rgb))}overwriteGetter(t,r){return Object.defineProperty(this,t,{value:r}),r}toString(){const[t,r,a,c]=this.rgb;return`rgba(${[t,r,a].map((p=>Math.round(255*p))).join(",")},${c})`}static interpolate(t,r,a,c="rgb"){switch(c){case"rgb":{const[p,_,v,b]=$n(t.rgb,r.rgb,a);return new Pr(p,_,v,b,!1)}case"hcl":{const[p,_,v,b]=t.hcl,[S,I,L,F]=r.hcl;let V,U;if(isNaN(p)||isNaN(S))isNaN(p)?isNaN(S)?V=NaN:(V=S,v!==1&&v!==0||(U=I)):(V=p,L!==1&&L!==0||(U=_));else{let ye=S-p;S>p&&ye>180?ye-=360:S180&&(ye+=360),V=p+a*ye}const[W,J,le,Le]=(function([ye,Ce,Xe,lt]){return ye=isNaN(ye)?0:ye*Ta,Xn([Xe,Math.cos(ye)*Ce,Math.sin(ye)*Ce,lt])})([V,U??Cn(_,I,a),Cn(v,L,a),Cn(b,F,a)]);return new Pr(W,J,le,Le,!1)}case"lab":{const[p,_,v,b]=Xn($n(t.lab,r.lab,a));return new Pr(p,_,v,b,!1)}}}}Pr.black=new Pr(0,0,0,1),Pr.white=new Pr(1,1,1,1),Pr.transparent=new Pr(0,0,0,0),Pr.red=new Pr(1,0,0,1);class Mn{constructor(t,r,a){this.sensitivity=t?r?"variant":"case":r?"accent":"base",this.locale=a,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,r){return this.collator.compare(t,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}const bn=["bottom","center","top"];class ln{constructor(t,r,a,c,p,_){this.text=t,this.image=r,this.scale=a,this.fontStack=c,this.textColor=p,this.verticalAlign=_}}class Sn{constructor(t){this.sections=t}static fromString(t){return new Sn([new ln(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some((t=>t.text.length!==0||t.image&&t.image.name.length!==0))}static factory(t){return t instanceof Sn?t:Sn.fromString(t)}toString(){return this.sections.length===0?"":this.sections.map((t=>t.text)).join("")}}class kn{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof kn)return t;if(typeof t=="number")return new kn([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const r of t)if(typeof r!="number")return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]]}return new kn(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,r,a){return new kn($n(t.values,r.values,a))}}class gn{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof gn)return t;if(typeof t=="number")return new gn([t]);if(Array.isArray(t)){for(const r of t)if(typeof r!="number")return;return new gn(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,r,a){return new gn($n(t.values,r.values,a))}}class fn{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof fn)return t;if(typeof t=="string"){const a=Pr.parse(t);return a?new fn([a]):void 0}if(!Array.isArray(t))return;const r=[];for(const a of t){if(typeof a!="string")return;const c=Pr.parse(a);if(!c)return;r.push(c)}return new fn(r)}toString(){return JSON.stringify(this.values)}static interpolate(t,r,a,c="rgb"){const p=[];if(t.values.length!=r.values.length)throw new Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${r.values.length}), cannot interpolate.`);for(let _=0;_=0&&n<=255&&typeof t=="number"&&t>=0&&t<=255&&typeof r=="number"&&r>=0&&r<=255?a===void 0||typeof a=="number"&&a>=0&&a<=1?null:`Invalid rgba value [${[n,t,r,a].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof a=="number"?[n,t,r,a]:[n,t,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function qa(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"||n instanceof jn||n instanceof Pr||n instanceof Mn||n instanceof Sn||n instanceof kn||n instanceof gn||n instanceof fn||n instanceof pi||n instanceof Gn)return!0;if(Array.isArray(n)){for(const t of n)if(!qa(t))return!1;return!0}if(typeof n=="object"){for(const t in n)if(!qa(n[t]))return!1;return!0}return!1}function Lr(n){if(n===null)return _t;if(typeof n=="string")return At;if(typeof n=="boolean")return Rt;if(typeof n=="number")return Ge;if(n instanceof Pr)return Yt;if(n instanceof jn)return br;if(n instanceof Mn)return rn;if(n instanceof Sn)return pn;if(n instanceof kn)return _n;if(n instanceof gn)return En;if(n instanceof fn)return sn;if(n instanceof pi)return In;if(n instanceof Gn)return dr;if(Array.isArray(n)){const t=n.length;let r;for(const a of n){const c=Lr(a);if(r){if(r===c)continue;r=ur;break}r=c}return tn(r||ur,t)}return Er}function $r(n){const t=typeof n;return n===null?"":t==="string"||t==="number"||t==="boolean"?String(n):n instanceof Pr||n instanceof jn||n instanceof Sn||n instanceof kn||n instanceof gn||n instanceof fn||n instanceof pi||n instanceof Gn?n.toString():JSON.stringify(n)}class _a{constructor(t,r){this.type=t,this.value=r}static parse(t,r){if(t.length!==2)return r.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!qa(t[1]))return r.error("invalid value");const a=t[1];let c=Lr(a);const p=r.expectedType;return c.kind!=="array"||c.N!==0||!p||p.kind!=="array"||typeof p.N=="number"&&p.N!==0||(c=p),new _a(c,a)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const cn={string:At,number:Ge,boolean:Rt,object:Er};class Li{constructor(t,r){this.type=t,this.args=r}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");let a,c=1;const p=t[0];if(p==="array"){let v,b;if(t.length>2){const S=t[1];if(typeof S!="string"||!(S in cn)||S==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);v=cn[S],c++}else v=ur;if(t.length>3){if(t[2]!==null&&(typeof t[2]!="number"||t[2]<0||t[2]!==Math.floor(t[2])))return r.error('The length argument to "array" must be a positive integer literal',2);b=t[2],c++}a=tn(v,b)}else{if(!cn[p])throw new Error(`Types doesn't contain name = ${p}`);a=cn[p]}const _=[];for(;ct.outputDefined()))}}const ga={"to-boolean":Rt,"to-color":Yt,"to-number":Ge,"to-string":At};class sa{constructor(t,r){this.type=t,this.args=r}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");const a=t[0];if(!ga[a])throw new Error(`Can't parse ${a} as it is not part of the known types`);if((a==="to-boolean"||a==="to-string")&&t.length!==2)return r.error("Expected one argument.");const c=ga[a],p=[];for(let _=1;_4?`Invalid rgba value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:zn(r[0],r[1],r[2],r[3]),!a))return new Pr(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new an(a||`Could not parse color from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"padding":{let r;for(const a of this.args){r=a.evaluate(t);const c=kn.parse(r);if(c)return c}throw new an(`Could not parse padding from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"numberArray":{let r;for(const a of this.args){r=a.evaluate(t);const c=gn.parse(r);if(c)return c}throw new an(`Could not parse numberArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"colorArray":{let r;for(const a of this.args){r=a.evaluate(t);const c=fn.parse(r);if(c)return c}throw new an(`Could not parse colorArray from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"variableAnchorOffsetCollection":{let r;for(const a of this.args){r=a.evaluate(t);const c=pi.parse(r);if(c)return c}throw new an(`Could not parse variableAnchorOffsetCollection from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"number":{let r=null;for(const a of this.args){if(r=a.evaluate(t),r===null)return 0;const c=Number(r);if(!isNaN(c))return c}throw new an(`Could not convert ${JSON.stringify(r)} to number.`)}case"formatted":return Sn.fromString($r(this.args[0].evaluate(t)));case"resolvedImage":return Gn.fromString($r(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return $r(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every((t=>t.outputDefined()))}}const Ka=["Unknown","Point","LineString","Polygon"];class Is{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?Ka[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(t){let r=this._parseColorCache.get(t);return r||(r=Pr.parse(t),this._parseColorCache.set(t,r)),r}}class Ca{constructor(t,r,a=[],c,p=new qr,_=[]){this.registry=t,this.path=a,this.key=a.map((v=>`[${v}]`)).join(""),this.scope=p,this.errors=_,this.expectedType=c,this._isConstant=r}parse(t,r,a,c,p={}){return r?this.concat(r,a,c)._parse(t,p):this._parse(t,p)}_parse(t,r){function a(c,p,_){return _==="assert"?new Li(p,[c]):_==="coerce"?new sa(p,[c]):c}if(t!==null&&typeof t!="string"&&typeof t!="boolean"&&typeof t!="number"||(t=["literal",t]),Array.isArray(t)){if(t.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const c=t[0];if(typeof c!="string")return this.error(`Expression name must be a string, but found ${typeof c} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const p=this.registry[c];if(p){let _=p.parse(t,this);if(!_)return null;if(this.expectedType){const v=this.expectedType,b=_.type;if(v.kind!=="string"&&v.kind!=="number"&&v.kind!=="boolean"&&v.kind!=="object"&&v.kind!=="array"||b.kind!=="value"){if(v.kind==="projectionDefinition"&&["string","array"].includes(b.kind)||["color","formatted","resolvedImage"].includes(v.kind)&&["value","string"].includes(b.kind)||["padding","numberArray"].includes(v.kind)&&["value","number","array"].includes(b.kind)||v.kind==="colorArray"&&["value","string","array"].includes(b.kind)||v.kind==="variableAnchorOffsetCollection"&&["value","array"].includes(b.kind))_=a(_,v,r.typeAnnotation||"coerce");else if(this.checkSubtype(v,b))return null}else _=a(_,v,r.typeAnnotation||"assert")}if(!(_ instanceof _a)&&_.type.kind!=="resolvedImage"&&this._isConstant(_)){const v=new Is;try{_=new _a(_.type,_.evaluate(v))}catch(b){return this.error(b.message),null}}return _}return this.error(`Unknown expression "${c}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(t===void 0?"'undefined' value invalid. Use null instead.":typeof t=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,r,a){const c=typeof t=="number"?this.path.concat(t):this.path,p=a?this.scope.concat(a):this.scope;return new Ca(this.registry,this._isConstant,c,r||null,p,this.errors)}error(t,...r){const a=`${this.key}${r.map((c=>`[${c}]`)).join("")}`;this.errors.push(new Yr(a,t))}checkSubtype(t,r){const a=di(t,r);return a&&this.error(a),a}}class Ja{constructor(t,r){this.type=r.type,this.bindings=[].concat(t),this.result=r}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const r of this.bindings)t(r[1]);t(this.result)}static parse(t,r){if(t.length<4)return r.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const a=[];for(let p=1;p=a.length)throw new an(`Array index out of bounds: ${r} > ${a.length-1}.`);if(r!==Math.floor(r))throw new an(`Array index must be an integer, but found ${r} instead.`);return a[r]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}}class vl{constructor(t,r){this.type=Rt,this.needle=t,this.haystack=r}static parse(t,r){if(t.length!==3)return r.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const a=r.parse(t[1],1,ur),c=r.parse(t[2],2,ur);return a&&c?Xi(a.type,[Rt,At,Ge,_t,ur])?new vl(a,c):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Qr(a.type)} instead`):null}evaluate(t){const r=this.needle.evaluate(t),a=this.haystack.evaluate(t);if(!a)return!1;if(!Zn(r,["boolean","string","number","null"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${Qr(Lr(r))} instead.`);if(!Zn(a,["string","array"]))throw new an(`Expected second argument to be of type array or string, but found ${Qr(Lr(a))} instead.`);return a.indexOf(r)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}}class Sa{constructor(t,r,a){this.type=Ge,this.needle=t,this.haystack=r,this.fromIndex=a}static parse(t,r){if(t.length<=2||t.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const a=r.parse(t[1],1,ur),c=r.parse(t[2],2,ur);if(!a||!c)return null;if(!Xi(a.type,[Rt,At,Ge,_t,ur]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Qr(a.type)} instead`);if(t.length===4){const p=r.parse(t[3],3,Ge);return p?new Sa(a,c,p):null}return new Sa(a,c)}evaluate(t){const r=this.needle.evaluate(t),a=this.haystack.evaluate(t);if(!Zn(r,["boolean","string","number","null"]))throw new an(`Expected first argument to be of type boolean, string, number or null, but found ${Qr(Lr(r))} instead.`);let c;if(this.fromIndex&&(c=this.fromIndex.evaluate(t)),Zn(a,["string"])){const p=a.indexOf(r,c);return p===-1?-1:[...a.slice(0,p)].length}if(Zn(a,["array"]))return a.indexOf(r,c);throw new an(`Expected second argument to be of type array or string, but found ${Qr(Lr(a))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}}class wi{constructor(t,r,a,c,p,_){this.inputType=t,this.type=r,this.input=a,this.cases=c,this.outputs=p,this.otherwise=_}static parse(t,r){if(t.length<5)return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return r.error("Expected an even number of arguments.");let a,c;r.expectedType&&r.expectedType.kind!=="value"&&(c=r.expectedType);const p={},_=[];for(let S=2;SNumber.MAX_SAFE_INTEGER)return F.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof U=="number"&&Math.floor(U)!==U)return F.error("Numeric branch labels must be integer values.");if(a){if(F.checkSubtype(a,Lr(U)))return null}else a=Lr(U);if(p[String(U)]!==void 0)return F.error("Branch labels must be unique.");p[String(U)]=_.length}const V=r.parse(L,S,c);if(!V)return null;c=c||V.type,_.push(V)}const v=r.parse(t[1],1,ur);if(!v)return null;const b=r.parse(t[t.length-1],t.length-1,c);return b?v.type.kind!=="value"&&r.concat(1).checkSubtype(a,v.type)?null:new wi(a,c,v,p,_,b):null}evaluate(t){const r=this.input.evaluate(t);return(Lr(r)===this.inputType&&this.outputs[this.cases[r]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}}class Qo{constructor(t,r,a){this.type=t,this.branches=r,this.otherwise=a}static parse(t,r){if(t.length<4)return r.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return r.error("Expected an odd number of arguments.");let a;r.expectedType&&r.expectedType.kind!=="value"&&(a=r.expectedType);const c=[];for(let _=1;_r.outputDefined()))&&this.otherwise.outputDefined()}}class Ms{constructor(t,r,a,c){this.type=t,this.input=r,this.beginIndex=a,this.endIndex=c}static parse(t,r){if(t.length<=2||t.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const a=r.parse(t[1],1,ur),c=r.parse(t[2],2,Ge);if(!a||!c)return null;if(!Xi(a.type,[tn(ur),At,ur]))return r.error(`Expected first argument to be of type array or string, but found ${Qr(a.type)} instead`);if(t.length===4){const p=r.parse(t[3],3,Ge);return p?new Ms(a.type,a,c,p):null}return new Ms(a.type,a,c)}evaluate(t){const r=this.input.evaluate(t),a=this.beginIndex.evaluate(t);let c;if(this.endIndex&&(c=this.endIndex.evaluate(t)),Zn(r,["string"]))return[...r].slice(a,c).join("");if(Zn(r,["array"]))return r.slice(a,c);throw new an(`Expected first argument to be of type array or string, but found ${Qr(Lr(r))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}}function ko(n,t){const r=n.length-1;let a,c,p=0,_=r,v=0;for(;p<=_;)if(v=Math.floor((p+_)/2),a=n[v],c=n[v+1],a<=t){if(v===r||tt))throw new an("Input is not a number.");_=v-1}return 0}class ei{constructor(t,r,a){this.type=t,this.input=r,this.labels=[],this.outputs=[];for(const[c,p]of a)this.labels.push(c),this.outputs.push(p)}static parse(t,r){if(t.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return r.error("Expected an even number of arguments.");const a=r.parse(t[1],1,Ge);if(!a)return null;const c=[];let p=null;r.expectedType&&r.expectedType.kind!=="value"&&(p=r.expectedType);for(let _=1;_=v)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',S);const L=r.parse(b,I,p);if(!L)return null;p=p||L.type,c.push([v,L])}return new ei(p,a,c)}evaluate(t){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(t);const c=this.input.evaluate(t);if(c<=r[0])return a[0].evaluate(t);const p=r.length;return c>=r[p-1]?a[p-1].evaluate(t):a[ko(r,c)].evaluate(t)}eachChild(t){t(this.input);for(const r of this.outputs)t(r)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Bh(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var ks,Ec,xp=(function(){if(Ec)return ks;function n(t,r,a,c){this.cx=3*t,this.bx=3*(a-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*r,this.by=3*(c-r)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=a,this.p2y=c}return Ec=1,ks=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,r){if(r===void 0&&(r=1e-6),t<0)return 0;if(t>1)return 1;for(var a=t,c=0;c<8;c++){var p=this.sampleCurveX(a)-t;if(Math.abs(p)p?v=a:b=a,a=.5*(b-v)+v;return a},solve:function(t,r){return this.sampleCurveY(this.solveCurveX(t,r))}},ks})(),es=Bh(xp);class Di{constructor(t,r,a,c,p){this.type=t,this.operator=r,this.interpolation=a,this.input=c,this.labels=[],this.outputs=[];for(const[_,v]of p)this.labels.push(_),this.outputs.push(v)}static interpolationFactor(t,r,a,c){let p=0;if(t.name==="exponential")p=As(r,t.base,a,c);else if(t.name==="linear")p=As(r,1,a,c);else if(t.name==="cubic-bezier"){const _=t.controlPoints;p=new es(_[0],_[1],_[2],_[3]).solve(As(r,1,a,c))}return p}static parse(t,r){let[a,c,p,..._]=t;if(!Array.isArray(c)||c.length===0)return r.error("Expected an interpolation type expression.",1);if(c[0]==="linear")c={name:"linear"};else if(c[0]==="exponential"){const S=c[1];if(typeof S!="number")return r.error("Exponential interpolation requires a numeric base.",1,1);c={name:"exponential",base:S}}else{if(c[0]!=="cubic-bezier")return r.error(`Unknown interpolation type ${String(c[0])}`,1,0);{const S=c.slice(1);if(S.length!==4||S.some((I=>typeof I!="number"||I<0||I>1)))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);c={name:"cubic-bezier",controlPoints:S}}}if(t.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(p=r.parse(p,2,Ge),!p)return null;const v=[];let b=null;a!=="interpolate-hcl"&&a!=="interpolate-lab"||r.expectedType==sn?r.expectedType&&r.expectedType.kind!=="value"&&(b=r.expectedType):b=Yt;for(let S=0;S<_.length;S+=2){const I=_[S],L=_[S+1],F=S+3,V=S+4;if(typeof I!="number")return r.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',F);if(v.length&&v[v.length-1][0]>=I)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',F);const U=r.parse(L,V,b);if(!U)return null;b=b||U.type,v.push([I,U])}return ni(b,Ge)||ni(b,br)||ni(b,Yt)||ni(b,_n)||ni(b,En)||ni(b,sn)||ni(b,In)||ni(b,tn(Ge))?new Di(b,a,c,p,v):r.error(`Type ${Qr(b)} is not interpolatable.`)}evaluate(t){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(t);const c=this.input.evaluate(t);if(c<=r[0])return a[0].evaluate(t);const p=r.length;if(c>=r[p-1])return a[p-1].evaluate(t);const _=ko(r,c),v=Di.interpolationFactor(this.interpolation,c,r[_],r[_+1]),b=a[_].evaluate(t),S=a[_+1].evaluate(t);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return Cn(b,S,v);case"color":return Pr.interpolate(b,S,v);case"padding":return kn.interpolate(b,S,v);case"colorArray":return fn.interpolate(b,S,v);case"numberArray":return gn.interpolate(b,S,v);case"variableAnchorOffsetCollection":return pi.interpolate(b,S,v);case"array":return $n(b,S,v);case"projectionDefinition":return jn.interpolate(b,S,v)}case"interpolate-hcl":switch(this.type.kind){case"color":return Pr.interpolate(b,S,v,"hcl");case"colorArray":return fn.interpolate(b,S,v,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return Pr.interpolate(b,S,v,"lab");case"colorArray":return fn.interpolate(b,S,v,"lab")}}}eachChild(t){t(this.input);for(const r of this.outputs)t(r)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function As(n,t,r,a){const c=a-r,p=n-r;return c===0?0:t===1?p/c:(Math.pow(t,p)-1)/(Math.pow(t,c)-1)}const Za={color:Pr.interpolate,number:Cn,padding:kn.interpolate,numberArray:gn.interpolate,colorArray:fn.interpolate,variableAnchorOffsetCollection:pi.interpolate,array:$n};class Es{constructor(t,r){this.type=t,this.args=r}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");let a=null;const c=r.expectedType;c&&c.kind!=="value"&&(a=c);const p=[];for(const v of t.slice(1)){const b=r.parse(v,1+p.length,a,void 0,{typeAnnotation:"omit"});if(!b)return null;a=a||b.type,p.push(b)}if(!a)throw new Error("No output type");const _=c&&p.some((v=>di(c,v.type)));return new Es(_?ur:a,p)}evaluate(t){let r,a=null,c=0;for(const p of this.args)if(c++,a=p.evaluate(t),a&&a instanceof Gn&&!a.available&&(r||(r=a.name),a=null,c===this.args.length&&(a=r)),a!==null)break;return a}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every((t=>t.outputDefined()))}}function zs(n,t){return n==="=="||n==="!="?t.kind==="boolean"||t.kind==="string"||t.kind==="number"||t.kind==="null"||t.kind==="value":t.kind==="string"||t.kind==="number"||t.kind==="value"}function Ls(n,t,r,a){return a.compare(t,r)===0}function Ni(n,t,r){const a=n!=="=="&&n!=="!=";return class t0{constructor(p,_,v){this.type=Rt,this.lhs=p,this.rhs=_,this.collator=v,this.hasUntypedArgument=p.type.kind==="value"||_.type.kind==="value"}static parse(p,_){if(p.length!==3&&p.length!==4)return _.error("Expected two or three arguments.");const v=p[0];let b=_.parse(p[1],1,ur);if(!b)return null;if(!zs(v,b.type))return _.concat(1).error(`"${v}" comparisons are not supported for type '${Qr(b.type)}'.`);let S=_.parse(p[2],2,ur);if(!S)return null;if(!zs(v,S.type))return _.concat(2).error(`"${v}" comparisons are not supported for type '${Qr(S.type)}'.`);if(b.type.kind!==S.type.kind&&b.type.kind!=="value"&&S.type.kind!=="value")return _.error(`Cannot compare types '${Qr(b.type)}' and '${Qr(S.type)}'.`);a&&(b.type.kind==="value"&&S.type.kind!=="value"?b=new Li(S.type,[b]):b.type.kind!=="value"&&S.type.kind==="value"&&(S=new Li(b.type,[S])));let I=null;if(p.length===4){if(b.type.kind!=="string"&&S.type.kind!=="string"&&b.type.kind!=="value"&&S.type.kind!=="value")return _.error("Cannot use collator to compare non-string types.");if(I=_.parse(p[3],3,rn),!I)return null}return new t0(b,S,I)}evaluate(p){const _=this.lhs.evaluate(p),v=this.rhs.evaluate(p);if(a&&this.hasUntypedArgument){const b=Lr(_),S=Lr(v);if(b.kind!==S.kind||b.kind!=="string"&&b.kind!=="number")throw new an(`Expected arguments for "${n}" to be (string, string) or (number, number), but found (${b.kind}, ${S.kind}) instead.`)}if(this.collator&&!a&&this.hasUntypedArgument){const b=Lr(_),S=Lr(v);if(b.kind!=="string"||S.kind!=="string")return t(p,_,v)}return this.collator?r(p,_,v,this.collator.evaluate(p)):t(p,_,v)}eachChild(p){p(this.lhs),p(this.rhs),this.collator&&p(this.collator)}outputDefined(){return!0}}}const Fh=Ni("==",(function(n,t,r){return t===r}),Ls),yl=Ni("!=",(function(n,t,r){return t!==r}),(function(n,t,r,a){return!Ls(0,t,r,a)})),bp=Ni("<",(function(n,t,r){return t",(function(n,t,r){return t>r}),(function(n,t,r,a){return a.compare(t,r)>0})),wp=Ni("<=",(function(n,t,r){return t<=r}),(function(n,t,r,a){return a.compare(t,r)<=0})),Tp=Ni(">=",(function(n,t,r){return t>=r}),(function(n,t,r,a){return a.compare(t,r)>=0}));class xl{constructor(t,r,a){this.type=rn,this.locale=a,this.caseSensitive=t,this.diacriticSensitive=r}static parse(t,r){if(t.length!==2)return r.error("Expected one argument.");const a=t[1];if(typeof a!="object"||Array.isArray(a))return r.error("Collator options argument must be an object.");const c=r.parse(a["case-sensitive"]!==void 0&&a["case-sensitive"],1,Rt);if(!c)return null;const p=r.parse(a["diacritic-sensitive"]!==void 0&&a["diacritic-sensitive"],1,Rt);if(!p)return null;let _=null;return a.locale&&(_=r.parse(a.locale,1,At),!_)?null:new xl(c,p,_)}evaluate(t){return new Mn(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}}class Lc{constructor(t,r,a,c,p){this.type=At,this.number=t,this.locale=r,this.currency=a,this.minFractionDigits=c,this.maxFractionDigits=p}static parse(t,r){if(t.length!==3)return r.error("Expected two arguments.");const a=r.parse(t[1],1,Ge);if(!a)return null;const c=t[2];if(typeof c!="object"||Array.isArray(c))return r.error("NumberFormat options argument must be an object.");let p=null;if(c.locale&&(p=r.parse(c.locale,1,At),!p))return null;let _=null;if(c.currency&&(_=r.parse(c.currency,1,At),!_))return null;let v=null;if(c["min-fraction-digits"]&&(v=r.parse(c["min-fraction-digits"],1,Ge),!v))return null;let b=null;return c["max-fraction-digits"]&&(b=r.parse(c["max-fraction-digits"],1,Ge),!b)?null:new Lc(a,p,_,v,b)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}}class Ao{constructor(t){this.type=pn,this.sections=t}static parse(t,r){if(t.length<2)return r.error("Expected at least one argument.");const a=t[1];if(!Array.isArray(a)&&typeof a=="object")return r.error("First argument must be an image or text section.");const c=[];let p=!1;for(let _=1;_<=t.length-1;++_){const v=t[_];if(p&&typeof v=="object"&&!Array.isArray(v)){p=!1;let b=null;if(v["font-scale"]&&(b=r.parse(v["font-scale"],1,Ge),!b))return null;let S=null;if(v["text-font"]&&(S=r.parse(v["text-font"],1,tn(At)),!S))return null;let I=null;if(v["text-color"]&&(I=r.parse(v["text-color"],1,Yt),!I))return null;let L=null;if(v["vertical-align"]){if(typeof v["vertical-align"]=="string"&&!bn.includes(v["vertical-align"]))return r.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${v["vertical-align"]}' instead.`);if(L=r.parse(v["vertical-align"],1,At),!L)return null}const F=c[c.length-1];F.scale=b,F.font=S,F.textColor=I,F.verticalAlign=L}else{const b=r.parse(t[_],1,ur);if(!b)return null;const S=b.type.kind;if(S!=="string"&&S!=="value"&&S!=="null"&&S!=="resolvedImage")return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");p=!0,c.push({content:b,scale:null,font:null,textColor:null,verticalAlign:null})}}return new Ao(c)}evaluate(t){return new Sn(this.sections.map((r=>{const a=r.content.evaluate(t);return Lr(a)===dr?new ln("",a,null,null,null,r.verticalAlign?r.verticalAlign.evaluate(t):null):new ln($r(a),null,r.scale?r.scale.evaluate(t):null,r.font?r.font.evaluate(t).join(","):null,r.textColor?r.textColor.evaluate(t):null,r.verticalAlign?r.verticalAlign.evaluate(t):null)})))}eachChild(t){for(const r of this.sections)t(r.content),r.scale&&t(r.scale),r.font&&t(r.font),r.textColor&&t(r.textColor),r.verticalAlign&&t(r.verticalAlign)}outputDefined(){return!1}}class Dc{constructor(t){this.type=dr,this.input=t}static parse(t,r){if(t.length!==2)return r.error("Expected two arguments.");const a=r.parse(t[1],1,At);return a?new Dc(a):r.error("No image name provided.")}evaluate(t){const r=this.input.evaluate(t),a=Gn.fromString(r);return a&&t.availableImages&&(a.available=t.availableImages.indexOf(r)>-1),a}eachChild(t){t(this.input)}outputDefined(){return!1}}class bl{constructor(t){this.type=Ge,this.input=t}static parse(t,r){if(t.length!==2)return r.error(`Expected 1 argument, but found ${t.length-1} instead.`);const a=r.parse(t[1],1);return a?a.type.kind!=="array"&&a.type.kind!=="string"&&a.type.kind!=="value"?r.error(`Expected argument of type string or array, but found ${Qr(a.type)} instead.`):new bl(a):null}evaluate(t){const r=this.input.evaluate(t);if(typeof r=="string")return[...r].length;if(Array.isArray(r))return r.length;throw new an(`Expected value to be of type string or array, but found ${Qr(Lr(r))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}}const Pa=8192;function Cp(n,t){const r=(180+n[0])/360,a=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n[1]*Math.PI/360)))/360,c=Math.pow(2,t.z);return[Math.round(r*c*Pa),Math.round(a*c*Pa)]}function wl(n,t){const r=Math.pow(2,t.z);return[(c=(n[0]/Pa+t.x)/r,360*c-180),(a=(n[1]/Pa+t.y)/r,360/Math.PI*Math.atan(Math.exp((180-360*a)*Math.PI/180))-90)];var a,c}function Ds(n,t){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function Rs(n,t){return!(n[0]<=t[0]||n[2]>=t[2]||n[1]<=t[1]||n[3]>=t[3])}function Sp(n,t,r){const a=n[0]-t[0],c=n[1]-t[1],p=n[0]-r[0],_=n[1]-r[1];return a*_-p*c==0&&a*p<=0&&c*_<=0}function Tl(n,t,r,a){return(c=[a[0]-r[0],a[1]-r[1]])[0]*(p=[t[0]-n[0],t[1]-n[1]])[1]-c[1]*p[0]!=0&&!(!Nh(n,t,r,a)||!Nh(r,a,n,t));var c,p}function Pp(n,t,r){for(const a of r)for(let c=0;c(c=n)[1]!=(_=v[b+1])[1]>c[1]&&c[0]<(_[0]-p[0])*(c[1]-p[1])/(_[1]-p[1])+p[0]&&(a=!a)}var c,p,_;return a}function Oh(n,t){for(const r of t)if(Eo(n,r))return!0;return!1}function Rc(n,t){for(const r of n)if(!Eo(r,t))return!1;for(let r=0;r0&&v<0||_<0&&v>0}function Bc(n,t,r){const a=[];for(let c=0;cr[2]){const c=.5*a;let p=n[0]-r[0]>c?-a:r[0]-n[0]>c?a:0;p===0&&(p=n[0]-r[2]>c?-a:r[2]-n[0]>c?a:0),n[0]+=p}Ds(t,n)}function Vh(n,t,r,a){const c=Math.pow(2,a.z)*Pa,p=[a.x*Pa,a.y*Pa],_=[];for(const v of n)for(const b of v){const S=[b.x+p[0],b.y+p[1]];Cl(S,t,r,c),_.push(S)}return _}function qh(n,t,r,a){const c=Math.pow(2,a.z)*Pa,p=[a.x*Pa,a.y*Pa],_=[];for(const b of n){const S=[];for(const I of b){const L=[I.x+p[0],I.y+p[1]];Ds(t,L),S.push(L)}_.push(S)}if(t[2]-t[0]<=c/2){(v=t)[0]=v[1]=1/0,v[2]=v[3]=-1/0;for(const b of _)for(const S of b)Cl(S,t,r,c)}var v;return _}class zo{constructor(t,r){this.type=Rt,this.geojson=t,this.geometries=r}static parse(t,r){if(t.length!==2)return r.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(qa(t[1])){const a=t[1];if(a.type==="FeatureCollection"){const c=[];for(const p of a.features){const{type:_,coordinates:v}=p.geometry;_==="Polygon"&&c.push(v),_==="MultiPolygon"&&c.push(...v)}if(c.length)return new zo(a,{type:"MultiPolygon",coordinates:c})}else if(a.type==="Feature"){const c=a.geometry.type;if(c==="Polygon"||c==="MultiPolygon")return new zo(a,a.geometry)}else if(a.type==="Polygon"||a.type==="MultiPolygon")return new zo(a,a)}return r.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return(function(r,a){const c=[1/0,1/0,-1/0,-1/0],p=[1/0,1/0,-1/0,-1/0],_=r.canonicalID();if(a.type==="Polygon"){const v=Bc(a.coordinates,p,_),b=Vh(r.geometry(),c,p,_);if(!Rs(c,p))return!1;for(const S of b)if(!Eo(S,v))return!1}if(a.type==="MultiPolygon"){const v=jh(a.coordinates,p,_),b=Vh(r.geometry(),c,p,_);if(!Rs(c,p))return!1;for(const S of b)if(!Oh(S,v))return!1}return!0})(t,this.geometries);if(t.geometryType()==="LineString")return(function(r,a){const c=[1/0,1/0,-1/0,-1/0],p=[1/0,1/0,-1/0,-1/0],_=r.canonicalID();if(a.type==="Polygon"){const v=Bc(a.coordinates,p,_),b=qh(r.geometry(),c,p,_);if(!Rs(c,p))return!1;for(const S of b)if(!Rc(S,v))return!1}if(a.type==="MultiPolygon"){const v=jh(a.coordinates,p,_),b=qh(r.geometry(),c,p,_);if(!Rs(c,p))return!1;for(const S of b)if(!Ip(S,v))return!1}return!0})(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let Fc=class{constructor(n=[],t=(r,a)=>ra?1:0){if(this.data=n,this.length=this.data.length,this.compare=t,this.length>0)for(let r=(this.length>>1)-1;r>=0;r--)this._down(r)}push(n){this.data.push(n),this._up(this.length++)}pop(){if(this.length===0)return;const n=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),n}peek(){return this.data[0]}_up(n){const{data:t,compare:r}=this,a=t[n];for(;n>0;){const c=n-1>>1,p=t[c];if(r(a,p)>=0)break;t[n]=p,n=c}t[n]=a}_down(n){const{data:t,compare:r}=this,a=this.length>>1,c=t[n];for(;n=0)break;t[n]=t[p],n=p}t[n]=c}};function Oc(n,t,r=0,a=n.length-1,c=Mp){for(;a>r;){if(a-r>600){const b=a-r+1,S=t-r+1,I=Math.log(b),L=.5*Math.exp(2*I/3),F=.5*Math.sqrt(I*L*(b-L)/b)*(S-b/2<0?-1:1);Oc(n,t,Math.max(r,Math.floor(t-S*L/b+F)),Math.min(a,Math.floor(t+(b-S)*L/b+F)),c)}const p=n[t];let _=r,v=a;for(Bs(n,r,t),c(n[a],p)>0&&Bs(n,r,a);_0;)v--}c(n[r],p)===0?Bs(n,r,v):(v++,Bs(n,v,a)),v<=t&&(r=v+1),t<=v&&(a=v-1)}}function Bs(n,t,r){const a=n[t];n[t]=n[r],n[r]=a}function Mp(n,t){return nt?1:0}function Fs(n,t){if(n.length<=1)return[n];const r=[];let a,c;for(const p of n){const _=kp(p);_!==0&&(p.area=Math.abs(_),c===void 0&&(c=_<0),c===_<0?(a&&r.push(a),a=[p]):a.push(p))}if(a&&r.push(a),t>1)for(let p=0;p1?(S=t[b+1][0],I=t[b+1][1]):V>0&&(S+=L/this.kx*V,I+=F/this.ky*V)),L=this.wrap(r[0]-S)*this.kx,F=(r[1]-I)*this.ky;const U=L*L+F*F;U180;)t-=360;return t}}function Gh(n,t){return t[0]-n[0]}function Sl(n){return n[1]-n[0]+1}function Qa(n,t){return n[1]>=n[0]&&n[1]n[1])return[null,null];const r=Sl(n);if(t){if(r===2)return[n,null];const c=Math.floor(r/2);return[[n[0],n[0]+c],[n[0]+c,n[1]]]}if(r===1)return[n,null];const a=Math.floor(r/2)-1;return[[n[0],n[0]+a],[n[0]+a+1,n[1]]]}function Vc(n,t){if(!Qa(t,n.length))return[1/0,1/0,-1/0,-1/0];const r=[1/0,1/0,-1/0,-1/0];for(let a=t[0];a<=t[1];++a)Ds(r,n[a]);return r}function qc(n){const t=[1/0,1/0,-1/0,-1/0];for(const r of n)for(const a of r)Ds(t,a);return t}function Hh(n){return n[0]!==-1/0&&n[1]!==-1/0&&n[2]!==1/0&&n[3]!==1/0}function Zc(n,t,r){if(!Hh(n)||!Hh(t))return NaN;let a=0,c=0;return n[2]t[2]&&(a=n[0]-t[2]),n[1]>t[3]&&(c=n[1]-t[3]),n[3]=a)return a;if(Rs(c,p)){if(Wh(n,t))return 0}else if(Wh(t,n))return 0;let _=1/0;for(const v of n)for(let b=0,S=v.length,I=S-1;b0;){const b=_.pop();if(b[0]>=p)continue;const S=b[1],I=t?50:100;if(Sl(S)<=I){if(!Qa(S,n.length))return NaN;if(t){const L=Lp(n,S,r,a);if(isNaN(L)||L===0)return L;p=Math.min(p,L)}else for(let L=S[0];L<=S[1];++L){const F=zp(n[L],r,a);if(p=Math.min(p,F),p===0)return 0}}else{const L=Pn(S,t);Xh(_,p,a,n,v,L[0]),Xh(_,p,a,n,v,L[1])}}return p}function Ml(n,t,r,a,c,p=1/0){let _=Math.min(p,c.distance(n[0],r[0]));if(_===0)return _;const v=new Fc([[0,[0,n.length-1],[0,r.length-1]]],Gh);for(;v.length>0;){const b=v.pop();if(b[0]>=_)continue;const S=b[1],I=b[2],L=t?50:100,F=a?50:100;if(Sl(S)<=L&&Sl(I)<=F){if(!Qa(S,n.length)&&Qa(I,r.length))return NaN;let V;if(t&&a)V=Ap(n,S,r,I,c),_=Math.min(_,V);else if(t&&!a){const U=n.slice(S[0],S[1]+1);for(let W=I[0];W<=I[1];++W)if(V=Lo(r[W],U,c),_=Math.min(_,V),_===0)return _}else if(!t&&a){const U=r.slice(I[0],I[1]+1);for(let W=S[0];W<=S[1];++W)if(V=Lo(n[W],U,c),_=Math.min(_,V),_===0)return _}else V=Ep(n,S,r,I,c),_=Math.min(_,V)}else{const V=Pn(S,t),U=Pn(I,a);Pl(v,_,c,n,r,V[0],U[0]),Pl(v,_,c,n,r,V[0],U[1]),Pl(v,_,c,n,r,V[1],U[0]),Pl(v,_,c,n,r,V[1],U[1])}}return _}function $c(n){return n.type==="MultiPolygon"?n.coordinates.map((t=>({type:"Polygon",coordinates:t}))):n.type==="MultiLineString"?n.coordinates.map((t=>({type:"LineString",coordinates:t}))):n.type==="MultiPoint"?n.coordinates.map((t=>({type:"Point",coordinates:t}))):[n]}class Do{constructor(t,r){this.type=Ge,this.geojson=t,this.geometries=r}static parse(t,r){if(t.length!==2)return r.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(qa(t[1])){const a=t[1];if(a.type==="FeatureCollection")return new Do(a,a.features.map((c=>$c(c.geometry))).flat());if(a.type==="Feature")return new Do(a,$c(a.geometry));if("type"in a&&"coordinates"in a)return new Do(a,$c(a))}return r.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return(function(r,a){const c=r.geometry(),p=c.flat().map((b=>wl([b.x,b.y],r.canonical)));if(c.length===0)return NaN;const _=new jc(p[0][1]);let v=1/0;for(const b of a){switch(b.type){case"Point":v=Math.min(v,Ml(p,!1,[b.coordinates],!1,_,v));break;case"LineString":v=Math.min(v,Ml(p,!1,b.coordinates,!0,_,v));break;case"Polygon":v=Math.min(v,Il(p,!1,b.coordinates,_,v))}if(v===0)return v}return v})(t,this.geometries);if(t.geometryType()==="LineString")return(function(r,a){const c=r.geometry(),p=c.flat().map((b=>wl([b.x,b.y],r.canonical)));if(c.length===0)return NaN;const _=new jc(p[0][1]);let v=1/0;for(const b of a){switch(b.type){case"Point":v=Math.min(v,Ml(p,!0,[b.coordinates],!1,_,v));break;case"LineString":v=Math.min(v,Ml(p,!0,b.coordinates,!0,_,v));break;case"Polygon":v=Math.min(v,Il(p,!0,b.coordinates,_,v))}if(v===0)return v}return v})(t,this.geometries);if(t.geometryType()==="Polygon")return(function(r,a){const c=r.geometry();if(c.length===0||c[0].length===0)return NaN;const p=Fs(c,0).map((b=>b.map((S=>S.map((I=>wl([I.x,I.y],r.canonical))))))),_=new jc(p[0][0][0][1]);let v=1/0;for(const b of a)for(const S of p){switch(b.type){case"Point":v=Math.min(v,Il([b.coordinates],!1,S,_,v));break;case"LineString":v=Math.min(v,Il(b.coordinates,!0,S,_,v));break;case"Polygon":v=Math.min(v,Dp(S,b.coordinates,_,v))}if(v===0)return v}return v})(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}class Os{constructor(t){this.type=ur,this.key=t}static parse(t,r){if(t.length!==2)return r.error(`Expected 1 argument, but found ${t.length-1} instead.`);const a=t[1];return a==null?r.error("Global state property must be defined."):typeof a!="string"?r.error(`Global state property must be string, but found ${typeof t[1]} instead.`):new Os(a)}evaluate(t){var r;const a=(r=t.globals)===null||r===void 0?void 0:r.globalState;return a&&Object.keys(a).length!==0?sr(a,this.key):null}eachChild(){}outputDefined(){return!1}}const ts={"==":Fh,"!=":yl,">":zc,"<":bp,">=":Tp,"<=":wp,array:Li,at:gl,boolean:Li,case:Qo,coalesce:Es,collator:xl,format:Ao,image:Dc,in:vl,"index-of":Sa,interpolate:Di,"interpolate-hcl":Di,"interpolate-lab":Di,length:bl,let:Ja,literal:_a,match:wi,number:Li,"number-format":Lc,object:Li,slice:Ms,step:ei,string:Li,"to-boolean":sa,"to-color":sa,"to-number":sa,"to-string":sa,var:Jo,within:zo,distance:Do,"global-state":Os};class va{constructor(t,r,a,c){this.name=t,this.type=r,this._evaluate=a,this.args=c}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(t,r){const a=t[0],c=va.definitions[a];if(!c)return r.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`,0);const p=Array.isArray(c)?c[0]:c.type,_=Array.isArray(c)?[[c[1],c[2]]]:c.overloads,v=_.filter((([S])=>!Array.isArray(S)||S.length===t.length-1));let b=null;for(const[S,I]of v){b=new Ca(r.registry,kl,r.path,null,r.scope);const L=[];let F=!1;for(let V=1;V{return F=L,Array.isArray(F)?`(${F.map(Qr).join(", ")})`:`(${Qr(F.type)}...)`;var F})).join(" | "),I=[];for(let L=1;L{r=t?r&&kl(a):r&&a instanceof _a})),!!r&&Al(n)&&El(n,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function Al(n){if(n instanceof va&&(n.name==="get"&&n.args.length===1||n.name==="feature-state"||n.name==="has"&&n.args.length===1||n.name==="properties"||n.name==="geometry-type"||n.name==="id"||/^filter-/.test(n.name))||n instanceof zo||n instanceof Do)return!1;let t=!0;return n.eachChild((r=>{t&&!Al(r)&&(t=!1)})),t}function Ns(n){if(n instanceof va&&n.name==="feature-state")return!1;let t=!0;return n.eachChild((r=>{t&&!Ns(r)&&(t=!1)})),t}function El(n,t){if(n instanceof va&&t.indexOf(n.name)>=0)return!1;let r=!0;return n.eachChild((a=>{r&&!El(a,t)&&(r=!1)})),r}function Jh(n){return{result:"success",value:n}}function rs(n){return{result:"error",value:n}}function fo(n){return n["property-type"]==="data-driven"||n["property-type"]==="cross-faded-data-driven"}function Qh(n){return!!n.expression&&n.expression.parameters.indexOf("zoom")>-1}function Hc(n){return!!n.expression&&n.expression.interpolated}function on(n){return n instanceof Number?"number":n instanceof String?"string":n instanceof Boolean?"boolean":Array.isArray(n)?"array":n===null?"null":typeof n}function js(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&Lr(n)===Er}function Rp(n){return n}function ed(n,t){const r=n.stops&&typeof n.stops[0][0]=="object",a=r||!(r||n.property!==void 0),c=n.type||(Hc(t)?"exponential":"interval"),p=(function(I){switch(I.type){case"color":return Pr.parse;case"padding":return kn.parse;case"numberArray":return gn.parse;case"colorArray":return fn.parse;default:return null}})(t);if(p&&((n=Hr({},n)).stops&&(n.stops=n.stops.map((I=>[I[0],p(I[1])]))),n.default=p(n.default?n.default:t.default)),n.colorSpace&&(_=n.colorSpace)!=="rgb"&&_!=="hcl"&&_!=="lab")throw new Error(`Unknown color space: "${n.colorSpace}"`);var _;const v=(function(I){switch(I){case"exponential":return rd;case"interval":return Bp;case"categorical":return td;case"identity":return Fp;default:throw new Error(`Unknown function type "${I}"`)}})(c);let b,S;if(c==="categorical"){b=Object.create(null);for(const I of n.stops)b[I[0]]=I[1];S=typeof n.stops[0][0]}if(r){const I={},L=[];for(let U=0;UU[0])),evaluate:({zoom:U},W)=>rd({stops:F,base:n.base},t,U).evaluate(U,W)}}if(a){const I=c==="exponential"?{name:"exponential",base:n.base!==void 0?n.base:1}:null;return{kind:"camera",interpolationType:I,interpolationFactor:Di.interpolationFactor.bind(void 0,I),zoomStops:n.stops.map((L=>L[0])),evaluate:({zoom:L})=>v(n,t,L,b,S)}}return{kind:"source",evaluate(I,L){const F=L&&L.properties?L.properties[n.property]:void 0;return F===void 0?mo(n.default,t.default):v(n,t,F,b,S)}}}function mo(n,t,r){return n!==void 0?n:t!==void 0?t:r!==void 0?r:void 0}function td(n,t,r,a,c){return mo(typeof r===c?a[r]:void 0,n.default,t.default)}function Bp(n,t,r){if(on(r)!=="number")return mo(n.default,t.default);const a=n.stops.length;if(a===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[a-1][0])return n.stops[a-1][1];const c=ko(n.stops.map((p=>p[0])),r);return n.stops[c][1]}function rd(n,t,r){const a=n.base!==void 0?n.base:1;if(on(r)!=="number")return mo(n.default,t.default);const c=n.stops.length;if(c===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[c-1][0])return n.stops[c-1][1];const p=ko(n.stops.map((I=>I[0])),r),_=(function(I,L,F,V){const U=V-F,W=I-F;return U===0?0:L===1?W/U:(Math.pow(L,W)-1)/(Math.pow(L,U)-1)})(r,a,n.stops[p][0],n.stops[p+1][0]),v=n.stops[p][1],b=n.stops[p+1][1],S=Za[t.type]||Rp;return typeof v.evaluate=="function"?{evaluate(...I){const L=v.evaluate.apply(void 0,I),F=b.evaluate.apply(void 0,I);if(L!==void 0&&F!==void 0)return S(L,F,_,n.colorSpace)}}:S(v,b,_,n.colorSpace)}function Fp(n,t,r){switch(t.type){case"color":r=Pr.parse(r);break;case"formatted":r=Sn.fromString(r.toString());break;case"resolvedImage":r=Gn.fromString(r.toString());break;case"padding":r=kn.parse(r);break;case"colorArray":r=fn.parse(r);break;case"numberArray":r=gn.parse(r);break;default:on(r)===t.type||t.type==="enum"&&t.values[r]||(r=void 0)}return mo(r,n.default,t.default)}va.register(ts,{error:[{kind:"error"},[At],(n,[t])=>{throw new an(t.evaluate(n))}],typeof:[At,[ur],(n,[t])=>Qr(Lr(t.evaluate(n)))],"to-rgba":[tn(Ge,4),[Yt],(n,[t])=>{const[r,a,c,p]=t.evaluate(n).rgb;return[255*r,255*a,255*c,p]}],rgb:[Yt,[Ge,Ge,Ge],Yh],rgba:[Yt,[Ge,Ge,Ge,Ge],Yh],has:{type:Rt,overloads:[[[At],(n,[t])=>Kh(t.evaluate(n),n.properties())],[[At,Er],(n,[t,r])=>Kh(t.evaluate(n),r.evaluate(n))]]},get:{type:ur,overloads:[[[At],(n,[t])=>Gc(t.evaluate(n),n.properties())],[[At,Er],(n,[t,r])=>Gc(t.evaluate(n),r.evaluate(n))]]},"feature-state":[ur,[At],(n,[t])=>Gc(t.evaluate(n),n.featureState||{})],properties:[Er,[],n=>n.properties()],"geometry-type":[At,[],n=>n.geometryType()],id:[ur,[],n=>n.id()],zoom:[Ge,[],n=>n.globals.zoom],"heatmap-density":[Ge,[],n=>n.globals.heatmapDensity||0],elevation:[Ge,[],n=>n.globals.elevation||0],"line-progress":[Ge,[],n=>n.globals.lineProgress||0],accumulated:[ur,[],n=>n.globals.accumulated===void 0?null:n.globals.accumulated],"+":[Ge,Ro(Ge),(n,t)=>{let r=0;for(const a of t)r+=a.evaluate(n);return r}],"*":[Ge,Ro(Ge),(n,t)=>{let r=1;for(const a of t)r*=a.evaluate(n);return r}],"-":{type:Ge,overloads:[[[Ge,Ge],(n,[t,r])=>t.evaluate(n)-r.evaluate(n)],[[Ge],(n,[t])=>-t.evaluate(n)]]},"/":[Ge,[Ge,Ge],(n,[t,r])=>t.evaluate(n)/r.evaluate(n)],"%":[Ge,[Ge,Ge],(n,[t,r])=>t.evaluate(n)%r.evaluate(n)],ln2:[Ge,[],()=>Math.LN2],pi:[Ge,[],()=>Math.PI],e:[Ge,[],()=>Math.E],"^":[Ge,[Ge,Ge],(n,[t,r])=>Math.pow(t.evaluate(n),r.evaluate(n))],sqrt:[Ge,[Ge],(n,[t])=>Math.sqrt(t.evaluate(n))],log10:[Ge,[Ge],(n,[t])=>Math.log(t.evaluate(n))/Math.LN10],ln:[Ge,[Ge],(n,[t])=>Math.log(t.evaluate(n))],log2:[Ge,[Ge],(n,[t])=>Math.log(t.evaluate(n))/Math.LN2],sin:[Ge,[Ge],(n,[t])=>Math.sin(t.evaluate(n))],cos:[Ge,[Ge],(n,[t])=>Math.cos(t.evaluate(n))],tan:[Ge,[Ge],(n,[t])=>Math.tan(t.evaluate(n))],asin:[Ge,[Ge],(n,[t])=>Math.asin(t.evaluate(n))],acos:[Ge,[Ge],(n,[t])=>Math.acos(t.evaluate(n))],atan:[Ge,[Ge],(n,[t])=>Math.atan(t.evaluate(n))],min:[Ge,Ro(Ge),(n,t)=>Math.min(...t.map((r=>r.evaluate(n))))],max:[Ge,Ro(Ge),(n,t)=>Math.max(...t.map((r=>r.evaluate(n))))],abs:[Ge,[Ge],(n,[t])=>Math.abs(t.evaluate(n))],round:[Ge,[Ge],(n,[t])=>{const r=t.evaluate(n);return r<0?-Math.round(-r):Math.round(r)}],floor:[Ge,[Ge],(n,[t])=>Math.floor(t.evaluate(n))],ceil:[Ge,[Ge],(n,[t])=>Math.ceil(t.evaluate(n))],"filter-==":[Rt,[At,ur],(n,[t,r])=>n.properties()[t.value]===r.value],"filter-id-==":[Rt,[ur],(n,[t])=>n.id()===t.value],"filter-type-==":[Rt,[At],(n,[t])=>n.geometryType()===t.value],"filter-<":[Rt,[At,ur],(n,[t,r])=>{const a=n.properties()[t.value],c=r.value;return typeof a==typeof c&&a{const r=n.id(),a=t.value;return typeof r==typeof a&&r":[Rt,[At,ur],(n,[t,r])=>{const a=n.properties()[t.value],c=r.value;return typeof a==typeof c&&a>c}],"filter-id->":[Rt,[ur],(n,[t])=>{const r=n.id(),a=t.value;return typeof r==typeof a&&r>a}],"filter-<=":[Rt,[At,ur],(n,[t,r])=>{const a=n.properties()[t.value],c=r.value;return typeof a==typeof c&&a<=c}],"filter-id-<=":[Rt,[ur],(n,[t])=>{const r=n.id(),a=t.value;return typeof r==typeof a&&r<=a}],"filter->=":[Rt,[At,ur],(n,[t,r])=>{const a=n.properties()[t.value],c=r.value;return typeof a==typeof c&&a>=c}],"filter-id->=":[Rt,[ur],(n,[t])=>{const r=n.id(),a=t.value;return typeof r==typeof a&&r>=a}],"filter-has":[Rt,[ur],(n,[t])=>t.value in n.properties()],"filter-has-id":[Rt,[],n=>n.id()!==null&&n.id()!==void 0],"filter-type-in":[Rt,[tn(At)],(n,[t])=>t.value.indexOf(n.geometryType())>=0],"filter-id-in":[Rt,[tn(ur)],(n,[t])=>t.value.indexOf(n.id())>=0],"filter-in-small":[Rt,[At,tn(ur)],(n,[t,r])=>r.value.indexOf(n.properties()[t.value])>=0],"filter-in-large":[Rt,[At,tn(ur)],(n,[t,r])=>(function(a,c,p,_){for(;p<=_;){const v=p+_>>1;if(c[v]===a)return!0;c[v]>a?_=v-1:p=v+1}return!1})(n.properties()[t.value],r.value,0,r.value.length-1)],all:{type:Rt,overloads:[[[Rt,Rt],(n,[t,r])=>t.evaluate(n)&&r.evaluate(n)],[Ro(Rt),(n,t)=>{for(const r of t)if(!r.evaluate(n))return!1;return!0}]]},any:{type:Rt,overloads:[[[Rt,Rt],(n,[t,r])=>t.evaluate(n)||r.evaluate(n)],[Ro(Rt),(n,t)=>{for(const r of t)if(r.evaluate(n))return!0;return!1}]]},"!":[Rt,[Rt],(n,[t])=>!t.evaluate(n)],"is-supported-script":[Rt,[At],(n,[t])=>{const r=n.globals&&n.globals.isSupportedScript;return!r||r(t.evaluate(n))}],upcase:[At,[At],(n,[t])=>t.evaluate(n).toUpperCase()],downcase:[At,[At],(n,[t])=>t.evaluate(n).toLowerCase()],concat:[At,Ro(ur),(n,t)=>t.map((r=>$r(r.evaluate(n)))).join("")],"resolved-locale":[At,[rn],(n,[t])=>t.evaluate(n).resolvedLocale()]});class Wc{constructor(t,r){this.expression=t,this._warningHistory={},this._evaluator=new Is,this._defaultValue=r?(function(a){if(a.type==="color"&&js(a.default))return new Pr(0,0,0,0);switch(a.type){case"color":return Pr.parse(a.default)||null;case"padding":return kn.parse(a.default)||null;case"numberArray":return gn.parse(a.default)||null;case"colorArray":return fn.parse(a.default)||null;case"variableAnchorOffsetCollection":return pi.parse(a.default)||null;case"projectionDefinition":return jn.parse(a.default)||null;default:return a.default===void 0?null:a.default}})(r):null,this._enumValues=r&&r.type==="enum"?r.values:null}evaluateWithoutErrorHandling(t,r,a,c,p,_){return this._evaluator.globals=t,this._evaluator.feature=r,this._evaluator.featureState=a,this._evaluator.canonical=c,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=_,this.expression.evaluate(this._evaluator)}evaluate(t,r,a,c,p,_){this._evaluator.globals=t,this._evaluator.feature=r||null,this._evaluator.featureState=a||null,this._evaluator.canonical=c,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=_||null;try{const v=this.expression.evaluate(this._evaluator);if(v==null||typeof v=="number"&&v!=v)return this._defaultValue;if(this._enumValues&&!(v in this._enumValues))throw new an(`Expected value to be one of ${Object.keys(this._enumValues).map((b=>JSON.stringify(b))).join(", ")}, but found ${JSON.stringify(v)} instead.`);return v}catch(v){return this._warningHistory[v.message]||(this._warningHistory[v.message]=!0,typeof console<"u"&&console.warn(v.message)),this._defaultValue}}}function zl(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="string"&&n[0]in ts}function Vs(n,t){const r=new Ca(ts,kl,[],t?(function(c){const p={color:Yt,string:At,number:Ge,enum:At,boolean:Rt,formatted:pn,padding:_n,numberArray:En,colorArray:sn,projectionDefinition:br,resolvedImage:dr,variableAnchorOffsetCollection:In};return c.type==="array"?tn(p[c.value]||ur,c.length):p[c.type]})(t):void 0),a=r.parse(n,void 0,void 0,void 0,t&&t.type==="string"?{typeAnnotation:"coerce"}:void 0);return a?Jh(new Wc(a,t)):rs(r.errors)}class qs{constructor(t,r){this.kind=t,this._styleExpression=r,this.isStateDependent=t!=="constant"&&!Ns(r.expression),this.globalStateRefs=$s(r.expression)}evaluateWithoutErrorHandling(t,r,a,c,p,_){return this._styleExpression.evaluateWithoutErrorHandling(t,r,a,c,p,_)}evaluate(t,r,a,c,p,_){return this._styleExpression.evaluate(t,r,a,c,p,_)}}class Xc{constructor(t,r,a,c){this.kind=t,this.zoomStops=a,this._styleExpression=r,this.isStateDependent=t!=="camera"&&!Ns(r.expression),this.globalStateRefs=$s(r.expression),this.interpolationType=c}evaluateWithoutErrorHandling(t,r,a,c,p,_){return this._styleExpression.evaluateWithoutErrorHandling(t,r,a,c,p,_)}evaluate(t,r,a,c,p,_){return this._styleExpression.evaluate(t,r,a,c,p,_)}interpolationFactor(t,r,a){return this.interpolationType?Di.interpolationFactor(this.interpolationType,t,r,a):0}}function nd(n,t){const r=Vs(n,t);if(r.result==="error")return r;const a=r.value.expression,c=Al(a);if(!c&&!fo(t))return rs([new Yr("","data expressions not supported")]);const p=El(a,["zoom"]);if(!p&&!Qh(t))return rs([new Yr("","zoom expressions not supported")]);const _=Us(a);return _||p?_ instanceof Yr?rs([_]):_ instanceof Di&&!Hc(t)?rs([new Yr("",'"interpolate" expressions cannot be used with this property')]):Jh(_?new Xc(c?"camera":"composite",r.value,_.labels,_ instanceof Di?_.interpolation:void 0):new qs(c?"constant":"source",r.value)):rs([new Yr("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Zs{constructor(t,r){this._parameters=t,this._specification=r,Hr(this,ed(this._parameters,this._specification))}static deserialize(t){return new Zs(t._parameters,t._specification)}static serialize(t){return{_parameters:t._parameters,_specification:t._specification}}}function Us(n){let t=null;if(n instanceof Ja)t=Us(n.result);else if(n instanceof Es){for(const r of n.args)if(t=Us(r),t)break}else(n instanceof ei||n instanceof Di)&&n.input instanceof va&&n.input.name==="zoom"&&(t=n);return t instanceof Yr||n.eachChild((r=>{const a=Us(r);a instanceof Yr?t=a:!t&&a?t=new Yr("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):t&&a&&t!==a&&(t=new Yr("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))})),t}function $s(n,t=new Set){return n instanceof Os&&t.add(n.key),n.eachChild((r=>{$s(r,t)})),t}function Ll(n){if(n===!0||n===!1)return!0;if(!Array.isArray(n)||n.length===0)return!1;switch(n[0]){case"has":return n.length>=2&&n[1]!=="$id"&&n[1]!=="$type";case"in":return n.length>=3&&(typeof n[1]!="string"||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return n.length!==3||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const t of n.slice(1))if(!Ll(t)&&typeof t!="boolean")return!1;return!0;default:return!0}}const Yc={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function Bo(n){if(n==null)return{filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};Ll(n)||(n=Fo(n));const t=Vs(n,Yc);if(t.result==="error")throw new Error(t.value.map((r=>`${r.key}: ${r.message}`)).join(", "));return{filter:(r,a,c)=>t.value.evaluate(r,a,{},c),needGeometry:Dl(n),getGlobalStateRefs:()=>$s(t.value.expression)}}function Kc(n,t){return nt?1:0}function Dl(n){if(!Array.isArray(n))return!1;if(n[0]==="within"||n[0]==="distance")return!0;for(let t=1;t"||t==="<="||t===">="?Jc(n[1],n[2],t):t==="any"?(r=n.slice(1),["any"].concat(r.map(Fo))):t==="all"?["all"].concat(n.slice(1).map(Fo)):t==="none"?["all"].concat(n.slice(1).map(Fo).map(Rl)):t==="in"?id(n[1],n.slice(2)):t==="!in"?Rl(id(n[1],n.slice(2))):t==="has"?ad(n[1]):t!=="!has"||Rl(ad(n[1]));var r}function Jc(n,t,r){switch(n){case"$type":return[`filter-type-${r}`,t];case"$id":return[`filter-id-${r}`,t];default:return[`filter-${r}`,n,t]}}function id(n,t){if(t.length===0)return!1;switch(n){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some((r=>typeof r!=typeof t[0]))?["filter-in-large",n,["literal",t.sort(Kc)]]:["filter-in-small",n,["literal",t]]}}function ad(n){switch(n){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",n]}}function Rl(n){return["!",n]}function Qc(n){const t=typeof n;if(t==="number"||t==="boolean"||t==="string"||n==null)return JSON.stringify(n);if(Array.isArray(n)){let c="[";for(const p of n)c+=`${Qc(p)},`;return`${c}]`}const r=Object.keys(n).sort();let a="{";for(let c=0;ca.maximum?[new ht(t,r,`${r} is greater than the maximum value ${a.maximum}`)]:[]}function od(n){const t=n.valueSpec,r=Yn(n.value.type);let a,c,p,_={};const v=r!=="categorical"&&n.value.property===void 0,b=!v,S=on(n.value.stops)==="array"&&on(n.value.stops[0])==="array"&&on(n.value.stops[0][0])==="object",I=ya({key:n.key,value:n.value,valueSpec:n.styleSpec.function,validateSpec:n.validateSpec,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{stops:function(V){if(r==="identity")return[new ht(V.key,V.value,'identity function may not have a "stops" property')];let U=[];const W=V.value;return U=U.concat(Bl({key:V.key,value:W,valueSpec:V.valueSpec,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec,arrayElementValidator:L})),on(W)==="array"&&W.length===0&&U.push(new ht(V.key,W,"array must have at least one stop")),U},default:function(V){return V.validateSpec({key:V.key,value:V.value,valueSpec:t,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec})}}});return r==="identity"&&v&&I.push(new ht(n.key,n.value,'missing required property "property"')),r==="identity"||n.value.stops||I.push(new ht(n.key,n.value,'missing required property "stops"')),r==="exponential"&&n.valueSpec.expression&&!Hc(n.valueSpec)&&I.push(new ht(n.key,n.value,"exponential functions not supported")),n.styleSpec.$version>=8&&(b&&!fo(n.valueSpec)?I.push(new ht(n.key,n.value,"property functions not supported")):v&&!Qh(n.valueSpec)&&I.push(new ht(n.key,n.value,"zoom functions not supported"))),r!=="categorical"&&!S||n.value.property!==void 0||I.push(new ht(n.key,n.value,'"property" property is required')),I;function L(V){let U=[];const W=V.value,J=V.key;if(on(W)!=="array")return[new ht(J,W,`array expected, ${on(W)} found`)];if(W.length!==2)return[new ht(J,W,`array length 2 expected, length ${W.length} found`)];if(S){if(on(W[0])!=="object")return[new ht(J,W,`object expected, ${on(W[0])} found`)];if(W[0].zoom===void 0)return[new ht(J,W,"object stop key must have zoom")];if(W[0].value===void 0)return[new ht(J,W,"object stop key must have value")];if(p&&p>Yn(W[0].zoom))return[new ht(J,W[0].zoom,"stop zoom values must appear in ascending order")];Yn(W[0].zoom)!==p&&(p=Yn(W[0].zoom),c=void 0,_={}),U=U.concat(ya({key:`${J}[0]`,value:W[0],valueSpec:{zoom:{}},validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec,objectElementValidators:{zoom:Gs,value:F}}))}else U=U.concat(F({key:`${J}[0]`,value:W[0],validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec},W));return zl(Ua(W[1]))?U.concat([new ht(`${J}[1]`,W[1],"expressions are not allowed in function stops.")]):U.concat(V.validateSpec({key:`${J}[1]`,value:W[1],valueSpec:t,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec}))}function F(V,U){const W=on(V.value),J=Yn(V.value),le=V.value!==null?V.value:U;if(a){if(W!==a)return[new ht(V.key,le,`${W} stop domain type must match previous stop domain type ${a}`)]}else a=W;if(W!=="number"&&W!=="string"&&W!=="boolean")return[new ht(V.key,le,"stop domain value must be a number, string, or boolean")];if(W!=="number"&&r!=="categorical"){let Le=`number expected, ${W} found`;return fo(t)&&r===void 0&&(Le+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ht(V.key,le,Le)]}return r!=="categorical"||W!=="number"||isFinite(J)&&Math.floor(J)===J?r!=="categorical"&&W==="number"&&c!==void 0&&Jnew ht(`${n.key}${a.key}`,n.value,a.message)));const r=t.value.expression||t.value._styleExpression.expression;if(n.expressionContext==="property"&&n.propertyKey==="text-font"&&!r.outputDefined())return[new ht(n.key,n.value,`Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.`)];if(n.expressionContext==="property"&&n.propertyType==="layout"&&!Ns(r))return[new ht(n.key,n.value,'"feature-state" data expressions are not supported with layout properties.')];if(n.expressionContext==="filter"&&!Ns(r))return[new ht(n.key,n.value,'"feature-state" data expressions are not supported with filters.')];if(n.expressionContext&&n.expressionContext.indexOf("cluster")===0){if(!El(r,["zoom","feature-state"]))return[new ht(n.key,n.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(n.expressionContext==="cluster-initial"&&!Al(r))return[new ht(n.key,n.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Fl(n){const t=n.key,r=n.value,a=on(r);return a!=="string"?[new ht(t,r,`color expected, ${a} found`)]:Pr.parse(String(r))?[]:[new ht(t,r,`color expected, "${r}" found`)]}function eo(n){const t=n.key,r=n.value,a=n.valueSpec,c=[];return Array.isArray(a.values)?a.values.indexOf(Yn(r))===-1&&c.push(new ht(t,r,`expected one of [${a.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(a.values).indexOf(Yn(r))===-1&&c.push(new ht(t,r,`expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(r)} found`)),c}function tu(n){return Ll(Ua(n.value))?Oo(Hr({},n,{expressionContext:"filter",valueSpec:{value:"boolean"}})):sd(n)}function sd(n){const t=n.value,r=n.key;if(on(t)!=="array")return[new ht(r,t,`array expected, ${on(t)} found`)];const a=n.styleSpec;let c,p=[];if(t.length<1)return[new ht(r,t,"filter array must have at least 1 element")];switch(p=p.concat(eo({key:`${r}[0]`,value:t[0],valueSpec:a.filter_operator,style:n.style,styleSpec:n.styleSpec})),Yn(t[0])){case"<":case"<=":case">":case">=":t.length>=2&&Yn(t[1])==="$type"&&p.push(new ht(r,t,`"$type" cannot be use with operator "${t[0]}"`));case"==":case"!=":t.length!==3&&p.push(new ht(r,t,`filter array for operator "${t[0]}" must have 3 elements`));case"in":case"!in":t.length>=2&&(c=on(t[1]),c!=="string"&&p.push(new ht(`${r}[1]`,t[1],`string expected, ${c} found`)));for(let _=2;_{S in r&&t.push(new ht(a,r[S],`"${S}" is prohibited for ref layers`))})),c.layers.forEach((S=>{Yn(S.id)===v&&(b=S)})),b?b.ref?t.push(new ht(a,r.ref,"ref cannot reference another ref layer")):_=Yn(b.type):t.push(new ht(a,r.ref,`ref layer "${v}" not found`))}else if(_!=="background")if(r.source){const b=c.sources&&c.sources[r.source],S=b&&Yn(b.type);b?S==="vector"&&_==="raster"?t.push(new ht(a,r.source,`layer "${r.id}" requires a raster source`)):S!=="raster-dem"&&_==="hillshade"||S!=="raster-dem"&&_==="color-relief"?t.push(new ht(a,r.source,`layer "${r.id}" requires a raster-dem source`)):S==="raster"&&_!=="raster"?t.push(new ht(a,r.source,`layer "${r.id}" requires a vector source`)):S!=="vector"||r["source-layer"]?S==="raster-dem"&&_!=="hillshade"&&_!=="color-relief"?t.push(new ht(a,r.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):_!=="line"||!r.paint||!r.paint["line-gradient"]||S==="geojson"&&b.lineMetrics||t.push(new ht(a,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new ht(a,r,`layer "${r.id}" must specify a "source-layer"`)):t.push(new ht(a,r.source,`source "${r.source}" not found`))}else t.push(new ht(a,r,'missing required property "source"'));return t=t.concat(ya({key:a,value:r,valueSpec:p.layer,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,objectElementValidators:{"*":()=>[],type:()=>n.validateSpec({key:`${a}.type`,value:r.type,valueSpec:p.layer.type,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,object:r,objectKey:"type"}),filter:tu,layout:b=>ya({layer:r,key:b.key,value:b.value,style:b.style,styleSpec:b.styleSpec,validateSpec:b.validateSpec,objectElementValidators:{"*":S=>ud(Hr({layerType:_},S))}}),paint:b=>ya({layer:r,key:b.key,value:b.value,style:b.style,styleSpec:b.styleSpec,validateSpec:b.validateSpec,objectElementValidators:{"*":S=>cd(Hr({layerType:_},S))}})}})),t}function Ia(n){const t=n.value,r=n.key,a=on(t);return a!=="string"?[new ht(r,t,`string expected, ${a} found`)]:[]}const ns={promoteId:function({key:n,value:t}){if(on(t)==="string")return Ia({key:n,value:t});{const r=[];for(const a in t)r.push(...Ia({key:`${n}.${a}`,value:t[a]}));return r}}};function Qi(n){const t=n.value,r=n.key,a=n.styleSpec,c=n.style,p=n.validateSpec;if(!t.type)return[new ht(r,t,'"type" is required')];const _=Yn(t.type);let v;switch(_){case"vector":case"raster":return v=ya({key:r,value:t,valueSpec:a[`source_${_.replace("-","_")}`],style:n.style,styleSpec:a,objectElementValidators:ns,validateSpec:p}),v;case"raster-dem":return v=(function(b){var S;const I=(S=b.sourceName)!==null&&S!==void 0?S:"",L=b.value,F=b.styleSpec,V=F.source_raster_dem,U=b.style;let W=[];const J=on(L);if(L===void 0)return W;if(J!=="object")return W.push(new ht("source_raster_dem",L,`object expected, ${J} found`)),W;const le=Yn(L.encoding)==="custom",Le=["redFactor","greenFactor","blueFactor","baseShift"],ye=b.value.encoding?`"${b.value.encoding}"`:"Default";for(const Ce in L)!le&&Le.includes(Ce)?W.push(new ht(Ce,L[Ce],`In "${I}": "${Ce}" is only valid when "encoding" is set to "custom". ${ye} encoding found`)):V[Ce]?W=W.concat(b.validateSpec({key:Ce,value:L[Ce],valueSpec:V[Ce],validateSpec:b.validateSpec,style:U,styleSpec:F})):W.push(new ht(Ce,L[Ce],`unknown property "${Ce}"`));return W})({sourceName:r,value:t,style:n.style,styleSpec:a,validateSpec:p}),v;case"geojson":if(v=ya({key:r,value:t,valueSpec:a.source_geojson,style:c,styleSpec:a,validateSpec:p,objectElementValidators:ns}),t.cluster)for(const b in t.clusterProperties){const[S,I]=t.clusterProperties[b],L=typeof S=="string"?[S,["accumulated"],["get",b]]:S;v.push(...Oo({key:`${r}.${b}.map`,value:I,expressionContext:"cluster-map"})),v.push(...Oo({key:`${r}.${b}.reduce`,value:L,expressionContext:"cluster-reduce"}))}return v;case"video":return ya({key:r,value:t,valueSpec:a.source_video,style:c,validateSpec:p,styleSpec:a});case"image":return ya({key:r,value:t,valueSpec:a.source_image,style:c,validateSpec:p,styleSpec:a});case"canvas":return[new ht(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return eo({key:`${r}.type`,value:t.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function is(n){const t=n.value,r=n.styleSpec,a=r.light,c=n.style;let p=[];const _=on(t);if(t===void 0)return p;if(_!=="object")return p=p.concat([new ht("light",t,`object expected, ${_} found`)]),p;for(const v in t){const b=v.match(/^(.*)-transition$/);p=p.concat(b&&a[b[1]]&&a[b[1]].transition?n.validateSpec({key:v,value:t[v],valueSpec:r.transition,validateSpec:n.validateSpec,style:c,styleSpec:r}):a[v]?n.validateSpec({key:v,value:t[v],valueSpec:a[v],validateSpec:n.validateSpec,style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)])}return p}function ru(n){const t=n.value,r=n.styleSpec,a=r.sky,c=n.style,p=on(t);if(t===void 0)return[];if(p!=="object")return[new ht("sky",t,`object expected, ${p} found`)];let _=[];for(const v in t)_=_.concat(a[v]?n.validateSpec({key:v,value:t[v],valueSpec:a[v],style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)]);return _}function dd(n){const t=n.value,r=n.styleSpec,a=r.terrain,c=n.style;let p=[];const _=on(t);if(t===void 0)return p;if(_!=="object")return p=p.concat([new ht("terrain",t,`object expected, ${_} found`)]),p;for(const v in t)p=p.concat(a[v]?n.validateSpec({key:v,value:t[v],valueSpec:a[v],validateSpec:n.validateSpec,style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)]);return p}function pd(n){let t=[];const r=n.value,a=n.key;if(Array.isArray(r)){const c=[],p=[];for(const _ in r)r[_].id&&c.includes(r[_].id)&&t.push(new ht(a,r,`all the sprites' ids must be unique, but ${r[_].id} is duplicated`)),c.push(r[_].id),r[_].url&&p.includes(r[_].url)&&t.push(new ht(a,r,`all the sprites' URLs must be unique, but ${r[_].url} is duplicated`)),p.push(r[_].url),t=t.concat(ya({key:`${a}[${_}]`,value:r[_],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:n.validateSpec}));return t}return Ia({key:a,value:r})}function as(n){return t=n.value,t&&t.constructor===Object?[]:[new ht(n.key,n.value,`object expected, ${on(n.value)} found`)];var t}const nu={"*":()=>[],array:Bl,boolean:function(n){const t=n.value,r=n.key,a=on(t);return a!=="boolean"?[new ht(r,t,`boolean expected, ${a} found`)]:[]},number:Gs,color:Fl,constants:eu,enum:eo,filter:tu,function:od,layer:hd,object:ya,source:Qi,light:is,sky:ru,terrain:dd,projection:function(n){const t=n.value,r=n.styleSpec,a=r.projection,c=n.style,p=on(t);if(t===void 0)return[];if(p!=="object")return[new ht("projection",t,`object expected, ${p} found`)];let _=[];for(const v in t)_=_.concat(a[v]?n.validateSpec({key:v,value:t[v],valueSpec:a[v],style:c,styleSpec:r}):[new ht(v,t[v],`unknown property "${v}"`)]);return _},projectionDefinition:function(n){const t=n.key;let r=n.value;r=r instanceof String?r.valueOf():r;const a=on(r);return a!=="array"||(function(c){return Array.isArray(c)&&c.length===3&&typeof c[0]=="string"&&typeof c[1]=="string"&&typeof c[2]=="number"})(r)||(function(c){return!!["interpolate","step","literal"].includes(c[0])})(r)?["array","string"].includes(a)?[]:[new ht(t,r,`projection expected, invalid type "${a}" found`)]:[new ht(t,r,`projection expected, invalid array ${JSON.stringify(r)} found`)]},string:Ia,formatted:function(n){return Ia(n).length===0?[]:Oo(n)},resolvedImage:function(n){return Ia(n).length===0?[]:Oo(n)},padding:function(n){const t=n.key,r=n.value;if(on(r)==="array"){if(r.length<1||r.length>4)return[new ht(t,r,`padding requires 1 to 4 values; ${r.length} values found`)];const a={type:"number"};let c=[];for(let p=0;p[]}})),n.constants&&(r=r.concat(eu({key:"constants",value:n.constants}))),ss(r)}function Ma(n){return function(t){return n({...t,validateSpec:os})}}function ss(n){return[].concat(n).sort(((t,r)=>t.line-r.line))}function ka(n){return function(...t){return ss(n.apply(this,t))}}ea.source=ka(Ma(Qi)),ea.sprite=ka(Ma(pd)),ea.glyphs=ka(Ma(fd)),ea.light=ka(Ma(is)),ea.sky=ka(Ma(ru)),ea.terrain=ka(Ma(dd)),ea.state=ka(Ma(as)),ea.layer=ka(Ma(hd)),ea.filter=ka(Ma(tu)),ea.paintProperty=ka(Ma(cd)),ea.layoutProperty=ka(Ma(ud));const ls=ea,Np=ls.light,Hs=ls.sky,jp=ls.paintProperty,Vp=ls.layoutProperty;function Ws(n,t){let r=!1;if(t&&t.length)for(const a of t)n.fire(new $e(new Error(a.message))),r=!0;return r}class Xs{constructor(t,r,a){const c=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;const _=new Int32Array(this.arrayBuffer);t=_[0],this.d=(r=_[1])+2*(a=_[2]);for(let b=0;b=L[U+0]&&c>=L[U+1])?(v[V]=!0,_.push(I[V])):v[V]=!1}}}}_forEachCell(t,r,a,c,p,_,v,b){const S=this._convertToCellCoord(t),I=this._convertToCellCoord(r),L=this._convertToCellCoord(a),F=this._convertToCellCoord(c);for(let V=S;V<=L;V++)for(let U=I;U<=F;U++){const W=this.d*U+V;if((!b||b(this._convertFromCellCoord(V),this._convertFromCellCoord(U),this._convertFromCellCoord(V+1),this._convertFromCellCoord(U+1)))&&p.call(this,t,r,a,c,W,_,v,b))return}}_convertFromCellCoord(t){return(t-this.padding)/this.scale}_convertToCellCoord(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const t=this.cells,r=3+this.cells.length+1+1;let a=0;for(let _=0;_=0)continue;const _=n[p];c[p]=Aa[r].shallow.indexOf(p)>=0?_:cs(_,t)}n instanceof Error&&(c.message=n.message)}if(c.$name)throw new Error("$name property is reserved for worker serialization logic.");return r!=="Object"&&(c.$name=r),c}function No(n){if(au(n))return n;if(Array.isArray(n))return n.map(No);if(typeof n!="object")throw new Error("can't deserialize object of type "+typeof n);const t=Ol(n)||"Object";if(!Aa[t])throw new Error(`can't deserialize unregistered class ${t}`);const{klass:r}=Aa[t];if(!r)throw new Error(`can't deserialize unregistered class ${t}`);if(r.deserialize)return r.deserialize(n);const a=Object.create(r.prototype);for(const c of Object.keys(n)){if(c==="$name")continue;const p=n[c];a[c]=Aa[t].shallow.indexOf(c)>=0?p:No(p)}return a}class Nl{constructor(){this.first=!0}update(t,r){const a=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=a,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=a,!0):(this.lastFloorZoom>a?(this.lastIntegerZoom=a+1,this.lastIntegerZoomTime=r):this.lastFloorZoomn>=128&&n<=255,"Hangul Jamo":n=>n>=4352&&n<=4607,Khmer:n=>n>=6016&&n<=6143,"General Punctuation":n=>n>=8192&&n<=8303,"Letterlike Symbols":n=>n>=8448&&n<=8527,"Number Forms":n=>n>=8528&&n<=8591,"Miscellaneous Technical":n=>n>=8960&&n<=9215,"Control Pictures":n=>n>=9216&&n<=9279,"Optical Character Recognition":n=>n>=9280&&n<=9311,"Enclosed Alphanumerics":n=>n>=9312&&n<=9471,"Geometric Shapes":n=>n>=9632&&n<=9727,"Miscellaneous Symbols":n=>n>=9728&&n<=9983,"Miscellaneous Symbols and Arrows":n=>n>=11008&&n<=11263,"Ideographic Description Characters":n=>n>=12272&&n<=12287,"CJK Symbols and Punctuation":n=>n>=12288&&n<=12351,Hiragana:n=>n>=12352&&n<=12447,Katakana:n=>n>=12448&&n<=12543,Kanbun:n=>n>=12688&&n<=12703,"CJK Strokes":n=>n>=12736&&n<=12783,"Enclosed CJK Letters and Months":n=>n>=12800&&n<=13055,"CJK Compatibility":n=>n>=13056&&n<=13311,"Yijing Hexagram Symbols":n=>n>=19904&&n<=19967,"CJK Unified Ideographs":n=>n>=19968&&n<=40959,"Hangul Syllables":n=>n>=44032&&n<=55215,"Private Use Area":n=>n>=57344&&n<=63743,"Vertical Forms":n=>n>=65040&&n<=65055,"CJK Compatibility Forms":n=>n>=65072&&n<=65103,"Small Form Variants":n=>n>=65104&&n<=65135,"Halfwidth and Fullwidth Forms":n=>n>=65280&&n<=65519};function jl(n){for(const t of n)if(su(t.charCodeAt(0)))return!0;return!1}function qp(n){for(const t of n)if(!md(t.charCodeAt(0)))return!1;return!0}function Vl(n){const t=n.map((r=>{try{return new RegExp(`\\p{sc=${r}}`,"u").source}catch{return null}})).filter((r=>r));return new RegExp(t.join("|"),"u")}const Zp=Vl(["Arab","Dupl","Mong","Ougr","Syrc"]);function md(n){return!Zp.test(String.fromCodePoint(n))}const ou=Vl(["Bopo","Hani","Hira","Kana","Kits","Nshu","Tang","Yiii"]);function su(n){return!(n!==746&&n!==747&&(n<4352||!(un["CJK Compatibility Forms"](n)&&!(n>=65097&&n<=65103)||un["CJK Compatibility"](n)||un["CJK Strokes"](n)||!(!un["CJK Symbols and Punctuation"](n)||n>=12296&&n<=12305||n>=12308&&n<=12319||n===12336)||un["Enclosed CJK Letters and Months"](n)||un["Ideographic Description Characters"](n)||un.Kanbun(n)||un.Katakana(n)&&n!==12540||!(!un["Halfwidth and Fullwidth Forms"](n)||n===65288||n===65289||n===65293||n>=65306&&n<=65310||n===65339||n===65341||n===65343||n>=65371&&n<=65503||n===65507||n>=65512&&n<=65519)||!(!un["Small Form Variants"](n)||n>=65112&&n<=65118||n>=65123&&n<=65126)||un["Vertical Forms"](n)||un["Yijing Hexagram Symbols"](n)||new RegExp("\\p{sc=Cans}","u").test(String.fromCodePoint(n))||new RegExp("\\p{sc=Hang}","u").test(String.fromCodePoint(n))||ou.test(String.fromCodePoint(n)))))}function _d(n){return!(su(n)||(function(t){return!!(un["Latin-1 Supplement"](t)&&(t===167||t===169||t===174||t===177||t===188||t===189||t===190||t===215||t===247)||un["General Punctuation"](t)&&(t===8214||t===8224||t===8225||t===8240||t===8241||t===8251||t===8252||t===8258||t===8263||t===8264||t===8265||t===8273)||un["Letterlike Symbols"](t)||un["Number Forms"](t)||un["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||t===9003||t>=9085&&t<=9114||t>=9150&&t<=9165||t===9167||t>=9169&&t<=9179||t>=9186&&t<=9215)||un["Control Pictures"](t)&&t!==9251||un["Optical Character Recognition"](t)||un["Enclosed Alphanumerics"](t)||un["Geometric Shapes"](t)||un["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||un["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||un["CJK Symbols and Punctuation"](t)||un.Katakana(t)||un["Private Use Area"](t)||un["CJK Compatibility Forms"](t)||un["Small Form Variants"](t)||un["Halfwidth and Fullwidth Forms"](t)||t===8734||t===8756||t===8757||t>=9984&&t<=10087||t>=10102&&t<=10131||t===65532||t===65533)})(n))}const gd=Vl(["Adlm","Arab","Armi","Avst","Chrs","Cprt","Egyp","Elym","Gara","Hatr","Hebr","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogo","Syrc","Thaa","Todr","Yezi"]);function lu(n){return gd.test(String.fromCodePoint(n))}function vd(n,t){return!(!t&&lu(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||un.Khmer(n))}function yd(n){for(const t of n)if(lu(t.charCodeAt(0)))return!0;return!1}const Ea=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(n){this.pluginStatus=n.pluginStatus,this.pluginURL=n.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(n){if(Ea.isParsed())throw new Error("RTL text plugin already registered.");this.applyArabicShaping=n.applyArabicShaping,this.processBidirectionalText=n.processBidirectionalText,this.processStyledBidirectionalText=n.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}syncState(n,t){return s(this,void 0,void 0,(function*(){if(this.isParsed())return this.getState();if(n.pluginStatus!=="loading")return this.setState(n),n;const r=n.pluginURL,a=new Promise((p=>{this.loadScriptResolve=p}));t(r);const c=new Promise((p=>setTimeout((()=>p()),this.TIMEOUT)));if(yield Promise.race([a,c]),this.isParsed()){const p={pluginStatus:"loaded",pluginURL:r};return this.setState(p),p}throw this.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${r}`)}))}};class Un{constructor(t,r){this.zoom=t,r?(this.now=r.now||0,this.fadeDuration=r.fadeDuration||0,this.zoomHistory=r.zoomHistory||new Nl,this.transition=r.transition||{},this.globalState=r.globalState||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Nl,this.transition={},this.globalState={})}isSupportedScript(t){return(function(r,a){for(const c of r)if(!vd(c.charCodeAt(0),a))return!1;return!0})(t,Ea.getRTLTextPluginStatus()==="loaded")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,r=t-Math.floor(t),a=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:r+(1-r)*a}:{fromScale:.5,toScale:1,t:1-(1-a)*r}}}class us{constructor(t,r){this.property=t,this.value=r,this.expression=(function(a,c){if(js(a))return new Zs(a,c);if(zl(a)){const p=nd(a,c);if(p.result==="error")throw new Error(p.value.map((_=>`${_.key}: ${_.message}`)).join(", "));return p.value}{let p=a;return c.type==="color"&&typeof a=="string"?p=Pr.parse(a):c.type!=="padding"||typeof a!="number"&&!Array.isArray(a)?c.type!=="numberArray"||typeof a!="number"&&!Array.isArray(a)?c.type!=="colorArray"||typeof a!="string"&&!Array.isArray(a)?c.type==="variableAnchorOffsetCollection"&&Array.isArray(a)?p=pi.parse(a):c.type==="projectionDefinition"&&typeof a=="string"&&(p=jn.parse(a)):p=fn.parse(a):p=gn.parse(a):p=kn.parse(a),{globalStateRefs:new Set,kind:"constant",evaluate:()=>p}}})(r===void 0?t.specification.default:r,t.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}getGlobalStateRefs(){return this.expression.globalStateRefs||new Set}possiblyEvaluate(t,r,a){return this.property.possiblyEvaluate(this,t,r,a)}}class cu{constructor(t){this.property=t,this.value=new us(t,void 0)}transitioned(t,r){return new uu(this.property,this.value,r,dt({},t.transition,this.transition),t.now)}untransitioned(){return new uu(this.property,this.value,null,{},0)}}class xd{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)}getValue(t){return wt(this._values[t].value.value)}setValue(t,r){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new cu(this._values[t].property)),this._values[t].value=new us(this._values[t].property,r===null?void 0:wt(r))}getTransition(t){return wt(this._values[t].transition)}setTransition(t,r){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new cu(this._values[t].property)),this._values[t].transition=wt(r)||void 0}serialize(){const t={};for(const r of Object.keys(this._values)){const a=this.getValue(r);a!==void 0&&(t[r]=a);const c=this.getTransition(r);c!==void 0&&(t[`${r}-transition`]=c)}return t}transitioned(t,r){const a=new hu(this._properties);for(const c of Object.keys(this._values))a._values[c]=this._values[c].transitioned(t,r._values[c]);return a}untransitioned(){const t=new hu(this._properties);for(const r of Object.keys(this._values))t._values[r]=this._values[r].untransitioned();return t}}class uu{constructor(t,r,a,c,p){this.property=t,this.value=r,this.begin=p+c.delay||0,this.end=this.begin+c.duration||0,t.specification.transition&&(c.delay||c.duration)&&(this.prior=a)}possiblyEvaluate(t,r,a){const c=t.now||0,p=this.value.possiblyEvaluate(t,r,a),_=this.prior;if(_){if(c>this.end)return this.prior=null,p;if(this.value.isDataDriven())return this.prior=null,p;if(cc.zoomHistory.lastIntegerZoom?{from:t,to:r}:{from:a,to:r}}interpolate(t){return t}}class _o{constructor(t){this.specification=t}possiblyEvaluate(t,r,a,c){if(t.value!==void 0){if(t.expression.kind==="constant"){const p=t.expression.evaluate(r,null,{},a,c);return this._calculate(p,p,p,r)}return this._calculate(t.expression.evaluate(new Un(Math.floor(r.zoom-1),r)),t.expression.evaluate(new Un(Math.floor(r.zoom),r)),t.expression.evaluate(new Un(Math.floor(r.zoom+1),r)),r)}}_calculate(t,r,a,c){return c.zoom>c.zoomHistory.lastIntegerZoom?{from:t,to:r}:{from:a,to:r}}interpolate(t){return t}}class Ul{constructor(t){this.specification=t}possiblyEvaluate(t,r,a,c){return!!t.expression.evaluate(r,null,{},a,c)}interpolate(){return!1}}class Zi{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const r in t){const a=t[r];a.specification.overridable&&this.overridableProperties.push(r);const c=this.defaultPropertyValues[r]=new us(a,void 0),p=this.defaultTransitionablePropertyValues[r]=new cu(a);this.defaultTransitioningPropertyValues[r]=p.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=c.possiblyEvaluate({})}}}nr("DataDrivenProperty",Or),nr("DataConstantProperty",yr),nr("CrossFadedDataDrivenProperty",Zl),nr("CrossFadedProperty",_o),nr("ColorRampProperty",Ul);const wd="-transition";class xa extends Mt{constructor(t,r){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set},t.type!=="custom"&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,t.type!=="background"&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter,this._featureFilter=Bo(t.filter)),r.layout&&(this._unevaluatedLayout=new bd(r.layout)),r.paint)){this._transitionablePaint=new xd(r.paint);for(const a in t.paint)this.setPaintProperty(a,t.paint[a],{validate:!1});for(const a in t.layout)this.setLayoutProperty(a,t.layout[a],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new ql(r.paint)}}setFilter(t){this.filter=t,this._featureFilter=Bo(t)}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return t==="visibility"?this.visibility:this._unevaluatedLayout.getValue(t)}getLayoutAffectingGlobalStateRefs(){const t=new Set;if(this._unevaluatedLayout)for(const r in this._unevaluatedLayout._values){const a=this._unevaluatedLayout._values[r];for(const c of a.getGlobalStateRefs())t.add(c)}for(const r of this._featureFilter.getGlobalStateRefs())t.add(r);return t}setLayoutProperty(t,r,a={}){r!=null&&this._validate(Vp,`layers.${this.id}.layout.${t}`,t,r,a)||(t!=="visibility"?this._unevaluatedLayout.setValue(t,r):this.visibility=r)}getPaintProperty(t){return t.endsWith(wd)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,r,a={}){if(r!=null&&this._validate(jp,`layers.${this.id}.paint.${t}`,t,r,a))return!1;if(t.endsWith(wd))return this._transitionablePaint.setTransition(t.slice(0,-11),r||void 0),!1;{const c=this._transitionablePaint._values[t],p=c.property.specification["property-type"]==="cross-faded-data-driven",_=c.value.isDataDriven(),v=c.value;this._transitionablePaint.setValue(t,r),this._handleSpecialPaintPropertyUpdate(t);const b=this._transitionablePaint._values[t].value;return b.isDataDriven()||_||p||this._handleOverridablePaintPropertyUpdate(t,v,b)}}_handleSpecialPaintPropertyUpdate(t){}_handleOverridablePaintPropertyUpdate(t,r,a){return!1}isHidden(t){return!!(this.minzoom&&t=this.maxzoom)||this.visibility==="none"}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,r){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,r)}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),It(t,((r,a)=>!(r===void 0||a==="layout"&&!Object.keys(r).length||a==="paint"&&!Object.keys(r).length)))}_validate(t,r,a,c,p={}){return(!p||p.validate!==!1)&&Ws(this,t.call(ls,{key:r,layerType:this.type,objectKey:a,value:c,styleSpec:xe,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const t in this.paint._values){const r=this.paint.get(t);if(r instanceof $a&&fo(r.property.specification)&&(r.value.kind==="source"||r.value.kind==="composite")&&r.value.isStateDependent)return!0}return!1}}const Up={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Ys{constructor(t,r){this._structArray=t,this._pos1=r*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Rn{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(t,r){return t._trim(),r&&(t.isTransferred=!0,r.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const r=Object.create(this.prototype);return r.arrayBuffer=t.arrayBuffer,r.length=t.length,r.capacity=t.arrayBuffer.byteLength/r.bytesPerElement,r._refreshViews(),r}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(t){this.reserve(t),this.length=t}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function ti(n,t=1){let r=0,a=0;return{members:n.map((c=>{const p=Up[c.type].BYTES_PER_ELEMENT,_=r=$l(r,Math.max(t,p)),v=c.components||1;return a=Math.max(a,p),r+=p*v,{name:c.name,type:c.type,components:v,offset:_}})),size:$l(r,Math.max(a,t)),alignment:t}}function $l(n,t){return Math.ceil(n/t)*t}class hs extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r){const a=this.length;return this.resize(a+1),this.emplace(a,t,r)}emplace(t,r,a){const c=2*t;return this.int16[c+0]=r,this.int16[c+1]=a,t}}hs.prototype.bytesPerElement=4,nr("StructArrayLayout2i4",hs);class ds extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,a){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,a)}emplace(t,r,a,c){const p=3*t;return this.int16[p+0]=r,this.int16[p+1]=a,this.int16[p+2]=c,t}}ds.prototype.bytesPerElement=6,nr("StructArrayLayout3i6",ds);class du extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,a,c){const p=this.length;return this.resize(p+1),this.emplace(p,t,r,a,c)}emplace(t,r,a,c,p){const _=4*t;return this.int16[_+0]=r,this.int16[_+1]=a,this.int16[_+2]=c,this.int16[_+3]=p,t}}du.prototype.bytesPerElement=8,nr("StructArrayLayout4i8",du);class ps extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,a,c,p,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,a,c,p,_)}emplace(t,r,a,c,p,_,v){const b=6*t;return this.int16[b+0]=r,this.int16[b+1]=a,this.int16[b+2]=c,this.int16[b+3]=p,this.int16[b+4]=_,this.int16[b+5]=v,t}}ps.prototype.bytesPerElement=12,nr("StructArrayLayout2i4i12",ps);class jo extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,a,c,p,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,a,c,p,_)}emplace(t,r,a,c,p,_,v){const b=4*t,S=8*t;return this.int16[b+0]=r,this.int16[b+1]=a,this.uint8[S+4]=c,this.uint8[S+5]=p,this.uint8[S+6]=_,this.uint8[S+7]=v,t}}jo.prototype.bytesPerElement=8,nr("StructArrayLayout2i4ub8",jo);class Ks extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r){const a=this.length;return this.resize(a+1),this.emplace(a,t,r)}emplace(t,r,a){const c=2*t;return this.float32[c+0]=r,this.float32[c+1]=a,t}}Ks.prototype.bytesPerElement=8,nr("StructArrayLayout2f8",Ks);class Gl extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,a,c,p,_,v,b,S,I){const L=this.length;return this.resize(L+1),this.emplace(L,t,r,a,c,p,_,v,b,S,I)}emplace(t,r,a,c,p,_,v,b,S,I,L){const F=10*t;return this.uint16[F+0]=r,this.uint16[F+1]=a,this.uint16[F+2]=c,this.uint16[F+3]=p,this.uint16[F+4]=_,this.uint16[F+5]=v,this.uint16[F+6]=b,this.uint16[F+7]=S,this.uint16[F+8]=I,this.uint16[F+9]=L,t}}Gl.prototype.bytesPerElement=20,nr("StructArrayLayout10ui20",Gl);class Vo extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,a,c,p,_,v,b,S,I,L,F){const V=this.length;return this.resize(V+1),this.emplace(V,t,r,a,c,p,_,v,b,S,I,L,F)}emplace(t,r,a,c,p,_,v,b,S,I,L,F,V){const U=12*t;return this.int16[U+0]=r,this.int16[U+1]=a,this.int16[U+2]=c,this.int16[U+3]=p,this.uint16[U+4]=_,this.uint16[U+5]=v,this.uint16[U+6]=b,this.uint16[U+7]=S,this.int16[U+8]=I,this.int16[U+9]=L,this.int16[U+10]=F,this.int16[U+11]=V,t}}Vo.prototype.bytesPerElement=24,nr("StructArrayLayout4i4ui4i24",Vo);class pu extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r,a){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,a)}emplace(t,r,a,c){const p=3*t;return this.float32[p+0]=r,this.float32[p+1]=a,this.float32[p+2]=c,t}}pu.prototype.bytesPerElement=12,nr("StructArrayLayout3f12",pu);class fu extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t){const r=this.length;return this.resize(r+1),this.emplace(r,t)}emplace(t,r){return this.uint32[1*t+0]=r,t}}fu.prototype.bytesPerElement=4,nr("StructArrayLayout1ul4",fu);class Hl extends Rn{_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(t,r,a,c,p,_,v,b,S){const I=this.length;return this.resize(I+1),this.emplace(I,t,r,a,c,p,_,v,b,S)}emplace(t,r,a,c,p,_,v,b,S,I){const L=10*t,F=5*t;return this.int16[L+0]=r,this.int16[L+1]=a,this.int16[L+2]=c,this.int16[L+3]=p,this.int16[L+4]=_,this.int16[L+5]=v,this.uint32[F+3]=b,this.uint16[L+8]=S,this.uint16[L+9]=I,t}}Hl.prototype.bytesPerElement=20,nr("StructArrayLayout6i1ul2ui20",Hl);class mu extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,a,c,p,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,a,c,p,_)}emplace(t,r,a,c,p,_,v){const b=6*t;return this.int16[b+0]=r,this.int16[b+1]=a,this.int16[b+2]=c,this.int16[b+3]=p,this.int16[b+4]=_,this.int16[b+5]=v,t}}mu.prototype.bytesPerElement=12,nr("StructArrayLayout2i2i2i12",mu);class h extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,a,c,p){const _=this.length;return this.resize(_+1),this.emplace(_,t,r,a,c,p)}emplace(t,r,a,c,p,_){const v=4*t,b=8*t;return this.float32[v+0]=r,this.float32[v+1]=a,this.float32[v+2]=c,this.int16[b+6]=p,this.int16[b+7]=_,t}}h.prototype.bytesPerElement=16,nr("StructArrayLayout2f1f2i16",h);class e extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,r,a,c,p,_){const v=this.length;return this.resize(v+1),this.emplace(v,t,r,a,c,p,_)}emplace(t,r,a,c,p,_,v){const b=16*t,S=4*t,I=8*t;return this.uint8[b+0]=r,this.uint8[b+1]=a,this.float32[S+1]=c,this.float32[S+2]=p,this.int16[I+6]=_,this.int16[I+7]=v,t}}e.prototype.bytesPerElement=16,nr("StructArrayLayout2ub2f2i16",e);class i extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,a){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,a)}emplace(t,r,a,c){const p=3*t;return this.uint16[p+0]=r,this.uint16[p+1]=a,this.uint16[p+2]=c,t}}i.prototype.bytesPerElement=6,nr("StructArrayLayout3ui6",i);class l extends Rn{_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(t,r,a,c,p,_,v,b,S,I,L,F,V,U,W,J,le){const Le=this.length;return this.resize(Le+1),this.emplace(Le,t,r,a,c,p,_,v,b,S,I,L,F,V,U,W,J,le)}emplace(t,r,a,c,p,_,v,b,S,I,L,F,V,U,W,J,le,Le){const ye=24*t,Ce=12*t,Xe=48*t;return this.int16[ye+0]=r,this.int16[ye+1]=a,this.uint16[ye+2]=c,this.uint16[ye+3]=p,this.uint32[Ce+2]=_,this.uint32[Ce+3]=v,this.uint32[Ce+4]=b,this.uint16[ye+10]=S,this.uint16[ye+11]=I,this.uint16[ye+12]=L,this.float32[Ce+7]=F,this.float32[Ce+8]=V,this.uint8[Xe+36]=U,this.uint8[Xe+37]=W,this.uint8[Xe+38]=J,this.uint32[Ce+10]=le,this.int16[ye+22]=Le,t}}l.prototype.bytesPerElement=48,nr("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",l);class u extends Rn{_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(t,r,a,c,p,_,v,b,S,I,L,F,V,U,W,J,le,Le,ye,Ce,Xe,lt,Pt,Xt,Vt,Gt,wr,$t){const Ht=this.length;return this.resize(Ht+1),this.emplace(Ht,t,r,a,c,p,_,v,b,S,I,L,F,V,U,W,J,le,Le,ye,Ce,Xe,lt,Pt,Xt,Vt,Gt,wr,$t)}emplace(t,r,a,c,p,_,v,b,S,I,L,F,V,U,W,J,le,Le,ye,Ce,Xe,lt,Pt,Xt,Vt,Gt,wr,$t,Ht){const gt=32*t,jr=16*t;return this.int16[gt+0]=r,this.int16[gt+1]=a,this.int16[gt+2]=c,this.int16[gt+3]=p,this.int16[gt+4]=_,this.int16[gt+5]=v,this.int16[gt+6]=b,this.int16[gt+7]=S,this.uint16[gt+8]=I,this.uint16[gt+9]=L,this.uint16[gt+10]=F,this.uint16[gt+11]=V,this.uint16[gt+12]=U,this.uint16[gt+13]=W,this.uint16[gt+14]=J,this.uint16[gt+15]=le,this.uint16[gt+16]=Le,this.uint16[gt+17]=ye,this.uint16[gt+18]=Ce,this.uint16[gt+19]=Xe,this.uint16[gt+20]=lt,this.uint16[gt+21]=Pt,this.uint16[gt+22]=Xt,this.uint32[jr+12]=Vt,this.float32[jr+13]=Gt,this.float32[jr+14]=wr,this.uint16[gt+30]=$t,this.uint16[gt+31]=Ht,t}}u.prototype.bytesPerElement=64,nr("StructArrayLayout8i15ui1ul2f2ui64",u);class d extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t){const r=this.length;return this.resize(r+1),this.emplace(r,t)}emplace(t,r){return this.float32[1*t+0]=r,t}}d.prototype.bytesPerElement=4,nr("StructArrayLayout1f4",d);class g extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r,a){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,a)}emplace(t,r,a,c){const p=3*t;return this.uint16[6*t+0]=r,this.float32[p+1]=a,this.float32[p+2]=c,t}}g.prototype.bytesPerElement=12,nr("StructArrayLayout1ui2f12",g);class w extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r,a){const c=this.length;return this.resize(c+1),this.emplace(c,t,r,a)}emplace(t,r,a,c){const p=4*t;return this.uint32[2*t+0]=r,this.uint16[p+2]=a,this.uint16[p+3]=c,t}}w.prototype.bytesPerElement=8,nr("StructArrayLayout1ul2ui8",w);class C extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,r){const a=this.length;return this.resize(a+1),this.emplace(a,t,r)}emplace(t,r,a){const c=2*t;return this.uint16[c+0]=r,this.uint16[c+1]=a,t}}C.prototype.bytesPerElement=4,nr("StructArrayLayout2ui4",C);class P extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t){const r=this.length;return this.resize(r+1),this.emplace(r,t)}emplace(t,r){return this.uint16[1*t+0]=r,t}}P.prototype.bytesPerElement=2,nr("StructArrayLayout1ui2",P);class A extends Rn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,r,a,c){const p=this.length;return this.resize(p+1),this.emplace(p,t,r,a,c)}emplace(t,r,a,c,p){const _=4*t;return this.float32[_+0]=r,this.float32[_+1]=a,this.float32[_+2]=c,this.float32[_+3]=p,t}}A.prototype.bytesPerElement=16,nr("StructArrayLayout4f16",A);class R extends Ys{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new B(this.anchorPointX,this.anchorPointY)}}R.prototype.size=20;class D extends Hl{get(t){return new R(this,t)}}nr("CollisionBoxArray",D);class O extends Ys{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(t){this._structArray.uint8[this._pos1+37]=t}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(t){this._structArray.uint8[this._pos1+38]=t}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(t){this._structArray.uint32[this._pos4+10]=t}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}O.prototype.size=48;class $ extends l{get(t){return new O(this,t)}}nr("PlacedSymbolArray",$);class ee extends Ys{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(t){this._structArray.uint32[this._pos4+12]=t}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]}}ee.prototype.size=64;class Q extends u{get(t){return new ee(this,t)}}nr("SymbolInstanceArray",Q);class ne extends d{getoffsetX(t){return this.float32[1*t+0]}}nr("GlyphOffsetArray",ne);class ue extends ds{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}nr("SymbolLineVertexArray",ue);class _e extends Ys{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]}}_e.prototype.size=12;class he extends g{get(t){return new _e(this,t)}}nr("TextAnchorOffsetArray",he);class we extends Ys{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]}}we.prototype.size=8;class Pe extends w{get(t){return new we(this,t)}}nr("FeatureIndexArray",Pe);class pe extends hs{}class Be extends hs{}class Qe extends hs{}class Ue extends ps{}class We extends jo{}class Je extends Ks{}class Nt extends Gl{}class Zt extends Vo{}class Tt extends pu{}class mr extends fu{}class Jr extends mu{}class An extends e{}class Bn extends i{}class Ln extends C{}const Hn=ti([{name:"a_pos",components:2,type:"Int16"}],4),{members:Kn}=Hn;class Kr{constructor(t=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=t}prepareSegment(t,r,a,c){const p=this.segments[this.segments.length-1];return t>Kr.MAX_VERTEX_ARRAY_LENGTH&&Dt(`Max vertices per segment is ${Kr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${Kr.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!p||p.vertexLength+t>Kr.MAX_VERTEX_ARRAY_LENGTH||p.sortKey!==c?this.createNewSegment(r,a,c):p}createNewSegment(t,r,a){const c={vertexOffset:t.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0,vaos:{}};return a!==void 0&&(c.sortKey=a),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(c),c}getOrCreateLatestSegment(t,r,a){return this.prepareSegment(0,t,r,a)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(const t of this.segments)for(const r in t.vaos)t.vaos[r].destroy()}static simpleSegment(t,r,a,c){return new Kr([{vertexOffset:t,primitiveOffset:r,vertexLength:a,primitiveLength:c,vaos:{},sortKey:0}])}}function Fn(n,t){return 256*(n=Bt(Math.floor(n),0,255))+Bt(Math.floor(t),0,255)}Kr.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,nr("SegmentVector",Kr);const si=ti([{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 fi,Ti,Ui,za={exports:{}},go={exports:{}},vo={exports:{}},fs=(function(){if(Ui)return za.exports;Ui=1;var n=(fi||(fi=1,go.exports=function(r,a){var c,p,_,v,b,S,I,L;for(p=r.length-(c=3&r.length),_=a,b=3432918353,S=461845907,L=0;L>>16)*b&65535)<<16)&4294967295)<<15|I>>>17))*S+(((I>>>16)*S&65535)<<16)&4294967295)<<13|_>>>19))+((5*(_>>>16)&65535)<<16)&4294967295))+((58964+(v>>>16)&65535)<<16);switch(I=0,c){case 3:I^=(255&r.charCodeAt(L+2))<<16;case 2:I^=(255&r.charCodeAt(L+1))<<8;case 1:_^=I=(65535&(I=(I=(65535&(I^=255&r.charCodeAt(L)))*b+(((I>>>16)*b&65535)<<16)&4294967295)<<15|I>>>17))*S+(((I>>>16)*S&65535)<<16)&4294967295}return _^=r.length,_=2246822507*(65535&(_^=_>>>16))+((2246822507*(_>>>16)&65535)<<16)&4294967295,_=3266489909*(65535&(_^=_>>>13))+((3266489909*(_>>>16)&65535)<<16)&4294967295,(_^=_>>>16)>>>0}),go.exports),t=(Ti||(Ti=1,vo.exports=function(r,a){for(var c,p=r.length,_=a^p,v=0;p>=4;)c=1540483477*(65535&(c=255&r.charCodeAt(v)|(255&r.charCodeAt(++v))<<8|(255&r.charCodeAt(++v))<<16|(255&r.charCodeAt(++v))<<24))+((1540483477*(c>>>16)&65535)<<16),_=1540483477*(65535&_)+((1540483477*(_>>>16)&65535)<<16)^(c=1540483477*(65535&(c^=c>>>24))+((1540483477*(c>>>16)&65535)<<16)),p-=4,++v;switch(p){case 3:_^=(255&r.charCodeAt(v+2))<<16;case 2:_^=(255&r.charCodeAt(v+1))<<8;case 1:_=1540483477*(65535&(_^=255&r.charCodeAt(v)))+((1540483477*(_>>>16)&65535)<<16)}return _=1540483477*(65535&(_^=_>>>13))+((1540483477*(_>>>16)&65535)<<16),(_^=_>>>15)>>>0}),vo.exports);return za.exports=n,za.exports.murmur3=n,za.exports.murmur2=t,za.exports})(),ms=N(fs);class qo{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(t,r,a,c){this.ids.push(Zo(t)),this.positions.push(r,a,c)}getPositions(t){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const r=Zo(t);let a=0,c=this.ids.length-1;for(;a>1;this.ids[_]>=r?c=_:a=_+1}const p=[];for(;this.ids[a]===r;)p.push({index:this.positions[3*a],start:this.positions[3*a+1],end:this.positions[3*a+2]}),a++;return p}static serialize(t,r){const a=new Float64Array(t.ids),c=new Uint32Array(t.positions);return ta(a,c,0,a.length-1),r&&r.push(a.buffer,c.buffer),{ids:a,positions:c}}static deserialize(t){const r=new qo;return r.ids=t.ids,r.positions=t.positions,r.indexed=!0,r}}function Zo(n){const t=+n;return!isNaN(t)&&t<=Number.MAX_SAFE_INTEGER?t:ms(String(n))}function ta(n,t,r,a){for(;r>1];let p=r-1,_=a+1;for(;;){do p++;while(n[p]c);if(p>=_)break;La(n,p,_),La(t,3*p,3*_),La(t,3*p+1,3*_+1),La(t,3*p+2,3*_+2)}_-r`u_${c}`)),this.type=a}setUniform(t,r,a){t.set(a.constantOr(this.value))}getBinding(t,r,a){return this.type==="color"?new mi(t,r):new yo(t,r)}}class _s{constructor(t,r){this.uniformNames=r.map((a=>`u_${a}`)),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(t,r){this.pixelRatioFrom=r.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=r.tlbr,this.patternTo=t.tlbr}setUniform(t,r,a,c){const p=c==="u_pattern_to"?this.patternTo:c==="u_pattern_from"?this.patternFrom:c==="u_pixel_ratio_to"?this.pixelRatioTo:c==="u_pixel_ratio_from"?this.pixelRatioFrom:null;p&&t.set(p)}getBinding(t,r,a){return a.substr(0,9)==="u_pattern"?new li(t,r):new yo(t,r)}}class to{constructor(t,r,a,c){this.expression=t,this.type=a,this.maxValue=0,this.paintVertexAttributes=r.map((p=>({name:`a_${p}`,type:"Float32",components:a==="color"?2:1,offset:0}))),this.paintVertexArray=new c}populatePaintArray(t,r,a,c,p){const _=this.paintVertexArray.length,v=this.expression.evaluate(new Un(0),r,{},c,[],p);this.paintVertexArray.resize(t),this._setPaintValue(_,t,v)}updatePaintArray(t,r,a,c){const p=this.expression.evaluate({zoom:0},a,c);this._setPaintValue(t,r,p)}_setPaintValue(t,r,a){if(this.type==="color"){const c=ci(a);for(let p=t;p`u_${v}_t`)),this.type=a,this.useIntegerZoom=c,this.zoom=p,this.maxValue=0,this.paintVertexAttributes=r.map((v=>({name:`a_${v}`,type:"Float32",components:a==="color"?4:2,offset:0}))),this.paintVertexArray=new _}populatePaintArray(t,r,a,c,p){const _=this.expression.evaluate(new Un(this.zoom),r,{},c,[],p),v=this.expression.evaluate(new Un(this.zoom+1),r,{},c,[],p),b=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(b,t,_,v)}updatePaintArray(t,r,a,c){const p=this.expression.evaluate({zoom:this.zoom},a,c),_=this.expression.evaluate({zoom:this.zoom+1},a,c);this._setPaintValue(t,r,p,_)}_setPaintValue(t,r,a,c){if(this.type==="color"){const p=ci(a),_=ci(c);for(let v=t;v`#define HAS_UNIFORM_${c}`)))}return t}getBinderAttributes(){const t=[];for(const r in this.binders){const a=this.binders[r];if(a instanceof to||a instanceof Da)for(let c=0;c!0){this.programConfigurations={};for(const c of t)this.programConfigurations[c.id]=new Td(c,r,a);this.needsUpload=!1,this._featureMap=new qo,this._bufferOffset=0}populatePaintArrays(t,r,a,c,p,_){for(const v in this.programConfigurations)this.programConfigurations[v].populatePaintArrays(t,r,c,p,_);r.id!==void 0&&this._featureMap.add(r.id,a,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0}updatePaintArrays(t,r,a,c){for(const p of a)this.needsUpload=this.programConfigurations[p.id].updatePaintArrays(t,this._featureMap,r,p,c)||this.needsUpload}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(t);this.needsUpload=!1}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy()}}function Cd(n,t){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-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"]}[n]||[n.replace(`${t}-`,"").replace(/-/g,"_")]}function _u(n,t,r){const a={color:{source:Ks,composite:A},number:{source:d,composite:Ks}},c=(function(p){return{"line-pattern":{source:Nt,composite:Nt},"fill-pattern":{source:Nt,composite:Nt},"fill-extrusion-pattern":{source:Nt,composite:Nt}}[p]})(n);return c&&c[r]||a[t][r]}nr("ConstantBinder",Js),nr("CrossFadedConstantBinder",_s),nr("SourceExpressionBinder",to),nr("CrossFadedCompositeBinder",xo),nr("CompositeExpressionBinder",Da),nr("ProgramConfiguration",Td,{omit:["_buffers"]}),nr("ProgramConfigurationSet",la);const Wl=Math.pow(2,14)-1,Xl=-Wl-1;function bo(n){const t=oe/n.extent,r=n.loadGeometry();for(let a=0;a_.x+1||b<_.y||b>_.y+1)&&Dt("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return r}function ro(n,t){return{type:n.type,id:n.id,properties:n.properties,geometry:t?bo(n):[]}}const u_=-32768;function Y0(n,t,r,a,c){n.emplaceBack(u_+8*t+a,u_+8*r+c)}class $p{constructor(t){this.zoom=t.zoom,this.globalState=t.globalState,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((r=>r.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Be,this.indexArray=new Bn,this.segments=new Kr,this.programConfigurations=new la(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,a){const c=this.layers[0],p=[];let _=null,v=!1,b=c.type==="heatmap";if(c.type==="circle"){const I=c;_=I.layout.get("circle-sort-key"),v=!_.isConstant(),b=b||I.paint.get("circle-pitch-alignment")==="map"}const S=b?r.subdivisionGranularity.circle:1;for(const{feature:I,id:L,index:F,sourceLayerIndex:V}of t){const U=this.layers[0]._featureFilter.needGeometry,W=ro(I,U);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),W,a))continue;const J=v?_.evaluate(W,{},a):void 0,le={id:L,properties:I.properties,type:I.type,sourceLayerIndex:V,index:F,geometry:U?W.geometry:bo(I),patterns:{},sortKey:J};p.push(le)}v&&p.sort(((I,L)=>I.sortKey-L.sortKey));for(const I of p){const{geometry:L,index:F,sourceLayerIndex:V}=I,U=t[F].feature;this.addFeature(I,L,F,a,S),r.featureIndex.insert(U,L,F,V,this.index)}}update(t,r,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,a)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Kn),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(t,r,a,c,p=1){let _;switch(p){case 1:_=[0,7];break;case 3:_=[0,2,5,7];break;case 5:_=[0,1,3,4,6,7];break;case 7:_=[0,1,2,3,4,5,6,7];break;default:throw new Error(`Invalid circle bucket granularity: ${p}; valid values are 1, 3, 5, 7.`)}const v=_.length;for(const b of r)for(const S of b){const I=S.x,L=S.y;if(I<0||I>=oe||L<0||L>=oe)continue;const F=this.segments.prepareSegment(v*v,this.layoutVertexArray,this.indexArray,t.sortKey),V=F.vertexLength;for(let U=0;U1){if(Gp(n,t))return!0;for(let a=0;a1?r:r.sub(t)._mult(c)._add(t))}function f_(n,t){let r,a,c,p=!1;for(let _=0;_t.y!=c.y>t.y&&t.x<(c.x-a.x)*(t.y-a.y)/(c.y-a.y)+a.x&&(p=!p)}return p}function Yl(n,t){let r=!1;for(let a=0,c=n.length-1;at.y!=_.y>t.y&&t.x<(_.x-p.x)*(t.y-p.y)/(_.y-p.y)+p.x&&(r=!r)}return r}function ey(n,t,r){const a=r[0],c=r[2];if(n.xc.x&&t.x>c.x||n.yc.y&&t.y>c.y)return!1;const p=zt(n,t,r[0]);return p!==zt(n,t,r[1])||p!==zt(n,t,r[2])||p!==zt(n,t,r[3])}function gu(n,t,r){const a=t.paint.get(n).value;return a.kind==="constant"?a.value:r.programConfigurations.get(t.id).getMaxValue(n)}function Sd(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function Pd(n,t,r,a,c){if(!t[0]&&!t[1])return n;const p=B.convert(t)._mult(c);r==="viewport"&&p._rotate(-a);const _=[];for(let v=0;vg_(Le,W,J,le)))})(S,p,v,b),V=L?I*_:I;for(const U of c)for(const W of U){const J=L?W:g_(W,p,v,b);let le=V;const Le=p.projectTileCoordinates(W.x,W.y,v,b).signedDistanceFromCamera;if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?le*=Le/p.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(le*=p.cameraToCenterDistance/Le),K0(F,J,le))return!0}return!1}}function g_(n,t,r,a){const c=t.projectTileCoordinates(n.x,n.y,r,a).point;return new B((.5*c.x+.5)*t.width,(.5*-c.y+.5)*t.height)}class v_ extends $p{}let y_;nr("HeatmapBucket",v_,{omit:["layers"]});var ny={get paint(){return y_=y_||new Zi({"heatmap-radius":new Or(xe.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Or(xe.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new yr(xe.paint_heatmap["heatmap-intensity"]),"heatmap-color":new Ul(xe.paint_heatmap["heatmap-color"]),"heatmap-opacity":new yr(xe.paint_heatmap["heatmap-opacity"])})}};function Wp(n,{width:t,height:r},a,c){if(c){if(c instanceof Uint8ClampedArray)c=new Uint8Array(c.buffer);else if(c.length!==t*r*a)throw new RangeError(`mismatched image size. expected: ${c.length} but got: ${t*r*a}`)}else c=new Uint8Array(t*r*a);return n.width=t,n.height=r,n.data=c,n}function x_(n,{width:t,height:r},a){if(t===n.width&&r===n.height)return;const c=Wp({},{width:t,height:r},a);Xp(n,c,{x:0,y:0},{x:0,y:0},{width:Math.min(n.width,t),height:Math.min(n.height,r)},a),n.width=t,n.height=r,n.data=c.data}function Xp(n,t,r,a,c,p){if(c.width===0||c.height===0)return t;if(c.width>n.width||c.height>n.height||r.x>n.width-c.width||r.y>n.height-c.height)throw new RangeError("out of range source coordinates for image copy");if(c.width>t.width||c.height>t.height||a.x>t.width-c.width||a.y>t.height-c.height)throw new RangeError("out of range destination coordinates for image copy");const _=n.data,v=t.data;if(_===v)throw new Error("srcData equals dstData, so image is already copied");for(let b=0;b{t[n.evaluationKey]=b;const S=n.expression.evaluate(t);c.setPixel(_/4/r,v/4,S)};if(n.clips)for(let _=0,v=0;_this.max&&(this.max=L),L=this.dim+1||r<-1||r>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(t+1)}unpack(t,r,a){return t*this.redFactor+r*this.greenFactor+a*this.blueFactor-this.baseShift}pack(t){return S_(t,this.getUnpackVector())}getPixels(){return new ca({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(t,r,a){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let c=r*this.dim,p=r*this.dim+this.dim,_=a*this.dim,v=a*this.dim+this.dim;switch(r){case-1:c=p-1;break;case 1:p=c+1}switch(a){case-1:_=v-1;break;case 1:v=_+1}const b=-r*this.dim,S=-a*this.dim;for(let I=_;I0)for(let _=t;_=t;_-=a)p=A_(_/a|0,n[_],n[_+1],p);return p&&Kl(p,p.next)&&(wu(p),p=p.next),p}function Qs(n,t){if(!n)return n;t||(t=n);let r,a=n;do if(r=!1,a.steiner||!Kl(a,a.next)&&ii(a.prev,a,a.next)!==0)a=a.next;else{if(wu(a),a=t=a.prev,a===a.next)break;r=!0}while(r||a!==t);return t}function yu(n,t,r,a,c,p,_){if(!n)return;!_&&p&&(function(b,S,I,L){let F=b;do F.z===0&&(F.z=ef(F.x,F.y,S,I,L)),F.prevZ=F.prev,F.nextZ=F.next,F=F.next;while(F!==b);F.prevZ.nextZ=null,F.prevZ=null,(function(V){let U,W=1;do{let J,le=V;V=null;let Le=null;for(U=0;le;){U++;let ye=le,Ce=0;for(let lt=0;lt0||Xe>0&&ye;)Ce!==0&&(Xe===0||!ye||le.z<=ye.z)?(J=le,le=le.nextZ,Ce--):(J=ye,ye=ye.nextZ,Xe--),Le?Le.nextZ=J:V=J,J.prevZ=Le,Le=J;le=ye}Le.nextZ=null,W*=2}while(U>1)})(F)})(n,a,c,p);let v=n;for(;n.prev!==n.next;){const b=n.prev,S=n.next;if(p?dy(n,a,c,p):hy(n))t.push(b.i,n.i,S.i),wu(n),n=S.next,v=S.next;else if((n=S)===v){_?_===1?yu(n=py(Qs(n),t),t,r,a,c,p,2):_===2&&fy(n,t,r,a,c,p):yu(Qs(n),t,r,a,c,p,1);break}}}function hy(n){const t=n.prev,r=n,a=n.next;if(ii(t,r,a)>=0)return!1;const c=t.x,p=r.x,_=a.x,v=t.y,b=r.y,S=a.y,I=Math.min(c,p,_),L=Math.min(v,b,S),F=Math.max(c,p,_),V=Math.max(v,b,S);let U=a.next;for(;U!==t;){if(U.x>=I&&U.x<=F&&U.y>=L&&U.y<=V&&xu(c,v,p,b,_,S,U.x,U.y)&&ii(U.prev,U,U.next)>=0)return!1;U=U.next}return!0}function dy(n,t,r,a){const c=n.prev,p=n,_=n.next;if(ii(c,p,_)>=0)return!1;const v=c.x,b=p.x,S=_.x,I=c.y,L=p.y,F=_.y,V=Math.min(v,b,S),U=Math.min(I,L,F),W=Math.max(v,b,S),J=Math.max(I,L,F),le=ef(V,U,t,r,a),Le=ef(W,J,t,r,a);let ye=n.prevZ,Ce=n.nextZ;for(;ye&&ye.z>=le&&Ce&&Ce.z<=Le;){if(ye.x>=V&&ye.x<=W&&ye.y>=U&&ye.y<=J&&ye!==c&&ye!==_&&xu(v,I,b,L,S,F,ye.x,ye.y)&&ii(ye.prev,ye,ye.next)>=0||(ye=ye.prevZ,Ce.x>=V&&Ce.x<=W&&Ce.y>=U&&Ce.y<=J&&Ce!==c&&Ce!==_&&xu(v,I,b,L,S,F,Ce.x,Ce.y)&&ii(Ce.prev,Ce,Ce.next)>=0))return!1;Ce=Ce.nextZ}for(;ye&&ye.z>=le;){if(ye.x>=V&&ye.x<=W&&ye.y>=U&&ye.y<=J&&ye!==c&&ye!==_&&xu(v,I,b,L,S,F,ye.x,ye.y)&&ii(ye.prev,ye,ye.next)>=0)return!1;ye=ye.prevZ}for(;Ce&&Ce.z<=Le;){if(Ce.x>=V&&Ce.x<=W&&Ce.y>=U&&Ce.y<=J&&Ce!==c&&Ce!==_&&xu(v,I,b,L,S,F,Ce.x,Ce.y)&&ii(Ce.prev,Ce,Ce.next)>=0)return!1;Ce=Ce.nextZ}return!0}function py(n,t){let r=n;do{const a=r.prev,c=r.next.next;!Kl(a,c)&&M_(a,r,r.next,c)&&bu(a,c)&&bu(c,a)&&(t.push(a.i,r.i,c.i),wu(r),wu(r.next),r=n=c),r=r.next}while(r!==n);return Qs(r)}function fy(n,t,r,a,c,p){let _=n;do{let v=_.next.next;for(;v!==_.prev;){if(_.i!==v.i&&yy(_,v)){let b=k_(_,v);return _=Qs(_,_.next),b=Qs(b,b.next),yu(_,t,r,a,c,p,0),void yu(b,t,r,a,c,p,0)}v=v.next}_=_.next}while(_!==n)}function my(n,t){let r=n.x-t.x;return r===0&&(r=n.y-t.y,r===0)&&(r=(n.next.y-n.y)/(n.next.x-n.x)-(t.next.y-t.y)/(t.next.x-t.x)),r}function _y(n,t){const r=(function(c,p){let _=p;const v=c.x,b=c.y;let S,I=-1/0;if(Kl(c,_))return _;do{if(Kl(c,_.next))return _.next;if(b<=_.y&&b>=_.next.y&&_.next.y!==_.y){const W=_.x+(b-_.y)*(_.next.x-_.x)/(_.next.y-_.y);if(W<=v&&W>I&&(I=W,S=_.x<_.next.x?_:_.next,W===v))return S}_=_.next}while(_!==p);if(!S)return null;const L=S,F=S.x,V=S.y;let U=1/0;_=S;do{if(v>=_.x&&_.x>=F&&v!==_.x&&I_(bS.x||_.x===S.x&&gy(S,_)))&&(S=_,U=W)}_=_.next}while(_!==L);return S})(n,t);if(!r)return t;const a=k_(r,n);return Qs(a,a.next),Qs(r,r.next)}function gy(n,t){return ii(n.prev,n,t.prev)<0&&ii(t.next,n,n.next)<0}function ef(n,t,r,a,c){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*c|0)|n<<8))|n<<4))|n<<2))|n<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-a)*c|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function vy(n){let t=n,r=n;do(t.x=(n-_)*(p-v)&&(n-_)*(a-v)>=(r-_)*(t-v)&&(r-_)*(p-v)>=(c-_)*(a-v)}function xu(n,t,r,a,c,p,_,v){return!(n===_&&t===v)&&I_(n,t,r,a,c,p,_,v)}function yy(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!(function(r,a){let c=r;do{if(c.i!==r.i&&c.next.i!==r.i&&c.i!==a.i&&c.next.i!==a.i&&M_(c,c.next,r,a))return!0;c=c.next}while(c!==r);return!1})(n,t)&&(bu(n,t)&&bu(t,n)&&(function(r,a){let c=r,p=!1;const _=(r.x+a.x)/2,v=(r.y+a.y)/2;do c.y>v!=c.next.y>v&&c.next.y!==c.y&&_<(c.next.x-c.x)*(v-c.y)/(c.next.y-c.y)+c.x&&(p=!p),c=c.next;while(c!==r);return p})(n,t)&&(ii(n.prev,n,t.prev)||ii(n,t.prev,t))||Kl(n,t)&&ii(n.prev,n,n.next)>0&&ii(t.prev,t,t.next)>0)}function ii(n,t,r){return(t.y-n.y)*(r.x-t.x)-(t.x-n.x)*(r.y-t.y)}function Kl(n,t){return n.x===t.x&&n.y===t.y}function M_(n,t,r,a){const c=Md(ii(n,t,r)),p=Md(ii(n,t,a)),_=Md(ii(r,a,n)),v=Md(ii(r,a,t));return c!==p&&_!==v||!(c!==0||!Id(n,r,t))||!(p!==0||!Id(n,a,t))||!(_!==0||!Id(r,n,a))||!(v!==0||!Id(r,t,a))}function Id(n,t,r){return t.x<=Math.max(n.x,r.x)&&t.x>=Math.min(n.x,r.x)&&t.y<=Math.max(n.y,r.y)&&t.y>=Math.min(n.y,r.y)}function Md(n){return n>0?1:n<0?-1:0}function bu(n,t){return ii(n.prev,n,n.next)<0?ii(n,t,n.next)>=0&&ii(n,n.prev,t)>=0:ii(n,t,n.prev)<0||ii(n,n.next,t)<0}function k_(n,t){const r=tf(n.i,n.x,n.y),a=tf(t.i,t.x,t.y),c=n.next,p=t.prev;return n.next=t,t.prev=n,r.next=c,c.prev=r,a.next=r,r.prev=a,p.next=a,a.prev=p,a}function A_(n,t,r,a){const c=tf(n,t,r);return a?(c.next=a.next,c.prev=a,a.next.prev=c,a.next=c):(c.prev=c,c.next=c),c}function wu(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function tf(n,t,r){return{i:n,x:t,y:r,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}class Jl{constructor(t,r){if(r>t)throw new Error("Min granularity must not be greater than base granularity.");this._baseZoomGranularity=t,this._minGranularity=r}getGranularityForZoomLevel(t){return Math.max(Math.floor(this._baseZoomGranularity/(1<32767||r>32767)throw new Error("Vertex coordinates are out of signed 16 bit integer range.");const a=0|Math.round(t),c=0|Math.round(r),p=this._getKey(a,c);if(this._vertexDictionary.has(p))return this._vertexDictionary.get(p);const _=this._vertexBuffer.length/2;return this._vertexDictionary.set(p,_),this._vertexBuffer.push(a,c),_}_subdivideTrianglesScanline(t){if(this._granularity<2)return(function(c,p){const _=[];for(let v=0;v0?(_.push(b),_.push(I),_.push(S)):(_.push(b),_.push(S),_.push(I))}return _})(this._vertexBuffer,t);const r=[],a=t.length;for(let c=0;c=1||Xe<=0)||le&&(Sp)){L>=c&&L<=p&&_.push(a[(v+1)%3]);continue}!le&&Ce>0&&_.push(this._vertexToIndex(b+U*Ce,S+W*Ce));const lt=b+U*Math.max(Ce,0),Pt=b+U*Math.min(Xe,1);J||this._generateIntraEdgeVertices(_,b,S,I,L,lt,Pt),!le&&Xe<1&&_.push(this._vertexToIndex(b+U*Xe,S+W*Xe)),(le||L>=c&&L<=p)&&_.push(a[(v+1)%3]),!le&&(L<=c||L>=p)&&this._generateInterEdgeVertices(_,b,S,I,L,F,V,Pt,c,p)}return _}_generateIntraEdgeVertices(t,r,a,c,p,_,v){const b=c-r,S=p-a,I=S===0,L=I?Math.min(r,c):Math.min(_,v),F=I?Math.max(r,c):Math.max(_,v),V=Math.floor(L/this._granularityCellSize)+1,U=Math.ceil(F/this._granularityCellSize)-1;if(I?r=V;W--){const J=W*this._granularityCellSize;t.push(this._vertexToIndex(J,a+S*(J-r)/b))}}_generateInterEdgeVertices(t,r,a,c,p,_,v,b,S,I){const L=p-a,F=_-c,V=v-p,U=(S-p)/V,W=(I-p)/V,J=Math.min(U,W),le=Math.max(U,W),Le=c+F*J;let ye=Math.floor(Math.min(Le,b)/this._granularityCellSize)+1,Ce=Math.ceil(Math.max(Le,b)/this._granularityCellSize)-1,Xe=b=1||le<=0){const Xt=a-v,Vt=_+(r-_)*Math.min((S-v)/Xt,(I-v)/Xt);ye=Math.floor(Math.min(Vt,b)/this._granularityCellSize)+1,Ce=Math.ceil(Math.max(Vt,b)/this._granularityCellSize)-1,Xe=b0?I:S;if(Xe)for(let Xt=ye;Xt<=Ce;Xt++)t.push(this._vertexToIndex(Xt*this._granularityCellSize,Pt));else for(let Xt=Ce;Xt>=ye;Xt--)t.push(this._vertexToIndex(Xt*this._granularityCellSize,Pt))}_generateOutline(t){const r=[];for(const a of t){const c=el(a,this._granularity,!0),p=this._pointArrayToIndices(c),_=[];for(let v=1;vp!=(_===Ql)?(t.push(r),t.push(a),t.push(this._vertexToIndex(c,_)),t.push(a),t.push(this._vertexToIndex(p,_)),t.push(this._vertexToIndex(c,_))):(t.push(a),t.push(r),t.push(this._vertexToIndex(c,_)),t.push(this._vertexToIndex(p,_)),t.push(a),t.push(this._vertexToIndex(c,_)))}_fillPoles(t,r,a){const c=this._vertexBuffer,p=oe,_=t.length;for(let v=2;v<_;v+=3){const b=t[v-2],S=t[v-1],I=t[v],L=c[2*b],F=c[2*b+1],V=c[2*S],U=c[2*S+1],W=c[2*I],J=c[2*I+1];r&&(F===0&&U===0&&this._generatePoleQuad(t,b,S,L,V,Ql),U===0&&J===0&&this._generatePoleQuad(t,S,I,V,W,Ql),J===0&&F===0&&this._generatePoleQuad(t,I,b,W,L,Ql)),a&&(F===p&&U===p&&this._generatePoleQuad(t,b,S,L,V,Tu),U===p&&J===p&&this._generatePoleQuad(t,S,I,V,W,Tu),J===p&&F===p&&this._generatePoleQuad(t,I,b,W,L,Tu))}}_initializeVertices(t){for(let r=0;r80*L){J=S[0],le=S[1];let ye=J,Ce=le;for(let Xe=L;Xeye&&(ye=lt),Pt>Ce&&(Ce=Pt)}Le=Math.max(ye-J,Ce-le),Le=Le!==0?32767/Le:0}return yu(U,W,L,J,le,Le,0),W})(a,c),b=this._convertIndices(a,v);p=this._subdivideTrianglesScanline(b)}catch(v){console.error(v)}let _=[];return r&&(_=this._generateOutline(t)),this._ensureNoPoleVertices(),this._handlePoles(p),{verticesFlattened:this._vertexBuffer,indicesTriangles:p,indicesLineList:_}}_convertIndices(t,r){const a=[];for(let c=0;c0?(Math.floor(Pt/_)+1)*_:(Math.ceil(Pt/_)-1)*_,wr=Ce>0?(Math.floor(Xt/_)+1)*_:(Math.ceil(Xt/_)-1)*_,$t=Math.abs(Pt-Gt),Ht=Math.abs(Xt-wr),gt=Math.abs(Pt-W),jr=Math.abs(Xt-J),Gr=le?$t/Xe:Number.POSITIVE_INFINITY,Ir=Le?Ht/lt:Number.POSITIVE_INFINITY;if((gt<=$t||!le)&&(jr<=Ht||!Le))break;if(Gr=0?_-1:p-1,S=(v+1)%p,I=n[2*t[b]],L=n[2*t[S]],F=n[2*t[_]],V=n[2*t[_]+1],U=n[2*t[v]+1];let W=!1;if(IL)W=!1;else{const J=U-V,le=-(n[2*t[v]]-F),Le=V((L-F)*J+(n[2*t[S]+1]-V)*le)*Le&&(W=!0)}if(W){const J=t[b],le=t[_],Le=t[v];J!==le&&J!==Le&&le!==Le&&r.push(Le,le,J),_--,_<0&&(_=p-1)}else{const J=t[S],le=t[_],Le=t[v];J!==le&&J!==Le&&le!==Le&&r.push(Le,le,J),v++,v>=p&&(v=0)}if(b===S)break}}function z_(n,t,r,a,c,p,_,v,b){const S=c.length/2,I=_&&v&&b;if(SKr.MAX_VERTEX_ARRAY_LENGTH&&(Ce=L.createNewSegment(F,V),ye=Le.count,Gt=!0,wr=!0,$t=!0,Xe=0);const Ht=Cu(le,U,J,Le,Pt,Gt,Ce),gt=Cu(le,U,J,Le,Xt,wr,Ce),jr=Cu(le,U,J,Le,Vt,$t,Ce);V.emplaceBack(Xe+Ht-ye,Xe+gt-ye,Xe+jr-ye),Ce.primitiveLength++}})(t,r,a,c,p,n),I&&(function(L,F,V,U,W,J){const le=[];for(let lt=0;ltKr.MAX_VERTEX_ARRAY_LENGTH&&(Ce=L.createNewSegment(F,V),ye=Le.count,wr=!0,$t=!0,Xe=0);const Ht=Cu(le,U,J,Le,Vt,wr,Ce),gt=Cu(le,U,J,Le,Gt,$t,Ce);V.emplaceBack(Xe+Ht-ye,Xe+gt-ye),Ce.primitiveLength++}}})(_,r,v,c,b,n),t.forceNewSegmentOnNextPrepare(),_==null||_.forceNewSegmentOnNextPrepare()}function Cu(n,t,r,a,c,p,_){if(p){const v=a.count;return r(t[2*c],t[2*c+1]),n[c]=a.count,a.count++,_.vertexLength++,v}return n[c]}class rf{constructor(t){this.zoom=t.zoom,this.globalState=t.globalState,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((r=>r.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Qe,this.indexArray=new Bn,this.indexArray2=new Ln,this.programConfigurations=new la(t.layers,t.zoom),this.segments=new Kr,this.segments2=new Kr,this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,a){this.hasPattern=Jp("fill",this.layers,r);const c=this.layers[0].layout.get("fill-sort-key"),p=!c.isConstant(),_=[];for(const{feature:v,id:b,index:S,sourceLayerIndex:I}of t){const L=this.layers[0]._featureFilter.needGeometry,F=ro(v,L);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),F,a))continue;const V=p?c.evaluate(F,{},a,r.availableImages):void 0,U={id:b,properties:v.properties,type:v.type,sourceLayerIndex:I,index:S,geometry:L?F.geometry:bo(v),patterns:{},sortKey:V};_.push(U)}p&&_.sort(((v,b)=>v.sortKey-b.sortKey));for(const v of _){const{geometry:b,index:S,sourceLayerIndex:I}=v;if(this.hasPattern){const L=Qp("fill",this.layers,v,this.zoom,r);this.patternFeatures.push(L)}else this.addFeature(v,b,S,a,{},r.subdivisionGranularity);r.featureIndex.insert(t[S].feature,b,S,I,this.index)}}update(t,r,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,a)}addFeatures(t,r,a){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,r,a,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,uy),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(t,r,a,c,p,_){for(const v of Fs(r,500)){const b=E_(v,c,_.fill.getGranularityForZoomLevel(c.z)),S=this.layoutVertexArray;z_(((I,L)=>{S.emplaceBack(I,L)}),this.segments,this.layoutVertexArray,this.indexArray,b.verticesFlattened,b.indicesTriangles,this.segments2,this.indexArray2,b.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,a,p,c)}}let L_,D_;nr("FillBucket",rf,{omit:["layers","patternFeatures"]});var wy={get paint(){return D_=D_||new Zi({"fill-antialias":new yr(xe.paint_fill["fill-antialias"]),"fill-opacity":new Or(xe.paint_fill["fill-opacity"]),"fill-color":new Or(xe.paint_fill["fill-color"]),"fill-outline-color":new Or(xe.paint_fill["fill-outline-color"]),"fill-translate":new yr(xe.paint_fill["fill-translate"]),"fill-translate-anchor":new yr(xe.paint_fill["fill-translate-anchor"]),"fill-pattern":new Zl(xe.paint_fill["fill-pattern"])})},get layout(){return L_=L_||new Zi({"fill-sort-key":new Or(xe.layout_fill["fill-sort-key"])})}};class Ty extends xa{constructor(t){super(t,wy)}recalculate(t,r){super.recalculate(t,r);const a=this.paint._values["fill-outline-color"];a.value.kind==="constant"&&a.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(t){return new rf(t)}queryRadius(){return Sd(this.paint.get("fill-translate"))}queryIntersectsFeature({queryGeometry:t,geometry:r,transform:a,pixelsToTileUnits:c}){return d_(Pd(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),-a.bearingInRadians,c),r)}isTileClipped(){return!0}}const Cy=ti([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4),Sy=ti([{name:"a_centroid",components:2,type:"Int16"}],4),{members:Py}=Cy;class ec{constructor(t,r,a,c,p){this.properties={},this.extent=a,this.type=0,this.id=void 0,this._pbf=t,this._geometry=-1,this._keys=c,this._values=p,t.readFields(Iy,this,r)}loadGeometry(){const t=this._pbf;t.pos=this._geometry;const r=t.readVarint()+t.pos,a=[];let c,p=1,_=0,v=0,b=0;for(;t.pos>3}if(_--,p===1||p===2)v+=t.readSVarint(),b+=t.readSVarint(),p===1&&(c&&a.push(c),c=[]),c&&c.push(new B(v,b));else{if(p!==7)throw new Error(`unknown command ${p}`);c&&c.push(c[0].clone())}}return c&&a.push(c),a}bbox(){const t=this._pbf;t.pos=this._geometry;const r=t.readVarint()+t.pos;let a=1,c=0,p=0,_=0,v=1/0,b=-1/0,S=1/0,I=-1/0;for(;t.pos>3}if(c--,a===1||a===2)p+=t.readSVarint(),_+=t.readSVarint(),pb&&(b=p),_I&&(I=_);else if(a!==7)throw new Error(`unknown command ${a}`)}return[v,S,b,I]}toGeoJSON(t,r,a){const c=this.extent*Math.pow(2,a),p=this.extent*t,_=this.extent*r,v=this.loadGeometry();function b(F){return[360*(F.x+p)/c-180,360/Math.PI*Math.atan(Math.exp((1-2*(F.y+_)/c)*Math.PI))-90]}function S(F){return F.map(b)}let I;if(this.type===1){const F=[];for(const U of v)F.push(U[0]);const V=S(F);I=F.length===1?{type:"Point",coordinates:V[0]}:{type:"MultiPoint",coordinates:V}}else if(this.type===2){const F=v.map(S);I=F.length===1?{type:"LineString",coordinates:F[0]}:{type:"MultiLineString",coordinates:F}}else{if(this.type!==3)throw new Error("unknown feature type");{const F=(function(U){const W=U.length;if(W<=1)return[U];const J=[];let le,Le;for(let ye=0;ye=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];const r=this._pbf.readVarint()+this._pbf.pos;return new ec(this._pbf,r,this.extent,this._keys,this._values)}}function ky(n,t,r){n===15?t.version=r.readVarint():n===1?t.name=r.readString():n===5?t.extent=r.readVarint():n===2?t._features.push(r.pos):n===3?t._keys.push(r.readString()):n===4&&t._values.push((function(a){let c=null;const p=a.readVarint()+a.pos;for(;a.pos>3;c=_===1?a.readString():_===2?a.readFloat():_===3?a.readDouble():_===4?a.readVarint64():_===5?a.readVarint():_===6?a.readSVarint():_===7?a.readBoolean():null}if(c==null)throw new Error("unknown feature value");return c})(r))}class B_{constructor(t,r){this.layers=t.readFields(Ay,{},r)}}function Ay(n,t,r){if(n===3){const a=new R_(r,r.readVarint()+r.pos);a.length&&(t[a.name]=a)}}const nf=Math.pow(2,13);function Su(n,t,r,a,c,p,_,v){n.emplaceBack(t,r,2*Math.floor(a*nf)+_,c*nf*2,p*nf*2,Math.round(v))}class af{constructor(t){this.zoom=t.zoom,this.globalState=t.globalState,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((r=>r.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Ue,this.centroidVertexArray=new pe,this.indexArray=new Bn,this.programConfigurations=new la(t.layers,t.zoom),this.segments=new Kr,this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,a){this.features=[],this.hasPattern=Jp("fill-extrusion",this.layers,r);for(const{feature:c,id:p,index:_,sourceLayerIndex:v}of t){const b=this.layers[0]._featureFilter.needGeometry,S=ro(c,b);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),S,a))continue;const I={id:p,sourceLayerIndex:v,index:_,geometry:b?S.geometry:bo(c),properties:c.properties,type:c.type,patterns:{}};this.hasPattern?this.features.push(Qp("fill-extrusion",this.layers,I,this.zoom,r)):this.addFeature(I,I.geometry,_,a,{},r.subdivisionGranularity),r.featureIndex.insert(c,I.geometry,_,v,this.index,!0)}}addFeatures(t,r,a){for(const c of this.features){const{geometry:p}=c;this.addFeature(c,p,c.index,r,a,t.subdivisionGranularity)}}update(t,r,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,a)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Py),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,Sy.members,!0),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(t,r,a,c,p,_){for(const v of Fs(r,500)){const b={x:0,y:0,sampleCount:0},S=this.layoutVertexArray.length;this.processPolygon(b,c,t,v,_);const I=this.layoutVertexArray.length-S,L=Math.floor(b.x/b.sampleCount),F=Math.floor(b.y/b.sampleCount);for(let V=0;V{Su(I,L,F,0,0,1,1,0)}),this.segments,this.layoutVertexArray,this.indexArray,S.verticesFlattened,S.indicesTriangles)}_generateSideFaces(t,r){let a=0;for(let c=1;cKr.MAX_VERTEX_ARRAY_LENGTH&&(r.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const v=p.sub(_)._perp()._unit(),b=_.dist(p);a+b>32768&&(a=0),Su(this.layoutVertexArray,p.x,p.y,v.x,v.y,0,0,a),Su(this.layoutVertexArray,p.x,p.y,v.x,v.y,0,1,a),a+=b,Su(this.layoutVertexArray,_.x,_.y,v.x,v.y,0,0,a),Su(this.layoutVertexArray,_.x,_.y,v.x,v.y,0,1,a);const S=r.segment.vertexLength;this.indexArray.emplaceBack(S,S+2,S+1),this.indexArray.emplaceBack(S+1,S+2,S+3),r.segment.vertexLength+=4,r.segment.primitiveLength+=2}}}function Ey(n,t){for(let r=0;roe)||n.y===t.y&&(n.y<0||n.y>oe)}function F_(n){return n.every((t=>t.x<0))||n.every((t=>t.x>oe))||n.every((t=>t.y<0))||n.every((t=>t.y>oe))}let O_;nr("FillExtrusionBucket",af,{omit:["layers","features"]});var Ly={get paint(){return O_=O_||new Zi({"fill-extrusion-opacity":new yr(xe["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Or(xe["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new yr(xe["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new yr(xe["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Zl(xe["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Or(xe["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Or(xe["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new yr(xe["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class Dy extends xa{constructor(t){super(t,Ly)}createBucket(t){return new af(t)}queryRadius(){return Sd(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature({queryGeometry:t,feature:r,featureState:a,geometry:c,transform:p,pixelsToTileUnits:_,pixelPosMatrix:v}){const b=Pd(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),-p.bearingInRadians,_),S=this.paint.get("fill-extrusion-height").evaluate(r,a),I=this.paint.get("fill-extrusion-base").evaluate(r,a),L=(function(V,U){const W=[];for(const J of V){const le=[J.x,J.y,0,1];ke(le,le,U),W.push(new B(le[0]/le[3],le[1]/le[3]))}return W})(b,v),F=(function(V,U,W,J){const le=[],Le=[],ye=J[8]*U,Ce=J[9]*U,Xe=J[10]*U,lt=J[11]*U,Pt=J[8]*W,Xt=J[9]*W,Vt=J[10]*W,Gt=J[11]*W;for(const wr of V){const $t=[],Ht=[];for(const gt of wr){const jr=gt.x,Gr=gt.y,Ir=J[0]*jr+J[4]*Gr+J[12],_r=J[1]*jr+J[5]*Gr+J[13],hn=J[2]*jr+J[6]*Gr+J[14],Jn=J[3]*jr+J[7]*Gr+J[15],_i=hn+Xe,Vi=Jn+lt,Ba=Ir+Pt,ua=_r+Xt,Ri=hn+Vt,Wn=Jn+Gt,Si=new B((Ir+ye)/Vi,(_r+Ce)/Vi);Si.z=_i/Vi,$t.push(Si);const Bi=new B(Ba/Wn,ua/Wn);Bi.z=Ri/Wn,Ht.push(Bi)}le.push($t),Le.push(Ht)}return[le,Le]})(c,I,S,v);return(function(V,U,W){let J=1/0;d_(W,U)&&(J=N_(W,U[0]));for(let le=0;ler.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((r=>{this.gradients[r.id]={}})),this.layoutVertexArray=new We,this.layoutVertexArray2=new Je,this.indexArray=new Bn,this.programConfigurations=new la(t.layers,t.zoom),this.segments=new Kr,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((r=>r.isStateDependent())).map((r=>r.id))}populate(t,r,a){this.hasPattern=Jp("line",this.layers,r);const c=this.layers[0].layout.get("line-sort-key"),p=!c.isConstant(),_=[];for(const{feature:v,id:b,index:S,sourceLayerIndex:I}of t){const L=this.layers[0]._featureFilter.needGeometry,F=ro(v,L);if(!this.layers[0]._featureFilter.filter(new Un(this.zoom,{globalState:this.globalState}),F,a))continue;const V=p?c.evaluate(F,{},a):void 0,U={id:b,properties:v.properties,type:v.type,sourceLayerIndex:I,index:S,geometry:L?F.geometry:bo(v),patterns:{},sortKey:V};_.push(U)}p&&_.sort(((v,b)=>v.sortKey-b.sortKey));for(const v of _){const{geometry:b,index:S,sourceLayerIndex:I}=v;if(this.hasPattern){const L=Qp("line",this.layers,v,this.zoom,r);this.patternFeatures.push(L)}else this.addFeature(v,b,S,a,{},r.subdivisionGranularity);r.featureIndex.insert(t[S].feature,b,S,I,this.index)}}update(t,r,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,r,this.stateDependentLayers,a)}addFeatures(t,r,a){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,r,a,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,Oy)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,By),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(t){if(t.properties&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_end"))return{start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,r,a,c,p,_){const v=this.layers[0].layout,b=v.get("line-join").evaluate(t,{}),S=v.get("line-cap"),I=v.get("line-miter-limit"),L=v.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const F of r)this.addLine(F,t,b,S,I,L,c,_);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,a,p,c)}addLine(t,r,a,c,p,_,v,b){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,t=el(t,v?b.line.getGranularityForZoomLevel(v.z):1),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let ye=0;ye=2&&t[I-1].equals(t[I-2]);)I--;let L=0;for(;L0;if(Vt&&ye>L){const Ht=U.dist(W);if(Ht>2*F){const gt=U.sub(U.sub(W)._mult(F/Ht)._round());this.updateDistance(W,gt),this.addCurrentVertex(gt,le,0,0,V),W=gt}}const wr=W&&J;let $t=wr?a:S?"butt":c;if(wr&&$t==="round"&&(Pt<_?$t="miter":Pt<=2&&($t="fakeround")),$t==="miter"&&Pt>p&&($t="bevel"),$t==="bevel"&&(Pt>2&&($t="flipbevel"),Pt100)Ce=Le.mult(-1);else{const Ht=Pt*le.add(Le).mag()/le.sub(Le).mag();Ce._perp()._mult(Ht*(Gt?-1:1))}this.addCurrentVertex(U,Ce,0,0,V),this.addCurrentVertex(U,Ce.mult(-1),0,0,V)}else if($t==="bevel"||$t==="fakeround"){const Ht=-Math.sqrt(Pt*Pt-1),gt=Gt?Ht:0,jr=Gt?0:Ht;if(W&&this.addCurrentVertex(U,le,gt,jr,V),$t==="fakeround"){const Gr=Math.round(180*Xt/Math.PI/20);for(let Ir=1;Ir2*F){const gt=U.add(J.sub(U)._mult(F/Ht)._round());this.updateDistance(U,gt),this.addCurrentVertex(gt,Le,0,0,V),U=gt}}}}addCurrentVertex(t,r,a,c,p,_=!1){const v=r.y*c-r.x,b=-r.y-r.x*c;this.addHalfVertex(t,r.x+r.y*a,r.y-r.x*a,_,!1,a,p),this.addHalfVertex(t,v,b,_,!0,-c,p),this.distance>j_/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,r,a,c,p,_))}addHalfVertex({x:t,y:r},a,c,p,_,v,b){const S=.5*(this.lineClips?this.scaledDistance*(j_-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t<<1)+(p?1:0),(r<<1)+(_?1:0),Math.round(63*a)+128,Math.round(63*c)+128,1+(v===0?0:v<0?-1:1)|(63&S)<<2,S>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const I=b.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,I,this.e2),b.primitiveLength++),_?this.e2=I:this.e1=I}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(t,r){this.distance+=t.dist(r),this.updateScaledDistance()}}let V_,q_;nr("LineBucket",of,{omit:["layers","patternFeatures"]});var Z_={get paint(){return q_=q_||new Zi({"line-opacity":new Or(xe.paint_line["line-opacity"]),"line-color":new Or(xe.paint_line["line-color"]),"line-translate":new yr(xe.paint_line["line-translate"]),"line-translate-anchor":new yr(xe.paint_line["line-translate-anchor"]),"line-width":new Or(xe.paint_line["line-width"]),"line-gap-width":new Or(xe.paint_line["line-gap-width"]),"line-offset":new Or(xe.paint_line["line-offset"]),"line-blur":new Or(xe.paint_line["line-blur"]),"line-dasharray":new _o(xe.paint_line["line-dasharray"]),"line-pattern":new Zl(xe.paint_line["line-pattern"]),"line-gradient":new Ul(xe.paint_line["line-gradient"])})},get layout(){return V_=V_||new Zi({"line-cap":new yr(xe.layout_line["line-cap"]),"line-join":new Or(xe.layout_line["line-join"]),"line-miter-limit":new yr(xe.layout_line["line-miter-limit"]),"line-round-limit":new yr(xe.layout_line["line-round-limit"]),"line-sort-key":new Or(xe.layout_line["line-sort-key"])})}};class jy extends Or{possiblyEvaluate(t,r){return r=new Un(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),super.possiblyEvaluate(t,r)}evaluate(t,r,a,c){return r=dt({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(t,r,a,c)}}let Ad;class Vy extends xa{constructor(t){super(t,Z_),this.gradientVersion=0,Ad||(Ad=new jy(Z_.paint.properties["line-width"].specification),Ad.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(t){if(t==="line-gradient"){const r=this.gradientExpression();this.stepInterpolant=!!(function(a){return a._styleExpression!==void 0})(r)&&r._styleExpression.expression instanceof ei,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(t,r){super.recalculate(t,r),this.paint._values["line-floorwidth"]=Ad.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,t)}createBucket(t){return new of(t)}queryRadius(t){const r=t,a=U_(gu("line-width",this,r),gu("line-gap-width",this,r)),c=gu("line-offset",this,r);return a/2+Math.abs(c)+Sd(this.paint.get("line-translate"))}queryIntersectsFeature({queryGeometry:t,feature:r,featureState:a,geometry:c,transform:p,pixelsToTileUnits:_}){const v=Pd(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),-p.bearingInRadians,_),b=_/2*U_(this.paint.get("line-width").evaluate(r,a),this.paint.get("line-gap-width").evaluate(r,a)),S=this.paint.get("line-offset").evaluate(r,a);return S&&(c=(function(I,L){const F=[];for(let V=0;V=3){for(let W=0;W0?t+2*n:n}const qy=ti([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Zy=ti([{name:"a_projected_pos",components:3,type:"Float32"}],4);ti([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const Uy=ti([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);ti([{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 $_=ti([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),$y=ti([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Gy(n,t,r){return n.sections.forEach((a=>{a.text=(function(c,p,_){const v=p.layout.get("text-transform").evaluate(_,{});return v==="uppercase"?c=c.toLocaleUpperCase():v==="lowercase"&&(c=c.toLocaleLowerCase()),Ea.applyArabicShaping&&(c=Ea.applyArabicShaping(c)),c})(a.text,t,r)})),n}ti([{name:"triangle",components:3,type:"Uint16"}]),ti([{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"}]),ti([{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"}]),ti([{type:"Float32",name:"offsetX"}]),ti([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),ti([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const Iu={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var Ci=24;const sf=4294967296,G_=1/sf,H_=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");class lf{constructor(t=new Uint8Array(16)){this.buf=ArrayBuffer.isView(t)?t:new Uint8Array(t),this.dataView=new DataView(this.buf.buffer),this.pos=0,this.type=0,this.length=this.buf.length}readFields(t,r,a=this.length){for(;this.pos>3,_=this.pos;this.type=7&c,t(p,r,this),this.pos===_&&this.skip(c)}return r}readMessage(t,r){return this.readFields(t,r,this.readVarint()+this.pos)}readFixed32(){const t=this.dataView.getUint32(this.pos,!0);return this.pos+=4,t}readSFixed32(){const t=this.dataView.getInt32(this.pos,!0);return this.pos+=4,t}readFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*sf;return this.pos+=8,t}readSFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*sf;return this.pos+=8,t}readFloat(){const t=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,t}readDouble(){const t=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,t}readVarint(t){const r=this.buf;let a,c;return c=r[this.pos++],a=127&c,c<128?a:(c=r[this.pos++],a|=(127&c)<<7,c<128?a:(c=r[this.pos++],a|=(127&c)<<14,c<128?a:(c=r[this.pos++],a|=(127&c)<<21,c<128?a:(c=r[this.pos],a|=(15&c)<<28,(function(p,_,v){const b=v.buf;let S,I;if(I=b[v.pos++],S=(112&I)>>4,I<128||(I=b[v.pos++],S|=(127&I)<<3,I<128)||(I=b[v.pos++],S|=(127&I)<<10,I<128)||(I=b[v.pos++],S|=(127&I)<<17,I<128)||(I=b[v.pos++],S|=(127&I)<<24,I<128)||(I=b[v.pos++],S|=(1&I)<<31,I<128))return tc(p,S,_);throw new Error("Expected varint not more than 10 bytes")})(a,t,this)))))}readVarint64(){return this.readVarint(!0)}readSVarint(){const t=this.readVarint();return t%2==1?(t+1)/-2:t/2}readBoolean(){return!!this.readVarint()}readString(){const t=this.readVarint()+this.pos,r=this.pos;return this.pos=t,t-r>=12&&H_?H_.decode(this.buf.subarray(r,t)):(function(a,c,p){let _="",v=c;for(;v239?4:b>223?3:b>191?2:1;if(v+V>p)break;V===1?b<128&&(F=b):V===2?(S=a[v+1],(192&S)==128&&(F=(31&b)<<6|63&S,F<=127&&(F=null))):V===3?(S=a[v+1],I=a[v+2],(192&S)==128&&(192&I)==128&&(F=(15&b)<<12|(63&S)<<6|63&I,(F<=2047||F>=55296&&F<=57343)&&(F=null))):V===4&&(S=a[v+1],I=a[v+2],L=a[v+3],(192&S)==128&&(192&I)==128&&(192&L)==128&&(F=(15&b)<<18|(63&S)<<12|(63&I)<<6|63&L,(F<=65535||F>=1114112)&&(F=null))),F===null?(F=65533,V=1):F>65535&&(F-=65536,_+=String.fromCharCode(F>>>10&1023|55296),F=56320|1023&F),_+=String.fromCharCode(F),v+=V}return _})(this.buf,r,t)}readBytes(){const t=this.readVarint()+this.pos,r=this.buf.subarray(this.pos,t);return this.pos=t,r}readPackedVarint(t=[],r){const a=this.readPackedEnd();for(;this.pos127;);else if(r===2)this.pos=this.readVarint()+this.pos;else if(r===5)this.pos+=4;else{if(r!==1)throw new Error(`Unimplemented type: ${r}`);this.pos+=8}}writeTag(t,r){this.writeVarint(t<<3|r)}realloc(t){let r=this.length||16;for(;r268435455||t<0?(function(r,a){let c,p;if(r>=0?(c=r%4294967296|0,p=r/4294967296|0):(c=~(-r%4294967296),p=~(-r/4294967296),4294967295^c?c=c+1|0:(c=0,p=p+1|0)),r>=18446744073709552e3||r<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");a.realloc(10),(function(_,v,b){b.buf[b.pos++]=127&_|128,_>>>=7,b.buf[b.pos++]=127&_|128,_>>>=7,b.buf[b.pos++]=127&_|128,_>>>=7,b.buf[b.pos++]=127&_|128,b.buf[b.pos]=127&(_>>>=7)})(c,0,a),(function(_,v){const b=(7&_)<<4;v.buf[v.pos++]|=b|((_>>>=3)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_|((_>>>=7)?128:0),_&&(v.buf[v.pos++]=127&_)))))})(p,a)})(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))}writeSVarint(t){this.writeVarint(t<0?2*-t-1:2*t)}writeBoolean(t){this.writeVarint(+t)}writeString(t){t=String(t),this.realloc(4*t.length),this.pos++;const r=this.pos;this.pos=(function(c,p,_){for(let v,b,S=0;S55295&&v<57344){if(!b){v>56319||S+1===p.length?(c[_++]=239,c[_++]=191,c[_++]=189):b=v;continue}if(v<56320){c[_++]=239,c[_++]=191,c[_++]=189,b=v;continue}v=b-55296<<10|v-56320|65536,b=null}else b&&(c[_++]=239,c[_++]=191,c[_++]=189,b=null);v<128?c[_++]=v:(v<2048?c[_++]=v>>6|192:(v<65536?c[_++]=v>>12|224:(c[_++]=v>>18|240,c[_++]=v>>12&63|128),c[_++]=v>>6&63|128),c[_++]=63&v|128)}return _})(this.buf,t,this.pos);const a=this.pos-r;a>=128&&W_(r,a,this),this.pos=r-1,this.writeVarint(a),this.pos+=a}writeFloat(t){this.realloc(4),this.dataView.setFloat32(this.pos,t,!0),this.pos+=4}writeDouble(t){this.realloc(8),this.dataView.setFloat64(this.pos,t,!0),this.pos+=8}writeBytes(t){const r=t.length;this.writeVarint(r),this.realloc(r);for(let a=0;a=128&&W_(a,c,this),this.pos=a-1,this.writeVarint(c),this.pos+=c}writeMessage(t,r,a){this.writeTag(t,2),this.writeRawMessage(r,a)}writePackedVarint(t,r){r.length&&this.writeMessage(t,Hy,r)}writePackedSVarint(t,r){r.length&&this.writeMessage(t,Wy,r)}writePackedBoolean(t,r){r.length&&this.writeMessage(t,Ky,r)}writePackedFloat(t,r){r.length&&this.writeMessage(t,Xy,r)}writePackedDouble(t,r){r.length&&this.writeMessage(t,Yy,r)}writePackedFixed32(t,r){r.length&&this.writeMessage(t,Jy,r)}writePackedSFixed32(t,r){r.length&&this.writeMessage(t,Qy,r)}writePackedFixed64(t,r){r.length&&this.writeMessage(t,e1,r)}writePackedSFixed64(t,r){r.length&&this.writeMessage(t,t1,r)}writeBytesField(t,r){this.writeTag(t,2),this.writeBytes(r)}writeFixed32Field(t,r){this.writeTag(t,5),this.writeFixed32(r)}writeSFixed32Field(t,r){this.writeTag(t,5),this.writeSFixed32(r)}writeFixed64Field(t,r){this.writeTag(t,1),this.writeFixed64(r)}writeSFixed64Field(t,r){this.writeTag(t,1),this.writeSFixed64(r)}writeVarintField(t,r){this.writeTag(t,0),this.writeVarint(r)}writeSVarintField(t,r){this.writeTag(t,0),this.writeSVarint(r)}writeStringField(t,r){this.writeTag(t,2),this.writeString(r)}writeFloatField(t,r){this.writeTag(t,5),this.writeFloat(r)}writeDoubleField(t,r){this.writeTag(t,1),this.writeDouble(r)}writeBooleanField(t,r){this.writeVarintField(t,+r)}}function tc(n,t,r){return r?4294967296*t+(n>>>0):4294967296*(t>>>0)+(n>>>0)}function W_(n,t,r){const a=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(7*Math.LN2));r.realloc(a);for(let c=r.pos-1;c>=n;c--)r.buf[c+a]=r.buf[c]}function Hy(n,t){for(let r=0;rv.h-_.h));const a=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),r),h:1/0}];let c=0,p=0;for(const _ of n)for(let v=a.length-1;v>=0;v--){const b=a[v];if(!(_.w>b.w||_.h>b.h)){if(_.x=b.x,_.y=b.y,p=Math.max(p,_.y+_.h),c=Math.max(c,_.x+_.w),_.w===b.w&&_.h===b.h){const S=a.pop();S&&v=0&&a>=t&&zd[this.text.charCodeAt(a)];a--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)}substring(t,r){const a=new rc;return a.text=this.text.substring(t,r),a.sectionIndex=this.sectionIndex.slice(t,r),a.sections=this.sections,a}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,r)=>Math.max(t,this.sections[r].scale)),0)}getMaxImageSize(t){let r=0,a=0;for(let c=0;c=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Ed(n,t,r,a,c,p,_,v,b,S,I,L,F,V,U){const W=rc.fromFeature(n,c);let J;L===T.ao.vertical&&W.verticalizePunctuation();const{processBidirectionalText:le,processStyledBidirectionalText:Le}=Ea;if(le&&W.sections.length===1){J=[];const Xe=le(W.toString(),uf(W,S,p,t,a,V));for(const lt of Xe){const Pt=new rc;Pt.text=lt,Pt.sections=W.sections;for(let Xt=0;Xt=0;let S=0;for(let L=0;LS){const I=Math.ceil(p/S);c*=I/_,_=I}return{x1:a,y1:c,x2:a+p,y2:c+_}}function ng(n,t,r,a,c,p){const _=n.image;let v;if(_.content){const J=_.content,le=_.pixelRatio||1;v=[J[0]/le,J[1]/le,_.displaySize[0]-J[2]/le,_.displaySize[1]-J[3]/le]}const b=t.left*p,S=t.right*p;let I,L,F,V;r==="width"||r==="both"?(V=c[0]+b-a[3],L=c[0]+S+a[1]):(V=c[0]+(b+S-_.displaySize[0])/2,L=V+_.displaySize[0]);const U=t.top*p,W=t.bottom*p;return r==="height"||r==="both"?(I=c[1]+U-a[0],F=c[1]+W+a[2]):(I=c[1]+(U+W-_.displaySize[1])/2,F=I+_.displaySize[1]),{image:_,top:I,right:L,bottom:F,left:V,collisionPadding:v}}const Uo=128,vs=32640;function ig(n,t){const{expression:r}=t;if(r.kind==="constant")return{kind:"constant",layoutSize:r.evaluate(new Un(n+1))};if(r.kind==="source")return{kind:"source"};{const{zoomStops:a,interpolationType:c}=r;let p=0;for(;p_.id)),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[];const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=ig(this.zoom,r["text-size"]),this.iconSizeData=ig(this.zoom,r["icon-size"]);const a=this.layers[0].layout,c=a.get("symbol-sort-key"),p=a.get("symbol-z-order");this.canOverlap=df(a,"text-overlap","text-allow-overlap")!=="never"||df(a,"icon-overlap","icon-allow-overlap")!=="never"||a.get("text-ignore-placement")||a.get("icon-ignore-placement"),this.sortFeaturesByKey=p!=="viewport-y"&&!c.isConstant(),this.sortFeaturesByY=(p==="viewport-y"||p==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,a.get("symbol-placement")==="point"&&(this.writingModes=a.get("text-writing-mode").map((_=>T.ao[_]))),this.stateDependentLayerIds=this.layers.filter((_=>_.isStateDependent())).map((_=>_.id)),this.sourceID=t.sourceID}createArrays(){this.text=new ff(new la(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new ff(new la(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new ne,this.lineVertexArray=new ue,this.symbolInstances=new Q,this.textAnchorOffsets=new he}calculateGlyphDependencies(t,r,a,c,p){for(let _=0;_0)&&(_.value.kind!=="constant"||_.value.value.length>0),I=b.value.kind!=="constant"||!!b.value.value||Object.keys(b.parameters).length>0,L=p.get("symbol-sort-key");if(this.features=[],!S&&!I)return;const F=r.iconDependencies,V=r.glyphDependencies,U=r.availableImages,W=new Un(this.zoom,{globalState:this.globalState});for(const{feature:J,id:le,index:Le,sourceLayerIndex:ye}of t){const Ce=c._featureFilter.needGeometry,Xe=ro(J,Ce);if(!c._featureFilter.filter(W,Xe,a))continue;let lt,Pt;if(Ce||(Xe.geometry=bo(J)),S){const Vt=c.getValueAndResolveTokens("text-field",Xe,a,U),Gt=Sn.factory(Vt),wr=this.hasRTLText=this.hasRTLText||m1(Gt);(!wr||Ea.getRTLTextPluginStatus()==="unavailable"||wr&&Ea.isParsed())&&(lt=Gy(Gt,c,Xe))}if(I){const Vt=c.getValueAndResolveTokens("icon-image",Xe,a,U);Pt=Vt instanceof Gn?Vt:Gn.fromString(Vt)}if(!lt&&!Pt)continue;const Xt=this.sortFeaturesByKey?L.evaluate(Xe,{},a):void 0;if(this.features.push({id:le,text:lt,icon:Pt,index:Le,sourceLayerIndex:ye,geometry:Xe.geometry,properties:J.properties,type:ec.types[J.type],sortKey:Xt}),Pt&&(F[Pt.name]=!0),lt){const Vt=_.evaluate(Xe,{},a).join(","),Gt=p.get("text-rotation-alignment")!=="viewport"&&p.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(T.ao.vertical)>=0;for(const wr of lt.sections)if(wr.image)F[wr.image.name]=!0;else{const $t=jl(lt.toString()),Ht=wr.fontStack||Vt,gt=V[Ht]=V[Ht]||{};this.calculateGlyphDependencies(wr.text,gt,Gt,this.allowVerticalPlacement,$t)}}}p.get("symbol-placement")==="line"&&(this.features=(function(J){const le={},Le={},ye=[];let Ce=0;function Xe(Vt){ye.push(J[Vt]),Ce++}function lt(Vt,Gt,wr){const $t=Le[Vt];return delete Le[Vt],Le[Gt]=$t,ye[$t].geometry[0].pop(),ye[$t].geometry[0]=ye[$t].geometry[0].concat(wr[0]),$t}function Pt(Vt,Gt,wr){const $t=le[Gt];return delete le[Gt],le[Vt]=$t,ye[$t].geometry[0].shift(),ye[$t].geometry[0]=wr[0].concat(ye[$t].geometry[0]),$t}function Xt(Vt,Gt,wr){const $t=wr?Gt[0][Gt[0].length-1]:Gt[0][0];return`${Vt}:${$t.x}:${$t.y}`}for(let Vt=0;VtVt.geometry))})(this.features)),this.sortFeaturesByKey&&this.features.sort(((J,le)=>J.sortKey-le.sortKey))}update(t,r,a){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,r,this.layers,a),this.icon.programConfigurations.updatePaintArrays(t,r,this.layers,a))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(t,r){const a=this.lineVertexArray.length;if(t.segment!==void 0){let c=t.dist(r[t.segment+1]),p=t.dist(r[t.segment]);const _={};for(let v=t.segment+1;v=0;v--)_[v]={x:r[v].x,y:r[v].y,tileUnitDistanceFromAnchor:p},v>0&&(p+=r[v-1].dist(r[v]));for(let v=0;v0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,r){const a=t.placedSymbolArray.get(r),c=a.vertexStartIndex+4*a.numGlyphs;for(let p=a.vertexStartIndex;pc[v]-c[b]||p[b]-p[v])),_}addToSortKeyRanges(t,r){const a=this.sortKeyRanges[this.sortKeyRanges.length-1];a&&a.sortKey===r?a.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:r,symbolInstanceStart:t,symbolInstanceEnd:t+1})}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const r of this.symbolInstanceIndexes){const a=this.symbolInstances.get(r);this.featureSortOrder.push(a.featureIndex),[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach(((c,p,_)=>{c>=0&&_.indexOf(c)===p&&this.addIndicesForPlacedSymbol(this.text,c)})),a.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,a.verticalPlacedTextSymbolIndex),a.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.placedIconSymbolIndex),a.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let ag,og;nr("SymbolBucket",nc,{omit:["layers","collisionBoxArray","features","compareText"]}),nc.MAX_GLYPHS=65535,nc.addDynamicAttributes=pf;var _f={get paint(){return og=og||new Zi({"icon-opacity":new Or(xe.paint_symbol["icon-opacity"]),"icon-color":new Or(xe.paint_symbol["icon-color"]),"icon-halo-color":new Or(xe.paint_symbol["icon-halo-color"]),"icon-halo-width":new Or(xe.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Or(xe.paint_symbol["icon-halo-blur"]),"icon-translate":new yr(xe.paint_symbol["icon-translate"]),"icon-translate-anchor":new yr(xe.paint_symbol["icon-translate-anchor"]),"text-opacity":new Or(xe.paint_symbol["text-opacity"]),"text-color":new Or(xe.paint_symbol["text-color"],{runtimeType:Yt,getOverride:n=>n.textColor,hasOverride:n=>!!n.textColor}),"text-halo-color":new Or(xe.paint_symbol["text-halo-color"]),"text-halo-width":new Or(xe.paint_symbol["text-halo-width"]),"text-halo-blur":new Or(xe.paint_symbol["text-halo-blur"]),"text-translate":new yr(xe.paint_symbol["text-translate"]),"text-translate-anchor":new yr(xe.paint_symbol["text-translate-anchor"])})},get layout(){return ag=ag||new Zi({"symbol-placement":new yr(xe.layout_symbol["symbol-placement"]),"symbol-spacing":new yr(xe.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new yr(xe.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Or(xe.layout_symbol["symbol-sort-key"]),"symbol-z-order":new yr(xe.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new yr(xe.layout_symbol["icon-allow-overlap"]),"icon-overlap":new yr(xe.layout_symbol["icon-overlap"]),"icon-ignore-placement":new yr(xe.layout_symbol["icon-ignore-placement"]),"icon-optional":new yr(xe.layout_symbol["icon-optional"]),"icon-rotation-alignment":new yr(xe.layout_symbol["icon-rotation-alignment"]),"icon-size":new Or(xe.layout_symbol["icon-size"]),"icon-text-fit":new yr(xe.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new yr(xe.layout_symbol["icon-text-fit-padding"]),"icon-image":new Or(xe.layout_symbol["icon-image"]),"icon-rotate":new Or(xe.layout_symbol["icon-rotate"]),"icon-padding":new Or(xe.layout_symbol["icon-padding"]),"icon-keep-upright":new yr(xe.layout_symbol["icon-keep-upright"]),"icon-offset":new Or(xe.layout_symbol["icon-offset"]),"icon-anchor":new Or(xe.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new yr(xe.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new yr(xe.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new yr(xe.layout_symbol["text-rotation-alignment"]),"text-field":new Or(xe.layout_symbol["text-field"]),"text-font":new Or(xe.layout_symbol["text-font"]),"text-size":new Or(xe.layout_symbol["text-size"]),"text-max-width":new Or(xe.layout_symbol["text-max-width"]),"text-line-height":new yr(xe.layout_symbol["text-line-height"]),"text-letter-spacing":new Or(xe.layout_symbol["text-letter-spacing"]),"text-justify":new Or(xe.layout_symbol["text-justify"]),"text-radial-offset":new Or(xe.layout_symbol["text-radial-offset"]),"text-variable-anchor":new yr(xe.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new Or(xe.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new Or(xe.layout_symbol["text-anchor"]),"text-max-angle":new yr(xe.layout_symbol["text-max-angle"]),"text-writing-mode":new yr(xe.layout_symbol["text-writing-mode"]),"text-rotate":new Or(xe.layout_symbol["text-rotate"]),"text-padding":new yr(xe.layout_symbol["text-padding"]),"text-keep-upright":new yr(xe.layout_symbol["text-keep-upright"]),"text-transform":new Or(xe.layout_symbol["text-transform"]),"text-offset":new Or(xe.layout_symbol["text-offset"]),"text-allow-overlap":new yr(xe.layout_symbol["text-allow-overlap"]),"text-overlap":new yr(xe.layout_symbol["text-overlap"]),"text-ignore-placement":new yr(xe.layout_symbol["text-ignore-placement"]),"text-optional":new yr(xe.layout_symbol["text-optional"])})}};class sg{constructor(t){if(t.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=t.property.overrides?t.property.overrides.runtimeType:_t,this.defaultValue=t}evaluate(t){if(t.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(t.formattedSection))return r.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}nr("FormatSectionOverride",sg,{omit:["defaultValue"]});class Dd extends xa{constructor(t){super(t,_f)}recalculate(t,r){if(super.recalculate(t,r),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){const a=this.layout.get("text-writing-mode");if(a){const c=[];for(const p of a)c.indexOf(p)<0&&c.push(p);this.layout._values["text-writing-mode"]=c}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(t,r,a,c){const p=this.layout.get(t).evaluate(r,{},a,c),_=this._unevaluatedLayout._values[t];return _.isDataDriven()||zl(_.value)||!p?p:(function(v,b){return b.replace(/{([^{}]+)}/g,((S,I)=>v&&I in v?String(v[I]):""))})(r.properties,p)}createBucket(t){return new nc(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const t of _f.paint.overridableProperties){if(!Dd.hasPaintOverride(this.layout,t))continue;const r=this.paint.get(t),a=new sg(r),c=new Wc(a,r.property.specification);let p=null;p=r.value.kind==="constant"||r.value.kind==="source"?new qs("source",c):new Xc("composite",c,r.value.zoomStops),this.paint._values[t]=new $a(r.property,p,r.parameters)}}_handleOverridablePaintPropertyUpdate(t,r,a){return!(!this.layout||r.isDataDriven()||a.isDataDriven())&&Dd.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,r){const a=t.get("text-field"),c=_f.paint.properties[r];let p=!1;const _=v=>{for(const b of v)if(c.overrides&&c.overrides.hasOverride(b))return void(p=!0)};if(a.value.kind==="constant"&&a.value.value instanceof Sn)_(a.value.value.sections);else if(a.value.kind==="source"){const v=S=>{p||(S instanceof _a&&Lr(S.value)===pn?_(S.value.sections):S instanceof Ao?_(S.sections):S.eachChild(v))},b=a.value;b._styleExpression&&v(b._styleExpression.expression)}return p}}let lg;var _1={get paint(){return lg=lg||new Zi({"background-color":new yr(xe.paint_background["background-color"]),"background-pattern":new _o(xe.paint_background["background-pattern"]),"background-opacity":new yr(xe.paint_background["background-opacity"])})}};class g1 extends xa{constructor(t){super(t,_1)}}let cg;var v1={get paint(){return cg=cg||new Zi({"raster-opacity":new yr(xe.paint_raster["raster-opacity"]),"raster-hue-rotate":new yr(xe.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new yr(xe.paint_raster["raster-brightness-min"]),"raster-brightness-max":new yr(xe.paint_raster["raster-brightness-max"]),"raster-saturation":new yr(xe.paint_raster["raster-saturation"]),"raster-contrast":new yr(xe.paint_raster["raster-contrast"]),"raster-resampling":new yr(xe.paint_raster["raster-resampling"]),"raster-fade-duration":new yr(xe.paint_raster["raster-fade-duration"])})}};class y1 extends xa{constructor(t){super(t,v1)}}class x1 extends xa{constructor(t){super(t,{}),this.onAdd=r=>{this.implementation.onAdd&&this.implementation.onAdd(r,r.painter.context.gl)},this.onRemove=r=>{this.implementation.onRemove&&this.implementation.onRemove(r,r.painter.context.gl)},this.implementation=t}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 b1{constructor(t){this._methodToThrottle=t,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 w1={once:!0},gf=63710088e-1;class ys{constructor(t,r){if(isNaN(t)||isNaN(r))throw new Error(`Invalid LngLat object: (${t}, ${r})`);if(this.lng=+t,this.lat=+r,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new ys(at(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const r=Math.PI/180,a=this.lat*r,c=t.lat*r,p=Math.sin(a)*Math.sin(c)+Math.cos(a)*Math.cos(c)*Math.cos((t.lng-this.lng)*r);return gf*Math.acos(Math.min(p,1))}static convert(t){if(t instanceof ys)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new ys(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t=="object"&&t!==null)return new ys(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const ug=2*Math.PI*gf;function hg(n){return ug*Math.cos(n*Math.PI/180)}function dg(n){return(180+n)/360}function pg(n){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n*Math.PI/360)))/360}function fg(n,t){return n/hg(t)}function vf(n){return 360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90}function mg(n,t){return n*hg(vf(t))}class ku{constructor(t,r,a=0){this.x=+t,this.y=+r,this.z=+a}static fromLngLat(t,r=0){const a=ys.convert(t);return new ku(dg(a.lng),pg(a.lat),fg(r,a.lat))}toLngLat(){return new ys(360*this.x-180,vf(this.y))}toAltitude(){return mg(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/ug*(t=vf(this.y),1/Math.cos(t*Math.PI/180));var t}}function _g(n,t,r){var a=2*Math.PI*6378137/256/Math.pow(2,r);return[n*a-2*Math.PI*6378137/2,t*a-2*Math.PI*6378137/2]}class yf{constructor(t,r,a){if(!(function(c,p,_){return!(c<0||c>25||_<0||_>=Math.pow(2,c)||p<0||p>=Math.pow(2,c))})(t,r,a))throw new Error(`x=${r}, y=${a}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `);this.z=t,this.x=r,this.y=a,this.key=ic(0,t,t,r,a)}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,r,a){const c=(_=this.y,v=this.z,b=_g(256*(p=this.x),256*(_=Math.pow(2,v)-_-1),v),S=_g(256*(p+1),256*(_+1),v),b[0]+","+b[1]+","+S[0]+","+S[1]);var p,_,v,b,S;const I=(function(L,F,V){let U,W="";for(let J=L;J>0;J--)U=1<1?"@2x":"").replace(/{quadkey}/g,I).replace(/{bbox-epsg-3857}/g,c)}isChildOf(t){const r=this.z-t.z;return r>0&&t.x===this.x>>r&&t.y===this.y>>r}getTilePoint(t){const r=Math.pow(2,this.z);return new B((t.x*r-this.x)*oe,(t.y*r-this.y)*oe)}toString(){return`${this.z}/${this.x}/${this.y}`}}class gg{constructor(t,r){this.wrap=t,this.canonical=r,this.key=ic(t,r.z,r.z,r.x,r.y)}}class Ra{constructor(t,r,a,c,p){if(this.terrainRttPosMatrix32f=null,t= z; overscaledZ = ${t}; z = ${a}`);this.overscaledZ=t,this.wrap=r,this.canonical=new yf(a,+c,+p),this.key=ic(r,t,a,c,p)}clone(){return new Ra(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const r=this.canonical.z-t;return t>this.canonical.z?new Ra(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Ra(t,this.wrap,t,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(t,r){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const a=this.canonical.z-t;return t>this.canonical.z?ic(this.wrap*+r,t,this.canonical.z,this.canonical.x,this.canonical.y):ic(this.wrap*+r,t,t,this.canonical.x>>a,this.canonical.y>>a)}isChildOf(t){if(t.wrap!==this.wrap)return!1;const r=this.canonical.z-t.canonical.z;return t.overscaledZ===0||t.overscaledZ>r&&t.canonical.y===this.canonical.y>>r}children(t){if(this.overscaledZ>=t)return[new Ra(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,a=2*this.canonical.x,c=2*this.canonical.y;return[new Ra(r,this.wrap,r,a,c),new Ra(r,this.wrap,r,a+1,c),new Ra(r,this.wrap,r,a,c+1),new Ra(r,this.wrap,r,a+1,c+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.ythis.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(t){return this.expandBy(-t)}map(t){const r=new tl;return r.extend(t(new B(this.minX,this.minY))),r.extend(t(new B(this.maxX,this.minY))),r.extend(t(new B(this.minX,this.maxY))),r.extend(t(new B(this.maxX,this.maxY))),r}static fromPoints(t){const r=new tl;for(const a of t)r.extend(a);return r}contains(t){return t.x>=this.minX&&t.x<=this.maxX&&t.y>=this.minY&&t.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(t){return!this.empty()&&!t.empty()&&t.minX>=this.minX&&t.maxX<=this.maxX&&t.minY>=this.minY&&t.maxY<=this.maxY}intersects(t){return!this.empty()&&!t.empty()&&t.minX<=this.maxX&&t.maxX>=this.minX&&t.minY<=this.maxY&&t.maxY>=this.minY}}class vg{constructor(t){this._stringToNumber={},this._numberToString=[];for(let r=0;r=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[t]}}class yg{constructor(t,r,a,c,p){this.type="Feature",this._vectorTileFeature=t,t._z=r,t._x=a,t._y=c,this.properties=t.properties,this.id=p}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(t){this._geometry=t}toJSON(){const t={geometry:this.geometry};for(const r in this)r!=="_geometry"&&r!=="_vectorTileFeature"&&(t[r]=this[r]);return t}}class xg{constructor(t,r){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Xs(oe,16,0),this.grid3D=new Xs(oe,16,0),this.featureIndexArray=new Pe,this.promoteId=r}insert(t,r,a,c,p,_){const v=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(a,c,p);const b=_?this.grid3D:this.grid;for(let S=0;S=0&&L[3]>=0&&b.insert(v,L[0],L[1],L[2],L[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new B_(new lf(this.rawTileData)).layers,this.sourceLayerCoder=new vg(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(t,r,a,c){this.loadVTLayers();const p=t.params,_=oe/t.tileSize/t.scale,v=Bo(p.filter),b=t.queryGeometry,S=t.queryPadding*_,I=tl.fromPoints(b),L=this.grid.query(I.minX-S,I.minY-S,I.maxX+S,I.maxY+S),F=tl.fromPoints(t.cameraQueryGeometry).expandBy(S),V=this.grid3D.query(F.minX,F.minY,F.maxX,F.maxY,((J,le,Le,ye)=>(function(Ce,Xe,lt,Pt,Xt){for(const Gt of Ce)if(Xe<=Gt.x&<<=Gt.y&&Pt>=Gt.x&&Xt>=Gt.y)return!0;const Vt=[new B(Xe,lt),new B(Xe,Xt),new B(Pt,Xt),new B(Pt,lt)];if(Ce.length>2){for(const Gt of Vt)if(Yl(Ce,Gt))return!0}for(let Gt=0;Gt(ye||(ye=bo(Ce)),Xe.queryIntersectsFeature({queryGeometry:b,feature:Ce,featureState:lt,geometry:ye,zoom:this.z,transform:t.transform,pixelsToTileUnits:_,pixelPosMatrix:t.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:t.getElevation}))))}return U}loadMatchingFeature(t,r,a,c,p,_,v,b,S,I,L){const F=this.bucketLayerIDs[r];if(_&&!F.some((J=>_.has(J))))return;const V=this.sourceLayerCoder.decode(a),U=this.vtLayers[V].feature(c);if(p.needGeometry){const J=ro(U,!0);if(!p.filter(new Un(this.tileID.overscaledZ),J,this.tileID.canonical))return}else if(!p.filter(new Un(this.tileID.overscaledZ),U))return;const W=this.getId(U,V);for(let J=0;J{const v=t instanceof ql?t.get(_):null;return v&&v.evaluate?v.evaluate(r,a,c):v}))}function T1(n,t){return t-n}function wg(n,t,r,a,c){const p=[];for(let _=0;_=a&&L.x>=a||(I.x>=a?I=new B(a,I.y+(a-I.x)/(L.x-I.x)*(L.y-I.y))._round():L.x>=a&&(L=new B(a,I.y+(a-I.x)/(L.x-I.x)*(L.y-I.y))._round()),I.y>=c&&L.y>=c||(I.y>=c?I=new B(I.x+(c-I.y)/(L.y-I.y)*(L.x-I.x),c)._round():L.y>=c&&(L=new B(I.x+(c-I.y)/(L.y-I.y)*(L.x-I.x),c)._round()),b&&I.equals(b[b.length-1])||(b=[I],p.push(b)),b.push(L)))))}}return p}nr("FeatureIndex",xg,{omit:["rawTileData","sourceLayerCoder"]});class xs extends B{constructor(t,r,a,c){super(t,r),this.angle=a,c!==void 0&&(this.segment=c)}clone(){return new xs(this.x,this.y,this.angle,this.segment)}}function Tg(n,t,r,a,c){if(t.segment===void 0||r===0)return!0;let p=t,_=t.segment+1,v=0;for(;v>-r/2;){if(_--,_<0)return!1;v-=n[_].dist(p),p=n[_]}v+=n[_].dist(n[_+1]),_++;const b=[];let S=0;for(;va;)S-=b.shift().angleDelta;if(S>c)return!1;_++,v+=I.dist(L)}return!0}function Cg(n){let t=0;for(let r=0;rS){const U=(S-b)/V,W=Za.number(L.x,F.x,U),J=Za.number(L.y,F.y,U),le=new xs(W,J,F.angleTo(L),I);return le._round(),!_||Tg(n,le,v,_,t)?le:void 0}b+=V}}function S1(n,t,r,a,c,p,_,v,b){const S=Sg(a,p,_),I=Pg(a,c),L=I*_,F=n[0].x===0||n[0].x===b||n[0].y===0||n[0].y===b;return t-L=0&&Ce=0&&Xe=0&&F+S<=I){const lt=new xs(Ce,Xe,Le,U);lt._round(),a&&!Tg(n,lt,p,a,c)||V.push(lt)}}L+=le}return v||V.length||_||(V=Ig(n,L/2,r,a,c,p,_,!0,b)),V}function Mg(n,t,r,a){const c=[],p=n.image,_=p.pixelRatio,v=p.paddedRect.w-2,b=p.paddedRect.h-2;let S={x1:n.left,y1:n.top,x2:n.right,y2:n.bottom};const I=p.stretchX||[[0,v]],L=p.stretchY||[[0,b]],F=(gt,jr)=>gt+jr[1]-jr[0],V=I.reduce(F,0),U=L.reduce(F,0),W=v-V,J=b-U;let le=0,Le=V,ye=0,Ce=U,Xe=0,lt=W,Pt=0,Xt=J;if(p.content&&a){const gt=p.content,jr=gt[2]-gt[0],Gr=gt[3]-gt[1];(p.textFitWidth||p.textFitHeight)&&(S=rg(n)),le=Rd(I,0,gt[0]),ye=Rd(L,0,gt[1]),Le=Rd(I,gt[0],gt[2]),Ce=Rd(L,gt[1],gt[3]),Xe=gt[0]-le,Pt=gt[1]-ye,lt=jr-Le,Xt=Gr-Ce}const Vt=S.x1,Gt=S.y1,wr=S.x2-Vt,$t=S.y2-Gt,Ht=(gt,jr,Gr,Ir)=>{const _r=Bd(gt.stretch-le,Le,wr,Vt),hn=Fd(gt.fixed-Xe,lt,gt.stretch,V),Jn=Bd(jr.stretch-ye,Ce,$t,Gt),_i=Fd(jr.fixed-Pt,Xt,jr.stretch,U),Vi=Bd(Gr.stretch-le,Le,wr,Vt),Ba=Fd(Gr.fixed-Xe,lt,Gr.stretch,V),ua=Bd(Ir.stretch-ye,Ce,$t,Gt),Ri=Fd(Ir.fixed-Pt,Xt,Ir.stretch,U),Wn=new B(_r,Jn),Si=new B(Vi,Jn),Bi=new B(Vi,ua),Fi=new B(_r,ua),ra=new B(hn/_,_i/_),Fa=new B(Ba/_,Ri/_),Pi=t*Math.PI/180;if(Pi){const Ii=Math.sin(Pi),Mi=Math.cos(Pi),ui=[Mi,-Ii,Ii,Mi];Wn._matMult(ui),Si._matMult(ui),Fi._matMult(ui),Bi._matMult(ui)}const ha=gt.stretch+gt.fixed,gi=jr.stretch+jr.fixed;return{tl:Wn,tr:Si,bl:Fi,br:Bi,tex:{x:p.paddedRect.x+1+ha,y:p.paddedRect.y+1+gi,w:Gr.stretch+Gr.fixed-ha,h:Ir.stretch+Ir.fixed-gi},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:ra,pixelOffsetBR:Fa,minFontScaleX:lt/_/wr,minFontScaleY:Xt/_/$t,isSDF:r}};if(a&&(p.stretchX||p.stretchY)){const gt=kg(I,W,V),jr=kg(L,J,U);for(let Gr=0;Gr0&&(W=Math.max(10,W),this.circleDiameter=W)}else{const F=!((L=_.image)===null||L===void 0)&&L.content&&(_.image.textFitWidth||_.image.textFitHeight)?rg(_):{x1:_.left,y1:_.top,x2:_.right,y2:_.bottom};F.y1=F.y1*v-b[0],F.y2=F.y2*v+b[2],F.x1=F.x1*v-b[3],F.x2=F.x2*v+b[1];const V=_.collisionPadding;if(V&&(F.x1-=V[0]*v,F.y1-=V[1]*v,F.x2+=V[2]*v,F.y2+=V[3]*v),I){const U=new B(F.x1,F.y1),W=new B(F.x2,F.y1),J=new B(F.x1,F.y2),le=new B(F.x2,F.y2),Le=I*Math.PI/180;U._rotate(Le),W._rotate(Le),J._rotate(Le),le._rotate(Le),F.x1=Math.min(U.x,W.x,J.x,le.x),F.x2=Math.max(U.x,W.x,J.x,le.x),F.y1=Math.min(U.y,W.y,J.y,le.y),F.y2=Math.max(U.y,W.y,J.y,le.y)}t.emplaceBack(r.x,r.y,F.x1,F.y1,F.x2,F.y2,a,c,p)}this.boxEndIndex=t.length}}class P1{constructor(t=[],r=(a,c)=>ac?1:0){if(this.data=t,this.length=this.data.length,this.compare=r,this.length>0)for(let a=(this.length>>1)-1;a>=0;a--)this._down(a)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(this.length===0)return;const t=this.data[0],r=this.data.pop();return--this.length>0&&(this.data[0]=r,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:r,compare:a}=this,c=r[t];for(;t>0;){const p=t-1>>1,_=r[p];if(a(c,_)>=0)break;r[t]=_,t=p}r[t]=c}_down(t){const{data:r,compare:a}=this,c=this.length>>1,p=r[t];for(;t=0)break;r[t]=r[_],t=_}r[t]=p}}function I1(n,t=1,r=!1){const a=tl.fromPoints(n[0]),c=Math.min(a.width(),a.height());let p=c/2;const _=new P1([],M1),{minX:v,minY:b,maxX:S,maxY:I}=a;if(c===0)return new B(v,b);for(let V=v;VL.d||!L.d)&&(L=V,r&&console.log("found best %d after %d probes",Math.round(1e4*V.d)/1e4,F)),V.max-L.d<=t||(p=V.h/2,_.push(new ac(V.p.x-p,V.p.y-p,p,n)),_.push(new ac(V.p.x+p,V.p.y-p,p,n)),_.push(new ac(V.p.x-p,V.p.y+p,p,n)),_.push(new ac(V.p.x+p,V.p.y+p,p,n)),F+=4)}return r&&(console.log(`num probes: ${F}`),console.log(`best distance: ${L.d}`)),L.p}function M1(n,t){return t.max-n.max}function ac(n,t,r,a){this.p=new B(n,t),this.h=r,this.d=(function(c,p){let _=!1,v=1/0;for(let b=0;bc.y!=U.y>c.y&&c.x<(U.x-V.x)*(c.y-V.y)/(U.y-V.y)+V.x&&(_=!_),v=Math.min(v,p_(c,V,U))}}return(_?1:-1)*Math.sqrt(v)})(this.p,a),this.max=this.d+this.h*Math.SQRT2}var ji;T.aE=void 0,(ji=T.aE||(T.aE={}))[ji.center=1]="center",ji[ji.left=2]="left",ji[ji.right=3]="right",ji[ji.top=4]="top",ji[ji.bottom=5]="bottom",ji[ji["top-left"]=6]="top-left",ji[ji["top-right"]=7]="top-right",ji[ji["bottom-left"]=8]="bottom-left",ji[ji["bottom-right"]=9]="bottom-right";const xf=Number.POSITIVE_INFINITY;function Ag(n,t){return t[1]!==xf?(function(r,a,c){let p=0,_=0;switch(a=Math.abs(a),c=Math.abs(c),r){case"top-right":case"top-left":case"top":_=c-7;break;case"bottom-right":case"bottom-left":case"bottom":_=7-c}switch(r){case"top-right":case"bottom-right":case"right":p=-a;break;case"top-left":case"bottom-left":case"left":p=a}return[p,_]})(n,t[0],t[1]):(function(r,a){let c=0,p=0;a<0&&(a=0);const _=a/Math.SQRT2;switch(r){case"top-right":case"top-left":p=_-7;break;case"bottom-right":case"bottom-left":p=7-_;break;case"bottom":p=7-a;break;case"top":p=a-7}switch(r){case"top-right":case"bottom-right":c=-_;break;case"top-left":case"bottom-left":c=_;break;case"left":c=a;break;case"right":c=-a}return[c,p]})(n,t[0])}function Eg(n,t,r){var a;const c=n.layout,p=(a=c.get("text-variable-anchor-offset"))===null||a===void 0?void 0:a.evaluate(t,{},r);if(p){const v=p.values,b=[];for(let S=0;SF*Ci));I.startsWith("top")?L[1]-=7:I.startsWith("bottom")&&(L[1]+=7),b[S+1]=L}return new pi(b)}const _=c.get("text-variable-anchor");if(_){let v;v=n._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[c.get("text-radial-offset").evaluate(t,{},r)*Ci,xf]:c.get("text-offset").evaluate(t,{},r).map((S=>S*Ci));const b=[];for(const S of _)b.push(S,Ag(S,v));return new pi(b)}return null}function bf(n){switch(n){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function k1(n,t,r,a,c,p,_,v,b,S,I,L){let F=p.textMaxSize.evaluate(t,{});F===void 0&&(F=_);const V=n.layers[0].layout,U=V.get("icon-offset").evaluate(t,{},I),W=Lg(r.horizontal),J=_/24,le=n.tilePixelRatio*J,Le=n.tilePixelRatio*F/24,ye=n.tilePixelRatio*v,Ce=n.tilePixelRatio*V.get("symbol-spacing"),Xe=V.get("text-padding")*n.tilePixelRatio,lt=(function(Gr,Ir,_r,hn=1){const Jn=Gr.get("icon-padding").evaluate(Ir,{},_r),_i=Jn&&Jn.values;return[_i[0]*hn,_i[1]*hn,_i[2]*hn,_i[3]*hn]})(V,t,I,n.tilePixelRatio),Pt=V.get("text-max-angle")/180*Math.PI,Xt=V.get("text-rotation-alignment")!=="viewport"&&V.get("symbol-placement")!=="point",Vt=V.get("icon-rotation-alignment")==="map"&&V.get("symbol-placement")!=="point",Gt=V.get("symbol-placement"),wr=Ce/2,$t=V.get("icon-text-fit");let Ht;a&&$t!=="none"&&(n.allowVerticalPlacement&&r.vertical&&(Ht=ng(a,r.vertical,$t,V.get("icon-text-fit-padding"),U,J)),W&&(a=ng(a,W,$t,V.get("icon-text-fit-padding"),U,J)));const gt=I?L.line.getGranularityForZoomLevel(I.z):1,jr=(Gr,Ir)=>{Ir.x<0||Ir.x>=oe||Ir.y<0||Ir.y>=oe||(function(_r,hn,Jn,_i,Vi,Ba,ua,Ri,Wn,Si,Bi,Fi,ra,Fa,Pi,ha,gi,Ii,Mi,ui,qn,no,oc,io,z1){const sc=_r.addToLineVertexArray(hn,Jn);let rl,lc,cc,uc,Fg=0,Og=0,Ng=0,jg=0,kf=-1,Af=-1;const $o={};let Vg=ms("");if(_r.allowVerticalPlacement&&_i.vertical){const Gi=Ri.layout.get("text-rotate").evaluate(qn,{},io)+90;cc=new Od(Wn,hn,Si,Bi,Fi,_i.vertical,ra,Fa,Pi,Gi),ua&&(uc=new Od(Wn,hn,Si,Bi,Fi,ua,gi,Ii,Pi,Gi))}if(Vi){const Gi=Ri.layout.get("icon-rotate").evaluate(qn,{}),Oa=Ri.layout.get("icon-text-fit")!=="none",nl=Mg(Vi,Gi,oc,Oa),oo=ua?Mg(ua,Gi,oc,Oa):void 0;lc=new Od(Wn,hn,Si,Bi,Fi,Vi,gi,Ii,!1,Gi),Fg=4*nl.length;const il=_r.iconSizeData;let wo=null;il.kind==="source"?(wo=[Uo*Ri.layout.get("icon-size").evaluate(qn,{})],wo[0]>vs&&Dt(`${_r.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):il.kind==="composite"&&(wo=[Uo*no.compositeIconSizes[0].evaluate(qn,{},io),Uo*no.compositeIconSizes[1].evaluate(qn,{},io)],(wo[0]>vs||wo[1]>vs)&&Dt(`${_r.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),_r.addSymbols(_r.icon,nl,wo,ui,Mi,qn,T.ao.none,hn,sc.lineStartIndex,sc.lineLength,-1,io),kf=_r.icon.placedSymbolArray.length-1,oo&&(Og=4*oo.length,_r.addSymbols(_r.icon,oo,wo,ui,Mi,qn,T.ao.vertical,hn,sc.lineStartIndex,sc.lineLength,-1,io),Af=_r.icon.placedSymbolArray.length-1)}const qg=Object.keys(_i.horizontal);for(const Gi of qg){const Oa=_i.horizontal[Gi];if(!rl){Vg=ms(Oa.text);const oo=Ri.layout.get("text-rotate").evaluate(qn,{},io);rl=new Od(Wn,hn,Si,Bi,Fi,Oa,ra,Fa,Pi,oo)}const nl=Oa.positionedLines.length===1;if(Ng+=zg(_r,hn,Oa,Ba,Ri,Pi,qn,ha,sc,_i.vertical?T.ao.horizontal:T.ao.horizontalOnly,nl?qg:[Gi],$o,kf,no,io),nl)break}_i.vertical&&(jg+=zg(_r,hn,_i.vertical,Ba,Ri,Pi,qn,ha,sc,T.ao.vertical,["vertical"],$o,Af,no,io));const L1=rl?rl.boxStartIndex:_r.collisionBoxArray.length,D1=rl?rl.boxEndIndex:_r.collisionBoxArray.length,R1=cc?cc.boxStartIndex:_r.collisionBoxArray.length,B1=cc?cc.boxEndIndex:_r.collisionBoxArray.length,F1=lc?lc.boxStartIndex:_r.collisionBoxArray.length,O1=lc?lc.boxEndIndex:_r.collisionBoxArray.length,N1=uc?uc.boxStartIndex:_r.collisionBoxArray.length,j1=uc?uc.boxEndIndex:_r.collisionBoxArray.length;let ao=-1;const jd=(Gi,Oa)=>Gi&&Gi.circleDiameter?Math.max(Gi.circleDiameter,Oa):Oa;ao=jd(rl,ao),ao=jd(cc,ao),ao=jd(lc,ao),ao=jd(uc,ao);const Zg=ao>-1?1:0;Zg&&(ao*=z1/Ci),_r.glyphOffsetArray.length>=nc.MAX_GLYPHS&&Dt("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),qn.sortKey!==void 0&&_r.addToSortKeyRanges(_r.symbolInstances.length,qn.sortKey);const V1=Eg(Ri,qn,io),[q1,Z1]=(function(Gi,Oa){const nl=Gi.length,oo=Oa==null?void 0:Oa.values;if((oo==null?void 0:oo.length)>0)for(let il=0;il=0?$o.right:-1,$o.center>=0?$o.center:-1,$o.left>=0?$o.left:-1,$o.vertical||-1,kf,Af,Vg,L1,D1,R1,B1,F1,O1,N1,j1,Si,Ng,jg,Fg,Og,Zg,0,ra,ao,q1,Z1)})(n,Ir,Gr,r,a,c,Ht,n.layers[0],n.collisionBoxArray,t.index,t.sourceLayerIndex,n.index,le,[Xe,Xe,Xe,Xe],Xt,b,ye,lt,Vt,U,t,p,S,I,_)};if(Gt==="line")for(const Gr of wg(t.geometry,0,0,oe,oe)){const Ir=el(Gr,gt),_r=S1(Ir,Ce,Pt,r.vertical||W,a,24,Le,n.overscaling,oe);for(const hn of _r)W&&A1(n,W.text,wr,hn)||jr(Ir,hn)}else if(Gt==="line-center"){for(const Gr of t.geometry)if(Gr.length>1){const Ir=el(Gr,gt),_r=C1(Ir,Pt,r.vertical||W,a,24,Le);_r&&jr(Ir,_r)}}else if(t.type==="Polygon")for(const Gr of Fs(t.geometry,0)){const Ir=I1(Gr,16);jr(el(Gr[0],gt,!0),new xs(Ir.x,Ir.y,0))}else if(t.type==="LineString")for(const Gr of t.geometry){const Ir=el(Gr,gt);jr(Ir,new xs(Ir[0].x,Ir[0].y,0))}else if(t.type==="Point")for(const Gr of t.geometry)for(const Ir of Gr)jr([Ir],new xs(Ir.x,Ir.y,0))}function zg(n,t,r,a,c,p,_,v,b,S,I,L,F,V,U){const W=(function(Le,ye,Ce,Xe,lt,Pt,Xt,Vt){const Gt=Xe.layout.get("text-rotate").evaluate(Pt,{})*Math.PI/180,wr=[];for(const $t of ye.positionedLines)for(const Ht of $t.positionedGlyphs){if(!Ht.rect)continue;const gt=Ht.rect||{};let jr=4,Gr=!0,Ir=1,_r=0;const hn=(lt||Vt)&&Ht.vertical,Jn=Ht.metrics.advance*Ht.scale/2;if(Vt&&ye.verticalizable&&(_r=$t.lineOffset/2-(Ht.imageName?-(Ci-Ht.metrics.width*Ht.scale)/2:(Ht.scale-1)*Ci)),Ht.imageName){const Ii=Xt[Ht.imageName];Gr=Ii.sdf,Ir=Ii.pixelRatio,jr=1/Ir}const _i=lt?[Ht.x+Jn,Ht.y]:[0,0];let Vi=lt?[0,0]:[Ht.x+Jn+Ce[0],Ht.y+Ce[1]-_r],Ba=[0,0];hn&&(Ba=Vi,Vi=[0,0]);const ua=Ht.metrics.isDoubleResolution?2:1,Ri=(Ht.metrics.left-jr)*Ht.scale-Jn+Vi[0],Wn=(-Ht.metrics.top-jr)*Ht.scale+Vi[1],Si=Ri+gt.w/ua*Ht.scale/Ir,Bi=Wn+gt.h/ua*Ht.scale/Ir,Fi=new B(Ri,Wn),ra=new B(Si,Wn),Fa=new B(Ri,Bi),Pi=new B(Si,Bi);if(hn){const Ii=new B(-Jn,Jn- -17),Mi=-Math.PI/2,ui=12-Jn,qn=new B(22-ui,-(Ht.imageName?ui:0)),no=new B(...Ba);Fi._rotateAround(Mi,Ii)._add(qn)._add(no),ra._rotateAround(Mi,Ii)._add(qn)._add(no),Fa._rotateAround(Mi,Ii)._add(qn)._add(no),Pi._rotateAround(Mi,Ii)._add(qn)._add(no)}if(Gt){const Ii=Math.sin(Gt),Mi=Math.cos(Gt),ui=[Mi,-Ii,Ii,Mi];Fi._matMult(ui),ra._matMult(ui),Fa._matMult(ui),Pi._matMult(ui)}const ha=new B(0,0),gi=new B(0,0);wr.push({tl:Fi,tr:ra,bl:Fa,br:Pi,tex:gt,writingMode:ye.writingMode,glyphOffset:_i,sectionIndex:Ht.sectionIndex,isSDF:Gr,pixelOffsetTL:ha,pixelOffsetBR:gi,minFontScaleX:0,minFontScaleY:0})}return wr})(0,r,v,c,p,_,a,n.allowVerticalPlacement),J=n.textSizeData;let le=null;J.kind==="source"?(le=[Uo*c.layout.get("text-size").evaluate(_,{})],le[0]>vs&&Dt(`${n.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):J.kind==="composite"&&(le=[Uo*V.compositeTextSizes[0].evaluate(_,{},U),Uo*V.compositeTextSizes[1].evaluate(_,{},U)],(le[0]>vs||le[1]>vs)&&Dt(`${n.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),n.addSymbols(n.text,W,le,v,p,_,S,t,b.lineStartIndex,b.lineLength,F,U);for(const Le of I)L[Le]=n.text.placedSymbolArray.length-1;return 4*W.length}function Lg(n){for(const t in n)return n[t];return null}function A1(n,t,r,a){const c=n.compareText;if(t in c){const p=c[t];for(let _=p.length-1;_>=0;_--)if(a.dist(p[_])>4;if(c!==1)throw new Error(`Got v${c} data when expected v1.`);const p=Dg[15&a];if(!p)throw new Error("Unrecognized array type.");const[_]=new Uint16Array(t,2,1),[v]=new Uint32Array(t,4,1);return new wf(v,_,p,t)}constructor(t,r=64,a=Float64Array,c){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=a,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const p=Dg.indexOf(this.ArrayType),_=2*t*this.ArrayType.BYTES_PER_ELEMENT,v=t*this.IndexArrayType.BYTES_PER_ELEMENT,b=(8-v%8)%8;if(p<0)throw new Error(`Unexpected typed array class: ${a}.`);c&&c instanceof ArrayBuffer?(this.data=c,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+v+b,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+_+v+b),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+v+b,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+p]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=t)}add(t,r){const a=this._pos>>1;return this.ids[a]=a,this.coords[this._pos++]=t,this.coords[this._pos++]=r,a}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return Tf(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,r,a,c){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:p,coords:_,nodeSize:v}=this,b=[0,p.length-1,0],S=[];for(;b.length;){const I=b.pop()||0,L=b.pop()||0,F=b.pop()||0;if(L-F<=v){for(let J=F;J<=L;J++){const le=_[2*J],Le=_[2*J+1];le>=t&&le<=a&&Le>=r&&Le<=c&&S.push(p[J])}continue}const V=F+L>>1,U=_[2*V],W=_[2*V+1];U>=t&&U<=a&&W>=r&&W<=c&&S.push(p[V]),(I===0?t<=U:r<=W)&&(b.push(F),b.push(V-1),b.push(1-I)),(I===0?a>=U:c>=W)&&(b.push(V+1),b.push(L),b.push(1-I))}return S}within(t,r,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:c,coords:p,nodeSize:_}=this,v=[0,c.length-1,0],b=[],S=a*a;for(;v.length;){const I=v.pop()||0,L=v.pop()||0,F=v.pop()||0;if(L-F<=_){for(let J=F;J<=L;J++)Bg(p[2*J],p[2*J+1],t,r)<=S&&b.push(c[J]);continue}const V=F+L>>1,U=p[2*V],W=p[2*V+1];Bg(U,W,t,r)<=S&&b.push(c[V]),(I===0?t-a<=U:r-a<=W)&&(v.push(F),v.push(V-1),v.push(1-I)),(I===0?t+a>=U:r+a>=W)&&(v.push(V+1),v.push(L),v.push(1-I))}return b}}function Tf(n,t,r,a,c,p){if(c-a<=r)return;const _=a+c>>1;Rg(n,t,_,a,c,p),Tf(n,t,r,a,_-1,1-p),Tf(n,t,r,_+1,c,1-p)}function Rg(n,t,r,a,c,p){for(;c>a;){if(c-a>600){const S=c-a+1,I=r-a+1,L=Math.log(S),F=.5*Math.exp(2*L/3),V=.5*Math.sqrt(L*F*(S-F)/S)*(I-S/2<0?-1:1);Rg(n,t,r,Math.max(a,Math.floor(r-I*F/S+V)),Math.min(c,Math.floor(r+(S-I)*F/S+V)),p)}const _=t[2*r+p];let v=a,b=c;for(Eu(n,t,a,r),t[2*c+p]>_&&Eu(n,t,a,c);v_;)b--}t[2*a+p]===_?Eu(n,t,a,b):(b++,Eu(n,t,b,c)),b<=r&&(a=b+1),r<=b&&(c=b-1)}}function Eu(n,t,r,a){Cf(n,r,a),Cf(t,2*r,2*a),Cf(t,2*r+1,2*a+1)}function Cf(n,t,r){const a=n[t];n[t]=n[r],n[r]=a}function Bg(n,t,r,a){const c=n-r,p=t-a;return c*c+p*p}var Sf;T.cx=void 0,(Sf=T.cx||(T.cx={})).create="create",Sf.load="load",Sf.fullLoad="fullLoad";let Nd=null,zu=[];const Pf=1e3/60,If="loadTime",Mf="fullLoadTime",E1={mark(n){performance.mark(n)},frame(n){const t=n;Nd!=null&&zu.push(t-Nd),Nd=t},clearMetrics(){Nd=null,zu=[],performance.clearMeasures(If),performance.clearMeasures(Mf);for(const n in T.cx)performance.clearMarks(T.cx[n])},getPerformanceMetrics(){performance.measure(If,T.cx.create,T.cx.load),performance.measure(Mf,T.cx.create,T.cx.fullLoad);const n=performance.getEntriesByName(If)[0].duration,t=performance.getEntriesByName(Mf)[0].duration,r=zu.length,a=1/(zu.reduce(((p,_)=>p+_),0)/r/1e3),c=zu.filter((p=>p>Pf)).reduce(((p,_)=>p+(_-Pf)/Pf),0);return{loadTime:n,fullLoadTime:t,fps:a,percentDroppedFrames:c/(r+c)*100,totalFrames:r}}};T.$=oe,T.A=ze,T.B=function([n,t,r]){return t+=90,t*=Math.PI/180,r*=Math.PI/180,{x:n*Math.cos(t)*Math.sin(r),y:n*Math.sin(t)*Math.sin(r),z:n*Math.cos(r)}},T.C=Za,T.D=yr,T.E=Mt,T.F=Un,T.G=Hs,T.H=function(n){if(tr==null){const t=n.navigator?n.navigator.userAgent:null;tr=!!n.safari||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match("Safari")&&!t.match("Chrome")))}return tr},T.I=cf,T.J=class{constructor(n,t){this.target=n,this.mapId=t,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new b1((()=>this.process())),this.subscription=rr(this.target,"message",(r=>this.receive(r)),!1),this.globalScope=qt(self)?n:window}registerMessageHandler(n,t){this.messageHandlers[n]=t}sendAsync(n,t){return new Promise(((r,a)=>{const c=Math.round(1e18*Math.random()).toString(36).substring(0,10),p=t?rr(t.signal,"abort",(()=>{p==null||p.unsubscribe(),delete this.resolveRejects[c];const b={id:c,type:"",origin:location.origin,targetMapId:n.targetMapId,sourceMapId:this.mapId};this.target.postMessage(b)}),w1):null;this.resolveRejects[c]={resolve:b=>{p==null||p.unsubscribe(),r(b)},reject:b=>{p==null||p.unsubscribe(),a(b)}};const _=[],v=Object.assign(Object.assign({},n),{id:c,sourceMapId:this.mapId,origin:location.origin,data:cs(n.data,_)});this.target.postMessage(v,{transfer:_})}))}receive(n){const t=n.data,r=t.id;if(!(t.origin!=="file://"&&location.origin!=="file://"&&t.origin!=="resource://android"&&location.origin!=="resource://android"&&t.origin!==location.origin||t.targetMapId&&this.mapId!==t.targetMapId)){if(t.type===""){delete this.tasks[r];const a=this.abortControllers[r];return delete this.abortControllers[r],void(a&&a.abort())}if(qt(self)||t.mustQueue)return this.tasks[r]=t,this.taskQueue.push(r),void this.invoker.trigger();this.processTask(r,t)}}process(){if(this.taskQueue.length===0)return;const n=this.taskQueue.shift(),t=this.tasks[n];delete this.tasks[n],this.taskQueue.length>0&&this.invoker.trigger(),t&&this.processTask(n,t)}processTask(n,t){return s(this,void 0,void 0,(function*(){if(t.type===""){const c=this.resolveRejects[n];return delete this.resolveRejects[n],c?void(t.error?c.reject(No(t.error)):c.resolve(No(t.data))):void 0}if(!this.messageHandlers[t.type])return void this.completeTask(n,new Error(`Could not find a registered handler for ${t.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const r=No(t.data),a=new AbortController;this.abortControllers[n]=a;try{const c=yield this.messageHandlers[t.type](t.sourceMapId,r,a);this.completeTask(n,null,c)}catch(c){this.completeTask(n,c)}}))}completeTask(n,t,r){const a=[];delete this.abortControllers[n];const c={id:n,type:"",sourceMapId:this.mapId,origin:location.origin,error:t?cs(t):null,data:cs(r,a)};this.target.postMessage(c,{transfer:a})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},T.K=X,T.L=function(){var n=new ze(16);return ze!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n},T.M=function(n,t,r){var a,c,p,_,v,b,S,I,L,F,V,U,W=r[0],J=r[1],le=r[2];return t===n?(n[12]=t[0]*W+t[4]*J+t[8]*le+t[12],n[13]=t[1]*W+t[5]*J+t[9]*le+t[13],n[14]=t[2]*W+t[6]*J+t[10]*le+t[14],n[15]=t[3]*W+t[7]*J+t[11]*le+t[15]):(c=t[1],p=t[2],_=t[3],v=t[4],b=t[5],S=t[6],I=t[7],L=t[8],F=t[9],V=t[10],U=t[11],n[0]=a=t[0],n[1]=c,n[2]=p,n[3]=_,n[4]=v,n[5]=b,n[6]=S,n[7]=I,n[8]=L,n[9]=F,n[10]=V,n[11]=U,n[12]=a*W+v*J+L*le+t[12],n[13]=c*W+b*J+F*le+t[13],n[14]=p*W+S*J+V*le+t[14],n[15]=_*W+I*J+U*le+t[15]),n},T.N=function(n,t,r){var a=r[0],c=r[1],p=r[2];return n[0]=t[0]*a,n[1]=t[1]*a,n[2]=t[2]*a,n[3]=t[3]*a,n[4]=t[4]*c,n[5]=t[5]*c,n[6]=t[6]*c,n[7]=t[7]*c,n[8]=t[8]*p,n[9]=t[9]*p,n[10]=t[10]*p,n[11]=t[11]*p,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},T.O=function(n,t,r){var a=t[0],c=t[1],p=t[2],_=t[3],v=t[4],b=t[5],S=t[6],I=t[7],L=t[8],F=t[9],V=t[10],U=t[11],W=t[12],J=t[13],le=t[14],Le=t[15],ye=r[0],Ce=r[1],Xe=r[2],lt=r[3];return n[0]=ye*a+Ce*v+Xe*L+lt*W,n[1]=ye*c+Ce*b+Xe*F+lt*J,n[2]=ye*p+Ce*S+Xe*V+lt*le,n[3]=ye*_+Ce*I+Xe*U+lt*Le,n[4]=(ye=r[4])*a+(Ce=r[5])*v+(Xe=r[6])*L+(lt=r[7])*W,n[5]=ye*c+Ce*b+Xe*F+lt*J,n[6]=ye*p+Ce*S+Xe*V+lt*le,n[7]=ye*_+Ce*I+Xe*U+lt*Le,n[8]=(ye=r[8])*a+(Ce=r[9])*v+(Xe=r[10])*L+(lt=r[11])*W,n[9]=ye*c+Ce*b+Xe*F+lt*J,n[10]=ye*p+Ce*S+Xe*V+lt*le,n[11]=ye*_+Ce*I+Xe*U+lt*Le,n[12]=(ye=r[12])*a+(Ce=r[13])*v+(Xe=r[14])*L+(lt=r[15])*W,n[13]=ye*c+Ce*b+Xe*F+lt*J,n[14]=ye*p+Ce*S+Xe*V+lt*le,n[15]=ye*_+Ce*I+Xe*U+lt*Le,n},T.P=B,T.Q=function(n,t){const r={};for(let a=0;a[S.id,S])));_.add=Array.from(b.values())}if(t.update){const v=new Map((r=_.update)===null||r===void 0?void 0:r.map((b=>[b.id,b])));for(const b of t.update){const S=(a=v.get(b.id))!==null&&a!==void 0?a:{id:b.id};b.newGeometry&&(S.newGeometry=b.newGeometry),b.addOrUpdateProperties&&(S.addOrUpdateProperties=((c=S.addOrUpdateProperties)!==null&&c!==void 0?c:[]).concat(b.addOrUpdateProperties)),b.removeProperties&&(S.removeProperties=((p=S.removeProperties)!==null&&p!==void 0?p:[]).concat(b.removeProperties)),b.removeAllProperties&&(S.removeAllProperties=!0),v.set(b.id,S)}_.update=Array.from(v.values())}return _},T.a1=ku,T.a2=tl,T.a3=25,T.a4=yf,T.a5=n=>{const t=window.document.createElement("video");return t.muted=!0,new Promise((r=>{t.onloadstart=()=>{r(t)};for(const a of n){const c=window.document.createElement("source");Ie(a)||(t.crossOrigin="Anonymous"),c.src=a,t.appendChild(c)}}))},T.a6=ht,T.a7=function(){return vt++},T.a8=D,T.a9=nc,T.aA=function(n){let t=1/0,r=1/0,a=-1/0,c=-1/0;for(const p of n)t=Math.min(t,p.x),r=Math.min(r,p.y),a=Math.max(a,p.x),c=Math.max(c,p.y);return[t,r,a,c]},T.aB=Ci,T.aC=Ae,T.aD=function(n,t,r,a,c=!1){if(!r[0]&&!r[1])return[0,0];const p=c?a==="map"?-n.bearingInRadians:0:a==="viewport"?n.bearingInRadians:0;if(p){const _=Math.sin(p),v=Math.cos(p);r=[r[0]*v-r[1]*_,r[0]*_+r[1]*v]}return[c?r[0]:Ae(t,r[0],n.zoom),c?r[1]:Ae(t,r[1],n.zoom)]},T.aF=df,T.aG=bf,T.aH=hf,T.aI=wf,T.aJ=ti,T.aK=kd,T.aL=pe,T.aM=Kr,T.aN=Bn,T.aO=at,T.aP=or,T.aQ=mg,T.aR=De,T.aS=et,T.aT=function(n){var t=new ze(3);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t},T.aU=function(n,t,r){return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],n},T.aV=function(n,t){var r=t[0],a=t[1],c=t[2],p=r*r+a*a+c*c;return p>0&&(p=1/Math.sqrt(p)),n[0]=t[0]*p,n[1]=t[1]*p,n[2]=t[2]*p,n},T.aW=tt,T.aX=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]},T.aY=function(n,t,r){return n[0]=t[0]*r[0],n[1]=t[1]*r[1],n[2]=t[2]*r[2],n[3]=t[3]*r[3],n},T.aZ=qe,T.a_=function(n,t,r){const a=t[0]*r[0]+t[1]*r[1]+t[2]*r[2];return a===0?null:(-(n[0]*r[0]+n[1]*r[1]+n[2]*r[2])-r[3])/a},T.aa=Bo,T.ab=ro,T.ac=yg,T.ad=function(n){const t={};if(n.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((r,a,c,p)=>{const _=c||p;return t[a]=!_||_.toLowerCase(),""})),t["max-age"]){const r=parseInt(t["max-age"],10);isNaN(r)?delete t["max-age"]:t["max-age"]=r}return t},T.ae=Kt,T.af=function(n){return Math.pow(2,n)},T.ag=Ke,T.ah=Bt,T.ai=85.051129,T.aj=fg,T.ak=function(n){return Math.log(n)/Math.LN2},T.al=function(n){var t=n[0],r=n[1];return t*t+r*r},T.am=function(n,t){const r=[];for(const a in n)a in t||r.push(a);return r},T.an=function(n,t){let r=0,a=0;if(n.kind==="constant")a=n.layoutSize;else if(n.kind!=="source"){const{interpolationType:c,minZoom:p,maxZoom:_}=n,v=c?Bt(Di.interpolationFactor(c,t,p,_),0,1):0;n.kind==="camera"?a=Za.number(n.minSize,n.maxSize,v):r=v}return{uSizeT:r,uSize:a}},T.ap=function(n,{uSize:t,uSizeT:r},{lowerSize:a,upperSize:c}){return n.kind==="source"?a/Uo:n.kind==="composite"?Za.number(a/Uo,c/Uo,r):t},T.aq=function(n,t){var r=t[0],a=t[1],c=t[2],p=t[3],_=t[4],v=t[5],b=t[6],S=t[7],I=t[8],L=t[9],F=t[10],V=t[11],U=t[12],W=t[13],J=t[14],le=t[15],Le=r*v-a*_,ye=r*b-c*_,Ce=r*S-p*_,Xe=a*b-c*v,lt=a*S-p*v,Pt=c*S-p*b,Xt=I*W-L*U,Vt=I*J-F*U,Gt=I*le-V*U,wr=L*J-F*W,$t=L*le-V*W,Ht=F*le-V*J,gt=Le*Ht-ye*$t+Ce*wr+Xe*Gt-lt*Vt+Pt*Xt;return gt?(n[0]=(v*Ht-b*$t+S*wr)*(gt=1/gt),n[1]=(c*$t-a*Ht-p*wr)*gt,n[2]=(W*Pt-J*lt+le*Xe)*gt,n[3]=(F*lt-L*Pt-V*Xe)*gt,n[4]=(b*Gt-_*Ht-S*Vt)*gt,n[5]=(r*Ht-c*Gt+p*Vt)*gt,n[6]=(J*Ce-U*Pt-le*ye)*gt,n[7]=(I*Pt-F*Ce+V*ye)*gt,n[8]=(_*$t-v*Gt+S*Xt)*gt,n[9]=(a*Gt-r*$t-p*Xt)*gt,n[10]=(U*lt-W*Ce+le*Le)*gt,n[11]=(L*Ce-I*lt-V*Le)*gt,n[12]=(v*Vt-_*wr-b*Xt)*gt,n[13]=(r*wr-a*Vt+c*Xt)*gt,n[14]=(W*ye-U*Xe-J*Le)*gt,n[15]=(I*Xe-L*ye+F*Le)*gt,n):null},T.ar=re,T.as=function(n){return Math.hypot(n[0],n[1])},T.at=function(n){return n[0]=0,n[1]=0,n},T.au=function(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n},T.av=pf,T.aw=ke,T.ax=function(n,t,r,a){const c=t.y-n.y,p=t.x-n.x,_=a.y-r.y,v=a.x-r.x,b=_*p-v*c;if(b===0)return null;const S=(v*(n.y-r.y)-_*(n.x-r.x))/b;return new B(n.x+S*p,n.y+S*c)},T.ay=wg,T.az=h_,T.b=Qt,T.b$=class extends h{},T.b0=function(n,t,r){return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n},T.b1=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]},T.b2=gg,T.b3=ic,T.b4=function(n,t,r,a,c){var p,_=1/Math.tan(t/2);return n[0]=_/r,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=_,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,c!=null&&c!==1/0?(n[10]=(c+a)*(p=1/(a-c)),n[14]=2*c*a*p):(n[10]=-1,n[14]=-2*a),n},T.b5=function(n){var t=new ze(16);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},T.b6=function(n,t,r){var a=Math.sin(r),c=Math.cos(r),p=t[0],_=t[1],v=t[2],b=t[3],S=t[4],I=t[5],L=t[6],F=t[7];return t!==n&&(n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=p*c+S*a,n[1]=_*c+I*a,n[2]=v*c+L*a,n[3]=b*c+F*a,n[4]=S*c-p*a,n[5]=I*c-_*a,n[6]=L*c-v*a,n[7]=F*c-b*a,n},T.b7=function(n,t,r){var a=Math.sin(r),c=Math.cos(r),p=t[4],_=t[5],v=t[6],b=t[7],S=t[8],I=t[9],L=t[10],F=t[11];return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[4]=p*c+S*a,n[5]=_*c+I*a,n[6]=v*c+L*a,n[7]=b*c+F*a,n[8]=S*c-p*a,n[9]=I*c-_*a,n[10]=L*c-v*a,n[11]=F*c-b*a,n},T.b8=function(){const n=new Float32Array(16);return Ke(n),n},T.b9=function(){const n=new Float64Array(16);return Ke(n),n},T.bA=function(n,t){const r=Ne(n,360),a=Ne(t,360),c=a-r,p=a>r?c-360:c+360;return Math.abs(c)0?_:-_},T.bD=function(n,t){const r=Ne(n,2*Math.PI),a=Ne(t,2*Math.PI);return Math.min(Math.abs(r-a),Math.abs(r-a+2*Math.PI),Math.abs(r-a-2*Math.PI))},T.bE=function(){const n={},t=xe.$version;for(const r in xe.$root){const a=xe.$root[r];if(a.required){let c=null;c=r==="version"?t:a.type==="array"?[]:{},c!=null&&(n[r]=c)}}return n},T.bF=Nl,T.bG=de,T.bH=function n(t,r){if(Array.isArray(t)){if(!Array.isArray(r)||t.length!==r.length)return!1;for(let a=0;a{"source"in _&&a[_.source]?r.push({command:"removeLayer",args:[_.id]}):p.push(_)})),r=r.concat(c),(function(_,v,b){v=v||[];const S=(_=_||[]).map(Et),I=v.map(Et),L=_.reduce(hr,{}),F=v.reduce(hr,{}),V=S.slice(),U=Object.create(null);let W,J,le,Le,ye;for(let Ce=0,Xe=0;CeRe?(c=Math.acos(p),_=Math.sin(c),v=Math.sin((1-a)*c)/_,b=Math.sin(a*c)/_):(v=1-a,b=a),n[0]=v*S+b*V,n[1]=v*I+b*U,n[2]=v*L+b*W,n[3]=v*F+b*J,n},T.bd=function(n){const t=new Float64Array(9);var r,a,c,p,_,v,b,S,I,L,F,V,U,W,J,le,Le,ye;L=(c=(a=n)[0])*(b=c+c),F=(p=a[1])*b,U=(_=a[2])*b,W=_*(S=p+p),le=(v=a[3])*b,Le=v*S,ye=v*(I=_+_),(r=t)[0]=1-(V=p*S)-(J=_*I),r[3]=F-ye,r[6]=U+Le,r[1]=F+ye,r[4]=1-L-J,r[7]=W-le,r[2]=U-Le,r[5]=W+le,r[8]=1-L-V;const Ce=or(-Math.asin(Bt(t[2],-1,1)));let Xe,lt;return Math.hypot(t[5],t[8])<.001?(Xe=0,lt=-or(Math.atan2(t[3],t[4]))):(Xe=or(t[5]===0&&t[8]===0?0:Math.atan2(t[5],t[8])),lt=or(t[1]===0&&t[0]===0?0:Math.atan2(t[1],t[0]))),{roll:Xe,pitch:Ce+90,bearing:lt}},T.be=function(n,t){return n.roll==t.roll&&n.pitch==t.pitch&&n.bearing==t.bearing},T.bf=Pr,T.bg=yo,T.bh=Ql,T.bi=Tu,T.bj=Jl,T.bk=pt,T.bl=ot,T.bm=jn,T.bn=function(n,t,r,a,c){return pt(a,c,Bt((n-t)/(r-t),0,1))},T.bo=Ne,T.bp=function(){return new Float64Array(3)},T.bq=function(n,t,r,a){return n[0]=t[0]+r[0]*a,n[1]=t[1]+r[1]*a,n[2]=t[2]+r[2]*a,n},T.br=te,T.bs=function(n,t,r){var a=r[0],c=r[1],p=r[2],_=t[0],v=t[1],b=t[2],S=c*b-p*v,I=p*_-a*b,L=a*v-c*_,F=c*L-p*I,V=p*S-a*L,U=a*I-c*S,W=2*r[3];return I*=W,L*=W,V*=2,U*=2,n[0]=_+(S*=W)+(F*=2),n[1]=v+I+V,n[2]=b+L+U,n},T.bt=function(n,t,r){const a=(c=[n[0],n[1],n[2],t[0],t[1],t[2],r[0],r[1],r[2]])[0]*((I=c[8])*(_=c[4])-(v=c[5])*(S=c[7]))+c[1]*(-I*(p=c[3])+v*(b=c[6]))+c[2]*(S*p-_*b);var c,p,_,v,b,S,I;if(a===0)return null;const L=tt([],[t[0],t[1],t[2]],[r[0],r[1],r[2]]),F=tt([],[r[0],r[1],r[2]],[n[0],n[1],n[2]]),V=tt([],[n[0],n[1],n[2]],[t[0],t[1],t[2]]),U=De([],L,-n[3]);return et(U,U,De([],F,-t[3])),et(U,U,De([],V,-r[3])),De(U,U,1/a),U},T.bu=gf,T.bv=function(){return new Float64Array(4)},T.bw=function(n,t,r,a){var c=[],p=[];return c[0]=t[0]-r[0],c[1]=t[1]-r[1],c[2]=t[2]-r[2],p[0]=c[0]*Math.cos(a)-c[1]*Math.sin(a),p[1]=c[0]*Math.sin(a)+c[1]*Math.cos(a),p[2]=c[2],n[0]=p[0]+r[0],n[1]=p[1]+r[1],n[2]=p[2]+r[2],n},T.bx=function(n,t,r,a){var c=[],p=[];return c[0]=t[0]-r[0],c[1]=t[1]-r[1],c[2]=t[2]-r[2],p[0]=c[0],p[1]=c[1]*Math.cos(a)-c[2]*Math.sin(a),p[2]=c[1]*Math.sin(a)+c[2]*Math.cos(a),n[0]=p[0]+r[0],n[1]=p[1]+r[1],n[2]=p[2]+r[2],n},T.by=function(n,t,r,a){var c=[],p=[];return c[0]=t[0]-r[0],c[1]=t[1]-r[1],c[2]=t[2]-r[2],p[0]=c[2]*Math.sin(a)+c[0]*Math.cos(a),p[1]=c[1],p[2]=c[2]*Math.cos(a)-c[0]*Math.sin(a),n[0]=p[0]+r[0],n[1]=p[1]+r[1],n[2]=p[2]+r[2],n},T.bz=function(n,t,r){var a=Math.sin(r),c=Math.cos(r),p=t[0],_=t[1],v=t[2],b=t[3],S=t[8],I=t[9],L=t[10],F=t[11];return t!==n&&(n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=p*c-S*a,n[1]=_*c-I*a,n[2]=v*c-L*a,n[3]=b*c-F*a,n[8]=p*a+S*c,n[9]=_*a+I*c,n[10]=v*a+L*c,n[11]=b*a+F*c,n},T.c=se,T.c0=$y,T.c1=class extends i{},T.c2=Yp,T.c3=function(n){return n<=1?1:Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))},T.c4=b_,T.c5=function(n,t,r){var a=t[0],c=t[1],p=t[2],_=r[3]*a+r[7]*c+r[11]*p+r[15];return n[0]=(r[0]*a+r[4]*c+r[8]*p+r[12])/(_=_||1),n[1]=(r[1]*a+r[5]*c+r[9]*p+r[13])/_,n[2]=(r[2]*a+r[6]*c+r[10]*p+r[14])/_,n},T.c6=class extends du{},T.c7=class extends P{},T.c8=function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]},T.c9=function(n,t){var r=n[0],a=n[1],c=n[2],p=n[3],_=n[4],v=n[5],b=n[6],S=n[7],I=n[8],L=n[9],F=n[10],V=n[11],U=n[12],W=n[13],J=n[14],le=n[15],Le=t[0],ye=t[1],Ce=t[2],Xe=t[3],lt=t[4],Pt=t[5],Xt=t[6],Vt=t[7],Gt=t[8],wr=t[9],$t=t[10],Ht=t[11],gt=t[12],jr=t[13],Gr=t[14],Ir=t[15];return Math.abs(r-Le)<=Re*Math.max(1,Math.abs(r),Math.abs(Le))&&Math.abs(a-ye)<=Re*Math.max(1,Math.abs(a),Math.abs(ye))&&Math.abs(c-Ce)<=Re*Math.max(1,Math.abs(c),Math.abs(Ce))&&Math.abs(p-Xe)<=Re*Math.max(1,Math.abs(p),Math.abs(Xe))&&Math.abs(_-lt)<=Re*Math.max(1,Math.abs(_),Math.abs(lt))&&Math.abs(v-Pt)<=Re*Math.max(1,Math.abs(v),Math.abs(Pt))&&Math.abs(b-Xt)<=Re*Math.max(1,Math.abs(b),Math.abs(Xt))&&Math.abs(S-Vt)<=Re*Math.max(1,Math.abs(S),Math.abs(Vt))&&Math.abs(I-Gt)<=Re*Math.max(1,Math.abs(I),Math.abs(Gt))&&Math.abs(L-wr)<=Re*Math.max(1,Math.abs(L),Math.abs(wr))&&Math.abs(F-$t)<=Re*Math.max(1,Math.abs(F),Math.abs($t))&&Math.abs(V-Ht)<=Re*Math.max(1,Math.abs(V),Math.abs(Ht))&&Math.abs(U-gt)<=Re*Math.max(1,Math.abs(U),Math.abs(gt))&&Math.abs(W-jr)<=Re*Math.max(1,Math.abs(W),Math.abs(jr))&&Math.abs(J-Gr)<=Re*Math.max(1,Math.abs(J),Math.abs(Gr))&&Math.abs(le-Ir)<=Re*Math.max(1,Math.abs(le),Math.abs(Ir))},T.cA=function(n,t){j.REGISTERED_PROTOCOLS[n]=t},T.cB=function(n){delete j.REGISTERED_PROTOCOLS[n]},T.cC=function(n,t){const r={};for(let c=0;cHt*Ci))}let Vt=_?"center":r.get("text-justify").evaluate(S,{},n.canonical);const Gt=r.get("symbol-placement")==="point"?r.get("text-max-width").evaluate(S,{},n.canonical)*Ci:1/0,wr=()=>{n.bucket.allowVerticalPlacement&&jl(Ce)&&(U.vertical=Ed(W,n.glyphMap,n.glyphPositions,n.imagePositions,I,Gt,p,Pt,"left",lt,le,T.ao.vertical,!0,F,L))};if(!_&&Xt){const $t=new Set;if(Vt==="auto")for(let gt=0;gt0||((c=v.addOrUpdateProperties)===null||c===void 0?void 0:c.length)>0);if((v.newGeometry||v.removeAllProperties||S)&&(b=Object.assign({},b),n.set(v.id,b),S&&(b.properties=Object.assign({},b.properties))),v.newGeometry&&(b.geometry=v.newGeometry),v.removeAllProperties)b.properties={};else if(((p=v.removeProperties)===null||p===void 0?void 0:p.length)>0)for(const I of v.removeProperties)Object.prototype.hasOwnProperty.call(b.properties,I)&&delete b.properties[I];if(((_=v.addOrUpdateProperties)===null||_===void 0?void 0:_.length)>0)for(const{key:I,value:L}of v.addOrUpdateProperties)b.properties[I]=L}},T.cX=Ea,T.ca=function(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},T.cb=n=>n.type==="symbol",T.cc=n=>n.type==="circle",T.cd=n=>n.type==="heatmap",T.ce=n=>n.type==="line",T.cf=n=>n.type==="fill",T.cg=n=>n.type==="fill-extrusion",T.ch=n=>n.type==="hillshade",T.ci=n=>n.type==="color-relief",T.cj=n=>n.type==="raster",T.ck=n=>n.type==="background",T.cl=n=>n.type==="custom",T.cm=ut,T.cn=function(n,t,r){const a=ge(t.x-r.x,t.y-r.y),c=ge(n.x-r.x,n.y-r.y);var p,_;return or(Math.atan2(a[0]*c[1]-a[1]*c[0],(p=a)[0]*(_=c)[0]+p[1]*_[1]))},T.co=St,T.cp=function(n,t){return Dr[t]&&(n instanceof MouseEvent||n instanceof WheelEvent)},T.cq=function(n,t){return Sr[t]&&"touches"in n},T.cr=function(n){return Sr[n]||Dr[n]},T.cs=function(n,t,r){var a=t[0],c=t[1];return n[0]=r[0]*a+r[4]*c+r[12],n[1]=r[1]*a+r[5]*c+r[13],n},T.ct=function(n,t){const{x:r,y:a}=ku.fromLngLat(t);return!(n<0||n>25||a<0||a>=1||r<0||r>=1)},T.cu=function(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=t[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},T.cv=class extends ds{},T.cw=E1,T.cy=function(n){return n.message===Zr},T.cz=ae,T.d=Ie,T.e=dt,T.f=n=>s(void 0,void 0,void 0,(function*(){if(n.byteLength===0)return createImageBitmap(new ImageData(1,1));const t=new Blob([new Uint8Array(n)],{type:"image/png"});try{return createImageBitmap(t)}catch(r){throw new Error(`Could not load image because of ${r.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}})),T.g=Z,T.h=n=>new Promise(((t,r)=>{const a=new Image;a.onload=()=>{t(a),URL.revokeObjectURL(a.src),a.onload=null,window.requestAnimationFrame((()=>{a.src=Ot}))},a.onerror=()=>r(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 c=new Blob([new Uint8Array(n)],{type:"image/png"});a.src=n.byteLength?URL.createObjectURL(c):Ot})),T.i=qt,T.j=(n,t)=>Se(dt(n,{type:"json"}),t),T.k=$e,T.l=st,T.m=Se,T.n=(n,t)=>Se(dt(n,{type:"arrayBuffer"}),t),T.o=function(n){return new lf(n).readFields(r1,[])},T.p=X_,T.q=vu,T.r=Zi,T.s=rr,T.t=xd,T.u=un,T.v=xe,T.w=Dt,T.x=Np,T.y=Ws,T.z=ls})),M("worker",["./shared"],(function(T){class s{constructor(j){this.keyCache={},j&&this.replace(j)}replace(j){this._layerConfigs={},this._layers={},this.update(j,[])}update(j,Z){for(const ae of j){this._layerConfigs[ae.id]=ae;const de=this._layers[ae.id]=T.bJ(ae);de._featureFilter=T.aa(de.filter),this.keyCache[ae.id]&&delete this.keyCache[ae.id]}for(const ae of Z)delete this.keyCache[ae],delete this._layerConfigs[ae],delete this._layers[ae];this.familiesBySource={};const X=T.cC(Object.values(this._layerConfigs),this.keyCache);for(const ae of X){const de=ae.map(($e=>this._layers[$e.id])),Se=de[0];if(Se.visibility==="none")continue;const Ie=Se.source||"";let be=this.familiesBySource[Ie];be||(be=this.familiesBySource[Ie]={});const Oe=Se.sourceLayer||"_geojsonTileLayer";let st=be[Oe];st||(st=be[Oe]=[]),st.push(de)}}}class B{constructor(j){const Z={},X=[];for(const Ie in j){const be=j[Ie],Oe=Z[Ie]={};for(const st in be){const $e=be[+st];if(!$e||$e.bitmap.width===0||$e.bitmap.height===0)continue;const Mt={x:0,y:0,w:$e.bitmap.width+2,h:$e.bitmap.height+2};X.push(Mt),Oe[st]={rect:Mt,metrics:$e.metrics}}}const{w:ae,h:de}=T.p(X),Se=new T.q({width:ae||1,height:de||1});for(const Ie in j){const be=j[Ie];for(const Oe in be){const st=be[+Oe];if(!st||st.bitmap.width===0||st.bitmap.height===0)continue;const $e=Z[Ie][Oe].rect;T.q.copy(st.bitmap,Se,{x:0,y:0},{x:$e.x+1,y:$e.y+1},st.bitmap)}}this.image=Se,this.positions=Z}}T.cD("GlyphAtlas",B);class N{constructor(j){this.tileID=new T.Z(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=[],this.globalState=j.globalState}parse(j,Z,X,ae,de){return T._(this,void 0,void 0,(function*(){this.status="parsing",this.data=j,this.collisionBoxArray=new T.a8;const Se=new T.cE(Object.keys(j.layers).sort()),Ie=new T.cF(this.tileID,this.promoteId);Ie.bucketLayerIDs=[];const be={},Oe={featureIndex:Ie,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:X,subdivisionGranularity:de},st=Z.familiesBySource[this.source];for(const jt in st){const Et=j.layers[jt];if(!Et)continue;Et.version===1&&T.w(`Vector tile source "${this.source}" layer "${jt}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const hr=Se.encode(jt),ht=[];for(let Hr=0;Hr=Yr.maxzoom||Yr.visibility!=="none"&&(Y(Hr,this.zoom,X),(be[Yr.id]=Yr.createBucket({index:Ie.bucketLayerIDs.length,layers:Hr,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:hr,sourceID:this.source,globalState:this.globalState})).populate(ht,Oe,this.tileID.canonical),Ie.bucketLayerIDs.push(Hr.map((qr=>qr.id))))}}const $e=T.bN(Oe.glyphDependencies,(jt=>Object.keys(jt).map(Number)));this.inFlightDependencies.forEach((jt=>jt==null?void 0:jt.abort())),this.inFlightDependencies=[];let Mt=Promise.resolve({});if(Object.keys($e).length){const jt=new AbortController;this.inFlightDependencies.push(jt),Mt=ae.sendAsync({type:"GG",data:{stacks:$e,source:this.source,tileID:this.tileID,type:"glyphs"}},jt)}const xe=Object.keys(Oe.iconDependencies);let Ft=Promise.resolve({});if(xe.length){const jt=new AbortController;this.inFlightDependencies.push(jt),Ft=ae.sendAsync({type:"GI",data:{icons:xe,source:this.source,tileID:this.tileID,type:"icons"}},jt)}const cr=Object.keys(Oe.patternDependencies);let Jt=Promise.resolve({});if(cr.length){const jt=new AbortController;this.inFlightDependencies.push(jt),Jt=ae.sendAsync({type:"GI",data:{icons:cr,source:this.source,tileID:this.tileID,type:"patterns"}},jt)}const[Tr,Xr,dn]=yield Promise.all([Mt,Ft,Jt]),xn=new B(Tr),mn=new T.cG(Xr,dn);for(const jt in be){const Et=be[jt];Et instanceof T.a9?(Y(Et.layers,this.zoom,X),T.cH({bucket:Et,glyphMap:Tr,glyphPositions:xn.positions,imageMap:Xr,imagePositions:mn.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical,subdivisionGranularity:Oe.subdivisionGranularity})):Et.hasPattern&&(Et instanceof T.cI||Et instanceof T.cJ||Et instanceof T.cK)&&(Y(Et.layers,this.zoom,X),Et.addFeatures(Oe,this.tileID.canonical,mn.patternPositions))}return this.status="done",{buckets:Object.values(be).filter((jt=>!jt.isEmpty())),featureIndex:Ie,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:xn.image,imageAtlas:mn,glyphMap:this.returnDependencies?Tr:null,iconMap:this.returnDependencies?Xr:null,glyphPositions:this.returnDependencies?xn.positions:null}}))}}function Y(se,j,Z){const X=new T.F(j);for(const ae of se)ae.recalculate(X,Z)}class K{constructor(j,Z,X){this.actor=j,this.layerIndex=Z,this.availableImages=X,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(j,Z){return T._(this,void 0,void 0,(function*(){const X=yield T.n(j.request,Z);try{return{vectorTile:new T.cL(new T.cM(X.data)),rawData:X.data,cacheControl:X.cacheControl,expires:X.expires}}catch(ae){const de=new Uint8Array(X.data);let Se=`Unable to parse the tile at ${j.request.url}, `;throw Se+=de[0]===31&&de[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${ae.message}`,new Error(Se)}}))}loadTile(j){return T._(this,void 0,void 0,(function*(){const Z=j.uid,X=!!(j&&j.request&&j.request.collectResourceTiming)&&new T.cN(j.request),ae=new N(j);this.loading[Z]=ae;const de=new AbortController;ae.abort=de;try{const Se=yield this.loadVectorTile(j,de);if(delete this.loading[Z],!Se)return null;const Ie=Se.rawData,be={};Se.expires&&(be.expires=Se.expires),Se.cacheControl&&(be.cacheControl=Se.cacheControl);const Oe={};if(X){const $e=X.finish();$e&&(Oe.resourceTiming=JSON.parse(JSON.stringify($e)))}ae.vectorTile=Se.vectorTile;const st=ae.parse(Se.vectorTile,this.layerIndex,this.availableImages,this.actor,j.subdivisionGranularity);this.loaded[Z]=ae,this.fetching[Z]={rawTileData:Ie,cacheControl:be,resourceTiming:Oe};try{const $e=yield st;return T.e({rawTileData:Ie.slice(0)},$e,be,Oe)}finally{delete this.fetching[Z]}}catch(Se){throw delete this.loading[Z],ae.status="done",this.loaded[Z]=ae,Se}}))}reloadTile(j){return T._(this,void 0,void 0,(function*(){const Z=j.uid;if(!this.loaded||!this.loaded[Z])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");const X=this.loaded[Z];if(X.showCollisionBoxes=j.showCollisionBoxes,X.globalState=j.globalState,X.status==="parsing"){const ae=yield X.parse(X.vectorTile,this.layerIndex,this.availableImages,this.actor,j.subdivisionGranularity);let de;if(this.fetching[Z]){const{rawTileData:Se,cacheControl:Ie,resourceTiming:be}=this.fetching[Z];delete this.fetching[Z],de=T.e({rawTileData:Se.slice(0)},ae,Ie,be)}else de=ae;return de}if(X.status==="done"&&X.vectorTile)return X.parse(X.vectorTile,this.layerIndex,this.availableImages,this.actor,j.subdivisionGranularity)}))}abortTile(j){return T._(this,void 0,void 0,(function*(){const Z=this.loading,X=j.uid;Z&&Z[X]&&Z[X].abort&&(Z[X].abort.abort(),delete Z[X])}))}removeTile(j){return T._(this,void 0,void 0,(function*(){this.loaded&&this.loaded[j.uid]&&delete this.loaded[j.uid]}))}}class ie{constructor(){this.loaded={}}loadTile(j){return T._(this,void 0,void 0,(function*(){const{uid:Z,encoding:X,rawImageData:ae,redFactor:de,greenFactor:Se,blueFactor:Ie,baseShift:be}=j,Oe=ae.width+2,st=ae.height+2,$e=T.b(ae)?new T.R({width:Oe,height:st},yield T.cO(ae,-1,-1,Oe,st)):ae,Mt=new T.cP(Z,$e,X,de,Se,Ie,be);return this.loaded=this.loaded||{},this.loaded[Z]=Mt,Mt}))}removeTile(j){const Z=this.loaded,X=j.uid;Z&&Z[X]&&delete Z[X]}}var H,me,ve=(function(){if(me)return H;function se(Z,X){if(Z.length!==0){j(Z[0],X);for(var ae=1;ae=Math.abs(Oe)?ae-st+Oe:Oe-st+ae,ae=st}ae+de>=0!=!!X&&Z.reverse()}return me=1,H=function Z(X,ae){var de,Se=X&&X.type;if(Se==="FeatureCollection")for(de=0;de>31}function He(se,j){const Z=se.loadGeometry(),X=se.type;let ae=0,de=0;for(const Se of Z){let Ie=1;X===1&&(Ie=Se.length),j.writeVarint(rt(1,Ie));const be=X===3?Se.length-1:Se.length;for(let Oe=0;Oese},tt=Math.fround||(nt=new Float32Array(1),se=>(nt[0]=+se,nt[0]));var nt;class Ze{constructor(j){this.options=Object.assign(Object.create(De),j),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(j){const{log:Z,minZoom:X,maxZoom:ae}=this.options;Z&&console.time("total time");const de=`prepare ${j.length} points`;Z&&console.time(de),this.points=j;const Se=[];for(let be=0;be=X;be--){const Oe=+Date.now();Ie=this.trees[be]=this._createTree(this._cluster(Ie,be)),Z&&console.log("z%d: %d clusters in %dms",be,Ie.numItems,+Date.now()-Oe)}return Z&&console.timeEnd("total time"),this}getClusters(j,Z){let X=((j[0]+180)%360+360)%360-180;const ae=Math.max(-90,Math.min(90,j[1]));let de=j[2]===180?180:((j[2]+180)%360+360)%360-180;const Se=Math.max(-90,Math.min(90,j[3]));if(j[2]-j[0]>=360)X=-180,de=180;else if(X>de){const $e=this.getClusters([X,ae,180,Se],Z),Mt=this.getClusters([-180,ae,de,Se],Z);return $e.concat(Mt)}const Ie=this.trees[this._limitZoom(Z)],be=Ie.range(te(X),re(Se),te(de),re(ae)),Oe=Ie.data,st=[];for(const $e of be){const Mt=this.stride*$e;st.push(Oe[Mt+5]>1?ke(Oe,Mt,this.clusterProps):this.points[Oe[Mt+3]])}return st}getChildren(j){const Z=this._getOriginId(j),X=this._getOriginZoom(j),ae="No cluster with the specified id.",de=this.trees[X];if(!de)throw new Error(ae);const Se=de.data;if(Z*this.stride>=Se.length)throw new Error(ae);const Ie=this.options.radius/(this.options.extent*Math.pow(2,X-1)),be=de.within(Se[Z*this.stride],Se[Z*this.stride+1],Ie),Oe=[];for(const st of be){const $e=st*this.stride;Se[$e+4]===j&&Oe.push(Se[$e+5]>1?ke(Se,$e,this.clusterProps):this.points[Se[$e+3]])}if(Oe.length===0)throw new Error(ae);return Oe}getLeaves(j,Z,X){const ae=[];return this._appendLeaves(ae,j,Z=Z||10,X=X||0,0),ae}getTile(j,Z,X){const ae=this.trees[this._limitZoom(j)],de=Math.pow(2,j),{extent:Se,radius:Ie}=this.options,be=Ie/Se,Oe=(X-be)/de,st=(X+1+be)/de,$e={features:[]};return this._addTileFeatures(ae.range((Z-be)/de,Oe,(Z+1+be)/de,st),ae.data,Z,X,de,$e),Z===0&&this._addTileFeatures(ae.range(1-be/de,Oe,1,st),ae.data,de,X,de,$e),Z===de-1&&this._addTileFeatures(ae.range(0,Oe,be/de,st),ae.data,-1,X,de,$e),$e.features.length?$e:null}getClusterExpansionZoom(j){let Z=this._getOriginZoom(j)-1;for(;Z<=this.options.maxZoom;){const X=this.getChildren(j);if(Z++,X.length!==1)break;j=X[0].properties.cluster_id}return Z}_appendLeaves(j,Z,X,ae,de){const Se=this.getChildren(Z);for(const Ie of Se){const be=Ie.properties;if(be&&be.cluster?de+be.point_count<=ae?de+=be.point_count:de=this._appendLeaves(j,be.cluster_id,X,ae,de):de1;let st,$e,Mt;if(Oe)st=bt(Z,be,this.clusterProps),$e=Z[be],Mt=Z[be+1];else{const cr=this.points[Z[be+3]];st=cr.properties;const[Jt,Tr]=cr.geometry.coordinates;$e=te(Jt),Mt=re(Tr)}const xe={type:1,geometry:[[Math.round(this.options.extent*($e*de-X)),Math.round(this.options.extent*(Mt*de-ae))]],tags:st};let Ft;Ft=Oe||this.options.generateId?Z[be+3]:this.points[Z[be+3]].id,Ft!==void 0&&(xe.id=Ft),Se.features.push(xe)}}_limitZoom(j){return Math.max(this.options.minZoom,Math.min(Math.floor(+j),this.options.maxZoom+1))}_cluster(j,Z){const{radius:X,extent:ae,reduce:de,minPoints:Se}=this.options,Ie=X/(ae*Math.pow(2,Z)),be=j.data,Oe=[],st=this.stride;for(let $e=0;$eZ&&(Jt+=be[Xr+5])}if(Jt>cr&&Jt>=Se){let Tr,Xr=Mt*cr,dn=xe*cr,xn=-1;const mn=($e/st<<5)+(Z+1)+this.points.length;for(const jt of Ft){const Et=jt*st;if(be[Et+2]<=Z)continue;be[Et+2]=Z;const hr=be[Et+5];Xr+=be[Et]*hr,dn+=be[Et+1]*hr,be[Et+4]=mn,de&&(Tr||(Tr=this._map(be,$e,!0),xn=this.clusterProps.length,this.clusterProps.push(Tr)),de(Tr,this._map(be,Et)))}be[$e+4]=mn,Oe.push(Xr/Jt,dn/Jt,1/0,mn,-1,Jt),de&&Oe.push(xn)}else{for(let Tr=0;Tr1)for(const Tr of Ft){const Xr=Tr*st;if(!(be[Xr+2]<=Z)){be[Xr+2]=Z;for(let dn=0;dn>5}_getOriginZoom(j){return(j-this.points.length)%32}_map(j,Z,X){if(j[Z+5]>1){const Se=this.clusterProps[j[Z+6]];return X?Object.assign({},Se):Se}const ae=this.points[j[Z+3]].properties,de=this.options.map(ae);return X&&de===ae?Object.assign({},de):de}}function ke(se,j,Z){return{type:"Feature",id:se[j+3],properties:bt(se,j,Z),geometry:{type:"Point",coordinates:[(X=se[j],360*(X-.5)),ge(se[j+1])]}};var X}function bt(se,j,Z){const X=se[j+5],ae=X>=1e4?`${Math.round(X/1e3)}k`:X>=1e3?Math.round(X/100)/10+"k":X,de=se[j+6],Se=de===-1?{}:Object.assign({},Z[de]);return Object.assign(Se,{cluster:!0,cluster_id:se[j+3],point_count:X,point_count_abbreviated:ae})}function te(se){return se/360+.5}function re(se){const j=Math.sin(se*Math.PI/180),Z=.5-.25*Math.log((1+j)/(1-j))/Math.PI;return Z<0?0:Z>1?1:Z}function ge(se){const j=(180-360*se)*Math.PI/180;return 360*Math.atan(Math.exp(j))/Math.PI-90}function oe(se,j,Z,X){let ae=X;const de=j+(Z-j>>1);let Se,Ie=Z-j;const be=se[j],Oe=se[j+1],st=se[Z],$e=se[Z+1];for(let Mt=j+3;Mtae)Se=Mt,ae=xe;else if(xe===ae){const Ft=Math.abs(Mt-de);FtX&&(Se-j>3&&oe(se,j,Se,X),se[Se+2]=ae,Z-Se>3&&oe(se,Se,Z,X))}function Ae(se,j,Z,X,ae,de){let Se=ae-Z,Ie=de-X;if(Se!==0||Ie!==0){const be=((se-Z)*Se+(j-X)*Ie)/(Se*Se+Ie*Ie);be>1?(Z=ae,X=de):be>0&&(Z+=Se*be,X+=Ie*be)}return Se=se-Z,Ie=j-X,Se*Se+Ie*Ie}function Ne(se,j,Z,X){const ae={id:se??null,type:j,geometry:Z,tags:X,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if(j==="Point"||j==="MultiPoint"||j==="LineString")pt(ae,Z);else if(j==="Polygon")pt(ae,Z[0]);else if(j==="MultiLineString")for(const de of Z)pt(ae,de);else if(j==="MultiPolygon")for(const de of Z)pt(ae,de[0]);return ae}function pt(se,j){for(let Z=0;Z0&&(Se+=X?(ae*st-Oe*de)/2:Math.sqrt(Math.pow(Oe-ae,2)+Math.pow(st-de,2))),ae=Oe,de=st}const Ie=j.length-3;j[2]=1,oe(j,0,Ie,Z),j[Ie+2]=1,j.size=Math.abs(Se),j.start=0,j.end=j.size}function Bt(se,j,Z,X){for(let ae=0;ae1?1:Z}function vt(se,j,Z,X,ae,de,Se,Ie){if(X/=j,de>=(Z/=j)&&Se=X)return null;const be=[];for(const Oe of se){const st=Oe.geometry;let $e=Oe.type;const Mt=ae===0?Oe.minX:Oe.minY,xe=ae===0?Oe.maxX:Oe.maxY;if(Mt>=Z&&xe=X)continue;let Ft=[];if($e==="Point"||$e==="MultiPoint")yt(st,Ft,Z,X,ae);else if($e==="LineString")It(st,Ft,Z,X,ae,!1,Ie.lineMetrics);else if($e==="MultiLineString")mt(st,Ft,Z,X,ae,!1);else if($e==="Polygon")mt(st,Ft,Z,X,ae,!0);else if($e==="MultiPolygon")for(const cr of st){const Jt=[];mt(cr,Jt,Z,X,ae,!0),Jt.length&&Ft.push(Jt)}if(Ft.length){if(Ie.lineMetrics&&$e==="LineString"){for(const cr of Ft)be.push(Ne(Oe.id,$e,cr,Oe.tags));continue}$e!=="LineString"&&$e!=="MultiLineString"||(Ft.length===1?($e="LineString",Ft=Ft[0]):$e="MultiLineString"),$e!=="Point"&&$e!=="MultiPoint"||($e=Ft.length===3?"Point":"MultiPoint"),be.push(Ne(Oe.id,$e,Ft,Oe.tags))}}return be.length?be:null}function yt(se,j,Z,X,ae){for(let de=0;de=Z&&Se<=X&&Dt(j,se[de],se[de+1],se[de+2])}}function It(se,j,Z,X,ae,de,Se){let Ie=wt(se);const be=ae===0?zt:qt;let Oe,st,$e=se.start;for(let Jt=0;JtZ&&(st=be(Ie,Tr,Xr,xn,mn,Z),Se&&(Ie.start=$e+Oe*st)):jt>X?Et=Z&&(st=be(Ie,Tr,Xr,xn,mn,Z),hr=!0),Et>X&&jt<=X&&(st=be(Ie,Tr,Xr,xn,mn,X),hr=!0),!de&&hr&&(Se&&(Ie.end=$e+Oe*st),j.push(Ie),Ie=wt(se)),Se&&($e+=Oe)}let Mt=se.length-3;const xe=se[Mt],Ft=se[Mt+1],cr=ae===0?xe:Ft;cr>=Z&&cr<=X&&Dt(Ie,xe,Ft,se[Mt+2]),Mt=Ie.length-3,de&&Mt>=3&&(Ie[Mt]!==Ie[0]||Ie[Mt+1]!==Ie[1])&&Dt(Ie,Ie[0],Ie[1],Ie[2]),Ie.length&&j.push(Ie)}function wt(se){const j=[];return j.size=se.size,j.start=se.start,j.end=se.end,j}function mt(se,j,Z,X,ae,de){for(const Se of se)It(Se,j,Z,X,ae,de,!1)}function Dt(se,j,Z,X){se.push(j,Z,X)}function zt(se,j,Z,X,ae,de){const Se=(de-j)/(X-j);return Dt(se,de,Z+(ae-Z)*Se,1),Se}function qt(se,j,Z,X,ae,de){const Se=(de-Z)/(ae-Z);return Dt(se,j+(X-j)*Se,de,1),Se}function tr(se,j){const Z=[];for(let X=0;X0&&j.size<(ae?Se:X))return void(Z.numPoints+=j.length/3);const Ie=[];for(let be=0;beSe)&&(Z.numSimplified++,Ie.push(j[be],j[be+1])),Z.numPoints++;ae&&(function(be,Oe){let st=0;for(let $e=0,Mt=be.length,xe=Mt-2;$e0===Oe)for(let $e=0,Mt=be.length;$e24)throw new Error("maxZoom should be in the 0-24 range");if(Z.promoteId&&Z.generateId)throw new Error("promoteId and generateId cannot be used together.");let ae=(function(de,Se){const Ie=[];if(de.type==="FeatureCollection")for(let be=0;be1&&console.time("creation"),xe=this.tiles[Mt]=kr(j,Z,X,ae,Oe),this.tileCoords.push({z:Z,x:X,y:ae}),st)){st>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",Z,X,ae,xe.numFeatures,xe.numPoints,xe.numSimplified),console.timeEnd("creation"));const hr=`z${Z}`;this.stats[hr]=(this.stats[hr]||0)+1,this.total++}if(xe.source=j,de==null){if(Z===Oe.indexMaxZoom||xe.numPoints<=Oe.indexMaxPoints)continue}else{if(Z===Oe.maxZoom||Z===de)continue;if(de!=null){const hr=de-Z;if(X!==Se>>hr||ae!==Ie>>hr)continue}}if(xe.source=null,j.length===0)continue;st>1&&console.time("clipping");const Ft=.5*Oe.buffer/Oe.extent,cr=.5-Ft,Jt=.5+Ft,Tr=1+Ft;let Xr=null,dn=null,xn=null,mn=null,jt=vt(j,$e,X-Ft,X+Jt,0,xe.minX,xe.maxX,Oe),Et=vt(j,$e,X+cr,X+Tr,0,xe.minX,xe.maxX,Oe);j=null,jt&&(Xr=vt(jt,$e,ae-Ft,ae+Jt,1,xe.minY,xe.maxY,Oe),dn=vt(jt,$e,ae+cr,ae+Tr,1,xe.minY,xe.maxY,Oe),jt=null),Et&&(xn=vt(Et,$e,ae-Ft,ae+Jt,1,xe.minY,xe.maxY,Oe),mn=vt(Et,$e,ae+cr,ae+Tr,1,xe.minY,xe.maxY,Oe),Et=null),st>1&&console.timeEnd("clipping"),be.push(Xr||[],Z+1,2*X,2*ae),be.push(dn||[],Z+1,2*X,2*ae+1),be.push(xn||[],Z+1,2*X+1,2*ae),be.push(mn||[],Z+1,2*X+1,2*ae+1)}}getTile(j,Z,X){j=+j,Z=+Z,X=+X;const ae=this.options,{extent:de,debug:Se}=ae;if(j<0||j>24)return null;const Ie=1<1&&console.log("drilling down to z%d-%d-%d",j,Z,X);let Oe,st=j,$e=Z,Mt=X;for(;!Oe&&st>0;)st--,$e>>=1,Mt>>=1,Oe=this.tiles[Sr(st,$e,Mt)];return Oe&&Oe.source?(Se>1&&(console.log("found parent tile z%d-%d-%d",st,$e,Mt),console.time("drilling down")),this.splitTile(Oe.source,st,$e,Mt,j,Z,X),Se>1&&console.timeEnd("drilling down"),this.tiles[be]?Ot(this.tiles[be],de):null):null}}function Sr(se,j,Z){return 32*((1<{$e.properties=xe;const Ft={};for(const cr of Mt)Ft[cr]=be[cr].evaluate(st,$e);return Ft},Se.reduce=(xe,Ft)=>{$e.properties=Ft;for(const cr of Mt)st.accumulated=xe[cr],xe[cr]=Oe[cr].evaluate(st,$e)},Se})(j)).load(ae.features):(function(Se,Ie){return new or(Se,Ie)})(ae,j.geojsonVtOptions),this.loaded={};const de={data:ae};if(X){const Se=X.finish();Se&&(de.resourceTiming={},de.resourceTiming[j.source]=JSON.parse(JSON.stringify(Se)))}return de}catch(ae){if(delete this._pendingRequest,T.cy(ae))return{abandoned:!0};throw ae}}))}getData(){return T._(this,void 0,void 0,(function*(){return this._pendingData}))}reloadTile(j){const Z=this.loaded;return Z&&Z[j.uid]?super.reloadTile(j):this.loadTile(j)}loadAndProcessGeoJSON(j,Z){return T._(this,void 0,void 0,(function*(){let X=yield this.loadGeoJSON(j,Z);if(delete this._pendingRequest,typeof X!="object")throw new Error(`Input data given to '${j.source}' is not a valid GeoJSON object.`);if(Me(X,!0),j.filter){const ae=T.cT(j.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(ae.result==="error")throw new Error(ae.value.map((Se=>`${Se.key}: ${Se.message}`)).join(", "));X={type:"FeatureCollection",features:X.features.filter((Se=>ae.value.evaluate({zoom:0},Se)))}}return X}))}loadGeoJSON(j,Z){return T._(this,void 0,void 0,(function*(){const{promoteId:X}=j;if(j.request){const ae=yield T.j(j.request,Z);return this._dataUpdateable=T.cV(ae.data,X)?T.cU(ae.data,X):void 0,ae.data}if(typeof j.data=="string")try{const ae=JSON.parse(j.data);return this._dataUpdateable=T.cV(ae,X)?T.cU(ae,X):void 0,ae}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 T.cW(this._dataUpdateable,j.dataDiff,X),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}}))}removeSource(j){return T._(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 Zr{constructor(j){this.self=j,this.actor=new T.J(j),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(Z,X)=>{if(this.externalWorkerSourceTypes[Z])throw new Error(`Worker source with name "${Z}" already registered.`);this.externalWorkerSourceTypes[Z]=X},this.self.addProtocol=T.cA,this.self.removeProtocol=T.cB,this.self.registerRTLTextPlugin=Z=>{T.cX.setMethods(Z)},this.actor.registerMessageHandler("LDT",((Z,X)=>this._getDEMWorkerSource(Z,X.source).loadTile(X))),this.actor.registerMessageHandler("RDT",((Z,X)=>T._(this,void 0,void 0,(function*(){this._getDEMWorkerSource(Z,X.source).removeTile(X)})))),this.actor.registerMessageHandler("GCEZ",((Z,X)=>T._(this,void 0,void 0,(function*(){return this._getWorkerSource(Z,X.type,X.source).getClusterExpansionZoom(X)})))),this.actor.registerMessageHandler("GCC",((Z,X)=>T._(this,void 0,void 0,(function*(){return this._getWorkerSource(Z,X.type,X.source).getClusterChildren(X)})))),this.actor.registerMessageHandler("GCL",((Z,X)=>T._(this,void 0,void 0,(function*(){return this._getWorkerSource(Z,X.type,X.source).getClusterLeaves(X)})))),this.actor.registerMessageHandler("LD",((Z,X)=>this._getWorkerSource(Z,X.type,X.source).loadData(X))),this.actor.registerMessageHandler("GD",((Z,X)=>this._getWorkerSource(Z,X.type,X.source).getData())),this.actor.registerMessageHandler("LT",((Z,X)=>this._getWorkerSource(Z,X.type,X.source).loadTile(X))),this.actor.registerMessageHandler("RT",((Z,X)=>this._getWorkerSource(Z,X.type,X.source).reloadTile(X))),this.actor.registerMessageHandler("AT",((Z,X)=>this._getWorkerSource(Z,X.type,X.source).abortTile(X))),this.actor.registerMessageHandler("RMT",((Z,X)=>this._getWorkerSource(Z,X.type,X.source).removeTile(X))),this.actor.registerMessageHandler("RS",((Z,X)=>T._(this,void 0,void 0,(function*(){if(!this.workerSources[Z]||!this.workerSources[Z][X.type]||!this.workerSources[Z][X.type][X.source])return;const ae=this.workerSources[Z][X.type][X.source];delete this.workerSources[Z][X.type][X.source],ae.removeSource!==void 0&&ae.removeSource(X)})))),this.actor.registerMessageHandler("RM",(Z=>T._(this,void 0,void 0,(function*(){delete this.layerIndexes[Z],delete this.availableImages[Z],delete this.workerSources[Z],delete this.demWorkerSources[Z]})))),this.actor.registerMessageHandler("SR",((Z,X)=>T._(this,void 0,void 0,(function*(){this.referrer=X})))),this.actor.registerMessageHandler("SRPS",((Z,X)=>this._syncRTLPluginState(Z,X))),this.actor.registerMessageHandler("IS",((Z,X)=>T._(this,void 0,void 0,(function*(){this.self.importScripts(X)})))),this.actor.registerMessageHandler("SI",((Z,X)=>this._setImages(Z,X))),this.actor.registerMessageHandler("UL",((Z,X)=>T._(this,void 0,void 0,(function*(){this._getLayerIndex(Z).update(X.layers,X.removedIds)})))),this.actor.registerMessageHandler("SL",((Z,X)=>T._(this,void 0,void 0,(function*(){this._getLayerIndex(Z).replace(X)}))))}_setImages(j,Z){return T._(this,void 0,void 0,(function*(){this.availableImages[j]=Z;for(const X in this.workerSources[j]){const ae=this.workerSources[j][X];for(const de in ae)ae[de].availableImages=Z}}))}_syncRTLPluginState(j,Z){return T._(this,void 0,void 0,(function*(){return yield T.cX.syncState(Z,this.self.importScripts)}))}_getAvailableImages(j){let Z=this.availableImages[j];return Z||(Z=[]),Z}_getLayerIndex(j){let Z=this.layerIndexes[j];return Z||(Z=this.layerIndexes[j]=new s),Z}_getWorkerSource(j,Z,X){if(this.workerSources[j]||(this.workerSources[j]={}),this.workerSources[j][Z]||(this.workerSources[j][Z]={}),!this.workerSources[j][Z][X]){const ae={sendAsync:(de,Se)=>(de.targetMapId=j,this.actor.sendAsync(de,Se))};switch(Z){case"vector":this.workerSources[j][Z][X]=new K(ae,this._getLayerIndex(j),this._getAvailableImages(j));break;case"geojson":this.workerSources[j][Z][X]=new Dr(ae,this._getLayerIndex(j),this._getAvailableImages(j));break;default:this.workerSources[j][Z][X]=new this.externalWorkerSourceTypes[Z](ae,this._getLayerIndex(j),this._getAvailableImages(j))}}return this.workerSources[j][Z][X]}_getDEMWorkerSource(j,Z){return this.demWorkerSources[j]||(this.demWorkerSources[j]={}),this.demWorkerSources[j][Z]||(this.demWorkerSources[j][Z]=new ie),this.demWorkerSources[j][Z]}}return T.i(self)&&(self.worker=new Zr(self)),Zr})),M("index",["exports","./shared"],(function(T,s){var B="5.6.2";function N(){var h=new s.A(4);return s.A!=Float32Array&&(h[1]=0,h[2]=0),h[0]=1,h[3]=1,h}let Y,K;const ie={now:typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frame(h,e,i){const l=requestAnimationFrame((d=>{u(),e(d)})),{unsubscribe:u}=s.s(h.signal,"abort",(()=>{u(),cancelAnimationFrame(l),i(s.c())}),!1)},frameAsync(h){return new Promise(((e,i)=>{this.frame(h,e,i)}))},getImageData(h,e=0){return this.getImageCanvasContext(h).getImageData(-e,-e,h.width+2*e,h.height+2*e)},getImageCanvasContext(h){const e=window.document.createElement("canvas"),i=e.getContext("2d",{willReadFrequently:!0});if(!i)throw new Error("failed to create canvas 2d context");return e.width=h.width,e.height=h.height,i.drawImage(h,0,0,h.width,h.height),i},resolveURL:h=>(Y||(Y=document.createElement("a")),Y.href=h,Y.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(K==null&&(K=matchMedia("(prefers-reduced-motion: reduce)")),K.matches)}};class H{static testProp(e){if(!H.docStyle)return e[0];for(let i=0;i{window.removeEventListener("click",H.suppressClickInternal,!0)}),0)}static getScale(e){const i=e.getBoundingClientRect();return{x:i.width/e.offsetWidth||1,y:i.height/e.offsetHeight||1,boundingClientRect:i}}static getPoint(e,i,l){const u=i.boundingClientRect;return new s.P((l.clientX-u.left)/i.x-e.clientLeft,(l.clientY-u.top)/i.y-e.clientTop)}static mousePos(e,i){const l=H.getScale(e);return H.getPoint(e,l,i)}static touchPos(e,i){const l=[],u=H.getScale(e);for(let d=0;d{ve&&ze(ve),ve=null,Re=!0},Me.onerror=()=>{Ee=!0,ve=null},Me.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),(function(h){let e,i,l,u;h.resetRequestQueue=()=>{e=[],i=0,l=0,u={}},h.addThrottleControl=C=>{const P=l++;return u[P]=C,P},h.removeThrottleControl=C=>{delete u[C],g()},h.getImage=(C,P,A=!0)=>new Promise(((R,D)=>{me.supported&&(C.headers||(C.headers={}),C.headers.accept="image/webp,*/*"),s.e(C,{type:"image"}),e.push({abortController:P,requestParameters:C,supportImageRefresh:A,state:"queued",onError:O=>{D(O)},onSuccess:O=>{R(O)}}),g()}));const d=C=>s._(this,void 0,void 0,(function*(){C.state="running";const{requestParameters:P,supportImageRefresh:A,onError:R,onSuccess:D,abortController:O}=C,$=A===!1&&!s.i(self)&&!s.g(P.url)&&(!P.headers||Object.keys(P.headers).reduce(((ne,ue)=>ne&&ue==="accept"),!0));i++;const ee=$?w(P,O):s.m(P,O);try{const ne=yield ee;delete C.abortController,C.state="completed",ne.data instanceof HTMLImageElement||s.b(ne.data)?D(ne):ne.data&&D({data:yield(Q=ne.data,typeof createImageBitmap=="function"?s.f(Q):s.h(Q)),cacheControl:ne.cacheControl,expires:ne.expires})}catch(ne){delete C.abortController,R(ne)}finally{i--,g()}var Q})),g=()=>{const C=(()=>{for(const P of Object.keys(u))if(u[P]())return!0;return!1})()?s.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:s.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let P=i;P0;P++){const A=e.shift();A.abortController.signal.aborted?P--:d(A)}},w=(C,P)=>new Promise(((A,R)=>{const D=new Image,O=C.url,$=C.credentials;$&&$==="include"?D.crossOrigin="use-credentials":($&&$==="same-origin"||!s.d(O))&&(D.crossOrigin="anonymous"),P.signal.addEventListener("abort",(()=>{D.src="",R(s.c())})),D.fetchPriority="high",D.onload=()=>{D.onerror=D.onload=null,A({data:D})},D.onerror=()=>{D.onerror=D.onload=null,P.signal.aborted||R(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."))},D.src=O}))})(Fe||(Fe={})),Fe.resetRequestQueue();class Ke{constructor(e){this._transformRequestFn=e??null}transformRequest(e,i){return this._transformRequestFn&&this._transformRequestFn(e,i)||{url:e}}setTransformRequest(e){this._transformRequestFn=e}}function rt(h){const e=[];if(typeof h=="string")e.push({id:"default",url:h});else if(h&&h.length>0){const i=[];for(const{id:l,url:u}of h){const d=`${l}${u}`;i.indexOf(d)===-1&&(i.push(d),e.push({id:l,url:u}))}}return e}function qe(h,e,i){try{const l=new URL(h);return l.pathname+=`${e}${i}`,l.toString()}catch{throw new Error(`Invalid sprite URL "${h}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}function He(h){const{userImage:e}=h;return!!(e&&e.render&&e.render())&&(h.data.replace(new Uint8Array(e.data.buffer)),!0)}class et extends s.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(const{ids:i,promiseResolve:l}of this.requestors)l(this._getImagesForIds(i));this.requestors=[]}}getImage(e){const i=this.images[e];if(i&&!i.data&&i.spriteData){const l=i.spriteData;i.data=new s.R({width:l.width,height:l.height},l.context.getImageData(l.x,l.y,l.width,l.height).data),i.spriteData=null}return i}addImage(e,i){if(this.images[e])throw new Error(`Image id ${e} already exist, use updateImage instead`);this._validate(e,i)&&(this.images[e]=i)}_validate(e,i){let l=!0;const u=i.data||i.spriteData;return this._validateStretch(i.stretchX,u&&u.width)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchX" value`))),l=!1),this._validateStretch(i.stretchY,u&&u.height)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchY" value`))),l=!1),this._validateContent(i.content,i)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "content" value`))),l=!1),l}_validateStretch(e,i){if(!e)return!0;let l=0;for(const u of e){if(u[0]{let u=!0;if(!this.isLoaded())for(const d of e)this.images[d]||(u=!1);this.isLoaded()||u?i(this._getImagesForIds(e)):this.requestors.push({ids:e,promiseResolve:i})}))}_getImagesForIds(e){const i={};for(const l of e){let u=this.getImage(l);u||(this.fire(new s.l("styleimagemissing",{id:l})),u=this.getImage(l)),u?i[l]={data:u.data.clone(),pixelRatio:u.pixelRatio,sdf:u.sdf,version:u.version,stretchX:u.stretchX,stretchY:u.stretchY,content:u.content,textFitWidth:u.textFitWidth,textFitHeight:u.textFitHeight,hasRenderCallback:!!(u.userImage&&u.userImage.render)}:s.w(`Image "${l}" 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 i}getPixelSize(){const{width:e,height:i}=this.atlasImage;return{width:e,height:i}}getPattern(e){const i=this.patterns[e],l=this.getImage(e);if(!l)return null;if(i&&i.position.version===l.version)return i.position;if(i)i.position.version=l.version;else{const u={w:l.data.width+2,h:l.data.height+2,x:0,y:0},d=new s.I(u,l);this.patterns[e]={bin:u,position:d}}return this._updatePatternAtlas(),this.patterns[e].position}bind(e){const i=e.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new s.T(e,this.atlasImage,i.RGBA),this.atlasTexture.bind(i.LINEAR,i.CLAMP_TO_EDGE)}_updatePatternAtlas(){const e=[];for(const d in this.patterns)e.push(this.patterns[d].bin);const{w:i,h:l}=s.p(e),u=this.atlasImage;u.resize({width:i||1,height:l||1});for(const d in this.patterns){const{bin:g}=this.patterns[d],w=g.x+1,C=g.y+1,P=this.getImage(d).data,A=P.width,R=P.height;s.R.copy(P,u,{x:0,y:0},{x:w,y:C},{width:A,height:R}),s.R.copy(P,u,{x:0,y:R-1},{x:w,y:C-1},{width:A,height:1}),s.R.copy(P,u,{x:0,y:0},{x:w,y:C+R},{width:A,height:1}),s.R.copy(P,u,{x:A-1,y:0},{x:w-1,y:C},{width:1,height:R}),s.R.copy(P,u,{x:0,y:0},{x:w+A,y:C},{width:1,height:R})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(e){for(const i of e){if(this.callbackDispatchedThisFrame[i])continue;this.callbackDispatchedThisFrame[i]=!0;const l=this.getImage(i);l||s.w(`Image with ID: "${i}" was not found`),He(l)&&this.updateImage(i,l)}}}const De=1e20;function tt(h,e,i,l,u,d,g,w,C){for(let P=e;P-1);C++,d[C]=w,g[C]=P,g[C+1]=De}for(let w=0,C=0;w65535)throw new Error("glyphs > 65535 not supported");if(l.ranges[d])return{stack:e,id:i,glyph:u};if(!this.url)throw new Error("glyphsUrl is not set");if(!l.requests[d]){const w=Ze.loadGlyphRange(e,d,this.url,this.requestManager);l.requests[d]=w}const g=yield l.requests[d];for(const w in g)this._doesCharSupportLocalGlyph(+w)||(l.glyphs[+w]=g[+w]);return l.ranges[d]=!0,{stack:e,id:i,glyph:g[i]||null}}))}_doesCharSupportLocalGlyph(e){return!!this.localIdeographFontFamily&&(new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}","u").test(String.fromCodePoint(e))||s.u["CJK Unified Ideographs"](e)||s.u["Hangul Syllables"](e)||s.u.Hiragana(e)||s.u.Katakana(e)||s.u["CJK Symbols and Punctuation"](e)||s.u["Halfwidth and Fullwidth Forms"](e))}_tinySDF(e,i,l){const u=this.localIdeographFontFamily;if(!u||!this._doesCharSupportLocalGlyph(l))return;let d=e.tinySDF;if(!d){let w="400";/bold/i.test(i)?w="900":/medium/i.test(i)?w="500":/light/i.test(i)&&(w="200"),d=e.tinySDF=new Ze.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:u,fontWeight:w})}const g=d.draw(String.fromCharCode(l));return{id:l,bitmap:new s.q({width:g.width||60,height:g.height||60},g.data),metrics:{width:g.glyphWidth/2||24,height:g.glyphHeight/2||24,left:g.glyphLeft/2+.5||0,top:g.glyphTop/2-27.5||-8,advance:g.glyphAdvance/2||24,isDoubleResolution:!0}}}}Ze.loadGlyphRange=function(h,e,i,l){return s._(this,void 0,void 0,(function*(){const u=256*e,d=u+255,g=l.transformRequest(i.replace("{fontstack}",h).replace("{range}",`${u}-${d}`),"Glyphs"),w=yield s.n(g,new AbortController);if(!w||!w.data)throw new Error(`Could not load glyph range. range: ${e}, ${u}-${d}`);const C={};for(const P of s.o(w.data))C[P.id]=P;return C}))},Ze.TinySDF=class{constructor({fontSize:h=24,buffer:e=3,radius:i=8,cutoff:l=.25,fontFamily:u="sans-serif",fontWeight:d="normal",fontStyle:g="normal",lang:w=null}={}){this.buffer=e,this.cutoff=l,this.radius=i,this.lang=w;const C=this.size=h+4*e,P=this._createCanvas(C),A=this.ctx=P.getContext("2d",{willReadFrequently:!0});A.font=`${g} ${d} ${h}px ${u}`,A.textBaseline="alphabetic",A.textAlign="left",A.fillStyle="black",this.gridOuter=new Float64Array(C*C),this.gridInner=new Float64Array(C*C),this.f=new Float64Array(C),this.z=new Float64Array(C+1),this.v=new Uint16Array(C)}_createCanvas(h){const e=document.createElement("canvas");return e.width=e.height=h,e}draw(h){const{width:e,actualBoundingBoxAscent:i,actualBoundingBoxDescent:l,actualBoundingBoxLeft:u,actualBoundingBoxRight:d}=this.ctx.measureText(h),g=Math.ceil(i),w=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(d-u))),C=Math.min(this.size-this.buffer,g+Math.ceil(l)),P=w+2*this.buffer,A=C+2*this.buffer,R=Math.max(P*A,0),D=new Uint8ClampedArray(R),O={data:D,width:P,height:A,glyphWidth:w,glyphHeight:C,glyphTop:g,glyphLeft:0,glyphAdvance:e};if(w===0||C===0)return O;const{ctx:$,buffer:ee,gridInner:Q,gridOuter:ne}=this;this.lang&&($.lang=this.lang),$.clearRect(ee,ee,w,C),$.fillText(h,ee,ee+g);const ue=$.getImageData(ee,ee,w,C);ne.fill(De,0,R),Q.fill(0,0,R);for(let _e=0;_e0?pe*pe:0,Q[Pe]=pe<0?pe*pe:0}}tt(ne,0,0,P,A,P,this.f,this.v,this.z),tt(Q,ee,ee,w,C,P,this.f,this.v,this.z);for(let _e=0;_e1&&(C=e[++w]);const A=Math.abs(P-C.left),R=Math.abs(P-C.right),D=Math.min(A,R);let O;const $=d/l*(u+1);if(C.isDash){const ee=u-Math.abs($);O=Math.sqrt(D*D+ee*ee)}else O=u-Math.sqrt(D*D+$*$);this.data[g+P]=Math.max(0,Math.min(255,O+128))}}}addRegularDash(e){for(let w=e.length-1;w>=0;--w){const C=e[w],P=e[w+1];C.zeroLength?e.splice(w,1):P&&P.isDash===C.isDash&&(P.left=C.left,e.splice(w,1))}const i=e[0],l=e[e.length-1];i.isDash===l.isDash&&(i.left=l.left-this.width,l.right=i.right+this.width);const u=this.width*this.nextRow;let d=0,g=e[d];for(let w=0;w1&&(g=e[++d]);const C=Math.abs(w-g.left),P=Math.abs(w-g.right),A=Math.min(C,P);this.data[u+w]=Math.max(0,Math.min(255,(g.isDash?A:-A)+128))}}addDash(e,i){const l=i?7:0,u=2*l+1;if(this.nextRow+u>this.height)return s.w("LineAtlas out of space"),null;let d=0;for(let w=0;w{i.terminate()})),this.workers=null)}isPreloaded(){return!!this.active[Ae]}numActive(){return Object.keys(this.active).length}}const pt=Math.floor(ie.hardwareConcurrency/2);let ot,ut;function St(){return ot||(ot=new Ne),ot}Ne.workerCount=s.H(globalThis)?Math.max(Math.min(pt,3),1):1;class Bt{constructor(e,i){this.workerPool=e,this.actors=[],this.currentActor=0,this.id=i;const l=this.workerPool.acquire(i);for(let u=0;u{i.remove()})),this.actors=[],e&&this.workerPool.release(this.id)}registerMessageHandler(e,i){for(const l of this.actors)l.registerMessageHandler(e,i)}}function at(){return ut||(ut=new Bt(St(),s.K),ut.registerMessageHandler("GR",((h,e,i)=>s.m(e,i)))),ut}function dt(h,e){const i=s.L();return s.M(i,i,[1,1,0]),s.N(i,i,[.5*h.width,.5*h.height,1]),h.calculatePosMatrix?s.O(i,i,h.calculatePosMatrix(e.toUnwrapped())):i}function vt(h,e,i,l,u,d,g){var w;const C=(function(D,O,$){if(D)for(const ee of D){const Q=O[ee];if(Q&&Q.source===$&&Q.type==="fill-extrusion")return!0}else for(const ee in O){const Q=O[ee];if(Q.source===$&&Q.type==="fill-extrusion")return!0}return!1})((w=u==null?void 0:u.layers)!==null&&w!==void 0?w:null,e,h.id),P=d.maxPitchScaleFactor(),A=h.tilesIn(l,P,C);A.sort(yt);const R=[];for(const D of A)R.push({wrappedTileID:D.tileID.wrapped().key,queryResults:D.tile.queryRenderedFeatures(e,i,h._state,D.queryGeometry,D.cameraQueryGeometry,D.scale,u,d,P,dt(h.transform,D.tileID),g?(O,$)=>g(D.tileID,O,$):void 0)});return(function(D,O){for(const $ in D)for(const ee of D[$])It(ee,O);return D})((function(D){const O={},$={};for(const ee of D){const Q=ee.queryResults,ne=ee.wrappedTileID,ue=$[ne]=$[ne]||{};for(const _e in Q){const he=Q[_e],we=ue[_e]=ue[_e]||{},Pe=O[_e]=O[_e]||[];for(const pe of he)we[pe.featureIndex]||(we[pe.featureIndex]=!0,Pe.push(pe))}}return O})(R),h)}function yt(h,e){const i=h.tileID,l=e.tileID;return i.overscaledZ-l.overscaledZ||i.canonical.y-l.canonical.y||i.wrap-l.wrap||i.canonical.x-l.canonical.x}function It(h,e){const i=h.feature,l=e.getFeatureState(i.layer["source-layer"],i.id);i.source=i.layer.source,i.layer["source-layer"]&&(i.sourceLayer=i.layer["source-layer"]),i.state=l}function wt(h,e,i){return s._(this,void 0,void 0,(function*(){let l=h;if(h.url?l=(yield s.j(e.transformRequest(h.url,"Source"),i)).data:yield ie.frameAsync(i),!l)return null;const u=s.Q(s.e(l,h),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in l&&l.vector_layers&&(u.vectorLayerIds=l.vector_layers.map((d=>d.id))),u}))}class mt{constructor(e,i){e&&(i?this.setSouthWest(e).setNorthEast(i):Array.isArray(e)&&(e.length===4?this.setSouthWest([e[0],e[1]]).setNorthEast([e[2],e[3]]):this.setSouthWest(e[0]).setNorthEast(e[1])))}setNorthEast(e){return this._ne=e instanceof s.S?new s.S(e.lng,e.lat):s.S.convert(e),this}setSouthWest(e){return this._sw=e instanceof s.S?new s.S(e.lng,e.lat):s.S.convert(e),this}extend(e){const i=this._sw,l=this._ne;let u,d;if(e instanceof s.S)u=e,d=e;else{if(!(e instanceof mt))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(mt.convert(e)):this.extend(s.S.convert(e)):e&&("lng"in e||"lon"in e)&&"lat"in e?this.extend(s.S.convert(e)):this;if(u=e._sw,d=e._ne,!u||!d)return this}return i||l?(i.lng=Math.min(u.lng,i.lng),i.lat=Math.min(u.lat,i.lat),l.lng=Math.max(d.lng,l.lng),l.lat=Math.max(d.lat,l.lat)):(this._sw=new s.S(u.lng,u.lat),this._ne=new s.S(d.lng,d.lat)),this}getCenter(){return new s.S((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new s.S(this.getWest(),this.getNorth())}getSouthEast(){return new s.S(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(e){const{lng:i,lat:l}=s.S.convert(e);let u=this._sw.lng<=i&&i<=this._ne.lng;return this._sw.lng>this._ne.lng&&(u=this._sw.lng>=i&&i>=this._ne.lng),this._sw.lat<=l&&l<=this._ne.lat&&u}static convert(e){return e instanceof mt?e:e&&new mt(e)}static fromLngLat(e,i=0){const l=360*i/40075017,u=l/Math.cos(Math.PI/180*e.lat);return new mt(new s.S(e.lng-u,e.lat-l),new s.S(e.lng+u,e.lat+l))}adjustAntiMeridian(){const e=new s.S(this._sw.lng,this._sw.lat),i=new s.S(this._ne.lng,this._ne.lat);return new mt(e,e.lng>i.lng?new s.S(i.lng+360,i.lat):i)}}class Dt{constructor(e,i,l){this.bounds=mt.convert(this.validateBounds(e)),this.minzoom=i||0,this.maxzoom=l||24}validateBounds(e){return Array.isArray(e)&&e.length===4?[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]:[-180,-90,180,90]}contains(e){const i=Math.pow(2,e.z),l=Math.floor(s.V(this.bounds.getWest())*i),u=Math.floor(s.U(this.bounds.getNorth())*i),d=Math.ceil(s.V(this.bounds.getEast())*i),g=Math.ceil(s.U(this.bounds.getSouth())*i);return e.x>=l&&e.x=u&&e.y{this._options.tiles=e})),this}setUrl(e){return this.setSourceProperty((()=>{this.url=e,this._options.url=e})),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return s.e({},this._options)}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),l={request:this.map._requestManager.transformRequest(i,"Tile"),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,globalState:this.map.getGlobalState()};l.request.collectResourceTiming=this._collectResourceTiming;let u="RT";if(e.actor&&e.state!=="expired"){if(e.state==="loading")return new Promise(((d,g)=>{e.reloadPromise={resolve:d,reject:g}}))}else e.actor=this.dispatcher.getActor(),u="LT";e.abortController=new AbortController;try{const d=yield e.actor.sendAsync({type:u,data:l},e.abortController);if(delete e.abortController,e.aborted)return;this._afterTileLoadWorkerResponse(e,d)}catch(d){if(delete e.abortController,e.aborted)return;if(d&&d.status!==404)throw d;this._afterTileLoadWorkerResponse(e,null)}}))}_afterTileLoadWorkerResponse(e,i){if(i&&i.resourceTiming&&(e.resourceTiming=i.resourceTiming),i&&this.map._refreshExpiredTiles&&e.setExpiryData(i),e.loadVectorData(i,this.map.painter),e.reloadPromise){const l=e.reloadPromise;e.reloadPromise=null,this.loadTile(e).then(l.resolve).catch(l.reject)}}abortTile(e){return s._(this,void 0,void 0,(function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.actor&&(yield e.actor.sendAsync({type:"AT",data:{uid:e.uid,type:this.type,source:this.id}}))}))}unloadTile(e){return s._(this,void 0,void 0,(function*(){e.unloadVectorData(),e.actor&&(yield e.actor.sendAsync({type:"RMT",data:{uid:e.uid,type:this.type,source:this.id}}))}))}hasTransition(){return!1}}class qt extends s.E{constructor(e,i,l,u){super(),this.id=e,this.dispatcher=l,this.setEventedParent(u),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=s.e({type:"raster"},i),s.e(this,s.Q(i,["url","scheme","tileSize"]))}load(){return s._(this,arguments,void 0,(function*(e=!1){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const i=yield wt(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,i&&(s.e(this,i),i.bounds&&(this.tileBounds=new Dt(i.bounds,this.minzoom,this.maxzoom)),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.l("data",{dataType:"source",sourceDataType:"content",sourceDataChanged:e})))}catch(i){this._tileJSONRequest=null,this.fire(new s.k(i))}}))}loaded(){return this._loaded}onAdd(e){this.map=e,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(e){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),e(),this.load(!0)}setTiles(e){return this.setSourceProperty((()=>{this._options.tiles=e})),this}setUrl(e){return this.setSourceProperty((()=>{this.url=e,this._options.url=e})),this}serialize(){return s.e({},this._options)}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);e.abortController=new AbortController;try{const l=yield Fe.getImage(this.map._requestManager.transformRequest(i,"Tile"),e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(l&&l.data){this.map._refreshExpiredTiles&&(l.cacheControl||l.expires)&&e.setExpiryData({cacheControl:l.cacheControl,expires:l.expires});const u=this.map.painter.context,d=u.gl,g=l.data;e.texture=this.map.painter.getTileTexture(g.width),e.texture?e.texture.update(g,{useMipmap:!0}):(e.texture=new s.T(u,g,d.RGBA,{useMipmap:!0}),e.texture.bind(d.LINEAR,d.CLAMP_TO_EDGE,d.LINEAR_MIPMAP_NEAREST)),e.state="loaded"}}catch(l){if(delete e.abortController,e.aborted)e.state="unloaded";else if(l)throw e.state="errored",l}}))}abortTile(e){return s._(this,void 0,void 0,(function*(){e.abortController&&(e.abortController.abort(),delete e.abortController)}))}unloadTile(e){return s._(this,void 0,void 0,(function*(){e.texture&&this.map.painter.saveTileTexture(e.texture)}))}hasTransition(){return!1}}class tr extends qt{constructor(e,i,l,u){super(e,i,l,u),this.type="raster-dem",this.maxzoom=22,this._options=s.e({type:"raster-dem"},i),this.encoding=i.encoding||"mapbox",this.redFactor=i.redFactor,this.greenFactor=i.greenFactor,this.blueFactor=i.blueFactor,this.baseShift=i.baseShift}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),l=this.map._requestManager.transformRequest(i,"Tile");e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.abortController=new AbortController;try{const u=yield Fe.getImage(l,e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(u&&u.data){const d=u.data;this.map._refreshExpiredTiles&&(u.cacheControl||u.expires)&&e.setExpiryData({cacheControl:u.cacheControl,expires:u.expires});const g=s.b(d)&&s.W()?d:yield this.readImageNow(d),w={type:this.type,uid:e.uid,source:this.id,rawImageData:g,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!e.actor||e.state==="expired"){e.actor=this.dispatcher.getActor();const C=yield e.actor.sendAsync({type:"LDT",data:w});e.dem=C,e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.state="loaded"}}}catch(u){if(delete e.abortController,e.aborted)e.state="unloaded";else if(u)throw e.state="errored",u}}))}readImageNow(e){return s._(this,void 0,void 0,(function*(){if(typeof VideoFrame<"u"&&s.X()){const i=e.width+2,l=e.height+2;try{return new s.R({width:i,height:l},yield s.Y(e,-1,-1,i,l))}catch{}}return ie.getImageData(e,1)}))}_getNeighboringTiles(e){const i=e.canonical,l=Math.pow(2,i.z),u=(i.x-1+l)%l,d=i.x===0?e.wrap-1:e.wrap,g=(i.x+1+l)%l,w=i.x+1===l?e.wrap+1:e.wrap,C={};return C[new s.Z(e.overscaledZ,d,i.z,u,i.y).key]={backfilled:!1},C[new s.Z(e.overscaledZ,w,i.z,g,i.y).key]={backfilled:!1},i.y>0&&(C[new s.Z(e.overscaledZ,d,i.z,u,i.y-1).key]={backfilled:!1},C[new s.Z(e.overscaledZ,e.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},C[new s.Z(e.overscaledZ,w,i.z,g,i.y-1).key]={backfilled:!1}),i.y+1i.coordinates)).flat(1/0):e.coordinates.flat(1/0)}getBounds(){return s._(this,void 0,void 0,(function*(){const e=new mt,i=yield this.getData();let l;switch(i.type){case"FeatureCollection":l=i.features.map((u=>this.getCoordinatesFromGeometry(u.geometry))).flat(1/0);break;case"Feature":l=this.getCoordinatesFromGeometry(i.geometry);break;default:l=this.getCoordinatesFromGeometry(i)}if(l.length==0)return e;for(let u=0;u0&&s.e(g,{resourceTiming:d}),this.fire(new s.l("data",Object.assign(Object.assign({},g),{sourceDataType:"metadata"}))),this.fire(new s.l("data",Object.assign(Object.assign({},g),{sourceDataType:"content"})))}catch(u){if(this._isUpdatingWorker=!1,this._removed)return void this.fire(new s.l("dataabort",{dataType:"source"}));this.fire(new s.k(u))}finally{(this._pendingWorkerUpdate.data||this._pendingWorkerUpdate.diff)&&this._updateWorkerData()}}))}loaded(){return!this._isUpdatingWorker&&this._pendingWorkerUpdate.data===void 0&&this._pendingWorkerUpdate.diff===void 0}loadTile(e){return s._(this,void 0,void 0,(function*(){const i=e.actor?"RT":"LT";e.actor=this.actor;const l={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,globalState:this.map.getGlobalState()};e.abortController=new AbortController;const u=yield this.actor.sendAsync({type:i,data:l},e.abortController);delete e.abortController,e.unloadVectorData(),e.aborted||e.loadVectorData(u,this.map.painter,i==="RT")}))}abortTile(e){return s._(this,void 0,void 0,(function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.aborted=!0}))}unloadTile(e){return s._(this,void 0,void 0,(function*(){e.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:e.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 s.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}class Ot extends s.E{constructor(e,i,l,u){super(),this.flippedWindingOrder=!1,this.id=e,this.dispatcher=l,this.coordinates=i.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(u),this.options=i}load(e){return s._(this,void 0,void 0,(function*(){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const i=yield Fe.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,i&&i.data&&(this.image=i.data,e&&(this.coordinates=e),this._finishLoading())}catch(i){this._request=null,this._loaded=!0,this.fire(new s.k(i))}}))}loaded(){return this._loaded}updateImage(e){return e.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=e.url,this.load(e.coordinates).finally((()=>{this.texture=null})),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(e){this.map=e,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(e){this.coordinates=e;const i=e.map(s.a1.fromLngLat);var l;return this.tileID=(function(u){const d=s.a2.fromPoints(u),g=d.width(),w=d.height(),C=Math.max(g,w),P=Math.max(0,Math.floor(-Math.log(C)/Math.LN2)),A=Math.pow(2,P);return new s.a4(P,Math.floor((d.minX+d.maxX)/2*A),Math.floor((d.minY+d.maxY)/2*A))})(i),this.terrainTileRanges=this._getOverlappingTileRanges(i),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=i.map((u=>this.tileID.getTilePoint(u)._round())),this.flippedWindingOrder=((l=this.tileCoords)[1].x-l[0].x)*(l[2].y-l[0].y)-(l[1].y-l[0].y)*(l[2].x-l[0].x)<0,this.fire(new s.l("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const e=this.map.painter.context,i=e.gl;this.texture||(this.texture=new s.T(e,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let l=!1;for(const u in this.tiles){const d=this.tiles[u];d.state!=="loaded"&&(d.state="loaded",d.texture=this.texture,l=!0)}l&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(e){return s._(this,void 0,void 0,(function*(){this.tileID&&this.tileID.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={}):e.state="errored"}))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}_getOverlappingTileRanges(e){const{minX:i,minY:l,maxX:u,maxY:d}=s.a2.fromPoints(e),g={};for(let w=0;w<=s.a3;w++){const C=Math.pow(2,w),P=Math.floor(i*C),A=Math.floor(l*C),R=Math.floor(u*C),D=Math.floor(d*C);g[w]={minTileX:P,minTileY:A,maxTileX:R,maxTileY:D}}return g}}class fr extends Ot{constructor(e,i,l,u){super(e,i,l,u),this.roundZoom=!0,this.type="video",this.options=i}load(){return s._(this,void 0,void 0,(function*(){this._loaded=!1;const e=this.options;this.urls=[];for(const i of e.urls)this.urls.push(this.map._requestManager.transformRequest(i,"Source").url);try{const i=yield s.a5(this.urls);if(this._loaded=!0,!i)return;this.video=i,this.video.loop=!0,this.video.addEventListener("playing",(()=>{this.map.triggerRepaint()})),this.map&&this.video.play(),this._finishLoading()}catch(i){this.fire(new s.k(i))}}))}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(e){if(this.video){const i=this.video.seekable;ei.end(0)?this.fire(new s.k(new s.a6(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=e}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const e=this.map.painter.context,i=e.gl;this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new s.T(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let l=!1;for(const u in this.tiles){const d=this.tiles[u];d.state!=="loaded"&&(d.state="loaded",d.texture=this.texture,l=!0)}l&&this.fire(new s.l("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 kr extends Ot{constructor(e,i,l,u){super(e,i,l,u),i.coordinates?Array.isArray(i.coordinates)&&i.coordinates.length===4&&!i.coordinates.some((d=>!Array.isArray(d)||d.length!==2||d.some((g=>typeof g!="number"))))||this.fire(new s.k(new s.a6(`sources.${e}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.k(new s.a6(`sources.${e}`,null,'missing required property "coordinates"'))),i.animate&&typeof i.animate!="boolean"&&this.fire(new s.k(new s.a6(`sources.${e}`,null,'optional "animate" property must be a boolean value'))),i.canvas?typeof i.canvas=="string"||i.canvas instanceof HTMLCanvasElement||this.fire(new s.k(new s.a6(`sources.${e}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new s.k(new s.a6(`sources.${e}`,null,'missing required property "canvas"'))),this.options=i,this.animate=i.animate===void 0||i.animate}load(){return s._(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 s.k(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(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const i=this.map.painter.context,l=i.gl;this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new s.T(i,this.canvas,l.RGBA,{premultiply:!0});let u=!1;for(const d in this.tiles){const g=this.tiles[d];g.state!=="loaded"&&(g.state="loaded",g.texture=this.texture,u=!0)}u&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const e of[this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return!0;return!1}}const Ar={},rr=h=>{switch(h){case"geojson":return Qt;case"image":return Ot;case"raster":return qt;case"raster-dem":return tr;case"vector":return zt;case"video":return fr;case"canvas":return kr}return Ar[h]},Kt="RTLPluginLoaded";class or extends s.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=at()}_syncState(e){return this.status=e,this.dispatcher.broadcast("SRPS",{pluginStatus:e,pluginURL:this.url}).catch((i=>{throw this.status="error",i}))}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(e){return s._(this,arguments,void 0,(function*(i,l=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=ie.resolveURL(i),!this.url)throw new Error(`requested url ${i} is invalid`);if(this.status==="unavailable"){if(!l)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()}))}_requestImport(){return s._(this,void 0,void 0,(function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new s.l(Kt))}))}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let Sr=null;function Dr(){return Sr||(Sr=new or),Sr}class Zr{constructor(e,i){this.timeAdded=0,this.fadeEndTime=0,this.tileID=e,this.uid=s.a7(),this.uses=0,this.tileSize=i,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(e){const i=e+this.timeAdded;id.getLayer(P))).filter(Boolean);if(C.length!==0){w.layers=C,w.stateDependentLayerIds&&(w.stateDependentLayers=w.stateDependentLayerIds.map((P=>C.filter((A=>A.id===P))[0])));for(const P of C)g[P.id]=w}}return g})(e.buckets,i==null?void 0:i.style),this.hasSymbolBuckets=!1;for(const u in this.buckets){const d=this.buckets[u];if(d instanceof s.a9){if(this.hasSymbolBuckets=!0,!l)break;d.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const u in this.buckets){const d=this.buckets[u];if(d instanceof s.a9&&d.hasRTLText){this.hasRTLText=!0,Dr().lazyLoad();break}}this.queryPadding=0;for(const u in this.buckets){const d=this.buckets[u];this.queryPadding=Math.max(this.queryPadding,i.style.getLayer(u).queryRadius(d))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage)}else this.collisionBoxArray=new s.a8}unloadVectorData(){for(const e in this.buckets)this.buckets[e].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(e){return this.buckets[e.id]}upload(e){for(const l in this.buckets){const u=this.buckets[l];u.uploadPending()&&u.upload(e)}const i=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new s.T(e,this.imageAtlas.image,i.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new s.T(e,this.glyphAtlasImage,i.ALPHA),this.glyphAtlasImage=null)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,i,l,u,d,g,w,C,P,A,R){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:u,cameraQueryGeometry:d,scale:g,tileSize:this.tileSize,pixelPosMatrix:A,transform:C,params:w,queryPadding:this.queryPadding*P,getElevation:R},e,i,l):{}}querySourceFeatures(e,i){const l=this.latestFeatureIndex;if(!l||!l.rawTileData)return;const u=l.loadVTLayers(),d=i&&i.sourceLayer?i.sourceLayer:"",g=u._geojsonTileLayer||u[d];if(!g)return;const w=s.aa(i&&i.filter),{z:C,x:P,y:A}=this.tileID.canonical,R={z:C,x:P,y:A};for(let D=0;Dl)u=!1;else if(i)if(this.expirationTime{this.remove(e,d)}),l)),this.data[u].push(d),this.order.push(u),this.order.length>this.max){const g=this._getAndRemoveByKey(this.order[0]);g&&this.onRemove(g)}return this}has(e){return e.wrapped().key in this.data}getAndRemove(e){return this.has(e)?this._getAndRemoveByKey(e.wrapped().key):null}_getAndRemoveByKey(e){const i=this.data[e].shift();return i.timeout&&clearTimeout(i.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),i.value}getByKey(e){const i=this.data[e];return i?i[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,i){if(!this.has(e))return this;const l=e.wrapped().key,u=i===void 0?0:this.data[l].indexOf(i),d=this.data[l][u];return this.data[l].splice(u,1),d.timeout&&clearTimeout(d.timeout),this.data[l].length===0&&delete this.data[l],this.onRemove(d.value),this.order.splice(this.order.indexOf(l),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const i=this._getAndRemoveByKey(this.order[0]);i&&this.onRemove(i)}return this}filter(e){const i=[];for(const l in this.data)for(const u of this.data[l])e(u.value)||i.push(u);for(const l of i)this.remove(l.value.tileID,l)}}class j{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(e,i,l){const u=String(i);if(this.stateChanges[e]=this.stateChanges[e]||{},this.stateChanges[e][u]=this.stateChanges[e][u]||{},s.e(this.stateChanges[e][u],l),this.deletedStates[e]===null){this.deletedStates[e]={};for(const d in this.state[e])d!==u&&(this.deletedStates[e][d]=null)}else if(this.deletedStates[e]&&this.deletedStates[e][u]===null){this.deletedStates[e][u]={};for(const d in this.state[e][u])l[d]||(this.deletedStates[e][u][d]=null)}else for(const d in l)this.deletedStates[e]&&this.deletedStates[e][u]&&this.deletedStates[e][u][d]===null&&delete this.deletedStates[e][u][d]}removeFeatureState(e,i,l){if(this.deletedStates[e]===null)return;const u=String(i);if(this.deletedStates[e]=this.deletedStates[e]||{},l&&i!==void 0)this.deletedStates[e][u]!==null&&(this.deletedStates[e][u]=this.deletedStates[e][u]||{},this.deletedStates[e][u][l]=null);else if(i!==void 0)if(this.stateChanges[e]&&this.stateChanges[e][u])for(l in this.deletedStates[e][u]={},this.stateChanges[e][u])this.deletedStates[e][u][l]=null;else this.deletedStates[e][u]=null;else this.deletedStates[e]=null}getState(e,i){const l=String(i),u=s.e({},(this.state[e]||{})[l],(this.stateChanges[e]||{})[l]);if(this.deletedStates[e]===null)return{};if(this.deletedStates[e]){const d=this.deletedStates[e][i];if(d===null)return{};for(const g in d)delete u[g]}return u}initializeTileState(e,i){e.setFeatureState(this.state,i)}coalesceChanges(e,i){const l={};for(const u in this.stateChanges){this.state[u]=this.state[u]||{};const d={};for(const g in this.stateChanges[u])this.state[u][g]||(this.state[u][g]={}),s.e(this.state[u][g],this.stateChanges[u][g]),d[g]=this.state[u][g];l[u]=d}for(const u in this.deletedStates){this.state[u]=this.state[u]||{};const d={};if(this.deletedStates[u]===null)for(const g in this.state[u])d[g]={},this.state[u][g]={};else for(const g in this.deletedStates[u]){if(this.deletedStates[u][g]===null)this.state[u][g]={};else for(const w of Object.keys(this.deletedStates[u][g]))delete this.state[u][g][w];d[g]=this.state[u][g]}l[u]=l[u]||{},s.e(l[u],d)}if(this.stateChanges={},this.deletedStates={},Object.keys(l).length!==0)for(const u in e)e[u].setFeatureState(l,i)}}const Z=89.25;function X(h,e){const i=s.ah(e.lat,-s.ai,s.ai);return new s.P(s.V(e.lng)*h,s.U(i)*h)}function ae(h,e){return new s.a1(e.x/h,e.y/h).toLngLat()}function de(h){return h.cameraToCenterDistance*Math.min(.85*Math.tan(s.ae(90-h.pitch)),Math.tan(s.ae(Z-h.pitch)))}function Se(h,e){const i=h.canonical,l=e/s.af(i.z),u=i.x+Math.pow(2,i.z)*h.wrap,d=s.ag(new Float64Array(16));return s.M(d,d,[u*l,i.y*l,0]),s.N(d,d,[l/s.$,l/s.$,1]),d}function Ie(h,e,i,l,u){const d=s.a1.fromLngLat(h,e),g=u*s.aj(1,h.lat),w=g*Math.cos(s.ae(i)),C=Math.sqrt(g*g-w*w),P=C*Math.sin(s.ae(-l)),A=C*Math.cos(s.ae(-l));return new s.a1(d.x+P,d.y+A,d.z+w)}function be(h,e,i){const l=e.intersectsFrustum(h);if(!i||l===0)return l;const u=e.intersectsPlane(i);return u===0?0:l===2&&u===2?2:1}function Oe(h,e,i){let l=0;const u=(i-e)/10;for(let d=0;d<10;d++)l+=u*Math.pow(Math.cos(e+(d+.5)/10*(i-e)),h);return l}function st(h,e){return function(i,l,u,d,g){const w=2*((h-1)/s.ak(Math.cos(s.ae(Z-g))/Math.cos(s.ae(Z)))-1),C=Math.acos(u/d),P=2*Oe(w-1,0,s.ae(g/2)),A=Math.min(s.ae(Z),C+s.ae(g/2)),R=Oe(w-1,Math.min(A,C-s.ae(g/2)),A),D=Math.atan(l/u),O=Math.hypot(l,u);let $=i;return $+=s.ak(d/O/Math.max(.5,Math.cos(s.ae(g/2)))),$+=w*s.ak(Math.cos(D))/2,$-=s.ak(Math.max(1,R/P/e))/2,$}}const $e=st(9.314,3);function Mt(h,e){const i=(e.roundZoom?Math.round:Math.floor)(h.zoom+s.ak(h.tileSize/e.tileSize));return Math.max(0,i)}function xe(h,e){const i=h.getCameraFrustum(),l=h.getClippingPlane(),u=h.screenPointToMercatorCoordinate(h.getCameraPoint()),d=s.a1.fromLngLat(h.center,h.elevation);u.z=d.z+Math.cos(h.pitchInRadians)*h.cameraToCenterDistance/h.worldSize;const g=h.getCoveringTilesDetailsProvider(),w=g.allowVariableZoom(h,e),C=Mt(h,e),P=e.minzoom||0,A=e.maxzoom!==void 0?e.maxzoom:h.maxZoom,R=Math.min(Math.max(0,C),A),D=Math.pow(2,R),O=[D*u.x,D*u.y,0],$=[D*d.x,D*d.y,0],ee=Math.hypot(d.x-u.x,d.y-u.y),Q=Math.abs(d.z-u.z),ne=Math.hypot(ee,Q),ue=we=>({zoom:0,x:0,y:0,wrap:we,fullyVisible:!1}),_e=[],he=[];if(h.renderWorldCopies&&g.allowWorldCopies())for(let we=1;we<=3;we++)_e.push(ue(-we)),_e.push(ue(we));for(_e.push(ue(0));_e.length>0;){const we=_e.pop(),Pe=we.x,pe=we.y;let Be=we.fullyVisible;const Qe={x:Pe,y:pe,z:we.zoom},Ue=g.getTileBoundingVolume(Qe,we.wrap,h.elevation,e);if(!Be){const Zt=be(i,Ue,l);if(Zt===0)continue;Be=Zt===2}const We=g.distanceToTile2d(u.x,u.y,Qe,Ue);let Je=C;w&&(Je=(e.calculateTileZoom||$e)(h.zoom+s.ak(h.tileSize/e.tileSize),We,Q,ne,h.fov)),Je=(e.roundZoom?Math.round:Math.floor)(Je),Je=Math.max(0,Je);const Nt=Math.min(Je,A);if(we.wrap=g.getWrap(d,Qe,we.wrap),we.zoom>=Nt){if(we.zoom>1),wrap:we.wrap,fullyVisible:Be})}return he.sort(((we,Pe)=>we.distanceSq-Pe.distanceSq)).map((we=>we.tileID))}const Ft=s.a2.fromPoints([new s.P(0,0),new s.P(s.$,s.$)]);class cr extends s.E{constructor(e,i,l){super(),this.id=e,this.dispatcher=l,this.on("data",(u=>this._dataHandler(u))),this.on("dataloading",(()=>{this._sourceErrored=!1})),this.on("error",(()=>{this._sourceErrored=this._source.loaded()})),this._source=((u,d,g,w)=>{const C=new(rr(d.type))(u,d,g,w);if(C.id!==u)throw new Error(`Expected Source id to be ${u} instead of ${C.id}`);return C})(e,i,l,this),this._tiles={},this._cache=new se(0,(u=>this._unloadTile(u))),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new j,this._didEmitContent=!1,this._updated=!1}onAdd(e){this.map=e,this._maxTileCacheSize=e?e._maxTileCacheSize:null,this._maxTileCacheZoomLevels=e?e._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(e)}onRemove(e){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(e)}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 e in this._tiles){const i=this._tiles[e];if(i.state!=="loaded"&&i.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(e,i,l){return s._(this,void 0,void 0,(function*(){try{yield this._source.loadTile(e),this._tileLoaded(e,i,l)}catch(u){e.state="errored",u.status!==404?this._source.fire(new s.k(u,{tile:e})):this.update(this.transform,this.terrain)}}))}_unloadTile(e){this._source.unloadTile&&this._source.unloadTile(e)}_abortTile(e){this._source.abortTile&&this._source.abortTile(e),this._source.fire(new s.l("dataabort",{tile:e,coord:e.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const i in this._tiles){const l=this._tiles[i];l.upload(e),l.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map((e=>e.tileID)).sort(Jt).map((e=>e.key))}getRenderableIds(e){const i=[];for(const l in this._tiles)this._isIdRenderable(l,e)&&i.push(this._tiles[l]);return e?i.sort(((l,u)=>{const d=l.tileID,g=u.tileID,w=new s.P(d.canonical.x,d.canonical.y)._rotate(-this.transform.bearingInRadians),C=new s.P(g.canonical.x,g.canonical.y)._rotate(-this.transform.bearingInRadians);return d.overscaledZ-g.overscaledZ||C.y-w.y||C.x-w.x})).map((l=>l.tileID.key)):i.map((l=>l.tileID)).sort(Jt).map((l=>l.key))}hasRenderableParent(e){const i=this.findLoadedParent(e,0);return!!i&&this._isIdRenderable(i.tileID.key)}_isIdRenderable(e,i){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(i||!this._tiles[e].holdingForFade())}reload(e){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const i in this._tiles)e?this._reloadTile(i,"expired"):this._tiles[i].state!=="errored"&&this._reloadTile(i,"reloading")}}_reloadTile(e,i){return s._(this,void 0,void 0,(function*(){const l=this._tiles[e];l&&(l.state!=="loading"&&(l.state=i),yield this._loadTile(l,e,i))}))}_tileLoaded(e,i,l){e.timeAdded=ie.now(),l==="expired"&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(i,e),this.getSource().type==="raster-dem"&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),e.aborted||this._source.fire(new s.l("data",{dataType:"source",tile:e,coord:e.tileID}))}_backfillDEM(e){const i=this.getRenderableIds();for(let u=0;u1||(Math.abs(g)>1&&(Math.abs(g+C)===1?g+=C:Math.abs(g-C)===1&&(g-=C)),d.dem&&u.dem&&(u.dem.backfillBorder(d.dem,g,w),u.neighboringTiles&&u.neighboringTiles[P]&&(u.neighboringTiles[P].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,i,l,u){for(const d in this._tiles){let g=this._tiles[d];if(u[d]||!g.hasData()||g.tileID.overscaledZ<=i||g.tileID.overscaledZ>l)continue;let w=g.tileID;for(;g&&g.tileID.overscaledZ>i+1;){const P=g.tileID.scaledTo(g.tileID.overscaledZ-1);g=this._tiles[P.key],g&&g.hasData()&&(w=P)}let C=w;for(;C.overscaledZ>i;)if(C=C.scaledTo(C.overscaledZ-1),e[C.key]||e[C.canonical.key]){u[w.key]=w;break}}}findLoadedParent(e,i){if(e.key in this._loadedParentTiles){const l=this._loadedParentTiles[e.key];return l&&l.tileID.overscaledZ>=i?l:null}for(let l=e.overscaledZ-1;l>=i;l--){const u=e.scaledTo(l),d=this._getLoadedTile(u);if(d)return d}}findLoadedSibling(e){return this._getLoadedTile(e)}_getLoadedTile(e){const i=this._tiles[e.key];return i&&i.hasData()?i:this._cache.getByKey(e.wrapped().key)}updateCacheSize(e){const i=Math.ceil(e.width/this._source.tileSize)+1,l=Math.ceil(e.height/this._source.tileSize)+1,u=Math.floor(i*l*(this._maxTileCacheZoomLevels===null?s.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),d=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,u):u;this._cache.setMaxSize(d)}handleWrapJump(e){const i=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,i){const l={};for(const u in this._tiles){const d=this._tiles[u];d.tileID=d.tileID.unwrapTo(d.tileID.wrap+i),l[d.tileID.key]=d}this._tiles=l;for(const u in this._timers)clearTimeout(this._timers[u]),delete this._timers[u];for(const u in this._tiles)this._setTileReloadTimer(u,this._tiles[u])}}_updateCoveredAndRetainedTiles(e,i,l,u,d,g){const w={},C={},P=Object.keys(e),A=ie.now();for(const R of P){const D=e[R],O=this._tiles[R];if(!O||O.fadeEndTime!==0&&O.fadeEndTime<=A)continue;const $=this.findLoadedParent(D,i),ee=this.findLoadedSibling(D),Q=$||ee||null;Q&&(this._addTile(Q.tileID),w[Q.tileID.key]=Q.tileID),C[R]=D}this._retainLoadedChildren(C,u,l,e);for(const R in w)e[R]||(this._coveredTiles[R]=!0,e[R]=w[R]);if(g){const R={},D={};for(const O of d)this._tiles[O.key].hasData()?R[O.key]=O:D[O.key]=O;for(const O in D){const $=D[O].children(this._source.maxzoom);this._tiles[$[0].key]&&this._tiles[$[1].key]&&this._tiles[$[2].key]&&this._tiles[$[3].key]&&(R[$[0].key]=e[$[0].key]=$[0],R[$[1].key]=e[$[1].key]=$[1],R[$[2].key]=e[$[2].key]=$[2],R[$[3].key]=e[$[3].key]=$[3],delete D[O])}for(const O in D){const $=D[O],ee=this.findLoadedParent($,this._source.minzoom),Q=this.findLoadedSibling($),ne=ee||Q||null;if(ne){R[ne.tileID.key]=e[ne.tileID.key]=ne.tileID;for(const ue in R)R[ue].isChildOf(ne.tileID)&&delete R[ue]}}for(const O in this._tiles)R[O]||(this._coveredTiles[O]=!0)}}update(e,i){if(!this._sourceLoaded||this._paused)return;let l;this.transform=e,this.terrain=i,this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?l=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((A=>new s.Z(A.canonical.z,A.wrap,A.canonical.z,A.canonical.x,A.canonical.y))):(l=xe(e,{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:i,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(l=l.filter((A=>this._source.hasTile(A))))):l=[];const u=Mt(e,this._source),d=Math.max(u-cr.maxOverzooming,this._source.minzoom),g=Math.max(u+cr.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const A={};for(const R of l)if(R.canonical.z>this._source.minzoom){const D=R.scaledTo(R.canonical.z-1);A[D.key]=D;const O=R.scaledTo(Math.max(this._source.minzoom,Math.min(R.canonical.z,5)));A[O.key]=O}l=l.concat(Object.values(A))}const w=l.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,w&&this.fire(new s.l("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const C=this._updateRetainedTiles(l,u);Tr(this._source.type)&&this._updateCoveredAndRetainedTiles(C,d,g,u,l,i);for(const A in C)this._tiles[A].clearFadeHold();const P=s.am(this._tiles,C);for(const A of P){const R=this._tiles[A];R.hasSymbolBuckets&&!R.holdingForFade()?R.setHoldDuration(this.map._fadeDuration):R.hasSymbolBuckets&&!R.symbolFadeFinished()||this._removeTile(A)}this._updateLoadedParentTileCache(),this._updateLoadedSiblingTileCache()}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(e)}_updateRetainedTiles(e,i){var l;const u={},d={},g=Math.max(i-cr.maxOverzooming,this._source.minzoom),w=Math.max(i+cr.maxUnderzooming,this._source.minzoom),C={};for(const P of e){const A=this._addTile(P);u[P.key]=P,A.hasData()||ithis._source.maxzoom){const D=P.children(this._source.maxzoom)[0],O=this.getTile(D);if(O&&O.hasData()){u[D.key]=D;continue}}else{const D=P.children(this._source.maxzoom);if(u[D[0].key]&&u[D[1].key]&&u[D[2].key]&&u[D[3].key])continue}let R=A.wasRequested();for(let D=P.overscaledZ-1;D>=g;--D){const O=P.scaledTo(D);if(d[O.key])break;if(d[O.key]=!0,A=this.getTile(O),!A&&R&&(A=this._addTile(O)),A){const $=A.hasData();if(($||!(!((l=this.map)===null||l===void 0)&&l.cancelPendingTileRequestsWhileZooming)||R)&&(u[O.key]=O),R=A.wasRequested(),$)break}}}return u}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const i=[];let l,u=this._tiles[e].tileID;for(;u.overscaledZ>0;){if(u.key in this._loadedParentTiles){l=this._loadedParentTiles[u.key];break}i.push(u.key);const d=u.scaledTo(u.overscaledZ-1);if(l=this._getLoadedTile(d),l)break;u=d}for(const d of i)this._loadedParentTiles[d]=l}}_updateLoadedSiblingTileCache(){this._loadedSiblingTiles={};for(const e in this._tiles){const i=this._tiles[e].tileID,l=this._getLoadedTile(i);this._loadedSiblingTiles[i.key]=l}}_addTile(e){let i=this._tiles[e.key];if(i)return i;i=this._cache.getAndRemove(e),i&&(this._setTileReloadTimer(e.key,i),i.tileID=e,this._state.initializeTileState(i,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,i)));const l=i;return i||(i=new Zr(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(i,e.key,i.state)),i.uses++,this._tiles[e.key]=i,l||this._source.fire(new s.l("dataloading",{tile:i,coord:i.tileID,dataType:"source"})),i}_setTileReloadTimer(e,i){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const l=i.getExpiryTimeout();l&&(this._timers[e]=setTimeout((()=>{this._reloadTile(e,"expired"),delete this._timers[e]}),l))}refreshTiles(e){for(const i in this._tiles)(this._isIdRenderable(i)||this._tiles[i].state=="errored")&&e.some((l=>l.equals(this._tiles[i].tileID.canonical)))&&this._reloadTile(i,"expired")}_removeTile(e){const i=this._tiles[e];i&&(i.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),i.uses>0||(i.hasData()&&i.state!=="reloading"?this._cache.add(i.tileID,i,i.getExpiryTimeout()):(i.aborted=!0,this._abortTile(i),this._unloadTile(i))))}_dataHandler(e){const i=e.sourceDataType;e.dataType==="source"&&i==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&e.dataType==="source"&&i==="content"&&(this.reload(e.sourceDataChanged),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(e);this._cache.reset()}tilesIn(e,i,l){const u=[],d=this.transform;if(!d)return u;const g=d.getCoveringTilesDetailsProvider().allowWorldCopies(),w=l?d.getCameraQueryGeometry(e):e,C=O=>d.screenPointToMercatorCoordinate(O,this.terrain),P=this.transformBbox(e,C,!g),A=this.transformBbox(w,C,!g),R=this.getIds(),D=s.a2.fromPoints(A);for(let O=0;Oue.getTilePoint(new s.a1(he.x,he.y))));if(_e.expandBy(ne),_e.intersects(Ft)){const he=P.map((Pe=>ue.getTilePoint(Pe))),we=A.map((Pe=>ue.getTilePoint(Pe)));u.push({tile:$,tileID:g?ue:ue.unwrapTo(0),queryGeometry:he,cameraQueryGeometry:we,scale:Q})}}}return u}transformBbox(e,i,l){let u=e.map(i);if(l){const d=s.a2.fromPoints(e);d.shrinkBy(.001*Math.min(d.width(),d.height()));const g=d.map(i);s.a2.fromPoints(u).covers(g)||(u=u.map((w=>w.x>.5?new s.a1(w.x-1,w.y,w.z):w)))}return u}getVisibleCoordinates(e){const i=this.getRenderableIds(e).map((l=>this._tiles[l].tileID));return this.transform&&this.transform.populateCache(i),i}hasTransition(){if(this._source.hasTransition())return!0;if(Tr(this._source.type)){const e=ie.now();for(const i in this._tiles)if(this._tiles[i].fadeEndTime>=e)return!0}return!1}setFeatureState(e,i,l){this._state.updateState(e=e||"_geojsonTileLayer",i,l)}removeFeatureState(e,i,l){this._state.removeFeatureState(e=e||"_geojsonTileLayer",i,l)}getFeatureState(e,i){return this._state.getState(e=e||"_geojsonTileLayer",i)}setDependencies(e,i,l){const u=this._tiles[e];u&&u.setDependencies(i,l)}reloadTilesForDependencies(e,i){for(const l in this._tiles)this._tiles[l].hasDependency(e,i)&&this._reloadTile(l,"reloading");this._cache.filter((l=>!l.hasDependency(e,i)))}}function Jt(h,e){const i=Math.abs(2*h.wrap)-+(h.wrap<0),l=Math.abs(2*e.wrap)-+(e.wrap<0);return h.overscaledZ-e.overscaledZ||l-i||e.canonical.y-h.canonical.y||e.canonical.x-h.canonical.x}function Tr(h){return h==="raster"||h==="image"||h==="video"}cr.maxOverzooming=10,cr.maxUnderzooming=3;class Xr{constructor(e,i){this.reset(e,i)}reset(e,i){this.points=e||[],this._distances=[0];for(let l=1;l0?(u-g)/w:0;return this.points[d].mult(1-C).add(this.points[i].mult(C))}}function dn(h,e){let i=!0;return h==="always"||h!=="never"&&e!=="never"||(i=!1),i}class xn{constructor(e,i,l){const u=this.boxCells=[],d=this.circleCells=[];this.xCellCount=Math.ceil(e/l),this.yCellCount=Math.ceil(i/l);for(let g=0;gthis.width||u<0||i>this.height)return[];const C=[];if(e<=0&&i<=0&&this.width<=l&&this.height<=u){if(d)return[{key:null,x1:e,y1:i,x2:l,y2:u}];for(let P=0;P0}hitTestCircle(e,i,l,u,d){const g=e-l,w=e+l,C=i-l,P=i+l;if(w<0||g>this.width||P<0||C>this.height)return!1;const A=[];return this._forEachCell(g,C,w,P,this._queryCellCircle,A,{hitTest:!0,overlapMode:u,circle:{x:e,y:i,radius:l},seenUids:{box:{},circle:{}}},d),A.length>0}_queryCell(e,i,l,u,d,g,w,C){const{seenUids:P,hitTest:A,overlapMode:R}=w,D=this.boxCells[d];if(D!==null){const $=this.bboxes;for(const ee of D)if(!P.box[ee]){P.box[ee]=!0;const Q=4*ee,ne=this.boxKeys[ee];if(e<=$[Q+2]&&i<=$[Q+3]&&l>=$[Q+0]&&u>=$[Q+1]&&(!C||C(ne))&&(!A||!dn(R,ne.overlapMode))&&(g.push({key:ne,x1:$[Q],y1:$[Q+1],x2:$[Q+2],y2:$[Q+3]}),A))return!0}}const O=this.circleCells[d];if(O!==null){const $=this.circles;for(const ee of O)if(!P.circle[ee]){P.circle[ee]=!0;const Q=3*ee,ne=this.circleKeys[ee];if(this._circleAndRectCollide($[Q],$[Q+1],$[Q+2],e,i,l,u)&&(!C||C(ne))&&(!A||!dn(R,ne.overlapMode))){const ue=$[Q],_e=$[Q+1],he=$[Q+2];if(g.push({key:ne,x1:ue-he,y1:_e-he,x2:ue+he,y2:_e+he}),A)return!0}}}return!1}_queryCellCircle(e,i,l,u,d,g,w,C){const{circle:P,seenUids:A,overlapMode:R}=w,D=this.boxCells[d];if(D!==null){const $=this.bboxes;for(const ee of D)if(!A.box[ee]){A.box[ee]=!0;const Q=4*ee,ne=this.boxKeys[ee];if(this._circleAndRectCollide(P.x,P.y,P.radius,$[Q+0],$[Q+1],$[Q+2],$[Q+3])&&(!C||C(ne))&&!dn(R,ne.overlapMode))return g.push(!0),!0}}const O=this.circleCells[d];if(O!==null){const $=this.circles;for(const ee of O)if(!A.circle[ee]){A.circle[ee]=!0;const Q=3*ee,ne=this.circleKeys[ee];if(this._circlesCollide($[Q],$[Q+1],$[Q+2],P.x,P.y,P.radius)&&(!C||C(ne))&&!dn(R,ne.overlapMode))return g.push(!0),!0}}}_forEachCell(e,i,l,u,d,g,w,C){const P=this._convertToXCellCoord(e),A=this._convertToYCellCoord(i),R=this._convertToXCellCoord(l),D=this._convertToYCellCoord(u);for(let O=P;O<=R;O++)for(let $=A;$<=D;$++)if(d.call(this,e,i,l,u,this.xCellCount*$+O,g,w,C))return}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,i,l,u,d,g){const w=u-e,C=d-i,P=l+g;return P*P>w*w+C*C}_circleAndRectCollide(e,i,l,u,d,g,w){const C=(g-u)/2,P=Math.abs(e-(u+C));if(P>C+l)return!1;const A=(w-d)/2,R=Math.abs(i-(d+A));if(R>A+l)return!1;if(P<=C||R<=A)return!0;const D=P-C,O=R-A;return D*D+O*O<=l*l}}function mn(h,e,i){const l=s.L();if(!h){const{vecSouth:R,vecEast:D}=Et(e),O=N();O[0]=D[0],O[1]=D[1],O[2]=R[0],O[3]=R[1],u=O,(A=(g=(d=O)[0])*(P=d[3])-(C=d[2])*(w=d[1]))&&(u[0]=P*(A=1/A),u[1]=-w*A,u[2]=-C*A,u[3]=g*A),l[0]=O[0],l[1]=O[1],l[4]=O[2],l[5]=O[3]}var u,d,g,w,C,P,A;return s.N(l,l,[1/i,1/i,1]),l}function jt(h,e,i,l){if(h){const u=s.L();if(!e){const{vecSouth:d,vecEast:g}=Et(i);u[0]=g[0],u[1]=g[1],u[4]=d[0],u[5]=d[1]}return s.N(u,u,[l,l,1]),u}return i.pixelsToClipSpaceMatrix}function Et(h){const e=Math.cos(h.rollInRadians),i=Math.sin(h.rollInRadians),l=Math.cos(h.pitchInRadians),u=Math.cos(h.bearingInRadians),d=Math.sin(h.bearingInRadians),g=s.ar();g[0]=-u*l*i-d*e,g[1]=-d*l*i+u*e;const w=s.as(g);w<1e-9?s.at(g):s.au(g,g,1/w);const C=s.ar();C[0]=u*l*e-d*i,C[1]=d*l*e+u*i;const P=s.as(C);return P<1e-9?s.at(C):s.au(C,C,1/P),{vecEast:C,vecSouth:g}}function hr(h,e,i,l){let u;l?(u=[h,e,l(h,e),1],s.aw(u,u,i)):(u=[h,e,0,1],En(u,u,i));const d=u[3];return{point:new s.P(u[0]/d,u[1]/d),signedDistanceFromCamera:d,isOccluded:!1}}function ht(h,e){return .5+h/e*.5}function Hr(h,e){return h.x>=-e[0]&&h.x<=e[0]&&h.y>=-e[1]&&h.y<=e[1]}function Yr(h,e,i,l,u,d,g,w,C,P,A,R,D){const O=i?h.textSizeData:h.iconSizeData,$=s.an(O,e.transform.zoom),ee=[256/e.width*2+1,256/e.height*2+1],Q=i?h.text.dynamicLayoutVertexArray:h.icon.dynamicLayoutVertexArray;Q.clear();const ne=h.lineVertexArray,ue=i?h.text.placedSymbolArray:h.icon.placedSymbolArray,_e=e.transform.width/e.transform.height;let he=!1;for(let we=0;weMath.abs(i.x-e.x)*l?{useVertical:!0}:(h===s.ao.vertical?e.yi.x)?{needsFlipping:!0}:null}function Ge(h){const{projectionContext:e,pitchedLabelPlaneMatrixInverse:i,symbol:l,fontSize:u,flip:d,keepUpright:g,glyphOffsetArray:w,dynamicLayoutVertexArray:C,aspectRatio:P,rotateToLine:A}=h,R=u/24,D=l.lineOffsetX*R,O=l.lineOffsetY*R;let $;if(l.numGlyphs>1){const ee=l.glyphStartIndex+l.numGlyphs,Q=l.lineStartIndex,ne=l.lineStartIndex+l.lineLength,ue=qr(R,w,D,O,d,l,A,e);if(!ue)return{notEnoughRoom:!0};const _e=br(ue.first.point.x,ue.first.point.y,e,i),he=br(ue.last.point.x,ue.last.point.y,e,i);if(g&&!d){const we=_t(l.writingMode,_e,he,P);if(we)return we}$=[ue.first];for(let we=l.glyphStartIndex+1;we0?_e.point:At(e.tileAnchorPoint,ue,Q,1,e),we=br(Q.x,Q.y,e,i),Pe=br(he.x,he.y,e,i),pe=_t(l.writingMode,we,Pe,P);if(pe)return pe}const ee=pn(R*w.getoffsetX(l.glyphStartIndex),D,O,d,l.segment,l.lineStartIndex,l.lineStartIndex+l.lineLength,e,A);if(!ee||e.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};$=[ee]}for(const ee of $)s.av(C,ee.point,ee.angle);return{}}function At(h,e,i,l,u){const d=h.add(h.sub(e)._unit()),g=Yt(d.x,d.y,u).point,w=i.sub(g);return i.add(w._mult(l/w.mag()))}function Rt(h,e,i){const l=e.projectionCache;if(l.projections[h])return l.projections[h];const u=new s.P(e.lineVertexArray.getx(h),e.lineVertexArray.gety(h)),d=Yt(u.x,u.y,e);if(d.signedDistanceFromCamera>0)return l.projections[h]=d.point,l.anyProjectionOccluded=l.anyProjectionOccluded||d.isOccluded,d.point;const g=h-i.direction;return At(i.distanceFromAnchor===0?e.tileAnchorPoint:new s.P(e.lineVertexArray.getx(g),e.lineVertexArray.gety(g)),u,i.previousVertex,i.absOffsetX-i.distanceFromAnchor+1,e)}function Yt(h,e,i){const l=h+i.translation[0],u=e+i.translation[1];let d;return i.pitchWithMap?(d=hr(l,u,i.pitchedLabelPlaneMatrix,i.getElevation),d.isOccluded=!1):(d=i.transform.projectTileCoordinates(l,u,i.unwrappedTileID,i.getElevation),d.point.x=(.5*d.point.x+.5)*i.width,d.point.y=(.5*-d.point.y+.5)*i.height),d}function br(h,e,i,l){if(i.pitchWithMap){const u=[h,e,0,1];return s.aw(u,u,l),i.transform.projectTileCoordinates(u[0]/u[3],u[1]/u[3],i.unwrappedTileID,i.getElevation).point}return{x:h/i.width*2-1,y:1-e/i.height*2}}function Er(h,e,i){return i.transform.projectTileCoordinates(h,e,i.unwrappedTileID,i.getElevation)}function ur(h,e,i){return h._unit()._perp()._mult(e*i)}function rn(h,e,i,l,u,d,g,w,C){if(w.projectionCache.offsets[h])return w.projectionCache.offsets[h];const P=i.add(e);if(h+C.direction=u)return w.projectionCache.offsets[h]=P,P;const A=Rt(h+C.direction,w,C),R=ur(A.sub(i),g,C.direction),D=i.add(R),O=A.add(R);return w.projectionCache.offsets[h]=s.ax(d,P,D,O)||P,w.projectionCache.offsets[h]}function pn(h,e,i,l,u,d,g,w,C){const P=l?h-e:h+e;let A=P>0?1:-1,R=0;l&&(A*=-1,R=Math.PI),A<0&&(R+=Math.PI);let D,O=A>0?d+u:d+u+1;w.projectionCache.cachedAnchorPoint?D=w.projectionCache.cachedAnchorPoint:(D=Yt(w.tileAnchorPoint.x,w.tileAnchorPoint.y,w).point,w.projectionCache.cachedAnchorPoint=D);let $,ee,Q=D,ne=D,ue=0,_e=0;const he=Math.abs(P),we=[];let Pe;for(;ue+_e<=he;){if(O+=A,O=g)return null;ue+=_e,ne=Q,ee=$;const Qe={absOffsetX:he,direction:A,distanceFromAnchor:ue,previousVertex:ne};if(Q=Rt(O,w,Qe),i===0)we.push(ne),Pe=Q.sub(ne);else{let Ue;const We=Q.sub(ne);Ue=We.mag()===0?ur(Rt(O+A,w,Qe).sub(Q),i,A):ur(We,i,A),ee||(ee=ne.add(Ue)),$=rn(O,Ue,Q,d,g,ee,i,w,Qe),we.push(ee),Pe=$.sub(ee)}_e=Pe.mag()}const pe=Pe._mult((he-ue)/_e)._add(ee||ne),Be=R+Math.atan2(Q.y-ne.y,Q.x-ne.x);return we.push(pe),{point:pe,angle:C?Be:0,path:we}}const _n=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function sn(h,e){for(let i=0;i=1;Jr--)Zt.push(Je.path[Jr]);for(let Jr=1;JrAn.signedDistanceFromCamera<=0))?[]:Jr.map((An=>An.point))}let mr=[];if(Zt.length>0){const Jr=Zt[0].clone(),An=Zt[0].clone();for(let Bn=1;Bn=Qe.x&&An.x<=Ue.x&&Jr.y>=Qe.y&&An.y<=Ue.y?[Zt]:An.xUe.x||An.yUe.y?[]:s.ay([Zt],Qe.x,Qe.y,Ue.x,Ue.y)}for(const Jr of mr){We.reset(Jr,.25*Be);let An=0;An=We.length<=.5*Be?1:Math.ceil(We.paddedLength/Tt)+1;for(let Bn=0;Bn{const C=hr(w.x,w.y,g,d.getElevation),P=d.transform.projectTileCoordinates(C.point.x,C.point.y,d.unwrappedTileID,d.getElevation);return P.point.x=(.5*P.point.x+.5)*d.width,P.point.y=(.5*-P.point.y+.5)*d.height,P}))})(e,i);return(function(u){let d=0,g=0,w=0,C=0;for(let P=0;Pg&&(g=C,d=w));return u.slice(d,d+g)})(l)}queryRenderedSymbols(e){if(e.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};const i=[],l=new s.a2;for(const R of e){const D=new s.P(R.x+dr,R.y+dr);l.extend(D),i.push(D)}const{minX:u,minY:d,maxX:g,maxY:w}=l,C=this.grid.query(u,d,g,w).concat(this.ignoredGrid.query(u,d,g,w)),P={},A={};for(const R of C){const D=R.key;if(P[D.bucketInstanceId]===void 0&&(P[D.bucketInstanceId]={}),P[D.bucketInstanceId][D.featureIndex])continue;const O=[new s.P(R.x1,R.y1),new s.P(R.x2,R.y1),new s.P(R.x2,R.y2),new s.P(R.x1,R.y2)];s.az(i,O)&&(P[D.bucketInstanceId][D.featureIndex]=!0,A[D.bucketInstanceId]===void 0&&(A[D.bucketInstanceId]=[]),A[D.bucketInstanceId].push(D.featureIndex))}return A}insertCollisionBox(e,i,l,u,d,g){(l?this.ignoredGrid:this.grid).insert({bucketInstanceId:u,featureIndex:d,collisionGroupID:g,overlapMode:i},e[0],e[1],e[2],e[3])}insertCollisionCircles(e,i,l,u,d,g){const w=l?this.ignoredGrid:this.grid,C={bucketInstanceId:u,featureIndex:d,collisionGroupID:g,overlapMode:i};for(let P=0;P=this.screenRightBoundary||uthis.screenBottomBoundary}isInsideGrid(e,i,l,u){return l>=0&&e=0&&ithis.projectAndGetPerspectiveRatio(Tt.x,Tt.y,u,P,R)));Nt=Zt.some((Tt=>!Tt.isOccluded)),Je=Zt.map((Tt=>new s.P(Tt.x,Tt.y)))}else Nt=!0;return{box:s.aA(Je),allPointsOccluded:!Nt}}}class tn{constructor(e,i,l,u){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?i:-i))):u&&l?1:0,this.placed=l}isHidden(){return this.opacity===0&&!this.placed}}class Qr{constructor(e,i,l,u,d){this.text=new tn(e?e.text:null,i,l,d),this.icon=new tn(e?e.icon:null,i,u,d)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class ma{constructor(e,i,l){this.text=e,this.icon=i,this.skipFade=l}}class di{constructor(e,i,l,u,d){this.bucketInstanceId=e,this.featureIndex=i,this.sourceLayerIndex=l,this.bucketIndex=u,this.tileID=d}}class Xi{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={}}get(e){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[e]){const i=++this.maxGroupID;this.collisionGroups[e]={ID:i,predicate:l=>l.collisionGroupID===i}}return this.collisionGroups[e]}}function Zn(h,e,i,l,u){const{horizontalAlign:d,verticalAlign:g}=s.aH(h);return new s.P(-(d-.5)*e+l[0]*u,-(g-.5)*i+l[1]*u)}class ni{constructor(e,i,l,u,d){this.transform=e.clone(),this.terrain=i,this.collisionIndex=new In(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=l,this.retainedQueryData={},this.collisionGroups=new Xi(u),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=d,d&&(d.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(e){const i=this.terrain;return i?(l,u)=>i.getElevation(e,l,u):null}getBucketParts(e,i,l,u){const d=l.getBucket(i),g=l.latestFeatureIndex;if(!d||!g||i.id!==d.layerIds[0])return;const w=l.collisionBoxArray,C=d.layers[0].layout,P=d.layers[0].paint,A=Math.pow(2,this.transform.zoom-l.tileID.overscaledZ),R=l.tileSize/s.$,D=l.tileID.toUnwrapped(),O=C.get("text-rotation-alignment")==="map",$=s.aC(l,1,this.transform.zoom),ee=s.aD(this.collisionIndex.transform,l,P.get("text-translate"),P.get("text-translate-anchor")),Q=s.aD(this.collisionIndex.transform,l,P.get("icon-translate"),P.get("icon-translate-anchor")),ne=mn(O,this.transform,$);this.retainedQueryData[d.bucketInstanceId]=new di(d.bucketInstanceId,g,d.sourceLayerIndex,d.index,l.tileID);const ue={bucket:d,layout:C,translationText:ee,translationIcon:Q,unwrappedTileID:D,pitchedLabelPlaneMatrix:ne,scale:A,textPixelRatio:R,holdingForFade:l.holdingForFade(),collisionBoxArray:w,partiallyEvaluatedTextSize:s.an(d.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(d.sourceID)};if(u)for(const _e of d.sortKeyRanges){const{sortKey:he,symbolInstanceStart:we,symbolInstanceEnd:Pe}=_e;e.push({sortKey:he,symbolInstanceStart:we,symbolInstanceEnd:Pe,parameters:ue})}else e.push({symbolInstanceStart:0,symbolInstanceEnd:d.symbolInstances.length,parameters:ue})}attemptAnchorPlacement(e,i,l,u,d,g,w,C,P,A,R,D,O,$,ee,Q,ne,ue,_e,he){const we=s.aE[e.textAnchor],Pe=[e.textOffset0,e.textOffset1],pe=Zn(we,l,u,Pe,d),Be=this.collisionIndex.placeCollisionBox(i,D,C,P,A,w,g,Q,R.predicate,_e,pe,he);if((!ue||this.collisionIndex.placeCollisionBox(ue,D,C,P,A,w,g,ne,R.predicate,_e,pe,he).placeable)&&Be.placeable){let Qe;if(this.prevPlacement&&this.prevPlacement.variableOffsets[O.crossTileID]&&this.prevPlacement.placements[O.crossTileID]&&this.prevPlacement.placements[O.crossTileID].text&&(Qe=this.prevPlacement.variableOffsets[O.crossTileID].anchor),O.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[O.crossTileID]={textOffset:Pe,width:l,height:u,anchor:we,textBoxScale:d,prevAnchor:Qe},this.markUsedJustification($,we,O,ee),$.allowVerticalPlacement&&(this.markUsedOrientation($,ee,O),this.placedOrientations[O.crossTileID]=ee),{shift:pe,placedGlyphBoxes:Be}}}placeLayerBucketPart(e,i,l){const{bucket:u,layout:d,translationText:g,translationIcon:w,unwrappedTileID:C,pitchedLabelPlaneMatrix:P,textPixelRatio:A,holdingForFade:R,collisionBoxArray:D,partiallyEvaluatedTextSize:O,collisionGroup:$}=e.parameters,ee=d.get("text-optional"),Q=d.get("icon-optional"),ne=s.aF(d,"text-overlap","text-allow-overlap"),ue=ne==="always",_e=s.aF(d,"icon-overlap","icon-allow-overlap"),he=_e==="always",we=d.get("text-rotation-alignment")==="map",Pe=d.get("text-pitch-alignment")==="map",pe=d.get("icon-text-fit")!=="none",Be=d.get("symbol-z-order")==="viewport-y",Qe=ue&&(he||!u.hasIconData()||Q),Ue=he&&(ue||!u.hasTextData()||ee);!u.collisionArrays&&D&&u.deserializeCollisionBoxes(D);const We=this.retainedQueryData[u.bucketInstanceId].tileID,Je=this._getTerrainElevationFunc(We),Nt=this.transform.getFastPathSimpleProjectionMatrix(We),Zt=(Tt,mr,Jr)=>{var An,Bn;if(i[Tt.crossTileID])return;if(R)return void(this.placements[Tt.crossTileID]=new ma(!1,!1,!1));let Ln=!1,Hn=!1,Kn=!0,Kr=null,Fn={box:null,placeable:!1,offscreen:null,occluded:!1},si={placeable:!1},fi=null,Ti=null,Ui=null,za=0,go=0,vo=0;mr.textFeatureIndex?za=mr.textFeatureIndex:Tt.useRuntimeCollisionCircles&&(za=Tt.featureIndex),mr.verticalTextFeatureIndex&&(go=mr.verticalTextFeatureIndex);const fs=mr.textBox;if(fs){const ta=li=>{let mi=s.ao.horizontal;if(u.allowVerticalPlacement&&!li&&this.prevPlacement){const ba=this.prevPlacement.placedOrientations[Tt.crossTileID];ba&&(this.placedOrientations[Tt.crossTileID]=ba,mi=ba,this.markUsedOrientation(u,mi,Tt))}return mi},La=(li,mi)=>{if(u.allowVerticalPlacement&&Tt.numVerticalGlyphVertices>0&&mr.verticalTextBox){for(const ba of u.writingModes)if(ba===s.ao.vertical?(Fn=mi(),si=Fn):Fn=li(),Fn&&Fn.placeable)break}else Fn=li()},$i=Tt.textAnchorOffsetStartIndex,yo=Tt.textAnchorOffsetEndIndex;if(yo===$i){const li=(mi,ba)=>{const ci=this.collisionIndex.placeCollisionBox(mi,ne,A,We,C,Pe,we,g,$.predicate,Je,void 0,Nt);return ci&&ci.placeable&&(this.markUsedOrientation(u,ba,Tt),this.placedOrientations[Tt.crossTileID]=ba),ci};La((()=>li(fs,s.ao.horizontal)),(()=>{const mi=mr.verticalTextBox;return u.allowVerticalPlacement&&Tt.numVerticalGlyphVertices>0&&mi?li(mi,s.ao.vertical):{box:null,offscreen:null}})),ta(Fn&&Fn.placeable)}else{let li=s.aE[(Bn=(An=this.prevPlacement)===null||An===void 0?void 0:An.variableOffsets[Tt.crossTileID])===null||Bn===void 0?void 0:Bn.anchor];const mi=(ci,Js,_s)=>{const to=ci.x2-ci.x1,Da=ci.y2-ci.y1,xo=Tt.textBoxScale,Td=pe&&_e==="never"?Js:null;let la=null,Cd=ne==="never"?1:2,_u="never";li&&Cd++;for(let Wl=0;Wlmi(fs,mr.iconBox,s.ao.horizontal)),(()=>{const ci=mr.verticalTextBox;return u.allowVerticalPlacement&&(!Fn||!Fn.placeable)&&Tt.numVerticalGlyphVertices>0&&ci?mi(ci,mr.verticalIconBox,s.ao.vertical):{box:null,occluded:!0,offscreen:null}})),Fn&&(Ln=Fn.placeable,Kn=Fn.offscreen);const ba=ta(Fn&&Fn.placeable);if(!Ln&&this.prevPlacement){const ci=this.prevPlacement.variableOffsets[Tt.crossTileID];ci&&(this.variableOffsets[Tt.crossTileID]=ci,this.markUsedJustification(u,ci.anchor,Tt,ba))}}}if(fi=Fn,Ln=fi&&fi.placeable,Kn=fi&&fi.offscreen,Tt.useRuntimeCollisionCircles){const ta=u.text.placedSymbolArray.get(Tt.centerJustifiedTextSymbolIndex),La=s.ap(u.textSizeData,O,ta),$i=d.get("text-padding");Ti=this.collisionIndex.placeCollisionCircles(ne,ta,u.lineVertexArray,u.glyphOffsetArray,La,C,P,l,Pe,$.predicate,Tt.collisionCircleDiameter,$i,g,Je),Ti.circles.length&&Ti.collisionDetected&&!l&&s.w("Collisions detected, but collision boxes are not shown"),Ln=ue||Ti.circles.length>0&&!Ti.collisionDetected,Kn=Kn&&Ti.offscreen}if(mr.iconFeatureIndex&&(vo=mr.iconFeatureIndex),mr.iconBox){const ta=La=>this.collisionIndex.placeCollisionBox(La,_e,A,We,C,Pe,we,w,$.predicate,Je,pe&&Kr?Kr:void 0,Nt);si&&si.placeable&&mr.verticalIconBox?(Ui=ta(mr.verticalIconBox),Hn=Ui.placeable):(Ui=ta(mr.iconBox),Hn=Ui.placeable),Kn=Kn&&Ui.offscreen}const ms=ee||Tt.numHorizontalGlyphVertices===0&&Tt.numVerticalGlyphVertices===0,qo=Q||Tt.numIconVertices===0;ms||qo?qo?ms||(Hn=Hn&&Ln):Ln=Hn&&Ln:Hn=Ln=Hn&&Ln;const Zo=Hn&&Ui.placeable;if(Ln&&fi.placeable&&this.collisionIndex.insertCollisionBox(fi.box,ne,d.get("text-ignore-placement"),u.bucketInstanceId,si&&si.placeable&&go?go:za,$.ID),Zo&&this.collisionIndex.insertCollisionBox(Ui.box,_e,d.get("icon-ignore-placement"),u.bucketInstanceId,vo,$.ID),Ti&&Ln&&this.collisionIndex.insertCollisionCircles(Ti.circles,ne,d.get("text-ignore-placement"),u.bucketInstanceId,za,$.ID),l&&this.storeCollisionData(u.bucketInstanceId,Jr,mr,fi,Ui,Ti),Tt.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");if(u.bucketInstanceId===0)throw new Error("bucket.bucketInstanceId can't be 0");this.placements[Tt.crossTileID]=new ma((Ln||Qe)&&!(fi!=null&&fi.occluded),(Hn||Ue)&&!(Ui!=null&&Ui.occluded),Kn||u.justReloaded),i[Tt.crossTileID]=!0};if(Be){if(e.symbolInstanceStart!==0)throw new Error("bucket.bucketInstanceId should be 0");const Tt=u.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let mr=Tt.length-1;mr>=0;--mr){const Jr=Tt[mr];Zt(u.symbolInstances.get(Jr),u.collisionArrays[Jr],Jr)}}else for(let Tt=e.symbolInstanceStart;Tt=0&&(e.text.placedSymbolArray.get(w).crossTileID=d>=0&&w!==d?0:l.crossTileID)}markUsedOrientation(e,i,l){const u=i===s.ao.horizontal||i===s.ao.horizontalOnly?i:0,d=i===s.ao.vertical?i:0,g=[l.leftJustifiedTextSymbolIndex,l.centerJustifiedTextSymbolIndex,l.rightJustifiedTextSymbolIndex];for(const w of g)e.text.placedSymbolArray.get(w).placedOrientation=u;l.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(l.verticalPlacedTextSymbolIndex).placedOrientation=d)}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;const i=this.prevPlacement;let l=!1;this.prevZoomAdjustment=i?i.zoomAdjustment(this.transform.zoom):0;const u=i?i.symbolFadeChange(e):1,d=i?i.opacities:{},g=i?i.variableOffsets:{},w=i?i.placedOrientations:{};for(const C in this.placements){const P=this.placements[C],A=d[C];A?(this.opacities[C]=new Qr(A,u,P.text,P.icon),l=l||P.text!==A.text.placed||P.icon!==A.icon.placed):(this.opacities[C]=new Qr(null,u,P.text,P.icon,P.skipFade),l=l||P.text||P.icon)}for(const C in d){const P=d[C];if(!this.opacities[C]){const A=new Qr(P,u,!1,!1);A.isHidden()||(this.opacities[C]=A,l=l||P.text.placed||P.icon.placed)}}for(const C in g)this.variableOffsets[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.variableOffsets[C]=g[C]);for(const C in w)this.placedOrientations[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.placedOrientations[C]=w[C]);if(i&&i.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");l?this.lastPlacementChangeTime=e:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=i?i.lastPlacementChangeTime:e)}updateLayerOpacities(e,i){const l={};for(const u of i){const d=u.getBucket(e);d&&u.latestFeatureIndex&&e.id===d.layerIds[0]&&this.updateBucketOpacities(d,u.tileID,l,u.collisionBoxArray)}}updateBucketOpacities(e,i,l,u){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=!1),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=!1),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();const d=e.layers[0],g=d.layout,w=new Qr(null,0,!1,!1,!0),C=g.get("text-allow-overlap"),P=g.get("icon-allow-overlap"),A=d._unevaluatedLayout.hasValue("text-variable-anchor")||d._unevaluatedLayout.hasValue("text-variable-anchor-offset"),R=g.get("text-rotation-alignment")==="map",D=g.get("text-pitch-alignment")==="map",O=g.get("icon-text-fit")!=="none",$=new Qr(null,0,C&&(P||!e.hasIconData()||g.get("icon-optional")),P&&(C||!e.hasTextData()||g.get("text-optional")),!0);!e.collisionArrays&&u&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(u);const ee=(ne,ue,_e)=>{for(let he=0;he0,Be=this.placedOrientations[ue.crossTileID],Qe=Be===s.ao.vertical,Ue=Be===s.ao.horizontal||Be===s.ao.horizontalOnly;if(_e>0||he>0){const Je=Wt(Pe.text);ee(e.text,_e,Qe?Rr:Je),ee(e.text,he,Ue?Rr:Je);const Nt=Pe.text.isHidden();[ue.rightJustifiedTextSymbolIndex,ue.centerJustifiedTextSymbolIndex,ue.leftJustifiedTextSymbolIndex].forEach((mr=>{mr>=0&&(e.text.placedSymbolArray.get(mr).hidden=Nt||Qe?1:0)})),ue.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(ue.verticalPlacedTextSymbolIndex).hidden=Nt||Ue?1:0);const Zt=this.variableOffsets[ue.crossTileID];Zt&&this.markUsedJustification(e,Zt.anchor,ue,Be);const Tt=this.placedOrientations[ue.crossTileID];Tt&&(this.markUsedJustification(e,"left",ue,Tt),this.markUsedOrientation(e,Tt,ue))}if(pe){const Je=Wt(Pe.icon),Nt=!(O&&ue.verticalPlacedIconSymbolIndex&&Qe);ue.placedIconSymbolIndex>=0&&(ee(e.icon,ue.numIconVertices,Nt?Je:Rr),e.icon.placedSymbolArray.get(ue.placedIconSymbolIndex).hidden=Pe.icon.isHidden()),ue.verticalPlacedIconSymbolIndex>=0&&(ee(e.icon,ue.numVerticalIconVertices,Nt?Rr:Je),e.icon.placedSymbolArray.get(ue.verticalPlacedIconSymbolIndex).hidden=Pe.icon.isHidden())}const We=Q&&Q.has(ne)?Q.get(ne):{text:null,icon:null};if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){const Je=e.collisionArrays[ne];if(Je){let Nt=new s.P(0,0);if(Je.textBox||Je.verticalTextBox){let Zt=!0;if(A){const Tt=this.variableOffsets[we];Tt?(Nt=Zn(Tt.anchor,Tt.width,Tt.height,Tt.textOffset,Tt.textBoxScale),R&&Nt._rotate(D?-this.transform.bearingInRadians:this.transform.bearingInRadians)):Zt=!1}if(Je.textBox||Je.verticalTextBox){let Tt;Je.textBox&&(Tt=Qe),Je.verticalTextBox&&(Tt=Ue),qi(e.textCollisionBox.collisionVertexArray,Pe.text.placed,!Zt||Tt,We.text,Nt.x,Nt.y)}}if(Je.iconBox||Je.verticalIconBox){const Zt=!!(!Ue&&Je.verticalIconBox);let Tt;Je.iconBox&&(Tt=Zt),Je.verticalIconBox&&(Tt=!Zt),qi(e.iconCollisionBox.collisionVertexArray,Pe.icon.placed,Tt,We.icon,O?Nt.x:0,O?Nt.y:0)}}}}if(e.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);e.bucketInstanceId in this.collisionCircleArrays&&(e.collisionCircleArray=this.collisionCircleArrays[e.bucketInstanceId],delete this.collisionCircleArrays[e.bucketInstanceId])}symbolFadeChange(e){return this.fadeDuration===0?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTimee}setStale(){this.stale=!0}}function qi(h,e,i,l,u,d){l&&l.length!==0||(l=[0,0,0,0]);const g=l[0]-dr,w=l[1]-dr,C=l[2]-dr,P=l[3]-dr;h.emplaceBack(e?1:0,i?1:0,u||0,d||0,g,w),h.emplaceBack(e?1:0,i?1:0,u||0,d||0,C,w),h.emplaceBack(e?1:0,i?1:0,u||0,d||0,C,P),h.emplaceBack(e?1:0,i?1:0,u||0,d||0,g,P)}const Yi=Math.pow(2,25),Ei=Math.pow(2,24),zi=Math.pow(2,17),Ki=Math.pow(2,16),oa=Math.pow(2,9),Ta=Math.pow(2,8),xt=Math.pow(2,1);function Wt(h){if(h.opacity===0&&!h.placed)return 0;if(h.opacity===1&&h.placed)return 4294967295;const e=h.placed?1:0,i=Math.floor(127*h.opacity);return i*Yi+e*Ei+i*zi+e*Ki+i*oa+e*Ta+i*xt+e}const Rr=0;class yn{constructor(e){this._sortAcrossTiles=e.layout.get("symbol-z-order")!=="viewport-y"&&!e.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(e,i,l,u,d){const g=this._bucketParts;for(;this._currentTileIndexw.sortKey-C.sortKey)));this._currentPartIndex!this._forceFullPlacement&&ie.now()-u>2;for(;this._currentPlacementIndex>=0;){const g=i[e[this._currentPlacementIndex]],w=this.placement.collisionIndex.transform.zoom;if(g.type==="symbol"&&(!g.minzoom||g.minzoom<=w)&&(!g.maxzoom||g.maxzoom>w)){if(this._inProgressLayer||(this._inProgressLayer=new yn(g)),this._inProgressLayer.continuePlacement(l[g.source],this.placement,this._showCollisionBoxes,g,d))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(e){return this.placement.commit(e),this.placement}}const Xn=512/s.$/2;class Vn{constructor(e,i,l){this.tileID=e,this.bucketInstanceId=l,this._symbolsByKey={};const u=new Map;for(let d=0;d({x:Math.floor(C.anchorX*Xn),y:Math.floor(C.anchorY*Xn)}))),crossTileIDs:g.map((C=>C.crossTileID))};if(w.positions.length>128){const C=new s.aI(w.positions.length,16,Uint16Array);for(const{x:P,y:A}of w.positions)C.add(P,A);C.finish(),delete w.positions,w.index=C}this._symbolsByKey[d]=w}}getScaledCoordinates(e,i){const{x:l,y:u,z:d}=this.tileID.canonical,{x:g,y:w,z:C}=i.canonical,P=Xn/Math.pow(2,C-d),A=(w*s.$+e.anchorY)*P,R=u*s.$*Xn;return{x:Math.floor((g*s.$+e.anchorX)*P-l*s.$*Xn),y:Math.floor(A-R)}}findMatches(e,i,l){const u=this.tileID.canonical.ze))}}class wn{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Ji{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(e){const i=Math.round((e-this.lng)/360);if(i!==0)for(const l in this.indexes){const u=this.indexes[l],d={};for(const g in u){const w=u[g];w.tileID=w.tileID.unwrapTo(w.tileID.wrap+i),d[w.tileID.key]=w}this.indexes[l]=d}this.lng=e}addBucket(e,i,l){if(this.indexes[e.overscaledZ]&&this.indexes[e.overscaledZ][e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===i.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key])}for(let d=0;de.overscaledZ)for(const w in g){const C=g[w];C.tileID.isChildOf(e)&&C.findMatches(i.symbolInstances,e,u)}else{const w=g[e.scaledTo(Number(d)).key];w&&w.findMatches(i.symbolInstances,e,u)}}for(let d=0;d{i[l]=!0}));for(const l in this.layerIndexes)i[l]||delete this.layerIndexes[l]}}var Ut="void main() {fragColor=vec4(1.0);}";const Ur={prelude:lr(`#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 -out highp vec4 fragColor;`,`#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;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c -);} -#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(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); -#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=(texture(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 -#ifdef GLOBE -if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;} -#endif -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 -}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`),projectionMercator:lr("","float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}"),projectionGlobe:lr("",`#define GLOBE_RADIUS 6371008.8 -uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos -);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY); -if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len -);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:lr(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),backgroundPattern:lr(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,"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;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:lr(`in vec3 v_data;in 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);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;} -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out 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 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) { -#ifdef GLOBE -vec3 center_vector=projectToSphere(circle_center); -#endif -float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else { -#ifdef GLOBE -vec4 projected_center=interpolateProjection(circle_center,center_vector,ele); -#else -vec4 projected_center=projectTileWithElevation(circle_center,ele); -#endif -corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);} -#ifdef GLOBE -vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele); -#else -gl_Position=projectTileWithElevation(corner_position,ele); -#endif -} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:lr(Ut,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),heatmap:lr(`uniform highp float u_intensity;in 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);fragColor=vec4(val,1.0,1.0,1.0); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out 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 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0); -#ifdef GLOBE -vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0); -#else -gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center)); -#endif -}`),heatmapTexture:lr(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(0.0); -#endif -}`,"uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out 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:lr("in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}","in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:lr("in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}","in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),colorRelief:lr(`#ifdef GL_ES -precision highp float; -#endif -uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else -{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0)); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,"uniform vec2 u_dimension;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),debug:lr("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}","in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}"),depth:lr(Ut,`in vec2 a_pos;void main() { -#ifdef GLOBE -gl_Position=projectTileFor3D(a_pos,0.0); -#else -gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0); -#endif -}`),fill:lr(`#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 -fragColor=color*opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform vec2 u_fill_translate;in vec2 a_pos; -#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=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:lr(`in vec2 v_pos; -#ifdef GLOBE -in float v_depth; -#endif -#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);fragColor=outline_color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos; -#ifdef GLOBE -out float v_depth; -#endif -#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=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -}`),fillOutlinePattern:lr(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity; -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos; -#ifdef GLOBE -out float v_depth; -#endif -#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=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -}`),fillPattern:lr(`#ifdef GL_ES -precision highp float; -#endif -uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in 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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out 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=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:lr(`in vec4 v_color;void main() {fragColor=v_color; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed; -#ifdef TERRAIN3D -in vec2 a_centroid; -#endif -out 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);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; -#ifdef GLOBE -vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); -#else -gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); -#endif -float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0); -#ifdef GLOBE -mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition); -#endif -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:lr(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting; -#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=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed; -#ifdef TERRAIN3D -in vec2 a_centroid; -#endif -#ifdef GLOBE -out vec3 v_sphere_pos; -#endif -out vec2 v_pos_a;out vec2 v_pos_b;out 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 elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; -#ifdef GLOBE -vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); -#else -gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); -#endif -vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 -? a_pos -: vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.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:lr(`#ifdef GL_ES -precision highp float; -#endif -uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;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))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:lr(`uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES]; -#define PI 3.141592653589793 -#define STANDARD 0 -#define COMBINED 1 -#define IGOR 2 -#define MULTIDIRECTIONAL 3 -#define BASIC 4 -float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else -{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else -{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);} -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,"uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),line:lr(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale; -#ifdef GLOBE -in float v_depth; -#endif -#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);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`),lineGradient:lr(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,v_uv);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`),linePattern:lr(`#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;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width; -#ifdef GLOBE -in float v_depth; -#endif -#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(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity; -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:lr(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale; -#ifdef GLOBE -in float v_depth; -#endif -#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=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity); -#ifdef GLOBE -if (v_depth > 1.0) {discard;} -#endif -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;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;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale; -#ifdef GLOBE -out float v_depth; -#endif -#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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; -#ifdef GLOBE -v_depth=gl_Position.z/gl_Position.w; -#endif -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#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:lr(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in 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=texture(u_image0,v_pos0);vec4 color1=texture(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);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5; -#ifdef GLOBE -if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;} -#endif -v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),symbolIcon:lr(`uniform sampler2D u_texture;in vec2 v_tex;in 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;fragColor=texture(u_texture,v_tex)*alpha; -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;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:lr(`#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;in vec2 v_data0;in 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=texture(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);}fragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform 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_translation;uniform float u_pitched_scale;out vec2 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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:lr(`#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;in vec4 v_data0;in 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;fragColor=texture(u_texture_icon,tex_icon)*alpha; -#ifdef OVERDRAW_INSPECTOR -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=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -fragColor=vec4(1.0); -#endif -}`,`in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in 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_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;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; -#ifdef GLOBE -if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} -#endif -vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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:lr("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}","in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"),terrainDepth:lr("in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}","in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}"),terrainCoords:lr("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}","in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}"),projectionErrorMeasurement:lr("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}","in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"),atmosphere:lr(`in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758 -);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,"in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}"),sky:lr("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}","in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}")};function lr(h,e){const i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,l=e.match(/in ([\w]+) ([\w]+)/g),u=h.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),d=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),g=d?d.concat(u):u,w={};return{fragmentSource:h=h.replace(i,((C,P,A,R,D)=>(w[D]=!0,P==="define"?` -#ifndef HAS_UNIFORM_u_${D} -in ${A} ${R} ${D}; -#else -uniform ${A} ${R} u_${D}; -#endif -`:` -#ifdef HAS_UNIFORM_u_${D} - ${A} ${R} ${D} = u_${D}; -#endif -`))),vertexSource:e=e.replace(i,((C,P,A,R,D)=>{const O=R==="float"?"vec2":"vec4",$=D.match(/color/)?"color":O;return w[D]?P==="define"?` -#ifndef HAS_UNIFORM_u_${D} -uniform lowp float u_${D}_t; -in ${A} ${O} a_${D}; -out ${A} ${R} ${D}; -#else -uniform ${A} ${R} u_${D}; -#endif -`:$==="vec4"?` -#ifndef HAS_UNIFORM_u_${D} - ${D} = a_${D}; -#else - ${A} ${R} ${D} = u_${D}; -#endif -`:` -#ifndef HAS_UNIFORM_u_${D} - ${D} = unpack_mix_${$}(a_${D}, u_${D}_t); -#else - ${A} ${R} ${D} = u_${D}; -#endif -`:P==="define"?` -#ifndef HAS_UNIFORM_u_${D} -uniform lowp float u_${D}_t; -in ${A} ${O} a_${D}; -#else -uniform ${A} ${R} u_${D}; -#endif -`:$==="vec4"?` -#ifndef HAS_UNIFORM_u_${D} - ${A} ${R} ${D} = a_${D}; -#else - ${A} ${R} ${D} = u_${D}; -#endif -`:` -#ifndef HAS_UNIFORM_u_${D} - ${A} ${R} ${D} = unpack_mix_${$}(a_${D}, u_${D}_t); -#else - ${A} ${R} ${D} = u_${D}; -#endif -`})),staticAttributes:l,staticUniforms:g}}class Tn{constructor(e,i,l){this.vertexBuffer=e,this.indexBuffer=i,this.segments=l}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}var nn=s.aJ([{name:"a_pos",type:"Int16",components:2}]);const Cn="#define PROJECTION_MERCATOR",$n="mercator";class Pr{constructor(){this._cachedMesh=null}get name(){return"mercator"}get useSubdivision(){return!1}get shaderVariantName(){return $n}get shaderDefine(){return Cn}get shaderPreludeCode(){return Ur.projectionMercator}get vertexShaderPreludeCode(){return Ur.projectionMercator.vertexSource}get subdivisionGranularity(){return s.aK.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}get latitudeErrorCorrectionRadians(){return 0}destroy(){}updateGPUdependent(e){}getMeshFromTileID(e,i,l,u,d){if(this._cachedMesh)return this._cachedMesh;const g=new s.aL;g.emplaceBack(0,0),g.emplaceBack(s.$,0),g.emplaceBack(0,s.$),g.emplaceBack(s.$,s.$);const w=e.createVertexBuffer(g,nn.members),C=s.aM.simpleSegment(0,0,4,2),P=new s.aN;P.emplaceBack(1,0,2),P.emplaceBack(1,2,3);const A=e.createIndexBuffer(P);return this._cachedMesh=new Tn(w,A,C),this._cachedMesh}recalculate(){}hasTransition(){return!1}setErrorQueryLatitudeDegrees(e){}}class Mn{constructor(e=0,i=0,l=0,u=0){if(isNaN(e)||e<0||isNaN(i)||i<0||isNaN(l)||l<0||isNaN(u)||u<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=e,this.bottom=i,this.left=l,this.right=u}interpolate(e,i,l){return i.top!=null&&e.top!=null&&(this.top=s.C.number(e.top,i.top,l)),i.bottom!=null&&e.bottom!=null&&(this.bottom=s.C.number(e.bottom,i.bottom,l)),i.left!=null&&e.left!=null&&(this.left=s.C.number(e.left,i.left,l)),i.right!=null&&e.right!=null&&(this.right=s.C.number(e.right,i.right,l)),this}getCenter(e,i){const l=s.ah((this.left+e-this.right)/2,0,e),u=s.ah((this.top+i-this.bottom)/2,0,i);return new s.P(l,u)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new Mn(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function bn(h,e){if(!h.renderWorldCopies||h.lngRange)return;const i=e.lng-h.center.lng;e.lng+=i>180?-360:i<-180?360:0}function ln(h){return Math.max(0,Math.floor(h))}class Sn{constructor(e,i,l,u,d,g){this._callbacks=e,this._tileSize=512,this._renderWorldCopies=g===void 0||!!g,this._minZoom=i||0,this._maxZoom=l||22,this._minPitch=u??0,this._maxPitch=d??60,this.setMaxBounds(),this._width=0,this._height=0,this._center=new s.S(0,0),this._elevation=0,this._zoom=0,this._tileZoom=ln(this._zoom),this._scale=s.af(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new Mn,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(e,i,l){this._latRange=e.latRange,this._lngRange=e.lngRange,this._width=e.width,this._height=e.height,this._center=e.center,this._elevation=e.elevation,this._minElevationForCurrentTile=e.minElevationForCurrentTile,this._zoom=e.zoom,this._tileZoom=ln(this._zoom),this._scale=s.af(this._zoom),this._bearingInRadians=e.bearingInRadians,this._fovInRadians=e.fovInRadians,this._pitchInRadians=e.pitchInRadians,this._rollInRadians=e.rollInRadians,this._unmodified=e.unmodified,this._edgeInsets=new Mn(e.padding.top,e.padding.bottom,e.padding.left,e.padding.right),this._minZoom=e.minZoom,this._maxZoom=e.maxZoom,this._minPitch=e.minPitch,this._maxPitch=e.maxPitch,this._renderWorldCopies=e.renderWorldCopies,this._cameraToCenterDistance=e.cameraToCenterDistance,this._nearZ=e.nearZ,this._farZ=e.farZ,this._autoCalculateNearFarZ=!l&&e.autoCalculateNearFarZ,i&&this._constrain(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(e){this._minElevationForCurrentTile=e}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(e){this._minZoom!==e&&(this._minZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get maxZoom(){return this._maxZoom}setMaxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get minPitch(){return this._minPitch}setMinPitch(e){this._minPitch!==e&&(this._minPitch=e,this.setPitch(Math.max(this.pitch,e)))}get maxPitch(){return this._maxPitch}setMaxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.setPitch(Math.min(this.pitch,e)))}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(e){e===void 0?e=!0:e===null&&(e=!1),this._renderWorldCopies=e}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.P(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(e){const i=s.aO(e,-180,180)*Math.PI/180;var l,u,d,g,w,C,P,A,R;this._bearingInRadians!==i&&(this._unmodified=!1,this._bearingInRadians=i,this._calcMatrices(),this._rotationMatrix=N(),l=this._rotationMatrix,d=-this._bearingInRadians,g=(u=this._rotationMatrix)[0],w=u[1],C=u[2],P=u[3],A=Math.sin(d),R=Math.cos(d),l[0]=g*R+C*A,l[1]=w*R+P*A,l[2]=g*-A+C*R,l[3]=w*-A+P*R)}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(e){const i=s.ah(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==i&&(this._unmodified=!1,this._pitchInRadians=i,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(e){const i=e/180*Math.PI;this._rollInRadians!==i&&(this._unmodified=!1,this._rollInRadians=i,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return s.aP(this._fovInRadians)}setFov(e){e=s.ah(e,.1,150),this.fov!==e&&(this._unmodified=!1,this._fovInRadians=s.ae(e),this._calcMatrices())}get zoom(){return this._zoom}setZoom(e){const i=this.getConstrained(this._center,e).zoom;this._zoom!==i&&(this._unmodified=!1,this._zoom=i,this._tileZoom=Math.max(0,Math.floor(i)),this._scale=s.af(i),this._constrain(),this._calcMatrices())}get center(){return this._center}setCenter(e){e.lat===this._center.lat&&e.lng===this._center.lng||(this._unmodified=!1,this._center=e,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(e){e!==this._elevation&&(this._elevation=e,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(e){this._edgeInsets.equals(e)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,e,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(e,i){this._autoCalculateNearFarZ=!1,this._nearZ=e,this._farZ=i,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,i,l){this._unmodified=!1,this._edgeInsets.interpolate(e,i,l),this._constrain(),this._calcMatrices()}resize(e,i,l=!0){this._width=e,this._height=i,l&&this._constrain(),this._calcMatrices()}getMaxBounds(){return this._latRange&&this._latRange.length===2&&this._lngRange&&this._lngRange.length===2?new mt([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]]):null}setMaxBounds(e){e?(this._lngRange=[e.getWest(),e.getEast()],this._latRange=[e.getSouth(),e.getNorth()],this._constrain()):(this._lngRange=null,this._latRange=[-s.ai,s.ai])}getConstrained(e,i){return this._callbacks.getConstrained(e,i)}getCameraQueryGeometry(e,i){if(i.length===1)return[i[0],e];{const{minX:l,minY:u,maxX:d,maxY:g}=s.a2.fromPoints(i).extend(e);return[new s.P(l,u),new s.P(d,u),new s.P(d,g),new s.P(l,g),new s.P(l,u)]}}_constrain(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;const e=this._unmodified,{center:i,zoom:l}=this.getConstrained(this.center,this.zoom);this.setCenter(i),this.setZoom(l),this._unmodified=e,this._constraining=!1}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let e=s.ag(new Float64Array(16));s.N(e,e,[this._width/2,-this._height/2,1]),s.M(e,e,[1,-1,0]),this._clipSpaceToPixelsMatrix=e,e=s.ag(new Float64Array(16)),s.N(e,e,[1,-1,1]),s.M(e,e,[-1,-1,0]),s.N(e,e,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=e,this._cameraToCenterDistance=.5/Math.tan(this.fovInRadians/2)*this._height}this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(e,i,l,u){const d=l!==void 0?l:this.bearing,g=u=u!==void 0?u:this.pitch,w=s.a1.fromLngLat(e,i),C=-Math.cos(s.ae(g)),P=Math.sin(s.ae(g)),A=P*Math.sin(s.ae(d)),R=-P*Math.cos(s.ae(d));let D=this.elevation;const O=i-D;let $;C*O>=0||Math.abs(C)<.1?($=1e4,D=i+$*C):$=-O/C;let ee,Q,ne=s.aQ(1,w.y),ue=0;do{if(ue+=1,ue>10)break;Q=$/ne,ee=new s.a1(w.x+A*Q,w.y+R*Q),ne=1/ee.meterInMercatorCoordinateUnits()}while(Math.abs($-Q*ne)>1e-12);return{center:ee.toLngLat(),elevation:D,zoom:s.ak(this.height/2/Math.tan(this.fovInRadians/2)/Q/this.tileSize)}}recalculateZoomAndCenter(e){if(this.elevation-e==0)return;const i=s.aj(1,this.center.lat)*this.worldSize,l=this.cameraToCenterDistance/i,u=s.a1.fromLngLat(this.center,this.elevation),d=Ie(this.center,this.elevation,this.pitch,this.bearing,l);this._elevation=e;const g=this.calculateCenterFromCameraLngLatAlt(d.toLngLat(),s.aQ(d.z,u.y),this.bearing,this.pitch);this._elevation=g.elevation,this._center=g.center,this.setZoom(g.zoom)}getCameraPoint(){const e=Math.tan(this.pitchInRadians)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.P(e*Math.sin(this.rollInRadians),e*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){const e=s.aj(1,this.center.lat)*this.worldSize;return Ie(this.center,this.elevation,this.pitch,this.bearing,this.cameraToCenterDistance/e).toLngLat()}getMercatorTileCoordinates(e){if(!e)return[0,0,1,1];const i=e.canonical.z>=0?1<this.max[0]||e.aabb.min[1]>this.max[1]||e.aabb.min[2]>this.max[2]||e.aabb.max[0]0?(i+=e[u]*this.min[u],l+=e[u]*this.max[u]):(l+=e[u]*this.min[u],i+=e[u]*this.max[u]);return i>=0?2:l<0?0:1}}class gn{distanceToTile2d(e,i,l,u){const d=u.distanceX([e,i]),g=u.distanceY([e,i]);return Math.hypot(d,g)}getWrap(e,i,l){return l}getTileBoundingVolume(e,i,l,u){var d,g;let w=0,C=0;if(u!=null&&u.terrain){const A=new s.Z(e.z,i,e.z,e.x,e.y),R=u.terrain.getMinMaxElevation(A);w=(d=R.minElevation)!==null&&d!==void 0?d:Math.min(0,l),C=(g=R.maxElevation)!==null&&g!==void 0?g:Math.max(0,l)}const P=1<u}allowWorldCopies(){return!0}prepareNextFrame(){}}class fn{constructor(e,i,l){this.points=e,this.planes=i,this.aabb=l}static fromInvProjectionMatrix(e,i=1,l=0,u,d){const g=d?[[6,5,4],[0,1,2],[0,3,7],[2,1,5],[3,2,6],[0,4,5]]:[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]],w=Math.pow(2,l),C=[[-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((D=>(function(O,$,ee,Q){const ne=s.aw([],O,$),ue=1/ne[3]/ee*Q;return s.aY(ne,ne,[ue,ue,1/ne[3],ue])})(D,e,i,w)));u&&(function(D,O,$,ee){const Q=ee?4:0,ne=ee?0:4;let ue=0;const _e=[],he=[];for(let pe=0;pe<4;pe++){const Be=s.aU([],D[pe+ne],D[pe+Q]),Qe=s.aZ(Be);s.aR(Be,Be,1/Qe),_e.push(Qe),he.push(Be)}for(let pe=0;pe<4;pe++){const Be=s.a_(D[pe+Q],he[pe],$);ue=Be!==null&&Be>=0?Math.max(ue,Be):Math.max(ue,_e[pe])}const we=(function(pe,Be){const Qe=s.aU([],pe[Be[0]],pe[Be[1]]),Ue=s.aU([],pe[Be[2]],pe[Be[1]]),We=[0,0,0,0];return s.aV(We,s.aW([],Qe,Ue)),We[3]=-s.aX(We,pe[Be[0]]),We})(D,O),Pe=(function(pe,Be){const Qe=s.a$(pe),Ue=s.b0([],pe,1/Qe),We=s.aU([],Be,s.aR([],Ue,s.aX(Be,Ue))),Je=s.a$(We);if(Je>0){const Nt=Math.sqrt(1-Ue[3]*Ue[3]),Zt=s.aR([],Ue,-Ue[3]),Tt=s.aS([],Zt,s.aR([],We,Nt/Je));return s.b1(Be,Tt)}return null})($,we);if(Pe!==null){const pe=Pe/s.aX(he[0],we);ue=Math.min(ue,pe)}for(let pe=0;pe<4;pe++){const Be=Math.min(ue,_e[pe]);D[pe+ne]=[D[pe+Q][0]+he[pe][0]*Be,D[pe+Q][1]+he[pe][1]*Be,D[pe+Q][2]+he[pe][2]*Be,1]}})(C,g[0],u,d);const P=g.map((D=>{const O=s.aU([],C[D[0]],C[D[1]]),$=s.aU([],C[D[2]],C[D[1]]),ee=s.aV([],s.aW([],O,$)),Q=-s.aX(ee,C[D[1]]);return ee.concat(Q)})),A=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY],R=[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];for(const D of C)for(let O=0;O<3;O++)A[O]=Math.min(A[O],D[O]),R[O]=Math.max(R[O],D[O]);return new fn(C,P,new kn(A,R))}}class an{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,i,l){return this._helper.interpolatePadding(e,i,l)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,i,l=!0){this._helper.resize(e,i,l)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,i){this._helper.overrideNearFarZ(e,i)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e,i){}constructor(e,i,l,u,d){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this._helper=new Sn({calcMatrices:()=>{this._calcMatrices()},getConstrained:(g,w)=>this.getConstrained(g,w)},e,i,l,u,d),this._coveringTilesDetailsProvider=new gn}clone(){const e=new an;return e.apply(this),e}apply(e,i,l){this._helper.apply(e,i,l)}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(e){const i=[new s.b2(0,e)];if(this._helper._renderWorldCopies){const l=this.screenPointToMercatorCoordinate(new s.P(0,0)),u=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,0)),d=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,this._helper._height)),g=this.screenPointToMercatorCoordinate(new s.P(0,this._helper._height)),w=Math.floor(Math.min(l.x,u.x,d.x,g.x)),C=Math.floor(Math.max(l.x,u.x,d.x,g.x)),P=1;for(let A=w-P;A<=C+P;A++)A!==0&&i.push(new s.b2(A,e))}return i}getCameraFrustum(){return fn.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){const i=this.screenPointToLocation(this.centerPoint,e),l=e?e.getElevationForLngLatZoom(i,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(l)}setLocationAtPoint(e,i){const l=s.aj(this.elevation,this.center.lat),u=this.screenPointToMercatorCoordinateAtZ(i,l),d=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,l),g=s.a1.fromLngLat(e),w=new s.a1(g.x-(u.x-d.x),g.y-(u.y-d.y));this.setCenter(w==null?void 0:w.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(e,i){return i?this.coordinatePoint(s.a1.fromLngLat(e),i.getElevationForLngLatZoom(e,this._helper._tileZoom),this._pixelMatrix3D):this.coordinatePoint(s.a1.fromLngLat(e))}screenPointToLocation(e,i){var l;return(l=this.screenPointToMercatorCoordinate(e,i))===null||l===void 0?void 0:l.toLngLat()}screenPointToMercatorCoordinate(e,i){if(i){const l=i.pointCoordinate(e);if(l!=null)return l}return this.screenPointToMercatorCoordinateAtZ(e)}screenPointToMercatorCoordinateAtZ(e,i){const l=i||0,u=[e.x,e.y,0,1],d=[e.x,e.y,1,1];s.aw(u,u,this._pixelMatrixInverse),s.aw(d,d,this._pixelMatrixInverse);const g=u[3],w=d[3],C=u[1]/g,P=d[1]/w,A=u[2]/g,R=d[2]/w,D=A===R?0:(l-A)/(R-A);return new s.a1(s.C.number(u[0]/g,d[0]/w,D)/this.worldSize,s.C.number(C,P,D)/this.worldSize,l)}coordinatePoint(e,i=0,l=this._pixelMatrix){const u=[e.x*this.worldSize,e.y*this.worldSize,i,1];return s.aw(u,u,l),new s.P(u[0]/u[3],u[1]/u[3])}getBounds(){const e=Math.max(0,this._helper._height/2-de(this));return new mt().extend(this.screenPointToLocation(new s.P(0,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new s.P(0,this._helper._height)))}isPointOnMapSurface(e,i){return i?i.pointCoordinate(e)!=null:e.y>this.height/2-de(this)}calculatePosMatrix(e,i=!1,l){var u;const d=(u=e.key)!==null&&u!==void 0?u:s.b3(e.wrap,e.canonical.z,e.canonical.z,e.canonical.x,e.canonical.y),g=i?this._alignedPosMatrixCache:this._posMatrixCache;if(g.has(d)){const P=g.get(d);return l?P.f32:P.f64}const w=Se(e,this.worldSize);s.O(w,i?this._alignedProjMatrix:this._viewProjMatrix,w);const C={f64:w,f32:new Float32Array(w)};return g.set(d,C),l?C.f32:C.f64}calculateFogMatrix(e){const i=e.key,l=this._fogMatrixCacheF32;if(l.has(i))return l.get(i);const u=Se(e,this.worldSize);return s.O(u,this._fogMatrix,u),l.set(i,new Float32Array(u)),l.get(i)}getConstrained(e,i){i=s.ah(+i,this.minZoom,this.maxZoom);const l={center:new s.S(e.lng,e.lat),zoom:i};let u=this._helper._lngRange;if(!this._helper._renderWorldCopies&&u===null){const _e=179.9999999999;u=[-_e,_e]}const d=this.tileSize*s.af(l.zoom);let g=0,w=d,C=0,P=d,A=0,R=0;const{x:D,y:O}=this.size;if(this._helper._latRange){const _e=this._helper._latRange;g=s.U(_e[1])*d,w=s.U(_e[0])*d,w-gw&&(ne=w-_e)}if(u){const _e=(C+P)/2;let he=$;this._helper._renderWorldCopies&&(he=s.aO($,_e-d/2,_e+d/2));const we=D/2;he-weP&&(Q=P-we)}if(Q!==void 0||ne!==void 0){const _e=new s.P(Q??$,ne??ee);l.center=ae(d,_e).wrap()}return l}calculateCenterFromCameraLngLatAlt(e,i,l,u){return this._helper.calculateCenterFromCameraLngLatAlt(e,i,l,u)}_calculateNearFarZIfNeeded(e,i,l){if(!this._helper.autoCalculateNearFarZ)return;const u=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),d=e-u*this._helper._pixelPerMeter/Math.cos(i),g=u<0?d:e,w=Math.PI/2+this.pitchInRadians,C=s.ae(this.fov)*(Math.abs(Math.cos(s.ae(this.roll)))*this.height+Math.abs(Math.sin(s.ae(this.roll)))*this.width)/this.height*(.5+l.y/this.height),P=Math.sin(C)*g/Math.sin(s.ah(Math.PI-w-C,.01,Math.PI-.01)),A=de(this),R=Math.atan(A/this._helper.cameraToCenterDistance),D=s.ae(.75),O=R>D?2*R*(.5+l.y/(2*A)):D,$=Math.sin(O)*g/Math.sin(s.ah(Math.PI-w-O,.01,Math.PI-.01)),ee=Math.min(P,$);this._helper._farZ=1.01*(Math.cos(Math.PI/2-i)*ee+g),this._helper._nearZ=this._helper._height/50}_calcMatrices(){if(!this._helper._height)return;const e=this.centerOffset,i=X(this.worldSize,this.center),l=i.x,u=i.y;this._helper._pixelPerMeter=s.aj(1,this.center.lat)*this.worldSize;const d=s.ae(Math.min(this.pitch,Z)),g=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(d));let w;this._calculateNearFarZIfNeeded(g,d,e),w=new Float64Array(16),s.b4(w,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),s.aq(this._invProjMatrix,w),w[8]=2*-e.x/this._helper._width,w[9]=2*e.y/this._helper._height,this._projectionMatrix=s.b5(w),s.N(w,w,[1,-1,1]),s.M(w,w,[0,0,-this._helper.cameraToCenterDistance]),s.b6(w,w,-this.rollInRadians),s.b7(w,w,this.pitchInRadians),s.b6(w,w,-this.bearingInRadians),s.M(w,w,[-l,-u,0]),this._mercatorMatrix=s.N([],w,[this.worldSize,this.worldSize,this.worldSize]),s.N(w,w,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=s.O(new Float64Array(16),this.clipSpaceToPixelsMatrix,w),s.M(w,w,[0,0,-this.elevation]),this._viewProjMatrix=w,this._invViewProjMatrix=s.aq([],w);const C=[0,0,-1,1];s.aw(C,C,this._invViewProjMatrix),this._cameraPosition=[C[0]/C[3],C[1]/C[3],C[2]/C[3]],this._fogMatrix=new Float64Array(16),s.b4(this._fogMatrix,this.fovInRadians,this.width/this.height,g,this._helper._farZ),this._fogMatrix[8]=2*-e.x/this.width,this._fogMatrix[9]=2*e.y/this.height,s.N(this._fogMatrix,this._fogMatrix,[1,-1,1]),s.M(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),s.b6(this._fogMatrix,this._fogMatrix,-this.rollInRadians),s.b7(this._fogMatrix,this._fogMatrix,this.pitchInRadians),s.b6(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),s.M(this._fogMatrix,this._fogMatrix,[-l,-u,0]),s.N(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),s.M(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=s.O(new Float64Array(16),this.clipSpaceToPixelsMatrix,w);const P=this._helper._width%2/2,A=this._helper._height%2/2,R=Math.cos(this.bearingInRadians),D=Math.sin(-this.bearingInRadians),O=l-Math.round(l)+R*P+D*A,$=u-Math.round(u)+R*A+D*P,ee=new Float64Array(w);if(s.M(ee,ee,[O>.5?O-1:O,$>.5?$-1:$,0]),this._alignedProjMatrix=ee,w=s.aq(new Float64Array(16),this._pixelMatrix),!w)throw new Error("failed to invert matrix");this._pixelMatrixInverse=w,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;const e=this.screenPointToMercatorCoordinate(new s.P(0,0)),i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return s.aw(i,i,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){const e=s.aj(1,this.center.lat)*this.worldSize;return Ie(this.center,this.elevation,this.pitch,this.bearing,this._helper.cameraToCenterDistance/e).toLngLat()}lngLatToCameraDepth(e,i){const l=s.a1.fromLngLat(e),u=[l.x*this.worldSize,l.y*this.worldSize,i,1];return s.aw(u,u,this._viewProjMatrix),u[2]/u[3]}getProjectionData(e){const{overscaledTileID:i,aligned:l,applyTerrainMatrix:u}=e,d=this._helper.getMercatorTileCoordinates(i),g=i?this.calculatePosMatrix(i,l,!0):null;let w;return w=i&&i.terrainRttPosMatrix32f&&u?i.terrainRttPosMatrix32f:g||s.b8(),{mainMatrix:w,tileMercatorCoords:d,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:w}}isLocationOccluded(e){return!1}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(e,i,l){return 1}transformLightDirection(e){return s.aT(e)}getRayDirectionFromPixel(e){throw new Error("Not implemented.")}projectTileCoordinates(e,i,l,u){const d=this.calculatePosMatrix(l);let g;u?(g=[e,i,u(e,i),1],s.aw(g,g,d)):(g=[e,i,0,1],En(g,g,d));const w=g[3];return{point:new s.P(g[0]/w,g[1]/w),signedDistanceFromCamera:w,isOccluded:!1}}populateCache(e){for(const i of e)this.calculatePosMatrix(i)}getMatrixForModel(e,i){const l=s.a1.fromLngLat(e,i),u=l.meterInMercatorCoordinateUnits(),d=s.b9();return s.M(d,d,[l.x,l.y,l.z]),s.b6(d,d,Math.PI),s.b7(d,d,Math.PI/2),s.N(d,d,[-u,u,u]),d}getProjectionDataForCustomLayer(e=!0){const i=new s.Z(0,0,0,0,0),l=this.getProjectionData({overscaledTileID:i,applyGlobeMatrix:e}),u=Se(i,this.worldSize);s.O(u,this._viewProjMatrix,u),l.tileMercatorCoords=[0,0,1,1];const d=[s.$,s.$,this.worldSize/this._helper.pixelsPerMeter],g=s.ba();return s.N(g,u,d),l.fallbackMatrix=g,l.mainMatrix=g,l}getFastPathSimpleProjectionMatrix(e){return this.calculatePosMatrix(e)}}function po(){s.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.")}function pi(h){if(h.useSlerp)if(h.k<1){const e=s.bb(h.startEulerAngles.roll,h.startEulerAngles.pitch,h.startEulerAngles.bearing),i=s.bb(h.endEulerAngles.roll,h.endEulerAngles.pitch,h.endEulerAngles.bearing),l=new Float64Array(4);s.bc(l,e,i,h.k);const u=s.bd(l);h.tr.setRoll(u.roll),h.tr.setPitch(u.pitch),h.tr.setBearing(u.bearing)}else h.tr.setRoll(h.endEulerAngles.roll),h.tr.setPitch(h.endEulerAngles.pitch),h.tr.setBearing(h.endEulerAngles.bearing);else h.tr.setRoll(s.C.number(h.startEulerAngles.roll,h.endEulerAngles.roll,h.k)),h.tr.setPitch(s.C.number(h.startEulerAngles.pitch,h.endEulerAngles.pitch,h.k)),h.tr.setBearing(s.C.number(h.startEulerAngles.bearing,h.endEulerAngles.bearing,h.k))}function Gn(h,e,i,l,u){const d=u.padding,g=X(u.worldSize,i.getNorthWest()),w=X(u.worldSize,i.getNorthEast()),C=X(u.worldSize,i.getSouthEast()),P=X(u.worldSize,i.getSouthWest()),A=s.ae(-l),R=g.rotate(A),D=w.rotate(A),O=C.rotate(A),$=P.rotate(A),ee=new s.P(Math.max(R.x,D.x,$.x,O.x),Math.max(R.y,D.y,$.y,O.y)),Q=new s.P(Math.min(R.x,D.x,$.x,O.x),Math.min(R.y,D.y,$.y,O.y)),ne=ee.sub(Q),ue=(u.width-(d.left+d.right+e.left+e.right))/ne.x,_e=(u.height-(d.top+d.bottom+e.top+e.bottom))/ne.y;if(_e<0||ue<0)return void po();const he=Math.min(s.ak(u.scale*Math.min(ue,_e)),h.maxZoom),we=s.P.convert(h.offset),Pe=new s.P((e.left-e.right)/2,(e.top-e.bottom)/2).rotate(s.ae(l)),pe=we.add(Pe).mult(u.scale/s.af(he));return{center:ae(u.worldSize,g.add(C).div(2).sub(pe)),zoom:he,bearing:l}}class jn{get useGlobeControls(){return!1}handlePanInertia(e,i){return{easingOffset:e,easingCenter:i.center}}handleMapControlsRollPitchBearingZoom(e,i){e.bearingDelta&&i.setBearing(i.bearing+e.bearingDelta),e.pitchDelta&&i.setPitch(i.pitch+e.pitchDelta),e.rollDelta&&i.setRoll(i.roll+e.rollDelta),e.zoomDelta&&i.setZoom(i.zoom+e.zoomDelta)}handleMapControlsPan(e,i,l){e.around.distSqr(i.centerPoint)<.01||i.setLocationAtPoint(l,e.around)}cameraForBoxAndBearing(e,i,l,u,d){return Gn(e,i,l,u,d)}handleJumpToCenterZoom(e,i){e.zoom!==(i.zoom!==void 0?+i.zoom:e.zoom)&&e.setZoom(+i.zoom),i.center!==void 0&&e.setCenter(s.S.convert(i.center))}handleEaseTo(e,i){const l=e.zoom,u=e.padding,d={roll:e.roll,pitch:e.pitch,bearing:e.bearing},g={roll:i.roll===void 0?e.roll:i.roll,pitch:i.pitch===void 0?e.pitch:i.pitch,bearing:i.bearing===void 0?e.bearing:i.bearing},w=i.zoom!==void 0,C=!e.isPaddingEqual(i.padding);let P=!1;const A=w?+i.zoom:e.zoom;let R=e.centerPoint.add(i.offsetAsPoint);const D=e.screenPointToLocation(R),{center:O,zoom:$}=e.getConstrained(s.S.convert(i.center||D),A??l);bn(e,O);const ee=X(e.worldSize,D),Q=X(e.worldSize,O).sub(ee),ne=s.af($-l);return P=$!==l,{easeFunc:ue=>{if(P&&e.setZoom(s.C.number(l,$,ue)),s.be(d,g)||pi({startEulerAngles:d,endEulerAngles:g,tr:e,k:ue,useSlerp:d.roll!=g.roll}),C&&(e.interpolatePadding(u,i.padding,ue),R=e.centerPoint.add(i.offsetAsPoint)),i.around)e.setLocationAtPoint(i.around,i.aroundPoint);else{const _e=s.af(e.zoom-l),he=$>l?Math.min(2,ne):Math.max(.5,ne),we=Math.pow(he,1-ue),Pe=ae(e.worldSize,ee.add(Q.mult(ue*we)).mult(_e));e.setLocationAtPoint(e.renderWorldCopies?Pe.wrap():Pe,R)}},isZooming:P,elevationCenter:O}}handleFlyTo(e,i){const l=i.zoom!==void 0,u=e.zoom,d=e.getConstrained(s.S.convert(i.center||i.locationAtOffset),l?+i.zoom:u),g=d.center,w=d.zoom;bn(e,g);const C=X(e.worldSize,i.locationAtOffset),P=X(e.worldSize,g).sub(C),A=P.mag(),R=s.af(w-u);let D;if(i.minZoom!==void 0){const O=Math.min(+i.minZoom,u,w),$=e.getConstrained(g,O).zoom;D=s.af($-u)}return{easeFunc:(O,$,ee,Q)=>{e.setZoom(O===1?w:u+s.ak($));const ne=O===1?g:ae(e.worldSize,C.add(P.mult(ee)).mult($));e.setLocationAtPoint(e.renderWorldCopies?ne.wrap():ne,Q)},scaleOfZoom:R,targetCenter:g,scaleOfMinZoom:D,pixelPathLength:A}}}class zn{constructor(e,i,l){this.blendFunction=e,this.blendColor=i,this.mask=l}}zn.Replace=[1,0],zn.disabled=new zn(zn.Replace,s.bf.transparent,[!1,!1,!1,!1]),zn.unblended=new zn(zn.Replace,s.bf.transparent,[!0,!0,!0,!0]),zn.alphaBlended=new zn([1,771],s.bf.transparent,[!0,!0,!0,!0]);const qa=2305;class Lr{constructor(e,i,l){this.enable=e,this.mode=i,this.frontFace=l}}Lr.disabled=new Lr(!1,1029,qa),Lr.backCCW=new Lr(!0,1029,qa),Lr.frontCCW=new Lr(!0,1028,qa);class $r{constructor(e,i,l){this.func=e,this.mask=i,this.range=l}}$r.ReadOnly=!1,$r.ReadWrite=!0,$r.disabled=new $r(519,$r.ReadOnly,[0,1]);const _a=7680;class cn{constructor(e,i,l,u,d,g){this.test=e,this.ref=i,this.mask=l,this.fail=u,this.depthFail=d,this.pass=g}}cn.disabled=new cn({func:519,mask:0},0,0,_a,_a,_a);const Li=new WeakMap;function ga(h){var e;if(Li.has(h))return Li.get(h);{const i=(e=h.getParameter(h.VERSION))===null||e===void 0?void 0:e.startsWith("WebGL 2.0");return Li.set(h,i),i}}class sa{get awaitingQuery(){return!!this._readbackQueue}constructor(e){this._readbackWaitFrames=4,this._measureWaitFrames=6,this._texWidth=1,this._texHeight=1,this._measuredError=0,this._updateCount=0,this._lastReadbackFrame=-1e3,this._readbackQueue=null,this._cachedRenderContext=e;const i=e.context,l=i.gl;this._texFormat=l.RGBA,this._texType=l.UNSIGNED_BYTE;const u=new s.aL;u.emplaceBack(-1,-1),u.emplaceBack(2,-1),u.emplaceBack(-1,2);const d=new s.aN;d.emplaceBack(0,1,2),this._fullscreenTriangle=new Tn(i.createVertexBuffer(u,nn.members),i.createIndexBuffer(d),s.aM.simpleSegment(0,0,u.length,d.length)),this._resultBuffer=new Uint8Array(4),i.activeTexture.set(l.TEXTURE1);const g=l.createTexture();l.bindTexture(l.TEXTURE_2D,g),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MIN_FILTER,l.NEAREST),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,l.NEAREST),l.texImage2D(l.TEXTURE_2D,0,this._texFormat,this._texWidth,this._texHeight,0,this._texFormat,this._texType,null),this._fbo=i.createFramebuffer(this._texWidth,this._texHeight,!1,!1),this._fbo.colorAttachment.set(g),ga(l)&&(this._pbo=l.createBuffer(),l.bindBuffer(l.PIXEL_PACK_BUFFER,this._pbo),l.bufferData(l.PIXEL_PACK_BUFFER,4,l.STREAM_READ),l.bindBuffer(l.PIXEL_PACK_BUFFER,null))}destroy(){const e=this._cachedRenderContext.context.gl;this._fullscreenTriangle.destroy(),this._fbo.destroy(),e.deleteBuffer(this._pbo),this._fullscreenTriangle=null,this._fbo=null,this._pbo=null,this._resultBuffer=null}updateErrorLoop(e,i){const l=this._updateCount;return this._readbackQueue?l>=this._readbackQueue.frameNumberIssued+this._readbackWaitFrames&&this._tryReadback():l>=this._lastReadbackFrame+this._measureWaitFrames&&this._renderErrorTexture(e,i),this._updateCount++,this._measuredError}_bindFramebuffer(){const e=this._cachedRenderContext.context,i=e.gl;e.activeTexture.set(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,this._fbo.colorAttachment.get()),e.bindFramebuffer.set(this._fbo.framebuffer)}_renderErrorTexture(e,i){const l=this._cachedRenderContext.context,u=l.gl;if(this._bindFramebuffer(),l.viewport.set([0,0,this._texWidth,this._texHeight]),l.clear({color:s.bf.transparent}),this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(l,u.TRIANGLES,$r.disabled,cn.disabled,zn.unblended,Lr.disabled,((d,g)=>({u_input:d,u_output_expected:g}))(e,i),null,null,"$clipping",this._fullscreenTriangle.vertexBuffer,this._fullscreenTriangle.indexBuffer,this._fullscreenTriangle.segments),this._pbo&&ga(u)){u.bindBuffer(u.PIXEL_PACK_BUFFER,this._pbo),u.readBuffer(u.COLOR_ATTACHMENT0),u.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,0),u.bindBuffer(u.PIXEL_PACK_BUFFER,null);const d=u.fenceSync(u.SYNC_GPU_COMMANDS_COMPLETE,0);u.flush(),this._readbackQueue={frameNumberIssued:this._updateCount,sync:d}}else this._readbackQueue={frameNumberIssued:this._updateCount,sync:null}}_tryReadback(){const e=this._cachedRenderContext.context.gl;if(this._pbo&&this._readbackQueue&&ga(e)){const i=e.clientWaitSync(this._readbackQueue.sync,0,0);if(i===e.WAIT_FAILED)return s.w("WebGL2 clientWaitSync failed."),this._readbackQueue=null,void(this._lastReadbackFrame=this._updateCount);if(i===e.TIMEOUT_EXPIRED)return;e.bindBuffer(e.PIXEL_PACK_BUFFER,this._pbo),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,this._resultBuffer,0,4),e.bindBuffer(e.PIXEL_PACK_BUFFER,null)}else this._bindFramebuffer(),e.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,this._resultBuffer);this._readbackQueue=null,this._measuredError=sa._parseRGBA8float(this._resultBuffer),this._lastReadbackFrame=this._updateCount}static _parseRGBA8float(e){let i=0;return i+=e[0]/256,i+=e[1]/65536,i+=e[2]/16777216,e[3]<127&&(i=-i),i/128}}const Ka=s.$/128;function Is(h,e){const i=h.granularity!==void 0?Math.max(h.granularity,1):1,l=i+(h.generateBorders?2:0),u=i+(h.extendToNorthPole||h.generateBorders?1:0)+(h.extendToSouthPole||h.generateBorders?1:0),d=l+1,g=u+1,w=h.generateBorders?-1:0,C=h.generateBorders||h.extendToNorthPole?-1:0,P=i+(h.generateBorders?1:0),A=i+(h.generateBorders||h.extendToSouthPole?1:0),R=d*g,D=l*u*6,O=d*g>65536;if(O&&e==="16bit")throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices.");const $=O||e==="32bit",ee=new Int16Array(2*R);let Q=0;for(let _e=C;_e<=A;_e++)for(let he=w;he<=P;he++){let we=he/i*s.$;he===-1&&(we=-Ka),he===i+1&&(we=s.$+Ka);let Pe=_e/i*s.$;_e===-1&&(Pe=h.extendToNorthPole?s.bh:-Ka),_e===i+1&&(Pe=h.extendToSouthPole?s.bi:s.$+Ka),ee[Q++]=we,ee[Q++]=Pe}const ne=$?new Uint32Array(D):new Uint16Array(D);let ue=0;for(let _e=0;_e0}get latitudeErrorCorrectionRadians(){return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return"globe"}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy()}updateGPUdependent(e){this._mercatorProjection.updateGPUdependent(e),this._verticalPerspectiveProjection.updateGPUdependent(e)}getMeshFromTileID(e,i,l,u,d){return this.currentProjection.getMeshFromTileID(e,i,l,u,d)}setProjection(e){this._transitionable.setValue("type",(e==null?void 0:e.type)||"mercator")}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}setErrorQueryLatitudeDegrees(e){this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(e),this._mercatorProjection.setErrorQueryLatitudeDegrees(e)}}function vl(h){const e=Qo(h.worldSize,h.center.lat);return 2*Math.PI*e}function Sa(h,e,i,l,u){const d=1/(1<1e-6){const l=h[0]/i,u=Math.acos(h[2]/i),d=(l>0?u:-u)/Math.PI*180;return new s.S(s.aO(d,-180,180),e)}return new s.S(0,e)}function ko(h){return Math.cos(h*Math.PI/180)}function ei(h,e){const i=ko(h),l=ko(e);return s.ak(l/i)}function Bh(h,e){const i=h.rotate(e.bearingInRadians),l=e.zoom+ei(e.center.lat,0),u=s.bk(1/ko(e.center.lat),1/ko(Math.min(Math.abs(e.center.lat),60)),s.bn(l,7,3,0,1)),d=360/vl({worldSize:e.worldSize,center:{lat:e.center.lat}});return new s.S(e.center.lng-i.x*d*u,s.ah(e.center.lat+i.y*d,-s.ai,s.ai))}function ks(h){const e=.5*h,i=Math.sin(e),l=Math.cos(e);return Math.log(i+l)-Math.log(l-i)}function Ec(h,e,i,l){const u=h.lat+i*l;if(Math.abs(i)>1){const d=(Math.sign(h.lat+i)!==Math.sign(h.lat)?-Math.abs(h.lat):Math.abs(h.lat))*Math.PI/180,g=Math.abs(h.lat+i)*Math.PI/180,w=ks(d+l*(g-d)),C=ks(d),P=ks(g);return new s.S(h.lng+e*((w-C)/(P-C)),u)}return new s.S(h.lng+e*l,u)}class xp{constructor(e){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._boundingVolumeFactory=e}swapBuffers(){if(!this._hadAnyChanges)return;const e=this._cachePrevious;this._cachePrevious=this._cache,this._cache=e,this._cache.clear(),this._hadAnyChanges=!1}getTileBoundingVolume(e,i,l,u){const d=`${e.z}_${e.x}_${e.y}_${u!=null&&u.terrain?"t":""}`,g=this._cache.get(d);if(g)return g;const w=this._cachePrevious.get(d);if(w)return this._cache.set(d,w),w;const C=this._boundingVolumeFactory(e,i,l,u);return this._cache.set(d,C),this._hadAnyChanges=!0,C}}class es{constructor(e,i,l,u){this.min=l,this.max=u,this.points=e,this.planes=i}static fromAabb(e,i){const l=[];for(let u=0;u<8;u++)l.push([1&~u?e[0]:i[0],(u>>1&1)==1?i[1]:e[1],(u>>2&1)==1?i[2]:e[2]]);return new es(l,[[-1,0,0,i[0]],[1,0,0,-e[0]],[0,-1,0,i[1]],[0,1,0,-e[1]],[0,0,-1,i[2]],[0,0,1,-e[2]]],e,i)}static fromCenterSizeAngles(e,i,l){const u=s.br([],l[0],l[1],l[2]),d=s.bs([],[i[0],0,0],u),g=s.bs([],[0,i[1],0],u),w=s.bs([],[0,0,i[2]],u),C=[...e],P=[...e];for(let R=0;R<8;R++)for(let D=0;D<3;D++){const O=e[D]+d[D]*(1&~R?-1:1)+g[D]*((R>>1&1)==1?1:-1)+w[D]*((R>>2&1)==1?1:-1);C[D]=Math.min(C[D],O),P[D]=Math.max(P[D],O)}const A=[];for(let R=0;R<8;R++){const D=[...e];s.aS(D,D,s.aR([],d,1&~R?-1:1)),s.aS(D,D,s.aR([],g,(R>>1&1)==1?1:-1)),s.aS(D,D,s.aR([],w,(R>>2&1)==1?1:-1)),A.push(D)}return new es(A,[[...d,-s.aX(d,A[0])],[...g,-s.aX(g,A[0])],[...w,-s.aX(w,A[0])],[-d[0],-d[1],-d[2],-s.aX(d,A[7])],[-g[0],-g[1],-g[2],-s.aX(g,A[7])],[-w[0],-w[1],-w[2],-s.aX(w,A[7])]],C,P)}intersectsFrustum(e){let i=!0;const l=this.points.length,u=this.planes.length,d=e.planes.length,g=e.points.length;for(let w=0;w=0&&P++}if(P===0)return 0;P=0&&P++}if(P===0)return 0}return 1}intersectsPlane(e){const i=this.points.length;let l=0;for(let u=0;u=0&&l++}return l===i?2:l===0?0:1}}function Di(h,e,i){const l=h-e;return l<0?-l:Math.max(0,l-i)}function As(h,e,i,l,u){const d=h-i;let g;return g=d<0?Math.min(-d,1+d-u):d>1?Math.min(Math.max(d-u,0),1-d):0,Math.max(g,Di(e,l,u))}class Za{constructor(){this._boundingVolumeCache=new xp(this._computeTileBoundingVolume)}prepareNextFrame(){this._boundingVolumeCache.swapBuffers()}distanceToTile2d(e,i,l,u){const d=1<4}allowWorldCopies(){return!1}getTileBoundingVolume(e,i,l,u){return this._boundingVolumeCache.getTileBoundingVolume(e,i,l,u)}_computeTileBoundingVolume(e,i,l,u){var d,g;let w=0,C=0;if(u!=null&&u.terrain){const P=new s.Z(e.z,i,e.z,e.x,e.y),A=u.terrain.getMinMaxElevation(P);w=(d=A.minElevation)!==null&&d!==void 0?d:Math.min(0,l),C=(g=A.maxElevation)!==null&&g!==void 0?g:Math.max(0,l)}if(w/=s.bu,C/=s.bu,w+=1,C+=1,e.z<=0)return es.fromAabb([-C,-C,-C],[C,C,C]);if(e.z===1)return es.fromAabb([e.x===0?-C:0,e.y===0?0:-C,-C],[e.x===0?0:C,e.y===0?C:0,C]);{const P=[Sa(0,0,e.x,e.y,e.z),Sa(s.$,0,e.x,e.y,e.z),Sa(s.$,s.$,e.x,e.y,e.z),Sa(0,s.$,e.x,e.y,e.z)],A=[];for(const We of P)A.push(s.aR([],We,C));if(C!==w)for(const We of P)A.push(s.aR([],We,w));e.y===0&&A.push([0,1,0]),e.y===(1<=(1<{this._calcMatrices()},getConstrained:(e,i)=>this.getConstrained(e,i)}),this._coveringTilesDetailsProvider=new Za}clone(){const e=new zs;return e.apply(this),e}apply(e,i){this._globeLatitudeErrorCorrectionRadians=i||0,this._helper.apply(e)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixNoCorrection}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){const e=s.bp();return e[0]=this._cameraPosition[0],e[1]=this._cameraPosition[1],e[2]=this._cameraPosition[2],e}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(e){const{overscaledTileID:i,applyGlobeMatrix:l}=e,u=this._helper.getMercatorTileCoordinates(i);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:u,clippingPlane:this._cachedClippingPlane,projectionTransition:l?1:0,fallbackMatrix:this._globeViewProjMatrix32f}}_computeClippingPlane(e){const i=this.pitchInRadians,l=this.cameraToCenterDistance/e,u=Math.sin(i)*l,d=Math.cos(i)*l+1,g=1/Math.sqrt(u*u+d*d)*1;let w=-u,C=d;const P=Math.sqrt(w*w+C*C);w/=P,C/=P;const A=[0,w,C];s.bw(A,A,[0,0,0],-this.bearingInRadians),s.bx(A,A,[0,0,0],-1*this.center.lat*Math.PI/180),s.by(A,A,[0,0,0],this.center.lng*Math.PI/180);const R=1/s.aZ(A);return s.aR(A,A,R),[...A,-g*R]}isLocationOccluded(e){return!this.isSurfacePointVisible(wi(e))}transformLightDirection(e){const i=this._helper._center.lng*Math.PI/180,l=this._helper._center.lat*Math.PI/180,u=Math.cos(l),d=[Math.sin(i)*u,Math.sin(l),Math.cos(i)*u],g=[d[2],0,-d[0]],w=[0,0,0];s.aW(w,g,d),s.aV(g,g),s.aV(w,w);const C=[0,0,0];return s.aV(C,[g[0]*e[0]+w[0]*e[1]+d[0]*e[2],g[1]*e[0]+w[1]*e[1]+d[1]*e[2],g[2]*e[0]+w[2]*e[1]+d[2]*e[2]]),C}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(e,i,l){const u=(function(w,C,P){const A=1/(1<d&&(d=D),Ow&&(w=O)}const A=[P.lng+g,P.lat+C,P.lng+d,P.lat+w];return this.isSurfacePointOnScreen([0,1,0])&&(A[3]=90,A[0]=-180,A[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(A[1]=-90,A[0]=-180,A[2]=180),new mt(A)}getConstrained(e,i){const l=s.ah(e.lat,-s.ai,s.ai),u=s.ah(+i,this.minZoom+ei(0,l),this.maxZoom);return{center:new s.S(e.lng,l),zoom:u}}calculateCenterFromCameraLngLatAlt(e,i,l,u){return this._helper.calculateCenterFromCameraLngLatAlt(e,i,l,u)}setLocationAtPoint(e,i){const l=wi(this.unprojectScreenPoint(i)),u=wi(e),d=s.bp();s.bB(d);const g=s.bp();s.by(g,l,d,-this.center.lng*Math.PI/180),s.bx(g,g,d,this.center.lat*Math.PI/180);const w=u[0]*u[0]+u[2]*u[2],C=g[0]*g[0];if(w=-ne&&$<=ne,_e=Q>=-ne&&Q<=ne;let he,we;if(ue&&_e){const Qe=this.center.lng*Math.PI/180,Ue=this.center.lat*Math.PI/180;s.bD(R,Qe)+s.bD($,Ue)=0}isSurfacePointOnScreen(e){if(!this.isSurfacePointVisible(e))return!1;const i=s.bv();return s.aw(i,[...e,1],this._globeViewProjMatrixNoCorrection),i[0]/=i[3],i[1]/=i[3],i[2]/=i[3],i[0]>-1&&i[0]<1&&i[1]>-1&&i[1]<1&&i[2]>-1&&i[2]<1}rayPlanetIntersection(e,i){const l=s.aX(e,i),u=s.bp(),d=s.bp();s.aR(d,i,l),s.aU(u,e,d);const g=1-s.aX(u,u);if(g<0)return null;const w=s.aX(e,e)-1,C=-l+(l<0?1:-1)*Math.sqrt(g),P=w/C,A=C;return{tMin:Math.min(P,A),tMax:Math.max(P,A)}}unprojectScreenPoint(e){const i=this._cameraPosition,l=this.getRayDirectionFromPixel(e),u=this.rayPlanetIntersection(i,l);if(u){const A=s.bp();s.aS(A,i,[l[0]*u.tMin,l[1]*u.tMin,l[2]*u.tMin]);const R=s.bp();return s.aV(R,A),Ms(R)}const d=this._cachedClippingPlane,g=d[0]*l[0]+d[1]*l[1]+d[2]*l[2],w=-s.b1(d,i)/g,C=s.bp();if(w>0)s.aS(C,i,[l[0]*w,l[1]*w,l[2]*w]);else{const A=s.bp();s.aS(A,i,[2*l[0],2*l[1],2*l[2]]);const R=s.b1(this._cachedClippingPlane,A);s.aU(C,A,[this._cachedClippingPlane[0]*R,this._cachedClippingPlane[1]*R,this._cachedClippingPlane[2]*R])}const P=(function(A){const R=s.bp();return R[0]=A[0]*-A[3],R[1]=A[1]*-A[3],R[2]=A[2]*-A[3],{center:R,radius:Math.sqrt(1-A[3]*A[3])}})(d);return Ms((function(A,R,D){const O=s.bp();s.aU(O,D,A);const $=s.bp();return s.bq($,A,O,R/s.a$(O)),$})(P.center,P.radius,C))}getMatrixForModel(e,i){const l=s.S.convert(e),u=1/s.bu,d=s.b9();return s.bz(d,d,l.lng/180*Math.PI),s.b7(d,d,-l.lat/180*Math.PI),s.M(d,d,[0,0,1+i/s.bu]),s.b7(d,d,.5*Math.PI),s.N(d,d,[u,u,u]),d}getProjectionDataForCustomLayer(e=!0){const i=this.getProjectionData({overscaledTileID:new s.Z(0,0,0,0,0),applyGlobeMatrix:e});return i.tileMercatorCoords=[0,0,1,1],i}getFastPathSimpleProjectionMatrix(e){}}class Ls{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,i,l){return this._helper.interpolatePadding(e,i,l)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,i,l=!0){this._helper.resize(e,i,l)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,i){this._helper.overrideNearFarZ(e,i)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(e,i){this._globeness=e,this._globeLatitudeErrorCorrectionRadians=i,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(),this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(){this._globeLatitudeErrorCorrectionRadians=0,this._globeness=1,this._helper=new Sn({calcMatrices:()=>{this._calcMatrices()},getConstrained:(e,i)=>this.getConstrained(e,i)}),this._globeness=1,this._mercatorTransform=new an,this._verticalPerspectiveTransform=new zs}clone(){const e=new Ls;return e._globeness=this._globeness,e._globeLatitudeErrorCorrectionRadians=this._globeLatitudeErrorCorrectionRadians,e.apply(this),e}apply(e){this._helper.apply(e),this._mercatorTransform.apply(this),this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians)}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(e){const i=this._mercatorTransform.getProjectionData(e),l=this._verticalPerspectiveTransform.getProjectionData(e);return{mainMatrix:this.isGlobeRendering?l.mainMatrix:i.mainMatrix,clippingPlane:l.clippingPlane,tileMercatorCoords:l.tileMercatorCoords,projectionTransition:e.applyGlobeMatrix?this._globeness:0,fallbackMatrix:i.fallbackMatrix}}isLocationOccluded(e){return this.currentTransform.isLocationOccluded(e)}transformLightDirection(e){return this.currentTransform.transformLightDirection(e)}getPixelScale(){return s.bk(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return s.bk(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(e,i,l){const u=this._mercatorTransform.getPitchedTextCorrection(e,i,l),d=this._verticalPerspectiveTransform.getPitchedTextCorrection(e,i,l);return s.bk(u,d,this._globeness)}projectTileCoordinates(e,i,l,u){return this.currentTransform.projectTileCoordinates(e,i,l,u)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians),this._helper._nearZ=this._verticalPerspectiveTransform.nearZ,this._helper._farZ=this._verticalPerspectiveTransform.farZ,this._mercatorTransform.apply(this,!0,this.isGlobeRendering),this._helper._nearZ=this._mercatorTransform.nearZ,this._helper._farZ=this._mercatorTransform.farZ)}calculateFogMatrix(e){return this.currentTransform.calculateFogMatrix(e)}getVisibleUnwrappedCoordinates(e){return this.currentTransform.getVisibleUnwrappedCoordinates(e)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(e){this._mercatorTransform.recalculateZoomAndCenter(e),this._verticalPerspectiveTransform.recalculateZoomAndCenter(e)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(e,i){return this.currentTransform.lngLatToCameraDepth(e,i)}populateCache(e){this._mercatorTransform.populateCache(e),this._verticalPerspectiveTransform.populateCache(e)}getBounds(){return this.currentTransform.getBounds()}getConstrained(e,i){return this.currentTransform.getConstrained(e,i)}calculateCenterFromCameraLngLatAlt(e,i,l,u){return this._helper.calculateCenterFromCameraLngLatAlt(e,i,l,u)}setLocationAtPoint(e,i){if(!this.isGlobeRendering)return this._mercatorTransform.setLocationAtPoint(e,i),void this.apply(this._mercatorTransform);this._verticalPerspectiveTransform.setLocationAtPoint(e,i),this.apply(this._verticalPerspectiveTransform)}locationToScreenPoint(e,i){return this.currentTransform.locationToScreenPoint(e,i)}screenPointToMercatorCoordinate(e,i){return this.currentTransform.screenPointToMercatorCoordinate(e,i)}screenPointToLocation(e,i){return this.currentTransform.screenPointToLocation(e,i)}isPointOnMapSurface(e,i){return this.currentTransform.isPointOnMapSurface(e,i)}getRayDirectionFromPixel(e){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e)}getMatrixForModel(e,i){return this.currentTransform.getMatrixForModel(e,i)}getProjectionDataForCustomLayer(e=!0){const i=this._mercatorTransform.getProjectionDataForCustomLayer(e);if(!this.isGlobeRendering)return i;const l=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e);return l.fallbackMatrix=i.mainMatrix,l}getFastPathSimpleProjectionMatrix(e){return this.currentTransform.getFastPathSimpleProjectionMatrix(e)}}class Ni{get useGlobeControls(){return!0}handlePanInertia(e,i){const l=Bh(e,i);return Math.abs(l.lng-i.center.lng)>180&&(l.lng=i.center.lng+179.5*Math.sign(l.lng-i.center.lng)),{easingCenter:l,easingOffset:new s.P(0,0)}}handleMapControlsRollPitchBearingZoom(e,i){const l=e.around,u=i.screenPointToLocation(l);e.bearingDelta&&i.setBearing(i.bearing+e.bearingDelta),e.pitchDelta&&i.setPitch(i.pitch+e.pitchDelta),e.rollDelta&&i.setRoll(i.roll+e.rollDelta);const d=i.zoom;e.zoomDelta&&i.setZoom(i.zoom+e.zoomDelta);const g=i.zoom-d;if(g===0)return;const w=s.bA(i.center.lng,u.lng),C=w/(Math.abs(w/180)+1),P=s.bA(i.center.lat,u.lat),A=i.getRayDirectionFromPixel(l),R=i.cameraPosition,D=-1*s.aX(R,A),O=s.bp();s.aS(O,R,[A[0]*D,A[1]*D,A[2]*D]);const $=s.aZ(O)-1,ee=Math.exp(.5*-Math.max($-.3,0)),Q=Qo(i.worldSize,i.center.lat)/Math.min(i.width,i.height),ne=s.bn(Q,.9,.5,1,.25),ue=(1-s.af(-g))*Math.min(ee,ne),_e=i.center.lat,he=i.zoom,we=new s.S(i.center.lng+C*ue,s.ah(i.center.lat+P*ue,-s.ai,s.ai));i.setLocationAtPoint(u,l);const Pe=i.center,pe=s.bn(Math.abs(w),45,85,0,1),Be=s.bn(Q,.75,.35,0,1),Qe=Math.pow(Math.max(pe,Be),.25),Ue=s.bA(Pe.lng,we.lng),We=s.bA(Pe.lat,we.lat);i.setCenter(new s.S(Pe.lng+Ue*Qe,Pe.lat+We*Qe).wrap()),i.setZoom(he+ei(_e,i.center.lat))}handleMapControlsPan(e,i,l){if(!e.panDelta)return;const u=i.center.lat,d=i.zoom;i.setCenter(Bh(e.panDelta,i).wrap()),i.setZoom(d+ei(u,i.center.lat))}cameraForBoxAndBearing(e,i,l,u,d){const g=Gn(e,i,l,u,d),w=i.left/d.width*2-1,C=(d.width-i.right)/d.width*2-1,P=i.top/d.height*-2+1,A=(d.height-i.bottom)/d.height*-2+1,R=s.bA(l.getWest(),l.getEast())<0,D=R?l.getEast():l.getWest(),O=R?l.getWest():l.getEast(),$=Math.max(l.getNorth(),l.getSouth()),ee=Math.min(l.getNorth(),l.getSouth()),Q=D+.5*s.bA(D,O),ne=$+.5*s.bA($,ee),ue=d.clone();ue.setCenter(g.center),ue.setBearing(g.bearing),ue.setPitch(0),ue.setRoll(0),ue.setZoom(g.zoom);const _e=ue.modelViewProjectionMatrix,he=[wi(l.getNorthWest()),wi(l.getNorthEast()),wi(l.getSouthWest()),wi(l.getSouthEast()),wi(new s.S(O,ne)),wi(new s.S(D,ne)),wi(new s.S(Q,$)),wi(new s.S(Q,ee))],we=wi(g.center);let Pe=Number.POSITIVE_INFINITY;for(const pe of he)w<0&&(Pe=Ni.getLesserNonNegativeNonNull(Pe,Ni.solveVectorScale(pe,we,_e,"x",w))),C>0&&(Pe=Ni.getLesserNonNegativeNonNull(Pe,Ni.solveVectorScale(pe,we,_e,"x",C))),P>0&&(Pe=Ni.getLesserNonNegativeNonNull(Pe,Ni.solveVectorScale(pe,we,_e,"y",P))),A<0&&(Pe=Ni.getLesserNonNegativeNonNull(Pe,Ni.solveVectorScale(pe,we,_e,"y",A)));if(Number.isFinite(Pe)&&Pe!==0)return g.zoom=ue.zoom+s.ak(Pe),g;po()}handleJumpToCenterZoom(e,i){const l=e.center.lat,u=e.getConstrained(i.center?s.S.convert(i.center):e.center,e.zoom).center;e.setCenter(u.wrap());const d=i.zoom!==void 0?+i.zoom:e.zoom+ei(l,u.lat);e.zoom!==d&&e.setZoom(d)}handleEaseTo(e,i){const l=e.zoom,u=e.center,d=e.padding,g={roll:e.roll,pitch:e.pitch,bearing:e.bearing},w={roll:i.roll===void 0?e.roll:i.roll,pitch:i.pitch===void 0?e.pitch:i.pitch,bearing:i.bearing===void 0?e.bearing:i.bearing},C=i.zoom!==void 0,P=!e.isPaddingEqual(i.padding);let A=!1;const R=i.center?s.S.convert(i.center):u,D=e.getConstrained(R,l).center;bn(e,D);const O=e.clone();O.setCenter(D),O.setZoom(C?+i.zoom:l+ei(u.lat,R.lat)),O.setBearing(i.bearing);const $=new s.P(s.ah(e.centerPoint.x+i.offsetAsPoint.x,0,e.width),s.ah(e.centerPoint.y+i.offsetAsPoint.y,0,e.height));O.setLocationAtPoint(D,$);const ee=(i.offset&&i.offsetAsPoint.mag())>0?O.center:D,Q=C?+i.zoom:l+ei(u.lat,ee.lat),ne=l+ei(u.lat,0),ue=Q+ei(ee.lat,0),_e=s.bA(u.lng,ee.lng),he=s.bA(u.lat,ee.lat),we=s.af(ue-ne);return A=Q!==l,{easeFunc:Pe=>{if(s.be(g,w)||pi({startEulerAngles:g,endEulerAngles:w,tr:e,k:Pe,useSlerp:g.roll!=w.roll}),P&&e.interpolatePadding(d,i.padding,Pe),i.around)s.w("Easing around a point is not supported under globe projection."),e.setLocationAtPoint(i.around,i.aroundPoint);else{const pe=ue>ne?Math.min(2,we):Math.max(.5,we),Be=Math.pow(pe,1-Pe),Qe=Ec(u,_e,he,Pe*Be);e.setCenter(Qe.wrap())}if(A){const pe=s.C.number(ne,ue,Pe)+ei(0,e.center.lat);e.setZoom(pe)}},isZooming:A,elevationCenter:ee}}handleFlyTo(e,i){const l=i.zoom!==void 0,u=e.center,d=e.zoom,g=e.padding,w=!e.isPaddingEqual(i.padding),C=e.getConstrained(s.S.convert(i.center||i.locationAtOffset),d).center,P=l?+i.zoom:e.zoom+ei(e.center.lat,C.lat),A=e.clone();A.setCenter(C),A.setZoom(P),A.setBearing(i.bearing);const R=new s.P(s.ah(e.centerPoint.x+i.offsetAsPoint.x,0,e.width),s.ah(e.centerPoint.y+i.offsetAsPoint.y,0,e.height));A.setLocationAtPoint(C,R);const D=A.center;bn(e,D);const O=(function(he,we,Pe){const pe=wi(we),Be=wi(Pe),Qe=s.aX(pe,Be),Ue=Math.acos(Qe),We=vl(he);return Ue/(2*Math.PI)*We})(e,u,D),$=d+ei(u.lat,0),ee=P+ei(D.lat,0),Q=s.af(ee-$);let ne;if(typeof i.minZoom=="number"){const he=+i.minZoom+ei(D.lat,0),we=Math.min(he,$,ee)+ei(0,D.lat),Pe=e.getConstrained(D,we).zoom+ei(D.lat,0);ne=s.af(Pe-$)}const ue=s.bA(u.lng,D.lng),_e=s.bA(u.lat,D.lat);return{easeFunc:(he,we,Pe,pe)=>{const Be=Ec(u,ue,_e,Pe);w&&e.interpolatePadding(g,i.padding,he);const Qe=he===1?D:Be;e.setCenter(Qe.wrap());const Ue=$+s.ak(we);e.setZoom(he===1?P:Ue+ei(0,Qe.lat))},scaleOfZoom:Q,targetCenter:D,scaleOfMinZoom:ne,pixelPathLength:O}}static solveVectorScale(e,i,l,u,d){const g=u==="x"?[l[0],l[4],l[8],l[12]]:[l[1],l[5],l[9],l[13]],w=[l[3],l[7],l[11],l[15]],C=e[0]*g[0]+e[1]*g[1]+e[2]*g[2],P=e[0]*w[0]+e[1]*w[1]+e[2]*w[2],A=i[0]*g[0]+i[1]*g[1]+i[2]*g[2],R=i[0]*w[0]+i[1]*w[1]+i[2]*w[2];return A+d*P===C+d*R||w[3]*(C-A)+g[3]*(R-P)+C*R==A*P?null:(A+g[3]-d*R-d*w[3])/(A-C-d*R+d*P)}static getLesserNonNegativeNonNull(e,i){return i!==null&&i>=0&&is.y(h,e&&e.filter((i=>i.identifier!=="source.canvas"))),bp=s.bE();class zc extends s.E{constructor(e,i={}){super(),this._rtlPluginLoaded=()=>{for(const l in this.sourceCaches){const u=this.sourceCaches[l].getSource().type;u!=="vector"&&u!=="geojson"||this.sourceCaches[l].reload()}},this.map=e,this.dispatcher=new Bt(St(),e._getMapId()),this.dispatcher.registerMessageHandler("GG",((l,u)=>this.getGlyphs(l,u))),this.dispatcher.registerMessageHandler("GI",((l,u)=>this.getImages(l,u))),this.imageManager=new et,this.imageManager.setEventedParent(this),this.glyphManager=new Ze(e._requestManager,i.localIdeographFontFamily),this.lineAtlas=new oe(256,512),this.crossTileSymbolIndex=new sr,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new s.bF,this._loaded=!1,this._availableImages=[],this._globalState={},this._resetUpdates(),this.dispatcher.broadcast("SR",s.bG()),Dr().on(Kt,this._rtlPluginLoaded),this.on("data",(l=>{if(l.dataType!=="source"||l.sourceDataType!=="metadata")return;const u=this.sourceCaches[l.sourceId];if(!u)return;const d=u.getSource();if(d&&d.vectorLayerIds)for(const g in this._layers){const w=this._layers[g];w.source===d.id&&this._validateLayer(w)}}))}setGlobalStateProperty(e,i){var l,u,d;this._checkLoaded();const g=i===null?(d=(u=(l=this.stylesheet.state)===null||l===void 0?void 0:l[e])===null||u===void 0?void 0:u.default)!==null&&d!==void 0?d:null:i;if(s.bH(g,this._globalState[e]))return this;this._globalState[e]=g;const w=this._findGlobalStateAffectedSources([e]);for(const C in this.sourceCaches)w.has(C)&&(this._reloadSource(C),this._changed=!0)}getGlobalState(){return this._globalState}setGlobalState(e){this._checkLoaded();const i=[];for(const u in e)!s.bH(this._globalState[u],e[u].default)&&(i.push(u),this._globalState[u]=e[u].default);const l=this._findGlobalStateAffectedSources(i);for(const u in this.sourceCaches)l.has(u)&&(this._reloadSource(u),this._changed=!0)}_findGlobalStateAffectedSources(e){if(e.length===0)return new Set;const i=new Set;for(const l in this._layers){const u=this._layers[l],d=u.getLayoutAffectingGlobalStateRefs();for(const g of e)d.has(g)&&i.add(u.source)}return i}loadURL(e,i={},l){this.fire(new s.l("dataloading",{dataType:"style"})),i.validate=typeof i.validate!="boolean"||i.validate;const u=this.map._requestManager.transformRequest(e,"Style");this._loadStyleRequest=new AbortController;const d=this._loadStyleRequest;s.j(u,this._loadStyleRequest).then((g=>{this._loadStyleRequest=null,this._load(g.data,i,l)})).catch((g=>{this._loadStyleRequest=null,g&&!d.signal.aborted&&this.fire(new s.k(g))}))}loadJSON(e,i={},l){this.fire(new s.l("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,ie.frameAsync(this._frameRequest).then((()=>{this._frameRequest=null,i.validate=i.validate!==!1,this._load(e,i,l)})).catch((()=>{}))}loadEmpty(){this.fire(new s.l("dataloading",{dataType:"style"})),this._load(bp,{validate:!1})}_load(e,i,l){var u,d,g;const w=i.transformStyle?i.transformStyle(l,e):e;if(!i.validate||!yl(this,s.z(w))){this._loaded=!0,this.stylesheet=w;for(const C in w.sources)this.addSource(C,w.sources[C],{validate:!1});w.sprite?this._loadSprite(w.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(w.glyphs),this._createLayers(),this.light=new te(this.stylesheet.light),this._setProjectionInternal(((u=this.stylesheet.projection)===null||u===void 0?void 0:u.type)||"mercator"),this.sky=new ge(this.stylesheet.sky),this.map.setTerrain((d=this.stylesheet.terrain)!==null&&d!==void 0?d:null),this.setGlobalState((g=this.stylesheet.state)!==null&&g!==void 0?g:null),this.fire(new s.l("data",{dataType:"style"})),this.fire(new s.l("style.load"))}}_createLayers(){const e=s.bI(this.stylesheet.layers);this.dispatcher.broadcast("SL",e),this._order=e.map((i=>i.id)),this._layers={},this._serializedLayers=null;for(const i of e){const l=s.bJ(i);l.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=l}}_loadSprite(e,i=!1,l=void 0){let u;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,(function(d,g,w,C){return s._(this,void 0,void 0,(function*(){const P=rt(d),A=w>1?"@2x":"",R={},D={};for(const{id:O,url:$}of P){const ee=g.transformRequest(qe($,A,".json"),"SpriteJSON");R[O]=s.j(ee,C);const Q=g.transformRequest(qe($,A,".png"),"SpriteImage");D[O]=Fe.getImage(Q,C)}return yield Promise.all([...Object.values(R),...Object.values(D)]),(function(O,$){return s._(this,void 0,void 0,(function*(){const ee={};for(const Q in O){ee[Q]={};const ne=ie.getImageCanvasContext((yield $[Q]).data),ue=(yield O[Q]).data;for(const _e in ue){const{width:he,height:we,x:Pe,y:pe,sdf:Be,pixelRatio:Qe,stretchX:Ue,stretchY:We,content:Je,textFitWidth:Nt,textFitHeight:Zt}=ue[_e];ee[Q][_e]={data:null,pixelRatio:Qe,sdf:Be,stretchX:Ue,stretchY:We,content:Je,textFitWidth:Nt,textFitHeight:Zt,spriteData:{width:he,height:we,x:Pe,y:pe,context:ne}}}}return ee}))})(R,D)}))})(e,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then((d=>{if(this._spriteRequest=null,d)for(const g in d){this._spritesImagesIds[g]=[];const w=this._spritesImagesIds[g]?this._spritesImagesIds[g].filter((C=>!(C in d))):[];for(const C of w)this.imageManager.removeImage(C),this._changedImages[C]=!0;for(const C in d[g]){const P=g==="default"?C:`${g}:${C}`;this._spritesImagesIds[g].push(P),P in this.imageManager.images?this.imageManager.updateImage(P,d[g][C],!1):this.imageManager.addImage(P,d[g][C]),i&&(this._changedImages[P]=!0)}}})).catch((d=>{this._spriteRequest=null,u=d,this.fire(new s.k(u))})).finally((()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),i&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"})),l&&l(u)}))}_unloadSprite(){for(const e of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(e),this._changedImages[e]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}_validateLayer(e){const i=this.sourceCaches[e.source];if(!i)return;const l=e.sourceLayer;if(!l)return;const u=i.getSource();(u.type==="geojson"||u.vectorLayerIds&&u.vectorLayerIds.indexOf(l)===-1)&&this.fire(new s.k(new Error(`Source layer "${l}" does not exist on source "${u.id}" as specified by style layer "${e.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const e in this.sourceCaches)if(!this.sourceCaches[e].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(e,i=!1){const l=this._serializedAllLayers();if(!e||e.length===0)return Object.values(i?s.bK(l):l);const u=[];for(const d of e)if(l[d]){const g=i?s.bK(l[d]):l[d];u.push(g)}return u}_serializedAllLayers(){let e=this._serializedLayers;if(e)return e;e=this._serializedLayers={};const i=Object.keys(this._layers);for(const l of i){const u=this._layers[l];u.type!=="custom"&&(e[l]=u.serialize())}return e}hasTransitions(){var e,i,l;if(!((e=this.light)===null||e===void 0)&&e.hasTransition()||!((i=this.sky)===null||i===void 0)&&i.hasTransition()||!((l=this.projection)===null||l===void 0)&&l.hasTransition())return!0;for(const u in this.sourceCaches)if(this.sourceCaches[u].hasTransition())return!0;for(const u in this._layers)if(this._layers[u].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(e){if(!this._loaded)return;const i=this._changed;if(i){const u=Object.keys(this._updatedLayers),d=Object.keys(this._removedLayers);(u.length||d.length)&&this._updateWorkerLayers(u,d);for(const g in this._updatedSources){const w=this._updatedSources[g];if(w==="reload")this._reloadSource(g);else{if(w!=="clear")throw new Error(`Invalid action ${w}`);this._clearSource(g)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const g in this._updatedPaintProps)this._layers[g].updateTransitions(e);this.light.updateTransitions(e),this.sky.updateTransitions(e),this._resetUpdates()}const l={};for(const u in this.sourceCaches){const d=this.sourceCaches[u];l[u]=d.used,d.used=!1}for(const u of this._order){const d=this._layers[u];d.recalculate(e,this._availableImages),!d.isHidden(e.zoom)&&d.source&&(this.sourceCaches[d.source].used=!0)}for(const u in l){const d=this.sourceCaches[u];!!l[u]!=!!d.used&&d.fire(new s.l("data",{sourceDataType:"visibility",dataType:"source",sourceId:u}))}this.light.recalculate(e),this.sky.recalculate(e),this.projection.recalculate(e),this.z=e.zoom,i&&this.fire(new s.l("data",{dataType:"style"}))}_updateTilesForChangedImages(){const e=Object.keys(this._changedImages);if(e.length){for(const i in this.sourceCaches)this.sourceCaches[i].reloadTilesForDependencies(["icons","patterns"],e);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(e,i){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(e,!1),removedIds:i})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(e,i={}){var l;this._checkLoaded();const u=this.serialize();if(e=i.transformStyle?i.transformStyle(u,e):e,((l=i.validate)===null||l===void 0||l)&&yl(this,s.z(e)))return!1;(e=s.bK(e)).layers=s.bI(e.layers);const d=s.bL(u,e),g=this._getOperationsToPerform(d);if(g.unimplemented.length>0)throw new Error(`Unimplemented: ${g.unimplemented.join(", ")}.`);if(g.operations.length===0)return!1;for(const w of g.operations)w();return this.stylesheet=e,this._serializedLayers=null,!0}_getOperationsToPerform(e){const i=[],l=[];for(const u of e)switch(u.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":case"setRoll":continue;case"addLayer":i.push((()=>this.addLayer.apply(this,u.args)));break;case"removeLayer":i.push((()=>this.removeLayer.apply(this,u.args)));break;case"setPaintProperty":i.push((()=>this.setPaintProperty.apply(this,u.args)));break;case"setLayoutProperty":i.push((()=>this.setLayoutProperty.apply(this,u.args)));break;case"setFilter":i.push((()=>this.setFilter.apply(this,u.args)));break;case"addSource":i.push((()=>this.addSource.apply(this,u.args)));break;case"removeSource":i.push((()=>this.removeSource.apply(this,u.args)));break;case"setLayerZoomRange":i.push((()=>this.setLayerZoomRange.apply(this,u.args)));break;case"setLight":i.push((()=>this.setLight.apply(this,u.args)));break;case"setGeoJSONSourceData":i.push((()=>this.setGeoJSONSourceData.apply(this,u.args)));break;case"setGlyphs":i.push((()=>this.setGlyphs.apply(this,u.args)));break;case"setSprite":i.push((()=>this.setSprite.apply(this,u.args)));break;case"setTerrain":i.push((()=>this.map.setTerrain.apply(this,u.args)));break;case"setSky":i.push((()=>this.setSky.apply(this,u.args)));break;case"setProjection":this.setProjection.apply(this,u.args);break;case"setGlobalState":i.push((()=>this.setGlobalState.apply(this,u.args)));break;case"setTransition":i.push((()=>{}));break;default:l.push(u.command)}return{operations:i,unimplemented:l}}addImage(e,i){if(this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" already exists.`)));this.imageManager.addImage(e,i),this._afterImageUpdated(e)}updateImage(e,i){this.imageManager.updateImage(e,i)}getImage(e){return this.imageManager.getImage(e)}removeImage(e){if(!this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" does not exist.`)));this.imageManager.removeImage(e),this._afterImageUpdated(e)}_afterImageUpdated(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,i,l={}){if(this._checkLoaded(),this.sourceCaches[e]!==void 0)throw new Error(`Source "${e}" already exists.`);if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(s.z.source,`sources.${e}`,i,null,l))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const u=this.sourceCaches[e]=new cr(e,i,this.dispatcher);u.style=this,u.setEventedParent(this,(()=>({isSourceLoaded:u.loaded(),source:u.serialize(),sourceId:e}))),u.onAdd(this.map),this._changed=!0}removeSource(e){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error("There is no source with this ID");for(const l in this._layers)if(this._layers[l].source===e)return this.fire(new s.k(new Error(`Source "${e}" cannot be removed while layer "${l}" is using it.`)));const i=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],i.fire(new s.l("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),i.setEventedParent(null),i.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(e,i){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error(`There is no source with this ID=${e}`);const l=this.sourceCaches[e].getSource();if(l.type!=="geojson")throw new Error(`geojsonSource.type is ${l.type}, which is !== 'geojson`);l.setData(i),this._changed=!0}getSource(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()}addLayer(e,i,l={}){this._checkLoaded();const u=e.id;if(this.getLayer(u))return void this.fire(new s.k(new Error(`Layer "${u}" already exists on this map.`)));let d;if(e.type==="custom"){if(yl(this,s.bM(e)))return;d=s.bJ(e)}else{if("source"in e&&typeof e.source=="object"&&(this.addSource(u,e.source),e=s.bK(e),e=s.e(e,{source:u})),this._validate(s.z.layer,`layers.${u}`,e,{arrayIndex:-1},l))return;d=s.bJ(e),this._validateLayer(d),d.setEventedParent(this,{layer:{id:u}})}const g=i?this._order.indexOf(i):this._order.length;if(i&&g===-1)this.fire(new s.k(new Error(`Cannot add layer "${u}" before non-existing layer "${i}".`)));else{if(this._order.splice(g,0,u),this._layerOrderChanged=!0,this._layers[u]=d,this._removedLayers[u]&&d.source&&d.type!=="custom"){const w=this._removedLayers[u];delete this._removedLayers[u],w.type!==d.type?this._updatedSources[d.source]="clear":(this._updatedSources[d.source]="reload",this.sourceCaches[d.source].pause())}this._updateLayer(d),d.onAdd&&d.onAdd(this.map)}}moveLayer(e,i){if(this._checkLoaded(),this._changed=!0,!this._layers[e])return void this.fire(new s.k(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));if(e===i)return;const l=this._order.indexOf(e);this._order.splice(l,1);const u=i?this._order.indexOf(i):this._order.length;i&&u===-1?this.fire(new s.k(new Error(`Cannot move layer "${e}" before non-existing layer "${i}".`))):(this._order.splice(u,0,e),this._layerOrderChanged=!0)}removeLayer(e){this._checkLoaded();const i=this._layers[e];if(!i)return void this.fire(new s.k(new Error(`Cannot remove non-existing layer "${e}".`)));i.setEventedParent(null);const l=this._order.indexOf(e);this._order.splice(l,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],this._serializedLayers&&delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],i.onRemove&&i.onRemove(this.map)}getLayer(e){return this._layers[e]}getLayersOrder(){return[...this._order]}hasLayer(e){return e in this._layers}setLayerZoomRange(e,i,l){this._checkLoaded();const u=this.getLayer(e);u?u.minzoom===i&&u.maxzoom===l||(i!=null&&(u.minzoom=i),l!=null&&(u.maxzoom=l),this._updateLayer(u)):this.fire(new s.k(new Error(`Cannot set the zoom range of non-existing layer "${e}".`)))}setFilter(e,i,l={}){this._checkLoaded();const u=this.getLayer(e);if(u){if(!s.bH(u.filter,i))return i==null?(u.setFilter(void 0),void this._updateLayer(u)):void(this._validate(s.z.filter,`layers.${u.id}.filter`,i,null,l)||(u.setFilter(s.bK(i)),this._updateLayer(u)))}else this.fire(new s.k(new Error(`Cannot filter non-existing layer "${e}".`)))}getFilter(e){return s.bK(this.getLayer(e).filter)}setLayoutProperty(e,i,l,u={}){this._checkLoaded();const d=this.getLayer(e);d?s.bH(d.getLayoutProperty(i),l)||(d.setLayoutProperty(i,l,u),this._updateLayer(d)):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getLayoutProperty(e,i){const l=this.getLayer(e);if(l)return l.getLayoutProperty(i);this.fire(new s.k(new Error(`Cannot get style of non-existing layer "${e}".`)))}setPaintProperty(e,i,l,u={}){this._checkLoaded();const d=this.getLayer(e);d?s.bH(d.getPaintProperty(i),l)||(d.setPaintProperty(i,l,u)&&this._updateLayer(d),this._changed=!0,this._updatedPaintProps[e]=!0,this._serializedLayers=null):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getPaintProperty(e,i){return this.getLayer(e).getPaintProperty(i)}setFeatureState(e,i){this._checkLoaded();const l=e.source,u=e.sourceLayer,d=this.sourceCaches[l];if(d===void 0)return void this.fire(new s.k(new Error(`The source '${l}' does not exist in the map's style.`)));const g=d.getSource().type;g==="geojson"&&u?this.fire(new s.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):g!=="vector"||u?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),d.setFeatureState(u,e.id,i)):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(e,i){this._checkLoaded();const l=e.source,u=this.sourceCaches[l];if(u===void 0)return void this.fire(new s.k(new Error(`The source '${l}' does not exist in the map's style.`)));const d=u.getSource().type,g=d==="vector"?e.sourceLayer:void 0;d!=="vector"||g?i&&typeof e.id!="string"&&typeof e.id!="number"?this.fire(new s.k(new Error("A feature id is required to remove its specific state property."))):u.removeFeatureState(g,e.id,i):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(e){this._checkLoaded();const i=e.source,l=e.sourceLayer,u=this.sourceCaches[i];if(u!==void 0)return u.getSource().type!=="vector"||l?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),u.getFeatureState(l,e.id)):void this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new s.k(new Error(`The source '${i}' does not exist in the map's style.`)))}getTransition(){return s.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const e=s.bN(this.sourceCaches,(d=>d.serialize())),i=this._serializeByIds(this._order,!0),l=this.map.getTerrain()||void 0,u=this.stylesheet;return s.bO({version:u.version,name:u.name,metadata:u.metadata,light:u.light,sky:u.sky,center:u.center,zoom:u.zoom,bearing:u.bearing,pitch:u.pitch,sprite:u.sprite,glyphs:u.glyphs,transition:u.transition,projection:u.projection,sources:e,layers:i,terrain:l},(d=>d!==void 0))}_updateLayer(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&this.sourceCaches[e.source].getSource().type!=="raster"&&(this._updatedSources[e.source]="reload",this.sourceCaches[e.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(e){const i=g=>this._layers[g].type==="fill-extrusion",l={},u=[];for(let g=this._order.length-1;g>=0;g--){const w=this._order[g];if(i(w)){l[w]=g;for(const C of e){const P=C[w];if(P)for(const A of P)u.push(A)}}}u.sort(((g,w)=>w.intersectionZ-g.intersectionZ));const d=[];for(let g=this._order.length-1;g>=0;g--){const w=this._order[g];if(i(w))for(let C=u.length-1;C>=0;C--){const P=u[C].feature;if(l[P.layer.id]this.map.terrain.getElevation(A,R,D):void 0));return this.placement&&d.push((function(P,A,R,D,O,$,ee){const Q={},ne=$.queryRenderedSymbols(D),ue=[];for(const _e of Object.keys(ne).map(Number))ue.push(ee[_e]);ue.sort(yt);for(const _e of ue){const he=_e.featureIndex.lookupSymbolFeatures(ne[_e.bucketInstanceId],A,_e.bucketIndex,_e.sourceLayerIndex,O.filter,O.layers,O.availableImages,P);for(const we in he){const Pe=Q[we]=Q[we]||[],pe=he[we];pe.sort(((Be,Qe)=>{const Ue=_e.featureSortOrder;if(Ue){const We=Ue.indexOf(Be.featureIndex);return Ue.indexOf(Qe.featureIndex)-We}return Qe.featureIndex-Be.featureIndex}));for(const Be of pe)Pe.push(Be)}}return(function(_e,he,we){for(const Pe in _e)for(const pe of _e[Pe])It(pe,we[he[Pe].source]);return _e})(Q,P,R)})(this._layers,g,this.sourceCaches,e,C,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(d)}querySourceFeatures(e,i){i&&i.filter&&this._validate(s.z.filter,"querySourceFeatures.filter",i.filter,null,i);const l=this.sourceCaches[e];return l?(function(u,d){const g=u.getRenderableIds().map((P=>u.getTileByID(P))),w=[],C={};for(let P=0;PD.getTileByID(O))).sort(((O,$)=>$.tileID.overscaledZ-O.tileID.overscaledZ||(O.tileID.isLessThan($.tileID)?-1:1)))}const R=this.crossTileSymbolIndex.addLayer(A,C[A.source],e.center.lng);g=g||R}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((d=d||this._layerOrderChanged||l===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(ie.now(),e.zoom))&&(this.pauseablePlacement=new On(e,this.map.terrain,this._order,d,i,l,u,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,C),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(ie.now()),w=!0),g&&this.pauseablePlacement.placement.setStale()),w||g)for(const P of this._order){const A=this._layers[P];A.type==="symbol"&&this.placement.updateLayerOpacities(A,C[A.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(ie.now())}_releaseSymbolFadeTiles(){for(const e in this.sourceCaches)this.sourceCaches[e].releaseSymbolFadeTiles()}getImages(e,i){return s._(this,void 0,void 0,(function*(){const l=yield this.imageManager.getImages(i.icons);this._updateTilesForChangedImages();const u=this.sourceCaches[i.source];return u&&u.setDependencies(i.tileID.key,i.type,i.icons),l}))}getGlyphs(e,i){return s._(this,void 0,void 0,(function*(){const l=yield this.glyphManager.getGlyphs(i.stacks),u=this.sourceCaches[i.source];return u&&u.setDependencies(i.tileID.key,i.type,[""]),l}))}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,i={}){this._checkLoaded(),e&&this._validate(s.z.glyphs,"glyphs",e,null,i)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e))}addSprite(e,i,l={},u){this._checkLoaded();const d=[{id:e,url:i}],g=[...rt(this.stylesheet.sprite),...d];this._validate(s.z.sprite,"sprite",g,null,l)||(this.stylesheet.sprite=g,this._loadSprite(d,!0,u))}removeSprite(e){this._checkLoaded();const i=rt(this.stylesheet.sprite);if(i.find((l=>l.id===e))){if(this._spritesImagesIds[e])for(const l of this._spritesImagesIds[e])this.imageManager.removeImage(l),this._changedImages[l]=!0;i.splice(i.findIndex((l=>l.id===e)),1),this.stylesheet.sprite=i.length>0?i:void 0,delete this._spritesImagesIds[e],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}else this.fire(new s.k(new Error(`Sprite "${e}" doesn't exists on this map.`)))}getSprite(){return rt(this.stylesheet.sprite)}setSprite(e,i={},l){this._checkLoaded(),e&&this._validate(s.z.sprite,"sprite",e,null,i)||(this.stylesheet.sprite=e,e?this._loadSprite(e,!0,l):(this._unloadSprite(),l&&l(null)))}}var wp=s.aJ([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class Tp{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(e,i,l,u,d,g,w,C,P){this.context=e;let A=this.boundPaintVertexBuffers.length!==u.length;for(let R=0;!A&&R({u_texture:0,u_ele_delta:h,u_fog_matrix:e,u_fog_color:i?i.properties.get("fog-color"):s.bf.white,u_fog_ground_blend:i?i.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:u?0:i?i.calculateFogBlendOpacity(l):0,u_horizon_color:i?i.properties.get("horizon-color"):s.bf.white,u_horizon_fog_blend:i?i.properties.get("horizon-fog-blend"):1,u_is_globe_mode:u?1:0}),Lc={mainMatrix:"u_projection_matrix",tileMercatorCoords:"u_projection_tile_mercator_coords",clippingPlane:"u_projection_clipping_plane",projectionTransition:"u_projection_transition",fallbackMatrix:"u_projection_fallback_matrix"};function Ao(h){const e=[];for(let i=0;i({u_depth:new s.bP(Ue,We.u_depth),u_terrain:new s.bP(Ue,We.u_terrain),u_terrain_dim:new s.bg(Ue,We.u_terrain_dim),u_terrain_matrix:new s.bR(Ue,We.u_terrain_matrix),u_terrain_unpack:new s.bS(Ue,We.u_terrain_unpack),u_terrain_exaggeration:new s.bg(Ue,We.u_terrain_exaggeration)}))(e,Qe),this.projectionUniforms=((Ue,We)=>({u_projection_matrix:new s.bR(Ue,We.u_projection_matrix),u_projection_tile_mercator_coords:new s.bS(Ue,We.u_projection_tile_mercator_coords),u_projection_clipping_plane:new s.bS(Ue,We.u_projection_clipping_plane),u_projection_transition:new s.bg(Ue,We.u_projection_transition),u_projection_fallback_matrix:new s.bR(Ue,We.u_projection_fallback_matrix)}))(e,Qe),this.binderUniforms=l?l.getUniforms(e,Qe):[]}draw(e,i,l,u,d,g,w,C,P,A,R,D,O,$,ee,Q,ne,ue,_e){const he=e.gl;if(this.failedToCreate)return;if(e.program.set(this.program),e.setDepthMode(l),e.setStencilMode(u),e.setColorMode(d),e.setCullFace(g),C){e.activeTexture.set(he.TEXTURE2),he.bindTexture(he.TEXTURE_2D,C.depthTexture),e.activeTexture.set(he.TEXTURE3),he.bindTexture(he.TEXTURE_2D,C.texture);for(const Pe in this.terrainUniforms)this.terrainUniforms[Pe].set(C[Pe])}if(P)for(const Pe in P)this.projectionUniforms[Lc[Pe]].set(P[Pe]);if(w)for(const Pe in this.fixedUniforms)this.fixedUniforms[Pe].set(w[Pe]);Q&&Q.setUniforms(e,this.binderUniforms,$,{zoom:ee});let we=0;switch(i){case he.LINES:we=2;break;case he.TRIANGLES:we=3;break;case he.LINE_STRIP:we=1}for(const Pe of O.get()){const pe=Pe.vaos||(Pe.vaos={});(pe[A]||(pe[A]=new Tp)).bind(e,this,R,Q?Q.getPaintVertexBuffers():[],D,Pe.vertexOffset,ne,ue,_e),he.drawElements(i,Pe.primitiveLength*we,he.UNSIGNED_SHORT,Pe.primitiveOffset*we*2)}}}function bl(h,e,i){const l=1/s.aC(i,1,e.transform.tileZoom),u=Math.pow(2,i.tileID.overscaledZ),d=i.tileSize*Math.pow(2,e.transform.tileZoom)/u,g=d*(i.tileID.canonical.x+i.tileID.wrap*u),w=d*i.tileID.canonical.y;return{u_image:0,u_texsize:i.imageAtlasTexture.size,u_scale:[l,h.fromScale,h.toScale],u_fade:h.t,u_pixel_coord_upper:[g>>16,w>>16],u_pixel_coord_lower:[65535&g,65535&w]}}const Pa=(h,e,i,l)=>{const u=h.style.light,d=u.properties.get("position"),g=[d.x,d.y,d.z],w=s.bV();u.properties.get("anchor")==="viewport"&&s.bW(w,h.transform.bearingInRadians),s.bX(g,g,w);const C=h.transform.transformLightDirection(g),P=u.properties.get("color");return{u_lightpos:g,u_lightpos_globe:C,u_lightintensity:u.properties.get("intensity"),u_lightcolor:[P.r,P.g,P.b],u_vertical_gradient:+e,u_opacity:i,u_fill_translate:l}},Cp=(h,e,i,l,u,d,g)=>s.e(Pa(h,e,i,l),bl(d,h,g),{u_height_factor:-Math.pow(2,u.overscaledZ)/g.tileSize/8}),wl=(h,e,i,l)=>s.e(bl(e,h,i),{u_fill_translate:l}),Ds=(h,e)=>({u_world:h,u_fill_translate:e}),Rs=(h,e,i,l,u)=>s.e(wl(h,e,i,u),{u_world:l}),Sp=(h,e,i,l,u)=>{const d=h.transform;let g,w,C=0;if(i.paint.get("circle-pitch-alignment")==="map"){const P=s.aC(e,1,d.zoom);g=!0,w=[P,P],C=P/(s.$*Math.pow(2,e.tileID.overscaledZ))*2*Math.PI*u}else g=!1,w=d.pixelsToGLUnits;return{u_camera_to_center_distance:d.cameraToCenterDistance,u_scale_with_map:+(i.paint.get("circle-pitch-scale")==="map"),u_pitch_with_map:+g,u_device_pixel_ratio:h.pixelRatio,u_extrude_scale:w,u_globe_extrude_scale:C,u_translate:l}},Tl=h=>({u_pixel_extrude_scale:[1/h.width,1/h.height]}),Pp=h=>({u_viewport_size:[h.width,h.height]}),Eo=(h,e=1)=>({u_color:h,u_overlay:0,u_overlay_scale:e}),Oh=(h,e,i,l)=>{const u=s.aC(h,1,e)/(s.$*Math.pow(2,h.tileID.overscaledZ))*2*Math.PI*l;return{u_extrude_scale:s.aC(h,1,e),u_intensity:i,u_globe_extrude_scale:u}},Rc=(h,e,i,l)=>{const u=s.L();s.bY(u,0,h.width,h.height,0,0,1);const d=h.context.gl;return{u_matrix:u,u_world:[d.drawingBufferWidth,d.drawingBufferHeight],u_image:i,u_color_ramp:l,u_opacity:e.paint.get("heatmap-opacity")}},Ip=(h,e,i)=>{const l=i.paint.get("hillshade-accent-color");let u;switch(i.paint.get("hillshade-method")){case"basic":u=4;break;case"combined":u=1;break;case"igor":u=2;break;case"multidirectional":u=3;break;default:u=0}const d=i.getIlluminationProperties();for(let g=0;g{const i=e.stride,l=s.L();return s.bY(l,0,s.$,-s.$,0,0,1),s.M(l,l,[0,-s.$,0]),{u_matrix:l,u_image:1,u_dimension:[i,i],u_zoom:h.overscaledZ,u_unpack:e.getUnpackVector()}};function Bc(h,e){const i=Math.pow(2,e.canonical.z),l=e.canonical.y;return[new s.a1(0,l/i).toLngLat().lat,new s.a1(0,(l+1)/i).toLngLat().lat]}const jh=(h,e,i=0)=>({u_image:0,u_unpack:e.getUnpackVector(),u_dimension:[e.stride,e.stride],u_elevation_stops:1,u_color_stops:4,u_color_ramp_size:i,u_opacity:h.paint.get("color-relief-opacity")}),Cl=(h,e,i,l)=>{const u=h.transform;return{u_translation:Oc(h,e,i),u_ratio:l/s.aC(e,1,u.zoom),u_device_pixel_ratio:h.pixelRatio,u_units_to_pixels:[1/u.pixelsToGLUnits[0],1/u.pixelsToGLUnits[1]]}},Vh=(h,e,i,l,u)=>s.e(Cl(h,e,i,l),{u_image:0,u_image_height:u}),qh=(h,e,i,l,u)=>{const d=h.transform,g=Fc(e,d);return{u_translation:Oc(h,e,i),u_texsize:e.imageAtlasTexture.size,u_ratio:l/s.aC(e,1,d.zoom),u_device_pixel_ratio:h.pixelRatio,u_image:0,u_scale:[g,u.fromScale,u.toScale],u_fade:u.t,u_units_to_pixels:[1/d.pixelsToGLUnits[0],1/d.pixelsToGLUnits[1]]}},zo=(h,e,i,l,u,d)=>{const g=h.lineAtlas,w=Fc(e,h.transform),C=i.layout.get("line-cap")==="round",P=g.getDash(u.from,C),A=g.getDash(u.to,C),R=P.width*d.fromScale,D=A.width*d.toScale;return s.e(Cl(h,e,i,l),{u_patternscale_a:[w/R,-P.height/2],u_patternscale_b:[w/D,-A.height/2],u_sdfgamma:g.width/(256*Math.min(R,D)*h.pixelRatio)/2,u_image:0,u_tex_y_a:P.y,u_tex_y_b:A.y,u_mix:d.t})};function Fc(h,e){return 1/s.aC(h,1,e.tileZoom)}function Oc(h,e,i){return s.aD(h.transform,e,i.paint.get("line-translate"),i.paint.get("line-translate-anchor"))}const Bs=(h,e,i,l,u)=>{return{u_tl_parent:h,u_scale_parent:e,u_buffer_scale:1,u_fade_t:i.mix,u_opacity:i.opacity*l.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:l.paint.get("raster-brightness-min"),u_brightness_high:l.paint.get("raster-brightness-max"),u_saturation_factor:(g=l.paint.get("raster-saturation"),g>0?1-1/(1.001-g):-g),u_contrast_factor:(d=l.paint.get("raster-contrast"),d>0?1/(1-d):1+d),u_spin_weights:Mp(l.paint.get("raster-hue-rotate")),u_coords_top:[u[0].x,u[0].y,u[1].x,u[1].y],u_coords_bottom:[u[3].x,u[3].y,u[2].x,u[2].y]};var d,g};function Mp(h){h*=Math.PI/180;const e=Math.sin(h),i=Math.cos(h);return[(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}const Fs=(h,e,i,l,u,d,g,w,C,P,A,R,D)=>{const O=g.transform;return{u_is_size_zoom_constant:+(h==="constant"||h==="source"),u_is_size_feature_constant:+(h==="constant"||h==="camera"),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:O.cameraToCenterDistance,u_pitch:O.pitch/360*2*Math.PI,u_rotate_symbol:+i,u_aspect_ratio:O.width/O.height,u_fade_change:g.options.fadeDuration?g.symbolFadeChange:1,u_label_plane_matrix:w,u_coord_matrix:C,u_is_text:+A,u_pitch_with_map:+l,u_is_along_line:u,u_is_variable_anchor:d,u_texsize:R,u_texture:0,u_translation:P,u_pitched_scale:D}},Zh=(h,e,i,l,u,d,g,w,C,P,A,R,D,O)=>{const $=g.transform;return s.e(Fs(h,e,i,l,u,d,g,w,C,P,A,R,O),{u_gamma_scale:l?Math.cos($.pitch*Math.PI/180)*$.cameraToCenterDistance:1,u_device_pixel_ratio:g.pixelRatio,u_is_halo:1})},kp=(h,e,i,l,u,d,g,w,C,P,A,R,D)=>s.e(Zh(h,e,i,l,u,d,g,w,C,P,!0,A,0,D),{u_texsize_icon:R,u_texture_icon:1}),Uh=(h,e)=>({u_opacity:h,u_color:e}),$h=(h,e,i,l,u)=>s.e((function(d,g,w,C){const P=w.imageManager.getPattern(d.from.toString()),A=w.imageManager.getPattern(d.to.toString()),{width:R,height:D}=w.imageManager.getPixelSize(),O=Math.pow(2,C.tileID.overscaledZ),$=C.tileSize*Math.pow(2,w.transform.tileZoom)/O,ee=$*(C.tileID.canonical.x+C.tileID.wrap*O),Q=$*C.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:P.tl,u_pattern_br_a:P.br,u_pattern_tl_b:A.tl,u_pattern_br_b:A.br,u_texsize:[R,D],u_mix:g.t,u_pattern_size_a:P.displaySize,u_pattern_size_b:A.displaySize,u_scale_a:g.fromScale,u_scale_b:g.toScale,u_tile_units_to_pixels:1/s.aC(C,1,w.transform.tileZoom),u_pixel_coord_upper:[ee>>16,Q>>16],u_pixel_coord_lower:[65535&ee,65535&Q]}})(i,u,e,l),{u_opacity:h}),Nc=(h,e)=>{},jc={fillExtrusion:(h,e)=>({u_lightpos:new s.bT(h,e.u_lightpos),u_lightpos_globe:new s.bT(h,e.u_lightpos_globe),u_lightintensity:new s.bg(h,e.u_lightintensity),u_lightcolor:new s.bT(h,e.u_lightcolor),u_vertical_gradient:new s.bg(h,e.u_vertical_gradient),u_opacity:new s.bg(h,e.u_opacity),u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillExtrusionPattern:(h,e)=>({u_lightpos:new s.bT(h,e.u_lightpos),u_lightpos_globe:new s.bT(h,e.u_lightpos_globe),u_lightintensity:new s.bg(h,e.u_lightintensity),u_lightcolor:new s.bT(h,e.u_lightcolor),u_vertical_gradient:new s.bg(h,e.u_vertical_gradient),u_height_factor:new s.bg(h,e.u_height_factor),u_opacity:new s.bg(h,e.u_opacity),u_fill_translate:new s.bU(h,e.u_fill_translate),u_image:new s.bP(h,e.u_image),u_texsize:new s.bU(h,e.u_texsize),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade)}),fill:(h,e)=>({u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillPattern:(h,e)=>({u_image:new s.bP(h,e.u_image),u_texsize:new s.bU(h,e.u_texsize),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade),u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillOutline:(h,e)=>({u_world:new s.bU(h,e.u_world),u_fill_translate:new s.bU(h,e.u_fill_translate)}),fillOutlinePattern:(h,e)=>({u_world:new s.bU(h,e.u_world),u_image:new s.bP(h,e.u_image),u_texsize:new s.bU(h,e.u_texsize),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade),u_fill_translate:new s.bU(h,e.u_fill_translate)}),circle:(h,e)=>({u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_scale_with_map:new s.bP(h,e.u_scale_with_map),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_extrude_scale:new s.bU(h,e.u_extrude_scale),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_globe_extrude_scale:new s.bg(h,e.u_globe_extrude_scale),u_translate:new s.bU(h,e.u_translate)}),collisionBox:(h,e)=>({u_pixel_extrude_scale:new s.bU(h,e.u_pixel_extrude_scale)}),collisionCircle:(h,e)=>({u_viewport_size:new s.bU(h,e.u_viewport_size)}),debug:(h,e)=>({u_color:new s.bQ(h,e.u_color),u_overlay:new s.bP(h,e.u_overlay),u_overlay_scale:new s.bg(h,e.u_overlay_scale)}),depth:Nc,clippingMask:Nc,heatmap:(h,e)=>({u_extrude_scale:new s.bg(h,e.u_extrude_scale),u_intensity:new s.bg(h,e.u_intensity),u_globe_extrude_scale:new s.bg(h,e.u_globe_extrude_scale)}),heatmapTexture:(h,e)=>({u_matrix:new s.bR(h,e.u_matrix),u_world:new s.bU(h,e.u_world),u_image:new s.bP(h,e.u_image),u_color_ramp:new s.bP(h,e.u_color_ramp),u_opacity:new s.bg(h,e.u_opacity)}),hillshade:(h,e)=>({u_image:new s.bP(h,e.u_image),u_latrange:new s.bU(h,e.u_latrange),u_exaggeration:new s.bg(h,e.u_exaggeration),u_altitudes:new s.b_(h,e.u_altitudes),u_azimuths:new s.b_(h,e.u_azimuths),u_accent:new s.bQ(h,e.u_accent),u_method:new s.bP(h,e.u_method),u_shadows:new s.bZ(h,e.u_shadows),u_highlights:new s.bZ(h,e.u_highlights)}),hillshadePrepare:(h,e)=>({u_matrix:new s.bR(h,e.u_matrix),u_image:new s.bP(h,e.u_image),u_dimension:new s.bU(h,e.u_dimension),u_zoom:new s.bg(h,e.u_zoom),u_unpack:new s.bS(h,e.u_unpack)}),colorRelief:(h,e)=>({u_image:new s.bP(h,e.u_image),u_unpack:new s.bS(h,e.u_unpack),u_dimension:new s.bU(h,e.u_dimension),u_elevation_stops:new s.bP(h,e.u_elevation_stops),u_color_stops:new s.bP(h,e.u_color_stops),u_color_ramp_size:new s.bP(h,e.u_color_ramp_size),u_opacity:new s.bg(h,e.u_opacity)}),line:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels)}),lineGradient:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels),u_image:new s.bP(h,e.u_image),u_image_height:new s.bg(h,e.u_image_height)}),linePattern:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_texsize:new s.bU(h,e.u_texsize),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_image:new s.bP(h,e.u_image),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels),u_scale:new s.bT(h,e.u_scale),u_fade:new s.bg(h,e.u_fade)}),lineSDF:(h,e)=>({u_translation:new s.bU(h,e.u_translation),u_ratio:new s.bg(h,e.u_ratio),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_units_to_pixels:new s.bU(h,e.u_units_to_pixels),u_patternscale_a:new s.bU(h,e.u_patternscale_a),u_patternscale_b:new s.bU(h,e.u_patternscale_b),u_sdfgamma:new s.bg(h,e.u_sdfgamma),u_image:new s.bP(h,e.u_image),u_tex_y_a:new s.bg(h,e.u_tex_y_a),u_tex_y_b:new s.bg(h,e.u_tex_y_b),u_mix:new s.bg(h,e.u_mix)}),raster:(h,e)=>({u_tl_parent:new s.bU(h,e.u_tl_parent),u_scale_parent:new s.bg(h,e.u_scale_parent),u_buffer_scale:new s.bg(h,e.u_buffer_scale),u_fade_t:new s.bg(h,e.u_fade_t),u_opacity:new s.bg(h,e.u_opacity),u_image0:new s.bP(h,e.u_image0),u_image1:new s.bP(h,e.u_image1),u_brightness_low:new s.bg(h,e.u_brightness_low),u_brightness_high:new s.bg(h,e.u_brightness_high),u_saturation_factor:new s.bg(h,e.u_saturation_factor),u_contrast_factor:new s.bg(h,e.u_contrast_factor),u_spin_weights:new s.bT(h,e.u_spin_weights),u_coords_top:new s.bS(h,e.u_coords_top),u_coords_bottom:new s.bS(h,e.u_coords_bottom)}),symbolIcon:(h,e)=>({u_is_size_zoom_constant:new s.bP(h,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bP(h,e.u_is_size_feature_constant),u_size_t:new s.bg(h,e.u_size_t),u_size:new s.bg(h,e.u_size),u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_pitch:new s.bg(h,e.u_pitch),u_rotate_symbol:new s.bP(h,e.u_rotate_symbol),u_aspect_ratio:new s.bg(h,e.u_aspect_ratio),u_fade_change:new s.bg(h,e.u_fade_change),u_label_plane_matrix:new s.bR(h,e.u_label_plane_matrix),u_coord_matrix:new s.bR(h,e.u_coord_matrix),u_is_text:new s.bP(h,e.u_is_text),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_is_along_line:new s.bP(h,e.u_is_along_line),u_is_variable_anchor:new s.bP(h,e.u_is_variable_anchor),u_texsize:new s.bU(h,e.u_texsize),u_texture:new s.bP(h,e.u_texture),u_translation:new s.bU(h,e.u_translation),u_pitched_scale:new s.bg(h,e.u_pitched_scale)}),symbolSDF:(h,e)=>({u_is_size_zoom_constant:new s.bP(h,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bP(h,e.u_is_size_feature_constant),u_size_t:new s.bg(h,e.u_size_t),u_size:new s.bg(h,e.u_size),u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_pitch:new s.bg(h,e.u_pitch),u_rotate_symbol:new s.bP(h,e.u_rotate_symbol),u_aspect_ratio:new s.bg(h,e.u_aspect_ratio),u_fade_change:new s.bg(h,e.u_fade_change),u_label_plane_matrix:new s.bR(h,e.u_label_plane_matrix),u_coord_matrix:new s.bR(h,e.u_coord_matrix),u_is_text:new s.bP(h,e.u_is_text),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_is_along_line:new s.bP(h,e.u_is_along_line),u_is_variable_anchor:new s.bP(h,e.u_is_variable_anchor),u_texsize:new s.bU(h,e.u_texsize),u_texture:new s.bP(h,e.u_texture),u_gamma_scale:new s.bg(h,e.u_gamma_scale),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_is_halo:new s.bP(h,e.u_is_halo),u_translation:new s.bU(h,e.u_translation),u_pitched_scale:new s.bg(h,e.u_pitched_scale)}),symbolTextAndIcon:(h,e)=>({u_is_size_zoom_constant:new s.bP(h,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bP(h,e.u_is_size_feature_constant),u_size_t:new s.bg(h,e.u_size_t),u_size:new s.bg(h,e.u_size),u_camera_to_center_distance:new s.bg(h,e.u_camera_to_center_distance),u_pitch:new s.bg(h,e.u_pitch),u_rotate_symbol:new s.bP(h,e.u_rotate_symbol),u_aspect_ratio:new s.bg(h,e.u_aspect_ratio),u_fade_change:new s.bg(h,e.u_fade_change),u_label_plane_matrix:new s.bR(h,e.u_label_plane_matrix),u_coord_matrix:new s.bR(h,e.u_coord_matrix),u_is_text:new s.bP(h,e.u_is_text),u_pitch_with_map:new s.bP(h,e.u_pitch_with_map),u_is_along_line:new s.bP(h,e.u_is_along_line),u_is_variable_anchor:new s.bP(h,e.u_is_variable_anchor),u_texsize:new s.bU(h,e.u_texsize),u_texsize_icon:new s.bU(h,e.u_texsize_icon),u_texture:new s.bP(h,e.u_texture),u_texture_icon:new s.bP(h,e.u_texture_icon),u_gamma_scale:new s.bg(h,e.u_gamma_scale),u_device_pixel_ratio:new s.bg(h,e.u_device_pixel_ratio),u_is_halo:new s.bP(h,e.u_is_halo),u_translation:new s.bU(h,e.u_translation),u_pitched_scale:new s.bg(h,e.u_pitched_scale)}),background:(h,e)=>({u_opacity:new s.bg(h,e.u_opacity),u_color:new s.bQ(h,e.u_color)}),backgroundPattern:(h,e)=>({u_opacity:new s.bg(h,e.u_opacity),u_image:new s.bP(h,e.u_image),u_pattern_tl_a:new s.bU(h,e.u_pattern_tl_a),u_pattern_br_a:new s.bU(h,e.u_pattern_br_a),u_pattern_tl_b:new s.bU(h,e.u_pattern_tl_b),u_pattern_br_b:new s.bU(h,e.u_pattern_br_b),u_texsize:new s.bU(h,e.u_texsize),u_mix:new s.bg(h,e.u_mix),u_pattern_size_a:new s.bU(h,e.u_pattern_size_a),u_pattern_size_b:new s.bU(h,e.u_pattern_size_b),u_scale_a:new s.bg(h,e.u_scale_a),u_scale_b:new s.bg(h,e.u_scale_b),u_pixel_coord_upper:new s.bU(h,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bU(h,e.u_pixel_coord_lower),u_tile_units_to_pixels:new s.bg(h,e.u_tile_units_to_pixels)}),terrain:(h,e)=>({u_texture:new s.bP(h,e.u_texture),u_ele_delta:new s.bg(h,e.u_ele_delta),u_fog_matrix:new s.bR(h,e.u_fog_matrix),u_fog_color:new s.bQ(h,e.u_fog_color),u_fog_ground_blend:new s.bg(h,e.u_fog_ground_blend),u_fog_ground_blend_opacity:new s.bg(h,e.u_fog_ground_blend_opacity),u_horizon_color:new s.bQ(h,e.u_horizon_color),u_horizon_fog_blend:new s.bg(h,e.u_horizon_fog_blend),u_is_globe_mode:new s.bg(h,e.u_is_globe_mode)}),terrainDepth:(h,e)=>({u_ele_delta:new s.bg(h,e.u_ele_delta)}),terrainCoords:(h,e)=>({u_texture:new s.bP(h,e.u_texture),u_terrain_coords_id:new s.bg(h,e.u_terrain_coords_id),u_ele_delta:new s.bg(h,e.u_ele_delta)}),projectionErrorMeasurement:(h,e)=>({u_input:new s.bg(h,e.u_input),u_output_expected:new s.bg(h,e.u_output_expected)}),atmosphere:(h,e)=>({u_sun_pos:new s.bT(h,e.u_sun_pos),u_atmosphere_blend:new s.bg(h,e.u_atmosphere_blend),u_globe_position:new s.bT(h,e.u_globe_position),u_globe_radius:new s.bg(h,e.u_globe_radius),u_inv_proj_matrix:new s.bR(h,e.u_inv_proj_matrix)}),sky:(h,e)=>({u_sky_color:new s.bQ(h,e.u_sky_color),u_horizon_color:new s.bQ(h,e.u_horizon_color),u_horizon:new s.bU(h,e.u_horizon),u_horizon_normal:new s.bU(h,e.u_horizon_normal),u_sky_horizon_blend:new s.bg(h,e.u_sky_horizon_blend),u_sky_blend:new s.bg(h,e.u_sky_blend)})};class Gh{constructor(e,i,l){this.context=e;const u=e.gl;this.buffer=u.createBuffer(),this.dynamicDraw=!!l,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),u.bufferData(u.ELEMENT_ARRAY_BUFFER,i.arrayBuffer,this.dynamicDraw?u.DYNAMIC_DRAW:u.STATIC_DRAW),this.dynamicDraw||delete i.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(e){const i=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),i.bufferSubData(i.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const Sl={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class Qa{constructor(e,i,l,u){this.length=i.length,this.attributes=l,this.itemSize=i.bytesPerElement,this.dynamicDraw=u,this.context=e;const d=e.gl;this.buffer=d.createBuffer(),e.bindVertexBuffer.set(this.buffer),d.bufferData(d.ARRAY_BUFFER,i.arrayBuffer,this.dynamicDraw?d.DYNAMIC_DRAW:d.STATIC_DRAW),this.dynamicDraw||delete i.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(e){if(e.length!==this.length)throw new Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`);const i=this.context.gl;this.bind(),i.bufferSubData(i.ARRAY_BUFFER,0,e.arrayBuffer)}enableAttributes(e,i){for(let l=0;l0&&(P.push({circleArray:we,circleOffset:R,coord:ue}),A+=we.length/4,R=A),he&&C.draw(d,w.LINES,$r.disabled,cn.disabled,h.colorModeForRenderPass(),Lr.disabled,Tl(h.transform),h.style.map.terrain&&h.style.map.terrain.getTerrainData(ue),g.getProjectionData({overscaledTileID:ue,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),i.id,he.layoutVertexBuffer,he.indexBuffer,he.segments,null,h.transform.zoom,null,null,he.collisionVertexBuffer)}if(!u||!P.length)return;const D=h.useProgram("collisionCircle"),O=new s.b$;O.resize(4*A),O._trim();let $=0;for(const ne of P)for(let ue=0;ue=0&&(ee[ne.associatedIconIndex]={shiftedAnchor:Tt,angle:mr})}else sn(ne.numGlyphs,O)}if(C){$.clear();const Q=h.icon.placedSymbolArray;for(let ne=0;neh.style.map.terrain.getElevation(Ue,ba,ci):null,mi=i.layout.get("text-rotation-alignment")==="map";Yr(Je,h,u,Ui,za,ne,P,mi,Ue.toUnwrapped(),ee.width,ee.height,vo,li)}const Zo=u&&pe||qo,ta=ue||Zo?Bp:ne?Ui:h.transform.clipSpaceToPixelsMatrix,La=Tt&&i.paint.get(u?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let $i;$i=Tt?Je.iconsInText?kp(mr.kind,Bn,_e,ne,ue,Zo,h,ta,go,vo,Hn,si,Qe):Zh(mr.kind,Bn,_e,ne,ue,Zo,h,ta,go,vo,u,Hn,0,Qe):Fs(mr.kind,Bn,_e,ne,ue,Zo,h,ta,go,vo,u,Hn,Qe);const yo={program:An,buffers:Nt,uniformValues:$i,projectionData:fs,atlasTexture:Kn,atlasTextureIcon:fi,atlasInterpolation:Kr,atlasInterpolationIcon:Fn,isSDF:Tt,hasHalo:La};if(he&&Je.canOverlap){we=!0;const li=Nt.segments.get();for(const mi of li)Be.push({segments:new s.aM([mi]),sortKey:mi.sortKey,state:yo,terrainData:Ln})}else Be.push({segments:Nt.segments,sortKey:0,state:yo,terrainData:Ln})}we&&Be.sort(((Ue,We)=>Ue.sortKey-We.sortKey));for(const Ue of Be){const We=Ue.state;if(O.activeTexture.set($.TEXTURE0),We.atlasTexture.bind(We.atlasInterpolation,$.CLAMP_TO_EDGE),We.atlasTextureIcon&&(O.activeTexture.set($.TEXTURE1),We.atlasTextureIcon&&We.atlasTextureIcon.bind(We.atlasInterpolationIcon,$.CLAMP_TO_EDGE)),We.isSDF){const Je=We.uniformValues;We.hasHalo&&(Je.u_is_halo=1,qs(We.buffers,Ue.segments,i,h,We.program,Pe,A,R,Je,We.projectionData,Ue.terrainData)),Je.u_is_halo=0}qs(We.buffers,Ue.segments,i,h,We.program,Pe,A,R,We.uniformValues,We.projectionData,Ue.terrainData)}}function qs(h,e,i,l,u,d,g,w,C,P,A){const R=l.context;u.draw(R,R.gl.TRIANGLES,d,g,w,Lr.backCCW,C,A,P,i.id,h.layoutVertexBuffer,h.indexBuffer,e,i.paint,l.transform.zoom,h.programConfigurations.get(i.id),h.dynamicLayoutVertexBuffer,h.opacityVertexBuffer)}function Xc(h,e,i,l,u){const d=h.context,g=d.gl,w=cn.disabled,C=new zn([g.ONE,g.ONE],s.bf.transparent,[!0,!0,!0,!0]),P=e.getBucket(i);if(!P)return;const A=l.key;let R=i.heatmapFbos.get(A);R||(R=Zs(d,e.tileSize,e.tileSize),i.heatmapFbos.set(A,R)),d.bindFramebuffer.set(R.framebuffer),d.viewport.set([0,0,e.tileSize,e.tileSize]),d.clear({color:s.bf.transparent});const D=P.programConfigurations.get(i.id),O=h.useProgram("heatmap",D,!u),$=h.transform.getProjectionData({overscaledTileID:e.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),ee=h.style.map.terrain.getTerrainData(l);O.draw(d,g.TRIANGLES,$r.disabled,w,C,Lr.disabled,Oh(e,h.transform.zoom,i.paint.get("heatmap-intensity"),1),ee,$,i.id,P.layoutVertexBuffer,P.indexBuffer,P.segments,i.paint,h.transform.zoom,D)}function nd(h,e,i,l,u){const d=h.context,g=d.gl,w=h.transform;d.setColorMode(h.colorModeForRenderPass());const C=Us(d,e),P=i.key,A=e.heatmapFbos.get(P);if(!A)return;d.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,A.colorAttachment.get()),d.activeTexture.set(g.TEXTURE1),C.bind(g.LINEAR,g.CLAMP_TO_EDGE);const R=w.getProjectionData({overscaledTileID:i,applyTerrainMatrix:u,applyGlobeMatrix:!l});h.useProgram("heatmapTexture").draw(d,g.TRIANGLES,$r.disabled,cn.disabled,h.colorModeForRenderPass(),Lr.disabled,Rc(h,e,0,1),null,R,e.id,h.rasterBoundsBuffer,h.quadTriangleIndexBuffer,h.rasterBoundsSegments,e.paint,w.zoom),A.destroy(),e.heatmapFbos.delete(P)}function Zs(h,e,i){var l,u;const d=h.gl,g=d.createTexture();d.bindTexture(d.TEXTURE_2D,g),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.LINEAR);const w=(l=h.HALF_FLOAT)!==null&&l!==void 0?l:d.UNSIGNED_BYTE,C=(u=h.RGBA16F)!==null&&u!==void 0?u:d.RGBA;d.texImage2D(d.TEXTURE_2D,0,C,e,i,0,d.RGBA,w,null);const P=h.createFramebuffer(e,i,!1,!1);return P.colorAttachment.set(g),P}function Us(h,e){return e.colorRampTexture||(e.colorRampTexture=new s.T(h,e.colorRamp,h.gl.RGBA)),e.colorRampTexture}function $s(h,e,i,l,u){if(!i||!l||!l.imageAtlas)return;const d=l.imageAtlas.patternPositions;let g=d[i.to.toString()],w=d[i.from.toString()];if(!g&&w&&(g=w),!w&&g&&(w=g),!g||!w){const C=u.getPaintProperty(e);g=d[C],w=d[C]}g&&w&&h.setConstantPatternPositions(g,w)}function Ll(h,e,i,l,u,d,g,w){const C=h.context.gl,P="fill-pattern",A=i.paint.get(P),R=A&&A.constantOr(1),D=i.getCrossfadeParameters();let O,$,ee,Q,ne;const ue=h.transform,_e=i.paint.get("fill-translate"),he=i.paint.get("fill-translate-anchor");g?($=R&&!i.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",O=C.LINES):($=R?"fillPattern":"fill",O=C.TRIANGLES);const we=A.constantOr(null);for(const Pe of l){const pe=e.getTile(Pe);if(R&&!pe.patternsLoaded())continue;const Be=pe.getBucket(i);if(!Be)continue;const Qe=Be.programConfigurations.get(i.id),Ue=h.useProgram($,Qe),We=h.style.map.terrain&&h.style.map.terrain.getTerrainData(Pe);R&&(h.context.activeTexture.set(C.TEXTURE0),pe.imageAtlasTexture.bind(C.LINEAR,C.CLAMP_TO_EDGE),Qe.updatePaintBuffers(D)),$s(Qe,P,we,pe,i);const Je=ue.getProjectionData({overscaledTileID:Pe,applyGlobeMatrix:!w,applyTerrainMatrix:!0}),Nt=s.aD(ue,pe,_e,he);if(g){Q=Be.indexBuffer2,ne=Be.segments2;const Tt=[C.drawingBufferWidth,C.drawingBufferHeight];ee=$==="fillOutlinePattern"&&R?Rs(h,D,pe,Tt,Nt):Ds(Tt,Nt)}else Q=Be.indexBuffer,ne=Be.segments,ee=R?wl(h,D,pe,Nt):{u_fill_translate:Nt};const Zt=h.stencilModeForClipping(Pe);Ue.draw(h.context,O,u,Zt,d,Lr.backCCW,ee,We,Je,i.id,Be.layoutVertexBuffer,Q,ne,i.paint,h.transform.zoom,Qe)}}function Yc(h,e,i,l,u,d,g,w){const C=h.context,P=C.gl,A="fill-extrusion-pattern",R=i.paint.get(A),D=R.constantOr(1),O=i.getCrossfadeParameters(),$=i.paint.get("fill-extrusion-opacity"),ee=R.constantOr(null),Q=h.transform;for(const ne of l){const ue=e.getTile(ne),_e=ue.getBucket(i);if(!_e)continue;const he=h.style.map.terrain&&h.style.map.terrain.getTerrainData(ne),we=_e.programConfigurations.get(i.id),Pe=h.useProgram(D?"fillExtrusionPattern":"fillExtrusion",we);D&&(h.context.activeTexture.set(P.TEXTURE0),ue.imageAtlasTexture.bind(P.LINEAR,P.CLAMP_TO_EDGE),we.updatePaintBuffers(O));const pe=Q.getProjectionData({overscaledTileID:ne,applyGlobeMatrix:!w,applyTerrainMatrix:!0});$s(we,A,ee,ue,i);const Be=s.aD(Q,ue,i.paint.get("fill-extrusion-translate"),i.paint.get("fill-extrusion-translate-anchor")),Qe=i.paint.get("fill-extrusion-vertical-gradient"),Ue=D?Cp(h,Qe,$,Be,ne,O,ue):Pa(h,Qe,$,Be);Pe.draw(C,C.gl.TRIANGLES,u,d,g,Lr.backCCW,Ue,he,pe,i.id,_e.layoutVertexBuffer,_e.indexBuffer,_e.segments,i.paint,h.transform.zoom,we,h.style.map.terrain&&_e.centroidVertexBuffer)}}function Bo(h,e,i,l,u,d,g,w,C){var P;const A=h.style.projection,R=h.context,D=h.transform,O=R.gl,$=[`#define NUM_ILLUMINATION_SOURCES ${i.paint.get("hillshade-highlight-color").values.length}`],ee=h.useProgram("hillshade",null,!1,$),Q=!h.options.moving;for(const ne of l){const ue=e.getTile(ne),_e=ue.fbo;if(!_e)continue;const he=A.getMeshFromTileID(R,ne.canonical,w,!0,"raster"),we=(P=h.style.map.terrain)===null||P===void 0?void 0:P.getTerrainData(ne);R.activeTexture.set(O.TEXTURE0),O.bindTexture(O.TEXTURE_2D,_e.colorAttachment.get());const Pe=D.getProjectionData({overscaledTileID:ne,aligned:Q,applyGlobeMatrix:!C,applyTerrainMatrix:!0});ee.draw(R,O.TRIANGLES,d,u[ne.overscaledZ],g,Lr.backCCW,Ip(h,ue,i),we,Pe,i.id,he.vertexBuffer,he.indexBuffer,he.segments)}}function Kc(h,e,i,l,u,d,g,w,C){var P;const A=h.style.projection,R=h.context,D=h.transform,O=R.gl,$=h.useProgram("colorRelief"),ee=!h.options.moving;let Q=!0,ne=0;for(const ue of l){const _e=e.getTile(ue),he=_e.dem;if(Q){const Ue=O.getParameter(O.MAX_TEXTURE_SIZE),{elevationTexture:We,colorTexture:Je}=i.getColorRampTextures(R,Ue,he.getUnpackVector());R.activeTexture.set(O.TEXTURE1),We.bind(O.NEAREST,O.CLAMP_TO_EDGE),R.activeTexture.set(O.TEXTURE4),Je.bind(O.LINEAR,O.CLAMP_TO_EDGE),Q=!1,ne=We.size[0]}if(!he||!he.data)continue;const we=he.stride,Pe=he.getPixels();if(R.activeTexture.set(O.TEXTURE0),R.pixelStoreUnpackPremultiplyAlpha.set(!1),_e.demTexture=_e.demTexture||h.getTileTexture(we),_e.demTexture){const Ue=_e.demTexture;Ue.update(Pe,{premultiply:!1}),Ue.bind(O.LINEAR,O.CLAMP_TO_EDGE)}else _e.demTexture=new s.T(R,Pe,O.RGBA,{premultiply:!1}),_e.demTexture.bind(O.LINEAR,O.CLAMP_TO_EDGE);const pe=A.getMeshFromTileID(R,ue.canonical,w,!0,"raster"),Be=(P=h.style.map.terrain)===null||P===void 0?void 0:P.getTerrainData(ue),Qe=D.getProjectionData({overscaledTileID:ue,aligned:ee,applyGlobeMatrix:!C,applyTerrainMatrix:!0});$.draw(R,O.TRIANGLES,d,u[ue.overscaledZ],g,Lr.backCCW,jh(i,_e.dem,ne),Be,Qe,i.id,pe.vertexBuffer,pe.indexBuffer,pe.segments)}}const Dl=[new s.P(0,0),new s.P(s.$,0),new s.P(s.$,s.$),new s.P(0,s.$)];function Fo(h,e,i,l,u,d,g,w,C=!1,P=!1){const A=l[l.length-1].overscaledZ,R=h.context,D=R.gl,O=h.useProgram("raster"),$=h.transform,ee=h.style.projection,Q=h.colorModeForRenderPass(),ne=!h.options.moving;for(const ue of l){const _e=h.getDepthModeForSublayer(ue.overscaledZ-A,i.paint.get("raster-opacity")===1?$r.ReadWrite:$r.ReadOnly,D.LESS),he=e.getTile(ue);he.registerFadeDuration(i.paint.get("raster-fade-duration"));const we=e.findLoadedParent(ue,0),Pe=e.findLoadedSibling(ue),pe=Jc(he,we||Pe||null,e,i,h.transform,h.style.map.terrain);let Be,Qe;const Ue=i.paint.get("raster-resampling")==="nearest"?D.NEAREST:D.LINEAR;R.activeTexture.set(D.TEXTURE0),he.texture.bind(Ue,D.CLAMP_TO_EDGE,D.LINEAR_MIPMAP_NEAREST),R.activeTexture.set(D.TEXTURE1),we?(we.texture.bind(Ue,D.CLAMP_TO_EDGE,D.LINEAR_MIPMAP_NEAREST),Be=Math.pow(2,we.tileID.overscaledZ-he.tileID.overscaledZ),Qe=[he.tileID.canonical.x*Be%1,he.tileID.canonical.y*Be%1]):he.texture.bind(Ue,D.CLAMP_TO_EDGE,D.LINEAR_MIPMAP_NEAREST),he.texture.useMipmap&&R.extTextureFilterAnisotropic&&h.transform.pitch>20&&D.texParameterf(D.TEXTURE_2D,R.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,R.extTextureFilterAnisotropicMax);const We=h.style.map.terrain&&h.style.map.terrain.getTerrainData(ue),Je=$.getProjectionData({overscaledTileID:ue,aligned:ne,applyGlobeMatrix:!P,applyTerrainMatrix:!0}),Nt=Bs(Qe||[0,0],Be||1,pe,i,w),Zt=ee.getMeshFromTileID(R,ue.canonical,d,g,"raster");O.draw(R,D.TRIANGLES,_e,u?u[ue.overscaledZ]:cn.disabled,Q,C?Lr.frontCCW:Lr.backCCW,Nt,We,Je,i.id,Zt.vertexBuffer,Zt.indexBuffer,Zt.segments)}}function Jc(h,e,i,l,u,d){const g=l.paint.get("raster-fade-duration");if(!d&&g>0){const w=ie.now(),C=(w-h.timeAdded)/g,P=e?(w-e.timeAdded)/g:-1,A=i.getSource(),R=Mt(u,{tileSize:A.tileSize,roundZoom:A.roundZoom}),D=!e||Math.abs(e.tileID.overscaledZ-R)>Math.abs(h.tileID.overscaledZ-R),O=D&&h.refreshedUponExpiration?1:s.ah(D?C:1-P,0,1);return h.refreshedUponExpiration&&C>=1&&(h.refreshedUponExpiration=!1),e?{opacity:1,mix:1-O}:{opacity:O,mix:0}}return{opacity:1,mix:0}}const id=new s.bf(1,0,0,1),ad=new s.bf(0,1,0,1),Rl=new s.bf(0,0,1,1),Qc=new s.bf(1,0,1,1),Op=new s.bf(0,1,1,1);function eu(h,e,i,l){Ua(h,0,e+i/2,h.transform.width,i,l)}function Yn(h,e,i,l){Ua(h,e-i/2,0,i,h.transform.height,l)}function Ua(h,e,i,l,u,d){const g=h.context,w=g.gl;w.enable(w.SCISSOR_TEST),w.scissor(e*h.pixelRatio,i*h.pixelRatio,l*h.pixelRatio,u*h.pixelRatio),g.clear({color:d}),w.disable(w.SCISSOR_TEST)}function ya(h,e,i){const l=h.context,u=l.gl,d=h.useProgram("debug"),g=$r.disabled,w=cn.disabled,C=h.colorModeForRenderPass(),P="$debug",A=h.style.map.terrain&&h.style.map.terrain.getTerrainData(i);l.activeTexture.set(u.TEXTURE0);const R=e.getTileByID(i.key).latestRawTileData,D=Math.floor((R&&R.byteLength||0)/1024),O=e.getTile(i).tileSize,$=512/Math.min(O,512)*(i.overscaledZ/h.transform.zoom)*.5;let ee=i.canonical.toString();i.overscaledZ!==i.canonical.z&&(ee+=` => ${i.overscaledZ}`),(function(ne,ue){ne.initDebugOverlayCanvas();const _e=ne.debugOverlayCanvas,he=ne.context.gl,we=ne.debugOverlayCanvas.getContext("2d");we.clearRect(0,0,_e.width,_e.height),we.shadowColor="white",we.shadowBlur=2,we.lineWidth=1.5,we.strokeStyle="white",we.textBaseline="top",we.font="bold 36px Open Sans, sans-serif",we.fillText(ue,5,5),we.strokeText(ue,5,5),ne.debugOverlayTexture.update(_e),ne.debugOverlayTexture.bind(he.LINEAR,he.CLAMP_TO_EDGE)})(h,`${ee} ${D}kB`);const Q=h.transform.getProjectionData({overscaledTileID:i,applyGlobeMatrix:!0,applyTerrainMatrix:!0});d.draw(l,u.TRIANGLES,g,w,zn.alphaBlended,Lr.disabled,Eo(s.bf.transparent,$),null,Q,P,h.debugBuffer,h.quadTriangleIndexBuffer,h.debugSegments),d.draw(l,u.LINE_STRIP,g,w,C,Lr.disabled,Eo(s.bf.red),A,Q,P,h.debugBuffer,h.tileBorderIndexBuffer,h.debugSegments)}function Bl(h,e,i,l){const{isRenderingGlobe:u}=l,d=h.context,g=d.gl,w=h.transform,C=h.colorModeForRenderPass(),P=h.getDepthModeFor3D(),A=h.useProgram("terrain");d.bindFramebuffer.set(null),d.viewport.set([0,0,h.width,h.height]);for(const R of i){const D=e.getTerrainMesh(R.tileID),O=h.renderToTexture.getTexture(R),$=e.getTerrainData(R.tileID);d.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,O.texture);const ee=e.getMeshFrameDelta(w.zoom),Q=w.calculateFogMatrix(R.tileID.toUnwrapped()),ne=xl(ee,Q,h.style.sky,w.pitch,u),ue=w.getProjectionData({overscaledTileID:R.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});A.draw(d,g.TRIANGLES,P,cn.disabled,C,Lr.backCCW,ne,$,ue,"terrain",D.vertexBuffer,D.indexBuffer,D.segments)}}function Gs(h,e){if(!e.mesh){const i=new s.aL;i.emplaceBack(-1,-1),i.emplaceBack(1,-1),i.emplaceBack(1,1),i.emplaceBack(-1,1);const l=new s.aN;l.emplaceBack(0,1,2),l.emplaceBack(0,2,3),e.mesh=new Tn(h.createVertexBuffer(i,nn.members),h.createIndexBuffer(l),s.aM.simpleSegment(0,0,i.length,l.length))}return e.mesh}class od{constructor(e,i){this.context=new ed(e),this.transform=i,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:s.ag(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=cr.maxUnderzooming+cr.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new sr}resize(e,i,l){if(this.width=Math.floor(e*l),this.height=Math.floor(i*l),this.pixelRatio=l,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const u of this.style._order)this.style._layers[u].resize()}setup(){const e=this.context,i=new s.aL;i.emplaceBack(0,0),i.emplaceBack(s.$,0),i.emplaceBack(0,s.$),i.emplaceBack(s.$,s.$),this.tileExtentBuffer=e.createVertexBuffer(i,nn.members),this.tileExtentSegments=s.aM.simpleSegment(0,0,4,2);const l=new s.aL;l.emplaceBack(0,0),l.emplaceBack(s.$,0),l.emplaceBack(0,s.$),l.emplaceBack(s.$,s.$),this.debugBuffer=e.createVertexBuffer(l,nn.members),this.debugSegments=s.aM.simpleSegment(0,0,4,5);const u=new s.c6;u.emplaceBack(0,0,0,0),u.emplaceBack(s.$,0,s.$,0),u.emplaceBack(0,s.$,0,s.$),u.emplaceBack(s.$,s.$,s.$,s.$),this.rasterBoundsBuffer=e.createVertexBuffer(u,wp.members),this.rasterBoundsSegments=s.aM.simpleSegment(0,0,4,2);const d=new s.aL;d.emplaceBack(0,0),d.emplaceBack(s.$,0),d.emplaceBack(0,s.$),d.emplaceBack(s.$,s.$),this.rasterBoundsBufferPosOnly=e.createVertexBuffer(d,nn.members),this.rasterBoundsSegmentsPosOnly=s.aM.simpleSegment(0,0,4,5);const g=new s.aL;g.emplaceBack(0,0),g.emplaceBack(1,0),g.emplaceBack(0,1),g.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(g,nn.members),this.viewportSegments=s.aM.simpleSegment(0,0,4,2);const w=new s.c7;w.emplaceBack(0),w.emplaceBack(1),w.emplaceBack(3),w.emplaceBack(2),w.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(w);const C=new s.aN;C.emplaceBack(1,0,2),C.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(C);const P=this.context.gl;this.stencilClearMode=new cn({func:P.ALWAYS,mask:0},0,255,P.ZERO,P.ZERO,P.ZERO),this.tileExtentMesh=new Tn(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const e=this.context,i=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const l=s.L();s.bY(l,0,this.width,this.height,0,0,1),s.N(l,l,[i.drawingBufferWidth,i.drawingBufferHeight,0]);const u={mainMatrix:l,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:l};this.useProgram("clippingMask",null,!0).draw(e,i.TRIANGLES,$r.disabled,this.stencilClearMode,zn.disabled,Lr.disabled,null,null,u,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(e,i,l){if(this.currentStencilSource===e.source||!e.isTileClipped()||!i||!i.length)return;this.currentStencilSource=e.source,this.nextStencilID+i.length>256&&this.clearStencil();const u=this.context;u.setColorMode(zn.disabled),u.setDepthMode($r.disabled);const d={};for(const g of i)d[g.key]=this.nextStencilID++;this._renderTileMasks(d,i,l,!0),this._renderTileMasks(d,i,l,!1),this._tileClippingMaskIDs=d}_renderTileMasks(e,i,l,u){const d=this.context,g=d.gl,w=this.style.projection,C=this.transform,P=this.useProgram("clippingMask");for(const A of i){const R=e[A.key],D=this.style.map.terrain&&this.style.map.terrain.getTerrainData(A),O=w.getMeshFromTileID(this.context,A.canonical,u,!0,"stencil"),$=C.getProjectionData({overscaledTileID:A,applyGlobeMatrix:!l,applyTerrainMatrix:!0});P.draw(d,g.TRIANGLES,$r.disabled,new cn({func:g.ALWAYS,mask:0},R,255,g.KEEP,g.KEEP,g.REPLACE),zn.disabled,l?Lr.disabled:Lr.backCCW,null,D,$,"$clipping",O.vertexBuffer,O.indexBuffer,O.segments)}}_renderTilesDepthBuffer(){const e=this.context,i=e.gl,l=this.style.projection,u=this.transform,d=this.useProgram("depth"),g=this.getDepthModeFor3D(),w=xe(u,{tileSize:u.tileSize});for(const C of w){const P=this.style.map.terrain&&this.style.map.terrain.getTerrainData(C),A=l.getMeshFromTileID(this.context,C.canonical,!0,!0,"raster"),R=u.getProjectionData({overscaledTileID:C,applyGlobeMatrix:!0,applyTerrainMatrix:!0});d.draw(e,i.TRIANGLES,g,cn.disabled,zn.disabled,Lr.backCCW,null,P,R,"$clipping",A.vertexBuffer,A.indexBuffer,A.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const e=this.nextStencilID++,i=this.context.gl;return new cn({func:i.NOTEQUAL,mask:255},e,255,i.KEEP,i.KEEP,i.REPLACE)}stencilModeForClipping(e){const i=this.context.gl;return new cn({func:i.EQUAL,mask:255},this._tileClippingMaskIDs[e.key],0,i.KEEP,i.KEEP,i.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(e){const i=this.context.gl,l=e.sort(((g,w)=>w.overscaledZ-g.overscaledZ)),u=l[l.length-1].overscaledZ,d=l[0].overscaledZ-u+1;if(d>1){this.currentStencilSource=void 0,this.nextStencilID+d>256&&this.clearStencil();const g={};for(let w=0;ww.overscaledZ-g.overscaledZ)),u=l[l.length-1].overscaledZ,d=l[0].overscaledZ-u+1;if(this.clearStencil(),d>1){const g={},w={};for(let C=0;C0};for(const D in g){const O=g[D];O.used&&O.prepare(this.context),w[D]=O.getVisibleCoordinates(!1),C[D]=w[D].slice().reverse(),P[D]=O.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let D=0;Dthis.useProgram(D)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:i.showOverdrawInspector?s.bf.black:s.bf.transparent,depth:1}),this.clearStencil(),this.style.sky&&(function(D,O){const $=D.context,ee=$.gl,Q=((Pe,pe,Be)=>{const Qe=Math.cos(pe.rollInRadians),Ue=Math.sin(pe.rollInRadians),We=de(pe),Je=pe.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:Pe.properties.get("sky-color"),u_horizon_color:Pe.properties.get("horizon-color"),u_horizon:[(pe.width/2-We*Ue)*Be,(pe.height/2+We*Qe)*Be],u_horizon_normal:[-Ue,Qe],u_sky_horizon_blend:Pe.properties.get("sky-horizon-blend")*pe.height/2*Be,u_sky_blend:Je}})(O,D.style.map.transform,D.pixelRatio),ne=new $r(ee.LEQUAL,$r.ReadWrite,[0,1]),ue=cn.disabled,_e=D.colorModeForRenderPass(),he=D.useProgram("sky"),we=Gs($,O);he.draw($,ee.TRIANGLES,ne,ue,_e,Lr.disabled,Q,null,void 0,"sky",we.vertexBuffer,we.indexBuffer,we.segments)})(this,this.style.sky),this._showOverdrawInspector=i.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=d.length-1;this.currentLayer>=0;this.currentLayer--){const D=this.style._layers[d[this.currentLayer]],O=g[D.source],$=w[D.source];this._renderTileClippingMasks(D,$,!1),this.renderLayer(this,O,D,$,A)}this.renderPass="translucent";let R=!1;for(this.currentLayer=0;this.currentLayer({u_sun_pos:Je,u_atmosphere_blend:Nt,u_globe_position:Zt,u_globe_radius:Tt,u_inv_proj_matrix:mr}))(he,Pe,[Qe[0],Qe[1],Qe[2]],pe,Be),We=Gs(ee,O);ne.draw(ee,Q.TRIANGLES,ue,cn.disabled,zn.alphaBlended,Lr.disabled,Ue,null,null,"atmosphere",We.vertexBuffer,We.indexBuffer,We.segments)})(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const D=(function(O,$){let ee=null;const Q=Object.values(O._layers).flatMap((he=>he.source&&!he.isHidden($)?[O.sourceCaches[he.source]]:[])),ne=Q.filter((he=>he.getSource().type==="vector")),ue=Q.filter((he=>he.getSource().type!=="vector")),_e=he=>{(!ee||ee.getSource().maxzoom_e(he))),ee||ue.forEach((he=>_e(he))),ee})(this.style,this.transform.zoom);D&&(function(O,$,ee){for(let Q=0;QQe.getElevation(Je,Hn,Kn):null;Wc(Zt,Ue,We,pe,Be,Jr,Bn,Tt,An,s.aD(Be,Nt,we,Pe),Je.toUnwrapped(),Ln)}}})(P,g,C,w,C.layout.get("text-rotation-alignment"),C.layout.get("text-pitch-alignment"),C.paint.get("text-translate"),C.paint.get("text-translate-anchor"),A),C.paint.get("icon-opacity").constantOr(1)!==0&&Vs(g,w,C,P,!1,C.paint.get("icon-translate"),C.paint.get("icon-translate-anchor"),C.layout.get("icon-rotation-alignment"),C.layout.get("icon-pitch-alignment"),C.layout.get("icon-keep-upright"),O,$,D),C.paint.get("text-opacity").constantOr(1)!==0&&Vs(g,w,C,P,!0,C.paint.get("text-translate"),C.paint.get("text-translate-anchor"),C.layout.get("text-rotation-alignment"),C.layout.get("text-pitch-alignment"),C.layout.get("text-keep-upright"),O,$,D),w.map.showCollisionBoxes&&(td(g,w,C,P,!0),td(g,w,C,P,!1))})(e,i,l,u,this.style.placement.variableOffsets,d):s.cc(l)?(function(g,w,C,P,A){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:R}=A,D=C.paint.get("circle-opacity"),O=C.paint.get("circle-stroke-width"),$=C.paint.get("circle-stroke-opacity"),ee=!C.layout.get("circle-sort-key").isConstant();if(D.constantOr(1)===0&&(O.constantOr(1)===0||$.constantOr(1)===0))return;const Q=g.context,ne=Q.gl,ue=g.transform,_e=g.getDepthModeForSublayer(0,$r.ReadOnly),he=cn.disabled,we=g.colorModeForRenderPass(),Pe=[],pe=ue.getCircleRadiusCorrection();for(let Be=0;BeBe.sortKey-Qe.sortKey));for(const Be of Pe){const{programConfiguration:Qe,program:Ue,layoutVertexBuffer:We,indexBuffer:Je,uniformValues:Nt,terrainData:Zt,projectionData:Tt}=Be.state;Ue.draw(Q,ne.TRIANGLES,_e,he,we,Lr.backCCW,Nt,Zt,Tt,C.id,We,Je,Be.segments,C.paint,g.transform.zoom,Qe)}})(e,i,l,u,d):s.cd(l)?(function(g,w,C,P,A){if(C.paint.get("heatmap-opacity")===0)return;const R=g.context,{isRenderingToTexture:D,isRenderingGlobe:O}=A;if(g.style.map.terrain){for(const $ of P){const ee=w.getTile($);w.hasRenderableParent($)||(g.renderPass==="offscreen"?Xc(g,ee,C,$,O):g.renderPass==="translucent"&&nd(g,C,$,D,O))}R.viewport.set([0,0,g.width,g.height])}else g.renderPass==="offscreen"?(function($,ee,Q,ne){const ue=$.context,_e=ue.gl,he=$.transform,we=cn.disabled,Pe=new zn([_e.ONE,_e.ONE],s.bf.transparent,[!0,!0,!0,!0]);(function(pe,Be,Qe){const Ue=pe.gl;pe.activeTexture.set(Ue.TEXTURE1),pe.viewport.set([0,0,Be.width/4,Be.height/4]);let We=Qe.heatmapFbos.get(s.c2);We?(Ue.bindTexture(Ue.TEXTURE_2D,We.colorAttachment.get()),pe.bindFramebuffer.set(We.framebuffer)):(We=Zs(pe,Be.width/4,Be.height/4),Qe.heatmapFbos.set(s.c2,We))})(ue,$,Q),ue.clear({color:s.bf.transparent});for(let pe=0;pe0?i.pop():null}isPatternMissing(e){if(!e)return!1;if(!e.from||!e.to)return!0;const i=this.imageManager.getPattern(e.from.toString()),l=this.imageManager.getPattern(e.to.toString());return!i||!l}useProgram(e,i,l=!1,u=[]){this.cache=this.cache||{};const d=!!this.style.map.terrain,g=this.style.projection,w=l?Ur.projectionMercator:g.shaderPreludeCode,C=l?Cn:g.shaderDefine,P=e+(i?i.cacheKey:"")+`/${l?$n:g.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(d?"/terrain":"")+(u?`/${u.join("/")}`:"");return this.cache[P]||(this.cache[P]=new Dc(this.context,Ur[e],i,jc[e],this._showOverdrawInspector,d,w,C,u)),this.cache[P]}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 e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new s.T(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:e,drawingBufferHeight:i}=this.context.gl;return this.width!==e||this.height!==i}}function Oo(h,e){let i,l=!1,u=null,d=null;const g=()=>{u=null,l&&(h.apply(d,i),u=setTimeout(g,e),l=!1)};return(...w)=>(l=!0,d=this,i=w,u||g(),u)}class Fl{constructor(e){this._getCurrentHash=()=>{const i=window.location.hash.replace("#","");if(this._hashName){let l;return i.split("&").map((u=>u.split("="))).forEach((u=>{u[0]===this._hashName&&(l=u)})),(l&&l[1]||"").split("/")}return i.split("/")},this._onHashChange=()=>{const i=this._getCurrentHash();if(!this._isValidHash(i))return!1;const l=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(i[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+i[2],+i[1]],zoom:+i[0],bearing:l,pitch:+(i[4]||0)}),!0},this._updateHashUnthrottled=()=>{const i=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,i)},this._removeHash=()=>{const i=this._getCurrentHash();if(i.length===0)return;const l=i.join("/");let u=l;u.split("&").length>0&&(u=u.split("&")[0]),this._hashName&&(u=`${this._hashName}=${l}`);let d=window.location.hash.replace(u,"");d.startsWith("#&")?d=d.slice(0,1)+d.slice(2):d==="#"&&(d="");let g=window.location.href.replace(/(#.+)?$/,d);g=g.replace("&&","&"),window.history.replaceState(window.history.state,null,g)},this._updateHash=Oo(this._updateHashUnthrottled,300),this._hashName=e&&encodeURIComponent(e)}addTo(e){return this._map=e,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(e){const i=this._map.getCenter(),l=Math.round(100*this._map.getZoom())/100,u=Math.ceil((l*Math.LN2+Math.log(512/360/.5))/Math.LN10),d=Math.pow(10,u),g=Math.round(i.lng*d)/d,w=Math.round(i.lat*d)/d,C=this._map.getBearing(),P=this._map.getPitch();let A="";if(A+=e?`/${g}/${w}/${l}`:`${l}/${w}/${g}`,(C||P)&&(A+="/"+Math.round(10*C)/10),P&&(A+=`/${Math.round(P)}`),this._hashName){const R=this._hashName;let D=!1;const O=window.location.hash.slice(1).split("&").map(($=>{const ee=$.split("=")[0];return ee===R?(D=!0,`${ee}=${A}`):$})).filter(($=>$));return D||O.push(`${R}=${A}`),`#${O.join("&")}`}return`#${A}`}_isValidHash(e){if(e.length<3||e.some(isNaN))return!1;try{new s.S(+e[2],+e[1])}catch{return!1}const i=+e[0],l=+(e[3]||0),u=+(e[4]||0);return i>=this._map.getMinZoom()&&i<=this._map.getMaxZoom()&&l>=-180&&l<=180&&u>=this._map.getMinPitch()&&u<=this._map.getMaxPitch()}}const eo={linearity:.3,easing:s.cm(0,0,.3,1)},tu=s.e({deceleration:2500,maxSpeed:1400},eo),sd=s.e({deceleration:20,maxSpeed:1400},eo),ld=s.e({deceleration:1e3,maxSpeed:360},eo),cd=s.e({deceleration:1e3,maxSpeed:90},eo),ud=s.e({deceleration:1e3,maxSpeed:360},eo);class hd{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:ie.now(),settings:e})}_drainInertiaBuffer(){const e=this._inertiaBuffer,i=ie.now();for(;e.length>0&&i-e[0].time>160;)e.shift()}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,roll:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:d}of this._inertiaBuffer)i.zoom+=d.zoomDelta||0,i.bearing+=d.bearingDelta||0,i.pitch+=d.pitchDelta||0,i.roll+=d.rollDelta||0,d.panDelta&&i.pan._add(d.panDelta),d.around&&(i.around=d.around),d.pinchAround&&(i.pinchAround=d.pinchAround);const l=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,u={};if(i.pan.mag()){const d=ns(i.pan.mag(),l,s.e({},tu,e||{})),g=i.pan.mult(d.amount/i.pan.mag()),w=this._map.cameraHelper.handlePanInertia(g,this._map.transform);u.center=w.easingCenter,u.offset=w.easingOffset,Ia(u,d)}if(i.zoom){const d=ns(i.zoom,l,sd);u.zoom=this._map.transform.zoom+d.amount,Ia(u,d)}if(i.bearing){const d=ns(i.bearing,l,ld);u.bearing=this._map.transform.bearing+s.ah(d.amount,-179,179),Ia(u,d)}if(i.pitch){const d=ns(i.pitch,l,cd);u.pitch=this._map.transform.pitch+d.amount,Ia(u,d)}if(i.roll){const d=ns(i.roll,l,ud);u.roll=this._map.transform.roll+s.ah(d.amount,-179,179),Ia(u,d)}if(u.zoom||u.bearing){const d=i.pinchAround===void 0?i.around:i.pinchAround;u.around=d?this._map.unproject(d):this._map.getCenter()}return this.clear(),s.e(u,{noMoveStart:!0})}}function Ia(h,e){(!h.duration||h.durationi.unproject(C))),w=d.reduce(((C,P,A,R)=>C.add(P.div(R.length))),new s.P(0,0));super(e,{points:d,point:w,lngLats:g,lngLat:i.unproject(w),originalEvent:l}),this._defaultPrevented=!1}}class ru extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,i,l){super(e,{originalEvent:l}),this._defaultPrevented=!1}}class dd{constructor(e,i){this._map=e,this._clickTolerance=i.clickTolerance}reset(){delete this._mousedownPos}wheel(e){return this._firePreventable(new ru(e.type,this._map,e))}mousedown(e,i){return this._mousedownPos=i,this._firePreventable(new Qi(e.type,this._map,e))}mouseup(e){this._map.fire(new Qi(e.type,this._map,e))}click(e,i){this._mousedownPos&&this._mousedownPos.dist(i)>=this._clickTolerance||this._map.fire(new Qi(e.type,this._map,e))}dblclick(e){return this._firePreventable(new Qi(e.type,this._map,e))}mouseover(e){this._map.fire(new Qi(e.type,this._map,e))}mouseout(e){this._map.fire(new Qi(e.type,this._map,e))}touchstart(e){return this._firePreventable(new is(e.type,this._map,e))}touchmove(e){this._map.fire(new is(e.type,this._map,e))}touchend(e){this._map.fire(new is(e.type,this._map,e))}touchcancel(e){this._map.fire(new is(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class pd{constructor(e){this._map=e}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(e){this._map.fire(new Qi(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Qi("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new Qi(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class as{constructor(e){this._map=e}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(e){return this.transform.screenPointToLocation(s.P.convert(e),this._map.terrain)}}class nu{constructor(e,i){this._map=e,this._tr=new as(e),this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=i.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,i){this.isEnabled()&&e.shiftKey&&e.button===0&&(H.disableDrag(),this._startPos=this._lastPos=i,this._active=!0)}mousemoveWindow(e,i){if(!this._active)return;const l=i;if(this._lastPos.equals(l)||!this._box&&l.dist(this._startPos)d.fitScreenCoordinates(l,u,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",e)}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",e))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(H.remove(this._box),this._box=null),H.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(e,i){return this._map.fire(new s.l(e,{originalEvent:i}))}}function os(h,e){if(h.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${h.length}, points ${e.length}`);const i={};for(let l=0;lthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=e.timeStamp),l.length===this.numTouches&&(this.centroid=(function(u){const d=new s.P(0,0);for(const g of u)d._add(g);return d.div(u.length)})(i),this.touches=os(l,i)))}touchmove(e,i,l){if(this.aborted||!this.centroid)return;const u=os(l,i);for(const d in this.touches){const g=u[d];(!g||g.dist(this.touches[d])>30)&&(this.aborted=!0)}}touchend(e,i,l){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),l.length===0){const u=!this.aborted&&this.centroid;if(this.reset(),u)return u}}}class ea{constructor(e){this.singleTap=new fd(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(e,i,l){this.singleTap.touchstart(e,i,l)}touchmove(e,i,l){this.singleTap.touchmove(e,i,l)}touchend(e,i,l){const u=this.singleTap.touchend(e,i,l);if(u){const d=e.timeStamp-this.lastTime<500,g=!this.lastTap||this.lastTap.dist(u)<30;if(d&&g||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=u,this.count===this.numTaps)return this.reset(),u}}}class Ma{constructor(e){this._tr=new as(e),this._zoomIn=new ea({numTouches:1,numTaps:2}),this._zoomOut=new ea({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,i,l){this._zoomIn.touchstart(e,i,l),this._zoomOut.touchstart(e,i,l)}touchmove(e,i,l){this._zoomIn.touchmove(e,i,l),this._zoomOut.touchmove(e,i,l)}touchend(e,i,l){const u=this._zoomIn.touchend(e,i,l),d=this._zoomOut.touchend(e,i,l),g=this._tr;return u?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:w=>w.easeTo({duration:300,zoom:g.zoom+1,around:g.unproject(u)},{originalEvent:e})}):d?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:w=>w.easeTo({duration:300,zoom:g.zoom-1,around:g.unproject(d)},{originalEvent:e})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ss{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset()}reset(e){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(e)}_move(...e){const i=this._moveFunction(...e);if(i.bearingDelta||i.pitchDelta||i.rollDelta||i.around||i.panDelta)return this._active=!0,i}dragStart(e,i){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(i)?i[0]:i,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(e,i){if(!this.isEnabled())return;const l=this._lastPoint;if(!l)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e))return void this.reset(e);const u=Array.isArray(i)?i[0]:i;return!this._moved&&u.dist(l)!0}),i=new jp){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=i}_executeRelevantHandler(e,i,l){return e instanceof MouseEvent?i(e):typeof TouchEvent<"u"&&e instanceof TouchEvent?l(e):void 0}startMove(e){this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.startMove(i)),(i=>this.oneFingerTouchMoveStateManager.startMove(i)))}endMove(e){this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.endMove(i)),(i=>this.oneFingerTouchMoveStateManager.endMove(i)))}isValidStartEvent(e){return this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.isValidStartEvent(i)),(i=>this.oneFingerTouchMoveStateManager.isValidStartEvent(i)))}isValidMoveEvent(e){return this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.isValidMoveEvent(i)),(i=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(i)))}isValidEndEvent(e){return this._executeRelevantHandler(e,(i=>this.mouseMoveStateManager.isValidEndEvent(i)),(i=>this.oneFingerTouchMoveStateManager.isValidEndEvent(i)))}}const Ws=h=>{h.mousedown=h.dragStart,h.mousemoveWindow=h.dragMove,h.mouseup=h.dragEnd,h.contextmenu=e=>{e.preventDefault()}};class Xs{constructor(e,i){this._clickTolerance=e.clickTolerance||1,this._map=i,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new s.P(0,0)}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,i,l){return this._calculateTransform(e,i,l)}touchmove(e,i,l){if(this._active){if(!this._shouldBePrevented(l.length))return e.preventDefault(),this._calculateTransform(e,i,l);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",e)}}touchend(e,i,l){this._calculateTransform(e,i,l),this._active&&this._shouldBePrevented(l.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(e,i,l){l.length>0&&(this._active=!0);const u=os(l,i),d=new s.P(0,0),g=new s.P(0,0);let w=0;for(const P in u){const A=u[P],R=this._touches[P];R&&(d._add(A),g._add(A.sub(R)),w++,u[P]=A)}if(this._touches=u,this._shouldBePrevented(w)||!g.mag())return;const C=g.div(w);return this._sum._add(C),this._sum.mag()Math.abs(h.x)}class Nl extends Aa{constructor(e){super(),this._currentTouchCount=0,this._map=e}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(e,i,l){super.touchstart(e,i,l),this._currentTouchCount=l.length}_start(e){this._lastPoints=e,No(e[0].sub(e[1]))&&(this._valid=!1)}_move(e,i,l){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const u=e[0].sub(this._lastPoints[0]),d=e[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(u,d,l.timeStamp),this._valid?(this._lastPoints=e,this._active=!0,{pitchDelta:(u.y+d.y)/2*-.5}):void 0}gestureBeginsVertically(e,i,l){if(this._valid!==void 0)return this._valid;const u=e.mag()>=2,d=i.mag()>=2;if(!u&&!d)return;if(!u||!d)return this._firstMove===void 0&&(this._firstMove=l),l-this._firstMove<100&&void 0;const g=e.y>0==i.y>0;return No(e)&&No(i)&&g}}const un={panStep:100,bearingStep:15,pitchStep:10};class jl{constructor(e){this._tr=new as(e);const i=un;this._panStep=i.panStep,this._bearingStep=i.bearingStep,this._pitchStep=i.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let i=0,l=0,u=0,d=0,g=0;switch(e.keyCode){case 61:case 107:case 171:case 187:i=1;break;case 189:case 109:case 173:i=-1;break;case 37:e.shiftKey?l=-1:(e.preventDefault(),d=-1);break;case 39:e.shiftKey?l=1:(e.preventDefault(),d=1);break;case 38:e.shiftKey?u=1:(e.preventDefault(),g=-1);break;case 40:e.shiftKey?u=-1:(e.preventDefault(),g=1);break;default:return}return this._rotationDisabled&&(l=0,u=0),{cameraAnimation:w=>{const C=this._tr;w.easeTo({duration:300,easeId:"keyboardHandler",easing:qp,zoom:i?Math.round(C.zoom)+i*(e.shiftKey?2:1):C.zoom,bearing:C.bearing+l*this._bearingStep,pitch:C.pitch+u*this._pitchStep,offset:[-d*this._panStep,-g*this._panStep],center:C.center},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function qp(h){return h*(2-h)}const Vl=4.000244140625,Zp=1/450;class md{constructor(e,i){this._onTimeout=l=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(l)},this._map=e,this._tr=new as(e),this._triggerRenderFrame=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=Zp}setZoomRate(e){this._defaultZoomRate=e}setWheelZoomRate(e){this._wheelZoomRate=e}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&e.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(e){return!!this._map.cooperativeGestures.isEnabled()&&!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e))}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",e);let i=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const l=ie.now(),u=l-(this._lastWheelEventTime||0);this._lastWheelEventTime=l,i!==0&&i%Vl==0?this._type="wheel":i!==0&&Math.abs(i)<4?this._type="trackpad":u>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(u*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),e.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=e,this._delta-=i,this._active||this._start(e)),e.preventDefault()}_start(e){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 i=H.mousePos(this._map.getCanvas(),e),l=this._tr;this._aroundPoint=this._aroundCenter?l.transform.locationToScreenPoint(s.S.convert(l.center)):i,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const e=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const w=e.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=w),typeof this._targetZoom=="number"&&(this._targetZoom+=w)}if(this._delta!==0){const w=this._type==="wheel"&&Math.abs(this._delta)>Vl?this._wheelZoomRate:this._defaultZoomRate;let C=2/(1+Math.exp(-Math.abs(this._delta*w)));this._delta<0&&C!==0&&(C=1/C);const P=typeof this._targetZoom!="number"?e.scale:s.af(this._targetZoom);this._targetZoom=e.getConstrained(e.getCameraLngLat(),s.ak(P*C)).zoom,this._type==="wheel"&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const i=typeof this._targetZoom!="number"?e.zoom:this._targetZoom,l=this._startZoom,u=this._easing;let d,g=!1;if(this._type==="wheel"&&l&&u){const w=ie.now()-this._lastWheelEventTime,C=Math.min((w+5)/200,1),P=u(C);d=s.C.number(l,i,P),C<1?this._frameId||(this._frameId=!0):g=!0}else d=i,g=!0;return this._active=!0,g&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout}),200)),this._lastExpectedZoom=d,{noInertia:!0,needsRenderFrame:!g,zoomDelta:d-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let i=s.co;if(this._prevEase){const l=this._prevEase,u=(ie.now()-l.start)/l.duration,d=l.easing(u+.01)-l.easing(u),g=.27/Math.sqrt(d*d+1e-4)*.01,w=Math.sqrt(.0729-g*g);i=s.cm(g,w,.25,1)}return this._prevEase={start:ie.now(),duration:e,easing:i},i}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class ou{constructor(e,i){this._clickZoom=e,this._tapZoom=i}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 su{constructor(e){this._tr=new as(e),this.reset()}reset(){this._active=!1}dblclick(e,i){return e.preventDefault(),{cameraAnimation:l=>{l.easeTo({duration:300,zoom:this._tr.zoom+(e.shiftKey?-1:1),around:this._tr.unproject(i)},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class _d{constructor(){this._tap=new ea({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(e,i,l){if(!this._swipePoint)if(this._tapTime){const u=i[0],d=e.timeStamp-this._tapTime<500,g=this._tapPoint.dist(u)<30;d&&g?l.length>0&&(this._swipePoint=u,this._swipeTouch=l[0].identifier):this.reset()}else this._tap.touchstart(e,i,l)}touchmove(e,i,l){if(this._tapTime){if(this._swipePoint){if(l[0].identifier!==this._swipeTouch)return;const u=i[0],d=u.y-this._swipePoint.y;return this._swipePoint=u,e.preventDefault(),this._active=!0,{zoomDelta:d/128}}}else this._tap.touchmove(e,i,l)}touchend(e,i,l){if(this._tapTime)this._swipePoint&&l.length===0&&this.reset();else{const u=this._tap.touchend(e,i,l);u&&(this._tapTime=e.timeStamp,this._tapPoint=u)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class gd{constructor(e,i,l){this._el=e,this._mousePan=i,this._touchPan=l}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class lu{constructor(e,i,l,u){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=i,this._mousePitch=l,this._mouseRoll=u}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}}class vd{constructor(e,i,l,u){this._el=e,this._touchZoom=i,this._touchRotate=l,this._tapDragZoom=u,this._rotationDisabled=!1,this._enabled=!0}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class yd{constructor(e,i){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=e,this._options=i,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const e=this._map.getCanvasContainer();e.classList.add("maplibregl-cooperative-gestures"),this._container=H.create("div","maplibregl-cooperative-gesture-screen",e);let i=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(i=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const l=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),u=document.createElement("div");u.className="maplibregl-desktop-message",u.textContent=i,this._container.appendChild(u);const d=document.createElement("div");d.className="maplibregl-mobile-message",d.textContent=l,this._container.appendChild(d),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(H.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._destroyUI()}isEnabled(){return this._enabled}isBypassed(e){return e[this._bypassKey]}notifyGestureBlocked(e,i){this._enabled&&(this._map.fire(new s.l("cooperativegestureprevented",{gestureType:e,originalEvent:i})),this._container.classList.add("maplibregl-show"),setTimeout((()=>{this._container.classList.remove("maplibregl-show")}),100))}}const Ea=h=>h.zoom||h.drag||h.roll||h.pitch||h.rotate;class Un extends s.l{}function us(h){return h.panDelta&&h.panDelta.mag()||h.zoomDelta||h.bearingDelta||h.pitchDelta||h.rollDelta}class cu{constructor(e,i){this.handleWindowEvent=u=>{this.handleEvent(u,`${u.type}Window`)},this.handleEvent=(u,d)=>{if(u.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const g=u.type==="renderFrame"?void 0:u,w={needsRenderFrame:!1},C={},P={};for(const{handlerName:D,handler:O,allowed:$}of this._handlers){if(!O.isEnabled())continue;let ee;if(this._blockedByActive(P,$,D))O.reset();else if(O[d||u.type]){if(s.cp(u,d||u.type)){const Q=H.mousePos(this._map.getCanvas(),u);ee=O[d||u.type](u,Q)}else if(s.cq(u,d||u.type)){const Q=this._getMapTouches(u.touches),ne=H.touchPos(this._map.getCanvas(),Q);ee=O[d||u.type](u,ne,Q)}else s.cr(d||u.type)||(ee=O[d||u.type](u));this.mergeHandlerResult(w,C,ee,D,g),ee&&ee.needsRenderFrame&&this._triggerRenderFrame()}(ee||O.isActive())&&(P[D]=O)}const A={};for(const D in this._previousActiveHandlers)P[D]||(A[D]=g);this._previousActiveHandlers=P,(Object.keys(A).length||us(w))&&(this._changes.push([w,C,A]),this._triggerRenderFrame()),(Object.keys(P).length||us(w))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:R}=w;R&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],R(this._map))},this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new hd(e),this._bearingSnap=i.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(i);const l=this._el;this._listeners=[[l,"touchstart",{passive:!0}],[l,"touchmove",{passive:!1}],[l,"touchend",void 0],[l,"touchcancel",void 0],[l,"mousedown",void 0],[l,"mousemove",void 0],[l,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[l,"mouseover",void 0],[l,"mouseout",void 0],[l,"dblclick",void 0],[l,"click",void 0],[l,"keydown",{capture:!1}],[l,"keyup",void 0],[l,"wheel",{passive:!1}],[l,"contextmenu",void 0],[window,"blur",void 0]];for(const[u,d,g]of this._listeners)H.addEventListener(u,d,u===document?this.handleWindowEvent:this.handleEvent,g)}destroy(){for(const[e,i,l]of this._listeners)H.removeEventListener(e,i,e===document?this.handleWindowEvent:this.handleEvent,l)}_addDefaultHandlers(e){const i=this._map,l=i.getCanvasContainer();this._add("mapEvent",new dd(i,e));const u=i.boxZoom=new nu(i,e);this._add("boxZoom",u),e.interactive&&e.boxZoom&&u.enable();const d=i.cooperativeGestures=new yd(i,e.cooperativeGestures);this._add("cooperativeGestures",d),e.cooperativeGestures&&d.enable();const g=new Ma(i),w=new su(i);i.doubleClickZoom=new ou(w,g),this._add("tapZoom",g),this._add("clickZoom",w),e.interactive&&e.doubleClickZoom&&i.doubleClickZoom.enable();const C=new _d;this._add("tapDragZoom",C);const P=i.touchPitch=new Nl(i);this._add("touchPitch",P),e.interactive&&e.touchPitch&&i.touchPitch.enable(e.touchPitch);const A=()=>i.project(i.getCenter()),R=(function({enable:he,clickTolerance:we,aroundCenter:Pe=!0,minPixelCenterThreshold:pe=100,rotateDegreesPerPixelMoved:Be=.8},Qe){const Ue=new Hs({checkCorrectEvent:We=>H.mouseButton(We)===0&&We.ctrlKey||H.mouseButton(We)===2&&!We.ctrlKey});return new ss({clickTolerance:we,move:(We,Je)=>{const Nt=Qe();if(Pe&&Math.abs(Nt.y-We.y)>pe)return{bearingDelta:s.cn(new s.P(We.x,Je.y),Je,Nt)};let Zt=(Je.x-We.x)*Be;return Pe&&Je.yH.mouseButton(Be)===0&&Be.ctrlKey||H.mouseButton(Be)===2});return new ss({clickTolerance:we,move:(Be,Qe)=>({pitchDelta:(Qe.y-Be.y)*Pe}),moveStateManager:pe,enable:he,assignEvents:Ws})})(e),O=(function({enable:he,clickTolerance:we,rollDegreesPerPixelMoved:Pe=.3},pe){const Be=new Hs({checkCorrectEvent:Qe=>H.mouseButton(Qe)===2&&Qe.ctrlKey});return new ss({clickTolerance:we,move:(Qe,Ue)=>{const We=pe();let Je=(Ue.x-Qe.x)*Pe;return Ue.yH.mouseButton(pe)===0&&!pe.ctrlKey});return new ss({clickTolerance:we,move:(pe,Be)=>({around:Be,panDelta:Be.sub(pe)}),activateOnStart:!0,moveStateManager:Pe,enable:he,assignEvents:Ws})})(e),ee=new Xs(e,i);i.dragPan=new gd(l,$,ee),this._add("mousePan",$),this._add("touchPan",ee,["touchZoom","touchRotate"]),e.interactive&&e.dragPan&&i.dragPan.enable(e.dragPan);const Q=new cs,ne=new Ol;i.touchZoomRotate=new vd(l,ne,Q,C),this._add("touchRotate",Q,["touchPan","touchZoom"]),this._add("touchZoom",ne,["touchPan","touchRotate"]),e.interactive&&e.touchZoomRotate&&i.touchZoomRotate.enable(e.touchZoomRotate);const ue=i.scrollZoom=new md(i,(()=>this._triggerRenderFrame()));this._add("scrollZoom",ue,["mousePan"]),e.interactive&&e.scrollZoom&&i.scrollZoom.enable(e.scrollZoom);const _e=i.keyboard=new jl(i);this._add("keyboard",_e),e.interactive&&e.keyboard&&i.keyboard.enable(),this._add("blockableMapEvent",new pd(i))}_add(e,i,l){this._handlers.push({handlerName:e,handler:i,allowed:l}),this._handlersById[e]=i}stop(e){if(!this._updatingCamera){for(const{handler:i}of this._handlers)i.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Ea(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,i,l){for(const u in e)if(u!==l&&(!i||i.indexOf(u)<0))return!0;return!1}_getMapTouches(e){const i=[];for(const l of e)this._el.contains(l.target)&&i.push(l);return i}mergeHandlerResult(e,i,l,u,d){if(!l)return;s.e(e,l);const g={handlerName:u,originalEvent:l.originalEvent||d};l.zoomDelta!==void 0&&(i.zoom=g),l.panDelta!==void 0&&(i.drag=g),l.rollDelta!==void 0&&(i.roll=g),l.pitchDelta!==void 0&&(i.pitch=g),l.bearingDelta!==void 0&&(i.rotate=g)}_applyChanges(){const e={},i={},l={};for(const[u,d,g]of this._changes)u.panDelta&&(e.panDelta=(e.panDelta||new s.P(0,0))._add(u.panDelta)),u.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+u.zoomDelta),u.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+u.bearingDelta),u.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+u.pitchDelta),u.rollDelta&&(e.rollDelta=(e.rollDelta||0)+u.rollDelta),u.around!==void 0&&(e.around=u.around),u.pinchAround!==void 0&&(e.pinchAround=u.pinchAround),u.noInertia&&(e.noInertia=u.noInertia),s.e(i,d),s.e(l,g);this._updateMapTransform(e,i,l),this._changes=[]}_updateMapTransform(e,i,l){const u=this._map,d=u._getTransformForUpdate(),g=u.terrain;if(!(us(e)||g&&this._terrainMovement))return this._fireEvents(i,l,!0);u._stop(!0);let{panDelta:w,zoomDelta:C,bearingDelta:P,pitchDelta:A,rollDelta:R,around:D,pinchAround:O}=e;O!==void 0&&(D=O),D=D||u.transform.centerPoint,g&&!d.isPointOnMapSurface(D)&&(D=d.centerPoint);const $={panDelta:w,zoomDelta:C,rollDelta:R,pitchDelta:A,bearingDelta:P,around:D};this._map.cameraHelper.useGlobeControls&&!d.isPointOnMapSurface(D)&&(D=d.centerPoint);const ee=D.distSqr(d.centerPoint)<.01?d.center:d.screenPointToLocation(w?D.sub(w):D);g?(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom($,d),this._terrainMovement||!i.drag&&!i.zoom?i.drag&&this._terrainMovement?d.setCenter(d.screenPointToLocation(d.centerPoint.sub(w))):this._map.cameraHelper.handleMapControlsPan($,d,ee):(this._terrainMovement=!0,this._map._elevationFreeze=!0,this._map.cameraHelper.handleMapControlsPan($,d,ee))):(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom($,d),this._map.cameraHelper.handleMapControlsPan($,d,ee)),u._applyUpdatedTransform(d),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(i,l,!0)}_fireEvents(e,i,l){const u=Ea(this._eventsInProgress),d=Ea(e),g={};for(const R in e){const{originalEvent:D}=e[R];this._eventsInProgress[R]||(g[`${R}start`]=D),this._eventsInProgress[R]=e[R]}!u&&d&&this._fireEvent("movestart",d.originalEvent);for(const R in g)this._fireEvent(R,g[R]);d&&this._fireEvent("move",d.originalEvent);for(const R in e){const{originalEvent:D}=e[R];this._fireEvent(R,D)}const w={};let C;for(const R in this._eventsInProgress){const{handlerName:D,originalEvent:O}=this._eventsInProgress[R];this._handlersById[D].isActive()||(delete this._eventsInProgress[R],C=i[D]||O,w[`${R}end`]=C)}for(const R in w)this._fireEvent(R,w[R]);const P=Ea(this._eventsInProgress),A=(u||d)&&!P;if(A&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const R=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&R.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(R)}if(l&&A){this._updatingCamera=!0;const R=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),D=O=>O!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Un("renderFrame",{timeStamp:e})),this._applyChanges()}))}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class xd extends s.E{constructor(e,i,l){super(),this._renderFrameCallback=()=>{const u=Math.min((ie.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(u)),u<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=l.bearingSnap,this.cameraHelper=i,this.on("moveend",(()=>{delete this._requestedCameraState}))}migrateProjection(e,i){e.apply(this.transform),this.transform=e,this.cameraHelper=i}getCenter(){return new s.S(this.transform.center.lng,this.transform.center.lat)}setCenter(e,i){return this.jumpTo({center:e},i)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,i){return this.jumpTo({elevation:e},i),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e}panBy(e,i,l){return e=s.P.convert(e).mult(-1),this.panTo(this.transform.center,s.e({offset:e},i),l)}panTo(e,i,l){return this.easeTo(s.e({center:e},i),l)}getZoom(){return this.transform.zoom}setZoom(e,i){return this.jumpTo({zoom:e},i),this}zoomTo(e,i,l){return this.easeTo(s.e({zoom:e},i),l)}zoomIn(e,i){return this.zoomTo(this.getZoom()+1,e,i),this}zoomOut(e,i){return this.zoomTo(this.getZoom()-1,e,i),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,i){return e!=this.transform.fov&&(this.transform.setFov(e),this.fire(new s.l("movestart",i)).fire(new s.l("move",i)).fire(new s.l("moveend",i))),this}getBearing(){return this.transform.bearing}setBearing(e,i){return this.jumpTo({bearing:e},i),this}getPadding(){return this.transform.padding}setPadding(e,i){return this.jumpTo({padding:e},i),this}rotateTo(e,i,l){return this.easeTo(s.e({bearing:e},i),l)}resetNorth(e,i){return this.rotateTo(0,s.e({duration:1e3},e),i),this}resetNorthPitch(e,i){return this.easeTo(s.e({bearing:0,pitch:0,roll:0,duration:1e3},e),i),this}snapToNorth(e,i){return Math.abs(this.getBearing()){ee.easeFunc(Q),this.terrain&&!e.freezeElevation&&this._updateElevation(Q),this._applyUpdatedTransform(l),this._fireMoveEvents(i)}),(Q=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(i,Q)}),e),this}_prepareEase(e,i,l={}){this._moving=!0,i||l.moving||this.fire(new s.l("movestart",e)),this._zooming&&!l.zooming&&this.fire(new s.l("zoomstart",e)),this._rotating&&!l.rotating&&this.fire(new s.l("rotatestart",e)),this._pitching&&!l.pitching&&this.fire(new s.l("pitchstart",e)),this._rolling&&!l.rolling&&this.fire(new s.l("rollstart",e))}_prepareElevation(e){this._elevationCenter=e,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(e,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(e){this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const i=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&i!==this._elevationTarget){const l=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(l-(i-(l*e+this._elevationStart))/(1-e)),this._elevationTarget=i}this.transform.setElevation(s.C.number(this._elevationStart,this._elevationTarget,e))}_finalizeElevation(){this._elevationFreeze=!1,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90)return{};const i=e.getCameraLngLat(),l=e.getCameraAltitude(),u=this.terrain?this.terrain.getElevationForLngLatZoom(i,e.zoom):0;if(lthis._elevateCameraIfInsideTerrain(u))),this.transformCameraUpdate&&i.push((u=>this.transformCameraUpdate(u))),!i.length)return;const l=e.clone();for(const u of i){const d=l.clone(),{center:g,zoom:w,roll:C,pitch:P,bearing:A,elevation:R}=u(d);g&&d.setCenter(g),R!==void 0&&d.setElevation(R),w!==void 0&&d.setZoom(w),C!==void 0&&d.setRoll(C),P!==void 0&&d.setPitch(P),A!==void 0&&d.setBearing(A),l.apply(d)}this.transform.apply(l)}_fireMoveEvents(e){this.fire(new s.l("move",e)),this._zooming&&this.fire(new s.l("zoom",e)),this._rotating&&this.fire(new s.l("rotate",e)),this._pitching&&this.fire(new s.l("pitch",e)),this._rolling&&this.fire(new s.l("roll",e))}_afterEase(e,i){if(this._easeId&&i&&this._easeId===i)return;delete this._easeId;const l=this._zooming,u=this._rotating,d=this._pitching,g=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,l&&this.fire(new s.l("zoomend",e)),u&&this.fire(new s.l("rotateend",e)),d&&this.fire(new s.l("pitchend",e)),g&&this.fire(new s.l("rollend",e)),this.fire(new s.l("moveend",e))}flyTo(e,i){if(!e.essential&&ie.prefersReducedMotion){const Je=s.Q(e,["center","zoom","bearing","pitch","roll","elevation"]);return this.jumpTo(Je,i)}this.stop(),e=s.e({offset:[0,0],speed:1.2,curve:1.42,easing:s.co},e);const l=this._getTransformForUpdate(),u=l.bearing,d=l.pitch,g=l.roll,w=l.padding,C="bearing"in e?this._normalizeBearing(e.bearing,u):u,P="pitch"in e?+e.pitch:d,A="roll"in e?this._normalizeBearing(e.roll,g):g,R="padding"in e?e.padding:l.padding,D=s.P.convert(e.offset);let O=l.centerPoint.add(D);const $=l.screenPointToLocation(O),ee=this.cameraHelper.handleFlyTo(l,{bearing:C,pitch:P,roll:A,padding:R,locationAtOffset:$,offsetAsPoint:D,center:e.center,minZoom:e.minZoom,zoom:e.zoom});let Q=e.curve;const ne=Math.max(l.width,l.height),ue=ne/ee.scaleOfZoom,_e=ee.pixelPathLength;typeof ee.scaleOfMinZoom=="number"&&(Q=Math.sqrt(ne/ee.scaleOfMinZoom/_e*2));const he=Q*Q;function we(Je){const Nt=(ue*ue-ne*ne+(Je?-1:1)*he*he*_e*_e)/(2*(Je?ue:ne)*he*_e);return Math.log(Math.sqrt(Nt*Nt+1)-Nt)}function Pe(Je){return(Math.exp(Je)-Math.exp(-Je))/2}function pe(Je){return(Math.exp(Je)+Math.exp(-Je))/2}const Be=we(!1);let Qe=function(Je){return pe(Be)/pe(Be+Q*Je)},Ue=function(Je){return ne*((pe(Be)*(Pe(Nt=Be+Q*Je)/pe(Nt))-Pe(Be))/he)/_e;var Nt},We=(we(!0)-Be)/Q;if(Math.abs(_e)<2e-6||!isFinite(We)){if(Math.abs(ne-ue)<1e-6)return this.easeTo(e,i);const Je=ue0,Qe=Nt=>Math.exp(Je*Q*Nt)}return e.duration="duration"in e?+e.duration:1e3*We/("screenSpeed"in e?+e.screenSpeed/Q:+e.speed),e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=u!==C,this._pitching=P!==d,this._rolling=A!==g,this._padding=!l.isPaddingEqual(R),this._prepareEase(i,!1),this.terrain&&this._prepareElevation(ee.targetCenter),this._ease((Je=>{const Nt=Je*We,Zt=1/Qe(Nt),Tt=Ue(Nt);this._rotating&&l.setBearing(s.C.number(u,C,Je)),this._pitching&&l.setPitch(s.C.number(d,P,Je)),this._rolling&&l.setRoll(s.C.number(g,A,Je)),this._padding&&(l.interpolatePadding(w,R,Je),O=l.centerPoint.add(D)),ee.easeFunc(Je,Zt,Tt,O),this.terrain&&!e.freezeElevation&&this._updateElevation(Je),this._applyUpdatedTransform(l),this._fireMoveEvents(i)}),(()=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(i)}),e),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(e,i){var l;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const u=this._onEaseEnd;delete this._onEaseEnd,u.call(this,i)}return e||(l=this.handlers)===null||l===void 0||l.stop(!1),this}_ease(e,i,l){l.animate===!1||l.duration===0?(e(1),i()):(this._easeStart=ie.now(),this._easeOptions=l,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(e,i){e=s.aO(e,-180,180);const l=Math.abs(e-i);return Math.abs(e-360-i)MapLibre'};class hu{constructor(e=uu){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=i=>{!i||i.sourceDataType!=="metadata"&&i.sourceDataType!=="visibility"&&i.dataType!=="style"&&i.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=e}getDefaultPosition(){return"bottom-right"}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=H.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=H.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=H.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(){H.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(e,i){const l=this._map._getUIString(`AttributionControl.${i}`);e.title=l,e.setAttribute("aria-label",l)}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map((u=>typeof u!="string"?"":u))):typeof this.options.customAttribution=="string"&&e.push(this.options.customAttribution)),this._map.style.stylesheet){const u=this._map.style.stylesheet;this.styleOwner=u.owner,this.styleId=u.id}const i=this._map.style.sourceCaches;for(const u in i){const d=i[u];if(d.used||d.usedForTerrain){const g=d.getSource();g.attribution&&e.indexOf(g.attribution)<0&&e.push(g.attribution)}}e=e.filter((u=>String(u).trim())),e.sort(((u,d)=>u.length-d.length)),e=e.filter(((u,d)=>{for(let g=d+1;g=0)return!1;return!0}));const l=e.join(" | ");l!==this._attribHTML&&(this._attribHTML=l,e.length?(this._innerContainer.innerHTML=H.sanitize(l),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class bd{constructor(e={}){this._updateCompact=()=>{const i=this._container.children;if(i.length){const l=i[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&l.classList.add("maplibregl-compact"):l.classList.remove("maplibregl-compact")}},this.options=e}getDefaultPosition(){return"bottom-left"}onAdd(e){this._map=e,this._compact=this.options&&this.options.compact,this._container=H.create("div","maplibregl-ctrl");const i=H.create("a","maplibregl-ctrl-logo");return i.target="_blank",i.rel="noopener nofollow",i.href="https://maplibre.org/",i.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),i.setAttribute("rel","noopener nofollow"),this._container.appendChild(i),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){H.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class $a{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){const i=++this._id;return this._queue.push({callback:e,id:i,cancelled:!1}),i}remove(e){const i=this._currentlyRunning,l=i?this._queue.concat(i):this._queue;for(const u of l)if(u.id===e)return void(u.cancelled=!0)}run(e=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const i=this._currentlyRunning=this._queue;this._queue=[];for(const l of i)if(!l.cancelled&&(l.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var ql=s.aJ([{name:"a_pos3d",type:"Int16",components:3}]);class yr extends s.E{constructor(e){super(),this._lastTilesetChange=ie.now(),this.sourceCache=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=!0,e.tileSize=this.tileSize}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(e,i){this.sourceCache.update(e,i),this._renderableTilesKeys=[];const l={};for(const u of xe(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:i,calculateTileZoom:this.sourceCache._source.calculateTileZoom}))l[u.key]=!0,this._renderableTilesKeys.push(u.key),this._tiles[u.key]||(u.terrainRttPosMatrix32f=new Float64Array(16),s.bY(u.terrainRttPosMatrix32f,0,s.$,s.$,0,0,1),this._tiles[u.key]=new Zr(u,this.tileSize),this._lastTilesetChange=ie.now());for(const u in this._tiles)l[u]||delete this._tiles[u]}freeRtt(e){for(const i in this._tiles){const l=this._tiles[i];(!e||l.tileID.equals(e)||l.tileID.isChildOf(e)||e.isChildOf(l.tileID))&&(l.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map((e=>this.getTileByID(e)))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,i){return i?this._getTerrainCoordsForTileRanges(e,i):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){const i={};for(const l of this._renderableTilesKeys){const u=this._tiles[l].tileID,d=e.clone(),g=s.ba();if(u.canonical.equals(e.canonical))s.bY(g,0,s.$,s.$,0,0,1);else if(u.canonical.isChildOf(e.canonical)){const w=u.canonical.z-e.canonical.z,C=u.canonical.x-(u.canonical.x>>w<>w<>w;s.bY(g,0,A,A,0,0,1),s.M(g,g,[-C*A,-P*A,0])}else{if(!e.canonical.isChildOf(u.canonical))continue;{const w=e.canonical.z-u.canonical.z,C=e.canonical.x-(e.canonical.x>>w<>w<>w;s.bY(g,0,s.$,s.$,0,0,1),s.M(g,g,[C*A,P*A,0]),s.N(g,g,[1/2**w,1/2**w,0])}}d.terrainRttPosMatrix32f=new Float32Array(g),i[l]=d}return i}_getTerrainCoordsForTileRanges(e,i){const l={};for(const u of this._renderableTilesKeys){const d=this._tiles[u].tileID;if(!this._isWithinTileRanges(d,i))continue;const g=e.clone(),w=s.ba();if(d.canonical.z===e.canonical.z){const C=e.canonical.x-d.canonical.x,P=e.canonical.y-d.canonical.y;s.bY(w,0,s.$,s.$,0,0,1),s.M(w,w,[C*s.$,P*s.$,0])}else if(d.canonical.z>e.canonical.z){const C=d.canonical.z-e.canonical.z,P=d.canonical.x-(d.canonical.x>>C<>C<>C),D=e.canonical.y-(d.canonical.y>>C),O=s.$>>C;s.bY(w,0,O,O,0,0,1),s.M(w,w,[-P*O+R*s.$,-A*O+D*s.$,0])}else{const C=e.canonical.z-d.canonical.z,P=e.canonical.x-(e.canonical.x>>C<>C<>C)-d.canonical.x,D=(e.canonical.y>>C)-d.canonical.y,O=s.$<l.maxzoom&&(u=l.maxzoom),u=l.minzoom&&(!d||!d.dem);)d=this.sourceCache.getTileByID(e.scaledTo(u--).key);return d}anyTilesAfterTime(e=Date.now()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,i){return i[e.canonical.z]&&e.canonical.x>=i[e.canonical.z].minTileX&&e.canonical.x<=i[e.canonical.z].maxTileX&&e.canonical.y>=i[e.canonical.z].minTileY&&e.canonical.y<=i[e.canonical.z].maxTileY}}class Or{constructor(e,i,l){this._meshCache={},this.painter=e,this.sourceCache=new yr(i),this.options=l,this.exaggeration=typeof l.exaggeration=="number"?l.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(e,i,l,u=s.$){var d;if(!(i>=0&&i=0&&le.canonical.z&&(e.canonical.z>=u?d=e.canonical.z-u:s.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const g=e.canonical.x-(e.canonical.x>>d<>d<>8<<4|d>>8,i[g+3]=0;const l=new s.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(i.buffer)),u=new s.T(e,l,e.gl.RGBA,{premultiply:!1});return u.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=u,u}pointCoordinate(e){this.painter.maybeDrawDepthAndCoords(!0);const i=new Uint8Array(4),l=this.painter.context,u=l.gl,d=Math.round(e.x*this.painter.pixelRatio/devicePixelRatio),g=Math.round(e.y*this.painter.pixelRatio/devicePixelRatio),w=Math.round(this.painter.height/devicePixelRatio);l.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),u.readPixels(d,w-g-1,1,1,u.RGBA,u.UNSIGNED_BYTE,i),l.bindFramebuffer.set(null);const C=i[0]+(i[2]>>4<<8),P=i[1]+((15&i[2])<<8),A=this.coordsIndex[255-i[3]],R=A&&this.sourceCache.getTileByID(A);if(!R)return null;const D=this._coordsTextureSize,O=(1<0,u=l&&e.canonical.y===0,d=l&&e.canonical.y===(1<e.id!==i)),this._recentlyUsed.push(e.id)}stampObject(e){e.stamp=++this._stamp}getOrCreateFreeObject(){for(const i of this._recentlyUsed)if(!this._objects[i].inUse)return this._objects[i];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const e=this._createObject(this._objects.length);return this._objects.push(e),e}freeObject(e){e.inUse=!1}freeAllObjects(){for(const e of this._objects)this.freeObject(e)}isFull(){return!(this._objects.length!e.inUse))===!1}}const _o={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0,"color-relief":!0};class Ul{constructor(e,i){this.painter=e,this.terrain=i,this.pool=new Zl(e.context,30,i.sourceCache.tileSize*i.qualityFactor)}destruct(){this.pool.destruct()}getTexture(e){return this.pool.getObjectForId(e.rtt[this._stacks.length-1].id).texture}prepareForRender(e,i){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=e._order.filter((l=>!e._layers[l].isHidden(i))),this._coordsAscending={};for(const l in e.sourceCaches){this._coordsAscending[l]={};const u=e.sourceCaches[l].getVisibleCoordinates(),d=e.sourceCaches[l].getSource(),g=d instanceof Ot?d.terrainTileRanges:null;for(const w of u){const C=this.terrain.sourceCache.getTerrainCoords(w,g);for(const P in C)this._coordsAscending[l][P]||(this._coordsAscending[l][P]=[]),this._coordsAscending[l][P].push(C[P])}}this._coordsAscendingStr={};for(const l of e._order){const u=e._layers[l],d=u.source;if(_o[u.type]&&!this._coordsAscendingStr[d]){this._coordsAscendingStr[d]={};for(const g in this._coordsAscending[d])this._coordsAscendingStr[d][g]=this._coordsAscending[d][g].map((w=>w.key)).sort().join()}}for(const l of this._renderableTiles)for(const u in this._coordsAscendingStr){const d=this._coordsAscendingStr[u][l.tileID.key];d&&d!==l.rttCoords[u]&&(l.rtt=[])}}renderLayer(e,i){if(e.isHidden(this.painter.transform.zoom))return!1;const l=Object.assign(Object.assign({},i),{isRenderingToTexture:!0}),u=e.type,d=this.painter,g=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(_o[u]&&(this._prevType&&_o[this._prevType]||this._stacks.push([]),this._prevType=u,this._stacks[this._stacks.length-1].push(e.id),!g))return!0;if(_o[this._prevType]||_o[u]&&g){this._prevType=u;const w=this._stacks.length-1,C=this._stacks[w]||[];for(const P of this._renderableTiles){if(this.pool.isFull()&&(Bl(this.painter,this.terrain,this._rttTiles,l),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(P),P.rtt[w]){const R=this.pool.getObjectForId(P.rtt[w].id);if(R.stamp===P.rtt[w].stamp){this.pool.useObject(R);continue}}const A=this.pool.getOrCreateFreeObject();this.pool.useObject(A),this.pool.stampObject(A),P.rtt[w]={id:A.id,stamp:A.stamp},d.context.bindFramebuffer.set(A.fbo.framebuffer),d.context.clear({color:s.bf.transparent,stencil:0}),d.currentStencilSource=void 0;for(let R=0;R{this.startMove(d,H.mousePos(this.element,d)),H.addEventListener(window,"mousemove",this.mousemove),H.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=d=>{this.move(d,H.mousePos(this.element,d))},this.mouseup=d=>{this._rotatePitchHandler.dragEnd(d),this.offTemp()},this.touchstart=d=>{d.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=H.touchPos(this.element,d.targetTouches)[0],this.startMove(d,this._startPos),H.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),H.addEventListener(window,"touchend",this.touchend))},this.touchmove=d=>{d.targetTouches.length!==1?this.reset():(this._lastPos=H.touchPos(this.element,d.targetTouches)[0],this.move(d,this._lastPos))},this.touchend=d=>{d.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this._rotatePitchHandler.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=i;const u=new Vp;this._rotatePitchHandler=new ss({clickTolerance:3,move:(d,g)=>{const w=i.getBoundingClientRect(),C=new s.P((w.bottom-w.top)/2,(w.right-w.left)/2);return{bearingDelta:s.cn(new s.P(d.x,g.y),g,C),pitchDelta:l?-.5*(g.y-d.y):void 0}},moveStateManager:u,enable:!0,assignEvents:()=>{}}),this.map=e,H.addEventListener(i,"mousedown",this.mousedown),H.addEventListener(i,"touchstart",this.touchstart,{passive:!1}),H.addEventListener(i,"touchcancel",this.reset)}startMove(e,i){this._rotatePitchHandler.dragStart(e,i),H.disableDrag()}move(e,i){const l=this.map,{bearingDelta:u,pitchDelta:d}=this._rotatePitchHandler.dragMove(e,i)||{};u&&l.setBearing(l.getBearing()+u),d&&l.setPitch(l.getPitch()+d)}off(){const e=this.element;H.removeEventListener(e,"mousedown",this.mousedown),H.removeEventListener(e,"touchstart",this.touchstart,{passive:!1}),H.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),H.removeEventListener(window,"touchend",this.touchend),H.removeEventListener(e,"touchcancel",this.reset),this.offTemp()}offTemp(){H.enableDrag(),H.removeEventListener(window,"mousemove",this.mousemove),H.removeEventListener(window,"mouseup",this.mouseup),H.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),H.removeEventListener(window,"touchend",this.touchend)}}let Rn;function ti(h,e,i,l=!1){if(l||!i.getCoveringTilesDetailsProvider().allowWorldCopies())return h==null?void 0:h.wrap();const u=new s.S(h.lng,h.lat);if(h=new s.S(h.lng,h.lat),e){const d=new s.S(h.lng-360,h.lat),g=new s.S(h.lng+360,h.lat),w=i.locationToScreenPoint(h).distSqr(e);i.locationToScreenPoint(d).distSqr(e)180;){const d=i.locationToScreenPoint(h);if(d.x>=0&&d.y>=0&&d.x<=i.width&&d.y<=i.height)break;h.lng>i.center.lng?h.lng-=360:h.lng+=360}return h.lng!==u.lng&&i.isPointOnMapSurface(i.locationToScreenPoint(h))?h:u}const $l={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 hs(h,e,i){const l=h.classList;for(const u in $l)l.remove(`maplibregl-${i}-anchor-${u}`);l.add(`maplibregl-${i}-anchor-${e}`)}class ds extends s.E{constructor(e){if(super(),this._onKeyPress=i=>{const l=i.code,u=i.charCode||i.keyCode;l!=="Space"&&l!=="Enter"&&u!==32&&u!==13||this.togglePopup()},this._onMapClick=i=>{const l=i.originalEvent.target,u=this._element;this._popup&&(l===u||u.contains(l))&&this.togglePopup()},this._update=i=>{if(!this._map)return;const l=this._map.loaded()&&!this._map.isMoving();((i==null?void 0:i.type)==="terrain"||(i==null?void 0:i.type)==="render"&&!l)&&this._map.once("render",this._update),this._lngLat=ti(this._lngLat,this._flatPos,this._map.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let u="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?u=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(u=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let d="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?d="rotateX(0deg)":this._pitchAlignment==="map"&&(d=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||i&&i.type!=="moveend"||(this._pos=this._pos.round()),H.setTransform(this._element,`${$l[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${d} ${u}`),ie.frameAsync(new AbortController).then((()=>{this._updateOpacity(i&&i.type==="moveend")})).catch((()=>{}))},this._onMove=i=>{if(!this._isDragging){const l=this._clickTolerance||this._map._clickTolerance;this._isDragging=i.point.dist(this._pointerdownPos)>=l}this._isDragging&&(this._pos=i.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 s.l("dragstart"))),this.fire(new s.l("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 s.l("dragend")),this._state="inactive"},this._addDragHandler=i=>{this._element.contains(i.originalEvent.target)&&(i.preventDefault(),this._positionDelta=i.point.sub(this._pos).add(this._offset),this._pointerdownPos=i.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=e&&e.anchor||"center",this._color=e&&e.color||"#3FB1CE",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._subpixelPositioning=e&&e.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||"auto",this._pitchAlignment=e&&e.pitchAlignment&&e.pitchAlignment!=="auto"?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e==null?void 0:e.opacity,e==null?void 0:e.opacityWhenCovered),e&&e.element)this._element=e.element,this._offset=s.P.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=H.create("div");const i=H.createNS("http://www.w3.org/2000/svg","svg"),l=41,u=27;i.setAttributeNS(null,"display","block"),i.setAttributeNS(null,"height",`${l}px`),i.setAttributeNS(null,"width",`${u}px`),i.setAttributeNS(null,"viewBox",`0 0 ${u} ${l}`);const d=H.createNS("http://www.w3.org/2000/svg","g");d.setAttributeNS(null,"stroke","none"),d.setAttributeNS(null,"stroke-width","1"),d.setAttributeNS(null,"fill","none"),d.setAttributeNS(null,"fill-rule","evenodd");const g=H.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"fill-rule","nonzero");const w=H.createNS("http://www.w3.org/2000/svg","g");w.setAttributeNS(null,"transform","translate(3.0, 29.0)"),w.setAttributeNS(null,"fill","#000000");const C=[{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 ne of C){const ue=H.createNS("http://www.w3.org/2000/svg","ellipse");ue.setAttributeNS(null,"opacity","0.04"),ue.setAttributeNS(null,"cx","10.5"),ue.setAttributeNS(null,"cy","5.80029008"),ue.setAttributeNS(null,"rx",ne.rx),ue.setAttributeNS(null,"ry",ne.ry),w.appendChild(ue)}const P=H.createNS("http://www.w3.org/2000/svg","g");P.setAttributeNS(null,"fill",this._color);const A=H.createNS("http://www.w3.org/2000/svg","path");A.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"),P.appendChild(A);const R=H.createNS("http://www.w3.org/2000/svg","g");R.setAttributeNS(null,"opacity","0.25"),R.setAttributeNS(null,"fill","#000000");const D=H.createNS("http://www.w3.org/2000/svg","path");D.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"),R.appendChild(D);const O=H.createNS("http://www.w3.org/2000/svg","g");O.setAttributeNS(null,"transform","translate(6.0, 7.0)"),O.setAttributeNS(null,"fill","#FFFFFF");const $=H.createNS("http://www.w3.org/2000/svg","g");$.setAttributeNS(null,"transform","translate(8.0, 8.0)");const ee=H.createNS("http://www.w3.org/2000/svg","circle");ee.setAttributeNS(null,"fill","#000000"),ee.setAttributeNS(null,"opacity","0.25"),ee.setAttributeNS(null,"cx","5.5"),ee.setAttributeNS(null,"cy","5.5"),ee.setAttributeNS(null,"r","5.4999962");const Q=H.createNS("http://www.w3.org/2000/svg","circle");Q.setAttributeNS(null,"fill","#FFFFFF"),Q.setAttributeNS(null,"cx","5.5"),Q.setAttributeNS(null,"cy","5.5"),Q.setAttributeNS(null,"r","5.4999962"),$.appendChild(ee),$.appendChild(Q),g.appendChild(w),g.appendChild(P),g.appendChild(R),g.appendChild(O),g.appendChild($),i.appendChild(g),i.setAttributeNS(null,"height",l*this._scale+"px"),i.setAttributeNS(null,"width",u*this._scale+"px"),this._element.appendChild(i),this._offset=s.P.convert(e&&e.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",(i=>{i.preventDefault()})),this._element.addEventListener("mousedown",(i=>{i.preventDefault()})),hs(this._element,this._anchor,"marker"),e&&e.className)for(const i of e.className.split(" "))this._element.classList.add(i);this._popup=null}addTo(e){return this.remove(),this._map=e,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",e._getUIString("Marker.Title")),e.getCanvasContainer().appendChild(this._element),e.on("move",this._update),e.on("moveend",this._update),e.on("terrain",this._update),e.on("projectiontransition",this._update),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("terrain",this._update),this._map.off("projectiontransition",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),H.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=s.S.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const u=Math.abs(13.5)/Math.SQRT2;e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[u,-1*(38.1-13.5+u)],"bottom-right":[-u,-1*(38.1-13.5+u)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=e,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}getPopup(){return this._popup}togglePopup(){const e=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:e?(e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map)),this):this}_updateOpacity(e=!1){var i,l;const u=(i=this._map)===null||i===void 0?void 0:i.terrain,d=this._map.transform.isLocationOccluded(this._lngLat);if(!u||d){const O=d?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==O&&(this._element.style.opacity=O))}if(e)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout((()=>{this._opacityTimeout=null}),100)}const g=this._map,w=g.terrain.depthAtPoint(this._pos),C=g.terrain.getElevationForLngLatZoom(this._lngLat,g.transform.tileZoom);if(g.transform.lngLatToCameraDepth(this._lngLat,C)-w<.006)return void(this._element.style.opacity=this._opacity);const P=-this._offset.y/g.transform.pixelsPerMeter,A=Math.sin(g.getPitch()*Math.PI/180)*P,R=g.terrain.depthAtPoint(new s.P(this._pos.x,this._pos.y-this._offset.y)),D=g.transform.lngLatToCameraDepth(this._lngLat,C+A)-R>.006;!((l=this._popup)===null||l===void 0)&&l.isOpen()&&D&&this._popup.remove(),this._element.style.opacity=D?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(e){return this._offset=s.P.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e)}removeClassName(e){this._element.classList.remove(e)}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._map&&(e?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!=="auto"?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,i){return(this._opacity===void 0||e===void 0&&i===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),e!==void 0&&(this._opacity=e),i!==void 0&&(this._opacityWhenCovered=i),this._map&&this._updateOpacity(!0),this}}const du={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let ps=0,jo=!1;const Ks={maxWidth:100,unit:"metric"};function Gl(h,e,i){const l=i&&i.maxWidth||100,u=h._container.clientHeight/2,d=h._container.clientWidth/2,g=h.unproject([d-l/2,u]),w=h.unproject([d+l/2,u]),C=Math.round(h.project(w).x-h.project(g).x),P=Math.min(l,C,h._container.clientWidth),A=g.distanceTo(w);if(i&&i.unit==="imperial"){const R=3.2808*A;R>5280?Vo(e,P,R/5280,h._getUIString("ScaleControl.Miles")):Vo(e,P,R,h._getUIString("ScaleControl.Feet"))}else i&&i.unit==="nautical"?Vo(e,P,A/1852,h._getUIString("ScaleControl.NauticalMiles")):A>=1e3?Vo(e,P,A/1e3,h._getUIString("ScaleControl.Kilometers")):Vo(e,P,A,h._getUIString("ScaleControl.Meters"))}function Vo(h,e,i,l){const u=(function(d){const g=Math.pow(10,`${Math.floor(d)}`.length-1);let w=d/g;return w=w>=10?10:w>=5?5:w>=3?3:w>=2?2:w>=1?1:(function(C){const P=Math.pow(10,Math.ceil(-Math.log(C)/Math.LN10));return Math.round(C*P)/P})(w),g*w})(i);h.style.width=e*(u/i)+"px",h.innerHTML=`${u} ${l}`}const pu={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0},fu=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Hl(h){if(h){if(typeof h=="number"){const e=Math.round(Math.abs(h)/Math.SQRT2);return{center:new s.P(0,0),top:new s.P(0,h),"top-left":new s.P(e,e),"top-right":new s.P(-e,e),bottom:new s.P(0,-h),"bottom-left":new s.P(e,-e),"bottom-right":new s.P(-e,-e),left:new s.P(h,0),right:new s.P(-h,0)}}if(h instanceof s.P||Array.isArray(h)){const e=s.P.convert(h);return{center:e,top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{center:s.P.convert(h.center||[0,0]),top:s.P.convert(h.top||[0,0]),"top-left":s.P.convert(h["top-left"]||[0,0]),"top-right":s.P.convert(h["top-right"]||[0,0]),bottom:s.P.convert(h.bottom||[0,0]),"bottom-left":s.P.convert(h["bottom-left"]||[0,0]),"bottom-right":s.P.convert(h["bottom-right"]||[0,0]),left:s.P.convert(h.left||[0,0]),right:s.P.convert(h.right||[0,0])}}return Hl(new s.P(0,0))}const mu=B;T.AJAXError=s.cz,T.Event=s.l,T.Evented=s.E,T.LngLat=s.S,T.MercatorCoordinate=s.a1,T.Point=s.P,T.addProtocol=s.cA,T.config=s.a,T.removeProtocol=s.cB,T.AttributionControl=hu,T.BoxZoomHandler=nu,T.CanvasSource=kr,T.CooperativeGesturesHandler=yd,T.DoubleClickZoomHandler=ou,T.DragPanHandler=gd,T.DragRotateHandler=lu,T.EdgeInsets=Mn,T.FullscreenControl=class extends s.E{constructor(h={}){super(),this._onFullscreenChange=()=>{var e;let i=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((e=i==null?void 0:i.shadowRoot)===null||e===void 0)&&e.fullscreenElement;)i=i.shadowRoot.fullscreenElement;i===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,h&&h.container&&(h.container instanceof HTMLElement?this._container=h.container:s.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(h){return this._map=h,this._container||(this._container=this._map.getContainer()),this._controlContainer=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){H.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const h=this._fullscreenButton=H.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);H.create("span","maplibregl-ctrl-icon",h).setAttribute("aria-hidden","true"),h.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const h=this._getTitle();this._fullscreenButton.setAttribute("aria-label",h),this._fullscreenButton.title=h}_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 s.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new s.l("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()}},T.GeoJSONSource=Qt,T.GeolocateControl=class extends s.E{constructor(h){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new s.l("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(e),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new s.l("geolocate",e)),this._finish()}},this._updateCamera=e=>{const i=new s.S(e.coords.longitude,e.coords.latitude),l=e.coords.accuracy,u=this._map.getBearing(),d=s.e({bearing:u},this.options.fitBoundsOptions),g=mt.fromLngLat(i,l);this._map.fitBounds(g,d,{geolocateSource:!0})},this._updateMarker=e=>{if(e){const i=new s.S(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=e.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=e=>{if(this._map){if(e.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(e.code===3&&jo)return;this.options.trackUserLocation&&this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new s.l("error",e)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this._geolocateButton=H.create("button","maplibregl-ctrl-geolocate",this._container),H.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=e=>{if(this._map){if(e===!1){s.w("Geolocation support is not available so the GeolocateControl will be disabled.");const i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{const i=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=H.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new ds({element:this._dotElement}),this._circleElement=H.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new ds({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",(i=>{const l=(i==null?void 0:i[0])instanceof ResizeObserverEntry;i.geolocateSource||this._watchState!=="ACTIVE_LOCK"||l||this._map.isZooming()||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new s.l("trackuserlocationend")),this.fire(new s.l("userlocationlostfocus")))}))}},this.options=s.e({},du,h)}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),(function(){return s._(this,arguments,void 0,(function*(e=!1){if(Rn!==void 0&&!e)return Rn;if(window.navigator.permissions===void 0)return Rn=!!window.navigator.geolocation,Rn;try{Rn=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Rn=!!window.navigator.geolocation}return Rn}))})().then((e=>this._finishSetupUI(e))),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),H.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,ps=0,jo=!1}_isOutOfMapMaxBounds(h){const e=this._map.getMaxBounds(),i=h.coords;return e&&(i.longitudee.getEast()||i.latitudee.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 h=this._map.getBounds(),e=h.getSouthEast(),i=h.getNorthEast(),l=e.distanceTo(i),u=Math.ceil(this._accuracy/(l/this._map._container.clientHeight)*2);this._circleElement.style.width=`${u}px`,this._circleElement.style.height=`${u}px`}trigger(){if(!this._setup)return s.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 s.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":ps--,jo=!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 s.l("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 s.l("trackuserlocationstart")),this.fire(new s.l("userlocationfocus"));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 h;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),ps++,ps>1?(h={maximumAge:6e5,timeout:0},jo=!0):(h=this.options.positionOptions,jo=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,h)}}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)}},T.GlobeControl=class{constructor(){this._toggleProjection=()=>{var h;const e=(h=this._map.getProjection())===null||h===void 0?void 0:h.type;this._map.setProjection(e!=="mercator"&&e?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var h;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((h=this._map.getProjection())===null||h===void 0?void 0:h.type)==="globe"?(this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"),this._globeButton.title=this._map._getUIString("GlobeControl.Disable")):(this._globeButton.classList.add("maplibregl-ctrl-globe"),this._globeButton.title=this._map._getUIString("GlobeControl.Enable"))}}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=H.create("button","maplibregl-ctrl-globe",this._container),H.create("span","maplibregl-ctrl-icon",this._globeButton).setAttribute("aria-hidden","true"),this._globeButton.type="button",this._globeButton.addEventListener("click",this._toggleProjection),this._updateGlobeIcon(),this._map.on("styledata",this._updateGlobeIcon),this._container}onRemove(){H.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},T.Hash=Fl,T.ImageSource=Ot,T.KeyboardHandler=jl,T.LngLatBounds=mt,T.LogoControl=bd,T.Map=class extends xd{constructor(h){var e,i;s.cw.mark(s.cx.create);const l=Object.assign(Object.assign(Object.assign({},xa),h),{canvasContextAttributes:Object.assign(Object.assign({},xa.canvasContextAttributes),h.canvasContextAttributes)});if(l.minZoom!=null&&l.maxZoom!=null&&l.minZoom>l.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(l.minPitch!=null&&l.maxPitch!=null&&l.minPitch>l.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(l.minPitch!=null&&l.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(l.maxPitch!=null&&l.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const u=new an,d=new jn;if(l.minZoom!==void 0&&u.setMinZoom(l.minZoom),l.maxZoom!==void 0&&u.setMaxZoom(l.maxZoom),l.minPitch!==void 0&&u.setMinPitch(l.minPitch),l.maxPitch!==void 0&&u.setMaxPitch(l.maxPitch),l.renderWorldCopies!==void 0&&u.setRenderWorldCopies(l.renderWorldCopies),super(u,d,{bearingSnap:l.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new $a,this._controls=[],this._mapId=s.a7(),this._contextLost=w=>{w.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new s.l("webglcontextlost",{originalEvent:w}))},this._contextRestored=w=>{this._setupPainter(),this.resize(),this._update(),this.fire(new s.l("webglcontextrestored",{originalEvent:w}))},this._onMapScroll=w=>{if(w.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=l.interactive,this._maxTileCacheSize=l.maxTileCacheSize,this._maxTileCacheZoomLevels=l.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},l.canvasContextAttributes),this._trackResize=l.trackResize===!0,this._bearingSnap=l.bearingSnap,this._centerClampedToGround=l.centerClampedToGround,this._refreshExpiredTiles=l.refreshExpiredTiles===!0,this._fadeDuration=l.fadeDuration,this._crossSourceCollisions=l.crossSourceCollisions===!0,this._collectResourceTiming=l.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},Zi),l.locale),this._clickTolerance=l.clickTolerance,this._overridePixelRatio=l.pixelRatio,this._maxCanvasSize=l.maxCanvasSize,this.transformCameraUpdate=l.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=l.cancelPendingTileRequestsWhileZooming===!0,this._imageQueueHandle=Fe.addThrottleControl((()=>this.isMoving())),this._requestManager=new Ke(l.transformRequest),typeof l.container=="string"){if(this._container=document.getElementById(l.container),!this._container)throw new Error(`Container '${l.container}' not found.`)}else{if(!(l.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=l.container}if(l.maxBounds&&this.setMaxBounds(l.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 w=!1;const C=Oo((P=>{this._trackResize&&!this._removed&&(this.resize(P),this.redraw())}),50);this._resizeObserver=new ResizeObserver((P=>{w?C(P):w=!0})),this._resizeObserver.observe(this._container)}this.handlers=new cu(this,l),this._hash=l.hash&&new Fl(typeof l.hash=="string"&&l.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:l.center,elevation:l.elevation,zoom:l.zoom,bearing:l.bearing,pitch:l.pitch,roll:l.roll}),l.bounds&&(this.resize(),this.fitBounds(l.bounds,s.e({},l.fitBoundsOptions,{duration:0}))));const g=typeof l.style=="string"||((i=(e=l.style)===null||e===void 0?void 0:e.projection)===null||i===void 0?void 0:i.type)!=="globe";this.resize(null,g),this._localIdeographFontFamily=l.localIdeographFontFamily,this._validateStyle=l.validateStyle,l.style&&this.setStyle(l.style,{localIdeographFontFamily:l.localIdeographFontFamily}),l.attributionControl&&this.addControl(new hu(typeof l.attributionControl=="boolean"?void 0:l.attributionControl)),l.maplibreLogo&&this.addControl(new bd,l.logoPosition),this.on("style.load",(()=>{if(g||this._resizeTransform(),this.transform.unmodified){const w=s.Q(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(w)}})),this.on("data",(w=>{this._update(w.dataType==="style"),this.fire(new s.l(`${w.dataType}data`,w))})),this.on("dataloading",(w=>{this.fire(new s.l(`${w.dataType}dataloading`,w))})),this.on("dataabort",(w=>{this.fire(new s.l("sourcedataabort",w))}))}_getMapId(){return this._mapId}setGlobalStateProperty(h,e){return this.style.setGlobalStateProperty(h,e),this._update(!0)}getGlobalState(){return this.style.getGlobalState()}addControl(h,e){if(e===void 0&&(e=h.getDefaultPosition?h.getDefaultPosition():"top-right"),!h||!h.onAdd)return this.fire(new s.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const i=h.onAdd(this);this._controls.push(h);const l=this._controlPositions[e];return e.indexOf("bottom")!==-1?l.insertBefore(i,l.firstChild):l.appendChild(i),this}removeControl(h){if(!h||!h.onRemove)return this.fire(new s.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const e=this._controls.indexOf(h);return e>-1&&this._controls.splice(e,1),h.onRemove(this),this}hasControl(h){return this._controls.indexOf(h)>-1}calculateCameraOptionsFromTo(h,e,i,l){return l==null&&this.terrain&&(l=this.terrain.getElevationForLngLatZoom(i,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(h,e,i,l)}resize(h,e=!0){const[i,l]=this._containerDimensions(),u=this._getClampedPixelRatio(i,l);if(this._resizeCanvas(i,l,u),this.painter.resize(i,l,u),this.painter.overLimit()){const g=this.painter.context.gl;this._maxCanvasSize=[g.drawingBufferWidth,g.drawingBufferHeight];const w=this._getClampedPixelRatio(i,l);this._resizeCanvas(i,l,w),this.painter.resize(i,l,w)}this._resizeTransform(e);const d=!this._moving;return d&&(this.stop(),this.fire(new s.l("movestart",h)).fire(new s.l("move",h))),this.fire(new s.l("resize",h)),d&&this.fire(new s.l("moveend",h)),this}_resizeTransform(h=!0){var e;const[i,l]=this._containerDimensions();this.transform.resize(i,l,h),(e=this._requestedCameraState)===null||e===void 0||e.resize(i,l,h)}_getClampedPixelRatio(h,e){const{0:i,1:l}=this._maxCanvasSize,u=this.getPixelRatio(),d=h*u,g=e*u;return Math.min(d>i?i/d:1,g>l?l/g:1)*u}getPixelRatio(){var h;return(h=this._overridePixelRatio)!==null&&h!==void 0?h:devicePixelRatio}setPixelRatio(h){this._overridePixelRatio=h,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(h){return this.transform.setMaxBounds(mt.convert(h)),this._update()}setMinZoom(h){if((h=h??-2)>=-2&&h<=this.transform.maxZoom)return this.transform.setMinZoom(h),this._update(),this.getZoom()=this.transform.minZoom)return this.transform.setMaxZoom(h),this._update(),this.getZoom()>h&&this.setZoom(h),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(h){if((h=h??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(h>=0&&h<=this.transform.maxPitch)return this.transform.setMinPitch(h),this._update(),this.getPitch()180)throw new Error("maxPitch must be less than or equal to 180");if(h>=this.transform.minPitch)return this.transform.setMaxPitch(h),this._update(),this.getPitch()>h&&this.setPitch(h),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(h){return this.transform.setRenderWorldCopies(h),this._update()}project(h){return this.transform.locationToScreenPoint(s.S.convert(h),this.style&&this.terrain)}unproject(h){return this.transform.screenPointToLocation(s.P.convert(h),this.terrain)}isMoving(){var h;return this._moving||((h=this.handlers)===null||h===void 0?void 0:h.isMoving())}isZooming(){var h;return this._zooming||((h=this.handlers)===null||h===void 0?void 0:h.isZooming())}isRotating(){var h;return this._rotating||((h=this.handlers)===null||h===void 0?void 0:h.isRotating())}_createDelegatedListener(h,e,i){if(h==="mouseenter"||h==="mouseover"){let l=!1;return{layers:e,listener:i,delegates:{mousemove:d=>{const g=e.filter((C=>this.getLayer(C))),w=g.length!==0?this.queryRenderedFeatures(d.point,{layers:g}):[];w.length?l||(l=!0,i.call(this,new Qi(h,this,d.originalEvent,{features:w}))):l=!1},mouseout:()=>{l=!1}}}}if(h==="mouseleave"||h==="mouseout"){let l=!1;return{layers:e,listener:i,delegates:{mousemove:g=>{const w=e.filter((C=>this.getLayer(C)));(w.length!==0?this.queryRenderedFeatures(g.point,{layers:w}):[]).length?l=!0:l&&(l=!1,i.call(this,new Qi(h,this,g.originalEvent)))},mouseout:g=>{l&&(l=!1,i.call(this,new Qi(h,this,g.originalEvent)))}}}}{const l=u=>{const d=e.filter((w=>this.getLayer(w))),g=d.length!==0?this.queryRenderedFeatures(u.point,{layers:d}):[];g.length&&(u.features=g,i.call(this,u),delete u.features)};return{layers:e,listener:i,delegates:{[h]:l}}}}_saveDelegatedListener(h,e){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[h]=this._delegatedListeners[h]||[],this._delegatedListeners[h].push(e)}_removeDelegatedListener(h,e,i){if(!this._delegatedListeners||!this._delegatedListeners[h])return;const l=this._delegatedListeners[h];for(let u=0;ue.includes(g)))){for(const g in d.delegates)this.off(g,d.delegates[g]);return void l.splice(u,1)}}}on(h,e,i){if(i===void 0)return super.on(h,e);const l=typeof e=="string"?[e]:e,u=this._createDelegatedListener(h,l,i);this._saveDelegatedListener(h,u);for(const d in u.delegates)this.on(d,u.delegates[d]);return{unsubscribe:()=>{this._removeDelegatedListener(h,l,i)}}}once(h,e,i){if(i===void 0)return super.once(h,e);const l=typeof e=="string"?[e]:e,u=this._createDelegatedListener(h,l,i);for(const d in u.delegates){const g=u.delegates[d];u.delegates[d]=(...w)=>{this._removeDelegatedListener(h,l,i),g(...w)}}this._saveDelegatedListener(h,u);for(const d in u.delegates)this.once(d,u.delegates[d]);return this}off(h,e,i){return i===void 0?super.off(h,e):(this._removeDelegatedListener(h,typeof e=="string"?[e]:e,i),this)}queryRenderedFeatures(h,e){if(!this.style)return[];let i;const l=h instanceof s.P||Array.isArray(h),u=l?h:[[0,0],[this.transform.width,this.transform.height]];if(e=e||(l?{}:h)||{},u instanceof s.P||typeof u[0]=="number")i=[s.P.convert(u)];else{const d=s.P.convert(u[0]),g=s.P.convert(u[1]);i=[d,new s.P(g.x,d.y),g,new s.P(d.x,g.y),d]}return this.style.queryRenderedFeatures(i,e,this.transform)}querySourceFeatures(h,e){return this.style.querySourceFeatures(h,e)}setStyle(h,e){return(e=s.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},e)).diff!==!1&&e.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&h?(this._diffStyle(h,e),this):(this._localIdeographFontFamily=e.localIdeographFontFamily,this._updateStyle(h,e))}setTransformRequest(h){return this._requestManager.setTransformRequest(h),this}_getUIString(h){const e=this._locale[h];if(e==null)throw new Error(`Missing UI string '${h}'`);return e}_updateStyle(h,e){var i,l;if(e.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",(()=>this._updateStyle(h,e)));const u=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!h)),h?(this.style=new zc(this,e||{}),this.style.setEventedParent(this,{style:this.style}),typeof h=="string"?this.style.loadURL(h,e,u):this.style.loadJSON(h,e,u),this):((l=(i=this.style)===null||i===void 0?void 0:i.projection)===null||l===void 0||l.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new zc(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(h,e){if(typeof h=="string"){const i=this._requestManager.transformRequest(h,"Style");s.j(i,new AbortController).then((l=>{this._updateDiff(l.data,e)})).catch((l=>{l&&this.fire(new s.k(l))}))}else typeof h=="object"&&this._updateDiff(h,e)}_updateDiff(h,e){try{this.style.setState(h,e)&&this._update(!0)}catch(i){s.w(`Unable to perform style diff: ${i.message||i.error||i}. Rebuilding the style from scratch.`),this._updateStyle(h,e)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():s.w("There is no style added to the map.")}addSource(h,e){return this._lazyInitEmptyStyle(),this.style.addSource(h,e),this._update(!0)}isSourceLoaded(h){const e=this.style&&this.style.sourceCaches[h];if(e!==void 0)return e.loaded();this.fire(new s.k(new Error(`There is no source with ID '${h}'`)))}setTerrain(h){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),h){const e=this.style.sourceCaches[h.source];if(!e)throw new Error(`cannot load terrain, because there exists no source with ID: ${h.source}`);this.terrain===null&&e.reload();for(const i in this.style._layers){const l=this.style._layers[i];l.type==="hillshade"&&l.source===h.source&&s.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."),l.type==="color-relief"&&l.source===h.source&&s.w("You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Or(this.painter,e,h),this.painter.renderToTexture=new Ul(this.painter,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._terrainDataCallback=i=>{var l;i.dataType==="style"?this.terrain.sourceCache.freeRtt():i.dataType==="source"&&i.tile&&(i.sourceId!==h.source||this._elevationFreeze||(this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))),((l=i.source)===null||l===void 0?void 0:l.type)==="image"?this.terrain.sourceCache.freeRtt():this.terrain.sourceCache.freeRtt(i.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.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0);return this.fire(new s.l("terrain",{terrain:h})),this}getTerrain(){var h,e;return(e=(h=this.terrain)===null||h===void 0?void 0:h.options)!==null&&e!==void 0?e:null}areTilesLoaded(){const h=this.style&&this.style.sourceCaches;for(const e in h){const i=h[e]._tiles;for(const l in i){const u=i[l];if(u.state!=="loaded"&&u.state!=="errored")return!1}}return!0}removeSource(h){return this.style.removeSource(h),this._update(!0)}getSource(h){return this.style.getSource(h)}setSourceTileLodParams(h,e,i){if(i){const l=this.getSource(i);if(!l)throw new Error(`There is no source with ID "${i}", cannot set LOD parameters`);l.calculateTileZoom=st(Math.max(1,h),Math.max(1,e))}else for(const l in this.style.sourceCaches)this.style.sourceCaches[l].getSource().calculateTileZoom=st(Math.max(1,h),Math.max(1,e));return this._update(!0),this}refreshTiles(h,e){const i=this.style.sourceCaches[h];if(!i)throw new Error(`There is no source cache with ID "${h}", cannot refresh tile`);e===void 0?i.reload(!0):i.refreshTiles(e.map((l=>new s.a4(l.z,l.x,l.y))))}addImage(h,e,i={}){const{pixelRatio:l=1,sdf:u=!1,stretchX:d,stretchY:g,content:w,textFitWidth:C,textFitHeight:P}=i;if(this._lazyInitEmptyStyle(),!(e instanceof HTMLImageElement||s.b(e))){if(e.width===void 0||e.height===void 0)return this.fire(new s.k(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:A,height:R,data:D}=e,O=e;return this.style.addImage(h,{data:new s.R({width:A,height:R},new Uint8Array(D)),pixelRatio:l,stretchX:d,stretchY:g,content:w,textFitWidth:C,textFitHeight:P,sdf:u,version:0,userImage:O}),O.onAdd&&O.onAdd(this,h),this}}{const{width:A,height:R,data:D}=ie.getImageData(e);this.style.addImage(h,{data:new s.R({width:A,height:R},D),pixelRatio:l,stretchX:d,stretchY:g,content:w,textFitWidth:C,textFitHeight:P,sdf:u,version:0})}}updateImage(h,e){const i=this.style.getImage(h);if(!i)return this.fire(new s.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const l=e instanceof HTMLImageElement||s.b(e)?ie.getImageData(e):e,{width:u,height:d,data:g}=l;if(u===void 0||d===void 0)return this.fire(new s.k(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(u!==i.data.width||d!==i.data.height)return this.fire(new s.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const w=!(e instanceof HTMLImageElement||s.b(e));return i.data.replace(g,w),this.style.updateImage(h,i),this}getImage(h){return this.style.getImage(h)}hasImage(h){return h?!!this.style.getImage(h):(this.fire(new s.k(new Error("Missing required image id"))),!1)}removeImage(h){this.style.removeImage(h)}loadImage(h){return Fe.getImage(this._requestManager.transformRequest(h,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(h,e){return this._lazyInitEmptyStyle(),this.style.addLayer(h,e),this._update(!0)}moveLayer(h,e){return this.style.moveLayer(h,e),this._update(!0)}removeLayer(h){return this.style.removeLayer(h),this._update(!0)}getLayer(h){return this.style.getLayer(h)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(h,e,i){return this.style.setLayerZoomRange(h,e,i),this._update(!0)}setFilter(h,e,i={}){return this.style.setFilter(h,e,i),this._update(!0)}getFilter(h){return this.style.getFilter(h)}setPaintProperty(h,e,i,l={}){return this.style.setPaintProperty(h,e,i,l),this._update(!0)}getPaintProperty(h,e){return this.style.getPaintProperty(h,e)}setLayoutProperty(h,e,i,l={}){return this.style.setLayoutProperty(h,e,i,l),this._update(!0)}getLayoutProperty(h,e){return this.style.getLayoutProperty(h,e)}setGlyphs(h,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(h,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(h,e,i={}){return this._lazyInitEmptyStyle(),this.style.addSprite(h,e,i,(l=>{l||this._update(!0)})),this}removeSprite(h){return this._lazyInitEmptyStyle(),this.style.removeSprite(h),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(h,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(h,e,(i=>{i||this._update(!0)})),this}setLight(h,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(h,e),this._update(!0)}getLight(){return this.style.getLight()}setSky(h,e={}){return this._lazyInitEmptyStyle(),this.style.setSky(h,e),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(h,e){return this.style.setFeatureState(h,e),this._update()}removeFeatureState(h,e){return this.style.removeFeatureState(h,e),this._update()}getFeatureState(h){return this.style.getFeatureState(h)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let h=0,e=0;return this._container&&(h=this._container.clientWidth||400,e=this._container.clientHeight||300),[h,e]}_setupContainer(){const h=this._container;h.classList.add("maplibregl-map");const e=this._canvasContainer=H.create("div","maplibregl-canvas-container",h);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=H.create("canvas","maplibregl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");const i=this._containerDimensions(),l=this._getClampedPixelRatio(i[0],i[1]);this._resizeCanvas(i[0],i[1],l);const u=this._controlContainer=H.create("div","maplibregl-control-container",h),d=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((g=>{d[g]=H.create("div",`maplibregl-ctrl-${g} `,u)})),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(h,e,i){this._canvas.width=Math.floor(i*h),this._canvas.height=Math.floor(i*e),this._canvas.style.width=`${h}px`,this._canvas.style.height=`${e}px`}_setupPainter(){const h=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let e=null;this._canvas.addEventListener("webglcontextcreationerror",(l=>{e={requestedAttributes:h},l&&(e.statusMessage=l.statusMessage,e.type=l.type)}),{once:!0});let i=null;if(i=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,h):this._canvas.getContext("webgl2",h)||this._canvas.getContext("webgl",h),!i){const l="Failed to initialize WebGL";throw e?(e.message=l,new Error(JSON.stringify(e))):new Error(l)}this.painter=new od(i,this.transform),me.testSupport(i)}migrateProjection(h,e){super.migrateProjection(h,e),this.painter.transform=h,this.fire(new s.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(h){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||h,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(h){return this._update(),this._renderTaskQueue.add(h)}_cancelRenderFrame(h){this._renderTaskQueue.remove(h)}_render(h){var e,i,l,u,d;const g=this._idleTriggered?this._fadeDuration:0,w=((e=this.style.projection)===null||e===void 0?void 0:e.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(h),this._removed)return;let C=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const R=this.transform.zoom,D=ie.now();this.style.zoomHistory.update(R,D);const O=new s.F(R,{now:D,fadeDuration:g,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition(),globalState:this.style.getGlobalState()}),$=O.crossFadingFactor();$===1&&$===this._crossFadingFactor||(C=!0,this._crossFadingFactor=$),this.style.update(O)}const P=((i=this.style.projection)===null||i===void 0?void 0:i.transitionState)>0!==w;(l=this.style.projection)===null||l===void 0||l.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState((u=this.style.projection)===null||u===void 0?void 0:u.transitionState,(d=this.style.projection)===null||d===void 0?void 0:d.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||P)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),!this._elevationFreeze&&this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0)),this._placementDirty=this.style&&this.style._updatePlacement(this.transform,this.showCollisionBoxes,g,this._crossSourceCollisions,P),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:g,showPadding:this.showPadding}),this.fire(new s.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,s.cw.mark(s.cx.load),this.fire(new s.l("load"))),this.style&&(this.style.hasTransitions()||C)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const A=this._sourcesDirty||this._styleDirty||this._placementDirty;return A||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new s.l("idle")),!this._loaded||this._fullyLoaded||A||(this._fullyLoaded=!0,s.cw.mark(s.cx.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var h;this._hash&&this._hash.remove();for(const i of this._controls)i.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),Fe.removeThrottleControl(this._imageQueueHandle),(h=this._resizeObserver)===null||h===void 0||h.disconnect();const e=this.painter.context.gl.getExtension("WEBGL_lose_context");e!=null&&e.loseContext&&e.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),H.remove(this._canvasContainer),H.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),s.cw.clearMetrics(),this._removed=!0,this.fire(new s.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,ie.frame(this._frameRequest,(h=>{s.cw.frame(h),this._frameRequest=null;try{this._render(h)}catch(e){if(!s.cy(e)&&!(function(i){return i.message===js})(e))throw e}}),(()=>{})))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(h){this._showTileBoundaries!==h&&(this._showTileBoundaries=h,this._update())}get showPadding(){return!!this._showPadding}set showPadding(h){this._showPadding!==h&&(this._showPadding=h,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(h){this._showCollisionBoxes!==h&&(this._showCollisionBoxes=h,h?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(h){this._showOverdrawInspector!==h&&(this._showOverdrawInspector=h,this._update())}get repaint(){return!!this._repaint}set repaint(h){this._repaint!==h&&(this._repaint=h,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(h){this._vertices=h,this._update()}get version(){return wd}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(h){return this._lazyInitEmptyStyle(),this.style.setProjection(h),this._update(!0)}},T.MapMouseEvent=Qi,T.MapTouchEvent=is,T.MapWheelEvent=ru,T.Marker=ds,T.NavigationControl=class{constructor(h){this._updateZoomButtons=()=>{const e=this._map.getZoom(),i=e===this._map.getMaxZoom(),l=e===this._map.getMinZoom();this._zoomInButton.disabled=i,this._zoomOutButton.disabled=l,this._zoomInButton.setAttribute("aria-disabled",i.toString()),this._zoomOutButton.setAttribute("aria-disabled",l.toString())},this._rotateCompassArrow=()=>{this._compassIcon.style.transform=this.options.visualizePitch&&this.options.visualizeRoll?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizeRoll?`rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)`:`rotate(${-this._map.transform.bearing}deg)`},this._setButtonTitle=(e,i)=>{const l=this._map._getUIString(`NavigationControl.${i}`);e.title=l,e.setAttribute("aria-label",l)},this.options=s.e({},Up,h),this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",(e=>e.preventDefault())),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",(e=>this._map.zoomIn({},{originalEvent:e}))),H.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",(e=>this._map.zoomOut({},{originalEvent:e}))),H.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",(e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e})})),this._compassIcon=H.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(h){return this._map=h,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.options.visualizeRoll&&this._map.on("roll",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ys(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){H.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.options.visualizeRoll&&this._map.off("roll",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(h,e){const i=H.create("button",h,this._container);return i.type="button",i.addEventListener("click",e),i}},T.Popup=class extends s.E{constructor(h){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:"")},this.remove=()=>(this._content&&H.remove(this._content),this._container&&(H.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 s.l("close"))),this),this._onMouseUp=e=>{this._update(e.point)},this._onMouseMove=e=>{this._update(e.point)},this._onDrag=e=>{this._update(e.point)},this._update=e=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=H.create("div","maplibregl-popup",this._map.getContainer()),this._tip=H.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const g of this.options.className.split(" "))this._container.classList.add(g);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),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=ti(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!e)return;const i=this._flatPos=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&e?e:this._map.transform.locationToScreenPoint(this._lngLat));let l=this.options.anchor;const u=Hl(this.options.offset);if(!l){const g=this._container.offsetWidth,w=this._container.offsetHeight;let C;C=i.y+u.bottom.ythis._map.transform.height-w?["bottom"]:[],i.xthis._map.transform.width-g/2&&C.push("right"),l=C.length===0?"bottom":C.join("-")}let d=i.add(u[l]);this.options.subpixelPositioning||(d=d.round()),H.setTransform(this._container,`${$l[l]} translate(${d.x}px,${d.y}px)`),hs(this._container,l,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=s.e(Object.create(pu),h)}addTo(h){return this._map&&this.remove(),this._map=h,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 s.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(h){return this._lngLat=s.S.convert(h),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(h){return this.setDOMContent(document.createTextNode(h))}setHTML(h){const e=document.createDocumentFragment(),i=document.createElement("body");let l;for(i.innerHTML=h;l=i.firstChild,l;)e.appendChild(l);return this.setDOMContent(e)}getMaxWidth(){var h;return(h=this._container)===null||h===void 0?void 0:h.style.maxWidth}setMaxWidth(h){return this.options.maxWidth=h,this._update(),this}setDOMContent(h){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=H.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(h),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(h){return this._container&&this._container.classList.add(h),this}removeClassName(h){return this._container&&this._container.classList.remove(h),this}setOffset(h){return this.options.offset=h,this._update(),this}toggleClassName(h){if(this._container)return this._container.classList.toggle(h)}setSubpixelPositioning(h){this.options.subpixelPositioning=h}_createCloseButton(){this.options.closeButton&&(this._closeButton=H.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const h=this._container.querySelector(fu);h&&h.focus()}},T.RasterDEMTileSource=tr,T.RasterTileSource=qt,T.ScaleControl=class{constructor(h){this._onMove=()=>{Gl(this._map,this._container,this.options)},this.setUnit=e=>{this.options.unit=e,Gl(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},Ks),h)}getDefaultPosition(){return"bottom-left"}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-scale",h.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){H.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},T.ScrollZoomHandler=md,T.Style=zc,T.TerrainControl=class{constructor(h){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=h}onAdd(h){return this._map=h,this._container=H.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=H.create("button","maplibregl-ctrl-terrain",this._container),H.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(){H.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},T.TwoFingersTouchPitchHandler=Nl,T.TwoFingersTouchRotateHandler=cs,T.TwoFingersTouchZoomHandler=Ol,T.TwoFingersTouchZoomRotateHandler=vd,T.VectorTileSource=zt,T.VideoSource=fr,T.addSourceType=(h,e)=>s._(void 0,void 0,void 0,(function*(){if(rr(h))throw new Error(`A source type called "${h}" already exists.`);((i,l)=>{Ar[i]=l})(h,e)})),T.clearPrewarmedResources=function(){const h=ot;h&&(h.isPreloaded()&&h.numActive()===1?(h.release(Ae),ot=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()"))},T.createTileMesh=Is,T.getMaxParallelImageRequests=function(){return s.a.MAX_PARALLEL_IMAGE_REQUESTS},T.getRTLTextPluginStatus=function(){return Dr().getRTLTextPluginStatus()},T.getVersion=function(){return mu},T.getWorkerCount=function(){return Ne.workerCount},T.getWorkerUrl=function(){return s.a.WORKER_URL},T.importScriptInWorkers=function(h){return at().broadcast("IS",h)},T.prewarm=function(){St().acquire(Ae)},T.setMaxParallelImageRequests=function(h){s.a.MAX_PARALLEL_IMAGE_REQUESTS=h},T.setRTLTextPlugin=function(h,e){return Dr().setRTLTextPlugin(h,e)},T.setWorkerCount=function(h){Ne.workerCount=h},T.setWorkerUrl=function(h){s.a.WORKER_URL=h}}));var z=f;return z}))})(Wd)),Wd.exports}var zI=EI();const Vd=qm(zI);class ev{constructor(o){gr(this,"gm");gr(this,"markers",new Map);gr(this,"canvases",new Map);gr(this,"canvasSize");gr(this,"canvasOpacity",.8);this.input=o,this.gm=new fl(this.input.tileSize);const f=r0(o.img);this.canvasSize=Math.ceil(2e3/f)}place([o,f]){const y=this.gm.latLonToPixelsFloor(o,f,this.input.zoom),M=this.getMarkerId(y),z=this.gm.latLonToPixelBoundsLatLon(o,f,this.input.zoom),T=this.input.map;if(this.input.markerFn&&!this.markers.has(M)){const K=this.input.markerFn();K.setLngLat({lat:z.min[0],lng:(z.max[1]+z.min[1])/2}).addTo(T),this.markers.set(M,K)}const{key:s,pos:B,innerPos:N}=this.getCanvasPos(y);let Y=this.canvases.get(s);if(!Y){const K=this.canvasSize,ie=B.x*K,H=B.y*K,me=ie+K-1,ve=H+K-1,Me=this.gm.pixelsToLatLon(ie,ve+1,this.input.zoom),Ee=this.gm.pixelsToLatLon(me+1,H,this.input.zoom);Y=new LI({id:`${this.input.id}-${s}`,img:this.input.img,canvasSize:this.canvasSize,coordinates:jm({min:Me,max:Ee}),layerPaint:{"raster-resampling":"nearest","raster-opacity":this.canvasOpacity}}),Y.addTo(this.input.map),this.canvases.set(s,Y)}Y.place(N.x,N.y)}clear(){const o=this.input.map;for(const f of this.canvases.values())f.removeFrom(o),f.removeDOM();this.canvases.clear();for(const f of this.markers.values())f.remove();this.markers.clear()}clearAndPlace(o){this.clear(),this.place(o)}remove([o,f]){let y=!1;const M=this.gm.latLonToPixelsFloor(o,f,this.input.zoom),{key:z,innerPos:T}=this.getCanvasPos(M),s=this.canvases.get(z);s&&(y=s.remove(T.x,T.y),s.annotationsCount()===0&&(this.canvases.delete(z),s.removeFrom(this.input.map),s.removeDOM()));const B=this.getMarkerId(M),N=this.markers.get(B);return N==null||N.remove(),this.markers.delete(B),y}setCanvasOpacity(o){this.canvasOpacity=o;for(const f of this.canvases.values())f.setOpacity(o)}getMarkerId([o,f]){return`${this.input.id}:${o},${f}`}getCanvasPos([o,f]){const y={x:Math.floor(o/this.canvasSize),y:Math.floor(f/this.canvasSize)},M={x:o%this.canvasSize,y:f%this.canvasSize},z=`${y.x},${y.y}`;return{pos:y,innerPos:M,key:z}}}class LI{constructor(o){gr(this,"annotations",new Set);gr(this,"canvas");gr(this,"imgSize");gr(this,"maps",new Set);this.input=o,this.imgSize=r0(o.img),this.canvas=document.createElement("canvas"),this.canvas.width=this.input.canvasSize*this.imgSize,this.canvas.height=this.input.canvasSize*this.imgSize}place(o,f){const y=this.getPixelKey(o,f);if(this.annotations.has(y))return!1;const M=this.canvas.getContext("2d");if(M){const z=o*this.imgSize,T=f*this.imgSize;M.drawImage(this.input.img,z,T)}return this.annotations.add(y),!0}remove(o,f){const y=this.getPixelKey(o,f);if(!this.annotations.has(y))return!1;const M=this.canvas.getContext("2d");if(M){const z=o*this.imgSize,T=f*this.imgSize;M.clearRect(z,T,this.imgSize,this.imgSize)}return this.annotations.delete(y),!0}addTo(o){const f=this.input.id;o.getSource(f)||o.addSource(f,{type:"canvas",canvas:this.canvas,coordinates:this.input.coordinates}),o.getLayer(f)||o.addLayer({id:f,type:"raster",source:f,paint:this.input.layerPaint}),this.maps.add(o)}removeFrom(o){const{id:f}=this.input;o.getLayer(f)&&o.removeLayer(f),o.getSource(f)&&o.removeSource(f),this.maps.delete(o)}removeDOM(){this.canvas.remove()}annotationsCount(){return this.annotations.size}setOpacity(o){for(const f of this.maps.values())f.setPaintProperty(this.input.id,"raster-opacity",o)}getPixelKey(o,f){return`${o},${f}`}}function r0(m){return Math.max(m.naturalWidth,m.naturalHeight)}function DI(){return window.matchMedia("(display-mode: standalone)").matches||"standalone"in window.navigator&&window.navigator.standalone===!0}function xc(m,o){return o.includes(m)}function RI(m){const o={opaque:!0},f=m.searchParams.get("lat"),y=m.searchParams.get("lng");f&&y&&(o.pos={lat:parseFloat(f),lng:parseFloat(y)});const M=m.searchParams.get("zoom");M&&(o.zoom=parseFloat(M));const z=m.searchParams.get("season");z&&(o.season=parseInt(z));const T=m.searchParams.get("opaque");return T&&(o.opaque=T!=="0"),m.searchParams.get("select")&&(o.select=!0),o.newUser=!!m.searchParams.get("new-user"),o.discordLinked=!!m.searchParams.get("discord-linked"),o.alliance=!!m.searchParams.get("alliance"),o}function BI(m,o){return m=new URL(m),o.pos!==void 0&&(m.searchParams.set("lat",o.pos.lat.toString()),m.searchParams.set("lng",o.pos.lng.toString())),o.zoom!==void 0&&m.searchParams.set("zoom",o.zoom.toString()),o.season!==void 0&&m.searchParams.set("season",o.season.toString()),o.opaque!==void 0&&m.searchParams.set("opaque",o.opaque?"1":"0"),o.newUser!==void 0&&m.searchParams.set("new-user",o.newUser?"1":"0"),o.alliance!==void 0&&m.searchParams.set("alliance",o.alliance?"1":"0"),o.select&&m.searchParams.set("alliance","1"),m}const Xd=xi({shouldReload:!0});var FI=(m,o)=>{var f;(f=o())==null||f.close()},OI=Te(' ');function NI(m,o){Br(o,!0);let f=Lt(o,"ref",15),y=ct(!1),M=ct(xi(o.description)),z=ct(void 0);Dn(()=>{const Re=ze=>{var Fe;ze.key==="Escape"&&((Fe=f())==null||Fe.close())};return document.addEventListener("keydown",Re),()=>document.removeEventListener("keydown",Re)});var T=OI(),s=E(T),B=E(s),N=E(B,!0);k(B);var Y=q(B,2),K=E(Y),ie=E(K);{let Re=ft(()=>Gv());gx(ie,{class:"h-24 rounded-lg",get placeholder(){return x(Re)},max:512,get value(){return x(M)},set value(ze){ce(M,ze,!0)},get validate(){return x(z)},set validate(ze){ce(z,ze,!0)}})}k(K);var H=q(K,2),me=E(H);me.__click=[FI,f];var ve=E(me,!0);k(me);var Me=q(me,2),Ee=E(Me,!0);k(Me),k(H),k(Y),k(s),vn(2),k(T),Po(T,Re=>f(Re),()=>f()),Ye((Re,ze,Fe)=>{fe(N,Re),me.disabled=x(y),fe(ve,ze),Me.disabled=x(y),fe(Ee,Fe)},[()=>yx(),()=>up(),()=>NT()]),Ai("submit",Y,async()=>{var Re,ze,Fe;try{if(!((Re=x(z))!=null&&Re()))return;ce(y,!0),o.description!==x(M)&&await en.updateAllianceDescription(x(M)),await((ze=o.onsuccess)==null?void 0:ze.call(o,x(M))),(Fe=f())==null||Fe.close()}catch(Ke){Nr.error(Ke.message)}finally{ce(y,!1)}}),G(m,T),Fr()}Qn(["click"]);var jI=(m,o,f)=>{navigator.clipboard.writeText(x(o).toString()),ce(f,!0),setTimeout(()=>{ce(f,!1)},1e3)},VI=Te(''),qI=Te(' ');function ZI(m,o){Br(o,!0);let f=Lt(o,"open",15),y=ct(""),M=ct(!1);const z=ft(()=>vi.url.origin+`/join?id=${x(y)}`);Wr(()=>{f()&&en.getAllianceInvites().then(rt=>{ce(y,rt[0],!0)}).catch(rt=>{Nr.error(rt.message)})}),Dn(()=>{const rt=qe=>{qe.key==="Escape"&&f(!1)};return document.addEventListener("keydown",rt),()=>document.removeEventListener("keydown",rt)});var T=qI(),s=E(T),B=q(E(s),2),N=E(B,!0);k(B);var Y=q(B,2),K=E(Y,!0);k(Y);var ie=q(Y,2),H=E(ie);let me;var ve=E(H);uo(ve);var Me=q(ve,2),Ee=E(Me);let Re;Ee.__click=[jI,z,M];var ze=E(Ee,!0);k(Ee),k(Me),k(H);var Fe=q(H,2);{var Ke=rt=>{var qe=VI();G(rt,qe)};je(Fe,rt=>{x(y)||rt(Ke)})}k(ie),k(s),vn(2),k(T),Wi(T,()=>rt=>{Wr(()=>{f()?rt.show():rt.close()})}),Ye((rt,qe,He,et,De,tt)=>{fe(N,rt),fe(K,qe),me=zr(H,1,"border-base-content/20 rounded-field relative flex w-full items-center gap-1 border-2 py-1.5 pl-4 pr-2.5",null,me,He),Av(ve,et),Re=zr(Ee,1,"btn btn-primary",null,Re,De),fe(ze,tt)},[()=>j3(),()=>Z3(),()=>({invisible:!x(y)}),()=>x(z).toString(),()=>({"btn-success":x(M)}),()=>x(M)?Bm():Hf()]),Ai("close",T,()=>f(!1)),G(m,T),Fr()}Qn(["click"]);var UI=Cr('');function Kf(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=UI();ar(y,()=>({viewBox:"0 0 256 199",width:"256",height:"199",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",...f})),G(m,y)}var $I=Te('(Verified)'),GI=Te(''),HI=async(m,o)=>{await navigator.clipboard.writeText(o.username),Nr.info(GC())},WI=Te(""),XI=Te('
                    ');function Ah(m,o){Br(o,!0);const f=!!o.id;var y=XI(),M=E(y),z=E(M),T=E(z);k(z);var s=q(z,2);{var B=ie=>{var H=$I();G(ie,H)};je(s,ie=>{f&&ie(B)})}k(M);var N=q(M,2);{var Y=ie=>{var H=GI(),me=E(H);Kf(me,{class:"size-4 opacity-70"}),k(H),Ye(ve=>xr(H,"href",ve),[()=>`https://discord.com/users/${encodeURIComponent(o.id)}`]),G(ie,H)},K=ie=>{var H=WI();H.__click=[HI,o];var me=E(H);Kf(me,{class:"size-4 opacity-70"}),k(H),G(ie,H)};je(N,ie=>{f?ie(Y):ie(K,!1)})}k(y),Ye(()=>fe(T,`Discord: ${o.username??""}`)),G(m,y),Fr()}Qn(["click"]);var YI=Te(''),KI=Te('
                    ');function Zm(m,o){Br(o,!0);const f=[];let y=Lt(o,"value",15,"today"),M=[{value:"today",label:gp()},{value:"week",label:nT()},{value:"month",label:oT()},{value:"all-time",label:cT()}];var z=KI();hi(z,21,()=>M,T=>T.value,(T,s)=>{var B=YI();uo(B);var N;Ye(()=>{xr(B,"aria-label",x(s).label),N!==(N=x(s).value)&&(B.value=(B.__value=x(s).value)??"")}),Em(f,[],B,()=>(x(s).value,y()),y),G(T,B)}),k(z),G(m,z),Fr()}const JI=typeof window<"u"?window:void 0;function QI(m){let o=m.activeElement;for(;o!=null&&o.shadowRoot;){const f=o.shadowRoot.activeElement;if(f===o)break;o=f}return o}var bc,Xu,Pv;let e4=(Pv=class{constructor(o={}){Mr(this,bc);Mr(this,Xu);const{window:f=JI,document:y=f==null?void 0:f.document}=o;f!==void 0&&(na(this,bc,y),na(this,Xu,Ev(M=>{const z=Nu(f,"focusin",M),T=Nu(f,"focusout",M);return()=>{z(),T()}})))}get current(){var o;return(o=it(this,Xu))==null||o.call(this),it(this,bc)?QI(it(this,bc)):null}},bc=new WeakMap,Xu=new WeakMap,Pv);new e4;function t4(m,o){switch(m){case"post":Wr(o);break;case"pre":Pm(o);break}}function n0(m,o,f,y={}){const{lazy:M=!1}=y;let z=!M,T=Array.isArray(m)?[]:void 0;t4(o,()=>{const s=Array.isArray(m)?m.map(N=>N()):m();if(!z){z=!0,T=s;return}const B=ul(()=>f(s,T));return T=s,B})}function dl(m,o,f){n0(m,"post",o,f)}function r4(m,o,f){n0(m,"pre",o,f)}dl.pre=r4;var n4=Te(''),i4=Te('
                    '),a4=Te(' '),o4=(m,o,f)=>{o.onlastpixelclick({lat:x(f).lastLatitude??0,lng:x(f).lastLongitude??0})},s4=Te(""),l4=Te('
                    '),c4=Te('
                    '),u4=Te('
                    ');function h4(m,o){Br(o,!0);let f=Lt(o,"reload",15),y=ct(!0),M=ct([]),z=ct(0),T=ct("today"),s={};f(B);function B(){const ve=x(T);en.allianceLeaderboard(ve).then(Me=>{ce(M,Me),s={[ve]:Me},ce(y,!1)}).catch(Me=>{Nr.error(Me.message)})}dl(()=>[x(T)],()=>{const ve=x(T),Me=s[ve];if(Me){ce(M,Me),ce(y,!1);return}ce(y,!0),en.allianceLeaderboard(ve).then(Ee=>{ce(M,Ee),s[ve]=Ee,ce(y,!1)}).catch(Ee=>{Nr.error(Ee.message)})});var N=u4(),Y=E(N);Zm(Y,{get value(){return x(T)},set value(ve){ce(T,ve,!0)}});var K=q(Y,2),ie=E(K);{var H=ve=>{var Me=n4();G(ve,Me)},me=ve=>{var Me=er(),Ee=Ct(Me);{var Re=Fe=>{var Ke=i4(),rt=E(Ke),qe=q(rt);{var He=De=>{var tt=bi();Ye(nt=>fe(tt,nt),[()=>gp().toLowerCase()]),G(De,tt)},et=De=>{var tt=er(),nt=Ct(tt);{var Ze=bt=>{var te=bi();Ye(re=>fe(te,re),[()=>Om()]),G(bt,te)},ke=bt=>{var te=er(),re=Ct(te);{var ge=oe=>{var Ae=bi();Ye(Ne=>fe(Ae,Ne),[()=>Nm()]),G(oe,Ae)};je(re,oe=>{x(T)==="month"&&oe(ge)},!0)}G(bt,te)};je(nt,bt=>{x(T)==="week"?bt(Ze):bt(ke,!1)},!0)}G(De,tt)};je(qe,De=>{x(T)==="today"?De(He):De(et,!1)})}k(Ke),Ye(De=>fe(rt,`${De??""} `),[()=>Fm()]),G(Fe,Ke)},ze=Fe=>{var Ke=c4(),rt=E(Ke),qe=E(rt),He=q(E(qe)),et=E(He,!0);k(He);var De=q(He),tt=E(De,!0);k(De),k(qe),k(rt);var nt=q(rt);hi(nt,31,()=>x(M),Ze=>Ze.userId,(Ze,ke,bt)=>{const te=ft(()=>{var qt;return((qt=kt.data)==null?void 0:qt.id)===x(ke).userId});var re=l4();let ge;var oe=E(re),Ae=E(oe,!0);k(oe);var Ne=q(oe),pt=E(Ne),ot=E(pt);lo(ot,{class:"size-10 border",get userId(){return x(ke).userId},get pictureUrl(){return x(ke).picture}});var ut=q(ot,2),St=E(ut),Bt=q(St),at=E(Bt);k(Bt),k(ut);var dt=q(ut,2);{var vt=qt=>{const tr=ft(()=>So(x(ke).equippedFlag));var Qt=a4(),Ot=E(Qt,!0);k(Qt),Ye(()=>{xr(Qt,"data-tip",x(tr).name),fe(Ot,x(tr).flag)}),G(qt,Qt)};je(dt,qt=>{x(ke).equippedFlag&&qt(vt)})}var yt=q(dt,2);{var It=qt=>{Ah(qt,{get username(){return x(ke).discord},get id(){return x(ke).discordId}})};je(yt,qt=>{x(ke).discord&&qt(It)})}k(pt),k(Ne);var wt=q(Ne),mt=E(wt),Dt=q(mt);{var zt=qt=>{var tr=s4();let Qt;tr.__click=[o4,o,ke];var Ot=E(tr);km(Ot,{class:"size-4"}),k(tr),Ye((fr,kr)=>{Qt=zr(tr,1,"btn btn-sm btn-ghost absolute -right-2 top-1/2 !-translate-y-1/2 sm:right-4",null,Qt,fr),xr(tr,"data-tip",kr)},[()=>({tooltip:x(z)>640}),()=>Px()]),G(qt,tr)};je(Dt,qt=>{x(ke).lastLatitude&&x(ke).lastLongitude&&qt(zt)})}k(wt),k(re),Ye((qt,tr,Qt)=>{var Ot;ge=zr(re,1,"",null,ge,qt),fe(Ae,x(bt)+1),zr(ut,1,`font-semibold ${tr??""} flex gap-1`),fe(St,`${(x(te)?((Ot=kt.data)==null?void 0:Ot.name)??x(ke).name:x(ke).name)??""} `),fe(at,`#${x(ke).userId??""}`),fe(mt,`${Qt??""} `)},[()=>({"bg-base-200":x(te)}),()=>Oi(x(ke).userId),()=>x(ke).pixelsPainted.toLocaleString("en-US")]),sl(re,()=>ll,()=>({duration:200})),G(Ze,re)}),k(nt),k(Ke),Ye((Ze,ke)=>{fe(et,Ze),fe(tt,ke)},[()=>Lm(),()=>Am()]),G(Fe,Ke)};je(Ee,Fe=>{x(M).length===0?Fe(Re):Fe(ze,!1)},!0)}G(ve,Me)};je(ie,ve=>{x(y)?ve(H):ve(me,!1)})}k(K),k(N),fp("innerWidth",ve=>ce(z,ve,!0)),G(m,N),Fr()}Qn(["click"]);var d4=Cr('');function Um(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=d4();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var p4=(m,o)=>o.onclickback(),f4=Te('
                    ADMIN
                    '),m4=async(m,o)=>{try{x(o).loading=!0,await en.giveAllianceAdmin(x(o).id),x(o).role="admin"}catch{Nr.error(_S())}finally{x(o).loading=!1}},_4=async(m,o,f)=>{try{x(o).loading=!0,await en.banAllianceUser(x(o).id),f.data=f.data.filter(y=>y.id!==x(o).id)}catch{Nr.error(qT())}finally{x(o).loading=!1}},g4=Te('
                  • ',1),v4=Te('
                  • '),y4=Te('
                    '),x4=Te('
                    '),b4=(m,o,f)=>{en.unbanAllianceUser(x(o).id).then(()=>{f.data=f.data.filter(y=>y.id!==x(o).id)}).catch(y=>Nr.error(y.message)).finally(()=>{x(o).loading=!1})},w4=Te('
                    '),T4=Te('
                    '),C4=Te('
                    '),S4=Te('

                    ');function P4(m,o){Br(o,!0);let f=xi({data:[],page:0,hasNextPage:!0,loading:!1}),y=xi({data:[],page:0,hasNextPage:!0,loading:!1});var M=S4(),z=E(M),T=E(z);T.__click=[p4,o];var s=E(T);zx(s,{class:"size-5"}),k(T);var B=q(T,2),N=E(B,!0);k(B),k(z);var Y=q(z,2),K=E(Y);uo(K);var ie=q(K,2),H=E(ie),me=E(H);hi(me,21,()=>f.data,et=>et.id,(et,De,tt)=>{const nt=ft(()=>{var vt;return((vt=kt.data)==null?void 0:vt.id)===x(De).id});var Ze=y4(),ke=E(Ze),bt=E(ke),te=E(bt);lo(te,{class:"size-10 border",get userId(){return x(De).id},get pictureUrl(){return x(De).picture}});var re=q(te,2),ge=E(re);k(re);var oe=q(re,2);{var Ae=vt=>{var yt=f4();G(vt,yt)};je(oe,vt=>{x(De).role==="admin"&&vt(Ae)})}k(bt),k(ke);var Ne=q(ke),pt=E(Ne),ot=E(pt),ut=E(ot);Um(ut,{class:"size-4"}),k(ot);var St=q(ot,2),Bt=E(St);{var at=vt=>{var yt=g4(),It=Ct(yt),wt=E(It);wt.__click=[m4,De];var mt=E(wt,!0);k(wt),k(It);var Dt=q(It,2),zt=E(Dt);zt.__click=[_4,De,f];var qt=E(zt,!0);k(zt),k(Dt),Ye((tr,Qt)=>{wt.disabled=x(De).loading,fe(mt,tr),zt.disabled=x(De).loading,fe(qt,Qt)},[()=>ST(),()=>Hv()]),G(vt,yt)},dt=vt=>{var yt=v4(),It=E(yt);It.disabled=!0;var wt=E(It,!0);k(It),k(yt),Ye(mt=>fe(wt,mt),[()=>AT()]),G(vt,yt)};je(Bt,vt=>{x(De).role==="member"?vt(at):vt(dt,!1)})}k(St),k(pt),k(Ne),k(Ze),Ye(vt=>{var yt;zr(re,1,`font-semibold ${vt??""}`),fe(ge,`${(x(nt)?((yt=kt.data)==null?void 0:yt.name)??x(De).name:x(De).name)??""} #${x(De).id??""}`)},[()=>Oi(x(De).id)]),G(et,Ze)}),k(me),k(H);var ve=q(H,2);{var Me=et=>{var De=er(),tt=Ct(De);ju(tt,()=>f.page,nt=>{var Ze=x4();Wi(Ze,()=>ke=>{const bt=new IntersectionObserver(te=>{te[0].isIntersecting&&!f.loading&&(f.loading=!0,en.getAllianceMembers(f.page).then(re=>{f.data=[...f.data,...re.data],f.hasNextPage=re.hasNext,f.page++}).catch(re=>{Nr.error(re.message)}).finally(()=>{f.loading=!1}))});return bt.observe(ke),()=>{bt.disconnect()}}),G(nt,Ze)}),G(et,De)};je(ve,et=>{f.hasNextPage&&et(Me)})}k(ie);var Ee=q(ie,2),Re=q(Ee,2),ze=E(Re),Fe=E(ze);hi(Fe,21,()=>y.data,et=>et.id,(et,De,tt)=>{var nt=w4(),Ze=E(nt),ke=E(Ze),bt=E(ke);lo(bt,{class:"size-10 border",get userId(){return x(De).id},get pictureUrl(){return x(De).picture}});var te=q(bt,2),re=E(te);k(te),k(ke),k(Ze);var ge=q(Ze),oe=E(ge);oe.__click=[b4,De,y];var Ae=E(oe,!0);k(oe),k(ge),k(nt),Ye((Ne,pt)=>{zr(te,1,`font-semibold ${Ne??""}`),fe(re,`${x(De).name??""} #${x(De).id??""}`),oe.disabled=x(De).loading,fe(Ae,pt)},[()=>Oi(x(De).id),()=>LT()]),G(et,nt)}),k(Fe),k(ze);var Ke=q(ze,2);{var rt=et=>{var De=T4(),tt=E(De,!0);k(De),Ye(nt=>fe(tt,nt),[()=>BT()]),G(et,De)};je(Ke,et=>{!y.hasNextPage&&y.data.length===0&&et(rt)})}var qe=q(Ke,2);{var He=et=>{var De=er(),tt=Ct(De);ju(tt,()=>y.page,nt=>{var Ze=C4();Wi(Ze,()=>ke=>{const bt=new IntersectionObserver(te=>{te[0].isIntersecting&&!y.loading&&(y.loading=!0,en.getAllianceBannedMembers(y.page).then(re=>{y.data=[...y.data,...re.data],y.hasNextPage=re.hasNext,y.page++}).catch(re=>{Nr.error(re.message)}).finally(()=>{y.loading=!1}))});return bt.observe(ke),()=>{bt.disconnect()}}),G(nt,Ze)}),G(et,De)};je(qe,et=>{y.hasNextPage&&et(He)})}k(Re),k(Y),k(M),Ye((et,De,tt)=>{fe(N,et),xr(K,"aria-label",De),xr(Ee,"aria-label",tt)},[()=>Dv(),()=>$T(),()=>Wv()]),G(m,M),Fr()}Qn(["click"]);var I4=Te(' '),M4=Te(''),k4=Te('

                    '),A4=Te('
                    ');function Jf(m,o){Br(o,!0);let f=Lt(o,"value",15),y=Lt(o,"validate",15),M=ct("");const z=ft(()=>{var Ee;return((Ee=f())==null?void 0:Ee.length)??0});y(T);function T(){return o.min!==void 0&&x(z)o.max?(ce(M,`Max. characters: ${o.max}`),!1):!0}Wr(()=>{var Ee;o.max!==void 0&&x(z)>o.max&&f((Ee=f())==null?void 0:Ee.substring(0,o.max))});var s=A4(),B=E(s);let N;var Y=E(B);{var K=Ee=>{var Re=I4(),ze=E(Re,!0);k(Re),Ye(()=>fe(ze,o.label)),G(Ee,Re)};je(Y,Ee=>{o.label&&Ee(K)})}var ie=q(Y,2);uo(ie);var H=q(ie,2);{var me=Ee=>{var Re=M4(),ze=E(Re,!0);k(Re),Ye(()=>fe(ze,o.max-x(z))),G(Ee,Re)};je(H,Ee=>{o.max!==void 0&&Ee(me)})}k(B);var ve=q(B,2);{var Me=Ee=>{var Re=k4(),ze=E(Re,!0);k(Re),Ye(()=>fe(ze,x(M))),G(Ee,Re)};je(ve,Ee=>{x(M)&&Ee(Me)})}k(s),Ye(Ee=>{N=zr(B,1,"input w-full",null,N,Ee),xr(ie,"placeholder",o.placeholder),xr(ie,"maxlength",o.max)},[()=>({"input-error":!!x(M)})]),zm(ie,f),G(m,s),Fr()}var E4=(m,o)=>{var f;(f=o())==null||f.close()},z4=Te(' ');function L4(m,o){Br(o,!0);let f=Lt(o,"ref",15),y=ct(!1),M=ct(""),z=ct(void 0);Dn(()=>{const Re=ze=>{var Fe;ze.key==="Escape"&&((Fe=f())==null||Fe.close())};return document.addEventListener("keydown",Re),()=>document.removeEventListener("keydown",Re)});var T=z4(),s=E(T),B=E(s),N=E(B,!0);k(B);var Y=q(B,2),K=E(Y),ie=E(K);{let Re=ft(()=>Xf()),ze=ft(()=>yT());Jf(ie,{get label(){return x(Re)},get placeholder(){return x(ze)},min:1,max:16,get value(){return x(M)},set value(Fe){ce(M,Fe,!0)},get validate(){return x(z)},set validate(Fe){ce(z,Fe,!0)}})}k(K);var H=q(K,2),me=E(H);me.__click=[E4,f];var ve=E(me,!0);k(me);var Me=q(me,2),Ee=E(Me,!0);k(Me),k(H),k(Y),k(s),vn(2),k(T),Po(T,Re=>f(Re),()=>f()),Ye((Re,ze,Fe)=>{fe(N,Re),me.disabled=x(y),fe(ve,ze),Me.disabled=x(y),fe(Ee,Fe)},[()=>_T(),()=>up(),()=>wT()]),Ai("submit",Y,async()=>{var Re,ze;try{if(!((Re=x(z))!=null&&Re()))return;ce(y,!0);const{id:Fe}=await en.createAlliance(x(M));await o.onsuccess(Fe),(ze=f())==null||ze.close()}catch(Fe){Nr.error(Fe.message)}finally{ce(y,!1)}}),G(m,T),Fr()}Qn(["click"]);var D4=Cr('');function Eh(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=D4();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var R4=Cr(''),B4=Cr('');function Qf(m,o){let f=ir(o,["$$slots","$$events","$$legacy","filled"]);var y=er(),M=Ct(y);{var z=s=>{var B=R4();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)},T=s=>{var B=B4();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)};je(M,s=>{o.filled?s(z):s(T,!1)})}G(m,y)}var F4=Cr('');function O4(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=F4();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var N4=Cr('');function j4(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=N4();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var V4=Cr('');function q4(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=V4();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var Z4=Cr('');function vp(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=Z4();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}function U4(m,o="_blank"){return m.replaceAll(/https?:\/\/[^\s]+/g,f=>`${f}`)}var $4=Te('
                    '),G4=async(m,o,f,y)=>{try{ce(o,!0),await en.leaveAlliance(),ce(f,!0),await y()}catch(M){Nr.error(M.message)}finally{ce(o,!1)}},H4=(m,o)=>{ce(o,!0)},W4=Te('
                    '),X4=(m,o)=>{var f;(f=x(o))==null||f.show()},Y4=Te(''),K4=Te(''),J4=Te(' '),Q4=(m,o)=>ce(o,!0),eM=Te(''),tM=(m,o,f)=>{var y;(y=x(o))!=null&&y.hq?f.onhqclick({lat:x(o).hq.latitude,lng:x(o).hq.longitude}):f.onhqchange()},rM=Te(' '),nM=Te(' '),iM=Te(''),aM=Te('
                    '),oM=Te('

                    ',1),sM=(m,o)=>{var f;(f=x(o))==null||f.show()},lM=Te('
                    ',1),cM=Te('
                    ');function uM(m,o){Br(o,!0);let f=ct(void 0),y=ct(!0),M=ct(void 0),z=ct(!1),T=ct(void 0),s=ct(!1),B=ct(!1),N=ct(()=>{});dl(()=>o.open,()=>{o.open&&Xd.shouldReload&&Y()}),Dn(()=>{const ve=setInterval(()=>{Xd.shouldReload=!0},1e4);return()=>{clearTimeout(ve)}});async function Y(){try{ce(f,await en.getAlliance(),!0),x(f)&&x(N)(),ce(y,!1),Xd.shouldReload=!1}catch(ve){Nr.error(ve.message)}}var K=cM(),ie=E(K);{var H=ve=>{var Me=$4();G(ve,Me)},me=ve=>{var Me=er(),Ee=Ct(Me);{var Re=Fe=>{P4(Fe,{onclickback:()=>ce(B,!1)})},ze=Fe=>{var Ke=er(),rt=Ct(Ke);{var qe=et=>{var De=oM(),tt=Ct(De),nt=E(tt),Ze=E(nt,!0);k(nt);var ke=q(nt,2),bt=E(ke),te=E(bt),re=E(te);Um(re,{class:"size-4"}),k(te);var ge=q(te,2),oe=E(ge),Ae=E(oe);Ae.__click=[G4,z,y,Y];var Ne=E(Ae,!0);k(Ae),k(oe),k(ge),k(bt);var pt=q(bt,2);{var ot=se=>{var j=W4(),Z=E(j);Z.__click=[H4,s];var X=E(Z);q4(X,{class:"size-4"}),k(Z),k(j),Ye(ae=>xr(j,"data-tip",ae),[()=>Y3()]),G(se,j)};je(pt,se=>{x(f).role=="admin"&&se(ot)})}k(ke),k(tt);var ut=q(tt,2);{var St=se=>{var j=K4(),Z=E(j);Mm(Z,()=>U4(x(f).description||Gv()));var X=q(Z,2);{var ae=de=>{var Se=Y4();Se.__click=[X4,T];var Ie=E(Se);Qf(Ie,{class:"size-4"}),k(Se),G(de,Se)};je(X,de=>{x(f).role==="admin"&&de(ae)})}k(j),G(se,j)};je(ut,se=>{(x(f).description||x(f).role==="admin")&&se(St)})}var Bt=q(ut,2),at=E(Bt),dt=E(at);Eh(dt,{class:"inline size-4"});var vt=q(dt,2),yt=E(vt),It=q(yt),wt=E(It,!0);k(It),k(vt),k(at);var mt=q(at,2),Dt=E(mt);vp(Dt,{class:"inline size-4"});var zt=q(Dt,2),qt=E(zt),tr=q(qt);{var Qt=se=>{var j=J4(),Z=E(j,!0);k(j),Ye(X=>fe(Z,X),[()=>x(f).members.toLocaleString("en-US")]),G(se,j)},Ot=se=>{var j=eM();j.__click=[Q4,B];var Z=E(j,!0);k(j),Ye(X=>fe(Z,X),[()=>x(f).members.toLocaleString("en-US")]),G(se,j)};je(tr,se=>{x(f).role==="member"?se(Qt):se(Ot,!1)})}k(zt),k(mt);var fr=q(mt,2);{var kr=se=>{var j=aM(),Z=E(j);O4(Z,{class:"inline size-4"});var X=q(Z,2),ae=E(X),de=q(ae);de.__click=[tM,f,o];var Se=E(de);{var Ie=$e=>{var Mt=rM(),xe=E(Mt);k(Mt),Ye((Ft,cr)=>fe(xe,`${Ft??""}, ${cr??""}`),[()=>x(f).hq.latitude.toFixed(3),()=>x(f).hq.longitude.toFixed(3)]),G($e,Mt)},be=$e=>{var Mt=nM(),xe=E(Mt,!0);k(Mt),Ye(Ft=>fe(xe,Ft),[()=>S3()]),G($e,Mt)};je(Se,$e=>{x(f).hq?$e(Ie):$e(be,!1)})}k(de),k(X);var Oe=q(X,2);{var st=$e=>{var Mt=iM();Mt.__click=function(...Ft){var cr;(cr=o.onhqchange)==null||cr.apply(this,Ft)};var xe=E(Mt);Qf(xe,{class:"text-base-content/50 size-4"}),k(Mt),G($e,Mt)};je(Oe,$e=>{x(f).role==="admin"&&$e(st)})}k(j),Ye($e=>fe(ae,`${$e??""}: `),[()=>w3()]),G(se,j)};je(fr,se=>{(x(f).hq||x(f).role==="admin")&&se(kr)})}k(Bt);var Ar=q(Bt,2),rr=E(Ar),Kt=E(rr,!0);k(rr);var or=q(rr,2),Sr=E(or);h4(Sr,{get allianceId(){return x(f).id},get onlastpixelclick(){return o.onlastpixelclick},get reload(){return x(N)},set reload(se){ce(N,se,!0)}}),k(or),k(Ar);var Dr=q(Ar,2);NI(Dr,{get description(){return x(f).description},onsuccess:async se=>{x(f)&&(x(f).description=se)},get ref(){return x(T)},set ref(se){ce(T,se,!0)}});var Zr=q(Dr,2);ZI(Zr,{get open(){return x(s)},set open(se){ce(s,se,!0)}}),Ye((se,j,Z,X,ae)=>{fe(Ze,x(f).name),Ae.disabled=x(z),fe(Ne,se),fe(yt,`${j??""}: `),fe(wt,Z),fe(qt,`${X??""}: `),fe(Kt,ae)},[()=>y3(),()=>Am(),()=>x(f).pixelsPainted.toLocaleString("en-US"),()=>Dv(),()=>Rm()]),G(et,De)},He=et=>{var De=lM(),tt=Ct(De),nt=E(tt),Ze=E(nt);k(nt);var ke=q(nt,2),bt=E(ke);j4(bt,{class:"size-5"});var te=q(bt,1,!0);k(ke);var re=q(ke,2),ge=E(re),oe=E(ge,!0);k(ge),k(re);var Ae=q(re,2);Ae.__click=[sM,M];var Ne=E(Ae);Rv(Ne,{class:"size-6"});var pt=q(Ne);k(Ae),k(tt);var ot=q(tt,2);L4(ot,{onsuccess:Y,get ref(){return x(M)},set ref(ut){ce(M,ut,!0)}}),Ye((ut,St,Bt,at)=>{fe(Ze,`${ut??""}:`),fe(te,St),fe(oe,Bt),fe(pt,` ${at??""}`)},[()=>M3(),()=>E3(),()=>D3(),()=>F3()]),G(et,De)};je(rt,et=>{x(f)?et(qe):et(He,!1)},!0)}G(Fe,Ke)};je(Ee,Fe=>{x(B)?Fe(Re):Fe(ze,!1)},!0)}G(ve,Me)};je(ie,ve=>{x(y)?ve(H):ve(me,!1)})}k(K),G(m,K),Fr()}Qn(["click"]);var hM=Cr('');function yp(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=hM();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var dM=Te(' ');function pM(m,o){Br(o,!0);let f=Lt(o,"open",15);Dn(()=>{const K=ie=>{ie.key==="Escape"&&f(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)});var y=dM(),M=E(y),z=q(E(M),2),T=E(z);yp(T,{class:"size-5 max-sm:size-6"});var s=q(T,2),B=E(s,!0);k(s),k(z);var N=q(z,2),Y=E(N);uM(Y,{get open(){return f()},get onhqchange(){return o.onhqchange},get onhqclick(){return o.onhqclick},get onlastpixelclick(){return o.onlastpixelclick}}),k(N),k(M),vn(2),k(y),Wi(y,()=>K=>{Wr(()=>{f()?(K.show(),vi.url.searchParams.get("alliance")&&(vi.url.searchParams.delete("alliance"),Im(vi.url.toString()))):K.close()})}),Ye(K=>fe(B,K),[()=>mp()]),Ai("close",y,()=>f(!1)),ki(2,N,()=>ia,()=>({duration:300})),G(m,y),Fr()}function fM(m,o,f){return new Promise((y,M)=>{m.once("render",()=>{const z=m.getCanvas().toDataURL(),T=document.createElement("img");T.src=z,T.onload=()=>{const s=document.createElement("canvas");s.width=T.width,s.height=T.height;const B=s.getContext("2d");if(B){B.drawImage(T,0,0);const[N,Y,K,ie]=B.getImageData(o,f,1,1).data;y([N,Y,K,ie])}else M(new Error("Could not get 2d context from canvas"));T.remove(),s.remove()}}),m.triggerRepaint()})}function i0(m,o){return new Promise((f,y)=>{m.once("render",()=>{const M=m.getCanvas();let z=M;if(o!=null&&o.maxWidth||o!=null&&o.maxHeight){const T=M.width,s=M.height,B=(o==null?void 0:o.maxWidth)??T,N=(o==null?void 0:o.maxHeight)??s;z=document.createElement("canvas");const Y=Math.min(B/T,N/s);z.width=Math.floor(T*Y),z.height=Math.floor(s*Y);const K=z.getContext("2d");K&&K.drawImage(M,0,0,z.width,z.height)}try{z.toBlob(T=>{T&&f(T)},(o==null?void 0:o.type)??"image/png",(o==null?void 0:o.quality)??1)}catch(T){y(T)}finally{z!==M&&z.remove()}})})}var mM=Cr('');function _M(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=mM();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px",fill:"currentColor",...f})),G(m,y)}var gM=Cr('');function a0(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=gM();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}const gc={hour:3600*1e3,min:60*1e3,sec:1e3};function tp(m){const o=Math.floor(m/gc.hour);m-=o*gc.hour;const f=Math.floor(m/gc.min);m-=f*gc.min;const M=Math.floor(m/gc.sec).toString().padStart(2,"0");return o>0?`${o}:${f.toString().padStart(2,"0")}:${M}`:`${f}:${M}`}function vM(m){const o=new Date,f=o.getFullYear(),y=String(o.getMonth()+1).padStart(2,"0"),M=String(o.getDate()).padStart(2,"0"),z=String(o.getHours()).padStart(2,"0"),T=String(o.getMinutes()).padStart(2,"0"),s=String(o.getSeconds()).padStart(2,"0");return`${f}-${y}-${M} ${z}:${T}:${s}`}var yM=(m,o,f)=>{navigator.clipboard.writeText(o.url.toString()),ce(f,!0),setTimeout(()=>{ce(f,!1)},1e3)},xM=Te('Screenshot'),bM=Te('
                    '),wM=async(m,o)=>{x(o)&&(await navigator.clipboard.write([new ClipboardItem({"image/png":x(o)})]),Nr.info(wP()))},TM=Te(''),CM=Te(' ');function SM(m,o){Br(o,!0);let f=Lt(o,"open",15),y=ct(!1);Dn(()=>{const ze=Fe=>{Fe.key==="Escape"&&f(!1)};return document.addEventListener("keydown",ze),()=>document.removeEventListener("keydown",ze)});let M=ct(null),z=ct("");Wr(()=>{f()?(o.hideHover(),setTimeout(async()=>{i0(o.map).then(ze=>{ce(M,ze,!0),ce(z,URL.createObjectURL(x(M)),!0)}).finally(()=>{o.showHover()})},500)):x(z)&&(URL.revokeObjectURL(x(z)),ce(M,null),ce(z,""))});var T=CM(),s=E(T),B=q(E(s),2),N=E(B);a0(N,{class:"size-5"});var Y=q(N);k(B);var K=q(B,2),ie=E(K);uo(ie);var H=q(ie,2),me=E(H);let ve;me.__click=[yM,o,y];var Me=E(me,!0);k(me),k(H),k(K);var Ee=q(K,2);{var Re=ze=>{const Fe=ft(()=>{var oe;return(oe=o.map)==null?void 0:oe.getCanvas()});var Ke=TM(),rt=E(Ke),qe=E(rt);_M(qe,{class:"inline size-5"});var He=q(qe);k(rt);var et=q(rt,2);{var De=oe=>{var Ae=xM();Ye(()=>{xr(Ae,"src",x(z)),xr(Ae,"width",x(Fe).width),xr(Ae,"height",x(Fe).height)}),G(oe,Ae)},tt=oe=>{var Ae=bM();Ye(()=>kc(Ae,`aspect-ratio: ${x(Fe).width/x(Fe).height}`)),G(oe,Ae)};je(et,oe=>{x(z)?oe(De):oe(tt,!1)})}var nt=q(et,2),Ze=E(nt);Ze.__click=[wM,M];var ke=E(Ze);Dm(ke,{class:"size-5"});var bt=q(ke);k(Ze);var te=q(Ze,2),re=E(te);zv(re,{class:"size-5"});var ge=q(re);k(te),k(nt),k(Ke),Ye((oe,Ae,Ne,pt)=>{fe(He,` ${oe??""}`),fe(bt,` ${Ae??""}`),xr(te,"href",x(z)),xr(te,"download",`wplace_${Ne??""}.png`),fe(ge,` ${pt??""}`)},[()=>_P(),()=>Hf(),()=>vM().replaceAll(" ","_").replaceAll(":","-"),()=>yP()]),ki(2,Ke,()=>ia,()=>({duration:300})),G(ze,Ke)};je(Ee,ze=>{f()&&ze(Re)})}k(s),vn(2),k(T),Wi(T,()=>ze=>{Wr(()=>{f()?ze.show():ze.close()})}),Ye((ze,Fe,Ke,rt)=>{fe(Y,` ${ze??""}`),Av(ie,Fe),ve=zr(me,1,"btn btn-primary",null,ve,Ke),fe(Me,rt)},[()=>EC(),()=>o.url.toString(),()=>({"btn-success":x(y)}),()=>x(y)?Bm():Hf()]),Ai("close",T,()=>f(!1)),G(m,T),Fr()}Qn(["click"]);var PM=Cr('');function IM(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=PM();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var MM=Te('
                  • '),kM=Te('

                      ');function $m(m,o){Br(o,!1);const f=[Qw(),Yw(),r5(),a5(),l5(),h5(),f5()];Nv();var y=kM(),M=E(y),z=E(M);IM(z,{class:"size-5"});var T=q(z,2),s=E(T),B=q(s),N=E(B,!0);k(B),k(T),k(M);var Y=q(M,2),K=E(Y);hi(K,5,()=>f,hp,(me,ve)=>{var Me=MM(),Ee=E(Me,!0);k(Me),Ye(()=>fe(Ee,x(ve))),G(me,Me)}),k(K);var ie=q(K,2),H=E(ie,!0);k(ie),k(Y),k(y),Ye((me,ve,Me)=>{fe(s,`${me??""} `),fe(N,ve),fe(H,Me)},[()=>Uw(),()=>Hw(),()=>g5()]),G(m,y),Fr()}var AM=(m,o)=>{o(!1)},EM=Te(' ');function zM(m,o){Br(o,!0);let f=Lt(o,"open",15);Dn(()=>{const N=Y=>{Y.key==="Escape"&&f(!1)};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)});var y=EM(),M=E(y),z=q(E(M),2),T=q(E(z),2),s=E(T);$m(s,{}),k(T);var B=q(T,2);B.__click=[AM,f],k(z),k(M),vn(2),k(y),Wi(y,()=>N=>{Wr(()=>{f()?N.show():N.close()})}),Ai("close",y,()=>f(!1)),G(m,y),Fr()}Qn(["click"]);var LM=()=>{vi.url.searchParams.delete("new-user"),Im(vi.url.toString())},DM=Te('');function RM(m,o){Br(o,!0);let f=Lt(o,"open",15);Dn(()=>{const ve=Me=>{Me.key==="Escape"&&f(!1)};return document.addEventListener("keydown",ve),()=>document.removeEventListener("keydown",ve)});var y=DM(),M=E(y),z=E(M),T=E(z),s=E(T),B=E(s,!0);k(s);var N=q(s,2);jv(N,{hasText:!0,size:"medium"}),k(T),k(z);var Y=q(z,2),K=E(Y);$m(K,{}),k(Y);var ie=q(Y,2),H=E(ie);H.__click=[LM];var me=E(H,!0);k(H),k(ie),k(M),k(y),Wi(y,()=>ve=>{Wr(()=>{f()?ve.show():ve.close()})}),Ye((ve,Me)=>{fe(B,ve),fe(me,Me)},[()=>Vw(),()=>x5()]),Ai("close",y,()=>f(!1)),G(m,y),Fr()}Qn(["click"]);function BM(){const m=navigator.userAgent,o=navigator.vendor;return/Chrome/.test(m)&&/Google Inc/.test(o)?"Chrome":/Safari/.test(m)&&/Apple Computer/.test(o)?"Safari":/Firefox/.test(m)?"Firefox":/Edge/.test(m)?"Edge":/Opera|OPR/.test(m)?"Opera":"Unknown"}var FM=Cr('');function OM(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=FM();ar(y,()=>({viewBox:"0 0 512 512",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...f})),G(m,y)}var NM=Cr('');function em(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=NM();ar(y,()=>({viewBox:"0 0 256 199",width:"256",height:"199",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",fill:"currentColor",...f})),G(m,y)}var jM=Cr('');function VM(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=jM();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 260 260",...f})),G(m,y)}var qM=Cr('');function rp(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=qM();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var ZM=Cr(``);function UM(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=ZM();ar(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-label":"Tiktok",...f})),G(m,y)}var $M=Cr(``);function GM(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=$M();ar(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-label":"YouTube",...f})),G(m,y)}var HM=Te(' link',1),WM=Te('chrome://settings/system.',1),XM=Te('edge://settings/system/manageSystem.',1),YM=Te(' ',1),KM=Te(''),JM=Te(' ');function QM(m,o){Br(o,!0);let f=Lt(o,"open",15);Dn(()=>{const K=ie=>{ie.key==="Escape"&&f(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)});const y=BM();var M=JM(),z=E(M),T=q(E(z),2);{var s=K=>{var ie=KM(),H=E(ie),me=E(H);jv(me,{hasText:!0,size:"medium"});var ve=q(me,2),Me=E(ve),Ee=q(Me,4);vn(),k(ve);var Re=q(ve,2),ze=E(Re),Fe=E(ze),Ke=E(Fe,!0);k(Fe);var rt=q(Fe,4),qe=E(rt);em(qe,{class:"text-base-content mr-0.5 inline size-4"}),vn(2),k(rt);var He=q(rt,4),et=E(He);OM(et,{class:"size-4.5 mr-0.5 inline"}),vn(2),k(He);var De=q(He,4),tt=E(De);VM(tt,{class:"mr-0.5 inline size-3.5"}),vn(2),k(De);var nt=q(De,4),Ze=E(nt);GM(Ze,{class:"mr-0.5 inline size-3.5"}),vn(2),k(nt);var ke=q(nt,4),bt=E(ke);UM(bt,{class:"mr-0.5 inline size-3.5"}),vn(2),k(ke),k(ze),k(Re),k(H);var te=q(H,2),re=E(te),ge=E(re,!0);k(re);var oe=q(re,2);k(te);var Ae=q(te,2),Ne=E(Ae),pt=E(Ne,!0);k(Ne);var ot=q(Ne,2),ut=E(ot),St=q(ut),Bt=E(St);rp(Bt,{class:"size-5"}),k(St);var at=q(St);k(ot);var dt=q(ot,2),vt=E(dt),yt=q(vt),It=E(yt,!0);k(yt);var wt=q(yt);k(dt),k(Ae);var mt=q(Ae,2),Dt=E(mt),zt=E(Dt,!0);k(Dt);var qt=q(Dt,2),tr=E(qt);{var Qt=se=>{var j=HM(),Z=Ct(j);vn(),Ye(X=>fe(Z,`${X??""}: `),[()=>FP()]),G(se,j)},Ot=se=>{var j=YM(),Z=Ct(j),X=q(Z),ae=E(X,!0);k(X);var de=q(X),Se=q(de);{var Ie=Oe=>{var st=WM();vn(),G(Oe,st)},be=Oe=>{var st=er(),$e=Ct(st);{var Mt=xe=>{var Ft=XM();vn(),G(xe,Ft)};je($e,xe=>{y==="Edge"&&xe(Mt)},!0)}G(Oe,st)};je(Se,Oe=>{y==="Chrome"?Oe(Ie):Oe(be,!1)})}Ye((Oe,st,$e)=>{fe(Z,`${Oe??""} `),fe(ae,st),fe(de,` ${$e??""} `)},[()=>MP(),()=>EP(),()=>DP()]),G(se,j)};je(tr,se=>{y!=="Chrome"&&y!=="Edge"?se(Qt):se(Ot,!1)})}k(qt),k(mt);var fr=q(mt,2),kr=E(fr);$m(kr,{}),k(fr);var Ar=q(fr,4),rr=q(E(Ar),2),Kt=E(rr,!0);k(rr);var or=q(rr,2),Sr=E(or,!0);k(or);var Dr=q(or,2),Zr=E(Dr,!0);k(Dr),k(Ar),k(ie),Ye((se,j,Z,X,ae,de,Se,Ie,be,Oe,st,$e,Mt,xe,Ft)=>{fe(Me,`${se??""} `),fe(Ee,` © - ${j??""} `),fe(Ke,Z),fe(ge,X),xr(oe,"src",ai.language==="pt"?"https://www.youtube.com/embed/AcE85QM4iPQ?si=wbeZD8vxOzvlB_Z9":"https://www.youtube.com/embed/xOXtd-WzRxA?si=fHz8Z6ecXGYrDhkN"),fe(pt,ae),fe(ut,`${de??""} `),fe(at,` ${Se??""}`),fe(vt,`${Ie??""} `),fe(It,be),fe(wt,` ${Oe??""}`),fe(zt,st),xr(rr,"href",`${vi.url.origin??""}/terms/terms-of-service`),fe(Kt,$e),xr(or,"href",`${vi.url.origin??""}/terms/privacy`),fe(Sr,Mt),xr(Dr,"href",xe),fe(Zr,Ft)},[()=>Ob(),()=>Vb(),()=>Ub(),()=>Hb(),()=>Yb(),()=>Qb(),()=>r2(),()=>a2(),()=>l2(),()=>h2(),()=>SP(),()=>ZP(),()=>GP(),()=>Bv(vi.url.origin),()=>Kv()]),ki(2,ie,()=>ia,()=>({duration:300})),G(K,ie)};je(T,K=>{f()&&K(s)})}k(z);var B=q(z,2),N=E(B),Y=E(N,!0);k(N),k(B),k(M),Wi(M,()=>K=>{Wr(()=>{f()?K.show():K.close()})}),Ye(K=>fe(Y,K),[()=>cl()]),Ai("close",M,()=>f(!1)),G(m,M),Fr()}function e6(m){return typeof m=="function"}function zh(m){return m!==null&&typeof m=="object"}const t6=["string","number","bigint","boolean"];function tm(m){return m==null||t6.includes(typeof m)?!0:Array.isArray(m)?m.every(o=>tm(o)):typeof m=="object"?Object.getPrototypeOf(m)===Object.prototype:!1}const Vu=Symbol("box"),Gm=Symbol("is-writable");function r6(m){return zh(m)&&Vu in m}function n6(m){return vr.isBox(m)&&Gm in m}function vr(m){let o=ct(xi(m));return{[Vu]:!0,[Gm]:!0,get current(){return x(o)},set current(f){ce(o,f,!0)}}}function i6(m,o){const f=ft(m);return o?{[Vu]:!0,[Gm]:!0,get current(){return x(f)},set current(y){o(y)}}:{[Vu]:!0,get current(){return m()}}}function a6(m){return vr.isBox(m)?m:e6(m)?vr.with(m):vr(m)}function o6(m){return Object.entries(m).reduce((o,[f,y])=>vr.isBox(y)?(vr.isWritableBox(y)?Object.defineProperty(o,f,{get(){return y.current},set(M){y.current=M}}):Object.defineProperty(o,f,{get(){return y.current}}),o):Object.assign(o,{[f]:y}),{})}function s6(m){return vr.isWritableBox(m)?{[Vu]:!0,get current(){return m.current}}:m}vr.from=a6;vr.with=i6;vr.flatten=o6;vr.readonly=s6;vr.isBox=r6;vr.isWritableBox=n6;function l6(...m){return function(o){var f;for(const y of m)if(y){if(o.defaultPrevented)return;typeof y=="function"?y.call(this,o):(f=y.current)==null||f.call(this,o)}}}var hc={},Df,tv;function c6(){if(tv)return Df;tv=1;var m=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,o=/\n/g,f=/^\s*/,y=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,M=/^:\s*/,z=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,T=/^[;\s]*/,s=/^\s+|\s+$/g,B=` -`,N="/",Y="*",K="",ie="comment",H="declaration";Df=function(ve,Me){if(typeof ve!="string")throw new TypeError("First argument must be a string");if(!ve)return[];Me=Me||{};var Ee=1,Re=1;function ze(Ze){var ke=Ze.match(o);ke&&(Ee+=ke.length);var bt=Ze.lastIndexOf(B);Re=~bt?Ze.length-bt:Re+Ze.length}function Fe(){var Ze={line:Ee,column:Re};return function(ke){return ke.position=new Ke(Ze),He(),ke}}function Ke(Ze){this.start=Ze,this.end={line:Ee,column:Re},this.source=Me.source}Ke.prototype.content=ve;function rt(Ze){var ke=new Error(Me.source+":"+Ee+":"+Re+": "+Ze);if(ke.reason=Ze,ke.filename=Me.source,ke.line=Ee,ke.column=Re,ke.source=ve,!Me.silent)throw ke}function qe(Ze){var ke=Ze.exec(ve);if(ke){var bt=ke[0];return ze(bt),ve=ve.slice(bt.length),ke}}function He(){qe(f)}function et(Ze){var ke;for(Ze=Ze||[];ke=De();)ke!==!1&&Ze.push(ke);return Ze}function De(){var Ze=Fe();if(!(N!=ve.charAt(0)||Y!=ve.charAt(1))){for(var ke=2;K!=ve.charAt(ke)&&(Y!=ve.charAt(ke)||N!=ve.charAt(ke+1));)++ke;if(ke+=2,K===ve.charAt(ke-1))return rt("End of comment missing");var bt=ve.slice(2,ke-2);return Re+=2,ze(bt),ve=ve.slice(ke),Re+=2,Ze({type:ie,comment:bt})}}function tt(){var Ze=Fe(),ke=qe(y);if(ke){if(De(),!qe(M))return rt("property missing ':'");var bt=qe(z),te=Ze({type:H,property:me(ke[0].replace(m,K)),value:bt?me(bt[0].replace(m,K)):K});return qe(T),te}}function nt(){var Ze=[];et(Ze);for(var ke;ke=tt();)ke!==!1&&(Ze.push(ke),et(Ze));return Ze}return He(),nt()};function me(ve){return ve?ve.replace(s,K):K}return Df}var rv;function u6(){if(rv)return hc;rv=1;var m=hc&&hc.__importDefault||function(y){return y&&y.__esModule?y:{default:y}};Object.defineProperty(hc,"__esModule",{value:!0}),hc.default=f;var o=m(c6());function f(y,M){var z=null;if(!y||typeof y!="string")return z;var T=(0,o.default)(y),s=typeof M=="function";return T.forEach(function(B){if(B.type==="declaration"){var N=B.property,Y=B.value;s?M(N,Y,B):Y&&(z=z||{},z[N]=Y)}}),z}return hc}var h6=u6();const nv=qm(h6),d6=nv.default||nv,p6=/\d/,f6=["-","_","/","."];function m6(m=""){if(!p6.test(m))return m!==m.toLowerCase()}function _6(m){const o=[];let f="",y,M;for(const z of m){const T=f6.includes(z);if(T===!0){o.push(f),f="",y=void 0;continue}const s=m6(z);if(M===!1){if(y===!1&&s===!0){o.push(f),f=z,y=s;continue}if(y===!0&&s===!1&&f.length>1){const B=f.at(-1);o.push(f.slice(0,Math.max(0,f.length-1))),f=B+z,y=s;continue}}f+=z,y=s,M=T}return o.push(f),o}function o0(m){return m?_6(m).map(o=>v6(o)).join(""):""}function g6(m){return y6(o0(m||""))}function v6(m){return m?m[0].toUpperCase()+m.slice(1):""}function y6(m){return m?m[0].toLowerCase()+m.slice(1):""}function qd(m){if(!m)return{};const o={};function f(y,M){if(y.startsWith("-moz-")||y.startsWith("-webkit-")||y.startsWith("-ms-")||y.startsWith("-o-")){o[o0(y)]=M;return}if(y.startsWith("--")){o[y]=M;return}o[g6(y)]=M}return d6(m,f),o}function x6(...m){return(...o)=>{for(const f of m)typeof f=="function"&&f(...o)}}function b6(m,o){const f=RegExp(m,"g");return y=>{if(typeof y!="string")throw new TypeError(`expected an argument of type string, but got ${typeof y}`);return y.match(f)?y.replace(f,o):y}}const w6=b6(/[A-Z]/,m=>`-${m.toLowerCase()}`);function T6(m){if(!m||typeof m!="object"||Array.isArray(m))throw new TypeError(`expected an argument of type object, but got ${typeof m}`);return Object.keys(m).map(o=>`${w6(o)}: ${m[o]};`).join(` -`)}function s0(m={}){return T6(m).replace(` -`," ")}const l0={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",transform:"translateX(-100%)"};s0(l0);const C6=["onabort","onanimationcancel","onanimationend","onanimationiteration","onanimationstart","onauxclick","onbeforeinput","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncompositionend","oncompositionstart","oncompositionupdate","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onfocusin","onfocusout","onformdata","ongotpointercapture","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onlostpointercapture","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onpaste","onpause","onplay","onplaying","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointermove","onpointerout","onpointerover","onpointerup","onprogress","onratechange","onreset","onresize","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onselectionchange","onselectstart","onslotchange","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitioncancel","ontransitionend","ontransitionrun","ontransitionstart","onvolumechange","onwaiting","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkittransitionend","onwheel"],S6=new Set(C6);function P6(m){return S6.has(m)}function Va(...m){const o={...m[0]};for(let f=1;f{const z=Nu(f,"focusin",M),T=Nu(f,"focusout",M);return()=>{z(),T()}})))}get current(){var o;return(o=it(this,Yu))==null||o.call(this),it(this,wc)?M6(it(this,wc)):null}}wc=new WeakMap,Yu=new WeakMap;new k6;var Ku,Wo;class Hm{constructor(o){Mr(this,Ku);Mr(this,Wo);na(this,Ku,o),na(this,Wo,Symbol(o))}get key(){return it(this,Wo)}exists(){return Q1(it(this,Wo))}get(){const o=$g(it(this,Wo));if(o===void 0)throw new Error(`Context "${it(this,Ku)}" not found`);return o}getOr(o){const f=$g(it(this,Wo));return f===void 0?o:f}set(o){return ex(it(this,Wo),o)}}Ku=new WeakMap,Wo=new WeakMap;function A6(m,o){switch(m){case"post":Wr(o);break;case"pre":Pm(o);break}}function c0(m,o,f,y={}){const{lazy:M=!1}=y;let z=!M,T=Array.isArray(m)?[]:void 0;A6(o,()=>{const s=Array.isArray(m)?m.map(N=>N()):m();if(!z){z=!0,T=s;return}const B=ul(()=>f(s,T));return T=s,B})}function Ss(m,o,f){c0(m,"post",o,f)}function E6(m,o,f){c0(m,"pre",o,f)}Ss.pre=E6;var Tc;class z6{constructor(o,f){Mr(this,Tc,ct(void 0));f!==void 0&&ce(it(this,Tc),f,!0),Ss(()=>o(),(y,M)=>{ce(it(this,Tc),M,!0)})}get current(){return x(it(this,Tc))}}Tc=new WeakMap;function L6(m,o){return setTimeout(o,m)}function dc(m){Iv().then(m)}const D6=1,R6=9,B6=11;function F6(m){return zh(m)&&m.nodeType===D6&&typeof m.nodeName=="string"}function u0(m){return zh(m)&&m.nodeType===R6}function O6(m){var o;return zh(m)&&((o=m.constructor)==null?void 0:o.name)==="VisualViewport"}function N6(m){return zh(m)&&m.nodeType!==void 0}function j6(m){return N6(m)&&m.nodeType===B6&&"host"in m}function V6(m){return u0(m)?m:O6(m)?m.document:(m==null?void 0:m.ownerDocument)??document}function h0(m){var o;return j6(m)?h0(m.host):u0(m)?m.defaultView??window:F6(m)?((o=m.ownerDocument)==null?void 0:o.defaultView)??window:window}function q6(m){let o=m.activeElement;for(;o!=null&&o.shadowRoot;){const f=o.shadowRoot.activeElement;if(f===o)break;o=f}return o}var Ju;class Z6{constructor(o){gr(this,"element");Mr(this,Ju,ft(()=>this.element.current?this.element.current.getRootNode()??document:document));gr(this,"getDocument",()=>V6(this.root));gr(this,"getWindow",()=>this.getDocument().defaultView??window);gr(this,"getActiveElement",()=>q6(this.root));gr(this,"isActiveElement",o=>o===this.getActiveElement());gr(this,"querySelector",o=>this.root?this.root.querySelector(o):null);gr(this,"querySelectorAll",o=>this.root?this.root.querySelectorAll(o):[]);gr(this,"setTimeout",(o,f)=>this.getWindow().setTimeout(o,f));gr(this,"clearTimeout",o=>this.getWindow().clearTimeout(o));typeof o=="function"?this.element=vr.with(o):this.element=o}get root(){return x(it(this,Ju))}set root(o){ce(it(this,Ju),o)}getElementById(o){return this.root.getElementById(o)}}Ju=new WeakMap;function Xa(m,o){return{[Hx()]:f=>vr.isBox(m)?(m.current=f,ul(()=>o==null?void 0:o(f)),()=>{"isConnected"in f&&f.isConnected||(m.current=null,o==null||o(null))}):(m(f),ul(()=>o==null?void 0:o(f)),()=>{"isConnected"in f&&f.isConnected||(m(null),o==null||o(null))})}}function U6(m){return m?"true":"false"}function $6(m){return m?"true":"false"}function G6(m){return m?"":void 0}function H6(m){return m?"true":"false"}function W6(m){return m?"":void 0}function X6(m){return m?!0:void 0}var Cc,Qu;class Y6{constructor(o){Mr(this,Cc);Mr(this,Qu);gr(this,"attrs");na(this,Cc,o.getVariant?o.getVariant():null),na(this,Qu,it(this,Cc)?`data-${it(this,Cc)}-`:`data-${o.component}-`),this.getAttr=this.getAttr.bind(this),this.selector=this.selector.bind(this),this.attrs=Object.fromEntries(o.parts.map(f=>[f,this.getAttr(f)]))}getAttr(o,f){return f?`data-${f}-${o}`:`${it(this,Qu)}${o}`}selector(o,f){return`[${this.getAttr(o,f)}]`}}Cc=new WeakMap,Qu=new WeakMap;function d0(m){const o=new Y6(m);return{...o.attrs,selector:o.selector,getAttr:o.getAttr}}const K6="ArrowDown",J6="ArrowLeft",Q6="ArrowRight",ek="ArrowUp",tk="End",rk="Enter",nk="Home",ik="p",ak="n",ok="j",sk="k",lk="h",ck="l";function qu(){}function Ya(m,o){return`bits-${m}`}function uk(m){if(!m)return null;for(const o of m.childNodes)if(o.nodeType!==Node.COMMENT_NODE)return o;return null}globalThis.bitsIdCounter??(globalThis.bitsIdCounter={current:0});function hk(m="bits"){return globalThis.bitsIdCounter.current++,`${m}-${globalThis.bitsIdCounter.current}`}function dk(m,o){let f=m.nextElementSibling;for(;f;){if(f.matches(o))return f;f=f.nextElementSibling}}function pk(m,o){let f=m.previousElementSibling;for(;f;){if(f.matches(o))return f;f=f.previousElementSibling}}function p0(m){if(typeof CSS<"u"&&typeof CSS.escape=="function")return CSS.escape(m);const o=m.length;let f=-1,y,M="";const z=m.charCodeAt(0);if(o===1&&z===45)return"\\"+m;for(;++f=1&&y<=31||y===127||f===0&&y>=48&&y<=57||f===1&&y>=48&&y<=57&&z===45){M+="\\"+y.toString(16)+" ";continue}if(y>=128||y===45||y===95||y>=48&&y<=57||y>=65&&y<=90||y>=97&&y<=122){M+=m.charAt(f);continue}M+="\\"+m.charAt(f)}return M}const ol="data-value",wa=d0({component:"command",parts:["root","list","input","separator","loading","empty","group","group-items","group-heading","item","viewport","input-label"]}),pc=wa.selector("group"),Rf=wa.selector("group-items"),iv=wa.selector("group-heading"),f0=wa.selector("item"),Bf=`${wa.selector("item")}:not([aria-disabled="true"])`,ml=new Hm("Command.Root"),fk=new Hm("Command.List"),Zu=new Hm("Command.Group"),av={search:"",value:"",filtered:{count:0,items:new Map,groups:new Set}};var Sc,eh,th,rh,nh,ih,ah,oh,pr,m0,Yd,nm,Kd,Jd,Qd,ws,_0,g0,im,Du,am,om,v0,Ru,sm,lm,y0,Bu,Fu,sh;const Qm=class Qm{constructor(o){Mr(this,pr);gr(this,"opts");gr(this,"attachment");Mr(this,Sc,!1);Mr(this,eh,!0);gr(this,"sortAfterTick",!1);gr(this,"sortAndFilterAfterTick",!1);gr(this,"allItems",new Set);gr(this,"allGroups",new Map);gr(this,"allIds",new Map);Mr(this,th,ct(0));Mr(this,rh,ct(null));Mr(this,nh,ct(null));Mr(this,ih,ct(null));Mr(this,ah,ct(av));Mr(this,oh,ct(xi(av)));Mr(this,sh,ft(()=>({id:this.opts.id.current,role:"application",[wa.root]:"",tabindex:-1,onkeydown:this.onkeydown,...this.attachment})));this.opts=o,this.attachment=Xa(this.opts.ref);const f={...this._commandState,value:this.opts.value.current??""};this._commandState=f,this.commandState=f,this.onkeydown=this.onkeydown.bind(this)}static create(o){return ml.set(new Qm(o))}get key(){return x(it(this,th))}set key(o){ce(it(this,th),o,!0)}get viewportNode(){return x(it(this,rh))}set viewportNode(o){ce(it(this,rh),o,!0)}get inputNode(){return x(it(this,nh))}set inputNode(o){ce(it(this,nh),o,!0)}get labelNode(){return x(it(this,ih))}set labelNode(o){ce(it(this,ih),o,!0)}get commandState(){return x(it(this,ah))}set commandState(o){ce(it(this,ah),o)}get _commandState(){return x(it(this,oh))}set _commandState(o){ce(it(this,oh),o,!0)}setState(o,f,y){Object.is(this._commandState[o],f)||(this._commandState[o]=f,o==="search"?(Vr(this,pr,Qd).call(this),Vr(this,pr,Kd).call(this)):o==="value"&&(y||Vr(this,pr,_0).call(this)),Vr(this,pr,Yd).call(this))}setValue(o,f){o!==this.opts.value.current&&o===""&&dc(()=>{this.key++}),this.setState("value",o,f),this.opts.value.current=o}getValidItems(){const o=this.opts.ref.current;return o?Array.from(o.querySelectorAll(Bf)).filter(y=>!!y):[]}getVisibleItems(){const o=this.opts.ref.current;return o?Array.from(o.querySelectorAll(f0)).filter(y=>!!y):[]}get itemsGrid(){var s,B,N,Y;if(!this.isGrid)return[];const o=this.opts.columns.current??1,f=this.getVisibleItems(),y=[[]];let M=(s=f[0])==null?void 0:s.getAttribute("data-group"),z=0,T=0;for(let K=0;Ko&&(T++,z=1,y.push([])),(Y=y[T])==null||Y.push({index:K,firstRowOfGroup:((N=(B=y[T])==null?void 0:B[0])==null?void 0:N.firstRowOfGroup)??K===0,ref:ie}))}return y}updateSelectedToIndex(o){const f=this.getValidItems()[o];f&&this.setValue(f.getAttribute(ol)??"")}updateSelectedByItem(o){const f=Vr(this,pr,ws).call(this),y=this.getValidItems(),M=y.findIndex(T=>T===f);let z=y[M+o];this.opts.loop.current&&(z=M+o<0?y[y.length-1]:M+o===y.length?y[0]:y[M+o]),z&&this.setValue(z.getAttribute(ol)??"")}updateSelectedByGroup(o){const f=Vr(this,pr,ws).call(this);let y=f==null?void 0:f.closest(pc),M;for(;y&&!M;)y=o>0?dk(y,pc):pk(y,pc),M=y==null?void 0:y.querySelector(Bf);M?this.setValue(M.getAttribute(ol)??""):this.updateSelectedByItem(o)}registerValue(o,f){var y;return o&&o===((y=this.allIds.get(o))==null?void 0:y.value)||this.allIds.set(o,{value:o,keywords:f}),this._commandState.filtered.items.set(o,Vr(this,pr,nm).call(this,o,f)),this.sortAfterTick||(this.sortAfterTick=!0,dc(()=>{Vr(this,pr,Kd).call(this),this.sortAfterTick=!1})),()=>{this.allIds.delete(o)}}registerItem(o,f){return this.allItems.add(o),f&&(this.allGroups.has(f)?this.allGroups.get(f).add(o):this.allGroups.set(f,new Set([o]))),this.sortAndFilterAfterTick||(this.sortAndFilterAfterTick=!0,dc(()=>{Vr(this,pr,Qd).call(this),Vr(this,pr,Kd).call(this),this.sortAndFilterAfterTick=!1})),Vr(this,pr,Yd).call(this),()=>{const y=Vr(this,pr,ws).call(this);this.allIds.delete(o),this.allItems.delete(o),this.commandState.filtered.items.delete(o),Vr(this,pr,Qd).call(this),(y==null?void 0:y.getAttribute("id"))===o&&Vr(this,pr,Jd).call(this),Vr(this,pr,Yd).call(this)}}registerGroup(o){return this.allGroups.has(o)||this.allGroups.set(o,new Set),()=>{this.allIds.delete(o),this.allGroups.delete(o)}}get isGrid(){return this.opts.columns.current!==null}onkeydown(o){const f=this.opts.vimBindings.current&&o.ctrlKey;switch(o.key){case ak:case ok:{f&&(this.isGrid?Vr(this,pr,am).call(this,o):Vr(this,pr,Du).call(this,o));break}case ck:{f&&this.isGrid&&Vr(this,pr,Du).call(this,o);break}case K6:this.isGrid?Vr(this,pr,am).call(this,o):Vr(this,pr,Du).call(this,o);break;case Q6:if(!this.isGrid)break;Vr(this,pr,Du).call(this,o);break;case ik:case sk:{f&&(this.isGrid?Vr(this,pr,lm).call(this,o):Vr(this,pr,Fu).call(this,o));break}case lk:{f&&this.isGrid&&Vr(this,pr,Fu).call(this,o);break}case ek:this.isGrid?Vr(this,pr,lm).call(this,o):Vr(this,pr,Fu).call(this,o);break;case J6:if(!this.isGrid)break;Vr(this,pr,Fu).call(this,o);break;case nk:o.preventDefault(),this.updateSelectedToIndex(0);break;case tk:o.preventDefault(),Vr(this,pr,im).call(this);break;case rk:if(!o.isComposing&&o.keyCode!==229){o.preventDefault();const y=Vr(this,pr,ws).call(this);y&&(y==null||y.click())}}}get props(){return x(it(this,sh))}set props(o){ce(it(this,sh),o)}};Sc=new WeakMap,eh=new WeakMap,th=new WeakMap,rh=new WeakMap,nh=new WeakMap,ih=new WeakMap,ah=new WeakMap,oh=new WeakMap,pr=new WeakSet,m0=function(){return Gx(this._commandState)},Yd=function(){it(this,Sc)||(na(this,Sc,!0),dc(()=>{var y,M;na(this,Sc,!1);const o=Vr(this,pr,m0).call(this);!Object.is(this.commandState,o)&&(this.commandState=o,(M=(y=this.opts.onStateChange)==null?void 0:y.current)==null||M.call(y,o))}))},nm=function(o,f){const y=this.opts.filter.current??w0;return o?y(o,this._commandState.search,f):0},Kd=function(){var T;if(!this._commandState.search||this.opts.shouldFilter.current===!1){Vr(this,pr,Jd).call(this);return}const o=this._commandState.filtered.items,f=[];for(const s of this._commandState.filtered.groups){const B=this.allGroups.get(s);let N=0;if(!B){f.push([s,N]);continue}for(const Y of B){const K=o.get(Y);N=Math.max(K??0,N)}f.push([s,N])}const y=this.viewportNode,M=this.getValidItems().sort((s,B)=>{const N=s.getAttribute("data-value"),Y=B.getAttribute("data-value"),K=o.get(N)??0;return(o.get(Y)??0)-K});for(const s of M){const B=s.closest(Rf);if(B){const N=s.parentElement===B?s:s.closest(`${Rf} > *`);N&&B.appendChild(N)}else{const N=s.parentElement===y?s:s.closest(`${Rf} > *`);N&&(y==null||y.appendChild(N))}}const z=f.sort((s,B)=>B[1]-s[1]);for(const s of z){const B=y==null?void 0:y.querySelector(`${pc}[${ol}="${p0(s[0])}"]`);(T=B==null?void 0:B.parentElement)==null||T.appendChild(B)}Vr(this,pr,Jd).call(this)},Jd=function(){dc(()=>{const o=this.getValidItems().find(M=>M.getAttribute("aria-disabled")!=="true"),f=o==null?void 0:o.getAttribute(ol),y=it(this,eh)&&this.opts.disableInitialScroll.current;this.setValue(f??"",y),na(this,eh,!1)})},Qd=function(){var f,y;if(!this._commandState.search||this.opts.shouldFilter.current===!1){this._commandState.filtered.count=this.allItems.size;return}this._commandState.filtered.groups=new Set;let o=0;for(const M of this.allItems){const z=((f=this.allIds.get(M))==null?void 0:f.value)??"",T=((y=this.allIds.get(M))==null?void 0:y.keywords)??[],s=Vr(this,pr,nm).call(this,z,T);this._commandState.filtered.items.set(M,s),s>0&&o++}for(const[M,z]of this.allGroups)for(const T of z){const s=this._commandState.filtered.items.get(T);if(s&&s>0){this._commandState.filtered.groups.add(M);break}}this._commandState.filtered.count=o},ws=function(){const o=this.opts.ref.current;if(!o)return;const f=o.querySelector(`${Bf}[data-selected]`);if(f)return f},_0=function(){dc(()=>{var y,M,z,T,s;const o=Vr(this,pr,ws).call(this);if(!o)return;const f=(y=o.parentElement)==null?void 0:y.parentElement;if(f){if(this.isGrid){const B=Vr(this,pr,g0).call(this,o);if(o.scrollIntoView({block:"nearest"}),B){const N=(M=o==null?void 0:o.closest(pc))==null?void 0:M.querySelector(iv);N==null||N.scrollIntoView({block:"nearest"});return}}else{const B=uk(f);if(B&&((z=B.dataset)==null?void 0:z.value)===((T=o.dataset)==null?void 0:T.value)){const N=(s=o==null?void 0:o.closest(pc))==null?void 0:s.querySelector(iv);N==null||N.scrollIntoView({block:"nearest"});return}}o.scrollIntoView({block:"nearest"})}})},g0=function(o){const f=this.itemsGrid;if(f.length===0)return!1;for(let y=0;y=0;N--){const Y=B[B.length-1];if(!(Y===void 0||Zd(Y.ref))){z=Y.ref;break}}break}return z},sm=function(o,f){if(f===null)return 0;const y=this.getValidItems(),M=y.findIndex(T=>T===o);return y.findIndex(T=>T===f)-M},lm=function(o){this.opts.columns.current!==null&&(o.preventDefault(),o.metaKey?this.updateSelectedByGroup(-1):this.updateSelectedByItem(Vr(this,pr,y0).call(this,o)))},y0=function(o){const f=this.itemsGrid,y=Vr(this,pr,ws).call(this);if(y===void 0)return 0;const M=Vr(this,pr,om).call(this,y,f);if(M===null)return 0;let z=null;const T=o.altKey?1:0;if(o.altKey&&M.rowIndex===1&&this.opts.loop.current===!1)z=Vr(this,pr,Bu).call(this,{start:0,end:0,expectedColumnIndex:M.columnIndex,grid:f});else if(M.rowIndex===0){if(this.opts.loop.current===!1)return 0;z=Vr(this,pr,Bu).call(this,{start:f.length-1-T,end:M.rowIndex+1,expectedColumnIndex:M.columnIndex,grid:f})}else z=Vr(this,pr,Bu).call(this,{start:M.rowIndex-1-T,end:0,expectedColumnIndex:M.columnIndex,grid:f}),z===null&&this.opts.loop.current&&(z=Vr(this,pr,Bu).call(this,{start:f.length-1,end:M.rowIndex+1,expectedColumnIndex:M.columnIndex,grid:f}));return Vr(this,pr,sm).call(this,y,z)},Bu=function({start:o,end:f,grid:y,expectedColumnIndex:M}){var T;let z=null;for(let s=o;s>=f;s--){const B=y[s];if(B!==void 0){if(z=((T=B[M])==null?void 0:T.ref)??null,z!==null&&Zd(z)){z=null;continue}if(z===null)for(let N=B.length-1;N>=0;N--){const Y=B[B.length-1];if(!(Y===void 0||Zd(Y.ref))){z=Y.ref;break}}break}}return z},Fu=function(o){o.preventDefault(),o.metaKey?this.updateSelectedToIndex(0):o.altKey?this.updateSelectedByGroup(-1):this.updateSelectedByItem(-1)},sh=new WeakMap;let rm=Qm;function Zd(m){return m.getAttribute("aria-disabled")==="true"}var lh,ch,uh;const e_=class e_{constructor(o,f){gr(this,"opts");gr(this,"root");gr(this,"attachment");Mr(this,lh,ft(()=>this.root._commandState.filtered.count===0&&it(this,ch)===!1||this.opts.forceMount.current));Mr(this,ch,!0);Mr(this,uh,ft(()=>({id:this.opts.id.current,role:"presentation",[wa.empty]:"",...this.attachment})));this.opts=o,this.root=f,this.attachment=Xa(this.opts.ref),Pm(()=>{na(this,ch,!1)})}static create(o){return new e_(o,ml.get())}get shouldRender(){return x(it(this,lh))}set shouldRender(o){ce(it(this,lh),o)}get props(){return x(it(this,uh))}set props(o){ce(it(this,uh),o)}};lh=new WeakMap,ch=new WeakMap,uh=new WeakMap;let cm=e_;var hh,dh,ph,fh;const t_=class t_{constructor(o,f){gr(this,"opts");gr(this,"root");gr(this,"attachment");Mr(this,hh,ft(()=>this.opts.forceMount.current||this.root.opts.shouldFilter.current===!1||!this.root.commandState.search?!0:this.root._commandState.filtered.groups.has(this.trueValue)));Mr(this,dh,ct(null));Mr(this,ph,ct(""));Mr(this,fh,ft(()=>({id:this.opts.id.current,role:"presentation",hidden:this.shouldRender?void 0:!0,"data-value":this.trueValue,[wa.group]:"",...this.attachment})));this.opts=o,this.root=f,this.attachment=Xa(this.opts.ref),this.trueValue=o.value.current??o.id.current,Ss(()=>this.trueValue,()=>this.root.registerGroup(this.trueValue)),Wr(()=>this.opts.value.current?(this.trueValue=this.opts.value.current,this.root.registerValue(this.opts.value.current)):this.headingNode&&this.headingNode.textContent?(this.trueValue=this.headingNode.textContent.trim().toLowerCase(),this.root.registerValue(this.trueValue)):(this.trueValue=`-----${this.opts.id.current}`,this.root.registerValue(this.trueValue)))}static create(o){return Zu.set(new t_(o,ml.get()))}get shouldRender(){return x(it(this,hh))}set shouldRender(o){ce(it(this,hh),o)}get headingNode(){return x(it(this,dh))}set headingNode(o){ce(it(this,dh),o,!0)}get trueValue(){return x(it(this,ph))}set trueValue(o){ce(it(this,ph),o,!0)}get props(){return x(it(this,fh))}set props(o){ce(it(this,fh),o)}};hh=new WeakMap,dh=new WeakMap,ph=new WeakMap,fh=new WeakMap;let um=t_;var mh;const r_=class r_{constructor(o,f){gr(this,"opts");gr(this,"group");gr(this,"attachment");Mr(this,mh,ft(()=>({id:this.opts.id.current,[wa["group-heading"]]:"",...this.attachment})));this.opts=o,this.group=f,this.attachment=Xa(this.opts.ref,y=>this.group.headingNode=y)}static create(o){return new r_(o,Zu.get())}get props(){return x(it(this,mh))}set props(o){ce(it(this,mh),o)}};mh=new WeakMap;let hm=r_;var _h;const n_=class n_{constructor(o,f){gr(this,"opts");gr(this,"group");gr(this,"attachment");Mr(this,_h,ft(()=>{var o;return{id:this.opts.id.current,role:"group",[wa["group-items"]]:"","aria-labelledby":((o=this.group.headingNode)==null?void 0:o.id)??void 0,...this.attachment}}));this.opts=o,this.group=f,this.attachment=Xa(this.opts.ref)}static create(o){return new n_(o,Zu.get())}get props(){return x(it(this,_h))}set props(o){ce(it(this,_h),o)}};_h=new WeakMap;let dm=n_;var ip,gh;const i_=class i_{constructor(o,f){gr(this,"opts");gr(this,"root");gr(this,"attachment");Mr(this,ip,ft(()=>{var f;const o=(f=this.root.viewportNode)==null?void 0:f.querySelector(`${f0}[${ol}="${p0(this.root.opts.value.current)}"]`);if(o!=null)return o.getAttribute("id")??void 0}));Mr(this,gh,ft(()=>{var o,f;return{id:this.opts.id.current,type:"text",[wa.input]:"",autocomplete:"off",autocorrect:"off",spellcheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":$6(!0),"aria-controls":((o=this.root.viewportNode)==null?void 0:o.id)??void 0,"aria-labelledby":((f=this.root.labelNode)==null?void 0:f.id)??void 0,"aria-activedescendant":x(it(this,ip)),...this.attachment}}));this.opts=o,this.root=f,this.attachment=Xa(this.opts.ref,y=>this.root.inputNode=y),Ss(()=>this.opts.ref.current,()=>{const y=this.opts.ref.current;y&&this.opts.autofocus.current&&L6(10,()=>y.focus())}),Ss(()=>this.opts.value.current,()=>{this.root.commandState.search!==this.opts.value.current&&this.root.setState("search",this.opts.value.current)})}static create(o){return new i_(o,ml.get())}get props(){return x(it(this,gh))}set props(o){ce(it(this,gh),o)}};ip=new WeakMap,gh=new WeakMap;let pm=i_;var Ts,ap,vh,yh,xh,pl,x0,mm,bh;const a_=class a_{constructor(o,f){Mr(this,pl);gr(this,"opts");gr(this,"root");gr(this,"attachment");Mr(this,Ts,null);Mr(this,ap,ft(()=>{var o;return this.opts.forceMount.current||((o=it(this,Ts))==null?void 0:o.opts.forceMount.current)===!0}));Mr(this,vh,ft(()=>{if(this.opts.ref.current,x(it(this,ap))||this.root.opts.shouldFilter.current===!1||!this.root.commandState.search)return!0;const o=this.root.commandState.filtered.items.get(this.trueValue);return o===void 0?!1:o>0}));Mr(this,yh,ft(()=>this.root.opts.value.current===this.trueValue&&this.trueValue!==""));Mr(this,xh,ct(""));Mr(this,bh,ft(()=>{var o;return{id:this.opts.id.current,"aria-disabled":U6(this.opts.disabled.current),"aria-selected":H6(this.isSelected),"data-disabled":G6(this.opts.disabled.current),"data-selected":W6(this.isSelected),"data-value":this.trueValue,"data-group":(o=it(this,Ts))==null?void 0:o.trueValue,[wa.item]:"",role:"option",onpointermove:this.onpointermove,onclick:this.onclick,...this.attachment}}));this.opts=o,this.root=f,na(this,Ts,Zu.getOr(null)),this.trueValue=o.value.current,this.attachment=Xa(this.opts.ref),Ss([()=>this.trueValue,()=>{var y;return(y=it(this,Ts))==null?void 0:y.trueValue},()=>this.opts.forceMount.current],()=>{var y;if(!this.opts.forceMount.current)return this.root.registerItem(this.trueValue,(y=it(this,Ts))==null?void 0:y.trueValue)}),Ss([()=>this.opts.value.current,()=>this.opts.ref.current],()=>{var y,M;!this.opts.value.current&&((y=this.opts.ref.current)!=null&&y.textContent)&&(this.trueValue=this.opts.ref.current.textContent.trim()),this.root.registerValue(this.trueValue,o.keywords.current.map(z=>z.trim())),(M=this.opts.ref.current)==null||M.setAttribute(ol,this.trueValue)}),this.onclick=this.onclick.bind(this),this.onpointermove=this.onpointermove.bind(this)}static create(o){const f=Zu.getOr(null);return new a_({...o,group:f},ml.get())}get shouldRender(){return x(it(this,vh))}set shouldRender(o){ce(it(this,vh),o)}get isSelected(){return x(it(this,yh))}set isSelected(o){ce(it(this,yh),o)}get trueValue(){return x(it(this,xh))}set trueValue(o){ce(it(this,xh),o,!0)}onpointermove(o){this.opts.disabled.current||this.root.opts.disablePointerSelection.current||Vr(this,pl,mm).call(this)}onclick(o){this.opts.disabled.current||Vr(this,pl,x0).call(this)}get props(){return x(it(this,bh))}set props(o){ce(it(this,bh),o)}};Ts=new WeakMap,ap=new WeakMap,vh=new WeakMap,yh=new WeakMap,xh=new WeakMap,pl=new WeakSet,x0=function(){var o;this.opts.disabled.current||(Vr(this,pl,mm).call(this),(o=this.opts.onSelect)==null||o.current())},mm=function(){this.opts.disabled.current||this.root.setValue(this.trueValue,!0)},bh=new WeakMap;let fm=a_;var wh;const o_=class o_{constructor(o,f){gr(this,"opts");gr(this,"root");gr(this,"attachment");Mr(this,wh,ft(()=>({id:this.opts.id.current,role:"listbox","aria-label":this.opts.ariaLabel.current,[wa.list]:"",...this.attachment})));this.opts=o,this.root=f,this.attachment=Xa(this.opts.ref)}static create(o){return fk.set(new o_(o,ml.get()))}get props(){return x(it(this,wh))}set props(o){ce(it(this,wh),o)}};wh=new WeakMap;let _m=o_;var Th;const s_=class s_{constructor(o,f){gr(this,"opts");gr(this,"root");gr(this,"attachment");Mr(this,Th,ft(()=>{var o;return{id:this.opts.id.current,[wa["input-label"]]:"",for:(o=this.opts.for)==null?void 0:o.current,style:l0,...this.attachment}}));this.opts=o,this.root=f,this.attachment=Xa(this.opts.ref,y=>this.root.labelNode=y)}static create(o){return new s_(o,ml.get())}get props(){return x(it(this,Th))}set props(o){ce(it(this,Th),o)}};Th=new WeakMap;let gm=s_;var mk=Te("");function _k(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=ir(o,["$$slots","$$events","$$legacy","id","ref","children"]);const T=gm.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),Y=>M(Y))}),s=ft(()=>Va(z,T.props));var B=mk();ar(B,()=>({...x(s)}));var N=E(B);oi(N,()=>o.children??pa),k(B),G(m,B),Fr()}var gk=Te(" ",1),vk=Te("
                      ");function yk(m,o){const f=co();Br(o,!0);const y=nt=>{_k(nt,{children:(Ze,ke)=>{vn();var bt=bi();Ye(()=>fe(bt,ie())),G(Ze,bt)},$$slots:{default:!0}})};let M=Lt(o,"id",19,()=>Ya(f)),z=Lt(o,"ref",15,null),T=Lt(o,"value",15,""),s=Lt(o,"onValueChange",3,qu),B=Lt(o,"onStateChange",3,qu),N=Lt(o,"loop",3,!1),Y=Lt(o,"shouldFilter",3,!0),K=Lt(o,"filter",3,w0),ie=Lt(o,"label",3,""),H=Lt(o,"vimBindings",3,!0),me=Lt(o,"disablePointerSelection",3,!1),ve=Lt(o,"disableInitialScroll",3,!1),Me=Lt(o,"columns",3,null),Ee=ir(o,["$$slots","$$events","$$legacy","id","ref","value","onValueChange","onStateChange","loop","shouldFilter","filter","label","vimBindings","disablePointerSelection","disableInitialScroll","columns","children","child"]);const Re=rm.create({id:vr.with(()=>M()),ref:vr.with(()=>z(),nt=>z(nt)),filter:vr.with(()=>K()),shouldFilter:vr.with(()=>Y()),loop:vr.with(()=>N()),value:vr.with(()=>T(),nt=>{T()!==nt&&(T(nt),s()(nt))}),vimBindings:vr.with(()=>H()),disablePointerSelection:vr.with(()=>me()),disableInitialScroll:vr.with(()=>ve()),onStateChange:vr.with(()=>B()),columns:vr.with(()=>Me())}),ze=nt=>Re.updateSelectedToIndex(nt),Fe=nt=>Re.updateSelectedByGroup(nt),Ke=nt=>Re.updateSelectedByItem(nt),rt=()=>Re.getValidItems(),qe=ft(()=>Va(Ee,Re.props));var He=er(),et=Ct(He);{var De=nt=>{var Ze=gk(),ke=Ct(Ze);y(ke);var bt=q(ke,2);oi(bt,()=>o.child,()=>({props:x(qe)})),G(nt,Ze)},tt=nt=>{var Ze=vk();ar(Ze,()=>({...x(qe)}));var ke=E(Ze);y(ke);var bt=q(ke,2);oi(bt,()=>o.children??pa),k(Ze),G(nt,Ze)};je(et,nt=>{o.child?nt(De):nt(tt,!1)})}return G(m,He),Fr({updateSelectedToIndex:ze,updateSelectedByGroup:Fe,updateSelectedByItem:Ke,getValidItems:rt})}var xk=Te("
                      ");function bk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=Lt(o,"forceMount",3,!1),T=ir(o,["$$slots","$$events","$$legacy","id","ref","children","child","forceMount"]);const s=cm.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),ie=>M(ie)),forceMount:vr.with(()=>z())}),B=ft(()=>Va(s.props,T));var N=er(),Y=Ct(N);{var K=ie=>{var H=er(),me=Ct(H);{var ve=Ee=>{var Re=er(),ze=Ct(Re);oi(ze,()=>o.child,()=>({props:x(B)})),G(Ee,Re)},Me=Ee=>{var Re=xk();ar(Re,()=>({...x(B)}));var ze=E(Re);oi(ze,()=>o.children??pa),k(Re),G(Ee,Re)};je(me,Ee=>{o.child?Ee(ve):Ee(Me,!1)})}G(ie,H)};je(Y,ie=>{s.shouldRender&&ie(K)})}G(m,N),Fr()}var wk=Te("
                      ");function Tk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=Lt(o,"value",3,""),T=Lt(o,"forceMount",3,!1),s=ir(o,["$$slots","$$events","$$legacy","id","ref","value","forceMount","children","child"]);const B=um.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),me=>M(me)),forceMount:vr.with(()=>T()),value:vr.with(()=>z())}),N=ft(()=>Va(s,B.props));var Y=er(),K=Ct(Y);{var ie=me=>{var ve=er(),Me=Ct(ve);oi(Me,()=>o.child,()=>({props:x(N)})),G(me,ve)},H=me=>{var ve=wk();ar(ve,()=>({...x(N)}));var Me=E(ve);oi(Me,()=>o.children??pa),k(ve),G(me,ve)};je(K,me=>{o.child?me(ie):me(H,!1)})}G(m,Y),Fr()}var Ck=Te("
                      ");function Sk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=ir(o,["$$slots","$$events","$$legacy","id","ref","children","child"]);const T=hm.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),ie=>M(ie))}),s=ft(()=>Va(z,T.props));var B=er(),N=Ct(B);{var Y=ie=>{var H=er(),me=Ct(H);oi(me,()=>o.child,()=>({props:x(s)})),G(ie,H)},K=ie=>{var H=Ck();ar(H,()=>({...x(s)}));var me=E(H);oi(me,()=>o.children??pa),k(H),G(ie,H)};je(N,ie=>{o.child?ie(Y):ie(K,!1)})}G(m,B),Fr()}var Pk=Te("
                      "),Ik=Te('
                      ');function Mk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=ir(o,["$$slots","$$events","$$legacy","id","ref","children","child"]);const T=dm.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),ie=>M(ie))}),s=ft(()=>Va(z,T.props));var B=Ik(),N=E(B);{var Y=ie=>{var H=er(),me=Ct(H);oi(me,()=>o.child,()=>({props:x(s)})),G(ie,H)},K=ie=>{var H=Pk();ar(H,()=>({...x(s)}));var me=E(H);oi(me,()=>o.children??pa),k(H),G(ie,H)};je(N,ie=>{o.child?ie(Y):ie(K,!1)})}k(B),G(m,B),Fr()}var kk=Te("");function Ak(m,o){const f=co();Br(o,!0);let y=Lt(o,"value",15,""),M=Lt(o,"autofocus",3,!1),z=Lt(o,"id",19,()=>Ya(f)),T=Lt(o,"ref",15,null),s=ir(o,["$$slots","$$events","$$legacy","value","autofocus","id","ref","child"]);const B=pm.create({id:vr.with(()=>z()),ref:vr.with(()=>T(),me=>T(me)),value:vr.with(()=>y(),me=>{y(me)}),autofocus:vr.with(()=>M()??!1)}),N=ft(()=>Va(s,B.props));var Y=er(),K=Ct(Y);{var ie=me=>{var ve=er(),Me=Ct(ve);oi(Me,()=>o.child,()=>({props:x(N)})),G(me,ve)},H=me=>{var ve=kk();uo(ve),ar(ve,()=>({...x(N)})),zm(ve,y),G(me,ve)};je(K,me=>{o.child?me(ie):me(H,!1)})}G(m,Y),Fr()}var Ek=Te("
                      "),zk=Te('
                      ');function Lk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=Lt(o,"value",3,""),T=Lt(o,"disabled",3,!1),s=Lt(o,"onSelect",3,qu),B=Lt(o,"forceMount",3,!1),N=Lt(o,"keywords",19,()=>[]),Y=ir(o,["$$slots","$$events","$$legacy","id","ref","value","disabled","children","child","onSelect","forceMount","keywords"]);const K=fm.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),ve=>M(ve)),value:vr.with(()=>z()),disabled:vr.with(()=>T()),onSelect:vr.with(()=>s()),forceMount:vr.with(()=>B()),keywords:vr.with(()=>N())}),ie=ft(()=>Va(Y,K.props));var H=er(),me=Ct(H);ju(me,()=>K.root.key,ve=>{var Me=zk(),Ee=E(Me);{var Re=ze=>{var Fe=er(),Ke=Ct(Fe);{var rt=He=>{var et=er(),De=Ct(et);oi(De,()=>o.child,()=>({props:x(ie)})),G(He,et)},qe=He=>{var et=Ek();ar(et,()=>({...x(ie)}));var De=E(et);oi(De,()=>o.children??pa),k(et),G(He,et)};je(Ke,He=>{o.child?He(rt):He(qe,!1)})}G(ze,Fe)};je(Ee,ze=>{K.shouldRender&&ze(Re)})}k(Me),Ye(()=>xr(Me,"data-value",K.trueValue)),G(ve,Me)}),G(m,H),Fr()}var Dk=Te("
                      ");function Rk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=ir(o,["$$slots","$$events","$$legacy","id","ref","child","children","aria-label"]);const T=_m.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),Y=>M(Y)),ariaLabel:vr.with(()=>o["aria-label"]??"Suggestions...")}),s=ft(()=>Va(z,T.props));var B=er(),N=Ct(B);ju(N,()=>T.root._commandState.search==="",Y=>{var K=er(),ie=Ct(K);{var H=ve=>{var Me=er(),Ee=Ct(Me);oi(Ee,()=>o.child,()=>({props:x(s)})),G(ve,Me)},me=ve=>{var Me=Dk();ar(Me,()=>({...x(s)}));var Ee=E(Me);oi(Ee,()=>o.children??pa),k(Me),G(ve,Me)};je(ie,ve=>{o.child?ve(H):ve(me,!1)})}G(Y,K)}),G(m,B),Fr()}const ov=1,Bk=.9,Fk=.8,Ok=.17,Ff=.1,Of=.999,Nk=.9999,jk=.99,Vk=/[\\/_+.#"@[({&]/,qk=/[\\/_+.#"@[({&]/g,Zk=/[\s-]/,b0=/[\s-]/g;function vm(m,o,f,y,M,z,T){if(z===o.length)return M===m.length?ov:jk;const s=`${M},${z}`;if(T[s]!==void 0)return T[s];const B=y.charAt(z);let N=f.indexOf(B,M),Y=0,K,ie,H,me;for(;N>=0;)K=vm(m,o,f,y,N+1,z+1,T),K>Y&&(N===M?K*=ov:Vk.test(m.charAt(N-1))?(K*=Fk,H=m.slice(M,N-1).match(qk),H&&M>0&&(K*=Of**H.length)):Zk.test(m.charAt(N-1))?(K*=Bk,me=m.slice(M,N-1).match(b0),me&&M>0&&(K*=Of**me.length)):(K*=Ok,M>0&&(K*=Of**(N-M))),m.charAt(N)!==o.charAt(z)&&(K*=Nk)),(KK&&(K=ie*Ff)),K>Y&&(Y=K),N=f.indexOf(B,N+1);return T[s]=Y,Y}function sv(m){return m.toLowerCase().replace(b0," ")}function w0(m,o,f){return m=f&&f.length>0?`${`${m} ${f==null?void 0:f.join(" ")}`}`:m,vm(m,o,sv(m),sv(o),0,0,{})}const Uk=18,T0=40,$k=`${T0}px`,Gk=["[data-lastpass-icon-root]","com-1password-button","[data-dashlanecreated]",'[style$="2147483647 !important;"]'].join(",");function Hk({containerRef:m,inputRef:o,pushPasswordManagerStrategy:f,isFocused:y,domContext:M}){let z=ct(!1),T=ct(!1),s=ct(!1);function B(){const Y=f.current;return Y==="none"?!1:Y==="increase-width"&&x(z)&&x(T)}function N(){const Y=m.current,K=o.current;if(!Y||!K||x(s)||f.current==="none")return;const ie=Y,H=ie.getBoundingClientRect().left+ie.offsetWidth,me=ie.getBoundingClientRect().top+ie.offsetHeight/2,ve=H-Uk,Me=me;M.querySelectorAll(Gk).length===0&&M.getDocument().elementFromPoint(ve,Me)===Y||(ce(z,!0),ce(s,!0))}return Wr(()=>{const Y=m.current;if(!Y||f.current==="none")return;function K(){const me=h0(Y).innerWidth-Y.getBoundingClientRect().right;ce(T,me>=T0)}K();const ie=setInterval(K,1e3);return()=>{clearInterval(ie)}}),Wr(()=>{const Y=y.current||M.getActiveElement()===o.current;if(f.current==="none"||!Y)return;const K=setTimeout(N,0),ie=setTimeout(N,2e3),H=setTimeout(N,5e3),me=setTimeout(()=>{ce(s,!0)},6e3);return()=>{clearTimeout(K),clearTimeout(ie),clearTimeout(H),clearTimeout(me)}}),{get hasPwmBadge(){return x(z)},get willPushPwmBadge(){return B()},PWM_BADGE_SPACE_WIDTH:$k}}const C0=d0({component:"pin-input",parts:["root","cell"]}),Wk=["Backspace","Delete","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Escape","Enter","Tab","Shift","Control","Meta"];var Ha,Pc,Xo,ja,Wa,Ic,To,Yo,Cs,Mc,op,Ch,Sh,sp,lp,S0,Ph,Ih,cp,Mh;const l_=class l_{constructor(o){Mr(this,lp);gr(this,"opts");gr(this,"attachment");Mr(this,Ha,vr(null));Mr(this,Pc,ct(!1));gr(this,"inputAttachment",Xa(it(this,Ha)));Mr(this,Xo,vr(!1));Mr(this,ja,ct(null));Mr(this,Wa,ct(null));Mr(this,Ic,new z6(()=>this.opts.value.current??""));Mr(this,To,ft(()=>typeof this.opts.pattern.current=="string"?new RegExp(this.opts.pattern.current):this.opts.pattern.current));Mr(this,Yo,ct(xi({prev:[null,null,"none"],willSyntheticBlur:!1})));Mr(this,Cs);Mr(this,Mc);gr(this,"domContext");gr(this,"onkeydown",o=>{const f=o.key;Wk.includes(f)||o.ctrlKey||o.metaKey||f&&x(it(this,To))&&!x(it(this,To)).test(f)&&o.preventDefault()});Mr(this,op,ft(()=>({position:"relative",cursor:this.opts.disabled.current?"default":"text",userSelect:"none",WebkitUserSelect:"none",pointerEvents:"none"})));Mr(this,Ch,ft(()=>({id:this.opts.id.current,[C0.root]:"",style:x(it(this,op)),...this.attachment})));Mr(this,Sh,ft(()=>({style:{position:"absolute",inset:0,pointerEvents:"none"}})));Mr(this,sp,ft(()=>({position:"absolute",inset:0,width:it(this,Cs).willPushPwmBadge?`calc(100% + ${it(this,Cs).PWM_BADGE_SPACE_WIDTH})`:"100%",clipPath:it(this,Cs).willPushPwmBadge?`inset(0 ${it(this,Cs).PWM_BADGE_SPACE_WIDTH} 0 0)`:void 0,height:"100%",display:"flex",textAlign:this.opts.textAlign.current,opacity:"1",color:"transparent",pointerEvents:"all",background:"transparent",caretColor:"transparent",border:"0 solid transparent",outline:"0 solid transparent",boxShadow:"none",lineHeight:"1",letterSpacing:"-.5em",fontSize:"var(--bits-pin-input-root-height)",fontFamily:"monospace",fontVariantNumeric:"tabular-nums"})));Mr(this,Ph,()=>{var ve;const o=it(this,Ha).current,f=this.opts.ref.current;if(!o||!f)return;if(this.domContext.getActiveElement()!==o){ce(it(this,ja),null),ce(it(this,Wa),null);return}const y=o.selectionStart,M=o.selectionEnd,z=o.selectionDirection??"none",T=o.maxLength,s=o.value,B=x(it(this,Yo)).prev;let N=-1,Y=-1,K;if(s.length!==0&&y!==null&&M!==null){const Me=y===M,Ee=y===s.length&&s.length1&&s.length>1){let ze=0;if(B[0]!==null&&B[1]!==null){K=Re{const f=o.currentTarget.value.slice(0,this.opts.maxLength.current);if(f.length>0&&x(it(this,To))&&!x(it(this,To)).test(f)){o.preventDefault();return}typeof it(this,Ic).current=="string"&&f.length{const f=it(this,Ha).current;if(f){const y=Math.min(f.value.length,this.opts.maxLength.current-1),M=f.value.length;f.setSelectionRange(y,M),ce(it(this,ja),y,!0),ce(it(this,Wa),M,!0)}it(this,Xo).current=!0});gr(this,"onpaste",o=>{var Y,K,ie,H;const f=it(this,Ha).current;if(!f)return;const y=me=>{const ve=f.selectionStart===null?void 0:f.selectionStart,Me=f.selectionEnd===null?void 0:f.selectionEnd,Ee=ve!==Me,Re=this.opts.value.current;return(Ee?Re.slice(0,ve)+me+Re.slice(Me):Re.slice(0,ve)+me+Re.slice(ve)).slice(0,this.opts.maxLength.current)},M=me=>me.length>0&&x(it(this,To))&&!x(it(this,To)).test(me);if(!((Y=this.opts.pasteTransformer)!=null&&Y.current)&&(!it(this,Mc).isIOS||!o.clipboardData||!f)){const me=y((K=o.clipboardData)==null?void 0:K.getData("text/plain"));M(me)&&o.preventDefault();return}const z=((ie=o.clipboardData)==null?void 0:ie.getData("text/plain"))??"",T=(H=this.opts.pasteTransformer)!=null&&H.current?this.opts.pasteTransformer.current(z):z;o.preventDefault();const s=y(T);if(M(s))return;f.value=s,this.opts.value.current=s;const B=Math.min(s.length,this.opts.maxLength.current-1),N=s.length;f.setSelectionRange(B,N),ce(it(this,ja),B,!0),ce(it(this,Wa),N,!0)});gr(this,"onmouseover",o=>{ce(it(this,Pc),!0)});gr(this,"onmouseleave",o=>{ce(it(this,Pc),!1)});gr(this,"onblur",o=>{if(x(it(this,Yo)).willSyntheticBlur){x(it(this,Yo)).willSyntheticBlur=!1;return}it(this,Xo).current=!1});Mr(this,Ih,ft(()=>{var o;return{id:this.opts.inputId.current,style:x(it(this,sp)),autocomplete:this.opts.autocomplete.current||"one-time-code","data-pin-input-input":"","data-pin-input-input-mss":x(it(this,ja)),"data-pin-input-input-mse":x(it(this,Wa)),inputmode:this.opts.inputmode.current,pattern:(o=x(it(this,To)))==null?void 0:o.source,maxlength:this.opts.maxLength.current,value:this.opts.value.current,disabled:X6(this.opts.disabled.current),onpaste:this.onpaste,oninput:this.oninput,onkeydown:this.onkeydown,onmouseover:this.onmouseover,onmouseleave:this.onmouseleave,onfocus:this.onfocus,onblur:this.onblur,...this.inputAttachment}}));Mr(this,cp,ft(()=>Array.from({length:this.opts.maxLength.current}).map((o,f)=>{const y=it(this,Xo).current&&x(it(this,ja))!==null&&x(it(this,Wa))!==null&&(x(it(this,ja))===x(it(this,Wa))&&f===x(it(this,ja))||f>=x(it(this,ja))&&f({cells:x(it(this,cp)),isFocused:it(this,Xo).current,isHovering:x(it(this,Pc))})));var f;this.opts=o,this.attachment=Xa(this.opts.ref),this.domContext=new Z6(o.ref),na(this,Mc,{value:this.opts.value,isIOS:typeof window<"u"&&((f=window==null?void 0:window.CSS)==null?void 0:f.supports("-webkit-touch-callout","none"))}),na(this,Cs,Hk({containerRef:this.opts.ref,inputRef:it(this,Ha),isFocused:it(this,Xo),pushPasswordManagerStrategy:this.opts.pushPasswordManagerStrategy,domContext:this.domContext})),Dn(()=>{const y=it(this,Ha).current,M=this.opts.ref.current;if(!y||!M)return;it(this,Mc).value.current!==y.value&&(this.opts.value.current=y.value),x(it(this,Yo)).prev=[y.selectionStart,y.selectionEnd,y.selectionDirection??"none"];const z=Nu(this.domContext.getDocument(),"selectionchange",it(this,Ph),{capture:!0});it(this,Ph).call(this),this.domContext.getActiveElement()===y&&(it(this,Xo).current=!0),this.domContext.getElementById("pin-input-style")||Vr(this,lp,S0).call(this);const T=()=>{M&&M.style.setProperty("--bits-pin-input-root-height",`${y.clientHeight}px`)};T();const s=new ResizeObserver(T);return s.observe(y),()=>{z(),s.disconnect()}}),Ss([()=>this.opts.value.current,()=>it(this,Ha).current],()=>{Xk(()=>{const y=it(this,Ha).current;if(!y)return;y.dispatchEvent(new Event("input"));const M=y.selectionStart,z=y.selectionEnd,T=y.selectionDirection??"none";M!==null&&z!==null&&(ce(it(this,ja),M,!0),ce(it(this,Wa),z,!0),x(it(this,Yo)).prev=[M,z,T])},this.domContext)}),Wr(()=>{const y=this.opts.value.current,M=it(this,Ic).current,z=this.opts.maxLength.current,T=this.opts.onComplete.current;M!==void 0&&y!==M&&M.length({id:this.opts.id.current,[C0.cell]:"","data-active":this.opts.cell.current.isActive?"":void 0,"data-inactive":this.opts.cell.current.isActive?void 0:"",...this.attachment})));this.opts=o,this.attachment=Xa(this.opts.ref)}static create(o){return new c_(o)}get props(){return x(it(this,kh))}set props(o){ce(it(this,kh),o)}};kh=new WeakMap;let xm=c_;function Xk(m,o){const f=o.setTimeout(m,0),y=o.setTimeout(m,10),M=o.setTimeout(m,50);return[f,y,M]}function Lu(m,o){try{m.insertRule(o)}catch{console.error("pin input could not insert CSS rule:",o)}}var Yk=Te("
                      ");function Kk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"inputId",19,()=>`${Ya(f)}-input`),z=Lt(o,"ref",15,null),T=Lt(o,"maxlength",3,6),s=Lt(o,"textalign",3,"left"),B=Lt(o,"inputmode",3,"numeric"),N=Lt(o,"onComplete",3,qu),Y=Lt(o,"pushPasswordManagerStrategy",3,"increase-width"),K=Lt(o,"class",3,""),ie=Lt(o,"autocomplete",3,"one-time-code"),H=Lt(o,"disabled",3,!1),me=Lt(o,"value",15,""),ve=Lt(o,"onValueChange",3,qu),Me=ir(o,["$$slots","$$events","$$legacy","id","inputId","ref","maxlength","textalign","pattern","inputmode","onComplete","pushPasswordManagerStrategy","class","children","autocomplete","disabled","value","onValueChange","pasteTransformer"]);const Ee=ym.create({id:vr.with(()=>y()),ref:vr.with(()=>z(),et=>z(et)),inputId:vr.with(()=>M()),autocomplete:vr.with(()=>ie()),maxLength:vr.with(()=>T()),textAlign:vr.with(()=>s()),disabled:vr.with(()=>H()),inputmode:vr.with(()=>B()),pattern:vr.with(()=>o.pattern),onComplete:vr.with(()=>N()),value:vr.with(()=>me(),et=>{me(et),ve()(et)}),pushPasswordManagerStrategy:vr.with(()=>Y()),pasteTransformer:vr.with(()=>o.pasteTransformer)}),Re=ft(()=>Va(Me,Ee.inputProps)),ze=ft(()=>Va(Ee.rootProps,{class:K()})),Fe=ft(()=>Va(Ee.inputWrapperProps,{}));var Ke=Yk();ar(Ke,()=>({...x(ze)}));var rt=E(Ke);oi(rt,()=>o.children??pa,()=>Ee.snippetProps);var qe=q(rt,2);ar(qe,()=>({...x(Fe)}));var He=E(qe);uo(He),ar(He,()=>({...x(Re)})),k(qe),k(Ke),G(m,Ke),Fr()}var Jk=Te("
                      ");function Qk(m,o){const f=co();Br(o,!0);let y=Lt(o,"id",19,()=>Ya(f)),M=Lt(o,"ref",15,null),z=ir(o,["$$slots","$$events","$$legacy","id","ref","cell","child","children"]);const T=xm.create({id:vr.with(()=>y()),ref:vr.with(()=>M(),ie=>M(ie)),cell:vr.with(()=>o.cell)}),s=ft(()=>Va(z,T.props));var B=er(),N=Ct(B);{var Y=ie=>{var H=er(),me=Ct(H);oi(me,()=>o.child,()=>({props:x(s)})),G(ie,H)},K=ie=>{var H=Jk();ar(H,()=>({...x(s)}));var me=E(H);oi(me,()=>o.children??pa),k(H),G(ie,H)};je(N,ie=>{o.child?ie(Y):ie(K,!1)})}G(m,B),Fr()}function Ac(...m){return Lv(Ou(m))}function eA(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=Lt(o,"value",15,""),M=ir(o,["$$slots","$$events","$$legacy","ref","value","class"]);var z=er(),T=Ct(z);{let s=ft(()=>Ac("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",o.class));yi(T,()=>yk,(B,N)=>{N(B,Ps({"data-slot":"command",get class(){return x(s)}},()=>M,{get value(){return y()},set value(Y){y(Y)},get ref(){return f()},set ref(Y){f(Y)}}))})}G(m,z),Fr()}var tA=Cr('');function _l(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=tA();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}function rA(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=ir(o,["$$slots","$$events","$$legacy","ref","class"]);var M=er(),z=Ct(M);{let T=ft(()=>Ac("py-6 text-center text-sm",o.class));yi(z,()=>bk,(s,B)=>{B(s,Ps({"data-slot":"command-empty",get class(){return x(T)}},()=>y,{get ref(){return f()},set ref(N){f(N)}}))})}G(m,M),Fr()}var nA=Te(" ",1);function iA(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=ir(o,["$$slots","$$events","$$legacy","ref","class","children","heading","value"]);var M=er(),z=Ct(M);{let T=ft(()=>Ac("text-foreground overflow-hidden p-1",o.class)),s=ft(()=>o.value??o.heading??`----${hk()}`);yi(z,()=>Tk,(B,N)=>{N(B,Ps({"data-slot":"command-group",get class(){return x(T)},get value(){return x(s)}},()=>y,{get ref(){return f()},set ref(Y){f(Y)},children:(Y,K)=>{var ie=nA(),H=Ct(ie);{var me=Me=>{var Ee=er(),Re=Ct(Ee);yi(Re,()=>Sk,(ze,Fe)=>{Fe(ze,{class:"text-muted-foreground px-2 py-1.5 text-xs font-medium",children:(Ke,rt)=>{vn();var qe=bi();Ye(()=>fe(qe,o.heading)),G(Ke,qe)},$$slots:{default:!0}})}),G(Me,Ee)};je(H,Me=>{o.heading&&Me(me)})}var ve=q(H,2);yi(ve,()=>Mk,(Me,Ee)=>{Ee(Me,{get children(){return o.children}})}),G(Y,ie)},$$slots:{default:!0}}))})}G(m,M),Fr()}function aA(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=ir(o,["$$slots","$$events","$$legacy","ref","class"]);var M=er(),z=Ct(M);{let T=ft(()=>Ac("aria-selected:bg-base-300 aria-selected:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",o.class));yi(z,()=>Lk,(s,B)=>{B(s,Ps({"data-slot":"command-item",get class(){return x(T)}},()=>y,{get ref(){return f()},set ref(N){f(N)}}))})}G(m,M),Fr()}var oA=Cr('');function sA(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=oA();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var lA=Te('
                      ');function cA(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=Lt(o,"value",15,""),M=ir(o,["$$slots","$$events","$$legacy","ref","class","value"]);var z=lA(),T=E(z);sA(T,{class:"size-5 opacity-50"});var s=q(T,2);{let B=ft(()=>Ac("placeholder:text-muted-foreground outline-hidden flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50",o.class));yi(s,()=>Ak,(N,Y)=>{Y(N,Ps({"data-slot":"command-input",get class(){return x(B)}},()=>M,{get ref(){return f()},set ref(K){f(K)},get value(){return y()},set value(K){y(K)}}))})}k(z),G(m,z),Fr()}function uA(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=ir(o,["$$slots","$$events","$$legacy","ref","class"]);var M=er(),z=Ct(M);{let T=ft(()=>Ac("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden",o.class));yi(z,()=>Rk,(s,B)=>{B(s,Ps({"data-slot":"command-list",get class(){return x(T)}},()=>y,{get ref(){return f()},set ref(N){f(N)}}))})}G(m,M),Fr()}var hA=Cr('');function dA(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=hA();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var pA=Te(" ",1),fA=Te(' ',1),mA=Te(' '),_A=Te(" ",1),gA=Te(" ",1),vA=(m,o)=>{o(0)},yA=Te(''),xA=Te('
                      ');function lv(m,o){Br(o,!0);let f=Lt(o,"countryId",15,0),y=Lt(o,"dropdownDirection",3,"right"),M=ct(null),z=ct(null),T=ct("");function s(){Iv().then(()=>{var ze;(ze=document.activeElement)==null||ze.blur(),ce(T,"")})}var B=xA(),N=E(B),Y=E(N),K=E(Y);{var ie=ze=>{var Fe=pA(),Ke=Ct(Fe),rt=E(Ke,!0);k(Ke);var qe=q(Ke,2);dA(qe,{class:"size-3.5"}),Ye(He=>fe(rt,He),[()=>Zv()]),G(ze,Fe)},H=ze=>{const Fe=ft(()=>So(f()));var Ke=fA(),rt=Ct(Ke),qe=E(rt,!0);k(rt);var He=q(rt);Ye(()=>{fe(qe,x(Fe).flag),fe(He,` ${x(Fe).name??""}`)}),G(ze,Ke)};je(K,ze=>{f()===0?ze(ie):ze(H,!1)})}k(Y);var me=q(Y,2);let ve;var Me=E(me);yi(Me,()=>eA,(ze,Fe)=>{Fe(ze,{children:(Ke,rt)=>{var qe=gA(),He=Ct(qe);yi(He,()=>cA,(De,tt)=>{tt(De,{placeholder:"Country",get ref(){return x(M)},set ref(nt){ce(M,nt)},get value(){return x(T)},set value(nt){ce(T,nt,!0)}})});var et=q(He,2);yi(et,()=>uA,(De,tt)=>{tt(De,{children:(nt,Ze)=>{var ke=_A(),bt=Ct(ke);yi(bt,()=>rA,(re,ge)=>{ge(re,{children:(oe,Ae)=>{vn();var Ne=bi();Ye(pt=>fe(Ne,pt),[()=>Ow()]),G(oe,Ne)},$$slots:{default:!0}})});var te=q(bt,2);yi(te,()=>iA,(re,ge)=>{ge(re,{children:(oe,Ae)=>{var Ne=er(),pt=Ct(Ne);hi(pt,17,()=>Hi.countries,ot=>ot.id,(ot,ut)=>{var St=er(),Bt=Ct(St);yi(Bt,()=>aA,(at,dt)=>{dt(at,{get value(){return x(ut).name},onSelect:()=>{f(x(ut).id),s()},children:(vt,yt)=>{var It=mA(),wt=E(It),mt=E(wt,!0);k(wt);var Dt=q(wt);k(It),Ye(()=>{fe(mt,x(ut).flag),fe(Dt,` ${x(ut).name??""}`)}),G(vt,It)},$$slots:{default:!0}})}),G(ot,St)}),G(oe,Ne)},$$slots:{default:!0}})}),G(nt,ke)},$$slots:{default:!0}})}),G(Ke,qe)},$$slots:{default:!0}})}),k(me),k(N);var Ee=q(N,2);{var Re=ze=>{var Fe=yA();Fe.__click=[vA,f];var Ke=E(Fe);_l(Ke,{class:"size-3.5"}),k(Fe),G(ze,Fe)};je(Ee,ze=>{f()!=0&&ze(Re)})}k(B),Po(B,ze=>ce(z,ze),()=>x(z)),Ye(ze=>ve=zr(me,1,"dropdown-content menu bg-base-100 rounded-box z-1 border-base-content/10 w-52 rounded-lg border py-1 shadow-sm",null,ve,ze),[()=>({"right-1":y()==="left"})]),Ai("focus",Y,()=>{x(M).focus()}),G(m,B),Fr()}Qn(["click"]);var bA=Cr('');function wA(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=bA();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var TA=Cr(''),CA=Cr('');function Uu(m,o){let f=ir(o,["$$slots","$$events","$$legacy","filled"]);var y=er(),M=Ct(y);{var z=s=>{var B=TA();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)},T=s=>{var B=CA();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)};je(M,s=>{o.filled?s(z):s(T,!1)})}G(m,y)}var SA=Te(''),PA=Te('
                      '),IA=Te('
                      '),MA=(m,o,f)=>{o.onvisitclick({lat:x(f).lastLatitude,lng:x(f).lastLongitude})},kA=Te(' '),AA=Te('

                      '),EA=Te(' '),zA=Te('

                      '),LA=Te(' '),DA=Te(" "),RA=Te('
                      '),BA=Te('

                      '),FA=Te(' '),OA=Te('

                      '),NA=Te('
                      '),jA=Te('
                      ',1);function VA(m,o){Br(o,!0);const f=[];let y=ct(1e3);const M=ft(()=>x(y)<=640);let z=ct("today"),T={regions:{label:YT(),icon:km},countries:{label:QT(),icon:wA},players:{label:Xv(),icon:vp},alliances:{label:Yv(),icon:yp}},s=ct("regions"),B=ct(0),N=xi({players:{},alliances:{},regions:{},countries:{}}),Y=ft(()=>{var qe,He,et;return x(s)==="regions"?(He=(qe=N[x(s)][x(B)])==null?void 0:qe[x(z)])==null?void 0:He.entries:(et=N[x(s)][x(z)])==null?void 0:et.entries});const K=5*1e3;Wr(()=>{var De;if(!o.open)return;const qe=x(z),He=x(s),et=x(B);He==="players"&&(!N[He][qe]||Date.now()-N[He][qe].time>K)?en.leaderboardPlayers(qe).then(tt=>{N[He][qe]={time:Date.now(),entries:tt}}).catch(tt=>Nr.error(tt.message)):He==="alliances"&&(!N[He][qe]||Date.now()-N[He][qe].time>K)?en.leaderboardAlliances(qe).then(tt=>{N[He][qe]={time:Date.now(),entries:tt}}).catch(tt=>Nr.error(tt.message)):He==="countries"&&(!N[He][qe]||Date.now()-N[He][qe].time>K)?en.leaderboardCountries(qe).then(tt=>{N[He][qe]={time:Date.now(),entries:tt}}).catch(tt=>Nr.error(tt.message)):He==="regions"&&(!((De=N[He][et])!=null&&De[qe])||Date.now()-N[He][et][qe].time>K)&&en.leaderboardRegions(qe,et).then(tt=>{N[He][et]||(N[He][et]={}),N[He][et][qe]={time:Date.now(),entries:tt}}).catch(tt=>Nr.error(tt.message))});var ie=jA(),H=Ct(ie);hi(H,21,()=>Object.entries(T),([qe,{label:He,icon:et}])=>qe,(qe,He)=>{var et=ft(()=>Mv(x(He),2));let De=()=>x(et)[0],tt=()=>x(et)[1].label,nt=()=>x(et)[1].icon;const Ze=ft(nt);var ke=SA(),bt=E(ke);uo(bt);var te,re=q(bt,2);yi(re,()=>x(Ze),(oe,Ae)=>{Ae(oe,{get this(){return nt()},class:"mr-1 size-5 max-sm:hidden"})});var ge=q(re);k(ke),Ye(()=>{xr(bt,"aria-label",tt()),te!==(te=De())&&(bt.value=(bt.__value=De())??""),fe(ge,` ${tt()??""}`)}),Em(f,[],bt,()=>(De(),x(s)),oe=>ce(s,oe)),G(qe,ke)}),k(H);var me=q(H,2),ve=E(me);Zm(ve,{get value(){return x(z)},set value(qe){ce(z,qe,!0)}});var Me=q(ve,2);{var Ee=qe=>{lv(qe,{dropdownDirection:"left",get countryId(){return x(B)},set countryId(He){ce(B,He,!0)}})};je(Me,qe=>{x(s)==="regions"&&!x(M)&&qe(Ee)})}k(me);var Re=q(me,2);{var ze=qe=>{var He=PA(),et=E(He);lv(et,{get countryId(){return x(B)},set countryId(De){ce(B,De,!0)}}),k(He),G(qe,He)};je(Re,qe=>{x(s)==="regions"&&x(M)&&qe(ze)})}var Fe=q(Re,2);{var Ke=qe=>{var He=IA(),et=E(He),De=q(et);{var tt=Ze=>{var ke=bi();Ye(bt=>fe(ke,bt),[()=>gp().toLowerCase()]),G(Ze,ke)},nt=Ze=>{var ke=er(),bt=Ct(ke);{var te=ge=>{var oe=bi();Ye(Ae=>fe(oe,Ae),[()=>Om()]),G(ge,oe)},re=ge=>{var oe=er(),Ae=Ct(oe);{var Ne=pt=>{var ot=bi();Ye(ut=>fe(ot,ut),[()=>Nm()]),G(pt,ot)};je(Ae,pt=>{x(z)==="month"&&pt(Ne)},!0)}G(ge,oe)};je(bt,ge=>{x(z)==="week"?ge(te):ge(re,!1)},!0)}G(Ze,ke)};je(De,Ze=>{x(z)==="today"?Ze(tt):Ze(nt,!1)})}k(He),Ye(Ze=>fe(et,`${Ze??""} `),[()=>Fm()]),G(qe,He)},rt=qe=>{var He=er(),et=Ct(He);{var De=nt=>{var Ze=er(),ke=Ct(Ze);{var bt=re=>{const ge=ft(()=>x(Y));var oe=AA(),Ae=E(oe),Ne=E(Ae),pt=q(E(Ne)),ot=E(pt,!0);k(pt);var ut=q(pt),St=E(ut),Bt=q(St,2),at=q(Bt),dt=E(at);Uu(dt,{class:"text-base-content/50 mb-0.5 ml-1 inline size-4"}),k(at),k(ut),vn(),k(Ne),k(Ae);var vt=q(Ae);hi(vt,31,()=>x(ge),yt=>yt.id,(yt,It,wt)=>{const mt=ft(()=>So(x(It).countryId));var Dt=kA(),zt=E(Dt),qt=E(zt,!0);k(zt);var tr=q(zt),Qt=E(tr),Ot=E(Qt,!0);k(Qt);var fr=q(Qt,2),kr=E(fr),Ar=q(kr),rr=E(Ar);k(Ar),k(fr),k(tr);var Kt=q(tr),or=E(Kt,!0);k(Kt);var Sr=q(Kt),Dr=E(Sr);Dr.__click=[MA,o,It];var Zr=E(Dr,!0);k(Dr),k(Sr),k(Dt),Ye((se,j,Z)=>{fe(qt,x(wt)+1),xr(Qt,"data-tip",x(mt).name),fe(Ot,x(mt).flag),zr(fr,1,`font-semibold ${se??""}`),fe(kr,`${x(It).name??""} `),fe(rr,`#${x(It).number??""}`),fe(or,j),fe(Zr,Z)},[()=>Oi(x(It).cityId),()=>x(It).pixelsPainted.toLocaleString("en-US"),()=>Ix()]),sl(Dt,()=>ll,()=>({duration:200})),G(yt,Dt)}),k(vt),k(oe),Ye((yt,It,wt,mt)=>{fe(ot,yt),fe(St,`${It??""} `),fe(Bt,`${wt??""} `),xr(at,"data-tip",mt)},[()=>oC(),()=>vc(),()=>yc().toLowerCase(),()=>pC()]),G(re,oe)},te=re=>{var ge=er(),oe=Ct(ge);{var Ae=pt=>{var ot=zA(),ut=E(ot),St=E(ut),Bt=q(E(St)),at=E(Bt,!0);k(Bt);var dt=q(Bt),vt=E(dt),yt=q(vt,2),It=q(yt),wt=E(It);Uu(wt,{class:"text-base-content/50 mb-0.5 ml-1 inline size-4"}),k(It),k(dt),k(St),k(ut);var mt=q(ut);hi(mt,31,()=>x(Y),Dt=>Dt.id,(Dt,zt,qt)=>{const tr=ft(()=>So(x(zt).id));var Qt=EA(),Ot=E(Qt),fr=E(Ot,!0);k(Ot);var kr=q(Ot),Ar=E(kr),rr=E(Ar,!0);k(Ar);var Kt=q(Ar,2),or=E(Kt,!0);k(Kt),k(kr);var Sr=q(kr),Dr=E(Sr,!0);k(Sr),k(Qt),Ye((Zr,se)=>{fe(fr,x(qt)+1),xr(Ar,"data-tip",x(tr).name),fe(rr,x(tr).flag),zr(Kt,1,`font-semibold ${Zr??""}`),fe(or,x(tr).name),fe(Dr,se)},[()=>Oi(x(zt).id),()=>x(zt).pixelsPainted.toLocaleString("en-US")]),sl(Qt,()=>ll,()=>({duration:200})),G(Dt,Qt)}),k(mt),k(ot),Ye((Dt,zt,qt,tr)=>{fe(at,Dt),fe(vt,`${zt??""} `),fe(yt,`${qt??""} `),xr(It,"data-tip",tr)},[()=>Zv(),()=>vc(),()=>yc().toLowerCase(),()=>ZC()]),G(pt,ot)},Ne=pt=>{var ot=er(),ut=Ct(ot);{var St=at=>{const dt=ft(()=>x(Y));var vt=BA(),yt=E(vt),It=E(yt),wt=q(E(It)),mt=E(wt,!0);k(wt);var Dt=q(wt),zt=E(Dt),qt=q(zt,2,!0);k(Dt),k(It),k(yt);var tr=q(yt);hi(tr,31,()=>x(dt),Qt=>Qt.id,(Qt,Ot,fr)=>{const kr=ft(()=>{var xe;return((xe=kt.data)==null?void 0:xe.id)===x(Ot).id});var Ar=RA();let rr;var Kt=E(Ar),or=E(Kt,!0);k(Kt);var Sr=q(Kt),Dr=E(Sr),Zr=E(Dr);lo(Zr,{class:"size-8 border sm:size-10",get userId(){return x(Ot).id},get pictureUrl(){return x(Ot).picture}});var se=q(Zr,2),j=E(se),Z=E(j),X=q(Z),ae=E(X);k(X),k(j);var de=q(j,2);{var Se=xe=>{const Ft=ft(()=>So(x(Ot).equippedFlag));var cr=LA(),Jt=E(cr,!0);k(cr),Ye(()=>{xr(cr,"data-tip",x(Ft).name),fe(Jt,x(Ft).flag)}),G(xe,cr)};je(de,xe=>{x(Ot).equippedFlag&&xe(Se)})}var Ie=q(de,2);{var be=xe=>{Ah(xe,{get username(){return x(Ot).discord},get id(){return x(Ot).discordId}})};je(Ie,xe=>{x(Ot).discord&&xe(be)})}var Oe=q(Ie,2);{var st=xe=>{var Ft=DA(),cr=E(Ft,!0);k(Ft),Ye((Jt,Tr)=>{zr(Ft,1,`badge badge-sm ml-0.5 border-0 ${Jt??""} ${Tr??""}`),fe(cr,x(Ot).allianceName)},[()=>dp(x(Ot).allianceId),()=>Oi(x(Ot).allianceId)]),G(xe,Ft)};je(Oe,xe=>{"allianceName"in x(Ot)&&x(Ot).allianceName&&xe(st)})}k(se),k(Dr),k(Sr);var $e=q(Sr),Mt=E($e,!0);k($e),k(Ar),Ye((xe,Ft,cr)=>{rr=zr(Ar,1,"",null,rr,xe),fe(or,x(fr)+1),zr(j,1,`font-semibold max-sm:ml-2 ${Ft??""} flex gap-1`),fe(Z,`${x(Ot).name??""} `),fe(ae,`#${x(Ot).id??""}`),fe(Mt,cr)},[()=>({"bg-base-200":x(kr)}),()=>Oi(x(Ot).id),()=>x(Ot).pixelsPainted.toLocaleString("en-US")]),sl(Ar,()=>ll,()=>({duration:200})),G(Qt,Ar)}),k(tr),k(vt),Ye((Qt,Ot,fr)=>{fe(mt,Qt),fe(zt,`${Ot??""} `),fe(qt,fr)},[()=>Lm(),()=>vc(),()=>yc().toLowerCase()]),G(at,vt)},Bt=at=>{var dt=er(),vt=Ct(dt);{var yt=It=>{var wt=OA(),mt=E(wt),Dt=E(mt),zt=q(E(Dt)),qt=E(zt,!0);k(zt);var tr=q(zt),Qt=E(tr),Ot=q(Qt,2,!0);k(tr),k(Dt),k(mt);var fr=q(mt);hi(fr,31,()=>x(Y),kr=>kr.id,(kr,Ar,rr)=>{const Kt=ft(()=>{var de;return((de=kt.data)==null?void 0:de.allianceId)===x(Ar).id});var or=FA();let Sr;var Dr=E(or),Zr=E(Dr,!0);k(Dr);var se=q(Dr),j=E(se),Z=E(j,!0);k(j),k(se);var X=q(se),ae=E(X,!0);k(X),k(or),Ye((de,Se,Ie)=>{Sr=zr(or,1,"",null,Sr,de),fe(Zr,x(rr)+1),zr(j,1,`font-semibold ${Se??""}`),fe(Z,x(Ar).name),fe(ae,Ie)},[()=>({"bg-base-200":x(Kt)}),()=>Oi(x(Ar).id),()=>x(Ar).pixelsPainted.toLocaleString("en-US")]),sl(or,()=>ll,()=>({duration:200})),G(kr,or)}),k(fr),k(wt),Ye((kr,Ar,rr)=>{fe(qt,kr),fe(Qt,`${Ar??""} `),fe(Ot,rr)},[()=>mp(),()=>vc(),()=>yc().toLowerCase()]),G(It,wt)};je(vt,It=>{x(s)==="alliances"&&It(yt)},!0)}G(at,dt)};je(ut,at=>{x(s)==="players"?at(St):at(Bt,!1)},!0)}G(pt,ot)};je(oe,pt=>{x(s)==="countries"?pt(Ae):pt(Ne,!1)},!0)}G(re,ge)};je(ke,re=>{x(s)==="regions"?re(bt):re(te,!1)})}G(nt,Ze)},tt=nt=>{var Ze=NA();G(nt,Ze)};je(et,nt=>{x(Y)?nt(De):nt(tt,!1)},!0)}G(qe,He)};je(Fe,qe=>{x(Y)&&x(Y).length===0?qe(Ke):qe(rt,!1)})}fp("innerWidth",qe=>ce(y,qe,!0)),G(m,ie),Fr()}Qn(["click"]);var qA=Cr('');function P0(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=qA();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var ZA=Te(' ');function UA(m,o){Br(o,!0);let f=Lt(o,"open",15);Dn(()=>{const K=ie=>{ie.key==="Escape"&&f(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)});var y=ZA(),M=E(y),z=q(E(M),2),T=E(z);P0(T,{class:"size-6"});var s=q(T,2),B=E(s,!0);k(s),k(z);var N=q(z,2),Y=E(N);VA(Y,{get onvisitclick(){return o.onvisitclick},get open(){return f()}}),k(N),k(M),vn(2),k(y),Wi(y,()=>K=>{Wr(()=>{f()?K.show():K.close()})}),Ye(K=>fe(B,K),[()=>Rm()]),Ai("close",y,()=>f(!1)),G(m,y),Fr()}var $A=Te("
                      "),GA=Te(' ');function HA(m,o){Br(o,!0);let f=Lt(o,"open",15);Dn(()=>{const s=B=>{B.key==="Escape"&&f(!1)};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)});var y=GA(),M=E(y),z=q(E(M),2);{var T=s=>{var B=$A(),N=E(B);Ox(N,{}),k(B),ki(2,B,()=>ia,()=>({duration:300})),G(s,B)};je(z,s=>{f()&&s(T)})}k(M),vn(2),k(y),Wi(y,()=>s=>{Wr(()=>{f()?s.show():s.close()})}),Ai("close",y,()=>f(!1)),G(m,y),Fr()}var WA=(m,o,f)=>{localStorage.setItem(x(o),"true"),ce(f,!1)},XA=Te('new'),YA=Te("
                      ");function Nf(m,o){Br(o,!0);let f=ct(!1);const y=ft(()=>"showed:"+o.key);Dn(()=>{ce(f,!localStorage.getItem(x(y)))});var M=YA();M.__click=[WA,y,f];var z=E(M);{var T=B=>{var N=XA();ki(3,N,()=>ia,()=>({duration:200})),G(B,N)};je(z,B=>{x(f)&&B(T)})}var s=q(z,2);oi(s,()=>o.children),k(M),Ye(()=>zr(M,1,`indicator ${o.class??""}`)),G(m,M),Fr()}Qn(["click"]);var KA=Te("

                      You don't have charges to paint.

                      ");function JA(m,o){Br(o,!1),Nv();var f=KA(),y=q(E(f),2);k(f),Ye(M=>fe(y,` Next charge in ${M??""}`),[()=>tp(kt.cooldown??0)]),G(m,f),Fr()}var QA=Te("");function I0(m,o){Br(o,!0);let f=Lt(o,"width",15,0),y=ir(o,["$$slots","$$events","$$legacy","value","fontSize","color","weight","mono","width"]),M=ft(()=>Math.ceil(o.fontSize)),z=ct(null);const T=window.devicePixelRatio??1,s='"Geist", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',B='"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace';Wr(()=>{const Y=x(z).getContext("2d");Y.textBaseline="top",Y.font=`${o.weight??"normal"} ${o.fontSize}px ${o.mono?B:s}`,Y.fillStyle=o.color??"#394e6a",Y.setTransform(T,0,0,T,0,0),Y.clearRect(0,0,f(),x(M)),Y.fillText(o.value,0,0);const K=Y.measureText(o.value);f(Math.ceil(K.actualBoundingBoxRight)),ce(M,K.actualBoundingBoxDescent)});var N=QA();ar(N,()=>({width:f()*T,height:x(M)*T,style:`width: ${f()??""}px; height: ${x(M)??""}px`,...y})),Po(N,Y=>ce(z,Y),()=>x(z)),G(m,N),Fr()}var eE=Te(' '),tE=Te(' '),rE=Te(''),nE=Te('');function M0(m,o){Br(o,!0);let f=ir(o,["$$slots","$$events","$$legacy","loading","charges"]),y=ct(0);var M=nE();ar(M,()=>({...f,class:`btn btn-primary btn-lg sm:btn-xl relative ${o.class??""}`}));var z=E(M);Eh(z,{class:"size-6"});var T=q(z,2),s=E(T),B=q(s);{var N=ie=>{const H=ft(()=>`${Math.floor(o.charges)}/${kt.data.charges.max}`);var me=tE(),ve=E(me),Me=E(ve);{let ze=ft(()=>o.disabled?"#394e6a33":"#ffffff");I0(Me,{weight:600,fontSize:16,get value(){return x(H)},get color(){return x(ze)},get width(){return x(y)},set width(Fe){ce(y,Fe,!0)}})}k(ve);var Ee=q(ve,2);{var Re=ze=>{var Fe=eE(),Ke=E(Fe);k(Fe),Ye(rt=>fe(Ke,`(${rt??""})`),[()=>tp(kt.cooldown)]),G(ze,Fe)};je(Ee,ze=>{o.chargeskc(ve,`width: ${ze??""}px`),[()=>(Math.floor(x(y)/5)+1)*5]),G(ie,me)};je(B,ie=>{o.charges!==void 0&&kt.data&&ie(N)})}k(T);var Y=q(T,2);{var K=ie=>{var H=rE();G(ie,H)};je(Y,ie=>{o.loading&&ie(K)})}k(M),Ye(ie=>fe(s,`${ie??""} `),[()=>$v()]),G(m,M),Fr()}const iE="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAABVQTFRFAAAASkKEenHEta7xWmmLi5y0v8vc+SuCVQAAAAF0Uk5TAEDm2GYAAAA/SURBVHjaXcjBDcAwDMNAUW28/8hF0MCIzN9RV7aVfuxp+IGPe+AdPQRpFaRrgcNrn/Bb4LAE4W5aNb3TXUofoSgBYpzN5I4AAAAASUVORK5CYII=",aE="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAFxJREFUeNq107EJACAMRFEHyxSu4jbuZ+0IyhUS4ZDogYEr3++Svp+ZDUzGrRTMIwKmiIApImCKiBgbOXOEcRxQsQcW7rVKeA9gj5gD2D3mgC/GcQSLMEdO+/qtE+/GV5duYCOPAAAAAElFTkSuQmCC",oE="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAAXNSR0IArs4c6QAAAAJ0Uk5TAAB2k804AAAAKklEQVR42mOAAhsbCA3n//9vQ74ApqE2QIAgwIqBykFaICwMAQwt9HEpAIf2Me1Ro5Q9AAAAAElFTkSuQmCC",sE="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAXNSR0IArs4c6QAAABVJREFUeNpjYGA48x8DYwoB1Q0RlQDDCVmniJ241gAAAABJRU5ErkJggg==";class lE{constructor(o){gr(this,"gm");gr(this,"opacity",1);gr(this,"id",`paint-preview-${Math.random()}`);gr(this,"tiles",new Map);this.input=o,this.gm=new fl(this.input.tileSize)}place([o,f],y){const{tile:M,pixel:z}=this.gm.latLonToTileAndPixel(o,f,this.input.tileZoom),T=this.getTileKey(M[0],M[1]);let s=this.tiles.get(T);if(!s){const B=this.gm.tileBoundsLatLon(M[0],M[1],this.input.tileZoom),N=jm(B,!0),Y=new cE({coordinates:N,id:`${this.id}-${T}`,layerPaint:{"raster-opacity":this.opacity,"raster-resampling":"nearest"},tileSize:this.input.tileSize,beforeLayerId:this.input.beforeLayerId});Y.addTo(this.input.map),this.tiles.set(T,Y),s=Y}s.place(z[0],this.input.tileSize-z[1]-1,y)}clear(){const o=this.input.map;for(const f of this.tiles.values())f.removeFrom(o),f.removeDOM();this.tiles.clear()}clearAndPlace(o,f){this.clear(),this.place(o,f)}remove([o,f]){const{tile:y,pixel:M}=this.gm.latLonToTileAndPixel(o,f,this.input.tileZoom),z=this.getTileKey(y[0],y[1]),T=this.tiles.get(z);T&&T.remove(M[0],this.input.tileSize-M[1]-1)}setCanvasOpacity(o){this.opacity=o;for(const f of this.tiles.values())f.setOpacity(o)}getTileKey(o,f){return`${o},${f}`}}class cE{constructor(o){gr(this,"canvas");gr(this,"maps",new Set);this.input=o;const f=this.input.tileSize;this.canvas=document.createElement("canvas"),this.canvas.width=f,this.canvas.height=f}place(o,f,y){var T;const M=((T=Hi.colors)==null?void 0:T[y])??Hi.colors[0],z=this.canvas.getContext("2d");if(z){const s=z.createImageData(1,1),[B,N,Y]=M.rgb,K=y===0?0:255;s.data[0]=B,s.data[1]=N,s.data[2]=Y,s.data[3]=K,z.putImageData(s,o,f)}}remove(o,f){const y=this.canvas.getContext("2d");y&&y.clearRect(o,f,1,1)}addTo(o){const f=this.input.id;o.getSource(f)||o.addSource(f,{type:"canvas",canvas:this.canvas,coordinates:this.input.coordinates}),o.getLayer(f)||(o.addLayer({id:f,type:"raster",source:f,paint:this.input.layerPaint}),this.input.beforeLayerId&&o.moveLayer(f,this.input.beforeLayerId)),this.maps.add(o)}removeFrom(o){const{id:f}=this.input;o.getLayer(f)&&o.removeLayer(f),o.getSource(f)&&o.removeSource(f),this.maps.delete(o)}removeDOM(){this.canvas.remove()}setOpacity(o){for(const f of this.maps.values())f.setPaintProperty(this.input.id,"raster-opacity",o)}}var uE=Cr('');function hE(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=uE();ar(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...f})),G(m,y)}var dE=Cr('');function pE(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=dE();ar(y,()=>({viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...f})),G(m,y)}var fE=Te("
                      ");function al(m,o){Br(o,!0);var f=fE(),y=E(f);oi(y,()=>o.children??pa),k(f),Ye(()=>zr(f,1,`bg-base-100/60 border-base-content/20 -top-15 pointer-events-none absolute left-1/2 line-clamp-1 flex w-max -translate-x-1/2 select-none items-center gap-1 rounded-full border-2 px-3 py-1.5 ${o.class??""}`)),G(m,f),Fr()}var mE=Te('
                      '),_E=Te("
                      ");function Wm(m,o){Br(o,!0);const f=Lt(o,"size",3,10),y=Lt(o,"x",19,()=>[-.5,.5]),M=Lt(o,"y",19,()=>[.25,1]),z=Lt(o,"duration",3,2e3),T=Lt(o,"infinite",3,!1),s=Lt(o,"delay",19,()=>[0,50]),B=Lt(o,"colorRange",19,()=>[0,360]),N=Lt(o,"colorArray",19,()=>[]),Y=Lt(o,"amount",3,50),K=Lt(o,"iterationCount",3,1),ie=Lt(o,"fallDistance",3,"100px"),H=Lt(o,"rounded",3,!1),me=Lt(o,"cone",3,!1),ve=Lt(o,"noGravity",3,!1),Me=Lt(o,"xSpread",3,.15),Ee=Lt(o,"destroyOnComplete",3,!0),Re=Lt(o,"disableForReducedMotion",3,!1);let ze=ct(!1);Dn(()=>{!Ee()||T()||typeof K()=="string"||setTimeout(()=>ce(ze,!0),(z()+s()[1])*K())});function Fe(et,De){return Math.random()*(De-et)+et}function Ke(){return N().length?N()[Math.round(Math.random()*(N().length-1))]:`hsl(${Math.round(Fe(B()[0],B()[1]))}, 75%, 50%)`}var rt=er(),qe=Ct(rt);{var He=et=>{var De=_E();let tt;hi(De,21,()=>({length:Y()}),hp,(nt,Ze)=>{var ke=mE();Ye((bt,te,re,ge,oe,Ae,Ne,pt,ot,ut,St)=>kc(ke,` - --color: ${bt??""}; - --skew: ${te??""}deg,${re??""}deg; - --rotation-xyz: ${ge??""}, ${oe??""}, ${Ae??""}; - --rotation-deg: ${Ne??""}deg; - --translate-y-multiplier: ${pt??""}; - --translate-x-multiplier: ${ot??""}; - --scale: ${ut??""}; - --transition-delay: ${St??""}ms; - --transition-duration: ${T()?`calc(${z()}ms * var(--scale))`:`${z()}ms`};`),[Ke,()=>Fe(-45,45),()=>Fe(-45,45),()=>Fe(-10,10),()=>Fe(-10,10),()=>Fe(-10,10),()=>Fe(0,360),()=>Fe(M()[0],M()[1]),()=>Fe(y()[0],y()[1]),()=>.1*Fe(2,10),()=>Fe(s()[0],s()[1])]),G(nt,ke)}),k(De),Ye(nt=>{tt=zr(De,1,"confetti-holder svelte-15ksp55",null,tt,nt),kc(De,` - --fall-distance: ${ie()??""}; - --size: ${f()??""}px; - --x-spread: ${1-Me()}; - --transition-iteration-count: ${(T()?"infinite":K())??""};`)},[()=>({rounded:H(),cone:me(),"no-gravity":ve(),"reduced-motion":Re()})]),G(et,De)};je(qe,et=>{x(ze)||et(He)})}G(m,rt),Fr()}var gE=async(m,o,f,y)=>{try{ce(o,!0),await en.purchase({id:f,amount:1,variant:y.colorIdx}),await kt.refresh(),aa.notification1.play()}catch(M){Nr.error(M.message)}finally{ce(o,!1)}},vE=Te(''),yE=Te(' Droplets',1),xE=Te(' Unlocked ',1),bE=(m,o)=>o(!1),wE=Te('

                      Unlock

                      Permanently unlock the color

                      '),TE=Te(' ');function CE(m,o){Br(o,!0);let f=Lt(o,"open",15);const y=ft(()=>Hi.colors[o.colorIdx]),M=ft(()=>{var H;return((H=kt.data)==null?void 0:H.droplets)??0});let z=ct(!1);const T=ft(()=>(x(z),kt.hasColor(o.colorIdx)));Dn(()=>{const H=me=>{me.key==="Escape"&&f(!1)};return document.addEventListener("keydown",H),()=>document.removeEventListener("keydown",H)});const s=100,B=Hi.products[s];var N=TE(),Y=E(N),K=q(E(Y),2);{var ie=H=>{var me=wE(),ve=E(me),Me=E(ve),Ee=E(Me);rp(Ee,{class:"size-6"});var Re=q(Ee,4),ze=E(Re);Fv(ze,{get value(){return x(M)}}),k(Re),k(Me),vn(2),k(ve);var Fe=q(ve,2),Ke=E(Fe),rt=E(Ke);k(Ke);var qe=q(Ke,2),He=E(qe,!0);k(qe);var et=q(qe,2),De=E(et);let tt;var nt=E(De);nt.__click=[gE,z,s,o];var Ze=E(nt);{var ke=oe=>{var Ae=vE();G(oe,Ae)};je(Ze,oe=>{x(z)&&oe(ke)})}var bt=q(Ze,2);{var te=oe=>{var Ae=yE(),Ne=Ct(Ae);pp(Ne,{class:"size-5"});var pt=q(Ne);vn(),Ye(ot=>fe(pt,` ${ot??""} `),[()=>B.price.toLocaleString("en-US")]),G(oe,Ae)},re=oe=>{var Ae=xE(),Ne=Ct(Ae);rp(Ne,{class:"size-5"});var pt=q(Ne,2),ot=E(pt);Wm(ot,{}),k(pt),G(oe,Ae)};je(bt,oe=>{x(T)?oe(re,!1):oe(te)})}k(nt),k(De);var ge=q(De,2);ge.__click=[bE,f],k(et),k(Fe),k(me),Ye((oe,Ae)=>{kc(rt,`background: rgb(${x(y).rgb[0]} ${x(y).rgb[1]} ${x(y).rgb[2]})`),xr(rt,"aria-label",x(y).name),fe(He,x(y).name),xr(De,"data-tip",oe),tt=zr(De,1,"",null,tt,Ae),nt.disabled=x(M)_p(),()=>({tooltip:!x(T)&&x(M){kt.data&&H(ie)})}k(Y),vn(2),k(N),Wi(N,()=>H=>{Wr(()=>{f()?H.show():H.close()})}),Ai("close",N,()=>f(!1)),G(m,N),Fr()}Qn(["click"]);var bm=function(){return bm=Object.assign||function(o){for(var f,y=1,M=arguments.length;y0&&z[z.length-1])&&(N[0]===6||N[0]===2)){f=0;continue}if(N[0]===3&&(!z||N[1]>z[0]&&N[1]=M+f?(M=T,[4,SE()]):[3,3]):[3,4];case 2:s.sent(),s.label=3;case 3:return++z,[3,1];case 4:return[2,y]}})})}function $u(m){return m.then(void 0,function(){}),m}function IE(m,o){for(var f=0,y=m.length;f=1)return Math.round(m/o)*o;var f=1/o;return Math.round(m*f)/f}function kE(m){for(var o,f,y="Unexpected syntax '".concat(m,"'"),M=/^\s*([a-z-]*)(.*)$/i.exec(m),z=M[1]||void 0,T={},s=/([.:#][\w-]+|\[.+?\])/gi,B=function(ie,H){T[ie]=T[ie]||[],T[ie].push(H)};;){var N=s.exec(M[2]);if(!N)break;var Y=N[0];switch(Y[0]){case".":B("class",Y.slice(1));break;case"#":B("id",Y.slice(1));break;case"[":{var K=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(Y);if(K)B(K[1],(f=(o=K[4])!==null&&o!==void 0?o:K[5])!==null&&f!==void 0?f:"");else throw new Error(y);break}default:throw new Error(y)}}return[z,T]}function AE(m){for(var o=new Uint8Array(m.length),f=0;f127)return new TextEncoder().encode(m);o[f]=y}return o}function bs(m,o){var f=m[0]>>>16,y=m[0]&65535,M=m[1]>>>16,z=m[1]&65535,T=o[0]>>>16,s=o[0]&65535,B=o[1]>>>16,N=o[1]&65535,Y=0,K=0,ie=0,H=0;H+=z+N,ie+=H>>>16,H&=65535,ie+=M+B,K+=ie>>>16,ie&=65535,K+=y+s,Y+=K>>>16,K&=65535,Y+=f+T,Y&=65535,m[0]=Y<<16|K,m[1]=ie<<16|H}function Ga(m,o){var f=m[0]>>>16,y=m[0]&65535,M=m[1]>>>16,z=m[1]&65535,T=o[0]>>>16,s=o[0]&65535,B=o[1]>>>16,N=o[1]&65535,Y=0,K=0,ie=0,H=0;H+=z*N,ie+=H>>>16,H&=65535,ie+=M*N,K+=ie>>>16,ie&=65535,ie+=z*B,K+=ie>>>16,ie&=65535,K+=y*N,Y+=K>>>16,K&=65535,K+=M*B,Y+=K>>>16,K&=65535,K+=z*s,Y+=K>>>16,K&=65535,Y+=f*N+y*B+M*s+z*T,Y&=65535,m[0]=Y<<16|K,m[1]=ie<<16|H}function fc(m,o){var f=m[0];o%=64,o===32?(m[0]=m[1],m[1]=f):o<32?(m[0]=f<>>32-o,m[1]=m[1]<>>32-o):(o-=32,m[0]=m[1]<>>32-o,m[1]=f<>>32-o)}function Na(m,o){o%=64,o!==0&&(o<32?(m[0]=m[1]>>>32-o,m[1]=m[1]<>>1];ri(m,o),Ga(m,EE),o[1]=m[0]>>>1,ri(m,o),Ga(m,zE),o[1]=m[0]>>>1,ri(m,o)}var Ud=[2277735313,289559509],$d=[1291169091,658871167],dv=[0,5],LE=[0,1390208809],DE=[0,944331445];function RE(m,o){var f=AE(m);o=o||0;var y=[0,f.length],M=y[1]%16,z=y[1]-M,T=[0,o],s=[0,o],B=[0,0],N=[0,0],Y;for(Y=0;Y>>0).toString(16)).slice(-8)+("00000000"+(T[1]>>>0).toString(16)).slice(-8)+("00000000"+(s[0]>>>0).toString(16)).slice(-8)+("00000000"+(s[1]>>>0).toString(16)).slice(-8)}function BE(m){var o;return bm({name:m.name,message:m.message,stack:(o=m.stack)===null||o===void 0?void 0:o.split(` -`)},m)}function FE(m){return/^function\s.*?\{\s*\[native code]\s*}$/.test(String(m))}function OE(m){return typeof m!="function"}function NE(m,o){var f=$u(new Promise(function(y){var M=Date.now();cv(m.bind(null,o),function(){for(var z=[],T=0;T=4}function VE(){var m=window,o=navigator;return fa(["msWriteProfilerMark"in m,"MSStream"in m,"msLaunchUri"in o,"msSaveBlob"in o])>=3&&!L0()}function Lh(){var m=window,o=navigator;return fa(["webkitPersistentStorage"in o,"webkitTemporaryStorage"in o,(o.vendor||"").indexOf("Google")===0,"webkitResolveLocalFileSystemURL"in m,"BatteryManager"in m,"webkitMediaStream"in m,"webkitSpeechGrammar"in m])>=5}function ho(){var m=window,o=navigator;return fa(["ApplePayError"in m,"CSSPrimitiveValue"in m,"Counter"in m,o.vendor.indexOf("Apple")===0,"RGBColor"in m,"WebKitMediaKeys"in m])>=4}function Ym(){var m=window,o=m.HTMLElement,f=m.Document;return fa(["safari"in m,!("ongestureend"in m),!("TouchEvent"in m),!("orientation"in m),o&&!("autocapitalize"in o.prototype),f&&"pointerLockElement"in f.prototype])>=4}function Dh(){var m=window;return FE(m.print)&&String(m.browser)==="[object WebPageNamespace]"}function D0(){var m,o,f=window;return fa(["buildID"in navigator,"MozAppearance"in((o=(m=document.documentElement)===null||m===void 0?void 0:m.style)!==null&&o!==void 0?o:{}),"onmozfullscreenchange"in f,"mozInnerScreenX"in f,"CSSMozDocumentRule"in f,"CanvasCaptureMediaStream"in f])>=4}function qE(){var m=window;return fa([!("MediaSettingsRange"in m),"RTCEncodedAudioFrame"in m,""+m.Intl=="[object Intl]",""+m.Reflect=="[object Reflect]"])>=3}function ZE(){var m=window,o=m.URLPattern;return fa(["union"in Set.prototype,"Iterator"in m,o&&"hasRegExpGroups"in o.prototype,"RGB8"in WebGLRenderingContext.prototype])>=3}function UE(){var m=window;return fa(["DOMRectList"in m,"RTCPeerConnectionIceEvent"in m,"SVGGeometryElement"in m,"ontransitioncancel"in m])>=3}function Rh(){var m=window,o=navigator,f=m.CSS,y=m.HTMLButtonElement;return fa([!("getStorageUpdates"in o),y&&"popover"in y.prototype,"CSSCounterStyleRule"in m,f.supports("font-size-adjust: ex-height 0.5"),f.supports("text-transform: full-width")])>=4}function $E(){if(navigator.platform==="iPad")return!0;var m=screen,o=m.width/m.height;return fa(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,o>.65&&o<1.53])>=2}function GE(){var m=document;return m.fullscreenElement||m.msFullscreenElement||m.mozFullScreenElement||m.webkitFullscreenElement||null}function HE(){var m=document;return(m.exitFullscreen||m.msExitFullscreen||m.mozCancelFullScreen||m.webkitExitFullscreen).call(m)}function Km(){var m=Lh(),o=D0(),f=window,y=navigator,M="connection";return m?fa([!("SharedWorker"in f),y[M]&&"ontypechange"in y[M],!("sinkId"in new Audio)])>=2:o?fa(["onorientationchange"in f,"orientation"in f,/android/i.test(y.appVersion)])>=2:!1}function WE(){var m=navigator,o=window,f=Audio.prototype,y=o.visualViewport;return fa(["srLatency"in f,"srChannelCount"in f,"devicePosture"in m,y&&"segments"in y,"getTextInformation"in Image.prototype])>=3}function XE(){return JE()?-4:YE()}function YE(){var m=window,o=m.OfflineAudioContext||m.webkitOfflineAudioContext;if(!o)return-2;if(KE())return-1;var f=4500,y=5e3,M=new o(1,y,44100),z=M.createOscillator();z.type="triangle",z.frequency.value=1e4;var T=M.createDynamicsCompressor();T.threshold.value=-50,T.knee.value=40,T.ratio.value=12,T.attack.value=0,T.release.value=.25,z.connect(T),T.connect(M.destination),z.start(0);var s=QE(M),B=s[0],N=s[1],Y=$u(B.then(function(K){return e8(K.getChannelData(0).subarray(f))},function(K){if(K.name==="timeout"||K.name==="suspended")return-3;throw K}));return function(){return N(),Y}}function KE(){return ho()&&!Ym()&&!UE()}function JE(){return ho()&&Rh()&&Dh()||Lh()&&WE()&&ZE()}function QE(m){var o=3,f=500,y=500,M=5e3,z=function(){},T=new Promise(function(s,B){var N=!1,Y=0,K=0;m.oncomplete=function(me){return s(me.renderedBuffer)};var ie=function(){setTimeout(function(){return B(pv("timeout"))},Math.min(y,K+M-Date.now()))},H=function(){try{var me=m.startRendering();switch(E0(me)&&$u(me),m.state){case"running":K=Date.now(),N&&ie();break;case"suspended":document.hidden||Y++,N&&Y>=o?B(pv("suspended")):setTimeout(H,f);break}}catch(ve){B(ve)}};H(),z=function(){N||(N=!0,K>0&&ie())}});return[T,z]}function e8(m){for(var o=0,f=0;f=0?"+":"").concat(y)}function E8(){var m=new Date().getFullYear();return Math.max(so(new Date(m,0,1).getTimezoneOffset()),so(new Date(m,6,1).getTimezoneOffset()))}function z8(){try{return!!window.sessionStorage}catch{return!0}}function L8(){try{return!!window.localStorage}catch{return!0}}function D8(){if(!(L0()||VE()))try{return!!window.indexedDB}catch{return!0}}function R8(){return!!window.openDatabase}function B8(){return navigator.cpuClass}function F8(){var m=navigator.platform;return m==="MacIntel"&&ho()&&!Ym()?$E()?"iPad":"iPhone":m}function O8(){return navigator.vendor||""}function N8(){for(var m=[],o=0,f=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];oK.length*.6}),s.sort(),[2,s]}})})}function Z8(){return ho()||Km()}function U8(m){var o;return Io(this,void 0,void 0,function(){var f,y,M,z,B,T,s,B;return Mo(this,function(N){switch(N.label){case 0:for(f=document,y=f.createElement("div"),M=new Array(m.length),z={},mv(y),B=0;B')}function az(){return navigator.pdfViewerEnabled}function oz(){var m=new Float32Array(1),o=new Uint8Array(m.buffer);return m[0]=1/0,m[0]=m[0]-m[0],o[3]}function sz(){var m=window.ApplePaySession;if(typeof(m==null?void 0:m.canMakePayments)!="function")return-1;if(lz())return-3;try{return m.canMakePayments()?1:0}catch(o){return cz(o)}}var lz=n8;function cz(m){if(m instanceof Error&&m.name==="InvalidAccessError"&&/\bfrom\b.*\binsecure\b/i.test(m.message))return-2;throw m}function uz(){var m,o=document.createElement("a"),f=(m=o.attributionSourceId)!==null&&m!==void 0?m:o.attributionsourceid;return f===void 0?void 0:String(f)}var B0=-1,F0=-2,hz=new Set([10752,2849,2884,2885,2886,2928,2929,2930,2931,2932,2960,2961,2962,2963,2964,2965,2966,2967,2968,2978,3024,3042,3088,3089,3106,3107,32773,32777,32777,32823,32824,32936,32937,32938,32939,32968,32969,32970,32971,3317,33170,3333,3379,3386,33901,33902,34016,34024,34076,3408,3410,3411,3412,3413,3414,3415,34467,34816,34817,34818,34819,34877,34921,34930,35660,35661,35724,35738,35739,36003,36004,36005,36347,36348,36349,37440,37441,37443,7936,7937,7938]),dz=new Set([34047,35723,36063,34852,34853,34854,34229,36392,36795,38449]),pz=["FRAGMENT_SHADER","VERTEX_SHADER"],fz=["LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT"],O0="WEBGL_debug_renderer_info",mz="WEBGL_polygon_mode";function _z(m){var o,f,y,M,z,T,s=m.cache,B=N0(s);if(!B)return B0;if(!V0(B))return F0;var N=j0()?null:B.getExtension(O0);return{version:((o=B.getParameter(B.VERSION))===null||o===void 0?void 0:o.toString())||"",vendor:((f=B.getParameter(B.VENDOR))===null||f===void 0?void 0:f.toString())||"",vendorUnmasked:N?(y=B.getParameter(N.UNMASKED_VENDOR_WEBGL))===null||y===void 0?void 0:y.toString():"",renderer:((M=B.getParameter(B.RENDERER))===null||M===void 0?void 0:M.toString())||"",rendererUnmasked:N?(z=B.getParameter(N.UNMASKED_RENDERER_WEBGL))===null||z===void 0?void 0:z.toString():"",shadingLanguageVersion:((T=B.getParameter(B.SHADING_LANGUAGE_VERSION))===null||T===void 0?void 0:T.toString())||""}}function gz(m){var o=m.cache,f=N0(o);if(!f)return B0;if(!V0(f))return F0;var y=f.getSupportedExtensions(),M=f.getContextAttributes(),z=[],T=[],s=[],B=[],N=[];if(M)for(var Y=0,K=Object.keys(M);Y=.001))try{var m=new XMLHttpRequest;m.open("get","https://m1.openfpcdn.io/fingerprintjs/v".concat(A0,"/npm-monitoring"),!0),m.send()}catch(o){console.error(o)}}function Dz(m){var o;return m===void 0&&(m={}),Io(this,void 0,void 0,function(){var f,y,M;return Mo(this,function(z){switch(z.label){case 0:return(!((o=m.monitoring)!==null&&o!==void 0)||o)&&Lz(),f=m.delayFallback,y=m.debug,[4,Ez(f)];case 1:return z.sent(),M=Cz({cache:{},debug:y}),[2,zz(M,y)]}})})}var Rz={load:Dz,hashComponents:Z0,componentsToDebugString:q0};let Zf=null;async function Bz(){return Zf||(Zf=Rz.load()),Zf}async function Fz(){return(await(await Bz()).get()).visitorId}var Oz=Cr('');function Gu(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=Oz();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var Nz=Cr('');function wv(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=Nz();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var jz=Cr('');function U0(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=jz();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var Vz=Cr(''),qz=Cr('');function $0(m,o){let f=ir(o,["$$slots","$$events","$$legacy","filled"]);var y=er(),M=Ct(y);{var z=s=>{var B=Vz();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)},T=s=>{var B=qz();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)};je(M,s=>{o.filled?s(z):s(T,!1)})}G(m,y)}var Zz=Cr('');function Cm(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=Zz();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var Uz=Cr('');function G0(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=Uz();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var $z=Cr('');function Gz(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=$z();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var Hz=Cr('');function Wz(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=Hz();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var Xz=Te(" ",1),Yz=Te(" ",1),Kz=Te(" ",1),Jz=Te(' ',1),Qz=Te(" ",1),eL=Te(" ",1),tL=(m,o)=>ce(o,!x(o)),rL=(m,o)=>{ce(o,"colorpicker")},nL=(m,o)=>{o(!o())},iL=(m,o)=>{ce(o,"cleararea")},aL=Te('
                      C
                      '),oL=(m,o)=>{aa.smallPlop.play(),o()},sL=(m,o,f)=>{o(x(f).idx)},lL=Te(' ',1),cL=Te("
                      "),uL=(m,o)=>{ce(o,!x(o))},hL=(m,o)=>{ce(o,x(o)==="eraser"?"pencil":"eraser",!0)},dL=Te('

                      I
                      E
                      ',1);function pL(m,o){Br(o,!0);let f=Lt(o,"screenLocked",15),y=Lt(o,"opaquePixelArt",15);const M=ft(()=>new fl(o.tileSize));let z=ct(1),T=ct("pencil");const s=new Map,B=new Map;let N=ct(0),Y=ct(!1),K=ct(!0),ie=ft(()=>kt.charges??0),H=ft(()=>x(ie)-x(N)),me=ct(!1),ve=!1,Me=ct(!1),Ee=ct(xi([]));const Re=ft(()=>x(T)==="pencil"),ze=ft(()=>x(T)==="eraser"),Fe=ft(()=>x(T)==="colorpicker"),Ke=ft(()=>x(T)==="cleararea"),rt=ft(()=>{var _t,Ge;return xc((Ge=(_t=kt)==null?void 0:_t.data)==null?void 0:Ge.role,["admin","global_moderator"])});let qe=ct(!1),He=ct(0),et=ct(void 0),De=ct(void 0);const tt=[1,2,3,32,4,5,6,33,7,34,35,8,9,10,11,37,38,39,40,41,42,12,13,14,15,16,17,43,20,44,18,19,45,46,21,22,47,48,49,23,24,25,26,27,28,53,54,55,29,30,50,56,57,36,51,31,52,61,62,63,58,59,60,0].map(_t=>({...Hi.colors[_t],idx:_t})),nt=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,0].map(_t=>({...Hi.colors[_t],idx:_t}));let Ze=ct(!1);const ke=ft(()=>x(Ze)?tt:nt),bt="show-all-colors";Dn(()=>{ce(Ze,localStorage.getItem(bt)==="true")}),Wr(()=>{localStorage.setItem(bt,x(Ze)?"true":"false")});const te="selected-color";Dn(()=>{const _t=Number(localStorage.getItem(te));!isNaN(_t)&&_t0&&ce(z,_t,!0)}),Wr(()=>{localStorage.setItem(te,x(z).toString())});const re=new lE({map:o.map,tileSize:o.tileSize,tileZoom:o.tileZoom,beforeLayerId:o.hoverLayerId});Wr(()=>{const _t=y()?1:0;re.setCanvasOpacity(_t)}),Wr(()=>{y()?Gf():ut([...s.values()])});let ge=!1;Dn(()=>{Co(o.map.getCenter(),o.map.getZoom());const _t=o.map.on("click",dr=>{var tn;o.zoom=2)){const[Qr,ma]=x(Ee),[di,Xi]=x(M).latLonToPixelsFloor(Qr[0],Qr[1],o.tileZoom),[Zn,ni]=x(M).latLonToPixelsFloor(ma[0],ma[1],o.tileZoom),qi=Math.min(di,Zn),Yi=Math.max(di,Zn),Ei=Math.min(Xi,ni),zi=Math.max(Xi,ni),Ki=[];for(let oa=Ei;oa<=zi;oa++){const Ta=x(M).pixelsToLatLon(qi+.5,oa+.5,o.tileZoom),xt=x(M).pixelsToLatLon(Yi+.5,oa+.5,o.tileZoom),Wt=Ge({lat:Ta[0],lng:Ta[1]},{lat:xt[0],lng:xt[1]}).slice(0,x(H)-Ki.length);if(Ki.push(...Wt),Ki.length>=x(H))break}Ae(Ki,0),ce(Ee,[],!0),ce(T,"pencil")}ce(me,!0)});function Ge(dr,In){const tn=x(M).latLonToPixels(dr.lat,dr.lng,o.tileZoom),Qr=In?x(M).latLonToPixels(In.lat,In.lng,o.tileZoom):tn;return Lx(tn,Qr).map(di=>x(M).pixelsToLatLon(di[0]+.5,di[1]+.5,o.tileZoom))}function At(dr,In){const tn=Ge(dr,In);x(Re)?Ae(tn,x(z)):x(ze)&&Ne(tn),ce(me,!0)}let Rt;function Yt(dr){const In=o.map.unproject([dr.clientX,dr.clientY]);if(x(Me)){const tn=Ge(In,Rt);Ne(tn)}(ge||ve)&&At(In,Rt),Rt=In}window.addEventListener("mousemove",Yt);let br=!1;const Er=o.map.on("touchstart",dr=>{if(dr.points.length==2){f(!1),dt(),br=!0,setTimeout(()=>br=!1,150);return}f()&&setTimeout(()=>{!br&&At(dr.lngLat)},150),Rt=dr.lngLat}),ur=o.map.on("touchmove",dr=>{f()&&At(dr.lngLat,Rt),Rt=dr.lngLat}),rn=dr=>{dr.code==="Space"&&(ge||Rt&&At(Rt),ge=!0,dr.preventDefault())};document.addEventListener("keydown",rn);const pn=dr=>{dr.code==="Space"&&(ge=!1,oe=!1,x(N)===0&&x(ze)&&ce(T,"pencil"))};document.addEventListener("keyup",pn);function _n(dr){if(dr.button===2){ce(Me,!0);const tn=o.map.unproject([dr.clientX,dr.clientY]);Ne([[tn.lat,tn.lng]])}}document.addEventListener("mousedown",_n);function sn(dr){dr.button===2&&ce(Me,!1)}document.addEventListener("mouseup",sn);const En=dr=>{switch(dr.code){case"KeyE":x(N)>0&&(x(ze)?ce(T,"pencil"):ce(T,"eraser"));return;case"KeyI":ce(T,"colorpicker");return;case"KeyC":x(rt)&&ce(T,"cleararea");return}};return document.addEventListener("keypress",En),()=>{ur.unsubscribe(),Er.unsubscribe(),_t.unsubscribe(),document.removeEventListener("mousemove",Yt),document.removeEventListener("keydown",rn),document.removeEventListener("keyup",pn),document.removeEventListener("keypress",En),document.removeEventListener("mousedown",_n),document.removeEventListener("mouseup",sn),St()}});let oe=!1;function Ae(_t,Ge){let At=!1;const Rt=Ge===0;for(let Yt of _t){const[br,Er]=Yt,ur=kx(Ge),{tile:rn,pixel:pn}=x(M).latLonToTileAndPixel(br,Er,o.tileZoom),_n={color:ur,tile:rn,pixel:pn,season:o.season,colorIdx:Ge},sn=Lf(_n),En=s.get(sn),dr=x(ie)-s.size;if(!En&&dr<1){if(oe&&(ge||f()))continue;oe=!0,Nr.info(XC());continue}En&&En.colorIdx===Ge||(aa.plop.play(),At||o.hidePixelHover(),s.set(sn,_n),re.place(Yt,Ge),o.crosshair.place(Yt),At=!0,Rt&&B.set(sn,_n))}ce(N,s.size,!0),At&&!y()?ut([...s.values()]):At&&y()&&Rt&&ut([...B.values()])}function Ne(_t){let Ge=!1,At=!1;for(let Rt of _t){const[Yt,br]=Rt,{tile:Er,pixel:ur}=x(M).latLonToTileAndPixel(Yt,br,o.tileZoom),rn=Lf({tile:Er,pixel:ur,season:o.season}),pn=s.get(rn);pn&&(aa.plop.play(),o.hidePixelHover(),s.delete(rn),B.delete(rn),re.remove([Yt,br]),o.crosshair.remove(Rt),Ge=!0,pn.colorIdx===0&&(At=!0)),s.size===0&&!(ge||ve||f())&&ce(T,"pencil")}ce(N,s.size,!0),Ge&&!y()?ut([...s.values()]):Ge&&y()&&At&&ut([...B.values()])}function pt(_t,Ge){const{tile:At,pixel:Rt}=x(M).latLonToTileAndPixel(_t[0],_t[1],o.tileZoom),Yt=Lf({tile:At,pixel:Rt,season:o.season}),br=s.get(Yt);if(br){vt(br.colorIdx),requestAnimationFrame(()=>{var pn;(pn=document.getElementById(`color-${br.colorIdx}`))==null||pn.focus()});return}const Er=window.devicePixelRatio,ur=Math.floor(Ge.x*Er),rn=Math.floor(Ge.y*Er);o.hidePixelHover(),fM(o.map,ur,rn).then(([pn,_n,sn])=>{const En=Ax({r:pn,g:_n,b:sn});vt(En),requestAnimationFrame(()=>{var dr;(dr=document.getElementById(`color-${En}`))==null||dr.focus()})})}dl(()=>x(z),()=>{o.clickedLatLon&&!x(me)&&(x(z)===void 0&&ce(z,1),Ae([o.clickedLatLon],x(z)))}),Wr(()=>{const _t=x(K)?.8:0;o.crosshair.setCanvasOpacity(_t)});let ot=ct(16.5);Wr(()=>{if(x(et)&&x(De)&&o.clickedLatLon){const _t=o.map.getZoom();if(_t11?[0,-Er]:[0,0]})}ce(ot,o.tileZoom,!0)}}),Dn(()=>{const _t=()=>{!document.hidden&&(console.log("Tab visible again"),y()?ut([...B.values()]):ut([...s.values()]))};return document.addEventListener("visibilitychange",_t),()=>document.removeEventListener("visibilitychange",_t)}),Wr(()=>{switch(x(T)){case"pencil":o.map.getCanvas().style.cursor=`url('${oE}') 8 8, default`,o.map.setPaintProperty(o.hoverLayerId,"raster-opacity",.4);return;case"colorpicker":o.map.getCanvas().style.cursor=`url('${iE}') 0 16, default`,o.map.setPaintProperty(o.hoverLayerId,"raster-opacity",0);return;case"eraser":o.map.getCanvas().style.cursor=`url('${aE}') 2 14, default`,o.map.setPaintProperty(o.hoverLayerId,"raster-opacity",.4);return}}),Wr(()=>{f()?at():dt()});async function ut(_t){await mx(_t),o.refreshPixelArt()}async function St(){await Gf(),re.clear(),o.refreshPixelArt(),o.crosshair.clear()}async function Bt(){await St(),dt(),o.map.getCanvas().style.cursor="default",o.map.setPaintProperty(o.hoverLayerId,"raster-opacity",.4),o.onclose()}function at(){o.map.dragPan.disable(),o.map.touchZoomRotate.disable(),document.body.style.overscrollBehavior="none"}function dt(){o.map.dragPan.enable(),o.map.touchZoomRotate.enable(),document.body.style.overscrollBehavior=""}function vt(_t){return _t>=32&&ce(Ze,!0),kt.hasColor(_t)?(aa.smallDropplet.play(),ce(z,_t,!0),ce(T,"pencil"),!0):(aa.smallDropplet.play(),ce(qe,!0),ce(He,_t,!0),!1)}nx(_t=>{_t.type==="leave"&&x(N)>0&&_t.cancel()});const yt="show-paint-more-than-one-pixel-msg";let It=ct(!1);Dn(()=>{var _t;ce(It,!localStorage.getItem(yt)&&(((_t=kt.data)==null?void 0:_t.pixelsPainted)??0)<100,!0)}),Wr(()=>{x(N)>1&&(ce(It,!1),localStorage.setItem(yt,"false"))});const wt="lp";Dn(()=>{var Ge;const _t=localStorage.getItem(wt);if(_t)try{const At=JSON.parse(atob(_t)),Rt=(At==null?void 0:At.time)??0,Yt=60*1e3;(At==null?void 0:At.userId)!==((Ge=kt.data)==null?void 0:Ge.id)&&Date.now()-Rt<30*Yt&&!Wx&&(Nr.error(JC()),Bt())}catch(At){console.error(At)}});function mt(){var Ge;const _t=btoa(JSON.stringify({userId:(Ge=kt.data)==null?void 0:Ge.id,time:Date.now()}));localStorage.setItem(wt,_t)}var Dt=dL(),zt=Ct(Dt),qt=E(zt);{var tr=_t=>{al(_t,{children:(Ge,At)=>{var Rt=Xz(),Yt=Ct(Rt);U0(Yt,{class:"inline size-5"});var br=q(Yt);Ye(Er=>fe(br,` ${Er??""}`),[()=>I5()]),G(Ge,Rt)},$$slots:{default:!0}})},Qt=_t=>{var Ge=er(),At=Ct(Ge);{var Rt=br=>{al(br,{class:"not-touchscreen:hidden",children:(Er,ur)=>{var rn=Yz(),pn=Ct(rn);Hg(pn,{class:"inline size-5"});var _n=q(pn);Ye(sn=>fe(_n,` ${sn??""}`),[()=>A5()]),G(Er,rn)},$$slots:{default:!0}})},Yt=br=>{var Er=er(),ur=Ct(Er);{var rn=_n=>{al(_n,{class:"not-touchscreen:hidden",children:(sn,En)=>{var dr=Kz(),In=Ct(dr);wv(In,{class:"inline size-5"});var tn=q(In,1,!0);Ye(Qr=>fe(tn,Qr),[()=>L5()]),G(sn,dr)},$$slots:{default:!0}})},pn=_n=>{var sn=er(),En=Ct(sn);{var dr=tn=>{al(tn,{class:"touchscreen:hidden",children:(Qr,ma)=>{var di=Jz(),Xi=Ct(di);G0(Xi,{class:"inline size-5"});var Zn=q(Xi),ni=E(Zn,!0);k(Zn);var qi=q(Zn,2),Yi=E(qi),Ei=q(Yi),zi=E(Ei,!0);k(Ei),k(qi);var Ki=q(qi);Ye((oa,Ta,xt,Wt)=>{fe(ni,oa),fe(Yi,`${Ta??""} `),fe(zi,xt),fe(Ki,` ${Wt??""}`)},[()=>B5(),()=>q5(),()=>N5(),()=>$5()]),G(Qr,di)},$$slots:{default:!0}})},In=tn=>{var Qr=er(),ma=Ct(Qr);{var di=Zn=>{al(Zn,{class:"bg-warning text-warning-content animate-bounce",children:(ni,qi)=>{var Yi=Qz(),Ei=Ct(Yi);Eh(Ei,{class:"inline size-5"});var zi=q(Ei);Ye(Ki=>fe(zi,` ${Ki??""}`),[()=>W5()]),G(ni,Yi)},$$slots:{default:!0}})},Xi=Zn=>{var ni=er(),qi=Ct(ni);{var Yi=Ei=>{al(Ei,{class:"bg-warning text-warning-content animate-bounce",children:(zi,Ki)=>{var oa=eL(),Ta=Ct(oa);Gu(Ta,{class:"inline size-5"});var xt=q(Ta,2);{var Wt=yn=>{var On=bi();Ye(Xn=>fe(On,Xn),[()=>Jv()]),G(yn,On)},Rr=yn=>{var On=er(),Xn=Ct(On);{var Vn=wn=>{var Ji=bi();Ye(sr=>fe(Ji,sr),[()=>Qv()]),G(wn,Ji)};je(Xn,wn=>{x(Ee).length===1&&wn(Vn)},!0)}G(yn,On)};je(xt,yn=>{x(Ee).length===0?yn(Wt):yn(Rr,!1)})}G(zi,oa)},$$slots:{default:!0}})};je(qi,Ei=>{x(Ke)&&Ei(Yi)},!0)}G(Zn,ni)};je(ma,Zn=>{x(It)?Zn(di):Zn(Xi,!1)},!0)}G(tn,Qr)};je(En,tn=>{x(Re)&&x(N)===0?tn(dr):tn(In,!1)},!0)}G(_n,sn)};je(ur,_n=>{x(Fe)?_n(rn):_n(pn,!1)},!0)}G(br,Er)};je(At,br=>{x(ze)?br(Rt):br(Yt,!1)},!0)}G(_t,Ge)};je(qt,_t=>{x(ze)&&x(N)===0?_t(tr):_t(Qt,!1)})}var Ot=q(qt,2),fr=E(Ot);fr.__click=[tL,K];var kr=E(fr);{var Ar=_t=>{hE(_t,{class:"size-4"})},rr=_t=>{pE(_t,{class:"size-4"})};je(kr,_t=>{x(K)?_t(Ar):_t(rr,!1)})}k(fr);var Kt=q(fr,2),or=E(Kt),Sr=E(or),Dr=q(Sr);I0(Dr,{class:"inline",fontSize:14,get value(){return`(${x(N)??""})`},mono:!0}),k(or);var Zr=q(or,2),se=E(Zr),j=E(se);vn(),k(se);var Z=q(se,2);Z.__click=[rL,T];var X=E(Z);wv(X,{class:"size-4.5"}),k(Z),k(Zr);var ae=q(Zr,2),de=E(ae);let Se;de.__click=[nL,y];var Ie=E(de);{let _t=ft(()=>!y());$0(Ie,{class:"size-4.5",get filled(){return x(_t)}})}k(de),k(ae);var be=q(ae,2);{var Oe=_t=>{var Ge=aL(),At=E(Ge),Rt=E(At);vn(),k(At);var Yt=q(At,2);Yt.__click=[iL,T];var br=E(Yt);Gu(br,{class:"size-4.5"}),k(Yt),k(Ge),Ye(Er=>{fe(Rt,`${Er??""} `),zr(Yt,1,Ko({"btn btn-circle btn-sm":!0,"btn-ghost":!x(Ke),"btn-primary":x(Ke)}))},[()=>KP()]),G(_t,Ge)};je(be,_t=>{x(rt)&&_t(Oe)})}k(Kt);var st=q(Kt,2);st.__click=[oL,Bt];var $e=E(st);_l($e,{class:"size-4"}),k(st),k(Ot);var Mt=q(Ot,2),xe=E(Mt);hi(xe,23,()=>x(ke),_t=>_t.idx,(_t,Ge,At)=>{const Rt=ft(()=>{const[sn,En,dr]=x(Ge).rgb;return{r:sn,g:En,b:dr}}),Yt=ft(()=>x(z)===x(Ge).idx&&x(Re)),br=ft(()=>x(Ge).idx===0),Er=ft(()=>kt.hasColor(x(Ge).idx));var ur=cL(),rn=E(ur);rn.__click=[sL,vt,Ge];var pn=E(rn);{var _n=sn=>{var En=lL(),dr=Ct(En);Cm(dr,{class:"center-absolute absolute size-4 opacity-30 sm:hidden sm:size-6"});var In=q(dr,2),tn=E(In);Cm(tn,{class:"text-base-content/80 size-4"}),k(In),G(sn,En)};je(pn,sn=>{x(Er)||sn(_n)})}k(rn),k(ur),Ye(()=>{zr(ur,1,Ko({tooltip:!0,"max-sm:h-6":x(Ze),"max-sm:before:translate-x-1/4":x(At)%8===0&&x(Ge).name.length>7,"max-sm:before:-translate-x-1/4":(x(At)-7)%8===0&&x(Ge).name.length>7,"max-xl:before:translate-x-1/4":x(At)%16===0&&x(Ge).name.length>7,"max-xl:before:-translate-x-1/4":(x(At)-15)%16===0&&x(Ge).name.length>7,"xl:before:translate-x-1/4":x(Ze)&&x(At)%32===0&&x(Ge).name.length>7,"xl:before:-translate-x-1/4":x(Ze)&&(x(At)-31)%32===0&&x(Ge).name.length>7})),xr(ur,"data-tip",x(Ge).name),zr(rn,1,Ko({"btn relative aspect-square w-full rounded-xl":!0,"border-primary ring-primary ring-2":x(Yt),"border-base-300":!x(Yt)&&x(br),"border-base-content/20":!x(Yt)&&!x(br),"max-sm:h-6 max-sm:rounded-md":x(Ze)})),kc(rn,x(br)?`background-image: url(${sE}); background-size: cover; image-rendering: pixelated;`:`background: rgb(${x(Rt).r} ${x(Rt).g} ${x(Rt).b})`),xr(rn,"aria-label",x(Ge).name),xr(rn,"id",`color-${x(Ge).idx??""}`)}),Ai("focus",rn,()=>{x(Er)&&(ce(z,x(Ge).idx,!0),ce(T,"pencil"))}),G(_t,ur)}),k(xe),k(Mt);var Ft=q(Mt,2),cr=E(Ft);cr.__click=[uL,Ze];var Jt=E(cr);{var Tr=_t=>{Gz(_t,{class:"size-5"})},Xr=_t=>{Wz(_t,{class:"size-5"})};je(Jt,_t=>{x(Ze)?_t(Tr):_t(Xr,!1)})}k(cr);var dn=q(cr,2),xn=E(dn);{let _t=ft(()=>x(N)>100?"animate-pulse":""),Ge=ft(()=>x(N)===0||x(Y)||x(H)<0||!ai.captcha),At=ft(()=>x(Y)||!ai.captcha);M0(xn,{get class(){return x(_t)},get charges(){return x(H)},get disabled(){return x(Ge)},get loading(){return x(At)},onclick:async()=>{var br;const Rt=(br=ai.captcha)==null?void 0:br.token;if(!Rt)return;aa.droppletAndPlop.play();const Yt=[...s.values()];ce(Y,!0);try{const Er=await Fz();await en.paint(Yt,Rt,Er),await _x(Yt),mt(),kt.refresh(),Xd.shouldReload=!0,await Bt()}catch(Er){Nr.error(`${Er.message}`,{duration:7e3})}finally{ce(Y,!1),ai.captcha=void 0}}})}k(dn);var mn=q(dn,2),jt=E(mn),Et=E(jt),hr=E(Et);vn(),k(Et);var ht=q(Et,2);let Hr;ht.__click=[hL,T];var Yr=E(ht);Hg(Yr,{class:"size-5",get filled(){return x(ze)}}),k(ht),k(jt),k(mn),k(Ft),k(zt),Po(zt,_t=>ce(De,_t),()=>x(De));var qr=q(zt,2);CE(qr,{get colorIdx(){return x(He)},get open(){return x(qe)},set open(_t){ce(qe,_t,!0)}}),Ye((_t,Ge,At,Rt,Yt,br)=>{fe(Sr,`${_t??""} `),fe(j,`${Ge??""} `),zr(Z,1,Ko({"btn btn-circle btn-sm":!0,"btn-ghost":!x(Fe),"btn-primary":x(Fe)})),xr(ae,"data-tip",At),Se=zr(de,1,"btn btn-sm btn-circle btn-ghost text-base-content/80",null,Se,Rt),zr(xe,1,Ko({"md:grid-cols-16 min-[100rem]:grid-cols-32 grid grid-cols-8":!0,"xl:grid-cols-32 sm:grid-cols-16 gap-0.5 sm:gap-1":x(Ze),"gap-1":!x(Ze)})),fe(hr,`${Yt??""} `),Hr=zr(ht,1,"btn btn-lg btn-square sm:btn-xl shadow-md",null,Hr,br),ht.disabled=x(N)===0},[()=>K5(),()=>e3(),()=>Uv(),()=>({"text-primary":!y()}),()=>Dx(),()=>({"btn-primary":x(ze)})]),fp("innerHeight",_t=>ce(et,_t,!0)),G(m,Dt),Fr()}Qn(["click"]);function Jm(...m){return Lv(Ou(m))}var fL=Te("
                      ");function mL(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=ir(o,["$$slots","$$events","$$legacy","ref","class","children"]);var M=fL();ar(M,T=>({class:T,...y}),[()=>Jm("flex items-center",o.class)]);var z=E(M);oi(z,()=>o.children??pa),k(M),Po(M,T=>f(T),()=>f()),G(m,M),Fr()}var _L=Te('
                      '),gL=Te(" ",1);function vL(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=ir(o,["$$slots","$$events","$$legacy","ref","cell","class"]);var M=er(),z=Ct(M);{let T=ft(()=>Jm("border-input relative flex size-12 items-center justify-center border-y border-r text-xl transition-all first:rounded-l-md first:border-l last:rounded-r-md",o.cell.isActive&&"ring-base-content/40 z-10 ring-2",o.class));yi(z,()=>Qk,(s,B)=>{B(s,Ps({get cell(){return o.cell},get class(){return x(T)}},()=>y,{get ref(){return f()},set ref(N){f(N)},children:(N,Y)=>{vn();var K=gL(),ie=Ct(K),H=q(ie);{var me=ve=>{var Me=_L();G(ve,Me)};je(H,ve=>{o.cell.hasFakeCaret&&ve(me)})}Ye(()=>fe(ie,`${o.cell.char??""} `)),G(N,K)},$$slots:{default:!0}}))})}G(m,M),Fr()}function yL(m,o){Br(o,!0);let f=Lt(o,"ref",15,null),y=Lt(o,"value",15,""),M=ir(o,["$$slots","$$events","$$legacy","ref","class","value"]);var z=er(),T=Ct(z);{let s=ft(()=>Jm("flex items-center gap-2 has-[:disabled]:opacity-50 [&_input]:disabled:cursor-not-allowed",o.class));yi(T,()=>Kk,(B,N)=>{N(B,Ps({get class(){return x(s)}},()=>M,{get ref(){return f()},set ref(Y){f(Y)},get value(){return y()},set value(Y){y(Y)}}))})}G(m,z),Fr()}var Uf={exports:{}},Tv;function xL(){return Tv||(Tv=1,(function(m){(function(o){m.exports?m.exports=o():window.intlTelInput=o()})(()=>{var o=(()=>{var f=Object.defineProperty,y=Object.getOwnPropertyDescriptor,M=Object.getOwnPropertyNames,z=Object.prototype.hasOwnProperty,T=(te,re)=>{for(var ge in re)f(te,ge,{get:re[ge],enumerable:!0})},s=(te,re,ge,oe)=>{if(re&&typeof re=="object"||typeof re=="function")for(let Ae of M(re))!z.call(te,Ae)&&Ae!==ge&&f(te,Ae,{get:()=>re[Ae],enumerable:!(oe=y(re,Ae))||oe.enumerable});return te},B=te=>s(f({},"__esModule",{value:!0}),te),N={};T(N,{Iti:()=>nt,default:()=>bt});var Y=[["af","93"],["ax","358",1],["al","355"],["dz","213"],["as","1",5,["684"]],["ad","376"],["ao","244"],["ai","1",6,["264"]],["ag","1",7,["268"]],["ar","54"],["am","374"],["aw","297"],["ac","247"],["au","61",0,null,"0"],["at","43"],["az","994"],["bs","1",8,["242"]],["bh","973"],["bd","880"],["bb","1",9,["246"]],["by","375"],["be","32"],["bz","501"],["bj","229"],["bm","1",10,["441"]],["bt","975"],["bo","591"],["ba","387"],["bw","267"],["br","55"],["io","246"],["vg","1",11,["284"]],["bn","673"],["bg","359"],["bf","226"],["bi","257"],["kh","855"],["cm","237"],["ca","1",1,["204","226","236","249","250","263","289","306","343","354","365","367","368","382","387","403","416","418","428","431","437","438","450","584","468","474","506","514","519","548","579","581","584","587","604","613","639","647","672","683","705","709","742","753","778","780","782","807","819","825","867","873","879","902","905"]],["cv","238"],["bq","599",1,["3","4","7"]],["ky","1",12,["345"]],["cf","236"],["td","235"],["cl","56"],["cn","86"],["cx","61",2,["89164"],"0"],["cc","61",1,["89162"],"0"],["co","57"],["km","269"],["cg","242"],["cd","243"],["ck","682"],["cr","506"],["ci","225"],["hr","385"],["cu","53"],["cw","599",0],["cy","357"],["cz","420"],["dk","45"],["dj","253"],["dm","1",13,["767"]],["do","1",2,["809","829","849"]],["ec","593"],["eg","20"],["sv","503"],["gq","240"],["er","291"],["ee","372"],["sz","268"],["et","251"],["fk","500"],["fo","298"],["fj","679"],["fi","358",0],["fr","33"],["gf","594"],["pf","689"],["ga","241"],["gm","220"],["ge","995"],["de","49"],["gh","233"],["gi","350"],["gr","30"],["gl","299"],["gd","1",14,["473"]],["gp","590",0],["gu","1",15,["671"]],["gt","502"],["gg","44",1,["1481","7781","7839","7911"],"0"],["gn","224"],["gw","245"],["gy","592"],["ht","509"],["hn","504"],["hk","852"],["hu","36"],["is","354"],["in","91"],["id","62"],["ir","98"],["iq","964"],["ie","353"],["im","44",2,["1624","74576","7524","7924","7624"],"0"],["il","972"],["it","39",0],["jm","1",4,["876","658"]],["jp","81"],["je","44",3,["1534","7509","7700","7797","7829","7937"],"0"],["jo","962"],["kz","7",1,["33","7"],"8"],["ke","254"],["ki","686"],["xk","383"],["kw","965"],["kg","996"],["la","856"],["lv","371"],["lb","961"],["ls","266"],["lr","231"],["ly","218"],["li","423"],["lt","370"],["lu","352"],["mo","853"],["mg","261"],["mw","265"],["my","60"],["mv","960"],["ml","223"],["mt","356"],["mh","692"],["mq","596"],["mr","222"],["mu","230"],["yt","262",1,["269","639"],"0"],["mx","52"],["fm","691"],["md","373"],["mc","377"],["mn","976"],["me","382"],["ms","1",16,["664"]],["ma","212",0,null,"0"],["mz","258"],["mm","95"],["na","264"],["nr","674"],["np","977"],["nl","31"],["nc","687"],["nz","64"],["ni","505"],["ne","227"],["ng","234"],["nu","683"],["nf","672"],["kp","850"],["mk","389"],["mp","1",17,["670"]],["no","47",0],["om","968"],["pk","92"],["pw","680"],["ps","970"],["pa","507"],["pg","675"],["py","595"],["pe","51"],["ph","63"],["pl","48"],["pt","351"],["pr","1",3,["787","939"]],["qa","974"],["re","262",0,null,"0"],["ro","40"],["ru","7",0,null,"8"],["rw","250"],["ws","685"],["sm","378"],["st","239"],["sa","966"],["sn","221"],["rs","381"],["sc","248"],["sl","232"],["sg","65"],["sx","1",21,["721"]],["sk","421"],["si","386"],["sb","677"],["so","252"],["za","27"],["kr","82"],["ss","211"],["es","34"],["lk","94"],["bl","590",1],["sh","290"],["kn","1",18,["869"]],["lc","1",19,["758"]],["mf","590",2],["pm","508"],["vc","1",20,["784"]],["sd","249"],["sr","597"],["sj","47",1,["79"]],["se","46"],["ch","41"],["sy","963"],["tw","886"],["tj","992"],["tz","255"],["th","66"],["tl","670"],["tg","228"],["tk","690"],["to","676"],["tt","1",22,["868"]],["tn","216"],["tr","90"],["tm","993"],["tc","1",23,["649"]],["tv","688"],["ug","256"],["ua","380"],["ae","971"],["gb","44",0,null,"0"],["us","1",0],["uy","598"],["vi","1",24,["340"]],["uz","998"],["vu","678"],["va","39",1,["06698"]],["ve","58"],["vn","84"],["wf","681"],["eh","212",1,["5288","5289"],"0"],["ye","967"],["zm","260"],["zw","263"]],K=[];for(let te=0;tete.replace(/\D/g,""),qe=(te="")=>te.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase(),He=te=>{const re=rt(te);if(re.charAt(0)==="1"){const ge=re.substr(1,3);return Ke.includes(ge)}return!1},et=(te,re,ge,oe)=>{if(ge===0&&!oe)return 0;let Ae=0;for(let Ne=0;Ne{const oe=document.createElement(te);return re&&Object.entries(re).forEach(([Ae,Ne])=>oe.setAttribute(Ae,Ne)),ge&&ge.appendChild(oe),oe},tt=(te,...re)=>{const{instances:ge}=ke;Object.values(ge).forEach(oe=>oe[te](...re))},nt=class{constructor(te,re={}){this.id=ze++,this.telInput=te,this.highlightedItem=null,this.options=Object.assign({},Fe,re),this.hadInitialPlaceholder=!!te.getAttribute("placeholder")}_init(){this.options.useFullscreenPopup&&(this.options.fixDropdownWidth=!1),this.options.onlyCountries.length===1&&(this.options.initialCountry=this.options.onlyCountries[0]),this.options.separateDialCode&&(this.options.nationalMode=!1),this.options.allowDropdown&&!this.options.showFlags&&!this.options.separateDialCode&&(this.options.nationalMode=!1),this.options.useFullscreenPopup&&!this.options.dropdownContainer&&(this.options.dropdownContainer=document.body),this.isAndroid=typeof navigator<"u"?/Android/i.test(navigator.userAgent):!1,this.isRTL=!!this.telInput.closest("[dir=rtl]");const te=this.options.allowDropdown||this.options.separateDialCode;this.showSelectedCountryOnLeft=this.isRTL?!te:te,this.options.separateDialCode&&(this.isRTL?this.originalPaddingRight=this.telInput.style.paddingRight:this.originalPaddingLeft=this.telInput.style.paddingLeft),this.options.i18n={...Re,...this.options.i18n};const re=new Promise((oe,Ae)=>{this.resolveAutoCountryPromise=oe,this.rejectAutoCountryPromise=Ae}),ge=new Promise((oe,Ae)=>{this.resolveUtilsScriptPromise=oe,this.rejectUtilsScriptPromise=Ae});this.promise=Promise.all([re,ge]),this.selectedCountryData={},this._processCountryData(),this._generateMarkup(),this._setInitialState(),this._initListeners(),this._initRequests()}_processCountryData(){this._processAllCountries(),this._processDialCodes(),this._translateCountryNames(),this._sortCountries()}_sortCountries(){this.options.countryOrder&&(this.options.countryOrder=this.options.countryOrder.map(te=>te.toLowerCase())),this.countries.sort((te,re)=>{const{countryOrder:ge}=this.options;if(ge){const oe=ge.indexOf(te.iso2),Ae=ge.indexOf(re.iso2),Ne=oe>-1,pt=Ae>-1;if(Ne||pt)return Ne&&pt?oe-Ae:Ne?-1:1}return te.name.localeCompare(re.name)})}_addToDialCodeMap(te,re,ge){re.length>this.dialCodeMaxLen&&(this.dialCodeMaxLen=re.length),this.dialCodeToIso2Map.hasOwnProperty(re)||(this.dialCodeToIso2Map[re]=[]);for(let Ae=0;Aeoe.toLowerCase());this.countries=ie.filter(oe=>ge.includes(oe.iso2))}else if(re.length){const ge=re.map(oe=>oe.toLowerCase());this.countries=ie.filter(oe=>!ge.includes(oe.iso2))}else this.countries=ie}_translateCountryNames(){for(let te=0;te`),Ae+=`${re.name}`,Ae+=`+${re.dialCode}`,oe.insertAdjacentHTML("beforeend",Ae)}}_setInitialState(te=!1){const re=this.telInput.getAttribute("value"),ge=this.telInput.value,Ae=re&&re.charAt(0)==="+"&&(!ge||ge.charAt(0)!=="+")?re:ge,Ne=this._getDialCode(Ae),pt=He(Ae),{initialCountry:ot,geoIpLookup:ut}=this.options,St=ot==="auto"&&ut;if(Ne&&!pt)this._updateCountryFromNumber(Ae);else if(!St||te){const Bt=ot?ot.toLowerCase():"";Bt&&this._getCountryData(Bt,!0)?this._setCountry(Bt):Ne&&pt?this._setCountry("us"):this._setCountry()}Ae&&this._updateValFromNumber(Ae)}_initListeners(){this._initTelInputListeners(),this.options.allowDropdown&&this._initDropdownListeners(),(this.hiddenInput||this.hiddenInputCountry)&&this.telInput.form&&this._initHiddenInputListener()}_initHiddenInputListener(){var te;this._handleHiddenInputSubmit=()=>{this.hiddenInput&&(this.hiddenInput.value=this.getNumber()),this.hiddenInputCountry&&(this.hiddenInputCountry.value=this.getSelectedCountryData().iso2||"")},(te=this.telInput.form)==null||te.addEventListener("submit",this._handleHiddenInputSubmit)}_initDropdownListeners(){this._handleLabelClick=re=>{this.dropdownContent.classList.contains("iti__hide")?this.telInput.focus():re.preventDefault()};const te=this.telInput.closest("label");te&&te.addEventListener("click",this._handleLabelClick),this._handleClickSelectedCountry=()=>{this.dropdownContent.classList.contains("iti__hide")&&!this.telInput.disabled&&!this.telInput.readOnly&&this._openDropdown()},this.selectedCountry.addEventListener("click",this._handleClickSelectedCountry),this._handleCountryContainerKeydown=re=>{this.dropdownContent.classList.contains("iti__hide")&&["ArrowUp","ArrowDown"," ","Enter"].includes(re.key)&&(re.preventDefault(),re.stopPropagation(),this._openDropdown()),re.key==="Tab"&&this._closeDropdown()},this.countryContainer.addEventListener("keydown",this._handleCountryContainerKeydown)}_initRequests(){let{loadUtils:te,initialCountry:re,geoIpLookup:ge}=this.options;te&&!ke.utils?(this._handlePageLoad=()=>{var Ae;window.removeEventListener("load",this._handlePageLoad),(Ae=ke.attachUtils(te))==null||Ae.catch(()=>{})},ke.documentReady()?this._handlePageLoad():window.addEventListener("load",this._handlePageLoad)):this.resolveUtilsScriptPromise(),re==="auto"&&ge&&!this.selectedCountryData.iso2?this._loadAutoCountry():this.resolveAutoCountryPromise()}_loadAutoCountry(){ke.autoCountry?this.handleAutoCountry():ke.startedLoadingAutoCountry||(ke.startedLoadingAutoCountry=!0,typeof this.options.geoIpLookup=="function"&&this.options.geoIpLookup((te="")=>{const re=te.toLowerCase();re&&this._getCountryData(re,!0)?(ke.autoCountry=re,setTimeout(()=>tt("handleAutoCountry"))):(this._setInitialState(!0),tt("rejectAutoCountryPromise"))},()=>{this._setInitialState(!0),tt("rejectAutoCountryPromise")}))}_openDropdownWithPlus(){this._openDropdown(),this.searchInput.value="+",this._filterCountries("",!0)}_initTelInputListeners(){const{strictMode:te,formatAsYouType:re,separateDialCode:ge,formatOnDisplay:oe,allowDropdown:Ae,countrySearch:Ne}=this.options;let pt=!1;new RegExp("\\p{L}","u").test(this.telInput.value)&&(pt=!0),this._handleInputEvent=ot=>{if(this.isAndroid&&(ot==null?void 0:ot.data)==="+"&&ge&&Ae&&Ne){const at=this.telInput.selectionStart||0,dt=this.telInput.value.substring(0,at-1),vt=this.telInput.value.substring(at);this.telInput.value=dt+vt,this._openDropdownWithPlus();return}this._updateCountryFromNumber(this.telInput.value)&&this._triggerCountryChange();const ut=(ot==null?void 0:ot.data)&&/[^+0-9]/.test(ot.data),St=(ot==null?void 0:ot.inputType)==="insertFromPaste"&&this.telInput.value;ut||St&&!te?pt=!0:/[^+0-9]/.test(this.telInput.value)||(pt=!1);const Bt=(ot==null?void 0:ot.detail)&&ot.detail.isSetNumber&&!oe;if(re&&!pt&&!Bt){const at=this.telInput.selectionStart||0,vt=this.telInput.value.substring(0,at).replace(/[^+0-9]/g,"").length,yt=(ot==null?void 0:ot.inputType)==="deleteContentForward",It=this._formatNumberAsYouType(),wt=et(vt,It,at,yt);this.telInput.value=It,this.telInput.setSelectionRange(wt,wt)}},this.telInput.addEventListener("input",this._handleInputEvent),(te||ge)&&(this._handleKeydownEvent=ot=>{if(ot.key&&ot.key.length===1&&!ot.altKey&&!ot.ctrlKey&&!ot.metaKey){if(ge&&Ae&&Ne&&ot.key==="+"){ot.preventDefault(),this._openDropdownWithPlus();return}if(te){const ut=this.telInput.value,St=ut.charAt(0)==="+",Bt=!St&&this.telInput.selectionStart===0&&ot.key==="+",at=/^[0-9]$/.test(ot.key),dt=ge?at:Bt||at,vt=ut.slice(0,this.telInput.selectionStart)+ot.key+ut.slice(this.telInput.selectionEnd),yt=this._getFullNumber(vt),It=ke.utils.getCoreNumber(yt,this.selectedCountryData.iso2),wt=this.maxCoreNumberLength&&It.length>this.maxCoreNumberLength;let mt=!1;if(St){const Dt=this.selectedCountryData.iso2;mt=this._getCountryFromNumber(yt)!==Dt}(!dt||wt&&!mt&&!Bt)&&ot.preventDefault()}}},this.telInput.addEventListener("keydown",this._handleKeydownEvent))}_cap(te){const re=parseInt(this.telInput.getAttribute("maxlength")||"",10);return re&&te.length>re?te.substr(0,re):te}_trigger(te,re={}){const ge=new CustomEvent(te,{bubbles:!0,cancelable:!0,detail:re});this.telInput.dispatchEvent(ge)}_openDropdown(){const{fixDropdownWidth:te,countrySearch:re}=this.options;if(te&&(this.dropdownContent.style.width=`${this.telInput.offsetWidth}px`),this.dropdownContent.classList.remove("iti__hide"),this.selectedCountry.setAttribute("aria-expanded","true"),this._setDropdownPosition(),re){const ge=this.countryList.firstElementChild;ge&&(this._highlightListItem(ge,!1),this.countryList.scrollTop=0),this.searchInput.focus()}this._bindDropdownListeners(),this.dropdownArrow.classList.add("iti__arrow--up"),this._trigger("open:countrydropdown")}_setDropdownPosition(){if(this.options.dropdownContainer&&this.options.dropdownContainer.appendChild(this.dropdown),!this.options.useFullscreenPopup){const te=this.telInput.getBoundingClientRect(),re=this.telInput.offsetHeight;this.options.dropdownContainer&&(this.dropdown.style.top=`${te.top+re}px`,this.dropdown.style.left=`${te.left}px`,this._handleWindowScroll=()=>this._closeDropdown(),window.addEventListener("scroll",this._handleWindowScroll))}}_bindDropdownListeners(){this._handleMouseoverCountryList=oe=>{var Ne;const Ae=(Ne=oe.target)==null?void 0:Ne.closest(".iti__country");Ae&&this._highlightListItem(Ae,!1)},this.countryList.addEventListener("mouseover",this._handleMouseoverCountryList),this._handleClickCountryList=oe=>{var Ne;const Ae=(Ne=oe.target)==null?void 0:Ne.closest(".iti__country");Ae&&this._selectListItem(Ae)},this.countryList.addEventListener("click",this._handleClickCountryList);let te=!0;this._handleClickOffToClose=()=>{te||this._closeDropdown(),te=!1},document.documentElement.addEventListener("click",this._handleClickOffToClose);let re="",ge=null;if(this._handleKeydownOnDropdown=oe=>{["ArrowUp","ArrowDown","Enter","Escape"].includes(oe.key)&&(oe.preventDefault(),oe.stopPropagation(),oe.key==="ArrowUp"||oe.key==="ArrowDown"?this._handleUpDownKey(oe.key):oe.key==="Enter"?this._handleEnterKey():oe.key==="Escape"&&this._closeDropdown()),!this.options.countrySearch&&/^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(oe.key)&&(oe.stopPropagation(),ge&&clearTimeout(ge),re+=oe.key.toLowerCase(),this._searchForCountry(re),ge=setTimeout(()=>{re=""},1e3))},document.addEventListener("keydown",this._handleKeydownOnDropdown),this.options.countrySearch){const oe=()=>{const Ne=this.searchInput.value.trim();Ne?this._filterCountries(Ne):this._filterCountries("",!0)};let Ae=null;this._handleSearchChange=()=>{Ae&&clearTimeout(Ae),Ae=setTimeout(()=>{oe(),Ae=null},100)},this.searchInput.addEventListener("input",this._handleSearchChange),this.searchInput.addEventListener("click",Ne=>Ne.stopPropagation())}}_searchForCountry(te){for(let re=0;reSt[0]).join("").toLowerCase(),ut=`+${Ne.dialCode}`;if(re||pt.includes(oe)||ut.includes(oe)||Ne.iso2.includes(oe)||ot.includes(oe)){const St=Ne.nodeById[this.id];St&&this.countryList.appendChild(St),ge&&(this._highlightListItem(St,!1),ge=!1)}}ge&&this._highlightListItem(null,!1),this.countryList.scrollTop=0,this._updateSearchResultsText()}_updateSearchResultsText(){const{i18n:te}=this.options,re=this.countryList.childElementCount;let ge;re===0?ge=te.zeroSearchResults:re===1?ge=te.oneSearchResult:ge=te.multipleSearchResults.replace("${count}",re.toString()),this.searchResultsA11yText.textContent=ge}_handleUpDownKey(te){var ge,oe;let re=te==="ArrowUp"?(ge=this.highlightedItem)==null?void 0:ge.previousElementSibling:(oe=this.highlightedItem)==null?void 0:oe.nextElementSibling;!re&&this.countryList.childElementCount>1&&(re=te==="ArrowUp"?this.countryList.lastElementChild:this.countryList.firstElementChild),re&&(this._scrollTo(re),this._highlightListItem(re,!1))}_handleEnterKey(){this.highlightedItem&&this._selectListItem(this.highlightedItem)}_updateValFromNumber(te){let re=te;if(this.options.formatOnDisplay&&ke.utils&&this.selectedCountryData){const ge=this.options.nationalMode||re.charAt(0)!=="+"&&!this.options.separateDialCode,{NATIONAL:oe,INTERNATIONAL:Ae}=ke.utils.numberFormat,Ne=ge?oe:Ae;re=ke.utils.formatNumber(re,this.selectedCountryData.iso2,Ne)}re=this._beforeSetNumber(re),this.telInput.value=re}_updateCountryFromNumber(te){const re=this._getCountryFromNumber(te);return re!==null?this._setCountry(re):!1}_ensureHasDialCode(te){const{dialCode:re,nationalPrefix:ge}=this.selectedCountryData;if(te.charAt(0)==="+"||!re)return te;const Ne=ge&&te.charAt(0)===ge&&!this.options.separateDialCode?te.substring(1):te;return`+${re}${Ne}`}_getCountryFromNumber(te){const re=te.indexOf("+");let ge=re?te.substring(re):te;const oe=this.selectedCountryData.iso2,Ae=this.selectedCountryData.dialCode;ge=this._ensureHasDialCode(ge);const Ne=this._getDialCode(ge,!0),pt=rt(ge);if(Ne){const ot=rt(Ne),ut=this.dialCodeToIso2Map[ot];if(!oe&&this.defaultCountry&&ut.includes(this.defaultCountry))return this.defaultCountry;const St=oe&&ut.includes(oe)&&(pt.length===ot.length||!this.selectedCountryData.areaCodes);if(!(Ae==="1"&&He(pt))&&!St){for(let at=0;atNe){const Bt=oe-pt;re.scrollTop=St-Bt}}_updateDialCode(te){const re=this.telInput.value,ge=`+${te}`;let oe;if(re.charAt(0)==="+"){const Ae=this._getDialCode(re);Ae?oe=re.replace(Ae,ge):oe=ge,this.telInput.value=oe}}_getDialCode(te,re){let ge="";if(te.charAt(0)==="+"){let oe="";for(let Ae=0;Ae-1){const ge=te.substring(0,re),oe=this._utilsIsPossibleNumber(ge),Ae=this._utilsIsPossibleNumber(te);return oe&&Ae}return this._utilsIsPossibleNumber(te)}_utilsIsPossibleNumber(te){return ke.utils?ke.utils.isPossibleNumber(te,this.selectedCountryData.iso2,this.options.validationNumberTypes):null}isValidNumberPrecise(){if(!this.selectedCountryData.iso2)return!1;const te=this._getFullNumber(),re=te.search(new RegExp("\\p{L}","u"));if(re>-1){const ge=te.substring(0,re),oe=this._utilsIsValidNumber(ge),Ae=this._utilsIsValidNumber(te);return oe&&Ae}return this._utilsIsValidNumber(te)}_utilsIsValidNumber(te){return ke.utils?ke.utils.isValidNumber(te,this.selectedCountryData.iso2,this.options.validationNumberTypes):null}setCountry(te){const re=te==null?void 0:te.toLowerCase(),ge=this.selectedCountryData.iso2;(te&&re!==ge||!te&&ge)&&(this._setCountry(re),this._updateDialCode(this.selectedCountryData.dialCode),this._triggerCountryChange())}setNumber(te){const re=this._updateCountryFromNumber(te);this._updateValFromNumber(te),re&&this._triggerCountryChange(),this._trigger("input",{isSetNumber:!0})}setPlaceholderNumberType(te){this.options.placeholderNumberType=te,this._updatePlaceholder()}setDisabled(te){this.telInput.disabled=te,te?this.selectedCountry.setAttribute("disabled","true"):this.selectedCountry.removeAttribute("disabled")}},Ze=te=>{if(!ke.utils&&!ke.startedLoadingUtilsScript){let re;if(typeof te=="function")try{re=Promise.resolve(te())}catch(ge){return Promise.reject(ge)}else return Promise.reject(new TypeError(`The argument passed to attachUtils must be a function that returns a promise for the utilities module, not ${typeof te}`));return ke.startedLoadingUtilsScript=!0,re.then(ge=>{const oe=ge==null?void 0:ge.default;if(!oe||typeof oe!="object")throw new TypeError("The loader function passed to attachUtils did not resolve to a module object with utils as its default export.");return ke.utils=oe,tt("handleUtils"),!0}).catch(ge=>{throw tt("rejectUtilsScriptPromise",ge),ge})}return null},ke=Object.assign((te,re)=>{const ge=new nt(te,re);return ge._init(),te.setAttribute("data-intl-tel-input-id",ge.id.toString()),ke.instances[ge.id]=ge,ge},{defaults:Fe,documentReady:()=>document.readyState==="complete",getCountryData:()=>ie,getInstance:te=>{const re=te.getAttribute("data-intl-tel-input-id");return re?ke.instances[re]:null},instances:{},attachUtils:Ze,startedLoadingUtilsScript:!1,startedLoadingAutoCountry:!1,version:"25.3.2"}),bt=ke;return B(N)})();return o.default})})(Uf)),Uf.exports}var bL=xL();const wL=qm(bL);var TL=Te('
                      '),CL=Te(' '),SL=Te('

                      ',1),PL=async(m,o,f)=>{await o(x(f))},IL=Te(' '),ML=(m,o)=>{ce(o,"")},kL=Te('

                      ',1),AL=Te('
                      ');function EL(m,o){Br(o,!0);let f=ct(!0),y=ct(""),M=ct(0),z=ct(!1);const T=ft(()=>x(M)>0||x(z));let s=ct(!1),B=ct(""),N=ct(void 0);const Y=ft(()=>{var Me;return`phone:${(Me=kt.data)==null?void 0:Me.id}`});Wr(()=>{const Me=localStorage.getItem(x(Y));Me&&ce(y,Me,!0)}),Dn(()=>{en.getOtpCooldown().then(Re=>{ce(M,Re.cooldownMs,!0)}).catch(Re=>{Nr.error(Re.message)}).finally(()=>{ce(f,!1)});const Me=1e3,Ee=setInterval(()=>{ce(M,Math.max(0,x(M)-Me),!0)},Me);return()=>{clearInterval(Ee)}});async function K(Me){try{ce(z,!0);const Ee=await en.sendOtp(Me);Nr.info(`${tS()} ${Ee.phone}`),ce(y,Ee.phone,!0),ce(M,Ee.cooldownMs,!0),localStorage.setItem(x(Y),x(y))}catch(Ee){Nr.error(Ee.message)}finally{ce(z,!1)}}Wr(()=>{x(B).length===6&&(ce(s,!0),(async()=>{try{await en.verifyOtp(x(B)),await kt.refresh(),Nr.success(iS()),localStorage.removeItem(x(Y)),o.onsuccess(x(y))}catch(Me){Nr.error(Me.message)}finally{ce(B,""),ce(s,!1)}})())});var ie=AL(),H=E(ie);{var me=Me=>{var Ee=TL();G(Me,Ee)},ve=Me=>{var Ee=er(),Re=Ct(Ee);{var ze=Ke=>{var rt=SL(),qe=Ct(rt),He=E(qe),et=E(He,!0);k(He);var De=q(He,2),tt=E(De,!0);k(De),k(qe);var nt=q(qe,2),Ze=E(nt);Wi(Ze,()=>ge=>(ce(N,wL(ge,{strictMode:!0,initialCountry:"br",loadUtils:()=>jx(()=>import("../chunks/DwuERyDq.js"),[],import.meta.url),containerClass:"w-full",dropdownContainer:document.body})),()=>{var oe;(oe=x(N))==null||oe.destroy()}));var ke=q(Ze,2),bt=E(ke),te=q(bt);{var re=ge=>{var oe=CL(),Ae=E(oe);k(oe),Ye(Ne=>fe(Ae,`(${Ne??""})`),[()=>tp(x(M))]),G(ge,oe)};je(te,ge=>{x(M)>0&&ge(re)})}k(ke),k(nt),Ye((ge,oe,Ae)=>{fe(et,ge),fe(tt,oe),ke.disabled=x(T),fe(bt,`${Ae??""} `)},[()=>GS(),()=>XS(),()=>JS()]),Ai("submit",nt,async()=>{var oe;if(x(T))return;if(!((oe=x(N))!=null&&oe.isValidNumber())){Nr.error(sS());return}const ge=x(N).getNumber();await K(ge)}),G(Ke,rt)},Fe=Ke=>{var rt=kL(),qe=Ct(rt),He=E(qe),et=E(He,!0);k(He);var De=q(He,2),tt=E(De);k(De),k(qe);var nt=q(qe,2),Ze=E(nt);{const Ne=(pt,ot)=>{let ut=()=>ot==null?void 0:ot().cells;var St=er(),Bt=Ct(St);yi(Bt,()=>mL,(at,dt)=>{dt(at,{class:"border-primary",children:(vt,yt)=>{var It=er(),wt=Ct(It);hi(wt,16,ut,mt=>mt,(mt,Dt)=>{var zt=er(),qt=Ct(zt);yi(qt,()=>vL,(tr,Qt)=>{Qt(tr,{get cell(){return Dt},class:"border-base-content/20 size-11 sm:size-12"})}),G(mt,zt)}),G(vt,It)},$$slots:{default:!0}})}),G(pt,St)};yi(Ze,()=>yL,(pt,ot)=>{ot(pt,{maxlength:6,class:"mx-auto w-max",get disabled(){return x(s)},get value(){return x(B)},set value(ut){ce(B,ut,!0)},children:Ne,$$slots:{default:!0}})})}k(nt);var ke=q(nt,2),bt=E(ke);bt.__click=[PL,K,y];var te=E(bt),re=q(te);{var ge=Ne=>{var pt=IL(),ot=E(pt);k(pt),Ye(ut=>fe(ot,`(${ut??""})`),[()=>tp(x(M))]),G(Ne,pt)};je(re,Ne=>{x(M)>0&&Ne(ge)})}k(bt);var oe=q(bt,2);oe.__click=[ML,y];var Ae=E(oe,!0);k(oe),k(ke),Ye((Ne,pt,ot,ut)=>{fe(et,Ne),fe(tt,`${pt??""} ${x(y)??""}`),bt.disabled=x(T),fe(te,`${ot??""} `),fe(Ae,ut)},[()=>tP(),()=>iP(),()=>sP(),()=>uP()]),G(Ke,rt)};je(Re,Ke=>{x(y)?Ke(Fe,!1):Ke(ze)},!0)}G(Me,Ee)};je(H,Me=>{x(f)?Me(me):Me(ve,!1)})}k(ie),G(m,ie),Fr()}Qn(["click"]);var zL=Te('');function LL(m,o){Br(o,!0);let f=Lt(o,"open",15);var y=zL(),M=E(y),z=q(E(M),2);{var T=s=>{EL(s,{onsuccess:()=>f(!1)})};je(z,s=>{f()&&s(T)})}k(M),k(y),Wi(y,()=>s=>{Wr(()=>{f()?s.show():s.close()})}),Ai("close",y,()=>f(!1)),G(m,y),Fr()}var DL=(m,o)=>{o()},RL=Te(''),BL=Te(''),FL=(m,o,f)=>{o(x(f).id)},OL=Te(''),NL=Te(''),jL=Te('
                      '),VL=Te(' '),qL=async(m,o,f)=>{try{ce(o,!0),await en.unlinkDiscord(),kt.refresh(),Nr.success(SS()),ce(f,!1)}catch(y){Nr.error(y.message,{duration:5e3})}finally{ce(o,!1)}},ZL=Te(''),UL=(m,o)=>{var f;(f=x(o))==null||f.show()},$L=(m,o)=>{o(!1)},GL=(m,o)=>{var f;(f=x(o))==null||f.close()},HL=async(m,o)=>{try{ce(o,!0),await en.deleteMe(),Nr.warning(DS()),await kt.logout()}catch(f){Nr.error(f.message)}finally{ce(o,!1)}},WL=Te(' ',1);function XL(m,o){Br(o,!0);let f=Lt(o,"open",15),y=ct(xi(o.userData.name)),M=ct(xi(o.userData.discord)),z=ct(xi(o.userData.showLastPixel)),T=ct(!1),s=ct(void 0),B=ct(void 0);const N=ix("2025-09_discord_linking");let Y=ct(!!o.userData.discordId);Dn(()=>{const rr=Kt=>{Kt.key==="Escape"&&f(!1)};return document.addEventListener("keydown",rr),()=>document.removeEventListener("keydown",rr)});let K=ct(void 0),ie=ct(void 0);Wr(()=>{ce(y,o.userData.name,!0),ce(z,o.userData.showLastPixel,!0)}),Wr(()=>{f()&&!x(B)&&en.getMyProfilePictures().then(rr=>{ce(B,rr,!0)}).catch(rr=>{Nr.error(rr.message)})});let H=ct(!1);async function me(rr){try{ce(H,!0),await en.changeProfilePicture(rr),await kt.refresh()}finally{ce(H,!1)}}var ve=WL(),Me=Ct(ve),Ee=E(Me),Re=q(E(Ee),2),ze=E(Re,!0);k(Re);var Fe=q(Re,2),Ke=E(Fe),rt=E(Ke),qe=E(rt),He=E(qe);lo(He,{class:"size-30",get userId(){return o.userData.id},get pictureUrl(){return o.userData.picture}});var et=q(He,2),De=E(et);Rv(De,{class:"size-5"}),k(et),k(qe);var tt=q(qe,2);{var nt=rr=>{var Kt=jL(),or=E(Kt),Sr=E(or,!0);k(or);var Dr=q(or,2),Zr=E(Dr);{var se=Z=>{var X=BL();X.__click=[DL,me];var ae=E(X);lo(ae,{class:"size-10 border",get userId(){return o.userData.id}});var de=q(ae,2);{var Se=Ie=>{var be=RL();G(Ie,be)};je(de,Ie=>{x(H)&&Ie(Se)})}k(X),Ye(()=>X.disabled=x(H)),G(Z,X)};je(Zr,Z=>{o.userData.picture&&Z(se)})}var j=q(Zr,2);hi(j,17,()=>x(B),Z=>Z.id,(Z,X)=>{var ae=er(),de=Ct(ae);{var Se=Ie=>{var be=NL();be.__click=[FL,me,X];var Oe=E(be);lo(Oe,{class:"size-10 border",get userId(){return o.userData.id},get pictureUrl(){return x(X).url}});var st=q(Oe,2);{var $e=Mt=>{var xe=OL();G(Mt,xe)};je(st,Mt=>{x(H)&&Mt($e)})}k(be),Ye(()=>be.disabled=x(H)),G(Ie,be)};je(de,Ie=>{o.userData.picture!==x(X).url&&Ie(Se)})}G(Z,ae)}),k(Dr),k(Kt),Ye(Z=>fe(Sr,Z),[()=>sw()]),G(rr,Kt)};je(tt,rr=>{var Kt;(Kt=x(B))!=null&&Kt.length&&rr(nt)})}k(rt);var Ze=q(rt,2),ke=E(Ze);{let rr=ft(()=>Xf()),Kt=ft(()=>Xf());Jf(ke,{get label(){return x(rr)},get placeholder(){return x(Kt)},min:1,max:16,get value(){return x(y)},set value(or){ce(y,or,!0)},get validate(){return x(K)},set validate(or){ce(K,or,!0)}})}var bt=q(ke,2);{var te=rr=>{var Kt=er(),or=Ct(Kt);{var Sr=Zr=>{var se=VL(),j=E(se);em(j,{class:"size-4.5"});var Z=q(j);k(se),Ye((X,ae)=>{xr(se,"href",X),fe(Z,` ${ae??""}`)},[()=>ax("/discord/authorize"),()=>MS()]),G(Zr,se)},Dr=Zr=>{var se=ZL();se.__click=[qL,T,Y];var j=E(se);em(j,{class:"size-4.5"});var Z=q(j);k(se),Ye(X=>{se.disabled=x(T),fe(Z,` ${X??""}`)},[()=>{var X;return ES({username:((X=o.userData)==null?void 0:X.discord)??""})}]),G(Zr,se)};je(or,Zr=>{x(Y)?Zr(Dr,!1):Zr(Sr)})}G(rr,Kt)},re=rr=>{{let Kt=ft(()=>l3());Jf(rr,{label:"Discord",get placeholder(){return x(Kt)},max:32,get value(){return x(M)},set value(or){ce(M,or,!0)},get validate(){return x(ie)},set validate(or){ce(ie,or,!0)}})}};je(bt,rr=>{N?rr(te):rr(re,!1)})}var ge=q(bt,2),oe=E(ge);uo(oe);var Ae=q(oe);k(ge),k(Ze),k(Ke);var Ne=q(Ke,2),pt=E(Ne);pt.__click=[UL,s];var ot=E(pt,!0);k(pt);var ut=q(pt,2),St=E(ut);St.__click=[$L,f];var Bt=E(St,!0);k(St);var at=q(St,2),dt=E(at,!0);k(at),k(ut),k(Ne),k(Fe),k(Ee),k(Me),Wi(Me,()=>rr=>{Wr(()=>{f()?rr.show():rr.close()})});var vt=q(Me,2),yt=E(vt),It=q(E(yt),2),wt=E(It,!0);k(It);var mt=q(It,2),Dt=E(mt,!0);k(mt);var zt=q(mt,2),qt=E(zt);qt.__click=[GL,s];var tr=E(qt,!0);k(qt);var Qt=q(qt,2);Qt.__click=[HL,T];var Ot=E(Qt,!0);k(Qt),k(zt),k(yt);var fr=q(yt,2),kr=E(fr),Ar=E(kr,!0);k(kr),k(fr),k(vt),Po(vt,rr=>ce(s,rr),()=>x(s)),Ye((rr,Kt,or,Sr,Dr,Zr,se,j,Z,X,ae)=>{fe(ze,rr),xr(et,"data-tip",Kt),fe(Ae,` ${or??""}`),fe(ot,Sr),St.disabled=x(T),fe(Bt,Dr),at.disabled=x(T),fe(dt,Zr),fe(wt,se),fe(Dt,j),fe(tr,Z),Qt.disabled=x(T),fe(Ot,X),fe(Ar,ae)},[()=>pP(),()=>Rx(),()=>uw(),()=>Yg(),()=>cl(),()=>Mx(),()=>mw(),()=>vw(),()=>up(),()=>Yg(),()=>cl()]),Ai("close",Me,()=>f(!1)),Ai("submit",Fe,async()=>{var rr,Kt;try{if(!((rr=x(K))!=null&&rr())||!((Kt=x(ie))!=null&&Kt()))return;ce(T,!0),await en.updateMe({name:x(y),showLastPixel:x(z),discord:x(M)}),kt.refresh(),Nr.success(yS()),f(!1)}catch(or){Nr.error(or.message,{duration:5e3})}finally{ce(T,!1)}}),Sx(oe,()=>x(z),rr=>ce(z,rr)),G(m,ve),Fr()}Qn(["click"]);var YL=Cr('');function KL(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=YL();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var JL=Cr('');function QL(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=JL();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var eD=Cr('');function tD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=eD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var rD=Cr('');function H0(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=rD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var nD=Cr('');function iD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=nD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var aD=Cr('');function oD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=aD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 216 216",...f}),void 0,void 0,"svelte-1977t4s"),G(m,y)}var sD=Cr('');function W0(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=sD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var lD=Cr('');function Cv(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=lD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var cD=Cr('');function uD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=cD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px",fill:"currentColor",...f})),G(m,y)}var hD=Cr('');function dD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=hD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var pD=Cr('');function fD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=pD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var mD=(m,o)=>{ce(o,!0)},_D=Te(' '),gD=Te('
                      '),vD=Te('

                      '),yD=Te('

                      '),xD=Te('
                      '),bD=(m,o,f)=>{localStorage.setItem(vx,x(o).key),ce(f,x(o).key,!0),location.reload()},wD=Te(''),TD=Te("
                    • "),CD=Te('
                      '),SD=async(m,o)=>{var f;try{const y=await((f=x(o))==null?void 0:f.prompt());(y==null?void 0:y.outcome)==="accepted"&&ce(o,void 0)}catch(y){Nr.error(G2({error:y.message}))}},PD=Te(''),ID=Te(' '),MD=Te(' '),kD=Te('
                      ',1),AD=async(m,o,f,y)=>{var M;try{ce(o,!0),await f.user.logout(),y(),Nr.warning(FS(),{icon:H0}),(M=f.onlogout)==null||M.call(f)}catch{Nr.error(jS())}finally{ce(o,!1)}},ED=Te(' ',1);function zD(m,o){Br(o,!0);let f=ct(!1),y=ct(!1);function M(){var ie;(ie=document.activeElement)==null||ie.blur()}const z=[{label:"🇺🇸 English",key:"en"},{label:"🇧🇷 Português",key:"pt"}];let T=ct(""),s=ct(void 0);const B=ft(()=>{var ie;return!!((ie=o.user.data)!=null&&ie.banned)||!!o.user.timeoutUntil});var N=er(),Y=Ct(N);{var K=ie=>{var H=ED(),me=Ct(H),ve=E(me);let Me;var Ee=E(ve);Ov(Ee,{get userId(){return o.user.data.id},get level(){return o.user.data.level},get pictureUrl(){return o.user.data.picture}}),k(ve);var Re=q(ve,2),ze=E(Re);ze.__click=M;var Fe=E(ze);_l(Fe,{class:"size-5"}),k(ze);var Ke=q(ze,2),rt=E(Ke),qe=E(rt);lo(qe,{get userId(){return o.user.data.id},get pictureUrl(){return o.user.data.picture},get isSuspended(){return x(B)}});var He=q(qe,2);He.__click=[mD,f];var et=E(He);Qf(et,{class:"size-4"}),k(He),k(rt);var De=q(rt,2),tt=E(De),nt=E(tt),Ze=E(nt,!0);k(nt);var ke=q(nt,2),bt=E(ke);k(ke);var te=q(ke,2);{var re=jt=>{const Et=ft(()=>So(o.user.data.equippedFlag));var hr=_D(),ht=E(hr,!0);k(hr),Ye(()=>{xr(hr,"data-tip",x(Et).name),fe(ht,x(Et).flag)}),G(jt,hr)};je(te,jt=>{o.user.data.equippedFlag&&jt(re)})}var ge=q(te,2);{var oe=jt=>{var Et=gD(),hr=E(Et);Ah(hr,{get username(){return o.user.data.discord},get id(){return o.user.data.discordId}}),k(Et),G(jt,Et)};je(ge,jt=>{o.user.data.discord&&jt(oe)})}k(tt);var Ae=q(tt,2),Ne=E(Ae);Eh(Ne,{class:"inline size-4"});var pt=q(Ne,2),ot=E(pt),ut=q(ot),St=E(ut,!0);k(ut),k(pt),k(Ae);var Bt=q(Ae,2),at=E(Bt);KL(at,{class:"inline size-4"});var dt=q(at,2),vt=E(dt),yt=E(vt);k(vt);var It=q(vt),wt=q(It),mt=E(wt);Uu(mt,{class:"mb-0.5 inline size-4 opacity-50"}),k(wt),k(dt),k(Bt),k(De),k(Ke);var Dt=q(Ke,2),zt=E(Dt);{var qt=jt=>{var Et=xD(),hr=E(Et);W0(hr,{class:"size-6 text-red-500"});var ht=q(hr,2);{var Hr=qr=>{var _t=vD(),Ge=E(_t),At=q(Ge);{var Rt=Yt=>{var br=bi();Ye(Er=>fe(br,`(${Er??""})`),[()=>sI({reason:cx()})]),G(Yt,br)};je(At,Yt=>{o.user.data.suspensionReason==="bot"&&Yt(Rt)})}k(_t),Ye(Yt=>fe(Ge,`${Yt??""} `),[()=>sx()]),G(qr,_t)},Yr=qr=>{var _t=er(),Ge=Ct(_t);{var At=Rt=>{var Yt=yD(),br=E(Yt);Mm(br,()=>lx({until:`${o.user.timeoutUntil.toLocaleString()}`})),k(Yt),G(Rt,Yt)};je(Ge,Rt=>{o.user.timeoutUntil&&Rt(At)},!0)}G(qr,_t)};je(ht,qr=>{var _t;(_t=o.user.data)!=null&&_t.banned?qr(Hr):qr(Yr,!1)})}k(Et),G(jt,Et)};je(zt,jt=>{x(B)&&jt(qt)})}var tr=q(zt,2),Qt=E(tr),Ot=E(Qt,!0);k(Qt);var fr=q(Qt,2),kr=E(fr),Ar=E(kr),rr=E(Ar);uD(rr,{class:"size-4"}),k(Ar);var Kt=q(Ar,2);hi(Kt,21,()=>z,hp,(jt,Et)=>{const hr=ft(()=>x(T)===x(Et).key);var ht=TD(),Hr=E(ht);let Yr;Hr.__click=[bD,Et,T];var qr=E(Hr);{var _t=At=>{var Rt=wD();G(At,Rt)};je(qr,At=>{x(hr)&&At(_t)})}var Ge=q(qr);k(Hr),k(ht),Ye(At=>{Yr=zr(Hr,1,"font-flag relative font-medium",null,Yr,At),fe(Ge,` ${x(Et).label??""}`)},[()=>({"bg-base-200":x(hr)})]),G(jt,ht)}),k(Kt),k(kr);var or=q(kr,2),Sr=E(or);Sr.__click=()=>{ai.muted=!ai.muted};var Dr=E(Sr);{var Zr=jt=>{dD(jt,{class:"size-4"})},se=jt=>{fD(jt,{class:"size-4"})};je(Dr,jt=>{ai.muted?jt(Zr):jt(se,!1)})}k(Sr),k(or);var j=q(or,2);{var Z=jt=>{var Et=CD(),hr=E(Et);hr.__click=()=>{ai.theme=ai.theme==="dark"?"custom-winter":"dark"};var ht=E(hr);{var Hr=qr=>{tD(qr,{class:"size-4"})},Yr=qr=>{QL(qr,{class:"size-4"})};je(ht,qr=>{ai.theme==="dark"?qr(Hr):qr(Yr,!1)})}k(hr),k(Et),Ye(qr=>xr(Et,"data-tip",qr),[()=>ai.theme==="dark"?wI():yI()]),G(jt,Et)};je(j,jt=>{var Et,hr;xc((hr=(Et=o.user)==null?void 0:Et.data)==null?void 0:hr.role,["admin","moderator","global_moderator"])&&jt(Z)})}k(fr),k(tr);var X=q(tr,2);{var ae=jt=>{var Et=PD();Et.__click=[SD,s];var hr=E(Et);zv(hr,{class:"size-5"});var ht=q(hr);k(Et),Ye(Hr=>fe(ht,` ${Hr??""}`),[()=>X2()]),G(jt,Et)};je(X,jt=>{x(s)&&jt(ae)})}var de=q(X,2);{var Se=jt=>{var Et=ID(),hr=E(Et);Cv(hr,{class:"size-5"});var ht=q(hr);k(Et),Ye(Hr=>{xr(Et,"href",`${vi.url.origin??""}/admin/dashboard`),fe(ht,` ${Hr??""}`)},[()=>iI()]),G(jt,Et)};je(de,jt=>{var Et;((Et=o.user.data)==null?void 0:Et.role)==="admin"&&jt(Se)})}var Ie=q(de,2);{var be=jt=>{var Et=MD(),hr=E(Et);Cv(hr,{class:"size-5"});var ht=q(hr);k(Et),Ye(Hr=>{xr(Et,"href",`${vi.url.origin??""}/admin`),fe(ht,` ${Hr??""}`)},[()=>jP()]),G(jt,Et)};je(Ie,jt=>{var Et;(Et=o.user.data)!=null&&Et.role&&o.user.data.role!=="user"&&jt(be)})}var Oe=q(Ie,2),st=E(Oe);Vv(st,{class:"size-5"});var $e=q(st);k(Oe);var Mt=q(Oe,2),xe=E(Mt);Kf(xe,{class:"size-5"}),vn(),k(Mt);var Ft=q(Mt,2),cr=E(Ft);oD(cr,{class:"size-5"}),vn(),k(Ft);var Jt=q(Ft,2);{var Tr=jt=>{var Et=kD(),hr=Ct(Et),ht=E(hr),Hr=E(ht);iD(Hr,{class:"size-5"});var Yr=q(Hr);k(ht),k(hr);var qr=q(hr,2),_t=E(qr);Uu(_t,{class:"size-5"});var Ge=q(_t);k(qr),Ye((At,Rt,Yt)=>{xr(hr,"action",`${ox}/payment/create-portal-session`),fe(Yr,` ${At??""}`),xr(qr,"href",Rt),fe(Ge,` ${Yt??""}`)},[()=>xx(),()=>Bv(vi.url.origin),()=>Kv()]),G(jt,Et)};je(Jt,jt=>{var Et;(Et=o.user.data)!=null&&Et.isCustomer&&jt(Tr)})}var Xr=q(Jt,2);Xr.__click=[AD,y,o,M];var dn=E(Xr);H0(dn,{class:"size-5"});var xn=q(dn);k(Xr),k(Dt),k(Re),k(me);var mn=q(me,2);XL(mn,{get userData(){return o.user.data},get open(){return x(f)},set open(jt){ce(f,jt,!0)}}),Ye((jt,Et,hr,ht,Hr,Yr,qr,_t,Ge,At,Rt,Yt)=>{Me=zr(ve,1,"btn size-12 p-0 shadow-md",null,Me,jt),xr(ve,"title",Et),xr(nt,"title",o.user.data.name),fe(Ze,o.user.data.name),zr(ke,1,hr),fe(bt,`#${o.user.data.id??""}`),fe(ot,`${ht??""}: `),fe(St,Hr),fe(yt,`Level ${Yr??""}`),fe(It,` (${qr??""}%) `),xr(wt,"data-tip",_t),fe(Ot,Ge),xr(or,"data-tip",At),fe($e,` ${Rt??""}`),Xr.disabled=x(y),fe(xn,` ${Yt??""}`)},[()=>({"bg-red-500":x(B)}),()=>j2(),()=>Ko(Oi(o.user.data.id)),()=>Am(),()=>o.user.data.pixelsPainted.toLocaleString("en-US"),()=>Math.floor(o.user.data.level),()=>Math.floor(o.user.data.level%1*100),()=>n3(),()=>Z2(),()=>ai.muted?FC():DC(),()=>J2(),()=>tw()]),Ai("focus",ve,()=>{ce(s,window.pwaInstallPrompt,!0)}),G(ie,H)};je(Y,ie=>{o.user.data&&o.user.charges!==void 0&&ie(K)})}G(m,N),Fr()}Qn(["click"]);var LD=Cr('');function DD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=LD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px",fill:"currentColor",...f})),G(m,y)}var RD=Cr('');function BD(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=RD();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var FD=async(m,o,f,y,M,z)=>{if(x(o)){f.map.easeTo(x(o)),ce(o,void 0);return}ce(y,!0);try{Co(f.map.getCenter(),f.map.getZoom());const T=new fl(x(M)),{tile:s,pixel:B}=await en.getRandomTile(f.season),N=s.x*x(M)+B.x,Y=s.y*x(M)+B.y,[K,ie]=T.pixelsToLatLon(N,Y,x(z)),H={lat:K,lng:ie},me=x(z)+2;ce(o,{zoom:me,center:H},!0),f.map.flyTo(x(o)),hl.isEmpty()&&hl.push({pos:f.map.getCenter(),zoom:f.map.getZoom()}),setTimeout(()=>{ce(o,void 0)},2500),hl.push({pos:H,zoom:me})}catch(T){Nr.error(T.message)}finally{ce(y,!1)}},OD=Te('');function ND(m,o){Br(o,!0);const f=ft(()=>Hi.seasons[o.season].tileSize),y=ft(()=>Hi.seasons[o.season].zoom);let M=ct(!1),z=ct(void 0);var T=OD();T.__click=[FD,z,o,M,f,y];var s=E(T);{var B=Y=>{BD(Y,{class:"size-5"})},N=Y=>{DD(Y,{class:"size-5"})};je(s,Y=>{x(z)?Y(N,!1):Y(B)})}k(T),Ye(Y=>{xr(T,"title",Y),T.disabled=x(M)},[()=>f2()]),G(m,T),Fr()}Qn(["click"]);var jD=Te(''),VD=Te('
                      '),qD=Te(' '),ZD=Te(" "),UD=Te('
                      '),$D=Te('

                      '),GD=Te(' '),HD=Te('

                      '),WD=Te('
                      '),XD=Te('
                      ',1);function YD(m,o){Br(o,!0);const f=[];let y=ct("today"),M={players:{label:Xv(),icon:vp},alliances:{label:Yv(),icon:yp}},z=ct("players"),T=xi({players:{},alliances:{}});const s=ft(()=>T[x(z)][x(y)]);Wr(()=>{if(x(s))return;const ve=x(y),Me=x(z);Me==="players"?en.leaderboardRegionPlayers(o.regionId,ve).then(Ee=>{T[Me][ve]=Ee}).catch(Ee=>{Nr.error(Ee.message)}):Me==="alliances"&&en.leaderboardRegionAlliances(o.regionId,ve).then(Ee=>{T[Me][ve]=Ee}).catch(Ee=>{Nr.error(Ee.message)})});var B=XD(),N=Ct(B);hi(N,21,()=>Object.entries(M),([ve,{label:Me,icon:Ee}])=>ve,(ve,Me)=>{var Ee=ft(()=>Mv(x(Me),2));let Re=()=>x(Ee)[0],ze=()=>x(Ee)[1].label,Fe=()=>x(Ee)[1].icon;const Ke=ft(Fe);var rt=jD(),qe=E(rt);uo(qe);var He,et=q(qe,2);yi(et,()=>x(Ke),(tt,nt)=>{nt(tt,{get this(){return Fe()},class:"mr-1 size-5 max-sm:hidden"})});var De=q(et);k(rt),Ye(()=>{xr(qe,"aria-label",ze()),He!==(He=Re())&&(qe.value=(qe.__value=Re())??""),fe(De,` ${ze()??""}`)}),Em(f,[],qe,()=>(Re(),x(z)),tt=>ce(z,tt)),G(ve,rt)}),k(N);var Y=q(N,2),K=E(Y);Zm(K,{get value(){return x(y)},set value(ve){ce(y,ve,!0)}}),k(Y);var ie=q(Y,2);{var H=ve=>{var Me=VD(),Ee=E(Me),Re=q(Ee);{var ze=Ke=>{var rt=bi();Ye(qe=>fe(rt,qe),[()=>gp().toLowerCase()]),G(Ke,rt)},Fe=Ke=>{var rt=er(),qe=Ct(rt);{var He=De=>{var tt=bi();Ye(nt=>fe(tt,nt),[()=>Om()]),G(De,tt)},et=De=>{var tt=er(),nt=Ct(tt);{var Ze=ke=>{var bt=bi();Ye(te=>fe(bt,te),[()=>Nm()]),G(ke,bt)};je(nt,ke=>{x(y)==="month"&&ke(Ze)},!0)}G(De,tt)};je(qe,De=>{x(y)==="week"?De(He):De(et,!1)},!0)}G(Ke,rt)};je(Re,Ke=>{x(y)==="today"?Ke(ze):Ke(Fe,!1)})}k(Me),Ye(Ke=>fe(Ee,`${Ke??""} `),[()=>Fm()]),G(ve,Me)},me=ve=>{var Me=er(),Ee=Ct(Me);{var Re=Fe=>{var Ke=er(),rt=Ct(Ke);{var qe=et=>{const De=ft(()=>x(s));var tt=$D(),nt=E(tt),Ze=E(nt),ke=q(E(Ze)),bt=E(ke,!0);k(ke);var te=q(ke),re=E(te),ge=q(re,2,!0);k(te),k(Ze),k(nt);var oe=q(nt);hi(oe,31,()=>x(De),Ae=>Ae.id,(Ae,Ne,pt)=>{const ot=ft(()=>{var Kt;return((Kt=kt.data)==null?void 0:Kt.id)===x(Ne).id});var ut=UD();let St;var Bt=E(ut),at=E(Bt,!0);k(Bt);var dt=q(Bt),vt=E(dt),yt=E(vt);lo(yt,{class:"size-10 border",get userId(){return x(Ne).id},get pictureUrl(){return x(Ne).picture}});var It=q(yt,2),wt=E(It),mt=E(wt),Dt=q(mt),zt=E(Dt);k(Dt),k(wt);var qt=q(wt,2);{var tr=Kt=>{const or=ft(()=>So(x(Ne).equippedFlag));var Sr=qD(),Dr=E(Sr,!0);k(Sr),Ye(()=>{xr(Sr,"data-tip",x(or).name),fe(Dr,x(or).flag)}),G(Kt,Sr)};je(qt,Kt=>{"equippedFlag"in x(Ne)&&x(Ne).equippedFlag&&Kt(tr)})}var Qt=q(qt,2);{var Ot=Kt=>{Ah(Kt,{get username(){return x(Ne).discord},get id(){return x(Ne).discordId}})};je(Qt,Kt=>{x(Ne).discord&&Kt(Ot)})}var fr=q(Qt,2);{var kr=Kt=>{var or=ZD(),Sr=E(or,!0);k(or),Ye((Dr,Zr)=>{zr(or,1,`badge badge-sm ml-0.5 border-0 ${Dr??""} ${Zr??""}`),fe(Sr,x(Ne).allianceName)},[()=>dp(x(Ne).allianceId),()=>Oi(x(Ne).allianceId)]),G(Kt,or)};je(fr,Kt=>{"allianceName"in x(Ne)&&x(Ne).allianceName&&Kt(kr)})}k(It),k(vt),k(dt);var Ar=q(dt),rr=E(Ar,!0);k(Ar),k(ut),Ye((Kt,or,Sr)=>{St=zr(ut,1,"",null,St,Kt),fe(at,x(pt)+1),zr(wt,1,`font-semibold max-sm:ml-2 ${or??""} flex gap-1`),fe(mt,`${x(Ne).name??""} `),fe(zt,`#${x(Ne).id??""}`),fe(rr,Sr)},[()=>({"bg-base-200":x(ot)}),()=>Oi(x(Ne).id),()=>x(Ne).pixelsPainted.toLocaleString("en-US")]),sl(ut,()=>ll,()=>({duration:200})),G(Ae,ut)}),k(oe),k(tt),Ye((Ae,Ne,pt)=>{fe(bt,Ae),fe(re,`${Ne??""} `),fe(ge,pt)},[()=>Lm(),()=>vc(),()=>yc().toLowerCase()]),G(et,tt)},He=et=>{var De=er(),tt=Ct(De);{var nt=Ze=>{var ke=HD(),bt=E(ke),te=E(bt),re=q(E(te)),ge=E(re,!0);k(re);var oe=q(re),Ae=E(oe),Ne=q(Ae,2,!0);k(oe),k(te),k(bt);var pt=q(bt);hi(pt,31,()=>x(s),ot=>ot.id,(ot,ut,St)=>{const Bt=ft(()=>{var qt;return((qt=kt.data)==null?void 0:qt.allianceId)===x(ut).id});var at=GD();let dt;var vt=E(at),yt=E(vt,!0);k(vt);var It=q(vt),wt=E(It),mt=E(wt,!0);k(wt),k(It);var Dt=q(It),zt=E(Dt,!0);k(Dt),k(at),Ye((qt,tr,Qt)=>{dt=zr(at,1,"",null,dt,qt),fe(yt,x(St)+1),zr(wt,1,`font-semibold ${tr??""}`),fe(mt,x(ut).name),fe(zt,Qt)},[()=>({"bg-base-200":x(Bt)}),()=>Oi(x(ut).id),()=>x(ut).pixelsPainted.toLocaleString("en-US")]),sl(at,()=>ll,()=>({duration:200})),G(ot,at)}),k(pt),k(ke),Ye((ot,ut,St)=>{fe(ge,ot),fe(Ae,`${ut??""} `),fe(Ne,St)},[()=>mp(),()=>vc(),()=>yc().toLowerCase()]),G(Ze,ke)};je(tt,Ze=>{x(z)==="alliances"&&Ze(nt)},!0)}G(et,De)};je(rt,et=>{x(z)==="players"?et(qe):et(He,!1)})}G(Fe,Ke)},ze=Fe=>{var Ke=WD();G(Fe,Ke)};je(Ee,Fe=>{x(s)?Fe(Re):Fe(ze,!1)},!0)}G(ve,Me)};je(ie,ve=>{x(s)&&x(s).length===0?ve(H):ve(me,!1)})}G(m,B),Fr()}var KD=Te('
                      '),JD=Te(' ');function QD(m,o){Br(o,!0);let f=Lt(o,"open",15);const y=ft(()=>So(o.region.countryId));Dn(()=>{const ve=Me=>{Me.key==="Escape"&&f(!1)};return document.addEventListener("keydown",ve),()=>document.removeEventListener("keydown",ve)});var M=JD(),z=E(M),T=q(E(z),2),s=E(T),B=E(s,!0);k(s);var N=q(s,2),Y=E(N,!0);k(N);var K=q(N,2),ie=E(K);k(K),k(T);var H=q(T,2);{var me=ve=>{var Me=KD(),Ee=E(Me);YD(Ee,{get regionId(){return o.region.id}}),k(Me),ki(2,Me,()=>ia,()=>({duration:300})),G(ve,Me)};je(H,ve=>{f()&&ve(me)})}k(z),vn(2),k(M),Wi(M,()=>ve=>{Wr(()=>{f()?ve.show():ve.close()})}),Ye(ve=>{zr(T,1,`flex gap-2 text-xl font-bold sm:text-2xl ${ve??""}`),xr(s,"data-tip",x(y).name),fe(B,x(y).flag),fe(Y,o.region.name),fe(ie,`#${o.region.number??""}`)},[()=>Oi(o.region.cityId)]),Ai("close",M,()=>f(!1)),G(m,M),Fr()}var eR=Cr('');function tR(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=eR();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px",fill:"currentColor",...f})),G(m,y)}var rR=Cr(''),nR=Cr('');function iR(m,o){let f=ir(o,["$$slots","$$events","$$legacy","filled"]);var y=er(),M=Ct(y);{var z=s=>{var B=rR();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)},T=s=>{var B=nR();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)};je(M,s=>{o.filled?s(z):s(T,!1)})}G(m,y)}var aR=(m,o,f,y,M)=>{if(x(o)&&x(f)){const z=x(o)-x(f).clientHeight,T=x(o)/2-z/2;y.map.flyTo({center:{lat:x(M).center[0],lng:x(M).center[1]},zoom:17.5,offset:[0,-T]})}},oR=(m,o,f)=>o.onclickregion(x(f)),sR=Te(''),lR=Te('
                      '),cR=Te('
                      '),uR=Te(' '),hR=(m,o)=>{navigator.clipboard.writeText(x(o).allianceId.toString()),Nr.success(Bm())},dR=Te(""),pR=Te(" ",1),fR=Te(''),mR=Te(''),_R=(m,o)=>{o("report-user")},gR=Te("
                    • "),vR=(m,o)=>{o("timeout")},yR=Te("
                    • "),xR=(m,o)=>{o("ban")},bR=Te("
                    • "),wR=async(m,o,f,y,M,z)=>{ce(o,!0);try{await en.banAllianceUser(x(f).id),await y({...x(M),season:z.season})}catch(T){Nr.error(T.message)}finally{ce(o,!1)}},TR=Te('
                    • '),CR=Te(''),SR=Te('
                      '),PR=(m,o)=>o.onclickpaint(o.latLon),IR=async(m,o,f,y)=>{try{ce(o,!0),x(f)?(await en.deleteFavoriteLocation(x(f).id),Nr.warning(uS())):(await en.favoriteLocation(x(y).center),Nr.success(pS())),aa.smallPlop.play(),kt.refresh()}catch(M){Nr.error(M.message)}finally{ce(o,!1)}},MR=Te(""),kR=(m,o,f)=>o.onclickshare(BI(vi.url,{pos:{lat:x(f).center[0],lng:x(f).center[1]},zoom:o.zoom})),AR=Te('

                      ');function ER(m,o){Br(o,!0);let f=ct(void 0);const y=ft(()=>new fl(o.tileSize));let M=ct(void 0),z=ct(void 0),T=ct(!1),s=ct(!1);const B=ft(()=>{var at,dt,vt;return!!((dt=(at=x(f))==null?void 0:at.paintedBy)!=null&&dt.id)&&((vt=kt.data)==null?void 0:vt.id)===x(f).paintedBy.id}),N=ft(()=>{const[at,dt]=o.latLon??[0,0],vt=x(y).latLonToPixelBoundsLatLon(at,dt,o.pixelArtZoom),yt=Vm(vt),{tile:It,pixel:wt}=x(y).latLonToTileAndPixel(at,dt,o.pixelArtZoom),mt=x(y).latLonToRegionAndPixel(at,dt,o.pixelArtZoom);return{bounds:vt,center:yt,tile:It,pixel:wt,regionPixel:mt.pixel}});Wr(()=>{aa.plop.play(),o.crosshair.clearAndPlace(o.latLon)});let Y=0;const K=({pixel:at,tile:dt,season:vt})=>`s${vt}:p(${at[0]},${at[1]}):t(${dt[0]},${dt[1]})`;let ie;dl(()=>[x(N),o.season],()=>{const at={...x(N),season:o.season},dt=K(at);if(ce(f,o.pixelInfoCache.get(dt),!0),x(f)!==void 0)return;o.pixelInfoCache.size===0&&(Y=0),Y++,Y>6?(clearTimeout(ie),ie=setTimeout(async()=>H(at),500)):H(at)});async function H(at){var yt;const dt=await en.getPixelInfo({...at,isModerator:xc((yt=kt.data)==null?void 0:yt.role,["admin","global_moderator","moderator"])});if(dt.paintedBy!==void 0){const It=K(at);o.pixelInfoCache.set(It,dt)}const vt=K({...x(N),season:o.season});return ce(f,o.pixelInfoCache.get(vt),!0),dt}function me(){o.crosshair.clear(),aa.smallPlop.play(),o.onclose()}Dn(()=>{const at=dt=>{dt.key==="Escape"&&me()};return document.addEventListener("keydown",at),()=>document.removeEventListener("keydown",at)});const ve=ft(()=>{var yt,It,wt,mt,Dt;const at=[],dt=(It=(yt=kt)==null?void 0:yt.data)==null?void 0:It.role;xc(dt,["admin"])&&!x(B)&&at.push("ban-user"),xc(dt,["admin","global_moderator","moderator"])&&!x(B)&&at.push("timeout-user"),!x(B)&&kt.data&&at.push("report-user");const vt=(wt=x(f))==null?void 0:wt.paintedBy;return(vt==null?void 0:vt.allianceId)===((mt=kt.data)==null?void 0:mt.allianceId)&&((Dt=kt.data)==null?void 0:Dt.allianceRole)==="admin"&&kt.data.id!==(vt==null?void 0:vt.id)&&!x(B)&&at.push("ban-alliance"),at});function Me(at){const dt=(async()=>await i0(o.map,{maxHeight:1080,maxWidth:1080,quality:.8,type:"image/jpeg"}))();o.onclickmodaction(x(f),dt,o.latLon,at)}var Ee=AR(),Re=E(Ee),ze=E(Re),Fe=E(ze);Fe.__click=[aR,M,z,o,N];var Ke=E(Fe);km(Ke,{class:"fill-primary size-5"}),k(Fe);var rt=q(Fe,2),qe=E(rt),He=E(qe);k(qe);var et=q(qe,2);{var De=at=>{const dt=ft(()=>x(f).region),vt=ft(()=>So(x(dt).countryId));var yt=sR();yt.__click=[oR,o,dt];var It=E(yt),wt=E(It,!0);k(It);var mt=q(It,2),Dt=E(mt,!0);k(mt);var zt=q(mt,2),qt=E(zt);k(zt),k(yt),Ye(tr=>{zr(yt,1,`btn btn-xs flex gap-1 py-3 text-sm max-sm:max-w-32 ${tr??""}`),xr(It,"data-tip",x(vt).name),fe(wt,x(vt).flag),fe(Dt,x(dt).name),fe(qt,`#${x(dt).number??""}`)},[()=>Oi(x(dt).cityId)]),G(at,yt)},tt=at=>{var dt=lR();G(at,dt)};je(et,at=>{var dt;(dt=x(f))!=null&&dt.region?at(De):at(tt,!1)})}k(rt),k(ze);var nt=q(ze,2);nt.__click=me;var Ze=E(nt);_l(Ze,{class:"size-4"}),k(nt),k(Re);var ke=q(Re,2),bt=E(ke);{var te=at=>{var dt=cR();G(at,dt)},re=at=>{var dt=er(),vt=Ct(dt);{var yt=wt=>{var mt=bi();Ye(Dt=>fe(mt,Dt),[()=>_C()]),G(wt,mt)},It=wt=>{const mt=ft(()=>x(f).paintedBy);var Dt=SR(),zt=E(Dt),qt=E(zt);k(zt);var tr=q(zt,2),Qt=E(tr);lo(Qt,{class:"size-5 border-0",get userId(){return x(mt).id},get pictureUrl(){return x(mt).picture}}),k(tr);var Ot=q(tr,2),fr=E(Ot),kr=E(fr),Ar=E(kr,!0);k(kr);var rr=q(kr,2),Kt=E(rr);k(rr),k(fr);var or=q(fr,2);{var Sr=Ie=>{const be=ft(()=>So(x(mt).equippedFlag));var Oe=uR(),st=E(Oe,!0);k(Oe),Ye(()=>{xr(Oe,"data-tip",x(be).name),fe(st,x(be).flag)}),G(Ie,Oe)};je(or,Ie=>{x(mt).equippedFlag&&Ie(Sr)})}var Dr=q(or,2);{var Zr=Ie=>{Ah(Ie,{get username(){return x(mt).discord},get id(){return x(mt).discordId}})};je(Dr,Ie=>{x(mt).discord&&Ie(Zr)})}var se=q(Dr,2);{var j=Ie=>{var be=pR(),Oe=Ct(be),st=E(Oe,!0);k(Oe);var $e=q(Oe,2);{var Mt=xe=>{var Ft=dR();Ft.__click=[hR,mt];var cr=E(Ft);Dm(cr,{class:"size-3"}),k(Ft),Ye((Jt,Tr)=>{zr(Ft,1,Jt),xr(Ft,"title",Tr)},[()=>Ko(Oi(x(mt).allianceId)),()=>Fx({allianceId:x(mt).allianceId})]),G(xe,Ft)};je($e,xe=>{var Ft,cr,Jt;(((Ft=kt.data)==null?void 0:Ft.role)==="admin"||((cr=kt.data)==null?void 0:cr.role)==="moderator"||((Jt=kt.data)==null?void 0:Jt.role)==="global_moderator")&&xe(Mt)})}Ye((xe,Ft)=>{zr(Oe,1,`badge badge-sm ml-0.5 border-0 ${xe??""} ${Ft??""}`),fe(st,x(mt).allianceName)},[()=>dp(x(mt).allianceId),()=>Oi(x(mt).allianceId)]),G(Ie,be)};je(se,Ie=>{x(mt).allianceId&&Ie(j)})}var Z=q(se,2);{var X=Ie=>{var be=fR(),Oe=E(be);Wg(Oe,{class:"text-error size-4"}),k(be),Ye(st=>xr(be,"data-tip",st),[()=>Wv()]),G(Ie,be)},ae=Ie=>{var be=er(),Oe=Ct(be);{var st=$e=>{var Mt=mR(),xe=E(Mt);Wf(xe,{class:"text-error size-4"}),k(Mt),Ye(Ft=>xr(Mt,"data-tip",Ft),[()=>Ex()]),G($e,Mt)};je(Oe,$e=>{x(f).paintedBy.timedOut&&$e(st)},!0)}G(Ie,be)};je(Z,Ie=>{x(f).paintedBy.banned?Ie(X):Ie(ae,!1)})}k(Ot);var de=q(Ot,2);{var Se=Ie=>{var be=CR(),Oe=E(be),st=E(Oe);Um(st,{class:"size-4"}),k(Oe);var $e=q(Oe,2);hi($e,21,()=>x(ve),hp,(Mt,xe)=>{var Ft=er(),cr=Ct(Ft);{var Jt=Xr=>{var dn=gR(),xn=E(dn);let mn;xn.__click=[_R,Me];var jt=E(xn);W0(jt,{class:"size-5"});var Et=q(jt);k(xn),k(dn),Ye((hr,ht)=>{mn=zr(xn,1,"text-error py-2 font-medium",null,mn,hr),fe(Et,` ${ht??""}`)},[()=>({"cursor-not-allowed":x(B)}),()=>bx()]),G(Xr,dn)},Tr=Xr=>{var dn=er(),xn=Ct(dn);{var mn=Et=>{var hr=yR(),ht=E(hr);let Hr;ht.__click=[vR,Me];var Yr=E(ht);Wf(Yr,{class:"size-5"});var qr=q(Yr);k(ht),k(hr),Ye((_t,Ge)=>{Hr=zr(ht,1,"text-error font-medium",null,Hr,_t),fe(qr,` ${Ge??""}`)},[()=>({"cursor-not-allowed":x(B)}),()=>wx()]),G(Et,hr)},jt=Et=>{var hr=er(),ht=Ct(hr);{var Hr=qr=>{var _t=bR(),Ge=E(_t);let At;Ge.__click=[xR,Me];var Rt=E(Ge);Wg(Rt,{class:"size-5"});var Yt=q(Rt);k(Ge),k(_t),Ye((br,Er)=>{At=zr(Ge,1,"text-error font-medium",null,At,br),fe(Yt,` ${Er??""}`)},[()=>({"cursor-not-allowed":x(B)}),()=>Tx()]),G(qr,_t)},Yr=qr=>{var _t=er(),Ge=Ct(_t);{var At=Rt=>{var Yt=TR(),br=E(Yt);br.__click=[wR,s,mt,H,N,o];var Er=E(br);tR(Er,{class:"size-5"});var ur=q(Er);k(br),k(Yt),Ye(rn=>fe(ur,` ${rn??""}`),[()=>Hv()]),G(Rt,Yt)};je(Ge,Rt=>{x(xe)==="ban-alliance"&&Rt(At)},!0)}G(qr,_t)};je(ht,qr=>{x(xe)==="ban-user"?qr(Hr):qr(Yr,!1)},!0)}G(Et,hr)};je(xn,Et=>{x(xe)==="timeout-user"?Et(mn):Et(jt,!1)},!0)}G(Xr,dn)};je(cr,Xr=>{x(xe)==="report-user"?Xr(Jt):Xr(Tr,!1)})}G(Mt,Ft)}),k($e),k(be),G(Ie,be)};je(de,Ie=>{x(ve).length>0&&Ie(Se)})}k(Dt),Ye((Ie,be)=>{var Oe;fe(qt,`${Ie??""}:`),zr(fr,1,`font-medium ${be??""} flex gap-1.5`),fe(Ar,((Oe=kt.data)==null?void 0:Oe.id)===x(mt).id?kt.data.name:x(mt).name),fe(Kt,`#${x(mt).id??""}`)},[()=>yC(),()=>Oi(x(mt).id)]),G(wt,Dt)};je(vt,wt=>{x(f).paintedBy.id===0?wt(yt):wt(It,!1)},!0)}G(at,dt)};je(bt,at=>{x(f)===void 0?at(te):at(re,!1)})}k(ke);var ge=q(ke,2),oe=E(ge);oe.__click=[PR,o];var Ae=E(oe);Eh(Ae,{class:"size-4.5"});var Ne=q(Ae);k(oe);var pt=q(oe,2);{var ot=at=>{const dt=ft(()=>kt.data.favoriteLocations.find(Dt=>Math.abs(Dt.latitude-x(N).center[0])<5e-5&&Math.abs(Dt.longitude-x(N).center[1])<5e-5)),vt=ft(()=>!x(dt)&&kt.data.favoriteLocations.length>=kt.data.maxFavoriteLocations);var yt=MR();let It;yt.__click=[IR,T,dt,N];var wt=E(yt);{let Dt=ft(()=>!!x(dt));iR(wt,{class:"size-4.5",get filled(){return x(Dt)}})}var mt=q(wt);k(yt),Ye((Dt,zt)=>{It=zr(yt,1,"btn btn-primary btn-soft",null,It,Dt),yt.disabled=x(T)||x(vt),fe(mt,` ${zt??""}`)},[()=>({"text-yellow-400":!!x(dt)}),()=>x(vt)?wC():SC()]),G(at,yt)};je(pt,at=>{kt.data&&at(ot)})}var ut=q(pt,2);ut.__click=[kR,o,N];var St=E(ut);a0(St,{class:"size-4.5"});var Bt=q(St);k(ut),k(ge),k(Ee),Po(Ee,at=>ce(z,at),()=>x(z)),Ye((at,dt)=>{fe(He,`Pixel: ${x(N).regionPixel[0]??""}, ${x(N).regionPixel[1]??""}`),oe.disabled=kt.loading,fe(Ne,` ${at??""}`),fe(Bt,` ${dt??""}`)},[()=>$v(),()=>MC()]),fp("innerHeight",at=>ce(M,at,!0)),G(m,Ee),Fr()}Qn(["click"]);var zR=Te(" ",1),LR=(m,o,f)=>{o(x(f))},DR=Te('
                      '),RR=Te('

                      No one has painted in this area yet.

                      '),BR=(m,o)=>{navigator.clipboard.writeText(x(o).map(f=>f.id).join(", ")),Nr.success("Player IDs copied to clipboard")},FR=(m,o,f,y,M)=>{o.crosshair.clear(),f(x(y).painted),ce(M,x(y).id,!0)},OR=Te(" "),NR=Te('
                      '),jR=Te('
                      Player Pixels Painted
                      '),VR=Te('

                      Selected area

                      ');function qR(m,o){Br(o,!0);let f=xi([]),y=ct(xi([])),M=ct(!1),z=ct(void 0);Dn(()=>{const H=o.map.on("click",async me=>{if(f.length>=2){o.onclose();return}if(f.push(me.lngLat),o.crosshair.place([me.lngLat.lat,me.lngLat.lng]),aa.plop.play(),f.length===2)try{ce(M,!0),ce(y,await T(f[0],f[1]),!0),s(x(y))}finally{ce(M,!1)}});return()=>{H.unsubscribe(),o.crosshair.clear()}});async function T(H,me){const ve=new fl(o.tileSize),[Me,Ee]=ve.latLonToPixelsFloor(H.lat,H.lng,o.pixelArtZoom),[Re,ze]=ve.latLonToPixelsFloor(me.lat,me.lng,o.pixelArtZoom),[Fe,Ke]=[Math.min(Me,Re),Math.min(Ee,ze)],[rt,qe]=[Math.max(Me,Re),Math.max(Ee,ze)],He=rt-Fe,et=qe-Ke;if(He*et>1e6)return Nr.error("The selected area is too big. Please select an area smaller than 1,000,000 pixels."),[];const tt=Math.floor(Fe/o.tileSize),nt=Math.floor(Ke/o.tileSize),Ze=Math.floor(rt/o.tileSize),ke=Math.floor(qe/o.tileSize),bt=Ze-tt+1,te=ke-nt+1,re=new Array(te).fill(0).flatMap((ot,ut)=>new Array(bt).fill(0).map(async(St,Bt)=>{const at=tt+Bt,dt=nt+ut;let vt=0,yt=0,It=o.tileSize-1,wt=o.tileSize-1;dt===nt&&(yt=Ke%o.tileSize),at===tt&&(vt=Fe%o.tileSize),dt===ke&&(wt=qe%o.tileSize),at===Ze&&(It=rt%o.tileSize);const tr=[at,dt],Qt=[vt,yt],Ot=[It,wt];return{response:await en.getPixelAreaInfo({season:o.season,tile:tr,p0:Qt,p1:Ot}),tile:tr,p0:Qt,p1:Ot}})),ge=await Promise.all(re),oe=new Map;for(const{response:ot,p0:ut,p1:St,tile:Bt}of ge){const[at,dt]=Bt,[vt,yt]=ut,[It,wt]=St,mt=It-vt+1,Dt=wt-yt+1;for(let zt=0;ztot.id),pt=[...oe.entries()].map(([ot,ut])=>({...Ne[ot]??{id:ot,name:"Player"},painted:ut}));return pt.sort((ot,ut)=>ut.painted.latitudes.length-ot.painted.latitudes.length),pt}function s(H){for(const me of H)B(me.painted);ce(z,void 0)}function B(H){for(let me=0;me{al(H,{class:"bg-warning",children:(me,ve)=>{var Me=zR(),Ee=Ct(Me);Gu(Ee,{class:"inline size-5"});var Re=q(Ee,2);{var ze=Ke=>{var rt=bi();Ye(qe=>fe(rt,qe),[()=>Jv()]),G(Ke,rt)},Fe=Ke=>{var rt=er(),qe=Ct(rt);{var He=et=>{var De=bi();Ye(tt=>fe(De,tt),[()=>Qv()]),G(et,De)};je(qe,et=>{f.length===1&&et(He)},!0)}G(Ke,rt)};je(Re,Ke=>{f.length===0?Ke(ze):Ke(Fe,!1)})}G(me,Me)},$$slots:{default:!0}})},ie=H=>{const me=ft(()=>x(y).filter(Ze=>Ze.id!==0));var ve=VR(),Me=E(ve),Ee=E(Me),Re=E(Ee),ze=E(Re);ze.__click=[LR,s,y];var Fe=E(ze);Gu(Fe,{class:"size-4"}),k(ze);var Ke=q(ze,4),rt=E(Ke);k(Ke),k(Re);var qe=q(Re,2);qe.__click=function(...Ze){var ke;(ke=o.onclose)==null||ke.apply(this,Ze)};var He=E(qe);_l(He,{class:"size-4"}),k(qe),k(Ee);var et=q(Ee,2),De=E(et);{var tt=Ze=>{var ke=DR();G(Ze,ke)},nt=Ze=>{var ke=er(),bt=Ct(ke);{var te=ge=>{var oe=RR();G(ge,oe)},re=ge=>{var oe=jR(),Ae=E(oe),Ne=E(Ae),pt=E(Ne),ot=q(E(pt)),ut=q(E(ot));ut.__click=[BR,me];var St=E(ut);Dm(St,{class:"size-3"}),k(ut),k(ot),vn(),k(pt),k(Ne);var Bt=q(Ne);hi(Bt,23,()=>x(me),at=>at.id,(at,dt,vt)=>{var yt=NR();let It;yt.__click=[FR,o,B,dt,z];var wt=E(yt),mt=E(wt,!0);k(wt);var Dt=q(wt),zt=E(Dt);lo(zt,{class:"size-5 border-0",get userId(){return x(dt).id},get pictureUrl(){return x(dt).picture}});var qt=q(zt,2),tr=E(qt),Qt=E(tr),Ot=E(Qt,!0);k(Qt);var fr=q(Qt,2),kr=E(fr);k(fr),k(tr);var Ar=q(tr,2);{var rr=Sr=>{var Dr=OR(),Zr=E(Dr,!0);k(Dr),Ye((se,j)=>{zr(Dr,1,`badge badge-sm ml-0.5 border-0 ${se??""} ${j??""}`),fe(Zr,x(dt).allianceName)},[()=>dp(x(dt).allianceId),()=>Oi(x(dt).allianceId)]),G(Sr,Dr)};je(Ar,Sr=>{x(dt).allianceId&&Sr(rr)})}k(qt),k(Dt);var Kt=q(Dt),or=E(Kt,!0);k(Kt),k(yt),Ye((Sr,Dr,Zr)=>{It=zr(yt,1,"hover:bg-base-200 cursor-pointer",null,It,Sr),fe(mt,x(vt)+1),zr(tr,1,`font-medium ${Dr??""} flex gap-1.5`),fe(Ot,x(dt).name),fe(kr,`#${x(dt).id??""}`),fe(or,Zr)},[()=>({"!bg-base-300":x(dt).id===x(z)}),()=>Oi(x(dt).id),()=>x(dt).painted.latitudes.length.toLocaleString()]),G(at,yt)}),k(Bt),k(Ae),k(oe),G(ge,oe)};je(bt,ge=>{x(me).length===0?ge(te):ge(re,!1)},!0)}G(Ze,ke)};je(De,Ze=>{x(M)?Ze(tt):Ze(nt,!1)})}k(et),k(Me),k(ve),Ye(Ze=>fe(rt,`(Pixels: ${Ze??""})`),[()=>x(y).reduce((Ze,ke)=>Ze+ke.painted.latitudes.length,0)]),ki(3,ve,()=>Gd,()=>({duration:100})),G(H,ve)};je(Y,H=>{f.length<2?H(K):H(ie,!1)})}G(m,N),Fr()}Qn(["click"]);function ZR(m){var y;const o=document.createElement("div");(y=m.parentElement)==null||y.insertBefore(o,m.nextSibling);const f=new IntersectionObserver(M=>{M[0].isIntersecting?m.classList.remove("stuck"):m.classList.add("stuck")},{threshold:0,rootMargin:"0px"});return f.observe(o),()=>{o.remove(),f.disconnect()}}var Sm;(m=>{function o(){let f,y;return{promise:new Promise((z,T)=>{f=z,y=T}),resolve:f,reject:y}}m.withResolvers=o})(Sm||(Sm={}));var UR=Cr(''),$R=Cr('');function GR(m,o){let f=ir(o,["$$slots","$$events","$$legacy","filled"]);var y=er(),M=Ct(y);{var z=s=>{var B=UR();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)},T=s=>{var B=$R();ar(B,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(s,B)};je(M,s=>{o.filled?s(z):s(T,!1)})}G(m,y)}var HR=Te("

                      "),WR=Te(''),XR=Te(''),YR=Te(''),KR=Te(' ',1),JR=Te(' '),QR=Te(''),e7=Te('

                      '),t7=(m,o)=>{ce(o,!x(o))},r7=Te('

                      Flags

                      ');function n7(m,o){Br(o,!0);const f=(Fe,Ke=pa,rt=pa)=>{const qe=ft(()=>{var ut;return(((ut=kt.data)==null?void 0:ut.droplets)??0)>=s.price}),He=ft(()=>x(N)===Ke().id),et=ft(()=>y.has(Ke().id));var De=e7(),tt=E(De),nt=E(tt,!0);k(tt);var Ze=q(tt,2),ke=E(Ze),bt=q(ke);{var te=ut=>{var St=HR(),Bt=E(St);Uu(Bt,{class:"text-base-content/60 size-4.5 inline pb-0.5"}),k(St),Ye(at=>{zr(St,1,Ko({"tooltip inline":!0,"lg:before:-translate-x-1/3":(rt()+1)%4===0,"lg:before:translate-x-1/3":rt()%4===0,"before:-translate-x-1/3":(rt()+1)%2===0,"before:translate-x-1/3":rt()%2===0})),xr(St,"data-tip",at)},[()=>uI()]),G(ut,St)};je(bt,ut=>{x(et)&&ut(te)})}k(Ze);var re=q(Ze,2);{var ge=ut=>{Wm(ut,{})};je(re,ut=>{Ke().id===x(Y)&&ut(ge)})}var oe=q(re,2);let Ae;var Ne=E(oe);{var pt=ut=>{var St=XR();St.__click=async()=>{if(!(x(et)&&!await o.promptUserConfirmation(Ke().name)))try{const yt=Ke().id;ce(N,yt,!0),await en.purchase({id:T,amount:1,variant:yt}),kt.refresh(),aa.notification1.play();const It=z.find(wt=>wt.id===yt);It&&(It.owned=!0),ce(Y,yt,!0)}catch(yt){Nr.error(yt.message)}finally{ce(N,void 0)}};var Bt=E(St);{var at=yt=>{var It=WR();G(yt,It)};je(Bt,yt=>{x(He)&&yt(at)})}var dt=q(Bt,2);pp(dt,{class:"size-4"});var vt=q(dt);vn(),k(St),Ye(yt=>{St.disabled=!x(qe)||x(He),fe(vt,` ${yt??""} `)},[()=>s.price.toLocaleString("en-US")]),G(ut,St)},ot=ut=>{const St=ft(()=>{var zt;return((zt=kt.data)==null?void 0:zt.equippedFlag)===Ke().id});var Bt=QR();let at;Bt.__click=async()=>{try{ce(N,Ke().id,!0);const zt=x(St)?0:Ke().id;await en.equipFlag(zt),kt.data&&(kt.data.equippedFlag=zt),kt.refresh()}catch(zt){Nr.error(zt.message)}finally{ce(N,void 0)}};var dt=E(Bt),vt=E(dt,!0);k(dt);var yt=q(dt,2);{var It=zt=>{var qt=YR();G(zt,qt)};je(yt,zt=>{x(He)&&zt(It)})}var wt=q(yt,2);{var mt=zt=>{var qt=KR(),tr=Ct(qt);_l(tr,{class:"size-4"});var Qt=q(tr,2),Ot=E(Qt,!0);k(Qt),Ye(fr=>fe(Ot,fr),[()=>Aw()]),G(zt,qt)},Dt=zt=>{var qt=JR(),tr=E(qt,!0);k(qt),Ye(Qt=>fe(tr,Qt),[()=>Lw()]),G(zt,qt)};je(wt,zt=>{x(St)?zt(mt):zt(Dt,!1)})}k(Bt),Ye((zt,qt)=>{at=zr(Bt,1,"btn btn-lg sm:btn-md tooltip tooltip-bottom relative h-10",null,at,zt),Bt.disabled=x(He),fe(vt,qt)},[()=>({"btn-warning":x(St)}),()=>Iw()]),G(ut,Bt)};je(Ne,ut=>{Ke().owned?ut(ot,!1):ut(pt)})}k(oe),k(De),Ye((ut,St)=>{fe(nt,Ke().flag),fe(ke,`${Ke().name??""} `),Ae=zr(oe,1,"mt-3",null,Ae,ut),xr(oe,"data-tip",St)},[()=>({tooltip:!x(qe)}),()=>_p()]),G(Fe,De)},y=new Set([8,30,32,84,96,125,143,146,150,192,200,236,240,251]),M=Hi.countries.map(Fe=>({...Fe,owned:kt.flagsBitmap.get(Fe.id)}));M.sort((Fe,Ke)=>Number(Ke.owned)-Number(Fe.owned));const z=xi(M),T=110,s=Hi.products[T];let B=ct(!1),N=ct(void 0),Y=ct(void 0);var K=r7(),ie=E(K),H=E(ie);GR(H,{class:"size-5.5",filled:!0}),vn(2),k(ie);var me=q(ie,2),ve=E(me,!0);k(me);var Me=q(me,2);hi(Me,23,()=>z,Fe=>Fe.id,(Fe,Ke,rt)=>{var qe=er(),He=Ct(qe);{var et=De=>{f(De,()=>x(Ke),()=>x(rt))};je(He,De=>{(x(rt)<8||x(B))&&De(et)})}G(Fe,qe)}),k(Me);var Ee=q(Me,2),Re=E(Ee);Re.__click=[t7,B];var ze=E(Re,!0);k(Re),k(Ee),k(K),Ye(Fe=>{fe(ve,Fe),fe(ze,x(B)?"Show less":"Show more")},[()=>Cw()]),G(m,K),Fr()}Qn(["click"]);var i7=Te('

                      '),a7=(m,o)=>{kv(o,-1)},o7=(m,o)=>{kv(o)},s7=(m,o,f)=>{o(x(f))},l7=Te(''),c7=async(m,o,f,y)=>{try{ce(o,!0),await en.purchase({id:f.productId,amount:y()}),aa.notification1.play(),f.onpurchasecompleted(y())}catch(M){Nr.error(M.message)}finally{ce(o,!1)}},u7=Te(''),h7=Te('

                      ');function Sv(m,o){Br(o,!0);let f=Lt(o,"amount",15,1);const y=ft(()=>f()*o.unitPrice),M=ft(()=>Math.floor(o.userDroplets/o.unitPrice));let z=ct(!1);Wr(()=>{f()<0&&f(0)});var T=h7(),s=E(T),B=E(s);oi(B,()=>o.icon??pa),k(s);var N=q(s,2),Y=E(N,!0);k(N);var K=q(N,2);{var ie=De=>{var tt=i7(),nt=E(tt,!0);k(tt),Ye(()=>fe(nt,o.subtitle)),G(De,tt)};je(K,De=>{o.subtitle&&De(ie)})}var H=q(K,2),me=E(H);me.__click=[a7,f];var ve=q(me,2);uo(ve);var Me=q(ve,2);Me.__click=[o7,f];var Ee=q(Me,2);{var Re=De=>{var tt=l7();tt.__click=[s7,f,M],G(De,tt)};je(Ee,De=>{f(){var tt=u7();G(De,tt)};je(rt,De=>{x(z)&&De(qe)})}var He=q(rt,2);pp(He,{class:"size-4"});var et=q(He);vn(),k(Ke),k(ze),k(T),Ye((De,tt,nt,Ze)=>{fe(Y,De),Me.disabled=f()>=x(M),xr(ze,"data-tip",tt),Fe=zr(ze,1,"",null,Fe,nt),Ke.disabled=o.userDropletso.title(f()),()=>_p(),()=>({tooltip:o.userDropletsx(y).toLocaleString("en-US")]),zm(ve,f),G(m,T),Fr()}Qn(["click"]);var d7=Cr('');function p7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=d7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var f7=Cr('');function X0(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=f7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var m7=Cr('');function _7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=m7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var g7=Cr('');function v7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=g7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var y7=Te(''),x7=Te(''),b7=(m,o,f)=>{var y;(y=x(o))==null||y.resolve(!1),x(f).close()},w7=(m,o,f)=>{var y;(y=x(o))==null||y.resolve(!0),x(f).close()},T7=Te(' ',1);function C7(m,o){Br(o,!0);let f=Lt(o,"open",15),y=ct(null),M=ct(xi({name:Kg(),prev:1e3,new:1e5}));Dn(()=>{const Ot=fr=>{fr.key==="Escape"&&f(!1)};return document.addEventListener("keydown",Ot),()=>document.removeEventListener("keydown",Ot)});const z={id:70,product:Hi.products[70]},T={id:80,product:Hi.products[80]},s={product:Hi.products[120]};let B=ct(null),N=ct(null),Y=ct("");async function K(Ot){return x(B).showModal(),ce(N,Sm.withResolvers(),!0),ce(Y,Ot,!0),x(N).promise}var ie=T7(),H=Ct(ie),me=E(H),ve=E(me);{var Me=Ot=>{var fr=y7(),kr=E(fr),Ar=E(kr),rr=E(Ar);X0(rr,{class:"size-8"});var Kt=q(rr,2),or=E(Kt,!0);k(Kt);var Sr=q(Kt,2),Dr=E(Sr);{let Yt=ft(()=>{var br;return((br=kt.data)==null?void 0:br.droplets)??0});Fv(Dr,{get value(){return x(Yt)}})}k(Sr),vn(2),k(Ar),k(kr),Wi(kr,()=>ZR);var Zr=q(kr,2),se=E(Zr),j=E(se),Z=E(j);p7(Z,{class:"size-5.5",filled:!0});var X=q(Z,2),ae=E(X,!0);k(X),k(j);var de=q(j,2),Se=E(de,!0);k(de);var Ie=q(de,2),be=E(Ie);{const Yt=Er=>{v7(Er,{class:"text-primary size-26"})};let br=ft(()=>k2());Sv(be,{get productId(){return z.id},title:Er=>P2({amount:z.product.items[0].amount*Er}),get subtitle(){return x(br)},get unitPrice(){return z.product.price},get userDroplets(){return kt.data.droplets},onpurchasecompleted:async Er=>{var pn,_n,sn,En;const ur=(_n=(pn=kt.data)==null?void 0:pn.charges)==null?void 0:_n.max;await kt.refresh();const rn=(En=(sn=kt.data)==null?void 0:sn.charges)==null?void 0:En.max;ur!==void 0&&rn!==void 0&&(ce(M,{name:Kg(),prev:ur,new:rn},!0),x(y).show())},icon:Yt,$$slots:{icon:!0}})}var Oe=q(be,2);{const Yt=Er=>{U0(Er,{class:"text-primary my-3 size-20"})};let br=ft(()=>g2());Sv(Oe,{get productId(){return T.id},title:Er=>_3({amount:T.product.items[0].amount*Er}),get subtitle(){return x(br)},get unitPrice(){return T.product.price},get userDroplets(){return kt.data.droplets},onpurchasecompleted:async Er=>{var rn,pn,_n;const ur=(pn=(rn=kt.data)==null?void 0:rn.charges)==null?void 0:pn.count;await kt.refresh(),ur!==void 0&&(ce(M,{name:p3(),prev:Math.floor(ur),new:Math.floor(ur+T.product.items[0].amount*Er)},!0),(_n=x(y))==null||_n.show())},icon:Yt,$$slots:{icon:!0}})}k(Ie),k(se);var st=q(se,2),$e=E(st),Mt=E($e);vp(Mt,{class:"size-5.5",filled:!0});var xe=q(Mt,2),Ft=E(xe,!0);k(xe),k($e);var cr=q($e,2),Jt=E(cr),Tr=E(Jt),Xr=E(Tr),dn=E(Xr),xn=E(dn);Ov(xn,{get userId(){return kt.data.id},get level(){return kt.data.level},get pictureUrl(){return kt.data.picture}}),k(dn),k(Xr),k(Tr);var mn=q(Tr,2),jt=E(mn,!0);k(mn);var Et=q(mn,2),hr=E(Et,!0);k(Et);var ht=q(Et,2);let Hr;var Yr=E(ht),qr=E(Yr),_t=E(qr);pp(_t,{class:"size-4"});var Ge=q(_t);vn(),k(qr),k(Yr),k(ht),k(Jt),k(cr),k(st);var At=q(st,2),Rt=E(At);n7(Rt,{promptUserConfirmation:K}),k(At),k(Zr),k(fr),Ye((Yt,br,Er,ur,rn,pn,_n,sn,En)=>{fe(or,Yt),fe(ae,br),fe(Se,Er),fe(Ft,ur),fe(jt,rn),fe(hr,pn),xr(ht,"data-tip",_n),Hr=zr(ht,1,"",null,Hr,sn),qr.disabled=kt.data.dropletsqv(),()=>x2(),()=>T2(),()=>bw(),()=>z2(),()=>R2(),()=>_p(),()=>({tooltip:kt.data.dropletss.product.price.toLocaleString("en-US")]),ki(2,fr,()=>ia),G(Ot,fr)};je(ve,Ot=>{kt.data&&f()&&Ot(Me)})}k(me);var Ee=q(me,2),Re=E(Ee),ze=E(Re,!0);k(Re),k(Ee),k(H),Wi(H,()=>Ot=>{Wr(()=>{f()?Ot.show():Ot.close()})});var Fe=q(H,2),Ke=E(Fe),rt=E(Ke),qe=E(rt),He=E(qe,!0);k(qe);var et=q(qe,2),De=E(et),tt=E(De),nt=q(tt),Ze=E(nt);k(nt),k(De);var ke=q(De,2),bt=E(ke);_7(bt,{class:"size-5"}),k(ke);var te=q(ke,2),re=E(te,!0);k(te),k(et);var ge=q(et,2),oe=E(ge),Ae=E(oe),Ne=q(Ae);ju(Ne,()=>x(M).new,Ot=>{var fr=x7(),kr=E(fr);Wm(kr,{}),k(fr),G(Ot,fr)}),k(oe),k(ge),k(rt),k(Ke);var pt=q(Ke,2),ot=E(pt),ut=E(ot,!0);k(ot),k(pt),k(Fe),Po(Fe,Ot=>ce(y,Ot),()=>x(y));var St=q(Fe,2),Bt=E(St),at=E(Bt),dt=E(at,!0);k(at);var vt=q(at,2),yt=E(vt);Mm(yt,()=>_I({country:x(Y)})),k(vt);var It=q(vt,2),wt=E(It);wt.__click=[b7,N,B];var mt=E(wt,!0);k(wt);var Dt=q(wt,2);Dt.__click=[w7,N,B];var zt=E(Dt,!0);k(Dt),k(It),k(Bt);var qt=q(Bt,2),tr=E(qt),Qt=E(tr,!0);k(tr),k(qt),k(St),Po(St,Ot=>ce(B,Ot),()=>x(B)),Ye((Ot,fr,kr,Ar,rr,Kt,or)=>{fe(ze,Ot),fe(He,x(M).name),fe(tt,`${x(M).prev??""} `),fe(Ze,`(+${x(M).new-x(M).prev})`),fe(re,x(M).new),fe(Ae,`${fr??""} `),fe(ut,kr),fe(dt,Ar),fe(mt,rr),fe(zt,Kt),fe(Qt,or)},[()=>cl(),()=>cl(),()=>cl(),()=>pI(),()=>up(),()=>Vx(),()=>cl()]),Ai("close",H,()=>f(!1)),G(m,ie),Fr()}Qn(["click"]);var S7=Cr('');function P7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=S7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var I7=Cr('');function M7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=I7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var k7=Cr('');function A7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=k7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var E7=Cr('');function z7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=E7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var L7=Cr('');function D7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=L7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var R7=Cr('');function B7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=R7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}var F7=Cr('');function O7(m,o){let f=ir(o,["$$slots","$$events","$$legacy"]);var y=F7();ar(y,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -960 960 960",fill:"currentColor",...f})),G(m,y)}function $f(m){const o=document.createElement("img");return o.src=m,new Promise((f,y)=>{o.addEventListener("load",()=>{f(o)}),o.addEventListener("error",M=>{y(M)})})}function N7(m){const o=document.createElement("canvas");o.width=m.naturalWidth,o.height=m.naturalHeight;const f=o.getContext("2d");return f==null||f.drawImage(m,0,0),o}function j7(m,o,f){return mf?f:m}function V7(m,o){const f=10**o;return Math.round(m*f)/f}var q7=Te(' ',1),Z7=(m,o)=>{ce(o,!x(o))},U7=Te(""),$7=async(m,o,f,y)=>{var M;x(o)||ce(o,await new Promise((z,T)=>{navigator.geolocation.getCurrentPosition(s=>{z(s)},s=>{T(s)})})),x(o)&&(Co({lat:x(o).coords.latitude,lng:x(o).coords.longitude},x(f)),(M=x(y))==null||M.flyTo({center:{lat:x(o).coords.latitude,lng:x(o).coords.longitude},zoom:16.5}))},G7=Te('
                      ?
                      '),H7=Te(''),W7=(m,o,f,y)=>{var M;ce(o,!0),x(f)&&Co((M=x(f))==null?void 0:M.getCenter(),x(y))},X7=Te(''),Y7=Te(''),K7=Te('
                      '),J7=(m,o,f,y)=>{var z;ce(o,!0);const M=(z=x(f))==null?void 0:z.getCenter();M&&Co(M,x(y))},Q7=Te(''),e9=(m,o)=>{ce(o,!0)},t9=Te(''),r9=(m,o)=>{ce(o,!0)},n9=Te(''),i9=Te('
                      '),a9=(m,o)=>{ce(o,!x(o))},o9=Te('
                      '),s9=Te('
                      '),l9=(m,o)=>{ce(o,!0)},c9=Te(''),u9=(m,o)=>{var f;(f=x(o))==null||f.zoomIn()},h9=(m,o)=>{var f;(f=x(o))==null||f.zoomOut()},d9=(m,o)=>{ce(o,{name:"getPixelAreaInfo"},!0)},p9=Te(''),f9=Te(''),m9=()=>{window.location.replace(vi.url.origin)},_9=Te(''),g9=(m,o)=>{x(o)&&hl.goToPrev(x(o))},v9=Te(''),y9=Te('
                      '),x9=(m,o,f)=>{var y;(y=x(o))==null||y.flyTo({center:x(o).getCenter(),zoom:f})},b9=Te(''),w9=Te(""),T9=Te('
                      '),C9=Te('
                      '),S9=Te('
                      '),P9=(m,o)=>{ce(o,{name:"mainMenu"},!0)},I9=Te('
                      '),M9=Te('
                      ',1);function _B(m,o){Br(o,!0);const f=zf,y=hx,M=new fl(y),z=f-.4,T=RI(vi.url),s=T.season??Gg,B=new Map;let N=ct(void 0),Y=ct(14.5),K=ct(!1);const ie=ft(()=>{var xt;return((xt=kt.data)==null?void 0:xt.id)===401});let H=ct(!1),me=ct(xi(T.select&&T.pos?{name:"pixelSelected",latLon:[T.pos.lat,T.pos.lng]}:{name:"mainMenu"}));Dn(()=>{Re().then(Rr=>ce(N,Rr));let xt=[0,0];function Wt(Rr){var yn;if(x(N)&&x(Y)>f+1){const{lat:On,lng:Xn}=x(N).unproject([Rr.clientX,Rr.clientY]),Vn=M.latLonToPixels(On,Xn,f),wn=Math.floor(Vn[0]),Ji=Math.floor(Vn[1]);if(xt[0]!==wn||xt[1]!==Ji){const sr=M.latLonToPixelBoundsLatLon(On,Xn,f),Ut=jm(sr,!0);(yn=x(N).getSource(Ke))==null||yn.setCoordinates(Ut),xt=[wn,Ji]}}}return window.addEventListener("mousemove",Wt),()=>{var Rr;(Rr=x(N))==null||Rr.remove(),window.removeEventListener("mousemove",Wt),Ee&&clearInterval(Ee),Gf()}}),dl(()=>[ai.theme],()=>{if(x(N)){Me=!1;const xt=ve(ai.theme);x(N).setStyle(xt)}});function ve(xt){return`https://maps.wplace.live/styles/${xt==="custom-winter"?"liberty":"fiord"}`}let Me=!1,Ee;async function Re(){const xt=T.pos?{...T.pos,zoom:x(Y)}:await SI();T.zoom!==void 0&&(xt.zoom=T.zoom);const Wt=await new Promise(Vn=>{const wn=new Vd.Map({style:ve(ai.theme),center:xt,zoom:xt.zoom,container:"map",dragRotate:!1,doubleClickZoom:!1,pitch:0,maxPitch:0,attributionControl:!1});wn.touchZoomRotate.disableRotation(),wn.on("styledata",Ji=>{Me||(ai.theme==="custom-winter"&&(wn.setLayoutProperty("poi_transit","visibility","none"),wn.setLayoutProperty("poi_r20","visibility","none"),wn.setLayoutProperty("poi_r7","visibility","none"),wn.setLayoutProperty("poi_r1","visibility","none"),wn.setLayoutProperty("building","visibility","none"),wn.setLayoutProperty("building-3d","visibility","none"),wn.setLayoutProperty("landuse_pitch","visibility","none"),wn.setLayoutProperty("landuse_hospital","visibility","none"),wn.setLayoutProperty("landuse_school","visibility","none"),wn.setLayoutProperty("landuse_residential","visibility","none"),wn.setLayoutProperty("waterway_tunnel","visibility","none"),wn.setFilter("water",["all",["!=","brunnel","tunnel"],["!=","class","swimming_pool"]])),Fe(wn),et(),Me=!0)}),wn.on("style.load",()=>{Vn(wn)})}),Rr=Hi.refreshIntervalMs;function yn(){let Vn=x(Y)>f+1.5?Rr:2.5*Rr;try{document.visibilityState==="visible"&&Fe(Wt)}finally{setTimeout(yn,Vn)}}Ee=setTimeout(yn,Rr),Wt.on("load",()=>{T.discordLinked&&(Nr.success(wS()),vi.url.searchParams.delete("discord-linked"),Im(vi.url.toString()))});let On=x(Y);Wt.on("zoom",()=>{ce(Y,Wt.getZoom(),!0);const Vn=V7(x(Y),1);Vn!=On&&(x(te)&&x(te).setOpacity(re(On)),On=Vn)});let Xn="default";return Wt.on("dragstart",()=>{const Vn=Wt.getCanvas();Xn=Vn.style.cursor,Vn.style.cursor="move"}),Wt.on("dragend",()=>{Wt.getCanvas().style.cursor=Xn}),Wt.on("mouseout",()=>{De()}),Wt.on("click",async Vn=>{var Ur;const wn=Vn.lngLat.lat,Ji=Vn.lngLat.lng,sr=[wn,Ji];if(x(me).name==="paintingPixel"||x(me).name==="getPixelAreaInfo")return;if(x(me).name==="selectHq"){x(me).hq=sr,(Ur=x(ge))==null||Ur.clearAndPlace(sr);return}const Ut=Wt.getZoom();if(Ut640?550:400}),xt.getLayer(ze)||xt.addLayer({id:ze,type:"raster",source:ze,paint:{"raster-resampling":"nearest","raster-opacity":x(nt)}})}const Ke="pixel-hover",rt=1e-5,qe=[[0,0],[rt,0],[rt,-rt],[0,-rt]],He=.4;async function et(){var xt,Wt,Rr,yn;if(!((xt=x(N))!=null&&xt.getSource(Ke))){const On=N7(await $f(TI));(Wt=x(N))==null||Wt.addSource(Ke,{type:"canvas",canvas:On,coordinates:qe})}(Rr=x(N))!=null&&Rr.getLayer(Ke)||(yn=x(N))==null||yn.addLayer({id:Ke,type:"raster",source:Ke,paint:{"raster-resampling":"nearest","raster-opacity":He}})}function De(){var xt,Wt;(Wt=(xt=x(N))==null?void 0:xt.getSource(Ke))==null||Wt.setCoordinates(qe)}let tt=ct(xi(T.opaque??!0)),nt=ft(()=>x(tt)?1:.1);Wr(()=>{var xt;(xt=x(N))!=null&&xt.getLayer(ze)&&x(N).setPaintProperty(ze,"raster-opacity",x(nt))});let Ze=ct(void 0),ke=ct(void 0),bt=ct(void 0);Dn(()=>(navigator.permissions.query({name:"geolocation"}).then(xt=>{xt.state==="granted"&&ce(bt,navigator.geolocation.watchPosition(Wt=>{ce(Ze,Wt)},Wt=>{ce(ke,Wt)},{enableHighAccuracy:!1,maximumAge:1e3,timeout:6e3}),!0)}),()=>{x(bt)&&navigator.geolocation.clearWatch(x(bt))}));let te=ct(void 0);dl(()=>[x(Ze),x(N)],()=>{var xt,Wt;if(x(Ze)&&x(N)){const Rr={lat:x(Ze).coords.latitude,lng:x(Ze).coords.longitude},yn=re(x(Y));if(!x(te)){const On=document.createElement("div");On.classList.add("maplibregl-user-location-dot"),On.classList.add("cursor-auto"),ce(te,new Vd.Marker({element:On,opacity:yn}).setLngLat(Rr).addTo(x(N)))}(Wt=(xt=x(te))==null?void 0:xt.setLngLat(Rr))==null||Wt.setOpacity(yn)}});function re(xt){return xt{var xt;x(N)&&((xt=ul(()=>x(ge)))==null||xt.clear(),$f(Jg).then(Wt=>{ce(ge,new ev({id:"select-crosshair",map:x(N),tileSize:y,zoom:f,img:Wt,markerFn:()=>{const Rr=new Vd.Marker({color:"#0069ff"});return Rr.addClassName("z-20"),Rr}}))}))});let oe=ct(void 0);Wr(()=>{var xt;x(N)&&((xt=ul(()=>x(ge)))==null||xt.clear(),$f(Jg).then(Wt=>{ce(oe,new ev({id:"paint-crosshair",map:x(N),tileSize:y,zoom:f,img:Wt}))}))});let Ae=ct(!1),Ne=ct(!1),pt=ct(!1),ot=ct(!!T.newUser),ut=ct(!1),St=ct(!!T.alliance),Bt=ct(!1);const at="void-message-2";let dt=ct(!1);Wr(()=>{const xt=localStorage.getItem(at);kt.data&&!xt&&(ce(dt,!0),localStorage.setItem(at,"true"))});let vt=ct(!1),yt=ct(xi(vi.url)),It=ct(xi({cityId:0,countryId:1,id:0,name:"None",number:1})),wt=ct(!1);const mt="view-rules";let Dt=!1;Wr(()=>{kt.data&&(!Dt&&kt.data.pixelsPainted>1&&(localStorage.getItem(mt)||(ce(wt,!0),localStorage.setItem(mt,"true"))),Dt=!0)});let zt=ct(!1);Wr(()=>{var xt;ce(zt,!!((xt=kt.data)!=null&&xt.needsPhoneVerification))});let qt=ct([]),tr=ft(()=>x(Y){var Wt;const xt=(Wt=kt.data)==null?void 0:Wt.favoriteLocations;if(xt&&x(N)){for(const Rr of ul(()=>x(qt)))Rr.remove();ce(qt,xt.map(Rr=>{const yn=document.createElement("div");yn.classList.add("text-yellow-400"),yn.classList.add("cursor-pointer"),yn.classList.add("z-10"),yn.innerHTML=` - - - `;const On={lat:Rr.latitude,lng:Rr.longitude};return yn.addEventListener("click",Vn=>{Vn.stopPropagation(),Qt([Rr.latitude,Rr.longitude])}),new Vd.Marker({element:yn,opacity:x(tr)}).setLngLat(On).addTo(x(N))}))}});function Qt(xt){var Rr;const Wt={lat:xt[0],lng:xt[1]};(Rr=x(N))==null||Rr.flyTo({center:Wt,zoom:Math.max(x(Y),15)}),Co(Wt,x(Y)),ce(me,{name:"pixelSelected",latLon:[Wt.lat,Wt.lng]},!0)}Wr(()=>{if(x(me).name==="paintingPixel")for(const xt of x(qt))xt.addClassName("hidden");else for(const xt of x(qt))xt.removeClassName("hidden"),xt.setOpacity(x(tr))});let Ot=Number.MAX_VALUE;Wr(()=>{if(kt.charges!==void 0&&kt.data){const xt=kt.data.charges.max,Wt=kt.charges;Ot=xt&&aa.notification1.play(),Ot=kt.charges}});let fr=ct(!1),kr=Date.now();Dn(()=>{const xt=DI(),Wt=()=>{var yn;if(!document.hidden&&Date.now()-kr>30*gc.min){if(xt){const Xn=(yn=x(N))==null?void 0:yn.getCenter();Xn&&Co(Xn,x(Y)),window.location.replace(vi.url.origin)}else kt.refresh();kr=Date.now()}};return document.addEventListener("visibilitychange",Wt),()=>document.removeEventListener("visibilitychange",Wt)}),Dn(()=>{function xt(){en.online=!0}window.addEventListener("online",xt);function Wt(){en.online=!1}return window.addEventListener("offline",Wt),()=>{window.removeEventListener("online",xt),window.removeEventListener("offline",Wt)}}),Wr(()=>{if(!en.online){const xt=setInterval(()=>{en.health().then(()=>{en.online=!0,!kt.data&&!kt.loading&&kt.refresh()})},5e3);return()=>{clearInterval(xt)}}}),Dn(()=>{function xt(Wt){Wt.data.type&&x(N)&&Fe(x(N))}return navigator.serviceWorker.addEventListener("message",xt),()=>{navigator.serviceWorker.removeEventListener("message",xt)}});let Ar=ct(!1),rr=ct("report-user"),Kt=ct(void 0),or=ct(void 0),Sr=ct(void 0),Dr=ct(0);var Zr=M9();rx(xt=>{var Wt=q7();tx.title="Wplace - Paint the world",vn(6),G(xt,Wt)});var se=Ct(Zr);{const xt=sr=>{var Ut=U7();Ut.__click=[Z7,tt];var Ur=E(Ut);{let lr=ft(()=>!x(tt));$0(Ur,{class:"size-5",get filled(){return x(lr)}})}k(Ut),Ye(lr=>{xr(Ut,"title",lr),zr(Ut,1,Ko({"btn btn-lg btn-square sm:btn-xl z-30 shadow-md":!0,"text-base-content/80":x(tt),"btn-primary btn-soft":!x(tt)}))},[()=>Uv()]),G(sr,Ut)},Wt=sr=>{var Ut=H7();Ut.__click=[$7,Ze,Y,N];var Ur=E(Ut);{var lr=nn=>{z7(nn,{class:"size-5.5 fill-blue-800"})},Tn=nn=>{var Cn=G7(),$n=E(Cn);A7($n,{class:"size-5.5 fill-red-400"}),vn(2),k(Cn),G(nn,Cn)};je(Ur,nn=>{x(Ze)?nn(lr):nn(Tn,!1)})}k(Ut),Ye(nn=>xr(Ut,"title",nn),[()=>zb()]),G(sr,Ut)};var j=q(E(se),2);let Rr;var Z=E(j);let yn;var X=E(Z);{var ae=sr=>{var Ut=X7();Ut.__click=[W7,Ae,N,Y];var Ur=E(Ut,!0);k(Ut),Ye(lr=>fe(Ur,lr),[()=>Kx()]),G(sr,Ut)},de=sr=>{var Ut=er(),Ur=Ct(Ut);{var lr=Tn=>{var nn=K7(),Cn=E(nn);{var $n=Mn=>{var bn=Y7(),ln=E(bn);{var Sn=gn=>{var fn=bi("MOD");G(gn,fn)},kn=gn=>{var fn=er(),an=Ct(fn);{var po=Gn=>{var jn=bi("GM");G(Gn,jn)},pi=Gn=>{var jn=bi("ADMIN");G(Gn,jn)};je(an,Gn=>{var jn;((jn=kt.data)==null?void 0:jn.role)==="global_moderator"?Gn(po):Gn(pi,!1)},!0)}G(gn,fn)};je(ln,gn=>{var fn;((fn=kt.data)==null?void 0:fn.role)==="moderator"?gn(Sn):gn(kn,!1)})}k(bn),Ye(()=>{var gn;return xr(bn,"href",((gn=kt.data)==null?void 0:gn.role)==="admin"?`${vi.url.origin}/admin/dashboard`:`${vi.url.origin}/admin`)}),G(Mn,bn)};je(Cn,Mn=>{var bn;xc((bn=kt.data)==null?void 0:bn.role,["admin","moderator","global_moderator"])&&Mn($n)})}var Pr=q(Cn,2);zD(Pr,{get user(){return kt},onlogout:()=>{ce(me,{name:"mainMenu"},!0)}}),k(nn),ki(3,nn,()=>ia,()=>({duration:150})),G(Tn,nn)};je(Ur,Tn=>{kt.data&&x(N)&&x(me).name!=="paintingPixel"&&Tn(lr)},!0)}G(sr,Ut)};je(X,sr=>{!kt.loading&&!kt.data?sr(ae):sr(de,!1)})}var Se=q(X,2);{var Ie=sr=>{var Ut=i9(),Ur=E(Ut);{var lr=Pr=>{Nf(Pr,{key:"shop-profile-picture",children:(Mn,bn)=>{var ln=Q7();ln.__click=[J7,Ne,N,Y];var Sn=E(ln);X0(Sn,{class:"size-5"}),k(ln),Ye(kn=>xr(ln,"title",kn),[()=>qv()]),G(Mn,ln)},$$slots:{default:!0}})};je(Ur,Pr=>{kt.data&&Pr(lr)})}var Tn=q(Ur,2);{var nn=Pr=>{var Mn=t9();Mn.__click=[e9,St];var bn=E(Mn);yp(bn,{class:"size-5"}),k(Mn),Ye(ln=>xr(Mn,"title",ln),[()=>mp()]),G(Pr,Mn)};je(Tn,Pr=>{kt.data&&Pr(nn)})}var Cn=q(Tn,2);ND(Cn,{get map(){return x(N)},get season(){return s}});var $n=q(Cn,2);Nf($n,{key:"region-leaderboard",children:(Pr,Mn)=>{var bn=n9();bn.__click=[r9,pt];var ln=E(bn);P0(ln,{class:"size-5"}),k(bn),Ye(Sn=>xr(bn,"title",Sn),[()=>Rm()]),G(Pr,bn)},$$slots:{default:!0}}),k(Ut),ki(3,Ut,()=>ia,()=>({duration:150})),G(sr,Ut)},be=sr=>{var Ut=er(),Ur=Ct(Ut);{var lr=Tn=>{var nn=o9(),Cn=E(nn);let $n;Cn.__click=[a9,K];var Pr=E(Cn);{var Mn=ln=>{Cm(ln,{class:"size-5"})},bn=ln=>{rp(ln,{class:"size-5"})};je(Pr,ln=>{x(K)?ln(Mn):ln(bn,!1)})}k(Cn),k(nn),Ye((ln,Sn)=>{xr(Cn,"title",ln),$n=zr(Cn,1,"btn btn-square not-touchscreen:hidden shadow-md",null,$n,Sn)},[()=>x(K)?ob():cb(),()=>({"btn-primary":x(K)})]),ki(1,nn,()=>ia,()=>({delay:150,duration:150})),G(Tn,nn)};je(Ur,Tn=>{x(N)&&x(me).name==="paintingPixel"&&Tn(lr)},!0)}G(sr,Ut)};je(Se,sr=>{x(N)&&x(me).name!=="paintingPixel"?sr(Ie):sr(be,!1)})}k(Z),k(j);var Oe=q(j,2);{var st=sr=>{var Ut=s9(),Ur=E(Ut);{let lr=ft(()=>fx.trim());Nx(Ur,{get siteKey(){return x(lr)},refreshExpired:"auto",appearance:"interaction-only",callback:Tn=>{ai.captcha={token:Tn,time:Date.now()}}})}k(Ut),ki(2,Ut,()=>ia,()=>({duration:300})),G(sr,Ut)};je(Oe,sr=>{px&&(!ai.captcha||ai.now-ai.captcha.time>180*1e3)&&sr(st)})}var $e=q(Oe,2);let On;var Mt=E($e);{var xe=sr=>{Nf(sr,{key:"info",children:(Ut,Ur)=>{var lr=c9();lr.__click=[l9,ut];var Tn=E(lr);M7(Tn,{class:"size-3.5"}),k(lr),Ye(nn=>xr(lr,"title",nn),[()=>db()]),G(Ut,lr)},$$slots:{default:!0}})};je(Mt,sr=>{x(me).name!=="paintingPixel"&&sr(xe)})}var Ft=q(Mt,2),cr=E(Ft);cr.__click=[u9,N];var Jt=q(cr,2);Jt.__click=[h9,N],k(Ft);var Tr=q(Ft,2),Xr=E(Tr),dn=E(Xr);Vv(dn,{class:"size-4"}),k(Xr),k(Tr);var xn=q(Tr,2);{var mn=sr=>{var Ut=p9();Ut.__click=[d9,me];var Ur=E(Ut);Gu(Ur,{class:"size-4"}),k(Ut),G(sr,Ut)};je(xn,sr=>{var Ut,Ur;x(me).name!=="paintingPixel"&&(((Ut=kt.data)==null?void 0:Ut.role)==="admin"||((Ur=kt.data)==null?void 0:Ur.role)==="global_moderator")&&sr(mn)})}var jt=q(xn,2);{var Et=sr=>{var Ut=f9(),Ur=E(Ut);O7(Ur,{class:"size-4",onclick:()=>{ce(H,!x(H))}}),k(Ut),Ye(lr=>xr(Ut,"title",lr),[()=>iw()]),G(sr,Ut)};je(jt,sr=>{x(ie)&&sr(Et)})}var hr=q(jt,2);{var ht=sr=>{var Ut=_9();Ut.__click=[m9];var Ur=E(Ut);qx(Ur,{class:"size-3"}),k(Ut),Ye(lr=>xr(Ut,"title",lr),[()=>Ux()]),G(sr,Ut)};je(hr,sr=>{x(me).name!=="paintingPixel"&&sr(ht)})}var Hr=q(hr,2);{var Yr=sr=>{var Ut=v9();Ut.__click=[g9,N];var Ur=E(Ut);B7(Ur,{class:"size-3"}),k(Ut),Ye((lr,Tn)=>{xr(Ut,"title",lr),Ut.disabled=Tn},[()=>bb(),()=>!hl.hasPrev()]),ki(1,Ut,()=>ia,()=>({delay:1e3,duration:300})),ki(2,Ut,()=>ia,()=>({duration:300})),G(sr,Ut)};je(Hr,sr=>{hl.hasPrev()&&x(me).name!=="paintingPixel"&&sr(Yr)})}k($e);var qr=q($e,2);let Xn;var _t=E(qr);{var Ge=sr=>{var Ut=y9(),Ur=E(Ut);Zx(Ur,{class:"size-5"});var lr=q(Ur);k(Ut),Ye(Tn=>fe(lr,` ${Tn??""}`),[()=>Cb()]),ki(1,Ut,()=>ia,()=>({duration:1e3})),ki(2,Ut,()=>ia),G(sr,Ut)};je(_t,sr=>{en.online||sr(Ge)})}var At=q(_t,2);{var Rt=sr=>{var Ut=b9();Ut.__click=[x9,N,f];var Ur=E(Ut);D7(Ur,{class:"size-5"});var lr=q(Ur);k(Ut),Ye(Tn=>fe(lr,` ${Tn??""}`),[()=>Ib()]),ki(3,Ut,()=>ia,()=>({duration:300})),G(sr,Ut)};je(At,sr=>{x(Y){M0(sr,{class:"z-30",onclick:()=>{var Ut;(Ut=kt.data)!=null&&Ut.needsPhoneVerification?(ce(zt,!0),Nr.warning(Xg())):kt.charges!==void 0&&kt.charges<1?Nr.warning(JA,{icon:Wf}):x(N)&&kt.data?(aa.smallDropplet.play(),ce(me,{name:"paintingPixel"},!0)):(ce(Ae,!0),x(N)&&Co(x(N).getCenter(),x(Y)))},get disabled(){return kt.loading},get loading(){return kt.loading},get charges(){return kt.charges}})},pn=sr=>{var Ut=w9();G(sr,Ut)};je(ur,sr=>{x(me).name==="mainMenu"?sr(rn):sr(pn,!1)})}k(Er);var _n=q(Er,2);let Ji;var sn=E(_n);Wt(sn),k(_n);var En=q(_n,2);{var dr=sr=>{var Ut=er(),Ur=Ct(Ut);{var lr=nn=>{var Cn=T9(),$n=E(Cn),Pr=E($n);ER(Pr,{get latLon(){return x(me).latLon},get map(){return x(N)},get crosshair(){return x(ge)},get pixelInfoCache(){return B},get season(){return s},get tileSize(){return y},get pixelArtZoom(){return f},get zoom(){return x(Y)},get opaquePixelArt(){return x(tt)},onclose:()=>ce(me,{name:"mainMenu"},!0),onclickshare:Mn=>{ce(yt,Mn,!0),ce(vt,!0)},onclickpaint:([Mn,bn])=>{var Sn,kn,gn;if(!kt.data){ce(Ae,!0);return}if((Sn=kt.data)!=null&&Sn.needsPhoneVerification){ce(zt,!0),Nr.warning(Xg());return}if(kt.charges!==void 0&&kt.charges<1){Nr.warning(Rb());return}const ln=Vm(M.latLonToPixelBoundsLatLon(Mn,bn,f));(kn=x(N))==null||kn.flyTo({center:{lat:ln[0],lon:ln[1]}}),ce(me,{name:"paintingPixel",clickedLatLon:[Mn,bn]},!0),(gn=x(ge))==null||gn.clear()},onclickregion:Mn=>{ce(It,Mn,!0),ce(Bt,!0)},onclickmodaction:(Mn,bn,ln,Sn)=>{var gn,fn,an;(gn=x(N))==null||gn.setZoom(Math.max(x(Y),f+3.5));const kn=M.latLonToPixelBoundsLatLon(ln[0],ln[1],f);(fn=x(N))==null||fn.setCenter({lat:kn.min[0],lng:(kn.max[1]+kn.min[1])/2}),ce(Kt,bn,!0),ce(or,Mn,!0),ce(Sr,ln,!0),ce(Dr,((an=x(N))==null?void 0:an.getZoom())??0,!0),ce(rr,Sn,!0),ce(Ar,!0)}}),k($n),k(Cn),ki(3,$n,()=>Gd,()=>({duration:100})),G(nn,Cn)},Tn=nn=>{var Cn=er(),$n=Ct(Cn);{var Pr=bn=>{var ln=C9(),Sn=E(ln),kn=E(Sn);pL(kn,{get map(){return x(N)},get clickedLatLon(){return x(me).clickedLatLon},get tileSize(){return y},get tileZoom(){return f},get season(){return s},get zoom(){return x(Y)},get crosshair(){return x(oe)},refreshPixelArt:()=>x(N)&&Fe(x(N)),hidePixelHover:De,hoverLayerId:Ke,onclose:()=>{ce(me,{name:"mainMenu"},!0),De()},get screenLocked(){return x(K)},set screenLocked(gn){ce(K,gn,!0)},get opaquePixelArt(){return x(tt)},set opaquePixelArt(gn){ce(tt,gn,!0)}}),k(Sn),k(ln),ki(3,Sn,()=>Gd,()=>({duration:100})),G(bn,ln)},Mn=bn=>{var ln=er(),Sn=Ct(ln);{var kn=fn=>{var an=S9(),po=E(an);qR(po,{get map(){return x(N)},get tileSize(){return y},get pixelArtZoom(){return zf},get season(){return s},get crosshair(){return x(oe)},onclose:()=>{ce(me,{name:"mainMenu"},!0),De()}}),k(an),G(fn,an)},gn=fn=>{var an=er(),po=Ct(an);{var pi=Gn=>{var jn=I9(),zn=E(jn),qa=E(zn),Lr=E(qa),$r=E(Lr),_a=E($r);G0(_a,{class:"inline size-4"});var cn=q(_a);k($r);var Li=q($r,2);Li.__click=[P9,me];var ga=E(Li);_l(ga,{class:"size-4"}),k(Li),k(Lr);var sa=q(Lr,2),Ka=E(sa);Ka.__click=async()=>{var Ca;if(x(me).name==="selectHq"){const Ja=x(me).hq;if(Ja)try{ce(fr,!0),await en.updateAllianceHeadquarters(Ja[0],Ja[1]),(Ca=x(ge))==null||Ca.clear(),ce(St,!0),ce(me,{name:"mainMenu"},!0)}catch(Jo){Nr.error(Jo.message)}finally{ce(fr,!1)}}};var Is=E(Ka);P7(Is,{class:"size-6"}),k(Ka),k(sa),k(qa),k(zn),k(jn),Ye(Ca=>{fe(cn,` ${Ca??""}`),Ka.disabled=x(me).hq===void 0||x(fr)},[()=>jC()]),ki(3,zn,()=>Gd,()=>({duration:100})),G(Gn,jn)};je(po,Gn=>{x(me).name==="selectHq"&&Gn(pi)},!0)}G(fn,an)};je(Sn,fn=>{x(me).name==="getPixelAreaInfo"?fn(kn):fn(gn,!1)},!0)}G(bn,ln)};je($n,bn=>{x(me).name==="paintingPixel"&&x(oe)?bn(Pr):bn(Mn,!1)},!0)}G(nn,Cn)};je(Ur,nn=>{x(me).name==="pixelSelected"&&x(ge)?nn(lr):nn(Tn,!1)})}G(sr,Ut)};je(En,sr=>{x(N)&&sr(dr)})}k(se),Ye((sr,Ut,Ur,lr,Tn,nn,Cn,$n,Pr)=>{Rr=zr(j,1,"absolute right-2 top-2 z-30",null,Rr,sr),yn=zr(Z,1,"flex flex-col gap-4",null,yn,Ut),On=zr($e,1,"absolute left-2 top-2 z-30 flex flex-col gap-3",null,On,Ur),xr(cr,"title",lr),xr(Jt,"title",Tn),Xn=zr(qr,1,"absolute left-1/2 top-2 z-30 flex -translate-x-1/2 flex-col items-center justify-center gap-2",null,Xn,nn),Vn=zr(Yt,1,"absolute bottom-3 left-3 z-30",null,Vn,Cn),wn=zr(Er,1,"absolute bottom-3 left-1/2 z-30 -translate-x-1/2",null,wn,$n),Ji=zr(_n,1,"absolute bottom-3 right-3 z-30",null,Ji,Pr)},[()=>({hidden:x(H)}),()=>({"items-end":!kt.data,"items-center":kt.data}),()=>({hidden:x(H)}),()=>mb(),()=>vb(),()=>({hidden:x(H)}),()=>({hidden:x(H)}),()=>({hidden:x(H)}),()=>({hidden:x(H)})])}var In=q(se,2);HA(In,{get open(){return x(Ae)},set open(xt){ce(Ae,xt,!0)}});var tn=q(In,2);C7(tn,{get open(){return x(Ne)},set open(xt){ce(Ne,xt,!0)}});var Qr=q(tn,2);RM(Qr,{get open(){return x(ot)},set open(xt){ce(ot,xt,!0)}});var ma=q(Qr,2);QM(ma,{get open(){return x(ut)},set open(xt){ce(ut,xt,!0)}});var di=q(ma,2);zM(di,{get open(){return x(wt)},set open(xt){ce(wt,xt,!0)}});var Xi=q(di,2);UA(Xi,{onvisitclick:xt=>{var Wt;(Wt=x(N))==null||Wt.flyTo({center:xt,zoom:zf+1}),Co(xt,x(Y)),hl.push({pos:xt,zoom:x(Y)}),ce(pt,!1)},get open(){return x(pt)},set open(xt){ce(pt,xt,!0)}});var Zn=q(Xi,2);QD(Zn,{get region(){return x(It)},get open(){return x(Bt)},set open(xt){ce(Bt,xt,!0)}});var ni=q(Zn,2);Bx(ni,{get open(){return ai.dropletsDialogOpen},set open(xt){ai.dropletsDialogOpen=xt}});var qi=q(ni,2);{var Yi=xt=>{pM(xt,{onhqchange:()=>{ce(me,{name:"selectHq"},!0),ce(St,!1)},onhqclick:Wt=>{var Rr;(Rr=x(N))==null||Rr.flyTo({center:Wt,zoom:Math.max(x(Y),15)}),ce(me,{name:"pixelSelected",latLon:[Wt.lat,Wt.lng]},!0),ce(St,!1)},onlastpixelclick:Wt=>{var Rr;(Rr=x(N))==null||Rr.flyTo({center:Wt,zoom:Math.max(x(Y),15)}),ce(me,{name:"pixelSelected",latLon:[Wt.lat,Wt.lng]},!0),ce(St,!1)},get open(){return x(St)},set open(Wt){ce(St,Wt,!0)}})};je(qi,xt=>{x(N)&&xt(Yi)})}var Ei=q(qi,2);LL(Ei,{get open(){return x(zt)},set open(xt){ce(zt,xt,!0)}});var zi=q(Ei,2);{var Ki=xt=>{SM(xt,{get url(){return x(yt)},get map(){return x(N)},hideHover:()=>{var Wt,Rr;(Wt=x(N))==null||Wt.setPaintProperty(Ke,"raster-opacity",0),(Rr=x(ge))==null||Rr.setCanvasOpacity(0)},showHover:()=>{var Wt,Rr;(Wt=x(N))==null||Wt.setPaintProperty(Ke,"raster-opacity",He),(Rr=x(ge))==null||Rr.setCanvasOpacity(1)},get open(){return x(vt)},set open(Wt){ce(vt,Wt,!0)}})};je(zi,xt=>{x(N)&&xt(Ki)})}var oa=q(zi,2);{var Ta=xt=>{Cx(xt,{get image(){return x(Kt)},get paintedBy(){return x(or).paintedBy},get latLon(){return x(Sr)},get zoom(){return x(Dr)},get action(){return x(rr)},get open(){return x(Ar)},set open(Wt){ce(Ar,Wt,!0)}})};je(oa,xt=>{x(or)&&x(Kt)&&x(Sr)&&xt(Ta)})}G(m,Zr),Fr()}Qn(["click"]);export{_B as component}; diff --git a/frontend-backup/_app/immutable/nodes/5.cZCL4YVE.js b/frontend-backup/_app/immutable/nodes/5.cZCL4YVE.js new file mode 100644 index 0000000..5cc164f --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/5.cZCL4YVE.js @@ -0,0 +1,49 @@ +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { f, b as i, d, r as a, n as r } from "../chunks/CMvZtFtm.js"; +import { L as s } from "../chunks/D3yDgRbd.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + t = new e.Error().stack; + t && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[t] = "dd4bfa84-6a4f-4083-bc94-ea0b0e129dfb"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-dd4bfa84-6a4f-4083-bc94-ea0b0e129dfb")); + })(); +} catch {} +var l = f( + '

                      Not found

                      Go to map
                      ' +); +function g(e) { + var t = l(), + n = d(t), + o = d(n); + s(o, { size: "lg", hasText: !0 }), a(n), r(4), a(t), i(e, t); +} +export { g as component }; diff --git a/frontend-backup/_app/immutable/nodes/5.lvNarnfM.js b/frontend-backup/_app/immutable/nodes/5.lvNarnfM.js deleted file mode 100644 index 837033b..0000000 --- a/frontend-backup/_app/immutable/nodes/5.lvNarnfM.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{f as d,b as i,d as a,r as o,n as r}from"../chunks/BDALf20I.js";import{L as s}from"../chunks/CYItkO2S.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dd4bfa84-6a4f-4083-bc94-ea0b0e129dfb",e._sentryDebugIdIdentifier="sentry-dbid-dd4bfa84-6a4f-4083-bc94-ea0b0e129dfb")})()}catch{}var l=d('

                      Not found

                      Go to map
                      ');function g(e){var t=l(),n=a(t),f=a(n);s(f,{size:"lg",hasText:!0}),o(n),r(4),o(t),i(e,t)}export{g as component}; diff --git a/frontend-backup/_app/immutable/nodes/6.DyKsgUf2.js b/frontend-backup/_app/immutable/nodes/6.DyKsgUf2.js deleted file mode 100644 index 4bcbdac..0000000 --- a/frontend-backup/_app/immutable/nodes/6.DyKsgUf2.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{o as i}from"../chunks/4WsUhDWi.js";import{p as c,f,t as l,b,c as p,$ as m,s as u,d as s,r}from"../chunks/BDALf20I.js";import{s as h}from"../chunks/4k6DpCgf.js";import{h as g}from"../chunks/BUhRjcOt.js";import{i as y}from"../chunks/BuTItAOu.js";import{g as _}from"../chunks/DklPLC_x.js";import{g as w}from"../chunks/B4HM4TqG.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="72a55a37-b288-4457-b985-9193a3894d7c",e._sentryDebugIdIdentifier="sentry-dbid-72a55a37-b288-4457-b985-9193a3894d7c")})()}catch{}const x=()=>"Admin dashboard content",v=()=>"Conteúdo do painel de administração",D=(e={},o={})=>(o.locale??_())==="en"?x():v();var E=f('

                      Dashboard

                      ');function M(e,o){c(o,!1),i(()=>{w("/admin/dashboard")}),y();var t=E();g(n=>{m.title="Wplace - Admin Dashboard"});var a=u(s(t),2),d=s(a,!0);r(a),r(t),l(n=>h(d,n),[()=>D()]),b(e,t),p()}export{M as component}; diff --git a/frontend-backup/_app/immutable/nodes/6.WPRvZASS.js b/frontend-backup/_app/immutable/nodes/6.WPRvZASS.js new file mode 100644 index 0000000..660107b --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/6.WPRvZASS.js @@ -0,0 +1,75 @@ +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { o as i } from "../chunks/DoL3ojdE.js"; +import { + p as c, + f, + t as l, + b, + c as p, + $ as m, + s as u, + d as s, + r as d, +} from "../chunks/CMvZtFtm.js"; +import { s as h } from "../chunks/DVA6u9-7.js"; +import { h as g } from "../chunks/P77cUGnY.js"; +import { i as y } from "../chunks/Z_72d8Vp.js"; +import { g as _ } from "../chunks/CV9xcpLq.js"; +import { g as w } from "../chunks/CyB--sFG.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + o = new e.Error().stack; + o && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[o] = "72a55a37-b288-4457-b985-9193a3894d7c"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-72a55a37-b288-4457-b985-9193a3894d7c")); + })(); +} catch {} +const x = () => "Admin dashboard content", + v = () => "Conteúdo do painel de administração", + D = (e = {}, o = {}) => ((o.locale ?? _()) === "en" ? x() : v()); +var E = f( + '

                      Dashboard

                      ' +); +function M(e, o) { + c(o, !1), + i(() => { + w("/admin/dashboard"); + }), + y(); + var t = E(); + g((n) => { + m.title = "FurryPlace - Admin Dashboard"; + }); + var a = u(s(t), 2), + r = s(a, !0); + d(a), d(t), l((n) => h(r, n), [() => D()]), b(e, t), p(); +} +export { M as component }; diff --git a/frontend-backup/_app/immutable/nodes/7.ACRjrnuj.js b/frontend-backup/_app/immutable/nodes/7.ACRjrnuj.js new file mode 100644 index 0000000..7fd54a9 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/7.ACRjrnuj.js @@ -0,0 +1,1250 @@ +import "../chunks/Ch2Ub8FX.js"; +import { + at as Ga, + p as Ja, + au as S, + av as Ka, + y as Ht, + g as e, + aw as s, + f as L, + d as a, + s as l, + t as C, + ax as Va, + b as x, + c as Xa, + $ as Za, + r as t, + ay as fe, + a as ie, + u as $e, +} from "../chunks/CMvZtFtm.js"; +import { s as c } from "../chunks/DVA6u9-7.js"; +import { i as U } from "../chunks/BF50aS-j.js"; +import { k as er, t as Ot } from "../chunks/BBgyHb-Z.js"; +import { e as it } from "../chunks/CXkjfmFU.js"; +import { h as tr } from "../chunks/P77cUGnY.js"; +import { s as Qt, r as ct, d as ar, a as ce } from "../chunks/C5yqZvKC.js"; +import { b as dt } from "../chunks/Dpga8uG-.js"; +import { g as Wt } from "../chunks/CyB--sFG.js"; +import { p as vt } from "../chunks/B6ZK_HZO.js"; +import { + a as G, + t as D, + i as rr, + h as nr, + f as or, + j as lr, + k as sr, +} from "../chunks/BRM3t761.js"; +import { + o as ir, + L as cr, + s as Yt, + g as dr, + a as vr, +} from "../chunks/CgCA7Awo.js"; +import { P as Gt } from "../chunks/D3yaN7Zl.js"; +import { p as _t, L as Jt, d as _r } from "../chunks/BKioTOWR.js"; +import { R as ur } from "../chunks/m3o6lEf1.js"; +import { g as F } from "../chunks/CV9xcpLq.js"; +import { r as br } from "../chunks/C3E1P42D.js"; +import { c as ut } from "../chunks/CHGjpGz-.js"; +import { c as mr } from "../chunks/C4yB2Gnm.js"; +import { + s as Kt, + v as Vt, + m as fr, + p as pr, + l as xr, +} from "../chunks/BsOIMr0T.js"; +import { c as gr } from "../chunks/CVa8RI1g.js"; +import { l as Xt } from "../chunks/BHI5vujT.js"; +import { r as hr } from "../chunks/DouSnzU9.js"; +import { s as yr, l as wr } from "../chunks/BFFUopoM.js"; +import { g as Pe, a as kr } from "../chunks/lE0oaQc5.js"; +import { f as Zt } from "../chunks/wZ7b5CwQ.js"; +(function () { + try { + var d = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + d.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var d = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + r = new d.Error().stack; + r && + ((d._sentryDebugIds = d._sentryDebugIds || {}), + (d._sentryDebugIds[r] = "24d6febf-d6d7-4615-95c2-acc3b7ee0a01"), + (d._sentryDebugIdIdentifier = + "sentry-dbid-24d6febf-d6d7-4615-95c2-acc3b7ee0a01")); + })(); +} catch {} +const Ar = () => "Search alliance (name or ID)", + Ir = () => "Buscar aliança (nome ou ID)", + Lr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Ar() : Ir()), + Nr = () => "Partial name or numeric ID", + $r = () => "Nome parcial ou ID numérico", + Pr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Nr() : $r()), + Cr = () => "Results", + Sr = () => "Resultados", + Dr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Cr() : Sr()), + Rr = () => "No alliance found", + Mr = () => "Nenhuma aliança encontrada", + Fr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Rr() : Mr()), + Tr = () => "No alliance selected", + zr = () => "Nenhuma aliança selecionada", + jr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Tr() : zr()), + Er = () => "Change name", + Br = () => "Alterar nome", + qr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Er() : Br()), + Ur = () => "Change leader", + Hr = () => "Alterar líder", + ea = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Ur() : Hr()), + Or = () => "Ban all members", + Qr = () => "Banir todos os membros", + ta = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Or() : Qr()), + Wr = () => "Creator (leader)", + Yr = () => "Proprietário (líder)", + Gr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Wr() : Yr()), + Jr = () => "No coordinates", + Kr = () => "Sem coordenadas", + Vr = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Jr() : Kr()), + Xr = () => "Actions", + Zr = () => "Ações", + en = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? Xr() : Zr()), + tn = () => "Remove", + an = () => "Remover", + rn = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? tn() : an()), + nn = () => "No members", + on = () => "Sem membros", + ln = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? nn() : on()), + sn = () => "Rename alliance", + cn = () => "Alterar nome da aliança", + dn = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? sn() : cn()), + vn = () => "Inform the ID of the new leader", + _n = () => "Informe o ID do novo líder", + un = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? vn() : _n()), + bn = () => + "Are you sure you want to ban all members of this alliance? This action cannot be undone.", + mn = () => + "Tem certeza que deseja banir todos os membros desta aliança? Esta ação não pode ser desfeita.", + fn = (d = {}, r = {}) => ((r.locale ?? F()) === "en" ? bn() : mn()); +function pn(d, r, _, R) { + e(r) && (s(_, e(r).name ?? "", !0), s(R, !0)); +} +function xn(d, r, _, R) { + e(r) && (s(_, e(r).ownerId ? String(e(r).ownerId) : "", !0), s(R, !0)); +} +function gn(d, r) { + s(r, !0); +} +async function hn(d, r, _, R, W, ee, b, K) { + if (e(r)) { + if (!e(_)) { + D.error(vr()); + return; + } + if (!(e(R) && !e(R)())) + try { + s(W, !0), + await G.banAllAllianceMembers(e(r).id, e(_), e(ee)), + D.success("Todos os membros banidos"), + await b(e(r).id, !0), + s(K, !1); + } catch (J) { + D.error((J == null ? void 0 : J.message) ?? "Falha ao banir membros"); + } finally { + s(W, !1); + } + } +} +var yn = (d, r, _, R) => { + s(r, ""), s(_, [], !0), s(R, null); + }, + wn = L( + '
                      ' + ), + kn = L('
                      '), + An = L('
                      '), + In = (d, r, _) => r(e(_).id, !0), + Ln = L( + '' + ), + Nn = L( + '
                      ' + ), + $n = L( + '
                      ' + ), + Pn = L('
                      '), + Cn = L('
                      '), + Sn = (d, r, _) => { + var R; + return ( + ((R = e(r)) == null ? void 0 : R.ownerId) !== void 0 && _(e(r).ownerId) + ); + }, + Dn = (d, r, _) => r(e(_)), + Rn = L( + '
                      ', + 1 + ), + Mn = L('
                      '), + Fn = (d, r, _) => e(r) && _(e(r).id, !0), + Tn = (d, r, _) => r(e(_).id), + zn = (d, r, _) => r(e(_)), + jn = (d, r, _) => r(e(_), "member"), + En = (d, r, _) => r(e(_), "admin"), + Bn = (d, r, _) => r(e(_)), + qn = L( + '
                      ' + ), + Un = L( + ' ' + ), + Hn = (d, r) => r(), + On = L( + '
                      ' + ), + Qn = L( + '
                      HQ

                      Total:
                      ' + ), + Wn = (d, r) => d.key === "Enter" && r(), + Yn = (d, r) => s(r, !1), + Gn = (d, r) => s(r, !1), + Jn = L( + '' + ), + Kn = (d, r) => d.key === "Enter" && r(), + Vn = (d, r) => s(r, !1), + Xn = (d, r) => s(r, !1), + Zn = L( + '' + ), + eo = L(""), + to = (d, r) => s(r, !1), + ao = (d, r) => s(r, !1), + ro = L( + '' + ), + no = L( + '
                      ' + ); +function Ro(d, r) { + Ja(r, !0); + let _ = S(""), + R = S(!1), + W = S(Ka([])), + ee = S(null), + b = S(!1), + K = S(null), + J = S(null), + i = S(null), + de = S(!1), + pe = S(""), + ve = S(!1), + xe = S(""), + re = S(!1), + ne = S(""), + ge = S(""), + Ce = S(null); + const aa = [ + { value: "inappropriate-content", label: rr() }, + { value: "hate-speech", label: nr() }, + { value: "doxxing", label: or() }, + { value: "bot", label: lr() }, + { value: "griefing", label: sr() }, + { value: "other", label: ir() }, + ]; + let he = S(0); + const ra = 50; + let na = $e(() => !!e(i) && e(i).members.length < e(i).membersCount); + Ht(() => { + e(re) || (s(ne, ""), s(ge, "")); + }), + Ht(() => { + const n = vt.url.searchParams.get("id"), + o = n ? Number(n) : null; + async function v() { + o !== e(J) && + (s(J, o, !0), + n && s(_, n, !0), + e(J) != null && !isNaN(e(J)) + ? await ye(e(J), !0) + : (s(i, null), s(K, null))); + } + v(); + }); + async function bt() { + try { + s(ee, null), s(R, !0); + const n = e(_).trim(); + if (!n) { + s(W, [], !0); + return; + } + const o = Number(n); + if (Number.isFinite(o)) + try { + const m = await G.getAllianceById(o); + if (m) { + s( + W, + [{ id: m.id, name: m.name, pixelsPainted: m.pixelsPainted ?? 0 }], + !0 + ); + return; + } + } catch {} + const v = await G.searchAlliances(n); + s(W, v, !0); + } catch (n) { + console.error(n), + s(ee, (n == null ? void 0 : n.message) ?? "Falha na busca", !0), + s(W, [], !0); + } finally { + s(R, !1); + } + } + async function ye(n, o = !1) { + try { + s(b, !0), s(K, null); + const v = await G.getAllianceFull(n); + if (!v) { + s(i, null), s(K, "Alliance not found"); + return; + } + s(i, v, !0), + o && (s(he, 0), oa() && (await mt(!0))), + Wt(`/admin/alliances?id=${n}`, { replaceState: !0 }); + } catch (v) { + console.error(v), + s( + K, + (v == null ? void 0 : v.message) ?? "Erro ao carregar aliança", + !0 + ), + s(i, null); + } finally { + s(b, !1); + } + } + function oa() { + return !!e(i) && e(i).members.length < e(i).membersCount; + } + async function mt(n = !1) { + if (e(i)) + try { + s(b, !0), n && s(he, 0); + const o = n ? 0 : e(he) + 1, + v = await G.getAdminAllianceMembers(e(i).id, { + page: o, + pageSize: ra, + }), + m = o === 0 ? v.members : [...e(i).members, ...v.members]; + s( + i, + { ...e(i), members: m, membersCount: v.total ?? e(i).membersCount }, + !0 + ), + s(he, o, !0); + } catch (o) { + console.error(o), + D.error( + (o == null ? void 0 : o.message) ?? "Falha ao carregar membros" + ); + } finally { + s(b, !1); + } + } + async function ft() { + if (!e(i)) return; + const n = e(pe).trim(); + if (!n) { + D.error("Informe um nome válido"); + return; + } + try { + s(b, !0), + await G.renameAlliance(e(i).id, n), + s(i, { ...e(i), name: n }, !0), + D.success("Nome alterado"), + s(de, !1); + } catch (o) { + D.error((o == null ? void 0 : o.message) ?? "Falha ao alterar nome"); + } finally { + s(b, !1); + } + } + async function pt() { + if (!e(i)) return; + const n = Number(e(xe)); + if (!Number.isFinite(n) || n <= 0) { + D.error("ID inválido"); + return; + } + try { + s(b, !0), await G.changeAllianceLeader(e(i).id, n); + const o = await G.getAllianceFull(e(i).id); + s(i, o, !0), D.success("Líder alterado"), s(ve, !1); + } catch (o) { + D.error((o == null ? void 0 : o.message) ?? "Falha ao alterar líder"); + } finally { + s(b, !1); + } + } + async function xt(n, o) { + if (e(i)) + try { + s(b, !0), + await G.setAllianceMemberRole(e(i).id, n.id, o), + s( + i, + { + ...e(i), + members: e(i).members.map((v) => + v.id === n.id ? { ...v, role: o } : v + ), + }, + !0 + ), + D.success("Cargo atualizado"); + } catch (v) { + D.error((v == null ? void 0 : v.message) ?? "Falha ao atualizar cargo"); + } finally { + s(b, !1); + } + } + async function la(n) { + if (e(i)) { + if (n.id == e(i).ownerId) { + D.error("Não é possível remover o líder da aliança"); + return; + } + try { + s(b, !0), + await G.removeAllianceMember(e(i).id, n.id), + s( + i, + { + ...e(i), + members: e(i).members.filter((o) => o.id !== n.id), + membersCount: Math.max(0, e(i).membersCount - 1), + }, + !0 + ), + D.success("Membro removido"); + } catch (o) { + D.error((o == null ? void 0 : o.message) ?? "Falha ao remover membro"); + } finally { + s(b, !1); + } + } + } + function sa(n) { + if (!n.lastPixelLatitude || !n.lastPixelLongitude) { + D.error("Sem registro de último pixel"); + return; + } + const o = `${vt.url.origin}/?lat=${n.lastPixelLatitude}&lng=${n.lastPixelLongitude}&select=true`; + window.open(o, "_blank"); + } + function ia(n) { + const { hqLatitude: o, hqLongitude: v } = n; + if (o == null || v == null) { + D.error("No coords for HQ"); + return; + } + const m = `${vt.url.origin}/?lat=${o}&lng=${v}&select=true`; + window.open(m, "_blank"); + } + function gt(n) { + Wt(`/admin/users?id=${n}`); + } + var Se = no(); + tr((n) => { + Za.title = "FurryPlace - Admin - Alliances"; + }); + var De = a(Se), + Re = a(De), + we = a(Re), + Me = a(we), + Fe = a(Me), + ca = a(Fe, !0); + t(Fe); + var Te = l(Fe, 2); + ct(Te), t(Me); + var ht = l(Me, 2), + _e = a(ht); + _e.__click = bt; + var da = a(_e, !0); + t(_e); + var ze = l(_e, 2); + ze.__click = [yn, _, W, ee]; + var va = a(ze, !0); + t(ze), t(ht), t(we); + var yt = l(we, 2), + je = a(yt), + _a = a(je, !0); + t(je); + var ua = l(je, 2); + { + var ba = (n) => { + var o = wn(), + v = l(a(o), 2), + m = a(v, !0); + t(v), t(o), C((T) => c(m, T), [() => Xt()]), x(n, o); + }, + ma = (n) => { + var o = fe(), + v = ie(o); + { + var m = (p) => { + var h = kn(), + N = a(h, !0); + t(h), C(() => c(N, e(ee))), x(p, h); + }, + T = (p) => { + var h = fe(), + N = ie(h); + { + var M = (f) => { + var g = An(), + y = a(g, !0); + t(g), C((k) => c(y, k), [() => Fr()]), x(f, g); + }, + q = (f) => { + var g = Nn(); + it( + g, + 21, + () => e(W), + (y) => y.id, + (y, k) => { + var $ = Ln(); + $.__click = [In, ye, k]; + var z = a($), + E = a(z), + j = a(E, !0); + t(E); + var V = l(E, 2), + Y = a(V); + t(V), t(z); + var oe = l(z, 2), + te = a(oe), + P = l(te), + H = a(P, !0); + t(P), + t(oe), + t($), + C( + (A, ae, O) => { + ce(E, 1, `font-semibold ${A ?? ""}`), + c(j, e(k).name), + c(Y, `#${e(k).id ?? ""}`), + c(te, `${ae ?? ""}: `), + c(H, O); + }, + [ + () => Pe(e(k).id), + () => _t(), + () => e(k).pixelsPainted.toLocaleString("en-US"), + ] + ), + x(y, $); + } + ), + t(g), + x(f, g); + }; + U( + N, + (f) => { + e(W).length === 0 ? f(M) : f(q, !1); + }, + !0 + ); + } + x(p, h); + }; + U( + v, + (p) => { + e(ee) ? p(m) : p(T, !1); + }, + !0 + ); + } + x(n, o); + }; + U(ua, (n) => { + e(R) ? n(ba) : n(ma, !1); + }); + } + t(yt), t(Re); + var wt = l(Re, 2), + fa = a(wt); + { + var pa = (n) => { + var o = $n(), + v = l(a(o), 2), + m = a(v, !0); + t(v), t(o), C((T) => c(m, T), [() => Xt()]), x(n, o); + }, + xa = (n) => { + var o = fe(), + v = ie(o); + { + var m = (p) => { + var h = Pn(), + N = a(h, !0); + t(h), C(() => c(N, e(K))), x(p, h); + }, + T = (p) => { + var h = fe(), + N = ie(h); + { + var M = (f) => { + var g = Cn(), + y = a(g, !0); + t(g), C((k) => c(y, k), [() => jr()]), x(f, g); + }, + q = (f) => { + var g = fe(), + y = ie(g); + er( + y, + () => e(i).id, + (k) => { + var $ = Qn(), + z = a($), + E = a(z), + j = a(E), + V = a(j, !0); + t(j); + var Y = l(j, 2), + oe = a(Y); + t(Y), t(E); + var te = l(E, 2), + P = a(te); + P.__click = [pn, i, pe, de]; + var H = a(P, !0); + t(P); + var A = l(P, 2); + A.__click = [xn, i, xe, ve]; + var ae = a(A, !0); + t(A); + var O = l(A, 2); + O.__click = [gn, re]; + var Ee = a(O, !0); + t(O), t(te), t(z); + var Be = l(z, 2), + qe = a(Be), + ka = a(qe, !0); + t(qe); + var It = l(qe, 2), + Aa = a(It, !0); + t(It), t(Be); + var Ue = l(Be, 2), + He = a(Ue), + Oe = a(He), + Ia = a(Oe, !0); + t(Oe); + var Lt = l(Oe, 2), + Nt = a(Lt); + Gt(Nt, { + class: "size-8 border", + get userId() { + return e(i).ownerId; + }, + pictureUrl: void 0, + }); + var Qe = l(Nt, 2); + Qe.__click = [Sn, i, gt]; + var La = a(Qe, !0); + t(Qe), t(Lt), t(He); + var We = l(He, 2), + $t = l(a(We), 2), + Na = a($t); + { + var $a = (w) => { + var u = Rn(), + I = ie(u), + B = a(I); + t(I); + var Q = l(I, 2); + Q.__click = [Dn, ia, i]; + var X = a(Q); + Jt(X, { class: "size-4" }); + var Z = l(X); + t(Q), + C( + (le) => { + c( + B, + `Lat: ${e(i).hqLatitude ?? ""}, Lng: ${ + e(i).hqLongitude ?? "" + }` + ), + c(Z, ` ${le ?? ""}`); + }, + [() => Vt()] + ), + x(w, u); + }, + Pa = (w) => { + var u = Mn(), + I = a(u, !0); + t(u), C((B) => c(I, B), [() => Vr()]), x(w, u); + }; + U(Na, (w) => { + e(i).hqLatitude != null && e(i).hqLongitude != null + ? w($a) + : w(Pa, !1); + }); + } + t($t), t(We); + var Pt = l(We, 2), + Ye = a(Pt), + Ca = a(Ye, !0); + t(Ye); + var Ct = l(Ye, 2), + Sa = a(Ct, !0); + t(Ct), t(Pt), t(Ue); + var St = l(Ue, 2), + Ge = a(St), + Je = a(Ge), + Ke = a(Je), + Da = a(Ke, !0); + t(Ke); + var Dt = l(Ke, 2), + Rt = l(a(Dt)), + Ra = a(Rt, !0); + t(Rt), t(Dt), t(Je); + var Mt = l(Je, 2), + ke = a(Mt); + ke.__click = [Fn, i, ye]; + var Ft = a(ke); + ur(Ft, { class: "size-4" }); + var Ma = l(Ft); + t(ke), t(Mt), t(Ge); + var Ve = l(Ge, 2), + Tt = a(Ve), + Xe = a(Tt), + zt = a(Xe), + Ze = l(a(zt)), + Fa = a(Ze, !0); + t(Ze); + var et = l(Ze), + Ta = a(et, !0); + t(et); + var tt = l(et), + za = a(tt, !0); + t(tt); + var at = l(tt), + ja = a(at, !0); + t(at); + var jt = l(at), + Ea = a(jt, !0); + t(jt), t(zt), t(Xe); + var Et = l(Xe), + Bt = a(Et); + it( + Bt, + 17, + () => e(i).members, + (w) => w.id, + (w, u) => { + var I = qn(), + B = a(I), + Q = a(B); + { + let st = $e(() => e(u).picture ?? void 0); + Gt(Q, { + class: "size-8 border", + get userId() { + return e(u).id; + }, + get pictureUrl() { + return e(st); + }, + }); + } + t(B); + var X = l(B), + Z = a(X); + Z.__click = [Tn, gt, u]; + var le = a(Z), + Ae = l(le), + rt = a(Ae); + t(Ae), t(Z), t(X); + var ue = l(X), + nt = a(ue, !0); + t(ue); + var be = l(ue), + se = a(be); + se.__click = [zn, sa, u]; + var Ie = a(se); + Jt(Ie, { class: "size-4" }); + var ot = l(Ie); + t(se), t(be); + var me = l(be), + qt = a(me), + Le = a(qt); + Le.__click = [jn, xt, u]; + var lt = l(Le, 2); + (lt.__click = [En, xt, u]), t(qt), t(me); + var Ut = l(me), + Ne = a(Ut); + Ne.__click = [Bn, la, u]; + var Oa = a(Ne, !0); + t(Ne), + t(Ut), + t(I), + C( + (st, Qa, Wa, Ya) => { + ce(Z, 1, `link font-semibold ${st ?? ""}`), + c(le, `${e(u).name ?? ""} `), + c(rt, `#${e(u).id ?? ""}`), + c(nt, Qa), + (se.disabled = + !e(u).lastPixelLatitude || + !e(u).lastPixelLongitude), + c(ot, ` ${Wa ?? ""}`), + ce( + Le, + 1, + `btn btn-xs join-item w-16 ${ + e(u).role === "member" + ? "btn-primary" + : "btn-outline" + }` + ), + (Le.disabled = + e(b) || e(u).role === "member"), + ce( + lt, + 1, + `btn btn-xs join-item w-16 ${ + e(u).role === "admin" + ? "btn-primary" + : "btn-outline" + }` + ), + (lt.disabled = + e(b) || e(u).role === "admin"), + (Ne.disabled = e(b)), + c(Oa, Ya); + }, + [ + () => Pe(e(u).id), + () => + e(u).pixelsPainted.toLocaleString("en-US"), + () => Vt(), + () => rn(), + ] + ), + x(w, I); + } + ); + var Ba = l(Bt); + { + var qa = (w) => { + var u = Un(), + I = a(u), + B = a(I, !0); + t(I), + t(u), + C((Q) => c(B, Q), [() => ln()]), + x(w, u); + }; + U(Ba, (w) => { + e(i).members.length === 0 && w(qa); + }); + } + t(Et), t(Tt), t(Ve); + var Ua = l(Ve, 2); + { + var Ha = (w) => { + var u = On(), + I = a(u); + I.__click = [Hn, mt]; + var B = a(I, !0); + t(I), + t(u), + C( + (Q) => { + (I.disabled = e(b)), c(B, Q); + }, + [() => wr()] + ), + x(w, u); + }; + U(Ua, (w) => { + e(na) && w(Ha); + }); + } + t(St), + t($), + C( + ( + w, + u, + I, + B, + Q, + X, + Z, + le, + Ae, + rt, + ue, + nt, + be, + se, + Ie, + ot, + me + ) => { + ce(j, 1, `text-lg font-semibold ${w ?? ""}`), + c(V, e(i).name), + ce( + Y, + 1, + `badge badge-sm ml-1 border-0 ${u ?? ""} ${ + I ?? "" + }` + ), + c(oe, `#${e(i).id ?? ""}`), + (P.disabled = e(b)), + c(H, B), + (A.disabled = e(b)), + c(ae, Q), + (O.disabled = e(b)), + c(Ee, X), + c(ka, Z), + c(Aa, e(i).description ?? "—"), + c(Ia, le), + c(La, e(i).ownerName ?? `#${e(i).ownerId}`), + c(Ca, Ae), + c(Sa, rt), + c(Da, ue), + c(Ra, e(i).membersCount), + (ke.disabled = e(b)), + c(Ma, ` ${nt ?? ""}`), + c(Fa, be), + c(Ta, se), + c(za, Ie), + c(ja, ot), + c(Ea, me); + }, + [ + () => Pe(e(i).id), + () => kr(e(i).id), + () => Pe(e(i).id), + () => qr(), + () => ea(), + () => ta(), + () => _r(), + () => Gr(), + () => _t(), + () => e(i).pixelsPainted.toLocaleString("en-US"), + () => fr(), + () => br(), + () => pr(), + () => _t(), + () => xr(), + () => hr(), + () => en(), + ] + ), + Ot( + 1, + $, + () => Zt, + () => ({ duration: 120 }) + ), + Ot( + 2, + $, + () => Zt, + () => ({ duration: 80 }) + ), + x(k, $); + } + ), + x(f, g); + }; + U( + N, + (f) => { + e(i) ? f(q, !1) : f(M); + }, + !0 + ); + } + x(p, h); + }; + U( + v, + (p) => { + e(K) ? p(m) : p(T, !1); + }, + !0 + ); + } + x(n, o); + }; + U(fa, (n) => { + e(b) && !e(i) ? n(pa) : n(xa, !1); + }); + } + t(wt), t(De); + var kt = l(De, 2); + { + var ga = (n) => { + var o = Jn(), + v = a(o), + m = a(v), + T = a(m, !0); + t(m); + var p = l(m, 2), + h = a(p); + ct(h), (h.__keydown = [Wn, ft]), t(p); + var N = l(p, 2), + M = a(N); + M.__click = [Yn, de]; + var q = a(M, !0); + t(M); + var f = l(M, 2); + f.__click = ft; + var g = a(f, !0); + t(f), t(N), t(v); + var y = l(v, 2); + (y.__click = [Gn, de]), + t(o), + C( + (k, $, z) => { + c(T, k), (M.disabled = e(b)), c(q, $), (f.disabled = e(b)), c(g, z); + }, + [() => dn(), () => ut(), () => Kt()] + ), + dt( + h, + () => e(pe), + (k) => s(pe, k) + ), + x(n, o); + }; + U(kt, (n) => { + e(de) && n(ga); + }); + } + var At = l(kt, 2); + { + var ha = (n) => { + var o = Zn(), + v = a(o), + m = a(v), + T = a(m, !0); + t(m); + var p = l(m, 2), + h = a(p, !0); + t(p); + var N = l(p, 2), + M = a(N); + ct(M), (M.__keydown = [Kn, pt]), t(N); + var q = l(N, 2), + f = a(q); + f.__click = [Vn, ve]; + var g = a(f, !0); + t(f); + var y = l(f, 2); + y.__click = pt; + var k = a(y, !0); + t(y), t(q), t(v); + var $ = l(v, 2); + ($.__click = [Xn, ve]), + t(o), + C( + (z, E, j, V) => { + c(T, z), + c(h, E), + (f.disabled = e(b)), + c(g, j), + (y.disabled = e(b)), + c(k, V); + }, + [() => ea(), () => un(), () => ut(), () => Kt()] + ), + dt( + M, + () => e(xe), + (z) => s(xe, z) + ), + x(n, o); + }; + U(At, (n) => { + e(ve) && n(ha); + }); + } + var ya = l(At, 2); + { + var wa = (n) => { + var o = ro(), + v = a(o), + m = a(v), + T = a(m, !0); + t(m); + var p = l(m, 2), + h = a(p, !0); + t(p); + var N = l(p, 2), + M = a(N), + q = a(M), + f = a(q, !0); + t(q); + var g = l(q, 2), + y = a(g); + y.value = y.__value = ""; + var k = l(y); + it( + k, + 17, + () => aa, + (P) => P.value, + (P, H) => { + var A = eo(), + ae = a(A, !0); + t(A); + var O = {}; + C(() => { + c(ae, e(H).label), + O !== (O = e(H).value) && + (A.value = (A.__value = e(H).value) ?? ""); + }), + x(P, A); + } + ), + t(g), + t(M), + t(N); + var $ = l(N, 2), + z = a($); + { + let P = $e(() => dr()), + H = $e(() => (e(ne) === "doxxing" ? 20 : 5)); + cr(z, { + class: "h-24 rounded-lg", + name: "notes", + get placeholder() { + return e(P); + }, + max: 2056, + get min() { + return e(H); + }, + get value() { + return e(ge); + }, + set value(A) { + s(ge, A, !0); + }, + get validate() { + return e(Ce); + }, + set validate(A) { + s(Ce, A, !0); + }, + }); + } + t($); + var E = l($, 2), + j = a(E); + j.__click = [to, re]; + var V = a(j, !0); + t(j); + var Y = l(j, 2); + Y.__click = [hn, i, ne, Ce, b, ge, ye, re]; + var oe = a(Y, !0); + t(Y), t(E), t(v); + var te = l(v, 2); + (te.__click = [ao, re]), + t(o), + C( + (P, H, A, ae, O, Ee) => { + c(T, P), + c(h, H), + c(f, A), + Qt(g, "aria-label", ae), + (j.disabled = e(b)), + c(V, O), + (Y.disabled = e(b) || !e(ne)), + c(oe, Ee); + }, + [ + () => ta(), + () => fn(), + () => Yt(), + () => Yt(), + () => ut(), + () => mr(), + ] + ), + ar( + g, + () => e(ne), + (P) => s(ne, P) + ), + x(n, o); + }; + U(ya, (n) => { + e(re) && n(wa); + }); + } + t(Se), + C( + (n, o, v, m, T) => { + c(ca, n), + Qt(Te, "placeholder", o), + (_e.disabled = e(R)), + c(da, v), + c(va, m), + c(_a, T); + }, + [() => Lr(), () => Pr(), () => yr(), () => gr(), () => Dr()] + ), + Va("submit", we, (n) => { + n.preventDefault(), bt(); + }), + dt( + Te, + () => e(_), + (n) => s(_, n) + ), + x(d, Se), + Xa(); +} +Ga(["click", "keydown"]); +export { Ro as component }; diff --git a/frontend-backup/_app/immutable/nodes/7.C4jrLY7T.js b/frontend-backup/_app/immutable/nodes/7.C4jrLY7T.js deleted file mode 100644 index eb9bd33..0000000 --- a/frontend-backup/_app/immutable/nodes/7.C4jrLY7T.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{at as Ga,p as Ja,au as S,av as Ka,y as Ht,g as e,aw as s,f as L,d as a,s as l,t as C,ax as Va,b as x,c as Xa,$ as Za,r as t,ay as fe,a as ie,u as $e}from"../chunks/BDALf20I.js";import{s as c}from"../chunks/4k6DpCgf.js";import{i as U}from"../chunks/Bke_korE.js";import{k as er,t as Ot}from"../chunks/BCONGQnO.js";import{e as it}from"../chunks/CZW2bcQi.js";import{h as tr}from"../chunks/BUhRjcOt.js";import{s as Qt,r as ct,d as ar,a as ce}from"../chunks/BNZUboE0.js";import{b as dt}from"../chunks/DS58drb5.js";import{g as Wt}from"../chunks/B4HM4TqG.js";import{p as vt}from"../chunks/C-Y7nmnD.js";import{a as G,t as D,i as rr,h as nr,f as or,j as lr,k as sr}from"../chunks/DffDvEhl.js";import{o as ir,L as cr,s as Yt,g as dr,a as vr}from"../chunks/CAQlJ3np.js";import{P as Gt}from"../chunks/DCxPsWiR.js";import{p as _t,L as Jt,d as _r}from"../chunks/sZ1mzRzK.js";import{R as ur}from"../chunks/rLj4C5Bn.js";import{g as F}from"../chunks/DklPLC_x.js";import{r as br}from"../chunks/Drv8f_fG.js";import{c as ut}from"../chunks/CDZgL_Bh.js";import{c as mr}from"../chunks/EXYzlOI1.js";import{s as Kt,v as Vt,m as fr,p as pr,l as xr}from"../chunks/DhR_xAc4.js";import{c as gr}from"../chunks/hLPYzGnf.js";import{l as Xt}from"../chunks/BMfwGdZU.js";import{r as hr}from"../chunks/CmAc-jwz.js";import{s as yr,l as wr}from"../chunks/6TAPgKgc.js";import{g as Pe,a as kr}from"../chunks/ClOhzjRc.js";import{f as Zt}from"../chunks/DnhglgUZ.js";(function(){try{var d=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};d.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var d=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new d.Error().stack;r&&(d._sentryDebugIds=d._sentryDebugIds||{},d._sentryDebugIds[r]="ddaa37ad-f9e2-4e98-a8b5-4092902406f9",d._sentryDebugIdIdentifier="sentry-dbid-ddaa37ad-f9e2-4e98-a8b5-4092902406f9")})()}catch{}const Ar=()=>"Search alliance (name or ID)",Ir=()=>"Buscar aliança (nome ou ID)",Lr=(d={},r={})=>(r.locale??F())==="en"?Ar():Ir(),Nr=()=>"Partial name or numeric ID",$r=()=>"Nome parcial ou ID numérico",Pr=(d={},r={})=>(r.locale??F())==="en"?Nr():$r(),Cr=()=>"Results",Sr=()=>"Resultados",Dr=(d={},r={})=>(r.locale??F())==="en"?Cr():Sr(),Rr=()=>"No alliance found",Mr=()=>"Nenhuma aliança encontrada",Fr=(d={},r={})=>(r.locale??F())==="en"?Rr():Mr(),Tr=()=>"No alliance selected",zr=()=>"Nenhuma aliança selecionada",jr=(d={},r={})=>(r.locale??F())==="en"?Tr():zr(),Er=()=>"Change name",Br=()=>"Alterar nome",qr=(d={},r={})=>(r.locale??F())==="en"?Er():Br(),Ur=()=>"Change leader",Hr=()=>"Alterar líder",ea=(d={},r={})=>(r.locale??F())==="en"?Ur():Hr(),Or=()=>"Ban all members",Qr=()=>"Banir todos os membros",ta=(d={},r={})=>(r.locale??F())==="en"?Or():Qr(),Wr=()=>"Creator (leader)",Yr=()=>"Proprietário (líder)",Gr=(d={},r={})=>(r.locale??F())==="en"?Wr():Yr(),Jr=()=>"No coordinates",Kr=()=>"Sem coordenadas",Vr=(d={},r={})=>(r.locale??F())==="en"?Jr():Kr(),Xr=()=>"Actions",Zr=()=>"Ações",en=(d={},r={})=>(r.locale??F())==="en"?Xr():Zr(),tn=()=>"Remove",an=()=>"Remover",rn=(d={},r={})=>(r.locale??F())==="en"?tn():an(),nn=()=>"No members",on=()=>"Sem membros",ln=(d={},r={})=>(r.locale??F())==="en"?nn():on(),sn=()=>"Rename alliance",cn=()=>"Alterar nome da aliança",dn=(d={},r={})=>(r.locale??F())==="en"?sn():cn(),vn=()=>"Inform the ID of the new leader",_n=()=>"Informe o ID do novo líder",un=(d={},r={})=>(r.locale??F())==="en"?vn():_n(),bn=()=>"Are you sure you want to ban all members of this alliance? This action cannot be undone.",mn=()=>"Tem certeza que deseja banir todos os membros desta aliança? Esta ação não pode ser desfeita.",fn=(d={},r={})=>(r.locale??F())==="en"?bn():mn();function pn(d,r,_,R){e(r)&&(s(_,e(r).name??"",!0),s(R,!0))}function xn(d,r,_,R){e(r)&&(s(_,e(r).ownerId?String(e(r).ownerId):"",!0),s(R,!0))}function gn(d,r){s(r,!0)}async function hn(d,r,_,R,W,ee,b,K){if(e(r)){if(!e(_)){D.error(vr());return}if(!(e(R)&&!e(R)()))try{s(W,!0),await G.banAllAllianceMembers(e(r).id,e(_),e(ee)),D.success("Todos os membros banidos"),await b(e(r).id,!0),s(K,!1)}catch(J){D.error((J==null?void 0:J.message)??"Falha ao banir membros")}finally{s(W,!1)}}}var yn=(d,r,_,R)=>{s(r,""),s(_,[],!0),s(R,null)},wn=L('
                      '),kn=L('
                      '),An=L('
                      '),In=(d,r,_)=>r(e(_).id,!0),Ln=L(''),Nn=L('
                      '),$n=L('
                      '),Pn=L('
                      '),Cn=L('
                      '),Sn=(d,r,_)=>{var R;return((R=e(r))==null?void 0:R.ownerId)!==void 0&&_(e(r).ownerId)},Dn=(d,r,_)=>r(e(_)),Rn=L('
                      ',1),Mn=L('
                      '),Fn=(d,r,_)=>e(r)&&_(e(r).id,!0),Tn=(d,r,_)=>r(e(_).id),zn=(d,r,_)=>r(e(_)),jn=(d,r,_)=>r(e(_),"member"),En=(d,r,_)=>r(e(_),"admin"),Bn=(d,r,_)=>r(e(_)),qn=L('
                      '),Un=L(' '),Hn=(d,r)=>r(),On=L('
                      '),Qn=L('
                      HQ

                      Total:
                      '),Wn=(d,r)=>d.key==="Enter"&&r(),Yn=(d,r)=>s(r,!1),Gn=(d,r)=>s(r,!1),Jn=L(''),Kn=(d,r)=>d.key==="Enter"&&r(),Vn=(d,r)=>s(r,!1),Xn=(d,r)=>s(r,!1),Zn=L(''),eo=L(""),to=(d,r)=>s(r,!1),ao=(d,r)=>s(r,!1),ro=L(''),no=L('
                      ');function Ro(d,r){Ja(r,!0);let _=S(""),R=S(!1),W=S(Ka([])),ee=S(null),b=S(!1),K=S(null),J=S(null),i=S(null),de=S(!1),pe=S(""),ve=S(!1),xe=S(""),re=S(!1),ne=S(""),ge=S(""),Ce=S(null);const aa=[{value:"inappropriate-content",label:rr()},{value:"hate-speech",label:nr()},{value:"doxxing",label:or()},{value:"bot",label:lr()},{value:"griefing",label:sr()},{value:"other",label:ir()}];let he=S(0);const ra=50;let na=$e(()=>!!e(i)&&e(i).members.length{e(re)||(s(ne,""),s(ge,""))}),Ht(()=>{const n=vt.url.searchParams.get("id"),o=n?Number(n):null;async function v(){o!==e(J)&&(s(J,o,!0),n&&s(_,n,!0),e(J)!=null&&!isNaN(e(J))?await ye(e(J),!0):(s(i,null),s(K,null)))}v()});async function bt(){try{s(ee,null),s(R,!0);const n=e(_).trim();if(!n){s(W,[],!0);return}const o=Number(n);if(Number.isFinite(o))try{const m=await G.getAllianceById(o);if(m){s(W,[{id:m.id,name:m.name,pixelsPainted:m.pixelsPainted??0}],!0);return}}catch{}const v=await G.searchAlliances(n);s(W,v,!0)}catch(n){console.error(n),s(ee,(n==null?void 0:n.message)??"Falha na busca",!0),s(W,[],!0)}finally{s(R,!1)}}async function ye(n,o=!1){try{s(b,!0),s(K,null);const v=await G.getAllianceFull(n);if(!v){s(i,null),s(K,"Alliance not found");return}s(i,v,!0),o&&(s(he,0),oa()&&await mt(!0)),Wt(`/admin/alliances?id=${n}`,{replaceState:!0})}catch(v){console.error(v),s(K,(v==null?void 0:v.message)??"Erro ao carregar aliança",!0),s(i,null)}finally{s(b,!1)}}function oa(){return!!e(i)&&e(i).members.lengthv.id===n.id?{...v,role:o}:v)},!0),D.success("Cargo atualizado")}catch(v){D.error((v==null?void 0:v.message)??"Falha ao atualizar cargo")}finally{s(b,!1)}}async function la(n){if(e(i)){if(n.id==e(i).ownerId){D.error("Não é possível remover o líder da aliança");return}try{s(b,!0),await G.removeAllianceMember(e(i).id,n.id),s(i,{...e(i),members:e(i).members.filter(o=>o.id!==n.id),membersCount:Math.max(0,e(i).membersCount-1)},!0),D.success("Membro removido")}catch(o){D.error((o==null?void 0:o.message)??"Falha ao remover membro")}finally{s(b,!1)}}}function sa(n){if(!n.lastPixelLatitude||!n.lastPixelLongitude){D.error("Sem registro de último pixel");return}const o=`${vt.url.origin}/?lat=${n.lastPixelLatitude}&lng=${n.lastPixelLongitude}&select=true`;window.open(o,"_blank")}function ia(n){const{hqLatitude:o,hqLongitude:v}=n;if(o==null||v==null){D.error("No coords for HQ");return}const m=`${vt.url.origin}/?lat=${o}&lng=${v}&select=true`;window.open(m,"_blank")}function gt(n){Wt(`/admin/users?id=${n}`)}var Se=no();tr(n=>{Za.title="Wplace - Admin - Alliances"});var De=a(Se),Re=a(De),we=a(Re),Me=a(we),Fe=a(Me),ca=a(Fe,!0);t(Fe);var Te=l(Fe,2);ct(Te),t(Me);var ht=l(Me,2),_e=a(ht);_e.__click=bt;var da=a(_e,!0);t(_e);var ze=l(_e,2);ze.__click=[yn,_,W,ee];var va=a(ze,!0);t(ze),t(ht),t(we);var yt=l(we,2),je=a(yt),_a=a(je,!0);t(je);var ua=l(je,2);{var ba=n=>{var o=wn(),v=l(a(o),2),m=a(v,!0);t(v),t(o),C(T=>c(m,T),[()=>Xt()]),x(n,o)},ma=n=>{var o=fe(),v=ie(o);{var m=p=>{var h=kn(),N=a(h,!0);t(h),C(()=>c(N,e(ee))),x(p,h)},T=p=>{var h=fe(),N=ie(h);{var M=f=>{var g=An(),y=a(g,!0);t(g),C(k=>c(y,k),[()=>Fr()]),x(f,g)},q=f=>{var g=Nn();it(g,21,()=>e(W),y=>y.id,(y,k)=>{var $=Ln();$.__click=[In,ye,k];var z=a($),E=a(z),j=a(E,!0);t(E);var V=l(E,2),Y=a(V);t(V),t(z);var oe=l(z,2),te=a(oe),P=l(te),H=a(P,!0);t(P),t(oe),t($),C((A,ae,O)=>{ce(E,1,`font-semibold ${A??""}`),c(j,e(k).name),c(Y,`#${e(k).id??""}`),c(te,`${ae??""}: `),c(H,O)},[()=>Pe(e(k).id),()=>_t(),()=>e(k).pixelsPainted.toLocaleString("en-US")]),x(y,$)}),t(g),x(f,g)};U(N,f=>{e(W).length===0?f(M):f(q,!1)},!0)}x(p,h)};U(v,p=>{e(ee)?p(m):p(T,!1)},!0)}x(n,o)};U(ua,n=>{e(R)?n(ba):n(ma,!1)})}t(yt),t(Re);var wt=l(Re,2),fa=a(wt);{var pa=n=>{var o=$n(),v=l(a(o),2),m=a(v,!0);t(v),t(o),C(T=>c(m,T),[()=>Xt()]),x(n,o)},xa=n=>{var o=fe(),v=ie(o);{var m=p=>{var h=Pn(),N=a(h,!0);t(h),C(()=>c(N,e(K))),x(p,h)},T=p=>{var h=fe(),N=ie(h);{var M=f=>{var g=Cn(),y=a(g,!0);t(g),C(k=>c(y,k),[()=>jr()]),x(f,g)},q=f=>{var g=fe(),y=ie(g);er(y,()=>e(i).id,k=>{var $=Qn(),z=a($),E=a(z),j=a(E),V=a(j,!0);t(j);var Y=l(j,2),oe=a(Y);t(Y),t(E);var te=l(E,2),P=a(te);P.__click=[pn,i,pe,de];var H=a(P,!0);t(P);var A=l(P,2);A.__click=[xn,i,xe,ve];var ae=a(A,!0);t(A);var O=l(A,2);O.__click=[gn,re];var Ee=a(O,!0);t(O),t(te),t(z);var Be=l(z,2),qe=a(Be),ka=a(qe,!0);t(qe);var It=l(qe,2),Aa=a(It,!0);t(It),t(Be);var Ue=l(Be,2),He=a(Ue),Oe=a(He),Ia=a(Oe,!0);t(Oe);var Lt=l(Oe,2),Nt=a(Lt);Gt(Nt,{class:"size-8 border",get userId(){return e(i).ownerId},pictureUrl:void 0});var Qe=l(Nt,2);Qe.__click=[Sn,i,gt];var La=a(Qe,!0);t(Qe),t(Lt),t(He);var We=l(He,2),$t=l(a(We),2),Na=a($t);{var $a=w=>{var u=Rn(),I=ie(u),B=a(I);t(I);var Q=l(I,2);Q.__click=[Dn,ia,i];var X=a(Q);Jt(X,{class:"size-4"});var Z=l(X);t(Q),C(le=>{c(B,`Lat: ${e(i).hqLatitude??""}, Lng: ${e(i).hqLongitude??""}`),c(Z,` ${le??""}`)},[()=>Vt()]),x(w,u)},Pa=w=>{var u=Mn(),I=a(u,!0);t(u),C(B=>c(I,B),[()=>Vr()]),x(w,u)};U(Na,w=>{e(i).hqLatitude!=null&&e(i).hqLongitude!=null?w($a):w(Pa,!1)})}t($t),t(We);var Pt=l(We,2),Ye=a(Pt),Ca=a(Ye,!0);t(Ye);var Ct=l(Ye,2),Sa=a(Ct,!0);t(Ct),t(Pt),t(Ue);var St=l(Ue,2),Ge=a(St),Je=a(Ge),Ke=a(Je),Da=a(Ke,!0);t(Ke);var Dt=l(Ke,2),Rt=l(a(Dt)),Ra=a(Rt,!0);t(Rt),t(Dt),t(Je);var Mt=l(Je,2),ke=a(Mt);ke.__click=[Fn,i,ye];var Ft=a(ke);ur(Ft,{class:"size-4"});var Ma=l(Ft);t(ke),t(Mt),t(Ge);var Ve=l(Ge,2),Tt=a(Ve),Xe=a(Tt),zt=a(Xe),Ze=l(a(zt)),Fa=a(Ze,!0);t(Ze);var et=l(Ze),Ta=a(et,!0);t(et);var tt=l(et),za=a(tt,!0);t(tt);var at=l(tt),ja=a(at,!0);t(at);var jt=l(at),Ea=a(jt,!0);t(jt),t(zt),t(Xe);var Et=l(Xe),Bt=a(Et);it(Bt,17,()=>e(i).members,w=>w.id,(w,u)=>{var I=qn(),B=a(I),Q=a(B);{let st=$e(()=>e(u).picture??void 0);Gt(Q,{class:"size-8 border",get userId(){return e(u).id},get pictureUrl(){return e(st)}})}t(B);var X=l(B),Z=a(X);Z.__click=[Tn,gt,u];var le=a(Z),Ae=l(le),rt=a(Ae);t(Ae),t(Z),t(X);var ue=l(X),nt=a(ue,!0);t(ue);var be=l(ue),se=a(be);se.__click=[zn,sa,u];var Ie=a(se);Jt(Ie,{class:"size-4"});var ot=l(Ie);t(se),t(be);var me=l(be),qt=a(me),Le=a(qt);Le.__click=[jn,xt,u];var lt=l(Le,2);lt.__click=[En,xt,u],t(qt),t(me);var Ut=l(me),Ne=a(Ut);Ne.__click=[Bn,la,u];var Oa=a(Ne,!0);t(Ne),t(Ut),t(I),C((st,Qa,Wa,Ya)=>{ce(Z,1,`link font-semibold ${st??""}`),c(le,`${e(u).name??""} `),c(rt,`#${e(u).id??""}`),c(nt,Qa),se.disabled=!e(u).lastPixelLatitude||!e(u).lastPixelLongitude,c(ot,` ${Wa??""}`),ce(Le,1,`btn btn-xs join-item w-16 ${e(u).role==="member"?"btn-primary":"btn-outline"}`),Le.disabled=e(b)||e(u).role==="member",ce(lt,1,`btn btn-xs join-item w-16 ${e(u).role==="admin"?"btn-primary":"btn-outline"}`),lt.disabled=e(b)||e(u).role==="admin",Ne.disabled=e(b),c(Oa,Ya)},[()=>Pe(e(u).id),()=>e(u).pixelsPainted.toLocaleString("en-US"),()=>Vt(),()=>rn()]),x(w,I)});var Ba=l(Bt);{var qa=w=>{var u=Un(),I=a(u),B=a(I,!0);t(I),t(u),C(Q=>c(B,Q),[()=>ln()]),x(w,u)};U(Ba,w=>{e(i).members.length===0&&w(qa)})}t(Et),t(Tt),t(Ve);var Ua=l(Ve,2);{var Ha=w=>{var u=On(),I=a(u);I.__click=[Hn,mt];var B=a(I,!0);t(I),t(u),C(Q=>{I.disabled=e(b),c(B,Q)},[()=>wr()]),x(w,u)};U(Ua,w=>{e(na)&&w(Ha)})}t(St),t($),C((w,u,I,B,Q,X,Z,le,Ae,rt,ue,nt,be,se,Ie,ot,me)=>{ce(j,1,`text-lg font-semibold ${w??""}`),c(V,e(i).name),ce(Y,1,`badge badge-sm ml-1 border-0 ${u??""} ${I??""}`),c(oe,`#${e(i).id??""}`),P.disabled=e(b),c(H,B),A.disabled=e(b),c(ae,Q),O.disabled=e(b),c(Ee,X),c(ka,Z),c(Aa,e(i).description??"—"),c(Ia,le),c(La,e(i).ownerName??`#${e(i).ownerId}`),c(Ca,Ae),c(Sa,rt),c(Da,ue),c(Ra,e(i).membersCount),ke.disabled=e(b),c(Ma,` ${nt??""}`),c(Fa,be),c(Ta,se),c(za,Ie),c(ja,ot),c(Ea,me)},[()=>Pe(e(i).id),()=>kr(e(i).id),()=>Pe(e(i).id),()=>qr(),()=>ea(),()=>ta(),()=>_r(),()=>Gr(),()=>_t(),()=>e(i).pixelsPainted.toLocaleString("en-US"),()=>fr(),()=>br(),()=>pr(),()=>_t(),()=>xr(),()=>hr(),()=>en()]),Ot(1,$,()=>Zt,()=>({duration:120})),Ot(2,$,()=>Zt,()=>({duration:80})),x(k,$)}),x(f,g)};U(N,f=>{e(i)?f(q,!1):f(M)},!0)}x(p,h)};U(v,p=>{e(K)?p(m):p(T,!1)},!0)}x(n,o)};U(fa,n=>{e(b)&&!e(i)?n(pa):n(xa,!1)})}t(wt),t(De);var kt=l(De,2);{var ga=n=>{var o=Jn(),v=a(o),m=a(v),T=a(m,!0);t(m);var p=l(m,2),h=a(p);ct(h),h.__keydown=[Wn,ft],t(p);var N=l(p,2),M=a(N);M.__click=[Yn,de];var q=a(M,!0);t(M);var f=l(M,2);f.__click=ft;var g=a(f,!0);t(f),t(N),t(v);var y=l(v,2);y.__click=[Gn,de],t(o),C((k,$,z)=>{c(T,k),M.disabled=e(b),c(q,$),f.disabled=e(b),c(g,z)},[()=>dn(),()=>ut(),()=>Kt()]),dt(h,()=>e(pe),k=>s(pe,k)),x(n,o)};U(kt,n=>{e(de)&&n(ga)})}var At=l(kt,2);{var ha=n=>{var o=Zn(),v=a(o),m=a(v),T=a(m,!0);t(m);var p=l(m,2),h=a(p,!0);t(p);var N=l(p,2),M=a(N);ct(M),M.__keydown=[Kn,pt],t(N);var q=l(N,2),f=a(q);f.__click=[Vn,ve];var g=a(f,!0);t(f);var y=l(f,2);y.__click=pt;var k=a(y,!0);t(y),t(q),t(v);var $=l(v,2);$.__click=[Xn,ve],t(o),C((z,E,j,V)=>{c(T,z),c(h,E),f.disabled=e(b),c(g,j),y.disabled=e(b),c(k,V)},[()=>ea(),()=>un(),()=>ut(),()=>Kt()]),dt(M,()=>e(xe),z=>s(xe,z)),x(n,o)};U(At,n=>{e(ve)&&n(ha)})}var ya=l(At,2);{var wa=n=>{var o=ro(),v=a(o),m=a(v),T=a(m,!0);t(m);var p=l(m,2),h=a(p,!0);t(p);var N=l(p,2),M=a(N),q=a(M),f=a(q,!0);t(q);var g=l(q,2),y=a(g);y.value=y.__value="";var k=l(y);it(k,17,()=>aa,P=>P.value,(P,H)=>{var A=eo(),ae=a(A,!0);t(A);var O={};C(()=>{c(ae,e(H).label),O!==(O=e(H).value)&&(A.value=(A.__value=e(H).value)??"")}),x(P,A)}),t(g),t(M),t(N);var $=l(N,2),z=a($);{let P=$e(()=>dr()),H=$e(()=>e(ne)==="doxxing"?20:5);cr(z,{class:"h-24 rounded-lg",name:"notes",get placeholder(){return e(P)},max:2056,get min(){return e(H)},get value(){return e(ge)},set value(A){s(ge,A,!0)},get validate(){return e(Ce)},set validate(A){s(Ce,A,!0)}})}t($);var E=l($,2),j=a(E);j.__click=[to,re];var V=a(j,!0);t(j);var Y=l(j,2);Y.__click=[hn,i,ne,Ce,b,ge,ye,re];var oe=a(Y,!0);t(Y),t(E),t(v);var te=l(v,2);te.__click=[ao,re],t(o),C((P,H,A,ae,O,Ee)=>{c(T,P),c(h,H),c(f,A),Qt(g,"aria-label",ae),j.disabled=e(b),c(V,O),Y.disabled=e(b)||!e(ne),c(oe,Ee)},[()=>ta(),()=>fn(),()=>Yt(),()=>Yt(),()=>ut(),()=>mr()]),ar(g,()=>e(ne),P=>s(ne,P)),x(n,o)};U(ya,n=>{e(re)&&n(wa)})}t(Se),C((n,o,v,m,T)=>{c(ca,n),Qt(Te,"placeholder",o),_e.disabled=e(R),c(da,v),c(va,m),c(_a,T)},[()=>Lr(),()=>Pr(),()=>yr(),()=>gr(),()=>Dr()]),Va("submit",we,n=>{n.preventDefault(),bt()}),dt(Te,()=>e(_),n=>s(_,n)),x(d,Se),Xa()}Ga(["click","keydown"]);export{Ro as component}; diff --git a/frontend-backup/_app/immutable/nodes/8.BbOUPQlW.js b/frontend-backup/_app/immutable/nodes/8.BbOUPQlW.js new file mode 100644 index 0000000..bc04736 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/8.BbOUPQlW.js @@ -0,0 +1,433 @@ +import "../chunks/Ch2Ub8FX.js"; +import { o as Oe } from "../chunks/DoL3ojdE.js"; +import { + at as je, + p as Be, + av as Le, + y as be, + g as s, + au as B, + aw as y, + f as m, + d as t, + s as i, + t as u, + b as n, + c as ze, + $ as Me, + r as e, + ay as L, + a as z, +} from "../chunks/CMvZtFtm.js"; +import { s as l } from "../chunks/DVA6u9-7.js"; +import { i as k } from "../chunks/BF50aS-j.js"; +import { e as ne, i as de } from "../chunks/CXkjfmFU.js"; +import { h as Ge } from "../chunks/P77cUGnY.js"; +import { r as He } from "../chunks/C5yqZvKC.js"; +import { a as Ne } from "../chunks/Dpga8uG-.js"; +import { g as We } from "../chunks/CyB--sFG.js"; +import { a as ue } from "../chunks/BRM3t761.js"; +import { R as Ye } from "../chunks/m3o6lEf1.js"; +import { g as ge } from "../chunks/CV9xcpLq.js"; +import { o as qe } from "../chunks/BpoSU4rb.js"; +import { c as Ce } from "../chunks/CVa8RI1g.js"; +import { l as me } from "../chunks/BHI5vujT.js"; +import { n as xe } from "../chunks/Blc0Ir5M.js"; +import { e as Fe } from "../chunks/CmhsLcKe.js"; +(function () { + try { + var f = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + f.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var f = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + p = new f.Error().stack; + p && + ((f._sentryDebugIds = f._sentryDebugIds || {}), + (f._sentryDebugIds[p] = "e51441df-36bf-46a6-b46f-8e262c981114"), + (f._sentryDebugIdIdentifier = + "sentry-dbid-e51441df-36bf-46a6-b46f-8e262c981114")); + })(); +} catch {} +const Je = () => "Select all", + Ke = () => "Selecionar tudo", + Pe = (f = {}, p = {}) => ((p.locale ?? ge()) === "en" ? Je() : Ke()), + Qe = () => "Open reports", + Ue = () => "Reports abertos", + Ve = (f = {}, p = {}) => ((p.locale ?? ge()) === "en" ? Qe() : Ue()); +var Xe = (f, p) => p(!0), + Ze = (f, p) => p(!1), + $e = m( + '' + ), + et = m( + '
                      ' + ), + tt = m('

                      '), + at = m( + '
                      ' + ), + rt = m( + '
                      Total
                      ' + ), + st = m('

                      '), + ot = m( + '
                      ' + ), + lt = m('

                      '), + it = m( + '
                      ' + ), + nt = m( + '
                      Total
                      ' + ), + dt = m('

                      '), + vt = m( + '

                      ' + ); +function Et(f, p) { + Be(p, !0); + let w = B(!0), + A = B(null), + O = B(null), + M = B(null); + const j = [ + { key: "doxxing", label: "Doxxing" }, + { key: "inappropriate_content", label: "Inappropriate" }, + { key: "hate_speech", label: "Hate Speech" }, + { key: "bot", label: "Bot" }, + { key: "other", label: "Other" }, + { key: "griefing", label: "Griefing" }, + ]; + let T = Le({ + doxxing: !0, + inappropriate_content: !0, + hate_speech: !0, + bot: !0, + other: !0, + griefing: !0, + }), + J = B(0), + K = B(0); + be(() => { + const a = s(O); + if (!a) { + y(J, 0); + return; + } + let r = 0; + for (const o of j) T[o.key] && (r += a[o.key]); + y(J, r, !0); + }), + be(() => { + const a = s(M); + if (!a) { + y(K, 0); + return; + } + let r = 0; + for (const o of j) T[o.key] && (r += a[o.key]); + y(K, r, !0); + }); + async function ve() { + try { + y(w, !0), + y(A, null), + y(O, await ue.getOpenTicketsSummary(), !0), + y(M, await ue.getOpenReportsSummary(), !0); + } catch (a) { + a.status === 403 || a.status === 401 + ? We("/404") + : y(A, (a == null ? void 0 : a.message) ?? Fe(), !0), + y(O, null); + } finally { + y(w, !1); + } + } + Oe(ve); + function ce(a) { + for (const r of j) T[r.key] = a; + } + var P = vt(); + Ge((a) => { + Me.title = "FurryPlace - Admin Dashboard"; + }); + var Q = t(P), + U = t(Q), + ye = t(U, !0); + e(U); + var fe = i(U, 2), + q = t(fe); + q.__click = [Xe, ce]; + var he = t(q, !0); + e(q); + var C = i(q, 2); + C.__click = [Ze, ce]; + var ke = t(C, !0); + e(C); + var F = i(C, 2); + F.__click = ve; + var we = t(F); + Ye(we, { class: "size-4" }), e(F), e(fe), e(Q); + var V = i(Q, 2); + ne( + V, + 21, + () => j, + de, + (a, r) => { + var o = $e(), + _ = t(o); + He(_); + var h = i(_, 2), + d = t(h, !0); + e(h), + e(o), + u(() => l(d, s(r).label)), + Ne( + _, + () => T[s(r).key], + (v) => (T[s(r).key] = v) + ), + n(a, o); + } + ), + e(V); + var X = i(V, 2), + Te = t(X); + { + var Se = (a) => { + var r = et(), + o = i(t(r), 2), + _ = t(o, !0); + e(o), e(r), u((h) => l(_, h), [() => me()]), n(a, r); + }, + De = (a) => { + var r = L(), + o = z(r); + { + var _ = (d) => { + var v = tt(), + S = t(v, !0); + e(v), u(() => l(S, s(A))), n(d, v); + }, + h = (d) => { + var v = L(), + S = z(v); + { + var $ = (b) => { + var c = rt(), + x = t(c), + g = t(x), + G = i(t(g), 2), + te = t(G, !0); + e(G), e(g); + var H = i(g, 2), + ae = t(H); + e(H), e(x); + var N = i(x, 2); + ne( + N, + 21, + () => j, + de, + (re, D) => { + var W = L(), + se = z(W); + { + var oe = (I) => { + var R = at(), + E = t(R), + le = t(E, !0); + e(E); + var Y = i(E, 2), + ie = t(Y, !0); + e(Y), + e(R), + u(() => { + l(le, s(D).label), l(ie, s(O)[s(D).key]); + }), + n(I, R); + }; + k(se, (I) => { + T[s(D).key] && I(oe); + }); + } + n(re, W); + } + ), + e(N), + e(c), + u(() => { + l(te, s(J)), + l(ae, `Base: ${s(O).total_open_tickets ?? ""}`); + }), + n(b, c); + }, + ee = (b) => { + var c = st(), + x = t(c, !0); + e(c), u((g) => l(x, g), [() => xe()]), n(b, c); + }; + k( + S, + (b) => { + s(O) ? b($) : b(ee, !1); + }, + !0 + ); + } + n(d, v); + }; + k( + o, + (d) => { + s(A) ? d(_) : d(h, !1); + }, + !0 + ); + } + n(a, r); + }; + k(Te, (a) => { + s(w) ? a(Se) : a(De, !1); + }); + } + e(X); + var pe = i(X, 2), + Z = t(pe), + _e = t(Z), + Ie = t(_e, !0); + e(_e), e(Z); + var Re = i(Z, 2); + { + var Ee = (a) => { + var r = ot(), + o = i(t(r), 2), + _ = t(o, !0); + e(o), e(r), u((h) => l(_, h), [() => me()]), n(a, r); + }, + Ae = (a) => { + var r = L(), + o = z(r); + { + var _ = (d) => { + var v = lt(), + S = t(v, !0); + e(v), u(() => l(S, s(A))), n(d, v); + }, + h = (d) => { + var v = L(), + S = z(v); + { + var $ = (b) => { + var c = nt(), + x = t(c), + g = t(x), + G = i(t(g), 2), + te = t(G, !0); + e(G), e(g); + var H = i(g, 2), + ae = t(H); + e(H), e(x); + var N = i(x, 2); + ne( + N, + 21, + () => j, + de, + (re, D) => { + var W = L(), + se = z(W); + { + var oe = (I) => { + var R = it(), + E = t(R), + le = t(E, !0); + e(E); + var Y = i(E, 2), + ie = t(Y, !0); + e(Y), + e(R), + u(() => { + l(le, s(D).label), l(ie, s(M)[s(D).key]); + }), + n(I, R); + }; + k(se, (I) => { + T[s(D).key] && I(oe); + }); + } + n(re, W); + } + ), + e(N), + e(c), + u(() => { + l(te, s(K)), + l(ae, `Base: ${s(M).total_open_reports ?? ""}`); + }), + n(b, c); + }, + ee = (b) => { + var c = dt(), + x = t(c, !0); + e(c), u((g) => l(x, g), [() => xe()]), n(b, c); + }; + k( + S, + (b) => { + s(M) ? b($) : b(ee, !1); + }, + !0 + ); + } + n(d, v); + }; + k( + o, + (d) => { + s(A) ? d(_) : d(h, !1); + }, + !0 + ); + } + n(a, r); + }; + k(Re, (a) => { + s(w) ? a(Ee) : a(Ae, !1); + }); + } + e(pe), + e(P), + u( + (a, r, o, _) => { + l(ye, a), l(he, r), l(ke, o), (F.disabled = s(w)), l(Ie, _); + }, + [() => qe(), () => Pe(), () => Ce(), () => Ve()] + ), + n(f, P), + ze(); +} +je(["click"]); +export { Et as component }; diff --git a/frontend-backup/_app/immutable/nodes/8.DIMn846h.js b/frontend-backup/_app/immutable/nodes/8.DIMn846h.js deleted file mode 100644 index 406ae53..0000000 --- a/frontend-backup/_app/immutable/nodes/8.DIMn846h.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import{o as Oe}from"../chunks/4WsUhDWi.js";import{at as je,p as Be,av as Le,y as be,g as s,au as B,aw as y,f as m,d as t,s as i,t as u,b as n,c as ze,$ as Me,r as e,ay as L,a as z}from"../chunks/BDALf20I.js";import{s as l}from"../chunks/4k6DpCgf.js";import{i as k}from"../chunks/Bke_korE.js";import{e as ne,i as de}from"../chunks/CZW2bcQi.js";import{h as Ge}from"../chunks/BUhRjcOt.js";import{r as He}from"../chunks/BNZUboE0.js";import{a as Ne}from"../chunks/DS58drb5.js";import{g as We}from"../chunks/B4HM4TqG.js";import{a as ue}from"../chunks/DffDvEhl.js";import{R as Ye}from"../chunks/rLj4C5Bn.js";import{g as ge}from"../chunks/DklPLC_x.js";import{o as qe}from"../chunks/GVP1MJz5.js";import{c as Ce}from"../chunks/hLPYzGnf.js";import{l as me}from"../chunks/BMfwGdZU.js";import{n as xe}from"../chunks/DFzO1c4b.js";import{e as Fe}from"../chunks/ChoU6b3z.js";(function(){try{var p=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};p.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var p=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},f=new p.Error().stack;f&&(p._sentryDebugIds=p._sentryDebugIds||{},p._sentryDebugIds[f]="80a014d2-358c-4d0f-a3b5-f111523645d8",p._sentryDebugIdIdentifier="sentry-dbid-80a014d2-358c-4d0f-a3b5-f111523645d8")})()}catch{}const Je=()=>"Select all",Ke=()=>"Selecionar tudo",Pe=(p={},f={})=>(f.locale??ge())==="en"?Je():Ke(),Qe=()=>"Open reports",Ue=()=>"Reports abertos",Ve=(p={},f={})=>(f.locale??ge())==="en"?Qe():Ue();var Xe=(p,f)=>f(!0),Ze=(p,f)=>f(!1),$e=m(''),et=m('
                      '),tt=m('

                      '),at=m('
                      '),rt=m('
                      Total
                      '),st=m('

                      '),ot=m('
                      '),lt=m('

                      '),it=m('
                      '),nt=m('
                      Total
                      '),dt=m('

                      '),vt=m('

                      ');function Et(p,f){Be(f,!0);let w=B(!0),A=B(null),O=B(null),M=B(null);const j=[{key:"doxxing",label:"Doxxing"},{key:"inappropriate_content",label:"Inappropriate"},{key:"hate_speech",label:"Hate Speech"},{key:"bot",label:"Bot"},{key:"other",label:"Other"},{key:"griefing",label:"Griefing"}];let T=Le({doxxing:!0,inappropriate_content:!0,hate_speech:!0,bot:!0,other:!0,griefing:!0}),J=B(0),K=B(0);be(()=>{const a=s(O);if(!a){y(J,0);return}let r=0;for(const o of j)T[o.key]&&(r+=a[o.key]);y(J,r,!0)}),be(()=>{const a=s(M);if(!a){y(K,0);return}let r=0;for(const o of j)T[o.key]&&(r+=a[o.key]);y(K,r,!0)});async function ve(){try{y(w,!0),y(A,null),y(O,await ue.getOpenTicketsSummary(),!0),y(M,await ue.getOpenReportsSummary(),!0)}catch(a){a.status===403||a.status===401?We("/404"):y(A,(a==null?void 0:a.message)??Fe(),!0),y(O,null)}finally{y(w,!1)}}Oe(ve);function ce(a){for(const r of j)T[r.key]=a}var P=vt();Ge(a=>{Me.title="Wplace - Admin Dashboard"});var Q=t(P),U=t(Q),ye=t(U,!0);e(U);var pe=i(U,2),q=t(pe);q.__click=[Xe,ce];var he=t(q,!0);e(q);var C=i(q,2);C.__click=[Ze,ce];var ke=t(C,!0);e(C);var F=i(C,2);F.__click=ve;var we=t(F);Ye(we,{class:"size-4"}),e(F),e(pe),e(Q);var V=i(Q,2);ne(V,21,()=>j,de,(a,r)=>{var o=$e(),_=t(o);He(_);var h=i(_,2),d=t(h,!0);e(h),e(o),u(()=>l(d,s(r).label)),Ne(_,()=>T[s(r).key],v=>T[s(r).key]=v),n(a,o)}),e(V);var X=i(V,2),Te=t(X);{var Se=a=>{var r=et(),o=i(t(r),2),_=t(o,!0);e(o),e(r),u(h=>l(_,h),[()=>me()]),n(a,r)},De=a=>{var r=L(),o=z(r);{var _=d=>{var v=tt(),S=t(v,!0);e(v),u(()=>l(S,s(A))),n(d,v)},h=d=>{var v=L(),S=z(v);{var $=b=>{var c=rt(),x=t(c),g=t(x),G=i(t(g),2),te=t(G,!0);e(G),e(g);var H=i(g,2),ae=t(H);e(H),e(x);var N=i(x,2);ne(N,21,()=>j,de,(re,D)=>{var W=L(),se=z(W);{var oe=I=>{var R=at(),E=t(R),le=t(E,!0);e(E);var Y=i(E,2),ie=t(Y,!0);e(Y),e(R),u(()=>{l(le,s(D).label),l(ie,s(O)[s(D).key])}),n(I,R)};k(se,I=>{T[s(D).key]&&I(oe)})}n(re,W)}),e(N),e(c),u(()=>{l(te,s(J)),l(ae,`Base: ${s(O).total_open_tickets??""}`)}),n(b,c)},ee=b=>{var c=st(),x=t(c,!0);e(c),u(g=>l(x,g),[()=>xe()]),n(b,c)};k(S,b=>{s(O)?b($):b(ee,!1)},!0)}n(d,v)};k(o,d=>{s(A)?d(_):d(h,!1)},!0)}n(a,r)};k(Te,a=>{s(w)?a(Se):a(De,!1)})}e(X);var fe=i(X,2),Z=t(fe),_e=t(Z),Ie=t(_e,!0);e(_e),e(Z);var Re=i(Z,2);{var Ee=a=>{var r=ot(),o=i(t(r),2),_=t(o,!0);e(o),e(r),u(h=>l(_,h),[()=>me()]),n(a,r)},Ae=a=>{var r=L(),o=z(r);{var _=d=>{var v=lt(),S=t(v,!0);e(v),u(()=>l(S,s(A))),n(d,v)},h=d=>{var v=L(),S=z(v);{var $=b=>{var c=nt(),x=t(c),g=t(x),G=i(t(g),2),te=t(G,!0);e(G),e(g);var H=i(g,2),ae=t(H);e(H),e(x);var N=i(x,2);ne(N,21,()=>j,de,(re,D)=>{var W=L(),se=z(W);{var oe=I=>{var R=it(),E=t(R),le=t(E,!0);e(E);var Y=i(E,2),ie=t(Y,!0);e(Y),e(R),u(()=>{l(le,s(D).label),l(ie,s(M)[s(D).key])}),n(I,R)};k(se,I=>{T[s(D).key]&&I(oe)})}n(re,W)}),e(N),e(c),u(()=>{l(te,s(K)),l(ae,`Base: ${s(M).total_open_reports??""}`)}),n(b,c)},ee=b=>{var c=dt(),x=t(c,!0);e(c),u(g=>l(x,g),[()=>xe()]),n(b,c)};k(S,b=>{s(M)?b($):b(ee,!1)},!0)}n(d,v)};k(o,d=>{s(A)?d(_):d(h,!1)},!0)}n(a,r)};k(Re,a=>{s(w)?a(Ee):a(Ae,!1)})}e(fe),e(P),u((a,r,o,_)=>{l(ye,a),l(he,r),l(ke,o),F.disabled=s(w),l(Ie,_)},[()=>qe(),()=>Pe(),()=>Ce(),()=>Ve()]),n(p,P),ze()}je(["click"]);export{Et as component}; diff --git a/frontend-backup/_app/immutable/nodes/9.BhPlDH9q.js b/frontend-backup/_app/immutable/nodes/9.BhPlDH9q.js deleted file mode 100644 index 4cce919..0000000 --- a/frontend-backup/_app/immutable/nodes/9.BhPlDH9q.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/B2cHk4HI.js";import"../chunks/cUtKXcx3.js";import{$ as o}from"../chunks/BDALf20I.js";import{h as d}from"../chunks/BUhRjcOt.js";import"../chunks/DklPLC_x.js";import"../chunks/B4HM4TqG.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"35111e7039e8c68cc677344b7f7c6971567f6820"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="491631c0-f691-4b05-9eaf-88edf584d98a",e._sentryDebugIdIdentifier="sentry-dbid-491631c0-f691-4b05-9eaf-88edf584d98a")})()}catch{}function s(e){d(n=>{o.title="Wplace - Admin - Mods Dashboard"})}export{s as component}; diff --git a/frontend-backup/_app/immutable/nodes/9.Cn-noR6e.js b/frontend-backup/_app/immutable/nodes/9.Cn-noR6e.js new file mode 100644 index 0000000..57cc696 --- /dev/null +++ b/frontend-backup/_app/immutable/nodes/9.Cn-noR6e.js @@ -0,0 +1,47 @@ +import "../chunks/Ch2Ub8FX.js"; +import "../chunks/BOREeBzQ.js"; +import { $ as n } from "../chunks/CMvZtFtm.js"; +import { h as o } from "../chunks/P77cUGnY.js"; +import "../chunks/CV9xcpLq.js"; +import "../chunks/CyB--sFG.js"; +(function () { + try { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}; + e.SENTRY_RELEASE = { id: "9ccec90dcd6b8d85831cf2b37643f1564d033383" }; + } catch {} +})(); +try { + (function () { + var e = + typeof window < "u" + ? window + : typeof global < "u" + ? global + : typeof globalThis < "u" + ? globalThis + : typeof self < "u" + ? self + : {}, + d = new e.Error().stack; + d && + ((e._sentryDebugIds = e._sentryDebugIds || {}), + (e._sentryDebugIds[d] = "491631c0-f691-4b05-9eaf-88edf584d98a"), + (e._sentryDebugIdIdentifier = + "sentry-dbid-491631c0-f691-4b05-9eaf-88edf584d98a")); + })(); +} catch {} +function s(e) { + o((d) => { + n.title = "FurryPlace - Admin - Mods Dashboard"; + }); +} +export { s as component }; diff --git a/frontend-backup/_app/info.js b/frontend-backup/_app/info.js deleted file mode 100644 index 0d17423..0000000 --- a/frontend-backup/_app/info.js +++ /dev/null @@ -1,302 +0,0 @@ -// Modal content configuration -// This file fetches content from the backend API and patches modals dynamically -window.WPLACE_INFO = { - // Default fallback content (used if API fails) - modal: { - overview: { - title_en: "Overview", - title_zh: "概述", - videoUrl: "https://www.youtube.com/embed/xOXtd-WzRxA?si=fHz8Z6ecXGYrDhkN" - }, - paintFaster: { - title_en: "How to paint faster", - title_zh: "如何画得更快?", - mobile_en: "When painting, click on the button on the top right corner of the screen. This will lock the screen but it'll also enable painting by moving your finger over the map.", - mobile_zh: "在绘制时候按住按钮屏幕右上角。这将锁定屏幕,但也可以通过在地图上移动手指来绘画.", - desktop_en: "Hold SPACE and move your cursor over the map.", - desktop_zh: "按住空格并且移动鼠标." - }, - mapLagging: { - title_en: "My map is lagging", - title_zh: "地图卡顿", - text_en: "Follow the instructions to enable hardware acceleration:", - text_zh: "请按照说明启用硬件加速:", - link: "https://help.constructiononline.com/en/scheduling-webgl-and-hardware-acceleration" - }, - rules: { - title_en: "Rules", - title_zh: "规则", - badge_en: "Important", - badge_zh: "重要", - items: [ - { text_en: "📜 All users are responsible for the content they post. The platform reserves the right of final interpretation.", text_zh: "📜 所有用户对其发布的内容负责。平台保留最终解释权。" }, - { text_en: "🛑 Any violation may result in immediate removal of content and permanent ban of the account", text_zh: "🛑 任何违规行为可能导致内容立即删除和账户永久封禁" }, - { text_en: "😈 Do not paint over other artworks using random colors or patterns just to mess things up", text_zh: "😈 请勿使用随机颜色或图案覆盖其他作品" }, - { text_en: "🙅 Disclosing other's personal information is not allowed", text_zh: "🙅 不允许泄露他人个人信息" } - ], - footer_en: "Violations of these rules may result in suspension of your account.", - footer_zh: "违反会导致你被封禁。" - }, - footer: { - email: "contact@wplace.live", - discord: { url: "https://discord.gg/ZRC4DnP9Z2", text_en: "Feedback and bugs", text_zh: "反馈和错误报告" }, - github: { url: "https://github.com/openplaceteam", text_en: "Github", text_zh: "Github" }, - instagram: { url: "https://www.instagram.com/wplace.live/", text_en: "Instagram", text_zh: "Instagram" }, - terms: { url: "https://wplace.live/terms/terms-of-service", text_en: "Terms", text_zh: "条款" }, - privacy: { url: "https://wplace.live/terms/privacy", text_en: "Privacy", text_zh: "隐私" } - } - }, - - // Loaded content from API - loadedContent: {}, - contentLoaded: false -}; - -// Function to get current locale -function getCurrentLocale() { - return localStorage.getItem('locale') || 'en'; -} - -// Function to load content from API -async function loadContentFromAPI() { - try { - const locale = getCurrentLocale(); - const response = await fetch(`/api/site-content?locale=${locale}`); - - if (!response.ok) { - console.warn('[WPLACE_INFO] Failed to load content from API, using defaults'); - return false; - } - - const data = await response.json(); - window.WPLACE_INFO.loadedContent = data.content || {}; - window.WPLACE_INFO.contentLoaded = true; - - console.log('[WPLACE_INFO] Content loaded from API:', Object.keys(window.WPLACE_INFO.loadedContent).length, 'items'); - return true; - } catch (error) { - console.error('[WPLACE_INFO] Error loading content from API:', error); - return false; - } -} - -// Helper function to get value from API content or fallback -function getContent(key, locale = 'en') { - const apiKey = key; - - // Try to get from loaded API content first - if (window.WPLACE_INFO.contentLoaded && window.WPLACE_INFO.loadedContent[apiKey]) { - return window.WPLACE_INFO.loadedContent[apiKey]; - } - - // Fallback to hardcoded defaults - const keys = key.split('.'); - let obj = window.WPLACE_INFO.modal; - - for (let i = 1; i < keys.length; i++) { // Skip 'modal' prefix - obj = obj[keys[i]]; - if (!obj) return ''; - } - - // Try localized version first - const localizedKey = keys[keys.length - 1] + '_' + locale; - if (obj && obj[localizedKey]) return obj[localizedKey]; - - return obj || ''; -} - -// Function to parse rule items from API content -function getRuleItems(locale = 'en') { - const items = []; - let index = 0; - - while (true) { - const item = getContent(`modal.rules.item.${index}`, locale); - if (!item) break; - items.push(item); - index++; - } - - // Fallback to default if no items found - if (items.length === 0 && window.WPLACE_INFO.modal.rules.items) { - return window.WPLACE_INFO.modal.rules.items.map(i => i['text_' + locale] || i.text_en); - } - - return items; -} - -// Function to patch the info modal -function patchInfoModal(modal) { - const locale = getCurrentLocale(); - - // Find the modal content container - const modalBox = modal.querySelector('.modal-box.sm\\:max-w-5xl'); - if (!modalBox) return; - - // Check if this is the info/welcome modal - const hasLogo = modalBox.querySelector('img[alt*="logo" i]'); - const hasOverview = modalBox.textContent.includes('Overview') || modalBox.textContent.includes('概述'); - - if (!hasLogo && !hasOverview) return; - - console.log('[WPLACE_INFO] Patching info modal with custom content'); - - // Find all sections and update them - const sections = modalBox.querySelectorAll('section'); - - sections.forEach(section => { - // Patch "How to paint faster" section - const paintFasterTitle = section.querySelector('h3'); - if (paintFasterTitle && (paintFasterTitle.textContent.includes('paint faster') || paintFasterTitle.textContent.includes('画得更快'))) { - paintFasterTitle.textContent = getContent('modal.paintFaster.title', locale); - - const mobileText = section.querySelector('.not-touchscreen\\:hidden'); - if (mobileText) { - const textNodes = Array.from(mobileText.childNodes).filter(n => n.nodeType === 3); - textNodes.forEach(node => { - if (node.textContent.trim()) { - node.textContent = getContent('modal.paintFaster.mobile', locale); - } - }); - } - - const desktopText = section.querySelector('.touchscreen\\:hidden'); - if (desktopText) { - const textNodes = Array.from(desktopText.childNodes).filter(n => n.nodeType === 3); - textNodes.forEach(node => { - if (node.textContent.trim()) { - node.textContent = getContent('modal.paintFaster.desktop', locale); - } - }); - } - } - - // Patch "My map is lagging" section - const laggingTitle = section.querySelector('h3'); - if (laggingTitle && (laggingTitle.textContent.includes('lagging') || laggingTitle.textContent.includes('卡顿'))) { - laggingTitle.textContent = getContent('modal.mapLagging.title', locale); - - const text = section.querySelector('p'); - if (text) { - const link = text.querySelector('a'); - if (link) { - link.href = getContent('modal.mapLagging.link', locale); - text.childNodes.forEach(node => { - if (node.nodeType === 3 && node.textContent.trim()) { - node.textContent = getContent('modal.mapLagging.text', locale) + ' '; - } - }); - } - } - } - - // Patch Rules section - const rulesHeader = section.querySelector('h3'); - if (rulesHeader && (rulesHeader.textContent.includes('Rules') || rulesHeader.textContent.includes('规则'))) { - rulesHeader.textContent = getContent('modal.rules.title', locale); - - const badge = rulesHeader.querySelector('.badge'); - if (badge) badge.textContent = getContent('modal.rules.badge', locale); - - const rulesList = section.querySelector('ul'); - if (rulesList) { - const ruleItems = rulesList.querySelectorAll('li'); - const contentItems = getRuleItems(locale); - - ruleItems.forEach((item, index) => { - if (contentItems[index]) { - item.textContent = contentItems[index]; - } - }); - } - - const footer = section.querySelector('p.text-base-content\\/80'); - if (footer) { - footer.textContent = getContent('modal.rules.footer', locale); - } - } - }); - - // Patch footer links - const footerSection = modalBox.querySelector('section.text-center:last-of-type'); - if (footerSection) { - const emailLink = footerSection.querySelector('a[href^="mailto:"]'); - if (emailLink) { - const email = getContent('modal.footer.email', locale); - emailLink.href = 'mailto:' + email; - } - - const termsLink = footerSection.querySelector('a[href*="terms-of-service"], a[href*="terms"]'); - if (termsLink) { - termsLink.href = getContent('modal.footer.terms.url', locale); - const termsText = getContent('modal.footer.terms.text', locale); - if (termsText) termsLink.textContent = termsText; - } - - const privacyLink = footerSection.querySelector('a[href*="privacy"]'); - if (privacyLink) { - privacyLink.href = getContent('modal.footer.privacy.url', locale); - const privacyText = getContent('modal.footer.privacy.text', locale); - if (privacyText) privacyLink.textContent = privacyText; - } - - const discordLinks = footerSection.querySelectorAll('a[href*="discord"]'); - discordLinks.forEach(link => { - link.href = getContent('modal.footer.discord.url', locale); - }); - - const githubLink = footerSection.querySelector('a[href*="github"]'); - if (githubLink) { - githubLink.href = getContent('modal.footer.github.url', locale); - } - - const instagramLink = footerSection.querySelector('a[href*="instagram"]'); - if (instagramLink) { - instagramLink.href = getContent('modal.footer.instagram.url', locale); - } - } - - // Patch video URL - const iframe = modalBox.querySelector('iframe[src*="youtube"]'); - if (iframe) { - const videoUrl = getContent('modal.overview.videoUrl', locale); - if (videoUrl) iframe.src = videoUrl; - } -} - -// Use MutationObserver to watch for modal being added to DOM -const observer = new MutationObserver((mutations) => { - mutations.forEach((mutation) => { - mutation.addedNodes.forEach((node) => { - if (node.nodeType === 1) { - if (node.matches && node.matches('dialog.modal')) { - patchInfoModal(node); - } else if (node.querySelectorAll) { - const modals = node.querySelectorAll('dialog.modal'); - modals.forEach(modal => patchInfoModal(modal)); - } - } - }); - }); -}); - -// Initialize on page load -(async function() { - 'use strict'; - - // Load content from API - await loadContentFromAPI(); - - // Start observing when DOM is ready - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', () => { - observer.observe(document.body, { childList: true, subtree: true }); - document.querySelectorAll('dialog.modal').forEach(modal => patchInfoModal(modal)); - }); - } else { - observer.observe(document.body, { childList: true, subtree: true }); - document.querySelectorAll('dialog.modal').forEach(modal => patchInfoModal(modal)); - } - - console.log('[WPLACE_INFO] Monkey patch initialized'); -})(); diff --git a/frontend-backup/_app/version.json b/frontend-backup/_app/version.json index 23c16ca..f87077c 100644 --- a/frontend-backup/_app/version.json +++ b/frontend-backup/_app/version.json @@ -1,3 +1,3 @@ { - "version": "1759175263375" -} \ No newline at end of file + "version": "1759353996237" +} diff --git a/frontend-backup/admin/index.html b/frontend-backup/admin.html similarity index 51% rename from frontend-backup/admin/index.html rename to frontend-backup/admin.html index 3cd2441..8d1b828 100644 --- a/frontend-backup/admin/index.html +++ b/frontend-backup/admin.html @@ -1,4 +1,3 @@ - @@ -6,60 +5,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wplace - Admin Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + FurryPlace - Admin Dashboard - + - + - + - - + + - + - - - + + -

                      Dashboard

                      Admin dashboard content

                      +

                      Dashboard

                      Admin dashboard content

                      - - diff --git a/frontend-backup/css2.css b/frontend-backup/css2.css deleted file mode 100644 index 9bbf474..0000000 --- a/frontend-backup/css2.css +++ /dev/null @@ -1,108 +0,0 @@ -/* cyrillic-ext */ -@font-face { - font-family: 'Roboto Mono'; - font-style: italic; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3CWWpCBC10HFw.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Roboto Mono'; - font-style: italic; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3mWWpCBC10HFw.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* greek */ -@font-face { - font-family: 'Roboto Mono'; - font-style: italic; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm36WWpCBC10HFw.woff2) format('woff2'); - unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; -} -/* vietnamese */ -@font-face { - font-family: 'Roboto Mono'; - font-style: italic; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3KWWpCBC10HFw.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Roboto Mono'; - font-style: italic; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm3OWWpCBC10HFw.woff2) format('woff2'); - unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Roboto Mono'; - font-style: italic; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x7DF4xlVMF-BfR8bXMIjhOm32WWpCBC10.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic-ext */ -@font-face { - font-family: 'Roboto Mono'; - font-style: normal; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-cXbKDO1w.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Roboto Mono'; - font-style: normal; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-cXbKDO1w.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* greek */ -@font-face { - font-family: 'Roboto Mono'; - font-style: normal; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-cXbKDO1w.woff2) format('woff2'); - unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; -} -/* vietnamese */ -@font-face { - font-family: 'Roboto Mono'; - font-style: normal; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-cXbKDO1w.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Roboto Mono'; - font-style: normal; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-cXbKDO1w.woff2) format('woff2'); - unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Roboto Mono'; - font-style: normal; - font-weight: 100 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq3-cXbKD.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} diff --git a/frontend-backup/download.png b/frontend-backup/download.png deleted file mode 100644 index 83d23f67b8327b6714dd30e2c2c16a4a6afb0720..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~p#Yx{S4Kug zAX6ssx$Buwuba_^Mb9T6Y2OM`S`y?J%;50sMjDXg - - - - - - diff --git a/frontend-backup/img/apple-touch-icon.png b/frontend-backup/img/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..de23d265c19ee3d8e8b2d71ee7139d39f538ca37 GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD8Ax&oe*=;XjKx9jP7LeL$-D%zl>>Z2T>t<7 z&%(k2l#-X1Z)j+c3_UHA_*~d|0W*&bpFy$X{s6C=(QaqM+%H9V-H0(Per8zo-0OO* z?b3zXxzFX3pBt7ubw8V<MPslxf*(wx3;#*su*cD?Q*{m?r}BJ^>mm_(zE{l{zs1< z8BCk!aw?odg3DrclWg)+r8F(YysNgGyu6wm#)Jy^g0 z`n}ztpl6s7cURK??x8OdZ1dV&gndmex(Me^Y`Jwz(_ebwG?BhI!wX?O%cnYM3xTEP zUVc%gHjDXVS!|5iym#|2zDrvaYY`KvP_^<$rrS2L>~!Xdf)ItxFP3P`vi(@=x5q3h z_u$L4HL+{E!U9#2UD_KZmL#3qapm#EwQh@KIwoW+>QtMRv8Z;jxb8at>MubljvzPq zmhdgw?YwcP_OXzRWpD6e74cW^4+d1(@&efT7SK~dF^UwST_U1Ix2PT zL+QVH3rvkK+FhIMCVKxx>~~LPh;NFe=C(vFU$VDi-}>CPs6#iSA;QPIo+Yw_qV_?+ ZUsk&VtSi}m_kRZQJzf1=);T3K0RTwynjQcE literal 0 HcmV?d00001 diff --git a/frontend-backup/img/favicon-96x96.png b/frontend-backup/img/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..6d63c57225b0e0dfaa11cc488e9020dd183ef451 GIT binary patch literal 232 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 literal 0 HcmV?d00001 diff --git a/frontend-backup/img/og-image.png b/frontend-backup/img/og-image.png index 02eb56e4310466c0020b872591e833d38e5149f6..9fdff0e7c34036a387b3d9c077d3b359c7bce23a 100644 GIT binary patch literal 8825 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 HK6?Id;E`mK literal 263088 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≶wzY7O^ROb5U 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

                      D)HKjaKfqt-@Sf<4%i;YOm1&%c4y*xG`+A~aisMiCgH&;h0Rq*?E4wo6MtoqUf6yh-+U74 zvc!0{^DNt1oK}W7Dl6wLoHzoDMRRBCXBJIp;H!c7_BS~amz(+mtA3O_811i=pS;d2 za#V{X`8Q~jIT~bM-{K8*&of0eZ?7McUxYaUC%bkyWoX5{XUP8SL>Y zperqM3vm*bp!izD7b#VV)|`R!|6Ew?3$%e53kG3p(EOT8zaSK{C<_?02i|EV@~Ds$ z`Y}qIzbg{p-`m31%K^b-Zkg$rGb0A3Q0~GRjefS_R_4m}=-N6pqo|s)=Ob*qu?{C! z$_|(`QeQ&|L5Yb2=Ynr9St0zU9HU0MHcNAUrcctmI^0O9{9Bj9N9ajUJsq<;+v59L znBjB1|6Bs#$1JlV2|{J#bL@{4kBM+C`g!+unzS}{b*<|MKZ7nD+zOH9LT*Ct2#8n!-9sd3&vx zLj7{e@4V-1mD9!tkK|f7<@=h`J?m=k(;p0^W_xtjE$~9~B)eRMLBQYl34CELJ9Z=- zVGj~(%Fy4fbNRJsEp9jwVz1sxp0FRM8Vpik5DmXWgmd(=mMPVkqcg_yuvG@w#1=Ka zIU?jYpQ(J^9HV=d)@YiOBCL2gv^Xx^)ncw#e?P9$ok%4i8xjwFDKsJS!oH@!!$<|u8A~3ad{JwTVZ`G( z8N*HGRaDGqP`dY0Cr-pFJnfU$8TuhJ$(|f6h}nbNt`L^Y9bl<+v9U(YVg02UY*b4@ zR(yG=f84)Pug`3_|F?tEaGx0Mw<0Df`e&M*-YiO>3qpK~DFkYh#mo4@Q~~c7{qzsu zu&l@;Nt(NFsC(NqWk5IO8yE%Z&Pyg2n|w>vDmHmfq3TY`CC

                      7CGg%)L8EtOiiy4 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%0D~D|rG?f#^wl+)3-o)YylL{M$+9 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©$G__+N;qEa8k7P)J%=~KPtEONjfx)+8%D=G2B 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 z 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

                      woso|J7DI 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%0AM4XPJ6vVHL`q}AMgU47P4AN%k#X37O@M6 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 #>k+cK_7U@?$zuC zkU<#ChS>msrPbGc-T(gVv+w^yf9MZ2o6SDZEC&Y%|N3A5>%aZC{+5U>0{L9f-5(Ih z`Hrvv5E2NBfKi11^Z)!mJ^Soazw}H0H4F`63JQqh_!AQoQ&SV?&tEv&YD%ZqU-xx? z=JNS-^?HpI^(1r<1Vjry@#JCH;A`mY?=-g>ey-pY$5`2bI;+%55A5vOGe7;)|K!(y z{nwa}wkRaJFn#IszV~B)8^nNMeSghF2Y%7TybGMzTK?SE|C#fb&(~|!G(HtU-*KLP z=Be}N&uB`d*=khl%F6kpQz%Li{;n_n;(z}0|LpbGuMa%z+~-B$@j!(^QjiCVfj2iZ zRhgP7jf^TwX<|(VqzxP*bzE)g`}<+ibjqW#rDBlmen3DHc1+^OVYIV#grc-9AP^msVHUYPuS2lMlexFP z3lX#EEtB)sqyp55u$%M8ixXX?b8;;!H(I*o)C&8wUbC_s=NA=y~I zd{*CF+uq!3U4JbG9NjNqV{!LxNy(Ec6i+Qdl}O<`#mLr5&r?3ShHpovrK1HWUqdS*rVClyb{P zg4ugYaPak_6V5Gdw$`?q)8qC`#no5`;579jqCgbL3FR;+HfnjZ27)tVB}My+46xjT z1~wySHNbpwGbYs^OT=2;swa{Mu-;h?63Ol6V}|U3y|#TYUMVXI0b;o8Cd}z6tk>)R z+Bz*D0$x=ot#i(BWRtj=#{`B7iIIngv{ub$Ga%X zBUGrc@>2ETJ49wEx9oD#iWGNjZuY`chs64Y)j97x`8EhK*asb}6?uuajgoc~1T-QC z0ckOQvyl?sNoj7h>VU3i-E9DQ`cTFNoa#7^7GHFn#5Gi4D=$Xkdm<(Yn}Z!CQ9kG6 zajB?wtpT9&BV!1T;7O4Y-*Z7AD}(EFqI*`BysdhM_`dhS4}8$FtaM(nSnQn#*G=F2 zBHYhfNq=p^%s?nd-)TkTT0jLSmrS>A05I+(}w(Zf<)% zc|{j72DCuJd`|!2|K<1gi+OrRURnW4BCS^S-~h=fj7@>EQ+Wu>QlIzvU+|$1eLiIE zbVQ|Za%#9$6VvfL4R!+121&pefEYLi)3I~JE46mLF$dK%{>BT>QDBh@h zJ~zF8b8~ZNk&jp_nr2#5dgx()uMGtp1GX_v7bg+Hsmd5(8wC>Z*0w?ej(|Qc+^7I4 zF~Q1K9Ry~^izH2g5W%F8>OEF{oFvT)L9DSkT^Zfl*_FgfP^F7J$fr^e1eD=iqhr~= z1<=0h;ksy>L=K6XZ1^qOMc!L8q zERQ{U9&PuaWj+1AKgK|xe*Og}{iR>~L-jcDoaF!d@xNqs8vpI1e|%!ErVv*G?+c!M zvJv<%zW8Dx=ZXkq=lm2TMDUbcvLq!@Kk?CTse|k#;Sc=Gk2r?@>Q{X8q-FULp5}8e zc)Q!RS>4hc`-L13LUt>NH0yN)&nuRV(!)JBixhHRmtg`(?RNVEANWA06V__A)V|jo zttEp>3`<7UB$a)2+-y6Wlm0ac05Bm6rsztF3WN5)iVGdQ<_ybO#|3=|uJ2-A>4r$und*oXV4nAyEjR2oQ(f9JibnB4MMj zR^5+lt$aC$76Qh=35WqqKw?zUNZE-NHk)fu8Jmd=ClFf_`*ECXZ?$)~IcgoDD8+6) zkofC{_Cy&~ z8WrCX|Cf`tHwen1(Tmegp|*N+!HKHAuGiFT6{b5>WWa|`DyKBL^bpErehg5i>DB0XsIu<*nw{_Wo0kO}MzHu>EGwJ_*TClso9Pf)G1u z@0mx(K6$kb#=%U-|3Tp(;qbW?u_MU6abx!bk86#0n<^zu|L`CGcxo?(@>z8D%l7k4 zZbcA38{QJgNcFb;%0iNG0DvcoyHF571WuVVKx9yuTs)U6xlIe34+E8VB|BxI%iiQy;bUF05<`J%LTR<~DQ z@9eKBJmjK`O^qL-D2fmVtN>Ut6h&gGb-5@TyCwzzZ*<~JY34E&#+ZT_brvq-Tg!!r zh(QG^s9b*9H213e%e1sHdhP3L%oUl=Z4+E7wg^^qE2SF2QM^VInu86jm080NInXNrN z|Am}SM39=UFc02=M~KHE(o)4H3->)zpxx;>uAAAVFf$Cb3?E73136XzZ-{`?d4?GT z2}KzCz3jkqVTcq63#i*D;`byQu)jqSK;`F4^_^zpV5eC#Bju9v-JV(l8ju7ew(~T7 zc5LIu;@-v^omPG7k@s2o2^L|nfD=Gu=^dIuNd)2;5n?h{XZr<5wn`JDh#{nVZy3ZD zK_u)0AqrSPSVB|V+HHj}GI2(EK_Uta2niZsiZf*-1HwmN z8G!`B6l~R9G38ReG&PQSp9Z@uK;Rwo5Q%Nw7bedGv5@eMi*l&Pl<_f&TiU1YJ!Jp&G>uX%8n2n95%Lat;WP81lF!kLS% zqJy;?%L^-0oCH&2X`GhH7I(w3d5c!A-)wKMh;T4{Cel_6z(|5`CptaY3#5+*333d| zSfmMa)AO$5H#Sxl7q?2Sc4dB=ES2%@hFiwj%_#V!BsY=2l(#k)cDHLc1VTcoLD<2Z zLHD5=*uC7Aq68@xCpB4(0W#wXPR}_Wf8(PT(6NvRu5a^PB_K!u&6`9TvrBsGF$_Th z5ZPMKjC(7a^@M#v2Y?=A6L3TlaS}-j<1K=_IwuIJ(Yt7*H!1idh?NHW0kl&t${o{tbf(%lHJkX+ul`s^kGD)7mEGp#4}8^621%#nJmHQR1Ta+H$6s-8ea_`gy4F)q zKZ~W;MV{hnf5%}T3M(+&s&zVzoadmefCPwu1q?K6tpu%7v7Fuvh$u%5j~@dIGjq;& zUViz-)}dzC)9Ecx2)vhHda>E=eBk{b=!D^M9~J+TpZvJzdfi_!^C`h1ORDr`n255% z*J`!)*yB$?%KQoZS6+N6pZ86Yy?S3KE(6@z@+gpK%xqI>XG@)>r3^6<)u$oXCHl^Rk^?_5LAeitu`$( zCt}BRR^NEJ?Ceyg98?|PL;w&JKmsO2MBpsKBw&y@*<0CawN-igf>RhxM6>ivEdlr* z$N)xw&o$bZi)~1C`f4qbmL0H%b7z9Rw%Jf9zjm2>JdMRqT+w1L4LjxB^3zdmV z%0)S8K*j=sVuWjlT$Jj5BPNgBsj;pO`1BbhZ&1x+3TV)|VfN4m>@Dxx26si{3)LF*)u4E8|49qdn9PjRU8st+G@qD5G{~CtrSn*(u{8>(sI)0Dw`Hm z%@){!2hb+qAu8-C4#M!Jg~jjTCvyB67?F1_x=R2Ii%Fe*NlqTk(Tr?dm(4lBO-hrH zIyROum?$9Ohk?oijGqkMa3>il*I!C%>soat&P@9g<=%?{2MW6Z*hqDGV`pve$RlO8 zeDP_@m09@-s5Itzn~vz-m&|&uJD?~T7p1w~MNzJIxhNKf`M@quPN?z-S_)B)y~{*U z5Ck}u>gLY=dJjb@Pn|2yT%vr1$&1MT>29YoTC6Itn2DzMyp$P(We-a6(FfpSb*}nPm+QLGyzF(XjM*>hF zoB%R{Ar~henRgdg_crzyUjFsT3rT+VBIqCyi+k33S{O)Bb4PPE4mZlvF1az7n9(4j zFoGmVnI}w7DpU;aF053m(b()0-pB-lW%^+Zvq_KsRD)(Xjj4@Bz(O@TK6_(pdE@5I zGmg=ve7^vTQ-KOKQs{z6)vfB*LJd*IO1Y7#3KnuFQIyPGp3yYgU0;;yPL+(d+{*ae zMR(>RshlAvjZfaZ7L>fRE^;I!1e&x$Es_8zqwF?lXL5dA7RRT@ zM`k87#f)LIom+aX5b)TUa?Y!+EUri#C7?;0Hjaek3us9ly&jf>z3Gv+yqPzF6>;$T z!uB&)#vEe6=82z+3^{Av)$^7ujVOu6>g+_3ky2a*(7`Ma#s~2#i{SOe&1bKSA%!QX zu<(vHeBijjjKT;^kN_xvd*QkE{pqcCJFF){$y zRIT5H2tfB#VmVFuydxN3CZvlf!W=jEw}sfv=MiXdiDtc(D3?lOj5O$>A!$uldV*0P zQ(R$21lM&Cu#brdA^5(ZnIUE*co8w?R#82Gm#(~5w897^A_U^PZh@JIvcUCdH$;H5 zd|39@>`%}@OvM1enWx9Co^Amqq<;4eA}HkL#?PXnmDfKL-CRj(yQ3Fo$JH_xcGk3IRP?g$6&{ucGQVo3|(EFny~ylAaqg(n|_kYFyr7& zCW&l!arCX`_{^2U)LBC|57awJ_UAP7p;H%-l)9h_Pb57?2QS0?>{yiwf)pR)`Q~=3CMCD!35Jj;lh>62+Z>{T*64tkE>P*d7oXI0b z3ibH1Syqw_RhQOw)^-5geED4E+*4GTG~@`X-tggF-UtN6AQ<8lMOp5mDB;1nhRz|1 zGBv5nCDbPsy|NGvVySI*>GFFVlVGkqHD8*&jKL_Y9v4MKPN_k^&rzHKjmj;Yd8`@n z=JE8U= z&IR6)Mlj}lSB_fXxv8IHYMY%U?h1h~z*%|=5uvB!?7sNo3jo;Niii*q2qwk^{?U2> zPb2_yzH`Dqo|%VOp}j^#DSIA<+Ta4muQh>kgUZ|m&)aT&k+E>^~U)5Ir6OZMD=17$DX`=;o#cR&R+Fk@p>0maYsf& z(Ww;JJD!1N078lg6Cx*9ES`5e8>{=<8?~!9rp`>}C&!QoP;PbM20$UezV-uK1?$X} z$-V0vn+J=Dkm9%rl@RhVx{T`K=`Wfshr>;QJo&`*r(dimU;)s*gEN3eY!(}l zQ4AtJ3{>6`eX3#Qmci_GR4;& zQkrb^$ke$f3o{o%A2Cu;G2q+DYahZ@?!BGxML{t=6lJ^Xi*l`5+Y*R!1-Cpglo5e?qDEX{q>X?S^;91WN`CQ4GPlVDIR13Cf&<0=#pDCE2}B#=HPzyc;_1Ck4T z!om8h)X(wQRz;xNXaP#zbMPciD8)h`N2^AldZR5Uf#=G=dJwbwR9JYZK;_gda(8Vg z68J8jt_n4Lz8EM$SLddtp84&YuRhnz2z$R9uIOAMeUtDc% zy}H)gpStoPt8f-YM==6K6Vv(mIksenAW9EISP(O;0kg=wzP_`)TFZ^hO+5BN(0L>3 z7!*d7h#&x+?0JChI@o3qi=6VsXKMA@!NztWaIDGlz*!I^RK9y_6vc=%n$?Z%y`4IP zC)QYb{*ltmIn-{3qA(y1X%dP^`svg?Jzdx99Z@OFELLoVLeL3A&#@3d5M#6@KQ?;# z+5H=@R1Y?j?)d)VoGSQP{uvMnq;zo(mh|5GZe!u~e0(k_k2ftVR`kwBDFh(dqXZZe zG;P&5hNy<*jn9Q9e6Mj+J`CWo+vdjT8nX83cvW2SzzmzC5Sbc5&rZFWz?a zxtgAB(nN@Ub`PB78a>2P-cmytFwZgItZc^sI5!?3CIAMq!D2R2M+TwOvg0y@ZDl|! zrfU#Z)R?Q}2qeW-0IjTpAQ|%Pl6O#9)Q%*7ZE>&km`y|kGJKm2@pj&;4cSK2kQiaP z_pV8p)wRXVXC51~&=4jM5tRqG+aNHC6OyR2v$k>brKGxMsc`Ddv@=mYA?*bWASokd zvuibg>>PTeoPV0~V}?8?>)jsuvj_q!Nx3KqaMajZ>Y^x7bwfj^kaNeTr*Wi+8WB0o zOkQfDHfy<*BnNiUI>D3eky?5T+BKRrZb`C1BeM&tG}s|NfaDX||IO zJo$Jd;d;veSb%)xk-zT=mYa=|fQWPg|I^QZ2J`t00k|)LO5V1<>#M$bo5LUar#}+J z_*cH_n_Oi9<6Sb2P)vNVt02tfOP~}82`V9lEcHgjV*4ZGOm+&=AQB=lGf^+8kDvg0 zg#I{5KK4UD2q53`E#Ky7)kjDKv3D)FM-~+VU2nFYc=AaAc=^Q_3i;!M7zC4;)ZnDv zXg&GlQw-1raEgI9c$Go=$z37<8T{%**>t*HBx*L=PdxD?0=)F%i}_R``Yv*S8Lq;h zlvSL#^1;Bhw{E_?d}D1q4D+)`Tx#h@HUg^XPG32*e{K0-Z|(XEzdU`3ciI(#M9|F6 zRS1_6I*_&#IrX$4kRjaOUtijCa}$$~z8@$TgAI7{-p2b;{F9*8UYDi+)Y{Acy}QNP zLVqey{lxiMO-y;$L zj8aC3T{V93@x4Xe+*@6G^~TJ_v-U_15I`Y_q_V{$XQn)&)z!`V>SADGZ(;@jgj9m~ z4l;HI*JX$dV1nd~R7QfJy}Go$zq9|!wVByTe{2K=(qkF!PqG_01LDZy(o8Yuz~aI> z7$G!>Ok9r8OTfYtPFDCZKDiHVpf1;rIlr=9SHja1MTJd;;mIMm(A_E&*MR>ouv9#W9 zil}1c(o@CRi$HGA3QcYSyT4=XlzSvs0Rd|W#k8Z%n_U#8Ro^+{qIhGIv-W5SRlh&U z9MchjK?J1}wKjJT6}^m=V9@2FjLlvgL{S8(e_Do6lx*VuH_Gk-6iNiFeC5I;PhEfc zQ^c`~lMzoDjCz(E00)8F6d}XPvAw|Z^LCQ({W{5-!H>u|SdTdZlPGB+CkR80ZqvCm z4z?^wf`X4oj8-)y7DpM`I!FKmuP|Z2PS;Rtv=AZZIgkb+h8vv_K=SV496?A7BS5{; z3N7pC=)rRx4ODM-j!+S&H%=uEwigQ{^k*G0sm z-%7r}S6LH=?vA8r3?g9aU)gFS(H%wd)v!2B8m@>|%FkbT7QNi+tDo3j*)>sIIzNXB z29XD{^~fVt z*u#omW)L@#jOK7cdyQ@fmmGIAdMBAG0*GLNo}E6kxwYc?4g!G)0mP`9cCL8-ak6xC zYiaq_8*}Gp?1?d8$?gYK=*~_|+g2B9Yp*ZciOEgRv@F+<62v#-G$r>>7IwHS78x-l zFplrcU!+{AxxTdARW_?PM$XKV&H`6pWWZbdwx*96Dzqj>&iVPZ#cf@C)#6%H&F|~E zCY5^OR=V5}<&tqIEB}y$|0ZR50d!*grR|m>nja4k5)?rc0KRQxGR);iK_uzTNMjYm zY?P2_Y|KwM6P40)uk44W0O$)S#^I-0?!d13Y&H=PRMkeD_XCY}fFwI(r#xp2@1-V^ zb}3}Ue(t5sNJa(qJ+3EXw2^MLJ9dB%1CA5re|LUi{ z+x48;E0+>Q145I?QFHa`>n6l#??&KWP~;|P->;a-W^fER0E)qobbv!*o77z}RRmZB zlV)`XAhvTJC|zx-r=R^3?Jz=?yr%#1uYMeDp8*M}-fTbd&u<( zHRjlxJ&W3jNg1Lnv-8d}b{NxWoDz$ia%If*n(Hf@+xv~i8A zqn{ue(r;Dv09EQ;1Mo0VdHdzQXpq2qYmXFV+QN<6^_RC+UPp{e<)Az_kAa;99h9xo z@F63m3#2rdt&xedj~8bzgYpb&24W-`*ajlLYdAc8=TwEFI26;0x`kfL*V>IOz$BOV zx@22>G>-}asOOz01HO#{(ut2yl%1G$Lc!?th4Rb=6^x|r@=O*B;E7Bppu7WTiTc?- zGQvRi=-Ed*t$KU=TD`i_kV-CYBOuoDRY9_>R7 zG4R|hz`QH9v@C-y$E#dOF$0pP%jakP;@Z_u)eqLm{+4d2=sv>Fqn(R&j+5X z*(L`pYHO$?nBnL;-4eHwwKtYbY|TCP1-g7TAqOD6C>bts8%9btAJZrCb|!#0pgJYM zNZKk)UwC@yQybgM>+=&6hya9xK5(6StG=;=#vMEVR514_T6sXHkD`D924dlq8YK!; zx&i|ntJnyGF>DeMAt6V(7NsZlj`?!BU2pSt%6Fo$m{>y5Mv(%MW92bI3F$Tj{>%k! z**nW`Y%Xj}hLL|}2GszBfS|`p^On7O{bp--qm?9GdVRwVj8=V9e>}yBp8)T-c+yax z$yt;^$gCobCRcFIUxw}V>gHPK^~IUVN-#HpiU5T0ZZbJS7L?CV+y24I@}d(SY z^+*kmTvkL49d7ol;X^Ft-W#C^0IJ0Ji(5^DYOWF>CYZ`}AfM=e^UF0+{= z#J8B~ARrMd0S80@J`7ae-Zp$gXRmnzqa+q?Z{K+3VEsBp`?g9Z&rI9nqsJL3nY0&H zmo`#HN^$JW==mopKgQ@Kq#?xORNBMV^e2}bC=N{Iq5Es51zfDL8`{IdY$dhQ zPy2W)Z%xk@w-&cn-*|p5H>y3IfOWrO6-ppus{HkT`ZsUMR2in56R^U#cCZ6ryj%c; z0tBFdC>Qwu`QQB0R;~Kme%D9DvR`_G~ zM1Z5kpsNFhK&ilScgZdq17be#{tqGICqCI*xg6mtfN%)BbT<@qJtaRS(*5d#2+-Xq z0N$@Fo*)?^%O9V4`U`hof9_!Y+Tv>q)90t$N(r?B5Fl)_{U`t24>aSPYbSsAZ~sWa z*>kCi5cPO9BFCbX1iE(T?T+gD^Z4WE67m=b-j))61B#KX!h~HIk7}#+we9@ec4h>wP`{zgq%TJ03VJQKRb;C-GmRd zxkwKABnn#!JDKn2iM-Xl@iqhyB~}o-8oL%Q&vkJX1BiacS9uVy3jqb_#geRVcV@=( z8k+>+DOq57FUrMpl%g$gsVzuv&i1)kpyRFi?5NS{9`!6lG!)?XEoc-=pRZ zVU!!ojn7S;WTdd9dRn|+-CWviwK$tK1W0MosNDi|q2ufe`2CyHZbmGSP_U^`x5gk*0Z06$V?0ND_ zKz7DOIW6-oDDRM>$S~O&Y^N}F>3ug|{O>!<+rFc%$|xuROvi7Ko2n$OaA#|8{k2a| zKl%Au6=SqAO{Dw5RFPV&LyTEr8#%!{gxn}15;v>6sKhVk5M*E(Xtp}2Y*4!A9*AzdBkQHq+@02^m;< zyM6eT=efd?{zL#$e5Su40i^CnMI=Cg0`evtlju%`76vuyLiy1TYB$(ie0lBK`b4`O z%uS<(z>tFB7durmcJ3K}_A&0&Q{liq+$|%8 z;Pz^73_ycCX2EnVDB7ET-xs~{>%Y*|3^$!tsf!9?rdAB3p>TG7xB6Ob>&8f>qQ|cQ zYD6$#x|pf$D%VMA8__{+Z@+PnFsD$%cd; z{HfqX%VyHsSvmqNXc9IkMiEJpy8jGoB0&PwR-QdJGp6m`g{%9UHHa3=m(HLj0L+$D zId|&H1$AxdpnA|+S}2`4Uw8aa^sOAaAp4cvyPp#F_OOQz;a%3YBBDWRE88lK2DzZQ zv2w7vW*ToypPSVq`E)N+A&o2q8tP{dP*9;Wnx7B6)rBp!|B`2REq$S`rdm=;&`D47 zLt1m%?rR{5fIYs75Y3hYqy&ip7+LNplbFtx+s)5>SA@Ccs-0)96rQ_U3k{@vm7%?Q z$Akt%z=*TD-N^;PNG>4=`$M?2GJ>4nH$G{?y}(lwmoK32l7b;11v$ZkF1dDnSHvllXU5Jw zN%_gN!W#gym&b!lBFwTchp?c*!g*UtC><(W(4)q=c%p5hV+Xw~_{ zku#4Q6$mN;ysvD!J7dKRq;=`yvtM-c6aVR8yWy4g-0=~hKCXg5o}Pc?%+hO%H?Dqa z7VIO~N43Ic5ICaJtuYHYzEk!`4KM&HK$Q?O3nDWl!hq=Kf*APq8?TW-&MnMLOrsG3 zQlu4GAi_d)Y~O}smA97wfM8f+lK`bNPS@c=j6n(7ZgISF$=+XhWq*G+dTn9y{26lX z%np(f$hIn%&Y4%Q*Xw)r73I!fV1U$LWiVE`-}eB*>23I&r=+ZyfCXaP_omK}va9RM z*WS1}J3kprmXQXAxriV`{fzW^@g&Nn*~?S4o11IvOPnA=Oc1xIlz?YYJq%Fp^R>?G zZpn*{Uf!%BAK@z8B8&jcTj=N160q;Rbv5I7qDm1y*7x&-ySU?n# z!~p#8j!CP9uP>|_E(6m27-AukC8*n-&<^ln>DSxPP6iBpS63up&7mZX>h%|PR^I>& z52d}%&y#)38Ex1jB{}p+dE(F`MR^8^0SDoNEXRpRAP)+bGHi#Jy`TwLb4R!xt}kw{ zc0-gsp(tPSD^rtJ>4=NMJZu#w1|W_2($e9K<1s{U)+w(D%<9eggf2f|wip7wSv}Ul@Fw#i8QQ)aRIA6OQ03k{b8a~wkiqFzMl?3B18!Tu-(cTPvG;8}(rPQt9#sK?Q=A zh~WLXpXt;&IQUp)UNKtdM&};;yc;k7#_IL;v%aVDE+bICa>*LaPo0}yUD#NC`M-}< z*9(^(Z`W%&mp6<8oJk*QR2o$O;$%4vAV3xX1Pf?tY#ff-;@XW;q2SsM8fB5|C`X|d z!So!RK$QiLb9LUX#>k93Y!%8w_Xh$9s!*YoE0-@ny}j^iv%0o%_1eV6vnuZb0T2=k zfGACq7v}l3>y5pw(6WO=9WXD#{%tQP_r==*d5|7`w>|t|Lok8{5wzn>P6z&>c=77e z)>ykeIzNlnz>_+(`V+F+q@{3nLVLC4#p`x-;8=BA&mYiag1Lt>#c!pdAb@0($LLi8 zNIhJI5$DEyq&Rg%xwH0HcK-+s&c|WjdcdQFIEIL55>)o&5xaXD)mS)r~!BgD|p~> z0}&La6irIGD4RVL#e%3%bjGG;pj7CgD3nRd0>A(lrEA@|xdTQC1eKZdg_%njlnuHu zWwZ^+Hux?QJrkrD&{E#$g(t&yv$=P@y0}_AcLp_Q#D5hyv*)K5-&kF_{@f)$Z;hTY zgl`>GK>#I?6DS%hBnXqFj)b;yW73Rrs}}=`X&>w;iT(UYk2yUc^5XlR@B2oCnPIr0 z+CQkZJDu)g2&ZB<8M=ZeUV?a>ppngfbBVHBlR?eE4wMQ7K&)1)Czq7Bh)Cdo4{y&= z2T`oT$mI0g>g$_g7>4QBlO@u5DpH0bMf2W4@c=$^9;0 zBoxQ0oEe|5?%sTUw({A>`cLaZLgRML>PwsL{0`O zn1Es;af;&?pRC`Y#_n4CwQIBI&p4xb5CKSY2cleS`uzOOS8ueo*AyvdYDO$O7GP4@ zy6U%LXDek(H9o=C7T1+}u zx$wUHOy-f2E=8v*3_d_DML-aUMEaz8?f|!=^@Z(~>xWzviVGwD*yNN|3^3!OAe>b6 zYDbNYoxP3SM64J~V>9PRXD^ahM6wMK4{}k2df<{UkrI*H972t^pNxA}py#jS%KojRxx15lP#D|qg|`njKc^7DS17kJE^ zL4&=x5wO;1KKaDca7d>Axa)dHWP0x3y1j`^e%}ZPW-~HaQnDyidb363Bzh@B)9J@7 z^6mcydu!`&6aezMT$j)<09}*E3D&{|gN=4|b$@wdee`y3H@Fqs*^ZBi%wZ`sF_4Rsw zYCb=8re*mo7776#e+H3njg%pf0H=A_K2b?D-q^UNENg!H42gD(4MN9qx`OXOl!DB_ zwMNbNU4=C4?>^l6*7X`JKX>6tV|$&A>nmM5$P4psr3{KQ!k#Jwvlr)=UR?~=mt9M{ z<%(ENaw3zB3~#yJaXo@}{w)K9q{I)LGna7FJ=oevUcELuKdr_}h$qq$*vlp`1L0tP z0SR>}Hyh-w#VxgS&E=}6=J(avCXEVM0@#xedWf;ybrY03^#BN{4d<4&I-A?IXC5m$ zgn(^;LT`#>FN}mqF;AP@bpr}S-Kty@-=ViNu-Ks#UtKtO_R)f)7@$MI*|YXu zQ*;neG3Vb{*iLu`2!Zc>bx3a4Z)A82i@vtFk^0jEv>yg4_p{ZTZIK>%Sn%Z2rNERN z)81KGzwv@;?AjDgo~iUaQif6QKIR&>LM=3V;Zd5oz?3tn1nHDA@dqxZ7l6zNfH)yA z$VVv3#=_3Z4b$8t2#Y1Re2AjtQ61-^NS~=7C}DEY4N=zjkS)gi_{_Qd>?7!vQZCAg zVP85FzHQj{fC}&2cF)?QZXEyz$)B zV;|DWPrzcpw{qzebsa#2Y#Op@x4`UsetMp|A2Gc-v$Y|p!};FfhJ4@iToLhlYY;^6To|L<8 z-)SU8hb&up(~p1n`fvO~ms3|9E2*5DZYPtjBHtdrIA033*OoVH>(^@syCd_Ly~3y= zI|0prx1mTOfMi5oPTA@r#-wMtG&Uk2uibbx=j6^!onrbF>l*meRc8L_2sE3Doj=^MZs6Q}Ia)sf03ikT#QfCG z!s_nEYGwK{Ksjxf`Y6FrOn<*T1ctN4!(q~}F&u~hDpJI;;trTrc!Z*at$m>=DEecE zT$BI_00+rAgD6UT#6{UPV#k!P%yzjbm(a@t+6>5K4L=>n2WfP7mG=*d{DAa!UkqBR ze0JhOd;5(~t>0Lg@h(!JGpvae7SGQ&I@eoUuhm?uaN+%=RBD=WdPxSRABHfcp-~k` zTHa4UkWR_5P!NR`CsA#OB?*c?BK6lD7Hs*ofB&)lwfcBIfFvemW$g95?{xKoK_KvK z#Gcx(?>R}5r1y_wsc-zIZ%pDibv|)y+tK=^m!1cqobMoFIt>Wjj{v;> zVRi1@j9o4P2`EIS)LdT>Q4tXV6Ci*QQ*U>zHf&YCwz#?C1vmcFx<$ZTe|d3#Dy%7v z?}3Gq?I!~e-tOt3I~+S2)XE*1xcJoeYrnDb!mG2-K2Dy6h=7v0T#$wC?D%}Cu)Vy| zsCM#fmY>%9u zCyj8zwVry>-APmjfix86%I92X`R0}#HUn#aM_;ZJMc@Ib)2_}#x4ye+f~PUdiP3MH z%4c4w&y4HoiIRc?NyB~-M7e`(amGs-Vz6WlA+e}FHSR5LMgabUqYOmZn-uLtinX>^ z4q5;m1QLEvcx((a(6TH$$%(%7Uf4t=X}VSfLC^|2iR&Za!$9SpuGa7{y;^OwI&DBo zujK%WB39TEfW-0GBuh&x1>4M@nf4}&s1Z<34$T2jB&+j5f?%@T+}*EMxAoF%BWIr! z3JeecJUA!;5sKXM{ICL6V#p-IVRe0BXZbp}wiHH(D9Yp^7lrgte3Efd!lb&fbLhLz zmQZ1Q_FO(y^g=f#dr&y=bIcx;2n9$$v%)T2-ZT&P)?VLOSebhC4C?+vi=Zqub8cqo zCNu92HV027>8WpP2=uSO}!gV5v7c0)hyIAP51pLO=pUKq=&c-cO`A zEk_Lij)cM>T|>4Q01SQ{n)U&p|55VkN9Lim`RQrQ)*vGFMq7aMfscsk{=9`({y@kl z32<}k)lYQlYm>91-o$t{(gui7H6tX`uuMX#)o#TH+9B|iBsnr0H#Q`qr=EB$$G>br zsl{V0WowK_qv}Kyx@-XH9o2y$ATK|CslL9{>CzFNzcxBETAZ4oK6;$7R&?H-ynM#& zS65zN46ExKugUm@$CMMqXeU6KMeZF-G_n7e1$+1v%4nsm6lqW~L?C36IHJT+w$?TZ zAZr3Z#Lr5J2ndLYObiHH``eyt1A^RBazqeg(5%RxI;Y~Wwti#z+RgdPXDR0bK!&mg zQ{|~J+}PNwuPl|$+wA5NL<0f@8Ls&N71JX{3Xkk}Mn+t}y}Yowx6_EO&z_l8IrrF2 za$2euK}3+)AM-Ez_V$hSo%&(~nsn5pkq+byx-t~5Jd9G_ViRFN#gOZ;TH2}`q3Q7v ziy9~qfk6ZjbDC^%*6_BPCj<#VXL4+0bu%;&0ay1HkXG z9DUX(%M_(y%v($c^wt1MK(Wwi87u5G4<0^^ckkgyNVR7B$tRu?fX_Vloa=gnQKZDx z<$w6C%zXZ9Kh_GZ_dor#GSQ1K{?nox0&r>xk`2vyuePzWIyO7wjFx~H2!$C1%|YwN zD+@+~OV550jhu~@Cvq$={*Ll1j0hZa+|S(QB~j7=)9$QX-(I~Qb`Fr@pcItHM-P2b z(q(UnqO`)sk-I#L9Z{|_eX*C`KHkqQ==UhWMNm?KP4H3u9G@xct2fR+I;Tc+eGZnl*U-O!UPk)XZ~In9W8d3dPSax%!IO^Z0xS%O+2;BgS-PbJ zoQPx(4-$w7^_9ksz9K?OcM<@)dpJ_aB}vpHc@qwI3wO-IXI;7Gn7FokUIW4RqhPb(L^)m-M3l=n73#QIYs<9Cy1eD%DvoAPj zI??iL3rW+EohzQXOd}Ja@UJ}^3 zv2?I=AVJAL|7hFs5=?8rhA?MN^&toD_H;$aZ+BisSPR=G3OCo1jWv&wsrhNAJc1g4 zvXUA(nm7gHVgLkAaC>2UcROjz*nv7%wWga?Nzi*ZQ2FdMM2JC*rly6>C$CI;v`^SP zoC%D#DSbsAX04b$y?&r!1f``7Z)F>dcmmb~bmYBsGHa-vnFwdbNkfAmF~|t-EoPK~ zpu^+Ozp~rrl7N4lXL9E^#qfLvK|}+hA<@`=^RJ ze9tZ99TV1xQ=xG&QuQqpqm%PJCZ`$21Z+?Pc2WXHW;TDYw0^L*4J=#B8?(h6B0=Br zit_&WY-M|CXY0mGlg~^LY6cRd2Y_qQ^RYNSyk_DEITnek8w z=1-z1EP&YKqIBZ@jh+3CJun)u(B+~8bC<~1*9d*bPJ7$N;d%!721lDlynW$N=A@*!Ra<^- zYvtwAh&_5{t{&O-mS@mP(6p@>g#*h$W`_sk(J@;f>XDqdjtF8dbl{5&NVA&zXDt zQgvaaOR(R#{!($enV&vSVkM*)^dJN6ZW-)Z&m=4WLg2bK3mAmgj~Faxr_L%=1d4?2 zSs`s0&6X@m;gHdgg@&0pOB=t5KqdQ0hO3C>kDhs?9*6b4Rk^-0b@?n>m}MSNL)U=^ z;$-ijUR%AHn?KLmW~3AAJE3zeEQmOG6mMI>SV~!8L4&S4G3O~=Ut3ySSeXdJ(#%BK zCHB&Ja{4Y201IguKUXf=`!`os*a%^wG`DaxB9Fm(IBvP$O$0QcPDC?XFI?T8t>Dyn zL1Rm#qmU6nG>ct8b(naR$6y?(ISt&k|rT><5r z3~@^{;zQhn``U(wT-mnpn0Pj@k`PR*vwH2&7o}YTjB=y7uA-MN`03~bD9xcFAoqPy zSlV%lq8PCgRUDf?^hH4@4`eYYCJT@1KLjrf(QaE+$T2D5NJTi zrnYNClrQFx1`SUztT#yDpjLbQu_uBqLh|AZrD85gk{&4WKZ7t={NYE&Zx5%jKmFoJF*v9l{sdf(H}5^&csGZ)xyTzBN= zcYIOBk|wKQgtrWxxtrP^!TZ2o8(v$s9)&1C2DB*B{$%;_V!krFa_z-~jf1duZT#%C zDh80b?_gTZNTmyNc0Sm+x!zcPBdHyX%w15q(U6FRgx-=e6>bP`=DCKkt{_vbgq8Oq?Vjy4x!hnDzAb2t`K{z?*b}lQ3Mkuzt{Q1Y*%#DMM z{p(937v|BTKDS;-!|28N&TEVH>JIGZt+A;XkD;kUigN;pg6Y>Sw&3%%a~%BSEC4x;wK5#T=DkE?E0n_9sMU98 zhke08i#xyBK_@@}Ciq-4R6*eM5}!U8)`o2ZnOqHu2+8f9GQm5)L6r1ts14Y_bju)! z9zJ{bem|oaEt`J0SZv)GXp(n*-^AkYf#=^_e+*Oibrs4PwF;%joN$cz_j%?FZNxe%7 zzVV6wx_a$1aeH%gM0HDpCN9lcqq!cGPY9Wo5reRBE8bh&yz%_Ct<}1L;`rQSmp=46 z%9oxNuM+88L|#HR!vI15sJ$1;K!t$;1(ZR@nm99Y_HhL{Rke(=}{!$Xuq z1Q1f>q}>VA>}b0?*$Ib>QjB3i0HJ2H(Q0+lpL9A=<8VE_{W+wBwL3CkNYb6tY_|rK zG!X>T-=^hU{b>Qg6dtM7YDfft?J%r0o2gcDH-_o1x_N}~WZM-+9PqOP=qVzbqa&&w zweH%|uLR|8UI2>Y_+WMEwNKktICWu$9A$tS?Xa07?ZDY6sFiZES~2T^S})iud9_@L zm&eSSXVo0LX`*Iq5+nhoSdgV8Fm9-9fCg&Y9t19*AQ@C4Ijr(w@!Z7YUtksHcB}N# zE9=WQs|Ouh#0DWq?Fa}+V=!4hcjbJkpyJx*+Uw6n+bbS-EQu5g%3Dd)^EZ4SdTL zc8Y-j>7nY^TgMhMFhQ6h0oqZeUpP0r?dRKW2!I`Q{`%|xaJ)V8qtE{7fGAxK0fdG3 zs+&ujttPWooV@sSVdeso4IEW2Jhk%1r#F|k=Sl@skX>#nrhOP8~4Hm-FSxDV-0H(!7^IX4)m` z@q;uw^{w5mFG`A{jLu&io4c5yCB!KPONuz*YJD!rR&>^FKVyQCEdp837#eaC!A&_hw~FCw;`S?L;&dpB-I@yiC^&2 z;>6zU*o4hC3g-)j=U;jeMc)7Z4F9(!Dv>x~8gJoeb*f$#P3km?~Gl6tUsj#tRJwPq)s^NFK508sG#gJ$z+a{@=3 zBO*EOpWWSD7taAW+)2PA1u%fFa9^j>X&h~|R;y*(1;G9uzTi1-E^wF``cP{2mFv2J z@0bivIZcch5^n9RzV<1L52i28tGo|AwH#_=_~&2z@s)D&>goa_{W7AQarM z)&j>LDUF12M?j&N+idy%DoGAsER^0zFCwTrzB_vXU9Y;flDu+#{>+RuF@otHDFTsU z+)S7;d%qAUS5G`LV=e7$Y+Uoh15eHESr_Uw#^|1s9)5_Wyt!1`5YB*tRxG(h^rv5~ zKlA8_qX?j`fK#N8kuk%;fNyR7h}>gQiyX~QNIHS*YKRTQ(x=p;yvpJQ;@E%9m*5+DK9YR86cM(enGB=)JJcqeE2J9zLsbf&-eHvAUsxji6t zI#EsOJt(e|U00k|H*o@`Fl^Q96efXVX-1uJb$w%Jbw|W0R_4oRpP<6HL63nHS>E*J zV1Ku(V%%8X%$=D)!5*_$;b8&TZuMY)Gg(@6D;EU_uwS5@{mp9h5kG4vO6r)=bC(wg zt1CCQm*0TS9zlC_BsVfO4~2kKmTS-AlimsBR(!D84N>;cSg1;s*|YiiN6;xUddYFF zyu2r6uZQ_63D}m(jb41F-EP$PSG=Y5!kH;V%&v(p_%r7wmlw8HuRnJ_pR@AQF=#&C zQz&RD*b{^pMp^uO((4oimZaUN?YkBz--XQHouyr`;RzaItV9C zyaLy=94j5OHk-{PjthkX9(ltPQD58^vtJOMxI>T-85pvs60p`u@l!x9=Q9tT5Yz&HY3G? zq%2UqM>{d_{HNczc)m0>oa=s8`tHk5Ee?)vU&Q7=9vjhN1ySdTwxkvZj zcy4`ld&0JJ6JscxVhczxHd(3OSc&#_MoObCbUHv$*lx8W&-GD+Ks|Q$2{sbPk+z(j zgH6lPh``AGkOSYg`y>-@6a+!)05O19nXxUmxw^ElxLygvk+}&Z?2mg928!hUB*LzC>kdpDUGh45${r2Db z`&;IefHf_A8cQ^<6t~y~-$1-+5Z0H8nO8C3~xT>#u!!`q>hp5*Up748ivH%D+T_vDuGC z;6vKdN-I3=RzDVMqJU=8s_hA|pZB5nJ%a!Pw5s)VWL7`qs66fmehPY|_9lVvc4-x@ zcI$&5_)z9aUkKbb9U|(%CZ6AJw^B8~!8a_kNs;-?~ zY+L&YXaho^08cP0?oO^8nUDa0q$fXi`!kR(AcL{W@vRE75hKX;R-$aj{< zMSfGMB0^xGP}z2=GII9Ot;JV2mNqYpl+e}LQfh3(UfXQ#?|U6%7Ym7%vvM{m3jwMB zu%VD>j^Ze&)Jkg3o(<>QW6RLdpqP*$De+;$hr!4;SrtULZ5m zK)1uAOB*dCx~p7l$uRcTE60#*j!?F0>c^rAO|fw3QXhd5(CJh7cD7*+E0SY4 z0JFZfu=UJi6^p9yxfQ4kd))~4wKTyBC4X&k+rapMSDV~%Jb5~n(v#>!M8>Q)riX#b zeb8u1BNiob$%jt$AZm156K>U-&~bAy?kyf{FPlh}#?FtNe}eL3jGj@Jh#d2E4n`+0 zJh6V``OTXf(~q7(i;%Eauu`s+r?iA|)NH35UJpR`vV7TF6E%w>#lqPj>7F5@Aw@4k zlKP_D*j;`@ntKWlQIyj36c%!*hJ8^|rBF1j=upvXbN>iMDUQ#c&&@uHPLatqWbwlk z*PT!-gNlLd;>66wXKudwiPamc=Ui76asZrRZrvnw(rQ%?Hnv`WZsL&-03E5N0V+up zwE#C=TwoxeD#$p9KCL4_0UOYZAg93=>;N=vv14!yqlC?aU7^G;lo5|PMYbDF5S;*s zNUdH60N?eC1wV;mAnf_5@F86!{i=}nM1=ZSn+U^k@}-Cbo|ka%+pILLnDevsq~a9W zoOHWslw8R9$-qnzPLHkcY~CAr76VUG|G57A!1YSSV23&Tl?bHM$L!4Dn1@}xUPpja zbG-se3`%?F#*6zqH!2msG&_MLfSJGD(FzkOw!vcSjB*)iykXl)CfoL$@&K^Xu%lQY z1mW~p3;-h$fB_){A&5Z?paxL)h=JTo!`sj{GQl+8_Y3(v7*4S#KxBb-6i0EqyAyKf z`s`fU8Oedl!Y%;<^6bimxq@e{uWVJ9ueY16ZjET{1PR&(QQoX82x2-cPXDI*jrS6a zWgq~EpcqM_B#ca$n2-JAV16>g=1}42c-buNbk?^@ zr86;k3SBUS*#Ny?jjOb6AUQjEZejh6TBlJO%>&>71}Ks(n%yLCo6CxyFP*v2S+llx zHtXSy`Ezr+5Dd8T---PrY!~e_SEl!FtZ(iv#zG3hrcAUkpP86Fv2z;O>atF{8CP5f(iZKUR2_0b}+uDy~ZNVftt`Xt5QQbDkx|oMSHL_u&}FV7NqKBAjEK2TLC@0G+Gu+!SfCdqn z6OJ?)BS;XL8ImO2uLFov%7bmE$IV0|Jcf)*iBgCks*2^$>ud zFeL4`VZaznNP!67Q5^h!g)0f_j)I^v)7f6y-QMwM#*qlHSN&BOFYhmJ)ppj(aiSc> z41&Etz0WXAxoQZY$l&?Oi#wgIMp(;K(nOF@BtsrPYf*~ei4Ta#j2IJ$?K-pP#PeFK zON%exm_9q@RYpA1 z$>k6hM4d>ES%3O!d%EJxj$0aQB&O&8l{KN;78f94?BM=WS1O;m+U&4};0UO<69gj} z##IJ94T%^mBe{*8)|qjINS{-8(dpNS*}8UfKanv2g>v_JRMzB{bGY~V1jJZV>*Cq6 zqMe6^k8i2M0U^=T3|Bl*(Q z80LM{!@i9f7sVWG?CfpsB3npqW%gWd_7QZ8jBY|U_ckGjw+d7M9tJ9>UJ+B@dFj7b zw{H|He&zf;S|BKhn4bK2zp?uALIVEG)4$anJ8#fM-gxD|{E&~YpS$8ms^rZ5uOOF< zOd84Ea@Z6Rv}~@$NgJhR;{W4c{IH+U-}|y}nTds4o3H-HFL-YI>{Ay>WACaYkZkTP zE^Gx;Px-S?8Rar)1jzX=pqwzZY_viF$oozf2G?7ilq!-B+)iSC;QPN1fd2fS{|id1 zz;};)irRwMomK<#{OPaqfdl>4IGO{4+ZAlI+tO!YcIT%9=)-+D{Ag#v`S3a!u)AG= z!|jql<7hftL$-WI5lh#T9@k0v5=ltH_U85FSAI3{dFskJ<*LD_h5-buS{Urb&IdpL z57k?3A6)=wK^qjJL035d(C)N7-}~fq&y8rW=%d0mNed)FKM&}D80oAds6-}>1b}Y~ zoN{_92ano8y?y!8Wk6h5Snv>k;v-)MAYc8@f5s^l4-O8_oja$5uf6^mXYbm|Yo7+_ z6h?x|nJEhFUXc%GsY~Eks*9_;+Xo4FT}oDA>P)QM1hqk80K_}^l!%C=HlrD2tyMGNueA8;a_NlPCHhEzxm?&p8iDIO2V|8<* zQJi~r?BX+qe1p1ouYnqd&=ZQUZ(eK02l+y-2XZ3gJ2Nm6=(D|0ghX5uIs1F{wIzw$ zV-q9g*(ua1=7x7%PbMXsY}any+^@zHbv@Tmb4^ullP_Q&ZRcUEa_@o4(An!7iK2+a zma3i^H`5iZu}%=a`KJsLDDE~!U%yd{A4Od1NRhKw;w{qH>QFdnjm0Eb-pvYoBgxF1k9N zx_H(r7eRFl^oERxh%CuLW98a1hI*_rHS@?b_y8xIWFqDQ-a2&1zX(8&op z29ZG{B4+z`JTIHhe5jdy%Wh%{{Ky9yov^;W6xeJ2nJFA7n6Zkv$+J@{i(9L& zefpdm==_wyX3pFUU=iXuhe^y$5nEx=Kpt+@G=m?ZOHQJNQ1-2)t|3GLj?Mm-hE7n( zA;CbCR;?;5eyLn26cV)H=djkoq0tRbN;}X36xeM%61&Bd+I~QLLef{ zECN|(H~rP%CJO!aWHSXMote!SNtg7p#RhM-!F3|^HX$M`a>zXpjN(L$Sn0!+E^xvr zfEk8NH%MZ$cXQ>{PiQ-yx-fq{O34V?X2c5(vcqIVTS=T40QLnukdQnANCM@#fTzrer@LLgdQJ7MIa2=`#srMx-jeH{MDQ5oz*v_wpToJN%WTRNuXjerpJ1gQA5&?`GQ>}fWL0TDEY7+9Dgb?MDOs=KX`lY4iC zXGDWK7@w}yclWmT{n1gh5U{tC!Q{AXR`=Ey%5&$*by6wCQ{@L3XUFD3E?3+8q7nfU z8&QY@PWGQQ{mh{^ENA5ihzVi`Y#14LJ-@wnb8~YqYPKiN%_!f=F8UpqKL|)@jTg`5 z@~aEmy84>SHCN{M^n4SGh)MuOTMaJ=#sb3_s~#SC zQUMGz&>b=BEeKOYFDeBci>irn0p0Yzcsuz;By##uBcRPTslC4A&rcjJPL}U~*+2NPAn>)e z5b-O1{Kqhi`@a@)tY#Ab-KU-mhsz2@@Xewq(%E0SvDZaW+6M~TBjxkSxi4H8@?0O9w`B`ozmQ;r*D2{ zcWZTbD)8KL3G{%Oz*KoOjCMB;)?fX^)FU4xui;8di)_EK6=K6&{Z|dT@YwHo1oSQS zb5gS<0t1ksZDC|_)UzSr=E1g-$j^*;m+RDYtJd@%w9NmBu31)(xPSH&WPq$ zKKZjChYs6IJNmnS;=ebHA6V^w^!NUnZ!w4ggurnnNf4Mh{N#WBH$LxZj15?b2}(Pn z%2U7N5mC1_=-|{Z7V#J-2nUY**k2(?M1<}Qq7eXLBLLv!a$o&V{s|D+xgZmFHo^>) zpl=mtW}ePh7hc&}x_a}*#%L=XnV&(80Fv2{kwSm6d_M4YZ?4wrTWhbjM`zEwmFW;% zBZ?K>dB+AOSVWMk&1&H11SQ3#N$9SgN0bCj0?E$)cCMH|T9?pW+tJ>e|CQXzIm;l~ zg^HaYYu7gTphlGv^c#9saja0?ZnRbxa_5UEmLQ$BW)C5R&i zQEIwFxfneFdKjeKr&kps4vyoU(7@{pHFeG!333Kn1Tg^J@$H{UNFgK&>rXvC@tKz! zA(Md1LU`2P>Cs>&g{d}nTJz&Mh6a6(1}c4mkxJOTzPKSW^I1#CW-ohw7^vKP;f>;U zvbC`K#;4=>AYb;z&(4vTrAP%O^{!wW^<{F zqAVm~9VsbP3Zs+9xG0b{7623$X|!uyy8KqPhoYS6a#1d#m187Bno|WT85VT7`(^;} zA-BcsS3ea-&C1M7#~-l~5JCVRuAvYF!nkBpb!9a=sLo8j->8ug z^0uluIX`b}l9mAw=DvZi1?UO5hSQ=ZQsT1&02bcXdXfNC0*y`w89;^%m2n7EQR3z7 z1n_QN+ZmSC!^;r7o_c$yM##1Tfp((~0Npu`;~)TFnmD(}DwQt2&(4jmUVCnTZ9l9v z$Ir~Dq7MWDLfEriPz8VNv5VI7#_rlqb@7#;Su4(-Z`-*@EJng?AMlhtBoxWIAo5)M zwVSV=nLn!xS)eU+5Q&72=jQRmIt@ujb*^21ZG3zJjG*wnmvvzlhu;BX;al~9f>x;g zpgh~GZtrjIj*S*Gm0lzqnJ726ukUUy24|ljVipjjTiDA2q$k)_t|lFF=(+xGW1m%< zQ8ILXz-jjWG&*g*ph*7;^$wF0q^9lK(`U%_>Z>(Mhe!-5aa5?V3Pt{_+RB=?jcOLRNOYnVIO;{?8LcNJdJxa5scWoTmp7t-noc7^ zt-r)S|Ii43Z?t7GRNdb=lFK%-%5r;%zWJ5tRN{{g9@oQJy`sgPR}#G!bxf z=haWN>+8kwi4XnGzhH=-d*PoKT>vA5=A?T73$S#y*0z>6gW{Qy3y&x8E3r7jnpq4B zGE?to$e=XjKKOh8q;R$N>Zd^%kcyX|04hT4f&k#D)t&^{2s>Z=1-}KG9UB}L5+LjY z7jo=zW8_c*`~Us;ui6DySm4bxX3k`(pMB<;%+m%Cn8ok%Z9e&%hXU4~%OZjbL}^mN zx#pP(vSGVU%88iP*3Zpb#XOT)Xkc=y(|c(v{-C zMiKE2LGmE2xPLd|DSh4T=OzGxmOnZkt>vl*+at}kF8Gi+EakjHDYt)6t!>;aOkW0a z&G5S>TfYzjX;K<3A+Se-Ya7=ZVQaLIPZOL1^0o~PaY!D@5E-BZFep!yZM(6&baQ!g zBn&I_vwZ=EyBctk;@o8JvO_Bin;69jSR_$Pl|%3iI`XjA`2GVA3c(KzyzuhovsVg^ z5`>T-ITqLq_q{@Z+?&D(1WG<#I#+t-Mn}XJ&<{>YHi8{pFn);0G$hSvpK-y}cgv)MvyRGR^wJ^IJDxRuqoUkL6~@ zQ4xR)Mk%Hh?p#}{)nesO%su+7Rh(sX44xz}_Qj3m^m=F%L?JhS?#aD_{rb+bvNrOL z1tM|O5}-z_sfnU6>i#1|X?0B^oFKTlJUI4AUoC(v{vB5IBGZ1c(D-m-i59JmjhjwBz}HgBo>V zFpPT7dp-U>4R5&*sluJoHbYSs1uOpwpRfcpnCH)>4-b}%}Qk{0toz1Hk>+MFVND1!=S zjb;Y`0^iB*hwid4&;sAXek!inY?&lEv7TC^4G1~UA)=$-N-^+JFjXQ(qITH92Dpx` zfKoKZ_gn>-P6HhN77^3+q%H3`*}1JZIx;lq@jVy&9YVV2y*&Zx{x%D8vUMs*idM3} z_~QQd!sz&jGdiq0S;PyKvsdp zq7y77u?0A`gG~k@M3)~Wv`7gYFSs8@iV#o)4frOsV{im4%tp@$B)z|cZC7*OfvvY5 z0Y=2T@%C1TJ$eraqHv~=CaEP8_6ORv)u~Ah=nWVit00A5NQzc5RtozQcxIVdwa{W?efT| zWW^51x1=f4Dd7tPB&7WE)LvNM-`X3?c}V@Uq_8wm-m9+cuU*Se&Jbz?4uWLo#H3!+ zhUAPRvf2DDQu@MvAD9}_Ct_b)+)rc_z(T}R$c}e;&SkjFudh&? zc948aoaZ5;a;sQbm;e;V!p+UsKGj%%-J({P5o?W=kN{AQjWZ6KYu8tzP;#ZYiN`)j z?pQ)8h4CI6BWazRI{(=6b6d5IjTe67XF7@Zdp`UJn~m1@U%A3Z^2GUmZovSwLE66m z>z{ef%I9p~Jx*~G9Eg+#xF`vm*1__%oz*w6bD%I9?V>1CGZ^Gh3!vOW(aQ+8qaKRF zT3e$NGw1x-i)0my^83dt@X#IQv)KeG2C`Ic{L=f{&Bnpbmg8;bW+o9dhyW4@ph8`A zRp3RNs}9Nc{U3ipL~LmTbE~=?)f(~YO$OU9R{T;qD3#sfDBxiev;+x+6dEN!U@SZo zCT3#4ki$WTc#(FkX~p4$Jx%P+oAEarf@ z+Bo!8YqD~k+dgY4exY>FT56i&1YXE?kUwQ!myIzn-YkQIVoQEU3 z$tRB1^8y0)(3qEAM364R(>Q`$UV8BbKUT{ZOND^h)Ee#XVy#X%$W-wU zQJNPV$AMl`TC0Ob_b{IVknYM$d0#|ojaIr&V9EK;XMXW#ch?sRBf;4D`Gbg-rGZf$#GWn*vc4LfWX=gyOpQ)n4fw*-)fMcC8uT2v3m+uGZJ zgl4Aa2uVa3%x-PhaxFzDD2`_}pKBBYVfX!ZV>Mx~ zF#Blb^0TP@L^K24GlV1}43wbdj7*p3F72+o8f`7ObLVQdu6ecrBLI7W+YoRJ8-Pfu z2+?*uHy`-LATi0Hc^+lKGGX6cz9mt!vGUsX>Ww6BBE^OAe3$o6ITr~A=<))9eH2Bw z*{QB>Rd;Fz9I?xzvzJF^&ZCt>&_Wqq9v((1_q`2sdl)c5ZTpqk%kN)!;g{BLZcS-V zmCFDYWD6o-%nJ8yY>a>nN}=gQDqlYPXw=rNdaF@uwsuxqJ1aXVs4*xMilwqwtWcqX z+S4ouhEOy_t%Ger#(W+yy(I{MrP(%7?B+{o`vU5q)@+BJR;#Uu08phBO$3P8{VMFV z(>-d3AvWj`*%0UlHZ$W$fNZZ2Fw?YYHX2c6b=uv- zY!OkX)23@Rk=7*7~i__{K3ZJ@~exJ zvt@r~s>iU$9)3Xt!QA+KKG;}ZZ|^Sc)%UtW6Yl6lsQeh!@O}y^0k}nNh7krq#GIc? zfL~pB*>c_PMRv43K2}kfx@QRqC?j~w!TntaDnK9x9CFT$j}j|Npy1^UFenj3FmgLl zCNNI?R3PvYJJJprF)$8Nq=XzxVNWC371-s^SN)TDw zC{rWT5sxI0w4%BICSW83_uy?b;zPzPO@jcI>rBmij@w*WxcU0c>Dlqz)HrH7QFf7) zXdd&)Ap`+ZlA9kt<2P4tEI47+w(2!KTc_y`=F`IxJne4B6lxxF+IfhjoGLy`q7w;j ztkfLK8VT|S>I7yuUp~lS5#Zyg{?JpqkDm8mx!w%H0<=!VDkLE9%vC@kCt|g_wOy6}A+Hu*_BnU_uy!Mczaw;iBNf_;~ zt-SUbZf_Jv?DB;<@@&X*Hr$I+>ML7Yt2-cmmpY$2`!ti6h!&)`XaXvL28hTjo_)M} zu)VjnF`M^3@u{DQ$;s@jIf|BFe3gwl`@|RMLWRM$eJ?Rd+Ap8tE+2E!+F!o5z52R} zY6_xq4@C)3rvqTj91Qvv)5y*C-p0AnU3h%F@4mja0;B zm#1egJo=CR?hkb&xw*2IfELgwl*SV|-1!S%`cxjbAsxt~YI5ao{h$9&%Zw@^C6cPt zDGcXkCoKzq#}|LGpl6g56vj8_%P0wgnAVnF7=!qwv zZFky@MgsvJf9&y;F;Xf92en2Qe?Y)beDae3^1%;$FvV3EFhxQNg~Ac;!5{d*hvGQ- z>aY2#bSzk{)w=6Rk(QA{U;v2HAwPEIF$MvE?qR~=VLs`1QJR-}za1&$UwP>h%ddRmfBBzOL4(L0A7(Q6q*xwJwrXMZLK9Z0>$an_86OUE; zSCjh2Z~ErJCp`T|D-x00jB5qKprC{{nLqdSU)kpJZru<_IZt`s>R|AC`z#1t_7(!# zw=5F_-oq>Z&Pr=?+vR}(wLz^tYy6Q9=5nRgYtOGOALN?hA;aFc0SD@QNUV|EOzwPb zVRgIPMJ>EsXx9rf7myvJ6oV4P<6D+flX)zNKzKN~N5nh?C@8{-0UBTjzgd@l5y`Gy zT9?&ox65M_8Wb5oa*Qz`p$HowMrILuGYQKC3CJppPHnB;+}+vF%})VIc7EJ)(R0^o z`x_$%8`h|8&@rIycJu`RVtE>MLLJj4tJsX{8act3#iUGvw-G`Y$Sg{ULLr0Xmd8gd zyS}otyt*?QM&sw^3E(8Il0E)1Wb&`XulVP!%KFV6X&ZqUH7FPh(KqOz(8H+XeldSBJtlcni zlPE5Bk8AP_`7SEy_uVA@YV_25S?aB7H$>Sv@SC~1xO*wnm*eW+r%s}3R?_z9|{wr4M9!O21t**PGTjAiP*-zMlFJ|AWi@UlF6CT zRy(QJYvDm{N7fW~2vfYPs+x%*YS(-Fb!MoQO{>561ZiAvEe0d?Q^ih*yK`$$BJ&(JaJNkHju z)G&9qi6@gp3;=kvKq;R~k~kaXH`=W@ilE<8VoY|w6C10xWQWye811(@q7;kUQ?^10 z0xtOmlDMb)D*#5K^_{)7sylk2boqUvJO)HkLt|e|Nj?K&0ODF|7=RYwQ}J}ffj0pQ zHi~%QAQ}`BD1#Y=aKpu21#QM6!T^jya>u7T8=4R8!`)^v1XJ~PNWfA$ zpPPUDTw!eO`U{QS)v)%))VXQ9T9v>}JkK%#~ zz_)`=Op%FNQBzq2*sIM#q(SY66VoW!L7)LGUXUBDwDwl2Tf4=X3KI1BJTf|2Zr$8I zSbM!vERilTpulY`U$WzpK4Fa<GvkXaBx`YM9-Hki)!d18Qs zhAGreQY?F(-&$SV+1*XrZ%lPV*}Mk?$J1>?2vwhKh6H-lo5`Qi3!7^9jUcSm_57Yb z+oTajJA=xy)n$JLhj}ar01tIvhIu564dW`e>P(QtDCo>o z+^wx`k*Nfn<6R1hyiIni!;ORhy*7_MfA!#*$MTM1kPZP4vr``YCY)sF3spMCUM8ksk$=QgMkZ!2W+=)rF3Q8OPSEdc*Y(9XbJ2CI3y~&oC*-7 zL(~Le06|n}+Jp+lhJM6@7#q~=D73|z9Umt(#sbY2C(-O;6p~s>8j^>{N(CV7!-;TI z2US<%`}rKAL6Ds99r4i{DY)UeZgx-khhJf<-3AfQ^D-;Btg#3nbQdF~vIia!2iKzz z-R?AEJM4g@;W5hb?txj1F+_wYN6I01q&G!?Fx*&-LJWMb*U2EAc)7LOO*o?CXLJ!l z%ytYBs@2*tfkx*2mDd%teBTvKzULq$0xFdQ5Dp;;2@(cMHxN~u%Qv^QGdlgqvw*oI zB|h{5HOy>^hR64V?li{+vUn^=kc?|5No0(m6SGdhRls)K;<#l&93)Ku@e;IU!$2#S z6ac_V)`a3lC8U!5xtu32j2r<5sCBkVRvw1``C;%V=>3BUs+aT%E%-l1D z>Ko7RuD-E!ePgWIDa}u#20+OE5n?b|J{P##OKbJ&=6b79n7!;(rV?c*tQd6vv}P0< z0yt%uE=cL-rEj`&{5;?Boitpag@{CmfLgnnEu!pMA`)=4tF*Qpdu?mY&-nlhgebiz z%or9CrBpAh8ft>bbY%XxztyGG7beSylyQRW@ljguvI=h+#>)Ap?4WGOHlhUSZUTdp zvO-`JX+bkHHaA`we{JDvuH*}fh$wt#yd97*7KpWF5c9L=L&vLbuC!mfHhX5yt(1`N zfO8F!oXO&e3zfh{EtUbwpXT_p*6+}XbZPj?{vFXoTZ6>0D?FU4w4G~1Nh~Hs;{*~RQ9vgL)0%;QPyDN4T;r`o) z1nh)!uUy@X&4i$J@^$lBXb7yqAchDgd$+zT5EX*^-iC3E{?Nz*Bc{6Z`ezQ-->@m1 zx-jcjMv&lGl)_;4Yil>wI-&AM&rUx20rEx+YEFqQJ&Fg)TR2V}fZhaH$SIwBV((!0 zV0)uj+PB6>)8R-e?NXVaXdS$Oe>vRD!C1-teKCv;Ncw*W0!8bE7Xk_tSo&5&T?vjO?KdTYlUTn zCXQ=A_*edFgY&N}b*eC}(3H*c6LVCM4Vzm4KoZ)}Nx*JV2?1`%K@G=$=^tF*rL!Vf zl9ex<-^iP-*ed?Tzw$%cE*YS^r%0YYllyay``+M5H-;Fst&1aNe$yu~?59 zdC#_C3;E2UiP3JGN*8%}-(z{Cm>@=!^rFb^(HRi}!_u~ued%oR)rDGuc>%Y7GsruE zr3}Yoew*p}R}P-NQgoCV?e`tJt{<4jusXa-u>4 z^3X>mZ3rU58bnFV?cI&nKHb<~@|8aKXL$K)Y>UdpM7HOmHmySt=UouZR(eVfbyNGxytIo&eq~9v&E89f}lwvjvD*j zxvQ^JbZ~^CluA=`=zFM+SMhSjMFG=jca6iU+chwjwniss&jquW(aJIT32N!n>mL$P z9t2^!6uJYXm~6D|gw%H4>ja3@&xnXjupOi4ggNPX*v z$T3S=@*rjs=JaG4|2{z>M3A>v2SL zm!GjlXA-gnDZ6S4C8wHXBHQ9Hikk?o_7p?}=AM-P4M?O+%}!$1#BCf;#EQUT(Eu8; zr)Vvb9dGIuV~1QY;s?AF$gUUdYS}eN03m{8D?fF+r`v9d$Sr?$`l<+tVrEhlOkKK= zFKk_VuCce?e06c^%!EHtMnx$Ok{PWO=cWSR-&kC2?k?9mtwV-=p&W^3v;&lGa?rS+Zl-L)Ifxd;1QJxM!XG0G7kKIQG7`n(Mb zf^h;iIcF!&wy?6ae!~mgx8ZG&7Q&qZSW%=&!>{V&3RM5~M2(gEF z@?8k%CIYRz?>JZ$(FQCL0>B66)vN%56g7J0%9y1Dp#5$s{SxU(E(s8Wf6!3Z7WQK( z3Roh7__p~d@oC&Y>@*MF3!=lfLa$f}Ywno+~B>W9dSm=vlmNq7m-{ci$O7vJcLi) z)^@szzhrP7XEp8v&g0yAJH#?^++!4XdnLQnk2RSc}lkflj?*pJe|L6aL zQVIa_$Jb+VYk&FG)z^P>Y9<&vTS3hF4aJ~q9RPxYjRY|Wi@^TM&ern&_}pV7=ihIX zmljj?J@UbT(~7|mw!-ME|MXuYjDO}QzCY(^C9Qk#-m#z)hkJkXJO84cw0_U;|MIH7 zv|R^F+G7P}ai`wcL4ff9in88@{LAe}0q}9}Y6AWz!Y>TPeae5Wn7sb)|KEQcNgUbZ zU;o{I)3(MFum#`hojk0DLwD{5jTXa6ySnts=Hkm1G)BvQ@!TBQ3J8HR*B1f-?nGUq zmHJ*I5vMqFAvZPG)j|z zWzx9_9RLzM6|&1vf~?13WTv>zwRY0zL`?$>%P$!L_E& z&ZvS9G(rY<~P9cjXohA$G8NZq}MC zHWk(cnNaRB-eu5&R+x-*3&1+22xtrFEOGFF9G!;7?4+Kngc_>^27oi$Swwt*aWDkL zM1syC>a`P_fo}lA8@BK*ZHAj+kFqQfD90kJ97TP}ER?nMJm7h>jc#3Sbm|kV!5j}|2}DGRm{ba65NIIOrF_1a&l_M7sMkBSM!Q;X zw_0JnyDxt10=+7Lo_Jp>{q z0S=?>8-Wf-C+Cr}^VBmEECnjc44z$K(1qG(%nun{Fv?I{( zxP6cTGH5AFb&Xbnd|~5_=XZ8?>#b{(XQ%9uB8UvS(~@U(jaG{5TWiZ3`>U_FJN41| zOXvg%S_YK#mALMs3drz4L0gp1n*4A1wbYsnVFdGBw@NHIqfZzZ4|*E#>)09 z(|b$R?ptEA5THUJ$%e|Q*WpYdXsxVouI{eic+TJ7?uu2~g>hDH0tBK3PkRT+U^I0^ z(u@)lhjAzXEKKhJXZ2WQB?vKSqu3AyGiOCx)s5xWYd2=k&Ulp(%&NSy6L?zgpO^^7 z&Wz=qotsN5k{FVhz%;2Gk;h;?eBIoaCZI$17glOxBV_~zXow_t-J>NSiKF!8v!kyr z)*>zf==35!I7b&lZe^=R!ZYIqg)If42xpcr_~52SNkk>$zIb&bHlqf;w<$`=I!w?4 z3Pgr+S`pC?Xf9b$Qnj>RUguu_G79!;z@sGjp&$G~2Kbh5{br9COrx>*(#FDzq{7PF zSbk;#6#z=A_W}$8V%qWcwVRDvqWsC(N8fK3rwlp<)!<$M0QIo;`xUV;0EzTAz^Jq{ zI(7c3^;dsw>*mIE0LMT$zp;RJzlH&sa_;!-_~z>R-o|SLSeopjD5Ds-IB0YQ(60aj zG0e4g7e(p$qBxcE*~_K5bEteKZ9t`zUwr6`@{Tsa+xYF!;DUVgFNMcI`WIaU38Ezb zfBdaa3E*G*3m-rtNqYlKOMVFj$-v6%i@AgLv{FIN^NM-Q=TIw9n7L6PWYi?=j|ed> zdr|=4l!9`}7Z8!8c8IhzYu$f)o!x`ZE+A`V*+HS4D~`Fv3KT{WT|^5=8`Of7bwjqM zZ~o?Q0RT;Cj5#68n=O`34+-G%?X+FyO;M8=qGg)EGcD2`jZ z>$Td}L?ut220B(*M3ibxNydh2tZiYe$1gpqbRj{?-mi#R_Pci>82|`L2mtRHj2lc( z*rsLCYTi=-fYF8^jClY6%ETH%527dBtAOCj9s)e!98UXYPlQj52<2Yx|I_&WRUDxV4wuGH$GvuR~q|!2d^y@&P=Po?f(|4E{x7icA2mK zXatTyMUt&QdxQiLg&7g=yO4lE0_Akg>Px#T)$QvCE9<2*lSuu}SAjb_ZZ{4*$1P2c zW8k6!06c-BAmGtZvbndpU*D;L*p@w3nYrN2T_Tk;%FR#|dg$Hwu2QLI1fw|85@`lN z0ak*s#SFmcG-E*&0UN-?nj>v`b^XGj##meV${e+J>(xfR(Uz^Ip!k8EEBejp(Gx{F z!i<0dx*AzV6vD};fZRMfrZARFDwg_wSgW;ajb?4PzSpSkts1mJd%4oMe;Buvt^5d} zLR11Mq=Zpx#Xx*KKb?v5ewN5lcX&Y}*p|NK4xq4bYj@>3K$M@H$)s#g6Yen0XnVaD z6lZheXJWF3mi_EHgr)Iin$XMCcm*>FtP^hdBoAic3Q`O zt1~`7O@WF@NmDZpHEKj8K@bf+fd$TV-UgZ&q_%Q!WE@1cs|P!;+?bvl z_s7d9eR^sJt(5$!+}YOZ*7oY==E92y)q~2}$DGn6SspVQ)Wc{)cIPvg1mc6nz9=?g z=s_#+MuVAwib4`_Lne8 zL`xl`4(1YY0M*0S<6Fl_1)YvjpL%KYeUBAE3rXuPnRrAfk^t7G#!743)s85E2ZTqI zbp<5o#zrr19*~&Xu_92NAOv`zqZ9!r;^ONI+c8w$=JSaNM(o#a>^^cXKN92^8UzNw z^h+x6K}1vpP?(({2Y~k%IJPYL$Va~vfIL612<9IDJh}2dfP@qv5e+5zf)TkmBOr*V zN!tKqfwFGB(>upyt?w1{K8_V3OOjCOXajoNnWV7FD>ZPlwu zeQ&LPKn7UDF@8CzTFZXw*)Ok!5e)_^*&-}C&w1gwpDk6iE*E@b$^uEP*{C;L^>#OC zY47ZJwrF2SSx!(K>mn`oNCopH0vE&vRFWbsf`B626KX}o?4;n3n?ZK>-ZPaTQ&$^4 z|ATnW;Gm6w&E9J3U}a>yNWKFgbb@bvv?Qg!WV5@z6HzcX{|J)9K*P#;g7^P6%6f>1 z+%`_`w0r)TkUHK7OaxMt)ixAf>O6`7kGroT(2Jc%0pJPmHJ=;rwDP0eq8~>}ShNoO zvrnEI8DG2hLUnJgQ+s3P?4%wWMTMElH4u=ErSr3P&RJXD4Aw^Z0# z*=QXsEPrNW?98LZ^H($#dZfgm2r4sn2PI+B(pup==`BS7LbojNMr6Q9*&LL-^Im6d zd3R?kdF9&lnOQXwWI19I92A$$)&eLQtCw6g{>Y@&1)kOytj>XJpV`+J8Z>4A85G_X zekkx>Z6q+%vf9Y>TLQEr4xYPu@YIztPw#-#;r1SoLj7q$iM47ybEQjG*$#PJz<&^U zLC1v7P$ec<-E0JYFd8I)F@Qn92Q^Aj3471Kve)5?fP0!E;=Q2Fcq-#=g*wEuzqcCb7gIEB#%THuORcblN6tp-aipZ>h0Z)y~b`$SX<6m z*B8Z`y+}GRnE9dzA_0qlAU@0$y_;kpHA4=l(y=>Qnubw8z(#=4FyGeG+dejnMPRe* zO>`_Shxv1L5BeoW`HmWmZ5zB;xn3bx%8!?(IxL~oHV>LMMyuLrHg=AXmgQ*CLG2bsCV~`c z$&~;Vq83C!5BGn<4BXyZy{4fvHZg~US;sY)9q-R2t~U0! z5AtJ|t2P9!BB1ja2GNkR2J@-t0 z|JsY)YjN}X#%MDfnV(Ag`0Owc(VwiG&*k?P*Q&Lx^*36jne)#0bPOJYHiSd4TK4g_ z!=`L!`d8f?O`F(QmZbm@l?7UZB_c*d0SN#BG6)WM2O^$SG!B)uZ#x~OjZ%G6eQ`M| zkfRs?S<+uJrAMfcl)_poc7sZ2pfvYbDL;C!a%1nHwpU%8JX1OJSLr+BrKkcD>Y_Ip zoQ)2dJlk8#FI5k=C(l3SmZn&_oIP=wwiqHJ$6!|07PY4k347RMMi67(IjbLzk7e zCIyCo$l$jbp1->F{zJjyh#bD-^*45mX_rNHBY zbRwpVUfY+}-Pw;m?|=TLT+HA5*b}quDCGwpbt26gYqkIFxF^o-`jD*jw8MvB&2wiSiSm+iFyB z_5jkI(Y9>P9XcxuTDGj^eT4v+YziE4R1lOg8rvS4C%snzdK{H>+LK)Xc_;7ip@v88 z7_r%0UXN{!G#+)1=N)*kEQ7(t51u%di7-# zzHsh567-W(@appNj_clZtR2^DYbEJhoMo&-u-_hwTE$8r#Hm&L{$>MFU3uhjBB&I4 zP&$I)@}*kG_f2bm)Bg_EO=( z(^~rpItD0XTQQh~;)S*A%F{?jGAC1}*U?^5;Eo<>t0id&xJu`}%TSPjsMQdVQ%pRQ<}@?KAPW60slvKaqH^ zO5>%1U`!!JMUSO6?=8NX(R_?$vYWB!$}+xiOGqKxw=q&`mu_ySYZR? zL1ENO%1aR^l*03`>_;+U#LIfxbSE=5S9%5SQ;I<{%n&-OUcCSv|ky+Q&N8-kkspY z8{4hz17*;){PDSSF#9O#9FoVRMQAvsi}%ng)JzF(XK`;*rq%YAU=|UdsqS5H& zkVRt11HgEU@Wj>t+-%it^XP3~WYu~e(gvy)|o3Q(a439+CEN{Z|t9X}Rg0Y>PVFOr5t8wf)1 zLXwtcHEiO3rXVoLZ4ZoXDLaCuFoO`V0DtPxwdzK#eq(&L zQka@Rg@^;sBZ100l}mGljqS~)jqR0J_6~NYy3k5_hR73A37`QGN+RkQ6%!GNJV<z!E;^>HFwO4PhZ|&EkXzJ{=a-2-0;4W-*L>Kh@mFa`)>+8EW1uWuF<5U|9 z2|A1qT~^-801O2vVRvDdrG)3a$o(HbDY_rw-@e#&R!)T*$%mSGPMnW+eAc7u1M=0`L=d80;5b-Me%q zXQOyNDHMIXUf`W*gJr`6c)vQePN&nemj?>Nkcb?|LByeegzix3b;r&vt2Vxymc^_m z<{^@x5?0*i@ZjLaOS|g}KyhI-sLak`;2;g&+LG;;iIaMlAi2I3H`*2m0wz&sZ)4f- z#CB-{OOxmo2sDC|D3xZZvsgLHD!2@O}R}IylbI_VG>0)v;V&l8TJf5 z?S3X;;;3FbXc)(`$4WKZD2c1?K5Jsw-rW(v4$`&UWKH)4E^l(WR%%|@#pHtSoh?Va`}?SRsj6O_hsrHWH5Lr@|* zLRwH8P^r3Wx(|2e$7hS74CPY|08(Ee=(I8{0%NLMjqRni*vTtDhX1KJQLn=x9hlGa`s!hTDjwXMTA9lOu>CXMue1zBoS}|*eN({=doir46GzmCmU(G)GnJiCvk^VhY>e6cWiJ8g;_)l z0A}|xvoJucv=mFDg`m2&&{)5*wY=Los8?pEu$V(S_VAMiZ>BOoTH3z3R^MA+d13z$ zen0oPvP%isET+Tl&Am0p*S!D<`3{*{dFTA4_WEjVYsI{L zZRXsZE){?%(-Wi9a+B#nAdn@ci&Nwu(DLiHY&*JE*Ryq+3eoQ$B@Uq|0t4+m>AP|_ znRpa%I#T-7OFJKWY=jVu)D&{oS7$1Dnf+awkC)7qMeTK2E}yy@3H$Gy0S4akb-^Hj zgy6>_FI=rYb*19!ZGakxI+eKrKyqhH34re*d>X(~R08>ki_gEZ8}gWdH}pVdxW|2I zc-O^8DOB#UQLik<8k7a?E050WQ;iYdxyE=uBTEqp!|;2)=X(M8qaXbUB7EQXeIFuz z`?r6)=XnnRd0J#Z*Rro@9V<>i!usm9wZ)fJwC~z5F*|8h%4iATsePK#x;R?S7e^tC zq|s_s>#cgT5mu`kZP{Fj(Xn%-T(OcXmA%54vRwocv;~Cawx7`k7$IS9w%Q3?czzkcI|y`6(b^TyzgO0a^L~6Wiw6eCdzOuf*cFhVqqqFBNCl`^GO3#bP9Xu!psMzV*X}3GGlk-Y6 z3Xz~d4|^a zjk1j0Dg5&KsBgm2k!8!-|Bi3@uE|Hvyz%<$V)$^)poH^;mS9I9L^J{*O2=p?3WM1T z#X|mIb)i<r)SV5Fp55b&KIN#mQ%`xqofNXYf4=27d~`qH)6Z%)rm=BLI{-8qS!Wiv@hai)-S>E_}t zB#23ZS{hJ}&^KtG@+3Z_ecnYwB|uTapLu!X3qLd+b(p0_AR>I5VK)vqt5_H+;rKxX zkpz^Hpu_mW)$OMq%e#sZA_6mvq9B00Ma((G{^i26+~J+Sz4!X83_?Lf%d*msB5aId1_0A-f&hrj z97PcTIF5t&3%xA;%7AeOPwOY+uy;Tp}jm_5f_94=O%Cg)PX|W0w%oPbN&<=o=p@jpMECa|2~?(J?bm5ZLv`CBmvjvPaE;yCaTdq{yeCbC20#blFc!AS6g_()bn)9Z8| z$n*pwVpw6=!7yZ%6w)SIG1ih9ne`-H2LcNm%35ya!p|lexL6Baw%FH5(rP?C7xKjoJ%R4~T zj1x};!!S}rQJf@z4W*h2g}`I*I)Wh(2niEJF~sY()iM--V<(yu5CTpBB+kk;eM+{@RW0)xGw9tujBWiaA6;mC-^4H8|6ixsj2s zwSR4IbM2*HE=>zk>@0b{2)>Rq=CB*25VqUnqcZjRd9zc5-MIjkHz-zy>?{pd%v)_t=!{P~~%`IN{=nyy{D1|mQAb3ccO-|-#a@iw6=*)a}* z<0z~oA&G^@1EJkzf!=N!K9;+IxH6*a+f4dJGZpSnsNo9e8$7 zE(x%-L#{Rs4KC`f!|0{HwYhpNA;-^^{bD&kQgI3u)D{8>Do~0U1r-Aj5I-E#f9_%_ z%|`plC!Y>mEp6MMdGW=DqyNft|AYYl$_M@=B;1|m?(_%0+->l)Pkx|w5ayit$G`8d zjzCMBHj@Ag5*gBU(f{h#eo2x<5GT()VYRkudt0@7RBzN7s{rEXbABQ4@~)H5fdb4b za|VKK=!-k`zd_XKIytA58)1>e$Pv=gskIxe-D;N!yuBQwt!yt}8t-vhf)W5?3bPzn z4;xBw4EApbr#FQ{l5}c&N|KSvD59LYxPXXM*Y-N0nm%_~S-J3T?H3RvcD47@KlOvn zIQgpo?XPMKf95BC&~hvg^QNT11W6P%EFF=x8(54eZVm)$mk1OOB`0I)BF?Cg2E#WpAcQiAYcf~b=5Q;8BlLt49f;>w5eh0^*PFRU#e z4F%SDAzxLVu#oCRPokOFQSMu$8Vfq3phf_n+Q;t^#`f)@Aq-L!)Gc^m0 zD2Rhs05LYE`_e%PzvWxMIyU8R`L=&406+Nsf54)hANcD(p2V(@BO;pM4}SDdw5+lH zHXumBRgURwEL;bWb8|D6YBW^oT2cYvi+b0Ow!iOVf0J2AjJDd}@=agG$>=wI$G_}E zZs2Tx-}ink^ZrNv$nQ&l{_)TJw6-w@m4Hf6yVK`p3dQ=$^;&Ja_S)juWO;OM3ey8R zZtdSioJO|yHcWjdfu(CE^cn`wA@)8DCZf+VCp#UNQ4ESNQ0HwSc z0SyQQIZp*%VX9I9;a1eCHtUUMtKJG5wWPLOTOt6RD~{$$V_vb0r3xt<&_S?`(gbv0 zBG_U4?V)qaJF6jLLf2&?^wQ73=u>uq1yr2*q zA}#qmDgp(4i#kbT@63&4fYXAYH8`c**hr4KoJiDYbyt5FcsI9Oo4c(IwGCuDUQil4 zj97}}7!(K{Knu|_knyr4!#;>8s{y;6>K(I4_fQTJN-*yO4UcIg6aSS&cDMJ)FMG3> z80|avY=XUg0Hd(&xj_P*BoQMjL6EFl7C9wK;S-yP2s@VE2s}ga8%0Zy59dk7pkd=$ z*Nd^ZL^iAx50qmRlYkgF0K_f9M1t2x@=2mSaN1hAgo@$83snYjvvdX~td!2@=AJlH zsI0yIe0^uFbMV^Kxf#1$LQQ~@jcv%n!i8C#_cxa}+UwW3aZs4Kz=iRUh=KT4I6Du% zs}vE?_{bP0y~@eKw^8@)v=|8CNV}O;IpViA|M+q5fcfBXph7Z z3_uW+ixhz}Nlyce(KwOGGqZx4WkSMsVnutNs%v}Hl2C(V3`3jQ6+jVAd*}oS$kzEv z@sX0=UfEl{zP+&FTQ4vRD$X0&X`E3JOSP9?} zkiubgXW{DJ+8Y+MN5}l)+#Cg7uc#q)5aXVX5XW+`yx#SgS4M%#Z>`sAjU+dk&lP+X z_<(>YJqoD|F#Ry2{`7Eum2>>S@y)0JNUN39TJ>7JRjakD^+t8WkR{6TikXj;CJgdkkn{b5XXW!qy*JljjygjNMFa^E1k@4IV&|NZBcvrZ&}g*ljn+Z4 z+1@_btnO_s#^`F>&zB~SXe|}X&!ZP#*b(E9fJTvBgx zm=tGcQ27SwO`zTc0tVQmN>wZ<*&{1&f~I1CT4eFqcuV>J?BkzG6Xz+W_d}0`h--@|T4|K#<-tAV-Uti5X0klLT#LSx6)g_HZYgKuXXtNOp04{{4l6*Pq*6 ze`DqP+Gr~*%}${OgBf(v7)*?w4gB5Zwc5enmoNR2Z z0!lD*K1K`)Ss+5vA_mO*_A($mGNz2Op7?G56SKVhYyXDD5Jc#-{_t1+?zR+)xGYXb zh0$;M{LhcjAw)#T=;sM)BPu5CPM@DE7ItpDUaRf3-dG)}HAm(rNh_q@D2dWSIaiIH zn=9plwUzbO{#LtL_ot?FBV(b0gvbcJ>r_t|dyFR5;Em4}Ew{D0c>UV)WG5`ljH5yX zyiE=c5wn*mf#fEF%dXm3+{9LxpoJ=IQ8`54fGzM)4eXxOz(mIwEUwlG^;jvdp+OkF z+pFVn(4hx)V!YMuI-r^x&l#x^n2hHsfCzFwyk2O=;4ebVESPgdl|~06AZNB>hL$I z_`a;QFBM3uRgVHTxG0?GE?`qFwBS?H827ans0e|`B{ zz55oaAMC=0g`6w+K|ZjGIS70t>RmFT6AyXj`~{e1seP6A?dh>m5N@=awN|U%s@JRS z{c5y(eP6UvPS8bKie)s8p}ymeO8=Fgt=_q{S@-W2Hc3 zEKUxQmU^pM>$IC&jjf&L2JN7-om@~jstqfRp6rbxeb8Xh`H@Kj76aX-lTtPiGTGV?Sb$NKFbv=-!)`Fg_X9x@8;5l<)J{YO z5CNHlq+cbkNRgvJ6d(&&1`K3&y!9M`%Zd7VgL~dt&%_e*cr93MY}KiX7@l} zsH>?K6=U?$KJ`vxgPvQ(L!>1$bO)hGf*UJM0e_+hfJ|Tj61YR7OsD>x=BvnQR~&o2 zyb~FYR(Zqd&pH3;IgOV3y(Z%PR+>yt7S7woB`DT^$DlvXRQ)f%-{y}8<~Z}6&}fbAC!b#?NkF(+S9O7)SJzJq}bRD0ha zRXu#Onl@1sb@jV4z(gt4Wuyr6&;N^mk&1d*mi0$J`cW29NRK@7Xp$sE2!IzZT$;x>AcaW`av0aQHy5r(yEh5i zW0R%A+%(z>={Oz5hzM}Kv%R{}+;1^^<>~XKvscg?K~Qt0NwdGzsctt9wj0&m{ey6? zT9ws()aVt0An)f30R;{qVH!?iMh3v%M@X+K_SpDEzfkZC2F698-VCd?R;}Hv?>F~q z2m4EmHd;aMFhxBc6i2MwXquuPGPt0J{qDP{5iq8GrAaoIS0c~;iQoHO0PvN+@Ye+3 zA0AHQSO4elZZsn{%m7X<_xwvQ9z7azqKmeDH!-X;a>p)|TO1#mxyUAj z`hHm5?&1~AgS~1!tkxPrRUz>6UXTxhf~WI&%na7EzaoP^Eu2B^%64tbDHTUVBu=E! zXx9$^HCr3|Tf2MPiwRhkmk)~LezEKq$F!f%Zeu0|OoGHGf^ZgT>=H)4Kbmgzbb<=j zs&&T>+>x<_Y(adJdi>lwdyh>(;l6@;1{fkI(*!s$^{<=;=tP~1p zNS?fO2CbvbMD_plGk-$_e#f_eBY-U+p*C=#lsHZj>K!`-1piE4F~+LpD5=c2AONZX zrXlDC^JSypfNKKCg(Ak%(MCcM0Ep`U<)8kI$bhH#3%~8J5I6vGD(HkMlSkD^rXPEs zYF}P`>64xM?xD4Ry*)BJL9RabWD$~WmCw!=3%Sju^>%eUZ%v#}V}7Hf+{bQrYwh0$PS5({M_8^}Vm4QN3+?FJdfQtpg7WNWysgjd?y?RJtR z#+dG35fK){32Bw^VMBm4fB{H%5u+$F#;^>21q2v(=N~m@VPn#iQ(};X)7IUzG3G?9 z5=9Xr-VtmO91gJr08(>nNouv5uWl_~MQnR{r!sri8p$CY>mpMuMT|68Hn&$djku~X zGkx|6w>$&r8d3m&q;=WPmFEKCikRqNtA6O2x6`ieCVO#vXZHX$EsKMk?-g@aArCnh z0WsSO4#BUzuSFq3Dd%rqxn+BDwZ)fI!p%0 z%y9@oPRWKo)N_2B8=VlM;Dm&I%R=8V${yb}=&FgP0j*}Y6d+7BSuC30QAt~^xp^+c zp6B_#oA-TylOmGLoB`P<9&!OWK91Cagkq!eX|(8%%zKiQ#YDCJR&BRc+iCQWmi>L) zCQkgkmn#KsJ`edEB7%Zc<0RV$g6u9zU0Q@3d;oMy(aLHtLCEQ;a5Yj=Lj2&P8vHWg+jpBX(^ zczNsQD;tYzWct=4w8c3-a+W-kQeXWEvZ8m(YN91_Ja6E zxZP}s^gvZ z@`6j+E>|J~gU5lsVdPfQ3>ZH!d?rqhjFBQ>c3kJ|dD-&n>nk^}zA=4f);UC$2Fgu` z8X^s9>5&Dw`N~|#%ISn8gVmQ2~+OUWyAfgp=aBaD6 zFc>d^1}2CBc=${j5Riw5wVM&Rq%?F zqbvfoMp&yKR(;o&531|3d>ysx6~}Ui4hEx6eiTq+nm$(qJd{e$;>df|wH%i4A|gag zlH?n{;Tw!GAO7%%iHJr0(|_@A1i+Gr0TOft@OyvYhgigr4L~TYfB}I)gV6WBwWi1b;$+S~E#-R)VtKRm*_LkAoJ3557d0wEAc0wj!(0O=&` zVGnnB@68=&IkRrojO}UftIM0rjClX*&Z_)XPfgFvn%kXSCZ@JFyDBRyD>E`O-uvG7 zeaJwl&4O1fOcZp;L7OY3W@Wok*=g2xTYC|gcQx%Amh@BJe%z9B(3U_V30it{FFaVF zzQIM`LB-7aM#j%hfL08(>b}86tyQn@RCmgiouz;bVWm^qQ8!)mGkL?!K!UV@&`7{Z ziuy?L`rA>;iDcZgAAT$&9YAnwOY7))=e)5em4gGq5_vzD8_VhN0BI?;%R9}=PNTY4t+gxlx~4K9 zd%owVy_nMi3G6@^_tid506^SN(;)z(Ff7xsa;a>LwCw90*ISilv%RsmSt@NU1Y{ac z#!Kh@?1+~x8jgoR5OZ1}=v4LuMdUfxNw_jYyIM zV2j8`6adka=ik5WD?3zH98LvlG~kc@n142+!yo>s{{?{G|K0!DH^?XPe?RmW+cqv8 zR6Cb!JJ*mo3;+axMQk{s=13_i00glF6u?3d;{I{~15Inq0G4SgfD21k&Kx^!8kRSG z@>srDzI1kP{qmJdo0&?ZI6FbMama#(fh>`mpGrH{!s2SMvyn}wBhywuHzH8sE$gnU zkd#IxZF_Xuma?|Cbot84M9|4jPM`q9BNDvB%Ef}6QSXF9>x(6n(CI5HbpoT9O-pJJw*mAJ5g%S&t?$|;HH$#=#pA%G8ifKbOA1NyuR%r(eqlBQ}2R0znVd#4{zGb3og{iaBE z$RP;R>R=0y)(Bb2hK|B8JiuGD5F#n*B@iUw|nm6eU%t!f0eS3EH`f0s;+Fj^4`o!meUk9rz}Mj&vJG}^wf z@~P3e6tj-nt@3W8vel^Uw(I4n)vj%p1%{?&`o804Qj|)8Z6G1WsoUWJ8n`zdBoq?B z%y@;2r=g%ZsMhvV)cdkan~ja_<{IsQux#JUyz z%(u~%7a@HWH`EaaHEwR@oMd>f#}XYnA~jETJ7d)qq*K(BLrbNDL+$m_SM4* z+M-r{+jlJ_00P!S{j;ygS1Z>d;ZR{*C6-@Fvf>4qUL{;Xd=7EP(G7Wc1iSSW`EGa| z61AWR1d?MGj!$JqH!nO^-@MQ@S{a)j^CrgzjdWv8cV}jNE|uyUt+e)5_G)|CsS{Rl zx^39Z*l2}!96KYlM2!G?kn0s8DIo!bAU2qR42_up-Ljgp*ss8-$*p$BWi*sV83pND zLun;66EJGDBJH%5+v-@V?X;T!1g)SGNs>BSZ-fB~jsPJasdNL4AX1F&wkgqTV=BT3 z*=)CMK&h3%fKkZ6OcIki!X${*Kmxfql0Ucbv}3#Tle4~4$lv*Tr!cj4cD9X)so>~=nr>x=-e9-_)Rw|5j=PT6T3K3O-3?m7 z$lMfJ@{oA?b*9A#NFdYB)SWZt!uIygC8txZi|JkCM1%57mSz}gx3QF=JoRdJo&UH!HE-54hu40UOTT&Tsv9Oi z-9Oe8_YGFaDuP{<=@U&xtDE`fv8X=zst3|1G6VG)&|DiA&4wxZ{iv)Na)Y7!egS0MHO4Md%=Q zn%}tcl<1T#OOMV>7$aGfc(v0!11oNAmN!<`bw`rvPaMD7nmEDaDKZ&p==fc~X=EVK zq!n_9yN|G=_coi|pryRitk-}PpjOD1W4bBNPdm2np+P`|2#H17kzFW`sbV36P;tG! zZ--xPw%Q$LQ-KkoX*wA!M9+C0DT)cZ0; zbM(}Sz0hHlz=RC-rR67Um7l)!q$2OfzU<%TBExYl1fUzuj-NN?qmvGI$Y==KtV32I zR7;)8PQ8m3R`;T)!>9li6L@JiQ4a%POr&IaAU8bRG{=bx*80GwrPiqI`?NIM9nB`A z5u)kXlAC*l$y{oF@<_h~&8iVyeB!cKI5TzU>$GqqGKQu`H*O(%wNCWqZ~k5e{TsjZ z{b|!MxN&5l^8BrMho^C`Pz?#{nd(LqHCiiAtzA3|&`K4&(YXn7jo1`&U}Qrb>B^Or z-OW-&jyrwApEwp67Neaqa}rHN94tAE1hq8(ub+IY;^={U?zJFfooa{EP4qr|=?NL_ zoc-gUal?`}jS#IUa;g@tXQP^_uwU|FC`bn?ALwjbnPGrTD1-tmJ7UF?RSR_w=Vq@h zCu%a?W+~f}+ae4JI6?wxMqmdD0SzD^gMaate_j|oe9O?tj9LRTQlrwG8<{s*+YoV3 zD_?qIcjYpOPCD<8OplXi0w&U_41k?dZTXqY+Df~3-cvVSg~WKY*#%Qh!3Z8YO`Z;x^);yF;5tK6F-hpW)@uhDq|sp%iriEdjyAs6AdZCAAS0 zLLg8vM8E_?O@RcqLvYu(gY~T-;B=&21_J>B6EECXh>5lws=DcC4k!s*Q3DeJ#uN)l zV5ax8>5L;GhxK}GpJ`oh?e4U9E^ad!mXk^sy=>7)kM_Kx(F8J7-2D!-#HpuLKs{9i zL=Aihq-Ksog5mvSW)ec60m7?`JOZ#`13;bf8bC`60Ba)GBwJ_-WExnv!3ToKOd(?% zJwOPJGypUyUBBI^bqrSk18dN==I+XRZLg!y$xfds9=nT7KLV-AV5I&LKt3$) zeyz!3999v>!a+m?0>MVX#&|A0b}9`@ciOE3LQA8(-D*~XW}~)V5*XT!<)vLGog&{u z(|~IsEt-M)vp{4-LXZe{HdV-_fOV+b`}F1g6m_e$+Gwpe)(KfSUdBBzxDc5lm_7*; z+0@iSS`Lj|w}p>iqyjLFpc>^Z!5uf12Z(ZRn~{(SLT)!UZ3D`ws3lnVZYDC6Rsj0o zqd2@lKz>$}<^=0tW~8eu{D$qNCC6x?;C)U@e%4{dS_QSeX15R5y4`rER%ta$CBn!+ z?fZ_CcCAbbd>;{kIL2EJd5$n>1R_Ko>m3U)2<&{im`^k7P_=7~W^KP4cN!HGk>xvx z$rgs123@JJf^=>S(Pk9Mb@J?|QrsUKarhuIyucw!!lEIdSB5*#U{J?6C^<+<3zVKW zbMJg=bnVh()!p@W<-*jl18zpL9s&@Pf!X8JcFJ41vesI;K<%bCcLzFloY_RCfuWEU zSuIT^eX_&ej(*71N@`?uI>O%870FHw3Jgkjm_aat+2+w5$dN!yGJ;?#5{lbeE4GkH zD`sR=SnP;2GW8KUL!lXQq#%kUflI^~$H^VRfJ}sdDvFR19NZ0Zl`>4Y^G>Vj9{Nz4-96;&*d}QNNF&0d z3&2p{Y7D($8h32o6e8Cw*PK4iwpHF(4WGI^Gdp39=a8^3@sHR1MH&&92@#Mptif0yTtZ{$5dBjQQIfC(ljA^qwWchB5omvDyRKnh(ibrTP{8VC zp;&b@%3zE#Ql3H^SubscD_fn35pTR`nz9aDMNq&Rk%qQmxAn;5Pj7YD)tu5`02&BM zmqsAwR|@r4Ugszy5paTX4Bl;#0SH(K6bB{-1GDFRdO*Z+)k zAAYuI+8!VQ2u6z4!!*)0YBv#vV-lrQa;y{htnXr@Ig(a8r`Y6rk%>`l5rvV;5LPp^ z;Bb_pri-T-Ophu;lhfKJ?qqp0K*Q8~$du(Z3)XCHh}PYqPRUjcL>silz=(v1N~z&o zQB0UQwDX6e6eT%A9WV#`PVM zC_ksk2~aW+;I&J4t~Fmgv}S@=D4_niwII$cx+&MmdLwfT9d6d5{rvQHeQ&$oY}K1> z-fAk)uJ3p$$Itji%0ud3FBD$|I4qEYvBiZDu9BLHt5PCRUfM;{z-`n3jJh2L zjj}aXY{{r8Rmh>%qNhoP*8pdp+x`qJ4A=V&$0~hJi+}`aF>-z`GnVC$bqA`YR(Y#c zE!E4Vy=qXZHh8TH0^F4A`Hr7)h3_Kbpl(>tsgH0_0w8`8(r~Suo6j*T9R^{&VP;Z5 z*Q)`jR%!^+EsSbmXaGWtZ7W|czB;cgcc3HWN>PL;l#piLoJptmy0y5g=l5l=nn7-Q z91VoSlqY92f6TVl7nT~k%Pp;@PCRIvDXoQK0VEJnfe6rPgjiGD#_0~HYB1J8A_4+v zg9glL8U^`jH{dV=2tyr7&l{PW%jRpB&+e?8U%9fKk5qPc91#;i z=j_)(T_T;EJR?HcqNzg)20HkAI6p#uiWdG5pcS4nozyTD4#Qj$s z^*1T~8g4fkit(Xm1^^}UZo(O4W;8P~ zih=>JuAb(IqjGI`d81X20!od}-W)R5Va(C5F$xxA8ARs_CC_$Arc5c zgaPGl1io6vztn|RL|96vjN<$>rCq=TT0u|@465DPxV+k^bfi<5I`t|mKOK>) zPy#?G-Mt8Y=qLZQ&Lel+`)bAb$k{6aq8136Oi-`8V;+J3@$92M?R@{&eOwCL$iR5D zzK=$r_;m(NI-uav(uMItQ2&NdqLB0*tJ0Pri_wvf#R@o{}>bd!bw0S`O>!mCseEvO_wPbB- zCEAVp%95y-3R$->KTVbabb||;dEoY^Nh>HV?{2QQS};;Gj#p^1MumvH!{Ic>!`^Lr z{Q$;tt#`O1MRR(TW=EBP3UY+VFQd}0q2AVN@iE- zP(z2kNTH<#an-^V56>6rvdgPVj|7!9q>gKa8fCgsF<56|%cANQu1S&xmQ%Xb*4T-> zK=}@Vp_IIe7y~i_Lo+fUlCn_~(ZL>SW?=5`Gi&6CAk^*3_T{I_n-`^S_qMC3&D_ZG?6G^uD{A2?G`OF@VorGce3VM}4FhOq#-S870EP&N za!__j_^FIv%;=8h02<|R-=Sr{uBKY+RO>C?tZQ6x_g(osKjS6_7d^*&7|2ZH)ljIA zmgidDNWKWn&6cXxo7H-w)@)ZAjp|0UVrtyC!}l`UwR(#W#Y%t(o?{_Ut>Cx5Ch?;p=AeECl6kk`im=%LSMqXIGa&rEpCf5WZ3v(kgdwWZdRo1t% z$7e7RRw2xdkJPqyn!B6M=$Pr65rHClC1iq-B18r<+)QTvWM_48duOxSzBF@e#!P$H zj8zi;YFvlX%XE+?g2G(ZH(_yUl|v0OBv1_~1mq|%Zr_KV&8>t%%J>pW1%luDm2qvDn^e_I*)U>nxIS!_bzQU-^j2&9_+J zkrFVD2lJ8f6LB+W)*AarOQjJ8QH-=We#Xlbz03$@i)6S!hDKX>IY61zeLeEbHs|#XQ`0t3klX z+R!2BW_#uQ=HioKR5vW{lIER}bidZ?@L`EKSl`}S-ReXpJK2e2_j;rAC~VcYm^gx_ z{30dVku@SGNDJ#oHEQ+RZoRzKC~rd85*!kQ0=1uVJm0mlDM$^ZsEX2`>uPsZ(a3zE|pSBF(?3h4z=&Es3?Ua5jHk2eWbSb_}pC4oGgIAUi=*D zl_xH?+phm9AN#p~^s{YY{r>0wmw9Drr2sKG8ZTY$^Tt$uWK9RphzgZPh!`}p3M!?2 zXUWRGBR;7XL5Db$#D2f$tvb#>hui7;}$V2c$u3*uK26v)R7m;ZG9jnGQKa z5I-a0(67ERqLMWY!Hpx>;Wz8V{K{aSyx^q&WVjPLWYykVdV2TD;}TohqMx0QjaCkw zFdcDad1H6Aq`)6N@v3s`i!i&er0WSeV0b3-Rb#;G(sU?0Gj(tsUHVnso)yV+h{vUM;qH+f(c zN*bANW=6;ijKCCBgXM+IO3Q8HR71{{XsS&aK)U&Pl28 zeK+HeWSE(ot*BOSR9p4>_U`KT=K3YYmXj%XnSz}iPq`^XIlu-Hf=LL$03?Wj4rhmS zpVy8i?B)5XG(2HIHU4^J0+v({0SS}SUEtRY7ah2it-$IY2=vmP=O1)q&l~V*0l>jY$)E-agNAyg=A_5b&1sRx{F#LNM4E_%kw11{+H==0KfbfQ*Jxgzn4gjv7ihpsL|}Gi+%@IW;_lMIGwI1Y zlom`vKqwIaL@azCt5oz<5dmW`+g2EZkx{Q>44Fa*3{}_+8j*-R&(V>>7j!C$HnngcEq&2)d0q+k%ADB(ze0?_?1|i4Fb>!l+(}eCOH4Iie}+9qH?2ygF~

                      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 z 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%0DBzm5j4^uB3jGx@>VxWaWOu6 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"lpR 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

                      8Raqo|;C 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 -kn>Dzm(@&)lS1F=?Qui#zRB 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�-e2FyO*AWAs5RC00;xSrd@5+D^2osJh3ppbj2O^FB@NF6a%{?{M*`>|V|Dlu)N zha&QzcmD8*5C9dk6JLEu*LSXawwt@kfJHJVrEC_v&o#*7qv$M7(@ql@d`P0eo#KZy_U=$Ii{oHehnp zA2}@TM#CY=6))x%Rv?*2im-~gXwCL~jm!$cAO>JQpV#m{;0@*8Yqej;cDu#ySu7d` zAUf+a0%XV`Tc<9+Cstmot-si>Z|+^&$u!!T!9vbP&Y_YrY_@eimekw;NdKHt&Pr zjE?>Tj5-1s(01uUytX%Pyy8{s&U_JcFzNeI$IWI`z3sc>iO;gPw>MWPISGn_S}bN? z+3RlA`kCb<1FD&?N11kKdTp2zG6={~s*pkzI}%~i0I}@yLssp&PmX{Ga*~pWfM@Ec z03HRg5TY3&_QDjklZi;Hv6FWPDiSlnk4`=EeUcH6y8WG34y@%353PtQtmYG?9BRQc zi6|m>^H|`s{wBg86K}Y;zh7xj(6JLsrKPL!(h^dHL3yZ;aE}m^5k!3L3$=4f?yS_S zoL73^k(tRT2%v~8J1T(ax)9Z8W&sdHP;6Tbdt*UH;WHS_}ZPS4nUlBfn!Fcb)vlbSmn89eWz9~q>;i+!OA9bxpcib>TT_muRJ+{ zxHY%-`%nMQ{K|YplnRrcC;U~;ag{d#A45Q9chJ|y#1ly%WKWtmZ+4okbT*T}uttso zkkDC$C0ql9XyolfSwv!-ZY#Fo__bFm8dh#=a6XaEf=p26xx zM0fXI&de>Min5SFIFD1#+pB4K@0J&cC_o0#fJV|f6nmk(9|%F5TnKHN-jOxtkf#|)veFe8`a|4Bgwf7h!F!?klrFF3X>RQAK2~g-KcM0 z<6)g(l*=Zv^UIh_phZV&(*)DxvjCz90E^e@cbeT!s|zk8SVWm@aWPq1r2HIVRLJqr z5}ajKBLao8N+R;PW9Mp!l*CF)SGMY#`@8##LUv1r-|>{a&G zE?v~tb15U6bZ&2ddDLMZ7ts5U`O&N zk&`fJnGG9+83E76!4ObMww&qp_j{F_sg)?94MboV#P4Zm?fM!5C%cxpJ&f%2v_U1Pc z?Zgr!Boh}Pb|*U|%VPFnGKN?Zg&1B%cNLLRts$VVq$T1i#rd-e6sUOl~7Ks-vGAf^|~_12B%_VrSE#Yx6}ZN2x&&;Q8Ne|ULm zRh^YhJHPGUG>!^_@Nj6cNk!u_a%(qk_WS)pshD0}MjasPcxIxC?nFxorv?EaVS6-& z7q4v&UHg_AT;kHwl|(j+IvQZ?O6!O`bRMJN+NV9t%zCQP= zKX0#N3$wY34fCkA`QrZO^V)PBhssMutC&ZHpk`<=LLe+6Ja8M^wNA5#>>Oln5*OcT zR6KwV?sOl%LGA7=ju1r&d{M^2BX{rS{`U3ppef`gGl~3MUZ-QILKG!TkWc+zr8npw zLMYwI1P$08M$-BDbZIeGTtIY?ECC8?`p>KIXBsO3WqOV0|DavFR$R`fmWzl}?{Z(_ zH#Y{=h7pW1I4thAj1UMUlQWNqGokpeI1LT>z895j=Z-`HGb;V=5#4ZhLQ|QC%l+ zon$0m&PMYYBnCXz6+?XEIEHg?WJ&=sAg({G9HJ;=w(MlFwD@qMyo#s=wLxW&07%Xk zCFkvdnw!8I*Kh7T`x~pvX=kwn>d5>~@Yr48!)Rl7dvCP-&abwzD+a@?SpWwj-&?Jy zkKk%u`*ky&nEE@~ zaP5gp6tjVj6kmL7Z&e#Rjdbx+;qfmXI+1}I-`u$o)s_N0;-#FIdcMwR$%!^QxFbr? zbK>3zH(ruMlIgz6&K1n6$P5{F(e{jm2irem$HrS_O*?@^=Gnxg^N#;iW;yO@Wh%j zH2#0XD|ExD;%pR!kqyYWU)?-FQM_J7%OsPH=E{qh34MG|*h+{n@L=57+wa!9z!qXO zo+@ODOIB$fBPm43pfe*id%n^;t?mzs?Ck2*#{N!Yx1K6wAZ7)K1cA4_l5cf3$G&zV zNzcdutNxLPt|;^uim`f)>dkJeSS%*A5>G_l1T<0r3|ONH8T5v(Ygx(x1@5?VV|VRJ z76Z|faNA?@zCpNiN6rxfYAh@iYBzUxHlFk06;T?Er@>7pto&S=av9W!D1dmcY^6Jq z>8B6&xLs+~_ZsLaCtg}xx?<0*kxnp0jG$n!DW0cJ&)b961e6_#k&ru{*dPeEOA~+{ zjR+1rZ)}4h&}OF8@!os37Em6UsMQ2BL~k$RPJ9@npn%*1apO!|BxZ(SRziF;r*$KW zGUe>zL!)uHfx*FcnpC-AUwYFDCNy6gbAV) zArUP+84Z(K?OwkzL4R>|HBv4dS>DN+bpgO2BF6aIvH)*W8!P}oY;b?CwY4`fm~o;x zE0(%+qu#TOop>btd#7ya(8#!+@Ie-O}OMs97RzWvImTL*Mw=~!XDU}fT{PNl9{0>5?X4Lg;3d%t7A zfk-Ade>qiLRPi*TVpIYuNJ5<7Tz76tTxCZ4*FV+Ue7aapCNC|ZLLg*OEY8mEV5=g& z#I+ss**tXlN;+RKsJ9!#7dG3uO!~>SbOeSZ0&jfXg&_7O&bR;h|9R-yF?;gE|M0J* zHTSj-_WY0LOHS&-BI-~D>@2rX29TqHSE0zM_*_5)#1pSK?DvL)-cVbZFXruZ0*L`t zkRc1c@J`y2p|5brt~txG8;lIMYqe@~!nTzt6y~p{=2sEz07YTY=e&{g_JD&b+H2qV zy`RWuF!RV7YP{WuZ<@X9FYV?pd_ivc(ZHwZv#b#n=tcOZnfxa|`9E*O-JG$0<{SU} zHRG_6yUk7aw73_MH?vj(#`{};@+;!CmLI>QGch2XjzNs$N_}I!hRM0i>eY^8O@I)B zL=4{nOF=p3o87IQT2IWp!?*tc+eVyGd-CGbjz2UGEnHr+@)^V_-H@imhZM3O8Gr=X z#Q+!tiBKD+*Xu3LZJUR@3b$e<=rvC_qrd}*}tLS^H{+Frlex>i^yCCXV; zc$DWNQGhH~F1h;9h3%Ku8{03qK&311LLK)-1JEh0cX{n91^13xATR zEEceUMKmmou)#JMFN}k1Nnm8lBv~?&F$mchIbpyS85YrC3nlxd$?4|K-Ia4VVecQ^ zd%Dl64mZ!to4K#Psi|9CeJb|Z;Sb;UJ!(tDr>p$2!Mwszqun@YsWF&td3EWMwYWiI zR?&-@8RtcmIX=f=6o_P)b`XrCt=dD|9ZiFQ18)qdkr@!;BF0lm6ET8dNHSJETO*h# zJE3nGkVV4^5gv!ZaLT}pfHO2WLS*2m1esu8T|pqA2Br zBP7Q3NMz8VI=s8-x(PesB1AZ|A^`cl(e74#Fg3I+r1Fc6!St2uFIkoa@sjgoKyLkw zXh{!;)BU>#lVO-EUo2kv5}H{bEFkd|8j*1XH$TxnM;(e^7)Do2Hz)ShwBNk;mU9d|M569v$Fl)|K%UanB=IAp49KY{Yx;dU%0*|a*2n(9;&f- z@8cV(WU_o=9R&gMLkc1%gKj*>|KzF9eujuorMrXXezP|SS*A*>FXfgmBgIt|dW0s@ zT*YOM?;_5!4K<*xdWYZsKSQs!^p&e*AZvAIzGcv;0>1U_kCOSTOD}()7O9X-cvdI` zPrw)g51|=)fB1j=(`HD2>7VV)Xjp8Gfxg9;_GAswrH^=tWJwYBxpU{LSh+|89Ug_Q*~1;oS^ z0+Du>FRvfoyw^Fr0sp)i=~nIbfPoDi;l1a%uZjH)PJ`>?)yd(z$!JWeId ze6=D0SWRw_L1*$nQ6Zj%WiGF-Zr;9A zTv`&22?*yR7SlV4xVXKW4AUOOLEF)dZ9B`iz_RoQYngPo-j&@fvSDKqC&@`Q!5=6|jTArAJS+BHMC@hpFnPEyf&^`RYM#}|I=+LoEp$_6|ZY*iW<)g;)zwKE+A$--*o`fmg)qfsiP6B~NX92YU3GRKCDjQohl zB7|nBn8&KU+upm~Zyf-7hHDfT3T`on0szl2<^fqT_~G!N(cEh(Fhk)MmoDd5E~1rU zwDhSY^jYaf#JSeRlR$7NRM6l5uyNy8Gg(o5=^~0~cWnU6W(PjLJJOI&BvPIqE-x>Y z7gj=&2c7ZzTkT9b`IU{l4PyfS^m35>sr66&?tfo{@z;L#4<-zQK$`{#RDuHnE!23h z^TGbzck>0KbYTGv0(ywVmgd1>g8|aj5(<2@B+K(7s-i&1!@YWKzpcRsqt(5}AQ)@aB4Th69UU@a+`@jF%D=Skk z<@pf5GHTR-019Zwwg1?S_lF7hz4zWrCv9f_Y~=Wb8nxd0#cuO%X*Hi-DI)?11ZL2n z2h&^c-ww#kZCsrui&J47ul{pwn9r!2#?UGmjCNmDErK|0I;=q|c0kj()xUdZPa8!mx#**1C6gD{*NNcSAWzjnh&Z)eauW8z zz5U%gZ)T=m>Ef$~NGO(b2IL&iho`9qAcbfumPA%&<$9`EY2SILceu5GV{7s1nn>D5 z^Bo~D2-jG;w%Yu7yWia2|Bx16`kFLSD6F^`7&#g}7sHAXkk4ZcMpYDl+O6Gh^lI%$ z9y_)yR*S|$83~X$9$dgM<14Rw2aVQ23qq+eSzfxBTE2{loCf?A9BY**HCbE*;VLu~Qq22@Q<#S+b9|0~4{i5lVK_-f z^1Z;(24HmTeMBU&IPgyuvW>0%PHm^Ube+IvzzEFz%q#<&u{yDQp*vw<8JHz;K2wEZ zG@iJV2|A_{;lN~1KuAX~EI?ZUWkX?^=6Et03jx5Nk-rL(0(zjkc&*hwXzVsp`7|bN zh`%@2t}d7AJB?}mz;M$(2?m-sQ$>N(8(JUUtT88?WOm}~a;3VuvK*4V*V8xdZf6qK zt5;TSh?pv$N+{L!tbgQp{#iiy-~Qt7&srX{2Eh3J6KI4G!v5Zy|F1XPU%9ek7gDoQ zc#0VjDXzS0-Crp#B#P@LBmjJ9C9`{Lr_u5^ zzVZ)IYB_RKdCpw8Cv^|QgU~-_s{C;5sS+Q9ME$|!>g6jY@Q3fejgJ1Yzw{p-+Tp}x zI7Ve+{?tGJ!{HFFy#9uVc>C6kbkbqw&&te72{ozTesi$^RJ=d}Pbba3FSXzyd$(jzQH{MPe{_<GE2xX!&0A?uXxM-hPXMuB9iEL*x@@JUlBH;RSH7$%wR?9@4?WNijzv6MpCm$(0y*AB0cd6g zlU8@m%tUt3>alt_O(gPM&!-twr@l{WN}!*gMrZ|CQFc}uZ8JD@y~tDL z)Dy;Q%LLF*Cic_0_sf}gs;M^@f9;a~wd?OJq~EC~Tlu`sWPHTW-mzXIYI2HeSB05u zH-|xQ7}sNgfC#F~Rl#c9tT~})Xr4C`F-*H_3kflmL$S&L9RJG*_&PM}OB)5&bL)#+?pylB`aGe3_?Fr7*b%mhhH z1gW)!rHe~4Xz#rL%e~FF(d$bNG2-l>e5?l2AZ8*R0Oa{v^oc_w>+i{LHADlAOy<(- zh4t5bw)Z~1=hqrXv)=IpM-p?F*B34=TE?`q`{B-a{-3aZn?g^3Mh1j)NF6jY29P1X zoCnRIhy&6S-Q8|}^h=xH{=dhyk4(!et(BI)^0K*976u^!0H5}+2zk8Q*n9JX*1fv# z*{SNwYhV3`v)6w!rk6A&6iUWZ(t>#We)NeqcZ~V)dO~nyONGQFQ6$T&*O1NDUV~X5 z2L++P@!E0$NGlbj60S*Ne}7Nw&}471oL6A%)w>}Z8VLar@wvYLSn4q%n}IQ!1QXA5 zj7icMAZTO_XN0%_K#?I*%gdL)ssppJxyPELQ}Wa~45$IYuuP8L9Ba_X3I>}y2e zTs*~Cbw)92IEl$)puiGdWMu#)AqmqK(K zdrb~!dZ7trF_*}?#;~gz2U3R!8X0Kb`t`|x0O&k!AP4|E@B~2d>dRDK4jF)TOu{0Z zX{{Pf>L1>mHhW3O4VBI;mPIjpv@bzs(DCysG!GkLyN{l)iNG|icCUYF<3c)>L`25> zc-*@ckK(Arm^BfLokZPoX5BICTZgsH_okzM`N|unl~QQyxfK3)1N2B)z!zA!mH~Y* zB|&!W6@j9D_wDVwhl>nOC69#1DH@H4PC2)lPIou=I_<+dANF%g-QtB;Oksx*J2^aF zZX*6IbF_U61&5#mHR;s1Z+8#x8a%e7E-vP+#VQFzV!)F@4d4;Kxz=nQbi-+gU}eio zxs~gbDQQXsC>bB|SDpJ?eUhtYq>yXp7P7^aUj0t*pp{uFApxOA@@-q@GIpyIc*DLT zt5&O(std^k6;gICo9uK)wf11K-~ju?3Z4&IYdkg$n0Wl#e%FtNZ2y%%|3gVby7FO8 z(yW0(VY$_f%BWr6`9N;%=hqfcJaiI{oP&W$4M+8@opEoF%4UjdE9ly@O)Q9bj{1K5 z9%kq${liXUzpg_{WLB1!uN(O#madNm0L{s-bG&%aKtfoV(sF0>oqn^MD`pTMGTab| zAe&Fu_qwXJZ&1F#Z_8q?I1m+Xp*`=u10Yu3UIc=9ZLn6&NvB<&jEXagd;;4oOdV*zE1y zY98E02v~A)v6v|r&?JmCW8xq`qRWTu)tl}8#>C?glBv>4aru&wDTA;y)06ixGXT#= z(I=#TV(N+RZry(K7o{=Tc=aMV22k{ew>>}g&bvEGC!ADa?CDG{d+G8;E!_Pfd~|a& zY0EENTXS$KIRM6IZ(w3XggCp|^Xz}@cl@|!`M>_PA52>aYD&PfPkd~iqoaEa4p@!% z-~ZJ~`_{@@-d?PLIH7P4gz@-c1>RwOe`|*UiYtrh#VU$eeeUssU~zY{YIkaT&Ec4Y zlP|4ZOIO#COa(@K4nKYr&mE@c_<}G$XU|w(Pi+uX5CyQn~;Kc2__2EGHfkCzdWaKi13l}#c2hVt5a>~-wsX6?e@nvHAXTj9orN-45>E`VxCsqe=~1KI zI%s>Nkig6om-0)OF}Dc94bWgDz!QElkBSfHL+JUyc$yPJsY-6?Qh)Eg;eI`JVG$Vt z86h-J{2{bup2@Oz>p%jaP{@=Z|?1F?QK+wL;`T;F)?r658K6U}s_NT5|O&8YzXAVubl-VvZNRXMvFrM7Fft?be3vVXBfv z@vxl^lVfI*cDu2k^GD>k0K|aLx$3zje)0!?sII&}{_{VT4B=;f`@faMD8m>#Ioj`k z@ZNOnz5ME{yn5-QBNe*D6Ry zNfRVYFI5}eTVAW~q*F3e3R%n(8J`+h0voKn@i3c^0(=BK&UW$aPG-_-4_cjat`JNn z!|9~Bv>-A`06vq|Le1i^J{}A}hhRwQhmg!BFKlcO5QBbZUdk*aD>~9;L4b!wEeNbh zNO!Tg>N>ldd$n8N2uH2#)i#m z-P~>lqhWq^krFo03AI+?TDfcMX021-uC+Jc^g9RTjaNiw5sZXp%|PdB`5|lIka)_I zPH*Q{bN3d)R1oJE3fYA`S_Wd&Q%?X#VaBmJH-ybrd%r#&DIZ<8uvT2TV&|$rmIewz z#3O|@AQCe_U9;ajGyPn{COUHxh2<-Q-COO$X0lqsgb9EI8fdb-lxcJuL7+^j!w~oO zcCMr|HU=xDLapQNH+swY1&Ktg5#d=GDzTEIF`0xDKeVN1-~@p+0M0D)8Z_WcO);vD z0)+skl`K>@>U$%9II(jsFagGCROC?WZvSw5cQTn~3c14C>ZwdH&5qu)u6GfuY8njo znvGf~L^reWT5=o8XUOQh9?p3HKF8+^$Pd$3WHMxVl{Y`?wz|nu z1_@)wZbA()2$4Be&bCL*eq%4QltQvYMj(V|1p-+iR4ocnb**4vphpU|!6%cFnWPIE zT-#=?i3rYvZQBXQPN&?@$eDijJB*Fd(ax{G)NIz9d#y|%iz!W0e=m^{u*U z)?_k^QUcR_Y5O!1b_gt32h)*K(_|t8crwEk-PWu_-Q3+HDeP2oZ)-c1O{JEq5I23D zkR-UYMs;?2(++`ix)4Vi273ERp7Z~>gE2;y9?{lN~UKQv(w&2LPW;cM$TEY zH`@1hTL(7=lhM-E*G;#i$W$Qaf<>P=W@{tJ0H~2;)dL+RRWPD7@zLfNI8@#=@W&Hx z>ig5c^8`j5V1a^=5J3nWJZkg zMhsD~OOGnWJWD`xGNT;dKnlSGA?(un1;c9Gez)5?><#W!S4wWB5cRjj7eY)fV*qSNXQrxYJ+68nA$lQjfUDu<_7(KyWK1n3R%}J<+IIB_n_HZEhi=T z1nN1L^T`x{+wcB&La=^~osy8!F$A-ZCr)?*(6bMUe#In!WwKB@+&8DAsg+G2&UR|) z{@y`jZ=V2{*H*1^5#{+Z#HR!(<3NQq_V(+I{T3@Dm0c;VUKiPAEuG+~(Mvy^D9rOJ z`W#^kPB9i=>ynL`=`C5olBtKEBVb#@Q)SJwy; zfRDUrs-;n*J?MAEpl@W&0AbEl`BchW43c#?9%=$7okGGm>WHJ1D4pc_!CGapRy))L z`PF3<4_QYT9NRWEdV#jxlozV2SFW0-8Rc+iUi!I!xBsUS0s+wDx*8Zj zgJv4+)arW;5}BpTZ&>9EN;ry)`3doe&R2~1A}4WF!a$BQ`f;ukfr%9{lh%wOumV;L z8bGu1VLF9i9Qs~39r@l=d6Uqa1l}|ZJOv7vF$!)-#{?>jlSh2^k4g~VjX)5eTahy! zNYk>cgmfL#N|<)ia8qD8=-L1h!2l$n$P$z^5(AwxNaD|ST;F+edd&IfI%@$+veJ6g zy7ysc`vbwFY$2IjT_nehT6H-tcL3@TM*EG!-5Q1hAEebY7p}9+gdhcn#0ofI_IT7C z)pnXYcbLZ-!~8-aS1q7pL~rl3!Mp}m9JagNgJyr|hiJQ*#lq4hr?`Yu*xfzVOl-Wn3m;M9o&H)9-(T98}TN8Tk zqq~-Ayz%n71HJ_B**I6oj1SQBtbg=hI%20}Y{B6aLE#y9(X-Vv1T^(f^>^-k=Wpk$ zZehKObkvWoCe!xjZok_zlkURCnn=1af$BWOM0pOneVIrjf!}U7ciWRGV4_%Adnr*~ z0dh3R$lmANVHnL7$F&rkv+C#gg09pEe6~g%`DIO7_x9iUe=7@aYGd)-=p$x@)$i_g z8^NV7|2>pj^T~OV>UX>ccqmgvc)#zj{>0GKf8wA1LnXs1gGdB)Y9N!KM}0bEtu=gi z!CHXEpu796|0A5#manc^#S9QI>qz;-ueI*oJLF6ywQ_MJ?SRCIc@J?eTm1ZxtZaWW z+`EhY+O;oVBU6AlpBJk_9^T$+w_4?mmBd0B=#(lc9yxSr7`MG!x7yOJc0y-q{mR0^ zA`-(V3b}gujeB=KzWwpm@@h4)SVVlBm=^*N5OaE^B#=-r<$T;vOq3`?CN#KpcV2Yp!7$GFk#0o(Z z-@k1ehP0%VhO|vX8qzW}Yd!|(2iHogs6eYZ>Vwz%=osK*9N&YQwFWO3PJ)ge5|Cgv z6k-TMkTfjEa#GTEO($tN3ByiF+d&cl0uYYHu!s==#ZicKUik$PpEgg!fC>!_f&>*e zzLZU84(`0$Znb;;JJq$SQ_P|uoR!;_kX$NW$R;}5dxLhjx%Hkm9h9$s)j%^CbcX%* zXwV+@nrb?dJP|Z47PE=P3MDKg1UlE5o4xL!eb65EM#PqzUcTQUQ(Q)oR2V6Y%}sVc zkGdxcg|JfP)oYDg-|pK;`)!XbniLdD7|} zZfaFb`M&62Lh#?%Jc@FB&WJ|)m^`i@l`TQ~+kpd8oOjMRHZQtzF_Zmyt6iGzFqk2>^FZY_$ zepgI}B54L7X491ODCK#a>Em@our@)3lVLXLqNGRUu!2^**=lBs1-DuPf|E?h8P`sa z4|etmT;JEpbh@&*g!svyaL9w5Y3JbJ=6C#Yvs6lCHx@}E(Bmrjd~{J`|KRSyXb@xy zE2YbC2&dqq#Yl6{^+y0X+OP0&Q+X8W`p6UZhtq@2-r=q{9VqSVs1pg0QALVD`oRrp zNYgT@?(R%_1Iw@{K2Jmfn_Id5u?7fGmQHid8L!SL2whdb{qUt6*ZiDOC_F*DLh*Q}5Z-u>8D>9t?? zj|MUeK#b3>co`u?2n^h1?+5<-e^+Y!Z~mEodnL5bYcasjshw&ZYycSAM>W`a_m_jt z-Ieu{wNL^XJ2gRPr`FnQS;a-YcyVM{^K18oxw156VMfB^*_i(Dbj^rN1VWr%@K zk$T2+ekV;cVHynXk$N36Fa$nKJ@)*-^TP)bOfdDPesAQrbYC(GjY0z{5`qlFPTEdN zTCU}|rtKO|QrZawas2*?qeha*`iGD;^HHvQmY%DR=V1n9oavh*GRhaO6jD~}&O5_e zXVB|a)>q6z4rA8Jv8I4<<=V>|yC2@1j%q}hNjXk3X{QsIOrRlAAV$ZdJ{6fWL(mi)o1MmfZ85Ws1PqEmOAObR3ODXH zeQ%V@mb#6X0iJr+E6e{q6_eDSz&dCQa!`WPXAZ zMr+9-@}#@@Zf)x$$I_LHD?$i07}mCS#=}u2lPTP{NwJWQ$Zdppz9A6DY$?A#rZN3KoObXR#va> zw02tc_CmFQOn^u0a;B8)?$)NguCovl8w_(w{U_#3kBAI_tkq~Fl}e@)fcUUKR%>rB z)Ou-SjcoHs=jALkj2pdHbL^xS_a>C9E<1_DsaJ$g2`NBO=ACRAg|Wa9nHe-P;FnS2n)ntX|h55$#aFx40;e#B6*SvA2Z| zK#jxZe)r&ZuX6wpFsW=Imn&r`odnc4W2TE2; zz{kwx=y>)5<%OPipU?jwbh&@6H4_scAPdwCK*(r1u4N^qlQ3-8vJ>Pc!A+oH0!u^* zgqkIwgd;EkM|2&~AtM85W({EgzK6k>{Si(_Jn3~?`{T(#3(k~_sr4mc$`fuUnn80g z7y+|LCXX}%@W|@!_^{K461qR?9yYq2VZe@&C>EA4XBJkG90h_&Y9I|bXU2aa5a;%G z-~MI4cX#bl#i$gb5u(`)b>gENhr@v>?7SB$B=P#|Z;+j6`^MYv-;qLm`PGdy`hus3 z_*C-%0e1agW2gKn4dQ?OFMlv)0&0(dADdm3Iv_P1@88D$NZ+Axn zl$KA~q?{nNoFGav=#aac+ucUfFwDiJrJbEa)```x|NX)#DzG2sj=})=2tACrxWqVj zn4jZCf(9^kfNHq?-Y-vkcdmTt0y!4YY?mehsQ73-^lrVsnap2VeChkNNQNW;=sBI` z5V0YGfBmoic;u;)H%ylyDW&U^slNdIDH;)&>A0FL)Zp;Vzd7meEnQu)iYXwBJylvC z-D~xya^))Ks-6&fp6`AxFfz^*+sF+@eD5P3);GTPG8qJj=hoX*sM~w{#g(Pg)Z7>h zYUthl;GWM#WtB#lc=c<)&X5w0Q&;*ERsNNXpg<~+QebxdRmV;2-F|cP?qSjMvddKz z0GbIwAGrh)0-Oz)h&WNnU2?42=E2Urw=&+eeEBtrwjx7=oR?N2AhKXa4haDMzVbBOC{jKR_jQuEq(DPEKhRxg+?U0jon z4H2TZO=x72r{Dc-3R!ckgQSL&)Z6vXTUl7RWUpL8;Ra+e5HJBUz&u9zLgku} zgmBBNS9agstM9fJi-o9+MxZ55*Om((-s}YaD4#3!M&td1-IeuANz+&?rFWX6{rWIb zbqEN7pSEe30Telm02(BF{J3X8&{7Ae#@(&=Yg->AtZ;FC87-r^x!G^FZO5ssE{R+Q z>EX*lZ1Te#^oEC1_Cm0JL0$}7YBFN2) zhjYB}P=p3s+454ov*~yGwp{{@hyM35G}sn?PjT>dP0! z-QDi~`@x{GaQStau7qSOFwfQ6e{mckke?)5f}n*8fTw!U9MrZt2b)SwK&WKK$(0tJ zVh)H;kiX$v;6rO28u;jS05oz`<_JPy00Dr=C=kzi8a!1#pvbr|W{@jDM4*}0GJ@E{ zH}2DY@ZYJBCjK}W{bLy58j*jl%>Y^h;seHrr~J^L`kogA-mk&;rbB<&_6Imc04CI| zk2qX-BxS~+0Ra^v8j=jdkWw1=Z@GqiK-w_`8H9#p%Y=xqM+nT1?}UqU2n?*42jgC? z)o%7QIAE0vD_66N7eSbSQlW7~u$hzQKi_@2QE8V>&Ndn-M8hgn(}l%B``)0|PA%jk zQz^nAkuXvzv)lIugN{JsVE?dOT{2x-T*z%T$2*6u<-)R*QbQQmLn7^PdU!4qk?;XD zYhc7D%7=mE0Q9ha^E;ixJDHTItgrKAvj4$Heh_5J`TY7S2>}Q(vG8;)g)v&>S?S5{ z;o;uCMyRYTB^RRxWy}?Gy~9qwzLP7gW6Ur-BLJYm47A+b?=LK+B_M%e(FDO`#@S@Z zyqq$}3kCvUAVp@XwA{R9cbomnLK)++h8kuO?Y0Zaap!Pa+evH`0i4-qn$h@rI#>Z! zBnDD-&0uH+h%iExMFY+S^5@e=^H^hD8kJSpyfJJy%i{pkRy=o6K4a`1OonZmltj`D zm|&@oDo#99KmNyn;HUV_(YIHUg&m4aqGNE*7 zDPh+R_V#YSJzBZ^C3oQx5riNa>BV-e$A=i92o4b#IRx!bTKk>Dok43`>WP4$R7|HT z1xO`OA|jt|(f|NH?>mcsqZtr2GlW|Eei$g<_d`GMJrzFqG4KPeGyq1L#C#NQA`;*O z2qYkkKtzZLh#)`!Vzgl=0%9S^G)&Vr49f!BIyxf}j(7CYyJdvgbM?F%r|%#@M9pN{ zQiBPQjKZxbp727Lc*>guQ$M)>aRNgc!ZM_g!ZgS32^v7b;}C81 zr=DWKap1XPDkywp$5-4P>gj1`|D$hD`g@gvon2cPAJz``4+wE_W5p^LP~s!RGJua( zcs-dmHg|@duH(3sjTK5KQ5+QvMbb_t%yx4(t0p8|&A>=AHCkje6xPM{YNRc|hwcNMe8!afoyLy4 z{whMqKyjYrxtJ;enFe~22a-LXd_YF{B0`}MGLfsUcQ-quW-FPjqB!162+S9AwcVE2 zZU{GnWH18ELzL%G{fYx>p_M-x0J57&A>pG|%(yafHsEAd!|CB>Ef9IMa$$gL8y68M zHct68D2q59bF?e;y!9Oe#tUl|rW=e`(7Z* z%h$6PUSW|A(fHzZ@SkOO#P>X0`X)X&0 zIDoP87(YpO88Dm;%%UH8)?)_GD`4RHjq_0nCD#0Yc%h4#qiUvx!Ppy)CWGN*IPn8i zU}>4iuU^eBUqr(JFcr=fyx0`$^Xso%$w^Owcj|c~ovhh{r$To)RsX{8`QwAYwG8^JKl2At zmSIaRFnC0iBK26ccXw{Q8F=l*YQfE=I=kDwLEp)w%B#y5+oVLmvnneL3>-qx?$x$- zeBaMjOZl}G6elMf#nXe%)@HMM`8T8&uPR|jlElZ;j}?G5Vf{OEHomqCQyPD zv7dJ7jn|3}f`L=u0Dz;_7V>Ytl(gfk8h+!R))bYdX_q z!puYjngO)nkOv2w-}>Ke!&~~wbrcMQ(WIkC-sU?W21YV*?Tvwv02CS!K+nyQpJ(@K zXypXc{@y+8A71jwkQ6e^dmTtk9S74p2y0cbXWL}uw~ z!glv>y|c5`C`|pr+9JwmIn;=8Ed_!3RA~hT*oEY(wN~FesPBF_9u2BjzG6BVg{DSB z1D@$%`(hjVa6Af`3HaF9Bm^CXqgLx+yHnewU?ADcB&}SjNTobVLYmnt@JVSYrS-%g zbozdvf~gmV+V_1OY5*igKtN5%2tdrH6iL%@4AYjjYuL6lZDG0OxL~><4a6u0CO|zS zuZutonn7t`1+0PL!EFW|#@DPhu-00$3WDjxn+(Fq)SHe*(1crBZdyjad}9(1=4JE`Rq0TS>jfg3!@;?sZ%VHmoD zFdL%pT2{)QXm#p*oJnwSNIV@L+}*$NErW*}D-{y3edD80pRh@Zn=NP9VF<@XL15Hc z_qO-jhc$s><>IN4F7)^fho3)Ee$&KZN2}s~0&fVGO_~HQhiRTNV!h+#udaYJ|sT7eh&jli+i@C$b zcBi&e$&`d}6$$3&RtiP50T-s0CDGNw3&TDJUojZq&i)raA7%_tKEL9S=$W8_sZ)FB55Pd$~`e4 z#@93A#Yjo3e0{^*I&2=^+j*XY5x5H7CBJ>pW zBxvmRYFoY5KCmJRGv!pSv@BE3`6ZNyQNjozt9G~B=nT4J4MKyVQHCfCOT_{Fd-vTd*okTRO(kKQBl zgUeBIhvHQ9Dd{adzaXRIlkSWsBOtQYv!Ng}gCFSegb=kKbZhP5a2kRYl8G|!R`^t#=Cubs^omMgjK=D61Et(6m5OOg)bo?MCwiYK%Zfe0`rcOh`BiW2u_ z9-pAdEI1@R8Ew6Lc=tU^hAZpKUawzo)!8(b*VfHK7AYDsG5PBZX_X1IR{e2fduKQt zrZVZ$+6uWgoSy?`6qG4uTeSvs4=L{=NBv@^55_Nlb91CKKDvws0G_0AAp?ZyY9(&$ zc#5s7D>ktP2zlNEHpdqNIGZD+NBh=m5JXm{wA$XT=}wPI+0$gv+3I~d=_c&X!JYEr zDy5f0#;2H-kRQgK%(DEs-}b|O(A_Zj@&D?lEd@XJJASYtE#V`ce9Q5tiYptR`L2o1 z?LdhYsE}l)ves@MbekQwkVc7sM_Uocaj`qaFeKKBP~$x9@l>EQUpx_pYBD0_CzBaK z1~}ijD{gz4S;qCW-wQ^ycUA;ykp_w=;=Y4U2 zh_h4DnP$0AaHQom>D6{R2b+%ylr6!bidy1G&{jK0A*Nq zsZv=olR30qupKZh0D&Nnco<|b2#utG80qmPQ9S=1Bwz-8G>b`vOy@lhYE2L#9qTy= zO}4gE$^i`=Fe_liT7fqLZ=@y@-y8YUVK5nclkvoxj(rX6Bl;S9(O!%UGEDP93}acQ zVcLc?O|WGYyl~tih_iVaK4V518{IP>eT~OQ1sZ}N2!k--Pz8Y(-iIF&NpCXor#>+P z5NQHHDT~#mHK(`;$tu%7&P<#&UQYVHpy5j6?YB}4{B|9r9`L&D}a-eVq8lB+nWTQA6ha@ z=%GU%9fjRG0DHpHM+A)q=oC(E7=ao$Z@)X({UBpQp;D^v?@gwYR4$X>SS8DdgN^eX zuHup`PwMT)y)D+dy1bBBUO-5a=#Q{G_kC*}iuyf_*&gR?wRxek`Ae{`|<0u7z z1eBM{J2!UQ+cyg@l_i;qk&&LWsA2_JMbmY(&)|caNQON25J{Nn?8P_CL~i%?TRXRQ7bp3|as?#<1DvTV zocxd)CEAt3nw!|$+;84}GaR)GSHCJ{I*eW&zZgwl%nx_5VI^6k8uPH(JGk3D+|hcX zF-)c(XnB=RYI)7j&EqaF9!|#fW~P?5ibm))5$xsmt1S{5oLuK>%T(gD?mJb^kilo(h71!~6GWBmk)a8Bn9pAQ(V{08osM z5E;`=OUp9sR3cMw^JO53D1nI)6_N(xI5|F}S$w*d!Z?>X`hp^!cA{$qB&}R=`C9w# zx4S#F+|_kNWMIJ1pz%W0-P#X(gF!xD==S@KMk8NdS*h5~raox)OQo`DOF{)PX0wT8 zPdxq4|I0tjApi28{}TzrAYjMP%o>pT+_SjIm7$6QD-K)A=w4(4hUWzq#9Owk#n_D@$Ub98pfrOSQ#kHyJ56 zl`uPvgWTmKO1(z8wa)=Kj53xxk2Q;qRRZX`1-rN&Sv5Q_dnDQ{X=aE= zGy&qHD;wWMkAFIOKOTPsJd)p$Xjm`>Rw01Ic*PYG7$DRUbym+a9#4U|?*joa<{=ZS zaM(8>G*iw@|H)YnHlDf%5rIjA(P$3Fo=}t!ZU)D}LZxcTvtp0*X$C51WA3;xf+A!| zBofsN7gOoOkH3AeUrSH@()uFBCVB|x1EZCdW!hPJ`9k;3POE-vNon>$jE1$xCoCRtg;87;3_5#jj48oYL|)9ej9L(-BV zS*WaJ7uF$HL2?xt8jTb28%EUvM2g$lPuCY7EpHVc!$2BMW}%oAkYd=`?;WFadA0qAd(J_UY$g=y#t<6BGyN9lcpIdSgFX$xmqEFz=~M`gbWJ235CUn6B93JbOzOhO8hWHJgaFDe-*h>uD{h9)OOQLDIilbZ0*(+ zWB|m;2cCGI=r#i=G^d>S#c$Pr>sQOJa0n&@YJQr{@gfnE83{pV%PYO^!JySmSMvxA zcxrI*v49olmP@VP=Hd3otGTieNgd}s5ubiLqoQ@ zuv%+0!%&sW6-4?hY7DcgUypW9Mb^klLdbetyZQFu;A7WT)eB29lK@1Z(^pm#Bom}0+QzAfDH(M7$07wp8am;`QaBx@9XRoXX?pl_r2X)Z>BP0;o2HX zWMl*pf>Ueay{!&vGh3{-`;*1h^@W9{DLQ}W!^5fXef4ss=+enpB~tnd|ApWEZ)ui) z@n?TDVM@mkgg${Hq7J)1{OA96lgeXABw+ey{*|i|^pF09Ux8q}sP6t_U#({Rd*uS= z)>q@!?OB}GveUo{#yk71y#rKa8TK>);iSg?xV)H4ua;4;CZI>o9m-R8-??QZR#(6D z{VdW$Ec{=8_izkZK#Swn$C(A}jBzX@XymC)gTLqNl{9I=qj>|^950kI7^4ZEo;GfM z<8QhNZ~599Nd!7yb~4i3>+Ut0ySDtA6>e(METUQgFmaz@b;}8m98e2FH8(GL^(eVpBV_6 zSQ&#(aQnTbaw>UY2?d^NgnB3tHG|gf=Jw>U`5>FOdg<=wb}pa2a`7T!yi*F}RaMVe zmNCL70{P^g1B?`~5JFV1ypeI8ojdQ``DlB2wdz(2h)g&Whn=C>JR`O(RENVib$F{d~)GnoISKnT>rk`l@Uzot{GYi70x zC<7q<_)h&`+etWPDNUfyP8X-Ln3+PR zRj+fmMgZ~a=ur3As0Ae_f4bG$In zOk^ZerR72W1DH%9vH(l8N$)kzIRDOhW*LY%iaJU5Wp&{|D~Ko1;Lp6c7w2q=^`8tsmT z)P>cH2lblPs#>Wap3=GG&rJ1;9?LpaEI}mPl~>l2g}oc!-rsB%r(SloiUu;CBzH2$ znLos%J~poWPWKqTUj&H zB_xAMDu~@V0MF)7kRP2Jj=y#~8?+!Yo1V5bLdg8)d#(ONX|NQhLX->=QNYPM^lUK* zAqrT)542`rAc%pC2v5_Ph>y)5X^x^LBG4cV1dV_QOo9P5NA!O{eZ;RhLDzXEF)nb^M#Bq338R&z?5#V)X%J*`h2C(ux3{~vc5%66 zw;Issj>}_RPDsH4V$|Ib{ey(a(OsGqYe_iq!hhz(R4g0XPv%bRbu54ZPMvJR2}JinJ!0}uiV$QE<`!+ZVub}qk+s3nFHd<_PJIJaB= zR2oGi5>phb{H<@-|K6{alV}mB+1zmSAfE3$=J+D&7b7bmBs*JP9v<9k@74-e)=)-) z{t2swqhaC!y=);#B);yF&?e`75`En36vwyY-RHkVo`ErFaFqP z<7e_s!s9Cv1~BR%6wwn$lZli>gsc(tJWP2ioZSHugP}riGy(ujB%f$gc5G;&ku+O( z@6`fr+R2RRIK$yMk#N(Ae`pw#_hN2wVm-~v%0Y; zTr19$KQw=d3odApP+$3ih{hcfF_7-@NNzuxXP9%y;7X*$(XWyM)s zCp*LB252zS>D2yn<%Z+n1c8KNLxJII{`PwZ!!awg0=7bSG>Uj);U}3;GzOqKe!)+- z#vYenX3kIXD9X)zBAeqAfd&fEa7#<+!s4)VZ&>dn7YfKspfo}zlSrgwf8Y=LT_LUA zgZ*N4$+G2gCI9hOXRqGLuVoEHVqic9fkFal&5A%pJ)=Yd5gC;q_!>NmCypLHI2?Q} z0l)yygb9K66pmObausU=kC>xnBj&FYAZXM|ceZ!ChYeH6wY3$JW~(`@tX_61>xxnu z$aIU#8`pPkzcuO%5|!-vmPGM1OJF3ORKjRC_A{3i3AMIp+}rVxZ6M=u+mY!0C{}q; zS5fc_M|BmKARq|mC)gZcaKu|6!_6%e%B!8`%|vJ56q6@9{^Q$tWb$p5vdPwWhvd3CpWC4-}p-|3L01%!9bY6xs7UnW1ivGWE z@A;evAgMtD69XX$JpbkJ5kif8L^nrd1mI6UCyMYm%tMqpK0(BCc9P8E%GFM{Uf*jZ zidi%Wh>5j8|MEuh-S>BW1&*8YLvMF?`@)3_m3(@uF==%Ny`pU-Cjg*8mBmnAAooF^ALIkY?WKDB2 z{d0f;QL`S8MCiMP42UClY>H>{n16eU{fGz(G|1ccnt^t+nY>|`jYdOAQ7V-H@bez1 zFdsQOD*z!ezwufkk=(iU?R&TO%S(QGxq^~`ADOxXjx;gcQf9-o>vwk#w%!|zCkt1; zWE!cEEDe$wj+@5#Gm%keLKa%#kyE=rX&tlJsbV&Tg7G|-JRpK% z*4k?iA}udu0!Zd6YuV~LW-BOMg@!^oBl^bhsUc+e)oq-bIg@}X{>6bsf;0UA8 zKzy{Ni81$|p5ui=?EgslrA%qPU;lW#Ur(%7kP%Q5XjAy*lCxhAN5ih^q#O16LbYTi z?WIcL*1g@mMn9WcB%UCOsptQ|@A{*Gwtnu<{qdwJEz=DB(VzZ_9}hVM5WoKWe%%C} zzxjXvyoc6N?*{5<#v@iXPygQUd)>wE&;HDRW{cs!@%w+LYecf<$9WJ9NgO9Z2<)_U)1zUF6`+B~$x%KtGv5a?L{SrgW)3C5#$xfq z9bcnj5Rc?B;%vzp@rbW7(fEtssQuQjS6pEshjSgUIlj<{*E@xVNEFKJ*IS!!j`y31 zmGYxF9SAaI70ao^=6Qlxh6vzw$>L+WXUg?Wdgpf9zlRBepP} zU(J_DO#8z(UVUvk^)x_uMtnqT?K;l;@4lN$CzVpn{A~LH1d!51V5QWF?+<}UuwpsS zMLr)Q_Xrg^sH9v#1e~4rAKs^<5m-#ddN5%S_JzyW>h*?{RIZe9rV97@4OC{KQJ{3~ zh0E)S?C!0%>$`hu;$<%^lX=Eg{A{)!0SH9Os=RVZZ0>arZtM=53s>GSa*GNR3MC^j z@FS}w4~^y-pMo*Q5er56peO8)yuWyhc%bD)7;7%aFF&K@6-?`` zZlgV!asZaFE4k`MZeazj6p*EnG?1S4YGwYE|FpcaSQ+dh;E_{3^N|P^ALmn%XKN$; zh}~NN&gO1-eOWRe>yvWGjC1bB94{CYN+hSadSzI<*E(n<$|Z0FFe3&;ytI^RcN(Lq z4}qsy@9gYext3YTxs94=^~Q%ie<>{`phi6jq-L;e)3Gd}$00Hj$bcC_CTVb(*6n}^ zk9qM?n?=-V=8z|&6bxK3ql*~n%P30MR3WaOKP0tlOt;$}7? zE0Hb?>NWN~kS?<#JfpK1w{;-{$1|uhaJ0UhxVzU=+SFt-(8J3qe2zCR5ResU=a;{= z{hPnG>JR}>;}~hSmNIuGn&S&5YmPz*H@A9qT-&Ve)z^zTN|?v$pm=szAYp2`TJPMc zZ+)~;S|B5<;%q&pI2Z|IJTRRQrM6OVghIv@8hhbPM7NfpHLgEKN#Lsu25>r-? z%+&JQms9PJztyVU8+vya*B4~kja^nA-Md5prS*lhW$td*Z@v2~%NJiwEnP+7Y8IO0 zrIA-U-At#`>G!(Htg%$db?&wH z8@+O-1O$vq10saTj5;J8+N6Hy2mb)_bpPJnzw-0{BWV0B-*+V%L?OwkbeP#uQ=t_i zqUuSh{*B-NuiA2K(G;|fayEXaSKr(Xre3~O$gZuDDL^1-04DaQf#)aF86=aLW_LiQ zX)!Q_Apjr<01Xer3@si|3l2>Tf7AC>f9ad`u>wWz)Af)#w7bNaA^z9t2=2vJ{(u zLW3gq0DQqdq0~T6DFzeoPDZ22>#x0*@PdE+D_>ujPWDrD-h1z*lg=~r>NB8_7BeZOU=|2M2x3-YIL}=?kESIukW!P$B%5@Q2=Iy9 zc~}kyYBbV7#`4liv(pWfDijKi<3!A*I7<2aR#YhBQek|yQAk9T$zT6mr*oynSj+3d1y9&1GB9gUpxT{Iqc!YK6k7o$^9vif>YAA?AsCEO z;gOaXLInIYbZ;5YkHIvA2H}O}?9J^#04|_;%u7dRj(H|e!1IY_Sz{860iua&u7fql ziwp)rVPsaX*K7Oj!&bJG!L%D0zY_$7oZV=IossWP#*AWTXZz)Jx|B_3Qq%5mde~LD zMBsUWWsm@$7!Wi;C^NEJc~kGjvX-t z_E0k`9`5Wn4iA}d;lhejDIGhqa#RN4$pn}ZZVHei+fqg*U|@gLZxJE52_V+U^oS%b z0}##ppb5Mrn&1ER^56PKXTk=YXvW8xS%M#tf1y}o6#4l06D+}bEoF``A`}>Ac_Z1X zbsIMdg`_A(Qb-t&tZ0O?1|&k#>4oCB(LUVzz^$x`q^UFj5cB_#qlBDc#g0BWr6hy^^jw7Fsi0?WpY&=2ojH`7yBy9_~g8H>MUF!JHx^b&|r)OtO4P>0|FKhTv(L5 zyMv(?3IziJJX_d{g@EYNhaR z{G0!xFIZq~Z*lSd>sVI;?Wzv91(Keod zE6b(f?fu5qt?IQ5P$EPVo)3oRlqn;o%1{2apH2k$Ct{|`Sq|A_Dn&>6XG!D$xPF+K zO!Kz$qyO3uZ@C%GaovTHNRFrf_mBRC{>Xn$@e)A-8MM;TlblfogilGchmQlR8 zk|@+}zga)r_Q#Xb#)5E7AOOV2X=(%6vUqjX+HD-}ZEwBVUcU5YvvNfX8yI2^dz>3M z^G%)Gk;xbtuCo>#lJ-GOg63|wzTI!`0R#YHB9|&JE>g-N!lU{LN9|h2ZG5qo*I+cN zw_2@UpoAjF$*krV)|2IBKoii=h$pqY&i};pSw+?azC-Z+-?#j?zHvBV(r7b?Cs!(D zJe_8q^V;V4Uhu7FBn1TIWL7T^_iuEY?NoIvGcJ$@)Ed~bjY8gPbjD#Q5RC1ut=Dpu zO4hEYoc)d-g_grp+cJ`tw1O^A8||$R8hba1{N<~wRz8Db8cNY~5<}qtLYGr@&rbzo zwukOy$Vb|v8ngnXr;T>)-j>!nw^+%pE}@82!cO(i0+~j!nCa~Awch#v^6M{QDvJoc zoja}Vj|`k9Q)Qs&;2BTe^EFR#b_$6)o&|W9mh8RV-areDl5xhU9v|fp7ad2Sq8T^} zQKBei?x`}z3(_Wz!1!fW#;H$_%LE#gz(~RD0Avyjv=kW%;r~iS3x9uIenuBQ_pH9WVt4xuyw z;gsqZG6)jDnw6fHTAu-k7zw7C%I{Bx2pUs~6OxU`Kg4J0%$}LFrrJR>q#{c+t6SSr)3#vGGB{Vr zIOQU`773gQAdZ7Z&CyS@T3)0H(9Ks?vI`rSU6|4G`rLsa1W-1)-~aXMFMX>%QCgAB zAR|`&lPeW6b6oe*jB~lbIbQT0-)Jf$OE~4_E4z2zYVOx7$rVJ5h5?~kTg&!_d%=`Q zW<1ZU*K5V4wWVrluQ$*r5tLvsgWh2O!`kM%+VAEwMqzo4G6^IFIPs+Qje|zR%pl{? z4BJ*gpvM>hOehMMfOM$3TRZJW(-y|kg=JC7Awe{Y>NA>MNRTP#`i<7Gf6#fqqtLKT z8F<5VT9g-8F`q_^S0z04*wa%m12E4h7!yKhVfdTAzVhw&n%zklXiJlI6vjk2lVgjf zXap@VSX(JrfXI4YNSWisi&Yq{^y<|{W52%BNaj;$8Kwr{?*dt-NT zdEzXUQAQ7cRBs&#L}0U=T}`e_?1QG%UjA>_R+m^4?fo&q{o)GQPsIS!7VV+5+0l>EH z=W_W#6ha0epDM^oDG*q5I8SaoGf;Cl9tjmB5}7!ybZ+eqqn|YZqf%mjuY;Ij6vblk zu+|_F$1e8@<%X>(*MGMvpb1HjZDAvjT5xq9$n z^L|k!mqtl|#H^7xov}*=x6zsg!Wd7(f8lri*hnQn${+fDzjM)QH*WlD(EOm37KM#f zbd4xlh+~5gjgfGBGL3}CcOq*(?my$Zw{M}+)s>~hLInjqv=$w&ItWZmg3N5v$Us)- zH82t4sXF$#O+V5ws_Z}}GTE%_y0>oKQc4#~WkC3DK|Yt| zJM!83Kzu&}YNn7JBfGlzM!tUI?N04RFuqm2up-h90E3*_-y;(9S>6g6n7X(?3G;C4 zaQod~Sh(=z0Fct=ZI|2o+h9lrKnIJb$$zA0@Q-=!dJc=jz(rGfp}Ut@$9fYaRUK?L7<4YN;vZn=JVnl z4H~rKX07RilU=!jWB`ei-v+`_JAs!(_|328eb&G9&AkEV6(<;Qc6CGu449fUO51^r z7)2>O)2yrKx`A`NNG`FOrLYTYSKHmj;ZAKSxptIXIOX;o$10{MuM`h&*Snh^=B|7n zk*$xkcMzTibiz}Gl!g63k1#y2{lKItDO3gnFh73G#j802CsM9vZm}LJ1ppoZpL4u+ z96OtG^#eSQ?T3(NFhvM8m=u#Hq(EZL%Aa#op4mr*fWu+mfY40YcsA9=3}>K2sO>kE zv7}_OP+IJE+n(p=vbkg;fdtGiKt<)uPB-GDY7o*8uCHiN;gSNE)*^}_QB@i?wz-ClYaTiS4?shN(}-41ZdPDu>uZsFzz1i^lIDQupxM2 zNR=&QlBGPR5-5(6i>H8upg5W(*i+s8db8d^MTptT@&$M40@*nx*9QqCW;vthy0Lz) z>nf}e!%K^a~3RnqHh+0C3$SGI-x>r|i3W@#L*mNGH z%<-Zk9@h*Uf-uRctiN>Uopx=f?j{o=pCDunfT$#SYwJsI-B9B&VM-J*$xzR4e3atD zwY7v>Eui3tRf2KQ0DNS)h~TIo>kkOAZ6qTx;MmMWND}EJ#PaAT8MkL|&(27Iu><{M zB)(?av{?5B!|o(keT9-m1@i1mAR;gbV&Vy+FUb1MUtju#Z`OSFk9}};)QXz0XrYu? zTS}V%0s;hm^gQv~oL5xlc!7XIDy2krDZhBRyZ^4&=-QP$@UaFE5S+3z1V|L}sam_a zeLgVP5#aaZ~ z(9+HqiZ^cDM1*p+7$@YvP=N~anV4Pypke|5jMk)hu}2D6N|{KmzqXPp9Nhf&{@ugU zc#>INK#2h7mG=0Ajv5k*Tyimav2pjlfqgLOE?jv{rk6vqku`w=HP)TO{^7k=Z3j_l z3=(NOTdcapJW7}?p_~Ivz`#n4c598jy3&S{NvE&?(LgT0wEXf{gm3^24ML#=q=%?Y zYXSt&jPz8xUId>G;#Ljhv+c16fq{T%{e550|I#<^Dlj!zAzKP0A!r~4M9c!FCV6Q` zz46+D1R`JqedLf>&!>wyz6U~-5P;&wU4>HQSIQS(Yu^4&?cQ!Rb%jhIj`UGNbTa?` z&;FNFUHHSl_n%H-#||4wtgT(FxOs^fMJX6Z8ms}40FUygd4KSaD$-w|1BM1&LaEvKUqeTK~vA3FO~kz|P0*xqXro8{%pOpZcvZiI7GNH5J4aSXc2Xbfr|9LPE79ed1Q_+ETUDAPBJ+aN+zecaeYv` zSKn)_6mn=FA{{An@riUpL~boERl38S+RjHy=?n>>!DNKz2gl}0fItA60UyIAW#-u% zTI-~1z5o6@96ySW)xJ2oMgUGHojANX`-D%**F_XkC`Q&Humy27z>vs_)m)qSS$tFw zm{TU=ka-P-N9YKME1$yWKoqOc7h06Hr^!?Obq3CY0Hr6tE{9PaGidaJ*B^{Z}q ziIwWrb~^`K-k@Q@#GoKo$|sgq(KJyaKDM!2185jGJN4aKFxANE(&Ae3;>&2J8C{ND#~A-S=flfWj1f~Keyz)|@t z{_5t9=5xHbG!=}l;~sP%C%t?%=rsDRJMGQA!i8lN7=k@inSPK*ffn=}Xu8z3q_?VWm0A~h2rGK zekK$2yr~f82Nw*x!*1WpSFZ{;8=%SfxSBaKfzokdHv<>yWeT=H}b0`1OjB>^V>!!4hgY}1FKf`kpIlfyP?CViu^Q~V3ueN%z zY%G>Ls`}6W-oF$;;^+SCA23w&_Kj^JOdV*;2wuLHNmw3&2dGa?Ifqv9f9cp0Y5YA! zYjN7hhNA6^hXg`{VhYRa3yFm)ig+44vq?J3lIJIi5aJ_M zZ?b!Hcj(*KzV`QFvKo*DKu^fHi+2{pb9ebUzPG_B*+VthdH0v5z0J!nuTk1%d`L!* z0hrV{+ksxgV)& zo0SH9S{gE+b*>Xq4hQ4wFTXOLdI;x$wRT0tK`_G{O^e2q*2;xUyNt>E@s_X1fR zsHB^#Ubyz^x4-iy>+maIdBc>15Ab4eR2~lnQVEcV#fx8Z9e4NUTX%2nl~;rGLJ=k6 z36{?p0w_j-JKKfynrnAAcLwbmpeh!Msp=9WU6hD)ra;AfeypMaH2dxT{&pSMUBCV{ ztFpl&8KA*Pu~pfN8g3IPUXp}pTTmpQ zp3ckjiDHiL1w7WMRG~D;DX(1H?i{ps8^x;|DD@+3u7xctOU0d?PJ8QSe&bajH#|Qr z@I*?RQiIf(Km!n^WJ}Rh=tC8Nfmt*x1y2ctGwAh3_p`&}2@Zycpa2x0lTIs)={kY| zr&F(wMzg9>9nvGBWt+Ua$BzsKIpa=I+ol*RH;vSiBsPtyut4oV%TCbImcwDKN&P z<7CqmGN4dk+WCb-Wv$b=mF)DLViMq_g$2>^IMqO4FO=-ou(tIGilC}{LBCRj~s;lAO0VI(hTV@{c}H30SiE%sc)SAER5&RjfB)2OLnVJHY1~*fTT6!-*JyMbe!)j8FZ0?wTFj zr09u%aCbip&Ene2?&1}VZb-)bG@oORInM9i22wzRt<1*tPJguB9a(#0SM~rWf+q-} zLEh3r>c+iVB2gL+;oxA9vJ%CdrO{JJ9$8aqOv&nqR3R8915c>IM+fzTrLO_F|KKGz zo5}t8zSlGyMWdcbbel~Bb*5B6iiP$-GdFh*$HPe?mo6?Yh@_3g#~Or;@I;8Yglah5 zy|FX#=|PloMWdt80GPWZ%`wN5GIGz7(G^NTW^V0zt68h<*4DBoQrdV*2?K#7l$T4p zH+Ne*9~NKAOEfhLU?k*c&zT}v0ak@QmC!Z=Fky($gWpyr}Y&XC@+oR^zeMDw#?>Ml+28 znAK?79fWRrdBk?1T640RfJy#d#q!$qU>J_~>Zi(>2soo2Mu1@F zQn{?#uI)@(hf@0z6d*r(j-vB+Z}I&aKp$zYa?Dvr0l*wT-BXQp#G?lg5dpv{u_NYF z(F75}69NSqQWI*WX1^$8HVBa!G~hf|d5SZWfSEw4(E|sSbfiuE$S_4iw>9wC9{t z6d0N#=Q}sMQ!)W3rPLrR4+M<>6+uWiU8-gRuboagh(dw0xzh=?9g;H;$%dKPajG4W z9^bp?ef+UQ?#oxdQuTFt8VD^(i=r14y=g*)yNz1ku#BZu5Hc>Ou;y-~!)z_AzqIkn zZ%k%ZYxT*UckXm{nmPnf0Q!*^b^oG67}p1fw+`-ouru|IwX0uAEM8IQ258Ks$LE;i znSqEW+C+tuS-s?>3boy~9tRI`F+q*Yz$iGkTtf0|TOUI>My=v#;yGb6E=;VvZ*;=o zKzg3R@a+Eg5sp6!Kj{OXAXG5`NuRB#2m;W|;r#4+DiCPW?2X6CCv#BIp>Ef^MxroM zMmn1pNX=$j2vH~$J|}x%`B~D=7|#mfAtP!A6qZrBvX;ml+moEe+6a6X8|*q*Hz}2=34qV*22dP!I>Yv$+Z~4B zglHwQ7fR)o#NxUJTLTgBLuc=K{4&QJkEGrr@a#xoB+VenDy?0=`(dxK*C=0DM2V+* z+6i>L!=Z#zTr4#94yL=eoRwD*O~%+4;hZt3Q2`(^Jt70m%sDXr;y?F8hhcEcRQcfw zS`XVz=_kuxD_}Ubu#GQ3r^_kKI=cOM-+E~RlL{4R0%C~3j8Xt99jf_6^yEO$l0i*J zn!Q9a1H>AT9&V-u%&OVt0JNL*(OoVrG#Yi&5Y=i$FaY!SE=MIALZ>Jz3Z#)-SbEKE z-F~;dcVjZyT-aE!a>-+%(6grX=gZxgwk0e>g`t(p%^nt&XePB*W3NpzyL9y{!Yu@7 z%+rW-%rUQ+oOhol(8K|<0-kp3t$UjXjftTswB=xZS!Lt_=n#kiIGSmQwMM^?cSjy} zdJ_g1gwSt#*`ge#(gQ;)DMH`$t;O`xO5j#CQ{D>+l?DX>B{g*(zBZrUJo05aXG+C8m#6;dm0;M#NO%=*>PG1cGhbtaU$fP0=tB6cCTRY1r$>?O)UB z)Uqsm@@%h=3Q?)>MD`gOh13v&4hdMHp6hx%7R;Ieqzb)39{`+u?lC+e2Cb>n>ND7b zu}0U-6^nPj^PMmZOT|L`eZTmD3gZ(+?XdtT$#n6`SDj>b`{vubH+B|R^7cX*1pzR_ zQGCLP3~+voNGJ=LmBiIfvxT+*1i-jjiGH(tu(^kvT)g&mkzEew-41ii@ja9Eq%$)% zMeFD(>n27(j-nK)eO42{vDw(YT^m?G`d@s*GpxV#pZ*Ly1bGKH_rx5`#uI?g% zo*_VkkWg7HZQg4(H$N&}d;_Etq6rTJ(-ZBi5EQdQCL)g6D*F7r8J*{O65rHXCtT~J z58j)O#$SHz%adVG0%(L_iq~Jh9{IdRhqLr_4P8kR`LBgW;ej5YTl1kxnPBX1{t?{b^?yTB$`t+4)kn(P(I`%f*6Y zS_m&`dyVaT({axvm0P?t z_@jcXyylG_GD^oq(Tt3)^5nltLx*Nn>TlB zlQ6uvSTI-+cmy2j-_v;DCP<;Olp@yg6Pu1Ro=lqu+vRM9Kq@4Kl0k&R5@eS)UMZ|! z1r7oAnN18K83;m=r9m>z&X(~H^X7^<=6GiCd3T8r$xIX~Yu9Q!@AnUy>7`O6(?^UN z`LsMKf?3L?TEo`C?R;rb=2sPKMtYvUl}Kd6U~oMM2m-*7$(9dNKVA7Wo*B|9hc)}a z1K@bGJMMK)y|Cjr*_0cGAv_)gB#=-kb(*7M2n6OZAOPg~?DTjbAaZDEpZ#$*m%=E+ zj}Plb0?piR^?YyxC8rD5W|N z);qoWZ9TqQSzn`+g#rOJogG(r>NXjHRz{HaZ9|9go6KHV9!<9f`?r#glURQZh!_A-FtY{%vXLzyK3b`bJ`{r_6M&;46PP9J+2Iok{`d*##nYrk__-W+*F2iiNQ9)vI4i z+V;WrN28B6i;KDJVi9HJvT{1YJJr1bM8F*LVMndjWH3r4DuuOm6e1cub6u}F=J+1Z zdd6S|WGy)q?0Mb&?VE3_X}7YlEJ_#u)j#;}^ps7e{j>k^Pp0gyi-*8`o}>rFKvoET zF6FE(Bo8}N5ll(La4`7F#>T~BA{BZ@N|;yIKi=H0x4Tn+d~L0ov~0<~%gsTB^E9Nk^=F3bYOOge&PrI zXkGa~_TTYu zYluHAB1xeMP=`35m7Z9KU$CC`+7gs>4SeLmz!0`NIuu$a0&w!>N~2yUqH48_cuHvZ zd&!v|&U8RBK2p4xK^TeD#_J-P-@Em8eYc^;gZyfR91G}N-+G=&Zt|?flIhx3!WoWw z;={Ld7hV&IG9ze~jHmMx^999~(eE~G5U;c{tlynja@-kZS4S*?J8c&;V z73mO8gGh(aZViE)!B~T9CX<<)H}6PE#bOZ%f%(*q{l)ZAc{YDFW{y`@Mp9sEnM{-~ zUi|uRDJ)!Swf(#A-y7As93p50h9`uXOjcjMp0DJ(?ae!H{o=58Tj-Gi6Tv=cH9x`U znB#i}d}i;i1uH{OKn+^A-rc+Xu4~h!mtHYT>;KZf{)4~w-~9dm@t^sR{>sn&)X)8A z|9+A>LU#zlhh~^GAN!Utpe71z9KW)dOb!o>+HP?&Oim_;w{B1vAZy7}hrDYW3rh>d zzzaXPv%A}xOwmPjFKt|R(C+Tlru7!+S+NkXs`>n4PER|vn{Qz_k`N&4Q||;HS2~&3 zljoS@Qv{ye#-IeU3v1UyaO=Ab4o?bi@kzmS1aytka?zhO`&&1WgXiBPN=C;A2S{oN zi6;OflNCNHO-=yx2nE~-thA01-oG3Jo(?3WiGZNg?5hwVFtd&t+2%Cj$AC1LD)jp; z0-Y`75F-I;JZH6H0L@{4+8>2hqCloyDlgXR4Jl>0T#1O9pR4tPK5q>ec=Bsy1jQJV zfmX3_+W)mJ0&Z$J@=D2h$Oyjr8Ke<<~<<9^Bj4y-_40a^zlMi0tZOI&F^I`_0>LQ#ceH zKD{A-e8`-lI>#K(wRvKE7$YvuAb>(i>BaoYl~LcD9=1U1lY@|8rd<n)J&7Imk z&;hc3+-Qw|d+v;<5m_T!nyX_g>lvLOIMl&Z>Zh6rG=QGHef}(~0QA%DZV^CA6PQ40 zn1vLG$SNSpfQS*Z4?8#CoBfQhNQB zi-nxgs@=Nt?Y~vO{Z`Q3mSNXYLsL&A`+^m~yv8`k94{(Cg#a+-Yf2p&dNgU=+kE?1 zrk(v#F|Sa*`N8(T{CocJ@B96K@Mr#$Kl2y={7)uC-_T9TJp%QxhFxR?4Xn6*cW3A3 zy`bBV$fp8ALr=28zq*{Vc`Wplb#S=1-)MH2kpLun7ED%4$*UX7LeTa>^TVyi05eYY zT6ygirLBW|d)n8a8JK|(kV!&uZPBoGd;i9G?}pHx;1K7X5p&G(`I>Mz-W_TXTHG(H z7)G|X-(p{bV&HR_8}X(xlXU`rIPTR11kX9T`2idfKmG%MOC3C z`sM)#3OM3{0HT-A@c*l0!-Lyz``taMJ!JLRy~gZWr04mV&&jBN_OYO6E@v^% zxP5m)03u%QqXsY`la;kAQ)RUFTg*qB7L8itnLvdgkzz>O?BN{yitqy8pkql*`P^#AJb=F)iR}gS!LP8A?rQp7&0+kpD zPlveI(+JVhB9W|KzWmj{FI&9OXnNc4-I=s{tQp{B+ZZz-o*S!>;AADY^2++f>&pve zTlz0273QrYkGi zw5t%t5<=$S&Yjz}!$a0U0K}n*LC&U^FE5u1nf7q<{#I)&vc;=km&r=EF&OXHnHd-$ zwp_@k7gmZ0p&=xg01Ql?8tfA&gzp*%0Z~d5H0w|SpJ@F8Vy)FYM0qsu z!HNcfHyQMD=>$0z5CJ~ijh?C59H4M}BL#+K*mkembsQ&?Nq;_R5A;Qu#Ah=T8c2~v ziG|WjziH{x8=i0O-rDZo+hwieX;I_d(`1b$Kk*H`j|q|xY2-`g5^c4hI(R~ekzPTgB}{@^Muke)e=Ye%{RW~+7jpP8IhE)>Mz22^OuH>jTVu>c^*kp(l(nSbu_%l-7D)51Hc=1hSUe7iu)F-MjtvFZ=zywZ(KQ56j;Kw4m*R7_lKCf zuz2}virxKt`+78u;-W~=1x=CPSaA|GZ0)u-KM>(a@Hw6XJlD(lykaig^1TB@WRN}? zR<2TBSnKyDYB&K6^pM;fBB!!x1H67~k9GLToG1)7i9huNfAo+4vw!Hv{`;T$1Apy5 z_;>!|PY!}m3;yn{Q-nw)4Pa18G4P4sAn8zxc@N_wfuKw^4SFqUkt}3@08mHgP;_DD zSsHz}+4I@$`Q$Sc3Wa*3&Y&x$A|U|4yrS}S(10575zS)=N{3#n-Kbtz6KNMX( z7$3cBr&(!m0VqM3WG&x*DS77&se_BP+${pgo%=&xQ{K~wH-ZX%frSKsJjVi>Yzfn!We?4PKmXa;_W zYnB3UzcFl0Qq^nr;&p|lLPM4=6xLqlkQ(=PS?QyPqb3N_X`@<9NSX*WG9VC)JG*;( zdk4`G1WX(_QoX!hN|?0O7=K(>*76(amDiLf8+UhgsH1TZ$%>JL%B5A1erNMtfB&Y? zUZiG5C%J%gUdrbY=PNZS0R6->z+BJm3jmFpiKFsn)XR}9EQVkWx+9MA4y=JsHGKd8 zi=^e)vfDZU4iUmnplJ}nR#=r*TFR~&?7Cjl4#ucL{I1pQHGoExhJgTD1uzR{DJ8Pj ztmc`%v(N~U&VbNb4cagrJ)qGepoR#nff<;QDBe-=H0<1`(HEy^XY!S9w<}1L%Vj~t ztRFjX%$?~UkC=Rdh{zft9PMrDaA@ULfE2{qKAJgDAO#YhUaL8x(w^56hCs*8&cc@I zrCe$u%frdI)$6sp_1#XecMt7EB9V0x87q~s5^2ND0!J~^Y}AJwiy}wB$OKjZ@{Ch7 z0OQP$C;g)01jmWn4Cgy6#hiaaIEtjtB!D$A0qFBp{!jxyT&SG+^v^isbfpz&%~~^P zP@0(mK}ZuxfDm|mDBx`PK@fjY7~O^ww-IK=+!zTU2F()wzUMIi?9al7(}J~7QymTt zZoECLZ)TFByt)_+hnu@ipH{0EzB+Z6*)naM2<}K25lr#16-5SS8aLVp+f5_6Sh@T< zlN-6Sv2gPnF9qF$L3`WWsb^O!7{v`33ZliO%y>NN4aTmW7ZD}+G6 zlEai`Tv}gv_ipX(Vb`F{@W} z+cr4N6mqla-7{wB3=Gp|7uaBt^pvquEN<@XDy7QB5vg*Fn%a zxMye&DFj3SeM}XC`t42Ibuz1qDDcd-g&*NHd-S>pNQj7#PA1dI#2N>^VYfS+j)s$N zbKGVGflP*Ql8Ll%Y!n8eKtWQPNF;=TLINR@1R+2e_phVdKp3-oQ6NM=(J6_6Se)V5 zYnEYFlS4-y*g850IJzic;4nP;QESj4Fd!(c6>H7RsF{!am^5q6I%L)ljtxO8tr_tC zKheRU??Y(~pd#NTX7%9TP-_Ne&5AWJGB6|JDNkDlkR*vDN<#?4`2X2^6EI7%tUTddZzcTEvqW`F6TNGs9~DUHekOM|vSTYxI@8IubDf`9~wqf0~xiV-DYD+$73 zJH2xdkRNH0pL1{EvEct81Dy#FV-j}|*3vWewY6){2mR{Qbg{TF6YOm7Zf&u1@h|<* z?=|^#&*}U>f9Lyh?q&ve$n+4$TojSxeKW;Uq_@7kxlu)DV)pWTmF0z?6C##DRN_uO z@!sp7Y}GcaIp5WjrO|$3tp}H$oPGI)^+C5bQJ$-|`j(s9-q{nurKJUhK*AQr<&6EV z<>^hrpv>@;?^vX1R8Oo9O5s0!pnaiSaSY&JHoe`4|79=R2RT98=e zcx`C|fam0tcec@Z4f6YkD#owr$%^Uc;f!~Lk&p-@rc4!5AZ(}lbTfT@-- zC09@+xfk40j<*`^{mpE7PAM{^MC6gASBNB)VuezzkxxgOO;TPkieo`RrBD2knMDW? z&z<+Pron(9N(7=HYB#3}zH+TGehQ|~uXNtXLbd&twzAc3sB;A-6$U}2Sjc!DAOhgI zqw*+?fE9<0jTN0ugKDXobPmNsciYfVZkvhbj7S*R=^J@jo7!_fk1 z4B(AV9a3gCRodCv$m3Lvn8h)ln;bz|e|A1LT9Els-< z<@V9a9%Phtsvd z(>1>9W}Q}bbA|&{-kbMQL_{IFfU^U~Rp_${;;4m$wz6YV{ArlWA+QMt0;shHJO&zY z6a#sp2=LtJKEsf~<~V5XD=>vpaafK1ZqF~lu+i%d(8*U6dxeRq-Q8V8oSd2>A^>>| z5tVdi|K==>3_bW8?%mCp84;DRaJRa3Lntmx&m-aZ(TZ?+cDg)2hl)!{A*6EfaJNY}*z#z>raF>?4Tj9J()m^fx*nAt=< zW7;M*(ZEE81&9)02^9?cTXMw&hiP}D$x_-#fBu3L|-2CM3#%q=?D>W4+WMeT-L6z->+O!xUbR{kkmU;( z6piYu6rFf!;^ytGPu^+1cV)41=>z*WKC*RdW6@h7-vN=~@mV-=aWU#$YwfJMnL>W~ zS&d$VR{DTHcWfVzY)+K4nLgA`Z*yjUNfSbnDD^p<@(wZK@c_37P)wFzn$g;6HroE; zEV2MXdbw$srGtQo8VaRc|4t*?-*9F#0M6Jw@WyTQL1ocD`t{$_25H36_x{B9J4XJ> zxBdBP?PNkc_B?ufj7<~eXh5?oqy<x>A%B2z#Fbg7{n76+}Og~-~KT>uINEEE!H2qqklBJvv0+{+L zh}y9$iwi@?1To=dh+yJY;y6Vg@AG*{TIu-q=@Jz%Fad%_5Cx!=SYvrxXYCD8#$2Fd zt`IXM)sBdUS`CCCCyx-1H3bmy-sggMUx#pN|D$hAIOWIObB_pe|F028S!)UqG$h{@ z$Y|GcBI!R_Ba;4=8Day*02_!6$FVS*p{rvgGKR&N0h_*wC5$-ivM>TF21#%&VE`lp zNJK_3QKz=ZCQBdXp(#{0DXncwk(GcpsFhN-R?bmFYh{790O<_M4G>^@9tv=X*vQb` zB?duMoG^O`?t#4gh1pw#->$kUpc04)vWa;t; zS!W{928d2{P9y`QRJL^axpt?~tZimD_x#1Fq}Kv4QaCxC4FcTR@3(4O<;r}m6U2 zG3qo43k`cODpF)wN?BUjq?9^nlP2r1t*s*lj_srEgX4mw5v-$KDIx-~2#`rLh#=kF zD@MccW!&NC9C8xAwMguUVufr>3`FTMZ(sa`FA8 z3(o+#2DKp4U4UoKa1_nu$tzxTrDn0CEYyQyz)6qjaDVcM5fF?&F)-@LiK zb^ZCJTv=tcP|{=QJZbP9ZTHV6AjA_OtvcQ7MP%$b2JWMc2yvfC7MHQv?}v3Wz})aY%V~P8Tas-@bGE zRt>l6m8o)Jsz{bXN|6LX0eLe=iw{+uA0Kp^M{jsffiJ{#&7(Jbu$B1W?-oq|sD}cr zN-PUbK{oq$&Vc6ryUr_CN?p|e1zM?F$a8v+c3k39E5@-nB<0O1H_0# z+HteC8GVB!h=_DIjdFvEf$Z|!?8-A+w_e;{ z-JE-BiClX$=0u8k=|VY*>y2is*Q8v2Qfbu-!g{@N?fT6tmoF-Xa^$Nl&lHW}jos#} z>+R=OKCu0AtGc!CxsE$i9w*kj)8)zjV0WvzarOD7=e|%|xftj?!2WpIX^*$n=>aCu z@Z*m-0Yu1n4kF@t9{=NG0;DQ4Vr3hRc5b$uunSIK!DMBzoNIO(o$7XWCdX(2(3>CF z1waXA1aoW!1W_EfF``ckQ$^w^90)RMeJtn{#Uen;;`96ZEC){mKs4xg>QjXbc^1&! zCyIhBP_1^fm9O<8%9I9?0N_E~&C>d;C#k?Y$#BqZz@xCYEwfEah;j4Q^S^1@Yb#I8 z>d7L|iKuk?f*5QAF6b$;^2j!_aMW*X->GlkjCwUo`V$km+*F0KK3XWicxp!Y;962V z)M1b}Tq{K6cYVBUjhW_i-;jMVh)WNqA&`>D2}2i2*WVu zC^9C|5LCllEg?(U+H-B~T8?iyuC_DUb8i_y%NC7EE5=fRbp7D%`oG9bn zMsW5 z|DzxL&b+ge!+k{qfHC0&-wl@e)px^?)%o*Q%>BSd|g-mRiMbx=o!aLZ~Ig*k{ncl|Lk9M|S zdE(h+m2-hkN8S)fz=-Jt*Iru9l&>s2^C4E5m@Ie{788Vu>k{vn@OyvaZ#l90E8qUz z)5^+(2yd6!9I|QN_}H(R!TOUQcv{&C2tWu7L|Z#I*Y;p~$(mY-loR9m2nMNXW{0C- zZ_RA4URs`YW-35(_Glsi483ai*414ve_@w%#ktG%YOUAnJ@@R>*_@v`Cy4mYMBOz4 zB}t2CE`?!iO|mTlCap8K0RVyH+sH62OWu5$WE3D1MZ0TJYbTp`RH<-mRuQwH0VV7-Qii#H@*QE2hS)oDx(ht&*u(3o=?-TiWp~+f$Bb+n#ohoEiII>4J6>941Ku0a21h1d!6w zHiDGmFzHKqM>{TfFWg%Ika0xv;~_FY<6IOGQ6LD6VvyPN_cpG6a?seUl&s3iJX*@M zJ6kty^+Huz{9IFcHlSYz>gAp7LtYA-u>)X09K+m@S@sX!xLYgdN@Tg~yKTELxA@fi zRdyy+4htgU1D=aP4JtGH)CYFLPOGs7H`XUFEsmuWM~dXqrRl4$?RExLA_VQ{vNV zysomv!oo91UJNHp&egZyv6cok+noV`aKD%B_A!o0skHREEkYK~ zc<%XCeJtuCzV7*IVzOdQl~5yMT0emw5FQ|q z^U53dG<>Tf{vr=9TleTc6i*lY2TcE9+2GkApa3iYU&cy$hAdGOhjADlEDsk^5X5mW zXa&Xy03s*^ASOYu$gyn4ay)H&hfBv*hyIKUjtjPfppg`U0#pEskOWYWSU`^2D5K0q zyf^TKZ#%Y@XlSP%V0wg%zzPh+hLAxLl?fHAlyLz`F(m~I903^MzS-Tpb?y0>+jEPR z-0UQxm|AoF`b{P*uYB;o{7e68K)?Ktf9N~2?rskDLFA-31xT71$U(G!eYMwUO%}@` ztG!x3GrcnXAccOEa!?)00SWrV+feOd}$Zl0(BWnH@}ymYIRnh{=aTtz}fef~W)pK_P+& zk{m7>7(@XcZ9fvjO$rJzBOrhncz9zaQBd9LHukbv?UoBTmhB*exVBYe%=+aeWfzc; zg&15J@^DgyAsIjbD<(i;yXej4C#RM!9|T?Zw{PFNy|1^bm8o)Wx=30f0brVVa_)va zeo@J{B5VBqr~sb*#&k6%sH2DA*;;Hzj@Gdp!(pNbg7^rBiQ?ek*C39%y*9@N1W}L# zGz$q4qNQC|*}k$|*Y&M~AInJq8Ev_U8W2Eem}qJ9+i2L0}!*9wDv+;8;j z+ZKh(mu8(x5fOv^+UAX02E5A32M4(;q537H-l4{qKEhH2&v2g@LEtb|?8d5T^`ZF#mp3L>VUv49-YOh;n0lvlp+)Ccdp(B0pvfu-{cQ%E>^ zuo&B=ODj`Xuk8nIaPpH9_CmB~XJ*$ox36Bk+L@bMURtz>f#~vunb&W`cUs-W;-cg4 zRBLzC#$JA55(!hxP?hsDOVhinyBpU(wV11DZ!!jpA-xj`fFA=~<+BL+ApkxeGsRx7 z-)^@jlv?Wcm;1Gr-!)D<<6alRg0orC?Lt3;P?Aok&5Sh4Vh}#(tGwgW`$!N_S;g{n zWAD0jL(JNM0AsBBG+6)%v*iq}ZnmoH6LU|XumHisn~cl0D1od%!B_!75XUW4XrmK@ z=C`YVM}0&g%R(F@8;h7Q0uj{O0G_k##!Qrm5)(FS8sbv9gm|B;-K#Z8bc}YS+O--eVYe^aPK@jfk?HOZ~ zQVR?70JO8a+wFF3+n%4BO{PK20zyd$84=r^-v0i+h-gg<3k%6CNgk^5v@J%Yv$uI& zD6Gs(Vagm55T?d%&44{IcbTkG3_eRTC}=#R1Qx=`X^BZI%ILgX$W7*!pQ~>j(pPrZ zYt{9g%0xC-E~4*&rI8R6Afyy?8B2~&4bPwKfGB*=XXNpM-w#O3NdU?~HNR>7pUy-w z0R((FJ_sV-Lk9+NeD4T&5{DV`YLb9LXe5fwAq^%zScFj=2T>5#qwa2Cpu?ZM*wQS!$TxKlWwH*%~8;&S3D1@XCG#~;Jff7`LloXA5;~XG7lfj>=4g!bQqBz!Glnt>3z>T_=Cx^S<>j{EGp32O3{lcPGVC&X&<;Fs;t^wN(zo ziSk6F*>AW z>*7k`+O_SdY3%Hj_Di*9ePMBKb8~ZVZ@=4VU0k{7W~iX$sg=2xZftEfo6D6adqH=1 zeJ|r$hnzhDAWG!rvNMx$cTnALY`ymJx##{PZ51N0KoAK;Qn>pVN9fTC%B637IEKb) z~Vj`@4QI zj>`miTG#s=S9#|v8zNw?G*{ib({8r&ehJlB$+)C0^DteR(AN2!SFdeV;y$Si%fm;M z#`_ck*fC9O=X<~Hdv;9l*Z=A9$gBY{41)HEMvud}D4m|b2r^@BzpI@>y&vnG+Y17v)b!Mp8kxA#x}$v^qm z|N37qEiHZ1H+|FG+?ZKx0b3VO-m(MwrdbUq*Bc+Q+*i-|Z6x zDF!=60PvLSS1x4Bi!1Tgt^MuQoxSQ#bq9g9t(=VO9sGEX<$L5>!{m-c6d51NH^4Xe z7I`BZh`>Dp|8nmUN8T6<9?uHZaC(mSICn{p_WpVPB5$=Ha{tdtzt~4>c-GaS6Mx6_ z@_-_6Z4I_9lyS}nK+wl&W zFo(;O-|r$S02=yENCKF=l;mZiHi5Ea z@6as?`zGp>uo5OQLa{=2EXrlHV_Wv&vAAH{;8-w-f^MhZ8gx4QwXMC{4osA?uIt;L zgNGY9U~8m=7zeHGz1=(ejz2Z`#Fe(UTsL{(DC_K(^=5*loD3bw@F%P_Hm|ShNG8gY zyR}Y){^C;~^yV%x`fr}Vnp9RnWP4(1@u_I@m5;37-dS)QXQGgj@R8z7(Z0M=xwTr0 z+J@snCO5sey}d9$zq`Lb2%;BWdim1Ig~^G@tnELsyzu((2l6ofI=4|3q-KkhS(YC0OB*$Z_mAy$HD|GH8saKGp$BDKV1Yuz`J4~g^66f zTWjxa=I8SQmLR4^*xugG=ktg(d@Ly4>2wdgl%M|TpLSjM3%~FSKlGswDW#ZsW@hSO z<6f_K>(;I3o_h}=8WAKR!YJln`lVm~)nEJ7AP5e&pPikRBYT)mmHdaOy?w`(L2+t& zoSgy!gY9jIurzmxvXcf>il0!rhr1@C3};;k!azVSp=HlKGc)&OvA)~yHU^#MpxbEH zTdjIWK^-Nw6?m@gXIwYqV#Y(?K_nmnIbHST-m_smwY8kAou8VFH4sGZ?WiPMpn#kx zSqzB449p;M)R4o5F~EW%VwjKq#771I!YqbGgoQ~FQfh~7P{Soq@}mF&v;skdamCm4 z+65yPjN}2lGHu`0^qAkduJ>3ByxY6yHW}`ROV&X#++z`bB}QAnPgsE#e}M z(x^y8U=YV)7{?|Wgwb%>3By{q%fgJLkO7g90e~FKQMT{6o@Ke(Ie3*(Zo-FgL0bq3 z4nu$ngpg1GfMXCN5(CEEA7H;{!d}qt9Qq_dZx9@2a0v?*j&EDq zavkMpa5N?{0K{V@i9E+EWj%%xAos(d*Yhhy07k@dEJtGQu5a#cHZVJtUwL=SpKeFl zjNR7QBI%_!(lF@^B#qvQfx*t+LE(7^)XePE`gYSeQwP*}yEM<}8dQ%e25(RUxZcdA znJ73AP~Nz{c0nsu%)(ejgKQYNglTY@luWsJnp1-n)25pz`dnHnB%Qk>(u3C~Uwagh` z`|ut;ub}c+=p`@^DK}G@?(e=XL4evlg}q?nV-E#WbvbW(xgn4gkN{E zAD!;4<9|hYQ@Dyq9EAj|Eds$=H(a{!eT3i)2I|N84!4`_danBvZBcW(de&;IPe-oE&Yzxd0) z{L3w^n2m_Q8!uLZ!XzRls_(CpME*o+Ebj~1$o_U+#G6>SB;Xj-5AG(8r-UIY17uJO z+63a1J+C|m5{txQ2GDLqy=Je|3OcQBx7FzOk@`mVlmgpxJ>S!ol?*#8agp4RVVZ#b#(KawUhq?EEPCv)`U+O~h_YA7oh^n!lR1pOfB zgh5y0NP$5xBnBkbTDgwOm*|i?+c0|Ls(o0a6(-D<3&0A(zdDIm&m zoh}f=^|g)aR?{oaC-02F&7zenC>M;+8f*Z>zl4+ z&s|(;uJ0LiFFg18IyW6tGNe2*6Qmez&5)VDG8ISrw_ez|zP|AEMM^T%VW@+UpDu6| zZEZFMbR0N&yRfl#dwO=>cHCO6+G=%Pe(8mkl}n{u<>G~vn>VlRMwwFXLbG+8_VTn1twL3(JeQDOv~_A(qFB+|8VY&|fKC!C9L zGGYjm5JAE|N{>wta2$RG{Ol64m1Hmq1=@~{c2=xP9A$p~|M)pX`KrJEHKg69lWmI~ zBFgZ~l=Gyo$HJ0pWC#_wh01)eb3JOb9pAlI$xp}17ILln4hK#291;DH&zI9q1p*3K z04h$V2o#Zo1WFL)EiSBq5JdwN)|NHqbPKRCF_Wzl7yaBzNlhE(P6LBpWv+k<0q-&E zAnuz+Gm5QAgPEy`>4Sh50!&R!K3?2E4FD;Ro|$jlxETlG+}!-k%q$`x>3+Ze6aVa= z{lYK&0swsd*MI#tebYDko+BJ5f#-6$^u!ZSe&Q3KIB-;q5oJ*_3-2EIHvjye-??+= z07&_kZ~o?dKEsBQ1s)PoVI@&_e~URPmGY>^*(uW6-V0+Y&s&oB_07OLegXr zkoM zi7+PK9j0e0W0V*Nz)_L`0DE|%Nsk~1S%NT%!ZKE$a7JTG5N>mn>hTOQ-w|CzTsya-#Aedj=6dBPIbR)mzN5c-`k1{ z0Tm6hjopH?nbU3L-f9=dLW1>j25{vM4AlO>!LV@9cZFBHxZewX?flDHms^r#3b=a=Glw zFTcFJa(Q-Yo|fjW-H|w=302?U-FDo)%v=R2{hm=*%99tu{X5k=&;Leo{&HdYY2}uI zoFvoz!5wS_1_1&d4w)cISQ5uKS@Mt`IFfl}FtNlDaD-7TCgLdOI4~ySIO5nGEDgun z^)mSi7Ru=42rVF+P{(7(CP^<4dO)2rg3km~0IuuhSO{^=vwgSpWV8Unt#Aeb8o`QX z)NQZSB^z_O0vq4+5I{uE;grWp`^(B!X7|x<)S6SXQwVbRZLwI%_L_U){<=3mff^rz z%1?I*;weU7FdwU~qYf$cpwOaBM0QeP0?!y6=)|!6P$t4A7?6l%>0_f##6k*>;=hb? zUb8m+nw3Oxqv}XlC>0Th@gX{6)`2Y6UacQe!BD1Lncc0{2=T&&r9wW7@Hm+s_m$%~ zK6F%=S5}ri&qKt1fACX3_0vE93%?M@@z;FK*Bnq&eBWhbh8VO`me%ij*SkLUv5y^y z()4;grNH7bh;5j7B!(ntiTfD|YVh@cb@0%=eL zfaAjm0;M#c6hb++4XUwu7!4bO=}Ut^LIA7<(i{XFf@3@sJP=67vC(=4fDsZi+R_*> z@!?Wphz)Qo%n~0ijWNP8voJ?sVwTt><>A>dM{yhuB4bQ!Of1L%%n)KaJ|C|}$V-vk8@Joleqn0aUw+TG{kPv8qW1$o@b?^7ENNtLo4AR12BB1p zR99~|_pAA0p>lB1G zl9AGdnK-)Bu5MYDbz%DQwarGe#%?CFva)jf_U&9QcjxwMyVF`&ej=0$+iUT_szB7= zT-#sq9IKp9yxC+J%g;|+0(%?#)y>!U_qQgOo+&O|RLTa?keHa^tujnIqU25p!ZCt?2mu4I;v`7RD2yUBba8M8 zEkm~UvVN|TDO9q#vXw0WC&7SYDF+7rW zVq-|DcfIQwBHG?Qpy+HBiv=XLxwiJt{@G9VdV??h(l7b4FZ(hgGA2UAhvldMf#IOj z*j=|Rq)O@7P21^({m9ABQf`7ly+KEa-Y8>Wcos-3nu!Q404DGuTO{DKLhwA6XEmB2 z%J@8y@1~(NdKY3kF-07$$Fl?esD|_x#F5&nh!Bi3RuK5Cb58|oPoKJ^H3TtzV}cqn z;7ONqY~qf?;Q!bGiUtBcdECQy$=D>C)4z?E(j1;f9EpjAO%w&dF~mT+3;-rM1>#XUA~KRFM6Hx2P(#3mhyb-3IW~lv$a2uq z;#i0TLrD zbL4@9z=yrZgpuKh<0v+<;YgTM$c;cG1&)bX(t(SUO%TymO4&pz={}^$*81=lD$r_Z zs8l!@^xM5&XVC9&b$UDfE!qdIl$9-%yS)ep0m*Q-#Lvz%iamC2T z4P!~4Vv^5#NYpXXaGajW2oV4T8AnDHH~JaJb6q==$>cL^g!$Y{dF+@fh@kW3`9^iK zTkB+Jim2eOzKTtSe5Tgip9uQo=lBgG4V0#koK^hM4@o&ThG54KYTPqnBj%jIl(w@W zo%O7FB*sxVKrxi2ehGkpiDE!fq#0P9YknP>0&zGBT2%xtRLY1$0G06cbCejY{oT$$ zvJqu7UbfL}XEN@k5BjZ01-P0MhyZNGQw8E9G*z*=%0Fe&foOC&MuM>7V|YYuBzVEvH-A$mn`INp zp&1l;$Y76{Xm8z;L9vuag^*@N3-oFYi78W=1@sy5w8#Hw^)y9fxB(CVMhF0!9$o5m z>dqnJo0S5@u?C(#DY@Gb-2Gz-#>|{K%|v}4I13+IcOHkLWGJ8kg%yg!21arIVMtia z2p>q^%K~PYU&IV1f;fcOfI0GH;@EIxqELi63S$#8Ge?o(D2~D)G;tg=8w3F`qeP)$ z_FkgvYH3oAO%}P1qiki{wxyMFEV30Uow}xY`ijWu%k-8DG^b$2{nw1I7Xsun4iZla z7$i%;x2Xn>h@c=F*}b*aZbegzPtwfO-~QiycL46+{lUMTb2~0JHMbNDPVS5$DVDNx zZME0yP0UW`7w1u9ikLBKAxjX`F8S6;xP)k1R$>0B&$;tL+}zu;)n_MFN<* zG#|gd*4n*kS=M{r^}cJjclPSd+qZ9BxNu>Ae;~0#cxL0`ML!69;&70ORTzDdr}k^R8bhltm;q((Mjfy?(3P?Y29$ zcC)r&$TDdA`HG(_XY&=OP|~&sK!{3^B%!rnO1Z&Pw5G?_5SSU5y{z;6OP`XHT}#rT z+3}q?j^R8#=5e!8B7jm8v(a_C)o5j>3U}B30u;#jPQBTWqd+}Ue}MpO1`IK0>HqaR z{=%LK{@Txee-GnIq<`pJ{$h@_Fuyeg)-euQ06`yzk~kswGYXtju9D})ST%a3Dhj7m63Aod^y%am5ypmBZ{7k@`Futxb%3S(=#T!W z>$+e4)nEOs|K+!4e2+~GB1(iMksSph1fXKEbU>;9_{Tr~^2;xM_`_dxkOp=jVO%Pe zzV(~_i>oW^LGrCo0kImO92CQDGC@H7P9 z3O&tq1H`u`kao{HB#%lY6yG9^DiL{Wbms+7jwR*^r-^wqoJm__)F4PZE`p@#u<7oU z03au9RXI@-7}BsY3K)n(Hb&xzjfqXjam-N=^m|b>h{HiJ=tRAs#RC#1WCVi}5sE{~ zab@oeXCvVWv4IE?9$J1FMchJ&@tC89zyboM z(b>GQ8iwKY;zDMA8tJ5<9s-I05=pWKWpwcLD99=X08xg!VpKXaz4*+5ukxF<%{p2t zH$R0bOA#u9axw8DOOxC}Cd+XYb8*{U>aTK*%&H1^Rt&R0=t8;mI zVKVcf+b{l3x4zZBvzEIskA%l!77VJCEf=z0wZ6Bp?`t>$5G}1VDN-7h)D_~15x9j+rI-<@2y&;}?ezNXe)rIOX-2JE ztu-Rnj_3QuikGig`7&mUgdU(quvsAkoek%W>>bH9zketypY`GHmH;W|)Rf24P#B3U zKU<#Z)UQbtqqdF(RYcUd$Rhy*gNacXkRD+jAqF58KP2N|E8;$xEhh+V7@z@>w}t~I zfaqrYPE6bj$a2$OYiE5j#tiye0D;ftiA6+l44pdm+vT}3Y61|DGauh1qSrQi{WwR; ztJkYc^5mt=hffeUEjB~_GT;TefiRbg^Tb0f;-Ru`@OBEa(sWLgbE?$3(?To^CwD65s`i%oo=t$>34hm ze!I3^mz~v+9MWDUKjG)fexdAS%UWAUyHP>}V_-`vvMM6)gUV7I!YLUXF*CDJl&&+5JAAaMYo8G!J-Pe7MpK&GOiGu-_Q^khPwlu>SkBmf!qw3y< zfhbolCXd@xpsQJLMd(aS&LU~S;c-65AfA5811s^TYtG9Ky)zBpx~n5dETf$ETMr4c7 zwzXp`%ToHVrO9^D9>ZY}fDlj+Q@`an^BSNjPfZn6n{wb1 zLe|aAOyoo)=CIT2wL86b(Ct(Q)!Ja6>H>&5o2|HoVkSR9>7L~j981<}nFBD8y*ex3yoKw+|9&-Yu=AnXscosa3W7gRw+U{)Yt z!k}HB$ou43K*ul<-wlu{ED z69-itfBeUP{KXevT)lbo>1UoIM8OeHdn`gG!kX0bg$sp3;UKp6umAPGu`KIA#dvY) z!l;f1Ln44R_AW#ck^99O6R*RF1kL>oz&Kkjj7N#ZNW0dK$?+-+ZyW%{b9UCbJ$P&~ zMQ>OHk%j;c>NAiHI+k04!l1?S#7$(-I698Q3?S(7pl`xn81|!J5CuUH_PWghfC1?s zp@9a20YuVhJGQoyL^5qV&WI0V14%mV!jm`*LJAP$Jz=GBK7G=7Fp>rw6pe&C04Zq38y5tb6*>Dax%p>K2hmPEYp#EM-ho(NVXNK|EJ zqP0`o+q^M5b5Th=WInw0W>AarGjkVb5-Pu{tHXW6=_@;*r79v~37Q>6=9ZLDt8 zwyq6&-PtQ2eCqPt`nG%X_IeluO6g9g6Gc&FYG$*#Kk#Vr>CbJfz1D8+HLq?ICOQ*y z73I62DSomCra6(4C~CYi9-NTnG7b3P&^@BeQZryo&^=T zR@NzIi^=1q+YMUnL8p7j$ZvPsovocs9iwe|1wUWO=1ZAe*~%0E6(R{JAp#*5Oyol( z&HQ_KMDZNLKevaEmm5Jv+R_dJa2(SE2!#vtqdkW4HpP;&t-tnd-_<8+#nE5+nZK2Z z=Y$4J0d?N<++Y6X zf4{S{^Q*u1YfnD;gw_g_HgQOZ03=7oEJ`T>$mfeID=P=7U*RD5%CG#&5C6wstO=9) zgLt%|fB-%aje&sxM2)6;B*rxNqjuHHx|q)b@@T>Y&}hX$>=zfv&l^x@#|b1^a~egV zQ`_8g`gM+_yyJ}?GOF}&ByW5WC5F_)Nov0nFerT-hhfNo60t;_VWo%!hcO%lW{|)y z{V3=M2g`5}4f?%aPdFgy6E+b9*&rHA!4VFl)u9`sY{x;{2HOH#At|6y2^EBt7<2L| zc#>{@nz$=xYfs0iR!J1Ik~X4z4}t4TJP;$pO`6U7N*J3fPjQ&Igd0H;)78eSyGiP5s;&0nt+>- zd7>DM5yQxaO)L>Jn@TV4TAngx3@LeRC`F8>}r zpRHyC`|)6}wwG}&sua_L++!w;B;vF>vcBCll8J=~@nB}I(&*9WpYLot4aH*8}8X)uGvwvs4cDy5Z*5>1+Rt%yNMxw#JBGtZ8XrDwDGsAN$*@6W;8=hGVi5*m2zoH+auAp>2!q}s4iol+u-9t_ zED=H=s+Z`J0gBQ}AHpx%wk&<W1qg@%$qP_CPcSG2%Z(iG2U7NqMM2?k^&Xe>XhPc-N}>&c z017~%0HRV#TiPZ|ld`ndVxo4Z)ocaLRu@!u!w;RoM14kNSxw2O%WeO91wyYfwfrOL*0g?a; z5GSQ|-xi}2T|n@h7XMjgm;ejfMj#W#<4>GpUJ4?h5UDi(9q`d3Dyae(7{nO!78Z>i zD&CDlZ9$Qg8{wlxR214?rab8FNT&y$4XI^(L5>GK%`ts;Pu|FI)TpYkUtX-BCO|nk zGZ7`IBlcICC4BhapP&Fe5!%A)Pgx{fGzq*Y>a9nYgk-njp=CA|S%zrA6D@+q|>8 zd-Y>+r%}4{fh(7n*0!s+Z{NumE4^Mfm(7U?YHMS^(e3pwFF$>8c4hC@tM#4h+pF8T zoodGSgrg(GW2nS^)Wl@wET9Aq+kzr^*k(Zh6eJL0R16A{l(NXx2TP@GrEOALYei%$ z%U0SVrL?w`cF;O(qqcx_;unr3bxB!_=`_3TTDMi}HTS#ScGPJ%rKTXZEX-tmH|N{= zEM$B{0+j#|40tM04TrCWzKuq3OPPsMhCu{Pr`_%JyWK&*-3i*wsCB!2TOp(CXETM0 zo3B`<3Ct8oY(NcUGim{PgiiSbIr=CMI_9578qXP(k6X%d3S|fa9f1kP7&-dO@QEXG zVwgfYYO;Bg_o3he@TEkGV*TT9_zRnH_}#zoH>`+$?7#R6)8srV!C)LNEI(Ho>`>6@ z`4ffoyijY$bE19#;Q%fFvv=wtLSn*3&5<}?DI=y1s*Do0k&z7Bw>I1Tfuo3k%|vBp zdU9fXtUxiz0RFf-Ducn`)~(xGtIL-!Tb7*^^Lpl)cOA%iJ^%dkzxu1c`bYlAA1M@a zsUT@$DK_8l^=_@MGV>wKq?CxTFdi=D&1g0!YR1u^k7#ULBaRVNdV@ITT%klxE(8U` zdEt2q@43B0pnSNSyE1;G-g{+=!-xQqhQ#iT!+4@y(GpWKJx@xnLktp0zumg=LcMm| zwpCC9WvgvKFodU zPs$s~#%Ew7JGb_BJ7sU~eSvk2`;z=4D_~k_P2KmrDE~IB5DPA zA5u6H6lNz{+qJDbuP)C&p~*I&-nQ{w01arR@^epr&gP5#Mq@pC_14VtyvjN-#^OK% ze{OQwv9@k*R5xGm4uXR;u;uA;!FO)lTK7FqYpYt_FBHq2cDve*>M!4Ta(QX$sSlQC zW_DL!Z#VY3z0e3USOz^oRLB-8+tP~AI`S(>+hkd&Ek(+*98}ifOLfHhRT?ZCNCV+e zkOc{Z5DC%@TT%iffFrPogaAY_$O(}W0@j6WAwN@?kHiGh?{KTyYgPO0TDQ{})MIJ1 zfa*f%XAj*9KcBHOE@~X!ghSv)fX0DJ0UEthfC5y^77jio37+-(e8_3(_S*fyV5d5$ z@$T)2EYe=CIOSyvUVg&Kmyk3f0$7XyCknPaIztfv5j=M*KI<&4qrd{nauTKKyKkI0 zFsZID6M%V3vjz~H2xpZWXsB8t+BiUYg!KXufPs*-pD)!x^}9Wf0Trb22jBODZd(Q& z<>wL9XCa>+K`dtJx5IvGZlXvI0iIo(pxGGg?uVpu5{8b3CoU}`0)Iwi73oBvs9LRV zZLQndI)I9_A`u3VOeXWiU;M?-KmW;ttgshec;O4a;0qLhA!HU5K!hPg&a$<=wO_3Q zz(GM3r8EGK@h%^}5(pnHqCt;1BzN?XPP~^eX0R+T2Y^5dKKtw(OL>QLV8%8 z7%K*cfJ&^1;=J!}uWt71H`YJZn!WtKN@X$gt}9n>t+!gOx%v4=+w$i(~2aK9T5!1J=X#hHnzlJ9T`5CiZC_#6HV)i6~wxM&VxuC4La3+quy=r_gl4gv)603Xl+kn z^CxHCm<`Vgxx)<$OIenFEoK!)~wJ?)5u^gHP%0)p~n? zMj3_bvyZtM_@++VF zxgXTp8s5!>f=5k45m{Yb?e_S5snM;Dp$`e&LfWXRRI%)$kIvC{Ur;iCbkf^LX`}D=;^*gowgCZ-xJ^#e}GxJY8efh%L=HBhKjbgEgh}BxH zT$v08gF8Fb&1!RL;ed5`$wTEYIev$4@3gAzUj0s|*pkKRQYqsi#!4arLE)1D*EDg3 z?goO%8Efyp3L%}ZjL1^N>0}!fJ9geHEtEJE4xrNrTD5*_zt^gDdc96Bko`X6u5D{C z>t(Y3!BS;hz!Bbm3iJ~YOe9d#OfjWgC+C!MLy5{xCv0~HtzNg&9kjdM_7;N`qhtA* zOumvSOlI^lMFy#DrQI}%S?X~SW9x7=-dlpKI*^*C}YERu3!e1zOQR61KI4;oz=M3}LYX*IHBCQGG8Yp>qx?rgf# ziv#UO1o*hqkxtoNLmncUS%)2N)r$EH+r`N(`=`fo zoY6uU$L89#tIV9w=NIPZiNKgdP8+7Dr@r6|KJ@cH|MMUD$Vcwnx&6fDCy@lo<0%s41x$yTaJG|yq()Q z&U4lplv9bW#)M=aXOSa-rIm$AR~@Dn07fwz%8*?kT>wujVQU!cBaQgPfcpr?{(Wb+)eGau}!Q=h1bN4N{=yJ{k#x z2rw}}HE7>jzxMGZH{(uTh|zm!1u&8~{zg$Q(g^jgJ>@3}BLQ7)CYc6YXRc0AAP^?CqQDwk`u+RfW*ch)v$ z=Vqs8<|Z;u@#4f@tG~8guQvL7&2XYpyf9tJIog3hiHy~HK@d#trME^!7l*&bR8Sd7 zP%9xM3&E#S!7na)V#*+<-x(azTK2oGTEEkX_QTG8M~fjce%8(8Gfp-O*$gTR2$6VH zlm<`UEeMHEKg@nC=G=oH!2+`k!hWycYxa8Ge%Nnydpo^N+Cyb&CzCJx`Ldg@K%qip z16qU*lM+x2a-0w^2#Autr2D4d+@Ecdx{K$y`e%+IT6Po%!_o4%jd>}UM3Vsc?V`bQ zQLKOT4S!)P4*%TG|KGNuANz*CG(%bp13t1-cQeIqYkSb?`@TJ7BO{Q);^J(zeJ$SG z@;zUdWmqtJV6tPXzUBB&fI5Rg38qcb21qy^Qa;g3PCGYju z)=KkFD~0CRtbh}gPUP`LRE#;O)d+w~ON+UDJ}o)L%$B7-{NWEDa8#Pj=CA*U-&kH= zQHm0uPew%<<2c^j+*C>}E-t#Bhll_yBET#FfDf9`pESn`P=FGS`aKYETnAFRp@1+3 zL108_Cj&?TaxO4`Zs&HN*`gQ|MXjJQu~@<51?`X1@&Fl(VRU>z$Dnf}l0H`Na=7) zz>I>--rDW%W+ykWd{Tp)vt80#kkU!VN!85B2xj`x0eK^cEJU?>Yuny!OwCU@=_j{#M2@$H* z#>VE(#>Upn%+!IqGL_F1i@B|8e|@L9S8X)*_hzO_OEYC(X$3JtOmAblsfZls84(}? z=<#cf!j#Qq{Bmacf^a19K$`pgLoR-`*KRagL8ILkY%{Qz_592s*y3bdbTuF$jcJG_ zMq?H96SBStY6R_MGESyk5C92d>2&(-&fqXZtlF-&8ntzURt!3mpY#hAKVLdnqU8Z7 zL?sB4YKQ>|65@SelXIr!XL&l9*0zZR@SeC^X2vBepGn0kPoZs0!Xi;`Z{3%{%w!3H6$c8Vp|TaAA(EqZ5|Vtph8hhbhE1VR z`kc@Cz?Xcca>K zA>fHh#8Re?F#C`Cv( z5vw8s7B;wleWTw~lPm90PPW_JZ|vRKxO%5DS;#F+D^CLg+>iN_oUAJ47A`NYUtQaH z<@Xof`$gK*F<651Ad1!WNObu~i7=CAOziBK2YC3* z?EF&MpR3GlY}eLz8XLRq?fqb3w!A#$I=~D}An>-UOQi_mnPq2yEC7Y%kvOXdKjkK9jjyv$fCF1Cjt}XCN z*-9x3PyytF{kD5Y8e+YmeKT&|ZZRRCnkcke-upvgbF3 znx;|MR4?vabN@3avV=-mgMkqdyhn~u8rzk(OBe=*#l4E8f9${bi(7H{KmEe@Suy?N zZ}^Kd-~jNOr|%ok&h$#LUhQnX)V#G>yu64ShY+a3%v7b+Xz$fKgY9*1W`1D#(WqM( z1Q1b=;UrLw^?ydh6G~rNBEMH}Y_2MdXD?ntg=c5YrV{+2G^+JtZkl|LxhFv&K@YV9 zwnvtaVn@mnAbbp?AzA=@-}|ob`YsW+ZHtDPTPy;|0>qx@{a63hpZu0@i4-ZmnkaxF>*49aBP7zMqEW)yTbEDmir!PE{ zyZ9V{&dx1QEMBhPdS$1&wpYJCvpAKRsnC!eeqUHh+)8fY!qnQG{k2yAuddH5hnblPRLS>0gavf&fU>e&yRqKf-@Wmv z-W@az4at-Op$;#x!M6KCaU*BrA8UR8{1wnv__1gaS*2d)Y^z6*s(o}w8qI`R& zv$5N_y}6^HusEG_BpfLW@u!Qbojz02+s^<33=0#bl3ysI3YlVlrZ^XhMAB6t-&t+rotiVc6NlvcS#g3`ily>%_9ZMhj=7pz!0 zlA`H|cN1lK2VZME=4Xtd94HBv5>vO{TwA5EQc4wsAR#hb6K#_Ub6yvv`w5R=6~>BN-am=O_h+L6Z|S9l`&OZTYx zBLGT_1hxH*t6s*|)8*r%H#XzqxBj_*9EkfvfBjF+P7HEb17-xg$N5UD*W7P8#g**J zbAlO0LU456uRJ^9?cUnC_44Me{cOE4_rwKsbn-DLYUI<&BIw}EPgIQAUtisOm8PEl zLanp0fFKRsJE60)jZq%u1f3`XOY36s$_KTd+r07O&g#xYKg=)9p+x`!X|jZ^%THXe zyq(>Rz3o?jce+>4F25J7EPxWiN~u^b6g%DS&i3xk{+?1gj3O2?4AuSG?#^B|Uo1^d zUYwks%uT<3bM5+8)1Y-}%2m=o?Q_ywfUcy^?0ZGE#w7)kb4Nm^4u80crr(q(Vr2V5{svkuHoOTfqd^6f# zVB5Kwm3QBM?PEJ@+spYJdKz$u9a6@bU7X!o-Ry5~WO9{=*d)bg#P8en~w&OV3vDug~jN5y!c6M)0 zE}Nif*oy9IW3>hgP)${5jt4;nvv1aVD4 z0Tm%?%H z_;C+4#JrKNF+zGVMc~*P98D_`^^t~HIWI=U2z1*)r#oo%dYx|2?xh-HwqMK?N?xv< zEtIWH9z-FcpcX`dV;W+|V|#ChooAGNS_}zD+X5tE1dfe(oJp9@e~1Kt#k~DsW^zbc zFcUyT7y`6y(ME_-GtisYDMs6wzF2J3o13rH?`)PXFCva$Qi9A>rQB@q*E`*vb$5DU zpxqehGfMkQM2T@sjIC;G{e}()mDzG}X%2N#dHJON{^lr3_PYqK^hZx^RhF=;ZqKOQqdq^0yXK5NB zA`6g+5>^}v#9{)7`rN7w+KpbT-fPw3I1n@pMhF~>ysYD8C;W_yc|X07ARs}gglyLX zRObYhb33=Y*%&U55JxDWlma9W202!!L}F>IZ8vLuuP`@t<%6Pf26b9B`5|f>pZqH( zOu=Jeaun8L%%HWmel4FNzfwd5Ku*UD)9Tc=S{9%|Ob+vG0%Z#NFp5B{-gPrmL68g!kfYp6<>?O|d}gcO$}P{KqjO zR(`h0(GNYMa@J%}gYw+Ti%WiP{p$0b+M4NJpS`%Giy5HNxgeqjXSy`+I$O6kdplRR zdX4F)KA>~cK&}~0j6B<3T9`lh+1lOR-Pr{(o}20S`%x4jK)<KITSw5I5{73SyXDs?I%2@%8>j@UnWs!4dCRxQr;6NibyZ$_4@ro;p2YPU+eVN zyX&}*+OnK%VZzH-oO~H_B~qz|m|_7zI_{{*C__X}_;`W{0EB1NK2Pj^#3~y1_Yl+e zImQ3&Fjh+203;^4wqu}*NU}^Cqc!|?QoYkV!4{b5IUQT-Q6v_)fO%W{A=wOX(wHoQ z?8L=)_3In;{e8dGa3@QEDOm+Z3SgVQ=jqZ+3o=4{6Y~>=#d%Z=IPCSQ{ywKw9&z}$ZWPQvdj*jYPmO*SDa)I@yeO~T-oE*g zlb^Ipi;R{51&@j8bjy*+k&T2XPO?oD3b4Us@MOlMPBySVs}wbEGg*Y!KpX#&)wAFYBvJ27DI@5CQ3=NPiTBB4j%mKrQFv=eeERJ!gK%j7Mt1 zBrz!`6}U`2e_-hERI8gcvP&~hzMoV!KsyDfA9=cSYDx@puX^X2U@$o|iO9);F(?!p z#M<7fiWG=@pkjdV9x>$+0>fdW6B%8Zm_xJ~>DUaC6bl28CU;_DW_!IFw|jQcKN+^X zn<0=zGnbZdaAWJ%OK4}ab61d@81?;T*pIl(mH@?Q8%0)TZs|RK?e#yXZ?E2Z?biJA zj5}RMjUWIh$;aw~KmXK)`pxx5ZR5uCy~Qi<_optP_6(2!Au1q2z}e}ksj10&y|%l% zXE-XAiz3i!wNPR$gg~1c8_nweWTh}!E_t2@2t*)qy23gNp1SVu7!yE1GC%-qh{p4( zFq_R~CUY~PNGwrTnzeqr-fLF7t$L#sHJWXqCZl*6*U$NW#&feCItoZ3$O+vr0U0U3 z2oPXe>n-PIvu<{xG$A5EB%MxhSf{1m>sDL)ty*=RQ8C$mZoDj$iVf=%-+X$l5r-vTSpYvh;#5BA z@BP;A+B5NA``Pa|CY}nNzxr+8JSIGz%gY2Y83S;{WemEe zRUfqKL95njH#iOe4I>+3&(hwZaAe-~U0ujvq9_Ce$YV|s9_P(s6a*+>I~f6ej;Ng5 zxt(PO00jv|5?`ggzolSMC{_R&@K|nt)adN2ZUOi+PkvD4XJSM^dB`xTU;=Ca0Npcx zKtu=(cX#)0!y;knRyTHoCpn(Me1ce9@aI#XKD3_Y;*7olH-tK;-RCYYS+Z)uHEn(;l zf~~Ec_4W09{*Y~dU|MTJq0vY!m|{ooR6`k;WJ@yzj@rtMDnX+1l{1-}G+AMhIPNsM zhpNYkhFCY~cAKWEz*rV$av3k5v2q#kJwyTp2!cd_!Z6gqJBGBRwOq6fepyYHeF0&J zyPa-((Cha4t@fbRj2gFFq7cCG^M0X}DO9Z7B>H(I3rHi_h5?WeXgownWB8I_>LNcV zqJ?-~bn??`1j@1n&=_+s*Aem4>;F3u&03zpe$|QE5F$bsO&KhDL?X>h+L^grYBgG$ zFE#FL6_W%oOcTJ$UiS zJ07%la=P&e@B}5P>}Es^07vacw|y9q>USFbZbM0^BvN7s;#}7AvYwOmDVssh8Hztr z64XK-d(g26osotvQ4k`KJGV0|aR~qslk)Fjx2*)ctcwWgv^%LcvUzL6 zfOinY@}`!I%CMv(>06aQFr3qJP+z~Ur8haZh$%Y-fIv4x@4Nr<_qD?kY3CpO;QyBO zt3Gdm+`Ga6086LQcCu5LDGMqXSsFc2CNy#D)+c_Od;1GZvrZwOcq#Yy%0wV7u9C49 zFU{Y6_15jzKYqc@Sj7bcmO(w_E{NPE2TmS!PBR$<28&d#wEV8D@2p+@_|8^y5Sq#5 zIdZI2Gbiz{N*87_j@nq=-n#WdKj=+f`G8Fs25pc4#v|@h%olRG{QTV9{_bwIx)(9{ zzTXRC(mEV;6j8I)>U29dZ{9j|S1OfCu|$}BmI9H-ZQ`5yDrA683qlaEE@q2`*`kCj zA@tgDQm~~}?e|)PS|s(FU=?Vq00OkS#I@fOLAM z)9bgpy>>U~Z`b+!u(9NbuFmwcp2X=OvR)@l;Go$;4nTaq6mUmVr&zd>P~S97ks*G4X)= z&A7EcXxIC#+MrvH;!xOt5&-d>L)gU4_QHZ)2iV{tgX#T5gKo`>FkVKVE@Pa=&J%SOHm1JHd5@Cdr#FI=9#b$#>BYad&F zw@sNDgBpPD#?N_ZH)UKojqWlAGY~4*o_T7?FKoX4e6zY8b#KgGoL9xnxUYf=oY~1m z*V|ZKZ*ILFcRMprzK3#Cg2Ttvc;Q`znDf2tg{8#{ORaWiYq#F)cjHKACZ{ZnI-O3h z*C*2Z)kd|}x=E`O6BCt6DVNJ30O8pa-?xPD@TM!(jH7>uW708cd{>B36B3F>bSalr z*=c*u6hJs044SoGv({}_2klzBIq20B4Kd?o96#%gYlr~>rW#^|!km5&0*r?S2|xk` zU*&yECh`Cr#6h>$>-78We!sKZ+uQH$VVzM>XYv!-LdD6IRIY@M3!n%U9R47nLQ#Sw zNCpgmO6#uR7z<@AB`kgHo~_u;faf}3Z-b%IAY@{5_wgsqDP(x-E$v??$8!{y)okB! zG4i&%_h6-SQwya6V$N==% z6?RO#6gLWjJ6BD!s#QFHX~~%?BLUzs)MY5?a+VokrPN(jb&iqJvQ>h4_~H7L`e)`bMxja^_^Rq0|gODs3|UFJvWneGe@wA>mU&jA|Ye)d7LZ> z#!SYS0*C|%ERtL>gw%o{QYwSC1BmAwm2>+nwfm!>I5r@H?KnMwIF9vL-j~F2x6x5l zntI|nQGQbKH+dL5+K6}(+a0wiordw^9U+kX~^DtDIf( zE>>@BHX3WUKGiJEKUKVNS(C?TGY$)=kDaV2q+&kj=PPZq(QWq`biG+879fuK-hF~bMkDq#Q5Q$ zw)&dgt=kyRtt?xUiI?&QfHG3_fE%)C07vCY@A|@L0dk1Qj~Pcr;Di+Rz1s+cB7_om z>+7$4H0bPTE%{2$^F2T3>a0t^KuNg+o!nZCz$0Bp5Q8-C=OutQNU~&seh_!NLAT!> zbn~;*ez`bQzyO5Eu%PW`0O8zAIk(SxqkC1R9|dm&ARY`@jJEA@C90@15U{hwDI_NX zB}4W(0gOeKA2zlvIF9=WBB+t)qaoa;@R;C*ld5gF>`qGFAxN)u0g$Z~VL zcV6DOwm#kKXBKBs<9Mu`JiGGr3fyHnH%8w{S`8Y>f5@T}kkzlqjwW z#Y(%k>*WehTwduk_N#kajYh+=tinW@nH$Zfhzthd#>URtovnO6Gc`F?Div)_qilz_ zW>SUnsL+-45|fN89VZI?bn1pkb>tL)LSj@x<)U9&_Jk`SM;c<)PIJHCIm~~KdO>Hm zt%XT*CVR-mck&s?WswLJCU+{JfQ&eqB4c;ja2+5*x!@oC2$V#)7xcQlpxy8Ff+*_8 zgIa%}NQQn7GJ%L3y;&>Ac3fpS+Hov9W4YczTRARRF1Q||MpTFj7=aXtj>$UrRX#lx zA1wy}~*g)1#a{76CYhW-QxNydw}{+}6}Xj`1NOV?a4kOf~|gRc2!4 z*?w)KzPINV4->$~@!`_aT&;aI+TF~0zEzxxwK|TJ!aG(0EEy0{#E!$xt=H{tjci$X z?m2C1poBAd1~`(oPl>soRyBc>hQOi>WEirJKh5Y1s2G$WJ~oa@a;ifF15ZgF@=!2- zm`XBSAc6n~?M^#i%oXNJYO;u0Apk<6&l3U1KpM~jvJ$6Hgit_`!Gs7AL_OeGP#_jy zh&qR5eLJ20pch0zWCLguvNDrPi=(eP`OFYR*^YnirkvZk-PcC*SRVAdghH+ZDF`DF z4q}7KE0hpVq5=32kDPnwACE_@CFcE22s*iiJSYK_k+z?`vm5;N@BQHc<$mx7|DNL- zB~@Q-K1eE>^!h=sUzu5?BxD7G!b*ZceQWdePeg;=$%#y9WsWQY1V{yiQ}xd`WSHdE zac*HUip>7*O-ox7Pkz86j9Cd1zFiNz6s{tG7zohTI#;~-ZrAfSuKvN+W}^_s6Dx~k zV_Ib;@kGljbHz%by}4hn?Qh&@>)rLr!jrj~C5^U0%Mb|=0VR7zHsxY|V{>n}(VLr_ zDwQe|g)D>YSF5#JtR1T}Pj0(1>5obV{a+zGFlABphHN<+YTJMmN-)J<#dZR5{Lk+Qm?GBc1 z)<;(X0H%dsBvm6GyP*`Mv=+*_xvZ0$ED!6Ru|N<(6muBHVH8J^Iar2abYNj8=mT^W zBLXNv#Xt)1ScBd{z%GHgHu z?v{l+?DY(vR#P!(24h1LKr_Vz0br;wWvaYcLo#67c7E>Sv#YOsBuxNIC*tJ0bBlA^ ztDD^;1+bWOOejF`IGAE_B;;llJ9P`Ah4;KiJL(O@Sr9=4@BQ!+7!KZ|1eF2L@@E+Q zP;vq`JXWR=2?2!^Cen9Af}`9+ct+-d8^;;_j`jFEk}`>h{vAZVHaY{734t6Z%~Ckgb)B^Y zHJCy7&TH$dpF#}gFHB`-DySs=YVI}4<9%5=X3p#D$eFesGR3_)SnT*b7A>$&cMCuud0OUkCHNA%udhzhJtpGp?=;X{qKzKM~ ziJ7A)j^a2paS(=a%s~`JCW;1e)QlpGIv4;TC}2d;`SN70GHaEl(Jzv+P#iNJ%SdqA zv|k@*8l)*Dbk_j-BVy&H?av$|R5nM01X@T(Aw~odf^j%pK;Ax%%IUEPhZAn}0kg5{ zI}pWj3n*o(pkVU&dBE|F0T77*$NCq<%a+@%#g)M-5Py(zwmcPmRju92IrjQRu1 z$ue37ycjaJTQT6VxB~jIn>lMj;^BCQg2(_I8$h(Q5)otsAUrf8L?g^bkU%RXQ3S%4 zpS3+VCdCGbMUw$RP%IG>0-z0;1#}tRI7R>@h$)WZe$a39wr_2~pskDnw6vAY=Sps_ zYPD*u(d%~eg`6U5a0rn1m9ko$P7nq=J3Gc0-}jGP7Qf(UJl_XI z7@}KuE$At7;!h7aC%{iv5`U^8W{%H45LlP8#o}C%V}<~F&A55!xAfb!Uboc^Vyx8} zs$ij)^E1Ae$$L7RP42akGy(}aaM%nIB?T5lumll>8CVG;03#tNKo$`a0~V5}HKT|F zB7gxHk@UNbV;F=7%Qy(Soqo68?$o;V+PWdn&6Ts|nL=sC%9jzfpcWz#G)Mv@LP=iV zJ^IUA#mYHyj zZQnIOzxi9g{rvNvdiL38zVu5!tRVu?0JZ=EIB2v1>$TT!{`znJ4jXgjiOV1ULm!G* zv-oy)!7b@bzL+Ug(9I4-Pm~4$0K;+5FlRL6_$@$imOX4)LqQxyy)_RSI~xY$La79l=HuG^Hmz@V zb*8KxWviBkHiE%44t`&bJApM_ngZUwy|wo84j?d?(sW^Rd7ktb0bopb1;$N+DiTTRn)0CeE<%uFK zQYq%HZFKhQt;($@iy0g8K&(g6Hkans7mdTYO(FS=e zBE<=OoU}>sgf`=wG)f~{2mts1=~`k5WTJk1>y`;yl}fI#FpUbwy%b>>Lu!Z5oBLw> z<5-FqX{_%=9obs%EIjvK16dZ83_c?%4SBr!jvn{?;@JH5Z~yks{oF6S?|tw4(l7mD z-}hJ!jfgs(&X4@)Km3(n{^gA4PJZ3j_?`u9Y{x-mg#-STU;T|=`ITQa5r6oLKCA#u zFB)`vhEds|J#W8O`@tXl2Y>L%Piazr?90FGKmPC+`#IasRSL5!C<3GmItEDq(mqHM zMq$W6wr#_4yekeOMunaaNau;N=XP%Q39TS2F>$}oVzldx4|xI@4niRh9ETrGhz0Mz zg$Q%ds%`=rYoe6S;sorqjph&j{h#cs!r%U(znydUU1}hN4-)=KIqs++KU>LW{h;26 zg22i6&h#WIfF!$Y3=Bz&*^gvAWYB86`8=|u=Rw0p@W$gKtxm&NV-Fo#8 zE?c%P&Ku=`kRW|}h)IM-lprZo<;(BMxYqjBPi}5h3;l3%VTv*?B$jYD>8MHIO_mnQ z#c;d2x3$;YzggSgFU_t@EL^rSMT@M0RV?KEM!VPU_ifJx2o-`HN4k>OzvsJi?(E#$ zY^UF=9$MWPlh5Y?pw;U3dIQ8h09Gm!zV91j8jbem<`%QbWDoxpa)-YxZ4uJ&K}{$u zkF-3?+mE`89AHvO77vb!y$z8@mB~z%vQuH%1OgE>tAm4|cB9kSZ*_uZwMJrC1j5LuAN-*oi(+(C@IU_df6}!W00y!3cYpBj3&NlIAO0I(Ge``G z0pkz+z&{eiKl?v?gKrIeat29&!89g-Bu*)3mvSW|((Om}R=d&ecD8HV_1&FYLSDWy zlPON+%9ECxLsS9^ls1wG&`}!oPa^^kb45N&jmWaYfdNS=N{4nbUVGDG7m3I{=DQv(tO`yWia#1ZQ7wVbAkkeCfq}#ubtAVPB98+RoHUsabDr zyj;JtS-!l4h$CoeOaW|X-JM<L6;8^}_qXnFvzp606PGWbLZB3F z6=vMu*)3M4$?}i{F(5GT28~<&+IFK*UYdE=hXnJn*dss!$BqpiBhx|%EQmmeVHjS& zem#n!QmN#+Zqh@PQk`!9AO52s`&a++U*@v@*M7}^{>T5=9|04hLev%jbi1w9)!WRx zv^1|w&~4O$PF z&h@f09uVLt&XsI=5{pL=1_6nry}7fyy|wb*_o6YT-6F?E*9B6j2ndi)@O~tDee6+0 zpo-b~%Zux;-&uS4_m)8MdzqDM&&-&hlg~e94eMG#kX@$P;vp}oWs@0nZKT4@`xwx<}kA$6etJCS+ zy0bPI3|!C69ilDyT+a7A9}tMs%XgnRJ-vaTDLvR`$NSYAjz-g1ivrHU?%=`u(49K?wk51T5eQ&50z`0Nq}{)o$NCyn-O0 zl#1i{#3>upsIn8w@9J0A8~fEvso^FHU?PAc1+dPwcyHVHGP*Pq58-`5NeFrAF{Wv+ z43E0*p3eFqM&iyA-u$4T`oxyM?~#+^HNlu}PT@q|)(G+Mi; z?DL7~xt-es#@7e^E&wRkIp*325db=#kD&SOdk}MPZ(VV(SXltVy%Z~t zk(dqgfM9^9EdkV93vpYgQ#|Ety6DhJ->SOR5a{c!H>PsJ4dEXb2U0^{$_34ThGk_u$ z3mMQ(X=(X`rS95m`**JH?e})}uTRWX3bT`Bt6|J1E!N0F78VvJa}&kh*53a1esk~U z{{9Z+=H{RM@V42nZ#C}3y^D)e0#1@sgm)M6!XrB*(r0r^OH1umt6Ht^SF4U=xvm?> zrq??}UG{c%9M>(E%X4#co|g%Nu+wRGyPe(L-J7c|+p-VdpZAaQ!?IbRM1%Ki)dLZE zjH0#b*x^z_t$*z_MBN#}mMuxrN#7)y>|{ zhMzCTL2YVNN)7CWUZVsh-#S>Kd^XBX!~GK`YG?Mx|o5oqu1W^@>vvcc?3BpRg)aysBZtPEA&Xs4QFdX!|(V!P}>tVgst9IrtE$V`ol+Wi;g_dLz zo~RY1Q#xm6VltN9wXLmB{pRfZzF6sk5lq9GD5vB1kDj|S;t3c4l;I~*Ob*#9xAMWv z?32~?*J^9msvGt8c6D;L>@Lir0-(`wN<%u4@~rI2TxNcH(CDmRUxU`ojgRaumoL=0 z(Ao)J?uQpHEae?i5GG7myi1~X!V^IRA}SRN#eCu7@`Y-nUaQr*otEpmj&1h`gKn=E z#qq|*MlPG3ELRGZ;>1K50AdplI=xn_Rc|%dwzru1kkgXMA8CkXZQDi`JTw3tp8G@e zoizIUAa}TWU~dEw-{8CPBp(0~#5SUkVuH}M!|(c@Zv$XQ1;AGX7*Id)MIS!eZKPEM z90LNNe(Lky0{~hl1Qh{75c=*v|EB=Ju|h-*g2}WkGL!$`uQiNuGSvO>=gs?S8=(yd zkP@*{|6hYbgo$EyqL39d?Oywk%F^p~Hd>q8?e$kQIl1!WK_^lZ)8u3oIv{9BCFg<+ zf~mKEvbGKikA3HqEboI;eP)@k1pOX@01=!?rbhq;q=dLHrcaasu{{NA7VTTZP0%C~>_jAdmb)$H~UGrszRtfznT-~Z`?zr&o8 z$QV+iVxvF(IUo3ZM*D>qU&v>@ah1qX0+_O=FBhAQ_JIP}+Mxnis%VmwfGpIT`^`>& zd)=E^=v!`#N)YbFGJ9mIbbODREr^1`4#(JTb~kQ&(x1DysLJ_~mx3S&%)Om@b-M|w zyj6n%XSHQYMdz+JI^r2regO{S-Hm;5%lYMJ1Z+VBNk^fy@%Wiek;K^W&DGT~jAm!& zmY0`FQLjJv$)Eh^Kl?BKMLw7Lli&Vr|M^$^XVPzmVJDk&5ke7-pbhi&n>XXgTv)hJ zEEcsQ$IAd}(bn~=*Z;u}|A+wni9hitu3o*mwzf7uKcCI!QaHA|pmOm-nt7Z4 z8f)O`V-*<+39v|eeWSjBZLC)%wn@&Govjw#svr%+w^QRH8b?rT|^#PZcg#3gOn?_S#lh>kE{;%v`V0U+wO% zT$nAD3V@1W0Q5gBYueBbCwA$@K5Zt_TyHLng z4z??mvxR&)-Pmpmgi#Pqe~LSlC(XxJo}E; z3P~VjgU7az6MGx)11LDQ=i>=H3Xk?9F&jB-j33YG_UR)`Dfr2jWD&*U^Ydc01-!kFc772kfXYgW~GD`0Bzpc zoGJA(Sws}15tWNlbOl)i6eQVQy5JY{eqmmuAI6PVyVdE|>#hAxt-2mvbB=f{Gx_qA zoh=|}0S!bfD4-eOyr$#{BVd78qVV1!Z-ub@%u^dL-MsyYk1T)g9|iE>ZFk+qqX8nU z7(9cv!0coHX1=l5I((z0+twS(5bDjdNP=q zpLByuG-b1}G+!cYKWJG`0T5|#?1clIzw(T-i!rIs7;=Ob zNlNjGG3Mrt8;CeLIho01+O5vd{LIh%{LlTI=UCtP^J44^fYj&;f#^W+x^P z6bP~5t<6py7XQxo|7_3x#UJ|H-&b(=ecA&E7_^9iL|k8nJLCv=Zf~Jc&Alesd!@xW zBxI2!yn%!wau1azLI4I1qP<(UyY*_`$!hKGH3up?yL9D!R$&InF{nTh3Ij5N?=HS? zWnyXd`CnhVwl=>!>ra(IC&?^0ma95ev|f-j=2jMZ(e2LOjolaGspq~>sa(tgqy*23 z%On%QM{H+DqXp1_67+R`zV!4&ZsEzjJ6GF#w{~ytxLdWUxr&}Bqe7q|t9tmDR7eQ! z!sOyqrL)(-okq}Y`r@+6>~!yRrk33DLbf!aH7a3%P$7%Rm~z_L7>hyxt)?a`6BCs< zjt`}ctJOG;5{5k@wL9HzZ*b$rt&H#I^7&#mcVNEf`o1$eH3^8Fe*f?M?Z3lDfQUeN zG{K?aBq?npFbV=8C-b239B*b&3cv1azaBw;`e%QZnQ6?iI(y(n-udf)>H|ex{bL_4AXpg9z52WVVQaJLqRE%?*(zmiQJlx-Aeso%(gJIzssHSpE2WMaDsR9sSnOD>18T0X@mT>`zj&=cw`JhfDWM@M9o`Qov>4wD*AIXsBjE7<+vSe+}w=V?^{y? z$cRGUi7zeYEou|Q_ZAULT^$gKTK(OvTCR8@JG&e!N09EpetaBLzW@<~L2&!_ZA4sH zSlHX!`@P@$y?^s>{tXd*?N@!}*M9xiLBAgMYmUR()gTc7AlV|S)u`|7?IOU+%0=6D z5fl>yLHsj6^V0_cVizx7{N``|=6bz$faWvvK}MO@>b?oYB*J9kLC>-jCS z1ky(_V1RQj{keUn!60Lck>U8Xe>BNL0TAYsT?rGcghoVN1t1!XWQ$W?R?sehQkVb~ zhDGO{jBoozK~1C>Xnbd5#f#+F5hBqj*o8F0GBC+lmQ?IV@R)!jVp0K7#SF#i1uD&f zMi7X)?U>3F7oV;3ub7DZTq$RDlu-aV1ZIg*3_vVwlC=G9wW{sX{QOL>-*5N(Zd?3H z34swf6@ifyO-SCJ90d}f0*0X1scr3p@uy}=VK1t62D!N>E0>=oryP?bNQuZQizJ>A zB3Qm!dGCLG=lS2-ytRG7vaHD*0*@18j!hqy>(;9-)l|GPS~X^s#FB(s6mGd<*NLAIX6=Z zcWU+hdb`){hrQNjx4OS6I$JDF7RnQaV$LWFF_G#r2+RVM#z&9e-NKxR5up!(c?j09gz+f)KY6 z!C)2uh&!V;Druv{jJA+PGV~7+k(ffsB4I!Fm>D@jFhCSTW_%ChZ2?6PBAbz1H8Pvz z)D){&JY+VaI&oguDDKMfJ)~`dSkO+MXzB4JkRA;$maQ3BG)kbM2GDRYBLEsV0MHR% z04&@@KwFH9B>=K<0|afT0FcIAF@79HAzKEGl7>OujfxRuYH^S;Zr5D!0Bq_i8HmD_ ziel8>urk@oOrbpE7pIivAu1taQXa8{)CC3$2j?*emt*tC!-DA_QCYFD_3xR-Yg| zov3!VnvZN?e`7yFe|q_8RIWk&nUrv(M{zHy*7gr*ivVzds2sQ`zx7+cB_dz_HDCD+ z-|+Q1X!N^#iXz*$kOL-4>e(~kojYsocGq(=D=U|j(t==&{OYg%$}j%nFKVs7<2$}% zW%1iGA0BA!YG0$f}E}-btHaPU3;;1rr(XwLn z9XK-9jmd?4lwS!|Mi7Y<*|TUY00xLiV&J~S9i$jUaS#RUPb^-rre^bkZnG6J3un;P zkYwSb0#Y~}R}7i}I6PYKAlU#q?gybbg~_s~vEA;(DxO@ZWTzHTc}xx=2_Ysk^dkc? zz{2S2%+%7epMU#>-&nt~wrDTuf)9p)@a)1~n26Bg#8WH%m#%lWU$3DlKlLG{b4Ear z(zl!lbqT&%m7dc&NPHJ;1tpn0Xwn&L@`=gHVs>wBcl~;|u^F`P6iQxkcA5%VROw;y z$Oi*NbmuD5vlFF8XMeZRs&8U{o5hd&J6qM#O{?r3Cj3kk3mF?lL!==BkdayuBjRZa z2aU=H_^#v4&d$!v>{n}BTie}kR}%*P&{#T*qfEv>_y{ymk+6nW1?bBz8UR9k9f1Dm z#e6TE`S1ShAMf`j9k2fne&}05%>S9c{D0QtcLk_i>i@r2mWrzXLe>Z2e%Nhv zjtaBv_jYQ7t=9l_ws=ToaVCz6-;<5#7_d&<_RMF9GA=N_r9%s{OHGtJytIcN9vaIdx?T>uqBZ%-dU-Q-9`1RkQ<6ghDkI?rDEGQ zBxbpO<3_*Nn>paMEG>XSVR+@07k}!feyY>yeA~Bu+vk1W=NZEZoKh~A4>&3ak{F2G zttX&}bX%6N?Kvm9XB-5`WII{Gb8X^t`;7Ee6sY07&2mip9Ek{V*m)R{1;`+%B$!Nu zL(NE3Bc**XfQTBjtMilOSgZ&LMTC%1j5whJ1KJg34XJp5BPulz5i@|8(X=x4q>vDe z3|E3M5s4%|jzUC2GNU6;I{649Qi4i*1??$=1OOZ|XA7*dgE&yOgAgeKRKDR7A`^rl z0{}saz>o;Fn_cA;oyt5|1r}vhih3}JIEH~BfVLg9T}A?7L_v;$0^lwn0XYCp977DQ zn=5IMC>*F%HwffeL2%YIG??;_E%~!$njSs8R^U&{QPz=f_Aha@5mo7}q zh8s6`*KgFT^?Ku0d8SlcoFT2#eDJSmj^?TLr zZBm6ozH&&PFA}9Yh*6l%2#^aRFasVMD58nUiHV6yuh-kz-rL>VB@)}#2QPylFvb+} z`HL6lyODTm$Ff?Ux6KA~){RKjfw~#5V;FM!ngAScx5b#4YFX+A7*u z1wc>j+R*mh8ZZl*oW5=leXkvx(H`8cVaV$1pfZ{op0{ZXX7u&p-WYxRrcyVkj(8lpa0>5bDHwE;kgVo8u!o#>qo!yOb* z+)|>@3o}atl@N<yX~{X_>F)0B{pdgZ#|N&?hd=z` zul&lda2zWLqHEW0Dy1%5xZwL4A~G?bDRCp1w#=Z@K#09e5eUcBeq_)K5Hia3W1w>$ z{keVSR6R-K>!V*Uz5Mcibw3>$9mgsbi?g%yxm-?bMI?ffq|JyC6c$DyAxw;}-(20= z+=!x>fW^cDOelcJ2mm-cGxhY7m&o?*(YPrfFTC(Vz1|d&TrT^84}2im6#(FffgwPM z1gO?GHxJ}75=UiaWqEmd2@q2>dwX~Hwb!m16C)}S1{S5%^2LJzV8IY6*IV1zTD^7K z7!$G6=gi;z(Vt?l|JL99E6Y>bbL`h&du3;9J)h4#_ugj|Fn|qcfpF05nMmcQr_sxI zI?+cz`VmB$o1K2*@`{Q2;UJEq2xI%jS6+#Yxwvv+YN`lv6bA?*LI|3+_Zl~@-*Fvl za-zI^VZ|?4h{Q6i@tBwT)7#ViC{Zwk zODHBALAeXhF3dgA+_<`P^VP;iy|uNw_|!!zUsZ=Z$TnDs*2rwd%T)40} zf8ed`9Af@fCXpA<^*{>001(Owz^OJf z*cwRyV!4O_fW-kX3VaMi{_g+&g$`^9EGi5E6=OyKfWHNRQDsGVxHpv(CWJi8w`1a< z%i-Pt0k9azLd37dJZ-D)kNmZ#9NIwhO#%Q%$ACwBfWy53@Hf$^<57qJ5c5SuK(Yj^ zP-X}5c0-o_$uF+AX&M9|eK3x-M=u2dhiw1{VlV9N!@F$i^~L_1|E}1_LKBu0p$OQj z`N#iIL7dWG{*hnn8oz{%zxb!WtVAxGC{~0(s9aqs&NhH-Sc#QM!5%I*_SC9l`&}jn4m~jBpukRFWn~YbMVuUyz zxL^ph0id^qPEYs3X#qyHbJCm9DL5~`^eI5aoz8#s-uIhUTaAgHq!x&f?|<}#Pg$9) z>pMo|9wV3_#Gvizi}_}wd!PVzXRG+c1w=^|!2IdSVx#^4v-cigvSe9#;5p}pPoG)d z*YmG^Pmjf$ffz*FhQ>UxrMMg%3k9+Sq|M~xOkN~#7Wlt}R7iM?V=#+C zpu2H+l3(!=b`HgK97d=%o1Ip7Wor5JANe9;a-^@STbs{4DbSl+UC^>AAO%T6wW8j3 zt+v|^^jVM6A!<7Lb2HlP6cP*|*7W8(Gg=W)#bW)9?Q-82i>L1sX4*%=Kna9G2rmKC z@X!vJ^w+O5!2H6(spXZozV)pi{pd&E`DcInx4!uEG>xoO2K4}xWRM5~fPl$&L*EOd zx+_x3sP2lU>Fsv+fBcXCap}@?XU?37;FNSa4ZyA&Q6aAp(E&k42&EK*A_m2LJAxO3 zayw0eFy)v>bW`0R48cj~kmy7(KJnC3XHT8}C;#-Hl9h>h&kPJSyoRpl{_-#Xa&-Je+TZ{C-@ot;UoVI_ zb|@GX={|_e+*x#cdmB%~mF<~x3#cVN$?bB$SlGtOLua?1xKiJ_s>mpwc|_AwAOtivoZ3Kp?EzC!i?q_TD z+WvmI-|IziOWKw}pcwW8HUwo7>N$WRsQ{x&Z)5W;u@DadhsXmV11Mzy3KfQNVepU) zLD>)@<9G{9dd#N*5R!_cB8ki(kSqX@%pAiAhg)ONlvGMdMu~vH`uOoEDh#&`j98FI zk0;(5pu$+Qh*@ErgRTOwdj5PDawrgnj21woI7f@e*zN&NEQLj5;GJKmbhv@k@oElFSQMz^d16r5v3|0IECkrvVIuSxL8p z>?3IKsWBpA9IL597=%FwMWJBZin`1#)9j}t5#6$}vn)$wQ<+RE3`4#ftf5FpPED=e zx7FCGS1V?|;Y=3*cvSX>qXe)<=ZaU`H&ZDsI~@`t3O=;sM}4>SoMatVBT`Z9EF+?Z z8UPr&ac*_WAk$K&A<0rob?V#CKCW|rYH7-xECMnR4ht74>esrPTlEn0ftK??XBZUo z+WfSmQy-NCRQH6O$4S~h_mO;kPrw=9OsxY@Nxf@k>L;kZ3qY`WdV(zA%$+=Qy}b2 z5#Yp2IkA@}lRoafDwWFBt5?G?eDu*rg%AMXx`X}w{b!!J^z_ruzU3`%`L6H!uD|_t zU#IIDA|nzji3B_{j(43!Y#We+{9u?i06Oaqo2>W1-kU-!mSr_a3Y9l!tdrOgP8?F>*OdiA5r z0#PBAN)rdlvl|=zftN|y0K|$qjSd=)Q=CL$l=sT-`29cfz3^49eC4Y@`*TIyU>iEI zSligz-rcrMb9rfz6lfqsI)ldT)uxl>Ch)F`HniIgPAk^&>| zQM1j(2hVRlbG5zo_@J>r_sZ95T2=wcJ2hqWi9qxaFu8r0MCOG=OS4J~ulid-Yj5M3 z4|MBwuXSm5aoU)j7?DBwc-M&pNNCPY&CX8CPQTUcwVLh0pq5d(QaYI#pR9qKZB{dZ zkxdsS^SKCQF?G-kl*k?ekAv-q82jNP4}^ulsfmfnQmNJHl*>`lN3Sy|{OtexyS@^N zG>A{-&=3iLZ}0x$*tZIyYVfrOFI-^Yr=GhMfTmEpm9L2RBF;V9+8G0tl>DJ9n*nHe zyRpyl;~95+l|m$itaI(L^BsV9J^9`zLo`3@HLn7Mcfb3+i1b;nc?}@E=e_S`sQ~e_ zKkKs&zj}A_)%)N5R~iSeebu7|oC*N`{Ez-$X8rS{tZc~s&2zmj6n^9vKkDg54~j$~ zGkx@_@+8(A?g*i4ny_uhwk^l8QC=hs*!^J95G>a2dkr1-B$k^umR56rpgp@UUomSVcU9MHH)>))7 z#R!f|m1ZGd5@;gZq0m$!<@9N(Wi-x1OQhSSayy~hD^8lgGI<8#+O~19WQ6_3j1V13 z%3d8*A2bU9Zbk_{o-GL7_PmbORFU+5e8)eFme|fAv;v3_L&(Fi{+MtTrff5e;{|tx zHIO7|hMt~Yd0_3i_w8@&u4Gc^=nOn$dZz5z#krleO>b|@Nf$z;Nt6I|t1KQxjPX~u zuUpTfJC)w(y>t1)f!COv&Zp<5P{5cd6a}sR z=Jj$PC!}5sz+~`KhIeYIpkd;r979fSGE}27k=WSUC#g*>Uj!{JL6Z!0_sp+Rnm6#L zkLnlj?(S}*(Exx`r&dm#TK(p4_{OW3E^qB@{mxt8{sVvi`wT+hkjY00fQCN^T$fEp z+uq*wJhxCNL{cs9dC%Yc>aV^@*Nw0Fny-2E(U%e7A$Y>;>ub$svsf%f86t$B6eFnH zmpfwu#a_?%25Cn}q7mGC2($EEg{GA*Ac~Q1eNyf5#9lgxN@TGTZ}iqgu7Y70U;p)A z|FW08OxN`=JU}o1>aX4v#R7JAw*ULD{P$9^6!`#%7-K4m71Gev>G!&kGB_fB!RLS8 zH+|#Z$!8pdP#6{<$NfY)n?Y}&SPIRKVUQ?J5$!P&(uj8Cd4ALyEH5qNuuGDNz=T3j zqu%_@-~6q5z52id4?O<(dcK5bF`mTisUagrq04)|f`XrVM zX6Bxs!rbbszqohx@#^NK-L;)`e^6YSCDQ-|z+>t+1j*@ZIlGv(3k%Hc z1L>!Oc=@0Sn3B{n%p!+_zSkO*^|B@kxookJDP|pkOb{y=XpF=x5h=3dHYE~Cgw~fHYJ+WCI3$vRh+jJYd-P&%qRdp+VrMl0wo6Tn;m?f3Xprs9|ECN6Q;JBV4 zBOwYDn&ub`(zri?32#0&=3%YE|mp z{{D_Rz2s@eF$J)s-Q~OB*f{hI6c8w=RT_REU-9tEQ8G!?$TUDl5ELp+g`~Xlb02b> zTiKGGUztaNiJE_$9k97x^C9hPStTqbLmdZ^mtxQWAw1@j;GLhNL9N+n4vI79tio(S zdMqA}Nz?RFF%1Ev;%HdY>-8ePSbSAJzM=zY~!z2VEh{3~=_Q%V7oQZkajR|-m{ zXb3c&TsXxCcHHMD03qd|(*Tf`V*|#|+fW{1&>cw7^la{M*@=^KVxQJVHw{*pV!+cjo^4?=Kc}2&k0GJ$V0x^B3;Fc;To1-M@<#@fkT|Ip&Z0-}Gk=B4lQGXtIepiOREeH^liuQQ9(`m1)tOh|) zJ+QjsSSFPjkO+w=3}qzfx4XMjDCE=WG$KZhifvm&7!UhnwOJyP99A1uK!~zH9m^5O zveOFOmMK!e0Lq9U+;+Qzi099r`_L250V)Py86bwmLP-z?p=z{St30hFb(&qnbewz% zgt5D^{bzsr7h%9(@Ohv2@|V9%1wr8XL?m=AP;g^?gMpS-PdV9wr4b6aetrGl{ipxu zxhq%BoxSk)f8hHcdiW6}45dU+%p5aQ7*R=n&wJh-p;)UNv|k+}~O=HDS+A0P>M|J&eSj`M{6}6bsv&JhilQeLJkL?LQe#U3i6-o(vHr z00S|zKpY>WCNiU#RLHq^p6Vd0gz+=*Up}PAaZVZuRqh-Z4TO<`3q+# zWyVp)Tkk8Wut5lg1Dz;`d18pMblgEbCxv7oG}}kp?KnGo#;zuc`Do~swem$0wgL@6 zB4U5w-)7)Nj7mq)RmWn<%6(qWSq!C&E`@7iM}q+Z7|>$?r3P>p8x`&0;}_P`p+{-} zBvE-LbU`Y-B`Z4Fj^yLt4!=?i%sO;Yk>Zj59^+Ulkm7g-4=nzee3c}s2Qt*~FjJHX z5m+ij*HG=0giN?6Sz|`QeM`0S)XO;2&wYJA3V&a(7cBVWdk_5zJzgX35L~8Hh&g+#YiV?%j^j zUSfOknJ_~vg_FCeBq=Z0z1rM)E>lVwGbKPwZXtn6PKb`6mpFN9Uc=q${tfB5a~EDA zQd0_vnE(@^R8EA&?veBMqSdfh%<&@$#K5r>oRU0t0o5@9x93?sol%kwkeXO|a8Tc? zSIbuZpakT|2UaLBzc5$tTnQ?>j-5&rz!Hm(5>brft2g;EagJyF&Pkx{?LA9akKO+Y zjSWo-U_Sh{KmcOY6qD@LZ#>c7yY6IhYGoev@okX`ar5e4-F2iWgqnlEI&|}?Fq1*X z09gUk5nlyW;-JP$X}k`7$mOky)bfSp`j7IJda4 z5cWGDgEzk6D?aq$4?g+ybHDng-#CBq+(glaAY>KxI<62YCtVECxP0w;7>2fOzw@2% zjJELVSHJpOzU7-7$5tw2WhJ%-A1b9DeDJ|YFar@I9=#A6v*JTbvUDP$ zzgDw_h|vL%hOGR4r>dmqr zS%)!Pg#km*b&*}X`0|a%d)sUKi-u{I(m+SYNMj1T37x~5E-h+e_ww4Hv97&ve9H_h~#NmyO^;G3&8E3*JySc-LBh4G+CuWsY{P)y{*QU0-+b?&ko#Rc6vf{ z(%YxBRLvY2sj-0F$xR&|ILB{5|;O~3i{hokKA95brAN<3s zAtC??#JOCcB#Q$L=AHbXeoKH)xvnTfg<2z^Wfv&DCSt~65nB?>oFHR2&D`YD#~(lb znHmVd$uSVH#-Z|BTQ{E2wP0##3296x;dT~ZG~mL@jIL36dwcUKZ{fl#jqJ2UTaGHy zB*J2!Xf-foWH12r041>kas_Ax8zE~7?~jKol|$oh}l>AOJ52NNBHo_>~5jLJ3V8#6vneB7u?w zQYg2(eYv*rtZsxeD=TDaLs>}40H~DM+o&|!7*al_UhFUb?37VXk>JFp8#23yYSe`Q0WG%*{{z?XUmZ?VtIt zAO6VWZ+qJxe%rTvy+EheZKFsTPLAwsuhol28!;|?<;vyh>B(>Y=5LH*z|3+~^;h)< z-AKRKFpP+8FNorF3xwp&p<4(ObJ*+F8CgrE#vvE>d@0$^6cIHBLIyr@RZi?BUWK?>USw(7Enx?TD7Aj!`MAUWhs#m@I?Qj3xX0!R^(@&j=s9y+4Fg*5iuHLu~ zz@<`YW@d(2DkXIT03{B?^NLxygC3#PvjTx8hK%m0dqM!o2q;kjAdLc> zLkFITH3b~cBMTnCo-AVyyudC%KdBfoJV1^YBqjhjzDf*)!`<*GJQ`~{hX{mY6m=xP z5iBH*dbmUgK%;pAz$98sq{Z_FgaSGixFIWMJlvi_mZ(BhN&*m(RBAk@kvNGbs*il+ zqo!$Sn$UGUlTOc0&)AOXdEQ{)xxH@N^{VxrJLm{z+sdRSO1e-S_Wf?7-EH=Fz4~t3 z6k#T7e<= z#4@{h&+#n*nT1JB*EiR9qbg6!=U=W(oCeL2td8Zv5q#o|5B2ge8;YL6{V>=;&N561 zBdroSUwTo{o5+;V&FRy*R-?c5RC9ATe`XOiOi~J+>4`$?Kmp9%+p=dC2f7*J&7;oa z31N&Jph83*gp;|VK#?=i&>T}5gaQ@Om}e!Kbx=YL29>qFD<2WqojbiGvd$4tLt<^a zzFSpNOiGa{7ABhYT}^c-iXxrY5DpIt)$Q;=MC2i14~LZ^`$2iT=49t`3ui-Nsh2c! zTLXY@w;N@s1Hk#SXF2esax<2V6h;Z|?|skv|L~9g9(WKDq*OR+6{^+h{@$)_+ox7f5dk8yly^j$*{a z*NDP`pxi+VAh2u)Q2|ltMV`#MCpDe*fBMgU^cVlzzswqB=`KQutT`zslgkatm1e5} zGE@vsIuF7QeEQ=*{`1J8%H?uz`0B4VEt6R(q&T6^>-q z2vITs-keV*kpN6RJH34273)vEYwOz9!o^dRq9fxB1yZT@?tVVH4%#RoL$SzZ=FhEE zuiof(o9j>g&EmPho;?%SGP@}T%<%jy8HC-osy8cv3@i~Cl|qorl0&!Gs&!lCcB3kL zEsb5lzLPShN+~O4fv$rlK-WOiFwSWcjAPng&+{=y5Qnn@QA5Kdo%P{)%Gehaikz@N z2{^T>dJ3OQCr2BeW=!10#| z3PFy1hH-o-p#f9kOCJ8k^@V_$<3g#iS9~yKP^==8%u*^)Au3lXpBbf6%%oU^3Z#O= zU&A9#XLG> zrQ)>`bSickBGU|^>zWYe;aYMq7<4+wRvM!D*@qX0fSXcn}u{qF}J&3 zt8U(?FSWjgOv+2Tgx;QNi8&NO{b(G42h@S#gS(H#9*zN9K?o`(&rn1IF zT#w;-yioCNc4qUZOxnD%b?uq=&Yx4MnX^FVSS}oY!ZJ{j>nWHsy8h$e^TQS8{mb9@ z_kEJZQ2Q_6{3B@;2#Wc|6a@)EXyi<--oG6yfEAi?2}mT0vm^@(hYDczT_fe_xhbik zVmuzfVPKAH$^(W9D%F}UjQdyb7g7k)4AKM`q=x1H86h#jN^l_C`JYH9fblI4RY z5MSbs%ErcetJOrrm8E%9p=D{P1F+{f);E6r*FE{j{_sEjhlZUoGX)ez z$b9YkTDRL_R-nY!ea+Xt{&la{H6e#X0RSPC!mC%WcYD2w$;qXqc_LC$0synReKj8i zgI?(O(wWo|08|}>nNbNlRX{Kq@dQpev6qrz42cjaJ|K+wzGqqX>VbPNlnP;F!~hJI zWtyhWQbm{pu!_Byq%vBk(}{Ao03b?Xs@Ezh$7Us@CpbVLwhhD3HDIL)OPCG-DTW(s z8?HNu9Dt>zCExb}pjNF)sZ4{EQbgqW;oINw`_X1!^P1O0>qKcJgTdhRnbR{f(>J%I zh;i^jO1ZMM}^xOu1Zb z)EiPV3C&K~tZ030`%nM;&lS__UiZ3l=gty>R1D0q*yVwva^)Hk&CShiZg2h0@4or3 z|N5^N78d`(Klp){zv7jnj4wIL3r}iOibJI653XIi9-+Zs_GMp|%Vk=vl;haZ305k# zxKX-Y*)Ihog=0-FEu4LH(`52WUW>E%V#02l!g2q+V= zT+YgC8-rSV=efU`3cd8wd4P1tG#>kV(Lc>;?&#k8hWrSA{#oBh_Y-5h+6Q8dP_8CT8c&6d2BA zieXY|gM(@t?M|cG+bef>o=)dxCYR2M;vxuJl8BSUS-o)bs03YtHSh)!P$4Go8Ud$G zTZ6&vRHKtiAA(S5A8dh80w!ma46Miey5Y@B8KkKJB1sS-8=eY7hM{r;;*r5+a+j0- zkdYNA#YzD)#8Y6@q_5!sRUg;~$ssGrilxFshbLskhXCv0GKmbVq#SxwAf-}=n?l75 zK!TEEjxiY_aF~mwX^7~Dfjbxwk>fb2yk+QmAf@ZN{l43;)go*&eui~jcOtXxOd+41 zo3%|N@CM!JZnhe2&gvvh;?V2*?Ovzds&FM`Q8sUqBlmrxV zb|GUcR$kC=c6+T}t6A&sH~V{+Dxf*pQnoZ}PfTOFNN5sTVN$1P3}jKL0Dze8O7XfU zrU&C4aG2yv1SLQQoyzvr#~m{)F3+OC7=C>|tTT?^AHA4cx}a}d+l(5M`OtTk?q?vy zz(^y6fD+Ez$ITK?m^29vgEX-nsDV(smgj}+l43Q)HWMWF#o&69L@2_Y-Ea))1K=RyM}5k zOq;r+0fvD0n*XNaU{|f#srJ&-_iLqNEuSrjr6XB3kTr`T&}p$%RPj1W`G$mzX6aW*MOk zSCxWDPb)G+;IS-KA_N4MG7JMm)HMwd$CG@N;)uA?Xf&8P(g*v%``! zf9JP;-WPtZV2^}Onh7MNf(QWdJTC%378VvFd{qcBaNWT7z_H_u-|F6D&1PO z->Rr^pevt5Sj^e!+(FGgaBLz4F$o?L>CmIQJ?d;cpW(}}D9KPnCovpuGoCHYP9X+B zINUA!PRVo%lM{;*s@-i@TeaGH=gEDxCW^BwrKK~3h5`+Q9x^ImdO$>0iJ^!Q^ zIv~nVkek^TStb77_i*VO@S|!1KQO@BUanG#Cv8iUAo$K*r(xP!s_f zLPvPN{)<1Jwj3orB=lVWTfh4s4MInWlmdP1TF0)Pf?;SFhu2NTne~d}&J+=WfPF`J zzxsYZGs@d%#xL580l0tlbcGi{sc>C$8va4Ui; zo84x#v0k^cFV`$BozE7hvV|ElKMAM-2qv8oVwi;h6dv{SKmOH?bfs8EFaDFn{rQyz z(rMhIjb}JXQM((i0t{N#TE4KndwFa7`s34jDjR{cXoj&=cfwr9Pmqcr0T>EQ$vUtu zffz#K9>Bn0BLGbSyqG{%+!X8P^lBk;fVZD%#R*^nfrn*^(+3G)t!lH|-`lcgmR#Ko z5P*5SDgdAWg7R+Janhgtvd^~I(Ur~|vl)q*kBAc_@`fBjbRRE$)a~pQC+y<#3~FO9 z6l%dhUB6KYFsJlJ~R%kX2{i>7mBRh48VP4+`8<>JnZViB zG$B6sb3SWsvXo94%d3mRWRy}#A29?;y3oJwjbF9AxCD$#tE)oSc+URt8 zKv-C7p^SoNEmM{e3UF7n4QXxy9nKi>e6k&K!>@^62hD*SXn(KG>wrFl9X>`rM9;= zUDp*toH=t&XegTG znCa@3OMmny@66kmag63|0yH>sN zxC*@D*@rbP8-RH)dR>fg+ni=rfX*^ornmO4W-861SKsuZXq*A6($YtlfMx|EU z+pgazH`bp_<>rga7mfUs61D^ZAYXu>4H7ewL~9@|W=n$3%pMF{fn)+(GYAI9AvHi| zpa5*o_1d9qhsAzqDbkUV5pd|A!DxP@-p0xUw-qQx8EsjxL_~#}f3SB)ajbZT0Gv?v zS&mn6!Nct zA)fJq!0q>=mLc+6I=!BhfuU=J9QdB+N->224R1Mr#gSKMb1fb~{uO zk#i|KH@$2cBm=kGYP6d*Qxh6Tn{IfO2=J>2*vV(iOx`hbX-L^ffOza#LWsRE5K0IQ zCJ*)Fm}RHmX>~izp4;DQ^>*3^p$s!qoXr-esWd}+3dlgzB?tmBhEFm8zVPZs$ah0y z;simjd*cbexmlVoQa%GWabxa6FiX}N(?Ay_9BcN>;@YLH+V-`~)Eo+dq^lSe!%tv$ zrZ~QmLSYJU!q=H4=%N(_h7OZLPb(sLkxiloB0X{Hfk9)ZR@t`-8GEXj1X)l(VPU?} zxf)dW94Dm}W_(Q`LyZ3*BB3S_2(3rYzswRTO=-l$9KXF|d_P8JJ`xF1gU00#4yxDf ztXVj-jDp4s*M~~nSgZA9T8W&MDNZlUUwYyrcG%Emb7rwXh6beW4n&U$xq#%>PNnPO z%+h(`=!>={iHi8Ref3YHYW+WOjHFfdJX^}to2BNUfI#W1B* zR1N9xeBIYh6pLXP#KI-OObGYica9(oSptAS4RFZamokh5xHL`6=kpO#8irxB*_xf3 z2T)Hu{?T{7^Uos2%NySC2HUnH8hyXtClY7RoFSrQ+@3J$BOEmh!pK#KD%PV4+(Fkc zbksEfVx=UD%U3r8WlYV?^!*T3fUJ;128kd58G$45F$9P_A}RxNc~(e$3y@ac}E;wv}k=P<;29qXMgr*GxKl!#&5jmJ@5Vczw>uiR+f*b{U~Na zLS%qvpM5qev9IfT5b7RK$vak=5ZDN&xA#DxJtbsaFS`s)hk6*Rp7O!nQMMksTIzNBCGgFZuQs>%2Ik$%!`Ftz*W?VJIzaOgJ;enc|?_td?7y#Uk@ryrUn3zyI z#?OU8cm3d-|L*_Z4vQ{lrDic`0LV!-0|LG|mkWH>zv=J(=d@`3#xMM+ZJC-$|KBhE zblVTV>3jckKP1*HRs=B#K8fbuB&viA%!u*1p#ne%`#kvO@B2By1LB?|{5So=zjRC! zSP?5gKK}FqKvE}Q==F}0gZO3viTDs`xckTeEz7VBBYM-}&;l9s`jHKKy>7oR1K-y* zE&5YZx?vau(sw=5wRAddXnLGH7QJ-!R^&L%O7Vdm&A3C#rwX}LeqQmw3!0s7v(stUo8?ZevL2$5 zE*?~6$&{vbCxEm($0qTYNP(ryY#~!E zSGZjh`E&^QiLc9)>{2Mq82Z2bj{kLlsuc!5`I|p&2l!vV^yqJheA{-B78rj(> z0qoiCexv}FN#jtQ00Eg&*4)C(?%M8Pf7{CDhYDa!v8FbOk?)cpzF8y91GEM0DVvcW*-?@$)HvD10AgiCtE;< z5ELi^V1}fF1P&PiNGS#$Ii6A}79fB|pqgS}MrJtt2l1HLLi`zJzthxFk>kXWckGpV z17D$LX9_@+1U(2({FM`XDHtP21VUtnXuuso0Yr4_^l2gi%oL0Nl8D)|K@dLi#1l%X zsK1XekXTG_m`9H2d0w1$b>DsWf7##q3d_Kt*Fs{=w&K(eK@w!BLLUK8(-dRGJZZI> znkJ%RuZZY4PN5KiY?(IVl+u zb49L3s^u~~v#?q!6jd;g;5)V+C&Q>fg;Ia+M$;Ghg_Tq5H!j5#rl?S`IayI!q1PW zy?_4ae;%FMU;fo!%rATkVbbmsh++J!KN!6E&2Ns*l$qcA-uFg?x_IOk1VMBc0H9v4 zhoQ7gj2Y_3;gkd!jzz!(W~MK`T0QCRZf|J1?#vX1m^^_oRh-wv_O-R3)!TjM%FNkS zkxP%FtAGUd!pxMWm9Ovi_9HjXpSk#Q;Ym*{@PAwGXt49XL7|Z&DyD)77K7;7?0F%7bhoH8V(#I6|$#+ zC%_J4d=iXakP%uafyN`^M@NT3VK@lQL1;-~D5-2b=TgL%`jGx#9HyC@8 zDJd#LN2`S(Vtm$;2>@x_!vP)<`iJY9q#LtKy!QnA<0&)b$;QZLAEI@0d&MmLB1J8<)LVxVAtEbT)p;DBzOMwvPfHioKVVG z>E)fMapI7&WTcl)pLy`X~O2*AMioI}gVjLoe*U}JLSe$uibh~xap zmnfM&@D57JR<0Y9j<5>~1LP2u1O?qnvr+A9*2MJbMUW~cKPigQMq*Z@SB?`^^5IRA zppX$56buoV7#K+sC68TMWJM@duNO)`lQQv0_r-3{m3Scff*?-DwI}vcu<>RE6JcMD z@DShkQ>oO-@(Lj;rEsL!gNN3rRX_5Pk1+Gn(qcp$KbnukwOX}OsQ^F(kC>*8LC5RW zbVC?Mhy;KNqyi$jF)JAzt>bM)KlqLOEU~qyX#-s z>KfUl>uWo|_6z?it%I$#ShEHjuKdRT84?gs0M0Ssh z$+BWVPC$|{3?p%20Jw1e!WVt<7v-`!)3hFX=;1&4lRtjfyWaB^U-5=wF|VW?IaC-K zBSe?+-S2)kGwZtEIBZclIK6-MhVOctm#!|HUe!vuq(nDr;LJ=c3fj85HE67FJU&=_;MID15=c{u zaWqN-RtP+7QaK*GEB5=nR=v|GcbgUIc1R602-6uOlS!HR3}n(shy)1ZwC;E_40sm+ zBylQkhk+z(-W@F&&+ljcm;%!{JO@ECJCn~$Z~BEFYy0Y(zW?V!sWEE!{36*1r~~RD0D(D(K%4LVPdTc; z=@sMM{j9KbdNz*lfzT{@8287|jZ+W#~zg`2ZWOC_DA)U&kgsmg;5T8zt znGnXxWC}sfM9wMYrWjPSGibIVn8odF^#|o}%K$x{otVuQrtSQU&<#YvNQ~OyT_(OW z{rh>914lal=wr<_5?Ko%0F*Brz90hTu^Rtm*p>!Czf-e^nsxL^8O0_{6_5xa8anzK z`v?j?jwVqf?q7lIF3+9C`7~+ zQA(XXeM*3Iy}oH%fC7+0KVUL9_iF={@yW8dW0^+A^1$nX3J`$>fRd;|zL-Nq-}l!y zwgSn2@fUxk8`hV+_6sK`OCz3}1O}#I|1)q0H`ZGgi^_kJ%rwMdWnRj+zQ1jVpIz+nc<`i=G9{oUUk47_%` zS1J_&l1epqRQ^GhOqw&f6bTkT{^wC~l|_A3%Q?eHG%1l!PhUJ+zIwxJ^|vqGm^r;@ zPL+U06>x~P2zb$r-76bGZ*S|vf3bMqBUGFQ$?OLldK~yF48p)wK_J6G243{h4+i~C zOF_T{mTlP6sdTnr<}#$kBQ`#gH;*_5SKLcV2_J(x5>zBfqrdAm6EH-<&6XV13$6P` zfQnH^V=6a2l`k|0)k>>XyP*P8^)u~Gv9ec^>1iiFRg6Hu6lov@`T&xc$0~C&j_z)( z3Vek2gE5RkAuBv~(~$rWc@%~t0G30n@0hPPJ|e*wSLubBfmDb>A`(N&vL(10xTH)L zFlNViJ;~gy9Sf3Ry9bm2Lmqxi2CR%@zZ=6(XpEJVpf1Upbng}16Jtg~V4%YpM9!q_ zv}40WDZaMu0Y1`=yp~S4<9S{f_>SWUV%HrE2CiXPk#2`+8d8Rx_JJsvi^yQK6T5s!FBqLjx%oL{e(hR2Zf^+~~p~gv3Z@hJ}i+hQ1Gm->dV6L?CD#WJpwg`GR z-A!h`mpAJOfdO&&(G-ROy>`6>oNSWSh=BC*HFcya%}`4se)>l!93T>sJf?5Z{j*>8#mFgS0wBDV^4oEJMFCQED_hTf zkY#6Le!`h4fdEKa5EPx3THEM(oKsrn)R_y-cDL2)*ccWK>AIci*;$GS_mtc|zH93z z`~KegUVxe6%Kb=2%%T5`K~$6%44MQ!ngHk$jb6Y(Pe_?5mh?hN0jdP_2fCNXJ%NT1 z@m@nQ91Oa3h0;pdu)d!Nf!J8*6Jqh$yGaG_COp zgCr;n<)8i8pGDb9N~uR4dE~XPeXXX6Xg=v5q*B+eUUyx$SS+qAEg~x4^8i2?0+W~` zg7Skf3^hXlVl)%|1OOsRjIQedjD(T8my|NfoBHsFKYZoNm56BmC13KTnyxWptJOFt zn7|xMC*OpQsspabMyJyyK@mMoC?8oGsT2yq3OrAeM(gXl5>3fQ>^7lt34FzhfkDL~ zX;sK(Ow(|^@XFQePd@!@z0rF4%OCraFa1(Yh`3^7GU$kR8kKaal*_hdoj-R@2u&#^ z2qF*U%$YM0w?4XPpZmF=<2ZKQw2>eg@_XL>?g%W>H0>+D@+)8Wx-Z4ZhG|%!lzP{@ z-u>3MzSZ~rdZV_oyoiLzNXKH#$GZoKLID~1>BS2#zwyj_H?M9lUsxf>1mYoyIb}^> zINP|q(QP(&udPjn(wUo#g%aZZ>&5i^g_Zs58(yce{?T_yBQ6A~Mrl_HIR*qI028vN ziHU-l$`&b?M%zL{paeDHTY@1;DZr0ceEqm3)yiIUONNXBklD;za~W%THrLs&?^mkQ z^@R#u={0-J#*S{;b}pYOH(`}su z1Y;vIA;ECnpdYA^Y^5}WfRxmADIh?QH(e+Nh9|8M4FK3cC%+uSRV3NSGUR{(1%^r? zG7yJM{IM0kAO>WiGaCwSD!vY%unOhlDoM<0JWmV(ZO5{0YoY|qiiup;J%C&K-Clnn zr3!qvR;%!#MfYoQWtEwm&1S3J4M0a>`a%nlY(2|fhk3xtYxf83UKjV;x=ER=lPhG+ zoP#J36(9p1tLH<20)auKt-NF9XC{;%sF=#qYE9QMok$!us+^nJOY_jD!fxC%(#w zy+rc9l8CYbZnfGG91)j#)HDHrL>MRdxNh(lfAQ!4^}qhtYPA|AVtxC!e|u?SDiKVC zSouq;>sJr-yP~wKT)x1H0|q-=G_u*DvJ$qUR0>y+_ zJfPsqD~DFA)xPJuzq?QBJ<=s-GVIIOt}8|)9LtJFB!SE^V;5ODwwcXjr0Q<(?8WfW-}+l$p3CK#6@X$; zN&AjS47k3&+3WQqAZYdU3SoRrFqh4J!RLK`loA$EdLnt{haY~J2;;C~tKImm-}=pF zv-$Fuzx?w)@AC{pW5o~~6X{yysu_mi`+luj-gSus|Im1y3I5MJSQ=dFDcUJCP z{y_QK*3^9~L{1V8WMQY`r7aPg)G&7`xpLs*2LtsWiZQ3IFVnDee0BMr7XKt%*9NZ(DS?f z1HdJMJ-g9duO}7QwjGtg2gH8A>-oNJnxK)VFyORhYSMRozi%Lu-y4+OTDhX5pU)Zj zd`iov(b9krX^49zcV`?K6T%R7DL-AxF@~*nr`04jtdp)kmOPiBH5VVjWT? zzZEr#o@FWpcwqDia8QqH5_0kko2GI3(lw#nj48?MBK8Y& zD<}Z)o-kwuKnyD6y(^oY4o)vWkexpl3QMs_oc_;<)Gz3Fm_yUHkdCyGe%}KYW-55i zAW%dMs@v^G?!h1b@t;NdRMC8-w)cZS_=B&0^{WM;lwsVM#v6-Vh=?D;%m>^RR(`<3 zPLW0)>mY#;4570M{Gd;UBh0h{iU5#uwPF~?;?gn_s>7{CS!aX6AX3E2q%*I4)vLbX z3%^hZWCo>FEGZTpUgRthA*&?ui~um{O#XvwOSFeKGO9v4UOnv{iwu#RN>LGtgm{*SEbWw zR!PC{SOpjIg?zL;f`+04V5LS{N5FSWmx=+dkTijmo;x?|^>;U(QdhTT&n}_HNv09$ zSUk0AlHS-Ym$!CGN@f=q&=`%M5Xdp7E}UvyS?^aHf!ivbo<_$Sg4v)(ENTXPK^k1~ zHG09O7&rmbkng@P7#ZKJ95(h5@dZ|>K)e-wg_IyH&gb&8*>JyJDK}dEt_HbMNqCxQ z_uX2*T_jpQwoOwkX()3 zlqvG2Ce)E+9ztX=2zc{5XUW0DQz8Q9 zdu6yF<4Ax&vrNM>4nib{+iA5r)oL|r9?O+orC112EEF^$1_ResnqxbGfI%QME2CQi z1J~=;E%d#hSFI1~ji$m{Dr=^5sa!529CL{6P%_Fm5}u9;T}CleEMyAI-06FbgWR2d zw_Mw8?C)Kd!pfEA(}n3waax!Tf?zsCTH@mOK(`5u!>!zYHI9hXZfw+QwKI=AAWY+k z4j%K-G!yPM8mU47$I^ck2mk`m0L{|r#loo!iJXKu((=hS%STJITn*|*00y|RaNUdB zpT-eoATz~awdf-19+rcpdpblb$TV|RQEP__tu``y`9|jN^xpIPZtq1 zMY=*ztTEDv?Z5b1>I)1O>?AisRSB1fWrEF$m{Hw}7ijYHG2j$SzS z`vYP!?M$4^a90q65$?fcTpamU#ak8hyBrKsIS1pud=wCLyFI1A&g2+!*_A7orIeAs5z!|efBbO(?sU2lCJ+tQgCMXhD?$Li?c2WX)vtb)CXynC3IK^T zRtIvr<#L&&y7cUG|Nh_q2SO%hB#;MFo|>5a)^GlL%MiXB3e6@b9V)(leGL>B^O3~- zJPrpI2abwi2ydV))BKt@z9F4SF~^+s$Wgf=Ww5X?o6F^JRFnizg;G`b>rtxMM?d;e zDV6UBANufz9(&||+e(2jI_>`b54@u9y3E)g_zFw_f#5%I;lCp&P%`CMPd@oqg&aW$ zq3apCoy}z$&pg{`G&7mZ8xP!xlsa@Lh?7ofnB@?L!PTpm6st%O%&}8|9J@~>)avST zlrt6;zKlrofBSF$?Zw3f2B=nQZ++|ABbP5yG5(y-{_I2lM={HxC>FG8)kPEvm?2Kw*Dv_F?Wo={X{23GikdxSJJQ#feMBaP!Qf`|c&%&*>t6RIs zh&)UQRzNTs5GhpS>19b$zvWm~%F=BM(+&tR%u)jwMLN~nkJ_gkr8V zH#3#5w=4V2UhPAI?djrzNKI9xRUHJIE??gpSe7+W$V_A{$Ken_GJ}L9YAJ{W;E1Ub z#t$A5U~Cj~DUp=|!ORc~_2GEsK2!{d3<Ic5PoQtk&NJTO2~Oafkr7dq}d3ac;a z8@~7d$x`Fjf8j^dra>Ga;&FbW=tKvRY)L$~qk@Tk@WkMS88!cKqt%JnlZdqn60Fx~+% z7{bZ|n*cgX4Pvl&cndJedHJLmB3%^Ud*IwyOnmM(q3=2H=au8CUY}O=Jb*v2ZbqFj}bEgN`!;X z?zQrbCw1&EL@dyhIf@x61)5a$^=sAkK$n!xmnLWD=bn4+vZ;wMl*^MvxBQHO{o>pb zk^ofq)M6`ukZWtZjhdIAIageLNQsn0am+(|>6-?FHi0y40|>`&w(kZ2mTqT4)EEh0 zOdav#s@sUH!gfu7Z>O?AN4|D@0|ebl=M|0Lp_2r#6MMFd43(y7 z7cQJ<)Yu!aR7NU|!jK_H2#IN$XV0E>oOGfsRw(3VXJ@6q5&1=rJ@#?}R7wgGp67Nt z9mjD_ojR@S1|J#;l2X0rJ@0w@+ul*GRC>LhuIuH!-M75ut-Vg`b+3PYuQllPJVufT zuI7UQX=YTRByvL+5DdeRDEb~#TV_lOy--ilWT~hN0fdh}`sgcP`KqA+8bS=GjCW4G zUN>^k1c~z(&T5(%g>n@$X@(I=6~FI&?`t#~@BN$i&dj|LnE&KYqYC%?QJ&b>e9hOU zQ|ZI)NoK~eu$*aGk+&APeV*sVILPzmlM;|bjWv7n%p>6SD|^>SFJ~7^NSGWsX&5Da z=_qzLHagY1RC40f3Rybf2v;$+$<@V;=PvhKo#xs`KJsJ)0%4pxG77ljIH~=`X(82c z;2ios5^1JBOg@posH*_VWmj^J01xjA1A;;ZMFa?_6v9!bg^2~Luv6`G!((Uxv1SO% zu~Lq0rEDW*p-#XOk#34@13piu>nOK4`8knHO{AQHqne#&xzVgW)32{P#ntmuXFM%k zZU?PibFbgt-)1M3H&c1kga!eTCqtc)a40A&$=7X-5V7ZBh_V|53QbS~NopJznrDfD zU{1QZ5cGjZ5|99TVIa|9rBI0BQ7PZjT!Wgn=n=C7;SJn=AOp}9h!<9-X8fj077A?{ z2D)a3hzgKC2|ecB@tH&sB%a(pSPlr3i!hN)W_fwB-*+4JdaYjX_4~r}!cdv9%&{K? zpqYl#W9|(CD>Wlbor0d*)(umV9Q3@_pzO=)4rrK-HkQw%vJUEmqao1Plp*2YGYHK{ zS;f?JQH8**cDK>!wR-)|R;RNcZe13sT&6IYEza8cX@fLWq{fQhGu~al0;KeN{d6{i zfXBy3iI<`jSNHZ&0rWh`JCGP-Fz^_ZP=05>wzg4OJpbzK^b#T_*Zz}k7URso^aUI; zRYYD2Q^Gx3yXyk*FtP5a&_IkXr)(2O9w#$P)PU@%Qx9x3_Nvu#KU|+)o)u{`mK+%N zjRacGnMyBB47@?D)~Ymnt<6?@AFe-}pI**SEg0EJM2(Sv{h+b6dHEwIx=W|#w0sI^ zxO2sZVsm4o-e@TWX(wAeb^3giZ;Sx0=N4?u5kakAo0~5ROT?lAv7dHJ%3b2vvc%Tb zUbWK6PMw`R_lVL`AsU|v?D^xS1-&M5Xj?uH1~JBuqPC z>9!lhq3xJsu?=8=e&5yglyK4k5D$;?Bm?ZkUP6Y907Mjd1rrlRrG~2BC?J(et*)Mq zxb;($la^%)O|W9A6tg5|R;=P`^$3V!et!0iZ~SV{b%}vNGAlv?1O{bW*128IhHj$J3Sb9_g#EIF+@m9&!B(w%r61J ze|YeFvMlzM_n-gf*Cp~l{G4yj^}<&^@-k%g(GUHpC3Hi>FZkTgAx%$b3lZ*-N;#ku zDhYgGHx0`SUH`%_{GwOCy8n5f|9P6GF)K!?SfNrx^y=5V`uo1`@9ymEO-)V_kODPP zDt!5u|E<;K)mOdZ6^JZDNj%IJOCr05p?~F9e8q+H=c0r$O$b1ipw!Vg@m-_PjHEy( z&6&9P>OsKets9n3=1dVVsm;d7Y|c&2Y7~`&9MoF-!PTkLt0HYBLnV<<&z@S|ySCn{ z)P!Yb7G^NnM|=zknsEfZP&X-e9qZWdWYYCoJLL$?%S;psbJJtmSi0o2o-Qpsd_SO> zC=SP1Ks=vRJ3FR10PMS7CRVzJlapsgYzp~#}d+ngs>o)q~5B}iy zSgD+qQ9t~{zZys#5j|;r-S_@{h8l1F#UBBnul=5X)s;CGMj*3HCMws~x^McqAIRxs z>xk^dp?c2~U-x(abyue8@L_PJMI$dohRW6kzxCg~C!=cwN;j>Z?|$QV|3q6BeaB~vdwx3}Ht?{+tz(S(&QOr%S*dTEx7G?0#H zND#>-=dst35pXo8dY%HdZRc>mw;Ad%fI_c75CEv*k>q*w1xo;r07buS$Zpy(amd^N z27J+nOi6=zT&JFyZ@F@wwO=`8s{G?O|Fj|DSH9t2%#x|3ggYLa(6n~9|G8A*bs8JUF#K6~%V<56s4t9xZ;b>1lDQ4_!bqzaA8iBH}mOThFAj6UC`TV|tGL!QQj)H@P*jI3=b^qj-vny_DU(UZoxc zY+I?^*|X=P6zEXO?!YrSIJ+>h_1xbG3+?$SK#ubpk0FrB)f*K#lGxhbuWYxo#if~x zuK+D0S^Eqjr5rcS?{x@5!!iJq*MQZ)J4EWU$=jknPMR%AGApp#Z4yW;WsN%{s@n(9 z4hbrPkxs_6C-zdZQJbzJ(=;s_Ku0qOJfeFt01BZY#;`y0p^L(b8HR95WFzfdb@AeT z=gyvk1Cz>aBN6Hbz_4W`QX)L4y+%Z6SiqnO`qD3b9lsVdjbb^AxIBkx7!i4$nRQ)D zn!>mi@0~B{>t3#MZ+PJ;KaGLGhr^(lb+byBqX+eb&VwW$fFqU19*a zn-V?Jw`I6788X10ZHNFn-ashscY1a%LqxB5?BSQa;#Fiinx@D22ts7>?2)D;o6Uab zcYY@TM{5qh9jVPSt86;;HDB{}ilrb;2%(|&+An$C7r*vPh=e9cDH(6)rZSF#FcMY! z!Y}$FL6OBHKYjt-10#h8S24SI@nu_&cQ$YAFX*~e$^arGV4U_qU`~~mG;R0ln&0m2 zUA{JZ@f^hkmE&(Gi&F>Hhu_ zHj0Ib{Ol}J{1ax>BwMH#q*j!iV$kD?;K;}juY*HB1^IZO3PF*THO-=33_%490S7L$ z+d;oM=rwwsX06$VR!31=ff9yRnk<>NX2<3HPyrsHpd?Vz`0(h?ZcMTT1lF>~RBCEs zCg)a~RCg}nm#j!Km;IAY2XS? zBNzaKLipH?XkckQ!A!u%f{35C#taBV1OSd@+cUFsGqXVu)LYHSA_UdzZuBg-YOQ*GE4*sj*~wgSHd~t3Q+Whr)Z^m!45Wr32TcJ9AYkRX zE-;uW8yVsD#$gZ+T!_pxkKWG^QN|1w={5~!-7@6xU0_7|I1S$LSok;z`W#=`3~*Xl ztf48v6>3lVpu?RNz!)I9sWs9v9s{X2T>b_9hjlB+bG}IpIW#-bNV&DmO2^Qp4dyzNYnAaMAFI=01s71 zfB|C$xl$n!fmB0z6A6IKz@+KPZxI!7;I|u|+p<%JW;uYPfun?=)9y4HPNrm)7DF@v z4{aERmduQbnUW)k-2%zX0E8ohVF+DChD?!-_fff-FGKnM_SY+hGDkItN#uZrLL#vio?;-l|;bA$^Sg<`kbvU3xfm6d?Z zqhpI~RLu#AKxjvfiW8H>5ED)i2}hXlO>ntVDi#||nDj)$(^N!>W@x;3P%^UTTTMV5 z?n|)Jloz(PuRZZDp_;4b79o{x?(GzpXJd8L_)oTb`&X_91J5qzC(oZo4HKRROI5$N z*4?k8rY$^ho-%gaxgH&n<2Xn2_TzX2#jJo8gX;yIw$Kbw%ApXDutcOLl}sNj_Z)gDAapkvs?~iu_ClG~!vLqOEbi|eto!|Oz z-<{LR(it%zU7eE76B#^lXbDsHw^t##n8 zR4O&gG(As-Dm;W+Wi+*IONHT}-^tjPsSD|Q{cbCpisr+x*9`l09Xwrmy3XlbCUROR zmqT4ckvJ;H9wdNd$_iMrd!QKB?Y4TMACl6DH9M6}6{b?fY06Kduo#Uvl^vn2{5751 ztYm$Cy}naE_0atyZQb^sNKp0mjZ0UAsV_bJAZd7fO%>waN1qEJzxb-J@+pUiA3t_V z(!AUbZ#lk#VsLfU!EoJ@8=8_kZZZgY$ha z>v@2fNQsaHKu`$lDeK2BKeNxAa_lFcd?J@|M%w*KFc1VNz5f1<-K!sgpqWZ(Q!8^K zmj*G^b*3Y7z$3(3Me7~}QJR$&5~s4x?1fV(5GekY257ZgaOrB*3vCq6x%(b+2kwo{ ztx{>CR^2Z;)_tqR>+k!$bSj*E@GOdZhz_WOKeyc4y1uQYrWYUle6k9X42c?i2AdX! zo|(0f;#)<)%)oBnW7N%5=HpliK0yhY2}0RxD-~E-Yn(vFk_WwkWZg*>PV&4??4@d~ z6c8~7BeJOiKA1`*9O@HFU?3H1UL8*3@vUMcKqVCcK|Cf7IOw$Zu7C*A=?Mr101QHb zL=IJZzdZ0EO1)LA6fnjB1R};f*LZ^f3;~ah9@CwIR}Ceq=w8&gMHI)X==(dkfEu2z7A=ZG}Z~gmtmI_=nMlT-HyS9`t@hgETjb~ z87f2`c_DCk{y54FMJd(IlJ~?ciDQZ;qauYN05Xsu1|~oSOo}C9ye9I9EM(}-)$e{ zs{~$vij;s!rIlui$RWh;pa7w3QpVRl?v!;2wx$(BbR_Gy6~?{0!y*)*LLGqtli$iX z(NW81B6<|e_{=`Ly`Z++sBG7pwR*eCxS!6Y^ToVf${+#a=%GV+-p0e)cQho*V|K2P znaay*v%XhvZ9iV!y^@(+nOHb~y0knccAG5wkPg8DKm|rG)PWgEOX?~R_?8x!!WSH0 zW0EAhq0?3c$r&P~Th@BO@#G>LsVj2`FS3qo?1Ohb1t1WFV<-)S-JIX5NfDvjF z#Zs|YTv}Qxm&=j6B0>P7zz==jk7Y=7!(qej1!3Rwo$Op_3g7JpVK9-;I=WJWMz2+O zYeBVMWh|$&&OvF&Tn23&aik=!csK(`6~i>NCvtW%H>nhNdeQ6LZ*=>;y?(#CyK@co zbf!3+EzUTlX%r@+Bw>QDu~J@dpy>h)9d2uh&=KgSiFn((T)wZITpBZ~rUSGBObg2!DS&x+bFS#obTa7m2lil~80Co}=~wz}2QhPBDRL7=vD~ zBP9_5jDzGP5ftkrL~8o2u~UPdu9na`9K zr@dCoE*4NEt*HPu`U7$G+O8W~M9!&m7emF@*EiWdZ}?kVMG}J znE7MDi^qSeM#}mGO5?EAtpg}4a$+wPi=*|dDh~j znhYg_&*PY8ViJ<2NC}7^vH}<#)!4yHBuJKP5U8-Ted$A9Z>R9kIdGeUW(cfQ7*=oW zuw(w#YkvX&zW&dCva7lIzV$0#_LG3{Z+`dRHv1v_%!)beH@2RuR2nlEU!$aw%4eiw z#joO`$5I_k;Ap`D0vKKj=CPAu4C5m|I#uHg3K;q-3M42vS`PsfA~WCnxID(hM!mIC zNFkZluVGb^JE_1myA66b}1mEvySJ17d#>2|%448^8qPh_Vj(ovK*pFzV_ep6r% zSj7Q&r3L_uafMJI2?mJ?raZ7tch=fIURxtsFeKR@fqKSjNPt9*k(f!KB~oeOOwTOb zKk4@djcTj9*{tq#8~gf=&0;Z?DP}RBK|%40aBr6MEQBzY6ORf3P(zw7OimUf5U^2h zb}G+q>|ae47JmKTe7&E&@2kK6zc$z)AOO0l5($HA3-?Vw_x(A898E_aD6k-LJ%(>9 zV?r%rL`!$ip{ zu8jTZUWW=16Hp_06c`l(2moOki}Uk~vvc)&J>pY0eLs~-xn8JL=y^dHDk-IDnwoC7 zp5N~WnauP+7ah0f23mf4(a}Nq-Ck?I-R$<8)jIE5wiY?e&O{DUDMUH~@g*6FBgPgA zfJ_0!D z6c7O3N>ITKLPe&PiWMywKVI0Gf`spch_?k;lu`sdT#=EG0dYh(q+!s25LhVYVPJ@e z$FpsTA`s*&e(k^KOcPWLs&A>c|E~Z*U-45Q77+2g@A>!N2d&o4n&k;&kRcQnW#(oc z$u-uV-d}&ZvQe#VY)6erexg8y90(iGQdL@^HxboauJ95nlzSGEMD7cahAWamTF z8R;g;?_;%q7kbh!$+Tk~2wg_2I1&x!~2eOniy zZq3#~?~2Ku1WhbfL>9F!L?A!9`Q)>OnRIS;8a0BEN^j(x zOt^k^cfY*8wP2cBDVG#q7ioL$)XMgy>#bUyEF-%#hcq@!Pa1H=9DARGpx5rTTb*9F z4}k*EH8gXjg;Zh6C`^NsAvBpxK%bxyKpO#x8HfNBf#hNRMU7cUks-Yhf(=Z7FZ_YO zv)(8pNkB$TjdWB#$@t)-DbJnZ+G2+th6p=#D`>5>XVZnV42)`8Q~*yuF3<&9`}shQ~_htf>hK({^Tc;XHQhGFF9=i|ZBF@^&N zuFs&Eb_NvzecZ7#2I%$%3=ByiivbcL41|$GA0nd1*PpT36nhv@`hsX>`lX%2S z0ageDfxV33I(7gG0W9e}x#}o@M~e19*a#q7p+|TZ#vmZ0rV|ub9?az@y5;ry-bTId z)*CyzUCouUQG0@xj)Zhm!A${p#G^0*Wna3o)Aw{BdunE>SektHxl5%|DGbAYzgH?` z<|gyyr$4Hx-sIdV)DZCQ<>zJ3+qk+FD(Ccluha_jKG}?T>xL8&K9fwFx$g`eg&H|j zz8h#}0n8L50W!jiqY%P)%cYW~-)-z6O3Y;eIeE&V*GEPtTS726PTK%VVgo14`V;$f z?`ZEBt3m*}_umqS#J%?VbK#(o%{wAx0dVY(fMUPZ?e#+^Gi~Ol12hP2*{`&Xxs%I*{ZDi*cFA|v{2mmA?1t9<`6u^8d-7QMm?PHha=-KhD zE1!%idEe!JeGI{DN_M6I6i{T-6Elt7OSSbK(zMLXBqmgE!qn3IAn*s3#{Tv7S@SHV zZJ^=fpcV3yOLOIo?fUkfV_Eui34n)qkRp~0K_EMwgK7`mzUwN*Mo6ZeS<1{#rV0~A zc8X9#BnAx#Mn$z5I6zV{VhyZ@^cN-u37{#+3azNX1g03xV!S8l`~`pl3dUqykr_ZS z0qIBrh2<e8!$Apk)kECcLBPh%%WUak0i$AwWD} zNawOnW+7-*T9@~03_()yoe6L>M#fQAK%*NB1}?ChNv8_=d?|0d=@)-YFhr&ybiDBI zeE%3z_jM`=9ETRA0IKTQ&qQkCyvaBM=P{vguUDNi8ofM0DqJrDo{DvJKZ&z-;Q# zj28q_%FwoLA+)~ld4nLEo9YR!w|jx7PZTcX7Ic(@UVXpcs__1xz26iNX7ibJKBeXI zXz8F4A|L1dM;3D%gsy{G%uN@wio;gF+itg8-F~}V8?;G*<)q*aARzZs zAK44NfBL&WJ%Dh=v;NID{gYYE6zZsc0TLq&VDSC_^IzAp(9?Ut75NYHjkAjJxSut&j1Ud?uMjmVU(JR;U_nQX*ZLLD1C*PWkwuw}dR4 z`xx{yg$#-DGI-o?wFQ%tFF}0IM#d-O+!OnBwnUZt1=JikJ{(6@;?PTJu06HC{)|RJ zZgP5zEQ_qTRc%Qyi_=Spnna=_;*xj94dNEyt}YWJgMzSG-8OVEa%n^mhW5bA9wOan zdlI`r*!J3>hUF!IB|rdPe5#r-r|oRfaBAh<+|;sGn3JG0A~KGmM+`@Wx$ZsYdM|Jm z#=RKxi{xh>KgeNuGl7gMl+8+`wkMFM=I5M=i6dg91gK+aWwG3Iy?(#EwlRJ2Y*JtZ ziJiIWyyrLf%G=l0mrN6LDFF03{eEi@c_)MJ02MKyZ5N8uld1fKmY+t`L9!I;615P- zn2#C?@KE)FphfHgsxcORJSf*Co2ca(vTAroUNjdyzB_kbErD48v{ATBio8|IM*M>_ zs#)$-x9jE2?oO9?noiEn7YnIU1~p9TjvvEVVodV3O2^6ih$tMRusnTXW=@9>2-RSb z1<)BdvY1bT90=(OavwZz_xhQ7z1r^ey4~*XMo`E)6ZuTOkTwkAFaW#27NC|Wk;b@6 zFVqGM2r6V05Za~@G7!56DFDD1g=ao~F~R7D0!5(U)57jvedYLD26rYio1KaN zYcv~`N;SG+=~PN81_0Z(lv4eE-}461jN@cjm`%6u`jpGfbdhScu5<^p`MIU(W&I$) zy3=XY8x6P7ZiY~^(`F{0j{XkgM3g*)N8vsO5w`|p6rDmbl~>H&e(Tx}0a%WWbjP53 z-<8Z}+ByDUE6@lOu=4tT$cT0ZKE6hPz#1t*J$KOQbYO_Uf(d{CAwV!ZMiwX}GV>Af zSi{E|p}U%D8bL)11Y;kSLcm*b$`q;|$+pgIBNU7Z450bAcq4;PNScP6tUs<*d%Q;j zl4wW-09)uzX3j~^E~{3xS6*-KZMEv1R%1hKY&lbf>_kaV*<%umLV*z~`^H+m+eJZk zu24L4;o|ih>q^Ph)pHSvpNP(^F4%gozVRHOmz|qK^CTWxA^s)kt?syD{c&omjZy7a57#@RQ);MsR<$>Fooz9>bHqAmqAdL}C z+s-fzToXVO)Dt2!3653UQjb^MR=0h9Gkba& zameySgxt!a-*??sd-u7kb~fAY_?{vK7HVdyu$U=MI)zEi&LL7PR-#BK5DF+(j~=C? zNJ0-(Mfp|2E@CkBmy+(Bh}kBQ1wE(0W=`(NnB5UMx!rxa!{bL|tBq|FlX*szAeby7 zQ!8ci6U*6i;h?tDEN`_dTm4o=TiYt+ooq2n#R7_v$AY)Ncg(kTJ29Rx>26xv_sQ-` zJwR=Ya~l}YvqUGYbtes6$Z9+}*&FzcW~b8X)w_dgPpYkUK9{yKDbP_vUn&~OUW_Wf zQ7m&L;{7Wn8Q{gN&vzUtB}!uc3GMS!IH#IE#;grw#+%y>AVff%C>BcjLf3Vxm2zaZ zWoQIl*C!&&(uqX3JMdgrDw#?-M0#(~3q6_5O?Q#2`+W$!iNZ>0_8|hlTi@$8cO!hn zZ`Yga`-UkZj3r&jVJN51s2_8Ac^+f)GgE+Rr&7dVtf5eyRHV4i{UUCvr*l{IbK zz5~mjj-HDG09#HGnumw%f0pbjgPv6T79>y>3Y@~0-K4KvbH^_wh)yl6!WJq zTwLGYX|>vCFI?Q**a*UKa$;h-lxprA$lb1V>V0eCoV9RK zk)?nb@s?wT&tOM|hpFH}qZ9FXR2YqCE~bj}Aqi%HkK@&00$>h%^@`vyl}n9DCNjI; zpcmLqQKSk!#}X|k^pq3(j4;I`e0;?7PC~zlmQ>sa>mX6}Dp#JU?_4s4Ts(V96f;Pu zhU#HR482MX!OG99qMlYr%nFeba`8=?^hwE*yTyQxu7e6?(5UQ7Vy8HXpsQh$vPR0t zTIN$vzpEeQzWMwAZ6M*{GtSbK_1)j~U7Bw0?(O{SfBa8N3yYedQ0b}Ml;>MGB7{ z+wHxn+nvktyj~pr{0_cZGKcV@8L}c!LV2=RUVHkz5HzM{^O=R&n+frXlO2m(W_C3y z^|;okRLL^ai_?f0kGV;wiPfdu=Pt{E->;JDSv}(*ji{`6k8WqOGMmEx<^Sh@YX-~T^n?Ge7o=&lGO56# z?!Wtq|K+}wR7!Xl^caPevNNfv*?DgCxzdJuvsdf*vNQOhfB5%J2mj?yzA2D^2#AwGp5eK?lu2w1)U};%~=lN1f!!R7j ziDn|WVBmVJAi`dlv}WH8rO4zaTa0^KO$xoKLSgpIoP%MvvEQke``x;`@0TlkO6+6{ znQSg&XESIJ(x`16Nr%O4F(dZ}u4!9Hr~v4;hzh#>fg;3I>ejBTZ9^yUU0<{Fh&lrT zd|bltgw*a09(>@zzV8ZKf9*g04&R2fA1pR~`S{iOw$y#-IH|w?OTXx{di1f!`n`kv z-lw7*u#|bz;RpuDgMmO@G603dfrx38NhL??$)}!bdi_^E_E^{NvUaSwM_{EK-Ff`O zk7qR-0HU9a8dS!lg}*Ivh2pZ9BoLJx_Y4aKiJ#b)eZg3@;s_;W%IIWgt@s%B!JuEw-{qkD&X>dO*e~k z_dNz$TA{`O!#P}%20D;6&pZ?_Lo!Cp+7@3pe0LdUWmQ5MecO(V^Ch6{8d7`^} z-869i>^Uu$VIqYPJ1PQ%QnFU}m?C!Qsv<|C21KBExR3Im}a2y|nQI$dBW9#E^5hm5z72m4dH6UaBPvR>eC;)sh zT0BJ%3JAm2&idnj#bLWJlg}(KpcW4#6eJxl0*@r!K!7<>m~g$y=5BR!+qO+@q5ui8 zK4VRvTH1Z~x>TBxnXpzaqLyVc6{A8@Kx54<9nFPP2uiRETw}j1a6k~iO`sVI0Ae;# zpOBDKAYKUPLV>I0OL{R;3MZuPf6T5dLHCLCvKLD+==EI$|oh^B^fC73B0 zoq<_xLcIs=c3hH30*LYaPd=86#_{CX)AXX?5eOhr?*>vJ*qR|=z<{6ODb)f2iDsuF z71_ylyS-bkx`S#em6B36T1{lI?Nla}_B^lMZ6P87MBgG(x7TMWGueDwsr`*QDLI*+ zES)($ZHrE=eCV|7b}DYaydyA7rR+>TZ4~n{Y!XKjD1P&NKlFoiHgjifC}wthecdoX z6F18uvjhxa;ISWsUYO435jBM$!!vaJS4ZAQK!$#Q(C&9MGCW(69_XQO2rtlm&qgo| z-7p;62Ihm+Ivpfph|iB<%uJ@4ezZ2*EW9vi1CU{)0zp#6Ya&xN?Vw_lg$xZ+Gz3|X zHsY3MWi7jqN-3q1lx9wRgPT~Fpc2d$0T8560mxo=?TPaGQ$)e^=_O-&0+9hpfe~=J zTKBfMDkw>pfurjeA9}b_?_9mHcKXa|+fH4+@&q%SSy{ButF1lf2Cb!~2{9@+rN&xe zNDLJyV8zYdsv8)Kr_Tw^@j)=)9bA-gy)R_NNb$m#wgQ-Tc%`VnyT7|pMsQ|UA51Mj zq$s6G94Y4u{Ng6bAtJFN4x9BduuSFBagNI7YS-q z%ZWHXYL&?DDs?c$*a#yVCIsMtu~djLK*X_ry*QX4ae~^8YO^RMgrHb^l2E|Nq(TBd zT;cf!x9A9#5(?$YZuQ#Z@6u#zcA=13oJWBP7nT{uupR_8g3yFW&Cj~7+bh?1uWig* zCS{zYRo3&7mht?~MrCJbW8RreFJvVMg~Uj=};7IOIHH_I^~Aqj_h6l5ZUNTrI)g~9=erP`}*RrlA|)~d#SyEIcu zPZtP}mA^;??2g~!gtp3KYjdDO&*Zv^)x~Ln^_`s?ZGY`rcK!iv()^x(_%C}hCDB5N z6V-HyA_OB~Q-K&uM~UCB06Aa;3E-oK#EK+?01!u?CiUW7F$kshP2c;oIjaB9U-)su zMCOxT6-IIzn9Jp|*=&DlzP!I*sa0)D*EMUiexmxz+2ndM(~*8n%(iJLz0n&!yu>Sat`1 zV5girziAvwe=x`t^GLUP4LAe^(CvUCJ6i-Y0Py3d6D0wN2n2wEAxWKswHwc=X7I|D zl~QQE@t^!S=~>+{!E=djD?P@n91{Q6xBjyZDnAT==70QqGZa7mJ^xhb#K1zbh+oYh z%vjdbPdveZ$7N9x%a~>uhPSx0x8X7&@FCD0fbzmtxwd_!TfV9Zf8p%PC^11-th=GM zwOwzwdou!P%E@IAG1)0A?zFo~wXeNLVLzU9Q{iq=? zf)4kRyz!(IGb75_M*$eROnmsSK!Rla#xdJn5rF3_D_zpE1rPwJVG@i(A;IYk^q%h; z*+?*G^S`u`*u0s!ecFsh-~A%<~l#3Zwe;$ieKTBZp2&=e9O zY4N#eL_@@15VMSv|Cx~vY)p{;@Q)NTNWudH6od$Zc$ECa$cI3Y1jZML3;+;FO}RmR zYwf9bi?F?LcHW#UAn_RWBI(ZJ+As(qhpmq9xz5xiYE(S6BKyAE?d@ORnu&<@215KJ zO_&j}J_wtewcV>9T1w^2;zCHK1R5u-k3U=pieSL13}H<}4^#j&lEaSaF+d85mCgDT z=tap^qIz>TgoFX`#d2L3pZ_p3K2SskmY@Myh`LtFWD5)F)rT6}*XujicWzYdt=);~ zf;~Nn1|dQszMmxB-IO~H%pusFV5Z|whG@p%qYiFH+qY@k7WJtmC%baCTiM^MsEwUU zW9w?yPjw*|q60h>SZ2b*tBMq7Qzv*Jgof}50w&yP!EAvAdp%!Dv?bkC$%o*@GA0RT zFU$zdS0Et9(_X^8D&svW(IEn}1SCXAS=Q=uR4#I%QmK~9Rpc<0%J?#9Hd~R4!i>ez zq-ko0_2;_?h(wO#z=6loCLkxB>4va-b=S~%BA+kLKeBk<3Oe=n0hMLH->C%=34f<< zkUUTf%jJD{003IbxeJ2ZKUmFl9H65r5zNVS(CrhDlPO3P3TR9x>V+8H9*@D}eHSw# zP#gpz!sG8T!m%o?Y=$tS={cP{ip-Ea!3`M#a#q(IKp`nvGn;nq?1G0<-gK0s>U&39 zuy`3O!HSg2y;^hgnfmSxL|@O)+|sI+PXWb1idk)h+dDN~Pjld#L06Ema{l2;UtPYw zg+iO2o+_8i^?Kbh^p)jh4Z4kuXN7D{%+8{QNofHj0_IyZnTk8RWm3lU!bKA45Ji$u zL3rzy@HlevnNUzgYp?BA_G^rprHhXlGiM~l>Bz`;C8xe{!+2{1N+~ybb#=j*%>s_) z@U`0@F(UMnFclCC?L_zM#6Ba85P>O?3GNRDK@b99B5OjZSOu0KE0xv_6QKtn0ZkAo zK-&vM;7jQT2o7qx)E)K!Tt6O?>bjw80uL>r9QFsUQWBXWvm6tYQb}U z(hvOj9kfhC(==dEQUwyS*@DkjzZ(z&pa52JO#_MI>%RMc3)y_rFZ^>I4Y%KruBYod zA_jr)xo$R-cAN|{Dx?@#?e=Xg|LIh?)iZ3}bifE_3UJn^9+cFF-CJ_*kV)=ZNmk1Q7 zK!EG+-&lL@!@7zh`dM=_k76YL!<6Vh0YmJ3b@yw{a^3BF2rA$6ORI|{#Kh_4?PmZ} zL9D)>^V;3Ujg7*YWgO`uqJaF;ob2~H^}+V#kE}dw3ujUR0a8*9Z_G;x1b8ZFfUFA` zAcu@<3?*OyQea3ng`U0O*O7EkrJuGV(0 zZEd$`uQ@R{nVrlDLyVrD+bB&T4npJGf8hVDhpRr%BBGMY&3{!$e_aVz2QV!uC(%m0H;!jS46(!`5ruMK>i)m|Kfia-3*CXgwKG`XZ2yO! z`LAB+gq%V&7{+{+7u6Vq5>7~-L{R7`b_MWBuga`$8k7qXGm}%(6H}c|yHc)pE1guz z)-|Km?zG!&sX|?+$;m0hFq+Lqx7%SRA<%McU#fPqQ<|7`9INBG8`pLX9jCIHiHTFC z<@3;QdCmQHZMWMf*J?qdw#y({AUgJ)Z(Dd+liqe5M7ov02{NPDvzKlfeV9U7S*{H0$Z#PQ2}+%yIeppZa@_G91k!)4|D zn_vA8P6$8oUH{Y~6XXaGCR9q@6Eb#G{|S$l0z(D@Nh}F`6%6W|SE_5z3GV1ZPR~ym zbJL^=K+Ol;4`^$r-fnZs&Uc$F3_{Cv&YZt*-{s3|TMB7)dAZ;B*48$ZlBZYC8W{Mk za%JawE^9iaJP!42j(91|JT8eYyMAS_oyskwrWQif6;L9xao6|pGpg*PR^Dj{t2BTA zE6u{ZL{p7Y)?v&rsiN@W7>#(WV?IipZS@e+1}ocWrBy!1*o&9SHAyyzI}2!i>eD!uwq0FKntY# z_P4$55B}&+l~Mvo0wM|?wUR{Q+rQ)6KKrvii!jO0#>gx9rC>#yGZ zKG*eKYjZ2V~;)d$Rm%W97`z$f>jclE;>x|55OnT2VL50>MdDi~Id2OfC+ zO07|D`TK_;JP;0**bU1fWT>D%Q3qnEw{7H|O zC-Z!?A~ldnsAZNOPAy$*?%t?xU)|lT)i(F1r*qEC1X%{sSiwHxal&f|b}N`}%PAIi ze4YZ_oKY)kTfiZLPwaRdIy16hvhbS72MyK0l#X{G+{eHF4 z$fVOtOUpt)tKN9x^17qz#bUNpI6blOz*Nv5)XRg~jb?exbSxx<+gn_do*4C%1HgdC z$k~JpJm~do!vYxy@)ep4lpuI7`kQCjW`;6k3d=>0jX;s7gbWPBmAW7L%I^*O0f1$i z*-XZ<9lT9Y4j43rj*rsBcAz|v0dXH8L`Y0B-?b;DSSW(WOC%?6P2#158vCrez3r>z z^~=(23lSFQO8L1-Gz2067#`b|y0^VsO{KCq8@r8)9{Aa8e)-(PyRH7Utv!Ww`plWB z$;s!QdyWC-=NAgu6sT5t;}WA^np+rFxk*xckB9piSaN;08e)2C=^~1F>`jRi!*Cb- z%&JT;GP6tPAJy`6KH0a+c>8$OQDNC>>0O% zRK~I_K3aZ62!Thb(~4nzW8*#VdGEDr*N6xKzUdpk-q0Nc!4M)2hpI%xz#snbhyUo0 z|0r5hN*Q?|reOdgt03?Of*3VXEKOwdxwXfiX*OFE6UDP<&n>Q;DNQdb5E@95JXN$( zY3GS+*ZMv8V1-C?eqpgVF$si<84#4@sP+G=zxu0oyFEQU9TSeFlsh}SANj~f-v0Kt zf6nK8&JX@C|DaIFk7V)_`W#%ja^=te{Lh0R_=>Oiat21gIDO7_gWvd#-}vp{{_QXf zAA0!VQ>RW5vQo)-6yu+-uibdZJKpi^v(F;p)vH%O>ou`(zFSu(#faS0A4|_b8Ap!C-_0OCjvDU*oVLs81}9 zjarC7S74!DL{X67Fi;{teb1$|5I!|5@ha7@^CAf-QA5-Tt-{=W`I$v;f4#PKZD+5> z`!`C{`Qmhe935{%wMRe#iQGm&W@W0H##Mn$U>PeP#2k4B1?Us@5PHbR>y3`G$pCEO z{_4;D!>l139e}-z&OiPy{k$wde@=zTi!965_!i14afQp$gW*d!L zyyR9>27mCa-}7%WTK6}8;a?jjeunD{A!6K~B$WY=uV7i`^73*7p+s%betCClYAT&h z*BedO?FkJIL6v?clUZDv2c~+x-s=s3x!3Kk^*fr-qV?}vd@O3Zqp#MUTX!t8n9t4U zC-WJ*R@pHf3-02mu-osOx{jK5bJAC`Mi>MHf!pbS@UNy%J!nrY0@{*Dfd+_*8R5k- zrBvE6qe_k}sNwZr_1I%QuL}Ue1!p8r+(G==3l}kEf8c}fvrHQR(vHD=GknP-MHWMW zDcJxP3KX#q=m|Cm69uri*43R~c?96mnu**ZfH7Ihso(1Q{(uj3s7p)dAKa|E*LJFs>CEZVGZT~B+dJ)cC!I+9Wa*ECILRd3W>&rPMAVZ0xJ zDaItUPPhN&H~((6T8+Br*o!DlP9g#aUg&nrOiDoby4SsKYIb2`^WQg{^+z6l_#gb> zKgyLRTLae?0|WaggEze4tLEnxuV1_7_6MK!npb}3w|{%&+t`)^OngXc_hoqH%C&y~ zpv(U|f9LN+BLe`44)6N)8-MW^e|h7^wLkpBKUi5=`KE9BMnOZ0P3&n%sUkAHSlZKHhQgr zWRvw`ZfUhRvm(+30D&k#D=a){Z9e@sjp{zY0j^@r&!v68w^!b|wy|JaBAZIQ11+DP zSzXv#+i7nO6DWD7fKFbDzPppQWD2}Pbvyf;XVkt!h=5Sb?z!iX> zM)C4-*#m-PBsZ!ZsTfE{k+Wy-o0~b)uWZ-0uhsVU+WWP_gi|=Xd~7hp0tY#LpD3hQ zQ!+=-;C=|d+O?^RpGz|}l85xNfkIVxqBnBA*1CPjY_uh}c z#O$~?&Uo8`3K_>bdunxNa$;+DXJex}I~xHl^VMoOGRrbGO*HDwPN!SQ7f!8CDWxiv zO0U=RLVtUEcXNApvQ(IvnK^Z8r5SlPwfaY&zCMF(W;S9+1@DkqsRn~VA)8Cw)#ED* z(^!7+d~K`JuI=qS(ve%dPC`GE_lO zoLQPX|Im%C+SY!R6`nhLdU|5A*=%jBuQTE5(xN7q1FyXPoW}jh*|VtOZ6p3k9r{r1 zZtNmhGt1{$I1fK1Ahz6!Rt_Zp415XM)0#aDdRYd#Ax&T>y^4QjMgj2VxiQrE6u52c)& zoAZ6Q(`iRmEEWMk0LoDTN-6n0?|DyzX&8nPWlufz)KjNVow7^|l;lAx^m-!aAWKby z>FJ3oO!8p+g0>Br4@fZK@ z@BVJ&sIXE*`t57?Bf!ny2@VMY_M1D;yg$M>9E;~puTn0B1RNhG59Q!no8{_G1*E1K zrTL}v#>_IAX@z!x!$uET>FJrp`(Cm2><8<$edf*5>E+_eGV}+%c4zn6jrj}b(bk8~ z4}mdLEcsqzE0V5xe9_KZlPi)m28GxUy^5yl0tbldrU4G4u0TjOg)s?O2*C!RmvEQK zh>8TWCP^nSQ&Xo?6SHA`v%d9gt-haAByc2M8hb3v4*9?QUw$NnERS3d4LXk41?Dk; z%yUHlm;URIhmcWVz;R=4RqO3?eb5~+W2unl+A|R>hF~bPQA@q)=YJ|hkN~KVX}BW< zX!fAehHBII0}cTZDWB6P^H9nIAq&OGK%+F1xD!u~lQ>~Rp~7KhC5q>n52qjiOdXm1 zlX22LSaM|{o6B6tp0Czw5xP>T?9a~4Mp>zq%0cDG!N4mOi@L7w@9!VD7KOt6{JiIR zVbvB4?3GdC~}w6ljV~H>92IX0t6b>HMJGA_DYWV3?j?nL2&n)y?X5 zr6oD)mCj8T3t<@ExN$=Wv9P?5&sZYt_x7&!+WRvzdEw}c3h^#ke6`J;-hdZR-LIvK z9%z6kZ{M9vW9Cl)YR`DALNmL~dId;j@>!sJ^Xb-~;Fpf1}x`YnnKB_6!QeO2w#vKk$5ywNz^D z#(J;smP(~4!AUm+-%LOpmTpK2_l7dOeC4v|x}}wsUaz;Yu~DzrBE6fq96o}E2qdUc zZ@=v=Z?#QpX=OR;XaQhlb(Mr*<@b9Hp$3``0D)o^ff5G=vvjd~Y9(auhEB-n=tj=$ zB8M!^Xa&~|Z2KUOf&>9z$bh3miu&^P^$j9AckW!uaS&7-GByq4!3Xbu^wGzn9P!9k z>Gub@ObUP$#x947cDlBtr-C+k#`iGI{-8q4L=A>%RJ6PVWeX%k{UTGo^0>#JoiDjx0lUY)2CO+)_{hC z$Wbhfo7XlQm9C^re&N*Q*@ua2Mol8d!w8OjHY5qUmYH9;U)y^6z0KM_(Pm+FzHn-J zaOrZ;bL%%Yisw(^sB#<%%r4G_uGg#%HlBI!>4!lSW+nI>REV31K8+4?T+We|P?!rU1i;%0RSfzrfEM^r*{-Uc zebb=HxhZ|3NTwFw#YC+RHPB}!BFv|?v0L4%)vkSTP}!JVzE3MHkVu8GuQC$z7|J&u z*O-a{ex}ib@|1t1kEO+coQN*79YE<=XE;iFFshR;^D?(gh2Of#J} zm26g1L7ROaD0(%|6_?Ln+1TB$wwd|D`Lh#+f&{+0cEgiFX<}l2dPaaNJ3HH#KR|{| z&rJg`;vETl3@YIIek(n3%3i#n$O06%V?3UWdt=j*r|lDI$dLuz#vYS23t3DK0Pz55 zY4<@ZVPW!wopNF?X-klI9DM{LM5Gub==A%4`lo-Ql#GV#XD*zvY(s((fd)}mS1jgM zRu%;*l+22~&Y;_M?MxbV`^NP(rPNFm+sPN=A|b~m&S(Vexq;WWY#m4eky3d5>J1sni9&H< zVNNOz(MAkdxdbgBCkWM*t5+F#D$>N6JgA+*N6HaG`M~x8V0C3hXvEBM?l>t00G4GT zqOR*g&^VEl5hDL;cXt;6&YwRcgb4iL_kaH#|Lwp193p(p8{haH-}#-fmy%RZiFX%+ z93TGhhaz%|l=AaG|MO!sDY`7K>!s7FA!L8J^6hY4WDpRL^4;pz_H%#3L9i0X*9*gc5Z1N#i(Mv29YPz_tysfPNQukR}O3f(8?fC&A%J*LaM^>@j-@&GK0A zj}ZX~Gdaj)(sEXJ%e8u?9u;5-*DmL0SBg_hW_}7lFc}I-0Wu2UWC)5z+9+jGtB|dC zf@-r@Yjzs7cDtswk&8K}lusA(8J&Sp5h&ykLD5jr93?9ehn$D57c#Rrnm}}tv+z8O zRl=?yqM6y5()3i6*>&mCr3g!zpPN5>>hxi$`*O9s4~S7i=U8U5-HEVbAw<-|M7kiY zc6)zsuT`&Ve#JJ3bh>RsfPoczJvSt0_2R>RuitDodY$UVS`9Y#rWdC&bF;B@T~e9} zhzT*jJe@71>s$Nn_SUthTE&^u6RQ^uJEOo<5IUGmJ zPp>X%7^t9qaJcmFHDMo_B*EVv0ttN8+L9M$(BeruYB@89y1LQKMDN>p)fHkK*W=ZR44XQQvISM$UDV4Gl?P(5h)cu@%TqS`jHRo zn)dmh|9L4p1saAvU%h^v0irame6fTqL4{tY*J-phGi_&z-2kqwZ6L$hvu6!M2S6dj zcy?Jl&&d)6k(UyAK5;^q@B329gRCcJ!ckQ$!dkWbwzt1E0zbdxb*~$^gUE8Z?84$a zLg@C}%*x56QRsj|D!6>*id1TGaUqwR@Bx&Pgeoa-6-ssG@)ZP(N@ZnodC+uL3YbR} zO}KXLfS{5}rJ{ALc~rx zvgYJO5fGT~fa@|c6DU%izxCYKl@BqyrMW_3c@701mCOg(arduo_6KZDoSMDxD498h zxk?(92;Y0OQI3eBLfjD-g;Fdzc4 z+#vwOfIz`fi@g*@In<{VW)zr=B2nSNvD)x2wFsYLL!0X|OZK_)X}Bdf%-0Trj~Xel$bI`1sa4{Du86s_HT zs3r_@5G(dpM3-CDD|-yCeWeA;YI zM6X;SRmvI$XgUOdl2|bTCeX^!gdaSDw4Q_o@6~8X>7gX;$P~1)I6pHnvAeVV)RRw6 zM{Ur;{KA3F)oRuKaxDUZBb58hnKNM+MriFb&pcyUR#XdrE;G6Q!K;pAjMIdUb5Izd z-}l+b@x+QXlbS(PZZ{IIi&7T%H>%xoYkFy#idiHYmzhHXQAn4vDQmx0*{Zhop6pd` z%r4(=E}YRsIz&*caoo-ig#?a2w|v(Gu<;)zSL6;%n7e)zKdcg%m=Oq(0h8Ak1P-|a z#2zbG_1a#2uN&bf&9Y(%LNanXXQ#81>3oW88;J2pf*b>rL?dLYQVaKX>xSVN$f{Ac ze3ub2`Qq&28M`nYqJHJ-je4sONEa@g%V)BP&}wzp*ERrEb9RY4Cmqr|mP%(5H zhr-0gNkoI=anecl-if``4I={tRz!#Zf$s%U{mGyFaj)Auf8p$BefFz_rhv$Gy@OT~ zAR6VHrp3zhBQK@ZMl^GU88p+C-K~1934l>Es+0<)922%07H(wbq=S))BgY^N!-_My<}P zrvUNJAwa<)sX=r7nd8@|ny(}DW(C+vZ$D?$?kY>zD-6QbBpo2s@rUIoYHb8+2fJ47oZPoWWjk4FR>+BJD zy2hDYCY>))K7)paBoO1;8URem8G#~+n&-jxZllwbmXUVbJyfn91}P^sv$Wz&Euxn3 zSif}Xa;w`XK^M-Q%VyHdN=m+Z<2ngiT3#xqEmZx+^(WotR%tqK7IX2w?raR)-mQC~ zv3%wnkr|+dh`=XN_)of{ay%M`3>z`15RnB-_WBWC0lKxevHQdmPXb2V?k_Cl^S}X1s8!1KMw1ZEo;j^?;5KS* zs|QNYPA*cqC_&s<+i3SX4E*@xkN5k1!!VMrAe+g&=GCt$O%wnCMK!Gw%+>Ix2MzD*T4StnRMp*)oU^gBCkd_O!hjgd@E%EB9LIz_A6Tv zGS0vYryls~@BY6K`Pcv3kEFGJ%IL+}(@_^*snkg5kt-!M{b(ajVd!6vAS34JBK+R( z{oeBO5;J(77ae4|TyC{mk3I6T$V++bWseeaZ1L$xDX(3-K}3;<^YqhC|Mg%0weS01 z^;KW_UElF-nM^9?r4Xz57eWvNMn-~K^>)Ngky1YT=%W!(Lxj0pKEiW4old!0V?boS zlPCzXP;UGBM{4U&6M1u|7L3UP3IHVFSUVP2fmd$qU)v7A$}c`pI{gq(DgZ61d^_%~ zB{OQg<`j}dLz`GxxCmQMziWGKXHigkaUtk??N)Q|+Sc4fN2GMXvF8nsDhrRgLj^*D zjUq?ds) z?p-TeyOqhwqA^oMZNy#Ykxasv-8w9Od_;nbgn*zG)A@WlyU3ktqgicLH$GHff4nd; zUzj~53bQEe5DgjU;e#STU=|3HJrhC$H7iTAnUq@0Hrky^vm3!IdyW2f!_!2wkWZKL znaQl7fo6iIP|~sIIVqKsuvVU5iOjBWj>^wTfy?X8H`gS3k zn=Iu^`Nipnrk$M|`)f}(_UipwYkFbEm@c9gZw3=}ZDH%#Qww$>AK}t&^TuvtlTm28 zWji@Lowrh1k) zN&nyc+P|{{_&4AE4>Lk?zZ=#L$S3XQZs@xpltSq^W+s=-(lMwfvJD*BBu`a;% z8*4!zCrX8d>5`@f{k?0o%}dz~6<20a+=M>iEye)D+JRL{O&fD(6zTC(bixGtJEHgrL!e6Qvo95iL&&Gy(Dd%jHrl}00p4hwOZf}>~vOW z+8_VvpX~1J%+1ey@fUr*PQ$vsH`X@0ovx-(`XpeL@Uc=gc2e+VlWse zR#Cx|NTDm)QDjpSlNZikh#i%rm-T%=BAfs~ysnP`s@V@E2b3qVA^wN|O3&>K|N%j?hR*q=YQDheqi2E?JbvjUdT->vR! z>?7N=s}H7D9*`m>S->bA;Ruj&dkaZpbe!px`JlIT^}`$2cUFa-Us>v3c3saaZ*9(; zTSX*bzIAkydB{rvi?jmhMdplRlaF<-h&X;QpGjmD^u^m4s0UC2#Ol28DMgttZ)lFBEsF^~Hy@q8TlRscjG2y^qr>`Wo7N61RORlQcJ z?pT?r;_Px}V&2d#L}C^|#2}ankrV*1)Bun{5>980=&-`&*;+fOH2bwivr=zG7|S~G z0mhO$;ISYC0)a3@r4ST>dZDpEI?18G&1=FWFoJfAh2mbdyuGzmEAL0bUr`H|N~g}9 zKU=HSqUcYvvU_^I6#88Ng^mSxl>CzY0VryB-HB56!rW@#3mT2qcDZr+#zrZZnaP*V zJo@>K_2=rl*EZHGPO~$;Fr{T}Kp6i+M5C0Q%ccGOireXXy+PmYc3aJEYg?igB9UfU zPR>YY?Nq@@<#i{ALIaFUFc6~vWCn~OzL8i1-nE<&5#6;tL1Y9bW`Ix&!4BCmr9dy| zcU*$Yy~~@M6=ScQ@q3o^i2Xt?mCEOhd=?!G1tRb;xeDrP5c{w*K<3-WAI5wO{?vm(y#Fd|(of&69 zGGepYh!U|7F-o4!X0y=`g%I6t*Y|wKvK6aqm#_TwU%kt5oCwFrWHONt(;xJOuAN$4 z5fF9;UDFVt3BZFtDaF-m*BR7wl-@8uGaQI31&RTPK}ZExuUsdh=wKqf972@i<@pqE zZEaR6Wy3Hc$0^G1X67IWs@1CNx)I8Oh=!pNA+tIX$OMQw{>ZNoLd1m&03bq0QmHiX zfuWQP$uC4qj*qNXtGxLwzZ>|$#fujs39>_%2Behvd_MBuqV2F!OoExmd8I0jR4OGP zP;O=W>PG?HsEmnL%#1qAB!0%7&E3jQO+jkz+^bUar#_26=4EM>qF*6e0jw z&is9op{ig1=+3pZ`E#e{PAx+=jf9ANrxXH?V?;KHB4`tm(*Qar;m2c@xj%Dad&mjZ z9q<^xOk$jNg~GNorwh)?1I_Il(JilRG@4uG$(f=vJ%Of{BrqQtyQ5-0s{23A7E9`k zCf6N@>g2{`HVVNPdVaGSxyzgTm$&yXiBvj*U5e@4Bo-z~cMuF<18Ah+k3g&d0z-uc z>W3IhS}kPj?QXRdVJyAfdT*=l3(+d&v&FnQk+pPG2KdZ@fT7XduhLEIyOU1(_RTv2 z37naloSvN6h$J>HUx`|kh+CLTXC_O~7UqNwFf0zr6pNK< zXwFTUJZxPK)Druy+jYHx+wV8Mb|Yw0Ux^wcBH2#XN@cBd!N_FM$)jl#=s+5>#zIrk z6#2GjfKr4w)}GuJS|MO&DU>3X03j%!A)uYI(c1aGM<2N=2EX>3zhDIXRj+*Il$M^c zCd_<>Gz1#k7!fchUW!t>Li@l!X-57@uio-?!_=i9)`Ol$>=^*2VPz+0XJ+TkRF+AX zhX|7E`OjUs>ig09#>KOzE!&Dcu2!cT1?d3j?CL2C6%RVw&wWVe*6itJVH~O@k3!^6?7UEz#x?`Ah80Z5h&JcbtUR{ zej4bc0X(snu#M<|s95&vo7daTS}JX4OEYF^(gX9i-}08da%FCA<}1Ja^@dQOLPRY* zC}?=u4}!TUI9Dv%DH|9WFa#zP2rw87B2=JlG#YPnFpdV4*Nr*@~*|dx!xf6)2IMVU- zydZ*h{@&mFd(j>NAof+Bd-mC1{H0&|i@*4b_4OM+{^LI$xiK&X#W2S|^a_Q-YhLr3 z$XkmzCs8T-M;>`(W_l74VR(omoy)_yAPj%+_kZu|l`D?pL?`?1cfULCRU>dF#(83{ z4x&h$035r08Zw0a+SMn)trcc+##8|a7!#LRPB7f?_W7^bdNsa>I7s{z% zAc-0XJHLD%1#Wfox$Wzl^A}b~5Fi8M9g}oep|04}w2TBtfq^G=Gwz|Ze#}Q)Q5qi}squnNohLC`=tl4Sf|%Zr<&?#dzFyZ1)O)1R$`MGD`MT zVSX~)ul2h9PIteuy}!S6HAFLVSDgH0HaBHti-6j&M&ziVqvDX`$RJ_#U{2&`yhW^a z!b-DSZ+6PHTD2xOgo-ehQZB+{Qv#S!5y}{20pK|Q?_RFf38-=hi*o|$FtK)OYIS0~>RJzW_x78e=8fw;V6bfK zfL?g&90Nxl%U)xjWh$MW_q)~2y@B3ZpI(^GOyqzVP$^JE3K)=v&o%*4#!jd0^aOAm z%Ne-b?YaGdH*g2Np4aUTdKFdC6d4kPX=TiG)^f5|CU2#3x|JS7ViU%ATzoV+c1nDh z|l&6XUM8%D%aOUs3f31N5V%144hWnpPT&!>~N_jr0|?4=}e!S-I= z3&i5`8A2lfjZc!iK6MX?W#lvCAsP0mY-y@o_YM4cfRv4gCKbQ>t8oJzko1c8H7r8Tm6lV zEkHbb_Pk*^0Hjzc9P#j(cec0d^*Rwf@W6u+`k@JAW?)LhSp4cYe5GX?u6KagD5VzW=F+)r;B^!*nPwbB z0!7`vcYV8S8km+&@d{UPfy|ToyazMy(Mk2%DxE2`&o~<9Xf)Af>u= z`3f@@i^X$i&smmncz$48#>-#+n9#&O{>T61(xofE|NDRV{onU}x~4Ix_>u;P9+Xll za#W&njjwvut0JPyQ%^ndwzs|IJHPWgH6auUW`At1 z0Ws1G&Pb-ii2@CUlRNz~PhxlH>B`m3$@42@>j0=w(Q%eDVUN4f!m>Q(7n;iHNv^*5poQq z5WojiV^10b0%D@PjiB3*u~Q7u9|MCI_=5vkiT=QIdjsjV2ZLP~5EU|z5pC46g=Ugw z2ty~K>$-99QP)s2P-v{1pc{w;K!|`K7$kt?UQZ3We!uGtn$gtl^(-e~obrk|)r~#%k z_Qd33Hea&r)UcQ;f&!8}Ou_B+dJ%hGO6fRuteKhI!5eGquIoj5`g5}rq3l8X2M5Qg%`jq94GMOja_<47qj%Zi+Y$d{u3kfgh(jNHDG7r`2(h|)I!YLeGP0svHKo*eQLP{dA`c1x zB0YczY|(Z7wXgl+-}sGRf9qS{8qr!JTqPltGcz5U=ZEij$2&GRHzFr(c6Qb@3?xc; zqG1?DY6RWxLI0c{Hd9Qa+Ih$<*bnME``4b<$)8zWB3;BmLgZmRuiZ;){f@M=v$Gdo zLC%a%CL_JzX7gr31?!-tCeJ-8{9dcFCa-PHo?k{?5W=n0M-YdM>DZG}3=&3mBK!V4 zVHOGy0W?7tVUU?UpPpU}%WLJGYrFe3sH_#HveD3r91|4-jU;FBs0V!SJI1kD2FjSZ zw3$;Sr4+O~Uc1}r^xE}yv%VRwS!AYDxrxYWNfjn_D+NG^VuZBBSw9$}W);lIe8$7s zO3SM@2lYm0uUe~=_bm;J`Ah_}9AGRck)=RHR+2+HcGM?ooG;`lLd;|{=QHOUjYd>- z<%zu;iR)dwsME1PTG)?TaQHlN!`XU&j(XT*BiKfZ!oC#J!BMs7_&@(g@PE_Ltv7K2to*rG>vpa)3h)Q zJ+}*CAUGrpHI~33f^uxrFf}9k$F|6}z;aL%sPVwiETz(lU4fmDHw+_(R1DY(0RR;u zOYPtUo3(n=1vaH38CoEPKokN}hdFZ51tCo!>IzYU#zYX?D6-V*bT41N3V=>3b^hEr zUDpzsjq+jbPTO|QoLbhE+uFWV+j=fn(DKW(D2~=kVZLo4dWOMXMfqZSmMfrcgKmXv{N-Q0^WE=y4zf zETa6Y!NARASV~3$1U~t!k}@jado|LZWRS0kJdl}kVEwwOo~5va?l|&%Qyu068Pma1-nLmVYQEv zwB!?6 zH$p=wX6-`8Mw$p9=yW>mK?H+#%jJGq5R++Vod_l=Oi```riGx#+88El5|zL}2hGmo zLOv57XoYnvjdrcs->!ByYM!n)C-Rv?j72kxI>C|eqYQ0e|S1Q#if-L3o3#T7wR=1n=YNK^997hVBl#xl>cFIbpO(KaH3icHR z$biE=0|F=G_&AMgD9NqqVC6(9XEJ1&Spfur3{)6~O34EYqrYfQad0rJqEDe0Em46~ zK86q(>l)cvTemFJ(oM@UYy(XbkpV~TUF<;}E-^zjhu**Z*6-Y5>tDV3mn#|-1MUC$ zn(vqmu+the8og$#2a2TPP#J(4qb3YJlg>=f%;pOPKuXwWA<)tKB*W#+cKgz$s{oM6 zWX?x&ni{bJ1O%dPw{!jaH2^rfx?)fe>|fox@*yh?6Q>qQOE!>H*ErT($FM46%uX?_ zQfB&)odWUL_BNV|CvVv?(>}3!Uy50FYx@HIbT$J-z$)=MyR89$naWQ}G}KA{^ohMx zIx1j=pfr#|`C&JbIen&E+qNy5oSn1hmeI_BFqtewYj3OkreFO{*Y_WN-9a&uv6KI(8^rBe!~xBk|&ovsX z*X#8t1ZSFNM9L%@mcx$_l^_Trz5lD%uXVfKuYKcJM>$||D;zm6gMn)p#;Mb*%JTq$ zbTh`R84RDTr!Q|Z2n~a*)^+qQaR{V?62QU_nNdVV>j7YPW+t1>ji=E$v@pI`WjulQRBas|u?ab|*2%#kaI zh|$T`YqiytWdSIGhXF%S$i2$7C%s;!P_i-$lOV>*J1ZFM*Ba%Pu%;%@Ji&Ukuh(~L?K*8#v&Brlm@{%|q%nj9Ul?EJ=+DJa9a#_x zJ#7}!C7xh6;C83m?sYr0=67vj0CN^QIEha{x{wh;-DbX`kj3)3@m*?dMIF`@zj6bksZWq%lJ%|?W!Ac~Y4=bl(jEPGu+2a6-fc0YyYUsfKf6pWb@= zY6zsPJ+r&^43KZ9&AHW8tuT$c1HuNf8EtofZ~BejzINkAglT;F>tAnMmQeE-e*fwa}Phb{1gA|TXe#V=^>gx$c%~uKakhfZy?dB!|W_h=!P+2CX`X> z$yjmgP<)J-6@XC8O3A2W{-3|`o386lPtUyOvtF$U0a5{BWb%ONxF&-z?W9&#mI#4a zX@b7wOTOgYhxYcjzx`z|d*syVQzM85AAjP>_rCYN0Ptn6|B|Sl0VFwQATctc=m1R9 z^nE|->mjxwEUW~(gRN)VJJ0Dh7fvn3zEaXRhn>Oh`VOen?AeFODM}RMRpG|sWY3RH z!OS;90!R!T0_s+7_WoC`J@MYwUfC3sUYbP>Z(Yp;6+)QHTa~TnCKoOMWh5B45Se9+ z_i?PQ#%D?vHQgn9`KVe^jIJ;OnMk@eadxV-T=III>UN{NS*uh!`hCUKseUyW8u9J!WJQi~z)d zrtO$UO0!djnGsGZW99R9=JbN?&t5Hp2BZ;yWW@n12o<6XdSSn( z$~70z(*!t{$fV6;K4n=bAYcp$J>>A#$Ziq}8J*PFzH=|p-uSBS1bHkV_d$e3Av}GmIeYrFAc}8LOwZX^U+eYzlM|EkGewZit>-=%_|26wb6PGn4$R*2B~@{pFn&j+ zs_oY?HEqlf*(r>-$mu<)rt&GlQ6W%*{Z@4cIm{Pwhzw&A|E)$h1S35XCPt2{oY9Gw za$=vx#tf{43T0=1_sSD~b4^2cVs0w6Fi&OOVWIC1Z zbq9|>@r=+Akr)I6T)J{KLOG<8VJM$@<{8_z@4xT#J`GP4a` zw=F9O0@Kjq<4-cXVxEZ*Vr^|b22`X}^?Kv+$3OC}cl~t~_sV25Z+OF3tSql4eM0=h zxR`z9T@;HG!@O>#ve|6Ju6gRIr=oA)^gsXSKlvyB#IfzT;>w%f{N`G%7BO=o&1J*T z;&PC{kSN#Wa=COm-EOxll`^Y14*&_2;2`LfcdtF6L2q_xg$x~V6a-~ZA@6N$voxny zE?T9}Pc2=1`Nk9PE^jwj6PfubBmm@NeW3zmfxdx$ zbMI8;A!H1t@`9k% z9qjD2kV1nvmD2NhyO7TcWJDRKrr|J0O~G*^KI)>VI3fl~0xHv3FoYP#hvXDHYmBH^ z_&)bKg98t%=MOy9v(2W(x@$NF8zF_JJxFN3~yH(s$8pH zy?Q{=EEEnnlSIhCNn5>Nt?umZrYz^o>b&4V_0mVZ&i>5elu^n9@-5z3=3BRxiU&L8 zVeJ%jLKG)-hEHinMF6uLH21d@$@F9qY1G;(X34!~SCL^CXMkw<=$>FHC-&*2>oUFs zhh=+N2~g;F_MZKK-`#cc=G4NX$T~=I)(rvb09vhD|M&myKSo^nUT*+^d;69D{;O}o zQEgqxh=in zU;XM=|Kor34-b`0IB^WFUA@Y{r&d-?!;G6+LY$nO5JE^PFI>3r*`NK{0#PYN1l?{Y z3g8JLPOUDJP^MuZGJs$(o_g}xcYWZwXV$vR2#T&>yY`#E{pQzw!ONFdmyk$G`sm}2 zzyE_DiYmu`u0&@~M0N3-Q)H0=1^4}syrO{|A#jM4>aLBT~clAlB z-08U~qnI6{|IDC(6?fJ*-L`L(&ZJL0#ANe0HxF_6oZt&*Q;c~jphl5b1r(yC7v>i3 zd&Sz5@2zZ9O+<5U5(FL%a}Ig-h+(FrZ(O@!npwNBB+-;Wx7ja^FE}Y|b&r`^jHDO< zbreF&*_q6I>a_2-s*UniySnXew(6VvnXH-1XZ499>S8DygnU%+R|4LJp-Z;}W0KD_ z+$1K>kYNE^0>C)@J{J!=eW^Up_XFRJCV}g@{-Eu3w;AFWLdyU-EOgBRG`toM8v3R% z_Ds8w&lgK2J(D6J1QJ3pXfY$3f$rj{FfudJ^J!U+d+Z<2gbOt`Paji#o@04mtO!|S z+37VIl z7$;T<0A>)nX6Tu0Hp4trT6g<{2yz(=2A%$aLm;Ij)Cr`Lnv&p4=(Vui3TdOEu`~@b zO<|e3Zt0q?2?2yef(V5WfQTdzK~e0w4*dlMtdN00VeEwrBPgVRPzgW?B!{7j{{kt) zK)L=w_F~|(A&^2Dh74$cFD%kZfz3S$0@CMB&)74w%18wwd5rj2Q#tOUB)0$=74TlU zeC_%TO*2ZRLX_yM(NVp}Mk|V%A;S67OBT5GwWk{USBeu>c76gy;-%ciIQ~{)Tw_=A zLG2XlpmvJXOvNXy=%==$0vxJ#*=v_=$G}{ATn_=-UAH&TQ;V1_DG(=j<-}eBWl{i? zh7!Z>&ZQ5#oxRe8T{yFharrF#geWYV@)mr1A-zX5F9}q zfmE$#Q-(6ifHHJr*!U8vAdI|-NWIGUeI;4SU_6>0bxwzur2(I=Ohjn8zTHfAik={mDE3LNQECOu}JtMk0Fj(TAb~PAY;m z8nu4EAD71ObUMTHCv=?DqlfnL#~!=y!hM=SN-0(hF&+GH<*2)jP9&;WuL;2ireZN> zP1nBeYri(iD2qUqKl`&kd-TyqEX#~a(QBIi>Q}$!^NTiNIZ&5BwyVUyZ98R)Dufqy>@vUFcfJ!!Od=Q)=H^fA3@A6 zEmwN}?&D8I48=&}7zq*+8m_D?mrA7wT6z4*Cs!Aj3dQ_Q*8vd{$0?yHI*wyIPP~>v z_FXq>fd{=q#HBar2O-8IZkE7d=!JuU59k5*5tvXW12_giJmg^_2s$t!hzRgt1_c2{ zrXdj>I3xiFGMdUTlu~lYfFw{6kWdOFBeTY=BM2{4f=L&q<)llciL(ncuXyxx1_Yfj z__x3IGggTI_B;O>+NArSspr8iQw)21ocx^vmi z()`6!qz?-$C^k^bp{QYSax$I(jBAHI_uS>5 z{n?-0++6#iANq&i@b%xIi-ai%?RLA{>y7_5F-;S>T;4PdU}lApkpL-WwN{I!g+kFV z^mv%Aq2|l5-l#EiRG|!klQRlEw^=O*;b3CAWEco)001Z)NvZvc+w9XIG=BI;eoSEh zXa4UW%~;_~F(Y(=fT7QgMl0aBfC&M!V%9WKDoqjsv%~`vVHob0%gn&6U}Qp&Y1p=7 z>$)xk5n}9DppwHb8Zj#-Fj~K>33_IyLA5APE$ykU3Prpi|k3T-!lwUsJB3$$TN5p2%Z1jRFxE z=wmC$`2w=9_((o~@^MH9jx}dP4!qz1fN=xq2c8>!i2i&8B0yjQU}8Gp?i-frIJ%kA z?X+g4z;@6u0dxcbNPs${P)G`iZ}VQnP1Wd_k{r>yAQ*AImlukD+|luS@m^J34P^cL z^(Wqi*gO652S`VtTi-hlp>u7sT=w!8z9>C&zFe(tY;W1Ny)ZwY%Vdd&leZO-mD<_f zUEkiCD3u~L5kuDq@6mZnJSD}<@woE*Ppn``t<3?z7Rw{K;uLX z{!`XbQOHcd6t>sj{kss>mL9!dI2ur#T2CtEtq(rwh0dwhyaDa$5b-3(;KV-NO;Z7> zL38Wb>g5j_rnhk4S&`C#a5M-oKr1lil}dSF|EHh*`QLfV+rHrQzUcq>$^XN)&GAl! zM`ULtQi>zV-Jkf0pJ+Dg|KUIUhgZD(6~qhzhoUNRM!*q5BN76`a2Y4i0ph67Ko$Rj zQh6R2RtiiT6ec;zikaeGktGoU(9J|{NUCy;x|z}O04S6S5MxIrGJtWh0Evo~ zQXsUL@q#!!qhz?lEDxtF!w`WJGQAK&At53WB}vA_3e-ULD_7t5C+L-zSEr1b3DCyG zZ4_3Yz0qp;`Gp5cXC6@^6QTxq(@=*2#K+AyPM$iSWUsycOy&CHx*k1st0HS3?@Hst zmi_R`)9bmZi!*0lrpOM-h;P72SNd^qRASE~$;MQImEeG-t2(toZL3w?_WJD*0>jdB zrEIR4qm-VISmIxQ+#Hp01O{)LX?9%ANdYH953U#eNzd~Jp6>^tucChg34oeHp;#!? zG+}7AqaWyxIhN%Zb}E_|<`8~~UhTxdpPNpKED11seD#)SE zN_BU(o_u#O*t0X%^u<#`kM-7X>8Nn^$*ZlN)^g5pYGz`3Dnd>ore9>!6QwBG)iCt9 zhe$3(uRqw>-0pN*(YG^`Q$)aU+iQ~i>gIDrKt_h)g(a523Roc=e(+qk+wOO}o;Luc zg20zDI6zCJAIlUo3~?KYKnfHxpor-oM1(**6oW_IwCq&MF>TYa9ow`l8+9YzJCd$Y zmndT4kmP7Px~wW$k={@I)_+I^{9nH1pHC_Sn2$Ls$GjBA&F!tt&22!MpPOA=oEKw` z94pw_-@9=j^QBgoSC(c==+)Lf^4Dsxy?S;|o5+K}gm$8s_pYwZtgetoK(~4EB=j~b z+gt7FbDx!)J0FrEK|5((KV=;iI1Kd#z5Q!@Pyc1UAW9cjP)itD*snBqFK=fjRwo|( z!cfbe2os;!r#Yg+$ZV*dzjyh@v+vh%uzYS=D`fx~C=qfom2Z22h4yqH(m(Rgf9(Aq zdE)PW&-WabQ3s_YF)1ADHb#!h+u#0<|M(yOqvJR~|MNdTKQ|+#9IXS)jDilPe1zPn z5R%SVL6R(XRBJ`?a0`c~FwwtY1WBv_2L0+*=(n?l4B9#<2^<0;kS;~BIVgVpxBdeK z+Hd}UKU=gqhv~dCs1&pGn!OP1)WjT+AsL7v?!6EZ6elve2#_4-__-6uJYB`i#KY56 z%)pGqgc=|+9vN^j$Nx)Yfru=IU&roHG89W(ns{qTk$XmpnW&g-6BuN>clrIh>rWJC zQpJ@y6v!ASW&lWNZI`R-RVzO~`{)<3mXjbD>EjcNl>m2&<6z8*3VW@qAKBk}%68P^ zxfM#A$B!UZ6YA_X_tt9*s}DPi5BVZ>`z@bTO@4ulwZs%A&oeM{tbvJ#9t(iaD)c+` zR%N?Y-j;4l2hT~1LNRL;ifHL5j#Xm8U*{vi|-1R*nPi~xj+0MM}0rfKU|Dw>*Bn(P!et zZ?94bLm4H|W-^%wMvlCZ1Ie%188HmLh?th56z^9nk-SPOm5SVzjN>5P)&m{st=d&C z5~u)Z`1Bwl0V+mDP%z9&P5KKU41hx&Hrf65-}zTU;hX;UzgP-wR>Pq9?b=%RQN{KCTG{4C-T#e%Kfy-2VgfKRV3FU(8|+1Y>UuiMq@Gb>ZsxgsFOvGrK7xwBv1 zTi+~BO%_irBH=CGI|dcN#)mJXURr#`mrE_9PU7#M;v5xZ#ma5&uQU1ii5VmW1VjSK zN^zsw4AIO@FX2h~loR`Ows;7wffVcq&E2g_AJ(BayE3O0)3KM5gdy8|)y}}k6;IiE zs^09^noR_ZN~#kPa~Ojgc=#X0!KFi!GQ4!@lIyw`FJ8>$a&TzzKsz>&5&&q3!Ncw6 zM`D0W3O4>YSlJ-TTQjyaB}JVfznn6 z#fZehd>1bSpT9Way&E2xQDgH2fMdug2o#p3vFQMUN?aiZ*Mq?U{NlTQ=*8k=^=^w5 z9@6nyQ%IUHbvvb-wqd1`+Ao^rAjZ@_Kt@1fK#sZMhzz8TR`gTAfS*FFMFAnGPWkeO z2kq^dg`zoILWFaVK7^6o`W0g}a6tkQ2_a_ZW+Q51tx>O3>k*<-C={ZykL7ZuTCFb5 z&lih@p})yP@y2L{&5eyGpL}v@KFSoEMWWkLIF9f7CIUL+$nOJ`aePV8F$5!VvzRoc zv5m|aH%qKW09;&;CH6dZ1tRXme1JHc5b<`Au0$jkJ!KTkb(e0Jf zII3T~U#=;oA}#*ta*eB&Ddx@X$aVnm%$e1>$%0V5%C#q2we{(lOlGzSGzK;z$bnbh z+%`-jKRbtvaNIbqol^G#vAA-E$na3mNfY|1hNvh=j0xCKp6cvg`M{qUrn~aUS<(<_ zm@2K>?zN|`gE@Wrm9GUYACPf!OHS<5z{X?DjDVw<6OzH6>g{hn`JS-5GrdquC#-86 z76c5d&1+ZpQSHbEJcUZ=NJCVzsl+jUG)IaYX_H}S-u5^3;ar%%6Js7lO!msMFZ9tpMNz zNqI41?Z>ZW{8mvgqp#nsq6qt6( zGEPHa*^Gz66uiU6y+Az{{v#>TorVCz5Plx0#zI*rR!R&)y(G$3k!4UbPAc1 zZ76lX58T+=M5Lvqg={XT0W$FI+W&jGVs~B#$DU^ZB2dRf)Z)(sK#a*nBxXMLrrb%8 zpd!4#|3CikuE9U?b^mBWH>W|Q0=nf`R4HCx->e*fQDH=#UznW(wb!`XOo}62uOcB7Cn_v9)Z~qR*cA~N#Nk_#o&drc; zFpyc-wb#G?^Uz*S7HBIo*04>D!q7MBJLx8>A8&7E1n_HMC&4)4Crvl3jjlcW- zKjc&9zx>R9$XIm;TLe7-S4pmJ?;vB??Tg|RBaP!u05}Tc;XNK?JRSdth%e}5@pun? z%heF1P?EjY&Xp&G>ddUnh)fz#C8FvF=eWM@`c#}bm036w3PXWNHu4GfQpTl_6jBI= zuB9h0z9M)kXg4;*)y>k`Wn=|(qzfkkN?XOrOruie#vYYyLj43k`S{qab=5}mq<|SU z01*mAHVIUEDwUa7nDN_wbtl4DYV~TRQ5Htkwk;=R+qP+>ZL+k(Z63oq@C6lp!ttMd zj9$ud_$3*-6ObA%OGdtegk|X&!?`v4#SfzY2L8Z1fM3EkGKd&~kxZIlTdAz&#w>oOj)>5`ajggQba!8zXDuM>edBtgg9PegoC0z+dU3?hRZ zUQayc)8KE}pBPSFW|{jnd?V zJyE=smqKxE^Um(BABfqNbA)z?6d%b+?UYX?L?yuuK_LJ#XtK5QH@_FSdrJ?U5m_^) zYQ^=@c0c^gz_V6f`IVTNl}INv`V;$9wmUR8$RLzYs#Cf0cx&gWOjet^c!o59#EDR# z+;Hd8TE7FO#rumFUI|)`g#aMMqogNhr9x%~sgj{N5iucAtZ>CRYL1a5M|L<>N*#}K zz0jywf)Oc0^_tf{P}zKXVj-8GpGI*c&J{qR9xQ(Q_x%Wi_?4gk_XT}NR~3YSWaw?z zHa6DqcAoreud`R2%@vksV_fBEz#IK~Z|mvx z;>`Kn#m^2zcK8jR@KQdR3>RdD#H1vFLM53)*=sebJDvL8pi|eBL<$7^x`vLUJC1Fp z9B?eO3`9Djbc}G!7!Vad&u5Y`ra!>P)ffQoAU-y99@r0*8~T2bNRYXMfeaOa044$; z6bPj0rZ99(vxE>x0yQB>AZbF=NeDqYXot%QK^)8A~SgCIXJb93g=R(hbU6t@3)Sy2IpKS!@2nY0?hY#pG1+wtis9e!0GOy*9D( zio(i+lFXzn9nn#MS=DQ`$YW`=+q$6#K`=2fF+F|2V)$a!! ztEQsV)wT6%wFUqeE}Si7at3;;y>a8o_pn!6y||(koMD5X1gCob#?#M&z{UG63R4G> z>}!N=vIcfew*9M*KZjcG^kc7OEv4XOWcw+GsEj9d5F#9w4)Pmi*KOz0200cat&ak~ z*>Qcyon%7=)6B2b{)#kmWwTz}#{_1%gt zFugQ`fJyHg&uD3jFsScuX3q@-*+80PJi%2yPHA9w8^$qXygD(1LNSW+E0M7$QpM8J zc@A9Yw}Nh~-)p$tMyu6ow)%>C3KZ$+IJWJWR?4v*8*B}Mk&a<3%ye%)$0wSngrjL< zc>Eg%A%vxAY(Zp6>HUGHdOf#4KnAzx9#+5Y$pLr_N{;d!kr-My32B-zPzV%6A~Kz{gDDUR(hnv=7lJ@U7Joc+bx?88tM6>p%j>G&6fh_h zQkls~t(YYZfYiORh6u$(QEb+l<@LhiDv>UaQX!ClfF>p&?GbJ5Vz*OZSC z9?M^3R+p|_YqvW=7@RwMc4DHGlo4YEoo;t?YrE6y3PI=3pUtNo!9IuWoy#9#ud#S) zUduV-k6&Duys^10gK%zfS(y3}q-fM7qXO>rTIKec$3CZ5cY(~4VjG_Zs$ZH4i2M7` zy}!Hr%;IvII&N8J6^LmruRvqyusep?PuOg z&{@9!v{p!s*V*8Z8|%BZ-IkS|pMT^Fz{rK5ae@c~#f4Jto*aDKUOd9+ID5oUK8KC< z5C5gt+d6aKs+M;EZ`K+LXsRBpe%tr{FtGfU|M%aP^c#k(vsBgVJN1gceEyZz%z2M2 zAi7z4lL?SNRfmicfprx`eb)Mi{tUUjaDLgG$Q?n(LfCogYOjYgs}E(DACkgJVrHLM zr0DKCU>Zmv1HTcGYX1tu*7WjpYIfo#T!kgHuWy%kJLbgM#RorIkrR@B@}7V4;>X9Z ztg%!g9LoJGP?Ax_(TcF!>h)S~x6$vlqbY@+KuIdpbY-WF$#bhDG#~&}$5>iC;*IcK z#KJhKa{o!Tgnkjv9nLe*;go?Px#-M5i7qWj1xiIzmQpEsFe?=+m6((~no}zNCX|YY zUx6G~MMDHa9?$jxVgO8#A0&YghDu1%wfs~rU(AzZBB`UE7~cU)8CU0PZC5Jmjfwe- z`LnMKMEW>#JI=W9{h(alk1Pac217SyW~Qg6CN&gkKHm!vg2NPdQGI4PCxp2EYc@!>5F38$2BE}Kq4&!Kp(a=ZSBEyS z1mLjVZd5wyiL>VPiXeX2q==TZ4X> zoj99ax=)ey$%~oYJoqpc;d@kILxk+?gxlzrcdnSF zIcs7yL|uV~w;8+Jrn$JV5D9%%tF_(zayNnwHn%r6HY0asW^&T94=h3$s@3Y|)>h=M zM4DikOd1dwZdG69Q`;=YnSqIbsy%42Otj~(UAsDPea{Obw8S#)ZnvLtELPC$v^O@k zeBU>8UDN2?=`)UP5roA3*7`He{cD8@Co?yNv49*yqH3VLV1H)^1?3kPkPz@zuYdwp zT-(|~7PHG|Nf_Y?Ddm%osN6Mv$Y{u}yZyx0l@I49?TIsUNH|49HXi@;Tuw~gzlwqZ$NUP!0CKHx>bt-H zM?~)lxkz^>qd&W0D`4*R^6=An^_5GF2XVXP< z=KKok063!lhcJj-&MUiU7MEW3T6Cr)>7Q&-^}C}hf<^8A_%fiBfMg$C>u+|u3)C-dyFnJe_<}BRNJWaJp z_4|X*z4(~d^I&9B$~f*Pgka{B<2?QJ6Ore(wY3$^_Xhoi`MITqc|s%(g&Yi`^qyzl zo6f-O{ijJVASeVH6>nk5jjQX8YHfCP$(f!2fwwMRB)PNK*jcNTX3v+-zeds!X^-pq zoV2K)nyOz6teC^b-X?)pn3%=H4P{V@Th%szo}XS|G846&69u;u`}CpI69XeF!9mce zlsB*F;1%arP(uJ7BQx~2u5U9qi)SCR3iCeNj0nu1)GUhQ0aA_(5s+E1xMVAynJ{!WjrPXMA_?a-`J6uT0Q-cunRs427G?k{Ds-wuMFP- zU6H6ML7BPJBIs{j{m9n!&DFF`wlRE05m4ad?9`xkZGYp^^6XhbngsoX0Q#}tqZf}0 z$A=4Vxda(eG6GPXfs`bUX_`54?olU|-oE_!)#tWnS1>bOy7Zxs<}xYM(Mi`0!_al1 z={o8f2pa8rY){B^)2oU=3F?DKQI1cN#f{8ymkH@sjtAZWu2F!uSufc>;Vu1}yEtJS z@8N}@YQt2sj5E0~xwlbmtv!`H^^iqrg+hV`B$#gr4so0oSIA`}i?Y1RiOVFQlwD1 zTEGY-(bP=<4gxCK zu`!SCnPj)th`f|sv0%qu3f>igV_(>lg;NhQCP+Ilk3AkIr2;>>j!KeQJBsnJ zfKYbp{Z7qsgvdF7kif9AJLq(MJ2P)&rvfzM9uXCO5=U?9#rAklr08DS5l{w>W7QzL z`|D2wx|54j!qJaB=Yw$f>N*Ez@zg`+`~^u?l3q+>obuc4C0>c*B`-2VvLy=NMC8;<@62V>A>n< zyJCEi+LgmSG9J5Phcji-asctl*0ra>;f@W83m#QN1IH@7>1OT zYPAPi+a=XUQ~)6{6DvVr7&;jTehX>Bv@O(xuq@U!&~y}|14!DVq=!R#-tY;+$JcNi zQNg1Dreybg+|^J18DDtUW9HFz=`J`4B{<2kZ;uilP>l^ED34GRMp|C>+0Ez>>vBNTIZxfUS1cGf_OHrl6rN!EQWp8h<)$O(W*RQXwO-xOdN~MeU zU)r>SL(U=rpFC|ZVMA8Lfwy<9TibF{x;-}qh-1$=S2uP%4~w&> ziYxakEfuO{)E+-o$rKa_04)Skr1KC)hVXDkF({7le+C|=!rm@i9}kgmeBnLjV#I$8 zotnA3KT*uh*i*|b0LcmgZ}Q?p%yt5+Ce8!nZa6y-1x+@0B8@DXKfUrf+nACeE8tu1 zBL2w75AqWWOpI?TnGuS2uGc#9{N!}DUYeDNl7STy0xGQRY_+;(CO?~6e%U6IlE9K* z_c|H33x%p*zXTOr$I{F zw`r%S8hQv_wds&x*qRI^;I1u1z=Oae#>guZ#Hc)CPr0q?+U5GrWgUAnixWmM4Rq8k zWnd{=o7>X$W>yx3ZQg3k8*9c1>)SYC{r)#Js5;wM9n zgKos}H+M5euHjFj3vIyMzHsozYUi^)#c#On}FZ@Gc<^zB%>@ z@q%O9L14vzfbo)ho*w>&hq=)l16wy;pHQd(*#Qg?)|Fu9s#+V*^6QUAt?S+8 z-SWu?#c)qYHNIRCGY%Onwc+D%_;FN;0{~0}gOhF*)d)8p8sjLKhm7C>cnb0EX@~LB zqun(jDo&Uk81IXKm_ack9``=R%BjHkMmX8jP3y-o9Rxmp_mNm5Fb$D1v{cH-Iii>| zN;z|;n46!l7pAPqETo`mV#|b9idx76WCW07mpGYCFiti0d3f~{9~&4E1G5^z&>YkK z3GX$(jhJjBcWOR8HCf#$H_K1AD_1lo#6&keo>2-#acU_ye~QwRK(+*pkpv>ddqgaj z3X%ECOXX^Hzg+2e2b+VPAP7o@Vm?<~Tia+fnoEoGw&MWaDXDLqti#9qO2)g6t?AAs zT#}i@kPnw6O7cKRJ@kL*iC^3)h0koSDdv5^e|7!mkm*MAIu9-GZGO-#)wErnm`m7uf)KD<0f(3X-U{+L&4>{ zD+eA|EIr|<05YgBtnMhUnJZ?6}OB5D*}vjX*ALR74xv=!cjDwlma|KT0R|( z6K7R$NYbrce>xmAOH&!6lo?a{LZxtjvjS{PuRI_`CPb0+zzPJTCP@#GLWYpR524;w zPhSr%tyM3r*RF3j>OJML6M`L}6@V_mkl;wpDbyGc7!ySA#js)G*?e^TFX1K|$HYML zXw9*&lAfE#PK_|x@;yKv3=(f1LGjqx4*V{^q86N^~jk4@8-3}>+txQ;@FAY<2DgU#oqT_$kXH7Owu!0C648>Q^sUa znAAQ$dbE7=^@;yj0v@}7$5Z%Z{H?lmLK)oc3MBKl4^K-M2HCydUr4j)w-ELbdMxb85|IsI&ihPyXxj7910U7w-)n7k$ z1Yo=l{q4R=w$B=uZMUiM)W9-)=-bQzGf0DV1dyTXl46a~2Ti#_qrP|j8MnD%8FK#A zlrfP*jUWlhCB~pawYRl{M1_TU#GzLJiWCX}VmO#8rI8Z5dplZcp|tcsN7?^Bd)Lw< z*HMMfcj|WcygiI(Y{wal9mg>cViJddSRf_J79nK|k=XDT5M+_8f(Q~TR$+yBY}oJ+ zQWlX=1d$v?BmpZ?5+}xqgPqtO_t>6SPj}xsA0t=ksL1UZ3oD2$res;yb#GOj$5-WZ zPMxaWTpPrj8ZiMO;(#TXCow=p#wH>nqCldg*QhnU0K-;MsVc34qF669J1yK^_z>al ztzWme{T-B6Tt}DQ>Vf+o8J|B~qeJNb^zIZE_rwAk z8H6E9Fd_;~AcRMKC|WdzcX-R9#mWS++!#!+6a=UuK@3s{8pJqqK06!O-E#T=7RU4G zwV=&S>%RBy=@(nNe)ztlVX~9Ir7+6Mg)2)RbY~Zi?ETWiG5BxO3ZW*Q9$M>^wHRM{ zM_zd|{{76Qa~HZpY1eEIMQI^wFsV#hX+bnVBrw|+Iy!vbjK}AS@-4-w6pk=rKoKSr zvv|g>HtkWw(VMQ1*ECFC|Ildzgi%Hp^?5wXC%{fwGewXgPgZpsbO#xFGM&p4 zDNRr-Yn2G8E7T&x7V2PwfX%jS9$TC~arf+3j?bMuJ~e|6XLxa3RsuG`+S&2pcJNYY zB1Rj;`f7J&sk^z>izV!c}0zoN7WI}Q<7;O0}mzKK2;UH91uh$D9bUK|QhY!u|nH3RL2!!O0bH+RxhHfk#{Lig@HD7TJ@y14KmOe_p;w=J z;^$)<`tt9e)&3H=w)eo?+~R^(nsdB@y4E~OwRH{s)_&9e&n-^f+)iPR-Bo5ClTMT| z)3IUQ9u9({O=(4K8-qzjVfLlbm~q?go3oMYX2|VGGKA0$TD8y$3SrW_HpEg&k|<73 z?K&#Ca;fxp1fDn{hme<*xKNO(`U53u=w?F4XY_Z5K#amKS4)@ zq@%z9KuL{c6d1FwLMS0Ifn>)B)NL1EiIpZGXaQ7M3j#!lkTHmu5dJZ+>!^GhisN|{ z*bKB_t5;6Hu)2Kyz~OyUch1A@d6T%>JNL#poPr*vFsPY4O}N9RVf+8jYsz^1Ok#HjBI3+j`Tfh0W&7OG!kL+ z%5AAP1&lsi8B&Hf%(Y0QrE$|h>A5sWkf*69wS$QP_}-*YMiQC(U}1o;phSFJG_s}$ zKfUSy5lW_-rM=Hg22@z2rvPLGkOb}t2@OM=rI+Ay*>yu7mkmQcv72bmZOKvy%_w~l zVcwy*rV0&akg;iZJDtT?$d4chLNe=`sdfzmjzfTHEaXwV*Aj3I`MJqOOF|ZUGoo}^ zb2UkCDabXYWSoYCXXnMab37?YG$Tc>>q1B+I7^(n_I+FjbK!r`hj1^roE-vWK+v*| za$inX!eJhVY(^uPdlED}fYM=L$*GUk{C&rgGYCq*zZ{n0dN+tBkGQPy>FAh0 zcp=LHL&hreL|Kd?ehMK>tFlg zo^PDk_t1&`Q?lO1%GRrjy})&qy69@O-!$0luUx%$?W4;&tV0xy5`!$>cf7S{s@ZO5 zTf}#uT&rb`yD^N6*KTw_T3%Tj3^B3yj;-C5qhWFn(Ke|fl%nO(fSQ?5mTz2NTIycy zb~~NUa5$vd`1tstLyKE?f{7A>9XzOJr9a$;qq1`t8VHw{mL53yP)`TCd)ec>Ldf~C_wR#98S*okaM8;dd?r9-w%TB3nugVXJDGwIM^Bl<`K0D(yv za3UcDsI+#csuZoN0_brXZw&y1OUy)e9hDJhSJZ};^_S1Te(l^V`wvV_9X*I3evJOw z`OC`}ukAZ@V&>?B{V+0YOmB zb1INN^KViMz?cmZ07k073UfT0Cm!EY~2gTjIc6P+m_OQ;`qG?XM}NfZ{3=8DqkfE8`M&meit zF+r5X1`A69rl!svk@^Q<;7$NH@h(iM0<&bL(T{IBFZqB3BQ+xj6gtuxhyq2F&T+zt z3Dq=Fo1R@SfC`QIYbK&73g;-B-k{RulklcKV^L~{nKsucD3WxP`K1Xw0iA`$3o>Ay z+tkpk&yj>)LJN^f#(6#gq6Tq{nJD0`z@`JKf=CfC2%=;zM45P$D1HjVv6PhJ&rllN zE2A;Ad$(Ys<67_uk;jdWi!W>ip_5khh2B#^OK4X6kd zV?uArVQ@^A7;_2>>;)0JItqk)tAgE(QXun{bdfvc#}ZJPP!^hYO|Yoa53*57uZ_*N z^!85nAAaD#qYuvCf7oW_!W6GmSj`Dw+-5&2X+N4p<7R)j(d(~mtgNlg-m!1`=CSpi z%k9Kang7txzrK3qqi%ntN46L4JUVmmm`=_cIufdw5dz|4hBY<@{i{n`gro>y!jB z&~{5h2nthSX)UTM9U)%3>!|q8_Oz|fxN`p0ztrphI{L-KIy>Q;-d6Mc>9d=I_B|&b z4KoJ^VS?l*!v>8c^SKeE!||Y+=#Uy2C@|ct6x=dZKS2+^AYl8f(fp8kkEG@t#L=w` z*<1^>Kq{ib6r!jhrWC07gx_^kK8=n_LinJ2_HQr9=HqE zC+|7P!NLv_v0 zv+l38o_Ftk_W77|W+wC1OeSrTenDHSX|+-)MW|SfQbaT@{h&}=sT5HJ{iXg;@Ta0w zsL&r3p@O2|4+~OLDOjm#lO{EpCYelTCi8X9oU_l~@B6I#%gMdo+3cCk1g6*o(md?* zo_BBF_gU*%>t1VJ*L~ghTFi`sG!?<6HED=@r8=0&9E8DYrj$0_(EI(thyWSPN)qBX zBqn;=L7H}HD)-T@KT z0fZoRe>Xq`W|*}lhRCXOAuDMxQP})gCh)9wCYQI!9Z2SR(7EXd0D_=a3@P?^P6w@` z*A)n$)#nMTDH5Q-L+jvH51U|~!bnvmk7O#(T2|d0sGjk38$!ekO<=bJBxtQlByfX7 zFwcc25USz`q5w}ou)omSroqr+vjR2%xs0Of!&Q1X00B)-ihJEI&t)L5MrKF?(`*as zcoXnpsyZ_wf+}F$X9E1l`eN=&+-$%NtSISu+A(G{p-hN96W+fH!#Y41KtOlUJLmx7 zDv@CwNsO6gGY;m^J2U}P*sZZNYHvLC9suC9z4}Z5W3{h}T=6+xT%<&b=hPdRsb8-Mw(j<#>e20p3~sLgJ+~ah!_X zWi=5dg9&JA9+Hl4QQH221gbL4x0q3ae(_$(g_F}xhNdTldCiryunP;X$hC3o&h^NCEgQBk^9vvQ z^mf-C`<5TjcYW6vG=KGf71E`$OS#ZjhTSK z6NLyZh{zbn@GiJ?+G?2llwewG?&0au+ZY1@7-(5!Xqp)lEy4hxY7WWFi{MZzqn#J4 zT9m7mh$iD&4g?@{WCTPcB1Bm0yf96)7!kwvXL1+QQ6Sn`={ICc<4jib2*}7L!k8k2 z0H@oPr4ylN}H!laR&VP>thu#B)}S#%5}5g~9-h)xMWBXHG7%+^}E^)3;$ z229@w1PZ%n01eYklSW)bF?YKaP--y8A}s<;wY47M!@(nxfU?YoXih#9X=cbEOV2>F z2zM@t-^@e=5rx1Zb(lyu^SJ{d0}_XbsDo#k115-2hPMVD`vxDwMWitz;&u%)>&(Ox zjuT5JkglFU?oL$Pk}@($7?LC0HNvCyUWCCTl9^iLbu~bg2^5pU!QD3pU0TlSiLgcP zMqzL$ezjjau?rz4BW~Aq1R~fQDXj?&4`vQez-&wj zPG!y!pu5pJZ#I1IzPfuC66Qcm1ZEnedX5o5!-Ii)?-412Wsng-X2UZ!OC!%nh@d1C zK`-x^2)nweMk3dRWvT8lhB0w(U}g?Y#}E;mXb7RV4(BROkx8s)2cq&`<4{G!*4k7^ z<|t^)0I;g=WhKO=vAcT#86+}w#M!c0xEnePH8jhih6F;`yFkD&i|TiR5Rvp4>KY)u z3Q1QBLMB8(T!(p-`@o$ru*vZ9S+o{5r1x-73=s*3h-jS4BKJ>YRf~Y73o~WrFl~)D z3;Xa@y)g?RBbL2nBzk7GsuY1t;KFzqnc10$Xw@1cl#Mw9vp8zC8x9MPOq^VZ)^$|y zQr6!>gd+-|7K8*p$JW_8d&DFTrZI-CJ6~1JGe7_?99@8c>5{varw#5O!QCfr+F$s- zCqMLOZ$8w%a6O-Gc^5C`&&2tLpLuB`kawJ*^3H{qgnGpYT<_d_J$GeyZ|m6}dh~r? z%3V2lAbDfRi8PD2oR*yd+cCcQ#TQh2vxgq&lWOR0B7C9ELS>Dk%qC7zz0-a9$DfA2np_gEj;IIpj4&+h-FpZZ6qyFsNy z1R)?Lf*}UO(Dmr(;CFuaKRmo_o1IEHU;;nA&kec(H{bTs17VM%DE zqDY=&)TvI_wkamD9<&fwU-@(2G%&t7@xi3i)2 z10)1|<5-E$d|~YPUElPb?aHmdmWXd|%B&yyL+uWM0UXH*tU;daAc0cuX1e6z$ifFn zP}49W)&QHvRBr*_d81tXDUqa}YTo<;ovW8UTS=t)!7SS1bLBw>z&B^R%?AGZ!KPo` z3o%1d$LmLieCoG^w-3MXJ=A&My9HYAJbU})JDnc>Q~2&b`OCld>Oc9VkNvmbJ$>%% z`h9$G;B}{izy_GLswSW@!DgZ3E6eq(2ZsmC)#KiYmQJQaga|X-M0!Nj8W#vzi@kXS zA%{C7dAI|rJ5rW8vs)&FnP+i?n)@gtScpZ&x?=eUO^q3)qnVngT2P^cty=joH6uM? zPM|>3K7$a|4FHHa>kR^`8WKf#cn|{;nTMM)G0^-rYB&_UFGUD5AuR|45KQBZ1=58J zyg*LQlNnQWG>`DAPKE;#GoXiQgqv9cwbm%W!!zA7t$;{GIpJ(@6Ei0!9qN%eb%+di zFG+z_omt!?Y#bhSGYeBoFf(F_$T=ic*I7?DugSt80*Tc;0X)5Q4;(roA`sTGA{N}L zo(i)BPzyv9q^LfPG~uSIbA9$qL@{$!Wfl(u1j0~tuUuHO~HBq(IMr2SH zi4u&eqMMoT=Ac6$4_}88g9t~$98ImYz#v33!-RkUmAc8YVc+4hc#>fmGOlfA-=*e6wW`LPft=;AWi_`1_Wx|Qj zG-Bf3@FwhG2xvBlFx-d<5`+LVgwVsvhk{FQn@!vFesr{HGUra)2diZ!abQ)~OqAI5U; zwb#ZNn9%!D2>o0b*+VMKb8Y0p>#W<}ZB=S#iCRPL9q_|N~XpZjaS@OOUv zZ~y#{{p`>G=#T&0k8W?Az5n~(`#pd9Pc$|PpJ40qHlCPN5>U6%%{Dh5`@pW<+`?6d zV}pahB|zT1WhEj3i-^c()7u;s)pU&o2qOYn&NJ`ay#DBjDBPxF0Z~G|COHHmW+X(9 z4A0(#nUT1+g=Km`AoEf>{u{lPk>=?Z8A)8+J@F!j{NtFTG8u5Zd8A=dPTGW`2Dy z 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¥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%0DgA@_={d^<6x0urWN7-zP38Lr(9HaY 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

                      |!m)qK&XNTjCwD&`iD4(RY|m4h?UKlIj` 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 EfVx_bO`ds#&Edf~rleqG+kTYt)EctM=Zp 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%0ALbZ`5K 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

                      Wv#*0_}caO9EqR^K%aKnM`XW{whB(hr;X+HV9 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 Nw80t|q3O4;0e-7zX^*k4je8O5o6)J_ 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 bzj6K#B*D6UrGpNX00000NkvXXu0mjfUtB7{ literal 0 HcmV?d00001 diff --git a/frontend-backup/img/web-app-manifest-192x192.png b/frontend-backup/img/web-app-manifest-192x192.png index a6fddf35711907c9b972e2287d36e30095762188..3ab466f97421a7cb970b86a658ca20363af49735 100644 GIT binary patch literal 992 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`pX1jKx9jP7LeL$-D%ztpj{QT>t<7 z|K-aUpj1RegpmDonZ)NZ2~QXpnHgEQfP`$)bHk$NS~<@hw|0BojJBG#&7jZPsO+KZ znNXLLA#$k?wc570UkKN2wUBU^^STjhSp3xUYNGS;X!GUmUN@pWuSI!WiL_eZE#)D< zWa$#wnNs#&;MTuy};l{}V9d#GA@OfKoU{o3hvJ1buxJt143bTJ&Z8W-bm=l4<)CB7jxAZTl#!K3 zCgCYNJ9}7USZG+3phloU!4pO%W|vdpvPn-33ZEZ6dX!5kfJ-TG`SRt;>Cc%tS^oU_ z!@|Py`}gl<%a*0=bo5|gU<&qhaSW-r_4e-dqFVtXZVwf7X7zNi-Z=8|!K8cD?`;bi zc~%xV9{6qVnD=exE#p~-Z%DPI*ZMCgU3qhHygD%8!Ju6@b&bnP-V+vKMl1pj42&!S z2DOP{FXwK#bXx172-C4XqYrC&WKw-VG7blNSX`7ZYH8`$YQL}3emk*4sQ%yFg&ASJ z%by?RzJKa>{HgB?Z+PxXFe!0SHaPcla^#08^ZO+FI20Nfm^eHV9W2Dwra9ZhnbhQN zm3cgAdCgr>>Dj-NetR%)>eC2g-uUA9ii*jW1+IGUJ9I$S0qtC3{2C(rMt}&l`qf?*e-C}wcbJ$p`u7?X^&2ifYUsp;@O?~Qniz!a`_>Psc?=4e3;B_-x zPY4_&1u{&}diCdhT9CBn*RjdmkE-rQ%=Bs~dZ5X@Pb|Zf3Ft9l zCSs*(LE2WklIO+i7GBk1Ry(}Tv#EWt2ciNqS2iwr^48kxpq@h6qApO7na^5(n_1E(0;p3`Hr-wSZ lHA9S1Xt=)vniLN7{NQJ?ZtyuSm7WL^@^tlcS?83{1OWUXk%RyM literal 3265 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 P7y=^$)6*4t&QX5{tqP9^ diff --git a/frontend-backup/img/web-app-manifest-512x512.png b/frontend-backup/img/web-app-manifest-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e7bfe09a34ab09409c1796802aad92ba9c0774 GIT binary patch literal 1559 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&w@L)Zt|+Cx8@Vage(c!@6@aFM*t60X`wF z|NsBLfB!y^mynPkXgfhB@i{Y(ESE~SeDZU{qUT;Wqa8Q(Tg}|0*J0^)E=)7$xk>$1 zPHArUGdU{h&n?&V>lHi?i%yeGdLEe??Q*cjpzyg|@^i~6I~_Joa@yXhllR=b>zHEd zbN6#u?w2Bz3$7ZKKah0nHLkiNXx-~|BU&N%x)eS`1kMMW=nb;_NRMXiS)c4C8QnBDaq}AF*WjliHmrp>AkWHksiNr@|bvhzApN z((bO4_j^=zE%)M!tx~&V=lDHJdb2HygMm?jfu(^#fPu+@0hNPkl~K>s-KkHPUw&(4 z|MFYTnk~B0(id3-{1_gRK^zbfTYW0_Y5Vi3`F^`=fBj>tExq*i^y5>jiX!6E(vnjn zE9-VS%FoHUzPK`V&6%j|FiZzBFk*4~0k_!oyJfe=sy5Ws-zopS`mGjYi?D+Q8N>!l zbLXcobDysHbTsqn=hJ!qe!FVF6+Zn~(<~RVuI-fX?a;#!l^fU0`DSfD^HBTew^mZx z&7xRC62qZtJP+oVPu=)wMd-O>dGk%SNgc@FAM#GSe*3A{rQ5If{@=d)eh-!y!7zvA zz`uEIch{R|zA(!d^l2zy;!r1#FyE$I9k4U&?z}Tv>1#jLKK;1)RQcP69NUKNQ|qI* zhrid#k9xYK$S~~OEykO7FB`BB<4uE1hVIg*MJu+Py147MyZhf;(|D(zE=|4o?R?If zGv+Uz776J;mo^DYTf4P(Hp3fvGGYiAu{)Z%9$dYBYJP6>y*p*M@9G<~iynBtKkQz% zbctO_^^LNr>l4XIo!~?bPNIcRU;kwL`=dD3vNOM5d-W+hyS9~AkDdBhBXrvHPVdxf zSwtqx8~&>|-fqt1bIv=Sw|d)Z3L-1PT^E>_`+n_x@xA1l?$iILr|~{kX*-rDL{=(? lWRBgEYK4~>hye`}{~1+VHcJ-lZaV-{@9FC2vd$@?2>?=(0k{AF literal 0 HcmV?d00001 diff --git a/frontend-backup/index.html b/frontend-backup/index.html index 2126343..a9700a3 100644 --- a/frontend-backup/index.html +++ b/frontend-backup/index.html @@ -1,103 +1,132 @@ - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - openplace - Paint the world + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FurryPlace - Paint the world - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - + + + + + - + +

                      - - - + + diff --git a/frontend-backup/join.html b/frontend-backup/join.html new file mode 100644 index 0000000..44ed8fe --- /dev/null +++ b/frontend-backup/join.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FurryPlace - Alliance invite + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      + + +
                      + + + + diff --git a/frontend-backup/login.html b/frontend-backup/login.html deleted file mode 100644 index bc7557e..0000000 --- a/frontend-backup/login.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - Login - openplace - - - - - - - - diff --git a/frontend-backup/maps/styles/fiord b/frontend-backup/maps/styles/fiord index 1b1762c..f0661bd 100644 --- a/frontend-backup/maps/styles/fiord +++ b/frontend-backup/maps/styles/fiord @@ -2198,7 +2198,7 @@ "city" ], [ - "\u003E", + ">", [ "get", "rank" @@ -2290,7 +2290,7 @@ [ "all", [ - "\u003C=", + "<=", [ "get", "rank" @@ -2573,7 +2573,7 @@ "country" ], [ - "\u003E=", + ">=", [ "get", "rank" @@ -2674,7 +2674,7 @@ false ], [ - "\u003C=", + "<=", [ "get", "rank" diff --git a/frontend-backup/moderation.html b/frontend-backup/moderation.html new file mode 100644 index 0000000..36cbac7 --- /dev/null +++ b/frontend-backup/moderation.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FurryPlace - Moderation + + + + + + + + + + + + + + + + + + + + + + + + + + + +

                      Reported users

                      Open tickets:
                      Closed reports: 0
                      Ignored: 0
                      Timeouts: 0
                      Bans: 0
                      Closed tickets: 0
                      + + +
                      + + + + diff --git a/frontend-backup/moderation/index.html b/frontend-backup/moderation/index.html deleted file mode 100644 index 550285b..0000000 --- a/frontend-backup/moderation/index.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wplace - Moderation - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                      Reported users

                      Open tickets:
                      Closed reports: 0
                      Ignored: 0
                      Timeouts: 0
                      Bans: 0
                      Closed tickets: 0
                      - - -
                      - - - - diff --git a/frontend-backup/offline.html b/frontend-backup/offline.html new file mode 100644 index 0000000..252f75f --- /dev/null +++ b/frontend-backup/offline.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FurryPlace - No internet connection + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      Wplace logo FurryPlace

                      No internet connection

                      + + +
                      + + + + diff --git a/frontend-backup/payment/success.html b/frontend-backup/payment/success.html new file mode 100644 index 0000000..c11fc87 --- /dev/null +++ b/frontend-backup/payment/success.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FurryPlace - Payment succeeded + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      Wplace logo FurryPlace

                      Payment succeeded!

                      Thank you for your support!

                      Go to map
                      + + +
                      + + + + diff --git a/frontend-backup/profile-picture.html b/frontend-backup/profile-picture.html new file mode 100644 index 0000000..4fe10ee --- /dev/null +++ b/frontend-backup/profile-picture.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      + + +
                      + + + + diff --git a/frontend-backup/service-worker.js b/frontend-backup/service-worker.js index 21e1622..4a4c775 100644 --- a/frontend-backup/service-worker.js +++ b/frontend-backup/service-worker.js @@ -1,705 +1,695 @@ -const ae = "files", - a = location.pathname.split("/").slice(0, -1).join("/"), - ne = [a + "/_app/immutable/entry/app.iDaujbEI.js", a + "/_app/immutable/nodes/0.CnnlsrhC.js", a + "/_app/immutable/assets/0.CmqRY0au.css", a + "/_app/immutable/assets/Geist-cyrillic.CHSlOQsW.woff2", a + "/_app/immutable/assets/Geist-latin-ext.DMtmJ5ZE.woff2", a + "/_app/immutable/assets/Geist-latin.Dg_dQHbK.woff2", a + "/_app/immutable/assets/GeistMono-cyrillic.BZdD_g9V.woff2", a + "/_app/immutable/assets/GeistMono-latin-ext.b6lpi8_2.woff2", a + "/_app/immutable/assets/GeistMono-latin.Cjtb1TV-.woff2", a + "/_app/immutable/assets/PixelifySans-cyrillic.CPPz0Qvd.woff2", a + "/_app/immutable/assets/PixelifySans-latin.vdc2vUDH.woff2", a + "/_app/immutable/assets/NotoColorEmoji-flags.ClvgErYz.woff2", a + "/_app/immutable/assets/flags.a2kmUSbF.webp", a + "/_app/immutable/assets/flags@2x.gR6KPp3x.webp", a + "/_app/immutable/nodes/1.DpC5h7KA.js", a + "/_app/immutable/nodes/10.C07JyVXo.js", a + "/_app/immutable/nodes/11.BVmrEev1.js", a + "/_app/immutable/assets/9.BD1hRFPA.css", a + "/_app/immutable/nodes/2.BY7SdjrD.js", a + "/_app/immutable/assets/2.BtKF873c.css", a + "/_app/immutable/nodes/3.DVSEiJTt.js", a + "/_app/immutable/nodes/4.CeYpVeIo.js", a + "/_app/immutable/nodes/5.CXeQMqhf.js", a + "/_app/immutable/nodes/6.DD7Zmm97.js", a + "/_app/immutable/nodes/7.DDuBPi09.js", a + "/_app/immutable/nodes/8.B8sOtsfv.js", a + "/_app/immutable/nodes/9.BQE9fbrM.js", a + "/_app/immutable/chunks/07L1R_bo.js", a + "/_app/immutable/chunks/1lh-LSvX.js", a + "/_app/immutable/chunks/1mTheT_N.js", a + "/_app/immutable/chunks/2CRhGZHc.js", a + "/_app/immutable/chunks/5NasrULQ.js", a + "/_app/immutable/chunks/B1GmkH4o.js", a + "/_app/immutable/chunks/BMKgGW48.js", a + "/_app/immutable/chunks/BtP6pfnb.js", a + "/_app/immutable/chunks/ByKBPM-D.js", a + "/_app/immutable/chunks/Bzak7iHL.js", a + "/_app/immutable/chunks/C5GsJ62f.js", a + "/_app/immutable/chunks/CBqzI9hL.js", a + "/_app/immutable/assets/ProfileAvatarWithLevel.6dmPRSfx.css", a + "/_app/immutable/chunks/CMs8vKjq.js", a + "/_app/immutable/chunks/CQklNc9N.js", a + "/_app/immutable/assets/LoginForm.CxMG0irz.css", a + "/_app/immutable/chunks/CeLr1p76.js", a + "/_app/immutable/chunks/Cp3o644A.js", a + "/_app/immutable/chunks/D1ivTjwA.js", a + "/_app/immutable/chunks/D2m5UD3G.js", a + "/_app/immutable/assets/notification.CPyrWqU1.mp3", a + "/_app/immutable/chunks/D35KiPL1.js", a + "/_app/immutable/chunks/DUoKDNpf.js", a + "/_app/immutable/chunks/DkBFL3pa.js", a + "/_app/immutable/chunks/Dp1pzeXC.js", a + "/_app/immutable/chunks/DsJqb9ei.js", a + "/_app/immutable/chunks/F0pgzfyy.js", a + "/_app/immutable/chunks/KvV259my.js", a + "/_app/immutable/chunks/U908S-6f.js", a + "/_app/immutable/chunks/Y9es74tr.js", a + "/_app/immutable/chunks/g8c1BvYP.js", a + "/_app/immutable/entry/start.CJ_UwIBa.js", a + "/_app/immutable/chunks/1FgtjJRR.js"], - ie = [a + "/.well-known/security.txt", a + "/26/2025/08/12/horse.png", a + "/favicon.ico", a + "/img/apple-touch-icon.png", a + "/img/favicon-96x96.png", a + "/img/logo-512x512.png", a + "/img/logo.png", a + "/img/og-image-mobile.png", a + "/img/og-image.png", a + "/img/pwa-country-leaderboard-mobile.png", a + "/img/pwa-kiev-mobile.png", a + "/img/pwa-paint-heart-mobile.png", a + "/img/pwa-void-mobile.png", a + "/img/web-app-manifest-192x192.png", a + "/img/web-app-manifest-512x512.png", a + "/site.webmanifest"], - oe = "1756230503892"; -let r; -const J = typeof TextDecoder < "u" ? new TextDecoder("utf-8", { - ignoreBOM: !0, - fatal: !0 -}) : { - decode: () => { - throw Error("TextDecoder not available") - } -}; -typeof TextDecoder < "u" && J.decode(); -let S = null; - -function K() { - return (S === null || S.byteLength === 0) && (S = new Uint8Array(r.memory.buffer)), S +const ae = "/files", + e = location.pathname.split("/").slice(0, -1).join("/"), + ne = [ + e + "/_app/immutable/entry/app.DTM8GXam.js", + e + "/_app/immutable/nodes/0.D5b7oOw2.js", + e + "/_app/immutable/assets/0.0xfYb4uv.css", + e + "/_app/immutable/assets/pawtect_wasm_bg.BvxCe1S1.wasm", + e + "/_app/immutable/assets/Geist-cyrillic.CHSlOQsW.woff2", + e + "/_app/immutable/assets/Geist-latin-ext.DMtmJ5ZE.woff2", + e + "/_app/immutable/assets/Geist-latin.Dg_dQHbK.woff2", + e + "/_app/immutable/assets/GeistMono-cyrillic.BZdD_g9V.woff2", + e + "/_app/immutable/assets/GeistMono-latin-ext.b6lpi8_2.woff2", + e + "/_app/immutable/assets/GeistMono-latin.Cjtb1TV-.woff2", + e + "/_app/immutable/assets/PixelifySans-cyrillic.CPPz0Qvd.woff2", + e + "/_app/immutable/assets/PixelifySans-latin.vdc2vUDH.woff2", + e + "/_app/immutable/assets/NotoColorEmoji-flags.ClvgErYz.woff2", + e + "/_app/immutable/assets/flags.a2kmUSbF.webp", + e + "/_app/immutable/assets/flags@2x.gR6KPp3x.webp", + e + "/_app/immutable/nodes/1.BMc-PacL.js", + e + "/_app/immutable/nodes/10.DqbXhTAj.js", + e + "/_app/immutable/nodes/11.C3Fd3lks.js", + e + "/_app/immutable/nodes/12.B7-BJxmw.js", + e + "/_app/immutable/nodes/13.DbQSn9aq.js", + e + "/_app/immutable/nodes/14.ClqwdR4T.js", + e + "/_app/immutable/nodes/15.D6A8EYfF.js", + e + "/_app/immutable/nodes/16.DTKQOukW.js", + e + "/_app/immutable/nodes/17.CONNNOye.js", + e + "/_app/immutable/nodes/18.24JvCqRi.js", + e + "/_app/immutable/assets/18.BD1hRFPA.css", + e + "/_app/immutable/nodes/19.B2QYN1F_.js", + e + "/_app/immutable/nodes/2.-6emjql3.js", + e + "/_app/immutable/nodes/20.LCTNv26D.js", + e + "/_app/immutable/nodes/21.zScYLJw9.js", + e + "/_app/immutable/nodes/3.DOMAwJeg.js", + e + "/_app/immutable/nodes/4.CrDfIbdR.js", + e + "/_app/immutable/assets/4.BtKF873c.css", + e + "/_app/immutable/nodes/5.cZCL4YVE.js", + e + "/_app/immutable/nodes/6.WPRvZASS.js", + e + "/_app/immutable/nodes/7.ACRjrnuj.js", + e + "/_app/immutable/nodes/8.BbOUPQlW.js", + e + "/_app/immutable/nodes/9.Cn-noR6e.js", + e + "/_app/immutable/chunks/0wx1llIh.js", + e + "/_app/immutable/chunks/B6ZK_HZO.js", + e + "/_app/immutable/chunks/BA2Qx8r3.js", + e + "/_app/immutable/assets/ProfileAvatarWithLevel.6dmPRSfx.css", + e + "/_app/immutable/chunks/BBgyHb-Z.js", + e + "/_app/immutable/chunks/BF50aS-j.js", + e + "/_app/immutable/chunks/BFFUopoM.js", + e + "/_app/immutable/chunks/BHI5vujT.js", + e + "/_app/immutable/chunks/BI7eddl7.js", + e + "/_app/immutable/chunks/BKioTOWR.js", + e + "/_app/immutable/chunks/BOREeBzQ.js", + e + "/_app/immutable/chunks/BRM3t761.js", + e + "/_app/immutable/chunks/BSXXHLQ0.js", + e + "/_app/immutable/chunks/Blc0Ir5M.js", + e + "/_app/immutable/chunks/Bn0Xcwmn.js", + e + "/_app/immutable/assets/LoginForm.CxMG0irz.css", + e + "/_app/immutable/chunks/BpoSU4rb.js", + e + "/_app/immutable/chunks/BsOIMr0T.js", + e + "/_app/immutable/chunks/C0GlPMrk.js", + e + "/_app/immutable/assets/notification.CPyrWqU1.mp3", + e + "/_app/immutable/chunks/C3E1P42D.js", + e + "/_app/immutable/chunks/C4yB2Gnm.js", + e + "/_app/immutable/chunks/C5yqZvKC.js", + e + "/_app/immutable/chunks/CHGjpGz-.js", + e + "/_app/immutable/chunks/CMvZtFtm.js", + e + "/_app/immutable/chunks/CV9xcpLq.js", + e + "/_app/immutable/chunks/CVa8RI1g.js", + e + "/_app/immutable/chunks/CXkjfmFU.js", + e + "/_app/immutable/chunks/CZlv7MYe.js", + e + "/_app/immutable/chunks/CdTXrPIO.js", + e + "/_app/immutable/chunks/CgCA7Awo.js", + e + "/_app/immutable/chunks/Ch2Ub8FX.js", + e + "/_app/immutable/chunks/CmhsLcKe.js", + e + "/_app/immutable/chunks/Cqwd83E5.js", + e + "/_app/immutable/chunks/CyB--sFG.js", + e + "/_app/immutable/chunks/D3yDgRbd.js", + e + "/_app/immutable/chunks/D3yaN7Zl.js", + e + "/_app/immutable/chunks/DBSOMMI_.js", + e + "/_app/immutable/chunks/DCynssDD.js", + e + "/_app/immutable/chunks/DLfdYhzo.js", + e + "/_app/immutable/chunks/DTFgqBF9.js", + e + "/_app/immutable/chunks/DVA6u9-7.js", + e + "/_app/immutable/chunks/Dmqg20ho.js", + e + "/_app/immutable/chunks/DoL3ojdE.js", + e + "/_app/immutable/chunks/DouSnzU9.js", + e + "/_app/immutable/chunks/Dpga8uG-.js", + e + "/_app/immutable/chunks/Dt3xBOvm.js", + e + "/_app/immutable/chunks/DueIxFLX.js", + e + "/_app/immutable/chunks/LGRbXsL1.js", + e + "/_app/immutable/chunks/P77cUGnY.js", + e + "/_app/immutable/chunks/Z_72d8Vp.js", + e + "/_app/immutable/chunks/g9MKNE1A.js", + e + "/_app/immutable/chunks/lE0oaQc5.js", + e + "/_app/immutable/chunks/m3o6lEf1.js", + e + "/_app/immutable/chunks/wZ7b5CwQ.js", + e + "/_app/immutable/entry/start.cg9kNiPJ.js", + e + "/_app/immutable/chunks/yW7U80iv.js", + ], + ie = [ + e + "/.well-known/security.txt", + e + "/26/2025/08/12/horse.png", + e + "/favicon.ico", + e + "/img/apple-touch-icon.png", + e + "/img/favicon-96x96.png", + e + "/img/logo-512x512.png", + e + "/img/logo.png", + e + "/img/og-image-mobile.png", + e + "/img/og-image.png", + e + "/img/pwa-country-leaderboard-mobile.png", + e + "/img/pwa-kiev-mobile.png", + e + "/img/pwa-paint-heart-mobile.png", + e + "/img/pwa-void-mobile.png", + e + "/img/web-app-manifest-192x192.png", + e + "/img/web-app-manifest-512x512.png", + e + "/site.webmanifest", + ], + te = "1759353996237"; +let c; +const z = + typeof TextDecoder < "u" + ? new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }) + : { + decode: () => { + throw Error("TextDecoder not available"); + }, + }; +typeof TextDecoder < "u" && z.decode(); +let k = null; +function F() { + return ( + (k === null || k.byteLength === 0) && (k = new Uint8Array(c.memory.buffer)), + k + ); } - -function te(e, n) { - return e = e >>> 0, J.decode(K().subarray(e, e + n)) +function oe(a, n) { + return (a = a >>> 0), z.decode(F().subarray(a, a + n)); } let C = null; - function de() { - return (C === null || C.byteLength === 0) && (C = new Uint8ClampedArray(r.memory.buffer)), C + return ( + (C === null || C.byteLength === 0) && + (C = new Uint8ClampedArray(c.memory.buffer)), + C + ); } - -function le(e, n) { - return e = e >>> 0, de().subarray(e / 1, e / 1 + n) +function le(a, n) { + return (a = a >>> 0), de().subarray(a / 1, a / 1 + n); } const b = new Array(128).fill(void 0); b.push(void 0, null, !0, !1); -let D = b.length; - -function se(e) { - D === b.length && b.push(b.length + 1); - const n = D; - return D = b[n], b[n] = e, n +let M = b.length; +function se(a) { + M === b.length && b.push(b.length + 1); + const n = M; + return (M = b[n]), (b[n] = a), n; } let U = 0; - -function q(e, n) { - const i = n(e.length * 1, 1) >>> 0; - return K().set(e, i / 1), U = e.length, i +function q(a, n) { + const i = n(a.length * 1, 1) >>> 0; + return F().set(a, i / 1), (U = a.length), i; } -let M = null; - +let S = null; function H() { - return (M === null || M.byteLength === 0) && (M = new Int32Array(r.memory.buffer)), M + return ( + (S === null || S.byteLength === 0) && (S = new Int32Array(c.memory.buffer)), + S + ); } - -function ce(e, n) { - return e = e >>> 0, K().subarray(e / 1, e / 1 + n) +function me(a, n) { + return (a = a >>> 0), F().subarray(a / 1, a / 1 + n); } - -function re(e, n, i) { - try { - const m = r.__wbindgen_add_to_stack_pointer(-16), - y = q(e, r.__wbindgen_malloc), - t = U; - r.encode(m, y, t, n, i); - var l = H()[m / 4 + 0], - s = H()[m / 4 + 1], - u = ce(l, s).slice(); - return r.__wbindgen_free(l, s * 1, 1), u - } finally { - r.__wbindgen_add_to_stack_pointer(16) - } +function ce(a, n, i) { + try { + const r = c.__wbindgen_add_to_stack_pointer(-16), + w = q(a, c.__wbindgen_malloc), + o = U; + c.encode(r, w, o, n, i); + var l = H()[r / 4 + 0], + s = H()[r / 4 + 1], + u = me(l, s).slice(); + return c.__wbindgen_free(l, s * 1, 1), u; + } finally { + c.__wbindgen_add_to_stack_pointer(16); + } } - -function me(e) { - return b[e] +function re(a) { + return b[a]; } - -function ge(e) { - e < 132 || (b[e] = D, D = e) +function ge(a) { + a < 132 || ((b[a] = M), (M = a)); } - -function fe(e) { - const n = me(e); - return ge(e), n +function fe(a) { + const n = re(a); + return ge(a), n; } - -function ue(e) { - const n = q(e, r.__wbindgen_malloc), - i = U, - l = r.decode(n, i); - return fe(l) +function ue(a) { + const n = q(a, c.__wbindgen_malloc), + i = U, + l = c.decode(n, i); + return fe(l); } -async function pe(e, n) { - if (typeof Response == "function" && e instanceof Response) { - if (typeof WebAssembly.instantiateStreaming == "function") try { - return await WebAssembly.instantiateStreaming(e, n) - } catch (l) { - 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", l); - else throw l - } - const i = await e.arrayBuffer(); - return await WebAssembly.instantiate(i, n) - } else { - const i = await WebAssembly.instantiate(e, n); - return i instanceof WebAssembly.Instance ? { - instance: i, - module: e - } : i - } +async function pe(a, n) { + if (typeof Response == "function" && a instanceof Response) { + if (typeof WebAssembly.instantiateStreaming == "function") + try { + return await WebAssembly.instantiateStreaming(a, n); + } catch (l) { + if (a.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", + l + ); + else throw l; + } + const i = await a.arrayBuffer(); + return await WebAssembly.instantiate(i, n); + } else { + const i = await WebAssembly.instantiate(a, n); + return i instanceof WebAssembly.Instance ? { instance: i, module: a } : i; + } } - function be() { - const e = {}; - return e.wbg = {}, e.wbg.__wbg_newwithownedu8clampedarrayandsh_91db5987993a08fb = function(n, i, l, s) { - var u = le(n, i).slice(); - r.__wbindgen_free(n, i * 1, 1); - const m = new ImageData(u, l >>> 0, s >>> 0); - return se(m) - }, e.wbg.__wbindgen_throw = function(n, i) { - throw new Error(te(n, i)) - }, e + const a = {}; + return ( + (a.wbg = {}), + (a.wbg.__wbg_newwithownedu8clampedarrayandsh_91db5987993a08fb = function ( + n, + i, + l, + s + ) { + var u = le(n, i).slice(); + c.__wbindgen_free(n, i * 1, 1); + const r = new ImageData(u, l >>> 0, s >>> 0); + return se(r); + }), + (a.wbg.__wbindgen_throw = function (n, i) { + throw new Error(oe(n, i)); + }), + a + ); } - -function he(e, n) { - return r = e.exports, F.__wbindgen_wasm_module = n, M = null, S = null, C = null, r +function he(a, n) { + return ( + (c = a.exports), + (K.__wbindgen_wasm_module = n), + (S = null), + (k = null), + (C = null), + c + ); } -async function F(e) { - if (r !== void 0) return r; - const n = be(); - (typeof e == "string" || typeof Request == "function" && e instanceof Request || typeof URL == "function" && e instanceof URL) && (e = fetch(e)); - const { - instance: i, - module: l - } = await pe(await e, n); - return he(i, l) +async function K(a) { + if (c !== void 0) return c; + const n = be(); + (typeof a == "string" || + (typeof Request == "function" && a instanceof Request) || + (typeof URL == "function" && a instanceof URL)) && + (a = fetch(a)); + const { instance: i, module: l } = await pe(await a, n); + return he(i, l); } -const we = globalThis.ServiceWorkerGlobalScope !== void 0, - ye = we && typeof self < "u" && globalThis.caches && globalThis.caches.default !== void 0, - _e = typeof process == "object" && process.release && process.release.name === "node"; -(ye || _e) && (globalThis.ImageData || (globalThis.ImageData = class { - constructor(n, i, l) { - this.data = n, this.width = i, this.height = l - } -}), typeof self < "u" && self.location === void 0 && (self.location = { - href: "" -})); -let j; -async function Se(e) { - return j || (j = F(e)), j +const _e = globalThis.ServiceWorkerGlobalScope !== void 0, + we = + _e && + typeof self < "u" && + globalThis.caches && + globalThis.caches.default !== void 0, + ye = + typeof process == "object" && + process.release && + process.release.name === "node"; +(we || ye) && + (globalThis.ImageData || + (globalThis.ImageData = class { + constructor(n, i, l) { + (this.data = n), (this.width = i), (this.height = l); + } + }), + typeof self < "u" && + self.location === void 0 && + (self.location = { href: "" })); +let R; +async function ke(a) { + return R || (R = K(a)), R; } -async function Ce(e) { - await Se(); - const n = await ue(new Uint8Array(e)); - if (!n) throw new Error("Encoding error."); - return n +async function Ce(a) { + await ke(); + const n = await ue(new Uint8Array(a)); + if (!n) throw new Error("Encoding error."); + return n; } let E; -async function Y(e) { - return E || (E = F(e)), E +async function Y(a) { + return E || (E = K(a)), E; } -async function V(e) { - await Y(); - const n = await re(e.data, e.width, e.height); - if (!n) throw new Error("Encoding error."); - return n.buffer +async function V(a) { + await Y(); + const n = await ce(a.data, a.width, a.height); + if (!n) throw new Error("Encoding error."); + return n.buffer; } -const Me = "" + new URL("_app/immutable/assets/squoosh_png_bg.BsfxGNEB.wasm", location.href).pathname; - -function z({ - pixel: e, - season: n, - tile: i -}) { - return `t=(${i[0]},${i[1]});p=(${e[0]},${e[1]});s=${n}` +const Se = + "" + + new URL("_app/immutable/assets/squoosh_png_bg.BsfxGNEB.wasm", location.href) + .pathname; +function Z({ pixel: a, season: n, tile: i }) { + return `t=(${i[0]},${i[1]});p=(${a[0]},${a[1]});s=${n}`; } -const De = [{ - tileSize: 1e3, - zoom: 11 - }], - ke = 4, - Te = 6e3, - Be = [{ - name: "Transparent", - rgb: [0, 0, 0] - }, { - name: "Black", - rgb: [0, 0, 0] - }, { - name: "Dark Gray", - rgb: [60, 60, 60] - }, { - name: "Gray", - rgb: [120, 120, 120] - }, { - name: "Light Gray", - rgb: [210, 210, 210] - }, { - name: "White", - rgb: [255, 255, 255] - }, { - name: "Deep Red", - rgb: [96, 0, 24] - }, { - name: "Red", - rgb: [237, 28, 36] - }, { - name: "Orange", - rgb: [255, 127, 39] - }, { - name: "Gold", - rgb: [246, 170, 9] - }, { - name: "Yellow", - rgb: [249, 221, 59] - }, { - name: "Light Yellow", - rgb: [255, 250, 188] - }, { - name: "Dark Green", - rgb: [14, 185, 104] - }, { - name: "Green", - rgb: [19, 230, 123] - }, { - name: "Light Green", - rgb: [135, 255, 94] - }, { - name: "Dark Teal", - rgb: [12, 129, 110] - }, { - name: "Teal", - rgb: [16, 174, 166] - }, { - name: "Light Teal", - rgb: [19, 225, 190] - }, { - name: "Dark Blue", - rgb: [40, 80, 158] - }, { - name: "Blue", - rgb: [64, 147, 228] - }, { - name: "Cyan", - rgb: [96, 247, 242] - }, { - name: "Indigo", - rgb: [107, 80, 246] - }, { - name: "Light Indigo", - rgb: [153, 177, 251] - }, { - name: "Dark Purple", - rgb: [120, 12, 153] - }, { - name: "Purple", - rgb: [170, 56, 185] - }, { - name: "Light Purple", - rgb: [224, 159, 249] - }, { - name: "Dark Pink", - rgb: [203, 0, 122] - }, { - name: "Pink", - rgb: [236, 31, 128] - }, { - name: "Light Pink", - rgb: [243, 141, 169] - }, { - name: "Dark Brown", - rgb: [104, 70, 52] - }, { - name: "Brown", - rgb: [149, 104, 42] - }, { - name: "Beige", - rgb: [248, 178, 119] - }, { - name: "Medium Gray", - rgb: [170, 170, 170] - }, { - name: "Dark Red", - rgb: [165, 14, 30] - }, { - name: "Light Red", - rgb: [250, 128, 114] - }, { - name: "Dark Orange", - rgb: [228, 92, 26] - }, { - name: "Light Tan", - rgb: [214, 181, 148] - }, { - name: "Dark Goldenrod", - rgb: [156, 132, 49] - }, { - name: "Goldenrod", - rgb: [197, 173, 49] - }, { - name: "Light Goldenrod", - rgb: [232, 212, 95] - }, { - name: "Dark Olive", - rgb: [74, 107, 58] - }, { - name: "Olive", - rgb: [90, 148, 74] - }, { - name: "Light Olive", - rgb: [132, 197, 115] - }, { - name: "Dark Cyan", - rgb: [15, 121, 159] - }, { - name: "Light Cyan", - rgb: [187, 250, 242] - }, { - name: "Light Blue", - rgb: [125, 199, 255] - }, { - name: "Dark Indigo", - rgb: [77, 49, 184] - }, { - name: "Dark Slate Blue", - rgb: [74, 66, 132] - }, { - name: "Slate Blue", - rgb: [122, 113, 196] - }, { - name: "Light Slate Blue", - rgb: [181, 174, 241] - }, { - name: "Light Brown", - rgb: [219, 164, 99] - }, { - name: "Dark Beige", - rgb: [209, 128, 81] - }, { - name: "Light Beige", - rgb: [255, 197, 165] - }, { - name: "Dark Peach", - rgb: [155, 82, 73] - }, { - name: "Peach", - rgb: [209, 128, 120] - }, { - name: "Light Peach", - rgb: [250, 182, 164] - }, { - name: "Dark Tan", - rgb: [123, 99, 82] - }, { - name: "Tan", - rgb: [156, 132, 107] - }, { - name: "Dark Slate", - rgb: [51, 57, 65] - }, { - name: "Slate", - rgb: [109, 117, 141] - }, { - name: "Light Slate", - rgb: [179, 185, 209] - }, { - name: "Dark Stone", - rgb: [109, 100, 63] - }, { - name: "Stone", - rgb: [148, 140, 107] - }, { - name: "Light Stone", - rgb: [205, 197, 158] - }], - Pe = { - needsPhoneVerification: "needs_phone_verification" - }, - Ie = { - Droplet: {}, - "Max. Charge": {}, - "Paint Charge": {}, - Color: {}, - Flag: {}, - "Profile Picture": {} - }, - Ge = { - 10: { - name: "25,000 Droplets", - price: 500, - isDollar: !0, - lookupKey: "droplets_5", - items: [{ - name: "Droplet", - amount: 25e3 - }] - }, - 20: { - name: "78,750 Droplets", - price: 1500, - isDollar: !0, - lookupKey: "droplets_15", - items: [{ - name: "Droplet", - amount: 76750 - }] - }, - 30: { - name: "165,000 Droplets", - price: 3e3, - isDollar: !0, - lookupKey: "droplets_30", - items: [{ - name: "Droplet", - amount: 165e3 - }] - }, - 40: { - name: "287,500 Droplets", - price: 5e3, - isDollar: !0, - lookupKey: "droplets_50", - items: [{ - name: "Droplet", - amount: 287500 - }] - }, - 50: { - name: "450,000 Droplets", - price: 7500, - isDollar: !0, - lookupKey: "droplets_75", - items: [{ - name: "Droplet", - amount: 45e4 - }] - }, - 60: { - name: "625,000 Droplets", - price: 1e4, - isDollar: !0, - lookupKey: "droplets_100", - items: [{ - name: "Droplet", - amount: 625e3 - }] - }, - 70: { - name: "+5 Max. Charges", - price: 500, - isDollar: !1, - items: [{ - name: "Max. Charge", - amount: 5 - }] - }, - 80: { - name: "+30 Paint Charges", - price: 500, - isDollar: !1, - items: [{ - name: "Paint Charge", - amount: 30 - }] - }, - 100: { - name: "Unlock Color", - price: 2e3, - isDollar: !1, - items: [{ - name: "Color", - amount: 1 - }] - }, - 110: { - name: "Flag", - price: 2e4, - isDollar: !1, - items: [{ - name: "Flag", - amount: 1 - }] - }, - 120: { - name: "Profile Picture", - price: 2e4, - isDollar: !1, - items: [{ - name: "Profile Picture", - amount: 1 - }] - } - }, - Le = JSON.parse(`[{"id":1,"name":"Afghanistan","code":"AF","flag":"🇦🇫"},{"id":2,"name":"Albania","code":"AL","flag":"🇦🇱"},{"id":3,"name":"Algeria","code":"DZ","flag":"🇩🇿"},{"id":4,"name":"American Samoa","code":"AS","flag":"🇦🇸"},{"id":5,"name":"Andorra","code":"AD","flag":"🇦🇩"},{"id":6,"name":"Angola","code":"AO","flag":"🇦🇴"},{"id":7,"name":"Anguilla","code":"AI","flag":"🇦🇮"},{"id":8,"name":"Antarctica","code":"AQ","flag":"🇦🇶"},{"id":9,"name":"Antigua and Barbuda","code":"AG","flag":"🇦🇬"},{"id":10,"name":"Argentina","code":"AR","flag":"🇦🇷"},{"id":11,"name":"Armenia","code":"AM","flag":"🇦🇲"},{"id":12,"name":"Aruba","code":"AW","flag":"🇦🇼"},{"id":13,"name":"Australia","code":"AU","flag":"🇦🇺"},{"id":14,"name":"Austria","code":"AT","flag":"🇦🇹"},{"id":15,"name":"Azerbaijan","code":"AZ","flag":"🇦🇿"},{"id":16,"name":"Bahamas","code":"BS","flag":"🇧🇸"},{"id":17,"name":"Bahrain","code":"BH","flag":"🇧🇭"},{"id":18,"name":"Bangladesh","code":"BD","flag":"🇧🇩"},{"id":19,"name":"Barbados","code":"BB","flag":"🇧🇧"},{"id":20,"name":"Belarus","code":"BY","flag":"🇧🇾"},{"id":21,"name":"Belgium","code":"BE","flag":"🇧🇪"},{"id":22,"name":"Belize","code":"BZ","flag":"🇧🇿"},{"id":23,"name":"Benin","code":"BJ","flag":"🇧🇯"},{"id":24,"name":"Bermuda","code":"BM","flag":"🇧🇲"},{"id":25,"name":"Bhutan","code":"BT","flag":"🇧🇹"},{"id":26,"name":"Bolivia","code":"BO","flag":"🇧🇴"},{"id":27,"name":"Bonaire","code":"BQ","flag":"🇧🇶"},{"id":28,"name":"Bosnia and Herzegovina","code":"BA","flag":"🇧🇦"},{"id":29,"name":"Botswana","code":"BW","flag":"🇧🇼"},{"id":30,"name":"Bouvet Island","code":"BV","flag":"🇧🇻"},{"id":31,"name":"Brazil","code":"BR","flag":"🇧🇷"},{"id":32,"name":"British Indian Ocean Territory","code":"IO","flag":"🇮🇴"},{"id":33,"name":"Brunei Darussalam","code":"BN","flag":"🇧🇳"},{"id":34,"name":"Bulgaria","code":"BG","flag":"🇧🇬"},{"id":35,"name":"Burkina Faso","code":"BF","flag":"🇧🇫"},{"id":36,"name":"Burundi","code":"BI","flag":"🇧🇮"},{"id":37,"name":"Cabo Verde","code":"CV","flag":"🇨🇻"},{"id":38,"name":"Cambodia","code":"KH","flag":"🇰🇭"},{"id":39,"name":"Cameroon","code":"CM","flag":"🇨🇲"},{"id":40,"name":"Canada","code":"CA","flag":"🇨🇦"},{"id":41,"name":"Cayman Islands","code":"KY","flag":"🇰🇾"},{"id":42,"name":"Central African Republic","code":"CF","flag":"🇨🇫"},{"id":43,"name":"Chad","code":"TD","flag":"🇹🇩"},{"id":44,"name":"Chile","code":"CL","flag":"🇨🇱"},{"id":45,"name":"China","code":"CN","flag":"🇨🇳"},{"id":46,"name":"Christmas Island","code":"CX","flag":"🇨🇽"},{"id":47,"name":"Cocos (Keeling) Islands","code":"CC","flag":"🇨🇨"},{"id":48,"name":"Colombia","code":"CO","flag":"🇨🇴"},{"id":49,"name":"Comoros","code":"KM","flag":"🇰🇲"},{"id":50,"name":"Congo","code":"CG","flag":"🇨🇬"},{"id":51,"name":"Cook Islands","code":"CK","flag":"🇨🇰"},{"id":52,"name":"Costa Rica","code":"CR","flag":"🇨🇷"},{"id":53,"name":"Croatia","code":"HR","flag":"🇭🇷"},{"id":54,"name":"Cuba","code":"CU","flag":"🇨🇺"},{"id":55,"name":"Curaçao","code":"CW","flag":"🇨🇼"},{"id":56,"name":"Cyprus","code":"CY","flag":"🇨🇾"},{"id":57,"name":"Czechia","code":"CZ","flag":"🇨🇿"},{"id":58,"name":"Côte d'Ivoire","code":"CI","flag":"🇨🇮"},{"id":59,"name":"Denmark","code":"DK","flag":"🇩🇰"},{"id":60,"name":"Djibouti","code":"DJ","flag":"🇩🇯"},{"id":61,"name":"Dominica","code":"DM","flag":"🇩🇲"},{"id":62,"name":"Dominican Republic","code":"DO","flag":"🇩🇴"},{"id":63,"name":"Ecuador","code":"EC","flag":"🇪🇨"},{"id":64,"name":"Egypt","code":"EG","flag":"🇪🇬"},{"id":65,"name":"El Salvador","code":"SV","flag":"🇸🇻"},{"id":66,"name":"Equatorial Guinea","code":"GQ","flag":"🇬🇶"},{"id":67,"name":"Eritrea","code":"ER","flag":"🇪🇷"},{"id":68,"name":"Estonia","code":"EE","flag":"🇪🇪"},{"id":69,"name":"Eswatini","code":"SZ","flag":"🇸🇿"},{"id":70,"name":"Ethiopia","code":"ET","flag":"🇪🇹"},{"id":71,"name":"Falkland Islands (Malvinas)","code":"FK","flag":"🇫🇰"},{"id":72,"name":"Faroe Islands","code":"FO","flag":"🇫🇴"},{"id":73,"name":"Fiji","code":"FJ","flag":"🇫🇯"},{"id":74,"name":"Finland","code":"FI","flag":"🇫🇮"},{"id":75,"name":"France","code":"FR","flag":"🇫🇷"},{"id":76,"name":"French Guiana","code":"GF","flag":"🇬🇫"},{"id":77,"name":"French Polynesia","code":"PF","flag":"🇵🇫"},{"id":78,"name":"French Southern Territories","code":"TF","flag":"🇹🇫"},{"id":79,"name":"Gabon","code":"GA","flag":"🇬🇦"},{"id":80,"name":"Gambia","code":"GM","flag":"🇬🇲"},{"id":81,"name":"Georgia","code":"GE","flag":"🇬🇪"},{"id":82,"name":"Germany","code":"DE","flag":"🇩🇪"},{"id":83,"name":"Ghana","code":"GH","flag":"🇬🇭"},{"id":84,"name":"Gibraltar","code":"GI","flag":"🇬🇮"},{"id":85,"name":"Greece","code":"GR","flag":"🇬🇷"},{"id":86,"name":"Greenland","code":"GL","flag":"🇬🇱"},{"id":87,"name":"Grenada","code":"GD","flag":"🇬🇩"},{"id":88,"name":"Guadeloupe","code":"GP","flag":"🇬🇵"},{"id":89,"name":"Guam","code":"GU","flag":"🇬🇺"},{"id":90,"name":"Guatemala","code":"GT","flag":"🇬🇹"},{"id":91,"name":"Guernsey","code":"GG","flag":"🇬🇬"},{"id":92,"name":"Guinea","code":"GN","flag":"🇬🇳"},{"id":93,"name":"Guinea-Bissau","code":"GW","flag":"🇬🇼"},{"id":94,"name":"Guyana","code":"GY","flag":"🇬🇾"},{"id":95,"name":"Haiti","code":"HT","flag":"🇭🇹"},{"id":96,"name":"Heard Island and McDonald Islands","code":"HM","flag":"🇭🇲"},{"id":97,"name":"Honduras","code":"HN","flag":"🇭🇳"},{"id":98,"name":"Hong Kong","code":"HK","flag":"🇭🇰"},{"id":99,"name":"Hungary","code":"HU","flag":"🇭🇺"},{"id":100,"name":"Iceland","code":"IS","flag":"🇮🇸"},{"id":101,"name":"India","code":"IN","flag":"🇮🇳"},{"id":102,"name":"Indonesia","code":"ID","flag":"🇮🇩"},{"id":103,"name":"Iran","code":"IR","flag":"🇮🇷"},{"id":104,"name":"Iraq","code":"IQ","flag":"🇮🇶"},{"id":105,"name":"Ireland","code":"IE","flag":"🇮🇪"},{"id":106,"name":"Isle of Man","code":"IM","flag":"🇮🇲"},{"id":107,"name":"Israel","code":"IL","flag":"🇮🇱"},{"id":108,"name":"Italy","code":"IT","flag":"🇮🇹"},{"id":109,"name":"Jamaica","code":"JM","flag":"🇯🇲"},{"id":110,"name":"Japan","code":"JP","flag":"🇯🇵"},{"id":111,"name":"Jersey","code":"JE","flag":"🇯🇪"},{"id":112,"name":"Jordan","code":"JO","flag":"🇯🇴"},{"id":113,"name":"Kazakhstan","code":"KZ","flag":"🇰🇿"},{"id":114,"name":"Kenya","code":"KE","flag":"🇰🇪"},{"id":115,"name":"Kiribati","code":"KI","flag":"🇰🇮"},{"id":116,"name":"Kosovo","code":"XK","flag":"🇽🇰"},{"id":117,"name":"Kuwait","code":"KW","flag":"🇰🇼"},{"id":118,"name":"Kyrgyzstan","code":"KG","flag":"🇰🇬"},{"id":119,"name":"Laos","code":"LA","flag":"🇱🇦"},{"id":120,"name":"Latvia","code":"LV","flag":"🇱🇻"},{"id":121,"name":"Lebanon","code":"LB","flag":"🇱🇧"},{"id":122,"name":"Lesotho","code":"LS","flag":"🇱🇸"},{"id":123,"name":"Liberia","code":"LR","flag":"🇱🇷"},{"id":124,"name":"Libya","code":"LY","flag":"🇱🇾"},{"id":125,"name":"Liechtenstein","code":"LI","flag":"🇱🇮"},{"id":126,"name":"Lithuania","code":"LT","flag":"🇱🇹"},{"id":127,"name":"Luxembourg","code":"LU","flag":"🇱🇺"},{"id":128,"name":"Macao","code":"MO","flag":"🇲🇴"},{"id":129,"name":"Madagascar","code":"MG","flag":"🇲🇬"},{"id":130,"name":"Malawi","code":"MW","flag":"🇲🇼"},{"id":131,"name":"Malaysia","code":"MY","flag":"🇲🇾"},{"id":132,"name":"Maldives","code":"MV","flag":"🇲🇻"},{"id":133,"name":"Mali","code":"ML","flag":"🇲🇱"},{"id":134,"name":"Malta","code":"MT","flag":"🇲🇹"},{"id":135,"name":"Marshall Islands","code":"MH","flag":"🇲🇭"},{"id":136,"name":"Martinique","code":"MQ","flag":"🇲🇶"},{"id":137,"name":"Mauritania","code":"MR","flag":"🇲🇷"},{"id":138,"name":"Mauritius","code":"MU","flag":"🇲🇺"},{"id":139,"name":"Mayotte","code":"YT","flag":"🇾🇹"},{"id":140,"name":"Mexico","code":"MX","flag":"🇲🇽"},{"id":141,"name":"Micronesia","code":"FM","flag":"🇫🇲"},{"id":142,"name":"Moldova","code":"MD","flag":"🇲🇩"},{"id":143,"name":"Monaco","code":"MC","flag":"🇲🇨"},{"id":144,"name":"Mongolia","code":"MN","flag":"🇲🇳"},{"id":145,"name":"Montenegro","code":"ME","flag":"🇲🇪"},{"id":146,"name":"Montserrat","code":"MS","flag":"🇲🇸"},{"id":147,"name":"Morocco","code":"MA","flag":"🇲🇦"},{"id":148,"name":"Mozambique","code":"MZ","flag":"🇲🇿"},{"id":149,"name":"Myanmar","code":"MM","flag":"🇲🇲"},{"id":150,"name":"Namibia","code":"NA","flag":"🇳🇦"},{"id":151,"name":"Nauru","code":"NR","flag":"🇳🇷"},{"id":152,"name":"Nepal","code":"NP","flag":"🇳🇵"},{"id":153,"name":"Netherlands","code":"NL","flag":"🇳🇱"},{"id":154,"name":"New Caledonia","code":"NC","flag":"🇳🇨"},{"id":155,"name":"New Zealand","code":"NZ","flag":"🇳🇿"},{"id":156,"name":"Nicaragua","code":"NI","flag":"🇳🇮"},{"id":157,"name":"Niger","code":"NE","flag":"🇳🇪"},{"id":158,"name":"Nigeria","code":"NG","flag":"🇳🇬"},{"id":159,"name":"Niue","code":"NU","flag":"🇳🇺"},{"id":160,"name":"Norfolk Island","code":"NF","flag":"🇳🇫"},{"id":161,"name":"North Korea","code":"KP","flag":"🇰🇵"},{"id":162,"name":"North Macedonia","code":"MK","flag":"🇲🇰"},{"id":163,"name":"Northern Mariana Islands","code":"MP","flag":"🇲🇵"},{"id":164,"name":"Norway","code":"NO","flag":"🇳🇴"},{"id":165,"name":"Oman","code":"OM","flag":"🇴🇲"},{"id":166,"name":"Pakistan","code":"PK","flag":"🇵🇰"},{"id":167,"name":"Palau","code":"PW","flag":"🇵🇼"},{"id":168,"name":"Palestine","code":"PS","flag":"🇵🇸"},{"id":169,"name":"Panama","code":"PA","flag":"🇵🇦"},{"id":170,"name":"Papua New Guinea","code":"PG","flag":"🇵🇬"},{"id":171,"name":"Paraguay","code":"PY","flag":"🇵🇾"},{"id":172,"name":"Peru","code":"PE","flag":"🇵🇪"},{"id":173,"name":"Philippines","code":"PH","flag":"🇵🇭"},{"id":174,"name":"Pitcairn","code":"PN","flag":"🇵🇳"},{"id":175,"name":"Poland","code":"PL","flag":"🇵🇱"},{"id":176,"name":"Portugal","code":"PT","flag":"🇵🇹"},{"id":177,"name":"Puerto Rico","code":"PR","flag":"🇵🇷"},{"id":178,"name":"Qatar","code":"QA","flag":"🇶🇦"},{"id":179,"name":"Republic of the Congo","code":"CD","flag":"🇨🇩"},{"id":180,"name":"Romania","code":"RO","flag":"🇷🇴"},{"id":181,"name":"Russia","code":"RU","flag":"🇷🇺"},{"id":182,"name":"Rwanda","code":"RW","flag":"🇷🇼"},{"id":183,"name":"Réunion","code":"RE","flag":"🇷🇪"},{"id":184,"name":"Saint Barthélemy","code":"BL","flag":"🇧🇱"},{"id":185,"name":"Saint Helena","code":"SH","flag":"🇸🇭"},{"id":186,"name":"Saint Kitts and Nevis","code":"KN","flag":"🇰🇳"},{"id":187,"name":"Saint Lucia","code":"LC","flag":"🇱🇨"},{"id":188,"name":"Saint Martin (French part)","code":"MF","flag":"🇲🇫"},{"id":189,"name":"Saint Pierre and Miquelon","code":"PM","flag":"🇵🇲"},{"id":190,"name":"Saint Vincent and the Grenadines","code":"VC","flag":"🇻🇨"},{"id":191,"name":"Samoa","code":"WS","flag":"🇼🇸"},{"id":192,"name":"San Marino","code":"SM","flag":"🇸🇲"},{"id":193,"name":"Sao Tome and Principe","code":"ST","flag":"🇸🇹"},{"id":194,"name":"Saudi Arabia","code":"SA","flag":"🇸🇦"},{"id":195,"name":"Senegal","code":"SN","flag":"🇸🇳"},{"id":196,"name":"Serbia","code":"RS","flag":"🇷🇸"},{"id":197,"name":"Seychelles","code":"SC","flag":"🇸🇨"},{"id":198,"name":"Sierra Leone","code":"SL","flag":"🇸🇱"},{"id":199,"name":"Singapore","code":"SG","flag":"🇸🇬"},{"id":200,"name":"Sint Maarten (Dutch part)","code":"SX","flag":"🇸🇽"},{"id":201,"name":"Slovakia","code":"SK","flag":"🇸🇰"},{"id":202,"name":"Slovenia","code":"SI","flag":"🇸🇮"},{"id":203,"name":"Solomon Islands","code":"SB","flag":"🇸🇧"},{"id":204,"name":"Somalia","code":"SO","flag":"🇸🇴"},{"id":205,"name":"South Africa","code":"ZA","flag":"🇿🇦"},{"id":206,"name":"South Georgia and the South Sandwich Islands","code":"GS","flag":"🇬🇸"},{"id":207,"name":"South Korea","code":"KR","flag":"🇰🇷"},{"id":208,"name":"South Sudan","code":"SS","flag":"🇸🇸"},{"id":209,"name":"Spain","code":"ES","flag":"🇪🇸"},{"id":210,"name":"Sri Lanka","code":"LK","flag":"🇱🇰"},{"id":211,"name":"Sudan","code":"SD","flag":"🇸🇩"},{"id":212,"name":"Suriname","code":"SR","flag":"🇸🇷"},{"id":213,"name":"Svalbard and Jan Mayen","code":"SJ","flag":"🇸🇯"},{"id":214,"name":"Sweden","code":"SE","flag":"🇸🇪"},{"id":215,"name":"Switzerland","code":"CH","flag":"🇨🇭"},{"id":216,"name":"Syrian Arab Republic","code":"SY","flag":"🇸🇾"},{"id":217,"name":"Taiwan Province of China","code":"TW","flag":"🇨🇳"},{"id":218,"name":"Tajikistan","code":"TJ","flag":"🇹🇯"},{"id":219,"name":"Tanzania","code":"TZ","flag":"🇹🇿"},{"id":220,"name":"Thailand","code":"TH","flag":"🇹🇭"},{"id":221,"name":"Timor-Leste","code":"TL","flag":"🇹🇱"},{"id":222,"name":"Togo","code":"TG","flag":"🇹🇬"},{"id":223,"name":"Tokelau","code":"TK","flag":"🇹🇰"},{"id":224,"name":"Tonga","code":"TO","flag":"🇹🇴"},{"id":225,"name":"Trinidad and Tobago","code":"TT","flag":"🇹🇹"},{"id":226,"name":"Tunisia","code":"TN","flag":"🇹🇳"},{"id":227,"name":"Turkmenistan","code":"TM","flag":"🇹🇲"},{"id":228,"name":"Turks and Caicos Islands","code":"TC","flag":"🇹🇨"},{"id":229,"name":"Tuvalu","code":"TV","flag":"🇹🇻"},{"id":230,"name":"Türkiye","code":"TR","flag":"🇹🇷"},{"id":231,"name":"Uganda","code":"UG","flag":"🇺🇬"},{"id":232,"name":"Ukraine","code":"UA","flag":"🇺🇦"},{"id":233,"name":"United Arab Emirates","code":"AE","flag":"🇦🇪"},{"id":234,"name":"United Kingdom","code":"GB","flag":"🇬🇧"},{"id":235,"name":"United States","code":"US","flag":"🇺🇸"},{"id":236,"name":"United States Minor Outlying Islands","code":"UM","flag":"🇺🇲"},{"id":237,"name":"Uruguay","code":"UY","flag":"🇺🇾"},{"id":238,"name":"Uzbekistan","code":"UZ","flag":"🇺🇿"},{"id":239,"name":"Vanuatu","code":"VU","flag":"🇻🇺"},{"id":240,"name":"Vatican City","code":"VA","flag":"🇻🇦"},{"id":241,"name":"Venezuela","code":"VE","flag":"🇻🇪"},{"id":242,"name":"Viet Nam","code":"VN","flag":"🇻🇳"},{"id":243,"name":"Virgin Islands","code":"VG","flag":"🇻🇬"},{"id":244,"name":"Virgin Islands","code":"VI","flag":"🇻🇮"},{"id":245,"name":"Wallis and Futuna","code":"WF","flag":"🇼🇫"},{"id":246,"name":"Western Sahara","code":"EH","flag":"🇪🇭"},{"id":247,"name":"Yemen","code":"YE","flag":"🇾🇪"},{"id":248,"name":"Zambia","code":"ZM","flag":"🇿🇲"},{"id":249,"name":"Zimbabwe","code":"ZW","flag":"🇿🇼"},{"id":250,"name":"Åland Islands","code":"AX","flag":"🇦🇽"},{"id":251,"name":"Canary Islands","code":"IC","flag":"🇮🇨"}]`), - I = { - seasons: De, - regionSize: ke, - refreshIntervalMs: Te, - colors: Be, - errors: Pe, - items: Ie, - products: Ge, - countries: Le - }, - B = I, - Z = I.seasons.length - 1; -I.seasons[Z].zoom; -I.seasons[Z].tileSize; -const Ae = Y(Me), - v = `cache-${oe}`, - Re = new Set([...ne, ...ie]), - k = self, - P = new Map; -let w = []; -self.addEventListener("install", event => { - event.waitUntil(Promise.resolve()); +const Me = [{ tileSize: 1e3, zoom: 11 }], + De = 4, + Be = 6e3, + je = [ + { name: "Transparent", rgb: [0, 0, 0] }, + { name: "Black", rgb: [0, 0, 0] }, + { name: "Dark Gray", rgb: [60, 60, 60] }, + { name: "Gray", rgb: [120, 120, 120] }, + { name: "Light Gray", rgb: [210, 210, 210] }, + { name: "White", rgb: [255, 255, 255] }, + { name: "Deep Red", rgb: [96, 0, 24] }, + { name: "Red", rgb: [237, 28, 36] }, + { name: "Orange", rgb: [255, 127, 39] }, + { name: "Gold", rgb: [246, 170, 9] }, + { name: "Yellow", rgb: [249, 221, 59] }, + { name: "Light Yellow", rgb: [255, 250, 188] }, + { name: "Dark Green", rgb: [14, 185, 104] }, + { name: "Green", rgb: [19, 230, 123] }, + { name: "Light Green", rgb: [135, 255, 94] }, + { name: "Dark Teal", rgb: [12, 129, 110] }, + { name: "Teal", rgb: [16, 174, 166] }, + { name: "Light Teal", rgb: [19, 225, 190] }, + { name: "Dark Blue", rgb: [40, 80, 158] }, + { name: "Blue", rgb: [64, 147, 228] }, + { name: "Cyan", rgb: [96, 247, 242] }, + { name: "Indigo", rgb: [107, 80, 246] }, + { name: "Light Indigo", rgb: [153, 177, 251] }, + { name: "Dark Purple", rgb: [120, 12, 153] }, + { name: "Purple", rgb: [170, 56, 185] }, + { name: "Light Purple", rgb: [224, 159, 249] }, + { name: "Dark Pink", rgb: [203, 0, 122] }, + { name: "Pink", rgb: [236, 31, 128] }, + { name: "Light Pink", rgb: [243, 141, 169] }, + { name: "Dark Brown", rgb: [104, 70, 52] }, + { name: "Brown", rgb: [149, 104, 42] }, + { name: "Beige", rgb: [248, 178, 119] }, + { name: "Medium Gray", rgb: [170, 170, 170] }, + { name: "Dark Red", rgb: [165, 14, 30] }, + { name: "Light Red", rgb: [250, 128, 114] }, + { name: "Dark Orange", rgb: [228, 92, 26] }, + { name: "Light Tan", rgb: [214, 181, 148] }, + { name: "Dark Goldenrod", rgb: [156, 132, 49] }, + { name: "Goldenrod", rgb: [197, 173, 49] }, + { name: "Light Goldenrod", rgb: [232, 212, 95] }, + { name: "Dark Olive", rgb: [74, 107, 58] }, + { name: "Olive", rgb: [90, 148, 74] }, + { name: "Light Olive", rgb: [132, 197, 115] }, + { name: "Dark Cyan", rgb: [15, 121, 159] }, + { name: "Light Cyan", rgb: [187, 250, 242] }, + { name: "Light Blue", rgb: [125, 199, 255] }, + { name: "Dark Indigo", rgb: [77, 49, 184] }, + { name: "Dark Slate Blue", rgb: [74, 66, 132] }, + { name: "Slate Blue", rgb: [122, 113, 196] }, + { name: "Light Slate Blue", rgb: [181, 174, 241] }, + { name: "Light Brown", rgb: [219, 164, 99] }, + { name: "Dark Beige", rgb: [209, 128, 81] }, + { name: "Light Beige", rgb: [255, 197, 165] }, + { name: "Dark Peach", rgb: [155, 82, 73] }, + { name: "Peach", rgb: [209, 128, 120] }, + { name: "Light Peach", rgb: [250, 182, 164] }, + { name: "Dark Tan", rgb: [123, 99, 82] }, + { name: "Tan", rgb: [156, 132, 107] }, + { name: "Dark Slate", rgb: [51, 57, 65] }, + { name: "Slate", rgb: [109, 117, 141] }, + { name: "Light Slate", rgb: [179, 185, 209] }, + { name: "Dark Stone", rgb: [109, 100, 63] }, + { name: "Stone", rgb: [148, 140, 107] }, + { name: "Light Stone", rgb: [205, 197, 158] }, + ], + Te = { needsPhoneVerification: "needs_phone_verification" }, + Ie = { + Droplet: {}, + "Max. Charge": {}, + "Paint Charge": {}, + Color: {}, + Flag: {}, + "Profile Picture": {}, + }, + Pe = { + 10: { + name: "25,000 Droplets", + price: 500, + isDollar: !0, + lookupKey: "droplets_5", + items: [{ name: "Droplet", amount: 25e3 }], + }, + 20: { + name: "78,750 Droplets", + price: 1500, + isDollar: !0, + lookupKey: "droplets_15", + items: [{ name: "Droplet", amount: 76750 }], + }, + 30: { + name: "165,000 Droplets", + price: 3e3, + isDollar: !0, + lookupKey: "droplets_30", + items: [{ name: "Droplet", amount: 165e3 }], + }, + 40: { + name: "287,500 Droplets", + price: 5e3, + isDollar: !0, + lookupKey: "droplets_50", + items: [{ name: "Droplet", amount: 287500 }], + }, + 50: { + name: "450,000 Droplets", + price: 7500, + isDollar: !0, + lookupKey: "droplets_75", + items: [{ name: "Droplet", amount: 45e4 }], + }, + 60: { + name: "625,000 Droplets", + price: 1e4, + isDollar: !0, + lookupKey: "droplets_100", + items: [{ name: "Droplet", amount: 625e3 }], + }, + 70: { + name: "+5 Max. Charges", + price: 500, + isDollar: !1, + items: [{ name: "Max. Charge", amount: 5 }], + }, + 80: { + name: "+30 Paint Charges", + price: 500, + isDollar: !1, + items: [{ name: "Paint Charge", amount: 30 }], + }, + 100: { + name: "Unlock Color", + price: 2e3, + isDollar: !1, + items: [{ name: "Color", amount: 1 }], + }, + 110: { + name: "Flag", + price: 2e4, + isDollar: !1, + items: [{ name: "Flag", amount: 1 }], + }, + 120: { + name: "Profile Picture", + price: 2e4, + isDollar: !1, + items: [{ name: "Profile Picture", amount: 1 }], + }, + }, + Ae = JSON.parse( + `[{"id":1,"name":"Afghanistan","code":"AF","flag":"🇦🇫"},{"id":2,"name":"Albania","code":"AL","flag":"🇦🇱"},{"id":3,"name":"Algeria","code":"DZ","flag":"🇩🇿"},{"id":4,"name":"American Samoa","code":"AS","flag":"🇦🇸"},{"id":5,"name":"Andorra","code":"AD","flag":"🇦🇩"},{"id":6,"name":"Angola","code":"AO","flag":"🇦🇴"},{"id":7,"name":"Anguilla","code":"AI","flag":"🇦🇮"},{"id":8,"name":"Antarctica","code":"AQ","flag":"🇦🇶"},{"id":9,"name":"Antigua and Barbuda","code":"AG","flag":"🇦🇬"},{"id":10,"name":"Argentina","code":"AR","flag":"🇦🇷"},{"id":11,"name":"Armenia","code":"AM","flag":"🇦🇲"},{"id":12,"name":"Aruba","code":"AW","flag":"🇦🇼"},{"id":13,"name":"Australia","code":"AU","flag":"🇦🇺"},{"id":14,"name":"Austria","code":"AT","flag":"🇦🇹"},{"id":15,"name":"Azerbaijan","code":"AZ","flag":"🇦🇿"},{"id":16,"name":"Bahamas","code":"BS","flag":"🇧🇸"},{"id":17,"name":"Bahrain","code":"BH","flag":"🇧🇭"},{"id":18,"name":"Bangladesh","code":"BD","flag":"🇧🇩"},{"id":19,"name":"Barbados","code":"BB","flag":"🇧🇧"},{"id":20,"name":"Belarus","code":"BY","flag":"🇧🇾"},{"id":21,"name":"Belgium","code":"BE","flag":"🇧🇪"},{"id":22,"name":"Belize","code":"BZ","flag":"🇧🇿"},{"id":23,"name":"Benin","code":"BJ","flag":"🇧🇯"},{"id":24,"name":"Bermuda","code":"BM","flag":"🇧🇲"},{"id":25,"name":"Bhutan","code":"BT","flag":"🇧🇹"},{"id":26,"name":"Bolivia","code":"BO","flag":"🇧🇴"},{"id":27,"name":"Bonaire","code":"BQ","flag":"🇧🇶"},{"id":28,"name":"Bosnia and Herzegovina","code":"BA","flag":"🇧🇦"},{"id":29,"name":"Botswana","code":"BW","flag":"🇧🇼"},{"id":30,"name":"Bouvet Island","code":"BV","flag":"🇧🇻"},{"id":31,"name":"Brazil","code":"BR","flag":"🇧🇷"},{"id":32,"name":"British Indian Ocean Territory","code":"IO","flag":"🇮🇴"},{"id":33,"name":"Brunei Darussalam","code":"BN","flag":"🇧🇳"},{"id":34,"name":"Bulgaria","code":"BG","flag":"🇧🇬"},{"id":35,"name":"Burkina Faso","code":"BF","flag":"🇧🇫"},{"id":36,"name":"Burundi","code":"BI","flag":"🇧🇮"},{"id":37,"name":"Cabo Verde","code":"CV","flag":"🇨🇻"},{"id":38,"name":"Cambodia","code":"KH","flag":"🇰🇭"},{"id":39,"name":"Cameroon","code":"CM","flag":"🇨🇲"},{"id":40,"name":"Canada","code":"CA","flag":"🇨🇦"},{"id":41,"name":"Cayman Islands","code":"KY","flag":"🇰🇾"},{"id":42,"name":"Central African Republic","code":"CF","flag":"🇨🇫"},{"id":43,"name":"Chad","code":"TD","flag":"🇹🇩"},{"id":44,"name":"Chile","code":"CL","flag":"🇨🇱"},{"id":45,"name":"China","code":"CN","flag":"🇨🇳"},{"id":46,"name":"Christmas Island","code":"CX","flag":"🇨🇽"},{"id":47,"name":"Cocos (Keeling) Islands","code":"CC","flag":"🇨🇨"},{"id":48,"name":"Colombia","code":"CO","flag":"🇨🇴"},{"id":49,"name":"Comoros","code":"KM","flag":"🇰🇲"},{"id":50,"name":"Congo","code":"CG","flag":"🇨🇬"},{"id":51,"name":"Cook Islands","code":"CK","flag":"🇨🇰"},{"id":52,"name":"Costa Rica","code":"CR","flag":"🇨🇷"},{"id":53,"name":"Croatia","code":"HR","flag":"🇭🇷"},{"id":54,"name":"Cuba","code":"CU","flag":"🇨🇺"},{"id":55,"name":"Curaçao","code":"CW","flag":"🇨🇼"},{"id":56,"name":"Cyprus","code":"CY","flag":"🇨🇾"},{"id":57,"name":"Czechia","code":"CZ","flag":"🇨🇿"},{"id":58,"name":"Côte d'Ivoire","code":"CI","flag":"🇨🇮"},{"id":59,"name":"Denmark","code":"DK","flag":"🇩🇰"},{"id":60,"name":"Djibouti","code":"DJ","flag":"🇩🇯"},{"id":61,"name":"Dominica","code":"DM","flag":"🇩🇲"},{"id":62,"name":"Dominican Republic","code":"DO","flag":"🇩🇴"},{"id":63,"name":"Ecuador","code":"EC","flag":"🇪🇨"},{"id":64,"name":"Egypt","code":"EG","flag":"🇪🇬"},{"id":65,"name":"El Salvador","code":"SV","flag":"🇸🇻"},{"id":66,"name":"Equatorial Guinea","code":"GQ","flag":"🇬🇶"},{"id":67,"name":"Eritrea","code":"ER","flag":"🇪🇷"},{"id":68,"name":"Estonia","code":"EE","flag":"🇪🇪"},{"id":69,"name":"Eswatini","code":"SZ","flag":"🇸🇿"},{"id":70,"name":"Ethiopia","code":"ET","flag":"🇪🇹"},{"id":71,"name":"Falkland Islands (Malvinas)","code":"FK","flag":"🇫🇰"},{"id":72,"name":"Faroe Islands","code":"FO","flag":"🇫🇴"},{"id":73,"name":"Fiji","code":"FJ","flag":"🇫🇯"},{"id":74,"name":"Finland","code":"FI","flag":"🇫🇮"},{"id":75,"name":"France","code":"FR","flag":"🇫🇷"},{"id":76,"name":"French Guiana","code":"GF","flag":"🇬🇫"},{"id":77,"name":"French Polynesia","code":"PF","flag":"🇵🇫"},{"id":78,"name":"French Southern Territories","code":"TF","flag":"🇹🇫"},{"id":79,"name":"Gabon","code":"GA","flag":"🇬🇦"},{"id":80,"name":"Gambia","code":"GM","flag":"🇬🇲"},{"id":81,"name":"Georgia","code":"GE","flag":"🇬🇪"},{"id":82,"name":"Germany","code":"DE","flag":"🇩🇪"},{"id":83,"name":"Ghana","code":"GH","flag":"🇬🇭"},{"id":84,"name":"Gibraltar","code":"GI","flag":"🇬🇮"},{"id":85,"name":"Greece","code":"GR","flag":"🇬🇷"},{"id":86,"name":"Greenland","code":"GL","flag":"🇬🇱"},{"id":87,"name":"Grenada","code":"GD","flag":"🇬🇩"},{"id":88,"name":"Guadeloupe","code":"GP","flag":"🇬🇵"},{"id":89,"name":"Guam","code":"GU","flag":"🇬🇺"},{"id":90,"name":"Guatemala","code":"GT","flag":"🇬🇹"},{"id":91,"name":"Guernsey","code":"GG","flag":"🇬🇬"},{"id":92,"name":"Guinea","code":"GN","flag":"🇬🇳"},{"id":93,"name":"Guinea-Bissau","code":"GW","flag":"🇬🇼"},{"id":94,"name":"Guyana","code":"GY","flag":"🇬🇾"},{"id":95,"name":"Haiti","code":"HT","flag":"🇭🇹"},{"id":96,"name":"Heard Island and McDonald Islands","code":"HM","flag":"🇭🇲"},{"id":97,"name":"Honduras","code":"HN","flag":"🇭🇳"},{"id":98,"name":"Hong Kong","code":"HK","flag":"🇭🇰"},{"id":99,"name":"Hungary","code":"HU","flag":"🇭🇺"},{"id":100,"name":"Iceland","code":"IS","flag":"🇮🇸"},{"id":101,"name":"India","code":"IN","flag":"🇮🇳"},{"id":102,"name":"Indonesia","code":"ID","flag":"🇮🇩"},{"id":103,"name":"Iran","code":"IR","flag":"🇮🇷"},{"id":104,"name":"Iraq","code":"IQ","flag":"🇮🇶"},{"id":105,"name":"Ireland","code":"IE","flag":"🇮🇪"},{"id":106,"name":"Isle of Man","code":"IM","flag":"🇮🇲"},{"id":107,"name":"Israel","code":"IL","flag":"🇮🇱"},{"id":108,"name":"Italy","code":"IT","flag":"🇮🇹"},{"id":109,"name":"Jamaica","code":"JM","flag":"🇯🇲"},{"id":110,"name":"Japan","code":"JP","flag":"🇯🇵"},{"id":111,"name":"Jersey","code":"JE","flag":"🇯🇪"},{"id":112,"name":"Jordan","code":"JO","flag":"🇯🇴"},{"id":113,"name":"Kazakhstan","code":"KZ","flag":"🇰🇿"},{"id":114,"name":"Kenya","code":"KE","flag":"🇰🇪"},{"id":115,"name":"Kiribati","code":"KI","flag":"🇰🇮"},{"id":116,"name":"Kosovo","code":"XK","flag":"🇽🇰"},{"id":117,"name":"Kuwait","code":"KW","flag":"🇰🇼"},{"id":118,"name":"Kyrgyzstan","code":"KG","flag":"🇰🇬"},{"id":119,"name":"Laos","code":"LA","flag":"🇱🇦"},{"id":120,"name":"Latvia","code":"LV","flag":"🇱🇻"},{"id":121,"name":"Lebanon","code":"LB","flag":"🇱🇧"},{"id":122,"name":"Lesotho","code":"LS","flag":"🇱🇸"},{"id":123,"name":"Liberia","code":"LR","flag":"🇱🇷"},{"id":124,"name":"Libya","code":"LY","flag":"🇱🇾"},{"id":125,"name":"Liechtenstein","code":"LI","flag":"🇱🇮"},{"id":126,"name":"Lithuania","code":"LT","flag":"🇱🇹"},{"id":127,"name":"Luxembourg","code":"LU","flag":"🇱🇺"},{"id":128,"name":"Macao","code":"MO","flag":"🇲🇴"},{"id":129,"name":"Madagascar","code":"MG","flag":"🇲🇬"},{"id":130,"name":"Malawi","code":"MW","flag":"🇲🇼"},{"id":131,"name":"Malaysia","code":"MY","flag":"🇲🇾"},{"id":132,"name":"Maldives","code":"MV","flag":"🇲🇻"},{"id":133,"name":"Mali","code":"ML","flag":"🇲🇱"},{"id":134,"name":"Malta","code":"MT","flag":"🇲🇹"},{"id":135,"name":"Marshall Islands","code":"MH","flag":"🇲🇭"},{"id":136,"name":"Martinique","code":"MQ","flag":"🇲🇶"},{"id":137,"name":"Mauritania","code":"MR","flag":"🇲🇷"},{"id":138,"name":"Mauritius","code":"MU","flag":"🇲🇺"},{"id":139,"name":"Mayotte","code":"YT","flag":"🇾🇹"},{"id":140,"name":"Mexico","code":"MX","flag":"🇲🇽"},{"id":141,"name":"Micronesia","code":"FM","flag":"🇫🇲"},{"id":142,"name":"Moldova","code":"MD","flag":"🇲🇩"},{"id":143,"name":"Monaco","code":"MC","flag":"🇲🇨"},{"id":144,"name":"Mongolia","code":"MN","flag":"🇲🇳"},{"id":145,"name":"Montenegro","code":"ME","flag":"🇲🇪"},{"id":146,"name":"Montserrat","code":"MS","flag":"🇲🇸"},{"id":147,"name":"Morocco","code":"MA","flag":"🇲🇦"},{"id":148,"name":"Mozambique","code":"MZ","flag":"🇲🇿"},{"id":149,"name":"Myanmar","code":"MM","flag":"🇲🇲"},{"id":150,"name":"Namibia","code":"NA","flag":"🇳🇦"},{"id":151,"name":"Nauru","code":"NR","flag":"🇳🇷"},{"id":152,"name":"Nepal","code":"NP","flag":"🇳🇵"},{"id":153,"name":"Netherlands","code":"NL","flag":"🇳🇱"},{"id":154,"name":"New Caledonia","code":"NC","flag":"🇳🇨"},{"id":155,"name":"New Zealand","code":"NZ","flag":"🇳🇿"},{"id":156,"name":"Nicaragua","code":"NI","flag":"🇳🇮"},{"id":157,"name":"Niger","code":"NE","flag":"🇳🇪"},{"id":158,"name":"Nigeria","code":"NG","flag":"🇳🇬"},{"id":159,"name":"Niue","code":"NU","flag":"🇳🇺"},{"id":160,"name":"Norfolk Island","code":"NF","flag":"🇳🇫"},{"id":161,"name":"North Korea","code":"KP","flag":"🇰🇵"},{"id":162,"name":"North Macedonia","code":"MK","flag":"🇲🇰"},{"id":163,"name":"Northern Mariana Islands","code":"MP","flag":"🇲🇵"},{"id":164,"name":"Norway","code":"NO","flag":"🇳🇴"},{"id":165,"name":"Oman","code":"OM","flag":"🇴🇲"},{"id":166,"name":"Pakistan","code":"PK","flag":"🇵🇰"},{"id":167,"name":"Palau","code":"PW","flag":"🇵🇼"},{"id":168,"name":"Palestine","code":"PS","flag":"🇵🇸"},{"id":169,"name":"Panama","code":"PA","flag":"🇵🇦"},{"id":170,"name":"Papua New Guinea","code":"PG","flag":"🇵🇬"},{"id":171,"name":"Paraguay","code":"PY","flag":"🇵🇾"},{"id":172,"name":"Peru","code":"PE","flag":"🇵🇪"},{"id":173,"name":"Philippines","code":"PH","flag":"🇵🇭"},{"id":174,"name":"Pitcairn","code":"PN","flag":"🇵🇳"},{"id":175,"name":"Poland","code":"PL","flag":"🇵🇱"},{"id":176,"name":"Portugal","code":"PT","flag":"🇵🇹"},{"id":177,"name":"Puerto Rico","code":"PR","flag":"🇵🇷"},{"id":178,"name":"Qatar","code":"QA","flag":"🇶🇦"},{"id":179,"name":"Republic of the Congo","code":"CD","flag":"🇨🇩"},{"id":180,"name":"Romania","code":"RO","flag":"🇷🇴"},{"id":181,"name":"Russia","code":"RU","flag":"🇷🇺"},{"id":182,"name":"Rwanda","code":"RW","flag":"🇷🇼"},{"id":183,"name":"Réunion","code":"RE","flag":"🇷🇪"},{"id":184,"name":"Saint Barthélemy","code":"BL","flag":"🇧🇱"},{"id":185,"name":"Saint Helena","code":"SH","flag":"🇸🇭"},{"id":186,"name":"Saint Kitts and Nevis","code":"KN","flag":"🇰🇳"},{"id":187,"name":"Saint Lucia","code":"LC","flag":"🇱🇨"},{"id":188,"name":"Saint Martin (French part)","code":"MF","flag":"🇲🇫"},{"id":189,"name":"Saint Pierre and Miquelon","code":"PM","flag":"🇵🇲"},{"id":190,"name":"Saint Vincent and the Grenadines","code":"VC","flag":"🇻🇨"},{"id":191,"name":"Samoa","code":"WS","flag":"🇼🇸"},{"id":192,"name":"San Marino","code":"SM","flag":"🇸🇲"},{"id":193,"name":"Sao Tome and Principe","code":"ST","flag":"🇸🇹"},{"id":194,"name":"Saudi Arabia","code":"SA","flag":"🇸🇦"},{"id":195,"name":"Senegal","code":"SN","flag":"🇸🇳"},{"id":196,"name":"Serbia","code":"RS","flag":"🇷🇸"},{"id":197,"name":"Seychelles","code":"SC","flag":"🇸🇨"},{"id":198,"name":"Sierra Leone","code":"SL","flag":"🇸🇱"},{"id":199,"name":"Singapore","code":"SG","flag":"🇸🇬"},{"id":200,"name":"Sint Maarten (Dutch part)","code":"SX","flag":"🇸🇽"},{"id":201,"name":"Slovakia","code":"SK","flag":"🇸🇰"},{"id":202,"name":"Slovenia","code":"SI","flag":"🇸🇮"},{"id":203,"name":"Solomon Islands","code":"SB","flag":"🇸🇧"},{"id":204,"name":"Somalia","code":"SO","flag":"🇸🇴"},{"id":205,"name":"South Africa","code":"ZA","flag":"🇿🇦"},{"id":206,"name":"South Georgia and the South Sandwich Islands","code":"GS","flag":"🇬🇸"},{"id":207,"name":"South Korea","code":"KR","flag":"🇰🇷"},{"id":208,"name":"South Sudan","code":"SS","flag":"🇸🇸"},{"id":209,"name":"Spain","code":"ES","flag":"🇪🇸"},{"id":210,"name":"Sri Lanka","code":"LK","flag":"🇱🇰"},{"id":211,"name":"Sudan","code":"SD","flag":"🇸🇩"},{"id":212,"name":"Suriname","code":"SR","flag":"🇸🇷"},{"id":213,"name":"Svalbard and Jan Mayen","code":"SJ","flag":"🇸🇯"},{"id":214,"name":"Sweden","code":"SE","flag":"🇸🇪"},{"id":215,"name":"Switzerland","code":"CH","flag":"🇨🇭"},{"id":216,"name":"Syrian Arab Republic","code":"SY","flag":"🇸🇾"},{"id":217,"name":"Taiwan","code":"TW","flag":"🇹🇼"},{"id":218,"name":"Tajikistan","code":"TJ","flag":"🇹🇯"},{"id":219,"name":"Tanzania","code":"TZ","flag":"🇹🇿"},{"id":220,"name":"Thailand","code":"TH","flag":"🇹🇭"},{"id":221,"name":"Timor-Leste","code":"TL","flag":"🇹🇱"},{"id":222,"name":"Togo","code":"TG","flag":"🇹🇬"},{"id":223,"name":"Tokelau","code":"TK","flag":"🇹🇰"},{"id":224,"name":"Tonga","code":"TO","flag":"🇹🇴"},{"id":225,"name":"Trinidad and Tobago","code":"TT","flag":"🇹🇹"},{"id":226,"name":"Tunisia","code":"TN","flag":"🇹🇳"},{"id":227,"name":"Turkmenistan","code":"TM","flag":"🇹🇲"},{"id":228,"name":"Turks and Caicos Islands","code":"TC","flag":"🇹🇨"},{"id":229,"name":"Tuvalu","code":"TV","flag":"🇹🇻"},{"id":230,"name":"Türkiye","code":"TR","flag":"🇹🇷"},{"id":231,"name":"Uganda","code":"UG","flag":"🇺🇬"},{"id":232,"name":"Ukraine","code":"UA","flag":"🇺🇦"},{"id":233,"name":"United Arab Emirates","code":"AE","flag":"🇦🇪"},{"id":234,"name":"United Kingdom","code":"GB","flag":"🇬🇧"},{"id":235,"name":"United States","code":"US","flag":"🇺🇸"},{"id":236,"name":"United States Minor Outlying Islands","code":"UM","flag":"🇺🇲"},{"id":237,"name":"Uruguay","code":"UY","flag":"🇺🇾"},{"id":238,"name":"Uzbekistan","code":"UZ","flag":"🇺🇿"},{"id":239,"name":"Vanuatu","code":"VU","flag":"🇻🇺"},{"id":240,"name":"Vatican City","code":"VA","flag":"🇻🇦"},{"id":241,"name":"Venezuela","code":"VE","flag":"🇻🇪"},{"id":242,"name":"Viet Nam","code":"VN","flag":"🇻🇳"},{"id":243,"name":"Virgin Islands","code":"VG","flag":"🇻🇬"},{"id":244,"name":"Virgin Islands","code":"VI","flag":"🇻🇮"},{"id":245,"name":"Wallis and Futuna","code":"WF","flag":"🇼🇫"},{"id":246,"name":"Western Sahara","code":"EH","flag":"🇪🇭"},{"id":247,"name":"Yemen","code":"YE","flag":"🇾🇪"},{"id":248,"name":"Zambia","code":"ZM","flag":"🇿🇲"},{"id":249,"name":"Zimbabwe","code":"ZW","flag":"🇿🇼"},{"id":250,"name":"Åland Islands","code":"AX","flag":"🇦🇽"},{"id":251,"name":"Canary Islands","code":"IC","flag":"🇮🇨"}]` + ), + I = { + seasons: Me, + regionSize: De, + refreshIntervalMs: Be, + colors: je, + errors: Te, + items: Ie, + products: Pe, + countries: Ae, + }, + j = I, + J = I.seasons.length - 1; +I.seasons[J].zoom; +I.seasons[J].tileSize; +const Ge = Y(Se), + O = `cache-${te}`, + Le = new Set([...ne, ...ie]), + D = self, + T = new Map(); +let _ = []; +D.addEventListener("install", (a) => { + async function n() { + await (await caches.open(O)).addAll([...Le, "/offline"]); + } + a.waitUntil(n()); }); -k.addEventListener("activate", e => { - async function n() { - for (const i of await caches.keys()) i !== v && await caches.delete(i) - } - e.waitUntil(n()) +D.addEventListener("activate", (a) => { + async function n() { + for (const i of await caches.keys()) i !== O && (await caches.delete(i)); + } + a.waitUntil(n()); }); -k.addEventListener("fetch", e => { - if (e.request.method !== "GET") return; - async function n() { - const l = new URL(e.request.url); - try { - return await i(l) - } catch (s) { - const m = await (await caches.open(v)).match(e.request); - if (m) return m; - throw s - } - } - async function i(l) { - var m, y; - const s = e.request.url.startsWith(ae) && l.pathname.match(/^.*\/s(\d+).*\/tiles\/(\d+)\/(\d+).png$/); - if (s) { - const t = P.get(e.clientId); - if (t || w.length) { - const _ = parseInt(s[1]), - G = parseInt(s[2]), - L = parseInt(s[3]), - W = Date.now(), - Q = 1.9 * B.refreshIntervalMs; - w = w.filter(o => W - o.time.getTime() < Q); - const $ = w.filter(({ - data: o - }) => G === o.tile[0] && L === o.tile[1] && o.season === _).map(({ - data: o - }) => ({ - ...o - })), - X = ((m = t == null ? void 0 : t.data) == null ? void 0 : m.filter(o => G === o.tile[0] && L === o.tile[1] && o.season === _)) ?? [], - x = $.concat(X); - if (x.length || t) { - await Ae; - let o, A; - const T = je(G, L, _), - f = await ((y = t == null ? void 0 : t.cachedTiles) == null ? void 0 : y.get(T)), - O = f && W - f.time.getTime() < B.refreshIntervalMs; - if (O) o = structuredClone(f.png), A = f.init; - else { - let g = f; - if (t) - if (f === void 0) { - t.cachedTiles.set(T, p()); - const c = await t.cachedTiles.get(T); - c && (g = c) - } else !O && !f.refreshing && (f.refreshing = !0, setTimeout(async () => { - try { - const c = await p(); - t.cachedTiles.set(T, new Promise(h => h(c))); - const d = await k.clients.get(e == null ? void 0 : e.clientId); - d == null || d.postMessage({ - type: "refreshPixelArt" - }) - } catch { - f.refreshing = !1 - } - })); - g || (g = await p()), o = structuredClone(g.png), A = g.init; - async function p() { - try { - const c = await fetch(e == null ? void 0 : e.request); - if (c && c.status !== 404) { - const d = await c.blob(); - return { - png: await Ce(await d.arrayBuffer()), - init: { - headers: c.headers, - status: c.status, - statusText: c.statusText - }, - time: new Date, - refreshing: !1 - } - } else { - console.warn("painting 404 tile"); - const d = B.seasons[_].tileSize; - return { - png: N(d, d), - init: { - headers: { - "Content-Type": "image/png" - }, - status: 200 - }, - time: new Date, - refreshing: !1 - } - } - } catch (c) { - if (console.error("Error while fetching in servicer worker: ", c), f) return f; - { - const d = B.seasons[_].tileSize; - return { - png: N(d, d), - init: { - headers: { - "Content-Type": "image/png" - }, - status: 200 - }, - time: new Date, - refreshing: !1 - } - } - } - } - } - const R = new Map; - for (const g of x) { - const [p, c] = g.pixel, d = p + c * o.width << 2, h = g.color; - R.get(d) || R.set(d, [o.data[d], o.data[d + 1], o.data[d + 2], o.data[d + 3]]), o.data[d] = h.r, o.data[d + 1] = h.g, o.data[d + 2] = h.b, o.data[d + 3] = h.a - } - const ee = await V(o); - for (const [g, p] of R.entries()) o.data[g] = p[0], o.data[g + 1] = p[1], o.data[g + 2] = p[2], o.data[g + 3] = p[3]; - return new Response(ee, A) - } - } - } - const u = await fetch(e == null ? void 0 : e.request); - if (s && u.status === 404) { - const t = await V(N(1, 1)); - return new Response(t, { - headers: { - "Content-Type": "image/png" - }, - status: 200 - }) - } - return u - } - e.respondWith(n()) +D.addEventListener("fetch", (a) => { + if (a.request.method !== "GET") return; + async function n() { + const l = new URL(a.request.url); + try { + return await i(l); + } catch (s) { + const r = await (await caches.open(O)).match(a.request); + if (r) return r; + throw s; + } + } + async function i(l) { + var r, w; + const s = + a.request.url.startsWith(ae) && + l.pathname.match(/^.*\/s(\d+).*\/tiles\/(\d+)\/(\d+).png$/); + if (s) { + const o = T.get(a.clientId); + if (o || _.length) { + const y = parseInt(s[1]), + P = parseInt(s[2]), + A = parseInt(s[3]), + x = Date.now(), + Q = 1.9 * j.refreshIntervalMs; + _ = _.filter((t) => x - t.time.getTime() < Q); + const X = _.filter( + ({ data: t }) => + P === t.tile[0] && A === t.tile[1] && t.season === y + ).map(({ data: t }) => ({ ...t })), + $ = + ((r = o == null ? void 0 : o.data) == null + ? void 0 + : r.filter( + (t) => P === t.tile[0] && A === t.tile[1] && t.season === y + )) ?? [], + v = X.concat($); + if (v.length || o) { + await Ge; + let t, G; + const B = Re(P, A, y), + f = await ((w = o == null ? void 0 : o.cachedTiles) == null + ? void 0 + : w.get(B)), + W = f && x - f.time.getTime() < j.refreshIntervalMs; + if (W) (t = structuredClone(f.png)), (G = f.init); + else { + let g = f; + if (o) + if (f === void 0) { + o.cachedTiles.set(B, p()); + const m = await o.cachedTiles.get(B); + m && (g = m); + } else + !W && + !f.refreshing && + ((f.refreshing = !0), + setTimeout(async () => { + try { + const m = await p(); + o.cachedTiles.set(B, new Promise((h) => h(m))); + const d = await D.clients.get( + a == null ? void 0 : a.clientId + ); + d == null || d.postMessage({ type: "refreshPixelArt" }); + } catch { + f.refreshing = !1; + } + })); + g || (g = await p()), (t = structuredClone(g.png)), (G = g.init); + async function p() { + try { + const m = await fetch(a == null ? void 0 : a.request); + if (m && m.status !== 404) { + const d = await m.blob(); + return { + png: await Ce(await d.arrayBuffer()), + init: { + headers: m.headers, + status: m.status, + statusText: m.statusText, + }, + time: new Date(), + refreshing: !1, + }; + } else { + console.warn("painting 404 tile"); + const d = j.seasons[y].tileSize; + return { + png: N(d, d), + init: { + headers: { "Content-Type": "image/png" }, + status: 200, + }, + time: new Date(), + refreshing: !1, + }; + } + } catch (m) { + if ( + (console.error( + "Error while fetching in servicer worker: ", + m + ), + f) + ) + return f; + { + const d = j.seasons[y].tileSize; + return { + png: N(d, d), + init: { + headers: { "Content-Type": "image/png" }, + status: 200, + }, + time: new Date(), + refreshing: !1, + }; + } + } + } + } + const L = new Map(); + for (const g of v) { + const [p, m] = g.pixel, + d = (p + m * t.width) << 2, + h = g.color; + L.get(d) || + L.set(d, [ + t.data[d], + t.data[d + 1], + t.data[d + 2], + t.data[d + 3], + ]), + (t.data[d] = h.r), + (t.data[d + 1] = h.g), + (t.data[d + 2] = h.b), + (t.data[d + 3] = h.a); + } + const ee = await V(t); + for (const [g, p] of L.entries()) + (t.data[g] = p[0]), + (t.data[g + 1] = p[1]), + (t.data[g + 2] = p[2]), + (t.data[g + 3] = p[3]); + return new Response(ee, G); + } + } + } + const u = await fetch(a == null ? void 0 : a.request); + if (s && u.status === 404) { + const o = await V(N(1, 1)); + return new Response(o, { + headers: { "Content-Type": "image/png" }, + status: 200, + }); + } + return u; + } + a.respondWith(n()); }); -k.addEventListener("message", e => { - var i, l; - const n = e.data; - try { - const s = ((i = e.source) == null ? void 0 : i.id) ?? "none"; - switch (n == null ? void 0 : n.type) { - case "previewPixels": - const u = n.data, - m = P.get(s); - m ? m.data = u : P.set(s, { - data: u, - cachedTiles: new Map - }); - break; - case "clearPixelPreview": - P.delete(s); - break; - case "paintPixels": - w.push(...n.data.map(t => ({ - data: t, - time: new Date - }))); - break; - case "unpaintPixels": - const y = new Set(n.data.map(t => z(t))); - w = w.filter(({ - data: t - }) => !y.has(z(t))); - break - } - } finally { - (l = e.source) == null || l.postMessage({ - id: n.id - }) - } +D.addEventListener("message", (a) => { + var i, l; + const n = a.data; + try { + const s = ((i = a.source) == null ? void 0 : i.id) ?? "none"; + switch (n == null ? void 0 : n.type) { + case "previewPixels": + const u = n.data, + r = T.get(s); + r ? (r.data = u) : T.set(s, { data: u, cachedTiles: new Map() }); + break; + case "clearPixelPreview": + T.delete(s); + break; + case "paintPixels": + _.push(...n.data.map((o) => ({ data: o, time: new Date() }))); + break; + case "unpaintPixels": + const w = new Set(n.data.map((o) => Z(o))); + _ = _.filter(({ data: o }) => !w.has(Z(o))); + break; + } + } finally { + (l = a.source) == null || l.postMessage({ id: n.id }); + } }); - -function je(e, n, i) { - return `t=(${e},${n});s=${i}` +function Re(a, n, i) { + return `t=(${a},${n});s=${i}`; +} +function N(a, n) { + return { + data: new Uint8ClampedArray(a * n * 4), + width: a, + height: n, + colorSpace: "srgb", + }; } - -function N(e, n) { - return { - data: new Uint8ClampedArray(e * n * 4), - width: e, - height: n, - colorSpace: "srgb" - } -} \ No newline at end of file diff --git a/frontend-backup/site.webmanifest b/frontend-backup/site.webmanifest index dad99be..b303156 100644 --- a/frontend-backup/site.webmanifest +++ b/frontend-backup/site.webmanifest @@ -1,7 +1,7 @@ { - "name": "Wplace", - "short_name": "Wplace", - "description": "Wplace is a collaborative, real-time pixel canvas layered over the world map, where anyone can paint and create art together.", + "name": "FurryPlace", + "short_name": "FurryPlace", + "description": "FurryPlace is a free unofficial open source backend for wplace.", "start_url": "/", "theme_color": "#f8f4f0", "background_color": "#ffffff", @@ -50,4 +50,4 @@ "form_factor": "wide" } ] -} \ No newline at end of file +} diff --git a/frontend-src/BUILD.md b/frontend-src/BUILD.md index b5baf3b..2973d6a 100644 --- a/frontend-src/BUILD.md +++ b/frontend-src/BUILD.md @@ -278,7 +278,7 @@ jobs: ## File Structure Reference ``` -openplace/ +FurryPlace/ ├── frontend/ # ← Build output (served by backend) │ ├── _app/ │ ├── index.html diff --git a/frontend-src/CONFIGURATION_SUMMARY.md b/frontend-src/CONFIGURATION_SUMMARY.md index 80268bf..eee81c6 100644 --- a/frontend-src/CONFIGURATION_SUMMARY.md +++ b/frontend-src/CONFIGURATION_SUMMARY.md @@ -109,7 +109,7 @@ app.use((req, res) => { ## File Structure ``` -openplace/ +FurryPlace/ ├── frontend/ # ← Built output (served by backend) │ ├── _app/ │ ├── index.html diff --git a/frontend-src/README.md b/frontend-src/README.md index d08ee9b..d58fed6 100644 --- a/frontend-src/README.md +++ b/frontend-src/README.md @@ -1,6 +1,6 @@ -# Openplace Frontend Source +# FurryPlace Frontend Source -Reconstructed SvelteKit frontend for Openplace, based on analysis of compiled production build. +Reconstructed SvelteKit frontend for FurryPlace, based on analysis of compiled production build. ## Quick Start diff --git a/frontend-src/package-lock.json b/frontend-src/package-lock.json index dfd28de..9bc66de 100644 --- a/frontend-src/package-lock.json +++ b/frontend-src/package-lock.json @@ -1,11 +1,11 @@ { - "name": "openplace-frontend", + "name": "FurryPlace-frontend", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "openplace-frontend", + "name": "FurryPlace-frontend", "version": "0.0.1", "dependencies": { "leaflet": "^1.9.4" diff --git a/frontend-src/package.json b/frontend-src/package.json index 634dbad..88be3a0 100644 --- a/frontend-src/package.json +++ b/frontend-src/package.json @@ -1,5 +1,5 @@ { - "name": "openplace-frontend", + "name": "FurryPlace-frontend", "version": "0.0.1", "private": true, "scripts": { diff --git a/frontend-src/src/app.html b/frontend-src/src/app.html index 4e3ceb9..3d4fafe 100644 --- a/frontend-src/src/app.html +++ b/frontend-src/src/app.html @@ -4,10 +4,10 @@ - openplace - Paint the world + FurryPlace - Paint the world - - + + diff --git a/frontend-src/src/routes/admin/+page.svelte b/frontend-src/src/routes/admin/+page.svelte index 29e8ca9..e1cf114 100644 --- a/frontend-src/src/routes/admin/+page.svelte +++ b/frontend-src/src/routes/admin/+page.svelte @@ -12,7 +12,7 @@ - Admin Dashboard - openplace + Admin Dashboard - FurryPlace
                      diff --git a/frontend-src/src/routes/join/+page.svelte b/frontend-src/src/routes/join/+page.svelte index 8616a50..f20f636 100644 --- a/frontend-src/src/routes/join/+page.svelte +++ b/frontend-src/src/routes/join/+page.svelte @@ -7,7 +7,7 @@ - Login - openplace + Login - FurryPlace
                      diff --git a/frontend-src/src/routes/moderation/+page.svelte b/frontend-src/src/routes/moderation/+page.svelte index 2cb0281..71c701f 100644 --- a/frontend-src/src/routes/moderation/+page.svelte +++ b/frontend-src/src/routes/moderation/+page.svelte @@ -11,7 +11,7 @@ - Moderation - openplace + Moderation - FurryPlace
                      diff --git a/frontend-src/static/_app/info.js b/frontend-src/static/_app/info.js index 0d17423..0fd6ed0 100644 --- a/frontend-src/static/_app/info.js +++ b/frontend-src/static/_app/info.js @@ -40,7 +40,7 @@ window.WPLACE_INFO = { footer: { email: "contact@wplace.live", discord: { url: "https://discord.gg/ZRC4DnP9Z2", text_en: "Feedback and bugs", text_zh: "反馈和错误报告" }, - github: { url: "https://github.com/openplaceteam", text_en: "Github", text_zh: "Github" }, + github: { url: "https://github.com/FurryPlaceteam", text_en: "Github", text_zh: "Github" }, instagram: { url: "https://www.instagram.com/wplace.live/", text_en: "Instagram", text_zh: "Instagram" }, terms: { url: "https://wplace.live/terms/terms-of-service", text_en: "Terms", text_zh: "条款" }, privacy: { url: "https://wplace.live/terms/privacy", text_en: "Privacy", text_zh: "隐私" } diff --git a/frontend/404.html b/frontend/404.html index 17e5659..cce3420 100644 --- a/frontend/404.html +++ b/frontend/404.html @@ -4,10 +4,10 @@ - openplace - Paint the world + FurryPlace - Paint the world - - + + diff --git a/frontend/_app/immutable/chunks/D8zjZoA1.js b/frontend/_app/immutable/chunks/D8zjZoA1.js index 991152a..d86fdbf 100644 --- a/frontend/_app/immutable/chunks/D8zjZoA1.js +++ b/frontend/_app/immutable/chunks/D8zjZoA1.js @@ -1 +1 @@ -import{w as n}from"./DgYqO0BT.js";const e="http://localhost:3000",l="https://maps.wplace.live/styles/liberty",o=!1,u=e,c=o;function s(){if(typeof navigator>"u")return"en";if(navigator.languages&&navigator.languages.length>0){const t=navigator.languages.find(a=>a.length===2);if(t)return t==="pt"?"pt":"en"}return(navigator.language||navigator.userLanguage||navigator.browserLanguage||"en").substring(0,2)==="pt"?"pt":"en"}const p=n(s()),f=n(void 0),g=n(Date.now());typeof window<"u"&&setInterval(()=>{g.set(Date.now())},500);const L=n(!0);export{u as A,c as E,l as M,f as c,p as l,g as n,L as o}; +import{w as n}from"./DgYqO0BT.js";const e="http://localhost:3000",l="/maps/styles/liberty",o=!1,u=e,c=o;function s(){if(typeof navigator>"u")return"en";if(navigator.languages&&navigator.languages.length>0){const t=navigator.languages.find(a=>a.length===2);if(t)return t==="pt"?"pt":"en"}return(navigator.language||navigator.userLanguage||navigator.browserLanguage||"en").substring(0,2)==="pt"?"pt":"en"}const p=n(s()),f=n(void 0),g=n(Date.now());typeof window<"u"&&setInterval(()=>{g.set(Date.now())},500);const L=n(!0);export{u as A,c as E,l as M,f as c,p as l,g as n,L as o}; diff --git a/frontend/_app/immutable/nodes/4.f2OwZgt0.js b/frontend/_app/immutable/nodes/4.f2OwZgt0.js index 1ccfbd3..a89402e 100644 --- a/frontend/_app/immutable/nodes/4.f2OwZgt0.js +++ b/frontend/_app/immutable/nodes/4.f2OwZgt0.js @@ -1 +1 @@ -import{S as c,i as d,s as m,n as i,d as r,b as l,r as b,u as p,h,e as f,w as x,k as u,j as v,l as g,y as _}from"../chunks/DfpL3vsM.js";import"../chunks/IHki7fMi.js";import{c as w}from"../chunks/C4PhwnwB.js";import"../chunks/CmyxTY1z.js";import{g as y}from"../chunks/BPIWuEio.js";function k(n){let t,e,s='

                      Dashboard

                      Admin dashboard content coming soon...

                      ';return{c(){t=u(),e=v("div"),e.innerHTML=s,this.h()},l(a){p("svelte-1l26xoh",document.head).forEach(r),t=h(a),e=f(a,"DIV",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-38hood"&&(e.innerHTML=s),this.h()},h(){document.title="Admin Dashboard - openplace",b(e,"class","bg-base-200 min-h-screen")},m(a,o){l(a,t,o),l(a,e,o)},p:i,i,o:i,d(a){a&&(r(t),r(e))}}}function A(n,t,e){let s;return g(n,w,a=>e(0,s=a)),_(()=>{(!s||s.allianceRole!=="admin")&&y("/")}),[]}class C extends c{constructor(t){super(),d(this,t,A,k,m,{})}}export{C as component}; +import{S as c,i as d,s as m,n as i,d as r,b as l,r as b,u as p,h,e as f,w as x,k as u,j as v,l as g,y as _}from"../chunks/DfpL3vsM.js";import"../chunks/IHki7fMi.js";import{c as w}from"../chunks/C4PhwnwB.js";import"../chunks/CmyxTY1z.js";import{g as y}from"../chunks/BPIWuEio.js";function k(n){let t,e,s='

                      Dashboard

                      Admin dashboard content coming soon...

                      ';return{c(){t=u(),e=v("div"),e.innerHTML=s,this.h()},l(a){p("svelte-1l26xoh",document.head).forEach(r),t=h(a),e=f(a,"DIV",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-38hood"&&(e.innerHTML=s),this.h()},h(){document.title="Admin Dashboard - FurryPlace",b(e,"class","bg-base-200 min-h-screen")},m(a,o){l(a,t,o),l(a,e,o)},p:i,i,o:i,d(a){a&&(r(t),r(e))}}}function A(n,t,e){let s;return g(n,w,a=>e(0,s=a)),_(()=>{(!s||s.allianceRole!=="admin")&&y("/")}),[]}class C extends c{constructor(t){super(),d(this,t,A,k,m,{})}}export{C as component}; diff --git a/frontend/_app/immutable/nodes/5.DDnyeRGE.js b/frontend/_app/immutable/nodes/5.DDnyeRGE.js index 0b8dea7..c730a8b 100644 --- a/frontend/_app/immutable/nodes/5.DDnyeRGE.js +++ b/frontend/_app/immutable/nodes/5.DDnyeRGE.js @@ -1 +1 @@ -import{S as be,i as xe,s as Ae,d as s,m as $e,o as me,p as pe,a as H,r as e,z as C,b as de,c as t,q as ze,e as x,f as c,v as Be,h as w,G as z,g as S,j as A,x as Ie,k as b,H as B,t as T,l as ve,u as Me}from"../chunks/DfpL3vsM.js";import"../chunks/IHki7fMi.js";import{E as Le,A as Ce,c as De}from"../chunks/D8zjZoA1.js";import{t as Pe}from"../chunks/CmyxTY1z.js";import{L as Ue}from"../chunks/DBKVvboF.js";import{p as ye}from"../chunks/DIeP6ySR.js";function He(r){let a,o,f,u,v,h,m,l,p,g,I,P,U,ae,k=r[3]("loginWith",{provider:"Google"})+"",J,le,_,$,y,D,F,O,se,R=r[3]("loginWith",{provider:"Twitch"})+"",K,oe,ne,E,W=r[3]("termsAgreement")+"",Q,ie,L,j=r[3]("termsOfService")+"",X,ce,G=r[3]("and")+"",Y,fe,V,q=r[3]("privacyPolicy")+"",Z,d;f=new Ue({props:{size:"lg",hasText:!0}});let ge=Le;return{c(){a=A("div"),o=A("div"),Ie(f.$$.fragment),u=b(),v=A("form"),h=b(),m=A("div"),l=A("a"),p=B("svg"),g=B("path"),I=B("path"),P=B("path"),U=B("path"),ae=b(),J=T(k),le=b(),_=A("a"),$=B("svg"),y=B("path"),D=B("g"),F=B("path"),O=B("path"),se=b(),K=T(R),oe=b(),ne=b(),E=A("p"),Q=T(W),ie=b(),L=A("a"),X=T(j),ce=b(),Y=T(G),fe=b(),V=A("a"),Z=T(q),this.h()},l(i){a=x(i,"DIV",{class:!0});var n=c(a);o=x(n,"DIV",{class:!0});var _e=c(o);Be(f.$$.fragment,_e),_e.forEach(s),u=w(n),v=x(n,"FORM",{class:!0});var Ve=c(v);Ve.forEach(s),h=w(n),m=x(n,"DIV",{class:!0});var ee=c(m);l=x(ee,"A",{href:!0,class:!0});var te=c(l);p=z(te,"svg",{class:!0,viewBox:!0,xmlns:!0});var N=c(p);g=z(N,"path",{d:!0,fill:!0}),c(g).forEach(s),I=z(N,"path",{d:!0,fill:!0}),c(I).forEach(s),P=z(N,"path",{d:!0,fill:!0}),c(P).forEach(s),U=z(N,"path",{d:!0,fill:!0}),c(U).forEach(s),N.forEach(s),ae=w(te),J=S(te,k),te.forEach(s),le=w(ee),_=x(ee,"A",{href:!0,class:!0});var re=c(_);$=z(re,"svg",{class:!0,xmlns:!0,"xml:space":!0,viewBox:!0});var he=c($);y=z(he,"path",{fill:!0,d:!0}),c(y).forEach(s),D=z(he,"g",{fill:!0});var ue=c(D);F=z(ue,"path",{d:!0}),c(F).forEach(s),O=z(ue,"path",{d:!0}),c(O).forEach(s),ue.forEach(s),he.forEach(s),se=w(re),K=S(re,R),re.forEach(s),ee.forEach(s),oe=w(n),ne=w(n),E=x(n,"P",{class:!0});var M=c(E);Q=S(M,W),ie=w(M),L=x(M,"A",{class:!0,href:!0,target:!0});var Ee=c(L);X=S(Ee,j),Ee.forEach(s),ce=w(M),Y=S(M,G),fe=w(M),V=x(M,"A",{class:!0,href:!0,target:!0});var we=c(V);Z=S(we,q),we.forEach(s),M.forEach(s),n.forEach(s),this.h()},h(){e(o,"class","flex justify-center mb-6"),e(v,"class","w-full"),e(g,"d","M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027"),e(g,"fill","#4285F4"),e(I,"d","M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1"),e(I,"fill","#34A853"),e(P,"d","M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782"),e(P,"fill","#FBBC05"),e(U,"d","M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251"),e(U,"fill","#EB4335"),e(p,"class","mr-1 size-5"),e(p,"viewBox","0 0 256 262"),e(p,"xmlns","http://www.w3.org/2000/svg"),e(l,"href",r[2]),e(l,"class","btn btn-lg bg-base-100 w-full text-base"),C(l,"opacity-50",r[0]),C(l,"pointer-events-none",r[0]),e(y,"fill","#fff"),e(y,"d","m2200 1300-400 400h-400l-350 350v-350H600V200h1600z"),e(F,"d","M500 0 0 500v1800h600v500l500-500h400l900-900V0H500zm1700 1300-400 400h-400l-350 350v-350H600V200h1600v1100z"),e(O,"d","M1700 550h200v600h-200zm-550 0h200v600h-200z"),e(D,"fill","#9146ff"),e($,"class","mr-1 size-5"),e($,"xmlns","http://www.w3.org/2000/svg"),e($,"xml:space","preserve"),e($,"viewBox","0 0 2400 2800"),e(_,"href",r[1]),e(_,"class","btn btn-lg bg-base-100 w-full text-base"),C(_,"opacity-50",r[0]),C(_,"pointer-events-none",r[0]),e(m,"class","mt-6 flex flex-col items-center gap-2 w-full"),e(L,"class","font-medium"),e(L,"href","/terms/terms-of-service"),e(L,"target","_blank"),e(V,"class","font-medium"),e(V,"href","/terms/privacy"),e(V,"target","_blank"),e(E,"class","text-base-content/60 mt-6 text-center text-sm"),e(a,"class","flex flex-col items-center max-w-md mx-auto p-6")},m(i,n){de(i,a,n),t(a,o),ze(f,o,null),t(a,u),t(a,v),t(a,h),t(a,m),t(m,l),t(l,p),t(p,g),t(p,I),t(p,P),t(p,U),t(l,ae),t(l,J),t(m,le),t(m,_),t(_,$),t($,y),t($,D),t(D,F),t(D,O),t(_,se),t(_,K),t(a,oe),t(a,ne),t(a,E),t(E,Q),t(E,ie),t(E,L),t(L,X),t(E,ce),t(E,Y),t(E,fe),t(E,V),t(V,Z),d=!0},p(i,[n]){(!d||n&8)&&k!==(k=i[3]("loginWith",{provider:"Google"})+"")&&H(J,k),(!d||n&4)&&e(l,"href",i[2]),(!d||n&1)&&C(l,"opacity-50",i[0]),(!d||n&1)&&C(l,"pointer-events-none",i[0]),(!d||n&8)&&R!==(R=i[3]("loginWith",{provider:"Twitch"})+"")&&H(K,R),(!d||n&2)&&e(_,"href",i[1]),(!d||n&1)&&C(_,"opacity-50",i[0]),(!d||n&1)&&C(_,"pointer-events-none",i[0]),(!d||n&8)&&W!==(W=i[3]("termsAgreement")+"")&&H(Q,W),(!d||n&8)&&j!==(j=i[3]("termsOfService")+"")&&H(X,j),(!d||n&8)&&G!==(G=i[3]("and")+"")&&H(Y,G),(!d||n&8)&&q!==(q=i[3]("privacyPolicy")+"")&&H(Z,q)},i(i){d||(pe(f.$$.fragment,i),pe(ge),d=!0)},o(i){me(f.$$.fragment,i),me(ge),d=!1},d(i){i&&s(a),$e(f)}}}function Se(r,a,o){let f,u,v,h,m;ve(r,De,g=>o(5,h=g)),ve(r,Pe,g=>o(3,m=g));let{redirect:l=void 0}=a;function p(g){let I=`${Ce}/auth/${g}`;return l&&(I+=`?r=${encodeURIComponent(l)}`),I}return r.$$set=g=>{"redirect"in g&&o(4,l=g.redirect)},r.$$.update=()=>{r.$$.dirty&32&&o(0,v=Le)},o(2,f=p("google")),o(1,u=p("twitch")),[v,u,f,m,l,h]}class Te extends be{constructor(a){super(),xe(this,a,Se,He,Ae,{redirect:4})}}function ke(r){let a,o,f,u,v;return u=new Te({props:{redirect:r[0]}}),{c(){a=b(),o=A("div"),f=A("div"),Ie(u.$$.fragment),this.h()},l(h){Me("svelte-8b4dsz",document.head).forEach(s),a=w(h),o=x(h,"DIV",{class:!0});var l=c(o);f=x(l,"DIV",{class:!0});var p=c(f);Be(u.$$.fragment,p),p.forEach(s),l.forEach(s),this.h()},h(){document.title="Login - openplace",e(f,"class","bg-base-100 rounded-box shadow-xl p-8 max-w-md w-full"),e(o,"class","min-h-screen bg-base-200 flex items-center justify-center p-4")},m(h,m){de(h,a,m),de(h,o,m),t(o,f),ze(u,f,null),v=!0},p(h,[m]){const l={};m&1&&(l.redirect=h[0]),u.$set(l)},i(h){v||(pe(u.$$.fragment,h),v=!0)},o(h){me(u.$$.fragment,h),v=!1},d(h){h&&(s(a),s(o)),$e(u)}}}function Fe(r,a,o){let f,u;return ve(r,ye,v=>o(1,u=v)),r.$$.update=()=>{r.$$.dirty&2&&o(0,f=u.url.searchParams.get("r")||void 0)},[f,u]}class Ne extends be{constructor(a){super(),xe(this,a,Fe,ke,Ae,{})}}export{Ne as component}; +import{S as be,i as xe,s as Ae,d as s,m as $e,o as me,p as pe,a as H,r as e,z as C,b as de,c as t,q as ze,e as x,f as c,v as Be,h as w,G as z,g as S,j as A,x as Ie,k as b,H as B,t as T,l as ve,u as Me}from"../chunks/DfpL3vsM.js";import"../chunks/IHki7fMi.js";import{E as Le,A as Ce,c as De}from"../chunks/D8zjZoA1.js";import{t as Pe}from"../chunks/CmyxTY1z.js";import{L as Ue}from"../chunks/DBKVvboF.js";import{p as ye}from"../chunks/DIeP6ySR.js";function He(r){let a,o,f,u,v,h,m,l,p,g,I,P,U,ae,k=r[3]("loginWith",{provider:"Google"})+"",J,le,_,$,y,D,F,O,se,R=r[3]("loginWith",{provider:"Twitch"})+"",K,oe,ne,E,W=r[3]("termsAgreement")+"",Q,ie,L,j=r[3]("termsOfService")+"",X,ce,G=r[3]("and")+"",Y,fe,V,q=r[3]("privacyPolicy")+"",Z,d;f=new Ue({props:{size:"lg",hasText:!0}});let ge=Le;return{c(){a=A("div"),o=A("div"),Ie(f.$$.fragment),u=b(),v=A("form"),h=b(),m=A("div"),l=A("a"),p=B("svg"),g=B("path"),I=B("path"),P=B("path"),U=B("path"),ae=b(),J=T(k),le=b(),_=A("a"),$=B("svg"),y=B("path"),D=B("g"),F=B("path"),O=B("path"),se=b(),K=T(R),oe=b(),ne=b(),E=A("p"),Q=T(W),ie=b(),L=A("a"),X=T(j),ce=b(),Y=T(G),fe=b(),V=A("a"),Z=T(q),this.h()},l(i){a=x(i,"DIV",{class:!0});var n=c(a);o=x(n,"DIV",{class:!0});var _e=c(o);Be(f.$$.fragment,_e),_e.forEach(s),u=w(n),v=x(n,"FORM",{class:!0});var Ve=c(v);Ve.forEach(s),h=w(n),m=x(n,"DIV",{class:!0});var ee=c(m);l=x(ee,"A",{href:!0,class:!0});var te=c(l);p=z(te,"svg",{class:!0,viewBox:!0,xmlns:!0});var N=c(p);g=z(N,"path",{d:!0,fill:!0}),c(g).forEach(s),I=z(N,"path",{d:!0,fill:!0}),c(I).forEach(s),P=z(N,"path",{d:!0,fill:!0}),c(P).forEach(s),U=z(N,"path",{d:!0,fill:!0}),c(U).forEach(s),N.forEach(s),ae=w(te),J=S(te,k),te.forEach(s),le=w(ee),_=x(ee,"A",{href:!0,class:!0});var re=c(_);$=z(re,"svg",{class:!0,xmlns:!0,"xml:space":!0,viewBox:!0});var he=c($);y=z(he,"path",{fill:!0,d:!0}),c(y).forEach(s),D=z(he,"g",{fill:!0});var ue=c(D);F=z(ue,"path",{d:!0}),c(F).forEach(s),O=z(ue,"path",{d:!0}),c(O).forEach(s),ue.forEach(s),he.forEach(s),se=w(re),K=S(re,R),re.forEach(s),ee.forEach(s),oe=w(n),ne=w(n),E=x(n,"P",{class:!0});var M=c(E);Q=S(M,W),ie=w(M),L=x(M,"A",{class:!0,href:!0,target:!0});var Ee=c(L);X=S(Ee,j),Ee.forEach(s),ce=w(M),Y=S(M,G),fe=w(M),V=x(M,"A",{class:!0,href:!0,target:!0});var we=c(V);Z=S(we,q),we.forEach(s),M.forEach(s),n.forEach(s),this.h()},h(){e(o,"class","flex justify-center mb-6"),e(v,"class","w-full"),e(g,"d","M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027"),e(g,"fill","#4285F4"),e(I,"d","M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1"),e(I,"fill","#34A853"),e(P,"d","M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782"),e(P,"fill","#FBBC05"),e(U,"d","M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251"),e(U,"fill","#EB4335"),e(p,"class","mr-1 size-5"),e(p,"viewBox","0 0 256 262"),e(p,"xmlns","http://www.w3.org/2000/svg"),e(l,"href",r[2]),e(l,"class","btn btn-lg bg-base-100 w-full text-base"),C(l,"opacity-50",r[0]),C(l,"pointer-events-none",r[0]),e(y,"fill","#fff"),e(y,"d","m2200 1300-400 400h-400l-350 350v-350H600V200h1600z"),e(F,"d","M500 0 0 500v1800h600v500l500-500h400l900-900V0H500zm1700 1300-400 400h-400l-350 350v-350H600V200h1600v1100z"),e(O,"d","M1700 550h200v600h-200zm-550 0h200v600h-200z"),e(D,"fill","#9146ff"),e($,"class","mr-1 size-5"),e($,"xmlns","http://www.w3.org/2000/svg"),e($,"xml:space","preserve"),e($,"viewBox","0 0 2400 2800"),e(_,"href",r[1]),e(_,"class","btn btn-lg bg-base-100 w-full text-base"),C(_,"opacity-50",r[0]),C(_,"pointer-events-none",r[0]),e(m,"class","mt-6 flex flex-col items-center gap-2 w-full"),e(L,"class","font-medium"),e(L,"href","/terms/terms-of-service"),e(L,"target","_blank"),e(V,"class","font-medium"),e(V,"href","/terms/privacy"),e(V,"target","_blank"),e(E,"class","text-base-content/60 mt-6 text-center text-sm"),e(a,"class","flex flex-col items-center max-w-md mx-auto p-6")},m(i,n){de(i,a,n),t(a,o),ze(f,o,null),t(a,u),t(a,v),t(a,h),t(a,m),t(m,l),t(l,p),t(p,g),t(p,I),t(p,P),t(p,U),t(l,ae),t(l,J),t(m,le),t(m,_),t(_,$),t($,y),t($,D),t(D,F),t(D,O),t(_,se),t(_,K),t(a,oe),t(a,ne),t(a,E),t(E,Q),t(E,ie),t(E,L),t(L,X),t(E,ce),t(E,Y),t(E,fe),t(E,V),t(V,Z),d=!0},p(i,[n]){(!d||n&8)&&k!==(k=i[3]("loginWith",{provider:"Google"})+"")&&H(J,k),(!d||n&4)&&e(l,"href",i[2]),(!d||n&1)&&C(l,"opacity-50",i[0]),(!d||n&1)&&C(l,"pointer-events-none",i[0]),(!d||n&8)&&R!==(R=i[3]("loginWith",{provider:"Twitch"})+"")&&H(K,R),(!d||n&2)&&e(_,"href",i[1]),(!d||n&1)&&C(_,"opacity-50",i[0]),(!d||n&1)&&C(_,"pointer-events-none",i[0]),(!d||n&8)&&W!==(W=i[3]("termsAgreement")+"")&&H(Q,W),(!d||n&8)&&j!==(j=i[3]("termsOfService")+"")&&H(X,j),(!d||n&8)&&G!==(G=i[3]("and")+"")&&H(Y,G),(!d||n&8)&&q!==(q=i[3]("privacyPolicy")+"")&&H(Z,q)},i(i){d||(pe(f.$$.fragment,i),pe(ge),d=!0)},o(i){me(f.$$.fragment,i),me(ge),d=!1},d(i){i&&s(a),$e(f)}}}function Se(r,a,o){let f,u,v,h,m;ve(r,De,g=>o(5,h=g)),ve(r,Pe,g=>o(3,m=g));let{redirect:l=void 0}=a;function p(g){let I=`${Ce}/auth/${g}`;return l&&(I+=`?r=${encodeURIComponent(l)}`),I}return r.$$set=g=>{"redirect"in g&&o(4,l=g.redirect)},r.$$.update=()=>{r.$$.dirty&32&&o(0,v=Le)},o(2,f=p("google")),o(1,u=p("twitch")),[v,u,f,m,l,h]}class Te extends be{constructor(a){super(),xe(this,a,Se,He,Ae,{redirect:4})}}function ke(r){let a,o,f,u,v;return u=new Te({props:{redirect:r[0]}}),{c(){a=b(),o=A("div"),f=A("div"),Ie(u.$$.fragment),this.h()},l(h){Me("svelte-8b4dsz",document.head).forEach(s),a=w(h),o=x(h,"DIV",{class:!0});var l=c(o);f=x(l,"DIV",{class:!0});var p=c(f);Be(u.$$.fragment,p),p.forEach(s),l.forEach(s),this.h()},h(){document.title="Login - FurryPlace",e(f,"class","bg-base-100 rounded-box shadow-xl p-8 max-w-md w-full"),e(o,"class","min-h-screen bg-base-200 flex items-center justify-center p-4")},m(h,m){de(h,a,m),de(h,o,m),t(o,f),ze(u,f,null),v=!0},p(h,[m]){const l={};m&1&&(l.redirect=h[0]),u.$set(l)},i(h){v||(pe(u.$$.fragment,h),v=!0)},o(h){me(u.$$.fragment,h),v=!1},d(h){h&&(s(a),s(o)),$e(u)}}}function Fe(r,a,o){let f,u;return ve(r,ye,v=>o(1,u=v)),r.$$.update=()=>{r.$$.dirty&2&&o(0,f=u.url.searchParams.get("r")||void 0)},[f,u]}class Ne extends be{constructor(a){super(),xe(this,a,Fe,ke,Ae,{})}}export{Ne as component}; diff --git a/frontend/_app/immutable/nodes/6.B67Jmz5Y.js b/frontend/_app/immutable/nodes/6.B67Jmz5Y.js index 7bbfd87..80a1656 100644 --- a/frontend/_app/immutable/nodes/6.B67Jmz5Y.js +++ b/frontend/_app/immutable/nodes/6.B67Jmz5Y.js @@ -1 +1 @@ -import{S as r,i as p,s as d,n as l,d as c,b as i,r as m,u as f,h,e as u,w as v,k as x,j as b,l as g,y as _}from"../chunks/DfpL3vsM.js";import"../chunks/IHki7fMi.js";import{c as w}from"../chunks/C4PhwnwB.js";import{g as y}from"../chunks/BPIWuEio.js";function k(o){let s,e,a='

                      Reported users

                      Open tickets: 0

                      No open tickets

                      Select a ticket to view details

                      ';return{c(){s=x(),e=b("div"),e.innerHTML=a,this.h()},l(t){f("svelte-h8o4mo",document.head).forEach(c),s=h(t),e=u(t,"DIV",{class:!0,"data-svelte-h":!0}),v(e)!=="svelte-1u2xloy"&&(e.innerHTML=a),this.h()},h(){document.title="Moderation - openplace",m(e,"class","bg-base-200 min-h-screen p-4")},m(t,n){i(t,s,n),i(t,e,n)},p:l,i:l,o:l,d(t){t&&(c(s),c(e))}}}function M(o,s,e){let a;return g(o,w,t=>e(0,a=t)),_(()=>{(!a||a.allianceRole==="member")&&y("/")}),[]}class $ extends r{constructor(s){super(),p(this,s,M,k,d,{})}}export{$ as component}; +import{S as r,i as p,s as d,n as l,d as c,b as i,r as m,u as f,h,e as u,w as v,k as x,j as b,l as g,y as _}from"../chunks/DfpL3vsM.js";import"../chunks/IHki7fMi.js";import{c as w}from"../chunks/C4PhwnwB.js";import{g as y}from"../chunks/BPIWuEio.js";function k(o){let s,e,a='

                      Reported users

                      Open tickets: 0

                      No open tickets

                      Select a ticket to view details

                      ';return{c(){s=x(),e=b("div"),e.innerHTML=a,this.h()},l(t){f("svelte-h8o4mo",document.head).forEach(c),s=h(t),e=u(t,"DIV",{class:!0,"data-svelte-h":!0}),v(e)!=="svelte-1u2xloy"&&(e.innerHTML=a),this.h()},h(){document.title="Moderation - FurryPlace",m(e,"class","bg-base-200 min-h-screen p-4")},m(t,n){i(t,s,n),i(t,e,n)},p:l,i:l,o:l,d(t){t&&(c(s),c(e))}}}function M(o,s,e){let a;return g(o,w,t=>e(0,a=t)),_(()=>{(!a||a.allianceRole==="member")&&y("/")}),[]}class $ extends r{constructor(s){super(),p(this,s,M,k,d,{})}}export{$ as component}; diff --git a/frontend/_app/info.js b/frontend/_app/info.js index 0d17423..0fd6ed0 100644 --- a/frontend/_app/info.js +++ b/frontend/_app/info.js @@ -40,7 +40,7 @@ window.WPLACE_INFO = { footer: { email: "contact@wplace.live", discord: { url: "https://discord.gg/ZRC4DnP9Z2", text_en: "Feedback and bugs", text_zh: "反馈和错误报告" }, - github: { url: "https://github.com/openplaceteam", text_en: "Github", text_zh: "Github" }, + github: { url: "https://github.com/FurryPlaceteam", text_en: "Github", text_zh: "Github" }, instagram: { url: "https://www.instagram.com/wplace.live/", text_en: "Instagram", text_zh: "Instagram" }, terms: { url: "https://wplace.live/terms/terms-of-service", text_en: "Terms", text_zh: "条款" }, privacy: { url: "https://wplace.live/terms/privacy", text_en: "Privacy", text_zh: "隐私" } diff --git a/frontend/admin.html b/frontend/admin.html index e12cd6e..001f5b3 100644 --- a/frontend/admin.html +++ b/frontend/admin.html @@ -4,10 +4,10 @@ - openplace - Paint the world + FurryPlace - Paint the world - - + + diff --git a/frontend/index.html b/frontend/index.html index e12cd6e..001f5b3 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,10 +4,10 @@ - openplace - Paint the world + FurryPlace - Paint the world - - + + diff --git a/frontend/join.html b/frontend/join.html index e12cd6e..001f5b3 100644 --- a/frontend/join.html +++ b/frontend/join.html @@ -4,10 +4,10 @@ - openplace - Paint the world + FurryPlace - Paint the world - - + + diff --git a/frontend/login.html b/frontend/login.html index ddeb24d..c8c3eaf 100644 --- a/frontend/login.html +++ b/frontend/login.html @@ -4,10 +4,10 @@ - openplace - Paint the world + FurryPlace - Paint the world - - + + diff --git a/frontend/moderation.html b/frontend/moderation.html index e12cd6e..001f5b3 100644 --- a/frontend/moderation.html +++ b/frontend/moderation.html @@ -4,10 +4,10 @@ - openplace - Paint the world + FurryPlace - Paint the world - - + + diff --git a/package-lock.json b/package-lock.json index f3820cd..85a7899 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "openplace", + "name": "FurryPlace", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "openplace", + "name": "FurryPlace", "version": "0.0.1", "dependencies": { "@napi-rs/canvas": "^0.1.80", @@ -13,16 +13,18 @@ "@tinyhttp/app": "^3.0.1", "@tinyhttp/cookie-parser": "^2.0.6", "@tinyhttp/cors": "^2.0.1", - "@types/bcryptjs": "^3.0.0", "@types/cookie-parser": "^1.4.9", "@types/jsonwebtoken": "^9.0.10", "@types/multer": "^2.0.0", - "@types/uuid": "^11.0.0", + "@types/passport": "^1.0.17", + "@types/passport-google-oauth20": "^2.0.16", "bcryptjs": "^3.0.2", "dotenv": "^17.2.2", "jsonwebtoken": "^9.0.2", "multer": "^2.0.2", "mysql2": "^3.15.1", + "passport": "^0.7.0", + "passport-google-oauth20": "^2.0.0", "prisma": "^6.16.2", "tsx": "^4.20.6", "uuid": "^13.0.0" @@ -34,8 +36,14 @@ "@types/supertest": "^6.0.3", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", + "csv-parse": "^6.1.0", "eslint": "^8.57.1", "eslint-config-chariz": "^1.6.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-unicorn": "^47.0.0", "husky": "^9.1.7", "lint-staged": "^15.5.2", "supertest": "^7.1.4", @@ -855,9 +863,9 @@ } }, "node_modules/@prisma/client": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.16.2.tgz", - "integrity": "sha512-E00PxBcalMfYO/TWnXobBVUai6eW/g5OsifWQsQDzJYm7yaY+IRLo7ZLsaefi0QkTpxfuhFcQ/w180i6kX3iJw==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.16.3.tgz", + "integrity": "sha512-JfNfAtXG+/lIopsvoZlZiH2k5yNx87mcTS4t9/S5oufM1nKdXYxOvpDC1XoTCFBa5cQh7uXnbMPsmZrwZY80xw==", "hasInstallScript": true, "license": "Apache-2.0", "engines": { @@ -877,9 +885,9 @@ } }, "node_modules/@prisma/config": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.16.2.tgz", - "integrity": "sha512-mKXSUrcqXj0LXWPmJsK2s3p9PN+aoAbyMx7m5E1v1FufofR1ZpPoIArjjzOIm+bJRLLvYftoNYLx1tbHgF9/yg==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.16.3.tgz", + "integrity": "sha512-VlsLnG4oOuKGGMToEeVaRhoTBZu5H3q51jTQXb/diRags3WV0+BQK5MolJTtP6G7COlzoXmWeS11rNBtvg+qFQ==", "license": "Apache-2.0", "dependencies": { "c12": "3.1.0", @@ -889,48 +897,48 @@ } }, "node_modules/@prisma/debug": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.16.2.tgz", - "integrity": "sha512-bo4/gA/HVV6u8YK2uY6glhNsJ7r+k/i5iQ9ny/3q5bt9ijCj7WMPUwfTKPvtEgLP+/r26Z686ly11hhcLiQ8zA==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.16.3.tgz", + "integrity": "sha512-89DdqWtdKd7qoc9/qJCKLTazj3W3zPEiz0hc7HfZdpjzm21c7orOUB5oHWJsG+4KbV4cWU5pefq3CuDVYF9vgA==", "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.16.2.tgz", - "integrity": "sha512-7yf3AjfPUgsg/l7JSu1iEhsmZZ/YE00yURPjTikqm2z4btM0bCl2coFtTGfeSOWbQMmq45Jab+53yGUIAT1sjA==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.16.3.tgz", + "integrity": "sha512-b+Rl4nzQDcoqe6RIpSHv8f5lLnwdDGvXhHjGDiokObguAAv/O1KaX1Oc69mBW/GFWKQpCkOraobLjU6s1h8HGg==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.16.2", - "@prisma/engines-version": "6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43", - "@prisma/fetch-engine": "6.16.2", - "@prisma/get-platform": "6.16.2" + "@prisma/debug": "6.16.3", + "@prisma/engines-version": "6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a", + "@prisma/fetch-engine": "6.16.3", + "@prisma/get-platform": "6.16.3" } }, "node_modules/@prisma/engines-version": { - "version": "6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43.tgz", - "integrity": "sha512-ThvlDaKIVrnrv97ujNFDYiQbeMQpLa0O86HFA2mNoip4mtFqM7U5GSz2ie1i2xByZtvPztJlNRgPsXGeM/kqAA==", + "version": "6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a.tgz", + "integrity": "sha512-fftRmosBex48Ph1v2ll1FrPpirwtPZpNkE5CDCY1Lw2SD2ctyrLlVlHiuxDAAlALwWBOkPbAll4+EaqdGuMhJw==", "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.16.2.tgz", - "integrity": "sha512-wPnZ8DMRqpgzye758ZvfAMiNJRuYpz+rhgEBZi60ZqDIgOU2694oJxiuu3GKFeYeR/hXxso4/2oBC243t/whxQ==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.16.3.tgz", + "integrity": "sha512-bUoRIkVaI+CCaVGrSfcKev0/Mk4ateubqWqGZvQ9uCqFv2ENwWIR3OeNuGin96nZn5+SkebcD7RGgKr/+mJelw==", "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.16.2", - "@prisma/engines-version": "6.16.0-7.1c57fdcd7e44b29b9313256c76699e91c3ac3c43", - "@prisma/get-platform": "6.16.2" + "@prisma/debug": "6.16.3", + "@prisma/engines-version": "6.16.1-1.bb420e667c1820a8c05a38023385f6cc7ef8e83a", + "@prisma/get-platform": "6.16.3" } }, "node_modules/@prisma/get-platform": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.16.2.tgz", - "integrity": "sha512-U/P36Uke5wS7r1+omtAgJpEB94tlT4SdlgaeTc6HVTTT93pXj7zZ+B/cZnmnvjcNPfWddgoDx8RLjmQwqGDYyA==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.16.3.tgz", + "integrity": "sha512-X1LxiFXinJ4iQehrodGp0f66Dv6cDL0GbRlcCoLtSu6f4Wi+hgo7eND/afIs5029GQLgNWKZ46vn8hjyXTsHLA==", "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.16.2" + "@prisma/debug": "6.16.3" } }, "node_modules/@rollup/rollup-android-arm-eabi": { @@ -1505,16 +1513,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/bcryptjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-3.0.0.tgz", - "integrity": "sha512-WRZOuCuaz8UcZZE4R5HXTco2goQSI2XxjGY3hbM/xDvwmqFWd4ivooImsMx65OKM6CtNKbnZ5YL+YwAwK7c1dg==", - "deprecated": "This is a stub types definition. bcryptjs provides its own type definitions, so you do not need this installed.", - "license": "MIT", - "dependencies": { - "bcryptjs": "*" - } - }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -1632,9 +1630,9 @@ } }, "node_modules/@types/node": { - "version": "24.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.6.0.tgz", - "integrity": "sha512-F1CBxgqwOMc4GKJ7eY22hWhBVQuMYTtqI8L0FcszYcpYX0fzfDGpez22Xau8Mgm7O9fI+zA/TYIdq3tGWfweBA==", + "version": "24.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.6.2.tgz", + "integrity": "sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==", "license": "MIT", "dependencies": { "undici-types": "~7.13.0" @@ -1647,6 +1645,46 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/oauth": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.6.tgz", + "integrity": "sha512-H9TRCVKBNOhZZmyHLqFt9drPM9l+ShWiqqJijU1B8P3DX3ub84NjxDuy+Hjrz+fEca5Kwip3qPMKNyiLgNJtIA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/passport": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.17.tgz", + "integrity": "sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/passport-google-oauth20": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@types/passport-google-oauth20/-/passport-google-oauth20-2.0.16.tgz", + "integrity": "sha512-ayXK2CJ7uVieqhYOc6k/pIr5pcQxOLB6kBev+QUGS7oEZeTgIs1odDobXRqgfBPvXzl0wXCQHftV5220czZCPA==", + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/passport": "*", + "@types/passport-oauth2": "*" + } + }, + "node_modules/@types/passport-oauth2": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.8.0.tgz", + "integrity": "sha512-6//z+4orIOy/g3zx17HyQ71GSRK4bs7Sb+zFasRoc2xzlv7ZCJ+vkDBYFci8U6HY+or6Zy7ajf4mz4rK7nsWJQ==", + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/oauth": "*", + "@types/passport": "*" + } + }, "node_modules/@types/qs": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", @@ -1711,16 +1749,6 @@ "@types/superagent": "^8.1.0" } }, - "node_modules/@types/uuid": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-11.0.0.tgz", - "integrity": "sha512-HVyk8nj2m+jcFRNazzqyVKiZezyhDKrGUA3jlEcg/nZ6Ms+qHwocba1Y/AaVaznJTAM9xpdFSh+ptbNrhOGvZA==", - "deprecated": "This is a stub types definition. uuid provides its own type definitions, so you do not need this installed.", - "license": "MIT", - "dependencies": { - "uuid": "*" - } - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", @@ -2341,16 +2369,6 @@ "node": ">= 0.4" } }, - "node_modules/async-generator-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-generator-function/-/async-generator-function-1.0.0.tgz", - "integrity": "sha512-+NAXNqgCrB95ya4Sr66i1CL2hqLVckAk7xwRYWdcm39/ELQ6YNn1aw5r0bdQtqNZgQpEWzc5yc/igXc7aL5SLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2410,6 +2428,15 @@ "dev": true, "license": "MIT" }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/bcryptjs": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz", @@ -2853,6 +2880,13 @@ "node": ">= 8" } }, + "node_modules/csv-parse": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-6.1.0.tgz", + "integrity": "sha512-CEE+jwpgLn+MmtCpVcPtiCZpVtB6Z2OKPTr34pycYYoL7sxdOkXDdQ4lRiw6ioC0q6BLqhc6cKweCVvral8yhw==", + "dev": true, + "license": "MIT" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -3481,6 +3515,16 @@ "typescript": "*" } }, + "node_modules/eslint-config-chariz/node_modules/eslint-plugin-simple-import-sort": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz", + "integrity": "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", @@ -3581,9 +3625,9 @@ } }, "node_modules/eslint-plugin-simple-import-sort": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz", - "integrity": "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", + "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -4067,9 +4111,9 @@ } }, "node_modules/generator-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.0.tgz", - "integrity": "sha512-xPypGGincdfyl/AiSGa7GjXLkvld9V7GjZlowup9SHIJnQnHLFiLODCd/DqKOp0PBagbHJ68r1KJI9Mut7m4sA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", "dev": true, "license": "MIT", "engines": { @@ -4100,20 +4144,17 @@ } }, "node_modules/get-intrinsic": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.1.tgz", - "integrity": "sha512-fk1ZVEeOX9hVZ6QzoBNEC55+Ucqg4sTVwrVuigZhuRPESVFpMyXnd3sbXvPOwp7Y9riVyANiqhEuRF0G1aVSeQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, "license": "MIT", "dependencies": { - "async-function": "^1.0.0", - "async-generator-function": "^1.0.0", "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "generator-function": "^2.0.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", @@ -4749,14 +4790,15 @@ } }, "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" }, @@ -5040,9 +5082,9 @@ } }, "node_modules/jiti": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz", - "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -5951,6 +5993,12 @@ "node": "^14.16.0 || >=16.10.0" } }, + "node_modules/oauth": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.10.2.tgz", + "integrity": "sha512-JtFnB+8nxDEXgNyniwz573xxbKSOu3R8D40xQKqcjwJ2CDkYqUDI53o6IuzDJBx60Z8VKCm271+t8iFjakrl8Q==", + "license": "MIT" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6200,6 +6248,64 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/passport": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.7.0.tgz", + "integrity": "sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==", + "license": "MIT", + "dependencies": { + "passport-strategy": "1.x.x", + "pause": "0.0.1", + "utils-merge": "^1.0.1" + }, + "engines": { + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" + } + }, + "node_modules/passport-google-oauth20": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz", + "integrity": "sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==", + "license": "MIT", + "dependencies": { + "passport-oauth2": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/passport-oauth2": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.8.0.tgz", + "integrity": "sha512-cjsQbOrXIDE4P8nNb3FQRCCmJJ/utnFKEz2NX209f7KOHPoX18gF7gBzBbLLsj2/je4KrgiwLLGjf0lm9rtTBA==", + "license": "MIT", + "dependencies": { + "base64url": "3.x.x", + "oauth": "0.10.x", + "passport-strategy": "1.x.x", + "uid2": "0.0.x", + "utils-merge": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" + } + }, + "node_modules/passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -6263,6 +6369,11 @@ "node": "*" } }, + "node_modules/pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" + }, "node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -6408,14 +6519,14 @@ "license": "MIT" }, "node_modules/prisma": { - "version": "6.16.2", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.16.2.tgz", - "integrity": "sha512-aRvldGE5UUJTtVmFiH3WfNFNiqFlAtePUxcI0UEGlnXCX7DqhiMT5TRYwncHFeA/Reca5W6ToXXyCMTeFPdSXA==", + "version": "6.16.3", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.16.3.tgz", + "integrity": "sha512-4tJq3KB9WRshH5+QmzOLV54YMkNlKOtLKaSdvraI5kC/axF47HuOw6zDM8xrxJ6s9o2WodY654On4XKkrobQdQ==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/config": "6.16.2", - "@prisma/engines": "6.16.2" + "@prisma/config": "6.16.3", + "@prisma/engines": "6.16.3" }, "bin": { "prisma": "build/index.js" @@ -7885,9 +7996,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -7905,6 +8016,12 @@ "dev": true, "license": "MIT" }, + "node_modules/uid2": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz", + "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==", + "license": "MIT" + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", @@ -7946,6 +8063,15 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/uuid": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", diff --git a/package.json b/package.json index ebe215f..a5a5697 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "openplace", + "name": "FurryPlace", "version": "0.0.1", "private": true, "type": "module", @@ -14,7 +14,8 @@ "lint:fix": "pnpm -s lint --fix", "db:push": "prisma db push && prisma generate", "db:generate": "prisma generate", - "db:migrate": "prisma migrate dev" + "db:migrate": "prisma migrate dev", + "import:regions": "tsx scripts/import-regions.ts" }, "devDependencies": { "@tsconfig/node24": "^24.0.1", @@ -23,6 +24,7 @@ "@types/supertest": "^6.0.3", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", + "csv-parse": "^6.1.0", "eslint": "^8.57.1", "eslint-config-chariz": "^1.6.0", "eslint-plugin-jsx-a11y": "^6.10.2", @@ -49,11 +51,15 @@ "@types/cookie-parser": "^1.4.9", "@types/jsonwebtoken": "^9.0.10", "@types/multer": "^2.0.0", + "@types/passport": "^1.0.17", + "@types/passport-google-oauth20": "^2.0.16", "bcryptjs": "^3.0.2", "dotenv": "^17.2.2", "jsonwebtoken": "^9.0.2", "multer": "^2.0.2", "mysql2": "^3.15.1", + "passport": "^0.7.0", + "passport-google-oauth20": "^2.0.0", "prisma": "^6.16.2", "tsx": "^4.20.6", "uuid": "^13.0.0" diff --git a/prisma/schema.prisma b/prisma/schema.prisma index cb273bc..358c031 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -13,7 +13,8 @@ model User { discord String? country String email String? @unique - passwordHash String + passwordHash String? + googleId String? @unique banned Boolean @default(false) timeoutUntil DateTime @default(now()) needsPhoneVerification Boolean @default(false) diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..a71b8b3 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,175 @@ +# Region Data Scraping Guide + +This guide explains how to scrape region data from wplace.live and import it into your database. + +## Prerequisites + +- Python 3.7+ with `cloudscraper` library +- Node.js with `tsx` and `csv-parse` packages + +Install dependencies: +```bash +# Python - required to bypass Cloudflare and use SOCKS5 proxies +pip install cloudscraper pysocks + +# Node.js (already installed via npm) +npm install -D csv-parse tsx +``` + +## Steps + +### 1. Scrape Region Data + +Run the Python scraper to fetch region data from wplace.live: + +```bash +python scripts/scrape_regions.py +``` + +This will create two CSV files: +- `regions.csv` - Unique regions (id, name, cityId, countryId, etc.) +- `tile_region_mapping.csv` - Tile-to-region mappings + +**How it works:** +- Since regions are determined by tile coordinates (not individual pixels), the script samples ONE pixel per tile +- This is much faster than the old approach - only ~4 million requests instead of 42 million! +- Default: Samples all tiles (TILE_SAMPLE_STEP=1) + +**Configuration options** in `scrape_regions.py`: +- `TILE_SAMPLE_STEP` - Sample every Nth tile (1 = all tiles, 2 = every other tile, etc.) +- `TILE_X_MIN/MAX`, `TILE_Y_MIN/MAX` - Canvas bounds to scrape (default: 0-2047) + +⏱️ **Estimated time**: With default settings and 0.05s delay between requests, this will take approximately: +- ~4.2 million tiles × 0.05s = ~58 hours +- For faster testing: Set `TILE_SAMPLE_STEP = 10` (~6 hours) or `TILE_SAMPLE_STEP = 100` (~35 minutes) + +### 2. Import into Database + +Once you have the CSV files, import them: + +```bash +npm run import:regions +``` + +This will: +- Import all unique regions into the `Region` table +- Analyze tile coverage for each region +- Display which regions have the most tiles + +### 3. Create TileRegion Lookup Table + +Add this to your `prisma/schema.prisma`: + +```prisma +model TileRegion { + tileX Int + tileY Int + regionId Int + region Region @relation(fields: [regionId], references: [id]) + + @@unique([tileX, tileY]) + @@index([tileX, tileY]) +} +``` + +Then run: +```bash +npm run db:push +``` + +### 4. Import Tile Mappings + +Create a new script `scripts/import-tile-mappings.ts`: + +```typescript +#!/usr/bin/env tsx +import { PrismaClient } from "@prisma/client"; +import { readFileSync } from "fs"; +import { parse } from "csv-parse/sync"; + +const prisma = new PrismaClient(); + +interface TileRow { + tile_x: string; + tile_y: string; + region_id: string; + city_id: string; + region_name: string; + region_number: string; + country_id: string; + flag_id: string; +} + +async function main() { + const csvContent = readFileSync("tile_region_mapping.csv", "utf-8"); + const records = parse(csvContent, { + columns: true, + skip_empty_lines: true + }) as TileRow[]; + + console.log(`Importing ${records.length} tile mappings...`); + + // Batch insert for performance + const batchSize = 1000; + for (let i = 0; i < records.length; i += batchSize) { + const batch = records.slice(i, i + batchSize); + await prisma.tileRegion.createMany({ + data: batch.map(r => ({ + tileX: Number.parseInt(r.tile_x), + tileY: Number.parseInt(r.tile_y), + regionId: Number.parseInt(r.region_id) + })), + skipDuplicates: true + }); + console.log(`Imported ${Math.min(i + batchSize, records.length)} / ${records.length}`); + } + + console.log("✓ Import complete!"); + await prisma.$disconnect(); +} + +main(); +``` + +Run it: `tsx scripts/import-tile-mappings.ts` + +### 5. Update Region Lookup Function + +Update `src/config/regions.ts`: + +```typescript +import { prisma } from "./database.js"; + +export async function getRegionForCoordinates( + tileX: number, + tileY: number, + _x: number, + _y: number +): Promise { + const tileRegion = await prisma.tileRegion.findUnique({ + where: { tileX_tileY: { tileX, tileY } }, + include: { region: true } + }); + + if (!tileRegion) { + return null; + } + + return { + id: tileRegion.region.id, + cityId: tileRegion.region.cityId, + name: tileRegion.region.name, + number: tileRegion.region.number, + countryId: tileRegion.region.countryId, + flagId: tileRegion.countryId // Note: You might need to add flagId to Region model + }; +} +``` + +## Notes + +- The scraper includes a 0.05s delay between requests to be respectful to wplace.live's servers +- Each tile maps to exactly one region, making lookup very simple +- The TileRegion table will have ~4 million rows (one per tile on the canvas) +- Database lookups are fast thanks to the unique index on (tileX, tileY) +- The CSV files are plain text and can be inspected/edited before importing diff --git a/scripts/import-regions.ts b/scripts/import-regions.ts new file mode 100644 index 0000000..d93d1b9 --- /dev/null +++ b/scripts/import-regions.ts @@ -0,0 +1,172 @@ +#!/usr/bin/env tsx +/** + * Import region data from CSV files into the database. + * Run after generating CSVs with scrape_regions.py + * + * Usage: npm run import:regions + */ + +import { PrismaClient } from "@prisma/client"; +import { readFileSync } from "fs"; +import { parse } from "csv-parse/sync"; + +const prisma = new PrismaClient(); + +interface RegionRow { + id: string; + city_id: string; + name: string; + number: string; + country_id: string; + flag_id: string; +} + +interface TileRow { + tile_x: string; + tile_y: string; + region_id: string; + city_id: string; + region_name: string; + region_number: string; + country_id: string; + flag_id: string; +} + +async function importRegions() { + console.log("Importing regions from regions.csv..."); + + const csvContent = readFileSync("regions.csv", "utf-8"); + const records = parse(csvContent, { + columns: true, + skip_empty_lines: true + }) as RegionRow[]; + + console.log(`Found ${records.length} unique regions`); + + let imported = 0; + let skipped = 0; + + for (const record of records) { + try { + await prisma.region.upsert({ + where: { cityId: Number.parseInt(record.city_id) }, + create: { + id: Number.parseInt(record.id), + cityId: Number.parseInt(record.city_id), + name: record.name, + number: Number.parseInt(record.number), + countryId: Number.parseInt(record.country_id) + }, + update: { + name: record.name, + number: Number.parseInt(record.number), + countryId: Number.parseInt(record.country_id) + } + }); + imported++; + } catch (error) { + console.error(`Error importing region ${record.name}:`, error); + skipped++; + } + } + + console.log(`✓ Imported ${imported} regions (${skipped} skipped)`); +} + +async function analyzeTileMappings() { + console.log("\nAnalyzing tile mappings from tile_region_mapping.csv..."); + + const csvContent = readFileSync("tile_region_mapping.csv", "utf-8"); + const records = parse(csvContent, { + columns: true, + skip_empty_lines: true + }) as TileRow[]; + + console.log(`Found ${records.length} tile mappings`); + + // Build a map of region tile counts + const regionTileCounts = new Map(); + + for (const record of records) { + const regionId = Number.parseInt(record.region_id); + const tileX = Number.parseInt(record.tile_x); + const tileY = Number.parseInt(record.tile_y); + + const existing = regionTileCounts.get(regionId); + if (!existing) { + regionTileCounts.set(regionId, { + name: record.region_name, + tiles: 1, + minTileX: tileX, + maxTileX: tileX, + minTileY: tileY, + maxTileY: tileY + }); + } else { + existing.tiles++; + existing.minTileX = Math.min(existing.minTileX, tileX); + existing.maxTileX = Math.max(existing.maxTileX, tileX); + existing.minTileY = Math.min(existing.minTileY, tileY); + existing.maxTileY = Math.max(existing.maxTileY, tileY); + } + } + + console.log("\nRegion coverage analysis:"); + console.log("Region ID | Region Name | Tiles | Tile X Range | Tile Y Range"); + console.log("-".repeat(90)); + + // Sort by tile count descending + const sorted = [...regionTileCounts.entries()].sort((a, b) => b[1].tiles - a[1].tiles); + + for (const [regionId, coverage] of sorted.slice(0, 20)) { + const name = coverage.name.padEnd(24).substring(0, 24); + const xRange = `${coverage.minTileX}-${coverage.maxTileX}`.padStart(15); + const yRange = `${coverage.minTileY}-${coverage.maxTileY}`; + console.log(`${regionId.toString().padStart(9)} | ${name} | ${coverage.tiles.toString().padStart(5)} | ${xRange} | ${yRange}`); + } + + if (sorted.length > 20) { + console.log(`... and ${sorted.length - 20} more regions`); + } + + console.log("\n📊 This shows which tiles belong to which regions."); + console.log("💡 You can use this data to implement getRegionForCoordinates()."); +} + +async function main() { + try { + await importRegions(); + await analyzeTileMappings(); + + console.log("\n✅ Import complete!"); + console.log("\nNext steps:"); + console.log("1. Create a TileRegion lookup table in your database"); + console.log("2. Import the tile_region_mapping.csv data"); + console.log("3. Update getRegionForCoordinates() to query TileRegion table"); + console.log("\nExample Prisma schema addition:"); + console.log(` +model TileRegion { + tileX Int + tileY Int + regionId Int + region Region @relation(fields: [regionId], references: [id]) + + @@unique([tileX, tileY]) +} +`); + } catch (error) { + console.error("Error during import:", error); + process.exit(1); + } finally { + await prisma.$disconnect(); + } +} + +main(); diff --git a/scripts/regions.csv b/scripts/regions.csv new file mode 100644 index 0000000..d3c4d36 --- /dev/null +++ b/scripts/regions.csv @@ -0,0 +1,1025 @@ +id,city_id,name,number,country_id,flag_id +0,6919,Anchorage,1,235, +512,6919,Anchorage,56,235, +1024,6919,Anchorage,111,235, +1536,6919,Anchorage,166,235, +2048,6919,Anchorage,221,235, +2560,6919,Anchorage,276,235, +3072,6919,Anchorage,331,235, +3584,6919,Anchorage,386,235, +4096,6919,Anchorage,441,235, +4608,6919,Anchorage,496,235, +5120,6919,Anchorage,551,235, +5632,6919,Anchorage,606,235, +6144,6919,Anchorage,661,235, +6656,6919,Anchorage,716,235, +7168,6919,Anchorage,771,235, +7680,6919,Anchorage,826,235, +8192,6919,Anchorage,881,235, +8704,6919,Anchorage,936,235, +9216,6919,Anchorage,991,235, +9728,6919,Anchorage,1046,235, +10240,6919,Anchorage,1101,235, +10752,6919,Anchorage,1156,235, +11264,6919,Anchorage,1211,235, +11776,6919,Anchorage,1266,235, +12288,6919,Anchorage,1321,235, +12800,6919,Anchorage,1376,235, +13312,6919,Anchorage,1431,235, +13824,6919,Anchorage,1486,235, +14336,6919,Anchorage,1541,235, +14848,6919,Anchorage,1596,235, +15360,6919,Anchorage,1651,235, +15872,6919,Anchorage,1706,235, +16384,6919,Anchorage,1761,235, +16896,6919,Anchorage,1816,235, +17408,6919,Anchorage,1871,235, +17920,6919,Anchorage,1926,235, +18432,6919,Anchorage,1981,235, +18944,6919,Anchorage,2036,235, +19456,6919,Anchorage,2091,235, +19968,6919,Anchorage,2146,235, +20480,6919,Anchorage,2201,235, +20992,6919,Anchorage,2256,235, +21504,6919,Anchorage,2311,235, +22016,6919,Anchorage,2366,235, +22528,6919,Anchorage,2421,235, +23040,6919,Anchorage,2476,235, +23552,6919,Anchorage,2531,235, +24064,6919,Anchorage,2586,235, +24576,6919,Anchorage,2641,235, +25088,6919,Anchorage,2696,235, +25600,6919,Anchorage,2751,235, +26112,6919,Anchorage,2806,235, +26624,6919,Anchorage,2861,235, +27136,6919,Anchorage,2916,235, +27648,6919,Anchorage,2971,235, +28160,6919,Anchorage,3026,235, +28672,6919,Anchorage,3081,235, +29184,6919,Anchorage,3136,235, +29696,6919,Anchorage,3191,235, +30208,6919,Anchorage,3246,235, +30720,6919,Anchorage,3301,235, +31232,6919,Anchorage,3356,235, +31744,6919,Anchorage,3411,235, +32256,6919,Anchorage,3466,235, +32768,6919,Anchorage,3521,235, +33280,6919,Anchorage,3576,235, +33792,6919,Anchorage,3631,235, +34304,6919,Anchorage,3686,235, +34816,6919,Anchorage,3741,235, +35328,6919,Anchorage,3796,235, +35840,6919,Anchorage,3851,235, +36352,6919,Anchorage,3906,235, +36864,6919,Anchorage,3961,235, +37376,6919,Anchorage,4016,235, +37888,6919,Anchorage,4071,235, +38400,6919,Anchorage,4126,235, +38912,6919,Anchorage,4181,235, +39424,6919,Anchorage,4236,235, +39936,6919,Anchorage,4291,235, +40448,6919,Anchorage,4346,235, +40960,6919,Anchorage,4401,235, +41472,6919,Anchorage,4456,235, +41984,6919,Anchorage,4510,235, +42496,6919,Anchorage,4564,235, +43008,6919,Anchorage,4618,235, +43520,6919,Anchorage,4672,235, +44032,6919,Anchorage,4726,235, +44544,6919,Anchorage,4780,235, +45056,6919,Anchorage,4834,235, +45568,6919,Anchorage,4888,235, +46080,6919,Anchorage,4942,235, +46592,6919,Anchorage,4996,235, +47104,6919,Anchorage,5050,235, +47616,6919,Anchorage,5104,235, +48128,6919,Anchorage,5158,235, +48640,6919,Anchorage,5212,235, +49152,6919,Anchorage,5266,235, +49664,6919,Anchorage,5320,235, +50176,6919,Anchorage,5374,235, +50688,6919,Anchorage,5428,235, +51200,6919,Anchorage,5482,235, +51712,6919,Anchorage,5536,235, +52224,6919,Anchorage,5590,235, +52736,6919,Anchorage,5644,235, +53248,6919,Anchorage,5698,235, +53760,6919,Anchorage,5752,235, +54272,6919,Anchorage,5806,235, +54784,6919,Anchorage,5860,235, +55296,6919,Anchorage,5914,235, +55808,6919,Anchorage,5968,235, +56320,6919,Anchorage,6022,235, +56832,6919,Anchorage,6076,235, +57344,6919,Anchorage,6130,235, +57856,6919,Anchorage,6184,235, +58368,6919,Anchorage,6238,235, +58880,6919,Anchorage,6292,235, +59392,6919,Anchorage,6346,235, +59904,6919,Anchorage,6400,235, +60416,6919,Anchorage,6454,235, +60928,6919,Anchorage,6508,235, +61440,6919,Anchorage,6562,235, +61952,6919,Anchorage,6616,235, +62464,6919,Anchorage,6670,235, +62976,6919,Anchorage,6724,235, +63488,6919,Anchorage,6778,235, +64000,6919,Anchorage,6832,235, +64512,6919,Anchorage,6886,235, +65024,6919,Anchorage,6940,235, +65536,6919,Anchorage,6994,235, +66048,6919,Anchorage,7048,235, +66560,6919,Anchorage,7102,235, +67072,6919,Anchorage,7156,235, +67584,6919,Anchorage,7210,235, +68096,6919,Anchorage,7264,235, +68608,6919,Anchorage,7318,235, +69120,6919,Anchorage,7372,235, +69632,6919,Anchorage,7426,235, +70144,6919,Anchorage,7480,235, +70656,6919,Anchorage,7534,235, +71168,6919,Anchorage,7588,235, +71680,6919,Anchorage,7642,235, +72192,6919,Anchorage,7696,235, +72704,6919,Anchorage,7750,235, +73216,6919,Anchorage,7804,235, +73728,6919,Anchorage,7858,235, +74240,6919,Anchorage,7912,235, +74752,6919,Anchorage,7966,235, +75264,6919,Anchorage,8020,235, +75776,6919,Anchorage,8074,235, +76288,6919,Anchorage,8128,235, +76800,6919,Anchorage,8182,235, +77312,6919,Anchorage,8236,235, +77824,6919,Anchorage,8290,235, +78336,6919,Anchorage,8344,235, +78848,6919,Anchorage,8398,235, +79360,6919,Anchorage,8452,235, +79872,6919,Anchorage,8506,235, +80384,6919,Anchorage,8560,235, +80896,6919,Anchorage,8613,235, +81408,6919,Anchorage,8666,235, +81920,6919,Anchorage,8719,235, +82432,6919,Anchorage,8772,235, +82944,6919,Anchorage,8825,235, +83456,6919,Anchorage,8878,235, +83968,6919,Anchorage,8931,235, +84480,6919,Anchorage,8984,235, +84992,6919,Anchorage,9037,235, +85504,6919,Anchorage,9089,235, +86016,6919,Anchorage,9141,235, +86528,6919,Anchorage,9193,235, +87040,6919,Anchorage,9245,235, +87552,6919,Anchorage,9297,235, +88064,6919,Anchorage,9349,235, +88576,6919,Anchorage,9401,235, +89088,6919,Anchorage,9453,235, +89600,6919,Anchorage,9505,235, +90112,6919,Anchorage,9556,235, +90624,6919,Anchorage,9607,235, +91136,6919,Anchorage,9658,235, +91648,6919,Anchorage,9709,235, +92160,6919,Anchorage,9760,235, +92672,3471,Honolulu,1,235, +93184,3471,Honolulu,4,235, +93696,3471,Honolulu,11,235, +94208,3471,Honolulu,21,235, +94720,3471,Honolulu,35,235, +95232,3471,Honolulu,53,235, +95744,3471,Honolulu,74,235, +96256,3471,Honolulu,99,235, +96768,3471,Honolulu,128,235, +97280,3471,Honolulu,160,235, +97792,3471,Honolulu,196,235, +98304,3471,Honolulu,236,235, +98816,3471,Honolulu,280,235, +99328,3471,Honolulu,327,235, +99840,3471,Honolulu,377,235, +100352,3471,Honolulu,428,235, +100864,3471,Honolulu,479,235, +101376,3471,Honolulu,530,235, +101888,3471,Honolulu,582,235, +102400,3471,Honolulu,634,235, +102912,3471,Honolulu,687,235, +103424,3471,Honolulu,740,235, +103936,3471,Honolulu,793,235, +104448,3471,Honolulu,847,235, +104960,3471,Honolulu,901,235, +105472,3471,Honolulu,956,235, +105984,3471,Honolulu,1011,235, +106496,3471,Honolulu,1066,235, +107008,3471,Honolulu,1122,235, +107520,3471,Honolulu,1178,235, +108032,3471,Honolulu,1235,235, +108544,3471,Honolulu,1292,235, +109056,3471,Honolulu,1349,235, +109568,3471,Honolulu,1407,235, +110080,3471,Honolulu,1465,235, +110592,3471,Honolulu,1524,235, +111104,3471,Honolulu,1583,235, +111616,3471,Honolulu,1643,235, +112128,3471,Honolulu,1703,235, +112640,3471,Honolulu,1763,235, +113152,3471,Honolulu,1824,235, +113664,3471,Honolulu,1885,235, +114176,3471,Honolulu,1946,235, +114688,3471,Honolulu,2008,235, +115200,3471,Honolulu,2070,235, +115712,3471,Honolulu,2132,235, +116224,3471,Honolulu,2195,235, +116736,3471,Honolulu,2258,235, +117248,3471,Honolulu,2321,235, +117760,3471,Honolulu,2385,235, +118272,3471,Honolulu,2449,235, +118784,3471,Honolulu,2513,235, +119296,3471,Honolulu,2578,235, +119808,3471,Honolulu,2643,235, +120320,3471,Honolulu,2708,235, +120832,3471,Honolulu,2773,235, +121344,3208,Atafu Village,1,223, +121856,3208,Atafu Village,2,223, +122368,3208,Atafu Village,5,223, +122880,3208,Atafu Village,10,223, +123392,3208,Atafu Village,17,223, +123904,3208,Atafu Village,26,223, +124416,3208,Atafu Village,37,223, +124928,3208,Atafu Village,50,223, +125440,3208,Atafu Village,65,223, +125952,3208,Atafu Village,82,223, +126464,3208,Atafu Village,101,223, +126976,3208,Atafu Village,122,223, +127488,3208,Atafu Village,145,223, +128000,3208,Atafu Village,170,223, +128512,3208,Atafu Village,194,223, +129024,3208,Atafu Village,218,223, +129536,3208,Atafu Village,241,223, +130048,3208,Atafu Village,263,223, +130560,3208,Atafu Village,285,223, +131072,3208,Atafu Village,306,223, +131584,3208,Atafu Village,326,223, +132096,3208,Atafu Village,346,223, +132608,3208,Atafu Village,365,223, +133120,3208,Atafu Village,383,223, +133632,3208,Atafu Village,401,223, +134144,3208,Atafu Village,418,223, +134656,3208,Atafu Village,434,223, +135168,3208,Atafu Village,450,223, +135680,3610,Mata-Utu,1,245, +136192,3610,Mata-Utu,2,245, +136704,3610,Mata-Utu,5,245, +137216,3610,Mata-Utu,9,245, +137728,3610,Mata-Utu,14,245, +138240,3609,Leava,1,245, +138752,3609,Leava,2,245, +139264,3609,Leava,3,245, +139776,3609,Leava,5,245, +140288,3609,Leava,7,245, +140800,3609,Leava,10,245, +141312,3609,Leava,13,245, +141824,3609,Leava,16,245, +142336,3609,Leava,19,245, +142848,3609,Leava,21,245, +143360,3609,Leava,23,245, +143872,3609,Leava,25,245, +144384,3609,Leava,26,245, +144896,3253,Nuku‘alofa,4,224, +145408,3253,Nuku‘alofa,9,224, +145920,3253,Nuku‘alofa,16,224, +146432,3253,Nuku‘alofa,24,224, +146944,3253,Nuku‘alofa,32,224, +147456,3253,Nuku‘alofa,39,224, +147968,3253,Nuku‘alofa,45,224, +148480,3253,Nuku‘alofa,51,224, +148992,3253,Nuku‘alofa,56,224, +149504,3253,Nuku‘alofa,60,224, +150016,3253,Nuku‘alofa,63,224, +150528,3253,Nuku‘alofa,66,224, +151040,3253,Nuku‘alofa,68,224, +151552,3252,‘Ohonua,88,224, +152064,3252,‘Ohonua,104,224, +152576,3252,‘Ohonua,120,224, +153088,3252,‘Ohonua,137,224, +153600,3252,‘Ohonua,154,224, +154112,3252,‘Ohonua,172,224, +154624,3252,‘Ohonua,190,224, +155136,3252,‘Ohonua,208,224, +155648,3252,‘Ohonua,226,224, +156160,2317,Waitangi,1,155, +156672,2317,Waitangi,6,155, +157184,2317,Waitangi,23,155, +157696,2317,Waitangi,42,155, +158208,2317,Waitangi,62,155, +158720,2317,Waitangi,83,155, +159232,2317,Waitangi,105,155, +159744,2317,Waitangi,128,155, +160256,2317,Waitangi,152,155, +160768,2317,Waitangi,177,155, +161280,2317,Waitangi,203,155, +161792,2317,Waitangi,230,155, +162304,2317,Waitangi,258,155, +162816,2317,Waitangi,287,155, +163328,2317,Waitangi,318,155, +163840,2317,Waitangi,350,155, +164352,2317,Waitangi,383,155, +164864,2317,Waitangi,417,155, +165376,2317,Waitangi,452,155, +165888,2317,Waitangi,488,155, +166400,2317,Waitangi,525,155, +166912,2317,Waitangi,563,155, +167424,2317,Waitangi,602,155, +167936,2317,Waitangi,642,155, +168448,2317,Waitangi,682,155, +168960,2317,Waitangi,723,155, +169472,2317,Waitangi,765,155, +169984,2317,Waitangi,808,155, +170496,2317,Waitangi,852,155, +171008,2317,Waitangi,898,155, +171520,2317,Waitangi,944,155, +172032,2317,Waitangi,991,155, +172544,2317,Waitangi,1038,155, +173056,2317,Waitangi,1085,155, +173568,2317,Waitangi,1132,155, +174080,2317,Waitangi,1180,155, +174592,2317,Waitangi,1228,155, +175104,2317,Waitangi,1276,155, +175616,2317,Waitangi,1324,155, +176128,2317,Waitangi,1373,155, +176640,2317,Waitangi,1422,155, +177152,2317,Waitangi,1471,155, +177664,2317,Waitangi,1520,155, +178176,2317,Waitangi,1570,155, +178688,2317,Waitangi,1620,155, +179200,2317,Waitangi,1670,155, +179712,2317,Waitangi,1720,155, +180224,2317,Waitangi,1771,155, +180736,2317,Waitangi,1822,155, +181248,2317,Waitangi,1873,155, +181760,2317,Waitangi,1924,155, +182272,2317,Waitangi,1976,155, +182784,2317,Waitangi,2028,155, +183296,2317,Waitangi,2080,155, +183808,2317,Waitangi,2132,155, +184320,2317,Waitangi,2184,155, +184832,2317,Waitangi,2237,155, +185344,2317,Waitangi,2290,155, +185856,2317,Waitangi,2343,155, +186368,2317,Waitangi,2396,155, +186880,2317,Waitangi,2449,155, +187392,2317,Waitangi,2503,155, +187904,2317,Waitangi,2557,155, +188416,2317,Waitangi,2611,155, +188928,2317,Waitangi,2665,155, +189440,2317,Waitangi,2719,155, +189952,2317,Waitangi,2774,155, +190464,2317,Waitangi,2829,155, +190976,2317,Waitangi,2884,155, +191488,2317,Waitangi,2939,155, +192000,2317,Waitangi,2994,155, +192512,2317,Waitangi,3049,155, +193024,2317,Waitangi,3105,155, +193536,2317,Waitangi,3161,155, +194048,2317,Waitangi,3217,155, +194560,2317,Waitangi,3273,155, +195072,2317,Waitangi,3329,155, +195584,2317,Waitangi,3385,155, +196096,2317,Waitangi,3442,155, +196608,2317,Waitangi,3499,155, +197120,2317,Waitangi,3556,155, +197632,2317,Waitangi,3613,155, +198144,2317,Waitangi,3670,155, +198656,2317,Waitangi,3727,155, +199168,2317,Waitangi,3785,155, +199680,2317,Waitangi,3843,155, +200192,2317,Waitangi,3901,155, +200704,2317,Waitangi,3959,155, +201216,2317,Waitangi,4017,155, +201728,2317,Waitangi,4075,155, +202240,2317,Waitangi,4133,155, +202752,2317,Waitangi,4192,155, +203264,2317,Waitangi,4251,155, +203776,2317,Waitangi,4310,155, +204288,2317,Waitangi,4369,155, +204800,2317,Waitangi,4428,155, +205312,2317,Waitangi,4487,155, +205824,2317,Waitangi,4546,155, +206336,2317,Waitangi,4606,155, +206848,2317,Waitangi,4666,155, +207360,2317,Waitangi,4726,155, +207872,2317,Waitangi,4786,155, +208384,2317,Waitangi,4846,155, +208896,2317,Waitangi,4906,155, +209408,2317,Waitangi,4966,155, +209920,2317,Waitangi,5026,155, +210432,2317,Waitangi,5087,155, +210944,2317,Waitangi,5148,155, +211456,2317,Waitangi,5209,155, +211968,2317,Waitangi,5270,155, +212480,2317,Waitangi,5331,155, +212992,2317,Waitangi,5392,155, +213504,2317,Waitangi,5453,155, +214016,2317,Waitangi,5514,155, +214528,2317,Waitangi,5575,155, +215040,2317,Waitangi,5637,155, +215552,2317,Waitangi,5699,155, +216064,2317,Waitangi,5761,155, +216576,2317,Waitangi,5823,155, +217088,2317,Waitangi,5885,155, +217600,2317,Waitangi,5947,155, +218112,2317,Waitangi,6009,155, +218624,2317,Waitangi,6071,155, +219136,2317,Waitangi,6133,155, +219648,2317,Waitangi,6196,155, +220160,2317,Waitangi,6259,155, +220672,2317,Waitangi,6322,155, +221184,2317,Waitangi,6385,155, +221696,2317,Waitangi,6448,155, +222208,2317,Waitangi,6511,155, +222720,2317,Waitangi,6574,155, +223232,2317,Waitangi,6637,155, +223744,2317,Waitangi,6700,155, +224256,2317,Waitangi,6763,155, +224768,2317,Waitangi,6826,155, +225280,2317,Waitangi,6889,155, +225792,2317,Waitangi,6953,155, +226304,2317,Waitangi,7017,155, +226816,2317,Waitangi,7081,155, +227328,2317,Waitangi,7145,155, +227840,2317,Waitangi,7209,155, +228352,2317,Waitangi,7273,155, +228864,2317,Waitangi,7337,155, +229376,2317,Waitangi,7401,155, +229888,2317,Waitangi,7465,155, +230400,2317,Waitangi,7529,155, +230912,2317,Waitangi,7593,155, +231424,2317,Waitangi,7657,155, +231936,2317,Waitangi,7722,155, +232448,2317,Waitangi,7787,155, +232960,2317,Waitangi,7852,155, +233472,2317,Waitangi,7917,155, +233984,2317,Waitangi,7982,155, +234496,2317,Waitangi,8047,155, +235008,2317,Waitangi,8112,155, +235520,2317,Waitangi,8177,155, +236032,2317,Waitangi,8242,155, +236544,2317,Waitangi,8307,155, +237056,2317,Waitangi,8372,155, +237568,2317,Waitangi,8437,155, +238080,2317,Waitangi,8502,155, +238592,2317,Waitangi,8567,155, +239104,2317,Waitangi,8632,155, +239616,2317,Waitangi,8697,155, +240128,2317,Waitangi,8763,155, +240640,2317,Waitangi,8829,155, +241152,2317,Waitangi,8895,155, +241664,2317,Waitangi,8961,155, +242176,2317,Waitangi,9027,155, +242688,2317,Waitangi,9093,155, +243200,2317,Waitangi,9159,155, +243712,2317,Waitangi,9225,155, +244224,2317,Waitangi,9291,155, +244736,2317,Waitangi,9357,155, +245248,2317,Waitangi,9423,155, +245760,2317,Waitangi,9489,155, +246272,2317,Waitangi,9555,155, +246784,2317,Waitangi,9621,155, +247296,2317,Waitangi,9687,155, +247808,2317,Waitangi,9753,155, +248320,2317,Waitangi,9819,155, +248832,2317,Waitangi,9885,155, +249344,2317,Waitangi,9952,155, +249856,2317,Waitangi,10019,155, +250368,2317,Waitangi,10086,155, +250880,2317,Waitangi,10153,155, +251392,2317,Waitangi,10220,155, +251904,2317,Waitangi,10287,155, +252416,2317,Waitangi,10354,155, +252928,2317,Waitangi,10421,155, +253440,2317,Waitangi,10488,155, +253952,2317,Waitangi,10555,155, +254464,2317,Waitangi,10622,155, +254976,2317,Waitangi,10689,155, +255488,2317,Waitangi,10756,155, +256000,2317,Waitangi,10823,155, +256512,2317,Waitangi,10890,155, +257024,2317,Waitangi,10957,155, +257536,2317,Waitangi,11024,155, +258048,2317,Waitangi,11091,155, +258560,2317,Waitangi,11158,155, +259072,2317,Waitangi,11225,155, +259584,2317,Waitangi,11292,155, +260096,2317,Waitangi,11359,155, +260608,2317,Waitangi,11426,155, +261120,2317,Waitangi,11493,155, +261632,2317,Waitangi,11560,155, +1,6919,Anchorage,2,235, +513,6919,Anchorage,57,235, +1025,6919,Anchorage,112,235, +1537,6919,Anchorage,167,235, +2049,6919,Anchorage,222,235, +2561,6919,Anchorage,277,235, +3073,6919,Anchorage,332,235, +3585,6919,Anchorage,387,235, +4097,6919,Anchorage,442,235, +4609,6919,Anchorage,497,235, +5121,6919,Anchorage,552,235, +5633,6919,Anchorage,607,235, +6145,6919,Anchorage,662,235, +6657,6919,Anchorage,717,235, +7169,6919,Anchorage,772,235, +7681,6919,Anchorage,827,235, +8193,6919,Anchorage,882,235, +8705,6919,Anchorage,937,235, +9217,6919,Anchorage,992,235, +9729,6919,Anchorage,1047,235, +10241,6919,Anchorage,1102,235, +10753,6919,Anchorage,1157,235, +11265,6919,Anchorage,1212,235, +11777,6919,Anchorage,1267,235, +12289,6919,Anchorage,1322,235, +12801,6919,Anchorage,1377,235, +13313,6919,Anchorage,1432,235, +13825,6919,Anchorage,1487,235, +14337,6919,Anchorage,1542,235, +14849,6919,Anchorage,1597,235, +15361,6919,Anchorage,1652,235, +15873,6919,Anchorage,1707,235, +16385,6919,Anchorage,1762,235, +16897,6919,Anchorage,1817,235, +17409,6919,Anchorage,1872,235, +17921,6919,Anchorage,1927,235, +18433,6919,Anchorage,1982,235, +18945,6919,Anchorage,2037,235, +19457,6919,Anchorage,2092,235, +19969,6919,Anchorage,2147,235, +20481,6919,Anchorage,2202,235, +20993,6919,Anchorage,2257,235, +21505,6919,Anchorage,2312,235, +22017,6919,Anchorage,2367,235, +22529,6919,Anchorage,2422,235, +23041,6919,Anchorage,2477,235, +23553,6919,Anchorage,2532,235, +24065,6919,Anchorage,2587,235, +24577,6919,Anchorage,2642,235, +25089,6919,Anchorage,2697,235, +25601,6919,Anchorage,2752,235, +26113,6919,Anchorage,2807,235, +26625,6919,Anchorage,2862,235, +27137,6919,Anchorage,2917,235, +27649,6919,Anchorage,2972,235, +28161,6919,Anchorage,3027,235, +28673,6919,Anchorage,3082,235, +29185,6919,Anchorage,3137,235, +29697,6919,Anchorage,3192,235, +30209,6919,Anchorage,3247,235, +30721,6919,Anchorage,3302,235, +31233,6919,Anchorage,3357,235, +31745,6919,Anchorage,3412,235, +32257,6919,Anchorage,3467,235, +32769,6919,Anchorage,3522,235, +33281,6919,Anchorage,3577,235, +33793,6919,Anchorage,3632,235, +34305,6919,Anchorage,3687,235, +34817,6919,Anchorage,3742,235, +35329,6919,Anchorage,3797,235, +35841,6919,Anchorage,3852,235, +36353,6919,Anchorage,3907,235, +36865,6919,Anchorage,3962,235, +37377,6919,Anchorage,4017,235, +37889,6919,Anchorage,4072,235, +38401,6919,Anchorage,4127,235, +38913,6919,Anchorage,4182,235, +39425,6919,Anchorage,4237,235, +39937,6919,Anchorage,4292,235, +40449,6919,Anchorage,4347,235, +40961,6919,Anchorage,4402,235, +41473,6919,Anchorage,4457,235, +41985,6919,Anchorage,4511,235, +42497,6919,Anchorage,4565,235, +43009,6919,Anchorage,4619,235, +43521,6919,Anchorage,4673,235, +44033,6919,Anchorage,4727,235, +44545,6919,Anchorage,4781,235, +45057,6919,Anchorage,4835,235, +45569,6919,Anchorage,4889,235, +46081,6919,Anchorage,4943,235, +46593,6919,Anchorage,4997,235, +47105,6919,Anchorage,5051,235, +47617,6919,Anchorage,5105,235, +48129,6919,Anchorage,5159,235, +48641,6919,Anchorage,5213,235, +49153,6919,Anchorage,5267,235, +49665,6919,Anchorage,5321,235, +50177,6919,Anchorage,5375,235, +50689,6919,Anchorage,5429,235, +51201,6919,Anchorage,5483,235, +51713,6919,Anchorage,5537,235, +52225,6919,Anchorage,5591,235, +52737,6919,Anchorage,5645,235, +53249,6919,Anchorage,5699,235, +53761,6919,Anchorage,5753,235, +54273,6919,Anchorage,5807,235, +54785,6919,Anchorage,5861,235, +55297,6919,Anchorage,5915,235, +55809,6919,Anchorage,5969,235, +56321,6919,Anchorage,6023,235, +56833,6919,Anchorage,6077,235, +57345,6919,Anchorage,6131,235, +57857,6919,Anchorage,6185,235, +58369,6919,Anchorage,6239,235, +58881,6919,Anchorage,6293,235, +59393,6919,Anchorage,6347,235, +59905,6919,Anchorage,6401,235, +60417,6919,Anchorage,6455,235, +60929,6919,Anchorage,6509,235, +61441,6919,Anchorage,6563,235, +61953,6919,Anchorage,6617,235, +62465,6919,Anchorage,6671,235, +62977,6919,Anchorage,6725,235, +63489,6919,Anchorage,6779,235, +64001,6919,Anchorage,6833,235, +64513,6919,Anchorage,6887,235, +65025,6919,Anchorage,6941,235, +65537,6919,Anchorage,6995,235, +66049,6919,Anchorage,7049,235, +66561,6919,Anchorage,7103,235, +67073,6919,Anchorage,7157,235, +67585,6919,Anchorage,7211,235, +68097,6919,Anchorage,7265,235, +68609,6919,Anchorage,7319,235, +69121,6919,Anchorage,7373,235, +69633,6919,Anchorage,7427,235, +70145,6919,Anchorage,7481,235, +70657,6919,Anchorage,7535,235, +71169,6919,Anchorage,7589,235, +71681,6919,Anchorage,7643,235, +72193,6919,Anchorage,7697,235, +72705,6919,Anchorage,7751,235, +73217,6919,Anchorage,7805,235, +73729,6919,Anchorage,7859,235, +74241,6919,Anchorage,7913,235, +74753,6919,Anchorage,7967,235, +75265,6919,Anchorage,8021,235, +75777,6919,Anchorage,8075,235, +76289,6919,Anchorage,8129,235, +76801,6919,Anchorage,8183,235, +77313,6919,Anchorage,8237,235, +77825,6919,Anchorage,8291,235, +78337,6919,Anchorage,8345,235, +78849,6919,Anchorage,8399,235, +79361,6919,Anchorage,8453,235, +79873,6919,Anchorage,8507,235, +80385,6919,Anchorage,8561,235, +80897,6919,Anchorage,8614,235, +81409,6919,Anchorage,8667,235, +81921,6919,Anchorage,8720,235, +82433,6919,Anchorage,8773,235, +82945,6919,Anchorage,8826,235, +83457,6919,Anchorage,8879,235, +83969,6919,Anchorage,8932,235, +84481,6919,Anchorage,8985,235, +84993,6919,Anchorage,9038,235, +85505,6919,Anchorage,9090,235, +86017,6919,Anchorage,9142,235, +86529,6919,Anchorage,9194,235, +87041,6919,Anchorage,9246,235, +87553,6919,Anchorage,9298,235, +88065,6919,Anchorage,9350,235, +88577,6919,Anchorage,9402,235, +89089,6919,Anchorage,9454,235, +89601,6919,Anchorage,9506,235, +90113,6919,Anchorage,9557,235, +90625,6919,Anchorage,9608,235, +91137,6919,Anchorage,9659,235, +91649,6919,Anchorage,9710,235, +92161,6919,Anchorage,9761,235, +92673,3471,Honolulu,2,235, +93185,3471,Honolulu,5,235, +93697,3471,Honolulu,12,235, +94209,3471,Honolulu,22,235, +94721,3471,Honolulu,36,235, +95233,3471,Honolulu,54,235, +95745,3471,Honolulu,75,235, +96257,3471,Honolulu,100,235, +96769,3471,Honolulu,129,235, +97281,3471,Honolulu,161,235, +97793,3471,Honolulu,197,235, +98305,3471,Honolulu,237,235, +98817,3471,Honolulu,281,235, +99329,3471,Honolulu,328,235, +99841,3471,Honolulu,378,235, +100353,3471,Honolulu,429,235, +100865,3471,Honolulu,480,235, +101377,3471,Honolulu,531,235, +101889,3471,Honolulu,583,235, +102401,3471,Honolulu,635,235, +102913,3471,Honolulu,688,235, +103425,3471,Honolulu,741,235, +103937,3471,Honolulu,794,235, +104449,3471,Honolulu,848,235, +104961,3471,Honolulu,902,235, +105473,3471,Honolulu,957,235, +105985,3471,Honolulu,1012,235, +106497,3471,Honolulu,1067,235, +107009,3471,Honolulu,1123,235, +107521,3471,Honolulu,1179,235, +108033,3471,Honolulu,1236,235, +108545,3471,Honolulu,1293,235, +109057,3471,Honolulu,1350,235, +109569,3471,Honolulu,1408,235, +110081,3471,Honolulu,1466,235, +110593,3471,Honolulu,1525,235, +111105,3471,Honolulu,1584,235, +111617,3471,Honolulu,1644,235, +112129,3471,Honolulu,1704,235, +112641,3471,Honolulu,1764,235, +113153,3471,Honolulu,1825,235, +113665,3471,Honolulu,1886,235, +114177,3471,Honolulu,1947,235, +114689,3471,Honolulu,2009,235, +115201,3471,Honolulu,2071,235, +115713,3471,Honolulu,2133,235, +116225,3471,Honolulu,2196,235, +116737,3471,Honolulu,2259,235, +117249,3471,Honolulu,2322,235, +117761,3471,Honolulu,2386,235, +118273,3471,Honolulu,2450,235, +118785,3471,Honolulu,2514,235, +119297,3471,Honolulu,2579,235, +119809,3471,Honolulu,2644,235, +120321,3471,Honolulu,2709,235, +120833,3471,Honolulu,2774,235, +121345,3471,Honolulu,2836,235, +121857,3208,Atafu Village,3,223, +122369,3208,Atafu Village,6,223, +122881,3208,Atafu Village,11,223, +123393,3208,Atafu Village,18,223, +123905,3208,Atafu Village,27,223, +124417,3208,Atafu Village,38,223, +124929,3208,Atafu Village,51,223, +125441,3208,Atafu Village,66,223, +125953,3208,Atafu Village,83,223, +126465,3208,Atafu Village,102,223, +126977,3208,Atafu Village,123,223, +127489,3208,Atafu Village,146,223, +128001,3208,Atafu Village,171,223, +128513,3208,Atafu Village,195,223, +129025,3208,Atafu Village,219,223, +129537,3208,Atafu Village,242,223, +130049,3208,Atafu Village,264,223, +130561,3208,Atafu Village,286,223, +131073,3208,Atafu Village,307,223, +131585,3208,Atafu Village,327,223, +132097,3208,Atafu Village,347,223, +132609,3208,Atafu Village,366,223, +133121,3208,Atafu Village,384,223, +133633,3208,Atafu Village,402,223, +134145,3208,Atafu Village,419,223, +134657,3208,Atafu Village,435,223, +135169,3208,Atafu Village,451,223, +135681,3208,Atafu Village,465,223, +136193,3610,Mata-Utu,3,245, +136705,3610,Mata-Utu,6,245, +137217,3610,Mata-Utu,10,245, +137729,3610,Mata-Utu,15,245, +138241,3610,Mata-Utu,20,245, +138753,3610,Mata-Utu,27,245, +139265,3609,Leava,4,245, +139777,3609,Leava,6,245, +140289,3609,Leava,8,245, +140801,3609,Leava,11,245, +141313,3609,Leava,14,245, +141825,3609,Leava,17,245, +142337,3609,Leava,20,245, +142849,3609,Leava,22,245, +143361,3609,Leava,24,245, +143873,3611,Alo,10,245, +144385,3253,Nuku‘alofa,1,224, +144897,3253,Nuku‘alofa,5,224, +145409,3253,Nuku‘alofa,10,224, +145921,3253,Nuku‘alofa,17,224, +146433,3253,Nuku‘alofa,25,224, +146945,3253,Nuku‘alofa,33,224, +147457,3253,Nuku‘alofa,40,224, +147969,3253,Nuku‘alofa,46,224, +148481,3253,Nuku‘alofa,52,224, +148993,3253,Nuku‘alofa,57,224, +149505,3253,Nuku‘alofa,61,224, +150017,3253,Nuku‘alofa,64,224, +150529,3253,Nuku‘alofa,67,224, +151041,3252,‘Ohonua,73,224, +151553,3252,‘Ohonua,89,224, +152065,3252,‘Ohonua,105,224, +152577,3252,‘Ohonua,121,224, +153089,3252,‘Ohonua,138,224, +153601,3252,‘Ohonua,155,224, +154113,3252,‘Ohonua,173,224, +154625,3252,‘Ohonua,191,224, +155137,3252,‘Ohonua,209,224, +155649,3252,‘Ohonua,227,224, +156161,2317,Waitangi,2,155, +156673,2317,Waitangi,7,155, +157185,2317,Waitangi,24,155, +157697,2317,Waitangi,43,155, +158209,2317,Waitangi,63,155, +158721,2317,Waitangi,84,155, +159233,2317,Waitangi,106,155, +159745,2317,Waitangi,129,155, +160257,2317,Waitangi,153,155, +160769,2317,Waitangi,178,155, +161281,2317,Waitangi,204,155, +161793,2317,Waitangi,231,155, +162305,2317,Waitangi,259,155, +162817,2317,Waitangi,288,155, +163329,2317,Waitangi,319,155, +163841,2317,Waitangi,351,155, +164353,2317,Waitangi,384,155, +164865,2317,Waitangi,418,155, +165377,2317,Waitangi,453,155, +165889,2317,Waitangi,489,155, +166401,2317,Waitangi,526,155, +166913,2317,Waitangi,564,155, +167425,2317,Waitangi,603,155, +167937,2317,Waitangi,643,155, +168449,2317,Waitangi,683,155, +168961,2317,Waitangi,724,155, +169473,2317,Waitangi,766,155, +169985,2317,Waitangi,809,155, +170497,2317,Waitangi,853,155, +171009,2317,Waitangi,899,155, +171521,2317,Waitangi,945,155, +172033,2317,Waitangi,992,155, +172545,2317,Waitangi,1039,155, +173057,2317,Waitangi,1086,155, +173569,2317,Waitangi,1133,155, +174081,2317,Waitangi,1181,155, +174593,2317,Waitangi,1229,155, +175105,2317,Waitangi,1277,155, +175617,2317,Waitangi,1325,155, +176129,2317,Waitangi,1374,155, +176641,2317,Waitangi,1423,155, +177153,2317,Waitangi,1472,155, +177665,2317,Waitangi,1521,155, +178177,2317,Waitangi,1571,155, +178689,2317,Waitangi,1621,155, +179201,2317,Waitangi,1671,155, +179713,2317,Waitangi,1721,155, +180225,2317,Waitangi,1772,155, +180737,2317,Waitangi,1823,155, +181249,2317,Waitangi,1874,155, +181761,2317,Waitangi,1925,155, +182273,2317,Waitangi,1977,155, +182785,2317,Waitangi,2029,155, +183297,2317,Waitangi,2081,155, +183809,2317,Waitangi,2133,155, +184321,2317,Waitangi,2185,155, +184833,2317,Waitangi,2238,155, +185345,2317,Waitangi,2291,155, +185857,2317,Waitangi,2344,155, +186369,2317,Waitangi,2397,155, +186881,2317,Waitangi,2450,155, +187393,2317,Waitangi,2504,155, +187905,2317,Waitangi,2558,155, +188417,2317,Waitangi,2612,155, +188929,2317,Waitangi,2666,155, +189441,2317,Waitangi,2720,155, +189953,2317,Waitangi,2775,155, +190465,2317,Waitangi,2830,155, +190977,2317,Waitangi,2885,155, +191489,2317,Waitangi,2940,155, +192001,2317,Waitangi,2995,155, +192513,2317,Waitangi,3050,155, +193025,2317,Waitangi,3106,155, +193537,2317,Waitangi,3162,155, +194049,2317,Waitangi,3218,155, +194561,2317,Waitangi,3274,155, +195073,2317,Waitangi,3330,155, +195585,2317,Waitangi,3386,155, +196097,2317,Waitangi,3443,155, +196609,2317,Waitangi,3500,155, +197121,2317,Waitangi,3557,155, +197633,2317,Waitangi,3614,155, +198145,2317,Waitangi,3671,155, +198657,2317,Waitangi,3728,155, +199169,2317,Waitangi,3786,155, +199681,2317,Waitangi,3844,155, +200193,2317,Waitangi,3902,155, +200705,2317,Waitangi,3960,155, +201217,2317,Waitangi,4018,155, +201729,2317,Waitangi,4076,155, +202241,2317,Waitangi,4134,155, +202753,2317,Waitangi,4193,155, +203265,2317,Waitangi,4252,155, +203777,2317,Waitangi,4311,155, +204289,2317,Waitangi,4370,155, +204801,2317,Waitangi,4429,155, +205313,2317,Waitangi,4488,155, +205825,2317,Waitangi,4547,155, +206337,2317,Waitangi,4607,155, +206849,2317,Waitangi,4667,155, +207361,2317,Waitangi,4727,155, +207873,2317,Waitangi,4787,155, +208385,2317,Waitangi,4847,155, +208897,2317,Waitangi,4907,155, +209409,2317,Waitangi,4967,155, +209921,2317,Waitangi,5027,155, +210433,2317,Waitangi,5088,155, +210945,2317,Waitangi,5149,155, +211457,2317,Waitangi,5210,155, +211969,2317,Waitangi,5271,155, +212481,2317,Waitangi,5332,155, +212993,2317,Waitangi,5393,155, +213505,2317,Waitangi,5454,155, +214017,2317,Waitangi,5515,155, +214529,2317,Waitangi,5576,155, +215041,2317,Waitangi,5638,155, +215553,2317,Waitangi,5700,155, +216065,2317,Waitangi,5762,155, +216577,2317,Waitangi,5824,155, +217089,2317,Waitangi,5886,155, +217601,2317,Waitangi,5948,155, +218113,2317,Waitangi,6010,155, +218625,2317,Waitangi,6072,155, +219137,2317,Waitangi,6134,155, +219649,2317,Waitangi,6197,155, +220161,2317,Waitangi,6260,155, +220673,2317,Waitangi,6323,155, +221185,2317,Waitangi,6386,155, +221697,2317,Waitangi,6449,155, +222209,2317,Waitangi,6512,155, +222721,2317,Waitangi,6575,155, +223233,2317,Waitangi,6638,155, +223745,2317,Waitangi,6701,155, +224257,2317,Waitangi,6764,155, +224769,2317,Waitangi,6827,155, +225281,2317,Waitangi,6890,155, +225793,2317,Waitangi,6954,155, +226305,2317,Waitangi,7018,155, +226817,2317,Waitangi,7082,155, +227329,2317,Waitangi,7146,155, +227841,2317,Waitangi,7210,155, +228353,2317,Waitangi,7274,155, +228865,2317,Waitangi,7338,155, +229377,2317,Waitangi,7402,155, +229889,2317,Waitangi,7466,155, +230401,2317,Waitangi,7530,155, +230913,2317,Waitangi,7594,155, +231425,2317,Waitangi,7658,155, +231937,2317,Waitangi,7723,155, +232449,2317,Waitangi,7788,155, +232961,2317,Waitangi,7853,155, +233473,2317,Waitangi,7918,155, +233985,2317,Waitangi,7983,155, +234497,2317,Waitangi,8048,155, +235009,2317,Waitangi,8113,155, +235521,2317,Waitangi,8178,155, +236033,2317,Waitangi,8243,155, +236545,2317,Waitangi,8308,155, +237057,2317,Waitangi,8373,155, +237569,2317,Waitangi,8438,155, +238081,2317,Waitangi,8503,155, +238593,2317,Waitangi,8568,155, +239105,2317,Waitangi,8633,155, +239617,2317,Waitangi,8698,155, +240129,2317,Waitangi,8764,155, +240641,2317,Waitangi,8830,155, +241153,2317,Waitangi,8896,155, +241665,2317,Waitangi,8962,155, +242177,2317,Waitangi,9028,155, +242689,2317,Waitangi,9094,155, +243201,2317,Waitangi,9160,155, +243713,2317,Waitangi,9226,155, +244225,2317,Waitangi,9292,155, +244737,2317,Waitangi,9358,155, +245249,2317,Waitangi,9424,155, +245761,2317,Waitangi,9490,155, +246273,2317,Waitangi,9556,155, +246785,2317,Waitangi,9622,155, +247297,2317,Waitangi,9688,155, +247809,2317,Waitangi,9754,155, +248321,2317,Waitangi,9820,155, +248833,2317,Waitangi,9886,155, +249345,2317,Waitangi,9953,155, +249857,2317,Waitangi,10020,155, +250369,2317,Waitangi,10087,155, +250881,2317,Waitangi,10154,155, +251393,2317,Waitangi,10221,155, +251905,2317,Waitangi,10288,155, +252417,2317,Waitangi,10355,155, +252929,2317,Waitangi,10422,155, +253441,2317,Waitangi,10489,155, +253953,2317,Waitangi,10556,155, +254465,2317,Waitangi,10623,155, +254977,2317,Waitangi,10690,155, +255489,2317,Waitangi,10757,155, +256001,2317,Waitangi,10824,155, +256513,2317,Waitangi,10891,155, +257025,2317,Waitangi,10958,155, +257537,2317,Waitangi,11025,155, +258049,2317,Waitangi,11092,155, +258561,2317,Waitangi,11159,155, +259073,2317,Waitangi,11226,155, +259585,2317,Waitangi,11293,155, +260097,2317,Waitangi,11360,155, +260609,2317,Waitangi,11427,155, +261121,2317,Waitangi,11494,155, +261633,2317,Waitangi,11561,155, diff --git a/scripts/scrape_regions.py b/scripts/scrape_regions.py new file mode 100644 index 0000000..120ede1 --- /dev/null +++ b/scripts/scrape_regions.py @@ -0,0 +1,381 @@ +#!/usr/bin/env python3 +""" +Script to scrape region data from wplace.live API and generate a CSV mapping. + +This creates a tile-to-region mapping by sampling one pixel per tile. +The region is determined by tile coordinates, not individual pixels. +""" + +import csv +import time +import json +import os +from typing import Optional, Dict +import sys + +try: + import cloudscraper + print("✓ Using cloudscraper to bypass Cloudflare protection") +except ImportError: + print("⚠️ cloudscraper not found. Install it with: pip install cloudscraper") + print(" This is required to bypass Cloudflare protection on wplace.live") + sys.exit(1) + +try: + import socks + print("✓ SOCKS proxy support available") +except ImportError: + print("⚠️ PySocks not found. Install it with: pip install pysocks") + print(" This is required to use SOCKS5 proxies") + sys.exit(1) + +# Configuration +BASE_URL = "https://backend.wplace.live/s0/pixel" +OUTPUT_CSV = "tile_region_mapping.csv" +OUTPUT_REGIONS_CSV = "regions.csv" + +# Sample density - adjust based on how detailed you want the mapping +# 1 = sample all tiles, 2 = sample every other tile, etc. +TILE_SAMPLE_STEP = 1 # Sample every Nth tile + +# Tile range - adjust based on the canvas size +TILE_X_MIN, TILE_X_MAX = 0, 2047 +TILE_Y_MIN, TILE_Y_MAX = 0, 2047 + +# Proxy rotation - helps avoid rate limits and Cloudflare blocks +PROXIES = [ + "socks5://spmhmfozio:ze1sg%2BsP3n4apXhDV9@isp.decodo.com:10001", + "socks5://user-spcwoviqpj-sessionduration-1440:aw2igK7QDgscu~41Gl@gate.decodo.com:10001", + "socks5://spk2ihoy6o:ympO0wyr9X32%2BgXRfj@isp.decodo.com:10010" +] + +# Track current proxy index for rotation +current_proxy_index = 0 + +# Rate limit backoff settings +rate_limit_backoff_seconds = 0 # Exponential backoff for rate limits +consecutive_rate_limits = 0 # Track consecutive rate limit errors + +# Create a cloudscraper session that can bypass Cloudflare +scraper = cloudscraper.create_scraper( + browser={ + 'browser': 'chrome', + 'platform': 'windows', + 'mobile': False + } +) + +def get_next_proxy() -> Dict[str, str]: + """Get the next proxy in rotation.""" + global current_proxy_index + proxy_url = PROXIES[current_proxy_index] + current_proxy_index = (current_proxy_index + 1) % len(PROXIES) + return { + 'http': proxy_url, + 'https': proxy_url + } + +def detect_cloudflare_rate_limit(response) -> bool: + """Detect if response is a Cloudflare 1015 rate limit error.""" + # Check for 1015 error code in response + if response.status_code == 429: + return True + + # Check for Cloudflare rate limit page (error 1015) + if 'text/html' in response.headers.get('Content-Type', ''): + if b'error 1015' in response.content.lower() or b'rate limited' in response.content.lower(): + return True + + # Check for specific Cloudflare headers + cf_ray = response.headers.get('CF-RAY', '') + if cf_ray and response.status_code in [403, 429, 503]: + return True + + return False + +def handle_rate_limit_backoff(): + """Handle exponential backoff when rate limited.""" + global rate_limit_backoff_seconds, consecutive_rate_limits + + consecutive_rate_limits += 1 + + # Exponential backoff: 5s, 10s, 20s, 40s, 60s (max) + if consecutive_rate_limits == 1: + rate_limit_backoff_seconds = 5 + elif consecutive_rate_limits == 2: + rate_limit_backoff_seconds = 10 + elif consecutive_rate_limits == 3: + rate_limit_backoff_seconds = 20 + elif consecutive_rate_limits == 4: + rate_limit_backoff_seconds = 40 + else: + rate_limit_backoff_seconds = 60 + + print(f"\n🛑 CLOUDFLARE RATE LIMIT DETECTED (Error 1015)") + print(f" Consecutive rate limits: {consecutive_rate_limits}") + print(f" Backing off for {rate_limit_backoff_seconds} seconds...") + time.sleep(rate_limit_backoff_seconds) + +def reset_rate_limit_backoff(): + """Reset backoff when we get successful responses.""" + global rate_limit_backoff_seconds, consecutive_rate_limits + consecutive_rate_limits = 0 + rate_limit_backoff_seconds = 0 + +def fetch_tile_region(tile_x: int, tile_y: int) -> Optional[Dict]: + """Fetch region info for a tile from wplace.live API. + + Since region is determined by tile, we just need to check one pixel per tile. + We'll use coordinates (1, 1) as a sample point. + """ + url = f"{BASE_URL}/{tile_x}/{tile_y}?x=1&y=1" + proxies = get_next_proxy() + + try: + response = scraper.get(url, proxies=proxies, timeout=15) + + # Check for Cloudflare rate limiting (error 1015) + if detect_cloudflare_rate_limit(response): + handle_rate_limit_backoff() + # Retry with same proxy after backoff + response = scraper.get(url, proxies=proxies, timeout=15) + if detect_cloudflare_rate_limit(response): + print(f" Still rate limited after backoff. Skipping tile ({tile_x}, {tile_y})") + return None + + # Check if we got HTML (Cloudflare challenge) instead of JSON + content_type = response.headers.get('Content-Type', '') + if 'text/html' in content_type and not detect_cloudflare_rate_limit(response): + print(f"\n⚠️ Received HTML instead of JSON for tile ({tile_x}, {tile_y})") + print(f" This might be a Cloudflare challenge page. Waiting 5 seconds...") + time.sleep(5) + # Retry once + response = scraper.get(url, proxies=proxies, timeout=15) + content_type = response.headers.get('Content-Type', '') + if 'text/html' in content_type: + print(f" Still getting HTML. Skipping this tile.") + return None + + if response.status_code == 200: + # Success! Reset rate limit backoff + reset_rate_limit_backoff() + try: + data = response.json() + # Extract region if it exists + if 'region' in data: + return data['region'] + return None + except json.JSONDecodeError: + print(f"\n⚠️ Failed to parse JSON for tile ({tile_x}, {tile_y})") + return None + elif response.status_code == 404: + # No pixel painted at (1,1), try center of tile + url_center = f"{BASE_URL}/{tile_x}/{tile_y}?x=500&y=500" + response = scraper.get(url_center, proxies=proxies, timeout=15) + + # Check for rate limit on retry + if detect_cloudflare_rate_limit(response): + handle_rate_limit_backoff() + return None + + if response.status_code == 200: + try: + data = response.json() + if 'region' in data: + reset_rate_limit_backoff() + return data['region'] + except json.JSONDecodeError: + pass + return None + elif response.status_code == 403: + print(f"\n⚠️ Got 403 Forbidden for tile ({tile_x}, {tile_y})") + print(f" You may be rate limited. Consider increasing the delay.") + return None + elif response.status_code == 429: + print(f"\n⚠️ Got 429 Too Many Requests for tile ({tile_x}, {tile_y})") + handle_rate_limit_backoff() + return None + else: + print(f"\n⚠️ Got status {response.status_code} for tile ({tile_x}, {tile_y})") + return None + except Exception as e: + print(f"\n⚠️ Error fetching tile ({tile_x}, {tile_y}): {e}") + return None + +def load_already_scraped_tiles() -> set: + """Load tiles that have already been scraped from the CSV file.""" + scraped_tiles = set() + + if os.path.exists(OUTPUT_CSV): + print(f"📂 Found existing {OUTPUT_CSV}, loading already scraped tiles...") + try: + with open(OUTPUT_CSV, 'r', newline='', encoding='utf-8') as f: + reader = csv.DictReader(f) + for row in reader: + tile_x = int(row['tile_x']) + tile_y = int(row['tile_y']) + scraped_tiles.add((tile_x, tile_y)) + print(f" ✓ Loaded {len(scraped_tiles)} already scraped tiles") + except Exception as e: + print(f" ⚠️ Error reading existing CSV: {e}") + print(f" Starting fresh...") + scraped_tiles.clear() + + return scraped_tiles + +def load_unique_regions() -> dict: + """Load unique regions from the regions CSV file.""" + unique_regions = {} + + if os.path.exists(OUTPUT_REGIONS_CSV): + print(f"📂 Found existing {OUTPUT_REGIONS_CSV}, loading unique regions...") + try: + with open(OUTPUT_REGIONS_CSV, 'r', newline='', encoding='utf-8') as f: + reader = csv.DictReader(f) + for row in reader: + region_key = (int(row['id']), int(row['city_id'])) + unique_regions[region_key] = row + print(f" ✓ Loaded {len(unique_regions)} unique regions") + except Exception as e: + print(f" ⚠️ Error reading regions CSV: {e}") + + return unique_regions + +def append_tile_to_csv(tile_data: dict): + """Append a single tile to the CSV file.""" + file_exists = os.path.exists(OUTPUT_CSV) + + with open(OUTPUT_CSV, 'a', newline='', encoding='utf-8') as f: + fieldnames = ['tile_x', 'tile_y', 'region_id', 'city_id', + 'region_name', 'region_number', 'country_id', 'flag_id'] + writer = csv.DictWriter(f, fieldnames=fieldnames) + + # Write header if file is new + if not file_exists: + writer.writeheader() + + writer.writerow(tile_data) + +def update_regions_csv(unique_regions: dict): + """Update the regions CSV file with all unique regions.""" + with open(OUTPUT_REGIONS_CSV, 'w', newline='', encoding='utf-8') as f: + fieldnames = ['id', 'city_id', 'name', 'number', 'country_id', 'flag_id'] + writer = csv.DictWriter(f, fieldnames=fieldnames) + writer.writeheader() + writer.writerows(unique_regions.values()) + +def main(): + print("Starting wplace.live region data scraping...") + print(f"Using {len(PROXIES)} rotating proxies for requests") + print(f"Tile range: X({TILE_X_MIN}-{TILE_X_MAX}), Y({TILE_Y_MIN}-{TILE_Y_MAX})") + print(f"Sampling every {TILE_SAMPLE_STEP} tile(s)") + + tiles_x = (TILE_X_MAX - TILE_X_MIN + 1) // TILE_SAMPLE_STEP + tiles_y = (TILE_Y_MAX - TILE_Y_MIN + 1) // TILE_SAMPLE_STEP + total_to_sample = tiles_x * tiles_y + + print(f"Total tiles to sample: {total_to_sample}") + print() + + # Load already scraped tiles for resume support + already_scraped = load_already_scraped_tiles() + + # Load unique regions + unique_regions = load_unique_regions() + + total_tiles = 0 + successful_tiles = 0 + skipped_tiles = len(already_scraped) + last_success_time = time.time() + + # Sample across tiles (one sample per tile is enough since region is tile-based) + for tile_x in range(TILE_X_MIN, TILE_X_MAX + 1, TILE_SAMPLE_STEP): + for tile_y in range(TILE_Y_MIN, TILE_Y_MAX + 1, TILE_SAMPLE_STEP): + total_tiles += 1 + + # Skip if already scraped + if (tile_x, tile_y) in already_scraped: + continue + + print(f"Sampling tile ({tile_x}, {tile_y})... [{successful_tiles} new, {skipped_tiles} skipped/cached]", end="\r") + + region = fetch_tile_region(tile_x, tile_y) + + if region: + # Prepare tile data + tile_data = { + 'tile_x': tile_x, + 'tile_y': tile_y, + 'region_id': region.get('id'), + 'city_id': region.get('cityId'), + 'region_name': region.get('name'), + 'region_number': region.get('number'), + 'country_id': region.get('countryId'), + 'flag_id': region.get('flagId') + } + + # Immediately write to CSV (for resume support) + append_tile_to_csv(tile_data) + + # Store unique region + region_key = (region.get('id'), region.get('cityId')) + if region_key not in unique_regions: + unique_regions[region_key] = { + 'id': region.get('id'), + 'city_id': region.get('cityId'), + 'name': region.get('name'), + 'number': region.get('number'), + 'country_id': region.get('countryId'), + 'flag_id': region.get('flagId') + } + # Update regions CSV periodically + update_regions_csv(unique_regions) + + successful_tiles += 1 + last_success_time = time.time() + else: + skipped_tiles += 1 + + # If we've had too many failures in a row, warn the user + if time.time() - last_success_time > 60: + print(f"\n⚠️ No successful requests in the last 60 seconds.") + print(f" You may be blocked by Cloudflare. Consider:") + print(f" 1. Increasing TILE_SAMPLE_STEP to reduce request rate") + print(f" 2. Taking a break and trying again later") + print(f" 3. Using a VPN or different IP address") + print(f" Progress is saved! You can resume by running this script again.") + user_input = input("Continue? (y/n): ") + if user_input.lower() != 'y': + break + last_success_time = time.time() + + # Rate limiting - be nice to their server + # Add extra delay if we've been rate limited recently + base_delay = 0.1 + if consecutive_rate_limits > 0: + # Slow down if we've been rate limited + base_delay = 0.5 + time.sleep(base_delay) + + else: + continue + break + + print() + print(f"\n✅ Scanning complete!") + print(f"Total tiles processed: {total_tiles}") + print(f"New tiles scraped: {successful_tiles}") + print(f"Skipped/cached tiles: {skipped_tiles}") + print(f"Unique regions found: {len(unique_regions)}") + + # Final update of regions CSV + if unique_regions: + update_regions_csv(unique_regions) + print(f"✓ Final regions list saved to {OUTPUT_REGIONS_CSV}") + + print(f"✓ Tile-to-region mappings in {OUTPUT_CSV}") + print("\n💡 Tip: You can resume this script anytime - progress is automatically saved!") + print(" Done! You can now import this data into your database.") + +if __name__ == "__main__": + main() diff --git a/scripts/tile_region_mapping.csv b/scripts/tile_region_mapping.csv new file mode 100644 index 0000000..f2cfb93 --- /dev/null +++ b/scripts/tile_region_mapping.csv @@ -0,0 +1,12279 @@ +tile_x,tile_y,region_id,city_id,region_name,region_number,country_id,flag_id +0,0,0,6919,Anchorage,1,235, +0,1,0,6919,Anchorage,1,235, +0,2,0,6919,Anchorage,1,235, +0,3,0,6919,Anchorage,1,235, +0,4,512,6919,Anchorage,56,235, +0,5,512,6919,Anchorage,56,235, +0,6,512,6919,Anchorage,56,235, +0,7,512,6919,Anchorage,56,235, +0,8,1024,6919,Anchorage,111,235, +0,9,1024,6919,Anchorage,111,235, +0,10,1024,6919,Anchorage,111,235, +0,11,1024,6919,Anchorage,111,235, +0,12,1536,6919,Anchorage,166,235, +0,13,1536,6919,Anchorage,166,235, +0,14,1536,6919,Anchorage,166,235, +0,15,1536,6919,Anchorage,166,235, +0,16,2048,6919,Anchorage,221,235, +0,17,2048,6919,Anchorage,221,235, +0,18,2048,6919,Anchorage,221,235, +0,19,2048,6919,Anchorage,221,235, +0,20,2560,6919,Anchorage,276,235, +0,21,2560,6919,Anchorage,276,235, +0,22,2560,6919,Anchorage,276,235, +0,23,2560,6919,Anchorage,276,235, +0,24,3072,6919,Anchorage,331,235, +0,25,3072,6919,Anchorage,331,235, +0,26,3072,6919,Anchorage,331,235, +0,27,3072,6919,Anchorage,331,235, +0,28,3584,6919,Anchorage,386,235, +0,29,3584,6919,Anchorage,386,235, +0,30,3584,6919,Anchorage,386,235, +0,31,3584,6919,Anchorage,386,235, +0,32,4096,6919,Anchorage,441,235, +0,33,4096,6919,Anchorage,441,235, +0,34,4096,6919,Anchorage,441,235, +0,35,4096,6919,Anchorage,441,235, +0,36,4608,6919,Anchorage,496,235, +0,37,4608,6919,Anchorage,496,235, +0,38,4608,6919,Anchorage,496,235, +0,39,4608,6919,Anchorage,496,235, +0,40,5120,6919,Anchorage,551,235, +0,41,5120,6919,Anchorage,551,235, +0,42,5120,6919,Anchorage,551,235, +0,43,5120,6919,Anchorage,551,235, +0,44,5632,6919,Anchorage,606,235, +0,45,5632,6919,Anchorage,606,235, +0,46,5632,6919,Anchorage,606,235, +0,47,5632,6919,Anchorage,606,235, +0,48,6144,6919,Anchorage,661,235, +0,49,6144,6919,Anchorage,661,235, +0,50,6144,6919,Anchorage,661,235, +0,51,6144,6919,Anchorage,661,235, +0,52,6656,6919,Anchorage,716,235, +0,53,6656,6919,Anchorage,716,235, +0,54,6656,6919,Anchorage,716,235, +0,55,6656,6919,Anchorage,716,235, +0,56,7168,6919,Anchorage,771,235, +0,57,7168,6919,Anchorage,771,235, +0,58,7168,6919,Anchorage,771,235, +0,59,7168,6919,Anchorage,771,235, +0,60,7680,6919,Anchorage,826,235, +0,61,7680,6919,Anchorage,826,235, +0,62,7680,6919,Anchorage,826,235, +0,63,7680,6919,Anchorage,826,235, +0,64,8192,6919,Anchorage,881,235, +0,65,8192,6919,Anchorage,881,235, +0,66,8192,6919,Anchorage,881,235, +0,67,8192,6919,Anchorage,881,235, +0,68,8704,6919,Anchorage,936,235, +0,69,8704,6919,Anchorage,936,235, +0,70,8704,6919,Anchorage,936,235, +0,71,8704,6919,Anchorage,936,235, +0,72,9216,6919,Anchorage,991,235, +0,73,9216,6919,Anchorage,991,235, +0,74,9216,6919,Anchorage,991,235, +0,75,9216,6919,Anchorage,991,235, +0,76,9728,6919,Anchorage,1046,235, +0,77,9728,6919,Anchorage,1046,235, +0,78,9728,6919,Anchorage,1046,235, +0,79,9728,6919,Anchorage,1046,235, +0,80,10240,6919,Anchorage,1101,235, +0,81,10240,6919,Anchorage,1101,235, +0,82,10240,6919,Anchorage,1101,235, +0,83,10240,6919,Anchorage,1101,235, +0,84,10752,6919,Anchorage,1156,235, +0,85,10752,6919,Anchorage,1156,235, +0,86,10752,6919,Anchorage,1156,235, +0,87,10752,6919,Anchorage,1156,235, +0,88,11264,6919,Anchorage,1211,235, +0,89,11264,6919,Anchorage,1211,235, +0,90,11264,6919,Anchorage,1211,235, +0,91,11264,6919,Anchorage,1211,235, +0,92,11776,6919,Anchorage,1266,235, +0,93,11776,6919,Anchorage,1266,235, +0,94,11776,6919,Anchorage,1266,235, +0,95,11776,6919,Anchorage,1266,235, +0,96,12288,6919,Anchorage,1321,235, +0,97,12288,6919,Anchorage,1321,235, +0,98,12288,6919,Anchorage,1321,235, +0,99,12288,6919,Anchorage,1321,235, +0,100,12800,6919,Anchorage,1376,235, +0,101,12800,6919,Anchorage,1376,235, +0,102,12800,6919,Anchorage,1376,235, +0,103,12800,6919,Anchorage,1376,235, +0,104,13312,6919,Anchorage,1431,235, +0,105,13312,6919,Anchorage,1431,235, +0,106,13312,6919,Anchorage,1431,235, +0,107,13312,6919,Anchorage,1431,235, +0,108,13824,6919,Anchorage,1486,235, +0,109,13824,6919,Anchorage,1486,235, +0,110,13824,6919,Anchorage,1486,235, +0,111,13824,6919,Anchorage,1486,235, +0,112,14336,6919,Anchorage,1541,235, +0,113,14336,6919,Anchorage,1541,235, +0,114,14336,6919,Anchorage,1541,235, +0,115,14336,6919,Anchorage,1541,235, +0,116,14848,6919,Anchorage,1596,235, +0,117,14848,6919,Anchorage,1596,235, +0,118,14848,6919,Anchorage,1596,235, +0,119,14848,6919,Anchorage,1596,235, +0,120,15360,6919,Anchorage,1651,235, +0,121,15360,6919,Anchorage,1651,235, +0,122,15360,6919,Anchorage,1651,235, +0,123,15360,6919,Anchorage,1651,235, +0,124,15872,6919,Anchorage,1706,235, +0,125,15872,6919,Anchorage,1706,235, +0,126,15872,6919,Anchorage,1706,235, +0,127,15872,6919,Anchorage,1706,235, +0,128,16384,6919,Anchorage,1761,235, +0,129,16384,6919,Anchorage,1761,235, +0,130,16384,6919,Anchorage,1761,235, +0,131,16384,6919,Anchorage,1761,235, +0,132,16896,6919,Anchorage,1816,235, +0,133,16896,6919,Anchorage,1816,235, +0,134,16896,6919,Anchorage,1816,235, +0,135,16896,6919,Anchorage,1816,235, +0,136,17408,6919,Anchorage,1871,235, +0,137,17408,6919,Anchorage,1871,235, +0,138,17408,6919,Anchorage,1871,235, +0,139,17408,6919,Anchorage,1871,235, +0,140,17920,6919,Anchorage,1926,235, +0,141,17920,6919,Anchorage,1926,235, +0,142,17920,6919,Anchorage,1926,235, +0,143,17920,6919,Anchorage,1926,235, +0,144,18432,6919,Anchorage,1981,235, +0,145,18432,6919,Anchorage,1981,235, +0,146,18432,6919,Anchorage,1981,235, +0,147,18432,6919,Anchorage,1981,235, +0,148,18944,6919,Anchorage,2036,235, +0,149,18944,6919,Anchorage,2036,235, +0,150,18944,6919,Anchorage,2036,235, +0,151,18944,6919,Anchorage,2036,235, +0,152,19456,6919,Anchorage,2091,235, +0,153,19456,6919,Anchorage,2091,235, +0,154,19456,6919,Anchorage,2091,235, +0,155,19456,6919,Anchorage,2091,235, +0,156,19968,6919,Anchorage,2146,235, +0,157,19968,6919,Anchorage,2146,235, +0,158,19968,6919,Anchorage,2146,235, +0,159,19968,6919,Anchorage,2146,235, +0,160,20480,6919,Anchorage,2201,235, +0,161,20480,6919,Anchorage,2201,235, +0,162,20480,6919,Anchorage,2201,235, +0,163,20480,6919,Anchorage,2201,235, +0,164,20992,6919,Anchorage,2256,235, +0,165,20992,6919,Anchorage,2256,235, +0,166,20992,6919,Anchorage,2256,235, +0,167,20992,6919,Anchorage,2256,235, +0,168,21504,6919,Anchorage,2311,235, +0,169,21504,6919,Anchorage,2311,235, +0,170,21504,6919,Anchorage,2311,235, +0,171,21504,6919,Anchorage,2311,235, +0,172,22016,6919,Anchorage,2366,235, +0,173,22016,6919,Anchorage,2366,235, +0,174,22016,6919,Anchorage,2366,235, +0,175,22016,6919,Anchorage,2366,235, +0,176,22528,6919,Anchorage,2421,235, +0,177,22528,6919,Anchorage,2421,235, +0,178,22528,6919,Anchorage,2421,235, +0,179,22528,6919,Anchorage,2421,235, +0,180,23040,6919,Anchorage,2476,235, +0,181,23040,6919,Anchorage,2476,235, +0,182,23040,6919,Anchorage,2476,235, +0,183,23040,6919,Anchorage,2476,235, +0,184,23552,6919,Anchorage,2531,235, +0,185,23552,6919,Anchorage,2531,235, +0,186,23552,6919,Anchorage,2531,235, +0,187,23552,6919,Anchorage,2531,235, +0,188,24064,6919,Anchorage,2586,235, +0,189,24064,6919,Anchorage,2586,235, +0,190,24064,6919,Anchorage,2586,235, +0,191,24064,6919,Anchorage,2586,235, +0,192,24576,6919,Anchorage,2641,235, +0,193,24576,6919,Anchorage,2641,235, +0,194,24576,6919,Anchorage,2641,235, +0,195,24576,6919,Anchorage,2641,235, +0,196,25088,6919,Anchorage,2696,235, +0,197,25088,6919,Anchorage,2696,235, +0,198,25088,6919,Anchorage,2696,235, +0,199,25088,6919,Anchorage,2696,235, +0,200,25600,6919,Anchorage,2751,235, +0,201,25600,6919,Anchorage,2751,235, +0,202,25600,6919,Anchorage,2751,235, +0,203,25600,6919,Anchorage,2751,235, +0,204,26112,6919,Anchorage,2806,235, +0,205,26112,6919,Anchorage,2806,235, +0,206,26112,6919,Anchorage,2806,235, +0,207,26112,6919,Anchorage,2806,235, +0,208,26624,6919,Anchorage,2861,235, +0,209,26624,6919,Anchorage,2861,235, +0,210,26624,6919,Anchorage,2861,235, +0,211,26624,6919,Anchorage,2861,235, +0,212,27136,6919,Anchorage,2916,235, +0,213,27136,6919,Anchorage,2916,235, +0,214,27136,6919,Anchorage,2916,235, +0,215,27136,6919,Anchorage,2916,235, +0,216,27648,6919,Anchorage,2971,235, +0,217,27648,6919,Anchorage,2971,235, +0,218,27648,6919,Anchorage,2971,235, +0,219,27648,6919,Anchorage,2971,235, +0,220,28160,6919,Anchorage,3026,235, +0,221,28160,6919,Anchorage,3026,235, +0,222,28160,6919,Anchorage,3026,235, +0,223,28160,6919,Anchorage,3026,235, +0,224,28672,6919,Anchorage,3081,235, +0,225,28672,6919,Anchorage,3081,235, +0,226,28672,6919,Anchorage,3081,235, +0,227,28672,6919,Anchorage,3081,235, +0,228,29184,6919,Anchorage,3136,235, +0,229,29184,6919,Anchorage,3136,235, +0,230,29184,6919,Anchorage,3136,235, +0,231,29184,6919,Anchorage,3136,235, +0,232,29696,6919,Anchorage,3191,235, +0,233,29696,6919,Anchorage,3191,235, +0,234,29696,6919,Anchorage,3191,235, +0,235,29696,6919,Anchorage,3191,235, +0,236,30208,6919,Anchorage,3246,235, +0,237,30208,6919,Anchorage,3246,235, +0,238,30208,6919,Anchorage,3246,235, +0,239,30208,6919,Anchorage,3246,235, +0,240,30720,6919,Anchorage,3301,235, +0,241,30720,6919,Anchorage,3301,235, +0,242,30720,6919,Anchorage,3301,235, +0,243,30720,6919,Anchorage,3301,235, +0,244,31232,6919,Anchorage,3356,235, +0,245,31232,6919,Anchorage,3356,235, +0,246,31232,6919,Anchorage,3356,235, +0,247,31232,6919,Anchorage,3356,235, +0,248,31744,6919,Anchorage,3411,235, +0,249,31744,6919,Anchorage,3411,235, +0,250,31744,6919,Anchorage,3411,235, +0,251,31744,6919,Anchorage,3411,235, +0,252,32256,6919,Anchorage,3466,235, +0,253,32256,6919,Anchorage,3466,235, +0,254,32256,6919,Anchorage,3466,235, +0,255,32256,6919,Anchorage,3466,235, +0,256,32768,6919,Anchorage,3521,235, +0,257,32768,6919,Anchorage,3521,235, +0,258,32768,6919,Anchorage,3521,235, +0,259,32768,6919,Anchorage,3521,235, +0,260,33280,6919,Anchorage,3576,235, +0,261,33280,6919,Anchorage,3576,235, +0,262,33280,6919,Anchorage,3576,235, +0,263,33280,6919,Anchorage,3576,235, +0,264,33792,6919,Anchorage,3631,235, +0,265,33792,6919,Anchorage,3631,235, +0,266,33792,6919,Anchorage,3631,235, +0,267,33792,6919,Anchorage,3631,235, +0,268,34304,6919,Anchorage,3686,235, +0,269,34304,6919,Anchorage,3686,235, +0,270,34304,6919,Anchorage,3686,235, +0,271,34304,6919,Anchorage,3686,235, +0,272,34816,6919,Anchorage,3741,235, +0,273,34816,6919,Anchorage,3741,235, +0,274,34816,6919,Anchorage,3741,235, +0,275,34816,6919,Anchorage,3741,235, +0,276,35328,6919,Anchorage,3796,235, +0,277,35328,6919,Anchorage,3796,235, +0,278,35328,6919,Anchorage,3796,235, +0,279,35328,6919,Anchorage,3796,235, +0,280,35840,6919,Anchorage,3851,235, +0,281,35840,6919,Anchorage,3851,235, +0,282,35840,6919,Anchorage,3851,235, +0,283,35840,6919,Anchorage,3851,235, +0,284,36352,6919,Anchorage,3906,235, +0,285,36352,6919,Anchorage,3906,235, +0,286,36352,6919,Anchorage,3906,235, +0,287,36352,6919,Anchorage,3906,235, +0,288,36864,6919,Anchorage,3961,235, +0,289,36864,6919,Anchorage,3961,235, +0,290,36864,6919,Anchorage,3961,235, +0,291,36864,6919,Anchorage,3961,235, +0,292,37376,6919,Anchorage,4016,235, +0,293,37376,6919,Anchorage,4016,235, +0,294,37376,6919,Anchorage,4016,235, +0,295,37376,6919,Anchorage,4016,235, +0,296,37888,6919,Anchorage,4071,235, +0,297,37888,6919,Anchorage,4071,235, +0,298,37888,6919,Anchorage,4071,235, +0,299,37888,6919,Anchorage,4071,235, +0,300,38400,6919,Anchorage,4126,235, +0,301,38400,6919,Anchorage,4126,235, +0,302,38400,6919,Anchorage,4126,235, +0,303,38400,6919,Anchorage,4126,235, +0,304,38912,6919,Anchorage,4181,235, +0,305,38912,6919,Anchorage,4181,235, +0,306,38912,6919,Anchorage,4181,235, +0,307,38912,6919,Anchorage,4181,235, +0,308,39424,6919,Anchorage,4236,235, +0,309,39424,6919,Anchorage,4236,235, +0,310,39424,6919,Anchorage,4236,235, +0,311,39424,6919,Anchorage,4236,235, +0,312,39936,6919,Anchorage,4291,235, +0,313,39936,6919,Anchorage,4291,235, +0,314,39936,6919,Anchorage,4291,235, +0,315,39936,6919,Anchorage,4291,235, +0,316,40448,6919,Anchorage,4346,235, +0,317,40448,6919,Anchorage,4346,235, +0,318,40448,6919,Anchorage,4346,235, +0,319,40448,6919,Anchorage,4346,235, +0,320,40960,6919,Anchorage,4401,235, +0,321,40960,6919,Anchorage,4401,235, +0,322,40960,6919,Anchorage,4401,235, +0,323,40960,6919,Anchorage,4401,235, +0,324,41472,6919,Anchorage,4456,235, +0,325,41472,6919,Anchorage,4456,235, +0,326,41472,6919,Anchorage,4456,235, +0,327,41472,6919,Anchorage,4456,235, +0,328,41984,6919,Anchorage,4510,235, +0,329,41984,6919,Anchorage,4510,235, +0,330,41984,6919,Anchorage,4510,235, +0,331,41984,6919,Anchorage,4510,235, +0,332,42496,6919,Anchorage,4564,235, +0,333,42496,6919,Anchorage,4564,235, +0,334,42496,6919,Anchorage,4564,235, +0,335,42496,6919,Anchorage,4564,235, +0,336,43008,6919,Anchorage,4618,235, +0,337,43008,6919,Anchorage,4618,235, +0,338,43008,6919,Anchorage,4618,235, +0,339,43008,6919,Anchorage,4618,235, +0,340,43520,6919,Anchorage,4672,235, +0,341,43520,6919,Anchorage,4672,235, +0,342,43520,6919,Anchorage,4672,235, +0,343,43520,6919,Anchorage,4672,235, +0,344,44032,6919,Anchorage,4726,235, +0,345,44032,6919,Anchorage,4726,235, +0,346,44032,6919,Anchorage,4726,235, +0,347,44032,6919,Anchorage,4726,235, +0,348,44544,6919,Anchorage,4780,235, +0,349,44544,6919,Anchorage,4780,235, +0,350,44544,6919,Anchorage,4780,235, +0,351,44544,6919,Anchorage,4780,235, +0,352,45056,6919,Anchorage,4834,235, +0,353,45056,6919,Anchorage,4834,235, +0,354,45056,6919,Anchorage,4834,235, +0,355,45056,6919,Anchorage,4834,235, +0,356,45568,6919,Anchorage,4888,235, +0,357,45568,6919,Anchorage,4888,235, +0,358,45568,6919,Anchorage,4888,235, +0,359,45568,6919,Anchorage,4888,235, +0,360,46080,6919,Anchorage,4942,235, +0,361,46080,6919,Anchorage,4942,235, +0,362,46080,6919,Anchorage,4942,235, +0,363,46080,6919,Anchorage,4942,235, +0,364,46592,6919,Anchorage,4996,235, +0,365,46592,6919,Anchorage,4996,235, +0,366,46592,6919,Anchorage,4996,235, +0,367,46592,6919,Anchorage,4996,235, +0,368,47104,6919,Anchorage,5050,235, +0,369,47104,6919,Anchorage,5050,235, +0,370,47104,6919,Anchorage,5050,235, +0,371,47104,6919,Anchorage,5050,235, +0,372,47616,6919,Anchorage,5104,235, +0,373,47616,6919,Anchorage,5104,235, +0,374,47616,6919,Anchorage,5104,235, +0,375,47616,6919,Anchorage,5104,235, +0,376,48128,6919,Anchorage,5158,235, +0,377,48128,6919,Anchorage,5158,235, +0,378,48128,6919,Anchorage,5158,235, +0,379,48128,6919,Anchorage,5158,235, +0,380,48640,6919,Anchorage,5212,235, +0,381,48640,6919,Anchorage,5212,235, +0,382,48640,6919,Anchorage,5212,235, +0,383,48640,6919,Anchorage,5212,235, +0,384,49152,6919,Anchorage,5266,235, +0,385,49152,6919,Anchorage,5266,235, +0,386,49152,6919,Anchorage,5266,235, +0,387,49152,6919,Anchorage,5266,235, +0,388,49664,6919,Anchorage,5320,235, +0,389,49664,6919,Anchorage,5320,235, +0,390,49664,6919,Anchorage,5320,235, +0,391,49664,6919,Anchorage,5320,235, +0,392,50176,6919,Anchorage,5374,235, +0,393,50176,6919,Anchorage,5374,235, +0,394,50176,6919,Anchorage,5374,235, +0,395,50176,6919,Anchorage,5374,235, +0,396,50688,6919,Anchorage,5428,235, +0,397,50688,6919,Anchorage,5428,235, +0,398,50688,6919,Anchorage,5428,235, +0,399,50688,6919,Anchorage,5428,235, +0,400,51200,6919,Anchorage,5482,235, +0,401,51200,6919,Anchorage,5482,235, +0,402,51200,6919,Anchorage,5482,235, +0,403,51200,6919,Anchorage,5482,235, +0,404,51712,6919,Anchorage,5536,235, +0,405,51712,6919,Anchorage,5536,235, +0,406,51712,6919,Anchorage,5536,235, +0,407,51712,6919,Anchorage,5536,235, +0,408,52224,6919,Anchorage,5590,235, +0,409,52224,6919,Anchorage,5590,235, +0,410,52224,6919,Anchorage,5590,235, +0,411,52224,6919,Anchorage,5590,235, +0,412,52736,6919,Anchorage,5644,235, +0,413,52736,6919,Anchorage,5644,235, +0,414,52736,6919,Anchorage,5644,235, +0,415,52736,6919,Anchorage,5644,235, +0,416,53248,6919,Anchorage,5698,235, +0,417,53248,6919,Anchorage,5698,235, +0,418,53248,6919,Anchorage,5698,235, +0,419,53248,6919,Anchorage,5698,235, +0,420,53760,6919,Anchorage,5752,235, +0,421,53760,6919,Anchorage,5752,235, +0,422,53760,6919,Anchorage,5752,235, +0,423,53760,6919,Anchorage,5752,235, +0,424,54272,6919,Anchorage,5806,235, +0,425,54272,6919,Anchorage,5806,235, +0,426,54272,6919,Anchorage,5806,235, +0,427,54272,6919,Anchorage,5806,235, +0,428,54784,6919,Anchorage,5860,235, +0,429,54784,6919,Anchorage,5860,235, +0,430,54784,6919,Anchorage,5860,235, +0,431,54784,6919,Anchorage,5860,235, +0,432,55296,6919,Anchorage,5914,235, +0,433,55296,6919,Anchorage,5914,235, +0,434,55296,6919,Anchorage,5914,235, +0,435,55296,6919,Anchorage,5914,235, +0,436,55808,6919,Anchorage,5968,235, +0,437,55808,6919,Anchorage,5968,235, +0,438,55808,6919,Anchorage,5968,235, +0,439,55808,6919,Anchorage,5968,235, +0,440,56320,6919,Anchorage,6022,235, +0,441,56320,6919,Anchorage,6022,235, +0,442,56320,6919,Anchorage,6022,235, +0,443,56320,6919,Anchorage,6022,235, +0,444,56832,6919,Anchorage,6076,235, +0,445,56832,6919,Anchorage,6076,235, +0,446,56832,6919,Anchorage,6076,235, +0,447,56832,6919,Anchorage,6076,235, +0,448,57344,6919,Anchorage,6130,235, +0,449,57344,6919,Anchorage,6130,235, +0,450,57344,6919,Anchorage,6130,235, +0,451,57344,6919,Anchorage,6130,235, +0,452,57856,6919,Anchorage,6184,235, +0,453,57856,6919,Anchorage,6184,235, +0,454,57856,6919,Anchorage,6184,235, +0,455,57856,6919,Anchorage,6184,235, +0,456,58368,6919,Anchorage,6238,235, +0,457,58368,6919,Anchorage,6238,235, +0,458,58368,6919,Anchorage,6238,235, +0,459,58368,6919,Anchorage,6238,235, +0,460,58880,6919,Anchorage,6292,235, +0,461,58880,6919,Anchorage,6292,235, +0,462,58880,6919,Anchorage,6292,235, +0,463,58880,6919,Anchorage,6292,235, +0,464,59392,6919,Anchorage,6346,235, +0,465,59392,6919,Anchorage,6346,235, +0,466,59392,6919,Anchorage,6346,235, +0,467,59392,6919,Anchorage,6346,235, +0,468,59904,6919,Anchorage,6400,235, +0,469,59904,6919,Anchorage,6400,235, +0,470,59904,6919,Anchorage,6400,235, +0,471,59904,6919,Anchorage,6400,235, +0,472,60416,6919,Anchorage,6454,235, +0,473,60416,6919,Anchorage,6454,235, +0,474,60416,6919,Anchorage,6454,235, +0,475,60416,6919,Anchorage,6454,235, +0,476,60928,6919,Anchorage,6508,235, +0,477,60928,6919,Anchorage,6508,235, +0,478,60928,6919,Anchorage,6508,235, +0,479,60928,6919,Anchorage,6508,235, +0,480,61440,6919,Anchorage,6562,235, +0,481,61440,6919,Anchorage,6562,235, +0,482,61440,6919,Anchorage,6562,235, +0,483,61440,6919,Anchorage,6562,235, +0,484,61952,6919,Anchorage,6616,235, +0,485,61952,6919,Anchorage,6616,235, +0,486,61952,6919,Anchorage,6616,235, +0,487,61952,6919,Anchorage,6616,235, +0,488,62464,6919,Anchorage,6670,235, +0,489,62464,6919,Anchorage,6670,235, +0,490,62464,6919,Anchorage,6670,235, +0,491,62464,6919,Anchorage,6670,235, +0,492,62976,6919,Anchorage,6724,235, +0,493,62976,6919,Anchorage,6724,235, +0,494,62976,6919,Anchorage,6724,235, +0,495,62976,6919,Anchorage,6724,235, +0,496,63488,6919,Anchorage,6778,235, +0,497,63488,6919,Anchorage,6778,235, +0,498,63488,6919,Anchorage,6778,235, +0,499,63488,6919,Anchorage,6778,235, +0,500,64000,6919,Anchorage,6832,235, +0,501,64000,6919,Anchorage,6832,235, +0,502,64000,6919,Anchorage,6832,235, +0,503,64000,6919,Anchorage,6832,235, +0,504,64512,6919,Anchorage,6886,235, +0,505,64512,6919,Anchorage,6886,235, +0,506,64512,6919,Anchorage,6886,235, +0,507,64512,6919,Anchorage,6886,235, +0,508,65024,6919,Anchorage,6940,235, +0,509,65024,6919,Anchorage,6940,235, +0,510,65024,6919,Anchorage,6940,235, +0,511,65024,6919,Anchorage,6940,235, +0,512,65536,6919,Anchorage,6994,235, +0,513,65536,6919,Anchorage,6994,235, +0,514,65536,6919,Anchorage,6994,235, +0,515,65536,6919,Anchorage,6994,235, +0,516,66048,6919,Anchorage,7048,235, +0,517,66048,6919,Anchorage,7048,235, +0,518,66048,6919,Anchorage,7048,235, +0,519,66048,6919,Anchorage,7048,235, +0,520,66560,6919,Anchorage,7102,235, +0,521,66560,6919,Anchorage,7102,235, +0,522,66560,6919,Anchorage,7102,235, +0,523,66560,6919,Anchorage,7102,235, +0,524,67072,6919,Anchorage,7156,235, +0,525,67072,6919,Anchorage,7156,235, +0,526,67072,6919,Anchorage,7156,235, +0,527,67072,6919,Anchorage,7156,235, +0,528,67584,6919,Anchorage,7210,235, +0,529,67584,6919,Anchorage,7210,235, +0,530,67584,6919,Anchorage,7210,235, +0,531,67584,6919,Anchorage,7210,235, +0,532,68096,6919,Anchorage,7264,235, +0,533,68096,6919,Anchorage,7264,235, +0,534,68096,6919,Anchorage,7264,235, +0,535,68096,6919,Anchorage,7264,235, +0,536,68608,6919,Anchorage,7318,235, +0,537,68608,6919,Anchorage,7318,235, +0,538,68608,6919,Anchorage,7318,235, +0,539,68608,6919,Anchorage,7318,235, +0,540,69120,6919,Anchorage,7372,235, +0,541,69120,6919,Anchorage,7372,235, +0,542,69120,6919,Anchorage,7372,235, +0,543,69120,6919,Anchorage,7372,235, +0,544,69632,6919,Anchorage,7426,235, +0,545,69632,6919,Anchorage,7426,235, +0,546,69632,6919,Anchorage,7426,235, +0,547,69632,6919,Anchorage,7426,235, +0,548,70144,6919,Anchorage,7480,235, +0,549,70144,6919,Anchorage,7480,235, +0,550,70144,6919,Anchorage,7480,235, +0,551,70144,6919,Anchorage,7480,235, +0,552,70656,6919,Anchorage,7534,235, +0,553,70656,6919,Anchorage,7534,235, +0,554,70656,6919,Anchorage,7534,235, +0,555,70656,6919,Anchorage,7534,235, +0,556,71168,6919,Anchorage,7588,235, +0,557,71168,6919,Anchorage,7588,235, +0,558,71168,6919,Anchorage,7588,235, +0,559,71168,6919,Anchorage,7588,235, +0,560,71680,6919,Anchorage,7642,235, +0,561,71680,6919,Anchorage,7642,235, +0,562,71680,6919,Anchorage,7642,235, +0,563,71680,6919,Anchorage,7642,235, +0,564,72192,6919,Anchorage,7696,235, +0,565,72192,6919,Anchorage,7696,235, +0,566,72192,6919,Anchorage,7696,235, +0,567,72192,6919,Anchorage,7696,235, +0,568,72704,6919,Anchorage,7750,235, +0,569,72704,6919,Anchorage,7750,235, +0,570,72704,6919,Anchorage,7750,235, +0,571,72704,6919,Anchorage,7750,235, +0,572,73216,6919,Anchorage,7804,235, +0,573,73216,6919,Anchorage,7804,235, +0,574,73216,6919,Anchorage,7804,235, +0,575,73216,6919,Anchorage,7804,235, +0,576,73728,6919,Anchorage,7858,235, +0,577,73728,6919,Anchorage,7858,235, +0,578,73728,6919,Anchorage,7858,235, +0,579,73728,6919,Anchorage,7858,235, +0,580,74240,6919,Anchorage,7912,235, +0,581,74240,6919,Anchorage,7912,235, +0,582,74240,6919,Anchorage,7912,235, +0,583,74240,6919,Anchorage,7912,235, +0,584,74752,6919,Anchorage,7966,235, +0,585,74752,6919,Anchorage,7966,235, +0,586,74752,6919,Anchorage,7966,235, +0,587,74752,6919,Anchorage,7966,235, +0,588,75264,6919,Anchorage,8020,235, +0,589,75264,6919,Anchorage,8020,235, +0,590,75264,6919,Anchorage,8020,235, +0,591,75264,6919,Anchorage,8020,235, +0,592,75776,6919,Anchorage,8074,235, +0,593,75776,6919,Anchorage,8074,235, +0,594,75776,6919,Anchorage,8074,235, +0,595,75776,6919,Anchorage,8074,235, +0,596,76288,6919,Anchorage,8128,235, +0,597,76288,6919,Anchorage,8128,235, +0,598,76288,6919,Anchorage,8128,235, +0,599,76288,6919,Anchorage,8128,235, +0,600,76800,6919,Anchorage,8182,235, +0,601,76800,6919,Anchorage,8182,235, +0,602,76800,6919,Anchorage,8182,235, +0,603,76800,6919,Anchorage,8182,235, +0,604,77312,6919,Anchorage,8236,235, +0,605,77312,6919,Anchorage,8236,235, +0,606,77312,6919,Anchorage,8236,235, +0,607,77312,6919,Anchorage,8236,235, +0,608,77824,6919,Anchorage,8290,235, +0,609,77824,6919,Anchorage,8290,235, +0,610,77824,6919,Anchorage,8290,235, +0,611,77824,6919,Anchorage,8290,235, +0,612,78336,6919,Anchorage,8344,235, +0,613,78336,6919,Anchorage,8344,235, +0,614,78336,6919,Anchorage,8344,235, +0,615,78336,6919,Anchorage,8344,235, +0,616,78848,6919,Anchorage,8398,235, +0,617,78848,6919,Anchorage,8398,235, +0,618,78848,6919,Anchorage,8398,235, +0,619,78848,6919,Anchorage,8398,235, +0,620,79360,6919,Anchorage,8452,235, +0,621,79360,6919,Anchorage,8452,235, +0,622,79360,6919,Anchorage,8452,235, +0,623,79360,6919,Anchorage,8452,235, +0,624,79872,6919,Anchorage,8506,235, +0,625,79872,6919,Anchorage,8506,235, +0,626,79872,6919,Anchorage,8506,235, +0,627,79872,6919,Anchorage,8506,235, +0,628,80384,6919,Anchorage,8560,235, +0,629,80384,6919,Anchorage,8560,235, +0,630,80384,6919,Anchorage,8560,235, +0,631,80384,6919,Anchorage,8560,235, +0,632,80896,6919,Anchorage,8613,235, +0,633,80896,6919,Anchorage,8613,235, +0,634,80896,6919,Anchorage,8613,235, +0,635,80896,6919,Anchorage,8613,235, +0,636,81408,6919,Anchorage,8666,235, +0,637,81408,6919,Anchorage,8666,235, +0,638,81408,6919,Anchorage,8666,235, +0,639,81408,6919,Anchorage,8666,235, +0,640,81920,6919,Anchorage,8719,235, +0,641,81920,6919,Anchorage,8719,235, +0,642,81920,6919,Anchorage,8719,235, +0,643,81920,6919,Anchorage,8719,235, +0,644,82432,6919,Anchorage,8772,235, +0,645,82432,6919,Anchorage,8772,235, +0,646,82432,6919,Anchorage,8772,235, +0,647,82432,6919,Anchorage,8772,235, +0,648,82944,6919,Anchorage,8825,235, +0,649,82944,6919,Anchorage,8825,235, +0,650,82944,6919,Anchorage,8825,235, +0,651,82944,6919,Anchorage,8825,235, +0,652,83456,6919,Anchorage,8878,235, +0,653,83456,6919,Anchorage,8878,235, +0,654,83456,6919,Anchorage,8878,235, +0,655,83456,6919,Anchorage,8878,235, +0,656,83968,6919,Anchorage,8931,235, +0,657,83968,6919,Anchorage,8931,235, +0,658,83968,6919,Anchorage,8931,235, +0,659,83968,6919,Anchorage,8931,235, +0,660,84480,6919,Anchorage,8984,235, +0,661,84480,6919,Anchorage,8984,235, +0,662,84480,6919,Anchorage,8984,235, +0,663,84480,6919,Anchorage,8984,235, +0,664,84992,6919,Anchorage,9037,235, +0,665,84992,6919,Anchorage,9037,235, +0,666,84992,6919,Anchorage,9037,235, +0,667,84992,6919,Anchorage,9037,235, +0,668,85504,6919,Anchorage,9089,235, +0,669,85504,6919,Anchorage,9089,235, +0,670,85504,6919,Anchorage,9089,235, +0,671,85504,6919,Anchorage,9089,235, +0,672,86016,6919,Anchorage,9141,235, +0,673,86016,6919,Anchorage,9141,235, +0,674,86016,6919,Anchorage,9141,235, +0,675,86016,6919,Anchorage,9141,235, +0,676,86528,6919,Anchorage,9193,235, +0,677,86528,6919,Anchorage,9193,235, +0,678,86528,6919,Anchorage,9193,235, +0,679,86528,6919,Anchorage,9193,235, +0,680,87040,6919,Anchorage,9245,235, +0,681,87040,6919,Anchorage,9245,235, +0,682,87040,6919,Anchorage,9245,235, +0,683,87040,6919,Anchorage,9245,235, +0,684,87552,6919,Anchorage,9297,235, +0,685,87552,6919,Anchorage,9297,235, +0,686,87552,6919,Anchorage,9297,235, +0,687,87552,6919,Anchorage,9297,235, +0,688,88064,6919,Anchorage,9349,235, +0,689,88064,6919,Anchorage,9349,235, +0,690,88064,6919,Anchorage,9349,235, +0,691,88064,6919,Anchorage,9349,235, +0,692,88576,6919,Anchorage,9401,235, +0,693,88576,6919,Anchorage,9401,235, +0,694,88576,6919,Anchorage,9401,235, +0,695,88576,6919,Anchorage,9401,235, +0,696,89088,6919,Anchorage,9453,235, +0,697,89088,6919,Anchorage,9453,235, +0,698,89088,6919,Anchorage,9453,235, +0,699,89088,6919,Anchorage,9453,235, +0,700,89600,6919,Anchorage,9505,235, +0,701,89600,6919,Anchorage,9505,235, +0,702,89600,6919,Anchorage,9505,235, +0,703,89600,6919,Anchorage,9505,235, +0,704,90112,6919,Anchorage,9556,235, +0,705,90112,6919,Anchorage,9556,235, +0,706,90112,6919,Anchorage,9556,235, +0,707,90112,6919,Anchorage,9556,235, +0,708,90624,6919,Anchorage,9607,235, +0,709,90624,6919,Anchorage,9607,235, +0,710,90624,6919,Anchorage,9607,235, +0,711,90624,6919,Anchorage,9607,235, +0,712,91136,6919,Anchorage,9658,235, +0,713,91136,6919,Anchorage,9658,235, +0,714,91136,6919,Anchorage,9658,235, +0,715,91136,6919,Anchorage,9658,235, +0,716,91648,6919,Anchorage,9709,235, +0,717,91648,6919,Anchorage,9709,235, +0,718,91648,6919,Anchorage,9709,235, +0,719,91648,6919,Anchorage,9709,235, +0,720,92160,6919,Anchorage,9760,235, +0,721,92160,6919,Anchorage,9760,235, +0,722,92160,6919,Anchorage,9760,235, +0,723,92160,6919,Anchorage,9760,235, +0,724,92672,3471,Honolulu,1,235, +0,725,92672,3471,Honolulu,1,235, +0,726,92672,3471,Honolulu,1,235, +0,727,92672,3471,Honolulu,1,235, +0,728,93184,3471,Honolulu,4,235, +0,729,93184,3471,Honolulu,4,235, +0,730,93184,3471,Honolulu,4,235, +0,731,93184,3471,Honolulu,4,235, +0,732,93696,3471,Honolulu,11,235, +0,733,93696,3471,Honolulu,11,235, +0,734,93696,3471,Honolulu,11,235, +0,735,93696,3471,Honolulu,11,235, +0,736,94208,3471,Honolulu,21,235, +0,737,94208,3471,Honolulu,21,235, +0,738,94208,3471,Honolulu,21,235, +0,739,94208,3471,Honolulu,21,235, +0,740,94720,3471,Honolulu,35,235, +0,741,94720,3471,Honolulu,35,235, +0,742,94720,3471,Honolulu,35,235, +0,743,94720,3471,Honolulu,35,235, +0,744,95232,3471,Honolulu,53,235, +0,745,95232,3471,Honolulu,53,235, +0,746,95232,3471,Honolulu,53,235, +0,747,95232,3471,Honolulu,53,235, +0,748,95744,3471,Honolulu,74,235, +0,749,95744,3471,Honolulu,74,235, +0,750,95744,3471,Honolulu,74,235, +0,751,95744,3471,Honolulu,74,235, +0,752,96256,3471,Honolulu,99,235, +0,753,96256,3471,Honolulu,99,235, +0,754,96256,3471,Honolulu,99,235, +0,755,96256,3471,Honolulu,99,235, +0,756,96768,3471,Honolulu,128,235, +0,757,96768,3471,Honolulu,128,235, +0,758,96768,3471,Honolulu,128,235, +0,759,96768,3471,Honolulu,128,235, +0,760,97280,3471,Honolulu,160,235, +0,761,97280,3471,Honolulu,160,235, +0,762,97280,3471,Honolulu,160,235, +0,763,97280,3471,Honolulu,160,235, +0,764,97792,3471,Honolulu,196,235, +0,765,97792,3471,Honolulu,196,235, +0,766,97792,3471,Honolulu,196,235, +0,767,97792,3471,Honolulu,196,235, +0,768,98304,3471,Honolulu,236,235, +0,769,98304,3471,Honolulu,236,235, +0,770,98304,3471,Honolulu,236,235, +0,771,98304,3471,Honolulu,236,235, +0,772,98816,3471,Honolulu,280,235, +0,773,98816,3471,Honolulu,280,235, +0,774,98816,3471,Honolulu,280,235, +0,775,98816,3471,Honolulu,280,235, +0,776,99328,3471,Honolulu,327,235, +0,777,99328,3471,Honolulu,327,235, +0,778,99328,3471,Honolulu,327,235, +0,779,99328,3471,Honolulu,327,235, +0,780,99840,3471,Honolulu,377,235, +0,781,99840,3471,Honolulu,377,235, +0,782,99840,3471,Honolulu,377,235, +0,783,99840,3471,Honolulu,377,235, +0,784,100352,3471,Honolulu,428,235, +0,785,100352,3471,Honolulu,428,235, +0,786,100352,3471,Honolulu,428,235, +0,787,100352,3471,Honolulu,428,235, +0,788,100864,3471,Honolulu,479,235, +0,789,100864,3471,Honolulu,479,235, +0,790,100864,3471,Honolulu,479,235, +0,791,100864,3471,Honolulu,479,235, +0,792,101376,3471,Honolulu,530,235, +0,793,101376,3471,Honolulu,530,235, +0,794,101376,3471,Honolulu,530,235, +0,795,101376,3471,Honolulu,530,235, +0,796,101888,3471,Honolulu,582,235, +0,797,101888,3471,Honolulu,582,235, +0,798,101888,3471,Honolulu,582,235, +0,799,101888,3471,Honolulu,582,235, +0,800,102400,3471,Honolulu,634,235, +0,801,102400,3471,Honolulu,634,235, +0,802,102400,3471,Honolulu,634,235, +0,803,102400,3471,Honolulu,634,235, +0,804,102912,3471,Honolulu,687,235, +0,805,102912,3471,Honolulu,687,235, +0,806,102912,3471,Honolulu,687,235, +0,807,102912,3471,Honolulu,687,235, +0,808,103424,3471,Honolulu,740,235, +0,809,103424,3471,Honolulu,740,235, +0,810,103424,3471,Honolulu,740,235, +0,811,103424,3471,Honolulu,740,235, +0,812,103936,3471,Honolulu,793,235, +0,813,103936,3471,Honolulu,793,235, +0,814,103936,3471,Honolulu,793,235, +0,815,103936,3471,Honolulu,793,235, +0,816,104448,3471,Honolulu,847,235, +0,817,104448,3471,Honolulu,847,235, +0,818,104448,3471,Honolulu,847,235, +0,819,104448,3471,Honolulu,847,235, +0,820,104960,3471,Honolulu,901,235, +0,821,104960,3471,Honolulu,901,235, +0,822,104960,3471,Honolulu,901,235, +0,823,104960,3471,Honolulu,901,235, +0,824,105472,3471,Honolulu,956,235, +0,825,105472,3471,Honolulu,956,235, +0,826,105472,3471,Honolulu,956,235, +0,827,105472,3471,Honolulu,956,235, +0,828,105984,3471,Honolulu,1011,235, +0,829,105984,3471,Honolulu,1011,235, +0,830,105984,3471,Honolulu,1011,235, +0,831,105984,3471,Honolulu,1011,235, +0,832,106496,3471,Honolulu,1066,235, +0,833,106496,3471,Honolulu,1066,235, +0,834,106496,3471,Honolulu,1066,235, +0,835,106496,3471,Honolulu,1066,235, +0,836,107008,3471,Honolulu,1122,235, +0,837,107008,3471,Honolulu,1122,235, +0,838,107008,3471,Honolulu,1122,235, +0,839,107008,3471,Honolulu,1122,235, +0,840,107520,3471,Honolulu,1178,235, +0,841,107520,3471,Honolulu,1178,235, +0,842,107520,3471,Honolulu,1178,235, +0,843,107520,3471,Honolulu,1178,235, +0,844,108032,3471,Honolulu,1235,235, +0,845,108032,3471,Honolulu,1235,235, +0,846,108032,3471,Honolulu,1235,235, +0,847,108032,3471,Honolulu,1235,235, +0,848,108544,3471,Honolulu,1292,235, +0,849,108544,3471,Honolulu,1292,235, +0,850,108544,3471,Honolulu,1292,235, +0,851,108544,3471,Honolulu,1292,235, +0,852,109056,3471,Honolulu,1349,235, +0,853,109056,3471,Honolulu,1349,235, +0,854,109056,3471,Honolulu,1349,235, +0,855,109056,3471,Honolulu,1349,235, +0,856,109568,3471,Honolulu,1407,235, +0,857,109568,3471,Honolulu,1407,235, +0,858,109568,3471,Honolulu,1407,235, +0,859,109568,3471,Honolulu,1407,235, +0,860,110080,3471,Honolulu,1465,235, +0,861,110080,3471,Honolulu,1465,235, +0,862,110080,3471,Honolulu,1465,235, +0,863,110080,3471,Honolulu,1465,235, +0,864,110592,3471,Honolulu,1524,235, +0,865,110592,3471,Honolulu,1524,235, +0,866,110592,3471,Honolulu,1524,235, +0,867,110592,3471,Honolulu,1524,235, +0,868,111104,3471,Honolulu,1583,235, +0,869,111104,3471,Honolulu,1583,235, +0,870,111104,3471,Honolulu,1583,235, +0,871,111104,3471,Honolulu,1583,235, +0,872,111616,3471,Honolulu,1643,235, +0,873,111616,3471,Honolulu,1643,235, +0,874,111616,3471,Honolulu,1643,235, +0,875,111616,3471,Honolulu,1643,235, +0,876,112128,3471,Honolulu,1703,235, +0,877,112128,3471,Honolulu,1703,235, +0,878,112128,3471,Honolulu,1703,235, +0,879,112128,3471,Honolulu,1703,235, +0,880,112640,3471,Honolulu,1763,235, +0,881,112640,3471,Honolulu,1763,235, +0,882,112640,3471,Honolulu,1763,235, +0,883,112640,3471,Honolulu,1763,235, +0,884,113152,3471,Honolulu,1824,235, +0,885,113152,3471,Honolulu,1824,235, +0,886,113152,3471,Honolulu,1824,235, +0,887,113152,3471,Honolulu,1824,235, +0,888,113664,3471,Honolulu,1885,235, +0,889,113664,3471,Honolulu,1885,235, +0,890,113664,3471,Honolulu,1885,235, +0,891,113664,3471,Honolulu,1885,235, +0,892,114176,3471,Honolulu,1946,235, +0,893,114176,3471,Honolulu,1946,235, +0,894,114176,3471,Honolulu,1946,235, +0,895,114176,3471,Honolulu,1946,235, +0,896,114688,3471,Honolulu,2008,235, +0,897,114688,3471,Honolulu,2008,235, +0,898,114688,3471,Honolulu,2008,235, +0,899,114688,3471,Honolulu,2008,235, +0,900,115200,3471,Honolulu,2070,235, +0,901,115200,3471,Honolulu,2070,235, +0,902,115200,3471,Honolulu,2070,235, +0,903,115200,3471,Honolulu,2070,235, +0,904,115712,3471,Honolulu,2132,235, +0,905,115712,3471,Honolulu,2132,235, +0,906,115712,3471,Honolulu,2132,235, +0,907,115712,3471,Honolulu,2132,235, +0,908,116224,3471,Honolulu,2195,235, +0,909,116224,3471,Honolulu,2195,235, +0,910,116224,3471,Honolulu,2195,235, +0,911,116224,3471,Honolulu,2195,235, +0,912,116736,3471,Honolulu,2258,235, +0,913,116736,3471,Honolulu,2258,235, +0,914,116736,3471,Honolulu,2258,235, +0,915,116736,3471,Honolulu,2258,235, +0,916,117248,3471,Honolulu,2321,235, +0,917,117248,3471,Honolulu,2321,235, +0,918,117248,3471,Honolulu,2321,235, +0,919,117248,3471,Honolulu,2321,235, +0,920,117760,3471,Honolulu,2385,235, +0,921,117760,3471,Honolulu,2385,235, +0,922,117760,3471,Honolulu,2385,235, +0,923,117760,3471,Honolulu,2385,235, +0,924,118272,3471,Honolulu,2449,235, +0,925,118272,3471,Honolulu,2449,235, +0,926,118272,3471,Honolulu,2449,235, +0,927,118272,3471,Honolulu,2449,235, +0,928,118784,3471,Honolulu,2513,235, +0,929,118784,3471,Honolulu,2513,235, +0,930,118784,3471,Honolulu,2513,235, +0,931,118784,3471,Honolulu,2513,235, +0,932,119296,3471,Honolulu,2578,235, +0,933,119296,3471,Honolulu,2578,235, +0,934,119296,3471,Honolulu,2578,235, +0,935,119296,3471,Honolulu,2578,235, +0,936,119808,3471,Honolulu,2643,235, +0,937,119808,3471,Honolulu,2643,235, +0,938,119808,3471,Honolulu,2643,235, +0,939,119808,3471,Honolulu,2643,235, +0,940,120320,3471,Honolulu,2708,235, +0,941,120320,3471,Honolulu,2708,235, +0,942,120320,3471,Honolulu,2708,235, +0,943,120320,3471,Honolulu,2708,235, +0,944,120832,3471,Honolulu,2773,235, +0,945,120832,3471,Honolulu,2773,235, +0,946,120832,3471,Honolulu,2773,235, +0,947,120832,3471,Honolulu,2773,235, +0,948,121344,3208,Atafu Village,1,223, +0,949,121344,3208,Atafu Village,1,223, +0,950,121344,3208,Atafu Village,1,223, +0,951,121344,3208,Atafu Village,1,223, +0,952,121856,3208,Atafu Village,2,223, +0,953,121856,3208,Atafu Village,2,223, +0,954,121856,3208,Atafu Village,2,223, +0,955,121856,3208,Atafu Village,2,223, +0,956,122368,3208,Atafu Village,5,223, +0,957,122368,3208,Atafu Village,5,223, +0,958,122368,3208,Atafu Village,5,223, +0,959,122368,3208,Atafu Village,5,223, +0,960,122880,3208,Atafu Village,10,223, +0,961,122880,3208,Atafu Village,10,223, +0,962,122880,3208,Atafu Village,10,223, +0,963,122880,3208,Atafu Village,10,223, +0,964,123392,3208,Atafu Village,17,223, +0,965,123392,3208,Atafu Village,17,223, +0,966,123392,3208,Atafu Village,17,223, +0,967,123392,3208,Atafu Village,17,223, +0,968,123904,3208,Atafu Village,26,223, +0,969,123904,3208,Atafu Village,26,223, +0,970,123904,3208,Atafu Village,26,223, +0,971,123904,3208,Atafu Village,26,223, +0,972,124416,3208,Atafu Village,37,223, +0,973,124416,3208,Atafu Village,37,223, +0,974,124416,3208,Atafu Village,37,223, +0,975,124416,3208,Atafu Village,37,223, +0,976,124928,3208,Atafu Village,50,223, +0,977,124928,3208,Atafu Village,50,223, +0,978,124928,3208,Atafu Village,50,223, +0,979,124928,3208,Atafu Village,50,223, +0,980,125440,3208,Atafu Village,65,223, +0,981,125440,3208,Atafu Village,65,223, +0,982,125440,3208,Atafu Village,65,223, +0,983,125440,3208,Atafu Village,65,223, +0,984,125952,3208,Atafu Village,82,223, +0,985,125952,3208,Atafu Village,82,223, +0,986,125952,3208,Atafu Village,82,223, +0,987,125952,3208,Atafu Village,82,223, +0,988,126464,3208,Atafu Village,101,223, +0,989,126464,3208,Atafu Village,101,223, +0,990,126464,3208,Atafu Village,101,223, +0,991,126464,3208,Atafu Village,101,223, +0,992,126976,3208,Atafu Village,122,223, +0,993,126976,3208,Atafu Village,122,223, +0,994,126976,3208,Atafu Village,122,223, +0,995,126976,3208,Atafu Village,122,223, +0,996,127488,3208,Atafu Village,145,223, +0,997,127488,3208,Atafu Village,145,223, +0,998,127488,3208,Atafu Village,145,223, +0,999,127488,3208,Atafu Village,145,223, +0,1000,128000,3208,Atafu Village,170,223, +0,1001,128000,3208,Atafu Village,170,223, +0,1002,128000,3208,Atafu Village,170,223, +0,1003,128000,3208,Atafu Village,170,223, +0,1004,128512,3208,Atafu Village,194,223, +0,1005,128512,3208,Atafu Village,194,223, +0,1006,128512,3208,Atafu Village,194,223, +0,1007,128512,3208,Atafu Village,194,223, +0,1008,129024,3208,Atafu Village,218,223, +0,1009,129024,3208,Atafu Village,218,223, +0,1010,129024,3208,Atafu Village,218,223, +0,1011,129024,3208,Atafu Village,218,223, +0,1012,129536,3208,Atafu Village,241,223, +0,1013,129536,3208,Atafu Village,241,223, +0,1014,129536,3208,Atafu Village,241,223, +0,1015,129536,3208,Atafu Village,241,223, +0,1016,130048,3208,Atafu Village,263,223, +0,1017,130048,3208,Atafu Village,263,223, +0,1018,130048,3208,Atafu Village,263,223, +0,1019,130048,3208,Atafu Village,263,223, +0,1020,130560,3208,Atafu Village,285,223, +0,1021,130560,3208,Atafu Village,285,223, +0,1022,130560,3208,Atafu Village,285,223, +0,1023,130560,3208,Atafu Village,285,223, +0,1024,131072,3208,Atafu Village,306,223, +0,1025,131072,3208,Atafu Village,306,223, +0,1026,131072,3208,Atafu Village,306,223, +0,1027,131072,3208,Atafu Village,306,223, +0,1028,131584,3208,Atafu Village,326,223, +0,1029,131584,3208,Atafu Village,326,223, +0,1030,131584,3208,Atafu Village,326,223, +0,1031,131584,3208,Atafu Village,326,223, +0,1032,132096,3208,Atafu Village,346,223, +0,1033,132096,3208,Atafu Village,346,223, +0,1034,132096,3208,Atafu Village,346,223, +0,1035,132096,3208,Atafu Village,346,223, +0,1036,132608,3208,Atafu Village,365,223, +0,1037,132608,3208,Atafu Village,365,223, +0,1038,132608,3208,Atafu Village,365,223, +0,1039,132608,3208,Atafu Village,365,223, +0,1040,133120,3208,Atafu Village,383,223, +0,1041,133120,3208,Atafu Village,383,223, +0,1042,133120,3208,Atafu Village,383,223, +0,1043,133120,3208,Atafu Village,383,223, +0,1044,133632,3208,Atafu Village,401,223, +0,1045,133632,3208,Atafu Village,401,223, +0,1046,133632,3208,Atafu Village,401,223, +0,1047,133632,3208,Atafu Village,401,223, +0,1048,134144,3208,Atafu Village,418,223, +0,1049,134144,3208,Atafu Village,418,223, +0,1050,134144,3208,Atafu Village,418,223, +0,1051,134144,3208,Atafu Village,418,223, +0,1052,134656,3208,Atafu Village,434,223, +0,1053,134656,3208,Atafu Village,434,223, +0,1054,134656,3208,Atafu Village,434,223, +0,1055,134656,3208,Atafu Village,434,223, +0,1056,135168,3208,Atafu Village,450,223, +0,1057,135168,3208,Atafu Village,450,223, +0,1058,135168,3208,Atafu Village,450,223, +0,1059,135168,3208,Atafu Village,450,223, +0,1060,135680,3610,Mata-Utu,1,245, +0,1061,135680,3610,Mata-Utu,1,245, +0,1062,135680,3610,Mata-Utu,1,245, +0,1063,135680,3610,Mata-Utu,1,245, +0,1064,136192,3610,Mata-Utu,2,245, +0,1065,136192,3610,Mata-Utu,2,245, +0,1066,136192,3610,Mata-Utu,2,245, +0,1067,136192,3610,Mata-Utu,2,245, +0,1068,136704,3610,Mata-Utu,5,245, +0,1069,136704,3610,Mata-Utu,5,245, +0,1070,136704,3610,Mata-Utu,5,245, +0,1071,136704,3610,Mata-Utu,5,245, +0,1072,137216,3610,Mata-Utu,9,245, +0,1073,137216,3610,Mata-Utu,9,245, +0,1074,137216,3610,Mata-Utu,9,245, +0,1075,137216,3610,Mata-Utu,9,245, +0,1076,137728,3610,Mata-Utu,14,245, +0,1077,137728,3610,Mata-Utu,14,245, +0,1078,137728,3610,Mata-Utu,14,245, +0,1079,137728,3610,Mata-Utu,14,245, +0,1080,138240,3609,Leava,1,245, +0,1081,138240,3609,Leava,1,245, +0,1082,138240,3609,Leava,1,245, +0,1083,138240,3609,Leava,1,245, +0,1084,138752,3609,Leava,2,245, +0,1085,138752,3609,Leava,2,245, +0,1086,138752,3609,Leava,2,245, +0,1087,138752,3609,Leava,2,245, +0,1088,139264,3609,Leava,3,245, +0,1089,139264,3609,Leava,3,245, +0,1090,139264,3609,Leava,3,245, +0,1091,139264,3609,Leava,3,245, +0,1092,139776,3609,Leava,5,245, +0,1093,139776,3609,Leava,5,245, +0,1094,139776,3609,Leava,5,245, +0,1095,139776,3609,Leava,5,245, +0,1096,140288,3609,Leava,7,245, +0,1097,140288,3609,Leava,7,245, +0,1098,140288,3609,Leava,7,245, +0,1099,140288,3609,Leava,7,245, +0,1100,140800,3609,Leava,10,245, +0,1101,140800,3609,Leava,10,245, +0,1102,140800,3609,Leava,10,245, +0,1103,140800,3609,Leava,10,245, +0,1104,141312,3609,Leava,13,245, +0,1105,141312,3609,Leava,13,245, +0,1106,141312,3609,Leava,13,245, +0,1107,141312,3609,Leava,13,245, +0,1108,141824,3609,Leava,16,245, +0,1109,141824,3609,Leava,16,245, +0,1110,141824,3609,Leava,16,245, +0,1111,141824,3609,Leava,16,245, +0,1112,142336,3609,Leava,19,245, +0,1113,142336,3609,Leava,19,245, +0,1114,142336,3609,Leava,19,245, +0,1115,142336,3609,Leava,19,245, +0,1116,142848,3609,Leava,21,245, +0,1117,142848,3609,Leava,21,245, +0,1118,142848,3609,Leava,21,245, +0,1119,142848,3609,Leava,21,245, +0,1120,143360,3609,Leava,23,245, +0,1121,143360,3609,Leava,23,245, +0,1122,143360,3609,Leava,23,245, +0,1123,143360,3609,Leava,23,245, +0,1124,143872,3609,Leava,25,245, +0,1125,143872,3609,Leava,25,245, +0,1126,143872,3609,Leava,25,245, +0,1127,143872,3609,Leava,25,245, +0,1128,144384,3609,Leava,26,245, +0,1129,144384,3609,Leava,26,245, +0,1130,144384,3609,Leava,26,245, +0,1131,144384,3609,Leava,26,245, +0,1132,144896,3253,Nuku‘alofa,4,224, +0,1133,144896,3253,Nuku‘alofa,4,224, +0,1134,144896,3253,Nuku‘alofa,4,224, +0,1135,144896,3253,Nuku‘alofa,4,224, +0,1136,145408,3253,Nuku‘alofa,9,224, +0,1137,145408,3253,Nuku‘alofa,9,224, +0,1138,145408,3253,Nuku‘alofa,9,224, +0,1139,145408,3253,Nuku‘alofa,9,224, +0,1140,145920,3253,Nuku‘alofa,16,224, +0,1141,145920,3253,Nuku‘alofa,16,224, +0,1142,145920,3253,Nuku‘alofa,16,224, +0,1143,145920,3253,Nuku‘alofa,16,224, +0,1144,146432,3253,Nuku‘alofa,24,224, +0,1145,146432,3253,Nuku‘alofa,24,224, +0,1146,146432,3253,Nuku‘alofa,24,224, +0,1147,146432,3253,Nuku‘alofa,24,224, +0,1148,146944,3253,Nuku‘alofa,32,224, +0,1149,146944,3253,Nuku‘alofa,32,224, +0,1150,146944,3253,Nuku‘alofa,32,224, +0,1151,146944,3253,Nuku‘alofa,32,224, +0,1152,147456,3253,Nuku‘alofa,39,224, +0,1153,147456,3253,Nuku‘alofa,39,224, +0,1154,147456,3253,Nuku‘alofa,39,224, +0,1155,147456,3253,Nuku‘alofa,39,224, +0,1156,147968,3253,Nuku‘alofa,45,224, +0,1157,147968,3253,Nuku‘alofa,45,224, +0,1158,147968,3253,Nuku‘alofa,45,224, +0,1159,147968,3253,Nuku‘alofa,45,224, +0,1160,148480,3253,Nuku‘alofa,51,224, +0,1161,148480,3253,Nuku‘alofa,51,224, +0,1162,148480,3253,Nuku‘alofa,51,224, +0,1163,148480,3253,Nuku‘alofa,51,224, +0,1164,148992,3253,Nuku‘alofa,56,224, +0,1165,148992,3253,Nuku‘alofa,56,224, +0,1166,148992,3253,Nuku‘alofa,56,224, +0,1167,148992,3253,Nuku‘alofa,56,224, +0,1168,149504,3253,Nuku‘alofa,60,224, +0,1169,149504,3253,Nuku‘alofa,60,224, +0,1170,149504,3253,Nuku‘alofa,60,224, +0,1171,149504,3253,Nuku‘alofa,60,224, +0,1172,150016,3253,Nuku‘alofa,63,224, +0,1173,150016,3253,Nuku‘alofa,63,224, +0,1174,150016,3253,Nuku‘alofa,63,224, +0,1175,150016,3253,Nuku‘alofa,63,224, +0,1176,150528,3253,Nuku‘alofa,66,224, +0,1177,150528,3253,Nuku‘alofa,66,224, +0,1178,150528,3253,Nuku‘alofa,66,224, +0,1179,150528,3253,Nuku‘alofa,66,224, +0,1180,151040,3253,Nuku‘alofa,68,224, +0,1181,151040,3253,Nuku‘alofa,68,224, +0,1182,151040,3253,Nuku‘alofa,68,224, +0,1183,151040,3253,Nuku‘alofa,68,224, +0,1184,151552,3252,‘Ohonua,88,224, +0,1185,151552,3252,‘Ohonua,88,224, +0,1186,151552,3252,‘Ohonua,88,224, +0,1187,151552,3252,‘Ohonua,88,224, +0,1188,152064,3252,‘Ohonua,104,224, +0,1189,152064,3252,‘Ohonua,104,224, +0,1190,152064,3252,‘Ohonua,104,224, +0,1191,152064,3252,‘Ohonua,104,224, +0,1192,152576,3252,‘Ohonua,120,224, +0,1193,152576,3252,‘Ohonua,120,224, +0,1194,152576,3252,‘Ohonua,120,224, +0,1195,152576,3252,‘Ohonua,120,224, +0,1196,153088,3252,‘Ohonua,137,224, +0,1197,153088,3252,‘Ohonua,137,224, +0,1198,153088,3252,‘Ohonua,137,224, +0,1199,153088,3252,‘Ohonua,137,224, +0,1200,153600,3252,‘Ohonua,154,224, +0,1201,153600,3252,‘Ohonua,154,224, +0,1202,153600,3252,‘Ohonua,154,224, +0,1203,153600,3252,‘Ohonua,154,224, +0,1204,154112,3252,‘Ohonua,172,224, +0,1205,154112,3252,‘Ohonua,172,224, +0,1206,154112,3252,‘Ohonua,172,224, +0,1207,154112,3252,‘Ohonua,172,224, +0,1208,154624,3252,‘Ohonua,190,224, +0,1209,154624,3252,‘Ohonua,190,224, +0,1210,154624,3252,‘Ohonua,190,224, +0,1211,154624,3252,‘Ohonua,190,224, +0,1212,155136,3252,‘Ohonua,208,224, +0,1213,155136,3252,‘Ohonua,208,224, +0,1214,155136,3252,‘Ohonua,208,224, +0,1215,155136,3252,‘Ohonua,208,224, +0,1216,155648,3252,‘Ohonua,226,224, +0,1217,155648,3252,‘Ohonua,226,224, +0,1218,155648,3252,‘Ohonua,226,224, +0,1219,155648,3252,‘Ohonua,226,224, +0,1220,156160,2317,Waitangi,1,155, +0,1221,156160,2317,Waitangi,1,155, +0,1222,156160,2317,Waitangi,1,155, +0,1223,156160,2317,Waitangi,1,155, +0,1224,156672,2317,Waitangi,6,155, +0,1225,156672,2317,Waitangi,6,155, +0,1226,156672,2317,Waitangi,6,155, +0,1227,156672,2317,Waitangi,6,155, +0,1228,157184,2317,Waitangi,23,155, +0,1229,157184,2317,Waitangi,23,155, +0,1230,157184,2317,Waitangi,23,155, +0,1231,157184,2317,Waitangi,23,155, +0,1232,157696,2317,Waitangi,42,155, +0,1233,157696,2317,Waitangi,42,155, +0,1234,157696,2317,Waitangi,42,155, +0,1235,157696,2317,Waitangi,42,155, +0,1236,158208,2317,Waitangi,62,155, +0,1237,158208,2317,Waitangi,62,155, +0,1238,158208,2317,Waitangi,62,155, +0,1239,158208,2317,Waitangi,62,155, +0,1240,158720,2317,Waitangi,83,155, +0,1241,158720,2317,Waitangi,83,155, +0,1242,158720,2317,Waitangi,83,155, +0,1243,158720,2317,Waitangi,83,155, +0,1244,159232,2317,Waitangi,105,155, +0,1245,159232,2317,Waitangi,105,155, +0,1246,159232,2317,Waitangi,105,155, +0,1247,159232,2317,Waitangi,105,155, +0,1248,159744,2317,Waitangi,128,155, +0,1249,159744,2317,Waitangi,128,155, +0,1250,159744,2317,Waitangi,128,155, +0,1251,159744,2317,Waitangi,128,155, +0,1252,160256,2317,Waitangi,152,155, +0,1253,160256,2317,Waitangi,152,155, +0,1254,160256,2317,Waitangi,152,155, +0,1255,160256,2317,Waitangi,152,155, +0,1256,160768,2317,Waitangi,177,155, +0,1257,160768,2317,Waitangi,177,155, +0,1258,160768,2317,Waitangi,177,155, +0,1259,160768,2317,Waitangi,177,155, +0,1260,161280,2317,Waitangi,203,155, +0,1261,161280,2317,Waitangi,203,155, +0,1262,161280,2317,Waitangi,203,155, +0,1263,161280,2317,Waitangi,203,155, +0,1264,161792,2317,Waitangi,230,155, +0,1265,161792,2317,Waitangi,230,155, +0,1266,161792,2317,Waitangi,230,155, +0,1267,161792,2317,Waitangi,230,155, +0,1268,162304,2317,Waitangi,258,155, +0,1269,162304,2317,Waitangi,258,155, +0,1270,162304,2317,Waitangi,258,155, +0,1271,162304,2317,Waitangi,258,155, +0,1272,162816,2317,Waitangi,287,155, +0,1273,162816,2317,Waitangi,287,155, +0,1274,162816,2317,Waitangi,287,155, +0,1275,162816,2317,Waitangi,287,155, +0,1276,163328,2317,Waitangi,318,155, +0,1277,163328,2317,Waitangi,318,155, +0,1278,163328,2317,Waitangi,318,155, +0,1279,163328,2317,Waitangi,318,155, +0,1280,163840,2317,Waitangi,350,155, +0,1281,163840,2317,Waitangi,350,155, +0,1282,163840,2317,Waitangi,350,155, +0,1283,163840,2317,Waitangi,350,155, +0,1284,164352,2317,Waitangi,383,155, +0,1285,164352,2317,Waitangi,383,155, +0,1286,164352,2317,Waitangi,383,155, +0,1287,164352,2317,Waitangi,383,155, +0,1288,164864,2317,Waitangi,417,155, +0,1289,164864,2317,Waitangi,417,155, +0,1290,164864,2317,Waitangi,417,155, +0,1291,164864,2317,Waitangi,417,155, +0,1292,165376,2317,Waitangi,452,155, +0,1293,165376,2317,Waitangi,452,155, +0,1294,165376,2317,Waitangi,452,155, +0,1295,165376,2317,Waitangi,452,155, +0,1296,165888,2317,Waitangi,488,155, +0,1297,165888,2317,Waitangi,488,155, +0,1298,165888,2317,Waitangi,488,155, +0,1299,165888,2317,Waitangi,488,155, +0,1300,166400,2317,Waitangi,525,155, +0,1301,166400,2317,Waitangi,525,155, +0,1302,166400,2317,Waitangi,525,155, +0,1303,166400,2317,Waitangi,525,155, +0,1304,166912,2317,Waitangi,563,155, +0,1305,166912,2317,Waitangi,563,155, +0,1306,166912,2317,Waitangi,563,155, +0,1307,166912,2317,Waitangi,563,155, +0,1308,167424,2317,Waitangi,602,155, +0,1309,167424,2317,Waitangi,602,155, +0,1310,167424,2317,Waitangi,602,155, +0,1311,167424,2317,Waitangi,602,155, +0,1312,167936,2317,Waitangi,642,155, +0,1313,167936,2317,Waitangi,642,155, +0,1314,167936,2317,Waitangi,642,155, +0,1315,167936,2317,Waitangi,642,155, +0,1316,168448,2317,Waitangi,682,155, +0,1317,168448,2317,Waitangi,682,155, +0,1318,168448,2317,Waitangi,682,155, +0,1319,168448,2317,Waitangi,682,155, +0,1320,168960,2317,Waitangi,723,155, +0,1321,168960,2317,Waitangi,723,155, +0,1322,168960,2317,Waitangi,723,155, +0,1323,168960,2317,Waitangi,723,155, +0,1324,169472,2317,Waitangi,765,155, +0,1325,169472,2317,Waitangi,765,155, +0,1326,169472,2317,Waitangi,765,155, +0,1327,169472,2317,Waitangi,765,155, +0,1328,169984,2317,Waitangi,808,155, +0,1329,169984,2317,Waitangi,808,155, +0,1330,169984,2317,Waitangi,808,155, +0,1331,169984,2317,Waitangi,808,155, +0,1332,170496,2317,Waitangi,852,155, +0,1333,170496,2317,Waitangi,852,155, +0,1334,170496,2317,Waitangi,852,155, +0,1335,170496,2317,Waitangi,852,155, +0,1336,171008,2317,Waitangi,898,155, +0,1337,171008,2317,Waitangi,898,155, +0,1338,171008,2317,Waitangi,898,155, +0,1339,171008,2317,Waitangi,898,155, +0,1340,171520,2317,Waitangi,944,155, +0,1341,171520,2317,Waitangi,944,155, +0,1342,171520,2317,Waitangi,944,155, +0,1343,171520,2317,Waitangi,944,155, +0,1344,172032,2317,Waitangi,991,155, +0,1345,172032,2317,Waitangi,991,155, +0,1346,172032,2317,Waitangi,991,155, +0,1347,172032,2317,Waitangi,991,155, +0,1348,172544,2317,Waitangi,1038,155, +0,1349,172544,2317,Waitangi,1038,155, +0,1350,172544,2317,Waitangi,1038,155, +0,1351,172544,2317,Waitangi,1038,155, +0,1352,173056,2317,Waitangi,1085,155, +0,1353,173056,2317,Waitangi,1085,155, +0,1354,173056,2317,Waitangi,1085,155, +0,1355,173056,2317,Waitangi,1085,155, +0,1356,173568,2317,Waitangi,1132,155, +0,1357,173568,2317,Waitangi,1132,155, +0,1358,173568,2317,Waitangi,1132,155, +0,1359,173568,2317,Waitangi,1132,155, +0,1360,174080,2317,Waitangi,1180,155, +0,1361,174080,2317,Waitangi,1180,155, +0,1362,174080,2317,Waitangi,1180,155, +0,1363,174080,2317,Waitangi,1180,155, +0,1364,174592,2317,Waitangi,1228,155, +0,1365,174592,2317,Waitangi,1228,155, +0,1366,174592,2317,Waitangi,1228,155, +0,1367,174592,2317,Waitangi,1228,155, +0,1368,175104,2317,Waitangi,1276,155, +0,1369,175104,2317,Waitangi,1276,155, +0,1370,175104,2317,Waitangi,1276,155, +0,1371,175104,2317,Waitangi,1276,155, +0,1372,175616,2317,Waitangi,1324,155, +0,1373,175616,2317,Waitangi,1324,155, +0,1374,175616,2317,Waitangi,1324,155, +0,1375,175616,2317,Waitangi,1324,155, +0,1376,176128,2317,Waitangi,1373,155, +0,1377,176128,2317,Waitangi,1373,155, +0,1378,176128,2317,Waitangi,1373,155, +0,1379,176128,2317,Waitangi,1373,155, +0,1380,176640,2317,Waitangi,1422,155, +0,1381,176640,2317,Waitangi,1422,155, +0,1382,176640,2317,Waitangi,1422,155, +0,1383,176640,2317,Waitangi,1422,155, +0,1384,177152,2317,Waitangi,1471,155, +0,1385,177152,2317,Waitangi,1471,155, +0,1386,177152,2317,Waitangi,1471,155, +0,1387,177152,2317,Waitangi,1471,155, +0,1388,177664,2317,Waitangi,1520,155, +0,1389,177664,2317,Waitangi,1520,155, +0,1390,177664,2317,Waitangi,1520,155, +0,1391,177664,2317,Waitangi,1520,155, +0,1392,178176,2317,Waitangi,1570,155, +0,1393,178176,2317,Waitangi,1570,155, +0,1394,178176,2317,Waitangi,1570,155, +0,1395,178176,2317,Waitangi,1570,155, +0,1396,178688,2317,Waitangi,1620,155, +0,1397,178688,2317,Waitangi,1620,155, +0,1398,178688,2317,Waitangi,1620,155, +0,1399,178688,2317,Waitangi,1620,155, +0,1400,179200,2317,Waitangi,1670,155, +0,1401,179200,2317,Waitangi,1670,155, +0,1402,179200,2317,Waitangi,1670,155, +0,1403,179200,2317,Waitangi,1670,155, +0,1404,179712,2317,Waitangi,1720,155, +0,1405,179712,2317,Waitangi,1720,155, +0,1406,179712,2317,Waitangi,1720,155, +0,1407,179712,2317,Waitangi,1720,155, +0,1408,180224,2317,Waitangi,1771,155, +0,1409,180224,2317,Waitangi,1771,155, +0,1410,180224,2317,Waitangi,1771,155, +0,1411,180224,2317,Waitangi,1771,155, +0,1412,180736,2317,Waitangi,1822,155, +0,1413,180736,2317,Waitangi,1822,155, +0,1414,180736,2317,Waitangi,1822,155, +0,1415,180736,2317,Waitangi,1822,155, +0,1416,181248,2317,Waitangi,1873,155, +0,1417,181248,2317,Waitangi,1873,155, +0,1418,181248,2317,Waitangi,1873,155, +0,1419,181248,2317,Waitangi,1873,155, +0,1420,181760,2317,Waitangi,1924,155, +0,1421,181760,2317,Waitangi,1924,155, +0,1422,181760,2317,Waitangi,1924,155, +0,1423,181760,2317,Waitangi,1924,155, +0,1424,182272,2317,Waitangi,1976,155, +0,1425,182272,2317,Waitangi,1976,155, +0,1426,182272,2317,Waitangi,1976,155, +0,1427,182272,2317,Waitangi,1976,155, +0,1428,182784,2317,Waitangi,2028,155, +0,1429,182784,2317,Waitangi,2028,155, +0,1430,182784,2317,Waitangi,2028,155, +0,1431,182784,2317,Waitangi,2028,155, +0,1432,183296,2317,Waitangi,2080,155, +0,1433,183296,2317,Waitangi,2080,155, +0,1434,183296,2317,Waitangi,2080,155, +0,1435,183296,2317,Waitangi,2080,155, +0,1436,183808,2317,Waitangi,2132,155, +0,1437,183808,2317,Waitangi,2132,155, +0,1438,183808,2317,Waitangi,2132,155, +0,1439,183808,2317,Waitangi,2132,155, +0,1440,184320,2317,Waitangi,2184,155, +0,1441,184320,2317,Waitangi,2184,155, +0,1442,184320,2317,Waitangi,2184,155, +0,1443,184320,2317,Waitangi,2184,155, +0,1444,184832,2317,Waitangi,2237,155, +0,1445,184832,2317,Waitangi,2237,155, +0,1446,184832,2317,Waitangi,2237,155, +0,1447,184832,2317,Waitangi,2237,155, +0,1448,185344,2317,Waitangi,2290,155, +0,1449,185344,2317,Waitangi,2290,155, +0,1450,185344,2317,Waitangi,2290,155, +0,1451,185344,2317,Waitangi,2290,155, +0,1452,185856,2317,Waitangi,2343,155, +0,1453,185856,2317,Waitangi,2343,155, +0,1454,185856,2317,Waitangi,2343,155, +0,1455,185856,2317,Waitangi,2343,155, +0,1456,186368,2317,Waitangi,2396,155, +0,1457,186368,2317,Waitangi,2396,155, +0,1458,186368,2317,Waitangi,2396,155, +0,1459,186368,2317,Waitangi,2396,155, +0,1460,186880,2317,Waitangi,2449,155, +0,1461,186880,2317,Waitangi,2449,155, +0,1462,186880,2317,Waitangi,2449,155, +0,1463,186880,2317,Waitangi,2449,155, +0,1464,187392,2317,Waitangi,2503,155, +0,1465,187392,2317,Waitangi,2503,155, +0,1466,187392,2317,Waitangi,2503,155, +0,1467,187392,2317,Waitangi,2503,155, +0,1468,187904,2317,Waitangi,2557,155, +0,1469,187904,2317,Waitangi,2557,155, +0,1470,187904,2317,Waitangi,2557,155, +0,1471,187904,2317,Waitangi,2557,155, +0,1472,188416,2317,Waitangi,2611,155, +0,1473,188416,2317,Waitangi,2611,155, +0,1474,188416,2317,Waitangi,2611,155, +0,1475,188416,2317,Waitangi,2611,155, +0,1476,188928,2317,Waitangi,2665,155, +0,1477,188928,2317,Waitangi,2665,155, +0,1478,188928,2317,Waitangi,2665,155, +0,1479,188928,2317,Waitangi,2665,155, +0,1480,189440,2317,Waitangi,2719,155, +0,1481,189440,2317,Waitangi,2719,155, +0,1482,189440,2317,Waitangi,2719,155, +0,1483,189440,2317,Waitangi,2719,155, +0,1484,189952,2317,Waitangi,2774,155, +0,1485,189952,2317,Waitangi,2774,155, +0,1486,189952,2317,Waitangi,2774,155, +0,1487,189952,2317,Waitangi,2774,155, +0,1488,190464,2317,Waitangi,2829,155, +0,1489,190464,2317,Waitangi,2829,155, +0,1490,190464,2317,Waitangi,2829,155, +0,1491,190464,2317,Waitangi,2829,155, +0,1492,190976,2317,Waitangi,2884,155, +0,1493,190976,2317,Waitangi,2884,155, +0,1494,190976,2317,Waitangi,2884,155, +0,1495,190976,2317,Waitangi,2884,155, +0,1496,191488,2317,Waitangi,2939,155, +0,1497,191488,2317,Waitangi,2939,155, +0,1498,191488,2317,Waitangi,2939,155, +0,1499,191488,2317,Waitangi,2939,155, +0,1500,192000,2317,Waitangi,2994,155, +0,1501,192000,2317,Waitangi,2994,155, +0,1502,192000,2317,Waitangi,2994,155, +0,1503,192000,2317,Waitangi,2994,155, +0,1504,192512,2317,Waitangi,3049,155, +0,1505,192512,2317,Waitangi,3049,155, +0,1506,192512,2317,Waitangi,3049,155, +0,1507,192512,2317,Waitangi,3049,155, +0,1508,193024,2317,Waitangi,3105,155, +0,1509,193024,2317,Waitangi,3105,155, +0,1510,193024,2317,Waitangi,3105,155, +0,1511,193024,2317,Waitangi,3105,155, +0,1512,193536,2317,Waitangi,3161,155, +0,1513,193536,2317,Waitangi,3161,155, +0,1514,193536,2317,Waitangi,3161,155, +0,1515,193536,2317,Waitangi,3161,155, +0,1516,194048,2317,Waitangi,3217,155, +0,1517,194048,2317,Waitangi,3217,155, +0,1518,194048,2317,Waitangi,3217,155, +0,1519,194048,2317,Waitangi,3217,155, +0,1520,194560,2317,Waitangi,3273,155, +0,1521,194560,2317,Waitangi,3273,155, +0,1522,194560,2317,Waitangi,3273,155, +0,1523,194560,2317,Waitangi,3273,155, +0,1524,195072,2317,Waitangi,3329,155, +0,1525,195072,2317,Waitangi,3329,155, +0,1526,195072,2317,Waitangi,3329,155, +0,1527,195072,2317,Waitangi,3329,155, +0,1528,195584,2317,Waitangi,3385,155, +0,1529,195584,2317,Waitangi,3385,155, +0,1530,195584,2317,Waitangi,3385,155, +0,1531,195584,2317,Waitangi,3385,155, +0,1532,196096,2317,Waitangi,3442,155, +0,1533,196096,2317,Waitangi,3442,155, +0,1534,196096,2317,Waitangi,3442,155, +0,1535,196096,2317,Waitangi,3442,155, +0,1536,196608,2317,Waitangi,3499,155, +0,1537,196608,2317,Waitangi,3499,155, +0,1538,196608,2317,Waitangi,3499,155, +0,1539,196608,2317,Waitangi,3499,155, +0,1540,197120,2317,Waitangi,3556,155, +0,1541,197120,2317,Waitangi,3556,155, +0,1542,197120,2317,Waitangi,3556,155, +0,1543,197120,2317,Waitangi,3556,155, +0,1544,197632,2317,Waitangi,3613,155, +0,1545,197632,2317,Waitangi,3613,155, +0,1546,197632,2317,Waitangi,3613,155, +0,1547,197632,2317,Waitangi,3613,155, +0,1548,198144,2317,Waitangi,3670,155, +0,1549,198144,2317,Waitangi,3670,155, +0,1550,198144,2317,Waitangi,3670,155, +0,1551,198144,2317,Waitangi,3670,155, +0,1552,198656,2317,Waitangi,3727,155, +0,1553,198656,2317,Waitangi,3727,155, +0,1554,198656,2317,Waitangi,3727,155, +0,1555,198656,2317,Waitangi,3727,155, +0,1556,199168,2317,Waitangi,3785,155, +0,1557,199168,2317,Waitangi,3785,155, +0,1558,199168,2317,Waitangi,3785,155, +0,1559,199168,2317,Waitangi,3785,155, +0,1560,199680,2317,Waitangi,3843,155, +0,1561,199680,2317,Waitangi,3843,155, +0,1562,199680,2317,Waitangi,3843,155, +0,1563,199680,2317,Waitangi,3843,155, +0,1564,200192,2317,Waitangi,3901,155, +0,1565,200192,2317,Waitangi,3901,155, +0,1566,200192,2317,Waitangi,3901,155, +0,1567,200192,2317,Waitangi,3901,155, +0,1568,200704,2317,Waitangi,3959,155, +0,1569,200704,2317,Waitangi,3959,155, +0,1570,200704,2317,Waitangi,3959,155, +0,1571,200704,2317,Waitangi,3959,155, +0,1572,201216,2317,Waitangi,4017,155, +0,1573,201216,2317,Waitangi,4017,155, +0,1574,201216,2317,Waitangi,4017,155, +0,1575,201216,2317,Waitangi,4017,155, +0,1576,201728,2317,Waitangi,4075,155, +0,1577,201728,2317,Waitangi,4075,155, +0,1578,201728,2317,Waitangi,4075,155, +0,1579,201728,2317,Waitangi,4075,155, +0,1580,202240,2317,Waitangi,4133,155, +0,1581,202240,2317,Waitangi,4133,155, +0,1582,202240,2317,Waitangi,4133,155, +0,1583,202240,2317,Waitangi,4133,155, +0,1584,202752,2317,Waitangi,4192,155, +0,1585,202752,2317,Waitangi,4192,155, +0,1586,202752,2317,Waitangi,4192,155, +0,1587,202752,2317,Waitangi,4192,155, +0,1588,203264,2317,Waitangi,4251,155, +0,1589,203264,2317,Waitangi,4251,155, +0,1590,203264,2317,Waitangi,4251,155, +0,1591,203264,2317,Waitangi,4251,155, +0,1592,203776,2317,Waitangi,4310,155, +0,1593,203776,2317,Waitangi,4310,155, +0,1594,203776,2317,Waitangi,4310,155, +0,1595,203776,2317,Waitangi,4310,155, +0,1596,204288,2317,Waitangi,4369,155, +0,1597,204288,2317,Waitangi,4369,155, +0,1598,204288,2317,Waitangi,4369,155, +0,1599,204288,2317,Waitangi,4369,155, +0,1600,204800,2317,Waitangi,4428,155, +0,1601,204800,2317,Waitangi,4428,155, +0,1602,204800,2317,Waitangi,4428,155, +0,1603,204800,2317,Waitangi,4428,155, +0,1604,205312,2317,Waitangi,4487,155, +0,1605,205312,2317,Waitangi,4487,155, +0,1606,205312,2317,Waitangi,4487,155, +0,1607,205312,2317,Waitangi,4487,155, +0,1608,205824,2317,Waitangi,4546,155, +0,1609,205824,2317,Waitangi,4546,155, +0,1610,205824,2317,Waitangi,4546,155, +0,1611,205824,2317,Waitangi,4546,155, +0,1612,206336,2317,Waitangi,4606,155, +0,1613,206336,2317,Waitangi,4606,155, +0,1614,206336,2317,Waitangi,4606,155, +0,1615,206336,2317,Waitangi,4606,155, +0,1616,206848,2317,Waitangi,4666,155, +0,1617,206848,2317,Waitangi,4666,155, +0,1618,206848,2317,Waitangi,4666,155, +0,1619,206848,2317,Waitangi,4666,155, +0,1620,207360,2317,Waitangi,4726,155, +0,1621,207360,2317,Waitangi,4726,155, +0,1622,207360,2317,Waitangi,4726,155, +0,1623,207360,2317,Waitangi,4726,155, +0,1624,207872,2317,Waitangi,4786,155, +0,1625,207872,2317,Waitangi,4786,155, +0,1626,207872,2317,Waitangi,4786,155, +0,1627,207872,2317,Waitangi,4786,155, +0,1628,208384,2317,Waitangi,4846,155, +0,1629,208384,2317,Waitangi,4846,155, +0,1630,208384,2317,Waitangi,4846,155, +0,1631,208384,2317,Waitangi,4846,155, +0,1632,208896,2317,Waitangi,4906,155, +0,1633,208896,2317,Waitangi,4906,155, +0,1634,208896,2317,Waitangi,4906,155, +0,1635,208896,2317,Waitangi,4906,155, +0,1636,209408,2317,Waitangi,4966,155, +0,1637,209408,2317,Waitangi,4966,155, +0,1638,209408,2317,Waitangi,4966,155, +0,1639,209408,2317,Waitangi,4966,155, +0,1640,209920,2317,Waitangi,5026,155, +0,1641,209920,2317,Waitangi,5026,155, +0,1642,209920,2317,Waitangi,5026,155, +0,1643,209920,2317,Waitangi,5026,155, +0,1644,210432,2317,Waitangi,5087,155, +0,1645,210432,2317,Waitangi,5087,155, +0,1646,210432,2317,Waitangi,5087,155, +0,1647,210432,2317,Waitangi,5087,155, +0,1648,210944,2317,Waitangi,5148,155, +0,1649,210944,2317,Waitangi,5148,155, +0,1650,210944,2317,Waitangi,5148,155, +0,1651,210944,2317,Waitangi,5148,155, +0,1652,211456,2317,Waitangi,5209,155, +0,1653,211456,2317,Waitangi,5209,155, +0,1654,211456,2317,Waitangi,5209,155, +0,1655,211456,2317,Waitangi,5209,155, +0,1656,211968,2317,Waitangi,5270,155, +0,1657,211968,2317,Waitangi,5270,155, +0,1658,211968,2317,Waitangi,5270,155, +0,1659,211968,2317,Waitangi,5270,155, +0,1660,212480,2317,Waitangi,5331,155, +0,1661,212480,2317,Waitangi,5331,155, +0,1662,212480,2317,Waitangi,5331,155, +0,1663,212480,2317,Waitangi,5331,155, +0,1664,212992,2317,Waitangi,5392,155, +0,1665,212992,2317,Waitangi,5392,155, +0,1666,212992,2317,Waitangi,5392,155, +0,1667,212992,2317,Waitangi,5392,155, +0,1668,213504,2317,Waitangi,5453,155, +0,1669,213504,2317,Waitangi,5453,155, +0,1670,213504,2317,Waitangi,5453,155, +0,1671,213504,2317,Waitangi,5453,155, +0,1672,214016,2317,Waitangi,5514,155, +0,1673,214016,2317,Waitangi,5514,155, +0,1674,214016,2317,Waitangi,5514,155, +0,1675,214016,2317,Waitangi,5514,155, +0,1676,214528,2317,Waitangi,5575,155, +0,1677,214528,2317,Waitangi,5575,155, +0,1678,214528,2317,Waitangi,5575,155, +0,1679,214528,2317,Waitangi,5575,155, +0,1680,215040,2317,Waitangi,5637,155, +0,1681,215040,2317,Waitangi,5637,155, +0,1682,215040,2317,Waitangi,5637,155, +0,1683,215040,2317,Waitangi,5637,155, +0,1684,215552,2317,Waitangi,5699,155, +0,1685,215552,2317,Waitangi,5699,155, +0,1686,215552,2317,Waitangi,5699,155, +0,1687,215552,2317,Waitangi,5699,155, +0,1688,216064,2317,Waitangi,5761,155, +0,1689,216064,2317,Waitangi,5761,155, +0,1690,216064,2317,Waitangi,5761,155, +0,1691,216064,2317,Waitangi,5761,155, +0,1692,216576,2317,Waitangi,5823,155, +0,1693,216576,2317,Waitangi,5823,155, +0,1694,216576,2317,Waitangi,5823,155, +0,1695,216576,2317,Waitangi,5823,155, +0,1696,217088,2317,Waitangi,5885,155, +0,1697,217088,2317,Waitangi,5885,155, +0,1698,217088,2317,Waitangi,5885,155, +0,1699,217088,2317,Waitangi,5885,155, +0,1700,217600,2317,Waitangi,5947,155, +0,1701,217600,2317,Waitangi,5947,155, +0,1702,217600,2317,Waitangi,5947,155, +0,1703,217600,2317,Waitangi,5947,155, +0,1704,218112,2317,Waitangi,6009,155, +0,1705,218112,2317,Waitangi,6009,155, +0,1706,218112,2317,Waitangi,6009,155, +0,1707,218112,2317,Waitangi,6009,155, +0,1708,218624,2317,Waitangi,6071,155, +0,1709,218624,2317,Waitangi,6071,155, +0,1710,218624,2317,Waitangi,6071,155, +0,1711,218624,2317,Waitangi,6071,155, +0,1712,219136,2317,Waitangi,6133,155, +0,1713,219136,2317,Waitangi,6133,155, +0,1714,219136,2317,Waitangi,6133,155, +0,1715,219136,2317,Waitangi,6133,155, +0,1716,219648,2317,Waitangi,6196,155, +0,1717,219648,2317,Waitangi,6196,155, +0,1718,219648,2317,Waitangi,6196,155, +0,1719,219648,2317,Waitangi,6196,155, +0,1720,220160,2317,Waitangi,6259,155, +0,1721,220160,2317,Waitangi,6259,155, +0,1722,220160,2317,Waitangi,6259,155, +0,1723,220160,2317,Waitangi,6259,155, +0,1724,220672,2317,Waitangi,6322,155, +0,1725,220672,2317,Waitangi,6322,155, +0,1726,220672,2317,Waitangi,6322,155, +0,1727,220672,2317,Waitangi,6322,155, +0,1728,221184,2317,Waitangi,6385,155, +0,1729,221184,2317,Waitangi,6385,155, +0,1730,221184,2317,Waitangi,6385,155, +0,1731,221184,2317,Waitangi,6385,155, +0,1732,221696,2317,Waitangi,6448,155, +0,1733,221696,2317,Waitangi,6448,155, +0,1734,221696,2317,Waitangi,6448,155, +0,1735,221696,2317,Waitangi,6448,155, +0,1736,222208,2317,Waitangi,6511,155, +0,1737,222208,2317,Waitangi,6511,155, +0,1738,222208,2317,Waitangi,6511,155, +0,1739,222208,2317,Waitangi,6511,155, +0,1740,222720,2317,Waitangi,6574,155, +0,1741,222720,2317,Waitangi,6574,155, +0,1742,222720,2317,Waitangi,6574,155, +0,1743,222720,2317,Waitangi,6574,155, +0,1744,223232,2317,Waitangi,6637,155, +0,1745,223232,2317,Waitangi,6637,155, +0,1746,223232,2317,Waitangi,6637,155, +0,1747,223232,2317,Waitangi,6637,155, +0,1748,223744,2317,Waitangi,6700,155, +0,1749,223744,2317,Waitangi,6700,155, +0,1750,223744,2317,Waitangi,6700,155, +0,1751,223744,2317,Waitangi,6700,155, +0,1752,224256,2317,Waitangi,6763,155, +0,1753,224256,2317,Waitangi,6763,155, +0,1754,224256,2317,Waitangi,6763,155, +0,1755,224256,2317,Waitangi,6763,155, +0,1756,224768,2317,Waitangi,6826,155, +0,1757,224768,2317,Waitangi,6826,155, +0,1758,224768,2317,Waitangi,6826,155, +0,1759,224768,2317,Waitangi,6826,155, +0,1760,225280,2317,Waitangi,6889,155, +0,1761,225280,2317,Waitangi,6889,155, +0,1762,225280,2317,Waitangi,6889,155, +0,1763,225280,2317,Waitangi,6889,155, +0,1764,225792,2317,Waitangi,6953,155, +0,1765,225792,2317,Waitangi,6953,155, +0,1766,225792,2317,Waitangi,6953,155, +0,1767,225792,2317,Waitangi,6953,155, +0,1768,226304,2317,Waitangi,7017,155, +0,1769,226304,2317,Waitangi,7017,155, +0,1770,226304,2317,Waitangi,7017,155, +0,1771,226304,2317,Waitangi,7017,155, +0,1772,226816,2317,Waitangi,7081,155, +0,1773,226816,2317,Waitangi,7081,155, +0,1774,226816,2317,Waitangi,7081,155, +0,1775,226816,2317,Waitangi,7081,155, +0,1776,227328,2317,Waitangi,7145,155, +0,1777,227328,2317,Waitangi,7145,155, +0,1778,227328,2317,Waitangi,7145,155, +0,1779,227328,2317,Waitangi,7145,155, +0,1780,227840,2317,Waitangi,7209,155, +0,1781,227840,2317,Waitangi,7209,155, +0,1782,227840,2317,Waitangi,7209,155, +0,1783,227840,2317,Waitangi,7209,155, +0,1784,228352,2317,Waitangi,7273,155, +0,1785,228352,2317,Waitangi,7273,155, +0,1786,228352,2317,Waitangi,7273,155, +0,1787,228352,2317,Waitangi,7273,155, +0,1788,228864,2317,Waitangi,7337,155, +0,1789,228864,2317,Waitangi,7337,155, +0,1790,228864,2317,Waitangi,7337,155, +0,1791,228864,2317,Waitangi,7337,155, +0,1792,229376,2317,Waitangi,7401,155, +0,1793,229376,2317,Waitangi,7401,155, +0,1794,229376,2317,Waitangi,7401,155, +0,1795,229376,2317,Waitangi,7401,155, +0,1796,229888,2317,Waitangi,7465,155, +0,1797,229888,2317,Waitangi,7465,155, +0,1798,229888,2317,Waitangi,7465,155, +0,1799,229888,2317,Waitangi,7465,155, +0,1800,230400,2317,Waitangi,7529,155, +0,1801,230400,2317,Waitangi,7529,155, +0,1802,230400,2317,Waitangi,7529,155, +0,1803,230400,2317,Waitangi,7529,155, +0,1804,230912,2317,Waitangi,7593,155, +0,1805,230912,2317,Waitangi,7593,155, +0,1806,230912,2317,Waitangi,7593,155, +0,1807,230912,2317,Waitangi,7593,155, +0,1808,231424,2317,Waitangi,7657,155, +0,1809,231424,2317,Waitangi,7657,155, +0,1810,231424,2317,Waitangi,7657,155, +0,1811,231424,2317,Waitangi,7657,155, +0,1812,231936,2317,Waitangi,7722,155, +0,1813,231936,2317,Waitangi,7722,155, +0,1814,231936,2317,Waitangi,7722,155, +0,1815,231936,2317,Waitangi,7722,155, +0,1816,232448,2317,Waitangi,7787,155, +0,1817,232448,2317,Waitangi,7787,155, +0,1818,232448,2317,Waitangi,7787,155, +0,1819,232448,2317,Waitangi,7787,155, +0,1820,232960,2317,Waitangi,7852,155, +0,1821,232960,2317,Waitangi,7852,155, +0,1822,232960,2317,Waitangi,7852,155, +0,1823,232960,2317,Waitangi,7852,155, +0,1824,233472,2317,Waitangi,7917,155, +0,1825,233472,2317,Waitangi,7917,155, +0,1826,233472,2317,Waitangi,7917,155, +0,1827,233472,2317,Waitangi,7917,155, +0,1828,233984,2317,Waitangi,7982,155, +0,1829,233984,2317,Waitangi,7982,155, +0,1830,233984,2317,Waitangi,7982,155, +0,1831,233984,2317,Waitangi,7982,155, +0,1832,234496,2317,Waitangi,8047,155, +0,1833,234496,2317,Waitangi,8047,155, +0,1834,234496,2317,Waitangi,8047,155, +0,1835,234496,2317,Waitangi,8047,155, +0,1836,235008,2317,Waitangi,8112,155, +0,1837,235008,2317,Waitangi,8112,155, +0,1838,235008,2317,Waitangi,8112,155, +0,1839,235008,2317,Waitangi,8112,155, +0,1840,235520,2317,Waitangi,8177,155, +0,1841,235520,2317,Waitangi,8177,155, +0,1842,235520,2317,Waitangi,8177,155, +0,1843,235520,2317,Waitangi,8177,155, +0,1844,236032,2317,Waitangi,8242,155, +0,1845,236032,2317,Waitangi,8242,155, +0,1846,236032,2317,Waitangi,8242,155, +0,1847,236032,2317,Waitangi,8242,155, +0,1848,236544,2317,Waitangi,8307,155, +0,1849,236544,2317,Waitangi,8307,155, +0,1850,236544,2317,Waitangi,8307,155, +0,1851,236544,2317,Waitangi,8307,155, +0,1852,237056,2317,Waitangi,8372,155, +0,1853,237056,2317,Waitangi,8372,155, +0,1854,237056,2317,Waitangi,8372,155, +0,1855,237056,2317,Waitangi,8372,155, +0,1856,237568,2317,Waitangi,8437,155, +0,1857,237568,2317,Waitangi,8437,155, +0,1858,237568,2317,Waitangi,8437,155, +0,1859,237568,2317,Waitangi,8437,155, +0,1860,238080,2317,Waitangi,8502,155, +0,1861,238080,2317,Waitangi,8502,155, +0,1862,238080,2317,Waitangi,8502,155, +0,1863,238080,2317,Waitangi,8502,155, +0,1864,238592,2317,Waitangi,8567,155, +0,1865,238592,2317,Waitangi,8567,155, +0,1866,238592,2317,Waitangi,8567,155, +0,1867,238592,2317,Waitangi,8567,155, +0,1868,239104,2317,Waitangi,8632,155, +0,1869,239104,2317,Waitangi,8632,155, +0,1870,239104,2317,Waitangi,8632,155, +0,1871,239104,2317,Waitangi,8632,155, +0,1872,239616,2317,Waitangi,8697,155, +0,1873,239616,2317,Waitangi,8697,155, +0,1874,239616,2317,Waitangi,8697,155, +0,1875,239616,2317,Waitangi,8697,155, +0,1876,240128,2317,Waitangi,8763,155, +0,1877,240128,2317,Waitangi,8763,155, +0,1878,240128,2317,Waitangi,8763,155, +0,1879,240128,2317,Waitangi,8763,155, +0,1880,240640,2317,Waitangi,8829,155, +0,1881,240640,2317,Waitangi,8829,155, +0,1882,240640,2317,Waitangi,8829,155, +0,1883,240640,2317,Waitangi,8829,155, +0,1884,241152,2317,Waitangi,8895,155, +0,1885,241152,2317,Waitangi,8895,155, +0,1886,241152,2317,Waitangi,8895,155, +0,1887,241152,2317,Waitangi,8895,155, +0,1888,241664,2317,Waitangi,8961,155, +0,1889,241664,2317,Waitangi,8961,155, +0,1890,241664,2317,Waitangi,8961,155, +0,1891,241664,2317,Waitangi,8961,155, +0,1892,242176,2317,Waitangi,9027,155, +0,1893,242176,2317,Waitangi,9027,155, +0,1894,242176,2317,Waitangi,9027,155, +0,1895,242176,2317,Waitangi,9027,155, +0,1896,242688,2317,Waitangi,9093,155, +0,1897,242688,2317,Waitangi,9093,155, +0,1898,242688,2317,Waitangi,9093,155, +0,1899,242688,2317,Waitangi,9093,155, +0,1900,243200,2317,Waitangi,9159,155, +0,1901,243200,2317,Waitangi,9159,155, +0,1902,243200,2317,Waitangi,9159,155, +0,1903,243200,2317,Waitangi,9159,155, +0,1904,243712,2317,Waitangi,9225,155, +0,1905,243712,2317,Waitangi,9225,155, +0,1906,243712,2317,Waitangi,9225,155, +0,1907,243712,2317,Waitangi,9225,155, +0,1908,244224,2317,Waitangi,9291,155, +0,1909,244224,2317,Waitangi,9291,155, +0,1910,244224,2317,Waitangi,9291,155, +0,1911,244224,2317,Waitangi,9291,155, +0,1912,244736,2317,Waitangi,9357,155, +0,1913,244736,2317,Waitangi,9357,155, +0,1914,244736,2317,Waitangi,9357,155, +0,1915,244736,2317,Waitangi,9357,155, +0,1916,245248,2317,Waitangi,9423,155, +0,1917,245248,2317,Waitangi,9423,155, +0,1918,245248,2317,Waitangi,9423,155, +0,1919,245248,2317,Waitangi,9423,155, +0,1920,245760,2317,Waitangi,9489,155, +0,1921,245760,2317,Waitangi,9489,155, +0,1922,245760,2317,Waitangi,9489,155, +0,1923,245760,2317,Waitangi,9489,155, +0,1924,246272,2317,Waitangi,9555,155, +0,1925,246272,2317,Waitangi,9555,155, +0,1926,246272,2317,Waitangi,9555,155, +0,1927,246272,2317,Waitangi,9555,155, +0,1928,246784,2317,Waitangi,9621,155, +0,1929,246784,2317,Waitangi,9621,155, +0,1930,246784,2317,Waitangi,9621,155, +0,1931,246784,2317,Waitangi,9621,155, +0,1932,247296,2317,Waitangi,9687,155, +0,1933,247296,2317,Waitangi,9687,155, +0,1934,247296,2317,Waitangi,9687,155, +0,1935,247296,2317,Waitangi,9687,155, +0,1936,247808,2317,Waitangi,9753,155, +0,1937,247808,2317,Waitangi,9753,155, +0,1938,247808,2317,Waitangi,9753,155, +0,1939,247808,2317,Waitangi,9753,155, +0,1940,248320,2317,Waitangi,9819,155, +0,1941,248320,2317,Waitangi,9819,155, +0,1942,248320,2317,Waitangi,9819,155, +0,1943,248320,2317,Waitangi,9819,155, +0,1944,248832,2317,Waitangi,9885,155, +0,1945,248832,2317,Waitangi,9885,155, +0,1946,248832,2317,Waitangi,9885,155, +0,1947,248832,2317,Waitangi,9885,155, +0,1948,249344,2317,Waitangi,9952,155, +0,1949,249344,2317,Waitangi,9952,155, +0,1950,249344,2317,Waitangi,9952,155, +0,1951,249344,2317,Waitangi,9952,155, +0,1952,249856,2317,Waitangi,10019,155, +0,1953,249856,2317,Waitangi,10019,155, +0,1954,249856,2317,Waitangi,10019,155, +0,1955,249856,2317,Waitangi,10019,155, +0,1956,250368,2317,Waitangi,10086,155, +0,1957,250368,2317,Waitangi,10086,155, +0,1958,250368,2317,Waitangi,10086,155, +0,1959,250368,2317,Waitangi,10086,155, +0,1960,250880,2317,Waitangi,10153,155, +0,1961,250880,2317,Waitangi,10153,155, +0,1962,250880,2317,Waitangi,10153,155, +0,1963,250880,2317,Waitangi,10153,155, +0,1964,251392,2317,Waitangi,10220,155, +0,1965,251392,2317,Waitangi,10220,155, +0,1966,251392,2317,Waitangi,10220,155, +0,1967,251392,2317,Waitangi,10220,155, +0,1968,251904,2317,Waitangi,10287,155, +0,1969,251904,2317,Waitangi,10287,155, +0,1970,251904,2317,Waitangi,10287,155, +0,1971,251904,2317,Waitangi,10287,155, +0,1972,252416,2317,Waitangi,10354,155, +0,1973,252416,2317,Waitangi,10354,155, +0,1974,252416,2317,Waitangi,10354,155, +0,1975,252416,2317,Waitangi,10354,155, +0,1976,252928,2317,Waitangi,10421,155, +0,1977,252928,2317,Waitangi,10421,155, +0,1978,252928,2317,Waitangi,10421,155, +0,1979,252928,2317,Waitangi,10421,155, +0,1980,253440,2317,Waitangi,10488,155, +0,1981,253440,2317,Waitangi,10488,155, +0,1982,253440,2317,Waitangi,10488,155, +0,1983,253440,2317,Waitangi,10488,155, +0,1984,253952,2317,Waitangi,10555,155, +0,1985,253952,2317,Waitangi,10555,155, +0,1986,253952,2317,Waitangi,10555,155, +0,1987,253952,2317,Waitangi,10555,155, +0,1988,254464,2317,Waitangi,10622,155, +0,1989,254464,2317,Waitangi,10622,155, +0,1990,254464,2317,Waitangi,10622,155, +0,1991,254464,2317,Waitangi,10622,155, +0,1992,254976,2317,Waitangi,10689,155, +0,1993,254976,2317,Waitangi,10689,155, +0,1994,254976,2317,Waitangi,10689,155, +0,1995,254976,2317,Waitangi,10689,155, +0,1996,255488,2317,Waitangi,10756,155, +0,1997,255488,2317,Waitangi,10756,155, +0,1998,255488,2317,Waitangi,10756,155, +0,1999,255488,2317,Waitangi,10756,155, +0,2000,256000,2317,Waitangi,10823,155, +0,2001,256000,2317,Waitangi,10823,155, +0,2002,256000,2317,Waitangi,10823,155, +0,2003,256000,2317,Waitangi,10823,155, +0,2004,256512,2317,Waitangi,10890,155, +0,2005,256512,2317,Waitangi,10890,155, +0,2006,256512,2317,Waitangi,10890,155, +0,2007,256512,2317,Waitangi,10890,155, +0,2008,257024,2317,Waitangi,10957,155, +0,2009,257024,2317,Waitangi,10957,155, +0,2010,257024,2317,Waitangi,10957,155, +0,2011,257024,2317,Waitangi,10957,155, +0,2012,257536,2317,Waitangi,11024,155, +0,2013,257536,2317,Waitangi,11024,155, +0,2014,257536,2317,Waitangi,11024,155, +0,2015,257536,2317,Waitangi,11024,155, +0,2016,258048,2317,Waitangi,11091,155, +0,2017,258048,2317,Waitangi,11091,155, +0,2018,258048,2317,Waitangi,11091,155, +0,2019,258048,2317,Waitangi,11091,155, +0,2020,258560,2317,Waitangi,11158,155, +0,2021,258560,2317,Waitangi,11158,155, +0,2022,258560,2317,Waitangi,11158,155, +0,2023,258560,2317,Waitangi,11158,155, +0,2024,259072,2317,Waitangi,11225,155, +0,2025,259072,2317,Waitangi,11225,155, +0,2026,259072,2317,Waitangi,11225,155, +0,2027,259072,2317,Waitangi,11225,155, +0,2028,259584,2317,Waitangi,11292,155, +0,2029,259584,2317,Waitangi,11292,155, +0,2030,259584,2317,Waitangi,11292,155, +0,2031,259584,2317,Waitangi,11292,155, +0,2032,260096,2317,Waitangi,11359,155, +0,2033,260096,2317,Waitangi,11359,155, +0,2034,260096,2317,Waitangi,11359,155, +0,2035,260096,2317,Waitangi,11359,155, +0,2036,260608,2317,Waitangi,11426,155, +0,2037,260608,2317,Waitangi,11426,155, +0,2038,260608,2317,Waitangi,11426,155, +0,2039,260608,2317,Waitangi,11426,155, +0,2040,261120,2317,Waitangi,11493,155, +0,2041,261120,2317,Waitangi,11493,155, +0,2042,261120,2317,Waitangi,11493,155, +0,2043,261120,2317,Waitangi,11493,155, +0,2044,261632,2317,Waitangi,11560,155, +0,2045,261632,2317,Waitangi,11560,155, +0,2046,261632,2317,Waitangi,11560,155, +0,2047,261632,2317,Waitangi,11560,155, +1,0,0,6919,Anchorage,1,235, +1,1,0,6919,Anchorage,1,235, +1,2,0,6919,Anchorage,1,235, +1,3,0,6919,Anchorage,1,235, +1,4,512,6919,Anchorage,56,235, +1,5,512,6919,Anchorage,56,235, +1,6,512,6919,Anchorage,56,235, +1,7,512,6919,Anchorage,56,235, +1,8,1024,6919,Anchorage,111,235, +1,9,1024,6919,Anchorage,111,235, +1,10,1024,6919,Anchorage,111,235, +1,11,1024,6919,Anchorage,111,235, +1,12,1536,6919,Anchorage,166,235, +1,13,1536,6919,Anchorage,166,235, +1,14,1536,6919,Anchorage,166,235, +1,15,1536,6919,Anchorage,166,235, +1,16,2048,6919,Anchorage,221,235, +1,17,2048,6919,Anchorage,221,235, +1,18,2048,6919,Anchorage,221,235, +1,19,2048,6919,Anchorage,221,235, +1,20,2560,6919,Anchorage,276,235, +1,21,2560,6919,Anchorage,276,235, +1,22,2560,6919,Anchorage,276,235, +1,23,2560,6919,Anchorage,276,235, +1,24,3072,6919,Anchorage,331,235, +1,25,3072,6919,Anchorage,331,235, +1,26,3072,6919,Anchorage,331,235, +1,27,3072,6919,Anchorage,331,235, +1,28,3584,6919,Anchorage,386,235, +1,29,3584,6919,Anchorage,386,235, +1,30,3584,6919,Anchorage,386,235, +1,31,3584,6919,Anchorage,386,235, +1,32,4096,6919,Anchorage,441,235, +1,33,4096,6919,Anchorage,441,235, +1,34,4096,6919,Anchorage,441,235, +1,35,4096,6919,Anchorage,441,235, +1,36,4608,6919,Anchorage,496,235, +1,37,4608,6919,Anchorage,496,235, +1,38,4608,6919,Anchorage,496,235, +1,39,4608,6919,Anchorage,496,235, +1,40,5120,6919,Anchorage,551,235, +1,41,5120,6919,Anchorage,551,235, +1,42,5120,6919,Anchorage,551,235, +1,43,5120,6919,Anchorage,551,235, +1,44,5632,6919,Anchorage,606,235, +1,45,5632,6919,Anchorage,606,235, +1,46,5632,6919,Anchorage,606,235, +1,47,5632,6919,Anchorage,606,235, +1,48,6144,6919,Anchorage,661,235, +1,49,6144,6919,Anchorage,661,235, +1,50,6144,6919,Anchorage,661,235, +1,51,6144,6919,Anchorage,661,235, +1,52,6656,6919,Anchorage,716,235, +1,53,6656,6919,Anchorage,716,235, +1,54,6656,6919,Anchorage,716,235, +1,55,6656,6919,Anchorage,716,235, +1,56,7168,6919,Anchorage,771,235, +1,57,7168,6919,Anchorage,771,235, +1,58,7168,6919,Anchorage,771,235, +1,59,7168,6919,Anchorage,771,235, +1,60,7680,6919,Anchorage,826,235, +1,61,7680,6919,Anchorage,826,235, +1,62,7680,6919,Anchorage,826,235, +1,63,7680,6919,Anchorage,826,235, +1,64,8192,6919,Anchorage,881,235, +1,65,8192,6919,Anchorage,881,235, +1,66,8192,6919,Anchorage,881,235, +1,67,8192,6919,Anchorage,881,235, +1,68,8704,6919,Anchorage,936,235, +1,69,8704,6919,Anchorage,936,235, +1,70,8704,6919,Anchorage,936,235, +1,71,8704,6919,Anchorage,936,235, +1,72,9216,6919,Anchorage,991,235, +1,73,9216,6919,Anchorage,991,235, +1,74,9216,6919,Anchorage,991,235, +1,75,9216,6919,Anchorage,991,235, +1,76,9728,6919,Anchorage,1046,235, +1,77,9728,6919,Anchorage,1046,235, +1,78,9728,6919,Anchorage,1046,235, +1,79,9728,6919,Anchorage,1046,235, +1,80,10240,6919,Anchorage,1101,235, +1,81,10240,6919,Anchorage,1101,235, +1,82,10240,6919,Anchorage,1101,235, +1,83,10240,6919,Anchorage,1101,235, +1,84,10752,6919,Anchorage,1156,235, +1,85,10752,6919,Anchorage,1156,235, +1,86,10752,6919,Anchorage,1156,235, +1,87,10752,6919,Anchorage,1156,235, +1,88,11264,6919,Anchorage,1211,235, +1,89,11264,6919,Anchorage,1211,235, +1,90,11264,6919,Anchorage,1211,235, +1,91,11264,6919,Anchorage,1211,235, +1,92,11776,6919,Anchorage,1266,235, +1,93,11776,6919,Anchorage,1266,235, +1,94,11776,6919,Anchorage,1266,235, +1,95,11776,6919,Anchorage,1266,235, +1,96,12288,6919,Anchorage,1321,235, +1,97,12288,6919,Anchorage,1321,235, +1,98,12288,6919,Anchorage,1321,235, +1,99,12288,6919,Anchorage,1321,235, +1,100,12800,6919,Anchorage,1376,235, +1,101,12800,6919,Anchorage,1376,235, +1,102,12800,6919,Anchorage,1376,235, +1,103,12800,6919,Anchorage,1376,235, +1,104,13312,6919,Anchorage,1431,235, +1,105,13312,6919,Anchorage,1431,235, +1,106,13312,6919,Anchorage,1431,235, +1,107,13312,6919,Anchorage,1431,235, +1,108,13824,6919,Anchorage,1486,235, +1,109,13824,6919,Anchorage,1486,235, +1,110,13824,6919,Anchorage,1486,235, +1,111,13824,6919,Anchorage,1486,235, +1,112,14336,6919,Anchorage,1541,235, +1,113,14336,6919,Anchorage,1541,235, +1,114,14336,6919,Anchorage,1541,235, +1,115,14336,6919,Anchorage,1541,235, +1,116,14848,6919,Anchorage,1596,235, +1,117,14848,6919,Anchorage,1596,235, +1,118,14848,6919,Anchorage,1596,235, +1,119,14848,6919,Anchorage,1596,235, +1,120,15360,6919,Anchorage,1651,235, +1,121,15360,6919,Anchorage,1651,235, +1,122,15360,6919,Anchorage,1651,235, +1,123,15360,6919,Anchorage,1651,235, +1,124,15872,6919,Anchorage,1706,235, +1,125,15872,6919,Anchorage,1706,235, +1,126,15872,6919,Anchorage,1706,235, +1,127,15872,6919,Anchorage,1706,235, +1,128,16384,6919,Anchorage,1761,235, +1,129,16384,6919,Anchorage,1761,235, +1,130,16384,6919,Anchorage,1761,235, +1,131,16384,6919,Anchorage,1761,235, +1,132,16896,6919,Anchorage,1816,235, +1,133,16896,6919,Anchorage,1816,235, +1,134,16896,6919,Anchorage,1816,235, +1,135,16896,6919,Anchorage,1816,235, +1,136,17408,6919,Anchorage,1871,235, +1,137,17408,6919,Anchorage,1871,235, +1,138,17408,6919,Anchorage,1871,235, +1,139,17408,6919,Anchorage,1871,235, +1,140,17920,6919,Anchorage,1926,235, +1,141,17920,6919,Anchorage,1926,235, +1,142,17920,6919,Anchorage,1926,235, +1,143,17920,6919,Anchorage,1926,235, +1,144,18432,6919,Anchorage,1981,235, +1,145,18432,6919,Anchorage,1981,235, +1,146,18432,6919,Anchorage,1981,235, +1,147,18432,6919,Anchorage,1981,235, +1,148,18944,6919,Anchorage,2036,235, +1,149,18944,6919,Anchorage,2036,235, +1,150,18944,6919,Anchorage,2036,235, +1,151,18944,6919,Anchorage,2036,235, +1,152,19456,6919,Anchorage,2091,235, +1,153,19456,6919,Anchorage,2091,235, +1,154,19456,6919,Anchorage,2091,235, +1,155,19456,6919,Anchorage,2091,235, +1,156,19968,6919,Anchorage,2146,235, +1,157,19968,6919,Anchorage,2146,235, +1,158,19968,6919,Anchorage,2146,235, +1,159,19968,6919,Anchorage,2146,235, +1,160,20480,6919,Anchorage,2201,235, +1,161,20480,6919,Anchorage,2201,235, +1,162,20480,6919,Anchorage,2201,235, +1,163,20480,6919,Anchorage,2201,235, +1,164,20992,6919,Anchorage,2256,235, +1,165,20992,6919,Anchorage,2256,235, +1,166,20992,6919,Anchorage,2256,235, +1,167,20992,6919,Anchorage,2256,235, +1,168,21504,6919,Anchorage,2311,235, +1,169,21504,6919,Anchorage,2311,235, +1,170,21504,6919,Anchorage,2311,235, +1,171,21504,6919,Anchorage,2311,235, +1,172,22016,6919,Anchorage,2366,235, +1,173,22016,6919,Anchorage,2366,235, +1,174,22016,6919,Anchorage,2366,235, +1,175,22016,6919,Anchorage,2366,235, +1,176,22528,6919,Anchorage,2421,235, +1,177,22528,6919,Anchorage,2421,235, +1,178,22528,6919,Anchorage,2421,235, +1,179,22528,6919,Anchorage,2421,235, +1,180,23040,6919,Anchorage,2476,235, +1,181,23040,6919,Anchorage,2476,235, +1,182,23040,6919,Anchorage,2476,235, +1,183,23040,6919,Anchorage,2476,235, +1,184,23552,6919,Anchorage,2531,235, +1,185,23552,6919,Anchorage,2531,235, +1,186,23552,6919,Anchorage,2531,235, +1,187,23552,6919,Anchorage,2531,235, +1,188,24064,6919,Anchorage,2586,235, +1,189,24064,6919,Anchorage,2586,235, +1,190,24064,6919,Anchorage,2586,235, +1,191,24064,6919,Anchorage,2586,235, +1,192,24576,6919,Anchorage,2641,235, +1,193,24576,6919,Anchorage,2641,235, +1,194,24576,6919,Anchorage,2641,235, +1,195,24576,6919,Anchorage,2641,235, +1,196,25088,6919,Anchorage,2696,235, +1,197,25088,6919,Anchorage,2696,235, +1,198,25088,6919,Anchorage,2696,235, +1,199,25088,6919,Anchorage,2696,235, +1,200,25600,6919,Anchorage,2751,235, +1,201,25600,6919,Anchorage,2751,235, +1,202,25600,6919,Anchorage,2751,235, +1,203,25600,6919,Anchorage,2751,235, +1,204,26112,6919,Anchorage,2806,235, +1,205,26112,6919,Anchorage,2806,235, +1,206,26112,6919,Anchorage,2806,235, +1,207,26112,6919,Anchorage,2806,235, +1,208,26624,6919,Anchorage,2861,235, +1,209,26624,6919,Anchorage,2861,235, +1,210,26624,6919,Anchorage,2861,235, +1,211,26624,6919,Anchorage,2861,235, +1,212,27136,6919,Anchorage,2916,235, +1,213,27136,6919,Anchorage,2916,235, +1,214,27136,6919,Anchorage,2916,235, +1,215,27136,6919,Anchorage,2916,235, +1,216,27648,6919,Anchorage,2971,235, +1,217,27648,6919,Anchorage,2971,235, +1,218,27648,6919,Anchorage,2971,235, +1,219,27648,6919,Anchorage,2971,235, +1,220,28160,6919,Anchorage,3026,235, +1,221,28160,6919,Anchorage,3026,235, +1,222,28160,6919,Anchorage,3026,235, +1,223,28160,6919,Anchorage,3026,235, +1,224,28672,6919,Anchorage,3081,235, +1,225,28672,6919,Anchorage,3081,235, +1,226,28672,6919,Anchorage,3081,235, +1,227,28672,6919,Anchorage,3081,235, +1,228,29184,6919,Anchorage,3136,235, +1,229,29184,6919,Anchorage,3136,235, +1,230,29184,6919,Anchorage,3136,235, +1,231,29184,6919,Anchorage,3136,235, +1,232,29696,6919,Anchorage,3191,235, +1,233,29696,6919,Anchorage,3191,235, +1,234,29696,6919,Anchorage,3191,235, +1,235,29696,6919,Anchorage,3191,235, +1,236,30208,6919,Anchorage,3246,235, +1,237,30208,6919,Anchorage,3246,235, +1,238,30208,6919,Anchorage,3246,235, +1,239,30208,6919,Anchorage,3246,235, +1,240,30720,6919,Anchorage,3301,235, +1,241,30720,6919,Anchorage,3301,235, +1,242,30720,6919,Anchorage,3301,235, +1,243,30720,6919,Anchorage,3301,235, +1,244,31232,6919,Anchorage,3356,235, +1,245,31232,6919,Anchorage,3356,235, +1,246,31232,6919,Anchorage,3356,235, +1,247,31232,6919,Anchorage,3356,235, +1,248,31744,6919,Anchorage,3411,235, +1,249,31744,6919,Anchorage,3411,235, +1,250,31744,6919,Anchorage,3411,235, +1,251,31744,6919,Anchorage,3411,235, +1,252,32256,6919,Anchorage,3466,235, +1,253,32256,6919,Anchorage,3466,235, +1,254,32256,6919,Anchorage,3466,235, +1,255,32256,6919,Anchorage,3466,235, +1,256,32768,6919,Anchorage,3521,235, +1,257,32768,6919,Anchorage,3521,235, +1,258,32768,6919,Anchorage,3521,235, +1,259,32768,6919,Anchorage,3521,235, +1,260,33280,6919,Anchorage,3576,235, +1,261,33280,6919,Anchorage,3576,235, +1,262,33280,6919,Anchorage,3576,235, +1,263,33280,6919,Anchorage,3576,235, +1,264,33792,6919,Anchorage,3631,235, +1,265,33792,6919,Anchorage,3631,235, +1,266,33792,6919,Anchorage,3631,235, +1,267,33792,6919,Anchorage,3631,235, +1,268,34304,6919,Anchorage,3686,235, +1,269,34304,6919,Anchorage,3686,235, +1,270,34304,6919,Anchorage,3686,235, +1,271,34304,6919,Anchorage,3686,235, +1,272,34816,6919,Anchorage,3741,235, +1,273,34816,6919,Anchorage,3741,235, +1,274,34816,6919,Anchorage,3741,235, +1,275,34816,6919,Anchorage,3741,235, +1,276,35328,6919,Anchorage,3796,235, +1,277,35328,6919,Anchorage,3796,235, +1,278,35328,6919,Anchorage,3796,235, +1,279,35328,6919,Anchorage,3796,235, +1,280,35840,6919,Anchorage,3851,235, +1,281,35840,6919,Anchorage,3851,235, +1,282,35840,6919,Anchorage,3851,235, +1,283,35840,6919,Anchorage,3851,235, +1,284,36352,6919,Anchorage,3906,235, +1,285,36352,6919,Anchorage,3906,235, +1,286,36352,6919,Anchorage,3906,235, +1,287,36352,6919,Anchorage,3906,235, +1,288,36864,6919,Anchorage,3961,235, +1,289,36864,6919,Anchorage,3961,235, +1,290,36864,6919,Anchorage,3961,235, +1,291,36864,6919,Anchorage,3961,235, +1,292,37376,6919,Anchorage,4016,235, +1,293,37376,6919,Anchorage,4016,235, +1,294,37376,6919,Anchorage,4016,235, +1,295,37376,6919,Anchorage,4016,235, +1,296,37888,6919,Anchorage,4071,235, +1,297,37888,6919,Anchorage,4071,235, +1,298,37888,6919,Anchorage,4071,235, +1,299,37888,6919,Anchorage,4071,235, +1,300,38400,6919,Anchorage,4126,235, +1,301,38400,6919,Anchorage,4126,235, +1,302,38400,6919,Anchorage,4126,235, +1,303,38400,6919,Anchorage,4126,235, +1,304,38912,6919,Anchorage,4181,235, +1,305,38912,6919,Anchorage,4181,235, +1,306,38912,6919,Anchorage,4181,235, +1,307,38912,6919,Anchorage,4181,235, +1,308,39424,6919,Anchorage,4236,235, +1,309,39424,6919,Anchorage,4236,235, +1,310,39424,6919,Anchorage,4236,235, +1,311,39424,6919,Anchorage,4236,235, +1,312,39936,6919,Anchorage,4291,235, +1,313,39936,6919,Anchorage,4291,235, +1,314,39936,6919,Anchorage,4291,235, +1,315,39936,6919,Anchorage,4291,235, +1,316,40448,6919,Anchorage,4346,235, +1,317,40448,6919,Anchorage,4346,235, +1,318,40448,6919,Anchorage,4346,235, +1,319,40448,6919,Anchorage,4346,235, +1,320,40960,6919,Anchorage,4401,235, +1,321,40960,6919,Anchorage,4401,235, +1,322,40960,6919,Anchorage,4401,235, +1,323,40960,6919,Anchorage,4401,235, +1,324,41472,6919,Anchorage,4456,235, +1,325,41472,6919,Anchorage,4456,235, +1,326,41472,6919,Anchorage,4456,235, +1,327,41472,6919,Anchorage,4456,235, +1,328,41984,6919,Anchorage,4510,235, +1,329,41984,6919,Anchorage,4510,235, +1,330,41984,6919,Anchorage,4510,235, +1,331,41984,6919,Anchorage,4510,235, +1,332,42496,6919,Anchorage,4564,235, +1,333,42496,6919,Anchorage,4564,235, +1,334,42496,6919,Anchorage,4564,235, +1,335,42496,6919,Anchorage,4564,235, +1,336,43008,6919,Anchorage,4618,235, +1,337,43008,6919,Anchorage,4618,235, +1,338,43008,6919,Anchorage,4618,235, +1,339,43008,6919,Anchorage,4618,235, +1,340,43520,6919,Anchorage,4672,235, +1,341,43520,6919,Anchorage,4672,235, +1,342,43520,6919,Anchorage,4672,235, +1,343,43520,6919,Anchorage,4672,235, +1,344,44032,6919,Anchorage,4726,235, +1,345,44032,6919,Anchorage,4726,235, +1,346,44032,6919,Anchorage,4726,235, +1,347,44032,6919,Anchorage,4726,235, +1,348,44544,6919,Anchorage,4780,235, +1,349,44544,6919,Anchorage,4780,235, +1,350,44544,6919,Anchorage,4780,235, +1,351,44544,6919,Anchorage,4780,235, +1,352,45056,6919,Anchorage,4834,235, +1,353,45056,6919,Anchorage,4834,235, +1,354,45056,6919,Anchorage,4834,235, +1,355,45056,6919,Anchorage,4834,235, +1,356,45568,6919,Anchorage,4888,235, +1,357,45568,6919,Anchorage,4888,235, +1,358,45568,6919,Anchorage,4888,235, +1,359,45568,6919,Anchorage,4888,235, +1,360,46080,6919,Anchorage,4942,235, +1,361,46080,6919,Anchorage,4942,235, +1,362,46080,6919,Anchorage,4942,235, +1,363,46080,6919,Anchorage,4942,235, +1,364,46592,6919,Anchorage,4996,235, +1,365,46592,6919,Anchorage,4996,235, +1,366,46592,6919,Anchorage,4996,235, +1,367,46592,6919,Anchorage,4996,235, +1,368,47104,6919,Anchorage,5050,235, +1,369,47104,6919,Anchorage,5050,235, +1,370,47104,6919,Anchorage,5050,235, +1,371,47104,6919,Anchorage,5050,235, +1,372,47616,6919,Anchorage,5104,235, +1,373,47616,6919,Anchorage,5104,235, +1,374,47616,6919,Anchorage,5104,235, +1,375,47616,6919,Anchorage,5104,235, +1,376,48128,6919,Anchorage,5158,235, +1,377,48128,6919,Anchorage,5158,235, +1,378,48128,6919,Anchorage,5158,235, +1,379,48128,6919,Anchorage,5158,235, +1,380,48640,6919,Anchorage,5212,235, +1,381,48640,6919,Anchorage,5212,235, +1,382,48640,6919,Anchorage,5212,235, +1,383,48640,6919,Anchorage,5212,235, +1,384,49152,6919,Anchorage,5266,235, +1,385,49152,6919,Anchorage,5266,235, +1,386,49152,6919,Anchorage,5266,235, +1,387,49152,6919,Anchorage,5266,235, +1,388,49664,6919,Anchorage,5320,235, +1,389,49664,6919,Anchorage,5320,235, +1,390,49664,6919,Anchorage,5320,235, +1,391,49664,6919,Anchorage,5320,235, +1,392,50176,6919,Anchorage,5374,235, +1,393,50176,6919,Anchorage,5374,235, +1,394,50176,6919,Anchorage,5374,235, +1,395,50176,6919,Anchorage,5374,235, +1,396,50688,6919,Anchorage,5428,235, +1,397,50688,6919,Anchorage,5428,235, +1,398,50688,6919,Anchorage,5428,235, +1,399,50688,6919,Anchorage,5428,235, +1,400,51200,6919,Anchorage,5482,235, +1,401,51200,6919,Anchorage,5482,235, +1,402,51200,6919,Anchorage,5482,235, +1,403,51200,6919,Anchorage,5482,235, +1,404,51712,6919,Anchorage,5536,235, +1,405,51712,6919,Anchorage,5536,235, +1,406,51712,6919,Anchorage,5536,235, +1,407,51712,6919,Anchorage,5536,235, +1,408,52224,6919,Anchorage,5590,235, +1,409,52224,6919,Anchorage,5590,235, +1,410,52224,6919,Anchorage,5590,235, +1,411,52224,6919,Anchorage,5590,235, +1,412,52736,6919,Anchorage,5644,235, +1,413,52736,6919,Anchorage,5644,235, +1,414,52736,6919,Anchorage,5644,235, +1,415,52736,6919,Anchorage,5644,235, +1,416,53248,6919,Anchorage,5698,235, +1,417,53248,6919,Anchorage,5698,235, +1,418,53248,6919,Anchorage,5698,235, +1,419,53248,6919,Anchorage,5698,235, +1,420,53760,6919,Anchorage,5752,235, +1,421,53760,6919,Anchorage,5752,235, +1,422,53760,6919,Anchorage,5752,235, +1,423,53760,6919,Anchorage,5752,235, +1,424,54272,6919,Anchorage,5806,235, +1,425,54272,6919,Anchorage,5806,235, +1,426,54272,6919,Anchorage,5806,235, +1,427,54272,6919,Anchorage,5806,235, +1,428,54784,6919,Anchorage,5860,235, +1,429,54784,6919,Anchorage,5860,235, +1,430,54784,6919,Anchorage,5860,235, +1,431,54784,6919,Anchorage,5860,235, +1,432,55296,6919,Anchorage,5914,235, +1,433,55296,6919,Anchorage,5914,235, +1,434,55296,6919,Anchorage,5914,235, +1,435,55296,6919,Anchorage,5914,235, +1,436,55808,6919,Anchorage,5968,235, +1,437,55808,6919,Anchorage,5968,235, +1,438,55808,6919,Anchorage,5968,235, +1,439,55808,6919,Anchorage,5968,235, +1,440,56320,6919,Anchorage,6022,235, +1,441,56320,6919,Anchorage,6022,235, +1,442,56320,6919,Anchorage,6022,235, +1,443,56320,6919,Anchorage,6022,235, +1,444,56832,6919,Anchorage,6076,235, +1,445,56832,6919,Anchorage,6076,235, +1,446,56832,6919,Anchorage,6076,235, +1,447,56832,6919,Anchorage,6076,235, +1,448,57344,6919,Anchorage,6130,235, +1,449,57344,6919,Anchorage,6130,235, +1,450,57344,6919,Anchorage,6130,235, +1,451,57344,6919,Anchorage,6130,235, +1,452,57856,6919,Anchorage,6184,235, +1,453,57856,6919,Anchorage,6184,235, +1,454,57856,6919,Anchorage,6184,235, +1,455,57856,6919,Anchorage,6184,235, +1,456,58368,6919,Anchorage,6238,235, +1,457,58368,6919,Anchorage,6238,235, +1,458,58368,6919,Anchorage,6238,235, +1,459,58368,6919,Anchorage,6238,235, +1,460,58880,6919,Anchorage,6292,235, +1,461,58880,6919,Anchorage,6292,235, +1,462,58880,6919,Anchorage,6292,235, +1,463,58880,6919,Anchorage,6292,235, +1,464,59392,6919,Anchorage,6346,235, +1,465,59392,6919,Anchorage,6346,235, +1,466,59392,6919,Anchorage,6346,235, +1,467,59392,6919,Anchorage,6346,235, +1,468,59904,6919,Anchorage,6400,235, +1,469,59904,6919,Anchorage,6400,235, +1,470,59904,6919,Anchorage,6400,235, +1,471,59904,6919,Anchorage,6400,235, +1,472,60416,6919,Anchorage,6454,235, +1,473,60416,6919,Anchorage,6454,235, +1,474,60416,6919,Anchorage,6454,235, +1,475,60416,6919,Anchorage,6454,235, +1,476,60928,6919,Anchorage,6508,235, +1,477,60928,6919,Anchorage,6508,235, +1,478,60928,6919,Anchorage,6508,235, +1,479,60928,6919,Anchorage,6508,235, +1,480,61440,6919,Anchorage,6562,235, +1,481,61440,6919,Anchorage,6562,235, +1,482,61440,6919,Anchorage,6562,235, +1,483,61440,6919,Anchorage,6562,235, +1,484,61952,6919,Anchorage,6616,235, +1,485,61952,6919,Anchorage,6616,235, +1,486,61952,6919,Anchorage,6616,235, +1,487,61952,6919,Anchorage,6616,235, +1,488,62464,6919,Anchorage,6670,235, +1,489,62464,6919,Anchorage,6670,235, +1,490,62464,6919,Anchorage,6670,235, +1,491,62464,6919,Anchorage,6670,235, +1,492,62976,6919,Anchorage,6724,235, +1,493,62976,6919,Anchorage,6724,235, +1,494,62976,6919,Anchorage,6724,235, +1,495,62976,6919,Anchorage,6724,235, +1,496,63488,6919,Anchorage,6778,235, +1,497,63488,6919,Anchorage,6778,235, +1,498,63488,6919,Anchorage,6778,235, +1,499,63488,6919,Anchorage,6778,235, +1,500,64000,6919,Anchorage,6832,235, +1,501,64000,6919,Anchorage,6832,235, +1,502,64000,6919,Anchorage,6832,235, +1,503,64000,6919,Anchorage,6832,235, +1,504,64512,6919,Anchorage,6886,235, +1,505,64512,6919,Anchorage,6886,235, +1,506,64512,6919,Anchorage,6886,235, +1,507,64512,6919,Anchorage,6886,235, +1,508,65024,6919,Anchorage,6940,235, +1,509,65024,6919,Anchorage,6940,235, +1,510,65024,6919,Anchorage,6940,235, +1,511,65024,6919,Anchorage,6940,235, +1,512,65536,6919,Anchorage,6994,235, +1,513,65536,6919,Anchorage,6994,235, +1,514,65536,6919,Anchorage,6994,235, +1,515,65536,6919,Anchorage,6994,235, +1,516,66048,6919,Anchorage,7048,235, +1,517,66048,6919,Anchorage,7048,235, +1,518,66048,6919,Anchorage,7048,235, +1,519,66048,6919,Anchorage,7048,235, +1,520,66560,6919,Anchorage,7102,235, +1,521,66560,6919,Anchorage,7102,235, +1,522,66560,6919,Anchorage,7102,235, +1,523,66560,6919,Anchorage,7102,235, +1,524,67072,6919,Anchorage,7156,235, +1,525,67072,6919,Anchorage,7156,235, +1,526,67072,6919,Anchorage,7156,235, +1,527,67072,6919,Anchorage,7156,235, +1,528,67584,6919,Anchorage,7210,235, +1,529,67584,6919,Anchorage,7210,235, +1,530,67584,6919,Anchorage,7210,235, +1,531,67584,6919,Anchorage,7210,235, +1,532,68096,6919,Anchorage,7264,235, +1,533,68096,6919,Anchorage,7264,235, +1,534,68096,6919,Anchorage,7264,235, +1,535,68096,6919,Anchorage,7264,235, +1,536,68608,6919,Anchorage,7318,235, +1,537,68608,6919,Anchorage,7318,235, +1,538,68608,6919,Anchorage,7318,235, +1,539,68608,6919,Anchorage,7318,235, +1,540,69120,6919,Anchorage,7372,235, +1,541,69120,6919,Anchorage,7372,235, +1,542,69120,6919,Anchorage,7372,235, +1,543,69120,6919,Anchorage,7372,235, +1,544,69632,6919,Anchorage,7426,235, +1,545,69632,6919,Anchorage,7426,235, +1,546,69632,6919,Anchorage,7426,235, +1,547,69632,6919,Anchorage,7426,235, +1,548,70144,6919,Anchorage,7480,235, +1,549,70144,6919,Anchorage,7480,235, +1,550,70144,6919,Anchorage,7480,235, +1,551,70144,6919,Anchorage,7480,235, +1,552,70656,6919,Anchorage,7534,235, +1,553,70656,6919,Anchorage,7534,235, +1,554,70656,6919,Anchorage,7534,235, +1,555,70656,6919,Anchorage,7534,235, +1,556,71168,6919,Anchorage,7588,235, +1,557,71168,6919,Anchorage,7588,235, +1,558,71168,6919,Anchorage,7588,235, +1,559,71168,6919,Anchorage,7588,235, +1,560,71680,6919,Anchorage,7642,235, +1,561,71680,6919,Anchorage,7642,235, +1,562,71680,6919,Anchorage,7642,235, +1,563,71680,6919,Anchorage,7642,235, +1,564,72192,6919,Anchorage,7696,235, +1,565,72192,6919,Anchorage,7696,235, +1,566,72192,6919,Anchorage,7696,235, +1,567,72192,6919,Anchorage,7696,235, +1,568,72704,6919,Anchorage,7750,235, +1,569,72704,6919,Anchorage,7750,235, +1,570,72704,6919,Anchorage,7750,235, +1,571,72704,6919,Anchorage,7750,235, +1,572,73216,6919,Anchorage,7804,235, +1,573,73216,6919,Anchorage,7804,235, +1,574,73216,6919,Anchorage,7804,235, +1,575,73216,6919,Anchorage,7804,235, +1,576,73728,6919,Anchorage,7858,235, +1,577,73728,6919,Anchorage,7858,235, +1,578,73728,6919,Anchorage,7858,235, +1,579,73728,6919,Anchorage,7858,235, +1,580,74240,6919,Anchorage,7912,235, +1,581,74240,6919,Anchorage,7912,235, +1,582,74240,6919,Anchorage,7912,235, +1,583,74240,6919,Anchorage,7912,235, +1,584,74752,6919,Anchorage,7966,235, +1,585,74752,6919,Anchorage,7966,235, +1,586,74752,6919,Anchorage,7966,235, +1,587,74752,6919,Anchorage,7966,235, +1,588,75264,6919,Anchorage,8020,235, +1,589,75264,6919,Anchorage,8020,235, +1,590,75264,6919,Anchorage,8020,235, +1,591,75264,6919,Anchorage,8020,235, +1,592,75776,6919,Anchorage,8074,235, +1,593,75776,6919,Anchorage,8074,235, +1,594,75776,6919,Anchorage,8074,235, +1,595,75776,6919,Anchorage,8074,235, +1,596,76288,6919,Anchorage,8128,235, +1,597,76288,6919,Anchorage,8128,235, +1,598,76288,6919,Anchorage,8128,235, +1,599,76288,6919,Anchorage,8128,235, +1,600,76800,6919,Anchorage,8182,235, +1,601,76800,6919,Anchorage,8182,235, +1,602,76800,6919,Anchorage,8182,235, +1,603,76800,6919,Anchorage,8182,235, +1,604,77312,6919,Anchorage,8236,235, +1,605,77312,6919,Anchorage,8236,235, +1,606,77312,6919,Anchorage,8236,235, +1,607,77312,6919,Anchorage,8236,235, +1,608,77824,6919,Anchorage,8290,235, +1,609,77824,6919,Anchorage,8290,235, +1,610,77824,6919,Anchorage,8290,235, +1,611,77824,6919,Anchorage,8290,235, +1,612,78336,6919,Anchorage,8344,235, +1,613,78336,6919,Anchorage,8344,235, +1,614,78336,6919,Anchorage,8344,235, +1,615,78336,6919,Anchorage,8344,235, +1,616,78848,6919,Anchorage,8398,235, +1,617,78848,6919,Anchorage,8398,235, +1,618,78848,6919,Anchorage,8398,235, +1,619,78848,6919,Anchorage,8398,235, +1,620,79360,6919,Anchorage,8452,235, +1,621,79360,6919,Anchorage,8452,235, +1,622,79360,6919,Anchorage,8452,235, +1,623,79360,6919,Anchorage,8452,235, +1,624,79872,6919,Anchorage,8506,235, +1,625,79872,6919,Anchorage,8506,235, +1,626,79872,6919,Anchorage,8506,235, +1,627,79872,6919,Anchorage,8506,235, +1,628,80384,6919,Anchorage,8560,235, +1,629,80384,6919,Anchorage,8560,235, +1,630,80384,6919,Anchorage,8560,235, +1,631,80384,6919,Anchorage,8560,235, +1,632,80896,6919,Anchorage,8613,235, +1,633,80896,6919,Anchorage,8613,235, +1,634,80896,6919,Anchorage,8613,235, +1,635,80896,6919,Anchorage,8613,235, +1,636,81408,6919,Anchorage,8666,235, +1,637,81408,6919,Anchorage,8666,235, +1,638,81408,6919,Anchorage,8666,235, +1,639,81408,6919,Anchorage,8666,235, +1,640,81920,6919,Anchorage,8719,235, +1,641,81920,6919,Anchorage,8719,235, +1,642,81920,6919,Anchorage,8719,235, +1,643,81920,6919,Anchorage,8719,235, +1,644,82432,6919,Anchorage,8772,235, +1,645,82432,6919,Anchorage,8772,235, +1,646,82432,6919,Anchorage,8772,235, +1,647,82432,6919,Anchorage,8772,235, +1,648,82944,6919,Anchorage,8825,235, +1,649,82944,6919,Anchorage,8825,235, +1,650,82944,6919,Anchorage,8825,235, +1,651,82944,6919,Anchorage,8825,235, +1,652,83456,6919,Anchorage,8878,235, +1,653,83456,6919,Anchorage,8878,235, +1,654,83456,6919,Anchorage,8878,235, +1,655,83456,6919,Anchorage,8878,235, +1,656,83968,6919,Anchorage,8931,235, +1,657,83968,6919,Anchorage,8931,235, +1,658,83968,6919,Anchorage,8931,235, +1,659,83968,6919,Anchorage,8931,235, +1,660,84480,6919,Anchorage,8984,235, +1,661,84480,6919,Anchorage,8984,235, +1,662,84480,6919,Anchorage,8984,235, +1,663,84480,6919,Anchorage,8984,235, +1,664,84992,6919,Anchorage,9037,235, +1,665,84992,6919,Anchorage,9037,235, +1,666,84992,6919,Anchorage,9037,235, +1,667,84992,6919,Anchorage,9037,235, +1,668,85504,6919,Anchorage,9089,235, +1,669,85504,6919,Anchorage,9089,235, +1,670,85504,6919,Anchorage,9089,235, +1,671,85504,6919,Anchorage,9089,235, +1,672,86016,6919,Anchorage,9141,235, +1,673,86016,6919,Anchorage,9141,235, +1,674,86016,6919,Anchorage,9141,235, +1,675,86016,6919,Anchorage,9141,235, +1,676,86528,6919,Anchorage,9193,235, +1,677,86528,6919,Anchorage,9193,235, +1,678,86528,6919,Anchorage,9193,235, +1,679,86528,6919,Anchorage,9193,235, +1,680,87040,6919,Anchorage,9245,235, +1,681,87040,6919,Anchorage,9245,235, +1,682,87040,6919,Anchorage,9245,235, +1,683,87040,6919,Anchorage,9245,235, +1,684,87552,6919,Anchorage,9297,235, +1,685,87552,6919,Anchorage,9297,235, +1,686,87552,6919,Anchorage,9297,235, +1,687,87552,6919,Anchorage,9297,235, +1,688,88064,6919,Anchorage,9349,235, +1,689,88064,6919,Anchorage,9349,235, +1,690,88064,6919,Anchorage,9349,235, +1,691,88064,6919,Anchorage,9349,235, +1,692,88576,6919,Anchorage,9401,235, +1,693,88576,6919,Anchorage,9401,235, +1,694,88576,6919,Anchorage,9401,235, +1,695,88576,6919,Anchorage,9401,235, +1,696,89088,6919,Anchorage,9453,235, +1,697,89088,6919,Anchorage,9453,235, +1,698,89088,6919,Anchorage,9453,235, +1,699,89088,6919,Anchorage,9453,235, +1,700,89600,6919,Anchorage,9505,235, +1,701,89600,6919,Anchorage,9505,235, +1,702,89600,6919,Anchorage,9505,235, +1,703,89600,6919,Anchorage,9505,235, +1,704,90112,6919,Anchorage,9556,235, +1,705,90112,6919,Anchorage,9556,235, +1,706,90112,6919,Anchorage,9556,235, +1,707,90112,6919,Anchorage,9556,235, +1,708,90624,6919,Anchorage,9607,235, +1,709,90624,6919,Anchorage,9607,235, +1,710,90624,6919,Anchorage,9607,235, +1,711,90624,6919,Anchorage,9607,235, +1,712,91136,6919,Anchorage,9658,235, +1,713,91136,6919,Anchorage,9658,235, +1,714,91136,6919,Anchorage,9658,235, +1,715,91136,6919,Anchorage,9658,235, +1,716,91648,6919,Anchorage,9709,235, +1,717,91648,6919,Anchorage,9709,235, +1,718,91648,6919,Anchorage,9709,235, +1,719,91648,6919,Anchorage,9709,235, +1,720,92160,6919,Anchorage,9760,235, +1,721,92160,6919,Anchorage,9760,235, +1,722,92160,6919,Anchorage,9760,235, +1,723,92160,6919,Anchorage,9760,235, +1,724,92672,3471,Honolulu,1,235, +1,725,92672,3471,Honolulu,1,235, +1,726,92672,3471,Honolulu,1,235, +1,727,92672,3471,Honolulu,1,235, +1,728,93184,3471,Honolulu,4,235, +1,729,93184,3471,Honolulu,4,235, +1,730,93184,3471,Honolulu,4,235, +1,731,93184,3471,Honolulu,4,235, +1,732,93696,3471,Honolulu,11,235, +1,733,93696,3471,Honolulu,11,235, +1,734,93696,3471,Honolulu,11,235, +1,735,93696,3471,Honolulu,11,235, +1,736,94208,3471,Honolulu,21,235, +1,737,94208,3471,Honolulu,21,235, +1,738,94208,3471,Honolulu,21,235, +1,739,94208,3471,Honolulu,21,235, +1,740,94720,3471,Honolulu,35,235, +1,741,94720,3471,Honolulu,35,235, +1,742,94720,3471,Honolulu,35,235, +1,743,94720,3471,Honolulu,35,235, +1,744,95232,3471,Honolulu,53,235, +1,745,95232,3471,Honolulu,53,235, +1,746,95232,3471,Honolulu,53,235, +1,747,95232,3471,Honolulu,53,235, +1,748,95744,3471,Honolulu,74,235, +1,749,95744,3471,Honolulu,74,235, +1,750,95744,3471,Honolulu,74,235, +1,751,95744,3471,Honolulu,74,235, +1,752,96256,3471,Honolulu,99,235, +1,753,96256,3471,Honolulu,99,235, +1,754,96256,3471,Honolulu,99,235, +1,755,96256,3471,Honolulu,99,235, +1,756,96768,3471,Honolulu,128,235, +1,757,96768,3471,Honolulu,128,235, +1,758,96768,3471,Honolulu,128,235, +1,759,96768,3471,Honolulu,128,235, +1,760,97280,3471,Honolulu,160,235, +1,761,97280,3471,Honolulu,160,235, +1,762,97280,3471,Honolulu,160,235, +1,763,97280,3471,Honolulu,160,235, +1,764,97792,3471,Honolulu,196,235, +1,765,97792,3471,Honolulu,196,235, +1,766,97792,3471,Honolulu,196,235, +1,767,97792,3471,Honolulu,196,235, +1,768,98304,3471,Honolulu,236,235, +1,769,98304,3471,Honolulu,236,235, +1,770,98304,3471,Honolulu,236,235, +1,771,98304,3471,Honolulu,236,235, +1,772,98816,3471,Honolulu,280,235, +1,773,98816,3471,Honolulu,280,235, +1,774,98816,3471,Honolulu,280,235, +1,775,98816,3471,Honolulu,280,235, +1,776,99328,3471,Honolulu,327,235, +1,777,99328,3471,Honolulu,327,235, +1,778,99328,3471,Honolulu,327,235, +1,779,99328,3471,Honolulu,327,235, +1,780,99840,3471,Honolulu,377,235, +1,781,99840,3471,Honolulu,377,235, +1,782,99840,3471,Honolulu,377,235, +1,783,99840,3471,Honolulu,377,235, +1,784,100352,3471,Honolulu,428,235, +1,785,100352,3471,Honolulu,428,235, +1,786,100352,3471,Honolulu,428,235, +1,787,100352,3471,Honolulu,428,235, +1,788,100864,3471,Honolulu,479,235, +1,789,100864,3471,Honolulu,479,235, +1,790,100864,3471,Honolulu,479,235, +1,791,100864,3471,Honolulu,479,235, +1,792,101376,3471,Honolulu,530,235, +1,793,101376,3471,Honolulu,530,235, +1,794,101376,3471,Honolulu,530,235, +1,795,101376,3471,Honolulu,530,235, +1,796,101888,3471,Honolulu,582,235, +1,797,101888,3471,Honolulu,582,235, +1,798,101888,3471,Honolulu,582,235, +1,799,101888,3471,Honolulu,582,235, +1,800,102400,3471,Honolulu,634,235, +1,801,102400,3471,Honolulu,634,235, +1,802,102400,3471,Honolulu,634,235, +1,803,102400,3471,Honolulu,634,235, +1,804,102912,3471,Honolulu,687,235, +1,805,102912,3471,Honolulu,687,235, +1,806,102912,3471,Honolulu,687,235, +1,807,102912,3471,Honolulu,687,235, +1,808,103424,3471,Honolulu,740,235, +1,809,103424,3471,Honolulu,740,235, +1,810,103424,3471,Honolulu,740,235, +1,811,103424,3471,Honolulu,740,235, +1,812,103936,3471,Honolulu,793,235, +1,813,103936,3471,Honolulu,793,235, +1,814,103936,3471,Honolulu,793,235, +1,815,103936,3471,Honolulu,793,235, +1,816,104448,3471,Honolulu,847,235, +1,817,104448,3471,Honolulu,847,235, +1,818,104448,3471,Honolulu,847,235, +1,819,104448,3471,Honolulu,847,235, +1,820,104960,3471,Honolulu,901,235, +1,821,104960,3471,Honolulu,901,235, +1,822,104960,3471,Honolulu,901,235, +1,823,104960,3471,Honolulu,901,235, +1,824,105472,3471,Honolulu,956,235, +1,825,105472,3471,Honolulu,956,235, +1,826,105472,3471,Honolulu,956,235, +1,827,105472,3471,Honolulu,956,235, +1,828,105984,3471,Honolulu,1011,235, +1,829,105984,3471,Honolulu,1011,235, +1,830,105984,3471,Honolulu,1011,235, +1,831,105984,3471,Honolulu,1011,235, +1,832,106496,3471,Honolulu,1066,235, +1,833,106496,3471,Honolulu,1066,235, +1,834,106496,3471,Honolulu,1066,235, +1,835,106496,3471,Honolulu,1066,235, +1,836,107008,3471,Honolulu,1122,235, +1,837,107008,3471,Honolulu,1122,235, +1,838,107008,3471,Honolulu,1122,235, +1,839,107008,3471,Honolulu,1122,235, +1,840,107520,3471,Honolulu,1178,235, +1,841,107520,3471,Honolulu,1178,235, +1,842,107520,3471,Honolulu,1178,235, +1,843,107520,3471,Honolulu,1178,235, +1,844,108032,3471,Honolulu,1235,235, +1,845,108032,3471,Honolulu,1235,235, +1,846,108032,3471,Honolulu,1235,235, +1,847,108032,3471,Honolulu,1235,235, +1,848,108544,3471,Honolulu,1292,235, +1,849,108544,3471,Honolulu,1292,235, +1,850,108544,3471,Honolulu,1292,235, +1,851,108544,3471,Honolulu,1292,235, +1,852,109056,3471,Honolulu,1349,235, +1,853,109056,3471,Honolulu,1349,235, +1,854,109056,3471,Honolulu,1349,235, +1,855,109056,3471,Honolulu,1349,235, +1,856,109568,3471,Honolulu,1407,235, +1,857,109568,3471,Honolulu,1407,235, +1,858,109568,3471,Honolulu,1407,235, +1,859,109568,3471,Honolulu,1407,235, +1,860,110080,3471,Honolulu,1465,235, +1,861,110080,3471,Honolulu,1465,235, +1,862,110080,3471,Honolulu,1465,235, +1,863,110080,3471,Honolulu,1465,235, +1,864,110592,3471,Honolulu,1524,235, +1,865,110592,3471,Honolulu,1524,235, +1,866,110592,3471,Honolulu,1524,235, +1,867,110592,3471,Honolulu,1524,235, +1,868,111104,3471,Honolulu,1583,235, +1,869,111104,3471,Honolulu,1583,235, +1,870,111104,3471,Honolulu,1583,235, +1,871,111104,3471,Honolulu,1583,235, +1,872,111616,3471,Honolulu,1643,235, +1,873,111616,3471,Honolulu,1643,235, +1,874,111616,3471,Honolulu,1643,235, +1,875,111616,3471,Honolulu,1643,235, +1,876,112128,3471,Honolulu,1703,235, +1,877,112128,3471,Honolulu,1703,235, +1,878,112128,3471,Honolulu,1703,235, +1,879,112128,3471,Honolulu,1703,235, +1,880,112640,3471,Honolulu,1763,235, +1,881,112640,3471,Honolulu,1763,235, +1,882,112640,3471,Honolulu,1763,235, +1,883,112640,3471,Honolulu,1763,235, +1,884,113152,3471,Honolulu,1824,235, +1,885,113152,3471,Honolulu,1824,235, +1,886,113152,3471,Honolulu,1824,235, +1,887,113152,3471,Honolulu,1824,235, +1,888,113664,3471,Honolulu,1885,235, +1,889,113664,3471,Honolulu,1885,235, +1,890,113664,3471,Honolulu,1885,235, +1,891,113664,3471,Honolulu,1885,235, +1,892,114176,3471,Honolulu,1946,235, +1,893,114176,3471,Honolulu,1946,235, +1,894,114176,3471,Honolulu,1946,235, +1,895,114176,3471,Honolulu,1946,235, +1,896,114688,3471,Honolulu,2008,235, +1,897,114688,3471,Honolulu,2008,235, +1,898,114688,3471,Honolulu,2008,235, +1,899,114688,3471,Honolulu,2008,235, +1,900,115200,3471,Honolulu,2070,235, +1,901,115200,3471,Honolulu,2070,235, +1,902,115200,3471,Honolulu,2070,235, +1,903,115200,3471,Honolulu,2070,235, +1,904,115712,3471,Honolulu,2132,235, +1,905,115712,3471,Honolulu,2132,235, +1,906,115712,3471,Honolulu,2132,235, +1,907,115712,3471,Honolulu,2132,235, +1,908,116224,3471,Honolulu,2195,235, +1,909,116224,3471,Honolulu,2195,235, +1,910,116224,3471,Honolulu,2195,235, +1,911,116224,3471,Honolulu,2195,235, +1,912,116736,3471,Honolulu,2258,235, +1,913,116736,3471,Honolulu,2258,235, +1,914,116736,3471,Honolulu,2258,235, +1,915,116736,3471,Honolulu,2258,235, +1,916,117248,3471,Honolulu,2321,235, +1,917,117248,3471,Honolulu,2321,235, +1,918,117248,3471,Honolulu,2321,235, +1,919,117248,3471,Honolulu,2321,235, +1,920,117760,3471,Honolulu,2385,235, +1,921,117760,3471,Honolulu,2385,235, +1,922,117760,3471,Honolulu,2385,235, +1,923,117760,3471,Honolulu,2385,235, +1,924,118272,3471,Honolulu,2449,235, +1,925,118272,3471,Honolulu,2449,235, +1,926,118272,3471,Honolulu,2449,235, +1,927,118272,3471,Honolulu,2449,235, +1,928,118784,3471,Honolulu,2513,235, +1,929,118784,3471,Honolulu,2513,235, +1,930,118784,3471,Honolulu,2513,235, +1,931,118784,3471,Honolulu,2513,235, +1,932,119296,3471,Honolulu,2578,235, +1,933,119296,3471,Honolulu,2578,235, +1,934,119296,3471,Honolulu,2578,235, +1,935,119296,3471,Honolulu,2578,235, +1,936,119808,3471,Honolulu,2643,235, +1,937,119808,3471,Honolulu,2643,235, +1,938,119808,3471,Honolulu,2643,235, +1,939,119808,3471,Honolulu,2643,235, +1,940,120320,3471,Honolulu,2708,235, +1,941,120320,3471,Honolulu,2708,235, +1,942,120320,3471,Honolulu,2708,235, +1,943,120320,3471,Honolulu,2708,235, +1,944,120832,3471,Honolulu,2773,235, +1,945,120832,3471,Honolulu,2773,235, +1,946,120832,3471,Honolulu,2773,235, +1,947,120832,3471,Honolulu,2773,235, +1,948,121344,3208,Atafu Village,1,223, +1,949,121344,3208,Atafu Village,1,223, +1,950,121344,3208,Atafu Village,1,223, +1,951,121344,3208,Atafu Village,1,223, +1,952,121856,3208,Atafu Village,2,223, +1,953,121856,3208,Atafu Village,2,223, +1,954,121856,3208,Atafu Village,2,223, +1,955,121856,3208,Atafu Village,2,223, +1,956,122368,3208,Atafu Village,5,223, +1,957,122368,3208,Atafu Village,5,223, +1,958,122368,3208,Atafu Village,5,223, +1,959,122368,3208,Atafu Village,5,223, +1,960,122880,3208,Atafu Village,10,223, +1,961,122880,3208,Atafu Village,10,223, +1,962,122880,3208,Atafu Village,10,223, +1,963,122880,3208,Atafu Village,10,223, +1,964,123392,3208,Atafu Village,17,223, +1,965,123392,3208,Atafu Village,17,223, +1,966,123392,3208,Atafu Village,17,223, +1,967,123392,3208,Atafu Village,17,223, +1,968,123904,3208,Atafu Village,26,223, +1,969,123904,3208,Atafu Village,26,223, +1,970,123904,3208,Atafu Village,26,223, +1,971,123904,3208,Atafu Village,26,223, +1,972,124416,3208,Atafu Village,37,223, +1,973,124416,3208,Atafu Village,37,223, +1,974,124416,3208,Atafu Village,37,223, +1,975,124416,3208,Atafu Village,37,223, +1,976,124928,3208,Atafu Village,50,223, +1,977,124928,3208,Atafu Village,50,223, +1,978,124928,3208,Atafu Village,50,223, +1,979,124928,3208,Atafu Village,50,223, +1,980,125440,3208,Atafu Village,65,223, +1,981,125440,3208,Atafu Village,65,223, +1,982,125440,3208,Atafu Village,65,223, +1,983,125440,3208,Atafu Village,65,223, +1,984,125952,3208,Atafu Village,82,223, +1,985,125952,3208,Atafu Village,82,223, +1,986,125952,3208,Atafu Village,82,223, +1,987,125952,3208,Atafu Village,82,223, +1,988,126464,3208,Atafu Village,101,223, +1,989,126464,3208,Atafu Village,101,223, +1,990,126464,3208,Atafu Village,101,223, +1,991,126464,3208,Atafu Village,101,223, +1,992,126976,3208,Atafu Village,122,223, +1,993,126976,3208,Atafu Village,122,223, +1,994,126976,3208,Atafu Village,122,223, +1,995,126976,3208,Atafu Village,122,223, +1,996,127488,3208,Atafu Village,145,223, +1,997,127488,3208,Atafu Village,145,223, +1,998,127488,3208,Atafu Village,145,223, +1,999,127488,3208,Atafu Village,145,223, +1,1000,128000,3208,Atafu Village,170,223, +1,1001,128000,3208,Atafu Village,170,223, +1,1002,128000,3208,Atafu Village,170,223, +1,1003,128000,3208,Atafu Village,170,223, +1,1004,128512,3208,Atafu Village,194,223, +1,1005,128512,3208,Atafu Village,194,223, +1,1006,128512,3208,Atafu Village,194,223, +1,1007,128512,3208,Atafu Village,194,223, +1,1008,129024,3208,Atafu Village,218,223, +1,1009,129024,3208,Atafu Village,218,223, +1,1010,129024,3208,Atafu Village,218,223, +1,1011,129024,3208,Atafu Village,218,223, +1,1012,129536,3208,Atafu Village,241,223, +1,1013,129536,3208,Atafu Village,241,223, +1,1014,129536,3208,Atafu Village,241,223, +1,1015,129536,3208,Atafu Village,241,223, +1,1016,130048,3208,Atafu Village,263,223, +1,1017,130048,3208,Atafu Village,263,223, +1,1018,130048,3208,Atafu Village,263,223, +1,1019,130048,3208,Atafu Village,263,223, +1,1020,130560,3208,Atafu Village,285,223, +1,1021,130560,3208,Atafu Village,285,223, +1,1022,130560,3208,Atafu Village,285,223, +1,1023,130560,3208,Atafu Village,285,223, +1,1024,131072,3208,Atafu Village,306,223, +1,1025,131072,3208,Atafu Village,306,223, +1,1026,131072,3208,Atafu Village,306,223, +1,1027,131072,3208,Atafu Village,306,223, +1,1028,131584,3208,Atafu Village,326,223, +1,1029,131584,3208,Atafu Village,326,223, +1,1030,131584,3208,Atafu Village,326,223, +1,1031,131584,3208,Atafu Village,326,223, +1,1032,132096,3208,Atafu Village,346,223, +1,1033,132096,3208,Atafu Village,346,223, +1,1034,132096,3208,Atafu Village,346,223, +1,1035,132096,3208,Atafu Village,346,223, +1,1036,132608,3208,Atafu Village,365,223, +1,1037,132608,3208,Atafu Village,365,223, +1,1038,132608,3208,Atafu Village,365,223, +1,1039,132608,3208,Atafu Village,365,223, +1,1040,133120,3208,Atafu Village,383,223, +1,1041,133120,3208,Atafu Village,383,223, +1,1042,133120,3208,Atafu Village,383,223, +1,1043,133120,3208,Atafu Village,383,223, +1,1044,133632,3208,Atafu Village,401,223, +1,1045,133632,3208,Atafu Village,401,223, +1,1046,133632,3208,Atafu Village,401,223, +1,1047,133632,3208,Atafu Village,401,223, +1,1048,134144,3208,Atafu Village,418,223, +1,1049,134144,3208,Atafu Village,418,223, +1,1050,134144,3208,Atafu Village,418,223, +1,1051,134144,3208,Atafu Village,418,223, +1,1052,134656,3208,Atafu Village,434,223, +1,1053,134656,3208,Atafu Village,434,223, +1,1054,134656,3208,Atafu Village,434,223, +1,1055,134656,3208,Atafu Village,434,223, +1,1056,135168,3208,Atafu Village,450,223, +1,1057,135168,3208,Atafu Village,450,223, +1,1058,135168,3208,Atafu Village,450,223, +1,1059,135168,3208,Atafu Village,450,223, +1,1060,135680,3610,Mata-Utu,1,245, +1,1061,135680,3610,Mata-Utu,1,245, +1,1062,135680,3610,Mata-Utu,1,245, +1,1063,135680,3610,Mata-Utu,1,245, +1,1064,136192,3610,Mata-Utu,2,245, +1,1065,136192,3610,Mata-Utu,2,245, +1,1066,136192,3610,Mata-Utu,2,245, +1,1067,136192,3610,Mata-Utu,2,245, +1,1068,136704,3610,Mata-Utu,5,245, +1,1069,136704,3610,Mata-Utu,5,245, +1,1070,136704,3610,Mata-Utu,5,245, +1,1071,136704,3610,Mata-Utu,5,245, +1,1072,137216,3610,Mata-Utu,9,245, +1,1073,137216,3610,Mata-Utu,9,245, +1,1074,137216,3610,Mata-Utu,9,245, +1,1075,137216,3610,Mata-Utu,9,245, +1,1076,137728,3610,Mata-Utu,14,245, +1,1077,137728,3610,Mata-Utu,14,245, +1,1078,137728,3610,Mata-Utu,14,245, +1,1079,137728,3610,Mata-Utu,14,245, +1,1080,138240,3609,Leava,1,245, +1,1081,138240,3609,Leava,1,245, +1,1082,138240,3609,Leava,1,245, +1,1083,138240,3609,Leava,1,245, +1,1084,138752,3609,Leava,2,245, +1,1085,138752,3609,Leava,2,245, +1,1086,138752,3609,Leava,2,245, +1,1087,138752,3609,Leava,2,245, +1,1088,139264,3609,Leava,3,245, +1,1089,139264,3609,Leava,3,245, +1,1090,139264,3609,Leava,3,245, +1,1091,139264,3609,Leava,3,245, +1,1092,139776,3609,Leava,5,245, +1,1093,139776,3609,Leava,5,245, +1,1094,139776,3609,Leava,5,245, +1,1095,139776,3609,Leava,5,245, +1,1096,140288,3609,Leava,7,245, +1,1097,140288,3609,Leava,7,245, +1,1098,140288,3609,Leava,7,245, +1,1099,140288,3609,Leava,7,245, +1,1100,140800,3609,Leava,10,245, +1,1101,140800,3609,Leava,10,245, +1,1102,140800,3609,Leava,10,245, +1,1103,140800,3609,Leava,10,245, +1,1104,141312,3609,Leava,13,245, +1,1105,141312,3609,Leava,13,245, +1,1106,141312,3609,Leava,13,245, +1,1107,141312,3609,Leava,13,245, +1,1108,141824,3609,Leava,16,245, +1,1109,141824,3609,Leava,16,245, +1,1110,141824,3609,Leava,16,245, +1,1111,141824,3609,Leava,16,245, +1,1112,142336,3609,Leava,19,245, +1,1113,142336,3609,Leava,19,245, +1,1114,142336,3609,Leava,19,245, +1,1115,142336,3609,Leava,19,245, +1,1116,142848,3609,Leava,21,245, +1,1117,142848,3609,Leava,21,245, +1,1118,142848,3609,Leava,21,245, +1,1119,142848,3609,Leava,21,245, +1,1120,143360,3609,Leava,23,245, +1,1121,143360,3609,Leava,23,245, +1,1122,143360,3609,Leava,23,245, +1,1123,143360,3609,Leava,23,245, +1,1124,143872,3609,Leava,25,245, +1,1125,143872,3609,Leava,25,245, +1,1126,143872,3609,Leava,25,245, +1,1127,143872,3609,Leava,25,245, +1,1128,144384,3609,Leava,26,245, +1,1129,144384,3609,Leava,26,245, +1,1130,144384,3609,Leava,26,245, +1,1131,144384,3609,Leava,26,245, +1,1132,144896,3253,Nuku‘alofa,4,224, +1,1133,144896,3253,Nuku‘alofa,4,224, +1,1134,144896,3253,Nuku‘alofa,4,224, +1,1135,144896,3253,Nuku‘alofa,4,224, +1,1136,145408,3253,Nuku‘alofa,9,224, +1,1137,145408,3253,Nuku‘alofa,9,224, +1,1138,145408,3253,Nuku‘alofa,9,224, +1,1139,145408,3253,Nuku‘alofa,9,224, +1,1140,145920,3253,Nuku‘alofa,16,224, +1,1141,145920,3253,Nuku‘alofa,16,224, +1,1142,145920,3253,Nuku‘alofa,16,224, +1,1143,145920,3253,Nuku‘alofa,16,224, +1,1144,146432,3253,Nuku‘alofa,24,224, +1,1145,146432,3253,Nuku‘alofa,24,224, +1,1146,146432,3253,Nuku‘alofa,24,224, +1,1147,146432,3253,Nuku‘alofa,24,224, +1,1148,146944,3253,Nuku‘alofa,32,224, +1,1149,146944,3253,Nuku‘alofa,32,224, +1,1150,146944,3253,Nuku‘alofa,32,224, +1,1151,146944,3253,Nuku‘alofa,32,224, +1,1152,147456,3253,Nuku‘alofa,39,224, +1,1153,147456,3253,Nuku‘alofa,39,224, +1,1154,147456,3253,Nuku‘alofa,39,224, +1,1155,147456,3253,Nuku‘alofa,39,224, +1,1156,147968,3253,Nuku‘alofa,45,224, +1,1157,147968,3253,Nuku‘alofa,45,224, +1,1158,147968,3253,Nuku‘alofa,45,224, +1,1159,147968,3253,Nuku‘alofa,45,224, +1,1160,148480,3253,Nuku‘alofa,51,224, +1,1161,148480,3253,Nuku‘alofa,51,224, +1,1162,148480,3253,Nuku‘alofa,51,224, +1,1163,148480,3253,Nuku‘alofa,51,224, +1,1164,148992,3253,Nuku‘alofa,56,224, +1,1165,148992,3253,Nuku‘alofa,56,224, +1,1166,148992,3253,Nuku‘alofa,56,224, +1,1167,148992,3253,Nuku‘alofa,56,224, +1,1168,149504,3253,Nuku‘alofa,60,224, +1,1169,149504,3253,Nuku‘alofa,60,224, +1,1170,149504,3253,Nuku‘alofa,60,224, +1,1171,149504,3253,Nuku‘alofa,60,224, +1,1172,150016,3253,Nuku‘alofa,63,224, +1,1173,150016,3253,Nuku‘alofa,63,224, +1,1174,150016,3253,Nuku‘alofa,63,224, +1,1175,150016,3253,Nuku‘alofa,63,224, +1,1176,150528,3253,Nuku‘alofa,66,224, +1,1177,150528,3253,Nuku‘alofa,66,224, +1,1178,150528,3253,Nuku‘alofa,66,224, +1,1179,150528,3253,Nuku‘alofa,66,224, +1,1180,151040,3253,Nuku‘alofa,68,224, +1,1181,151040,3253,Nuku‘alofa,68,224, +1,1182,151040,3253,Nuku‘alofa,68,224, +1,1183,151040,3253,Nuku‘alofa,68,224, +1,1184,151552,3252,‘Ohonua,88,224, +1,1185,151552,3252,‘Ohonua,88,224, +1,1186,151552,3252,‘Ohonua,88,224, +1,1187,151552,3252,‘Ohonua,88,224, +1,1188,152064,3252,‘Ohonua,104,224, +1,1189,152064,3252,‘Ohonua,104,224, +1,1190,152064,3252,‘Ohonua,104,224, +1,1191,152064,3252,‘Ohonua,104,224, +1,1192,152576,3252,‘Ohonua,120,224, +1,1193,152576,3252,‘Ohonua,120,224, +1,1194,152576,3252,‘Ohonua,120,224, +1,1195,152576,3252,‘Ohonua,120,224, +1,1196,153088,3252,‘Ohonua,137,224, +1,1197,153088,3252,‘Ohonua,137,224, +1,1198,153088,3252,‘Ohonua,137,224, +1,1199,153088,3252,‘Ohonua,137,224, +1,1200,153600,3252,‘Ohonua,154,224, +1,1201,153600,3252,‘Ohonua,154,224, +1,1202,153600,3252,‘Ohonua,154,224, +1,1203,153600,3252,‘Ohonua,154,224, +1,1204,154112,3252,‘Ohonua,172,224, +1,1205,154112,3252,‘Ohonua,172,224, +1,1206,154112,3252,‘Ohonua,172,224, +1,1207,154112,3252,‘Ohonua,172,224, +1,1208,154624,3252,‘Ohonua,190,224, +1,1209,154624,3252,‘Ohonua,190,224, +1,1210,154624,3252,‘Ohonua,190,224, +1,1211,154624,3252,‘Ohonua,190,224, +1,1212,155136,3252,‘Ohonua,208,224, +1,1213,155136,3252,‘Ohonua,208,224, +1,1214,155136,3252,‘Ohonua,208,224, +1,1215,155136,3252,‘Ohonua,208,224, +1,1216,155648,3252,‘Ohonua,226,224, +1,1217,155648,3252,‘Ohonua,226,224, +1,1218,155648,3252,‘Ohonua,226,224, +1,1219,155648,3252,‘Ohonua,226,224, +1,1220,156160,2317,Waitangi,1,155, +1,1221,156160,2317,Waitangi,1,155, +1,1222,156160,2317,Waitangi,1,155, +1,1223,156160,2317,Waitangi,1,155, +1,1224,156672,2317,Waitangi,6,155, +1,1225,156672,2317,Waitangi,6,155, +1,1226,156672,2317,Waitangi,6,155, +1,1227,156672,2317,Waitangi,6,155, +1,1228,157184,2317,Waitangi,23,155, +1,1229,157184,2317,Waitangi,23,155, +1,1230,157184,2317,Waitangi,23,155, +1,1231,157184,2317,Waitangi,23,155, +1,1232,157696,2317,Waitangi,42,155, +1,1233,157696,2317,Waitangi,42,155, +1,1234,157696,2317,Waitangi,42,155, +1,1235,157696,2317,Waitangi,42,155, +1,1236,158208,2317,Waitangi,62,155, +1,1237,158208,2317,Waitangi,62,155, +1,1238,158208,2317,Waitangi,62,155, +1,1239,158208,2317,Waitangi,62,155, +1,1240,158720,2317,Waitangi,83,155, +1,1241,158720,2317,Waitangi,83,155, +1,1242,158720,2317,Waitangi,83,155, +1,1243,158720,2317,Waitangi,83,155, +1,1244,159232,2317,Waitangi,105,155, +1,1245,159232,2317,Waitangi,105,155, +1,1246,159232,2317,Waitangi,105,155, +1,1247,159232,2317,Waitangi,105,155, +1,1248,159744,2317,Waitangi,128,155, +1,1249,159744,2317,Waitangi,128,155, +1,1250,159744,2317,Waitangi,128,155, +1,1251,159744,2317,Waitangi,128,155, +1,1252,160256,2317,Waitangi,152,155, +1,1253,160256,2317,Waitangi,152,155, +1,1254,160256,2317,Waitangi,152,155, +1,1255,160256,2317,Waitangi,152,155, +1,1256,160768,2317,Waitangi,177,155, +1,1257,160768,2317,Waitangi,177,155, +1,1258,160768,2317,Waitangi,177,155, +1,1259,160768,2317,Waitangi,177,155, +1,1260,161280,2317,Waitangi,203,155, +1,1261,161280,2317,Waitangi,203,155, +1,1262,161280,2317,Waitangi,203,155, +1,1263,161280,2317,Waitangi,203,155, +1,1264,161792,2317,Waitangi,230,155, +1,1265,161792,2317,Waitangi,230,155, +1,1266,161792,2317,Waitangi,230,155, +1,1267,161792,2317,Waitangi,230,155, +1,1268,162304,2317,Waitangi,258,155, +1,1269,162304,2317,Waitangi,258,155, +1,1270,162304,2317,Waitangi,258,155, +1,1271,162304,2317,Waitangi,258,155, +1,1272,162816,2317,Waitangi,287,155, +1,1273,162816,2317,Waitangi,287,155, +1,1274,162816,2317,Waitangi,287,155, +1,1275,162816,2317,Waitangi,287,155, +1,1276,163328,2317,Waitangi,318,155, +1,1277,163328,2317,Waitangi,318,155, +1,1278,163328,2317,Waitangi,318,155, +1,1279,163328,2317,Waitangi,318,155, +1,1280,163840,2317,Waitangi,350,155, +1,1281,163840,2317,Waitangi,350,155, +1,1282,163840,2317,Waitangi,350,155, +1,1283,163840,2317,Waitangi,350,155, +1,1284,164352,2317,Waitangi,383,155, +1,1285,164352,2317,Waitangi,383,155, +1,1286,164352,2317,Waitangi,383,155, +1,1287,164352,2317,Waitangi,383,155, +1,1288,164864,2317,Waitangi,417,155, +1,1289,164864,2317,Waitangi,417,155, +1,1290,164864,2317,Waitangi,417,155, +1,1291,164864,2317,Waitangi,417,155, +1,1292,165376,2317,Waitangi,452,155, +1,1293,165376,2317,Waitangi,452,155, +1,1294,165376,2317,Waitangi,452,155, +1,1295,165376,2317,Waitangi,452,155, +1,1296,165888,2317,Waitangi,488,155, +1,1297,165888,2317,Waitangi,488,155, +1,1298,165888,2317,Waitangi,488,155, +1,1299,165888,2317,Waitangi,488,155, +1,1300,166400,2317,Waitangi,525,155, +1,1301,166400,2317,Waitangi,525,155, +1,1302,166400,2317,Waitangi,525,155, +1,1303,166400,2317,Waitangi,525,155, +1,1304,166912,2317,Waitangi,563,155, +1,1305,166912,2317,Waitangi,563,155, +1,1306,166912,2317,Waitangi,563,155, +1,1307,166912,2317,Waitangi,563,155, +1,1308,167424,2317,Waitangi,602,155, +1,1309,167424,2317,Waitangi,602,155, +1,1310,167424,2317,Waitangi,602,155, +1,1311,167424,2317,Waitangi,602,155, +1,1312,167936,2317,Waitangi,642,155, +1,1313,167936,2317,Waitangi,642,155, +1,1314,167936,2317,Waitangi,642,155, +1,1315,167936,2317,Waitangi,642,155, +1,1316,168448,2317,Waitangi,682,155, +1,1317,168448,2317,Waitangi,682,155, +1,1318,168448,2317,Waitangi,682,155, +1,1319,168448,2317,Waitangi,682,155, +1,1320,168960,2317,Waitangi,723,155, +1,1321,168960,2317,Waitangi,723,155, +1,1322,168960,2317,Waitangi,723,155, +1,1323,168960,2317,Waitangi,723,155, +1,1324,169472,2317,Waitangi,765,155, +1,1325,169472,2317,Waitangi,765,155, +1,1326,169472,2317,Waitangi,765,155, +1,1327,169472,2317,Waitangi,765,155, +1,1328,169984,2317,Waitangi,808,155, +1,1329,169984,2317,Waitangi,808,155, +1,1330,169984,2317,Waitangi,808,155, +1,1331,169984,2317,Waitangi,808,155, +1,1332,170496,2317,Waitangi,852,155, +1,1333,170496,2317,Waitangi,852,155, +1,1334,170496,2317,Waitangi,852,155, +1,1335,170496,2317,Waitangi,852,155, +1,1336,171008,2317,Waitangi,898,155, +1,1337,171008,2317,Waitangi,898,155, +1,1338,171008,2317,Waitangi,898,155, +1,1339,171008,2317,Waitangi,898,155, +1,1340,171520,2317,Waitangi,944,155, +1,1341,171520,2317,Waitangi,944,155, +1,1342,171520,2317,Waitangi,944,155, +1,1343,171520,2317,Waitangi,944,155, +1,1344,172032,2317,Waitangi,991,155, +1,1345,172032,2317,Waitangi,991,155, +1,1346,172032,2317,Waitangi,991,155, +1,1347,172032,2317,Waitangi,991,155, +1,1348,172544,2317,Waitangi,1038,155, +1,1349,172544,2317,Waitangi,1038,155, +1,1350,172544,2317,Waitangi,1038,155, +1,1351,172544,2317,Waitangi,1038,155, +1,1352,173056,2317,Waitangi,1085,155, +1,1353,173056,2317,Waitangi,1085,155, +1,1354,173056,2317,Waitangi,1085,155, +1,1355,173056,2317,Waitangi,1085,155, +1,1356,173568,2317,Waitangi,1132,155, +1,1357,173568,2317,Waitangi,1132,155, +1,1358,173568,2317,Waitangi,1132,155, +1,1359,173568,2317,Waitangi,1132,155, +1,1360,174080,2317,Waitangi,1180,155, +1,1361,174080,2317,Waitangi,1180,155, +1,1362,174080,2317,Waitangi,1180,155, +1,1363,174080,2317,Waitangi,1180,155, +1,1364,174592,2317,Waitangi,1228,155, +1,1365,174592,2317,Waitangi,1228,155, +1,1366,174592,2317,Waitangi,1228,155, +1,1367,174592,2317,Waitangi,1228,155, +1,1368,175104,2317,Waitangi,1276,155, +1,1369,175104,2317,Waitangi,1276,155, +1,1370,175104,2317,Waitangi,1276,155, +1,1371,175104,2317,Waitangi,1276,155, +1,1372,175616,2317,Waitangi,1324,155, +1,1373,175616,2317,Waitangi,1324,155, +1,1374,175616,2317,Waitangi,1324,155, +1,1375,175616,2317,Waitangi,1324,155, +1,1376,176128,2317,Waitangi,1373,155, +1,1377,176128,2317,Waitangi,1373,155, +1,1378,176128,2317,Waitangi,1373,155, +1,1379,176128,2317,Waitangi,1373,155, +1,1380,176640,2317,Waitangi,1422,155, +1,1381,176640,2317,Waitangi,1422,155, +1,1382,176640,2317,Waitangi,1422,155, +1,1383,176640,2317,Waitangi,1422,155, +1,1384,177152,2317,Waitangi,1471,155, +1,1385,177152,2317,Waitangi,1471,155, +1,1386,177152,2317,Waitangi,1471,155, +1,1387,177152,2317,Waitangi,1471,155, +1,1388,177664,2317,Waitangi,1520,155, +1,1389,177664,2317,Waitangi,1520,155, +1,1390,177664,2317,Waitangi,1520,155, +1,1391,177664,2317,Waitangi,1520,155, +1,1392,178176,2317,Waitangi,1570,155, +1,1393,178176,2317,Waitangi,1570,155, +1,1394,178176,2317,Waitangi,1570,155, +1,1395,178176,2317,Waitangi,1570,155, +1,1396,178688,2317,Waitangi,1620,155, +1,1397,178688,2317,Waitangi,1620,155, +1,1398,178688,2317,Waitangi,1620,155, +1,1399,178688,2317,Waitangi,1620,155, +1,1400,179200,2317,Waitangi,1670,155, +1,1401,179200,2317,Waitangi,1670,155, +1,1402,179200,2317,Waitangi,1670,155, +1,1403,179200,2317,Waitangi,1670,155, +1,1404,179712,2317,Waitangi,1720,155, +1,1405,179712,2317,Waitangi,1720,155, +1,1406,179712,2317,Waitangi,1720,155, +1,1407,179712,2317,Waitangi,1720,155, +1,1408,180224,2317,Waitangi,1771,155, +1,1409,180224,2317,Waitangi,1771,155, +1,1410,180224,2317,Waitangi,1771,155, +1,1411,180224,2317,Waitangi,1771,155, +1,1412,180736,2317,Waitangi,1822,155, +1,1413,180736,2317,Waitangi,1822,155, +1,1414,180736,2317,Waitangi,1822,155, +1,1415,180736,2317,Waitangi,1822,155, +1,1416,181248,2317,Waitangi,1873,155, +1,1417,181248,2317,Waitangi,1873,155, +1,1418,181248,2317,Waitangi,1873,155, +1,1419,181248,2317,Waitangi,1873,155, +1,1420,181760,2317,Waitangi,1924,155, +1,1421,181760,2317,Waitangi,1924,155, +1,1422,181760,2317,Waitangi,1924,155, +1,1423,181760,2317,Waitangi,1924,155, +1,1424,182272,2317,Waitangi,1976,155, +1,1425,182272,2317,Waitangi,1976,155, +1,1426,182272,2317,Waitangi,1976,155, +1,1427,182272,2317,Waitangi,1976,155, +1,1428,182784,2317,Waitangi,2028,155, +1,1429,182784,2317,Waitangi,2028,155, +1,1430,182784,2317,Waitangi,2028,155, +1,1431,182784,2317,Waitangi,2028,155, +1,1432,183296,2317,Waitangi,2080,155, +1,1433,183296,2317,Waitangi,2080,155, +1,1434,183296,2317,Waitangi,2080,155, +1,1435,183296,2317,Waitangi,2080,155, +1,1436,183808,2317,Waitangi,2132,155, +1,1437,183808,2317,Waitangi,2132,155, +1,1438,183808,2317,Waitangi,2132,155, +1,1439,183808,2317,Waitangi,2132,155, +1,1440,184320,2317,Waitangi,2184,155, +1,1441,184320,2317,Waitangi,2184,155, +1,1442,184320,2317,Waitangi,2184,155, +1,1443,184320,2317,Waitangi,2184,155, +1,1444,184832,2317,Waitangi,2237,155, +1,1445,184832,2317,Waitangi,2237,155, +1,1446,184832,2317,Waitangi,2237,155, +1,1447,184832,2317,Waitangi,2237,155, +1,1448,185344,2317,Waitangi,2290,155, +1,1449,185344,2317,Waitangi,2290,155, +1,1450,185344,2317,Waitangi,2290,155, +1,1451,185344,2317,Waitangi,2290,155, +1,1452,185856,2317,Waitangi,2343,155, +1,1453,185856,2317,Waitangi,2343,155, +1,1454,185856,2317,Waitangi,2343,155, +1,1455,185856,2317,Waitangi,2343,155, +1,1456,186368,2317,Waitangi,2396,155, +1,1457,186368,2317,Waitangi,2396,155, +1,1458,186368,2317,Waitangi,2396,155, +1,1459,186368,2317,Waitangi,2396,155, +1,1460,186880,2317,Waitangi,2449,155, +1,1461,186880,2317,Waitangi,2449,155, +1,1462,186880,2317,Waitangi,2449,155, +1,1463,186880,2317,Waitangi,2449,155, +1,1464,187392,2317,Waitangi,2503,155, +1,1465,187392,2317,Waitangi,2503,155, +1,1466,187392,2317,Waitangi,2503,155, +1,1467,187392,2317,Waitangi,2503,155, +1,1468,187904,2317,Waitangi,2557,155, +1,1469,187904,2317,Waitangi,2557,155, +1,1470,187904,2317,Waitangi,2557,155, +1,1471,187904,2317,Waitangi,2557,155, +1,1472,188416,2317,Waitangi,2611,155, +1,1473,188416,2317,Waitangi,2611,155, +1,1474,188416,2317,Waitangi,2611,155, +1,1475,188416,2317,Waitangi,2611,155, +1,1476,188928,2317,Waitangi,2665,155, +1,1477,188928,2317,Waitangi,2665,155, +1,1478,188928,2317,Waitangi,2665,155, +1,1479,188928,2317,Waitangi,2665,155, +1,1480,189440,2317,Waitangi,2719,155, +1,1481,189440,2317,Waitangi,2719,155, +1,1482,189440,2317,Waitangi,2719,155, +1,1483,189440,2317,Waitangi,2719,155, +1,1484,189952,2317,Waitangi,2774,155, +1,1485,189952,2317,Waitangi,2774,155, +1,1486,189952,2317,Waitangi,2774,155, +1,1487,189952,2317,Waitangi,2774,155, +1,1488,190464,2317,Waitangi,2829,155, +1,1489,190464,2317,Waitangi,2829,155, +1,1490,190464,2317,Waitangi,2829,155, +1,1491,190464,2317,Waitangi,2829,155, +1,1492,190976,2317,Waitangi,2884,155, +1,1493,190976,2317,Waitangi,2884,155, +1,1494,190976,2317,Waitangi,2884,155, +1,1495,190976,2317,Waitangi,2884,155, +1,1496,191488,2317,Waitangi,2939,155, +1,1497,191488,2317,Waitangi,2939,155, +1,1498,191488,2317,Waitangi,2939,155, +1,1499,191488,2317,Waitangi,2939,155, +1,1500,192000,2317,Waitangi,2994,155, +1,1501,192000,2317,Waitangi,2994,155, +1,1502,192000,2317,Waitangi,2994,155, +1,1503,192000,2317,Waitangi,2994,155, +1,1504,192512,2317,Waitangi,3049,155, +1,1505,192512,2317,Waitangi,3049,155, +1,1506,192512,2317,Waitangi,3049,155, +1,1507,192512,2317,Waitangi,3049,155, +1,1508,193024,2317,Waitangi,3105,155, +1,1509,193024,2317,Waitangi,3105,155, +1,1510,193024,2317,Waitangi,3105,155, +1,1511,193024,2317,Waitangi,3105,155, +1,1512,193536,2317,Waitangi,3161,155, +1,1513,193536,2317,Waitangi,3161,155, +1,1514,193536,2317,Waitangi,3161,155, +1,1515,193536,2317,Waitangi,3161,155, +1,1516,194048,2317,Waitangi,3217,155, +1,1517,194048,2317,Waitangi,3217,155, +1,1518,194048,2317,Waitangi,3217,155, +1,1519,194048,2317,Waitangi,3217,155, +1,1520,194560,2317,Waitangi,3273,155, +1,1521,194560,2317,Waitangi,3273,155, +1,1522,194560,2317,Waitangi,3273,155, +1,1523,194560,2317,Waitangi,3273,155, +1,1524,195072,2317,Waitangi,3329,155, +1,1525,195072,2317,Waitangi,3329,155, +1,1526,195072,2317,Waitangi,3329,155, +1,1527,195072,2317,Waitangi,3329,155, +1,1528,195584,2317,Waitangi,3385,155, +1,1529,195584,2317,Waitangi,3385,155, +1,1530,195584,2317,Waitangi,3385,155, +1,1531,195584,2317,Waitangi,3385,155, +1,1532,196096,2317,Waitangi,3442,155, +1,1533,196096,2317,Waitangi,3442,155, +1,1534,196096,2317,Waitangi,3442,155, +1,1535,196096,2317,Waitangi,3442,155, +1,1536,196608,2317,Waitangi,3499,155, +1,1537,196608,2317,Waitangi,3499,155, +1,1538,196608,2317,Waitangi,3499,155, +1,1539,196608,2317,Waitangi,3499,155, +1,1540,197120,2317,Waitangi,3556,155, +1,1541,197120,2317,Waitangi,3556,155, +1,1542,197120,2317,Waitangi,3556,155, +1,1543,197120,2317,Waitangi,3556,155, +1,1544,197632,2317,Waitangi,3613,155, +1,1545,197632,2317,Waitangi,3613,155, +1,1546,197632,2317,Waitangi,3613,155, +1,1547,197632,2317,Waitangi,3613,155, +1,1548,198144,2317,Waitangi,3670,155, +1,1549,198144,2317,Waitangi,3670,155, +1,1550,198144,2317,Waitangi,3670,155, +1,1551,198144,2317,Waitangi,3670,155, +1,1552,198656,2317,Waitangi,3727,155, +1,1553,198656,2317,Waitangi,3727,155, +1,1554,198656,2317,Waitangi,3727,155, +1,1555,198656,2317,Waitangi,3727,155, +1,1556,199168,2317,Waitangi,3785,155, +1,1557,199168,2317,Waitangi,3785,155, +1,1558,199168,2317,Waitangi,3785,155, +1,1559,199168,2317,Waitangi,3785,155, +1,1560,199680,2317,Waitangi,3843,155, +1,1561,199680,2317,Waitangi,3843,155, +1,1562,199680,2317,Waitangi,3843,155, +1,1563,199680,2317,Waitangi,3843,155, +1,1564,200192,2317,Waitangi,3901,155, +1,1565,200192,2317,Waitangi,3901,155, +1,1566,200192,2317,Waitangi,3901,155, +1,1567,200192,2317,Waitangi,3901,155, +1,1568,200704,2317,Waitangi,3959,155, +1,1569,200704,2317,Waitangi,3959,155, +1,1570,200704,2317,Waitangi,3959,155, +1,1571,200704,2317,Waitangi,3959,155, +1,1572,201216,2317,Waitangi,4017,155, +1,1573,201216,2317,Waitangi,4017,155, +1,1574,201216,2317,Waitangi,4017,155, +1,1575,201216,2317,Waitangi,4017,155, +1,1576,201728,2317,Waitangi,4075,155, +1,1577,201728,2317,Waitangi,4075,155, +1,1578,201728,2317,Waitangi,4075,155, +1,1579,201728,2317,Waitangi,4075,155, +1,1580,202240,2317,Waitangi,4133,155, +1,1581,202240,2317,Waitangi,4133,155, +1,1582,202240,2317,Waitangi,4133,155, +1,1583,202240,2317,Waitangi,4133,155, +1,1584,202752,2317,Waitangi,4192,155, +1,1585,202752,2317,Waitangi,4192,155, +1,1586,202752,2317,Waitangi,4192,155, +1,1587,202752,2317,Waitangi,4192,155, +1,1588,203264,2317,Waitangi,4251,155, +1,1589,203264,2317,Waitangi,4251,155, +1,1590,203264,2317,Waitangi,4251,155, +1,1591,203264,2317,Waitangi,4251,155, +1,1592,203776,2317,Waitangi,4310,155, +1,1593,203776,2317,Waitangi,4310,155, +1,1594,203776,2317,Waitangi,4310,155, +1,1595,203776,2317,Waitangi,4310,155, +1,1596,204288,2317,Waitangi,4369,155, +1,1597,204288,2317,Waitangi,4369,155, +1,1598,204288,2317,Waitangi,4369,155, +1,1599,204288,2317,Waitangi,4369,155, +1,1600,204800,2317,Waitangi,4428,155, +1,1601,204800,2317,Waitangi,4428,155, +1,1602,204800,2317,Waitangi,4428,155, +1,1603,204800,2317,Waitangi,4428,155, +1,1604,205312,2317,Waitangi,4487,155, +1,1605,205312,2317,Waitangi,4487,155, +1,1606,205312,2317,Waitangi,4487,155, +1,1607,205312,2317,Waitangi,4487,155, +1,1608,205824,2317,Waitangi,4546,155, +1,1609,205824,2317,Waitangi,4546,155, +1,1610,205824,2317,Waitangi,4546,155, +1,1611,205824,2317,Waitangi,4546,155, +1,1612,206336,2317,Waitangi,4606,155, +1,1613,206336,2317,Waitangi,4606,155, +1,1614,206336,2317,Waitangi,4606,155, +1,1615,206336,2317,Waitangi,4606,155, +1,1616,206848,2317,Waitangi,4666,155, +1,1617,206848,2317,Waitangi,4666,155, +1,1618,206848,2317,Waitangi,4666,155, +1,1619,206848,2317,Waitangi,4666,155, +1,1620,207360,2317,Waitangi,4726,155, +1,1621,207360,2317,Waitangi,4726,155, +1,1622,207360,2317,Waitangi,4726,155, +1,1623,207360,2317,Waitangi,4726,155, +1,1624,207872,2317,Waitangi,4786,155, +1,1625,207872,2317,Waitangi,4786,155, +1,1626,207872,2317,Waitangi,4786,155, +1,1627,207872,2317,Waitangi,4786,155, +1,1628,208384,2317,Waitangi,4846,155, +1,1629,208384,2317,Waitangi,4846,155, +1,1630,208384,2317,Waitangi,4846,155, +1,1631,208384,2317,Waitangi,4846,155, +1,1632,208896,2317,Waitangi,4906,155, +1,1633,208896,2317,Waitangi,4906,155, +1,1634,208896,2317,Waitangi,4906,155, +1,1635,208896,2317,Waitangi,4906,155, +1,1636,209408,2317,Waitangi,4966,155, +1,1637,209408,2317,Waitangi,4966,155, +1,1638,209408,2317,Waitangi,4966,155, +1,1639,209408,2317,Waitangi,4966,155, +1,1640,209920,2317,Waitangi,5026,155, +1,1641,209920,2317,Waitangi,5026,155, +1,1642,209920,2317,Waitangi,5026,155, +1,1643,209920,2317,Waitangi,5026,155, +1,1644,210432,2317,Waitangi,5087,155, +1,1645,210432,2317,Waitangi,5087,155, +1,1646,210432,2317,Waitangi,5087,155, +1,1647,210432,2317,Waitangi,5087,155, +1,1648,210944,2317,Waitangi,5148,155, +1,1649,210944,2317,Waitangi,5148,155, +1,1650,210944,2317,Waitangi,5148,155, +1,1651,210944,2317,Waitangi,5148,155, +1,1652,211456,2317,Waitangi,5209,155, +1,1653,211456,2317,Waitangi,5209,155, +1,1654,211456,2317,Waitangi,5209,155, +1,1655,211456,2317,Waitangi,5209,155, +1,1656,211968,2317,Waitangi,5270,155, +1,1657,211968,2317,Waitangi,5270,155, +1,1658,211968,2317,Waitangi,5270,155, +1,1659,211968,2317,Waitangi,5270,155, +1,1660,212480,2317,Waitangi,5331,155, +1,1661,212480,2317,Waitangi,5331,155, +1,1662,212480,2317,Waitangi,5331,155, +1,1663,212480,2317,Waitangi,5331,155, +1,1664,212992,2317,Waitangi,5392,155, +1,1665,212992,2317,Waitangi,5392,155, +1,1666,212992,2317,Waitangi,5392,155, +1,1667,212992,2317,Waitangi,5392,155, +1,1668,213504,2317,Waitangi,5453,155, +1,1669,213504,2317,Waitangi,5453,155, +1,1670,213504,2317,Waitangi,5453,155, +1,1671,213504,2317,Waitangi,5453,155, +1,1672,214016,2317,Waitangi,5514,155, +1,1673,214016,2317,Waitangi,5514,155, +1,1674,214016,2317,Waitangi,5514,155, +1,1675,214016,2317,Waitangi,5514,155, +1,1676,214528,2317,Waitangi,5575,155, +1,1677,214528,2317,Waitangi,5575,155, +1,1678,214528,2317,Waitangi,5575,155, +1,1679,214528,2317,Waitangi,5575,155, +1,1680,215040,2317,Waitangi,5637,155, +1,1681,215040,2317,Waitangi,5637,155, +1,1682,215040,2317,Waitangi,5637,155, +1,1683,215040,2317,Waitangi,5637,155, +1,1684,215552,2317,Waitangi,5699,155, +1,1685,215552,2317,Waitangi,5699,155, +1,1686,215552,2317,Waitangi,5699,155, +1,1687,215552,2317,Waitangi,5699,155, +1,1688,216064,2317,Waitangi,5761,155, +1,1689,216064,2317,Waitangi,5761,155, +1,1690,216064,2317,Waitangi,5761,155, +1,1691,216064,2317,Waitangi,5761,155, +1,1692,216576,2317,Waitangi,5823,155, +1,1693,216576,2317,Waitangi,5823,155, +1,1694,216576,2317,Waitangi,5823,155, +1,1695,216576,2317,Waitangi,5823,155, +1,1696,217088,2317,Waitangi,5885,155, +1,1697,217088,2317,Waitangi,5885,155, +1,1698,217088,2317,Waitangi,5885,155, +1,1699,217088,2317,Waitangi,5885,155, +1,1700,217600,2317,Waitangi,5947,155, +1,1701,217600,2317,Waitangi,5947,155, +1,1702,217600,2317,Waitangi,5947,155, +1,1703,217600,2317,Waitangi,5947,155, +1,1704,218112,2317,Waitangi,6009,155, +1,1705,218112,2317,Waitangi,6009,155, +1,1706,218112,2317,Waitangi,6009,155, +1,1707,218112,2317,Waitangi,6009,155, +1,1708,218624,2317,Waitangi,6071,155, +1,1709,218624,2317,Waitangi,6071,155, +1,1710,218624,2317,Waitangi,6071,155, +1,1711,218624,2317,Waitangi,6071,155, +1,1712,219136,2317,Waitangi,6133,155, +1,1713,219136,2317,Waitangi,6133,155, +1,1714,219136,2317,Waitangi,6133,155, +1,1715,219136,2317,Waitangi,6133,155, +1,1716,219648,2317,Waitangi,6196,155, +1,1717,219648,2317,Waitangi,6196,155, +1,1718,219648,2317,Waitangi,6196,155, +1,1719,219648,2317,Waitangi,6196,155, +1,1720,220160,2317,Waitangi,6259,155, +1,1721,220160,2317,Waitangi,6259,155, +1,1722,220160,2317,Waitangi,6259,155, +1,1723,220160,2317,Waitangi,6259,155, +1,1724,220672,2317,Waitangi,6322,155, +1,1725,220672,2317,Waitangi,6322,155, +1,1726,220672,2317,Waitangi,6322,155, +1,1727,220672,2317,Waitangi,6322,155, +1,1728,221184,2317,Waitangi,6385,155, +1,1729,221184,2317,Waitangi,6385,155, +1,1730,221184,2317,Waitangi,6385,155, +1,1731,221184,2317,Waitangi,6385,155, +1,1732,221696,2317,Waitangi,6448,155, +1,1733,221696,2317,Waitangi,6448,155, +1,1734,221696,2317,Waitangi,6448,155, +1,1735,221696,2317,Waitangi,6448,155, +1,1736,222208,2317,Waitangi,6511,155, +1,1737,222208,2317,Waitangi,6511,155, +1,1738,222208,2317,Waitangi,6511,155, +1,1739,222208,2317,Waitangi,6511,155, +1,1740,222720,2317,Waitangi,6574,155, +1,1741,222720,2317,Waitangi,6574,155, +1,1742,222720,2317,Waitangi,6574,155, +1,1743,222720,2317,Waitangi,6574,155, +1,1744,223232,2317,Waitangi,6637,155, +1,1745,223232,2317,Waitangi,6637,155, +1,1746,223232,2317,Waitangi,6637,155, +1,1747,223232,2317,Waitangi,6637,155, +1,1748,223744,2317,Waitangi,6700,155, +1,1749,223744,2317,Waitangi,6700,155, +1,1750,223744,2317,Waitangi,6700,155, +1,1751,223744,2317,Waitangi,6700,155, +1,1752,224256,2317,Waitangi,6763,155, +1,1753,224256,2317,Waitangi,6763,155, +1,1754,224256,2317,Waitangi,6763,155, +1,1755,224256,2317,Waitangi,6763,155, +1,1756,224768,2317,Waitangi,6826,155, +1,1757,224768,2317,Waitangi,6826,155, +1,1758,224768,2317,Waitangi,6826,155, +1,1759,224768,2317,Waitangi,6826,155, +1,1760,225280,2317,Waitangi,6889,155, +1,1761,225280,2317,Waitangi,6889,155, +1,1762,225280,2317,Waitangi,6889,155, +1,1763,225280,2317,Waitangi,6889,155, +1,1764,225792,2317,Waitangi,6953,155, +1,1765,225792,2317,Waitangi,6953,155, +1,1766,225792,2317,Waitangi,6953,155, +1,1767,225792,2317,Waitangi,6953,155, +1,1768,226304,2317,Waitangi,7017,155, +1,1769,226304,2317,Waitangi,7017,155, +1,1770,226304,2317,Waitangi,7017,155, +1,1771,226304,2317,Waitangi,7017,155, +1,1772,226816,2317,Waitangi,7081,155, +1,1773,226816,2317,Waitangi,7081,155, +1,1774,226816,2317,Waitangi,7081,155, +1,1775,226816,2317,Waitangi,7081,155, +1,1776,227328,2317,Waitangi,7145,155, +1,1777,227328,2317,Waitangi,7145,155, +1,1778,227328,2317,Waitangi,7145,155, +1,1779,227328,2317,Waitangi,7145,155, +1,1780,227840,2317,Waitangi,7209,155, +1,1781,227840,2317,Waitangi,7209,155, +1,1782,227840,2317,Waitangi,7209,155, +1,1783,227840,2317,Waitangi,7209,155, +1,1784,228352,2317,Waitangi,7273,155, +1,1785,228352,2317,Waitangi,7273,155, +1,1786,228352,2317,Waitangi,7273,155, +1,1787,228352,2317,Waitangi,7273,155, +1,1788,228864,2317,Waitangi,7337,155, +1,1789,228864,2317,Waitangi,7337,155, +1,1790,228864,2317,Waitangi,7337,155, +1,1791,228864,2317,Waitangi,7337,155, +1,1792,229376,2317,Waitangi,7401,155, +1,1793,229376,2317,Waitangi,7401,155, +1,1794,229376,2317,Waitangi,7401,155, +1,1795,229376,2317,Waitangi,7401,155, +1,1796,229888,2317,Waitangi,7465,155, +1,1797,229888,2317,Waitangi,7465,155, +1,1798,229888,2317,Waitangi,7465,155, +1,1799,229888,2317,Waitangi,7465,155, +1,1800,230400,2317,Waitangi,7529,155, +1,1801,230400,2317,Waitangi,7529,155, +1,1802,230400,2317,Waitangi,7529,155, +1,1803,230400,2317,Waitangi,7529,155, +1,1804,230912,2317,Waitangi,7593,155, +1,1805,230912,2317,Waitangi,7593,155, +1,1806,230912,2317,Waitangi,7593,155, +1,1807,230912,2317,Waitangi,7593,155, +1,1808,231424,2317,Waitangi,7657,155, +1,1809,231424,2317,Waitangi,7657,155, +1,1810,231424,2317,Waitangi,7657,155, +1,1811,231424,2317,Waitangi,7657,155, +1,1812,231936,2317,Waitangi,7722,155, +1,1813,231936,2317,Waitangi,7722,155, +1,1814,231936,2317,Waitangi,7722,155, +1,1815,231936,2317,Waitangi,7722,155, +1,1816,232448,2317,Waitangi,7787,155, +1,1817,232448,2317,Waitangi,7787,155, +1,1818,232448,2317,Waitangi,7787,155, +1,1819,232448,2317,Waitangi,7787,155, +1,1820,232960,2317,Waitangi,7852,155, +1,1821,232960,2317,Waitangi,7852,155, +1,1822,232960,2317,Waitangi,7852,155, +1,1823,232960,2317,Waitangi,7852,155, +1,1824,233472,2317,Waitangi,7917,155, +1,1825,233472,2317,Waitangi,7917,155, +1,1826,233472,2317,Waitangi,7917,155, +1,1827,233472,2317,Waitangi,7917,155, +1,1828,233984,2317,Waitangi,7982,155, +1,1829,233984,2317,Waitangi,7982,155, +1,1830,233984,2317,Waitangi,7982,155, +1,1831,233984,2317,Waitangi,7982,155, +1,1832,234496,2317,Waitangi,8047,155, +1,1833,234496,2317,Waitangi,8047,155, +1,1834,234496,2317,Waitangi,8047,155, +1,1835,234496,2317,Waitangi,8047,155, +1,1836,235008,2317,Waitangi,8112,155, +1,1837,235008,2317,Waitangi,8112,155, +1,1838,235008,2317,Waitangi,8112,155, +1,1839,235008,2317,Waitangi,8112,155, +1,1840,235520,2317,Waitangi,8177,155, +1,1841,235520,2317,Waitangi,8177,155, +1,1842,235520,2317,Waitangi,8177,155, +1,1843,235520,2317,Waitangi,8177,155, +1,1844,236032,2317,Waitangi,8242,155, +1,1845,236032,2317,Waitangi,8242,155, +1,1846,236032,2317,Waitangi,8242,155, +1,1847,236032,2317,Waitangi,8242,155, +1,1848,236544,2317,Waitangi,8307,155, +1,1849,236544,2317,Waitangi,8307,155, +1,1850,236544,2317,Waitangi,8307,155, +1,1851,236544,2317,Waitangi,8307,155, +1,1852,237056,2317,Waitangi,8372,155, +1,1853,237056,2317,Waitangi,8372,155, +1,1854,237056,2317,Waitangi,8372,155, +1,1855,237056,2317,Waitangi,8372,155, +1,1856,237568,2317,Waitangi,8437,155, +1,1857,237568,2317,Waitangi,8437,155, +1,1858,237568,2317,Waitangi,8437,155, +1,1859,237568,2317,Waitangi,8437,155, +1,1860,238080,2317,Waitangi,8502,155, +1,1861,238080,2317,Waitangi,8502,155, +1,1862,238080,2317,Waitangi,8502,155, +1,1863,238080,2317,Waitangi,8502,155, +1,1864,238592,2317,Waitangi,8567,155, +1,1865,238592,2317,Waitangi,8567,155, +1,1866,238592,2317,Waitangi,8567,155, +1,1867,238592,2317,Waitangi,8567,155, +1,1868,239104,2317,Waitangi,8632,155, +1,1869,239104,2317,Waitangi,8632,155, +1,1870,239104,2317,Waitangi,8632,155, +1,1871,239104,2317,Waitangi,8632,155, +1,1872,239616,2317,Waitangi,8697,155, +1,1873,239616,2317,Waitangi,8697,155, +1,1874,239616,2317,Waitangi,8697,155, +1,1875,239616,2317,Waitangi,8697,155, +1,1876,240128,2317,Waitangi,8763,155, +1,1877,240128,2317,Waitangi,8763,155, +1,1878,240128,2317,Waitangi,8763,155, +1,1879,240128,2317,Waitangi,8763,155, +1,1880,240640,2317,Waitangi,8829,155, +1,1881,240640,2317,Waitangi,8829,155, +1,1882,240640,2317,Waitangi,8829,155, +1,1883,240640,2317,Waitangi,8829,155, +1,1884,241152,2317,Waitangi,8895,155, +1,1885,241152,2317,Waitangi,8895,155, +1,1886,241152,2317,Waitangi,8895,155, +1,1887,241152,2317,Waitangi,8895,155, +1,1888,241664,2317,Waitangi,8961,155, +1,1889,241664,2317,Waitangi,8961,155, +1,1890,241664,2317,Waitangi,8961,155, +1,1891,241664,2317,Waitangi,8961,155, +1,1892,242176,2317,Waitangi,9027,155, +1,1893,242176,2317,Waitangi,9027,155, +1,1894,242176,2317,Waitangi,9027,155, +1,1895,242176,2317,Waitangi,9027,155, +1,1896,242688,2317,Waitangi,9093,155, +1,1897,242688,2317,Waitangi,9093,155, +1,1898,242688,2317,Waitangi,9093,155, +1,1899,242688,2317,Waitangi,9093,155, +1,1900,243200,2317,Waitangi,9159,155, +1,1901,243200,2317,Waitangi,9159,155, +1,1902,243200,2317,Waitangi,9159,155, +1,1903,243200,2317,Waitangi,9159,155, +1,1904,243712,2317,Waitangi,9225,155, +1,1905,243712,2317,Waitangi,9225,155, +1,1906,243712,2317,Waitangi,9225,155, +1,1907,243712,2317,Waitangi,9225,155, +1,1908,244224,2317,Waitangi,9291,155, +1,1909,244224,2317,Waitangi,9291,155, +1,1910,244224,2317,Waitangi,9291,155, +1,1911,244224,2317,Waitangi,9291,155, +1,1912,244736,2317,Waitangi,9357,155, +1,1913,244736,2317,Waitangi,9357,155, +1,1914,244736,2317,Waitangi,9357,155, +1,1915,244736,2317,Waitangi,9357,155, +1,1916,245248,2317,Waitangi,9423,155, +1,1917,245248,2317,Waitangi,9423,155, +1,1918,245248,2317,Waitangi,9423,155, +1,1919,245248,2317,Waitangi,9423,155, +1,1920,245760,2317,Waitangi,9489,155, +1,1921,245760,2317,Waitangi,9489,155, +1,1922,245760,2317,Waitangi,9489,155, +1,1923,245760,2317,Waitangi,9489,155, +1,1924,246272,2317,Waitangi,9555,155, +1,1925,246272,2317,Waitangi,9555,155, +1,1926,246272,2317,Waitangi,9555,155, +1,1927,246272,2317,Waitangi,9555,155, +1,1928,246784,2317,Waitangi,9621,155, +1,1929,246784,2317,Waitangi,9621,155, +1,1930,246784,2317,Waitangi,9621,155, +1,1931,246784,2317,Waitangi,9621,155, +1,1932,247296,2317,Waitangi,9687,155, +1,1933,247296,2317,Waitangi,9687,155, +1,1934,247296,2317,Waitangi,9687,155, +1,1935,247296,2317,Waitangi,9687,155, +1,1936,247808,2317,Waitangi,9753,155, +1,1937,247808,2317,Waitangi,9753,155, +1,1938,247808,2317,Waitangi,9753,155, +1,1939,247808,2317,Waitangi,9753,155, +1,1940,248320,2317,Waitangi,9819,155, +1,1941,248320,2317,Waitangi,9819,155, +1,1942,248320,2317,Waitangi,9819,155, +1,1943,248320,2317,Waitangi,9819,155, +1,1944,248832,2317,Waitangi,9885,155, +1,1945,248832,2317,Waitangi,9885,155, +1,1946,248832,2317,Waitangi,9885,155, +1,1947,248832,2317,Waitangi,9885,155, +1,1948,249344,2317,Waitangi,9952,155, +1,1949,249344,2317,Waitangi,9952,155, +1,1950,249344,2317,Waitangi,9952,155, +1,1951,249344,2317,Waitangi,9952,155, +1,1952,249856,2317,Waitangi,10019,155, +1,1953,249856,2317,Waitangi,10019,155, +1,1954,249856,2317,Waitangi,10019,155, +1,1955,249856,2317,Waitangi,10019,155, +1,1956,250368,2317,Waitangi,10086,155, +1,1957,250368,2317,Waitangi,10086,155, +1,1958,250368,2317,Waitangi,10086,155, +1,1959,250368,2317,Waitangi,10086,155, +1,1960,250880,2317,Waitangi,10153,155, +1,1961,250880,2317,Waitangi,10153,155, +1,1962,250880,2317,Waitangi,10153,155, +1,1963,250880,2317,Waitangi,10153,155, +1,1964,251392,2317,Waitangi,10220,155, +1,1965,251392,2317,Waitangi,10220,155, +1,1966,251392,2317,Waitangi,10220,155, +1,1967,251392,2317,Waitangi,10220,155, +1,1968,251904,2317,Waitangi,10287,155, +1,1969,251904,2317,Waitangi,10287,155, +1,1970,251904,2317,Waitangi,10287,155, +1,1971,251904,2317,Waitangi,10287,155, +1,1972,252416,2317,Waitangi,10354,155, +1,1973,252416,2317,Waitangi,10354,155, +1,1974,252416,2317,Waitangi,10354,155, +1,1975,252416,2317,Waitangi,10354,155, +1,1976,252928,2317,Waitangi,10421,155, +1,1977,252928,2317,Waitangi,10421,155, +1,1978,252928,2317,Waitangi,10421,155, +1,1979,252928,2317,Waitangi,10421,155, +1,1980,253440,2317,Waitangi,10488,155, +1,1981,253440,2317,Waitangi,10488,155, +1,1982,253440,2317,Waitangi,10488,155, +1,1983,253440,2317,Waitangi,10488,155, +1,1984,253952,2317,Waitangi,10555,155, +1,1985,253952,2317,Waitangi,10555,155, +1,1986,253952,2317,Waitangi,10555,155, +1,1987,253952,2317,Waitangi,10555,155, +1,1988,254464,2317,Waitangi,10622,155, +1,1989,254464,2317,Waitangi,10622,155, +1,1990,254464,2317,Waitangi,10622,155, +1,1991,254464,2317,Waitangi,10622,155, +1,1992,254976,2317,Waitangi,10689,155, +1,1993,254976,2317,Waitangi,10689,155, +1,1994,254976,2317,Waitangi,10689,155, +1,1995,254976,2317,Waitangi,10689,155, +1,1996,255488,2317,Waitangi,10756,155, +1,1997,255488,2317,Waitangi,10756,155, +1,1998,255488,2317,Waitangi,10756,155, +1,1999,255488,2317,Waitangi,10756,155, +1,2000,256000,2317,Waitangi,10823,155, +1,2001,256000,2317,Waitangi,10823,155, +1,2002,256000,2317,Waitangi,10823,155, +1,2003,256000,2317,Waitangi,10823,155, +1,2004,256512,2317,Waitangi,10890,155, +1,2005,256512,2317,Waitangi,10890,155, +1,2006,256512,2317,Waitangi,10890,155, +1,2007,256512,2317,Waitangi,10890,155, +1,2008,257024,2317,Waitangi,10957,155, +1,2009,257024,2317,Waitangi,10957,155, +1,2010,257024,2317,Waitangi,10957,155, +1,2011,257024,2317,Waitangi,10957,155, +1,2012,257536,2317,Waitangi,11024,155, +1,2013,257536,2317,Waitangi,11024,155, +1,2014,257536,2317,Waitangi,11024,155, +1,2015,257536,2317,Waitangi,11024,155, +1,2016,258048,2317,Waitangi,11091,155, +1,2017,258048,2317,Waitangi,11091,155, +1,2018,258048,2317,Waitangi,11091,155, +1,2019,258048,2317,Waitangi,11091,155, +1,2020,258560,2317,Waitangi,11158,155, +1,2021,258560,2317,Waitangi,11158,155, +1,2022,258560,2317,Waitangi,11158,155, +1,2023,258560,2317,Waitangi,11158,155, +1,2024,259072,2317,Waitangi,11225,155, +1,2025,259072,2317,Waitangi,11225,155, +1,2026,259072,2317,Waitangi,11225,155, +1,2027,259072,2317,Waitangi,11225,155, +1,2028,259584,2317,Waitangi,11292,155, +1,2029,259584,2317,Waitangi,11292,155, +1,2030,259584,2317,Waitangi,11292,155, +1,2031,259584,2317,Waitangi,11292,155, +1,2032,260096,2317,Waitangi,11359,155, +1,2033,260096,2317,Waitangi,11359,155, +1,2034,260096,2317,Waitangi,11359,155, +1,2035,260096,2317,Waitangi,11359,155, +1,2036,260608,2317,Waitangi,11426,155, +1,2037,260608,2317,Waitangi,11426,155, +1,2038,260608,2317,Waitangi,11426,155, +1,2039,260608,2317,Waitangi,11426,155, +1,2040,261120,2317,Waitangi,11493,155, +1,2041,261120,2317,Waitangi,11493,155, +1,2042,261120,2317,Waitangi,11493,155, +1,2043,261120,2317,Waitangi,11493,155, +1,2044,261632,2317,Waitangi,11560,155, +1,2045,261632,2317,Waitangi,11560,155, +1,2046,261632,2317,Waitangi,11560,155, +1,2047,261632,2317,Waitangi,11560,155, +2,0,0,6919,Anchorage,1,235, +2,1,0,6919,Anchorage,1,235, +2,2,0,6919,Anchorage,1,235, +2,3,0,6919,Anchorage,1,235, +2,4,512,6919,Anchorage,56,235, +2,5,512,6919,Anchorage,56,235, +2,6,512,6919,Anchorage,56,235, +2,7,512,6919,Anchorage,56,235, +2,8,1024,6919,Anchorage,111,235, +2,9,1024,6919,Anchorage,111,235, +2,10,1024,6919,Anchorage,111,235, +2,11,1024,6919,Anchorage,111,235, +2,12,1536,6919,Anchorage,166,235, +2,13,1536,6919,Anchorage,166,235, +2,14,1536,6919,Anchorage,166,235, +2,15,1536,6919,Anchorage,166,235, +2,16,2048,6919,Anchorage,221,235, +2,17,2048,6919,Anchorage,221,235, +2,18,2048,6919,Anchorage,221,235, +2,19,2048,6919,Anchorage,221,235, +2,20,2560,6919,Anchorage,276,235, +2,21,2560,6919,Anchorage,276,235, +2,22,2560,6919,Anchorage,276,235, +2,23,2560,6919,Anchorage,276,235, +2,24,3072,6919,Anchorage,331,235, +2,25,3072,6919,Anchorage,331,235, +2,26,3072,6919,Anchorage,331,235, +2,27,3072,6919,Anchorage,331,235, +2,28,3584,6919,Anchorage,386,235, +2,29,3584,6919,Anchorage,386,235, +2,30,3584,6919,Anchorage,386,235, +2,31,3584,6919,Anchorage,386,235, +2,32,4096,6919,Anchorage,441,235, +2,33,4096,6919,Anchorage,441,235, +2,34,4096,6919,Anchorage,441,235, +2,35,4096,6919,Anchorage,441,235, +2,36,4608,6919,Anchorage,496,235, +2,37,4608,6919,Anchorage,496,235, +2,38,4608,6919,Anchorage,496,235, +2,39,4608,6919,Anchorage,496,235, +2,40,5120,6919,Anchorage,551,235, +2,41,5120,6919,Anchorage,551,235, +2,42,5120,6919,Anchorage,551,235, +2,43,5120,6919,Anchorage,551,235, +2,44,5632,6919,Anchorage,606,235, +2,45,5632,6919,Anchorage,606,235, +2,46,5632,6919,Anchorage,606,235, +2,47,5632,6919,Anchorage,606,235, +2,48,6144,6919,Anchorage,661,235, +2,49,6144,6919,Anchorage,661,235, +2,50,6144,6919,Anchorage,661,235, +2,51,6144,6919,Anchorage,661,235, +2,52,6656,6919,Anchorage,716,235, +2,53,6656,6919,Anchorage,716,235, +2,54,6656,6919,Anchorage,716,235, +2,55,6656,6919,Anchorage,716,235, +2,56,7168,6919,Anchorage,771,235, +2,57,7168,6919,Anchorage,771,235, +2,58,7168,6919,Anchorage,771,235, +2,59,7168,6919,Anchorage,771,235, +2,60,7680,6919,Anchorage,826,235, +2,61,7680,6919,Anchorage,826,235, +2,62,7680,6919,Anchorage,826,235, +2,63,7680,6919,Anchorage,826,235, +2,64,8192,6919,Anchorage,881,235, +2,65,8192,6919,Anchorage,881,235, +2,66,8192,6919,Anchorage,881,235, +2,67,8192,6919,Anchorage,881,235, +2,68,8704,6919,Anchorage,936,235, +2,69,8704,6919,Anchorage,936,235, +2,70,8704,6919,Anchorage,936,235, +2,71,8704,6919,Anchorage,936,235, +2,72,9216,6919,Anchorage,991,235, +2,73,9216,6919,Anchorage,991,235, +2,74,9216,6919,Anchorage,991,235, +2,75,9216,6919,Anchorage,991,235, +2,76,9728,6919,Anchorage,1046,235, +2,77,9728,6919,Anchorage,1046,235, +2,78,9728,6919,Anchorage,1046,235, +2,79,9728,6919,Anchorage,1046,235, +2,80,10240,6919,Anchorage,1101,235, +2,81,10240,6919,Anchorage,1101,235, +2,82,10240,6919,Anchorage,1101,235, +2,83,10240,6919,Anchorage,1101,235, +2,84,10752,6919,Anchorage,1156,235, +2,85,10752,6919,Anchorage,1156,235, +2,86,10752,6919,Anchorage,1156,235, +2,87,10752,6919,Anchorage,1156,235, +2,88,11264,6919,Anchorage,1211,235, +2,89,11264,6919,Anchorage,1211,235, +2,90,11264,6919,Anchorage,1211,235, +2,91,11264,6919,Anchorage,1211,235, +2,92,11776,6919,Anchorage,1266,235, +2,93,11776,6919,Anchorage,1266,235, +2,94,11776,6919,Anchorage,1266,235, +2,95,11776,6919,Anchorage,1266,235, +2,96,12288,6919,Anchorage,1321,235, +2,97,12288,6919,Anchorage,1321,235, +2,98,12288,6919,Anchorage,1321,235, +2,99,12288,6919,Anchorage,1321,235, +2,100,12800,6919,Anchorage,1376,235, +2,101,12800,6919,Anchorage,1376,235, +2,102,12800,6919,Anchorage,1376,235, +2,103,12800,6919,Anchorage,1376,235, +2,104,13312,6919,Anchorage,1431,235, +2,105,13312,6919,Anchorage,1431,235, +2,106,13312,6919,Anchorage,1431,235, +2,107,13312,6919,Anchorage,1431,235, +2,108,13824,6919,Anchorage,1486,235, +2,109,13824,6919,Anchorage,1486,235, +2,110,13824,6919,Anchorage,1486,235, +2,111,13824,6919,Anchorage,1486,235, +2,112,14336,6919,Anchorage,1541,235, +2,113,14336,6919,Anchorage,1541,235, +2,114,14336,6919,Anchorage,1541,235, +2,115,14336,6919,Anchorage,1541,235, +2,116,14848,6919,Anchorage,1596,235, +2,117,14848,6919,Anchorage,1596,235, +2,118,14848,6919,Anchorage,1596,235, +2,119,14848,6919,Anchorage,1596,235, +2,120,15360,6919,Anchorage,1651,235, +2,121,15360,6919,Anchorage,1651,235, +2,122,15360,6919,Anchorage,1651,235, +2,123,15360,6919,Anchorage,1651,235, +2,124,15872,6919,Anchorage,1706,235, +2,125,15872,6919,Anchorage,1706,235, +2,126,15872,6919,Anchorage,1706,235, +2,127,15872,6919,Anchorage,1706,235, +2,128,16384,6919,Anchorage,1761,235, +2,129,16384,6919,Anchorage,1761,235, +2,130,16384,6919,Anchorage,1761,235, +2,131,16384,6919,Anchorage,1761,235, +2,132,16896,6919,Anchorage,1816,235, +2,133,16896,6919,Anchorage,1816,235, +2,134,16896,6919,Anchorage,1816,235, +2,135,16896,6919,Anchorage,1816,235, +2,136,17408,6919,Anchorage,1871,235, +2,137,17408,6919,Anchorage,1871,235, +2,138,17408,6919,Anchorage,1871,235, +2,139,17408,6919,Anchorage,1871,235, +2,140,17920,6919,Anchorage,1926,235, +2,141,17920,6919,Anchorage,1926,235, +2,142,17920,6919,Anchorage,1926,235, +2,143,17920,6919,Anchorage,1926,235, +2,144,18432,6919,Anchorage,1981,235, +2,145,18432,6919,Anchorage,1981,235, +2,146,18432,6919,Anchorage,1981,235, +2,147,18432,6919,Anchorage,1981,235, +2,148,18944,6919,Anchorage,2036,235, +2,149,18944,6919,Anchorage,2036,235, +2,150,18944,6919,Anchorage,2036,235, +2,151,18944,6919,Anchorage,2036,235, +2,152,19456,6919,Anchorage,2091,235, +2,153,19456,6919,Anchorage,2091,235, +2,154,19456,6919,Anchorage,2091,235, +2,155,19456,6919,Anchorage,2091,235, +2,156,19968,6919,Anchorage,2146,235, +2,157,19968,6919,Anchorage,2146,235, +2,158,19968,6919,Anchorage,2146,235, +2,159,19968,6919,Anchorage,2146,235, +2,160,20480,6919,Anchorage,2201,235, +2,161,20480,6919,Anchorage,2201,235, +2,162,20480,6919,Anchorage,2201,235, +2,163,20480,6919,Anchorage,2201,235, +2,164,20992,6919,Anchorage,2256,235, +2,165,20992,6919,Anchorage,2256,235, +2,166,20992,6919,Anchorage,2256,235, +2,167,20992,6919,Anchorage,2256,235, +2,168,21504,6919,Anchorage,2311,235, +2,169,21504,6919,Anchorage,2311,235, +2,170,21504,6919,Anchorage,2311,235, +2,171,21504,6919,Anchorage,2311,235, +2,172,22016,6919,Anchorage,2366,235, +2,173,22016,6919,Anchorage,2366,235, +2,174,22016,6919,Anchorage,2366,235, +2,175,22016,6919,Anchorage,2366,235, +2,176,22528,6919,Anchorage,2421,235, +2,177,22528,6919,Anchorage,2421,235, +2,178,22528,6919,Anchorage,2421,235, +2,179,22528,6919,Anchorage,2421,235, +2,180,23040,6919,Anchorage,2476,235, +2,181,23040,6919,Anchorage,2476,235, +2,182,23040,6919,Anchorage,2476,235, +2,183,23040,6919,Anchorage,2476,235, +2,184,23552,6919,Anchorage,2531,235, +2,185,23552,6919,Anchorage,2531,235, +2,186,23552,6919,Anchorage,2531,235, +2,187,23552,6919,Anchorage,2531,235, +2,188,24064,6919,Anchorage,2586,235, +2,189,24064,6919,Anchorage,2586,235, +2,190,24064,6919,Anchorage,2586,235, +2,191,24064,6919,Anchorage,2586,235, +2,192,24576,6919,Anchorage,2641,235, +2,193,24576,6919,Anchorage,2641,235, +2,194,24576,6919,Anchorage,2641,235, +2,195,24576,6919,Anchorage,2641,235, +2,196,25088,6919,Anchorage,2696,235, +2,197,25088,6919,Anchorage,2696,235, +2,198,25088,6919,Anchorage,2696,235, +2,199,25088,6919,Anchorage,2696,235, +2,200,25600,6919,Anchorage,2751,235, +2,201,25600,6919,Anchorage,2751,235, +2,202,25600,6919,Anchorage,2751,235, +2,203,25600,6919,Anchorage,2751,235, +2,204,26112,6919,Anchorage,2806,235, +2,205,26112,6919,Anchorage,2806,235, +2,206,26112,6919,Anchorage,2806,235, +2,207,26112,6919,Anchorage,2806,235, +2,208,26624,6919,Anchorage,2861,235, +2,209,26624,6919,Anchorage,2861,235, +2,210,26624,6919,Anchorage,2861,235, +2,211,26624,6919,Anchorage,2861,235, +2,212,27136,6919,Anchorage,2916,235, +2,213,27136,6919,Anchorage,2916,235, +2,214,27136,6919,Anchorage,2916,235, +2,215,27136,6919,Anchorage,2916,235, +2,216,27648,6919,Anchorage,2971,235, +2,217,27648,6919,Anchorage,2971,235, +2,218,27648,6919,Anchorage,2971,235, +2,219,27648,6919,Anchorage,2971,235, +2,220,28160,6919,Anchorage,3026,235, +2,221,28160,6919,Anchorage,3026,235, +2,222,28160,6919,Anchorage,3026,235, +2,223,28160,6919,Anchorage,3026,235, +2,224,28672,6919,Anchorage,3081,235, +2,225,28672,6919,Anchorage,3081,235, +2,226,28672,6919,Anchorage,3081,235, +2,227,28672,6919,Anchorage,3081,235, +2,228,29184,6919,Anchorage,3136,235, +2,229,29184,6919,Anchorage,3136,235, +2,230,29184,6919,Anchorage,3136,235, +2,231,29184,6919,Anchorage,3136,235, +2,232,29696,6919,Anchorage,3191,235, +2,233,29696,6919,Anchorage,3191,235, +2,234,29696,6919,Anchorage,3191,235, +2,235,29696,6919,Anchorage,3191,235, +2,236,30208,6919,Anchorage,3246,235, +2,237,30208,6919,Anchorage,3246,235, +2,238,30208,6919,Anchorage,3246,235, +2,239,30208,6919,Anchorage,3246,235, +2,240,30720,6919,Anchorage,3301,235, +2,241,30720,6919,Anchorage,3301,235, +2,242,30720,6919,Anchorage,3301,235, +2,243,30720,6919,Anchorage,3301,235, +2,244,31232,6919,Anchorage,3356,235, +2,245,31232,6919,Anchorage,3356,235, +2,246,31232,6919,Anchorage,3356,235, +2,247,31232,6919,Anchorage,3356,235, +2,248,31744,6919,Anchorage,3411,235, +2,249,31744,6919,Anchorage,3411,235, +2,250,31744,6919,Anchorage,3411,235, +2,251,31744,6919,Anchorage,3411,235, +2,252,32256,6919,Anchorage,3466,235, +2,253,32256,6919,Anchorage,3466,235, +2,254,32256,6919,Anchorage,3466,235, +2,255,32256,6919,Anchorage,3466,235, +2,256,32768,6919,Anchorage,3521,235, +2,257,32768,6919,Anchorage,3521,235, +2,258,32768,6919,Anchorage,3521,235, +2,259,32768,6919,Anchorage,3521,235, +2,260,33280,6919,Anchorage,3576,235, +2,261,33280,6919,Anchorage,3576,235, +2,262,33280,6919,Anchorage,3576,235, +2,263,33280,6919,Anchorage,3576,235, +2,264,33792,6919,Anchorage,3631,235, +2,265,33792,6919,Anchorage,3631,235, +2,266,33792,6919,Anchorage,3631,235, +2,267,33792,6919,Anchorage,3631,235, +2,268,34304,6919,Anchorage,3686,235, +2,269,34304,6919,Anchorage,3686,235, +2,270,34304,6919,Anchorage,3686,235, +2,271,34304,6919,Anchorage,3686,235, +2,272,34816,6919,Anchorage,3741,235, +2,273,34816,6919,Anchorage,3741,235, +2,274,34816,6919,Anchorage,3741,235, +2,275,34816,6919,Anchorage,3741,235, +2,276,35328,6919,Anchorage,3796,235, +2,277,35328,6919,Anchorage,3796,235, +2,278,35328,6919,Anchorage,3796,235, +2,279,35328,6919,Anchorage,3796,235, +2,280,35840,6919,Anchorage,3851,235, +2,281,35840,6919,Anchorage,3851,235, +2,282,35840,6919,Anchorage,3851,235, +2,283,35840,6919,Anchorage,3851,235, +2,284,36352,6919,Anchorage,3906,235, +2,285,36352,6919,Anchorage,3906,235, +2,286,36352,6919,Anchorage,3906,235, +2,287,36352,6919,Anchorage,3906,235, +2,288,36864,6919,Anchorage,3961,235, +2,289,36864,6919,Anchorage,3961,235, +2,290,36864,6919,Anchorage,3961,235, +2,291,36864,6919,Anchorage,3961,235, +2,292,37376,6919,Anchorage,4016,235, +2,293,37376,6919,Anchorage,4016,235, +2,294,37376,6919,Anchorage,4016,235, +2,295,37376,6919,Anchorage,4016,235, +2,296,37888,6919,Anchorage,4071,235, +2,297,37888,6919,Anchorage,4071,235, +2,298,37888,6919,Anchorage,4071,235, +2,299,37888,6919,Anchorage,4071,235, +2,300,38400,6919,Anchorage,4126,235, +2,301,38400,6919,Anchorage,4126,235, +2,302,38400,6919,Anchorage,4126,235, +2,303,38400,6919,Anchorage,4126,235, +2,304,38912,6919,Anchorage,4181,235, +2,305,38912,6919,Anchorage,4181,235, +2,306,38912,6919,Anchorage,4181,235, +2,307,38912,6919,Anchorage,4181,235, +2,308,39424,6919,Anchorage,4236,235, +2,309,39424,6919,Anchorage,4236,235, +2,310,39424,6919,Anchorage,4236,235, +2,311,39424,6919,Anchorage,4236,235, +2,312,39936,6919,Anchorage,4291,235, +2,313,39936,6919,Anchorage,4291,235, +2,314,39936,6919,Anchorage,4291,235, +2,315,39936,6919,Anchorage,4291,235, +2,316,40448,6919,Anchorage,4346,235, +2,317,40448,6919,Anchorage,4346,235, +2,318,40448,6919,Anchorage,4346,235, +2,319,40448,6919,Anchorage,4346,235, +2,320,40960,6919,Anchorage,4401,235, +2,321,40960,6919,Anchorage,4401,235, +2,322,40960,6919,Anchorage,4401,235, +2,323,40960,6919,Anchorage,4401,235, +2,324,41472,6919,Anchorage,4456,235, +2,325,41472,6919,Anchorage,4456,235, +2,326,41472,6919,Anchorage,4456,235, +2,327,41472,6919,Anchorage,4456,235, +2,328,41984,6919,Anchorage,4510,235, +2,329,41984,6919,Anchorage,4510,235, +2,330,41984,6919,Anchorage,4510,235, +2,331,41984,6919,Anchorage,4510,235, +2,332,42496,6919,Anchorage,4564,235, +2,333,42496,6919,Anchorage,4564,235, +2,334,42496,6919,Anchorage,4564,235, +2,335,42496,6919,Anchorage,4564,235, +2,336,43008,6919,Anchorage,4618,235, +2,337,43008,6919,Anchorage,4618,235, +2,338,43008,6919,Anchorage,4618,235, +2,339,43008,6919,Anchorage,4618,235, +2,340,43520,6919,Anchorage,4672,235, +2,341,43520,6919,Anchorage,4672,235, +2,342,43520,6919,Anchorage,4672,235, +2,343,43520,6919,Anchorage,4672,235, +2,344,44032,6919,Anchorage,4726,235, +2,345,44032,6919,Anchorage,4726,235, +2,346,44032,6919,Anchorage,4726,235, +2,347,44032,6919,Anchorage,4726,235, +2,348,44544,6919,Anchorage,4780,235, +2,349,44544,6919,Anchorage,4780,235, +2,350,44544,6919,Anchorage,4780,235, +2,351,44544,6919,Anchorage,4780,235, +2,352,45056,6919,Anchorage,4834,235, +2,353,45056,6919,Anchorage,4834,235, +2,354,45056,6919,Anchorage,4834,235, +2,355,45056,6919,Anchorage,4834,235, +2,356,45568,6919,Anchorage,4888,235, +2,357,45568,6919,Anchorage,4888,235, +2,358,45568,6919,Anchorage,4888,235, +2,359,45568,6919,Anchorage,4888,235, +2,360,46080,6919,Anchorage,4942,235, +2,361,46080,6919,Anchorage,4942,235, +2,362,46080,6919,Anchorage,4942,235, +2,363,46080,6919,Anchorage,4942,235, +2,364,46592,6919,Anchorage,4996,235, +2,365,46592,6919,Anchorage,4996,235, +2,366,46592,6919,Anchorage,4996,235, +2,367,46592,6919,Anchorage,4996,235, +2,368,47104,6919,Anchorage,5050,235, +2,369,47104,6919,Anchorage,5050,235, +2,370,47104,6919,Anchorage,5050,235, +2,371,47104,6919,Anchorage,5050,235, +2,372,47616,6919,Anchorage,5104,235, +2,373,47616,6919,Anchorage,5104,235, +2,374,47616,6919,Anchorage,5104,235, +2,375,47616,6919,Anchorage,5104,235, +2,376,48128,6919,Anchorage,5158,235, +2,377,48128,6919,Anchorage,5158,235, +2,378,48128,6919,Anchorage,5158,235, +2,379,48128,6919,Anchorage,5158,235, +2,380,48640,6919,Anchorage,5212,235, +2,381,48640,6919,Anchorage,5212,235, +2,382,48640,6919,Anchorage,5212,235, +2,383,48640,6919,Anchorage,5212,235, +2,384,49152,6919,Anchorage,5266,235, +2,385,49152,6919,Anchorage,5266,235, +2,386,49152,6919,Anchorage,5266,235, +2,387,49152,6919,Anchorage,5266,235, +2,388,49664,6919,Anchorage,5320,235, +2,389,49664,6919,Anchorage,5320,235, +2,390,49664,6919,Anchorage,5320,235, +2,391,49664,6919,Anchorage,5320,235, +2,392,50176,6919,Anchorage,5374,235, +2,393,50176,6919,Anchorage,5374,235, +2,394,50176,6919,Anchorage,5374,235, +2,395,50176,6919,Anchorage,5374,235, +2,396,50688,6919,Anchorage,5428,235, +2,397,50688,6919,Anchorage,5428,235, +2,398,50688,6919,Anchorage,5428,235, +2,399,50688,6919,Anchorage,5428,235, +2,400,51200,6919,Anchorage,5482,235, +2,401,51200,6919,Anchorage,5482,235, +2,402,51200,6919,Anchorage,5482,235, +2,403,51200,6919,Anchorage,5482,235, +2,404,51712,6919,Anchorage,5536,235, +2,405,51712,6919,Anchorage,5536,235, +2,406,51712,6919,Anchorage,5536,235, +2,407,51712,6919,Anchorage,5536,235, +2,408,52224,6919,Anchorage,5590,235, +2,409,52224,6919,Anchorage,5590,235, +2,410,52224,6919,Anchorage,5590,235, +2,411,52224,6919,Anchorage,5590,235, +2,412,52736,6919,Anchorage,5644,235, +2,413,52736,6919,Anchorage,5644,235, +2,414,52736,6919,Anchorage,5644,235, +2,415,52736,6919,Anchorage,5644,235, +2,416,53248,6919,Anchorage,5698,235, +2,417,53248,6919,Anchorage,5698,235, +2,418,53248,6919,Anchorage,5698,235, +2,419,53248,6919,Anchorage,5698,235, +2,420,53760,6919,Anchorage,5752,235, +2,421,53760,6919,Anchorage,5752,235, +2,422,53760,6919,Anchorage,5752,235, +2,423,53760,6919,Anchorage,5752,235, +2,424,54272,6919,Anchorage,5806,235, +2,425,54272,6919,Anchorage,5806,235, +2,426,54272,6919,Anchorage,5806,235, +2,427,54272,6919,Anchorage,5806,235, +2,428,54784,6919,Anchorage,5860,235, +2,429,54784,6919,Anchorage,5860,235, +2,430,54784,6919,Anchorage,5860,235, +2,431,54784,6919,Anchorage,5860,235, +2,432,55296,6919,Anchorage,5914,235, +2,433,55296,6919,Anchorage,5914,235, +2,434,55296,6919,Anchorage,5914,235, +2,435,55296,6919,Anchorage,5914,235, +2,436,55808,6919,Anchorage,5968,235, +2,437,55808,6919,Anchorage,5968,235, +2,438,55808,6919,Anchorage,5968,235, +2,439,55808,6919,Anchorage,5968,235, +2,440,56320,6919,Anchorage,6022,235, +2,441,56320,6919,Anchorage,6022,235, +2,442,56320,6919,Anchorage,6022,235, +2,443,56320,6919,Anchorage,6022,235, +2,444,56832,6919,Anchorage,6076,235, +2,445,56832,6919,Anchorage,6076,235, +2,446,56832,6919,Anchorage,6076,235, +2,447,56832,6919,Anchorage,6076,235, +2,448,57344,6919,Anchorage,6130,235, +2,449,57344,6919,Anchorage,6130,235, +2,450,57344,6919,Anchorage,6130,235, +2,451,57344,6919,Anchorage,6130,235, +2,452,57856,6919,Anchorage,6184,235, +2,453,57856,6919,Anchorage,6184,235, +2,454,57856,6919,Anchorage,6184,235, +2,455,57856,6919,Anchorage,6184,235, +2,456,58368,6919,Anchorage,6238,235, +2,457,58368,6919,Anchorage,6238,235, +2,458,58368,6919,Anchorage,6238,235, +2,459,58368,6919,Anchorage,6238,235, +2,460,58880,6919,Anchorage,6292,235, +2,461,58880,6919,Anchorage,6292,235, +2,462,58880,6919,Anchorage,6292,235, +2,463,58880,6919,Anchorage,6292,235, +2,464,59392,6919,Anchorage,6346,235, +2,465,59392,6919,Anchorage,6346,235, +2,466,59392,6919,Anchorage,6346,235, +2,467,59392,6919,Anchorage,6346,235, +2,468,59904,6919,Anchorage,6400,235, +2,469,59904,6919,Anchorage,6400,235, +2,470,59904,6919,Anchorage,6400,235, +2,471,59904,6919,Anchorage,6400,235, +2,472,60416,6919,Anchorage,6454,235, +2,473,60416,6919,Anchorage,6454,235, +2,474,60416,6919,Anchorage,6454,235, +2,475,60416,6919,Anchorage,6454,235, +2,476,60928,6919,Anchorage,6508,235, +2,477,60928,6919,Anchorage,6508,235, +2,478,60928,6919,Anchorage,6508,235, +2,479,60928,6919,Anchorage,6508,235, +2,480,61440,6919,Anchorage,6562,235, +2,481,61440,6919,Anchorage,6562,235, +2,482,61440,6919,Anchorage,6562,235, +2,483,61440,6919,Anchorage,6562,235, +2,484,61952,6919,Anchorage,6616,235, +2,485,61952,6919,Anchorage,6616,235, +2,486,61952,6919,Anchorage,6616,235, +2,487,61952,6919,Anchorage,6616,235, +2,488,62464,6919,Anchorage,6670,235, +2,489,62464,6919,Anchorage,6670,235, +2,490,62464,6919,Anchorage,6670,235, +2,491,62464,6919,Anchorage,6670,235, +2,492,62976,6919,Anchorage,6724,235, +2,493,62976,6919,Anchorage,6724,235, +2,494,62976,6919,Anchorage,6724,235, +2,495,62976,6919,Anchorage,6724,235, +2,496,63488,6919,Anchorage,6778,235, +2,497,63488,6919,Anchorage,6778,235, +2,498,63488,6919,Anchorage,6778,235, +2,499,63488,6919,Anchorage,6778,235, +2,500,64000,6919,Anchorage,6832,235, +2,501,64000,6919,Anchorage,6832,235, +2,502,64000,6919,Anchorage,6832,235, +2,503,64000,6919,Anchorage,6832,235, +2,504,64512,6919,Anchorage,6886,235, +2,505,64512,6919,Anchorage,6886,235, +2,506,64512,6919,Anchorage,6886,235, +2,507,64512,6919,Anchorage,6886,235, +2,508,65024,6919,Anchorage,6940,235, +2,509,65024,6919,Anchorage,6940,235, +2,510,65024,6919,Anchorage,6940,235, +2,511,65024,6919,Anchorage,6940,235, +2,512,65536,6919,Anchorage,6994,235, +2,513,65536,6919,Anchorage,6994,235, +2,514,65536,6919,Anchorage,6994,235, +2,515,65536,6919,Anchorage,6994,235, +2,516,66048,6919,Anchorage,7048,235, +2,517,66048,6919,Anchorage,7048,235, +2,518,66048,6919,Anchorage,7048,235, +2,519,66048,6919,Anchorage,7048,235, +2,520,66560,6919,Anchorage,7102,235, +2,521,66560,6919,Anchorage,7102,235, +2,522,66560,6919,Anchorage,7102,235, +2,523,66560,6919,Anchorage,7102,235, +2,524,67072,6919,Anchorage,7156,235, +2,525,67072,6919,Anchorage,7156,235, +2,526,67072,6919,Anchorage,7156,235, +2,527,67072,6919,Anchorage,7156,235, +2,528,67584,6919,Anchorage,7210,235, +2,529,67584,6919,Anchorage,7210,235, +2,530,67584,6919,Anchorage,7210,235, +2,531,67584,6919,Anchorage,7210,235, +2,532,68096,6919,Anchorage,7264,235, +2,533,68096,6919,Anchorage,7264,235, +2,534,68096,6919,Anchorage,7264,235, +2,535,68096,6919,Anchorage,7264,235, +2,536,68608,6919,Anchorage,7318,235, +2,537,68608,6919,Anchorage,7318,235, +2,538,68608,6919,Anchorage,7318,235, +2,539,68608,6919,Anchorage,7318,235, +2,540,69120,6919,Anchorage,7372,235, +2,541,69120,6919,Anchorage,7372,235, +2,542,69120,6919,Anchorage,7372,235, +2,543,69120,6919,Anchorage,7372,235, +2,544,69632,6919,Anchorage,7426,235, +2,545,69632,6919,Anchorage,7426,235, +2,546,69632,6919,Anchorage,7426,235, +2,547,69632,6919,Anchorage,7426,235, +2,548,70144,6919,Anchorage,7480,235, +2,549,70144,6919,Anchorage,7480,235, +2,550,70144,6919,Anchorage,7480,235, +2,551,70144,6919,Anchorage,7480,235, +2,552,70656,6919,Anchorage,7534,235, +2,553,70656,6919,Anchorage,7534,235, +2,554,70656,6919,Anchorage,7534,235, +2,555,70656,6919,Anchorage,7534,235, +2,556,71168,6919,Anchorage,7588,235, +2,557,71168,6919,Anchorage,7588,235, +2,558,71168,6919,Anchorage,7588,235, +2,559,71168,6919,Anchorage,7588,235, +2,560,71680,6919,Anchorage,7642,235, +2,561,71680,6919,Anchorage,7642,235, +2,562,71680,6919,Anchorage,7642,235, +2,563,71680,6919,Anchorage,7642,235, +2,564,72192,6919,Anchorage,7696,235, +2,565,72192,6919,Anchorage,7696,235, +2,566,72192,6919,Anchorage,7696,235, +2,567,72192,6919,Anchorage,7696,235, +2,568,72704,6919,Anchorage,7750,235, +2,569,72704,6919,Anchorage,7750,235, +2,570,72704,6919,Anchorage,7750,235, +2,571,72704,6919,Anchorage,7750,235, +2,572,73216,6919,Anchorage,7804,235, +2,573,73216,6919,Anchorage,7804,235, +2,574,73216,6919,Anchorage,7804,235, +2,575,73216,6919,Anchorage,7804,235, +2,576,73728,6919,Anchorage,7858,235, +2,577,73728,6919,Anchorage,7858,235, +2,578,73728,6919,Anchorage,7858,235, +2,579,73728,6919,Anchorage,7858,235, +2,580,74240,6919,Anchorage,7912,235, +2,581,74240,6919,Anchorage,7912,235, +2,582,74240,6919,Anchorage,7912,235, +2,583,74240,6919,Anchorage,7912,235, +2,584,74752,6919,Anchorage,7966,235, +2,585,74752,6919,Anchorage,7966,235, +2,586,74752,6919,Anchorage,7966,235, +2,587,74752,6919,Anchorage,7966,235, +2,588,75264,6919,Anchorage,8020,235, +2,589,75264,6919,Anchorage,8020,235, +2,590,75264,6919,Anchorage,8020,235, +2,591,75264,6919,Anchorage,8020,235, +2,592,75776,6919,Anchorage,8074,235, +2,593,75776,6919,Anchorage,8074,235, +2,594,75776,6919,Anchorage,8074,235, +2,595,75776,6919,Anchorage,8074,235, +2,596,76288,6919,Anchorage,8128,235, +2,597,76288,6919,Anchorage,8128,235, +2,598,76288,6919,Anchorage,8128,235, +2,599,76288,6919,Anchorage,8128,235, +2,600,76800,6919,Anchorage,8182,235, +2,601,76800,6919,Anchorage,8182,235, +2,602,76800,6919,Anchorage,8182,235, +2,603,76800,6919,Anchorage,8182,235, +2,604,77312,6919,Anchorage,8236,235, +2,605,77312,6919,Anchorage,8236,235, +2,606,77312,6919,Anchorage,8236,235, +2,607,77312,6919,Anchorage,8236,235, +2,608,77824,6919,Anchorage,8290,235, +2,609,77824,6919,Anchorage,8290,235, +2,610,77824,6919,Anchorage,8290,235, +2,611,77824,6919,Anchorage,8290,235, +2,612,78336,6919,Anchorage,8344,235, +2,613,78336,6919,Anchorage,8344,235, +2,614,78336,6919,Anchorage,8344,235, +2,615,78336,6919,Anchorage,8344,235, +2,616,78848,6919,Anchorage,8398,235, +2,617,78848,6919,Anchorage,8398,235, +2,618,78848,6919,Anchorage,8398,235, +2,619,78848,6919,Anchorage,8398,235, +2,620,79360,6919,Anchorage,8452,235, +2,621,79360,6919,Anchorage,8452,235, +2,622,79360,6919,Anchorage,8452,235, +2,623,79360,6919,Anchorage,8452,235, +2,624,79872,6919,Anchorage,8506,235, +2,625,79872,6919,Anchorage,8506,235, +2,626,79872,6919,Anchorage,8506,235, +2,627,79872,6919,Anchorage,8506,235, +2,628,80384,6919,Anchorage,8560,235, +2,629,80384,6919,Anchorage,8560,235, +2,630,80384,6919,Anchorage,8560,235, +2,631,80384,6919,Anchorage,8560,235, +2,632,80896,6919,Anchorage,8613,235, +2,633,80896,6919,Anchorage,8613,235, +2,634,80896,6919,Anchorage,8613,235, +2,635,80896,6919,Anchorage,8613,235, +2,636,81408,6919,Anchorage,8666,235, +2,637,81408,6919,Anchorage,8666,235, +2,638,81408,6919,Anchorage,8666,235, +2,639,81408,6919,Anchorage,8666,235, +2,640,81920,6919,Anchorage,8719,235, +2,641,81920,6919,Anchorage,8719,235, +2,642,81920,6919,Anchorage,8719,235, +2,643,81920,6919,Anchorage,8719,235, +2,644,82432,6919,Anchorage,8772,235, +2,645,82432,6919,Anchorage,8772,235, +2,646,82432,6919,Anchorage,8772,235, +2,647,82432,6919,Anchorage,8772,235, +2,648,82944,6919,Anchorage,8825,235, +2,649,82944,6919,Anchorage,8825,235, +2,650,82944,6919,Anchorage,8825,235, +2,651,82944,6919,Anchorage,8825,235, +2,652,83456,6919,Anchorage,8878,235, +2,653,83456,6919,Anchorage,8878,235, +2,654,83456,6919,Anchorage,8878,235, +2,655,83456,6919,Anchorage,8878,235, +2,656,83968,6919,Anchorage,8931,235, +2,657,83968,6919,Anchorage,8931,235, +2,658,83968,6919,Anchorage,8931,235, +2,659,83968,6919,Anchorage,8931,235, +2,660,84480,6919,Anchorage,8984,235, +2,661,84480,6919,Anchorage,8984,235, +2,662,84480,6919,Anchorage,8984,235, +2,663,84480,6919,Anchorage,8984,235, +2,664,84992,6919,Anchorage,9037,235, +2,665,84992,6919,Anchorage,9037,235, +2,666,84992,6919,Anchorage,9037,235, +2,667,84992,6919,Anchorage,9037,235, +2,668,85504,6919,Anchorage,9089,235, +2,669,85504,6919,Anchorage,9089,235, +2,670,85504,6919,Anchorage,9089,235, +2,671,85504,6919,Anchorage,9089,235, +2,672,86016,6919,Anchorage,9141,235, +2,673,86016,6919,Anchorage,9141,235, +2,674,86016,6919,Anchorage,9141,235, +2,675,86016,6919,Anchorage,9141,235, +2,676,86528,6919,Anchorage,9193,235, +2,677,86528,6919,Anchorage,9193,235, +2,678,86528,6919,Anchorage,9193,235, +2,679,86528,6919,Anchorage,9193,235, +2,680,87040,6919,Anchorage,9245,235, +2,681,87040,6919,Anchorage,9245,235, +2,682,87040,6919,Anchorage,9245,235, +2,683,87040,6919,Anchorage,9245,235, +2,684,87552,6919,Anchorage,9297,235, +2,685,87552,6919,Anchorage,9297,235, +2,686,87552,6919,Anchorage,9297,235, +2,687,87552,6919,Anchorage,9297,235, +2,688,88064,6919,Anchorage,9349,235, +2,689,88064,6919,Anchorage,9349,235, +2,690,88064,6919,Anchorage,9349,235, +2,691,88064,6919,Anchorage,9349,235, +2,692,88576,6919,Anchorage,9401,235, +2,693,88576,6919,Anchorage,9401,235, +2,694,88576,6919,Anchorage,9401,235, +2,695,88576,6919,Anchorage,9401,235, +2,696,89088,6919,Anchorage,9453,235, +2,697,89088,6919,Anchorage,9453,235, +2,698,89088,6919,Anchorage,9453,235, +2,699,89088,6919,Anchorage,9453,235, +2,700,89600,6919,Anchorage,9505,235, +2,701,89600,6919,Anchorage,9505,235, +2,702,89600,6919,Anchorage,9505,235, +2,703,89600,6919,Anchorage,9505,235, +2,704,90112,6919,Anchorage,9556,235, +2,705,90112,6919,Anchorage,9556,235, +2,706,90112,6919,Anchorage,9556,235, +2,707,90112,6919,Anchorage,9556,235, +2,708,90624,6919,Anchorage,9607,235, +2,709,90624,6919,Anchorage,9607,235, +2,710,90624,6919,Anchorage,9607,235, +2,711,90624,6919,Anchorage,9607,235, +2,712,91136,6919,Anchorage,9658,235, +2,713,91136,6919,Anchorage,9658,235, +2,714,91136,6919,Anchorage,9658,235, +2,715,91136,6919,Anchorage,9658,235, +2,716,91648,6919,Anchorage,9709,235, +2,717,91648,6919,Anchorage,9709,235, +2,718,91648,6919,Anchorage,9709,235, +2,719,91648,6919,Anchorage,9709,235, +2,720,92160,6919,Anchorage,9760,235, +2,721,92160,6919,Anchorage,9760,235, +2,722,92160,6919,Anchorage,9760,235, +2,723,92160,6919,Anchorage,9760,235, +2,724,92672,3471,Honolulu,1,235, +2,725,92672,3471,Honolulu,1,235, +2,726,92672,3471,Honolulu,1,235, +2,727,92672,3471,Honolulu,1,235, +2,728,93184,3471,Honolulu,4,235, +2,729,93184,3471,Honolulu,4,235, +2,730,93184,3471,Honolulu,4,235, +2,731,93184,3471,Honolulu,4,235, +2,732,93696,3471,Honolulu,11,235, +2,733,93696,3471,Honolulu,11,235, +2,734,93696,3471,Honolulu,11,235, +2,735,93696,3471,Honolulu,11,235, +2,736,94208,3471,Honolulu,21,235, +2,737,94208,3471,Honolulu,21,235, +2,738,94208,3471,Honolulu,21,235, +2,739,94208,3471,Honolulu,21,235, +2,740,94720,3471,Honolulu,35,235, +2,741,94720,3471,Honolulu,35,235, +2,742,94720,3471,Honolulu,35,235, +2,743,94720,3471,Honolulu,35,235, +2,744,95232,3471,Honolulu,53,235, +2,745,95232,3471,Honolulu,53,235, +2,746,95232,3471,Honolulu,53,235, +2,747,95232,3471,Honolulu,53,235, +2,748,95744,3471,Honolulu,74,235, +2,749,95744,3471,Honolulu,74,235, +2,750,95744,3471,Honolulu,74,235, +2,751,95744,3471,Honolulu,74,235, +2,752,96256,3471,Honolulu,99,235, +2,753,96256,3471,Honolulu,99,235, +2,754,96256,3471,Honolulu,99,235, +2,755,96256,3471,Honolulu,99,235, +2,756,96768,3471,Honolulu,128,235, +2,757,96768,3471,Honolulu,128,235, +2,758,96768,3471,Honolulu,128,235, +2,759,96768,3471,Honolulu,128,235, +2,760,97280,3471,Honolulu,160,235, +2,761,97280,3471,Honolulu,160,235, +2,762,97280,3471,Honolulu,160,235, +2,763,97280,3471,Honolulu,160,235, +2,764,97792,3471,Honolulu,196,235, +2,765,97792,3471,Honolulu,196,235, +2,766,97792,3471,Honolulu,196,235, +2,767,97792,3471,Honolulu,196,235, +2,768,98304,3471,Honolulu,236,235, +2,769,98304,3471,Honolulu,236,235, +2,770,98304,3471,Honolulu,236,235, +2,771,98304,3471,Honolulu,236,235, +2,772,98816,3471,Honolulu,280,235, +2,773,98816,3471,Honolulu,280,235, +2,774,98816,3471,Honolulu,280,235, +2,775,98816,3471,Honolulu,280,235, +2,776,99328,3471,Honolulu,327,235, +2,777,99328,3471,Honolulu,327,235, +2,778,99328,3471,Honolulu,327,235, +2,779,99328,3471,Honolulu,327,235, +2,780,99840,3471,Honolulu,377,235, +2,781,99840,3471,Honolulu,377,235, +2,782,99840,3471,Honolulu,377,235, +2,783,99840,3471,Honolulu,377,235, +2,784,100352,3471,Honolulu,428,235, +2,785,100352,3471,Honolulu,428,235, +2,786,100352,3471,Honolulu,428,235, +2,787,100352,3471,Honolulu,428,235, +2,788,100864,3471,Honolulu,479,235, +2,789,100864,3471,Honolulu,479,235, +2,790,100864,3471,Honolulu,479,235, +2,791,100864,3471,Honolulu,479,235, +2,792,101376,3471,Honolulu,530,235, +2,793,101376,3471,Honolulu,530,235, +2,794,101376,3471,Honolulu,530,235, +2,795,101376,3471,Honolulu,530,235, +2,796,101888,3471,Honolulu,582,235, +2,797,101888,3471,Honolulu,582,235, +2,798,101888,3471,Honolulu,582,235, +2,799,101888,3471,Honolulu,582,235, +2,800,102400,3471,Honolulu,634,235, +2,801,102400,3471,Honolulu,634,235, +2,802,102400,3471,Honolulu,634,235, +2,803,102400,3471,Honolulu,634,235, +2,804,102912,3471,Honolulu,687,235, +2,805,102912,3471,Honolulu,687,235, +2,806,102912,3471,Honolulu,687,235, +2,807,102912,3471,Honolulu,687,235, +2,808,103424,3471,Honolulu,740,235, +2,809,103424,3471,Honolulu,740,235, +2,810,103424,3471,Honolulu,740,235, +2,811,103424,3471,Honolulu,740,235, +2,812,103936,3471,Honolulu,793,235, +2,813,103936,3471,Honolulu,793,235, +2,814,103936,3471,Honolulu,793,235, +2,815,103936,3471,Honolulu,793,235, +2,816,104448,3471,Honolulu,847,235, +2,817,104448,3471,Honolulu,847,235, +2,818,104448,3471,Honolulu,847,235, +2,819,104448,3471,Honolulu,847,235, +2,820,104960,3471,Honolulu,901,235, +2,821,104960,3471,Honolulu,901,235, +2,822,104960,3471,Honolulu,901,235, +2,823,104960,3471,Honolulu,901,235, +2,824,105472,3471,Honolulu,956,235, +2,825,105472,3471,Honolulu,956,235, +2,826,105472,3471,Honolulu,956,235, +2,827,105472,3471,Honolulu,956,235, +2,828,105984,3471,Honolulu,1011,235, +2,829,105984,3471,Honolulu,1011,235, +2,830,105984,3471,Honolulu,1011,235, +2,831,105984,3471,Honolulu,1011,235, +2,832,106496,3471,Honolulu,1066,235, +2,833,106496,3471,Honolulu,1066,235, +2,834,106496,3471,Honolulu,1066,235, +2,835,106496,3471,Honolulu,1066,235, +2,836,107008,3471,Honolulu,1122,235, +2,837,107008,3471,Honolulu,1122,235, +2,838,107008,3471,Honolulu,1122,235, +2,839,107008,3471,Honolulu,1122,235, +2,840,107520,3471,Honolulu,1178,235, +2,841,107520,3471,Honolulu,1178,235, +2,842,107520,3471,Honolulu,1178,235, +2,843,107520,3471,Honolulu,1178,235, +2,844,108032,3471,Honolulu,1235,235, +2,845,108032,3471,Honolulu,1235,235, +2,846,108032,3471,Honolulu,1235,235, +2,847,108032,3471,Honolulu,1235,235, +2,848,108544,3471,Honolulu,1292,235, +2,849,108544,3471,Honolulu,1292,235, +2,850,108544,3471,Honolulu,1292,235, +2,851,108544,3471,Honolulu,1292,235, +2,852,109056,3471,Honolulu,1349,235, +2,853,109056,3471,Honolulu,1349,235, +2,854,109056,3471,Honolulu,1349,235, +2,855,109056,3471,Honolulu,1349,235, +2,856,109568,3471,Honolulu,1407,235, +2,857,109568,3471,Honolulu,1407,235, +2,858,109568,3471,Honolulu,1407,235, +2,859,109568,3471,Honolulu,1407,235, +2,860,110080,3471,Honolulu,1465,235, +2,861,110080,3471,Honolulu,1465,235, +2,862,110080,3471,Honolulu,1465,235, +2,863,110080,3471,Honolulu,1465,235, +2,864,110592,3471,Honolulu,1524,235, +2,865,110592,3471,Honolulu,1524,235, +2,866,110592,3471,Honolulu,1524,235, +2,867,110592,3471,Honolulu,1524,235, +2,868,111104,3471,Honolulu,1583,235, +2,869,111104,3471,Honolulu,1583,235, +2,870,111104,3471,Honolulu,1583,235, +2,871,111104,3471,Honolulu,1583,235, +2,872,111616,3471,Honolulu,1643,235, +2,873,111616,3471,Honolulu,1643,235, +2,874,111616,3471,Honolulu,1643,235, +2,875,111616,3471,Honolulu,1643,235, +2,876,112128,3471,Honolulu,1703,235, +2,877,112128,3471,Honolulu,1703,235, +2,878,112128,3471,Honolulu,1703,235, +2,879,112128,3471,Honolulu,1703,235, +2,880,112640,3471,Honolulu,1763,235, +2,881,112640,3471,Honolulu,1763,235, +2,882,112640,3471,Honolulu,1763,235, +2,883,112640,3471,Honolulu,1763,235, +2,884,113152,3471,Honolulu,1824,235, +2,885,113152,3471,Honolulu,1824,235, +2,886,113152,3471,Honolulu,1824,235, +2,887,113152,3471,Honolulu,1824,235, +2,888,113664,3471,Honolulu,1885,235, +2,889,113664,3471,Honolulu,1885,235, +2,890,113664,3471,Honolulu,1885,235, +2,891,113664,3471,Honolulu,1885,235, +2,892,114176,3471,Honolulu,1946,235, +2,893,114176,3471,Honolulu,1946,235, +2,894,114176,3471,Honolulu,1946,235, +2,895,114176,3471,Honolulu,1946,235, +2,896,114688,3471,Honolulu,2008,235, +2,897,114688,3471,Honolulu,2008,235, +2,898,114688,3471,Honolulu,2008,235, +2,899,114688,3471,Honolulu,2008,235, +2,900,115200,3471,Honolulu,2070,235, +2,901,115200,3471,Honolulu,2070,235, +2,902,115200,3471,Honolulu,2070,235, +2,903,115200,3471,Honolulu,2070,235, +2,904,115712,3471,Honolulu,2132,235, +2,905,115712,3471,Honolulu,2132,235, +2,906,115712,3471,Honolulu,2132,235, +2,907,115712,3471,Honolulu,2132,235, +2,908,116224,3471,Honolulu,2195,235, +2,909,116224,3471,Honolulu,2195,235, +2,910,116224,3471,Honolulu,2195,235, +2,911,116224,3471,Honolulu,2195,235, +2,912,116736,3471,Honolulu,2258,235, +2,913,116736,3471,Honolulu,2258,235, +2,914,116736,3471,Honolulu,2258,235, +2,915,116736,3471,Honolulu,2258,235, +2,916,117248,3471,Honolulu,2321,235, +2,917,117248,3471,Honolulu,2321,235, +2,918,117248,3471,Honolulu,2321,235, +2,919,117248,3471,Honolulu,2321,235, +2,920,117760,3471,Honolulu,2385,235, +2,921,117760,3471,Honolulu,2385,235, +2,922,117760,3471,Honolulu,2385,235, +2,923,117760,3471,Honolulu,2385,235, +2,924,118272,3471,Honolulu,2449,235, +2,925,118272,3471,Honolulu,2449,235, +2,926,118272,3471,Honolulu,2449,235, +2,927,118272,3471,Honolulu,2449,235, +2,928,118784,3471,Honolulu,2513,235, +2,929,118784,3471,Honolulu,2513,235, +2,930,118784,3471,Honolulu,2513,235, +2,931,118784,3471,Honolulu,2513,235, +2,932,119296,3471,Honolulu,2578,235, +2,933,119296,3471,Honolulu,2578,235, +2,934,119296,3471,Honolulu,2578,235, +2,935,119296,3471,Honolulu,2578,235, +2,936,119808,3471,Honolulu,2643,235, +2,937,119808,3471,Honolulu,2643,235, +2,938,119808,3471,Honolulu,2643,235, +2,939,119808,3471,Honolulu,2643,235, +2,940,120320,3471,Honolulu,2708,235, +2,941,120320,3471,Honolulu,2708,235, +2,942,120320,3471,Honolulu,2708,235, +2,943,120320,3471,Honolulu,2708,235, +2,944,120832,3471,Honolulu,2773,235, +2,945,120832,3471,Honolulu,2773,235, +2,946,120832,3471,Honolulu,2773,235, +2,947,120832,3471,Honolulu,2773,235, +2,948,121344,3208,Atafu Village,1,223, +2,949,121344,3208,Atafu Village,1,223, +2,950,121344,3208,Atafu Village,1,223, +2,951,121344,3208,Atafu Village,1,223, +2,952,121856,3208,Atafu Village,2,223, +2,953,121856,3208,Atafu Village,2,223, +2,954,121856,3208,Atafu Village,2,223, +2,955,121856,3208,Atafu Village,2,223, +2,956,122368,3208,Atafu Village,5,223, +2,957,122368,3208,Atafu Village,5,223, +2,958,122368,3208,Atafu Village,5,223, +2,959,122368,3208,Atafu Village,5,223, +2,960,122880,3208,Atafu Village,10,223, +2,961,122880,3208,Atafu Village,10,223, +2,962,122880,3208,Atafu Village,10,223, +2,963,122880,3208,Atafu Village,10,223, +2,964,123392,3208,Atafu Village,17,223, +2,965,123392,3208,Atafu Village,17,223, +2,966,123392,3208,Atafu Village,17,223, +2,967,123392,3208,Atafu Village,17,223, +2,968,123904,3208,Atafu Village,26,223, +2,969,123904,3208,Atafu Village,26,223, +2,970,123904,3208,Atafu Village,26,223, +2,971,123904,3208,Atafu Village,26,223, +2,972,124416,3208,Atafu Village,37,223, +2,973,124416,3208,Atafu Village,37,223, +2,974,124416,3208,Atafu Village,37,223, +2,975,124416,3208,Atafu Village,37,223, +2,976,124928,3208,Atafu Village,50,223, +2,977,124928,3208,Atafu Village,50,223, +2,978,124928,3208,Atafu Village,50,223, +2,979,124928,3208,Atafu Village,50,223, +2,980,125440,3208,Atafu Village,65,223, +2,981,125440,3208,Atafu Village,65,223, +2,982,125440,3208,Atafu Village,65,223, +2,983,125440,3208,Atafu Village,65,223, +2,984,125952,3208,Atafu Village,82,223, +2,985,125952,3208,Atafu Village,82,223, +2,986,125952,3208,Atafu Village,82,223, +2,987,125952,3208,Atafu Village,82,223, +2,988,126464,3208,Atafu Village,101,223, +2,989,126464,3208,Atafu Village,101,223, +2,990,126464,3208,Atafu Village,101,223, +2,991,126464,3208,Atafu Village,101,223, +2,992,126976,3208,Atafu Village,122,223, +2,993,126976,3208,Atafu Village,122,223, +2,994,126976,3208,Atafu Village,122,223, +2,995,126976,3208,Atafu Village,122,223, +2,996,127488,3208,Atafu Village,145,223, +2,997,127488,3208,Atafu Village,145,223, +2,998,127488,3208,Atafu Village,145,223, +2,999,127488,3208,Atafu Village,145,223, +2,1000,128000,3208,Atafu Village,170,223, +2,1001,128000,3208,Atafu Village,170,223, +2,1002,128000,3208,Atafu Village,170,223, +2,1003,128000,3208,Atafu Village,170,223, +2,1004,128512,3208,Atafu Village,194,223, +2,1005,128512,3208,Atafu Village,194,223, +2,1006,128512,3208,Atafu Village,194,223, +2,1007,128512,3208,Atafu Village,194,223, +2,1008,129024,3208,Atafu Village,218,223, +2,1009,129024,3208,Atafu Village,218,223, +2,1010,129024,3208,Atafu Village,218,223, +2,1011,129024,3208,Atafu Village,218,223, +2,1012,129536,3208,Atafu Village,241,223, +2,1013,129536,3208,Atafu Village,241,223, +2,1014,129536,3208,Atafu Village,241,223, +2,1015,129536,3208,Atafu Village,241,223, +2,1016,130048,3208,Atafu Village,263,223, +2,1017,130048,3208,Atafu Village,263,223, +2,1018,130048,3208,Atafu Village,263,223, +2,1019,130048,3208,Atafu Village,263,223, +2,1020,130560,3208,Atafu Village,285,223, +2,1021,130560,3208,Atafu Village,285,223, +2,1022,130560,3208,Atafu Village,285,223, +2,1023,130560,3208,Atafu Village,285,223, +2,1024,131072,3208,Atafu Village,306,223, +2,1025,131072,3208,Atafu Village,306,223, +2,1026,131072,3208,Atafu Village,306,223, +2,1027,131072,3208,Atafu Village,306,223, +2,1028,131584,3208,Atafu Village,326,223, +2,1029,131584,3208,Atafu Village,326,223, +2,1030,131584,3208,Atafu Village,326,223, +2,1031,131584,3208,Atafu Village,326,223, +2,1032,132096,3208,Atafu Village,346,223, +2,1033,132096,3208,Atafu Village,346,223, +2,1034,132096,3208,Atafu Village,346,223, +2,1035,132096,3208,Atafu Village,346,223, +2,1036,132608,3208,Atafu Village,365,223, +2,1037,132608,3208,Atafu Village,365,223, +2,1038,132608,3208,Atafu Village,365,223, +2,1039,132608,3208,Atafu Village,365,223, +2,1040,133120,3208,Atafu Village,383,223, +2,1041,133120,3208,Atafu Village,383,223, +2,1042,133120,3208,Atafu Village,383,223, +2,1043,133120,3208,Atafu Village,383,223, +2,1044,133632,3208,Atafu Village,401,223, +2,1045,133632,3208,Atafu Village,401,223, +2,1046,133632,3208,Atafu Village,401,223, +2,1047,133632,3208,Atafu Village,401,223, +2,1048,134144,3208,Atafu Village,418,223, +2,1049,134144,3208,Atafu Village,418,223, +2,1050,134144,3208,Atafu Village,418,223, +2,1051,134144,3208,Atafu Village,418,223, +2,1052,134656,3208,Atafu Village,434,223, +2,1053,134656,3208,Atafu Village,434,223, +2,1054,134656,3208,Atafu Village,434,223, +2,1055,134656,3208,Atafu Village,434,223, +2,1056,135168,3208,Atafu Village,450,223, +2,1057,135168,3208,Atafu Village,450,223, +2,1058,135168,3208,Atafu Village,450,223, +2,1059,135168,3208,Atafu Village,450,223, +2,1060,135680,3610,Mata-Utu,1,245, +2,1061,135680,3610,Mata-Utu,1,245, +2,1062,135680,3610,Mata-Utu,1,245, +2,1063,135680,3610,Mata-Utu,1,245, +2,1064,136192,3610,Mata-Utu,2,245, +2,1065,136192,3610,Mata-Utu,2,245, +2,1066,136192,3610,Mata-Utu,2,245, +2,1067,136192,3610,Mata-Utu,2,245, +2,1068,136704,3610,Mata-Utu,5,245, +2,1069,136704,3610,Mata-Utu,5,245, +2,1070,136704,3610,Mata-Utu,5,245, +2,1071,136704,3610,Mata-Utu,5,245, +2,1072,137216,3610,Mata-Utu,9,245, +2,1073,137216,3610,Mata-Utu,9,245, +2,1074,137216,3610,Mata-Utu,9,245, +2,1075,137216,3610,Mata-Utu,9,245, +2,1076,137728,3610,Mata-Utu,14,245, +2,1077,137728,3610,Mata-Utu,14,245, +2,1078,137728,3610,Mata-Utu,14,245, +2,1079,137728,3610,Mata-Utu,14,245, +2,1080,138240,3609,Leava,1,245, +2,1081,138240,3609,Leava,1,245, +2,1082,138240,3609,Leava,1,245, +2,1083,138240,3609,Leava,1,245, +2,1084,138752,3609,Leava,2,245, +2,1085,138752,3609,Leava,2,245, +2,1086,138752,3609,Leava,2,245, +2,1087,138752,3609,Leava,2,245, +2,1088,139264,3609,Leava,3,245, +2,1089,139264,3609,Leava,3,245, +2,1090,139264,3609,Leava,3,245, +2,1091,139264,3609,Leava,3,245, +2,1092,139776,3609,Leava,5,245, +2,1093,139776,3609,Leava,5,245, +2,1094,139776,3609,Leava,5,245, +2,1095,139776,3609,Leava,5,245, +2,1096,140288,3609,Leava,7,245, +2,1097,140288,3609,Leava,7,245, +2,1098,140288,3609,Leava,7,245, +2,1099,140288,3609,Leava,7,245, +2,1100,140800,3609,Leava,10,245, +2,1101,140800,3609,Leava,10,245, +2,1102,140800,3609,Leava,10,245, +2,1103,140800,3609,Leava,10,245, +2,1104,141312,3609,Leava,13,245, +2,1105,141312,3609,Leava,13,245, +2,1106,141312,3609,Leava,13,245, +2,1107,141312,3609,Leava,13,245, +2,1108,141824,3609,Leava,16,245, +2,1109,141824,3609,Leava,16,245, +2,1110,141824,3609,Leava,16,245, +2,1111,141824,3609,Leava,16,245, +2,1112,142336,3609,Leava,19,245, +2,1113,142336,3609,Leava,19,245, +2,1114,142336,3609,Leava,19,245, +2,1115,142336,3609,Leava,19,245, +2,1116,142848,3609,Leava,21,245, +2,1117,142848,3609,Leava,21,245, +2,1118,142848,3609,Leava,21,245, +2,1119,142848,3609,Leava,21,245, +2,1120,143360,3609,Leava,23,245, +2,1121,143360,3609,Leava,23,245, +2,1122,143360,3609,Leava,23,245, +2,1123,143360,3609,Leava,23,245, +2,1124,143872,3609,Leava,25,245, +2,1125,143872,3609,Leava,25,245, +2,1126,143872,3609,Leava,25,245, +2,1127,143872,3609,Leava,25,245, +2,1128,144384,3609,Leava,26,245, +2,1129,144384,3609,Leava,26,245, +2,1130,144384,3609,Leava,26,245, +2,1131,144384,3609,Leava,26,245, +2,1132,144896,3253,Nuku‘alofa,4,224, +2,1133,144896,3253,Nuku‘alofa,4,224, +2,1134,144896,3253,Nuku‘alofa,4,224, +2,1135,144896,3253,Nuku‘alofa,4,224, +2,1136,145408,3253,Nuku‘alofa,9,224, +2,1137,145408,3253,Nuku‘alofa,9,224, +2,1138,145408,3253,Nuku‘alofa,9,224, +2,1139,145408,3253,Nuku‘alofa,9,224, +2,1140,145920,3253,Nuku‘alofa,16,224, +2,1141,145920,3253,Nuku‘alofa,16,224, +2,1142,145920,3253,Nuku‘alofa,16,224, +2,1143,145920,3253,Nuku‘alofa,16,224, +2,1144,146432,3253,Nuku‘alofa,24,224, +2,1145,146432,3253,Nuku‘alofa,24,224, +2,1146,146432,3253,Nuku‘alofa,24,224, +2,1147,146432,3253,Nuku‘alofa,24,224, +2,1148,146944,3253,Nuku‘alofa,32,224, +2,1149,146944,3253,Nuku‘alofa,32,224, +2,1150,146944,3253,Nuku‘alofa,32,224, +2,1151,146944,3253,Nuku‘alofa,32,224, +2,1152,147456,3253,Nuku‘alofa,39,224, +2,1153,147456,3253,Nuku‘alofa,39,224, +2,1154,147456,3253,Nuku‘alofa,39,224, +2,1155,147456,3253,Nuku‘alofa,39,224, +2,1156,147968,3253,Nuku‘alofa,45,224, +2,1157,147968,3253,Nuku‘alofa,45,224, +2,1158,147968,3253,Nuku‘alofa,45,224, +2,1159,147968,3253,Nuku‘alofa,45,224, +2,1160,148480,3253,Nuku‘alofa,51,224, +2,1161,148480,3253,Nuku‘alofa,51,224, +2,1162,148480,3253,Nuku‘alofa,51,224, +2,1163,148480,3253,Nuku‘alofa,51,224, +2,1164,148992,3253,Nuku‘alofa,56,224, +2,1165,148992,3253,Nuku‘alofa,56,224, +2,1166,148992,3253,Nuku‘alofa,56,224, +2,1167,148992,3253,Nuku‘alofa,56,224, +2,1168,149504,3253,Nuku‘alofa,60,224, +2,1169,149504,3253,Nuku‘alofa,60,224, +2,1170,149504,3253,Nuku‘alofa,60,224, +2,1171,149504,3253,Nuku‘alofa,60,224, +2,1172,150016,3253,Nuku‘alofa,63,224, +2,1173,150016,3253,Nuku‘alofa,63,224, +2,1174,150016,3253,Nuku‘alofa,63,224, +2,1175,150016,3253,Nuku‘alofa,63,224, +2,1176,150528,3253,Nuku‘alofa,66,224, +2,1177,150528,3253,Nuku‘alofa,66,224, +2,1178,150528,3253,Nuku‘alofa,66,224, +2,1179,150528,3253,Nuku‘alofa,66,224, +2,1180,151040,3253,Nuku‘alofa,68,224, +2,1181,151040,3253,Nuku‘alofa,68,224, +2,1182,151040,3253,Nuku‘alofa,68,224, +2,1183,151040,3253,Nuku‘alofa,68,224, +2,1184,151552,3252,‘Ohonua,88,224, +2,1185,151552,3252,‘Ohonua,88,224, +2,1186,151552,3252,‘Ohonua,88,224, +2,1187,151552,3252,‘Ohonua,88,224, +2,1188,152064,3252,‘Ohonua,104,224, +2,1189,152064,3252,‘Ohonua,104,224, +2,1190,152064,3252,‘Ohonua,104,224, +2,1191,152064,3252,‘Ohonua,104,224, +2,1192,152576,3252,‘Ohonua,120,224, +2,1193,152576,3252,‘Ohonua,120,224, +2,1194,152576,3252,‘Ohonua,120,224, +2,1195,152576,3252,‘Ohonua,120,224, +2,1196,153088,3252,‘Ohonua,137,224, +2,1197,153088,3252,‘Ohonua,137,224, +2,1198,153088,3252,‘Ohonua,137,224, +2,1199,153088,3252,‘Ohonua,137,224, +2,1200,153600,3252,‘Ohonua,154,224, +2,1201,153600,3252,‘Ohonua,154,224, +2,1202,153600,3252,‘Ohonua,154,224, +2,1203,153600,3252,‘Ohonua,154,224, +2,1204,154112,3252,‘Ohonua,172,224, +2,1205,154112,3252,‘Ohonua,172,224, +2,1206,154112,3252,‘Ohonua,172,224, +2,1207,154112,3252,‘Ohonua,172,224, +2,1208,154624,3252,‘Ohonua,190,224, +2,1209,154624,3252,‘Ohonua,190,224, +2,1210,154624,3252,‘Ohonua,190,224, +2,1211,154624,3252,‘Ohonua,190,224, +2,1212,155136,3252,‘Ohonua,208,224, +2,1213,155136,3252,‘Ohonua,208,224, +2,1214,155136,3252,‘Ohonua,208,224, +2,1215,155136,3252,‘Ohonua,208,224, +2,1216,155648,3252,‘Ohonua,226,224, +2,1217,155648,3252,‘Ohonua,226,224, +2,1218,155648,3252,‘Ohonua,226,224, +2,1219,155648,3252,‘Ohonua,226,224, +2,1220,156160,2317,Waitangi,1,155, +2,1221,156160,2317,Waitangi,1,155, +2,1222,156160,2317,Waitangi,1,155, +2,1223,156160,2317,Waitangi,1,155, +2,1224,156672,2317,Waitangi,6,155, +2,1225,156672,2317,Waitangi,6,155, +2,1226,156672,2317,Waitangi,6,155, +2,1227,156672,2317,Waitangi,6,155, +2,1228,157184,2317,Waitangi,23,155, +2,1229,157184,2317,Waitangi,23,155, +2,1230,157184,2317,Waitangi,23,155, +2,1231,157184,2317,Waitangi,23,155, +2,1232,157696,2317,Waitangi,42,155, +2,1233,157696,2317,Waitangi,42,155, +2,1234,157696,2317,Waitangi,42,155, +2,1235,157696,2317,Waitangi,42,155, +2,1236,158208,2317,Waitangi,62,155, +2,1237,158208,2317,Waitangi,62,155, +2,1238,158208,2317,Waitangi,62,155, +2,1239,158208,2317,Waitangi,62,155, +2,1240,158720,2317,Waitangi,83,155, +2,1241,158720,2317,Waitangi,83,155, +2,1242,158720,2317,Waitangi,83,155, +2,1243,158720,2317,Waitangi,83,155, +2,1244,159232,2317,Waitangi,105,155, +2,1245,159232,2317,Waitangi,105,155, +2,1246,159232,2317,Waitangi,105,155, +2,1247,159232,2317,Waitangi,105,155, +2,1248,159744,2317,Waitangi,128,155, +2,1249,159744,2317,Waitangi,128,155, +2,1250,159744,2317,Waitangi,128,155, +2,1251,159744,2317,Waitangi,128,155, +2,1252,160256,2317,Waitangi,152,155, +2,1253,160256,2317,Waitangi,152,155, +2,1254,160256,2317,Waitangi,152,155, +2,1255,160256,2317,Waitangi,152,155, +2,1256,160768,2317,Waitangi,177,155, +2,1257,160768,2317,Waitangi,177,155, +2,1258,160768,2317,Waitangi,177,155, +2,1259,160768,2317,Waitangi,177,155, +2,1260,161280,2317,Waitangi,203,155, +2,1261,161280,2317,Waitangi,203,155, +2,1262,161280,2317,Waitangi,203,155, +2,1263,161280,2317,Waitangi,203,155, +2,1264,161792,2317,Waitangi,230,155, +2,1265,161792,2317,Waitangi,230,155, +2,1266,161792,2317,Waitangi,230,155, +2,1267,161792,2317,Waitangi,230,155, +2,1268,162304,2317,Waitangi,258,155, +2,1269,162304,2317,Waitangi,258,155, +2,1270,162304,2317,Waitangi,258,155, +2,1271,162304,2317,Waitangi,258,155, +2,1272,162816,2317,Waitangi,287,155, +2,1273,162816,2317,Waitangi,287,155, +2,1274,162816,2317,Waitangi,287,155, +2,1275,162816,2317,Waitangi,287,155, +2,1276,163328,2317,Waitangi,318,155, +2,1277,163328,2317,Waitangi,318,155, +2,1278,163328,2317,Waitangi,318,155, +2,1279,163328,2317,Waitangi,318,155, +2,1280,163840,2317,Waitangi,350,155, +2,1281,163840,2317,Waitangi,350,155, +2,1282,163840,2317,Waitangi,350,155, +2,1283,163840,2317,Waitangi,350,155, +2,1284,164352,2317,Waitangi,383,155, +2,1285,164352,2317,Waitangi,383,155, +2,1286,164352,2317,Waitangi,383,155, +2,1287,164352,2317,Waitangi,383,155, +2,1288,164864,2317,Waitangi,417,155, +2,1289,164864,2317,Waitangi,417,155, +2,1290,164864,2317,Waitangi,417,155, +2,1291,164864,2317,Waitangi,417,155, +2,1292,165376,2317,Waitangi,452,155, +2,1293,165376,2317,Waitangi,452,155, +2,1294,165376,2317,Waitangi,452,155, +2,1295,165376,2317,Waitangi,452,155, +2,1296,165888,2317,Waitangi,488,155, +2,1297,165888,2317,Waitangi,488,155, +2,1298,165888,2317,Waitangi,488,155, +2,1299,165888,2317,Waitangi,488,155, +2,1300,166400,2317,Waitangi,525,155, +2,1301,166400,2317,Waitangi,525,155, +2,1302,166400,2317,Waitangi,525,155, +2,1303,166400,2317,Waitangi,525,155, +2,1304,166912,2317,Waitangi,563,155, +2,1305,166912,2317,Waitangi,563,155, +2,1306,166912,2317,Waitangi,563,155, +2,1307,166912,2317,Waitangi,563,155, +2,1308,167424,2317,Waitangi,602,155, +2,1309,167424,2317,Waitangi,602,155, +2,1310,167424,2317,Waitangi,602,155, +2,1311,167424,2317,Waitangi,602,155, +2,1312,167936,2317,Waitangi,642,155, +2,1313,167936,2317,Waitangi,642,155, +2,1314,167936,2317,Waitangi,642,155, +2,1315,167936,2317,Waitangi,642,155, +2,1316,168448,2317,Waitangi,682,155, +2,1317,168448,2317,Waitangi,682,155, +2,1318,168448,2317,Waitangi,682,155, +2,1319,168448,2317,Waitangi,682,155, +2,1320,168960,2317,Waitangi,723,155, +2,1321,168960,2317,Waitangi,723,155, +2,1322,168960,2317,Waitangi,723,155, +2,1323,168960,2317,Waitangi,723,155, +2,1324,169472,2317,Waitangi,765,155, +2,1325,169472,2317,Waitangi,765,155, +2,1326,169472,2317,Waitangi,765,155, +2,1327,169472,2317,Waitangi,765,155, +2,1328,169984,2317,Waitangi,808,155, +2,1329,169984,2317,Waitangi,808,155, +2,1330,169984,2317,Waitangi,808,155, +2,1331,169984,2317,Waitangi,808,155, +2,1332,170496,2317,Waitangi,852,155, +2,1333,170496,2317,Waitangi,852,155, +2,1334,170496,2317,Waitangi,852,155, +2,1335,170496,2317,Waitangi,852,155, +2,1336,171008,2317,Waitangi,898,155, +2,1337,171008,2317,Waitangi,898,155, +2,1338,171008,2317,Waitangi,898,155, +2,1339,171008,2317,Waitangi,898,155, +2,1340,171520,2317,Waitangi,944,155, +2,1341,171520,2317,Waitangi,944,155, +2,1342,171520,2317,Waitangi,944,155, +2,1343,171520,2317,Waitangi,944,155, +2,1344,172032,2317,Waitangi,991,155, +2,1345,172032,2317,Waitangi,991,155, +2,1346,172032,2317,Waitangi,991,155, +2,1347,172032,2317,Waitangi,991,155, +2,1348,172544,2317,Waitangi,1038,155, +2,1349,172544,2317,Waitangi,1038,155, +2,1350,172544,2317,Waitangi,1038,155, +2,1351,172544,2317,Waitangi,1038,155, +2,1352,173056,2317,Waitangi,1085,155, +2,1353,173056,2317,Waitangi,1085,155, +2,1354,173056,2317,Waitangi,1085,155, +2,1355,173056,2317,Waitangi,1085,155, +2,1356,173568,2317,Waitangi,1132,155, +2,1357,173568,2317,Waitangi,1132,155, +2,1358,173568,2317,Waitangi,1132,155, +2,1359,173568,2317,Waitangi,1132,155, +2,1360,174080,2317,Waitangi,1180,155, +2,1361,174080,2317,Waitangi,1180,155, +2,1362,174080,2317,Waitangi,1180,155, +2,1363,174080,2317,Waitangi,1180,155, +2,1364,174592,2317,Waitangi,1228,155, +2,1365,174592,2317,Waitangi,1228,155, +2,1366,174592,2317,Waitangi,1228,155, +2,1367,174592,2317,Waitangi,1228,155, +2,1368,175104,2317,Waitangi,1276,155, +2,1369,175104,2317,Waitangi,1276,155, +2,1370,175104,2317,Waitangi,1276,155, +2,1371,175104,2317,Waitangi,1276,155, +2,1372,175616,2317,Waitangi,1324,155, +2,1373,175616,2317,Waitangi,1324,155, +2,1374,175616,2317,Waitangi,1324,155, +2,1375,175616,2317,Waitangi,1324,155, +2,1376,176128,2317,Waitangi,1373,155, +2,1377,176128,2317,Waitangi,1373,155, +2,1378,176128,2317,Waitangi,1373,155, +2,1379,176128,2317,Waitangi,1373,155, +2,1380,176640,2317,Waitangi,1422,155, +2,1381,176640,2317,Waitangi,1422,155, +2,1382,176640,2317,Waitangi,1422,155, +2,1383,176640,2317,Waitangi,1422,155, +2,1384,177152,2317,Waitangi,1471,155, +2,1385,177152,2317,Waitangi,1471,155, +2,1386,177152,2317,Waitangi,1471,155, +2,1387,177152,2317,Waitangi,1471,155, +2,1388,177664,2317,Waitangi,1520,155, +2,1389,177664,2317,Waitangi,1520,155, +2,1390,177664,2317,Waitangi,1520,155, +2,1391,177664,2317,Waitangi,1520,155, +2,1392,178176,2317,Waitangi,1570,155, +2,1393,178176,2317,Waitangi,1570,155, +2,1394,178176,2317,Waitangi,1570,155, +2,1395,178176,2317,Waitangi,1570,155, +2,1396,178688,2317,Waitangi,1620,155, +2,1397,178688,2317,Waitangi,1620,155, +2,1398,178688,2317,Waitangi,1620,155, +2,1399,178688,2317,Waitangi,1620,155, +2,1400,179200,2317,Waitangi,1670,155, +2,1401,179200,2317,Waitangi,1670,155, +2,1402,179200,2317,Waitangi,1670,155, +2,1403,179200,2317,Waitangi,1670,155, +2,1404,179712,2317,Waitangi,1720,155, +2,1405,179712,2317,Waitangi,1720,155, +2,1406,179712,2317,Waitangi,1720,155, +2,1407,179712,2317,Waitangi,1720,155, +2,1408,180224,2317,Waitangi,1771,155, +2,1409,180224,2317,Waitangi,1771,155, +2,1410,180224,2317,Waitangi,1771,155, +2,1411,180224,2317,Waitangi,1771,155, +2,1412,180736,2317,Waitangi,1822,155, +2,1413,180736,2317,Waitangi,1822,155, +2,1414,180736,2317,Waitangi,1822,155, +2,1415,180736,2317,Waitangi,1822,155, +2,1416,181248,2317,Waitangi,1873,155, +2,1417,181248,2317,Waitangi,1873,155, +2,1418,181248,2317,Waitangi,1873,155, +2,1419,181248,2317,Waitangi,1873,155, +2,1420,181760,2317,Waitangi,1924,155, +2,1421,181760,2317,Waitangi,1924,155, +2,1422,181760,2317,Waitangi,1924,155, +2,1423,181760,2317,Waitangi,1924,155, +2,1424,182272,2317,Waitangi,1976,155, +2,1425,182272,2317,Waitangi,1976,155, +2,1426,182272,2317,Waitangi,1976,155, +2,1427,182272,2317,Waitangi,1976,155, +2,1428,182784,2317,Waitangi,2028,155, +2,1429,182784,2317,Waitangi,2028,155, +2,1430,182784,2317,Waitangi,2028,155, +2,1431,182784,2317,Waitangi,2028,155, +2,1432,183296,2317,Waitangi,2080,155, +2,1433,183296,2317,Waitangi,2080,155, +2,1434,183296,2317,Waitangi,2080,155, +2,1435,183296,2317,Waitangi,2080,155, +2,1436,183808,2317,Waitangi,2132,155, +2,1437,183808,2317,Waitangi,2132,155, +2,1438,183808,2317,Waitangi,2132,155, +2,1439,183808,2317,Waitangi,2132,155, +2,1440,184320,2317,Waitangi,2184,155, +2,1441,184320,2317,Waitangi,2184,155, +2,1442,184320,2317,Waitangi,2184,155, +2,1443,184320,2317,Waitangi,2184,155, +2,1444,184832,2317,Waitangi,2237,155, +2,1445,184832,2317,Waitangi,2237,155, +2,1446,184832,2317,Waitangi,2237,155, +2,1447,184832,2317,Waitangi,2237,155, +2,1448,185344,2317,Waitangi,2290,155, +2,1449,185344,2317,Waitangi,2290,155, +2,1450,185344,2317,Waitangi,2290,155, +2,1451,185344,2317,Waitangi,2290,155, +2,1452,185856,2317,Waitangi,2343,155, +2,1453,185856,2317,Waitangi,2343,155, +2,1454,185856,2317,Waitangi,2343,155, +2,1455,185856,2317,Waitangi,2343,155, +2,1456,186368,2317,Waitangi,2396,155, +2,1457,186368,2317,Waitangi,2396,155, +2,1458,186368,2317,Waitangi,2396,155, +2,1459,186368,2317,Waitangi,2396,155, +2,1460,186880,2317,Waitangi,2449,155, +2,1461,186880,2317,Waitangi,2449,155, +2,1462,186880,2317,Waitangi,2449,155, +2,1463,186880,2317,Waitangi,2449,155, +2,1464,187392,2317,Waitangi,2503,155, +2,1465,187392,2317,Waitangi,2503,155, +2,1466,187392,2317,Waitangi,2503,155, +2,1467,187392,2317,Waitangi,2503,155, +2,1468,187904,2317,Waitangi,2557,155, +2,1469,187904,2317,Waitangi,2557,155, +2,1470,187904,2317,Waitangi,2557,155, +2,1471,187904,2317,Waitangi,2557,155, +2,1472,188416,2317,Waitangi,2611,155, +2,1473,188416,2317,Waitangi,2611,155, +2,1474,188416,2317,Waitangi,2611,155, +2,1475,188416,2317,Waitangi,2611,155, +2,1476,188928,2317,Waitangi,2665,155, +2,1477,188928,2317,Waitangi,2665,155, +2,1478,188928,2317,Waitangi,2665,155, +2,1479,188928,2317,Waitangi,2665,155, +2,1480,189440,2317,Waitangi,2719,155, +2,1481,189440,2317,Waitangi,2719,155, +2,1482,189440,2317,Waitangi,2719,155, +2,1483,189440,2317,Waitangi,2719,155, +2,1484,189952,2317,Waitangi,2774,155, +2,1485,189952,2317,Waitangi,2774,155, +2,1486,189952,2317,Waitangi,2774,155, +2,1487,189952,2317,Waitangi,2774,155, +2,1488,190464,2317,Waitangi,2829,155, +2,1489,190464,2317,Waitangi,2829,155, +2,1490,190464,2317,Waitangi,2829,155, +2,1491,190464,2317,Waitangi,2829,155, +2,1492,190976,2317,Waitangi,2884,155, +2,1493,190976,2317,Waitangi,2884,155, +2,1494,190976,2317,Waitangi,2884,155, +2,1495,190976,2317,Waitangi,2884,155, +2,1496,191488,2317,Waitangi,2939,155, +2,1497,191488,2317,Waitangi,2939,155, +2,1498,191488,2317,Waitangi,2939,155, +2,1499,191488,2317,Waitangi,2939,155, +2,1500,192000,2317,Waitangi,2994,155, +2,1501,192000,2317,Waitangi,2994,155, +2,1502,192000,2317,Waitangi,2994,155, +2,1503,192000,2317,Waitangi,2994,155, +2,1504,192512,2317,Waitangi,3049,155, +2,1505,192512,2317,Waitangi,3049,155, +2,1506,192512,2317,Waitangi,3049,155, +2,1507,192512,2317,Waitangi,3049,155, +2,1508,193024,2317,Waitangi,3105,155, +2,1509,193024,2317,Waitangi,3105,155, +2,1510,193024,2317,Waitangi,3105,155, +2,1511,193024,2317,Waitangi,3105,155, +2,1512,193536,2317,Waitangi,3161,155, +2,1513,193536,2317,Waitangi,3161,155, +2,1514,193536,2317,Waitangi,3161,155, +2,1515,193536,2317,Waitangi,3161,155, +2,1516,194048,2317,Waitangi,3217,155, +2,1517,194048,2317,Waitangi,3217,155, +2,1518,194048,2317,Waitangi,3217,155, +2,1519,194048,2317,Waitangi,3217,155, +2,1520,194560,2317,Waitangi,3273,155, +2,1521,194560,2317,Waitangi,3273,155, +2,1522,194560,2317,Waitangi,3273,155, +2,1523,194560,2317,Waitangi,3273,155, +2,1524,195072,2317,Waitangi,3329,155, +2,1525,195072,2317,Waitangi,3329,155, +2,1526,195072,2317,Waitangi,3329,155, +2,1527,195072,2317,Waitangi,3329,155, +2,1528,195584,2317,Waitangi,3385,155, +2,1529,195584,2317,Waitangi,3385,155, +2,1530,195584,2317,Waitangi,3385,155, +2,1531,195584,2317,Waitangi,3385,155, +2,1532,196096,2317,Waitangi,3442,155, +2,1533,196096,2317,Waitangi,3442,155, +2,1534,196096,2317,Waitangi,3442,155, +2,1535,196096,2317,Waitangi,3442,155, +2,1536,196608,2317,Waitangi,3499,155, +2,1537,196608,2317,Waitangi,3499,155, +2,1538,196608,2317,Waitangi,3499,155, +2,1539,196608,2317,Waitangi,3499,155, +2,1540,197120,2317,Waitangi,3556,155, +2,1541,197120,2317,Waitangi,3556,155, +2,1542,197120,2317,Waitangi,3556,155, +2,1543,197120,2317,Waitangi,3556,155, +2,1544,197632,2317,Waitangi,3613,155, +2,1545,197632,2317,Waitangi,3613,155, +2,1546,197632,2317,Waitangi,3613,155, +2,1547,197632,2317,Waitangi,3613,155, +2,1548,198144,2317,Waitangi,3670,155, +2,1549,198144,2317,Waitangi,3670,155, +2,1550,198144,2317,Waitangi,3670,155, +2,1551,198144,2317,Waitangi,3670,155, +2,1552,198656,2317,Waitangi,3727,155, +2,1553,198656,2317,Waitangi,3727,155, +2,1554,198656,2317,Waitangi,3727,155, +2,1555,198656,2317,Waitangi,3727,155, +2,1556,199168,2317,Waitangi,3785,155, +2,1557,199168,2317,Waitangi,3785,155, +2,1558,199168,2317,Waitangi,3785,155, +2,1559,199168,2317,Waitangi,3785,155, +2,1560,199680,2317,Waitangi,3843,155, +2,1561,199680,2317,Waitangi,3843,155, +2,1562,199680,2317,Waitangi,3843,155, +2,1563,199680,2317,Waitangi,3843,155, +2,1564,200192,2317,Waitangi,3901,155, +2,1565,200192,2317,Waitangi,3901,155, +2,1566,200192,2317,Waitangi,3901,155, +2,1567,200192,2317,Waitangi,3901,155, +2,1568,200704,2317,Waitangi,3959,155, +2,1569,200704,2317,Waitangi,3959,155, +2,1570,200704,2317,Waitangi,3959,155, +2,1571,200704,2317,Waitangi,3959,155, +2,1572,201216,2317,Waitangi,4017,155, +2,1573,201216,2317,Waitangi,4017,155, +2,1574,201216,2317,Waitangi,4017,155, +2,1575,201216,2317,Waitangi,4017,155, +2,1576,201728,2317,Waitangi,4075,155, +2,1577,201728,2317,Waitangi,4075,155, +2,1578,201728,2317,Waitangi,4075,155, +2,1579,201728,2317,Waitangi,4075,155, +2,1580,202240,2317,Waitangi,4133,155, +2,1581,202240,2317,Waitangi,4133,155, +2,1582,202240,2317,Waitangi,4133,155, +2,1583,202240,2317,Waitangi,4133,155, +2,1584,202752,2317,Waitangi,4192,155, +2,1585,202752,2317,Waitangi,4192,155, +2,1586,202752,2317,Waitangi,4192,155, +2,1587,202752,2317,Waitangi,4192,155, +2,1588,203264,2317,Waitangi,4251,155, +2,1589,203264,2317,Waitangi,4251,155, +2,1590,203264,2317,Waitangi,4251,155, +2,1591,203264,2317,Waitangi,4251,155, +2,1592,203776,2317,Waitangi,4310,155, +2,1593,203776,2317,Waitangi,4310,155, +2,1594,203776,2317,Waitangi,4310,155, +2,1595,203776,2317,Waitangi,4310,155, +2,1596,204288,2317,Waitangi,4369,155, +2,1597,204288,2317,Waitangi,4369,155, +2,1598,204288,2317,Waitangi,4369,155, +2,1599,204288,2317,Waitangi,4369,155, +2,1600,204800,2317,Waitangi,4428,155, +2,1601,204800,2317,Waitangi,4428,155, +2,1602,204800,2317,Waitangi,4428,155, +2,1603,204800,2317,Waitangi,4428,155, +2,1604,205312,2317,Waitangi,4487,155, +2,1605,205312,2317,Waitangi,4487,155, +2,1606,205312,2317,Waitangi,4487,155, +2,1607,205312,2317,Waitangi,4487,155, +2,1608,205824,2317,Waitangi,4546,155, +2,1609,205824,2317,Waitangi,4546,155, +2,1610,205824,2317,Waitangi,4546,155, +2,1611,205824,2317,Waitangi,4546,155, +2,1612,206336,2317,Waitangi,4606,155, +2,1613,206336,2317,Waitangi,4606,155, +2,1614,206336,2317,Waitangi,4606,155, +2,1615,206336,2317,Waitangi,4606,155, +2,1616,206848,2317,Waitangi,4666,155, +2,1617,206848,2317,Waitangi,4666,155, +2,1618,206848,2317,Waitangi,4666,155, +2,1619,206848,2317,Waitangi,4666,155, +2,1620,207360,2317,Waitangi,4726,155, +2,1621,207360,2317,Waitangi,4726,155, +2,1622,207360,2317,Waitangi,4726,155, +2,1623,207360,2317,Waitangi,4726,155, +2,1624,207872,2317,Waitangi,4786,155, +2,1625,207872,2317,Waitangi,4786,155, +2,1626,207872,2317,Waitangi,4786,155, +2,1627,207872,2317,Waitangi,4786,155, +2,1628,208384,2317,Waitangi,4846,155, +2,1629,208384,2317,Waitangi,4846,155, +2,1630,208384,2317,Waitangi,4846,155, +2,1631,208384,2317,Waitangi,4846,155, +2,1632,208896,2317,Waitangi,4906,155, +2,1633,208896,2317,Waitangi,4906,155, +2,1634,208896,2317,Waitangi,4906,155, +2,1635,208896,2317,Waitangi,4906,155, +2,1636,209408,2317,Waitangi,4966,155, +2,1637,209408,2317,Waitangi,4966,155, +2,1638,209408,2317,Waitangi,4966,155, +2,1639,209408,2317,Waitangi,4966,155, +2,1640,209920,2317,Waitangi,5026,155, +2,1641,209920,2317,Waitangi,5026,155, +2,1642,209920,2317,Waitangi,5026,155, +2,1643,209920,2317,Waitangi,5026,155, +2,1644,210432,2317,Waitangi,5087,155, +2,1645,210432,2317,Waitangi,5087,155, +2,1646,210432,2317,Waitangi,5087,155, +2,1647,210432,2317,Waitangi,5087,155, +2,1648,210944,2317,Waitangi,5148,155, +2,1649,210944,2317,Waitangi,5148,155, +2,1650,210944,2317,Waitangi,5148,155, +2,1651,210944,2317,Waitangi,5148,155, +2,1652,211456,2317,Waitangi,5209,155, +2,1653,211456,2317,Waitangi,5209,155, +2,1654,211456,2317,Waitangi,5209,155, +2,1655,211456,2317,Waitangi,5209,155, +2,1656,211968,2317,Waitangi,5270,155, +2,1657,211968,2317,Waitangi,5270,155, +2,1658,211968,2317,Waitangi,5270,155, +2,1659,211968,2317,Waitangi,5270,155, +2,1660,212480,2317,Waitangi,5331,155, +2,1661,212480,2317,Waitangi,5331,155, +2,1662,212480,2317,Waitangi,5331,155, +2,1663,212480,2317,Waitangi,5331,155, +2,1664,212992,2317,Waitangi,5392,155, +2,1665,212992,2317,Waitangi,5392,155, +2,1666,212992,2317,Waitangi,5392,155, +2,1667,212992,2317,Waitangi,5392,155, +2,1668,213504,2317,Waitangi,5453,155, +2,1669,213504,2317,Waitangi,5453,155, +2,1670,213504,2317,Waitangi,5453,155, +2,1671,213504,2317,Waitangi,5453,155, +2,1672,214016,2317,Waitangi,5514,155, +2,1673,214016,2317,Waitangi,5514,155, +2,1674,214016,2317,Waitangi,5514,155, +2,1675,214016,2317,Waitangi,5514,155, +2,1676,214528,2317,Waitangi,5575,155, +2,1677,214528,2317,Waitangi,5575,155, +2,1678,214528,2317,Waitangi,5575,155, +2,1679,214528,2317,Waitangi,5575,155, +2,1680,215040,2317,Waitangi,5637,155, +2,1681,215040,2317,Waitangi,5637,155, +2,1682,215040,2317,Waitangi,5637,155, +2,1683,215040,2317,Waitangi,5637,155, +2,1684,215552,2317,Waitangi,5699,155, +2,1685,215552,2317,Waitangi,5699,155, +2,1686,215552,2317,Waitangi,5699,155, +2,1687,215552,2317,Waitangi,5699,155, +2,1688,216064,2317,Waitangi,5761,155, +2,1689,216064,2317,Waitangi,5761,155, +2,1690,216064,2317,Waitangi,5761,155, +2,1691,216064,2317,Waitangi,5761,155, +2,1692,216576,2317,Waitangi,5823,155, +2,1693,216576,2317,Waitangi,5823,155, +2,1694,216576,2317,Waitangi,5823,155, +2,1695,216576,2317,Waitangi,5823,155, +2,1696,217088,2317,Waitangi,5885,155, +2,1697,217088,2317,Waitangi,5885,155, +2,1698,217088,2317,Waitangi,5885,155, +2,1699,217088,2317,Waitangi,5885,155, +2,1700,217600,2317,Waitangi,5947,155, +2,1701,217600,2317,Waitangi,5947,155, +2,1702,217600,2317,Waitangi,5947,155, +2,1703,217600,2317,Waitangi,5947,155, +2,1704,218112,2317,Waitangi,6009,155, +2,1705,218112,2317,Waitangi,6009,155, +2,1706,218112,2317,Waitangi,6009,155, +2,1707,218112,2317,Waitangi,6009,155, +2,1708,218624,2317,Waitangi,6071,155, +2,1709,218624,2317,Waitangi,6071,155, +2,1710,218624,2317,Waitangi,6071,155, +2,1711,218624,2317,Waitangi,6071,155, +2,1712,219136,2317,Waitangi,6133,155, +2,1713,219136,2317,Waitangi,6133,155, +2,1714,219136,2317,Waitangi,6133,155, +2,1715,219136,2317,Waitangi,6133,155, +2,1716,219648,2317,Waitangi,6196,155, +2,1717,219648,2317,Waitangi,6196,155, +2,1718,219648,2317,Waitangi,6196,155, +2,1719,219648,2317,Waitangi,6196,155, +2,1720,220160,2317,Waitangi,6259,155, +2,1721,220160,2317,Waitangi,6259,155, +2,1722,220160,2317,Waitangi,6259,155, +2,1723,220160,2317,Waitangi,6259,155, +2,1724,220672,2317,Waitangi,6322,155, +2,1725,220672,2317,Waitangi,6322,155, +2,1726,220672,2317,Waitangi,6322,155, +2,1727,220672,2317,Waitangi,6322,155, +2,1728,221184,2317,Waitangi,6385,155, +2,1729,221184,2317,Waitangi,6385,155, +2,1730,221184,2317,Waitangi,6385,155, +2,1731,221184,2317,Waitangi,6385,155, +2,1732,221696,2317,Waitangi,6448,155, +2,1733,221696,2317,Waitangi,6448,155, +2,1734,221696,2317,Waitangi,6448,155, +2,1735,221696,2317,Waitangi,6448,155, +2,1736,222208,2317,Waitangi,6511,155, +2,1737,222208,2317,Waitangi,6511,155, +2,1738,222208,2317,Waitangi,6511,155, +2,1739,222208,2317,Waitangi,6511,155, +2,1740,222720,2317,Waitangi,6574,155, +2,1741,222720,2317,Waitangi,6574,155, +2,1742,222720,2317,Waitangi,6574,155, +2,1743,222720,2317,Waitangi,6574,155, +2,1744,223232,2317,Waitangi,6637,155, +2,1745,223232,2317,Waitangi,6637,155, +2,1746,223232,2317,Waitangi,6637,155, +2,1747,223232,2317,Waitangi,6637,155, +2,1748,223744,2317,Waitangi,6700,155, +2,1749,223744,2317,Waitangi,6700,155, +2,1750,223744,2317,Waitangi,6700,155, +2,1751,223744,2317,Waitangi,6700,155, +2,1752,224256,2317,Waitangi,6763,155, +2,1753,224256,2317,Waitangi,6763,155, +2,1754,224256,2317,Waitangi,6763,155, +2,1755,224256,2317,Waitangi,6763,155, +2,1756,224768,2317,Waitangi,6826,155, +2,1757,224768,2317,Waitangi,6826,155, +2,1758,224768,2317,Waitangi,6826,155, +2,1759,224768,2317,Waitangi,6826,155, +2,1760,225280,2317,Waitangi,6889,155, +2,1761,225280,2317,Waitangi,6889,155, +2,1762,225280,2317,Waitangi,6889,155, +2,1763,225280,2317,Waitangi,6889,155, +2,1764,225792,2317,Waitangi,6953,155, +2,1765,225792,2317,Waitangi,6953,155, +2,1766,225792,2317,Waitangi,6953,155, +2,1767,225792,2317,Waitangi,6953,155, +2,1768,226304,2317,Waitangi,7017,155, +2,1769,226304,2317,Waitangi,7017,155, +2,1770,226304,2317,Waitangi,7017,155, +2,1771,226304,2317,Waitangi,7017,155, +2,1772,226816,2317,Waitangi,7081,155, +2,1773,226816,2317,Waitangi,7081,155, +2,1774,226816,2317,Waitangi,7081,155, +2,1775,226816,2317,Waitangi,7081,155, +2,1776,227328,2317,Waitangi,7145,155, +2,1777,227328,2317,Waitangi,7145,155, +2,1778,227328,2317,Waitangi,7145,155, +2,1779,227328,2317,Waitangi,7145,155, +2,1780,227840,2317,Waitangi,7209,155, +2,1781,227840,2317,Waitangi,7209,155, +2,1782,227840,2317,Waitangi,7209,155, +2,1783,227840,2317,Waitangi,7209,155, +2,1784,228352,2317,Waitangi,7273,155, +2,1785,228352,2317,Waitangi,7273,155, +2,1786,228352,2317,Waitangi,7273,155, +2,1787,228352,2317,Waitangi,7273,155, +2,1788,228864,2317,Waitangi,7337,155, +2,1789,228864,2317,Waitangi,7337,155, +2,1790,228864,2317,Waitangi,7337,155, +2,1791,228864,2317,Waitangi,7337,155, +2,1792,229376,2317,Waitangi,7401,155, +2,1793,229376,2317,Waitangi,7401,155, +2,1794,229376,2317,Waitangi,7401,155, +2,1795,229376,2317,Waitangi,7401,155, +2,1796,229888,2317,Waitangi,7465,155, +2,1797,229888,2317,Waitangi,7465,155, +2,1798,229888,2317,Waitangi,7465,155, +2,1799,229888,2317,Waitangi,7465,155, +2,1800,230400,2317,Waitangi,7529,155, +2,1801,230400,2317,Waitangi,7529,155, +2,1802,230400,2317,Waitangi,7529,155, +2,1803,230400,2317,Waitangi,7529,155, +2,1804,230912,2317,Waitangi,7593,155, +2,1805,230912,2317,Waitangi,7593,155, +2,1806,230912,2317,Waitangi,7593,155, +2,1807,230912,2317,Waitangi,7593,155, +2,1808,231424,2317,Waitangi,7657,155, +2,1809,231424,2317,Waitangi,7657,155, +2,1810,231424,2317,Waitangi,7657,155, +2,1811,231424,2317,Waitangi,7657,155, +2,1812,231936,2317,Waitangi,7722,155, +2,1813,231936,2317,Waitangi,7722,155, +2,1814,231936,2317,Waitangi,7722,155, +2,1815,231936,2317,Waitangi,7722,155, +2,1816,232448,2317,Waitangi,7787,155, +2,1817,232448,2317,Waitangi,7787,155, +2,1818,232448,2317,Waitangi,7787,155, +2,1819,232448,2317,Waitangi,7787,155, +2,1820,232960,2317,Waitangi,7852,155, +2,1821,232960,2317,Waitangi,7852,155, +2,1822,232960,2317,Waitangi,7852,155, +2,1823,232960,2317,Waitangi,7852,155, +2,1824,233472,2317,Waitangi,7917,155, +2,1825,233472,2317,Waitangi,7917,155, +2,1826,233472,2317,Waitangi,7917,155, +2,1827,233472,2317,Waitangi,7917,155, +2,1828,233984,2317,Waitangi,7982,155, +2,1829,233984,2317,Waitangi,7982,155, +2,1830,233984,2317,Waitangi,7982,155, +2,1831,233984,2317,Waitangi,7982,155, +2,1832,234496,2317,Waitangi,8047,155, +2,1833,234496,2317,Waitangi,8047,155, +2,1834,234496,2317,Waitangi,8047,155, +2,1835,234496,2317,Waitangi,8047,155, +2,1836,235008,2317,Waitangi,8112,155, +2,1837,235008,2317,Waitangi,8112,155, +2,1838,235008,2317,Waitangi,8112,155, +2,1839,235008,2317,Waitangi,8112,155, +2,1840,235520,2317,Waitangi,8177,155, +2,1841,235520,2317,Waitangi,8177,155, +2,1842,235520,2317,Waitangi,8177,155, +2,1843,235520,2317,Waitangi,8177,155, +2,1844,236032,2317,Waitangi,8242,155, +2,1845,236032,2317,Waitangi,8242,155, +2,1846,236032,2317,Waitangi,8242,155, +2,1847,236032,2317,Waitangi,8242,155, +2,1848,236544,2317,Waitangi,8307,155, +2,1849,236544,2317,Waitangi,8307,155, +2,1850,236544,2317,Waitangi,8307,155, +2,1851,236544,2317,Waitangi,8307,155, +2,1852,237056,2317,Waitangi,8372,155, +2,1853,237056,2317,Waitangi,8372,155, +2,1854,237056,2317,Waitangi,8372,155, +2,1855,237056,2317,Waitangi,8372,155, +2,1856,237568,2317,Waitangi,8437,155, +2,1857,237568,2317,Waitangi,8437,155, +2,1858,237568,2317,Waitangi,8437,155, +2,1859,237568,2317,Waitangi,8437,155, +2,1860,238080,2317,Waitangi,8502,155, +2,1861,238080,2317,Waitangi,8502,155, +2,1862,238080,2317,Waitangi,8502,155, +2,1863,238080,2317,Waitangi,8502,155, +2,1864,238592,2317,Waitangi,8567,155, +2,1865,238592,2317,Waitangi,8567,155, +2,1866,238592,2317,Waitangi,8567,155, +2,1867,238592,2317,Waitangi,8567,155, +2,1868,239104,2317,Waitangi,8632,155, +2,1869,239104,2317,Waitangi,8632,155, +2,1870,239104,2317,Waitangi,8632,155, +2,1871,239104,2317,Waitangi,8632,155, +2,1872,239616,2317,Waitangi,8697,155, +2,1873,239616,2317,Waitangi,8697,155, +2,1874,239616,2317,Waitangi,8697,155, +2,1875,239616,2317,Waitangi,8697,155, +2,1876,240128,2317,Waitangi,8763,155, +2,1877,240128,2317,Waitangi,8763,155, +2,1878,240128,2317,Waitangi,8763,155, +2,1879,240128,2317,Waitangi,8763,155, +2,1880,240640,2317,Waitangi,8829,155, +2,1881,240640,2317,Waitangi,8829,155, +2,1882,240640,2317,Waitangi,8829,155, +2,1883,240640,2317,Waitangi,8829,155, +2,1884,241152,2317,Waitangi,8895,155, +2,1885,241152,2317,Waitangi,8895,155, +2,1886,241152,2317,Waitangi,8895,155, +2,1887,241152,2317,Waitangi,8895,155, +2,1888,241664,2317,Waitangi,8961,155, +2,1889,241664,2317,Waitangi,8961,155, +2,1890,241664,2317,Waitangi,8961,155, +2,1891,241664,2317,Waitangi,8961,155, +2,1892,242176,2317,Waitangi,9027,155, +2,1893,242176,2317,Waitangi,9027,155, +2,1894,242176,2317,Waitangi,9027,155, +2,1895,242176,2317,Waitangi,9027,155, +2,1896,242688,2317,Waitangi,9093,155, +2,1897,242688,2317,Waitangi,9093,155, +2,1898,242688,2317,Waitangi,9093,155, +2,1899,242688,2317,Waitangi,9093,155, +2,1900,243200,2317,Waitangi,9159,155, +2,1901,243200,2317,Waitangi,9159,155, +2,1902,243200,2317,Waitangi,9159,155, +2,1903,243200,2317,Waitangi,9159,155, +2,1904,243712,2317,Waitangi,9225,155, +2,1905,243712,2317,Waitangi,9225,155, +2,1906,243712,2317,Waitangi,9225,155, +2,1907,243712,2317,Waitangi,9225,155, +2,1908,244224,2317,Waitangi,9291,155, +2,1909,244224,2317,Waitangi,9291,155, +2,1910,244224,2317,Waitangi,9291,155, +2,1911,244224,2317,Waitangi,9291,155, +2,1912,244736,2317,Waitangi,9357,155, +2,1913,244736,2317,Waitangi,9357,155, +2,1914,244736,2317,Waitangi,9357,155, +2,1915,244736,2317,Waitangi,9357,155, +2,1916,245248,2317,Waitangi,9423,155, +2,1917,245248,2317,Waitangi,9423,155, +2,1918,245248,2317,Waitangi,9423,155, +2,1919,245248,2317,Waitangi,9423,155, +2,1920,245760,2317,Waitangi,9489,155, +2,1921,245760,2317,Waitangi,9489,155, +2,1922,245760,2317,Waitangi,9489,155, +2,1923,245760,2317,Waitangi,9489,155, +2,1924,246272,2317,Waitangi,9555,155, +2,1925,246272,2317,Waitangi,9555,155, +2,1926,246272,2317,Waitangi,9555,155, +2,1927,246272,2317,Waitangi,9555,155, +2,1928,246784,2317,Waitangi,9621,155, +2,1929,246784,2317,Waitangi,9621,155, +2,1930,246784,2317,Waitangi,9621,155, +2,1931,246784,2317,Waitangi,9621,155, +2,1932,247296,2317,Waitangi,9687,155, +2,1933,247296,2317,Waitangi,9687,155, +2,1934,247296,2317,Waitangi,9687,155, +2,1935,247296,2317,Waitangi,9687,155, +2,1936,247808,2317,Waitangi,9753,155, +2,1937,247808,2317,Waitangi,9753,155, +2,1938,247808,2317,Waitangi,9753,155, +2,1939,247808,2317,Waitangi,9753,155, +2,1940,248320,2317,Waitangi,9819,155, +2,1941,248320,2317,Waitangi,9819,155, +2,1942,248320,2317,Waitangi,9819,155, +2,1943,248320,2317,Waitangi,9819,155, +2,1944,248832,2317,Waitangi,9885,155, +2,1945,248832,2317,Waitangi,9885,155, +2,1946,248832,2317,Waitangi,9885,155, +2,1947,248832,2317,Waitangi,9885,155, +2,1948,249344,2317,Waitangi,9952,155, +2,1949,249344,2317,Waitangi,9952,155, +2,1950,249344,2317,Waitangi,9952,155, +2,1951,249344,2317,Waitangi,9952,155, +2,1952,249856,2317,Waitangi,10019,155, +2,1953,249856,2317,Waitangi,10019,155, +2,1954,249856,2317,Waitangi,10019,155, +2,1955,249856,2317,Waitangi,10019,155, +2,1956,250368,2317,Waitangi,10086,155, +2,1957,250368,2317,Waitangi,10086,155, +2,1958,250368,2317,Waitangi,10086,155, +2,1959,250368,2317,Waitangi,10086,155, +2,1960,250880,2317,Waitangi,10153,155, +2,1961,250880,2317,Waitangi,10153,155, +2,1962,250880,2317,Waitangi,10153,155, +2,1963,250880,2317,Waitangi,10153,155, +2,1964,251392,2317,Waitangi,10220,155, +2,1965,251392,2317,Waitangi,10220,155, +2,1966,251392,2317,Waitangi,10220,155, +2,1967,251392,2317,Waitangi,10220,155, +2,1968,251904,2317,Waitangi,10287,155, +2,1969,251904,2317,Waitangi,10287,155, +2,1970,251904,2317,Waitangi,10287,155, +2,1971,251904,2317,Waitangi,10287,155, +2,1972,252416,2317,Waitangi,10354,155, +2,1973,252416,2317,Waitangi,10354,155, +2,1974,252416,2317,Waitangi,10354,155, +2,1975,252416,2317,Waitangi,10354,155, +2,1976,252928,2317,Waitangi,10421,155, +2,1977,252928,2317,Waitangi,10421,155, +2,1978,252928,2317,Waitangi,10421,155, +2,1979,252928,2317,Waitangi,10421,155, +2,1980,253440,2317,Waitangi,10488,155, +2,1981,253440,2317,Waitangi,10488,155, +2,1982,253440,2317,Waitangi,10488,155, +2,1983,253440,2317,Waitangi,10488,155, +2,1984,253952,2317,Waitangi,10555,155, +2,1985,253952,2317,Waitangi,10555,155, +2,1986,253952,2317,Waitangi,10555,155, +2,1987,253952,2317,Waitangi,10555,155, +2,1988,254464,2317,Waitangi,10622,155, +2,1989,254464,2317,Waitangi,10622,155, +2,1990,254464,2317,Waitangi,10622,155, +2,1991,254464,2317,Waitangi,10622,155, +2,1992,254976,2317,Waitangi,10689,155, +2,1993,254976,2317,Waitangi,10689,155, +2,1994,254976,2317,Waitangi,10689,155, +2,1995,254976,2317,Waitangi,10689,155, +2,1996,255488,2317,Waitangi,10756,155, +2,1997,255488,2317,Waitangi,10756,155, +2,1998,255488,2317,Waitangi,10756,155, +2,1999,255488,2317,Waitangi,10756,155, +2,2000,256000,2317,Waitangi,10823,155, +2,2001,256000,2317,Waitangi,10823,155, +2,2002,256000,2317,Waitangi,10823,155, +2,2003,256000,2317,Waitangi,10823,155, +2,2004,256512,2317,Waitangi,10890,155, +2,2005,256512,2317,Waitangi,10890,155, +2,2006,256512,2317,Waitangi,10890,155, +2,2007,256512,2317,Waitangi,10890,155, +2,2008,257024,2317,Waitangi,10957,155, +2,2009,257024,2317,Waitangi,10957,155, +2,2010,257024,2317,Waitangi,10957,155, +2,2011,257024,2317,Waitangi,10957,155, +2,2012,257536,2317,Waitangi,11024,155, +2,2013,257536,2317,Waitangi,11024,155, +2,2014,257536,2317,Waitangi,11024,155, +2,2015,257536,2317,Waitangi,11024,155, +2,2016,258048,2317,Waitangi,11091,155, +2,2017,258048,2317,Waitangi,11091,155, +2,2018,258048,2317,Waitangi,11091,155, +2,2019,258048,2317,Waitangi,11091,155, +2,2020,258560,2317,Waitangi,11158,155, +2,2021,258560,2317,Waitangi,11158,155, +2,2022,258560,2317,Waitangi,11158,155, +2,2023,258560,2317,Waitangi,11158,155, +2,2024,259072,2317,Waitangi,11225,155, +2,2025,259072,2317,Waitangi,11225,155, +2,2026,259072,2317,Waitangi,11225,155, +2,2027,259072,2317,Waitangi,11225,155, +2,2028,259584,2317,Waitangi,11292,155, +2,2029,259584,2317,Waitangi,11292,155, +2,2030,259584,2317,Waitangi,11292,155, +2,2031,259584,2317,Waitangi,11292,155, +2,2032,260096,2317,Waitangi,11359,155, +2,2033,260096,2317,Waitangi,11359,155, +2,2034,260096,2317,Waitangi,11359,155, +2,2035,260096,2317,Waitangi,11359,155, +2,2036,260608,2317,Waitangi,11426,155, +2,2037,260608,2317,Waitangi,11426,155, +2,2038,260608,2317,Waitangi,11426,155, +2,2039,260608,2317,Waitangi,11426,155, +2,2040,261120,2317,Waitangi,11493,155, +2,2041,261120,2317,Waitangi,11493,155, +2,2042,261120,2317,Waitangi,11493,155, +2,2043,261120,2317,Waitangi,11493,155, +2,2044,261632,2317,Waitangi,11560,155, +2,2045,261632,2317,Waitangi,11560,155, +2,2046,261632,2317,Waitangi,11560,155, +2,2047,261632,2317,Waitangi,11560,155, +3,0,0,6919,Anchorage,1,235, +3,1,0,6919,Anchorage,1,235, +3,2,0,6919,Anchorage,1,235, +3,3,0,6919,Anchorage,1,235, +3,4,512,6919,Anchorage,56,235, +3,5,512,6919,Anchorage,56,235, +3,6,512,6919,Anchorage,56,235, +3,7,512,6919,Anchorage,56,235, +3,8,1024,6919,Anchorage,111,235, +3,9,1024,6919,Anchorage,111,235, +3,10,1024,6919,Anchorage,111,235, +3,11,1024,6919,Anchorage,111,235, +3,12,1536,6919,Anchorage,166,235, +3,13,1536,6919,Anchorage,166,235, +3,14,1536,6919,Anchorage,166,235, +3,15,1536,6919,Anchorage,166,235, +3,16,2048,6919,Anchorage,221,235, +3,17,2048,6919,Anchorage,221,235, +3,18,2048,6919,Anchorage,221,235, +3,19,2048,6919,Anchorage,221,235, +3,20,2560,6919,Anchorage,276,235, +3,21,2560,6919,Anchorage,276,235, +3,22,2560,6919,Anchorage,276,235, +3,23,2560,6919,Anchorage,276,235, +3,24,3072,6919,Anchorage,331,235, +3,25,3072,6919,Anchorage,331,235, +3,26,3072,6919,Anchorage,331,235, +3,27,3072,6919,Anchorage,331,235, +3,28,3584,6919,Anchorage,386,235, +3,29,3584,6919,Anchorage,386,235, +3,30,3584,6919,Anchorage,386,235, +3,31,3584,6919,Anchorage,386,235, +3,32,4096,6919,Anchorage,441,235, +3,33,4096,6919,Anchorage,441,235, +3,34,4096,6919,Anchorage,441,235, +3,35,4096,6919,Anchorage,441,235, +3,36,4608,6919,Anchorage,496,235, +3,37,4608,6919,Anchorage,496,235, +3,38,4608,6919,Anchorage,496,235, +3,39,4608,6919,Anchorage,496,235, +3,40,5120,6919,Anchorage,551,235, +3,41,5120,6919,Anchorage,551,235, +3,42,5120,6919,Anchorage,551,235, +3,43,5120,6919,Anchorage,551,235, +3,44,5632,6919,Anchorage,606,235, +3,45,5632,6919,Anchorage,606,235, +3,46,5632,6919,Anchorage,606,235, +3,47,5632,6919,Anchorage,606,235, +3,48,6144,6919,Anchorage,661,235, +3,49,6144,6919,Anchorage,661,235, +3,50,6144,6919,Anchorage,661,235, +3,51,6144,6919,Anchorage,661,235, +3,52,6656,6919,Anchorage,716,235, +3,53,6656,6919,Anchorage,716,235, +3,54,6656,6919,Anchorage,716,235, +3,55,6656,6919,Anchorage,716,235, +3,56,7168,6919,Anchorage,771,235, +3,57,7168,6919,Anchorage,771,235, +3,58,7168,6919,Anchorage,771,235, +3,59,7168,6919,Anchorage,771,235, +3,60,7680,6919,Anchorage,826,235, +3,61,7680,6919,Anchorage,826,235, +3,62,7680,6919,Anchorage,826,235, +3,63,7680,6919,Anchorage,826,235, +3,64,8192,6919,Anchorage,881,235, +3,65,8192,6919,Anchorage,881,235, +3,66,8192,6919,Anchorage,881,235, +3,67,8192,6919,Anchorage,881,235, +3,68,8704,6919,Anchorage,936,235, +3,69,8704,6919,Anchorage,936,235, +3,70,8704,6919,Anchorage,936,235, +3,71,8704,6919,Anchorage,936,235, +3,72,9216,6919,Anchorage,991,235, +3,73,9216,6919,Anchorage,991,235, +3,74,9216,6919,Anchorage,991,235, +3,75,9216,6919,Anchorage,991,235, +3,76,9728,6919,Anchorage,1046,235, +3,77,9728,6919,Anchorage,1046,235, +3,78,9728,6919,Anchorage,1046,235, +3,79,9728,6919,Anchorage,1046,235, +3,80,10240,6919,Anchorage,1101,235, +3,81,10240,6919,Anchorage,1101,235, +3,82,10240,6919,Anchorage,1101,235, +3,83,10240,6919,Anchorage,1101,235, +3,84,10752,6919,Anchorage,1156,235, +3,85,10752,6919,Anchorage,1156,235, +3,86,10752,6919,Anchorage,1156,235, +3,87,10752,6919,Anchorage,1156,235, +3,88,11264,6919,Anchorage,1211,235, +3,89,11264,6919,Anchorage,1211,235, +3,90,11264,6919,Anchorage,1211,235, +3,91,11264,6919,Anchorage,1211,235, +3,92,11776,6919,Anchorage,1266,235, +3,93,11776,6919,Anchorage,1266,235, +3,94,11776,6919,Anchorage,1266,235, +3,95,11776,6919,Anchorage,1266,235, +3,96,12288,6919,Anchorage,1321,235, +3,97,12288,6919,Anchorage,1321,235, +3,98,12288,6919,Anchorage,1321,235, +3,99,12288,6919,Anchorage,1321,235, +3,100,12800,6919,Anchorage,1376,235, +3,101,12800,6919,Anchorage,1376,235, +3,102,12800,6919,Anchorage,1376,235, +3,103,12800,6919,Anchorage,1376,235, +3,104,13312,6919,Anchorage,1431,235, +3,105,13312,6919,Anchorage,1431,235, +3,106,13312,6919,Anchorage,1431,235, +3,107,13312,6919,Anchorage,1431,235, +3,108,13824,6919,Anchorage,1486,235, +3,109,13824,6919,Anchorage,1486,235, +3,110,13824,6919,Anchorage,1486,235, +3,111,13824,6919,Anchorage,1486,235, +3,112,14336,6919,Anchorage,1541,235, +3,113,14336,6919,Anchorage,1541,235, +3,114,14336,6919,Anchorage,1541,235, +3,115,14336,6919,Anchorage,1541,235, +3,116,14848,6919,Anchorage,1596,235, +3,117,14848,6919,Anchorage,1596,235, +3,118,14848,6919,Anchorage,1596,235, +3,119,14848,6919,Anchorage,1596,235, +3,120,15360,6919,Anchorage,1651,235, +3,121,15360,6919,Anchorage,1651,235, +3,122,15360,6919,Anchorage,1651,235, +3,123,15360,6919,Anchorage,1651,235, +3,124,15872,6919,Anchorage,1706,235, +3,125,15872,6919,Anchorage,1706,235, +3,126,15872,6919,Anchorage,1706,235, +3,127,15872,6919,Anchorage,1706,235, +3,128,16384,6919,Anchorage,1761,235, +3,129,16384,6919,Anchorage,1761,235, +3,130,16384,6919,Anchorage,1761,235, +3,131,16384,6919,Anchorage,1761,235, +3,132,16896,6919,Anchorage,1816,235, +3,133,16896,6919,Anchorage,1816,235, +3,134,16896,6919,Anchorage,1816,235, +3,135,16896,6919,Anchorage,1816,235, +3,136,17408,6919,Anchorage,1871,235, +3,137,17408,6919,Anchorage,1871,235, +3,138,17408,6919,Anchorage,1871,235, +3,139,17408,6919,Anchorage,1871,235, +3,140,17920,6919,Anchorage,1926,235, +3,141,17920,6919,Anchorage,1926,235, +3,142,17920,6919,Anchorage,1926,235, +3,143,17920,6919,Anchorage,1926,235, +3,144,18432,6919,Anchorage,1981,235, +3,145,18432,6919,Anchorage,1981,235, +3,146,18432,6919,Anchorage,1981,235, +3,147,18432,6919,Anchorage,1981,235, +3,148,18944,6919,Anchorage,2036,235, +3,149,18944,6919,Anchorage,2036,235, +3,150,18944,6919,Anchorage,2036,235, +3,151,18944,6919,Anchorage,2036,235, +3,152,19456,6919,Anchorage,2091,235, +3,153,19456,6919,Anchorage,2091,235, +3,154,19456,6919,Anchorage,2091,235, +3,155,19456,6919,Anchorage,2091,235, +3,156,19968,6919,Anchorage,2146,235, +3,157,19968,6919,Anchorage,2146,235, +3,158,19968,6919,Anchorage,2146,235, +3,159,19968,6919,Anchorage,2146,235, +3,160,20480,6919,Anchorage,2201,235, +3,161,20480,6919,Anchorage,2201,235, +3,162,20480,6919,Anchorage,2201,235, +3,163,20480,6919,Anchorage,2201,235, +3,164,20992,6919,Anchorage,2256,235, +3,165,20992,6919,Anchorage,2256,235, +3,166,20992,6919,Anchorage,2256,235, +3,167,20992,6919,Anchorage,2256,235, +3,168,21504,6919,Anchorage,2311,235, +3,169,21504,6919,Anchorage,2311,235, +3,170,21504,6919,Anchorage,2311,235, +3,171,21504,6919,Anchorage,2311,235, +3,172,22016,6919,Anchorage,2366,235, +3,173,22016,6919,Anchorage,2366,235, +3,174,22016,6919,Anchorage,2366,235, +3,175,22016,6919,Anchorage,2366,235, +3,176,22528,6919,Anchorage,2421,235, +3,177,22528,6919,Anchorage,2421,235, +3,178,22528,6919,Anchorage,2421,235, +3,179,22528,6919,Anchorage,2421,235, +3,180,23040,6919,Anchorage,2476,235, +3,181,23040,6919,Anchorage,2476,235, +3,182,23040,6919,Anchorage,2476,235, +3,183,23040,6919,Anchorage,2476,235, +3,184,23552,6919,Anchorage,2531,235, +3,185,23552,6919,Anchorage,2531,235, +3,186,23552,6919,Anchorage,2531,235, +3,187,23552,6919,Anchorage,2531,235, +3,188,24064,6919,Anchorage,2586,235, +3,189,24064,6919,Anchorage,2586,235, +3,190,24064,6919,Anchorage,2586,235, +3,191,24064,6919,Anchorage,2586,235, +3,192,24576,6919,Anchorage,2641,235, +3,193,24576,6919,Anchorage,2641,235, +3,194,24576,6919,Anchorage,2641,235, +3,195,24576,6919,Anchorage,2641,235, +3,196,25088,6919,Anchorage,2696,235, +3,197,25088,6919,Anchorage,2696,235, +3,198,25088,6919,Anchorage,2696,235, +3,199,25088,6919,Anchorage,2696,235, +3,200,25600,6919,Anchorage,2751,235, +3,201,25600,6919,Anchorage,2751,235, +3,202,25600,6919,Anchorage,2751,235, +3,203,25600,6919,Anchorage,2751,235, +3,204,26112,6919,Anchorage,2806,235, +3,205,26112,6919,Anchorage,2806,235, +3,206,26112,6919,Anchorage,2806,235, +3,207,26112,6919,Anchorage,2806,235, +3,208,26624,6919,Anchorage,2861,235, +3,209,26624,6919,Anchorage,2861,235, +3,210,26624,6919,Anchorage,2861,235, +3,211,26624,6919,Anchorage,2861,235, +3,212,27136,6919,Anchorage,2916,235, +3,213,27136,6919,Anchorage,2916,235, +3,214,27136,6919,Anchorage,2916,235, +3,215,27136,6919,Anchorage,2916,235, +3,216,27648,6919,Anchorage,2971,235, +3,217,27648,6919,Anchorage,2971,235, +3,218,27648,6919,Anchorage,2971,235, +3,219,27648,6919,Anchorage,2971,235, +3,220,28160,6919,Anchorage,3026,235, +3,221,28160,6919,Anchorage,3026,235, +3,222,28160,6919,Anchorage,3026,235, +3,223,28160,6919,Anchorage,3026,235, +3,224,28672,6919,Anchorage,3081,235, +3,225,28672,6919,Anchorage,3081,235, +3,226,28672,6919,Anchorage,3081,235, +3,227,28672,6919,Anchorage,3081,235, +3,228,29184,6919,Anchorage,3136,235, +3,229,29184,6919,Anchorage,3136,235, +3,230,29184,6919,Anchorage,3136,235, +3,231,29184,6919,Anchorage,3136,235, +3,232,29696,6919,Anchorage,3191,235, +3,233,29696,6919,Anchorage,3191,235, +3,234,29696,6919,Anchorage,3191,235, +3,235,29696,6919,Anchorage,3191,235, +3,236,30208,6919,Anchorage,3246,235, +3,237,30208,6919,Anchorage,3246,235, +3,238,30208,6919,Anchorage,3246,235, +3,239,30208,6919,Anchorage,3246,235, +3,240,30720,6919,Anchorage,3301,235, +3,241,30720,6919,Anchorage,3301,235, +3,242,30720,6919,Anchorage,3301,235, +3,243,30720,6919,Anchorage,3301,235, +3,244,31232,6919,Anchorage,3356,235, +3,245,31232,6919,Anchorage,3356,235, +3,246,31232,6919,Anchorage,3356,235, +3,247,31232,6919,Anchorage,3356,235, +3,248,31744,6919,Anchorage,3411,235, +3,249,31744,6919,Anchorage,3411,235, +3,250,31744,6919,Anchorage,3411,235, +3,251,31744,6919,Anchorage,3411,235, +3,252,32256,6919,Anchorage,3466,235, +3,253,32256,6919,Anchorage,3466,235, +3,254,32256,6919,Anchorage,3466,235, +3,255,32256,6919,Anchorage,3466,235, +3,256,32768,6919,Anchorage,3521,235, +3,257,32768,6919,Anchorage,3521,235, +3,258,32768,6919,Anchorage,3521,235, +3,259,32768,6919,Anchorage,3521,235, +3,260,33280,6919,Anchorage,3576,235, +3,261,33280,6919,Anchorage,3576,235, +3,262,33280,6919,Anchorage,3576,235, +3,263,33280,6919,Anchorage,3576,235, +3,264,33792,6919,Anchorage,3631,235, +3,265,33792,6919,Anchorage,3631,235, +3,266,33792,6919,Anchorage,3631,235, +3,267,33792,6919,Anchorage,3631,235, +3,268,34304,6919,Anchorage,3686,235, +3,269,34304,6919,Anchorage,3686,235, +3,270,34304,6919,Anchorage,3686,235, +3,271,34304,6919,Anchorage,3686,235, +3,272,34816,6919,Anchorage,3741,235, +3,273,34816,6919,Anchorage,3741,235, +3,274,34816,6919,Anchorage,3741,235, +3,275,34816,6919,Anchorage,3741,235, +3,276,35328,6919,Anchorage,3796,235, +3,277,35328,6919,Anchorage,3796,235, +3,278,35328,6919,Anchorage,3796,235, +3,279,35328,6919,Anchorage,3796,235, +3,280,35840,6919,Anchorage,3851,235, +3,281,35840,6919,Anchorage,3851,235, +3,282,35840,6919,Anchorage,3851,235, +3,283,35840,6919,Anchorage,3851,235, +3,284,36352,6919,Anchorage,3906,235, +3,285,36352,6919,Anchorage,3906,235, +3,286,36352,6919,Anchorage,3906,235, +3,287,36352,6919,Anchorage,3906,235, +3,288,36864,6919,Anchorage,3961,235, +3,289,36864,6919,Anchorage,3961,235, +3,290,36864,6919,Anchorage,3961,235, +3,291,36864,6919,Anchorage,3961,235, +3,292,37376,6919,Anchorage,4016,235, +3,293,37376,6919,Anchorage,4016,235, +3,294,37376,6919,Anchorage,4016,235, +3,295,37376,6919,Anchorage,4016,235, +3,296,37888,6919,Anchorage,4071,235, +3,297,37888,6919,Anchorage,4071,235, +3,298,37888,6919,Anchorage,4071,235, +3,299,37888,6919,Anchorage,4071,235, +3,300,38400,6919,Anchorage,4126,235, +3,301,38400,6919,Anchorage,4126,235, +3,302,38400,6919,Anchorage,4126,235, +3,303,38400,6919,Anchorage,4126,235, +3,304,38912,6919,Anchorage,4181,235, +3,305,38912,6919,Anchorage,4181,235, +3,306,38912,6919,Anchorage,4181,235, +3,307,38912,6919,Anchorage,4181,235, +3,308,39424,6919,Anchorage,4236,235, +3,309,39424,6919,Anchorage,4236,235, +3,310,39424,6919,Anchorage,4236,235, +3,311,39424,6919,Anchorage,4236,235, +3,312,39936,6919,Anchorage,4291,235, +3,313,39936,6919,Anchorage,4291,235, +3,314,39936,6919,Anchorage,4291,235, +3,315,39936,6919,Anchorage,4291,235, +3,316,40448,6919,Anchorage,4346,235, +3,317,40448,6919,Anchorage,4346,235, +3,318,40448,6919,Anchorage,4346,235, +3,319,40448,6919,Anchorage,4346,235, +3,320,40960,6919,Anchorage,4401,235, +3,321,40960,6919,Anchorage,4401,235, +3,322,40960,6919,Anchorage,4401,235, +3,323,40960,6919,Anchorage,4401,235, +3,324,41472,6919,Anchorage,4456,235, +3,325,41472,6919,Anchorage,4456,235, +3,326,41472,6919,Anchorage,4456,235, +3,327,41472,6919,Anchorage,4456,235, +3,328,41984,6919,Anchorage,4510,235, +3,329,41984,6919,Anchorage,4510,235, +3,330,41984,6919,Anchorage,4510,235, +3,331,41984,6919,Anchorage,4510,235, +3,332,42496,6919,Anchorage,4564,235, +3,333,42496,6919,Anchorage,4564,235, +3,334,42496,6919,Anchorage,4564,235, +3,335,42496,6919,Anchorage,4564,235, +3,336,43008,6919,Anchorage,4618,235, +3,337,43008,6919,Anchorage,4618,235, +3,338,43008,6919,Anchorage,4618,235, +3,339,43008,6919,Anchorage,4618,235, +3,340,43520,6919,Anchorage,4672,235, +3,341,43520,6919,Anchorage,4672,235, +3,342,43520,6919,Anchorage,4672,235, +3,343,43520,6919,Anchorage,4672,235, +3,344,44032,6919,Anchorage,4726,235, +3,345,44032,6919,Anchorage,4726,235, +3,346,44032,6919,Anchorage,4726,235, +3,347,44032,6919,Anchorage,4726,235, +3,348,44544,6919,Anchorage,4780,235, +3,349,44544,6919,Anchorage,4780,235, +3,350,44544,6919,Anchorage,4780,235, +3,351,44544,6919,Anchorage,4780,235, +3,352,45056,6919,Anchorage,4834,235, +3,353,45056,6919,Anchorage,4834,235, +3,354,45056,6919,Anchorage,4834,235, +3,355,45056,6919,Anchorage,4834,235, +3,356,45568,6919,Anchorage,4888,235, +3,357,45568,6919,Anchorage,4888,235, +3,358,45568,6919,Anchorage,4888,235, +3,359,45568,6919,Anchorage,4888,235, +3,360,46080,6919,Anchorage,4942,235, +3,361,46080,6919,Anchorage,4942,235, +3,362,46080,6919,Anchorage,4942,235, +3,363,46080,6919,Anchorage,4942,235, +3,364,46592,6919,Anchorage,4996,235, +3,365,46592,6919,Anchorage,4996,235, +3,366,46592,6919,Anchorage,4996,235, +3,367,46592,6919,Anchorage,4996,235, +3,368,47104,6919,Anchorage,5050,235, +3,369,47104,6919,Anchorage,5050,235, +3,370,47104,6919,Anchorage,5050,235, +3,371,47104,6919,Anchorage,5050,235, +3,372,47616,6919,Anchorage,5104,235, +3,373,47616,6919,Anchorage,5104,235, +3,374,47616,6919,Anchorage,5104,235, +3,375,47616,6919,Anchorage,5104,235, +3,376,48128,6919,Anchorage,5158,235, +3,377,48128,6919,Anchorage,5158,235, +3,378,48128,6919,Anchorage,5158,235, +3,379,48128,6919,Anchorage,5158,235, +3,380,48640,6919,Anchorage,5212,235, +3,381,48640,6919,Anchorage,5212,235, +3,382,48640,6919,Anchorage,5212,235, +3,383,48640,6919,Anchorage,5212,235, +3,384,49152,6919,Anchorage,5266,235, +3,385,49152,6919,Anchorage,5266,235, +3,386,49152,6919,Anchorage,5266,235, +3,387,49152,6919,Anchorage,5266,235, +3,388,49664,6919,Anchorage,5320,235, +3,389,49664,6919,Anchorage,5320,235, +3,390,49664,6919,Anchorage,5320,235, +3,391,49664,6919,Anchorage,5320,235, +3,392,50176,6919,Anchorage,5374,235, +3,393,50176,6919,Anchorage,5374,235, +3,394,50176,6919,Anchorage,5374,235, +3,395,50176,6919,Anchorage,5374,235, +3,396,50688,6919,Anchorage,5428,235, +3,397,50688,6919,Anchorage,5428,235, +3,398,50688,6919,Anchorage,5428,235, +3,399,50688,6919,Anchorage,5428,235, +3,400,51200,6919,Anchorage,5482,235, +3,401,51200,6919,Anchorage,5482,235, +3,402,51200,6919,Anchorage,5482,235, +3,403,51200,6919,Anchorage,5482,235, +3,404,51712,6919,Anchorage,5536,235, +3,405,51712,6919,Anchorage,5536,235, +3,406,51712,6919,Anchorage,5536,235, +3,407,51712,6919,Anchorage,5536,235, +3,408,52224,6919,Anchorage,5590,235, +3,409,52224,6919,Anchorage,5590,235, +3,410,52224,6919,Anchorage,5590,235, +3,411,52224,6919,Anchorage,5590,235, +3,412,52736,6919,Anchorage,5644,235, +3,413,52736,6919,Anchorage,5644,235, +3,414,52736,6919,Anchorage,5644,235, +3,415,52736,6919,Anchorage,5644,235, +3,416,53248,6919,Anchorage,5698,235, +3,417,53248,6919,Anchorage,5698,235, +3,418,53248,6919,Anchorage,5698,235, +3,419,53248,6919,Anchorage,5698,235, +3,420,53760,6919,Anchorage,5752,235, +3,421,53760,6919,Anchorage,5752,235, +3,422,53760,6919,Anchorage,5752,235, +3,423,53760,6919,Anchorage,5752,235, +3,424,54272,6919,Anchorage,5806,235, +3,425,54272,6919,Anchorage,5806,235, +3,426,54272,6919,Anchorage,5806,235, +3,427,54272,6919,Anchorage,5806,235, +3,428,54784,6919,Anchorage,5860,235, +3,429,54784,6919,Anchorage,5860,235, +3,430,54784,6919,Anchorage,5860,235, +3,431,54784,6919,Anchorage,5860,235, +3,432,55296,6919,Anchorage,5914,235, +3,433,55296,6919,Anchorage,5914,235, +3,434,55296,6919,Anchorage,5914,235, +3,435,55296,6919,Anchorage,5914,235, +3,436,55808,6919,Anchorage,5968,235, +3,437,55808,6919,Anchorage,5968,235, +3,438,55808,6919,Anchorage,5968,235, +3,439,55808,6919,Anchorage,5968,235, +3,440,56320,6919,Anchorage,6022,235, +3,441,56320,6919,Anchorage,6022,235, +3,442,56320,6919,Anchorage,6022,235, +3,443,56320,6919,Anchorage,6022,235, +3,444,56832,6919,Anchorage,6076,235, +3,445,56832,6919,Anchorage,6076,235, +3,446,56832,6919,Anchorage,6076,235, +3,447,56832,6919,Anchorage,6076,235, +3,448,57344,6919,Anchorage,6130,235, +3,449,57344,6919,Anchorage,6130,235, +3,450,57344,6919,Anchorage,6130,235, +3,451,57344,6919,Anchorage,6130,235, +3,452,57856,6919,Anchorage,6184,235, +3,453,57856,6919,Anchorage,6184,235, +3,454,57856,6919,Anchorage,6184,235, +3,455,57856,6919,Anchorage,6184,235, +3,456,58368,6919,Anchorage,6238,235, +3,457,58368,6919,Anchorage,6238,235, +3,458,58368,6919,Anchorage,6238,235, +3,459,58368,6919,Anchorage,6238,235, +3,460,58880,6919,Anchorage,6292,235, +3,461,58880,6919,Anchorage,6292,235, +3,462,58880,6919,Anchorage,6292,235, +3,463,58880,6919,Anchorage,6292,235, +3,464,59392,6919,Anchorage,6346,235, +3,465,59392,6919,Anchorage,6346,235, +3,466,59392,6919,Anchorage,6346,235, +3,467,59392,6919,Anchorage,6346,235, +3,468,59904,6919,Anchorage,6400,235, +3,469,59904,6919,Anchorage,6400,235, +3,470,59904,6919,Anchorage,6400,235, +3,471,59904,6919,Anchorage,6400,235, +3,472,60416,6919,Anchorage,6454,235, +3,473,60416,6919,Anchorage,6454,235, +3,474,60416,6919,Anchorage,6454,235, +3,475,60416,6919,Anchorage,6454,235, +3,476,60928,6919,Anchorage,6508,235, +3,477,60928,6919,Anchorage,6508,235, +3,478,60928,6919,Anchorage,6508,235, +3,479,60928,6919,Anchorage,6508,235, +3,480,61440,6919,Anchorage,6562,235, +3,481,61440,6919,Anchorage,6562,235, +3,482,61440,6919,Anchorage,6562,235, +3,483,61440,6919,Anchorage,6562,235, +3,484,61952,6919,Anchorage,6616,235, +3,485,61952,6919,Anchorage,6616,235, +3,486,61952,6919,Anchorage,6616,235, +3,487,61952,6919,Anchorage,6616,235, +3,488,62464,6919,Anchorage,6670,235, +3,489,62464,6919,Anchorage,6670,235, +3,490,62464,6919,Anchorage,6670,235, +3,491,62464,6919,Anchorage,6670,235, +3,492,62976,6919,Anchorage,6724,235, +3,493,62976,6919,Anchorage,6724,235, +3,494,62976,6919,Anchorage,6724,235, +3,495,62976,6919,Anchorage,6724,235, +3,496,63488,6919,Anchorage,6778,235, +3,497,63488,6919,Anchorage,6778,235, +3,498,63488,6919,Anchorage,6778,235, +3,499,63488,6919,Anchorage,6778,235, +3,500,64000,6919,Anchorage,6832,235, +3,501,64000,6919,Anchorage,6832,235, +3,502,64000,6919,Anchorage,6832,235, +3,503,64000,6919,Anchorage,6832,235, +3,504,64512,6919,Anchorage,6886,235, +3,505,64512,6919,Anchorage,6886,235, +3,506,64512,6919,Anchorage,6886,235, +3,507,64512,6919,Anchorage,6886,235, +3,508,65024,6919,Anchorage,6940,235, +3,509,65024,6919,Anchorage,6940,235, +3,510,65024,6919,Anchorage,6940,235, +3,511,65024,6919,Anchorage,6940,235, +3,512,65536,6919,Anchorage,6994,235, +3,513,65536,6919,Anchorage,6994,235, +3,514,65536,6919,Anchorage,6994,235, +3,515,65536,6919,Anchorage,6994,235, +3,516,66048,6919,Anchorage,7048,235, +3,517,66048,6919,Anchorage,7048,235, +3,518,66048,6919,Anchorage,7048,235, +3,519,66048,6919,Anchorage,7048,235, +3,520,66560,6919,Anchorage,7102,235, +3,521,66560,6919,Anchorage,7102,235, +3,522,66560,6919,Anchorage,7102,235, +3,523,66560,6919,Anchorage,7102,235, +3,524,67072,6919,Anchorage,7156,235, +3,525,67072,6919,Anchorage,7156,235, +3,526,67072,6919,Anchorage,7156,235, +3,527,67072,6919,Anchorage,7156,235, +3,528,67584,6919,Anchorage,7210,235, +3,529,67584,6919,Anchorage,7210,235, +3,530,67584,6919,Anchorage,7210,235, +3,531,67584,6919,Anchorage,7210,235, +3,532,68096,6919,Anchorage,7264,235, +3,533,68096,6919,Anchorage,7264,235, +3,534,68096,6919,Anchorage,7264,235, +3,535,68096,6919,Anchorage,7264,235, +3,536,68608,6919,Anchorage,7318,235, +3,537,68608,6919,Anchorage,7318,235, +3,538,68608,6919,Anchorage,7318,235, +3,539,68608,6919,Anchorage,7318,235, +3,540,69120,6919,Anchorage,7372,235, +3,541,69120,6919,Anchorage,7372,235, +3,542,69120,6919,Anchorage,7372,235, +3,543,69120,6919,Anchorage,7372,235, +3,544,69632,6919,Anchorage,7426,235, +3,545,69632,6919,Anchorage,7426,235, +3,546,69632,6919,Anchorage,7426,235, +3,547,69632,6919,Anchorage,7426,235, +3,548,70144,6919,Anchorage,7480,235, +3,549,70144,6919,Anchorage,7480,235, +3,550,70144,6919,Anchorage,7480,235, +3,551,70144,6919,Anchorage,7480,235, +3,552,70656,6919,Anchorage,7534,235, +3,553,70656,6919,Anchorage,7534,235, +3,554,70656,6919,Anchorage,7534,235, +3,555,70656,6919,Anchorage,7534,235, +3,556,71168,6919,Anchorage,7588,235, +3,557,71168,6919,Anchorage,7588,235, +3,558,71168,6919,Anchorage,7588,235, +3,559,71168,6919,Anchorage,7588,235, +3,560,71680,6919,Anchorage,7642,235, +3,561,71680,6919,Anchorage,7642,235, +3,562,71680,6919,Anchorage,7642,235, +3,563,71680,6919,Anchorage,7642,235, +3,564,72192,6919,Anchorage,7696,235, +3,565,72192,6919,Anchorage,7696,235, +3,566,72192,6919,Anchorage,7696,235, +3,567,72192,6919,Anchorage,7696,235, +3,568,72704,6919,Anchorage,7750,235, +3,569,72704,6919,Anchorage,7750,235, +3,570,72704,6919,Anchorage,7750,235, +3,571,72704,6919,Anchorage,7750,235, +3,572,73216,6919,Anchorage,7804,235, +3,573,73216,6919,Anchorage,7804,235, +3,574,73216,6919,Anchorage,7804,235, +3,575,73216,6919,Anchorage,7804,235, +3,576,73728,6919,Anchorage,7858,235, +3,577,73728,6919,Anchorage,7858,235, +3,578,73728,6919,Anchorage,7858,235, +3,579,73728,6919,Anchorage,7858,235, +3,580,74240,6919,Anchorage,7912,235, +3,581,74240,6919,Anchorage,7912,235, +3,582,74240,6919,Anchorage,7912,235, +3,583,74240,6919,Anchorage,7912,235, +3,584,74752,6919,Anchorage,7966,235, +3,585,74752,6919,Anchorage,7966,235, +3,586,74752,6919,Anchorage,7966,235, +3,587,74752,6919,Anchorage,7966,235, +3,588,75264,6919,Anchorage,8020,235, +3,589,75264,6919,Anchorage,8020,235, +3,590,75264,6919,Anchorage,8020,235, +3,591,75264,6919,Anchorage,8020,235, +3,592,75776,6919,Anchorage,8074,235, +3,593,75776,6919,Anchorage,8074,235, +3,594,75776,6919,Anchorage,8074,235, +3,595,75776,6919,Anchorage,8074,235, +3,596,76288,6919,Anchorage,8128,235, +3,597,76288,6919,Anchorage,8128,235, +3,598,76288,6919,Anchorage,8128,235, +3,599,76288,6919,Anchorage,8128,235, +3,600,76800,6919,Anchorage,8182,235, +3,601,76800,6919,Anchorage,8182,235, +3,602,76800,6919,Anchorage,8182,235, +3,603,76800,6919,Anchorage,8182,235, +3,604,77312,6919,Anchorage,8236,235, +3,605,77312,6919,Anchorage,8236,235, +3,606,77312,6919,Anchorage,8236,235, +3,607,77312,6919,Anchorage,8236,235, +3,608,77824,6919,Anchorage,8290,235, +3,609,77824,6919,Anchorage,8290,235, +3,610,77824,6919,Anchorage,8290,235, +3,611,77824,6919,Anchorage,8290,235, +3,612,78336,6919,Anchorage,8344,235, +3,613,78336,6919,Anchorage,8344,235, +3,614,78336,6919,Anchorage,8344,235, +3,615,78336,6919,Anchorage,8344,235, +3,616,78848,6919,Anchorage,8398,235, +3,617,78848,6919,Anchorage,8398,235, +3,618,78848,6919,Anchorage,8398,235, +3,619,78848,6919,Anchorage,8398,235, +3,620,79360,6919,Anchorage,8452,235, +3,621,79360,6919,Anchorage,8452,235, +3,622,79360,6919,Anchorage,8452,235, +3,623,79360,6919,Anchorage,8452,235, +3,624,79872,6919,Anchorage,8506,235, +3,625,79872,6919,Anchorage,8506,235, +3,626,79872,6919,Anchorage,8506,235, +3,627,79872,6919,Anchorage,8506,235, +3,628,80384,6919,Anchorage,8560,235, +3,629,80384,6919,Anchorage,8560,235, +3,630,80384,6919,Anchorage,8560,235, +3,631,80384,6919,Anchorage,8560,235, +3,632,80896,6919,Anchorage,8613,235, +3,633,80896,6919,Anchorage,8613,235, +3,634,80896,6919,Anchorage,8613,235, +3,635,80896,6919,Anchorage,8613,235, +3,636,81408,6919,Anchorage,8666,235, +3,637,81408,6919,Anchorage,8666,235, +3,638,81408,6919,Anchorage,8666,235, +3,639,81408,6919,Anchorage,8666,235, +3,640,81920,6919,Anchorage,8719,235, +3,641,81920,6919,Anchorage,8719,235, +3,642,81920,6919,Anchorage,8719,235, +3,643,81920,6919,Anchorage,8719,235, +3,644,82432,6919,Anchorage,8772,235, +3,645,82432,6919,Anchorage,8772,235, +3,646,82432,6919,Anchorage,8772,235, +3,647,82432,6919,Anchorage,8772,235, +3,648,82944,6919,Anchorage,8825,235, +3,649,82944,6919,Anchorage,8825,235, +3,650,82944,6919,Anchorage,8825,235, +3,651,82944,6919,Anchorage,8825,235, +3,652,83456,6919,Anchorage,8878,235, +3,653,83456,6919,Anchorage,8878,235, +3,654,83456,6919,Anchorage,8878,235, +3,655,83456,6919,Anchorage,8878,235, +3,656,83968,6919,Anchorage,8931,235, +3,657,83968,6919,Anchorage,8931,235, +3,658,83968,6919,Anchorage,8931,235, +3,659,83968,6919,Anchorage,8931,235, +3,660,84480,6919,Anchorage,8984,235, +3,661,84480,6919,Anchorage,8984,235, +3,662,84480,6919,Anchorage,8984,235, +3,663,84480,6919,Anchorage,8984,235, +3,664,84992,6919,Anchorage,9037,235, +3,665,84992,6919,Anchorage,9037,235, +3,666,84992,6919,Anchorage,9037,235, +3,667,84992,6919,Anchorage,9037,235, +3,668,85504,6919,Anchorage,9089,235, +3,669,85504,6919,Anchorage,9089,235, +3,670,85504,6919,Anchorage,9089,235, +3,671,85504,6919,Anchorage,9089,235, +3,672,86016,6919,Anchorage,9141,235, +3,673,86016,6919,Anchorage,9141,235, +3,674,86016,6919,Anchorage,9141,235, +3,675,86016,6919,Anchorage,9141,235, +3,676,86528,6919,Anchorage,9193,235, +3,677,86528,6919,Anchorage,9193,235, +3,678,86528,6919,Anchorage,9193,235, +3,679,86528,6919,Anchorage,9193,235, +3,680,87040,6919,Anchorage,9245,235, +3,681,87040,6919,Anchorage,9245,235, +3,682,87040,6919,Anchorage,9245,235, +3,683,87040,6919,Anchorage,9245,235, +3,684,87552,6919,Anchorage,9297,235, +3,685,87552,6919,Anchorage,9297,235, +3,686,87552,6919,Anchorage,9297,235, +3,687,87552,6919,Anchorage,9297,235, +3,688,88064,6919,Anchorage,9349,235, +3,689,88064,6919,Anchorage,9349,235, +3,690,88064,6919,Anchorage,9349,235, +3,691,88064,6919,Anchorage,9349,235, +3,692,88576,6919,Anchorage,9401,235, +3,693,88576,6919,Anchorage,9401,235, +3,694,88576,6919,Anchorage,9401,235, +3,695,88576,6919,Anchorage,9401,235, +3,696,89088,6919,Anchorage,9453,235, +3,697,89088,6919,Anchorage,9453,235, +3,698,89088,6919,Anchorage,9453,235, +3,699,89088,6919,Anchorage,9453,235, +3,700,89600,6919,Anchorage,9505,235, +3,701,89600,6919,Anchorage,9505,235, +3,702,89600,6919,Anchorage,9505,235, +3,703,89600,6919,Anchorage,9505,235, +3,704,90112,6919,Anchorage,9556,235, +3,705,90112,6919,Anchorage,9556,235, +3,706,90112,6919,Anchorage,9556,235, +3,707,90112,6919,Anchorage,9556,235, +3,708,90624,6919,Anchorage,9607,235, +3,709,90624,6919,Anchorage,9607,235, +3,710,90624,6919,Anchorage,9607,235, +3,711,90624,6919,Anchorage,9607,235, +3,712,91136,6919,Anchorage,9658,235, +3,713,91136,6919,Anchorage,9658,235, +3,714,91136,6919,Anchorage,9658,235, +3,715,91136,6919,Anchorage,9658,235, +3,716,91648,6919,Anchorage,9709,235, +3,717,91648,6919,Anchorage,9709,235, +3,718,91648,6919,Anchorage,9709,235, +3,719,91648,6919,Anchorage,9709,235, +3,720,92160,6919,Anchorage,9760,235, +3,721,92160,6919,Anchorage,9760,235, +3,722,92160,6919,Anchorage,9760,235, +3,723,92160,6919,Anchorage,9760,235, +3,724,92672,3471,Honolulu,1,235, +3,725,92672,3471,Honolulu,1,235, +3,726,92672,3471,Honolulu,1,235, +3,727,92672,3471,Honolulu,1,235, +3,728,93184,3471,Honolulu,4,235, +3,729,93184,3471,Honolulu,4,235, +3,730,93184,3471,Honolulu,4,235, +3,731,93184,3471,Honolulu,4,235, +3,732,93696,3471,Honolulu,11,235, +3,733,93696,3471,Honolulu,11,235, +3,734,93696,3471,Honolulu,11,235, +3,735,93696,3471,Honolulu,11,235, +3,736,94208,3471,Honolulu,21,235, +3,737,94208,3471,Honolulu,21,235, +3,738,94208,3471,Honolulu,21,235, +3,739,94208,3471,Honolulu,21,235, +3,740,94720,3471,Honolulu,35,235, +3,741,94720,3471,Honolulu,35,235, +3,742,94720,3471,Honolulu,35,235, +3,743,94720,3471,Honolulu,35,235, +3,744,95232,3471,Honolulu,53,235, +3,745,95232,3471,Honolulu,53,235, +3,746,95232,3471,Honolulu,53,235, +3,747,95232,3471,Honolulu,53,235, +3,748,95744,3471,Honolulu,74,235, +3,749,95744,3471,Honolulu,74,235, +3,750,95744,3471,Honolulu,74,235, +3,751,95744,3471,Honolulu,74,235, +3,752,96256,3471,Honolulu,99,235, +3,753,96256,3471,Honolulu,99,235, +3,754,96256,3471,Honolulu,99,235, +3,755,96256,3471,Honolulu,99,235, +3,756,96768,3471,Honolulu,128,235, +3,757,96768,3471,Honolulu,128,235, +3,758,96768,3471,Honolulu,128,235, +3,759,96768,3471,Honolulu,128,235, +3,760,97280,3471,Honolulu,160,235, +3,761,97280,3471,Honolulu,160,235, +3,762,97280,3471,Honolulu,160,235, +3,763,97280,3471,Honolulu,160,235, +3,764,97792,3471,Honolulu,196,235, +3,765,97792,3471,Honolulu,196,235, +3,766,97792,3471,Honolulu,196,235, +3,767,97792,3471,Honolulu,196,235, +3,768,98304,3471,Honolulu,236,235, +3,769,98304,3471,Honolulu,236,235, +3,770,98304,3471,Honolulu,236,235, +3,771,98304,3471,Honolulu,236,235, +3,772,98816,3471,Honolulu,280,235, +3,773,98816,3471,Honolulu,280,235, +3,774,98816,3471,Honolulu,280,235, +3,775,98816,3471,Honolulu,280,235, +3,776,99328,3471,Honolulu,327,235, +3,777,99328,3471,Honolulu,327,235, +3,778,99328,3471,Honolulu,327,235, +3,779,99328,3471,Honolulu,327,235, +3,780,99840,3471,Honolulu,377,235, +3,781,99840,3471,Honolulu,377,235, +3,782,99840,3471,Honolulu,377,235, +3,783,99840,3471,Honolulu,377,235, +3,784,100352,3471,Honolulu,428,235, +3,785,100352,3471,Honolulu,428,235, +3,786,100352,3471,Honolulu,428,235, +3,787,100352,3471,Honolulu,428,235, +3,788,100864,3471,Honolulu,479,235, +3,789,100864,3471,Honolulu,479,235, +3,790,100864,3471,Honolulu,479,235, +3,791,100864,3471,Honolulu,479,235, +3,792,101376,3471,Honolulu,530,235, +3,793,101376,3471,Honolulu,530,235, +3,794,101376,3471,Honolulu,530,235, +3,795,101376,3471,Honolulu,530,235, +3,796,101888,3471,Honolulu,582,235, +3,797,101888,3471,Honolulu,582,235, +3,798,101888,3471,Honolulu,582,235, +3,799,101888,3471,Honolulu,582,235, +3,800,102400,3471,Honolulu,634,235, +3,801,102400,3471,Honolulu,634,235, +3,802,102400,3471,Honolulu,634,235, +3,803,102400,3471,Honolulu,634,235, +3,804,102912,3471,Honolulu,687,235, +3,805,102912,3471,Honolulu,687,235, +3,806,102912,3471,Honolulu,687,235, +3,807,102912,3471,Honolulu,687,235, +3,808,103424,3471,Honolulu,740,235, +3,809,103424,3471,Honolulu,740,235, +3,810,103424,3471,Honolulu,740,235, +3,811,103424,3471,Honolulu,740,235, +3,812,103936,3471,Honolulu,793,235, +3,813,103936,3471,Honolulu,793,235, +3,814,103936,3471,Honolulu,793,235, +3,815,103936,3471,Honolulu,793,235, +3,816,104448,3471,Honolulu,847,235, +3,817,104448,3471,Honolulu,847,235, +3,818,104448,3471,Honolulu,847,235, +3,819,104448,3471,Honolulu,847,235, +3,820,104960,3471,Honolulu,901,235, +3,821,104960,3471,Honolulu,901,235, +3,822,104960,3471,Honolulu,901,235, +3,823,104960,3471,Honolulu,901,235, +3,824,105472,3471,Honolulu,956,235, +3,825,105472,3471,Honolulu,956,235, +3,826,105472,3471,Honolulu,956,235, +3,827,105472,3471,Honolulu,956,235, +3,828,105984,3471,Honolulu,1011,235, +3,829,105984,3471,Honolulu,1011,235, +3,830,105984,3471,Honolulu,1011,235, +3,831,105984,3471,Honolulu,1011,235, +3,832,106496,3471,Honolulu,1066,235, +3,833,106496,3471,Honolulu,1066,235, +3,834,106496,3471,Honolulu,1066,235, +3,835,106496,3471,Honolulu,1066,235, +3,836,107008,3471,Honolulu,1122,235, +3,837,107008,3471,Honolulu,1122,235, +3,838,107008,3471,Honolulu,1122,235, +3,839,107008,3471,Honolulu,1122,235, +3,840,107520,3471,Honolulu,1178,235, +3,841,107520,3471,Honolulu,1178,235, +3,842,107520,3471,Honolulu,1178,235, +3,843,107520,3471,Honolulu,1178,235, +3,844,108032,3471,Honolulu,1235,235, +3,845,108032,3471,Honolulu,1235,235, +3,846,108032,3471,Honolulu,1235,235, +3,847,108032,3471,Honolulu,1235,235, +3,848,108544,3471,Honolulu,1292,235, +3,849,108544,3471,Honolulu,1292,235, +3,850,108544,3471,Honolulu,1292,235, +3,851,108544,3471,Honolulu,1292,235, +3,852,109056,3471,Honolulu,1349,235, +3,853,109056,3471,Honolulu,1349,235, +3,854,109056,3471,Honolulu,1349,235, +3,855,109056,3471,Honolulu,1349,235, +3,856,109568,3471,Honolulu,1407,235, +3,857,109568,3471,Honolulu,1407,235, +3,858,109568,3471,Honolulu,1407,235, +3,859,109568,3471,Honolulu,1407,235, +3,860,110080,3471,Honolulu,1465,235, +3,861,110080,3471,Honolulu,1465,235, +3,862,110080,3471,Honolulu,1465,235, +3,863,110080,3471,Honolulu,1465,235, +3,864,110592,3471,Honolulu,1524,235, +3,865,110592,3471,Honolulu,1524,235, +3,866,110592,3471,Honolulu,1524,235, +3,867,110592,3471,Honolulu,1524,235, +3,868,111104,3471,Honolulu,1583,235, +3,869,111104,3471,Honolulu,1583,235, +3,870,111104,3471,Honolulu,1583,235, +3,871,111104,3471,Honolulu,1583,235, +3,872,111616,3471,Honolulu,1643,235, +3,873,111616,3471,Honolulu,1643,235, +3,874,111616,3471,Honolulu,1643,235, +3,875,111616,3471,Honolulu,1643,235, +3,876,112128,3471,Honolulu,1703,235, +3,877,112128,3471,Honolulu,1703,235, +3,878,112128,3471,Honolulu,1703,235, +3,879,112128,3471,Honolulu,1703,235, +3,880,112640,3471,Honolulu,1763,235, +3,881,112640,3471,Honolulu,1763,235, +3,882,112640,3471,Honolulu,1763,235, +3,883,112640,3471,Honolulu,1763,235, +3,884,113152,3471,Honolulu,1824,235, +3,885,113152,3471,Honolulu,1824,235, +3,886,113152,3471,Honolulu,1824,235, +3,887,113152,3471,Honolulu,1824,235, +3,888,113664,3471,Honolulu,1885,235, +3,889,113664,3471,Honolulu,1885,235, +3,890,113664,3471,Honolulu,1885,235, +3,891,113664,3471,Honolulu,1885,235, +3,892,114176,3471,Honolulu,1946,235, +3,893,114176,3471,Honolulu,1946,235, +3,894,114176,3471,Honolulu,1946,235, +3,895,114176,3471,Honolulu,1946,235, +3,896,114688,3471,Honolulu,2008,235, +3,897,114688,3471,Honolulu,2008,235, +3,898,114688,3471,Honolulu,2008,235, +3,899,114688,3471,Honolulu,2008,235, +3,900,115200,3471,Honolulu,2070,235, +3,901,115200,3471,Honolulu,2070,235, +3,902,115200,3471,Honolulu,2070,235, +3,903,115200,3471,Honolulu,2070,235, +3,904,115712,3471,Honolulu,2132,235, +3,905,115712,3471,Honolulu,2132,235, +3,906,115712,3471,Honolulu,2132,235, +3,907,115712,3471,Honolulu,2132,235, +3,908,116224,3471,Honolulu,2195,235, +3,909,116224,3471,Honolulu,2195,235, +3,910,116224,3471,Honolulu,2195,235, +3,911,116224,3471,Honolulu,2195,235, +3,912,116736,3471,Honolulu,2258,235, +3,913,116736,3471,Honolulu,2258,235, +3,914,116736,3471,Honolulu,2258,235, +3,915,116736,3471,Honolulu,2258,235, +3,916,117248,3471,Honolulu,2321,235, +3,917,117248,3471,Honolulu,2321,235, +3,918,117248,3471,Honolulu,2321,235, +3,919,117248,3471,Honolulu,2321,235, +3,920,117760,3471,Honolulu,2385,235, +3,921,117760,3471,Honolulu,2385,235, +3,922,117760,3471,Honolulu,2385,235, +3,923,117760,3471,Honolulu,2385,235, +3,924,118272,3471,Honolulu,2449,235, +3,925,118272,3471,Honolulu,2449,235, +3,926,118272,3471,Honolulu,2449,235, +3,927,118272,3471,Honolulu,2449,235, +3,928,118784,3471,Honolulu,2513,235, +3,929,118784,3471,Honolulu,2513,235, +3,930,118784,3471,Honolulu,2513,235, +3,931,118784,3471,Honolulu,2513,235, +3,932,119296,3471,Honolulu,2578,235, +3,933,119296,3471,Honolulu,2578,235, +3,934,119296,3471,Honolulu,2578,235, +3,935,119296,3471,Honolulu,2578,235, +3,936,119808,3471,Honolulu,2643,235, +3,937,119808,3471,Honolulu,2643,235, +3,938,119808,3471,Honolulu,2643,235, +3,939,119808,3471,Honolulu,2643,235, +3,940,120320,3471,Honolulu,2708,235, +3,941,120320,3471,Honolulu,2708,235, +3,942,120320,3471,Honolulu,2708,235, +3,943,120320,3471,Honolulu,2708,235, +3,944,120832,3471,Honolulu,2773,235, +3,945,120832,3471,Honolulu,2773,235, +3,946,120832,3471,Honolulu,2773,235, +3,947,120832,3471,Honolulu,2773,235, +3,948,121344,3208,Atafu Village,1,223, +3,949,121344,3208,Atafu Village,1,223, +3,950,121344,3208,Atafu Village,1,223, +3,951,121344,3208,Atafu Village,1,223, +3,952,121856,3208,Atafu Village,2,223, +3,953,121856,3208,Atafu Village,2,223, +3,954,121856,3208,Atafu Village,2,223, +3,955,121856,3208,Atafu Village,2,223, +3,956,122368,3208,Atafu Village,5,223, +3,957,122368,3208,Atafu Village,5,223, +3,958,122368,3208,Atafu Village,5,223, +3,959,122368,3208,Atafu Village,5,223, +3,960,122880,3208,Atafu Village,10,223, +3,961,122880,3208,Atafu Village,10,223, +3,962,122880,3208,Atafu Village,10,223, +3,963,122880,3208,Atafu Village,10,223, +3,964,123392,3208,Atafu Village,17,223, +3,965,123392,3208,Atafu Village,17,223, +3,966,123392,3208,Atafu Village,17,223, +3,967,123392,3208,Atafu Village,17,223, +3,968,123904,3208,Atafu Village,26,223, +3,969,123904,3208,Atafu Village,26,223, +3,970,123904,3208,Atafu Village,26,223, +3,971,123904,3208,Atafu Village,26,223, +3,972,124416,3208,Atafu Village,37,223, +3,973,124416,3208,Atafu Village,37,223, +3,974,124416,3208,Atafu Village,37,223, +3,975,124416,3208,Atafu Village,37,223, +3,976,124928,3208,Atafu Village,50,223, +3,977,124928,3208,Atafu Village,50,223, +3,978,124928,3208,Atafu Village,50,223, +3,979,124928,3208,Atafu Village,50,223, +3,980,125440,3208,Atafu Village,65,223, +3,981,125440,3208,Atafu Village,65,223, +3,982,125440,3208,Atafu Village,65,223, +3,983,125440,3208,Atafu Village,65,223, +3,984,125952,3208,Atafu Village,82,223, +3,985,125952,3208,Atafu Village,82,223, +3,986,125952,3208,Atafu Village,82,223, +3,987,125952,3208,Atafu Village,82,223, +3,988,126464,3208,Atafu Village,101,223, +3,989,126464,3208,Atafu Village,101,223, +3,990,126464,3208,Atafu Village,101,223, +3,991,126464,3208,Atafu Village,101,223, +3,992,126976,3208,Atafu Village,122,223, +3,993,126976,3208,Atafu Village,122,223, +3,994,126976,3208,Atafu Village,122,223, +3,995,126976,3208,Atafu Village,122,223, +3,996,127488,3208,Atafu Village,145,223, +3,997,127488,3208,Atafu Village,145,223, +3,998,127488,3208,Atafu Village,145,223, +3,999,127488,3208,Atafu Village,145,223, +3,1000,128000,3208,Atafu Village,170,223, +3,1001,128000,3208,Atafu Village,170,223, +3,1002,128000,3208,Atafu Village,170,223, +3,1003,128000,3208,Atafu Village,170,223, +3,1004,128512,3208,Atafu Village,194,223, +3,1005,128512,3208,Atafu Village,194,223, +3,1006,128512,3208,Atafu Village,194,223, +3,1007,128512,3208,Atafu Village,194,223, +3,1008,129024,3208,Atafu Village,218,223, +3,1009,129024,3208,Atafu Village,218,223, +3,1010,129024,3208,Atafu Village,218,223, +3,1011,129024,3208,Atafu Village,218,223, +3,1012,129536,3208,Atafu Village,241,223, +3,1013,129536,3208,Atafu Village,241,223, +3,1014,129536,3208,Atafu Village,241,223, +3,1015,129536,3208,Atafu Village,241,223, +3,1016,130048,3208,Atafu Village,263,223, +3,1017,130048,3208,Atafu Village,263,223, +3,1018,130048,3208,Atafu Village,263,223, +3,1019,130048,3208,Atafu Village,263,223, +3,1020,130560,3208,Atafu Village,285,223, +3,1021,130560,3208,Atafu Village,285,223, +3,1022,130560,3208,Atafu Village,285,223, +3,1023,130560,3208,Atafu Village,285,223, +3,1024,131072,3208,Atafu Village,306,223, +3,1025,131072,3208,Atafu Village,306,223, +3,1026,131072,3208,Atafu Village,306,223, +3,1027,131072,3208,Atafu Village,306,223, +3,1028,131584,3208,Atafu Village,326,223, +3,1029,131584,3208,Atafu Village,326,223, +3,1030,131584,3208,Atafu Village,326,223, +3,1031,131584,3208,Atafu Village,326,223, +3,1032,132096,3208,Atafu Village,346,223, +3,1033,132096,3208,Atafu Village,346,223, +3,1034,132096,3208,Atafu Village,346,223, +3,1035,132096,3208,Atafu Village,346,223, +3,1036,132608,3208,Atafu Village,365,223, +3,1037,132608,3208,Atafu Village,365,223, +3,1038,132608,3208,Atafu Village,365,223, +3,1039,132608,3208,Atafu Village,365,223, +3,1040,133120,3208,Atafu Village,383,223, +3,1041,133120,3208,Atafu Village,383,223, +3,1042,133120,3208,Atafu Village,383,223, +3,1043,133120,3208,Atafu Village,383,223, +3,1044,133632,3208,Atafu Village,401,223, +3,1045,133632,3208,Atafu Village,401,223, +3,1046,133632,3208,Atafu Village,401,223, +3,1047,133632,3208,Atafu Village,401,223, +3,1048,134144,3208,Atafu Village,418,223, +3,1049,134144,3208,Atafu Village,418,223, +3,1050,134144,3208,Atafu Village,418,223, +3,1051,134144,3208,Atafu Village,418,223, +3,1052,134656,3208,Atafu Village,434,223, +3,1053,134656,3208,Atafu Village,434,223, +3,1054,134656,3208,Atafu Village,434,223, +3,1055,134656,3208,Atafu Village,434,223, +3,1056,135168,3208,Atafu Village,450,223, +3,1057,135168,3208,Atafu Village,450,223, +3,1058,135168,3208,Atafu Village,450,223, +3,1059,135168,3208,Atafu Village,450,223, +3,1060,135680,3610,Mata-Utu,1,245, +3,1061,135680,3610,Mata-Utu,1,245, +3,1062,135680,3610,Mata-Utu,1,245, +3,1063,135680,3610,Mata-Utu,1,245, +3,1064,136192,3610,Mata-Utu,2,245, +3,1065,136192,3610,Mata-Utu,2,245, +3,1066,136192,3610,Mata-Utu,2,245, +3,1067,136192,3610,Mata-Utu,2,245, +3,1068,136704,3610,Mata-Utu,5,245, +3,1069,136704,3610,Mata-Utu,5,245, +3,1070,136704,3610,Mata-Utu,5,245, +3,1071,136704,3610,Mata-Utu,5,245, +3,1072,137216,3610,Mata-Utu,9,245, +3,1073,137216,3610,Mata-Utu,9,245, +3,1074,137216,3610,Mata-Utu,9,245, +3,1075,137216,3610,Mata-Utu,9,245, +3,1076,137728,3610,Mata-Utu,14,245, +3,1077,137728,3610,Mata-Utu,14,245, +3,1078,137728,3610,Mata-Utu,14,245, +3,1079,137728,3610,Mata-Utu,14,245, +3,1080,138240,3609,Leava,1,245, +3,1081,138240,3609,Leava,1,245, +3,1082,138240,3609,Leava,1,245, +3,1083,138240,3609,Leava,1,245, +3,1084,138752,3609,Leava,2,245, +3,1085,138752,3609,Leava,2,245, +3,1086,138752,3609,Leava,2,245, +3,1087,138752,3609,Leava,2,245, +3,1088,139264,3609,Leava,3,245, +3,1089,139264,3609,Leava,3,245, +3,1090,139264,3609,Leava,3,245, +3,1091,139264,3609,Leava,3,245, +3,1092,139776,3609,Leava,5,245, +3,1093,139776,3609,Leava,5,245, +3,1094,139776,3609,Leava,5,245, +3,1095,139776,3609,Leava,5,245, +3,1096,140288,3609,Leava,7,245, +3,1097,140288,3609,Leava,7,245, +3,1098,140288,3609,Leava,7,245, +3,1099,140288,3609,Leava,7,245, +3,1100,140800,3609,Leava,10,245, +3,1101,140800,3609,Leava,10,245, +3,1102,140800,3609,Leava,10,245, +3,1103,140800,3609,Leava,10,245, +3,1104,141312,3609,Leava,13,245, +3,1105,141312,3609,Leava,13,245, +3,1106,141312,3609,Leava,13,245, +3,1107,141312,3609,Leava,13,245, +3,1108,141824,3609,Leava,16,245, +3,1109,141824,3609,Leava,16,245, +3,1110,141824,3609,Leava,16,245, +3,1111,141824,3609,Leava,16,245, +3,1112,142336,3609,Leava,19,245, +3,1113,142336,3609,Leava,19,245, +3,1114,142336,3609,Leava,19,245, +3,1115,142336,3609,Leava,19,245, +3,1116,142848,3609,Leava,21,245, +3,1117,142848,3609,Leava,21,245, +3,1118,142848,3609,Leava,21,245, +3,1119,142848,3609,Leava,21,245, +3,1120,143360,3609,Leava,23,245, +3,1121,143360,3609,Leava,23,245, +3,1122,143360,3609,Leava,23,245, +3,1123,143360,3609,Leava,23,245, +3,1124,143872,3609,Leava,25,245, +3,1125,143872,3609,Leava,25,245, +3,1126,143872,3609,Leava,25,245, +3,1127,143872,3609,Leava,25,245, +3,1128,144384,3609,Leava,26,245, +3,1129,144384,3609,Leava,26,245, +3,1130,144384,3609,Leava,26,245, +3,1131,144384,3609,Leava,26,245, +3,1132,144896,3253,Nuku‘alofa,4,224, +3,1133,144896,3253,Nuku‘alofa,4,224, +3,1134,144896,3253,Nuku‘alofa,4,224, +3,1135,144896,3253,Nuku‘alofa,4,224, +3,1136,145408,3253,Nuku‘alofa,9,224, +3,1137,145408,3253,Nuku‘alofa,9,224, +3,1138,145408,3253,Nuku‘alofa,9,224, +3,1139,145408,3253,Nuku‘alofa,9,224, +3,1140,145920,3253,Nuku‘alofa,16,224, +3,1141,145920,3253,Nuku‘alofa,16,224, +3,1142,145920,3253,Nuku‘alofa,16,224, +3,1143,145920,3253,Nuku‘alofa,16,224, +3,1144,146432,3253,Nuku‘alofa,24,224, +3,1145,146432,3253,Nuku‘alofa,24,224, +3,1146,146432,3253,Nuku‘alofa,24,224, +3,1147,146432,3253,Nuku‘alofa,24,224, +3,1148,146944,3253,Nuku‘alofa,32,224, +3,1149,146944,3253,Nuku‘alofa,32,224, +3,1150,146944,3253,Nuku‘alofa,32,224, +3,1151,146944,3253,Nuku‘alofa,32,224, +3,1152,147456,3253,Nuku‘alofa,39,224, +3,1153,147456,3253,Nuku‘alofa,39,224, +3,1154,147456,3253,Nuku‘alofa,39,224, +3,1155,147456,3253,Nuku‘alofa,39,224, +3,1156,147968,3253,Nuku‘alofa,45,224, +3,1157,147968,3253,Nuku‘alofa,45,224, +3,1158,147968,3253,Nuku‘alofa,45,224, +3,1159,147968,3253,Nuku‘alofa,45,224, +3,1160,148480,3253,Nuku‘alofa,51,224, +3,1161,148480,3253,Nuku‘alofa,51,224, +3,1162,148480,3253,Nuku‘alofa,51,224, +3,1163,148480,3253,Nuku‘alofa,51,224, +3,1164,148992,3253,Nuku‘alofa,56,224, +3,1165,148992,3253,Nuku‘alofa,56,224, +3,1166,148992,3253,Nuku‘alofa,56,224, +3,1167,148992,3253,Nuku‘alofa,56,224, +3,1168,149504,3253,Nuku‘alofa,60,224, +3,1169,149504,3253,Nuku‘alofa,60,224, +3,1170,149504,3253,Nuku‘alofa,60,224, +3,1171,149504,3253,Nuku‘alofa,60,224, +3,1172,150016,3253,Nuku‘alofa,63,224, +3,1173,150016,3253,Nuku‘alofa,63,224, +3,1174,150016,3253,Nuku‘alofa,63,224, +3,1175,150016,3253,Nuku‘alofa,63,224, +3,1176,150528,3253,Nuku‘alofa,66,224, +3,1177,150528,3253,Nuku‘alofa,66,224, +3,1178,150528,3253,Nuku‘alofa,66,224, +3,1179,150528,3253,Nuku‘alofa,66,224, +3,1180,151040,3253,Nuku‘alofa,68,224, +3,1181,151040,3253,Nuku‘alofa,68,224, +3,1182,151040,3253,Nuku‘alofa,68,224, +3,1183,151040,3253,Nuku‘alofa,68,224, +3,1184,151552,3252,‘Ohonua,88,224, +3,1185,151552,3252,‘Ohonua,88,224, +3,1186,151552,3252,‘Ohonua,88,224, +3,1187,151552,3252,‘Ohonua,88,224, +3,1188,152064,3252,‘Ohonua,104,224, +3,1189,152064,3252,‘Ohonua,104,224, +3,1190,152064,3252,‘Ohonua,104,224, +3,1191,152064,3252,‘Ohonua,104,224, +3,1192,152576,3252,‘Ohonua,120,224, +3,1193,152576,3252,‘Ohonua,120,224, +3,1194,152576,3252,‘Ohonua,120,224, +3,1195,152576,3252,‘Ohonua,120,224, +3,1196,153088,3252,‘Ohonua,137,224, +3,1197,153088,3252,‘Ohonua,137,224, +3,1198,153088,3252,‘Ohonua,137,224, +3,1199,153088,3252,‘Ohonua,137,224, +3,1200,153600,3252,‘Ohonua,154,224, +3,1201,153600,3252,‘Ohonua,154,224, +3,1202,153600,3252,‘Ohonua,154,224, +3,1203,153600,3252,‘Ohonua,154,224, +3,1204,154112,3252,‘Ohonua,172,224, +3,1205,154112,3252,‘Ohonua,172,224, +3,1206,154112,3252,‘Ohonua,172,224, +3,1207,154112,3252,‘Ohonua,172,224, +3,1208,154624,3252,‘Ohonua,190,224, +3,1209,154624,3252,‘Ohonua,190,224, +3,1210,154624,3252,‘Ohonua,190,224, +3,1211,154624,3252,‘Ohonua,190,224, +3,1212,155136,3252,‘Ohonua,208,224, +3,1213,155136,3252,‘Ohonua,208,224, +3,1214,155136,3252,‘Ohonua,208,224, +3,1215,155136,3252,‘Ohonua,208,224, +3,1216,155648,3252,‘Ohonua,226,224, +3,1217,155648,3252,‘Ohonua,226,224, +3,1218,155648,3252,‘Ohonua,226,224, +3,1219,155648,3252,‘Ohonua,226,224, +3,1220,156160,2317,Waitangi,1,155, +3,1221,156160,2317,Waitangi,1,155, +3,1222,156160,2317,Waitangi,1,155, +3,1223,156160,2317,Waitangi,1,155, +3,1224,156672,2317,Waitangi,6,155, +3,1225,156672,2317,Waitangi,6,155, +3,1226,156672,2317,Waitangi,6,155, +3,1227,156672,2317,Waitangi,6,155, +3,1228,157184,2317,Waitangi,23,155, +3,1229,157184,2317,Waitangi,23,155, +3,1230,157184,2317,Waitangi,23,155, +3,1231,157184,2317,Waitangi,23,155, +3,1232,157696,2317,Waitangi,42,155, +3,1233,157696,2317,Waitangi,42,155, +3,1234,157696,2317,Waitangi,42,155, +3,1235,157696,2317,Waitangi,42,155, +3,1236,158208,2317,Waitangi,62,155, +3,1237,158208,2317,Waitangi,62,155, +3,1238,158208,2317,Waitangi,62,155, +3,1239,158208,2317,Waitangi,62,155, +3,1240,158720,2317,Waitangi,83,155, +3,1241,158720,2317,Waitangi,83,155, +3,1242,158720,2317,Waitangi,83,155, +3,1243,158720,2317,Waitangi,83,155, +3,1244,159232,2317,Waitangi,105,155, +3,1245,159232,2317,Waitangi,105,155, +3,1246,159232,2317,Waitangi,105,155, +3,1247,159232,2317,Waitangi,105,155, +3,1248,159744,2317,Waitangi,128,155, +3,1249,159744,2317,Waitangi,128,155, +3,1250,159744,2317,Waitangi,128,155, +3,1251,159744,2317,Waitangi,128,155, +3,1252,160256,2317,Waitangi,152,155, +3,1253,160256,2317,Waitangi,152,155, +3,1254,160256,2317,Waitangi,152,155, +3,1255,160256,2317,Waitangi,152,155, +3,1256,160768,2317,Waitangi,177,155, +3,1257,160768,2317,Waitangi,177,155, +3,1258,160768,2317,Waitangi,177,155, +3,1259,160768,2317,Waitangi,177,155, +3,1260,161280,2317,Waitangi,203,155, +3,1261,161280,2317,Waitangi,203,155, +3,1262,161280,2317,Waitangi,203,155, +3,1263,161280,2317,Waitangi,203,155, +3,1264,161792,2317,Waitangi,230,155, +3,1265,161792,2317,Waitangi,230,155, +3,1266,161792,2317,Waitangi,230,155, +3,1267,161792,2317,Waitangi,230,155, +3,1268,162304,2317,Waitangi,258,155, +3,1269,162304,2317,Waitangi,258,155, +3,1270,162304,2317,Waitangi,258,155, +3,1271,162304,2317,Waitangi,258,155, +3,1272,162816,2317,Waitangi,287,155, +3,1273,162816,2317,Waitangi,287,155, +3,1274,162816,2317,Waitangi,287,155, +3,1275,162816,2317,Waitangi,287,155, +3,1276,163328,2317,Waitangi,318,155, +3,1277,163328,2317,Waitangi,318,155, +3,1278,163328,2317,Waitangi,318,155, +3,1279,163328,2317,Waitangi,318,155, +3,1280,163840,2317,Waitangi,350,155, +3,1281,163840,2317,Waitangi,350,155, +3,1282,163840,2317,Waitangi,350,155, +3,1283,163840,2317,Waitangi,350,155, +3,1284,164352,2317,Waitangi,383,155, +3,1285,164352,2317,Waitangi,383,155, +3,1286,164352,2317,Waitangi,383,155, +3,1287,164352,2317,Waitangi,383,155, +3,1288,164864,2317,Waitangi,417,155, +3,1289,164864,2317,Waitangi,417,155, +3,1290,164864,2317,Waitangi,417,155, +3,1291,164864,2317,Waitangi,417,155, +3,1292,165376,2317,Waitangi,452,155, +3,1293,165376,2317,Waitangi,452,155, +3,1294,165376,2317,Waitangi,452,155, +3,1295,165376,2317,Waitangi,452,155, +3,1296,165888,2317,Waitangi,488,155, +3,1297,165888,2317,Waitangi,488,155, +3,1298,165888,2317,Waitangi,488,155, +3,1299,165888,2317,Waitangi,488,155, +3,1300,166400,2317,Waitangi,525,155, +3,1301,166400,2317,Waitangi,525,155, +3,1302,166400,2317,Waitangi,525,155, +3,1303,166400,2317,Waitangi,525,155, +3,1304,166912,2317,Waitangi,563,155, +3,1305,166912,2317,Waitangi,563,155, +3,1306,166912,2317,Waitangi,563,155, +3,1307,166912,2317,Waitangi,563,155, +3,1308,167424,2317,Waitangi,602,155, +3,1309,167424,2317,Waitangi,602,155, +3,1310,167424,2317,Waitangi,602,155, +3,1311,167424,2317,Waitangi,602,155, +3,1312,167936,2317,Waitangi,642,155, +3,1313,167936,2317,Waitangi,642,155, +3,1314,167936,2317,Waitangi,642,155, +3,1315,167936,2317,Waitangi,642,155, +3,1316,168448,2317,Waitangi,682,155, +3,1317,168448,2317,Waitangi,682,155, +3,1318,168448,2317,Waitangi,682,155, +3,1319,168448,2317,Waitangi,682,155, +3,1320,168960,2317,Waitangi,723,155, +3,1321,168960,2317,Waitangi,723,155, +3,1322,168960,2317,Waitangi,723,155, +3,1323,168960,2317,Waitangi,723,155, +3,1324,169472,2317,Waitangi,765,155, +3,1325,169472,2317,Waitangi,765,155, +3,1326,169472,2317,Waitangi,765,155, +3,1327,169472,2317,Waitangi,765,155, +3,1328,169984,2317,Waitangi,808,155, +3,1329,169984,2317,Waitangi,808,155, +3,1330,169984,2317,Waitangi,808,155, +3,1331,169984,2317,Waitangi,808,155, +3,1332,170496,2317,Waitangi,852,155, +3,1333,170496,2317,Waitangi,852,155, +3,1334,170496,2317,Waitangi,852,155, +3,1335,170496,2317,Waitangi,852,155, +3,1336,171008,2317,Waitangi,898,155, +3,1337,171008,2317,Waitangi,898,155, +3,1338,171008,2317,Waitangi,898,155, +3,1339,171008,2317,Waitangi,898,155, +3,1340,171520,2317,Waitangi,944,155, +3,1341,171520,2317,Waitangi,944,155, +3,1342,171520,2317,Waitangi,944,155, +3,1343,171520,2317,Waitangi,944,155, +3,1344,172032,2317,Waitangi,991,155, +3,1345,172032,2317,Waitangi,991,155, +3,1346,172032,2317,Waitangi,991,155, +3,1347,172032,2317,Waitangi,991,155, +3,1348,172544,2317,Waitangi,1038,155, +3,1349,172544,2317,Waitangi,1038,155, +3,1350,172544,2317,Waitangi,1038,155, +3,1351,172544,2317,Waitangi,1038,155, +3,1352,173056,2317,Waitangi,1085,155, +3,1353,173056,2317,Waitangi,1085,155, +3,1354,173056,2317,Waitangi,1085,155, +3,1355,173056,2317,Waitangi,1085,155, +3,1356,173568,2317,Waitangi,1132,155, +3,1357,173568,2317,Waitangi,1132,155, +3,1358,173568,2317,Waitangi,1132,155, +3,1359,173568,2317,Waitangi,1132,155, +3,1360,174080,2317,Waitangi,1180,155, +3,1361,174080,2317,Waitangi,1180,155, +3,1362,174080,2317,Waitangi,1180,155, +3,1363,174080,2317,Waitangi,1180,155, +3,1364,174592,2317,Waitangi,1228,155, +3,1365,174592,2317,Waitangi,1228,155, +3,1366,174592,2317,Waitangi,1228,155, +3,1367,174592,2317,Waitangi,1228,155, +3,1368,175104,2317,Waitangi,1276,155, +3,1369,175104,2317,Waitangi,1276,155, +3,1370,175104,2317,Waitangi,1276,155, +3,1371,175104,2317,Waitangi,1276,155, +3,1372,175616,2317,Waitangi,1324,155, +3,1373,175616,2317,Waitangi,1324,155, +3,1374,175616,2317,Waitangi,1324,155, +3,1375,175616,2317,Waitangi,1324,155, +3,1376,176128,2317,Waitangi,1373,155, +3,1377,176128,2317,Waitangi,1373,155, +3,1378,176128,2317,Waitangi,1373,155, +3,1379,176128,2317,Waitangi,1373,155, +3,1380,176640,2317,Waitangi,1422,155, +3,1381,176640,2317,Waitangi,1422,155, +3,1382,176640,2317,Waitangi,1422,155, +3,1383,176640,2317,Waitangi,1422,155, +3,1384,177152,2317,Waitangi,1471,155, +3,1385,177152,2317,Waitangi,1471,155, +3,1386,177152,2317,Waitangi,1471,155, +3,1387,177152,2317,Waitangi,1471,155, +3,1388,177664,2317,Waitangi,1520,155, +3,1389,177664,2317,Waitangi,1520,155, +3,1390,177664,2317,Waitangi,1520,155, +3,1391,177664,2317,Waitangi,1520,155, +3,1392,178176,2317,Waitangi,1570,155, +3,1393,178176,2317,Waitangi,1570,155, +3,1394,178176,2317,Waitangi,1570,155, +3,1395,178176,2317,Waitangi,1570,155, +3,1396,178688,2317,Waitangi,1620,155, +3,1397,178688,2317,Waitangi,1620,155, +3,1398,178688,2317,Waitangi,1620,155, +3,1399,178688,2317,Waitangi,1620,155, +3,1400,179200,2317,Waitangi,1670,155, +3,1401,179200,2317,Waitangi,1670,155, +3,1402,179200,2317,Waitangi,1670,155, +3,1403,179200,2317,Waitangi,1670,155, +3,1404,179712,2317,Waitangi,1720,155, +3,1405,179712,2317,Waitangi,1720,155, +3,1406,179712,2317,Waitangi,1720,155, +3,1407,179712,2317,Waitangi,1720,155, +3,1408,180224,2317,Waitangi,1771,155, +3,1409,180224,2317,Waitangi,1771,155, +3,1410,180224,2317,Waitangi,1771,155, +3,1411,180224,2317,Waitangi,1771,155, +3,1412,180736,2317,Waitangi,1822,155, +3,1413,180736,2317,Waitangi,1822,155, +3,1414,180736,2317,Waitangi,1822,155, +3,1415,180736,2317,Waitangi,1822,155, +3,1416,181248,2317,Waitangi,1873,155, +3,1417,181248,2317,Waitangi,1873,155, +3,1418,181248,2317,Waitangi,1873,155, +3,1419,181248,2317,Waitangi,1873,155, +3,1420,181760,2317,Waitangi,1924,155, +3,1421,181760,2317,Waitangi,1924,155, +3,1422,181760,2317,Waitangi,1924,155, +3,1423,181760,2317,Waitangi,1924,155, +3,1424,182272,2317,Waitangi,1976,155, +3,1425,182272,2317,Waitangi,1976,155, +3,1426,182272,2317,Waitangi,1976,155, +3,1427,182272,2317,Waitangi,1976,155, +3,1428,182784,2317,Waitangi,2028,155, +3,1429,182784,2317,Waitangi,2028,155, +3,1430,182784,2317,Waitangi,2028,155, +3,1431,182784,2317,Waitangi,2028,155, +3,1432,183296,2317,Waitangi,2080,155, +3,1433,183296,2317,Waitangi,2080,155, +3,1434,183296,2317,Waitangi,2080,155, +3,1435,183296,2317,Waitangi,2080,155, +3,1436,183808,2317,Waitangi,2132,155, +3,1437,183808,2317,Waitangi,2132,155, +3,1438,183808,2317,Waitangi,2132,155, +3,1439,183808,2317,Waitangi,2132,155, +3,1440,184320,2317,Waitangi,2184,155, +3,1441,184320,2317,Waitangi,2184,155, +3,1442,184320,2317,Waitangi,2184,155, +3,1443,184320,2317,Waitangi,2184,155, +3,1444,184832,2317,Waitangi,2237,155, +3,1445,184832,2317,Waitangi,2237,155, +3,1446,184832,2317,Waitangi,2237,155, +3,1447,184832,2317,Waitangi,2237,155, +3,1448,185344,2317,Waitangi,2290,155, +3,1449,185344,2317,Waitangi,2290,155, +3,1450,185344,2317,Waitangi,2290,155, +3,1451,185344,2317,Waitangi,2290,155, +3,1452,185856,2317,Waitangi,2343,155, +3,1453,185856,2317,Waitangi,2343,155, +3,1454,185856,2317,Waitangi,2343,155, +3,1455,185856,2317,Waitangi,2343,155, +3,1456,186368,2317,Waitangi,2396,155, +3,1457,186368,2317,Waitangi,2396,155, +3,1458,186368,2317,Waitangi,2396,155, +3,1459,186368,2317,Waitangi,2396,155, +3,1460,186880,2317,Waitangi,2449,155, +3,1461,186880,2317,Waitangi,2449,155, +3,1462,186880,2317,Waitangi,2449,155, +3,1463,186880,2317,Waitangi,2449,155, +3,1464,187392,2317,Waitangi,2503,155, +3,1465,187392,2317,Waitangi,2503,155, +3,1466,187392,2317,Waitangi,2503,155, +3,1467,187392,2317,Waitangi,2503,155, +3,1468,187904,2317,Waitangi,2557,155, +3,1469,187904,2317,Waitangi,2557,155, +3,1470,187904,2317,Waitangi,2557,155, +3,1471,187904,2317,Waitangi,2557,155, +3,1472,188416,2317,Waitangi,2611,155, +3,1473,188416,2317,Waitangi,2611,155, +3,1474,188416,2317,Waitangi,2611,155, +3,1475,188416,2317,Waitangi,2611,155, +3,1476,188928,2317,Waitangi,2665,155, +3,1477,188928,2317,Waitangi,2665,155, +3,1478,188928,2317,Waitangi,2665,155, +3,1479,188928,2317,Waitangi,2665,155, +3,1480,189440,2317,Waitangi,2719,155, +3,1481,189440,2317,Waitangi,2719,155, +3,1482,189440,2317,Waitangi,2719,155, +3,1483,189440,2317,Waitangi,2719,155, +3,1484,189952,2317,Waitangi,2774,155, +3,1485,189952,2317,Waitangi,2774,155, +3,1486,189952,2317,Waitangi,2774,155, +3,1487,189952,2317,Waitangi,2774,155, +3,1488,190464,2317,Waitangi,2829,155, +3,1489,190464,2317,Waitangi,2829,155, +3,1490,190464,2317,Waitangi,2829,155, +3,1491,190464,2317,Waitangi,2829,155, +3,1492,190976,2317,Waitangi,2884,155, +3,1493,190976,2317,Waitangi,2884,155, +3,1494,190976,2317,Waitangi,2884,155, +3,1495,190976,2317,Waitangi,2884,155, +3,1496,191488,2317,Waitangi,2939,155, +3,1497,191488,2317,Waitangi,2939,155, +3,1498,191488,2317,Waitangi,2939,155, +3,1499,191488,2317,Waitangi,2939,155, +3,1500,192000,2317,Waitangi,2994,155, +3,1501,192000,2317,Waitangi,2994,155, +3,1502,192000,2317,Waitangi,2994,155, +3,1503,192000,2317,Waitangi,2994,155, +3,1504,192512,2317,Waitangi,3049,155, +3,1505,192512,2317,Waitangi,3049,155, +3,1506,192512,2317,Waitangi,3049,155, +3,1507,192512,2317,Waitangi,3049,155, +3,1508,193024,2317,Waitangi,3105,155, +3,1509,193024,2317,Waitangi,3105,155, +3,1510,193024,2317,Waitangi,3105,155, +3,1511,193024,2317,Waitangi,3105,155, +3,1512,193536,2317,Waitangi,3161,155, +3,1513,193536,2317,Waitangi,3161,155, +3,1514,193536,2317,Waitangi,3161,155, +3,1515,193536,2317,Waitangi,3161,155, +3,1516,194048,2317,Waitangi,3217,155, +3,1517,194048,2317,Waitangi,3217,155, +3,1518,194048,2317,Waitangi,3217,155, +3,1519,194048,2317,Waitangi,3217,155, +3,1520,194560,2317,Waitangi,3273,155, +3,1521,194560,2317,Waitangi,3273,155, +3,1522,194560,2317,Waitangi,3273,155, +3,1523,194560,2317,Waitangi,3273,155, +3,1524,195072,2317,Waitangi,3329,155, +3,1525,195072,2317,Waitangi,3329,155, +3,1526,195072,2317,Waitangi,3329,155, +3,1527,195072,2317,Waitangi,3329,155, +3,1528,195584,2317,Waitangi,3385,155, +3,1529,195584,2317,Waitangi,3385,155, +3,1530,195584,2317,Waitangi,3385,155, +3,1531,195584,2317,Waitangi,3385,155, +3,1532,196096,2317,Waitangi,3442,155, +3,1533,196096,2317,Waitangi,3442,155, +3,1534,196096,2317,Waitangi,3442,155, +3,1535,196096,2317,Waitangi,3442,155, +3,1536,196608,2317,Waitangi,3499,155, +3,1537,196608,2317,Waitangi,3499,155, +3,1538,196608,2317,Waitangi,3499,155, +3,1539,196608,2317,Waitangi,3499,155, +3,1540,197120,2317,Waitangi,3556,155, +3,1541,197120,2317,Waitangi,3556,155, +3,1542,197120,2317,Waitangi,3556,155, +3,1543,197120,2317,Waitangi,3556,155, +3,1544,197632,2317,Waitangi,3613,155, +3,1545,197632,2317,Waitangi,3613,155, +3,1546,197632,2317,Waitangi,3613,155, +3,1547,197632,2317,Waitangi,3613,155, +3,1548,198144,2317,Waitangi,3670,155, +3,1549,198144,2317,Waitangi,3670,155, +3,1550,198144,2317,Waitangi,3670,155, +3,1551,198144,2317,Waitangi,3670,155, +3,1552,198656,2317,Waitangi,3727,155, +3,1553,198656,2317,Waitangi,3727,155, +3,1554,198656,2317,Waitangi,3727,155, +3,1555,198656,2317,Waitangi,3727,155, +3,1556,199168,2317,Waitangi,3785,155, +3,1557,199168,2317,Waitangi,3785,155, +3,1558,199168,2317,Waitangi,3785,155, +3,1559,199168,2317,Waitangi,3785,155, +3,1560,199680,2317,Waitangi,3843,155, +3,1561,199680,2317,Waitangi,3843,155, +3,1562,199680,2317,Waitangi,3843,155, +3,1563,199680,2317,Waitangi,3843,155, +3,1564,200192,2317,Waitangi,3901,155, +3,1565,200192,2317,Waitangi,3901,155, +3,1566,200192,2317,Waitangi,3901,155, +3,1567,200192,2317,Waitangi,3901,155, +3,1568,200704,2317,Waitangi,3959,155, +3,1569,200704,2317,Waitangi,3959,155, +3,1570,200704,2317,Waitangi,3959,155, +3,1571,200704,2317,Waitangi,3959,155, +3,1572,201216,2317,Waitangi,4017,155, +3,1573,201216,2317,Waitangi,4017,155, +3,1574,201216,2317,Waitangi,4017,155, +3,1575,201216,2317,Waitangi,4017,155, +3,1576,201728,2317,Waitangi,4075,155, +3,1577,201728,2317,Waitangi,4075,155, +3,1578,201728,2317,Waitangi,4075,155, +3,1579,201728,2317,Waitangi,4075,155, +3,1580,202240,2317,Waitangi,4133,155, +3,1581,202240,2317,Waitangi,4133,155, +3,1582,202240,2317,Waitangi,4133,155, +3,1583,202240,2317,Waitangi,4133,155, +3,1584,202752,2317,Waitangi,4192,155, +3,1585,202752,2317,Waitangi,4192,155, +3,1586,202752,2317,Waitangi,4192,155, +3,1587,202752,2317,Waitangi,4192,155, +3,1588,203264,2317,Waitangi,4251,155, +3,1589,203264,2317,Waitangi,4251,155, +3,1590,203264,2317,Waitangi,4251,155, +3,1591,203264,2317,Waitangi,4251,155, +3,1592,203776,2317,Waitangi,4310,155, +3,1593,203776,2317,Waitangi,4310,155, +3,1594,203776,2317,Waitangi,4310,155, +3,1595,203776,2317,Waitangi,4310,155, +3,1596,204288,2317,Waitangi,4369,155, +3,1597,204288,2317,Waitangi,4369,155, +3,1598,204288,2317,Waitangi,4369,155, +3,1599,204288,2317,Waitangi,4369,155, +3,1600,204800,2317,Waitangi,4428,155, +3,1601,204800,2317,Waitangi,4428,155, +3,1602,204800,2317,Waitangi,4428,155, +3,1603,204800,2317,Waitangi,4428,155, +3,1604,205312,2317,Waitangi,4487,155, +3,1605,205312,2317,Waitangi,4487,155, +3,1606,205312,2317,Waitangi,4487,155, +3,1607,205312,2317,Waitangi,4487,155, +3,1608,205824,2317,Waitangi,4546,155, +3,1609,205824,2317,Waitangi,4546,155, +3,1610,205824,2317,Waitangi,4546,155, +3,1611,205824,2317,Waitangi,4546,155, +3,1612,206336,2317,Waitangi,4606,155, +3,1613,206336,2317,Waitangi,4606,155, +3,1614,206336,2317,Waitangi,4606,155, +3,1615,206336,2317,Waitangi,4606,155, +3,1616,206848,2317,Waitangi,4666,155, +3,1617,206848,2317,Waitangi,4666,155, +3,1618,206848,2317,Waitangi,4666,155, +3,1619,206848,2317,Waitangi,4666,155, +3,1620,207360,2317,Waitangi,4726,155, +3,1621,207360,2317,Waitangi,4726,155, +3,1622,207360,2317,Waitangi,4726,155, +3,1623,207360,2317,Waitangi,4726,155, +3,1624,207872,2317,Waitangi,4786,155, +3,1625,207872,2317,Waitangi,4786,155, +3,1626,207872,2317,Waitangi,4786,155, +3,1627,207872,2317,Waitangi,4786,155, +3,1628,208384,2317,Waitangi,4846,155, +3,1629,208384,2317,Waitangi,4846,155, +3,1630,208384,2317,Waitangi,4846,155, +3,1631,208384,2317,Waitangi,4846,155, +3,1632,208896,2317,Waitangi,4906,155, +3,1633,208896,2317,Waitangi,4906,155, +3,1634,208896,2317,Waitangi,4906,155, +3,1635,208896,2317,Waitangi,4906,155, +3,1636,209408,2317,Waitangi,4966,155, +3,1637,209408,2317,Waitangi,4966,155, +3,1638,209408,2317,Waitangi,4966,155, +3,1639,209408,2317,Waitangi,4966,155, +3,1640,209920,2317,Waitangi,5026,155, +3,1641,209920,2317,Waitangi,5026,155, +3,1642,209920,2317,Waitangi,5026,155, +3,1643,209920,2317,Waitangi,5026,155, +3,1644,210432,2317,Waitangi,5087,155, +3,1645,210432,2317,Waitangi,5087,155, +3,1646,210432,2317,Waitangi,5087,155, +3,1647,210432,2317,Waitangi,5087,155, +3,1648,210944,2317,Waitangi,5148,155, +3,1649,210944,2317,Waitangi,5148,155, +3,1650,210944,2317,Waitangi,5148,155, +3,1651,210944,2317,Waitangi,5148,155, +3,1652,211456,2317,Waitangi,5209,155, +3,1653,211456,2317,Waitangi,5209,155, +3,1654,211456,2317,Waitangi,5209,155, +3,1655,211456,2317,Waitangi,5209,155, +3,1656,211968,2317,Waitangi,5270,155, +3,1657,211968,2317,Waitangi,5270,155, +3,1658,211968,2317,Waitangi,5270,155, +3,1659,211968,2317,Waitangi,5270,155, +3,1660,212480,2317,Waitangi,5331,155, +3,1661,212480,2317,Waitangi,5331,155, +3,1662,212480,2317,Waitangi,5331,155, +3,1663,212480,2317,Waitangi,5331,155, +3,1664,212992,2317,Waitangi,5392,155, +3,1665,212992,2317,Waitangi,5392,155, +3,1666,212992,2317,Waitangi,5392,155, +3,1667,212992,2317,Waitangi,5392,155, +3,1668,213504,2317,Waitangi,5453,155, +3,1669,213504,2317,Waitangi,5453,155, +3,1670,213504,2317,Waitangi,5453,155, +3,1671,213504,2317,Waitangi,5453,155, +3,1672,214016,2317,Waitangi,5514,155, +3,1673,214016,2317,Waitangi,5514,155, +3,1674,214016,2317,Waitangi,5514,155, +3,1675,214016,2317,Waitangi,5514,155, +3,1676,214528,2317,Waitangi,5575,155, +3,1677,214528,2317,Waitangi,5575,155, +3,1678,214528,2317,Waitangi,5575,155, +3,1679,214528,2317,Waitangi,5575,155, +3,1680,215040,2317,Waitangi,5637,155, +3,1681,215040,2317,Waitangi,5637,155, +3,1682,215040,2317,Waitangi,5637,155, +3,1683,215040,2317,Waitangi,5637,155, +3,1684,215552,2317,Waitangi,5699,155, +3,1685,215552,2317,Waitangi,5699,155, +3,1686,215552,2317,Waitangi,5699,155, +3,1687,215552,2317,Waitangi,5699,155, +3,1688,216064,2317,Waitangi,5761,155, +3,1689,216064,2317,Waitangi,5761,155, +3,1690,216064,2317,Waitangi,5761,155, +3,1691,216064,2317,Waitangi,5761,155, +3,1692,216576,2317,Waitangi,5823,155, +3,1693,216576,2317,Waitangi,5823,155, +3,1694,216576,2317,Waitangi,5823,155, +3,1695,216576,2317,Waitangi,5823,155, +3,1696,217088,2317,Waitangi,5885,155, +3,1697,217088,2317,Waitangi,5885,155, +3,1698,217088,2317,Waitangi,5885,155, +3,1699,217088,2317,Waitangi,5885,155, +3,1700,217600,2317,Waitangi,5947,155, +3,1701,217600,2317,Waitangi,5947,155, +3,1702,217600,2317,Waitangi,5947,155, +3,1703,217600,2317,Waitangi,5947,155, +3,1704,218112,2317,Waitangi,6009,155, +3,1705,218112,2317,Waitangi,6009,155, +3,1706,218112,2317,Waitangi,6009,155, +3,1707,218112,2317,Waitangi,6009,155, +3,1708,218624,2317,Waitangi,6071,155, +3,1709,218624,2317,Waitangi,6071,155, +3,1710,218624,2317,Waitangi,6071,155, +3,1711,218624,2317,Waitangi,6071,155, +3,1712,219136,2317,Waitangi,6133,155, +3,1713,219136,2317,Waitangi,6133,155, +3,1714,219136,2317,Waitangi,6133,155, +3,1715,219136,2317,Waitangi,6133,155, +3,1716,219648,2317,Waitangi,6196,155, +3,1717,219648,2317,Waitangi,6196,155, +3,1718,219648,2317,Waitangi,6196,155, +3,1719,219648,2317,Waitangi,6196,155, +3,1720,220160,2317,Waitangi,6259,155, +3,1721,220160,2317,Waitangi,6259,155, +3,1722,220160,2317,Waitangi,6259,155, +3,1723,220160,2317,Waitangi,6259,155, +3,1724,220672,2317,Waitangi,6322,155, +3,1725,220672,2317,Waitangi,6322,155, +3,1726,220672,2317,Waitangi,6322,155, +3,1727,220672,2317,Waitangi,6322,155, +3,1728,221184,2317,Waitangi,6385,155, +3,1729,221184,2317,Waitangi,6385,155, +3,1730,221184,2317,Waitangi,6385,155, +3,1731,221184,2317,Waitangi,6385,155, +3,1732,221696,2317,Waitangi,6448,155, +3,1733,221696,2317,Waitangi,6448,155, +3,1734,221696,2317,Waitangi,6448,155, +3,1735,221696,2317,Waitangi,6448,155, +3,1736,222208,2317,Waitangi,6511,155, +3,1737,222208,2317,Waitangi,6511,155, +3,1738,222208,2317,Waitangi,6511,155, +3,1739,222208,2317,Waitangi,6511,155, +3,1740,222720,2317,Waitangi,6574,155, +3,1741,222720,2317,Waitangi,6574,155, +3,1742,222720,2317,Waitangi,6574,155, +3,1743,222720,2317,Waitangi,6574,155, +3,1744,223232,2317,Waitangi,6637,155, +3,1745,223232,2317,Waitangi,6637,155, +3,1746,223232,2317,Waitangi,6637,155, +3,1747,223232,2317,Waitangi,6637,155, +3,1748,223744,2317,Waitangi,6700,155, +3,1749,223744,2317,Waitangi,6700,155, +3,1750,223744,2317,Waitangi,6700,155, +3,1751,223744,2317,Waitangi,6700,155, +3,1752,224256,2317,Waitangi,6763,155, +3,1753,224256,2317,Waitangi,6763,155, +3,1754,224256,2317,Waitangi,6763,155, +3,1755,224256,2317,Waitangi,6763,155, +3,1756,224768,2317,Waitangi,6826,155, +3,1757,224768,2317,Waitangi,6826,155, +3,1758,224768,2317,Waitangi,6826,155, +3,1759,224768,2317,Waitangi,6826,155, +3,1760,225280,2317,Waitangi,6889,155, +3,1761,225280,2317,Waitangi,6889,155, +3,1762,225280,2317,Waitangi,6889,155, +3,1763,225280,2317,Waitangi,6889,155, +3,1764,225792,2317,Waitangi,6953,155, +3,1765,225792,2317,Waitangi,6953,155, +3,1766,225792,2317,Waitangi,6953,155, +3,1767,225792,2317,Waitangi,6953,155, +3,1768,226304,2317,Waitangi,7017,155, +3,1769,226304,2317,Waitangi,7017,155, +3,1770,226304,2317,Waitangi,7017,155, +3,1771,226304,2317,Waitangi,7017,155, +3,1772,226816,2317,Waitangi,7081,155, +3,1773,226816,2317,Waitangi,7081,155, +3,1774,226816,2317,Waitangi,7081,155, +3,1775,226816,2317,Waitangi,7081,155, +3,1776,227328,2317,Waitangi,7145,155, +3,1777,227328,2317,Waitangi,7145,155, +3,1778,227328,2317,Waitangi,7145,155, +3,1779,227328,2317,Waitangi,7145,155, +3,1780,227840,2317,Waitangi,7209,155, +3,1781,227840,2317,Waitangi,7209,155, +3,1782,227840,2317,Waitangi,7209,155, +3,1783,227840,2317,Waitangi,7209,155, +3,1784,228352,2317,Waitangi,7273,155, +3,1785,228352,2317,Waitangi,7273,155, +3,1786,228352,2317,Waitangi,7273,155, +3,1787,228352,2317,Waitangi,7273,155, +3,1788,228864,2317,Waitangi,7337,155, +3,1789,228864,2317,Waitangi,7337,155, +3,1790,228864,2317,Waitangi,7337,155, +3,1791,228864,2317,Waitangi,7337,155, +3,1792,229376,2317,Waitangi,7401,155, +3,1793,229376,2317,Waitangi,7401,155, +3,1794,229376,2317,Waitangi,7401,155, +3,1795,229376,2317,Waitangi,7401,155, +3,1796,229888,2317,Waitangi,7465,155, +3,1797,229888,2317,Waitangi,7465,155, +3,1798,229888,2317,Waitangi,7465,155, +3,1799,229888,2317,Waitangi,7465,155, +3,1800,230400,2317,Waitangi,7529,155, +3,1801,230400,2317,Waitangi,7529,155, +3,1802,230400,2317,Waitangi,7529,155, +3,1803,230400,2317,Waitangi,7529,155, +3,1804,230912,2317,Waitangi,7593,155, +3,1805,230912,2317,Waitangi,7593,155, +3,1806,230912,2317,Waitangi,7593,155, +3,1807,230912,2317,Waitangi,7593,155, +3,1808,231424,2317,Waitangi,7657,155, +3,1809,231424,2317,Waitangi,7657,155, +3,1810,231424,2317,Waitangi,7657,155, +3,1811,231424,2317,Waitangi,7657,155, +3,1812,231936,2317,Waitangi,7722,155, +3,1813,231936,2317,Waitangi,7722,155, +3,1814,231936,2317,Waitangi,7722,155, +3,1815,231936,2317,Waitangi,7722,155, +3,1816,232448,2317,Waitangi,7787,155, +3,1817,232448,2317,Waitangi,7787,155, +3,1818,232448,2317,Waitangi,7787,155, +3,1819,232448,2317,Waitangi,7787,155, +3,1820,232960,2317,Waitangi,7852,155, +3,1821,232960,2317,Waitangi,7852,155, +3,1822,232960,2317,Waitangi,7852,155, +3,1823,232960,2317,Waitangi,7852,155, +3,1824,233472,2317,Waitangi,7917,155, +3,1825,233472,2317,Waitangi,7917,155, +3,1826,233472,2317,Waitangi,7917,155, +3,1827,233472,2317,Waitangi,7917,155, +3,1828,233984,2317,Waitangi,7982,155, +3,1829,233984,2317,Waitangi,7982,155, +3,1830,233984,2317,Waitangi,7982,155, +3,1831,233984,2317,Waitangi,7982,155, +3,1832,234496,2317,Waitangi,8047,155, +3,1833,234496,2317,Waitangi,8047,155, +3,1834,234496,2317,Waitangi,8047,155, +3,1835,234496,2317,Waitangi,8047,155, +3,1836,235008,2317,Waitangi,8112,155, +3,1837,235008,2317,Waitangi,8112,155, +3,1838,235008,2317,Waitangi,8112,155, +3,1839,235008,2317,Waitangi,8112,155, +3,1840,235520,2317,Waitangi,8177,155, +3,1841,235520,2317,Waitangi,8177,155, +3,1842,235520,2317,Waitangi,8177,155, +3,1843,235520,2317,Waitangi,8177,155, +3,1844,236032,2317,Waitangi,8242,155, +3,1845,236032,2317,Waitangi,8242,155, +3,1846,236032,2317,Waitangi,8242,155, +3,1847,236032,2317,Waitangi,8242,155, +3,1848,236544,2317,Waitangi,8307,155, +3,1849,236544,2317,Waitangi,8307,155, +3,1850,236544,2317,Waitangi,8307,155, +3,1851,236544,2317,Waitangi,8307,155, +3,1852,237056,2317,Waitangi,8372,155, +3,1853,237056,2317,Waitangi,8372,155, +3,1854,237056,2317,Waitangi,8372,155, +3,1855,237056,2317,Waitangi,8372,155, +3,1856,237568,2317,Waitangi,8437,155, +3,1857,237568,2317,Waitangi,8437,155, +3,1858,237568,2317,Waitangi,8437,155, +3,1859,237568,2317,Waitangi,8437,155, +3,1860,238080,2317,Waitangi,8502,155, +3,1861,238080,2317,Waitangi,8502,155, +3,1862,238080,2317,Waitangi,8502,155, +3,1863,238080,2317,Waitangi,8502,155, +3,1864,238592,2317,Waitangi,8567,155, +3,1865,238592,2317,Waitangi,8567,155, +3,1866,238592,2317,Waitangi,8567,155, +3,1867,238592,2317,Waitangi,8567,155, +3,1868,239104,2317,Waitangi,8632,155, +3,1869,239104,2317,Waitangi,8632,155, +3,1870,239104,2317,Waitangi,8632,155, +3,1871,239104,2317,Waitangi,8632,155, +3,1872,239616,2317,Waitangi,8697,155, +3,1873,239616,2317,Waitangi,8697,155, +3,1874,239616,2317,Waitangi,8697,155, +3,1875,239616,2317,Waitangi,8697,155, +3,1876,240128,2317,Waitangi,8763,155, +3,1877,240128,2317,Waitangi,8763,155, +3,1878,240128,2317,Waitangi,8763,155, +3,1879,240128,2317,Waitangi,8763,155, +3,1880,240640,2317,Waitangi,8829,155, +3,1881,240640,2317,Waitangi,8829,155, +3,1882,240640,2317,Waitangi,8829,155, +3,1883,240640,2317,Waitangi,8829,155, +3,1884,241152,2317,Waitangi,8895,155, +3,1885,241152,2317,Waitangi,8895,155, +3,1886,241152,2317,Waitangi,8895,155, +3,1887,241152,2317,Waitangi,8895,155, +3,1888,241664,2317,Waitangi,8961,155, +3,1889,241664,2317,Waitangi,8961,155, +3,1890,241664,2317,Waitangi,8961,155, +3,1891,241664,2317,Waitangi,8961,155, +3,1892,242176,2317,Waitangi,9027,155, +3,1893,242176,2317,Waitangi,9027,155, +3,1894,242176,2317,Waitangi,9027,155, +3,1895,242176,2317,Waitangi,9027,155, +3,1896,242688,2317,Waitangi,9093,155, +3,1897,242688,2317,Waitangi,9093,155, +3,1898,242688,2317,Waitangi,9093,155, +3,1899,242688,2317,Waitangi,9093,155, +3,1900,243200,2317,Waitangi,9159,155, +3,1901,243200,2317,Waitangi,9159,155, +3,1902,243200,2317,Waitangi,9159,155, +3,1903,243200,2317,Waitangi,9159,155, +3,1904,243712,2317,Waitangi,9225,155, +3,1905,243712,2317,Waitangi,9225,155, +3,1906,243712,2317,Waitangi,9225,155, +3,1907,243712,2317,Waitangi,9225,155, +3,1908,244224,2317,Waitangi,9291,155, +3,1909,244224,2317,Waitangi,9291,155, +3,1910,244224,2317,Waitangi,9291,155, +3,1911,244224,2317,Waitangi,9291,155, +3,1912,244736,2317,Waitangi,9357,155, +3,1913,244736,2317,Waitangi,9357,155, +3,1914,244736,2317,Waitangi,9357,155, +3,1915,244736,2317,Waitangi,9357,155, +3,1916,245248,2317,Waitangi,9423,155, +3,1917,245248,2317,Waitangi,9423,155, +3,1918,245248,2317,Waitangi,9423,155, +3,1919,245248,2317,Waitangi,9423,155, +3,1920,245760,2317,Waitangi,9489,155, +3,1921,245760,2317,Waitangi,9489,155, +3,1922,245760,2317,Waitangi,9489,155, +3,1923,245760,2317,Waitangi,9489,155, +3,1924,246272,2317,Waitangi,9555,155, +3,1925,246272,2317,Waitangi,9555,155, +3,1926,246272,2317,Waitangi,9555,155, +3,1927,246272,2317,Waitangi,9555,155, +3,1928,246784,2317,Waitangi,9621,155, +3,1929,246784,2317,Waitangi,9621,155, +3,1930,246784,2317,Waitangi,9621,155, +3,1931,246784,2317,Waitangi,9621,155, +3,1932,247296,2317,Waitangi,9687,155, +3,1933,247296,2317,Waitangi,9687,155, +3,1934,247296,2317,Waitangi,9687,155, +3,1935,247296,2317,Waitangi,9687,155, +3,1936,247808,2317,Waitangi,9753,155, +3,1937,247808,2317,Waitangi,9753,155, +3,1938,247808,2317,Waitangi,9753,155, +3,1939,247808,2317,Waitangi,9753,155, +3,1940,248320,2317,Waitangi,9819,155, +3,1941,248320,2317,Waitangi,9819,155, +3,1942,248320,2317,Waitangi,9819,155, +3,1943,248320,2317,Waitangi,9819,155, +3,1944,248832,2317,Waitangi,9885,155, +3,1945,248832,2317,Waitangi,9885,155, +3,1946,248832,2317,Waitangi,9885,155, +3,1947,248832,2317,Waitangi,9885,155, +3,1948,249344,2317,Waitangi,9952,155, +3,1949,249344,2317,Waitangi,9952,155, +3,1950,249344,2317,Waitangi,9952,155, +3,1951,249344,2317,Waitangi,9952,155, +3,1952,249856,2317,Waitangi,10019,155, +3,1953,249856,2317,Waitangi,10019,155, +3,1954,249856,2317,Waitangi,10019,155, +3,1955,249856,2317,Waitangi,10019,155, +3,1956,250368,2317,Waitangi,10086,155, +3,1957,250368,2317,Waitangi,10086,155, +3,1958,250368,2317,Waitangi,10086,155, +3,1959,250368,2317,Waitangi,10086,155, +3,1960,250880,2317,Waitangi,10153,155, +3,1961,250880,2317,Waitangi,10153,155, +3,1962,250880,2317,Waitangi,10153,155, +3,1963,250880,2317,Waitangi,10153,155, +3,1964,251392,2317,Waitangi,10220,155, +3,1965,251392,2317,Waitangi,10220,155, +3,1966,251392,2317,Waitangi,10220,155, +3,1967,251392,2317,Waitangi,10220,155, +3,1968,251904,2317,Waitangi,10287,155, +3,1969,251904,2317,Waitangi,10287,155, +3,1970,251904,2317,Waitangi,10287,155, +3,1971,251904,2317,Waitangi,10287,155, +3,1972,252416,2317,Waitangi,10354,155, +3,1973,252416,2317,Waitangi,10354,155, +3,1974,252416,2317,Waitangi,10354,155, +3,1975,252416,2317,Waitangi,10354,155, +3,1976,252928,2317,Waitangi,10421,155, +3,1977,252928,2317,Waitangi,10421,155, +3,1978,252928,2317,Waitangi,10421,155, +3,1979,252928,2317,Waitangi,10421,155, +3,1980,253440,2317,Waitangi,10488,155, +3,1981,253440,2317,Waitangi,10488,155, +3,1982,253440,2317,Waitangi,10488,155, +3,1983,253440,2317,Waitangi,10488,155, +3,1984,253952,2317,Waitangi,10555,155, +3,1985,253952,2317,Waitangi,10555,155, +3,1986,253952,2317,Waitangi,10555,155, +3,1987,253952,2317,Waitangi,10555,155, +3,1988,254464,2317,Waitangi,10622,155, +3,1989,254464,2317,Waitangi,10622,155, +3,1990,254464,2317,Waitangi,10622,155, +3,1991,254464,2317,Waitangi,10622,155, +3,1992,254976,2317,Waitangi,10689,155, +3,1993,254976,2317,Waitangi,10689,155, +3,1994,254976,2317,Waitangi,10689,155, +3,1995,254976,2317,Waitangi,10689,155, +3,1996,255488,2317,Waitangi,10756,155, +3,1997,255488,2317,Waitangi,10756,155, +3,1998,255488,2317,Waitangi,10756,155, +3,1999,255488,2317,Waitangi,10756,155, +3,2000,256000,2317,Waitangi,10823,155, +3,2001,256000,2317,Waitangi,10823,155, +3,2002,256000,2317,Waitangi,10823,155, +3,2003,256000,2317,Waitangi,10823,155, +3,2004,256512,2317,Waitangi,10890,155, +3,2005,256512,2317,Waitangi,10890,155, +3,2006,256512,2317,Waitangi,10890,155, +3,2007,256512,2317,Waitangi,10890,155, +3,2008,257024,2317,Waitangi,10957,155, +3,2009,257024,2317,Waitangi,10957,155, +3,2010,257024,2317,Waitangi,10957,155, +3,2011,257024,2317,Waitangi,10957,155, +3,2012,257536,2317,Waitangi,11024,155, +3,2013,257536,2317,Waitangi,11024,155, +3,2014,257536,2317,Waitangi,11024,155, +3,2015,257536,2317,Waitangi,11024,155, +3,2016,258048,2317,Waitangi,11091,155, +3,2017,258048,2317,Waitangi,11091,155, +3,2018,258048,2317,Waitangi,11091,155, +3,2019,258048,2317,Waitangi,11091,155, +3,2020,258560,2317,Waitangi,11158,155, +3,2021,258560,2317,Waitangi,11158,155, +3,2022,258560,2317,Waitangi,11158,155, +3,2023,258560,2317,Waitangi,11158,155, +3,2024,259072,2317,Waitangi,11225,155, +3,2025,259072,2317,Waitangi,11225,155, +3,2026,259072,2317,Waitangi,11225,155, +3,2027,259072,2317,Waitangi,11225,155, +3,2028,259584,2317,Waitangi,11292,155, +3,2029,259584,2317,Waitangi,11292,155, +3,2030,259584,2317,Waitangi,11292,155, +3,2031,259584,2317,Waitangi,11292,155, +3,2032,260096,2317,Waitangi,11359,155, +3,2033,260096,2317,Waitangi,11359,155, +3,2034,260096,2317,Waitangi,11359,155, +3,2035,260096,2317,Waitangi,11359,155, +3,2036,260608,2317,Waitangi,11426,155, +3,2037,260608,2317,Waitangi,11426,155, +3,2038,260608,2317,Waitangi,11426,155, +3,2039,260608,2317,Waitangi,11426,155, +3,2040,261120,2317,Waitangi,11493,155, +3,2041,261120,2317,Waitangi,11493,155, +3,2042,261120,2317,Waitangi,11493,155, +3,2043,261120,2317,Waitangi,11493,155, +3,2044,261632,2317,Waitangi,11560,155, +3,2045,261632,2317,Waitangi,11560,155, +3,2046,261632,2317,Waitangi,11560,155, +3,2047,261632,2317,Waitangi,11560,155, +4,0,1,6919,Anchorage,2,235, +4,1,1,6919,Anchorage,2,235, +4,2,1,6919,Anchorage,2,235, +4,3,1,6919,Anchorage,2,235, +4,4,513,6919,Anchorage,57,235, +4,5,513,6919,Anchorage,57,235, +4,6,513,6919,Anchorage,57,235, +4,7,513,6919,Anchorage,57,235, +4,8,1025,6919,Anchorage,112,235, +4,9,1025,6919,Anchorage,112,235, +4,10,1025,6919,Anchorage,112,235, +4,11,1025,6919,Anchorage,112,235, +4,12,1537,6919,Anchorage,167,235, +4,13,1537,6919,Anchorage,167,235, +4,14,1537,6919,Anchorage,167,235, +4,15,1537,6919,Anchorage,167,235, +4,16,2049,6919,Anchorage,222,235, +4,17,2049,6919,Anchorage,222,235, +4,18,2049,6919,Anchorage,222,235, +4,19,2049,6919,Anchorage,222,235, +4,20,2561,6919,Anchorage,277,235, +4,21,2561,6919,Anchorage,277,235, +4,22,2561,6919,Anchorage,277,235, +4,23,2561,6919,Anchorage,277,235, +4,24,3073,6919,Anchorage,332,235, +4,25,3073,6919,Anchorage,332,235, +4,26,3073,6919,Anchorage,332,235, +4,27,3073,6919,Anchorage,332,235, +4,28,3585,6919,Anchorage,387,235, +4,29,3585,6919,Anchorage,387,235, +4,30,3585,6919,Anchorage,387,235, +4,31,3585,6919,Anchorage,387,235, +4,32,4097,6919,Anchorage,442,235, +4,33,4097,6919,Anchorage,442,235, +4,34,4097,6919,Anchorage,442,235, +4,35,4097,6919,Anchorage,442,235, +4,36,4609,6919,Anchorage,497,235, +4,37,4609,6919,Anchorage,497,235, +4,38,4609,6919,Anchorage,497,235, +4,39,4609,6919,Anchorage,497,235, +4,40,5121,6919,Anchorage,552,235, +4,41,5121,6919,Anchorage,552,235, +4,42,5121,6919,Anchorage,552,235, +4,43,5121,6919,Anchorage,552,235, +4,44,5633,6919,Anchorage,607,235, +4,45,5633,6919,Anchorage,607,235, +4,46,5633,6919,Anchorage,607,235, +4,47,5633,6919,Anchorage,607,235, +4,48,6145,6919,Anchorage,662,235, +4,49,6145,6919,Anchorage,662,235, +4,50,6145,6919,Anchorage,662,235, +4,51,6145,6919,Anchorage,662,235, +4,52,6657,6919,Anchorage,717,235, +4,53,6657,6919,Anchorage,717,235, +4,54,6657,6919,Anchorage,717,235, +4,55,6657,6919,Anchorage,717,235, +4,56,7169,6919,Anchorage,772,235, +4,57,7169,6919,Anchorage,772,235, +4,58,7169,6919,Anchorage,772,235, +4,59,7169,6919,Anchorage,772,235, +4,60,7681,6919,Anchorage,827,235, +4,61,7681,6919,Anchorage,827,235, +4,62,7681,6919,Anchorage,827,235, +4,63,7681,6919,Anchorage,827,235, +4,64,8193,6919,Anchorage,882,235, +4,65,8193,6919,Anchorage,882,235, +4,66,8193,6919,Anchorage,882,235, +4,67,8193,6919,Anchorage,882,235, +4,68,8705,6919,Anchorage,937,235, +4,69,8705,6919,Anchorage,937,235, +4,70,8705,6919,Anchorage,937,235, +4,71,8705,6919,Anchorage,937,235, +4,72,9217,6919,Anchorage,992,235, +4,73,9217,6919,Anchorage,992,235, +4,74,9217,6919,Anchorage,992,235, +4,75,9217,6919,Anchorage,992,235, +4,76,9729,6919,Anchorage,1047,235, +4,77,9729,6919,Anchorage,1047,235, +4,78,9729,6919,Anchorage,1047,235, +4,79,9729,6919,Anchorage,1047,235, +4,80,10241,6919,Anchorage,1102,235, +4,81,10241,6919,Anchorage,1102,235, +4,82,10241,6919,Anchorage,1102,235, +4,83,10241,6919,Anchorage,1102,235, +4,84,10753,6919,Anchorage,1157,235, +4,85,10753,6919,Anchorage,1157,235, +4,86,10753,6919,Anchorage,1157,235, +4,87,10753,6919,Anchorage,1157,235, +4,88,11265,6919,Anchorage,1212,235, +4,89,11265,6919,Anchorage,1212,235, +4,90,11265,6919,Anchorage,1212,235, +4,91,11265,6919,Anchorage,1212,235, +4,92,11777,6919,Anchorage,1267,235, +4,93,11777,6919,Anchorage,1267,235, +4,94,11777,6919,Anchorage,1267,235, +4,95,11777,6919,Anchorage,1267,235, +4,96,12289,6919,Anchorage,1322,235, +4,97,12289,6919,Anchorage,1322,235, +4,98,12289,6919,Anchorage,1322,235, +4,99,12289,6919,Anchorage,1322,235, +4,100,12801,6919,Anchorage,1377,235, +4,101,12801,6919,Anchorage,1377,235, +4,102,12801,6919,Anchorage,1377,235, +4,103,12801,6919,Anchorage,1377,235, +4,104,13313,6919,Anchorage,1432,235, +4,105,13313,6919,Anchorage,1432,235, +4,106,13313,6919,Anchorage,1432,235, +4,107,13313,6919,Anchorage,1432,235, +4,108,13825,6919,Anchorage,1487,235, +4,109,13825,6919,Anchorage,1487,235, +4,110,13825,6919,Anchorage,1487,235, +4,111,13825,6919,Anchorage,1487,235, +4,112,14337,6919,Anchorage,1542,235, +4,113,14337,6919,Anchorage,1542,235, +4,114,14337,6919,Anchorage,1542,235, +4,115,14337,6919,Anchorage,1542,235, +4,116,14849,6919,Anchorage,1597,235, +4,117,14849,6919,Anchorage,1597,235, +4,118,14849,6919,Anchorage,1597,235, +4,119,14849,6919,Anchorage,1597,235, +4,120,15361,6919,Anchorage,1652,235, +4,121,15361,6919,Anchorage,1652,235, +4,122,15361,6919,Anchorage,1652,235, +4,123,15361,6919,Anchorage,1652,235, +4,124,15873,6919,Anchorage,1707,235, +4,125,15873,6919,Anchorage,1707,235, +4,126,15873,6919,Anchorage,1707,235, +4,127,15873,6919,Anchorage,1707,235, +4,128,16385,6919,Anchorage,1762,235, +4,129,16385,6919,Anchorage,1762,235, +4,130,16385,6919,Anchorage,1762,235, +4,131,16385,6919,Anchorage,1762,235, +4,132,16897,6919,Anchorage,1817,235, +4,133,16897,6919,Anchorage,1817,235, +4,134,16897,6919,Anchorage,1817,235, +4,135,16897,6919,Anchorage,1817,235, +4,136,17409,6919,Anchorage,1872,235, +4,137,17409,6919,Anchorage,1872,235, +4,138,17409,6919,Anchorage,1872,235, +4,139,17409,6919,Anchorage,1872,235, +4,140,17921,6919,Anchorage,1927,235, +4,141,17921,6919,Anchorage,1927,235, +4,142,17921,6919,Anchorage,1927,235, +4,143,17921,6919,Anchorage,1927,235, +4,144,18433,6919,Anchorage,1982,235, +4,145,18433,6919,Anchorage,1982,235, +4,146,18433,6919,Anchorage,1982,235, +4,147,18433,6919,Anchorage,1982,235, +4,148,18945,6919,Anchorage,2037,235, +4,149,18945,6919,Anchorage,2037,235, +4,150,18945,6919,Anchorage,2037,235, +4,151,18945,6919,Anchorage,2037,235, +4,152,19457,6919,Anchorage,2092,235, +4,153,19457,6919,Anchorage,2092,235, +4,154,19457,6919,Anchorage,2092,235, +4,155,19457,6919,Anchorage,2092,235, +4,156,19969,6919,Anchorage,2147,235, +4,157,19969,6919,Anchorage,2147,235, +4,158,19969,6919,Anchorage,2147,235, +4,159,19969,6919,Anchorage,2147,235, +4,160,20481,6919,Anchorage,2202,235, +4,161,20481,6919,Anchorage,2202,235, +4,162,20481,6919,Anchorage,2202,235, +4,163,20481,6919,Anchorage,2202,235, +4,164,20993,6919,Anchorage,2257,235, +4,165,20993,6919,Anchorage,2257,235, +4,166,20993,6919,Anchorage,2257,235, +4,167,20993,6919,Anchorage,2257,235, +4,168,21505,6919,Anchorage,2312,235, +4,169,21505,6919,Anchorage,2312,235, +4,170,21505,6919,Anchorage,2312,235, +4,171,21505,6919,Anchorage,2312,235, +4,172,22017,6919,Anchorage,2367,235, +4,173,22017,6919,Anchorage,2367,235, +4,174,22017,6919,Anchorage,2367,235, +4,175,22017,6919,Anchorage,2367,235, +4,176,22529,6919,Anchorage,2422,235, +4,177,22529,6919,Anchorage,2422,235, +4,178,22529,6919,Anchorage,2422,235, +4,179,22529,6919,Anchorage,2422,235, +4,180,23041,6919,Anchorage,2477,235, +4,181,23041,6919,Anchorage,2477,235, +4,182,23041,6919,Anchorage,2477,235, +4,183,23041,6919,Anchorage,2477,235, +4,184,23553,6919,Anchorage,2532,235, +4,185,23553,6919,Anchorage,2532,235, +4,186,23553,6919,Anchorage,2532,235, +4,187,23553,6919,Anchorage,2532,235, +4,188,24065,6919,Anchorage,2587,235, +4,189,24065,6919,Anchorage,2587,235, +4,190,24065,6919,Anchorage,2587,235, +4,191,24065,6919,Anchorage,2587,235, +4,192,24577,6919,Anchorage,2642,235, +4,193,24577,6919,Anchorage,2642,235, +4,194,24577,6919,Anchorage,2642,235, +4,195,24577,6919,Anchorage,2642,235, +4,196,25089,6919,Anchorage,2697,235, +4,197,25089,6919,Anchorage,2697,235, +4,198,25089,6919,Anchorage,2697,235, +4,199,25089,6919,Anchorage,2697,235, +4,200,25601,6919,Anchorage,2752,235, +4,201,25601,6919,Anchorage,2752,235, +4,202,25601,6919,Anchorage,2752,235, +4,203,25601,6919,Anchorage,2752,235, +4,204,26113,6919,Anchorage,2807,235, +4,205,26113,6919,Anchorage,2807,235, +4,206,26113,6919,Anchorage,2807,235, +4,207,26113,6919,Anchorage,2807,235, +4,208,26625,6919,Anchorage,2862,235, +4,209,26625,6919,Anchorage,2862,235, +4,210,26625,6919,Anchorage,2862,235, +4,211,26625,6919,Anchorage,2862,235, +4,212,27137,6919,Anchorage,2917,235, +4,213,27137,6919,Anchorage,2917,235, +4,214,27137,6919,Anchorage,2917,235, +4,215,27137,6919,Anchorage,2917,235, +4,216,27649,6919,Anchorage,2972,235, +4,217,27649,6919,Anchorage,2972,235, +4,218,27649,6919,Anchorage,2972,235, +4,219,27649,6919,Anchorage,2972,235, +4,220,28161,6919,Anchorage,3027,235, +4,221,28161,6919,Anchorage,3027,235, +4,222,28161,6919,Anchorage,3027,235, +4,223,28161,6919,Anchorage,3027,235, +4,224,28673,6919,Anchorage,3082,235, +4,225,28673,6919,Anchorage,3082,235, +4,226,28673,6919,Anchorage,3082,235, +4,227,28673,6919,Anchorage,3082,235, +4,228,29185,6919,Anchorage,3137,235, +4,229,29185,6919,Anchorage,3137,235, +4,230,29185,6919,Anchorage,3137,235, +4,231,29185,6919,Anchorage,3137,235, +4,232,29697,6919,Anchorage,3192,235, +4,233,29697,6919,Anchorage,3192,235, +4,234,29697,6919,Anchorage,3192,235, +4,235,29697,6919,Anchorage,3192,235, +4,236,30209,6919,Anchorage,3247,235, +4,237,30209,6919,Anchorage,3247,235, +4,238,30209,6919,Anchorage,3247,235, +4,239,30209,6919,Anchorage,3247,235, +4,240,30721,6919,Anchorage,3302,235, +4,241,30721,6919,Anchorage,3302,235, +4,242,30721,6919,Anchorage,3302,235, +4,243,30721,6919,Anchorage,3302,235, +4,244,31233,6919,Anchorage,3357,235, +4,245,31233,6919,Anchorage,3357,235, +4,246,31233,6919,Anchorage,3357,235, +4,247,31233,6919,Anchorage,3357,235, +4,248,31745,6919,Anchorage,3412,235, +4,249,31745,6919,Anchorage,3412,235, +4,250,31745,6919,Anchorage,3412,235, +4,251,31745,6919,Anchorage,3412,235, +4,252,32257,6919,Anchorage,3467,235, +4,253,32257,6919,Anchorage,3467,235, +4,254,32257,6919,Anchorage,3467,235, +4,255,32257,6919,Anchorage,3467,235, +4,256,32769,6919,Anchorage,3522,235, +4,257,32769,6919,Anchorage,3522,235, +4,258,32769,6919,Anchorage,3522,235, +4,259,32769,6919,Anchorage,3522,235, +4,260,33281,6919,Anchorage,3577,235, +4,261,33281,6919,Anchorage,3577,235, +4,262,33281,6919,Anchorage,3577,235, +4,263,33281,6919,Anchorage,3577,235, +4,264,33793,6919,Anchorage,3632,235, +4,265,33793,6919,Anchorage,3632,235, +4,266,33793,6919,Anchorage,3632,235, +4,267,33793,6919,Anchorage,3632,235, +4,268,34305,6919,Anchorage,3687,235, +4,269,34305,6919,Anchorage,3687,235, +4,270,34305,6919,Anchorage,3687,235, +4,271,34305,6919,Anchorage,3687,235, +4,272,34817,6919,Anchorage,3742,235, +4,273,34817,6919,Anchorage,3742,235, +4,274,34817,6919,Anchorage,3742,235, +4,275,34817,6919,Anchorage,3742,235, +4,276,35329,6919,Anchorage,3797,235, +4,277,35329,6919,Anchorage,3797,235, +4,278,35329,6919,Anchorage,3797,235, +4,279,35329,6919,Anchorage,3797,235, +4,280,35841,6919,Anchorage,3852,235, +4,281,35841,6919,Anchorage,3852,235, +4,282,35841,6919,Anchorage,3852,235, +4,283,35841,6919,Anchorage,3852,235, +4,284,36353,6919,Anchorage,3907,235, +4,285,36353,6919,Anchorage,3907,235, +4,286,36353,6919,Anchorage,3907,235, +4,287,36353,6919,Anchorage,3907,235, +4,288,36865,6919,Anchorage,3962,235, +4,289,36865,6919,Anchorage,3962,235, +4,290,36865,6919,Anchorage,3962,235, +4,291,36865,6919,Anchorage,3962,235, +4,292,37377,6919,Anchorage,4017,235, +4,293,37377,6919,Anchorage,4017,235, +4,294,37377,6919,Anchorage,4017,235, +4,295,37377,6919,Anchorage,4017,235, +4,296,37889,6919,Anchorage,4072,235, +4,297,37889,6919,Anchorage,4072,235, +4,298,37889,6919,Anchorage,4072,235, +4,299,37889,6919,Anchorage,4072,235, +4,300,38401,6919,Anchorage,4127,235, +4,301,38401,6919,Anchorage,4127,235, +4,302,38401,6919,Anchorage,4127,235, +4,303,38401,6919,Anchorage,4127,235, +4,304,38913,6919,Anchorage,4182,235, +4,305,38913,6919,Anchorage,4182,235, +4,306,38913,6919,Anchorage,4182,235, +4,307,38913,6919,Anchorage,4182,235, +4,308,39425,6919,Anchorage,4237,235, +4,309,39425,6919,Anchorage,4237,235, +4,310,39425,6919,Anchorage,4237,235, +4,311,39425,6919,Anchorage,4237,235, +4,312,39937,6919,Anchorage,4292,235, +4,313,39937,6919,Anchorage,4292,235, +4,314,39937,6919,Anchorage,4292,235, +4,315,39937,6919,Anchorage,4292,235, +4,316,40449,6919,Anchorage,4347,235, +4,317,40449,6919,Anchorage,4347,235, +4,318,40449,6919,Anchorage,4347,235, +4,319,40449,6919,Anchorage,4347,235, +4,320,40961,6919,Anchorage,4402,235, +4,321,40961,6919,Anchorage,4402,235, +4,322,40961,6919,Anchorage,4402,235, +4,323,40961,6919,Anchorage,4402,235, +4,324,41473,6919,Anchorage,4457,235, +4,325,41473,6919,Anchorage,4457,235, +4,326,41473,6919,Anchorage,4457,235, +4,327,41473,6919,Anchorage,4457,235, +4,328,41985,6919,Anchorage,4511,235, +4,329,41985,6919,Anchorage,4511,235, +4,330,41985,6919,Anchorage,4511,235, +4,331,41985,6919,Anchorage,4511,235, +4,332,42497,6919,Anchorage,4565,235, +4,333,42497,6919,Anchorage,4565,235, +4,334,42497,6919,Anchorage,4565,235, +4,335,42497,6919,Anchorage,4565,235, +4,336,43009,6919,Anchorage,4619,235, +4,337,43009,6919,Anchorage,4619,235, +4,338,43009,6919,Anchorage,4619,235, +4,339,43009,6919,Anchorage,4619,235, +4,340,43521,6919,Anchorage,4673,235, +4,341,43521,6919,Anchorage,4673,235, +4,342,43521,6919,Anchorage,4673,235, +4,343,43521,6919,Anchorage,4673,235, +4,344,44033,6919,Anchorage,4727,235, +4,345,44033,6919,Anchorage,4727,235, +4,346,44033,6919,Anchorage,4727,235, +4,347,44033,6919,Anchorage,4727,235, +4,348,44545,6919,Anchorage,4781,235, +4,349,44545,6919,Anchorage,4781,235, +4,350,44545,6919,Anchorage,4781,235, +4,351,44545,6919,Anchorage,4781,235, +4,352,45057,6919,Anchorage,4835,235, +4,353,45057,6919,Anchorage,4835,235, +4,354,45057,6919,Anchorage,4835,235, +4,355,45057,6919,Anchorage,4835,235, +4,356,45569,6919,Anchorage,4889,235, +4,357,45569,6919,Anchorage,4889,235, +4,358,45569,6919,Anchorage,4889,235, +4,359,45569,6919,Anchorage,4889,235, +4,360,46081,6919,Anchorage,4943,235, +4,361,46081,6919,Anchorage,4943,235, +4,362,46081,6919,Anchorage,4943,235, +4,363,46081,6919,Anchorage,4943,235, +4,364,46593,6919,Anchorage,4997,235, +4,365,46593,6919,Anchorage,4997,235, +4,366,46593,6919,Anchorage,4997,235, +4,367,46593,6919,Anchorage,4997,235, +4,368,47105,6919,Anchorage,5051,235, +4,369,47105,6919,Anchorage,5051,235, +4,370,47105,6919,Anchorage,5051,235, +4,371,47105,6919,Anchorage,5051,235, +4,372,47617,6919,Anchorage,5105,235, +4,373,47617,6919,Anchorage,5105,235, +4,374,47617,6919,Anchorage,5105,235, +4,375,47617,6919,Anchorage,5105,235, +4,376,48129,6919,Anchorage,5159,235, +4,377,48129,6919,Anchorage,5159,235, +4,378,48129,6919,Anchorage,5159,235, +4,379,48129,6919,Anchorage,5159,235, +4,380,48641,6919,Anchorage,5213,235, +4,381,48641,6919,Anchorage,5213,235, +4,382,48641,6919,Anchorage,5213,235, +4,383,48641,6919,Anchorage,5213,235, +4,384,49153,6919,Anchorage,5267,235, +4,385,49153,6919,Anchorage,5267,235, +4,386,49153,6919,Anchorage,5267,235, +4,387,49153,6919,Anchorage,5267,235, +4,388,49665,6919,Anchorage,5321,235, +4,389,49665,6919,Anchorage,5321,235, +4,390,49665,6919,Anchorage,5321,235, +4,391,49665,6919,Anchorage,5321,235, +4,392,50177,6919,Anchorage,5375,235, +4,393,50177,6919,Anchorage,5375,235, +4,394,50177,6919,Anchorage,5375,235, +4,395,50177,6919,Anchorage,5375,235, +4,396,50689,6919,Anchorage,5429,235, +4,397,50689,6919,Anchorage,5429,235, +4,398,50689,6919,Anchorage,5429,235, +4,399,50689,6919,Anchorage,5429,235, +4,400,51201,6919,Anchorage,5483,235, +4,401,51201,6919,Anchorage,5483,235, +4,402,51201,6919,Anchorage,5483,235, +4,403,51201,6919,Anchorage,5483,235, +4,404,51713,6919,Anchorage,5537,235, +4,405,51713,6919,Anchorage,5537,235, +4,406,51713,6919,Anchorage,5537,235, +4,407,51713,6919,Anchorage,5537,235, +4,408,52225,6919,Anchorage,5591,235, +4,409,52225,6919,Anchorage,5591,235, +4,410,52225,6919,Anchorage,5591,235, +4,411,52225,6919,Anchorage,5591,235, +4,412,52737,6919,Anchorage,5645,235, +4,413,52737,6919,Anchorage,5645,235, +4,414,52737,6919,Anchorage,5645,235, +4,415,52737,6919,Anchorage,5645,235, +4,416,53249,6919,Anchorage,5699,235, +4,417,53249,6919,Anchorage,5699,235, +4,418,53249,6919,Anchorage,5699,235, +4,419,53249,6919,Anchorage,5699,235, +4,420,53761,6919,Anchorage,5753,235, +4,421,53761,6919,Anchorage,5753,235, +4,422,53761,6919,Anchorage,5753,235, +4,423,53761,6919,Anchorage,5753,235, +4,424,54273,6919,Anchorage,5807,235, +4,425,54273,6919,Anchorage,5807,235, +4,426,54273,6919,Anchorage,5807,235, +4,427,54273,6919,Anchorage,5807,235, +4,428,54785,6919,Anchorage,5861,235, +4,429,54785,6919,Anchorage,5861,235, +4,430,54785,6919,Anchorage,5861,235, +4,431,54785,6919,Anchorage,5861,235, +4,432,55297,6919,Anchorage,5915,235, +4,433,55297,6919,Anchorage,5915,235, +4,434,55297,6919,Anchorage,5915,235, +4,435,55297,6919,Anchorage,5915,235, +4,436,55809,6919,Anchorage,5969,235, +4,437,55809,6919,Anchorage,5969,235, +4,438,55809,6919,Anchorage,5969,235, +4,439,55809,6919,Anchorage,5969,235, +4,440,56321,6919,Anchorage,6023,235, +4,441,56321,6919,Anchorage,6023,235, +4,442,56321,6919,Anchorage,6023,235, +4,443,56321,6919,Anchorage,6023,235, +4,444,56833,6919,Anchorage,6077,235, +4,445,56833,6919,Anchorage,6077,235, +4,446,56833,6919,Anchorage,6077,235, +4,447,56833,6919,Anchorage,6077,235, +4,448,57345,6919,Anchorage,6131,235, +4,449,57345,6919,Anchorage,6131,235, +4,450,57345,6919,Anchorage,6131,235, +4,451,57345,6919,Anchorage,6131,235, +4,452,57857,6919,Anchorage,6185,235, +4,453,57857,6919,Anchorage,6185,235, +4,454,57857,6919,Anchorage,6185,235, +4,455,57857,6919,Anchorage,6185,235, +4,456,58369,6919,Anchorage,6239,235, +4,457,58369,6919,Anchorage,6239,235, +4,458,58369,6919,Anchorage,6239,235, +4,459,58369,6919,Anchorage,6239,235, +4,460,58881,6919,Anchorage,6293,235, +4,461,58881,6919,Anchorage,6293,235, +4,462,58881,6919,Anchorage,6293,235, +4,463,58881,6919,Anchorage,6293,235, +4,464,59393,6919,Anchorage,6347,235, +4,465,59393,6919,Anchorage,6347,235, +4,466,59393,6919,Anchorage,6347,235, +4,467,59393,6919,Anchorage,6347,235, +4,468,59905,6919,Anchorage,6401,235, +4,469,59905,6919,Anchorage,6401,235, +4,470,59905,6919,Anchorage,6401,235, +4,471,59905,6919,Anchorage,6401,235, +4,472,60417,6919,Anchorage,6455,235, +4,473,60417,6919,Anchorage,6455,235, +4,474,60417,6919,Anchorage,6455,235, +4,475,60417,6919,Anchorage,6455,235, +4,476,60929,6919,Anchorage,6509,235, +4,477,60929,6919,Anchorage,6509,235, +4,478,60929,6919,Anchorage,6509,235, +4,479,60929,6919,Anchorage,6509,235, +4,480,61441,6919,Anchorage,6563,235, +4,481,61441,6919,Anchorage,6563,235, +4,482,61441,6919,Anchorage,6563,235, +4,483,61441,6919,Anchorage,6563,235, +4,484,61953,6919,Anchorage,6617,235, +4,485,61953,6919,Anchorage,6617,235, +4,486,61953,6919,Anchorage,6617,235, +4,487,61953,6919,Anchorage,6617,235, +4,488,62465,6919,Anchorage,6671,235, +4,489,62465,6919,Anchorage,6671,235, +4,490,62465,6919,Anchorage,6671,235, +4,491,62465,6919,Anchorage,6671,235, +4,492,62977,6919,Anchorage,6725,235, +4,493,62977,6919,Anchorage,6725,235, +4,494,62977,6919,Anchorage,6725,235, +4,495,62977,6919,Anchorage,6725,235, +4,496,63489,6919,Anchorage,6779,235, +4,497,63489,6919,Anchorage,6779,235, +4,498,63489,6919,Anchorage,6779,235, +4,499,63489,6919,Anchorage,6779,235, +4,500,64001,6919,Anchorage,6833,235, +4,501,64001,6919,Anchorage,6833,235, +4,502,64001,6919,Anchorage,6833,235, +4,503,64001,6919,Anchorage,6833,235, +4,504,64513,6919,Anchorage,6887,235, +4,505,64513,6919,Anchorage,6887,235, +4,506,64513,6919,Anchorage,6887,235, +4,507,64513,6919,Anchorage,6887,235, +4,508,65025,6919,Anchorage,6941,235, +4,509,65025,6919,Anchorage,6941,235, +4,510,65025,6919,Anchorage,6941,235, +4,511,65025,6919,Anchorage,6941,235, +4,512,65537,6919,Anchorage,6995,235, +4,513,65537,6919,Anchorage,6995,235, +4,514,65537,6919,Anchorage,6995,235, +4,515,65537,6919,Anchorage,6995,235, +4,516,66049,6919,Anchorage,7049,235, +4,517,66049,6919,Anchorage,7049,235, +4,518,66049,6919,Anchorage,7049,235, +4,519,66049,6919,Anchorage,7049,235, +4,520,66561,6919,Anchorage,7103,235, +4,521,66561,6919,Anchorage,7103,235, +4,522,66561,6919,Anchorage,7103,235, +4,523,66561,6919,Anchorage,7103,235, +4,524,67073,6919,Anchorage,7157,235, +4,525,67073,6919,Anchorage,7157,235, +4,526,67073,6919,Anchorage,7157,235, +4,527,67073,6919,Anchorage,7157,235, +4,528,67585,6919,Anchorage,7211,235, +4,529,67585,6919,Anchorage,7211,235, +4,530,67585,6919,Anchorage,7211,235, +4,531,67585,6919,Anchorage,7211,235, +4,532,68097,6919,Anchorage,7265,235, +4,533,68097,6919,Anchorage,7265,235, +4,534,68097,6919,Anchorage,7265,235, +4,535,68097,6919,Anchorage,7265,235, +4,536,68609,6919,Anchorage,7319,235, +4,537,68609,6919,Anchorage,7319,235, +4,538,68609,6919,Anchorage,7319,235, +4,539,68609,6919,Anchorage,7319,235, +4,540,69121,6919,Anchorage,7373,235, +4,541,69121,6919,Anchorage,7373,235, +4,542,69121,6919,Anchorage,7373,235, +4,543,69121,6919,Anchorage,7373,235, +4,544,69633,6919,Anchorage,7427,235, +4,545,69633,6919,Anchorage,7427,235, +4,546,69633,6919,Anchorage,7427,235, +4,547,69633,6919,Anchorage,7427,235, +4,548,70145,6919,Anchorage,7481,235, +4,549,70145,6919,Anchorage,7481,235, +4,550,70145,6919,Anchorage,7481,235, +4,551,70145,6919,Anchorage,7481,235, +4,552,70657,6919,Anchorage,7535,235, +4,553,70657,6919,Anchorage,7535,235, +4,554,70657,6919,Anchorage,7535,235, +4,555,70657,6919,Anchorage,7535,235, +4,556,71169,6919,Anchorage,7589,235, +4,557,71169,6919,Anchorage,7589,235, +4,558,71169,6919,Anchorage,7589,235, +4,559,71169,6919,Anchorage,7589,235, +4,560,71681,6919,Anchorage,7643,235, +4,561,71681,6919,Anchorage,7643,235, +4,562,71681,6919,Anchorage,7643,235, +4,563,71681,6919,Anchorage,7643,235, +4,564,72193,6919,Anchorage,7697,235, +4,565,72193,6919,Anchorage,7697,235, +4,566,72193,6919,Anchorage,7697,235, +4,567,72193,6919,Anchorage,7697,235, +4,568,72705,6919,Anchorage,7751,235, +4,569,72705,6919,Anchorage,7751,235, +4,570,72705,6919,Anchorage,7751,235, +4,571,72705,6919,Anchorage,7751,235, +4,572,73217,6919,Anchorage,7805,235, +4,573,73217,6919,Anchorage,7805,235, +4,574,73217,6919,Anchorage,7805,235, +4,575,73217,6919,Anchorage,7805,235, +4,576,73729,6919,Anchorage,7859,235, +4,577,73729,6919,Anchorage,7859,235, +4,578,73729,6919,Anchorage,7859,235, +4,579,73729,6919,Anchorage,7859,235, +4,580,74241,6919,Anchorage,7913,235, +4,581,74241,6919,Anchorage,7913,235, +4,582,74241,6919,Anchorage,7913,235, +4,583,74241,6919,Anchorage,7913,235, +4,584,74753,6919,Anchorage,7967,235, +4,585,74753,6919,Anchorage,7967,235, +4,586,74753,6919,Anchorage,7967,235, +4,587,74753,6919,Anchorage,7967,235, +4,588,75265,6919,Anchorage,8021,235, +4,589,75265,6919,Anchorage,8021,235, +4,590,75265,6919,Anchorage,8021,235, +4,591,75265,6919,Anchorage,8021,235, +4,592,75777,6919,Anchorage,8075,235, +4,593,75777,6919,Anchorage,8075,235, +4,594,75777,6919,Anchorage,8075,235, +4,595,75777,6919,Anchorage,8075,235, +4,596,76289,6919,Anchorage,8129,235, +4,597,76289,6919,Anchorage,8129,235, +4,598,76289,6919,Anchorage,8129,235, +4,599,76289,6919,Anchorage,8129,235, +4,600,76801,6919,Anchorage,8183,235, +4,601,76801,6919,Anchorage,8183,235, +4,602,76801,6919,Anchorage,8183,235, +4,603,76801,6919,Anchorage,8183,235, +4,604,77313,6919,Anchorage,8237,235, +4,605,77313,6919,Anchorage,8237,235, +4,606,77313,6919,Anchorage,8237,235, +4,607,77313,6919,Anchorage,8237,235, +4,608,77825,6919,Anchorage,8291,235, +4,609,77825,6919,Anchorage,8291,235, +4,610,77825,6919,Anchorage,8291,235, +4,611,77825,6919,Anchorage,8291,235, +4,612,78337,6919,Anchorage,8345,235, +4,613,78337,6919,Anchorage,8345,235, +4,614,78337,6919,Anchorage,8345,235, +4,615,78337,6919,Anchorage,8345,235, +4,616,78849,6919,Anchorage,8399,235, +4,617,78849,6919,Anchorage,8399,235, +4,618,78849,6919,Anchorage,8399,235, +4,619,78849,6919,Anchorage,8399,235, +4,620,79361,6919,Anchorage,8453,235, +4,621,79361,6919,Anchorage,8453,235, +4,622,79361,6919,Anchorage,8453,235, +4,623,79361,6919,Anchorage,8453,235, +4,624,79873,6919,Anchorage,8507,235, +4,625,79873,6919,Anchorage,8507,235, +4,626,79873,6919,Anchorage,8507,235, +4,627,79873,6919,Anchorage,8507,235, +4,628,80385,6919,Anchorage,8561,235, +4,629,80385,6919,Anchorage,8561,235, +4,630,80385,6919,Anchorage,8561,235, +4,631,80385,6919,Anchorage,8561,235, +4,632,80897,6919,Anchorage,8614,235, +4,633,80897,6919,Anchorage,8614,235, +4,634,80897,6919,Anchorage,8614,235, +4,635,80897,6919,Anchorage,8614,235, +4,636,81409,6919,Anchorage,8667,235, +4,637,81409,6919,Anchorage,8667,235, +4,638,81409,6919,Anchorage,8667,235, +4,639,81409,6919,Anchorage,8667,235, +4,640,81921,6919,Anchorage,8720,235, +4,641,81921,6919,Anchorage,8720,235, +4,642,81921,6919,Anchorage,8720,235, +4,643,81921,6919,Anchorage,8720,235, +4,644,82433,6919,Anchorage,8773,235, +4,645,82433,6919,Anchorage,8773,235, +4,646,82433,6919,Anchorage,8773,235, +4,647,82433,6919,Anchorage,8773,235, +4,648,82945,6919,Anchorage,8826,235, +4,649,82945,6919,Anchorage,8826,235, +4,650,82945,6919,Anchorage,8826,235, +4,651,82945,6919,Anchorage,8826,235, +4,652,83457,6919,Anchorage,8879,235, +4,653,83457,6919,Anchorage,8879,235, +4,654,83457,6919,Anchorage,8879,235, +4,655,83457,6919,Anchorage,8879,235, +4,656,83969,6919,Anchorage,8932,235, +4,657,83969,6919,Anchorage,8932,235, +4,658,83969,6919,Anchorage,8932,235, +4,659,83969,6919,Anchorage,8932,235, +4,660,84481,6919,Anchorage,8985,235, +4,661,84481,6919,Anchorage,8985,235, +4,662,84481,6919,Anchorage,8985,235, +4,663,84481,6919,Anchorage,8985,235, +4,664,84993,6919,Anchorage,9038,235, +4,665,84993,6919,Anchorage,9038,235, +4,666,84993,6919,Anchorage,9038,235, +4,667,84993,6919,Anchorage,9038,235, +4,668,85505,6919,Anchorage,9090,235, +4,669,85505,6919,Anchorage,9090,235, +4,670,85505,6919,Anchorage,9090,235, +4,671,85505,6919,Anchorage,9090,235, +4,672,86017,6919,Anchorage,9142,235, +4,673,86017,6919,Anchorage,9142,235, +4,674,86017,6919,Anchorage,9142,235, +4,675,86017,6919,Anchorage,9142,235, +4,676,86529,6919,Anchorage,9194,235, +4,677,86529,6919,Anchorage,9194,235, +4,678,86529,6919,Anchorage,9194,235, +4,679,86529,6919,Anchorage,9194,235, +4,680,87041,6919,Anchorage,9246,235, +4,681,87041,6919,Anchorage,9246,235, +4,682,87041,6919,Anchorage,9246,235, +4,683,87041,6919,Anchorage,9246,235, +4,684,87553,6919,Anchorage,9298,235, +4,685,87553,6919,Anchorage,9298,235, +4,686,87553,6919,Anchorage,9298,235, +4,687,87553,6919,Anchorage,9298,235, +4,688,88065,6919,Anchorage,9350,235, +4,689,88065,6919,Anchorage,9350,235, +4,690,88065,6919,Anchorage,9350,235, +4,691,88065,6919,Anchorage,9350,235, +4,692,88577,6919,Anchorage,9402,235, +4,693,88577,6919,Anchorage,9402,235, +4,694,88577,6919,Anchorage,9402,235, +4,695,88577,6919,Anchorage,9402,235, +4,696,89089,6919,Anchorage,9454,235, +4,697,89089,6919,Anchorage,9454,235, +4,698,89089,6919,Anchorage,9454,235, +4,699,89089,6919,Anchorage,9454,235, +4,700,89601,6919,Anchorage,9506,235, +4,701,89601,6919,Anchorage,9506,235, +4,702,89601,6919,Anchorage,9506,235, +4,703,89601,6919,Anchorage,9506,235, +4,704,90113,6919,Anchorage,9557,235, +4,705,90113,6919,Anchorage,9557,235, +4,706,90113,6919,Anchorage,9557,235, +4,707,90113,6919,Anchorage,9557,235, +4,708,90625,6919,Anchorage,9608,235, +4,709,90625,6919,Anchorage,9608,235, +4,710,90625,6919,Anchorage,9608,235, +4,711,90625,6919,Anchorage,9608,235, +4,712,91137,6919,Anchorage,9659,235, +4,713,91137,6919,Anchorage,9659,235, +4,714,91137,6919,Anchorage,9659,235, +4,715,91137,6919,Anchorage,9659,235, +4,716,91649,6919,Anchorage,9710,235, +4,717,91649,6919,Anchorage,9710,235, +4,718,91649,6919,Anchorage,9710,235, +4,719,91649,6919,Anchorage,9710,235, +4,720,92161,6919,Anchorage,9761,235, +4,721,92161,6919,Anchorage,9761,235, +4,722,92161,6919,Anchorage,9761,235, +4,723,92161,6919,Anchorage,9761,235, +4,724,92673,3471,Honolulu,2,235, +4,725,92673,3471,Honolulu,2,235, +4,726,92673,3471,Honolulu,2,235, +4,727,92673,3471,Honolulu,2,235, +4,728,93185,3471,Honolulu,5,235, +4,729,93185,3471,Honolulu,5,235, +4,730,93185,3471,Honolulu,5,235, +4,731,93185,3471,Honolulu,5,235, +4,732,93697,3471,Honolulu,12,235, +4,733,93697,3471,Honolulu,12,235, +4,734,93697,3471,Honolulu,12,235, +4,735,93697,3471,Honolulu,12,235, +4,736,94209,3471,Honolulu,22,235, +4,737,94209,3471,Honolulu,22,235, +4,738,94209,3471,Honolulu,22,235, +4,739,94209,3471,Honolulu,22,235, +4,740,94721,3471,Honolulu,36,235, +4,741,94721,3471,Honolulu,36,235, +4,742,94721,3471,Honolulu,36,235, +4,743,94721,3471,Honolulu,36,235, +4,744,95233,3471,Honolulu,54,235, +4,745,95233,3471,Honolulu,54,235, +4,746,95233,3471,Honolulu,54,235, +4,747,95233,3471,Honolulu,54,235, +4,748,95745,3471,Honolulu,75,235, +4,749,95745,3471,Honolulu,75,235, +4,750,95745,3471,Honolulu,75,235, +4,751,95745,3471,Honolulu,75,235, +4,752,96257,3471,Honolulu,100,235, +4,753,96257,3471,Honolulu,100,235, +4,754,96257,3471,Honolulu,100,235, +4,755,96257,3471,Honolulu,100,235, +4,756,96769,3471,Honolulu,129,235, +4,757,96769,3471,Honolulu,129,235, +4,758,96769,3471,Honolulu,129,235, +4,759,96769,3471,Honolulu,129,235, +4,760,97281,3471,Honolulu,161,235, +4,761,97281,3471,Honolulu,161,235, +4,762,97281,3471,Honolulu,161,235, +4,763,97281,3471,Honolulu,161,235, +4,764,97793,3471,Honolulu,197,235, +4,765,97793,3471,Honolulu,197,235, +4,766,97793,3471,Honolulu,197,235, +4,767,97793,3471,Honolulu,197,235, +4,768,98305,3471,Honolulu,237,235, +4,769,98305,3471,Honolulu,237,235, +4,770,98305,3471,Honolulu,237,235, +4,771,98305,3471,Honolulu,237,235, +4,772,98817,3471,Honolulu,281,235, +4,773,98817,3471,Honolulu,281,235, +4,774,98817,3471,Honolulu,281,235, +4,775,98817,3471,Honolulu,281,235, +4,776,99329,3471,Honolulu,328,235, +4,777,99329,3471,Honolulu,328,235, +4,778,99329,3471,Honolulu,328,235, +4,779,99329,3471,Honolulu,328,235, +4,780,99841,3471,Honolulu,378,235, +4,781,99841,3471,Honolulu,378,235, +4,782,99841,3471,Honolulu,378,235, +4,783,99841,3471,Honolulu,378,235, +4,784,100353,3471,Honolulu,429,235, +4,785,100353,3471,Honolulu,429,235, +4,786,100353,3471,Honolulu,429,235, +4,787,100353,3471,Honolulu,429,235, +4,788,100865,3471,Honolulu,480,235, +4,789,100865,3471,Honolulu,480,235, +4,790,100865,3471,Honolulu,480,235, +4,791,100865,3471,Honolulu,480,235, +4,792,101377,3471,Honolulu,531,235, +4,793,101377,3471,Honolulu,531,235, +4,794,101377,3471,Honolulu,531,235, +4,795,101377,3471,Honolulu,531,235, +4,796,101889,3471,Honolulu,583,235, +4,797,101889,3471,Honolulu,583,235, +4,798,101889,3471,Honolulu,583,235, +4,799,101889,3471,Honolulu,583,235, +4,800,102401,3471,Honolulu,635,235, +4,801,102401,3471,Honolulu,635,235, +4,802,102401,3471,Honolulu,635,235, +4,803,102401,3471,Honolulu,635,235, +4,804,102913,3471,Honolulu,688,235, +4,805,102913,3471,Honolulu,688,235, +4,806,102913,3471,Honolulu,688,235, +4,807,102913,3471,Honolulu,688,235, +4,808,103425,3471,Honolulu,741,235, +4,809,103425,3471,Honolulu,741,235, +4,810,103425,3471,Honolulu,741,235, +4,811,103425,3471,Honolulu,741,235, +4,812,103937,3471,Honolulu,794,235, +4,813,103937,3471,Honolulu,794,235, +4,814,103937,3471,Honolulu,794,235, +4,815,103937,3471,Honolulu,794,235, +4,816,104449,3471,Honolulu,848,235, +4,817,104449,3471,Honolulu,848,235, +4,818,104449,3471,Honolulu,848,235, +4,819,104449,3471,Honolulu,848,235, +4,820,104961,3471,Honolulu,902,235, +4,821,104961,3471,Honolulu,902,235, +4,822,104961,3471,Honolulu,902,235, +4,823,104961,3471,Honolulu,902,235, +4,824,105473,3471,Honolulu,957,235, +4,825,105473,3471,Honolulu,957,235, +4,826,105473,3471,Honolulu,957,235, +4,827,105473,3471,Honolulu,957,235, +4,828,105985,3471,Honolulu,1012,235, +4,829,105985,3471,Honolulu,1012,235, +4,830,105985,3471,Honolulu,1012,235, +4,831,105985,3471,Honolulu,1012,235, +4,832,106497,3471,Honolulu,1067,235, +4,833,106497,3471,Honolulu,1067,235, +4,834,106497,3471,Honolulu,1067,235, +4,835,106497,3471,Honolulu,1067,235, +4,836,107009,3471,Honolulu,1123,235, +4,837,107009,3471,Honolulu,1123,235, +4,838,107009,3471,Honolulu,1123,235, +4,839,107009,3471,Honolulu,1123,235, +4,840,107521,3471,Honolulu,1179,235, +4,841,107521,3471,Honolulu,1179,235, +4,842,107521,3471,Honolulu,1179,235, +4,843,107521,3471,Honolulu,1179,235, +4,844,108033,3471,Honolulu,1236,235, +4,845,108033,3471,Honolulu,1236,235, +4,846,108033,3471,Honolulu,1236,235, +4,847,108033,3471,Honolulu,1236,235, +4,848,108545,3471,Honolulu,1293,235, +4,849,108545,3471,Honolulu,1293,235, +4,850,108545,3471,Honolulu,1293,235, +4,851,108545,3471,Honolulu,1293,235, +4,852,109057,3471,Honolulu,1350,235, +4,853,109057,3471,Honolulu,1350,235, +4,854,109057,3471,Honolulu,1350,235, +4,855,109057,3471,Honolulu,1350,235, +4,856,109569,3471,Honolulu,1408,235, +4,857,109569,3471,Honolulu,1408,235, +4,858,109569,3471,Honolulu,1408,235, +4,859,109569,3471,Honolulu,1408,235, +4,860,110081,3471,Honolulu,1466,235, +4,861,110081,3471,Honolulu,1466,235, +4,862,110081,3471,Honolulu,1466,235, +4,863,110081,3471,Honolulu,1466,235, +4,864,110593,3471,Honolulu,1525,235, +4,865,110593,3471,Honolulu,1525,235, +4,866,110593,3471,Honolulu,1525,235, +4,867,110593,3471,Honolulu,1525,235, +4,868,111105,3471,Honolulu,1584,235, +4,869,111105,3471,Honolulu,1584,235, +4,870,111105,3471,Honolulu,1584,235, +4,871,111105,3471,Honolulu,1584,235, +4,872,111617,3471,Honolulu,1644,235, +4,873,111617,3471,Honolulu,1644,235, +4,874,111617,3471,Honolulu,1644,235, +4,875,111617,3471,Honolulu,1644,235, +4,876,112129,3471,Honolulu,1704,235, +4,877,112129,3471,Honolulu,1704,235, +4,878,112129,3471,Honolulu,1704,235, +4,879,112129,3471,Honolulu,1704,235, +4,880,112641,3471,Honolulu,1764,235, +4,881,112641,3471,Honolulu,1764,235, +4,882,112641,3471,Honolulu,1764,235, +4,883,112641,3471,Honolulu,1764,235, +4,884,113153,3471,Honolulu,1825,235, +4,885,113153,3471,Honolulu,1825,235, +4,886,113153,3471,Honolulu,1825,235, +4,887,113153,3471,Honolulu,1825,235, +4,888,113665,3471,Honolulu,1886,235, +4,889,113665,3471,Honolulu,1886,235, +4,890,113665,3471,Honolulu,1886,235, +4,891,113665,3471,Honolulu,1886,235, +4,892,114177,3471,Honolulu,1947,235, +4,893,114177,3471,Honolulu,1947,235, +4,894,114177,3471,Honolulu,1947,235, +4,895,114177,3471,Honolulu,1947,235, +4,896,114689,3471,Honolulu,2009,235, +4,897,114689,3471,Honolulu,2009,235, +4,898,114689,3471,Honolulu,2009,235, +4,899,114689,3471,Honolulu,2009,235, +4,900,115201,3471,Honolulu,2071,235, +4,901,115201,3471,Honolulu,2071,235, +4,902,115201,3471,Honolulu,2071,235, +4,903,115201,3471,Honolulu,2071,235, +4,904,115713,3471,Honolulu,2133,235, +4,905,115713,3471,Honolulu,2133,235, +4,906,115713,3471,Honolulu,2133,235, +4,907,115713,3471,Honolulu,2133,235, +4,908,116225,3471,Honolulu,2196,235, +4,909,116225,3471,Honolulu,2196,235, +4,910,116225,3471,Honolulu,2196,235, +4,911,116225,3471,Honolulu,2196,235, +4,912,116737,3471,Honolulu,2259,235, +4,913,116737,3471,Honolulu,2259,235, +4,914,116737,3471,Honolulu,2259,235, +4,915,116737,3471,Honolulu,2259,235, +4,916,117249,3471,Honolulu,2322,235, +4,917,117249,3471,Honolulu,2322,235, +4,918,117249,3471,Honolulu,2322,235, +4,919,117249,3471,Honolulu,2322,235, +4,920,117761,3471,Honolulu,2386,235, +4,921,117761,3471,Honolulu,2386,235, +4,922,117761,3471,Honolulu,2386,235, +4,923,117761,3471,Honolulu,2386,235, +4,924,118273,3471,Honolulu,2450,235, +4,925,118273,3471,Honolulu,2450,235, +4,926,118273,3471,Honolulu,2450,235, +4,927,118273,3471,Honolulu,2450,235, +4,928,118785,3471,Honolulu,2514,235, +4,929,118785,3471,Honolulu,2514,235, +4,930,118785,3471,Honolulu,2514,235, +4,931,118785,3471,Honolulu,2514,235, +4,932,119297,3471,Honolulu,2579,235, +4,933,119297,3471,Honolulu,2579,235, +4,934,119297,3471,Honolulu,2579,235, +4,935,119297,3471,Honolulu,2579,235, +4,936,119809,3471,Honolulu,2644,235, +4,937,119809,3471,Honolulu,2644,235, +4,938,119809,3471,Honolulu,2644,235, +4,939,119809,3471,Honolulu,2644,235, +4,940,120321,3471,Honolulu,2709,235, +4,941,120321,3471,Honolulu,2709,235, +4,942,120321,3471,Honolulu,2709,235, +4,943,120321,3471,Honolulu,2709,235, +4,944,120833,3471,Honolulu,2774,235, +4,945,120833,3471,Honolulu,2774,235, +4,946,120833,3471,Honolulu,2774,235, +4,947,120833,3471,Honolulu,2774,235, +4,948,121345,3471,Honolulu,2836,235, +4,949,121345,3471,Honolulu,2836,235, +4,950,121345,3471,Honolulu,2836,235, +4,951,121345,3471,Honolulu,2836,235, +4,952,121857,3208,Atafu Village,3,223, +4,953,121857,3208,Atafu Village,3,223, +4,954,121857,3208,Atafu Village,3,223, +4,955,121857,3208,Atafu Village,3,223, +4,956,122369,3208,Atafu Village,6,223, +4,957,122369,3208,Atafu Village,6,223, +4,958,122369,3208,Atafu Village,6,223, +4,959,122369,3208,Atafu Village,6,223, +4,960,122881,3208,Atafu Village,11,223, +4,961,122881,3208,Atafu Village,11,223, +4,962,122881,3208,Atafu Village,11,223, +4,963,122881,3208,Atafu Village,11,223, +4,964,123393,3208,Atafu Village,18,223, +4,965,123393,3208,Atafu Village,18,223, +4,966,123393,3208,Atafu Village,18,223, +4,967,123393,3208,Atafu Village,18,223, +4,968,123905,3208,Atafu Village,27,223, +4,969,123905,3208,Atafu Village,27,223, +4,970,123905,3208,Atafu Village,27,223, +4,971,123905,3208,Atafu Village,27,223, +4,972,124417,3208,Atafu Village,38,223, +4,973,124417,3208,Atafu Village,38,223, +4,974,124417,3208,Atafu Village,38,223, +4,975,124417,3208,Atafu Village,38,223, +4,976,124929,3208,Atafu Village,51,223, +4,977,124929,3208,Atafu Village,51,223, +4,978,124929,3208,Atafu Village,51,223, +4,979,124929,3208,Atafu Village,51,223, +4,980,125441,3208,Atafu Village,66,223, +4,981,125441,3208,Atafu Village,66,223, +4,982,125441,3208,Atafu Village,66,223, +4,983,125441,3208,Atafu Village,66,223, +4,984,125953,3208,Atafu Village,83,223, +4,985,125953,3208,Atafu Village,83,223, +4,986,125953,3208,Atafu Village,83,223, +4,987,125953,3208,Atafu Village,83,223, +4,988,126465,3208,Atafu Village,102,223, +4,989,126465,3208,Atafu Village,102,223, +4,990,126465,3208,Atafu Village,102,223, +4,991,126465,3208,Atafu Village,102,223, +4,992,126977,3208,Atafu Village,123,223, +4,993,126977,3208,Atafu Village,123,223, +4,994,126977,3208,Atafu Village,123,223, +4,995,126977,3208,Atafu Village,123,223, +4,996,127489,3208,Atafu Village,146,223, +4,997,127489,3208,Atafu Village,146,223, +4,998,127489,3208,Atafu Village,146,223, +4,999,127489,3208,Atafu Village,146,223, +4,1000,128001,3208,Atafu Village,171,223, +4,1001,128001,3208,Atafu Village,171,223, +4,1002,128001,3208,Atafu Village,171,223, +4,1003,128001,3208,Atafu Village,171,223, +4,1004,128513,3208,Atafu Village,195,223, +4,1005,128513,3208,Atafu Village,195,223, +4,1006,128513,3208,Atafu Village,195,223, +4,1007,128513,3208,Atafu Village,195,223, +4,1008,129025,3208,Atafu Village,219,223, +4,1009,129025,3208,Atafu Village,219,223, +4,1010,129025,3208,Atafu Village,219,223, +4,1011,129025,3208,Atafu Village,219,223, +4,1012,129537,3208,Atafu Village,242,223, +4,1013,129537,3208,Atafu Village,242,223, +4,1014,129537,3208,Atafu Village,242,223, +4,1015,129537,3208,Atafu Village,242,223, +4,1016,130049,3208,Atafu Village,264,223, +4,1017,130049,3208,Atafu Village,264,223, +4,1018,130049,3208,Atafu Village,264,223, +4,1019,130049,3208,Atafu Village,264,223, +4,1020,130561,3208,Atafu Village,286,223, +4,1021,130561,3208,Atafu Village,286,223, +4,1022,130561,3208,Atafu Village,286,223, +4,1023,130561,3208,Atafu Village,286,223, +4,1024,131073,3208,Atafu Village,307,223, +4,1025,131073,3208,Atafu Village,307,223, +4,1026,131073,3208,Atafu Village,307,223, +4,1027,131073,3208,Atafu Village,307,223, +4,1028,131585,3208,Atafu Village,327,223, +4,1029,131585,3208,Atafu Village,327,223, +4,1030,131585,3208,Atafu Village,327,223, +4,1031,131585,3208,Atafu Village,327,223, +4,1032,132097,3208,Atafu Village,347,223, +4,1033,132097,3208,Atafu Village,347,223, +4,1034,132097,3208,Atafu Village,347,223, +4,1035,132097,3208,Atafu Village,347,223, +4,1036,132609,3208,Atafu Village,366,223, +4,1037,132609,3208,Atafu Village,366,223, +4,1038,132609,3208,Atafu Village,366,223, +4,1039,132609,3208,Atafu Village,366,223, +4,1040,133121,3208,Atafu Village,384,223, +4,1041,133121,3208,Atafu Village,384,223, +4,1042,133121,3208,Atafu Village,384,223, +4,1043,133121,3208,Atafu Village,384,223, +4,1044,133633,3208,Atafu Village,402,223, +4,1045,133633,3208,Atafu Village,402,223, +4,1046,133633,3208,Atafu Village,402,223, +4,1047,133633,3208,Atafu Village,402,223, +4,1048,134145,3208,Atafu Village,419,223, +4,1049,134145,3208,Atafu Village,419,223, +4,1050,134145,3208,Atafu Village,419,223, +4,1051,134145,3208,Atafu Village,419,223, +4,1052,134657,3208,Atafu Village,435,223, +4,1053,134657,3208,Atafu Village,435,223, +4,1054,134657,3208,Atafu Village,435,223, +4,1055,134657,3208,Atafu Village,435,223, +4,1056,135169,3208,Atafu Village,451,223, +4,1057,135169,3208,Atafu Village,451,223, +4,1058,135169,3208,Atafu Village,451,223, +4,1059,135169,3208,Atafu Village,451,223, +4,1060,135681,3208,Atafu Village,465,223, +4,1061,135681,3208,Atafu Village,465,223, +4,1062,135681,3208,Atafu Village,465,223, +4,1063,135681,3208,Atafu Village,465,223, +4,1064,136193,3610,Mata-Utu,3,245, +4,1065,136193,3610,Mata-Utu,3,245, +4,1066,136193,3610,Mata-Utu,3,245, +4,1067,136193,3610,Mata-Utu,3,245, +4,1068,136705,3610,Mata-Utu,6,245, +4,1069,136705,3610,Mata-Utu,6,245, +4,1070,136705,3610,Mata-Utu,6,245, +4,1071,136705,3610,Mata-Utu,6,245, +4,1072,137217,3610,Mata-Utu,10,245, +4,1073,137217,3610,Mata-Utu,10,245, +4,1074,137217,3610,Mata-Utu,10,245, +4,1075,137217,3610,Mata-Utu,10,245, +4,1076,137729,3610,Mata-Utu,15,245, +4,1077,137729,3610,Mata-Utu,15,245, +4,1078,137729,3610,Mata-Utu,15,245, +4,1079,137729,3610,Mata-Utu,15,245, +4,1080,138241,3610,Mata-Utu,20,245, +4,1081,138241,3610,Mata-Utu,20,245, +4,1082,138241,3610,Mata-Utu,20,245, +4,1083,138241,3610,Mata-Utu,20,245, +4,1084,138753,3610,Mata-Utu,27,245, +4,1085,138753,3610,Mata-Utu,27,245, +4,1086,138753,3610,Mata-Utu,27,245, +4,1087,138753,3610,Mata-Utu,27,245, +4,1088,139265,3609,Leava,4,245, +4,1089,139265,3609,Leava,4,245, +4,1090,139265,3609,Leava,4,245, +4,1091,139265,3609,Leava,4,245, +4,1092,139777,3609,Leava,6,245, +4,1093,139777,3609,Leava,6,245, +4,1094,139777,3609,Leava,6,245, +4,1095,139777,3609,Leava,6,245, +4,1096,140289,3609,Leava,8,245, +4,1097,140289,3609,Leava,8,245, +4,1098,140289,3609,Leava,8,245, +4,1099,140289,3609,Leava,8,245, +4,1100,140801,3609,Leava,11,245, +4,1101,140801,3609,Leava,11,245, +4,1102,140801,3609,Leava,11,245, +4,1103,140801,3609,Leava,11,245, +4,1104,141313,3609,Leava,14,245, +4,1105,141313,3609,Leava,14,245, +4,1106,141313,3609,Leava,14,245, +4,1107,141313,3609,Leava,14,245, +4,1108,141825,3609,Leava,17,245, +4,1109,141825,3609,Leava,17,245, +4,1110,141825,3609,Leava,17,245, +4,1111,141825,3609,Leava,17,245, +4,1112,142337,3609,Leava,20,245, +4,1113,142337,3609,Leava,20,245, +4,1114,142337,3609,Leava,20,245, +4,1115,142337,3609,Leava,20,245, +4,1116,142849,3609,Leava,22,245, +4,1117,142849,3609,Leava,22,245, +4,1118,142849,3609,Leava,22,245, +4,1119,142849,3609,Leava,22,245, +4,1120,143361,3609,Leava,24,245, +4,1121,143361,3609,Leava,24,245, +4,1122,143361,3609,Leava,24,245, +4,1123,143361,3609,Leava,24,245, +4,1124,143873,3611,Alo,10,245, +4,1125,143873,3611,Alo,10,245, +4,1126,143873,3611,Alo,10,245, +4,1127,143873,3611,Alo,10,245, +4,1128,144385,3253,Nuku‘alofa,1,224, +4,1129,144385,3253,Nuku‘alofa,1,224, +4,1130,144385,3253,Nuku‘alofa,1,224, +4,1131,144385,3253,Nuku‘alofa,1,224, +4,1132,144897,3253,Nuku‘alofa,5,224, +4,1133,144897,3253,Nuku‘alofa,5,224, +4,1134,144897,3253,Nuku‘alofa,5,224, +4,1135,144897,3253,Nuku‘alofa,5,224, +4,1136,145409,3253,Nuku‘alofa,10,224, +4,1137,145409,3253,Nuku‘alofa,10,224, +4,1138,145409,3253,Nuku‘alofa,10,224, +4,1139,145409,3253,Nuku‘alofa,10,224, +4,1140,145921,3253,Nuku‘alofa,17,224, +4,1141,145921,3253,Nuku‘alofa,17,224, +4,1142,145921,3253,Nuku‘alofa,17,224, +4,1143,145921,3253,Nuku‘alofa,17,224, +4,1144,146433,3253,Nuku‘alofa,25,224, +4,1145,146433,3253,Nuku‘alofa,25,224, +4,1146,146433,3253,Nuku‘alofa,25,224, +4,1147,146433,3253,Nuku‘alofa,25,224, +4,1148,146945,3253,Nuku‘alofa,33,224, +4,1149,146945,3253,Nuku‘alofa,33,224, +4,1150,146945,3253,Nuku‘alofa,33,224, +4,1151,146945,3253,Nuku‘alofa,33,224, +4,1152,147457,3253,Nuku‘alofa,40,224, +4,1153,147457,3253,Nuku‘alofa,40,224, +4,1154,147457,3253,Nuku‘alofa,40,224, +4,1155,147457,3253,Nuku‘alofa,40,224, +4,1156,147969,3253,Nuku‘alofa,46,224, +4,1157,147969,3253,Nuku‘alofa,46,224, +4,1158,147969,3253,Nuku‘alofa,46,224, +4,1159,147969,3253,Nuku‘alofa,46,224, +4,1160,148481,3253,Nuku‘alofa,52,224, +4,1161,148481,3253,Nuku‘alofa,52,224, +4,1162,148481,3253,Nuku‘alofa,52,224, +4,1163,148481,3253,Nuku‘alofa,52,224, +4,1164,148993,3253,Nuku‘alofa,57,224, +4,1165,148993,3253,Nuku‘alofa,57,224, +4,1166,148993,3253,Nuku‘alofa,57,224, +4,1167,148993,3253,Nuku‘alofa,57,224, +4,1168,149505,3253,Nuku‘alofa,61,224, +4,1169,149505,3253,Nuku‘alofa,61,224, +4,1170,149505,3253,Nuku‘alofa,61,224, +4,1171,149505,3253,Nuku‘alofa,61,224, +4,1172,150017,3253,Nuku‘alofa,64,224, +4,1173,150017,3253,Nuku‘alofa,64,224, +4,1174,150017,3253,Nuku‘alofa,64,224, +4,1175,150017,3253,Nuku‘alofa,64,224, +4,1176,150529,3253,Nuku‘alofa,67,224, +4,1177,150529,3253,Nuku‘alofa,67,224, +4,1178,150529,3253,Nuku‘alofa,67,224, +4,1179,150529,3253,Nuku‘alofa,67,224, +4,1180,151041,3252,‘Ohonua,73,224, +4,1181,151041,3252,‘Ohonua,73,224, +4,1182,151041,3252,‘Ohonua,73,224, +4,1183,151041,3252,‘Ohonua,73,224, +4,1184,151553,3252,‘Ohonua,89,224, +4,1185,151553,3252,‘Ohonua,89,224, +4,1186,151553,3252,‘Ohonua,89,224, +4,1187,151553,3252,‘Ohonua,89,224, +4,1188,152065,3252,‘Ohonua,105,224, +4,1189,152065,3252,‘Ohonua,105,224, +4,1190,152065,3252,‘Ohonua,105,224, +4,1191,152065,3252,‘Ohonua,105,224, +4,1192,152577,3252,‘Ohonua,121,224, +4,1193,152577,3252,‘Ohonua,121,224, +4,1194,152577,3252,‘Ohonua,121,224, +4,1195,152577,3252,‘Ohonua,121,224, +4,1196,153089,3252,‘Ohonua,138,224, +4,1197,153089,3252,‘Ohonua,138,224, +4,1198,153089,3252,‘Ohonua,138,224, +4,1199,153089,3252,‘Ohonua,138,224, +4,1200,153601,3252,‘Ohonua,155,224, +4,1201,153601,3252,‘Ohonua,155,224, +4,1202,153601,3252,‘Ohonua,155,224, +4,1203,153601,3252,‘Ohonua,155,224, +4,1204,154113,3252,‘Ohonua,173,224, +4,1205,154113,3252,‘Ohonua,173,224, +4,1206,154113,3252,‘Ohonua,173,224, +4,1207,154113,3252,‘Ohonua,173,224, +4,1208,154625,3252,‘Ohonua,191,224, +4,1209,154625,3252,‘Ohonua,191,224, +4,1210,154625,3252,‘Ohonua,191,224, +4,1211,154625,3252,‘Ohonua,191,224, +4,1212,155137,3252,‘Ohonua,209,224, +4,1213,155137,3252,‘Ohonua,209,224, +4,1214,155137,3252,‘Ohonua,209,224, +4,1215,155137,3252,‘Ohonua,209,224, +4,1216,155649,3252,‘Ohonua,227,224, +4,1217,155649,3252,‘Ohonua,227,224, +4,1218,155649,3252,‘Ohonua,227,224, +4,1219,155649,3252,‘Ohonua,227,224, +4,1220,156161,2317,Waitangi,2,155, +4,1221,156161,2317,Waitangi,2,155, +4,1222,156161,2317,Waitangi,2,155, +4,1223,156161,2317,Waitangi,2,155, +4,1224,156673,2317,Waitangi,7,155, +4,1225,156673,2317,Waitangi,7,155, +4,1226,156673,2317,Waitangi,7,155, +4,1227,156673,2317,Waitangi,7,155, +4,1228,157185,2317,Waitangi,24,155, +4,1229,157185,2317,Waitangi,24,155, +4,1230,157185,2317,Waitangi,24,155, +4,1231,157185,2317,Waitangi,24,155, +4,1232,157697,2317,Waitangi,43,155, +4,1233,157697,2317,Waitangi,43,155, +4,1234,157697,2317,Waitangi,43,155, +4,1235,157697,2317,Waitangi,43,155, +4,1236,158209,2317,Waitangi,63,155, +4,1237,158209,2317,Waitangi,63,155, +4,1238,158209,2317,Waitangi,63,155, +4,1239,158209,2317,Waitangi,63,155, +4,1240,158721,2317,Waitangi,84,155, +4,1241,158721,2317,Waitangi,84,155, +4,1242,158721,2317,Waitangi,84,155, +4,1243,158721,2317,Waitangi,84,155, +4,1244,159233,2317,Waitangi,106,155, +4,1245,159233,2317,Waitangi,106,155, +4,1246,159233,2317,Waitangi,106,155, +4,1247,159233,2317,Waitangi,106,155, +4,1248,159745,2317,Waitangi,129,155, +4,1249,159745,2317,Waitangi,129,155, +4,1250,159745,2317,Waitangi,129,155, +4,1251,159745,2317,Waitangi,129,155, +4,1252,160257,2317,Waitangi,153,155, +4,1253,160257,2317,Waitangi,153,155, +4,1254,160257,2317,Waitangi,153,155, +4,1255,160257,2317,Waitangi,153,155, +4,1256,160769,2317,Waitangi,178,155, +4,1257,160769,2317,Waitangi,178,155, +4,1258,160769,2317,Waitangi,178,155, +4,1259,160769,2317,Waitangi,178,155, +4,1260,161281,2317,Waitangi,204,155, +4,1261,161281,2317,Waitangi,204,155, +4,1262,161281,2317,Waitangi,204,155, +4,1263,161281,2317,Waitangi,204,155, +4,1264,161793,2317,Waitangi,231,155, +4,1265,161793,2317,Waitangi,231,155, +4,1266,161793,2317,Waitangi,231,155, +4,1267,161793,2317,Waitangi,231,155, +4,1268,162305,2317,Waitangi,259,155, +4,1269,162305,2317,Waitangi,259,155, +4,1270,162305,2317,Waitangi,259,155, +4,1271,162305,2317,Waitangi,259,155, +4,1272,162817,2317,Waitangi,288,155, +4,1273,162817,2317,Waitangi,288,155, +4,1274,162817,2317,Waitangi,288,155, +4,1275,162817,2317,Waitangi,288,155, +4,1276,163329,2317,Waitangi,319,155, +4,1277,163329,2317,Waitangi,319,155, +4,1278,163329,2317,Waitangi,319,155, +4,1279,163329,2317,Waitangi,319,155, +4,1280,163841,2317,Waitangi,351,155, +4,1281,163841,2317,Waitangi,351,155, +4,1282,163841,2317,Waitangi,351,155, +4,1283,163841,2317,Waitangi,351,155, +4,1284,164353,2317,Waitangi,384,155, +4,1285,164353,2317,Waitangi,384,155, +4,1286,164353,2317,Waitangi,384,155, +4,1287,164353,2317,Waitangi,384,155, +4,1288,164865,2317,Waitangi,418,155, +4,1289,164865,2317,Waitangi,418,155, +4,1290,164865,2317,Waitangi,418,155, +4,1291,164865,2317,Waitangi,418,155, +4,1292,165377,2317,Waitangi,453,155, +4,1293,165377,2317,Waitangi,453,155, +4,1294,165377,2317,Waitangi,453,155, +4,1295,165377,2317,Waitangi,453,155, +4,1296,165889,2317,Waitangi,489,155, +4,1297,165889,2317,Waitangi,489,155, +4,1298,165889,2317,Waitangi,489,155, +4,1299,165889,2317,Waitangi,489,155, +4,1300,166401,2317,Waitangi,526,155, +4,1301,166401,2317,Waitangi,526,155, +4,1302,166401,2317,Waitangi,526,155, +4,1303,166401,2317,Waitangi,526,155, +4,1304,166913,2317,Waitangi,564,155, +4,1305,166913,2317,Waitangi,564,155, +4,1306,166913,2317,Waitangi,564,155, +4,1307,166913,2317,Waitangi,564,155, +4,1308,167425,2317,Waitangi,603,155, +4,1309,167425,2317,Waitangi,603,155, +4,1310,167425,2317,Waitangi,603,155, +4,1311,167425,2317,Waitangi,603,155, +4,1312,167937,2317,Waitangi,643,155, +4,1313,167937,2317,Waitangi,643,155, +4,1314,167937,2317,Waitangi,643,155, +4,1315,167937,2317,Waitangi,643,155, +4,1316,168449,2317,Waitangi,683,155, +4,1317,168449,2317,Waitangi,683,155, +4,1318,168449,2317,Waitangi,683,155, +4,1319,168449,2317,Waitangi,683,155, +4,1320,168961,2317,Waitangi,724,155, +4,1321,168961,2317,Waitangi,724,155, +4,1322,168961,2317,Waitangi,724,155, +4,1323,168961,2317,Waitangi,724,155, +4,1324,169473,2317,Waitangi,766,155, +4,1325,169473,2317,Waitangi,766,155, +4,1326,169473,2317,Waitangi,766,155, +4,1327,169473,2317,Waitangi,766,155, +4,1328,169985,2317,Waitangi,809,155, +4,1329,169985,2317,Waitangi,809,155, +4,1330,169985,2317,Waitangi,809,155, +4,1331,169985,2317,Waitangi,809,155, +4,1332,170497,2317,Waitangi,853,155, +4,1333,170497,2317,Waitangi,853,155, +4,1334,170497,2317,Waitangi,853,155, +4,1335,170497,2317,Waitangi,853,155, +4,1336,171009,2317,Waitangi,899,155, +4,1337,171009,2317,Waitangi,899,155, +4,1338,171009,2317,Waitangi,899,155, +4,1339,171009,2317,Waitangi,899,155, +4,1340,171521,2317,Waitangi,945,155, +4,1341,171521,2317,Waitangi,945,155, +4,1342,171521,2317,Waitangi,945,155, +4,1343,171521,2317,Waitangi,945,155, +4,1344,172033,2317,Waitangi,992,155, +4,1345,172033,2317,Waitangi,992,155, +4,1346,172033,2317,Waitangi,992,155, +4,1347,172033,2317,Waitangi,992,155, +4,1348,172545,2317,Waitangi,1039,155, +4,1349,172545,2317,Waitangi,1039,155, +4,1350,172545,2317,Waitangi,1039,155, +4,1351,172545,2317,Waitangi,1039,155, +4,1352,173057,2317,Waitangi,1086,155, +4,1353,173057,2317,Waitangi,1086,155, +4,1354,173057,2317,Waitangi,1086,155, +4,1355,173057,2317,Waitangi,1086,155, +4,1356,173569,2317,Waitangi,1133,155, +4,1357,173569,2317,Waitangi,1133,155, +4,1358,173569,2317,Waitangi,1133,155, +4,1359,173569,2317,Waitangi,1133,155, +4,1360,174081,2317,Waitangi,1181,155, +4,1361,174081,2317,Waitangi,1181,155, +4,1362,174081,2317,Waitangi,1181,155, +4,1363,174081,2317,Waitangi,1181,155, +4,1364,174593,2317,Waitangi,1229,155, +4,1365,174593,2317,Waitangi,1229,155, +4,1366,174593,2317,Waitangi,1229,155, +4,1367,174593,2317,Waitangi,1229,155, +4,1368,175105,2317,Waitangi,1277,155, +4,1369,175105,2317,Waitangi,1277,155, +4,1370,175105,2317,Waitangi,1277,155, +4,1371,175105,2317,Waitangi,1277,155, +4,1372,175617,2317,Waitangi,1325,155, +4,1373,175617,2317,Waitangi,1325,155, +4,1374,175617,2317,Waitangi,1325,155, +4,1375,175617,2317,Waitangi,1325,155, +4,1376,176129,2317,Waitangi,1374,155, +4,1377,176129,2317,Waitangi,1374,155, +4,1378,176129,2317,Waitangi,1374,155, +4,1379,176129,2317,Waitangi,1374,155, +4,1380,176641,2317,Waitangi,1423,155, +4,1381,176641,2317,Waitangi,1423,155, +4,1382,176641,2317,Waitangi,1423,155, +4,1383,176641,2317,Waitangi,1423,155, +4,1384,177153,2317,Waitangi,1472,155, +4,1385,177153,2317,Waitangi,1472,155, +4,1386,177153,2317,Waitangi,1472,155, +4,1387,177153,2317,Waitangi,1472,155, +4,1388,177665,2317,Waitangi,1521,155, +4,1389,177665,2317,Waitangi,1521,155, +4,1390,177665,2317,Waitangi,1521,155, +4,1391,177665,2317,Waitangi,1521,155, +4,1392,178177,2317,Waitangi,1571,155, +4,1393,178177,2317,Waitangi,1571,155, +4,1394,178177,2317,Waitangi,1571,155, +4,1395,178177,2317,Waitangi,1571,155, +4,1396,178689,2317,Waitangi,1621,155, +4,1397,178689,2317,Waitangi,1621,155, +4,1398,178689,2317,Waitangi,1621,155, +4,1399,178689,2317,Waitangi,1621,155, +4,1400,179201,2317,Waitangi,1671,155, +4,1401,179201,2317,Waitangi,1671,155, +4,1402,179201,2317,Waitangi,1671,155, +4,1403,179201,2317,Waitangi,1671,155, +4,1404,179713,2317,Waitangi,1721,155, +4,1405,179713,2317,Waitangi,1721,155, +4,1406,179713,2317,Waitangi,1721,155, +4,1407,179713,2317,Waitangi,1721,155, +4,1408,180225,2317,Waitangi,1772,155, +4,1409,180225,2317,Waitangi,1772,155, +4,1410,180225,2317,Waitangi,1772,155, +4,1411,180225,2317,Waitangi,1772,155, +4,1412,180737,2317,Waitangi,1823,155, +4,1413,180737,2317,Waitangi,1823,155, +4,1414,180737,2317,Waitangi,1823,155, +4,1415,180737,2317,Waitangi,1823,155, +4,1416,181249,2317,Waitangi,1874,155, +4,1417,181249,2317,Waitangi,1874,155, +4,1418,181249,2317,Waitangi,1874,155, +4,1419,181249,2317,Waitangi,1874,155, +4,1420,181761,2317,Waitangi,1925,155, +4,1421,181761,2317,Waitangi,1925,155, +4,1422,181761,2317,Waitangi,1925,155, +4,1423,181761,2317,Waitangi,1925,155, +4,1424,182273,2317,Waitangi,1977,155, +4,1425,182273,2317,Waitangi,1977,155, +4,1426,182273,2317,Waitangi,1977,155, +4,1427,182273,2317,Waitangi,1977,155, +4,1428,182785,2317,Waitangi,2029,155, +4,1429,182785,2317,Waitangi,2029,155, +4,1430,182785,2317,Waitangi,2029,155, +4,1431,182785,2317,Waitangi,2029,155, +4,1432,183297,2317,Waitangi,2081,155, +4,1433,183297,2317,Waitangi,2081,155, +4,1434,183297,2317,Waitangi,2081,155, +4,1435,183297,2317,Waitangi,2081,155, +4,1436,183809,2317,Waitangi,2133,155, +4,1437,183809,2317,Waitangi,2133,155, +4,1438,183809,2317,Waitangi,2133,155, +4,1439,183809,2317,Waitangi,2133,155, +4,1440,184321,2317,Waitangi,2185,155, +4,1441,184321,2317,Waitangi,2185,155, +4,1442,184321,2317,Waitangi,2185,155, +4,1443,184321,2317,Waitangi,2185,155, +4,1444,184833,2317,Waitangi,2238,155, +4,1445,184833,2317,Waitangi,2238,155, +4,1446,184833,2317,Waitangi,2238,155, +4,1447,184833,2317,Waitangi,2238,155, +4,1448,185345,2317,Waitangi,2291,155, +4,1449,185345,2317,Waitangi,2291,155, +4,1450,185345,2317,Waitangi,2291,155, +4,1451,185345,2317,Waitangi,2291,155, +4,1452,185857,2317,Waitangi,2344,155, +4,1453,185857,2317,Waitangi,2344,155, +4,1454,185857,2317,Waitangi,2344,155, +4,1455,185857,2317,Waitangi,2344,155, +4,1456,186369,2317,Waitangi,2397,155, +4,1457,186369,2317,Waitangi,2397,155, +4,1458,186369,2317,Waitangi,2397,155, +4,1459,186369,2317,Waitangi,2397,155, +4,1460,186881,2317,Waitangi,2450,155, +4,1461,186881,2317,Waitangi,2450,155, +4,1462,186881,2317,Waitangi,2450,155, +4,1463,186881,2317,Waitangi,2450,155, +4,1464,187393,2317,Waitangi,2504,155, +4,1465,187393,2317,Waitangi,2504,155, +4,1466,187393,2317,Waitangi,2504,155, +4,1467,187393,2317,Waitangi,2504,155, +4,1468,187905,2317,Waitangi,2558,155, +4,1469,187905,2317,Waitangi,2558,155, +4,1470,187905,2317,Waitangi,2558,155, +4,1471,187905,2317,Waitangi,2558,155, +4,1472,188417,2317,Waitangi,2612,155, +4,1473,188417,2317,Waitangi,2612,155, +4,1474,188417,2317,Waitangi,2612,155, +4,1475,188417,2317,Waitangi,2612,155, +4,1476,188929,2317,Waitangi,2666,155, +4,1477,188929,2317,Waitangi,2666,155, +4,1478,188929,2317,Waitangi,2666,155, +4,1479,188929,2317,Waitangi,2666,155, +4,1480,189441,2317,Waitangi,2720,155, +4,1481,189441,2317,Waitangi,2720,155, +4,1482,189441,2317,Waitangi,2720,155, +4,1483,189441,2317,Waitangi,2720,155, +4,1484,189953,2317,Waitangi,2775,155, +4,1485,189953,2317,Waitangi,2775,155, +4,1486,189953,2317,Waitangi,2775,155, +4,1487,189953,2317,Waitangi,2775,155, +4,1488,190465,2317,Waitangi,2830,155, +4,1489,190465,2317,Waitangi,2830,155, +4,1490,190465,2317,Waitangi,2830,155, +4,1491,190465,2317,Waitangi,2830,155, +4,1492,190977,2317,Waitangi,2885,155, +4,1493,190977,2317,Waitangi,2885,155, +4,1494,190977,2317,Waitangi,2885,155, +4,1495,190977,2317,Waitangi,2885,155, +4,1496,191489,2317,Waitangi,2940,155, +4,1497,191489,2317,Waitangi,2940,155, +4,1498,191489,2317,Waitangi,2940,155, +4,1499,191489,2317,Waitangi,2940,155, +4,1500,192001,2317,Waitangi,2995,155, +4,1501,192001,2317,Waitangi,2995,155, +4,1502,192001,2317,Waitangi,2995,155, +4,1503,192001,2317,Waitangi,2995,155, +4,1504,192513,2317,Waitangi,3050,155, +4,1505,192513,2317,Waitangi,3050,155, +4,1506,192513,2317,Waitangi,3050,155, +4,1507,192513,2317,Waitangi,3050,155, +4,1508,193025,2317,Waitangi,3106,155, +4,1509,193025,2317,Waitangi,3106,155, +4,1510,193025,2317,Waitangi,3106,155, +4,1511,193025,2317,Waitangi,3106,155, +4,1512,193537,2317,Waitangi,3162,155, +4,1513,193537,2317,Waitangi,3162,155, +4,1514,193537,2317,Waitangi,3162,155, +4,1515,193537,2317,Waitangi,3162,155, +4,1516,194049,2317,Waitangi,3218,155, +4,1517,194049,2317,Waitangi,3218,155, +4,1518,194049,2317,Waitangi,3218,155, +4,1519,194049,2317,Waitangi,3218,155, +4,1520,194561,2317,Waitangi,3274,155, +4,1521,194561,2317,Waitangi,3274,155, +4,1522,194561,2317,Waitangi,3274,155, +4,1523,194561,2317,Waitangi,3274,155, +4,1524,195073,2317,Waitangi,3330,155, +4,1525,195073,2317,Waitangi,3330,155, +4,1526,195073,2317,Waitangi,3330,155, +4,1527,195073,2317,Waitangi,3330,155, +4,1528,195585,2317,Waitangi,3386,155, +4,1529,195585,2317,Waitangi,3386,155, +4,1530,195585,2317,Waitangi,3386,155, +4,1531,195585,2317,Waitangi,3386,155, +4,1532,196097,2317,Waitangi,3443,155, +4,1533,196097,2317,Waitangi,3443,155, +4,1534,196097,2317,Waitangi,3443,155, +4,1535,196097,2317,Waitangi,3443,155, +4,1536,196609,2317,Waitangi,3500,155, +4,1537,196609,2317,Waitangi,3500,155, +4,1538,196609,2317,Waitangi,3500,155, +4,1539,196609,2317,Waitangi,3500,155, +4,1540,197121,2317,Waitangi,3557,155, +4,1541,197121,2317,Waitangi,3557,155, +4,1542,197121,2317,Waitangi,3557,155, +4,1543,197121,2317,Waitangi,3557,155, +4,1544,197633,2317,Waitangi,3614,155, +4,1545,197633,2317,Waitangi,3614,155, +4,1546,197633,2317,Waitangi,3614,155, +4,1547,197633,2317,Waitangi,3614,155, +4,1548,198145,2317,Waitangi,3671,155, +4,1549,198145,2317,Waitangi,3671,155, +4,1550,198145,2317,Waitangi,3671,155, +4,1551,198145,2317,Waitangi,3671,155, +4,1552,198657,2317,Waitangi,3728,155, +4,1553,198657,2317,Waitangi,3728,155, +4,1554,198657,2317,Waitangi,3728,155, +4,1555,198657,2317,Waitangi,3728,155, +4,1556,199169,2317,Waitangi,3786,155, +4,1557,199169,2317,Waitangi,3786,155, +4,1558,199169,2317,Waitangi,3786,155, +4,1559,199169,2317,Waitangi,3786,155, +4,1560,199681,2317,Waitangi,3844,155, +4,1561,199681,2317,Waitangi,3844,155, +4,1562,199681,2317,Waitangi,3844,155, +4,1563,199681,2317,Waitangi,3844,155, +4,1564,200193,2317,Waitangi,3902,155, +4,1565,200193,2317,Waitangi,3902,155, +4,1566,200193,2317,Waitangi,3902,155, +4,1567,200193,2317,Waitangi,3902,155, +4,1568,200705,2317,Waitangi,3960,155, +4,1569,200705,2317,Waitangi,3960,155, +4,1570,200705,2317,Waitangi,3960,155, +4,1571,200705,2317,Waitangi,3960,155, +4,1572,201217,2317,Waitangi,4018,155, +4,1573,201217,2317,Waitangi,4018,155, +4,1574,201217,2317,Waitangi,4018,155, +4,1575,201217,2317,Waitangi,4018,155, +4,1576,201729,2317,Waitangi,4076,155, +4,1577,201729,2317,Waitangi,4076,155, +4,1578,201729,2317,Waitangi,4076,155, +4,1579,201729,2317,Waitangi,4076,155, +4,1580,202241,2317,Waitangi,4134,155, +4,1581,202241,2317,Waitangi,4134,155, +4,1582,202241,2317,Waitangi,4134,155, +4,1583,202241,2317,Waitangi,4134,155, +4,1584,202753,2317,Waitangi,4193,155, +4,1585,202753,2317,Waitangi,4193,155, +4,1586,202753,2317,Waitangi,4193,155, +4,1587,202753,2317,Waitangi,4193,155, +4,1588,203265,2317,Waitangi,4252,155, +4,1589,203265,2317,Waitangi,4252,155, +4,1590,203265,2317,Waitangi,4252,155, +4,1591,203265,2317,Waitangi,4252,155, +4,1592,203777,2317,Waitangi,4311,155, +4,1593,203777,2317,Waitangi,4311,155, +4,1594,203777,2317,Waitangi,4311,155, +4,1595,203777,2317,Waitangi,4311,155, +4,1596,204289,2317,Waitangi,4370,155, +4,1597,204289,2317,Waitangi,4370,155, +4,1598,204289,2317,Waitangi,4370,155, +4,1599,204289,2317,Waitangi,4370,155, +4,1600,204801,2317,Waitangi,4429,155, +4,1601,204801,2317,Waitangi,4429,155, +4,1602,204801,2317,Waitangi,4429,155, +4,1603,204801,2317,Waitangi,4429,155, +4,1604,205313,2317,Waitangi,4488,155, +4,1605,205313,2317,Waitangi,4488,155, +4,1606,205313,2317,Waitangi,4488,155, +4,1607,205313,2317,Waitangi,4488,155, +4,1608,205825,2317,Waitangi,4547,155, +4,1609,205825,2317,Waitangi,4547,155, +4,1610,205825,2317,Waitangi,4547,155, +4,1611,205825,2317,Waitangi,4547,155, +4,1612,206337,2317,Waitangi,4607,155, +4,1613,206337,2317,Waitangi,4607,155, +4,1614,206337,2317,Waitangi,4607,155, +4,1615,206337,2317,Waitangi,4607,155, +4,1616,206849,2317,Waitangi,4667,155, +4,1617,206849,2317,Waitangi,4667,155, +4,1618,206849,2317,Waitangi,4667,155, +4,1619,206849,2317,Waitangi,4667,155, +4,1620,207361,2317,Waitangi,4727,155, +4,1621,207361,2317,Waitangi,4727,155, +4,1622,207361,2317,Waitangi,4727,155, +4,1623,207361,2317,Waitangi,4727,155, +4,1624,207873,2317,Waitangi,4787,155, +4,1625,207873,2317,Waitangi,4787,155, +4,1626,207873,2317,Waitangi,4787,155, +4,1627,207873,2317,Waitangi,4787,155, +4,1628,208385,2317,Waitangi,4847,155, +4,1629,208385,2317,Waitangi,4847,155, +4,1630,208385,2317,Waitangi,4847,155, +4,1631,208385,2317,Waitangi,4847,155, +4,1632,208897,2317,Waitangi,4907,155, +4,1633,208897,2317,Waitangi,4907,155, +4,1634,208897,2317,Waitangi,4907,155, +4,1635,208897,2317,Waitangi,4907,155, +4,1636,209409,2317,Waitangi,4967,155, +4,1637,209409,2317,Waitangi,4967,155, +4,1638,209409,2317,Waitangi,4967,155, +4,1639,209409,2317,Waitangi,4967,155, +4,1640,209921,2317,Waitangi,5027,155, +4,1641,209921,2317,Waitangi,5027,155, +4,1642,209921,2317,Waitangi,5027,155, +4,1643,209921,2317,Waitangi,5027,155, +4,1644,210433,2317,Waitangi,5088,155, +4,1645,210433,2317,Waitangi,5088,155, +4,1646,210433,2317,Waitangi,5088,155, +4,1647,210433,2317,Waitangi,5088,155, +4,1648,210945,2317,Waitangi,5149,155, +4,1649,210945,2317,Waitangi,5149,155, +4,1650,210945,2317,Waitangi,5149,155, +4,1651,210945,2317,Waitangi,5149,155, +4,1652,211457,2317,Waitangi,5210,155, +4,1653,211457,2317,Waitangi,5210,155, +4,1654,211457,2317,Waitangi,5210,155, +4,1655,211457,2317,Waitangi,5210,155, +4,1656,211969,2317,Waitangi,5271,155, +4,1657,211969,2317,Waitangi,5271,155, +4,1658,211969,2317,Waitangi,5271,155, +4,1659,211969,2317,Waitangi,5271,155, +4,1660,212481,2317,Waitangi,5332,155, +4,1661,212481,2317,Waitangi,5332,155, +4,1662,212481,2317,Waitangi,5332,155, +4,1663,212481,2317,Waitangi,5332,155, +4,1664,212993,2317,Waitangi,5393,155, +4,1665,212993,2317,Waitangi,5393,155, +4,1666,212993,2317,Waitangi,5393,155, +4,1667,212993,2317,Waitangi,5393,155, +4,1668,213505,2317,Waitangi,5454,155, +4,1669,213505,2317,Waitangi,5454,155, +4,1670,213505,2317,Waitangi,5454,155, +4,1671,213505,2317,Waitangi,5454,155, +4,1672,214017,2317,Waitangi,5515,155, +4,1673,214017,2317,Waitangi,5515,155, +4,1674,214017,2317,Waitangi,5515,155, +4,1675,214017,2317,Waitangi,5515,155, +4,1676,214529,2317,Waitangi,5576,155, +4,1677,214529,2317,Waitangi,5576,155, +4,1678,214529,2317,Waitangi,5576,155, +4,1679,214529,2317,Waitangi,5576,155, +4,1680,215041,2317,Waitangi,5638,155, +4,1681,215041,2317,Waitangi,5638,155, +4,1682,215041,2317,Waitangi,5638,155, +4,1683,215041,2317,Waitangi,5638,155, +4,1684,215553,2317,Waitangi,5700,155, +4,1685,215553,2317,Waitangi,5700,155, +4,1686,215553,2317,Waitangi,5700,155, +4,1687,215553,2317,Waitangi,5700,155, +4,1688,216065,2317,Waitangi,5762,155, +4,1689,216065,2317,Waitangi,5762,155, +4,1690,216065,2317,Waitangi,5762,155, +4,1691,216065,2317,Waitangi,5762,155, +4,1692,216577,2317,Waitangi,5824,155, +4,1693,216577,2317,Waitangi,5824,155, +4,1694,216577,2317,Waitangi,5824,155, +4,1695,216577,2317,Waitangi,5824,155, +4,1696,217089,2317,Waitangi,5886,155, +4,1697,217089,2317,Waitangi,5886,155, +4,1698,217089,2317,Waitangi,5886,155, +4,1699,217089,2317,Waitangi,5886,155, +4,1700,217601,2317,Waitangi,5948,155, +4,1701,217601,2317,Waitangi,5948,155, +4,1702,217601,2317,Waitangi,5948,155, +4,1703,217601,2317,Waitangi,5948,155, +4,1704,218113,2317,Waitangi,6010,155, +4,1705,218113,2317,Waitangi,6010,155, +4,1706,218113,2317,Waitangi,6010,155, +4,1707,218113,2317,Waitangi,6010,155, +4,1708,218625,2317,Waitangi,6072,155, +4,1709,218625,2317,Waitangi,6072,155, +4,1710,218625,2317,Waitangi,6072,155, +4,1711,218625,2317,Waitangi,6072,155, +4,1712,219137,2317,Waitangi,6134,155, +4,1713,219137,2317,Waitangi,6134,155, +4,1714,219137,2317,Waitangi,6134,155, +4,1715,219137,2317,Waitangi,6134,155, +4,1716,219649,2317,Waitangi,6197,155, +4,1717,219649,2317,Waitangi,6197,155, +4,1718,219649,2317,Waitangi,6197,155, +4,1719,219649,2317,Waitangi,6197,155, +4,1720,220161,2317,Waitangi,6260,155, +4,1721,220161,2317,Waitangi,6260,155, +4,1722,220161,2317,Waitangi,6260,155, +4,1723,220161,2317,Waitangi,6260,155, +4,1724,220673,2317,Waitangi,6323,155, +4,1725,220673,2317,Waitangi,6323,155, +4,1726,220673,2317,Waitangi,6323,155, +4,1727,220673,2317,Waitangi,6323,155, +4,1728,221185,2317,Waitangi,6386,155, +4,1729,221185,2317,Waitangi,6386,155, +4,1730,221185,2317,Waitangi,6386,155, +4,1731,221185,2317,Waitangi,6386,155, +4,1732,221697,2317,Waitangi,6449,155, +4,1733,221697,2317,Waitangi,6449,155, +4,1734,221697,2317,Waitangi,6449,155, +4,1735,221697,2317,Waitangi,6449,155, +4,1736,222209,2317,Waitangi,6512,155, +4,1737,222209,2317,Waitangi,6512,155, +4,1738,222209,2317,Waitangi,6512,155, +4,1739,222209,2317,Waitangi,6512,155, +4,1740,222721,2317,Waitangi,6575,155, +4,1741,222721,2317,Waitangi,6575,155, +4,1742,222721,2317,Waitangi,6575,155, +4,1743,222721,2317,Waitangi,6575,155, +4,1744,223233,2317,Waitangi,6638,155, +4,1745,223233,2317,Waitangi,6638,155, +4,1746,223233,2317,Waitangi,6638,155, +4,1747,223233,2317,Waitangi,6638,155, +4,1748,223745,2317,Waitangi,6701,155, +4,1749,223745,2317,Waitangi,6701,155, +4,1750,223745,2317,Waitangi,6701,155, +4,1751,223745,2317,Waitangi,6701,155, +4,1752,224257,2317,Waitangi,6764,155, +4,1753,224257,2317,Waitangi,6764,155, +4,1754,224257,2317,Waitangi,6764,155, +4,1755,224257,2317,Waitangi,6764,155, +4,1756,224769,2317,Waitangi,6827,155, +4,1757,224769,2317,Waitangi,6827,155, +4,1758,224769,2317,Waitangi,6827,155, +4,1759,224769,2317,Waitangi,6827,155, +4,1760,225281,2317,Waitangi,6890,155, +4,1761,225281,2317,Waitangi,6890,155, +4,1762,225281,2317,Waitangi,6890,155, +4,1763,225281,2317,Waitangi,6890,155, +4,1764,225793,2317,Waitangi,6954,155, +4,1765,225793,2317,Waitangi,6954,155, +4,1766,225793,2317,Waitangi,6954,155, +4,1767,225793,2317,Waitangi,6954,155, +4,1768,226305,2317,Waitangi,7018,155, +4,1769,226305,2317,Waitangi,7018,155, +4,1770,226305,2317,Waitangi,7018,155, +4,1771,226305,2317,Waitangi,7018,155, +4,1772,226817,2317,Waitangi,7082,155, +4,1773,226817,2317,Waitangi,7082,155, +4,1774,226817,2317,Waitangi,7082,155, +4,1775,226817,2317,Waitangi,7082,155, +4,1776,227329,2317,Waitangi,7146,155, +4,1777,227329,2317,Waitangi,7146,155, +4,1778,227329,2317,Waitangi,7146,155, +4,1779,227329,2317,Waitangi,7146,155, +4,1780,227841,2317,Waitangi,7210,155, +4,1781,227841,2317,Waitangi,7210,155, +4,1782,227841,2317,Waitangi,7210,155, +4,1783,227841,2317,Waitangi,7210,155, +4,1784,228353,2317,Waitangi,7274,155, +4,1785,228353,2317,Waitangi,7274,155, +4,1786,228353,2317,Waitangi,7274,155, +4,1787,228353,2317,Waitangi,7274,155, +4,1788,228865,2317,Waitangi,7338,155, +4,1789,228865,2317,Waitangi,7338,155, +4,1790,228865,2317,Waitangi,7338,155, +4,1791,228865,2317,Waitangi,7338,155, +4,1792,229377,2317,Waitangi,7402,155, +4,1793,229377,2317,Waitangi,7402,155, +4,1794,229377,2317,Waitangi,7402,155, +4,1795,229377,2317,Waitangi,7402,155, +4,1796,229889,2317,Waitangi,7466,155, +4,1797,229889,2317,Waitangi,7466,155, +4,1798,229889,2317,Waitangi,7466,155, +4,1799,229889,2317,Waitangi,7466,155, +4,1800,230401,2317,Waitangi,7530,155, +4,1801,230401,2317,Waitangi,7530,155, +4,1802,230401,2317,Waitangi,7530,155, +4,1803,230401,2317,Waitangi,7530,155, +4,1804,230913,2317,Waitangi,7594,155, +4,1805,230913,2317,Waitangi,7594,155, +4,1806,230913,2317,Waitangi,7594,155, +4,1807,230913,2317,Waitangi,7594,155, +4,1808,231425,2317,Waitangi,7658,155, +4,1809,231425,2317,Waitangi,7658,155, +4,1810,231425,2317,Waitangi,7658,155, +4,1811,231425,2317,Waitangi,7658,155, +4,1812,231937,2317,Waitangi,7723,155, +4,1813,231937,2317,Waitangi,7723,155, +4,1814,231937,2317,Waitangi,7723,155, +4,1815,231937,2317,Waitangi,7723,155, +4,1816,232449,2317,Waitangi,7788,155, +4,1817,232449,2317,Waitangi,7788,155, +4,1818,232449,2317,Waitangi,7788,155, +4,1819,232449,2317,Waitangi,7788,155, +4,1820,232961,2317,Waitangi,7853,155, +4,1821,232961,2317,Waitangi,7853,155, +4,1822,232961,2317,Waitangi,7853,155, +4,1823,232961,2317,Waitangi,7853,155, +4,1824,233473,2317,Waitangi,7918,155, +4,1825,233473,2317,Waitangi,7918,155, +4,1826,233473,2317,Waitangi,7918,155, +4,1827,233473,2317,Waitangi,7918,155, +4,1828,233985,2317,Waitangi,7983,155, +4,1829,233985,2317,Waitangi,7983,155, +4,1830,233985,2317,Waitangi,7983,155, +4,1831,233985,2317,Waitangi,7983,155, +4,1832,234497,2317,Waitangi,8048,155, +4,1833,234497,2317,Waitangi,8048,155, +4,1834,234497,2317,Waitangi,8048,155, +4,1835,234497,2317,Waitangi,8048,155, +4,1836,235009,2317,Waitangi,8113,155, +4,1837,235009,2317,Waitangi,8113,155, +4,1838,235009,2317,Waitangi,8113,155, +4,1839,235009,2317,Waitangi,8113,155, +4,1840,235521,2317,Waitangi,8178,155, +4,1841,235521,2317,Waitangi,8178,155, +4,1842,235521,2317,Waitangi,8178,155, +4,1843,235521,2317,Waitangi,8178,155, +4,1844,236033,2317,Waitangi,8243,155, +4,1845,236033,2317,Waitangi,8243,155, +4,1846,236033,2317,Waitangi,8243,155, +4,1847,236033,2317,Waitangi,8243,155, +4,1848,236545,2317,Waitangi,8308,155, +4,1849,236545,2317,Waitangi,8308,155, +4,1850,236545,2317,Waitangi,8308,155, +4,1851,236545,2317,Waitangi,8308,155, +4,1852,237057,2317,Waitangi,8373,155, +4,1853,237057,2317,Waitangi,8373,155, +4,1854,237057,2317,Waitangi,8373,155, +4,1855,237057,2317,Waitangi,8373,155, +4,1856,237569,2317,Waitangi,8438,155, +4,1857,237569,2317,Waitangi,8438,155, +4,1858,237569,2317,Waitangi,8438,155, +4,1859,237569,2317,Waitangi,8438,155, +4,1860,238081,2317,Waitangi,8503,155, +4,1861,238081,2317,Waitangi,8503,155, +4,1862,238081,2317,Waitangi,8503,155, +4,1863,238081,2317,Waitangi,8503,155, +4,1864,238593,2317,Waitangi,8568,155, +4,1865,238593,2317,Waitangi,8568,155, +4,1866,238593,2317,Waitangi,8568,155, +4,1867,238593,2317,Waitangi,8568,155, +4,1868,239105,2317,Waitangi,8633,155, +4,1869,239105,2317,Waitangi,8633,155, +4,1870,239105,2317,Waitangi,8633,155, +4,1871,239105,2317,Waitangi,8633,155, +4,1872,239617,2317,Waitangi,8698,155, +4,1873,239617,2317,Waitangi,8698,155, +4,1874,239617,2317,Waitangi,8698,155, +4,1875,239617,2317,Waitangi,8698,155, +4,1876,240129,2317,Waitangi,8764,155, +4,1877,240129,2317,Waitangi,8764,155, +4,1878,240129,2317,Waitangi,8764,155, +4,1879,240129,2317,Waitangi,8764,155, +4,1880,240641,2317,Waitangi,8830,155, +4,1881,240641,2317,Waitangi,8830,155, +4,1882,240641,2317,Waitangi,8830,155, +4,1883,240641,2317,Waitangi,8830,155, +4,1884,241153,2317,Waitangi,8896,155, +4,1885,241153,2317,Waitangi,8896,155, +4,1886,241153,2317,Waitangi,8896,155, +4,1887,241153,2317,Waitangi,8896,155, +4,1888,241665,2317,Waitangi,8962,155, +4,1889,241665,2317,Waitangi,8962,155, +4,1890,241665,2317,Waitangi,8962,155, +4,1891,241665,2317,Waitangi,8962,155, +4,1892,242177,2317,Waitangi,9028,155, +4,1893,242177,2317,Waitangi,9028,155, +4,1894,242177,2317,Waitangi,9028,155, +4,1895,242177,2317,Waitangi,9028,155, +4,1896,242689,2317,Waitangi,9094,155, +4,1897,242689,2317,Waitangi,9094,155, +4,1898,242689,2317,Waitangi,9094,155, +4,1899,242689,2317,Waitangi,9094,155, +4,1900,243201,2317,Waitangi,9160,155, +4,1901,243201,2317,Waitangi,9160,155, +4,1902,243201,2317,Waitangi,9160,155, +4,1903,243201,2317,Waitangi,9160,155, +4,1904,243713,2317,Waitangi,9226,155, +4,1905,243713,2317,Waitangi,9226,155, +4,1906,243713,2317,Waitangi,9226,155, +4,1907,243713,2317,Waitangi,9226,155, +4,1908,244225,2317,Waitangi,9292,155, +4,1909,244225,2317,Waitangi,9292,155, +4,1910,244225,2317,Waitangi,9292,155, +4,1911,244225,2317,Waitangi,9292,155, +4,1912,244737,2317,Waitangi,9358,155, +4,1913,244737,2317,Waitangi,9358,155, +4,1914,244737,2317,Waitangi,9358,155, +4,1915,244737,2317,Waitangi,9358,155, +4,1916,245249,2317,Waitangi,9424,155, +4,1917,245249,2317,Waitangi,9424,155, +4,1918,245249,2317,Waitangi,9424,155, +4,1919,245249,2317,Waitangi,9424,155, +4,1920,245761,2317,Waitangi,9490,155, +4,1921,245761,2317,Waitangi,9490,155, +4,1922,245761,2317,Waitangi,9490,155, +4,1923,245761,2317,Waitangi,9490,155, +4,1924,246273,2317,Waitangi,9556,155, +4,1925,246273,2317,Waitangi,9556,155, +4,1926,246273,2317,Waitangi,9556,155, +4,1927,246273,2317,Waitangi,9556,155, +4,1928,246785,2317,Waitangi,9622,155, +4,1929,246785,2317,Waitangi,9622,155, +4,1930,246785,2317,Waitangi,9622,155, +4,1931,246785,2317,Waitangi,9622,155, +4,1932,247297,2317,Waitangi,9688,155, +4,1933,247297,2317,Waitangi,9688,155, +4,1934,247297,2317,Waitangi,9688,155, +4,1935,247297,2317,Waitangi,9688,155, +4,1936,247809,2317,Waitangi,9754,155, +4,1937,247809,2317,Waitangi,9754,155, +4,1938,247809,2317,Waitangi,9754,155, +4,1939,247809,2317,Waitangi,9754,155, +4,1940,248321,2317,Waitangi,9820,155, +4,1941,248321,2317,Waitangi,9820,155, +4,1942,248321,2317,Waitangi,9820,155, +4,1943,248321,2317,Waitangi,9820,155, +4,1944,248833,2317,Waitangi,9886,155, +4,1945,248833,2317,Waitangi,9886,155, +4,1946,248833,2317,Waitangi,9886,155, +4,1947,248833,2317,Waitangi,9886,155, +4,1948,249345,2317,Waitangi,9953,155, +4,1949,249345,2317,Waitangi,9953,155, +4,1950,249345,2317,Waitangi,9953,155, +4,1951,249345,2317,Waitangi,9953,155, +4,1952,249857,2317,Waitangi,10020,155, +4,1953,249857,2317,Waitangi,10020,155, +4,1954,249857,2317,Waitangi,10020,155, +4,1955,249857,2317,Waitangi,10020,155, +4,1956,250369,2317,Waitangi,10087,155, +4,1957,250369,2317,Waitangi,10087,155, +4,1958,250369,2317,Waitangi,10087,155, +4,1959,250369,2317,Waitangi,10087,155, +4,1960,250881,2317,Waitangi,10154,155, +4,1961,250881,2317,Waitangi,10154,155, +4,1962,250881,2317,Waitangi,10154,155, +4,1963,250881,2317,Waitangi,10154,155, +4,1964,251393,2317,Waitangi,10221,155, +4,1965,251393,2317,Waitangi,10221,155, +4,1966,251393,2317,Waitangi,10221,155, +4,1967,251393,2317,Waitangi,10221,155, +4,1968,251905,2317,Waitangi,10288,155, +4,1969,251905,2317,Waitangi,10288,155, +4,1970,251905,2317,Waitangi,10288,155, +4,1971,251905,2317,Waitangi,10288,155, +4,1972,252417,2317,Waitangi,10355,155, +4,1973,252417,2317,Waitangi,10355,155, +4,1974,252417,2317,Waitangi,10355,155, +4,1975,252417,2317,Waitangi,10355,155, +4,1976,252929,2317,Waitangi,10422,155, +4,1977,252929,2317,Waitangi,10422,155, +4,1978,252929,2317,Waitangi,10422,155, +4,1979,252929,2317,Waitangi,10422,155, +4,1980,253441,2317,Waitangi,10489,155, +4,1981,253441,2317,Waitangi,10489,155, +4,1982,253441,2317,Waitangi,10489,155, +4,1983,253441,2317,Waitangi,10489,155, +4,1984,253953,2317,Waitangi,10556,155, +4,1985,253953,2317,Waitangi,10556,155, +4,1986,253953,2317,Waitangi,10556,155, +4,1987,253953,2317,Waitangi,10556,155, +4,1988,254465,2317,Waitangi,10623,155, +4,1989,254465,2317,Waitangi,10623,155, +4,1990,254465,2317,Waitangi,10623,155, +4,1991,254465,2317,Waitangi,10623,155, +4,1992,254977,2317,Waitangi,10690,155, +4,1993,254977,2317,Waitangi,10690,155, +4,1994,254977,2317,Waitangi,10690,155, +4,1995,254977,2317,Waitangi,10690,155, +4,1996,255489,2317,Waitangi,10757,155, +4,1997,255489,2317,Waitangi,10757,155, +4,1998,255489,2317,Waitangi,10757,155, +4,1999,255489,2317,Waitangi,10757,155, +4,2000,256001,2317,Waitangi,10824,155, +4,2001,256001,2317,Waitangi,10824,155, +4,2002,256001,2317,Waitangi,10824,155, +4,2003,256001,2317,Waitangi,10824,155, +4,2004,256513,2317,Waitangi,10891,155, +4,2005,256513,2317,Waitangi,10891,155, +4,2006,256513,2317,Waitangi,10891,155, +4,2007,256513,2317,Waitangi,10891,155, +4,2008,257025,2317,Waitangi,10958,155, +4,2009,257025,2317,Waitangi,10958,155, +4,2010,257025,2317,Waitangi,10958,155, +4,2011,257025,2317,Waitangi,10958,155, +4,2012,257537,2317,Waitangi,11025,155, +4,2013,257537,2317,Waitangi,11025,155, +4,2014,257537,2317,Waitangi,11025,155, +4,2015,257537,2317,Waitangi,11025,155, +4,2016,258049,2317,Waitangi,11092,155, +4,2017,258049,2317,Waitangi,11092,155, +4,2018,258049,2317,Waitangi,11092,155, +4,2019,258049,2317,Waitangi,11092,155, +4,2020,258561,2317,Waitangi,11159,155, +4,2021,258561,2317,Waitangi,11159,155, +4,2022,258561,2317,Waitangi,11159,155, +4,2023,258561,2317,Waitangi,11159,155, +4,2024,259073,2317,Waitangi,11226,155, +4,2025,259073,2317,Waitangi,11226,155, +4,2026,259073,2317,Waitangi,11226,155, +4,2027,259073,2317,Waitangi,11226,155, +4,2028,259585,2317,Waitangi,11293,155, +4,2029,259585,2317,Waitangi,11293,155, +4,2030,259585,2317,Waitangi,11293,155, +4,2031,259585,2317,Waitangi,11293,155, +4,2032,260097,2317,Waitangi,11360,155, +4,2033,260097,2317,Waitangi,11360,155, +4,2034,260097,2317,Waitangi,11360,155, +4,2035,260097,2317,Waitangi,11360,155, +4,2036,260609,2317,Waitangi,11427,155, +4,2037,260609,2317,Waitangi,11427,155, +4,2038,260609,2317,Waitangi,11427,155, +4,2039,260609,2317,Waitangi,11427,155, +4,2040,261121,2317,Waitangi,11494,155, +4,2041,261121,2317,Waitangi,11494,155, +4,2042,261121,2317,Waitangi,11494,155, +4,2043,261121,2317,Waitangi,11494,155, +4,2044,261633,2317,Waitangi,11561,155, +4,2045,261633,2317,Waitangi,11561,155, +4,2046,261633,2317,Waitangi,11561,155, +4,2047,261633,2317,Waitangi,11561,155, +5,0,1,6919,Anchorage,2,235, +5,1,1,6919,Anchorage,2,235, +5,2,1,6919,Anchorage,2,235, +5,3,1,6919,Anchorage,2,235, +5,4,513,6919,Anchorage,57,235, +5,5,513,6919,Anchorage,57,235, +5,6,513,6919,Anchorage,57,235, +5,7,513,6919,Anchorage,57,235, +5,8,1025,6919,Anchorage,112,235, +5,9,1025,6919,Anchorage,112,235, +5,10,1025,6919,Anchorage,112,235, +5,11,1025,6919,Anchorage,112,235, +5,12,1537,6919,Anchorage,167,235, +5,13,1537,6919,Anchorage,167,235, +5,14,1537,6919,Anchorage,167,235, +5,15,1537,6919,Anchorage,167,235, +5,16,2049,6919,Anchorage,222,235, +5,17,2049,6919,Anchorage,222,235, +5,18,2049,6919,Anchorage,222,235, +5,19,2049,6919,Anchorage,222,235, +5,20,2561,6919,Anchorage,277,235, +5,21,2561,6919,Anchorage,277,235, +5,22,2561,6919,Anchorage,277,235, +5,23,2561,6919,Anchorage,277,235, +5,24,3073,6919,Anchorage,332,235, +5,25,3073,6919,Anchorage,332,235, +5,26,3073,6919,Anchorage,332,235, +5,27,3073,6919,Anchorage,332,235, +5,28,3585,6919,Anchorage,387,235, +5,29,3585,6919,Anchorage,387,235, +5,30,3585,6919,Anchorage,387,235, +5,31,3585,6919,Anchorage,387,235, +5,32,4097,6919,Anchorage,442,235, +5,33,4097,6919,Anchorage,442,235, +5,34,4097,6919,Anchorage,442,235, +5,35,4097,6919,Anchorage,442,235, +5,36,4609,6919,Anchorage,497,235, +5,37,4609,6919,Anchorage,497,235, +5,38,4609,6919,Anchorage,497,235, +5,39,4609,6919,Anchorage,497,235, +5,40,5121,6919,Anchorage,552,235, +5,41,5121,6919,Anchorage,552,235, +5,42,5121,6919,Anchorage,552,235, +5,43,5121,6919,Anchorage,552,235, +5,44,5633,6919,Anchorage,607,235, +5,45,5633,6919,Anchorage,607,235, +5,46,5633,6919,Anchorage,607,235, +5,47,5633,6919,Anchorage,607,235, +5,48,6145,6919,Anchorage,662,235, +5,49,6145,6919,Anchorage,662,235, +5,50,6145,6919,Anchorage,662,235, +5,51,6145,6919,Anchorage,662,235, +5,52,6657,6919,Anchorage,717,235, +5,53,6657,6919,Anchorage,717,235, +5,54,6657,6919,Anchorage,717,235, +5,55,6657,6919,Anchorage,717,235, +5,56,7169,6919,Anchorage,772,235, +5,57,7169,6919,Anchorage,772,235, +5,58,7169,6919,Anchorage,772,235, +5,59,7169,6919,Anchorage,772,235, +5,60,7681,6919,Anchorage,827,235, +5,61,7681,6919,Anchorage,827,235, +5,62,7681,6919,Anchorage,827,235, +5,63,7681,6919,Anchorage,827,235, +5,64,8193,6919,Anchorage,882,235, +5,65,8193,6919,Anchorage,882,235, +5,66,8193,6919,Anchorage,882,235, +5,67,8193,6919,Anchorage,882,235, +5,68,8705,6919,Anchorage,937,235, +5,69,8705,6919,Anchorage,937,235, +5,70,8705,6919,Anchorage,937,235, +5,71,8705,6919,Anchorage,937,235, +5,72,9217,6919,Anchorage,992,235, +5,73,9217,6919,Anchorage,992,235, +5,74,9217,6919,Anchorage,992,235, +5,75,9217,6919,Anchorage,992,235, +5,76,9729,6919,Anchorage,1047,235, +5,77,9729,6919,Anchorage,1047,235, +5,78,9729,6919,Anchorage,1047,235, +5,79,9729,6919,Anchorage,1047,235, +5,80,10241,6919,Anchorage,1102,235, +5,81,10241,6919,Anchorage,1102,235, +5,82,10241,6919,Anchorage,1102,235, +5,83,10241,6919,Anchorage,1102,235, +5,84,10753,6919,Anchorage,1157,235, +5,85,10753,6919,Anchorage,1157,235, +5,86,10753,6919,Anchorage,1157,235, +5,87,10753,6919,Anchorage,1157,235, +5,88,11265,6919,Anchorage,1212,235, +5,89,11265,6919,Anchorage,1212,235, +5,90,11265,6919,Anchorage,1212,235, +5,91,11265,6919,Anchorage,1212,235, +5,92,11777,6919,Anchorage,1267,235, +5,93,11777,6919,Anchorage,1267,235, +5,94,11777,6919,Anchorage,1267,235, +5,95,11777,6919,Anchorage,1267,235, +5,96,12289,6919,Anchorage,1322,235, +5,97,12289,6919,Anchorage,1322,235, +5,98,12289,6919,Anchorage,1322,235, +5,99,12289,6919,Anchorage,1322,235, +5,100,12801,6919,Anchorage,1377,235, +5,101,12801,6919,Anchorage,1377,235, +5,102,12801,6919,Anchorage,1377,235, +5,103,12801,6919,Anchorage,1377,235, +5,104,13313,6919,Anchorage,1432,235, +5,105,13313,6919,Anchorage,1432,235, +5,106,13313,6919,Anchorage,1432,235, +5,107,13313,6919,Anchorage,1432,235, +5,108,13825,6919,Anchorage,1487,235, +5,109,13825,6919,Anchorage,1487,235, +5,110,13825,6919,Anchorage,1487,235, +5,111,13825,6919,Anchorage,1487,235, +5,112,14337,6919,Anchorage,1542,235, +5,113,14337,6919,Anchorage,1542,235, +5,114,14337,6919,Anchorage,1542,235, +5,115,14337,6919,Anchorage,1542,235, +5,116,14849,6919,Anchorage,1597,235, +5,117,14849,6919,Anchorage,1597,235, +5,118,14849,6919,Anchorage,1597,235, +5,119,14849,6919,Anchorage,1597,235, +5,120,15361,6919,Anchorage,1652,235, +5,121,15361,6919,Anchorage,1652,235, +5,122,15361,6919,Anchorage,1652,235, +5,123,15361,6919,Anchorage,1652,235, +5,124,15873,6919,Anchorage,1707,235, +5,125,15873,6919,Anchorage,1707,235, +5,126,15873,6919,Anchorage,1707,235, +5,127,15873,6919,Anchorage,1707,235, +5,128,16385,6919,Anchorage,1762,235, +5,129,16385,6919,Anchorage,1762,235, +5,130,16385,6919,Anchorage,1762,235, +5,131,16385,6919,Anchorage,1762,235, +5,132,16897,6919,Anchorage,1817,235, +5,133,16897,6919,Anchorage,1817,235, +5,134,16897,6919,Anchorage,1817,235, +5,135,16897,6919,Anchorage,1817,235, +5,136,17409,6919,Anchorage,1872,235, +5,137,17409,6919,Anchorage,1872,235, +5,138,17409,6919,Anchorage,1872,235, +5,139,17409,6919,Anchorage,1872,235, +5,140,17921,6919,Anchorage,1927,235, +5,141,17921,6919,Anchorage,1927,235, +5,142,17921,6919,Anchorage,1927,235, +5,143,17921,6919,Anchorage,1927,235, +5,144,18433,6919,Anchorage,1982,235, +5,145,18433,6919,Anchorage,1982,235, +5,146,18433,6919,Anchorage,1982,235, +5,147,18433,6919,Anchorage,1982,235, +5,148,18945,6919,Anchorage,2037,235, +5,149,18945,6919,Anchorage,2037,235, +5,150,18945,6919,Anchorage,2037,235, +5,151,18945,6919,Anchorage,2037,235, +5,152,19457,6919,Anchorage,2092,235, +5,153,19457,6919,Anchorage,2092,235, +5,154,19457,6919,Anchorage,2092,235, +5,155,19457,6919,Anchorage,2092,235, +5,156,19969,6919,Anchorage,2147,235, +5,157,19969,6919,Anchorage,2147,235, +5,158,19969,6919,Anchorage,2147,235, +5,159,19969,6919,Anchorage,2147,235, +5,160,20481,6919,Anchorage,2202,235, +5,161,20481,6919,Anchorage,2202,235, +5,162,20481,6919,Anchorage,2202,235, +5,163,20481,6919,Anchorage,2202,235, +5,164,20993,6919,Anchorage,2257,235, +5,165,20993,6919,Anchorage,2257,235, +5,166,20993,6919,Anchorage,2257,235, +5,167,20993,6919,Anchorage,2257,235, +5,168,21505,6919,Anchorage,2312,235, +5,169,21505,6919,Anchorage,2312,235, +5,170,21505,6919,Anchorage,2312,235, +5,171,21505,6919,Anchorage,2312,235, +5,172,22017,6919,Anchorage,2367,235, +5,173,22017,6919,Anchorage,2367,235, +5,174,22017,6919,Anchorage,2367,235, +5,175,22017,6919,Anchorage,2367,235, +5,176,22529,6919,Anchorage,2422,235, +5,177,22529,6919,Anchorage,2422,235, +5,178,22529,6919,Anchorage,2422,235, +5,179,22529,6919,Anchorage,2422,235, +5,180,23041,6919,Anchorage,2477,235, +5,181,23041,6919,Anchorage,2477,235, +5,182,23041,6919,Anchorage,2477,235, +5,183,23041,6919,Anchorage,2477,235, +5,184,23553,6919,Anchorage,2532,235, +5,185,23553,6919,Anchorage,2532,235, +5,186,23553,6919,Anchorage,2532,235, +5,187,23553,6919,Anchorage,2532,235, +5,188,24065,6919,Anchorage,2587,235, +5,189,24065,6919,Anchorage,2587,235, +5,190,24065,6919,Anchorage,2587,235, +5,191,24065,6919,Anchorage,2587,235, +5,192,24577,6919,Anchorage,2642,235, +5,193,24577,6919,Anchorage,2642,235, +5,194,24577,6919,Anchorage,2642,235, +5,195,24577,6919,Anchorage,2642,235, +5,196,25089,6919,Anchorage,2697,235, +5,197,25089,6919,Anchorage,2697,235, +5,198,25089,6919,Anchorage,2697,235, +5,199,25089,6919,Anchorage,2697,235, +5,200,25601,6919,Anchorage,2752,235, +5,201,25601,6919,Anchorage,2752,235, +5,202,25601,6919,Anchorage,2752,235, +5,203,25601,6919,Anchorage,2752,235, +5,204,26113,6919,Anchorage,2807,235, +5,205,26113,6919,Anchorage,2807,235, +5,206,26113,6919,Anchorage,2807,235, +5,207,26113,6919,Anchorage,2807,235, +5,208,26625,6919,Anchorage,2862,235, +5,209,26625,6919,Anchorage,2862,235, +5,210,26625,6919,Anchorage,2862,235, +5,211,26625,6919,Anchorage,2862,235, +5,212,27137,6919,Anchorage,2917,235, +5,213,27137,6919,Anchorage,2917,235, +5,214,27137,6919,Anchorage,2917,235, +5,215,27137,6919,Anchorage,2917,235, +5,216,27649,6919,Anchorage,2972,235, +5,217,27649,6919,Anchorage,2972,235, +5,218,27649,6919,Anchorage,2972,235, +5,219,27649,6919,Anchorage,2972,235, +5,220,28161,6919,Anchorage,3027,235, +5,221,28161,6919,Anchorage,3027,235, +5,222,28161,6919,Anchorage,3027,235, +5,223,28161,6919,Anchorage,3027,235, +5,224,28673,6919,Anchorage,3082,235, +5,225,28673,6919,Anchorage,3082,235, +5,226,28673,6919,Anchorage,3082,235, +5,227,28673,6919,Anchorage,3082,235, +5,228,29185,6919,Anchorage,3137,235, +5,229,29185,6919,Anchorage,3137,235, +5,230,29185,6919,Anchorage,3137,235, +5,231,29185,6919,Anchorage,3137,235, +5,232,29697,6919,Anchorage,3192,235, +5,233,29697,6919,Anchorage,3192,235, +5,234,29697,6919,Anchorage,3192,235, +5,235,29697,6919,Anchorage,3192,235, +5,236,30209,6919,Anchorage,3247,235, +5,237,30209,6919,Anchorage,3247,235, +5,238,30209,6919,Anchorage,3247,235, +5,239,30209,6919,Anchorage,3247,235, +5,240,30721,6919,Anchorage,3302,235, +5,241,30721,6919,Anchorage,3302,235, +5,242,30721,6919,Anchorage,3302,235, +5,243,30721,6919,Anchorage,3302,235, +5,244,31233,6919,Anchorage,3357,235, +5,245,31233,6919,Anchorage,3357,235, +5,246,31233,6919,Anchorage,3357,235, +5,247,31233,6919,Anchorage,3357,235, +5,248,31745,6919,Anchorage,3412,235, +5,249,31745,6919,Anchorage,3412,235, +5,250,31745,6919,Anchorage,3412,235, +5,251,31745,6919,Anchorage,3412,235, +5,252,32257,6919,Anchorage,3467,235, +5,253,32257,6919,Anchorage,3467,235, +5,254,32257,6919,Anchorage,3467,235, +5,255,32257,6919,Anchorage,3467,235, +5,256,32769,6919,Anchorage,3522,235, +5,257,32769,6919,Anchorage,3522,235, +5,258,32769,6919,Anchorage,3522,235, +5,259,32769,6919,Anchorage,3522,235, +5,260,33281,6919,Anchorage,3577,235, +5,261,33281,6919,Anchorage,3577,235, +5,262,33281,6919,Anchorage,3577,235, +5,263,33281,6919,Anchorage,3577,235, +5,264,33793,6919,Anchorage,3632,235, +5,265,33793,6919,Anchorage,3632,235, +5,266,33793,6919,Anchorage,3632,235, +5,267,33793,6919,Anchorage,3632,235, +5,268,34305,6919,Anchorage,3687,235, +5,269,34305,6919,Anchorage,3687,235, +5,270,34305,6919,Anchorage,3687,235, +5,271,34305,6919,Anchorage,3687,235, +5,272,34817,6919,Anchorage,3742,235, +5,273,34817,6919,Anchorage,3742,235, +5,274,34817,6919,Anchorage,3742,235, +5,275,34817,6919,Anchorage,3742,235, +5,276,35329,6919,Anchorage,3797,235, +5,277,35329,6919,Anchorage,3797,235, +5,278,35329,6919,Anchorage,3797,235, +5,279,35329,6919,Anchorage,3797,235, +5,280,35841,6919,Anchorage,3852,235, +5,281,35841,6919,Anchorage,3852,235, +5,282,35841,6919,Anchorage,3852,235, +5,283,35841,6919,Anchorage,3852,235, +5,284,36353,6919,Anchorage,3907,235, +5,285,36353,6919,Anchorage,3907,235, +5,286,36353,6919,Anchorage,3907,235, +5,287,36353,6919,Anchorage,3907,235, +5,288,36865,6919,Anchorage,3962,235, +5,289,36865,6919,Anchorage,3962,235, +5,290,36865,6919,Anchorage,3962,235, +5,291,36865,6919,Anchorage,3962,235, +5,292,37377,6919,Anchorage,4017,235, +5,293,37377,6919,Anchorage,4017,235, +5,294,37377,6919,Anchorage,4017,235, +5,295,37377,6919,Anchorage,4017,235, +5,296,37889,6919,Anchorage,4072,235, +5,297,37889,6919,Anchorage,4072,235, +5,298,37889,6919,Anchorage,4072,235, +5,299,37889,6919,Anchorage,4072,235, +5,300,38401,6919,Anchorage,4127,235, +5,301,38401,6919,Anchorage,4127,235, +5,302,38401,6919,Anchorage,4127,235, +5,303,38401,6919,Anchorage,4127,235, +5,304,38913,6919,Anchorage,4182,235, +5,305,38913,6919,Anchorage,4182,235, +5,306,38913,6919,Anchorage,4182,235, +5,307,38913,6919,Anchorage,4182,235, +5,308,39425,6919,Anchorage,4237,235, +5,309,39425,6919,Anchorage,4237,235, +5,310,39425,6919,Anchorage,4237,235, +5,311,39425,6919,Anchorage,4237,235, +5,312,39937,6919,Anchorage,4292,235, +5,313,39937,6919,Anchorage,4292,235, +5,314,39937,6919,Anchorage,4292,235, +5,315,39937,6919,Anchorage,4292,235, +5,316,40449,6919,Anchorage,4347,235, +5,317,40449,6919,Anchorage,4347,235, +5,318,40449,6919,Anchorage,4347,235, +5,319,40449,6919,Anchorage,4347,235, +5,320,40961,6919,Anchorage,4402,235, +5,321,40961,6919,Anchorage,4402,235, +5,322,40961,6919,Anchorage,4402,235, +5,323,40961,6919,Anchorage,4402,235, +5,324,41473,6919,Anchorage,4457,235, +5,325,41473,6919,Anchorage,4457,235, +5,326,41473,6919,Anchorage,4457,235, +5,327,41473,6919,Anchorage,4457,235, +5,328,41985,6919,Anchorage,4511,235, +5,329,41985,6919,Anchorage,4511,235, +5,330,41985,6919,Anchorage,4511,235, +5,331,41985,6919,Anchorage,4511,235, +5,332,42497,6919,Anchorage,4565,235, +5,333,42497,6919,Anchorage,4565,235, +5,334,42497,6919,Anchorage,4565,235, +5,335,42497,6919,Anchorage,4565,235, +5,336,43009,6919,Anchorage,4619,235, +5,337,43009,6919,Anchorage,4619,235, +5,338,43009,6919,Anchorage,4619,235, +5,339,43009,6919,Anchorage,4619,235, +5,340,43521,6919,Anchorage,4673,235, +5,341,43521,6919,Anchorage,4673,235, +5,342,43521,6919,Anchorage,4673,235, +5,343,43521,6919,Anchorage,4673,235, +5,344,44033,6919,Anchorage,4727,235, +5,345,44033,6919,Anchorage,4727,235, +5,346,44033,6919,Anchorage,4727,235, +5,347,44033,6919,Anchorage,4727,235, +5,348,44545,6919,Anchorage,4781,235, +5,349,44545,6919,Anchorage,4781,235, +5,350,44545,6919,Anchorage,4781,235, +5,351,44545,6919,Anchorage,4781,235, +5,352,45057,6919,Anchorage,4835,235, +5,353,45057,6919,Anchorage,4835,235, +5,354,45057,6919,Anchorage,4835,235, +5,355,45057,6919,Anchorage,4835,235, +5,356,45569,6919,Anchorage,4889,235, +5,357,45569,6919,Anchorage,4889,235, +5,358,45569,6919,Anchorage,4889,235, +5,359,45569,6919,Anchorage,4889,235, +5,360,46081,6919,Anchorage,4943,235, +5,361,46081,6919,Anchorage,4943,235, +5,362,46081,6919,Anchorage,4943,235, +5,363,46081,6919,Anchorage,4943,235, +5,364,46593,6919,Anchorage,4997,235, +5,365,46593,6919,Anchorage,4997,235, +5,366,46593,6919,Anchorage,4997,235, +5,367,46593,6919,Anchorage,4997,235, +5,368,47105,6919,Anchorage,5051,235, +5,369,47105,6919,Anchorage,5051,235, +5,370,47105,6919,Anchorage,5051,235, +5,371,47105,6919,Anchorage,5051,235, +5,372,47617,6919,Anchorage,5105,235, +5,373,47617,6919,Anchorage,5105,235, +5,374,47617,6919,Anchorage,5105,235, +5,375,47617,6919,Anchorage,5105,235, +5,376,48129,6919,Anchorage,5159,235, +5,377,48129,6919,Anchorage,5159,235, +5,378,48129,6919,Anchorage,5159,235, +5,379,48129,6919,Anchorage,5159,235, +5,380,48641,6919,Anchorage,5213,235, +5,381,48641,6919,Anchorage,5213,235, +5,382,48641,6919,Anchorage,5213,235, +5,383,48641,6919,Anchorage,5213,235, +5,384,49153,6919,Anchorage,5267,235, +5,385,49153,6919,Anchorage,5267,235, +5,386,49153,6919,Anchorage,5267,235, +5,387,49153,6919,Anchorage,5267,235, +5,388,49665,6919,Anchorage,5321,235, +5,389,49665,6919,Anchorage,5321,235, +5,390,49665,6919,Anchorage,5321,235, +5,391,49665,6919,Anchorage,5321,235, +5,392,50177,6919,Anchorage,5375,235, +5,393,50177,6919,Anchorage,5375,235, +5,394,50177,6919,Anchorage,5375,235, +5,395,50177,6919,Anchorage,5375,235, +5,396,50689,6919,Anchorage,5429,235, +5,397,50689,6919,Anchorage,5429,235, +5,398,50689,6919,Anchorage,5429,235, +5,399,50689,6919,Anchorage,5429,235, +5,400,51201,6919,Anchorage,5483,235, +5,401,51201,6919,Anchorage,5483,235, +5,402,51201,6919,Anchorage,5483,235, +5,403,51201,6919,Anchorage,5483,235, +5,404,51713,6919,Anchorage,5537,235, +5,405,51713,6919,Anchorage,5537,235, +5,406,51713,6919,Anchorage,5537,235, +5,407,51713,6919,Anchorage,5537,235, +5,408,52225,6919,Anchorage,5591,235, +5,409,52225,6919,Anchorage,5591,235, +5,410,52225,6919,Anchorage,5591,235, +5,411,52225,6919,Anchorage,5591,235, +5,412,52737,6919,Anchorage,5645,235, +5,413,52737,6919,Anchorage,5645,235, +5,414,52737,6919,Anchorage,5645,235, +5,415,52737,6919,Anchorage,5645,235, +5,416,53249,6919,Anchorage,5699,235, +5,417,53249,6919,Anchorage,5699,235, +5,418,53249,6919,Anchorage,5699,235, +5,419,53249,6919,Anchorage,5699,235, +5,420,53761,6919,Anchorage,5753,235, +5,421,53761,6919,Anchorage,5753,235, +5,422,53761,6919,Anchorage,5753,235, +5,423,53761,6919,Anchorage,5753,235, +5,424,54273,6919,Anchorage,5807,235, +5,425,54273,6919,Anchorage,5807,235, +5,426,54273,6919,Anchorage,5807,235, +5,427,54273,6919,Anchorage,5807,235, +5,428,54785,6919,Anchorage,5861,235, +5,429,54785,6919,Anchorage,5861,235, +5,430,54785,6919,Anchorage,5861,235, +5,431,54785,6919,Anchorage,5861,235, +5,432,55297,6919,Anchorage,5915,235, +5,433,55297,6919,Anchorage,5915,235, +5,434,55297,6919,Anchorage,5915,235, +5,435,55297,6919,Anchorage,5915,235, +5,436,55809,6919,Anchorage,5969,235, +5,437,55809,6919,Anchorage,5969,235, +5,438,55809,6919,Anchorage,5969,235, +5,439,55809,6919,Anchorage,5969,235, +5,440,56321,6919,Anchorage,6023,235, +5,441,56321,6919,Anchorage,6023,235, +5,442,56321,6919,Anchorage,6023,235, +5,443,56321,6919,Anchorage,6023,235, +5,444,56833,6919,Anchorage,6077,235, +5,445,56833,6919,Anchorage,6077,235, +5,446,56833,6919,Anchorage,6077,235, +5,447,56833,6919,Anchorage,6077,235, +5,448,57345,6919,Anchorage,6131,235, +5,449,57345,6919,Anchorage,6131,235, +5,450,57345,6919,Anchorage,6131,235, +5,451,57345,6919,Anchorage,6131,235, +5,452,57857,6919,Anchorage,6185,235, +5,453,57857,6919,Anchorage,6185,235, +5,454,57857,6919,Anchorage,6185,235, +5,455,57857,6919,Anchorage,6185,235, +5,456,58369,6919,Anchorage,6239,235, +5,457,58369,6919,Anchorage,6239,235, +5,458,58369,6919,Anchorage,6239,235, +5,459,58369,6919,Anchorage,6239,235, +5,460,58881,6919,Anchorage,6293,235, +5,461,58881,6919,Anchorage,6293,235, +5,462,58881,6919,Anchorage,6293,235, +5,463,58881,6919,Anchorage,6293,235, +5,464,59393,6919,Anchorage,6347,235, +5,465,59393,6919,Anchorage,6347,235, +5,466,59393,6919,Anchorage,6347,235, +5,467,59393,6919,Anchorage,6347,235, +5,468,59905,6919,Anchorage,6401,235, +5,469,59905,6919,Anchorage,6401,235, +5,470,59905,6919,Anchorage,6401,235, +5,471,59905,6919,Anchorage,6401,235, +5,472,60417,6919,Anchorage,6455,235, +5,473,60417,6919,Anchorage,6455,235, +5,474,60417,6919,Anchorage,6455,235, +5,475,60417,6919,Anchorage,6455,235, +5,476,60929,6919,Anchorage,6509,235, +5,477,60929,6919,Anchorage,6509,235, +5,478,60929,6919,Anchorage,6509,235, +5,479,60929,6919,Anchorage,6509,235, +5,480,61441,6919,Anchorage,6563,235, +5,481,61441,6919,Anchorage,6563,235, +5,482,61441,6919,Anchorage,6563,235, +5,483,61441,6919,Anchorage,6563,235, +5,484,61953,6919,Anchorage,6617,235, +5,485,61953,6919,Anchorage,6617,235, +5,486,61953,6919,Anchorage,6617,235, +5,487,61953,6919,Anchorage,6617,235, +5,488,62465,6919,Anchorage,6671,235, +5,489,62465,6919,Anchorage,6671,235, +5,490,62465,6919,Anchorage,6671,235, +5,491,62465,6919,Anchorage,6671,235, +5,492,62977,6919,Anchorage,6725,235, +5,493,62977,6919,Anchorage,6725,235, +5,494,62977,6919,Anchorage,6725,235, +5,495,62977,6919,Anchorage,6725,235, +5,496,63489,6919,Anchorage,6779,235, +5,497,63489,6919,Anchorage,6779,235, +5,498,63489,6919,Anchorage,6779,235, +5,499,63489,6919,Anchorage,6779,235, +5,500,64001,6919,Anchorage,6833,235, +5,501,64001,6919,Anchorage,6833,235, +5,502,64001,6919,Anchorage,6833,235, +5,503,64001,6919,Anchorage,6833,235, +5,504,64513,6919,Anchorage,6887,235, +5,505,64513,6919,Anchorage,6887,235, +5,506,64513,6919,Anchorage,6887,235, +5,507,64513,6919,Anchorage,6887,235, +5,508,65025,6919,Anchorage,6941,235, +5,509,65025,6919,Anchorage,6941,235, +5,510,65025,6919,Anchorage,6941,235, +5,511,65025,6919,Anchorage,6941,235, +5,512,65537,6919,Anchorage,6995,235, +5,513,65537,6919,Anchorage,6995,235, +5,514,65537,6919,Anchorage,6995,235, +5,515,65537,6919,Anchorage,6995,235, +5,516,66049,6919,Anchorage,7049,235, +5,517,66049,6919,Anchorage,7049,235, +5,518,66049,6919,Anchorage,7049,235, +5,519,66049,6919,Anchorage,7049,235, +5,520,66561,6919,Anchorage,7103,235, +5,521,66561,6919,Anchorage,7103,235, +5,522,66561,6919,Anchorage,7103,235, +5,523,66561,6919,Anchorage,7103,235, +5,524,67073,6919,Anchorage,7157,235, +5,525,67073,6919,Anchorage,7157,235, +5,526,67073,6919,Anchorage,7157,235, +5,527,67073,6919,Anchorage,7157,235, +5,528,67585,6919,Anchorage,7211,235, +5,529,67585,6919,Anchorage,7211,235, +5,530,67585,6919,Anchorage,7211,235, +5,531,67585,6919,Anchorage,7211,235, +5,532,68097,6919,Anchorage,7265,235, +5,533,68097,6919,Anchorage,7265,235, +5,534,68097,6919,Anchorage,7265,235, +5,535,68097,6919,Anchorage,7265,235, +5,536,68609,6919,Anchorage,7319,235, +5,537,68609,6919,Anchorage,7319,235, +5,538,68609,6919,Anchorage,7319,235, +5,539,68609,6919,Anchorage,7319,235, +5,540,69121,6919,Anchorage,7373,235, +5,541,69121,6919,Anchorage,7373,235, +5,542,69121,6919,Anchorage,7373,235, +5,543,69121,6919,Anchorage,7373,235, +5,544,69633,6919,Anchorage,7427,235, +5,545,69633,6919,Anchorage,7427,235, +5,546,69633,6919,Anchorage,7427,235, +5,547,69633,6919,Anchorage,7427,235, +5,548,70145,6919,Anchorage,7481,235, +5,549,70145,6919,Anchorage,7481,235, +5,550,70145,6919,Anchorage,7481,235, +5,551,70145,6919,Anchorage,7481,235, +5,552,70657,6919,Anchorage,7535,235, +5,553,70657,6919,Anchorage,7535,235, +5,554,70657,6919,Anchorage,7535,235, +5,555,70657,6919,Anchorage,7535,235, +5,556,71169,6919,Anchorage,7589,235, +5,557,71169,6919,Anchorage,7589,235, +5,558,71169,6919,Anchorage,7589,235, +5,559,71169,6919,Anchorage,7589,235, +5,560,71681,6919,Anchorage,7643,235, +5,561,71681,6919,Anchorage,7643,235, +5,562,71681,6919,Anchorage,7643,235, +5,563,71681,6919,Anchorage,7643,235, +5,564,72193,6919,Anchorage,7697,235, +5,565,72193,6919,Anchorage,7697,235, +5,566,72193,6919,Anchorage,7697,235, +5,567,72193,6919,Anchorage,7697,235, +5,568,72705,6919,Anchorage,7751,235, +5,569,72705,6919,Anchorage,7751,235, +5,570,72705,6919,Anchorage,7751,235, +5,571,72705,6919,Anchorage,7751,235, +5,572,73217,6919,Anchorage,7805,235, +5,573,73217,6919,Anchorage,7805,235, +5,574,73217,6919,Anchorage,7805,235, +5,575,73217,6919,Anchorage,7805,235, +5,576,73729,6919,Anchorage,7859,235, +5,577,73729,6919,Anchorage,7859,235, +5,578,73729,6919,Anchorage,7859,235, +5,579,73729,6919,Anchorage,7859,235, +5,580,74241,6919,Anchorage,7913,235, +5,581,74241,6919,Anchorage,7913,235, +5,582,74241,6919,Anchorage,7913,235, +5,583,74241,6919,Anchorage,7913,235, +5,584,74753,6919,Anchorage,7967,235, +5,585,74753,6919,Anchorage,7967,235, +5,586,74753,6919,Anchorage,7967,235, +5,587,74753,6919,Anchorage,7967,235, +5,588,75265,6919,Anchorage,8021,235, +5,589,75265,6919,Anchorage,8021,235, +5,590,75265,6919,Anchorage,8021,235, +5,591,75265,6919,Anchorage,8021,235, +5,592,75777,6919,Anchorage,8075,235, +5,593,75777,6919,Anchorage,8075,235, +5,594,75777,6919,Anchorage,8075,235, +5,595,75777,6919,Anchorage,8075,235, +5,596,76289,6919,Anchorage,8129,235, +5,597,76289,6919,Anchorage,8129,235, +5,598,76289,6919,Anchorage,8129,235, +5,599,76289,6919,Anchorage,8129,235, +5,600,76801,6919,Anchorage,8183,235, +5,601,76801,6919,Anchorage,8183,235, +5,602,76801,6919,Anchorage,8183,235, +5,603,76801,6919,Anchorage,8183,235, +5,604,77313,6919,Anchorage,8237,235, +5,605,77313,6919,Anchorage,8237,235, +5,606,77313,6919,Anchorage,8237,235, +5,607,77313,6919,Anchorage,8237,235, +5,608,77825,6919,Anchorage,8291,235, +5,609,77825,6919,Anchorage,8291,235, +5,610,77825,6919,Anchorage,8291,235, +5,611,77825,6919,Anchorage,8291,235, +5,612,78337,6919,Anchorage,8345,235, +5,613,78337,6919,Anchorage,8345,235, +5,614,78337,6919,Anchorage,8345,235, +5,615,78337,6919,Anchorage,8345,235, +5,616,78849,6919,Anchorage,8399,235, +5,617,78849,6919,Anchorage,8399,235, +5,618,78849,6919,Anchorage,8399,235, +5,619,78849,6919,Anchorage,8399,235, +5,620,79361,6919,Anchorage,8453,235, +5,621,79361,6919,Anchorage,8453,235, +5,622,79361,6919,Anchorage,8453,235, +5,623,79361,6919,Anchorage,8453,235, +5,624,79873,6919,Anchorage,8507,235, +5,625,79873,6919,Anchorage,8507,235, +5,626,79873,6919,Anchorage,8507,235, +5,627,79873,6919,Anchorage,8507,235, +5,628,80385,6919,Anchorage,8561,235, +5,629,80385,6919,Anchorage,8561,235, +5,630,80385,6919,Anchorage,8561,235, +5,631,80385,6919,Anchorage,8561,235, +5,632,80897,6919,Anchorage,8614,235, +5,633,80897,6919,Anchorage,8614,235, +5,634,80897,6919,Anchorage,8614,235, +5,635,80897,6919,Anchorage,8614,235, +5,636,81409,6919,Anchorage,8667,235, +5,637,81409,6919,Anchorage,8667,235, +5,638,81409,6919,Anchorage,8667,235, +5,639,81409,6919,Anchorage,8667,235, +5,640,81921,6919,Anchorage,8720,235, +5,641,81921,6919,Anchorage,8720,235, +5,642,81921,6919,Anchorage,8720,235, +5,643,81921,6919,Anchorage,8720,235, +5,644,82433,6919,Anchorage,8773,235, +5,645,82433,6919,Anchorage,8773,235, +5,646,82433,6919,Anchorage,8773,235, +5,647,82433,6919,Anchorage,8773,235, +5,648,82945,6919,Anchorage,8826,235, +5,649,82945,6919,Anchorage,8826,235, +5,650,82945,6919,Anchorage,8826,235, +5,651,82945,6919,Anchorage,8826,235, +5,652,83457,6919,Anchorage,8879,235, +5,653,83457,6919,Anchorage,8879,235, +5,654,83457,6919,Anchorage,8879,235, +5,655,83457,6919,Anchorage,8879,235, +5,656,83969,6919,Anchorage,8932,235, +5,657,83969,6919,Anchorage,8932,235, +5,658,83969,6919,Anchorage,8932,235, +5,659,83969,6919,Anchorage,8932,235, +5,660,84481,6919,Anchorage,8985,235, +5,661,84481,6919,Anchorage,8985,235, +5,662,84481,6919,Anchorage,8985,235, +5,663,84481,6919,Anchorage,8985,235, +5,664,84993,6919,Anchorage,9038,235, +5,665,84993,6919,Anchorage,9038,235, +5,666,84993,6919,Anchorage,9038,235, +5,667,84993,6919,Anchorage,9038,235, +5,668,85505,6919,Anchorage,9090,235, +5,669,85505,6919,Anchorage,9090,235, +5,670,85505,6919,Anchorage,9090,235, +5,671,85505,6919,Anchorage,9090,235, +5,672,86017,6919,Anchorage,9142,235, +5,673,86017,6919,Anchorage,9142,235, +5,674,86017,6919,Anchorage,9142,235, +5,675,86017,6919,Anchorage,9142,235, +5,676,86529,6919,Anchorage,9194,235, +5,677,86529,6919,Anchorage,9194,235, +5,678,86529,6919,Anchorage,9194,235, +5,679,86529,6919,Anchorage,9194,235, +5,680,87041,6919,Anchorage,9246,235, +5,681,87041,6919,Anchorage,9246,235, +5,682,87041,6919,Anchorage,9246,235, +5,683,87041,6919,Anchorage,9246,235, +5,684,87553,6919,Anchorage,9298,235, +5,685,87553,6919,Anchorage,9298,235, +5,686,87553,6919,Anchorage,9298,235, +5,687,87553,6919,Anchorage,9298,235, +5,688,88065,6919,Anchorage,9350,235, +5,689,88065,6919,Anchorage,9350,235, +5,690,88065,6919,Anchorage,9350,235, +5,691,88065,6919,Anchorage,9350,235, +5,692,88577,6919,Anchorage,9402,235, +5,693,88577,6919,Anchorage,9402,235, +5,694,88577,6919,Anchorage,9402,235, +5,695,88577,6919,Anchorage,9402,235, +5,696,89089,6919,Anchorage,9454,235, +5,697,89089,6919,Anchorage,9454,235, +5,698,89089,6919,Anchorage,9454,235, +5,699,89089,6919,Anchorage,9454,235, +5,700,89601,6919,Anchorage,9506,235, +5,701,89601,6919,Anchorage,9506,235, +5,702,89601,6919,Anchorage,9506,235, +5,703,89601,6919,Anchorage,9506,235, +5,704,90113,6919,Anchorage,9557,235, +5,705,90113,6919,Anchorage,9557,235, +5,706,90113,6919,Anchorage,9557,235, +5,707,90113,6919,Anchorage,9557,235, +5,708,90625,6919,Anchorage,9608,235, +5,709,90625,6919,Anchorage,9608,235, +5,710,90625,6919,Anchorage,9608,235, +5,711,90625,6919,Anchorage,9608,235, +5,712,91137,6919,Anchorage,9659,235, +5,713,91137,6919,Anchorage,9659,235, +5,714,91137,6919,Anchorage,9659,235, +5,715,91137,6919,Anchorage,9659,235, +5,716,91649,6919,Anchorage,9710,235, +5,717,91649,6919,Anchorage,9710,235, +5,718,91649,6919,Anchorage,9710,235, +5,719,91649,6919,Anchorage,9710,235, +5,720,92161,6919,Anchorage,9761,235, +5,721,92161,6919,Anchorage,9761,235, +5,722,92161,6919,Anchorage,9761,235, +5,723,92161,6919,Anchorage,9761,235, +5,724,92673,3471,Honolulu,2,235, +5,725,92673,3471,Honolulu,2,235, +5,726,92673,3471,Honolulu,2,235, +5,727,92673,3471,Honolulu,2,235, +5,728,93185,3471,Honolulu,5,235, +5,729,93185,3471,Honolulu,5,235, +5,730,93185,3471,Honolulu,5,235, +5,731,93185,3471,Honolulu,5,235, +5,732,93697,3471,Honolulu,12,235, +5,733,93697,3471,Honolulu,12,235, +5,734,93697,3471,Honolulu,12,235, +5,735,93697,3471,Honolulu,12,235, +5,736,94209,3471,Honolulu,22,235, +5,737,94209,3471,Honolulu,22,235, +5,738,94209,3471,Honolulu,22,235, +5,739,94209,3471,Honolulu,22,235, +5,740,94721,3471,Honolulu,36,235, +5,741,94721,3471,Honolulu,36,235, +5,742,94721,3471,Honolulu,36,235, +5,743,94721,3471,Honolulu,36,235, +5,744,95233,3471,Honolulu,54,235, +5,745,95233,3471,Honolulu,54,235, +5,746,95233,3471,Honolulu,54,235, +5,747,95233,3471,Honolulu,54,235, +5,748,95745,3471,Honolulu,75,235, +5,749,95745,3471,Honolulu,75,235, +5,750,95745,3471,Honolulu,75,235, +5,751,95745,3471,Honolulu,75,235, +5,752,96257,3471,Honolulu,100,235, +5,753,96257,3471,Honolulu,100,235, +5,754,96257,3471,Honolulu,100,235, +5,755,96257,3471,Honolulu,100,235, +5,756,96769,3471,Honolulu,129,235, +5,757,96769,3471,Honolulu,129,235, +5,758,96769,3471,Honolulu,129,235, +5,759,96769,3471,Honolulu,129,235, +5,760,97281,3471,Honolulu,161,235, +5,761,97281,3471,Honolulu,161,235, +5,762,97281,3471,Honolulu,161,235, +5,763,97281,3471,Honolulu,161,235, +5,764,97793,3471,Honolulu,197,235, +5,765,97793,3471,Honolulu,197,235, +5,766,97793,3471,Honolulu,197,235, +5,767,97793,3471,Honolulu,197,235, +5,768,98305,3471,Honolulu,237,235, +5,769,98305,3471,Honolulu,237,235, +5,770,98305,3471,Honolulu,237,235, +5,771,98305,3471,Honolulu,237,235, +5,772,98817,3471,Honolulu,281,235, +5,773,98817,3471,Honolulu,281,235, +5,774,98817,3471,Honolulu,281,235, +5,775,98817,3471,Honolulu,281,235, +5,776,99329,3471,Honolulu,328,235, +5,777,99329,3471,Honolulu,328,235, +5,778,99329,3471,Honolulu,328,235, +5,779,99329,3471,Honolulu,328,235, +5,780,99841,3471,Honolulu,378,235, +5,781,99841,3471,Honolulu,378,235, +5,782,99841,3471,Honolulu,378,235, +5,783,99841,3471,Honolulu,378,235, +5,784,100353,3471,Honolulu,429,235, +5,785,100353,3471,Honolulu,429,235, +5,786,100353,3471,Honolulu,429,235, +5,787,100353,3471,Honolulu,429,235, +5,788,100865,3471,Honolulu,480,235, +5,789,100865,3471,Honolulu,480,235, +5,790,100865,3471,Honolulu,480,235, +5,791,100865,3471,Honolulu,480,235, +5,792,101377,3471,Honolulu,531,235, +5,793,101377,3471,Honolulu,531,235, +5,794,101377,3471,Honolulu,531,235, +5,795,101377,3471,Honolulu,531,235, +5,796,101889,3471,Honolulu,583,235, +5,797,101889,3471,Honolulu,583,235, +5,798,101889,3471,Honolulu,583,235, +5,799,101889,3471,Honolulu,583,235, +5,800,102401,3471,Honolulu,635,235, +5,801,102401,3471,Honolulu,635,235, +5,802,102401,3471,Honolulu,635,235, +5,803,102401,3471,Honolulu,635,235, +5,804,102913,3471,Honolulu,688,235, +5,805,102913,3471,Honolulu,688,235, +5,806,102913,3471,Honolulu,688,235, +5,807,102913,3471,Honolulu,688,235, +5,808,103425,3471,Honolulu,741,235, +5,809,103425,3471,Honolulu,741,235, +5,810,103425,3471,Honolulu,741,235, +5,811,103425,3471,Honolulu,741,235, +5,812,103937,3471,Honolulu,794,235, +5,813,103937,3471,Honolulu,794,235, +5,814,103937,3471,Honolulu,794,235, +5,815,103937,3471,Honolulu,794,235, +5,816,104449,3471,Honolulu,848,235, +5,817,104449,3471,Honolulu,848,235, +5,818,104449,3471,Honolulu,848,235, +5,819,104449,3471,Honolulu,848,235, +5,820,104961,3471,Honolulu,902,235, +5,821,104961,3471,Honolulu,902,235, +5,822,104961,3471,Honolulu,902,235, +5,823,104961,3471,Honolulu,902,235, +5,824,105473,3471,Honolulu,957,235, +5,825,105473,3471,Honolulu,957,235, +5,826,105473,3471,Honolulu,957,235, +5,827,105473,3471,Honolulu,957,235, +5,828,105985,3471,Honolulu,1012,235, +5,829,105985,3471,Honolulu,1012,235, +5,830,105985,3471,Honolulu,1012,235, +5,831,105985,3471,Honolulu,1012,235, +5,832,106497,3471,Honolulu,1067,235, +5,833,106497,3471,Honolulu,1067,235, +5,834,106497,3471,Honolulu,1067,235, +5,835,106497,3471,Honolulu,1067,235, +5,836,107009,3471,Honolulu,1123,235, +5,837,107009,3471,Honolulu,1123,235, +5,838,107009,3471,Honolulu,1123,235, +5,839,107009,3471,Honolulu,1123,235, +5,840,107521,3471,Honolulu,1179,235, +5,841,107521,3471,Honolulu,1179,235, +5,842,107521,3471,Honolulu,1179,235, +5,843,107521,3471,Honolulu,1179,235, +5,844,108033,3471,Honolulu,1236,235, +5,845,108033,3471,Honolulu,1236,235, +5,846,108033,3471,Honolulu,1236,235, +5,847,108033,3471,Honolulu,1236,235, +5,848,108545,3471,Honolulu,1293,235, +5,849,108545,3471,Honolulu,1293,235, +5,850,108545,3471,Honolulu,1293,235, +5,851,108545,3471,Honolulu,1293,235, +5,852,109057,3471,Honolulu,1350,235, +5,853,109057,3471,Honolulu,1350,235, +5,854,109057,3471,Honolulu,1350,235, +5,855,109057,3471,Honolulu,1350,235, +5,856,109569,3471,Honolulu,1408,235, +5,857,109569,3471,Honolulu,1408,235, +5,858,109569,3471,Honolulu,1408,235, +5,859,109569,3471,Honolulu,1408,235, +5,860,110081,3471,Honolulu,1466,235, +5,861,110081,3471,Honolulu,1466,235, +5,862,110081,3471,Honolulu,1466,235, +5,863,110081,3471,Honolulu,1466,235, +5,864,110593,3471,Honolulu,1525,235, +5,865,110593,3471,Honolulu,1525,235, +5,866,110593,3471,Honolulu,1525,235, +5,867,110593,3471,Honolulu,1525,235, +5,868,111105,3471,Honolulu,1584,235, +5,869,111105,3471,Honolulu,1584,235, +5,870,111105,3471,Honolulu,1584,235, +5,871,111105,3471,Honolulu,1584,235, +5,872,111617,3471,Honolulu,1644,235, +5,873,111617,3471,Honolulu,1644,235, +5,874,111617,3471,Honolulu,1644,235, +5,875,111617,3471,Honolulu,1644,235, +5,876,112129,3471,Honolulu,1704,235, +5,877,112129,3471,Honolulu,1704,235, +5,878,112129,3471,Honolulu,1704,235, +5,879,112129,3471,Honolulu,1704,235, +5,880,112641,3471,Honolulu,1764,235, +5,881,112641,3471,Honolulu,1764,235, +5,882,112641,3471,Honolulu,1764,235, +5,883,112641,3471,Honolulu,1764,235, +5,884,113153,3471,Honolulu,1825,235, +5,885,113153,3471,Honolulu,1825,235, +5,886,113153,3471,Honolulu,1825,235, +5,887,113153,3471,Honolulu,1825,235, +5,888,113665,3471,Honolulu,1886,235, +5,889,113665,3471,Honolulu,1886,235, +5,890,113665,3471,Honolulu,1886,235, +5,891,113665,3471,Honolulu,1886,235, +5,892,114177,3471,Honolulu,1947,235, +5,893,114177,3471,Honolulu,1947,235, +5,894,114177,3471,Honolulu,1947,235, +5,895,114177,3471,Honolulu,1947,235, +5,896,114689,3471,Honolulu,2009,235, +5,897,114689,3471,Honolulu,2009,235, +5,898,114689,3471,Honolulu,2009,235, +5,899,114689,3471,Honolulu,2009,235, +5,900,115201,3471,Honolulu,2071,235, +5,901,115201,3471,Honolulu,2071,235, +5,902,115201,3471,Honolulu,2071,235, +5,903,115201,3471,Honolulu,2071,235, +5,904,115713,3471,Honolulu,2133,235, +5,905,115713,3471,Honolulu,2133,235, +5,906,115713,3471,Honolulu,2133,235, +5,907,115713,3471,Honolulu,2133,235, +5,908,116225,3471,Honolulu,2196,235, +5,909,116225,3471,Honolulu,2196,235, +5,910,116225,3471,Honolulu,2196,235, +5,911,116225,3471,Honolulu,2196,235, +5,912,116737,3471,Honolulu,2259,235, +5,913,116737,3471,Honolulu,2259,235, +5,914,116737,3471,Honolulu,2259,235, +5,915,116737,3471,Honolulu,2259,235, +5,916,117249,3471,Honolulu,2322,235, +5,917,117249,3471,Honolulu,2322,235, +5,918,117249,3471,Honolulu,2322,235, +5,919,117249,3471,Honolulu,2322,235, +5,920,117761,3471,Honolulu,2386,235, +5,921,117761,3471,Honolulu,2386,235, +5,922,117761,3471,Honolulu,2386,235, +5,923,117761,3471,Honolulu,2386,235, +5,924,118273,3471,Honolulu,2450,235, +5,925,118273,3471,Honolulu,2450,235, +5,926,118273,3471,Honolulu,2450,235, +5,927,118273,3471,Honolulu,2450,235, +5,928,118785,3471,Honolulu,2514,235, +5,929,118785,3471,Honolulu,2514,235, +5,930,118785,3471,Honolulu,2514,235, +5,931,118785,3471,Honolulu,2514,235, +5,932,119297,3471,Honolulu,2579,235, +5,933,119297,3471,Honolulu,2579,235, +5,934,119297,3471,Honolulu,2579,235, +5,935,119297,3471,Honolulu,2579,235, +5,936,119809,3471,Honolulu,2644,235, +5,937,119809,3471,Honolulu,2644,235, +5,938,119809,3471,Honolulu,2644,235, +5,939,119809,3471,Honolulu,2644,235, +5,940,120321,3471,Honolulu,2709,235, +5,941,120321,3471,Honolulu,2709,235, +5,942,120321,3471,Honolulu,2709,235, +5,943,120321,3471,Honolulu,2709,235, +5,944,120833,3471,Honolulu,2774,235, +5,945,120833,3471,Honolulu,2774,235, +5,946,120833,3471,Honolulu,2774,235, +5,947,120833,3471,Honolulu,2774,235, +5,948,121345,3471,Honolulu,2836,235, +5,949,121345,3471,Honolulu,2836,235, +5,950,121345,3471,Honolulu,2836,235, +5,951,121345,3471,Honolulu,2836,235, +5,952,121857,3208,Atafu Village,3,223, +5,953,121857,3208,Atafu Village,3,223, +5,954,121857,3208,Atafu Village,3,223, +5,955,121857,3208,Atafu Village,3,223, +5,956,122369,3208,Atafu Village,6,223, +5,957,122369,3208,Atafu Village,6,223, +5,958,122369,3208,Atafu Village,6,223, +5,959,122369,3208,Atafu Village,6,223, +5,960,122881,3208,Atafu Village,11,223, +5,961,122881,3208,Atafu Village,11,223, +5,962,122881,3208,Atafu Village,11,223, +5,963,122881,3208,Atafu Village,11,223, +5,964,123393,3208,Atafu Village,18,223, +5,965,123393,3208,Atafu Village,18,223, +5,966,123393,3208,Atafu Village,18,223, +5,967,123393,3208,Atafu Village,18,223, +5,968,123905,3208,Atafu Village,27,223, +5,969,123905,3208,Atafu Village,27,223, +5,970,123905,3208,Atafu Village,27,223, +5,971,123905,3208,Atafu Village,27,223, +5,972,124417,3208,Atafu Village,38,223, +5,973,124417,3208,Atafu Village,38,223, +5,974,124417,3208,Atafu Village,38,223, +5,975,124417,3208,Atafu Village,38,223, +5,976,124929,3208,Atafu Village,51,223, +5,977,124929,3208,Atafu Village,51,223, +5,978,124929,3208,Atafu Village,51,223, +5,979,124929,3208,Atafu Village,51,223, +5,980,125441,3208,Atafu Village,66,223, +5,981,125441,3208,Atafu Village,66,223, +5,982,125441,3208,Atafu Village,66,223, +5,983,125441,3208,Atafu Village,66,223, +5,984,125953,3208,Atafu Village,83,223, +5,985,125953,3208,Atafu Village,83,223, +5,986,125953,3208,Atafu Village,83,223, +5,987,125953,3208,Atafu Village,83,223, +5,988,126465,3208,Atafu Village,102,223, +5,989,126465,3208,Atafu Village,102,223, +5,990,126465,3208,Atafu Village,102,223, +5,991,126465,3208,Atafu Village,102,223, +5,992,126977,3208,Atafu Village,123,223, +5,993,126977,3208,Atafu Village,123,223, +5,994,126977,3208,Atafu Village,123,223, +5,995,126977,3208,Atafu Village,123,223, +5,996,127489,3208,Atafu Village,146,223, +5,997,127489,3208,Atafu Village,146,223, +5,998,127489,3208,Atafu Village,146,223, +5,999,127489,3208,Atafu Village,146,223, +5,1000,128001,3208,Atafu Village,171,223, +5,1001,128001,3208,Atafu Village,171,223, +5,1002,128001,3208,Atafu Village,171,223, +5,1003,128001,3208,Atafu Village,171,223, +5,1004,128513,3208,Atafu Village,195,223, +5,1005,128513,3208,Atafu Village,195,223, +5,1006,128513,3208,Atafu Village,195,223, +5,1007,128513,3208,Atafu Village,195,223, +5,1008,129025,3208,Atafu Village,219,223, +5,1009,129025,3208,Atafu Village,219,223, +5,1010,129025,3208,Atafu Village,219,223, +5,1011,129025,3208,Atafu Village,219,223, +5,1012,129537,3208,Atafu Village,242,223, +5,1013,129537,3208,Atafu Village,242,223, +5,1014,129537,3208,Atafu Village,242,223, +5,1015,129537,3208,Atafu Village,242,223, +5,1016,130049,3208,Atafu Village,264,223, +5,1017,130049,3208,Atafu Village,264,223, +5,1018,130049,3208,Atafu Village,264,223, +5,1019,130049,3208,Atafu Village,264,223, +5,1020,130561,3208,Atafu Village,286,223, +5,1021,130561,3208,Atafu Village,286,223, +5,1022,130561,3208,Atafu Village,286,223, +5,1023,130561,3208,Atafu Village,286,223, +5,1024,131073,3208,Atafu Village,307,223, +5,1025,131073,3208,Atafu Village,307,223, +5,1026,131073,3208,Atafu Village,307,223, +5,1027,131073,3208,Atafu Village,307,223, +5,1028,131585,3208,Atafu Village,327,223, +5,1029,131585,3208,Atafu Village,327,223, +5,1030,131585,3208,Atafu Village,327,223, +5,1031,131585,3208,Atafu Village,327,223, +5,1032,132097,3208,Atafu Village,347,223, +5,1033,132097,3208,Atafu Village,347,223, +5,1034,132097,3208,Atafu Village,347,223, +5,1035,132097,3208,Atafu Village,347,223, +5,1036,132609,3208,Atafu Village,366,223, +5,1037,132609,3208,Atafu Village,366,223, +5,1038,132609,3208,Atafu Village,366,223, +5,1039,132609,3208,Atafu Village,366,223, +5,1040,133121,3208,Atafu Village,384,223, +5,1041,133121,3208,Atafu Village,384,223, +5,1042,133121,3208,Atafu Village,384,223, +5,1043,133121,3208,Atafu Village,384,223, +5,1044,133633,3208,Atafu Village,402,223, +5,1045,133633,3208,Atafu Village,402,223, +5,1046,133633,3208,Atafu Village,402,223, +5,1047,133633,3208,Atafu Village,402,223, +5,1048,134145,3208,Atafu Village,419,223, +5,1049,134145,3208,Atafu Village,419,223, +5,1050,134145,3208,Atafu Village,419,223, +5,1051,134145,3208,Atafu Village,419,223, +5,1052,134657,3208,Atafu Village,435,223, +5,1053,134657,3208,Atafu Village,435,223, +5,1054,134657,3208,Atafu Village,435,223, +5,1055,134657,3208,Atafu Village,435,223, +5,1056,135169,3208,Atafu Village,451,223, +5,1057,135169,3208,Atafu Village,451,223, +5,1058,135169,3208,Atafu Village,451,223, +5,1059,135169,3208,Atafu Village,451,223, +5,1060,135681,3208,Atafu Village,465,223, +5,1061,135681,3208,Atafu Village,465,223, +5,1062,135681,3208,Atafu Village,465,223, +5,1063,135681,3208,Atafu Village,465,223, +5,1064,136193,3610,Mata-Utu,3,245, +5,1065,136193,3610,Mata-Utu,3,245, +5,1066,136193,3610,Mata-Utu,3,245, +5,1067,136193,3610,Mata-Utu,3,245, +5,1068,136705,3610,Mata-Utu,6,245, +5,1069,136705,3610,Mata-Utu,6,245, +5,1070,136705,3610,Mata-Utu,6,245, +5,1071,136705,3610,Mata-Utu,6,245, +5,1072,137217,3610,Mata-Utu,10,245, +5,1073,137217,3610,Mata-Utu,10,245, +5,1074,137217,3610,Mata-Utu,10,245, +5,1075,137217,3610,Mata-Utu,10,245, +5,1076,137729,3610,Mata-Utu,15,245, +5,1077,137729,3610,Mata-Utu,15,245, +5,1078,137729,3610,Mata-Utu,15,245, +5,1079,137729,3610,Mata-Utu,15,245, +5,1080,138241,3610,Mata-Utu,20,245, +5,1081,138241,3610,Mata-Utu,20,245, +5,1082,138241,3610,Mata-Utu,20,245, +5,1083,138241,3610,Mata-Utu,20,245, +5,1084,138753,3610,Mata-Utu,27,245, +5,1085,138753,3610,Mata-Utu,27,245, +5,1086,138753,3610,Mata-Utu,27,245, +5,1087,138753,3610,Mata-Utu,27,245, +5,1088,139265,3609,Leava,4,245, +5,1089,139265,3609,Leava,4,245, +5,1090,139265,3609,Leava,4,245, +5,1091,139265,3609,Leava,4,245, +5,1092,139777,3609,Leava,6,245, +5,1093,139777,3609,Leava,6,245, +5,1094,139777,3609,Leava,6,245, +5,1095,139777,3609,Leava,6,245, +5,1096,140289,3609,Leava,8,245, +5,1097,140289,3609,Leava,8,245, +5,1098,140289,3609,Leava,8,245, +5,1099,140289,3609,Leava,8,245, +5,1100,140801,3609,Leava,11,245, +5,1101,140801,3609,Leava,11,245, +5,1102,140801,3609,Leava,11,245, +5,1103,140801,3609,Leava,11,245, +5,1104,141313,3609,Leava,14,245, +5,1105,141313,3609,Leava,14,245, +5,1106,141313,3609,Leava,14,245, +5,1107,141313,3609,Leava,14,245, +5,1108,141825,3609,Leava,17,245, +5,1109,141825,3609,Leava,17,245, +5,1110,141825,3609,Leava,17,245, +5,1111,141825,3609,Leava,17,245, +5,1112,142337,3609,Leava,20,245, +5,1113,142337,3609,Leava,20,245, +5,1114,142337,3609,Leava,20,245, +5,1115,142337,3609,Leava,20,245, +5,1116,142849,3609,Leava,22,245, +5,1117,142849,3609,Leava,22,245, +5,1118,142849,3609,Leava,22,245, +5,1119,142849,3609,Leava,22,245, +5,1120,143361,3609,Leava,24,245, +5,1121,143361,3609,Leava,24,245, +5,1122,143361,3609,Leava,24,245, +5,1123,143361,3609,Leava,24,245, +5,1124,143873,3611,Alo,10,245, +5,1125,143873,3611,Alo,10,245, +5,1126,143873,3611,Alo,10,245, +5,1127,143873,3611,Alo,10,245, +5,1128,144385,3253,Nuku‘alofa,1,224, +5,1129,144385,3253,Nuku‘alofa,1,224, +5,1130,144385,3253,Nuku‘alofa,1,224, +5,1131,144385,3253,Nuku‘alofa,1,224, +5,1132,144897,3253,Nuku‘alofa,5,224, +5,1133,144897,3253,Nuku‘alofa,5,224, +5,1134,144897,3253,Nuku‘alofa,5,224, +5,1135,144897,3253,Nuku‘alofa,5,224, +5,1136,145409,3253,Nuku‘alofa,10,224, +5,1137,145409,3253,Nuku‘alofa,10,224, +5,1138,145409,3253,Nuku‘alofa,10,224, +5,1139,145409,3253,Nuku‘alofa,10,224, +5,1140,145921,3253,Nuku‘alofa,17,224, +5,1141,145921,3253,Nuku‘alofa,17,224, +5,1142,145921,3253,Nuku‘alofa,17,224, +5,1143,145921,3253,Nuku‘alofa,17,224, +5,1144,146433,3253,Nuku‘alofa,25,224, +5,1145,146433,3253,Nuku‘alofa,25,224, +5,1146,146433,3253,Nuku‘alofa,25,224, +5,1147,146433,3253,Nuku‘alofa,25,224, +5,1148,146945,3253,Nuku‘alofa,33,224, +5,1149,146945,3253,Nuku‘alofa,33,224, +5,1150,146945,3253,Nuku‘alofa,33,224, +5,1151,146945,3253,Nuku‘alofa,33,224, +5,1152,147457,3253,Nuku‘alofa,40,224, +5,1153,147457,3253,Nuku‘alofa,40,224, +5,1154,147457,3253,Nuku‘alofa,40,224, +5,1155,147457,3253,Nuku‘alofa,40,224, +5,1156,147969,3253,Nuku‘alofa,46,224, +5,1157,147969,3253,Nuku‘alofa,46,224, +5,1158,147969,3253,Nuku‘alofa,46,224, +5,1159,147969,3253,Nuku‘alofa,46,224, +5,1160,148481,3253,Nuku‘alofa,52,224, +5,1161,148481,3253,Nuku‘alofa,52,224, +5,1162,148481,3253,Nuku‘alofa,52,224, +5,1163,148481,3253,Nuku‘alofa,52,224, +5,1164,148993,3253,Nuku‘alofa,57,224, +5,1165,148993,3253,Nuku‘alofa,57,224, +5,1166,148993,3253,Nuku‘alofa,57,224, +5,1167,148993,3253,Nuku‘alofa,57,224, +5,1168,149505,3253,Nuku‘alofa,61,224, +5,1169,149505,3253,Nuku‘alofa,61,224, +5,1170,149505,3253,Nuku‘alofa,61,224, +5,1171,149505,3253,Nuku‘alofa,61,224, +5,1172,150017,3253,Nuku‘alofa,64,224, +5,1173,150017,3253,Nuku‘alofa,64,224, +5,1174,150017,3253,Nuku‘alofa,64,224, +5,1175,150017,3253,Nuku‘alofa,64,224, +5,1176,150529,3253,Nuku‘alofa,67,224, +5,1177,150529,3253,Nuku‘alofa,67,224, +5,1178,150529,3253,Nuku‘alofa,67,224, +5,1179,150529,3253,Nuku‘alofa,67,224, +5,1180,151041,3252,‘Ohonua,73,224, +5,1181,151041,3252,‘Ohonua,73,224, +5,1182,151041,3252,‘Ohonua,73,224, +5,1183,151041,3252,‘Ohonua,73,224, +5,1184,151553,3252,‘Ohonua,89,224, +5,1185,151553,3252,‘Ohonua,89,224, +5,1186,151553,3252,‘Ohonua,89,224, +5,1187,151553,3252,‘Ohonua,89,224, +5,1188,152065,3252,‘Ohonua,105,224, +5,1189,152065,3252,‘Ohonua,105,224, +5,1190,152065,3252,‘Ohonua,105,224, +5,1191,152065,3252,‘Ohonua,105,224, +5,1192,152577,3252,‘Ohonua,121,224, +5,1193,152577,3252,‘Ohonua,121,224, +5,1194,152577,3252,‘Ohonua,121,224, +5,1195,152577,3252,‘Ohonua,121,224, +5,1196,153089,3252,‘Ohonua,138,224, +5,1197,153089,3252,‘Ohonua,138,224, +5,1198,153089,3252,‘Ohonua,138,224, +5,1199,153089,3252,‘Ohonua,138,224, +5,1200,153601,3252,‘Ohonua,155,224, +5,1201,153601,3252,‘Ohonua,155,224, +5,1202,153601,3252,‘Ohonua,155,224, +5,1203,153601,3252,‘Ohonua,155,224, +5,1204,154113,3252,‘Ohonua,173,224, +5,1205,154113,3252,‘Ohonua,173,224, +5,1206,154113,3252,‘Ohonua,173,224, +5,1207,154113,3252,‘Ohonua,173,224, +5,1208,154625,3252,‘Ohonua,191,224, +5,1209,154625,3252,‘Ohonua,191,224, +5,1210,154625,3252,‘Ohonua,191,224, +5,1211,154625,3252,‘Ohonua,191,224, +5,1212,155137,3252,‘Ohonua,209,224, +5,1213,155137,3252,‘Ohonua,209,224, +5,1214,155137,3252,‘Ohonua,209,224, +5,1215,155137,3252,‘Ohonua,209,224, +5,1216,155649,3252,‘Ohonua,227,224, +5,1217,155649,3252,‘Ohonua,227,224, +5,1218,155649,3252,‘Ohonua,227,224, +5,1219,155649,3252,‘Ohonua,227,224, +5,1220,156161,2317,Waitangi,2,155, +5,1221,156161,2317,Waitangi,2,155, +5,1222,156161,2317,Waitangi,2,155, +5,1223,156161,2317,Waitangi,2,155, +5,1224,156673,2317,Waitangi,7,155, +5,1225,156673,2317,Waitangi,7,155, +5,1226,156673,2317,Waitangi,7,155, +5,1227,156673,2317,Waitangi,7,155, +5,1228,157185,2317,Waitangi,24,155, +5,1229,157185,2317,Waitangi,24,155, +5,1230,157185,2317,Waitangi,24,155, +5,1231,157185,2317,Waitangi,24,155, +5,1232,157697,2317,Waitangi,43,155, +5,1233,157697,2317,Waitangi,43,155, +5,1234,157697,2317,Waitangi,43,155, +5,1235,157697,2317,Waitangi,43,155, +5,1236,158209,2317,Waitangi,63,155, +5,1237,158209,2317,Waitangi,63,155, +5,1238,158209,2317,Waitangi,63,155, +5,1239,158209,2317,Waitangi,63,155, +5,1240,158721,2317,Waitangi,84,155, +5,1241,158721,2317,Waitangi,84,155, +5,1242,158721,2317,Waitangi,84,155, +5,1243,158721,2317,Waitangi,84,155, +5,1244,159233,2317,Waitangi,106,155, +5,1245,159233,2317,Waitangi,106,155, +5,1246,159233,2317,Waitangi,106,155, +5,1247,159233,2317,Waitangi,106,155, +5,1248,159745,2317,Waitangi,129,155, +5,1249,159745,2317,Waitangi,129,155, +5,1250,159745,2317,Waitangi,129,155, +5,1251,159745,2317,Waitangi,129,155, +5,1252,160257,2317,Waitangi,153,155, +5,1253,160257,2317,Waitangi,153,155, +5,1254,160257,2317,Waitangi,153,155, +5,1255,160257,2317,Waitangi,153,155, +5,1256,160769,2317,Waitangi,178,155, +5,1257,160769,2317,Waitangi,178,155, +5,1258,160769,2317,Waitangi,178,155, +5,1259,160769,2317,Waitangi,178,155, +5,1260,161281,2317,Waitangi,204,155, +5,1261,161281,2317,Waitangi,204,155, +5,1262,161281,2317,Waitangi,204,155, +5,1263,161281,2317,Waitangi,204,155, +5,1264,161793,2317,Waitangi,231,155, +5,1265,161793,2317,Waitangi,231,155, +5,1266,161793,2317,Waitangi,231,155, +5,1267,161793,2317,Waitangi,231,155, +5,1268,162305,2317,Waitangi,259,155, +5,1269,162305,2317,Waitangi,259,155, +5,1270,162305,2317,Waitangi,259,155, +5,1271,162305,2317,Waitangi,259,155, +5,1272,162817,2317,Waitangi,288,155, +5,1273,162817,2317,Waitangi,288,155, +5,1274,162817,2317,Waitangi,288,155, +5,1275,162817,2317,Waitangi,288,155, +5,1276,163329,2317,Waitangi,319,155, +5,1277,163329,2317,Waitangi,319,155, +5,1278,163329,2317,Waitangi,319,155, +5,1279,163329,2317,Waitangi,319,155, +5,1280,163841,2317,Waitangi,351,155, +5,1281,163841,2317,Waitangi,351,155, +5,1282,163841,2317,Waitangi,351,155, +5,1283,163841,2317,Waitangi,351,155, +5,1284,164353,2317,Waitangi,384,155, +5,1285,164353,2317,Waitangi,384,155, +5,1286,164353,2317,Waitangi,384,155, +5,1287,164353,2317,Waitangi,384,155, +5,1288,164865,2317,Waitangi,418,155, +5,1289,164865,2317,Waitangi,418,155, +5,1290,164865,2317,Waitangi,418,155, +5,1291,164865,2317,Waitangi,418,155, +5,1292,165377,2317,Waitangi,453,155, +5,1293,165377,2317,Waitangi,453,155, +5,1294,165377,2317,Waitangi,453,155, +5,1295,165377,2317,Waitangi,453,155, +5,1296,165889,2317,Waitangi,489,155, +5,1297,165889,2317,Waitangi,489,155, +5,1298,165889,2317,Waitangi,489,155, +5,1299,165889,2317,Waitangi,489,155, +5,1300,166401,2317,Waitangi,526,155, +5,1301,166401,2317,Waitangi,526,155, +5,1302,166401,2317,Waitangi,526,155, +5,1303,166401,2317,Waitangi,526,155, +5,1304,166913,2317,Waitangi,564,155, +5,1305,166913,2317,Waitangi,564,155, +5,1306,166913,2317,Waitangi,564,155, +5,1307,166913,2317,Waitangi,564,155, +5,1308,167425,2317,Waitangi,603,155, +5,1309,167425,2317,Waitangi,603,155, +5,1310,167425,2317,Waitangi,603,155, +5,1311,167425,2317,Waitangi,603,155, +5,1312,167937,2317,Waitangi,643,155, +5,1313,167937,2317,Waitangi,643,155, +5,1314,167937,2317,Waitangi,643,155, +5,1315,167937,2317,Waitangi,643,155, +5,1316,168449,2317,Waitangi,683,155, +5,1317,168449,2317,Waitangi,683,155, +5,1318,168449,2317,Waitangi,683,155, +5,1319,168449,2317,Waitangi,683,155, +5,1320,168961,2317,Waitangi,724,155, +5,1321,168961,2317,Waitangi,724,155, +5,1322,168961,2317,Waitangi,724,155, +5,1323,168961,2317,Waitangi,724,155, +5,1324,169473,2317,Waitangi,766,155, +5,1325,169473,2317,Waitangi,766,155, +5,1326,169473,2317,Waitangi,766,155, +5,1327,169473,2317,Waitangi,766,155, +5,1328,169985,2317,Waitangi,809,155, +5,1329,169985,2317,Waitangi,809,155, +5,1330,169985,2317,Waitangi,809,155, +5,1331,169985,2317,Waitangi,809,155, +5,1332,170497,2317,Waitangi,853,155, +5,1333,170497,2317,Waitangi,853,155, +5,1334,170497,2317,Waitangi,853,155, +5,1335,170497,2317,Waitangi,853,155, +5,1336,171009,2317,Waitangi,899,155, +5,1337,171009,2317,Waitangi,899,155, +5,1338,171009,2317,Waitangi,899,155, +5,1339,171009,2317,Waitangi,899,155, +5,1340,171521,2317,Waitangi,945,155, +5,1341,171521,2317,Waitangi,945,155, +5,1342,171521,2317,Waitangi,945,155, +5,1343,171521,2317,Waitangi,945,155, +5,1344,172033,2317,Waitangi,992,155, +5,1345,172033,2317,Waitangi,992,155, +5,1346,172033,2317,Waitangi,992,155, +5,1347,172033,2317,Waitangi,992,155, +5,1348,172545,2317,Waitangi,1039,155, +5,1349,172545,2317,Waitangi,1039,155, +5,1350,172545,2317,Waitangi,1039,155, +5,1351,172545,2317,Waitangi,1039,155, +5,1352,173057,2317,Waitangi,1086,155, +5,1353,173057,2317,Waitangi,1086,155, +5,1354,173057,2317,Waitangi,1086,155, +5,1355,173057,2317,Waitangi,1086,155, +5,1356,173569,2317,Waitangi,1133,155, +5,1357,173569,2317,Waitangi,1133,155, +5,1358,173569,2317,Waitangi,1133,155, +5,1359,173569,2317,Waitangi,1133,155, +5,1360,174081,2317,Waitangi,1181,155, +5,1361,174081,2317,Waitangi,1181,155, +5,1362,174081,2317,Waitangi,1181,155, +5,1363,174081,2317,Waitangi,1181,155, +5,1364,174593,2317,Waitangi,1229,155, +5,1365,174593,2317,Waitangi,1229,155, +5,1366,174593,2317,Waitangi,1229,155, +5,1367,174593,2317,Waitangi,1229,155, +5,1368,175105,2317,Waitangi,1277,155, +5,1369,175105,2317,Waitangi,1277,155, +5,1370,175105,2317,Waitangi,1277,155, +5,1371,175105,2317,Waitangi,1277,155, +5,1372,175617,2317,Waitangi,1325,155, +5,1373,175617,2317,Waitangi,1325,155, +5,1374,175617,2317,Waitangi,1325,155, +5,1375,175617,2317,Waitangi,1325,155, +5,1376,176129,2317,Waitangi,1374,155, +5,1377,176129,2317,Waitangi,1374,155, +5,1378,176129,2317,Waitangi,1374,155, +5,1379,176129,2317,Waitangi,1374,155, +5,1380,176641,2317,Waitangi,1423,155, +5,1381,176641,2317,Waitangi,1423,155, +5,1382,176641,2317,Waitangi,1423,155, +5,1383,176641,2317,Waitangi,1423,155, +5,1384,177153,2317,Waitangi,1472,155, +5,1385,177153,2317,Waitangi,1472,155, +5,1386,177153,2317,Waitangi,1472,155, +5,1387,177153,2317,Waitangi,1472,155, +5,1388,177665,2317,Waitangi,1521,155, +5,1389,177665,2317,Waitangi,1521,155, +5,1390,177665,2317,Waitangi,1521,155, +5,1391,177665,2317,Waitangi,1521,155, +5,1392,178177,2317,Waitangi,1571,155, +5,1393,178177,2317,Waitangi,1571,155, +5,1394,178177,2317,Waitangi,1571,155, +5,1395,178177,2317,Waitangi,1571,155, +5,1396,178689,2317,Waitangi,1621,155, +5,1397,178689,2317,Waitangi,1621,155, +5,1398,178689,2317,Waitangi,1621,155, +5,1399,178689,2317,Waitangi,1621,155, +5,1400,179201,2317,Waitangi,1671,155, +5,1401,179201,2317,Waitangi,1671,155, +5,1402,179201,2317,Waitangi,1671,155, +5,1403,179201,2317,Waitangi,1671,155, +5,1404,179713,2317,Waitangi,1721,155, +5,1405,179713,2317,Waitangi,1721,155, +5,1406,179713,2317,Waitangi,1721,155, +5,1407,179713,2317,Waitangi,1721,155, +5,1408,180225,2317,Waitangi,1772,155, +5,1409,180225,2317,Waitangi,1772,155, +5,1410,180225,2317,Waitangi,1772,155, +5,1411,180225,2317,Waitangi,1772,155, +5,1412,180737,2317,Waitangi,1823,155, +5,1413,180737,2317,Waitangi,1823,155, +5,1414,180737,2317,Waitangi,1823,155, +5,1415,180737,2317,Waitangi,1823,155, +5,1416,181249,2317,Waitangi,1874,155, +5,1417,181249,2317,Waitangi,1874,155, +5,1418,181249,2317,Waitangi,1874,155, +5,1419,181249,2317,Waitangi,1874,155, +5,1420,181761,2317,Waitangi,1925,155, +5,1421,181761,2317,Waitangi,1925,155, +5,1422,181761,2317,Waitangi,1925,155, +5,1423,181761,2317,Waitangi,1925,155, +5,1424,182273,2317,Waitangi,1977,155, +5,1425,182273,2317,Waitangi,1977,155, +5,1426,182273,2317,Waitangi,1977,155, +5,1427,182273,2317,Waitangi,1977,155, +5,1428,182785,2317,Waitangi,2029,155, +5,1429,182785,2317,Waitangi,2029,155, +5,1430,182785,2317,Waitangi,2029,155, +5,1431,182785,2317,Waitangi,2029,155, +5,1432,183297,2317,Waitangi,2081,155, +5,1433,183297,2317,Waitangi,2081,155, +5,1434,183297,2317,Waitangi,2081,155, +5,1435,183297,2317,Waitangi,2081,155, +5,1436,183809,2317,Waitangi,2133,155, +5,1437,183809,2317,Waitangi,2133,155, +5,1438,183809,2317,Waitangi,2133,155, +5,1439,183809,2317,Waitangi,2133,155, +5,1440,184321,2317,Waitangi,2185,155, +5,1441,184321,2317,Waitangi,2185,155, +5,1442,184321,2317,Waitangi,2185,155, +5,1443,184321,2317,Waitangi,2185,155, +5,1444,184833,2317,Waitangi,2238,155, +5,1445,184833,2317,Waitangi,2238,155, +5,1446,184833,2317,Waitangi,2238,155, +5,1447,184833,2317,Waitangi,2238,155, +5,1448,185345,2317,Waitangi,2291,155, +5,1449,185345,2317,Waitangi,2291,155, +5,1450,185345,2317,Waitangi,2291,155, +5,1451,185345,2317,Waitangi,2291,155, +5,1452,185857,2317,Waitangi,2344,155, +5,1453,185857,2317,Waitangi,2344,155, +5,1454,185857,2317,Waitangi,2344,155, +5,1455,185857,2317,Waitangi,2344,155, +5,1456,186369,2317,Waitangi,2397,155, +5,1457,186369,2317,Waitangi,2397,155, +5,1458,186369,2317,Waitangi,2397,155, +5,1459,186369,2317,Waitangi,2397,155, +5,1460,186881,2317,Waitangi,2450,155, +5,1461,186881,2317,Waitangi,2450,155, +5,1462,186881,2317,Waitangi,2450,155, +5,1463,186881,2317,Waitangi,2450,155, +5,1464,187393,2317,Waitangi,2504,155, +5,1465,187393,2317,Waitangi,2504,155, +5,1466,187393,2317,Waitangi,2504,155, +5,1467,187393,2317,Waitangi,2504,155, +5,1468,187905,2317,Waitangi,2558,155, +5,1469,187905,2317,Waitangi,2558,155, +5,1470,187905,2317,Waitangi,2558,155, +5,1471,187905,2317,Waitangi,2558,155, +5,1472,188417,2317,Waitangi,2612,155, +5,1473,188417,2317,Waitangi,2612,155, +5,1474,188417,2317,Waitangi,2612,155, +5,1475,188417,2317,Waitangi,2612,155, +5,1476,188929,2317,Waitangi,2666,155, +5,1477,188929,2317,Waitangi,2666,155, +5,1478,188929,2317,Waitangi,2666,155, +5,1479,188929,2317,Waitangi,2666,155, +5,1480,189441,2317,Waitangi,2720,155, +5,1481,189441,2317,Waitangi,2720,155, +5,1482,189441,2317,Waitangi,2720,155, +5,1483,189441,2317,Waitangi,2720,155, +5,1484,189953,2317,Waitangi,2775,155, +5,1485,189953,2317,Waitangi,2775,155, +5,1486,189953,2317,Waitangi,2775,155, +5,1487,189953,2317,Waitangi,2775,155, +5,1488,190465,2317,Waitangi,2830,155, +5,1489,190465,2317,Waitangi,2830,155, +5,1490,190465,2317,Waitangi,2830,155, +5,1491,190465,2317,Waitangi,2830,155, +5,1492,190977,2317,Waitangi,2885,155, +5,1493,190977,2317,Waitangi,2885,155, +5,1494,190977,2317,Waitangi,2885,155, +5,1495,190977,2317,Waitangi,2885,155, +5,1496,191489,2317,Waitangi,2940,155, +5,1497,191489,2317,Waitangi,2940,155, +5,1498,191489,2317,Waitangi,2940,155, +5,1499,191489,2317,Waitangi,2940,155, +5,1500,192001,2317,Waitangi,2995,155, +5,1501,192001,2317,Waitangi,2995,155, +5,1502,192001,2317,Waitangi,2995,155, +5,1503,192001,2317,Waitangi,2995,155, +5,1504,192513,2317,Waitangi,3050,155, +5,1505,192513,2317,Waitangi,3050,155, +5,1506,192513,2317,Waitangi,3050,155, +5,1507,192513,2317,Waitangi,3050,155, +5,1508,193025,2317,Waitangi,3106,155, +5,1509,193025,2317,Waitangi,3106,155, +5,1510,193025,2317,Waitangi,3106,155, +5,1511,193025,2317,Waitangi,3106,155, +5,1512,193537,2317,Waitangi,3162,155, +5,1513,193537,2317,Waitangi,3162,155, +5,1514,193537,2317,Waitangi,3162,155, +5,1515,193537,2317,Waitangi,3162,155, +5,1516,194049,2317,Waitangi,3218,155, +5,1517,194049,2317,Waitangi,3218,155, +5,1518,194049,2317,Waitangi,3218,155, +5,1519,194049,2317,Waitangi,3218,155, +5,1520,194561,2317,Waitangi,3274,155, +5,1521,194561,2317,Waitangi,3274,155, +5,1522,194561,2317,Waitangi,3274,155, +5,1523,194561,2317,Waitangi,3274,155, +5,1524,195073,2317,Waitangi,3330,155, +5,1525,195073,2317,Waitangi,3330,155, +5,1526,195073,2317,Waitangi,3330,155, +5,1527,195073,2317,Waitangi,3330,155, +5,1528,195585,2317,Waitangi,3386,155, +5,1529,195585,2317,Waitangi,3386,155, +5,1530,195585,2317,Waitangi,3386,155, +5,1531,195585,2317,Waitangi,3386,155, +5,1532,196097,2317,Waitangi,3443,155, +5,1533,196097,2317,Waitangi,3443,155, +5,1534,196097,2317,Waitangi,3443,155, +5,1535,196097,2317,Waitangi,3443,155, +5,1536,196609,2317,Waitangi,3500,155, +5,1537,196609,2317,Waitangi,3500,155, +5,1538,196609,2317,Waitangi,3500,155, +5,1539,196609,2317,Waitangi,3500,155, +5,1540,197121,2317,Waitangi,3557,155, +5,1541,197121,2317,Waitangi,3557,155, +5,1542,197121,2317,Waitangi,3557,155, +5,1543,197121,2317,Waitangi,3557,155, +5,1544,197633,2317,Waitangi,3614,155, +5,1545,197633,2317,Waitangi,3614,155, +5,1546,197633,2317,Waitangi,3614,155, +5,1547,197633,2317,Waitangi,3614,155, +5,1548,198145,2317,Waitangi,3671,155, +5,1549,198145,2317,Waitangi,3671,155, +5,1550,198145,2317,Waitangi,3671,155, +5,1551,198145,2317,Waitangi,3671,155, +5,1552,198657,2317,Waitangi,3728,155, +5,1553,198657,2317,Waitangi,3728,155, +5,1554,198657,2317,Waitangi,3728,155, +5,1555,198657,2317,Waitangi,3728,155, +5,1556,199169,2317,Waitangi,3786,155, +5,1557,199169,2317,Waitangi,3786,155, +5,1558,199169,2317,Waitangi,3786,155, +5,1559,199169,2317,Waitangi,3786,155, +5,1560,199681,2317,Waitangi,3844,155, +5,1561,199681,2317,Waitangi,3844,155, +5,1562,199681,2317,Waitangi,3844,155, +5,1563,199681,2317,Waitangi,3844,155, +5,1564,200193,2317,Waitangi,3902,155, +5,1565,200193,2317,Waitangi,3902,155, +5,1566,200193,2317,Waitangi,3902,155, +5,1567,200193,2317,Waitangi,3902,155, +5,1568,200705,2317,Waitangi,3960,155, +5,1569,200705,2317,Waitangi,3960,155, +5,1570,200705,2317,Waitangi,3960,155, +5,1571,200705,2317,Waitangi,3960,155, +5,1572,201217,2317,Waitangi,4018,155, +5,1573,201217,2317,Waitangi,4018,155, +5,1574,201217,2317,Waitangi,4018,155, +5,1575,201217,2317,Waitangi,4018,155, +5,1576,201729,2317,Waitangi,4076,155, +5,1577,201729,2317,Waitangi,4076,155, +5,1578,201729,2317,Waitangi,4076,155, +5,1579,201729,2317,Waitangi,4076,155, +5,1580,202241,2317,Waitangi,4134,155, +5,1581,202241,2317,Waitangi,4134,155, +5,1582,202241,2317,Waitangi,4134,155, +5,1583,202241,2317,Waitangi,4134,155, +5,1584,202753,2317,Waitangi,4193,155, +5,1585,202753,2317,Waitangi,4193,155, +5,1586,202753,2317,Waitangi,4193,155, +5,1587,202753,2317,Waitangi,4193,155, +5,1588,203265,2317,Waitangi,4252,155, +5,1589,203265,2317,Waitangi,4252,155, +5,1590,203265,2317,Waitangi,4252,155, +5,1591,203265,2317,Waitangi,4252,155, +5,1592,203777,2317,Waitangi,4311,155, +5,1593,203777,2317,Waitangi,4311,155, +5,1594,203777,2317,Waitangi,4311,155, +5,1595,203777,2317,Waitangi,4311,155, +5,1596,204289,2317,Waitangi,4370,155, +5,1597,204289,2317,Waitangi,4370,155, +5,1598,204289,2317,Waitangi,4370,155, +5,1599,204289,2317,Waitangi,4370,155, +5,1600,204801,2317,Waitangi,4429,155, +5,1601,204801,2317,Waitangi,4429,155, +5,1602,204801,2317,Waitangi,4429,155, +5,1603,204801,2317,Waitangi,4429,155, +5,1604,205313,2317,Waitangi,4488,155, +5,1605,205313,2317,Waitangi,4488,155, +5,1606,205313,2317,Waitangi,4488,155, +5,1607,205313,2317,Waitangi,4488,155, +5,1608,205825,2317,Waitangi,4547,155, +5,1609,205825,2317,Waitangi,4547,155, +5,1610,205825,2317,Waitangi,4547,155, +5,1611,205825,2317,Waitangi,4547,155, +5,1612,206337,2317,Waitangi,4607,155, +5,1613,206337,2317,Waitangi,4607,155, +5,1614,206337,2317,Waitangi,4607,155, +5,1615,206337,2317,Waitangi,4607,155, +5,1616,206849,2317,Waitangi,4667,155, +5,1617,206849,2317,Waitangi,4667,155, +5,1618,206849,2317,Waitangi,4667,155, +5,1619,206849,2317,Waitangi,4667,155, +5,1620,207361,2317,Waitangi,4727,155, +5,1621,207361,2317,Waitangi,4727,155, +5,1622,207361,2317,Waitangi,4727,155, +5,1623,207361,2317,Waitangi,4727,155, +5,1624,207873,2317,Waitangi,4787,155, +5,1625,207873,2317,Waitangi,4787,155, +5,1626,207873,2317,Waitangi,4787,155, +5,1627,207873,2317,Waitangi,4787,155, +5,1628,208385,2317,Waitangi,4847,155, +5,1629,208385,2317,Waitangi,4847,155, +5,1630,208385,2317,Waitangi,4847,155, +5,1631,208385,2317,Waitangi,4847,155, +5,1632,208897,2317,Waitangi,4907,155, +5,1633,208897,2317,Waitangi,4907,155, +5,1634,208897,2317,Waitangi,4907,155, +5,1635,208897,2317,Waitangi,4907,155, +5,1636,209409,2317,Waitangi,4967,155, +5,1637,209409,2317,Waitangi,4967,155, +5,1638,209409,2317,Waitangi,4967,155, +5,1639,209409,2317,Waitangi,4967,155, +5,1640,209921,2317,Waitangi,5027,155, +5,1641,209921,2317,Waitangi,5027,155, +5,1642,209921,2317,Waitangi,5027,155, +5,1643,209921,2317,Waitangi,5027,155, +5,1644,210433,2317,Waitangi,5088,155, +5,1645,210433,2317,Waitangi,5088,155, +5,1646,210433,2317,Waitangi,5088,155, +5,1647,210433,2317,Waitangi,5088,155, +5,1648,210945,2317,Waitangi,5149,155, +5,1649,210945,2317,Waitangi,5149,155, +5,1650,210945,2317,Waitangi,5149,155, +5,1651,210945,2317,Waitangi,5149,155, +5,1652,211457,2317,Waitangi,5210,155, +5,1653,211457,2317,Waitangi,5210,155, +5,1654,211457,2317,Waitangi,5210,155, +5,1655,211457,2317,Waitangi,5210,155, +5,1656,211969,2317,Waitangi,5271,155, +5,1657,211969,2317,Waitangi,5271,155, +5,1658,211969,2317,Waitangi,5271,155, +5,1659,211969,2317,Waitangi,5271,155, +5,1660,212481,2317,Waitangi,5332,155, +5,1661,212481,2317,Waitangi,5332,155, +5,1662,212481,2317,Waitangi,5332,155, +5,1663,212481,2317,Waitangi,5332,155, +5,1664,212993,2317,Waitangi,5393,155, +5,1665,212993,2317,Waitangi,5393,155, +5,1666,212993,2317,Waitangi,5393,155, +5,1667,212993,2317,Waitangi,5393,155, +5,1668,213505,2317,Waitangi,5454,155, +5,1669,213505,2317,Waitangi,5454,155, +5,1670,213505,2317,Waitangi,5454,155, +5,1671,213505,2317,Waitangi,5454,155, +5,1672,214017,2317,Waitangi,5515,155, +5,1673,214017,2317,Waitangi,5515,155, +5,1674,214017,2317,Waitangi,5515,155, +5,1675,214017,2317,Waitangi,5515,155, +5,1676,214529,2317,Waitangi,5576,155, +5,1677,214529,2317,Waitangi,5576,155, +5,1678,214529,2317,Waitangi,5576,155, +5,1679,214529,2317,Waitangi,5576,155, +5,1680,215041,2317,Waitangi,5638,155, +5,1681,215041,2317,Waitangi,5638,155, +5,1682,215041,2317,Waitangi,5638,155, +5,1683,215041,2317,Waitangi,5638,155, +5,1684,215553,2317,Waitangi,5700,155, +5,1685,215553,2317,Waitangi,5700,155, +5,1686,215553,2317,Waitangi,5700,155, +5,1687,215553,2317,Waitangi,5700,155, +5,1688,216065,2317,Waitangi,5762,155, +5,1689,216065,2317,Waitangi,5762,155, +5,1690,216065,2317,Waitangi,5762,155, +5,1691,216065,2317,Waitangi,5762,155, +5,1692,216577,2317,Waitangi,5824,155, +5,1693,216577,2317,Waitangi,5824,155, +5,1694,216577,2317,Waitangi,5824,155, +5,1695,216577,2317,Waitangi,5824,155, +5,1696,217089,2317,Waitangi,5886,155, +5,1697,217089,2317,Waitangi,5886,155, +5,1698,217089,2317,Waitangi,5886,155, +5,1699,217089,2317,Waitangi,5886,155, +5,1700,217601,2317,Waitangi,5948,155, +5,1701,217601,2317,Waitangi,5948,155, +5,1702,217601,2317,Waitangi,5948,155, +5,1703,217601,2317,Waitangi,5948,155, +5,1704,218113,2317,Waitangi,6010,155, +5,1705,218113,2317,Waitangi,6010,155, +5,1706,218113,2317,Waitangi,6010,155, +5,1707,218113,2317,Waitangi,6010,155, +5,1708,218625,2317,Waitangi,6072,155, +5,1709,218625,2317,Waitangi,6072,155, +5,1710,218625,2317,Waitangi,6072,155, +5,1711,218625,2317,Waitangi,6072,155, +5,1712,219137,2317,Waitangi,6134,155, +5,1713,219137,2317,Waitangi,6134,155, +5,1714,219137,2317,Waitangi,6134,155, +5,1715,219137,2317,Waitangi,6134,155, +5,1716,219649,2317,Waitangi,6197,155, +5,1717,219649,2317,Waitangi,6197,155, +5,1718,219649,2317,Waitangi,6197,155, +5,1719,219649,2317,Waitangi,6197,155, +5,1720,220161,2317,Waitangi,6260,155, +5,1721,220161,2317,Waitangi,6260,155, +5,1722,220161,2317,Waitangi,6260,155, +5,1723,220161,2317,Waitangi,6260,155, +5,1724,220673,2317,Waitangi,6323,155, +5,1725,220673,2317,Waitangi,6323,155, +5,1726,220673,2317,Waitangi,6323,155, +5,1727,220673,2317,Waitangi,6323,155, +5,1728,221185,2317,Waitangi,6386,155, +5,1729,221185,2317,Waitangi,6386,155, +5,1730,221185,2317,Waitangi,6386,155, +5,1731,221185,2317,Waitangi,6386,155, +5,1732,221697,2317,Waitangi,6449,155, +5,1733,221697,2317,Waitangi,6449,155, +5,1734,221697,2317,Waitangi,6449,155, +5,1735,221697,2317,Waitangi,6449,155, +5,1736,222209,2317,Waitangi,6512,155, +5,1737,222209,2317,Waitangi,6512,155, +5,1738,222209,2317,Waitangi,6512,155, +5,1739,222209,2317,Waitangi,6512,155, +5,1740,222721,2317,Waitangi,6575,155, +5,1741,222721,2317,Waitangi,6575,155, +5,1742,222721,2317,Waitangi,6575,155, +5,1743,222721,2317,Waitangi,6575,155, +5,1744,223233,2317,Waitangi,6638,155, +5,1745,223233,2317,Waitangi,6638,155, +5,1746,223233,2317,Waitangi,6638,155, +5,1747,223233,2317,Waitangi,6638,155, +5,1748,223745,2317,Waitangi,6701,155, +5,1749,223745,2317,Waitangi,6701,155, +5,1750,223745,2317,Waitangi,6701,155, +5,1751,223745,2317,Waitangi,6701,155, +5,1752,224257,2317,Waitangi,6764,155, +5,1753,224257,2317,Waitangi,6764,155, +5,1754,224257,2317,Waitangi,6764,155, +5,1755,224257,2317,Waitangi,6764,155, +5,1756,224769,2317,Waitangi,6827,155, +5,1757,224769,2317,Waitangi,6827,155, +5,1758,224769,2317,Waitangi,6827,155, +5,1759,224769,2317,Waitangi,6827,155, +5,1760,225281,2317,Waitangi,6890,155, +5,1761,225281,2317,Waitangi,6890,155, +5,1762,225281,2317,Waitangi,6890,155, +5,1763,225281,2317,Waitangi,6890,155, +5,1764,225793,2317,Waitangi,6954,155, +5,1765,225793,2317,Waitangi,6954,155, +5,1766,225793,2317,Waitangi,6954,155, +5,1767,225793,2317,Waitangi,6954,155, +5,1768,226305,2317,Waitangi,7018,155, +5,1769,226305,2317,Waitangi,7018,155, +5,1770,226305,2317,Waitangi,7018,155, +5,1771,226305,2317,Waitangi,7018,155, +5,1772,226817,2317,Waitangi,7082,155, +5,1773,226817,2317,Waitangi,7082,155, +5,1774,226817,2317,Waitangi,7082,155, +5,1775,226817,2317,Waitangi,7082,155, +5,1776,227329,2317,Waitangi,7146,155, +5,1777,227329,2317,Waitangi,7146,155, +5,1778,227329,2317,Waitangi,7146,155, +5,1779,227329,2317,Waitangi,7146,155, +5,1780,227841,2317,Waitangi,7210,155, +5,1781,227841,2317,Waitangi,7210,155, +5,1782,227841,2317,Waitangi,7210,155, +5,1783,227841,2317,Waitangi,7210,155, +5,1784,228353,2317,Waitangi,7274,155, +5,1785,228353,2317,Waitangi,7274,155, +5,1786,228353,2317,Waitangi,7274,155, +5,1787,228353,2317,Waitangi,7274,155, +5,1788,228865,2317,Waitangi,7338,155, +5,1789,228865,2317,Waitangi,7338,155, +5,1790,228865,2317,Waitangi,7338,155, +5,1791,228865,2317,Waitangi,7338,155, +5,1792,229377,2317,Waitangi,7402,155, +5,1793,229377,2317,Waitangi,7402,155, +5,1794,229377,2317,Waitangi,7402,155, +5,1795,229377,2317,Waitangi,7402,155, +5,1796,229889,2317,Waitangi,7466,155, +5,1797,229889,2317,Waitangi,7466,155, +5,1798,229889,2317,Waitangi,7466,155, +5,1799,229889,2317,Waitangi,7466,155, +5,1800,230401,2317,Waitangi,7530,155, +5,1801,230401,2317,Waitangi,7530,155, +5,1802,230401,2317,Waitangi,7530,155, +5,1803,230401,2317,Waitangi,7530,155, +5,1804,230913,2317,Waitangi,7594,155, +5,1805,230913,2317,Waitangi,7594,155, +5,1806,230913,2317,Waitangi,7594,155, +5,1807,230913,2317,Waitangi,7594,155, +5,1808,231425,2317,Waitangi,7658,155, +5,1809,231425,2317,Waitangi,7658,155, +5,1810,231425,2317,Waitangi,7658,155, +5,1811,231425,2317,Waitangi,7658,155, +5,1812,231937,2317,Waitangi,7723,155, +5,1813,231937,2317,Waitangi,7723,155, +5,1814,231937,2317,Waitangi,7723,155, +5,1815,231937,2317,Waitangi,7723,155, +5,1816,232449,2317,Waitangi,7788,155, +5,1817,232449,2317,Waitangi,7788,155, +5,1818,232449,2317,Waitangi,7788,155, +5,1819,232449,2317,Waitangi,7788,155, +5,1820,232961,2317,Waitangi,7853,155, +5,1821,232961,2317,Waitangi,7853,155, +5,1822,232961,2317,Waitangi,7853,155, +5,1823,232961,2317,Waitangi,7853,155, +5,1824,233473,2317,Waitangi,7918,155, +5,1825,233473,2317,Waitangi,7918,155, +5,1826,233473,2317,Waitangi,7918,155, +5,1827,233473,2317,Waitangi,7918,155, +5,1828,233985,2317,Waitangi,7983,155, +5,1829,233985,2317,Waitangi,7983,155, +5,1830,233985,2317,Waitangi,7983,155, +5,1831,233985,2317,Waitangi,7983,155, +5,1832,234497,2317,Waitangi,8048,155, +5,1833,234497,2317,Waitangi,8048,155, +5,1834,234497,2317,Waitangi,8048,155, +5,1835,234497,2317,Waitangi,8048,155, +5,1836,235009,2317,Waitangi,8113,155, +5,1837,235009,2317,Waitangi,8113,155, +5,1838,235009,2317,Waitangi,8113,155, +5,1839,235009,2317,Waitangi,8113,155, +5,1840,235521,2317,Waitangi,8178,155, +5,1841,235521,2317,Waitangi,8178,155, +5,1842,235521,2317,Waitangi,8178,155, +5,1843,235521,2317,Waitangi,8178,155, +5,1844,236033,2317,Waitangi,8243,155, +5,1845,236033,2317,Waitangi,8243,155, +5,1846,236033,2317,Waitangi,8243,155, +5,1847,236033,2317,Waitangi,8243,155, +5,1848,236545,2317,Waitangi,8308,155, +5,1849,236545,2317,Waitangi,8308,155, +5,1850,236545,2317,Waitangi,8308,155, +5,1851,236545,2317,Waitangi,8308,155, +5,1852,237057,2317,Waitangi,8373,155, +5,1853,237057,2317,Waitangi,8373,155, +5,1854,237057,2317,Waitangi,8373,155, +5,1855,237057,2317,Waitangi,8373,155, +5,1856,237569,2317,Waitangi,8438,155, +5,1857,237569,2317,Waitangi,8438,155, +5,1858,237569,2317,Waitangi,8438,155, +5,1859,237569,2317,Waitangi,8438,155, +5,1860,238081,2317,Waitangi,8503,155, +5,1861,238081,2317,Waitangi,8503,155, +5,1862,238081,2317,Waitangi,8503,155, +5,1863,238081,2317,Waitangi,8503,155, +5,1864,238593,2317,Waitangi,8568,155, +5,1865,238593,2317,Waitangi,8568,155, +5,1866,238593,2317,Waitangi,8568,155, +5,1867,238593,2317,Waitangi,8568,155, +5,1868,239105,2317,Waitangi,8633,155, +5,1869,239105,2317,Waitangi,8633,155, +5,1870,239105,2317,Waitangi,8633,155, +5,1871,239105,2317,Waitangi,8633,155, +5,1872,239617,2317,Waitangi,8698,155, +5,1873,239617,2317,Waitangi,8698,155, +5,1874,239617,2317,Waitangi,8698,155, +5,1875,239617,2317,Waitangi,8698,155, +5,1876,240129,2317,Waitangi,8764,155, +5,1877,240129,2317,Waitangi,8764,155, +5,1878,240129,2317,Waitangi,8764,155, +5,1879,240129,2317,Waitangi,8764,155, +5,1880,240641,2317,Waitangi,8830,155, +5,1881,240641,2317,Waitangi,8830,155, +5,1882,240641,2317,Waitangi,8830,155, +5,1883,240641,2317,Waitangi,8830,155, +5,1884,241153,2317,Waitangi,8896,155, +5,1885,241153,2317,Waitangi,8896,155, +5,1886,241153,2317,Waitangi,8896,155, +5,1887,241153,2317,Waitangi,8896,155, +5,1888,241665,2317,Waitangi,8962,155, +5,1889,241665,2317,Waitangi,8962,155, +5,1890,241665,2317,Waitangi,8962,155, +5,1891,241665,2317,Waitangi,8962,155, +5,1892,242177,2317,Waitangi,9028,155, +5,1893,242177,2317,Waitangi,9028,155, +5,1894,242177,2317,Waitangi,9028,155, +5,1895,242177,2317,Waitangi,9028,155, +5,1896,242689,2317,Waitangi,9094,155, +5,1897,242689,2317,Waitangi,9094,155, +5,1898,242689,2317,Waitangi,9094,155, +5,1899,242689,2317,Waitangi,9094,155, +5,1900,243201,2317,Waitangi,9160,155, +5,1901,243201,2317,Waitangi,9160,155, +5,1902,243201,2317,Waitangi,9160,155, +5,1903,243201,2317,Waitangi,9160,155, +5,1904,243713,2317,Waitangi,9226,155, +5,1905,243713,2317,Waitangi,9226,155, +5,1906,243713,2317,Waitangi,9226,155, +5,1907,243713,2317,Waitangi,9226,155, +5,1908,244225,2317,Waitangi,9292,155, +5,1909,244225,2317,Waitangi,9292,155, +5,1910,244225,2317,Waitangi,9292,155, +5,1911,244225,2317,Waitangi,9292,155, +5,1912,244737,2317,Waitangi,9358,155, +5,1913,244737,2317,Waitangi,9358,155, +5,1914,244737,2317,Waitangi,9358,155, +5,1915,244737,2317,Waitangi,9358,155, +5,1916,245249,2317,Waitangi,9424,155, +5,1917,245249,2317,Waitangi,9424,155, +5,1918,245249,2317,Waitangi,9424,155, +5,1919,245249,2317,Waitangi,9424,155, +5,1920,245761,2317,Waitangi,9490,155, +5,1921,245761,2317,Waitangi,9490,155, +5,1922,245761,2317,Waitangi,9490,155, +5,1923,245761,2317,Waitangi,9490,155, +5,1924,246273,2317,Waitangi,9556,155, +5,1925,246273,2317,Waitangi,9556,155, +5,1926,246273,2317,Waitangi,9556,155, +5,1927,246273,2317,Waitangi,9556,155, +5,1928,246785,2317,Waitangi,9622,155, +5,1929,246785,2317,Waitangi,9622,155, +5,1930,246785,2317,Waitangi,9622,155, +5,1931,246785,2317,Waitangi,9622,155, +5,1932,247297,2317,Waitangi,9688,155, +5,1933,247297,2317,Waitangi,9688,155, +5,1934,247297,2317,Waitangi,9688,155, +5,1935,247297,2317,Waitangi,9688,155, +5,1936,247809,2317,Waitangi,9754,155, +5,1937,247809,2317,Waitangi,9754,155, +5,1938,247809,2317,Waitangi,9754,155, +5,1939,247809,2317,Waitangi,9754,155, +5,1940,248321,2317,Waitangi,9820,155, +5,1941,248321,2317,Waitangi,9820,155, +5,1942,248321,2317,Waitangi,9820,155, +5,1943,248321,2317,Waitangi,9820,155, +5,1944,248833,2317,Waitangi,9886,155, +5,1945,248833,2317,Waitangi,9886,155, +5,1946,248833,2317,Waitangi,9886,155, +5,1947,248833,2317,Waitangi,9886,155, +5,1948,249345,2317,Waitangi,9953,155, +5,1949,249345,2317,Waitangi,9953,155, +5,1950,249345,2317,Waitangi,9953,155, +5,1951,249345,2317,Waitangi,9953,155, +5,1952,249857,2317,Waitangi,10020,155, +5,1953,249857,2317,Waitangi,10020,155, +5,1954,249857,2317,Waitangi,10020,155, +5,1955,249857,2317,Waitangi,10020,155, +5,1956,250369,2317,Waitangi,10087,155, +5,1957,250369,2317,Waitangi,10087,155, +5,1958,250369,2317,Waitangi,10087,155, +5,1959,250369,2317,Waitangi,10087,155, +5,1960,250881,2317,Waitangi,10154,155, +5,1961,250881,2317,Waitangi,10154,155, +5,1962,250881,2317,Waitangi,10154,155, +5,1963,250881,2317,Waitangi,10154,155, +5,1964,251393,2317,Waitangi,10221,155, +5,1965,251393,2317,Waitangi,10221,155, +5,1966,251393,2317,Waitangi,10221,155, +5,1967,251393,2317,Waitangi,10221,155, +5,1968,251905,2317,Waitangi,10288,155, +5,1969,251905,2317,Waitangi,10288,155, +5,1970,251905,2317,Waitangi,10288,155, +5,1971,251905,2317,Waitangi,10288,155, +5,1972,252417,2317,Waitangi,10355,155, +5,1973,252417,2317,Waitangi,10355,155, +5,1974,252417,2317,Waitangi,10355,155, +5,1975,252417,2317,Waitangi,10355,155, +5,1976,252929,2317,Waitangi,10422,155, +5,1977,252929,2317,Waitangi,10422,155, +5,1978,252929,2317,Waitangi,10422,155, +5,1979,252929,2317,Waitangi,10422,155, +5,1980,253441,2317,Waitangi,10489,155, +5,1981,253441,2317,Waitangi,10489,155, +5,1982,253441,2317,Waitangi,10489,155, +5,1983,253441,2317,Waitangi,10489,155, +5,1984,253953,2317,Waitangi,10556,155, +5,1985,253953,2317,Waitangi,10556,155, +5,1986,253953,2317,Waitangi,10556,155, +5,1987,253953,2317,Waitangi,10556,155, +5,1988,254465,2317,Waitangi,10623,155, +5,1989,254465,2317,Waitangi,10623,155, +5,1990,254465,2317,Waitangi,10623,155, +5,1991,254465,2317,Waitangi,10623,155, +5,1992,254977,2317,Waitangi,10690,155, +5,1993,254977,2317,Waitangi,10690,155, +5,1994,254977,2317,Waitangi,10690,155, +5,1995,254977,2317,Waitangi,10690,155, +5,1996,255489,2317,Waitangi,10757,155, +5,1997,255489,2317,Waitangi,10757,155, +5,1998,255489,2317,Waitangi,10757,155, +5,1999,255489,2317,Waitangi,10757,155, +5,2000,256001,2317,Waitangi,10824,155, +5,2001,256001,2317,Waitangi,10824,155, +5,2002,256001,2317,Waitangi,10824,155, +5,2003,256001,2317,Waitangi,10824,155, +5,2004,256513,2317,Waitangi,10891,155, +5,2005,256513,2317,Waitangi,10891,155, +5,2006,256513,2317,Waitangi,10891,155, +5,2007,256513,2317,Waitangi,10891,155, +5,2008,257025,2317,Waitangi,10958,155, +5,2009,257025,2317,Waitangi,10958,155, +5,2010,257025,2317,Waitangi,10958,155, +5,2011,257025,2317,Waitangi,10958,155, +5,2012,257537,2317,Waitangi,11025,155, +5,2013,257537,2317,Waitangi,11025,155, +5,2014,257537,2317,Waitangi,11025,155, +5,2015,257537,2317,Waitangi,11025,155, +5,2016,258049,2317,Waitangi,11092,155, +5,2017,258049,2317,Waitangi,11092,155, +5,2018,258049,2317,Waitangi,11092,155, +5,2019,258049,2317,Waitangi,11092,155, +5,2020,258561,2317,Waitangi,11159,155, +5,2021,258561,2317,Waitangi,11159,155, +5,2022,258561,2317,Waitangi,11159,155, +5,2023,258561,2317,Waitangi,11159,155, +5,2024,259073,2317,Waitangi,11226,155, +5,2025,259073,2317,Waitangi,11226,155, +5,2026,259073,2317,Waitangi,11226,155, +5,2027,259073,2317,Waitangi,11226,155, +5,2028,259585,2317,Waitangi,11293,155, +5,2029,259585,2317,Waitangi,11293,155, +5,2030,259585,2317,Waitangi,11293,155, +5,2031,259585,2317,Waitangi,11293,155, +5,2032,260097,2317,Waitangi,11360,155, +5,2033,260097,2317,Waitangi,11360,155, +5,2034,260097,2317,Waitangi,11360,155, +5,2035,260097,2317,Waitangi,11360,155, +5,2036,260609,2317,Waitangi,11427,155, +5,2037,260609,2317,Waitangi,11427,155, diff --git a/src/config/regions.ts b/src/config/regions.ts index 2475e8a..75f053c 100644 --- a/src/config/regions.ts +++ b/src/config/regions.ts @@ -7,16 +7,15 @@ export interface Region { flagId: number; } -export function getRegionForCoordinates(_tileX: number, _tileY: number, _x: number, _y: number): Region { - // TODO: implement region lookup using these coordinates: +export function getRegionForCoordinates(_tileX: number, _tileY: number, _x: number, _y: number): Region | null { + // TODO: implement region lookup using coordinate data + // After running the scraper (scripts/scrape_regions.py) and importing the data, + // you can implement a proper lookup using the Region table or a spatial index. + // // const globalX = tileX * 1000 + x; // const globalY = tileY * 1000 + y; - return { - id: 114_594, - cityId: 4263, - name: "Cupertino", - number: 2, - countryId: 235, - flagId: 235 - }; + // + // For now, return null to avoid showing incorrect region data. + // See scripts/README.md for instructions on scraping and importing region data. + return null; } diff --git a/src/index.ts b/src/index.ts index f353051..533e6c1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,7 @@ import { inspect } from "util"; import admin from "./routes/admin.js"; import alliance from "./routes/alliance.js"; import auth from "./routes/auth.js"; +import experiments from "./routes/experiments.js"; import favoriteLocation from "./routes/favorite-location.js"; import leaderboard from "./routes/leaderboard.js"; import me from "./routes/me.js"; @@ -77,8 +78,20 @@ const __dirname = path.dirname(__filename); const frontendPath = path.join(__dirname, "..", "frontend"); app.use(async (req, res, next) => { - // Skip API routes - if (req.url?.startsWith("/api") || req.url?.startsWith("/auth")) { + // Skip API routes and backend routes + if (req.url?.startsWith("/api") + || req.url?.startsWith("/auth") + || req.url?.startsWith("/s0") + || req.url?.startsWith("/me") + || req.url?.startsWith("/alliance") + || req.url?.startsWith("/leaderboard") + || req.url?.startsWith("/favorite-location") + || req.url?.startsWith("/purchase") + || req.url?.startsWith("/flag") + || req.url?.startsWith("/report-user") + || req.url?.startsWith("/experiments") + || req.url?.startsWith("/moderator") + || req.url?.startsWith("/admin")) { return next?.(); } @@ -122,9 +135,31 @@ app.use(async (req, res, next) => { return next?.(); }); +// Serve admin and moderation HTML pages +app.get("/admin", async (_req, res) => { + try { + const html = await fs.readFile(path.join(frontendPath, "admin.html"), "utf-8"); + return res.setHeader("Content-Type", "text/html").send(html); + } catch (error) { + console.error("Error serving admin.html:", error); + return res.status(404).send("Page not found"); + } +}); + +app.get("/moderation", async (_req, res) => { + try { + const html = await fs.readFile(path.join(frontendPath, "moderation.html"), "utf-8"); + return res.setHeader("Content-Type", "text/html").send(html); + } catch (error) { + console.error("Error serving moderation.html:", error); + return res.status(404).send("Page not found"); + } +}); + admin(app); alliance(app); auth(app); +experiments(app); favoriteLocation(app); leaderboard(app); me(app); diff --git a/src/public/login.html b/src/public/login.html index bc7557e..2199858 100644 --- a/src/public/login.html +++ b/src/public/login.html @@ -3,7 +3,7 @@ - Login - openplace + Login - FurryPlace
                      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 t4IzwkRG?x` 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 z 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�$PplSS%zaku;&edq4SAVEI8~VYdVDmBf>gARat``pjL5&| zaQcH=j$h8h-7fB^jn4KYS7$w`iQO+5-@LzY=1K)O^KW#l6=L1IXSIsKjddv1S4U1? zc+P3@tp_Vi&HabdgZQR2j7px6IsKuOHmNCbzIx^3a>dz+l&0}kqU%fw`Ms^NBw+BH7+$fCqRcYOZTp7gtaRx}{ z`b2@T`S+h@uQ&fJ?c8(hjCCO{1qA)&IgA&;x*;OiLo^2bi2D~r@hGqPh zka>TnHah0=+T#wF#BXJH!6Q8v!TBk;MUfj+^TKZ@ee@2$d9^|Y$h!7R>l;X2KXRk0 z(cYPv{jcr3;pqp@%x@7<#8F1aZ3U~t@4xfQ-}J8dxiqCAi(c=)H6w6xTtnmJucJc5 zA0sgU*~|Lp+wbN24FH&Ovo_zP;Z~C7^WOo{DjzBmi;8Ql>`wMce{8(%_|8EE@m29= zAhq{`GAj}zoqC$1k;}eyc`aRvbD|#KnW8|}h3;x-oa6Qj3)ilCbj}H^j0JBSkEg=W zM~EMUI)&Gc%*dqojdwr0jewFH3L)x0#)Tsd@|mr#yQdQ870ji|j-)gL--_hg!jS!m z{GCS&19jD1ro!A1sJU9FKf;J_0D&&BOY1`wXmU%+P5lKjxa7m^vu}psh0)C1uA3p# z(lYh0@Wp8#HD6y1{3`r<%Hs;;TESs#yWv?+Z?cte%vs}B#=XmMcfD(QXCqTBlo!4Y z1d5TK`8f}G_DM&khd~O0TrT~0^0zmlf(NJeGo4}c%RTE}-?#2Bw=?n0q}J}bHI17w z+fT=*!~q^g1}uo8imwIco2D>R?ezJ}A{xoxb?(~C#`WF#{J!*GS8z|aVr7hW&JCU; z9v9DFx}A8lc}vjqKGIGkESfkydC%y-eY?5Iv9XqL(e|D-fL&|tojW%CCqWUb-x#d| zk%n!$pQ339F@%3GpltnKP7Gj z$$9HRRfM|ZZx((K;6)Ccj(c}OJT#Z*TSY=bsP}n80}LQ(g?r|1p--_t<%_14wstmK zj%tyaWt_;pj9Rcn-RM4z^A4_d%pKBPxJo+%c=6F!f>Ck#>u%F*jtcuOj+%M~QQfsY z*#D#YmM6CvC_U%PZ28#Ayq+@DV!OkunV?3YKzWaM4+D6Q4m$(&^hhx=SMvKBcf%G+ zKJ%xWynXfP*LA*EMccN2Z{}J};oS+3X>}*yEwCdbxBy0|RyQS^jXlCY#F`s-H+6=q zO;(!|`UZ(|D$r1)KX1PQK?OAJ@YO$~qn1aQ361}vcYpRZUyR-l&x=@OFD8YrHl3DV z*zj7>cz=bBVS3(z$A|{`l{H!i%zX6!s`AOJVP5Eak$YTeL5v{lXa#?O*8TD@bI_AQ3pu|K28h`)oePryr5ga2M)i3HgM50WUGf4rFTsGb{p)_PDgl%a zc7YFCvSOR|Q`_xK*YvqpH^ABr4KyY4L?_`_weBa!0f%2*trOWb>E^R5!J2Df*9H_j z!HpuAx0}C?R`-0)p7A<`8$(KWGP1<#*x?LE6r{Aisfl?My7B!>TOYCPOD<745c~*% zOqN!d$o{CO!^oWIMRTr>Xa5*L-Vk#idcA$g6Z`9&#ozhCXj~Ub_wC5_!=nqbJB_bD z*d&kjf0@Xp8$WWx(#-OApJC8vUL3Z{E%cAe<38rtLA*oXG7sr&36iyByOwGir+JTYB&?()HMqW_!5dMlgN-5OaI zJCLo83;LQ{{r2OQUb6A=b-&o=j6KR^V2H6@XdOD_$OA9@GeKfQzj_-I!U9U6l9 zyi1neJl!)D_1IO2i#y?VnJDZEQ&oK>RDQCtuzp=yDHX8DDbi#vo zc4lU%k{Ml%9MpK{`;b0a@fhr^|5~s6!&k*ig6}+wV@15pKzV3g>@SP|0&8g7;SKx< z^=*8mQf@WdUFtvFa_upL&O~%1OAl@avmMLj!4Nhz;qTU8xF@kt7MDgfKHw?P*x!-{ zW>6ay-9*D^^?oD}`GdegfSeanY~RG9*Gz}We0WiH?fzVUv;3O$ge9au6^(V}8_WJ+ zorgxv5tD@B&LdgU-v~r=0=su&Z-W!iwbUo4K2iMZC=Zm_1VExa^(Z{gX<@QVcR*_J zLVqopyNj?ylq_vz1GY2WuO*VzUwh9rL;^BnX8k=D95|yqdjAH|Xnfaf;VdAq^INP+ zzN4p+fvP{%V!S&`gJ@DE>`w9biEdr#^Q>PdBS39~!UixQ=P3B`zf4{|<)f#C@!!`H zc)CoL4?ZR)-N4V|jIQchgD(g#6oXyrgx(8Xn}dU5du5s%StzpTjYQ_i3-c{K*@7<4eJkc`YT(YoHr@=x-?eK z-DgXm&*e4{CeQJiLCb4Q<25Igm3JDjR-#(l3G6HY=TWOTpPyjRYTv0$YE;4zRSh?u z7s{TRkLCGeXgxGq;JbwZ8O!Z#a6xnSDEi{Pwc6&aYXc(Av%B|y50F2F4BRO6oUfLV zz95Rqv?BTtXHl1yeivo?Yf8S31F+OR4JexaDFR~oSRyj_PK3@EZ%(Il@IrwlX2qEo0SOnv6SOe6tdmE4E z*%WX6FuzfE60RXA9?~PyFUi;|qUn zpC_cw*_c**B)C3tmpwW({)U0f3KQj`dXHK*uzT;O#WY;RqkoJHZqv)PLC`t0WHyqf zTOSrs(tRSWe*U43^Ba=mFWJJr8!e_GWnqH(;7>~svCoUY5%3Vv; zy{FZqL6j}3yF{I@?$Fx^xg+u+WQ|x}^fNaZ)1$$A{Wo_75lrP?ASERk4$psZ$ zZ%Q%!O(*R#=Cq8c7^-mR#5dij<`@nM$Y*Igg6irxN{_pr5hbRvp1Kt?`sO^EBr}&& z;}wvz`x#LE9?8M^oG=^<(HtBaoau}5aQ<+Zuo|9+q|@o_+^o&uRV`0=p!7k|)O|A{ z42eISH~I_yFV3a;xGkZhl(0RE0p5(AG|K5v;V*BYg9^T&g(f_cC-8d%_m5+g5d3E0@oY-?QV)NMI+r2ia-6bc^g4RFe)|dH>4_B%C zbewOt@6h^dwyLUNfmGSW)rN$a;Y<(HWa7eIf+(OLAXhCnaMkFM|Koq0BxDN3*?_7? zX~n1ptQCJV@wXyav>8E)!s-{q7o=Y07>Gbw;JWFVBq^QHdMs@7#p9j(FPHbRP+4H? zP>c9);$G>_?!UEgS3TyjFHWGLO>Q|$A48Di1t0|F0C)s8E=DV{2-IAGR9<>;f&iWm zBU%l37<6VM1wEy#2yyx_L4{r*GCBVzz3%g-pdJ*1!61F=n+6veOk_mKN=d)>=aoJm zsV5Cd?5sq*-R~OOJ{GZWvp=VEFoF1P@ZHdPD~XAeMVOU`X!j_E@3Z$1Ga*>#jIMf3 zx#;Q%_3|*E&II98*w)8egHI4QE&!{%$__`y13ey(tZY$Ik$^(}Lzb(Rqu5I+eoVw0 z76ISUR@hwSas{QHG((-vK7;B&_5*30f&X|s4F-uRMKx>M!VeVOqf#E|bg9Fy^Ad7+ z^6UE7rk|mSa?-Xh$|u}3*S*^${)yF`L!bys#q)R0l_Hkj70#i!B|3Xq?5 zW5ceDB@ngRYGu~M;4E2pzG5;ipqvrXliNjbgeYaTt|KPU7SA@WxfIGx4idy1z_rDR9>yG6;H)noW5VY8t-c4cJ{#_cL zh9aUODkPhNi->YV32L-lyl%OnXhO)p#*4&0q{+b_AkjV>l+WnPJEp{fZr&(t9Zhxg zp%6F&YAM`N1|O(I&y4><2i<1X7}_$57RE=-|5q$*`kR9+`fMvGR*;zU4M<>ldf2RM zpvNn1Z8`(e^aA@d5^+|NOlJ-g$~u0sxz8o-Ow}zgDXh&shbdgbpW}~A4OyF-c{co< z`xWnS+S4ZuOK^fqv`QM)wDPvP!r#NzYPyz8C47V}(-`5QVGCdf>I1=IZP0ks(ye4u z3}m?W4m)$Qm}U@Q<=mA$9l#5e@;*&$LF!rt$l}XtRC!PkIw&_fYwCFH9inTBbC>R7 z$g*YSi8$#`dZ}MnbDh-e&lcnaF$yXMc17_Q5t86<%CHMjcPricfmiHoZl~R`4^EPWUE&_rt!u8q?a@d*)snl6LEqv>_a$eX9_=O5@Baou_VG(0Q;J(i9#(P{g3^ci4Xm z()+uQSd2jJfAkAqTs<&b|4H(Yu;|{u7gJ&F)G(;&Z!JV7W$j)nK$?Ok9xBHyUDEyJu7mrwNI&dj)hqhJ1-+wf>)Q`GqxcDVL zJj-eM#4fezR)hU?w^zu{)}@Kzm9Pcz$|U~+-}#Tu0dxMyHG;!U@Y0teSO&7>Cz?k# zixb6?i-n5NjY-^>*MMPVENwI}zQNjrg8~Xa_EdgcXx)yK*fyPQKML&Tj2Kf$u>xen z;?;*A+v@5vplo%r{1c2dxsV+@$8-a`TgO|)PBb09nw!<2uU3NGQWx|XUkR%t*4Qz@ zLMD8E57^Sl?@YV{AO=)OF_nZUcl5k3Wq!-KzNX!_J47@4p}pufttv>>sX;R?Gp~h} zNt%vv;{*M)LyszxfNJH_ve#)N{TU$8p^u|1!oiRnY`*r+D@RL+3DPqv6r;s~EQ*)} z1kOtW#J&rD(IapM5AElmc+phjIy)rY%M34w!F6|J1rt(cJxVllBcFn!JUu>gW{|0Z zb7<6830_)gUEOn0n?K*nXj*P*g?4pu2bWy|QrQ+FFiNF%+}^{-2tzG92PDruT!l0Q zjG;&ceoX{+ft^hh$9&{Ct5Zvv{HrxZF|Zul2PXXE6kk*?tBW zG@7}2Z}s&G`0)hDpj<~lK-tMLQ-Rq>EH|0alx{DIIJFi>pd02@AM+5iKmZZ+lh`yc zGylhFXInKh5Y6KiE!p2AkWx24M@my(0)8X1q}x&TA|Irqs8QalGizefcYf05U%8uS z<9u}gLQ;-9X*c|?UO>~Q?Pdnu*r-NL|B&$H(^8y?Uz&@Mldc8l~q!Gc^S(Dnc8QP&X?UlbY&v-U;J8j>Fo=S4tA7%~h z4D;z+Qo&GD7Zds2%e>22qu)7qYyrIMVb=<@3*Zn13qM{!lgQUs&t!gGf$MdPX(#`? za;AywKmeck0HzkekMcwTN+_wI3b-iAyUdD(5sTRgGzYeA?ra8D)yeD$K9L53hyQ=j zyKf8LTl_k)8y{h16g&jD8n+V&aN7m%7Bd__0f2-G1;<^5w&2WEq!nR6&9h6RAvY(2 zDyD7?@y!=_fs`Z2fL?6K5aj_-j6|MmavYE;N%4Or!!+i%s%IR=_=Ng3hcM9d=sYK# z69k9Qk3oHD`zLO$k%05VO_w(=?`>`;ZLb^@xnZZh?@C?eYc!{x5Cd>~!udSO8Dd_K z(o(|{_ckQ?_x9k#)nc((M-G-M@!8q3ppbShX}yob%{sF2*Y0RGQx>Nu;#{I41Xdtp@d741G?tB&_M&AG^aNGb+8c zç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

                      5d$6`=RkmdNqn^=IiUTEF)6`<}nqPhMJc zfZ6%?>r$5N<^4yuwa%EnZnMD&MXr^+c{e~sQ7p@}*t>^K$eOxRi*N?@@*2}VN z$?rMr2a+7^WG&m4>m2C3E$K8!mVqbMv-mc*aeGJCw^tLIW+BBFPwfFWbQ)zKah<$% zOJ)4wLx*>h4HoTbFN>0bW<2MD%|3t>L(enGbW7s92ed`XE>=!9h&oNZf3xgEFgFdO zD_lkW`)f|Ea!&40y=#tL-;ueuk*-W)yHlE-sgQC?AC8^Bm2cgAYbpzVdS)vXr6+|U zI_sso6j^Z`=ANwLS!z2x9_V^6e_8uJ3slUsD{mI3LZ%h6Db1>8nf z{@#|(+fo+Q+|r`0Eukt%4{+lJOf_ClmAC>*Tq~;yX2RJi2jJ=RbIWJE3X*)xcC#L& ziNujex0-x-RAaX3?K9=?!Wa9Y9NNB4D7l-&oiK0Eb9_$VZQJOWNc(M-KP-=t-N;Da{N&WJ9=jFJ5_#UfG8<*%Tt)a>{7GO1<8-m3b-^7?J2*C_TW006s_xY{5cHD2>6f zXE7BM#)`t{CA17WN)k^22HZq$MS2K}FP=A0XkeN1P_evyN8t&2S+*>P5+-p6hJiq+ z)U?(Q}OAKh}h2d6iOlME(}QlQI7gafSTN{XBL+15^H$+>%QeZEwkcr2g=Ba2E>v8|78q-3`FlL>dh7RVdf zGJmQ1U#?eOxCCQ{wyIFek~7kf3evHce|zf-vb%tp@kta!mztoVj3YiI$^QW}#w%+A zMB}};{VC&VJ^I)&yygl2Xma=gPgL5crQNx$(CKIiIyK8%`cyN#>SLIaH(TnN&M-#y z`MFAWkD$~{p8D(NZGa_waX3AJe8JL*Iomh?$O$+^P~Jjr2u!+jeoUZz2|OM)5E8CN zeQ!%i#VYB96y2}wogBY0?9T}$C+?>_y1Fzl=_R3d#p3ra?+|QCxOTC7jTq(4;@S$^ z=bu^3xw<8CL5%EYFT)dn?zLYig$P@^cQOhz+>5hONOI5AhWkY$cZm)ahuF;)^)IpA zP>7so4w`TzTk|r4sD09{#CBw!O&cR0L~}&@bdGcH+wiv3-{eL6Dulw2Wj5Y@dP>6r z&(xd_8Be=!cVk%R!!#GwoD#?e-nY)w?v^Uj)FURQPWoGfsD-pkF_9Qm|8CIdPUSLu znuk`Xs0r~s1n7hsccL-!no;zjaoPFEUC`Qx_UD^VaX2Y9Bf<6Ap^pAKfc5JxSKHSS z!RK0Ly=7=wjG!ySr;e?CUaR|ap*r$zE0qExzR*6Om>lgJmi@i$OHo4BFJss+@GZ8R z4}LAwdTWT38N3Pmwm-lvdAfI=|LgpsvZlrergVZa z_WpLQD0*O#H|VdbyM7V5koR`1KID|(kWtg`=#7u@cplbRsKxmOmoCGPR3 zw&3pIh-_F%x**uD;QA~cqWE~+Vg1h!*PQcDrG6%@A@RR5CiIkC_*nQkS!WGMi8=#+O;Ov0OZpdt* zX)y*1aL5>4CA!?1^qpS5{-V5BnlySMIr;upD-=Z#4pPaMGDuy(Hf-jE8wU6^{VtLQ zmk?%jL?xA(jK2!UnS}VxP4C?$Zx62gzgMwP6hCjflD#>xxfry0H-2{8pMTQhueVLTe-$1#=pAM+eq2iqj#+4Sc7(v(c$j3x%VkYdakfF;#es0!A+w z$$S9m>c>^Pmy!E5EwmBLyCo_@tv{phN4vu9hPzrZS6yT~-E)HzlSz8=5YjvJ&^X40 zo@tFl_LP*NGYNzah@&WEEE36%oVi**NcT8{Et?K+53j}1IRGqi83z29Ya=esO%|TO zIXN%I78m$ANJbMC{e+7!n0TKP9+40dj>1^*cg&_!KK=9xE3P-GAEjU&lh1mR9k~9< zo*zfjPnL5NQ)Q9)o)N_%Y7b;&ZF%Bvx8IXlZ&4Zc^b6p=de1)5-3;#dKmqx)X1De& zvX^#e!<+I>k(u{?1Pno{;K3?kI}AtByydw^ULFCz*3_Fo$b(~QJ6OrVV}%7;l`smx z-{KWPpXicuEDwgKC|-)wP~QniF1TijAQaOYQSZSXctjgJ=X`iY=EeE1CWo?FqpW79 z!|v*gnF-X3Z-qBYqWk+9YLULx*9&~qGld9v?(nx{@K?gN#8${z70jhw(Wo$e)9Qp1 zIW*-ZbAm!EMIMxpY7j4QcZ+TGaVdA7?8^s&z-Kk?2y&>OX-4}jtV2Mz=8)1&-h1Ve zHAk+vJvf`oyk|z3?dmiJJhMG3*NlRFX@z&&9P?g!S8b8%1cl~?SrZcz$-s5`Yj1nm zVV*FFTc0%L4b5yUL?F)0P@r`@Crxi|J5X73t-Fv(OpSYmXj+SU{LzFVn}F)RxcQ`O zqNa2!6Vk)~^`%w=QY31qL3O(^B%#9H<_R6L2 zev0R!A%JIkqe$AL;PGm0t=ad^dx{Sa$t4)|mTkV@oO`+!w9&M>Grqw-Q=2&>H?{d6 z@^Dh|O;X^Y^{?CF#X;NpHu}p^KGzimu*UO8z|sz#w+d-+TMkFc^RA2ki;yug*FEDT zT=fQs0(`QdM&nFa*0yt$dL}TaLNWF80SfyAl%T-z4iwH2s7%O0V$jk6TE1BS0QeO_qIyrspbN`4*WinGh2bO z)w)&xx@Q2}XP`BNBF~Wh%|8fvifeA+LDq)U@6Jla&$fFkKaBm`yAiwjc4_6GtL6|8 zJC^qscewdf>G`qG4-=s8cp&s=-0jB`KB}qvJo}0O8!9Q^VA0{x$E0NNn!AUGP{PTm z*d1>IlTThZep2C&Vh*3g%LBB=o#FNdUuBUPyq&-$v?@X;E>5oEHRC^Xhx%upc%=f$Xafs zG;n@D%jmfvxSGFh$^fHkOra#SFRF&RY|U4bAia-a^~IzqaIJcuBs4utS5vcui$45@crunVwj9n_m40>Hc+Pb)wiAo*|Jo( z(C)8xT&2t(LOKC0z5;MORS;z_j1f@tuoDl&mIo+Y$2iFZVh~bMVenYoa#z0smIpid z7^-scuQB_(@`P5&LO1KV!b&<9%1K7vW=e?DjDJT)ga6x4PSwmBA7ES)@|plaK((y) zPdpp>>oK2Z1Dwb1SSu8IyH!swtSlUd>Q*I94sB*`gbb_vResvGp!*?0Xc%X{{IrBB zHoE<}9n`WioB0&6@&bLTB2T!*61&17Ww`iSSTztF>psIIi-#QgEGsS zaQ(`A3CNY;qBx|1p6qFRy0_7ib{bAMkP0QHpd5`aOO$Z~`}9h9u)=3|Ok#=6PIfYh!om=A(xYMD?5BIKByb|$6wnmcID@u6@+@tzuWZQ~0bngRPOd+dBmqf>x36E_{P1`D@51K0_(>1H$vmk` zE&}^is=5lxBxKRtFgv;O00tqifPgv*C5H7UjX)Wv({@^exXSWAhu3y=k5~vZwi@*~ zYH-Qyc*GV`jewzpS6LsssFq~ISUhjbfLv!{66CLWtcKdi2a=uSr(EE~+8YKC^DkGg+v(CW)4VVU1@ zBHgN~w{W?{3t{rfvnz314b|ntEq&{379I6CIvHp4QoYm?QngF|L}`ev@NRAeR{ma? zL}-^?qkGLi!CnItHSLokH!l|IW^Ziv6Gk+)k+#&|QPtR;o-HarkX(Rib5$9kYEni_ zT+_Jr*fDIP?<1fA1*CW^X)-#a1vCbb2-C|zWy(p&V+h${--)1A13rz@y zwu?E>&KHj^f3N4B(P1iRS;Tx^P&2W1BGL_=5QyB}Qw_FeqX<(uWDghnq-I*=CAphx zGuX)QIH-|(g`0S+ls2HLIp?|sp1@(YQg)r;#HuC2Zxs}Tc)16JRR&mZx6cX)<5+Y< zm|@i@#yK#f__HnoIXY#+*s~yD7Q%lxHM;J?d~40jo2-v&j~-#=(`9MpVinV8f*km| zf6$sz70KT>TqMxG?9)0CRvouF`M?S@y&Jj~*b{6?^`YbREWJ>$aMaat{s*@nW2u7Q z$#sU>R7to<)c7HGOl_Nh``?u)na3tpZ3>C1m^=ApO*)8<1GSyKl8=mq2-60zdUB0 zmzCn5do*8bopH6_SVH$ag}ga1^jTb3%(RG&u6r{Y6}s;Q+(Ip_5N&|ry(A{;)>0&VP={Jo8jf&e&o4@0H0xbxh2X6Z8cDk)v&w*&!X}QBt)gTbqWI}kIL3p2 zQjO!81)3g$<5CLPvbvRm82Ak|S@I4E1%-%V)WqcWqbqs_>dZ*#*;Rg%&ER_R_8qo! zDolr!$FH`qByNUmG|g-pY(9@&{Tbz$i`F&hLDL<5Tr80ouN7IQf8{MGkj0d@duGW) zG}=@YCY-Fk*1@(c(lVy7nVL%GzZJiwO9_b<8kxLQ76r0g^Kc{nM4>Np zhnT5)zLvQjvazyxA+GVKhmoRTX}rjzbM}Re?rRhIw2<1O@D6w zFJ6g&Uc%d`b0g`la6m$qi3nsK9LIb;v?i;>!94D{^YTTAof1o6h&t%bvym~~`%at7 zU3(nCD{4=J3-c9J^=)E%?$@~N2M@|yIDk0V9uG726NG-vG^^KtM~EDA(iJz=oO$)# z-zf4f|HWo$)KfmmGf_3wd2;^Obedh3CtlO@5R1=b>Lz?cKQ*n1t?Q{syEN*skKtSi zlLBn)PT`Ep$lCd6x{2=Wdy)D4Md^yhn%RVxv$ht$DRR%ww3A%}sRDs&02Rqb%7`sn z5Xr=35Wwi1=6(5&d<9R_R~~z-pJ4-8R0j~CCFlp_*l@pOM;F(%L)v^zn{&`ikWs~* zbswa_DjuiO|3(ENnWb?HOB*ZVP;~iM{44PRvQlolUIR?U6RxgD9$8x4v$3%>e|DgG z`2Fau34o?;Lcp;Ahrj;~KaN@7uxsSPh>8iG=AX8tk?23Y@7qP>VTd49*|+P!a6w-c zNJ6DaA`?adETcR7NQ)UjrF#{-X+qO%No|1M{7$ZZ=;1l%_i?V za(6pgTDHRh8`+k~EE~+l>Fng7^Tz>4FbM+?q1cwcV*KJZHH!jh7xb$OH9OBlKZhli z3D7!O@G@5p`RmDdsZb;0U6tGhTUANe8lIpGJyrWo*Lsq~0 zdg5}?Pm+jrjHgdbZJzCDAtbJQWC9VtJ>m)RQy$B;o0FTb_spMsx_)J8eTB07dvvjS za!(;a`|U(9*kZbyP4K=_Cf%^4VsEIu$ZV`h%`}7aREFy*Z0mg;*s;&!U8A!j!ANjY zeD#bBq`38V6^7VWoO`1&D6eT@RP_7tUEPoG>Jjq5R~K5DAqt})$fiEEo%BXB=UvjC z^{vTn$+IaR2)|Q~8m^>^ZhC6hLmY_j#C(S;_$c257a(5&gN;IoRa}lgi}@?SEub3aot~uX zSK*4LI{yv1Yu{&LmB7f?dGQa{=H6+!%b8lRAV|& zx=o4@rT77QSU1K(6{y7LvSmxB7v_FUx}G+foeJCMQUauQeVcuxW<@h(38r(G7rtmd zk9oD;n#?Z~1bg(NGd1gNmnILuqpI`rc(u4rLNw;5|HW=&1s$v0vs^XpPQr7K=sPEQ zdl>!;vs2!dARiPJNPs>4f4Cpfb{qo;06CWGp!6(6O;|MXa<((rc>gm{v*T1iE?l&t z_n>S#ZhwdrMD0nBiZ+7eSxNk*Kyl-}0QY;SyZtGO)v%-1(M|(4_(~F|;b@N2z=OL2 zc8KiJ4+m-=W{J`Shn#-ae|&W}EoNZ*qz%;5R8u1HOeG(F{2l#47JueOD5aKB%ai#@ z7ahBH6}Fg@ToPpxmKuGa~;SZm#`KJstei_@VVi-jftZm-0nR14CVahjsn1@4Yc z^W*U077vLXpBbjgh-cC*8usS4@PT-qF?@J! zFka}f!7E?gT{-vkRd!tA|BDN%kcD7wgOj9gsx?K?MHeBTg&~$D7Js@@N@7QA2tZ=r z1{wNKFcb<0HO0HPo1k5@gl(e`w$B&O9Uv>DT^91DyeKnjiX`sX0Lxurp(<1_9H)yPD%GM*%cby1MS#?;*8R+sB?%49_ukFY zcZUzB6)#zKWcP$iItynFMdmtfkp-}DI0u8NEO_L)W@pJf50}_QuRR#ec1T3) zu#;!CEh?hvr_T`6TiNx;Iwgs~Omh>ijl#n1Jzd95aTQqvYCSulwxcb~jo86nEv0g1 zc46XoLuG&e-4XwCXniGUlM%PPH6A?)B^G)7N&Nr2o%*w-)ICtx*|a}hFvfA`frhA? zCW=`YdC_3FnnC2L>mi=pZzb1k%sOLtQ9^Tp*OaG!i-e6|GR6mD?haogCW0`nDw}Wp zWNxTw^J=hLNJf5SguZ=7JzwUur>@?i)8=mfw8=`)g1v47ER4jwn8MYAClHQuXLCB3 zvYk54Nr%mxj0|kQqH5qpH{_+V#fv&Wi1{^dv{+2`{h6zN>8 z5!*0Rpdx0y$xDl9-W&UswQ`jP(Ea7@e}OJT-#2cv82N(X!fbX5DHX1Rkc1(!You}j z$Ug)ry@~&uTl-l3(4S}QuaoVRbQkzN78l%9N}`8?Ue)T-dmn5?={cpHUo@dt`#WTx zpt3R;U6zi7wJD3R(gHsUhOR4+m-Jy1!(9~%#t(cru=LMU#Y*YD?(VxSi?Zz~(ZwQ_ zEP-K1aa>ZY5yC~Xl>rqMs9rQZU%fgz8GtczR^hB(yYX8b0h=>EmpA4hIHSw}wF;C+ zK(p!ULQ8~fjwQ75Q)jxxF`(zJeWr1=gJ^K8At-r>aio;!^^uB|viZ!s})QH|x_;3oKio6j;el8w3ZQqVTb|c&Sl6 z7+9JJUJT}uk3mZtV+tQ}m+zGCOrzu4$O5FqNFVo}6-L3x^;dmYUkS<0Z6?%!?A&as zPA@dGJvQOOK)osQxqi<+!dcW3aX`H3cGpa^5Mu#bt=(wq)tK@4b7;MN@8tdG3F^%oYvT&R8|4a zEHjtVE@h>c1acFfPq3MKA6+p_2U$A|SZr~@6^n~W?iLFd!gxT>i7I(AE$!O`G;mz&QEmNA)0!(O+j8d!9~U;`mGFn3 z-Z2Qu`Elj&>UE4c=|-7wRADaN5<)D@FT1(t@@B!;Y-0=(LIlADfBMxcgkTqIL}{v6 zHF<^#B9o@hS*{{SHm+Uts?=q*UGcb}rWH(fu)%~vpP}S`ugDO*2kLp-fio2B;d_64 z<$u=5$c~L3Nb+gD#>GQ`x7MjBic(udpMrGcL}l!8=Lq@XhbsLM7nRmyRF^+3AKHAe z*0U-W#CUXhyodszu}bmc^5$E?q`0C!Xv;Mo#2LO>q~&#RkALRzSKZtW$u|n=e;-}b zJ(L42D#-317&Xn?Yeo7{p!E)(xb`{vv)kYnjC`dS|5h*Nsp!F)ZSVl0UjN(d1&qU){AL3(ItM=&q(`iJW83+dT$UY$3D2&ErdEEDj=l?)p6b<~s`_gm=YtaFddL*V66q4~I(?^3teN;8Oi%T0Dl5>$y%~))O&O)!D@<$3mdU?#(qvWmofr=JTO|T?USL+tvQu}Mj^kbCsfezErh^;^RGQP44O^y>^tD|z5NQB*- zt1T#Yp356Ppxn2?VUq1qC%L<4ZTGs7Dg$x}_0IG#x_pt3(FXNXb0(uOUvRrN!q5K- zw|9+RG3lyr=Kk?OEyI+lcGh&`uUJsNwl%KWW4d=Gm-qA^V9jJ1ZIrFEyvmPX9u=?T zR=zajYq5vI@6G;%lOy+C!)vP!$dYYj%_Fm2Xw~>!?*T(@D)@pbQb~QWCvF#BNi#0F z!TT`pF|;`W?BJpb1lmv|MYD-%QU!TV^jZvFL5y z%7#x&YA*P|24SH2FAiFiB_k;;Bi50z`wOV{=>VMon>* z4xTA1xTj0Y)_ZyjSH{A2P#4fUD&6-#n+O}M9mvKmnP7>Zyx$<`KCfl7VvE7vSKgT` zABv~$HmbSTD3P`*1!~OOt%n!sJAS*}TQJ`~@MP&^IeqS1p_T=8ZtBJbDmP>-%$^P* z?fP99;~ zXp`tb8@c;CsXJIHdzU2$D6(iOt=JlWP#T8#(a&wO{NYW3oISd)0r%;>J{R>ly8YtC z`^bdyxXWJ^1`vy}&Pu)?V096JyJmwM&q_nGJ;%PUA`TV_cCi4ePp!ESvy{(mS)ICy zsEqavG=Yz$a}h-O9n5iA&usI2E9MKZbOeIpvqTr5U^*ND8fA1}mzEFsj z4F8#K9j-SDK*rVDC20$)Qr2zb)r6D#E#&LR-7XfHAemDHDkYFoYGt#8UXZbP5}yUA zRTSI9>Mg*o6P7*(_;5eJtD|MTSgn@@^_sNGWNH@s-bYDGMOC47mgebk+x6Kl$nv9W zXHl|b&h$U?w(*8>5V zj}{J}u{TVw^-d475>#CjSBm<5uI!olNpGtfjeit&If}+%SU7KZX};4O}h* zVPv@J^Pt8OGB$@Kj`j*7J=q9A@oB{w$NN_xWcq8>lACrT7gOiTcwF_Kc6}o`zyOyB z`W?E(MfSS~uuL^nY>fyo^-O6t`2X{yC!wdb_OLkk9-Gy%GfFOHX9BAye(b*wKEd& zjJv%uTRJ8_Elu`E`*Qsgql@c3oFeuBYh8<1b^w@4uDiz!S`1R8bxa&*=38nr3SI0> zX99n|O`}eotKNOh=06=nPBH>Yu|7XEAjjqaaer49(h&#AcAT7FqEnfYQfxDh7~BHu z8R=>o5_LuK5(wX(aLk29PYEA7v?5L>3rIoh>SHs8xEJbs(1*>AEcUZ1sP&|05MQ05bJ#Q0-d09*k%meQmDSkud1)uf zUz>4cki*~C&COq~xC{_-7@Koe#8 z`7-p8`)T}1(aFYZkHoVsQjVG;(-_gw=!D{sSNYSu1L}t;&$x7YBj4-96c^m@yI3%4 zg1H4XHAE13{tNq}XQHbN+{)b-qGswvwjvz@Lq`wj=mOvdjHQJi?+ONa&ebtbwxj6S zf7)KXk`yS2L9ACPz;X3GdyaGerRMURoL`qUIvwboM!g%1E;g2kIFPfO?pJ-h&~xUP zBmSdM+S-6|SbdA2pm1jiAhr56(_?AH`srv;RCCM$$W*-YMG1g-czL$BcInu}MPZ6? z)KM%IH_XG^6)jrSYbrZZ$dOWVBn23MJ2Pt*C?MDoL-mm>URx57P^hIB76=9hqq8xB zZ6qW;M1Uj3VB) zDpi7)Pabih&>{EhYqT%=LgAQ8eI2jDAX2~QlWkC(%^_tx81H^i(zB%5BmU3r+SzLP zt@K8B^@IW_ zk|ndZ!@}rfb1POcdMKj$PGtL9VB(6)J)~|$88;;30|4(sk`j~2;8H)gw8;IHI***7 zh~Z3qk^|&tjK{@;AcN?jQZh8m%dteXPyNuh`IeawCyznNZ{zy+o*Zu9^f-;t@DSu} z*;uq10g992mxn&ZPk7ANu6wQff83%fwP(-je{r2cZ_)U#o+Y*`Z>*(BC87TIvmGD# ze6cfVV7|;rR!SDZf>CT@sshBzHh8=j3u7KfUJ}`O7Rf=pZvylDU9eZye@$?KMC|+u z!Q$DjET1BkfNe+uv9(GR=O1|0Dhq|~11@X*TnKv}X=?L2$eoeypNp*Xzxca5EJoIE z>YR;ID}^b1TSyT224EtIo0+>IMDC{tox=2?lKD$i_|L!?sb-pLB zj_g|{(y@@~n%KWQ4=(WGLt_g%_ z9-GRK_8m*Vrf6f($Llc{ZCw>#zVx6ts7rH(nCae5FYGiCXB?+f@$W_rm&~+j)&{b_ z&aD>yI{W6051(7U))F075?egMYf7lPwo{0eB;N~xGO@*BlMW>iI`b%%<9h7F14Os1 zynthVypUOiLd10~V|@-8ZpEPXejbFp7!QCvQ``&6%tn5mI8=%k;GzRZyGwUIg1 zJeJN_FH5?sYlD~~ua`WIO*C|UJzhjbYG(#C7om5sPfBNQ{vKM3h?^Yx=DfZy?xH9{ z(sStY^Gt=$;;=TMrGHKO@Venik59!-lV%RKshAD}m`$!AD0#x_fE`e&ki1%FipP3% z-P^Ia39i26;!y1xK>3qy29U_Ivma9IP2lzB zMmpe65{xMZFo-~LTfQe-fJ=lIFo)-rE<oY700{K z5leZUpUEy4#5D;Vo$`XAc&!S6fO=BH^$JK$Cd`sEkzpZ^u~iq|fiif2d|C+|nd29sz6=y$7?klenp(n13B|NLvL(w11$8SWt zFOg3*BU9{er@ID>IoSWhC(Qrn|JW>3m_*Kl7d2S@5osFV{Q%G|sR{Q!~uJ8%ITwjF3nnrDQl5p zQq&BoORK+`{L-ggY&`NGfze^d$h16~>5_U=uTA2Uw#PkgqEhjXJaf|WGEA2ob3}D* zD#T4?nC?0#dg0I6*4k;d*YXBY5d36@%DZ;fu$f;ZxTpPiMq&&-f2X^@vwxf|ioF>U zkYCcW*|ZS1zxQfF}(8LOReH9IS{V?4+_Q(qZQ&B@Toh-HRWxmQjUHdy6vh8-5--}Cy6YQ%*ZvDTc{#ko5K!H|@^xEF zxGYjb>^>)RCmK_CMYsE6s3=G!St^SJ_W_diQ$vryo^w9Dl)f5DwLZk6gBDJlZ7uR3 z4E*}sjJTqEI}3OSC*lyYxMS_X&W8}F;O_oWcQ?F-1pE$n3V;)5z25~^+MsSMpGRcg z6zoS5J;k-lDu0aq_Dc1E{Vmp7Jq3F#ado4$?(QkT@Q0m6prmy{D8nWsL23wGo2m-VpnP-AsgX(C%`+j3 zG=V^ji%y92wVyoQIKm^RfF05DM_{Zt5j?1%3X#S!AK>C2eVCYp1aHT84o-ujgFcwBeto+poMj zxM&jmd+KXVffnZ*W%_K=k#9MIN6v1&jj@X`0V>UhCf0zc+mm#8(cR=%A588hXvWJ=8yi*B&4e#7NNoW^iup5 zZ^$%f>ZiDB_=RQ@FDDDGIsK!Kgp*@@f^XwFh;Ff*7GbKS{K`X~e4 zx4Z4~WP5z7&=C}$?#n;Uhb6!+(EF7^7;yvyb<~oO6{hG*Z=3(@sS zdkBZkyUagj@|M1i$8N`cnvr9EGutgPDN!wvH1b?TGt1yb#egY+qh1}m*a!JHEKIX+ zydv*@cfP^M(T6nQ_<}4Ia80?{YQMj~cB$Fl(3p`H$RcHNkOIh9aCP($7XD-#$M+u} zKlJa@wG)|n9~v?3ClYNAR||q=3jgxCBM=^+n0~bMSDuLeOR&iKVpC@{3X|$aSGroF zN?wR-79=Tg^fI6Yuv> z`4{R*!glU)yw?Eau%4?CNPVb2&iAIUumo_Y|k+ z!E5T9?2e0%)z>0@;o-ITU$GH+U(K4DxS`!FM?5y5dhK{vnu&SBu8(vgrw@%8=7-Yz z9XdO|+~r~niI=IYp86O26O4(vFSLGk0n;_XBNuxMX8v7n*+wS9Hzqg7p00h5yX5ip z;p)CW%e%{=;0l_tY7A3|onJko)fuA}B7UdXLeqvxfN|>my_VQpsTwAhWYcI)$}Yt6 z$MYwZI~;r@trELuLv5)@>Vs@CVpVtykwXJfKAcA`r%|?_mu@EikD_yrXZru*_-8Y0 zQf)&~VrFyehIOG_Mxza7W<$y)WZ$UVk~<^0#|)v|62<0TROD82DOt%}D&!J{h%klx zKEFTr*Ywa!R=4Nd0vy`J^YpRK>%m8-AxZ-@XrN! zDYu|O$(UTZ*FZU}`1&}|7qH4xXE0Ko{wsEhVrTCwLjpF59O}j*~;1(+@UW!AZYfz%dET&4{jG6a%wP?bO0G}&I zff+H>RjyEr%+5fdEZt;lv z^O!&6@XbydkF5(i$hvMfNt0DX1No&gVvJ%IJ{6OjeuNO;3N@ab+e~Z{%CsH^kBk0- z2=#Rd?~z`0FyR6sRltSUrPHJ4h)(|>pgyVDMZ058;w1+c$--MnJg<1G3sdm)52&m| zwIDcHlRUqCxtczPfT;+Ga{oN5z^&`up20~J;biQPiL?*QcJVGrclT9rq4X|Wc#%r@ zy=3RP((qsGSlg;@$4wUsj8nxmPN4es{P}NVKZW-?npzUJ1E~ZEpP50`t|{KBKj9-| zqaJByE91;X%Bvdf#z!Uc@1QFLiti+udaAk|11p_5*?!5CnD5t!M)L!*?5i{WAhasQY!Pk~jPx?RRxO9h}->Avq)lMk@VCe4D2X2f_0!UHu|K zOwe=f=&(ko3UI#0Tvu?qX|Dcb@fkV!)VHAbHt}8nne*eCDgr4YY4_FRolZd;cgFwq z`|(=o!JCW77dCQy1~{|a+cxrrfaea{8z%&d7X@*1_wKS=*+%ZP?U=_&_EATvHh^|fv$@I1enpJy{CU9ppl-SH6M0mH>9K=jSvrTJxHoZUwF$V8a<}%= z#jw@KI`6vjQZ--{sEJMHD7rjkDtuEugrB5-`RK*n6it3Ux!mUHOU{TWlkqNk^0VIZ z>7ztBucXnB!{odt)p=U}NJ#SbuQZA=l{5W?nQTPi=pQ3n`KsjkJ0u(5S^N8E7Sev8 zx@fZN>iob!3vfHmU;mI9ERlw?u$5B6QVM5=zB9%x@!uQu0Z4z(U;b9w*0ONZA!4Y~ z{%?i#w}=xP<(Sc}g>WPsM*%qXAr8CS7fLGRns;ALl-&3EEM|T3Z9yiNqed~-&hDoB zbENVujEd?r&8Dw}!`SLrqA@3(3pGvu6+Xf^-lco54A8=rNDwW60%*W-hz|FWvH=i@ zBa8j(t$tAvTZ9W;waU*fo$(>XW5=I0P=M4vJbPlyy0Zuu#R16ZZB!QuVPeueb=csy zz&0PJ^5@yRwXF;)<>hg(S0u4-W9|3!x_|73&CbmSJP2F+fEXMTCEEVrP)3ui>n+Xg z#s?D8+ZW|v9z%83oT9-ZHBrSgEmz#yl_?J1beUeRuJX*=E3i;?TG`naG!!T_t2v0G zh|wtDAdGbbbRP+0aL=rG&rXU8e5LPU8CZrbxDpL5E8MK=EXWxKhVzf~8pw0q00S#J=C{{42N?N-w>VNfGq zc6hGWqWv+K;j)tV5#N#|mFBEr76G?Y;gde@SPH2J6o%Skn6h`Cz@D6F8F|!j^;PMND|iKX=WG1Fjxh4u z(QBdzFL4khshu}-$PAtuSTu9|j=IZK`Vor2S3ZU0ip$X#%!Y4%8FpKh1nn036^sRf z1t@g9a~&ONn_^FR{o4st{++azGL~%NLG50S>+D4bD5ueEv`qB9G{YTi|T<( zVSqyJs@vpoa1d}fukCCGGmBoSp9i?h?#eFn;3Fs(%due*|1M}`$m`u*I&zSNuQS+{dU5i$0mj4?rV3Uu12oRKht?07 z5T`AUZoB^%bY{2zOw&SU45HD@ameHT6N`;r0*}&+OwS;d)|m{WaSF3$Nyumv zg~in<=)|H&L*#>Xs>d`^{Z~IGwjVK(UDdPc5P3GZ?$$%aa$qoZ;D$lTZWo+dl^Ga3 zG?is>VUqAT?5|+2xXk4ri-Tzd5uE}mRKYX%d49R|V?2r~TwG>IyXPUM11lJ`-1S37 zZnmX51XyC+aAQ-@rkE1-X87i!Fe1A$JbrXz;M~DJe!uos)QvL~DCTQQQ~2hT|EWLd ziG|Zo!RbE{qpbvuw9qT;Qv3l;l#(fXb@CX{`C#_Ygp`PN7^<6z!U7}M6fc9yS=y z_}Zz6{Sig;v-Pl`7&Ow1c%=k}@j=okK-G~OwZy;!h@zjG3@`yG#SYch{diUu8R@Pf z2W11@*?=laPQ)jQL$YC@m2XN6a`fFK^awza1RM!DSBGF{lO)O8Bce|aVr>48Y}i6Gih^qC*J{zMx#XVGo{#)|~&ul#-BVwcYbi0vE0dyf-&0T}t!L^@k5Pz~j$y=~pb1ciwcPb8DwY zR?8S6-m8lvx{v$K^m-aoxVJSSNFzoyFWUJt42p)(NLFC1zc@H3NEcFir+zn*(($-{ zaarMp;Al*mi9?FbW&SyA%l#|O#i2F~b8Ic2XVwWj*NEA5i^VeQ80tt@@U#ljw^S8x zIc(bz)Tn$JUl=n}D}e#-dz^_X;KqdpU*HC0+!9u74#kocvP$kM8Hy@ZkfDa^2X@ zZ2cRyL7`J@N#7BLOzC?s->v|@tMP)ysA@}F)KCb3^!;*6U~-HH>B*V3m$fZ-4Ab*; zFae@Z=}$;=YxE5~j~3`p|IAljM;UM)}j`)50E)u*9|wU$QUBvFSOs8szu)O5DwQ`F)4%6 zjRD3{kZbqt5BmOD7a8Prr}+4igc6;e&_B=ON0Dq0X7FLr&*U`(YeXwGY-7MplFk^v z&jwSQaR`-yNi7PzE{#psJceXLF5}|18=O02#2(JTwd&40_W4y?SimV1in~RT?NFXk zvU&~tJ;he3>UIFzug7+D-E0yp5^ZdqyU&@N?&kQh6eE8B`8}&bk?>kuUMfU`yzl{g z1T^^JV41-*J>#|oR2IrEU~t@%ypyFw_;WI^xGIbEx&&3CXpWXSqD?GXC&r8xuRGnM zg!n-5hrppxng~Q>+Ria)GSoYi9PNx+O@rGEsUWhxj@+ZJ?Ahr;ffz~*{k*SF1t$;j zz}Zr?br}~KkE*DZq|3A+O+HEMOtSzYyt-4sU;niYU%K==_O7Uy@npxV=5fX4(LYj( z!7oy9b>II#JvQrZ4502`M`I*Z;X0$dr_V(6T1VcN#x$SJ#V0Ttp091 zQ~An`T3G6n$7Z5!J6_rghbVyb{`*E~2kg>h10_DcLZfT7EouCPo`ST}5Pv{PtZNV{ zYK=oHszi(7f(}Y(X&&n;1U}twsg+l8G*P-iX8ZGRYsFKkihJ2oDN_ zC6KZ9>`;^`dI)unlRH3g)4z*HKJWMEhg_8Gyv(S)wJf(EC8I=@^7NPI_Segggj`7( z9`LJV2<1-hiRHq~=WMohvL$@x5JvEqb__y@wgF~osWdULal4tb77LPtICnqiQ`%#3 zf=MCnV*X}DK`_G@Sx|C!2t%2YJ)3DKao|_?kZQ5N=*S4<+*ubDt3eZ_s@4+QCh^F4 z#eVorMwt7cKGS;UTKNf3XYLTn-LLg?{*zRZ3pG8R+*A>XGgM~OVN9c7NgT8kXFU( zBL$LCv(L9P5J}{t$69=@h`@UtjuCA>PPd_M=}fX*E77UEy>V$&VYY_)q5j!OkoUi?lF6w z*^>c=_bSfC(|wAiwHtD8tU*(L?^({H>sl_Vk19oDaYPYe81PO(V#Q|?s(WlOXy(;U z!~Y&-uF6|aTyO0%Q0iQpndfFN8aQOQI4kkCjV}WG05J*;vYJ#+63vQ7rR`v$tvpb; z!IhPPc&opHqI4xb7zQHyWO+aCx+K9RY6mUt9`^1k3<0!&uw8(t~9&iA`-tP>w)KV?l zJTw8g{$*Sjm@)bcFNOvtKVVU1a%79__NBmxajOQvj0PWm#U?N%bA} z^p3^Wq4P!3stoL7Ap|Sv?yKFvxmk?+G&MHH|F&@}L5CKxS+T(3b~HWX?12mw1?xGXK%GWiNuu1j zb5)fmQDuOR$qP`zp+#Stn$ECr>9}j9C2W{&X3=4hR^-U~?~$i{h++xI4${Gfxk9G<4mApdmPV+!HVi92|SWk0Rh&q zt97%l66BDQd>yuXj0W_;Unm?7QKb4zU4fw8^(c1ChjgSX)3?WlH;`ZjW3#oiOBr~j z(iwn=f1>PPt-x?=57%EWB@j6E10Y}9ZbQE7(N%>r&g>kukjTAkAi1llT>N2e%3i(&V1&O zj==*i&Fb>OUAF#uBwU`ZFs$>$^!3@Cn|(PS&!~1l%ngP!bjd0P(#cFm4}2G+&o(C*W!fWlyRvfHTV|?owNJ<}B9v>)gQ~IX|vZ#!oPz znPwak69M51hw<@3@v7B;fDvt=(Hc7K9C(+M}Lf zYUxhzHAF|xKHB(x`d`1?mZ`E6JkO6)#cn%hHJn(a?+SuZ9Bw5Q4Km(gb`T}XW@fmi zlCbEaKq&6XDI_sKeMqU7*qh-_q$8lz6T8h+yLstRL*Jne>o)MNA|8cKWha^Y@ZEC}Vjk`a~ zf^8^{VT$R$t=3;!3oL_(rcwDOI2%{MbsSEnd`dorp)+Rq%=oJ5L-Y+* zV`Y%ii#T(T>^7#YeuPmeEN_U0dZHf^pbjAU(z{4r?knO zd6fr)5DtxUX^`xKlvXER$F{_`JWesQPcWPUsZc$~milzLoFjw|gltMeS@QOl>A1TD z&x6Jw`NSEp8aA2Sodm`ZQy*a_Q^X@?4Ua~AH2mwd5!b92h^okOTFP9bdr3!3mGv_` zeD(?(Q>hhCqn2c)(_YNqWG_zClLuohHl_6@XlIb#eAdQtP1}2LdQ>pts;b0}Te3*h z(EU+ydbc(!5;tD~zL<{-l`0UJz`%0pc+X;$#2Q)T6Cfg&PA|rps)P=QKvkvB%csbd z_H<_t9>c8Wl`!sk7_pOQ2ei-2vRB6{R>P^Gs$+q z;>tGE2SJ^!gSSE^v{L0inG)Y;!ZxtzlA!sqa4iZ-%#ZNjeGLtIxx-${cY_?PR-SN*6re&G}Qt(%i*7{oQeMenk@6 zS;b4;#~7USXKigT$d1N})1r?p(Xp&LzbSV7sf<_I>IHDssDZ+S2^>u3WsF(zpu)$z z@LghqXL+e@DpNi(U9KW_!vsHeAlz0MsY+RTcBlgbCesdmE^;4lkuF^el3ACeL>kFr zP)MphLLEP{P7fH@jdimHZ6*wv!=(*V7Fiv&?XJs|wkJfU|7)e$ZrpRB${*i@NT^W- zKAx$qIwD150Pbana0F#(Q4Rx()AkM!@pV5+=unM>-~A%av(cuwyO@eHhF>K)-96KE z`Iz|utJfM1y+cpWq}}guv^7i!?Fo7%Yf6sV@r41H+&~bW+oYvNLc|WK#}LfwTY48^ zYCo#`%IA-IA?@h?jB0y`0on@_BuR8l`vxK#6?kgKB~dB+@(9uwg)?oK#G|h0E{sYB z1xYhCgKCeh$`bcagnxuASg)xC_0$bKI1ko7p)Af|UTYiKxP%|C8n)PNMT#ERJaEDr zIT<*pC#KGFO*Fi;rzqKaQ`XYD>puo#c-q1ZIKaXgG(I7?LFM$~C!(?N?jc~h`%z|W zw3lPEX+U-GN&~gI-$bJ%BzX{lIFf3y`+NzLF{1NhT*JW=6{*u9)Kb^Vw@F+1^Lu{_ z)%|B>#A4;NO#QDqdX6vFt63Gu{QZg5YR>|`~A zt}a$UINvK@SqlVi;Ak)u_;Uvbn#Q(uZEY1%DN9$ya$uIo_dCOvC%T^cYmNry!C}@I z_4p`b)g3WKQZZ{}fzn0nubfl*M=dkh@+Hy2Q}K*O$#ncRgq8=iNltSzA*jDwS? zff_jlb`;j2I7T_4PB_AWQqA-TI9zI0w$T14C-3G?cG-O6an|99UmUhHqZlOrB8V6> zTJg2Wg8%N}1Xv!Ng@i_HB+#CcJ7SuP(NgO?OH1A%PBXh@Q0Yqs~T2DBO}2-hmLVI z5M8{Gh0m^liaRF&yEhTFzwU0`t8SfY{yCoV;KS=ZlW%2PuW_VH;_P`!KSOLOZbVEc zy|jh6`l308Fg@7lk!%~_u&t%GBKsWAZ-*V?Z#{>M!-fZ5pzl-u_42ny&k;E0m5!pensfLB z2Vc$UGEjnaGg>H@GXoC&9&_i|bb;=9IwMy%Pl=*_k%204u`9C|;LCZrggifYu_#Pb z;Ez2_c`E`13(>He80;{Rz(aC=YSezZ5eH)oJ4oB8wX@Br7Xg)K3^Dq#VuPwAYA+Z0eo4-_s<_p^8o^zrB4e zbt80?;eeG@#@yP|F@otDkM%lk?!)^2%1Kq1fi*~%7#yxMn%d3?{^yHp$vL$e*lC>1 z(kiZb)L&~kZgpxE+93u*A%0yMFwknRPJJ>)OxtznVBQ_ zk#Eh|Q_(lWu3)RTS-w8{%RcmR^B2s(%Gpk!K>~L6C6()UqqVwYL;=dXK6-Ko%V!Rk zCHEtHPwq1wPU)g|In77gRe6~N{y?d3%<1mv&MxJ0;NR89)KR$9tE%Z-UZga9%0Ogh zu)|tIIkJ5hUYhNrw!3xUxq_9Si70E%7fqG8T&jOyUla!w4G#z(UsyYRZ z!w;{=JPB5RRL>b&hjBg;%IBeyM|<-0i7*+z1x3)9JH7DhZMcU_ms95tX()sR7_NO7 zI7S@bj@PfqJRBN}j^h9jL<|s5fx}=(OAZUmA3~pE&#bt`$D`O3B04)LCPD)7XVNwA zM+I^~KyB*&gw5A}^N)7x7A|>Ik-BH1`ytHA8ND+)4yTi+3mSr%k}Ml%IO7CUByb6$ z0jH!o_`8dH8?%X^3oJFLmrV6?j<2$VH}xIYkLO9XXhHN2yEXk?eoT?!tN~qHmhSW< z7Kwcvs9*T=_ns}%$$O<x1shg2 z+a^ETf7|VDyE)Km_)qcg;mz~^HWkM*_l85UJ%|4^`j>-Mi>!P{$DW}$wHt@|!w#&J ztKwf_1y}YLRPoFEK?I=uC?TDT?Y(HsLW@6Ma2R&ZH9|9jQ_T`#`I3%$tx2s0Okx0t z$(eSR$6yQ`%q4YgGt4l0XD_J1baxF2%wK1H^`I<$?Y_V`2raeYMd!$M@K%bx7LYY; zt0hDuYXXQ>zK);@i8c@+oZVV-+8SwoTe)&`YsxTWbHhWAniA&4^(d{}p-V8oE)PEt z!?+rFrL_LMMe-@gcYpj1nt<@&u%l_9>aO$|Nj{4eZNp_ip<>w+S}mR{vNuW;b`}vs zMi1Na+(Hz^K?YaDZp!#?11`E3&kRqnvzJQ#t@d8Z4MS9NRrPZ?GY*@8)Qr6Craykv zK-u@XZ`L5PLJ)PYQ?eymfj_6}ssWX?Of)%@_j5lXEhUG$k9wo++(8bgkqkNOQXK~+ z7MrJ-Xl2i>Uk{)V9@#OV*B5kmAT+oq_^DpnRwKW7y=yxL<#MV@KbI70zwe>x^|Kj=`2Tt^awL2rDwTkL|R9tne%vmXE zrNvw`&Ce8|I?u1dY{s6cJ)u)XEMsI}mU$o-dla}oJELKp-Kx7Ik1n)tWXh*!f%Ah> zta?!=yI@M5X8V|xEyAh=E;DSEb*HH(#9IBp)akjXI5}BZi=M)4{ihy<&sFM+-+UV7 z2H!G)!6#bn^}E#9$x8l;QZo#4^5egEbxjN_-i+Yq{c^h7PVI%=>DS4FNsQ@6n_S-p z-0DI`4!`rTxoqX2A(2G&+X2yHoD+oaM5jjE3MROLfHaC!)b&{WD_8H3|68WileBoX zg3ui=dAmE_yf_j~tW~`)-$IUh#$A-|_Re8xBHEcW^mu;qn`cjPB7&a;&y^&;yeiO+ z0SV*XfuW8Ho<}1#R(9-V`8I8h{>yCs>9x-Lx2O4uqBezAe#6M|ZW zZADkv#n>ZVfiC9!+YzJZ1x`sXuhO6s7T@RbGTFzM6|4gz+HX*hKdVUJ)&Ly?G#PAW zxoc~P6-Y~Hb-@5V@Ua`3(qmD$>%S-i+|w-NR}{%Ou&ELBVbVUdI8Qp?!hTWR8m# znK&NEDII?>Fl4%1Q(^xzOF}37bX3bR{c8S5;3n1 zU-)!b6820yV!+VAu%*&_4FKxRQ!+1Ea4^E0XqR_ubN7ru_Q8Q%43M_=T!qZ7^bh+x z^?TZDejtmN$!+SMT?_m*g0o-6mG;)2@Y56v9G%uVMY5==*w!+Wh-!gJBw*ELq8b;% zB9gUM1LxNj7BYF@XpsAM6>M1~@8j1^WUr5`#Q5#d8#%rjBYx!dkd*4gE~!^H%6hXW z1`hz;p7~B2Z~G(ucKlOn?#W+_-7<}Mzc3Qfqqw+tGqRaqDdcTxGv7rBFQZyFgBL>5 zionIA-`Q^6F0Gdwwb#s53Rcj7dtkg|(7@w&J5%k38*M7hXQ4ClJ0}0jB$^Tx?4IQYu>QR%?#KHlCdYD^kg3@!Lmp!M)SZ@{y2& z^TeJZVH4AIhD>me@?M?O4*{RcaXQBhm#d?;7tvquag;)GaqxO7_kMQMV-1wR{eHLU zk#CuDRAFzn`qZoAB^9R`8PVC#7w+LS8$aFfw~a5l8b@G`F9w}Y3qVtBd0CB43+s7= zbf7H1V9nQoqcVRDVDke&>|;#|n=+p{Ep{{SBBzjFUl$l!GMzo~lzas;GK zp4Z680Zllh$~*sRNO^~4RX_T=yK#w+zte(rY>phLLoNOdj#+CHimCn%Qah{oF`I(7 zww(F~?v!N9qYPJgMqi%pG_r56BUrtU>oiVptLr0tlorYVGc{XDVXbK%aO`~1{C0S| zcM7Cu6*j||J&{(cU~5>hQdrM5bJ51(q3$`8_q@XYDw+C&vI@C!MQTv* zu@k=zRoH;fz53Z0F8$G=ibqDbybZoE@POBlDUNA7(MQRLDKvS{4u%K`% zNdn-Sd9YdL0EFmOLembtwvmBBWGu>-a%=lX#J##c&t&L*8*UK0(Nr}jtIPZqGZW*h zCymI{4Ki?I{Jn9tZ+iXcT9j)1W)yBKzqH@E257>bsRx=N;^Ob7qhvI%h z5b%s|0Hp4g*lg->ZMr(C}Z|uG4)0k*(qBKT=z7 zB7QeNi_rZIiRwDMX#QfO(5cX{c_d~v3@!A>$313NdWNk8mTC+}!DoULPchi@(4}BY z#zL5x=-(@9YkR*-NfKBf3N}}UU;X(e7@DQ2=6~D_1kn1xE)3jyW{yjsb@hZj zOaNW%9_~=d{M4V3@NnpT)iQ`98WwZf}W1mUq%X z8gh8st-?B{s)$%>pQI=;M3I8U=lJcfCaCYc6Ih;S1Tm?!5gMC%r=c;!!n)srw+}kw zD|x6_rm}27$3k`1svJ&?$4#HF89QEPkE!H}u_UG4YDpIy2pur)_@LZJM!H_)K|yT- zLaId?a=}xy`l=$XEKf}-zIIP*j+(kmaT|)^3x^?kwksm+5B3@i)W!@79hL>$LR<*f zqc))g?Z#XiOSlb5^_S6%cAruvWlbnOuAf>9Y%w!_M1s!L{QlFlj~AqJ@J|sPhkEg# zG^MJ7D@`nx=C{i&=tB0*Pq2)Vr@MEZvT{L3_0WCFZy^2hOXvM8s#`N3oK-pPGXWnKWd*ZM9Y(~x4%M$i4KKrLBJGMik}T?n-T}#?QhRwsq)o7qXW{TJ1|q(6pY)YD?&TN0WKBUOHWG<`ql6O z=+PewTee$cioZfOe4D@Tb}`@N_pI-k7B~FoL)28%_A>HMX{84sG`U(h!Z`SY;(kUJb{DPxk`m>;Zc5tX)LY({|3*!v8@yW$zUa=K+oj>nkIe zMVM3n%|wT{1Z)<)yrmkCyQt&J<=*vbzF2+(ipC)%SO9b^tpiubdi2hPF|LC%l>fee zF{~L{=D}fJNg;BmkPX@I5HnKgn`&J2>cyf%vU%y!Q8Y9X!XZ=DA!wLF0!^KNfB&2# znQIQ17z@J!Y>Vd~rQE%{Yg$>V_4q!!$tU)O!SL-Jlq4GJaeCWarS{ zA}+Z!>erQkgTU}NI}!rhV}NVLJr5v9y5*2~ltHHdCDTdn+v=-TxpBKhIR|LMA-vfE zBMTmjjgUK(1{+U`J)l({tiOw1#k^jgO_}1>3x|hYfgc*5&#oE>H2miPAT91f%C;hi zMG-X2VH+Y<0Mdur!J^r(cUi2oUT8K6Fz4;3P!Tp#Ewbx5he|!Sq#qTvCEFf`r6;US zeR*fxD`2KvrKy@yaq%>YMDfeH?JQ*1E~682mI1mTj50EzqmKSrj2cC{`G@wB$Prun z`}a(Si}?3zziwMJi|#SVIkK(gv+E!`j-|l?QIML5C>OK99}y;_jyraXV6daB(!c>mM8Y`L zBsRq*f@Gm|xopDXK!zH?05NQ8hz`XezY9RC z)8av1zgGL9U2x>b}a86%-Ud&$)|FiteX0wQF zU_><<`}fc5-|WUx^GIbGc6nRi;BLFoFW}c2Sd8pgp)&kGpJF+e=CwHzbDUMmxM+4` zz*7~7T7o76gG9l$MUDl+P~3cD%RTBS>HLWCl@&%Ahn#$MFN|D+NPg6Z#V1JbkBrkK zK!sF z$so3g0HW~F6G#=K3?gdq@uFzAhJPmcU+A7cThABUEPk1YM{K?eb8muYcsexRVRJQ* zJAO(3r?F&ig_V61nIiT3Z8}4&y2Drr1JPbzOY#s^v17m{+CG{efT)m(mUY&Ihs3M{ z6xcam*)?-@TcGr3cH>oc#`}pjA?UObxR* zq=IRWRzgZkVp~w>cvbPiW~fVU-FJe5BbHNeh-7NgQm_DzT+5+ z00T1%c08wm9+0RyEH0vu3uD(=fxBUbEd-K9#xS)Ms47 zezJ^Fp3wL~Jlh!m#TDTxBQY)SbDMCHo#{!D4T*9^@;Skp%k!a|=H*-CmK!%CCPo(r z&L56$iWUc;wiCzKj?T=k|2@3*)@fs?@sU~u55(rp{`9eq7csAKomQ{8|H$9eh0iTK z-~o;4enL<0FmQa$&eV?Dz`e=r}Uxi?Y<4(y7=C+y9*Bp6qWq1s7A-j4s zXhSC%X`9ANxg4ttBvVS*8W7R{@`Lmg9Q2r@9R+>FE3qxLq%06QoW^Xfz-xG1tV1hl zqS~Z^;98qYq3CS-L7lXq3j;ZufuZ$J8$22L1Yx{XZTk)KI4?63=W4A{T*Ma|#p!v@ z8;Sjx_fw1^r1lRoL(B0%j4QJ7FSkh;MiVaju+x$4uLwr6IM!D|nG1{^L~9Sa3$Sf7 z+t8G2uK7PYf-8%!CuuGwofEA;@A5NDr35_(e#|kmGf2iK!a%*YI6K#~d>4qC9ppA0 z?{R)P!8%%PiIm^j>gg|o778TJ;}At~R@@x@frRArT!$cV290{t{g#34lzno>c$k5& zZm_s*?QnKppYWqz+pjj-sK*|*6yOs-tHCy@u|p@ zDtiH%FeN8qHz0V&7v@M2fo)D(oWFkq{*{NvpRWG34Mib;`m;FApN1*gH3oyyEIZ70 z{mV%VEUWEe%e0YS4hbuoYT2bI0*hvPZDv2NtVPC_pt}M&^h`4ZgsmP!V+55+5IHok zevC;DIY>rcE|hia$$^k$~kcbu%`+ zD1jcClq$P}Oe%hekhh7#-PW5fuQdZbhO!Rh)71)AE^Z8Z6zU#2oF)bWFYGky zLCL6);h5m2QA?$EIQa_03TBK#$g+Sx-9mLuR!VddC76t25is2J>ElQ^JQaS$Tt1|9 zDhF4WR+4Z4izB2(DQ*IR$5Gh4a9CiD8}JvFQAbVE_L4i4IO z*R^yXEAaUt)qF!QF3(W$7I}rgMi@fkoO#gsO_Dhg21t*5oBTk`*}s}!muEIObI*JGqB&#eq+z{ z>E#rS{F9>>KIJGza1U+;j`=OhOm}=6NEANkIprtATn+5eqO!iGtGV+>Tq)(ofChpW zuc8JP($&|4NN?XuM^JyCCJ>rNUGH^?@OL2k#yWiIlnt(_u!luY31E3eld8m%@C*{*ngs!VWOf z;*8SUs5Hu1_c9M7hFb>V%$XV{`Ur)sDTm8*Rji>1>Y>=VT`g?`!N2xZk(ddRE}sdU zPL2ov&Ysryc$GZniUUOVmRx5%R6QrSeG67 zUhZVf;F+lx;r|}OU}7LA;la*Jv|_&=eMerUJ#*nFq6;X~&C7AjoeaLfS=FtsG{?AK zdC)NPfLixD+Zug~0`z76B>j>6QR|`o$1eX&j~0Z2Ja58?$E0kg1{tKx2i6&-a{z&x zRM*Gz?xv*58=wcb%Ep?@Mcb4Ix`;rpuGb$D-vLUR=vvW{#HA#Z7>gJ!cFW6PCl&KH zKVo@wBer>KVTBjrRT}B^-{a=IEiv@QuMVfZxIE0cqPF9E&Jmmv#(s~c2@h4(7k>*H z{QY7?y+Oi)NHd&rtKfl$F0$ZX! zR9NLdzbE{N)ql19j-!A3LxK)DzWIAy1=stGW0ELR2<+*{T&94Qm4Z9Q1fcx*$sLG> zAX^VDKO(JSe?niJg*SdGdnm6EeL)Ul|5w{1Pf6hwO(ZAtn@GfjSNJcc;YPL7Mu+94 ztO18--XGr`Ke6h1hWcDv_xatkG*!M+s+-qXQ*ythw?0n0>RSDqv3Z}~Ps#)B**Ne9 zrpnOrR|b%==3WyNg&{?XHF(gL87Y_~~)eB6W-<*QgU#jx;-%s{X*OJkh58WA1XN zfhO=!U%u_O?6=ss2_zJAa8fwDRV)k}-5CL12z@rs93S@S_(>;^)k@awDz)RVKawt2 zfxzoa`vefyg7^|gTU;UvWpo&MyXeZsm4&f+8qw(0cj!YmcOK!GWs(U6)%CslI6A6Q zWy{-sVV|m?{78n!HC&!S-N}ph!nOxLnwwBtOfk3@F`KE-n6&NkUd-kCe;fS{ex8oQ zJ~>$7u7uQ=*Ji+dCfe6tuD)>p)XS;orxkbh%?*(yA59}OyDtWET#CL}@l2K#WasRj zj-j(|x~i&2Q|s=eRZ|7@gwqeT6Yn*^S#@qPeKN7u__QY%*RQsZn`Hm)9X2~CntgC- z&`-0$glewVNLywQ=|R^iZ32tlWfW_&S^tX z1-EZd!~Yyt2&vhZwYTexPgeJf+IfR7_PnguXJ(EB8$C=d`eB##_LQ#n2Rr+N$1?5? zDevN|@|RkzgT3E$^jtffU!M6ia6H{GC@V#A=7aT%z&O>OwY1NH8>|$=m6ad9f4)q8 zZ((}Omlw-?P*zile9vZ3Zz9yDng+P()-NYbZ|#=!yn6HK_UFga$F<)?PYBTZNpojX zpR3o&Dc_HCNG$yGWw}i~^m1ZiZ1CKb=b@c%&wItp4bQlH!emU7c6~l_CUwZA3n?u| zuy;#8A)p1jo$u}Z9lQ5Y7Fq6gN90(&LaL*kgb|8FEuh{RA@22u-ew{0#P^$2U>}E2 z0?eyVV@aI_GUj58({h6v+u@LR2QXcjT`%L_-6-5^I$*jTd3AD0vTah#HPhHkQ#qsX zv-8u$bE>W>kmve$16UsZhK}{u=0qY&YnG+%mZ($?6;s_zNkF*?EOx|a-`)^ns6LoZ9J#I`9`nCv7d*V=jV6lZcSx61pe68BXd@$f8D3+jLLa!V@>R(K6(xetuKs%8vbDAo zfud`-M&By5xQ1h;zoFkoBHtf517usVUw<>$@Bryrs>`U58 z5WJ>6&}%0_h4sbWjYw3e!d+%55!t0hZtQzIZEq4E1?G5NKOFtCv($#L{o$KxpXv55 zAs84BhP-cuvpzKR;>g`Iwb1{<0%p8VWW6cgpGX2?sPc`ICQtRYOz#0po}s==GXE0G zUw_cc-++>@Jw1;u{7=PA<38i>HjBRo(?W||p2aymYe_6lX&`l&F;nT;T7<_N{MHuB2kiRy$@bA{bdg|yVh^jio zw{&z+2wz)_SlZv5_oTrwRMqHG#pi~dZ^GwGSGBV^>d(vjq=lS`IW(D6Aau+*arr6> z6^0u`;@`so=(8G`2LT_eo?hf;bVoy2zHvCZMrKfH zN5K_@oUZ2kBPWQxZdmQFAzF%;uKVw=J$p1=sbL|}X(LZ@?LKdt(N^is(72Ypj$7QT z4!OIO_pl--QUux;3Mjq7;OJ1=Hio5Sco@n;TgW*8R@izJM`Pw1q$=E z*2kuAm&4ghXy9@WSrz;bV?dn0GLCaHk7!U|T3B(#YWR9=@36#*`(!OeLun4f{>CJ= z$nAEDzC)tcs+L2wDKgcT;uMl3l+qwXv1i}b64CQ`2t9eJg?$kVTPzO39ht2!NWoyR zsn(tu0}t-i%p8^>bL&0Ic8X<=Xaq=?G$bD)z*?uN$S^NqW_9vZwm#SDh@IMF=Qodk z-*?^hs^``Ng22B<^n=8O^P_EP#8iz#ZNeurvli)2^~H@|n8}_!!Ix_87Ia}fI-^7lK_A@ab>~Ljt@PG`yRxn@45Ji&)m1* z%;ng!oC%mn!D_M0bXuk)A1>8BQp#hgG21Q6(%QCoN@-?3Rc0zX(##dP+s*D(iEc^R zyzCASHiIEkylhJRXYYO9-7nNQNPr@aI)D6UmtXnhV-cqSM8-62I^a@7C?wf&zAJ@V z@5ft_@8(8;ZkaL9bKSS_k%W(NTxm;^?4dM~B4lI^(t@+%3Ujt(N(Ynm^tM>FqHqCo zpX*eeBhOwj%2I^na3KIFoisxRR+LbQU^a`haJwrZyk zr?OF;GKE(45Hic9LYAvnxVLT_M zfykpfZ##JVYfgRZH}EteU=cp`7(RPngTlZLnt50xtQJQ`ahKY%Tsd3X8NX_1b41v| z5~rXu^Mc|&@@kT#n=HGPYO7aMyS(wEs@-;qisk(I!)M<94AQ>vdk=i+(TkpEW-ASw zt5IPGZl#O0)YjX0#vN?8yLn!EPMc~#YpoU=ki4n-mSOGE#*Un`BhZ7OqD@mZFLNa9 z;Bv2XH%@0jAF|^SjVts;nNdoKl#Qelk}x*u=wSvR0WY;E0U52vaJ(&!hRn!)%e5Fc zb(67}k3Fp)9bNWm0|o+?p@caVT9$>-fE@|~Qkglr5^b?T+H;H53&^HvYO(6opIxuW63T_(CU<*e#2Ju|IuxAGYfp;QSZ_diEt&hA)({ z&Nl{W04LtMaHB;8xhkw6awMfBw4WH4Vy$W3?Yx#+*G(g$l`~ANz@)ygGyCqzmd`i~ixC`#YBX+urq#Vv{mq1X2n~ zlb6U82ZgUnqb%zw7?H!;NDjB2BaP&^#bnrHq|?j?J4*s6vOu6B;ni#Jt*|(XGD&2L zfVoHJK4ZkO-2VpTSEsvO{(bYGR>q+yVOe@&J*&iU%QA^TwxugbiJR(9C7_f9qmaX^ z-fGPZNQScVjn;jK5i->1a<>SPmgs;8S8Ae}l0MdA&rC(SIgzF@LMdj}mNslii`xL_ zi2(fzU%3DMKloR!E~GoaUC+PzGapLut#5j*S_6}AAR*9XEMvhE0Fe4R%`gVcaukiZ8Edh$(1<_LSPJJ@#>Y? z6BCUvXpnc%gxYmW~xCYtdz16ivd?`c%kV&Q3hPv9ra$lFoVpCm}$mKp}5Nz8L)t z*M0V(v;Xkdp8WeCfAERcJI|&ON&r>iRsmmz$FPLs*e#9bZ4tmuk!*8wvyL1-?ow>4 znPZ-3(T^t{O|ssH+VxbuoMyW)@xs;%;edbut}HrRt~g^(&{Ww+a9w5FB`Sjr43F^*-a)D^C~@_Cd3b}%fS@oU zSm(`kNBwZ|a{)uCpw;38d(I>w2}bi=MNKqk^uCI-Cv)1YGwM*dk%OVpqSl(xHs$E9 zo0k9PJD+vVQTG?+=}l7t`U>Dp4cDW3dv1TrUDux_h=y?D8(|ADM$_-;L7RgvDd!n%-ddf`(3x; z+!m9OWNO>;y2p3;od@u-Uw-h{Kl|9D{e0IpVQHGC&1kM=bn*hAGp(aoBA z_QAl3Qmk%@nVYBxBa9;Z!PK66y}k6AI91lYJ`xW+lE3r$hrFCZ5E-?&B8@h;aQ7>7 zW4n0AjrBiy+s*HKr4EDyK6e!#{CoVxfA(mxt=uXl5(pB}WezVyv3_*v5Eq|&=IT3N zf9Kt=oNhjiLql;B(DT_xO%Gkgul~#U+rRW%_gy{LO4)@VGiUKCb<&`4vtb!z&}K3> z2;PBtcXTE%p7+Pz^s-y-{>JA#^Jbjg;9!CS7iT-XTOl_Cl^HK=DvyVg=b^EoopNY?-^6!Ocp|kO)GC zOr?TGV={X~-TdAI5C7Ot{4Yn#TBV%y^l7C<`#(PNF~R@%AAQ@#hMkKL0bvQad*(R# z?(fh%{L1eTRHZYJVqjm1?k#KV*1iD#^Uabb^ zlf=HY25cmK1u)Lwx@0R;pS%$2G` zGEGqNLagw2H;;_{j|53UpcyC$GWSUWp&=JoYE6i=Qc4nT9_liSB;9`Rz6aj_gFkY0 z27M!mB+YiQ{PYL@H4u!kSEv{KikoCw26f;0i zTTEZeeHsBBc=Sl0yZ7PX^Tc)Zw%rb#cONR!yh*XI}08PuZ73avuEqory=$bh@Ok314t2>L`kK3 zDm&S|U%r0x`1}6sOI~&7I!pOV^tc2%uoHgs3(Md9h2J{rx0soL;qWkRtw*>!22ZpU zW7gtY7`;JOidhOw_nML8E{$m0I+50wx%Ia3bRA7P+yeMYNAmPh&v*ghe8p|$dEa{7 zYrgU9U;nu;{r0_&hh4Yp1k6pyHUKn)MRqR*JXV($KpVnk=2lW>R@^BKmQgARmf{J7 zB9u0qWGMq9dvBMg)D|d!0{|K@Lyn`V`U0Z_>BQe=<)vk>WlE#NKs(N^FnJ*&dICtA zQnl1B)KYdw%QO|pm)2^n77B($V@ZWfiYPex-tT_?OKt+R7MvaU%p>^G|KZ-q3iWz?79J>%<=F4$2-wc9^6(-GwUKtTbQ+wikea1~2-(bW^ zIqCnVn^h-8@uM9F?8U;&C(EKs&p3sfw|>F?EmItz%rWH?&O;=C?!}6Ho_982L!rXX z<>*Yg{E9nH{gF4m;Po%$jT_q$cB6j}1_O04~k= z+`W3}@wxMixN23MI@}($Ww6xTwp$)unC6?dym@1%i3VJ}ibKwZrEr>~gADb}W&&(D zEviS&C!cYqzvY{r^{%`5{PT8pJ)<=QYKvRX;Q4R%yI=Y8kN%VRyT5YJ6F7TS2hpd1 zX^&fjVza3OCBanm?(DT+IaBAizT%eu^qsfgdDafxCPN_%5OC`u`gwHWn_uK_f88JW z*l*^~{o)tCc)2$}pDGz3hZu>>OV2PP(^qVHa>$ECCPC6cj5|;oxbhn6#mf+Z?eju% zDgv0E-fR{TGAkCFpe_Sdzc%*M5t$-3J|^b>_TCP3iMd&REB`kzstDG(x#!+{A3eJ5!qzIluN(W6{hO85+}voG!(;*BXqk_E=h zVT_YQNwQEf0!CzJVjpIR1W7;&x!192OYjpLG+IhDQy=LoAQG#)2n0Y&pKGm|I7uVT zEVG+qOj*Y;2Qu1t%x)g|;=_O8`+xXo7QFxlg%da5c;kZ)e+e?tTju}yk)N0HPkh@S zrca1goV$6Rit9LrRx-IaOQ0*$ipSDOqaw1C)Nx*6rAi_UAsR`J6eS`H-GH9yr69W; z<{qKFGc4TQ%|nT6A|fKvihXsEIOX3z|7nzZ=#jW4j`J5XhjCN77w&rmbQeVPS}oNR za&Wa%G|vb)XkJ$)W$sn25~MN>NeO0SNh%@(AWnL1w$?m!cOb!`X)QA&LU{gXVM-)Rr(a_fjUO2taCP+}4sg zKsr4W9c--?x9ZwpcSaAs|2tm(nmg-;C$kieKON(pH3GOQ{Mu)iANk2oU$WcF;o0nz zAj45>>QSpJlL%v>p+_(n+1v*8MvyjET5n5m;K)r#AbPl0Mu*Z3fC%cEBhgn9Q{b1s z3TbWWQo710vtNH;PR(VBxs zkL;yx-K}La44Gpq27~n;Bn<+e*7gTTRP##qr8%t@)=~+!gpeCClWvSaQ(9Q>eLL0a zjIL-Qa&i~ChI&{EZUGwQux!gzH^>vYQ!^GAye}83UD%rMuiXwfvx(@JmN@9_n_?+3 zy(76~GTVYOTD*{(rfMS0+}wy1V5Sy=7cZ`8k#Vry%srxek73(WrGICtnb5NLY^7}b zd^K%%=9CKm?IZvR2oSN|lr7Or#Tm*TBB}_bCg--qsrL9=UU|cxdHeYnT+hMCa)8%- z903Oo47YCi&b!J>Z$JORzpH=nFE2lE6$^x9VLzCraAig{>zTdJg}d|q=$l@C{d?bX z{mX9U#!vtQ95{)>m@ODQHI`o2F3_Ti9T8+Y^18W zIjQC5>(AZwoa@h4I*>pL4?T`AJh|U3agGRaL5wK<@BT*&YUD*d+>T@ zL}#fj6!4lP;dP3umo~ck!e{7Dz2)||y`r3|m;eXtX&15rXA17R-kG`9FW; z{?9zDfGeGb>`^u}vyop$M0Io87W2)gF23sz-TB@(*6TJrDfRu@%St#=45!cfZEx_` zzUVnW^gn&_cb?=DQ#AtytcyJqG8r?YZj3xx*EO#ik-CB(9IzvSgaqr7xaLS!6gkw-8E>WTk5= ziRi^_Q>F#WG@(>pyrj8Fa7Z&YpS*{6d;`qjFn;~e=q2eSjU-O&2&+kvEs^OykxoL$ z;_Thbz0i>of;RhDq>+$Vo*dR z!)UUvl*fo5WrZ}#%DoRfm014p)qRzsY?XTR8(;se|M5HjyC46F`yO~iaL`)n!++}+ zVD*oF%Udf4A;0b|@G+2PB>EBntWYqelICU|B0y5c)>|nRD@rM`+Hq-Fb^vH}k|bOX z?>)^Cz?{9-RRl#?mBFqpS0YwM#-Ak>7JdyA(kd0z=l?#&q(#D5` zl%cHC_WlRI_`dJ^%kvJj2{0;%R+vx#Mk{mjul~#jfARnRc!0E;DNtr7bazUzx)BdF zVIq1mFG@Dt$(2=s_95ippAARt2nOetx#Qc*w(B?zVV>SdAyU~hS=7?4en z685oVmoVb%$E9AtF7%ntKiSs|0h9()A~TDZ5F{knm2%eY1Y&gf+-qM&VGT*Q+Pef6 zFUDeADXeXo$+5e&-uf!?13F=VGK#Ua#eE&rOx3|=X011{^pv|f;FNNnkFI1}l(E@t zz0}qkAU7jSQi5eF0DA(Z!peRRms7?e+|j!FHRIZxTlNeCix){o8wa`F9)!3GjAiro z#D((E4}AB_Uwu4F`7)82yrx1(paDn1Z+vd~(VzUpBkhL8&URUk2Idk=4v|x(J4hG= zKyIP5QU_~Hk^@sIb$E)KQBg|CM9&P#ichr^bAkd+BGv%~j)2|xd;i4@EIXiV$Q|Z5aV$*#x-*7T^dR2R4fh2Uq9rWG%(a$8Ib8q18BxqeOp4otvl!}HGDcYN!Gw}0a;H*GFYd6d!i?GN;xJ(@Eo?9TA< zKX&)Czw2Gszw$PoGi>*5!Waj+KRf^x*aD}CJ5KREZ#?{yZ+-4lHJ>Z6l zZ+=1j?)Nh<-?pM3lC|MZ)u8#g@Ie>m6A|MClQ z09;q_id)M2{>)2nsFyu15-pJfmtihs7(mKMDcl@g>V4TQD}AxY+?T0NBvTm?tuKm> z%u#d0ZMDOvJuoMe9AM>iccan#ynAb8$|^*Pk1`fY!UN`8GEPU^HSCv>w8~scg~2?9un| zRg8``(;yYEq$|0mk!Ap}qVKz;-n+TGc}f{7UTUefx_~)JK>IXOMiL|oiIjk`k;;61 zV38a)EUn|dr)DYd|Dh`@44gl8@~6y{PVZna)Y5$qD?LB!yoxO zANlA%=wKw=s?rpRpqaU^bS$F-sAi-?CSVVw6aX0``g*3c9BHJxk;stLk)n_yNseO| zC^60UdJiOx*vEh)LI0*g;P)xYSB(+XT9X7~M1e^R$xAg@3WDI+Q^13u5P(4eBC%H+ zOem33gus+Zrd8$@%wyX`flOwABqYmqTL|VpLrr%{je|}F4J@PR34ryUFWmPR|I$;u z6mjp8Y|u+z^8Dw&;01sC=l|Z^gLJ`m5r6Hke~5;+z3H{?6VQNkFRis?QfX$B7g-gV zE!E_!&^N|amt|z;s>ohb$Kae&X_Z2#g=A!%oPuDIoCOwzQ!+^hn2GFRg=Wk>;mOGC z;cfzIwK>~lRxI6`GE+#U zWr`+%r23{B5XAwn09HVgVna_6LUGUDNRdn>gp_JE$uhFaq9=?QSt%#Fm7}Ap3A18W z7(D<2oO=gQ3*lKyv0}qiKKI@aW^f9mTAQZ2DH2l79-5DqQVNYWXzXSNIg2O>4iPdS zq|7v*dPpr%eC}F0c5OFpiWQiwpx3;7u0HaEf9@r(dd`@otS@070to{!7#G5C+|z#a zr#|yaG-Oh%47toWGlK!Jb*sG9-_fn^nr$RQM5SzB*QA2pyy+b!x# z>%hdl8d|G} ziuGg$rfII(ZK<|&6C_3lgiQru!&cMXYVlNrSgRXEvrLsrxPfRCluMs}?=jr? zkjw-iQ$g;M4_zsX3cVzeVX0}?vUf;2%C5`^lwy_Ulhb%~bQCRM-jfk=l)V(Ao1m$X z3D3ofXLKRwzKiVJgM;1Dl-b*YT0u!LfY*Sl02UJJ25dHkz%oa1uPy-Cmgs5BgQ?C6 z(B{^R*1H4?usEyI>GQIX*i0Vk-k?dmEB#dw%v4)=3dMDC>!|D~_{vac< zYiyknxwPF)x1BmDBmodY5<8*w3=sRsYo;jN|FZ#?!)8CXL(Cl;QgjtW; zd+~LD;?0LIx{jM`R`@I|UAxSbjHu?P3a9;;aRQ!shVOlAdE#REho9M9jDyzEBbAIq zDJ9ya(|++Cuf6?`zhU#dv)mBedpdPt4(&prB)M_h`dF^(XyTRw{*hPvP`w3}x)I%)2CbZO$1Tdq6xtP7}I)B49}{O$wuy${c`&al*BN0~jA zXc-|z@!c7_{Jfj-)^ED?wnG+TgoGxB$m&RPeGFT1E7;v}V|n+RZhFVd{8WJh+*fo< z;7VV0d8^rh*|xy;zpk^6*WKaEAA8mheBd(|{Zwnc2W2RZX|q|D9wOrC&>w%(D{p%D z>&k@+2e`i$UDyS7IkrUGm>m|BecSbn;dOV`?|S$1e*Ay`%%v`F&Sj=imY57SG}>Bb zVq3ho`QX&X$dr1jOHkRhCIv#mgrDX z%K#HXW-)WB6oQ$BQVs$n1xr+O3btCK3QWRe%8U{^wVgJ#T)x@`fJl|keE#91e*RS9 z*MlnYXvgf|$<{jd`Envjj2pqc0;m!MtV%^4k)#VjFp$X%(bgWWWdx*XEeJP}a(5(1 z&tz*72tfgo0uAcX0nqk(O+Yb7X*RZe^d2X;;}lzuAs#lcGKAlI|D!+sH$F7)s}!mm zpQ=(`_vgO--P5#z@>#dv^8NqSpZ~9a?0>xXi;rd)thDGK{^-wxde67L-K^%W_a5#c zE8+?@5_(2tCI@&ivbW{9vT^~;9!Nu$$tVM%)To`@HX4vRI1SxuT3NIuL0L_KbBN;9{j0^y>u_zgC_doFPUwjJjHIqKA zRf_WEFMsj--}h(9Qq2CZkN*4;ARR2b=s*3xe#qS3`i56i6=<2=%@cx55{HIlrm-YZ ztN&FN!@ebV}aWM0szwtZC+YW!Qds72!ZI4VAx8Uf}m8?GGT7R>{$i9 zWm}q6r*ZH9mga6|Bg-_imKt(_Lt0xzrph!$f>bJeDumBHkck8dpUQ4oN)~C@iYX(G zL0i^Cita`SmcD?@GzcX3YoikxAwi?9I~8xOxqBaO&18gfX{FYPp2Xq7c3$Spl)~9- zKE+FU^n0JGQl4862?Bh2PDxv`oyE{j;QB~Gy2T%%${2Jbeg4LvaZ~g z%`ptdLX=R8_tt7Dk*17Dc~$E{O8^6Yn>~;jNbC=X1okQHul|cGAN@z4+T}Jml@q%m zYI1IDe(vqpz2)xPUUqxgl>HnHaNyAJniu#hUwG3mf9g`3lQxk)ID%eetg@_dc&fKS zEkktcDI|T`9v&*$dS6FGi9|+=&2|H+_b8=QbIBVI|3C7+JXo@;yzg7iIk)>Q^WMBS zDm^ZMSie9Le7;@1vb z|MgL1VZt_dg0a(d=(tfcZ)9zo5#6p3(3q=Ab-ktH<$hHODQV?#S|O7_5KvLc(A8a1Bd`fv z(5%pKNoF26Py`16*k$ns9v91!3-juhnboVFzxjf7Sp7`JbBUE=x9-v#zJFlH?!!lq zuS^fq`DbnX*{5&#nKQ#&gfOY-Z=b_gK6~SXM-Tkn?xPvjC=N>Ty&^@j?kQ)@zWkYk z^A~Um|DG_jB5?P9{q7x0ckI}||IqQ-nZX6yH$Lrx#h*EgHw++R|H)gY@cEZc{czX9 zcXqT9r^Fx-I+V03Pdkjm4;2-goeF2HX)f75m`d1RAA>!|?A|@&u_fS!5CRD1m1N_Y zFkq^8rT}PCJBAX8tyB|di80zl z`2$RyWmkF!Di7aK!PF{WA!mor5_;t#Nb&UmHP$dB5*I%J5nsoms)IOy8W@YTZPzr> zkLr-SE`*7daFHf82&D!_BJti``#L+vfSx!eD)mXl(m#wqK;BG1Fzh44iG@YYEwFmi z=F(xP^a5f874&&w~Cg6t`cH(#8pjuq{K)Yp8~ zDkrmOrAXC~KknLd@K657|Gf3~yA7$9;0f*LUi6%I{^~E9qLu7ns%_c4>6(B0uRrvk zKC*Y;Av3O;;GetpIs<+ERWBceq$M+j$z_4blb(Fi$AyIE8Mtry6v>wWdaYY5I9I0n z$Y_O&QPn@}^^_SAnZ%{*0ma$nK=d%fy<#;D_jU0&kMMZ&pUnRenK)xXWEFLN48QDt#&IAi)@wH_f`?^Q7)(TK@2dJpB9bZt`si!k;^->J z^%GVxS3~Q4xKi4E5WHQ*BAlWz|6mUO<1bkiUET-E0K#zsaQ!BjIQPmW3AV}*QHgf?mwr@iGE5b^{D<= zT~ht?Q$^MTV>o!CD1=&^BBWsxYE^}}@-D%h(L!F}^ zI}Y0qcHH+*o`1&cUOY7&AWbHO0VKlbTt5ASyZ2}stcY2*fY>5QafU_CB1DR0U81bm zhFAuSUE7*Y=@^zf6pRtcBq(6w5L2k;k!@R|T1EF}NPAaNT^&%YFbzV8s-WBi8m^8y z07{Gmr5EQn0S6*xkm~SNa+lkT99-v3g0^I1@8y_a7)xjsvv3nbDW!UqbwvTFYcl{A zDqx-_rl^LGCWEBNQBVSxVr{1)fE-#6$Vdt!RShN084ZHtQW8Z`^Q=2FFa;E)Vp98( zPAc^T6Pmrt<+_`WfaOxg5t+HG`o#!391PU6=Gwg!v(O&eHg))=zy9LbFjlN4z>kmV zAAat>-AAV~1qB#3w0?eSK$ATRurs**A-L}QCmvd&>=v#Sr&n?gwK(O*LBkkIUMiS7 z8&GVfn~)W|E|YpbD&3G)U;BcyFWbsP`g@4cp%y;%wWTk8d-p@f8N)2n0vsX_s z?;iSvmt6EqFNj;FfhMW%b1$U3_ADM*erW$FuWG=^%qgTHfTGB z6o@KrS-U(YBF5eUn6zwL7tY&^0sE!e8SLC|ciw-Ta5_1y+}ac8Y~VLtvH6ONZD3#? z2Lz@RFcI)+YaDwgY-5aCs=^!s!wlyqpP_Gf(e&Z~gTG!8Mh3U-mjC+s2kzXRTS?=* zh{QX7RBrh3LtpzreCO-7K5ZKhC(WV_Q}CMSg*$&dy6wPlgb^VJMx|gNP;C7`UifRqD&{ivVCd&gg7!bWpBJ`Q+1Sh z7KteWd2QcVfe$Uo{t;{(J|S>lsyg{6s+$YKq?}zlekD^tU_&M{LZVu9^SsqKu+>|s zhQuN=!E#E7ti6p7_P(6vxu<%2v(^=f0#>{iFhv3cXM(8~eNYUIbILdBn}6f~=* z7rj%ypTpF*r4_*6uQq|ZvzZu@IfL2}iMR^mQz3!+mk#s~5k`i8kokwDh-r_Tt}+79 zE1gS`E;NaJVOF-fsK@JQy}S%F0M!eD?03Cr&Rt3gJtg#P!PMJ=Oc9BslnR3}>p#Q@ zE0c&hRvo&UHrE%|-U}1&+q?go_q>1HB5~t6kr3)rF1g@+SO1F;2U@aEQ+my-Uap9r zyY?@$2qGiJuH=t>{7)0<3!eLQt_2+QscPUDS&WQIrd8a`i{Db!SrsAFg;%ZpOjIc# z3L5l2^wsgjiL>0p9gM5RuW8BB1r8$G*AdL5Z#beS?WQ8V@V$chz}}#S|9`Tgf7~fp zqOfxxbTFm;R^?08=Uc7%7gx%nzD*xYMFo`5TrLO+OIw&5v0~-~B;+C`#F&eeq8xY- zqndhv2sw8Ogv_dzb7@lYD4dH(1&o33B|u44Et{WTSj0N%B8O6n=cPS2)o-zw2nXg6 z+maax2-=dJ8PFT`phqhr;%#UJGX)Yf$=#3=npMpd4wPNJN2CZ7F{-rOtt>Q$-~INV zWGSb5DQ1r(Z1$7@&r-g-qx;~0yX8RM1kIcSe?fW`6{04nl$3&FwKb4qg3O7Nyrr~Pa zWk~GeW@?t2XzkKm95Jl=)m30Jo)TWOB$9KP9>9>>=`eoEh1=IHEUul0uC?VcKDcN3 z2Y2pS(P7S0kfxB>D4-$7)CARTWgrI=b)b1IoJg<@flgl@1Aq;K<1iAyC5SL?iy>wi zjKf;NsZtHdOE%`ZokFkHDNK;HLK?_`#ESxs%$L$Pj3ExEBo0orMGOrgVBN%`%Ua5^ zC;pXRE5;hI` z{(vH^7P#)F^2M7T+P%8a4b~PxP>6wyyQRGH=ihvA_)9MjJ9bYU zy{GGVHY;>F2bB#A!;8*L8-^2J4PsWf;YV`ajk|wzsOjPc;MiGaWE{wecJ##?A6!4R z>6czSyMBN*tY2v0Dd*xXchBCsyDQej>MdP;eY|37V)b-oSv_-cZtDUt_FCA-MzCX_ z?K#pFo~g!dRJz7=*5=kHo}ovqZta7>iHmD+dQjVT3e1d*s+t#P>E|y$qUgTVYbN5YqB!3?=Jyx zJEKGrb2OdV*%t=;idXfRr3iAJrI4kN^vKbWVo(+>qc#)6V31T*q&k;ZOiQV)>69WO z83>?NwiX$V+f_zmL+@0Ziid=NYE`)q-9^jeoTy^n@%GcZWN#gZSc$u6g&DM1h@rG@ zyc2#hgeA8vf)cxfYQ`!V)Zy@f{czD*7$Q7zhMCDD1eu7yu{ol-NJ&lN>aFL{7zJ^P zhzqw=OmuJ7u0)6gDkXQCQX+$D;NDN}oGC=0`br|MHi+skVFRf>1l8V(UaYs%2@d}v zWUwkAm z1tECkpnv`sUkU`jaMjCFjACHO<{UEd;;WMwh?$%mXMIo3tbQ!_nl%>K;Ws_J3$f-d zQUa%33Q?#+xka*XE>4?O5h>szQL2;ruW1F0Fv343)vsEue@rrssyyPANGR%e7<>yb zQ^}#Xwg|PZ%HTzaz*V!KBlOfD=1|B#-$OrUXTFKs?RjJ$+*!F4bQ+a`s$`<-Nm9g| z5z0LhA|Nobr<=5P&6?*w`)FdLIq#aQ-;tUDXsJg$F$_4q;We)SgfD#l zFIy8ZL?|0KEIj);PxV5(Sp{y1R2FYtBUF3nVp3Z2AtrIqBbFNEG z01FJYFPM58t=c>hYHebAfuzfwh{VXs>J112 zvrg)oXGaq;lPRJ~X21|*?VO5`$1U6|8jFBJP)4(cDFoDt5M%OnsZAvDRI+GfB^giC!S}!Y;%A+Ey2e)x z1s^%I&r(kEQtmla&a^m7%x+~aMq%7$|GM5=E{b5u`_5e{VjP>4MY2fZK)yy&U@zkX zNA5(W%T=XU)UpbD^D{ujL7e8iaXLkwA*%*VXc&;alqJQ#gsY#=?in?I_SJizcmBCk z1MYWOf2^Bv3llTqm=%Z(1!Bz8xH7g-BUVfsm*vOTTimbp4EV&4eG45sr88>%Vi?{*fWCVI~Y@h)o#3 z`HIc2dKRRKuF;CZXKsSee)%2>`GU<;zkKEPOSZwV&Nk}%{-U!x51;o}-(LOl4SSXi zgw}M~T9Jk=A`J2Hr#`f8F``$^b=WW<;Ay-6`Rl_+-~U1dl+&*5?p6Djzq{v94g}D| zlvU7F0ecjXLIh>@eFdl<+bOUJ5NimOBD+j$apGI?jfY|kfgoq;r1)YnXH{7f5EO%s z*U-up&pY>uXQYJy>=E{f&OUMd@o(L6^h8-KnAA-s8F6kp1;PmmP(|tR@tkdd98k(| zSlt!t_O4UI&}PFBb5`jUBYlk&XkyGo36X7OJ}y7=;)P9fP^EPhp*6T|kN(vyNA5p1 zur!?o$IfkNDnCmHdrz!<>89P=wrqX&R;ulbfN=IaT)1WMy?e(evLGguj-lJWd13Pc zrJgZ^0&rl}zH#gE+aAoV&15MdfMZD%1hd6uoB7^-%NLzJ`=aw8QUA$j&coJ4zJ1r~ zAWbu&6bUIHqGSz$%-1|-6Ct$r-Aw}37h@i z?xj!vb@#5T2E)+zJ>~;kv=z5+8s2%hbDR{TfV888WOZC%@7-`Dbm@V9s7Pk(*q zA>E`rMT#Ltc7}A(aJbc*?_2rkH()y0u@i7)soQ^S^}z$! zY=)&GV~h4+V-u+gS5C?oPj|^jeNz1s$sp&90Tski{ZpgS=)-^T$G6>aw*jBZQl5Ir zg}-(6I|j|bDz#maIadE~bmAZ*Y}vBux8L(`KJ`NEGpdylt)YJeb;fbpB(IA;Q_yP>;6(z^O`*$?~acqNA_Ty>P zgMJi|LEuM(j`ev>2Ofv0?r{?S@+Xf>g?qDPpgPpZz|SoL>wWp#uB9pu-OslA<)Lct zaFZ%7Ld}0^Pag;9QHk{w74fb{ANcp4nncVV9r(O=5{PQ##yrA!`>($Fqyj^*%&Jd) z@&)gG_dAD!1}%drV{f5@CW*pHyx?nJ{mKS~tvhqe`VW8LeM}LYVB&Upr(6cDq6VqH z-JqY=Rcp4^zsbBQR3sN~epK}jJ{1{hE{JA?)jqP64(t9~Gcg3~9j%OFoV05|M5@$k z)yFu^O~oO$2z5L$XeuZMdk;Ye9xWakOi82~`Rq#z@RQyE!`=CsdfHA32q8N7ZMD{E=r zHSfIm8Lsg~r?oBcQ7K9XuGeAQgq8R>kOpvjIG= zDr!PNZrmR$52qOpf=9PjcTNy>3|moAmEzr{x+gyd37h&UUF}fYJW>#3C{iedVrpT~ z;oRnPu|1}16teQe8l+x zbL@`@iwQRl`N>b>U;eq~1HW#gUm<%2ppOk^QY$!*D9u;sM@>j$nK#)gpLVTsCsV15`EhGG4X z>tk`qYZH>LfM`9(i5Un}jNp@zki4U4_2|O>;8V3ymqVAw{P;~TYt{{VPQqB>TRY^d-`#hlogTw5a7-a|U55m7(-iR(9FfFy&%whh zZEJZHWO>?_d9*){_os3&<%8HBPL@qt(d;#THnWm7#KydI3D&WWXT#FDn{7=4r-I{A z(Hn0)^1$KT@myPwhcRxHqM=V5ZfpQQ&S2_ zwW_t&n8Y-XgDh>`FgW*&iF$-n$R0SLJN6ututqUVnwTVEI6_=DIIjMXpFCF7I|vU~ zheoh^s#4?-B9v~5+fDOv>-;3C^LEOfWBPyo?$8Na%r@N?69Aiddl~RbN4t;m4Y%*R z@37VXg8XvL5Bc(ow=}lgM5Mr7R@Sm^CO`EYY#8du00&3%7k_i_Fu)>uot?UObyjd-CV=MIY_5qLqp5TRN`NK>4XV>h+hoTE3VcTU229&>^QdBR)Y0Dvw?7CNt;vhH8W3FAjl_ zDk`g*jCWKEJJvJEsp7YsCKqEhaV6E-p;Uw#VWX-tB6FC?f?2By5Sv-=5apxi`V&vW zNRKv=P9bZgCNu_|0uhT>Z%gU=4c?529;U}As{ZtGl>G7$9%q9daPS_g*y%|T5|TQ| z3yQZJtb(#cMYYbGn)eBs^-kL4>|0TfVmz1wM8d#a;}TFTQatpjZb0=C3p#q-3GQS9 zr3f7^VTp_FfoH#=PuVsfKWgpH8PW`*lByQp zHF}7nf$v;M%p@v;MjB&uMRqXBK*2Q-3DF{>73GlF$;(bCRYT|P=PX5$ViuH~dtw|w zY`kY{MrNMhI$D%Di=-x+Dx;fVNW~Wd2eb-$ZcA4ngcykp+6KmRbl|st&9f8&1b;lX zWq9wGa`Qd;cRqI45}!?RCJ7;sJMs!(Ei4&$+8sjU;FH2c;&*@%+y@o2mac{3LXo3Z zBa0%4Kt&Z-aqqxnokl`+q;W(v=@6RJT~aCttttcvXi6@0M%A%b$^VIw#jQq`##oVT zHhDWEOgGWfdMj1}wNtk5su!H|&#w$~2^fJMl^30^B^3~W;fz^+*Bhp%Y3|E6FBP6^ zJ0Zs?hXAOM0(!1S(%W(LouL@RFoqRy>wfpAs6YiZ(9=?>nP?Ym;kRD7cEc3$|Kp|v zfSHIdxi~a$Isb#7*m+#nAg3$>qQuy<1mUp4c4=h4tPGC6B)r2>DO((|?N?`@; zvT2bfplNYRii&}goyehHCL--9yG3TmrPLJKnKo58#C%^f(k|)oH(z<)IkOxm_jKQi ze&Q>8_O=VFn#?)lkwF3h%KR);=vUp71fo7%vjT)8Qan-ExM!Q zkT`mF8rq^{#Gr1gFAd};pTB<7JcZK|@&}jfhdYlhjR#FL$l0V6QsLkyI61LRVOeK> zxMTT6=dIcJB&@1d5n<~_JP8-vd3ZDe=sF#s&QHgbfWXHDjI68t=fw=(aw|Jq!CoQD88634aOPuJeLd1$7N4BzdsM|ITp0t1w0DJ5l?ASYg zVEOqjg!VoUo!rK>tapIRsKpe73LCoWv35HlU&%x6# zm>UMf$!uIIaK{6B=L1JOK2t0JMJIYxm^b(_7AQ`wirw;~mGc*;hoNV-%tW|gJ52rU zO3MqQQRzyaO}4IS&);Zal8d$m_Z+Z0b}biN04*sB!E%%qQG&QP{&0FMc5K8ku7v)(IeY*A-}1N5ef6G7ovdCf_DbZv zuFFraZr$OWJ^aHrqWv!afc05qNe2t z+>Xmi&7#h7W)gfl>$~2DQQ8M}H~3v|Ti6C^;qJugWyD(Bhdv)firvBD^B9g$v>$gTiElsZjoZQEpJ5_E3>I8lL<^x-+Wy;K&GhV?8acqxWgkXSt4OR8e zY8aX5vpkrY8%SweG&V?CHDoL!DPkN&*VP>?SODuVcW~V>t0D*&8es;98jb};B3Tgn zbAa>dPNftCYGCSjxj`G7ZtqwIm5g~OIcq{DO#x>BXh~WflhVBFzw_H)TSrq)VPncL z%|MC893NOnCy#=OiZ6Aw)E|* zojSj;$RV=oYq2r7M2J_&Dyb3yfofE0%_<$HP`mru{x1YNS}Ccbzh|h+5Z1g2PrCRb zRM7YeixDLDp0v6n3JlCuOR$^?p5hVOaaOOd7M?xQcB(tG}iUdqpY z_zYcbX@BCB6WTwBv^iQff)&RsBtsdHEKTwt@Sw>mRJnb^K+@(-w4j)GUFs8bjTyyz z%z5G{rS!efrPhg{m?9N}r&`yI;~)+{yJ&JJnZmq|7Ry8Xf_c{$tPv+qoip2DjvR%D z$G+@~j(po!&kpp|?FcJt`}#ph!CC@?$I5U1$edsI^@kq2pzpckG3C9)-Q=$&o;0yg zJe8NB<{UM!HnmtSWS8{2V}Cb%^Vi>UbR(s0w~!ssHN~Hd#~!7ZJzHP?{40L@{U=M> zeKVPADc>DLtsb6Q(a33*+9IoD~90r<`M|CGaEP#|qUMwX| zq}1|svz$BbxRx-dK%mh|nHD_jl39W2gvPkgIQ@se;OMKKryEL&t9`!2zj)iJPadzQ z2c^8`=25MA?NKco^JurA;Q_ZceI947-J4%@(=(p`tl6<6ba-zZoKp>2R622<-+e2+ z?cH~uEyKWjwrY0Q>LFpGkQPlc>CS4}g6}*5cz)~n0DMa3ySyMTJ1{%6Z~d{yT!=uA6!5Uzz=!BNzV>K;)3rKVeGLnG=(OMc$Y!D0 zP$FlFh@5jN_UM`6ZSOn(j(1&fUkVgdsgBRPDjoW|8;>3AnMrVM-O1dn8f7B_Svkt# zJ@Kq-ISFC7k(?Xop;N;^{fJmPYJspsNf0eeolvbNa&9PhKYV%-YqM3Yp-*(fRkXJs zAJ{x+ysz)l+Kg_#{^*`0Ow$-f`q(FpSU3EHGGBk>z)jD%?DE4rpV4xY&Mo+X$G1Lo z`+cL&OKen{58!=(%GVdGQR^hfeq8K)3ZWT*`}+^l#rda$)iS=hH# zPcdH@ma3D3RInK3Q)jlq=lJWVXL520a7d7@?5KAK`kTbH7Dm$mG){82Ni&h1a3$NT znN@c5%P^)WjX}Ogb-9@(JD%)8s39h1#vhr?oEsFVf(s2xUm;Y4g`8~aj2XF9GwJ4~ zEPwPT-g4`0cSlT!F9t8=um9EW>a~wDrX<1IO2%U?nvxL3>H}bMf<9w$<74`%Kpa3xr0*#MvZCw_+Uhk_)QSPP6}&3H z*;tj>v{lNHd^jhRpPk%5ywh3lSc@RNXtk=$R!St!IfK&>6$o#ZD8*Psr3)t`q&;3# z1UA~4Bg$wggW?NHKXdGim3G`J4y-YH`VHRovqhXezc8NB)az{Mlcw6KI3K8En3E)g|cs*6Zw z%7|l&)g}U_0R1l^f*fN+L{{l?T2{w|BGzs9PH_(_p8LLzRYWFFRH&YVvQmUR=hXO0 zi@^}=RZRk(jCX0=h!g+UcYh{J>4jv6BG#p2@}9qY{5x;?#Hn%>cN=ao#Hgto%*_JO zR&6jZ^)Y3cj%;+&t6SgoUPf#80%a^FI5-N=yKXs*tT`-9J&7(C11PH6z(E1W+?2ZA zrt_e^3Z*GA^P$vm5^*X;a<0%@bQ?OpaP1X)_GDqAo!yu-Bb{H0Q<4}vI{&g49R3S` zV*jBT>vn4!Pg~Y_;H*D-hPF0oZH*4C$1{$kS(>s1Z*=E%`LqAWzB_*6{*yJCuCY59 zaXyZ9_XUlZw8edN8;Qbd((DRhY(P7vC&7;8*;k|^hgGwRKgF|<~aP{UARoX6Xj<@88}dNM|E zO1(rw-KvDC0P*OvPK>BlHVYLZ1BVq3ib>Q9Rs( zuD|x6_QEP8J1Q{G+Dk7zN`LGXH~gD-EPw0$4?ehDr~a@{JTa4YG}v(2-n6Ghj8c`Nk`#+a|a>-Tg>>@_}=j_o+lsVc|}AAQ>#zQ0v#cjFAL=hs`l}CVA(!2@s9; zDKSOL!p6yLPxj0Ag-jDhg6Qn%_aDFDl8Ml#>O1p55@R{3H&0crL-l(eJbm7-*qb5e zHKD)wnO7aW|ISg8Y9f_-?C62a7Yik|`ls*z^x=8=ra$`3FMiSb)%&?aOv$Tctor(c z=brQK57&S9&bvN!VgHt|i=K>Bxi{iqZ6MHow%Bn5? zUXC@$AchiS8H7_47RUbQ7L6V>)e+6p*>ej=AoTg5O8nFzWh0(+l64jY)D3QEt%Z{) z2%l4-d=ggTT9;i=gly}AGzj&C@?u7_QB^6R35HD?3{iw~kRkE_;|O-;IDX3z5vy}7 zd99qHUt8N+E`I#)zxCGJJ{e%obIVd*aMSny6g3R=N(|WB70g zr&>ozp~wV|U46ytzyB})-5-C`gO8pJ)TEv29e3V!#pN$c+T+x=8kRNXS!x(IZ=Gm2 zQL$1;C3T8QWz<>}GryF=Dv8yN0wr32kD$QmsZxb@qOuATWG0!P@-}_8X)5wLfZwc) zE(wqJEy6(LjQ~dngHaSkJ7t3YGcg|2<&H77b;B^hidktdr>gi1wzHNUn|Vwf0$P^QoE*Hx)MX;n zEl`YEmg3-1<&>GB{SwhoF2v5@mvkusNaib}75tts^%<$OO4lb2Dy0(9lrf5ywmNij zXV`7cuJ}7XH5na07FA? zjKyVEL8bzY3){7u6%>K+)g-8n6)PHnxPbXuOW-2LQ{P!inu5436Wj&mI*Om?;nZ53 z+|Lic_Uo?gdU+D6?aT#U)Etuf9DDo4H+|MGXwo?S*E@@+yt(G7>>l`p!o*Af+JDhtCK8OO%%0sQK+lyF=V zuga0KKIzgY=BtkM8HOas&-*`n+v&gY=1>0cn{R)^n{NHtU%UU_lU{?oJ#`iKJ@X*H z@P_^S<~fXOvGb+>n?G~>```4*zxwy?_<=XR_r8aBWlctO|B3pBH@)-w|K5kc|L@=N zy>Gnz``&ct_x|MVf9t32zp#a!4+mb(c{b~?frx6>oH^whJk``Z#<2#d8@0A76CjSL zF)xRuqlS|bWa@G%bu=%|E=U9S_V#DK`o+&Wl)9BW;rTKC*?)Tc(dAxB8!2TChM*i) zrwvyfIncF5GBpwTn#=e8>92g|3olDYGVfQ~U|J)ZuO54t4ko(kfPVMatbNm0J@e|l z%dVbEF_P89(kx;;V!h`qG>sJp{ldtaXGR>twboL{v5XCtTuX_-mv%XIeq10A!GNdX zj5g+qcq3Jd3!8N@PDyV=1svW-2j;P+Lsl2j!05B)E)^Tdmd6gHYY!7-P%ge~PSm07 z%BZv@6|2?U6dhUh;hIBw?E%z9S3ZxQevBSI>#Tid&Z%#~H$tlvX;ye%^WJ65N9qf& zkCAI|#4hkGzNT5&gg$2O#MV2K9j1_*Lp=Q0IifV{yWDl*;b=bKz-{{YYRtiT8U4u% z>~Zl+_00P>@;rB%wAP~TmmTPmu+TKZj5ia-pip(2NLbq&pZw# zx~${pAJ*4?Y5!y2d(*3)ySATCZgj4~rIZT$pwyx5D;zA6vm{9=Crt!rJgcLd!>Tn) zQihW&05$;WVz{+Bcda%?R1!fc3c;O6>)=F_F=GiwZ<@YG{Z) zWoD@!hznRV{)(eD+lw1ffObCtCxFpQ=N1FHbDu{9m58V4y0ndyZ~!qQF2_CKh!zy# zNq8`KUDx1%gqLbe>2@ejM~_GgCUKsLvXD)|w{y@0;%61Styg8-S13-`=mIB1r_kLI3_g;r7j1*m!r2=}?EC}|R?=&)xN>KA_vBVXZ9s268{z?|v zuKS-jbprVa186QO^-j$OWC}=;+q#v~=-Dx8MMP6*bmwOKhJO^wQ>=(EGFi2T+HkO+ zSs52acg{NhT*Zy)vzqu$v}2++fv9B&xa>6b=LDpYNiLSbLP3P>3gO^L8VGP0Evpqf z-8vOG*=yrK5sTxh8?>TvFIQ{&xTcFQpi7~ zRNcZHD^o}*0>`u}$k_$^o5Um#u7HWJ{7}*Hq^1duiMvu1*yV4-pBJ1wcA~8tD6Eh8B< z=DiU%2}ln|MdxFzCStgmTCM4CQ>}Hr))RG63o#plj&>p%89aqXGaI9YgRP|9crUfr zT%nTQ_%Q_%a4odzvl6qDcpbE!Kh&Rm{de5_((7A*_|#+!C*mD`DL?X-JJ0wv18-Qc zRmZGN=3`Rtb6%EeX3Y+%kl13(IYqEQHUvLZNivDKb2Q18oFu|(87XopEsamOCGJ?m z4)yJnIjPh#A|v2cs>xFxal~131@cX{$>Z|wh>iH<=tG?_7*L>hpkC5*{>b>`lN4MY|Wk>RI={rd& z;l!IkcOI8>yl;#>f&4K^G8gVP$f2fl<5N{zbA+Nmu@%w|?3_`l)jl>i$_uFkLZD6kKMV z#88eN*{3@M0hH;$nrtKbVz+k^(=_7u~r3#n;PBcEzIeOgNOtLvaO}B2+mu zhcB+ZeD6)y9#~VBmEPC!Q}n4v%T}z{fm@lZ%Q?Ui5A0OrY~&Kn$&6DAx>gW14m=cO zij*jIi>-G!}9=Ae1M9A#^`$i0RA0By{2 z(85btiGEMI>;UJMh2lnRbm`Ci@msFGvY#>PDVGH3jMcZ1=;njzhren6TYrOp_4iK> zd~`PJ#<31#>1J8`&YJAu7&<{1J?C8AQqCSN>l8P3H?R#Q<)l%VsTwI7-;J+4f`n?} zEk0!-!{JTBP70c~x9frs&@)eT*)Fw)c{oB48^>B}(vFF%aFq`>uDd#EvxvoVKn^_Skclh=Ar>0}$4f6GG$3`|b&@%P;=Ze;HEYwI~y$jQ*%_BAQcAEQ4DC?duwu-6*dz|Dq3nu!VdK93QlIh+L~d^ zf_*eJB@aua=EjQpw@nyRW|owYDhhTCGh8E`R3L&tK5rgCwYC&OFjJ#>-?!)GoB_k( zB(f5BqUNR-z%MFZvAw31TF08Qu1vEXM$tmbRL3?ILa@@tTC1lnrIar36{Pz=+r(Da}jBiy1A%l;# zBuy(Dgwm<9$dl>p3?6wZhtgxcU#Q+mhz8fF>wSE|b8oof(824kqFbIF2fNhk3hxwz z!=BD9;&c`?Sn zdE5E-+&P|)%Qj7wqy%k_0(|`08*B@P%8Rp?Ybbj<-|GkIKm$`Hs#2P_e-z~>6 zxKygy7MJh8tW(~lO2<@)MyH|1X7Te&3Z{KMt!0^KR!owFue?9gYhIL2pSkA3yB>eM zhJ~~ic_%ubkuvd)!06=p#ZV=jkZL#LO@uq{n)S0zvm}?S-B7F;T@0d_`Ys|y2u#jN z`a3^${GNwqFM4K|SFOu+rLTBtfBfXeZ-3yCbM=C8C#*7h_PW7~mp^;oSKM;w83$Q; z7xF=s;3Ql%D?1ItnEI|uosSo^T)5`)!#7?j&ClM!LBIb|zvI5gJ?#ri7Hp*^#hC>e zR>E$>*qRdVHnHQT?#iqMjUhH4eQ*N6RjFs%ss1w*I=2{ViOQ9tnGN`IvDKL6WgJyg zgbibHlC8pofww_k*LN|VbFPedVedNW4teywJwN-ZdE+RTps_}E6hN_q^ocT&t{z8c z@-1Jr?_>9#`{?m=W8UuoXVvP2?vrxzuyL#@C2Yc$Rf@Haw0fE5Fqk>PW?kks8Q|>} zDP=~W>sI@|BjLnct6`rjtRj*{0-Is1I=z`lvZ6g(CqQ_3jCHK;y>=1Nx;>@ZN`9!V zDN=9xOu-ko1z?SdhoJ<;=TAEYBb;^(O{qmJA~KF+5QFWbP4kLu67O|h<+hAyYC8#6 zZpoyzS<*_^q~I@MPezpJ?Hr5Anq4Fz7l57j4la#Ia+0AAzwrP3>f3+syq z^vL1oKKuHVC5)O|pw$s}c}_S(rxG?JmzXFLCfrEyE}A(27soS+5m81vf6>e#=$^YZ zT32xFPyuXb)aOojE`9drnL85J9Xp#C2zsm}NhCGo1DTL^T?n$pLh0B z+KAnoPY`XPm-0hzx$8u^TIYK+=TwY^9p^4Hwe-BylGCif*wunmb%hVs0(Y}{*Nynw zlu|UF4CI)jP%{NigqPx$b9)EZBLzirs5}@6)wl$znw7rcmHlgOxy6ZNn`Dm%xPYue zS$6^3n2~)Mz56!1_tCnr{YFZ8K2Uz=Z8R4bZ?D58;y=Fg)baC~^16b%Io1erL^$2! zrN8Sze)eV46%;%U%xGhlPG2ZNN~$hWifwaU&^X3`Acx{J)k2inqiF)tlN7qD)9nxV z+duNi$#O*VoT4VIdDAq+?05g*p4WWo3;UEV_F45aD+l0C(Qel-AYo?=J41gac%M(V^#-gUZr!Npb`D#0#SpcREvmC zG7E(j4(fSv#oC##emSotYGVxg$nkjpU7G_PY!{lCtBon4z{H-#_HVHAF0qFibh5-d zKJNeJ!)HHq=flgv0ilX7c-G}#^YVQ!xiKB?Faerpd8V&@W&Xfj-Kl%eEN#uCOUirJ z*K*pK2Xmz`OT|lOp~TDTgeH8#;cuYV3^sBN$vh6V+O8aWmU-SMW+#@)x@Fy+j|>l< z%li&u$swn``4Io5uRn6ja}NB@`|i2pzDE{gq)2OBeaX#7zxK1E{0A}I}J)@5>&lxlSjNh#G@ zDMA#G^Z=(wNO(8irrJ#NmIZSlF-Qjw_DOh`WO*U9LbbYy+r00FIvTAu%*0e{*LQWR zjKvp=@NE=3@Qv&9E+tk9h?qy8hf?i+dkD{n)7s*B!h3g*Wd1 zk{8nr`xMQVN!;S{b@`63KlZnN?#|<5X5LT{T&PIOeM-v_g*z;d$uYp%Q7uj3rpsED zt#|`kheyt8;SIl_k(fo>DO_r(Vkt-0)JLf}C!=Tvr{*!(IGgogqD}G>0Zg}h^nEYH zP1Z|=tE-@XrXpR=!!Q`UWh8tt6p_3=IU|5W*={O79U)-Md@1yccEjBONi^h#(mDpM zc#`{$V-ntU6u+ulQqA0zTF5;R%)>3RA;(BWCx{JmpF6829JUfPrjU#~)smtb-jY`^ z`=m8kjAd&WfAN=o?RVe#o)SvZ8j|ISEafMDp!KC4M^`weqTX?K)q zvFnMb5jA|FBjTs&J0p~Dq*Lfh12w2kf_!3rGlmFq2pWb#h`K%t%QkunZSjP?X37-_ zAnU*Z0Gp@ChC(RYOLv$5ao%VKWAmV6^Fy=-iaG2a%D3DoYgsKnf zlB5$ML4qhppaAcdHNhj_@Tqc;BLSXLc{6YQwDv~r!nBee)+4w4B_*vW6fsk+W0PI( zQ*O;WP-TkdL||ZWOqkNKZk8dRq2aV%JU=a32wOfeL5tSSZ+#%tF^oF~uOd z0@c-UAunwXOJX6l=5iN>SqOu1O+Dbx&7nK`iNS?ez1n)+aF?9C@3*J}0 za(LR4Km6eFvAZsu9s6ah(P*7Y&gyPfqL3UvH6Fh}2WGTA1OOpX>QcWoz{|gy2ovs_ z2VFX1wP7xoTV27{7mMzPd%or7 z1D|~8p~Y4v>grf8(4v-Is1iVBTU~L?xyzcI(Rgc&YGLPai^jK|RLaqwRl9z=qn?j?7E4` zvAR|uv8^{J@`m z{uf@GdY&ZsW=t=>nr^47zngo=iT0MHg*OEq`Ps;XLQ z;gCY6qM{JM7)qDBAOmsE-9TvwN}Uif`sdnpQj4*qihX$)#x6-rJa|fyAi?BWbyzNm znSsplvO3qv1KG>OMGDuas9Zm-7^VLm5vHf6T4fb{BMwj<$B{y`&n)2+UBH<`r6Y<-a)%tDT|!<@4IClX>vqZ1^w%0!YdCzjInwt+V!bqH_0#uQxk~!MrKm*~lb#R{>0mjLYO)>KGu9UH* ze03aiPUHmEXhbx1ZQ|55*x0uA7heL#`Ru`Sgg)y-I4*gY#F~;b5(cXpD#%DEY}Iay zS|@I?Qlb{-DXe`|!GSYWCpe&+(&tWbn=z-2VWNveq#)N7f-ld+c&DgvGtGS;9I(l* zgndi3V`kD;HY*&4VoAybOGZ*R(15YwNy~uUq1RcXv4)Yt>dHfku@N)Um&tsGbXqXx zw9-Tp2b2-Pq+>9eP42~!Z7>jo)hVRSHC9#*nP!7T!%7;=Q^CWIM*WwjM}Z@MDk|^3 z9XOxxczO>;nmQ4ta2asNC8;Fc8od~YL6?-R&l84~9T}#Ift%;mS__rcC)J0fjgrQW z7x$nRgHp_3xM0-!gXU3}V+qJ51XpYGS=ER~r$AVQSfmu=<%nVjPIjWm0_dX`s#RdR zl9iKq5*{s$f*;&!Jk=?<@}3|6 z=9_OnY1c^F=#skgIM`TxS!x7euf!HyoyKwORD?XI#4viV)pBN4lpk69PLmRl60x-y zDwLC}k*0(~ELFrTIb}Cmjztt#+0y26TvkV?5w)F5ElvI#k4xm=98QAwJZ5kGwTJFM zx7X786fbFiX3;%-ZuY>L+405x`_8W4dpbRICU2I`oz)h(p5DtRkEBPB>iw^H=JHQ{ z@sU6GC!Y6*p5J%6D|I!aVE$Y^)20wPU3aN?Y3 z2dNpYPBuYB&@!dGxwR{10VtVr>Xu_kDpbiMV64REg()sQ0AP|GSz$+LaNt45t3XO{4<Wy8;m_0h%jcz9WV<757xZyO#ihZj80 z{X9g93#G1fhaM_N|H*IO_5QnT%gJ|i;a+qjA3FfqwBSYMMWN+xacE(_?BK?pdFr}u zERMFd!qA9NW6Du|!f3nAXL;5!?`Q&Sl~|5W&QWpQy7iOwz_0(;lkdIDE*KdT26# z?h|pxLl?MP7bRt!mXNJbNrGGnug^opQJMraWPP&1PPEn;ZfYN|n7BVdK(o6CVn@L4X7O7!T`f8p1U z|MrK^p0F#<+rFY3mFG3>JI6=vcx?X0U;g;L=WE$1W{~uc+;ZKXY)NPeQiE&t>Zng4 z*UpjxN}aWMxQ0h3o;jAw1z{065I@E#9Fng}NrJPFJ~DhZH01y|rv`LhQ+AT&P~9cm z*~_d~90F9#f~Qf;+7=6$L{!xo_k}})!$L@Et%9MHSKiab>h|a`}`fuNG6%3 z>EtR!V=|LBx-gmyh_MADLRuKfIF%+RM^b{G3wz`)YZecm5+n)f1lw)#sElD21h7@G z)F5b7&n^6S-}MLY_`TmR5VVDVi(Pr;k=K9UU!2co<|8wADlK9|OlaZM(q`7wlC7u( zr+|kM-bFd}AG`hDAN$FFxG2=J6t_A{@!jA4&0qGamnX%3YeCKL(wU6d@%4$St=xfB zeVWQHl9(lo8otTEw*gxw80{YH?P@m332p5hv%`FfUGd>=Op!Cd z9^tJm0-J>ztIPyb!2-jHuvi5d2v5BZwni-)mP4I_cn(5g1LGomML}`LXbidF>BFe# z^lCocOCrjtkML;tK?s~rnGYP}DJBB}%wr7X*DOG(V!$Z{kypy98QnL+hb?YKt5#yG zx8d8dCS?wM1|Y8usg4UGX%G@pYRN_eVj-$s)PT9Rh&&0$# z+FbZUFS&6~U$iTeW?}LbSCp5_YNgg%F`Zzi%^~E<+d^^dlk0pnD>zy@BpZsCwOU8m z+7${K$I@gQS{JwFIYcy$%cO!knH+$bzUx%9l)79D_=F}6m@3jhq6qk+SS;&^DXQ~s zHlNSCu2bPIYu_i(uxYF%m>X9SSzkla{{ZL(2f@0OB zqiK9G5MSeu|D%s>$u*-MYo|o zogc0L@K-*4@8im|%RRaf0ivD@cU!d^cw?Yh%ALfhc6QxQ9FY58be(_0mtFN2zWIh9 z`K!-;>yO;>Bj5APZ-339ue@dL8HZUf;q~T@M2*4~Mu(!xPu1sfnp88h3K&qVl7gT7 zwCeHchfgk6adeexe`}Ad1GxRaM#5=WeCr!-{l?e7=TH3LfBn;c<3r#0 z`VYVHm+!pqOkTuBBkD?>*!D-uJoRdBLxlG+G2y=msMj)#NC3{ zKmO3xKmV-<-*Km%thB&{bcp+AqFK`@W12N8ozur3vfusiWA{I@X*+V2tuYqMVosWK zt=9N*iG6P$*B$PT?IT_3eVyE-dmiBv=b#$h3TG|#PYGF~n8Ti^7Bj1*l%bSn7PcFD z*vNdPma&%VhQ&xmx+vs3CjDCGeS7;dE?4}=P*ulS=HSY8-3(=pQM_)<;vyFaGyKBV zXqYG}QkpIMj@4&8Zb{Xe{i#(FWPnF&4X z8n&_tP*Co2E@MHCO=gbpR&WAnG1AnLaH*x)ru0vYuFolRIMF2DWyHfU5IHD+1Pa77 zyBXgElLV%wX3NDEP+YDNNhl`XL@%V9hi~Qws+0!f6^{ z8|p<8@Y8Qx8b)#;*4q6X!Y^4AVPvUgXBg>bQ?r+N6|bAM;7!;#JOWMtgLwfKKwDp> zJ-NYI82^?z8bi`C2&3r{8%r>~?H%uX>p%YGu>mc@ne3{ghhF!s-+a{-msuUHS|c0d z=K2&^dT_LXI2gKuE5kiyO{B9YJXrqjPyE!@Xe`=VNb}6E`<6fRrGNOPNhz$f*iICD zSmqWjf(36X&)z6lAdFlHUD z8qMlPKJgkttT?6x*BZBnnuT}^_5+hK;44cQJPoz>&JmiDWKpQls3xIMQjtU~%V7X0 zP-=T|mZ%<>&_PWcDKI^pnQIGW31Z6dDr)Ids1hiMXfU(+1pGowZCDgq!;Gy)X;~P! z064{D%F~0VK}?dAC&j%)xEkh0(~`KfwTejZX+0viAun;X_{4NfiJ{7pw5jWQ!*n!e zl_(o7>Nplnlr&OeLp#=NLK1aK3H=JxYp_Mp)L8b`TZ5vDhm(^s?r|lE1OgFjmLNw7 z){D0ENHYS2;W(R+g3y|ltPj=hho8I0nE8WLQA|vK##_y zJ7b65@+)`z=MR<(m5eSOlg8Kk?i&B*&wTvE@~R?p7NRERXiiw1Br#!v-5brgnvJzY zG!hW2W)Xp4fN4q=KGq1y4JR2Qtb%Z`sYQBD%G@jwg2TJSZPlpM^|dU_)gq-dz52F3 z#}1Vz!z1v(&v><<60~&MEOBDX-g{TP>DM;j`fnfk=mY)8`^|YVq8T7rMLMi*cgr-) z{Pj7zMO9$JW4 z#a3|18#pc$O9vTYcBd{2bUoNPnNbo26s2&Y&{!5wjf}>zMlh%ykwpeXvV=DCVzgR= zlvB=K3XU?%EJ0%#Thp9;Sfg{Ve9;XXGYCdcoi6|IU8lB2DITzpfNVE2(bRSh(t+lu z#=VcxvB%}cN9b7()N3B~YfqL#oHrzQE^X{{%+F{M-tfsAmt5q4BiR;-lDn=Iwth{&LcUeGQrg1b5??o~e2!|F-GNTZ# zdoszk{v=pfr_V0J6@(a5<;`)|0^b_xy&vB?9s5S^N0+{z=iHad#fUYTuAQd?zx}>@ z7S&?)c@(!#I9SEQOL0!p4#WgS&W5T8(h^)zJJ(KVO4OvlvR(iO6NG;d$evmC1pIBW z8Wdgl4F9E*&qVZHQl?o}{0n3?65a|rlhURoA%vB!_!VBNVG8tEcg!Bm0z0s^3y)qa zI;gyzIdbHj+AkQ7r#-74f5z^T_k`*9CYOmqF1!xAond4GDmXBFJGS#kq(T4$W>ElO z%-sTi>5Uwxi3A)Bwi>*`JHacAC6t0;NJ78!j^F>epa12tFmc1jekM!#?r;C5C)8Yo zf!_nRAp&)~+|p)N&|-ECq?39+0v2wyarBScHMxzKWT zYsjd{*q&(OQK?Wwsf7S5M&3HLP>@ujGK-5YP?ehqDmd{SxwMLgITKS7nv!0Qi6-i) z54^Jn{w}E++Pl;QwZlOF6uhIguox~ciNWFW#VpB))8Ho1bpf*UrneS+$i zAi=C8wU*T7z|<2!$og52S$=W)G*@y2&TQtiW5`oM37_^thx1vI3)QKMsnrck=4etRVF3Mu-K+ssl_!(DewN)OBrS#|=64v*8u%Z=dV4HZCVmt= zXic3G&Oi=zv$ei6qB@iUG>{5_J&Il;u{Vq;)>G<+IspUsdJ)gUgw%QC1nUw; zeyD*;N3AuS+KBc)Zi2scET*$utvIq7M1)M2jA)?}S*zYAO;$%y3O5fAA#X3alYFe| z5U(pSgmIyfBcLqDaS66~F)X)eC|V&>q=Zt+=p2o0SBfMZNv(G@^u2WW{X7;9`y*{!}N=F3&B=c2Jc>K?C2fuj!h0HrvFox* zGRYUbzw@!PKl7`1{?^;&OTOsXi*H)H>=12a>J{nqf|Ie%0@Hr*IJ@NqQr)@lDK?h_8If*#lDgmj=)!bA(G0nm)>2FR zF6huLtbhD`JwMRpvx|m8`)1U4*-N27jEKq+#7KOEtptS+!;)0ZNfU99p@D(@9f%+Z z(pY$#FvQXKbFW5B1=9aL*d`;2ql})in-L(Av)oC}foUvV6oVpS*C|Jc5x4`zd?Hkc zfHlNjpHfyQSquZ_4pCD8i|rj6WuT~QU59P%X^iXQ|4-`+z6jQ_Qp{quHfIJ_pVa}W zN}438)#?>o6rK7N%&3M>vN{!tCaqvt+?kWMFmkdTYwZ*OCpc(oR%~OVQG0&-yMF)Y z{>d+mCL|hR;&$Z~hrjzfzU2kay@9+$a8@PvX0R5>7Eq03gM(9_dN)IWr;VaqYOtjH z9(d&YUjIXj(L_6dENYkhb>H$$U;Kw(nnk9MrqKXF>@lf+nK43JyQmuMBE-N4HBtlh*P(TM10UHg`1#8XfTvNz!?hhIwi-APCPpDj`O@25~xR=_-k!huD` zlPfccb}6^A1BYl*Sk6cjG>0=NzwAj_@DgB4=d@r&^sR z{}q><5Y+`MW;38!9wiJZgur?f!+gSwNH9j5sgwGFn?=i}lNewX*i4(`S0w^12?yk) zC=r3?4Xm#?V|rnxI%X`>cH-2ef*bB4*fopUR0A-xtcpqsoaKCS<<*=fkflh=&DaSE zb8IV~Rd>;f$tDyw-Ll|7&K50$kxThcPgBie=Dq7PK50xID<$<|bmAPw%Hq|PwMBll zSOW?(`7{Hey=yAPj3l{NRiW@w3LI_mB;>z2OC5?)QUxA1N_7*>WgPmx#|nt9lQP;+ zSB*q>l4Qkl%4VZ#a<62{lY`_?gW%o>OE79)IbLl{)YWR_*3V~F#-tp8J7=vno?p*q z&SP{g^J*?S1L}Hyimv$Se||f~b6@?1X+2T5-AjQI@sGasW9R9rB5TTOm^Ose$=qwL z+G)<&hFWW#WeGNAR=p_GDADXPdMm|n-5S(Vg-5FiUh)>?#?1|yI5Uq-HtRZKwrV8o zE)+23705VBjOd&`X^c*9|M2i1-g(y$8?GHiYY(!ygC~RZQ@bjm(v9l3Neb%vyPO8x! z&IOL^z_FCLlvRTvA`ZMu%GqjR=T`NIr`l#EX(eLx7$MGmmyC_6Io}fQWHC>G!MN9v8ktUo6KdYMT2&nCC2C4a5ea~a z0m`23xkQmvW10?-V}=#CM}#f+b&Ka*9lcN+HRzsGaqXTkpA6}b2=7yl(Z*VhJtdhq0MW}sp$5-F)5b*yz{ z&7L;Sdiv<&i#y+TV)k|?EAEz(1gn+Mymny})%^!&%gYYV_w+1`SB4MfxvlV|ttG-1 z#*|__xNbLGy>`WZ!j}fsXEW}8=)##TPu<*|0NQe|)?jzeF?by-&AQC&P-El1pHn3# zScB~*(@T(*k+Yd`DYhWn9QF7qdj6r-*+=_g&etE^$aXR(4g!8elyL$R!a<;3eE%B1 z@YzS#RAdz))S$;V>E4IVkzO6tklVVokP*SaAnK8qG zs@*w+c<=gJIw!2%Pzpm`go=lIF;nHW`D{53tl7vF9}up-fpAfSbM?|UC+3NDAYoLh zAs1y4<4PTvdBsRr26N&Bfo|mMDG8Az{#9AIeQi^ zWh|}<8Oydhtg!7}?ND=4bYe&fzqSD>Xo;A>8oBc>r$ApHf-*$h8nJzw=fd3q)C|>*z!=B$EIvC zIpwNgrgeaO7`E+|TvQv43nc(|W8WaWFVl`8B5i40nx*`Y4I|TMKP|>~#SBu@)U0gP zvc}4=Y6jb^fbC_DCipf<>hdxjRl!k&dcX?$) zt_+3@BLGqsZ|Y(2Jn_I!%1wdC;rWCsi}*pb(LjI>Cv$^mnKuM_m}5RUVhSKaf{R&J zA>t^b5asyXeiYeo+b~g7Lx!?jHZ{TRwb_jxA_!1oxd1 zI)EVmp=2OrZaw#^+A34Znz~fsN}e>=s8HMv!uR!Bu`VpDVj`b#xIFwSuMY&h% zW;4;WSd5IB?crstsUxhfsOFU_${GA5cFLJC-}87k(3*66BfPPFhGj{8SBf#jhDr^U z)Jd+qH-7c?-|)(`H(zw7x0NRB5OI1lPMqY2PsF_spT6@` z4=gtqU-FV0o_XbA65dJ4gBFkvRw79f?I>Leu0!umMP;xMAt0w|KFfRw=N?0XntKv% zL+GpW?|6#qU(Dm zu`&khavU3AI?sAHceKa5l!Rk8>q`Mf6~|Vq@I_N}6v;~F5u-5;UvSe^2WJLwZ*K<#pS|4AN}N`CpOJ>52xfrZnZHn zM52sEIj+9q;K6m)ok|8CkDWZXwb|D?hfPxdiTfTqdEwYKdxUrj&~H4-*Bt3)_brwb z(WPpIYwdC-k+F=`LVTF{+2=p&x+{-xTJ_v&(1VZ1@iSxPel}aP5CED+sCW%FE=9S^ zol`$Zw}9llp@Uk=$dSl|BsS#Sb;s78eN3}nG@yL+>=O@To~sI(NlGGVPIAMsy*FPc zynI#ds|zoeBiPvVZS-Ill1Vezq|VQPCS|#=PNUisjy! z?Cp1xyDTo8KW}!BshU;MRNa$w0h2UvjYc;!TM`M7zqu(rx>Xk`V*wy%>E_fDtIF2M z3e1W=d=>JsR-gf^yEXuYaG&!qj8RMVu~ASIa&gs0C3RdGE0tN3XfTyhm?aQ&s3;m= zl(LA>Y^@IysC%!%L3fUE?_RhweSQrmo@T_(Fp?DqWr;eB(sv9qF~R|pDYY1!9PyPl znN~4#ne<&JSMK@RTm>f-I@l!Q=)9#Y0>HK+7+A^1sxvl`=ik8KMEno&8JxzX!qd55C6a$erRh95+!6Q%KoLV zdf9h=>o?B&K5F%-NSus7L2;N`VtU)E;}m19IVINUaD2D7F0}$UtfENbP($3|yedrW zAQLk4&T}^R2?fAFB;c1|a6T8Qa{63MFT#AVUHc!CL~Bowr#>~#1`5l8dW8m_6~VX~ zle&*+WBy3Bg6dfcsCjJ5JQGIOCx%HP&Ql9uF&Y&LJuKW^W|0ItZzpv{bGX4K>XeXV zd=$)2^J;kamOW62+nzK!3F#o+hU;L72QP>IetM%bh2xcb4VSIOxw$O&(1};S^orMg?crGx;kFNxfAPV===W~3fA>50 zee!YL@*Xxu>yIoC|MWk*lj2!l{^CqRA9=!i{;hYNtjGGbL+Sz&pt(n@s#sW;GD|L2 zhoJ!b8(_dsx{VgpzJAls9m}Aaf%f$o{4|hqS8}Z!%sNy@hLEi+iM3h`%P}Hmy$Ev| zLRhNRAXdoVHQ2^ZwP9Z65nmFGUB~T%pX86;eeS^%7rdrr<@3wI#*NP6eC)B^`p(28c+H$s z4LAdK9nQ^5Eq&bGM8(KeQ%*uww~yf!e;R2LfUuCAv!-IN+8H^S7o+$jT{FqDx)gCbF&{Spf3eK?$RixbzzF>PJkwOJQv_LiV_fC+p>`##qZ z{j#Kj&5)VLQdM~++DpC0Gp|0d!*<;*TF$U8#L01}In6k#D~ns9dUlOR@x7~ZT#Ga`pDrt1eDo#~%%97oe z0X>@<3RAKbU|4n?05Ls+Sc0_`;!>WS+!{Xlz?sv-kv%J?(ZqD+A$j==u6ppDpT6Mx ziDtE03P+CV!ALsvF!|{+n;3JjjPG%>9%_xfAx!x%#;bE z&wTUs2S0fCeM_B{>Y}2oaJ==Ly3907!;M$(%PQ>#N2^~f$ztNAbSVYe;~^B<3=Afd z1AKjLvY)LknY+#$m`W_0)ag)16;+b46iMvFR3alzC}y+VSF5-Zt$4%~Az7+T4FI7? z(%=%JEGerY4neEDnp1($;{x}JlpXfgzoW>t7>8Q`AKMT+Q7>CCxHy2Aky{ zc(6^pMPcHSHHvwyfg(Z*w{cm!u49GBKzP$4b0dbge&eOAYVfv$av7rXxsh{_&y6mu z?9RYSt+k9+YBj7=NV#JhA;%5`1q>g@+L|pqi6%|^jteG2R{W>0M7<0Z$Hv4=D}`ce zTqvw_3>3+!g^!bYs8<`|K?xWSj`vU8anHk#J`m82;C((4Ovg24 zMrTG9ARH@ZMPM~EfpkJ!vZO1%6u{$t5l0v#_?su)r>FN2<|Bt@N&~E%go2x^CQb9F zy4R+$1`s0Uqyp{}p=+^xVwBo;$F;r#UIlXwTsLQ=4US?ShHW#l(AsJ?L1P(*ib;l> zKkL#H4_0l`BADUQ+Bjf4Kau zzw*4l@W+lEUeo;@AIP*%X!E-6Pe1w} zKUm*;Px;}W`S7Xn@JI(1W5fCz789Zq0dm4zqDhOV0VrxFai_MpX0usJ+H|`6zK2I8 zHuuRqm>?CObLxnsPD*r;##3z)Pk0VB{j>;U33%J6VFlp=KADw1MN%qG@&A(d<>8iH zRh?_Cz4tlyzE|(1Qgc!nNN1=@s3eep%Fqp{ji5~nNQBm}+ZIIpXmMl^aMrIK+Nt|f zn^{2-TOb4k1w;@5K|_ErBvcYoNopQaso}kM?>T#~wL1Rxxv#2H`I>(lvbjK2z5DKP z&K}nA8vx7=91^kg?!agSNiAY9prO#v$$jqnPF0&Unj5uElgxA+_32N%VC_iKX<6>X z=%2pa|NdKd{>2A(f8s0C+YYo}J>2d-Ie)BdSfRDt&M&S>e9997WZ+@5iZc6BeVMx3 z*&V(R2#i<k zXaGA{!AdKM?V`<1yLu{M7VSAOUC}0cP(!6E#c9E4Lyqb7}7T5P(t;pBDOHf)^ZFoQ{`(S3*cMBjusYEmNS zF7ruW+_{^MPN<*d!A+pYUM7#fbpE{2^1O6&ZL?-!O^U4*rP4(^u@H{^yB(VzeF2XJ z!6J6hw!bZCTYB;>$5_zu1)r|CtUE~e(;i4{LmGz`l0PV^MjZF=kMC`=<}0I z4_TQaj*?N+#vqBh#dzZCi^fmhvHrqE4vYy7IN2S${mwlnmL^(RIFO9iMAM5mH5V+B z%=EsFEYqF)>F^R$7=@aGV20qTlB)H6$7=KAX57T;JCOoB9LR7qoRv|dY&V_em1&<< zr^Sko4xf}e_E2YJGuxTb7T=f>uVUv6!slB{NI1;_a?ovBrM*3 zl<1W|`?4L|E@SPBc14S8A-pA`z*J9wfLSpR4Ty0h4X}NZwD;iQpL^}EO{Xp>rZbS= z-~N;*{Md_LFm4*cdLP0_$S>!aV5!c!9A;$d87|cfC_9-W>9&9%R+)+xK!GHsBoa+E z2*OAV2{mLLXy60n4xE22rfNmYnF>YB-815rcs4gHHuj z5jCND{;?aQLrUgBK$@J%Xs9`|;7CKjBnl0p0lNjoU_hOQLFRB5k(mdX2|02R4iaK$ zMB5{a-vwWHwZM;y-r;bAwbd8OgMOPHqfn*zEBVYb=i#&3@bxri~z)_#dVjE za~6>XO=5FoJreN$6?#!gge)$nQJn5U#;#gc=~yu(1!ka1(<)|c3W4i=9aLol zN@ar%GP_j_Jx(U>izCFxOF#L8Tc2=o zT$3c6>IvY1zm5Z4wm!V}ht9cj%Thy2rSyTx(!x>Q`a5si_e+0t_yM~};=;IT)FEEX zq9%PorUuYMObOrA`{^{LSS5>aW)EOP#JAFGQDo6R}Z!ayR|(nNHZUsmI$>{(&)!8f0PF~BdK7xP6O}clE8&i zv{N7A{f~)-qll2)N@!XUA-p@Eu{$%1^nKsuzOK>OB!a3~lo^S4#;fJkT4TxJ_^DH2 zOwqn}3i) zyqssQHJH`Uc--hau339td$jeF!A+c|D=Rs7OFDo1yZ37cyz^7R_vSVHqGv8X{o3*Rc0#&BITJ_`Eq9A_hGJA_wr=YJef!nndDn#(To-=e`tZa5R=)eOqf6IL z=6K?$s&}PNf!4^0Yqv~Z_>A+ObfvUH6^PI~?Kna?dK)xp8#nmtr&LN|cFZCQB3g1~nE@(!=3a`oGu+b} zc1<+gcYpWMTaG-SuB$?7fu3}E`0?-Ge#yCcK1{?ivoU+_C$XH|x~6;Hlh1qlqeGG* zJSaqmJNk#u<<91Uw51q?o?}<|Xqo@Ye#x_yGG@AVOMKCPykhks z`f&dXo_6t5uL!LWuX62-ZoNy58gK+W3=nb`+*U&$IO`CK1Yw8T7_k=3J@$%FtH+32 zlLX)>j007~uT(0akRzXh5ME(nB>4(O3N!;r-AiDe&DQGW1?VqJ_QGU+Hwj_L|0^rf z&9Kvo77HO%^>9TZL+&U;PPVKgVfyAC4>b_1N?91}$|(M#HBrx2LT!)?;UeZP58}my zl&&5Dz*ts!XfQWioeVo0G2<=4>mYbZ%tj5FoNL_Jz2Pl?)|J8H%w0!GUi-?QdhCvE zfwii=OKsCg#2_tCt3U z4A@wC*foV5m!l?*?#?s&A4X4nH9=zHL020I2GZi{gi{-bGa0*C=R5cMg)iLx8^8U# zxx{HNFMsu~?z(S3QDXG=>rECx+$!n5y$4?RCvUs;_Pe?w?|JVB-gVR8WUDn*nXHFheZ*kadL^NUcVq=GMTtrN-@SLkW{Mk4Odcf z&W3bKNA z$`7}_KzE**bIz)oaey@mW=5$=DOE}MT&(6i0XHc?^?2I#MRV>a>lQtp_VP;fz{K|* zSy|3)r>$~Bk`!#RHkC0iUB7+ZmFGz~6DotXq{7r|9t2gQ_?gTQ!7gT2n7Ilfk#Q+S z5vx6fPcP(bo)Vnvak`iq65%iyOxamh)l8^EaEzgz)~Y4`>qsk8wo`8bYrKY%EwN6! zm1P4|j6x(h(X~xt2_<{iWz%8goEe-Uv|K3XtY*M5Cv@H@rYM8j`_Q<>Wbv3{fXJG# zjT_&x2z2F)fPSo_<(@dsi8O+hlG+#|IZA>o2K(+-3E@=Z=ZhY&V$@6##ljU-b8AtyKv+9 z(yiRgmi&s--FwU3yC3K+^*w+KvlXFExsIW`Zi8eH^Kj~dvgl{|s6+wFg0VUU5*N*Q zqNC66ntbv$pBk{2xDo3jJ>|;u(&t`q+5CZxdguE7&UM{gTX@&?7vvW|_mby7ZE+!S z!jl!b#Fy^V_kDb4XJf*Pw-1hS6Po!4rlY_8J?>dj}yY9U1mtT7A4?lC=B3_wh;J3X?`o53dexk3zp=XG-)9gGo9eTxxHEBAT zHTNRuz6bL8NDKjHg8W^Oi zr$7yY?O)BBc5LPefoyGlGBI$w(vIe;Y#@WiMi@+`p~==QUP-2pq~R>5PfT~z6JvEg ziE-7DMg&t@@B<-1cqdVuC972=7=uSppN|~|XBkF7mxcWd-CBq+xo|jq_~dP0z0*k? z5Z^Y2SHI$CAM@xd0_7@y$ikXo2?pwN?bGC(t(M>s49~(3A(x_Y-@*G|_vW{L>9(C9 zW(fpK=)qpfi(mNsAfca5&_yR?`GzkTT)FQ{<(s9LQc7z0s7Oj;5?l|#m8!)f;?s)K zNPt<*v=m;Y%W5I;NKKXTbXQ~d7~$ER5+T$)jWXoI#^}U;<3qnN_>4pa`5dB#!Sq9_ z0F}5_`vjyFn&JA{s8L^(g#}iehS^iwo=6Z4(--kaUE~akomq@=0G<)wyrpIK zf{DQp$)&mRxB@~X!gj>D3CTJ3xd{2VP1(F)3b!d3ld@Nog5?}h=y%fECWUfK_0AE9 z?Xa<^Q${_bMO`HZR#OK|Iin$1y+j4WA-AqZeO8B7j|j&kUWx>&ZMVo`R(Y<8DR^GF z=-m8$|5n;afxgaYnXbM#UUTWXkWb`prN%M!~Jix*o7XR_FxsY$G5N~9>xQSQsxbFsn>QWHpQ)W#$n zNZQm8^Vu`lm{JU*By1XR!Hw8i)PvgWGoM+>5|$oH1#0XZfU7Q9%L6A#{Zy|;h&GLB z$Dskc(hylGkvu{fOUIa+bR^Sp9sDv}#$TPBn#QGc%AKmhvU*7f?zp(uszi{Pyer5Zgy=vR@za^ay?O>iIpC>c@?Pto~V>GcQ zYv|PwGYY6MYd&(zp_}iqlZxPbmfl~uAg_G(;=6zG%D?)>tKRnN?Qi?JE8q5-t6u(` zg&pg8%%>PlCkuV_R{P?;%PYR1o}6m=Tg27F_||(*e(r8Ro`)JqL$s--8@@IE@0VTj zr?1-nTQ9uqcV2wi8-I4&@BP@LzVphs7*26cI;UIiwNHHY#E}*5%HR%H$op>T+_7G= zsoAn-(EBPxhnD=#eJe+ol+&1kNWxlUu8a1(zD~BbW`|Qr6pSs(ZaT z;<7irV#n{k@QUC3ub2PHYp;6qPhb39SHyE7%j|L)Zt-7z(s!*ab}~Q7-f331rfHn4 z%NZh_1SCQzrFR$gP?XiFCLqCCOsOhu;{^kn=~}EWMiQn)3;1>BRB}dKQQS0wYUb{S zR0C%{!dYm1M+qS{6o@3g9g#fT&^V+V&Xm`XL-tuF=ABGu(a;dTXrA~?W< z!YAYlnQCOkY7{Ge5?5c5;-V{7-@>2tZQpv;RgVHfWmqPFaeV9aqFzk8+5i4ZnT)5=UOO}e~ggIBOQ`F}XVp$e%nnX~RcUK?Gf0evAU}LA{ ziadC{xPOBsDi51lG5oVg9ui`R4rozd{Vicc=*A_NzVFQniEs?YA1P+zm$mj~%h zd-flaFp8;V3Wa(1zC*8n(_6oI`(5f_8M?CYRaag4geP22ENVmkQ%i}2(_rQS>1sAZ zD>gn;5+e{;kqzU?rbgCjHcW@XX(&anAqlb96NHB}W8ekiXlDlKLa4T=MPyd{| z=sfa7LxgC<0A1ahAsLFs!gbk&}*NC2bCLc9T6QZguPdY_QdpsUhkK(o_BFu)PU)8G@a@|uL z^QjaY*b6B@zdc{DUe-j!OkeK`1mr3^E|dAN93wM@1}&155@8>LE(i~iWr$6KpTs+if}YX zKadBYCW=2S58o?u_0snM<2v}hGM;Nu#mtjQ54-eMLKIYP5p_^ZA;plvOCF_0L>^c^ z<<{?xL}e6j`0mGTXpYR4d*{o(MLM)$bZlcf^zW`3zv@RWIe#(MbWZ8iNJ2Xr@a!!nY4K7`(D);r*G4Mxq&>eFU9#RxFh}yZB5Eq z*@MA~AvMAw9(f>_fmblY)im*?|K-}}e*3@qmP>g{yl(^VTJLwAJ36?~VrQ<{SqWxd z>qW446HoFD$pIbnU`F;m2Z$wViWK6<;p=aYNxJ!+Xo94d*C5)c(>ZeiKa`Q)uf zAIw#j46lsOycp@iHFEvd@XTw&cU&2+*%;0rhc#i~&=<&s-+sv7|LNsh?^*HY90`p% zBC5#a5nr^ax#9wD0@aa??mOyt?ww3^a@olgitadM&t1qrXo5;R}nJG z&i+sstvSyQE*-V#?Mdv49Ph@r?<;@)p%c58y`$kvC75Y$9RKSjx_U#n{`_#wrg$E1 zL?WVDQ|q23fBT1z|Kk_-_3>P!|88n4E0e0CTxfi(8@=nJ_w1Y4gh*$vydboB6u#yB z@QfYd8CQoLo5H41SR)>Biw%I)<3=C;Vt(h}-MK_-JC{okZvMec#W&y0he%=$bv(@KSNunZujH88s}xkMl)Abqrc{Q_bx zt1|)S{Z4bCnx&9lef1TudBsad z%?OURNG?osKXocV@SAr%J7w)DFd+3_9Z4ZA$A<4t2+I5nw<9GC!5SSpKxmZLJeYjA z5{e^d^~uC_2+GoflCh8pmh|ab4I*-S_4b=CHyK9V#9HA?FIdkoBd-5C$;Q$&F*Fcn znRLnlM=H`4!UQT-VhT>25!s+ur70yM>3jH&1sSKrrls__FBaHgAoZ^;uW5*-@kxC~|Z;2@bZ}L~)S}1n^ut;s8^v!jKJ#30&{` z>qtlx>C;U7o}?IMt!uoN_Pv7!_u|4DBAQHkEo|z8A(v|mj>IAMYWNHm#6=9Z%g@eI zOzS#f#Sf!MVsSLAwJLzY?x<}N$*@1PO$#F$s-lhA%CzwQ!#rzH45F*^k)QXJ#g~2m zqn~x1Jm+!o`A=w`^Z4-dKfLWVKeYMMwV}mRr^U)?%ccqR%*Vzz{LpuJWFalE>Q!zR@?NNJij3I4sJkig(CX;Sz2E4R$(ISDw zT{s*#vXal-q9fBq>%xnl+5W*xH{JMaSH1Vwx4r+jw!h)E7qonIrRybf6k|B&dd0nv zhQJ|3uLTs$OGXk707i21K*3?t*hK7fPPJm+6@>+i&W}e-v>I_Z@~$Sq)}=^c(kl;Hl^_`_tBgF`o!JG?W9pTrKW4OyAts@Q|K9ti0tpZwY=qT5AHg#(EA$q z;B_Iw+AlUS8&7EAEBow^Zrc0No%%o~TYYhNS$%PQpwmR>kpFy1|Kx*5KEH=MJ|`PP za26{TIEy}e=kvGTv;3DIz5ieC^QqIST}gmjVk6WD1;!*ft(S7=34iB5u6*qC2bOJN zxudQWH6`)L9Bg{o=H`m?Da@YV8{N6jckW#(+;-Cf=CzPoU~YulNUmBt^Y}svr%|a@ z4>zm6H}(*97Al_l}PrSmL#vq32xZvw1z?v)YQyefHk)Ki{=-tj?AHpSdG8`1nehNklp>uV-LN+7u7Hp9$qo0jSJLvRX)RKNhP;cc580si2!DVpwpF-FZml9Epdp4(+)ijAR+Q zfQoOGa}VyVRYM_>#K`cFWuFOA;WGqW@OUU1;2Vmgf>J_c#9|m#x3{(k9GX5ejp{gD z+A5hP_$4=DPYodZ1=Oi$f`@Zq;~%@e3hD zphLoQp7ZqQKKpwTAUO=>*yUb-=I4IpYxnNIci;VQeDi}@%3bbZHA{KSgLCWUKh}&! zntQJGN*_K8x^F@=Tx&`V0j9NTWKgO6Zr;_3@~mGZ7(64(x(^&1L|v?SJr>DO;iRg| zFualB^$Y@?j*#0X0rOBcIJ+q5K7 zQ@m=eqpH1HmD?Y+O^R)lhK;Ofv5da3MR*@n{5R&NO>)1|O(_O+{R}@WhG&a}@p#M< zb6>i?xErF0Ol;XyPy|XbRRIQdXS6k-CrbidGB}ro9hc8x2R~bs`QbTZo7V8=P3KT$ zTbt&bwa;u0XWU+04H|e+0uE#EroFm{m?mAHv$-*xT{vr2T$dO~Vl-k*V-0~*VBohC zv`qvPQdNgMuTj&c}%BM&1FyxG@nc-%hRsUgDe4hzH=YD`RLKkSF;YOb^3* z-3=;oRnAJqoHzv0QesRoCB?cX6bP$u_QNZA1!+bJCb2$fYm!V${K6fF_bq!*w2J-@ zwX~mTUCSHBVIv;rMiTGIMa&0u#2}&$Ru!l+)6!RwD6nR%O(BY45x6_$+D9uoKc0&z zFy>gmV3zTG+X+vJrc4w3@5#(gsY0vKijhz?49UCP*T@e$Cxv#rL~B3xg(JW5mis>V z#j=0u$BkBqI+7l3lY;7gkH>`Qq|*b1?q2dge&6xe{nZ^i57LP;rZ_TU389os>OoRU zBWXs3k~Zt^IX?fo8+YIIPv!2DeoSeFsAul#YtCN0BU&Lkp|oek-~BK8wh!(8;@+&y zroxS?hm=ITBF1aAt5BnH-KTCl{`QY7eR`K2%5)O1fR`Q8tulM%Wv8QsZrQ7^fA7%` zefGeLtfOX8V#^$245ryjHy_KRHZ)roPU(FeUZJ}W@v%JeG^a#0ovjsIcj~(?1(_eW zO_azo2<4NGn>M8;hEUX}#>&*;rquh=1yV^8TUA!I+~c@$z?eqkmD22Ang7r&M}Geu z`)}T@M|(fvG^tu>;z!>4bcdj$!VB%mmTL?Q5=Yfu-u+yf?4B@H89ARt;z zhHz14hSv~19X`qYsEIKINdPx7EUB#alLe=IDPUE?JALlWjB0M-UTx`ziqdRPz!x7Z0CURuPdSawVHSRREu1Y)uPAy3PAa|{7Ek^)s0Rx2D?x1GnM)3tiOUan&14?J+9(3-3sf~e-e zp>0yhTKA*29T}UUWTWI9Lhj47D=ZE_G+Jy@F5dTQUSec)_EOHpOk&`+O+|AsA};QO zpHFe+C_zF&chOi$7?V>8&5gk>rn+IOLu_hfr8h4v2XfBEohp#B?#qMPY(2-_SeOGs zYO@j{YSbfZ8sK!yO-x-bTG-iRj4ax4$P{{-`{z3*8$M?L<==;M647bSB%?qY<^Y?%J#791U*OiaG=%RB%bK2Bn2Xv>O7A={}!@|hTC}-3d0PtuN1$-BNNJ+|l zrR#!FN+x4^e(Lp$ zkK68>M`0A|JVMa#p3P61-+7R3zMVe(h5cVU(5=|IA|q25F$tk|n@d&^UY@KtGz7BK zv3~BvQvciU`r7+Gv*xMavgIj{rSr$!!axbj(bcIp-#_tx{wjU=(+6(by*#BwO$*H8 zhGQg#(idi880o-GA#`1w`niAq<&(GGb@&N8Hb3hr?Y50PA2>1(D0uRoXj1%ZNBv{B z_(yNvz2`VyL(H=<=l^a zb?LKr-~G5NH$CIYYj&JR3xSgiU#gI2^JVkf4$$9yy8p;$?mAZHb6D?TJUBK$OCv=p zv2VeWv?dN^x6X&nL#McDDD-V9fg}gI5-05fU;E#Xy_=EhV z{mbJV7RZB_GS{}mHq9kOhV+y4W-^4GJZ=&uBn@@~RIBUK_l1qpC{?4Z(i>p^6eJWl zn00*@F`>QUeyc;2;Wlt8xf8J%qnas(qq`>VGxY)y5iJ%&RHzC;$jcRBVC`O3hjk!3 zIR;TgA$6e&>$XR&9ShgB!}LfR$m=K}dH95{H`DL5j@K=zocFaNopdC4fIJe|bRc=v%LuYdDf zj~qTqaJ|D8T}#z7WCYs{&wl1ppZvra0%jfPrV+^;YOX$W$HNRKg~%?@P3SUZ6dhva z+w?Is2B#FGVqQc@Eh|nkHpU35J=Nh-ub!OhR@qq?WFg}JFA|jjq4f0zLTzP{(=nB1 zg?Q9731PS5Ip&UZFfuuDteCIijY0*rgTqS#Kb>L~X`tr9hP#7j8xOxC$-LmLBZ1>P z6DS5l4-Aglq9_VfjTHy6jf*7-&wI`@$o$>!{oBrrLDubZxqatdM#!CNFJ;H}pMUvF zM(w!t6QKZex1g%R+_p`z;>OinlCVB%PuT`&pc530k-QG95in6ivhQ=u4@ko;jnM>?NZr z-!x|0G~%YKrEQLg9DU~c&%9~}MOdCrmUC`mBC@s}7dNu%SqiwPSy$AZ$K$b+Vi;G2 zOF}@+0DHJWd8ZPTb`Gyow6n&MJ7HM3Eh zQjDc5O5Q{vvZ@9FrbGp(Qh<{SK{X+aVht2fy-PQKc<;yl{sGZrmNlf-!)V3kPWVQp z0`JHIW`)5qJQ7m@(z5bj4Zc{;^WN8tC;ocbj>d32EnL!_2n_PIq$=2VKe z6d6=(V-9Tj9yED*Wc7=`b@l$2KlPP=@~@URJ-UDLu}hC$xo~oEe>kkq-#LBu`svr6 zd+Bbwc%L4a>G9x7%~gX?Lie_+D0VMh&K9dBlDU}c$ywIt){CG1&$mAJo44Nh*z~&B zTzKM50=^h@PO|{fD^Wf#q>2&k+cYfoypMBzDzTwdeuYK%+#~!)D zls9hOy>{c?H*TC>y-TO@z#>o5g_E}S^i-3iY*3~vE1GEzy&pI4YNhdhDbv|9fA)*_ z{^J*}KD0l3`x_p7;?awbJ$$8_o}C>IYk%hXmp=cc=kEH+tPgQ{tQAI+N5k7Z&q>Z= z1xn(>86s#g6Jp>R?oz7vj&B8xlF!pjccrXtagS0b@2R4_%{b{oE~ThelRdnG{1MqP z@P(zAWv$cF0ts3rDFudvK#Qdfb)Q6}Gv&GZfWlQP5}&w-kJ*Uh1fk7eL8A1D<{y3w z6+TB5@&~3!Vac!o44i9zJfyPK8r_3~)u3cvhcGXb#2_w;?G7|Zs>C$Zyg;i=3l4vj z39^YFkF0=j28N8f+!S6h!tt(mKK;SJ{1-p=OaJiNbGI^y#9HLl=WmZ$`ig!j-s17= zw{%ibe$WsQcR)K- z!H67+2<4%DCOGkEWalhL1}g)z)Nm)nV4$L-p&i(W$EdRgbUuncigb5XeI=rDWG&(A zclY}KKqD%fZiEOJ6h)p#FH2+?vzoT>BtDXvH7SS(%(5wV&Q1L?5;3COh!eu!5oBhp zvgvAbt41QuX%t9eNecLeF?fo@G8p3>97ocD{7^P;u=sFJegB_+AIZxc#DB4bGg-0@ zyKTu}^7s7cJ3jo^KDg6;pAQkvx}k(eYGW$1hZn?0Gpha}mnYWazYF;=fPjRDXvH#M z1eP5WQ81KAWi(HNgq=b}gHtw70umvd$Z?yB$5>YxN9& zTaabcDi2-aCtv%}3s)DXePH6Bouw6Z?--TTeVytq*>z~x6SQo&vDI2sEFE!(+y;U- zn@b1LDSJBow72mWXlSGnP$KA6o}SSV-9+ zI5t60sVMpB1-kVUKlavQ!r%3S=}!OY^StE6Xu?84t2@RuHbYbE-ZF^;s}yh!!3Y$% zWCs2pzBdfkHYo>%nD(U&EVwsWx|gDijCMPQ9J==iS-oSKv*;ldW`!b_c^-Crf=*Va zv;xz-HCy(glvEB$r)vV{-?}$v#7&8~dUEd`SVwxKXH=`+S}le}Iay>y=!}9~5t&2d znBkaO*=hgW{rJScx$(LGmVf+@zUIA8^W`!W49r5<#PqBn-s)0S<2GZS|{bf09!z$zZuYF z4i*7dun)&UHTeGHKdUxF_TUk~YZA5-Jy@F4(h!_irsm%BlJiN@qaiWXUH4pjx=abt z4r&sP$dMbZxRLjSpC|+~;f#oiQg#d1p#8mm@%sO4@#Q;$z?OkdFD}VXtjScT*2EcX zNzMlDgs84?T`s09DO)Fra%tF`(#o`~=~51}KljZ1o6j6PPnnSpVrBJdjmJ~0>`x|{ zmNmeNin5(?n+J$$W)MsJez!mLg_WU~tZ5J4I!w2&x8J@IruWG2hWA>f^;~^wba^FH z+a=i`E*GtAzP4`0ll05G_NK?`;}=MI^U=C~FQ0k-FuRsIRZ=wtg9uwdmEm}KwsZlp z(h%I?t$`JmL#^9Am)O6sX!r?hOm*kp*WfkxVzpLl2=h@f2wa*LNq{N_ggNZO8I{Aj zzjf1p=lPYsaQ9??Pm<==wCp`!bLJE>kw|4anJln>Ez2Q zRx>*iNFy1{J|_x0dNhE(~Z+ zImq$)dVtOB?gF=^9sWxopC^z4v41gun#&^8ADjNBl&DS|iGglvhM_b_!*yKpY zjh;R@n$lw#qmePvi^)-cDBr@+`@Y9mG^vQZ`yG#e@te<{kr3~KcwX8AyGc3R2Z@Dy zU#wbdivb0r#fP1x2zB)RhJ_9(S+VTd;06dHfz0!)EGjm#M??jHj1%G@``Sqo@oSX0@J^D)z*h}wy+sU8%V`VbtSM+M~JGnK( zO~|v$rC^iXusAj)53v%kUGjBRs+lQ;ggI6hGIwAmtc_!o!zgJ+LsoziNAEdJJ2P{9 zmnf+7?CT({VHisfSF=eAo_IR4=cZ{|*A)?{?Cxc%D>&SqIn~zIfrH-o3Y;p0?k6_V%+k?%iE4-C0gf+ini+jSj2-+Hc+b z!dGRdXX1xaWR3mJ<-+Vc5|wiD&;IpuzxMC$Q#6xAF}$1e(!F(WWw$yOM);L4uAltO z)qnfBmN5%CvpMNXmtVYJ<{;uN!e2$wT{%@t%l+T^M>qcIbl>t!nFGy_SuRt3fEMC( zW$xXT7y&_1>%K+Y?bG4L;S-;^ezB}3Yf)z=1Y_5p7) z?nHqL@dh$YQv~sr@l%>iF4CxraYqGakoI(P=T;SLkfjq#tp%lWPulh!Pmb=S7MX{2 z#^4iGg$ZSCW!E{+G9)D^t;DXHo6mEI)fmk?q>&r$psGWkKWV<@@e5DCfr}ok0)n2s znP0hfn0uLfGt1VyvP5rAK9X(FX(p?MV2Q7am`>yu_U6Qi%BpnTHNKz(mXvZ3Tq^---*aW=twZJg0_r9)+h?ZJ1hO(=i=bbi> z%&5EJNtc8jdR(oyVn%@>0v!uL3=srROExPtJep@waeQDL+aO|bs9QOD^ORE5*BPuy zJFH7F8%OOPYc0E^bO4?sbPLguq*Y<6oK@s(o|6!nAL}mfzx(a4Q)LyB9}H>AtB?ML zb#&+~Xg z!mWW}L=}1GQ*Zv@PyeNl{n9UAd+uiNxd0nq2UY8M%*vxxtDuzL{I-(pf2-%8{>ab$ z%zk&0z9!SvYuEqYKlsEKzW61gi5LahxKoZ~^K)G0sHOr}NJ=SXoK9mXnQ=;~PD%Jc zx(^rjbMpmO)M7B7WEDr`U0fz)iJ8*x(DLU0^0lWhl&I~YFb0Aw;mvS>_r-y%5Z#_z?oY)3bhOT(nWp# z&;E&bz5mCjOB35Ge$D)jq_0MF?XLgIXTR3%4I12|6_sMw>4JqzaR7AZRFOft2fmV>T)~2Z> zi-&jbrB0NopqXbEX2nlpU6)#mD2K?ir}X^2{OZkSvWVO_(8ZoG=kA#o{n}}X zDDFLoYuP7R(ylx0_ZGo6l?)#(G|{@YOW(M8xJrA|iP?*lU}D|fUkvm`FQuNH&1>rr zj*2mv%G#NAe{%m|Ws z^}x^%jP~xSq`h@BiRdDX5tK%~BG+snhVFf5#)X^9+B=c-))nA}poA{9uDu0QMkq1B zJsfKdlMjgf5?D*O1|JC81LA8j+F{C^LD@Zw&CFq|G8JYvPvz{KgK|jlK7eTzTTtxMx~NoROD(m`^9l-5XC_fJ z)J29Gt)T6NC%{FiHB@q-U(}*b&T;nSBNyKC1Q~5tOZw{b`Q>lko8yABGOBV_siiI( ztP&VAVPrA(+@qBlVatkih`$xz3CLF%-4IKm9T4oGXib1QNn=5>adUI1# z2~~5?AUWES(p9Wo;x% zG{AL-wA~XYyrrRcsFv8Q6SyL_`qAs>qP8NEMI+T@McpMrCNi%Jb+QR-Uk9L#D+GcW zsHl2$9Hu=*DM)fXp*!z+>h(5`!ao>hUzz#J^NAjTt@A?7{ha934ArJh7AfHYdJBYJ$bOSqBT`^056ctPZ;ttREwWSceRqc#B>otZ&eDIa8FX?|SE3fA**U!Y_XO zmpza2lPz>*aEHV(%M$W7{5cZ+YK+(T(WjpNs~`CDQ<5fOL$`+$&uFj@S45sz-)ndS!a=Q~A)zd^-2G5s3PHXeQKQz^A4~ z%Gw=$HPG{@I3dm=d@7bK9nmX_7a8ebMKMH>g*iwhHlb*)>l#FpSqFv!tPFgZAZ8^Q z@gyp#iBzWO3sfHJD8CadzJPFFm3ntGdi&cR`a^Gf@O|%j{hKc9CF8QSd%m-`z-A3} zzvU-?_4bRi9V}I?g8Z;Snj)yqg_x{vA->GAu1%^E;Ri!qHRSy&EQTs8mgQg~r54O+ z$=ou<1+COhE?SvW@uZsf?oE{v*JKpQ zV&es^?O*|Tkgd66gASI&Q%%*PR@SAFGC>FBojQ6JyHe2IS26Crx5L75MwH=h z5`>LU*S4`q*XCM_L?=LJt<7e&qbJ(j_2lI8;}5ds3v)2$_3z*3FJ0$5%RY5)tR~!= z2XvbQs0=7~JtGXblm;Rf$5h3fh#;B5QLV z!QnD>&ec1+6N<)_P@=Skq6s^5skXv%bC^hAbKe{zC{qM2eA`KBZ3&!`QH^M3qz7g- zcaUJaH#X&fwu}Jncrqd~mew;i`Jr)ta60_hJE)9Q0{MZcRlcQM87*lzTGO~PviELP zr)iRqJVw>=G0PBfqU@1}w(evSQDNP7RT07gjCG6309$)Y#CA>y|D8#RfGijKJzKCr>DyT9RrbK>8qM4C}#dItwe*4zlAAa-6kG#Gcr~iT=ksk& z`VU|0AOF|$KMmW0q|6=dWer?Ov`=GBIW3GLwxs96}cX5L;V24&DAQTLN z00ETHBuHQ(ga8R7-~sW>AHX9L?+6}vK?sTF0YoE0qacBR00DxPgqYZleRG@Y&R%nT z4dVBWxpeM1x5{ORv0YWOPMzAd_u6ysHRqUPjPLt($>N^K^3N6~7Nx>ry!m%rA|}PM zJhC*S4()v^CI)PVI@^PiTGRMA5Y`IB3$98+1xF01bht?Pn71nKYuJ+;_MLRhVam91 z3M`*=jGI!N3%s>rW(15-`$R|5ioi0reHT>fm}*yOo#28@nee}^_S+_6Pg>Q4YaUt? z)v&iXsh3M=)d6(C1rEfC6IT><+BCRWj_oxeY%&d3&x44?P#&5T=dext=gQ-DWV)yZ zHkE4T;k^W)*Uu<4dI{9rlO96_5aCR$UVa=i2!@K0t%oTv7XlawGYu2#IZ=u$QGTZh zPt~EUsK!;%FHiCX98GGPoqkplY)X1YRL^n(9Rg!dnC|zNR19xuA+h^Pz&YTIwOm&; zk|QY`a8q(52O9qorzsuNL}{UVOMvwmp~Mp&l`CA#Zu2NnhX%>I$yH^N26ee-onDDJ z9C!Jj{*Pb%cmC+t|F!?{m;R0a=+FP_|LHgW?f>$_|M?ek$=f={oTE9z3&pukDXPqE z!%d(|ugFFKS__oSK}^N&snX16^$bD5;|T8&+iX=N8dF=V2d2f$1dd0oCo0fehKgWf zN!lF22!d~zWyLV7aDwDb#Bdh!sGcX=b|)yR3)Gb>K)w}IquXHB!VYPtiBqKtSU*=l z%;}uPh8anf=D_vD*UhY{ejRXPCT2oX?Km9Uj7PjE0c_u%re}y6E{FzonJS4~#{-ix zl4g7it!{nqHDTwg^yE||;ptIrGIGo@h6d_noibI0I6Q@sQbmL%W_mL6i<+60CN$uVxZl99r4%*n-r8}4MI_8x3sdlf2a|4+5p{4_HB zl;X?T2Uc}LveQ&BTw0_pOxutEz(7x)37T#DP3tk=3{KC~z$!iT9S0T$=i5tTQ# zkzFSI<`pV$7A-iw>u9SB8VxjAwj?KVOeJcf;lL%3tYW!f6>PJxj^e3jz#XlzzxLnV zA1eIY`eP!^rX@79S17Apq6?p-ok=1+)J3>_opKp-RZ$~@*zOygQc6XC`ltW0zvXZK zJyV}5orpbFQ*4V0aIzF!y?cB35XtnNtO{`9`$?;{8>@#QS0ZD_@j91 zKmYH4<(b|g+2io7w~za|SR}C?qi_X7i8mM1L{)U1_k?Tqw3$ehFx6~11d(VH9iqLa z@G`3`UoimCuC?5Gj5$r3>k7qvi4thEe$0`vT8lZ54|QLO)o4F5P-N+!`T1XX_vy>u z_dWd9jp+*H6@F7XzoXCsRmz|I)$?EaSN_De>1#UQAsOhJSS4W;QG zH@CPrmFn!A*2@SYB8x!Q+18IOa%61shMGc3mde}>N+6Kx5o%)&3-|s#Rh4$;bd7l+ zMka_GF4$&Ptwbl0!X5(7(u}tK?s~54Nd(O@sKUTaON!C1XwsPA2wdiw*186{Wp% zBIb5cHyc%i6^eTuGSTX1K*YwV$lhFboXYcB=XrA1g#d8(+=0pwjA*otO&r5ORRg+A z#Kj0z;U|ow?9{O;uEvFNiJy)^RObmX$1(1Hs*sAf0~ke|Av=-TrU1UTNCLb`Dy7{b#f^Y>kY(p(Cv|$k^3vE6y4l_+2O^=fn%<@8|fxrGDth_{eX%uv+R|QVfd!W<(T&ZdbEaM&vOtHB_e*RB= zs@~52Mf{t9xRH{4@+)*O_(E#GNp|G z)daJ7M+Z8>HI8{Z*RG#{#{ft?o)#i*P>ty3qG2Ys(Lb6*WDdKsu2`hh^gLIwEe|Hy zBcOmap!irG*aKx-RpQCw%CMm_B)JR)f44%`iXxsyq8!!Fv}6V`2nN_;sS5gb&5Ev~ zhMrQ2hgs#ygi1$EkY1c9B$}VV**d)KK`F*;O_Juy=rCdipR>XK)l*oMCr8Qh%p#{$ zQ(zAY12mjLY7DIiW@=SlWN!d3tUI%3Vxka94T+H4i!USbEJVkZFok>`6ey~+3Xy>`XpTwwv>*@^~ zE}OS1Su}u{Io9j&AkhR)5>>Z(bU|)n=vQqqJ+Yi#2@W||LkgQ5Qsu1T8GbJn9n&gK z<<98Ddk+WZPsi*+oqO3LRcKVI+LF$5s1dXD_#DP+RU5p;_L>dTNHI6&kt~9_T~!Y} zrwP7v7WdX&mFFBu6oG+*mGN9FGfa5cxW8OP$|1rQE176050iocwNR=F^;#nm-GQxy z#Iv}Iw_aLA1;~{O9b*WUS&hNd#xzkb!7aVbTY4f6AB$r{Kp53ew;AEXOn5U;PTZp; z2y&DLssb$Sxy}VKzX|bijALr}iOpxvBl>(+1Oo%yi|T5P+!)++ZJ~t%!-;cm=m~f% zzdXH)TVJxW+GyoTB>~o&azSQ=c$`sojW< z(NL#U*09N@#WBE}=$TANsojBs3SD`T&RQT-yWi=4_ohM!-GAW4`~Tw4ecxAy7_b!W z0_C$ z#iyLYGhzMGn|={|2RBk}BF)+fiEOnY3g2KXTS5Tpm@jQQ%T)Crc~NGD{3oR zz^y}=x|tK07Zs23v9a$=RN&8uK zbPgG+k<`8Z5_XYE*TGcBR1v}z{n%~f{@?5PO)FGBeG!Zg9tTl1J%k^IYjY}gJOpb3 zfzQYV2;83qolksU88;C*8Nlb>s|W+oD`^HHOP?1n;Y?5XUlC@0QR&*FB8u`tJS52@ zb4ThZZ_Ji~ChjJvR0K+<;8)bkof?iIQ4#B0E~ZVQ#S|j#Fbn9shjrJoRUNOB(d!Yj z3?3@#>C!!e+9&E?RAD4%GQcZK$0pgRLsZ%>6R*~kD{TXrUJF!& zei%!ZM_-r8>CQF;BN=p$@J(QA;xfD5?s+QwVD@*B(fOqxu=| zy=Fv9bw$j2P9!9(k1>k3TCXz)2+jokBULmjhHw-2v6o_~SOJ3cp>p|T6d~8(nA0QB z+wSa+5vcjb98%Q#PE6>fV+1<%$Iw=&S7rOXjxn(YM0cTxxN{SC*}0e%MUL&Cx0 zu-zoag(HtN8!(TqhQ*-A>*cZ{Aq2&q3D?ImmZ>IF3*OW?ivn?G0ElP~OUea3o6b=L zQZmaNGpokXUG<@$Y44Xt%ZBNBK6}JrilRYbZ75*x^UB4TMOzB5ENh)$tc`+m?J!G^ zPKe5DB|fGOT*Ih>pTtfX%6`ODtq z5hu3k(M2!ImN*v5oVKY|?MzSYj;U~ezM}=Ysx)RXsB~KByy2Gwz@-||JCZVN_dDDQ z;9*Wxtn}heLzO6cg+9I42_;H|h&RQkGMqbpp#U-r1Z8g9jP?b{P3y$i$79{&5Si$v zW+Nh4NA*{Wz(L=@spxR;Qp8U8Uap2s5xJksRB+N9V_@+##yZ*Ut?Ld-*N#-RR_IX5 zgkGgov7YWE^}QY05_6#zbAkVnOdKejwy_>bcc8b=k_c*v)J+*}EeB-uz97N0!kPL} zs0tX6I3^N!K@>%mpG!?+-H+Q1u7EM;Tp<}ThH2j{6nqJhC^-3bt|dSeQGsYx?YPo& zMbQ|ORjb(=*!>yQc9m=8Jrj46P+=A}54kz7#~AJ_QNc6k?Km1T zEgtfqTFW7&3ADF2*HKx_V5kTk&aPrJj@$9xd(UV$h}F8$dwh)sv@jdQum7 zMCV$UMyS_fF%xBa6eo`l-jomgRw-1N`BPF1`<0meF4zu7&mfSjSy7tGBmS`P^g?MY z3HnOkFd0(R6zIM07c8+Lc{dao*83lAdl(VwC;J-f3H!OmWYt=%ImW1r-iZk4Q9Bq2 zF;3eah5N7STyO!s^)j!+D+n_?a>@X@Q2@B-Vx$2izGw3SoBk-^mZOTf;B%3-_uBMy zToA~6K%=efu)yv$Hq8)2V|%yvw?stvqU&JF*+!wVN7cs^Dxb+J1@FHn5)8t7QQhdj z_+x+Snchmi5mFRyhdj+WLDzX+E4Y)qD56<>g4QC*E-X+FL`%M-xmV2ro%3jgJ-VW9 zt#1{CiAI=>dCW?{eqOkXv{pp&3R=#dG=w5n!a{VKNg>1!{@0n_9za||a(nMQ{+B=f z-hc34{Q3X!&y1Hczwumm$*laq^FRBa>VN*F`uG0p{8#?XKlSrpfBGQ4{Bq4~S$^{& z7IkJzR)RxVD=+oEpehoJ6>8Yhu_3d}1PN+GXc$*NA1RfDxOCttT+MuGs=6unDFa)` z1!#GU=~<$BdUys(j#8m9#l3=rQO5(vFD=e;z&Bo z46o=oj4K389y8^JK%=LNdOAc$L04vIrVa<^%$E~7P@-yRcHZVpJcHnVHJ&L0S#4aXH$S|&!-b~bf=%0c^p{Y5~wo6H*g1>O8PpE zqq|2Y34hfBy$w4u|ym#9iF zheB0tJW9|fa`=L+Z7U+wv(qUqi(KerL78w$;v!Qc5f6w9@WLv>=9Dwiy%tq4M|%6? z7OJD*J*7)aN>M5-Cx@H@`%l9rQCGKrl8a`vWZ}s_Gog5kuYC0<3f}SXk@c}hH$|Y zL@1xo>_F%(Atn+hpbJ6Lz9SQzu_PU<6Ji~*V9U#`L>(E9Mp z^vnO$AO7K={62lbr5DaBO#GQxqd$4e@uo9V^I2BJhMr-I1w;#91K+qP7)Qs{p`Mis z$mOI`m9Co!>MK#hHgaz*o7M&SN$MVq4b(U54kNxx4l0xwN{nr!&6XJRhCY&+V2?y1 zO_IEFo6w#_`HXW`|04wKS4hMREH$U%EO4qD!SR3|W`8^CmfDpVSJN`;iY63R9j4pS zSXV5n#+6bxX;)NDAWt9xXo>6C)0MB~5wwrm!DzUgEtKF_j^DU#Bnp+^_#-o4f$c2Q z0fjwcJbBEcvKWX*Ynj@bTzEss-K4pE2B>>=M68>};0Shj?7J%*nh+e_Q0WB5x~zG* z0eaO+ZY4BPmZQ}qq)?-_lHFs8=;dWiU49C-9xcA#A(cdmFNAyRvqj{}aOh3IRr6qu zN$WDmnn!}yibGu7tf^~`}%f8(@G*(avG=CK93<&kc&~^clF*3PV&Z-;$U=!K~ zbU?NRbx>9CJm$stcCy>-?*zx0ju-~RDm{ICAoU;2;#=>PTa|IuIhcmC5~{%`*H zH~;JZ@mqiDm+715yDnc&xq(35`f`iq1=Fele(D&;%nM^lrMo584Zz75*JT5=a zHj}7i=;@`u3lr>SKrOIZx6dOG>Q;aZI3PZs&o)MYJx)b7n6aM#fFmd%YKP)hwBdL) zO9YsVB0;=&PT8n9N-KkT3+B1>M!JNZb-c7JWn>cucWG{ zV>G#_3OChP;eo>CHx?P=h$sY&<#Eg=lLMBrh6j2wHzALea1rP$Tg0YVSNb)))oZt7 z)9OH}*G|do&CM{wqYUX9mYMUs7a_DOBXTu~SruTQ`_t1?5y!c>-)vM-vzfO&gFKWa zT&5b?8!zgho1v=Q-ezU!aNi>^_3kv4s30_(@4m1YDg^WiSd5pSly!`o2;NK2exet5 zhq$x1gG}`pb1lalW}QtW+>NKqrjTPS3Z~Zv4r zN8pWLn=0WgLQ)&H+e=)8WYKkp2Si0cj}uFX26}60-{=OQW^0kA6iD8TSi}a zDcR7j+j*BK@*1u1GtK*=%NV-d`Pyks&V2We{fV#N>D?yrr{|c%S1>28>LwuFOx(SK zeML78pAH?+>fVNde&4$b9z)$%mUMF*PNSTUO#b0`kw@?0Z*t;uU1l@vXQcWAC zGKY>KO>-2mO`yKr{vOi=E3f!+%+#U0^LyOGfgl*S?*~FC)WAp5VpQbVzlx1xOn2a+ zLwl!Vf^B>d=3JlCfCQvTJxx0fi&zlJu(6rqUx1}8pcr#9OOyn0pnowB^(n z>aG8?=eZnjD!^_su8K;piVQIWYHD6t8Pg~|d{L2k??!D@XZl7??K**^f*J?rQLJm_ z{q$xdZ)aNLCvQ{hD6>t=!jn=x zqFpz;5R4+iWeg~)GdL6a=@ZrqrUW+sM=O{uaXp`Irb;MCn@d|Q^ehr;X<=^+!JU(; zt=ezih?G*^hHf4W7J*|PREcrR#v)h@1d!-4m4)x_9ywKp0&@Yxl-V{;BDBrnpv}0c z3DgRZFX71^bB<;jg=dCfl#ZdxPgQ+F+b)uP6^j6KusMb=?}A^^9=@*%tOC*eKij;` zD1N@5g<98e>+g3!N>OY17$(C?=ID7vvl2Q3C{4G$Qr%j4U%|trbixPjggycJ2hu6&Ph)F$USd zB~Ct}qgxnVo^d;@BcX8*4A2)i`b_gSWN^efZUc3`G%RMS1+xcj@*C%E&fb-IF))`- z9#e)EYWZ0dV-D~JEjpmdIy;K1Xq7}_jzIG~n=|5VjnQog@{HQ%D4JkJq?d9%9ePYL z5h_2XQ7pi*qNeY^ci)@g%(wX4|JdL46Mx;0+Y8|#+yWJmE3N!9kWl}rw~>Wod*okF zG2`FL9CBN@`%rjjwf}oRFPpX7o9j|$Unjvgm6R1VB4K=b z@^B;sl%G)o_IZLK`ao-$b|KyJMD&0RwFFLux)igC6(s`%2Y1kfyP872LWE%%Ns!8` zSY;4ZpT0dAS%`5oSwX4|91Z6$HfbLxGh>nE-e$ACd&UF`KKJgpQd`U89bAE=(j99& zf}~V?|60<$;Y{9$!DY*HR^~%cts-r#B+751b)N%)$|Fjq0aiq6Fn#%J{Ga}}-~Pr+ zNj73`62*(#krAT1)Qm{s?Gcnkw(n`UpBOOJ;Rbyb;Y|BL@Cf{sarNP-OVd_hJLWa5 z$n@j(M5I-?J%!SgtGyybNBUw))>NIz;w$GEeg244m7Z;@xMY;v$e!*#N?w#cu^rw- zUfR0zPKH^Y1uTfU*=y)=LqT4Z4OHT{)oSD53pej}KV4_-U**pl{w+-A7Z~WXecGNeQyC~yENDG3CGQEb5$Y{GH z&;X+e1j2$nr@egnOw5hxv0B?7%`q~2Ij_PWQFbpvkpnoT6eJ->4XWLN+fz_!GZu^)Z49L9noP&Vn3D5G^hhDaKO+ig|dbX`pNY`THL3D;Dxe zrYf)J6V}kxlw(-2)k?=8k?auwQJU%IbV(5w1uLPQkXQoZnT}&-)!Jaoml?IjxEc5N@G$A&6~izI{V2+qfpGmo^~R zoaro*7ffklVDB_$!P`Q8i#@E_LCMtuxdMUt0(ZFKIGmb2kUweq*FgSK3~OS_%N+A{Ys zhnQ4&WlCpW4klm@=yY=RCvgv?>w_$K{H+0WrRzeWZaHaXVeO2T4?r`#?SXNgRzb=f zhlnJQwu|T2xL79U`^eg+Zs1{ShdEZE(Ab7NQ0xbbN@5QRe;a6(0^FFip)9&VLr_|{ zjdXAX2| zp8(i>1~n>0y#LyLgMiE6d*{3V^Z)VZqGs|zLg{(D7+j%3XruPr5jIClQ9<2T_r$7i zh4K=OI##T<0BajxK(s<6Y!XDleMbpR?ruVdsSQyRV~Lo^m#+ad?I=d-X zdYnUQU z;fQWcz}lsHGr+zw7Awn8T-_$*B_mzL#RfBVaAa>2nlUEKI;y$FI))NbHQU4-^<;mH zd&H(P@bpj7-8(5M;@I-o=oTz8 zJ(F#<%(>>&j>m+>(oRTYY+j42MJ%S)^fv(|pz|#fj2>gDgiIR01~G#u7)o33QMgf& zoSE%I^?Z5<^|-G&L0Cf+Ci+9dS#z4Qo$FlS@(nG4uAzCDV;t?`dafX%V-EMIjyMQf zQBms1-D{sQ&lKZIKc;5n=@d!R4An#x$~LI6^gK@xj>NcH*t7Y8S!Z)?2WWioWLYGL zmm%G3I=+XK80@OoFjccL^_bHgBYO&T|D+^MKw`!e)QNu4bd;X5#TR0IP+J0s$O_~z z(st?b6aCSE8>Xg64OE^UZAvkP_S-bICc=5RsWm-MnZ}hICu8*Ul@W-e7~6lD$YCOw5o%Ra0x|#o%?OuceaBwMmQ3i?EUwitG(9qqqphn|IqLMiQn^6`X#|l5qcN__5%Ib z3w|EFiC_I7xi&Y4cyEm1W)7)(MCZA(n2l0$j1SR)rVU=ajUrG>fW6szq$^^$H{zDz znECMoWcMzwT*sY{uS5g0A50T?ZzH$x1QksC$Ug#J!@+M=XyUiLF0+GjQxKB_wUQol z_U^PjxOLcW*>|;@goZ_K4=#CRc#jII-Vdu{@r5A1cEN$`*G}A76iRKIpAHu&a1m{- zb*__{bK8fOsSFi)jfR6u`Q|o~ulo5fN}jm<1`Vvo!PlWU7>97R5Ti@tmJqD=91xAZ ziXG~n;E&9yqTUPhYDQHyDNtEVRiOB!>?)V`;Kk&%)|pvYrIVY`+DevYBgPgZW)GwO z^LQ}8*%xYy6g>gg;z zg&G$sch5H2R+)36q`?xk`AAt8H8AmFVZnh5iXP2tx4@KfQ2&du#;?V`eol^klZBM% z#`O38Ed9{i9~!;vCpd{e{NPSHqDg&-qcNn^dF65!C5)(Uc(;r~&;_okW6YtZ6Z|{_ z2epSmrXzS;GyPnr3W6gm5@X~UQ7Msm#qJX9k#)H*e@3w~)NZ1Ol5SS^^0n@OcK6fL zwpzYcs~~zvW7JGyIp%>^HPEOwrPFLhXCh{C%pu$EVt+g86xLyF1LEOp`E4F6gTz+2 z09y#Eg`y%*VN?W$cSE2iEchv^^U!fauFMq3*1>TYiVkr_aM5|cy9dDP0H0?zq0;O| zjF)k8g~@KE5vTjf%9e!R1_Lk`<`h6p9^Q zIG}#Pg$7+c5KLPQFQgAx^#f~l2%Voh1F==nnfnTElNCfGyRWuCZV57*mdNw{`NX5z zxx!UZy&6pg7DO4_)k+njh5Jj~YmgJRWq#S15S$pLdw}#$*jy*{RDvlU8Yk?|-F=x* z0UcK3g=;mZigf%iO*>2vVQw7J-8~mI_N&re;lPP{F)|+O9;)i$k@4)$nb{^ewI?*$ z%yK+Ih)A1iQ*?yKIA-fp%fVoRz_s~Hq|#TIzyeZ(Ug7k@r{M0qjgC7h4|}{B=^YiB znTX#hW=4p9dy_CMq0YqhiS$msJ*c=MQYK!nl`QmwVl zJ$Y0waj8Hu&U?Ikxe8ce;Seh1sWvnsy~u*@#V>A$uQQf2P_G?$2fD9kQHOvFw@@K^ z!-{bYBGy1{)S=0HcTsRLf&Fwfg+k2mSdT&+ut^FAC)Qk14CTzll|3)_u&)aA9cCus zBCqljNxv15xZRXMYJ|s!@87raZl%@p554{J@A+ANV(Q14_Y(H`(xott*X6a$gJIM7 zI4ak=g$GrWw541V$6 zD*0_KFHE2d?Ce04O=34l{E4*2wC>pJwGqP#SW?@uXRWi@s=Y-h5O`rH+waDS8l0y# zWa{B2ZGlKzPJeEIwNa*lZ6q=D1v^q;(=59a5+WTLyr*ltsmD=DG~oaAo%aHV@TVvZ zezOr3X8z=_zFrOEW0o$5>46YciC0hud75?bqGaDjitx^ET=+ml37WI6az&^sPC-|d z09bgF%*-lqp>b{18m-aZwt3TL2!rt2pJi4Tt;*beO1g#|?X4d8fOs)+85=lyJ4zq- zek(vTtJe?Hkr6wM4bG0XJ3m_JNdj(R47*^FX(Ghw!ENxG-jK4XK-Q2Dms)ru`x|pK zfivTIr)^bV3}M+oWBxI=gyk{XJ}-z0gsu-?wZh+>3H7|*`X7J(y*s@{EWO#7a6pO* z)j|Bs&PtONB{$OV8n)l+d;& z7PDGs)Al5)9YrmZx?RmdDh7YBHB@Y9_!1D4=CoaDY&D@)!6Xx_xK8bSt2j$R8M+KD z1XVG5LhXMo7nc`hQ2MG%*d5@_N8(MH?da95z-HcSXemaOXRhF&Rz=J683e)=+SlUC z?<*rIQRE*&9pNixbAUy!Odi1PDXTq&7>x;7Ljv+K0X~CW-5KpDuCZbcp0+(&@wnQ> zKo#Om)^g3;$M!K0!X;he6n?baJEU}}o z-I*qHU?4@ujY%~UOQEI?UnV0S!YxjNr7~fQODFPSZig|`{XChBN+Yqdr1!Rol{4Is zUuaUd+Y}{LSrwEq%+^{2MWz{{l&+zCjBS^VxNdciGiU+!>M`8hXs9VhRv^s39d!id zc@hvB$4IhiHiSFENg7GnZ12|GXWLtKINC+oT^Iwq2aW2nx;E7|N8E`|jcXaOg^YzA zXWDi#mSVCwD{C;dVrrNiCJZd?#qEYxdxj@4b~@&0+O18z6|QO0k>R-$hg$j01{>>W-V{Nn9$6Sj z{Xhut|4uj*jJmphD@HBbjmt>LL@HZbVmm)qfX4QN&t2rOa#MjJ&!^g22I<{#?{%B@ z%-XLDX6fKErd>`mcVv(@c7f&TK~hTeAKOaNi3t>j>M_|KdETE_E!5|iLWPYjEARI^ zKQ`x716qET>V4~*@hQKdhD`DsJ-j~lt5v2-uN;YeUo-W(eSwuSDeHcJd1XRI<0Lry zRRW3Brq;o0sR^~bai_Hc8?Yv`LbO!-7Xt;>z;3}b(tnC}dl(i&h7Qms>J`q2ik6ia z?68af1rArW=S=LTk_V|A#}kWT=t}n$iBm=U*Fa-W+c_TntvdvldOeKd7?(qBi&whU zB-I?|{-Aqo=qc9y{?V%!l^}T}T%PaRsQB2y^x2&U8MUf09Zc^k|DoUa&JTVitv+B{ zZJqPsho{&8tGKMa@jZ8n!=kvTrr8IC{ z$;t*XdU)%#%2$WcrmC?GlCfzIEUWE<*2)z@^n5>w>UO)4u*0LXZ_{~SC0byO&3PO6 z-hfBYxZPA{+uyaK2^b(_TrX2IVALn#3`GpybctM)A~tk+9f)Xqh%aA(2_5@@ns(zW`mcxDLhttZeD1|4ay8Wl{ zr~AoR_?YX(i=+En!m==b-O+v?a~ARQdHPzYQe>Dl5Twc;i&=CY#60E{)}9}C*}0jb zt=gHCOb`|`*ZuwsU(PX(1D-kI;R*~AE2u#rjY9+&OpR%|t5_#@$HoCh2Qx~teHI{r zSZfKTQo5h8s5+?F!#P>i+Ved!&+}z0gep=}gi>{Opo!RknQ!u(_V$b0IIN2N>=waU z>4v@{W-i=OjHSM10akZHv!pig?scfRpTcC2vnPkc0$j(zFz1cR>n&JDwy9%#Ev_g$ z6l^wyIkrVvKV?*fVs0NSD#tNQ^|&3X1IS_eI&m*T@Lc6`qCS1z&--@icNgd|mAJ#Y ze4WJA^^_1jKff%;X}rNqb;xHYingpRnAPplV=GW0R<*2~gmKGuLA1g8A?m<5`BjdH= znCL>0FA zQ5~Y@(Q;DTm|}ciDZfPw@_$Ynq6A89ifFe4+sa+ot^f@sw1!%}6fKs$sWI$~ zx}VNk23FF_TG8H0$hGK~a?Lryvk6(f88&dtA-bS36pu;U!^;XZP&rHl&;hm!Bp*Gm z1nAJC=a@$Dqcdpv+W{gYVAn49XZMI>PSG4%Fp6kK8zWuOa85eLK#3$EX2d-gtB!GG zB9Xqt*bC=6y@b|&Mh zb(ZKDrp!ptyDwxV*?oCcDcBvDB1&kF9ATNpVAG=mmUwQas zZgYH7I!vj`lT?hDy&RJ9Hj<1v*p&OG`RVQ0&I&!7i4N@SozlZ#;)UWxR&Fc8m5Cq- zJC_&I%0<-M=^@aBgjRk<6M|wGcq~%Kv{p&`#=C168&M0QmKR|cuAL1Mgfh20;Ul1LgAo{WGT@p@B5Q4*frR*ZGd zX*x9%+zA7v8Y_C6&I8{J8;Al?4dN)iFCdmq89g8o?U!pDdcknW(!l6SVt0zDPHn~@ zrz9=a_E5&gbb*;BUJ^T3o^e|8fItC6a+q1ykP*u>eT+ebm-)IKV?e*Lb+km*_Zkq8 zF}FuK!>4D=9CYI5CVVEcJXwCI`wpxFHoYe5)%v_Xq_@ ziEsyP1^no{>?x|X_aT^Dz|2@)_q#U$p!wmu{Pmyv13&rK{kXlWG=<>YaIwFnx>ov} z04a|W4@d$OO3UF0ORd$#> zQ@4I``$AbR!zST=Z1Ig5jdx11EcZ^xh1h-dFWM0(?m!WdCAf{k+A9NjlOC7ru~=fh z6}7E?OpJr9jsSkVx6F+LQ^|w&1_Xz3U?H#8Derphs;C9s2+OVSP7Jx5T!PA?#J>`SGmA6u*f(E7x?fwA%Sm;VS_adgCHsC0TW~*W2b{j;! zz;|0YL`^#xAr>=L||#@aQ5sAw(1>Q5J<{VrP-75&FoG6U=bWpaSJ#4C%q_5xWHg2`PSI zZ#|Xm&~zr8lfj}+luw;U(aEAL|#i`AH5QRc4xP(<#hM0g97h=?wh&X>T)#VeQ zoi(XyVj~NNHe5})Xd~+}M^q_Tzbj5EQg~SJK$5IZ?eJ!PGZq2UfI>+z<#$kNR+{OY z*uP^nI@@X)^erQ4bvQQSz3bZWX{BpVzsQ_6nD)F;6#Z`p$dG%`9TW3KmeVT3KX7`9F#Ru08tZeu6lBhYQy-+%t zIQ&CU9;|hGGb%l!IK`|Hklqh%D2J$1rA{#Yr8i+!0(PsY7D+l}A%JU&at^>JJIj-m zYYe-e9y1)sGW*#VNIGAEE4v(Y?=&X;U9mzpLH=JM7E08j78dDJlU zK%y#2c2v~vgzxy>+CXY60`Ovbe!deI?IT5ac09SfE))9n+sNP2_Qd`7Yb8o<+g#~S zVqMq^8O8v5%Pig4szm!0A23N0cJoY_ZwPZE`*NI%E)TK(8)qXW?F<`I5-`bgOI(Q7 zxd`iSY&?&l4USH%1Aib9G)7)Ud!GlCqxJ&U8m4UCLj`khHLPX&J?^PZt$`0oo1QZF zMANeA!v3ap_9%Z_VTFWX!gWw!oVX&zU1{SoR)Z_Ov=v0&`KW`L3coxn>zmO$BJw#f zCVum%-GkYs+^$uG<>~D&{jop(OLuxfq@_UXD&Kyq;}oi+0>Y`KshwWeZ1Qd82|~0; znJJ0l^aUs;*Yc!}CWKBv*nkK2S%}Kei9vabdxQpt8Yv~n=nh(xql-Df8?PizN6s3g zu`mk5t_aj4fr>8h&j9P+(&ug&8aJLP=9X9=XZr?sl1aA)AL`3#$&huvYB#EbS5P z65fW7kzBpl!y#b#lD)+gk6ZvO71QzF-7+VVL(Ub%JO`OkpE{nG5C*I8oFgLdXF7;H zA_{&c1H&lnNM;fETGz8cy%{!w}3mi0ojCbklYwi zM>bY0#m)5vb80v)Z%>Y@j%qbwB{12!%oKk1JH|v<=51C5A%8=SJ!*M+#F=%j^1xWk zG^U}9sQv^dAa~SMh3cuW?a5exe=namw5zkLWK2n$Mk3N?wFYv2hld~rgi-AEOeupQ zPEb~*NID||ii<2pxmCkVs-M-<>Z9 zUlE$ZPsiwR#_d6WE$f-V7~aHvMpYK5-42YZr>p4 zI9DLaUXSfnTGpCe9imbZ9U=+Lr)591+0H^qg&)%)q=CY~T0yExiW{9o5ftzR!R-vi z9rY+RwJBzt5vJx5cMnIK20)Z!-VJz!@fmcU(c;3yG!Vd)>gTV0JNo!M`1rh zAAHmWAY^{E-j%=b&-?>_$xr_deOu{3p`!Q$oa!?!Q2FF-2Vho!t}v#~sNCL?Q7P1W0L9|95yuOuOlbVL0gmF%?ZxDqHHLM( z$F{(i?)MYZR^Sx3hqnOmw8%D|s)xd*ikIKBg06#$tOuToTsy|!fNkV&X5ix|zksi% zHs{rGX$mZa$PBmp%U*`4`fCLDe2`x|(fR&--x16BPY>c@eewd~>s4fmP)E1)y{?KS zTdzr1T(rmH{o{J^*~PlbPRW3Hrp&BWD`?EoHFmWpwtkAVlc7+bsY+e9miqk641&ZJ z`ch_kMW6B`69yf+0H#EOdLv`YX3VU$S8J_p_SNsS3h#yODt{lo*S~fhjN`Lx%1$ho z9x1C?SoH2!_|L!p;?MlKzmPn#Mq3pFl9gT*@#0z@K#&Jo`N`a?7aY}F-mMZD+XpZf z#*9$zZkorUWEfbr@ia+qVv@votrKW~v66tX&^w>NzRy|*UB%UT@CE0R$mm!SiVPD* ze}~dn{8(zmP(>Rzy~WGj>j@WnzKdNn#trqz~|lDa}SOMFeO! za;|K2l&EY7;#qtQ$g+bNfRlmZc0W%uqpWr#^#x7Q(c0+1`XsHAinb)izk)lERco!> zLU!)h`om@stq$H|GW?3?ij3&Max~iIHb+%Dj34~O2!x;^GmL?cRn0NB8g#?RYC}4G zKN4HTt$HXy|98sBO4gCsUN)B$^s5x&A(&ws21fwuT8+UGa>rebg{t8KW?J6LeorK& z3KmPXnVH4azVJgDOk(K10+boqN?9dHjM9XUV*;(xz^V%(Uw}B*t3TpLWFWFP@T7(* zP^Ji0LcRA8{ROvI>_P&1M{o!SSRS~~OGM6f7nL#fFl%eY$`aCZEorytaLfR`Q{UDv z+2jvs%!CV0`gWPD=K%Vt=rGJSlBSe#YPqEXdVi&41uje z;iRhEU2PrKqphkHpprYi1hU}f6hK)zhqlT7%IIV#WuC{NA~ZpGsCq(kY+FFTd~KJr zgc48MA)I@9SDhc-@0}b5j2w2-^H3cxpYQo#2UQ7*G5GJb8)RaZs>FHw-{n51^|l3L znbq1vu9g#C)Tm>PvE}-nhML`pcJX(IHmn6Mg&d{5?PX zhkx(!J%esSrew%7Rla<6KW{SnPsUhwK7CQ~BUz?{N45{Rr@L=WeR5qvHWeh8cAlT_ zUx!lD>VCvzXA|uPJ>w{9ffcl>U8on8niXw1 zepYo>8(zN+X&H0=rL!*(#*!M~*e!oyZk7aH;eM6{@C`o_Kc)Lr$vd7;w$d^jgW1sT z68BhszN*(yA=9lJP?b+9ANZ|Xs4$K%P+gEW7%6Z0qY`hRqb9;Rbn9%rV=- zxw(jdAZkl+A@MPjx(13b$9U}+L}#Mi4(^Ios?%=I`-waRs)j+fa3On?yGJ{0Q7_lB zt8k2f#%l1{R?%&kC>S6+@RrP7m-pC}UHy|%QNQoT4R>_5sep!os@1By{W!#|>)ow~ z5rk`8cYn*jn22M{anxs?JD}0cYxKV}T}*X{*V#(aB~&4#dx|bEPxzoG8l3Z5BI6+k6Ms zavs{Q*_A+sqewwuyPrX&Psa^=N^L&ToEE+^bK8S7`qwd+CIGW_MdHyDM6(4rFP%zh zMb)Me_(LjV8r&yH-5bI|SY8%k6I>u{m=>E9HB2fvn|EBMyAR_Iy8w8q@F?@Ar-PV% zh2ky*CR;Z1ilL@PCWU=lg0^QH?qM{!BUex(Mex!Mure{{1gW6vY!-VFBoBHAdrEZp z>A8J!rD?1%N$II72n3{y3$`Z)0kNsqDiS-_Vy1DZpeJ&eq3Gl`X9Xo}1gt@Z49W%C z^ag*33BU8T4za*bEC`D(G6%h|mpy$I>xw!(NUTvQ&s4lU425j6Q&a6)+5}ookl>~( zEBYW6)tR=Aq+P>idYT1T-G?ayuWPrQcwS5>cXK`6j>z;C8N33K(x!XH##rd+L+cft z#CA|~HQ*i)YQ>`PVocFeMJU~e8Z~g?Woi&LF91XoC|3&WZRX~85z0Ip2DY}C6-(<_ z1rzi10M=3G+){h^-C06ZJ+Kpch9{lifpqfRw0IEAJcez`vllfF^n zL`6{~s)rw@{bZ{2zEi8ZMr9L(mVs#7VJ~BV;c)HJnnEZn0By2CbrqTh=gqFE18(ab zvIJDzK}cO0SWGGQoNxIp( zNh8^P^Uoyv>&+77&Ce8${&35BTkw2cmxw?CoLMm-F1i#ZB|0dRaH9&Ca|g{uC9{PG z&Xfw!Q@ChrA$teM)UGG@Q&jPD11H|IR5K)c8!2kM$@g5fOP=nTCl<$^- zG`aQ>n=XJmqGk8>*mqWMBa6Efk;`LNx$4n^l(DzRv9g`?H>Xm1PfNXvfPu%Qp)bHO zm0RB>e9^}ARRzIo{q9${{fy(cqL{v_eoff!wRcqyaI3%icqP0Jth1w-s0mR(jW;6E zybXR-z$L1*g?CyQjFE8(pDD3sU(ud84a(4J)_W`w>pftrHn+n&5!uEI`v*6(+&!CZ z)sYc=^@|yEQ0MHRIqF+o(y&^;YuX;~43eU#pxK#^SkrDUGDbvGj0-Kt9xB zegB}Sys(05EtmE;;P?db)91_Y>pTBjyJfhuyVd0O;;a9|pZLYI4v4(9ph~~pZV{{N zLr9gRbD+A5$<0-jR4k46`+eG|s7~_EbY-5yKseufm;zNEr`vge(2Hi1RkCP>7q-2S zx!i)P2XLYi7&Z`#q3HW&g0^ydakvK&U5-Q4B$MoU6}e+`&WKoRMS{N7JaS}Kb_j|o zJG$cYIJ(~oquOZCE~4TGDAyK^DA1suHw;{2Mv0{$qvzrt*y zP`Ygzc~A~B@cf-c-E-QgPWvJ^C?%+*17ai7-Obd7MwNSJ<5FEK3I{N^wnZ`^n(Z#l zMECn*AZ)!>5hOXn+?5eEfO1`AXkGdX)wwj72R0YGr4eF=xu_i-npF!AKozgxj=+Zp zon!P3)3w$e?71Dvf%3+N5M_9FF{toSh^pQfM7Ec16YxkCssCn4QUu8Xt}xULMi|wm zav=A;!x#;}MOAe$e{CsOQCULpGlvyE)xl7V;!RQc2r{Xf2R2kpb$Pbj1YRg`ol|ncwZg5P3rzbZcy7pSGK0Ie zt+xPXwrj%OMRrbNB)33lp#FGzy5Ryc)FoaSdl(x|RV7#o+Kd6rGj7j-d9(JALl}aD zN9%ua0X7lYL254m3mK%!$2f@UexA(}BkVOCK7)jRRkZm~f&q>oCdHU6Txq54Rl_}x zZ6D5RgBfazWZcC4Ae&gC(tt*N+)u|CqeRXWY{a_|4tEFPSy5mHHT8g?t%8~d|1xs- zhcew`;Sy0xyWGQ9R0c3+NnmXXlr@u+ihF%jkg|Y;_nxm36Ecc0JPSJuXvem+6|y#i zp9)k9geIZ8&_6fA?07&f7<8zHdg*QerEzdY7lmpZGb^tF&k-ft%`N5}L+#t|zs$X8 zr`Gek{EdI|5B}6&{iF7-(#>cn&E|b=ta5w8@a|@QKA;sGpS+E{ocU{OhWmdb+JCY^ zeHG#2Zo~jBs2+YSJ2y{}2#H#G-;##Nx>5PYOT`1 zF%|WmubF>INl9HbvRrj1SE6=&us2aHv{iyeQis@7)y~ksxs-b>*TX-%J?0`7Kk^`w zPYmLM72W1|pt4@>42H2tpNJH&NVQQJez^qCWT=^L#Vu>0s!j$)r|slg>f5=vGIeGs;+!6g)kLa@WHV!M;!0gE(?A z?YPf{ktYyE3zJDB88t?;1EJ1j4wfxFPoIZ1Ia1WBR(A;b0RbgNlmIW@skAJ2U)z~N zHjYfyqprHj3aEiuYZ~hYh83;lm_wOqj2V>(JABCC*;;=pye}kXZ*0YAc{BksP=@Uk zLTTD1%dq1Ldr@glZ6h$5;COljtM>4pDzf=t+EM6hK^c!|afBhz9D>q}#+aZ6rQoRT zOrp4xz;Kd!V>H2}hog!2RI)sKE$Kjz22c~7vsS}Px5IH-#ns+vIjxO`1~IN!+K6bZ zg)X@v;hF-DXy2z|X%o%HW=VQ|@`ViS-eSiPx$aaY^EzE+oSAc&3RL$|UCVehR;>3k zPR~wc3U_LkGml}Kadvwp!?D438zzdNz@j;C2ejk~1nk9=rN=^h{%LBJpYCeo#SJ%& zEi$FEL*OW-;Afql;Y-lKqvEI%wcNP_`tp7R!& zatD|ZI(`qv-#+HteDokw^&&VivVb@kP$nP4cEo}d`a0@K%hSdv<`oOYBsV>M3Zd@8 z;*A4H9eY4ND~wXDjMb3(((0v;&PW1eNxZ_V_tSVTl1d7cb}G*Vr_Lg&O~ydeHIFz~ zZniKJ0303L5iWM)6wJLOx}SmG8Dql)wirox}ZJ36vlORp#9T z#;$_FNl7sTCoyi^M&Y04YjM%gHh*g)=r(cc87$GOtn?5wroDO!mqG0VvgJV3Q*{?^ zN6mD-T!3?}JI5)^sD^f2#4*Q;U>X=gEfmS3CUTcY&tI0FopG@|iAPkM5E@fn$~{#D z43)n9Jc=^~EyV4`Ip@4T-=~iBFh=vfSw$i5f4J7ljWgH%1%2c1{Of<{5C1Js-#h4q z(J@H*5uZ{3g06*|_%mOn^fU3@m_>{~^-9r_52u_RnAY)no4qmslqX-sjI@FKHvhV| zqbM>uEV7sW%-ZY#HBljaV`D3fL?u9~bZP3r*E9tStKE#6!n#dDL40_GmT-Auz_wj? zwp#VFM8-)4xQ)jg*6huzTfWuN+Qx(Q@J;SsCq*oXNF%T_tnBr!GpV}n7PMT_Oz=q6 z0-2Z|A`4DTCNwU(*VR3fPZ6K;Tf0zU=1*_=)gRY&?5VV0u-|is?`*KCE4<6Qt1cT2 z%v{1?zuSpy`>eK^+uSHz*j+s`*w~5f8$5zZ+BHa&u;BGw0^^`WEN~CCRZ9<;u`|mD zV@YV!r)IB(sI-{BoAmAWQnWMgqg5-YTUz2ycoM(@*VgLEMHjxhC6DCK7Ijzab}np( z@9T_ayYAN)7m#A19`kRq2_GVvkHu9!^FlqQ2hH&E;wMV{&HQ6OG5)td`QF#xKb>#= z%J7tCYgNy3n~jQQ8+q=Sg#bQFo&9JK4M%{GtywL|HCxg7QwDerNWCzjHzXaY z#Z}Jj+@1SoWb*B}F&_M+aAavt#jQuDI;a@TB~>Ap4o1e0f)%Q+HyA`QRYf)D7VWI%A{bCi0sjk7&Gfi ztv%h*d+u~XV@wWBtY+eiU!Y#K_no3B3Ie6-mIniNlcI*cs{3aFZiCfyd8v)57;I6k^Mx9Cdq4!<6-jk!l}Cyxw3sd(57oGt zY@adDXbCkEeTP9%0j#+^2%wNsKIG;C@UV9(VJ6Jlzddd|bsDazCi>_~smjemtF3H| z9a)9p)HJz*ivz=CRxngOqP?C-s)OOz{eER?8FVqB$n1}z6||*ADiHr)%eL$uIu#{6 zd@Jc(xMZ!>QLBpPHf6?~w!v-@$MwV;>X|>P*a4)d0`l^+fVH+;eQV^7(X;|o{@Wa@ z$*44^W@fA8RY$rX$HCoxLk3*)hHgVUuC}K^@Vvy^9IUjiQc#<5TG{yi5R0~k$jA-K zHA)f)%B1M>zRREB${a%@Vn}mA#cUwtCu~@+`S^?^RYYn>V(d!_dZ#kLt2T41)}PoI zVBwn0W1VYD*i}fbkO}}eSQ+;O=n=O$74FZ^_cOuG45ZH{rXv8qlo{=sXoy1y=bm$b z9BX1Yo#$P!jcWnw6^O}(lT_Ay1sXuxQ+`_pMb0rZsi&RZAl%P-`Min*N{G1S`#pCm*)l2wQ7t4lEAz(os;Bz$ zTtG1;2_@)-d#LV|TfoI>qWmb>@PcktWY$CL)s9YhgCx7*mHo=i6J&lw&Tnm4hOjim zbawLYwDR9!#;HJ$yE!c*}^WQuryW{!bZYG;C?Q;746Ho&sWV=Ra*)vf9i z5?u2``hy^0>96RJ@I^QyT~$Yc3Zf*UjS;is)r6mTWkp@rp>}!JW_jGiMBZJ1Z32K5 zx3Ay|ZvnkfAJrQAPK{{Oa2Ed5`X|Pp&w-stJ?fOEy*CtqkCTk~tKaj^fAhzG={avC zW2aiI7{@3k$XI)jXc8|^W7c6rn#JcCV;=CqB2#uhMJyr$gVm&C;I~DU0}_d9Qc>U5 z^u*%b8{+ii>1lcO2yXF6EM3XK{qF4%ZQ|nb6 z{?~JiyZf0HQA*XsDisp!>fFmSASB>|QArXuMxrc*=qMhdjh}NX-JvSx%FBqhT`tA~ z^9*knI79|>4K)@Ni0A#u}5UXVZ8Bw1LQMQ=TJ^Y zsep;4l|NYn*wLljXQpVM3-@d?vf%Rdln;iDHd>qM-7l#t)TpJk?e%yr z$28S)4{b6Vp+fEy7fK;g8$@)53lvU6Rk-ss%d|x+g@8qiAh3U}g^*pmG-IS^^=Z=b zv(|izQdZ;hG3UgFn1u`VUb?TTYHERs%2={oR7mPvi*f3HdvJkyxCqqUlUWs*qcN0n z)ObZ*35!I@nL%01sfuC@pT`^u-H2IHFt&XS5Q(<_n1)#_kB!cvJZM^dacmZ#_*-n=*U4}@6hOYH zFCQC3G#=VNgT(-8dXy@^b(_>gZe_}Ko5~L+0=!0|vUd#b+hP0)$0Efg$mV`4UdaOF zoW1yi51)&q&2O~sU(#>>bN|p!{M7g8yGBm~>Xa*uUWIVNYs&c?)Fhv<_r-tfI~hmv z3M8^wHcZ?vb#P4;{!G~BT@m-uYQef3tE~vm;BCsf7r??JyQvHjd2RZ0w6+Zs<8F}Q z5K%mA{kzFSC0v#J*TS|R-@H}}J1~xGA>hVV7yEpK!L0-RY3YAYDf^SyC zufi;mRbAG-Vu|gsP1&23(IciVq_6qh0JRznVfR>TDa%E}*rE{L1U7aqyniJNtzaN3(A7wBZ~G)$yn@J ziY37u=pN+I9jbBq$^umg4BHur`S{BF32K zc^2xKX|w8)W+v{DRDr=crg>(^HK4i>6@qzy^*ozFg2IBprik<|-MbO4cmvwZ9c%;_ zHb!dFt`~DoQO=^}jtvKoF`BNfBJDM_otjt=7)T{^z|m;IBFy(AAh+8AeVNh4(gq;8 zhpvgCvYL#57qIF}xvP}C?82!(Fdcz4Y?_TRs%RrJ?p)al91%Ijv3vm&**6jJSPs#O zz)(5HsH$NjE5{h_&N4haD@}C_ zk?JJ-F6yccl&lWj$U7P~iZ)){;L z`?*jVvAYux=2l5jZnBjP!5yC0w3$)!xG_m&Ok)qHpx)M8?bT==I`cM4=?-giGSpOY>+tg4*NR7D zQ+Q0GUC3GrqT6i8lq;33wpmMNfmRetq}=`VHAIeMv

                      LN&zxGW+xt^>hvu{V~+FO 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]v`#0Mf!$p*N-(K}sI0{Q5(UOgdy33sI@%u6 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 FV1o0d)k6RP literal 0 HcmV?d00001 diff --git a/frontend-backup/img/pwa-void-mobile.png b/frontend-backup/img/pwa-void-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..865fa8385d7a800a753b100e4c2ac7ef231bb1cc GIT binary patch literal 520064 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